diff --git a/www/extras/extjs/INCLUDE_ORDER.txt b/www/extras/extjs/INCLUDE_ORDER.txt deleted file mode 100644 index ca892eeb2..000000000 --- a/www/extras/extjs/INCLUDE_ORDER.txt +++ /dev/null @@ -1,27 +0,0 @@ -Your include order should be: - -Yahoo UI! (.12+) -------------------------------------------------------------------- -yui-utilities.js -ext-yui-adapter.js -ext-all.js (or your choice of files) - - -jQuery (1.1+) -------------------------------------------------------------------- -jquery.js -jquery-plugins.js // required jQuery plugins -ext-jquery-adapter.js -ext-all.js (or your choice of files) - - -Prototype (1.5+) / Scriptaculous (1.7+) -------------------------------------------------------------------- -prototype.js -scriptaculous.js?load=effects (or whatever you want to load) -ext-prototype-adapter.js -ext-all.js (or your choice of files) - - - -See the examples folders for more examples. \ No newline at end of file diff --git a/www/extras/extjs/LICENSE.txt b/www/extras/extjs/LICENSE.txt deleted file mode 100644 index d026b4fdc..000000000 --- a/www/extras/extjs/LICENSE.txt +++ /dev/null @@ -1,25 +0,0 @@ -Ext JS - JavaScript Library -Copyright (c) 2006-2007, Ext JS, LLC -All rights reserved. -licensing@extjs.com - -The CSS and Graphics ("Assets") distributed with Ext are licensed for use ONLY -with their associated Ext JavaScript component ("Component"). Use of the Assets in -any way that does not also include the Component is prohibited without explicit -permission from Ext JS, LLC. Deriving images and CSS from the Assets in an effort -to bypass this license is also prohibited. - --- - -The JavaScript code distributed with Ext (the "Software") is licensed under the -Lesser GNU (LGPL) open source license version 2.1. - -http://www.gnu.org/licenses/lgpl.html - -If you are using this library for commercial purposes, we encourage you to purchase -a commercial license. Please visit http://extjs.com/license for more details. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. \ No newline at end of file diff --git a/www/extras/extjs/adapter/jquery/ext-jquery-adapter.js b/www/extras/extjs/adapter/jquery/ext-jquery-adapter.js deleted file mode 100644 index 5693d2731..000000000 --- a/www/extras/extjs/adapter/jquery/ext-jquery-adapter.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext={};window["undefined"]=window["undefined"];Ext.apply=function(o,c,_3){if(_3){Ext.apply(o,_3);}if(o&&c&&typeof c=="object"){for(var p in c){o[p]=c[p];}}return o;};(function(){var _5=0;var ua=navigator.userAgent.toLowerCase();var _7=document.compatMode=="CSS1Compat",_8=ua.indexOf("opera")>-1,_9=(/webkit|khtml/).test(ua),_a=ua.indexOf("msie")>-1,_b=ua.indexOf("msie 7")>-1,_c=!_9&&ua.indexOf("gecko")>-1,_d=_a&&!_7,_e=(ua.indexOf("windows")!=-1||ua.indexOf("win32")!=-1),_f=(ua.indexOf("macintosh")!=-1||ua.indexOf("mac os x")!=-1),_10=window.location.href.toLowerCase().indexOf("https")===0;if(_a&&!_b){try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}}Ext.apply(Ext,{isStrict:_7,isSecure:_10,isReady:false,SSL_SECURE_URL:"javascript:false",BLANK_IMAGE_URL:"http:/"+"/extjs.com/s.gif",emptyFn:function(){},applyIf:function(o,c){if(o&&c){for(var p in c){if(typeof o[p]=="undefined"){o[p]=c[p];}}}return o;},addBehaviors:function(o){if(!Ext.isReady){Ext.onReady(function(){Ext.addBehaviors(o);});return;}var _15={};for(var b in o){var _17=b.split("@");if(_17[1]){var s=_17[0];if(!_15[s]){_15[s]=Ext.select(s);}_15[s].on(_17[1],o[b]);}}_15=null;},id:function(el,_1a){_1a=_1a||"ext-gen";el=Ext.getDom(el);var id=_1a+(++_5);return el?(el.id?el.id:(el.id=id)):id;},extend:function(){var io=function(o){for(var m in o){this[m]=o[m];}};return function(sb,sp,_21){if(typeof sp=="object"){_21=sp;sp=sb;sb=function(){sp.apply(this,arguments);};}var F=function(){},sbp,spp=sp.prototype;F.prototype=spp;sbp=sb.prototype=new F();sbp.constructor=sb;sb.superclass=spp;if(spp.constructor==Object.prototype.constructor){spp.constructor=sp;}sb.override=function(o){Ext.override(sb,o);};sbp.override=io;sbp.__extcls=sb;Ext.override(sb,_21);return sb;};}(),override:function(_26,_27){if(_27){var p=_26.prototype;for(var _29 in _27){p[_29]=_27[_29];}}},namespace:function(){var a=arguments,o=null,i,j,d,rt;for(i=0;i10000){clearInterval(iid);}var el=document.getElementById(id);if(el){clearInterval(iid);fn.call(_24||window,el);}};var iid=setInterval(f,50);},resolveTextNode:function(_29){if(_29&&3==_29.nodeType){return _29.parentNode;}else{return _29;}},getRelatedTarget:function(ev){ev=ev.browserEvent||ev;var t=ev.relatedTarget;if(!t){if(ev.type=="mouseout"){t=ev.toElement;}else{if(ev.type=="mouseover"){t=ev.fromElement;}}}return this.resolveTextNode(t);}};Ext.lib.Ajax=function(){var _2c=function(cb){return function(xhr,_2f){if((_2f=="error"||_2f=="timeout")&&cb.failure){cb.failure.call(cb.scope||window,{responseText:xhr.responseText,responseXML:xhr.responseXML,argument:cb.argument});}else{if(cb.success){cb.success.call(cb.scope||window,{responseText:xhr.responseText,responseXML:xhr.responseXML,argument:cb.argument});}}};};return {request:function(_30,uri,cb,_33){jQuery.ajax({type:_30,url:uri,data:_33,timeout:cb.timeout,complete:_2c(cb)});},formRequest:function(_34,uri,cb,_37,_38,_39){jQuery.ajax({type:Ext.getDom(_34).method||"POST",url:uri,data:jQuery(_34).formSerialize()+(_37?"&"+_37:""),timeout:cb.timeout,complete:_2c(cb)});},isCallInProgress:function(_3a){return false;},abort:function(_3b){return false;},serializeForm:function(_3c){return jQuery(_3c.dom||_3c).formSerialize();}};}();Ext.lib.Anim=function(){var _3d=function(cb,_3f){var _40=true;return {stop:function(_41){},isAnimated:function(){return _40;},proxyCallback:function(){_40=false;Ext.callback(cb,_3f);}};};return {scroll:function(el,_43,_44,_45,cb,_47){var _48=_3d(cb,_47);el=Ext.getDom(el);el.scrollLeft=_43.scroll.to[0];el.scrollTop=_43.scroll.to[1];_48.proxyCallback();return _48;},motion:function(el,_4a,_4b,_4c,cb,_4e){return this.run(el,_4a,_4b,_4c,cb,_4e);},color:function(el,_50,_51,_52,cb,_54){var _55=_3d(cb,_54);_55.proxyCallback();return _55;},run:function(el,_57,_58,_59,cb,_5b,_5c){var _5d=_3d(cb,_5b);var o={};for(var k in _57){switch(k){case "points":var by,pts,e=Ext.fly(el,"_animrun");e.position();if(by=_57.points.by){var xy=e.getXY();pts=e.translatePoints([xy[0]+by[0],xy[1]+by[1]]);}else{pts=e.translatePoints(_57.points.to);}o.left=pts.left;o.top=pts.top;if(!parseInt(e.getStyle("left"),10)){e.setLeft(0);}if(!parseInt(e.getStyle("top"),10)){e.setTop(0);}break;case "width":o.width=_57.width.to;break;case "height":o.height=_57.height.to;break;case "opacity":o.opacity=_57.opacity.to;break;default:o[k]=_57[k].to;break;}}jQuery(el).animate(o,_58*1000,undefined,_5d.proxyCallback);return _5d;}};}();Ext.lib.Region=function(t,r,b,l){this.top=t;this[1]=t;this.right=r;this.bottom=b;this.left=l;this[0]=l;};Ext.lib.Region.prototype={contains:function(_68){return (_68.left>=this.left&&_68.right<=this.right&&_68.top>=this.top&&_68.bottom<=this.bottom);},getArea:function(){return ((this.bottom-this.top)*(this.right-this.left));},intersect:function(_69){var t=Math.max(this.top,_69.top);var r=Math.min(this.right,_69.right);var b=Math.min(this.bottom,_69.bottom);var l=Math.max(this.left,_69.left);if(b>=t&&r>=l){return new Ext.lib.Region(t,r,b,l);}else{return null;}},union:function(_6e){var t=Math.min(this.top,_6e.top);var r=Math.max(this.right,_6e.right);var b=Math.max(this.bottom,_6e.bottom);var l=Math.min(this.left,_6e.left);return new Ext.lib.Region(t,r,b,l);},adjust:function(t,l,b,r){this.top+=t;this.left+=l;this.right+=r;this.bottom+=b;return this;}};Ext.lib.Region.getRegion=function(el){var p=Ext.lib.Dom.getXY(el);var t=p[1];var r=p[0]+el.offsetWidth;var b=p[1]+el.offsetHeight;var l=p[0];return new Ext.lib.Region(t,r,b,l);};Ext.lib.Point=function(x,y){if(x instanceof Array){y=x[1];x=x[0];}this.x=this.right=this.left=this[0]=x;this.y=this.top=this.bottom=this[1]=y;};Ext.lib.Point.prototype=new Ext.lib.Region();if(Ext.isIE){jQuery(window).unload(function(){var p=Function.prototype;delete p.createSequence;delete p.defer;delete p.createDelegate;delete p.createCallback;delete p.createInterceptor;});}})(); - diff --git a/www/extras/extjs/adapter/jquery/jquery-plugins.js b/www/extras/extjs/adapter/jquery/jquery-plugins.js deleted file mode 100644 index 967f58a0c..000000000 --- a/www/extras/extjs/adapter/jquery/jquery-plugins.js +++ /dev/null @@ -1,965 +0,0 @@ -/* - * Ext - JS Library 1.0 Alpha 2 - * Copyright(c) 2006-2007, Jack Slocum. - */ - -/* - * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) - * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. - * - * $LastChangedDate$ - * $Rev$ - */ - -jQuery.fn._height = jQuery.fn.height; -jQuery.fn._width = jQuery.fn.width; - -/** - * If used on document, returns the document's height (innerHeight) - * If used on window, returns the viewport's (window) height - * See core docs on height() to see what happens when used on an element. - * - * @example $("#testdiv").height() - * @result 200 - * - * @example $(document).height() - * @result 800 - * - * @example $(window).height() - * @result 400 - * - * @name height - * @type Object - * @cat Plugins/Dimensions - */ -jQuery.fn.height = function() { - if ( this[0] == window ) - return self.innerHeight || - jQuery.boxModel && document.documentElement.clientHeight || - document.body.clientHeight; - - if ( this[0] == document ) - return Math.max( document.body.scrollHeight, document.body.offsetHeight ); - - return this._height(arguments[0]); -}; - -/** - * If used on document, returns the document's width (innerWidth) - * If used on window, returns the viewport's (window) width - * See core docs on height() to see what happens when used on an element. - * - * @example $("#testdiv").width() - * @result 200 - * - * @example $(document).width() - * @result 800 - * - * @example $(window).width() - * @result 400 - * - * @name width - * @type Object - * @cat Plugins/Dimensions - */ -jQuery.fn.width = function() { - if ( this[0] == window ) - return self.innerWidth || - jQuery.boxModel && document.documentElement.clientWidth || - document.body.clientWidth; - - if ( this[0] == document ) - return Math.max( document.body.scrollWidth, document.body.offsetWidth ); - - return this._width(arguments[0]); -}; - -/** - * Returns the inner height value (without border) for the first matched element. - * If used on document, returns the document's height (innerHeight) - * If used on window, returns the viewport's (window) height - * - * @example $("#testdiv").innerHeight() - * @result 800 - * - * @name innerHeight - * @type Number - * @cat Plugins/Dimensions - */ -jQuery.fn.innerHeight = function() { - return this[0] == window || this[0] == document ? - this.height() : - this.css('display') != 'none' ? - this[0].offsetHeight - (parseInt(this.css("borderTopWidth")) || 0) - (parseInt(this.css("borderBottomWidth")) || 0) : - this.height() + (parseInt(this.css("paddingTop")) || 0) + (parseInt(this.css("paddingBottom")) || 0); -}; - -/** - * Returns the inner width value (without border) for the first matched element. - * If used on document, returns the document's Width (innerWidth) - * If used on window, returns the viewport's (window) width - * - * @example $("#testdiv").innerWidth() - * @result 1000 - * - * @name innerWidth - * @type Number - * @cat Plugins/Dimensions - */ -jQuery.fn.innerWidth = function() { - return this[0] == window || this[0] == document ? - this.width() : - this.css('display') != 'none' ? - this[0].offsetWidth - (parseInt(this.css("borderLeftWidth")) || 0) - (parseInt(this.css("borderRightWidth")) || 0) : - this.height() + (parseInt(this.css("paddingLeft")) || 0) + (parseInt(this.css("paddingRight")) || 0); -}; - -/** - * Returns the outer height value (including border) for the first matched element. - * Cannot be used on document or window. - * - * @example $("#testdiv").outerHeight() - * @result 1000 - * - * @name outerHeight - * @type Number - * @cat Plugins/Dimensions - */ -jQuery.fn.outerHeight = function() { - return this[0] == window || this[0] == document ? - this.height() : - this.css('display') != 'none' ? - this[0].offsetHeight : - this.height() + (parseInt(this.css("borderTopWidth")) || 0) + (parseInt(this.css("borderBottomWidth")) || 0) - + (parseInt(this.css("paddingTop")) || 0) + (parseInt(this.css("paddingBottom")) || 0); -}; - -/** - * Returns the outer width value (including border) for the first matched element. - * Cannot be used on document or window. - * - * @example $("#testdiv").outerWidth() - * @result 1000 - * - * @name outerWidth - * @type Number - * @cat Plugins/Dimensions - */ -jQuery.fn.outerWidth = function() { - return this[0] == window || this[0] == document ? - this.width() : - this.css('display') != 'none' ? - this[0].offsetWidth : - this.height() + (parseInt(this.css("borderLeftWidth")) || 0) + (parseInt(this.css("borderRightWidth")) || 0) - + (parseInt(this.css("paddingLeft")) || 0) + (parseInt(this.css("paddingRight")) || 0); -}; - -/** - * Returns how many pixels the user has scrolled to the right (scrollLeft). - * Works on containers with overflow: auto and window/document. - * - * @example $("#testdiv").scrollLeft() - * @result 100 - * - * @name scrollLeft - * @type Number - * @cat Plugins/Dimensions - */ -jQuery.fn.scrollLeft = function() { - if ( this[0] == window || this[0] == document ) - return self.pageXOffset || - jQuery.boxModel && document.documentElement.scrollLeft || - document.body.scrollLeft; - - return this[0].scrollLeft; -}; - -/** - * Returns how many pixels the user has scrolled to the bottom (scrollTop). - * Works on containers with overflow: auto and window/document. - * - * @example $("#testdiv").scrollTop() - * @result 100 - * - * @name scrollTop - * @type Number - * @cat Plugins/Dimensions - */ -jQuery.fn.scrollTop = function() { - if ( this[0] == window || this[0] == document ) - return self.pageYOffset || - jQuery.boxModel && document.documentElement.scrollTop || - document.body.scrollTop; - - return this[0].scrollTop; -}; - -/** - * Returns the location of the element in pixels from the top left corner of the viewport. - * - * For accurate readings make sure to use pixel values for margins, borders and padding. - * - * @example $("#testdiv").offset() - * @result { top: 100, left: 100, scrollTop: 10, scrollLeft: 10 } - * - * @example $("#testdiv").offset({ scroll: false }) - * @result { top: 90, left: 90 } - * - * @example var offset = {} - * $("#testdiv").offset({ scroll: false }, offset) - * @result offset = { top: 90, left: 90 } - * - * @name offset - * @param Object options A hash of options describing what should be included in the final calculations of the offset. - * The options include: - * margin: Should the margin of the element be included in the calculations? True by default. - * If set to false the margin of the element is subtracted from the total offset. - * border: Should the border of the element be included in the calculations? True by default. - * If set to false the border of the element is subtracted from the total offset. - * padding: Should the padding of the element be included in the calculations? False by default. - * If set to true the padding of the element is added to the total offset. - * scroll: Should the scroll offsets of the parent elements be included in the calculations? - * True by default. When true, it adds the total scroll offsets of all parents to the - * total offset and also adds two properties to the returned object, scrollTop and - * scrollLeft. If set to false the scroll offsets of parent elements are ignored. - * If scroll offsets are not needed, set to false to get a performance boost. - * @param Object returnObject An object to store the return value in, so as not to break the chain. If passed in the - * chain will not be broken and the result will be assigned to this object. - * @type Object - * @cat Plugins/Dimensions - * @author Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net) - */ -jQuery.fn.offset = function(options, returnObject) { - var x = 0, y = 0, elem = this[0], parent = this[0], sl = 0, st = 0, options = jQuery.extend({ margin: true, border: true, padding: false, scroll: true }, options || {}); - do { - x += parent.offsetLeft || 0; - y += parent.offsetTop || 0; - - // Mozilla and IE do not add the border - if (jQuery.browser.mozilla || jQuery.browser.msie) { - // get borders - var bt = parseInt(jQuery.css(parent, 'borderTopWidth')) || 0; - var bl = parseInt(jQuery.css(parent, 'borderLeftWidth')) || 0; - - // add borders to offset - x += bl; - y += bt; - - // Mozilla removes the border if the parent has overflow property other than visible - if (jQuery.browser.mozilla && parent != elem && jQuery.css(parent, 'overflow') != 'visible') { - x += bl; - y += bt; - } - } - - var op = parent.offsetParent; - if (op && (op.tagName == 'BODY' || op.tagName == 'HTML')) { - // Safari doesn't add the body margin for elments positioned with static or relative - if (jQuery.browser.safari && jQuery.css(parent, 'position') != 'absolute') { - x += parseInt(jQuery.css(op, 'marginLeft')) || 0; - y += parseInt(jQuery.css(op, 'marginTop')) || 0; - } - - // Exit the loop - break; - } - - if (options.scroll) { - // Need to get scroll offsets in-between offsetParents - do { - sl += parent.scrollLeft || 0; - st += parent.scrollTop || 0; - - parent = parent.parentNode; - - // Mozilla removes the border if the parent has overflow property other than visible - if (jQuery.browser.mozilla && parent != elem && parent != op && parent.style && jQuery.css(parent, 'overflow') != 'visible') { - y += parseInt(jQuery.css(parent, 'borderTopWidth')) || 0; - x += parseInt(jQuery.css(parent, 'borderLeftWidth')) || 0; - } - } while (parent != op); - } else { - parent = parent.offsetParent; - } - } while (parent); - - if ( !options.margin) { - x -= parseInt(jQuery.css(elem, 'marginLeft')) || 0; - y -= parseInt(jQuery.css(elem, 'marginTop')) || 0; - } - - // Safari and Opera do not add the border for the element - if ( options.border && (jQuery.browser.safari || jQuery.browser.opera) ) { - x += parseInt(jQuery.css(elem, 'borderLeftWidth')) || 0; - y += parseInt(jQuery.css(elem, 'borderTopWidth')) || 0; - } else if ( !options.border && !(jQuery.browser.safari || jQuery.browser.opera) ) { - x -= parseInt(jQuery.css(elem, 'borderLeftWidth')) || 0; - y -= parseInt(jQuery.css(elem, 'borderTopWidth')) || 0; - } - - if ( options.padding ) { - x += parseInt(jQuery.css(elem, 'paddingLeft')) || 0; - y += parseInt(jQuery.css(elem, 'paddingTop')) || 0; - } - - // Opera thinks offset is scroll offset for display: inline elements - if (options.scroll && jQuery.browser.opera && jQuery.css(elem, 'display') == 'inline') { - sl -= elem.scrollLeft || 0; - st -= elem.scrollTop || 0; - } - - var returnValue = options.scroll ? { top: y - st, left: x - sl, scrollTop: st, scrollLeft: sl } - : { top: y, left: x }; - - if (returnObject) { jQuery.extend(returnObject, returnValue); return this; } - else { return returnValue; } -}; - - - -// FORM PLUGIN - -/* - * jQuery form plugin - * @requires jQuery v1.0.3 - * - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - * Revision: $Id$ - * Version: 0.9 - */ - -/** - * ajaxSubmit() provides a mechanism for submitting an HTML form using AJAX. - * - * ajaxSubmit accepts a single argument which can be either a success callback function - * or an options Object. If a function is provided it will be invoked upon successful - * completion of the submit and will be passed the response from the server. - * If an options Object is provided, the following attributes are supported: - * - * target: Identifies the element(s) in the page to be updated with the server response. - * This value may be specified as a jQuery selection string, a jQuery object, - * or a DOM element. - * default value: null - * - * url: URL to which the form data will be submitted. - * default value: value of form's 'action' attribute - * - * method: @deprecated use 'type' - * type: The method in which the form data should be submitted, 'GET' or 'POST'. - * default value: value of form's 'method' attribute (or 'GET' if none found) - * - * before: @deprecated use 'beforeSubmit' - * beforeSubmit: Callback method to be invoked before the form is submitted. - * default value: null - * - * after: @deprecated use 'success' - * success: Callback method to be invoked after the form has been successfully submitted - * and the response has been returned from the server - * default value: null - * - * dataType: Expected dataType of the response. One of: null, 'xml', 'script', or 'json' - * default value: null - * - * semantic: Boolean flag indicating whether data must be submitted in semantic order (slower). - * default value: false - * - * resetForm: Boolean flag indicating whether the form should be reset if the submit is successful - * - * clearForm: Boolean flag indicating whether the form should be cleared if the submit is successful - * - * - * The 'beforeSubmit' callback can be provided as a hook for running pre-submit logic or for - * validating the form data. If the 'beforeSubmit' callback returns false then the form will - * not be submitted. The 'beforeSubmit' callback is invoked with three arguments: the form data - * in array format, the jQuery object, and the options object passed into ajaxSubmit. - * The form data array takes the following form: - * - * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ] - * - * If a 'success' callback method is provided it is invoked after the response has been returned - * from the server. It is passed the responseText or responseXML value (depending on dataType). - * See jQuery.ajax for further details. - * - * - * The dataType option provides a means for specifying how the server response should be handled. - * This maps directly to the jQuery.httpData method. The following values are supported: - * - * 'xml': if dataType == 'xml' the server response is treated as XML and the 'after' - * callback method, if specified, will be passed the responseXML value - * 'json': if dataType == 'json' the server response will be evaluted and passed to - * the 'after' callback, if specified - * 'script': if dataType == 'script' the server response is evaluated in the global context - * - * - * Note that it does not make sense to use both the 'target' and 'dataType' options. If both - * are provided the target will be ignored. - * - * The semantic argument can be used to force form serialization in semantic order. - * This is normally true anyway, unless the form contains input elements of type='image'. - * If your form must be submitted with name/value pairs in semantic order and your form - * contains an input of type='image" then pass true for this arg, otherwise pass false - * (or nothing) to avoid the overhead for this logic. - * - * - * When used on its own, ajaxSubmit() is typically bound to a form's submit event like this: - * - * $("#form-id").submit(function() { - * $(this).ajaxSubmit(options); - * return false; // cancel conventional submit - * }); - * - * When using ajaxForm(), however, this is done for you. - * - * @example - * $('#myForm').ajaxSubmit(function(data) { - * alert('Form submit succeeded! Server returned: ' + data); - * }); - * @desc Submit form and alert server response - * - * - * @example - * var options = { - * target: '#myTargetDiv' - * }; - * $('#myForm').ajaxSubmit(options); - * @desc Submit form and update page element with server response - * - * - * @example - * var options = { - * success: function(responseText) { - * alert(responseText); - * } - * }; - * $('#myForm').ajaxSubmit(options); - * @desc Submit form and alert the server response - * - * - * @example - * var options = { - * beforeSubmit: function(formArray, jqForm) { - * if (formArray.length == 0) { - * alert('Please enter data.'); - * return false; - * } - * } - * }; - * $('#myForm').ajaxSubmit(options); - * @desc Pre-submit validation which aborts the submit operation if form data is empty - * - * - * @example - * var options = { - * url: myJsonUrl.php, - * dataType: 'json', - * success: function(data) { - * // 'data' is an object representing the the evaluated json data - * } - * }; - * $('#myForm').ajaxSubmit(options); - * @desc json data returned and evaluated - * - * - * @example - * var options = { - * url: myXmlUrl.php, - * dataType: 'xml', - * success: function(responseXML) { - * // responseXML is XML document object - * var data = $('myElement', responseXML).text(); - * } - * }; - * $('#myForm').ajaxSubmit(options); - * @desc XML data returned from server - * - * - * @example - * var options = { - * resetForm: true - * }; - * $('#myForm').ajaxSubmit(options); - * @desc submit form and reset it if successful - * - * @example - * $('#myForm).submit(function() { - * $(this).ajaxSubmit(); - * return false; - * }); - * @desc Bind form's submit event to use ajaxSubmit - * - * - * @name ajaxSubmit - * @type jQuery - * @param options object literal containing options which control the form submission process - * @cat Plugins/Form - * @return jQuery - * @see formToArray - * @see ajaxForm - * @see $.ajax - * @author jQuery Community - */ -jQuery.fn.ajaxSubmit = function(options) { - if (typeof options == 'function') - options = { success: options }; - - options = jQuery.extend({ - url: this.attr('action') || '', - method: this.attr('method') || 'GET' - }, options || {}); - - // remap deprecated options (temporarily) - options.success = options.success || options.after; - options.beforeSubmit = options.beforeSubmit || options.before; - options.type = options.type || options.method; - - var a = this.formToArray(options.semantic); - - // give pre-submit callback an opportunity to abort the submit - if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) return this; - - var q = jQuery.param(a); - - if (options.type.toUpperCase() == 'GET') { - // if url already has a '?' then append args after '&' - options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q; - options.data = null; // data is null for 'get' - } - else - options.data = q; // data is the query string for 'post' - - var $form = this, callbacks = []; - if (options.resetForm) callbacks.push(function() { $form.resetForm(); }); - if (options.clearForm) callbacks.push(function() { $form.clearForm(); }); - - // perform a load on the target only if dataType is not provided - if (!options.dataType && options.target) { - var oldSuccess = options.success || function(){}; - callbacks.push(function(data, status) { - jQuery(options.target).attr("innerHTML", data).evalScripts().each(oldSuccess, [data, status]); - }); - } - else if (options.success) - callbacks.push(options.success); - - options.success = function(data, status) { - for (var i=0, max=callbacks.length; i < max; i++) - callbacks[i](data, status); - }; - - jQuery.ajax(options); - return this; -}; - -/** - * ajaxForm() provides a mechanism for fully automating form submission. - * - * The advantages of using this method instead of ajaxSubmit() are: - * - * 1: This method will include coordinates for elements (if the element - * is used to submit the form). - * 2. This method will include the submit element's name/value data (for the element that was - * used to submit the form). - * 3. This method binds the submit() method to the form for you. - * - * Note that for accurate x/y coordinates of image submit elements in all browsers - * you need to also use the "dimensions" plugin (this method will auto-detect its presence). - * - * The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely - * passes the options argument along after properly binding events for submit elements and - * the form itself. See ajaxSubmit for a full description of the options argument. - * - * - * @example - * var options = { - * target: '#myTargetDiv' - * }; - * $('#myForm').ajaxSForm(options); - * @desc Bind form's submit event so that 'myTargetDiv' is updated with the server response - * when the form is submitted. - * - * - * @example - * var options = { - * success: function(responseText) { - * alert(responseText); - * } - * }; - * $('#myForm').ajaxSubmit(options); - * @desc Bind form's submit event so that server response is alerted after the form is submitted. - * - * - * @example - * var options = { - * beforeSubmit: function(formArray, jqForm) { - * if (formArray.length == 0) { - * alert('Please enter data.'); - * return false; - * } - * } - * }; - * $('#myForm').ajaxSubmit(options); - * @desc Bind form's submit event so that pre-submit callback is invoked before the form - * is submitted. - * - * - * @name ajaxForm - * @param options object literal containing options which control the form submission process - * @return jQuery - * @cat Plugins/Form - * @type jQuery - * @see ajaxSubmit - * @author jQuery Community - */ -jQuery.fn.ajaxForm = function(options) { - return this.each(function() { - jQuery("input:submit,input:image,button:submit", this).click(function(ev) { - var $form = this.form; - $form.clk = this; - if (this.type == 'image') { - if (ev.offsetX != undefined) { - $form.clk_x = ev.offsetX; - $form.clk_y = ev.offsetY; - } else if (typeof jQuery.fn.offset == 'function') { // try to use dimensions plugin - var offset = jQuery(this).offset(); - $form.clk_x = ev.pageX - offset.left; - $form.clk_y = ev.pageY - offset.top; - } else { - $form.clk_x = ev.pageX - this.offsetLeft; - $form.clk_y = ev.pageY - this.offsetTop; - } - } - // clear form vars - setTimeout(function() { - $form.clk = $form.clk_x = $form.clk_y = null; - }, 10); - }) - }).submit(function(e) { - jQuery(this).ajaxSubmit(options); - return false; - }); -}; - - -/** - * formToArray() gathers form element data into an array of objects that can - * be passed to any of the following ajax functions: $.get, $.post, or load. - * Each object in the array has both a 'name' and 'value' property. An example of - * an array for a simple login form might be: - * - * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ] - * - * It is this array that is passed to pre-submit callback functions provided to the - * ajaxSubmit() and ajaxForm() methods. - * - * The semantic argument can be used to force form serialization in semantic order. - * This is normally true anyway, unless the form contains input elements of type='image'. - * If your form must be submitted with name/value pairs in semantic order and your form - * contains an input of type='image" then pass true for this arg, otherwise pass false - * (or nothing) to avoid the overhead for this logic. - * - * @example var data = $("#myForm").formToArray(); - * $.post( "myscript.cgi", data ); - * @desc Collect all the data from a form and submit it to the server. - * - * @name formToArray - * @param semantic true if serialization must maintain strict semantic ordering of elements (slower) - * @type Array - * @cat Plugins/Form - * @see ajaxForm - * @see ajaxSubmit - * @author jQuery Community - */ -jQuery.fn.formToArray = function(semantic) { - var a = []; - if (this.length == 0) return a; - - var form = this[0]; - var els = semantic ? form.getElementsByTagName('*') : form.elements; - if (!els) return a; - for(var i=0, max=els.length; i < max; i++) { - var el = els[i]; - var n = el.name; - if (!n) continue; - - if (semantic && form.clk && el.type == "image") { - // handle image inputs on the fly when semantic == true - if(!el.disabled && form.clk == el) - a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y}); - continue; - } - var v = jQuery.fieldValue(el, true); - if (v === null) continue; - if (v.constructor == Array) { - for(var j=0, jmax=v.length; j < jmax; j++) - a.push({name: n, value: v[j]}); - } - else - a.push({name: n, value: v}); - } - - if (!semantic && form.clk) { - // input type=='image' are not found in elements array! handle them here - var inputs = form.getElementsByTagName("input"); - for(var i=0, max=inputs.length; i < max; i++) { - var input = inputs[i]; - var n = input.name; - if(n && !input.disabled && input.type == "image" && form.clk == input) - a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y}); - } - } - return a; -}; - - -/** - * Serializes form data into a 'submittable' string. This method will return a string - * in the format: name1=value1&name2=value2 - * - * The semantic argument can be used to force form serialization in semantic order. - * If your form must be submitted with name/value pairs in semantic order then pass - * true for this arg, otherwise pass false (or nothing) to avoid the overhead for - * this logic (which can be significant for very large forms). - * - * @example var data = $("#myForm").formSerialize(); - * $.ajax('POST', "myscript.cgi", data); - * @desc Collect all the data from a form into a single string - * - * @name formSerialize - * @param semantic true if serialization must maintain strict semantic ordering of elements (slower) - * @type String - * @cat Plugins/Form - * @see formToArray - * @author jQuery Community - */ -jQuery.fn.formSerialize = function(semantic) { - //hand off to jQuery.param for proper encoding - return jQuery.param(this.formToArray(semantic)); -}; - - -/** - * Serializes all field elements in the jQuery object into a query string. - * This method will return a string in the format: name1=value1&name2=value2 - * - * The successful argument controls whether or not serialization is limited to - * 'successful' controls (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls). - * The default value of the successful argument is true. - * - * @example var data = $("input").formSerialize(); - * @desc Collect the data from all successful input elements into a query string - * - * @example var data = $(":radio").formSerialize(); - * @desc Collect the data from all successful radio input elements into a query string - * - * @example var data = $("#myForm :checkbox").formSerialize(); - * @desc Collect the data from all successful checkbox input elements in myForm into a query string - * - * @example var data = $("#myForm :checkbox").formSerialize(false); - * @desc Collect the data from all checkbox elements in myForm (even the unchecked ones) into a query string - * - * @example var data = $(":input").formSerialize(); - * @desc Collect the data from all successful input, select, textarea and button elements into a query string - * - * @name fieldSerialize - * @param successful true if only successful controls should be serialized (default is true) - * @type String - * @cat Plugins/Form - */ -jQuery.fn.fieldSerialize = function(successful) { - var a = []; - this.each(function() { - var n = this.name; - if (!n) return; - var v = jQuery.fieldValue(this, successful); - if (v && v.constructor == Array) { - for (var i=0,max=v.length; i < max; i++) - a.push({name: n, value: v[i]}); - } - else if (v !== null && typeof v != 'undefined') - a.push({name: this.name, value: v}); - }); - //hand off to jQuery.param for proper encoding - return jQuery.param(a); -}; - - -/** - * Returns the value of the field element in the jQuery object. If there is more than one field element - * in the jQuery object the value of the first successful one is returned. - * - * The successful argument controls whether or not the field element must be 'successful' - * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls). - * The default value of the successful argument is true. If this value is false then - * the value of the first field element in the jQuery object is returned. - * - * Note: If no valid value can be determined the return value will be undifined. - * - * Note: The fieldValue returned for a select-multiple element or for a checkbox input will - * always be an array if it is not undefined. - * - * - * @example var data = $("#myPasswordElement").formValue(); - * @desc Gets the current value of the myPasswordElement element - * - * @example var data = $("#myForm :input").formValue(); - * @desc Get the value of the first successful control in the jQuery object. - * - * @example var data = $("#myForm :checkbox").formValue(); - * @desc Get the array of values for the first set of successful checkbox controls in the jQuery object. - * - * @example var data = $("#mySingleSelect").formValue(); - * @desc Get the value of the select control - * - * @example var data = $("#myMultiSelect").formValue(); - * @desc Get the array of selected values for the select-multiple control - * - * @name fieldValue - * @param Boolean successful true if value returned must be for a successful controls (default is true) - * @type String or Array - * @cat Plugins/Form - */ -jQuery.fn.fieldValue = function(successful) { - var cbVal, cbName; - - // loop until we find a value - for (var i=0, max=this.length; i < max; i++) { - var el = this[i]; - var v = jQuery.fieldValue(el, successful); - if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) - continue; - - // for checkboxes, consider multiple elements, for everything else just return first valid value - if (el.type != 'checkbox') return v; - - cbName = cbName || el.name; - if (cbName != el.name) // return if we hit a checkbox with a different name - return cbVal; - cbVal = cbVal || []; - cbVal.push(v); - } - return cbVal; -}; - -/** - * Returns the value of the field element. - * - * The successful argument controls whether or not the field element must be 'successful' - * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls). - * The default value of the successful argument is true. If the given element is not - * successful and the successful arg is not false then the returned value will be null. - * - * Note: The fieldValue returned for a select-multiple element will always be an array. - * - * @example var data = jQuery.fieldValue($("#myPasswordElement")[0]); - * @desc Gets the current value of the myPasswordElement element - * - * @name fieldValue - * @param Element el The DOM element for which the value will be returned - * @param Boolean successful true if value returned must be for a successful controls (default is true) - * @type String or Array - * @cat Plugins/Form - */ -jQuery.fieldValue = function(el, successful) { - var n = el.name, t = el.type, tag = el.tagName.toLowerCase(); - if (typeof successful == 'undefined') successful = true; - - if (successful && ( !n || el.disabled || t == 'reset' || - (t == 'checkbox' || t == 'radio') && !el.checked || - (t == 'submit' || t == 'image') && el.form && el.form.clk != el || - tag == 'select' && el.selectedIndex == -1)) - return null; - - if (tag == 'select') { - var index = el.selectedIndex; - if (index < 0) return null; - var a = [], ops = el.options; - var one = (t == 'select-one'); - var max = (one ? index+1 : ops.length); - for(var i=(one ? index : 0); i < max; i++) { - var op = ops[i]; - if (op.selected) { - // extra pain for IE... - var v = jQuery.browser.msie && !(op.attributes['value'].specified) ? op.text : op.value; - if (one) return v; - a.push(v); - } - } - return a; - } - return el.value; -}; - - -/** - * Clears the form data. Takes the following actions on the form's input fields: - * - input text fields will have their 'value' property set to the empty string - * - select elements will have their 'selectedIndex' property set to -1 - * - checkbox and radio inputs will have their 'checked' property set to false - * - inputs of type submit, button, reset, and hidden will *not* be effected - * - button elements will *not* be effected - * - * @example $('form').clearForm(); - * @desc Clears all forms on the page. - * - * @name clearForm - * @type jQuery - * @cat Plugins/Form - * @see resetForm - */ -jQuery.fn.clearForm = function() { - return this.each(function() { - jQuery('input,select,textarea', this).clearFields(); - }); -}; - -/** - * Clears the selected form elements. Takes the following actions on the matched elements: - * - input text fields will have their 'value' property set to the empty string - * - select elements will have their 'selectedIndex' property set to -1 - * - checkbox and radio inputs will have their 'checked' property set to false - * - inputs of type submit, button, reset, and hidden will *not* be effected - * - button elements will *not* be effected - * - * @example $('.myInputs').clearFields(); - * @desc Clears all inputs with class myInputs - * - * @name clearFields - * @type jQuery - * @cat Plugins/Form - * @see clearForm - */ -jQuery.fn.clearFields = jQuery.fn.clearInputs = function() { - return this.each(function() { - var t = this.type, tag = this.tagName.toLowerCase(); - if (t == 'text' || t == 'password' || tag == 'textarea') - this.value = ''; - else if (t == 'checkbox' || t == 'radio') - this.checked = false; - else if (tag == 'select') - this.selectedIndex = -1; - }); -}; - - -/** - * Resets the form data. Causes all form elements to be reset to their original value. - * - * @example $('form').resetForm(); - * @desc Resets all forms on the page. - * - * @name resetForm - * @type jQuery - * @cat Plugins/Form - * @see clearForm - */ -jQuery.fn.resetForm = function() { - return this.each(function() { - // guard against an input with the name of 'reset' - // note that IE reports the reset function as an 'object' - if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) - this.reset(); - }); -}; diff --git a/www/extras/extjs/adapter/jquery/jquery.js b/www/extras/extjs/adapter/jquery/jquery.js deleted file mode 100644 index 709be4ac2..000000000 --- a/www/extras/extjs/adapter/jquery/jquery.js +++ /dev/null @@ -1,2201 +0,0 @@ -/* prevent execution of jQuery if included more than once */ -if(typeof window.jQuery == "undefined") { -/* - * jQuery 1.1.1 - New Wave Javascript - * - * Copyright (c) 2007 John Resig (jquery.com) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * $Date: 2007-01-22 00:27:54 -0500 (Mon, 22 Jan 2007) $ - * $Rev: 1153 $ - */ - -// Global undefined variable -window.undefined = window.undefined; -var jQuery = function(a,c) { - // If the context is global, return a new object - if ( window == this ) - return new jQuery(a,c); - - // Make sure that a selection was provided - a = a || document; - - // HANDLE: $(function) - // Shortcut for document ready - if ( jQuery.isFunction(a) ) - return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a ); - - // Handle HTML strings - if ( typeof a == "string" ) { - // HANDLE: $(html) -> $(array) - var m = /^[^<]*(<(.|\n)+>)[^>]*$/.exec(a); - if ( m ) - a = jQuery.clean( [ m[1] ] ); - - // HANDLE: $(expr) - else - return new jQuery( c ).find( a ); - } - - return this.setArray( - // HANDLE: $(array) - a.constructor == Array && a || - - // HANDLE: $(arraylike) - // Watch for when an array-like object is passed as the selector - (a.jquery || a.length && a != window && !a.nodeType && a[0] != undefined && a[0].nodeType) && jQuery.makeArray( a ) || - - // HANDLE: $(*) - [ a ] ); -}; - -// Map over the $ in case of overwrite -if ( typeof $ != "undefined" ) - jQuery._$ = $; - -// Map the jQuery namespace to the '$' one -var $ = jQuery; - -jQuery.fn = jQuery.prototype = { - jquery: "1.1.1", - - size: function() { - return this.length; - }, - - length: 0, - - get: function( num ) { - return num == undefined ? - - // Return a 'clean' array - jQuery.makeArray( this ) : - - // Return just the object - this[num]; - }, - pushStack: function( a ) { - var ret = jQuery(this); - ret.prevObject = this; - return ret.setArray( a ); - }, - setArray: function( a ) { - this.length = 0; - [].push.apply( this, a ); - return this; - }, - each: function( fn, args ) { - return jQuery.each( this, fn, args ); - }, - index: function( obj ) { - var pos = -1; - this.each(function(i){ - if ( this == obj ) pos = i; - }); - return pos; - }, - - attr: function( key, value, type ) { - var obj = key; - - // Look for the case where we're accessing a style value - if ( key.constructor == String ) - if ( value == undefined ) - return this.length && jQuery[ type || "attr" ]( this[0], key ) || undefined; - else { - obj = {}; - obj[ key ] = value; - } - - // Check to see if we're setting style values - return this.each(function(index){ - // Set all the styles - for ( var prop in obj ) - jQuery.attr( - type ? this.style : this, - prop, jQuery.prop(this, obj[prop], type, index, prop) - ); - }); - }, - - css: function( key, value ) { - return this.attr( key, value, "curCSS" ); - }, - - text: function(e) { - if ( typeof e == "string" ) - return this.empty().append( document.createTextNode( e ) ); - - var t = ""; - jQuery.each( e || this, function(){ - jQuery.each( this.childNodes, function(){ - if ( this.nodeType != 8 ) - t += this.nodeType != 1 ? - this.nodeValue : jQuery.fn.text([ this ]); - }); - }); - return t; - }, - - wrap: function() { - // The elements to wrap the target around - var a = jQuery.clean(arguments); - - // Wrap each of the matched elements individually - return this.each(function(){ - // Clone the structure that we're using to wrap - var b = a[0].cloneNode(true); - - // Insert it before the element to be wrapped - this.parentNode.insertBefore( b, this ); - - // Find the deepest point in the wrap structure - while ( b.firstChild ) - b = b.firstChild; - - // Move the matched element to within the wrap structure - b.appendChild( this ); - }); - }, - append: function() { - return this.domManip(arguments, true, 1, function(a){ - this.appendChild( a ); - }); - }, - prepend: function() { - return this.domManip(arguments, true, -1, function(a){ - this.insertBefore( a, this.firstChild ); - }); - }, - before: function() { - return this.domManip(arguments, false, 1, function(a){ - this.parentNode.insertBefore( a, this ); - }); - }, - after: function() { - return this.domManip(arguments, false, -1, function(a){ - this.parentNode.insertBefore( a, this.nextSibling ); - }); - }, - end: function() { - return this.prevObject || jQuery([]); - }, - find: function(t) { - return this.pushStack( jQuery.map( this, function(a){ - return jQuery.find(t,a); - }) ); - }, - clone: function(deep) { - return this.pushStack( jQuery.map( this, function(a){ - return a.cloneNode( deep != undefined ? deep : true ); - }) ); - }, - - filter: function(t) { - return this.pushStack( - jQuery.isFunction( t ) && - jQuery.grep(this, function(el, index){ - return t.apply(el, [index]) - }) || - - jQuery.multiFilter(t,this) ); - }, - - not: function(t) { - return this.pushStack( - t.constructor == String && - jQuery.multiFilter(t,this,true) || - - jQuery.grep(this,function(a){ - if ( t.constructor == Array || t.jquery ) - return jQuery.inArray( t, a ) < 0; - else - return a != t; - }) ); - }, - - add: function(t) { - return this.pushStack( jQuery.merge( - this.get(), - t.constructor == String ? - jQuery(t).get() : - t.length != undefined && !t.nodeName ? - t : [t] ) - ); - }, - is: function(expr) { - return expr ? jQuery.filter(expr,this).r.length > 0 : false; - }, - - val: function( val ) { - return val == undefined ? - ( this.length ? this[0].value : null ) : - this.attr( "value", val ); - }, - - html: function( val ) { - return val == undefined ? - ( this.length ? this[0].innerHTML : null ) : - this.empty().append( val ); - }, - domManip: function(args, table, dir, fn){ - var clone = this.length > 1; - var a = jQuery.clean(args); - if ( dir < 0 ) - a.reverse(); - - return this.each(function(){ - var obj = this; - - if ( table && jQuery.nodeName(this, "table") && jQuery.nodeName(a[0], "tr") ) - obj = this.getElementsByTagName("tbody")[0] || this.appendChild(document.createElement("tbody")); - - jQuery.each( a, function(){ - fn.apply( obj, [ clone ? this.cloneNode(true) : this ] ); - }); - - }); - } -}; - -jQuery.extend = jQuery.fn.extend = function() { - // copy reference to target object - var target = arguments[0], - a = 1; - - // extend jQuery itself if only one argument is passed - if ( arguments.length == 1 ) { - target = this; - a = 0; - } - var prop; - while (prop = arguments[a++]) - // Extend the base object - for ( var i in prop ) target[i] = prop[i]; - - // Return the modified object - return target; -}; - -jQuery.extend({ - noConflict: function() { - if ( jQuery._$ ) - $ = jQuery._$; - return jQuery; - }, - - // This may seem like some crazy code, but trust me when I say that this - // is the only cross-browser way to do this. --John - isFunction: function( fn ) { - return !!fn && typeof fn != "string" && - typeof fn[0] == "undefined" && /function/i.test( fn + "" ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); - }, - // args is for internal usage only - each: function( obj, fn, args ) { - if ( obj.length == undefined ) - for ( var i in obj ) - fn.apply( obj[i], args || [i, obj[i]] ); - else - for ( var i = 0, ol = obj.length; i < ol; i++ ) - if ( fn.apply( obj[i], args || [i, obj[i]] ) === false ) break; - return obj; - }, - - prop: function(elem, value, type, index, prop){ - // Handle executable functions - if ( jQuery.isFunction( value ) ) - return value.call( elem, [index] ); - - // exclude the following css properties to add px - var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i; - - // Handle passing in a number to a CSS property - if ( value.constructor == Number && type == "curCSS" && !exclude.test(prop) ) - return value + "px"; - - return value; - }, - - className: { - // internal only, use addClass("class") - add: function( elem, c ){ - jQuery.each( c.split(/\s+/), function(i, cur){ - if ( !jQuery.className.has( elem.className, cur ) ) - elem.className += ( elem.className ? " " : "" ) + cur; - }); - }, - - // internal only, use removeClass("class") - remove: function( elem, c ){ - elem.className = c ? - jQuery.grep( elem.className.split(/\s+/), function(cur){ - return !jQuery.className.has( c, cur ); - }).join(" ") : ""; - }, - - // internal only, use is(".class") - has: function( t, c ) { - t = t.className || t; - return t && new RegExp("(^|\\s)" + c + "(\\s|$)").test( t ); - } - }, - swap: function(e,o,f) { - for ( var i in o ) { - e.style["old"+i] = e.style[i]; - e.style[i] = o[i]; - } - f.apply( e, [] ); - for ( var i in o ) - e.style[i] = e.style["old"+i]; - }, - - css: function(e,p) { - if ( p == "height" || p == "width" ) { - var old = {}, oHeight, oWidth, d = ["Top","Bottom","Right","Left"]; - - jQuery.each( d, function(){ - old["padding" + this] = 0; - old["border" + this + "Width"] = 0; - }); - - jQuery.swap( e, old, function() { - if (jQuery.css(e,"display") != "none") { - oHeight = e.offsetHeight; - oWidth = e.offsetWidth; - } else { - e = jQuery(e.cloneNode(true)) - .find(":radio").removeAttr("checked").end() - .css({ - visibility: "hidden", position: "absolute", display: "block", right: "0", left: "0" - }).appendTo(e.parentNode)[0]; - - var parPos = jQuery.css(e.parentNode,"position"); - if ( parPos == "" || parPos == "static" ) - e.parentNode.style.position = "relative"; - - oHeight = e.clientHeight; - oWidth = e.clientWidth; - - if ( parPos == "" || parPos == "static" ) - e.parentNode.style.position = "static"; - - e.parentNode.removeChild(e); - } - }); - - return p == "height" ? oHeight : oWidth; - } - - return jQuery.curCSS( e, p ); - }, - - curCSS: function(elem, prop, force) { - var ret; - - if (prop == "opacity" && jQuery.browser.msie) - return jQuery.attr(elem.style, "opacity"); - - if (prop == "float" || prop == "cssFloat") - prop = jQuery.browser.msie ? "styleFloat" : "cssFloat"; - - if (!force && elem.style[prop]) - ret = elem.style[prop]; - - else if (document.defaultView && document.defaultView.getComputedStyle) { - - if (prop == "cssFloat" || prop == "styleFloat") - prop = "float"; - - prop = prop.replace(/([A-Z])/g,"-$1").toLowerCase(); - var cur = document.defaultView.getComputedStyle(elem, null); - - if ( cur ) - ret = cur.getPropertyValue(prop); - else if ( prop == "display" ) - ret = "none"; - else - jQuery.swap(elem, { display: "block" }, function() { - var c = document.defaultView.getComputedStyle(this, ""); - ret = c && c.getPropertyValue(prop) || ""; - }); - - } else if (elem.currentStyle) { - - var newProp = prop.replace(/\-(\w)/g,function(m,c){return c.toUpperCase();}); - ret = elem.currentStyle[prop] || elem.currentStyle[newProp]; - - } - - return ret; - }, - - clean: function(a) { - var r = []; - - jQuery.each( a, function(i,arg){ - if ( !arg ) return; - - if ( arg.constructor == Number ) - arg = arg.toString(); - - // Convert html string into DOM nodes - if ( typeof arg == "string" ) { - // Trim whitespace, otherwise indexOf won't work as expected - var s = jQuery.trim(arg), div = document.createElement("div"), tb = []; - - var wrap = - // option or optgroup - !s.indexOf("", ""] || - - (!s.indexOf("", ""] || - - !s.indexOf("", ""] || - - // matched above - (!s.indexOf("", ""] || - - [0,"",""]; - - // Go to html and back, then peel off extra wrappers - div.innerHTML = wrap[1] + s + wrap[2]; - - // Move to the right depth - while ( wrap[0]-- ) - div = div.firstChild; - - // Remove IE's autoinserted from table fragments - if ( jQuery.browser.msie ) { - - // String was a , *may* have spurious - if ( !s.indexOf(" or - else if ( wrap[1] == "
" && s.indexOf("= 0 ; --n ) - if ( jQuery.nodeName(tb[n], "tbody") && !tb[n].childNodes.length ) - tb[n].parentNode.removeChild(tb[n]); - - } - - arg = div.childNodes; - } - - if ( arg.length === 0 ) - return; - - if ( arg[0] == undefined ) - r.push( arg ); - else - r = jQuery.merge( r, arg ); - - }); - - return r; - }, - - attr: function(elem, name, value){ - var fix = { - "for": "htmlFor", - "class": "className", - "float": jQuery.browser.msie ? "styleFloat" : "cssFloat", - cssFloat: jQuery.browser.msie ? "styleFloat" : "cssFloat", - innerHTML: "innerHTML", - className: "className", - value: "value", - disabled: "disabled", - checked: "checked", - readonly: "readOnly", - selected: "selected" - }; - - // IE actually uses filters for opacity ... elem is actually elem.style - if ( name == "opacity" && jQuery.browser.msie && value != undefined ) { - // IE has trouble with opacity if it does not have layout - // Force it by setting the zoom level - elem.zoom = 1; - - // Set the alpha filter to set the opacity - return elem.filter = elem.filter.replace(/alpha\([^\)]*\)/gi,"") + - ( value == 1 ? "" : "alpha(opacity=" + value * 100 + ")" ); - - } else if ( name == "opacity" && jQuery.browser.msie ) - return elem.filter ? - parseFloat( elem.filter.match(/alpha\(opacity=(.*)\)/)[1] ) / 100 : 1; - - // Mozilla doesn't play well with opacity 1 - if ( name == "opacity" && jQuery.browser.mozilla && value == 1 ) - value = 0.9999; - - // Certain attributes only work when accessed via the old DOM 0 way - if ( fix[name] ) { - if ( value != undefined ) elem[fix[name]] = value; - return elem[fix[name]]; - - } else if ( value == undefined && jQuery.browser.msie && jQuery.nodeName(elem, "form") && (name == "action" || name == "method") ) - return elem.getAttributeNode(name).nodeValue; - - // IE elem.getAttribute passes even for style - else if ( elem.tagName ) { - if ( value != undefined ) elem.setAttribute( name, value ); - return elem.getAttribute( name ); - - } else { - name = name.replace(/-([a-z])/ig,function(z,b){return b.toUpperCase();}); - if ( value != undefined ) elem[name] = value; - return elem[name]; - } - }, - trim: function(t){ - return t.replace(/^\s+|\s+$/g, ""); - }, - - makeArray: function( a ) { - var r = []; - - if ( a.constructor != Array ) - for ( var i = 0, al = a.length; i < al; i++ ) - r.push( a[i] ); - else - r = a.slice( 0 ); - - return r; - }, - - inArray: function( b, a ) { - for ( var i = 0, al = a.length; i < al; i++ ) - if ( a[i] == b ) - return i; - return -1; - }, - merge: function(first, second) { - var r = [].slice.call( first, 0 ); - - // Now check for duplicates between the two arrays - // and only add the unique items - for ( var i = 0, sl = second.length; i < sl; i++ ) - // Check for duplicates - if ( jQuery.inArray( second[i], r ) == -1 ) - // The item is unique, add it - first.push( second[i] ); - - return first; - }, - grep: function(elems, fn, inv) { - // If a string is passed in for the function, make a function - // for it (a handy shortcut) - if ( typeof fn == "string" ) - fn = new Function("a","i","return " + fn); - - var result = []; - - // Go through the array, only saving the items - // that pass the validator function - for ( var i = 0, el = elems.length; i < el; i++ ) - if ( !inv && fn(elems[i],i) || inv && !fn(elems[i],i) ) - result.push( elems[i] ); - - return result; - }, - map: function(elems, fn) { - // If a string is passed in for the function, make a function - // for it (a handy shortcut) - if ( typeof fn == "string" ) - fn = new Function("a","return " + fn); - - var result = [], r = []; - - // Go through the array, translating each of the items to their - // new value (or values). - for ( var i = 0, el = elems.length; i < el; i++ ) { - var val = fn(elems[i],i); - - if ( val !== null && val != undefined ) { - if ( val.constructor != Array ) val = [val]; - result = result.concat( val ); - } - } - - var r = result.length ? [ result[0] ] : []; - - check: for ( var i = 1, rl = result.length; i < rl; i++ ) { - for ( var j = 0; j < i; j++ ) - if ( result[i] == r[j] ) - continue check; - - r.push( result[i] ); - } - - return r; - } -}); - -/* - * Whether the W3C compliant box model is being used. - * - * @property - * @name $.boxModel - * @type Boolean - * @cat JavaScript - */ -new function() { - var b = navigator.userAgent.toLowerCase(); - - // Figure out what browser is being used - jQuery.browser = { - safari: /webkit/.test(b), - opera: /opera/.test(b), - msie: /msie/.test(b) && !/opera/.test(b), - mozilla: /mozilla/.test(b) && !/(compatible|webkit)/.test(b) - }; - - // Check to see if the W3C box model is being used - jQuery.boxModel = !jQuery.browser.msie || document.compatMode == "CSS1Compat"; -}; - -jQuery.each({ - parent: "a.parentNode", - parents: "jQuery.parents(a)", - next: "jQuery.nth(a,2,'nextSibling')", - prev: "jQuery.nth(a,2,'previousSibling')", - siblings: "jQuery.sibling(a.parentNode.firstChild,a)", - children: "jQuery.sibling(a.firstChild)" -}, function(i,n){ - jQuery.fn[ i ] = function(a) { - var ret = jQuery.map(this,n); - if ( a && typeof a == "string" ) - ret = jQuery.multiFilter(a,ret); - return this.pushStack( ret ); - }; -}); - -jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after" -}, function(i,n){ - jQuery.fn[ i ] = function(){ - var a = arguments; - return this.each(function(){ - for ( var j = 0, al = a.length; j < al; j++ ) - jQuery(a[j])[n]( this ); - }); - }; -}); - -jQuery.each( { - removeAttr: function( key ) { - jQuery.attr( this, key, "" ); - this.removeAttribute( key ); - }, - addClass: function(c){ - jQuery.className.add(this,c); - }, - removeClass: function(c){ - jQuery.className.remove(this,c); - }, - toggleClass: function( c ){ - jQuery.className[ jQuery.className.has(this,c) ? "remove" : "add" ](this, c); - }, - remove: function(a){ - if ( !a || jQuery.filter( a, [this] ).r.length ) - this.parentNode.removeChild( this ); - }, - empty: function() { - while ( this.firstChild ) - this.removeChild( this.firstChild ); - } -}, function(i,n){ - jQuery.fn[ i ] = function() { - return this.each( n, arguments ); - }; -}); - -jQuery.each( [ "eq", "lt", "gt", "contains" ], function(i,n){ - jQuery.fn[ n ] = function(num,fn) { - return this.filter( ":" + n + "(" + num + ")", fn ); - }; -}); - -jQuery.each( [ "height", "width" ], function(i,n){ - jQuery.fn[ n ] = function(h) { - return h == undefined ? - ( this.length ? jQuery.css( this[0], n ) : null ) : - this.css( n, h.constructor == String ? h : h + "px" ); - }; -}); -jQuery.extend({ - expr: { - "": "m[2]=='*'||jQuery.nodeName(a,m[2])", - "#": "a.getAttribute('id')==m[2]", - ":": { - // Position Checks - lt: "im[3]-0", - nth: "m[3]-0==i", - eq: "m[3]-0==i", - first: "i==0", - last: "i==r.length-1", - even: "i%2==0", - odd: "i%2", - - // Child Checks - "nth-child": "jQuery.nth(a.parentNode.firstChild,m[3],'nextSibling',a)==a", - "first-child": "jQuery.nth(a.parentNode.firstChild,1,'nextSibling')==a", - "last-child": "jQuery.nth(a.parentNode.lastChild,1,'previousSibling')==a", - "only-child": "jQuery.sibling(a.parentNode.firstChild).length==1", - - // Parent Checks - parent: "a.firstChild", - empty: "!a.firstChild", - - // Text Check - contains: "jQuery.fn.text.apply([a]).indexOf(m[3])>=0", - - // Visibility - visible: 'a.type!="hidden"&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden"', - hidden: 'a.type=="hidden"||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden"', - - // Form attributes - enabled: "!a.disabled", - disabled: "a.disabled", - checked: "a.checked", - selected: "a.selected||jQuery.attr(a,'selected')", - - // Form elements - text: "a.type=='text'", - radio: "a.type=='radio'", - checkbox: "a.type=='checkbox'", - file: "a.type=='file'", - password: "a.type=='password'", - submit: "a.type=='submit'", - image: "a.type=='image'", - reset: "a.type=='reset'", - button: 'a.type=="button"||jQuery.nodeName(a,"button")', - input: "/input|select|textarea|button/i.test(a.nodeName)" - }, - ".": "jQuery.className.has(a,m[2])", - "@": { - "=": "z==m[4]", - "!=": "z!=m[4]", - "^=": "z&&!z.indexOf(m[4])", - "$=": "z&&z.substr(z.length - m[4].length,m[4].length)==m[4]", - "*=": "z&&z.indexOf(m[4])>=0", - "": "z", - _resort: function(m){ - return ["", m[1], m[3], m[2], m[5]]; - }, - _prefix: "z=a[m[3]]||jQuery.attr(a,m[3]);" - }, - "[": "jQuery.find(m[2],a).length" - }, - - // The regular expressions that power the parsing engine - parse: [ - // Match: [@value='test'], [@foo] - /^\[ *(@)([a-z0-9_-]*) *([!*$^=]*) *('?"?)(.*?)\4 *\]/i, - - // Match: [div], [div p] - /^(\[)\s*(.*?(\[.*?\])?[^[]*?)\s*\]/, - - // Match: :contains('foo') - /^(:)([a-z0-9_-]*)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/i, - - // Match: :even, :last-chlid - /^([:.#]*)([a-z0-9_*-]*)/i - ], - - token: [ - /^(\/?\.\.)/, "a.parentNode", - /^(>|\/)/, "jQuery.sibling(a.firstChild)", - /^(\+)/, "jQuery.nth(a,2,'nextSibling')", - /^(~)/, function(a){ - var s = jQuery.sibling(a.parentNode.firstChild); - return s.slice(0, jQuery.inArray(a,s)); - } - ], - - multiFilter: function( expr, elems, not ) { - var old, cur = []; - - while ( expr && expr != old ) { - old = expr; - var f = jQuery.filter( expr, elems, not ); - expr = f.t.replace(/^\s*,\s*/, "" ); - cur = not ? elems = f.r : jQuery.merge( cur, f.r ); - } - - return cur; - }, - find: function( t, context ) { - // Quickly handle non-string expressions - if ( typeof t != "string" ) - return [ t ]; - - // Make sure that the context is a DOM Element - if ( context && !context.nodeType ) - context = null; - - // Set the correct context (if none is provided) - context = context || document; - - // Handle the common XPath // expression - if ( !t.indexOf("//") ) { - context = context.documentElement; - t = t.substr(2,t.length); - - // And the / root expression - } else if ( !t.indexOf("/") ) { - context = context.documentElement; - t = t.substr(1,t.length); - if ( t.indexOf("/") >= 1 ) - t = t.substr(t.indexOf("/"),t.length); - } - - // Initialize the search - var ret = [context], done = [], last = null; - - // Continue while a selector expression exists, and while - // we're no longer looping upon ourselves - while ( t && last != t ) { - var r = []; - last = t; - - t = jQuery.trim(t).replace( /^\/\//i, "" ); - - var foundToken = false; - - // An attempt at speeding up child selectors that - // point to a specific element tag - var re = /^[\/>]\s*([a-z0-9*-]+)/i; - var m = re.exec(t); - - if ( m ) { - // Perform our own iteration and filter - jQuery.each( ret, function(){ - for ( var c = this.firstChild; c; c = c.nextSibling ) - if ( c.nodeType == 1 && ( jQuery.nodeName(c, m[1]) || m[1] == "*" ) ) - r.push( c ); - }); - - ret = r; - t = t.replace( re, "" ); - if ( t.indexOf(" ") == 0 ) continue; - foundToken = true; - } else { - // Look for pre-defined expression tokens - for ( var i = 0; i < jQuery.token.length; i += 2 ) { - // Attempt to match each, individual, token in - // the specified order - var re = jQuery.token[i]; - var m = re.exec(t); - - // If the token match was found - if ( m ) { - // Map it against the token's handler - r = ret = jQuery.map( ret, jQuery.isFunction( jQuery.token[i+1] ) ? - jQuery.token[i+1] : - function(a){ return eval(jQuery.token[i+1]); }); - - // And remove the token - t = jQuery.trim( t.replace( re, "" ) ); - foundToken = true; - break; - } - } - } - - // See if there's still an expression, and that we haven't already - // matched a token - if ( t && !foundToken ) { - // Handle multiple expressions - if ( !t.indexOf(",") ) { - // Clean the result set - if ( ret[0] == context ) ret.shift(); - - // Merge the result sets - jQuery.merge( done, ret ); - - // Reset the context - r = ret = [context]; - - // Touch up the selector string - t = " " + t.substr(1,t.length); - - } else { - // Optomize for the case nodeName#idName - var re2 = /^([a-z0-9_-]+)(#)([a-z0-9\\*_-]*)/i; - var m = re2.exec(t); - - // Re-organize the results, so that they're consistent - if ( m ) { - m = [ 0, m[2], m[3], m[1] ]; - - } else { - // Otherwise, do a traditional filter check for - // ID, class, and element selectors - re2 = /^([#.]?)([a-z0-9\\*_-]*)/i; - m = re2.exec(t); - } - - // Try to do a global search by ID, where we can - if ( m[1] == "#" && ret[ret.length-1].getElementById ) { - // Optimization for HTML document case - var oid = ret[ret.length-1].getElementById(m[2]); - - // Do a quick check for node name (where applicable) so - // that div#foo searches will be really fast - ret = r = oid && - (!m[3] || jQuery.nodeName(oid, m[3])) ? [oid] : []; - - } else { - // Pre-compile a regular expression to handle class searches - if ( m[1] == "." ) - var rec = new RegExp("(^|\\s)" + m[2] + "(\\s|$)"); - - // We need to find all descendant elements, it is more - // efficient to use getAll() when we are already further down - // the tree - we try to recognize that here - jQuery.each( ret, function(){ - // Grab the tag name being searched for - var tag = m[1] != "" || m[0] == "" ? "*" : m[2]; - - // Handle IE7 being really dumb about s - if ( jQuery.nodeName(this, "object") && tag == "*" ) - tag = "param"; - - jQuery.merge( r, - m[1] != "" && ret.length != 1 ? - jQuery.getAll( this, [], m[1], m[2], rec ) : - this.getElementsByTagName( tag ) - ); - }); - - // It's faster to filter by class and be done with it - if ( m[1] == "." && ret.length == 1 ) - r = jQuery.grep( r, function(e) { - return rec.test(e.className); - }); - - // Same with ID filtering - if ( m[1] == "#" && ret.length == 1 ) { - // Remember, then wipe out, the result set - var tmp = r; - r = []; - - // Then try to find the element with the ID - jQuery.each( tmp, function(){ - if ( this.getAttribute("id") == m[2] ) { - r = [ this ]; - return false; - } - }); - } - - ret = r; - } - - t = t.replace( re2, "" ); - } - - } - - // If a selector string still exists - if ( t ) { - // Attempt to filter it - var val = jQuery.filter(t,r); - ret = r = val.r; - t = jQuery.trim(val.t); - } - } - - // Remove the root context - if ( ret && ret[0] == context ) ret.shift(); - - // And combine the results - jQuery.merge( done, ret ); - - return done; - }, - - filter: function(t,r,not) { - // Look for common filter expressions - while ( t && /^[a-z[({<*:.#]/i.test(t) ) { - - var p = jQuery.parse, m; - - jQuery.each( p, function(i,re){ - - // Look for, and replace, string-like sequences - // and finally build a regexp out of it - m = re.exec( t ); - - if ( m ) { - // Remove what we just matched - t = t.substring( m[0].length ); - - // Re-organize the first match - if ( jQuery.expr[ m[1] ]._resort ) - m = jQuery.expr[ m[1] ]._resort( m ); - - return false; - } - }); - - // :not() is a special case that can be optimized by - // keeping it out of the expression list - if ( m[1] == ":" && m[2] == "not" ) - r = jQuery.filter(m[3], r, true).r; - - // Handle classes as a special case (this will help to - // improve the speed, as the regexp will only be compiled once) - else if ( m[1] == "." ) { - - var re = new RegExp("(^|\\s)" + m[2] + "(\\s|$)"); - r = jQuery.grep( r, function(e){ - return re.test(e.className || ""); - }, not); - - // Otherwise, find the expression to execute - } else { - var f = jQuery.expr[m[1]]; - if ( typeof f != "string" ) - f = jQuery.expr[m[1]][m[2]]; - - // Build a custom macro to enclose it - eval("f = function(a,i){" + - ( jQuery.expr[ m[1] ]._prefix || "" ) + - "return " + f + "}"); - - // Execute it against the current filter - r = jQuery.grep( r, f, not ); - } - } - - // Return an array of filtered elements (r) - // and the modified expression string (t) - return { r: r, t: t }; - }, - - getAll: function( o, r, token, name, re ) { - for ( var s = o.firstChild; s; s = s.nextSibling ) - if ( s.nodeType == 1 ) { - var add = true; - - if ( token == "." ) - add = s.className && re.test(s.className); - else if ( token == "#" ) - add = s.getAttribute("id") == name; - - if ( add ) - r.push( s ); - - if ( token == "#" && r.length ) break; - - if ( s.firstChild ) - jQuery.getAll( s, r, token, name, re ); - } - - return r; - }, - parents: function( elem ){ - var matched = []; - var cur = elem.parentNode; - while ( cur && cur != document ) { - matched.push( cur ); - cur = cur.parentNode; - } - return matched; - }, - nth: function(cur,result,dir,elem){ - result = result || 1; - var num = 0; - for ( ; cur; cur = cur[dir] ) { - if ( cur.nodeType == 1 ) num++; - if ( num == result || result == "even" && num % 2 == 0 && num > 1 && cur == elem || - result == "odd" && num % 2 == 1 && cur == elem ) return cur; - } - }, - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType == 1 && (!elem || n != elem) ) - r.push( n ); - } - - return r; - } -}); -/* - * A number of helper functions used for managing events. - * Many of the ideas behind this code orignated from - * Dean Edwards' addEvent library. - */ -jQuery.event = { - - // Bind an event to an element - // Original by Dean Edwards - add: function(element, type, handler, data) { - // For whatever reason, IE has trouble passing the window object - // around, causing it to be cloned in the process - if ( jQuery.browser.msie && element.setInterval != undefined ) - element = window; - - // if data is passed, bind to handler - if( data ) - handler.data = data; - - // Make sure that the function being executed has a unique ID - if ( !handler.guid ) - handler.guid = this.guid++; - - // Init the element's event structure - if (!element.events) - element.events = {}; - - // Get the current list of functions bound to this event - var handlers = element.events[type]; - - // If it hasn't been initialized yet - if (!handlers) { - // Init the event handler queue - handlers = element.events[type] = {}; - - // Remember an existing handler, if it's already there - if (element["on" + type]) - handlers[0] = element["on" + type]; - } - - // Add the function to the element's handler list - handlers[handler.guid] = handler; - - // And bind the global event handler to the element - element["on" + type] = this.handle; - - // Remember the function in a global list (for triggering) - if (!this.global[type]) - this.global[type] = []; - this.global[type].push( element ); - }, - - guid: 1, - global: {}, - - // Detach an event or set of events from an element - remove: function(element, type, handler) { - if (element.events) - if ( type && type.type ) - delete element.events[ type.type ][ type.handler.guid ]; - else if (type && element.events[type]) - if ( handler ) - delete element.events[type][handler.guid]; - else - for ( var i in element.events[type] ) - delete element.events[type][i]; - else - for ( var j in element.events ) - this.remove( element, j ); - }, - - trigger: function(type,data,element) { - // Clone the incoming data, if any - data = jQuery.makeArray(data || []); - - // Handle a global trigger - if ( !element ) - jQuery.each( this.global[type] || [], function(){ - jQuery.event.trigger( type, data, this ); - }); - - // Handle triggering a single element - else { - var handler = element["on" + type ], val, - fn = jQuery.isFunction( element[ type ] ); - - if ( handler ) { - // Pass along a fake event - data.unshift( this.fix({ type: type, target: element }) ); - - // Trigger the event - if ( (val = handler.apply( element, data )) !== false ) - this.triggered = true; - } - - if ( fn && val !== false ) - element[ type ](); - - this.triggered = false; - } - }, - - handle: function(event) { - // Handle the second event of a trigger and when - // an event is called after a page has unloaded - if ( typeof jQuery == "undefined" || jQuery.event.triggered ) return; - - // Empty object is for triggered events with no data - event = jQuery.event.fix( event || window.event || {} ); - - // returned undefined or false - var returnValue; - - var c = this.events[event.type]; - - var args = [].slice.call( arguments, 1 ); - args.unshift( event ); - - for ( var j in c ) { - // Pass in a reference to the handler function itself - // So that we can later remove it - args[0].handler = c[j]; - args[0].data = c[j].data; - - if ( c[j].apply( this, args ) === false ) { - event.preventDefault(); - event.stopPropagation(); - returnValue = false; - } - } - - // Clean up added properties in IE to prevent memory leak - if (jQuery.browser.msie) event.target = event.preventDefault = event.stopPropagation = event.handler = event.data = null; - - return returnValue; - }, - - fix: function(event) { - // Fix target property, if necessary - if ( !event.target && event.srcElement ) - event.target = event.srcElement; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == undefined && event.clientX != undefined ) { - var e = document.documentElement, b = document.body; - event.pageX = event.clientX + (e.scrollLeft || b.scrollLeft); - event.pageY = event.clientY + (e.scrollTop || b.scrollTop); - } - - // check if target is a textnode (safari) - if (jQuery.browser.safari && event.target.nodeType == 3) { - // store a copy of the original event object - // and clone because target is read only - var originalEvent = event; - event = jQuery.extend({}, originalEvent); - - // get parentnode from textnode - event.target = originalEvent.target.parentNode; - - // add preventDefault and stopPropagation since - // they will not work on the clone - event.preventDefault = function() { - return originalEvent.preventDefault(); - }; - event.stopPropagation = function() { - return originalEvent.stopPropagation(); - }; - } - - // fix preventDefault and stopPropagation - if (!event.preventDefault) - event.preventDefault = function() { - this.returnValue = false; - }; - - if (!event.stopPropagation) - event.stopPropagation = function() { - this.cancelBubble = true; - }; - - return event; - } -}; - -jQuery.fn.extend({ - bind: function( type, data, fn ) { - return this.each(function(){ - jQuery.event.add( this, type, fn || data, data ); - }); - }, - one: function( type, data, fn ) { - return this.each(function(){ - jQuery.event.add( this, type, function(event) { - jQuery(this).unbind(event); - return (fn || data).apply( this, arguments); - }, data); - }); - }, - unbind: function( type, fn ) { - return this.each(function(){ - jQuery.event.remove( this, type, fn ); - }); - }, - trigger: function( type, data ) { - return this.each(function(){ - jQuery.event.trigger( type, data, this ); - }); - }, - toggle: function() { - // Save reference to arguments for access in closure - var a = arguments; - - return this.click(function(e) { - // Figure out which function to execute - this.lastToggle = this.lastToggle == 0 ? 1 : 0; - - // Make sure that clicks stop - e.preventDefault(); - - // and execute the function - return a[this.lastToggle].apply( this, [e] ) || false; - }); - }, - hover: function(f,g) { - - // A private function for handling mouse 'hovering' - function handleHover(e) { - // Check if mouse(over|out) are still within the same parent element - var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget; - - // Traverse up the tree - while ( p && p != this ) try { p = p.parentNode } catch(e) { p = this; }; - - // If we actually just moused on to a sub-element, ignore it - if ( p == this ) return false; - - // Execute the right function - return (e.type == "mouseover" ? f : g).apply(this, [e]); - } - - // Bind the function to the two event listeners - return this.mouseover(handleHover).mouseout(handleHover); - }, - ready: function(f) { - // If the DOM is already ready - if ( jQuery.isReady ) - // Execute the function immediately - f.apply( document, [jQuery] ); - - // Otherwise, remember the function for later - else { - // Add the function to the wait list - jQuery.readyList.push( function() { return f.apply(this, [jQuery]) } ); - } - - return this; - } -}); - -jQuery.extend({ - /* - * All the code that makes DOM Ready work nicely. - */ - isReady: false, - readyList: [], - - // Handle when the DOM is ready - ready: function() { - // Make sure that the DOM is not already loaded - if ( !jQuery.isReady ) { - // Remember that the DOM is ready - jQuery.isReady = true; - - // If there are functions bound, to execute - if ( jQuery.readyList ) { - // Execute all of them - jQuery.each( jQuery.readyList, function(){ - this.apply( document ); - }); - - // Reset the list of functions - jQuery.readyList = null; - } - // Remove event lisenter to avoid memory leak - if ( jQuery.browser.mozilla || jQuery.browser.opera ) - document.removeEventListener( "DOMContentLoaded", jQuery.ready, false ); - } - } -}); - -new function(){ - - jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," + - "mousedown,mouseup,mousemove,mouseover,mouseout,change,select," + - "submit,keydown,keypress,keyup,error").split(","), function(i,o){ - - // Handle event binding - jQuery.fn[o] = function(f){ - return f ? this.bind(o, f) : this.trigger(o); - }; - - }); - - // If Mozilla is used - if ( jQuery.browser.mozilla || jQuery.browser.opera ) - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", jQuery.ready, false ); - - // If IE is used, use the excellent hack by Matthias Miller - // http://www.outofhanwell.com/blog/index.php?title=the_window_onload_problem_revisited - else if ( jQuery.browser.msie ) { - - // Only works if you document.write() it - document.write("<\/script>"); - - // Use the defer script hack - var script = document.getElementById("__ie_init"); - - // script does not exist if jQuery is loaded dynamically - if ( script ) - script.onreadystatechange = function() { - if ( this.readyState != "complete" ) return; - this.parentNode.removeChild( this ); - jQuery.ready(); - }; - - // Clear from memory - script = null; - - // If Safari is used - } else if ( jQuery.browser.safari ) - // Continually check to see if the document.readyState is valid - jQuery.safariTimer = setInterval(function(){ - // loaded and complete are both valid states - if ( document.readyState == "loaded" || - document.readyState == "complete" ) { - - // If either one are found, remove the timer - clearInterval( jQuery.safariTimer ); - jQuery.safariTimer = null; - - // and execute any waiting functions - jQuery.ready(); - } - }, 10); - - // A fallback to window.onload, that will always work - jQuery.event.add( window, "load", jQuery.ready ); - -}; - -// Clean up after IE to avoid memory leaks -if (jQuery.browser.msie) - jQuery(window).one("unload", function() { - var global = jQuery.event.global; - for ( var type in global ) { - var els = global[type], i = els.length; - if ( i && type != 'unload' ) - do - jQuery.event.remove(els[i-1], type); - while (--i); - } - }); -jQuery.fn.extend({ - - show: function(speed,callback){ - var hidden = this.filter(":hidden"); - speed ? - hidden.animate({ - height: "show", width: "show", opacity: "show" - }, speed, callback) : - - hidden.each(function(){ - this.style.display = this.oldblock ? this.oldblock : ""; - if ( jQuery.css(this,"display") == "none" ) - this.style.display = "block"; - }); - return this; - }, - - hide: function(speed,callback){ - var visible = this.filter(":visible"); - speed ? - visible.animate({ - height: "hide", width: "hide", opacity: "hide" - }, speed, callback) : - - visible.each(function(){ - this.oldblock = this.oldblock || jQuery.css(this,"display"); - if ( this.oldblock == "none" ) - this.oldblock = "block"; - this.style.display = "none"; - }); - return this; - }, - - // Save the old toggle function - _toggle: jQuery.fn.toggle, - toggle: function( fn, fn2 ){ - var args = arguments; - return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ? - this._toggle( fn, fn2 ) : - this.each(function(){ - jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ] - .apply( jQuery(this), args ); - }); - }, - slideDown: function(speed,callback){ - return this.animate({height: "show"}, speed, callback); - }, - slideUp: function(speed,callback){ - return this.animate({height: "hide"}, speed, callback); - }, - slideToggle: function(speed, callback){ - return this.each(function(){ - var state = jQuery(this).is(":hidden") ? "show" : "hide"; - jQuery(this).animate({height: state}, speed, callback); - }); - }, - fadeIn: function(speed, callback){ - return this.animate({opacity: "show"}, speed, callback); - }, - fadeOut: function(speed, callback){ - return this.animate({opacity: "hide"}, speed, callback); - }, - fadeTo: function(speed,to,callback){ - return this.animate({opacity: to}, speed, callback); - }, - animate: function( prop, speed, easing, callback ) { - return this.queue(function(){ - - this.curAnim = jQuery.extend({}, prop); - var opt = jQuery.speed(speed, easing, callback); - - for ( var p in prop ) { - var e = new jQuery.fx( this, opt, p ); - if ( prop[p].constructor == Number ) - e.custom( e.cur(), prop[p] ); - else - e[ prop[p] ]( prop ); - } - - }); - }, - queue: function(type,fn){ - if ( !fn ) { - fn = type; - type = "fx"; - } - - return this.each(function(){ - if ( !this.queue ) - this.queue = {}; - - if ( !this.queue[type] ) - this.queue[type] = []; - - this.queue[type].push( fn ); - - if ( this.queue[type].length == 1 ) - fn.apply(this); - }); - } - -}); - -jQuery.extend({ - - speed: function(speed, easing, fn) { - var opt = speed && speed.constructor == Object ? speed : { - complete: fn || !fn && easing || - jQuery.isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && easing.constructor != Function && easing - }; - - opt.duration = (opt.duration && opt.duration.constructor == Number ? - opt.duration : - { slow: 600, fast: 200 }[opt.duration]) || 400; - - // Queueing - opt.old = opt.complete; - opt.complete = function(){ - jQuery.dequeue(this, "fx"); - if ( jQuery.isFunction( opt.old ) ) - opt.old.apply( this ); - }; - - return opt; - }, - - easing: {}, - - queue: {}, - - dequeue: function(elem,type){ - type = type || "fx"; - - if ( elem.queue && elem.queue[type] ) { - // Remove self - elem.queue[type].shift(); - - // Get next function - var f = elem.queue[type][0]; - - if ( f ) f.apply( elem ); - } - }, - - /* - * I originally wrote fx() as a clone of moo.fx and in the process - * of making it small in size the code became illegible to sane - * people. You've been warned. - */ - - fx: function( elem, options, prop ){ - - var z = this; - - // The styles - var y = elem.style; - - // Store display property - var oldDisplay = jQuery.css(elem, "display"); - - // Set display property to block for animation - y.display = "block"; - - // Make sure that nothing sneaks out - y.overflow = "hidden"; - - // Simple function for setting a style value - z.a = function(){ - if ( options.step ) - options.step.apply( elem, [ z.now ] ); - - if ( prop == "opacity" ) - jQuery.attr(y, "opacity", z.now); // Let attr handle opacity - else if ( parseInt(z.now) ) // My hate for IE will never die - y[prop] = parseInt(z.now) + "px"; - }; - - // Figure out the maximum number to run to - z.max = function(){ - return parseFloat( jQuery.css(elem,prop) ); - }; - - // Get the current size - z.cur = function(){ - var r = parseFloat( jQuery.curCSS(elem, prop) ); - return r && r > -10000 ? r : z.max(); - }; - - // Start an animation from one number to another - z.custom = function(from,to){ - z.startTime = (new Date()).getTime(); - z.now = from; - z.a(); - - z.timer = setInterval(function(){ - z.step(from, to); - }, 13); - }; - - // Simple 'show' function - z.show = function(){ - if ( !elem.orig ) elem.orig = {}; - - // Remember where we started, so that we can go back to it later - elem.orig[prop] = this.cur(); - - options.show = true; - - // Begin the animation - z.custom(0, elem.orig[prop]); - - // Stupid IE, look what you made me do - if ( prop != "opacity" ) - y[prop] = "1px"; - }; - - // Simple 'hide' function - z.hide = function(){ - if ( !elem.orig ) elem.orig = {}; - - // Remember where we started, so that we can go back to it later - elem.orig[prop] = this.cur(); - - options.hide = true; - - // Begin the animation - z.custom(elem.orig[prop], 0); - }; - - //Simple 'toggle' function - z.toggle = function() { - if ( !elem.orig ) elem.orig = {}; - - // Remember where we started, so that we can go back to it later - elem.orig[prop] = this.cur(); - - if(oldDisplay == "none") { - options.show = true; - - // Stupid IE, look what you made me do - if ( prop != "opacity" ) - y[prop] = "1px"; - - // Begin the animation - z.custom(0, elem.orig[prop]); - } else { - options.hide = true; - - // Begin the animation - z.custom(elem.orig[prop], 0); - } - }; - - // Each step of an animation - z.step = function(firstNum, lastNum){ - var t = (new Date()).getTime(); - - if (t > options.duration + z.startTime) { - // Stop the timer - clearInterval(z.timer); - z.timer = null; - - z.now = lastNum; - z.a(); - - if (elem.curAnim) elem.curAnim[ prop ] = true; - - var done = true; - for ( var i in elem.curAnim ) - if ( elem.curAnim[i] !== true ) - done = false; - - if ( done ) { - // Reset the overflow - y.overflow = ""; - - // Reset the display - y.display = oldDisplay; - if (jQuery.css(elem, "display") == "none") - y.display = "block"; - - // Hide the element if the "hide" operation was done - if ( options.hide ) - y.display = "none"; - - // Reset the properties, if the item has been hidden or shown - if ( options.hide || options.show ) - for ( var p in elem.curAnim ) - if (p == "opacity") - jQuery.attr(y, p, elem.orig[p]); - else - y[p] = ""; - } - - // If a callback was provided, execute it - if ( done && jQuery.isFunction( options.complete ) ) - // Execute the complete function - options.complete.apply( elem ); - } else { - var n = t - this.startTime; - // Figure out where in the animation we are and set the number - var p = n / options.duration; - - // If the easing function exists, then use it - z.now = options.easing && jQuery.easing[options.easing] ? - jQuery.easing[options.easing](p, n, firstNum, (lastNum-firstNum), options.duration) : - // else use default linear easing - ((-Math.cos(p*Math.PI)/2) + 0.5) * (lastNum-firstNum) + firstNum; - - // Perform the next step of the animation - z.a(); - } - }; - - } -}); -jQuery.fn.extend({ - loadIfModified: function( url, params, callback ) { - this.load( url, params, callback, 1 ); - }, - load: function( url, params, callback, ifModified ) { - if ( jQuery.isFunction( url ) ) - return this.bind("load", url); - - callback = callback || function(){}; - - // Default to a GET request - var type = "GET"; - - // If the second parameter was provided - if ( params ) - // If it's a function - if ( jQuery.isFunction( params ) ) { - // We assume that it's the callback - callback = params; - params = null; - - // Otherwise, build a param string - } else { - params = jQuery.param( params ); - type = "POST"; - } - - var self = this; - - // Request the remote document - jQuery.ajax({ - url: url, - type: type, - data: params, - ifModified: ifModified, - complete: function(res, status){ - if ( status == "success" || !ifModified && status == "notmodified" ) - // Inject the HTML into all the matched elements - self.attr("innerHTML", res.responseText) - // Execute all the scripts inside of the newly-injected HTML - .evalScripts() - // Execute callback - .each( callback, [res.responseText, status, res] ); - else - callback.apply( self, [res.responseText, status, res] ); - } - }); - return this; - }, - serialize: function() { - return jQuery.param( this ); - }, - evalScripts: function() { - return this.find("script").each(function(){ - if ( this.src ) - jQuery.getScript( this.src ); - else - jQuery.globalEval( this.text || this.textContent || this.innerHTML || "" ); - }).end(); - } - -}); - -// If IE is used, create a wrapper for the XMLHttpRequest object -if ( !window.XMLHttpRequest ) - XMLHttpRequest = function(){ - return new ActiveXObject("Microsoft.XMLHTTP"); - }; - -// Attach a bunch of functions for handling common AJAX events - -jQuery.each( "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i,o){ - jQuery.fn[o] = function(f){ - return this.bind(o, f); - }; -}); - -jQuery.extend({ - get: function( url, data, callback, type, ifModified ) { - // shift arguments if data argument was ommited - if ( jQuery.isFunction( data ) ) { - callback = data; - data = null; - } - - return jQuery.ajax({ - url: url, - data: data, - success: callback, - dataType: type, - ifModified: ifModified - }); - }, - getIfModified: function( url, data, callback, type ) { - return jQuery.get(url, data, callback, type, 1); - }, - getScript: function( url, callback ) { - return jQuery.get(url, null, callback, "script"); - }, - getJSON: function( url, data, callback ) { - return jQuery.get(url, data, callback, "json"); - }, - post: function( url, data, callback, type ) { - if ( jQuery.isFunction( data ) ) { - callback = data; - data = {}; - } - - return jQuery.ajax({ - type: "POST", - url: url, - data: data, - success: callback, - dataType: type - }); - }, - - // timeout (ms) - //timeout: 0, - ajaxTimeout: function( timeout ) { - jQuery.ajaxSettings.timeout = timeout; - }, - ajaxSetup: function( settings ) { - jQuery.extend( jQuery.ajaxSettings, settings ); - }, - - ajaxSettings: { - global: true, - type: "GET", - timeout: 0, - contentType: "application/x-www-form-urlencoded", - processData: true, - async: true, - data: null - }, - - // Last-Modified header cache for next request - lastModified: {}, - ajax: function( s ) { - // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout - s = jQuery.extend({}, jQuery.ajaxSettings, s); - - // if data available - if ( s.data ) { - // convert data if not already a string - if (s.processData && typeof s.data != "string") - s.data = jQuery.param(s.data); - // append data to url for get requests - if( s.type.toLowerCase() == "get" ) - // "?" + data or "&" + data (in case there are already params) - s.url += ((s.url.indexOf("?") > -1) ? "&" : "?") + s.data; - } - - // Watch for a new set of requests - if ( s.global && ! jQuery.active++ ) - jQuery.event.trigger( "ajaxStart" ); - - var requestDone = false; - - // Create the request object - var xml = new XMLHttpRequest(); - - // Open the socket - xml.open(s.type, s.url, s.async); - - // Set the correct header, if data is being sent - if ( s.data ) - xml.setRequestHeader("Content-Type", s.contentType); - - // Set the If-Modified-Since header, if ifModified mode. - if ( s.ifModified ) - xml.setRequestHeader("If-Modified-Since", - jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" ); - - // Set header so the called script knows that it's an XMLHttpRequest - xml.setRequestHeader("X-Requested-With", "XMLHttpRequest"); - - // Make sure the browser sends the right content length - if ( xml.overrideMimeType ) - xml.setRequestHeader("Connection", "close"); - - // Allow custom headers/mimetypes - if( s.beforeSend ) - s.beforeSend(xml); - - if ( s.global ) - jQuery.event.trigger("ajaxSend", [xml, s]); - - // Wait for a response to come back - var onreadystatechange = function(isTimeout){ - // The transfer is complete and the data is available, or the request timed out - if ( xml && (xml.readyState == 4 || isTimeout == "timeout") ) { - requestDone = true; - var status; - try { - status = jQuery.httpSuccess( xml ) && isTimeout != "timeout" ? - s.ifModified && jQuery.httpNotModified( xml, s.url ) ? "notmodified" : "success" : "error"; - // Make sure that the request was successful or notmodified - if ( status != "error" ) { - // Cache Last-Modified header, if ifModified mode. - var modRes; - try { - modRes = xml.getResponseHeader("Last-Modified"); - } catch(e) {} // swallow exception thrown by FF if header is not available - - if ( s.ifModified && modRes ) - jQuery.lastModified[s.url] = modRes; - - // process the data (runs the xml through httpData regardless of callback) - var data = jQuery.httpData( xml, s.dataType ); - - // If a local callback was specified, fire it and pass it the data - if ( s.success ) - s.success( data, status ); - - // Fire the global callback - if( s.global ) - jQuery.event.trigger( "ajaxSuccess", [xml, s] ); - } else - jQuery.handleError(s, xml, status); - } catch(e) { - status = "error"; - jQuery.handleError(s, xml, status, e); - } - - // The request was completed - if( s.global ) - jQuery.event.trigger( "ajaxComplete", [xml, s] ); - - // Handle the global AJAX counter - if ( s.global && ! --jQuery.active ) - jQuery.event.trigger( "ajaxStop" ); - - // Process result - if ( s.complete ) - s.complete(xml, status); - - // Stop memory leaks - xml.onreadystatechange = function(){}; - xml = null; - } - }; - xml.onreadystatechange = onreadystatechange; - - // Timeout checker - if ( s.timeout > 0 ) - setTimeout(function(){ - // Check to see if the request is still happening - if ( xml ) { - // Cancel the request - xml.abort(); - - if( !requestDone ) - onreadystatechange( "timeout" ); - } - }, s.timeout); - - // save non-leaking reference - var xml2 = xml; - - // Send the data - try { - xml2.send(s.data); - } catch(e) { - jQuery.handleError(s, xml, null, e); - } - - // firefox 1.5 doesn't fire statechange for sync requests - if ( !s.async ) - onreadystatechange(); - - // return XMLHttpRequest to allow aborting the request etc. - return xml2; - }, - - handleError: function( s, xml, status, e ) { - // If a local callback was specified, fire it - if ( s.error ) s.error( xml, status, e ); - - // Fire the global callback - if ( s.global ) - jQuery.event.trigger( "ajaxError", [xml, s, e] ); - }, - - // Counter for holding the number of active queries - active: 0, - - // Determines if an XMLHttpRequest was successful or not - httpSuccess: function( r ) { - try { - return !r.status && location.protocol == "file:" || - ( r.status >= 200 && r.status < 300 ) || r.status == 304 || - jQuery.browser.safari && r.status == undefined; - } catch(e){} - return false; - }, - - // Determines if an XMLHttpRequest returns NotModified - httpNotModified: function( xml, url ) { - try { - var xmlRes = xml.getResponseHeader("Last-Modified"); - - // Firefox always returns 200. check Last-Modified date - return xml.status == 304 || xmlRes == jQuery.lastModified[url] || - jQuery.browser.safari && xml.status == undefined; - } catch(e){} - return false; - }, - - /* Get the data out of an XMLHttpRequest. - * Return parsed XML if content-type header is "xml" and type is "xml" or omitted, - * otherwise return plain text. - * (String) data - The type of data that you're expecting back, - * (e.g. "xml", "html", "script") - */ - httpData: function( r, type ) { - var ct = r.getResponseHeader("content-type"); - var data = !type && ct && ct.indexOf("xml") >= 0; - data = type == "xml" || data ? r.responseXML : r.responseText; - - // If the type is "script", eval it in global context - if ( type == "script" ) - jQuery.globalEval( data ); - - // Get the JavaScript object, if JSON is used. - if ( type == "json" ) - eval( "data = " + data ); - - // evaluate scripts within html - if ( type == "html" ) - jQuery("
").html(data).evalScripts(); - - return data; - }, - - // Serialize an array of form elements or a set of - // key/values into a query string - param: function( a ) { - var s = []; - - // If an array was passed in, assume that it is an array - // of form elements - if ( a.constructor == Array || a.jquery ) - // Serialize the form elements - jQuery.each( a, function(){ - s.push( encodeURIComponent(this.name) + "=" + encodeURIComponent( this.value ) ); - }); - - // Otherwise, assume that it's an object of key/value pairs - else - // Serialize the key/values - for ( var j in a ) - // If the value is an array then the key names need to be repeated - if ( a[j] && a[j].constructor == Array ) - jQuery.each( a[j], function(){ - s.push( encodeURIComponent(j) + "=" + encodeURIComponent( this ) ); - }); - else - s.push( encodeURIComponent(j) + "=" + encodeURIComponent( a[j] ) ); - - // Return the resulting serialization - return s.join("&"); - }, - - // evalulates a script in global context - // not reliable for safari - globalEval: function( data ) { - if ( window.execScript ) - window.execScript( data ); - else if ( jQuery.browser.safari ) - // safari doesn't provide a synchronous global eval - window.setTimeout( data, 0 ); - else - eval.call( window, data ); - } - -}); -} diff --git a/www/extras/extjs/adapter/prototype/effects.js b/www/extras/extjs/adapter/prototype/effects.js deleted file mode 100644 index f6ccff2fd..000000000 --- a/www/extras/extjs/adapter/prototype/effects.js +++ /dev/null @@ -1,1098 +0,0 @@ -/* - * Ext JS Library 1.0 Beta 1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -// script.aculo.us effects.js v1.7.0, Fri Jan 19 19:16:36 CET 2007 - -// Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// Contributors: -// Justin Palmer (http://encytemedia.com/) -// Mark Pilgrim (http://diveintomark.org/) -// Martin Bialasinki -// -// script.aculo.us is freely distributable under the terms of an MIT-style license. -// For details, see the script.aculo.us web site: http://script.aculo.us/ - -// converts rgb() and #xxx to #xxxxxx format, -// returns self (or first argument) if not convertable -String.prototype.parseColor = function() { - var color = '#'; - if(this.slice(0,4) == 'rgb(') { - var cols = this.slice(4,this.length-1).split(','); - var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); - } else { - if(this.slice(0,1) == '#') { - if(this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); - if(this.length==7) color = this.toLowerCase(); - } - } - return(color.length==7 ? color : (arguments[0] || this)); -} - -/*--------------------------------------------------------------------------*/ - -Element.collectTextNodes = function(element) { - return $A($(element).childNodes).collect( function(node) { - return (node.nodeType==3 ? node.nodeValue : - (node.hasChildNodes() ? Element.collectTextNodes(node) : '')); - }).flatten().join(''); -} - -Element.collectTextNodesIgnoreClass = function(element, className) { - return $A($(element).childNodes).collect( function(node) { - return (node.nodeType==3 ? node.nodeValue : - ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? - Element.collectTextNodesIgnoreClass(node, className) : '')); - }).flatten().join(''); -} - -Element.setContentZoom = function(element, percent) { - element = $(element); - element.setStyle({fontSize: (percent/100) + 'em'}); - if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0); - return element; -} - -Element.getOpacity = function(element){ - return $(element).getStyle('opacity'); -} - -Element.setOpacity = function(element, value){ - return $(element).setStyle({opacity:value}); -} - -Element.getInlineOpacity = function(element){ - return $(element).style.opacity || ''; -} - -Element.forceRerendering = function(element) { - try { - element = $(element); - var n = document.createTextNode(' '); - element.appendChild(n); - element.removeChild(n); - } catch(e) { } -}; - -/*--------------------------------------------------------------------------*/ - -Array.prototype.call = function() { - var args = arguments; - this.each(function(f){ f.apply(this, args) }); -} - -/*--------------------------------------------------------------------------*/ - -var Effect = { - _elementDoesNotExistError: { - name: 'ElementDoesNotExistError', - message: 'The specified DOM element does not exist, but is required for this effect to operate' - }, - tagifyText: function(element) { - if(typeof Builder == 'undefined') - throw("Effect.tagifyText requires including script.aculo.us' builder.js library"); - - var tagifyStyle = 'position:relative'; - if(/MSIE/.test(navigator.userAgent) && !window.opera) tagifyStyle += ';zoom:1'; - - element = $(element); - $A(element.childNodes).each( function(child) { - if(child.nodeType==3) { - child.nodeValue.toArray().each( function(character) { - element.insertBefore( - Builder.node('span',{style: tagifyStyle}, - character == ' ' ? String.fromCharCode(160) : character), - child); - }); - Element.remove(child); - } - }); - }, - multiple: function(element, effect) { - var elements; - if(((typeof element == 'object') || - (typeof element == 'function')) && - (element.length)) - elements = element; - else - elements = $(element).childNodes; - - var options = Object.extend({ - speed: 0.1, - delay: 0.0 - }, arguments[2] || {}); - var masterDelay = options.delay; - - $A(elements).each( function(element, index) { - new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay })); - }); - }, - PAIRS: { - 'slide': ['SlideDown','SlideUp'], - 'blind': ['BlindDown','BlindUp'], - 'appear': ['Appear','Fade'] - }, - toggle: function(element, effect) { - element = $(element); - effect = (effect || 'appear').toLowerCase(); - var options = Object.extend({ - queue: { position:'end', scope:(element.id || 'global'), limit: 1 } - }, arguments[2] || {}); - Effect[element.visible() ? - Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options); - } -}; - -var Effect2 = Effect; // deprecated - -/* ------------- transitions ------------- */ - -Effect.Transitions = { - linear: Prototype.K, - sinoidal: function(pos) { - return (-Math.cos(pos*Math.PI)/2) + 0.5; - }, - reverse: function(pos) { - return 1-pos; - }, - flicker: function(pos) { - return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4; - }, - wobble: function(pos) { - return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5; - }, - pulse: function(pos, pulses) { - pulses = pulses || 5; - return ( - Math.round((pos % (1/pulses)) * pulses) == 0 ? - ((pos * pulses * 2) - Math.floor(pos * pulses * 2)) : - 1 - ((pos * pulses * 2) - Math.floor(pos * pulses * 2)) - ); - }, - none: function(pos) { - return 0; - }, - full: function(pos) { - return 1; - } -}; - -/* ------------- core effects ------------- */ - -Effect.ScopedQueue = Class.create(); -Object.extend(Object.extend(Effect.ScopedQueue.prototype, Enumerable), { - initialize: function() { - this.effects = []; - this.interval = null; - }, - _each: function(iterator) { - this.effects._each(iterator); - }, - add: function(effect) { - var timestamp = new Date().getTime(); - - var position = (typeof effect.options.queue == 'string') ? - effect.options.queue : effect.options.queue.position; - - switch(position) { - case 'front': - // move unstarted effects after this effect - this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) { - e.startOn += effect.finishOn; - e.finishOn += effect.finishOn; - }); - break; - case 'with-last': - timestamp = this.effects.pluck('startOn').max() || timestamp; - break; - case 'end': - // start effect after last queued effect has finished - timestamp = this.effects.pluck('finishOn').max() || timestamp; - break; - } - - effect.startOn += timestamp; - effect.finishOn += timestamp; - - if(!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit)) - this.effects.push(effect); - - if(!this.interval) - this.interval = setInterval(this.loop.bind(this), 15); - }, - remove: function(effect) { - this.effects = this.effects.reject(function(e) { return e==effect }); - if(this.effects.length == 0) { - clearInterval(this.interval); - this.interval = null; - } - }, - loop: function() { - var timePos = new Date().getTime(); - for(var i=0, len=this.effects.length;i= this.startOn) { - if(timePos >= this.finishOn) { - this.render(1.0); - this.cancel(); - this.event('beforeFinish'); - if(this.finish) this.finish(); - this.event('afterFinish'); - return; - } - var pos = (timePos - this.startOn) / (this.finishOn - this.startOn); - var frame = Math.round(pos * this.options.fps * this.options.duration); - if(frame > this.currentFrame) { - this.render(pos); - this.currentFrame = frame; - } - } - }, - render: function(pos) { - if(this.state == 'idle') { - this.state = 'running'; - this.event('beforeSetup'); - if(this.setup) this.setup(); - this.event('afterSetup'); - } - if(this.state == 'running') { - if(this.options.transition) pos = this.options.transition(pos); - pos *= (this.options.to-this.options.from); - pos += this.options.from; - this.position = pos; - this.event('beforeUpdate'); - if(this.update) this.update(pos); - this.event('afterUpdate'); - } - }, - cancel: function() { - if(!this.options.sync) - Effect.Queues.get(typeof this.options.queue == 'string' ? - 'global' : this.options.queue.scope).remove(this); - this.state = 'finished'; - }, - event: function(eventName) { - if(this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this); - if(this.options[eventName]) this.options[eventName](this); - }, - inspect: function() { - var data = $H(); - for(property in this) - if(typeof this[property] != 'function') data[property] = this[property]; - return '#'; - } -} - -Effect.Parallel = Class.create(); -Object.extend(Object.extend(Effect.Parallel.prototype, Effect.Base.prototype), { - initialize: function(effects) { - this.effects = effects || []; - this.start(arguments[1]); - }, - update: function(position) { - this.effects.invoke('render', position); - }, - finish: function(position) { - this.effects.each( function(effect) { - effect.render(1.0); - effect.cancel(); - effect.event('beforeFinish'); - if(effect.finish) effect.finish(position); - effect.event('afterFinish'); - }); - } -}); - -Effect.Event = Class.create(); -Object.extend(Object.extend(Effect.Event.prototype, Effect.Base.prototype), { - initialize: function() { - var options = Object.extend({ - duration: 0 - }, arguments[0] || {}); - this.start(options); - }, - update: Prototype.emptyFunction -}); - -Effect.Opacity = Class.create(); -Object.extend(Object.extend(Effect.Opacity.prototype, Effect.Base.prototype), { - initialize: function(element) { - this.element = $(element); - if(!this.element) throw(Effect._elementDoesNotExistError); - // make this work on IE on elements without 'layout' - if(/MSIE/.test(navigator.userAgent) && !window.opera && (!this.element.currentStyle.hasLayout)) - this.element.setStyle({zoom: 1}); - var options = Object.extend({ - from: this.element.getOpacity() || 0.0, - to: 1.0 - }, arguments[1] || {}); - this.start(options); - }, - update: function(position) { - this.element.setOpacity(position); - } -}); - -Effect.Move = Class.create(); -Object.extend(Object.extend(Effect.Move.prototype, Effect.Base.prototype), { - initialize: function(element) { - this.element = $(element); - if(!this.element) throw(Effect._elementDoesNotExistError); - var options = Object.extend({ - x: 0, - y: 0, - mode: 'relative' - }, arguments[1] || {}); - this.start(options); - }, - setup: function() { - // Bug in Opera: Opera returns the "real" position of a static element or - // relative element that does not have top/left explicitly set. - // ==> Always set top and left for position relative elements in your stylesheets - // (to 0 if you do not need them) - this.element.makePositioned(); - this.originalLeft = parseFloat(this.element.getStyle('left') || '0'); - this.originalTop = parseFloat(this.element.getStyle('top') || '0'); - if(this.options.mode == 'absolute') { - // absolute movement, so we need to calc deltaX and deltaY - this.options.x = this.options.x - this.originalLeft; - this.options.y = this.options.y - this.originalTop; - } - }, - update: function(position) { - this.element.setStyle({ - left: Math.round(this.options.x * position + this.originalLeft) + 'px', - top: Math.round(this.options.y * position + this.originalTop) + 'px' - }); - } -}); - -// for backwards compatibility -Effect.MoveBy = function(element, toTop, toLeft) { - return new Effect.Move(element, - Object.extend({ x: toLeft, y: toTop }, arguments[3] || {})); -}; - -Effect.Scale = Class.create(); -Object.extend(Object.extend(Effect.Scale.prototype, Effect.Base.prototype), { - initialize: function(element, percent) { - this.element = $(element); - if(!this.element) throw(Effect._elementDoesNotExistError); - var options = Object.extend({ - scaleX: true, - scaleY: true, - scaleContent: true, - scaleFromCenter: false, - scaleMode: 'box', // 'box' or 'contents' or {} with provided values - scaleFrom: 100.0, - scaleTo: percent - }, arguments[2] || {}); - this.start(options); - }, - setup: function() { - this.restoreAfterFinish = this.options.restoreAfterFinish || false; - this.elementPositioning = this.element.getStyle('position'); - - this.originalStyle = {}; - ['top','left','width','height','fontSize'].each( function(k) { - this.originalStyle[k] = this.element.style[k]; - }.bind(this)); - - this.originalTop = this.element.offsetTop; - this.originalLeft = this.element.offsetLeft; - - var fontSize = this.element.getStyle('font-size') || '100%'; - ['em','px','%','pt'].each( function(fontSizeType) { - if(fontSize.indexOf(fontSizeType)>0) { - this.fontSize = parseFloat(fontSize); - this.fontSizeType = fontSizeType; - } - }.bind(this)); - - this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; - - this.dims = null; - if(this.options.scaleMode=='box') - this.dims = [this.element.offsetHeight, this.element.offsetWidth]; - if(/^content/.test(this.options.scaleMode)) - this.dims = [this.element.scrollHeight, this.element.scrollWidth]; - if(!this.dims) - this.dims = [this.options.scaleMode.originalHeight, - this.options.scaleMode.originalWidth]; - }, - update: function(position) { - var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position); - if(this.options.scaleContent && this.fontSize) - this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType }); - this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale); - }, - finish: function(position) { - if(this.restoreAfterFinish) this.element.setStyle(this.originalStyle); - }, - setDimensions: function(height, width) { - var d = {}; - if(this.options.scaleX) d.width = Math.round(width) + 'px'; - if(this.options.scaleY) d.height = Math.round(height) + 'px'; - if(this.options.scaleFromCenter) { - var topd = (height - this.dims[0])/2; - var leftd = (width - this.dims[1])/2; - if(this.elementPositioning == 'absolute') { - if(this.options.scaleY) d.top = this.originalTop-topd + 'px'; - if(this.options.scaleX) d.left = this.originalLeft-leftd + 'px'; - } else { - if(this.options.scaleY) d.top = -topd + 'px'; - if(this.options.scaleX) d.left = -leftd + 'px'; - } - } - this.element.setStyle(d); - } -}); - -Effect.Highlight = Class.create(); -Object.extend(Object.extend(Effect.Highlight.prototype, Effect.Base.prototype), { - initialize: function(element) { - this.element = $(element); - if(!this.element) throw(Effect._elementDoesNotExistError); - var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || {}); - this.start(options); - }, - setup: function() { - // Prevent executing on elements not in the layout flow - if(this.element.getStyle('display')=='none') { this.cancel(); return; } - // Disable background image during the effect - this.oldStyle = {}; - if (!this.options.keepBackgroundImage) { - this.oldStyle.backgroundImage = this.element.getStyle('background-image'); - this.element.setStyle({backgroundImage: 'none'}); - } - if(!this.options.endcolor) - this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff'); - if(!this.options.restorecolor) - this.options.restorecolor = this.element.getStyle('background-color'); - // init color calculations - this._base = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this)); - this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this)); - }, - update: function(position) { - this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){ - return m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart()); }.bind(this)) }); - }, - finish: function() { - this.element.setStyle(Object.extend(this.oldStyle, { - backgroundColor: this.options.restorecolor - })); - } -}); - -Effect.ScrollTo = Class.create(); -Object.extend(Object.extend(Effect.ScrollTo.prototype, Effect.Base.prototype), { - initialize: function(element) { - this.element = $(element); - this.start(arguments[1] || {}); - }, - setup: function() { - Position.prepare(); - var offsets = Position.cumulativeOffset(this.element); - if(this.options.offset) offsets[1] += this.options.offset; - var max = window.innerHeight ? - window.height - window.innerHeight : - document.body.scrollHeight - - (document.documentElement.clientHeight ? - document.documentElement.clientHeight : document.body.clientHeight); - this.scrollStart = Position.deltaY; - this.delta = (offsets[1] > max ? max : offsets[1]) - this.scrollStart; - }, - update: function(position) { - Position.prepare(); - window.scrollTo(Position.deltaX, - this.scrollStart + (position*this.delta)); - } -}); - -/* ------------- combination effects ------------- */ - -Effect.Fade = function(element) { - element = $(element); - var oldOpacity = element.getInlineOpacity(); - var options = Object.extend({ - from: element.getOpacity() || 1.0, - to: 0.0, - afterFinishInternal: function(effect) { - if(effect.options.to!=0) return; - effect.element.hide().setStyle({opacity: oldOpacity}); - }}, arguments[1] || {}); - return new Effect.Opacity(element,options); -} - -Effect.Appear = function(element) { - element = $(element); - var options = Object.extend({ - from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0), - to: 1.0, - // force Safari to render floated elements properly - afterFinishInternal: function(effect) { - effect.element.forceRerendering(); - }, - beforeSetup: function(effect) { - effect.element.setOpacity(effect.options.from).show(); - }}, arguments[1] || {}); - return new Effect.Opacity(element,options); -} - -Effect.Puff = function(element) { - element = $(element); - var oldStyle = { - opacity: element.getInlineOpacity(), - position: element.getStyle('position'), - top: element.style.top, - left: element.style.left, - width: element.style.width, - height: element.style.height - }; - return new Effect.Parallel( - [ new Effect.Scale(element, 200, - { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), - new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], - Object.extend({ duration: 1.0, - beforeSetupInternal: function(effect) { - Position.absolutize(effect.effects[0].element) - }, - afterFinishInternal: function(effect) { - effect.effects[0].element.hide().setStyle(oldStyle); } - }, arguments[1] || {}) - ); -} - -Effect.BlindUp = function(element) { - element = $(element); - element.makeClipping(); - return new Effect.Scale(element, 0, - Object.extend({ scaleContent: false, - scaleX: false, - restoreAfterFinish: true, - afterFinishInternal: function(effect) { - effect.element.hide().undoClipping(); - } - }, arguments[1] || {}) - ); -} - -Effect.BlindDown = function(element) { - element = $(element); - var elementDimensions = element.getDimensions(); - return new Effect.Scale(element, 100, Object.extend({ - scaleContent: false, - scaleX: false, - scaleFrom: 0, - scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, - restoreAfterFinish: true, - afterSetup: function(effect) { - effect.element.makeClipping().setStyle({height: '0px'}).show(); - }, - afterFinishInternal: function(effect) { - effect.element.undoClipping(); - } - }, arguments[1] || {})); -} - -Effect.SwitchOff = function(element) { - element = $(element); - var oldOpacity = element.getInlineOpacity(); - return new Effect.Appear(element, Object.extend({ - duration: 0.4, - from: 0, - transition: Effect.Transitions.flicker, - afterFinishInternal: function(effect) { - new Effect.Scale(effect.element, 1, { - duration: 0.3, scaleFromCenter: true, - scaleX: false, scaleContent: false, restoreAfterFinish: true, - beforeSetup: function(effect) { - effect.element.makePositioned().makeClipping(); - }, - afterFinishInternal: function(effect) { - effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity}); - } - }) - } - }, arguments[1] || {})); -} - -Effect.DropOut = function(element) { - element = $(element); - var oldStyle = { - top: element.getStyle('top'), - left: element.getStyle('left'), - opacity: element.getInlineOpacity() }; - return new Effect.Parallel( - [ new Effect.Move(element, {x: 0, y: 100, sync: true }), - new Effect.Opacity(element, { sync: true, to: 0.0 }) ], - Object.extend( - { duration: 0.5, - beforeSetup: function(effect) { - effect.effects[0].element.makePositioned(); - }, - afterFinishInternal: function(effect) { - effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle); - } - }, arguments[1] || {})); -} - -Effect.Shake = function(element) { - element = $(element); - var oldStyle = { - top: element.getStyle('top'), - left: element.getStyle('left') }; - return new Effect.Move(element, - { x: 20, y: 0, duration: 0.05, afterFinishInternal: function(effect) { - new Effect.Move(effect.element, - { x: -40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { - new Effect.Move(effect.element, - { x: 40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { - new Effect.Move(effect.element, - { x: -40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { - new Effect.Move(effect.element, - { x: 40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { - new Effect.Move(effect.element, - { x: -20, y: 0, duration: 0.05, afterFinishInternal: function(effect) { - effect.element.undoPositioned().setStyle(oldStyle); - }}) }}) }}) }}) }}) }}); -} - -Effect.SlideDown = function(element) { - element = $(element).cleanWhitespace(); - // SlideDown need to have the content of the element wrapped in a container element with fixed height! - var oldInnerBottom = element.down().getStyle('bottom'); - var elementDimensions = element.getDimensions(); - return new Effect.Scale(element, 100, Object.extend({ - scaleContent: false, - scaleX: false, - scaleFrom: window.opera ? 0 : 1, - scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, - restoreAfterFinish: true, - afterSetup: function(effect) { - effect.element.makePositioned(); - effect.element.down().makePositioned(); - if(window.opera) effect.element.setStyle({top: ''}); - effect.element.makeClipping().setStyle({height: '0px'}).show(); - }, - afterUpdateInternal: function(effect) { - effect.element.down().setStyle({bottom: - (effect.dims[0] - effect.element.clientHeight) + 'px' }); - }, - afterFinishInternal: function(effect) { - effect.element.undoClipping().undoPositioned(); - effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); } - }, arguments[1] || {}) - ); -} - -Effect.SlideUp = function(element) { - element = $(element).cleanWhitespace(); - var oldInnerBottom = element.down().getStyle('bottom'); - return new Effect.Scale(element, window.opera ? 0 : 1, - Object.extend({ scaleContent: false, - scaleX: false, - scaleMode: 'box', - scaleFrom: 100, - restoreAfterFinish: true, - beforeStartInternal: function(effect) { - effect.element.makePositioned(); - effect.element.down().makePositioned(); - if(window.opera) effect.element.setStyle({top: ''}); - effect.element.makeClipping().show(); - }, - afterUpdateInternal: function(effect) { - effect.element.down().setStyle({bottom: - (effect.dims[0] - effect.element.clientHeight) + 'px' }); - }, - afterFinishInternal: function(effect) { - effect.element.hide().undoClipping().undoPositioned().setStyle({bottom: oldInnerBottom}); - effect.element.down().undoPositioned(); - } - }, arguments[1] || {}) - ); -} - -// Bug in opera makes the TD containing this element expand for a instance after finish -Effect.Squish = function(element) { - return new Effect.Scale(element, window.opera ? 1 : 0, { - restoreAfterFinish: true, - beforeSetup: function(effect) { - effect.element.makeClipping(); - }, - afterFinishInternal: function(effect) { - effect.element.hide().undoClipping(); - } - }); -} - -Effect.Grow = function(element) { - element = $(element); - var options = Object.extend({ - direction: 'center', - moveTransition: Effect.Transitions.sinoidal, - scaleTransition: Effect.Transitions.sinoidal, - opacityTransition: Effect.Transitions.full - }, arguments[1] || {}); - var oldStyle = { - top: element.style.top, - left: element.style.left, - height: element.style.height, - width: element.style.width, - opacity: element.getInlineOpacity() }; - - var dims = element.getDimensions(); - var initialMoveX, initialMoveY; - var moveX, moveY; - - switch (options.direction) { - case 'top-left': - initialMoveX = initialMoveY = moveX = moveY = 0; - break; - case 'top-right': - initialMoveX = dims.width; - initialMoveY = moveY = 0; - moveX = -dims.width; - break; - case 'bottom-left': - initialMoveX = moveX = 0; - initialMoveY = dims.height; - moveY = -dims.height; - break; - case 'bottom-right': - initialMoveX = dims.width; - initialMoveY = dims.height; - moveX = -dims.width; - moveY = -dims.height; - break; - case 'center': - initialMoveX = dims.width / 2; - initialMoveY = dims.height / 2; - moveX = -dims.width / 2; - moveY = -dims.height / 2; - break; - } - - return new Effect.Move(element, { - x: initialMoveX, - y: initialMoveY, - duration: 0.01, - beforeSetup: function(effect) { - effect.element.hide().makeClipping().makePositioned(); - }, - afterFinishInternal: function(effect) { - new Effect.Parallel( - [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }), - new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }), - new Effect.Scale(effect.element, 100, { - scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, - sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true}) - ], Object.extend({ - beforeSetup: function(effect) { - effect.effects[0].element.setStyle({height: '0px'}).show(); - }, - afterFinishInternal: function(effect) { - effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle); - } - }, options) - ) - } - }); -} - -Effect.Shrink = function(element) { - element = $(element); - var options = Object.extend({ - direction: 'center', - moveTransition: Effect.Transitions.sinoidal, - scaleTransition: Effect.Transitions.sinoidal, - opacityTransition: Effect.Transitions.none - }, arguments[1] || {}); - var oldStyle = { - top: element.style.top, - left: element.style.left, - height: element.style.height, - width: element.style.width, - opacity: element.getInlineOpacity() }; - - var dims = element.getDimensions(); - var moveX, moveY; - - switch (options.direction) { - case 'top-left': - moveX = moveY = 0; - break; - case 'top-right': - moveX = dims.width; - moveY = 0; - break; - case 'bottom-left': - moveX = 0; - moveY = dims.height; - break; - case 'bottom-right': - moveX = dims.width; - moveY = dims.height; - break; - case 'center': - moveX = dims.width / 2; - moveY = dims.height / 2; - break; - } - - return new Effect.Parallel( - [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }), - new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}), - new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }) - ], Object.extend({ - beforeStartInternal: function(effect) { - effect.effects[0].element.makePositioned().makeClipping(); - }, - afterFinishInternal: function(effect) { - effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); } - }, options) - ); -} - -Effect.Pulsate = function(element) { - element = $(element); - var options = arguments[1] || {}; - var oldOpacity = element.getInlineOpacity(); - var transition = options.transition || Effect.Transitions.sinoidal; - var reverser = function(pos){ return transition(1-Effect.Transitions.pulse(pos, options.pulses)) }; - reverser.bind(transition); - return new Effect.Opacity(element, - Object.extend(Object.extend({ duration: 2.0, from: 0, - afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); } - }, options), {transition: reverser})); -} - -Effect.Fold = function(element) { - element = $(element); - var oldStyle = { - top: element.style.top, - left: element.style.left, - width: element.style.width, - height: element.style.height }; - element.makeClipping(); - return new Effect.Scale(element, 5, Object.extend({ - scaleContent: false, - scaleX: false, - afterFinishInternal: function(effect) { - new Effect.Scale(element, 1, { - scaleContent: false, - scaleY: false, - afterFinishInternal: function(effect) { - effect.element.hide().undoClipping().setStyle(oldStyle); - } }); - }}, arguments[1] || {})); -}; - -Effect.Morph = Class.create(); -Object.extend(Object.extend(Effect.Morph.prototype, Effect.Base.prototype), { - initialize: function(element) { - this.element = $(element); - if(!this.element) throw(Effect._elementDoesNotExistError); - var options = Object.extend({ - style: {} - }, arguments[1] || {}); - if (typeof options.style == 'string') { - if(options.style.indexOf(':') == -1) { - var cssText = '', selector = '.' + options.style; - $A(document.styleSheets).reverse().each(function(styleSheet) { - if (styleSheet.cssRules) cssRules = styleSheet.cssRules; - else if (styleSheet.rules) cssRules = styleSheet.rules; - $A(cssRules).reverse().each(function(rule) { - if (selector == rule.selectorText) { - cssText = rule.style.cssText; - throw $break; - } - }); - if (cssText) throw $break; - }); - this.style = cssText.parseStyle(); - options.afterFinishInternal = function(effect){ - effect.element.addClassName(effect.options.style); - effect.transforms.each(function(transform) { - if(transform.style != 'opacity') - effect.element.style[transform.style.camelize()] = ''; - }); - } - } else this.style = options.style.parseStyle(); - } else this.style = $H(options.style) - this.start(options); - }, - setup: function(){ - function parseColor(color){ - if(!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff'; - color = color.parseColor(); - return $R(0,2).map(function(i){ - return parseInt( color.slice(i*2+1,i*2+3), 16 ) - }); - } - this.transforms = this.style.map(function(pair){ - var property = pair[0].underscore().dasherize(), value = pair[1], unit = null; - - if(value.parseColor('#zzzzzz') != '#zzzzzz') { - value = value.parseColor(); - unit = 'color'; - } else if(property == 'opacity') { - value = parseFloat(value); - if(/MSIE/.test(navigator.userAgent) && !window.opera && (!this.element.currentStyle.hasLayout)) - this.element.setStyle({zoom: 1}); - } else if(Element.CSS_LENGTH.test(value)) - var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/), - value = parseFloat(components[1]), unit = (components.length == 3) ? components[2] : null; - - var originalValue = this.element.getStyle(property); - return $H({ - style: property, - originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0), - targetValue: unit=='color' ? parseColor(value) : value, - unit: unit - }); - }.bind(this)).reject(function(transform){ - return ( - (transform.originalValue == transform.targetValue) || - ( - transform.unit != 'color' && - (isNaN(transform.originalValue) || isNaN(transform.targetValue)) - ) - ) - }); - }, - update: function(position) { - var style = $H(), value = null; - this.transforms.each(function(transform){ - value = transform.unit=='color' ? - $R(0,2).inject('#',function(m,v,i){ - return m+(Math.round(transform.originalValue[i]+ - (transform.targetValue[i] - transform.originalValue[i])*position)).toColorPart() }) : - transform.originalValue + Math.round( - ((transform.targetValue - transform.originalValue) * position) * 1000)/1000 + transform.unit; - style[transform.style] = value; - }); - this.element.setStyle(style); - } -}); - -Effect.Transform = Class.create(); -Object.extend(Effect.Transform.prototype, { - initialize: function(tracks){ - this.tracks = []; - this.options = arguments[1] || {}; - this.addTracks(tracks); - }, - addTracks: function(tracks){ - tracks.each(function(track){ - var data = $H(track).values().first(); - this.tracks.push($H({ - ids: $H(track).keys().first(), - effect: Effect.Morph, - options: { style: data } - })); - }.bind(this)); - return this; - }, - play: function(){ - return new Effect.Parallel( - this.tracks.map(function(track){ - var elements = [$(track.ids) || $$(track.ids)].flatten(); - return elements.map(function(e){ return new track.effect(e, Object.extend({ sync:true }, track.options)) }); - }).flatten(), - this.options - ); - } -}); - -Element.CSS_PROPERTIES = $w( - 'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' + - 'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' + - 'borderRightColor borderRightStyle borderRightWidth borderSpacing ' + - 'borderTopColor borderTopStyle borderTopWidth bottom clip color ' + - 'fontSize fontWeight height left letterSpacing lineHeight ' + - 'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+ - 'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' + - 'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' + - 'right textIndent top width wordSpacing zIndex'); - -Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/; - -String.prototype.parseStyle = function(){ - var element = Element.extend(document.createElement('div')); - element.innerHTML = '
'; - var style = element.down().style, styleRules = $H(); - - Element.CSS_PROPERTIES.each(function(property){ - if(style[property]) styleRules[property] = style[property]; - }); - if(/MSIE/.test(navigator.userAgent) && !window.opera && this.indexOf('opacity') > -1) { - styleRules.opacity = this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]; - } - return styleRules; -}; - -Element.morph = function(element, style) { - new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || {})); - return element; -}; - -['setOpacity','getOpacity','getInlineOpacity','forceRerendering','setContentZoom', - 'collectTextNodes','collectTextNodesIgnoreClass','morph'].each( - function(f) { Element.Methods[f] = Element[f]; } -); - -Element.Methods.visualEffect = function(element, effect, options) { - s = effect.gsub(/_/, '-').camelize(); - effect_class = s.charAt(0).toUpperCase() + s.substring(1); - new Effect[effect_class](element, options); - return $(element); -}; - -Element.addMethods(); \ No newline at end of file diff --git a/www/extras/extjs/adapter/prototype/ext-prototype-adapter.js b/www/extras/extjs/adapter/prototype/ext-prototype-adapter.js deleted file mode 100644 index d20b5e88f..000000000 --- a/www/extras/extjs/adapter/prototype/ext-prototype-adapter.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext={};window["undefined"]=window["undefined"];Ext.apply=function(o,c,_3){if(_3){Ext.apply(o,_3);}if(o&&c&&typeof c=="object"){for(var p in c){o[p]=c[p];}}return o;};(function(){var _5=0;var ua=navigator.userAgent.toLowerCase();var _7=document.compatMode=="CSS1Compat",_8=ua.indexOf("opera")>-1,_9=(/webkit|khtml/).test(ua),_a=ua.indexOf("msie")>-1,_b=ua.indexOf("msie 7")>-1,_c=!_9&&ua.indexOf("gecko")>-1,_d=_a&&!_7,_e=(ua.indexOf("windows")!=-1||ua.indexOf("win32")!=-1),_f=(ua.indexOf("macintosh")!=-1||ua.indexOf("mac os x")!=-1),_10=window.location.href.toLowerCase().indexOf("https")===0;if(_a&&!_b){try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}}Ext.apply(Ext,{isStrict:_7,isSecure:_10,isReady:false,SSL_SECURE_URL:"javascript:false",BLANK_IMAGE_URL:"http:/"+"/extjs.com/s.gif",emptyFn:function(){},applyIf:function(o,c){if(o&&c){for(var p in c){if(typeof o[p]=="undefined"){o[p]=c[p];}}}return o;},addBehaviors:function(o){if(!Ext.isReady){Ext.onReady(function(){Ext.addBehaviors(o);});return;}var _15={};for(var b in o){var _17=b.split("@");if(_17[1]){var s=_17[0];if(!_15[s]){_15[s]=Ext.select(s);}_15[s].on(_17[1],o[b]);}}_15=null;},id:function(el,_1a){_1a=_1a||"ext-gen";el=Ext.getDom(el);var id=_1a+(++_5);return el?(el.id?el.id:(el.id=id)):id;},extend:function(){var io=function(o){for(var m in o){this[m]=o[m];}};return function(sb,sp,_21){if(typeof sp=="object"){_21=sp;sp=sb;sb=function(){sp.apply(this,arguments);};}var F=function(){},sbp,spp=sp.prototype;F.prototype=spp;sbp=sb.prototype=new F();sbp.constructor=sb;sb.superclass=spp;if(spp.constructor==Object.prototype.constructor){spp.constructor=sp;}sb.override=function(o){Ext.override(sb,o);};sbp.override=io;sbp.__extcls=sb;Ext.override(sb,_21);return sb;};}(),override:function(_26,_27){if(_27){var p=_26.prototype;for(var _29 in _27){p[_29]=_27[_29];}}},namespace:function(){var a=arguments,o=null,i,j,d,rt;for(i=0;i10000){clearInterval(iid);}var el=document.getElementById(id);if(el){clearInterval(iid);fn.call(_35||window,el);}};iid=setInterval(f,50);}};Ext.lib.Ajax=function(){var _3b=function(cb){return cb.success?function(xhr){cb.success.call(cb.scope||window,{responseText:xhr.responseText,responseXML:xhr.responseXML,argument:cb.argument});}:Ext.emptyFn;};var _3e=function(cb){return cb.failure?function(xhr){cb.failure.call(cb.scope||window,{responseText:xhr.responseText,responseXML:xhr.responseXML,argument:cb.argument});}:Ext.emptyFn;};return {request:function(_41,uri,cb,_44){new Ajax.Request(uri,{method:_41,parameters:_44||"",timeout:cb.timeout,onSuccess:_3b(cb),onFailure:_3e(cb)});},formRequest:function(_45,uri,cb,_48,_49,_4a){new Ajax.Request(uri,{method:Ext.getDom(_45).method||"POST",parameters:Form.serialize(_45)+(_48?"&"+_48:""),timeout:cb.timeout,onSuccess:_3b(cb),onFailure:_3e(cb)});},isCallInProgress:function(_4b){return false;},abort:function(_4c){return false;},serializeForm:function(_4d){return Form.serialize(_4d.dom||_4d,true);}};}();Ext.lib.Anim=function(){var _4e={easeOut:function(pos){return 1-Math.pow(1-pos,2);},easeIn:function(pos){return 1-Math.pow(1-pos,2);}};var _51=function(cb,_53){return {stop:function(_54){this.effect.cancel();},isAnimated:function(){return this.effect.state=="running";},proxyCallback:function(){Ext.callback(cb,_53);}};};return {scroll:function(el,_56,_57,_58,cb,_5a){var _5b=_51(cb,_5a);el=Ext.getDom(el);el.scrollLeft=_56.to[0];el.scrollTop=_56.to[1];_5b.proxyCallback();return _5b;},motion:function(el,_5d,_5e,_5f,cb,_61){return this.run(el,_5d,_5e,_5f,cb,_61);},color:function(el,_63,_64,_65,cb,_67){return this.run(el,_63,_64,_65,cb,_67);},run:function(el,_69,_6a,_6b,cb,_6d,_6e){var o={};for(var k in _69){switch(k){case "points":var by,pts,e=Ext.fly(el,"_animrun");e.position();if(by=_69.points.by){var xy=e.getXY();pts=e.translatePoints([xy[0]+by[0],xy[1]+by[1]]);}else{pts=e.translatePoints(_69.points.to);}o.left=pts.left+"px";o.top=pts.top+"px";break;case "width":o.width=_69.width.to+"px";break;case "height":o.height=_69.height.to+"px";break;case "opacity":o.opacity=String(_69.opacity.to);break;default:o[k]=String(_69[k].to);break;}}var _75=_51(cb,_6d);_75.effect=new Effect.Morph(Ext.id(el),{duration:_6a,afterFinish:_75.proxyCallback,transition:_4e[_6b]||Effect.Transitions.linear,style:o});return _75;}};}();function fly(el){if(!_1){_1=new Ext.Element.Flyweight();}_1.dom=el;return _1;}Ext.lib.Region=function(t,r,b,l){this.top=t;this[1]=t;this.right=r;this.bottom=b;this.left=l;this[0]=l;};Ext.lib.Region.prototype={contains:function(_7b){return (_7b.left>=this.left&&_7b.right<=this.right&&_7b.top>=this.top&&_7b.bottom<=this.bottom);},getArea:function(){return ((this.bottom-this.top)*(this.right-this.left));},intersect:function(_7c){var t=Math.max(this.top,_7c.top);var r=Math.min(this.right,_7c.right);var b=Math.min(this.bottom,_7c.bottom);var l=Math.max(this.left,_7c.left);if(b>=t&&r>=l){return new Ext.lib.Region(t,r,b,l);}else{return null;}},union:function(_81){var t=Math.min(this.top,_81.top);var r=Math.max(this.right,_81.right);var b=Math.max(this.bottom,_81.bottom);var l=Math.min(this.left,_81.left);return new Ext.lib.Region(t,r,b,l);},adjust:function(t,l,b,r){this.top+=t;this.left+=l;this.right+=r;this.bottom+=b;return this;}};Ext.lib.Region.getRegion=function(el){var p=Ext.lib.Dom.getXY(el);var t=p[1];var r=p[0]+el.offsetWidth;var b=p[1]+el.offsetHeight;var l=p[0];return new Ext.lib.Region(t,r,b,l);};Ext.lib.Point=function(x,y){if(x instanceof Array){y=x[1];x=x[0];}this.x=this.right=this.left=this[0]=x;this.y=this.top=this.bottom=this[1]=y;};Ext.lib.Point.prototype=new Ext.lib.Region();if(Ext.isIE){Event.observe(window,"unload",function(){var p=Function.prototype;delete p.createSequence;delete p.defer;delete p.createDelegate;delete p.createCallback;delete p.createInterceptor;});}})(); - diff --git a/www/extras/extjs/adapter/prototype/prototype.js b/www/extras/extjs/adapter/prototype/prototype.js deleted file mode 100644 index 7814180a1..000000000 --- a/www/extras/extjs/adapter/prototype/prototype.js +++ /dev/null @@ -1,2523 +0,0 @@ -/* - * Ext JS Library 1.0 Beta 1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* Prototype JavaScript framework, version 1.5.0 - * (c) 2005-2007 Sam Stephenson - * - * Prototype is freely distributable under the terms of an MIT-style license. - * For details, see the Prototype web site: http://prototype.conio.net/ - * -/*--------------------------------------------------------------------------*/ - -var Prototype = { - Version: '1.5.0', - BrowserFeatures: { - XPath: !!document.evaluate - }, - - ScriptFragment: '(?:)((\n|\r|.)*?)(?:<\/script>)', - emptyFunction: function() {}, - K: function(x) { return x } -} - -var Class = { - create: function() { - return function() { - this.initialize.apply(this, arguments); - } - } -} - -var Abstract = new Object(); - -Object.extend = function(destination, source) { - for (var property in source) { - destination[property] = source[property]; - } - return destination; -} - -Object.extend(Object, { - inspect: function(object) { - try { - if (object === undefined) return 'undefined'; - if (object === null) return 'null'; - return object.inspect ? object.inspect() : object.toString(); - } catch (e) { - if (e instanceof RangeError) return '...'; - throw e; - } - }, - - keys: function(object) { - var keys = []; - for (var property in object) - keys.push(property); - return keys; - }, - - values: function(object) { - var values = []; - for (var property in object) - values.push(object[property]); - return values; - }, - - clone: function(object) { - return Object.extend({}, object); - } -}); - -Function.prototype.bind = function() { - var __method = this, args = $A(arguments), object = args.shift(); - return function() { - return __method.apply(object, args.concat($A(arguments))); - } -} - -Function.prototype.bindAsEventListener = function(object) { - var __method = this, args = $A(arguments), object = args.shift(); - return function(event) { - return __method.apply(object, [( event || window.event)].concat(args).concat($A(arguments))); - } -} - -Object.extend(Number.prototype, { - toColorPart: function() { - var digits = this.toString(16); - if (this < 16) return '0' + digits; - return digits; - }, - - succ: function() { - return this + 1; - }, - - times: function(iterator) { - $R(0, this, true).each(iterator); - return this; - } -}); - -var Try = { - these: function() { - var returnValue; - - for (var i = 0, length = arguments.length; i < length; i++) { - var lambda = arguments[i]; - try { - returnValue = lambda(); - break; - } catch (e) {} - } - - return returnValue; - } -} - -/*--------------------------------------------------------------------------*/ - -var PeriodicalExecuter = Class.create(); -PeriodicalExecuter.prototype = { - initialize: function(callback, frequency) { - this.callback = callback; - this.frequency = frequency; - this.currentlyExecuting = false; - - this.registerCallback(); - }, - - registerCallback: function() { - this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); - }, - - stop: function() { - if (!this.timer) return; - clearInterval(this.timer); - this.timer = null; - }, - - onTimerEvent: function() { - if (!this.currentlyExecuting) { - try { - this.currentlyExecuting = true; - this.callback(this); - } finally { - this.currentlyExecuting = false; - } - } - } -} -String.interpret = function(value){ - return value == null ? '' : String(value); -} - -Object.extend(String.prototype, { - gsub: function(pattern, replacement) { - var result = '', source = this, match; - replacement = arguments.callee.prepareReplacement(replacement); - - while (source.length > 0) { - if (match = source.match(pattern)) { - result += source.slice(0, match.index); - result += String.interpret(replacement(match)); - source = source.slice(match.index + match[0].length); - } else { - result += source, source = ''; - } - } - return result; - }, - - sub: function(pattern, replacement, count) { - replacement = this.gsub.prepareReplacement(replacement); - count = count === undefined ? 1 : count; - - return this.gsub(pattern, function(match) { - if (--count < 0) return match[0]; - return replacement(match); - }); - }, - - scan: function(pattern, iterator) { - this.gsub(pattern, iterator); - return this; - }, - - truncate: function(length, truncation) { - length = length || 30; - truncation = truncation === undefined ? '...' : truncation; - return this.length > length ? - this.slice(0, length - truncation.length) + truncation : this; - }, - - strip: function() { - return this.replace(/^\s+/, '').replace(/\s+$/, ''); - }, - - stripTags: function() { - return this.replace(/<\/?[^>]+>/gi, ''); - }, - - stripScripts: function() { - return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); - }, - - extractScripts: function() { - var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); - var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); - return (this.match(matchAll) || []).map(function(scriptTag) { - return (scriptTag.match(matchOne) || ['', ''])[1]; - }); - }, - - evalScripts: function() { - return this.extractScripts().map(function(script) { return eval(script) }); - }, - - escapeHTML: function() { - var div = document.createElement('div'); - var text = document.createTextNode(this); - div.appendChild(text); - return div.innerHTML; - }, - - unescapeHTML: function() { - var div = document.createElement('div'); - div.innerHTML = this.stripTags(); - return div.childNodes[0] ? (div.childNodes.length > 1 ? - $A(div.childNodes).inject('',function(memo,node){ return memo+node.nodeValue }) : - div.childNodes[0].nodeValue) : ''; - }, - - toQueryParams: function(separator) { - var match = this.strip().match(/([^?#]*)(#.*)?$/); - if (!match) return {}; - - return match[1].split(separator || '&').inject({}, function(hash, pair) { - if ((pair = pair.split('='))[0]) { - var name = decodeURIComponent(pair[0]); - var value = pair[1] ? decodeURIComponent(pair[1]) : undefined; - - if (hash[name] !== undefined) { - if (hash[name].constructor != Array) - hash[name] = [hash[name]]; - if (value) hash[name].push(value); - } - else hash[name] = value; - } - return hash; - }); - }, - - toArray: function() { - return this.split(''); - }, - - succ: function() { - return this.slice(0, this.length - 1) + - String.fromCharCode(this.charCodeAt(this.length - 1) + 1); - }, - - camelize: function() { - var parts = this.split('-'), len = parts.length; - if (len == 1) return parts[0]; - - var camelized = this.charAt(0) == '-' - ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1) - : parts[0]; - - for (var i = 1; i < len; i++) - camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1); - - return camelized; - }, - - capitalize: function(){ - return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase(); - }, - - underscore: function() { - return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase(); - }, - - dasherize: function() { - return this.gsub(/_/,'-'); - }, - - inspect: function(useDoubleQuotes) { - var escapedString = this.replace(/\\/g, '\\\\'); - if (useDoubleQuotes) - return '"' + escapedString.replace(/"/g, '\\"') + '"'; - else - return "'" + escapedString.replace(/'/g, '\\\'') + "'"; - } -}); - -String.prototype.gsub.prepareReplacement = function(replacement) { - if (typeof replacement == 'function') return replacement; - var template = new Template(replacement); - return function(match) { return template.evaluate(match) }; -} - -String.prototype.parseQuery = String.prototype.toQueryParams; - -var Template = Class.create(); -Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/; -Template.prototype = { - initialize: function(template, pattern) { - this.template = template.toString(); - this.pattern = pattern || Template.Pattern; - }, - - evaluate: function(object) { - return this.template.gsub(this.pattern, function(match) { - var before = match[1]; - if (before == '\\') return match[2]; - return before + String.interpret(object[match[3]]); - }); - } -} - -var $break = new Object(); -var $continue = new Object(); - -var Enumerable = { - each: function(iterator) { - var index = 0; - try { - this._each(function(value) { - try { - iterator(value, index++); - } catch (e) { - if (e != $continue) throw e; - } - }); - } catch (e) { - if (e != $break) throw e; - } - return this; - }, - - eachSlice: function(number, iterator) { - var index = -number, slices = [], array = this.toArray(); - while ((index += number) < array.length) - slices.push(array.slice(index, index+number)); - return slices.map(iterator); - }, - - all: function(iterator) { - var result = true; - this.each(function(value, index) { - result = result && !!(iterator || Prototype.K)(value, index); - if (!result) throw $break; - }); - return result; - }, - - any: function(iterator) { - var result = false; - this.each(function(value, index) { - if (result = !!(iterator || Prototype.K)(value, index)) - throw $break; - }); - return result; - }, - - collect: function(iterator) { - var results = []; - this.each(function(value, index) { - results.push((iterator || Prototype.K)(value, index)); - }); - return results; - }, - - detect: function(iterator) { - var result; - this.each(function(value, index) { - if (iterator(value, index)) { - result = value; - throw $break; - } - }); - return result; - }, - - findAll: function(iterator) { - var results = []; - this.each(function(value, index) { - if (iterator(value, index)) - results.push(value); - }); - return results; - }, - - grep: function(pattern, iterator) { - var results = []; - this.each(function(value, index) { - var stringValue = value.toString(); - if (stringValue.match(pattern)) - results.push((iterator || Prototype.K)(value, index)); - }) - return results; - }, - - include: function(object) { - var found = false; - this.each(function(value) { - if (value == object) { - found = true; - throw $break; - } - }); - return found; - }, - - inGroupsOf: function(number, fillWith) { - fillWith = fillWith === undefined ? null : fillWith; - return this.eachSlice(number, function(slice) { - while(slice.length < number) slice.push(fillWith); - return slice; - }); - }, - - inject: function(memo, iterator) { - this.each(function(value, index) { - memo = iterator(memo, value, index); - }); - return memo; - }, - - invoke: function(method) { - var args = $A(arguments).slice(1); - return this.map(function(value) { - return value[method].apply(value, args); - }); - }, - - max: function(iterator) { - var result; - this.each(function(value, index) { - value = (iterator || Prototype.K)(value, index); - if (result == undefined || value >= result) - result = value; - }); - return result; - }, - - min: function(iterator) { - var result; - this.each(function(value, index) { - value = (iterator || Prototype.K)(value, index); - if (result == undefined || value < result) - result = value; - }); - return result; - }, - - partition: function(iterator) { - var trues = [], falses = []; - this.each(function(value, index) { - ((iterator || Prototype.K)(value, index) ? - trues : falses).push(value); - }); - return [trues, falses]; - }, - - pluck: function(property) { - var results = []; - this.each(function(value, index) { - results.push(value[property]); - }); - return results; - }, - - reject: function(iterator) { - var results = []; - this.each(function(value, index) { - if (!iterator(value, index)) - results.push(value); - }); - return results; - }, - - sortBy: function(iterator) { - return this.map(function(value, index) { - return {value: value, criteria: iterator(value, index)}; - }).sort(function(left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }).pluck('value'); - }, - - toArray: function() { - return this.map(); - }, - - zip: function() { - var iterator = Prototype.K, args = $A(arguments); - if (typeof args.last() == 'function') - iterator = args.pop(); - - var collections = [this].concat(args).map($A); - return this.map(function(value, index) { - return iterator(collections.pluck(index)); - }); - }, - - size: function() { - return this.toArray().length; - }, - - inspect: function() { - return '#'; - } -} - -Object.extend(Enumerable, { - map: Enumerable.collect, - find: Enumerable.detect, - select: Enumerable.findAll, - member: Enumerable.include, - entries: Enumerable.toArray -}); -var $A = Array.from = function(iterable) { - if (!iterable) return []; - if (iterable.toArray) { - return iterable.toArray(); - } else { - var results = []; - for (var i = 0, length = iterable.length; i < length; i++) - results.push(iterable[i]); - return results; - } -} - -Object.extend(Array.prototype, Enumerable); - -if (!Array.prototype._reverse) - Array.prototype._reverse = Array.prototype.reverse; - -Object.extend(Array.prototype, { - _each: function(iterator) { - for (var i = 0, length = this.length; i < length; i++) - iterator(this[i]); - }, - - clear: function() { - this.length = 0; - return this; - }, - - first: function() { - return this[0]; - }, - - last: function() { - return this[this.length - 1]; - }, - - compact: function() { - return this.select(function(value) { - return value != null; - }); - }, - - flatten: function() { - return this.inject([], function(array, value) { - return array.concat(value && value.constructor == Array ? - value.flatten() : [value]); - }); - }, - - without: function() { - var values = $A(arguments); - return this.select(function(value) { - return !values.include(value); - }); - }, - - indexOf: function(object) { - for (var i = 0, length = this.length; i < length; i++) - if (this[i] == object) return i; - return -1; - }, - - reverse: function(inline) { - return (inline !== false ? this : this.toArray())._reverse(); - }, - - reduce: function() { - return this.length > 1 ? this : this[0]; - }, - - uniq: function() { - return this.inject([], function(array, value) { - return array.include(value) ? array : array.concat([value]); - }); - }, - - clone: function() { - return [].concat(this); - }, - - size: function() { - return this.length; - }, - - inspect: function() { - return '[' + this.map(Object.inspect).join(', ') + ']'; - } -}); - -Array.prototype.toArray = Array.prototype.clone; - -function $w(string){ - string = string.strip(); - return string ? string.split(/\s+/) : []; -} - -if(window.opera){ - Array.prototype.concat = function(){ - var array = []; - for(var i = 0, length = this.length; i < length; i++) array.push(this[i]); - for(var i = 0, length = arguments.length; i < length; i++) { - if(arguments[i].constructor == Array) { - for(var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++) - array.push(arguments[i][j]); - } else { - array.push(arguments[i]); - } - } - return array; - } -} -var Hash = function(obj) { - Object.extend(this, obj || {}); -}; - -Object.extend(Hash, { - toQueryString: function(obj) { - var parts = []; - - this.prototype._each.call(obj, function(pair) { - if (!pair.key) return; - - if (pair.value && pair.value.constructor == Array) { - var values = pair.value.compact(); - if (values.length < 2) pair.value = values.reduce(); - else { - key = encodeURIComponent(pair.key); - values.each(function(value) { - value = value != undefined ? encodeURIComponent(value) : ''; - parts.push(key + '=' + encodeURIComponent(value)); - }); - return; - } - } - if (pair.value == undefined) pair[1] = ''; - parts.push(pair.map(encodeURIComponent).join('=')); - }); - - return parts.join('&'); - } -}); - -Object.extend(Hash.prototype, Enumerable); -Object.extend(Hash.prototype, { - _each: function(iterator) { - for (var key in this) { - var value = this[key]; - if (value && value == Hash.prototype[key]) continue; - - var pair = [key, value]; - pair.key = key; - pair.value = value; - iterator(pair); - } - }, - - keys: function() { - return this.pluck('key'); - }, - - values: function() { - return this.pluck('value'); - }, - - merge: function(hash) { - return $H(hash).inject(this, function(mergedHash, pair) { - mergedHash[pair.key] = pair.value; - return mergedHash; - }); - }, - - remove: function() { - var result; - for(var i = 0, length = arguments.length; i < length; i++) { - var value = this[arguments[i]]; - if (value !== undefined){ - if (result === undefined) result = value; - else { - if (result.constructor != Array) result = [result]; - result.push(value) - } - } - delete this[arguments[i]]; - } - return result; - }, - - toQueryString: function() { - return Hash.toQueryString(this); - }, - - inspect: function() { - return '#'; - } -}); - -function $H(object) { - if (object && object.constructor == Hash) return object; - return new Hash(object); -}; -ObjectRange = Class.create(); -Object.extend(ObjectRange.prototype, Enumerable); -Object.extend(ObjectRange.prototype, { - initialize: function(start, end, exclusive) { - this.start = start; - this.end = end; - this.exclusive = exclusive; - }, - - _each: function(iterator) { - var value = this.start; - while (this.include(value)) { - iterator(value); - value = value.succ(); - } - }, - - include: function(value) { - if (value < this.start) - return false; - if (this.exclusive) - return value < this.end; - return value <= this.end; - } -}); - -var $R = function(start, end, exclusive) { - return new ObjectRange(start, end, exclusive); -} - -var Ajax = { - getTransport: function() { - return Try.these( - function() {return new XMLHttpRequest()}, - function() {return new ActiveXObject('Msxml2.XMLHTTP')}, - function() {return new ActiveXObject('Microsoft.XMLHTTP')} - ) || false; - }, - - activeRequestCount: 0 -} - -Ajax.Responders = { - responders: [], - - _each: function(iterator) { - this.responders._each(iterator); - }, - - register: function(responder) { - if (!this.include(responder)) - this.responders.push(responder); - }, - - unregister: function(responder) { - this.responders = this.responders.without(responder); - }, - - dispatch: function(callback, request, transport, json) { - this.each(function(responder) { - if (typeof responder[callback] == 'function') { - try { - responder[callback].apply(responder, [request, transport, json]); - } catch (e) {} - } - }); - } -}; - -Object.extend(Ajax.Responders, Enumerable); - -Ajax.Responders.register({ - onCreate: function() { - Ajax.activeRequestCount++; - }, - onComplete: function() { - Ajax.activeRequestCount--; - } -}); - -Ajax.Base = function() {}; -Ajax.Base.prototype = { - setOptions: function(options) { - this.options = { - method: 'post', - asynchronous: true, - contentType: 'application/x-www-form-urlencoded', - encoding: 'UTF-8', - parameters: '' - } - Object.extend(this.options, options || {}); - - this.options.method = this.options.method.toLowerCase(); - if (typeof this.options.parameters == 'string') - this.options.parameters = this.options.parameters.toQueryParams(); - } -} - -Ajax.Request = Class.create(); -Ajax.Request.Events = - ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; - -Ajax.Request.prototype = Object.extend(new Ajax.Base(), { - _complete: false, - - initialize: function(url, options) { - this.transport = Ajax.getTransport(); - this.setOptions(options); - this.request(url); - }, - - request: function(url) { - this.url = url; - this.method = this.options.method; - var params = this.options.parameters; - - if (!['get', 'post'].include(this.method)) { - // simulate other verbs over post - params['_method'] = this.method; - this.method = 'post'; - } - - params = Hash.toQueryString(params); - if (params && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) params += '&_=' - - // when GET, append parameters to URL - if (this.method == 'get' && params) - this.url += (this.url.indexOf('?') > -1 ? '&' : '?') + params; - - try { - Ajax.Responders.dispatch('onCreate', this, this.transport); - - this.transport.open(this.method.toUpperCase(), this.url, - this.options.asynchronous); - - if (this.options.asynchronous) - setTimeout(function() { this.respondToReadyState(1) }.bind(this), 10); - - this.transport.onreadystatechange = this.onStateChange.bind(this); - this.setRequestHeaders(); - - var body = this.method == 'post' ? (this.options.postBody || params) : null; - - this.transport.send(body); - - /* Force Firefox to handle ready state 4 for synchronous requests */ - if (!this.options.asynchronous && this.transport.overrideMimeType) - this.onStateChange(); - - } - catch (e) { - this.dispatchException(e); - } - }, - - onStateChange: function() { - var readyState = this.transport.readyState; - if (readyState > 1 && !((readyState == 4) && this._complete)) - this.respondToReadyState(this.transport.readyState); - }, - - setRequestHeaders: function() { - var headers = { - 'X-Requested-With': 'XMLHttpRequest', - 'X-Prototype-Version': Prototype.Version, - 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*' - }; - - if (this.method == 'post') { - headers['Content-type'] = this.options.contentType + - (this.options.encoding ? '; charset=' + this.options.encoding : ''); - - /* Force "Connection: close" for older Mozilla browsers to work - * around a bug where XMLHttpRequest sends an incorrect - * Content-length header. See Mozilla Bugzilla #246651. - */ - if (this.transport.overrideMimeType && - (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005) - headers['Connection'] = 'close'; - } - - // user-defined headers - if (typeof this.options.requestHeaders == 'object') { - var extras = this.options.requestHeaders; - - if (typeof extras.push == 'function') - for (var i = 0, length = extras.length; i < length; i += 2) - headers[extras[i]] = extras[i+1]; - else - $H(extras).each(function(pair) { headers[pair.key] = pair.value }); - } - - for (var name in headers) - this.transport.setRequestHeader(name, headers[name]); - }, - - success: function() { - return !this.transport.status - || (this.transport.status >= 200 && this.transport.status < 300); - }, - - respondToReadyState: function(readyState) { - var state = Ajax.Request.Events[readyState]; - var transport = this.transport, json = this.evalJSON(); - - if (state == 'Complete') { - try { - this._complete = true; - (this.options['on' + this.transport.status] - || this.options['on' + (this.success() ? 'Success' : 'Failure')] - || Prototype.emptyFunction)(transport, json); - } catch (e) { - this.dispatchException(e); - } - - if ((this.getHeader('Content-type') || 'text/javascript').strip(). - match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i)) - this.evalResponse(); - } - - try { - (this.options['on' + state] || Prototype.emptyFunction)(transport, json); - Ajax.Responders.dispatch('on' + state, this, transport, json); - } catch (e) { - this.dispatchException(e); - } - - if (state == 'Complete') { - // avoid memory leak in MSIE: clean up - this.transport.onreadystatechange = Prototype.emptyFunction; - } - }, - - getHeader: function(name) { - try { - return this.transport.getResponseHeader(name); - } catch (e) { return null } - }, - - evalJSON: function() { - try { - var json = this.getHeader('X-JSON'); - return json ? eval('(' + json + ')') : null; - } catch (e) { return null } - }, - - evalResponse: function() { - try { - return eval(this.transport.responseText); - } catch (e) { - this.dispatchException(e); - } - }, - - dispatchException: function(exception) { - (this.options.onException || Prototype.emptyFunction)(this, exception); - Ajax.Responders.dispatch('onException', this, exception); - } -}); - -Ajax.Updater = Class.create(); - -Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), { - initialize: function(container, url, options) { - this.container = { - success: (container.success || container), - failure: (container.failure || (container.success ? null : container)) - } - - this.transport = Ajax.getTransport(); - this.setOptions(options); - - var onComplete = this.options.onComplete || Prototype.emptyFunction; - this.options.onComplete = (function(transport, param) { - this.updateContent(); - onComplete(transport, param); - }).bind(this); - - this.request(url); - }, - - updateContent: function() { - var receiver = this.container[this.success() ? 'success' : 'failure']; - var response = this.transport.responseText; - - if (!this.options.evalScripts) response = response.stripScripts(); - - if (receiver = $(receiver)) { - if (this.options.insertion) - new this.options.insertion(receiver, response); - else - receiver.update(response); - } - - if (this.success()) { - if (this.onComplete) - setTimeout(this.onComplete.bind(this), 10); - } - } -}); - -Ajax.PeriodicalUpdater = Class.create(); -Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), { - initialize: function(container, url, options) { - this.setOptions(options); - this.onComplete = this.options.onComplete; - - this.frequency = (this.options.frequency || 2); - this.decay = (this.options.decay || 1); - - this.updater = {}; - this.container = container; - this.url = url; - - this.start(); - }, - - start: function() { - this.options.onComplete = this.updateComplete.bind(this); - this.onTimerEvent(); - }, - - stop: function() { - this.updater.options.onComplete = undefined; - clearTimeout(this.timer); - (this.onComplete || Prototype.emptyFunction).apply(this, arguments); - }, - - updateComplete: function(request) { - if (this.options.decay) { - this.decay = (request.responseText == this.lastText ? - this.decay * this.options.decay : 1); - - this.lastText = request.responseText; - } - this.timer = setTimeout(this.onTimerEvent.bind(this), - this.decay * this.frequency * 1000); - }, - - onTimerEvent: function() { - this.updater = new Ajax.Updater(this.container, this.url, this.options); - } -}); -function $(element) { - if (arguments.length > 1) { - for (var i = 0, elements = [], length = arguments.length; i < length; i++) - elements.push($(arguments[i])); - return elements; - } - if (typeof element == 'string') - element = document.getElementById(element); - return Element.extend(element); -} - -if (Prototype.BrowserFeatures.XPath) { - document._getElementsByXPath = function(expression, parentElement) { - var results = []; - var query = document.evaluate(expression, $(parentElement) || document, - null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); - for (var i = 0, length = query.snapshotLength; i < length; i++) - results.push(query.snapshotItem(i)); - return results; - }; -} - -document.getElementsByClassName = function(className, parentElement) { - if (Prototype.BrowserFeatures.XPath) { - var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]"; - return document._getElementsByXPath(q, parentElement); - } else { - var children = ($(parentElement) || document.body).getElementsByTagName('*'); - var elements = [], child; - for (var i = 0, length = children.length; i < length; i++) { - child = children[i]; - if (Element.hasClassName(child, className)) - elements.push(Element.extend(child)); - } - return elements; - } -}; - -/*--------------------------------------------------------------------------*/ - -if (!window.Element) - var Element = new Object(); - -Element.extend = function(element) { - if (!element || _nativeExtensions || element.nodeType == 3) return element; - - if (!element._extended && element.tagName && element != window) { - var methods = Object.clone(Element.Methods), cache = Element.extend.cache; - - if (element.tagName == 'FORM') - Object.extend(methods, Form.Methods); - if (['INPUT', 'TEXTAREA', 'SELECT'].include(element.tagName)) - Object.extend(methods, Form.Element.Methods); - - Object.extend(methods, Element.Methods.Simulated); - - for (var property in methods) { - var value = methods[property]; - if (typeof value == 'function' && !(property in element)) - element[property] = cache.findOrStore(value); - } - } - - element._extended = true; - return element; -}; - -Element.extend.cache = { - findOrStore: function(value) { - return this[value] = this[value] || function() { - return value.apply(null, [this].concat($A(arguments))); - } - } -}; - -Element.Methods = { - visible: function(element) { - return $(element).style.display != 'none'; - }, - - toggle: function(element) { - element = $(element); - Element[Element.visible(element) ? 'hide' : 'show'](element); - return element; - }, - - hide: function(element) { - $(element).style.display = 'none'; - return element; - }, - - show: function(element) { - $(element).style.display = ''; - return element; - }, - - remove: function(element) { - element = $(element); - element.parentNode.removeChild(element); - return element; - }, - - update: function(element, html) { - html = typeof html == 'undefined' ? '' : html.toString(); - $(element).innerHTML = html.stripScripts(); - setTimeout(function() {html.evalScripts()}, 10); - return element; - }, - - replace: function(element, html) { - element = $(element); - html = typeof html == 'undefined' ? '' : html.toString(); - if (element.outerHTML) { - element.outerHTML = html.stripScripts(); - } else { - var range = element.ownerDocument.createRange(); - range.selectNodeContents(element); - element.parentNode.replaceChild( - range.createContextualFragment(html.stripScripts()), element); - } - setTimeout(function() {html.evalScripts()}, 10); - return element; - }, - - inspect: function(element) { - element = $(element); - var result = '<' + element.tagName.toLowerCase(); - $H({'id': 'id', 'className': 'class'}).each(function(pair) { - var property = pair.first(), attribute = pair.last(); - var value = (element[property] || '').toString(); - if (value) result += ' ' + attribute + '=' + value.inspect(true); - }); - return result + '>'; - }, - - recursivelyCollect: function(element, property) { - element = $(element); - var elements = []; - while (element = element[property]) - if (element.nodeType == 1) - elements.push(Element.extend(element)); - return elements; - }, - - ancestors: function(element) { - return $(element).recursivelyCollect('parentNode'); - }, - - descendants: function(element) { - return $A($(element).getElementsByTagName('*')); - }, - - immediateDescendants: function(element) { - if (!(element = $(element).firstChild)) return []; - while (element && element.nodeType != 1) element = element.nextSibling; - if (element) return [element].concat($(element).nextSiblings()); - return []; - }, - - previousSiblings: function(element) { - return $(element).recursivelyCollect('previousSibling'); - }, - - nextSiblings: function(element) { - return $(element).recursivelyCollect('nextSibling'); - }, - - siblings: function(element) { - element = $(element); - return element.previousSiblings().reverse().concat(element.nextSiblings()); - }, - - match: function(element, selector) { - if (typeof selector == 'string') - selector = new Selector(selector); - return selector.match($(element)); - }, - - up: function(element, expression, index) { - return Selector.findElement($(element).ancestors(), expression, index); - }, - - down: function(element, expression, index) { - return Selector.findElement($(element).descendants(), expression, index); - }, - - previous: function(element, expression, index) { - return Selector.findElement($(element).previousSiblings(), expression, index); - }, - - next: function(element, expression, index) { - return Selector.findElement($(element).nextSiblings(), expression, index); - }, - - getElementsBySelector: function() { - var args = $A(arguments), element = $(args.shift()); - return Selector.findChildElements(element, args); - }, - - getElementsByClassName: function(element, className) { - return document.getElementsByClassName(className, element); - }, - - readAttribute: function(element, name) { - element = $(element); - if (document.all && !window.opera) { - var t = Element._attributeTranslations; - if (t.values[name]) return t.values[name](element, name); - if (t.names[name]) name = t.names[name]; - var attribute = element.attributes[name]; - if(attribute) return attribute.nodeValue; - } - return element.getAttribute(name); - }, - - getHeight: function(element) { - return $(element).getDimensions().height; - }, - - getWidth: function(element) { - return $(element).getDimensions().width; - }, - - classNames: function(element) { - return new Element.ClassNames(element); - }, - - hasClassName: function(element, className) { - if (!(element = $(element))) return; - var elementClassName = element.className; - if (elementClassName.length == 0) return false; - if (elementClassName == className || - elementClassName.match(new RegExp("(^|\\s)" + className + "(\\s|$)"))) - return true; - return false; - }, - - addClassName: function(element, className) { - if (!(element = $(element))) return; - Element.classNames(element).add(className); - return element; - }, - - removeClassName: function(element, className) { - if (!(element = $(element))) return; - Element.classNames(element).remove(className); - return element; - }, - - toggleClassName: function(element, className) { - if (!(element = $(element))) return; - Element.classNames(element)[element.hasClassName(className) ? 'remove' : 'add'](className); - return element; - }, - - observe: function() { - Event.observe.apply(Event, arguments); - return $A(arguments).first(); - }, - - stopObserving: function() { - Event.stopObserving.apply(Event, arguments); - return $A(arguments).first(); - }, - - // removes whitespace-only text node children - cleanWhitespace: function(element) { - element = $(element); - var node = element.firstChild; - while (node) { - var nextNode = node.nextSibling; - if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) - element.removeChild(node); - node = nextNode; - } - return element; - }, - - empty: function(element) { - return $(element).innerHTML.match(/^\s*$/); - }, - - descendantOf: function(element, ancestor) { - element = $(element), ancestor = $(ancestor); - while (element = element.parentNode) - if (element == ancestor) return true; - return false; - }, - - scrollTo: function(element) { - element = $(element); - var pos = Position.cumulativeOffset(element); - window.scrollTo(pos[0], pos[1]); - return element; - }, - - getStyle: function(element, style) { - element = $(element); - if (['float','cssFloat'].include(style)) - style = (typeof element.style.styleFloat != 'undefined' ? 'styleFloat' : 'cssFloat'); - style = style.camelize(); - var value = element.style[style]; - if (!value) { - if (document.defaultView && document.defaultView.getComputedStyle) { - var css = document.defaultView.getComputedStyle(element, null); - value = css ? css[style] : null; - } else if (element.currentStyle) { - value = element.currentStyle[style]; - } - } - - if((value == 'auto') && ['width','height'].include(style) && (element.getStyle('display') != 'none')) - value = element['offset'+style.capitalize()] + 'px'; - - if (window.opera && ['left', 'top', 'right', 'bottom'].include(style)) - if (Element.getStyle(element, 'position') == 'static') value = 'auto'; - if(style == 'opacity') { - if(value) return parseFloat(value); - if(value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/)) - if(value[1]) return parseFloat(value[1]) / 100; - return 1.0; - } - return value == 'auto' ? null : value; - }, - - setStyle: function(element, style) { - element = $(element); - for (var name in style) { - var value = style[name]; - if(name == 'opacity') { - if (value == 1) { - value = (/Gecko/.test(navigator.userAgent) && - !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? 0.999999 : 1.0; - if(/MSIE/.test(navigator.userAgent) && !window.opera) - element.style.filter = element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,''); - } else if(value === '') { - if(/MSIE/.test(navigator.userAgent) && !window.opera) - element.style.filter = element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,''); - } else { - if(value < 0.00001) value = 0; - if(/MSIE/.test(navigator.userAgent) && !window.opera) - element.style.filter = element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'') + - 'alpha(opacity='+value*100+')'; - } - } else if(['float','cssFloat'].include(name)) name = (typeof element.style.styleFloat != 'undefined') ? 'styleFloat' : 'cssFloat'; - element.style[name.camelize()] = value; - } - return element; - }, - - getDimensions: function(element) { - element = $(element); - var display = $(element).getStyle('display'); - if (display != 'none' && display != null) // Safari bug - return {width: element.offsetWidth, height: element.offsetHeight}; - - // All *Width and *Height properties give 0 on elements with display none, - // so enable the element temporarily - var els = element.style; - var originalVisibility = els.visibility; - var originalPosition = els.position; - var originalDisplay = els.display; - els.visibility = 'hidden'; - els.position = 'absolute'; - els.display = 'block'; - var originalWidth = element.clientWidth; - var originalHeight = element.clientHeight; - els.display = originalDisplay; - els.position = originalPosition; - els.visibility = originalVisibility; - return {width: originalWidth, height: originalHeight}; - }, - - makePositioned: function(element) { - element = $(element); - var pos = Element.getStyle(element, 'position'); - if (pos == 'static' || !pos) { - element._madePositioned = true; - element.style.position = 'relative'; - // Opera returns the offset relative to the positioning context, when an - // element is position relative but top and left have not been defined - if (window.opera) { - element.style.top = 0; - element.style.left = 0; - } - } - return element; - }, - - undoPositioned: function(element) { - element = $(element); - if (element._madePositioned) { - element._madePositioned = undefined; - element.style.position = - element.style.top = - element.style.left = - element.style.bottom = - element.style.right = ''; - } - return element; - }, - - makeClipping: function(element) { - element = $(element); - if (element._overflow) return element; - element._overflow = element.style.overflow || 'auto'; - if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden') - element.style.overflow = 'hidden'; - return element; - }, - - undoClipping: function(element) { - element = $(element); - if (!element._overflow) return element; - element.style.overflow = element._overflow == 'auto' ? '' : element._overflow; - element._overflow = null; - return element; - } -}; - -Object.extend(Element.Methods, {childOf: Element.Methods.descendantOf}); - -Element._attributeTranslations = {}; - -Element._attributeTranslations.names = { - colspan: "colSpan", - rowspan: "rowSpan", - valign: "vAlign", - datetime: "dateTime", - accesskey: "accessKey", - tabindex: "tabIndex", - enctype: "encType", - maxlength: "maxLength", - readonly: "readOnly", - longdesc: "longDesc" -}; - -Element._attributeTranslations.values = { - _getAttr: function(element, attribute) { - return element.getAttribute(attribute, 2); - }, - - _flag: function(element, attribute) { - return $(element).hasAttribute(attribute) ? attribute : null; - }, - - style: function(element) { - return element.style.cssText.toLowerCase(); - }, - - title: function(element) { - var node = element.getAttributeNode('title'); - return node.specified ? node.nodeValue : null; - } -}; - -Object.extend(Element._attributeTranslations.values, { - href: Element._attributeTranslations.values._getAttr, - src: Element._attributeTranslations.values._getAttr, - disabled: Element._attributeTranslations.values._flag, - checked: Element._attributeTranslations.values._flag, - readonly: Element._attributeTranslations.values._flag, - multiple: Element._attributeTranslations.values._flag -}); - -Element.Methods.Simulated = { - hasAttribute: function(element, attribute) { - var t = Element._attributeTranslations; - attribute = t.names[attribute] || attribute; - return $(element).getAttributeNode(attribute).specified; - } -}; - -// IE is missing .innerHTML support for TABLE-related elements -if (document.all && !window.opera){ - Element.Methods.update = function(element, html) { - element = $(element); - html = typeof html == 'undefined' ? '' : html.toString(); - var tagName = element.tagName.toUpperCase(); - if (['THEAD','TBODY','TR','TD'].include(tagName)) { - var div = document.createElement('div'); - switch (tagName) { - case 'THEAD': - case 'TBODY': - div.innerHTML = '
' + html.stripScripts() + '
'; - depth = 2; - break; - case 'TR': - div.innerHTML = '' + html.stripScripts() + '
'; - depth = 3; - break; - case 'TD': - div.innerHTML = '
' + html.stripScripts() + '
'; - depth = 4; - } - $A(element.childNodes).each(function(node){ - element.removeChild(node) - }); - depth.times(function(){ div = div.firstChild }); - - $A(div.childNodes).each( - function(node){ element.appendChild(node) }); - } else { - element.innerHTML = html.stripScripts(); - } - setTimeout(function() {html.evalScripts()}, 10); - return element; - } -}; - -Object.extend(Element, Element.Methods); - -var _nativeExtensions = false; - -if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)) - ['', 'Form', 'Input', 'TextArea', 'Select'].each(function(tag) { - var className = 'HTML' + tag + 'Element'; - if(window[className]) return; - var klass = window[className] = {}; - klass.prototype = document.createElement(tag ? tag.toLowerCase() : 'div').__proto__; - }); - -Element.addMethods = function(methods) { - Object.extend(Element.Methods, methods || {}); - - function copy(methods, destination, onlyIfAbsent) { - onlyIfAbsent = onlyIfAbsent || false; - var cache = Element.extend.cache; - for (var property in methods) { - var value = methods[property]; - if (!onlyIfAbsent || !(property in destination)) - destination[property] = cache.findOrStore(value); - } - } - - if (typeof HTMLElement != 'undefined') { - copy(Element.Methods, HTMLElement.prototype); - copy(Element.Methods.Simulated, HTMLElement.prototype, true); - copy(Form.Methods, HTMLFormElement.prototype); - [HTMLInputElement, HTMLTextAreaElement, HTMLSelectElement].each(function(klass) { - copy(Form.Element.Methods, klass.prototype); - }); - _nativeExtensions = true; - } -} - -var Toggle = new Object(); -Toggle.display = Element.toggle; - -/*--------------------------------------------------------------------------*/ - -Abstract.Insertion = function(adjacency) { - this.adjacency = adjacency; -} - -Abstract.Insertion.prototype = { - initialize: function(element, content) { - this.element = $(element); - this.content = content.stripScripts(); - - if (this.adjacency && this.element.insertAdjacentHTML) { - try { - this.element.insertAdjacentHTML(this.adjacency, this.content); - } catch (e) { - var tagName = this.element.tagName.toUpperCase(); - if (['TBODY', 'TR'].include(tagName)) { - this.insertContent(this.contentFromAnonymousTable()); - } else { - throw e; - } - } - } else { - this.range = this.element.ownerDocument.createRange(); - if (this.initializeRange) this.initializeRange(); - this.insertContent([this.range.createContextualFragment(this.content)]); - } - - setTimeout(function() {content.evalScripts()}, 10); - }, - - contentFromAnonymousTable: function() { - var div = document.createElement('div'); - div.innerHTML = '' + this.content + '
'; - return $A(div.childNodes[0].childNodes[0].childNodes); - } -} - -var Insertion = new Object(); - -Insertion.Before = Class.create(); -Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), { - initializeRange: function() { - this.range.setStartBefore(this.element); - }, - - insertContent: function(fragments) { - fragments.each((function(fragment) { - this.element.parentNode.insertBefore(fragment, this.element); - }).bind(this)); - } -}); - -Insertion.Top = Class.create(); -Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), { - initializeRange: function() { - this.range.selectNodeContents(this.element); - this.range.collapse(true); - }, - - insertContent: function(fragments) { - fragments.reverse(false).each((function(fragment) { - this.element.insertBefore(fragment, this.element.firstChild); - }).bind(this)); - } -}); - -Insertion.Bottom = Class.create(); -Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), { - initializeRange: function() { - this.range.selectNodeContents(this.element); - this.range.collapse(this.element); - }, - - insertContent: function(fragments) { - fragments.each((function(fragment) { - this.element.appendChild(fragment); - }).bind(this)); - } -}); - -Insertion.After = Class.create(); -Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), { - initializeRange: function() { - this.range.setStartAfter(this.element); - }, - - insertContent: function(fragments) { - fragments.each((function(fragment) { - this.element.parentNode.insertBefore(fragment, - this.element.nextSibling); - }).bind(this)); - } -}); - -/*--------------------------------------------------------------------------*/ - -Element.ClassNames = Class.create(); -Element.ClassNames.prototype = { - initialize: function(element) { - this.element = $(element); - }, - - _each: function(iterator) { - this.element.className.split(/\s+/).select(function(name) { - return name.length > 0; - })._each(iterator); - }, - - set: function(className) { - this.element.className = className; - }, - - add: function(classNameToAdd) { - if (this.include(classNameToAdd)) return; - this.set($A(this).concat(classNameToAdd).join(' ')); - }, - - remove: function(classNameToRemove) { - if (!this.include(classNameToRemove)) return; - this.set($A(this).without(classNameToRemove).join(' ')); - }, - - toString: function() { - return $A(this).join(' '); - } -}; - -Object.extend(Element.ClassNames.prototype, Enumerable); -var Selector = Class.create(); -Selector.prototype = { - initialize: function(expression) { - this.params = {classNames: []}; - this.expression = expression.toString().strip(); - this.parseExpression(); - this.compileMatcher(); - }, - - parseExpression: function() { - function abort(message) { throw 'Parse error in selector: ' + message; } - - if (this.expression == '') abort('empty expression'); - - var params = this.params, expr = this.expression, match, modifier, clause, rest; - while (match = expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!]?=)(?:"([^"]*)"|([^\]\s]*)))?\]$/i)) { - params.attributes = params.attributes || []; - params.attributes.push({name: match[2], operator: match[3], value: match[4] || match[5] || ''}); - expr = match[1]; - } - - if (expr == '*') return this.params.wildcard = true; - - while (match = expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+)(.*)/i)) { - modifier = match[1], clause = match[2], rest = match[3]; - switch (modifier) { - case '#': params.id = clause; break; - case '.': params.classNames.push(clause); break; - case '': - case undefined: params.tagName = clause.toUpperCase(); break; - default: abort(expr.inspect()); - } - expr = rest; - } - - if (expr.length > 0) abort(expr.inspect()); - }, - - buildMatchExpression: function() { - var params = this.params, conditions = [], clause; - - if (params.wildcard) - conditions.push('true'); - if (clause = params.id) - conditions.push('element.readAttribute("id") == ' + clause.inspect()); - if (clause = params.tagName) - conditions.push('element.tagName.toUpperCase() == ' + clause.inspect()); - if ((clause = params.classNames).length > 0) - for (var i = 0, length = clause.length; i < length; i++) - conditions.push('element.hasClassName(' + clause[i].inspect() + ')'); - if (clause = params.attributes) { - clause.each(function(attribute) { - var value = 'element.readAttribute(' + attribute.name.inspect() + ')'; - var splitValueBy = function(delimiter) { - return value + ' && ' + value + '.split(' + delimiter.inspect() + ')'; - } - - switch (attribute.operator) { - case '=': conditions.push(value + ' == ' + attribute.value.inspect()); break; - case '~=': conditions.push(splitValueBy(' ') + '.include(' + attribute.value.inspect() + ')'); break; - case '|=': conditions.push( - splitValueBy('-') + '.first().toUpperCase() == ' + attribute.value.toUpperCase().inspect() - ); break; - case '!=': conditions.push(value + ' != ' + attribute.value.inspect()); break; - case '': - case undefined: conditions.push('element.hasAttribute(' + attribute.name.inspect() + ')'); break; - default: throw 'Unknown operator ' + attribute.operator + ' in selector'; - } - }); - } - - return conditions.join(' && '); - }, - - compileMatcher: function() { - this.match = new Function('element', 'if (!element.tagName) return false; \ - element = $(element); \ - return ' + this.buildMatchExpression()); - }, - - findElements: function(scope) { - var element; - - if (element = $(this.params.id)) - if (this.match(element)) - if (!scope || Element.childOf(element, scope)) - return [element]; - - scope = (scope || document).getElementsByTagName(this.params.tagName || '*'); - - var results = []; - for (var i = 0, length = scope.length; i < length; i++) - if (this.match(element = scope[i])) - results.push(Element.extend(element)); - - return results; - }, - - toString: function() { - return this.expression; - } -} - -Object.extend(Selector, { - matchElements: function(elements, expression) { - var selector = new Selector(expression); - return elements.select(selector.match.bind(selector)).map(Element.extend); - }, - - findElement: function(elements, expression, index) { - if (typeof expression == 'number') index = expression, expression = false; - return Selector.matchElements(elements, expression || '*')[index || 0]; - }, - - findChildElements: function(element, expressions) { - return expressions.map(function(expression) { - return expression.match(/[^\s"]+(?:"[^"]*"[^\s"]+)*/g).inject([null], function(results, expr) { - var selector = new Selector(expr); - return results.inject([], function(elements, result) { - return elements.concat(selector.findElements(result || element)); - }); - }); - }).flatten(); - } -}); - -function $$() { - return Selector.findChildElements(document, $A(arguments)); -} -var Form = { - reset: function(form) { - $(form).reset(); - return form; - }, - - serializeElements: function(elements, getHash) { - var data = elements.inject({}, function(result, element) { - if (!element.disabled && element.name) { - var key = element.name, value = $(element).getValue(); - if (value != undefined) { - if (result[key]) { - if (result[key].constructor != Array) result[key] = [result[key]]; - result[key].push(value); - } - else result[key] = value; - } - } - return result; - }); - - return getHash ? data : Hash.toQueryString(data); - } -}; - -Form.Methods = { - serialize: function(form, getHash) { - return Form.serializeElements(Form.getElements(form), getHash); - }, - - getElements: function(form) { - return $A($(form).getElementsByTagName('*')).inject([], - function(elements, child) { - if (Form.Element.Serializers[child.tagName.toLowerCase()]) - elements.push(Element.extend(child)); - return elements; - } - ); - }, - - getInputs: function(form, typeName, name) { - form = $(form); - var inputs = form.getElementsByTagName('input'); - - if (!typeName && !name) return $A(inputs).map(Element.extend); - - for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) { - var input = inputs[i]; - if ((typeName && input.type != typeName) || (name && input.name != name)) - continue; - matchingInputs.push(Element.extend(input)); - } - - return matchingInputs; - }, - - disable: function(form) { - form = $(form); - form.getElements().each(function(element) { - element.blur(); - element.disabled = 'true'; - }); - return form; - }, - - enable: function(form) { - form = $(form); - form.getElements().each(function(element) { - element.disabled = ''; - }); - return form; - }, - - findFirstElement: function(form) { - return $(form).getElements().find(function(element) { - return element.type != 'hidden' && !element.disabled && - ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); - }); - }, - - focusFirstElement: function(form) { - form = $(form); - form.findFirstElement().activate(); - return form; - } -} - -Object.extend(Form, Form.Methods); - -/*--------------------------------------------------------------------------*/ - -Form.Element = { - focus: function(element) { - $(element).focus(); - return element; - }, - - select: function(element) { - $(element).select(); - return element; - } -} - -Form.Element.Methods = { - serialize: function(element) { - element = $(element); - if (!element.disabled && element.name) { - var value = element.getValue(); - if (value != undefined) { - var pair = {}; - pair[element.name] = value; - return Hash.toQueryString(pair); - } - } - return ''; - }, - - getValue: function(element) { - element = $(element); - var method = element.tagName.toLowerCase(); - return Form.Element.Serializers[method](element); - }, - - clear: function(element) { - $(element).value = ''; - return element; - }, - - present: function(element) { - return $(element).value != ''; - }, - - activate: function(element) { - element = $(element); - element.focus(); - if (element.select && ( element.tagName.toLowerCase() != 'input' || - !['button', 'reset', 'submit'].include(element.type) ) ) - element.select(); - return element; - }, - - disable: function(element) { - element = $(element); - element.disabled = true; - return element; - }, - - enable: function(element) { - element = $(element); - element.blur(); - element.disabled = false; - return element; - } -} - -Object.extend(Form.Element, Form.Element.Methods); -var Field = Form.Element; -var $F = Form.Element.getValue; - -/*--------------------------------------------------------------------------*/ - -Form.Element.Serializers = { - input: function(element) { - switch (element.type.toLowerCase()) { - case 'checkbox': - case 'radio': - return Form.Element.Serializers.inputSelector(element); - default: - return Form.Element.Serializers.textarea(element); - } - }, - - inputSelector: function(element) { - return element.checked ? element.value : null; - }, - - textarea: function(element) { - return element.value; - }, - - select: function(element) { - return this[element.type == 'select-one' ? - 'selectOne' : 'selectMany'](element); - }, - - selectOne: function(element) { - var index = element.selectedIndex; - return index >= 0 ? this.optionValue(element.options[index]) : null; - }, - - selectMany: function(element) { - var values, length = element.length; - if (!length) return null; - - for (var i = 0, values = []; i < length; i++) { - var opt = element.options[i]; - if (opt.selected) values.push(this.optionValue(opt)); - } - return values; - }, - - optionValue: function(opt) { - // extend element because hasAttribute may not be native - return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text; - } -} - -/*--------------------------------------------------------------------------*/ - -Abstract.TimedObserver = function() {} -Abstract.TimedObserver.prototype = { - initialize: function(element, frequency, callback) { - this.frequency = frequency; - this.element = $(element); - this.callback = callback; - - this.lastValue = this.getValue(); - this.registerCallback(); - }, - - registerCallback: function() { - setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); - }, - - onTimerEvent: function() { - var value = this.getValue(); - var changed = ('string' == typeof this.lastValue && 'string' == typeof value - ? this.lastValue != value : String(this.lastValue) != String(value)); - if (changed) { - this.callback(this.element, value); - this.lastValue = value; - } - } -} - -Form.Element.Observer = Class.create(); -Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.Observer = Class.create(); -Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { - getValue: function() { - return Form.serialize(this.element); - } -}); - -/*--------------------------------------------------------------------------*/ - -Abstract.EventObserver = function() {} -Abstract.EventObserver.prototype = { - initialize: function(element, callback) { - this.element = $(element); - this.callback = callback; - - this.lastValue = this.getValue(); - if (this.element.tagName.toLowerCase() == 'form') - this.registerFormCallbacks(); - else - this.registerCallback(this.element); - }, - - onElementEvent: function() { - var value = this.getValue(); - if (this.lastValue != value) { - this.callback(this.element, value); - this.lastValue = value; - } - }, - - registerFormCallbacks: function() { - Form.getElements(this.element).each(this.registerCallback.bind(this)); - }, - - registerCallback: function(element) { - if (element.type) { - switch (element.type.toLowerCase()) { - case 'checkbox': - case 'radio': - Event.observe(element, 'click', this.onElementEvent.bind(this)); - break; - default: - Event.observe(element, 'change', this.onElementEvent.bind(this)); - break; - } - } - } -} - -Form.Element.EventObserver = Class.create(); -Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.EventObserver = Class.create(); -Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { - getValue: function() { - return Form.serialize(this.element); - } -}); -if (!window.Event) { - var Event = new Object(); -} - -Object.extend(Event, { - KEY_BACKSPACE: 8, - KEY_TAB: 9, - KEY_RETURN: 13, - KEY_ESC: 27, - KEY_LEFT: 37, - KEY_UP: 38, - KEY_RIGHT: 39, - KEY_DOWN: 40, - KEY_DELETE: 46, - KEY_HOME: 36, - KEY_END: 35, - KEY_PAGEUP: 33, - KEY_PAGEDOWN: 34, - - element: function(event) { - return event.target || event.srcElement; - }, - - isLeftClick: function(event) { - return (((event.which) && (event.which == 1)) || - ((event.button) && (event.button == 1))); - }, - - pointerX: function(event) { - return event.pageX || (event.clientX + - (document.documentElement.scrollLeft || document.body.scrollLeft)); - }, - - pointerY: function(event) { - return event.pageY || (event.clientY + - (document.documentElement.scrollTop || document.body.scrollTop)); - }, - - stop: function(event) { - if (event.preventDefault) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.returnValue = false; - event.cancelBubble = true; - } - }, - - // find the first node with the given tagName, starting from the - // node the event was triggered on; traverses the DOM upwards - findElement: function(event, tagName) { - var element = Event.element(event); - while (element.parentNode && (!element.tagName || - (element.tagName.toUpperCase() != tagName.toUpperCase()))) - element = element.parentNode; - return element; - }, - - observers: false, - - _observeAndCache: function(element, name, observer, useCapture) { - if (!this.observers) this.observers = []; - if (element.addEventListener) { - this.observers.push([element, name, observer, useCapture]); - element.addEventListener(name, observer, useCapture); - } else if (element.attachEvent) { - this.observers.push([element, name, observer, useCapture]); - element.attachEvent('on' + name, observer); - } - }, - - unloadCache: function() { - if (!Event.observers) return; - for (var i = 0, length = Event.observers.length; i < length; i++) { - Event.stopObserving.apply(this, Event.observers[i]); - Event.observers[i][0] = null; - } - Event.observers = false; - }, - - observe: function(element, name, observer, useCapture) { - element = $(element); - useCapture = useCapture || false; - - if (name == 'keypress' && - (navigator.appVersion.match(/Konqueror|Safari|KHTML/) - || element.attachEvent)) - name = 'keydown'; - - Event._observeAndCache(element, name, observer, useCapture); - }, - - stopObserving: function(element, name, observer, useCapture) { - element = $(element); - useCapture = useCapture || false; - - if (name == 'keypress' && - (navigator.appVersion.match(/Konqueror|Safari|KHTML/) - || element.detachEvent)) - name = 'keydown'; - - if (element.removeEventListener) { - element.removeEventListener(name, observer, useCapture); - } else if (element.detachEvent) { - try { - element.detachEvent('on' + name, observer); - } catch (e) {} - } - } -}); - -/* prevent memory leaks in IE */ -if (navigator.appVersion.match(/\bMSIE\b/)) - Event.observe(window, 'unload', Event.unloadCache, false); -var Position = { - // set to true if needed, warning: firefox performance problems - // NOT neeeded for page scrolling, only if draggable contained in - // scrollable elements - includeScrollOffsets: false, - - // must be called before calling withinIncludingScrolloffset, every time the - // page is scrolled - prepare: function() { - this.deltaX = window.pageXOffset - || document.documentElement.scrollLeft - || document.body.scrollLeft - || 0; - this.deltaY = window.pageYOffset - || document.documentElement.scrollTop - || document.body.scrollTop - || 0; - }, - - realOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.scrollTop || 0; - valueL += element.scrollLeft || 0; - element = element.parentNode; - } while (element); - return [valueL, valueT]; - }, - - cumulativeOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - } while (element); - return [valueL, valueT]; - }, - - positionedOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - if (element) { - if(element.tagName=='BODY') break; - var p = Element.getStyle(element, 'position'); - if (p == 'relative' || p == 'absolute') break; - } - } while (element); - return [valueL, valueT]; - }, - - offsetParent: function(element) { - if (element.offsetParent) return element.offsetParent; - if (element == document.body) return element; - - while ((element = element.parentNode) && element != document.body) - if (Element.getStyle(element, 'position') != 'static') - return element; - - return document.body; - }, - - // caches x/y coordinate pair to use with overlap - within: function(element, x, y) { - if (this.includeScrollOffsets) - return this.withinIncludingScrolloffsets(element, x, y); - this.xcomp = x; - this.ycomp = y; - this.offset = this.cumulativeOffset(element); - - return (y >= this.offset[1] && - y < this.offset[1] + element.offsetHeight && - x >= this.offset[0] && - x < this.offset[0] + element.offsetWidth); - }, - - withinIncludingScrolloffsets: function(element, x, y) { - var offsetcache = this.realOffset(element); - - this.xcomp = x + offsetcache[0] - this.deltaX; - this.ycomp = y + offsetcache[1] - this.deltaY; - this.offset = this.cumulativeOffset(element); - - return (this.ycomp >= this.offset[1] && - this.ycomp < this.offset[1] + element.offsetHeight && - this.xcomp >= this.offset[0] && - this.xcomp < this.offset[0] + element.offsetWidth); - }, - - // within must be called directly before - overlap: function(mode, element) { - if (!mode) return 0; - if (mode == 'vertical') - return ((this.offset[1] + element.offsetHeight) - this.ycomp) / - element.offsetHeight; - if (mode == 'horizontal') - return ((this.offset[0] + element.offsetWidth) - this.xcomp) / - element.offsetWidth; - }, - - page: function(forElement) { - var valueT = 0, valueL = 0; - - var element = forElement; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - - // Safari fix - if (element.offsetParent==document.body) - if (Element.getStyle(element,'position')=='absolute') break; - - } while (element = element.offsetParent); - - element = forElement; - do { - if (!window.opera || element.tagName=='BODY') { - valueT -= element.scrollTop || 0; - valueL -= element.scrollLeft || 0; - } - } while (element = element.parentNode); - - return [valueL, valueT]; - }, - - clone: function(source, target) { - var options = Object.extend({ - setLeft: true, - setTop: true, - setWidth: true, - setHeight: true, - offsetTop: 0, - offsetLeft: 0 - }, arguments[2] || {}) - - // find page position of source - source = $(source); - var p = Position.page(source); - - // find coordinate system to use - target = $(target); - var delta = [0, 0]; - var parent = null; - // delta [0,0] will do fine with position: fixed elements, - // position:absolute needs offsetParent deltas - if (Element.getStyle(target,'position') == 'absolute') { - parent = Position.offsetParent(target); - delta = Position.page(parent); - } - - // correct by body offsets (fixes Safari) - if (parent == document.body) { - delta[0] -= document.body.offsetLeft; - delta[1] -= document.body.offsetTop; - } - - // set position - if(options.setLeft) target.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; - if(options.setTop) target.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; - if(options.setWidth) target.style.width = source.offsetWidth + 'px'; - if(options.setHeight) target.style.height = source.offsetHeight + 'px'; - }, - - absolutize: function(element) { - element = $(element); - if (element.style.position == 'absolute') return; - Position.prepare(); - - var offsets = Position.positionedOffset(element); - var top = offsets[1]; - var left = offsets[0]; - var width = element.clientWidth; - var height = element.clientHeight; - - element._originalLeft = left - parseFloat(element.style.left || 0); - element._originalTop = top - parseFloat(element.style.top || 0); - element._originalWidth = element.style.width; - element._originalHeight = element.style.height; - - element.style.position = 'absolute'; - element.style.top = top + 'px'; - element.style.left = left + 'px'; - element.style.width = width + 'px'; - element.style.height = height + 'px'; - }, - - relativize: function(element) { - element = $(element); - if (element.style.position == 'relative') return; - Position.prepare(); - - element.style.position = 'relative'; - var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); - var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); - - element.style.top = top + 'px'; - element.style.left = left + 'px'; - element.style.height = element._originalHeight; - element.style.width = element._originalWidth; - } -} - -// Safari returns margins on body which is incorrect if the child is absolutely -// positioned. For performance reasons, redefine Position.cumulativeOffset for -// KHTML/WebKit only. -if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) { - Position.cumulativeOffset = function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - if (element.offsetParent == document.body) - if (Element.getStyle(element, 'position') == 'absolute') break; - - element = element.offsetParent; - } while (element); - - return [valueL, valueT]; - } -} - -Element.addMethods(); \ No newline at end of file diff --git a/www/extras/extjs/adapter/prototype/scriptaculous.js b/www/extras/extjs/adapter/prototype/scriptaculous.js deleted file mode 100644 index b2b414edd..000000000 --- a/www/extras/extjs/adapter/prototype/scriptaculous.js +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Ext JS Library 1.0 Beta 1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -// script.aculo.us scriptaculous.js v1.7.0, Fri Jan 19 19:16:36 CET 2007 - -// Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -// For details, see the script.aculo.us web site: http://script.aculo.us/ - -var Scriptaculous = { - Version: '1.7.0', - require: function(libraryName) { - // inserting via DOM fails in Safari 2.0, so brute force approach - document.write(''); - }, - load: function() { - if((typeof Prototype=='undefined') || - (typeof Element == 'undefined') || - (typeof Element.Methods=='undefined') || - parseFloat(Prototype.Version.split(".")[0] + "." + - Prototype.Version.split(".")[1]) < 1.5) - throw("script.aculo.us requires the Prototype JavaScript framework >= 1.5.0"); - - $A(document.getElementsByTagName("script")).findAll( function(s) { - return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/)) - }).each( function(s) { - var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,''); - var includes = s.src.match(/\?.*load=([a-z,]*)/); - (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider').split(',').each( - function(include) { Scriptaculous.require(path+include+'.js') }); - }); - } -} - -Scriptaculous.load(); \ No newline at end of file diff --git a/www/extras/extjs/adapter/yui/ext-yui-adapter.js b/www/extras/extjs/adapter/yui/ext-yui-adapter.js deleted file mode 100644 index 1c53bf657..000000000 --- a/www/extras/extjs/adapter/yui/ext-yui-adapter.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext={};window["undefined"]=window["undefined"];Ext.apply=function(o,c,_3){if(_3){Ext.apply(o,_3);}if(o&&c&&typeof c=="object"){for(var p in c){o[p]=c[p];}}return o;};(function(){var _5=0;var ua=navigator.userAgent.toLowerCase();var _7=document.compatMode=="CSS1Compat",_8=ua.indexOf("opera")>-1,_9=(/webkit|khtml/).test(ua),_a=ua.indexOf("msie")>-1,_b=ua.indexOf("msie 7")>-1,_c=!_9&&ua.indexOf("gecko")>-1,_d=_a&&!_7,_e=(ua.indexOf("windows")!=-1||ua.indexOf("win32")!=-1),_f=(ua.indexOf("macintosh")!=-1||ua.indexOf("mac os x")!=-1),_10=window.location.href.toLowerCase().indexOf("https")===0;if(_a&&!_b){try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}}Ext.apply(Ext,{isStrict:_7,isSecure:_10,isReady:false,SSL_SECURE_URL:"javascript:false",BLANK_IMAGE_URL:"http:/"+"/extjs.com/s.gif",emptyFn:function(){},applyIf:function(o,c){if(o&&c){for(var p in c){if(typeof o[p]=="undefined"){o[p]=c[p];}}}return o;},addBehaviors:function(o){if(!Ext.isReady){Ext.onReady(function(){Ext.addBehaviors(o);});return;}var _15={};for(var b in o){var _17=b.split("@");if(_17[1]){var s=_17[0];if(!_15[s]){_15[s]=Ext.select(s);}_15[s].on(_17[1],o[b]);}}_15=null;},id:function(el,_1a){_1a=_1a||"ext-gen";el=Ext.getDom(el);var id=_1a+(++_5);return el?(el.id?el.id:(el.id=id)):id;},extend:function(){var io=function(o){for(var m in o){this[m]=o[m];}};return function(sb,sp,_21){if(typeof sp=="object"){_21=sp;sp=sb;sb=function(){sp.apply(this,arguments);};}var F=function(){},sbp,spp=sp.prototype;F.prototype=spp;sbp=sb.prototype=new F();sbp.constructor=sb;sb.superclass=spp;if(spp.constructor==Object.prototype.constructor){spp.constructor=sp;}sb.override=function(o){Ext.override(sb,o);};sbp.override=io;sbp.__extcls=sb;Ext.override(sb,_21);return sb;};}(),override:function(_26,_27){if(_27){var p=_26.prototype;for(var _29 in _27){p[_29]=_27[_29];}}},namespace:function(){var a=arguments,o=null,i,j,d,rt;for(i=0;i-1){return true;}else{return YAHOO.lang.isObject(obj)&&obj.constructor==Array;}},isBoolean:function(obj){return typeof obj=="boolean";},isFunction:function(obj){return typeof obj=="function";},isNull:function(obj){return obj===null;},isNumber:function(obj){return typeof obj=="number"&&isFinite(obj);},isObject:function(obj){return typeof obj=="object"||YAHOO.lang.isFunction(obj);},isString:function(obj){return typeof obj=="string";},isUndefined:function(obj){return typeof obj=="undefined";},hasOwnProperty:function(obj,_21){if(Object.prototype.hasOwnProperty){return obj.hasOwnProperty(_21);}return !YAHOO.lang.isUndefined(obj[_21])&&obj.constructor.prototype[_21]!==obj[_21];},extend:function(_22,_23,_24){var F=function(){};F.prototype=_23.prototype;_22.prototype=new F();_22.prototype.constructor=_22;_22.superclass=_23.prototype;if(_23.prototype.constructor==Object.prototype.constructor){_23.prototype.constructor=_23;}if(_24){for(var i in _24){_22.prototype[i]=_24[i];}}},augment:function(r,s){var rp=r.prototype,sp=s.prototype,a=arguments,i,p;if(a[2]){for(i=2;i-1),_8=(ua.indexOf("safari")>-1),_9=(!_7&&!_8&&ua.indexOf("gecko")>-1),_a=(!_7&&ua.indexOf("msie")>-1);var _b={HYPHEN:/(-[a-z])/i};var _c=function(_d){if(!_b.HYPHEN.test(_d)){return _d;}if(_5[_d]){return _5[_d];}while(_b.HYPHEN.exec(_d)){_d=_d.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}_5[_d]=_d;return _d;};if(document.defaultView&&document.defaultView.getComputedStyle){_2=function(el,_f){var _10=null;var _11=document.defaultView.getComputedStyle(el,"");if(_11){_10=_11[_c(_f)];}return el.style[_f]||_10;};}else{if(document.documentElement.currentStyle&&_a){_2=function(el,_13){switch(_c(_13)){case "opacity":var val=100;try{val=el.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(e){try{val=el.filters("alpha").opacity;}catch(e){}}return val/100;break;default:var _15=el.currentStyle?el.currentStyle[_13]:null;return (el.style[_13]||_15);}};}else{_2=function(el,_17){return el.style[_17];};}}if(_a){_3=function(el,_19,val){switch(_19){case "opacity":if(typeof el.style.filter=="string"){el.style.filter="alpha(opacity="+val*100+")";if(!el.currentStyle||!el.currentStyle.hasLayout){el.style.zoom=1;}}break;default:el.style[_19]=val;}};}else{_3=function(el,_1c,val){el.style[_1c]=val;};}YAHOO.util.Dom={get:function(el){if(!el){return null;}if(typeof el!="string"&&!(el instanceof Array)){return el;}if(typeof el=="string"){return document.getElementById(el);}else{var _1f=[];for(var i=0,len=el.length;i=this.left&&_8d.right<=this.right&&_8d.top>=this.top&&_8d.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return ((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(_8e){var t=Math.max(this.top,_8e.top);var r=Math.min(this.right,_8e.right);var b=Math.min(this.bottom,_8e.bottom);var l=Math.max(this.left,_8e.left);if(b>=t&&r>=l){return new YAHOO.util.Region(t,r,b,l);}else{return null;}};YAHOO.util.Region.prototype.union=function(_93){var t=Math.min(this.top,_93.top);var r=Math.max(this.right,_93.right);var b=Math.max(this.bottom,_93.bottom);var l=Math.min(this.left,_93.left);return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Region.prototype.toString=function(){return ("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(el){var p=YAHOO.util.Dom.getXY(el);var t=p[1];var r=p[0]+el.offsetWidth;var b=p[1]+el.offsetHeight;var l=p[0];return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Point=function(x,y){if(x instanceof Array){y=x[1];x=x[0];}this.x=this.right=this.left=this[0]=x;this.y=this.top=this.bottom=this[1]=y;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.2.0",build:"127"}); - -if(!YAHOO.util.Event){YAHOO.util.Event=function(){var _1=false;var _2=[];var _3=[];var _4=[];var _5=[];var _6=0;var _7=[];var _8=[];var _9=0;var _a=null;return {POLL_RETRYS:200,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,OBJ:3,ADJ_SCOPE:4,isSafari:(/KHTML/gi).test(navigator.userAgent),webkit:function(){var v=navigator.userAgent.match(/AppleWebKit\/([^ ]*)/);if(v&&v[1]){return v[1];}return null;}(),isIE:(!this.webkit&&!navigator.userAgent.match(/opera/gi)&&navigator.userAgent.match(/msie/gi)),_interval:null,startInterval:function(){if(!this._interval){var _c=this;var _d=function(){_c._tryPreloadAttach();};this._interval=setInterval(_d,this.POLL_INTERVAL);}},onAvailable:function(_e,_f,_10,_11){_7.push({id:_e,fn:_f,obj:_10,override:_11,checkReady:false});_6=this.POLL_RETRYS;this.startInterval();},onContentReady:function(_12,_13,_14,_15){_7.push({id:_12,fn:_13,obj:_14,override:_15,checkReady:true});_6=this.POLL_RETRYS;this.startInterval();},addListener:function(el,_17,fn,obj,_1a){if(!fn||!fn.call){return false;}if(this._isValidCollection(el)){var ok=true;for(var i=0,len=el.length;i=0){_3d=_2[_3e];}if(!el||!_3d){return false;}if(this.useLegacyEvent(el,_37)){var _3f=this.getLegacyIndex(el,_37);var _40=_5[_3f];if(_40){for(i=0,len=_40.length;i0);}var _62=[];for(var i=0,len=_7.length;i0){for(var i=0,len=_74.length;i0){j=_2.length;while(j){_7e=j-1;l=_2[_7e];if(l){EU.removeListener(l[EU.EL],l[EU.TYPE],l[EU.FN],_7e);}j=j-1;}l=null;EU.clearCache();}for(i=0,len=_4.length;i0){_a7=_a1[0];}ret=s.fn.call(_a6,_a7,s.obj);}else{ret=s.fn.call(_a6,this.type,_a1,s.obj);}if(false===ret){if(!this.silent){}return false;}}}return true;},unsubscribeAll:function(){for(var i=0,len=this.subscribers.length;i=200&&_16<300){_17=this.createResponseObject(o,_14.argument);if(_14.success){if(!_14.scope){_14.success(_17);}else{_14.success.apply(_14.scope,[_17]);}}}else{switch(_16){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:_17=this.createExceptionObject(o.tId,_14.argument,(_15?_15:false));if(_14.failure){if(!_14.scope){_14.failure(_17);}else{_14.failure.apply(_14.scope,[_17]);}}break;default:_17=this.createResponseObject(o,_14.argument);if(_14.failure){if(!_14.scope){_14.failure(_17);}else{_14.failure.apply(_14.scope,[_17]);}}}}this.releaseObject(o);_17=null;},createResponseObject:function(o,_19){var obj={};var _1b={};try{var _1c=o.conn.getAllResponseHeaders();var _1d=_1c.split("\n");for(var i=0;i<_1d.length;i++){var _1f=_1d[i].indexOf(":");if(_1f!=-1){_1b[_1d[i].substring(0,_1f)]=_1d[i].substring(_1f+2);}}}catch(e){}obj.tId=o.tId;obj.status=o.conn.status;obj.statusText=o.conn.statusText;obj.getResponseHeader=_1b;obj.getAllResponseHeaders=_1c;obj.responseText=o.conn.responseText;obj.responseXML=o.conn.responseXML;if(typeof _19!==undefined){obj.argument=_19;}return obj;},createExceptionObject:function(tId,_21,_22){var _23=0;var _24="communication failure";var _25=-1;var _26="transaction aborted";var obj={};obj.tId=tId;if(_22){obj.status=_25;obj.statusText=_26;}else{obj.status=_23;obj.statusText=_24;}if(_21){obj.argument=_21;}return obj;},initHeader:function(_28,_29,_2a){var _2b=(_2a)?this._default_headers:this._http_headers;if(_2b[_28]===undefined){_2b[_28]=_29;}else{_2b[_28]=_29+","+_2b[_28];}if(_2a){this._has_default_headers=true;}else{this._has_http_headers=true;}},setHeader:function(o){if(this._has_default_headers){for(var _2d in this._default_headers){if(YAHOO.lang.hasOwnProperty(this._default_headers,_2d)){o.conn.setRequestHeader(_2d,this._default_headers[_2d]);}}}if(this._has_http_headers){for(var _2d in this._http_headers){if(YAHOO.lang.hasOwnProperty(this._http_headers,_2d)){o.conn.setRequestHeader(_2d,this._http_headers[_2d]);}}delete this._http_headers;this._http_headers={};this._has_http_headers=false;}},resetDefaultHeaders:function(){delete this._default_headers;this._default_headers={};this._has_default_headers=false;},setForm:function(_2e,_2f,_30){this.resetFormState();var _31;if(typeof _2e=="string"){_31=(document.getElementById(_2e)||document.forms[_2e]);}else{if(typeof _2e=="object"){_31=_2e;}else{return;}}if(_2f){this.createFrame(_30?_30:null);this._isFormSubmit=true;this._isFileUpload=true;this._formNode=_31;return;}var _32,_33,_34,_35;var _36=false;for(var i=0;i<_31.elements.length;i++){_32=_31.elements[i];_35=_31.elements[i].disabled;_33=_31.elements[i].name;_34=_31.elements[i].value;if(!_35&&_33){switch(_32.type){case "select-one":case "select-multiple":for(var j=0;j<_32.options.length;j++){if(_32.options[j].selected){if(window.ActiveXObject){this._sFormData+=encodeURIComponent(_33)+"="+encodeURIComponent(_32.options[j].attributes["value"].specified?_32.options[j].value:_32.options[j].text)+"&";}else{this._sFormData+=encodeURIComponent(_33)+"="+encodeURIComponent(_32.options[j].hasAttribute("value")?_32.options[j].value:_32.options[j].text)+"&";}}}break;case "radio":case "checkbox":if(_32.checked){this._sFormData+=encodeURIComponent(_33)+"="+encodeURIComponent(_34)+"&";}break;case "file":case undefined:case "reset":case "button":break;case "submit":if(_36==false){this._sFormData+=encodeURIComponent(_33)+"="+encodeURIComponent(_34)+"&";_36=true;}break;default:this._sFormData+=encodeURIComponent(_33)+"="+encodeURIComponent(_34)+"&";break;}}}this._isFormSubmit=true;this._sFormData=this._sFormData.substr(0,this._sFormData.length-1);return this._sFormData;},resetFormState:function(){this._isFormSubmit=false;this._isFileUpload=false;this._formNode=null;this._sFormData="";},createFrame:function(_39){var _3a="yuiIO"+this._transaction_id;if(window.ActiveXObject){var io=document.createElement(" - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/AbstractGridView.jss.html b/www/extras/extjs/docs/output/AbstractGridView.jss.html deleted file mode 100644 index 45636fdb5..000000000 --- a/www/extras/extjs/docs/output/AbstractGridView.jss.html +++ /dev/null @@ -1,89 +0,0 @@ -AbstractGridView.js

AbstractGridView.js

Ext.grid.AbstractGridView = function(){
-	this.grid = null;
-	
-	this.events = {
-	    "beforerowremoved" : true,
-	    "beforerowsinserted" : true,
-	    "beforerefresh" : true,
-	    "rowremoved" : true,
-	    "rowsinserted" : true,
-	    "rowupdated" : true,
-	    "refresh" : true
-	};
-    Ext.grid.AbstractGridView.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.grid.AbstractGridView, Ext.util.Observable, {
-    rowClass : "x-grid-row",
-    cellClass : "x-grid-cell",
-    tdClass : "x-grid-td",
-    hdClass : "x-grid-hd",
-    splitClass : "x-grid-hd-split",
-    
-	init: function(grid){
-        this.grid = grid;
-		var cid = this.grid.container.id;
-        this.colSelector = "#" + cid + " ." + this.cellClass + "-";
-        this.tdSelector = "#" + cid + " ." + this.tdClass + "-";
-        this.hdSelector = "#" + cid + " ." + this.hdClass + "-";
-        this.splitSelector = "#" + cid + " ." + this.splitClass + "-";
-	},
-	
-	getColumnRenderers : function(){
-    	var renderers = [];
-    	var cm = this.grid.colModel;
-        var colCount = cm.getColumnCount();
-        for(var i = 0; i < colCount; i++){
-            renderers[i] = cm.getRenderer(i);
-        }
-        return renderers;
-    },
-    
-    getColumnIds : function(){
-    	var ids = [];
-    	var cm = this.grid.colModel;
-        var colCount = cm.getColumnCount();
-        for(var i = 0; i < colCount; i++){
-            ids[i] = cm.getColumnId(i);
-        }
-        return ids;
-    },
-    
-    getDataIndexes : function(){
-    	if(!this.indexMap){
-            this.indexMap = this.buildIndexMap();
-        }
-        return this.indexMap.colToData;
-    },
-    
-    getColumnIndexByDataIndex : function(dataIndex){
-        if(!this.indexMap){
-            this.indexMap = this.buildIndexMap();
-        }
-    	return this.indexMap.dataToCol[dataIndex];
-    },
-    
-    /**
-     * Set a css style for a column dynamically. 
-     * @param {Number} colIndex The index of the column
-     * @param {String} name The css property name
-     * @param {String} value The css value
-     */
-    setCSSStyle : function(colIndex, name, value){
-        var selector = "#" + this.grid.id + " .x-grid-col-" + colIndex;
-        Ext.util.CSS.updateRule(selector, name, value);
-    },
-    
-    generateRules : function(cm){
-        var ruleBuf = [];
-        for(var i = 0, len = cm.getColumnCount(); i < len; i++){
-            var cid = cm.getColumnId(i);
-            ruleBuf.push(this.colSelector, cid, " {\n", cm.config[i].css, "}\n",
-                         this.tdSelector, cid, " {\n}\n",
-                         this.hdSelector, cid, " {\n}\n",
-                         this.splitSelector, cid, " {\n}\n");
-        }
-        return Ext.util.CSS.createStyleSheet(ruleBuf.join(""));
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/AbstractSelectionModel.jss.html b/www/extras/extjs/docs/output/AbstractSelectionModel.jss.html deleted file mode 100644 index 542c939a9..000000000 --- a/www/extras/extjs/docs/output/AbstractSelectionModel.jss.html +++ /dev/null @@ -1,40 +0,0 @@ -AbstractSelectionModel.js

AbstractSelectionModel.js

/**
- @class Ext.grid.AbstractSelectionModel
- @extends Ext.util.Observable
- @constructor
- */
-Ext.grid.AbstractSelectionModel = function(){
-    this.locked = false;
-    Ext.grid.AbstractSelectionModel.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.grid.AbstractSelectionModel, Ext.util.Observable,  {
-    /** @ignore Called by the grid automatically. Do not call directly. */
-    init : function(grid){
-        this.grid = grid;
-        this.initEvents();
-    },
-    
-    /**
-     * Lock the selections
-     */
-    lock : function(){
-        this.locked = true;
-    },
-    
-    /**
-     * Unlock the selections
-     */
-    unlock : function(){
-        this.locked = false;  
-    },
-    
-    /**
-     * Returns true if the selections are locked
-     * @return {Boolean}
-     */
-    isLocked : function(){
-        return this.locked;    
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Action.jss.html b/www/extras/extjs/docs/output/Action.jss.html deleted file mode 100644 index b18c403ad..000000000 --- a/www/extras/extjs/docs/output/Action.jss.html +++ /dev/null @@ -1,196 +0,0 @@ -Action.js

Action.js

// define the action interface
-Ext.form.Action = function(form, options){
-    this.form = form;
-    this.options = options || {};
-};
-
-Ext.form.Action.CLIENT_INVALID = 'client';
-Ext.form.Action.SERVER_INVALID = 'server';
-Ext.form.Action.CONNECT_FAILURE = 'connect';
-Ext.form.Action.LOAD_FAILURE = 'load';
-
-Ext.form.Action.prototype = {
-    type : 'default',
-    failureType : undefined,
-    response : undefined,
-    result : undefined,
-
-    // interface method
-    run : function(options){
-
-    },
-
-    // interface method
-    success : function(response){
-
-    },
-
-    // interface method
-    handleResponse : function(response){
-
-    },
-
-    // default connection failure
-    failure : function(response){
-        this.response = response;
-        this.failureType = Ext.form.Action.CONNECT_FAILURE;
-        this.form.afterAction(this, false);
-    },
-
-    processResponse : function(response){
-        this.response = response;
-        if(!response.responseText){
-            return true;
-        }
-        this.result = this.handleResponse(response);
-        return this.result;
-    },
-
-    // utility functions used internally
-    getUrl : function(appendParams){
-        var url = this.options.url || this.form.url || this.form.el.dom.action;
-        if(appendParams){
-            var p = this.getParams();
-            if(p){
-                url += (url.indexOf('?') != -1 ? '&' : '?') + p;
-            }
-        }
-        return url;
-    },
-
-    getMethod : function(){
-        return (this.options.method || this.form.method || this.form.el.dom.method || 'POST').toUpperCase();
-    },
-
-    getParams : function(){
-        var bp = this.form.baseParams;
-        var p = this.options.params;
-        if(p){
-            if(typeof p == "object"){
-                p = Ext.urlEncode(Ext.applyIf(p, bp));
-            }else if(typeof p == 'string' && bp){
-                p += '&' + Ext.urlEncode(bp);
-            }
-        }else if(bp){
-            p = Ext.urlEncode(bp);
-        }
-        return p;
-    },
-
-    createCallback : function(){
-        return {
-            success: this.success,
-            failure: this.failure,
-            scope: this,
-            timeout: (this.form.timeout*1000),
-            upload: this.form.fileUpload ? this.success : undefined
-        };
-    }
-};
-
-Ext.form.Action.Submit = function(form, options){
-    Ext.form.Action.Submit.superclass.constructor.call(this, form, options);
-};
-
-Ext.extend(Ext.form.Action.Submit, Ext.form.Action, {
-    type : 'submit',
-
-    run : function(){
-        var o = this.options;
-        var isPost = this.getMethod() == 'POST';
-        if(o.clientValidation === false || this.form.isValid()){
-            Ext.lib.Ajax.formRequest(
-                this.form.el.dom,
-                this.getUrl(!isPost),
-                this.createCallback(),
-                isPost ? this.getParams() : null, this.form.fileUpload, Ext.SSL_SECURE_URL);
-
-        }else if (o.clientValidation !== false){ // client validation failed
-            this.failureType = Ext.form.Action.CLIENT_INVALID;
-            this.form.afterAction(this, false);
-        }
-    },
-
-    success : function(response){
-        var result = this.processResponse(response);
-        if(result === true || result.success){
-            this.form.afterAction(this, true);
-            return;
-        }
-        if(result.errors){
-            this.form.markInvalid(result.errors);
-            this.failureType = Ext.form.Action.SERVER_INVALID;
-        }
-        this.form.afterAction(this, false);
-    },
-
-    handleResponse : function(response){
-        if(this.form.errorReader){
-            var rs = this.form.errorReader.read(response);
-            var errors = [];
-            if(rs.records){
-                for(var i = 0, len = rs.records.length; i < len; i++) {
-                    var r = rs.records[i];
-                    errors[i] = r.data;
-                }
-            }
-            if(errors.length < 1){
-                errors = null;
-            }
-            return {
-                success : rs.success,
-                errors : errors
-            };
-        }
-        return Ext.decode(response.responseText);
-    }
-});
-
-
-Ext.form.Action.Load = function(form, options){
-    Ext.form.Action.Load.superclass.constructor.call(this, form, options);
-    this.reader = this.form.reader;
-};
-
-Ext.extend(Ext.form.Action.Load, Ext.form.Action, {
-    type : 'load',
-
-    run : function(){
-        Ext.lib.Ajax.request(
-            this.getMethod(),
-            this.getUrl(false),
-            this.createCallback(),
-            this.getParams());
-    },
-
-    success : function(response){
-        var result = this.processResponse(response);
-        if(result === true || !result.success || !result.data){
-            this.failureType = Ext.form.Action.LOAD_FAILURE;
-            this.form.afterAction(this, false);
-            return;
-        }
-        this.form.clearInvalid();
-        this.form.setValues(result.data);
-        this.form.afterAction(this, true);
-    },
-
-    handleResponse : function(response){
-        if(this.form.reader){
-            var rs = this.form.reader.read(response);
-            var data = rs.records && rs.records[0] ? rs.records[0].data : null;
-            return {
-                success : rs.success,
-                data : data
-            };
-        }
-        return Ext.decode(response.responseText);
-    }
-});
-
-Ext.form.Action.ACTION_TYPES = {
-    'load' : Ext.form.Action.Load,
-    'submit' : Ext.form.Action.Submit
-};
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Adapter.jss.html b/www/extras/extjs/docs/output/Adapter.jss.html deleted file mode 100644 index 06f393300..000000000 --- a/www/extras/extjs/docs/output/Adapter.jss.html +++ /dev/null @@ -1,51 +0,0 @@ -Adapter.js

Adapter.js

/**
- * @class Ext.menu.Adapter
- * @extends Ext.menu.BaseItem
- * A base utility class that adapts a non-menu component so that it can be wrapped by a menu item and added to a menu.
- * It provides basic rendering, activation management and enable/disable logic required to work in menus.
- * @constructor
- * Creates a new Adapter
- * @param {Object} config Configuration options
- */
-Ext.menu.Adapter = function(component, config){
-    Ext.menu.Adapter.superclass.constructor.call(this, config);
-    this.component = component;
-};
-Ext.extend(Ext.menu.Adapter, Ext.menu.BaseItem, {
-    // private
-    canActivate : true,
-
-    // private
-    onRender : function(container, position){
-        this.component.render(container);
-        this.el = this.component.getEl();
-    },
-
-    // private
-    activate : function(){
-        if(this.disabled){
-            return false;
-        }
-        this.component.focus();
-        this.fireEvent("activate", this);
-        return true;
-    },
-
-    // private
-    deactivate : function(){
-        this.fireEvent("deactivate", this);
-    },
-
-    // private
-    disable : function(){
-        this.component.disable();
-        Ext.menu.Adapter.superclass.disable.call(this);
-    },
-
-    // private
-    enable : function(){
-        this.component.enable();
-        Ext.menu.Adapter.superclass.enable.call(this);
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ArrayReader.jss.html b/www/extras/extjs/docs/output/ArrayReader.jss.html deleted file mode 100644 index ed346ecfe..000000000 --- a/www/extras/extjs/docs/output/ArrayReader.jss.html +++ /dev/null @@ -1,73 +0,0 @@ -ArrayReader.js

ArrayReader.js

/**
- * @class Ext.data.ArrayReader
- * @extends Ext.data.DataReader
- * Data reader class to create an Array of Ext.data.Record objects from an Array.
- * Each element of that Array represents a row of data fields. The
- * fields are pulled into a Record object using as a subscript, the <em>mapping</em> property
- * of the field definition if it exists, or the field's ordinal position in the definition.
- * <p>
- * The code below lists all configuration options.
- * <pre><code>
-   var RecordDef = Ext.data.Record.create([
-       {name: 'name', mapping: 1},
-       {name: 'occupation', mapping: 2},
-   ]);
-   var myReader = new Ext.data.ArrayReader({
-       id: 0                     // The subscript within row Array that provides an ID for the Record (optional)
-   }, RecordDef);
-  </code></pre>
- * <p>
- * This would consume an Array like this:
- * <pre><code>
-   [ [1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist'] ]
-  </code></pre>
- * @cfg {String} totalProperty Name of the property from which to retrieve the total number of records
- * in the dataset. This is only needed if the whole dataset is not passed in one go, but is being
- * paged from the remote server.
- * @cfg {String} id (optional) The subscript within row Array that provides an ID for the Record
- * @constructor
- * Create a new JsonReader
- * @param {Object} meta Metadata configuration options.
- * @param {Array/Ext.data.Record constructor} recordType Either an Array of field definition objects,
- * or an {@link Ext.data.Record} object created using {@link Ext.data.Record#create}.
- */
-Ext.data.ArrayReader = function(meta, recordType){
-    Ext.data.ArrayReader.superclass.constructor.call(this, meta, recordType);
-};
-
-Ext.extend(Ext.data.ArrayReader, Ext.data.JsonReader, {
-    /**
-     * Create a data block containing Ext.data.Records from an XML document.
-     * @param {Object} o An object which contains an Array of row objects in the property specified
-     * in the config as 'root, and optionally a property, specified in the config as 'totalProperty'
-     * which contains the total size of the dataset.
-     * @return {Object} data A data block which is used by an Ext.data.Store object as
-     * a cache of Ext.data.Records.
-     */
-    readRecords : function(o){
-        var sid = this.meta ? this.meta.id : null;
-    	var recordType = this.recordType, fields = recordType.prototype.fields;
-    	var records = [];
-    	var root = o;
-	    for(var i = 0; i < root.length; i++){
-		    var n = root[i];
-	        var values = {};
-	        var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null);
-	        for(var j = 0, jlen = fields.length; j < jlen; j++){
-                var f = fields.items[j];
-                var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j;
-                var v = n[k] !== undefined ? n[k] : f.defaultValue;
-                v = f.convert(v);
-                values[f.name] = v;
-            }
-	        var record = new recordType(values, id);
-	        record.json = n;
-	        records[records.length] = record;
-	    }
-	    return {
-	        records : records,
-	        totalRecords : records.length
-	    };
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/AsyncTreeNode.jss.html b/www/extras/extjs/docs/output/AsyncTreeNode.jss.html deleted file mode 100644 index 5d2defc64..000000000 --- a/www/extras/extjs/docs/output/AsyncTreeNode.jss.html +++ /dev/null @@ -1,107 +0,0 @@ -AsyncTreeNode.js

AsyncTreeNode.js

/**
- * @class Ext.tree.AsyncTreeNode
- * @extends Ext.tree.TreeNode
- * @cfg {TreeLoader} loader A TreeLoader to be used by this node (defaults to the loader defined on the tree)
- * @constructor
- * @param {Object/String} attributes The attributes/config for the node or just a string with the text for the node 
- */
- Ext.tree.AsyncTreeNode = function(config){
-    this.loaded = false;
-    this.loading = false;
-    Ext.tree.AsyncTreeNode.superclass.constructor.apply(this, arguments);
-    /**
-    * @event beforeload
-    * Fires before this node is loaded, return false to cancel
-    * @param {Node} this This node
-    */
-    this.addEvents({'beforeload':true, 'load': true});
-    /**
-    * @event load
-    * Fires when this node is loaded
-    * @param {Node} this This node
-    */
-// holder
-/***
-     * The loader used by this node (defaults to using the tree's defined loader)
-     * @type TreeLoader
-     * @property loader
-     */
-};
-Ext.extend(Ext.tree.AsyncTreeNode, Ext.tree.TreeNode, {
-    expand : function(deep, anim, callback){
-        if(this.loading){ // if an async load is already running, waiting til it's done
-            var timer;
-            var f = function(){
-                if(!this.loading){ // done loading
-                    clearInterval(timer);
-                    this.expand(deep, anim, callback);
-                }
-            }.createDelegate(this);
-            timer = setInterval(f, 200);
-            return;
-        }
-        if(!this.loaded){
-            if(this.fireEvent("beforeload", this) === false){
-                return;
-            }
-            this.loading = true;
-            this.ui.beforeLoad(this);
-            var loader = this.loader || this.attributes.loader || this.getOwnerTree().getLoader();
-            if(loader){
-                loader.load(this, this.loadComplete.createDelegate(this, [deep, anim, callback]));
-                return;
-            }
-        }
-        Ext.tree.AsyncTreeNode.superclass.expand.call(this, deep, anim, callback);
-    },
-    
-    /**
-     * Returns true if this node is currently loading
-     * @return {Boolean}
-     */
-    isLoading : function(){
-        return this.loading;  
-    },
-    
-    loadComplete : function(deep, anim, callback){
-        this.loading = false;
-        this.loaded = true;
-        this.ui.afterLoad(this);
-        this.fireEvent("load", this);
-        this.expand(deep, anim, callback);
-    },
-    
-    /**
-     * Returns true if this node has been loaded
-     * @return {Boolean}
-     */
-    isLoaded : function(){
-        return this.loaded;
-    },
-    
-    hasChildNodes : function(){
-        if(!this.isLeaf() && !this.loaded){
-            return true;
-        }else{
-            return Ext.tree.AsyncTreeNode.superclass.hasChildNodes.call(this);
-        }
-    },
-
-    /**
-     * Trigger a reload for this node
-     * @param {Function} callback
-     */
-    reload : function(callback){
-        this.collapse(false, false);
-        while(this.firstChild){
-            this.removeChild(this.firstChild);
-        }
-        this.childrenRendered = false;
-        this.loaded = false;
-        if(this.isHiddenRoot()){
-            this.expanded = false;
-        }
-        this.expand(false, false, callback);
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/AutoLayout.jss.html b/www/extras/extjs/docs/output/AutoLayout.jss.html deleted file mode 100644 index 0ea665849..000000000 --- a/www/extras/extjs/docs/output/AutoLayout.jss.html +++ /dev/null @@ -1,27 +0,0 @@ -AutoLayout.js

AutoLayout.js

Ext.layout.FitLayout = Ext.extend(Ext.layout.ContainerLayout, {
-    monitorResize:true,    
-    onLayout : function(ct, target){
-        Ext.layout.FitLayout.superclass.onLayout.call(this, ct, target);
-        var item = this.activeItem || ct.items.itemAt(0);
-        if(item){
-            item.setSize(target.getSize(true));
-        }
-    }
-});
-
-Ext.layout.CardLayout = Ext.extend(Ext.layout.FitLayout, {
-    renderHidden : true,
-    setActiveItem : function(item){
-        item = this.container.getComponent(item);
-        if(this.activeItem != item){
-            if(this.activeItem){
-                this.activeItem.hide();
-            }
-            this.activeItem = item;
-            item.show();
-            this.layout();
-        }
-    }
-});
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/BaseItem.jss.html b/www/extras/extjs/docs/output/BaseItem.jss.html deleted file mode 100644 index 1a142bda1..000000000 --- a/www/extras/extjs/docs/output/BaseItem.jss.html +++ /dev/null @@ -1,132 +0,0 @@ -BaseItem.js

BaseItem.js

/**
- * @class Ext.menu.BaseItem
- * @extends Ext.Component
- * The base class for all items that render into menus.  BaseItem provides default rendering, activated state
- * management and base configuration options shared by all menu components.
- * @constructor
- * Creates a new BaseItem
- * @param {Object} config Configuration options
- */
-Ext.menu.BaseItem = function(config){
-    Ext.menu.BaseItem.superclass.constructor.call(this, config);
-
-    this.addEvents({
-        /**
-         * @event click
-         * Fires when this item is clicked
-         * @param {Ext.menu.BaseItem} this
-         * @param {Ext.EventObject} e
-         */
-        click: true,
-        /**
-         * @event activate
-         * Fires when this item is activated
-         * @param {Ext.menu.BaseItem} this
-         */
-        activate : true,
-        /**
-         * @event deactivate
-         * Fires when this item is deactivated
-         * @param {Ext.menu.BaseItem} this
-         */
-        deactivate : true
-    });
-
-    if(this.handler){
-        this.on("click", this.handler, this.scope, true);
-    }
-};
-
-Ext.extend(Ext.menu.BaseItem, Ext.Component, {
-    /**
-     * @cfg {Function} handler
-     * A function that will handle the click event of this menu item (defaults to undefined)
-     */
-// holder
-/***
-     * @cfg {Boolean} canActivate True if this item can be visually activated (defaults to false)
-     */
-    canActivate : false,
-    /**
-     * @cfg {String} activeClass The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
-     */
-    activeClass : "x-menu-item-active",
-    /**
-     * @cfg {Boolean} hideOnClick True to hide the containing menu after this item is clicked (defaults to true)
-     */
-    hideOnClick : true,
-    /**
-     * @cfg {Number} hideDelay Length of time in milliseconds to wait before hiding after a click (defaults to 100)
-     */
-    hideDelay : 100,
-
-    // private
-    ctype: "Ext.menu.BaseItem",
-
-    // private
-    actionMode : "container",
-
-    // private
-    render : function(container, parentMenu){
-        this.parentMenu = parentMenu;
-        Ext.menu.BaseItem.superclass.render.call(this, container);
-        this.container.menuItemId = this.id;
-    },
-
-    // private
-    onRender : function(container, position){
-        this.el = Ext.get(this.el);
-        container.dom.appendChild(this.el.dom);
-    },
-
-    // private
-    onClick : function(e){
-        if(!this.disabled && this.fireEvent("click", this, e) !== false
-                && this.parentMenu.fireEvent("itemclick", this, e) !== false){
-            this.handleClick(e);
-        }else{
-            e.stopEvent();
-        }
-    },
-
-    // private
-    activate : function(){
-        if(this.disabled){
-            return false;
-        }
-        var li = this.container;
-        li.addClass(this.activeClass);
-        this.region = li.getRegion().adjust(2, 2, -2, -2);
-        this.fireEvent("activate", this);
-        return true;
-    },
-
-    // private
-    deactivate : function(){
-        this.container.removeClass(this.activeClass);
-        this.fireEvent("deactivate", this);
-    },
-
-    // private
-    shouldDeactivate : function(e){
-        return !this.region || !this.region.contains(e.getPoint());
-    },
-
-    // private
-    handleClick : function(e){
-        if(this.hideOnClick){
-            this.parentMenu.hide.defer(this.hideDelay, this.parentMenu, [true]);
-        }
-    },
-
-    // private
-    expandMenu : function(autoActivate){
-        // do nothing
-    },
-
-    // private
-    hideMenu : function(){
-        // do nothing
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/BasicDialog.jss.html b/www/extras/extjs/docs/output/BasicDialog.jss.html deleted file mode 100644 index 4ba1ac4c4..000000000 --- a/www/extras/extjs/docs/output/BasicDialog.jss.html +++ /dev/null @@ -1,1186 +0,0 @@ -BasicDialog.js

BasicDialog.js

/**
- * @class Ext.BasicDialog
- * @extends Ext.util.Observable
- * Lightweight Dialog Class.  The code below shows the creation of a typical dialog using existing HTML markup:
- * <pre><code>
-    var dlg = new Ext.BasicDialog("my-dlg", {
-        height: 200,
-        width: 300,
-        minHeight: 100,
-        minWidth: 150,
-        modal: true,
-        proxyDrag: true,
-        shadow: true
-    });
-    dlg.addKeyListener(27, dlg.hide, dlg); // ESC can also close the dialog
-    dlg.addButton('OK', dlg.hide, dlg);    // Could call a save function instead of hiding
-    dlg.addButton('Cancel', dlg.hide, dlg);
-    dlg.show();
-  </code></pre>
-  <b>A Dialog should always be a direct child of the body element.</b>
- * @cfg {Boolean/DomHelper} autoCreate True to auto create from scratch, or using a DomHelper Object (defaults to false)
- * @cfg {String} title Default text to display in the title bar (defaults to null)
- * @cfg {Number} width Width of the dialog in pixels (can also be set via CSS).  Determined by browser if unspecified.
- * @cfg {Number} height Height of the dialog in pixels (can also be set via CSS).  Determined by browser if unspecified.
- * @cfg {Number} x The default top page coordinate of the dialog (defaults to center screen)
- * @cfg {Number} y The default left page coordinate of the dialog (defaults to center screen)
- * @cfg {String/Element} animateTarget Id or element from which the dialog should animate while opening
- * (defaults to null with no animation)
- * @cfg {Boolean} resizable False to disable manual dialog resizing (defaults to true)
- * @cfg {String} resizeHandles Which resize handles to display - see the {@link Ext.Resizable} handles config
- * property for valid values (defaults to 'all')
- * @cfg {Number} minHeight The minimum allowable height for a resizable dialog (defaults to 80)
- * @cfg {Number} minWidth The minimum allowable width for a resizable dialog (defaults to 200)
- * @cfg {Boolean} modal True to show the dialog modally, preventing user interaction with the rest of the page (defaults to false)
- * @cfg {Boolean} autoScroll True to allow the dialog body contents to overflow and display scrollbars (defaults to false)
- * @cfg {Boolean} closable False to remove the built-in top-right corner close button (defaults to true)
- * @cfg {Boolean} collapsible False to remove the built-in top-right corner collapse button (defaults to true)
- * @cfg {Boolean} constraintoviewport True to keep the dialog constrained within the visible viewport boundaries (defaults to true)
- * @cfg {Boolean} syncHeightBeforeShow True to cause the dimensions to be recalculated before the dialog is shown (defaults to false)
- * @cfg {Boolean} draggable False to disable dragging of the dialog within the viewport (defaults to true)
- * @cfg {Boolean} autoTabs If true, all elements with class 'x-dlg-tab' will get automatically converted to tabs (defaults to false)
- * @cfg {String} tabTag The tag name of tab elements, used when autoTabs = true (defaults to 'div')
- * @cfg {Boolean} proxyDrag True to drag a lightweight proxy element rather than the dialog itself, used when
- * draggable = true (defaults to false)
- * @cfg {Boolean} fixedcenter True to ensure that anytime the dialog is shown or resized it gets centered (defaults to false)
- * @cfg {Boolean/String} shadow True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right
- * shadow (defaults to false)
- * @cfg {Number} shadowOffset The number of pixels to offset the shadow if displayed (defaults to 5)
- * @cfg {String} buttonAlign Valid values are "left," "center" and "right" (defaults to "right")
- * @cfg {Number} minButtonWidth Minimum width of all dialog buttons (defaults to 75)
- * @cfg {Boolean} shim True to create an iframe shim that prevents selects from showing through (defaults to false)
- * @constructor
- * Create a new BasicDialog.
- * @param {String/HTMLElement/Ext.Element} el The container element or DOM node, or its id
- * @param {Object} config Configuration options
- */
-Ext.BasicDialog = function(el, config){
-    this.el = Ext.get(el);
-    var dh = Ext.DomHelper;
-    if(!this.el && config && config.autoCreate){
-        if(typeof config.autoCreate == "object"){
-            if(!config.autoCreate.id){
-                config.autoCreate.id = el;
-            }
-            this.el = dh.append(document.body,
-                        config.autoCreate, true);
-        }else{
-            this.el = dh.append(document.body,
-                        {tag: "div", id: el, style:'visibility:hidden;'}, true);
-        }
-    }
-    el = this.el;                                                                                                                                                                                                                                                                                                                                                                                                  
-    el.setDisplayed(true);
-    el.hide = this.hideAction;
-    this.id = el.id;
-    el.addClass("x-dlg");
-
-    Ext.apply(this, config);
-
-    this.proxy = el.createProxy("x-dlg-proxy");
-    this.proxy.hide = this.hideAction;
-    this.proxy.setOpacity(.5);
-    this.proxy.hide();
-
-    if(config.width){
-        el.setWidth(config.width);
-    }
-    if(config.height){
-        el.setHeight(config.height);
-    }
-    this.size = el.getSize();
-    if(typeof config.x != "undefined" && typeof config.y != "undefined"){
-        this.xy = [config.x,config.y];
-    }else{
-        this.xy = el.getCenterXY(true);
-    }
-    /** The header element @type Ext.Element */
-    this.header = el.child("/.x-dlg-hd");
-    /** The body element @type Ext.Element */
-    this.body = el.child("/.x-dlg-bd");
-    /** The footer element @type Ext.Element */
-    this.footer = el.child("/.x-dlg-ft");
-
-    if(!this.header){
-        this.header = el.createChild({tag: "div", cls:"x-dlg-hd", html: "&#160;"}, this.body ? this.body.dom : null);
-    }
-    if(!this.body){
-        this.body = el.createChild({tag: "div", cls:"x-dlg-bd"});
-    }
-
-    this.header.unselectable();
-    if(this.title){
-        this.header.update(this.title);
-    }
-    // this element allows the dialog to be focused for keyboard event
-    this.focusEl = el.createChild({tag: "a", href:"#", cls:"x-dlg-focus", tabIndex:"-1"});
-    this.focusEl.swallowEvent("click", true);
-
-    this.header.wrap({cls:"x-dlg-hd-right"}).wrap({cls:"x-dlg-hd-left"}, true);
-
-    // wrap the body and footer for special rendering
-    this.bwrap = this.body.wrap({tag: "div", cls:"x-dlg-dlg-body"});
-    if(this.footer){
-        this.bwrap.dom.appendChild(this.footer.dom);
-    }
-
-    this.bg = this.el.createChild({
-        tag: "div", cls:"x-dlg-bg",
-        html: '<div class="x-dlg-bg-left"><div class="x-dlg-bg-right"><div class="x-dlg-bg-center">&#160;</div></div></div>'
-    });
-    this.centerBg = this.bg.child("div.x-dlg-bg-center");
-
-
-    if(this.autoScroll !== false && !this.autoTabs){
-        this.body.setStyle("overflow", "auto");
-    }
-
-    this.toolbox = this.el.createChild({cls: "x-dlg-toolbox"});
-
-    if(this.closable !== false){
-        this.el.addClass("x-dlg-closable");
-        this.close = this.toolbox.createChild({cls:"x-dlg-close"});
-        this.close.on("click", this.closeClick, this);
-        this.close.addClassOnOver("x-dlg-close-over");
-    }
-    if(this.collapsible !== false){
-        this.collapseBtn = this.toolbox.createChild({cls:"x-dlg-collapse"});
-        this.collapseBtn.on("click", this.collapseClick, this);
-        this.collapseBtn.addClassOnOver("x-dlg-collapse-over");
-        this.header.on("dblclick", this.collapseClick, this);
-    }
-    if(this.resizable !== false){
-        this.el.addClass("x-dlg-resizable");
-        this.resizer = new Ext.Resizable(el, {
-            minWidth: this.minWidth || 80,
-            minHeight:this.minHeight || 80,
-            handles: this.resizeHandles || "all",
-            pinned: true
-        });
-        this.resizer.on("beforeresize", this.beforeResize, this);
-        this.resizer.on("resize", this.onResize, this);
-    }
-    if(this.draggable !== false){
-        el.addClass("x-dlg-draggable");
-        if (!this.proxyDrag) {
-            var dd = new Ext.dd.DD(el.dom.id, "WindowDrag");
-        }
-        else {
-            var dd = new Ext.dd.DDProxy(el.dom.id, "WindowDrag", {dragElId: this.proxy.id});
-        }
-        dd.setHandleElId(this.header.id);
-        dd.endDrag = this.endMove.createDelegate(this);
-        dd.startDrag = this.startMove.createDelegate(this);
-        dd.onDrag = this.onDrag.createDelegate(this);
-        dd.scroll = false;
-        this.dd = dd;
-    }
-    if(this.modal){
-        this.mask = dh.append(document.body, {tag: "div", cls:"x-dlg-mask"}, true);
-        this.mask.enableDisplayMode("block");
-        this.mask.hide();
-        this.el.addClass("x-dlg-modal");
-    }
-    if(this.shadow){
-        this.shadow = new Ext.Shadow({
-            mode : typeof this.shadow == "string" ? this.shadow : "sides",
-            offset : this.shadowOffset
-        });
-    }else{
-        this.shadowOffset = 0;
-    }
-    if(Ext.useShims && this.shim !== false){
-        this.shim = this.el.createShim();
-        this.shim.hide = this.hideAction;
-        this.shim.hide();
-    }else{
-        this.shim = false;
-    }
-    if(this.autoTabs){
-        this.initTabs();
-    }
-    this.addEvents({
-        /**
-         * @event keydown
-         * Fires when a key is pressed
-         * @param {Ext.BasicDialog} this
-         * @param {Ext.EventObject} e
-         */
-        "keydown" : true,
-        /**
-         * @event move
-         * Fires when this dialog is moved by the user.
-         * @param {Ext.BasicDialog} this
-         * @param {Number} x The new page X
-         * @param {Number} y The new page Y
-         */
-        "move" : true,
-        /**
-         * @event resize
-         * Fires when this dialog is resized by the user.
-         * @param {Ext.BasicDialog} this
-         * @param {Number} width The new width
-         * @param {Number} height The new height
-         */
-        "resize" : true,
-        /**
-         * @event beforehide
-         * Fires before this dialog is hidden.
-         * @param {Ext.BasicDialog} this
-         */
-        "beforehide" : true,
-        /**
-         * @event hide
-         * Fires when this dialog is hidden.
-         * @param {Ext.BasicDialog} this
-         */
-        "hide" : true,
-        /**
-         * @event beforeshow
-         * Fires before this dialog is shown.
-         * @param {Ext.BasicDialog} this
-         */
-        "beforeshow" : true,
-        /**
-         * @event show
-         * Fires when this dialog is shown.
-         * @param {Ext.BasicDialog} this
-         */
-        "show" : true
-    });
-    el.on("keydown", this.onKeyDown, this);
-    el.on("mousedown", this.toFront, this);
-    Ext.EventManager.onWindowResize(this.adjustViewport, this, true);
-    this.el.hide();
-    Ext.DialogManager.register(this);
-    Ext.BasicDialog.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.BasicDialog, Ext.util.Observable, {
-    shadowOffset: 5,
-    minHeight: 80,
-    minWidth: 200,
-    minButtonWidth: 75,
-    defaultButton: null,
-    buttonAlign: "right",
-    tabTag: 'div',
-    firstShow: true,
-
-    /**
-     * Sets the dialog title text
-     * @param {String} text The title text to display
-     * @return {Ext.BasicDialog} this
-     */
-    setTitle : function(text){
-        this.header.update(text);
-        return this;
-    },
-
-    // private
-    closeClick : function(){
-        this.hide();
-    },
-
-    // private
-    collapseClick : function(){
-        this[this.collapsed ? "expand" : "collapse"]();
-    },
-
-    /**
-     * Collapses the dialog to its minimized state (only the title bar is visible).
-     * Equivalent to the user clicking the collapse dialog button.
-     */
-    collapse : function(){
-        if(!this.collapsed){
-            this.collapsed = true;
-            this.el.addClass("x-dlg-collapsed");
-            this.restoreHeight = this.el.getHeight();
-            this.resizeTo(this.el.getWidth(), this.header.getHeight());
-        }
-    },
-
-    /**
-     * Expands a collapsed dialog back to its normal state.  Equivalent to the user
-     * clicking the expand dialog button.
-     */
-    expand : function(){
-        if(this.collapsed){
-            this.collapsed = false;
-            this.el.removeClass("x-dlg-collapsed");
-            this.resizeTo(this.el.getWidth(), this.restoreHeight);
-        }
-    },
-
-    /**
-     * Reinitializes the tabs component, clearing out old tabs and finding new ones.
-     * @return {Ext.TabPanel} The tabs component
-     */
-    initTabs : function(){
-        var tabs = this.getTabs();
-        while(tabs.getTab(0)){
-            tabs.removeTab(0);
-        }
-        this.el.select(this.tabTag+'.x-dlg-tab').each(function(el){
-            var dom = el.dom;
-            tabs.addTab(Ext.id(dom), dom.title);
-            dom.title = "";
-        });
-        tabs.activate(0);
-        return tabs;
-    },
-
-    // private
-    beforeResize : function(){
-        this.resizer.minHeight = Math.max(this.minHeight, this.getHeaderFooterHeight(true)+40);
-    },
-
-    // private
-    onResize : function(){
-        this.refreshSize();
-        this.syncBodyHeight();
-        this.adjustAssets();
-        this.focus();
-        this.fireEvent("resize", this, this.size.width, this.size.height);
-    },
-
-    // private
-    onKeyDown : function(e){
-        if(this.isVisible()){
-            this.fireEvent("keydown", this, e);
-        }
-    },
-
-    /**
-     * Resizes the dialog.
-     * @param {Number} width
-     * @param {Number} height
-     * @return {Ext.BasicDialog} this
-     */
-    resizeTo : function(width, height){
-        this.el.setSize(width, height);
-        this.size = {width: width, height: height};
-        this.syncBodyHeight();
-        if(this.fixedcenter){
-            this.center();
-        }
-        if(this.isVisible()){
-            this.constrainXY();
-            this.adjustAssets();
-        }
-        this.fireEvent("resize", this, width, height);
-        return this;
-    },
-
-
-    /**
-     * Resizes the dialog to fit the specified content size.
-     * @param {Number} width
-     * @param {Number} height
-     * @return {Ext.BasicDialog} this
-     */
-    setContentSize : function(w, h){
-        h += this.getHeaderFooterHeight() + this.body.getMargins("tb");
-        w += this.body.getMargins("lr") + this.bwrap.getMargins("lr") + this.centerBg.getPadding("lr");
-        //if(!this.el.isBorderBox()){
-            h +=  this.body.getPadding("tb") + this.bwrap.getBorderWidth("tb") + this.body.getBorderWidth("tb") + this.el.getBorderWidth("tb");
-            w += this.body.getPadding("lr") + this.bwrap.getBorderWidth("lr") + this.body.getBorderWidth("lr") + this.bwrap.getPadding("lr") + this.el.getBorderWidth("lr");
-        //}
-        if(this.tabs){
-            h += this.tabs.stripWrap.getHeight() + this.tabs.bodyEl.getMargins("tb") + this.tabs.bodyEl.getPadding("tb");
-            w += this.tabs.bodyEl.getMargins("lr") + this.tabs.bodyEl.getPadding("lr");
-        }
-        this.resizeTo(w, h);
-        return this;
-    },
-
-    /**
-     * Adds a key listener for when this dialog is displayed.  This allows you to hook in a function that will be
-     * executed in response to a particular key being pressed while the dialog is active.
-     * @param {Number/Array/Object} key Either the numeric key code, array of key codes or an object with the following options:
-     *                                  {key: (number or array), shift: (true/false), ctrl: (true/false), alt: (true/false)}
-     * @param {Function} fn The function to call
-     * @param {Object} scope (optional) The scope of the function
-     * @return {Ext.BasicDialog} this
-     */
-    addKeyListener : function(key, fn, scope){
-        var keyCode, shift, ctrl, alt;
-        if(typeof key == "object" && !(key instanceof Array)){
-            keyCode = key["key"];
-            shift = key["shift"];
-            ctrl = key["ctrl"];
-            alt = key["alt"];
-        }else{
-            keyCode = key;
-        }
-        var handler = function(dlg, e){
-            if((!shift || e.shiftKey) && (!ctrl || e.ctrlKey) &&  (!alt || e.altKey)){
-                var k = e.getKey();
-                if(keyCode instanceof Array){
-                    for(var i = 0, len = keyCode.length; i < len; i++){
-                        if(keyCode[i] == k){
-                          fn.call(scope || window, dlg, k, e);
-                          return;
-                        }
-                    }
-                }else{
-                    if(k == keyCode){
-                        fn.call(scope || window, dlg, k, e);
-                    }
-                }
-            }
-        };
-        this.on("keydown", handler);
-        return this;
-    },
-
-    /**
-     * Returns the TabPanel component (creates it if it doesn't exist).
-     * Note: If you wish to simply check for the existence of tabs without creating them,
-     * check for a null 'tabs' property.
-     * @return {Ext.TabPanel} The tabs component
-     */
-    getTabs : function(){
-        if(!this.tabs){
-            this.el.addClass("x-dlg-auto-tabs");
-            this.body.addClass(this.tabPosition == "bottom" ? "x-tabs-bottom" : "x-tabs-top");
-            this.tabs = new Ext.TabPanel(this.body.dom, this.tabPosition == "bottom");
-        }
-        return this.tabs;
-    },
-
-    /**
-     * Adds a button to the footer section of the dialog.
-     * @param {String/Object} config A string becomes the button text, an object can either be a Button config
-     * object or a valid Ext.DomHelper element config
-     * @param {Function} handler The function called when the button is clicked
-     * @param {Object} scope (optional) The scope of the handler function
-     * @return {Ext.Button} this
-     */
-    addButton : function(config, handler, scope){
-        var dh = Ext.DomHelper;
-        if(!this.footer){
-            this.footer = dh.append(this.bwrap, {tag: "div", cls:"x-dlg-ft"}, true);
-        }
-        if(!this.btnContainer){
-            var tb = this.footer.createChild({
-                tag:"div",
-                cls:"x-dlg-btns x-dlg-btns-"+this.buttonAlign,
-                html:'<table cellspacing="0"><tbody><tr></tr></tbody></table><div class="x-clear"></div>'
-            }, null, true);
-            this.btnContainer = tb.firstChild.firstChild.firstChild;
-        }
-        var bconfig = {
-            handler: handler,
-            scope: scope,
-            minWidth: this.minButtonWidth,
-            hideParent:true
-        };
-        if(typeof config == "string"){
-            bconfig.text = config;
-        }else{
-            if(config.tag){
-                bconfig.dhconfig = config;
-            }else{
-                Ext.apply(bconfig, config);
-            }
-        }
-        var btn = new Ext.Button(
-            this.btnContainer.appendChild(document.createElement("td")),
-            bconfig
-        );
-        this.syncBodyHeight();
-        if(!this.buttons){
-            /**
-             * Array of all the buttons that have been added to this dialog via addButton
-             * @type Array
-             */
-            this.buttons = [];
-        }
-        this.buttons.push(btn);
-        return btn;
-    },
-
-    /**
-     * Sets the default button to be focused when the dialog is displayed.
-     * @param {Ext.BasicDialog.Button} btn The button object returned by {@link #addButton}
-     * @return {Ext.BasicDialog} this
-     */
-    setDefaultButton : function(btn){
-        this.defaultButton = btn;
-        return this;
-    },
-
-    // private
-    getHeaderFooterHeight : function(safe){
-        var height = 0;
-        if(this.header){
-           height += this.header.getHeight();
-        }
-        if(this.footer){
-           var fm = this.footer.getMargins();
-            height += (this.footer.getHeight()+fm.top+fm.bottom);
-        }
-        height += this.bwrap.getPadding("tb")+this.bwrap.getBorderWidth("tb");
-        height += this.centerBg.getPadding("tb");
-        return height;
-    },
-
-    // private
-    syncBodyHeight : function(){
-        var bd = this.body, cb = this.centerBg, bw = this.bwrap;
-        var height = this.size.height - this.getHeaderFooterHeight(false);
-        bd.setHeight(height-bd.getMargins("tb"));
-        var hh = this.header.getHeight();
-        var h = this.size.height-hh;
-        cb.setHeight(h);
-        bw.setLeftTop(cb.getPadding("l"), hh+cb.getPadding("t"));
-        bw.setHeight(h-cb.getPadding("tb"));
-        bw.setWidth(this.el.getWidth(true)-cb.getPadding("lr"));
-        bd.setWidth(bw.getWidth(true));
-        if(this.tabs){
-            this.tabs.syncHeight();
-            if(Ext.isIE){
-                this.tabs.el.repaint();
-            }
-        }
-    },
-
-    /**
-     * Restores the previous state of the dialog if Ext.state is configured.
-     * @return {Ext.BasicDialog} this
-     */
-    restoreState : function(){
-        var box = Ext.state.Manager.get(this.stateId || (this.el.id + "-state"));
-        if(box && box.width){
-            this.xy = [box.x, box.y];
-            this.resizeTo(box.width, box.height);
-        }
-        return this;
-    },
-
-    // private
-    beforeShow : function(){
-        this.expand();
-        if(this.fixedcenter){
-            this.xy = this.el.getCenterXY(true);
-        }
-        if(this.modal){
-            Ext.get(document.body).addClass("x-body-masked");
-            this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true));
-            this.mask.show();
-        }
-        this.constrainXY();
-    },
-
-    // private
-    animShow : function(){
-        var b = Ext.get(this.animateTarget, true).getBox();
-        this.proxy.setSize(b.width, b.height);
-        this.proxy.setLocation(b.x, b.y);
-        this.proxy.show();
-        this.proxy.setBounds(this.xy[0], this.xy[1], this.size.width, this.size.height,
-                    true, .35, this.showEl.createDelegate(this));
-    },
-
-    /**
-     * Shows the dialog.
-     * @param {String/HTMLElement/Ext.Element} animateTarget (optional) Reset the animation target
-     * @return {Ext.BasicDialog} this
-     */
-    show : function(animateTarget){
-        if (this.fireEvent("beforeshow", this) === false){
-            return;
-        }
-        if(this.syncHeightBeforeShow){
-            this.syncBodyHeight();
-        }else if(this.firstShow){
-            this.firstShow = false;
-            this.syncBodyHeight(); // sync the height on the first show instead of in the constructor
-        }
-        this.animateTarget = animateTarget || this.animateTarget;
-        if(!this.el.isVisible()){
-            this.beforeShow();
-            if(this.animateTarget){
-                this.animShow();
-            }else{
-                this.showEl();
-            }
-        }
-        return this;
-    },
-
-    // private
-    showEl : function(){
-        this.proxy.hide();
-        this.el.setXY(this.xy);
-        this.el.show();
-        this.adjustAssets(true);
-        this.toFront();
-        this.focus();
-        // IE peekaboo bug - fix found by Dave Fenwick
-        if(Ext.isIE){
-            this.el.repaint();
-        }
-        this.fireEvent("show", this);
-    },
-
-    /**
-     * Focuses the dialog.  If a defaultButton is set, it will receive focus, otherwise the
-     * dialog itself will receive focus.
-     */
-    focus : function(){
-        if(this.defaultButton){
-            this.defaultButton.focus();
-        }else{
-            this.focusEl.focus();
-        }
-    },
-
-    // private
-    constrainXY : function(){
-        if(this.constraintoviewport !== false){
-            if(!this.viewSize){
-                if(this.container){
-                    var s = this.container.getSize();
-                    this.viewSize = [s.width, s.height];
-                }else{
-                    this.viewSize = [Ext.lib.Dom.getViewWidth(),Ext.lib.Dom.getViewHeight()];
-                }
-            }
-            var s = Ext.get(this.container||document).getScroll();
-
-            var x = this.xy[0], y = this.xy[1];
-            var w = this.size.width, h = this.size.height;
-            var vw = this.viewSize[0], vh = this.viewSize[1];
-            // only move it if it needs it
-            var moved = false;
-            // first validate right/bottom
-            if(x + w > vw+s.left){
-                x = vw - w;
-                moved = true;
-            }
-            if(y + h > vh+s.top){
-                y = vh - h;
-                moved = true;
-            }
-            // then make sure top/left isn't negative
-            if(x < s.left){
-                x = s.left;
-                moved = true;
-            }
-            if(y < s.top){
-                y = s.top;
-                moved = true;
-            }
-            if(moved){
-                // cache xy
-                this.xy = [x, y];
-                if(this.isVisible()){
-                    this.el.setLocation(x, y);
-                    this.adjustAssets();
-                }
-            }
-        }
-    },
-
-    // private
-    onDrag : function(){
-        if(!this.proxyDrag){
-            this.xy = this.el.getXY();
-            this.adjustAssets();
-        }
-    },
-
-    // private
-    adjustAssets : function(doShow){
-        var x = this.xy[0], y = this.xy[1];
-        var w = this.size.width, h = this.size.height;
-        if(doShow === true){
-            if(this.shadow){
-                this.shadow.show(this.el);
-            }
-            if(this.shim){
-                this.shim.show();
-            }
-        }
-        if(this.shadow && this.shadow.isVisible()){
-            this.shadow.show(this.el);
-        }
-        if(this.shim && this.shim.isVisible()){
-            this.shim.setBounds(x, y, w, h);
-        }
-    },
-
-    // private
-    adjustViewport : function(w, h){
-        if(!w || !h){
-            w = Ext.lib.Dom.getViewWidth();
-            h = Ext.lib.Dom.getViewHeight();
-        }
-        // cache the size
-        this.viewSize = [w, h];
-        if(this.modal && this.mask.isVisible()){
-            this.mask.setSize(w, h); // first make sure the mask isn't causing overflow
-            this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true));
-        }
-        if(this.isVisible()){
-            this.constrainXY();
-        }
-    },
-
-    /**
-     * Destroys this dialog and all its supporting elements (including any tabs, shim,
-     * shadow, proxy, mask, etc.)  Also removes all event listeners.
-     * @param {Boolean} removeEl (optional) true to remove the element from the DOM
-     */
-    destroy : function(removeEl){
-        if(this.isVisible()){
-            this.animateTarget = null;
-            this.hide();
-        }
-        Ext.EventManager.removeResizeListener(this.adjustViewport, this);
-        if(this.tabs){
-            this.tabs.destroy(removeEl);
-        }
-        Ext.destroy(
-             this.shim,
-             this.proxy,
-             this.resizer,
-             this.close,
-             this.mask
-        );
-        if(this.dd){
-            this.dd.unreg();
-        }
-        if(this.buttons){
-           for(var i = 0, len = this.buttons.length; i < len; i++){
-               this.buttons[i].destroy();
-           }
-        }
-        this.el.removeAllListeners();
-        if(removeEl === true){
-            this.el.update("");
-            this.el.remove();
-        }
-        Ext.DialogManager.unregister(this);
-    },
-
-    // private
-    startMove : function(){
-        if(this.proxyDrag){
-            this.proxy.show();
-        }
-        if(this.constraintoviewport !== false){
-            this.dd.constrainTo(document.body, {right: this.shadowOffset, bottom: this.shadowOffset});
-        }
-    },
-
-    // private
-    endMove : function(){
-        if(!this.proxyDrag){
-            Ext.dd.DD.prototype.endDrag.apply(this.dd, arguments);
-        }else{
-            Ext.dd.DDProxy.prototype.endDrag.apply(this.dd, arguments);
-            this.proxy.hide();
-        }
-        this.refreshSize();
-        this.adjustAssets();
-        this.focus();
-        this.fireEvent("move", this, this.xy[0], this.xy[1]);
-    },
-
-    /**
-     * Brings this dialog to the front of any other visible dialogs
-     * @return {Ext.BasicDialog} this
-     */
-    toFront : function(){
-        Ext.DialogManager.bringToFront(this);
-        return this;
-    },
-
-    /**
-     * Sends this dialog to the back (under) of any other visible dialogs
-     * @return {Ext.BasicDialog} this
-     */
-    toBack : function(){
-        Ext.DialogManager.sendToBack(this);
-        return this;
-    },
-
-    /**
-     * Centers this dialog in the viewport
-     * @return {Ext.BasicDialog} this
-     */
-    center : function(){
-        var xy = this.el.getCenterXY(true);
-        this.moveTo(xy[0], xy[1]);
-        return this;
-    },
-
-    /**
-     * Moves the dialog's top-left corner to the specified point
-     * @param {Number} x
-     * @param {Number} y
-     * @return {Ext.BasicDialog} this
-     */
-    moveTo : function(x, y){
-        this.xy = [x,y];
-        if(this.isVisible()){
-            this.el.setXY(this.xy);
-            this.adjustAssets();
-        }
-        return this;
-    },
-
-    /**
-     * Aligns the dialog to the specified element
-     * @param {String/HTMLElement/Ext.Element} element The element to align to.
-     * @param {String} position The position to align to (see {@link Ext.Element#alignTo} for more details).
-     * @param {Array} offsets (optional) Offset the positioning by [x, y]
-     * @return {Ext.BasicDialog} this
-     */
-    alignTo : function(element, position, offsets){
-        this.xy = this.el.getAlignToXY(element, position, offsets);
-        if(this.isVisible()){
-            this.el.setXY(this.xy);
-            this.adjustAssets();
-        }
-        return this;
-    },
-
-    /**
-     * Anchors an element to another element and realigns it when the window is resized.
-     * @param {String/HTMLElement/Ext.Element} element The element to align to.
-     * @param {String} position The position to align to (see {@link Ext.Element#alignTo} for more details)
-     * @param {Array} offsets (optional) Offset the positioning by [x, y]
-     * @param {Boolean/Number} monitorScroll (optional) true to monitor body scroll and reposition. If this parameter
-     * is a number, it is used as the buffer delay (defaults to 50ms).
-     * @return {Ext.BasicDialog} this
-     */
-    anchorTo : function(el, alignment, offsets, monitorScroll){
-        var action = function(){
-            this.alignTo(el, alignment, offsets);
-        };
-        Ext.EventManager.onWindowResize(action, this);
-        var tm = typeof monitorScroll;
-        if(tm != 'undefined'){
-            Ext.EventManager.on(window, 'scroll', action, this,
-                {buffer: tm == 'number' ? monitorScroll : 50});
-        }
-        action.call(this);
-        return this;
-    },
-
-    /**
-     * Returns true if the dialog is visible
-     * @return {Boolean}
-     */
-    isVisible : function(){
-        return this.el.isVisible();
-    },
-
-    // private
-    animHide : function(callback){
-        var b = Ext.get(this.animateTarget).getBox();
-        this.proxy.show();
-        this.proxy.setBounds(this.xy[0], this.xy[1], this.size.width, this.size.height);
-        this.el.hide();
-        this.proxy.setBounds(b.x, b.y, b.width, b.height, true, .35,
-                    this.hideEl.createDelegate(this, [callback]));
-    },
-
-    /**
-     * Hides the dialog.
-     * @param {Function} callback (optional) Function to call when the dialog is hidden
-     * @return {Ext.BasicDialog} this
-     */
-    hide : function(callback){
-        if (this.fireEvent("beforehide", this) === false){
-            return;
-        }
-        if(this.shadow){
-            this.shadow.hide();
-        }
-        if(this.shim) {
-          this.shim.hide();
-        }
-        if(this.animateTarget){
-           this.animHide(callback);
-        }else{
-            this.el.hide();
-            this.hideEl(callback);
-        }
-        return this;
-    },
-
-    // private
-    hideEl : function(callback){
-        this.proxy.hide();
-        if(this.modal){
-            this.mask.hide();
-            Ext.get(document.body).removeClass("x-body-masked");
-        }
-        this.fireEvent("hide", this);
-        if(typeof callback == "function"){
-            callback();
-        }
-    },
-
-    // private
-    hideAction : function(){
-        this.setLeft("-10000px");
-        this.setTop("-10000px");
-        this.setStyle("visibility", "hidden");
-    },
-
-    // private
-    refreshSize : function(){
-        this.size = this.el.getSize();
-        this.xy = this.el.getXY();
-        Ext.state.Manager.set(this.stateId || this.el.id + "-state", this.el.getBox());
-    },
-
-    // private
-    // z-index is managed by the DialogManager and may be overwritten at any time
-    setZIndex : function(index){
-        if(this.modal){
-            this.mask.setStyle("z-index", index);
-        }
-        if(this.shim){
-            this.shim.setStyle("z-index", ++index);
-        }
-        if(this.shadow){
-            this.shadow.setZIndex(++index);
-        }
-        this.el.setStyle("z-index", ++index);
-        if(this.proxy){
-            this.proxy.setStyle("z-index", ++index);
-        }
-        if(this.resizer){
-            this.resizer.proxy.setStyle("z-index", ++index);
-        }
-
-        this.lastZIndex = index;
-    },
-
-    /**
-     * Returns the element for this dialog
-     * @return {Ext.Element} The underlying dialog Element
-     */
-    getEl : function(){
-        return this.el;
-    }
-});
-
-/**
- * @class Ext.DialogManager
- * Provides global access to BasicDialogs that have been created and
- * support for z-indexing (layering) multiple open dialogs.
- */
-Ext.DialogManager = function(){
-    var list = {};
-    var accessList = [];
-    var front = null;
-
-    // private
-    var sortDialogs = function(d1, d2){
-        return (!d1._lastAccess || d1._lastAccess < d2._lastAccess) ? -1 : 1;
-    };
-
-    // private
-    var orderDialogs = function(){
-        accessList.sort(sortDialogs);
-        var seed = Ext.DialogManager.zseed;
-        for(var i = 0, len = accessList.length; i < len; i++){
-            var dlg = accessList[i];
-            if(dlg){
-                dlg.setZIndex(seed + (i*10));
-            }
-        }
-    };
-
-    return {
-        /**
-         * The starting z-index for BasicDialogs (defaults to 9000)
-         * @type Number The z-index value
-         */
-        zseed : 9000,
-
-        // private
-        register : function(dlg){
-            list[dlg.id] = dlg;
-            accessList.push(dlg);
-        },
-
-        // private
-        unregister : function(dlg){
-            delete list[dlg.id];
-            if(!accessList.indexOf){
-                for(var i = 0, len = accessList.length; i < len; i++){
-                    if(accessList[i] == dlg){
-                        accessList.splice(i, 1);
-                        return;
-                    }
-                }
-            }else{
-                var i = accessList.indexOf(dlg);
-                if(i != -1){
-                    accessList.splice(i, 1);
-                }
-            }
-        },
-
-        /**
-         * Gets a registered dialog by id
-         * @param {String/Object} id The id of the dialog or a dialog
-         * @return {Ext.BasicDialog} this
-         */
-        get : function(id){
-            return typeof id == "object" ? id : list[id];
-        },
-
-        /**
-         * Brings the specified dialog to the front
-         * @param {String/Object} dlg The id of the dialog or a dialog
-         * @return {Ext.BasicDialog} this
-         */
-        bringToFront : function(dlg){
-            dlg = this.get(dlg);
-            if(dlg != front){
-                front = dlg;
-                dlg._lastAccess = new Date().getTime();
-                orderDialogs();
-            }
-            return dlg;
-        },
-
-        /**
-         * Sends the specified dialog to the back
-         * @param {String/Object} dlg The id of the dialog or a dialog
-         * @return {Ext.BasicDialog} this
-         */
-        sendToBack : function(dlg){
-            dlg = this.get(dlg);
-            dlg._lastAccess = -(new Date().getTime());
-            orderDialogs();
-            return dlg;
-        },
-
-        /**
-         * Hides all dialogs
-         */
-        hideAll : function(){
-            for(var id in list){
-                if(list[id] && typeof list[id] != "function" && list[id].isVisible()){
-                    list[id].hide();
-                }
-            }
-        }
-    };
-}();
-
-/**
- * @class Ext.LayoutDialog
- * @extends Ext.BasicDialog
- * Dialog which provides adjustments for working with a layout in a Dialog.
- * Add your neccessary layout config options to the dialogs config.<br>
- * Example Usage (including a nested layout):
- * <pre><code>    if(!dialog){
-    dialog = new Ext.LayoutDialog("download-dlg", {
-            modal: true,
-            width:600,
-            height:450,
-            shadow:true,
-            minWidth:500,
-            minHeight:350,
-            autoTabs:true,
-            proxyDrag:true,
-            // layout config merges with the dialog config
-            center:{
-                tabPosition: "top",
-                alwaysShowTabs: true
-            }
-    });
-    dialog.addKeyListener(27, dialog.hide, dialog);
-    dialog.setDefaultButton(dialog.addButton("Close", dialog.hide, dialog));
-    dialog.addButton("Build It!", this.getDownload, this);
-
-    // we can even add nested layouts
-    var innerLayout = new Ext.BorderLayout("dl-inner", {
-        east: {
-            initialSize: 200,
-            autoScroll:true,
-            split:true
-        },
-        center: {
-            autoScroll:true
-        }
-    });
-    innerLayout.beginUpdate();
-    innerLayout.add("east", new Ext.ContentPanel("dl-details"));
-    innerLayout.add("center", new Ext.ContentPanel("selection-panel"));
-    innerLayout.endUpdate(true);
-
-    var layout = dialog.getLayout();
-    layout.beginUpdate();
-    layout.add("center", new Ext.ContentPanel("standard-panel",
-                        {title: "Download the Source", fitToFrame:true}));
-    layout.add("center", new Ext.NestedLayoutPanel(innerLayout,
-               {title: "Build your own ext.js"}));
-    layout.getRegion("center").showPanel(sp);
-    layout.endUpdate();</code></pre>
-    * @constructor
-    * @param {String/HTMLElement/Ext.Element} el The id of or container element
-    * @param {Object} config configuration options
-  */
-Ext.LayoutDialog = function(el, config){
-    config.autoTabs = false;
-    Ext.LayoutDialog.superclass.constructor.call(this, el, config);
-    this.body.setStyle({overflow:"hidden", position:"relative"});
-    this.layout = new Ext.BorderLayout(this.body.dom, config);
-    this.layout.monitorWindowResize = false;
-    this.el.addClass("x-dlg-auto-layout");
-    // fix case when center region overwrites center function
-    this.center = Ext.BasicDialog.prototype.center;
-    this.on("show", this.layout.layout, this.layout, true);
-};
-Ext.extend(Ext.LayoutDialog, Ext.BasicDialog, {
-    /**
-     * Ends update of the layout <strike>and resets display to none</strike>. Use standard beginUpdate/endUpdate on the layout.
-     * @deprecated
-     */
-    endUpdate : function(){
-        this.layout.endUpdate();
-    },
-
-    /**
-     * Begins an update of the layout <strike>and sets display to block and visibility to hidden</strike>. Use standard beginUpdate/endUpdate on the layout.
-     *  @deprecated
-     */
-    beginUpdate : function(){
-        this.layout.beginUpdate();
-    },
-
-    /**
-     * Get the BorderLayout for this dialog
-     * @return {Ext.BorderLayout}
-     */
-    getLayout : function(){
-        return this.layout;
-    },
-
-    showEl : function(){
-        Ext.LayoutDialog.superclass.showEl.apply(this, arguments);
-        if(Ext.isIE7){
-            this.layout.layout();
-        }
-    },
-
-    // private
-    // Use the syncHeightBeforeShow config option to control this automatically
-    syncBodyHeight : function(){
-        Ext.LayoutDialog.superclass.syncBodyHeight.call(this);
-        if(this.layout){this.layout.layout();}
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/BasicForm.jss.html b/www/extras/extjs/docs/output/BasicForm.jss.html deleted file mode 100644 index dc87e2f61..000000000 --- a/www/extras/extjs/docs/output/BasicForm.jss.html +++ /dev/null @@ -1,361 +0,0 @@ -BasicForm.js

BasicForm.js

/**
- * @class Ext.form.BasicForm
- * @extends Ext.util.Observable
- * Supplies the functionality to do "actions" on forms and initialize Ext.form.Field types on existing markup.
- * @constructor
- * @param {String/HTMLElement/Ext.Element} el The form element or its id
- * @param {Object} config Configuration options
- */
-Ext.form.BasicForm = function(el, config){
-    Ext.apply(this, config);
-    /*
-     * The Ext.form.Field items in this form
-     * @type MixedCollection
-     */
-    this.items = new Ext.util.MixedCollection(false, function(o){
-        return o.id || (o.id = Ext.id());
-    });
-    this.addEvents({
-        /**
-         * @event beforeaction
-         * Fires before any action is performed. Return false to cancel the action.
-         * @param {Form} this
-         * @param {Action} action The action to be performed
-         */
-        beforeaction: true,
-        /**
-         * @event actionfailed
-         * Fires when an action fails
-         * @param {Form} this
-         * @param {Action} action The action that failed
-         */
-        actionfailed : true,
-        /**
-         * @event actioncomplete 
-         * Fires when an action is completed
-         * @param {Form} this
-         * @param {Action} action The action that completed
-         */
-        actioncomplete : true
-    });
-    if(el){
-        this.initEl(el);
-    }
-    Ext.form.BasicForm.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.form.BasicForm, Ext.util.Observable, {
-    /**
-     * @cfg {String} method
-     * The request method to use (GET or POST) for form actions if one isn't supplied in the action options
-     */
-// holder
-/***
-     * @cfg {DataReader} reader
-     * An Ext.data.DataReader (e.g. {@link Ext.data.XmlReader} to be used to read data when executing "load" actions.
-     * This is completely optional as there is built-in support for processing JSON.
-     */
-// holder
-/***
-     * @cfg {DataReader} errorReader
-     * An Ext.data.DataReader (e.g. {@link Ext.data.XmlReader} to be used to read data when reading validation errors on "submit" actions.
-     * This is completely optional as there is built-in support for processing JSON.
-     */
-// holder
-/***
-     * @cfg {String} url
-     * The url to use for form actions if one isn't supplied in the action options
-     */
-// holder
-/***
-     * @cfg {Boolean} fileUpload
-     * Set to true if this form is a file upload (YUI adapter only)
-     */
-// holder
-/***
-     * @cfg {Object} baseParams
-     * Parameters to pass with all requests. e.g. baseParams: {id: '123', foo: 'bar'}
-     */
-// holder
-/***
-     * @cfg {Number} timeout
-     */
-    timeout: 30,
-
-    // private
-    activeAction : null,
-
-    /**
-     * By default wait messages are displayed with Ext.MessageBox.wait. You can target a specific
-     * element by passing it or its id or mask the form itself by passing in true.
-     * @type Mixed
-     */
-    waitMsgTarget : undefined,
-
-    // private
-    initEl : function(el){
-        this.el = Ext.get(el);
-        this.id = this.el.id || Ext.id();
-        this.el.on('submit', this.onSubmit, this);
-        this.el.addClass('x-form');
-    },
-
-    // private
-    onSubmit : function(e){
-        e.stopEvent();
-    },
-
-    /**
-     * Returns true is client-side validation on the form is successful
-     * @return Boolean
-     */
-    isValid : function(){
-        var valid = true;
-        this.items.each(function(f){
-           if(!f.validate()){
-               valid = false;
-           }
-        });
-        return valid;
-    },
-
-    /**
-     * Performs a predefined action (submit or load) or custom actions you define on this form
-     * @param {String} actionName The name of the action type
-     * @param {Object} options The options to pass to the action
-     */
-    doAction : function(action, options){
-        if(typeof action == 'string'){
-            action = new Ext.form.Action.ACTION_TYPES[action](this, options);
-        }
-        if(this.fireEvent('beforeaction', this, action) !== false){
-            this.beforeAction(action);
-            action.run.defer(100, action);
-        }
-    },
-
-    /**
-     * Shortcut to do a submit action
-     * @param {Object} options The options to pass to the action
-     */
-    submit : function(options){
-        this.doAction('submit', options);
-    },
-
-    /**
-     * Shortcut to do a load action
-     * @param {Object} options The options to pass to the action
-     */
-    load : function(options){
-        this.doAction('load', options);
-    },
-
-    /**
-     * Persists the values in this form into the passed Ext.data.Record object in a beginEdit/endEdit block.
-     * @param {Record} record The record to edit
-     */
-    updateRecord : function(record){
-        record.beginEdit();
-        var fs = record.fields;
-        fs.each(function(f){
-            var field = this.findField(f.name);
-            if(field){
-                record.set(f.name, field.getValue());
-            }
-        }, this);
-        record.endEdit();
-    },
-
-    // private
-    beforeAction : function(action){
-        var o = action.options;
-        if(o.waitMsg){
-            if(this.waitMsgTarget === true){
-                this.el.mask(o.waitMsg, 'x-mask-loading');
-            }else if(this.waitMsgTarget){
-                this.waitMsgTarget = Ext.get(this.waitMsgTarget);
-                this.waitMsgTarget.mask(o.waitMsg, 'x-mask-loading');
-            }else{
-                Ext.MessageBox.wait(o.waitMsg, o.waitTitle || this.waitTitle || 'Please Wait...');
-            }
-        }
-    },
-
-    // private
-    afterAction : function(action, success){
-        this.activeAction = null;
-        var o = action.options;
-        if(o.waitMsg){
-            if(this.waitMsgTarget === true){
-                this.el.unmask();
-            }else if(this.waitMsgTarget){
-                this.waitMsgTarget.unmask();
-            }else{
-                Ext.MessageBox.updateProgress(1);
-                Ext.MessageBox.hide();
-            }
-        }
-        if(success){
-            if(o.reset){
-                this.reset();
-            }
-            Ext.callback(o.success, o.scope, [this, action]);
-            this.fireEvent('actioncomplete', this, action);
-        }else{
-            Ext.callback(o.failure, o.scope, [this, action]);
-            this.fireEvent('actionfailed', this, action);
-        }
-    },
-
-    /**
-     * Find a Ext.form.Field in this form by id, dataIndex, name or hiddenName
-     * @param {String} id The value to search for
-     * @return Field
-     */
-    findField : function(id){
-        var field = this.items.get(id);
-        if(!field){
-            this.items.each(function(f){
-                if(f.isFormField && (f.dataIndex == id || f.id == id || f.getName() == id)){
-                    field = f;
-                    return false;
-                }
-            });
-        }
-        return field || null;
-    },
-
-
-    /**
-     * Mark fields in this form invalid in bulk.
-     * @param {Array/Object} errors Either an array in the form [{id:'fieldId', msg:'The message'},...] or an object hash of {id: msg, id2: msg2}
-     */
-    markInvalid : function(errors){
-        if(errors instanceof Array){
-            for(var i = 0, len = errors.length; i < len; i++){
-                var fieldError = errors[i];
-                var f = this.findField(fieldError.id);
-                if(f){
-                    f.markInvalid(fieldError.msg);
-                }
-            }
-        }else{
-            var field, id;
-            for(id in errors){
-                if(typeof errors[id] != 'function' && (field = this.findField(id))){
-                    field.markInvalid(errors[id]);
-                }
-            }
-        }
-    },
-
-    /**
-     * Set values for fields in this form in bulk.
-     * @param {Array/Object} values Either an array in the form [{id:'fieldId', value:'foo'},...] or an object hash of {id: value, id2: value2}
-     */
-    setValues : function(values){
-        if(values instanceof Array){ // array of objects
-            for(var i = 0, len = values.length; i < len; i++){
-                var v = values[i];
-                var f = this.findField(v.id);
-                if(f){
-                    f.setValue(v.value);
-                }
-            }
-        }else{ // object hash
-            var field, id;
-            for(id in values){
-                if(typeof values[id] != 'function' && (field = this.findField(id))){
-                    field.setValue(values[id]);
-                }
-            }
-        }
-    },
-
-    /**
-     * Returns the fields in this form as an object with key value pair. If multiple fields exist with the same name
-     * they are returned as an array.
-     * @param {Boolean} asString
-     * @return {Object}
-     */
-    getValues : function(asString){
-        var fs = Ext.lib.Ajax.serializeForm(this.el.dom);
-        if(asString === true){
-            return fs;
-        }
-        return Ext.urlDecode(fs);
-    },
-
-    /**
-     * Clears all invalid messages in this form
-     */
-    clearInvalid : function(){
-        this.items.each(function(f){
-           f.clearInvalid();
-        });
-    },
-
-    /**
-     * Resets this form
-     */
-    reset : function(){
-        this.items.each(function(f){
-            f.reset();
-        });
-    },
-
-    /**
-     * Add Ext.form components to this form
-     * @param {Field} field1
-     * @param {Field} field2 (optional)
-     * @param {Field} etc (optional)
-     */
-    add : function(){
-        this.items.addAll(Array.prototype.slice.call(arguments, 0));
-    },
-
-
-    /**
-     * Removes a field from the items collection (does NOT remove its markup)
-     * @param {Field} field
-     */
-    remove : function(field){
-        this.items.remove(field);
-    },
-
-    /**
-     * Looks at the fields in this form, checks them for an id attribute
-     * and call applyTo on the existing dom element with that id
-     */
-    render : function(){
-        this.items.each(function(f){
-            if(f.isFormField && !f.rendered && document.getElementById(f.id)){ // if the element exists
-                f.applyTo(f.id);
-            }
-        });
-    },
-
-    /**
-     * Calls {@link Ext#apply} for all field in this form with the passed object
-     * @param {Object} values
-     */
-    applyToFields : function(o){
-        this.items.each(function(f){
-           Ext.apply(f, o);
-        });
-    },
-
-    /**
-     * Calls {@link Ext#applyIf} for all field in this form with the passed object
-     * @param {Object} values
-     */
-    applyIfToFields : function(o){
-        this.items.each(function(f){
-           Ext.applyIf(f, o);
-        });
-    }
-});
-
-// back compat
-Ext.BasicForm = Ext.form.BasicForm;

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/BasicLayoutRegion.jss.html b/www/extras/extjs/docs/output/BasicLayoutRegion.jss.html deleted file mode 100644 index 4f7f87848..000000000 --- a/www/extras/extjs/docs/output/BasicLayoutRegion.jss.html +++ /dev/null @@ -1,285 +0,0 @@ -BasicLayoutRegion.js

BasicLayoutRegion.js

/**
- * @class Ext.BasicLayoutRegion
- * @extends Ext.util.Observable
- * This class represents a lightweight region in a layout manager. This region does not move dom nodes
- * and does not have a titlebar, tabs or any other features. All it does is size and position 
- * panels. To create a BasicLayoutRegion, add lightweight:true or basic:true to your regions config.
- */
-Ext.BasicLayoutRegion = function(mgr, config, pos, skipConfig){
-    this.mgr = mgr;
-    this.position  = pos;
-    this.events = {
-        /**
-         * @event beforeremove
-         * Fires before a panel is removed (or closed). To cancel the removal set "e.cancel = true" on the event argument.
-         * @param {Ext.LayoutRegion} this
-         * @param {Ext.ContentPanel} panel The panel
-         * @param {Object} e The cancel event object
-         */
-        "beforeremove" : true,
-        /**
-         * @event invalidated
-         * Fires when the layout for this region is changed.
-         * @param {Ext.LayoutRegion} this
-         */
-        "invalidated" : true,
-        /**
-         * @event visibilitychange
-         * Fires when this region is shown or hidden 
-         * @param {Ext.LayoutRegion} this
-         * @param {Boolean} visibility true or false
-         */
-        "visibilitychange" : true,
-        /**
-         * @event paneladded
-         * Fires when a panel is added. 
-         * @param {Ext.LayoutRegion} this
-         * @param {Ext.ContentPanel} panel The panel
-         */
-        "paneladded" : true,
-        /**
-         * @event panelremoved
-         * Fires when a panel is removed. 
-         * @param {Ext.LayoutRegion} this
-         * @param {Ext.ContentPanel} panel The panel
-         */
-        "panelremoved" : true,
-        /**
-         * @event collapsed
-         * Fires when this region is collapsed.
-         * @param {Ext.LayoutRegion} this
-         */
-        "collapsed" : true,
-        /**
-         * @event expanded
-         * Fires when this region is expanded.
-         * @param {Ext.LayoutRegion} this
-         */
-        "expanded" : true,
-        /**
-         * @event slideshow
-         * Fires when this region is slid into view.
-         * @param {Ext.LayoutRegion} this
-         */
-        "slideshow" : true,
-        /**
-         * @event slidehide
-         * Fires when this region slides out of view. 
-         * @param {Ext.LayoutRegion} this
-         */
-        "slidehide" : true,
-        /**
-         * @event panelactivated
-         * Fires when a panel is activated. 
-         * @param {Ext.LayoutRegion} this
-         * @param {Ext.ContentPanel} panel The activated panel
-         */
-        "panelactivated" : true,
-        /**
-         * @event resized
-         * Fires when the user resizes this region. 
-         * @param {Ext.LayoutRegion} this
-         * @param {Number} newSize The new size (width for east/west, height for north/south)
-         */
-        "resized" : true
-    };
-    /** A collection of panels in this region. @type Ext.util.MixedCollection */
-    this.panels = new Ext.util.MixedCollection();
-    this.panels.getKey = this.getPanelId.createDelegate(this);
-    this.box = null;
-    this.activePanel = null;
-    if(skipConfig !== true){
-        this.applyConfig(config);
-    }
-};
-
-Ext.extend(Ext.BasicLayoutRegion, Ext.util.Observable, {
-    getPanelId : function(p){
-        return p.getId();
-    },
-    
-    applyConfig : function(config){
-        this.margins = config.margins || this.margins || {top: 0, left: 0, right:0, bottom: 0};
-        this.config = config;
-    },
-    
-    /**
-     * Resizes the region to the specified size. For vertical regions (west, east) this adjusts 
-     * the width, for horizontal (north, south) the height.
-     * @param {Number} newSize The new width or height
-     */
-    resizeTo : function(newSize){
-        var el = this.el ? this.el :
-                 (this.activePanel ? this.activePanel.getEl() : null);
-        if(el){
-            switch(this.position){
-                case "east":
-                case "west":
-                    el.setWidth(newSize);
-                    this.fireEvent("resized", this, newSize);
-                break;
-                case "north":
-                case "south":
-                    el.setHeight(newSize);
-                    this.fireEvent("resized", this, newSize);
-                break;                
-            }
-        }
-    },
-    
-    getBox : function(){
-        return this.activePanel ? this.activePanel.getEl().getBox(false, true) : null;
-    },
-    
-    getMargins : function(){
-        return this.margins;
-    },
-    
-    updateBox : function(box){
-        this.box = box;
-        var el = this.activePanel.getEl();
-        el.dom.style.left = box.x + "px";
-        el.dom.style.top = box.y + "px";
-        this.activePanel.setSize(box.width, box.height);
-    },
-    
-    /**
-     * Returns the container element for this region.
-     * @return {Ext.Element}
-     */
-    getEl : function(){
-        return this.activePanel;
-    },
-    
-    /**
-     * Returns true if this region is currently visible.
-     * @return {Boolean}
-     */
-    isVisible : function(){
-        return this.activePanel ? true : false;
-    },
-    
-    setActivePanel : function(panel){
-        panel = this.getPanel(panel);
-        if(this.activePanel && this.activePanel != panel){
-            this.activePanel.setActiveState(false);
-            this.activePanel.getEl().setLeftTop(-10000,-10000);
-        }
-        this.activePanel = panel;
-        panel.setActiveState(true);
-        if(this.box){
-            panel.setSize(this.box.width, this.box.height);
-        }
-        this.fireEvent("panelactivated", this, panel);
-        this.fireEvent("invalidated");
-    },
-    
-    /**
-     * Show the specified panel.
-     * @param {Number/String/ContentPanel} panelId The panels index, id or the panel itself
-     * @return {Ext.ContentPanel} The shown panel or null
-     */
-    showPanel : function(panel){
-        if(panel = this.getPanel(panel)){
-            this.setActivePanel(panel);
-        }
-        return panel;
-    },
-    
-    /**
-     * Get the active panel for this region.
-     * @return {Ext.ContentPanel} The active panel or null
-     */
-    getActivePanel : function(){
-        return this.activePanel;
-    },
-    
-    /**
-     * Add the passed ContentPanel(s)
-     * @param {ContentPanel...} panel The ContentPanel(s) to add (you can pass more than one)
-     * @return {Ext.ContentPanel} The panel added (if only one was added)
-     */
-    add : function(panel){
-        if(arguments.length > 1){
-            for(var i = 0, len = arguments.length; i < len; i++) {
-            	this.add(arguments[i]);
-            }
-            return null;
-        }
-        if(this.hasPanel(panel)){
-            this.showPanel(panel);
-            return panel;
-        }
-        var el = panel.getEl();
-        if(el.dom.parentNode != this.mgr.el.dom){
-            this.mgr.el.dom.appendChild(el.dom);
-        }
-        if(panel.setRegion){
-            panel.setRegion(this);
-        }
-        this.panels.add(panel);
-        el.setStyle("position", "absolute");
-        if(!panel.background){
-            this.setActivePanel(panel);
-            if(this.config.initialSize && this.panels.getCount()==1){
-                this.resizeTo(this.config.initialSize);
-            }
-        }
-        this.fireEvent("paneladded", this, panel);
-        return panel;
-    },
-    
-    /**
-     * Returns true if the panel is in this region.
-     * @param {Number/String/ContentPanel} panel The panels index, id or the panel itself
-     * @return {Boolean}
-     */
-    hasPanel : function(panel){
-        if(typeof panel == "object"){ // must be panel obj
-            panel = panel.getId();
-        }
-        return this.getPanel(panel) ? true : false;
-    },
-    
-    /**
-     * Removes the specified panel. If preservePanel is not true (either here or in the config), the panel is destroyed.
-     * @param {Number/String/ContentPanel} panel The panels index, id or the panel itself
-     * @param {Boolean} preservePanel Overrides the config preservePanel option
-     * @return {Ext.ContentPanel} The panel that was removed
-     */
-    remove : function(panel, preservePanel){
-        panel = this.getPanel(panel);
-        if(!panel){
-            return null;
-        }
-        var e = {};
-        this.fireEvent("beforeremove", this, panel, e);
-        if(e.cancel === true){
-            return null;
-        }
-        var panelId = panel.getId();
-        this.panels.removeKey(panelId);
-        return panel;
-    },
-    
-    /**
-     * Returns the panel specified or null if it's not in this region.
-     * @param {Number/String/ContentPanel} panel The panels index, id or the panel itself
-     * @return {Ext.ContentPanel}
-     */
-    getPanel : function(id){
-        if(typeof id == "object"){ // must be panel obj
-            return id;
-        }
-        return this.panels.get(id);
-    },
-    
-    /**
-     * Returns this regions position (north/south/east/west/center).
-     * @return {String} 
-     */
-    getPosition: function(){
-        return this.position;    
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/BorderLayout.jss.html b/www/extras/extjs/docs/output/BorderLayout.jss.html deleted file mode 100644 index a8f5fd3b1..000000000 --- a/www/extras/extjs/docs/output/BorderLayout.jss.html +++ /dev/null @@ -1,538 +0,0 @@ -BorderLayout.js

BorderLayout.js

/*
-Ext.layout.BorderLayout = function(cfg){
-    for(var r in cfg){
-        if(typeof cfg[r] == 'object'){
-            Ext.apply(cfg[r], this.regionDefaults);
-        }
-    }
-    this.layoutConfig = cfg;
-};
-
-Ext.extend(Ext.layout.BorderLayout, Ext.layout.ContainerLayout, {
-    regionDefaults : {
-        titlebar:false,
-        autoScroll:false
-    },
-    renderLayout : function(el){
-        this.sublayout = new Ext.BorderLayout(el, this.layoutConfig);
-    },
-
-    onLayout : function(ct, target){
-        if(!this.sublayout){
-            this.renderLayout();
-        }
-        var items = ct.items.items;
-        for(var i = 0, len = items.length; i < len; i++) {
-            var c = items[i];
-            if(!c.rendered){
-                c.render(target, i);
-                if(this.renderHidden && c != this.activeItem){
-                    c.hide();
-                }
-            }
-        }
-
-    }
-});*/
-
-
-
-
-Ext.layout.BorderLayout = function(config){
-    Ext.layout.BorderLayout.superclass.constructor.call(this, config);
-};
-
-Ext.extend(Ext.layout.BorderLayout, Ext.layout.ContainerLayout, {
-    monitorResize:true,
-    rendered : false,
-
-    onLayout : function(ct, target){
-        if(!this.rendered){
-            target.position();
-            target.addClass('x-border-layout-ct');
-            var items = ct.items.items;
-            for(var i = 0, len = items.length; i < len; i++) {
-                var c = items[i];
-                var pos = c.region;
-                var collapsed = c.collapsed;
-                c.collapsed = false;
-                if(!c.rendered){
-                    c.cls = c.cls ? c.cls +' x-border-panel' : 'x-border-panel';
-                    c.render(target, i);
-                }
-                this[pos] = pos != 'center' && c.split ?
-                    new Ext.layout.BorderLayout.SplitRegion(this, c.initialConfig, pos) :
-                    new Ext.layout.BorderLayout.Region(this, c.initialConfig, pos);
-                this[pos].render(ct, c);
-                if(collapsed){
-                    this[pos].onCollapse(c, false);
-                }
-            }
-            this.rendered = true;
-        }
-
-        var size = target.getViewSize();
-        var w = size.width, h = size.height;
-        var centerW = w, centerH = h, centerY = 0, centerX = 0;
-
-        var n = this.north, s = this.south, west = this.west, e = this.east, c = this.center;
-        if(n && n.isVisible()){
-            var b = n.getSize();
-            var m = n.getMargins();
-            b.width = w - (m.left+m.right);
-            b.x = m.left;
-            b.y = m.top;
-            centerY = b.height + b.y + m.bottom;
-            centerH -= centerY;
-            n.applyLayout(b);
-        }
-        if(s && s.isVisible()){
-            var b = s.getSize();
-            var m = s.getMargins();
-            b.width = w - (m.left+m.right);
-            b.x = m.left;
-            var totalHeight = (b.height + m.top + m.bottom);
-            b.y = h - totalHeight + m.top;
-            centerH -= totalHeight;
-            s.applyLayout(b);
-        }
-        if(west && west.isVisible()){
-            var b = west.getSize();
-            var m = west.getMargins();
-            b.height = centerH - (m.top+m.bottom);
-            b.x = m.left;
-            b.y = centerY + m.top;
-            var totalWidth = (b.width + m.left + m.right);
-            centerX += totalWidth;
-            centerW -= totalWidth;
-            west.applyLayout(b);
-        }
-        if(e && e.isVisible()){
-            var b = e.getSize();
-            var m = e.getMargins();
-            b.height = centerH - (m.top+m.bottom);
-            var totalWidth = (b.width + m.left + m.right);
-            b.x = w - totalWidth + m.left;
-            b.y = centerY + m.top;
-            centerW -= totalWidth;
-            e.applyLayout(b);
-        }
-
-        var m = c.getMargins();
-        var centerBox = {
-            x: centerX + m.left,
-            y: centerY + m.top,
-            width: centerW - (m.left+m.right),
-            height: centerH - (m.top+m.bottom)
-        };
-        c.applyLayout(centerBox);
-
-        //target.repaint();
-    }
-});
-
-Ext.layout.BorderLayout.Region = function(layout, config, pos){
-    this.layout = layout;
-    this.position = pos;
-    Ext.apply(this, config);
-    this.margins = Ext.applyIf(this.margins || {}, this.defaultMargins[pos]);
-    if(this.collapsible){
-        this.cmargins = Ext.applyIf(this.cmargins || {}, this.defaultMargins[pos]);
-    }
-};
-
-Ext.layout.BorderLayout.Region.prototype = {
-    collapsible : false,
-    split:false,
-    floatable: false,
-    showPin: false,
-    collapsed : false,
-    defaultMargins : {
-        'north': {top:5,left:5,right:5,bottom:0},
-        'south': {top:0,left:5,right:5,bottom:5},
-        'east': {top:5,left:0,right:5,bottom:5},
-        'west': {top:5,left:5,right:0,bottom:5},
-        'center': {top:5,left:5,right:5,bottom:5}
-    },
-    minWidth:20,
-    minHeight:20,
-
-    render : function(ct, p){
-        this.panel = p;
-        this.el = p.el;
-        if(this.position != 'center'){
-            p.on({
-                beforecollapse: this.onCollapse,
-                beforeexpand: this.onExpand,
-                hide: this.onHide,
-                show: this.onShow,
-                scope: this
-            });
-            if(p.tools && p.tools.collapse){
-                p.tools.collapse.addClass('x-tool-collapse-'+this.position);
-            }
-        }
-    },
-
-    onCollapse : function(){
-        return false;
-    },
-
-    onExpand : function(){
-        return false;
-    },
-
-    onHide : function(){
-
-    },
-
-    onShow : function(){
-
-    },
-
-    isVisible : function(){
-        return !this.panel.hidden;
-    },
-
-    getMargins : function(){
-        return this.collapsed ? this.cmargins : this.margins;
-    },
-
-    getSize : function(){
-        return this.collapsed ? this.collapsedEl.getSize() : this.panel.getSize();
-    },
-
-    setPanel : function(panel){
-        this.panel = panel;
-
-    },
-
-    getMinWidth: function(){
-        return this.minWidth;
-    },
-
-    getMinHeight: function(){
-        return this.minHeight;
-    },
-
-    applyLayout : function(box){
-        this.panel.setPosition(box.x, box.y);
-        this.panel.setSize(box.width, box.height);
-    }
-};
-
-
-Ext.layout.BorderLayout.SplitRegion = function(layout, config, pos){
-    Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this, layout, config, pos);
-};
-
-Ext.extend(Ext.layout.BorderLayout.SplitRegion, Ext.layout.BorderLayout.Region, {
-    splitTip : "Drag to resize.",
-    collapsibleSplitTip : "Drag to resize. Double click to hide.",
-    useSplitTips : false,
-
-    render : function(ct, p){
-        Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this, ct, p);
-        this.splitEl = ct.createChild({
-            cls: "x-layout-split x-layout-split-"+this.position, html: "&#160;"
-        });
-        this.split = new Ext.SplitBar(this.splitEl.dom, p.el, this.orientation);
-        this.split.on("beforeapply", this.onSplitMove, this);
-        this.split.useShim = this.useShim === true;
-        this.split.getMaximumSize = this[this.position == 'north' || this.position == 'south' ?
-                                         'getVMaxSize' : 'getHMaxSize'].createDelegate(this);
-        if(this.useSplitTips){
-            this.splitEl.dom.title = this.collapsible ? this.collapsibleSplitTip : this.splitTip;
-        }
-        if(this.collapsible){
-            this.splitEl.on("dblclick", this.collapse,  this);
-        }
-
-        switch(this.position){
-            case 'north':
-                this.split.placement = Ext.SplitBar.BOTTOM;
-                this.split.orientation = Ext.SplitBar.VERTICAL;
-                this.split.el.addClass("x-layout-split-v");
-            break;
-            case 'south':
-                this.split.placement = Ext.SplitBar.TOP;
-                this.split.orientation = Ext.SplitBar.VERTICAL;
-                this.split.el.addClass("x-layout-split-v");
-            break;
-            case 'east':
-                this.split.placement = Ext.SplitBar.RIGHT;
-                this.split.orientation = Ext.SplitBar.HORIZONTAL;
-                this.split.el.addClass("x-layout-split-h");
-            break;
-            case 'west':
-                this.split.placement = Ext.SplitBar.LEFT;
-                this.split.orientation = Ext.SplitBar.HORIZONTAL;
-                this.split.el.addClass("x-layout-split-h");
-            break;
-        }
-    },
-
-    getHMaxSize : function(){
-         var cmax = this.maxSize || 10000;
-         var center = this.layout.center;
-         return Math.min(cmax, (this.el.getWidth()+center.el.getWidth())-center.getMinWidth());
-    },
-
-    getVMaxSize : function(){
-         var cmax = this.config.maxSize || 10000;
-         var center = this.mgr.getRegion("center");
-         return Math.min(cmax, (this.el.getHeight()+center.getEl().getHeight())-center.getMinHeight());
-    },
-
-    onSplitMove : function(split, newSize){
-        var s = this.panel.getSize();
-        if(this.position == 'north' || this.position == 'south'){
-            this.panel.setSize(s.width, newSize);
-        }else{
-            this.panel.setSize(newSize, s.height);
-        }
-        this.layout.layout();
-    },
-
-    getSplitBar : function(){
-        return this.split;
-    },
-
-    beforeSlide: function(){
-        /*if(Ext.isGecko){// firefox overflow auto bug workaround
-            this.bodyEl.clip();
-            if(this.tabs) this.tabs.bodyEl.clip();
-            if(this.activePanel){
-                this.activePanel.getEl().clip();
-
-                if(this.activePanel.beforeSlide){
-                    this.activePanel.beforeSlide();
-                }
-            }
-        }*/
-    },
-
-    afterSlide : function(){
-        /*if(Ext.isGecko){// firefox overflow auto bug workaround
-            this.bodyEl.unclip();
-            if(this.tabs) this.tabs.bodyEl.unclip();
-            if(this.activePanel){
-                this.activePanel.getEl().unclip();
-                if(this.activePanel.afterSlide){
-                    this.activePanel.afterSlide();
-                }
-            }
-        }*/
-    },
-
-    initAutoHide : function(){
-        if(this.autoHide !== false){
-            if(!this.autoHideHd){
-                var st = new Ext.util.DelayedTask(this.slideIn, this);
-                this.autoHideHd = {
-                    "mouseout": function(e){
-                        if(!e.within(this.el, true)){
-                            st.delay(500);
-                        }
-                    },
-                    "mouseover" : function(e){
-                        st.cancel();
-                    },
-                    scope : this
-                };
-            }
-            this.el.on(this.autoHideHd);
-        }
-    },
-
-    clearAutoHide : function(){
-        if(this.autoHide !== false){
-            this.el.un("mouseout", this.autoHideHd.mouseout);
-            this.el.un("mouseover", this.autoHideHd.mouseover);
-        }
-    },
-
-    clearMonitor : function(){
-        Ext.get(document).un("click", this.slideInIf, this);
-    },
-
-    // these names are backwards but not changed for compat
-    slideOut : function(){
-        if(this.isSlid || this.el.hasActiveFx()){
-            return;
-        }
-        this.isSlid = true;
-        if(this.collapseBtn){
-            this.collapseBtn.hide();
-        }
-        this.closeBtnState = this.closeBtn.getStyle('display');
-        this.closeBtn.hide();
-        if(this.stickBtn){
-            this.stickBtn.show();
-        }
-        this.el.show();
-        this.el.alignTo(this.collapsedEl, this.getCollapseAnchor());
-        this.beforeSlide();
-        this.el.setStyle("z-index", 20000);
-        this.el.slideIn(this.getSlideAnchor(), {
-            callback: function(){
-                this.afterSlide();
-                this.initAutoHide();
-                Ext.get(document).on("click", this.slideInIf, this);
-                this.fireEvent("slideshow", this);
-            },
-            scope: this,
-            block: true
-        });
-    },
-
-    afterSlideIn : function(){
-        this.clearAutoHide();
-        this.isSlid = false;
-        this.clearMonitor();
-        this.el.setStyle("z-index", "");
-        if(this.collapseBtn){
-            this.collapseBtn.show();
-        }
-        this.closeBtn.setStyle('display', this.closeBtnState);
-        if(this.stickBtn){
-            this.stickBtn.hide();
-        }
-        this.fireEvent("slidehide", this);
-    },
-
-    slideIn : function(cb){
-        if(!this.isSlid || this.el.hasActiveFx()){
-            Ext.callback(cb);
-            return;
-        }
-        this.isSlid = false;
-        this.beforeSlide();
-        this.el.slideOut(this.getSlideAnchor(), {
-            callback: function(){
-                this.el.setLeftTop(-10000, -10000);
-                this.afterSlide();
-                this.afterSlideIn();
-                Ext.callback(cb);
-            },
-            scope: this,
-            block: true
-        });
-    },
-
-    slideInIf : function(e){
-        if(!e.within(this.el)){
-            this.slideIn();
-        }
-    },
-
-    animateCollapse : function(){
-        this.beforeSlide();
-        this.el.setStyle("z-index", 20000);
-        var anchor = this.getSlideAnchor();
-        this.el.slideOut(anchor, {
-            callback : function(){
-                this.el.setStyle("z-index", "");
-                this.collapsedEl.slideIn(anchor, {duration:.3});
-                this.afterSlide();
-                this.el.setLocation(-10000,-10000);
-                this.el.hide();
-                this.fireEvent("collapsed", this);
-            },
-            scope: this,
-            block: true
-        });
-    },
-
-    animateExpand : function(){
-        this.beforeSlide();
-        this.el.alignTo(this.collapsedEl, this.getCollapseAnchor(), this.getExpandAdj());
-        this.el.setStyle("z-index", 20000);
-        this.collapsedEl.hide({
-            duration:.1
-        });
-        this.el.slideIn(this.getSlideAnchor(), {
-            callback : function(){
-                this.el.setStyle("z-index", "");
-                this.afterSlide();
-                if(this.split){
-                    this.split.el.show();
-                }
-                this.fireEvent("invalidated", this);
-                this.fireEvent("expanded", this);
-            },
-            scope: this,
-            block: true
-        });
-    },
-
-    anchors : {
-        "west" : "left",
-        "east" : "right",
-        "north" : "top",
-        "south" : "bottom"
-    },
-
-    sanchors : {
-        "west" : "l",
-        "east" : "r",
-        "north" : "t",
-        "south" : "b"
-    },
-
-    canchors : {
-        "west" : "tl-tr",
-        "east" : "tr-tl",
-        "north" : "tl-bl",
-        "south" : "bl-tl"
-    },
-
-    getAnchor : function(){
-        return this.anchors[this.position];
-    },
-
-    getCollapseAnchor : function(){
-        return this.canchors[this.position];
-    },
-
-    getSlideAnchor : function(){
-        return this.sanchors[this.position];
-    },
-
-    getAlignAdj : function(){
-        var cm = this.cmargins;
-        switch(this.position){
-            case "west":
-                return [0, 0];
-            break;
-            case "east":
-                return [0, 0];
-            break;
-            case "north":
-                return [0, 0];
-            break;
-            case "south":
-                return [0, 0];
-            break;
-        }
-    },
-
-    getExpandAdj : function(){
-        var c = this.collapsedEl, cm = this.cmargins;
-        switch(this.position){
-            case "west":
-                return [-(cm.right+c.getWidth()+cm.left), 0];
-            break;
-            case "east":
-                return [cm.right+c.getWidth()+cm.left, 0];
-            break;
-            case "north":
-                return [0, -(cm.top+cm.bottom+c.getHeight())];
-            break;
-            case "south":
-                return [0, cm.top+cm.bottom+c.getHeight()];
-            break;
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/BorderLayoutRegions.jss.html b/www/extras/extjs/docs/output/BorderLayoutRegions.jss.html deleted file mode 100644 index 521c43170..000000000 --- a/www/extras/extjs/docs/output/BorderLayoutRegions.jss.html +++ /dev/null @@ -1,195 +0,0 @@ -BorderLayoutRegions.js

BorderLayoutRegions.js

/*
- * These classes are private internal classes
- */
-Ext.CenterLayoutRegion = function(mgr, config){
-    Ext.CenterLayoutRegion.superclass.constructor.call(this, mgr, config, "center");
-    this.visible = true;
-    this.minWidth = config.minWidth || 20;
-    this.minHeight = config.minHeight || 20;
-};
-
-Ext.extend(Ext.CenterLayoutRegion, Ext.LayoutRegion, {
-    hide : function(){
-        // center panel can't be hidden
-    },
-    
-    show : function(){
-        // center panel can't be hidden
-    },
-    
-    getMinWidth: function(){
-        return this.minWidth;
-    },
-    
-    getMinHeight: function(){
-        return this.minHeight;
-    }
-});
-
-
-Ext.NorthLayoutRegion = function(mgr, config){
-    Ext.NorthLayoutRegion.superclass.constructor.call(this, mgr, config, "north", "n-resize");
-    if(this.split){
-        this.split.placement = Ext.SplitBar.TOP;
-        this.split.orientation = Ext.SplitBar.VERTICAL;
-        this.split.el.addClass("x-layout-split-v");
-    }
-    var size = config.initialSize || config.height;
-    if(typeof size != "undefined"){
-        this.el.setHeight(size);
-    }
-};
-Ext.extend(Ext.NorthLayoutRegion, Ext.SplitLayoutRegion, {
-    orientation: Ext.SplitBar.VERTICAL,
-    getBox : function(){
-        if(this.collapsed){
-            return this.collapsedEl.getBox();
-        }
-        var box = this.el.getBox();
-        if(this.split){
-            box.height += this.split.el.getHeight();
-        }
-        return box;
-    },
-    
-    updateBox : function(box){
-        if(this.split && !this.collapsed){
-            box.height -= this.split.el.getHeight();
-            this.split.el.setLeft(box.x);
-            this.split.el.setTop(box.y+box.height);
-            this.split.el.setWidth(box.width);
-        }
-        if(this.collapsed){
-            this.updateBody(box.width, null);
-        }
-        Ext.NorthLayoutRegion.superclass.updateBox.call(this, box);
-    }
-});
-
-Ext.SouthLayoutRegion = function(mgr, config){
-    Ext.SouthLayoutRegion.superclass.constructor.call(this, mgr, config, "south", "s-resize");
-    if(this.split){
-        this.split.placement = Ext.SplitBar.BOTTOM;
-        this.split.orientation = Ext.SplitBar.VERTICAL;
-        this.split.el.addClass("x-layout-split-v");
-    }
-    var size = config.initialSize || config.height;
-    if(typeof size != "undefined"){
-        this.el.setHeight(size);
-    }
-};
-Ext.extend(Ext.SouthLayoutRegion, Ext.SplitLayoutRegion, {
-    orientation: Ext.SplitBar.VERTICAL,
-    getBox : function(){
-        if(this.collapsed){
-            return this.collapsedEl.getBox();
-        }
-        var box = this.el.getBox();
-        if(this.split){
-            var sh = this.split.el.getHeight();
-            box.height += sh;
-            box.y -= sh;
-        }
-        return box;
-    },
-    
-    updateBox : function(box){
-        if(this.split && !this.collapsed){
-            var sh = this.split.el.getHeight();
-            box.height -= sh;
-            box.y += sh;
-            this.split.el.setLeft(box.x);
-            this.split.el.setTop(box.y-sh);
-            this.split.el.setWidth(box.width);
-        }
-        if(this.collapsed){
-            this.updateBody(box.width, null);
-        }
-        Ext.SouthLayoutRegion.superclass.updateBox.call(this, box);
-    }
-});
-
-Ext.EastLayoutRegion = function(mgr, config){
-    Ext.EastLayoutRegion.superclass.constructor.call(this, mgr, config, "east", "e-resize");
-    if(this.split){
-        this.split.placement = Ext.SplitBar.RIGHT;
-        this.split.orientation = Ext.SplitBar.HORIZONTAL;
-        this.split.el.addClass("x-layout-split-h");
-    }
-    var size = config.initialSize || config.width;
-    if(typeof size != "undefined"){
-        this.el.setWidth(size);
-    }
-};
-Ext.extend(Ext.EastLayoutRegion, Ext.SplitLayoutRegion, {
-    orientation: Ext.SplitBar.HORIZONTAL,
-    getBox : function(){
-        if(this.collapsed){
-            return this.collapsedEl.getBox();
-        }
-        var box = this.el.getBox();
-        if(this.split){
-            var sw = this.split.el.getWidth();
-            box.width += sw;
-            box.x -= sw;
-        }
-        return box;
-    },
-
-    updateBox : function(box){
-        if(this.split && !this.collapsed){
-            var sw = this.split.el.getWidth();
-            box.width -= sw;
-            this.split.el.setLeft(box.x);
-            this.split.el.setTop(box.y);
-            this.split.el.setHeight(box.height);
-            box.x += sw;
-        }
-        if(this.collapsed){
-            this.updateBody(null, box.height);
-        }
-        Ext.EastLayoutRegion.superclass.updateBox.call(this, box);
-    }
-});
-
-Ext.WestLayoutRegion = function(mgr, config){
-    Ext.WestLayoutRegion.superclass.constructor.call(this, mgr, config, "west", "w-resize");
-    if(this.split){
-        this.split.placement = Ext.SplitBar.LEFT;
-        this.split.orientation = Ext.SplitBar.HORIZONTAL;
-        this.split.el.addClass("x-layout-split-h");
-    }
-    var size = config.initialSize || config.width;
-    if(typeof size != "undefined"){
-        this.el.setWidth(size);
-    }
-};
-Ext.extend(Ext.WestLayoutRegion, Ext.SplitLayoutRegion, {
-    orientation: Ext.SplitBar.HORIZONTAL,
-    getBox : function(){
-        if(this.collapsed){
-            return this.collapsedEl.getBox();
-        }
-        var box = this.el.getBox();
-        if(this.split){
-            box.width += this.split.el.getWidth();
-        }
-        return box;
-    },
-    
-    updateBox : function(box){
-        if(this.split && !this.collapsed){
-            var sw = this.split.el.getWidth();
-            box.width -= sw;
-            this.split.el.setLeft(box.x+box.width);
-            this.split.el.setTop(box.y);
-            this.split.el.setHeight(box.height);
-        }
-        if(this.collapsed){
-            this.updateBody(null, box.height);
-        }
-        Ext.WestLayoutRegion.superclass.updateBox.call(this, box);
-    }
-});
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/BoxComponent.jss.html b/www/extras/extjs/docs/output/BoxComponent.jss.html deleted file mode 100644 index dd4f84853..000000000 --- a/www/extras/extjs/docs/output/BoxComponent.jss.html +++ /dev/null @@ -1,165 +0,0 @@ -BoxComponent.js

BoxComponent.js

Ext.BoxComponent = function(config){
-    Ext.BoxComponent.superclass.constructor.call(this, config);
-    this.addEvents({
-        resize : true,
-        move : true
-    });
-};
-
-Ext.extend(Ext.BoxComponent, Ext.Component, {
-    boxReady : false,
-    // private, used to defer height settings to subclasses
-    deferHeight: false,
-
-    setSize : function(w, h){
-        // support for standard size objects
-        if(typeof w == 'object'){
-            h = w.height;
-            w = w.width;
-        }
-        // not rendered
-        if(!this.boxReady){
-            this.width = w;
-            this.height = h;
-            return;
-        }
-
-        // prevent recalcs when not needed
-        if(this.lastSize && this.lastSize.width == w && this.lastSize.height == h){
-            return;
-        }
-        this.lastSize = {width: w, height: h};
-
-        var adj = this.adjustSize(w, h);
-        var aw = adj.width, ah = adj.height;
-        if(aw !== undefined || ah !== undefined){ // this code is nasty but performs better with floaters
-            var rz = this.getResizeEl();
-            if(!this.deferHeight && aw !== undefined && ah !== undefined){
-                rz.setSize(aw, ah);
-            }else if(!this.deferHeight && ah !== undefined){
-                rz.setHeight(ah);
-            }else if(aw !== undefined){
-                rz.setWidth(aw);
-            }
-            this.onResize(aw, ah, w, h);
-            this.fireEvent('resize', this, aw, ah, w, h);
-        }
-        return this;
-    },
-
-    getSize : function(){
-        return this.el.getSize();
-    },
-
-    getPosition : function(local){
-        if(local === true){
-            return [this.el.getLeft(true), this.el.getTop(true)];
-        }
-        return this.xy || this.el.getXY();
-    },
-
-    getBox : function(local){
-        var s = this.el.getSize();
-        if(local){
-            s.x = this.el.getLeft(true);
-            s.y = this.el.getTop(true);
-        }else{
-            var xy = this.xy || this.el.getXY();
-            s.x = xy[0];
-            s.y = xy[1];
-        }
-        return s;
-    },
-
-    updateBox : function(box){
-        this.setSize(box.width, box.height);
-        this.setPagePosition(box.x, box.y);
-    },
-
-    getResizeEl : function(){
-        return this.resizeEl || this.el;
-    },
-
-    setPosition : function(x, y){
-        this.x = x;
-        this.y = y;
-        if(!this.boxReady){
-            return;
-        }
-        var adj = this.adjustPosition(x, y);
-        var ax = adj.x, ay = adj.y;
-
-        if(ax !== undefined || ay !== undefined){
-            if(ax !== undefined && ay !== undefined){
-                this.el.setLeftTop(ax, ay);
-            }else if(ax !== undefined){
-                this.el.setLeft(ax);
-            }else if(ay !== undefined){
-                this.el.setTop(ay);
-            }
-            this.onPosition(ax, ay);
-            this.fireEvent('move', this, ax, ay);
-        }
-        return this;
-    },
-
-    setPagePosition : function(x, y){
-        this.pageX = x;
-        this.pageY = y;
-        if(!this.boxReady){
-            return;
-        }
-        if(x === undefined || y === undefined){ // cannot translate undefined points
-            return;
-        }
-        var p = this.el.translatePoints(x, y);
-        this.setPosition(p.left, p.top);
-        return this;
-    },
-
-    onRender : function(ct, position){
-        Ext.BoxComponent.superclass.onRender.call(this, ct, position);
-        if(this.resizeEl){
-            this.resizeEl = Ext.get(this.resizeEl);
-        }
-    },
-
-    afterRender : function(){
-        Ext.BoxComponent.superclass.afterRender.call(this);
-        this.boxReady = true;
-        this.setSize(this.width, this.height);
-        if(this.x || this.y){
-            this.setPosition(this.x, this.y);
-        }
-        if(this.pageX || this.pageY){
-            this.setPagePosition(this.pageX, this.pageY);
-        }
-    },
-
-    syncSize : function(){
-        this.setSize(this.el.getWidth(), this.el.getHeight());
-    },
-
-    onResize : function(adjWidth, adjHeight, rawWidth, rawHeight){
-
-    },
-
-    onPosition : function(x, y){
-
-    },
-
-    adjustSize : function(w, h){
-        if(this.autoWidth){
-            w = 'auto';
-        }
-        if(this.autoHeight){
-            h = 'auto';
-        }
-        return {width : w, height: h};
-    },
-
-    adjustPosition : function(x, y){
-        return {x : x, y: y};
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Button.jss.html b/www/extras/extjs/docs/output/Button.jss.html deleted file mode 100644 index 665274035..000000000 --- a/www/extras/extjs/docs/output/Button.jss.html +++ /dev/null @@ -1,455 +0,0 @@ -Button.js

Button.js

/**
- * @class Ext.Button
- * @extends Ext.util.Observable
- * Simple Button class
- * @cfg {String} text The button text
- * @cfg {String} icon The path to an image to display in the button (the image will be set as the background-image
- * CSS property of the button by default, so if you want a mixed icon/text button, set cls:"x-btn-text-icon")
- * @cfg {Function} handler A function called when the button is clicked (can be used instead of click event)
- * @cfg {Object} scope The scope of the handler
- * @cfg {Number} minWidth The minimum width for this button (used to give a set of buttons a common width)
- * @cfg {String/Object} tooltip The tooltip for the button - can be a string or QuickTips config object
- * @cfg {Boolean} hidden True to start hidden (defaults to false)
- * @cfg {Boolean} disabled True to start disabled (defaults to false)
- * @cfg {Boolean} pressed True to start pressed (only if enableToggle = true)
- * @cfg {String} toggleGroup The group this toggle button is a member of (only 1 per group can be pressed, only
- * applies if enableToggle = true)
- * @cfg {Boolean/Object} repeat True to repeat fire the click event while the mouse is down. This can also be
-  an {@link Ext.util.ClickRepeater} config object (defaults to false).
- * @constructor
- * Create a new button
- * @param {String/HTMLElement/Element} renderTo The element to append the button to
- * @param {Object} config The config object
- */
-Ext.Button = function(renderTo, config){
-    Ext.apply(this, config);
-    this.addEvents({
-        /**
-	     * @event click
-	     * Fires when this button is clicked
-	     * @param {Button} this
-	     * @param {EventObject} e The click event
-	     */
-	    "click" : true,
-        /**
-	     * @event toggle
-	     * Fires when the "pressed" state of this button changes (only if enableToggle = true)
-	     * @param {Button} this
-	     * @param {Boolean} pressed
-	     */
-	    "toggle" : true,
-        /**
-	     * @event mouseover
-	     * Fires when the mouse hovers over the button
-	     * @param {Button} this
-	     * @param {Event} e The event object
-	     */
-        'mouseover' : true,
-        /**
-	     * @event mouseout
-	     * Fires when the mouse exits the button
-	     * @param {Button} this
-	     * @param {Event} e The event object
-	     */
-        'mouseout': true
-    });
-    if(this.menu){
-        this.menu = Ext.menu.MenuMgr.get(this.menu);
-    }
-    if(renderTo){
-        this.render(renderTo);
-    }
-    Ext.Button.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.Button, Ext.util.Observable, {
-    /**
-     * Read-only. True if this button is hidden
-     * @type Boolean
-     */
-    hidden : false,
-    /**
-     * Read-only. True if this button is disabled
-     * @type Boolean
-     */
-    disabled : false,
-    /**
-     * Read-only. True if this button is pressed (only if enableToggle = true)
-     * @type Boolean
-     */
-    pressed : false,
-
-    /**
-     * @cfg {Boolean} enableToggle
-     * True to enable pressed/not pressed toggling (defaults to false)
-     */
-    enableToggle: false,
-    /**
-     * @cfg {Mixed} menu
-     * Standard menu attribute consisting of a reference to a menu object, a menu id or a menu config blob
-     */
-    menu : undefined,
-    /**
-     * @cfg {String} menuAlign
-     * The position to align the menu to (see {@link Ext.Element#alignTo} for more details, defaults to 'tl-bl?').
-     */
-    menuAlign : "tl-bl?",
-
-    // private
-    menuClassTarget: 'tr',
-
-    clickEvent : 'click',
-    handleMouseEvents : true,
-
-    /**
-     * @cfg {String} tooltipType
-     * The type of tooltip to use. Either "qtip" for QuickTips or "title" for title attribute.
-     */
-    tooltipType : 'qtip',
-
-    // private
-    render : function(renderTo){
-        var btn;
-        if(this.hideParent){
-            this.parentEl = Ext.get(renderTo);
-        }
-        if(!this.dhconfig){
-            if(!this.template){
-                if(!Ext.Button.buttonTemplate){
-                    // hideous table template
-                    Ext.Button.buttonTemplate = new Ext.Template(
-                        '<table border="0" cellpadding="0" cellspacing="0" class="x-btn-wrap"><tbody><tr>',
-                        '<td class="x-btn-left"><i>&#160;</i></td><td class="x-btn-center"><em><button class="x-btn-text">{0}</button></em></td><td class="x-btn-right"><i>&#160;</i></td>',
-                        "</tr></tbody></table>");
-                }
-                this.template = Ext.Button.buttonTemplate;
-            }
-            btn = this.template.append(renderTo, [this.text || '&#160;'], true);
-            var btnEl = btn.child("button:first");
-            btnEl.on('focus', this.onFocus, this);
-            btnEl.on('blur', this.onBlur, this);
-            if(this.cls){
-                btn.addClass(this.cls);
-            }
-            if(this.icon){
-                btnEl.setStyle('background-image', 'url(' +this.icon +')');
-            }
-            if(this.tooltip){
-                if(typeof this.tooltip == 'object'){
-                    Ext.QuickTips.tips(Ext.apply({
-                          target: btnEl.id
-                    }, this.tooltip));
-                } else {
-                    btnEl.dom[this.tooltipType] = this.tooltip;
-                }
-            }
-        }else{
-            btn = Ext.DomHelper.append(Ext.get(renderTo).dom, this.dhconfig, true);
-        }
-        this.el = btn;
-        if(this.id){
-            this.el.dom.id = this.el.id = this.id;
-        }
-        if(this.menu){
-            this.el.child(this.menuClassTarget).addClass("x-btn-with-menu");
-            this.menu.on("show", this.onMenuShow, this);
-            this.menu.on("hide", this.onMenuHide, this);
-        }
-        btn.addClass("x-btn");
-        if(Ext.isIE && !Ext.isIE7){
-            this.autoWidth.defer(1, this);
-        }else{
-            this.autoWidth();
-        }
-        if(this.handleMouseEvents){
-            btn.on("mouseover", this.onMouseOver, this);
-            btn.on("mouseout", this.onMouseOut, this);
-            btn.on("mousedown", this.onMouseDown, this);
-        }
-        btn.on(this.clickEvent, this.onClick, this);
-        //btn.on("mouseup", this.onMouseUp, this);
-        if(this.hidden){
-            this.hide();
-        }
-        if(this.disabled){
-            this.disable();
-        }
-        Ext.ButtonToggleMgr.register(this);
-        if(this.pressed){
-            this.el.addClass("x-btn-pressed");
-        }
-        if(this.repeat){
-            var repeater = new Ext.util.ClickRepeater(btn,
-                typeof this.repeat == "object" ? this.repeat : {}
-            );
-            repeater.on("click", this.onClick,  this);
-        }
-    },
-    /**
-     * Returns the button's underlying element
-     * @return {Ext.Element} The element
-     */
-    getEl : function(){
-        return this.el;  
-    },
-    
-    /**
-     * Destroys this Button and removes any listeners.
-     */
-    destroy : function(){
-        Ext.ButtonToggleMgr.unregister(this);
-        this.el.removeAllListeners();
-        this.purgeListeners();
-        this.el.remove();
-    },
-
-    // private
-    autoWidth : function(){
-        if(this.el){
-            this.el.setWidth("auto");
-            if(Ext.isIE7 && Ext.isStrict){
-                var ib = this.el.child('button');
-                if(ib && ib.getWidth() > 20){
-                    ib.clip();
-                    ib.setWidth(Ext.util.TextMetrics.measure(ib, this.text).width+ib.getFrameWidth('lr'));
-                }
-            }
-            if(this.minWidth){
-                if(this.hidden){
-                    this.el.beginMeasure();
-                }
-                if(this.el.getWidth() < this.minWidth){
-                    this.el.setWidth(this.minWidth);
-                }
-                if(this.hidden){
-                    this.el.endMeasure();
-                }
-            }
-        }
-    },
-
-    /**
-     * Assigns this button's click handler
-     * @param {Function} handler The function to call when the button is clicked
-     * @param {Object} scope (optional) Scope for the function passed in
-     */
-    setHandler : function(handler, scope){
-        this.handler = handler;
-        this.scope = scope;  
-    },
-    
-    /**
-     * Sets this button's text
-     * @param {String} text The button text
-     */
-    setText : function(text){
-        this.text = text;
-        if(this.el){
-            this.el.child("td.x-btn-center button.x-btn-text").update(text);
-        }
-        this.autoWidth();
-    },
-    
-    /**
-     * Gets the text for this button
-     * @return {String} The button text
-     */
-    getText : function(){
-        return this.text;  
-    },
-    
-    /**
-     * Show this button
-     */
-    show: function(){
-        this.hidden = false;
-        if(this.el){
-            this[this.hideParent? 'parentEl' : 'el'].setStyle("display", "");
-        }
-    },
-    
-    /**
-     * Hide this button
-     */
-    hide: function(){
-        this.hidden = true;
-        if(this.el){
-            this[this.hideParent? 'parentEl' : 'el'].setStyle("display", "none");
-        }
-    },
-    
-    /**
-     * Convenience function for boolean show/hide
-     * @param {Boolean} visible True to show, false to hide
-     */
-    setVisible: function(visible){
-        if(visible) {
-            this.show();
-        }else{
-            this.hide();
-        }
-    },
-    
-    /**
-     * If a state it passed, it becomes the pressed state otherwise the current state is toggled.
-     * @param {Boolean} state (optional) Force a particular state
-     */
-    toggle : function(state){
-        state = state === undefined ? !this.pressed : state;
-        if(state != this.pressed){
-            if(state){
-                this.el.addClass("x-btn-pressed");
-                this.pressed = true;
-                this.fireEvent("toggle", this, true);
-            }else{
-                this.el.removeClass("x-btn-pressed");
-                this.pressed = false;
-                this.fireEvent("toggle", this, false);
-            }
-            if(this.toggleHandler){
-                this.toggleHandler.call(this.scope || this, this, state);
-            }
-        }
-    },
-    
-    /**
-     * Focus the button
-     */
-    focus : function(){
-        this.el.child('button:first').focus();
-    },
-    
-    /**
-     * Disable this button
-     */
-    disable : function(){
-        if(this.el){
-            this.el.addClass("x-btn-disabled");
-        }
-        this.disabled = true;
-    },
-    
-    /**
-     * Enable this button
-     */
-    enable : function(){
-        if(this.el){
-            this.el.removeClass("x-btn-disabled");
-        }
-        this.disabled = false;
-    },
-
-    /**
-     * Convenience function for boolean enable/disable
-     * @param {Boolean} enabled True to enable, false to disable
-     */
-    setDisabled : function(v){
-        this[v !== true ? "enable" : "disable"]();
-    },
-
-    // private
-    onClick : function(e){
-        if(e){
-            e.preventDefault();
-        }
-        if(!this.disabled){
-            if(this.enableToggle){
-                this.toggle();
-            }
-            if(this.menu && !this.menu.isVisible()){
-                this.menu.show(this.el, this.menuAlign);
-            }
-            this.fireEvent("click", this, e);
-            if(this.handler){
-                this.el.removeClass("x-btn-over");
-                this.handler.call(this.scope || this, this, e);
-            }
-        }
-    },
-    // private
-    onMouseOver : function(e){
-        if(!this.disabled){
-            this.el.addClass("x-btn-over");
-            this.fireEvent('mouseover', this, e);
-        }
-    },
-    // private
-    onMouseOut : function(e){
-        if(!e.within(this.el,  true)){
-            this.el.removeClass("x-btn-over");
-            this.fireEvent('mouseout', this, e);
-        }
-    },
-    // private
-    onFocus : function(e){
-        if(!this.disabled){
-            this.el.addClass("x-btn-focus");
-        }
-    },
-    // private
-    onBlur : function(e){
-        this.el.removeClass("x-btn-focus");
-    },
-    // private
-    onMouseDown : function(){
-        if(!this.disabled){
-            this.el.addClass("x-btn-click");
-            Ext.get(document).on('mouseup', this.onMouseUp, this);
-        }
-    },
-    // private
-    onMouseUp : function(){
-        this.el.removeClass("x-btn-click");
-        Ext.get(document).un('mouseup', this.onMouseUp, this);
-    },
-    // private
-    onMenuShow : function(e){
-        this.el.addClass("x-btn-menu-active");
-    },
-    // private
-    onMenuHide : function(e){
-        this.el.removeClass("x-btn-menu-active");
-    }   
-});
-
-// Private utility class used by Button
-Ext.ButtonToggleMgr = function(){
-   var groups = {};
-   
-   function toggleGroup(btn, state){
-       if(state){
-           var g = groups[btn.toggleGroup];
-           for(var i = 0, l = g.length; i < l; i++){
-               if(g[i] != btn){
-                   g[i].toggle(false);
-               }
-           }
-       }
-   }
-   
-   return {
-       register : function(btn){
-           if(!btn.toggleGroup){
-               return;
-           }
-           var g = groups[btn.toggleGroup];
-           if(!g){
-               g = groups[btn.toggleGroup] = [];
-           }
-           g.push(btn);
-           btn.on("toggle", toggleGroup);
-       },
-       
-       unregister : function(btn){
-           if(!btn.toggleGroup){
-               return;
-           }
-           var g = groups[btn.toggleGroup];
-           if(g){
-               g.remove(btn);
-               btn.un("toggle", toggleGroup);
-           }
-       }
-   };
-}();

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ButtonPanel.jss.html b/www/extras/extjs/docs/output/ButtonPanel.jss.html deleted file mode 100644 index 10aada3b7..000000000 --- a/www/extras/extjs/docs/output/ButtonPanel.jss.html +++ /dev/null @@ -1,3 +0,0 @@ -ButtonPanel.js

ButtonPanel.js


-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/CSS.jss.html b/www/extras/extjs/docs/output/CSS.jss.html deleted file mode 100644 index 4f6854e0f..000000000 --- a/www/extras/extjs/docs/output/CSS.jss.html +++ /dev/null @@ -1,151 +0,0 @@ -CSS.js

CSS.js

/**
- * @class Ext.util.CSS
- * Utility class for manipulating CSS rules
- * @singleton
- */
-Ext.util.CSS = function(){
-	var rules = null;
-   	var doc = document;
-
-    var camelRe = /(-[a-z])/gi;
-    var camelFn = function(m, a){ return a.charAt(1).toUpperCase(); };
-
-   return {
-   /**
-    * Very simple dynamic creation of stylesheets from a text blob of rules.  The text will wrapped in a style
-    * tag and appended to the HEAD of the document.
-    * @param {String} cssText The text containing the css rules
-    * @return {StyleSheet} 
-    */
-   createStyleSheet : function(cssText){
-       var ss;
-       if(Ext.isIE){
-           ss = doc.createStyleSheet();
-           ss.cssText = cssText;
-       }else{
-           var head = doc.getElementsByTagName("head")[0];
-           var rules = doc.createElement("style");
-           rules.setAttribute("type", "text/css");
-           try{
-                rules.appendChild(doc.createTextNode(cssText));
-           }catch(e){
-               rules.cssText = cssText; 
-           }
-           head.appendChild(rules);
-           ss = rules.styleSheet ? rules.styleSheet : (rules.sheet || doc.styleSheets[doc.styleSheets.length-1]);
-       }
-       this.cacheStyleSheet(ss);
-       return ss;
-   },
-
-   /**
-    * Removes a style or link tag by id
-    * @param {String} id The id of the tag
-    */
-   removeStyleSheet : function(id){
-       var existing = doc.getElementById(id);
-       if(existing){
-           existing.parentNode.removeChild(existing);
-       }
-   },
-
-   /**
-    * Dynamically swaps an existing stylesheet reference for a new one
-    * @param {String} id The id of an existing link tag to remove
-    * @param {String} url The href of the new stylesheet to include
-    */
-   swapStyleSheet : function(id, url){
-       this.removeStyleSheet(id);
-       var ss = doc.createElement("link");
-       ss.setAttribute("rel", "stylesheet");
-       ss.setAttribute("type", "text/css");
-       ss.setAttribute("id", id);
-       ss.setAttribute("href", url);
-       doc.getElementsByTagName("head")[0].appendChild(ss);
-   },
-   
-   /**
-    * Refresh the rule cache if you have dynamically added stylesheets
-    * @return {Object} An object (hash) of rules indexed by selector
-    */
-   refreshCache : function(){
-       return this.getRules(true);
-   },
-
-   // private
-   cacheStyleSheet : function(ss){
-       if(!rules){
-           rules = {};
-       }
-       try{// try catch for cross domain access issue
-           var ssRules = ss.cssRules || ss.rules;
-           for(var j = ssRules.length-1; j >= 0; --j){
-               rules[ssRules[j].selectorText] = ssRules[j];
-           }
-       }catch(e){}
-   },
-   
-   /**
-    * Gets all css rules for the document
-    * @param {Boolean} refreshCache true to refresh the internal cache
-    * @return {Object} An object (hash) of rules indexed by selector
-    */
-   getRules : function(refreshCache){
-   		if(rules == null || refreshCache){
-   			rules = {};
-   			var ds = doc.styleSheets;
-   			for(var i =0, len = ds.length; i < len; i++){
-   			    try{
-    		        this.cacheStyleSheet(ds[i]);
-    		    }catch(e){} 
-	        }
-   		}
-   		return rules;
-   	},
-   	
-   	/**
-    * Gets an an individual CSS rule by selector(s)
-    * @param {String/Array} selector The CSS selector or an array of selectors to try. The first selector that is found is returned.
-    * @param {Boolean} refreshCache true to refresh the internal cache if you have recently updated any rules or added styles dynamically
-    * @return {CSSRule} The CSS rule or null if one is not found
-    */
-   getRule : function(selector, refreshCache){
-   		var rs = this.getRules(refreshCache);
-   		if(!(selector instanceof Array)){
-   		    return rs[selector];
-   		}
-   		for(var i = 0; i < selector.length; i++){
-			if(rs[selector[i]]){
-				return rs[selector[i]];
-			}
-		}
-		return null;
-   	},
-   	
-   	
-   	/**
-    * Updates a rule property
-    * @param {String/Array} selector If it's an array it tries each selector until it finds one. Stops immediately once one is found.
-    * @param {String} property The css property
-    * @param {String} value The new value for the property
-    * @return {Boolean} true If a rule was found and updated
-    */
-   updateRule : function(selector, property, value){
-   		if(!(selector instanceof Array)){
-   			var rule = this.getRule(selector);
-   			if(rule){
-   				rule.style[property.replace(camelRe, camelFn)] = value;
-   				return true;
-   			}
-   		}else{
-   			for(var i = 0; i < selector.length; i++){
-   				if(this.updateRule(selector[i], property, value)){
-   					return true;
-   				}
-   			}
-   		}
-   		return false;
-   	}
-   };	
-}();

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/CellSelectionModel.jss.html b/www/extras/extjs/docs/output/CellSelectionModel.jss.html deleted file mode 100644 index fea5d1da8..000000000 --- a/www/extras/extjs/docs/output/CellSelectionModel.jss.html +++ /dev/null @@ -1,220 +0,0 @@ -CellSelectionModel.js

CellSelectionModel.js

/**
- @class Ext.grid.CellSelectionModel
- * @extends Ext.grid.AbstractSelectionModel
- @constructor
- * @param {Object} config
- */
-Ext.grid.CellSelectionModel = function(config){
-    Ext.apply(this, config);
-
-    this.selection = null;
-
-    this.addEvents({
-        /**
-	     * @event beforerowselect
-	     * Fires before a cell is selected.
-	     * @param {SelectionModel} this
-	     * @param {Number} rowIndex The selected row index
-	     * @param {Number} colIndex The selected cell index
-	     */
-	    "beforecellselect" : true,
-        /**
-	     * @event cellselect
-	     * Fires when a cell is selected.
-	     * @param {SelectionModel} this
-	     * @param {Number} rowIndex The selected row index
-	     * @param {Number} colIndex The selected cell index
-	     */
-	    "cellselect" : true,
-        /**
-	     * @event selectionchange
-	     * Fires when the active selection changes.
-	     * @param {SelectionModel} this
-	     * @param {Object} selection null for no selection or an object (o) with two properties
-	        <ul>
-	        <li>o.record: the record object for the row the selection is in</li>
-	        <li>o.cell: An array of [rowIndex, columnIndex]</li>
-	        </ul>
-	     */
-	    "selectionchange" : true
-    });
-};
-
-Ext.extend(Ext.grid.CellSelectionModel, Ext.grid.AbstractSelectionModel,  {
-
-    /** @ignore */
-    initEvents : function(){
-        this.grid.on("mousedown", this.handleMouseDown, this);
-        this.grid.container.on(Ext.isIE ? "keydown" : "keypress", this.handleKeyDown, this);
-        var view = this.grid.view;
-        view.on("refresh", this.onViewChange, this);
-        view.on("rowupdated", this.onRowUpdated, this);
-        view.on("beforerowremoved", this.clearSelections, this);
-        view.on("beforerowsinserted", this.clearSelections, this);
-        if(this.grid.isEditor){
-            this.grid.on("beforeedit", this.beforeEdit,  this);
-        }
-    },
-
-    beforeEdit : function(e){
-        this.select(e.row, e.column, false, true, e.record);
-    },
-
-    onRowUpdated : function(v, index, r){
-        if(this.selection && this.selection.record == r){
-            v.onCellSelect(index, this.selection.cell[1]);
-        }
-    },
-
-    onViewChange : function(){
-        this.clearSelections(true);
-    },
-
-    getSelectedCell : function(){
-        return this.selection ? this.selection.cell : null;
-    },
-
-    /**
-     * Clears all selections.
-     */
-    clearSelections : function(preventNotify){
-        var s = this.selection;
-        if(s){
-            if(preventNotify !== true){
-                this.grid.view.onCellDeselect(s.cell[0], s.cell[1]);
-            }
-            this.selection = null;
-            this.fireEvent("selectionchange", this, null);
-        }
-    },
-
-    /**
-     * Returns True if there is a selection.
-     * @return {Boolean}
-     */
-    hasSelection : function(){
-        return this.selection ? true : false;
-    },
-
-    /** @ignore */
-    handleMouseDown : function(e, t){
-        var v = this.grid.getView();
-        if(this.isLocked()){
-            return;
-        };
-        var row = v.findRowIndex(t);
-        var cell = v.findCellIndex(t);
-        if(row !== false && cell !== false){
-            this.select(row, cell);
-        }
-    },
-
-    /**
-     * Selects a cell.
-     * @param {Number} rowIndex
-     * @param {Number} collIndex
-     */
-    select : function(rowIndex, colIndex, preventViewNotify, preventFocus, /*internal*/ r){
-        if(this.fireEvent("beforecellselect", this, rowIndex, colIndex) !== false){
-            this.clearSelections();
-            r = r || this.grid.dataSource.getAt(rowIndex);
-            this.selection = {
-                record : r,
-                cell : [rowIndex, colIndex]
-            };
-            if(!preventViewNotify){
-                var v = this.grid.getView();
-                v.onCellSelect(rowIndex, colIndex);
-                if(preventFocus !== true){
-                    v.focusCell(rowIndex, colIndex);
-                }
-            }
-            this.fireEvent("cellselect", this, rowIndex, colIndex);
-            this.fireEvent("selectionchange", this, this.selection);
-        }
-    },
-
-    isSelectable : function(rowIndex, colIndex, cm){
-        return !cm.isHidden(colIndex);
-    },
-
-    /** @ignore */
-    handleKeyDown : function(e){
-        if(!e.isNavKeyPress()){
-            return;
-        }
-        var g = this.grid, s = this.selection;
-        if(!s){
-            e.stopEvent();
-            var cell = g.walkCells(0, 0, 1, this.isSelectable,  this);
-            if(cell){
-                this.select(cell[0], cell[1]);
-            }
-            return;
-        }
-        var sm = this;
-        var walk = function(row, col, step){
-            return g.walkCells(row, col, step, sm.isSelectable,  sm);
-        };
-        var k = e.getKey(), r = s.cell[0], c = s.cell[1];
-        var newCell;
-
-        switch(k){
-             case e.TAB:
-                 if(e.shiftKey){
-                     newCell = walk(r, c-1, -1);
-                 }else{
-                     newCell = walk(r, c+1, 1);
-                 }
-             break;
-             case e.DOWN:
-                 newCell = walk(r+1, c, 1);
-             break;
-             case e.UP:
-                 newCell = walk(r-1, c, -1);
-             break;
-             case e.RIGHT:
-                 newCell = walk(r, c+1, 1);
-             break;
-             case e.LEFT:
-                 newCell = walk(r, c-1, -1);
-             break;
-             case e.ENTER:
-                 if(g.isEditor && !g.editing){
-                    g.startEditing(r, c);
-                    e.stopEvent();
-                    return;
-                }
-             break;
-        };
-        if(newCell){
-            this.select(newCell[0], newCell[1]);
-            e.stopEvent();
-        }
-    },
-
-    acceptsNav : function(row, col, cm){
-        return !cm.isHidden(col) && cm.isCellEditable(col, row);
-    },
-
-    onEditorKey : function(field, e){
-        var k = e.getKey(), newCell, g = this.grid, ed = g.activeEditor;
-        if(k == e.TAB){
-            if(e.shiftKey){
-                newCell = g.walkCells(ed.row, ed.col-1, -1, this.acceptsNav, this);
-            }else{
-                newCell = g.walkCells(ed.row, ed.col+1, 1, this.acceptsNav, this);
-            }
-            e.stopEvent();
-        }else if(k == e.ENTER && !e.ctrlKey){
-            ed.completeEdit();
-            e.stopEvent();
-        }else if(k == e.ESC){
-            ed.cancelEdit();
-        }
-        if(newCell){
-            g.startEditing(newCell[0], newCell[1]);
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/CheckItem.jss.html b/www/extras/extjs/docs/output/CheckItem.jss.html deleted file mode 100644 index 3330c0f19..000000000 --- a/www/extras/extjs/docs/output/CheckItem.jss.html +++ /dev/null @@ -1,103 +0,0 @@ -CheckItem.js

CheckItem.js

/**
- * @class Ext.menu.CheckItem
- * @extends Ext.menu.Item
- * Adds a menu item that contains a checkbox by default, but can also be part of a radio group.
- * @constructor
- * Creates a new CheckItem
- * @param {Object} config Configuration options
- */
-Ext.menu.CheckItem = function(config){
-    Ext.menu.CheckItem.superclass.constructor.call(this, config);
-    this.addEvents({
-        /**
-         * @event beforecheckchange
-         * Fires before the checked value is set, providing an opportunity to cancel if needed
-         * @param {Ext.menu.CheckItem} this
-         * @param {Boolean} checked The new checked value that will be set
-         */
-        "beforecheckchange" : true,
-        /**
-         * @event checkchange
-         * Fires after the checked value has been set
-         * @param {Ext.menu.CheckItem} this
-         * @param {Boolean} checked The checked value that was set
-         */
-        "checkchange" : true
-    });
-    if(this.checkHandler){
-        this.on('checkchange', this.checkHandler, this.scope);
-    }
-};
-Ext.extend(Ext.menu.CheckItem, Ext.menu.Item, {
-    /**
-     * @cfg {String} group
-     * All check items with the same group name will automatically be grouped into a single-select
-     * radio button group (defaults to '')
-     */
-// holder
-/***
-     * @cfg {String} itemCls The default CSS class to use for check items (defaults to "x-menu-item x-menu-check-item")
-     */
-    itemCls : "x-menu-item x-menu-check-item",
-    /**
-     * @cfg {String} groupClass The default CSS class to use for radio group check items (defaults to "x-menu-group-item")
-     */
-    groupClass : "x-menu-group-item",
-
-    /**
-     * @cfg {Boolean} checked True to initialize this checkbox as checked (defaults to false).  Note that
-     * if this checkbox is part of a radio group (group = true) only the last item in the group that is
-     * initialized with checked = true will be rendered as checked.
-     */
-    checked: false,
-
-    // private
-    ctype: "Ext.menu.CheckItem",
-
-    // private
-    onRender : function(c){
-        Ext.menu.CheckItem.superclass.onRender.apply(this, arguments);
-        if(this.group){
-            this.el.addClass(this.groupClass);
-        }
-        Ext.menu.MenuMgr.registerCheckable(this);
-        if(this.checked){
-            this.checked = false;
-            this.setChecked(true, true);
-        }
-    },
-
-    // private
-    destroy : function(){
-        if(this.rendered){
-            Ext.menu.MenuMgr.unregisterCheckable(this);
-        }
-        Ext.menu.CheckItem.superclass.destroy.apply(this, arguments);
-    },
-
-    /**
-     * Set the checked state of this item
-     * @param {Boolean} checked The new checked value
-     * @param {Boolean} suppressEvent (optional) True to prevent the checkchange event from firing (defaults to false)
-     */
-    setChecked : function(state, suppressEvent){
-        if(this.checked != state && this.fireEvent("beforecheckchange", this, state) !== false){
-            if(this.container){
-                this.container[state ? "addClass" : "removeClass"]("x-menu-item-checked");
-            }
-            this.checked = state;
-            if(suppressEvent !== true){
-                this.fireEvent("checkchange", this, state);
-            }
-        }
-    },
-
-    // private
-    handleClick : function(e){
-       if(!this.disabled && !(this.checked && this.group)){// disable unselect on radio item
-           this.setChecked(!this.checked);
-       }
-       Ext.menu.CheckItem.superclass.handleClick.apply(this, arguments);
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Checkbox.jss.html b/www/extras/extjs/docs/output/Checkbox.jss.html deleted file mode 100644 index 74da17dd3..000000000 --- a/www/extras/extjs/docs/output/Checkbox.jss.html +++ /dev/null @@ -1,117 +0,0 @@ -Checkbox.js

Checkbox.js

/**
- * @class Ext.form.Checkbox
- * @extends Ext.form.Field
- * Single checkbox field.  Can be used as a direct replacement for traditional checkbox fields.
- * @constructor
- * Creates a new CheckBox
- * @param {Object} config Configuration options
- */
-Ext.form.Checkbox = function(config){
-    Ext.form.Checkbox.superclass.constructor.call(this, config);
-    this.addEvents({
-        /**
-         * @event check
-         * Fires when the checkbox is checked or unchecked
-	     * @param {Ext.form.Checkbox} this This checkbox
-	     * @param {Boolean} checked The new checked value
-	     */
-        check : true
-    });
-};
-
-Ext.extend(Ext.form.Checkbox, Ext.form.Field,  {
-    /**
-     * @cfg {String} focusClass The CSS class to use when the checkbox receives focus (defaults to 'x-form-check-focus')
-     */
-    focusClass : "x-form-check-focus",
-    /**
-     * @cfg {String} fieldClass The default CSS class for the checkbox (defaults to "x-form-field")
-     */
-    fieldClass: "x-form-field",
-    /**
-     * @cfg {Boolean} checked True if the the checkbox should render already checked (defaults to false)
-     */
-    checked: false,
-
-    // private
-    defaultAutoCreate : { tag: "input", type: 'checkbox', autocomplete: "off"},
-    /**
-     * @cfg {String} boxLabel The text that appears beside the checkbox
-     */
-    boxLabel : undefined,
-    /**
-     * @cfg {String} inputValue The value that should go into the generated input element's value attribute
-     */
-// holder
-/***
-     * Sets the width and height of the checkbox wrapper element
-     * @param {Number} width New width in pixels
-     * @param {Number} height New height in pixels
-     */
-    setSize : function(w, h){
-        if(!this.wrap){
-            this.width = w;
-            this.height = h;
-            return;
-        }
-        this.wrap.setSize(w, h);
-        if(!this.boxLabel){
-            this.el.alignTo(this.wrap, 'c-c');
-        }
-    },
-
-    initEvents : function(){
-        Ext.form.Checkbox.superclass.initEvents.call(this);
-        this.el.on("click", this.onClick,  this);
-        this.el.on("change", this.onClick,  this);
-    },
-
-    
-    // private
-    onRender : function(ct, position){
-        Ext.form.Checkbox.superclass.onRender.call(this, ct, position);
-        if(this.inputValue !== undefined){
-            this.el.dom.value = this.inputValue;
-        }
-        this.wrap = this.el.wrap({cls: "x-form-check-wrap"});
-        if(this.boxLabel){
-            this.wrap.createChild({tag: 'label', htmlFor: this.el.id, cls: 'x-form-cb-label', html: this.boxLabel});
-        }
-        if(this.checked){
-            this.setValue(true);
-        }
-    },
-
-    // private
-    initValue : Ext.emptyFn,
-
-    /**
-     * Returns the checked state of the checkbox.
-     * @return {Boolean} True if checked, else false
-     */
-    getValue : function(){
-        if(this.rendered){
-            return this.el.dom.checked;
-        }
-        return false;
-    },
-
-    onClick : function(){
-        if(this.el.dom.checked != this.checked){
-            this.setValue(this.el.dom.checked);
-        }
-    },
-
-    /**
-     * Sets the checked state of the checkbox
-     * @param {Boolean/String} checked True, 'true,' or '1' to check the checkbox, any other value will uncheck it
-     */
-    setValue : function(v){
-        this.checked = (v === true || v === 'true' || v == '1');
-        if(this.el && this.el.dom){
-            this.el.dom.checked = this.checked;
-        }
-        this.fireEvent("check", this, this.checked);
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ClickRepeater.jss.html b/www/extras/extjs/docs/output/ClickRepeater.jss.html deleted file mode 100644 index 4f9e6f202..000000000 --- a/www/extras/extjs/docs/output/ClickRepeater.jss.html +++ /dev/null @@ -1,163 +0,0 @@ -ClickRepeater.js

ClickRepeater.js

/**
- @class Ext.util.ClickRepeater
- @extends Ext.util.Observable
-
- A wrapper class which can be applied to any element. Fires a "click" event while the
- mouse is pressed. The interval between firings may be specified in the config but
- defaults to 10 milliseconds.
-
- Optionally, a CSS class may be applied to the element during the time it is pressed.
-
- @cfg {String/HTMLElement/Element} el The element to act as a button.
- @cfg {Number} delay The initial delay before the repeating event begins firing.
- Similar to an autorepeat key delay.
- @cfg {Number} interval The interval between firings of the "click" event. Default 10 ms.
- @cfg {String} pressClass A CSS class name to be applied to the element while pressed.
- @cfg {Boolean} accelerate True if autorepeating should start slowly and accelerate.
-           "interval" and "delay" are ignored. "immediate" is honored.
- @cfg {Boolean} preventDefault True to prevent the default click event
- @cfg {Boolean} stopDefault True to stop the default click event
-
- @history
-    2007-02-02 jvs Original code contributed by Nige "Animal" White
-    2007-02-02 jvs Renamed to ClickRepeater
-    2007-02-03 jvs Modifications for FF Mac and Safari 
-
- @constructor
- @param {String/HTMLElement/Element} el The element to listen on
- @param {Object} config
- */
-Ext.util.ClickRepeater = function(el, config)
-{
-    this.el = Ext.get(el);
-    this.el.unselectable();
-
-    Ext.apply(this, config);
-
-    this.addEvents({
-    /**
-     * @event mousedown
-     * Fires when the mouse button is depressed.
-     * @param {Ext.util.ClickRepeater} this
-     */
-        "mousedown" : true,
-    /**
-     * @event click
-     * Fires on a specified interval during the time the element is pressed.
-     * @param {Ext.util.ClickRepeater} this
-     */
-        "click" : true,
-    /**
-     * @event mouseup
-     * Fires when the mouse key is released.
-     * @param {Ext.util.ClickRepeater} this
-     */
-        "mouseup" : true
-    });
-
-    this.el.on("mousedown", this.handleMouseDown, this);
-    if(this.preventDefault || this.stopDefault){
-        this.el.on("click", function(e){
-            if(this.preventDefault){
-                e.preventDefault();
-            }
-            if(this.stopDefault){
-                e.stopEvent();
-            }
-        }, this);
-    }
-
-    // allow inline handler
-    if(this.handler){
-        this.on("click", this.handler,  this.scope || this);
-    }
-
-    Ext.util.ClickRepeater.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.util.ClickRepeater, Ext.util.Observable, {
-    interval : 20,
-    delay: 250,
-    preventDefault : true,
-    stopDefault : false,
-    timer : 0,
-    docEl : Ext.get(document),
-
-    // private
-    handleMouseDown : function(){
-        clearTimeout(this.timer);
-        this.el.blur();
-        if(this.pressClass){
-            this.el.addClass(this.pressClass);
-        }
-        this.mousedownTime = new Date();
-
-        this.docEl.on("mouseup", this.handleMouseUp, this);
-        this.el.on("mouseout", this.handleMouseOut, this);
-
-        this.fireEvent("mousedown", this);
-        this.fireEvent("click", this);
-        
-        this.timer = this.click.defer(this.delay || this.interval, this);
-    },
-
-    // private
-    click : function(){
-        this.fireEvent("click", this);
-        this.timer = this.click.defer(this.getInterval(), this);
-    },
-
-    // private
-    getInterval: function(){
-        if(!this.accelerate){
-            return this.interval;
-        }
-        var pressTime = this.mousedownTime.getElapsed();
-        if(pressTime < 500){
-            return 400;
-        }else if(pressTime < 1700){
-            return 320;
-        }else if(pressTime < 2600){
-            return 250;
-        }else if(pressTime < 3500){
-            return 180;
-        }else if(pressTime < 4400){
-            return 140;
-        }else if(pressTime < 5300){
-            return 80;
-        }else if(pressTime < 6200){
-            return 50;
-        }else{
-            return 10;
-        }
-    },
-
-    // private
-    handleMouseOut : function(){
-        clearTimeout(this.timer);
-        if(this.pressClass){
-            this.el.removeClass(this.pressClass);
-        }
-        this.el.on("mouseover", this.handleMouseReturn, this);
-    },
-
-    // private
-    handleMouseReturn : function(){
-        this.el.un("mouseover", this.handleMouseReturn);
-        if(this.pressClass){
-            this.el.addClass(this.pressClass);
-        }
-        this.click();
-    },
-
-    // private
-    handleMouseUp : function(){
-        clearTimeout(this.timer);
-        this.el.un("mouseover", this.handleMouseReturn);
-        this.el.un("mouseout", this.handleMouseOut);
-        this.docEl.un("mouseup", this.handleMouseUp);
-        this.el.removeClass(this.pressClass);
-        this.fireEvent("mouseup", this);
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ColorItem.jss.html b/www/extras/extjs/docs/output/ColorItem.jss.html deleted file mode 100644 index a3fd462b4..000000000 --- a/www/extras/extjs/docs/output/ColorItem.jss.html +++ /dev/null @@ -1,19 +0,0 @@ -ColorItem.js

ColorItem.js

/**
- * @class Ext.menu.ColorItem
- * @extends Ext.menu.Adapter
- * A menu item that wraps the {@link Ext.ColorPalette} component.
- * @constructor
- * Creates a new ColorItem
- * @param {Object} config Configuration options
- */
-Ext.menu.ColorItem = function(config){
-    Ext.menu.ColorItem.superclass.constructor.call(this, new Ext.ColorPalette(config), config);
-    /** The Ext.ColorPalette object @type Ext.ColorPalette */
-    this.palette = this.component;
-    this.relayEvents(this.palette, ["select"]);
-    if(this.selectHandler){
-        this.on('select', this.selectHandler, this.scope);
-    }
-};
-Ext.extend(Ext.menu.ColorItem, Ext.menu.Adapter);

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ColorMenu.jss.html b/www/extras/extjs/docs/output/ColorMenu.jss.html deleted file mode 100644 index 406523550..000000000 --- a/www/extras/extjs/docs/output/ColorMenu.jss.html +++ /dev/null @@ -1,27 +0,0 @@ -ColorMenu.js

ColorMenu.js

/**
- * @class Ext.menu.ColorMenu
- * @extends Ext.menu.Menu
- * A menu containing a {@link Ext.menu.ColorItem} component (which provides a basic color picker).
- * @constructor
- * Creates a new ColorMenu
- * @param {Object} config Configuration options
- */
-Ext.menu.ColorMenu = function(config){
-    Ext.menu.ColorMenu.superclass.constructor.call(this, config);
-    this.plain = true;
-    var ci = new Ext.menu.ColorItem(config);
-    this.add(ci);
-    /**
-     * The {@link Ext.ColorPalette} instance for this ColorMenu
-     * @type ColorPalette
-     */
-    this.palette = ci.palette;
-    /**
-     * @event select
-     * @param {ColorPalette} palette
-     * @param {String} color
-     */
-    this.relayEvents(ci, ["select"]);
-};
-Ext.extend(Ext.menu.ColorMenu, Ext.menu.Menu);

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ColorPalette.jss.html b/www/extras/extjs/docs/output/ColorPalette.jss.html deleted file mode 100644 index 91a032a2f..000000000 --- a/www/extras/extjs/docs/output/ColorPalette.jss.html +++ /dev/null @@ -1,129 +0,0 @@ -ColorPalette.js

ColorPalette.js

/**
- * @class Ext.ColorPalette
- * @extends Ext.Component
- * Simple color palette class for choosing colors.  The palette can be rendered to any container.<br />
- * Here's an example of typical usage:
- * <pre><code>
-var cp = new Ext.ColorPalette({value:'993300'});  // initial selected color
-cp.render('my-div');
-
-cp.on('select', function(palette, selColor){
-    // do something with selColor
-});
-</code></pre>
- * @constructor
- * Create a new ColorPalette
- * @param {Object} config The config object
- */
-Ext.ColorPalette = function(config){
-    Ext.ColorPalette.superclass.constructor.call(this, config);
-    this.addEvents({
-        /**
-	     * @event select
-	     * Fires when a color is selected
-	     * @param {ColorPalette} this
-	     * @param {String} color The 6-digit color hex code (without the # symbol)
-	     */
-        select: true
-    });
-
-    if(this.handler){
-        this.on("select", this.handler, this.scope, true);
-    }
-};
-Ext.extend(Ext.ColorPalette, Ext.Component, {
-    /**
-     * @cfg {String} itemCls
-     * The CSS class to apply to the containing element (defaults to "x-color-palette")
-     */
-    itemCls : "x-color-palette",
-    /**
-     * @cfg {String} value
-     * The initial color to highlight (should be a valid 6-digit color hex code without the # symbol).  Note that
-     * the hex codes are case-sensitive.
-     */
-    value : null,
-
-    // private
-    ctype: "Ext.ColorPalette",
-
-    /**
-     * <p>An array of 6-digit color hex code strings (without the # symbol).  This array can contain any number
-     * of colors, and each hex code should be unique.  The width of the palette is controlled via CSS by adjusting
-     * the width property of the 'x-color-palette' class (or assigning a custom class), so you can balance the number
-     * of colors with the width setting until the box is symmetrical.</p>
-     * <p>You can override individual colors if needed:</p>
-     * <pre><code>
-var cp = new Ext.ColorPalette();
-cp.colors[0] = "FF0000";  // change the first box to red
-</code></pre>
-
-Or you can provide a custom array of your own for complete control:
-<pre><code>
-var cp = new Ext.ColorPalette();
-cp.colors = ["000000", "993300", "333300"];
-</code></pre>
-     * @type Array
-     */
-    colors : [
-        "000000", "993300", "333300", "003300", "003366", "000080", "333399", "333333",
-        "800000", "FF6600", "808000", "008000", "008080", "0000FF", "666699", "808080",
-        "FF0000", "FF9900", "99CC00", "339966", "33CCCC", "3366FF", "800080", "969696",
-        "FF00FF", "FFCC00", "FFFF00", "00FF00", "00FFFF", "00CCFF", "993366", "C0C0C0",
-        "FF99CC", "FFCC99", "FFFF99", "CCFFCC", "CCFFFF", "99CCFF", "CC99FF", "FFFFFF"
-    ],
-
-    // private
-    onRender : function(container, position){
-        var t = new Ext.MasterTemplate(
-            '<tpl><a href="#" class="color-{0}" hidefocus="on"><em><span style="background:#{0}">&#160;</span></em></a></tpl>'
-        );
-        var c = this.colors;
-        for(var i = 0, len = c.length; i < len; i++){
-            t.add([c[i]]);
-        }
-        var el = document.createElement("div");
-        el.className = this.itemCls;
-        t.overwrite(el);
-        container.dom.insertBefore(el, position);
-        this.el = Ext.get(el);
-        this.el.on("click", this.handleClick,  this, {delegate: "a"});
-    },
-
-    // private
-    afterRender : function(){
-        Ext.ColorPalette.superclass.afterRender.call(this);
-        if(this.value){
-            var s = this.value;
-            this.value = null;
-            this.select(s);
-        }
-    },
-
-    // private
-    handleClick : function(e, t){
-        e.preventDefault();
-        if(!this.disabled){
-            var c = t.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1];
-            this.select(c.toUpperCase());
-        }
-    },
-
-    /**
-     * Selects the specified color in the palette (fires the select event)
-     * @param {String} color A valid 6-digit color hex code (# will be stripped if included)
-     */
-    select : function(color){
-        color = color.replace("#", "");
-        if(color != this.value){
-            var el = this.el;
-            if(this.value){
-                el.child("a.color-"+this.value).removeClass("x-color-palette-sel");
-            }
-            el.child("a.color-"+color).addClass("x-color-palette-sel");
-            this.value = color;
-            this.fireEvent("select", this, color);
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ColumnDD.jss.html b/www/extras/extjs/docs/output/ColumnDD.jss.html deleted file mode 100644 index 59335e581..000000000 --- a/www/extras/extjs/docs/output/ColumnDD.jss.html +++ /dev/null @@ -1,189 +0,0 @@ -ColumnDD.js

ColumnDD.js

// private
-// This is a support class used internally by the Grid components
-Ext.grid.HeaderDragZone = function(grid, hd, hd2){
-    this.grid = grid;
-    this.view = grid.getView();
-    this.ddGroup = "gridHeader" + this.grid.container.id;
-    Ext.grid.HeaderDragZone.superclass.constructor.call(this, hd);
-    if(hd2){
-        this.setHandleElId(Ext.id(hd));
-        this.setOuterHandleElId(Ext.id(hd2));
-    }
-    this.scroll = false;
-};
-Ext.extend(Ext.grid.HeaderDragZone, Ext.dd.DragZone, {
-    maxDragWidth: 120,
-    getDragData : function(e){
-        var t = Ext.lib.Event.getTarget(e);
-        var h = this.view.findHeaderCell(t);
-        if(h){
-            return {ddel: h.firstChild, header:h};
-        }
-        return false;
-    },
-
-    onInitDrag : function(e){
-        this.view.headersDisabled = true;
-        var clone = this.dragData.ddel.cloneNode(true);
-        clone.style.width = Math.min(this.dragData.header.offsetWidth,this.maxDragWidth) + "px";
-        this.proxy.update(clone);
-        return true;
-    },
-
-    afterValidDrop : function(){
-        var v = this.view;
-        setTimeout(function(){
-            v.headersDisabled = false;
-        }, 50);
-    },
-
-    afterInvalidDrop : function(){
-        var v = this.view;
-        setTimeout(function(){
-            v.headersDisabled = false;
-        }, 50);
-    }
-});
-
-// private
-// This is a support class used internally by the Grid components
-Ext.grid.HeaderDropZone = function(grid, hd, hd2){
-    this.grid = grid;
-    this.view = grid.getView();
-    // split the proxies so they don't interfere with mouse events
-    this.proxyTop = Ext.DomHelper.append(document.body, {
-        tag:"div", cls:"col-move-top", html:"&#160;"
-    }, true);
-    this.proxyBottom = Ext.DomHelper.append(document.body, {
-        tag:"div", cls:"col-move-bottom", html:"&#160;"
-    }, true);
-    this.proxyTop.hide = this.proxyBottom.hide = function(){
-        this.setLeftTop(-100,-100);
-        this.setStyle("visibility", "hidden");
-    };
-    this.ddGroup = "gridHeader" + this.grid.container.id;
-    // temporarily disabled
-    //Ext.dd.ScrollManager.register(this.view.scroller.dom);
-    Ext.grid.HeaderDropZone.superclass.constructor.call(this, grid.container.dom);
-};
-Ext.extend(Ext.grid.HeaderDropZone, Ext.dd.DropZone, {
-    proxyOffsets : [-4, -9],
-    fly: Ext.Element.fly,
-
-    getTargetFromEvent : function(e){
-        var t = Ext.lib.Event.getTarget(e);
-        var cindex = this.view.findCellIndex(t);
-        if(cindex !== false){
-            return this.view.getHeaderCell(cindex);
-        }
-    },
-
-    nextVisible : function(h){
-        var v = this.view, cm = this.grid.colModel;
-        h = h.nextSibling;
-        while(h){
-            if(!cm.isHidden(v.getCellIndex(h))){
-                return h;
-            }
-            h = h.nextSibling;
-        }
-        return null;
-    },
-
-    prevVisible : function(h){
-        var v = this.view, cm = this.grid.colModel;
-        h = h.prevSibling;
-        while(h){
-            if(!cm.isHidden(v.getCellIndex(h))){
-                return h;
-            }
-            h = h.prevSibling;
-        }
-        return null;
-    },
-
-    positionIndicator : function(h, n, e){
-        var x = Ext.lib.Event.getPageX(e);
-        var r = Ext.lib.Dom.getRegion(n.firstChild);
-        var px, pt, py = r.top + this.proxyOffsets[1];
-        if((r.right - x) <= (r.right-r.left)/2){
-            px = r.right+this.view.borderWidth;
-            pt = "after";
-        }else{
-            px = r.left;
-            pt = "before";
-        }
-        var oldIndex = this.view.getCellIndex(h);
-        var newIndex = this.view.getCellIndex(n);
-        var locked = this.grid.colModel.isLocked(newIndex);
-        if(pt == "after"){
-            newIndex++;
-        }
-        if(oldIndex < newIndex){
-            newIndex--;
-        }
-        if(oldIndex == newIndex && (locked == this.grid.colModel.isLocked(oldIndex))){
-            return false;
-        }
-        px +=  this.proxyOffsets[0];
-        this.proxyTop.setLeftTop(px, py);
-        this.proxyTop.show();
-        if(!this.bottomOffset){
-            this.bottomOffset = this.view.mainHd.getHeight();
-        }
-        this.proxyBottom.setLeftTop(px, py+this.proxyTop.dom.offsetHeight+this.bottomOffset);
-        this.proxyBottom.show();
-        return pt;
-    },
-
-    onNodeEnter : function(n, dd, e, data){
-        if(data.header != n){
-            this.positionIndicator(data.header, n, e);
-        }
-    },
-
-    onNodeOver : function(n, dd, e, data){
-        var result = false;
-        if(data.header != n){
-            result = this.positionIndicator(data.header, n, e);
-        }
-        if(!result){
-            this.proxyTop.hide();
-            this.proxyBottom.hide();
-        }
-        return result ? this.dropAllowed : this.dropNotAllowed;
-    },
-
-    onNodeOut : function(n, dd, e, data){
-        this.proxyTop.hide();
-        this.proxyBottom.hide();
-    },
-
-    onNodeDrop : function(n, dd, e, data){
-        var h = data.header;
-        if(h != n){
-            var cm = this.grid.colModel;
-            var x = Ext.lib.Event.getPageX(e);
-            var r = Ext.lib.Dom.getRegion(n.firstChild);
-            var pt = (r.right - x) <= ((r.right-r.left)/2) ? "after" : "before";
-            var oldIndex = this.view.getCellIndex(h);
-            var newIndex = this.view.getCellIndex(n);
-            var locked = cm.isLocked(newIndex);
-            if(pt == "after"){
-                newIndex++;
-            }
-            if(oldIndex < newIndex){
-                newIndex--;
-            }
-            if(oldIndex == newIndex && (locked == cm.isLocked(oldIndex))){
-                return false;
-            }
-            cm.setLocked(oldIndex, locked, true);
-            cm.moveColumn(oldIndex, newIndex);
-            this.grid.fireEvent("columnmove", oldIndex, newIndex);
-            return true;
-        }
-        return false;
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ColumnModel.jss.html b/www/extras/extjs/docs/output/ColumnModel.jss.html deleted file mode 100644 index 738361fe2..000000000 --- a/www/extras/extjs/docs/output/ColumnModel.jss.html +++ /dev/null @@ -1,449 +0,0 @@ -ColumnModel.js

ColumnModel.js

/**
- * @class Ext.grid.ColumnModel
- * @extends Ext.util.Observable
- * This is the default implementation of a ColumnModel used by the Grid. It defines
- * the columns in the grid.
- * <br>Usage:<br>
- <pre><code>
- var colModel = new Ext.grid.ColumnModel([
-	{header: "Ticker", width: 60, sortable: true, locked: true},
-	{header: "Company Name", width: 150, sortable: true},
-	{header: "Market Cap.", width: 100, sortable: true},
-	{header: "$ Sales", width: 100, sortable: true, renderer: money},
-	{header: "Employees", width: 100, sortable: true, resizable: false}
- ]);
- </code></pre>
- * <p>
- * The config options listed for this class, are options which may appear in each
- * individual column definition.
- * @constructor
- * @param {Object} config An Array of column config objects. See this class's
- * config objects for details.
-*/
-Ext.grid.ColumnModel = function(config){
-	Ext.grid.ColumnModel.superclass.constructor.call(this);
-    /**
-     * The config passed into the constructor
-     */
-    this.config = config;
-    this.lookup = {};
-
-    // if id, create one
-    // if the column does not have a dataIndex mapping,
-    // map it to the order it is in the config
-    for(var i = 0, len = config.length; i < len; i++){
-        if(typeof config[i].dataIndex == "undefined"){
-            config[i].dataIndex = i;
-        }
-        if(typeof config[i].renderer == "string"){
-            config[i].renderer = Ext.util.Format[config[i].renderer];
-        }
-        if(typeof config[i].id == "undefined"){
-            config[i].id = i;
-        }
-        this.lookup[config[i].id] = config[i];
-    }
-
-    /**
-     * The width of columns which have no width specified (defaults to 100)
-     * @type Number
-     */
-    this.defaultWidth = 100;
-
-    /**
-     * Default sortable of columns which have no sortable specified (defaults to false)
-     * @type Boolean
-     */
-    this.defaultSortable = false;
-
-    this.addEvents({
-        /**
-	     * @event widthchange
-	     * Fires when the width of a column changes
-	     * @param {ColumnModel} this
-	     * @param {Number} columnIndex The column index
-	     * @param {Number} newWidth The new width
-	     */
-	    "widthchange": true,
-        /**
-	     * @event headerchange
-	     * Fires when the text of a header changes
-	     * @param {ColumnModel} this
-	     * @param {Number} columnIndex The column index
-	     * @param {Number} newText The new header text
-	     */
-	    "headerchange": true,
-        /**
-	     * @event hiddenchange
-	     * Fires when a column is hidden or "unhidden"
-	     * @param {ColumnModel} this
-	     * @param {Number} columnIndex The column index
-	     * @param {Number} hidden true if hidden, false otherwise
-	     */
-	    "hiddenchange": true,
-	    /**
-         * @event columnmoved
-         * Fires when a column is moved
-         * @param {ColumnModel} this
-         * @param {Number} oldIndex
-         * @param {Number} newIndex
-         */
-        "columnmoved" : true,
-        /**
-         * @event columlockchange
-         * Fires when a column's locked state is changed
-         * @param {ColumnModel} this
-         * @param {Number} colIndex
-         * @param {Boolean} locked true if locked
-         */
-        "columnlockchange" : true
-    });
-    Ext.grid.ColumnModel.superclass.constructor.call(this);
-};
-Ext.extend(Ext.grid.ColumnModel, Ext.util.Observable, {
-    /**
-     * @cfg header {String} The header text to display in the Grid view.
-     */
-// holder
-/***
-     * @cfg dataIndex {String} The name of the field in the grid's {@link Ext.data.Store}'s
-     * {@link Ext.data.Record} definition from which to draw the column's value. If not
-     * specified, the column's index is used as an index into the Record's data Array.
-     */
-// holder
-/***
-     * @cfg width {Number} (Optional) The initial width in pixels of the column. Using this
-     * instead of {@link Ext.grid.Grid#autoSizeColumns} is more efficient.
-     */
-// holder
-/***
-     * @cfg sortable {Boolean} True if sorting is to be allowed on this column. Defaults to true.
-     * Whether local/remote sorting is used is specified in {@link Ext.data.Store#remoteSort}.
-     */
-// holder
-/***
-     * @cfg locked {Boolean} True to lock the column in place while scrolling the Grid.
-     * Defaults to false.
-     */
-// holder
-/***
-     * @cfg resizable {Boolean} False to disable column resizing. Defaults to true.
-     */
-// holder
-/***
-     * @cfg renderer {Function} (Optional) A function used to generate HTML markup for a cell
-     * given the cell's data value. See {@link #setRenderer}. If not specified, the
-     * default renderer uses the raw data value.
-     */
-// holder
-/***
-     * Returns the id of the column at the specified index
-     * @param {Number} index
-     * @return {String} the id
-     */
-    getColumnId : function(index){
-        return this.config[index].id;
-    },
-
-    getColumnById : function(id){
-        return this.lookup[id];
-    },
-
-    getIndexById : function(id){
-        for(var i = 0, len = this.config.length; i < len; i++){
-            if(this.config[i].id == id){
-                return i;
-            }
-        }
-        return -1;
-    },
-
-    moveColumn : function(oldIndex, newIndex){
-        var c = this.config[oldIndex];
-        this.config.splice(oldIndex, 1);
-        this.config.splice(newIndex, 0, c);
-        this.dataMap = null;
-        this.fireEvent("columnmoved", this, oldIndex, newIndex);
-    },
-
-    isLocked : function(colIndex){
-        return this.config[colIndex].locked === true;
-    },
-
-    setLocked : function(colIndex, value, suppressEvent){
-        if(this.isLocked(colIndex) == value){
-            return;
-        }
-        this.config[colIndex].locked = value;
-        if(!suppressEvent){
-            this.fireEvent("columnlockchange", this, colIndex, value);
-        }
-    },
-
-    getTotalLockedWidth : function(){
-        var totalWidth = 0;
-        for(var i = 0; i < this.config.length; i++){
-            if(this.isLocked(i) && !this.isHidden(i)){
-                this.totalWidth += this.getColumnWidth(i);
-            }
-        }
-        return totalWidth;
-    },
-
-    getLockedCount : function(){
-        for(var i = 0, len = this.config.length; i < len; i++){
-            if(!this.isLocked(i)){
-                return i;
-            }
-        }
-    },
-
-    /**
-     * Returns the number of columns.
-     * @return {Number}
-     */
-    getColumnCount : function(visibleOnly){
-        if(visibleOnly == true){
-            var c = 0;
-            for(var i = 0, len = this.config.length; i < len; i++){
-                if(!this.isHidden(i)){
-                    c++;
-                }
-            }
-            return c;
-        }
-        return this.config.length;
-    },
-
-    /**
-     * Returns true if the specified column is sortable.
-     * @param {Number} col The column index
-     * @return {Boolean}
-     */
-    isSortable : function(col){
-        if(typeof this.config[col].sortable == "undefined"){
-            return this.defaultSortable;
-        }
-        return this.config[col].sortable;
-    },
-
-    /**
-     * Returns the rendering (formatting) function defined for the column.
-     * @param {Number} col The column index.
-     * @return {Function} The function used to render the cell. See {@link #setRenderer}.
-     */
-    getRenderer : function(col){
-        if(!this.config[col].renderer){
-            return Ext.grid.ColumnModel.defaultRenderer;
-        }
-        return this.config[col].renderer;
-    },
-
-    /**
-     * Sets the rendering (formatting) function for a column.
-     * @param {Number} col The column index
-     * @param {Function} fn The function to use to process the cell's raw data
-     * to return HTML markup for the grid view. The render function is called with
-     * the following parameters:<ul>
-     * <li>Data value.</li>
-     * <li>Cell metadata. An object in which you may set the following attributes:<ul>
-     * <li>css A CSS style string to apply to the table cell.</li>
-     * <li>attr An HTML attribute definition string to apply to the data container element <i>within</i> the table cell.</li></ul>
-     * <li>The {@link Ext.data.Record} from which the data was extracted.</li>
-     * <li>Row index</li>
-     * <li>Column index</li>
-     * <li>The {@link Ext.data.Store} object from which the Record was extracted</li></ul>
-     */
-    setRenderer : function(col, fn){
-        this.config[col].renderer = fn;
-    },
-
-    /**
-     * Returns the width for the specified column.
-     * @param {Number} col The column index
-     * @return {Number}
-     */
-    getColumnWidth : function(col){
-        return this.config[col].width || this.defaultWidth;
-    },
-
-    /**
-     * Sets the width for a column.
-     * @param {Number} col The column index
-     * @param {Number} width The new width
-     */
-    setColumnWidth : function(col, width, suppressEvent){
-        this.config[col].width = width;
-        this.totalWidth = null;
-        if(!suppressEvent){
-             this.fireEvent("widthchange", this, col, width);
-        }
-    },
-
-    /**
-     * Returns the total width of all columns.
-     * @param {Boolean} includeHidden True to include hidden column widths
-     * @return {Number}
-     */
-    getTotalWidth : function(includeHidden){
-        if(!this.totalWidth){
-            this.totalWidth = 0;
-            for(var i = 0, len = this.config.length; i < len; i++){
-                if(includeHidden || !this.isHidden(i)){
-                    this.totalWidth += this.getColumnWidth(i);
-                }
-            }
-        }
-        return this.totalWidth;
-    },
-
-    /**
-     * Returns the header for the specified column.
-     * @param {Number} col The column index
-     * @return {String}
-     */
-    getColumnHeader : function(col){
-        return this.config[col].header;
-    },
-
-    /**
-     * Sets the header for a column.
-     * @param {Number} col The column index
-     * @param {String} header The new header
-     */
-    setColumnHeader : function(col, header){
-        this.config[col].header = header;
-        this.fireEvent("headerchange", this, col, header);
-    },
-
-    /**
-     * Returns the tooltip for the specified column.
-     * @param {Number} col The column index
-     * @return {String}
-     */
-    getColumnTooltip : function(col){
-            return this.config[col].tooltip;
-    },
-    /**
-     * Sets the tooltip for a column.
-     * @param {Number} col The column index
-     * @param {String} tooltip The new tooltip
-     */
-    setColumnTooltip : function(col, tooltip){
-            this.config[col].tooltip = tooltip;
-    },
-
-    /**
-     * Returns the dataIndex for the specified column.
-     * @param {Number} col The column index
-     * @return {Number}
-     */
-    getDataIndex : function(col){
-        return this.config[col].dataIndex;
-    },
-
-    /**
-     * Sets the dataIndex for a column.
-     * @param {Number} col The column index
-     * @param {Number} dataIndex The new dataIndex
-     */
-    setDataIndex : function(col, dataIndex){
-        this.config[col].dataIndex = dataIndex;
-    },
-
-    findColumnIndex : function(dataIndex){
-        var c = this.config;
-        for(var i = 0, len = c.length; i < len; i++){
-            if(c[i].dataIndex == dataIndex){
-                return i;
-            }
-        }
-        return -1;
-    },
-
-    /**
-     * Returns true if the cell is editable.
-     * @param {Number} colIndex The column index
-     * @param {Number} rowIndex The row index
-     * @return {Boolean}
-     */
-    isCellEditable : function(colIndex, rowIndex){
-        return (this.config[colIndex].editable || (typeof this.config[colIndex].editable == "undefined" && this.config[colIndex].editor)) ? true : false;
-    },
-
-    /**
-     * Returns the editor defined for the cell/column.
-     * @param {Number} colIndex The column index
-     * @param {Number} rowIndex The row index
-     * @return {Object}
-     */
-    getCellEditor : function(colIndex, rowIndex){
-        return this.config[colIndex].editor;
-    },
-
-    /**
-     * Sets if a column is editable.
-     * @param {Number} col The column index
-     * @param {Boolean} editable True if the column is editable
-     */
-    setEditable : function(col, editable){
-        this.config[col].editable = editable;
-    },
-
-
-    /**
-     * Returns true if the column is hidden.
-     * @param {Number} colIndex The column index
-     * @return {Boolean}
-     */
-    isHidden : function(colIndex){
-        return this.config[colIndex].hidden;
-    },
-
-
-    /**
-     * Returns true if the column width cannot be changed
-     */
-    isFixed : function(colIndex){
-        return this.config[colIndex].fixed;
-    },
-
-    /**
-     * Returns true if the column cannot be resized
-     * @return {Boolean}
-     */
-    isResizable : function(colIndex){
-        return this.config[colIndex].resizable !== false;
-    },
-    /**
-     * Sets if a column is hidden.
-     * @param {Number} colIndex The column index
-     * @param {Boolean} hidden True if the column is hidden
-     */
-    setHidden : function(colIndex, hidden){
-        this.config[colIndex].hidden = hidden;
-        this.totalWidth = null;
-        this.fireEvent("hiddenchange", this, colIndex, hidden);
-    },
-
-    /**
-     * Sets the editor for a column.
-     * @param {Number} col The column index
-     * @param {Object} editor The editor object
-     */
-    setEditor : function(col, editor){
-        this.config[col].editor = editor;
-    }
-});
-
-Ext.grid.ColumnModel.defaultRenderer = function(value){
-	if(typeof value == "string" && value.length < 1){
-	    return "&#160;";
-	}
-	return value;
-};
-
-// Alias for backwards compatibility
-Ext.grid.DefaultColumnModel = Ext.grid.ColumnModel;
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ColumnSplitDD.jss.html b/www/extras/extjs/docs/output/ColumnSplitDD.jss.html deleted file mode 100644 index 79f871d1e..000000000 --- a/www/extras/extjs/docs/output/ColumnSplitDD.jss.html +++ /dev/null @@ -1,57 +0,0 @@ -ColumnSplitDD.js

ColumnSplitDD.js

// private
-// This is a support class used internally by the Grid components
-Ext.grid.SplitDragZone = function(grid, hd, hd2){
-    this.grid = grid;
-    this.view = grid.getView();
-    this.proxy = this.view.resizeProxy;
-    Ext.grid.SplitDragZone.superclass.constructor.call(this, hd,
-        "gridSplitters" + this.grid.container.id, {
-        dragElId : Ext.id(this.proxy.dom), resizeFrame:false
-    });
-    this.setHandleElId(Ext.id(hd));
-    this.setOuterHandleElId(Ext.id(hd2));
-    this.scroll = false;
-};
-Ext.extend(Ext.grid.SplitDragZone, Ext.dd.DDProxy, {
-    fly: Ext.Element.fly,
-
-    b4StartDrag : function(x, y){
-        this.view.headersDisabled = true;
-        this.proxy.setHeight(this.view.mainWrap.getHeight());
-        var w = this.cm.getColumnWidth(this.cellIndex);
-        var minw = Math.max(w-this.grid.minColumnWidth, 0);
-        this.resetConstraints();
-        this.setXConstraint(minw, 1000);
-        this.setYConstraint(0, 0);
-        this.minX = x - minw;
-        this.maxX = x + 1000;
-        this.startPos = x;
-        Ext.dd.DDProxy.prototype.b4StartDrag.call(this, x, y);
-    },
-
-
-    handleMouseDown : function(e){
-        ev = Ext.EventObject.setEvent(e);
-        var t = this.fly(ev.getTarget());
-        if(t.hasClass("x-grid-split")){
-            this.cellIndex = this.view.getCellIndex(t.dom);
-            this.split = t.dom;
-            this.cm = this.grid.colModel;
-            if(this.cm.isResizable(this.cellIndex) && !this.cm.isFixed(this.cellIndex)){
-                Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this, arguments);
-            }
-        }
-    },
-
-    endDrag : function(e){
-        this.view.headersDisabled = false;
-        var endX = Math.max(this.minX, Ext.lib.Event.getPageX(e));
-        var diff = endX - this.startPos;
-        this.view.onColumnSplitterMoved(this.cellIndex, this.cm.getColumnWidth(this.cellIndex)+diff);
-    },
-
-    autoOffset : function(){
-        this.setDelta(0,0);
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Combo.jss.html b/www/extras/extjs/docs/output/Combo.jss.html deleted file mode 100644 index 5d64e2477..000000000 --- a/www/extras/extjs/docs/output/Combo.jss.html +++ /dev/null @@ -1,801 +0,0 @@ -Combo.js

Combo.js

/**
- * @class Ext.form.ComboBox
- * @extends Ext.form.TriggerField
- * A combobox control with support for autocomplete, remote-loading, paging and many other features.
- * @constructor
- * Create a new ComboBox.
- * @param {Object} config Configuration options
- */
-Ext.form.ComboBox = function(config){
-    Ext.form.ComboBox.superclass.constructor.call(this, config);
-    this.addEvents({
-        /**
-         * @event expand
-         * Fires when the dropdown list is expanded
-	     * @param {Ext.form.ComboBox} combo This combo box
-	     */
-        'expand' : true,
-        /**
-         * @event collapse
-         * Fires when the dropdown list is collapsed
-	     * @param {Ext.form.ComboBox} combo This combo box
-	     */
-        'collapse' : true,
-        /**
-         * @event beforeselect
-         * Fires before a list item is selected. Return false to cancel the selection.
-	     * @param {Ext.form.ComboBox} combo This combo box
-	     * @param {Ext.data.Record} record The data record returned from the underlying store
-	     * @param {Number} index The index of the selected item in the dropdown list
-	     */
-        'beforeselect' : true,
-        /**
-         * @event select
-         * Fires when a list item is selected
-	     * @param {Ext.form.ComboBox} combo This combo box
-	     * @param {Ext.data.Record} record The data record returned from the underlying store
-	     * @param {Number} index The index of the selected item in the dropdown list
-	     */
-        'select' : true,
-        /**
-         * @event beforequery
-         * Fires before all queries are processed. Return false to cancel the query or set cancel to true.
-         * The event object passed has these properties:
-         * <ul style="padding:5px;padding-left:16px;">
-	     * <li>{Ext.form.ComboBox} combo - This combo box</li>
-	     * <li>{String} query - The query</li>
-	     * <li>{Boolean} forceAll - true to force "all" query</li>
-	     * <li>{Boolean} cancel - set to true to cancel the query.</li>
-	     * </ul>
-	     * @param {Object} e The query event object
-	     */
-        'beforequery': true
-    });
-    if(this.transform){
-        var s = Ext.getDom(this.transform);
-        if(!this.hiddenName){
-            this.hiddenName = s.name;
-        }
-        if(!this.store){
-            this.mode = 'local';
-            var d = [], opts = s.options;
-            for(var i = 0, len = opts.length;i < len; i++){
-                var o = opts[i];
-                var value = (Ext.isIE ? o.getAttributeNode('value').specified : o.hasAttribute('value')) ? o.value : o.text;
-                if(o.selected) {
-                    this.value = value;
-                }
-                d.push([value, o.text]);
-            }
-            this.store = new Ext.data.SimpleStore({
-                'id': 0,
-                fields: ['value', 'text'],
-                data : d
-            });
-            this.valueField = 'value';
-            this.displayField = 'text';
-        }
-        s.name = Ext.id(); // wipe out the name in case somewhere else they have a reference
-        if(!this.lazyRender){
-            this.target = true;
-            this.el = Ext.DomHelper.insertBefore(s, this.autoCreate || this.defaultAutoCreate);
-            s.parentNode.removeChild(s); // remove it
-            this.render(this.el.parentNode);
-        }else{
-            s.parentNode.removeChild(s); // remove it
-        }
-
-    }
-    this.selectedIndex = -1;
-    if(this.mode == 'local'){
-        if(config.queryDelay === undefined){
-            this.queryDelay = 10;
-        }
-        if(config.minChars === undefined){
-            this.minChars = 0;
-        }
-    }
-};
-
-Ext.extend(Ext.form.ComboBox, Ext.form.TriggerField, {
-    /**
-     * @cfg {String/HTMLElement/Element} transform The id, DOM node or element of an existing select to convert to a ComboBox
-     */
-// holder
-/***
-     * @cfg {Boolean} lazyRender True to prevent the ComboBox from rendering until requested (should always be used when
-     * rendering into an Ext.Editor, defaults to false)
-     */
-// holder
-/***
-     * @cfg {Boolean/Object} autoCreate A DomHelper element spec, or true for a default element spec (defaults to:
-     * {tag: "input", type: "text", size: "24", autocomplete: "off"})
-     */
-
-    // private
-    defaultAutoCreate : {tag: "input", type: "text", size: "24", autocomplete: "off"},
-    /**
-     * @cfg {Number} listWidth The width in pixels of the dropdown list (defaults to the width of the ComboBox field)
-     */
-    listWidth: undefined,
-    /**
-     * @cfg {String} displayField The underlying data field name to bind to this CombBox (defaults to undefined if
-     * mode = 'remote' or 'text' if mode = 'local')
-     */
-    displayField: undefined,
-    /**
-     * @cfg {String} valueField The underlying data value name to bind to this CombBox (defaults to undefined if
-     * mode = 'remote' or 'value' if mode = 'local')
-     */
-    valueField: undefined,
-    /**
-     * @cfg {String} hiddenName If specified, a hidden form field with this name is dynamically generated to store the
-     * field's data value (defaults to the underlying DOM element's name)
-     */
-    hiddenName: undefined,
-    /**
-     * @cfg {String} listClass CSS class to apply to the dropdown list element (defaults to '')
-     */
-    listClass: '',
-    /**
-     * @cfg {String} selectedClass CSS class to apply to the selected item in the dropdown list (defaults to 'x-combo-selected')
-     */
-    selectedClass: 'x-combo-selected',
-    /**
-     * @cfg {String} triggerClass An additional CSS class used to style the trigger button.  The trigger will always get the
-     * class 'x-form-trigger' and triggerClass will be <b>appended</b> if specified (defaults to 'x-form-arrow-trigger'
-     * which displays a downward arrow icon).
-     */
-    triggerClass : 'x-form-arrow-trigger',
-    /**
-     * @cfg {Boolean/String} shadow True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right
-     */
-    shadow:'sides',
-    /**
-     * @cfg {String} listAlign A valid anchor position value. See {@link Ext.Element#alignTo} for details on supported
-     * anchor positions (defaults to 'tl-bl')
-     */
-    listAlign: 'tl-bl?',
-    /**
-     * @cfg {Number} maxHeight The maximum height in pixels of the dropdown list before scrollbars are shown (defaults to 300)
-     */
-    maxHeight: 300,
-    /**
-     * @cfg {String} triggerAction The action to execute when the trigger field is activated.  Use 'all' to run the
-     * query specified by the allQuery config option (defaults to 'query')
-     */
-    triggerAction: 'query',
-    /**
-     * @cfg {Number} minChars The minimum number of characters the user must type before autocomplete and typeahead activate
-     * (defaults to 4, does not apply if editable = false)
-     */
-    minChars : 4,
-    /**
-     * @cfg {Boolean} typeAhead True to populate and autoselect the remainder of the text being typed after a configurable
-     * delay (typeAheadDelay) if it matches a known value (defaults to false)
-     */
-    typeAhead: false,
-    /**
-     * @cfg {Number} queryDelay The length of time in milliseconds to delay between the start of typing and sending the
-     * query to filter the dropdown list (defaults to 500 if mode = 'remote' or 10 if mode = 'local')
-     */
-    queryDelay: 500,
-    /**
-     * @cfg {Number} pageSize If greater than 0, a paging toolbar is displayed in the footer of the dropdown list and the
-     * filter queries will execute with page start and limit parameters.  Only applies when mode = 'remote' (defaults to 0)
-     */
-    pageSize: 0,
-    /**
-     * @cfg {Boolean} selectOnFocus True to select any existing text in the field immediately on focus.  Only applies
-     * when editable = true (defaults to false)
-     */
-    selectOnFocus:false,
-    /**
-     * @cfg {String} queryParam Name of the query as it will be passed on the querystring (defaults to 'query')
-     */
-    queryParam: 'query',
-    /**
-     * @cfg {String} loadingText The text to display in the dropdown list while data is loading.  Only applies
-     * when mode = 'remote' (defaults to 'Loading...')
-     */
-    loadingText: 'Loading...',
-    /**
-     * @cfg {Boolean} resizable True to add a resize handle to the bottom of the dropdown list (defaults to false)
-     */
-    resizable: false,
-    /**
-     * @cfg {Number} handleHeight The height in pixels of the dropdown list resize handle if resizable = true (defaults to 8)
-     */
-    handleHeight : 8,
-    /**
-     * @cfg {Boolean} editable False to prevent the user from typing text directly into the field, just like a
-     * traditional select (defaults to true)
-     */
-    editable: true,
-    /**
-     * @cfg {String} allQuery The text query to send to the server to return all records for the list with no filtering (defaults to '')
-     */
-    allQuery: '',
-    /**
-     * @cfg {String} mode Set to 'local' if the ComboBox loads local data (defaults to 'remote' which loads from the server)
-     */
-    mode: 'remote',
-    /**
-     * @cfg {Number} minListWidth The minimum width of the dropdown list in pixels (defaults to 70, will be ignored if
-     * listWidth has a higher value)
-     */
-    minListWidth : 70,
-    /**
-     * @cfg {Boolean} forceSelection True to restrict the selected value to one of the values in the list, false to
-     * allow the user to set arbitrary text into the field (defaults to false)
-     */
-    forceSelection:false,
-    /**
-     * @cfg {Number} typeAheadDelay The length of time in milliseconds to wait until the typeahead text is displayed
-     * if typeAhead = true (defaults to 250)
-     */
-    typeAheadDelay : 250,
-    /**
-     * @cfg {String} valueNotFoundText When using a name/value combo, if the value passed to setValue is not found in
-     * the store, valueNotFoundText will be displayed as the field text if defined (defaults to undefined)
-     */
-    valueNotFoundText : undefined,
-
-    // private
-    onRender : function(ct, position){
-        Ext.form.ComboBox.superclass.onRender.call(this, ct, position);
-        if(this.hiddenName){
-            this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id: this.hiddenName},
-                    'before', true);
-            this.hiddenField.value =
-                this.hiddenValue !== undefined ? this.hiddenValue :
-                this.value !== undefined ? this.value : '';
-
-            // prevent input submission
-            this.el.dom.removeAttribute('name');
-        }
-        if(Ext.isGecko){
-            this.el.dom.setAttribute('autocomplete', 'off');
-        }
-
-        var cls = 'x-combo-list';
-
-        this.list = new Ext.Layer({
-            shadow: this.shadow, cls: [cls, this.listClass].join(' '), constrain:false
-        });
-
-        this.list.setWidth(this.listWidth || Math.max(this.wrap.getWidth(), this.minListWidth));
-        this.list.swallowEvent('mousewheel');
-        this.assetHeight = 0;
-
-        if(this.title){
-            this.header = this.list.createChild({cls:cls+'-hd', html: this.title});
-            this.assetHeight += this.header.getHeight();
-        }
-
-        this.innerList = this.list.createChild({cls:cls+'-inner'});
-        this.innerList.on('mouseover', this.onViewOver, this);
-        this.innerList.on('mousemove', this.onViewMove, this);
-
-        if(this.pageSize){
-            this.footer = this.list.createChild({cls:cls+'-ft'});
-            this.pageTb = new Ext.PagingToolbar(this.footer, this.store,
-                    {pageSize: this.pageSize});
-            this.assetHeight += this.footer.getHeight();
-        }
-
-        if(!this.tpl){
-            this.tpl = '<div class="'+cls+'-item">{' + this.displayField + '}</div>';
-        }
-
-        this.view = new Ext.View(this.innerList, this.tpl, {
-            singleSelect:true, store: this.store, selectedClass: this.selectedClass
-        });
-
-        this.view.on('click', this.onViewClick, this);
-
-        this.store.on('beforeload', this.onBeforeLoad, this);
-        this.store.on('load', this.onLoad, this);
-        this.store.on('loadexception', this.collapse, this);
-
-        if(this.resizable){
-            this.resizer = new Ext.Resizable(this.list,  {
-               pinned:true, handles:'se'
-            });
-            this.resizer.on('resize', function(r, w, h){
-                this.maxHeight = h-this.handleHeight-this.list.getFrameWidth('tb')-this.assetHeight;
-                this.listWidth = w;
-                this.restrictHeight();
-            }, this);
-            this[this.pageSize?'footer':'innerList'].setStyle('margin-bottom', this.handleHeight+'px');
-        }
-        if(!this.editable){
-            this.editable = true;
-            this.setEditable(false);
-        }
-    },
-
-    // private
-    initEvents : function(){
-        Ext.form.ComboBox.superclass.initEvents.call(this);
-
-        this.keyNav = new Ext.KeyNav(this.el, {
-            "up" : function(e){
-                this.inKeyMode = true;
-                this.selectPrev();
-            },
-
-            "down" : function(e){
-                if(!this.isExpanded()){
-                    this.onTriggerClick();
-                }else{
-                    this.inKeyMode = true;
-                    this.selectNext();
-                }
-            },
-
-            "enter" : function(e){
-                this.onViewClick();
-                //return true;
-            },
-
-            "esc" : function(e){
-                this.collapse();
-            },
-
-            "tab" : function(e){
-                this.onViewClick(false);
-                return true;
-            },
-
-            scope : this,
-
-            doRelay : function(foo, bar, hname){
-                if(hname == 'down' || this.scope.isExpanded()){
-                   return Ext.KeyNav.prototype.doRelay.apply(this, arguments);
-                }
-                return true;
-            }
-        });
-        this.queryDelay = Math.max(this.queryDelay || 10,
-                this.mode == 'local' ? 10 : 250);
-        this.dqTask = new Ext.util.DelayedTask(this.initQuery, this);
-        if(this.typeAhead){
-            this.taTask = new Ext.util.DelayedTask(this.onTypeAhead, this);
-        }
-        if(this.editable !== false){
-            this.el.on("keyup", this.onKeyUp, this);
-        }
-        if(this.forceSelection){
-            this.on('blur', this.doForce, this);
-        }
-    },
-
-    onDestroy : function(){
-        if(this.view){
-            this.view.setStore(null);
-            this.view.el.removeAllListeners();
-            this.view.el.remove();
-            this.view.purgeListeners();
-        }
-        if(this.list){
-            this.list.destroy();
-        }
-        if(this.store){
-            this.store.un('beforeload', this.onBeforeLoad, this);
-            this.store.un('load', this.onLoad, this);
-            this.store.un('loadexception', this.collapse, this);
-        }
-        Ext.form.ComboBox.superclass.onDestroy.call(this);
-    },
-
-    // private
-    fireKey : function(e){
-        if(e.isNavKeyPress() && !this.list.isVisible()){
-            this.fireEvent("specialkey", this, e);
-        }
-    },
-
-    // private
-    onResize: function(w, h){
-        if(this.list && this.listWidth === undefined){
-            this.list.setWidth(Math.max(w, this.minListWidth));
-        }
-    },
-
-    /**
-     * Allow or prevent the user from directly editing the field text.  If false is passed in,
-     * the user will only be able to select from the items defined in the dropdown list.  This method
-     * is the runtime equivalent of setting the editable config option at config time.
-     */
-    setEditable : function(value){
-        if(value == this.editable){
-            return;
-        }
-        this.editable = value;
-        if(!value){
-            this.el.dom.setAttribute('readOnly', true);
-            this.el.on('mousedown', this.onTriggerClick,  this);
-            this.el.addClass('x-combo-noedit');
-        }else{
-            this.el.dom.setAttribute('readOnly', false);
-            this.el.un('mousedown', this.onTriggerClick,  this);
-            this.el.removeClass('x-combo-noedit');
-        }
-    },
-
-    // private
-    onBeforeLoad : function(){
-        if(!this.hasFocus){
-            return;
-        }
-        this.innerList.update(this.loadingText ?
-               '<div class="loading-indicator">'+this.loadingText+'</div>' : '');
-        this.restrictHeight();
-        this.selectedIndex = -1;
-    },
-
-    // private
-    onLoad : function(){
-        if(!this.hasFocus){
-            return;
-        }
-        if(this.store.getCount() > 0){
-            this.expand();
-            this.restrictHeight();
-            if(this.lastQuery == this.allQuery){
-                if(this.editable){
-                    this.el.dom.select();
-                }
-                if(!this.selectByValue(this.value, true)){
-                    this.select(0, true);
-                }
-            }else{
-                this.selectNext();
-                if(this.typeAhead && this.lastKey != Ext.EventObject.BACKSPACE && this.lastKey != Ext.EventObject.DELETE){
-                    this.taTask.delay(this.typeAheadDelay);
-                }
-            }
-        }else{
-            this.onEmptyResults();
-        }
-        //this.el.focus();
-    },
-
-    // private
-    onTypeAhead : function(){
-        if(this.store.getCount() > 0){
-            var r = this.store.getAt(0);
-            var newValue = r.data[this.displayField];
-            var len = newValue.length;
-            var selStart = this.getRawValue().length;
-            if(selStart != len){
-                this.setRawValue(newValue);
-                this.selectText(selStart, newValue.length);
-            }
-        }
-    },
-
-    // private
-    onSelect : function(record, index){
-        if(this.fireEvent('beforeselect', this, record, index) !== false){
-            this.setValue(record.data[this.valueField || this.displayField]);
-            this.collapse();
-            this.fireEvent('select', this, record, index);
-        }
-    },
-
-    /**
-     * Returns the currently-selected field value or empty string if no value is set.
-     * @return {String} value The selected value
-     */
-    getValue : function(){
-        if(this.valueField){
-            return typeof this.value != 'undefined' ? this.value : '';
-        }else{
-            return Ext.form.ComboBox.superclass.getValue.call(this);
-        }
-    },
-
-    /**
-     * Clears any text/value currently set in the field
-     */
-    clearValue : function(){
-        if(this.hiddenField){
-            this.hiddenField.value = '';
-        }
-        this.setRawValue('');
-        this.lastSelectionText = '';
-    },
-
-    /**
-     * Sets the specified value into the field.  If the value finds a match, the corresponding record text
-     * will be displayed in the field.  If the value does not match the data value of an existing item,
-     * and the valueNotFoundText config option is defined, it will be displayed as the default field text.
-     * Otherwise the field will be blank (although the value will still be set).
-     * @param {String} value The value to match
-     */
-    setValue : function(v){
-        var text = v;
-        if(this.valueField){
-            var r = this.findRecord(this.valueField, v);
-            if(r){
-                text = r.data[this.displayField];
-            }else if(this.valueNotFoundText){
-                text = this.valueNotFoundText;
-            }
-        }
-        this.lastSelectionText = text;
-        if(this.hiddenField){
-            this.hiddenField.value = v;
-        }
-        Ext.form.ComboBox.superclass.setValue.call(this, text);
-        this.value = v;
-    },
-
-    // private
-    findRecord : function(prop, value){
-        var record;
-        if(this.store.getCount() > 0){
-            this.store.each(function(r){
-                if(r.data[prop] == value){
-                    record = r;
-                    return false;
-                }
-            });
-        }
-        return record;
-    },
-
-    // private
-    onViewMove : function(e, t){
-        this.inKeyMode = false;
-    },
-
-    // private
-    onViewOver : function(e, t){
-        if(this.inKeyMode){ // prevent key nav and mouse over conflicts
-            return;
-        }
-        var item = this.view.findItemFromChild(t);
-        if(item){
-            var index = this.view.indexOf(item);
-            this.select(index, false);
-        }
-    },
-
-    // private
-    onViewClick : function(doFocus){
-        var index = this.view.getSelectedIndexes()[0];
-        var r = this.store.getAt(index);
-        if(r){
-            this.onSelect(r, index);
-        }
-        if(doFocus !== false){
-            this.el.focus();
-        }
-    },
-
-    // private
-    restrictHeight : function(){
-        this.innerList.dom.style.height = '';
-        var inner = this.innerList.dom;
-        var h = Math.max(inner.clientHeight, inner.offsetHeight, inner.scrollHeight);
-        this.innerList.setHeight(h < this.maxHeight ? 'auto' : this.maxHeight);
-        this.list.beginUpdate();
-        this.list.setHeight(this.innerList.getHeight()+this.list.getFrameWidth('tb')+(this.resizable?this.handleHeight:0)+this.assetHeight);
-        this.list.alignTo(this.el, this.listAlign);
-        this.list.endUpdate();
-    },
-
-    // private
-    onEmptyResults : function(){
-        this.collapse();
-    },
-
-    /**
-     * Returns true if the dropdown list is expanded, else false.
-     */
-    isExpanded : function(){
-        return this.list.isVisible();
-    },
-
-    /**
-     * Select an item in the dropdown list by its data value
-     * @param {String} value The data value of the item to select
-     * @param {Boolean} scrollIntoView False to prevent the dropdown list from autoscrolling to display the
-     * selected item if it is not currently in view (defaults to true)
-     * @return {Boolean} valueFound True if the value matched an item in the list, else false
-     */
-    selectByValue : function(v, scrollIntoView){
-        if(v !== undefined && v !== null){
-            var r = this.findRecord(this.valueField || this.displayField, v);
-            if(r){
-                this.select(this.store.indexOf(r), scrollIntoView);
-                return true;
-            }
-        }
-        return false;
-    },
-
-    /**
-     * Select an item in the dropdown list by its numeric index in the list
-     * @param {Number} index The zero-based index of the list item to select
-     * @param {Boolean} scrollIntoView False to prevent the dropdown list from autoscrolling to display the
-     * selected item if it is not currently in view (defaults to true)
-     */
-    select : function(index, scrollIntoView){
-        this.selectedIndex = index;
-        this.view.select(index);
-        if(scrollIntoView !== false){
-            var el = this.view.getNode(index);
-            if(el){
-                this.innerList.scrollChildIntoView(el);
-            }
-        }
-    },
-
-    /**
-     * Select the next item in the dropdown list (selects the first item by default if no items are currently selected)
-     */
-    selectNext : function(){
-        var ct = this.store.getCount();
-        if(ct > 0){
-            if(this.selectedIndex == -1){
-                this.select(0);
-            }else if(this.selectedIndex < ct-1){
-                this.select(this.selectedIndex+1);
-            }
-        }
-    },
-
-    /**
-     * Select the previous item in the dropdown list (selects the first item by default if no items are currently selected)
-     */
-    selectPrev : function(){
-        var ct = this.store.getCount();
-        if(ct > 0){
-            if(this.selectedIndex == -1){
-                this.select(0);
-            }else if(this.selectedIndex != 0){
-                this.select(this.selectedIndex-1);
-            }
-        }
-    },
-
-    // private
-    onKeyUp : function(e){
-        if(this.editable !== false && !e.isSpecialKey()){
-            this.lastKey = e.getKey();
-            this.dqTask.delay(this.queryDelay);
-        }
-    },
-
-    // private
-    validateBlur : function(){
-        return !this.list || !this.list.isVisible();   
-    },
-
-    // private
-    initQuery : function(){
-        this.doQuery(this.getRawValue());
-    },
-
-    // private
-    doForce : function(){
-        if(this.el.dom.value.length > 0){
-            this.el.dom.value =
-                this.lastSelectionText === undefined ? '' : this.lastSelectionText;
-            this.applyEmptyText();
-        }
-    },
-
-    /**
-     * Execute a query to filter the dropdown list.  Fires the beforequery event prior to performing the
-     * query allowing the query action to be canceled if needed.
-     * @param {String} query The sql query to execute
-     * @param {Boolean} forceAll True to force the query to execute even if there are currently fewer characters
-     * in the field than the minimum specified by the minChars config option.  It also clears any filter previously
-     * saved in the current store (defaults to false)
-     */
-    doQuery : function(q, forceAll){
-        if(q === undefined || q === null){
-            q = '';
-        }
-        var qe = {
-            query: q,
-            forceAll: forceAll,
-            combo: this,
-            cancel:false
-        };
-        if(this.fireEvent('beforequery', qe)===false || qe.cancel){
-            return false;
-        }
-        q = qe.query;
-        forceAll = qe.forceAll;
-        if(forceAll === true || (q.length >= this.minChars)){
-            if(this.lastQuery != q){
-                this.lastQuery = q;
-                if(this.mode == 'local'){
-                    this.selectedIndex = -1;
-                    if(forceAll){
-                        this.store.clearFilter();
-                    }else{
-                        this.store.filter(this.displayField, q);
-                    }
-                    this.onLoad();
-                }else{
-                    this.store.baseParams[this.queryParam] = q;
-                    this.store.load({
-                        params: this.getParams(q)
-                    });
-                    this.expand();
-                }
-            }else{
-                this.selectedIndex = -1;
-                this.onLoad();   
-            }
-        }
-    },
-
-    // private
-    getParams : function(q){
-        var p = {};
-        //p[this.queryParam] = q;
-        if(this.pageSize){
-            p.start = 0;
-            p.limit = this.pageSize;
-        }
-        return p;
-    },
-
-    /**
-     * Hides the dropdown list if it is currently expanded. Fires the 'collapse' event on completion.
-     */
-    collapse : function(){
-        if(!this.isExpanded()){
-            return;
-        }
-        this.list.hide();
-        Ext.get(document).un('mousedown', this.collapseIf, this);
-        this.fireEvent('collapse', this);
-    },
-
-    // private
-    collapseIf : function(e){
-        if(!e.within(this.wrap) && !e.within(this.list)){
-            this.collapse();
-        }
-    },
-
-    /**
-     * Expands the dropdown list if it is currently hidden. Fires the 'expand' event on completion.
-     */
-    expand : function(){
-        if(this.isExpanded() || !this.hasFocus){
-            return;
-        }
-        this.list.alignTo(this.el, this.listAlign);
-        this.list.show();
-        Ext.get(document).on('mousedown', this.collapseIf, this);
-        this.fireEvent('expand', this);
-    },
-
-    // private
-    // Implements the default empty TriggerField.onTriggerClick function
-    onTriggerClick : function(){
-        if(this.disabled){
-            return;
-        }
-        if(this.isExpanded()){
-            this.collapse();
-            this.el.focus();
-        }else{
-            this.hasFocus = true;
-            this.doQuery(this.triggerAction == 'all' ?
-                     this.doQuery(this.allQuery, true) : this.doQuery(this.getRawValue()));
-            this.el.focus();
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Component.jss.html b/www/extras/extjs/docs/output/Component.jss.html deleted file mode 100644 index 2e5c839f8..000000000 --- a/www/extras/extjs/docs/output/Component.jss.html +++ /dev/null @@ -1,406 +0,0 @@ -Component.js

Component.js

/**
- * @class Ext.ComponentMgr
- * Provides a common registry of all components on a page so that they can be easily accessed by component id.
- * @singleton
- */
-Ext.ComponentMgr = function(){
-    var all = new Ext.util.MixedCollection();
-
-    return {
-        // private
-        register : function(c){
-            all.add(c);
-        },
-
-        // private
-        unregister : function(c){
-            all.remove(c);
-        },
-
-        /**
-         * Returns a component by id
-         * @param {String} id The component id
-         */
-        get : function(id){
-            return all.get(id);
-        },
-
-        /**
-         * Registers a function that will be called when a specified component is added to ComponentMgr
-         * @param {String} id The component id
-         * @param {Funtction} fn The callback function
-         * @param {Object} scope The scope of the callback
-         */
-        onAvailable : function(id, fn, scope){
-            all.on("add", function(index, o){
-                if(o.id == id){
-                    fn.call(scope || o, o);
-                    all.un("add", fn, scope);
-                }
-            });
-        }
-    };
-}();
-
-/**
- * @class Ext.Component
- * @extends Ext.util.Observable
- * Base class for all Ext form controls that provides a common set of events and functionality shared by all components.
- * @constructor
- * @param {Ext.Element/String/Object} config The configuration options.  If an element is passed, it is set as the internal
- * element and its id used as the component id.  If a string is passed, it is assumed to be the id of an existing element
- * and is used as the component id.  Otherwise, it is assumed to be a standard config object and is applied to the component.
- */
-Ext.Component = function(config){
-    config = config || {};
-    if(config.tagName || config.dom || typeof config == "string"){ // element object
-        config = {el: config, id: config.id || config};
-    }
-    this.initialConfig = config;
-
-    Ext.apply(this, config);
-    this.addEvents({
-        /**
-         * @event disable
-         * Fires after the component is disabled
-	     * @param {Ext.Component} this
-	     */
-        disable : true,
-        /**
-         * @event enable
-         * Fires after the component is enabled
-	     * @param {Ext.Component} this
-	     */
-        enable : true,
-        /**
-         * @event beforeshow
-         * Fires before the component is shown
-	     * @param {Ext.Component} this
-	     */
-        beforeshow : true,
-        /**
-         * @event show
-         * Fires after the component is shown
-	     * @param {Ext.Component} this
-	     */
-        show : true,
-        /**
-         * @event beforehide
-         * Fires before the component is hidden
-	     * @param {Ext.Component} this
-	     */
-        beforehide : true,
-        /**
-         * @event hide
-         * Fires after the component is hidden
-	     * @param {Ext.Component} this
-	     */
-        hide : true,
-        /**
-         * @event beforerender
-         * Fires before the component is rendered
-	     * @param {Ext.Component} this
-	     */
-        beforerender : true,
-        /**
-         * @event render
-         * Fires after the component is rendered
-	     * @param {Ext.Component} this
-	     */
-        render : true,
-        /**
-         * @event beforedestroy
-         * Fires before the component is destroyed
-	     * @param {Ext.Component} this
-	     */
-        beforedestroy : true,
-        /**
-         * @event destroy
-         * Fires after the component is destroyed
-	     * @param {Ext.Component} this
-	     */
-        destroy : true
-    });
-    if(!this.id){
-        this.id = "ext-comp-" + (++Ext.Component.AUTO_ID);
-    }
-    Ext.ComponentMgr.register(this);
-    Ext.Component.superclass.constructor.call(this);
-    this.initComponent();
-};
-
-// private
-Ext.Component.AUTO_ID = 1000;
-
-Ext.extend(Ext.Component, Ext.util.Observable, {
-    /**
-     * true if this component is hidden. Read-only.
-     */
-    hidden : false,
-    /**
-     * true if this component is disabled. Read-only.
-     */
-    disabled : false,
-    /**
-     * CSS class added to the component when it is disabled.
-     */
-    disabledClass : "x-item-disabled",
-    /**
-     * true if this component has been rendered. Read-only.
-     */
-    rendered : false,
-
-    allowDomMove: true,
-
-    // private
-    ctype : "Ext.Component",
-
-    // private
-    actionMode : "el",
-
-    // private
-    getActionEl : function(){
-        return this[this.actionMode];
-    },
-
-    initComponent : Ext.emptyFn,     
-    /**
-     * If this is a lazy rendering component, render it to its container element
-     * @param {String/HTMLElement/Element} container (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
-     */
-    render : function(container, position){
-        if(!this.rendered && this.fireEvent("beforerender", this) !== false){
-            if(!container && this.el){
-                this.el = Ext.get(this.el);
-                container = this.el.dom.parentNode;
-                this.allowDomMove = false;
-            }
-            this.container = Ext.get(container);
-            this.rendered = true;
-            if(position !== undefined){
-                if(typeof position == 'number'){
-                    position = this.container.dom.childNodes[position];
-                }else{
-                    position = Ext.getDom(position);
-                }
-            }
-            this.onRender(this.container, position || null);
-            if(this.cls){
-                this.el.addClass(this.cls);
-                delete this.cls;
-            }
-            if(this.style){
-                this.el.applyStyles(this.style);
-                delete this.style;
-            }
-            this.fireEvent("render", this);
-            this.afterRender(this.container);
-            if(this.hidden){
-                this.hide();
-            }
-            if(this.disabled){
-                this.disable();
-            }
-        }
-        return this;
-    },
-
-    // private
-    // default function is not really useful
-    onRender : function(ct, position){
-        if(this.el){
-            this.el = Ext.get(this.el);
-            if(this.allowDomMove !== false){
-                ct.dom.insertBefore(this.el.dom, position);
-            }
-        }
-    },
-
-    // private
-    getAutoCreate : function(){
-        var cfg = typeof this.autoCreate == "object" ?
-                      this.autoCreate : Ext.apply({}, this.defaultAutoCreate);
-        if(this.id && !cfg.id){
-            cfg.id = this.id;
-        }
-        return cfg;
-    },
-
-    // private
-    afterRender : Ext.emptyFn,
-
-    // private
-    destroy : function(){
-        if(this.fireEvent("beforedestroy", this) !== false){
-            this.purgeListeners();
-            this.beforeDestroy();
-            if(this.rendered){
-                this.el.removeAllListeners();
-                this.el.remove();
-                if(this.actionMode == "container"){
-                    this.container.remove();
-                }
-            }
-            this.onDestroy();
-            Ext.ComponentMgr.unregister(this);
-            this.fireEvent("destroy", this);
-        }
-    },
-
-    beforeDestroy : function(){
-
-    },
-
-    onDestroy : function(){
-
-    },
-
-    /**
-     * Returns the underlying {@link Ext.Element}
-     * @return {Ext.Element} The element
-     */
-    getEl : function(){
-        return this.el;
-    },
-
-    /**
-     * Returns the id of this component
-     * @return {String}
-     */
-    getId : function(){
-        return this.id;
-    },
-
-    /**
-     * Try to focus this component
-     * @param {Boolean} selectText True to also select the text in this component (if applicable)
-     */
-    focus : function(selectText){
-        if(this.rendered){
-            this.el.focus();
-            if(selectText === true){
-                this.el.dom.select();
-            }
-        }
-        return this;
-    },
-
-    // private
-    blur : function(){
-        if(this.rendered){
-            this.el.blur();
-        }
-        return this;
-    },
-
-    /**
-     * Disable this component
-     */
-    disable : function(){
-        if(this.rendered){
-            this.onDisable();
-        }
-        this.disabled = true;
-        this.fireEvent("disable", this);
-        return this;
-    },
-
-    onDisable : function(){
-        this.getActionEl().addClass(this.disabledClass);
-        this.el.dom.disabled = true;
-    },
-
-    /**
-     * Enable this component
-     */
-    enable : function(){
-        if(this.rendered){
-            this.onEnable();
-        }
-        this.disabled = false;
-        this.fireEvent("enable", this);
-        return this;
-    },
-
-    onEnable : function(){
-        this.getActionEl().removeClass(this.disabledClass);
-        this.el.dom.disabled = false;
-    },
-
-    /**
-     * Convenience function for setting disabled/enabled by boolean
-     * @param {Boolean} disabled
-     */
-    setDisabled : function(disabled){
-        this[disabled ? "disable" : "enable"]();
-    },
-
-    /**
-     * Show this component
-     */
-    show: function(){
-        if(this.fireEvent("beforeshow", this) !== false){
-            this.hidden = false;
-            if(this.rendered){
-                this.onShow();
-            }
-            this.fireEvent("show", this);
-        }
-        return this;
-    },
-
-    // private
-    onShow : function(){
-        var st = this.getActionEl().dom.style;
-        st.display = "";
-        st.visibility = "visible";
-    },
-
-    /**
-     * Hide this component
-     */
-    hide: function(){
-        if(this.fireEvent("beforehide", this) !== false){
-            this.hidden = true;
-            if(this.rendered){
-                this.onHide();
-            }
-            this.fireEvent("hide", this);
-        }
-        return this;
-    },
-
-    // private
-    onHide : function(){
-        this.getActionEl().dom.style.display = "none";
-    },
-
-    /**
-     * Convenience function to hide or show this component by boolean
-     * @param {Boolean} visible True to show, false to hide
-     */
-    setVisible: function(visible){
-        if(visible) {
-            this.show();
-        }else{
-            this.hide();
-        }
-        return this;
-    },
-
-    /**
-     * Returns true if this component is visible
-     */
-    isVisible : function(){
-        return this.getActionEl().isVisible();
-    },
-
-    cloneConfig : function(overrides){
-        overrides = overrides || {};
-        var id = overrides.id || Ext.id();
-        var cfg = Ext.applyIf(overrides, this.initialConfig);
-        cfg.id = id; // prevent dup id
-        return new this.__extcls(cfg);
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/CompositeElement.jss.html b/www/extras/extjs/docs/output/CompositeElement.jss.html deleted file mode 100644 index 13e90e6f5..000000000 --- a/www/extras/extjs/docs/output/CompositeElement.jss.html +++ /dev/null @@ -1,205 +0,0 @@ -CompositeElement.js

CompositeElement.js

/**
- * @class Ext.CompositeElement
- * Standard composite class. Creates a Ext.Element for every element in the collection.
- * <br><br>
- * <b>NOTE: Although they are not listed, this class supports all of the set/update methods of Ext.Element. All Ext.Element
- * actions will be performed on all the elements in this collection.</b>
- * <br><br>
- * All methods return <i>this</i> and can be chained.
- <pre><code>
- var els = getEls("#some-el div.some-class");
- // or
- var els = Ext.Element.select("#some-el div.some-class");
- els.setWidth(100); // all elements become 100 width
- els.hide(true); // all elements fade out and hide
- // or
- els.setWidth(100).hide(true);
- </code></pre>
- */
-Ext.CompositeElement = function(els){
-    this.elements = [];
-    this.addElements(els);
-};
-Ext.CompositeElement.prototype = {
-    isComposite: true,
-    addElements : function(els){
-        if(!els) return this;
-        if(typeof els == "string"){
-            els = Ext.Element.selectorFunction(els);
-        }
-        var yels = this.elements;
-        var index = yels.length-1;
-        for(var i = 0, len = els.length; i < len; i++) {
-        	yels[++index] = Ext.get(els[i], true);
-        }
-        return this;
-    },
-    invoke : function(fn, args){
-        var els = this.elements;
-        for(var i = 0, len = els.length; i < len; i++) {
-        	Ext.Element.prototype[fn].apply(els[i], args);
-        }
-        return this;
-    },
-    /**
-    * Adds elements to this composite.
-    * @param {String/Array} els A string CSS selector, an array of elements or an element
-    * @return {CompositeElement} this
-    */
-    add : function(els){
-        if(typeof els == "string"){
-            this.addElements(Ext.Element.selectorFunction(els));
-        }else if(els.length !== undefined){
-            this.addElements(els);
-        }else{
-            this.addElements([els]);
-        }
-        return this;
-    },
-    /**
-    * Calls the passed function passing (el, this, index) for each element in this composite.
-    * @param {Function} fn The function to call
-    * @param {Object} scope (optional) The <i>this</i> object (defaults to the element)
-    * @return {CompositeElement} this
-    */
-    each : function(fn, scope){
-        var els = this.elements;
-        for(var i = 0, len = els.length; i < len; i++){
-            if(fn.call(scope || els[i], els[i], this, i) === false) {
-                break;
-            }
-        }
-        return this;
-    },
-
-    /**
-     * Returns the Element object at the specified index
-     * @param {Number} index
-     * @return {Ext.Element}
-     */
-    item : function(index){
-        return this.elements[index];
-    }
-};
-(function(){
-Ext.CompositeElement.createCall = function(proto, fnName){
-    if(!proto[fnName]){
-        proto[fnName] = function(){
-            return this.invoke(fnName, arguments);
-        };
-    }
-};
-for(var fnName in Ext.Element.prototype){
-    if(typeof Ext.Element.prototype[fnName] == "function"){
-        Ext.CompositeElement.createCall(Ext.CompositeElement.prototype, fnName);
-    }
-};
-})();
-
-/**
- * @class Ext.CompositeElementLite
- * @extends Ext.CompositeElement
- * Flyweight composite class. Reuses the same Ext.Element for element operations.
- * <br><br>
- * <b>NOTE: Although they are not listed, this class supports all of the set/update methods of Ext.Element. All Ext.Element
- * actions will be performed on all the elements in this collection.</b>
- */
-Ext.CompositeElementLite = function(els){
-    Ext.CompositeElementLite.superclass.constructor.call(this, els);
-    var flyEl = function(){};
-    flyEl.prototype = Ext.Element.prototype;
-    this.el = new Ext.Element.Flyweight();
-};
-Ext.extend(Ext.CompositeElementLite, Ext.CompositeElement, {
-    addElements : function(els){
-        if(els){
-            if(els instanceof Array){
-                this.elements = this.elements.concat(els);
-            }else{
-                var yels = this.elements;
-                var index = yels.length-1;
-                for(var i = 0, len = els.length; i < len; i++) {
-                    yels[++index] = els[i];
-                }
-            }
-        }
-        return this;
-    },
-    invoke : function(fn, args){
-        var els = this.elements;
-        var el = this.el;
-        for(var i = 0, len = els.length; i < len; i++) {
-            el.dom = els[i];
-        	Ext.Element.prototype[fn].apply(el, args);
-        }
-        return this;
-    },
-    /**
-     * Returns a flyweight Element of the dom element object at the specified index
-     * @param {Number} index
-     * @return {Ext.Element}
-     */
-    item : function(index){
-        this.el.dom = this.elements[index];
-        return this.el;
-    },
-
-    // fixes scope with flyweight
-    addListener : function(eventName, handler, scope, opt){
-        var els = this.elements;
-        for(var i = 0, len = els.length; i < len; i++) {
-            Ext.EventManager.on(els[i], eventName, handler, scope || els[i], opt);
-        }
-        return this;
-    },
-
-    /**
-    * Calls the passed function passing (el, this, index) for each element in this composite. <b>The element
-    * passed is the flyweight (shared) Ext.Element instance, so if you require a
-    * a reference to the dom node, use el.dom.</b>
-    * @param {Function} fn The function to call
-    * @param {Object} scope (optional) The <i>this</i> object (defaults to the element)
-    * @return {CompositeElement} this
-    */
-    each : function(fn, scope){
-        var els = this.elements;
-        var el = this.el;
-        for(var i = 0, len = els.length; i < len; i++){
-            el.dom = els[i];
-        	if(fn.call(scope || el, el, this, i) === false){
-                break;
-            }
-        }
-        return this;
-    }
-});
-Ext.CompositeElementLite.prototype.on = Ext.CompositeElementLite.prototype.addListener;
-if(Ext.DomQuery){
-    Ext.Element.selectorFunction = Ext.DomQuery.select;
-}
-
-Ext.Element.select = function(selector, unique){
-    var els;
-    if(typeof selector == "string"){
-        els = Ext.Element.selectorFunction(selector);
-    }else if(selector.length !== undefined){
-        els = selector;
-    }else{
-        throw "Invalid selector";
-    }
-    if(unique === true){
-        return new Ext.CompositeElement(els);
-    }else{
-        return new Ext.CompositeElementLite(els);
-    }
-};
-/**
- * Selects elements based on the passed CSS selector to enable working on them as 1.
- * @param {String/Array} selector The CSS selector or an array of elements
- * @param {Boolean} unique (optional) true to create a unique Ext.Element for each element (defaults to a shared flyweight object)
- * @return {CompositeElementLite/CompositeElement}
- * @member Ext
- * @method select
- */
-Ext.select = Ext.Element.select;

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Connection.jss.html b/www/extras/extjs/docs/output/Connection.jss.html deleted file mode 100644 index 3b8c7ff22..000000000 --- a/www/extras/extjs/docs/output/Connection.jss.html +++ /dev/null @@ -1,126 +0,0 @@ -Connection.js

Connection.js

/**
- * @class Ext.data.Connection
- * The class encapsulates a connection to the page's originating domain, allowing requests to be made
- * either to a configured URL, or to a URL specified at request time.
- * <p>
- * Requests made by this class are asynchronous, and will return immediately, and no data from
- * the server will be available. To process the returned data, us a callback in the request options
- * object.
- * @constructor
- * @param config {Object} a configuration object.
- */
-Ext.data.Connection = function(config){
-    Ext.apply(this, config);
-    this.addEvents({
-        "beforerequest" : true,
-        "requestcomplete" : true,
-        "requestexception" : true
-    });
-    Ext.data.Connection.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.data.Connection, Ext.util.Observable, {
-    /**
-     * @cfg url {String} (Optional) The default URL to be used for requests to the server.
-     */
-// holder
-/***
-     * @cfg extraParams {Object} (Optional) An object containing properties which are used as
-     * extra parameters to each request made by this object.
-     */
-// holder
-/***
-     * @cfg method {String} (Optional) The default HTTP method to be used for requests.
-     */
-// holder
-/***
-     * @cfg timeout {Number} (Optional) The timeout in milliseconds to be used for requests. Defaults
-     * to 30000.
-     */
-    timeout : 30000,
-    
-    /**
-     * Sends an HTTP request to a remote server.
-     * @param {Object} options. An object which may contain the following properties:<ul>
-     * <li>url {String} (Optional) The URL to which to send the request. Defaults to configured URL</li>
-     * <li>params {Object} (Optional) An object containing properties which are used as extra parameters to the request</li>
-     * <li>method {String} (Optional) The HTTP method to use for the request. Defaults to the configured method, or
-     * if no method was configured, "GET" if no parameters are being sent, and "POST" if parameters are being sent.</li>
-     * <li>callback {Function} (Optional) The function to be called upon receipt of the HTTP response.
-     * The callback is passed the following parameters:<ul>
-     * <li>options {Object} The parameter to the request call.</li>
-     * <li>success {Boolean} True if the request succeeded.</li>
-     * <li>resopnse {Object} The XMLHttpRequest object containing the response data.</li>
-     * </ul></li>
-     * <li>scope {Object} (Optional) The scope in which to execute the callback: The "this" object
-     * for the callback function. Defaults to the browser window.</li>
-     * </ul>
-     */
-    request : function(options){
-        if(this.fireEvent("beforerequest", this, options) !== false){
-            var p = options.params;
-            if(typeof p == "object"){
-                p = Ext.urlEncode(Ext.apply(options.params, this.extraParams));
-            }
-            var cb = {
-                success: this.handleResponse,
-                failure: this.handleFailure,
-                scope: this,
-        		argument: {options: options},
-        		timeout : this.timeout
-            };
-            var method = options.method||this.method||(p ? "POST" : "GET");
-            var url = options.url || this.url;
-            if(this.autoAbort !== false){
-                this.abort();
-            }
-            if(method == 'GET' && p){
-                url += (url.indexOf('?') != -1 ? '&' : '?') + p;
-                p = '';
-            }
-            this.transId = Ext.lib.Ajax.request(method, url, cb, p);
-        }else{
-            if(typeof options.callback == "function"){
-                options.callback.call(options.scope||window, options, null, null);
-            }
-        }
-    },
-
-    /**
-     * Determine whether this object has a request outstanding.
-     * @return {Boolean} True if there is an outstanding request.
-     */
-    isLoading : function(){
-        return this.transId ? true : false;  
-    },
-
-    /**
-     * Aborts any outstanding request.
-     */
-    abort : function(){
-        if(this.isLoading()){
-            Ext.lib.Ajax.abort(this.transId);
-        }
-    },
-
-    // private
-    handleResponse : function(response){
-        this.transId = false;
-        var options = response.argument.options;
-        this.fireEvent("requestcomplete", this, response, options);
-        if(typeof options.callback == "function"){
-            options.callback.call(options.scope||window, options, true, response);
-        }
-    },
-
-    // private
-    handleFailure : function(response, e){
-        this.transId = false;
-        var options = response.argument.options;
-        this.fireEvent("requestexception", this, response, options, e);
-        if(typeof options.callback == "function"){
-            options.callback.call(options.scope||window, options, false, response);
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Container.jss.html b/www/extras/extjs/docs/output/Container.jss.html deleted file mode 100644 index 4b4d02972..000000000 --- a/www/extras/extjs/docs/output/Container.jss.html +++ /dev/null @@ -1,160 +0,0 @@ -Container.js

Container.js

Ext.Container = function(config){
-    Ext.Container.superclass.constructor.call(this, config);
-    if(this.renderTo){
-        this.render(this.renderTo);
-        delete this.renderTo;
-    }
-};
-
-Ext.extend(Ext.Container, Ext.BoxComponent, {
-    autoDestroy: true,
-
-    initComponent : function(){
-        Ext.Container.superclass.initComponent.call(this);
-
-        this.addEvents({
-            'beforeadd':true,
-            'beforeremove':true,
-            'add':true,
-            'remove':true
-        });
-
-        var items = this.items;
-        if(items){
-            delete this.items;
-            if(items instanceof Array){
-                this.add.apply(this, items);
-            }else{
-                this.add(items);
-            }
-        }
-    },
-
-    initItems : function(){
-        if(!this.items){
-            this.items = new Ext.util.MixedCollection(false, this.getComponentId);
-            this.getLayout(); // initialize the layout
-        }
-    },
-
-    setLayout : function(layout){
-        if(this.layout && this.layout != layout){
-            this.layout.setContainer(null);
-        }
-        this.layout = layout;
-        layout.setContainer(this);
-    },
-
-    render : function(){
-        Ext.Container.superclass.render.apply(this, arguments);
-        if(this.layout){
-            this.setLayout(this.layout);
-        }
-        this.doLayout();
-    },
-
-    getLayoutTarget : function(){
-        return this.el;  
-    },
-
-    getComponentId : function(comp){
-        return comp.id;
-    },
-
-    add : function(comp){
-        if(!this.items){
-            this.initItems();
-        }
-        var a = arguments, len = a.length;
-        if(len > 1){
-            for(var i = 0; i < len; i++) {
-                this.add(a[i]);
-            }
-        }else{
-            var c = this.lookupComponent(comp);
-            var pos = this.items.length;
-            if(this.fireEvent('beforeadd', this, c, pos) !== false){
-                this.items.add(c);
-                c.ownerCt = this;
-                this.fireEvent('add', this, c, pos);
-            }
-        }
-        return this;
-    },
-
-    insert : function(index, comp){
-        if(!this.items){
-            this.initItems();
-        }
-        var a = arguments, len = a.length;
-        if(len > 1){
-            for(var i = len; i >= 0; --i) {
-                this.insert(index, a[i]);
-            }
-        }else{
-
-            var c = this.lookupComponent(comp);
-            if(this.fireEvent('beforeadd', this, c, index) !== false){
-                this.items.insert(index, c);
-                this.fireEvent('add', this, c, index);
-            }
-        }
-        return this;
-    },
-
-    remove : function(comp){
-        var c = this.getComponent(comp);
-        if(this.fireEvent('beforeremove', this, c) !== false){
-            this.items.remove(c);
-            if(this.autoDestroy){
-                c.destroy();
-            }
-            this.fireEvent('remove', this, c);
-        }
-    },
-
-    getComponent : function(comp){
-        if(typeof comp == 'object'){
-            return comp;
-        }
-        return this.items.get(comp);
-    },
-
-    // private
-    lookupComponent : function(comp){
-        if(typeof comp == 'string'){
-            return Ext.ComponentMgr.get(comp);
-        }else if(!comp.events){
-            return this.createComponent(comp);
-        }
-        return comp;
-    },
-
-    createComponent : function(config){
-        return new Ext.Panel(config);
-    },
-
-    doLayout : function(){
-        if(this.layout){
-            this.layout.layout();
-        }
-        if(this.items){
-            var cs = this.items.items;
-            for(var i = 0, len = cs.length; i < len; i++) {
-                var c  = cs[i];
-                if(c.doLayout){
-                    c.doLayout();
-                }
-            }
-        }
-    },
-
-    getLayout : function(){
-        if(!this.layout){
-            var layout = new Ext.layout.AutoLayout();
-            this.setLayout(layout);
-        }
-        return this.layout;
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ContainerLayout.jss.html b/www/extras/extjs/docs/output/ContainerLayout.jss.html deleted file mode 100644 index be3ac9a28..000000000 --- a/www/extras/extjs/docs/output/ContainerLayout.jss.html +++ /dev/null @@ -1,41 +0,0 @@ -ContainerLayout.js

ContainerLayout.js

Ext.layout.ContainerLayout = function(config){
-    Ext.apply(this, config);
-};
-
-Ext.layout.ContainerLayout.prototype = {
-    monitorResize:false,
-    activeItem : null,
-
-    layout : function(){
-        this.onLayout(this.container,
-                this.container.getLayoutTarget());
-    },
-
-    onLayout : function(ct, target){
-        var items = ct.items.items;
-        for(var i = 0, len = items.length; i < len; i++) {
-            var c = items[i];
-            if(!c.rendered){
-                c.render(target, i);
-                if(this.renderHidden && c != this.activeItem){
-                    c.hide();
-                }
-            }
-        }
-    },
-
-    onResize: function(){
-        this.layout();
-    },
-
-    setContainer : function(ct){
-        if(this.monitorResize){
-            if(ct && this.container && ct != this.container){
-                this.container.un('resize', this.onResize, this);
-            }
-            ct.on('resize', this.onResize, this);
-        }
-        this.container = ct;
-    }
-};

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ContentPanels.jss.html b/www/extras/extjs/docs/output/ContentPanels.jss.html deleted file mode 100644 index c7271e4cb..000000000 --- a/www/extras/extjs/docs/output/ContentPanels.jss.html +++ /dev/null @@ -1,467 +0,0 @@ -ContentPanels.js

ContentPanels.js

/**
- * @class Ext.ContentPanel
- * @extends Ext.util.Observable
- * A basic ContentPanel element.
- * @cfg {Boolean} fitToFrame True for this panel to adjust its size to fit when the region resizes  (defaults to false)
- * @cfg {Boolean} fitContainer When using fitToFrame and resizeEl, you can also fit the parent container  (defaults to false)
- * @cfg {Boolean/Object} autoCreate True to auto generate the DOM element for this panel, or a DomHelper config of the element to create
- * @cfg {Boolean} closable True if the panel can be closed/removed
- * @cfg {Boolean} background True if the panel should not be activated when it is added (defaults to false)
- * @cfg {String/HTMLElement/Element} resizeEl An element to resize if fitToFrame is true (instead of this panel's element)
- * @cfg {Toolbar} toolbar A toolbar for this panel
- * @cfg {Boolean} autoScroll True to scroll overflow in this panel (use with fitToFrame)
- * @cfg {String} title The title for this panel
- * @cfg {Array} adjustments Values to <b>add</b> to the width/height when doing a fitToFrame (default is [0, 0])
- * @cfg {String} url Calls setUrl() with this value
- * @cfg {String/Object} params When used with "url", calls setUrl() with this value
- * @cfg {Boolean} loadOnce Calls When used with "url", calls setUrl() with this value
- * @constructor
- * Create a new ContentPanel.
- * @param {String/HTMLElement/Element} el The container element for this panel
- * @param {String/Object} config A string to set only the title or a config object
- * @param {String} content (optional) Set the HTML content for this panel
- */
-Ext.ContentPanel = function(el, config, content){
-    Ext.ContentPanel.superclass.constructor.call(this);
-    if(el.autoCreate){
-        config = el;
-        el = Ext.id();
-    }
-    this.el = Ext.get(el);
-    if(!this.el && config && config.autoCreate){
-        if(typeof config.autoCreate == "object"){
-            if(!config.autoCreate.id){
-                config.autoCreate.id = config.id||el;
-            }
-            this.el = Ext.DomHelper.append(document.body,
-                        config.autoCreate, true);
-        }else{
-            this.el = Ext.DomHelper.append(document.body,
-                        {tag: "div", cls: "x-layout-inactive-content", id: config.id||el}, true);
-        }
-    }
-    this.closable = false;
-    this.loaded = false;
-    this.active = false;
-    if(typeof config == "string"){
-        this.title = config;
-    }else{
-        Ext.apply(this, config);
-    }
-    if(this.resizeEl){
-        this.resizeEl = Ext.get(this.resizeEl, true);
-    }else{
-        this.resizeEl = this.el;
-    }
-    this.addEvents({
-        /**
-         * @event activate
-         * Fires when this panel is activated. 
-         * @param {Ext.ContentPanel} this
-         */
-        "activate" : true,
-        /**
-         * @event deactivate
-         * Fires when this panel is activated. 
-         * @param {Ext.ContentPanel} this
-         */
-        "deactivate" : true,
-
-        /**
-         * @event resize
-         * Fires when this panel is resized if fitToFrame is true.
-         * @param {Ext.ContentPanel} this
-         * @param {Number} width The width after any component adjustments
-         * @param {Number} height The height after any component adjustments
-         */
-        "resize" : true
-    });
-    if(this.autoScroll){
-        this.resizeEl.setStyle("overflow", "auto");
-    }
-    content = content || this.content;
-    if(content){
-        this.setContent(content);
-    }
-    if(config && config.url){
-        this.setUrl(this.url, this.params, this.loadOnce);
-    }
-};
-
-Ext.extend(Ext.ContentPanel, Ext.util.Observable, {
-    tabTip:'',
-    setRegion : function(region){
-        this.region = region;
-        if(region){
-           this.el.replaceClass("x-layout-inactive-content", "x-layout-active-content");
-        }else{
-           this.el.replaceClass("x-layout-active-content", "x-layout-inactive-content");
-        } 
-    },
-    
-    /**
-     * Returns the toolbar for this Panel if one was configured. 
-     * @return {Ext.Toolbar} 
-     */
-    getToolbar : function(){
-        return this.toolbar;
-    },
-    
-    setActiveState : function(active){
-        this.active = active;
-        if(!active){
-            this.fireEvent("deactivate", this);
-        }else{
-            this.fireEvent("activate", this);
-        }
-    },
-    /**
-     * Updates this panel's element
-     * @param {String} content The new content
-     * @param {Boolean} loadScripts (optional) true to look for and process scripts
-    */
-    setContent : function(content, loadScripts){
-        this.el.update(content, loadScripts);
-    },
-
-    ignoreResize : function(w, h){
-        if(this.lastSize && this.lastSize.width == w && this.lastSize.height == h){
-            return true;
-        }else{
-            this.lastSize = {width: w, height: h};
-            return false;
-        }
-    },
-    /**
-     * Get the {@link Ext.UpdateManager} for this panel. Enables you to perform Ajax updates.
-     * @return {Ext.UpdateManager} The UpdateManager
-     */
-    getUpdateManager : function(){
-        return this.el.getUpdateManager();
-    },
-     /**
-     * Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use setUrl.
-     * @param {Object/String/Function} url The url for this request or a function to call to get the url or a config object containing any of the following options:
-<pre><code>
-panel.load({<br/>
-    url: "your-url.php",<br/>
-    params: {param1: "foo", param2: "bar"}, // or a URL encoded string<br/>
-    callback: yourFunction,<br/>
-    scope: yourObject, //(optional scope)  <br/>
-    discardUrl: false, <br/>
-    nocache: false,<br/>
-    text: "Loading...",<br/>
-    timeout: 30,<br/>
-    scripts: false<br/>
-});
-</code></pre>
-     * The only required property is url. The optional properties nocache, text and scripts 
-     * are shorthand for disableCaching, indicatorText and loadScripts and are used to set their associated property on this panel UpdateManager instance.
-     * @param {String/Object} params (optional) The parameters to pass as either a url encoded string "param1=1&amp;param2=2" or an object {param1: 1, param2: 2}
-     * @param {Function} callback (optional) Callback when transaction is complete - called with signature (oElement, bSuccess, oResponse)
-     * @param {Boolean} discardUrl (optional) By default when you execute an update the defaultUrl is changed to the last used url. If true, it will not store the url.
-     * @return {Ext.ContentPanel} this
-     */
-    load : function(){
-        var um = this.el.getUpdateManager();
-        um.update.apply(um, arguments);
-        return this;
-    },
-
-
-    /**
-     * Set a URL to be used to load the content for this panel. When this panel is activated, the content will be loaded from that URL.
-     * @param {String/Function} url The url to load the content from or a function to call to get the url
-     * @param {String/Object} params (optional) The string params for the update call or an object of the params. See {@link Ext.UpdateManager#update} for more details. (Defaults to null)
-     * @param {Boolean} loadOnce (optional) Whether to only load the content once. If this is false it makes the Ajax call every time this panel is activated. (Defaults to false)
-     * @return {Ext.UpdateManager} The UpdateManager
-     */
-    setUrl : function(url, params, loadOnce){
-        if(this.refreshDelegate){
-            this.removeListener("activate", this.refreshDelegate);
-        }
-        this.refreshDelegate = this._handleRefresh.createDelegate(this, [url, params, loadOnce]);
-        this.on("activate", this._handleRefresh.createDelegate(this, [url, params, loadOnce]));
-        return this.el.getUpdateManager();
-    },
-    
-    _handleRefresh : function(url, params, loadOnce){
-        if(!loadOnce || !this.loaded){
-            var updater = this.el.getUpdateManager();
-            updater.update(url, params, this._setLoaded.createDelegate(this));
-        }
-    },
-    
-    _setLoaded : function(){
-        this.loaded = true;
-    }, 
-    
-    /**
-     * Returns this panel's id
-     * @return {String} 
-     */
-    getId : function(){
-        return this.el.id;
-    },
-    
-    /**
-     * Returns this panel's element
-     * @return {Ext.Element} 
-     */
-    getEl : function(){
-        return this.el;
-    },
-    
-    adjustForComponents : function(width, height){
-        if(this.resizeEl != this.el){
-            width -= this.el.getFrameWidth('lr');
-            height -= this.el.getFrameWidth('tb');
-        }
-        if(this.toolbar){
-            var te = this.toolbar.getEl();
-            height -= te.getHeight();
-            te.setWidth(width);
-        }
-        if(this.adjustments){
-            width += this.adjustments[0];
-            height += this.adjustments[1];
-        }
-        return {"width": width, "height": height};
-    },
-    
-    setSize : function(width, height){
-        if(this.fitToFrame && !this.ignoreResize(width, height)){
-            if(this.fitContainer && this.resizeEl != this.el){
-                this.el.setSize(width, height);
-            }
-            var size = this.adjustForComponents(width, height);
-            this.resizeEl.setSize(this.autoWidth ? "auto" : size.width, this.autoHeight ? "auto" : size.height);
-            this.fireEvent('resize', this, size.width, size.height);
-        }
-    },
-    
-    /**
-     * Returns this panel's title
-     * @return {String} 
-     */
-    getTitle : function(){
-        return this.title;
-    },
-    
-    /**
-     * Set this panel's title
-     * @param {String} title
-     */
-    setTitle : function(title){
-        this.title = title;
-        if(this.region){
-            this.region.updatePanelTitle(this, title);
-        }
-    },
-    
-    /**
-     * Returns true is this panel was configured to be closable
-     * @return {Boolean} 
-     */
-    isClosable : function(){
-        return this.closable;
-    },
-    
-    beforeSlide : function(){
-        this.el.clip();
-        this.resizeEl.clip();
-    },
-    
-    afterSlide : function(){
-        this.el.unclip();
-        this.resizeEl.unclip();
-    },
-    
-    /**
-     *   Force a content refresh from the URL specified in the setUrl() method.
-     *   Will fail silently if the setUrl method has not been called.
-     *   This does not activate the panel, just updates its content.
-     */
-    refresh : function(){
-        if(this.refreshDelegate){
-           this.loaded = false;
-           this.refreshDelegate();
-        }
-    },
-    
-    /**
-     * Destroys this panel
-     */
-    destroy : function(){
-        this.el.removeAllListeners();
-        var tempEl = document.createElement("span");
-        tempEl.appendChild(this.el.dom);
-        tempEl.innerHTML = "";
-        this.el.remove();
-        this.el = null;
-    }
-});
-
-/**
- * @class Ext.GridPanel
- * @extends Ext.ContentPanel
- * @constructor
- * Create a new GridPanel.
- * @param {Ext.grid.Grid} grid The grid for this panel
- * @param {String/Object} config A string to set only the title or a config object
- */
-Ext.GridPanel = function(grid, config){
-    this.wrapper = Ext.DomHelper.append(document.body, // wrapper for IE7 strict & safari scroll issue
-        {tag: "div", cls: "x-layout-grid-wrapper x-layout-inactive-content"}, true);
-    this.wrapper.dom.appendChild(grid.container.dom);
-    Ext.GridPanel.superclass.constructor.call(this, this.wrapper, config);
-    if(this.toolbar){
-        this.toolbar.el.insertBefore(this.wrapper.dom.firstChild);
-    }
-    grid.monitorWindowResize = false; // turn off autosizing
-    grid.autoHeight = false;
-    grid.autoWidth = false;
-    this.grid = grid;
-    this.grid.container.replaceClass("x-layout-inactive-content", "x-layout-component-panel");
-};
-
-Ext.extend(Ext.GridPanel, Ext.ContentPanel, {
-    getId : function(){
-        return this.grid.id;
-    },
-    
-    /**
-     * Returns the grid for this panel
-     * @return {Ext.grid.Grid} 
-     */
-    getGrid : function(){
-        return this.grid;    
-    },
-    
-    setSize : function(width, height){
-        if(!this.ignoreResize(width, height)){
-            var grid = this.grid;
-            var size = this.adjustForComponents(width, height);
-            grid.container.setSize(size.width, size.height);
-            grid.autoSize();
-        }
-    },
-    
-    beforeSlide : function(){
-        this.grid.getView().scroller.clip();
-    },
-    
-    afterSlide : function(){
-        this.grid.getView().scroller.unclip();
-    },
-    
-    destroy : function(){
-        this.grid.destroy();
-        delete this.grid;
-        Ext.GridPanel.superclass.destroy.call(this); 
-    }
-});
-
-
-/**
- * @class Ext.NestedLayoutPanel
- * @extends Ext.ContentPanel
- * @constructor
- * Create a new NestedLayoutPanel.
- * @param {Ext.BorderLayout} layout The layout for this panel
- * @param {String/Object} config A string to set only the title or a config object
- */
-Ext.NestedLayoutPanel = function(layout, config){
-    Ext.NestedLayoutPanel.superclass.constructor.call(this, layout.getEl(), config);
-    layout.monitorWindowResize = false; // turn off autosizing
-    this.layout = layout;
-    this.layout.getEl().addClass("x-layout-nested-layout");
-};
-
-Ext.extend(Ext.NestedLayoutPanel, Ext.ContentPanel, {
-
-    setSize : function(width, height){
-        if(!this.ignoreResize(width, height)){
-            var size = this.adjustForComponents(width, height);
-            var el = this.layout.getEl();
-            el.setSize(size.width, size.height);
-            var touch = el.dom.offsetWidth;
-            this.layout.layout();
-            // ie requires a double layout on the first pass
-            if(Ext.isIE && !this.initialized){
-                this.initialized = true;
-                this.layout.layout();
-            }
-        }
-    },
-    
-    /**
-     * Returns the nested BorderLayout for this panel
-     * @return {Ext.BorderLayout} 
-     */
-    getLayout : function(){
-        return this.layout;
-    }
-});
-
-Ext.ScrollPanel = function(el, config, content){
-    config = config || {};
-    config.fitToFrame = true;
-    Ext.ScrollPanel.superclass.constructor.call(this, el, config, content);
-    
-    this.el.dom.style.overflow = "hidden";
-    var wrap = this.el.wrap({cls: "x-scroller x-layout-inactive-content"});
-    this.el.removeClass("x-layout-inactive-content");
-    this.el.on("mousewheel", this.onWheel, this);
-
-    var up = wrap.createChild({cls: "x-scroller-up", html: "&#160;"}, this.el.dom);
-    var down = wrap.createChild({cls: "x-scroller-down", html: "&#160;"});
-    up.unselectable(); down.unselectable();
-    up.on("click", this.scrollUp, this);
-    down.on("click", this.scrollDown, this);
-    up.addClassOnOver("x-scroller-btn-over");
-    down.addClassOnOver("x-scroller-btn-over");
-    up.addClassOnClick("x-scroller-btn-click");
-    down.addClassOnClick("x-scroller-btn-click");
-    this.adjustments = [0, -(up.getHeight() + down.getHeight())];
-
-    this.resizeEl = this.el;
-    this.el = wrap; this.up = up; this.down = down;
-};
-
-Ext.extend(Ext.ScrollPanel, Ext.ContentPanel, {
-    increment : 100,
-    wheelIncrement : 5,
-    scrollUp : function(){
-        this.resizeEl.scroll("up", this.increment, {callback: this.afterScroll, scope: this});
-    },
-
-    scrollDown : function(){
-        this.resizeEl.scroll("down", this.increment, {callback: this.afterScroll, scope: this});
-    },
-
-    afterScroll : function(){
-        var el = this.resizeEl;
-        var t = el.dom.scrollTop, h = el.dom.scrollHeight, ch = el.dom.clientHeight;
-        this.up[t == 0 ? "addClass" : "removeClass"]("x-scroller-btn-disabled");
-        this.down[h - t <= ch ? "addClass" : "removeClass"]("x-scroller-btn-disabled");
-    },
-
-    setSize : function(){
-        Ext.ScrollPanel.superclass.setSize.apply(this, arguments);
-        this.afterScroll();
-    },
-
-    onWheel : function(e){
-        var d = e.getWheelDelta();
-        this.resizeEl.dom.scrollTop -= (d*this.wheelIncrement);
-        this.afterScroll();
-        e.stopEvent();
-    },
-
-    setContent : function(content, loadScripts){
-        this.resizeEl.update(content, loadScripts);
-    }
-
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/DDCore.jss.html b/www/extras/extjs/docs/output/DDCore.jss.html deleted file mode 100644 index c85caad8b..000000000 --- a/www/extras/extjs/docs/output/DDCore.jss.html +++ /dev/null @@ -1,2947 +0,0 @@ -DDCore.js

DDCore.js

/*
- * These classes are derivatives of the similarly named classes in the YUI Library.
- * The original license:
- * Copyright (c) 2006, Yahoo! Inc. All rights reserved.
- * Code licensed under the BSD License:
- * http://developer.yahoo.net/yui/license.txt
- */
-
-(function() {
-
-var Event=Ext.EventManager;
-var Dom=Ext.lib.Dom;
-
-/**
- * @class Ext.dd.DragDrop
- * Defines the interface and base operation of items that that can be
- * dragged or can be drop targets.  It was designed to be extended, overriding
- * the event handlers for startDrag, onDrag, onDragOver and onDragOut.
- * Up to three html elements can be associated with a DragDrop instance:
- * <ul>
- * <li>linked element: the element that is passed into the constructor.
- * This is the element which defines the boundaries for interaction with
- * other DragDrop objects.</li>
- * <li>handle element(s): The drag operation only occurs if the element that
- * was clicked matches a handle element.  By default this is the linked
- * element, but there are times that you will want only a portion of the
- * linked element to initiate the drag operation, and the setHandleElId()
- * method provides a way to define this.</li>
- * <li>drag element: this represents the element that would be moved along
- * with the cursor during a drag operation.  By default, this is the linked
- * element itself as in {@link Ext.dd.DD}.  setDragElId() lets you define
- * a separate element that would be moved, as in {@link Ext.dd.DDProxy}.
- * </li>
- * </ul>
- * This class should not be instantiated until the onload event to ensure that
- * the associated elements are available.
- * The following would define a DragDrop obj that would interact with any
- * other DragDrop obj in the "group1" group:
- * <pre>
- *  dd = new Ext.dd.DragDrop("div1", "group1");
- * </pre>
- * Since none of the event handlers have been implemented, nothing would
- * actually happen if you were to run the code above.  Normally you would
- * override this class or one of the default implementations, but you can
- * also override the methods you want on an instance of the class...
- * <pre>
- *  dd.onDragDrop = function(e, id) {
- *  &nbsp;&nbsp;alert("dd was dropped on " + id);
- *  }
- * </pre>
- * @constructor
- * @param {String} id of the element that is linked to this instance
- * @param {String} sGroup the group of related DragDrop objects
- * @param {object} config an object containing configurable attributes
- *                Valid properties for DragDrop:
- *                    padding, isTarget, maintainOffset, primaryButtonOnly
- */
-Ext.dd.DragDrop = function(id, sGroup, config) {
-    if (id) {
-        this.init(id, sGroup, config);
-    }
-};
-
-Ext.dd.DragDrop.prototype = {
-
-    /**
-     * The id of the element associated with this object.  This is what we
-     * refer to as the "linked element" because the size and position of
-     * this element is used to determine when the drag and drop objects have
-     * interacted.
-     * @property id
-     * @type String
-     */
-    id: null,
-
-    /**
-     * Configuration attributes passed into the constructor
-     * @property config
-     * @type object
-     */
-    config: null,
-
-    /**
-     * The id of the element that will be dragged.  By default this is same
-     * as the linked element , but could be changed to another element. Ex:
-     * Ext.dd.DDProxy
-     * @property dragElId
-     * @type String
-     * @private
-     */
-    dragElId: null,
-
-    /**
-     * the id of the element that initiates the drag operation.  By default
-     * this is the linked element, but could be changed to be a child of this
-     * element.  This lets us do things like only starting the drag when the
-     * header element within the linked html element is clicked.
-     * @property handleElId
-     * @type String
-     * @private
-     */
-    handleElId: null,
-
-    /**
-     * An associative array of HTML tags that will be ignored if clicked.
-     * @property invalidHandleTypes
-     * @type {string: string}
-     */
-    invalidHandleTypes: null,
-
-    /**
-     * An associative array of ids for elements that will be ignored if clicked
-     * @property invalidHandleIds
-     * @type {string: string}
-     */
-    invalidHandleIds: null,
-
-    /**
-     * An indexted array of css class names for elements that will be ignored
-     * if clicked.
-     * @property invalidHandleClasses
-     * @type string[]
-     */
-    invalidHandleClasses: null,
-
-    /**
-     * The linked element's absolute X position at the time the drag was
-     * started
-     * @property startPageX
-     * @type int
-     * @private
-     */
-    startPageX: 0,
-
-    /**
-     * The linked element's absolute X position at the time the drag was
-     * started
-     * @property startPageY
-     * @type int
-     * @private
-     */
-    startPageY: 0,
-
-    /**
-     * The group defines a logical collection of DragDrop objects that are
-     * related.  Instances only get events when interacting with other
-     * DragDrop object in the same group.  This lets us define multiple
-     * groups using a single DragDrop subclass if we want.
-     * @property groups
-     * @type {string: string}
-     */
-    groups: null,
-
-    /**
-     * Individual drag/drop instances can be locked.  This will prevent
-     * onmousedown start drag.
-     * @property locked
-     * @type boolean
-     * @private
-     */
-    locked: false,
-
-    /**
-     * Lock this instance
-     * @method lock
-     */
-    lock: function() { this.locked = true; },
-
-    /**
-     * Unlock this instace
-     * @method unlock
-     */
-    unlock: function() { this.locked = false; },
-
-    /**
-     * By default, all insances can be a drop target.  This can be disabled by
-     * setting isTarget to false.
-     * @method isTarget
-     * @type boolean
-     */
-    isTarget: true,
-
-    /**
-     * The padding configured for this drag and drop object for calculating
-     * the drop zone intersection with this object.
-     * @method padding
-     * @type int[]
-     */
-    padding: null,
-
-    /**
-     * Cached reference to the linked element
-     * @property _domRef
-     * @private
-     */
-    _domRef: null,
-
-    /**
-     * Internal typeof flag
-     * @property __ygDragDrop
-     * @private
-     */
-    __ygDragDrop: true,
-
-    /**
-     * Set to true when horizontal contraints are applied
-     * @property constrainX
-     * @type boolean
-     * @private
-     */
-    constrainX: false,
-
-    /**
-     * Set to true when vertical contraints are applied
-     * @property constrainY
-     * @type boolean
-     * @private
-     */
-    constrainY: false,
-
-    /**
-     * The left constraint
-     * @property minX
-     * @type int
-     * @private
-     */
-    minX: 0,
-
-    /**
-     * The right constraint
-     * @property maxX
-     * @type int
-     * @private
-     */
-    maxX: 0,
-
-    /**
-     * The up constraint
-     * @property minY
-     * @type int
-     * @type int
-     * @private
-     */
-    minY: 0,
-
-    /**
-     * The down constraint
-     * @property maxY
-     * @type int
-     * @private
-     */
-    maxY: 0,
-
-    /**
-     * Maintain offsets when we resetconstraints.  Set to true when you want
-     * the position of the element relative to its parent to stay the same
-     * when the page changes
-     *
-     * @property maintainOffset
-     * @type boolean
-     */
-    maintainOffset: false,
-
-    /**
-     * Array of pixel locations the element will snap to if we specified a
-     * horizontal graduation/interval.  This array is generated automatically
-     * when you define a tick interval.
-     * @property xTicks
-     * @type int[]
-     */
-    xTicks: null,
-
-    /**
-     * Array of pixel locations the element will snap to if we specified a
-     * vertical graduation/interval.  This array is generated automatically
-     * when you define a tick interval.
-     * @property yTicks
-     * @type int[]
-     */
-    yTicks: null,
-
-    /**
-     * By default the drag and drop instance will only respond to the primary
-     * button click (left button for a right-handed mouse).  Set to true to
-     * allow drag and drop to start with any mouse click that is propogated
-     * by the browser
-     * @property primaryButtonOnly
-     * @type boolean
-     */
-    primaryButtonOnly: true,
-
-    /**
-     * The availabe property is false until the linked dom element is accessible.
-     * @property available
-     * @type boolean
-     */
-    available: false,
-
-    /**
-     * By default, drags can only be initiated if the mousedown occurs in the
-     * region the linked element is.  This is done in part to work around a
-     * bug in some browsers that mis-report the mousedown if the previous
-     * mouseup happened outside of the window.  This property is set to true
-     * if outer handles are defined.
-     *
-     * @property hasOuterHandles
-     * @type boolean
-     * @default false
-     */
-    hasOuterHandles: false,
-
-    /**
-     * Code that executes immediately before the startDrag event
-     * @method b4StartDrag
-     * @private
-     */
-    b4StartDrag: function(x, y) { },
-
-    /**
-     * Abstract method called after a drag/drop object is clicked
-     * and the drag or mousedown time thresholds have beeen met.
-     * @method startDrag
-     * @param {int} X click location
-     * @param {int} Y click location
-     */
-    startDrag: function(x, y) { /* override this */ },
-
-    /**
-     * Code that executes immediately before the onDrag event
-     * @method b4Drag
-     * @private
-     */
-    b4Drag: function(e) { },
-
-    /**
-     * Abstract method called during the onMouseMove event while dragging an
-     * object.
-     * @method onDrag
-     * @param {Event} e the mousemove event
-     */
-    onDrag: function(e) { /* override this */ },
-
-    /**
-     * Abstract method called when this element fist begins hovering over
-     * another DragDrop obj
-     * @method onDragEnter
-     * @param {Event} e the mousemove event
-     * @param {String|DragDrop[]} id In POINT mode, the element
-     * id this is hovering over.  In INTERSECT mode, an array of one or more
-     * dragdrop items being hovered over.
-     */
-    onDragEnter: function(e, id) { /* override this */ },
-
-    /**
-     * Code that executes immediately before the onDragOver event
-     * @method b4DragOver
-     * @private
-     */
-    b4DragOver: function(e) { },
-
-    /**
-     * Abstract method called when this element is hovering over another
-     * DragDrop obj
-     * @method onDragOver
-     * @param {Event} e the mousemove event
-     * @param {String|DragDrop[]} id In POINT mode, the element
-     * id this is hovering over.  In INTERSECT mode, an array of dd items
-     * being hovered over.
-     */
-    onDragOver: function(e, id) { /* override this */ },
-
-    /**
-     * Code that executes immediately before the onDragOut event
-     * @method b4DragOut
-     * @private
-     */
-    b4DragOut: function(e) { },
-
-    /**
-     * Abstract method called when we are no longer hovering over an element
-     * @method onDragOut
-     * @param {Event} e the mousemove event
-     * @param {String|DragDrop[]} id In POINT mode, the element
-     * id this was hovering over.  In INTERSECT mode, an array of dd items
-     * that the mouse is no longer over.
-     */
-    onDragOut: function(e, id) { /* override this */ },
-
-    /**
-     * Code that executes immediately before the onDragDrop event
-     * @method b4DragDrop
-     * @private
-     */
-    b4DragDrop: function(e) { },
-
-    /**
-     * Abstract method called when this item is dropped on another DragDrop
-     * obj
-     * @method onDragDrop
-     * @param {Event} e the mouseup event
-     * @param {String|DragDrop[]} id In POINT mode, the element
-     * id this was dropped on.  In INTERSECT mode, an array of dd items this
-     * was dropped on.
-     */
-    onDragDrop: function(e, id) { /* override this */ },
-
-    /**
-     * Abstract method called when this item is dropped on an area with no
-     * drop target
-     * @method onInvalidDrop
-     * @param {Event} e the mouseup event
-     */
-    onInvalidDrop: function(e) { /* override this */ },
-
-    /**
-     * Code that executes immediately before the endDrag event
-     * @method b4EndDrag
-     * @private
-     */
-    b4EndDrag: function(e) { },
-
-    /**
-     * Fired when we are done dragging the object
-     * @method endDrag
-     * @param {Event} e the mouseup event
-     */
-    endDrag: function(e) { /* override this */ },
-
-    /**
-     * Code executed immediately before the onMouseDown event
-     * @method b4MouseDown
-     * @param {Event} e the mousedown event
-     * @private
-     */
-    b4MouseDown: function(e) {  },
-
-    /**
-     * Event handler that fires when a drag/drop obj gets a mousedown
-     * @method onMouseDown
-     * @param {Event} e the mousedown event
-     */
-    onMouseDown: function(e) { /* override this */ },
-
-    /**
-     * Event handler that fires when a drag/drop obj gets a mouseup
-     * @method onMouseUp
-     * @param {Event} e the mouseup event
-     */
-    onMouseUp: function(e) { /* override this */ },
-
-    /**
-     * Override the onAvailable method to do what is needed after the initial
-     * position was determined.
-     * @method onAvailable
-     */
-    onAvailable: function () {
-    },
-
-    /*
-     * Provides default constraint padding to "constrainTo" elements (defaults to {left: 0, right:0, top:0, bottom:0}).
-     * @type Object
-     */
-    defaultPadding : {left:0, right:0, top:0, bottom:0},
-
-    /*
-     * Initializes the drag drop object's constraints to restrict movement to a certain element.
- *
- * Usage:
- <pre><code>
- var dd = new Ext.dd.DDProxy("dragDiv1", "proxytest",
-                { dragElId: "existingProxyDiv" });
- dd.startDrag = function(){
-     this.constrainTo("parent-id");
- };
- </code></pre>
- * Or you can initalize it using the {@link Ext.Element} object:
- <pre><code>
- Ext.get("dragDiv1").initDDProxy("proxytest", {dragElId: "existingProxyDiv"}, {
-     startDrag : function(){
-         this.constrainTo("parent-id");
-     }
- });
- </code></pre>
-     * @param {String/HTMLElement/Element} constrainTo The element to constrain to.
-     * @param {Object/Number} pad (optional) Pad provides a way to specify "padding" of the constraints,
-     * and can be either a number for symmetrical padding (4 would be equal to {left:4, right:4, top:4, bottom:4}) or
-     * an object containing the sides to pad. For example: {right:10, bottom:10}
-     * @param {Boolean} inContent (optional) Constrain the draggable in the content box of the element (inside padding and borders)
-     */
-    constrainTo : function(constrainTo, pad, inContent){
-        if(typeof pad == "number"){
-            pad = {left: pad, right:pad, top:pad, bottom:pad};
-        }
-        pad = pad || this.defaultPadding;
-        var b = Ext.get(this.getEl()).getBox();
-        var ce = Ext.get(constrainTo);
-        var s = ce.getScroll();
-        var c, cd = ce.dom;
-        if(cd == document.body){
-            c = { x: s.left, y: s.top, width: Ext.lib.Dom.getViewWidth(), height: Ext.lib.Dom.getViewHeight()};
-        }else{
-            xy = ce.getXY();
-            c = {x : xy[0]+s.left, y: xy[1]+s.top, width: cd.clientWidth, height: cd.clientHeight};
-        }
-
-
-        var topSpace = b.y - c.y;
-        var leftSpace = b.x - c.x;
-
-        this.resetConstraints();
-        this.setXConstraint(leftSpace - (pad.left||0), // left
-                c.width - leftSpace - b.width - (pad.right||0) //right
-        );
-        this.setYConstraint(topSpace - (pad.top||0), //top
-                c.height - topSpace - b.height - (pad.bottom||0) //bottom
-        );
-    },
-
-    /**
-     * Returns a reference to the linked element
-     * @method getEl
-     * @return {HTMLElement} the html element
-     */
-    getEl: function() {
-        if (!this._domRef) {
-            this._domRef = Ext.getDom(this.id);
-        }
-
-        return this._domRef;
-    },
-
-    /**
-     * Returns a reference to the actual element to drag.  By default this is
-     * the same as the html element, but it can be assigned to another
-     * element. An example of this can be found in Ext.dd.DDProxy
-     * @method getDragEl
-     * @return {HTMLElement} the html element
-     */
-    getDragEl: function() {
-        return Ext.getDom(this.dragElId);
-    },
-
-    /**
-     * Sets up the DragDrop object.  Must be called in the constructor of any
-     * Ext.dd.DragDrop subclass
-     * @method init
-     * @param id the id of the linked element
-     * @param {String} sGroup the group of related items
-     * @param {object} config configuration attributes
-     */
-    init: function(id, sGroup, config) {
-        this.initTarget(id, sGroup, config);
-        Event.on(this.id, "mousedown", this.handleMouseDown, this);
-        // Event.on(this.id, "selectstart", Event.preventDefault);
-    },
-
-    /**
-     * Initializes Targeting functionality only... the object does not
-     * get a mousedown handler.
-     * @method initTarget
-     * @param id the id of the linked element
-     * @param {String} sGroup the group of related items
-     * @param {object} config configuration attributes
-     */
-    initTarget: function(id, sGroup, config) {
-
-        // configuration attributes
-        this.config = config || {};
-
-        // create a local reference to the drag and drop manager
-        this.DDM = Ext.dd.DDM;
-        // initialize the groups array
-        this.groups = {};
-
-        // assume that we have an element reference instead of an id if the
-        // parameter is not a string
-        if (typeof id !== "string") {
-            id = Ext.id(id);
-        }
-
-        // set the id
-        this.id = id;
-
-        // add to an interaction group
-        this.addToGroup((sGroup) ? sGroup : "default");
-
-        // We don't want to register this as the handle with the manager
-        // so we just set the id rather than calling the setter.
-        this.handleElId = id;
-
-        // the linked element is the element that gets dragged by default
-        this.setDragElId(id);
-
-        // by default, clicked anchors will not start drag operations.
-        this.invalidHandleTypes = { A: "A" };
-        this.invalidHandleIds = {};
-        this.invalidHandleClasses = [];
-
-        this.applyConfig();
-
-        this.handleOnAvailable();
-    },
-
-    /**
-     * Applies the configuration parameters that were passed into the constructor.
-     * This is supposed to happen at each level through the inheritance chain.  So
-     * a DDProxy implentation will execute apply config on DDProxy, DD, and
-     * DragDrop in order to get all of the parameters that are available in
-     * each object.
-     * @method applyConfig
-     */
-    applyConfig: function() {
-
-        // configurable properties:
-        //    padding, isTarget, maintainOffset, primaryButtonOnly
-        this.padding           = this.config.padding || [0, 0, 0, 0];
-        this.isTarget          = (this.config.isTarget !== false);
-        this.maintainOffset    = (this.config.maintainOffset);
-        this.primaryButtonOnly = (this.config.primaryButtonOnly !== false);
-
-    },
-
-    /**
-     * Executed when the linked element is available
-     * @method handleOnAvailable
-     * @private
-     */
-    handleOnAvailable: function() {
-        this.available = true;
-        this.resetConstraints();
-        this.onAvailable();
-    },
-
-     /**
-     * Configures the padding for the target zone in px.  Effectively expands
-     * (or reduces) the virtual object size for targeting calculations.
-     * Supports css-style shorthand; if only one parameter is passed, all sides
-     * will have that padding, and if only two are passed, the top and bottom
-     * will have the first param, the left and right the second.
-     * @method setPadding
-     * @param {int} iTop    Top pad
-     * @param {int} iRight  Right pad
-     * @param {int} iBot    Bot pad
-     * @param {int} iLeft   Left pad
-     */
-    setPadding: function(iTop, iRight, iBot, iLeft) {
-        // this.padding = [iLeft, iRight, iTop, iBot];
-        if (!iRight && 0 !== iRight) {
-            this.padding = [iTop, iTop, iTop, iTop];
-        } else if (!iBot && 0 !== iBot) {
-            this.padding = [iTop, iRight, iTop, iRight];
-        } else {
-            this.padding = [iTop, iRight, iBot, iLeft];
-        }
-    },
-
-    /**
-     * Stores the initial placement of the linked element.
-     * @method setInitialPosition
-     * @param {int} diffX   the X offset, default 0
-     * @param {int} diffY   the Y offset, default 0
-     */
-    setInitPosition: function(diffX, diffY) {
-        var el = this.getEl();
-
-        if (!this.DDM.verifyEl(el)) {
-            return;
-        }
-
-        var dx = diffX || 0;
-        var dy = diffY || 0;
-
-        var p = Dom.getXY( el );
-
-        this.initPageX = p[0] - dx;
-        this.initPageY = p[1] - dy;
-
-        this.lastPageX = p[0];
-        this.lastPageY = p[1];
-
-
-        this.setStartPosition(p);
-    },
-
-    /**
-     * Sets the start position of the element.  This is set when the obj
-     * is initialized, the reset when a drag is started.
-     * @method setStartPosition
-     * @param pos current position (from previous lookup)
-     * @private
-     */
-    setStartPosition: function(pos) {
-        var p = pos || Dom.getXY( this.getEl() );
-        this.deltaSetXY = null;
-
-        this.startPageX = p[0];
-        this.startPageY = p[1];
-    },
-
-    /**
-     * Add this instance to a group of related drag/drop objects.  All
-     * instances belong to at least one group, and can belong to as many
-     * groups as needed.
-     * @method addToGroup
-     * @param sGroup {string} the name of the group
-     */
-    addToGroup: function(sGroup) {
-        this.groups[sGroup] = true;
-        this.DDM.regDragDrop(this, sGroup);
-    },
-
-    /**
-     * Remove's this instance from the supplied interaction group
-     * @method removeFromGroup
-     * @param {string}  sGroup  The group to drop
-     */
-    removeFromGroup: function(sGroup) {
-        if (this.groups[sGroup]) {
-            delete this.groups[sGroup];
-        }
-
-        this.DDM.removeDDFromGroup(this, sGroup);
-    },
-
-    /**
-     * Allows you to specify that an element other than the linked element
-     * will be moved with the cursor during a drag
-     * @method setDragElId
-     * @param id {string} the id of the element that will be used to initiate the drag
-     */
-    setDragElId: function(id) {
-        this.dragElId = id;
-    },
-
-    /**
-     * Allows you to specify a child of the linked element that should be
-     * used to initiate the drag operation.  An example of this would be if
-     * you have a content div with text and links.  Clicking anywhere in the
-     * content area would normally start the drag operation.  Use this method
-     * to specify that an element inside of the content div is the element
-     * that starts the drag operation.
-     * @method setHandleElId
-     * @param id {string} the id of the element that will be used to
-     * initiate the drag.
-     */
-    setHandleElId: function(id) {
-        if (typeof id !== "string") {
-            id = Ext.id(id);
-        }
-        this.handleElId = id;
-        this.DDM.regHandle(this.id, id);
-    },
-
-    /**
-     * Allows you to set an element outside of the linked element as a drag
-     * handle
-     * @method setOuterHandleElId
-     * @param id the id of the element that will be used to initiate the drag
-     */
-    setOuterHandleElId: function(id) {
-        if (typeof id !== "string") {
-            id = Ext.id(id);
-        }
-        Event.on(id, "mousedown",
-                this.handleMouseDown, this);
-        this.setHandleElId(id);
-
-        this.hasOuterHandles = true;
-    },
-
-    /**
-     * Remove all drag and drop hooks for this element
-     * @method unreg
-     */
-    unreg: function() {
-        Event.un(this.id, "mousedown",
-                this.handleMouseDown);
-        this._domRef = null;
-        this.DDM._remove(this);
-    },
-
-    /**
-     * Returns true if this instance is locked, or the drag drop mgr is locked
-     * (meaning that all drag/drop is disabled on the page.)
-     * @method isLocked
-     * @return {boolean} true if this obj or all drag/drop is locked, else
-     * false
-     */
-    isLocked: function() {
-        return (this.DDM.isLocked() || this.locked);
-    },
-
-    /**
-     * Fired when this object is clicked
-     * @method handleMouseDown
-     * @param {Event} e
-     * @param {Ext.dd.DragDrop} oDD the clicked dd object (this dd obj)
-     * @private
-     */
-    handleMouseDown: function(e, oDD){
-        if (this.primaryButtonOnly && e.button != 0) {
-            return;
-        }
-
-        if (this.isLocked()) {
-            return;
-        }
-
-        this.DDM.refreshCache(this.groups);
-
-        var pt = new Ext.lib.Point(Ext.lib.Event.getPageX(e), Ext.lib.Event.getPageY(e));
-        if (!this.hasOuterHandles && !this.DDM.isOverTarget(pt, this) )  {
-        } else {
-            if (this.clickValidator(e)) {
-
-                // set the initial element position
-                this.setStartPosition();
-
-
-                this.b4MouseDown(e);
-                this.onMouseDown(e);
-
-                this.DDM.handleMouseDown(e, this);
-
-                this.DDM.stopEvent(e);
-            } else {
-
-
-            }
-        }
-    },
-
-    clickValidator: function(e) {
-        var target = Ext.lib.Event.getTarget(e);
-        return ( this.isValidHandleChild(target) &&
-                    (this.id == this.handleElId ||
-                        this.DDM.handleWasClicked(target, this.id)) );
-    },
-
-    /**
-     * Allows you to specify a tag name that should not start a drag operation
-     * when clicked.  This is designed to facilitate embedding links within a
-     * drag handle that do something other than start the drag.
-     * @method addInvalidHandleType
-     * @param {string} tagName the type of element to exclude
-     */
-    addInvalidHandleType: function(tagName) {
-        var type = tagName.toUpperCase();
-        this.invalidHandleTypes[type] = type;
-    },
-
-    /**
-     * Lets you to specify an element id for a child of a drag handle
-     * that should not initiate a drag
-     * @method addInvalidHandleId
-     * @param {string} id the element id of the element you wish to ignore
-     */
-    addInvalidHandleId: function(id) {
-        if (typeof id !== "string") {
-            id = Ext.id(id);
-        }
-        this.invalidHandleIds[id] = id;
-    },
-
-    /**
-     * Lets you specify a css class of elements that will not initiate a drag
-     * @method addInvalidHandleClass
-     * @param {string} cssClass the class of the elements you wish to ignore
-     */
-    addInvalidHandleClass: function(cssClass) {
-        this.invalidHandleClasses.push(cssClass);
-    },
-
-    /**
-     * Unsets an excluded tag name set by addInvalidHandleType
-     * @method removeInvalidHandleType
-     * @param {string} tagName the type of element to unexclude
-     */
-    removeInvalidHandleType: function(tagName) {
-        var type = tagName.toUpperCase();
-        // this.invalidHandleTypes[type] = null;
-        delete this.invalidHandleTypes[type];
-    },
-
-    /**
-     * Unsets an invalid handle id
-     * @method removeInvalidHandleId
-     * @param {string} id the id of the element to re-enable
-     */
-    removeInvalidHandleId: function(id) {
-        if (typeof id !== "string") {
-            id = Ext.id(id);
-        }
-        delete this.invalidHandleIds[id];
-    },
-
-    /**
-     * Unsets an invalid css class
-     * @method removeInvalidHandleClass
-     * @param {string} cssClass the class of the element(s) you wish to
-     * re-enable
-     */
-    removeInvalidHandleClass: function(cssClass) {
-        for (var i=0, len=this.invalidHandleClasses.length; i<len; ++i) {
-            if (this.invalidHandleClasses[i] == cssClass) {
-                delete this.invalidHandleClasses[i];
-            }
-        }
-    },
-
-    /**
-     * Checks the tag exclusion list to see if this click should be ignored
-     * @method isValidHandleChild
-     * @param {HTMLElement} node the HTMLElement to evaluate
-     * @return {boolean} true if this is a valid tag type, false if not
-     */
-    isValidHandleChild: function(node) {
-
-        var valid = true;
-        // var n = (node.nodeName == "#text") ? node.parentNode : node;
-        var nodeName;
-        try {
-            nodeName = node.nodeName.toUpperCase();
-        } catch(e) {
-            nodeName = node.nodeName;
-        }
-        valid = valid && !this.invalidHandleTypes[nodeName];
-        valid = valid && !this.invalidHandleIds[node.id];
-
-        for (var i=0, len=this.invalidHandleClasses.length; valid && i<len; ++i) {
-            valid = !Dom.hasClass(node, this.invalidHandleClasses[i]);
-        }
-
-
-        return valid;
-
-    },
-
-    /**
-     * Create the array of horizontal tick marks if an interval was specified
-     * in setXConstraint().
-     * @method setXTicks
-     * @private
-     */
-    setXTicks: function(iStartX, iTickSize) {
-        this.xTicks = [];
-        this.xTickSize = iTickSize;
-
-        var tickMap = {};
-
-        for (var i = this.initPageX; i >= this.minX; i = i - iTickSize) {
-            if (!tickMap[i]) {
-                this.xTicks[this.xTicks.length] = i;
-                tickMap[i] = true;
-            }
-        }
-
-        for (i = this.initPageX; i <= this.maxX; i = i + iTickSize) {
-            if (!tickMap[i]) {
-                this.xTicks[this.xTicks.length] = i;
-                tickMap[i] = true;
-            }
-        }
-
-        this.xTicks.sort(this.DDM.numericSort) ;
-    },
-
-    /**
-     * Create the array of vertical tick marks if an interval was specified in
-     * setYConstraint().
-     * @method setYTicks
-     * @private
-     */
-    setYTicks: function(iStartY, iTickSize) {
-        this.yTicks = [];
-        this.yTickSize = iTickSize;
-
-        var tickMap = {};
-
-        for (var i = this.initPageY; i >= this.minY; i = i - iTickSize) {
-            if (!tickMap[i]) {
-                this.yTicks[this.yTicks.length] = i;
-                tickMap[i] = true;
-            }
-        }
-
-        for (i = this.initPageY; i <= this.maxY; i = i + iTickSize) {
-            if (!tickMap[i]) {
-                this.yTicks[this.yTicks.length] = i;
-                tickMap[i] = true;
-            }
-        }
-
-        this.yTicks.sort(this.DDM.numericSort) ;
-    },
-
-    /**
-     * By default, the element can be dragged any place on the screen.  Use
-     * this method to limit the horizontal travel of the element.  Pass in
-     * 0,0 for the parameters if you want to lock the drag to the y axis.
-     * @method setXConstraint
-     * @param {int} iLeft the number of pixels the element can move to the left
-     * @param {int} iRight the number of pixels the element can move to the
-     * right
-     * @param {int} iTickSize optional parameter for specifying that the
-     * element
-     * should move iTickSize pixels at a time.
-     */
-    setXConstraint: function(iLeft, iRight, iTickSize) {
-        this.leftConstraint = iLeft;
-        this.rightConstraint = iRight;
-
-        this.minX = this.initPageX - iLeft;
-        this.maxX = this.initPageX + iRight;
-        if (iTickSize) { this.setXTicks(this.initPageX, iTickSize); }
-
-        this.constrainX = true;
-    },
-
-    /**
-     * Clears any constraints applied to this instance.  Also clears ticks
-     * since they can't exist independent of a constraint at this time.
-     * @method clearConstraints
-     */
-    clearConstraints: function() {
-        this.constrainX = false;
-        this.constrainY = false;
-        this.clearTicks();
-    },
-
-    /**
-     * Clears any tick interval defined for this instance
-     * @method clearTicks
-     */
-    clearTicks: function() {
-        this.xTicks = null;
-        this.yTicks = null;
-        this.xTickSize = 0;
-        this.yTickSize = 0;
-    },
-
-    /**
-     * By default, the element can be dragged any place on the screen.  Set
-     * this to limit the vertical travel of the element.  Pass in 0,0 for the
-     * parameters if you want to lock the drag to the x axis.
-     * @method setYConstraint
-     * @param {int} iUp the number of pixels the element can move up
-     * @param {int} iDown the number of pixels the element can move down
-     * @param {int} iTickSize optional parameter for specifying that the
-     * element should move iTickSize pixels at a time.
-     */
-    setYConstraint: function(iUp, iDown, iTickSize) {
-        this.topConstraint = iUp;
-        this.bottomConstraint = iDown;
-
-        this.minY = this.initPageY - iUp;
-        this.maxY = this.initPageY + iDown;
-        if (iTickSize) { this.setYTicks(this.initPageY, iTickSize); }
-
-        this.constrainY = true;
-
-    },
-
-    /**
-     * resetConstraints must be called if you manually reposition a dd element.
-     * @method resetConstraints
-     * @param {boolean} maintainOffset
-     */
-    resetConstraints: function() {
-
-
-        // Maintain offsets if necessary
-        if (this.initPageX || this.initPageX === 0) {
-            // figure out how much this thing has moved
-            var dx = (this.maintainOffset) ? this.lastPageX - this.initPageX : 0;
-            var dy = (this.maintainOffset) ? this.lastPageY - this.initPageY : 0;
-
-            this.setInitPosition(dx, dy);
-
-        // This is the first time we have detected the element's position
-        } else {
-            this.setInitPosition();
-        }
-
-        if (this.constrainX) {
-            this.setXConstraint( this.leftConstraint,
-                                 this.rightConstraint,
-                                 this.xTickSize        );
-        }
-
-        if (this.constrainY) {
-            this.setYConstraint( this.topConstraint,
-                                 this.bottomConstraint,
-                                 this.yTickSize         );
-        }
-    },
-
-    /**
-     * Normally the drag element is moved pixel by pixel, but we can specify
-     * that it move a number of pixels at a time.  This method resolves the
-     * location when we have it set up like this.
-     * @method getTick
-     * @param {int} val where we want to place the object
-     * @param {int[]} tickArray sorted array of valid points
-     * @return {int} the closest tick
-     * @private
-     */
-    getTick: function(val, tickArray) {
-
-        if (!tickArray) {
-            // If tick interval is not defined, it is effectively 1 pixel,
-            // so we return the value passed to us.
-            return val;
-        } else if (tickArray[0] >= val) {
-            // The value is lower than the first tick, so we return the first
-            // tick.
-            return tickArray[0];
-        } else {
-            for (var i=0, len=tickArray.length; i<len; ++i) {
-                var next = i + 1;
-                if (tickArray[next] && tickArray[next] >= val) {
-                    var diff1 = val - tickArray[i];
-                    var diff2 = tickArray[next] - val;
-                    return (diff2 > diff1) ? tickArray[i] : tickArray[next];
-                }
-            }
-
-            // The value is larger than the last tick, so we return the last
-            // tick.
-            return tickArray[tickArray.length - 1];
-        }
-    },
-
-    /**
-     * toString method
-     * @method toString
-     * @return {string} string representation of the dd obj
-     */
-    toString: function() {
-        return ("DragDrop " + this.id);
-    }
-
-};
-
-})();
-/**
- * The drag and drop utility provides a framework for building drag and drop
- * applications.  In addition to enabling drag and drop for specific elements,
- * the drag and drop elements are tracked by the manager class, and the
- * interactions between the various elements are tracked during the drag and
- * the implementing code is notified about these important moments.
- */
-
-// Only load the library once.  Rewriting the manager class would orphan
-// existing drag and drop instances.
-if (!Ext.dd.DragDropMgr) {
-
-/**
- * @class Ext.dd.DragDropMgr
- * DragDropMgr is a singleton that tracks the element interaction for
- * all DragDrop items in the window.  Generally, you will not call
- * this class directly, but it does have helper methods that could
- * be useful in your DragDrop implementations.
- * @singleton
- */
-Ext.dd.DragDropMgr = function() {
-
-    var Event = Ext.EventManager;
-
-    return {
-
-        /**
-         * Two dimensional Array of registered DragDrop objects.  The first
-         * dimension is the DragDrop item group, the second the DragDrop
-         * object.
-         * @property ids
-         * @type {string: string}
-         * @private
-         * @static
-         */
-        ids: {},
-
-        /**
-         * Array of element ids defined as drag handles.  Used to determine
-         * if the element that generated the mousedown event is actually the
-         * handle and not the html element itself.
-         * @property handleIds
-         * @type {string: string}
-         * @private
-         * @static
-         */
-        handleIds: {},
-
-        /**
-         * the DragDrop object that is currently being dragged
-         * @property dragCurrent
-         * @type DragDrop
-         * @private
-         * @static
-         **/
-        dragCurrent: null,
-
-        /**
-         * the DragDrop object(s) that are being hovered over
-         * @property dragOvers
-         * @type Array
-         * @private
-         * @static
-         */
-        dragOvers: {},
-
-        /**
-         * the X distance between the cursor and the object being dragged
-         * @property deltaX
-         * @type int
-         * @private
-         * @static
-         */
-        deltaX: 0,
-
-        /**
-         * the Y distance between the cursor and the object being dragged
-         * @property deltaY
-         * @type int
-         * @private
-         * @static
-         */
-        deltaY: 0,
-
-        /**
-         * Flag to determine if we should prevent the default behavior of the
-         * events we define. By default this is true, but this can be set to
-         * false if you need the default behavior (not recommended)
-         * @property preventDefault
-         * @type boolean
-         * @static
-         */
-        preventDefault: true,
-
-        /**
-         * Flag to determine if we should stop the propagation of the events
-         * we generate. This is true by default but you may want to set it to
-         * false if the html element contains other features that require the
-         * mouse click.
-         * @property stopPropagation
-         * @type boolean
-         * @static
-         */
-        stopPropagation: true,
-
-        /**
-         * Internal flag that is set to true when drag and drop has been
-         * intialized
-         * @property initialized
-         * @private
-         * @static
-         */
-        initalized: false,
-
-        /**
-         * All drag and drop can be disabled.
-         * @property locked
-         * @private
-         * @static
-         */
-        locked: false,
-
-        /**
-         * Called the first time an element is registered.
-         * @method init
-         * @private
-         * @static
-         */
-        init: function() {
-            this.initialized = true;
-        },
-
-        /**
-         * In point mode, drag and drop interaction is defined by the
-         * location of the cursor during the drag/drop
-         * @property POINT
-         * @type int
-         * @static
-         */
-        POINT: 0,
-
-        /**
-         * In intersect mode, drag and drop interactio nis defined by the
-         * overlap of two or more drag and drop objects.
-         * @property INTERSECT
-         * @type int
-         * @static
-         */
-        INTERSECT: 1,
-
-        /**
-         * The current drag and drop mode.  Default: POINT
-         * @property mode
-         * @type int
-         * @static
-         */
-        mode: 0,
-
-        /**
-         * Runs method on all drag and drop objects
-         * @method _execOnAll
-         * @private
-         * @static
-         */
-        _execOnAll: function(sMethod, args) {
-            for (var i in this.ids) {
-                for (var j in this.ids[i]) {
-                    var oDD = this.ids[i][j];
-                    if (! this.isTypeOfDD(oDD)) {
-                        continue;
-                    }
-                    oDD[sMethod].apply(oDD, args);
-                }
-            }
-        },
-
-        /**
-         * Drag and drop initialization.  Sets up the global event handlers
-         * @method _onLoad
-         * @private
-         * @static
-         */
-        _onLoad: function() {
-
-            this.init();
-
-
-            Event.on(document, "mouseup",   this.handleMouseUp, this, true);
-            Event.on(document, "mousemove", this.handleMouseMove, this, true);
-            Event.on(window,   "unload",    this._onUnload, this, true);
-            Event.on(window,   "resize",    this._onResize, this, true);
-            // Event.on(window,   "mouseout",    this._test);
-
-        },
-
-        /**
-         * Reset constraints on all drag and drop objs
-         * @method _onResize
-         * @private
-         * @static
-         */
-        _onResize: function(e) {
-            this._execOnAll("resetConstraints", []);
-        },
-
-        /**
-         * Lock all drag and drop functionality
-         * @method lock
-         * @static
-         */
-        lock: function() { this.locked = true; },
-
-        /**
-         * Unlock all drag and drop functionality
-         * @method unlock
-         * @static
-         */
-        unlock: function() { this.locked = false; },
-
-        /**
-         * Is drag and drop locked?
-         * @method isLocked
-         * @return {boolean} True if drag and drop is locked, false otherwise.
-         * @static
-         */
-        isLocked: function() { return this.locked; },
-
-        /**
-         * Location cache that is set for all drag drop objects when a drag is
-         * initiated, cleared when the drag is finished.
-         * @property locationCache
-         * @private
-         * @static
-         */
-        locationCache: {},
-
-        /**
-         * Set useCache to false if you want to force object the lookup of each
-         * drag and drop linked element constantly during a drag.
-         * @property useCache
-         * @type boolean
-         * @static
-         */
-        useCache: true,
-
-        /**
-         * The number of pixels that the mouse needs to move after the
-         * mousedown before the drag is initiated.  Default=3;
-         * @property clickPixelThresh
-         * @type int
-         * @static
-         */
-        clickPixelThresh: 3,
-
-        /**
-         * The number of milliseconds after the mousedown event to initiate the
-         * drag if we don't get a mouseup event. Default=1000
-         * @property clickTimeThresh
-         * @type int
-         * @static
-         */
-        clickTimeThresh: 350,
-
-        /**
-         * Flag that indicates that either the drag pixel threshold or the
-         * mousdown time threshold has been met
-         * @property dragThreshMet
-         * @type boolean
-         * @private
-         * @static
-         */
-        dragThreshMet: false,
-
-        /**
-         * Timeout used for the click time threshold
-         * @property clickTimeout
-         * @type Object
-         * @private
-         * @static
-         */
-        clickTimeout: null,
-
-        /**
-         * The X position of the mousedown event stored for later use when a
-         * drag threshold is met.
-         * @property startX
-         * @type int
-         * @private
-         * @static
-         */
-        startX: 0,
-
-        /**
-         * The Y position of the mousedown event stored for later use when a
-         * drag threshold is met.
-         * @property startY
-         * @type int
-         * @private
-         * @static
-         */
-        startY: 0,
-
-        /**
-         * Each DragDrop instance must be registered with the DragDropMgr.
-         * This is executed in DragDrop.init()
-         * @method regDragDrop
-         * @param {DragDrop} oDD the DragDrop object to register
-         * @param {String} sGroup the name of the group this element belongs to
-         * @static
-         */
-        regDragDrop: function(oDD, sGroup) {
-            if (!this.initialized) { this.init(); }
-
-            if (!this.ids[sGroup]) {
-                this.ids[sGroup] = {};
-            }
-            this.ids[sGroup][oDD.id] = oDD;
-        },
-
-        /**
-         * Removes the supplied dd instance from the supplied group. Executed
-         * by DragDrop.removeFromGroup, so don't call this function directly.
-         * @method removeDDFromGroup
-         * @private
-         * @static
-         */
-        removeDDFromGroup: function(oDD, sGroup) {
-            if (!this.ids[sGroup]) {
-                this.ids[sGroup] = {};
-            }
-
-            var obj = this.ids[sGroup];
-            if (obj && obj[oDD.id]) {
-                delete obj[oDD.id];
-            }
-        },
-
-        /**
-         * Unregisters a drag and drop item.  This is executed in
-         * DragDrop.unreg, use that method instead of calling this directly.
-         * @method _remove
-         * @private
-         * @static
-         */
-        _remove: function(oDD) {
-            for (var g in oDD.groups) {
-                if (g && this.ids[g][oDD.id]) {
-                    delete this.ids[g][oDD.id];
-                }
-            }
-            delete this.handleIds[oDD.id];
-        },
-
-        /**
-         * Each DragDrop handle element must be registered.  This is done
-         * automatically when executing DragDrop.setHandleElId()
-         * @method regHandle
-         * @param {String} sDDId the DragDrop id this element is a handle for
-         * @param {String} sHandleId the id of the element that is the drag
-         * handle
-         * @static
-         */
-        regHandle: function(sDDId, sHandleId) {
-            if (!this.handleIds[sDDId]) {
-                this.handleIds[sDDId] = {};
-            }
-            this.handleIds[sDDId][sHandleId] = sHandleId;
-        },
-
-        /**
-         * Utility function to determine if a given element has been
-         * registered as a drag drop item.
-         * @method isDragDrop
-         * @param {String} id the element id to check
-         * @return {boolean} true if this element is a DragDrop item,
-         * false otherwise
-         * @static
-         */
-        isDragDrop: function(id) {
-            return ( this.getDDById(id) ) ? true : false;
-        },
-
-        /**
-         * Returns the drag and drop instances that are in all groups the
-         * passed in instance belongs to.
-         * @method getRelated
-         * @param {DragDrop} p_oDD the obj to get related data for
-         * @param {boolean} bTargetsOnly if true, only return targetable objs
-         * @return {DragDrop[]} the related instances
-         * @static
-         */
-        getRelated: function(p_oDD, bTargetsOnly) {
-            var oDDs = [];
-            for (var i in p_oDD.groups) {
-                for (j in this.ids[i]) {
-                    var dd = this.ids[i][j];
-                    if (! this.isTypeOfDD(dd)) {
-                        continue;
-                    }
-                    if (!bTargetsOnly || dd.isTarget) {
-                        oDDs[oDDs.length] = dd;
-                    }
-                }
-            }
-
-            return oDDs;
-        },
-
-        /**
-         * Returns true if the specified dd target is a legal target for
-         * the specifice drag obj
-         * @method isLegalTarget
-         * @param {DragDrop} the drag obj
-         * @param {DragDrop} the target
-         * @return {boolean} true if the target is a legal target for the
-         * dd obj
-         * @static
-         */
-        isLegalTarget: function (oDD, oTargetDD) {
-            var targets = this.getRelated(oDD, true);
-            for (var i=0, len=targets.length;i<len;++i) {
-                if (targets[i].id == oTargetDD.id) {
-                    return true;
-                }
-            }
-
-            return false;
-        },
-
-        /**
-         * My goal is to be able to transparently determine if an object is
-         * typeof DragDrop, and the exact subclass of DragDrop.  typeof
-         * returns "object", oDD.constructor.toString() always returns
-         * "DragDrop" and not the name of the subclass.  So for now it just
-         * evaluates a well-known variable in DragDrop.
-         * @method isTypeOfDD
-         * @param {Object} the object to evaluate
-         * @return {boolean} true if typeof oDD = DragDrop
-         * @static
-         */
-        isTypeOfDD: function (oDD) {
-            return (oDD && oDD.__ygDragDrop);
-        },
-
-        /**
-         * Utility function to determine if a given element has been
-         * registered as a drag drop handle for the given Drag Drop object.
-         * @method isHandle
-         * @param {String} id the element id to check
-         * @return {boolean} true if this element is a DragDrop handle, false
-         * otherwise
-         * @static
-         */
-        isHandle: function(sDDId, sHandleId) {
-            return ( this.handleIds[sDDId] &&
-                            this.handleIds[sDDId][sHandleId] );
-        },
-
-        /**
-         * Returns the DragDrop instance for a given id
-         * @method getDDById
-         * @param {String} id the id of the DragDrop object
-         * @return {DragDrop} the drag drop object, null if it is not found
-         * @static
-         */
-        getDDById: function(id) {
-            for (var i in this.ids) {
-                if (this.ids[i][id]) {
-                    return this.ids[i][id];
-                }
-            }
-            return null;
-        },
-
-        /**
-         * Fired after a registered DragDrop object gets the mousedown event.
-         * Sets up the events required to track the object being dragged
-         * @method handleMouseDown
-         * @param {Event} e the event
-         * @param oDD the DragDrop object being dragged
-         * @private
-         * @static
-         */
-        handleMouseDown: function(e, oDD) {
-
-            this.currentTarget = Ext.lib.Event.getTarget(e);
-
-            this.dragCurrent = oDD;
-
-            var el = oDD.getEl();
-
-            // track start position
-            this.startX = Ext.lib.Event.getPageX(e);
-            this.startY = Ext.lib.Event.getPageY(e);
-
-            this.deltaX = this.startX - el.offsetLeft;
-            this.deltaY = this.startY - el.offsetTop;
-
-            this.dragThreshMet = false;
-
-            this.clickTimeout = setTimeout(
-                    function() {
-                        var DDM = Ext.dd.DDM;
-                        DDM.startDrag(DDM.startX, DDM.startY);
-                    },
-                    this.clickTimeThresh );
-        },
-
-        /**
-         * Fired when either the drag pixel threshol or the mousedown hold
-         * time threshold has been met.
-         * @method startDrag
-         * @param x {int} the X position of the original mousedown
-         * @param y {int} the Y position of the original mousedown
-         * @static
-         */
-        startDrag: function(x, y) {
-            clearTimeout(this.clickTimeout);
-            if (this.dragCurrent) {
-                this.dragCurrent.b4StartDrag(x, y);
-                this.dragCurrent.startDrag(x, y);
-            }
-            this.dragThreshMet = true;
-        },
-
-        /**
-         * Internal function to handle the mouseup event.  Will be invoked
-         * from the context of the document.
-         * @method handleMouseUp
-         * @param {Event} e the event
-         * @private
-         * @static
-         */
-        handleMouseUp: function(e) {
-
-            if (! this.dragCurrent) {
-                return;
-            }
-
-            clearTimeout(this.clickTimeout);
-
-            if (this.dragThreshMet) {
-                this.fireEvents(e, true);
-            } else {
-            }
-
-            this.stopDrag(e);
-
-            this.stopEvent(e);
-        },
-
-        /**
-         * Utility to stop event propagation and event default, if these
-         * features are turned on.
-         * @method stopEvent
-         * @param {Event} e the event as returned by this.getEvent()
-         * @static
-         */
-        stopEvent: function(e){
-            if(this.stopPropagation) {
-                e.stopPropagation();
-            }
-
-            if (this.preventDefault) {
-                e.preventDefault();
-            }
-        },
-
-        /**
-         * Internal function to clean up event handlers after the drag
-         * operation is complete
-         * @method stopDrag
-         * @param {Event} e the event
-         * @private
-         * @static
-         */
-        stopDrag: function(e) {
-
-            // Fire the drag end event for the item that was dragged
-            if (this.dragCurrent) {
-                if (this.dragThreshMet) {
-                    this.dragCurrent.b4EndDrag(e);
-                    this.dragCurrent.endDrag(e);
-                }
-
-                this.dragCurrent.onMouseUp(e);
-            }
-
-            this.dragCurrent = null;
-            this.dragOvers = {};
-        },
-
-        /**
-         * Internal function to handle the mousemove event.  Will be invoked
-         * from the context of the html element.
-         *
-         * @TODO figure out what we can do about mouse events lost when the
-         * user drags objects beyond the window boundary.  Currently we can
-         * detect this in internet explorer by verifying that the mouse is
-         * down during the mousemove event.  Firefox doesn't give us the
-         * button state on the mousemove event.
-         * @method handleMouseMove
-         * @param {Event} e the event
-         * @private
-         * @static
-         */
-        handleMouseMove: function(e) {
-            if (! this.dragCurrent) {
-                return true;
-            }
-
-            // var button = e.which || e.button;
-
-            // check for IE mouseup outside of page boundary
-            if (Ext.isIE && (e.button !== 0 && e.button !== 1 && e.button !== 2)) {
-                this.stopEvent(e);
-                return this.handleMouseUp(e);
-            }
-
-            if (!this.dragThreshMet) {
-                var diffX = Math.abs(this.startX - Ext.lib.Event.getPageX(e));
-                var diffY = Math.abs(this.startY - Ext.lib.Event.getPageY(e));
-                if (diffX > this.clickPixelThresh ||
-                            diffY > this.clickPixelThresh) {
-                    this.startDrag(this.startX, this.startY);
-                }
-            }
-
-            if (this.dragThreshMet) {
-                this.dragCurrent.b4Drag(e);
-                this.dragCurrent.onDrag(e);
-                if(!this.dragCurrent.moveOnly){
-                    this.fireEvents(e, false);
-                }
-            }
-
-            this.stopEvent(e);
-
-            return true;
-        },
-
-        /**
-         * Iterates over all of the DragDrop elements to find ones we are
-         * hovering over or dropping on
-         * @method fireEvents
-         * @param {Event} e the event
-         * @param {boolean} isDrop is this a drop op or a mouseover op?
-         * @private
-         * @static
-         */
-        fireEvents: function(e, isDrop) {
-            var dc = this.dragCurrent;
-
-            // If the user did the mouse up outside of the window, we could
-            // get here even though we have ended the drag.
-            if (!dc || dc.isLocked()) {
-                return;
-            }
-
-            var x = Ext.lib.Event.getPageX(e);
-            var y = Ext.lib.Event.getPageY(e);
-            var pt = new Ext.lib.Point(x,y);
-
-            // cache the previous dragOver array
-            var oldOvers = [];
-
-            var outEvts   = [];
-            var overEvts  = [];
-            var dropEvts  = [];
-            var enterEvts = [];
-
-            // Check to see if the object(s) we were hovering over is no longer
-            // being hovered over so we can fire the onDragOut event
-            for (var i in this.dragOvers) {
-
-                var ddo = this.dragOvers[i];
-
-                if (! this.isTypeOfDD(ddo)) {
-                    continue;
-                }
-
-                if (! this.isOverTarget(pt, ddo, this.mode)) {
-                    outEvts.push( ddo );
-                }
-
-                oldOvers[i] = true;
-                delete this.dragOvers[i];
-            }
-
-            for (var sGroup in dc.groups) {
-
-                if ("string" != typeof sGroup) {
-                    continue;
-                }
-
-                for (i in this.ids[sGroup]) {
-                    var oDD = this.ids[sGroup][i];
-                    if (! this.isTypeOfDD(oDD)) {
-                        continue;
-                    }
-
-                    if (oDD.isTarget && !oDD.isLocked() && oDD != dc) {
-                        if (this.isOverTarget(pt, oDD, this.mode)) {
-                            // look for drop interactions
-                            if (isDrop) {
-                                dropEvts.push( oDD );
-                            // look for drag enter and drag over interactions
-                            } else {
-
-                                // initial drag over: dragEnter fires
-                                if (!oldOvers[oDD.id]) {
-                                    enterEvts.push( oDD );
-                                // subsequent drag overs: dragOver fires
-                                } else {
-                                    overEvts.push( oDD );
-                                }
-
-                                this.dragOvers[oDD.id] = oDD;
-                            }
-                        }
-                    }
-                }
-            }
-
-            if (this.mode) {
-                if (outEvts.length) {
-                    dc.b4DragOut(e, outEvts);
-                    dc.onDragOut(e, outEvts);
-                }
-
-                if (enterEvts.length) {
-                    dc.onDragEnter(e, enterEvts);
-                }
-
-                if (overEvts.length) {
-                    dc.b4DragOver(e, overEvts);
-                    dc.onDragOver(e, overEvts);
-                }
-
-                if (dropEvts.length) {
-                    dc.b4DragDrop(e, dropEvts);
-                    dc.onDragDrop(e, dropEvts);
-                }
-
-            } else {
-                // fire dragout events
-                var len = 0;
-                for (i=0, len=outEvts.length; i<len; ++i) {
-                    dc.b4DragOut(e, outEvts[i].id);
-                    dc.onDragOut(e, outEvts[i].id);
-                }
-
-                // fire enter events
-                for (i=0,len=enterEvts.length; i<len; ++i) {
-                    // dc.b4DragEnter(e, oDD.id);
-                    dc.onDragEnter(e, enterEvts[i].id);
-                }
-
-                // fire over events
-                for (i=0,len=overEvts.length; i<len; ++i) {
-                    dc.b4DragOver(e, overEvts[i].id);
-                    dc.onDragOver(e, overEvts[i].id);
-                }
-
-                // fire drop events
-                for (i=0, len=dropEvts.length; i<len; ++i) {
-                    dc.b4DragDrop(e, dropEvts[i].id);
-                    dc.onDragDrop(e, dropEvts[i].id);
-                }
-
-            }
-
-            // notify about a drop that did not find a target
-            if (isDrop && !dropEvts.length) {
-                dc.onInvalidDrop(e);
-            }
-
-        },
-
-        /**
-         * Helper function for getting the best match from the list of drag
-         * and drop objects returned by the drag and drop events when we are
-         * in INTERSECT mode.  It returns either the first object that the
-         * cursor is over, or the object that has the greatest overlap with
-         * the dragged element.
-         * @method getBestMatch
-         * @param  {DragDrop[]} dds The array of drag and drop objects
-         * targeted
-         * @return {DragDrop}       The best single match
-         * @static
-         */
-        getBestMatch: function(dds) {
-            var winner = null;
-            // Return null if the input is not what we expect
-            //if (!dds || !dds.length || dds.length == 0) {
-               // winner = null;
-            // If there is only one item, it wins
-            //} else if (dds.length == 1) {
-
-            var len = dds.length;
-
-            if (len == 1) {
-                winner = dds[0];
-            } else {
-                // Loop through the targeted items
-                for (var i=0; i<len; ++i) {
-                    var dd = dds[i];
-                    // If the cursor is over the object, it wins.  If the
-                    // cursor is over multiple matches, the first one we come
-                    // to wins.
-                    if (dd.cursorIsOver) {
-                        winner = dd;
-                        break;
-                    // Otherwise the object with the most overlap wins
-                    } else {
-                        if (!winner ||
-                            winner.overlap.getArea() < dd.overlap.getArea()) {
-                            winner = dd;
-                        }
-                    }
-                }
-            }
-
-            return winner;
-        },
-
-        /**
-         * Refreshes the cache of the top-left and bottom-right points of the
-         * drag and drop objects in the specified group(s).  This is in the
-         * format that is stored in the drag and drop instance, so typical
-         * usage is:
-         * <code>
-         * Ext.dd.DragDropMgr.refreshCache(ddinstance.groups);
-         * </code>
-         * Alternatively:
-         * <code>
-         * Ext.dd.DragDropMgr.refreshCache({group1:true, group2:true});
-         * </code>
-         * @TODO this really should be an indexed array.  Alternatively this
-         * method could accept both.
-         * @method refreshCache
-         * @param {Object} groups an associative array of groups to refresh
-         * @static
-         */
-        refreshCache: function(groups) {
-            for (var sGroup in groups) {
-                if ("string" != typeof sGroup) {
-                    continue;
-                }
-                for (var i in this.ids[sGroup]) {
-                    var oDD = this.ids[sGroup][i];
-
-                    if (this.isTypeOfDD(oDD)) {
-                    // if (this.isTypeOfDD(oDD) && oDD.isTarget) {
-                        var loc = this.getLocation(oDD);
-                        if (loc) {
-                            this.locationCache[oDD.id] = loc;
-                        } else {
-                            delete this.locationCache[oDD.id];
-                            // this will unregister the drag and drop object if
-                            // the element is not in a usable state
-                            // oDD.unreg();
-                        }
-                    }
-                }
-            }
-        },
-
-        /**
-         * This checks to make sure an element exists and is in the DOM.  The
-         * main purpose is to handle cases where innerHTML is used to remove
-         * drag and drop objects from the DOM.  IE provides an 'unspecified
-         * error' when trying to access the offsetParent of such an element
-         * @method verifyEl
-         * @param {HTMLElement} el the element to check
-         * @return {boolean} true if the element looks usable
-         * @static
-         */
-        verifyEl: function(el) {
-            try {
-                if (el) {
-                    var parent = el.offsetParent;
-                    if (parent) {
-                        return true;
-                    }
-                }
-            } catch(e) {
-            }
-
-            return false;
-        },
-
-        /**
-         * Returns a Region object containing the drag and drop element's position
-         * and size, including the padding configured for it
-         * @method getLocation
-         * @param {DragDrop} oDD the drag and drop object to get the
-         *                       location for
-         * @return {Ext.lib.Region} a Region object representing the total area
-         *                             the element occupies, including any padding
-         *                             the instance is configured for.
-         * @static
-         */
-        getLocation: function(oDD) {
-            if (! this.isTypeOfDD(oDD)) {
-                return null;
-            }
-
-            var el = oDD.getEl(), pos, x1, x2, y1, y2, t, r, b, l;
-
-            try {
-                pos= Ext.lib.Dom.getXY(el);
-            } catch (e) { }
-
-            if (!pos) {
-                return null;
-            }
-
-            x1 = pos[0];
-            x2 = x1 + el.offsetWidth;
-            y1 = pos[1];
-            y2 = y1 + el.offsetHeight;
-
-            t = y1 - oDD.padding[0];
-            r = x2 + oDD.padding[1];
-            b = y2 + oDD.padding[2];
-            l = x1 - oDD.padding[3];
-
-            return new Ext.lib.Region( t, r, b, l );
-        },
-
-        /**
-         * Checks the cursor location to see if it over the target
-         * @method isOverTarget
-         * @param {Ext.lib.Point} pt The point to evaluate
-         * @param {DragDrop} oTarget the DragDrop object we are inspecting
-         * @return {boolean} true if the mouse is over the target
-         * @private
-         * @static
-         */
-        isOverTarget: function(pt, oTarget, intersect) {
-            // use cache if available
-            var loc = this.locationCache[oTarget.id];
-            if (!loc || !this.useCache) {
-                loc = this.getLocation(oTarget);
-                this.locationCache[oTarget.id] = loc;
-
-            }
-
-            if (!loc) {
-                return false;
-            }
-
-            oTarget.cursorIsOver = loc.contains( pt );
-
-            // DragDrop is using this as a sanity check for the initial mousedown
-            // in this case we are done.  In POINT mode, if the drag obj has no
-            // contraints, we are also done. Otherwise we need to evaluate the
-            // location of the target as related to the actual location of the
-            // dragged element.
-            var dc = this.dragCurrent;
-            if (!dc || !dc.getTargetCoord ||
-                    (!intersect && !dc.constrainX && !dc.constrainY)) {
-                return oTarget.cursorIsOver;
-            }
-
-            oTarget.overlap = null;
-
-            // Get the current location of the drag element, this is the
-            // location of the mouse event less the delta that represents
-            // where the original mousedown happened on the element.  We
-            // need to consider constraints and ticks as well.
-            var pos = dc.getTargetCoord(pt.x, pt.y);
-
-            var el = dc.getDragEl();
-            var curRegion = new Ext.lib.Region( pos.y,
-                                                   pos.x + el.offsetWidth,
-                                                   pos.y + el.offsetHeight,
-                                                   pos.x );
-
-            var overlap = curRegion.intersect(loc);
-
-            if (overlap) {
-                oTarget.overlap = overlap;
-                return (intersect) ? true : oTarget.cursorIsOver;
-            } else {
-                return false;
-            }
-        },
-
-        /**
-         * unload event handler
-         * @method _onUnload
-         * @private
-         * @static
-         */
-        _onUnload: function(e, me) {
-            Ext.dd.DragDropMgr.unregAll();
-        },
-
-        /**
-         * Cleans up the drag and drop events and objects.
-         * @method unregAll
-         * @private
-         * @static
-         */
-        unregAll: function() {
-
-            if (this.dragCurrent) {
-                this.stopDrag();
-                this.dragCurrent = null;
-            }
-
-            this._execOnAll("unreg", []);
-
-            for (i in this.elementCache) {
-                delete this.elementCache[i];
-            }
-
-            this.elementCache = {};
-            this.ids = {};
-        },
-
-        /**
-         * A cache of DOM elements
-         * @property elementCache
-         * @private
-         * @static
-         */
-        elementCache: {},
-
-        /**
-         * Get the wrapper for the DOM element specified
-         * @method getElWrapper
-         * @param {String} id the id of the element to get
-         * @return {Ext.dd.DDM.ElementWrapper} the wrapped element
-         * @private
-         * @deprecated This wrapper isn't that useful
-         * @static
-         */
-        getElWrapper: function(id) {
-            var oWrapper = this.elementCache[id];
-            if (!oWrapper || !oWrapper.el) {
-                oWrapper = this.elementCache[id] =
-                    new this.ElementWrapper(Ext.getDom(id));
-            }
-            return oWrapper;
-        },
-
-        /**
-         * Returns the actual DOM element
-         * @method getElement
-         * @param {String} id the id of the elment to get
-         * @return {Object} The element
-         * @deprecated use Ext.lib.Ext.getDom instead
-         * @static
-         */
-        getElement: function(id) {
-            return Ext.getDom(id);
-        },
-
-        /**
-         * Returns the style property for the DOM element (i.e.,
-         * document.getElById(id).style)
-         * @method getCss
-         * @param {String} id the id of the elment to get
-         * @return {Object} The style property of the element
-         * @deprecated use Ext.lib.Dom instead
-         * @static
-         */
-        getCss: function(id) {
-            var el = Ext.getDom(id);
-            return (el) ? el.style : null;
-        },
-
-        /**
-         * Inner class for cached elements
-         * @class DragDropMgr.ElementWrapper
-         * @for DragDropMgr
-         * @private
-         * @deprecated
-         */
-        ElementWrapper: function(el) {
-                /**
-                 * The element
-                 * @property el
-                 */
-                this.el = el || null;
-                /**
-                 * The element id
-                 * @property id
-                 */
-                this.id = this.el && el.id;
-                /**
-                 * A reference to the style property
-                 * @property css
-                 */
-                this.css = this.el && el.style;
-            },
-
-        /**
-         * Returns the X position of an html element
-         * @method getPosX
-         * @param el the element for which to get the position
-         * @return {int} the X coordinate
-         * @for DragDropMgr
-         * @deprecated use Ext.lib.Dom.getX instead
-         * @static
-         */
-        getPosX: function(el) {
-            return Ext.lib.Dom.getX(el);
-        },
-
-        /**
-         * Returns the Y position of an html element
-         * @method getPosY
-         * @param el the element for which to get the position
-         * @return {int} the Y coordinate
-         * @deprecated use Ext.lib.Dom.getY instead
-         * @static
-         */
-        getPosY: function(el) {
-            return Ext.lib.Dom.getY(el);
-        },
-
-        /**
-         * Swap two nodes.  In IE, we use the native method, for others we
-         * emulate the IE behavior
-         * @method swapNode
-         * @param n1 the first node to swap
-         * @param n2 the other node to swap
-         * @static
-         */
-        swapNode: function(n1, n2) {
-            if (n1.swapNode) {
-                n1.swapNode(n2);
-            } else {
-                var p = n2.parentNode;
-                var s = n2.nextSibling;
-
-                if (s == n1) {
-                    p.insertBefore(n1, n2);
-                } else if (n2 == n1.nextSibling) {
-                    p.insertBefore(n2, n1);
-                } else {
-                    n1.parentNode.replaceChild(n2, n1);
-                    p.insertBefore(n1, s);
-                }
-            }
-        },
-
-        /**
-         * Returns the current scroll position
-         * @method getScroll
-         * @private
-         * @static
-         */
-        getScroll: function () {
-            var t, l, dde=document.documentElement, db=document.body;
-            if (dde && (dde.scrollTop || dde.scrollLeft)) {
-                t = dde.scrollTop;
-                l = dde.scrollLeft;
-            } else if (db) {
-                t = db.scrollTop;
-                l = db.scrollLeft;
-            } else {
-
-            }
-            return { top: t, left: l };
-        },
-
-        /**
-         * Returns the specified element style property
-         * @method getStyle
-         * @param {HTMLElement} el          the element
-         * @param {string}      styleProp   the style property
-         * @return {string} The value of the style property
-         * @deprecated use Ext.lib.Dom.getStyle
-         * @static
-         */
-        getStyle: function(el, styleProp) {
-            return Ext.fly(el).getStyle(styleProp);
-        },
-
-        /**
-         * Gets the scrollTop
-         * @method getScrollTop
-         * @return {int} the document's scrollTop
-         * @static
-         */
-        getScrollTop: function () { return this.getScroll().top; },
-
-        /**
-         * Gets the scrollLeft
-         * @method getScrollLeft
-         * @return {int} the document's scrollTop
-         * @static
-         */
-        getScrollLeft: function () { return this.getScroll().left; },
-
-        /**
-         * Sets the x/y position of an element to the location of the
-         * target element.
-         * @method moveToEl
-         * @param {HTMLElement} moveEl      The element to move
-         * @param {HTMLElement} targetEl    The position reference element
-         * @static
-         */
-        moveToEl: function (moveEl, targetEl) {
-            var aCoord = Ext.lib.Dom.getXY(targetEl);
-            Ext.lib.Dom.setXY(moveEl, aCoord);
-        },
-
-        /**
-         * Numeric array sort function
-         * @method numericSort
-         * @static
-         */
-        numericSort: function(a, b) { return (a - b); },
-
-        /**
-         * Internal counter
-         * @property _timeoutCount
-         * @private
-         * @static
-         */
-        _timeoutCount: 0,
-
-        /**
-         * Trying to make the load order less important.  Without this we get
-         * an error if this file is loaded before the Event Utility.
-         * @method _addListeners
-         * @private
-         * @static
-         */
-        _addListeners: function() {
-            var DDM = Ext.dd.DDM;
-            if ( Ext.lib.Event && document ) {
-                DDM._onLoad();
-            } else {
-                if (DDM._timeoutCount > 2000) {
-                } else {
-                    setTimeout(DDM._addListeners, 10);
-                    if (document && document.body) {
-                        DDM._timeoutCount += 1;
-                    }
-                }
-            }
-        },
-
-        /**
-         * Recursively searches the immediate parent and all child nodes for
-         * the handle element in order to determine wheter or not it was
-         * clicked.
-         * @method handleWasClicked
-         * @param node the html element to inspect
-         * @static
-         */
-        handleWasClicked: function(node, id) {
-            if (this.isHandle(id, node.id)) {
-                return true;
-            } else {
-                // check to see if this is a text node child of the one we want
-                var p = node.parentNode;
-
-                while (p) {
-                    if (this.isHandle(id, p.id)) {
-                        return true;
-                    } else {
-                        p = p.parentNode;
-                    }
-                }
-            }
-
-            return false;
-        }
-
-    };
-
-}();
-
-// shorter alias, save a few bytes
-Ext.dd.DDM = Ext.dd.DragDropMgr;
-Ext.dd.DDM._addListeners();
-
-}
-
-/**
- * @class Ext.dd.DD
- * A DragDrop implementation where the linked element follows the
- * mouse cursor during a drag.
- * @extends Ext.dd.DragDrop
- * @constructor
- * @param {String} id the id of the linked element
- * @param {String} sGroup the group of related DragDrop items
- * @param {object} config an object containing configurable attributes
- *                Valid properties for DD:
- *                    scroll
- */
-Ext.dd.DD = function(id, sGroup, config) {
-    if (id) {
-        this.init(id, sGroup, config);
-    }
-};
-
-Ext.extend(Ext.dd.DD, Ext.dd.DragDrop, {
-
-    /**
-     * When set to true, the utility automatically tries to scroll the browser
-     * window wehn a drag and drop element is dragged near the viewport boundary.
-     * Defaults to true.
-     * @property scroll
-     * @type boolean
-     */
-    scroll: true,
-
-    /**
-     * Sets the pointer offset to the distance between the linked element's top
-     * left corner and the location the element was clicked
-     * @method autoOffset
-     * @param {int} iPageX the X coordinate of the click
-     * @param {int} iPageY the Y coordinate of the click
-     */
-    autoOffset: function(iPageX, iPageY) {
-        var x = iPageX - this.startPageX;
-        var y = iPageY - this.startPageY;
-        this.setDelta(x, y);
-    },
-
-    /**
-     * Sets the pointer offset.  You can call this directly to force the
-     * offset to be in a particular location (e.g., pass in 0,0 to set it
-     * to the center of the object)
-     * @method setDelta
-     * @param {int} iDeltaX the distance from the left
-     * @param {int} iDeltaY the distance from the top
-     */
-    setDelta: function(iDeltaX, iDeltaY) {
-        this.deltaX = iDeltaX;
-        this.deltaY = iDeltaY;
-    },
-
-    /**
-     * Sets the drag element to the location of the mousedown or click event,
-     * maintaining the cursor location relative to the location on the element
-     * that was clicked.  Override this if you want to place the element in a
-     * location other than where the cursor is.
-     * @method setDragElPos
-     * @param {int} iPageX the X coordinate of the mousedown or drag event
-     * @param {int} iPageY the Y coordinate of the mousedown or drag event
-     */
-    setDragElPos: function(iPageX, iPageY) {
-        // the first time we do this, we are going to check to make sure
-        // the element has css positioning
-
-        var el = this.getDragEl();
-        this.alignElWithMouse(el, iPageX, iPageY);
-    },
-
-    /**
-     * Sets the element to the location of the mousedown or click event,
-     * maintaining the cursor location relative to the location on the element
-     * that was clicked.  Override this if you want to place the element in a
-     * location other than where the cursor is.
-     * @method alignElWithMouse
-     * @param {HTMLElement} el the element to move
-     * @param {int} iPageX the X coordinate of the mousedown or drag event
-     * @param {int} iPageY the Y coordinate of the mousedown or drag event
-     */
-    alignElWithMouse: function(el, iPageX, iPageY) {
-        var oCoord = this.getTargetCoord(iPageX, iPageY);
-        var fly = el.dom ? el : Ext.fly(el);
-        if (!this.deltaSetXY) {
-            var aCoord = [oCoord.x, oCoord.y];
-            fly.setXY(aCoord);
-            var newLeft = fly.getLeft(true);
-            var newTop  = fly.getTop(true);
-            this.deltaSetXY = [ newLeft - oCoord.x, newTop - oCoord.y ];
-        } else {
-            fly.setLeftTop(oCoord.x + this.deltaSetXY[0], oCoord.y + this.deltaSetXY[1]);
-        }
-
-        this.cachePosition(oCoord.x, oCoord.y);
-        this.autoScroll(oCoord.x, oCoord.y, el.offsetHeight, el.offsetWidth);
-        return oCoord;
-    },
-
-    /**
-     * Saves the most recent position so that we can reset the constraints and
-     * tick marks on-demand.  We need to know this so that we can calculate the
-     * number of pixels the element is offset from its original position.
-     * @method cachePosition
-     * @param iPageX the current x position (optional, this just makes it so we
-     * don't have to look it up again)
-     * @param iPageY the current y position (optional, this just makes it so we
-     * don't have to look it up again)
-     */
-    cachePosition: function(iPageX, iPageY) {
-        if (iPageX) {
-            this.lastPageX = iPageX;
-            this.lastPageY = iPageY;
-        } else {
-            var aCoord = Ext.lib.Dom.getXY(this.getEl());
-            this.lastPageX = aCoord[0];
-            this.lastPageY = aCoord[1];
-        }
-    },
-
-    /**
-     * Auto-scroll the window if the dragged object has been moved beyond the
-     * visible window boundary.
-     * @method autoScroll
-     * @param {int} x the drag element's x position
-     * @param {int} y the drag element's y position
-     * @param {int} h the height of the drag element
-     * @param {int} w the width of the drag element
-     * @private
-     */
-    autoScroll: function(x, y, h, w) {
-
-        if (this.scroll) {
-            // The client height
-            var clientH = Ext.lib.Dom.getViewWidth();
-
-            // The client width
-            var clientW = Ext.lib.Dom.getViewHeight();
-
-            // The amt scrolled down
-            var st = this.DDM.getScrollTop();
-
-            // The amt scrolled right
-            var sl = this.DDM.getScrollLeft();
-
-            // Location of the bottom of the element
-            var bot = h + y;
-
-            // Location of the right of the element
-            var right = w + x;
-
-            // The distance from the cursor to the bottom of the visible area,
-            // adjusted so that we don't scroll if the cursor is beyond the
-            // element drag constraints
-            var toBot = (clientH + st - y - this.deltaY);
-
-            // The distance from the cursor to the right of the visible area
-            var toRight = (clientW + sl - x - this.deltaX);
-
-
-            // How close to the edge the cursor must be before we scroll
-            // var thresh = (document.all) ? 100 : 40;
-            var thresh = 40;
-
-            // How many pixels to scroll per autoscroll op.  This helps to reduce
-            // clunky scrolling. IE is more sensitive about this ... it needs this
-            // value to be higher.
-            var scrAmt = (document.all) ? 80 : 30;
-
-            // Scroll down if we are near the bottom of the visible page and the
-            // obj extends below the crease
-            if ( bot > clientH && toBot < thresh ) {
-                window.scrollTo(sl, st + scrAmt);
-            }
-
-            // Scroll up if the window is scrolled down and the top of the object
-            // goes above the top border
-            if ( y < st && st > 0 && y - st < thresh ) {
-                window.scrollTo(sl, st - scrAmt);
-            }
-
-            // Scroll right if the obj is beyond the right border and the cursor is
-            // near the border.
-            if ( right > clientW && toRight < thresh ) {
-                window.scrollTo(sl + scrAmt, st);
-            }
-
-            // Scroll left if the window has been scrolled to the right and the obj
-            // extends past the left border
-            if ( x < sl && sl > 0 && x - sl < thresh ) {
-                window.scrollTo(sl - scrAmt, st);
-            }
-        }
-    },
-
-    /**
-     * Finds the location the element should be placed if we want to move
-     * it to where the mouse location less the click offset would place us.
-     * @method getTargetCoord
-     * @param {int} iPageX the X coordinate of the click
-     * @param {int} iPageY the Y coordinate of the click
-     * @return an object that contains the coordinates (Object.x and Object.y)
-     * @private
-     */
-    getTargetCoord: function(iPageX, iPageY) {
-
-
-        var x = iPageX - this.deltaX;
-        var y = iPageY - this.deltaY;
-
-        if (this.constrainX) {
-            if (x < this.minX) { x = this.minX; }
-            if (x > this.maxX) { x = this.maxX; }
-        }
-
-        if (this.constrainY) {
-            if (y < this.minY) { y = this.minY; }
-            if (y > this.maxY) { y = this.maxY; }
-        }
-
-        x = this.getTick(x, this.xTicks);
-        y = this.getTick(y, this.yTicks);
-
-
-        return {x:x, y:y};
-    },
-
-    /*
-     * Sets up config options specific to this class. Overrides
-     * Ext.dd.DragDrop, but all versions of this method through the
-     * inheritance chain are called
-     */
-    applyConfig: function() {
-        Ext.dd.DD.superclass.applyConfig.call(this);
-        this.scroll = (this.config.scroll !== false);
-    },
-
-    /*
-     * Event that fires prior to the onMouseDown event.  Overrides
-     * Ext.dd.DragDrop.
-     */
-    b4MouseDown: function(e) {
-        // this.resetConstraints();
-        this.autoOffset(Ext.lib.Event.getPageX(e),
-                            Ext.lib.Event.getPageY(e));
-    },
-
-    /*
-     * Event that fires prior to the onDrag event.  Overrides
-     * Ext.dd.DragDrop.
-     */
-    b4Drag: function(e) {
-        this.setDragElPos(Ext.lib.Event.getPageX(e),
-                            Ext.lib.Event.getPageY(e));
-    },
-
-    toString: function() {
-        return ("DD " + this.id);
-    }
-
-    //////////////////////////////////////////////////////////////////////////
-    // Debugging ygDragDrop events that can be overridden
-    //////////////////////////////////////////////////////////////////////////
-    /*
-    startDrag: function(x, y) {
-    },
-
-    onDrag: function(e) {
-    },
-
-    onDragEnter: function(e, id) {
-    },
-
-    onDragOver: function(e, id) {
-    },
-
-    onDragOut: function(e, id) {
-    },
-
-    onDragDrop: function(e, id) {
-    },
-
-    endDrag: function(e) {
-    }
-
-    */
-
-});
-/**
- * @class Ext.dd.DDProxy
- * A DragDrop implementation that inserts an empty, bordered div into
- * the document that follows the cursor during drag operations.  At the time of
- * the click, the frame div is resized to the dimensions of the linked html
- * element, and moved to the exact location of the linked element.
- *
- * References to the "frame" element refer to the single proxy element that
- * was created to be dragged in place of all DDProxy elements on the
- * page.
- *
- * @extends Ext.dd.DD
- * @constructor
- * @param {String} id the id of the linked html element
- * @param {String} sGroup the group of related DragDrop objects
- * @param {object} config an object containing configurable attributes
- *                Valid properties for DDProxy in addition to those in DragDrop:
- *                   resizeFrame, centerFrame, dragElId
- */
-Ext.dd.DDProxy = function(id, sGroup, config) {
-    if (id) {
-        this.init(id, sGroup, config);
-        this.initFrame();
-    }
-};
-
-/**
- * The default drag frame div id
- * @property Ext.dd.DDProxy.dragElId
- * @type String
- * @static
- */
-Ext.dd.DDProxy.dragElId = "ygddfdiv";
-
-Ext.extend(Ext.dd.DDProxy, Ext.dd.DD, {
-
-    /**
-     * By default we resize the drag frame to be the same size as the element
-     * we want to drag (this is to get the frame effect).  We can turn it off
-     * if we want a different behavior.
-     * @property resizeFrame
-     * @type boolean
-     */
-    resizeFrame: true,
-
-    /**
-     * By default the frame is positioned exactly where the drag element is, so
-     * we use the cursor offset provided by Ext.dd.DD.  Another option that works only if
-     * you do not have constraints on the obj is to have the drag frame centered
-     * around the cursor.  Set centerFrame to true for this effect.
-     * @property centerFrame
-     * @type boolean
-     */
-    centerFrame: false,
-
-    /**
-     * Creates the proxy element if it does not yet exist
-     * @method createFrame
-     */
-    createFrame: function() {
-        var self = this;
-        var body = document.body;
-
-        if (!body || !body.firstChild) {
-            setTimeout( function() { self.createFrame(); }, 50 );
-            return;
-        }
-
-        var div = this.getDragEl();
-
-        if (!div) {
-            div    = document.createElement("div");
-            div.id = this.dragElId;
-            var s  = div.style;
-
-            s.position   = "absolute";
-            s.visibility = "hidden";
-            s.cursor     = "move";
-            s.border     = "2px solid #aaa";
-            s.zIndex     = 999;
-
-            // appendChild can blow up IE if invoked prior to the window load event
-            // while rendering a table.  It is possible there are other scenarios
-            // that would cause this to happen as well.
-            body.insertBefore(div, body.firstChild);
-        }
-    },
-
-    /**
-     * Initialization for the drag frame element.  Must be called in the
-     * constructor of all subclasses
-     * @method initFrame
-     */
-    initFrame: function() {
-        this.createFrame();
-    },
-
-    applyConfig: function() {
-        Ext.dd.DDProxy.superclass.applyConfig.call(this);
-
-        this.resizeFrame = (this.config.resizeFrame !== false);
-        this.centerFrame = (this.config.centerFrame);
-        this.setDragElId(this.config.dragElId || Ext.dd.DDProxy.dragElId);
-    },
-
-    /**
-     * Resizes the drag frame to the dimensions of the clicked object, positions
-     * it over the object, and finally displays it
-     * @method showFrame
-     * @param {int} iPageX X click position
-     * @param {int} iPageY Y click position
-     * @private
-     */
-    showFrame: function(iPageX, iPageY) {
-        var el = this.getEl();
-        var dragEl = this.getDragEl();
-        var s = dragEl.style;
-
-        this._resizeProxy();
-
-        if (this.centerFrame) {
-            this.setDelta( Math.round(parseInt(s.width,  10)/2),
-                           Math.round(parseInt(s.height, 10)/2) );
-        }
-
-        this.setDragElPos(iPageX, iPageY);
-
-        Ext.fly(dragEl).show();
-    },
-
-    /**
-     * The proxy is automatically resized to the dimensions of the linked
-     * element when a drag is initiated, unless resizeFrame is set to false
-     * @method _resizeProxy
-     * @private
-     */
-    _resizeProxy: function() {
-        if (this.resizeFrame) {
-            var el = this.getEl();
-            Ext.fly(this.getDragEl()).setSize(el.offsetWidth, el.offsetHeight);
-        }
-    },
-
-    // overrides Ext.dd.DragDrop
-    b4MouseDown: function(e) {
-        var x = Ext.lib.Event.getPageX(e);
-        var y = Ext.lib.Event.getPageY(e);
-        this.autoOffset(x, y);
-        this.setDragElPos(x, y);
-    },
-
-    // overrides Ext.dd.DragDrop
-    b4StartDrag: function(x, y) {
-        // show the drag frame
-        this.showFrame(x, y);
-    },
-
-    // overrides Ext.dd.DragDrop
-    b4EndDrag: function(e) {
-        Ext.fly(this.getDragEl()).hide();
-    },
-
-    // overrides Ext.dd.DragDrop
-    // By default we try to move the element to the last location of the frame.
-    // This is so that the default behavior mirrors that of Ext.dd.DD.
-    endDrag: function(e) {
-
-        var lel = this.getEl();
-        var del = this.getDragEl();
-
-        // Show the drag frame briefly so we can get its position
-        del.style.visibility = "";
-
-        this.beforeMove();
-        // Hide the linked element before the move to get around a Safari
-        // rendering bug.
-        lel.style.visibility = "hidden";
-        Ext.dd.DDM.moveToEl(lel, del);
-        del.style.visibility = "hidden";
-        lel.style.visibility = "";
-
-        this.afterDrag();
-    },
-
-    beforeMove : function(){
-
-    },
-
-    afterDrag : function(){
-
-    },
-
-    toString: function() {
-        return ("DDProxy " + this.id);
-    }
-
-});
-/**
- * @class Ext.dd.DDTarget
- * A DragDrop implementation that does not move, but can be a drop
- * target.  You would get the same result by simply omitting implementation
- * for the event callbacks, but this way we reduce the processing cost of the
- * event listener and the callbacks.
- * @extends Ext.dd.DragDrop
- * @constructor
- * @param {String} id the id of the element that is a drop target
- * @param {String} sGroup the group of related DragDrop objects
- * @param {object} config an object containing configurable attributes
- *                 Valid properties for DDTarget in addition to those in
- *                 DragDrop:
- *                    none
- */
-Ext.dd.DDTarget = function(id, sGroup, config) {
-    if (id) {
-        this.initTarget(id, sGroup, config);
-    }
-};
-
-// Ext.dd.DDTarget.prototype = new Ext.dd.DragDrop();
-Ext.extend(Ext.dd.DDTarget, Ext.dd.DragDrop, {
-    toString: function() {
-        return ("DDTarget " + this.id);
-    }
-});
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/DataField.jss.html b/www/extras/extjs/docs/output/DataField.jss.html deleted file mode 100644 index a98a09728..000000000 --- a/www/extras/extjs/docs/output/DataField.jss.html +++ /dev/null @@ -1,94 +0,0 @@ -DataField.js

DataField.js

Ext.data.Field = function(config){
-    if(typeof config == "string"){
-        config = {name: config};
-    }
-    Ext.apply(this, config);
-    
-    if(!this.type){
-        this.type = "auto";
-    }
-    
-    var st = Ext.data.SortTypes;
-    // named sortTypes are supported, here we look them up
-    if(typeof this.sortType == "string"){
-        this.sortType = st[this.sortType];
-    }
-    
-    // set default sortType for strings and dates
-    if(!this.sortType){
-        switch(this.type){
-            case "string":
-                this.sortType = st.asUCString;
-                break;
-            case "date":
-                this.sortType = st.asDate;
-                break;
-            default:
-                this.sortType = st.none;
-        }
-    }
-
-    // define once
-    var stripRe = /[\$,%]/g;
-
-    // prebuilt conversion function for this field, instead of
-    // switching every time we're reading a value
-    if(!this.convert){
-        var cv, dateFormat = this.dateFormat;
-        switch(this.type){
-            case "":
-            case "auto":
-            case undefined:
-                cv = function(v){ return v; };
-                break;
-            case "string":
-                cv = function(v){ return String(v); };
-                break;
-            case "int":
-                cv = function(v){
-                    return v !== undefined && v !== null && v !== '' ?
-                           parseInt(String(v).replace(stripRe, ""), 10) : '';
-                    };
-                break;
-            case "float":
-                cv = function(v){
-                    return v !== undefined && v !== null && v !== '' ?
-                           parseFloat(String(v).replace(stripRe, ""), 10) : ''; 
-                    };
-                break;
-            case "bool":
-            case "boolean":
-                cv = function(v){ return v === true || v === "true" || v == 1; };
-                break;
-            case "date":
-                cv = function(v){
-                    if(!v){
-                        return '';
-                    }
-                    if(v instanceof Date){
-                        return v;
-                    }
-                    if(dateFormat){
-                        if(dateFormat == "timestamp"){
-                            return new Date(v*1000);
-                        }
-                        return Date.parseDate(v, dateFormat);
-                    }
-                    var parsed = Date.parse(v);
-                    return parsed ? new Date(parsed) : null;
-                };
-             break;
-            
-        }
-        this.convert = cv;
-    }
-};
-
-Ext.data.Field.prototype = {
-    dateFormat: null,
-    defaultValue: "",
-    mapping: null,
-    sortType : null,
-    sortDir : "ASC"
-};

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/DataProxy.jss.html b/www/extras/extjs/docs/output/DataProxy.jss.html deleted file mode 100644 index fc14d2a3d..000000000 --- a/www/extras/extjs/docs/output/DataProxy.jss.html +++ /dev/null @@ -1,41 +0,0 @@ -DataProxy.js

DataProxy.js

/**
- * @class Ext.data.DataProxy
- * This class is an abstract base class for implementations which provide retrieval of
- * unformatted data objects.
- * <p>
- * DataProxy implementations are usually used in conjunction with an implementation of Ext.data.DataReader
- * (of the approriate type which knows how to parse the data object) to provide a block of Records
- * to an Ext.data.Store.
- * <p>
- * Custom implementations must implement the load method as described in
- * {@link Ext.data.HttpProxy#load}.
- */
-Ext.data.DataProxy = function(){
-    this.addEvents({
-        /**
-         * @event beforeload
-         * Fires before a network request is made to retrieve a data object.
-         * @param {Object} params The params parameter to the load function.
-         */
-        beforeload : true,
-        /**
-         * @event load
-         * Fires before the load method's callback is called.
-         * @param {Object} o The data object.
-         * @param {Object} arg The callback argument object passed to the load function.
-         */
-        load : true,
-        /**
-         * @event loadexception
-         * Fires if an Exception occurs during data retrieval.
-         * @param {Object} o The data object.
-         * @param {Object} arg The callback argument object passed to the load function.
-         * @param {Object} e The Exception.
-         */
-        loadexception : true
-    });
-    Ext.data.DataProxy.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.data.DataProxy, Ext.util.Observable);

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/DataReader.jss.html b/www/extras/extjs/docs/output/DataReader.jss.html deleted file mode 100644 index 4d6161a04..000000000 --- a/www/extras/extjs/docs/output/DataReader.jss.html +++ /dev/null @@ -1,10 +0,0 @@ -DataReader.js

DataReader.js

Ext.data.DataReader = function(meta, recordType){
-    this.meta = meta;
-    this.recordType = recordType instanceof Array ? 
-        Ext.data.Record.create(recordType) : recordType;
-};
-
-Ext.data.DataReader.prototype = {
-    
-};

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Date.html b/www/extras/extjs/docs/output/Date.html deleted file mode 100644 index 467acdc19..000000000 --- a/www/extras/extjs/docs/output/Date.html +++ /dev/null @@ -1,764 +0,0 @@ - - - - Date - - - - - - -
-
-  Print Friendly
- -
-

Class Date

- - - - - -
Package:Global
Class:Date
Extends:Object
Defined In:Date.js
-
- The date parsing and format syntax is a subset of -PHP's date() function, and the formats that are -supported will provide results equivalent to their PHP versions. -Following is the list of all currently supported formats: -
-Sample date:
-'Wed Jan 10 2007 15:05:01 GMT-0600 (Central Standard Time)'
-
-Format  Output      Description
-------  ----------  --------------------------------------------------------------
-  d      10         Day of the month, 2 digits with leading zeros
-  D      Wed        A textual representation of a day, three letters
-  j      10         Day of the month without leading zeros
-  l      Wednesday  A full textual representation of the day of the week
-  S      th         English ordinal day of month suffix, 2 chars (use with j)
-  w      3          Numeric representation of the day of the week
-  z      9          The julian date, or day of the year (0-365)
-  W      01         ISO-8601 2-digit week number of year, weeks starting on Monday (00-52)
-  F      January    A full textual representation of the month
-  m      01         Numeric representation of a month, with leading zeros
-  M      Jan        Month name abbreviation, three letters
-  n      1          Numeric representation of a month, without leading zeros
-  t      31         Number of days in the given month
-  L      0          Whether it's a leap year (1 if it is a leap year, else 0)
-  Y      2007       A full numeric representation of a year, 4 digits
-  y      07         A two digit representation of a year
-  a      pm         Lowercase Ante meridiem and Post meridiem	
-  A      PM         Uppercase Ante meridiem and Post meridiem
-  g      3          12-hour format of an hour without leading zeros
-  G      15         24-hour format of an hour without leading zeros
-  h      03         12-hour format of an hour with leading zeros
-  H      15         24-hour format of an hour with leading zeros
-  i      05         Minutes with leading zeros
-  s      01         Seconds, with leading zeros
-  O      -0600      Difference to Greenwich time (GMT) in hours
-  T      CST        Timezone setting of the machine running the code
-  Z      -21600     Timezone offset in seconds (negative if west of UTC, positive if east)
-
-Example usage (note that you must escape format specifiers with '\\' to render them as character literals): -
var dt = new Date('1/10/2007 03:05:01 PM GMT-0600');
-document.write(dt.format('Y-m-d'));                         //2007-01-10
-document.write(dt.format('F j, Y, g:i a'));                 //January 10, 2007, 3:05 pm
-document.write(dt.format('l, \\t\\he dS of F Y h:i:s A'));  //Wednesday, the 10th of January 2007 03:05:01 PM
-Here are some standard date/time patterns that you might find helpful. They -are not part of the source of Date.js, but to use them you can simply copy this -block of code into any script that is included after Date.js and they will also become -globally available on the Date object. Feel free to add or remove patterns as needed in your code. -

-Date.patterns = {
-    ISO8601Long:"Y-m-d H:i:s",
-    ISO8601Short:"Y-m-d",
-    ShortDate: "n/j/Y",
-    LongDate: "l, F d, Y",
-    FullDateTime: "l, F d, Y g:i:s A",
-    MonthDay: "F d",
-    ShortTime: "g:i A",
-    LongTime: "g:i:s A",
-    SortableDateTime: "Y-m-d\\TH:i:s",
-    UniversalSortableDateTime: "Y-m-d H:i:sO",
-    YearMonth: "F, Y"
-};
-
-Example usage: -

-var dt = new Date();
-document.write(dt.format(Date.patterns.ShortDate));
- 
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 Date.DAY : StringDate
<static> Date interval constant
 Date.HOUR : StringDate
<static> Date interval constant
 Date.MILLI : StringDate
<static> Date interval constant
 Date.MINUTE : StringDate
<static> Date interval constant
 Date.MONTH : StringDate
<static> Date interval constant
 Date.SECOND : StringDate
<static> Date interval constant
 Date.YEAR : StringDate
<static> Date interval constant
 Date.dayNames : ArrayDate
<static> An array of textual day names. -Override these values for international dates, for example... -Date.dayN...
 Date.monthNames : ArrayDate
<static> An array of textual month names. -Override these values for international dates, for example... -Date.mo...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Date.parseDate(String input, String format) : DateDate
<static> Parses the passed string using the specified format. Example Usage: - -var date = Date.parseDate('2006...
 add(String interval, Number value) : DateDate
Provides a convenient method of performing basic date arithmetic. This method -does not modify the Date instance bein...
 clearTime(Boolean clone) : DateDate
Clears any time information from this date
 clone() : DateDate
Creates and returns a new Date instance with the exact same date value as the called instance. -Dates are copied and p...
 format(String format) : StringDate
Formats a date given the supplied format string
 getDayOfYear() : NumberDate
Get the numeric day number of the year, adjusted for leap year.
 getDaysInMonth() : NumberDate
Get the number of days in the current month, adjusted for leap year.
 getElapsed([Date date]) : NumberDate
Returns the number of milliseconds between this date and date
 getFirstDateOfMonth() : DateDate
Get a Date of the first day of this date's month
 getFirstDayOfMonth() : NumberDate
Get the first day of the current month, adjusted for leap year. The returned value -is the numeric day index within t...
 getGMTOffset() : StringDate
Get the offset from GMT of the current date (equivalent to the format specifier 'O').
 getLastDateOfMonth() : DateDate
Get a Date of the late day of this date's month
 getLastDayOfMonth() : NumberDate
Get the last day of the current month, adjusted for leap year. The returned value -is the numeric day index within th...
 getSuffix() : StringDate
Get the English ordinal suffix of the current day (equivalent to the format specifier 'S').
 getTimezone() : StringDate
Get the timezone abbreviation of the current date (equivalent to the format specifier 'T').
 getWeekOfYear() : StringDate
Get the string representation of the numeric week number of the year -(equivalent to the format specifier 'W').
 isLeapYear() : BooleanDate
Whether or not the current date is in a leap year.
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

Date.DAY

- public String Date.DAY -
- <static> Date interval constant
-
This property is defined by Date.
-
- -
-

Date.HOUR

- public String Date.HOUR -
- <static> Date interval constant
-
This property is defined by Date.
-
- -
-

Date.MILLI

- public String Date.MILLI -
- <static> Date interval constant
-
This property is defined by Date.
-
- -
-

Date.MINUTE

- public String Date.MINUTE -
- <static> Date interval constant
-
This property is defined by Date.
-
- -
-

Date.MONTH

- public String Date.MONTH -
- <static> Date interval constant
-
This property is defined by Date.
-
- -
-

Date.SECOND

- public String Date.SECOND -
- <static> Date interval constant
-
This property is defined by Date.
-
- -
-

Date.YEAR

- public String Date.YEAR -
- <static> Date interval constant
-
This property is defined by Date.
-
- -
-

Date.dayNames

- public Array Date.dayNames -
- <static> An array of textual day names. -Override these values for international dates, for example... -Date.dayNames = ['SundayInYourLang', 'MondayInYourLang', ...];
-
This property is defined by Date.
-
- -
-

Date.monthNames

- public Array Date.monthNames -
- <static> An array of textual month names. -Override these values for international dates, for example... -Date.monthNames = ['JanInYourLang', 'FebInYourLang', ...];
-
This property is defined by Date.
-
-
- - -

Method Details

-
- -
-

Date.parseDate

- public function Date.parseDate(String input, String format) -
- <static> Parses the passed string using the specified format. Example Usage: -

-var date = Date.parseDate('2006-12-25', 'Y-m-d');
-
-
- Parameters: -
  • input : String
    The unparsed date as a string
  • format : String
    The format the date is in
- Returns: -
    -
  • Date
    The parsed date
  • -
-
-
-
This method is defined by Date.
-
- -
-

add

- public function add(String interval, Number value) -
- Provides a convenient method of performing basic date arithmetic. This method -does not modify the Date instance being called - it creates and returns -a new Date instance containing the resulting date value. -Examples: -

-//Basic usage:
-var dt = new Date('10/29/2006').add(Date.DAY, 5);
-document.write(dt); //returns 'Fri Oct 06 2006 00:00:00'
-
-//Negative values will subtract correctly:
-var dt2 = new Date('10/1/2006').add(Date.DAY, -5);
-document.write(dt2); //returns 'Tue Sep 26 2006 00:00:00'
-
-//You can even chain several calls together in one line!
-var dt3 = new Date('10/1/2006').add(Date.DAY, 5).add(Date.HOUR, 8).add(Date.MINUTE, -30);
-document.write(dt3); //returns 'Fri Oct 06 2006 07:30:00'
- 
-
- Parameters: -
  • interval : String
    A valid date interval enum value
  • value : Number
    The amount to add to the current date
- Returns: -
    -
  • Date
    The new Date instance
  • -
-
-
-
This method is defined by Date.
-
- -
-

clearTime

- public function clearTime(Boolean clone) -
- Clears any time information from this date -
- Parameters: -
  • clone : Boolean
    true to create a clone of this date, clear the time and return it
- Returns: -
    -
  • Date
    this or the clone
  • -
-
-
-
This method is defined by Date.
-
- -
-

clone

- public function clone() -
- Creates and returns a new Date instance with the exact same date value as the called instance. -Dates are copied and passed by reference, so if a copied date variable is modified later, the original -variable will also be changed. When the intention is to create a new variable that will not -modify the original instance, you should create a clone. -Example of correctly cloning a date: -

-//wrong way:
-var orig = new Date('10/1/2006');
-var copy = orig;
-copy.setDate(5);
-document.write(orig);  //returns 'Thu Oct 05 2006'!
-
-//correct way:
-var orig = new Date('10/1/2006');
-var copy = orig.clone();
-copy.setDate(5);
-document.write(orig);  //returns 'Thu Oct 01 2006'
-
-
- Parameters: -
  • None.
- Returns: -
    -
  • Date
    The new Date instance
  • -
-
-
-
This method is defined by Date.
-
- -
-

format

- public function format(String format) -
- Formats a date given the supplied format string -
- Parameters: -
  • format : String
    The format string
- Returns: -
    -
  • String
    The formatted date
  • -
-
-
-
This method is defined by Date.
-
- -
-

getDayOfYear

- public function getDayOfYear() -
- Get the numeric day number of the year, adjusted for leap year. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
    0 through 365 (366 in leap years)
  • -
-
-
-
This method is defined by Date.
-
- -
-

getDaysInMonth

- public function getDaysInMonth() -
- Get the number of days in the current month, adjusted for leap year. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
    The number of days in the month
  • -
-
-
-
This method is defined by Date.
-
- -
-

getElapsed

- public function getElapsed([Date date]) -
- Returns the number of milliseconds between this date and date -
- Parameters: -
  • date : Date
    (optional) Defaults to now
- Returns: -
    -
  • Number
    The diff in milliseconds
  • -
-
-
-
This method is defined by Date.
-
- -
-

getFirstDateOfMonth

- public function getFirstDateOfMonth() -
- Get a Date of the first day of this date's month -
- Parameters: -
  • None.
- Returns: -
    -
  • Date
  • -
-
-
-
This method is defined by Date.
-
- -
-

getFirstDayOfMonth

- public function getFirstDayOfMonth() -
- Get the first day of the current month, adjusted for leap year. The returned value -is the numeric day index within the week (0-6) which can be used in conjunction with -the monthNames array to retrieve the textual day name. -Example: -

-var dt = new Date('1/10/2007');
-document.write(Date.dayNames[dt.getFirstDayOfMonth()]); //output: 'Monday'
-
-
- Parameters: -
  • None.
- Returns: -
    -
  • Number
    The day number (0-6)
  • -
-
-
-
This method is defined by Date.
-
- -
-

getGMTOffset

- public function getGMTOffset() -
- Get the offset from GMT of the current date (equivalent to the format specifier 'O'). -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    The 4-character offset string prefixed with + or - (e.g. '-0600')
  • -
-
-
-
This method is defined by Date.
-
- -
-

getLastDateOfMonth

- public function getLastDateOfMonth() -
- Get a Date of the late day of this date's month -
- Parameters: -
  • None.
- Returns: -
    -
  • Date
  • -
-
-
-
This method is defined by Date.
-
- -
-

getLastDayOfMonth

- public function getLastDayOfMonth() -
- Get the last day of the current month, adjusted for leap year. The returned value -is the numeric day index within the week (0-6) which can be used in conjunction with -the monthNames array to retrieve the textual day name. -Example: -

-var dt = new Date('1/10/2007');
-document.write(Date.dayNames[dt.getLastDayOfMonth()]); //output: 'Wednesday'
-
-
- Parameters: -
  • None.
- Returns: -
    -
  • Number
    The day number (0-6)
  • -
-
-
-
This method is defined by Date.
-
- -
-

getSuffix

- public function getSuffix() -
- Get the English ordinal suffix of the current day (equivalent to the format specifier 'S'). -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    'st, 'nd', 'rd' or 'th'
  • -
-
-
-
This method is defined by Date.
-
- -
-

getTimezone

- public function getTimezone() -
- Get the timezone abbreviation of the current date (equivalent to the format specifier 'T'). -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    The abbreviated timezone name (e.g. 'CST')
  • -
-
-
-
This method is defined by Date.
-
- -
-

getWeekOfYear

- public function getWeekOfYear() -
- Get the string representation of the numeric week number of the year -(equivalent to the format specifier 'W'). -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    '00' through '52'
  • -
-
-
-
This method is defined by Date.
-
- -
-

isLeapYear

- public function isLeapYear() -
- Whether or not the current date is in a leap year. -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
    True if the current date is in a leap year, else false
  • -
-
-
-
This method is defined by Date.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Date.jss.html b/www/extras/extjs/docs/output/Date.jss.html deleted file mode 100644 index e4e710280..000000000 --- a/www/extras/extjs/docs/output/Date.jss.html +++ /dev/null @@ -1,704 +0,0 @@ -Date.js

Date.js

/**
- * @class Date
- * 
- * The date parsing and format syntax is a subset of 
- * <a href="http://www.php.net/date">PHP's date() function</a>, and the formats that are
- * supported will provide results equivalent to their PHP versions.
- * 
- * Following is the list of all currently supported formats:
- *<pre>
-Sample date:
-'Wed Jan 10 2007 15:05:01 GMT-0600 (Central Standard Time)'
-
-Format  Output      Description
-------  ----------  --------------------------------------------------------------
-  d      10         Day of the month, 2 digits with leading zeros
-  D      Wed        A textual representation of a day, three letters
-  j      10         Day of the month without leading zeros
-  l      Wednesday  A full textual representation of the day of the week
-  S      th         English ordinal day of month suffix, 2 chars (use with j)
-  w      3          Numeric representation of the day of the week
-  z      9          The julian date, or day of the year (0-365)
-  W      01         ISO-8601 2-digit week number of year, weeks starting on Monday (00-52)
-  F      January    A full textual representation of the month
-  m      01         Numeric representation of a month, with leading zeros
-  M      Jan        Month name abbreviation, three letters
-  n      1          Numeric representation of a month, without leading zeros
-  t      31         Number of days in the given month
-  L      0          Whether it's a leap year (1 if it is a leap year, else 0)
-  Y      2007       A full numeric representation of a year, 4 digits
-  y      07         A two digit representation of a year
-  a      pm         Lowercase Ante meridiem and Post meridiem	
-  A      PM         Uppercase Ante meridiem and Post meridiem
-  g      3          12-hour format of an hour without leading zeros
-  G      15         24-hour format of an hour without leading zeros
-  h      03         12-hour format of an hour with leading zeros
-  H      15         24-hour format of an hour with leading zeros
-  i      05         Minutes with leading zeros
-  s      01         Seconds, with leading zeros
-  O      -0600      Difference to Greenwich time (GMT) in hours
-  T      CST        Timezone setting of the machine running the code
-  Z      -21600     Timezone offset in seconds (negative if west of UTC, positive if east)
-</pre>
- *
- * Example usage (note that you must escape format specifiers with '\\' to render them as character literals):
- * <pre><code>
-var dt = new Date('1/10/2007 03:05:01 PM GMT-0600');
-document.write(dt.format('Y-m-d'));                         //2007-01-10
-document.write(dt.format('F j, Y, g:i a'));                 //January 10, 2007, 3:05 pm
-document.write(dt.format('l, \\t\\he dS of F Y h:i:s A'));  //Wednesday, the 10th of January 2007 03:05:01 PM
- </code></pre>
- * 
- * Here are some standard date/time patterns that you might find helpful.  They
- * are not part of the source of Date.js, but to use them you can simply copy this
- * block of code into any script that is included after Date.js and they will also become
- * globally available on the Date object.  Feel free to add or remove patterns as needed in your code.
- * <pre><code>
-Date.patterns = {
-    ISO8601Long:"Y-m-d H:i:s",
-    ISO8601Short:"Y-m-d",
-    ShortDate: "n/j/Y",
-    LongDate: "l, F d, Y",
-    FullDateTime: "l, F d, Y g:i:s A",
-    MonthDay: "F d",
-    ShortTime: "g:i A",
-    LongTime: "g:i:s A",
-    SortableDateTime: "Y-m-d\\TH:i:s",
-    UniversalSortableDateTime: "Y-m-d H:i:sO",
-    YearMonth: "F, Y"
-};
-</code></pre>
- *
- * Example usage:
- * <pre><code>
-var dt = new Date();
-document.write(dt.format(Date.patterns.ShortDate));
- </code></pre>
- */
-// holder
-/**
- * Most of the date-formatting functions below are the excellent work of Baron Schwartz.
- * They generate precompiled functions from date formats instead of parsing and 
- * processing the pattern every time you format a date.  These functions are available 
- * on every Date object (any javascript function).
- *
- * The original article and download are here:
- * http://www.xaprb.com/blog/2005/12/12/javascript-closures-for-runtime-efficiency/
- *
- */
-
-// private
-Date.parseFunctions = {count:0};
-// private
-Date.parseRegexes = [];
-// private
-Date.formatFunctions = {count:0};
-
-// private
-Date.prototype.dateFormat = function(format) {
-    if (Date.formatFunctions[format] == null) {
-        Date.createNewFormat(format);
-    }
-    var func = Date.formatFunctions[format];
-    return this[func]();
-};
-
-
-/**
- * Formats a date given the supplied format string
- * @param {String} format The format string
- * @return {String} The formatted date
- * @method
- */
-Date.prototype.format = Date.prototype.dateFormat;
-
-// private
-Date.createNewFormat = function(format) {
-    var funcName = "format" + Date.formatFunctions.count++;
-    Date.formatFunctions[format] = funcName;
-    var code = "Date.prototype." + funcName + " = function(){return ";
-    var special = false;
-    var ch = '';
-    for (var i = 0; i < format.length; ++i) {
-        ch = format.charAt(i);
-        if (!special && ch == "\\") {
-            special = true;
-        }
-        else if (special) {
-            special = false;
-            code += "'" + String.escape(ch) + "' + ";
-        }
-        else {
-            code += Date.getFormatCode(ch);
-        }
-    }
-    eval(code.substring(0, code.length - 3) + ";}");
-};
-
-// private
-Date.getFormatCode = function(character) {
-    switch (character) {
-    case "d":
-        return "String.leftPad(this.getDate(), 2, '0') + ";
-    case "D":
-        return "Date.dayNames[this.getDay()].substring(0, 3) + ";
-    case "j":
-        return "this.getDate() + ";
-    case "l":
-        return "Date.dayNames[this.getDay()] + ";
-    case "S":
-        return "this.getSuffix() + ";
-    case "w":
-        return "this.getDay() + ";
-    case "z":
-        return "this.getDayOfYear() + ";
-    case "W":
-        return "this.getWeekOfYear() + ";
-    case "F":
-        return "Date.monthNames[this.getMonth()] + ";
-    case "m":
-        return "String.leftPad(this.getMonth() + 1, 2, '0') + ";
-    case "M":
-        return "Date.monthNames[this.getMonth()].substring(0, 3) + ";
-    case "n":
-        return "(this.getMonth() + 1) + ";
-    case "t":
-        return "this.getDaysInMonth() + ";
-    case "L":
-        return "(this.isLeapYear() ? 1 : 0) + ";
-    case "Y":
-        return "this.getFullYear() + ";
-    case "y":
-        return "('' + this.getFullYear()).substring(2, 4) + ";
-    case "a":
-        return "(this.getHours() < 12 ? 'am' : 'pm') + ";
-    case "A":
-        return "(this.getHours() < 12 ? 'AM' : 'PM') + ";
-    case "g":
-        return "((this.getHours() %12) ? this.getHours() % 12 : 12) + ";
-    case "G":
-        return "this.getHours() + ";
-    case "h":
-        return "String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";
-    case "H":
-        return "String.leftPad(this.getHours(), 2, '0') + ";
-    case "i":
-        return "String.leftPad(this.getMinutes(), 2, '0') + ";
-    case "s":
-        return "String.leftPad(this.getSeconds(), 2, '0') + ";
-    case "O":
-        return "this.getGMTOffset() + ";
-    case "T":
-        return "this.getTimezone() + ";
-    case "Z":
-        return "(this.getTimezoneOffset() * -60) + ";
-    default:
-        return "'" + String.escape(character) + "' + ";
-    }
-};
-
-/**
- * Parses the passed string using the specified format. Example Usage:
-<pre><code>
-var date = Date.parseDate('2006-12-25', 'Y-m-d');
-</code></pre>
- * @param {String} input The unparsed date as a string
- * @param {String} format The format the date is in
- * @return {Date} The parsed date
- * @static
- */
-Date.parseDate = function(input, format) {
-    if (Date.parseFunctions[format] == null) {
-        Date.createParser(format);
-    }
-    var func = Date.parseFunctions[format];
-    return Date[func](input);
-};
-
-// private
-Date.createParser = function(format) {
-    var funcName = "parse" + Date.parseFunctions.count++;
-    var regexNum = Date.parseRegexes.length;
-    var currentGroup = 1;
-    Date.parseFunctions[format] = funcName;
-
-    var code = "Date." + funcName + " = function(input){\n"
-        + "var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1;\n"
-        + "var d = new Date();\n"
-        + "y = d.getFullYear();\n"
-        + "m = d.getMonth();\n"
-        + "d = d.getDate();\n"
-        + "var results = input.match(Date.parseRegexes[" + regexNum + "]);\n"
-        + "if (results && results.length > 0) {";
-    var regex = "";
-
-    var special = false;
-    var ch = '';
-    for (var i = 0; i < format.length; ++i) {
-        ch = format.charAt(i);
-        if (!special && ch == "\\") {
-            special = true;
-        }
-        else if (special) {
-            special = false;
-            regex += String.escape(ch);
-        }
-        else {
-            var obj = Date.formatCodeToRegex(ch, currentGroup);
-            currentGroup += obj.g;
-            regex += obj.s;
-            if (obj.g && obj.c) {
-                code += obj.c;
-            }
-        }
-    }
-
-    code += "if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n"
-        + "{return new Date(y, m, d, h, i, s);}\n"
-        + "else if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n"
-        + "{return new Date(y, m, d, h, i);}\n"
-        + "else if (y > 0 && m >= 0 && d > 0 && h >= 0)\n"
-        + "{return new Date(y, m, d, h);}\n"
-        + "else if (y > 0 && m >= 0 && d > 0)\n"
-        + "{return new Date(y, m, d);}\n"
-        + "else if (y > 0 && m >= 0)\n"
-        + "{return new Date(y, m);}\n"
-        + "else if (y > 0)\n"
-        + "{return new Date(y);}\n"
-        + "}return null;}";
-
-    Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$");
-    eval(code);
-};
-
-// private
-Date.formatCodeToRegex = function(character, currentGroup) {
-    switch (character) {
-    case "D":
-        return {g:0,
-        c:null,
-        s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};
-    case "j":
-    case "d":
-        return {g:1,
-            c:"d = parseInt(results[" + currentGroup + "], 10);\n",
-            s:"(\\d{1,2})"};
-    case "l":
-        return {g:0,
-            c:null,
-            s:"(?:" + Date.dayNames.join("|") + ")"};
-    case "S":
-        return {g:0,
-            c:null,
-            s:"(?:st|nd|rd|th)"};
-    case "w":
-        return {g:0,
-            c:null,
-            s:"\\d"};
-    case "z":
-        return {g:0,
-            c:null,
-            s:"(?:\\d{1,3})"};
-    case "W":
-        return {g:0,
-            c:null,
-            s:"(?:\\d{2})"};
-    case "F":
-        return {g:1,
-            c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "].substring(0, 3)], 10);\n",
-            s:"(" + Date.monthNames.join("|") + ")"};
-    case "M":
-        return {g:1,
-            c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "]], 10);\n",
-            s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};
-    case "n":
-    case "m":
-        return {g:1,
-            c:"m = parseInt(results[" + currentGroup + "], 10) - 1;\n",
-            s:"(\\d{1,2})"};
-    case "t":
-        return {g:0,
-            c:null,
-            s:"\\d{1,2}"};
-    case "L":
-        return {g:0,
-            c:null,
-            s:"(?:1|0)"};
-    case "Y":
-        return {g:1,
-            c:"y = parseInt(results[" + currentGroup + "], 10);\n",
-            s:"(\\d{4})"};
-    case "y":
-        return {g:1,
-            c:"var ty = parseInt(results[" + currentGroup + "], 10);\n"
-                + "y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",
-            s:"(\\d{1,2})"};
-    case "a":
-        return {g:1,
-            c:"if (results[" + currentGroup + "] == 'am') {\n"
-                + "if (h == 12) { h = 0; }\n"
-                + "} else { if (h < 12) { h += 12; }}",
-            s:"(am|pm)"};
-    case "A":
-        return {g:1,
-            c:"if (results[" + currentGroup + "] == 'AM') {\n"
-                + "if (h == 12) { h = 0; }\n"
-                + "} else { if (h < 12) { h += 12; }}",
-            s:"(AM|PM)"};
-    case "g":
-    case "G":
-    case "h":
-    case "H":
-        return {g:1,
-            c:"h = parseInt(results[" + currentGroup + "], 10);\n",
-            s:"(\\d{1,2})"};
-    case "i":
-        return {g:1,
-            c:"i = parseInt(results[" + currentGroup + "], 10);\n",
-            s:"(\\d{2})"};
-    case "s":
-        return {g:1,
-            c:"s = parseInt(results[" + currentGroup + "], 10);\n",
-            s:"(\\d{2})"};
-    case "O":
-        return {g:0,
-            c:null,
-            s:"[+-]\\d{4}"};
-    case "T":
-        return {g:0,
-            c:null,
-            s:"[A-Z]{3}"};
-    case "Z":
-        return {g:0,
-            c:null,
-            s:"[+-]\\d{1,5}"};
-    default:
-        return {g:0,
-            c:null,
-            s:String.escape(character)};
-    }
-};
-
-/**
- * Get the timezone abbreviation of the current date (equivalent to the format specifier 'T').
- * @return {String} The abbreviated timezone name (e.g. 'CST')
- */
-Date.prototype.getTimezone = function() {
-    return this.toString().replace(
-        /^.*? ([A-Z]{3}) [0-9]{4}.*$/, "$1").replace(
-        /^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/, "$1$2$3");
-};
-
-/**
- * Get the offset from GMT of the current date (equivalent to the format specifier 'O').
- * @return {String} The 4-character offset string prefixed with + or - (e.g. '-0600')
- */
-Date.prototype.getGMTOffset = function() {
-    return (this.getTimezoneOffset() > 0 ? "-" : "+")
-        + String.leftPad(Math.floor(this.getTimezoneOffset() / 60), 2, "0")
-        + String.leftPad(this.getTimezoneOffset() % 60, 2, "0");
-};
-
-/**
- * Get the numeric day number of the year, adjusted for leap year.
- * @return {Number} 0 through 365 (366 in leap years)
- */
-Date.prototype.getDayOfYear = function() {
-    var num = 0;
-    Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;
-    for (var i = 0; i < this.getMonth(); ++i) {
-        num += Date.daysInMonth[i];
-    }
-    return num + this.getDate() - 1;
-};
-
-/**
- * Get the string representation of the numeric week number of the year
- * (equivalent to the format specifier 'W').
- * @return {String} '00' through '52'
- */
-Date.prototype.getWeekOfYear = function() {
-    // Skip to Thursday of this week
-    var now = this.getDayOfYear() + (4 - this.getDay());
-    // Find the first Thursday of the year
-    var jan1 = new Date(this.getFullYear(), 0, 1);
-    var then = (7 - jan1.getDay() + 4);
-    return String.leftPad(((now - then) / 7) + 1, 2, "0");
-};
-
-/**
- * Whether or not the current date is in a leap year.
- * @return {Boolean} True if the current date is in a leap year, else false
- */
-Date.prototype.isLeapYear = function() {
-    var year = this.getFullYear();
-    return ((year & 3) == 0 && (year % 100 || (year % 400 == 0 && year)));
-};
-
-/**
- * Get the first day of the current month, adjusted for leap year.  The returned value
- * is the numeric day index within the week (0-6) which can be used in conjunction with
- * the {@link #monthNames} array to retrieve the textual day name.
- * Example:
- *<pre><code>
-var dt = new Date('1/10/2007');
-document.write(Date.dayNames[dt.getFirstDayOfMonth()]); //output: 'Monday'
-</code></pre>
- * @return {Number} The day number (0-6)
- */
-Date.prototype.getFirstDayOfMonth = function() {
-    var day = (this.getDay() - (this.getDate() - 1)) % 7;
-    return (day < 0) ? (day + 7) : day;
-};
-
-/**
- * Get the last day of the current month, adjusted for leap year.  The returned value
- * is the numeric day index within the week (0-6) which can be used in conjunction with
- * the {@link #monthNames} array to retrieve the textual day name.
- * Example:
- *<pre><code>
-var dt = new Date('1/10/2007');
-document.write(Date.dayNames[dt.getLastDayOfMonth()]); //output: 'Wednesday'
-</code></pre>
- * @return {Number} The day number (0-6)
- */
-Date.prototype.getLastDayOfMonth = function() {
-    var day = (this.getDay() + (Date.daysInMonth[this.getMonth()] - this.getDate())) % 7;
-    return (day < 0) ? (day + 7) : day;
-};
-
-
-/**
- * Get a Date of the first day of this date's month
- * @return {Date}
- */
-Date.prototype.getFirstDateOfMonth = function() {
-    return new Date(this.getFullYear(), this.getMonth(), 1);
-};
-
-/**
- * Get a Date of the late day of this date's month
- * @return {Date}
- */
-Date.prototype.getLastDateOfMonth = function() {
-    return new Date(this.getFullYear(), this.getMonth(), this.getDaysInMonth());
-};
-/**
- * Get the number of days in the current month, adjusted for leap year.
- * @return {Number} The number of days in the month
- */
-Date.prototype.getDaysInMonth = function() {
-    Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;
-    return Date.daysInMonth[this.getMonth()];
-};
-
-/**
- * Get the English ordinal suffix of the current day (equivalent to the format specifier 'S').
- * @return {String} 'st, 'nd', 'rd' or 'th'
- */
-Date.prototype.getSuffix = function() {
-    switch (this.getDate()) {
-        case 1:
-        case 21:
-        case 31:
-            return "st";
-        case 2:
-        case 22:
-            return "nd";
-        case 3:
-        case 23:
-            return "rd";
-        default:
-            return "th";
-    }
-};
-
-// private
-Date.daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31];
-
-/**
- * An array of textual month names.
- * Override these values for international dates, for example...
- * Date.monthNames = ['JanInYourLang', 'FebInYourLang', ...];
- * @type Array
- * @static
- */
-Date.monthNames =
-   ["January",
-    "February",
-    "March",
-    "April",
-    "May",
-    "June",
-    "July",
-    "August",
-    "September",
-    "October",
-    "November",
-    "December"];
-    
-/**
- * An array of textual day names.
- * Override these values for international dates, for example...
- * Date.dayNames = ['SundayInYourLang', 'MondayInYourLang', ...];
- * @type Array
- * @static
- */
-Date.dayNames =
-   ["Sunday",
-    "Monday",
-    "Tuesday",
-    "Wednesday",
-    "Thursday",
-    "Friday",
-    "Saturday"];
-
-// private
-Date.y2kYear = 50;
-// private
-Date.monthNumbers = {
-    Jan:0,
-    Feb:1,
-    Mar:2,
-    Apr:3,
-    May:4,
-    Jun:5,
-    Jul:6,
-    Aug:7,
-    Sep:8,
-    Oct:9,
-    Nov:10,
-    Dec:11};
-
-/**
- * Creates and returns a new Date instance with the exact same date value as the called instance.
- * Dates are copied and passed by reference, so if a copied date variable is modified later, the original 
- * variable will also be changed.  When the intention is to create a new variable that will not 
- * modify the original instance, you should create a clone.
- *
- * Example of correctly cloning a date:
- * <pre><code>
-//wrong way:
-var orig = new Date('10/1/2006');
-var copy = orig;
-copy.setDate(5);
-document.write(orig);  //returns 'Thu Oct 05 2006'!
-
-//correct way:
-var orig = new Date('10/1/2006');
-var copy = orig.clone();
-copy.setDate(5);
-document.write(orig);  //returns 'Thu Oct 01 2006'
-</code></pre>
- * @return {Date} The new Date instance
- */
-Date.prototype.clone = function() {
-	return new Date(this.getTime());
-};
-
-/**
- * Clears any time information from this date
- @param {Boolean} clone true to create a clone of this date, clear the time and return it
- @return {Date} this or the clone
- */
-Date.prototype.clearTime = function(clone){
-    if(clone){
-        return this.clone().clearTime();
-    }
-    this.setHours(0);
-    this.setMinutes(0);
-    this.setSeconds(0);
-    this.setMilliseconds(0);
-    return this;
-};
-
-// private
-// safari setMonth is broken
-if(Ext.isSafari){
-    Date.brokenSetMonth = Date.prototype.setMonth;
-	Date.prototype.setMonth = function(num){
-		if(num <= -1){
-			var n = Math.ceil(-num);
-			var back_year = Math.ceil(n/12);
-			var month = (n % 12) ? 12 - n % 12 : 0 ;
-			this.setFullYear(this.getFullYear() - back_year);
-			return Date.brokenSetMonth.call(this, month);
-		} else {
-			return Date.brokenSetMonth.apply(this, arguments);
-		}
-	};
-}
-
-/** Date interval constant @static @type String */
-Date.MILLI = "ms";
-/** Date interval constant @static @type String */
-Date.SECOND = "s";
-/** Date interval constant @static @type String */
-Date.MINUTE = "mi";
-/** Date interval constant @static @type String */
-Date.HOUR = "h";
-/** Date interval constant @static @type String */
-Date.DAY = "d";
-/** Date interval constant @static @type String */
-Date.MONTH = "mo";
-/** Date interval constant @static @type String */
-Date.YEAR = "y";
-
-/** 
- * Provides a convenient method of performing basic date arithmetic.  This method
- * does not modify the Date instance being called - it creates and returns
- * a new Date instance containing the resulting date value.
- *
- * Examples:
- * <pre><code>
-//Basic usage:
-var dt = new Date('10/29/2006').add(Date.DAY, 5);
-document.write(dt); //returns 'Fri Oct 06 2006 00:00:00'
-
-//Negative values will subtract correctly:
-var dt2 = new Date('10/1/2006').add(Date.DAY, -5);
-document.write(dt2); //returns 'Tue Sep 26 2006 00:00:00'
-
-//You can even chain several calls together in one line!
-var dt3 = new Date('10/1/2006').add(Date.DAY, 5).add(Date.HOUR, 8).add(Date.MINUTE, -30);
-document.write(dt3); //returns 'Fri Oct 06 2006 07:30:00'
- </code></pre>
- *
- * @param {String} interval   A valid date interval enum value
- * @param {Number} value      The amount to add to the current date
- * @return {Date} The new Date instance
- */
-Date.prototype.add = function(interval, value){
-  var d = this.clone();
-  if (!interval || value === 0) return d;
-  switch(interval.toLowerCase()){
-    case Date.MILLI:
-      d.setMilliseconds(this.getMilliseconds() + value);
-      break;
-    case Date.SECOND:
-      d.setSeconds(this.getSeconds() + value);
-      break;
-    case Date.MINUTE:
-      d.setMinutes(this.getMinutes() + value);
-      break;
-    case Date.HOUR:
-      d.setHours(this.getHours() + value);
-      break;
-    case Date.DAY:
-      d.setDate(this.getDate() + value);
-      break;
-    case Date.MONTH:
-      var day = this.getDate();
-      if(day > 28){
-          day = Math.min(day, this.getFirstDateOfMonth().add('mo', value).getLastDateOfMonth().getDate());
-      }
-      d.setDate(day);
-      d.setMonth(this.getMonth() + value);
-      break;
-    case Date.YEAR:
-      d.setFullYear(this.getFullYear() + value);
-      break;
-  }
-  return d;
-};

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/DateField.jss.html b/www/extras/extjs/docs/output/DateField.jss.html deleted file mode 100644 index a205f24a7..000000000 --- a/www/extras/extjs/docs/output/DateField.jss.html +++ /dev/null @@ -1,244 +0,0 @@ -DateField.js

DateField.js

/**
- * @class Ext.form.DateField
- * @extends Ext.form.TriggerField
- * Provides a date input field with a {@link Ext.DatePicker} dropdown and automatic date validation.
-* @constructor
-* Create a new DateField
-* @param {Object} config
- */
-Ext.form.DateField = function(config){
-    Ext.form.DateField.superclass.constructor.call(this, config);
-    if(typeof this.minValue == "string") this.minValue = this.parseDate(this.minValue);
-    if(typeof this.maxValue == "string") this.maxValue = this.parseDate(this.maxValue);
-    this.ddMatch = null;
-    if(this.disabledDates){
-        var dd = this.disabledDates;
-        var re = "(?:";
-        for(var i = 0; i < dd.length; i++){
-            re += dd[i];
-            if(i != dd.length-1) re += "|";
-        }
-        this.ddMatch = new RegExp(re + ")");
-    }
-};
-
-Ext.extend(Ext.form.DateField, Ext.form.TriggerField,  {
-    /**
-     * @cfg {String} format
-     * The default date format string which can be overriden for localization support.  The format must be
-     * valid according to {@link Date#parseDate} (defaults to 'm/d/y').
-     */
-    format : "m/d/y",
-    /**
-     * @cfg {Array} disabledDays
-     * An array of days to disable, 0 based. For example, [0, 6] disables Sunday and Saturday (defaults to null).
-     */
-    disabledDays : null,
-    /**
-     * @cfg {String} disabledDaysText
-     * The tooltip to display when the date falls on a disabled day (defaults to 'Disabled')
-     */
-    disabledDaysText : "Disabled",
-    /**
-     * @cfg {Array} disabledDates
-     * An array of "dates" to disable, as strings. These strings will be used to build a dynamic regular
-     * expression so they are very powerful. Some examples:
-     * <ul>
-     * <li>["03/08/2003", "09/16/2003"] would disable those exact dates</li>
-     * <li>["03/08", "09/16"] would disable those days for every year</li>
-     * <li>["^03/08"] would only match the beginning (useful if you are using short years)</li>
-     * <li>["03/../2006"] would disable every day in March 2006</li>
-     * <li>["^03"] would disable every day in every March</li>
-     * </ul>
-     * In order to support regular expressions, if you are using a date format that has "." in it, you will have to
-     * escape the dot when restricting dates. For example: ["03\\.08\\.03"].
-     */
-    disabledDates : null,
-    /**
-     * @cfg {String} disabledDatesText
-     * The tooltip text to display when the date falls on a disabled date (defaults to 'Disabled')
-     */
-    disabledDatesText : "Disabled",
-    /**
-     * @cfg {Date/String} minValue
-     * The minimum allowed date. Can be either a Javascript date object or a string date in a
-     * valid format (defaults to null).
-     */
-    minValue : null,
-    /**
-     * @cfg {Date/String} maxValue
-     * The maximum allowed date. Can be either a Javascript date object or a string date in a
-     * valid format (defaults to null).
-     */
-    maxValue : null,
-    /**
-     * @cfg {String} minText
-     * The error text to display when the date in the cell is before minValue (defaults to
-     * 'The date in this field must be after {minValue}').
-     */
-    minText : "The date in this field must be after {0}",
-    /**
-     * @cfg {String} maxText
-     * The error text to display when the date in the cell is before maxValue (defaults to
-     * 'The date in this field must be before {maxValue}').
-     */
-    maxText : "The date in this field must be before {0}",
-    /**
-     * @cfg {String} invalidText
-     * The error to display when the date in the field is invalid (defaults to
-     * '{value} is not a valid date - it must be in the format {format}').
-     */
-    invalidText : "{0} is not a valid date - it must be in the format {1}",
-    /**
-     * @cfg {String} triggerClass
-     * An additional CSS class used to style the trigger button.  The trigger will always get the
-     * class 'x-form-trigger' and triggerClass will be <b>appended</b> if specified (defaults to 'x-form-date-trigger'
-     * which displays a calendar icon).
-     */
-    triggerClass : 'x-form-date-trigger',
-    /**
-     * @cfg {String/Object} autoCreate
-     * A DomHelper element spec, or true for a default element spec (defaults to
-     * {tag: "input", type: "text", size: "10", autocomplete: "off"})
-     */
-
-    // private
-    defaultAutoCreate : {tag: "input", type: "text", size: "10", autocomplete: "off"},
-
-    // private
-    validateValue : function(value){
-        value = this.formatDate(value);
-        if(!Ext.form.DateField.superclass.validateValue.call(this, value)){
-            return false;
-        }
-        if(value.length < 1){ // if it's blank and textfield didn't flag it then it's valid
-             return true;
-        }
-        var svalue = value;
-        value = this.parseDate(value);
-        if(!value){
-            this.markInvalid(String.format(this.invalidText, svalue, this.format));
-            return false;
-        }
-        var time = value.getTime();
-        if(this.minValue && time < this.minValue.getTime()){
-            this.markInvalid(String.format(this.minText, this.formatDate(this.minValue)));
-            return false;
-        }
-        if(this.maxValue && time > this.maxValue.getTime()){
-            this.markInvalid(String.format(this.maxText, this.formatDate(this.maxValue)));
-            return false;
-        }
-        if(this.disabledDays){
-            var day = value.getDay();
-            for(var i = 0; i < this.disabledDays.length; i++) {
-            	if(day === this.disabledDays[i]){
-            	    this.markInvalid(this.disabledDaysText);
-                    return false;
-            	}
-            }
-        }
-        var fvalue = this.formatDate(value);
-        if(this.ddMatch && this.ddMatch.test(fvalue)){
-            this.markInvalid(String.format(this.disabledDatesText, fvalue));
-            return false;
-        }
-        return true;
-    },
-
-    // private
-    // Provides logic to override the default TriggerField.validateBlur which just returns true
-    validateBlur : function(){
-        return !this.menu || !this.menu.isVisible();
-    },
-
-    /**
-     * Returns the current date value of the date field
-     * @return {Date} value The date value
-     */
-    getValue : function(){
-        return this.parseDate(Ext.form.DateField.superclass.getValue.call(this)) || "";
-    },
-
-    /**
-     * Sets the value of the date field.  You can pass a date object or any string that can be parsed into a valid
-     * date, using DateField.format as the date format, according to the same rules as {@link Date#parseDate}
-     * (the default format used is "m/d/y").
-     * <br />Usage:
-     * <pre><code>
-//All of these calls set the same date value (May 4, 2006)
-
-//Pass a date object:
-var dt = new Date('5/4/06');
-dateField.setValue(dt);
-
-//Pass a date string (default format):
-dateField.setValue('5/4/06');
-
-//Pass a date string (custom format):
-dateField.format = 'Y-m-d';
-dateField.setValue('2006-5-4');
-</code></pre>
-     * @param {String/Date} date The date or valid date string
-     */
-    setValue : function(date){
-        Ext.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(date)));
-    },
-
-    // private
-    parseDate : function(value){
-        return (!value || value instanceof Date) ?
-               value : Date.parseDate(value, this.format);
-    },
-
-    // private
-    formatDate : function(date){
-        return (!date || !(date instanceof Date)) ?
-               date : date.dateFormat(this.format);
-    },
-
-    // private
-    menuListeners : {
-        select: function(m, d){
-            this.setValue(d);
-        },
-        show : function(){ // retain focus styling
-            this.onFocus();
-        },
-        hide : function(){
-            this.focus();
-            var ml = this.menuListeners;
-            this.menu.un("select", ml.select,  this);
-            this.menu.un("show", ml.show,  this);
-            this.menu.un("hide", ml.hide,  this);
-        }
-    },
-
-    // private
-    // Implements the default empty TriggerField.onTriggerClick function to display the DatePicker
-    onTriggerClick : function(){
-        if(this.disabled){
-            return;
-        }
-        if(this.menu == null){
-            this.menu = new Ext.menu.DateMenu();
-        }
-        Ext.apply(this.menu.picker,  {
-            minDate : this.minValue,
-            maxDate : this.maxValue,
-            disabledDatesRE : this.ddMatch,
-            disabledDatesText : this.disabledDatesText,
-            disabledDays : this.disabledDays,
-            disabledDaysText : this.disabledDaysText,
-            format : this.format,
-            minText : String.format(this.minText, this.formatDate(this.minValue)),
-            maxText : String.format(this.maxText, this.formatDate(this.maxValue))
-        });
-        this.menu.on(Ext.apply({}, this.menuListeners, {
-            scope:this
-        }));
-        this.menu.picker.setValue(this.getValue() || new Date());
-        this.menu.show(this.el, "tl-bl?");
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/DateItem.jss.html b/www/extras/extjs/docs/output/DateItem.jss.html deleted file mode 100644 index fc17ac8c5..000000000 --- a/www/extras/extjs/docs/output/DateItem.jss.html +++ /dev/null @@ -1,30 +0,0 @@ -DateItem.js

DateItem.js

/**
- * @class Ext.menu.DateItem
- * @extends Ext.menu.Adapter
- * A menu item that wraps the {@link Ext.DatPicker} component.
- * @constructor
- * Creates a new DateItem
- * @param {Object} config Configuration options
- */
-Ext.menu.DateItem = function(config){
-    Ext.menu.DateItem.superclass.constructor.call(this, new Ext.DatePicker(config), config);
-    /** The Ext.DatePicker object @type Ext.DatePicker */
-    this.picker = this.component;
-    this.addEvents({select: true});
-    
-    this.picker.on("render", function(picker){
-        picker.getEl().swallowEvent("click");
-        picker.container.addClass("x-menu-date-item");
-    });
-
-    this.picker.on("select", this.onSelect, this);
-};
-
-Ext.extend(Ext.menu.DateItem, Ext.menu.Adapter, {
-    // private
-    onSelect : function(picker, date){
-        this.fireEvent("select", this, date, picker);
-        Ext.menu.DateItem.superclass.handleClick.call(this);
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/DateMenu.jss.html b/www/extras/extjs/docs/output/DateMenu.jss.html deleted file mode 100644 index b20454f63..000000000 --- a/www/extras/extjs/docs/output/DateMenu.jss.html +++ /dev/null @@ -1,27 +0,0 @@ -DateMenu.js

DateMenu.js

/**
- * @class Ext.menu.DateMenu
- * @extends Ext.menu.Menu
- * A menu containing a {@link Ext.menu.DateItem} component (which provides a date picker).
- * @constructor
- * Creates a new DateMenu
- * @param {Object} config Configuration options
- */
-Ext.menu.DateMenu = function(config){
-    Ext.menu.DateMenu.superclass.constructor.call(this, config);
-    this.plain = true;
-    var di = new Ext.menu.DateItem(config);
-    this.add(di);
-    /**
-     * The {@link Ext.DatePicker} instance for this DateMenu
-     * @type DatePicker
-     */
-    this.picker = di.picker;
-    /**
-     * @event select
-     * @param {DatePicker} picker
-     * @param {Date} date
-     */
-    this.relayEvents(di, ["select"]);
-};
-Ext.extend(Ext.menu.DateMenu, Ext.menu.Menu);

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/DatePicker.jss.html b/www/extras/extjs/docs/output/DatePicker.jss.html deleted file mode 100644 index 5d367a0f2..000000000 --- a/www/extras/extjs/docs/output/DatePicker.jss.html +++ /dev/null @@ -1,480 +0,0 @@ -DatePicker.js

DatePicker.js

/**
- * @class Ext.DatePicker
- * @extends Ext.Component
- * Simple date picker class.
- * @constructor
- * Create a new DatePicker
- * @param {Object} config The config object
- */
-Ext.DatePicker = function(config){
-    Ext.DatePicker.superclass.constructor.call(this, config);
-
-    this.value = config && config.value ?
-                 config.value.clearTime() : new Date().clearTime();
-
-    this.addEvents({
-        /**
-	     * @event select
-	     * Fires when a date is selected
-	     * @param {DatePicker} this
-	     * @param {Date} date The selected date
-	     */
-        select: true
-    });
-
-    if(this.handler){
-        this.on("select", this.handler,  this.scope || this);
-    }
-    // build the disabledDatesRE
-    if(!this.disabledDatesRE && this.disabledDates){
-        var dd = this.disabledDates;
-        var re = "(?:";
-        for(var i = 0; i < dd.length; i++){
-            re += dd[i];
-            if(i != dd.length-1) re += "|";
-        }
-        this.disabledDatesRE = new RegExp(re + ")");
-    }
-};
-
-Ext.extend(Ext.DatePicker, Ext.Component, {
-    /**
-     * @cfg {String} todayText
-     * The text to display on the button that selects the current date (defaults to "Today")
-     */
-    todayText : "Today",
-    /**
-     * @cfg {String} todayTip
-     * The tooltip to display for the button that selects the current date (defaults to "{current date} (Spacebar)")
-     */
-    todayTip : "{0} (Spacebar)",
-    /**
-     * @cfg {Date} minDate
-     * Minimum allowable date (JavaScript date object, defaults to null)
-     */
-    minDate : null,
-    /**
-     * @cfg {Date} maxDate
-     * Maximum allowable date (JavaScript date object, defaults to null)
-     */
-    maxDate : null,
-    /**
-     * @cfg {String} minText
-     * The error text to display if the minDate validation fails (defaults to "This date is before the minimum date")
-     */
-    minText : "This date is before the minimum date",
-    /**
-     * @cfg {String} maxText
-     * The error text to display if the maxDate validation fails (defaults to "This date is after the maximum date")
-     */
-    maxText : "This date is after the maximum date",
-    /**
-     * @cfg {String} format
-     * The default date format string which can be overriden for localization support.  The format must be
-     * valid according to {@link Date#parseDate} (defaults to 'm/d/y').
-     */
-    format : "m/d/y",
-    /**
-     * @cfg {Array} disabledDays
-     * An array of days to disable, 0-based. For example, [0, 6] disables Sunday and Saturday (defaults to null).
-     */
-    disabledDays : null,
-    /**
-     * @cfg {String} disabledDaysText
-     * The tooltip to display when the date falls on a disabled day (defaults to "")
-     */
-    disabledDaysText : "",
-    /**
-     * @cfg {RegExp} disabledDatesRE
-     * JavaScript regular expression used to disable a pattern of dates (defaults to null)
-     */
-    disabledDatesRE : null,
-    /**
-     * @cfg {String} disabledDatesText
-     * The tooltip text to display when the date falls on a disabled date (defaults to "")
-     */
-    disabledDatesText : "",
-    /**
-     * @cfg {Boolean} constrainToViewport
-     * True to constrain the date picker to the viewport (defaults to true)
-     */
-    constrainToViewport : true,
-    /**
-     * @cfg {Array} monthNames
-     * An array of textual month names which can be overriden for localization support (defaults to Date.monthNames)
-     */
-    monthNames : Date.monthNames,
-    /**
-     * @cfg {Array} dayNames
-     * An array of textual day names which can be overriden for localization support (defaults to Date.dayNames)
-     */
-    dayNames : Date.dayNames,
-    /**
-     * @cfg {String} nextText
-     * The next month navigation button tooltip (defaults to 'Next Month (Control+Right)')
-     */
-    nextText: 'Next Month (Control+Right)',
-    /**
-     * @cfg {String} prevText
-     * The previous month navigation button tooltip (defaults to 'Previous Month (Control+Left)')
-     */
-    prevText: 'Previous Month (Control+Left)',
-    /**
-     * @cfg {String} monthYearText
-     * The header month selector tooltip (defaults to 'Choose a month (Control+Up/Down to move years)')
-     */
-    monthYearText: 'Choose a month (Control+Up/Down to move years)',
-    /**
-     * @cfg {Number} startDay
-     * Day index at which the week should begin, 0-based (defaults to 0, which is Sunday)
-     */
-    startDay : 0,
-
-    /**
-     * Sets the value of the date field
-     * @param {Date} value The date to set
-     */
-    setValue : function(value){
-        var old = this.value;
-        this.value = value.clearTime(true);
-        if(this.el){
-            this.update(this.value);
-        }
-    },
-
-    /**
-     * Gets the current selected value of the date field
-     * @return {Date} The selected date
-     */
-    getValue : function(){
-        return this.value;
-    },
-
-    // private
-    focus : function(){
-        if(this.el){
-            this.update(this.activeDate);
-        }
-    },
-
-    // private
-    onRender : function(container, position){
-        var m = [
-             '<table cellspacing="0">',
-                '<tr><td class="x-date-left"><a href="#" title="', this.prevText ,'">&#160;</a></td><td class="x-date-middle" align="center"></td><td class="x-date-right"><a href="#" title="', this.nextText ,'">&#160;</a></td></tr>',
-                '<tr><td colspan="3"><table class="x-date-inner" cellspacing="0"><thead><tr>'];
-        var dn = this.dayNames;
-        for(var i = 0; i < 7; i++){
-            var d = this.startDay+i;
-            if(d > 6){
-                d = d-7;
-            }
-            m.push("<th><span>", dn[d].substr(0,1), "</span></th>");
-        }
-        m[m.length] = "</tr></thead><tbody><tr>";
-        for(var i = 0; i < 42; i++) {
-            if(i % 7 == 0 && i != 0){
-                m[m.length] = "</tr><tr>";
-            }
-            m[m.length] = '<td><a href="#" hidefocus="on" class="x-date-date" tabIndex="1"><em><span></span></em></a></td>';
-        }
-        m[m.length] = '</tr></tbody></table></td></tr><tr><td colspan="3" class="x-date-bottom" align="center"></td></tr></table>';
-
-        var el = document.createElement("div");
-        el.className = "x-date-picker";
-        el.innerHTML = m.join("");
-
-        container.dom.insertBefore(el, position);
-
-        this.el = Ext.get(el);
-        new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"), {handler: this.showPrevMonth, scope: this});
-        new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"), {handler: this.showNextMonth, scope: this});
-
-        this.el.on("mousewheel", this.handleMouseWheel,  this);
-
-
-        var kn = new Ext.KeyNav(this.el, {
-            "left" : function(e){
-                e.ctrlKey ?
-                    this.showPrevMonth() :
-                    this.update(this.activeDate.add("d", -1));
-            },
-
-            "right" : function(e){
-                e.ctrlKey ?
-                    this.showNextMonth() :
-                    this.update(this.activeDate.add("d", 1));
-            },
-
-            "up" : function(e){
-                e.ctrlKey ?
-                    this.showNextYear() :
-                    this.update(this.activeDate.add("d", -7));
-            },
-
-            "down" : function(e){
-                e.ctrlKey ?
-                    this.showPrevYear() :
-                    this.update(this.activeDate.add("d", 7));
-            },
-
-            "pageUp" : function(e){
-                this.showNextMonth();
-            },
-
-            "pageDown" : function(e){
-                this.showPrevMonth();
-            },
-
-            "enter" : function(e){
-                e.stopPropagation();
-                return true;
-            },
-
-            scope : this
-        });
-
-        this.el.on("click", this.handleDateClick,  this, {delegate: "a.x-date-date"});
-
-        this.el.addKeyListener(Ext.EventObject.SPACE, this.selectToday,  this);
-
-        this.el.unselectable();
-        
-        this.cells = this.el.select("table.x-date-inner tbody td");
-        this.textNodes = this.el.query("table.x-date-inner tbody span");
-
-        var mmenu = new Ext.menu.Menu({
-            plain:true,
-            cls: "x-date-mmenu",
-            allowOtherMenus : true
-        });
-
-        var menuGroup = Ext.id()+"months";
-        for(var i = 0; i < 12; i++){
-            mmenu.add(new Ext.menu.CheckItem({
-                id: "mm-"+i,
-                text: this.monthNames[i],
-                group:menuGroup,
-                month: i
-            }));
-        }
-
-        mmenu.on({
-            "beforeshow" : function(){
-                mmenu.items.get("mm-"+(this.activeDate || this.value).getMonth()).setChecked(true);
-            },
-            "itemclick" : function(item){
-                var d = (this.activeDate || this.value).clone();
-                d.setMonth(item.month);
-                this.update(d);
-            },
-            "show" : function(m){
-                this.visibleRegion = m.el.getRegion().adjust(2, 2, -2, -2);
-            },
-            "mouseout" : function(m, e){
-                if(!this.visibleRegion.contains(e.getPoint())){
-                    m.hide();
-                }
-            },
-            scope: this
-        });
-
-        this.mbtn = new Ext.Button(this.el.child("td.x-date-middle", true), {
-            menu: mmenu,
-            text: "&#160;",
-            menuAlign: "c-c?",
-            tooltip: this.monthYearText
-        });
-
-        var today = (new Date()).dateFormat(this.format);
-        var todayBtn = new Ext.Button(this.el.child("td.x-date-bottom", true), {
-            text: String.format(this.todayText, today),
-            tooltip: String.format(this.todayTip, today),
-            handler: this.selectToday,
-            scope: this
-        });
-        
-        if(Ext.isIE){
-            this.el.repaint();
-        }
-        this.update(this.value);
-    },
-
-    // private
-    showPrevMonth : function(e){
-        this.update(this.activeDate.add("mo", -1));
-    },
-
-    // private
-    showNextMonth : function(e){
-        this.update(this.activeDate.add("mo", 1));
-    },
-
-    // private
-    showPrevYear : function(){
-        this.update(this.activeDate.add("y", -1));
-    },
-
-    // private
-    showNextYear : function(){
-        this.update(this.activeDate.add("y", 1));
-    },
-
-    // private
-    handleMouseWheel : function(e){
-        var delta = e.getWheelDelta();
-        if(delta > 0){
-            this.showPrevMonth();
-            e.stopEvent();
-        } else if(delta < 0){
-            this.showNextMonth();
-            e.stopEvent();
-        }
-    },
-
-    // private
-    handleDateClick : function(e, t){
-        e.stopEvent();
-        if(t.dateValue && !Ext.fly(t.parentNode).hasClass("x-date-disabled")){
-            this.setValue(new Date(t.dateValue));
-            this.fireEvent("select", this, this.value);
-        }
-    },
-
-    // private
-    selectToday : function(){
-        this.setValue(new Date().clearTime());
-        this.fireEvent("select", this, this.value);
-    },
-
-    // private
-    update : function(date){
-        var vd = this.activeDate;
-        this.activeDate = date;
-
-        if(vd && this.el){
-            var t = date.getTime();
-            if(vd.getMonth() == date.getMonth() && vd.getFullYear() == date.getFullYear()){
-                this.cells.removeClass("x-date-selected");
-                this.cells.each(function(c){
-                   if(c.dom.firstChild.dateValue == t){
-                       c.addClass("x-date-selected");
-                       setTimeout(function(){
-                            try{c.dom.firstChild.focus();}catch(e){}
-                       }, 50);
-                       return false;
-                   }
-                });
-                return;
-            }
-        }
-        var days = date.getDaysInMonth();
-        var firstOfMonth = date.getFirstDateOfMonth();
-        var startingPos = firstOfMonth.getDay()-this.startDay;
-
-        if(startingPos <= this.startDay){
-            startingPos += 7;
-        }
-
-        var pm = date.add("mo", -1);
-        var prevStart = pm.getDaysInMonth()-startingPos;
-
-        var cells = this.cells.elements;
-        var textEls = this.textNodes;
-        days += startingPos;
-
-        // convert everything to numbers so it's fast
-        var day = 86400000;
-        var d = (new Date(pm.getFullYear(), pm.getMonth(), prevStart)).clearTime();
-        var today = new Date().clearTime().getTime();
-        var sel = date.clearTime().getTime();
-        var min = this.minDate ? this.minDate.clearTime() : Number.NEGATIVE_INFINITY;
-        var max = this.maxDate ? this.maxDate.clearTime() : Number.POSITIVE_INFINITY;
-        var ddMatch = this.disabledDatesRE;
-        var ddText = this.disabledDatesText;
-        var ddays = this.disabledDays ? this.disabledDays.join("") : false;
-        var ddaysText = this.disabledDaysText;
-        var format = this.format;
-
-        var setCellClass = function(cal, cell){
-            cell.title = "";
-            var t = d.getTime();
-            cell.firstChild.dateValue = t;
-            if(t == today){
-                cell.className += " x-date-today";
-                cell.title = cal.todayText;
-            }
-            if(t == sel){
-                cell.className += " x-date-selected";
-                setTimeout(function(){
-                    try{cell.firstChild.focus();}catch(e){}
-                }, 50);
-            }
-            // disabling
-            if(t < min) {
-                cell.className = " x-date-disabled";
-                cell.title = cal.minText;
-                return;
-            }
-            if(t > max) {
-                cell.className = " x-date-disabled";
-                cell.title = cal.maxText;
-                return;
-            }
-            if(ddays){
-                if(ddays.indexOf(d.getDay()) != -1){
-                    cell.title = ddaysText;
-                    cell.className = " x-date-disabled";
-                }
-            }
-            if(ddMatch && format){
-                var fvalue = d.dateFormat(format);
-                if(ddMatch.test(fvalue)){
-                    cell.title = ddText.replace("%0", fvalue);
-                    cell.className = " x-date-disabled";
-                }
-            }
-        };
-
-        var i = 0;
-        for(; i < startingPos; i++) {
-            textEls[i].innerHTML = (++prevStart);
-            d.setDate(d.getDate()+1);
-            cells[i].className = "x-date-prevday";
-            setCellClass(this, cells[i]);
-        }
-        for(; i < days; i++){
-            intDay = i - startingPos + 1;
-            textEls[i].innerHTML = (intDay);
-            d.setDate(d.getDate()+1);
-            cells[i].className = "x-date-active";
-            setCellClass(this, cells[i]);
-        }
-        var extraDays = 0;
-        for(; i < 42; i++) {
-             textEls[i].innerHTML = (++extraDays);
-             d.setDate(d.getDate()+1);
-             cells[i].className = "x-date-nextday";
-             setCellClass(this, cells[i]);
-        }
-
-        this.mbtn.setText(this.monthNames[date.getMonth()] + " " + date.getFullYear());
-
-        if(!this.internalRender){
-            var main = this.el.dom.firstChild;
-            var w = main.offsetWidth;
-            this.el.setWidth(w + this.el.getBorderWidth("lr"));
-            Ext.fly(main).setWidth(w);
-            this.internalRender = true;
-            // opera does not respect the auto grow header center column
-            // then, after it gets a width opera refuses to recalculate
-            // without a second pass
-            if(Ext.isOpera && !this.secondPass){
-                main.rows[0].cells[1].style.width = (w - (main.rows[0].cells[0].offsetWidth+main.rows[0].cells[2].offsetWidth)) + "px";
-                this.secondPass = true;
-                this.update.defer(10, this, [date]);
-            }
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/DelayedTask.jss.html b/www/extras/extjs/docs/output/DelayedTask.jss.html deleted file mode 100644 index 0faba6faf..000000000 --- a/www/extras/extjs/docs/output/DelayedTask.jss.html +++ /dev/null @@ -1,55 +0,0 @@ -DelayedTask.js

DelayedTask.js

/**
- * @class Ext.util.DelayedTask
- * Provides a convenient method of performing setTimeout where a new
- * timeout cancels the old timeout. An example would be performing validation on a keypress.
- * You can use this class to buffer
- * the keypress events for a certain number of milliseconds, and perform only if they stop
- * for that amount of time.
- * @constructor The parameters to this constructor serve as defaults and are not required.
- * @param {Function} fn (optional) The default function to timeout
- * @param {Object} scope (optional) The default scope of that timeout
- * @param {Array} args (optional) The default Array of arguments
- */
-Ext.util.DelayedTask = function(fn, scope, args){
-    var id = null, d, t;
-
-    var call = function(){
-        var now = new Date().getTime();
-        if(now - t >= d){
-            clearInterval(id);
-            id = null;
-            fn.apply(scope, args || []);
-        }
-    };
-    /**
-     * Cancels any pending timeout and queues a new one
-     * @param {Number} delay The milliseconds to delay
-     * @param {Function} newFn (optional) Overrides function passed to constructor
-     * @param {Object} newScope (optional) Overrides scope passed to constructor
-     * @param {Array} newArgs (optional) Overrides args passed to constructor
-     */
-    this.delay = function(delay, newFn, newScope, newArgs){
-        if(id && delay != d){
-            this.cancel();
-        }
-        d = delay;
-        t = new Date().getTime();
-        fn = newFn || fn;
-        scope = newScope || scope;
-        args = newArgs || args;
-        if(!id){
-            id = setInterval(call, d);
-        }
-    };
-
-    /**
-     * Cancel the last queued timeout
-     */
-    this.cancel = function(){
-        if(id){
-            clearInterval(id);
-            id = null;
-        }
-    };
-};

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/DomHelper.jss.html b/www/extras/extjs/docs/output/DomHelper.jss.html deleted file mode 100644 index 4d06506fe..000000000 --- a/www/extras/extjs/docs/output/DomHelper.jss.html +++ /dev/null @@ -1,389 +0,0 @@ -DomHelper.js

DomHelper.js

/**
- * @class Ext.DomHelper
- * Utility class for working with DOM and/or Templates. It transparently supports using HTML fragments or DOM. 
- * For more information see <a href="http://www.jackslocum.com/yui/2006/10/06/domhelper-create-elements-using-dom-html-fragments-or-templates/">this blog post with examples</a>.
- * @singleton
- */
-Ext.DomHelper = function(){
-    var tempTableEl = null;
-    var emptyTags = /^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i;
-           
-    // build as innerHTML where available
-    /** @ignore */
-    var createHtml = function(o){
-        if(typeof o == 'string'){
-            return o;
-        }
-        var b = "";
-        if(!o.tag){
-            o.tag = "div";
-        }
-        b += "<" + o.tag;
-        for(var attr in o){
-            if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || typeof o[attr] == "function") continue;
-            if(attr == "style"){
-                var s = o["style"];
-                if(typeof s == "function"){
-                    s = s.call();
-                }
-                if(typeof s == "string"){
-                    b += ' style="' + s + '"';
-                }else if(typeof s == "object"){
-                    b += ' style="';
-                    for(var key in s){
-                        if(typeof s[key] != "function"){
-                            b += key + ":" + s[key] + ";";
-                        }
-                    }
-                    b += '"';
-                }
-            }else{
-                if(attr == "cls"){
-                    b += ' class="' + o["cls"] + '"';
-                }else if(attr == "htmlFor"){
-                    b += ' for="' + o["htmlFor"] + '"';
-                }else{
-                    b += " " + attr + '="' + o[attr] + '"';
-                }
-            }
-        }
-        if(emptyTags.test(o.tag)){
-            b += "/>";
-        }else{
-            b += ">";
-            var cn = o.children || o.cn;
-            if(cn){
-                if(cn instanceof Array){
-                    for(var i = 0, len = cn.length; i < len; i++) {
-                        b += createHtml(cn[i], b);
-                    }
-                }else{
-                    b += createHtml(cn, b);
-                }
-            }
-            if(o.html){
-                b += o.html;
-            }
-            b += "</" + o.tag + ">";
-        }
-        return b;
-    };
-    
-    // build as dom
-    /** @ignore */
-    var createDom = function(o, parentNode){
-        var el = document.createElement(o.tag);
-        var useSet = el.setAttribute ? true : false; // In IE some elements don't have setAttribute
-        for(var attr in o){
-            if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || attr == "style" || typeof o[attr] == "function") continue;
-            if(attr=="cls"){
-                el.className = o["cls"];
-            }else{
-                if(useSet) el.setAttribute(attr, o[attr]);
-                else el[attr] = o[attr];
-            }
-        }
-        Ext.DomHelper.applyStyles(el, o.style);
-        var cn = o.children || o.cn;
-        if(cn){
-            if(cn instanceof Array){
-                for(var i = 0, len = cn.length; i < len; i++) {
-                    createDom(cn[i], el);
-                }
-            }else{
-                createDom(cn, el);
-            }
-        }
-        if(o.html){
-            el.innerHTML = o.html;
-        }
-        if(parentNode){
-           parentNode.appendChild(el);
-        }
-        return el;
-    };
-
-    var ieTable = function(depth, s, h, e){
-        tempTableEl.innerHTML = [s, h, e].join('');
-        var i = -1, el = tempTableEl;
-        while(++i < depth){
-            el = el.firstChild;
-        }
-        return el;
-    };
-
-    // kill repeat to save bytes
-    var ts = '<table>',
-        te = '</table>',
-        tbs = ts+'<tbody>',
-        tbe = '</tbody>'+te,
-        trs = tbs + '<tr>',
-        tre = '</tr>'+tbe;
-
-    /**
-     * @ignore
-     * Nasty code for IE's broken table implementation 
-     */
-    var insertIntoTable = function(tag, where, el, html){
-        if(!tempTableEl){
-            tempTableEl = document.createElement('div');
-        }
-        var node;
-        var before = null;
-        if(tag == 'td'){
-            if(where == 'afterbegin' || where == 'beforeend'){ // INTO a TD
-                return;
-            }
-            if(where == 'beforebegin'){
-                before = el;
-                el = el.parentNode;
-            } else{
-                before = el.nextSibling;
-                el = el.parentNode;
-            }
-            node = ieTable(4, trs, html, tre);
-        }
-        else if(tag == 'tr'){
-            if(where == 'beforebegin'){
-                before = el;
-                el = el.parentNode;
-                node = ieTable(3, tbs, html, tbe);
-            } else if(where == 'afterend'){
-                before = el.nextSibling;
-                el = el.parentNode;
-                node = ieTable(3, tbs, html, tbe);
-            } else{ // INTO a TR
-                if(where == 'afterbegin'){
-                    before = el.firstChild;
-                }
-                node = ieTable(4, trs, html, tre);
-            }
-        } else if(tag == 'tbody'){
-            if(where == 'beforebegin'){
-                before = el;
-                el = el.parentNode;
-                node = ieTable(2, ts, html, te);
-            } else if(where == 'afterend'){
-                before = el.nextSibling;
-                el = el.parentNode;
-                node = ieTable(2, ts, html, te);
-            } else{
-                if(where == 'afterbegin'){
-                    before = el.firstChild;
-                }
-                node = ieTable(3, tbs, html, tbe);
-            }
-        } else{ // TABLE
-            if(where == 'beforebegin' || where == 'afterend'){ // OUTSIDE the table
-                return;
-            }
-            if(where == 'afterbegin'){
-                before = el.firstChild;
-            }
-            node = ieTable(2, ts, html, te);
-        }
-        el.insertBefore(node, before);
-        return node;
-    };
-    
-    return {
-    /** True to force the use of DOM instead of html fragments @type Boolean */
-    useDom : false,
-
-    /**
-     * Returns the markup for the passed Element(s) config
-     * @param {Object} o The Dom object spec (and children)
-     * @return {String}
-     */
-    markup : function(o){
-        return createHtml(o);
-    },
-
-    /**
-     * Applies a style specification to an element
-     * @param {String/HTMLElement} el The element to apply styles to
-     * @param {String/Object/Function} styles A style specification string eg "width:100px", or object in the form {width:"100px"}, or
-     * a function which returns such a specification.
-     */
-    applyStyles : function(el, styles){
-        if(styles){
-           el = Ext.fly(el);
-           if(typeof styles == "string"){
-               var re = /\s?([a-z\-]*)\:\s?([^;]*);?/gi;
-               var matches;
-               while ((matches = re.exec(styles)) != null){
-                   el.setStyle(matches[1], matches[2]);
-               }
-           }else if (typeof styles == "object"){
-               for (var style in styles){
-                  el.setStyle(style, styles[style]);
-               }
-           }else if (typeof styles == "function"){
-                Ext.DomHelper.applyStyles(el, styles.call());
-           }
-        }
-    }, 
-    
-    /**
-     * Inserts an HTML fragment into the Dom
-     * @param {String} where Where to insert the html in relation to el - beforeBegin, afterBegin, beforeEnd, afterEnd.
-     * @param {HTMLElement} el The context element
-     * @param {String} html The HTML fragmenet
-     * @return {HTMLElement} The new node
-     */
-    insertHtml : function(where, el, html){
-        where = where.toLowerCase();
-        if(el.insertAdjacentHTML){
-            var tag = el.tagName.toLowerCase();
-            if(tag == "table" || tag == "tbody" || tag == "tr" || tag == 'td'){
-                var rs;
-                if(rs = insertIntoTable(tag, where, el, html)){
-                    return rs;
-                }
-            }
-            switch(where){
-                case "beforebegin":
-                    el.insertAdjacentHTML(where, html);
-                    return el.previousSibling;
-                case "afterbegin":
-                    el.insertAdjacentHTML(where, html);
-                    return el.firstChild;
-                case "beforeend":
-                    el.insertAdjacentHTML(where, html);
-                    return el.lastChild;
-                case "afterend":
-                    el.insertAdjacentHTML(where, html);
-                    return el.nextSibling;
-            }
-            throw 'Illegal insertion point -> "' + where + '"';
-        }
-        var range = el.ownerDocument.createRange();
-        var frag;
-        switch(where){
-             case "beforebegin":
-                range.setStartBefore(el);
-                frag = range.createContextualFragment(html);
-                el.parentNode.insertBefore(frag, el);
-                return el.previousSibling;
-             case "afterbegin":
-                if(el.firstChild){
-                    range.setStartBefore(el.firstChild);
-                    frag = range.createContextualFragment(html);
-                    el.insertBefore(frag, el.firstChild);
-                    return el.firstChild;
-                }else{
-                    el.innerHTML = html;
-                    return el.firstChild;
-                }
-            case "beforeend":
-                if(el.lastChild){
-                    range.setStartAfter(el.lastChild);
-                    frag = range.createContextualFragment(html);
-                    el.appendChild(frag);
-                    return el.lastChild;
-                }else{
-                    el.innerHTML = html;
-                    return el.lastChild;
-                }
-            case "afterend":
-                range.setStartAfter(el);
-                frag = range.createContextualFragment(html);
-                el.parentNode.insertBefore(frag, el.nextSibling);
-                return el.nextSibling;
-            }
-            throw 'Illegal insertion point -> "' + where + '"';
-    },
-    
-    /**
-     * Creates new Dom element(s) and inserts them before el
-     * @param {String/HTMLElement/Element} el The context element
-     * @param {Object} o The Dom object spec (and children)
-     * @param {Boolean} returnElement (optional) true to return a Ext.Element
-     * @return {HTMLElement} The new node
-     */
-    insertBefore : function(el, o, returnElement){
-        return this.doInsert(el, o, returnElement, "beforeBegin");
-    },
-    
-    /**
-     * Creates new Dom element(s) and inserts them after el
-     * @param {String/HTMLElement/Element} el The context element
-     * @param {Object} o The Dom object spec (and children)
-     * @param {Boolean} returnElement (optional) true to return a Ext.Element
-     * @return {HTMLElement} The new node
-     */
-    insertAfter : function(el, o, returnElement){
-        return this.doInsert(el, o, returnElement, "afterEnd", "nextSibling");
-    },
-
-    /**
-     * Creates new Dom element(s) and inserts them as the first child of el
-     * @param {String/HTMLElement/Element} el The context element
-     * @param {Object} o The Dom object spec (and children)
-     * @param {Boolean} returnElement (optional) true to return a Ext.Element
-     * @return {HTMLElement} The new node
-     */
-    insertFirst : function(el, o, returnElement){
-        return this.doInsert(el, o, returnElement, "afterBegin");
-    },
-
-    // private
-    doInsert : function(el, o, returnElement, pos, sibling){
-        el = Ext.getDom(el);
-        var newNode;
-        if(this.useDom){
-            newNode = createDom(o, null);
-            el.parentNode.insertBefore(newNode, sibling ? el[sibling] : el);
-        }else{
-            var html = createHtml(o);
-            newNode = this.insertHtml(pos, el, html);
-        }
-        return returnElement ? Ext.get(newNode, true) : newNode;
-    },
-
-    /**
-     * Creates new Dom element(s) and appends them to el
-     * @param {String/HTMLElement/Element} el The context element
-     * @param {Object} o The Dom object spec (and children)
-     * @param {Boolean} returnElement (optional) true to return a Ext.Element
-     * @return {HTMLElement} The new node
-     */
-    append : function(el, o, returnElement){
-        el = Ext.getDom(el);
-        var newNode;
-        if(this.useDom){
-            newNode = createDom(o, null);
-            el.appendChild(newNode);
-        }else{
-            var html = createHtml(o);
-            newNode = this.insertHtml("beforeEnd", el, html);
-        }
-        return returnElement ? Ext.get(newNode, true) : newNode;
-    },
-    
-    /**
-     * Creates new Dom element(s) and overwrites the contents of el with them
-     * @param {String/HTMLElement/Element} el The context element
-     * @param {Object} o The Dom object spec (and children)
-     * @param {Boolean} returnElement (optional) true to return a Ext.Element
-     * @return {HTMLElement} The new node
-     */
-    overwrite : function(el, o, returnElement){
-        el = Ext.getDom(el);
-        el.innerHTML = createHtml(o);
-        return returnElement ? Ext.get(el.firstChild, true) : el.firstChild;
-    },
-    
-    /**
-     * Creates a new Ext.DomHelper.Template from the Dom object spec 
-     * @param {Object} o The Dom object spec (and children)
-     * @return {Ext.DomHelper.Template} The new template
-     */
-    createTemplate : function(o){
-        var html = createHtml(o);
-        return new Ext.Template(html);
-    }
-    };
-}();
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/DomQuery.jss.html b/www/extras/extjs/docs/output/DomQuery.jss.html deleted file mode 100644 index ae924bbcd..000000000 --- a/www/extras/extjs/docs/output/DomQuery.jss.html +++ /dev/null @@ -1,710 +0,0 @@ -DomQuery.js

DomQuery.js

/*
- * This is code is also distributed under MIT license for use
- * with jQuery and prototype JavaScript libraries.
- */
-// holder
-/***
- * @class Ext.DomQuery
- * Provides high performance selector/xpath processing by compiling queries into reusable functions.
- * New pseudo classes and matchers can be plugged. It works on HTML and XML documents (if a content node is passed in).
- * @singleton
- */
-Ext.DomQuery = function(){
-    var cache = {}, simpleCache = {}, valueCache = {};
-    var nonSpace = /\S/;
-    var trimRe = /^\s+|\s+$/g;
-    var tplRe = /\{(\d+)\}/g;
-    var modeRe = /^(\s?[\/>]\s?|\s|$)/;
-    var tagTokenRe = /^(#)?([\w-\*]+)/;
-    
-    function child(p, index){
-        var i = 0;
-        var n = p.firstChild;
-        while(n){
-            if(n.nodeType == 1){
-               if(++i == index){
-                   return n;
-               }
-            }
-            n = n.nextSibling;
-        }
-        return null;
-    };
-    
-    function next(n){
-        while((n = n.nextSibling) && n.nodeType != 1);
-        return n;
-    };
-    
-    function prev(n){
-        while((n = n.previousSibling) && n.nodeType != 1);
-        return n;
-    };
-    
-    function clean(d){
-        var n = d.firstChild, ni = -1;
- 	    while(n){
- 	        var nx = n.nextSibling;
- 	        if(n.nodeType == 3 && !nonSpace.test(n.nodeValue)){
- 	            d.removeChild(n);
- 	        }else{
- 	            n.nodeIndex = ++ni;
- 	        }
- 	        n = nx;
- 	    }
- 	    return this;
- 	};
-
-    function byClassName(c, a, v, re, cn){
-        if(!v){
-            return c;
-        }
-        var r = [];
-        for(var i = 0, ci; ci = c[i]; i++){
-            cn = ci.className;
-            if(cn && (' '+cn+' ').indexOf(v) != -1){
-                r[r.length] = ci;
-            }
-        }
-        return r;
-    };
-
-    function attrValue(n, attr){
-        if(!n.tagName && typeof n.length != "undefined"){
-            n = n[0];
-        }
-        if(!n){
-            return null;
-        }
-        if(attr == "for"){
-            return n.htmlFor;
-        }
-        if(attr == "class" || attr == "className"){
-            return n.className;
-        }
-        return n.getAttribute(attr) || n[attr];
-          
-    };
-    
-    function getNodes(ns, mode, tagName){
-        var result = [], cs;
-        if(!ns){
-            return result;
-        }
-        mode = mode ? mode.replace(trimRe, "") : "";
-        tagName = tagName || "*";
-        if(typeof ns.getElementsByTagName != "undefined"){
-            ns = [ns];   
-        }
-        if(mode != "/" && mode != ">"){
-            for(var i = 0, ni; ni = ns[i]; i++){
-                cs = ni.getElementsByTagName(tagName);
-                for(var j = 0, ci; ci = cs[j]; j++){
-                    result[result.length] = ci;
-                }
-            }
-        }else{
-            for(var i = 0, ni; ni = ns[i]; i++){
-                var cn = ni.getElementsByTagName(tagName);
-                for(var j = 0, cj; cj = cn[j]; j++){
-                    if(cj.parentNode == ni){
-                        result[result.length] = cj;
-                    }
-                }
-            }
-        }
-        return result;
-    };
-    
-    function concat(a, b){
-        if(b.slice){
-            return a.concat(b);
-        }
-        for(var i = 0, l = b.length; i < l; i++){
-            a[a.length] = b[i];
-        }
-        return a;
-    }
-    
-    function byTag(cs, tagName){
-        if(cs.tagName || cs == document){
-            cs = [cs];
-        }
-        if(!tagName){
-            return cs;
-        }
-        var r = []; tagName = tagName.toLowerCase();
-        for(var i = 0, ci; ci = cs[i]; i++){
-            if(ci.nodeType == 1 && ci.tagName.toLowerCase()==tagName){
-                r[r.length] = ci;
-            }
-        }
-        return r; 
-    };
-    
-    function byId(cs, attr, id){
-        if(cs.tagName || cs == document){
-            cs = [cs];
-        }
-        if(!id){
-            return cs;
-        }
-        var r = [];
-        for(var i = 0,ci; ci = cs[i]; i++){
-            if(ci && ci.id == id){
-                r[r.length] = ci;
-                return r;
-            }
-        }
-        return r; 
-    };
-    
-    function byAttribute(cs, attr, value, op, custom){
-        var r = [], st = custom=="{";
-        var f = Ext.DomQuery.operators[op];
-        for(var i = 0; ci = cs[i]; i++){
-            var a;
-            if(st){
-                a = Ext.DomQuery.getStyle(ci, attr);
-            }
-            else if(attr == "class" || attr == "className"){
-                a = ci.className;
-            }else if(attr == "for"){
-                a = ci.htmlFor;
-            }else if(attr == "href"){
-                a = ci.getAttribute("href", 2);
-            }else{
-                a = ci.getAttribute(attr);
-            }
-            if((f && f(a, value)) || (!f && a)){
-                r[r.length] = ci;
-            }
-        }
-        return r;
-    };
-    
-    function byPseudo(cs, name, value){
-        return Ext.DomQuery.pseudos[name](cs, value);
-    };
-    
-    // This is for IE MSXML which does not support expandos.
-    // IE runs the same speed using setAttribute, however FF slows way down
-    // and Safari completely fails so they need to continue to use expandos.
-    var isIE = window.ActiveXObject ? true : false;
-
-    var key = 30803;
-
-    function nodupIEXml(cs){
-        var d = ++key;
-        cs[0].setAttribute("_nodup", d);
-        var r = [cs[0]];
-        for(var i = 1, len = cs.length; i < len; i++){
-            var c = cs[i];
-            if(!c.getAttribute("_nodup") != d){
-                c.setAttribute("_nodup", d);
-                r[r.length] = c;
-            }
-        }
-        for(var i = 0, len = cs.length; i < len; i++){
-            cs[i].removeAttribute("_nodup");
-        }
-        return r;
-    }
-
-    function nodup(cs){
-        if(!cs){
-            return [];
-        }
-        var len = cs.length, c, i, r = cs, cj;
-        if(!len || typeof cs.nodeType != "undefined" || len == 1){
-            return cs;
-        }
-        if(isIE && typeof cs[0].selectSingleNode != "undefined"){
-            return nodupIEXml(cs);
-        }
-        var d = ++key;
-        cs[0]._nodup = d;
-        for(i = 1; c = cs[i]; i++){
-            if(c._nodup != d){
-                c._nodup = d;
-            }else{
-                r = [];
-                for(var j = 0; j < i; j++){
-                    r[r.length] = cs[j];
-                }
-                for(j = i+1; cj = cs[j]; j++){
-                    if(cj._nodup != d){
-                        cj._nodup = d;
-                        r[r.length] = cj;
-                    }
-                }
-                return r;
-            }
-        }
-        return r;
-    }
-
-    function quickDiffIEXml(c1, c2){
-        var d = ++key;
-        for(var i = 0, len = c1.length; i < len; i++){
-            c1[i].setAttribute("_qdiff", d);
-        }
-        var r = [];
-        for(var i = 0, len = c2.length; i < len; i++){
-            if(c2[i].getAttribute("_qdiff") != d){
-                r[r.length] = c2[i];
-            }
-        }
-        for(var i = 0, len = c1.length; i < len; i++){
-           c1[i].removeAttribute("_qdiff");
-        }
-        return r;
-    }
-
-    function quickDiff(c1, c2){
-        var len1 = c1.length;
-        if(!len1){
-            return c2;
-        }
-        if(isIE && c1[0].selectSingleNode){
-            return quickDiffIEXml(c1, c2);
-        }
-        var d = ++key;
-        for(var i = 0; i < len1; i++){
-            c1[i]._qdiff = d;
-        }
-        var r = [];
-        for(var i = 0, len = c2.length; i < len; i++){
-            if(c2[i]._qdiff != d){
-                r[r.length] = c2[i];
-            }
-        }
-        return r;
-    }
-    
-    function quickId(ns, mode, root, id){
-        if(ns == root){
-           var d = root.ownerDocument || root;
-           return d.getElementById(id);
-        }
-        ns = getNodes(ns, mode, "*");
-        return byId(ns, null, id);
-    }
-    
-    return {
-        getStyle : function(el, name){
-            return Ext.fly(el).getStyle(name);
-        },
-        /**
-         * Compiles a selector/xpath query into a reusable function. The returned function
-         * takes one parameter "root" (optional), which is the context node from where the query should start. 
-         * @param {String} selector The selector/xpath query
-         * @param {String} type (optional) Either "select" (the default) or "simple" for a simple selector match
-         * @return {Function}
-         */
-        compile : function(path, type){
-            // strip leading slashes
-            while(path.substr(0, 1)=="/"){
-                path = path.substr(1);
-            }
-            type = type || "select";
-            
-            var fn = ["var f = function(root){\n var mode; var n = root || document;\n"];
-            var q = path, mode, lq;
-            var tk = Ext.DomQuery.matchers;
-            var tklen = tk.length;
-            var mm;
-            while(q && lq != q){
-                lq = q;
-                var tm = q.match(tagTokenRe);
-                if(type == "select"){
-                    if(tm){
-                        if(tm[1] == "#"){
-                            fn[fn.length] = 'n = quickId(n, mode, root, "'+tm[2]+'");';
-                        }else{
-                            fn[fn.length] = 'n = getNodes(n, mode, "'+tm[2]+'");';
-                        }
-                        q = q.replace(tm[0], "");
-                    }else if(q.substr(0, 1) != '@'){
-                        fn[fn.length] = 'n = getNodes(n, mode, "*");';
-                    }
-                }else{
-                    if(tm){
-                        if(tm[1] == "#"){
-                            fn[fn.length] = 'n = byId(n, null, "'+tm[2]+'");';
-                        }else{
-                            fn[fn.length] = 'n = byTag(n, "'+tm[2]+'");';
-                        }
-                        q = q.replace(tm[0], "");
-                    }
-                }
-                while(!(mm = q.match(modeRe))){
-                    var matched = false;
-                    for(var j = 0; j < tklen; j++){
-                        var t = tk[j];
-                        var m = q.match(t.re);
-                        if(m){
-                            fn[fn.length] = t.select.replace(tplRe, function(x, i){
-                                                    return m[i];
-                                                });
-                            q = q.replace(m[0], "");
-                            matched = true;
-                            break;
-                        }
-                    }
-                    // prevent infinite loop on bad selector
-                    if(!matched){
-                        throw 'Error parsing selector, parsing failed at "' + q + '"';
-                    }
-                }
-                if(mm[1]){
-                    fn[fn.length] = 'mode="'+mm[1]+'";';
-                    q = q.replace(mm[1], "");
-                }
-            }
-            fn[fn.length] = "return nodup(n);\n}";
-            eval(fn.join(""));
-            return f;
-        },
-        
-        /**
-         * Selects a group of elements.
-         * @param {String} selector The selector/xpath query
-         * @param {Node} root (optional) The start of the query (defaults to document).
-         * @return {Array}
-         */
-        select : function(path, root, type){
-            if(!root || root == document){
-                root = document;
-            }
-            if(typeof root == "string"){
-                root = document.getElementById(root);
-            }
-            var paths = path.split(",");
-            var results = [];
-            for(var i = 0, len = paths.length; i < len; i++){
-                var p = paths[i].replace(trimRe, "");
-                if(!cache[p]){
-                    cache[p] = Ext.DomQuery.compile(p);
-                    if(!cache[p]){
-                        throw p + " is not a valid selector";
-                    }
-                }
-                var result = cache[p](root);
-                if(result && result != document){
-                    results = results.concat(result);
-                }
-            }
-            return results;
-        },
-        
-        /**
-         * Selects a single element.
-         * @param {String} selector The selector/xpath query
-         * @param {Node} root (optional) The start of the query (defaults to document).
-         * @return {Element}
-         */
-        selectNode : function(path, root){
-            return Ext.DomQuery.select(path, root)[0];
-        },
-        
-        /**
-         * Selects the value of a node, optionally replacing null with the defaultValue.
-         * @param {String} selector The selector/xpath query
-         * @param {Node} root (optional) The start of the query (defaults to document).
-         * @param {String} defaultValue
-         */
-        selectValue : function(path, root, defaultValue){
-            path = path.replace(trimRe, "");
-            if(!valueCache[path]){
-                valueCache[path] = Ext.DomQuery.compile(path, "select");
-            }
-            var n = valueCache[path](root);
-            n = n[0] ? n[0] : n;
-            var v = (n && n.firstChild ? n.firstChild.nodeValue : null);
-            return (v === null ? defaultValue : v);
-        },
-        
-        /**
-         * Selects the value of a node, parsing integers and floats.
-         * @param {String} selector The selector/xpath query
-         * @param {Node} root (optional) The start of the query (defaults to document).
-         * @param {Number} defaultValue
-         * @return {Number}
-         */
-        selectNumber : function(path, root, defaultValue){
-            var v = Ext.DomQuery.selectValue(path, root, defaultValue || 0);
-            return parseFloat(v);
-        },
-        
-        /**
-         * Returns true if the passed element(s) match the passed simple selector (e.g. div.some-class or span:first-child)
-         * @param {String/HTMLElement/Array} el An element id, element or array of elements
-         * @param {String} selector The simple selector to test
-         * @return {Boolean}
-         */
-        is : function(el, ss){
-            if(typeof el == "string"){
-                el = document.getElementById(el);
-            }
-            var isArray = (el instanceof Array);
-            var result = Ext.DomQuery.filter(isArray ? el : [el], ss);
-            return isArray ? (result.length == el.length) : (result.length > 0);
-        },
-        
-        /**
-         * Filters an array of elements to only include matches of a simple selector (e.g. div.some-class or span:first-child)
-         * @param {Array} el An array of elements to filter
-         * @param {String} selector The simple selector to test
-         * @param {Boolean} nonMatches If true, it returns the elements that DON'T match 
-         * the selector instead of the ones that match
-         * @return {Array}
-         */
-        filter : function(els, ss, nonMatches){
-            ss = ss.replace(trimRe, "");
-            if(!simpleCache[ss]){
-                simpleCache[ss] = Ext.DomQuery.compile(ss, "simple");
-            }
-            var result = simpleCache[ss](els);
-            return nonMatches ? quickDiff(result, els) : result;
-        },
-        
-        /**
-         * Collection of matching regular expressions and code snippets. 
-         */
-        matchers : [{
-                re: /^\.([\w-]+)/,
-                select: 'n = byClassName(n, null, " {1} ");'
-            }, {
-                re: /^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,
-                select: 'n = byPseudo(n, "{1}", "{2}");'
-            },{
-                re: /^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/,
-                select: 'n = byAttribute(n, "{2}", "{4}", "{3}", "{1}");'
-            }, {
-                re: /^#([\w-]+)/,
-                select: 'n = byId(n, null, "{1}");'
-            },{
-                re: /^@([\w-]+)/,
-                select: 'return {firstChild:{nodeValue:attrValue(n, "{1}")}};'
-            }
-        ],
-        
-        /**
-         * Collection of operator comparison functions. The default operators are =, !=, ^=, $=, *= and %=.
-         * New operators can be added as long as the match the format <i>c</i>= where <i>c<i> is any character other than space, &gt; &lt;.
-         */
-        operators : {
-            "=" : function(a, v){
-                return a == v;
-            },
-            "!=" : function(a, v){
-                return a != v;
-            },
-            "^=" : function(a, v){
-                return a && a.substr(0, v.length) == v;
-            },
-            "$=" : function(a, v){
-                return a && a.substr(a.length-v.length) == v;
-            },
-            "*=" : function(a, v){
-                return a && a.indexOf(v) !== -1;
-            },
-            "%=" : function(a, v){
-                return (a % v) == 0;
-            }
-        },
-        
-        /**
-         * Collection of "pseudo class" processors. Each processor is passed the current nodeset (array)
-         * and the argument (if any) supplied in the selector.
-         */
-        pseudos : {
-            "first-child" : function(c){
-                var r = [], n;
-                for(var i = 0, ci; ci = n = c[i]; i++){
-                    while((n = n.previousSibling) && n.nodeType != 1);
-                    if(!n){
-                        r[r.length] = ci;
-                    }
-                }
-                return r;
-            },
-            
-            "last-child" : function(c){
-                var r = [];
-                for(var i = 0, ci; ci = n = c[i]; i++){
-                    while((n = n.nextSibling) && n.nodeType != 1);
-                    if(!n){
-                        r[r.length] = ci;
-                    }
-                }
-                return r;
-            },
-            
-            "nth-child" : function(c, a){
-                var r = [];
-                if(a != "odd" && a != "even"){
-                    for(var i = 0, ci; ci = c[i]; i++){
-                        var m = child(ci.parentNode, a);
-                        if(m == ci){
-                            r[r.length] = m;
-                        }
-                    }
-                    return r;
-                }
-                var p;
-                // first let's clean up the parent nodes
-                for(var i = 0, l = c.length; i < l; i++){
-                    var cp = c[i].parentNode;
-                    if(cp != p){
-                        clean(cp);
-                        p = cp;
-                    }
-                }
-                // then lets see if we match
-                for(var i = 0, ci; ci = c[i]; i++){
-                    var m = false;
-                    if(a == "odd"){
-                        m = ((ci.nodeIndex+1) % 2 == 1);
-                    }else if(a == "even"){
-                        m = ((ci.nodeIndex+1) % 2 == 0);
-                    }
-                    if(m){
-                        r[r.length] = ci;
-                    }
-                }
-                return r;
-            },
-            
-            "only-child" : function(c){
-                var r = [];
-                for(var i = 0, ci; ci = c[i]; i++){
-                    if(!prev(ci) && !next(ci)){
-                        r[r.length] = ci;
-                    }
-                }
-                return r;
-            },
-            
-            "empty" : function(c){
-                var r = [];
-                for(var i = 0, ci; ci = c[i]; i++){
-                    var cns = ci.childNodes, j = 0, cn, empty = true;
-                    while(cn = cns[j]){
-                        ++j;
-                        if(cn.nodeType == 1 || cn.nodeType == 3){
-                            empty = false;
-                            break;
-                        }
-                    }
-                    if(empty){
-                        r[r.length] = ci;
-                    }
-                }
-                return r;
-            },
-            
-            "contains" : function(c, v){
-                var r = [];
-                for(var i = 0, ci; ci = c[i]; i++){
-                    if(ci.innerHTML.indexOf(v) !== -1){
-                        r[r.length] = ci;
-                    }
-                }
-                return r;
-            },
-
-            "nodeValue" : function(c, v){
-                var r = [];
-                for(var i = 0, ci; ci = c[i]; i++){
-                    if(ci.firstChild && ci.firstChild.nodeValue == v){
-                        r[r.length] = ci;
-                    }
-                }
-                return r;
-            },
-
-            "checked" : function(c){
-                var r = [];
-                for(var i = 0, ci; ci = c[i]; i++){
-                    if(ci.checked == true){
-                        r[r.length] = ci;
-                    }
-                }
-                return r;
-            },
-            
-            "not" : function(c, ss){
-                return Ext.DomQuery.filter(c, ss, true);
-            },
-            
-            "odd" : function(c){
-                return this["nth-child"](c, "odd");
-            },
-            
-            "even" : function(c){
-                return this["nth-child"](c, "even");
-            },
-            
-            "nth" : function(c, a){
-                return c[a-1] || [];
-            },
-            
-            "first" : function(c){
-                return c[0] || [];
-            },
-            
-            "last" : function(c){
-                return c[c.length-1] || [];
-            },
-            
-            "has" : function(c, ss){
-                var s = Ext.DomQuery.select;
-                var r = [];
-                for(var i = 0, ci; ci = c[i]; i++){
-                    if(s(ss, ci).length > 0){
-                        r[r.length] = ci;
-                    }
-                }
-                return r;
-            },
-            
-            "next" : function(c, ss){
-                var is = Ext.DomQuery.is;
-                var r = [];
-                for(var i = 0, ci; ci = c[i]; i++){
-                    var n = next(ci);
-                    if(n && is(n, ss)){
-                        r[r.length] = ci;
-                    }
-                }
-                return r;
-            },
-            
-            "prev" : function(c, ss){
-                var is = Ext.DomQuery.is;
-                var r = [];
-                for(var i = 0, ci; ci = c[i]; i++){
-                    var n = prev(ci);
-                    if(n && is(n, ss)){
-                        r[r.length] = ci;
-                    }
-                }
-                return r;
-            }
-        }
-    };
-}();
-
-/**
- * Selects an array of DOM nodes by CSS/XPath selector. Shorthand of {@link Ext.DomQuery#select}
- * @param {String} path The selector/xpath query
- * @param {Node} root (optional) The start of the query (defaults to document).
- * @return {Array}
- * @member Ext
- * @method query
- */
-Ext.query = Ext.DomQuery.select;
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/DragSource.jss.html b/www/extras/extjs/docs/output/DragSource.jss.html deleted file mode 100644 index 6a600aaa8..000000000 --- a/www/extras/extjs/docs/output/DragSource.jss.html +++ /dev/null @@ -1,352 +0,0 @@ -DragSource.js

DragSource.js

/**
- * @class Ext.dd.DragSource
- * @extends Ext.dd.DDProxy
- * A simple class that provides the basic implementation needed to make any element draggable.
- * @constructor
- * @param {String/HTMLElement/Element} el The container element
- * @param {Object} config
- */
-Ext.dd.DragSource = function(el, config){
-    this.el = Ext.get(el);
-    this.dragData = {};
-    
-    Ext.apply(this, config);
-    
-    if(!this.proxy){
-        this.proxy = new Ext.dd.StatusProxy();
-    }
-    this.el.on("mouseup", this.handleMouseUp);
-    Ext.dd.DragSource.superclass.constructor.call(this, this.el.dom, this.ddGroup || this.group, 
-          {dragElId : this.proxy.id, resizeFrame: false, isTarget: false, scroll: this.scroll === true});
-    
-    this.dragging = false;
-};
-
-Ext.extend(Ext.dd.DragSource, Ext.dd.DDProxy, {
-    /**
-     * @cfg {String} dropAllowed
-     * The CSS class returned to the drag source when drop is allowed (defaults to "x-dd-drop-ok").
-     */
-    dropAllowed : "x-dd-drop-ok",
-    /**
-     * @cfg {String} dropNotAllowed
-     * The CSS class returned to the drag source when drop is not allowed (defaults to "x-dd-drop-nodrop").
-     */
-    dropNotAllowed : "x-dd-drop-nodrop",
-
-    /**
-     * Returns the data object associated with this drag source
-     * @return {Object} data An object containing arbitrary data
-     */
-    getDragData : function(e){
-        return this.dragData;
-    },
-
-    // private
-    onDragEnter : function(e, id){
-        var target = Ext.dd.DragDropMgr.getDDById(id);
-        this.cachedTarget = target;
-        if(this.beforeDragEnter(target, e, id) !== false){
-            if(target.isNotifyTarget){
-                var status = target.notifyEnter(this, e, this.dragData);
-                this.proxy.setStatus(status);
-            }else{
-                this.proxy.setStatus(this.dropAllowed);
-            }
-            
-            if(this.afterDragEnter){
-                /**
-                 * An empty function by default, but provided so that you can perform a custom action
-                 * when the dragged item enters the drop target by providing an implementation.
-                 * @param {Ext.dd.DragDrop} target The drop target
-                 * @param {Event} e The event object
-                 * @param {String} id The id of the dragged element
-                 * @method afterDragEnter
-                 */
-                this.afterDragEnter(target, e, id);
-            }
-        }
-    },
-
-    /**
-     * An empty function by default, but provided so that you can perform a custom action
-     * before the dragged item enters the drop target and optionally cancel the onDragEnter.
-     * @param {Ext.dd.DragDrop} target The drop target
-     * @param {Event} e The event object
-     * @param {String} id The id of the dragged element
-     * @return {Boolean} isValid True if the drag event is valid, else false to cancel
-     */
-    beforeDragEnter : function(target, e, id){
-        return true;
-    },
-
-    // private
-    alignElWithMouse: function() {
-        Ext.dd.DragSource.superclass.alignElWithMouse.apply(this, arguments);
-        this.proxy.sync();
-    },
-
-    // private
-    onDragOver : function(e, id){
-        var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id);
-        if(this.beforeDragOver(target, e, id) !== false){
-            if(target.isNotifyTarget){
-                var status = target.notifyOver(this, e, this.dragData);
-                this.proxy.setStatus(status);
-            }
-
-            if(this.afterDragOver){
-                /**
-                 * An empty function by default, but provided so that you can perform a custom action
-                 * while the dragged item is over the drop target by providing an implementation.
-                 * @param {Ext.dd.DragDrop} target The drop target
-                 * @param {Event} e The event object
-                 * @param {String} id The id of the dragged element
-                 * @method afterDragOver
-                 */
-                this.afterDragOver(target, e, id);
-            }
-        }
-    },
-
-    /**
-     * An empty function by default, but provided so that you can perform a custom action
-     * while the dragged item is over the drop target and optionally cancel the onDragOver.
-     * @param {Ext.dd.DragDrop} target The drop target
-     * @param {Event} e The event object
-     * @param {String} id The id of the dragged element
-     * @return {Boolean} isValid True if the drag event is valid, else false to cancel
-     */
-    beforeDragOver : function(target, e, id){
-        return true;
-    },
-
-    // private
-    onDragOut : function(e, id){
-        var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id);
-        if(this.beforeDragOut(target, e, id) !== false){
-            if(target.isNotifyTarget){
-                target.notifyOut(this, e, this.dragData);
-            }
-            this.proxy.reset();
-            if(this.afterDragOut){
-                /**
-                 * An empty function by default, but provided so that you can perform a custom action
-                 * after the dragged item is dragged out of the target without dropping.
-                 * @param {Ext.dd.DragDrop} target The drop target
-                 * @param {Event} e The event object
-                 * @param {String} id The id of the dragged element
-                 * @method afterDragOut
-                 */
-                this.afterDragOut(target, e, id);
-            }
-        }
-        this.cachedTarget = null;
-    },
-
-    /**
-     * An empty function by default, but provided so that you can perform a custom action before the dragged
-     * item is dragged out of the target without dropping, and optionally cancel the onDragOut.
-     * @param {Ext.dd.DragDrop} target The drop target
-     * @param {Event} e The event object
-     * @param {String} id The id of the dragged element
-     * @return {Boolean} isValid True if the drag event is valid, else false to cancel
-     */
-    beforeDragOut : function(target, e, id){
-        return true;
-    },
-    
-    // private
-    onDragDrop : function(e, id){
-        var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id);
-        if(this.beforeDragDrop(target, e, id) !== false){
-            if(target.isNotifyTarget){
-                if(target.notifyDrop(this, e, this.dragData)){ // valid drop?
-                    this.onValidDrop(target, e, id);
-                }else{
-                    this.onInvalidDrop(target, e, id);
-                }
-            }else{
-                this.onValidDrop(target, e, id);
-            }
-            
-            if(this.afterDragDrop){
-                /**
-                 * An empty function by default, but provided so that you can perform a custom action
-                 * after a valid drag drop has occurred by providing an implementation.
-                 * @param {Ext.dd.DragDrop} target The drop target
-                 * @param {Event} e The event object
-                 * @param {String} id The id of the dropped element
-                 * @method afterDragDrop
-                 */
-                this.afterDragDrop(target, e, id);
-            }
-        }
-    },
-
-    /**
-     * An empty function by default, but provided so that you can perform a custom action before the dragged
-     * item is dropped onto the target and optionally cancel the onDragDrop.
-     * @param {Ext.dd.DragDrop} target The drop target
-     * @param {Event} e The event object
-     * @param {String} id The id of the dragged element
-     * @return {Boolean} isValid True if the drag drop event is valid, else false to cancel
-     */
-    beforeDragDrop : function(target, e, id){
-        return true;
-    },
-
-    // private
-    onValidDrop : function(target, e, id){
-        this.hideProxy();
-    },
-
-    // private
-    getRepairXY : function(e, data){
-        return this.el.getXY();  
-    },
-
-    // private
-    onInvalidDrop : function(target, e, id){
-        this.beforeInvalidDrop(target, e, id);
-        if(this.cachedTarget){
-            if(this.cachedTarget.isNotifyTarget){
-                this.cachedTarget.notifyOut(this, e, this.dragData);
-            }
-            this.cacheTarget = null;
-        }
-        this.proxy.repair(this.getRepairXY(e, this.dragData), this.afterRepair, this);
-
-        if(this.afterInvalidDrop){
-            /**
-             * An empty function by default, but provided so that you can perform a custom action
-             * after an invalid drop has occurred by providing an implementation.
-             * @param {Event} e The event object
-             * @param {String} id The id of the dropped element
-             * @method afterInvalidDrop
-             */
-            this.afterInvalidDrop(e, id);
-        }
-    },
-
-    // private
-    afterRepair : function(){
-        if(Ext.enableFx){
-            this.el.highlight(this.hlColor || "c3daf9");
-        }
-        this.dragging = false;
-    },
-
-    /**
-     * An empty function by default, but provided so that you can perform a custom action after an invalid
-     * drop has occurred.
-     * @param {Ext.dd.DragDrop} target The drop target
-     * @param {Event} e The event object
-     * @param {String} id The id of the dragged element
-     * @return {Boolean} isValid True if the invalid drop should proceed, else false to cancel
-     */
-    beforeInvalidDrop : function(target, e, id){
-        return true;
-    },
-
-    // private
-    handleMouseDown : function(e){
-        if(this.dragging) {
-            return;
-        }
-        if(Ext.QuickTips){
-            Ext.QuickTips.disable();
-        }
-        var data = this.getDragData(e);
-        if(data && this.onBeforeDrag(data, e) !== false){
-            this.dragData = data;
-            this.proxy.stop();
-            Ext.dd.DragSource.superclass.handleMouseDown.apply(this, arguments);
-        } 
-    },
-
-    // private
-    handleMouseUp : function(e){
-        if(Ext.QuickTips){
-            Ext.QuickTips.enable();
-        }
-    },
-
-    /**
-     * An empty function by default, but provided so that you can perform a custom action before the initial
-     * drag event begins and optionally cancel it.
-     * @param {Object} data An object containing arbitrary data to be shared with drop targets
-     * @param {Event} e The event object
-     * @return {Boolean} isValid True if the drag event is valid, else false to cancel
-     */
-    onBeforeDrag : function(data, e){
-        return true;
-    },
-
-    /**
-     * An empty function by default, but provided so that you can perform a custom action once the initial
-     * drag event has begun.  The drag cannot be canceled from this function.
-     * @param {Number} x The x position of the click on the dragged object
-     * @param {Number} y The y position of the click on the dragged object
-     */
-    onStartDrag : Ext.emptyFn,
-
-    // private - YUI override
-    startDrag : function(x, y){
-        this.proxy.reset();
-        this.dragging = true;
-        this.proxy.update("");
-        this.onInitDrag(x, y);
-        this.proxy.show();
-    },
-
-    // private
-    onInitDrag : function(x, y){
-        var clone = this.el.dom.cloneNode(true);
-        clone.id = Ext.id(); // prevent duplicate ids
-        this.proxy.update(clone);
-        this.onStartDrag(x, y);
-        return true;
-    },
-
-    /**
-     * Returns the drag source's underlying {@link Ext.dd.StatusProxy}
-     * @return {Ext.dd.StatusProxy} proxy The StatusProxy
-     */
-    getProxy : function(){
-        return this.proxy;  
-    },
-
-    /**
-     * Hides the drag source's {@link Ext.dd.StatusProxy}
-     */
-    hideProxy : function(){
-        this.proxy.hide();  
-        this.proxy.reset(true);
-        this.dragging = false;
-    },
-
-    // private
-    triggerCacheRefresh : function(){
-        Ext.dd.DDM.refreshCache(this.groups);
-    },
-
-    // private - override to prevent hiding
-    b4EndDrag: function(e) {
-    },
-
-    // private - override to prevent moving
-    endDrag : function(e){
-        this.onEndDrag(this.dragData, e);
-    },
-
-    // private
-    onEndDrag : function(data, e){
-    },
-    
-    // private - pin to cursor
-    autoOffset : function(x, y) {
-        this.setDelta(-12, -20);
-    }    
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/DragZone.jss.html b/www/extras/extjs/docs/output/DragZone.jss.html deleted file mode 100644 index e6d32837a..000000000 --- a/www/extras/extjs/docs/output/DragZone.jss.html +++ /dev/null @@ -1,73 +0,0 @@ -DragZone.js

DragZone.js

/**
- * @class Ext.dd.DragZone
- * @extends Ext.dd.DragSource
- * This class provides a container DD instance that proxies for multiple child node sources.<br />
- * By default, this class requires that draggable child nodes are registered with {@link Ext.dd.Registry}.
- * @constructor
- * @param {String/HTMLElement/Element} el The container element
- * @param {Object} config
- */
-Ext.dd.DragZone = function(el, config){
-    Ext.dd.DragZone.superclass.constructor.call(this, el, config);
-    if(this.containerScroll){
-        Ext.dd.ScrollManager.register(this.el);
-    }
-};
-
-Ext.extend(Ext.dd.DragZone, Ext.dd.DragSource, {
-    /**
-     * @cfg {Boolean} containerScroll True to register this container with the Scrollmanager
-     * for auto scrolling during drag operations.
-     */
-// holder
-/***
-     * @cfg {String} hlColor The color to use when visually highlighting the drag source in the afterRepair
-     * method after a failed drop (defaults to "c3daf9" - light blue)
-     */
-// holder
-/***
-     * Called when a mousedown occurs in this container. Looks in {@link Ext.dd.Registry}
-     * for a valid target to drag based on the mouse down. Override this method
-     * to provide your own lookup logic (e.g. finding a child by class name). Make sure your returned
-     * object has a "ddel" attribute (with an HTML Element) for other functions to work.
-     * @param {EventObject} e The mouse down event
-     * @return {Object} The dragData
-     */
-    getDragData : function(e){
-        return Ext.dd.Registry.getHandleFromEvent(e);
-    },
-    
-    /**
-     * Called once drag threshold has been reached to initialize the proxy element. By default, it clones the
-     * this.dragData.ddel
-     * @param {Number} x The x position of the click on the dragged object
-     * @param {Number} y The y position of the click on the dragged object
-     * @return {Boolean} true to continue the drag, false to cancel
-     */
-    onInitDrag : function(x, y){
-        this.proxy.update(this.dragData.ddel.cloneNode(true));
-        this.onStartDrag(x, y);
-        return true;
-    },
-    
-    /**
-     * Called after a repair of an invalid drop. By default, highlights this.dragData.ddel 
-     */
-    afterRepair : function(){
-        if(Ext.enableFx){
-            Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor || "c3daf9");
-        }
-        this.dragging = false;
-    },
-
-    /**
-     * Called before a repair of an invalid drop to get the XY to animate to. By default returns
-     * the XY of this.dragData.ddel
-     * @param {EventObject} e The mouse up event
-     * @return {Array} The xy location (e.g. [100, 200])
-     */
-    getRepairXY : function(e){
-        return Ext.Element.fly(this.dragData.ddel).getXY();  
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/DropTarget.jss.html b/www/extras/extjs/docs/output/DropTarget.jss.html deleted file mode 100644 index 00c5c46cc..000000000 --- a/www/extras/extjs/docs/output/DropTarget.jss.html +++ /dev/null @@ -1,106 +0,0 @@ -DropTarget.js

DropTarget.js

/**
- * @class Ext.dd.DropTarget
- * @extends Ext.dd.DDTarget
- * A simple class that provides the basic implementation needed to make any element a drop target that can have
- * draggable items dropped onto it.  The drop has no effect until an implementation of notifyDrop is provided.
- * @constructor
- * @param {String/HTMLElement/Element} el The container element
- * @param {Object} config
- */
-Ext.dd.DropTarget = function(el, config){
-    this.el = Ext.get(el);
-    
-    Ext.apply(this, config);
-    
-    if(this.containerScroll){
-        Ext.dd.ScrollManager.register(this.el);
-    }
-    
-    Ext.dd.DropTarget.superclass.constructor.call(this, this.el.dom, this.ddGroup || this.group, 
-          {isTarget: true});
-
-};
-
-Ext.extend(Ext.dd.DropTarget, Ext.dd.DDTarget, {
-    /**
-     * @cfg {String} overClass
-     * The CSS class applied to the drop target element while the drag source is over it (defaults to "").
-     */
-// holder
-/***
-     * @cfg {String} dropAllowed
-     * The CSS class returned to the drag source when drop is allowed (defaults to "x-dd-drop-ok").
-     */
-    dropAllowed : "x-dd-drop-ok",
-    /**
-     * @cfg {String} dropNotAllowed
-     * The CSS class returned to the drag source when drop is not allowed (defaults to "x-dd-drop-nodrop").
-     */
-    dropNotAllowed : "x-dd-drop-nodrop",
-
-    // private
-    isTarget : true,
-
-    // private
-    isNotifyTarget : true,
-
-    /**
-     * The function a {@link Ext.dd.DragSource} calls once to notify this drop target that the source is now over the
-     * target.  This default implementation adds the CSS class specified by overClass (if any) to the drop element
-     * and returns the dropAllowed config value.  This method should be overridden if drop validation is required.
-     * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop target
-     * @param {Event} e The event
-     * @param {Object} data An object containing arbitrary data supplied by the drag source
-     * @return {String} status The CSS class that communicates the drop status back to the source so that the
-     * underlying {@link Ext.dd.StatusProxy} can be updated
-     */
-    notifyEnter : function(dd, e, data){
-        if(this.overClass){
-            this.el.addClass(this.overClass);
-        }
-        return this.dropAllowed;
-    },
-
-    /**
-     * The function a {@link Ext.dd.DragSource} calls continuously while it is being dragged over the target.
-     * This method will be called on every mouse movement while the drag source is over the drop target.
-     * This default implementation simply returns the dropAllowed config value.
-     * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop target
-     * @param {Event} e The event
-     * @param {Object} data An object containing arbitrary data supplied by the drag source
-     * @return {String} status The CSS class that communicates the drop status back to the source so that the
-     * underlying {@link Ext.dd.StatusProxy} can be updated
-     */
-    notifyOver : function(dd, e, data){
-        return this.dropAllowed;
-    },
-
-    /**
-     * The function a {@link Ext.dd.DragSource} calls once to notify this drop target that the source has been dragged
-     * out of the target without dropping.  This default implementation simply removes the CSS class specified by
-     * overClass (if any) from the drop element.
-     * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop target
-     * @param {Event} e The event
-     * @param {Object} data An object containing arbitrary data supplied by the drag source
-     */
-    notifyOut : function(dd, e, data){
-        if(this.overClass){
-            this.el.removeClass(this.overClass);
-        }
-    },
-
-    /**
-     * The function a {@link Ext.dd.DragSource} calls once to notify this drop target that the dragged item has
-     * been dropped on it.  This method has no default implementation and returns false, so you must provide an
-     * implementation that does something to process the drop event and returns true so that the drag source's
-     * repair action does not run.
-     * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop target
-     * @param {Event} e The event
-     * @param {Object} data An object containing arbitrary data supplied by the drag source
-     * @return {Boolean} True if the drop was valid, else false
-     */
-    notifyDrop : function(dd, e, data){
-        return false;
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/DropZone.jss.html b/www/extras/extjs/docs/output/DropZone.jss.html deleted file mode 100644 index 311cdd1ad..000000000 --- a/www/extras/extjs/docs/output/DropZone.jss.html +++ /dev/null @@ -1,201 +0,0 @@ -DropZone.js

DropZone.js

/**
- * @class Ext.dd.DropZone
- * @extends Ext.dd.DropTarget
- * This class provides a container DD instance that proxies for multiple child node targets.<br />
- * By default, this class requires that child nodes accepting drop are registered with {@link Ext.dd.Registry}.
- * @constructor
- * @param {String/HTMLElement/Element} el The container element
- * @param {Object} config
- */
-Ext.dd.DropZone = function(el, config){
-    Ext.dd.DropZone.superclass.constructor.call(this, el, config);
-};
-
-Ext.extend(Ext.dd.DropZone, Ext.dd.DropTarget, {
-    /**
-     * Returns a custom data object associated with the DOM node that is the target of the event.  By default
-     * this looks up the event target in the {@link Ext.dd.Registry}, although you can override this method to
-     * provide your own custom lookup.
-     * @param {Event} e The event
-     * @return {Object} data The custom data
-     */
-    getTargetFromEvent : function(e){
-        return Ext.dd.Registry.getTargetFromEvent(e);
-    },
-
-    /**
-     * Called internally when the DropZone determines that a {@link Ext.dd.DragSource} has entered a drop node
-     * that it has registered.  This method has no default implementation and should be overridden to provide
-     * node-specific processing if necessary.
-     * @param {Object} nodeData The custom data associated with the drop node (this is the same value returned from 
-     * {@link #getTargetFromEvent} for this node)
-     * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone
-     * @param {Event} e The event
-     * @param {Object} data An object containing arbitrary data supplied by the drag source
-     */
-    onNodeEnter : function(n, dd, e, data){
-        
-    },
-
-    /**
-     * Called internally while the DropZone determines that a {@link Ext.dd.DragSource} is over a drop node
-     * that it has registered.  The default implementation returns this.dropNotAllowed, so it should be
-     * overridden to provide the proper feedback.
-     * @param {Object} nodeData The custom data associated with the drop node (this is the same value returned from
-     * {@link #getTargetFromEvent} for this node)
-     * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone
-     * @param {Event} e The event
-     * @param {Object} data An object containing arbitrary data supplied by the drag source
-     * @return {String} status The CSS class that communicates the drop status back to the source so that the
-     * underlying {@link Ext.dd.StatusProxy} can be updated
-     */
-    onNodeOver : function(n, dd, e, data){
-        return this.dropAllowed;
-    },
-
-    /**
-     * Called internally when the DropZone determines that a {@link Ext.dd.DragSource} has been dragged out of
-     * the drop node without dropping.  This method has no default implementation and should be overridden to provide
-     * node-specific processing if necessary.
-     * @param {Object} nodeData The custom data associated with the drop node (this is the same value returned from
-     * {@link #getTargetFromEvent} for this node)
-     * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone
-     * @param {Event} e The event
-     * @param {Object} data An object containing arbitrary data supplied by the drag source
-     */
-    onNodeOut : function(n, dd, e, data){
-        
-    },
-
-    /**
-     * Called internally when the DropZone determines that a {@link Ext.dd.DragSource} has been dropped onto
-     * the drop node.  The default implementation returns false, so it should be overridden to provide the
-     * appropriate processing of the drop event and return true so that the drag source's repair action does not run.
-     * @param {Object} nodeData The custom data associated with the drop node (this is the same value returned from
-     * {@link #getTargetFromEvent} for this node)
-     * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone
-     * @param {Event} e The event
-     * @param {Object} data An object containing arbitrary data supplied by the drag source
-     * @return {Boolean} True if the drop was valid, else false
-     */
-    onNodeDrop : function(n, dd, e, data){
-        return false;
-    },
-
-    /**
-     * Called internally while the DropZone determines that a {@link Ext.dd.DragSource} is being dragged over it,
-     * but not over any of its registered drop nodes.  The default implementation returns this.dropNotAllowed, so
-     * it should be overridden to provide the proper feedback if necessary.
-     * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone
-     * @param {Event} e The event
-     * @param {Object} data An object containing arbitrary data supplied by the drag source
-     * @return {String} status The CSS class that communicates the drop status back to the source so that the
-     * underlying {@link Ext.dd.StatusProxy} can be updated
-     */
-    onContainerOver : function(dd, e, data){
-        return this.dropNotAllowed;
-    },
-
-    /**
-     * Called internally when the DropZone determines that a {@link Ext.dd.DragSource} has been dropped on it,
-     * but not on any of its registered drop nodes.  The default implementation returns false, so it should be
-     * overridden to provide the appropriate processing of the drop event if you need the drop zone itself to
-     * be able to accept drops.  It should return true when valid so that the drag source's repair action does not run.
-     * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone
-     * @param {Event} e The event
-     * @param {Object} data An object containing arbitrary data supplied by the drag source
-     * @return {Boolean} True if the drop was valid, else false
-     */
-    onContainerDrop : function(dd, e, data){
-        return false;
-    },
-
-    /**
-     * The function a {@link Ext.dd.DragSource} calls once to notify this drop zone that the source is now over
-     * the zone.  The default implementation returns this.dropNotAllowed and expects that only registered drop
-     * nodes can process drag drop operations, so if you need the drop zone itself to be able to process drops
-     * you should override this method and provide a custom implementation.
-     * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone
-     * @param {Event} e The event
-     * @param {Object} data An object containing arbitrary data supplied by the drag source
-     * @return {String} status The CSS class that communicates the drop status back to the source so that the
-     * underlying {@link Ext.dd.StatusProxy} can be updated
-     */
-    notifyEnter : function(dd, e, data){
-        return this.dropNotAllowed;
-    },
-
-    /**
-     * The function a {@link Ext.dd.DragSource} calls continuously while it is being dragged over the drop zone.
-     * This method will be called on every mouse movement while the drag source is over the drop zone.
-     * It will call {@link #onNodeOver} while the drag source is over a registered node, and will also automatically
-     * delegate to the appropriate node-specific methods as necessary when the drag source enters and exits
-     * registered nodes ({@link #onNodeEnter}, {@link #onNodeOut}). If the drag source is not currently over a
-     * registered node, it will call {@link #onContainerOver}.
-     * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone
-     * @param {Event} e The event
-     * @param {Object} data An object containing arbitrary data supplied by the drag source
-     * @return {String} status The CSS class that communicates the drop status back to the source so that the
-     * underlying {@link Ext.dd.StatusProxy} can be updated
-     */
-    notifyOver : function(dd, e, data){
-        var n = this.getTargetFromEvent(e);
-        if(!n){ // not over valid drop target
-            if(this.lastOverNode){
-                this.onNodeOut(this.lastOverNode, dd, e, data);
-                this.lastOverNode = null;
-            }
-            return this.onContainerOver(dd, e, data);
-        }
-        if(this.lastOverNode != n){
-            if(this.lastOverNode){
-                this.onNodeOut(this.lastOverNode, dd, e, data);
-            }
-            this.onNodeEnter(n, dd, e, data);
-            this.lastOverNode = n;
-        }
-        return this.onNodeOver(n, dd, e, data);
-    },
-
-    /**
-     * The function a {@link Ext.dd.DragSource} calls once to notify this drop zone that the source has been dragged
-     * out of the zone without dropping.  If the drag source is currently over a registered node, the notification
-     * will be delegated to {@link #onNodeOut} for node-specific handling, otherwise it will be ignored.
-     * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop target
-     * @param {Event} e The event
-     * @param {Object} data An object containing arbitrary data supplied by the drag zone
-     */
-    notifyOut : function(dd, e, data){
-        if(this.lastOverNode){
-            this.onNodeOut(this.lastOverNode, dd, e, data);
-            this.lastOverNode = null;
-        }
-    },
-
-    /**
-     * The function a {@link Ext.dd.DragSource} calls once to notify this drop zone that the dragged item has
-     * been dropped on it.  The drag zone will look up the target node based on the event passed in, and if there
-     * is a node registered for that event, it will delegate to {@link #onNodeDrop} for node-specific handling,
-     * otherwise it will call {@link #onContainerDrop}.
-     * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone
-     * @param {Event} e The event
-     * @param {Object} data An object containing arbitrary data supplied by the drag source
-     * @return {Boolean} True if the drop was valid, else false
-     */
-    notifyDrop : function(dd, e, data){
-        if(this.lastOverNode){
-            this.onNodeOut(this.lastOverNode, dd, e, data);
-            this.lastOverNode = null;
-        }
-        var n = this.getTargetFromEvent(e);
-        return n ?
-            this.onNodeDrop(n, dd, e, data) :
-            this.onContainerDrop(dd, e, data);
-    },
-
-    // private
-    triggerCacheRefresh : function(){
-        Ext.dd.DDM.refreshCache(this.groups);
-    }  
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Editor.jss.html b/www/extras/extjs/docs/output/Editor.jss.html deleted file mode 100644 index af3e9b3ef..000000000 --- a/www/extras/extjs/docs/output/Editor.jss.html +++ /dev/null @@ -1,271 +0,0 @@ -Editor.js

Editor.js

/**
- * @class Ext.Editor
- * @extends Ext.Component
- * A base editor field that handles displaying/hiding on demand and has some built-in sizing and event handling logic.
- * @constructor
- * Create a new Editor
- * @param {Object} config The config object
- */
-Ext.Editor = function(field, config){
-    Ext.Editor.superclass.constructor.call(this, config);
-    this.field = field;
-    this.addEvents({
-        /**
-	     * @event beforestartedit
-	     * Fires when editing is initiated, but before the value changes.  Editing can be canceled by returning
-	     * false from the handler of this event.
-	     * @param {Editor} this
-	     * @param {Ext.Element} boundEl The underlying element bound to this editor
-	     * @param {Mixed} value The field value being set
-	     */
-        "beforestartedit" : true,
-        /**
-	     * @event startedit
-	     * Fires when this editor is displayed
-	     * @param {Ext.Element} boundEl The underlying element bound to this editor
-	     * @param {Mixed} value The starting field value
-	     */
-        "startedit" : true,
-        /**
-	     * @event beforecomplete
-	     * Fires after a change has been made to the field, but before the change is reflected in the underlying
-	     * field.  Saving the change to the field can be canceled by returning false from the handler of this event.
-	     * Note that if the value has not changed and ignoreNoChange = true, the editing will still end but this
-	     * event will not fire since no edit actually occurred.
-	     * @param {Editor} this
-	     * @param {Mixed} value The current field value
-	     * @param {Mixed} startValue The original field value
-	     */
-        "beforecomplete" : true,
-        /**
-	     * @event complete
-	     * Fires after editing is complete and any changed value has been written to the underlying field.
-	     * @param {Editor} this
-	     * @param {Mixed} value The current field value
-	     * @param {Mixed} startValue The original field value
-	     */
-        "complete" : true,
-        /**
-	     * @event specialkey
-	     * Fires when special key is pressed
-	     */
-        "specialkey" : true
-    });
-};
-
-Ext.extend(Ext.Editor, Ext.Component, {
-    /**
-     * @cfg {Boolean/String} autosize
-     * True for the editor to automatically adopt the size of the underlying field, "width" to adopt the width only,
-     * or "height" to adopt the height only (defaults to false)
-     */
-// holder
-/***
-     * @cfg {Boolean} revertInvalid
-     * True to automatically revert the field value and cancel the edit when the user completes an edit and the field
-     * validation fails (defaults to true)
-     */
-// holder
-/***
-     * @cfg {Boolean} ignoreNoChange
-     * True to skip the the edit completion process (no save, no events fired) if the user completes an edit and
-     * the value has not changed (defaults to false).  Applies only to string values - edits for other data types
-     * will never be ignored.
-     */
-// holder
-/***
-     * @cfg {Mixed} value
-     * The data value of the underlying field (defaults to "")
-     */
-    value : "",
-    /**
-     * @cfg {String} alignment
-     * The position to align to (see {@link Ext.Element#alignTo} for more details, defaults to "c-c?").
-     */
-    alignment: "c-c?",
-    /**
-     * @cfg {Boolean/String} shadow "sides" for sides/bottom only, "frame" for 4-way shadow, and "drop"
-     * for bottom-right shadow (defaults to "frame")
-     */
-    shadow : "frame",
-
-    // private
-    updateEl : false,
-
-    // private
-    onRender : function(ct, position){
-        this.el = new Ext.Layer({
-            shadow: this.shadow,
-            cls: "x-editor",
-            parentEl : ct,
-            shim : this.shim,
-            shadowOffset:3,
-            id: this.id
-        });
-        this.el.setStyle("overflow", Ext.isGecko ? "auto" : "hidden");
-        this.field.render(this.el);
-        if(Ext.isGecko){
-            this.field.el.dom.setAttribute('autocomplete', 'off');
-        }
-        this.field.show();
-        this.field.on("blur", this.onBlur, this);
-        this.relayEvents(this.field,  ["specialkey"]);
-        if(this.field.grow){
-            this.field.on("autosize", this.el.sync,  this.el, {delay:1});
-        }
-    },
-
-    // private
-    startEdit : function(el, value){
-        if(this.editing){
-            this.completeEdit();
-        }
-        this.boundEl = Ext.get(el);
-        var v = value !== undefined ? value : this.boundEl.dom.innerHTML;
-        if(!this.rendered){
-            this.render(this.parentEl || document.body);
-        }
-        if(this.fireEvent("beforestartedit", this, this.boundEl, v) === false){
-            return;
-        }
-        this.startValue = v;
-        this.field.setValue(v);
-        if(this.autoSize){
-            var sz = this.boundEl.getSize();
-            switch(this.autoSize){
-                case "width":
-                this.setSize(sz.width,  "");
-                break;
-                case "height":
-                this.setSize("",  sz.height);
-                break;
-                default:
-                this.setSize(sz.width,  sz.height);
-            }
-        }
-        this.el.alignTo(this.boundEl, this.alignment);
-        this.editing = true;
-        if(Ext.QuickTips){
-            Ext.QuickTips.disable();
-        }
-        this.show();
-    },
-
-    /**
-     * Sets the height and width of this editor
-     * @param {Number} width The new width
-     * @param {Number} height The new height
-     */
-    setSize : function(w, h){
-        this.field.setSize(w, h);
-        if(this.el){
-            this.el.sync();
-        }
-    },
-
-    /**
-     * Realigns the editor to the bound field based on the current alignment config value.
-     */
-    realign : function(){
-        this.el.alignTo(this.boundEl, this.alignment);
-    },
-
-    /**
-     * Ends the editing process, persist the changed value to the underlying field and hides the editor.
-     * @param {Boolean} remainVisible Override the default behavior and keep the editor visible after edit (defaults to false)
-     */
-    completeEdit : function(remainVisible){
-        if(!this.editing){
-            return;
-        }
-        var v = this.getValue();
-        if(this.revertInvalid !== false && !this.field.isValid()){
-            v = this.startValue;
-            this.cancelEdit(true);
-        }
-        if(String(v) == String(this.startValue) && this.ignoreNoChange){
-            this.editing = false;
-            this.hide();
-            return;
-        }
-        if(this.fireEvent("beforecomplete", this, v, this.startValue) !== false){
-            this.editing = false;
-            if(this.updateEl && this.boundEl){
-                this.boundEl.update(v);
-            }
-            if(remainVisible !== true){
-                this.hide();
-            }
-            this.fireEvent("complete", this, v, this.startValue);
-        }
-    },
-
-    // private
-    onShow : function(){
-        this.el.show();
-        if(this.hideEl !== false){
-            this.boundEl.hide();
-        }
-        this.field.show();
-        this.field.focus();
-        this.fireEvent("startedit", this.boundEl, this.startValue);
-    },
-
-    /**
-     * Cancels the editing process and hides the editor without persisting any changes.  The field value will be
-     * reverted to the original starting value.
-     * @param {Boolean} remainVisible Override the default behavior and keep the editor visible after
-     * cancel (defaults to false)
-     */
-    cancelEdit : function(remainVisible){
-        if(this.editing){
-            this.setValue(this.startValue);
-            if(remainVisible !== true){
-                this.hide();
-            }
-        }
-    },
-
-    // private
-    onBlur : function(){
-        if(this.allowBlur !== true && this.editing){
-            this.completeEdit();
-        }
-    },
-
-    // private
-    onHide : function(){
-        if(this.editing){
-            this.completeEdit();
-            return;
-        }
-        this.field.blur();
-        if(this.field.collapse){
-            this.field.collapse();
-        }
-        this.el.hide();
-        if(this.hideEl !== false){
-            this.boundEl.show();
-        }
-        if(Ext.QuickTips){
-            Ext.QuickTips.enable();
-        }
-    },
-
-    /**
-     * Sets the data value of the editor
-     * @param {Mixed} value Any valid value supported by the underlying field
-     */
-    setValue : function(v){
-        this.field.setValue(v);
-    },
-
-    /**
-     * Gets the data value of the editor
-     * @return {Mixed} value The data value
-     */
-    getValue : function(){
-        return this.field.getValue();
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/EditorGrid.jss.html b/www/extras/extjs/docs/output/EditorGrid.jss.html deleted file mode 100644 index 0b02c77af..000000000 --- a/www/extras/extjs/docs/output/EditorGrid.jss.html +++ /dev/null @@ -1,156 +0,0 @@ -EditorGrid.js

EditorGrid.js

/**
- * @class Ext.grid.EditorGrid
- * @extends Ext.grid.Grid
- * Class for creating and editable grid.
- * @param {String/HTMLElement/Ext.Element} container The element into which this grid will be rendered - 
- * The container MUST have some type of size defined for the grid to fill. The container will be 
- * automatically set to position relative if it isn't already.
- * @param {Object} dataSource The data model to bind to
- * @param {Object} colModel The column model with info about this grid's columns
- */
-Ext.grid.EditorGrid = function(container, config){
-    Ext.grid.EditorGrid.superclass.constructor.call(this, container, config);
-    this.container.addClass("xedit-grid");
-
-    if(!this.selModel){
-        this.selModel = new Ext.grid.CellSelectionModel();
-    }
-
-    this.activeEditor = null;
-
-	this.addEvents({
-	    /**
-	     * @event beforeedit
-	     * Fires before cell editing is triggered. The edit event object has the following properties <br />
-	     * <ul style="padding:5px;padding-left:16px;">
-	     * <li>grid - This grid</li>
-	     * <li>record - The record being edited</li>
-	     * <li>field - The field name being edited</li>
-	     * <li>value - The value for the field being edited.</li>
-	     * <li>row - The grid row index</li>
-	     * <li>column - The grid column index</li>
-	     * <li>cancel - Set this to true to cancel the edit or return false from your handler.</li>
-	     * </ul>
-	     * @param {Object} e An edit event (see above for description)
-	     */
-	    "beforeedit" : true,
-	    /**
-	     * @event afteredit
-	     * Fires after a cell is edited. <br />
-	     * <ul style="padding:5px;padding-left:16px;">
-	     * <li>grid - This grid</li>
-	     * <li>record - The record being edited</li>
-	     * <li>field - The field name being edited</li>
-	     * <li>value - The value being set</li>
-	     * <li>originalValue - The original value for the field, before the edit.</li>
-	     * <li>row - The grid row index</li>
-	     * <li>column - The grid column index</li>
-	     * </ul>
-	     * @param {Object} e An edit event (see above for description)
-	     */
-	    "afteredit" : true,
-	    /**
-	     * @event validateedit
-	     * Fires after a cell is edited, but before the value is set in the record. Return false
-	     * to cancel the change. The edit event object has the following properties <br />
-	     * <ul style="padding:5px;padding-left:16px;">
-	     * <li>grid - This grid</li>
-	     * <li>record - The record being edited</li>
-	     * <li>field - The field name being edited</li>
-	     * <li>value - The value being set</li>
-	     * <li>originalValue - The original value for the field, before the edit.</li>
-	     * <li>row - The grid row index</li>
-	     * <li>column - The grid column index</li>
-	     * <li>cancel - Set this to true to cancel the edit or return false from your handler.</li>
-	     * </ul>
-	     * @param {Object} e An edit event (see above for description)
-	     */
-	    "validateedit" : true
-	});
-    this.on("bodyscroll", this.stopEditing,  this);
-    this.on(this.clicksToEdit == 1 ? "cellclick" : "celldblclick", this.onCellDblClick,  this);
-};
-
-Ext.extend(Ext.grid.EditorGrid, Ext.grid.Grid, {
-    isEditor : true,
-    clicksToEdit: 2,
-    trackMouseOver: false, // causes very odd FF errors
-
-    onCellDblClick : function(g, row, col){
-        this.startEditing(row, col);
-    },
-
-    onEditComplete : function(ed, value, startValue){
-        this.editing = false;
-        this.activeEditor = null;
-        ed.un("specialkey", this.selModel.onEditorKey, this.selModel);
-        if(String(value) != String(startValue)){
-            var r = ed.record;
-            var field = this.colModel.getDataIndex(ed.col);
-            var e = {
-                grid: this,
-                record: r,
-                field: field,
-                originalValue: startValue,
-                value: value,
-                row: ed.row,
-                column: ed.col,
-                cancel:false
-            };
-            if(this.fireEvent("validateedit", e) !== false && !e.cancel){
-                r.set(field, e.value);
-                delete e.cancel;
-                this.fireEvent("afteredit", e);
-            }
-        }
-        this.view.focusCell(ed.row, ed.col);
-    },
-
-    /**
-     * Starts editing the specified for the specified row/column
-     * @param {Number} rowIndex
-     * @param {Number} colIndex
-     */
-    startEditing : function(row, col){
-        this.stopEditing();
-        if(this.colModel.isCellEditable(col, row)){
-            this.view.focusCell(row, col);
-            var r = this.dataSource.getAt(row);
-            var field = this.colModel.getDataIndex(col);
-            var e = {
-                grid: this,
-                record: r,
-                field: field,
-                value: r.data[field],
-                row: row,
-                column: col,
-                cancel:false
-            };
-            if(this.fireEvent("beforeedit", e) !== false && !e.cancel){
-                this.editing = true; // flag for buffering of orphan key strokes
-                (function(){ // complex but required for focus issues in safari, ie and opera
-                    var ed = this.colModel.getCellEditor(col, row);
-                    ed.row = row;
-                    ed.col = col;
-                    ed.record = r;
-                    ed.on("complete", this.onEditComplete, this, {single: true});
-                    ed.on("specialkey", this.selModel.onEditorKey, this.selModel);
-                    this.activeEditor = ed;
-                    var v = r.data[field];
-                    ed.startEdit(this.view.getCell(row, col), v);
-                }).defer(50, this);
-            }
-        }
-    },
-        
-    /**
-     * Stops any active editing
-     */
-    stopEditing : function(){
-        if(this.activeEditor){
-            this.activeEditor.completeEdit();
-        }
-        this.activeEditor = null;
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Element.jss.html b/www/extras/extjs/docs/output/Element.jss.html deleted file mode 100644 index 1e84eb80e..000000000 --- a/www/extras/extjs/docs/output/Element.jss.html +++ /dev/null @@ -1,2800 +0,0 @@ -Element.js

Element.js

/**
- * @class Ext.Element
- * Represents an Element in the DOM.<br><br>
- * Usage:<br>
-<pre><code>
-var el = Ext.get("my-div");
-
-// or with getEl
-var el = getEl("my-div");
-
-// or with a DOM element
-var el = Ext.get(myDivElement);
-</code></pre>
- * Using Ext.get() or getEl() instead of calling the constructor directly ensures you get the same object 
- * each call instead of constructing a new one.<br><br>
- * <b>Animations</b><br />
- * Many of the functions for manipulating an element have an optional "animate" parameter. The animate parameter
- * should either be a boolean (true) or an object literal with animation options. The animation options are:
-<pre>
-Option    Default   Description
---------- --------  ---------------------------------------------
-duration  .35       The duration of the animation in seconds
-easing    easeOut   The YUI easing method
-callback  none      A function to execute when the anim completes
-scope     this      The scope (this) of the callback function
-</pre>
-* Also, the Anim object being used for the animation will be set on your options object as "anim", which allows you to stop or 
-* manipulate the animation. Here's an example:
-<pre><code>
-var el = Ext.get("my-div");
-
-// no animation
-el.setWidth(100);
-
-// default animation
-el.setWidth(100, true);
-
-// animation with some options set
-el.setWidth(100, {
-    duration: 1, 
-    callback: this.foo, 
-    scope: this
-});
-
-// using the "anim" property to get the Anim object
-var opt = {
-    duration: 1, 
-    callback: this.foo, 
-    scope: this
-};
-el.setWidth(100, opt);
-...
-if(opt.anim.isAnimated()){
-    opt.anim.stop();
-}
-</code></pre>
-* <b> Composite (Collections of) Elements</b><br />
- * For working with collections of Elements, see <a href="Ext.CompositeElement.html">Ext.CompositeElement</a>
- * @constructor Create a new Element directly.
- * @param {String/HTMLElement} element
- * @param {Boolean} forceNew (optional) By default the constructor checks to see if there is already an instance of this element in the cache and if there is it returns the same instance. This will skip that check (useful for extending this class).
- */
-(function(){
-var D = Ext.lib.Dom;
-var E = Ext.lib.Event;
-var A = Ext.lib.Anim;
-    
-// local style camelizing for speed
-var propCache = {};
-var camelRe = /(-[a-z])/gi;
-var camelFn = function(m, a){ return a.charAt(1).toUpperCase(); };
-var view = document.defaultView;
-
-Ext.Element = function(element, forceNew){
-    var dom = typeof element == "string" ?
-            document.getElementById(element) : element;
-    if(!dom){ // invalid id/element
-        return null;
-    }
-    if(!forceNew && Ext.Element.cache[dom.id]){ // element object already exists
-        return Ext.Element.cache[dom.id];
-    }
-    /**
-     * The DOM element
-     * @type HTMLElement
-     */
-    this.dom = dom;
-    
-    /**
-     * The DOM element ID
-     * @type String
-     */
-    this.id = dom.id || Ext.id(dom);
-};
-
-var El = Ext.Element;
-
-El.prototype = {
-    /**
-     * The element's default display mode @type String
-     */
-    originalDisplay : "",
-    
-    visibilityMode : 1,
-    /**
-     * The default unit to append to CSS values where a unit isn't provided (Defaults to px).
-     * @type String
-     */
-    defaultUnit : "px",
-    /**
-     * Sets the elements visibility mode. When setVisible() is called it
-     * will use this to determine whether to set the visibility or the display property.
-     * @param visMode Element.VISIBILITY or Element.DISPLAY
-     * @return {Ext.Element} this
-     */
-    setVisibilityMode : function(visMode){
-        this.visibilityMode = visMode;
-        return this;
-    },
-    /**
-     * Convenience method for setVisibilityMode(Element.DISPLAY)
-     * @param {String} display (optional) What to set display to when visible
-     * @return {Ext.Element} this
-     */
-    enableDisplayMode : function(display){
-        this.setVisibilityMode(El.DISPLAY);
-        if(typeof display != "undefined") this.originalDisplay = display;
-        return this;
-    },
-    
-    /**
-     * Looks at this node and then at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:first-child)
-     * @param {String} ss The simple selector to test
-     * @param {Number/String/HTMLElement/Element} maxDepth (optional) The max depth to
-            search as a number or element (defaults to 10 || document.body)
-     * @param {Boolean} returnEl (optional) True to return a Ext.Element object instead of DOM node
-     * @return {HTMLElement}
-     */
-    findParent : function(simpleSelector, maxDepth, returnEl){
-        var p = this.dom, b = document.body, depth = 0, dq = Ext.DomQuery, stopEl;
-        maxDepth = maxDepth || 50;
-        if(typeof maxDepth != "number"){
-            stopEl = Ext.getDom(maxDepth);
-            maxDepth = 10;
-        }
-        while(p && p.nodeType == 1 && depth < maxDepth && p != b && p != stopEl){
-            if(dq.is(p, simpleSelector)){
-                return returnEl ? Ext.get(p) : p;
-            }
-            depth++;
-            p = p.parentNode;
-        }
-        return null;
-    },
-
-
-    /**
-     * Looks at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:first-child)
-     * @param {String} ss The simple selector to test
-     * @param {Number/String/HTMLElement/Element} maxDepth (optional) The max depth to
-            search as a number or element (defaults to 10 || document.body)
-     * @param {Boolean} returnEl (optional) True to return a Ext.Element object instead of DOM node
-     * @return {HTMLElement}
-     */
-    findParentNode : function(simpleSelector, maxDepth, returnEl){
-        var p = Ext.fly(this.dom.parentNode, '_internal');
-        return p ? p.findParent(simpleSelector, maxDepth, returnEl) : null;
-    },
-
-    /**
-     * Walks up the dom looking for a parent node that matches the passed simple selector (e.g. div.some-class or span:first-child).
-     * This is a shortcut for findParentNode() that always returns an Ext.Element.
-     * @param {String} ss The simple selector to test
-     * @param {Number/String/HTMLElement/Element} maxDepth (optional) The max depth to
-            search as a number or element (defaults to 10 || document.body)
-     * @return {Ext.Element}
-     */
-    up : function(simpleSelector, maxDepth){
-        return this.findParentNode(simpleSelector, maxDepth, true);
-    },
-
-
-
-    /**
-     * Returns true if this element matches the passed simple selector (e.g. div.some-class or span:first-child)
-     * @param {String} ss The simple selector to test
-     * @return {Boolean}
-     */
-    is : function(simpleSelector){
-        return Ext.DomQuery.is(this.dom, simpleSelector);    
-    },
-    
-    /**
-     * Perform  animation on this element.
-     * @param {Object} args The YUI animation control args
-     * @param {Float} duration (optional) How long the animation lasts. (Defaults to .35 seconds)
-     * @param {Function} onComplete (optional) Function to call when animation completes.
-     * @param {String} easing (optional) Easing method to use. (Defaults to 'easeOut')
-     * @param {String} animType (optional) 'run' is the default. Can be 'color', 'motion', or 'scroll'
-     * @return {Ext.Element} this
-     */
-    animate : function(args, duration, onComplete, easing, animType){
-        this.anim(args, {duration: duration, callback: onComplete, easing: easing}, animType);
-        return this;
-    },
-    
-    /*
-     * @private Internal animation call
-     */
-    anim : function(args, opt, animType, defaultDur, defaultEase, cb){
-        animType = animType || 'run';
-        opt = opt || {};
-        var anim = Ext.lib.Anim[animType](
-            this.dom, args,
-            (opt.duration || defaultDur) || .35,
-            (opt.easing || defaultEase) || 'easeOut',
-            function(){
-                Ext.callback(cb, this);
-                Ext.callback(opt.callback, opt.scope || this, [this, opt]);
-            },
-            this
-        );
-        opt.anim = anim;
-        return anim;
-    },
-    
-    // private legacy anim prep
-    preanim : function(a, i){
-        return !a[i] ? false : (typeof a[i] == "object" ? a[i]: {duration: a[i+1], callback: a[i+2], easing: a[i+3]});
-    },
-    
-    /**
-     * Removes worthless text nodes
-     * @param {Boolean} forceReclean (optional) By default the element
-     * keeps track if it has been cleaned already so
-     * you can call this over and over. However, if you update the element and 
-     * need to force a reclean, you can pass true.
-     */
-    clean : function(forceReclean){
-        if(this.isCleaned && forceReclean !== true){
-            return this;
-        }
-        var ns = /\S/;
-        var d = this.dom, n = d.firstChild, ni = -1;
- 	    while(n){
- 	        var nx = n.nextSibling;
- 	        if(n.nodeType == 3 && !ns.test(n.nodeValue)){
- 	            d.removeChild(n);
- 	        }else{
- 	            n.nodeIndex = ++ni;
- 	        }
- 	        n = nx;
- 	    }
- 	    this.isCleaned = true;
- 	    return this;
- 	},    
-
-    calcOffsetsTo : function(el){
-        el = Ext.get(el), d = el.dom;
-        var restorePos = false;
-        if(el.getStyle('position') == 'static'){
-            el.position('relative');
-            restorePos = true;
-        }
-        var x = 0, y =0;
-        var op = this.dom;
-        while(op && op != d && op.tagName != 'HTML'){
-            x+= op.offsetLeft;
-            y+= op.offsetTop;
-            op = op.offsetParent;
-        }
-        if(restorePos){
-            el.position('static');
-        }
-        return [x, y];
-    },
-
-    /**
-     * Scrolls this element into view within the passed container.
-     * @param {String/HTMLElement/Element} container (optional) The container element to scroll (defaults to document.body)
-     * @param {Boolean} hscroll (optional) false to disable horizontal scroll
-     * @return {Ext.Element} this
-     */
-    scrollIntoView : function(container, hscroll){
-        var c = Ext.getDom(container) || document.body;
-        var el = this.dom;
-
-        var o = this.calcOffsetsTo(c),
-            l = o[0],
-            t = o[1],
-            b = t+el.offsetHeight,
-            r = l+el.offsetWidth;
-        
-        var ch = c.clientHeight;
-        var ct = parseInt(c.scrollTop, 10);
-        var cl = parseInt(c.scrollLeft, 10);
-        var cb = ct + ch;
-        var cr = cl + c.clientWidth;
-
-        if(t < ct){
-        	c.scrollTop = t;
-        }else if(b > cb){
-            c.scrollTop = b-ch;
-        }
-
-        if(hscroll !== false){
-            if(l < cl){
-                c.scrollLeft = l;
-            }else if(r > cr){
-                c.scrollLeft = r-c.clientWidth;
-            }
-        }
-        return this;
-    },
-
-    scrollChildIntoView : function(child){
-        Ext.fly(child, '_scrollChildIntoView').scrollIntoView(this);
-    },
-
-    /**
-     * Measures the elements content height and updates height to match. Note, this function uses setTimeout and 
-     * the new height may not be available immediately.
-     * @param {Boolean} animate (optional) Animate the transition (Default is false)
-     * @param {Float} duration (optional) Length of the animation. (Defaults to .35 seconds)
-     * @param {Function} onComplete (optional) Function to call when animation completes.
-     * @param {String} easing (optional) Easing method to use.
-     * @return {Ext.Element} this
-     */
-    autoHeight : function(animate, duration, onComplete, easing){
-        var oldHeight = this.getHeight();
-        this.clip();
-        this.setHeight(1); // force clipping
-        setTimeout(function(){
-            var height = parseInt(this.dom.scrollHeight, 10); // parseInt for Safari
-            if(!animate){
-                this.setHeight(height);
-                this.unclip();
-                if(typeof onComplete == "function"){
-                    onComplete();
-                }
-            }else{
-                this.setHeight(oldHeight); // restore original height
-                this.setHeight(height, animate, duration, function(){
-                    this.unclip();
-                    if(typeof onComplete == "function") onComplete();
-                }.createDelegate(this), easing);
-            }
-        }.createDelegate(this), 0);
-        return this;
-    },
-    
-    /**
-     * Returns true if this element is an ancestor of the passed element
-     * @param {HTMLElement/String} el
-     * @return {Boolean}
-     */
-    contains : function(el){
-        if(!el){return false;}
-        return D.isAncestor(this.dom, el.dom ? el.dom : el);
-    },
-    
-    /**
-     * Checks whether the element is currently visible using both visibility and display properties.
-     * @param {Boolean} deep True to walk the dom and see if parent elements are hidden.
-     * @return {Boolean} true if the element is currently visible 
-     */
-    isVisible : function(deep) {
-        var vis = !(this.getStyle("visibility") == "hidden" || this.getStyle("display") == "none");
-        if(deep !== true || !vis){
-            return vis;
-        }
-        var p = this.dom.parentNode;
-        while(p && p.tagName.toLowerCase() != "body"){
-            if(!Ext.fly(p, '_isVisible').isVisible()){
-                return false;
-            }
-            p = p.parentNode;
-        }
-        return true;
-    },
-    
-    /**
-     * Creates a CompositeElement for child nodes based on the passed CSS selector (the selector should not contain an id)
-     * @param {String} selector The CSS selector
-     * @param {Boolean} unique true to create a unique Ext.Element for each child (defaults to a shared flyweight object)
-     * @return {CompositeElement/CompositeElementLite} The composite element
-     */
-    select : function(selector, unique){
-        return El.select("#" + Ext.id(this.dom) + " " + selector, unique);
-    },
-    
-    /**
-     * Selects child nodes based on the passed CSS selector (the selector should not contain an id)
-     * @param {String} selector The CSS selector
-     * @return {Array} An array of the matched nodes
-     */
-    query : function(selector, unique){
-        return Ext.DomQuery.select("#" + Ext.id(this.dom) + " " + selector);
-    },
-    
-    /**
-     * Selects a single child based on the passed CSS selector (the selector should not contain an id)
-     * @param {String} selector The CSS selector
-     * @param {Boolean} returnDom true to return the DOM node instead of Ext.Element
-     * @return {Element} The element
-     */
-    child : function(selector, returnDom){
-        var n = Ext.DomQuery.selectNode("#" + Ext.id(this.dom) + " " + selector);
-        return returnDom ? n : Ext.get(n);
-    },
-
-    /**
-     * Selects a single *direct* child based on the passed CSS selector (the selector should not contain an id)
-     * @param {String} selector The CSS selector
-     * @param {Boolean} returnDom true to return the DOM node instead of Ext.Element
-     * @return {Element} The element
-     */
-    down : function(selector, returnDom){
-        var n = Ext.DomQuery.selectNode("#" + Ext.id(this.dom) + " > " + selector);
-        return returnDom ? n : Ext.get(n);
-    },
-
-    /**
-     * Initializes a Ext.dd.DD object for this element.
-     * @param {String} group The group the DD object is member of
-     * @param {Object} config The DD config object
-     * @param {Object} overrides An object containing methods to override/implement on the DD object
-     * @return {Ext.dd.DD} The DD object
-     */
-    initDD : function(group, config, overrides){
-        var dd = new Ext.dd.DD(Ext.id(this.dom), group, config);
-        return Ext.apply(dd, overrides);
-    },
-   
-    /**
-     * Initializes a Ext.dd.DDProxy object for this element.
-     * @param {String} group The group the DDProxy object is member of
-     * @param {Object} config The DDProxy config object
-     * @param {Object} overrides An object containing methods to override/implement on the DDProxy object
-     * @return {Ext.dd.DDProxy} The DDProxy object
-     */
-    initDDProxy : function(group, config, overrides){
-        var dd = new Ext.dd.DDProxy(Ext.id(this.dom), group, config);
-        return Ext.apply(dd, overrides);
-    },
-   
-    /**
-     * Initializes a Ext.dd.DDTarget object for this element.
-     * @param {String} group The group the DDTarget object is member of
-     * @param {Object} config The DDTarget config object
-     * @param {Object} overrides An object containing methods to override/implement on the DDTarget object
-     * @return {Ext.dd.DDTarget} The DDTarget object
-     */
-    initDDTarget : function(group, config, overrides){
-        var dd = new Ext.dd.DDTarget(Ext.id(this.dom), group, config);
-        return Ext.apply(dd, overrides);
-    },
-   
-    /**
-     * Sets the visibility of the element (see details). If the visibilityMode is set to Element.DISPLAY, it will use 
-     * the display property to hide the element, otherwise it uses visibility. The default is to hide and show using the visibility property.
-     * @param {Boolean} visible Whether the element is visible
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-     */
-     setVisible : function(visible, animate){
-        if(!animate || !A){
-            if(this.visibilityMode == El.DISPLAY){
-                this.setDisplayed(visible);
-            }else{
-                this.fixDisplay();
-                this.dom.style.visibility = visible ? "visible" : "hidden";
-            }
-        }else{
-            // closure for composites
-            var dom = this.dom;
-            var visMode = this.visibilityMode;
-            if(visible){
-                this.setOpacity(.01);
-                this.setVisible(true);
-            }
-            this.anim({opacity: { to: (visible?1:0) }},
-                  this.preanim(arguments, 1),
-                  null, .35, 'easeIn', function(){
-                     if(!visible){
-                         if(visMode == El.DISPLAY){
-                             dom.style.display = "none";
-                         }else{
-                             dom.style.visibility = "hidden";
-                         }
-                         Ext.get(dom).setOpacity(1);
-                     }
-                 });
-        }
-        return this;
-    },
-
-    /**
-     * Returns true if display is not "none"
-     * @return {Boolean}
-     */
-    isDisplayed : function() {
-        return this.getStyle("display") != "none";
-    },
-    
-    /**
-     * Toggles the elements visibility or display, depending on visibility mode.
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-     */
-    toggle : function(animate){
-        this.setVisible(!this.isVisible(), this.preanim(arguments, 0));
-        return this;
-    },
-    
-    /**
-     * Sets the css display. Uses originalDisplay if value is a boolean true.
-     * @param {Boolean} value Boolean to display the element using its default display or a string to set the display directly
-     * @return {Ext.Element} this
-     */
-    setDisplayed : function(value) {
-        if(typeof value == "boolean"){
-           value = value ? this.originalDisplay : "none";
-        }
-        this.setStyle("display", value);
-        return this;
-    },
-    
-    /**
-     * Tries to focus the element. Any exceptions are caught.
-     * @return {Ext.Element} this
-     */
-    focus : function() {
-        try{
-            this.dom.focus();
-        }catch(e){}
-        return this;
-    },
-    
-    /**
-     * Tries to blur the element. Any exceptions are caught.
-     * @return {Ext.Element} this
-     */
-    blur : function() {
-        try{
-            this.dom.blur();
-        }catch(e){}
-        return this;
-    },
-    
-    /**
-     * Add a CSS class to the element.
-     * @param {String/Array} className The CSS class to add or an array of classes
-     * @return {Ext.Element} this
-     */
-    addClass : function(className){
-        if(className instanceof Array){
-            for(var i = 0, len = className.length; i < len; i++) {
-            	this.addClass(className[i]);
-            }
-        }else{
-            if(className && !this.hasClass(className)){
-                this.dom.className = this.dom.className + " " + className;
-            }
-        }
-        return this;
-    },
-    
-    /**
-     * Adds the passed className to this element and removes the class from all siblings
-     * @param {String} className The className to add
-     * @return {Ext.Element} this
-     */
-    radioClass : function(className){
-        var siblings = this.dom.parentNode.childNodes;
-        for(var i = 0; i < siblings.length; i++) {
-        	var s = siblings[i];
-        	if(s.nodeType == 1){
-        	    Ext.get(s).removeClass(className);
-        	}
-        }
-        this.addClass(className);
-        return this;
-    },
-    
-    /**
-     * Removes a CSS class from the element.
-     * @param {String/Array} className The CSS class to remove or an array of classes
-     * @return {Ext.Element} this
-     */
-    removeClass : function(className){
-        if(!className || !this.dom.className){
-            return this;
-        }
-        if(className instanceof Array){
-            for(var i = 0, len = className.length; i < len; i++) {
-            	this.removeClass(className[i]);
-            }
-        }else{
-            if(this.hasClass(className)){
-                var re = this.classReCache[className];
-                if (!re) {
-                   re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)', "g");
-                   this.classReCache[className] = re;
-                }
-                this.dom.className =
-                    this.dom.className.replace(re, " ");
-            }
-        }
-        return this;
-    },
-    
-    classReCache: {},
-
-    /**
-     * Toggles (adds or removes) the passed class.
-     * @param {String} className
-     * @return {Ext.Element} this
-     */
-    toggleClass : function(className){
-        if(this.hasClass(className)){
-            this.removeClass(className);
-        }else{
-            this.addClass(className);
-        }
-        return this;
-    },
-    
-    /**
-     * Checks if a CSS class is in use by the element.
-     * @param {String} className The CSS class to check
-     * @return {Boolean} true or false
-     */
-    hasClass : function(className){
-        return className && (' '+this.dom.className+' ').indexOf(' '+className+' ') != -1;
-    },
-    
-    /**
-     * Replaces a CSS class on the element with another.
-     * @param {String} oldClassName The CSS class to replace
-     * @param {String} newClassName The replacement CSS class
-     * @return {Ext.Element} this
-     */
-    replaceClass : function(oldClassName, newClassName){
-        this.removeClass(oldClassName);
-        this.addClass(newClassName);
-        return this;
-    },
-
-    /**
-     * Get an object with properties matching the styles requested.
-     * e.g. el.getStyles('color', 'font-size', 'width') might return
-     * {'color': '#FFFFFF', 'font-size': '13px', 'width': '100px'}.
-     * @param {String} style1
-     * @param {String} style2
-     * @param {String} etc
-     * @return Object
-     */
-    getStyles : function(){
-        var a = arguments, len = a.length, r = {};
-        for(var i = 0; i < len; i++){
-            r[a[i]] = this.getStyle(a[i]);
-        }
-        return r;
-    },
-
-    /**
-       * Normalizes currentStyle and computedStyle. This is not YUI getStyle, it is an optimised version.
-       * @param {String} property The style property whose value is returned.
-       * @return {String} The current value of the style property for this element.
-       */
-    getStyle : function(){
-        return view && view.getComputedStyle ?
-            function(prop){
-                var el = this.dom, v, cs, camel;
-                if(prop == 'float'){
-                    prop = "cssFloat";
-                }
-                if(v = el.style[prop]){
-                    return v;
-                }
-                if(cs = view.getComputedStyle(el, "")){
-                    if(!(camel = propCache[prop])){
-                        camel = propCache[prop] = prop.replace(camelRe, camelFn);
-                    }
-                    return cs[camel];
-                }
-                return null;
-            } : 
-            function(prop){
-                var el = this.dom, v, cs, camel;
-                if(prop == 'opacity'){
-                    if(typeof el.filter == 'string'){
-                        var fv = parseFloat(el.filter.match(/alpha\(opacity=(.*)\)/i)[1]);
-                        if(!isNaN(fv)){
-                            return fv ? fv / 100 : 0;
-                        }
-                    }
-                    return 1;
-                }else if(prop == 'float'){
-                    prop = "styleFloat";
-                }
-                if(!(camel = propCache[prop])){
-                    camel = propCache[prop] = prop.replace(camelRe, camelFn);
-                }
-                if(v = el.style[camel]){
-                    return v;
-                }
-                if(cs = el.currentStyle){
-                    return cs[camel];
-                }
-                return null;
-            };
-    }(),
-    
-    /**
-       * Wrapper for setting style properties, also takes single object parameter of multiple styles
-       * @param {String/Object} property The style property to be set or an object of multiple styles.
-       * @param {String} val (optional) The value to apply to the given property or null if an object was passed.
-       * @return {Ext.Element} this
-     */
-    setStyle : function(prop, value){
-        if(typeof prop == "string"){
-            var camel;
-            if(!(camel = propCache[prop])){
-                camel = propCache[prop] = prop.replace(camelRe, camelFn);
-            }
-            if(camel == 'opacity') {
-                this.setOpacity(value);
-            }else{
-                this.dom.style[camel] = value;
-            }
-        }else{
-            for(var style in prop){
-                if(typeof prop[style] != "function"){
-                   this.setStyle(style, prop[style]);
-                }
-            }
-        }
-        return this;
-    },
-    
-    /**
-     * More flexible version of {@link #setStyle} for setting style properties.
-     * @param {String/Object/Function} styles A style specification string eg "width:100px", or object in the form {width:"100px"}, or
-     * a function which returns such a specification.
-     * @return {Ext.Element} this
-     */
-    applyStyles : function(style){
-        Ext.DomHelper.applyStyles(this.dom, style);
-        return this;
-    },
-    
-    /**
-       * Gets the current X position of the element based on page coordinates.  Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
-       @return {Number} The X position of the element
-       */
-    getX : function(){
-        return D.getX(this.dom);
-    },
-    
-    /**
-       * Gets the current Y position of the element based on page coordinates.  Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
-       @return {Number} The Y position of the element
-       */
-    getY : function(){
-        return D.getY(this.dom);
-    },
-    
-    /**
-       * Gets the current position of the element based on page coordinates.  Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
-       @return {Array} The XY position of the element
-       */
-    getXY : function(){
-        return D.getXY(this.dom);
-    },
-    
-    /**
-       * Sets the X position of the element based on page coordinates.  Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
-       @param {Number} The X position of the element
-      * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-     */
-    setX : function(x, animate){
-        if(!animate || !A){
-            D.setX(this.dom, x);
-        }else{
-            this.setXY([x, this.getY()], this.preanim(arguments, 1));
-        }
-        return this;
-    },
-    
-    /**
-       * Sets the Y position of the element based on page coordinates.  Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
-       @param {Number} The Y position of the element
-      * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-      */
-    setY : function(y, animate){
-        if(!animate || !A){
-            D.setY(this.dom, y);
-        }else{
-            this.setXY([this.getX(), y], this.preanim(arguments, 1));
-        }
-        return this;
-    },
-    
-    /**
-     * Set the element's left position directly using CSS style (instead of setX())
-     * @param {String} left The left CSS property value
-     * @return {Ext.Element} this
-     */
-    setLeft : function(left){
-        this.setStyle("left", this.addUnits(left));
-        return this;
-    },
-    
-    /**
-     * Set the element's top position directly using CSS style (instead of setY())
-     * @param {String} top The top CSS property value
-     * @return {Ext.Element} this
-     */
-    setTop : function(top){
-        this.setStyle("top", this.addUnits(top));
-        return this;
-    },
-    
-    /**
-     * Set the element's css right style
-     * @param {String} right The right CSS property value
-     * @return {Ext.Element} this
-     */
-    setRight : function(right){
-        this.setStyle("right", this.addUnits(right));
-        return this;
-    },
-    
-    /**
-     * Set the element's css bottom style
-     * @param {String} bottom The bottom CSS property value
-     * @return {Ext.Element} this
-     */
-    setBottom : function(bottom){
-        this.setStyle("bottom", this.addUnits(bottom));
-        return this;
-    },
-    
-    /**
-     * Set the position of the element in page coordinates, regardless of how the element is positioned.
-     * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
-     * @param {Array} pos Contains X & Y [x, y] values for new position (coordinates are page-based)
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-      * @return {Ext.Element} this
-       */
-    setXY : function(pos, animate){
-        if(!animate || !A){
-            D.setXY(this.dom, pos);
-        }else{
-            this.anim({points: {to: pos}}, this.preanim(arguments, 1), 'motion');
-        }
-        return this;
-    },
-    
-    /**
-     * Set the position of the element in page coordinates, regardless of how the element is positioned.
-     * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
-     * @param {Number} x X value for new position (coordinates are page-based)
-     * @param {Number} y Y value for new position (coordinates are page-based)
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-     */
-    setLocation : function(x, y, animate){
-        this.setXY([x, y], this.preanim(arguments, 2));
-        return this;
-    },
-    
-    /**
-     * Set the position of the element in page coordinates, regardless of how the element is positioned.
-     * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
-     * @param {Number} x X value for new position (coordinates are page-based)
-     * @param {Number} y Y value for new position (coordinates are page-based)
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-     */
-    moveTo : function(x, y, animate){
-        this.setXY([x, y], this.preanim(arguments, 2));
-        return this;
-    },
-    
-    /**
-       * Returns the region of the given element.
-       * The element must be part of the DOM tree to have a region (display:none or elements not appended return false).
-       * @return {Region} A Ext.lib.Region containing "top, left, bottom, right" member data.
-       */
-    getRegion : function(){
-        return D.getRegion(this.dom);
-    },
-    
-    /**
-     * Returns the offset height of the element
-     * @param {Boolean} contentHeight (optional) true to get the height minus borders and padding
-     * @return {Number} The element's height
-     */
-    getHeight : function(contentHeight){
-        var h = this.dom.offsetHeight || 0;
-        return contentHeight !== true ? h : h-this.getBorderWidth("tb")-this.getPadding("tb");
-    },
-
-    /**
-     * Returns the offset width of the element
-     * @param {Boolean} contentWidth (optional) true to get the width minus borders and padding
-     * @return {Number} The element's width
-     */
-    getWidth : function(contentWidth){
-        var w = this.dom.offsetWidth || 0;
-        return contentWidth !== true ? w : w-this.getBorderWidth("lr")-this.getPadding("lr");
-    },
-
-    /**
-     * Returns either the offsetHeight or the height of this element based on CSS height adjusted by padding or borders
-     * when needed to simulate offsetHeight when offsets aren't available. This may not work on display:none elements
-     * if a height has not been set using CSS.
-     * @return {Number}
-     */
-    getComputedHeight : function(){
-        var h = Math.max(this.dom.offsetHeight, this.dom.clientHeight);
-        if(!h){
-            h = parseInt(this.getStyle('height'), 10) || 0;
-            if(!this.isBorderBox()){
-                h += this.getFrameWidth('tb');
-            }
-        }
-        return h;
-    },
-
-    /**
-     * Returns either the offsetWidth or the width of this element based on CSS width adjusted by padding or borders
-     * when needed to simulate offsetWidth when offsets aren't available. This may not work on display:none elements
-     * if a width has not been set using CSS.
-     * @return {Number}
-     */
-    getComputedWidth : function(){
-        var w = Math.max(this.dom.offsetWidth, this.dom.clientWidth);
-        if(!w){
-            w = parseInt(this.getStyle('width'), 10) || 0;
-            if(!this.isBorderBox()){
-                w += this.getFrameWidth('lr');
-            }
-        }
-        return w;
-    },
-
-    /**
-     * Returns the size of the element
-     * @param {Boolean} contentSize (optional) true to get the width/size minus borders and padding
-     * @return {Object} An object containing the element's size {width: (element width), height: (element height)}
-     */
-    getSize : function(contentSize){
-        return {width: this.getWidth(contentSize), height: this.getHeight(contentSize)};
-    },
-
-    getViewSize : function(){
-        var d = this.dom, doc = document, aw = 0, ah = 0;
-        if(d == doc || d == doc.body){
-            return {width : D.getViewWidth(), height: D.getViewHeight()};
-        }else{
-            return {
-                width : d.clientWidth,
-                height: d.clientHeight
-            };
-        }
-    },
-
-    /**
-     * Returns the value of the "value" attribute
-     * @param {Boolean} asNumber true to parse the value as a number
-     * @return {String/Number}
-     */
-    getValue : function(asNumber){
-        return asNumber ? parseInt(this.dom.value, 10) : this.dom.value;
-    },
-    
-    /** @private */
-    adjustWidth : function(width){
-        if(typeof width == "number"){
-            if(this.autoBoxAdjust && !this.isBorderBox()){
-               width -= (this.getBorderWidth("lr") + this.getPadding("lr"));
-            }
-            if(width < 0){
-                width = 0;
-            }
-        }
-        return width;
-    },
-    
-    /** @private */
-    adjustHeight : function(height){
-        if(typeof height == "number"){
-           if(this.autoBoxAdjust && !this.isBorderBox()){
-               height -= (this.getBorderWidth("tb") + this.getPadding("tb"));
-           }
-           if(height < 0){
-               height = 0;
-           }
-        }
-        return height;
-    },
-    
-    /**
-     * Set the width of the element
-     * @param {Number} width The new width
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-     */
-    setWidth : function(width, animate){
-        width = this.adjustWidth(width);
-        if(!animate || !A){
-            this.dom.style.width = this.addUnits(width); 
-        }else{
-            this.anim({width: {to: width}}, this.preanim(arguments, 1));
-        }
-        return this;
-    },
-    
-    /**
-     * Set the height of the element
-     * @param {Number} height The new height
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-     */
-     setHeight : function(height, animate){
-        height = this.adjustHeight(height);
-        if(!animate || !A){
-            this.dom.style.height = this.addUnits(height);
-        }else{
-            this.anim({height: {to: height}}, this.preanim(arguments, 1));
-        }
-        return this;
-    },
-    
-    /**
-     * Set the size of the element. If animation is true, both width an height will be animated concurrently.
-     * @param {Number} width The new width
-     * @param {Number} height The new height
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-     */
-     setSize : function(width, height, animate){
-        if(typeof width == "object"){ // in case of object from getSize()
-            height = width.height; width = width.width;
-        }
-        width = this.adjustWidth(width); height = this.adjustHeight(height);
-        if(!animate || !A){
-            this.dom.style.width = this.addUnits(width);
-            this.dom.style.height = this.addUnits(height);
-        }else{
-            this.anim({width: {to: width}, height: {to: height}}, this.preanim(arguments, 2));
-        }
-        return this;
-    },
-
-    /**
-     * Sets the element's position and size in one shot. If animation is true then width, height, x and y will be animated concurrently.
-     * @param {Number} x X value for new position (coordinates are page-based)
-     * @param {Number} y Y value for new position (coordinates are page-based)
-     * @param {Number} width The new width
-     * @param {Number} height The new height
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-     */
-    setBounds : function(x, y, width, height, animate){
-        if(!animate || !A){
-            this.setSize(width, height);
-            this.setLocation(x, y);
-        }else{
-            width = this.adjustWidth(width); height = this.adjustHeight(height);
-            this.anim({points: {to: [x, y]}, width: {to: width}, height: {to: height}}, 
-                          this.preanim(arguments, 4), 'motion');
-        }
-        return this;
-    },
-    
-    /**
-     * Sets the element's position and size the the specified region. If animation is true then width, height, x and y will be animated concurrently.
-     * @param {Ext.lib.Region} region The region to fill
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-     */
-    setRegion : function(region, animate){
-        this.setBounds(region.left, region.top, region.right-region.left, region.bottom-region.top, this.preanim(arguments, 1));
-        return this;
-    },
-
-    /**
-     * Appends an event handler
-     *
-     * @param {String}   eventName     The type of event to append
-     * @param {Function} fn        The method the event invokes
-     * @param {Object} scope       (optional) The scope (this object) of the fn
-     * @param {Object}   options   (optional)An object with standard EventManager options
-     */
-    addListener : function(eventName, fn, scope, options){
-        Ext.EventManager.on(this.dom,  eventName, fn, scope || this, options);
-    },
-
-    /**
-     * Removes an event handler from this element
-     * @param {String} eventName the type of event to remove
-     * @param {Function} fn the method the event invokes
-     * @return {Ext.Element} this
-     */
-    removeListener : function(eventName, fn){
-        Ext.EventManager.removeListener(this.dom,  eventName, fn);
-        return this;
-    },
-    
-    /**
-     * Removes all previous added listeners from this element
-     * @return {Ext.Element} this
-     */
-    removeAllListeners : function(){
-        E.purgeElement(this.dom);
-        return this;
-    },
-    
-    relayEvent : function(eventName, observable){
-        this.on(eventName, function(e){
-            observable.fireEvent(eventName, e);
-        });  
-    },
-    
-    /**
-     * Set the opacity of the element
-     * @param {Float} opacity The new opacity. 0 = transparent, .5 = 50% visibile, 1 = fully visible, etc
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-     */
-     setOpacity : function(opacity, animate){
-        if(!animate || !A){
-            var s = this.dom.style;
-            if(Ext.isIE){
-                s.zoom = 1;
-                s.filter = (s.filter || '').replace(/alpha\([^\)]*\)/gi,"") +
-                           (opacity == 1 ? "" : "alpha(opacity=" + opacity * 100 + ")");
-            }else{
-                s.opacity = opacity;
-            }
-        }else{
-            this.anim({opacity: {to: opacity}}, this.preanim(arguments, 1), null, .35, 'easeIn');
-        }
-        return this;
-    },
-    
-    /**
-     * Gets the left X coordinate
-     * @param {Boolean} local True to get the local css position instead of page coordinate
-     * @return {Number}
-     */
-    getLeft : function(local){
-        if(!local){
-            return this.getX();
-        }else{
-            return parseInt(this.getStyle("left"), 10) || 0;
-        }
-    },
-    
-    /**
-     * Gets the right X coordinate of the element (element X position + element width)
-     * @param {Boolean} local True to get the local css position instead of page coordinate
-     * @return {Number}
-     */
-    getRight : function(local){
-        if(!local){
-            return this.getX() + this.getWidth();
-        }else{
-            return (this.getLeft(true) + this.getWidth()) || 0;
-        }
-    },
-    
-    /**
-     * Gets the top Y coordinate
-     * @param {Boolean} local True to get the local css position instead of page coordinate
-     * @return {Number}
-     */
-    getTop : function(local) {
-        if(!local){
-            return this.getY();
-        }else{
-            return parseInt(this.getStyle("top"), 10) || 0;
-        }
-    },
-    
-    /**
-     * Gets the bottom Y coordinate of the element (element Y position + element height)
-     * @param {Boolean} local True to get the local css position instead of page coordinate
-     * @return {Number}
-     */
-    getBottom : function(local){
-        if(!local){
-            return this.getY() + this.getHeight();
-        }else{
-            return (this.getTop(true) + this.getHeight()) || 0;
-        }
-    },
-
-    /**
-    * Initializes positioning on this element. If a desired position is not passed, it will make the
-    * the element positioned relative IF it is not already positioned.
-    * @param {String} pos (optional) Positioning to use "relative", "absolute" or "fixed"
-    * @param {Number} zIndex (optional) The zIndex to apply
-    * @param {Number} x (optional) Set the page X position
-    * @param {Number} y (optional) Set the page Y position
-    */
-    position : function(pos, zIndex, x, y){
-        if(!pos){
-           if(this.getStyle('position') == 'static'){
-               this.setStyle('position', 'relative');
-           }
-        }else{
-            this.setStyle("position", pos);
-        }
-        if(zIndex){
-            this.setStyle("z-index", zIndex);
-        }
-        if(x !== undefined && y !== undefined){
-            this.setXY([x, y]);
-        }else if(x !== undefined){
-            this.setX(x);
-        }else if(y !== undefined){
-            this.setY(y);
-        }
-    },
-    
-    /**
-    * Clear positioning back to the default when the document was loaded
-    * @param {String} value (optional) The value to use for the left,right,top,bottom, defaults to '' (empty string). You could use 'auto'.
-    * @return {Ext.Element} this
-     */
-    clearPositioning : function(value){
-        value = value ||'';
-        this.setStyle({
-            "left": value,
-            "right": value,
-            "top": value,
-            "bottom": value,
-            "z-index": "",
-            "position" : "static"
-        });
-        return this;
-    },
-    
-    /**
-    * Gets an object with all CSS positioning properties. Useful along with setPostioning to get
-    * snapshot before performing an update and then restoring the element.
-    * @return {Object}
-    */
-    getPositioning : function(){
-        var l = this.getStyle("left");
-        var t = this.getStyle("top");
-        return {
-            "position" : this.getStyle("position"),
-            "left" : l,
-            "right" : l ? "" : this.getStyle("right"),
-            "top" : t,
-            "bottom" : t ? "" : this.getStyle("bottom"),
-            "z-index" : this.getStyle("z-index")
-        };
-    },
-
-    /**
-     * Gets the width of the border(s) for the specified side(s)
-     * @param {String} side Can be t, l, r, b or any combination of those to add multiple values. For example, 
-     * passing lr would get the border (l)eft width + the border (r)ight width.
-     * @return {Number} The width of the sides passed added together
-     */
-    getBorderWidth : function(side){
-        return this.addStyles(side, El.borders);
-    },
-    
-    /**
-     * Gets the width of the padding(s) for the specified side(s)
-     * @param {String} side Can be t, l, r, b or any combination of those to add multiple values. For example, 
-     * passing lr would get the padding (l)eft + the padding (r)ight.
-     * @return {Number} The padding of the sides passed added together
-     */
-    getPadding : function(side){
-        return this.addStyles(side, El.paddings);
-    },
-    
-    /**
-    * Set positioning with an object returned by getPositioning().
-    * @param {Object} posCfg
-    * @return {Ext.Element} this
-     */
-    setPositioning : function(pc){
-        this.applyStyles(pc);
-        if(pc.right == "auto"){
-            this.dom.style.right = "";
-        }
-        if(pc.bottom == "auto"){
-            this.dom.style.bottom = "";
-        }
-        return this;
-    },
-
-    fixDisplay : function(){
-        if(this.getStyle("display") == "none"){
-            this.setStyle("visibility", "hidden");
-            this.setStyle("display", this.originalDisplay); // first try reverting to default
-            if(this.getStyle("display") == "none"){ // if that fails, default to block
-                this.setStyle("display", "block");
-            }
-        }
-    },
-
-    /**
-     * Quick set left and top adding default units
-     * @return {Ext.Element} this
-     */
-     setLeftTop : function(left, top){
-        this.dom.style.left = this.addUnits(left);
-        this.dom.style.top = this.addUnits(top);
-        return this;
-    },
-    
-    /**
-     * Move this element relative to its current position.
-     * @param {String} direction Possible values are: "l","left" - "r","right" - "t","top","up" - "b","bottom","down".
-     * @param {Number} distance How far to move the element in pixels
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-     */
-     move : function(direction, distance, animate){
-        var xy = this.getXY();
-        direction = direction.toLowerCase();
-        switch(direction){
-            case "l":
-            case "left":
-                this.moveTo(xy[0]-distance, xy[1], this.preanim(arguments, 2));
-                break;
-           case "r":
-           case "right":
-                this.moveTo(xy[0]+distance, xy[1], this.preanim(arguments, 2));
-                break;
-           case "t":
-           case "top":
-           case "up":
-                this.moveTo(xy[0], xy[1]-distance, this.preanim(arguments, 2));
-                break;
-           case "b":
-           case "bottom":
-           case "down":
-                this.moveTo(xy[0], xy[1]+distance, this.preanim(arguments, 2));
-                break;
-        }
-        return this;
-    },
-    
-    /**
-     *  Store the current overflow setting and clip overflow on the element - use {@link #unclip} to remove
-     * @return {Ext.Element} this
-     */
-    clip : function(){
-        if(!this.isClipped){
-           this.isClipped = true;
-           this.originalClip = {
-               "o": this.getStyle("overflow"),
-               "x": this.getStyle("overflow-x"),
-               "y": this.getStyle("overflow-y")
-           };
-           this.setStyle("overflow", "hidden");
-           this.setStyle("overflow-x", "hidden");
-           this.setStyle("overflow-y", "hidden");
-        }
-        return this;
-    },
-    
-    /**
-     *  Return clipping (overflow) to original clipping before clip() was called
-     * @return {Ext.Element} this
-     */
-    unclip : function(){
-        if(this.isClipped){
-            this.isClipped = false;
-            var o = this.originalClip;
-            if(o.o){this.setStyle("overflow", o.o);}
-            if(o.x){this.setStyle("overflow-x", o.x);}
-            if(o.y){this.setStyle("overflow-y", o.y);}
-        }
-        return this;
-    },
-
-
-    /**
-     * Gets the x,y coordinates specified by the anchor position on the element.
-     * @param {String} anchor (optional) The specified anchor position (defaults to "c").  See {@link #alignTo} for details on supported anchor positions.
-     * @param {Object} size (optional) An object containing the size to use for calculating anchor position
-     *                       {width: (target width), height: (target height)} (defaults to the element's current size)
-     * @param {Boolean} local (optional) True to get the local (element top/left-relative) anchor position instead of page coordinates
-     * @return {Array} [x, y] An array containing the element's x and y coordinates
-     */
-    getAnchorXY : function(anchor, local, s){
-        //Passing a different size is useful for pre-calculating anchors,
-        //especially for anchored animations that change the el size.
-
-        var w, h, vp = false;
-        if(!s){
-            var d = this.dom;
-            if(d == document.body || d == document){
-                vp = true;
-                w = D.getViewWidth(); h = D.getViewHeight();
-            }else{
-                w = this.getWidth(); h = this.getHeight();
-            }
-        }else{
-            w = s.width;  h = s.height;
-        }
-        var x = 0, y = 0, r = Math.round;
-        switch((anchor || "tl").toLowerCase()){
-            case "c":
-                x = r(w*.5);
-                y = r(h*.5);
-            break;
-            case "t":
-                x = r(w*.5);
-                y = 0;
-            break;
-            case "l":
-                x = 0;
-                y = r(h*.5);
-            break;
-            case "r":
-                x = w;
-                y = r(h*.5);
-            break;
-            case "b":
-                x = r(w*.5);
-                y = h;
-            break;
-            case "tl":
-                x = 0;
-                y = 0;
-            break;
-            case "bl":
-                x = 0;
-                y = h;
-            break;
-            case "br":
-                x = w;
-                y = h;
-            break;
-            case "tr":
-                x = w;
-                y = 0;
-            break;
-        }
-        if(local === true){
-            return [x, y];
-        }
-        if(vp){
-            var sc = this.getScroll();
-            return [x + sc.left, y + sc.top];
-        }
-        //Add the element's offset xy
-        var o = this.getXY();
-        return [x+o[0], y+o[1]];
-    },
-
-    /**
-     * Gets the x,y coordinates to align this element with another element. See {@link #alignTo} for more info on the
-     * supported position values.
-     * @param {String/HTMLElement/Ext.Element} element The element to align to.
-     * @param {String} position The position to align to. 
-     * @param {Array} offsets (optional) Offset the positioning by [x, y]
-     * @return {Array} [x, y]
-     */
-    getAlignToXY : function(el, p, o){
-        el = Ext.get(el), d = this.dom;
-        if(!el.dom){
-            throw "Element.alignTo with an element that doesn't exist";
-        }
-        var c = false; //constrain to viewport
-        var p1 = "", p2 = "";
-        o = o || [0,0];
-
-        if(!p){
-            p = "tl-bl";
-        }else if(p == "?"){
-            p = "tl-bl?";
-        }else if(p.indexOf("-") == -1){
-            p = "tl-" + p;
-        }
-        p = p.toLowerCase();
-        var m = p.match(/^([a-z]+)-([a-z]+)(\?)?$/);
-        if(!m){
-           throw "Element.alignTo with an invalid alignment " + p;
-        }
-        p1 = m[1], p2 = m[2], c = m[3] ? true : false;
-
-        //Subtract the aligned el"s internal xy from the target"s offset xy
-        //plus custom offset to get the aligned el's new offset xy
-        var a1 = this.getAnchorXY(p1, true);
-        var a2 = el.getAnchorXY(p2, false);
-        var x = a2[0] - a1[0] + o[0];
-        var y = a2[1] - a1[1] + o[1];
-        if(c){
-            //constrain the aligned el to viewport if necessary
-            var w = this.getWidth(), h = this.getHeight(), r = el.getRegion();
-            // 5px of margin for ie
-            var dw = D.getViewWidth()-5, dh = D.getViewHeight()-5;
-
-            //If we are at a viewport boundary and the aligned el is anchored on a target border that is
-            //perpendicular to the vp border, allow the aligned el to slide on that border,
-            //otherwise swap the aligned el to the opposite border of the target.
-            var p1y = p1.charAt(0), p1x = p1.charAt(p1.length-1);
-           var p2y = p2.charAt(0), p2x = p2.charAt(p2.length-1);
-           var swapY = ((p1y=="t" && p2y=="b") || (p1y=="b" && p2y=="t"));
-           var swapX = ((p1x=="r" && p2x=="l") || (p1x=="l" && p2x=="r"));
-
-           var doc = document;
-           var scrollX = (doc.documentElement.scrollLeft || doc.body.scrollLeft || 0)+5;
-           var scrollY = (doc.documentElement.scrollTop || doc.body.scrollTop || 0)+5;
-
-           if((x+w) > dw){
-               x = swapX ? r.left-w : dw-w;
-           }
-           if(x < scrollX){
-               x = swapX ? r.right : scrollX;
-           }
-           if((y+h) > dh){
-               y = swapY ? r.top-h : dh-h;
-           }
-           if (y < scrollY){
-               y = swapY ? r.bottom : scrollY;
-           }
-        }
-        return [x,y];
-    },
-
-    getConstrainToXY : function(){
-        var os = {top:0, left:0, bottom:0, right: 0};
-
-        return function(el, local, offsets){
-            el = Ext.get(el);
-            offsets = offsets ? Ext.applyIf(offsets, os) : os;
-
-            var vw, vh, vx = 0, vy = 0;
-            if(el.dom == document.body || el.dom == document){
-                vw = Ext.lib.Dom.getViewWidth();
-                vh = Ext.lib.Dom.getViewHeight();
-            }else{
-                vw = el.dom.clientWidth;
-                vh = el.dom.clientHeight;
-                if(!local){
-                    var vxy = el.getXY();
-                    vx = vxy[0];
-                    vy = vxy[1];
-                }
-            }
-
-            var s = el.getScroll();
-
-            vx += offsets.left + s.left;
-            vy += offsets.top + s.top;
-
-            vw -= offsets.right;
-            vh -= offsets.bottom;
-
-            var vr = vx+vw;
-            var vb = vy+vh;
-
-            var xy = !local ? this.getXY() : [this.getLeft(true), this.getTop(true)];
-            var x = xy[0], y = xy[1];
-            var w = this.dom.offsetWidth, h = this.dom.offsetHeight;
-
-            // only move it if it needs it
-            var moved = false;
-
-            // first validate right/bottom
-            if((x + w) > vr){
-                x = vr - w;
-                moved = true;
-            }
-            if((y + h) > vb){
-                y = vb - h;
-                moved = true;
-            }
-            // then make sure top/left isn't negative
-            if(x < vx){
-                x = vx;
-                moved = true;
-            }
-            if(y < vy){
-                y = vy;
-                moved = true;
-            }
-            return moved ? [x, y] : false;
-        };
-    }(),
-
-    /**
-     * Aligns this element with another element relative to the specified anchor points. If the other element is the
-     * document it aligns it to the viewport.
-     * The position parameter is optional, and can be specified in any one of the following formats:
-     * <ul>
-     *   <li><b>Blank</b>: Defaults to aligning the element"s top-left corner to the target"s bottom-left corner ("tl-bl").</li>
-     *   <li><b>One anchor (deprecated)</b>: The passed anchor position is used as the target element's anchor point.
-     *       The element being aligned will position its top-left corner (tl) to that point.  <i>This method has been
-     *       deprecated in favor of the newer two anchor syntax below</i>.</li>
-     *   <li><b>Two anchors</b>: If two values from the table below are passed separated by a dash, the first value is used as the
-     *       element"s anchor point, and the second value is used as the target"s anchor point.</li>
-     * </ul>
-     * In addition to the anchor points, the position parameter also supports the "?" character.  If "?" is passed at the end of
-     * the position string, the element will attempt to align as specified, but the position will be adjusted to constrain to
-     * the viewport if necessary.  Note that the element being aligned might be swapped to align to a different position than
-     * that specified in order to enforce the viewport constraints.
-     * Following are all of the supported anchor positions:
-<pre>
-Value  Description
------  -----------------------------
-tl     The top left corner (default)
-t      The center of the top edge
-tr     The top right corner
-l      The center of the left edge
-c      In the center of the element
-r      The center of the right edge
-bl     The bottom left corner
-b      The center of the bottom edge
-br     The bottom right corner
-</pre>
-Example Usage:
-<pre><code>
-// align el to other-el using the default positioning ("tl-bl", non-constrained)
-el.alignTo("other-el");
-
-// align the top left corner of el with the top right corner of other-el (constrained to viewport)
-el.alignTo("other-el", "tr?");
-
-// align the bottom right corner of el with the center left edge of other-el
-el.alignTo("other-el", "br-l?");
-
-// align the center of el with the bottom left corner of other-el and
-// adjust the x position by -6 pixels (and the y position by 0)
-el.alignTo("other-el", "c-bl", [-6, 0]);
-</code></pre>
-     * @param {String/HTMLElement/Ext.Element} element The element to align to.
-     * @param {String} position The position to align to.
-     * @param {Array} offsets (optional) Offset the positioning by [x, y]
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-     */
-    alignTo : function(element, position, offsets, animate){
-        var xy = this.getAlignToXY(element, position, offsets);
-        this.setXY(xy, this.preanim(arguments, 3));
-        return this;
-    },
-
-    /**
-     * Anchors an element to another element and realigns it when the window is resized.
-     * @param {String/HTMLElement/Ext.Element} element The element to align to.
-     * @param {String} position The position to align to.
-     * @param {Array} offsets (optional) Offset the positioning by [x, y]
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @param {Boolean/Number} monitorScroll (optional) true to monitor body scroll and reposition. If this parameter
-     * is a number, it is used as the buffer delay (defaults to 50ms).
-     * @param 
-     */
-    anchorTo : function(el, alignment, offsets, animate, monitorScroll, callback){
-        var action = function(){
-            this.alignTo(el, alignment, offsets, animate);
-            Ext.callback(callback, this);
-        };
-        Ext.EventManager.onWindowResize(action, this);
-        var tm = typeof monitorScroll;
-        if(tm != 'undefined'){
-            Ext.EventManager.on(window, 'scroll', action, this,
-                {buffer: tm == 'number' ? monitorScroll : 50});
-        }
-        action.call(this); // align immediately
-        return this;
-    },
-    /**
-    * Clears any opacity settings from this element. Required in some cases for IE.
-    * @return {Ext.Element} this
-     */
-    clearOpacity : function(){
-        if (window.ActiveXObject) {
-            this.dom.style.filter = "";
-        } else {
-            this.dom.style.opacity = "";
-            this.dom.style["-moz-opacity"] = "";
-            this.dom.style["-khtml-opacity"] = "";
-        }
-        return this;
-    },
-    
-    /**
-    * Hide this element - Uses display mode to determine whether to use "display" or "visibility". See {@link #setVisible}.
-    * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-      */
-    hide : function(animate){
-        this.setVisible(false, this.preanim(arguments, 0));
-        return this;
-    },
-    
-    /**
-    * Show this element - Uses display mode to determine whether to use "display" or "visibility". See {@link #setVisible}.
-    * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-     */
-    show : function(animate){
-        this.setVisible(true, this.preanim(arguments, 0));
-        return this;
-    },
-    
-    /**
-     * @private Test if size has a unit, otherwise appends the default 
-     */
-    addUnits : function(size){
-        return Ext.Element.addUnits(size, this.defaultUnit);
-    },
-    
-    /**
-     * Temporarily enables offsets (width,height,x,y) for an element with display:none, use endMeasure() when done.
-     * @return {Ext.Element} this
-     */
-    beginMeasure : function(){
-        var el = this.dom;
-        if(el.offsetWidth || el.offsetHeight){
-            return this; // offsets work already
-        }
-        var changed = [];
-        var p = this.dom, b = document.body; // start with this element
-        while((!el.offsetWidth && !el.offsetHeight) && p && p.tagName && p != b){
-            var pe = Ext.get(p);
-            if(pe.getStyle('display') == 'none'){
-                changed.push({el: p, visibility: pe.getStyle("visibility")});
-                p.style.visibility = "hidden";
-                p.style.display = "block";
-            }
-            p = p.parentNode;
-        }
-        this._measureChanged = changed;
-        return this;
-               
-    },
-    
-    /**
-     * Restores displays to before beginMeasure was called
-     * @return {Ext.Element} this
-     */
-    endMeasure : function(){
-        var changed = this._measureChanged;
-        if(changed){
-            for(var i = 0, len = changed.length; i < len; i++) {
-            	var r = changed[i];
-            	r.el.style.visibility = r.visibility;
-                r.el.style.display = "none";
-            }
-            this._measureChanged = null;
-        }
-        return this;
-    },
-    
-    /**
-    * Update the innerHTML of this element, optionally searching for and processing scripts
-    * @param {String} html The new HTML
-    * @param {Boolean} loadScripts (optional) true to look for and process scripts
-    * @param {Function} callback For async script loading you can be noticed when the update completes
-    * @return {Ext.Element} this
-     */
-    update : function(html, loadScripts, callback){
-        if(typeof html == "undefined"){
-            html = "";
-        }
-        if(loadScripts !== true){
-            this.dom.innerHTML = html;
-            if(typeof callback == "function"){
-                callback();
-            }
-            return this;
-        }
-        var id = Ext.id();
-        var dom = this.dom;
-        
-        html += '<span id="' + id + '"></span>';
-        
-        E.onAvailable(id, function(){
-            var hd = document.getElementsByTagName("head")[0];
-            var re = /(?:<script([^>]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig;
-            var srcRe = /\ssrc=([\'\"])(.*?)\1/i;
-            var typeRe = /\stype=([\'\"])(.*?)\1/i;
-            
-            var match;
-            while(match = re.exec(html)){
-                var attrs = match[1];
-                var srcMatch = attrs ? attrs.match(srcRe) : false;
-                if(srcMatch && srcMatch[2]){
-                   var s = document.createElement("script");
-                   s.src = srcMatch[2];
-                   var typeMatch = attrs.match(typeRe);
-                   if(typeMatch && typeMatch[2]){
-                       s.type = typeMatch[2];
-                   }
-                   hd.appendChild(s);
-                }else if(match[2] && match[2].length > 0){
-                   eval(match[2]);
-                }
-            }
-            var el = document.getElementById(id);
-            if(el){el.parentNode.removeChild(el);}
-            if(typeof callback == "function"){
-                callback();
-            }
-        });
-        dom.innerHTML = html.replace(/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig, "");
-        return this;
-    },
-    
-    /**
-     * Direct access to the UpdateManager update() method (takes the same parameters).
-     * @param {String/Function} url The url for this request or a function to call to get the url
-     * @param {String/Object} params (optional) The parameters to pass as either a url encoded string "param1=1&amp;param2=2" or an object {param1: 1, param2: 2}
-     * @param {Function} callback (optional) Callback when transaction is complete - called with signature (oElement, bSuccess)
-     * @param {Boolean} discardUrl (optional) By default when you execute an update the defaultUrl is changed to the last used url. If true, it will not store the url.
-     * @return {Ext.Element} this
-     */
-    load : function(){
-        var um = this.getUpdateManager();
-        um.update.apply(um, arguments);
-        return this;
-    },
-    
-    /**
-    * Gets this elements UpdateManager
-    * @return {Ext.UpdateManager} The UpdateManager
-    */
-    getUpdateManager : function(){
-        if(!this.updateManager){
-            this.updateManager = new Ext.UpdateManager(this);
-        }
-        return this.updateManager;
-    },
-    
-    /**
-     * Disables text selection for this element (normalized across browsers)
-     * @return {Ext.Element} this
-     */
-    unselectable : function(){
-        this.dom.unselectable = "on";
-        this.swallowEvent("selectstart", true);
-        this.applyStyles("-moz-user-select:none;-khtml-user-select:none;");
-        this.addClass("x-unselectable");
-        return this;
-    },
-    
-    /**
-    * Calculates the x, y to center this element on the screen
-    * @return {Array} The x, y values [x, y]
-    */
-    getCenterXY : function(){
-        return this.getAlignToXY(document, 'c-c');
-    },
-
-    /**
-    * Centers the Element in either the viewport, or another Element.
-    * @param {String/HTMLElement/Ext.Element} centerIn (optional) The element in which to center the element.
-    */
-    center : function(centerIn){
-        this.alignTo(centerIn || document, 'c-c');
-        return this;
-    },
-
-    /**
-     * Tests various css rules/browsers to determine if this element uses a border box
-     * @return {Boolean}
-     */
-    isBorderBox : function(){
-        return noBoxAdjust[this.dom.tagName.toLowerCase()] || Ext.isBorderBox;
-    },
-    
-    /**
-     * Return a box {x, y, width, height} that can be used to set another elements
-     * size/location to match this element. 
-     * @param {Boolean} contentBox (optional) If true a box for the content of the element is returned. 
-     * @param {Boolean} local (optional) If true the element's left and top are returned instead of page x/y.
-     * @return {Object}
-     */
-    getBox : function(contentBox, local){
-        var xy;
-        if(!local){
-            xy = this.getXY();
-        }else{
-            var left = parseInt(this.getStyle("left"), 10) || 0;
-            var top = parseInt(this.getStyle("top"), 10) || 0;
-            xy = [left, top];
-        }
-        var el = this.dom, w = el.offsetWidth, h = el.offsetHeight, bx;
-        if(!contentBox){
-            bx = {x: xy[0], y: xy[1], 0: xy[0], 1: xy[1], width: w, height: h};
-        }else{
-            var l = this.getBorderWidth("l")+this.getPadding("l");
-            var r = this.getBorderWidth("r")+this.getPadding("r");
-            var t = this.getBorderWidth("t")+this.getPadding("t");
-            var b = this.getBorderWidth("b")+this.getPadding("b");
-            bx = {x: xy[0]+l, y: xy[1]+t, 0: xy[0]+l, 1: xy[1]+t, width: w-(l+r), height: h-(t+b)};
-        }
-        bx.right = bx.x + bx.width;
-        bx.bottom = bx.y + bx.height;
-        return bx;
-    },
-
-    /**
-     * Returns the sum width of the padding and borders for the passed "sides". See getBorderWidth()
-     for more information about the sides.
-     * @param {String} sides
-     * @return {Number}
-     */
-    getFrameWidth : function(sides){
-        return this.getPadding(sides) + this.getBorderWidth(sides);
-    },
-
-    /**
-     * Sets the element's box. Use getBox() on another element to get a box obj. If animate is true then width, height, x and y will be animated concurrently.
-     * @param {Object} box The box to fill {x, y, width, height}
-     * @param {Boolean} adjust (optional) Whether to adjust for box-model issues automatically
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Ext.Element} this
-     */
-    setBox : function(box, adjust, animate){
-        var w = box.width, h = box.height;
-        if((adjust && !this.autoBoxAdjust) && !this.isBorderBox()){
-           w -= (this.getBorderWidth("lr") + this.getPadding("lr"));
-           h -= (this.getBorderWidth("tb") + this.getPadding("tb"));
-        }
-        this.setBounds(box.x, box.y, w, h, this.preanim(arguments, 2));
-        return this;
-    },
-    
-    /**
-     * Forces the browser to repaint this element
-     * @return {Ext.Element} this
-     */
-     repaint : function(){
-        var dom = this.dom;
-        this.addClass("x-repaint");
-        setTimeout(function(){
-            Ext.get(dom).removeClass("x-repaint");
-        }, 1);
-        return this;
-    },
-    
-    /**
-     * Returns an object with properties top, left, right and bottom representing the margins of this element unless sides is passed, 
-     * then it returns the calculated width of the sides (see getPadding)
-     * @param {String} sides (optional) Any combination of l, r, t, b to get the sum of those sides
-     * @return {Object/Number}
-     */
-    getMargins : function(side){
-        if(!side){
-            return {
-                top: parseInt(this.getStyle("margin-top"), 10) || 0,
-                left: parseInt(this.getStyle("margin-left"), 10) || 0,
-                bottom: parseInt(this.getStyle("margin-bottom"), 10) || 0,
-                right: parseInt(this.getStyle("margin-right"), 10) || 0
-            };
-        }else{
-            return this.addStyles(side, El.margins);
-         }
-    },
-    
-    addStyles : function(sides, styles){
-        var val = 0;
-        for(var i = 0, len = sides.length; i < len; i++){
-             var w = parseInt(this.getStyle(styles[sides.charAt(i)]), 10);
-             if(!isNaN(w)) val += w;
-        }
-        return val;
-    },
-    
-    /**
-     * Creates a proxy element of this element
-     * @param {String/Object} config The class name of the proxy element or a DomHelper config object
-     * @param {String/HTMLElement} renderTo (optional) The element or element id to render the proxy to (defaults to document.body)
-     * @param {Boolean} matchBox (optional) True to align and size the proxy to this element now (defaults to false)
-     * @return {Ext.Element} The new proxy element
-     */
-    createProxy : function(config, renderTo, matchBox){
-        if(renderTo){
-            renderTo = Ext.getDom(renderTo);
-        }else{
-            renderTo = document.body;
-        }
-        config = typeof config == "object" ?
-            config : {tag : "div", cls: config};
-        var proxy = Ext.DomHelper.append(renderTo, config, true);
-        if(matchBox){
-           proxy.setBox(this.getBox());
-        }
-        return proxy;
-    },
-    
-    /**
-     * Puts a mask over this element to disable user interaction. Requires core.css.
-     * This method can only be applied to elements which accept child nodes.
-     * @param {String} msg (optional) A message to display in the mask
-     * @param {String} msgCls (optional) A css class to apply to the msg element
-     * @return {Element} The message element
-     */
-    mask : function(msg, msgCls){
-        if(this.getStyle("position") == "static"){
-            this.setStyle("position", "relative");
-        }
-        if(!this._mask){
-            this._mask = Ext.DomHelper.append(this.dom, {tag:"div", cls:"ext-el-mask"}, true);
-        }
-        this.addClass("x-masked");
-        this._mask.setDisplayed(true);
-        if(typeof msg == 'string'){
-            if(!this._maskMsg){
-                this._maskMsg = Ext.DomHelper.append(this.dom, {tag:"div", cls:"ext-el-mask-msg", cn:{tag:'div'}}, true);
-            }
-            var mm = this._maskMsg;
-            mm.dom.className = msgCls ? "ext-el-mask-msg " + msgCls : "ext-el-mask-msg";
-            mm.dom.firstChild.innerHTML = msg;
-            mm.setDisplayed(true);
-            mm.center(this);
-        }
-        return this._mask;
-    },
-    
-    /**
-     * Removes a previously applied mask. If removeEl is true the mask overlay is destroyed, otherwise
-     * it is cached for reuse.
-     */
-    unmask : function(removeEl){
-        if(this._mask){
-            if(removeEl === true){
-                this._mask.remove();
-                delete this._mask;
-                if(this._maskMsg){
-                    this._maskMsg.remove();
-                    delete this._maskMsg;
-                }
-            }else{
-                this._mask.setDisplayed(false);
-                if(this._maskMsg){
-                    this._maskMsg.setDisplayed(false);
-                }
-            }
-        }
-        this.removeClass("x-masked");
-    },
-
-    /**
-     * Returns true if this element is masked
-     * @return {Boolean}
-     */
-    isMasked : function(){
-        return this._mask && this._mask.isVisible();
-    },
-
-    /**
-     * Creates an iframe shim for this element to keep selects and other windowed objects from
-     * showing through.
-     * @return {Ext.Element} The new shim element
-     */
-    createShim : function(){
-        var el = document.createElement('iframe');
-        el.frameBorder = 'no';
-        el.className = 'ext-shim';
-        if(Ext.isIE && Ext.isSecure){
-            el.src = Ext.SSL_SECURE_URL;
-        }
-        var shim = Ext.get(this.dom.parentNode.insertBefore(el, this.dom));
-        shim.autoBoxAdjust = false;
-        return shim;
-    },
-
-    /**
-     * Removes this element from the DOM and deletes it from the cache
-     */
-    remove : function(){
-        if(this.dom.parentNode){
-            this.dom.parentNode.removeChild(this.dom);
-        }
-        delete El.cache[this.dom.id];
-    },
-
-    /**
-     * Sets up event handlers to add and remove a css class when the mouse is over this element
-     * @param {String} className
-     * @param {Boolean} preventFlicker (optional) If set to true, it prevents flickering by filtering
-     * mouseout events for children elements
-     * @return {Ext.Element} this
-     */
-    addClassOnOver : function(className, preventFlicker){
-        this.on("mouseover", function(){
-            Ext.fly(this, '_internal').addClass(className);
-        }, this.dom);
-        var removeFn = function(e){
-            if(preventFlicker !== true || !e.within(this, true)){
-                Ext.fly(this, '_internal').removeClass(className);
-            }
-        };
-        this.on("mouseout", removeFn, this.dom);
-        return this;
-    },
-
-    /**
-     * Sets up event handlers to add and remove a css class when this element has the focus
-     * @param {String} className
-     * @return {Ext.Element} this
-     */
-    addClassOnFocus : function(className){
-        this.on("focus", function(){
-            Ext.fly(this, '_internal').addClass(className);
-        }, this.dom);
-        this.on("blur", function(){
-            Ext.fly(this, '_internal').removeClass(className);
-        }, this.dom);
-        return this;
-    },
-    /**
-     * Sets up event handlers to add and remove a css class when the mouse is down and then up on this element (a click effect)
-     * @param {String} className
-     * @return {Ext.Element} this
-     */
-    addClassOnClick : function(className){
-        var dom = this.dom;
-        this.on("mousedown", function(){
-            Ext.fly(dom, '_internal').addClass(className);
-            var d = Ext.get(document);
-            var fn = function(){
-                Ext.fly(dom, '_internal').removeClass(className);
-                d.removeListener("mouseup", fn);
-            };
-            d.on("mouseup", fn);
-        });
-        return this;
-    },
-
-    /**
-     * Stops the specified event from bubbling and optionally prevents the default action
-     * @param {String} eventName
-     * @param {Boolean} preventDefault (optional) true to prevent the default action too
-     * @return {Ext.Element} this
-     */
-    swallowEvent : function(eventName, preventDefault){
-        var fn = function(e){
-            e.stopPropagation();
-            if(preventDefault){
-                e.preventDefault();
-            }
-        };
-        if(eventName instanceof Array){
-            for(var i = 0, len = eventName.length; i < len; i++){
-                 this.on(eventName[i], fn);
-            }
-            return this;
-        }
-        this.on(eventName, fn);
-        return this;
-    },
-
-    /**
-     * Sizes this element to its parent element's dimensions performing 
-     * neccessary box adjustments. 
-     * @param {Boolean} monitorResize (optional) If true maintains the fit when the browser window is resized.
-     * @param {String/HTMLElment/Element} targetParent (optional) The target parent, default to the parentNode.
-     * @return {Ext.Element} this
-     */
-    fitToParent : function(monitorResize, targetParent){
-        var p = Ext.get(targetParent || this.dom.parentNode);
-        this.setSize(p.getComputedWidth()-p.getFrameWidth('lr'), p.getComputedHeight()-p.getFrameWidth('tb'));
-        if(monitorResize === true){
-            Ext.EventManager.onWindowResize(this.fitToParent.createDelegate(this, []));
-        }
-        return this;
-    },
-    
-    /**
-     * Gets the next sibling, skipping text nodes
-     * @return {HTMLElement} The next sibling or null
-	 */
-    getNextSibling : function(){
-        var n = this.dom.nextSibling;
-        while(n && n.nodeType != 1){
-            n = n.nextSibling;
-        }
-        return n;
-    },
-    
-    /**
-     * Gets the previous sibling, skipping text nodes
-     * @return {HTMLElement} The previous sibling or null
-	 */
-    getPrevSibling : function(){
-        var n = this.dom.previousSibling;
-        while(n && n.nodeType != 1){
-            n = n.previousSibling;
-        }
-        return n;
-    },
-    
-    
-    /**
-     * Appends the passed element(s) to this element
-     * @param {String/HTMLElement/Array/Element/CompositeElement} el
-     * @return {Ext.Element} this
-     */
-    appendChild: function(el){
-        el = Ext.get(el);
-        el.appendTo(this);
-        return this;
-    },
-    
-    /**
-     * Creates the passed DomHelper config and appends it to this element or optionally inserts it before the passed child element.
-     * @param {Object} config DomHelper element config object
-     * @param {HTMLElement} insertBefore (optional) a child element of this element
-     * @param {Boolean} returnDom (optional) true to return the dom node instead of creating an Element
-     * @return {Ext.Element} The new child element
-     */
-    createChild: function(config, insertBefore, returnDom){
-        config = config || {tag:'div'};
-        if(insertBefore){
-            return Ext.DomHelper.insertBefore(insertBefore, config, returnDom !== true);
-        }
-        return Ext.DomHelper[!this.dom.firstChild ? 'overwrite' : 'append'](this.dom, config,  returnDom !== true);
-    },
-    
-    /**
-     * Appends this element to the passed element
-     * @param {String/HTMLElement/Element} el The new parent element
-     * @return {Ext.Element} this
-     */
-    appendTo: function(el){
-        el = Ext.getDom(el);
-        el.appendChild(this.dom);
-        return this;
-    },
-    
-    /**
-     * Inserts this element before the passed element in the DOM
-     * @param {String/HTMLElement/Element} el The element to insert before
-     * @return {Ext.Element} this
-     */
-    insertBefore: function(el){
-        el = Ext.getDom(el);
-        el.parentNode.insertBefore(this.dom, el);
-        return this;
-    },
-    
-    /**
-     * Inserts this element after the passed element in the DOM
-     * @param {String/HTMLElement/Element} el The element to insert after
-     * @return {Ext.Element} this
-     */
-    insertAfter: function(el){
-        el = Ext.getDom(el);
-        el.parentNode.insertBefore(this.dom, el.nextSibling);
-        return this;
-    },
-
-    /**
-     * Inserts (or creates) an element (or DomHelper config) as the first child of the this element
-     * @param {String/HTMLElement/Element/Object} el The id or element to insert or a DomHelper config to create and insert
-     * @return {Ext.Element} The new child
-     */
-    insertFirst: function(el, returnDom){
-        el = el || {};
-        if(typeof el == 'object' && !el.nodeType){ // dh config
-            return this.createChild(el, this.dom.firstChild, returnDom);
-        }else{
-            el = Ext.getDom(el);
-            this.dom.insertBefore(el, this.dom.firstChild);
-            return !returnDom ? Ext.get(el) : el;
-        }
-    },
-
-    /**
-     * Inserts (or creates) the passed element (or DomHelper config) as a sibling of this element
-     * @param {String/HTMLElement/Element/Object} el The id or element to insert or a DomHelper config to create and insert
-     * @param {String} where (optional) 'before' or 'after' defaults to before
-     * @param {Boolean} returnDom (optional) True to return the raw DOM element instead of Ext.Element
-     * @return {Ext.Element} the inserted Element
-     */
-    insertSibling: function(el, where, returnDom){
-        where = where ? where.toLowerCase() : 'before';
-        el = el || {};
-        var rt, refNode = where == 'before' ? this.dom : this.dom.nextSibling;
-
-        if(typeof el == 'object' && !el.nodeType){ // dh config
-            if(where == 'after' && !this.dom.nextSibling){
-                rt = Ext.DomHelper.append(this.dom.parentNode, el, !returnDom);
-            }else{
-                rt = Ext.DomHelper[where == 'after' ? 'insertAfter' : 'insertBefore'](this.dom, el, !returnDom);
-            }
-
-        }else{
-            rt = this.dom.parentNode.insertBefore(Ext.getDom(el),
-                        where == 'before' ? this.dom : this.dom.nextSibling);
-            if(!returnDom){
-                rt = Ext.get(rt);
-            }
-        }
-        return rt;
-    },
-
-    /**
-     * Creates and wraps this element with another element
-     * @param {Object} config (optional) DomHelper element config object for the wrapper element or null for an empty div
-     * @param {Boolean} returnDom (optional) True to return the raw DOM element instead of Ext.Element
-     * @return {/HTMLElementElement} The newly created wrapper element
-     */
-    wrap: function(config, returnDom){
-        if(!config){
-            config = {tag: "div"};
-        }
-        var newEl = Ext.DomHelper.insertBefore(this.dom, config, !returnDom);
-        newEl.dom ? newEl.dom.appendChild(this.dom) : newEl.appendChild(this.dom);
-        return newEl;
-    },
-    
-    /**
-     * Replaces the passed element with this element
-     * @param {String/HTMLElement/Element} el The element to replace
-     * @return {Ext.Element} this
-     */
-    replace: function(el){
-        el = Ext.get(el);
-        this.insertBefore(el);
-        el.remove();
-        return this;
-    },
-    
-    /**
-     * Inserts an html fragment into this element
-     * @param {String} where Where to insert the html in relation to the this element - beforeBegin, afterBegin, beforeEnd, afterEnd.
-     * @param {String} html The HTML fragment
-     * @return {HTMLElement} The inserted node (or nearest related if more than 1 inserted)
-     */
-    insertHtml : function(where, html){
-        return Ext.DomHelper.insertHtml(where, this.dom, html);
-    },
-    
-    /**
-     * Sets the passed attributes as attributes of this element (a style attribute can be a string, object or function)
-     * @param {Object} o The object with the attributes
-     * @param {Boolean} useSet (optional) false to override the default setAttribute to use expandos.
-     * @return {Ext.Element} this
-     */
-    set : function(o, useSet){
-        var el = this.dom;
-        useSet = typeof useSet == 'undefined' ? (el.setAttribute ? true : false) : useSet;
-        for(var attr in o){
-            if(attr == "style" || typeof o[attr] == "function") continue;
-            if(attr=="cls"){
-                el.className = o["cls"];
-            }else{
-                if(useSet) el.setAttribute(attr, o[attr]);
-                else el[attr] = o[attr];
-            }
-        }
-        Ext.DomHelper.applyStyles(el, o.style);
-        return this;
-    },
-    
-    /**
-     * Convenience method for constructing a KeyMap
-     * @param {Number/Array/Object/String} key Either a string with the keys to listen for, the numeric key code, array of key codes or an object with the following options: 
-     *                                  {key: (number or array), shift: (true/false), ctrl: (true/false), alt: (true/false)}
-     * @param {Function} fn The function to call
-     * @param {Object} scope (optional) The scope of the function
-     * @return {Ext.KeyMap} The KeyMap created
-     */
-    addKeyListener : function(key, fn, scope){
-        var config;
-        if(typeof key != "object" || key instanceof Array){
-            config = {
-                key: key,
-                fn: fn,
-                scope: scope 
-            };
-        }else{
-            config = {
-                key : key.key,
-                shift : key.shift,
-                ctrl : key.ctrl,
-                alt : key.alt,
-                fn: fn,
-                scope: scope
-            };
-        }
-        return new Ext.KeyMap(this, config);
-    },
-    
-    /**
-     * Creates a KeyMap for this element
-     * @param {Object} config The KeyMap config. See {@link Ext.KeyMap} for more details
-     * @return {Ext.KeyMap} The KeyMap created
-     */
-    addKeyMap : function(config){
-        return new Ext.KeyMap(this, config);
-    },
-    
-    /**
-     * Returns true if this element is scrollable.
-     * @return {Boolean}
-     */
-     isScrollable : function(){
-        var dom = this.dom;
-        return dom.scrollHeight > dom.clientHeight || dom.scrollWidth > dom.clientWidth;
-    },
-    
-    /**
-     * Scrolls this element the specified scroll point. It does NOT do bounds checking so if you scroll to a weird value it will try to do it. For auto bounds checking, use scroll().
-     * @param {String} side Either "left" for scrollLeft values or "top" for scrollTop values.
-     * @param {Number} value The new scroll value
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Element} this
-     */
-     
-    scrollTo : function(side, value, animate){
-        var prop = side.toLowerCase() == "left" ? "scrollLeft" : "scrollTop";
-        if(!animate || !A){
-            this.dom[prop] = value;
-        }else{
-            var to = prop == "scrollLeft" ? [value, this.dom.scrollTop] : [this.dom.scrollLeft, value];
-            this.anim({scroll: {"to": to}}, this.preanim(arguments, 2), 'scroll');
-        }
-        return this;
-    },
-    
-    /**
-     * Scrolls this element the specified direction. Does bounds checking to make sure the scroll is 
-     * within this elements scrollable range.
-     * @param {String} direction Possible values are: "l","left" - "r","right" - "t","top","up" - "b","bottom","down".
-     * @param {Number} distance How far to scroll the element in pixels
-     * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object
-     * @return {Boolean} Returns true if a scroll was triggered or false if the element 
-     * was scrolled as far as it could go.
-     */
-     scroll : function(direction, distance, animate){
-         if(!this.isScrollable()){
-             return;
-         }
-         var el = this.dom;
-         var l = el.scrollLeft, t = el.scrollTop;
-         var w = el.scrollWidth, h = el.scrollHeight;
-         var cw = el.clientWidth, ch = el.clientHeight;
-         direction = direction.toLowerCase();
-         var scrolled = false;
-         var a = this.preanim(arguments, 2);
-         switch(direction){
-             case "l":
-             case "left":
-                 if(w - l > cw){
-                     var v = Math.min(l + distance, w-cw);
-                     this.scrollTo("left", v, a);
-                     scrolled = true;
-                 }
-                 break;
-            case "r":
-            case "right":
-                 if(l > 0){
-                     var v = Math.max(l - distance, 0);
-                     this.scrollTo("left", v, a);
-                     scrolled = true;
-                 }
-                 break;
-            case "t":
-            case "top":
-            case "up":
-                 if(t > 0){
-                     var v = Math.max(t - distance, 0);
-                     this.scrollTo("top", v, a);
-                     scrolled = true;
-                 }
-                 break;
-            case "b":
-            case "bottom":
-            case "down":
-                 if(h - t > ch){
-                     var v = Math.min(t + distance, h-ch);
-                     this.scrollTo("top", v, a);
-                     scrolled = true;
-                 }
-                 break;
-         }
-         return scrolled;
-    },
-
-    /**
-     * Translates the passed page coordinates into left/top css values for this element
-     * @param {Number/Array} x The page x or an array containing [x, y]
-     * @param {Number} y The page y
-     * @param {Object} An object with left and top properties. e.g. {left: (value), top: (value)}
-     */
-    translatePoints : function(x, y){
-        if(typeof x == 'object' || x instanceof Array){
-            y = x[1]; x = x[0];
-        }
-        var p = this.getStyle('position');
-        var o = this.getXY();
-
-        var l = parseInt(this.getStyle('left'), 10);
-        var t = parseInt(this.getStyle('top'), 10);
-
-        if(isNaN(l)){
-            l = (p == "relative") ? 0 : this.dom.offsetLeft;
-        }
-        if(isNaN(t)){
-            t = (p == "relative") ? 0 : this.dom.offsetTop;
-        }
-
-        return {left: (x - o[0] + l), top: (y - o[1] + t)};
-    },
-
-    getScroll : function(){
-        var d = this.dom, doc = document;
-        if(d == doc || d == doc.body){
-            var l = window.pageXOffset || doc.documentElement.scrollLeft || doc.body.scrollLeft || 0;
-            var t = window.pageYOffset || doc.documentElement.scrollTop || doc.body.scrollTop || 0;
-            return {left: l, top: t};
-        }else{
-            return {left: d.scrollLeft, top: d.scrollTop};
-        }
-    },
-
-    /**
-     * Return the CSS color for the specified CSS attribute. rgb, 3 digit (like #fff) and valid values
-     * are convert to standard 6 digit hex color. 
-     * @param {String} attr The css attribute
-     * @param {String} defaultValue The default value to use when a valid color isn't found
-     * @param {String} prefix (optional) defaults to #. Use an empty string when working with 
-     * YUI color anims.
-     */
-    getColor : function(attr, defaultValue, prefix){
-        var v = this.getStyle(attr);
-        if(!v || v == "transparent" || v == "inherit") {
-            return defaultValue;
-        }
-        var color = typeof prefix == "undefined" ? "#" : prefix;
-        if(v.substr(0, 4) == "rgb("){
-            var rvs = v.slice(4, v.length -1).split(",");
-            for(var i = 0; i < 3; i++){
-                var h = parseInt(rvs[i]).toString(16);
-                if(h < 16){
-                    h = "0" + h;
-                }
-                color += h;
-            }
-        } else {  
-            if(v.substr(0, 1) == "#"){
-                if(v.length == 4) {
-                    for(var i = 1; i < 4; i++){
-                        var c = v.charAt(i);
-                        color +=  c + c;
-                    }
-                }else if(v.length == 7){
-                    color += v.substr(1);
-                }
-            }
-        }
-        return(color.length > 5 ? color.toLowerCase() : defaultValue);  
-    },
-
-    boxWrap : function(cls){
-        cls = cls || 'x-box';
-        var el = Ext.get(this.insertHtml('beforeBegin', String.format('<div class="{0}">'+El.boxMarkup+'</div>', cls)));
-        el.child('.'+cls+'-mc').dom.appendChild(this.dom);
-        return el;
-    },
-
-    getAttributeNS : Ext.isIE ? function(ns, name){
-        var d = this.dom;
-        var type = typeof d[ns+":"+name];
-        if(type != 'undefined' && type != 'unknown'){
-            return d[ns+":"+name];
-        }
-        return d[name];
-    } : function(ns, name){
-        var d = this.dom;
-        return d.getAttributeNS(ns, name) || d.getAttribute(ns+":"+name) || d.getAttribute(name) || d[name];
-    }
-};
-
-var ep = El.prototype;
-
-/**
- * Appends an event handler (Shorthand for addListener)
- * @param {String}   eventName     The type of event to append
- * @param {Function} fn        The method the event invokes
- * @param {Object} scope       (optional) The scope (this object) of the fn
- * @param {Object}   options   (optional)An object with standard EventManager options
- * @method
- */
-ep.on = ep.addListener;
-    // backwards compat
-ep.mon = ep.addListener;
-
-/**
- * Removes an event handler from this element (shorthand for removeListener)
- * @param {String} eventName the type of event to remove
- * @param {Function} fn the method the event invokes
- * @return {Ext.Element} this
- * @method
- */
-ep.un = ep.removeListener;
-
-/**
- * true to automatically adjust width and height settings for box-model issues (default to true)
- */
-ep.autoBoxAdjust = true;
-/**
- * true to automatically detect display mode and use display instead of visibility with show()/hide() (defaults to false).
- * To enable this globally:<pre><code>Ext.Element.prototype.autoDisplayMode = true;</code></pre>
- */
-ep.autoDisplayMode = true;
-
-El.unitPattern = /\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i;
-
-El.addUnits = function(v, defaultUnit){
-    if(v === "" || v == "auto"){
-        return v;
-    }
-    if(v === undefined){
-        return '';
-    }
-    if(typeof v == "number" || !El.unitPattern.test(v)){
-        return v + (defaultUnit || 'px');
-    }
-    return v;
-};
-
-// special markup used throughout Ext when box wrapping elements
-El.boxMarkup = '<div class="{0}-tl"><div class="{0}-tr"><div class="{0}-tc"></div></div></div><div class="{0}-ml"><div class="{0}-mr"><div class="{0}-mc"></div></div></div><div class="{0}-bl"><div class="{0}-br"><div class="{0}-bc"></div></div></div>';
-/**
- * Visibility mode constant - Use visibility to hide element
- * @static
- * @type Number
- */
-El.VISIBILITY = 1;
-/**
- * Visibility mode constant - Use display to hide element
- * @static
- * @type Number
- */
-El.DISPLAY = 2;
-
-El.borders = {l: "border-left-width", r: "border-right-width", t: "border-top-width", b: "border-bottom-width"};
-El.paddings = {l: "padding-left", r: "padding-right", t: "padding-top", b: "padding-bottom"};
-El.margins = {l: "margin-left", r: "margin-right", t: "margin-top", b: "margin-bottom"};
-
-
-
-/**
- * @private
- */
-El.cache = {};
-
-var docEl;
-
-/**
- * Static method to retrieve Element objects. Uses simple caching to consistently return the same object.
- * Automatically fixes if an object was recreated with the same id via AJAX or DOM.
- * @param {String/HTMLElement/Element} el The id of the node, a DOM Node or an existing Element.
- * @return {Element} The Element object
- * @static
- */
-El.get = function(el){
-    var ex, elm, id;
-    if(!el){ return null; }
-    if(typeof el == "string"){ // element id
-        if(!(elm = document.getElementById(el))){
-            return null;
-        }
-        if(ex = El.cache[el]){
-            ex.dom = elm;
-        }else{
-            ex = El.cache[el] = new El(elm);
-        }
-        return ex;
-    }else if(el.tagName){ // dom element
-        if(!(id = el.id)){
-            id = Ext.id(el);
-        }
-        if(ex = El.cache[id]){
-            ex.dom = el;
-        }else{
-            ex = El.cache[id] = new El(el);
-        }
-        return ex;
-    }else if(el instanceof El){
-        if(el != docEl){
-            el.dom = document.getElementById(el.id) || el.dom; // refresh dom element in case no longer valid,
-                                                          // catch case where it hasn't been appended
-            El.cache[el.id] = el; // in case it was created directly with Element(), let's cache it
-        }
-        return el;
-    }else if(el.isComposite){
-        return el;
-    }else if(el instanceof Array){
-        return El.select(el);
-    }else if(el == document){
-        // create a bogus element object representing the document object
-        if(!docEl){
-            var f = function(){};
-            f.prototype = El.prototype;
-            docEl = new f();
-            docEl.dom = document;
-        }
-        return docEl;
-    }
-    return null;
-};
-
-El.uncache = function(el){
-    for(var i = 0, a = arguments, len = a.length; i < len; i++) {
-        if(a[i]){
-            delete El.cache[a[i].id || a[i]];
-        }
-    }
-};
-
-// dom is optional
-El.Flyweight = function(dom){
-    this.dom = dom;
-};
-El.Flyweight.prototype = El.prototype;
-
-El._flyweights = {};
-/**
- * Gets the globally shared flyweight Element, with the passed node as the active element. Do not store a reference to this element - 
- * the dom node can be overwritten by other code.
- * @param {String/HTMLElement} el The dom node or id
- * @param {String} named (optional) Allows for creation of named reusable flyweights to
- *                                  prevent conflicts (e.g. internally Ext uses "_internal")
- * @static
- * @return {Element} The shared Element object
- */
-El.fly = function(el, named){
-    named = named || '_global';
-    el = Ext.getDom(el);
-    if(!el){
-        return null;
-    }
-    if(!El._flyweights[named]){
-        El._flyweights[named] = new El.Flyweight();
-    }
-    El._flyweights[named].dom = el;
-    return El._flyweights[named];
-};
-
-/**
- * Static method to retrieve Element objects. Uses simple caching to consistently return the same object. 
- * Automatically fixes if an object was recreated with the same id via AJAX or DOM.
- * Shorthand of {@link Ext.Element#get}
- * @param {String/HTMLElement/Element} el The id of the node, a DOM Node or an existing Element.
- * @return {Element} The Element object
- * @member Ext
- * @method get
- */
-Ext.get = El.get;
-/**
- * Gets the globally shared flyweight Element, with the passed node as the active element. Do not store a reference to this element - 
- * the dom node can be overwritten by other code.
- * Shorthand of {@link Ext.Element#fly}
- * @param {String/HTMLElement} el The dom node or id
- * @param {String} named (optional) Allows for creation of named reusable flyweights to
- *                                  prevent conflicts (e.g. internally Ext uses "_internal")
- * @static
- * @return {Element} The shared Element object
- * @member Ext
- * @method fly
- */
-Ext.fly = El.fly;
-
-// speedy lookup for elements never to box adjust
-var noBoxAdjust = Ext.isStrict ? {
-    select:1
-} : {
-    input:1, select:1, textarea:1
-};
-if(Ext.isIE || Ext.isGecko){
-    noBoxAdjust['button'] = 1;
-}
-
-
-Ext.EventManager.on(window, 'unload', function(){
-    delete El.cache;
-    delete El._flyweights;
-});
-})();
-
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/EventManager.jss.html b/www/extras/extjs/docs/output/EventManager.jss.html deleted file mode 100644 index 5e610d5cf..000000000 --- a/www/extras/extjs/docs/output/EventManager.jss.html +++ /dev/null @@ -1,655 +0,0 @@ -EventManager.js

EventManager.js

/**
- * @class Ext.EventManager
- * Registers event handlers that want to receive a normalized EventObject instead of the standard browser event and provides 
- * several useful events directly.
- * See {@link Ext.EventObject} for more details on normalized event objects.
- * @singleton
- */
-Ext.EventManager = function(){
-    var docReadyEvent, docReadyProcId, docReadyState = false;
-    var resizeEvent, resizeTask, textEvent, textSize;
-    var E = Ext.lib.Event;
-    var D = Ext.lib.Dom;
-
-
-    var fireDocReady = function(){
-        if(!docReadyState){
-            docReadyState = true;
-            Ext.isReady = true;
-            if(docReadyProcId){
-                clearInterval(docReadyProcId);
-            }
-            if(Ext.isGecko || Ext.isOpera) {
-                document.removeEventListener("DOMContentLoaded", fireDocReady, false);
-            }
-            if(docReadyEvent){
-                docReadyEvent.fire();
-                docReadyEvent.clearListeners();
-            }
-        }
-    };
-    
-    var initDocReady = function(){
-        docReadyEvent = new Ext.util.Event();
-        if(Ext.isGecko || Ext.isOpera) {
-            document.addEventListener("DOMContentLoaded", fireDocReady, false);
-        }else if(Ext.isIE){
-            // inspired by  http://www.thefutureoftheweb.com/blog/2006/6/adddomloadevent
-            document.write("<s"+'cript id="ie-deferred-loader" defer="defer" src="/'+'/:"></s'+"cript>");
-            var defer = document.getElementById("ie-deferred-loader");
-            defer.onreadystatechange = function(){
-                if(this.readyState == "complete"){
-                    fireDocReady();
-                    defer.onreadystatechange = null;
-                    defer.parentNode.removeChild(defer);
-                }
-            };
-        }else if(Ext.isSafari){ 
-            docReadyProcId = setInterval(function(){
-                var rs = document.readyState;
-                if(rs == "complete") {
-                    fireDocReady();     
-                 }
-            }, 10);
-        }
-        // no matter what, make sure it fires on load
-        E.on(window, "load", fireDocReady);
-    };
-
-    var createBuffered = function(h, o){
-        var task = new Ext.util.DelayedTask(h);
-        return function(e){
-            // create new event object impl so new events don't wipe out properties
-            e = new Ext.EventObjectImpl(e);
-            task.delay(o.buffer, h, null, [e]);
-        };
-    };
-
-    var createSingle = function(h, el, ename, fn){
-        return function(e){
-            Ext.EventManager.removeListener(el, ename, fn);
-            h(e);
-        };
-    };
-
-    var createDelayed = function(h, o){
-        return function(e){
-            // create new event object impl so new events don't wipe out properties
-            e = new Ext.EventObjectImpl(e);
-            setTimeout(function(){
-                h(e);
-            }, o.delay || 10);
-        };
-    };
-
-    var listen = function(element, ename, opt, fn, scope){
-        var o = (!opt || typeof opt == "boolean") ? {} : opt;
-        fn = fn || o.fn; scope = scope || o.scope;
-        var el = Ext.getDom(element);
-        if(!el){
-            throw "Error listening for \"" + ename + '\". Element "' + element + '" doesn\'t exist.';
-        }
-        var h = function(e){
-            e = Ext.EventObject.setEvent(e);
-            var t;
-            if(o.delegate){
-                t = e.getTarget(o.delegate, el);
-                if(!t){
-                    return;
-                }
-            }else{
-                t = e.target;
-            }
-            if(o.stopEvent === true){
-                e.stopEvent();
-            }
-            if(o.preventDefault === true){
-               e.preventDefault();
-            }
-            if(o.stopPropagation === true){
-                e.stopPropagation();
-            }
-
-            if(o.normalized === false){
-                e = e.browserEvent;
-            }
-
-            fn.call(scope || el, e, t, o);
-        };
-        if(o.delay){
-            h = createDelayed(h, o);
-        }
-        if(o.single){
-            h = createSingle(h, el, ename, fn);
-        }
-        if(o.buffer){
-            h = createBuffered(h, o);
-        }
-        fn._handlers = fn._handlers || [];
-        fn._handlers.push([Ext.id(el), ename, h]);
-
-        E.on(el, ename, h);
-        if(ename == "mousewheel" && el.addEventListener){ // workaround for jQuery
-            el.addEventListener("DOMMouseScroll", h, false);
-            E.on(window, 'unload', function(){
-                el.removeEventListener("DOMMouseScroll", h, false);
-            });
-        }
-        if(ename == "mousedown" && el == document){ // fix stopped mousedowns on the document
-            Ext.EventManager.stoppedMouseDownEvent.addListener(h);
-        }
-        return h;
-    };
-
-    var stopListening = function(el, ename, fn){
-        var id = Ext.id(el), hds = fn._handlers, hd = fn;
-        if(hds){
-            for(var i = 0, len = hds.length; i < len; i++){
-                var h = hds[i];
-                if(h[0] == id && h[1] == ename){
-                    hd = h[2];
-                    hds.splice(i, 1);
-                    break;
-                }
-            }
-        }
-        E.un(el, ename, hd);
-        el = Ext.getDom(el);
-        if(ename == "mousewheel" && el.addEventListener){
-            el.removeEventListener("DOMMouseScroll", hd, false);
-        }
-        if(ename == "mousedown" && el == document){ // fix stopped mousedowns on the document
-            Ext.EventManager.stoppedMouseDownEvent.removeListener(hd);
-        }
-    };
-
-    var propRe = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized)$/;
-    var pub = {
-        
-        /** 
-         * This is no longer needed and is deprecated. Places a simple wrapper around an event handler to override the browser event
-         * object with a Ext.EventObject
-         * @param {Function} fn        The method the event invokes
-         * @param {Object}   scope    An object that becomes the scope of the handler
-         * @param {boolean}  override If true, the obj passed in becomes
-         *                             the execution scope of the listener
-         * @return {Function} The wrapped function
-         * @deprecated
-         */
-        wrap : function(fn, scope, override){
-            return function(e){
-                Ext.EventObject.setEvent(e);
-                fn.call(override ? scope || window : window, Ext.EventObject, scope);
-            };
-        },
-        
-        /**
-         * Appends an event handler
-         *
-         * @param {String/HTMLElement}   element        The html element or id to assign the 
-         *                             event to
-         * @param {String}   eventName     The type of event to append
-         * @param {Function} fn        The method the event invokes
-         * @param {Object}   options   An object with standard EventManager options
-         */
-        addListener : function(element, eventName, fn, scope, options){
-            if(typeof eventName == "object"){
-                var o = eventName;
-                for(var e in o){
-                    if(propRe.test(e)){
-                        continue;
-                    }
-                    if(typeof o[e] == "function"){
-                        // shared options
-                        listen(element, e, o, o[e], o.scope);
-                    }else{
-                        // individual options
-                        listen(element, e, o[e]);
-                    }
-                }
-                return;
-            }
-            return listen(element, eventName, options, fn, scope);
-        },
-        
-        /**
-         * Removes an event handler
-         *
-         * @param {String/HTMLElement}   element        The id or html element to remove the 
-         *                             event from
-         * @param {String}   eventName     The type of event
-         * @param {Function} fn
-         * @return {Boolean} True if a listener was actually removed
-         */
-        removeListener : function(element, eventName, fn){
-            return stopListening(element, eventName, fn);
-        },
-        
-        /**
-         * Fires when the document is ready (before onload and before images are loaded). Can be 
-         * accessed shorthanded Ext.onReady().
-         * @param {Function} fn        The method the event invokes
-         * @param {Object}   scope    An  object that becomes the scope of the handler
-         * @param {boolean}  options
-         */
-        onDocumentReady : function(fn, scope, options){
-            if(docReadyState){ // if it already fired
-                fn.call(scope || window, scope);
-                return;
-            }
-            if(!docReadyEvent){
-                initDocReady();
-            }
-            docReadyEvent.addListener(fn, scope, options);
-        },
-        
-        /**
-         * Fires when the window is resized and provides resize event buffering (50 milliseconds), passes new viewport width and height to handlers.
-         * @param {Function} fn        The method the event invokes
-         * @param {Object}   scope    An object that becomes the scope of the handler
-         * @param {boolean}  options
-         */
-        onWindowResize : function(fn, scope, options){
-            if(!resizeEvent){
-                resizeEvent = new Ext.util.Event();
-                resizeTask = new Ext.util.DelayedTask(function(){
-                    resizeEvent.fire(D.getViewWidth(), D.getViewHeight());
-                });
-                E.on(window, "resize", function(){
-                    if(Ext.isIE){
-                        resizeTask.delay(50);
-                    }else{
-                        resizeEvent.fire(D.getViewWidth(), D.getViewHeight());
-                    }
-                });
-            }
-            resizeEvent.addListener(fn, scope, options);
-        },
-
-        /**
-         * Fires when the user changes the active text size. Handler gets called with 2 params, the old size and the new size.
-         * @param {Function} fn        The method the event invokes
-         * @param {Object}   scope    An object that becomes the scope of the handler
-         * @param {boolean}  options
-         */
-        onTextResize : function(fn, scope, options){
-            if(!textEvent){
-                textEvent = new Ext.util.Event();
-                var textEl = new Ext.Element(document.createElement('div'));
-                textEl.dom.className = 'x-text-resize';
-                textEl.dom.innerHTML = 'X';
-                textEl.appendTo(document.body);
-                textSize = textEl.dom.offsetHeight;
-                setInterval(function(){
-                    if(textEl.dom.offsetHeight != textSize){
-                        textEvent.fire(textSize, textSize = textEl.dom.offsetHeight);
-                    }
-                }, this.textResizeInterval);
-            }
-            textEvent.addListener(fn, scope, options);
-        },
-
-        /**
-         * Removes the passed window resize listener.
-         * @param {Function} fn        The method the event invokes
-         * @param {Object}   scope    The scope of handler
-         */
-        removeResizeListener : function(fn, scope){
-            if(resizeEvent){
-                resizeEvent.removeListener(fn, scope);
-            }
-        },
-        
-        fireResize : function(){
-            if(resizeEvent){
-                resizeEvent.fire(D.getViewWidth(), D.getViewHeight());
-            }   
-        },
-        /**
-         * Url used for onDocumentReady with using SSL (defaults to Ext.SSL_SECURE_URL)
-         */
-        ieDeferSrc : false,
-        textResizeInterval : 50
-    };
-    /**
-     * Appends an event handler (shorthand for addListener)
-     *
-     * @param {String/HTMLElement}   element        The html element or id to assign the 
-     *                             event to
-     * @param {String}   eventName     The type of event to append
-     * @param {Function} fn        The method the event invokes
-     * @param {Object}   scope    An arbitrary object that will be 
-     *                             passed as a parameter to the handler
-     * @param {boolean}  override If true, the obj passed in becomes
-     *                             the execution scope of the listener
-     * @return {Function} The wrapper function created (to be used to remove the listener if necessary)
-     * @method
-     */
-    pub.on = pub.addListener;
-    pub.un = pub.removeListener;
-
-    pub.stoppedMouseDownEvent = new Ext.util.Event();
-    return pub;
-}();
-/**
-  * Fires when the document is ready (before onload and before images are loaded).  Shorthand of {@link Ext.EventManager#onDocumentReady}.
-  * @param {Function} fn        The method the event invokes
-  * @param {Object}   scope    An  object that becomes the scope of the handler
-  * @param {boolean}  override If true, the obj passed in becomes
-  *                             the execution scope of the listener
-  * @member Ext
-  * @method onReady
- */
-Ext.onReady = Ext.EventManager.onDocumentReady;
-
-Ext.onReady(function(){
-    var bd = Ext.get(document.body);
-    if(!bd){ return; }
-    var cls = Ext.isIE ? "ext-ie"
-            : Ext.isGecko ? "ext-gecko"
-            : Ext.isOpera ? "ext-opera"
-            : Ext.isSafari ? "ext-safari" : "";
-    if(Ext.isBorderBox){
-        cls += ' ext-border-box';
-    }
-    if(Ext.isStrict){
-        cls += ' ext-strict';
-    }
-    bd.addClass(cls);
-});
-/**
- * @class Ext.EventObject
- * EventObject exposes the Yahoo! UI Event functionality directly on the object
- * passed to your event handler. It exists mostly for convenience. It also fixes the annoying null checks automatically to cleanup your code 
- * Example:
- * <pre><code>
- function handleClick(e){ // e is not a standard event object, it is a Ext.EventObject
-    e.preventDefault();
-    var target = e.getTarget();
-    ...
- }
- var myDiv = Ext.get("myDiv");
- myDiv.on("click", handleClick);
- //or
- Ext.EventManager.on("myDiv", 'click', handleClick);
- Ext.EventManager.addListener("myDiv", 'click', handleClick);
- </code></pre>
- * @singleton
- */
-Ext.EventObject = function(){
-    
-    var E = Ext.lib.Event;
-    
-    // safari keypress events for special keys return bad keycodes
-    var safariKeys = {
-        63234 : 37, // left
-        63235 : 39, // right
-        63232 : 38, // up
-        63233 : 40, // down
-        63276 : 33, // page up
-        63277 : 34, // page down
-        63272 : 46, // delete
-        63273 : 36, // home
-        63275 : 35  // end
-    };
-
-    // normalize button clicks
-    var btnMap = Ext.isIE ? {1:0,4:1,2:2} :
-                (Ext.isSafari ? {1:0,2:1,3:2} : {0:0,1:1,2:2});
-
-    Ext.EventObjectImpl = function(e){
-        if(e){
-            this.setEvent(e.browserEvent || e);
-        }
-    };
-    Ext.EventObjectImpl.prototype = {
-        /** The normal browser event */
-        browserEvent : null,
-        /** The button pressed in a mouse event */
-        button : -1,
-        /** True if the shift key was down during the event */
-        shiftKey : false,
-        /** True if the control key was down during the event */
-        ctrlKey : false,
-        /** True if the alt key was down during the event */
-        altKey : false,
-
-        /** Key constant @type Number */
-        BACKSPACE : 8,
-        /** Key constant @type Number */
-        TAB : 9,
-        /** Key constant @type Number */
-        RETURN : 13,
-        /** Key constant @type Number */
-        ENTER : 13,
-        /** Key constant @type Number */
-        SHIFT : 16,
-        /** Key constant @type Number */
-        CONTROL : 17,
-        /** Key constant @type Number */
-        ESC : 27,
-        /** Key constant @type Number */
-        SPACE : 32,
-        /** Key constant @type Number */
-        PAGEUP : 33,
-        /** Key constant @type Number */
-        PAGEDOWN : 34,
-        /** Key constant @type Number */
-        END : 35,
-        /** Key constant @type Number */
-        HOME : 36,
-        /** Key constant @type Number */
-        LEFT : 37,
-        /** Key constant @type Number */
-        UP : 38,
-        /** Key constant @type Number */
-        RIGHT : 39,
-        /** Key constant @type Number */
-        DOWN : 40,
-        /** Key constant @type Number */
-        DELETE : 46,
-        /** Key constant @type Number */
-        F5 : 116,
-
-           /** @private */
-        setEvent : function(e){
-            if(e == this || (e && e.browserEvent)){ // already wrapped
-                return e;
-            }
-            this.browserEvent = e;
-            if(e){
-                // normalize buttons
-                this.button = e.button ? btnMap[e.button] : (e.which ? e.which-1 : -1);
-                this.shiftKey = e.shiftKey;
-                // mac metaKey behaves like ctrlKey
-                this.ctrlKey = e.ctrlKey || e.metaKey;
-                this.altKey = e.altKey;
-                // in getKey these will be normalized for the mac
-                this.keyCode = e.keyCode;
-                this.charCode = e.charCode;
-                // cache the target for the delayed and or buffered events
-                this.target = E.getTarget(e);
-                // same for XY
-                this.xy = E.getXY(e);
-            }else{
-                this.button = -1;
-                this.shiftKey = false;
-                this.ctrlKey = false;
-                this.altKey = false;
-                this.keyCode = 0;
-                this.charCode =0;
-                this.target = null;
-                this.xy = [0, 0];
-            }
-            return this;
-        },
-
-        /**
-         * Stop the event (preventDefault and stopPropagation)
-         */
-        stopEvent : function(){
-            if(this.browserEvent){
-                if(this.browserEvent.type == 'mousedown'){
-                    Ext.EventManager.stoppedMouseDownEvent.fire(this);
-                }
-                E.stopEvent(this.browserEvent);
-            }
-        },
-
-        /**
-         * Prevents the browsers default handling of the event.
-         */
-        preventDefault : function(){
-            if(this.browserEvent){
-                E.preventDefault(this.browserEvent);
-            }
-        },
-
-        /** @private */
-        isNavKeyPress : function(){
-            var k = this.keyCode;
-            k = Ext.isSafari ? (safariKeys[k] || k) : k;
-            return (k >= 33 && k <= 40) || k == this.RETURN || k == this.TAB || k == this.ESC;
-        },
-
-        isSpecialKey : function(){
-            var k = this.keyCode;
-            return k == 9 || k == 13  || k == 40 || k == 27 ||
-            (k == 16) || (k == 17) ||
-            (k >= 18 && k <= 20) ||
-            (k >= 33 && k <= 35) ||
-            (k >= 36 && k <= 39) ||
-            (k >= 44 && k <= 45);
-        },
-        /**
-         * Cancels bubbling of the event.
-         */
-        stopPropagation : function(){
-            if(this.browserEvent){
-                if(this.browserEvent.type == 'mousedown'){
-                    Ext.EventManager.stoppedMouseDownEvent.fire(this);
-                }
-                E.stopPropagation(this.browserEvent);
-            }
-        },
-
-        /**
-         * Gets the key code for the event.
-         * @return {Number}
-         */
-        getCharCode : function(){
-            return this.charCode || this.keyCode;
-        },
-
-        /**
-         * Returns a normalized keyCode for the event.
-         * @return {Number} The key code
-         */
-        getKey : function(){
-            var k = this.keyCode || this.charCode;
-            return Ext.isSafari ? (safariKeys[k] || k) : k;
-        },
-
-        /**
-         * Gets the x coordinate of the event.
-         * @return {Number}
-         */
-        getPageX : function(){
-            return this.xy[0];
-        },
-
-        /**
-         * Gets the y coordinate of the event.
-         * @return {Number}
-         */
-        getPageY : function(){
-            return this.xy[1];
-        },
-
-        /**
-         * Gets the time of the event.
-         * @return {Number}
-         */
-        getTime : function(){
-            if(this.browserEvent){
-                return E.getTime(this.browserEvent);
-            }
-            return null;
-        },
-
-        /**
-         * Gets the page coordinates of the event.
-         * @return {Array} The xy values like [x, y]
-         */
-        getXY : function(){
-            return this.xy;
-        },
-
-        /**
-         * Gets the target for the event.
-         * @param {String} selector (optional) A simple selector to filter the target or look for an ancestor of the target
-         * @param {Number/String/HTMLElement/Element} maxDepth (optional) The max depth to
-                search as a number or element (defaults to 10 || document.body)
-         * @param {Boolean} returnEl (optional) True to return a Ext.Element object instead of DOM node
-         * @return {HTMLelement}
-         */
-        getTarget : function(selector, maxDepth, returnEl){
-            return selector ? Ext.fly(this.target).findParent(selector, maxDepth, returnEl) : this.target;
-        },
-        /**
-         * Gets the related target.
-         * @return {HTMLElement}
-         */
-        getRelatedTarget : function(){
-            if(this.browserEvent){
-                return E.getRelatedTarget(this.browserEvent);
-            }
-            return null;
-        },
-
-        /**
-         * Normalizes mouse wheel delta across browsers
-         * @return {Number} The delta
-         */
-        getWheelDelta : function(){
-            var e = this.browserEvent;
-            var delta = 0;
-            if(e.wheelDelta){ /* IE/Opera. */
-                delta = e.wheelDelta/120;
-                /* In Opera 9, delta differs in sign as compared to IE. */
-                if(window.opera) delta = -delta;
-            }else if(e.detail){ /* Mozilla case. */
-                delta = -e.detail/3;
-            }
-            return delta;
-        },
-
-        /**
-         * Returns true if the control, meta, shift or alt key was pressed during this event.
-         * @return {Boolean}
-         */
-        hasModifier : function(){
-            return ((this.ctrlKey || this.altKey) || this.shiftKey) ? true : false;
-        },
-
-        /**
-         * Returns true if the target of this event equals el or is a child of el
-         * @param {String/HTMLElement/Element} el
-         * @param {Boolean} related (optional) true to test if the related target is within el instead of the target
-         * @return {Boolean}
-         */
-        within : function(el, related){
-            var t = this[related ? "getRelatedTarget" : "getTarget"]();
-            return t && Ext.fly(el).contains(t);
-        },
-
-        getPoint : function(){
-            return new Ext.lib.Point(this.xy[0], this.xy[1]);
-        }
-    };
-
-    return new Ext.EventObjectImpl();
-}();
-            
-    

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.BasicDialog.html b/www/extras/extjs/docs/output/Ext.BasicDialog.html deleted file mode 100644 index ceb69d487..000000000 --- a/www/extras/extjs/docs/output/Ext.BasicDialog.html +++ /dev/null @@ -1,1554 +0,0 @@ - - - - Ext.BasicDialog - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.BasicDialog

- - - - - - -
Package:Ext
Class:BasicDialog
Extends:Observable
Subclasses:LayoutDialog
Defined In:BasicDialog.js
-
- Lightweight Dialog Class. The code below shows the creation of a typical dialog using existing HTML markup: -
var dlg = new Ext.BasicDialog("my-dlg", {
-        height: 200,
-        width: 300,
-        minHeight: 100,
-        minWidth: 150,
-        modal: true,
-        proxyDrag: true,
-        shadow: true
-    });
-    dlg.addKeyListener(27, dlg.hide, dlg); // ESC can also close the dialog
-    dlg.addButton('OK', dlg.hide, dlg);    // Could call a save function instead of hiding
-    dlg.addButton('Cancel', dlg.hide, dlg);
-    dlg.show();
- A Dialog should always be a direct child of the body element.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 body : Ext.ElementBasicDialog
The body element
 buttons : ArrayBasicDialog
Array of all the buttons that have been added to this dialog via addButton
 footer : Ext.ElementBasicDialog
The footer element
 header : Ext.ElementBasicDialog
The header element
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 BasicDialog(String/HTMLElement/Ext.Element el, Object config)BasicDialog
Create a new BasicDialog.
 addButton(String/Object config, Function handler, [Object scope]) : Ext.ButtonBasicDialog
Adds a button to the footer section of the dialog.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addKeyListener(Number/Array/Object key, Function fn, [Object scope]) : Ext.BasicDialogBasicDialog
Adds a key listener for when this dialog is displayed. This allows you to hook in a function that will be -executed i...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 alignTo(String/HTMLElement/Ext.Element element, String position, [Array offsets]) : Ext.BasicDialogBasicDialog
Aligns the dialog to the specified element
 anchorTo(String/HTMLElement/Ext.Element element, String position, [Array offsets], [Boolean/Number monitorScroll]) : Ext.BasicDialogBasicDialog
Anchors an element to another element and realigns it when the window is resized.
 center() : Ext.BasicDialogBasicDialog
Centers this dialog in the viewport
 collapse() : voidBasicDialog
Collapses the dialog to its minimized state (only the title bar is visible). -Equivalent to the user clicking the coll...
 destroy([Boolean removeEl]) : voidBasicDialog
Destroys this dialog and all its supporting elements (including any tabs, shim, -shadow, proxy, mask, etc.) Also remo...
 expand() : voidBasicDialog
Expands a collapsed dialog back to its normal state. Equivalent to the user -clicking the expand dialog button.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus() : voidBasicDialog
Focuses the dialog. If a defaultButton is set, it will receive focus, otherwise the -dialog itself will receive focus.
 getEl() : Ext.ElementBasicDialog
Returns the element for this dialog
 getTabs() : Ext.TabPanelBasicDialog
Returns the TabPanel component (creates it if it doesn't exist). -Note: If you wish to simply check for the existence ...
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide([Function callback]) : Ext.BasicDialogBasicDialog
Hides the dialog.
 initTabs() : Ext.TabPanelBasicDialog
Reinitializes the tabs component, clearing out old tabs and finding new ones.
 isVisible() : BooleanBasicDialog
Returns true if the dialog is visible
 moveTo(Number x, Number y) : Ext.BasicDialogBasicDialog
Moves the dialog's top-left corner to the specified point
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 resizeTo(Number width, Number height) : Ext.BasicDialogBasicDialog
Resizes the dialog.
 restoreState() : Ext.BasicDialogBasicDialog
Restores the previous state of the dialog if Ext.state is configured.
 setContentSize(Number width, Number height) : Ext.BasicDialogBasicDialog
Resizes the dialog to fit the specified content size.
 setDefaultButton(Ext.BasicDialog.Button btn) : Ext.BasicDialogBasicDialog
Sets the default button to be focused when the dialog is displayed.
 setTitle(String text) : Ext.BasicDialogBasicDialog
Sets the dialog title text
 show([String/HTMLElement/Ext.Element animateTarget]) : Ext.BasicDialogBasicDialog
Shows the dialog.
 toBack() : Ext.BasicDialogBasicDialog
Sends this dialog to the back (under) of any other visible dialogs
 toFront() : Ext.BasicDialogBasicDialog
Brings this dialog to the front of any other visible dialogs
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforehide : (Ext.BasicDialog this)BasicDialog
Fires before this dialog is hidden.
 beforeshow : (Ext.BasicDialog this)BasicDialog
Fires before this dialog is shown.
 hide : (Ext.BasicDialog this)BasicDialog
Fires when this dialog is hidden.
 keydown : (Ext.BasicDialog this, Ext.EventObject e)BasicDialog
Fires when a key is pressed
 move : (Ext.BasicDialog this, Number x, Number y)BasicDialog
Fires when this dialog is moved by the user.
 resize : (Ext.BasicDialog this, Number width, Number height)BasicDialog
Fires when this dialog is resized by the user.
 show : (Ext.BasicDialog this)BasicDialog
Fires when this dialog is shown.
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 animateTarget : String/ElementBasicDialog
Id or element from which the dialog should animate while opening (defaults to null with no animation)
 autoCreate : Boolean/DomHelperBasicDialog
True to auto create from scratch, or using a DomHelper Object (defaults to false)
 autoScroll : BooleanBasicDialog
True to allow the dialog body contents to overflow and display scrollbars (defaults to false)
 autoTabs : BooleanBasicDialog
If true, all elements with class 'x-dlg-tab' will get automatically converted to tabs (defaults to false)
 buttonAlign : StringBasicDialog
Valid values are "left," "center" and "right" (defaults to "right")
 closable : BooleanBasicDialog
False to remove the built-in top-right corner close button (defaults to true)
 collapsible : BooleanBasicDialog
False to remove the built-in top-right corner collapse button (defaults to true)
 constraintoviewport : BooleanBasicDialog
True to keep the dialog constrained within the visible viewport boundaries (defaults to true)
 draggable : BooleanBasicDialog
False to disable dragging of the dialog within the viewport (defaults to true)
 fixedcenter : BooleanBasicDialog
True to ensure that anytime the dialog is shown or resized it gets centered (defaults to false)
 height : NumberBasicDialog
Height of the dialog in pixels (can also be set via CSS). Determined by browser if unspecified.
 minButtonWidth : NumberBasicDialog
Minimum width of all dialog buttons (defaults to 75)
 minHeight : NumberBasicDialog
The minimum allowable height for a resizable dialog (defaults to 80)
 minWidth : NumberBasicDialog
The minimum allowable width for a resizable dialog (defaults to 200)
 modal : BooleanBasicDialog
True to show the dialog modally, preventing user interaction with the rest of the page (defaults to false)
 proxyDrag : BooleanBasicDialog
True to drag a lightweight proxy element rather than the dialog itself, used when draggable = true (defaults to false)
 resizable : BooleanBasicDialog
False to disable manual dialog resizing (defaults to true)
 resizeHandles : StringBasicDialog
Which resize handles to display - see the Ext.Resizable handles config property for valid values (defaults to 'all')
 shadow : Boolean/StringBasicDialog
True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right shadow (defaults to false)
 shadowOffset : NumberBasicDialog
The number of pixels to offset the shadow if displayed (defaults to 5)
 shim : BooleanBasicDialog
True to create an iframe shim that prevents selects from showing through (defaults to false)
 syncHeightBeforeShow : BooleanBasicDialog
True to cause the dimensions to be recalculated before the dialog is shown (defaults to false)
 tabTag : StringBasicDialog
The tag name of tab elements, used when autoTabs = true (defaults to 'div')
 title : StringBasicDialog
Default text to display in the title bar (defaults to null)
 width : NumberBasicDialog
Width of the dialog in pixels (can also be set via CSS). Determined by browser if unspecified.
 x : NumberBasicDialog
The default top page coordinate of the dialog (defaults to center screen)
 y : NumberBasicDialog
The default left page coordinate of the dialog (defaults to center screen)
-

Property Details

-
- -
-

body

- public Ext.Element body -
- The body element
-
This property is defined by BasicDialog.
-
- -
-

buttons

- public Array buttons -
- Array of all the buttons that have been added to this dialog via addButton
-
This property is defined by BasicDialog.
-
- -
-

footer

- public Ext.Element footer -
- The footer element
-
This property is defined by BasicDialog.
-
- -
-

header

- public Ext.Element header -
- The header element
-
This property is defined by BasicDialog.
-
-
- - -

Constructor Details

-
-
-

BasicDialog

- public function BasicDialog(String/HTMLElement/Ext.Element el, Object config) -
- Create a new BasicDialog.
- Parameters: -
  • el : String/HTMLElement/Ext.Element
    The container element or DOM node, or its id
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addButton

- public function addButton(String/Object config, Function handler, [Object scope]) -
- Adds a button to the footer section of the dialog. -
- Parameters: -
  • config : String/Object
    A string becomes the button text, an object can either be a Button config object or a valid Ext.DomHelper element config
  • handler : Function
    The function called when the button is clicked
  • scope : Object
    (optional) The scope of the handler function
- Returns: -
    -
  • Ext.Button
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addKeyListener

- public function addKeyListener(Number/Array/Object key, Function fn, [Object scope]) -
- Adds a key listener for when this dialog is displayed. This allows you to hook in a function that will be -executed in response to a particular key being pressed while the dialog is active. -
- Parameters: -
  • key : Number/Array/Object
    Either the numeric key code, array of key codes or an object with the following options: {key: (number or array), shift: (true/false), ctrl: (true/false), alt: (true/false)}
  • fn : Function
    The function to call
  • scope : Object
    (optional) The scope of the function
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

alignTo

- public function alignTo(String/HTMLElement/Ext.Element element, String position, [Array offsets]) -
- Aligns the dialog to the specified element -
- Parameters: -
  • element : String/HTMLElement/Ext.Element
    The element to align to.
  • position : String
    The position to align to (see Ext.Element.alignTo for more details).
  • offsets : Array
    (optional) Offset the positioning by [x, y]
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

anchorTo

- public function anchorTo(String/HTMLElement/Ext.Element element, String position, [Array offsets], [Boolean/Number monitorScroll]) -
- Anchors an element to another element and realigns it when the window is resized. -
- Parameters: -
  • element : String/HTMLElement/Ext.Element
    The element to align to.
  • position : String
    The position to align to (see Ext.Element.alignTo for more details)
  • offsets : Array
    (optional) Offset the positioning by [x, y]
  • monitorScroll : Boolean/Number
    (optional) true to monitor body scroll and reposition. If this parameter is a number, it is used as the buffer delay (defaults to 50ms).
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

center

- public function center() -
- Centers this dialog in the viewport -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

collapse

- public function collapse() -
- Collapses the dialog to its minimized state (only the title bar is visible). -Equivalent to the user clicking the collapse dialog button. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

destroy

- public function destroy([Boolean removeEl]) -
- Destroys this dialog and all its supporting elements (including any tabs, shim, -shadow, proxy, mask, etc.) Also removes all event listeners. -
- Parameters: -
  • removeEl : Boolean
    (optional) true to remove the element from the DOM
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

expand

- public function expand() -
- Expands a collapsed dialog back to its normal state. Equivalent to the user -clicking the expand dialog button. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus() -
- Focuses the dialog. If a defaultButton is set, it will receive focus, otherwise the -dialog itself will receive focus. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

getEl

- public function getEl() -
- Returns the element for this dialog -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The underlying dialog Element
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

getTabs

- public function getTabs() -
- Returns the TabPanel component (creates it if it doesn't exist). -Note: If you wish to simply check for the existence of tabs without creating them, -check for a null 'tabs' property. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.TabPanel
    The tabs component
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide([Function callback]) -
- Hides the dialog. -
- Parameters: -
  • callback : Function
    (optional) Function to call when the dialog is hidden
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

initTabs

- public function initTabs() -
- Reinitializes the tabs component, clearing out old tabs and finding new ones. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.TabPanel
    The tabs component
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if the dialog is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

moveTo

- public function moveTo(Number x, Number y) -
- Moves the dialog's top-left corner to the specified point -
- Parameters: -
  • x : Number
  • y : Number
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

resizeTo

- public function resizeTo(Number width, Number height) -
- Resizes the dialog. -
- Parameters: -
  • width : Number
  • height : Number
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

restoreState

- public function restoreState() -
- Restores the previous state of the dialog if Ext.state is configured. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

setContentSize

- public function setContentSize(Number width, Number height) -
- Resizes the dialog to fit the specified content size. -
- Parameters: -
  • width : Number
  • height : Number
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

setDefaultButton

- public function setDefaultButton(Ext.BasicDialog.Button btn) -
- Sets the default button to be focused when the dialog is displayed. -
- Parameters: -
  • btn : Ext.BasicDialog.Button
    The button object returned by addButton
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

setTitle

- public function setTitle(String text) -
- Sets the dialog title text -
- Parameters: -
  • text : String
    The title text to display
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

show

- public function show([String/HTMLElement/Ext.Element animateTarget]) -
- Shows the dialog. -
- Parameters: -
  • animateTarget : String/HTMLElement/Ext.Element
    (optional) Reset the animation target
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

toBack

- public function toBack() -
- Sends this dialog to the back (under) of any other visible dialogs -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

toFront

- public function toFront() -
- Brings this dialog to the front of any other visible dialogs -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforehide

- public event beforehide -
- Fires before this dialog is hidden. -
- Subscribers will be called with the following parameters: -
  • this : Ext.BasicDialog
-
-
-
This event is defined by BasicDialog.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before this dialog is shown. -
- Subscribers will be called with the following parameters: -
  • this : Ext.BasicDialog
-
-
-
This event is defined by BasicDialog.
-
- -
-

hide

- public event hide -
- Fires when this dialog is hidden. -
- Subscribers will be called with the following parameters: -
  • this : Ext.BasicDialog
-
-
-
This event is defined by BasicDialog.
-
- -
-

keydown

- public event keydown -
- Fires when a key is pressed -
- Subscribers will be called with the following parameters: -
  • this : Ext.BasicDialog
  • e : Ext.EventObject
-
-
-
This event is defined by BasicDialog.
-
- -
-

move

- public event move -
- Fires when this dialog is moved by the user. -
- Subscribers will be called with the following parameters: -
  • this : Ext.BasicDialog
  • x : Number
    The new page X
  • y : Number
    The new page Y
-
-
-
This event is defined by BasicDialog.
-
- -
-

resize

- public event resize -
- Fires when this dialog is resized by the user. -
- Subscribers will be called with the following parameters: -
  • this : Ext.BasicDialog
  • width : Number
    The new width
  • height : Number
    The new height
-
-
-
This event is defined by BasicDialog.
-
- -
-

show

- public event show -
- Fires when this dialog is shown. -
- Subscribers will be called with the following parameters: -
  • this : Ext.BasicDialog
-
-
-
This event is defined by BasicDialog.
-
-
-

Config Details

-
- -
-

animateTarget

- animateTarget : String/Element -
- Id or element from which the dialog should animate while opening (defaults to null with no animation)
-
This config option is defined by BasicDialog.
-
- -
-

autoCreate

- autoCreate : Boolean/DomHelper -
- True to auto create from scratch, or using a DomHelper Object (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

autoScroll

- autoScroll : Boolean -
- True to allow the dialog body contents to overflow and display scrollbars (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

autoTabs

- autoTabs : Boolean -
- If true, all elements with class 'x-dlg-tab' will get automatically converted to tabs (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

buttonAlign

- buttonAlign : String -
- Valid values are "left," "center" and "right" (defaults to "right")
-
This config option is defined by BasicDialog.
-
- -
-

closable

- closable : Boolean -
- False to remove the built-in top-right corner close button (defaults to true)
-
This config option is defined by BasicDialog.
-
- -
-

collapsible

- collapsible : Boolean -
- False to remove the built-in top-right corner collapse button (defaults to true)
-
This config option is defined by BasicDialog.
-
- -
-

constraintoviewport

- constraintoviewport : Boolean -
- True to keep the dialog constrained within the visible viewport boundaries (defaults to true)
-
This config option is defined by BasicDialog.
-
- -
-

draggable

- draggable : Boolean -
- False to disable dragging of the dialog within the viewport (defaults to true)
-
This config option is defined by BasicDialog.
-
- -
-

fixedcenter

- fixedcenter : Boolean -
- True to ensure that anytime the dialog is shown or resized it gets centered (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

height

- height : Number -
- Height of the dialog in pixels (can also be set via CSS). Determined by browser if unspecified.
-
This config option is defined by BasicDialog.
-
- -
-

minButtonWidth

- minButtonWidth : Number -
- Minimum width of all dialog buttons (defaults to 75)
-
This config option is defined by BasicDialog.
-
- -
-

minHeight

- minHeight : Number -
- The minimum allowable height for a resizable dialog (defaults to 80)
-
This config option is defined by BasicDialog.
-
- -
-

minWidth

- minWidth : Number -
- The minimum allowable width for a resizable dialog (defaults to 200)
-
This config option is defined by BasicDialog.
-
- -
-

modal

- modal : Boolean -
- True to show the dialog modally, preventing user interaction with the rest of the page (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

proxyDrag

- proxyDrag : Boolean -
- True to drag a lightweight proxy element rather than the dialog itself, used when draggable = true (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

resizable

- resizable : Boolean -
- False to disable manual dialog resizing (defaults to true)
-
This config option is defined by BasicDialog.
-
- -
-

resizeHandles

- resizeHandles : String -
- Which resize handles to display - see the Ext.Resizable handles config property for valid values (defaults to 'all')
-
This config option is defined by BasicDialog.
-
- -
-

shadow

- shadow : Boolean/String -
- True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right shadow (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

shadowOffset

- shadowOffset : Number -
- The number of pixels to offset the shadow if displayed (defaults to 5)
-
This config option is defined by BasicDialog.
-
- -
-

shim

- shim : Boolean -
- True to create an iframe shim that prevents selects from showing through (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

syncHeightBeforeShow

- syncHeightBeforeShow : Boolean -
- True to cause the dimensions to be recalculated before the dialog is shown (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

tabTag

- tabTag : String -
- The tag name of tab elements, used when autoTabs = true (defaults to 'div')
-
This config option is defined by BasicDialog.
-
- -
-

title

- title : String -
- Default text to display in the title bar (defaults to null)
-
This config option is defined by BasicDialog.
-
- -
-

width

- width : Number -
- Width of the dialog in pixels (can also be set via CSS). Determined by browser if unspecified.
-
This config option is defined by BasicDialog.
-
- -
-

x

- x : Number -
- The default top page coordinate of the dialog (defaults to center screen)
-
This config option is defined by BasicDialog.
-
- -
-

y

- y : Number -
- The default left page coordinate of the dialog (defaults to center screen)
-
This config option is defined by BasicDialog.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.BasicLayoutRegion.html b/www/extras/extjs/docs/output/Ext.BasicLayoutRegion.html deleted file mode 100644 index e8dfd6620..000000000 --- a/www/extras/extjs/docs/output/Ext.BasicLayoutRegion.html +++ /dev/null @@ -1,776 +0,0 @@ - - - - Ext.BasicLayoutRegion - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.BasicLayoutRegion

- - - - - - -
Package:Ext
Class:BasicLayoutRegion
Extends:Observable
Subclasses:LayoutRegion
Defined In:BasicLayoutRegion.js
-
- This class represents a lightweight region in a layout manager. This region does not move dom nodes -and does not have a titlebar, tabs or any other features. All it does is size and position -panels. To create a BasicLayoutRegion, add lightweight:true or basic:true to your regions config.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 panels : Ext.util.MixedCollectionBasicLayoutRegion
A collection of panels in this region.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 add(ContentPanel... panel) : Ext.ContentPanelBasicLayoutRegion
Add the passed ContentPanel(s)
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getActivePanel() : Ext.ContentPanelBasicLayoutRegion
Get the active panel for this region.
 getEl() : Ext.ElementBasicLayoutRegion
Returns the container element for this region.
 getPanel(Number/String/ContentPanel panel) : Ext.ContentPanelBasicLayoutRegion
Returns the panel specified or null if it's not in this region.
 getPosition() : StringBasicLayoutRegion
Returns this regions position (north/south/east/west/center).
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hasPanel(Number/String/ContentPanel panel) : BooleanBasicLayoutRegion
Returns true if the panel is in this region.
 isVisible() : BooleanBasicLayoutRegion
Returns true if this region is currently visible.
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 remove(Number/String/ContentPanel panel, Boolean preservePanel) : Ext.ContentPanelBasicLayoutRegion
Removes the specified panel. If preservePanel is not true (either here or in the config), the panel is destroyed.
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 resizeTo(Number newSize) : voidBasicLayoutRegion
Resizes the region to the specified size. For vertical regions (west, east) this adjusts -the width, for horizontal (...
 showPanel(Number/String/ContentPanel panelId) : Ext.ContentPanelBasicLayoutRegion
Show the specified panel.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforeremove : (Ext.LayoutRegion this, Ext.ContentPanel panel, Object e)BasicLayoutRegion
Fires before a panel is removed (or closed). To cancel the removal set "e.cancel = true" on the event argument.
 collapsed : (Ext.LayoutRegion this)BasicLayoutRegion
Fires when this region is collapsed.
 expanded : (Ext.LayoutRegion this)BasicLayoutRegion
Fires when this region is expanded.
 invalidated : (Ext.LayoutRegion this)BasicLayoutRegion
Fires when the layout for this region is changed.
 panelactivated : (Ext.LayoutRegion this, Ext.ContentPanel panel)BasicLayoutRegion
Fires when a panel is activated.
 paneladded : (Ext.LayoutRegion this, Ext.ContentPanel panel)BasicLayoutRegion
Fires when a panel is added.
 panelremoved : (Ext.LayoutRegion this, Ext.ContentPanel panel)BasicLayoutRegion
Fires when a panel is removed.
 resized : (Ext.LayoutRegion this, Number newSize)BasicLayoutRegion
Fires when the user resizes this region.
 slidehide : (Ext.LayoutRegion this)BasicLayoutRegion
Fires when this region slides out of view.
 slideshow : (Ext.LayoutRegion this)BasicLayoutRegion
Fires when this region is slid into view.
 visibilitychange : (Ext.LayoutRegion this, Boolean visibility)BasicLayoutRegion
Fires when this region is shown or hidden
-

Property Details

-
- -
-

panels

- public Ext.util.MixedCollection panels -
- A collection of panels in this region.
-
This property is defined by BasicLayoutRegion.
-
-
- - -

Method Details

-
- -
-

add

- public function add(ContentPanel... panel) -
- Add the passed ContentPanel(s) -
- Parameters: -
  • panel : ContentPanel...
    The ContentPanel(s) to add (you can pass more than one)
- Returns: -
    -
  • Ext.ContentPanel
    The panel added (if only one was added)
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getActivePanel

- public function getActivePanel() -
- Get the active panel for this region. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.ContentPanel
    The active panel or null
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

getEl

- public function getEl() -
- Returns the container element for this region. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

getPanel

- public function getPanel(Number/String/ContentPanel panel) -
- Returns the panel specified or null if it's not in this region. -
- Parameters: -
  • panel : Number/String/ContentPanel
    The panels index, id or the panel itself
- Returns: -
    -
  • Ext.ContentPanel
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

getPosition

- public function getPosition() -
- Returns this regions position (north/south/east/west/center). -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hasPanel

- public function hasPanel(Number/String/ContentPanel panel) -
- Returns true if the panel is in this region. -
- Parameters: -
  • panel : Number/String/ContentPanel
    The panels index, id or the panel itself
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this region is currently visible. -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

remove

- public function remove(Number/String/ContentPanel panel, Boolean preservePanel) -
- Removes the specified panel. If preservePanel is not true (either here or in the config), the panel is destroyed. -
- Parameters: -
  • panel : Number/String/ContentPanel
    The panels index, id or the panel itself
  • preservePanel : Boolean
    Overrides the config preservePanel option
- Returns: -
    -
  • Ext.ContentPanel
    The panel that was removed
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

resizeTo

- public function resizeTo(Number newSize) -
- Resizes the region to the specified size. For vertical regions (west, east) this adjusts -the width, for horizontal (north, south) the height. -
- Parameters: -
  • newSize : Number
    The new width or height
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

showPanel

- public function showPanel(Number/String/ContentPanel panelId) -
- Show the specified panel. -
- Parameters: -
  • panelId : Number/String/ContentPanel
    The panels index, id or the panel itself
- Returns: -
    -
  • Ext.ContentPanel
    The shown panel or null
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforeremove

- public event beforeremove -
- Fires before a panel is removed (or closed). To cancel the removal set "e.cancel = true" on the event argument. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • panel : Ext.ContentPanel
    The panel
  • e : Object
    The cancel event object
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

collapsed

- public event collapsed -
- Fires when this region is collapsed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

expanded

- public event expanded -
- Fires when this region is expanded. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

invalidated

- public event invalidated -
- Fires when the layout for this region is changed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

panelactivated

- public event panelactivated -
- Fires when a panel is activated. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • panel : Ext.ContentPanel
    The activated panel
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

paneladded

- public event paneladded -
- Fires when a panel is added. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • panel : Ext.ContentPanel
    The panel
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

panelremoved

- public event panelremoved -
- Fires when a panel is removed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • panel : Ext.ContentPanel
    The panel
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

resized

- public event resized -
- Fires when the user resizes this region. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • newSize : Number
    The new size (width for east/west, height for north/south)
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

slidehide

- public event slidehide -
- Fires when this region slides out of view. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

slideshow

- public event slideshow -
- Fires when this region is slid into view. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

visibilitychange

- public event visibilitychange -
- Fires when this region is shown or hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • visibility : Boolean
    true or false
-
-
-
This event is defined by BasicLayoutRegion.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.BorderLayout.html b/www/extras/extjs/docs/output/Ext.BorderLayout.html deleted file mode 100644 index 1f54a627e..000000000 --- a/www/extras/extjs/docs/output/Ext.BorderLayout.html +++ /dev/null @@ -1,784 +0,0 @@ - - - - Ext.BorderLayout - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.BorderLayout

- - - - - - -
Package:Ext
Class:BorderLayout
Extends:LayoutManager
Subclasses:ReaderLayout
Defined In:BorderLayout.js
-
- This class represents a common layout manager used in desktop applications. For screenshots and more details, -please see:

-Cross Browser Layouts - Part 1
-Cross Browser Layouts - Part 2

-Example: -
var layout = new Ext.BorderLayout(document.body, {
-    north: {
-        initialSize: 25,
-        titlebar: false
-    },
-    west: {
-        split:true,
-        initialSize: 200,
-        minSize: 175,
-        maxSize: 400,
-        titlebar: true,
-        collapsible: true
-    },
-    east: {
-        split:true,
-        initialSize: 202,
-        minSize: 175,
-        maxSize: 400,
-        titlebar: true,
-        collapsible: true
-    },
-    south: {
-        split:true,
-        initialSize: 100,
-        minSize: 100,
-        maxSize: 200,
-        titlebar: true,
-        collapsible: true
-    },
-    center: {
-        titlebar: true,
-        autoScroll:true,
-        resizeTabs: true,
-        minTabWidth: 50,
-        preferredTabWidth: 150
-    }
-});
-
-// shorthand
-var CP = Ext.ContentPanel;
-
-layout.beginUpdate();
-layout.add("north", new CP("north", "North"));
-layout.add("south", new CP("south", {title: "South", closable: true}));
-layout.add("west", new CP("west", {title: "West"}));
-layout.add("east", new CP("autoTabs", {title: "Auto Tabs", closable: true}));
-layout.add("center", new CP("center1", {title: "Close Me", closable: true}));
-layout.add("center", new CP("center2", {title: "Center Panel", closable: false}));
-layout.getRegion("center").showPanel("center1");
-layout.endUpdate();
- -The container the layout is rendered into can be either the body element or any other element. -If it is not the body element, the element needs to either be an absolute positioned element, -or you will need to add "position:relative" to the css of the element.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 monitorWindowResize : BooleanLayoutManager
false to disable window resize monitoring
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 BorderLayout(String/HTMLElement/Element container, Object config)BorderLayout
Create a new BorderLayout
 add(String target, Ext.ContentPanel panel) : Ext.ContentPanelBorderLayout
Adds a ContentPanel (or subclass) to this layout.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 addRegion(String target, Object config) : BorderLayoutRegionBorderLayout
Creates and adds a new region if it doesn't already exist.
 beginUpdate() : voidLayoutManager
Suspend the LayoutManager from doing auto-layouts while -making multiple add or remove calls
 endUpdate(Boolean noLayout) : voidLayoutManager
Restore auto-layouts and optionally disable the manager from performing a layout
 findPanel(String panelId) : Ext.ContentPanelBorderLayout
Searches all regions for a panel with the specified id
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getEl() : Ext.ElementLayoutManager
Returns the element this layout is bound to.
 getRegion(String target) : Ext.LayoutRegionLayoutManager
Returns the specified region.
 getViewSize() : ObjectLayoutManager
Returns the size of the current view, This method normalizes document.body and element embedded layouts and -performs ...
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 isUpdating() : BooleanLayoutManager
Returns true if this layout is currently being updated
 layout() : voidBorderLayout
Performs a layout update.
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 remove(String target, Number/String/Ext.ContentPanel panel) : Ext.ContentPanelBorderLayout
Remove a ContentPanel (or subclass) to this layout.
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 restoreState([Ext.state.Provider provider]) : voidBorderLayout
Restores this layouts state using Ext.state.Manager or the state provided by the passed provider.
 showPanel(String/ContentPanel panelId) : Ext.ContentPanelBorderLayout
Searches all regions for a panel with the specified id and activates (shows) it.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 layout : (Ext.LayoutManager this)LayoutManager
Fires when a layout is performed.
 regioncollapsed : (Ext.LayoutRegion region)LayoutManager
Fires when a region is collapsed.
 regionexpanded : (Ext.LayoutRegion region)LayoutManager
Fires when a region is expanded.
 regionresized : (Ext.LayoutRegion region, Number newSize)LayoutManager
Fires when the user resizes a region.
-

Property Details

-
- -
-

monitorWindowResize

- public Boolean monitorWindowResize -
- false to disable window resize monitoring
-
This property is defined by LayoutManager.
-
-
- - -

Constructor Details

-
-
-

BorderLayout

- public function BorderLayout(String/HTMLElement/Element container, Object config) -
- Create a new BorderLayout
- Parameters: -
  • container : String/HTMLElement/Element
    The container this layout is bound to
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

add

- public function add(String target, Ext.ContentPanel panel) -
- Adds a ContentPanel (or subclass) to this layout. -
- Parameters: -
  • target : String
    The target region key (north, south, east, west or center).
  • panel : Ext.ContentPanel
    The panel to add
- Returns: -
    -
  • Ext.ContentPanel
    The added panel
  • -
-
-
-
This method is defined by BorderLayout.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addRegion

- public function addRegion(String target, Object config) -
- Creates and adds a new region if it doesn't already exist. -
- Parameters: -
  • target : String
    The target region key (north, south, east, west or center).
  • config : Object
    The regions config object
- Returns: -
    -
  • BorderLayoutRegion
    The new region
  • -
-
-
-
This method is defined by BorderLayout.
-
- -
-

beginUpdate

- public function beginUpdate() -
- Suspend the LayoutManager from doing auto-layouts while -making multiple add or remove calls -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

endUpdate

- public function endUpdate(Boolean noLayout) -
- Restore auto-layouts and optionally disable the manager from performing a layout -
- Parameters: -
  • noLayout : Boolean
    true to disable a layout update
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

findPanel

- public function findPanel(String panelId) -
- Searches all regions for a panel with the specified id -
- Parameters: -
  • panelId : String
- Returns: -
    -
  • Ext.ContentPanel
    The panel or null if it wasn't found
  • -
-
-
-
This method is defined by BorderLayout.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getEl

- public function getEl() -
- Returns the element this layout is bound to. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

getRegion

- public function getRegion(String target) -
- Returns the specified region. -
- Parameters: -
  • target : String
    The region key
- Returns: -
    -
  • Ext.LayoutRegion
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

getViewSize

- public function getViewSize() -
- Returns the size of the current view, This method normalizes document.body and element embedded layouts and -performs box-model adjustments. -
- Parameters: -
  • None.
- Returns: -
    -
  • Object
    The size as an object {width: (the width), height: (the height)}
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

isUpdating

- public function isUpdating() -
- Returns true if this layout is currently being updated -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

layout

- public function layout() -
- Performs a layout update. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BorderLayout.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

remove

- public function remove(String target, Number/String/Ext.ContentPanel panel) -
- Remove a ContentPanel (or subclass) to this layout. -
- Parameters: -
  • target : String
    The target region key (north, south, east, west or center).
  • panel : Number/String/Ext.ContentPanel
    The index, id or panel to remove
- Returns: -
    -
  • Ext.ContentPanel
    The removed panel
  • -
-
-
-
This method is defined by BorderLayout.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

restoreState

- public function restoreState([Ext.state.Provider provider]) -
- Restores this layouts state using Ext.state.Manager or the state provided by the passed provider. -
- Parameters: -
  • provider : Ext.state.Provider
    (optional) An alternate state provider
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BorderLayout.
-
- -
-

showPanel

- public function showPanel(String/ContentPanel panelId) -
- Searches all regions for a panel with the specified id and activates (shows) it. -
- Parameters: -
  • panelId : String/ContentPanel
    The panels id or the panel itself
- Returns: -
    -
  • Ext.ContentPanel
    The shown panel or null
  • -
-
-
-
This method is defined by BorderLayout.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

layout

- public event layout -
- Fires when a layout is performed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutManager
-
-
-
This event is defined by LayoutManager.
-
- -
-

regioncollapsed

- public event regioncollapsed -
- Fires when a region is collapsed. -
- Subscribers will be called with the following parameters: -
  • region : Ext.LayoutRegion
-
-
-
This event is defined by LayoutManager.
-
- -
-

regionexpanded

- public event regionexpanded -
- Fires when a region is expanded. -
- Subscribers will be called with the following parameters: -
  • region : Ext.LayoutRegion
-
-
-
This event is defined by LayoutManager.
-
- -
-

regionresized

- public event regionresized -
- Fires when the user resizes a region. -
- Subscribers will be called with the following parameters: -
  • region : Ext.LayoutRegion
  • newSize : Number
    The new size (width for east/west, height for north/south)
-
-
-
This event is defined by LayoutManager.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Button.html b/www/extras/extjs/docs/output/Ext.Button.html deleted file mode 100644 index 66bdbe272..000000000 --- a/www/extras/extjs/docs/output/Ext.Button.html +++ /dev/null @@ -1,1006 +0,0 @@ - - - - Ext.Button - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Button

- - - - - - -
Package:Ext
Class:Button
Extends:Observable
Subclasses:MenuButton, Toolbar.Button
Defined In:Button.js
-
- Simple Button class
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : BooleanButton
Read-only. True if this button is disabled
 hidden : BooleanButton
Read-only. True if this button is hidden
 pressed : BooleanButton
Read-only. True if this button is pressed (only if enableToggle = true)
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Button(String/HTMLElement/Element renderTo, Object config)Button
Create a new button
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 destroy() : voidButton
Destroys this Button and removes any listeners.
 disable() : voidButton
Disable this button
 enable() : voidButton
Enable this button
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus() : voidButton
Focus the button
 getEl() : Ext.ElementButton
Returns the button's underlying element
 getText() : StringButton
Gets the text for this button
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidButton
Hide this button
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 setDisabled(Boolean enabled) : voidButton
Convenience function for boolean enable/disable
 setHandler(Function handler, [Object scope]) : voidButton
Assigns this button's click handler
 setText(String text) : voidButton
Sets this button's text
 setVisible(Boolean visible) : voidButton
Convenience function for boolean show/hide
 show() : voidButton
Show this button
 toggle([Boolean state]) : voidButton
If a state it passed, it becomes the pressed state otherwise the current state is toggled.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 click : (Button this, EventObject e)Button
Fires when this button is clicked
 mouseout : (Button this, Event e)Button
Fires when the mouse exits the button
 mouseover : (Button this, Event e)Button
Fires when the mouse hovers over the button
 toggle : (Button this, Boolean pressed)Button
Fires when the "pressed" state of this button changes (only if enableToggle = true)
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 disabled : BooleanButton
True to start disabled (defaults to false)
 enableToggle : BooleanButton
True to enable pressed/not pressed toggling (defaults to false)
 handler : FunctionButton
A function called when the button is clicked (can be used instead of click event)
 hidden : BooleanButton
True to start hidden (defaults to false)
 icon : StringButton
The path to an image to display in the button (the image will be set as the background-image CSS property of the butt...
 menu : MixedButton
Standard menu attribute consisting of a reference to a menu object, a menu id or a menu config blob
 menuAlign : StringButton
The position to align the menu to (see Ext.Element.alignTo for more details, defaults to 'tl-bl?').
 minWidth : NumberButton
The minimum width for this button (used to give a set of buttons a common width)
 pressed : BooleanButton
True to start pressed (only if enableToggle = true)
 repeat : Boolean/ObjectButton
True to repeat fire the click event while the mouse is down. This can also be an Ext.util.ClickRepeater config object...
 scope : ObjectButton
The scope of the handler
 text : StringButton
The button text
 toggleGroup : StringButton
The group this toggle button is a member of (only 1 per group can be pressed, only applies if enableToggle = true)
 tooltip : String/ObjectButton
The tooltip for the button - can be a string or QuickTips config object
 tooltipType : StringButton
The type of tooltip to use. Either "qtip" for QuickTips or "title" for title attribute.
-

Property Details

-
- -
-

disabled

- public Boolean disabled -
- Read-only. True if this button is disabled
-
This property is defined by Button.
-
- -
-

hidden

- public Boolean hidden -
- Read-only. True if this button is hidden
-
This property is defined by Button.
-
- -
-

pressed

- public Boolean pressed -
- Read-only. True if this button is pressed (only if enableToggle = true)
-
This property is defined by Button.
-
-
- - -

Constructor Details

-
-
-

Button

- public function Button(String/HTMLElement/Element renderTo, Object config) -
- Create a new button
- Parameters: -
  • renderTo : String/HTMLElement/Element
    The element to append the button to
  • config : Object
    The config object
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

destroy

- public function destroy() -
- Destroys this Button and removes any listeners. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

disable

- public function disable() -
- Disable this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

enable

- public function enable() -
- Enable this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus() -
- Focus the button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

getEl

- public function getEl() -
- Returns the button's underlying element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Button.
-
- -
-

getText

- public function getText() -
- Gets the text for this button -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    The button text
  • -
-
-
-
This method is defined by Button.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

setDisabled

- public function setDisabled(Boolean enabled) -
- Convenience function for boolean enable/disable -
- Parameters: -
  • enabled : Boolean
    True to enable, false to disable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

setHandler

- public function setHandler(Function handler, [Object scope]) -
- Assigns this button's click handler -
- Parameters: -
  • handler : Function
    The function to call when the button is clicked
  • scope : Object
    (optional) Scope for the function passed in
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

setText

- public function setText(String text) -
- Sets this button's text -
- Parameters: -
  • text : String
    The button text
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function for boolean show/hide -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

show

- public function show() -
- Show this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

toggle

- public function toggle([Boolean state]) -
- If a state it passed, it becomes the pressed state otherwise the current state is toggled. -
- Parameters: -
  • state : Boolean
    (optional) Force a particular state
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

click

- public event click -
- Fires when this button is clicked -
- Subscribers will be called with the following parameters: -
  • this : Button
  • e : EventObject
    The click event
-
-
-
This event is defined by Button.
-
- -
-

mouseout

- public event mouseout -
- Fires when the mouse exits the button -
- Subscribers will be called with the following parameters: -
  • this : Button
  • e : Event
    The event object
-
-
-
This event is defined by Button.
-
- -
-

mouseover

- public event mouseover -
- Fires when the mouse hovers over the button -
- Subscribers will be called with the following parameters: -
  • this : Button
  • e : Event
    The event object
-
-
-
This event is defined by Button.
-
- -
-

toggle

- public event toggle -
- Fires when the "pressed" state of this button changes (only if enableToggle = true) -
- Subscribers will be called with the following parameters: -
  • this : Button
  • pressed : Boolean
-
-
-
This event is defined by Button.
-
-
-

Config Details

-
- -
-

disabled

- disabled : Boolean -
- True to start disabled (defaults to false)
-
This config option is defined by Button.
-
- -
-

enableToggle

- enableToggle : Boolean -
- True to enable pressed/not pressed toggling (defaults to false)
-
This config option is defined by Button.
-
- -
-

handler

- handler : Function -
- A function called when the button is clicked (can be used instead of click event)
-
This config option is defined by Button.
-
- -
-

hidden

- hidden : Boolean -
- True to start hidden (defaults to false)
-
This config option is defined by Button.
-
- -
-

icon

- icon : String -
- The path to an image to display in the button (the image will be set as the background-image CSS property of the button by default, so if you want a mixed icon/text button, set cls:"x-btn-text-icon")
-
This config option is defined by Button.
-
- -
-

menu

- menu : Mixed -
- Standard menu attribute consisting of a reference to a menu object, a menu id or a menu config blob
-
This config option is defined by Button.
-
- -
-

menuAlign

- menuAlign : String -
- The position to align the menu to (see Ext.Element.alignTo for more details, defaults to 'tl-bl?').
-
This config option is defined by Button.
-
- -
-

minWidth

- minWidth : Number -
- The minimum width for this button (used to give a set of buttons a common width)
-
This config option is defined by Button.
-
- -
-

pressed

- pressed : Boolean -
- True to start pressed (only if enableToggle = true)
-
This config option is defined by Button.
-
- -
-

repeat

- repeat : Boolean/Object -
- True to repeat fire the click event while the mouse is down. This can also be an Ext.util.ClickRepeater config object (defaults to false).
-
This config option is defined by Button.
-
- -
-

scope

- scope : Object -
- The scope of the handler
-
This config option is defined by Button.
-
- -
-

text

- text : String -
- The button text
-
This config option is defined by Button.
-
- -
-

toggleGroup

- toggleGroup : String -
- The group this toggle button is a member of (only 1 per group can be pressed, only applies if enableToggle = true)
-
This config option is defined by Button.
-
- -
-

tooltip

- tooltip : String/Object -
- The tooltip for the button - can be a string or QuickTips config object
-
This config option is defined by Button.
-
- -
-

tooltipType

- tooltipType : String -
- The type of tooltip to use. Either "qtip" for QuickTips or "title" for title attribute.
-
This config option is defined by Button.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.ColorPalette.html b/www/extras/extjs/docs/output/Ext.ColorPalette.html deleted file mode 100644 index 25bfd18dd..000000000 --- a/www/extras/extjs/docs/output/Ext.ColorPalette.html +++ /dev/null @@ -1,973 +0,0 @@ - - - - Ext.ColorPalette - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.ColorPalette

- - - - - -
Package:Ext
Class:ColorPalette
Extends:Component
Defined In:ColorPalette.js
-
- Simple color palette class for choosing colors. The palette can be rendered to any container.
-Here's an example of typical usage: -
var cp = new Ext.ColorPalette({value:'993300'});  // initial selected color
-cp.render('my-div');
-
-cp.on('select', function(palette, selColor){
-    // do something with selColor
-});
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 colors : ArrayColorPalette
An array of 6-digit color hex code strings (without the # symbol). This array can contain any number -of colors, and ...
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 ColorPalette(Object config)ColorPalette
Create a new ColorPalette
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isVisible() : voidComponent
Returns true if this component is visible
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 select(String color) : voidColorPalette
Selects the specified color in the palette (fires the select event)
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 hide : (Ext.Component this)Component
Fires after the component is hidden
 render : (Ext.Component this)Component
Fires after the component is rendered
 select : (ColorPalette this, String color)ColorPalette
Fires when a color is selected
 show : (Ext.Component this)Component
Fires after the component is shown
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 itemCls : StringColorPalette
The CSS class to apply to the containing element (defaults to "x-color-palette")
 value : StringColorPalette
The initial color to highlight (should be a valid 6-digit color hex code without the # symbol). Note that the hex cod...
-

Property Details

-
- -
-

colors

- public Array colors -
-

An array of 6-digit color hex code strings (without the # symbol). This array can contain any number -of colors, and each hex code should be unique. The width of the palette is controlled via CSS by adjusting -the width property of the 'x-color-palette' class (or assigning a custom class), so you can balance the number -of colors with the width setting until the box is symmetrical.

-

You can override individual colors if needed:

-

-var cp = new Ext.ColorPalette();
-cp.colors[0] = "FF0000";  // change the first box to red
-
- -Or you can provide a custom array of your own for complete control: -

-var cp = new Ext.ColorPalette();
-cp.colors = ["000000", "993300", "333300"];
-
-
This property is defined by ColorPalette.
-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

ColorPalette

- public function ColorPalette(Object config) -
- Create a new ColorPalette
- Parameters: -
  • config : Object
    The config object
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

select

- public function select(String color) -
- Selects the specified color in the palette (fires the select event) -
- Parameters: -
  • color : String
    A valid 6-digit color hex code (# will be stripped if included)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ColorPalette.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

select

- public event select -
- Fires when a color is selected -
- Subscribers will be called with the following parameters: -
  • this : ColorPalette
  • color : String
    The 6-digit color hex code (without the # symbol)
-
-
-
This event is defined by ColorPalette.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
-
-

Config Details

-
- -
-

itemCls

- itemCls : String -
- The CSS class to apply to the containing element (defaults to "x-color-palette")
-
This config option is defined by ColorPalette.
-
- -
-

value

- value : String -
- The initial color to highlight (should be a valid 6-digit color hex code without the # symbol). Note that the hex codes are case-sensitive.
-
This config option is defined by ColorPalette.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Component.html b/www/extras/extjs/docs/output/Ext.Component.html deleted file mode 100644 index f45cf586d..000000000 --- a/www/extras/extjs/docs/output/Ext.Component.html +++ /dev/null @@ -1,846 +0,0 @@ - - - - Ext.Component - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Component

- - - - - - -
Package:Ext
Class:Component
Extends:Observable
Subclasses:ColorPalette, DatePicker, Editor, Field, Layout, BaseItem
Defined In:Component.js
-
- Base class for all Ext form controls that provides a common set of events and functionality shared by all components.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Component(Ext.Element/String/Object config)Component
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isVisible() : voidComponent
Returns true if this component is visible
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 hide : (Ext.Component this)Component
Fires after the component is hidden
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

Component

- public function Component(Ext.Element/String/Object config) -
-
- Parameters: -
  • config : Ext.Element/String/Object
    The configuration options. If an element is passed, it is set as the internal element and its id used as the component id. If a string is passed, it is assumed to be the id of an existing element and is used as the component id. Otherwise, it is assumed to be a standard config object and is applied to the component.
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.ComponentMgr.html b/www/extras/extjs/docs/output/Ext.ComponentMgr.html deleted file mode 100644 index 534af7692..000000000 --- a/www/extras/extjs/docs/output/Ext.ComponentMgr.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - Ext.ComponentMgr - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.ComponentMgr

- - - - - -
Package:Ext
Class:ComponentMgr
Extends:Object
Defined In:Component.js
-
- Provides a common registry of all components on a page so that they can be easily accessed by component id.

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 get(String id) : voidComponentMgr
Returns a component by id
 onAvailable(String id, Funtction fn, Object scope) : voidComponentMgr
Registers a function that will be called when a specified component is added to ComponentMgr
- -

Public Events

-
This class has no public events.
- -

Method Details

-
- -
-

get

- public function get(String id) -
- Returns a component by id -
- Parameters: -
  • id : String
    The component id
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ComponentMgr.
-
- -
-

onAvailable

- public function onAvailable(String id, Funtction fn, Object scope) -
- Registers a function that will be called when a specified component is added to ComponentMgr -
- Parameters: -
  • id : String
    The component id
  • fn : Funtction
    The callback function
  • scope : Object
    The scope of the callback
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ComponentMgr.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.CompositeElement.html b/www/extras/extjs/docs/output/Ext.CompositeElement.html deleted file mode 100644 index 78e8eb1cc..000000000 --- a/www/extras/extjs/docs/output/Ext.CompositeElement.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - Ext.CompositeElement - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.CompositeElement

- - - - - - -
Package:Ext
Class:CompositeElement
Extends:Object
Subclasses:CompositeElementLite
Defined In:CompositeElement.js
-
- Standard composite class. Creates a Ext.Element for every element in the collection. -

-NOTE: Although they are not listed, this class supports all of the set/update methods of Ext.Element. All Ext.Element -actions will be performed on all the elements in this collection. -

-All methods return this and can be chained. -
var els = getEls("#some-el div.some-class");
- // or
- var els = Ext.Element.select("#some-el div.some-class");
- els.setWidth(100); // all elements become 100 width
- els.hide(true); // all elements fade out and hide
- // or
- els.setWidth(100).hide(true);
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 add(String/Array els) : CompositeElementCompositeElement
Adds elements to this composite.
 each(Function fn, [Object scope]) : CompositeElementCompositeElement
Calls the passed function passing (el, this, index) for each element in this composite.
 item(Number index) : Ext.ElementCompositeElement
Returns the Element object at the specified index
- -

Public Events

-
This class has no public events.
- -

Method Details

-
- -
-

add

- public function add(String/Array els) -
- Adds elements to this composite. -
- Parameters: -
  • els : String/Array
    A string CSS selector, an array of elements or an element
- Returns: -
    -
  • CompositeElement
    this
  • -
-
-
-
This method is defined by CompositeElement.
-
- -
-

each

- public function each(Function fn, [Object scope]) -
- Calls the passed function passing (el, this, index) for each element in this composite. -
- Parameters: -
  • fn : Function
    The function to call
  • scope : Object
    (optional) The this object (defaults to the element)
- Returns: -
    -
  • CompositeElement
    this
  • -
-
-
-
This method is defined by CompositeElement.
-
- -
-

item

- public function item(Number index) -
- Returns the Element object at the specified index -
- Parameters: -
  • index : Number
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by CompositeElement.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.CompositeElementLite.html b/www/extras/extjs/docs/output/Ext.CompositeElementLite.html deleted file mode 100644 index 9adf78947..000000000 --- a/www/extras/extjs/docs/output/Ext.CompositeElementLite.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - Ext.CompositeElementLite - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.CompositeElementLite

- - - - - -
Package:Ext
Class:CompositeElementLite
Extends:CompositeElement
Defined In:CompositeElement.js
-
- Flyweight composite class. Reuses the same Ext.Element for element operations. -

-NOTE: Although they are not listed, this class supports all of the set/update methods of Ext.Element. All Ext.Element -actions will be performed on all the elements in this collection.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 add(String/Array els) : CompositeElementCompositeElement
Adds elements to this composite.
 each(Function fn, [Object scope]) : CompositeElementCompositeElementLite
Calls the passed function passing (el, this, index) for each element in this composite. The element -passed is the fly...
 item(Number index) : Ext.ElementCompositeElementLite
Returns a flyweight Element of the dom element object at the specified index
- -

Public Events

-
This class has no public events.
- -

Method Details

-
- -
-

add

- public function add(String/Array els) -
- Adds elements to this composite. -
- Parameters: -
  • els : String/Array
    A string CSS selector, an array of elements or an element
- Returns: -
    -
  • CompositeElement
    this
  • -
-
-
-
This method is defined by CompositeElement.
-
- -
-

each

- public function each(Function fn, [Object scope]) -
- Calls the passed function passing (el, this, index) for each element in this composite. The element -passed is the flyweight (shared) Ext.Element instance, so if you require a -a reference to the dom node, use el.dom. -
- Parameters: -
  • fn : Function
    The function to call
  • scope : Object
    (optional) The this object (defaults to the element)
- Returns: -
    -
  • CompositeElement
    this
  • -
-
-
-
This method is defined by CompositeElementLite.
-
- -
-

item

- public function item(Number index) -
- Returns a flyweight Element of the dom element object at the specified index -
- Parameters: -
  • index : Number
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by CompositeElementLite.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.ContentPanel.html b/www/extras/extjs/docs/output/Ext.ContentPanel.html deleted file mode 100644 index 147cad12b..000000000 --- a/www/extras/extjs/docs/output/Ext.ContentPanel.html +++ /dev/null @@ -1,874 +0,0 @@ - - - - Ext.ContentPanel - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.ContentPanel

- - - - - - -
Package:Ext
Class:ContentPanel
Extends:Observable
Subclasses:GridPanel, NestedLayoutPanel
Defined In:ContentPanels.js
-
- A basic ContentPanel element.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 ContentPanel(String/HTMLElement/Element el, String/Object config, [String content])ContentPanel
Create a new ContentPanel.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 destroy() : voidContentPanel
Destroys this panel
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getEl() : Ext.ElementContentPanel
Returns this panel's element
 getId() : StringContentPanel
Returns this panel's id
 getTitle() : StringContentPanel
Returns this panel's title
 getToolbar() : Ext.ToolbarContentPanel
Returns the toolbar for this Panel if one was configured.
 getUpdateManager() : Ext.UpdateManagerContentPanel
Get the Ext.UpdateManager for this panel. Enables you to perform Ajax updates.
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 isClosable() : BooleanContentPanel
Returns true is this panel was configured to be closable
 load(Object/String/Function url, [String/Object params], [Function callback], [Boolean discardUrl]) : Ext.ContentPanelContentPanel
Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use ...
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 refresh() : voidContentPanel
Force a content refresh from the URL specified in the setUrl() method. -Will fail silently if the setUrl method has no...
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 setContent(String content, [Boolean loadScripts]) : voidContentPanel
Updates this panel's element
 setTitle(String title) : voidContentPanel
Set this panel's title
 setUrl(String/Function url, [String/Object params], [Boolean loadOnce]) : Ext.UpdateManagerContentPanel
Set a URL to be used to load the content for this panel. When this panel is activated, the content will be loaded fro...
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 activate : (Ext.ContentPanel this)ContentPanel
Fires when this panel is activated.
 deactivate : (Ext.ContentPanel this)ContentPanel
Fires when this panel is activated.
 resize : (Ext.ContentPanel this, Number width, Number height)ContentPanel
Fires when this panel is resized if fitToFrame is true.
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 adjustments : ArrayContentPanel
Values to add to the width/height when doing a fitToFrame (default is [0, 0])
 autoCreate : Boolean/ObjectContentPanel
True to auto generate the DOM element for this panel, or a DomHelper config of the element to create
 autoScroll : BooleanContentPanel
True to scroll overflow in this panel (use with fitToFrame)
 background : BooleanContentPanel
True if the panel should not be activated when it is added (defaults to false)
 closable : BooleanContentPanel
True if the panel can be closed/removed
 fitContainer : BooleanContentPanel
When using fitToFrame and resizeEl, you can also fit the parent container (defaults to false)
 fitToFrame : BooleanContentPanel
True for this panel to adjust its size to fit when the region resizes (defaults to false)
 loadOnce : BooleanContentPanel
Calls When used with "url", calls setUrl() with this value
 params : String/ObjectContentPanel
When used with "url", calls setUrl() with this value
 resizeEl : String/HTMLElement/ElementContentPanel
An element to resize if fitToFrame is true (instead of this panel's element)
 title : StringContentPanel
The title for this panel
 toolbar : ToolbarContentPanel
A toolbar for this panel
 url : StringContentPanel
Calls setUrl() with this value
- - -

Constructor Details

-
-
-

ContentPanel

- public function ContentPanel(String/HTMLElement/Element el, String/Object config, [String content]) -
- Create a new ContentPanel.
- Parameters: -
  • el : String/HTMLElement/Element
    The container element for this panel
  • config : String/Object
    A string to set only the title or a config object
  • content : String
    (optional) Set the HTML content for this panel
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

destroy

- public function destroy() -
- Destroys this panel -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getEl

- public function getEl() -
- Returns this panel's element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

getId

- public function getId() -
- Returns this panel's id -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

getTitle

- public function getTitle() -
- Returns this panel's title -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

getToolbar

- public function getToolbar() -
- Returns the toolbar for this Panel if one was configured. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Toolbar
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

getUpdateManager

- public function getUpdateManager() -
- Get the Ext.UpdateManager for this panel. Enables you to perform Ajax updates. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.UpdateManager
    The UpdateManager
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

isClosable

- public function isClosable() -
- Returns true is this panel was configured to be closable -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

load

- public function load(Object/String/Function url, [String/Object params], [Function callback], [Boolean discardUrl]) -
- Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use setUrl. -
- Parameters: -
  • url : Object/String/Function
    The url for this request or a function to call to get the url or a config object containing any of the following options:
     panel.load({
    url: "your-url.php",
    params: {param1: "foo", param2: "bar"}, // or a URL encoded string
    callback: yourFunction,
    scope: yourObject, //(optional scope)
    discardUrl: false,
    nocache: false,
    text: "Loading...",
    timeout: 30,
    scripts: false
    });
    The only required property is url. The optional properties nocache, text and scripts are shorthand for disableCaching, indicatorText and loadScripts and are used to set their associated property on this panel UpdateManager instance.
  • params : String/Object
    (optional) The parameters to pass as either a url encoded string "param1=1&param2=2" or an object {param1: 1, param2: 2}
  • callback : Function
    (optional) Callback when transaction is complete - called with signature (oElement, bSuccess, oResponse)
  • discardUrl : Boolean
    (optional) By default when you execute an update the defaultUrl is changed to the last used url. If true, it will not store the url.
- Returns: -
    -
  • Ext.ContentPanel
    this
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

refresh

- public function refresh() -
- Force a content refresh from the URL specified in the setUrl() method. -Will fail silently if the setUrl method has not been called. -This does not activate the panel, just updates its content. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

setContent

- public function setContent(String content, [Boolean loadScripts]) -
- Updates this panel's element -
- Parameters: -
  • content : String
    The new content
  • loadScripts : Boolean
    (optional) true to look for and process scripts
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

setTitle

- public function setTitle(String title) -
- Set this panel's title -
- Parameters: -
  • title : String
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

setUrl

- public function setUrl(String/Function url, [String/Object params], [Boolean loadOnce]) -
- Set a URL to be used to load the content for this panel. When this panel is activated, the content will be loaded from that URL. -
- Parameters: -
  • url : String/Function
    The url to load the content from or a function to call to get the url
  • params : String/Object
    (optional) The string params for the update call or an object of the params. See Ext.UpdateManager.update for more details. (Defaults to null)
  • loadOnce : Boolean
    (optional) Whether to only load the content once. If this is false it makes the Ajax call every time this panel is activated. (Defaults to false)
- Returns: -
    -
  • Ext.UpdateManager
    The UpdateManager
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

activate

- public event activate -
- Fires when this panel is activated. -
- Subscribers will be called with the following parameters: -
  • this : Ext.ContentPanel
-
-
-
This event is defined by ContentPanel.
-
- -
-

deactivate

- public event deactivate -
- Fires when this panel is activated. -
- Subscribers will be called with the following parameters: -
  • this : Ext.ContentPanel
-
-
-
This event is defined by ContentPanel.
-
- -
-

resize

- public event resize -
- Fires when this panel is resized if fitToFrame is true. -
- Subscribers will be called with the following parameters: -
  • this : Ext.ContentPanel
  • width : Number
    The width after any component adjustments
  • height : Number
    The height after any component adjustments
-
-
-
This event is defined by ContentPanel.
-
-
-

Config Details

-
- -
-

adjustments

- adjustments : Array -
- Values to add to the width/height when doing a fitToFrame (default is [0, 0])
-
This config option is defined by ContentPanel.
-
- -
-

autoCreate

- autoCreate : Boolean/Object -
- True to auto generate the DOM element for this panel, or a DomHelper config of the element to create
-
This config option is defined by ContentPanel.
-
- -
-

autoScroll

- autoScroll : Boolean -
- True to scroll overflow in this panel (use with fitToFrame)
-
This config option is defined by ContentPanel.
-
- -
-

background

- background : Boolean -
- True if the panel should not be activated when it is added (defaults to false)
-
This config option is defined by ContentPanel.
-
- -
-

closable

- closable : Boolean -
- True if the panel can be closed/removed
-
This config option is defined by ContentPanel.
-
- -
-

fitContainer

- fitContainer : Boolean -
- When using fitToFrame and resizeEl, you can also fit the parent container (defaults to false)
-
This config option is defined by ContentPanel.
-
- -
-

fitToFrame

- fitToFrame : Boolean -
- True for this panel to adjust its size to fit when the region resizes (defaults to false)
-
This config option is defined by ContentPanel.
-
- -
-

loadOnce

- loadOnce : Boolean -
- Calls When used with "url", calls setUrl() with this value
-
This config option is defined by ContentPanel.
-
- -
-

params

- params : String/Object -
- When used with "url", calls setUrl() with this value
-
This config option is defined by ContentPanel.
-
- -
-

resizeEl

- resizeEl : String/HTMLElement/Element -
- An element to resize if fitToFrame is true (instead of this panel's element)
-
This config option is defined by ContentPanel.
-
- -
-

title

- title : String -
- The title for this panel
-
This config option is defined by ContentPanel.
-
- -
-

toolbar

- toolbar : Toolbar -
- A toolbar for this panel
-
This config option is defined by ContentPanel.
-
- -
-

url

- url : String -
- Calls setUrl() with this value
-
This config option is defined by ContentPanel.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.DatePicker.html b/www/extras/extjs/docs/output/Ext.DatePicker.html deleted file mode 100644 index 598246544..000000000 --- a/www/extras/extjs/docs/output/Ext.DatePicker.html +++ /dev/null @@ -1,1216 +0,0 @@ - - - - Ext.DatePicker - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.DatePicker

- - - - - -
Package:Ext
Class:DatePicker
Extends:Component
Defined In:DatePicker.js
-
- Simple date picker class.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 DatePicker(Object config)DatePicker
Create a new DatePicker
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 getValue() : DateDatePicker
Gets the current selected value of the date field
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isVisible() : voidComponent
Returns true if this component is visible
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setValue(Date value) : voidDatePicker
Sets the value of the date field
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 hide : (Ext.Component this)Component
Fires after the component is hidden
 render : (Ext.Component this)Component
Fires after the component is rendered
 select : (DatePicker this, Date date)DatePicker
Fires when a date is selected
 show : (Ext.Component this)Component
Fires after the component is shown
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 constrainToViewport : BooleanDatePicker
True to constrain the date picker to the viewport (defaults to true)
 dayNames : ArrayDatePicker
An array of textual day names which can be overriden for localization support (defaults to Date.dayNames)
 disabledDatesRE : RegExpDatePicker
JavaScript regular expression used to disable a pattern of dates (defaults to null)
 disabledDatesText : StringDatePicker
The tooltip text to display when the date falls on a disabled date (defaults to "")
 disabledDays : ArrayDatePicker
An array of days to disable, 0-based. For example, [0, 6] disables Sunday and Saturday (defaults to null).
 disabledDaysText : StringDatePicker
The tooltip to display when the date falls on a disabled day (defaults to "")
 format : StringDatePicker
The default date format string which can be overriden for localization support. The format must be valid according to...
 maxDate : DateDatePicker
Maximum allowable date (JavaScript date object, defaults to null)
 maxText : StringDatePicker
The error text to display if the maxDate validation fails (defaults to "This date is after the maximum date")
 minDate : DateDatePicker
Minimum allowable date (JavaScript date object, defaults to null)
 minText : StringDatePicker
The error text to display if the minDate validation fails (defaults to "This date is before the minimum date")
 monthNames : ArrayDatePicker
An array of textual month names which can be overriden for localization support (defaults to Date.monthNames)
 monthYearText : StringDatePicker
The header month selector tooltip (defaults to 'Choose a month (Control+Up/Down to move years)')
 nextText : StringDatePicker
The next month navigation button tooltip (defaults to 'Next Month (Control+Right)')
 prevText : StringDatePicker
The previous month navigation button tooltip (defaults to 'Previous Month (Control+Left)')
 startDay : NumberDatePicker
Day index at which the week should begin, 0-based (defaults to 0, which is Sunday)
 todayText : StringDatePicker
The text to display on the button that selects the current date (defaults to "Today")
 todayTip : StringDatePicker
The tooltip to display for the button that selects the current date (defaults to "{current date} (Spacebar)")
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

DatePicker

- public function DatePicker(Object config) -
- Create a new DatePicker
- Parameters: -
  • config : Object
    The config object
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

getValue

- public function getValue() -
- Gets the current selected value of the date field -
- Parameters: -
  • None.
- Returns: -
    -
  • Date
    The selected date
  • -
-
-
-
This method is defined by DatePicker.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setValue

- public function setValue(Date value) -
- Sets the value of the date field -
- Parameters: -
  • value : Date
    The date to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DatePicker.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

select

- public event select -
- Fires when a date is selected -
- Subscribers will be called with the following parameters: -
  • this : DatePicker
  • date : Date
    The selected date
-
-
-
This event is defined by DatePicker.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
-
-

Config Details

-
- -
-

constrainToViewport

- constrainToViewport : Boolean -
- True to constrain the date picker to the viewport (defaults to true)
-
This config option is defined by DatePicker.
-
- -
-

dayNames

- dayNames : Array -
- An array of textual day names which can be overriden for localization support (defaults to Date.dayNames)
-
This config option is defined by DatePicker.
-
- -
-

disabledDatesRE

- disabledDatesRE : RegExp -
- JavaScript regular expression used to disable a pattern of dates (defaults to null)
-
This config option is defined by DatePicker.
-
- -
-

disabledDatesText

- disabledDatesText : String -
- The tooltip text to display when the date falls on a disabled date (defaults to "")
-
This config option is defined by DatePicker.
-
- -
-

disabledDays

- disabledDays : Array -
- An array of days to disable, 0-based. For example, [0, 6] disables Sunday and Saturday (defaults to null).
-
This config option is defined by DatePicker.
-
- -
-

disabledDaysText

- disabledDaysText : String -
- The tooltip to display when the date falls on a disabled day (defaults to "")
-
This config option is defined by DatePicker.
-
- -
-

format

- format : String -
- The default date format string which can be overriden for localization support. The format must be valid according to Date.parseDate (defaults to 'm/d/y').
-
This config option is defined by DatePicker.
-
- -
-

maxDate

- maxDate : Date -
- Maximum allowable date (JavaScript date object, defaults to null)
-
This config option is defined by DatePicker.
-
- -
-

maxText

- maxText : String -
- The error text to display if the maxDate validation fails (defaults to "This date is after the maximum date")
-
This config option is defined by DatePicker.
-
- -
-

minDate

- minDate : Date -
- Minimum allowable date (JavaScript date object, defaults to null)
-
This config option is defined by DatePicker.
-
- -
-

minText

- minText : String -
- The error text to display if the minDate validation fails (defaults to "This date is before the minimum date")
-
This config option is defined by DatePicker.
-
- -
-

monthNames

- monthNames : Array -
- An array of textual month names which can be overriden for localization support (defaults to Date.monthNames)
-
This config option is defined by DatePicker.
-
- -
-

monthYearText

- monthYearText : String -
- The header month selector tooltip (defaults to 'Choose a month (Control+Up/Down to move years)')
-
This config option is defined by DatePicker.
-
- -
-

nextText

- nextText : String -
- The next month navigation button tooltip (defaults to 'Next Month (Control+Right)')
-
This config option is defined by DatePicker.
-
- -
-

prevText

- prevText : String -
- The previous month navigation button tooltip (defaults to 'Previous Month (Control+Left)')
-
This config option is defined by DatePicker.
-
- -
-

startDay

- startDay : Number -
- Day index at which the week should begin, 0-based (defaults to 0, which is Sunday)
-
This config option is defined by DatePicker.
-
- -
-

todayText

- todayText : String -
- The text to display on the button that selects the current date (defaults to "Today")
-
This config option is defined by DatePicker.
-
- -
-

todayTip

- todayTip : String -
- The tooltip to display for the button that selects the current date (defaults to "{current date} (Spacebar)")
-
This config option is defined by DatePicker.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.DialogManager.html b/www/extras/extjs/docs/output/Ext.DialogManager.html deleted file mode 100644 index 219dee2b5..000000000 --- a/www/extras/extjs/docs/output/Ext.DialogManager.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - Ext.DialogManager - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.DialogManager

- - - - - -
Package:Ext
Class:DialogManager
Extends:Object
Defined In:BasicDialog.js
-
- Provides global access to BasicDialogs that have been created and -support for z-indexing (layering) multiple open dialogs.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 zseed : NumberDialogManager
The starting z-index for BasicDialogs (defaults to 9000)
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 bringToFront(String/Object dlg) : Ext.BasicDialogDialogManager
Brings the specified dialog to the front
 get(String/Object id) : Ext.BasicDialogDialogManager
Gets a registered dialog by id
 hideAll() : voidDialogManager
Hides all dialogs
 sendToBack(String/Object dlg) : Ext.BasicDialogDialogManager
Sends the specified dialog to the back
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

zseed

- public Number zseed -
- The starting z-index for BasicDialogs (defaults to 9000)
-
This property is defined by DialogManager.
-
-
- - -

Method Details

-
- -
-

bringToFront

- public function bringToFront(String/Object dlg) -
- Brings the specified dialog to the front -
- Parameters: -
  • dlg : String/Object
    The id of the dialog or a dialog
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by DialogManager.
-
- -
-

get

- public function get(String/Object id) -
- Gets a registered dialog by id -
- Parameters: -
  • id : String/Object
    The id of the dialog or a dialog
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by DialogManager.
-
- -
-

hideAll

- public function hideAll() -
- Hides all dialogs -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DialogManager.
-
- -
-

sendToBack

- public function sendToBack(String/Object dlg) -
- Sends the specified dialog to the back -
- Parameters: -
  • dlg : String/Object
    The id of the dialog or a dialog
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by DialogManager.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.DomHelper.html b/www/extras/extjs/docs/output/Ext.DomHelper.html deleted file mode 100644 index cf32a5a0e..000000000 --- a/www/extras/extjs/docs/output/Ext.DomHelper.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - Ext.DomHelper - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.DomHelper

- - - - - -
Package:Ext
Class:DomHelper
Extends:Object
Defined In:DomHelper.js
-
- Utility class for working with DOM and/or Templates. It transparently supports using HTML fragments or DOM. -For more information see this blog post with examples.

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 useDom : BooleanDomHelper
True to force the use of DOM instead of html fragments
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 append(String/HTMLElement/Element el, Object o, [Boolean returnElement]) : HTMLElementDomHelper
Creates new Dom element(s) and appends them to el
 applyStyles(String/HTMLElement el, String/Object/Function styles) : voidDomHelper
Applies a style specification to an element
 createTemplate(Object o) : Ext.DomHelper.TemplateDomHelper
Creates a new Ext.DomHelper.Template from the Dom object spec
 insertAfter(String/HTMLElement/Element el, Object o, [Boolean returnElement]) : HTMLElementDomHelper
Creates new Dom element(s) and inserts them after el
 insertBefore(String/HTMLElement/Element el, Object o, [Boolean returnElement]) : HTMLElementDomHelper
Creates new Dom element(s) and inserts them before el
 insertFirst(String/HTMLElement/Element el, Object o, [Boolean returnElement]) : HTMLElementDomHelper
Creates new Dom element(s) and inserts them as the first child of el
 insertHtml(String where, HTMLElement el, String html) : HTMLElementDomHelper
Inserts an HTML fragment into the Dom
 markup(Object o) : StringDomHelper
Returns the markup for the passed Element(s) config
 overwrite(String/HTMLElement/Element el, Object o, [Boolean returnElement]) : HTMLElementDomHelper
Creates new Dom element(s) and overwrites the contents of el with them
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

useDom

- public Boolean useDom -
- True to force the use of DOM instead of html fragments
-
This property is defined by DomHelper.
-
-
- - -

Method Details

-
- -
-

append

- public function append(String/HTMLElement/Element el, Object o, [Boolean returnElement]) -
- Creates new Dom element(s) and appends them to el -
- Parameters: -
  • el : String/HTMLElement/Element
    The context element
  • o : Object
    The Dom object spec (and children)
  • returnElement : Boolean
    (optional) true to return a Ext.Element
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by DomHelper.
-
- -
-

applyStyles

- public function applyStyles(String/HTMLElement el, String/Object/Function styles) -
- Applies a style specification to an element -
- Parameters: -
  • el : String/HTMLElement
    The element to apply styles to
  • styles : String/Object/Function
    A style specification string eg "width:100px", or object in the form {width:"100px"}, or a function which returns such a specification.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DomHelper.
-
- -
-

createTemplate

- public function createTemplate(Object o) -
- Creates a new Ext.DomHelper.Template from the Dom object spec -
- Parameters: -
  • o : Object
    The Dom object spec (and children)
- Returns: -
    -
  • Ext.DomHelper.Template
    The new template
  • -
-
-
-
This method is defined by DomHelper.
-
- -
-

insertAfter

- public function insertAfter(String/HTMLElement/Element el, Object o, [Boolean returnElement]) -
- Creates new Dom element(s) and inserts them after el -
- Parameters: -
  • el : String/HTMLElement/Element
    The context element
  • o : Object
    The Dom object spec (and children)
  • returnElement : Boolean
    (optional) true to return a Ext.Element
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by DomHelper.
-
- -
-

insertBefore

- public function insertBefore(String/HTMLElement/Element el, Object o, [Boolean returnElement]) -
- Creates new Dom element(s) and inserts them before el -
- Parameters: -
  • el : String/HTMLElement/Element
    The context element
  • o : Object
    The Dom object spec (and children)
  • returnElement : Boolean
    (optional) true to return a Ext.Element
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by DomHelper.
-
- -
-

insertFirst

- public function insertFirst(String/HTMLElement/Element el, Object o, [Boolean returnElement]) -
- Creates new Dom element(s) and inserts them as the first child of el -
- Parameters: -
  • el : String/HTMLElement/Element
    The context element
  • o : Object
    The Dom object spec (and children)
  • returnElement : Boolean
    (optional) true to return a Ext.Element
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by DomHelper.
-
- -
-

insertHtml

- public function insertHtml(String where, HTMLElement el, String html) -
- Inserts an HTML fragment into the Dom -
- Parameters: -
  • where : String
    Where to insert the html in relation to el - beforeBegin, afterBegin, beforeEnd, afterEnd.
  • el : HTMLElement
    The context element
  • html : String
    The HTML fragmenet
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by DomHelper.
-
- -
-

markup

- public function markup(Object o) -
- Returns the markup for the passed Element(s) config -
- Parameters: -
  • o : Object
    The Dom object spec (and children)
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by DomHelper.
-
- -
-

overwrite

- public function overwrite(String/HTMLElement/Element el, Object o, [Boolean returnElement]) -
- Creates new Dom element(s) and overwrites the contents of el with them -
- Parameters: -
  • el : String/HTMLElement/Element
    The context element
  • o : Object
    The Dom object spec (and children)
  • returnElement : Boolean
    (optional) true to return a Ext.Element
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by DomHelper.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.DomQuery.html b/www/extras/extjs/docs/output/Ext.DomQuery.html deleted file mode 100644 index 72f0e8196..000000000 --- a/www/extras/extjs/docs/output/Ext.DomQuery.html +++ /dev/null @@ -1,294 +0,0 @@ - - - - Ext.DomQuery - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.DomQuery

- - - - - -
Package:Ext
Class:DomQuery
Extends:Object
Defined In:DomQuery.js
-
- * -Provides high performance selector/xpath processing by compiling queries into reusable functions. -New pseudo classes and matchers can be plugged. It works on HTML and XML documents (if a content node is passed in).

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 matchers : ObjectDomQuery
Collection of matching regular expressions and code snippets.
 operators : ObjectDomQuery
Collection of operator comparison functions. The default operators are =, !=, ^=, $=, *= and %=. -New operators can be...
 pseudos : ObjectDomQuery
Collection of "pseudo class" processors. Each processor is passed the current nodeset (array) -and the argument (if an...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 compile(String selector, [String type]) : FunctionDomQuery
Compiles a selector/xpath query into a reusable function. The returned function -takes one parameter "root" (optional)...
 filter(Array el, String selector, Boolean nonMatches) : ArrayDomQuery
Filters an array of elements to only include matches of a simple selector (e.g. div.some-class or span:first-child)
 is(String/HTMLElement/Array el, String selector) : BooleanDomQuery
Returns true if the passed element(s) match the passed simple selector (e.g. div.some-class or span:first-child)
 select(String selector, [Node root]) : ArrayDomQuery
Selects a group of elements.
 selectNode(String selector, [Node root]) : ElementDomQuery
Selects a single element.
 selectNumber(String selector, [Node root], Number defaultValue) : NumberDomQuery
Selects the value of a node, parsing integers and floats.
 selectValue(String selector, [Node root], String defaultValue) : voidDomQuery
Selects the value of a node, optionally replacing null with the defaultValue.
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

matchers

- public Object matchers -
- Collection of matching regular expressions and code snippets.
-
This property is defined by DomQuery.
-
- -
-

operators

- public Object operators -
- Collection of operator comparison functions. The default operators are =, !=, ^=, $=, *= and %=. -New operators can be added as long as the match the format c= where c is any character other than space, > <.
-
This property is defined by DomQuery.
-
- -
-

pseudos

- public Object pseudos -
- Collection of "pseudo class" processors. Each processor is passed the current nodeset (array) -and the argument (if any) supplied in the selector.
-
This property is defined by DomQuery.
-
-
- - -

Method Details

-
- -
-

compile

- public function compile(String selector, [String type]) -
- Compiles a selector/xpath query into a reusable function. The returned function -takes one parameter "root" (optional), which is the context node from where the query should start. -
- Parameters: -
  • selector : String
    The selector/xpath query
  • type : String
    (optional) Either "select" (the default) or "simple" for a simple selector match
- Returns: -
    -
  • Function
  • -
-
-
-
This method is defined by DomQuery.
-
- -
-

filter

- public function filter(Array el, String selector, Boolean nonMatches) -
- Filters an array of elements to only include matches of a simple selector (e.g. div.some-class or span:first-child) -
- Parameters: -
  • el : Array
    An array of elements to filter
  • selector : String
    The simple selector to test
  • nonMatches : Boolean
    If true, it returns the elements that DON'T match the selector instead of the ones that match
- Returns: -
    -
  • Array
  • -
-
-
-
This method is defined by DomQuery.
-
- -
-

is

- public function is(String/HTMLElement/Array el, String selector) -
- Returns true if the passed element(s) match the passed simple selector (e.g. div.some-class or span:first-child) -
- Parameters: -
  • el : String/HTMLElement/Array
    An element id, element or array of elements
  • selector : String
    The simple selector to test
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by DomQuery.
-
- -
-

select

- public function select(String selector, [Node root]) -
- Selects a group of elements. -
- Parameters: -
  • selector : String
    The selector/xpath query
  • root : Node
    (optional) The start of the query (defaults to document).
- Returns: -
    -
  • Array
  • -
-
-
-
This method is defined by DomQuery.
-
- -
-

selectNode

- public function selectNode(String selector, [Node root]) -
- Selects a single element. -
- Parameters: -
  • selector : String
    The selector/xpath query
  • root : Node
    (optional) The start of the query (defaults to document).
- Returns: -
    -
  • Element
  • -
-
-
-
This method is defined by DomQuery.
-
- -
-

selectNumber

- public function selectNumber(String selector, [Node root], Number defaultValue) -
- Selects the value of a node, parsing integers and floats. -
- Parameters: -
  • selector : String
    The selector/xpath query
  • root : Node
    (optional) The start of the query (defaults to document).
  • defaultValue : Number
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by DomQuery.
-
- -
-

selectValue

- public function selectValue(String selector, [Node root], String defaultValue) -
- Selects the value of a node, optionally replacing null with the defaultValue. -
- Parameters: -
  • selector : String
    The selector/xpath query
  • root : Node
    (optional) The start of the query (defaults to document).
  • defaultValue : String
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DomQuery.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Editor.html b/www/extras/extjs/docs/output/Ext.Editor.html deleted file mode 100644 index eef8d04e0..000000000 --- a/www/extras/extjs/docs/output/Ext.Editor.html +++ /dev/null @@ -1,1216 +0,0 @@ - - - - Ext.Editor - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Editor

- - - - - -
Package:Ext
Class:Editor
Extends:Component
Defined In:Editor.js
-
- A base editor field that handles displaying/hiding on demand and has some built-in sizing and event handling logic.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Editor(Object config)Editor
Create a new Editor
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 cancelEdit(Boolean remainVisible) : voidEditor
Cancels the editing process and hides the editor without persisting any changes. The field value will be -reverted to...
 completeEdit(Boolean remainVisible) : voidEditor
Ends the editing process, persist the changed value to the underlying field and hides the editor.
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 getValue() : MixedEditor
Gets the data value of the editor
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isVisible() : voidComponent
Returns true if this component is visible
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 realign() : voidEditor
Realigns the editor to the bound field based on the current alignment config value.
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setSize(Number width, Number height) : voidEditor
Sets the height and width of this editor
 setValue(Mixed value) : voidEditor
Sets the data value of the editor
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforecomplete : (Editor this, Mixed value, Mixed startValue)Editor
Fires after a change has been made to the field, but before the change is reflected in the underlying -field. Saving ...
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 beforestartedit : (Editor this, Ext.Element boundEl, Mixed value)Editor
Fires when editing is initiated, but before the value changes. Editing can be canceled by returning -false from the h...
 complete : (Editor this, Mixed value, Mixed startValue)Editor
Fires after editing is complete and any changed value has been written to the underlying field.
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 hide : (Ext.Component this)Component
Fires after the component is hidden
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
 specialkey : ()Editor
Fires when special key is pressed
 startedit : (Ext.Element boundEl, Mixed value)Editor
Fires when this editor is displayed
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 alignment : StringEditor
The position to align to (see Ext.Element.alignTo for more details, defaults to "c-c?").
 autosize : Boolean/StringEditor
True for the editor to automatically adopt the size of the underlying field, "width" to adopt the width only, or "hei...
 ignoreNoChange : BooleanEditor
True to skip the the edit completion process (no save, no events fired) if the user completes an edit and the value h...
 revertInvalid : BooleanEditor
True to automatically revert the field value and cancel the edit when the user completes an edit and the field valida...
 shadow : Boolean/StringEditor
"sides" for sides/bottom only, "frame" for 4-way shadow, and "drop" for bottom-right shadow (defaults to "frame")
 value : MixedEditor
The data value of the underlying field (defaults to "")
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

Editor

- public function Editor(Object config) -
- Create a new Editor
- Parameters: -
  • config : Object
    The config object
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

cancelEdit

- public function cancelEdit(Boolean remainVisible) -
- Cancels the editing process and hides the editor without persisting any changes. The field value will be -reverted to the original starting value. -
- Parameters: -
  • remainVisible : Boolean
    Override the default behavior and keep the editor visible after cancel (defaults to false)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Editor.
-
- -
-

completeEdit

- public function completeEdit(Boolean remainVisible) -
- Ends the editing process, persist the changed value to the underlying field and hides the editor. -
- Parameters: -
  • remainVisible : Boolean
    Override the default behavior and keep the editor visible after edit (defaults to false)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Editor.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

getValue

- public function getValue() -
- Gets the data value of the editor -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The data value
  • -
-
-
-
This method is defined by Editor.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

realign

- public function realign() -
- Realigns the editor to the bound field based on the current alignment config value. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Editor.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setSize

- public function setSize(Number width, Number height) -
- Sets the height and width of this editor -
- Parameters: -
  • width : Number
    The new width
  • height : Number
    The new height
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Editor.
-
- -
-

setValue

- public function setValue(Mixed value) -
- Sets the data value of the editor -
- Parameters: -
  • value : Mixed
    Any valid value supported by the underlying field
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Editor.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforecomplete

- public event beforecomplete -
- Fires after a change has been made to the field, but before the change is reflected in the underlying -field. Saving the change to the field can be canceled by returning false from the handler of this event. -Note that if the value has not changed and ignoreNoChange = true, the editing will still end but this -event will not fire since no edit actually occurred. -
- Subscribers will be called with the following parameters: -
  • this : Editor
  • value : Mixed
    The current field value
  • startValue : Mixed
    The original field value
-
-
-
This event is defined by Editor.
-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforestartedit

- public event beforestartedit -
- Fires when editing is initiated, but before the value changes. Editing can be canceled by returning -false from the handler of this event. -
- Subscribers will be called with the following parameters: -
  • this : Editor
  • boundEl : Ext.Element
    The underlying element bound to this editor
  • value : Mixed
    The field value being set
-
-
-
This event is defined by Editor.
-
- -
-

complete

- public event complete -
- Fires after editing is complete and any changed value has been written to the underlying field. -
- Subscribers will be called with the following parameters: -
  • this : Editor
  • value : Mixed
    The current field value
  • startValue : Mixed
    The original field value
-
-
-
This event is defined by Editor.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

specialkey

- public event specialkey -
- Fires when special key is pressed -
- Subscribers will be called with the following parameters: -
  • None.
-
-
-
This event is defined by Editor.
-
- -
-

startedit

- public event startedit -
- Fires when this editor is displayed -
- Subscribers will be called with the following parameters: -
  • boundEl : Ext.Element
    The underlying element bound to this editor
  • value : Mixed
    The starting field value
-
-
-
This event is defined by Editor.
-
-
-

Config Details

-
- -
-

alignment

- alignment : String -
- The position to align to (see Ext.Element.alignTo for more details, defaults to "c-c?").
-
This config option is defined by Editor.
-
- -
-

autosize

- autosize : Boolean/String -
- True for the editor to automatically adopt the size of the underlying field, "width" to adopt the width only, or "height" to adopt the height only (defaults to false)
-
This config option is defined by Editor.
-
- -
-

ignoreNoChange

- ignoreNoChange : Boolean -
- True to skip the the edit completion process (no save, no events fired) if the user completes an edit and the value has not changed (defaults to false). Applies only to string values - edits for other data types will never be ignored.
-
This config option is defined by Editor.
-
- -
-

revertInvalid

- revertInvalid : Boolean -
- True to automatically revert the field value and cancel the edit when the user completes an edit and the field validation fails (defaults to true)
-
This config option is defined by Editor.
-
- -
-

shadow

- shadow : Boolean/String -
- "sides" for sides/bottom only, "frame" for 4-way shadow, and "drop" for bottom-right shadow (defaults to "frame")
-
This config option is defined by Editor.
-
- -
-

value

- value : Mixed -
- The data value of the underlying field (defaults to "")
-
This config option is defined by Editor.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Element.html b/www/extras/extjs/docs/output/Ext.Element.html deleted file mode 100644 index dab531b03..000000000 --- a/www/extras/extjs/docs/output/Ext.Element.html +++ /dev/null @@ -1,3603 +0,0 @@ - - - - Ext.Element - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Element

- - - - - - -
Package:Ext
Class:Element
Extends:Object
Subclasses:Layer
Defined In:Element.js
-
- Represents an Element in the DOM.

-Usage:
-
var el = Ext.get("my-div");
-
-// or with getEl
-var el = getEl("my-div");
-
-// or with a DOM element
-var el = Ext.get(myDivElement);
-Using Ext.get() or getEl() instead of calling the constructor directly ensures you get the same object -each call instead of constructing a new one.

-Animations
-Many of the functions for manipulating an element have an optional "animate" parameter. The animate parameter -should either be a boolean (true) or an object literal with animation options. The animation options are: -
-Option    Default   Description
---------- --------  ---------------------------------------------
-duration  .35       The duration of the animation in seconds
-easing    easeOut   The YUI easing method
-callback  none      A function to execute when the anim completes
-scope     this      The scope (this) of the callback function
-
-Also, the Anim object being used for the animation will be set on your options object as "anim", which allows you to stop or -manipulate the animation. Here's an example: -

-var el = Ext.get("my-div");
-
-// no animation
-el.setWidth(100);
-
-// default animation
-el.setWidth(100, true);
-
-// animation with some options set
-el.setWidth(100, {
-    duration: 1, 
-    callback: this.foo, 
-    scope: this
-});
-
-// using the "anim" property to get the Anim object
-var opt = {
-    duration: 1, 
-    callback: this.foo, 
-    scope: this
-};
-el.setWidth(100, opt);
-...
-if(opt.anim.isAnimated()){
-    opt.anim.stop();
-}
-
- Composite (Collections of) Elements
-For working with collections of Elements, see Ext.CompositeElement
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 Element.DISPLAY : NumberElement
<static> Visibility mode constant - Use display to hide element
 Element.VISIBILITY : NumberElement
<static> Visibility mode constant - Use visibility to hide element
 defaultUnit : StringElement
The default unit to append to CSS values where a unit isn't provided (Defaults to px).
 dom : HTMLElementElement
The DOM element
 id : StringElement
The DOM element ID
 originalDisplay : StringElement
The element's default display mode
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Element(String/HTMLElement element, [Boolean forceNew])Element
Create a new Element directly.
 Element.fly(String/HTMLElement el, [String named]) : ElementElement
<static> Gets the globally shared flyweight Element, with the passed node as the active element. Do not store a...
 Element.get(String/HTMLElement/Element el) : ElementElement
<static> Static method to retrieve Element objects. Uses simple caching to consistently return the same object....
 addClass(String/Array className) : Ext.ElementElement
Add a CSS class to the element.
 addClassOnClick(String className) : Ext.ElementElement
Sets up event handlers to add and remove a css class when the mouse is down and then up on this element (a click effect)
 addClassOnFocus(String className) : Ext.ElementElement
Sets up event handlers to add and remove a css class when this element has the focus
 addClassOnOver(String className, [Boolean preventFlicker]) : Ext.ElementElement
Sets up event handlers to add and remove a css class when the mouse is over this element
 addKeyListener(Number/Array/Object/String key, Function fn, [Object scope]) : Ext.KeyMapElement
Convenience method for constructing a KeyMap
 addKeyMap(Object config) : Ext.KeyMapElement
Creates a KeyMap for this element
 addListener(String eventName, Function fn, [Object scope], [Object options]) : voidElement
Appends an event handler
 alignTo(String/HTMLElement/Ext.Element element, String position, [Array offsets], [Boolean/Object animate]) : Ext.ElementElement
Aligns this element with another element relative to the specified anchor points. If the other element is the -documen...
 anchorTo(String/HTMLElement/Ext.Element element, String position, [Array offsets], [Boolean/Object animate], [Boolean/Number monitorScroll], ) : voidElement
Anchors an element to another element and realigns it when the window is resized.
 animate(Object args, [Float duration], [Function onComplete], [String easing], [String animType]) : Ext.ElementElement
Perform animation on this element.
 appendChild(String/HTMLElement/Array/Element/CompositeElement el) : Ext.ElementElement
Appends the passed element(s) to this element
 appendTo(String/HTMLElement/Element el) : Ext.ElementElement
Appends this element to the passed element
 applyStyles(String/Object/Function styles) : Ext.ElementElement
More flexible version of setStyle for setting style properties.
 autoHeight([Boolean animate], [Float duration], [Function onComplete], [String easing]) : Ext.ElementElement
Measures the elements content height and updates height to match. Note, this function uses setTimeout and -the new he...
 beginMeasure() : Ext.ElementElement
Temporarily enables offsets (width,height,x,y) for an element with display:none, use endMeasure() when done.
 blur() : Ext.ElementElement
Tries to blur the element. Any exceptions are caught.
 center([String/HTMLElement/Ext.Element centerIn]) : voidElement
Centers the Element in either the viewport, or another Element.
 child(String selector, Boolean returnDom) : ElementElement
Selects a single child based on the passed CSS selector (the selector should not contain an id)
 clean([Boolean forceReclean]) : voidElement
Removes worthless text nodes
 clearOpacity() : Ext.ElementElement
Clears any opacity settings from this element. Required in some cases for IE.
 clearPositioning([String value]) : Ext.ElementElement
Clear positioning back to the default when the document was loaded
 clip() : Ext.ElementElement
Store the current overflow setting and clip overflow on the element - use unclip to remove
 contains(HTMLElement/String el) : BooleanElement
Returns true if this element is an ancestor of the passed element
 createChild(Object config, [HTMLElement insertBefore], [Boolean returnDom]) : Ext.ElementElement
Creates the passed DomHelper config and appends it to this element or optionally inserts it before the passed child e...
 createProxy(String/Object config, [String/HTMLElement renderTo], [Boolean matchBox]) : Ext.ElementElement
Creates a proxy element of this element
 createShim() : Ext.ElementElement
Creates an iframe shim for this element to keep selects and other windowed objects from -showing through.
 down(String selector, Boolean returnDom) : ElementElement
Selects a single *direct* child based on the passed CSS selector (the selector should not contain an id)
 enableDisplayMode([String display]) : Ext.ElementElement
Convenience method for setVisibilityMode(Element.DISPLAY)
 endMeasure() : Ext.ElementElement
Restores displays to before beginMeasure was called
 findParent(String ss, [Number/String/HTMLElement/Element maxDepth], [Boolean returnEl]) : HTMLElementElement
Looks at this node and then at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:fi...
 findParentNode(String ss, [Number/String/HTMLElement/Element maxDepth], [Boolean returnEl]) : HTMLElementElement
Looks at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:first-child)
 fitToParent([Boolean monitorResize], [String/HTMLElment/Element targetParent]) : Ext.ElementElement
Sizes this element to its parent element's dimensions performing -neccessary box adjustments.
 focus() : Ext.ElementElement
Tries to focus the element. Any exceptions are caught.
 getAlignToXY(String/HTMLElement/Ext.Element element, String position, [Array offsets]) : ArrayElement
Gets the x,y coordinates to align this element with another element. See alignTo for more info on the -supported posit...
 getAnchorXY([String anchor], [Object size], [Boolean local]) : ArrayElement
Gets the x,y coordinates specified by the anchor position on the element.
 getBorderWidth(String side) : NumberElement
Gets the width of the border(s) for the specified side(s)
 getBottom(Boolean local) : NumberElement
Gets the bottom Y coordinate of the element (element Y position + element height)
 getBox([Boolean contentBox], [Boolean local]) : ObjectElement
Return a box {x, y, width, height} that can be used to set another elements -size/location to match this element.
 getCenterXY() : ArrayElement
Calculates the x, y to center this element on the screen
 getColor(String attr, String defaultValue, [String prefix]) : voidElement
Return the CSS color for the specified CSS attribute. rgb, 3 digit (like #fff) and valid values -are convert to standa...
 getComputedHeight() : NumberElement
Returns either the offsetHeight or the height of this element based on CSS height adjusted by padding or borders -when...
 getComputedWidth() : NumberElement
Returns either the offsetWidth or the width of this element based on CSS width adjusted by padding or borders -when ne...
 getFrameWidth(String sides) : NumberElement
Returns the sum width of the padding and borders for the passed "sides". See getBorderWidth() - for more informat...
 getHeight([Boolean contentHeight]) : NumberElement
Returns the offset height of the element
 getLeft(Boolean local) : NumberElement
Gets the left X coordinate
 getMargins([String sides]) : Object/NumberElement
Returns an object with properties top, left, right and bottom representing the margins of this element unless sides i...
 getNextSibling() : HTMLElementElement
Gets the next sibling, skipping text nodes
 getPadding(String side) : NumberElement
Gets the width of the padding(s) for the specified side(s)
 getPositioning() : ObjectElement
Gets an object with all CSS positioning properties. Useful along with setPostioning to get -snapshot before performing...
 getPrevSibling() : HTMLElementElement
Gets the previous sibling, skipping text nodes
 getRegion() : RegionElement
Returns the region of the given element. -The element must be part of the DOM tree to have a region (display:none or e...
 getRight(Boolean local) : NumberElement
Gets the right X coordinate of the element (element X position + element width)
 getSize([Boolean contentSize]) : ObjectElement
Returns the size of the element
 getStyle(String property) : StringElement
Normalizes currentStyle and computedStyle. This is not YUI getStyle, it is an optimised version.
 getStyles(String style1, String style2, String etc) : ObjectElement
Get an object with properties matching the styles requested. -e.g. el.getStyles('color', 'font-size', 'width') might r...
 getTop(Boolean local) : NumberElement
Gets the top Y coordinate
 getUpdateManager() : Ext.UpdateManagerElement
Gets this elements UpdateManager
 getValue(Boolean asNumber) : String/NumberElement
Returns the value of the "value" attribute
 getWidth([Boolean contentWidth]) : NumberElement
Returns the offset width of the element
 getX() : NumberElement
Gets the current X position of the element based on page coordinates. Element must be part of the DOM tree to have p...
 getXY() : ArrayElement
Gets the current position of the element based on page coordinates. Element must be part of the DOM tree to have pag...
 getY() : NumberElement
Gets the current Y position of the element based on page coordinates. Element must be part of the DOM tree to have p...
 hasClass(String className) : BooleanElement
Checks if a CSS class is in use by the element.
 hide([Boolean/Object animate]) : Ext.ElementElement
Hide this element - Uses display mode to determine whether to use "display" or "visibility". See setVisible.
 initDD(String group, Object config, Object overrides) : Ext.dd.DDElement
Initializes a Ext.dd.DD object for this element.
 initDDProxy(String group, Object config, Object overrides) : Ext.dd.DDProxyElement
Initializes a Ext.dd.DDProxy object for this element.
 initDDTarget(String group, Object config, Object overrides) : Ext.dd.DDTargetElement
Initializes a Ext.dd.DDTarget object for this element.
 insertAfter(String/HTMLElement/Element el) : Ext.ElementElement
Inserts this element after the passed element in the DOM
 insertBefore(String/HTMLElement/Element el) : Ext.ElementElement
Inserts this element before the passed element in the DOM
 insertFirst(String/HTMLElement/Element/Object el) : Ext.ElementElement
Inserts (or creates) an element (or DomHelper config) as the first child of the this element
 insertHtml(String where, String html) : HTMLElementElement
Inserts an html fragment into this element
 insertSibling(String/HTMLElement/Element/Object el, [String where], [Boolean returnDom]) : Ext.ElementElement
Inserts (or creates) the passed element (or DomHelper config) as a sibling of this element
 is(String ss) : BooleanElement
Returns true if this element matches the passed simple selector (e.g. div.some-class or span:first-child)
 isBorderBox() : BooleanElement
Tests various css rules/browsers to determine if this element uses a border box
 isDisplayed() : BooleanElement
Returns true if display is not "none"
 isMasked() : BooleanElement
Returns true if this element is masked
 isScrollable() : BooleanElement
Returns true if this element is scrollable.
 isVisible(Boolean deep) : BooleanElement
Checks whether the element is currently visible using both visibility and display properties.
 load(String/Function url, [String/Object params], [Function callback], [Boolean discardUrl]) : Ext.ElementElement
Direct access to the UpdateManager update() method (takes the same parameters).
 mask([String msg], [String msgCls]) : ElementElement
Puts a mask over this element to disable user interaction. Requires core.css. -This method can only be applied to elem...
 move(String direction, Number distance, [Boolean/Object animate]) : Ext.ElementElement
Move this element relative to its current position.
 moveTo(Number x, Number y, [Boolean/Object animate]) : Ext.ElementElement
Set the position of the element in page coordinates, regardless of how the element is positioned. -The element must be...
 position([String pos], [Number zIndex], [Number x], [Number y]) : voidElement
Initializes positioning on this element. If a desired position is not passed, it will make the -the element positioned...
 query(String selector) : ArrayElement
Selects child nodes based on the passed CSS selector (the selector should not contain an id)
 radioClass(String className) : Ext.ElementElement
Adds the passed className to this element and removes the class from all siblings
 remove() : voidElement
Removes this element from the DOM and deletes it from the cache
 removeAllListeners() : Ext.ElementElement
Removes all previous added listeners from this element
 removeClass(String/Array className) : Ext.ElementElement
Removes a CSS class from the element.
 removeListener(String eventName, Function fn) : Ext.ElementElement
Removes an event handler from this element
 repaint() : Ext.ElementElement
Forces the browser to repaint this element
 replace(String/HTMLElement/Element el) : Ext.ElementElement
Replaces the passed element with this element
 replaceClass(String oldClassName, String newClassName) : Ext.ElementElement
Replaces a CSS class on the element with another.
 scroll(String direction, Number distance, [Boolean/Object animate]) : BooleanElement
Scrolls this element the specified direction. Does bounds checking to make sure the scroll is -within this elements s...
 scrollIntoView([String/HTMLElement/Element container], [Boolean hscroll]) : Ext.ElementElement
Scrolls this element into view within the passed container.
 scrollTo(String side, Number value, [Boolean/Object animate]) : ElementElement
Scrolls this element the specified scroll point. It does NOT do bounds checking so if you scroll to a weird value it ...
 select(String selector, Boolean unique) : CompositeElement/CompositeElementLiteElement
Creates a CompositeElement for child nodes based on the passed CSS selector (the selector should not contain an id)
 set(Object o, [Boolean useSet]) : Ext.ElementElement
Sets the passed attributes as attributes of this element (a style attribute can be a string, object or function)
 setBottom(String bottom) : Ext.ElementElement
Set the element's css bottom style
 setBounds(Number x, Number y, Number width, Number height, [Boolean/Object animate]) : Ext.ElementElement
Sets the element's position and size in one shot. If animation is true then width, height, x and y will be animated c...
 setBox(Object box, [Boolean adjust], [Boolean/Object animate]) : Ext.ElementElement
Sets the element's box. Use getBox() on another element to get a box obj. If animate is true then width, height, x an...
 setDisplayed(Boolean value) : Ext.ElementElement
Sets the css display. Uses originalDisplay if value is a boolean true.
 setHeight(Number height, [Boolean/Object animate]) : Ext.ElementElement
Set the height of the element
 setLeft(String left) : Ext.ElementElement
Set the element's left position directly using CSS style (instead of setX())
 setLeftTop() : Ext.ElementElement
Quick set left and top adding default units
 setLocation(Number x, Number y, [Boolean/Object animate]) : Ext.ElementElement
Set the position of the element in page coordinates, regardless of how the element is positioned. -The element must be...
 setOpacity(Float opacity, [Boolean/Object animate]) : Ext.ElementElement
Set the opacity of the element
 setPositioning(Object posCfg) : Ext.ElementElement
Set positioning with an object returned by getPositioning().
 setRegion(Ext.lib.Region region, [Boolean/Object animate]) : Ext.ElementElement
Sets the element's position and size the the specified region. If animation is true then width, height, x and y will ...
 setRight(String right) : Ext.ElementElement
Set the element's css right style
 setSize(Number width, Number height, [Boolean/Object animate]) : Ext.ElementElement
Set the size of the element. If animation is true, both width an height will be animated concurrently.
 setStyle(String/Object property, [String val]) : Ext.ElementElement
Wrapper for setting style properties, also takes single object parameter of multiple styles
 setTop(String top) : Ext.ElementElement
Set the element's top position directly using CSS style (instead of setY())
 setVisibilityMode(visMode Element.VISIBILITY) : Ext.ElementElement
Sets the elements visibility mode. When setVisible() is called it -will use this to determine whether to set the visib...
 setVisible(Boolean visible, [Boolean/Object animate]) : Ext.ElementElement
Sets the visibility of the element (see details). If the visibilityMode is set to Element.DISPLAY, it will use -the d...
 setWidth(Number width, [Boolean/Object animate]) : Ext.ElementElement
Set the width of the element
 setX(Number The, [Boolean/Object animate]) : Ext.ElementElement
Sets the X position of the element based on page coordinates. Element must be part of the DOM tree to have page coor...
 setXY(Array pos, [Boolean/Object animate]) : Ext.ElementElement
Set the position of the element in page coordinates, regardless of how the element is positioned. -The element must be...
 setY(Number The, [Boolean/Object animate]) : Ext.ElementElement
Sets the Y position of the element based on page coordinates. Element must be part of the DOM tree to have page coor...
 show([Boolean/Object animate]) : Ext.ElementElement
Show this element - Uses display mode to determine whether to use "display" or "visibility". See setVisible.
 swallowEvent(String eventName, [Boolean preventDefault]) : Ext.ElementElement
Stops the specified event from bubbling and optionally prevents the default action
 toggle([Boolean/Object animate]) : Ext.ElementElement
Toggles the elements visibility or display, depending on visibility mode.
 toggleClass(String className) : Ext.ElementElement
Toggles (adds or removes) the passed class.
 translatePoints(Number/Array x, Number y, Object An) : voidElement
Translates the passed page coordinates into left/top css values for this element
 unclip() : Ext.ElementElement
Return clipping (overflow) to original clipping before clip() was called
 unmask() : voidElement
Removes a previously applied mask. If removeEl is true the mask overlay is destroyed, otherwise -it is cached for reuse.
 unselectable() : Ext.ElementElement
Disables text selection for this element (normalized across browsers)
 up(String ss, [Number/String/HTMLElement/Element maxDepth]) : Ext.ElementElement
Walks up the dom looking for a parent node that matches the passed simple selector (e.g. div.some-class or span:first...
 update(String html, [Boolean loadScripts], Function callback) : Ext.ElementElement
Update the innerHTML of this element, optionally searching for and processing scripts
 wrap([Object config], [Boolean returnDom]) : /HTMLElementElementElement
Creates and wraps this element with another element
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

Element.DISPLAY

- public Number Element.DISPLAY -
- <static> Visibility mode constant - Use display to hide element
-
This property is defined by Element.
-
- -
-

Element.VISIBILITY

- public Number Element.VISIBILITY -
- <static> Visibility mode constant - Use visibility to hide element
-
This property is defined by Element.
-
- -
-

defaultUnit

- public String defaultUnit -
- The default unit to append to CSS values where a unit isn't provided (Defaults to px).
-
This property is defined by Element.
-
- -
-

dom

- public HTMLElement dom -
- The DOM element
-
This property is defined by Element.
-
- -
-

id

- public String id -
- The DOM element ID
-
This property is defined by Element.
-
- -
-

originalDisplay

- public String originalDisplay -
- The element's default display mode
-
This property is defined by Element.
-
-
- - -

Constructor Details

-
-
-

Element

- public function Element(String/HTMLElement element, [Boolean forceNew]) -
- Create a new Element directly.
- Parameters: -
  • element : String/HTMLElement
  • forceNew : Boolean
    (optional) By default the constructor checks to see if there is already an instance of this element in the cache and if there is it returns the same instance. This will skip that check (useful for extending this class).
-
-
-
-
- -

Method Details

-
- -
-

Element.fly

- public function Element.fly(String/HTMLElement el, [String named]) -
- <static> Gets the globally shared flyweight Element, with the passed node as the active element. Do not store a reference to this element - -the dom node can be overwritten by other code. -
- Parameters: -
  • el : String/HTMLElement
    The dom node or id
  • named : String
    (optional) Allows for creation of named reusable flyweights to prevent conflicts (e.g. internally Ext uses "_internal")
- Returns: -
    -
  • Element
    The shared Element object
  • -
-
-
-
This method is defined by Element.
-
- -
-

Element.get

- public function Element.get(String/HTMLElement/Element el) -
- <static> Static method to retrieve Element objects. Uses simple caching to consistently return the same object. -Automatically fixes if an object was recreated with the same id via AJAX or DOM. -
- Parameters: -
  • el : String/HTMLElement/Element
    The id of the node, a DOM Node or an existing Element.
- Returns: -
    -
  • Element
    The Element object
  • -
-
-
-
This method is defined by Element.
-
- -
-

addClass

- public function addClass(String/Array className) -
- Add a CSS class to the element. -
- Parameters: -
  • className : String/Array
    The CSS class to add or an array of classes
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

addClassOnClick

- public function addClassOnClick(String className) -
- Sets up event handlers to add and remove a css class when the mouse is down and then up on this element (a click effect) -
- Parameters: -
  • className : String
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

addClassOnFocus

- public function addClassOnFocus(String className) -
- Sets up event handlers to add and remove a css class when this element has the focus -
- Parameters: -
  • className : String
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

addClassOnOver

- public function addClassOnOver(String className, [Boolean preventFlicker]) -
- Sets up event handlers to add and remove a css class when the mouse is over this element -
- Parameters: -
  • className : String
  • preventFlicker : Boolean
    (optional) If set to true, it prevents flickering by filtering mouseout events for children elements
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

addKeyListener

- public function addKeyListener(Number/Array/Object/String key, Function fn, [Object scope]) -
- Convenience method for constructing a KeyMap -
- Parameters: -
  • key : Number/Array/Object/String
    Either a string with the keys to listen for, the numeric key code, array of key codes or an object with the following options: {key: (number or array), shift: (true/false), ctrl: (true/false), alt: (true/false)}
  • fn : Function
    The function to call
  • scope : Object
    (optional) The scope of the function
- Returns: -
    -
  • Ext.KeyMap
    The KeyMap created
  • -
-
-
-
This method is defined by Element.
-
- -
-

addKeyMap

- public function addKeyMap(Object config) -
- Creates a KeyMap for this element -
- Parameters: -
  • config : Object
    The KeyMap config. See Ext.KeyMap for more details
- Returns: -
    -
  • Ext.KeyMap
    The KeyMap created
  • -
-
-
-
This method is defined by Element.
-
- -
-

addListener

- public function addListener(String eventName, Function fn, [Object scope], [Object options]) -
- Appends an event handler -
- Parameters: -
  • eventName : String
    The type of event to append
  • fn : Function
    The method the event invokes
  • scope : Object
    (optional) The scope (this object) of the fn
  • options : Object
    (optional)An object with standard EventManager options
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

alignTo

- public function alignTo(String/HTMLElement/Ext.Element element, String position, [Array offsets], [Boolean/Object animate]) -
- Aligns this element with another element relative to the specified anchor points. If the other element is the -document it aligns it to the viewport. -The position parameter is optional, and can be specified in any one of the following formats: -
    -
  • Blank: Defaults to aligning the element"s top-left corner to the target"s bottom-left corner ("tl-bl").
  • -
  • One anchor (deprecated): The passed anchor position is used as the target element's anchor point. -The element being aligned will position its top-left corner (tl) to that point. This method has been -deprecated in favor of the newer two anchor syntax below.
  • -
  • Two anchors: If two values from the table below are passed separated by a dash, the first value is used as the -element"s anchor point, and the second value is used as the target"s anchor point.
  • -
-In addition to the anchor points, the position parameter also supports the "?" character. If "?" is passed at the end of -the position string, the element will attempt to align as specified, but the position will be adjusted to constrain to -the viewport if necessary. Note that the element being aligned might be swapped to align to a different position than -that specified in order to enforce the viewport constraints. -Following are all of the supported anchor positions: -
-Value  Description
------  -----------------------------
-tl     The top left corner (default)
-t      The center of the top edge
-tr     The top right corner
-l      The center of the left edge
-c      In the center of the element
-r      The center of the right edge
-bl     The bottom left corner
-b      The center of the bottom edge
-br     The bottom right corner
-
-Example Usage: -

-// align el to other-el using the default positioning ("tl-bl", non-constrained)
-el.alignTo("other-el");
-
-// align the top left corner of el with the top right corner of other-el (constrained to viewport)
-el.alignTo("other-el", "tr?");
-
-// align the bottom right corner of el with the center left edge of other-el
-el.alignTo("other-el", "br-l?");
-
-// align the center of el with the bottom left corner of other-el and
-// adjust the x position by -6 pixels (and the y position by 0)
-el.alignTo("other-el", "c-bl", [-6, 0]);
-
-
- Parameters: -
  • element : String/HTMLElement/Ext.Element
    The element to align to.
  • position : String
    The position to align to.
  • offsets : Array
    (optional) Offset the positioning by [x, y]
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

anchorTo

- public function anchorTo(String/HTMLElement/Ext.Element element, String position, [Array offsets], [Boolean/Object animate], [Boolean/Number monitorScroll], ) -
- Anchors an element to another element and realigns it when the window is resized. -
- Parameters: -
  • element : String/HTMLElement/Ext.Element
    The element to align to.
  • position : String
    The position to align to.
  • offsets : Array
    (optional) Offset the positioning by [x, y]
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
  • monitorScroll : Boolean/Number
    (optional) true to monitor body scroll and reposition. If this parameter is a number, it is used as the buffer delay (defaults to 50ms).
  • :
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

animate

- public function animate(Object args, [Float duration], [Function onComplete], [String easing], [String animType]) -
- Perform animation on this element. -
- Parameters: -
  • args : Object
    The YUI animation control args
  • duration : Float
    (optional) How long the animation lasts. (Defaults to .35 seconds)
  • onComplete : Function
    (optional) Function to call when animation completes.
  • easing : String
    (optional) Easing method to use. (Defaults to 'easeOut')
  • animType : String
    (optional) 'run' is the default. Can be 'color', 'motion', or 'scroll'
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

appendChild

- public function appendChild(String/HTMLElement/Array/Element/CompositeElement el) -
- Appends the passed element(s) to this element -
- Parameters: -
  • el : String/HTMLElement/Array/Element/CompositeElement
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

appendTo

- public function appendTo(String/HTMLElement/Element el) -
- Appends this element to the passed element -
- Parameters: -
  • el : String/HTMLElement/Element
    The new parent element
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

applyStyles

- public function applyStyles(String/Object/Function styles) -
- More flexible version of setStyle for setting style properties. -
- Parameters: -
  • styles : String/Object/Function
    A style specification string eg "width:100px", or object in the form {width:"100px"}, or a function which returns such a specification.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

autoHeight

- public function autoHeight([Boolean animate], [Float duration], [Function onComplete], [String easing]) -
- Measures the elements content height and updates height to match. Note, this function uses setTimeout and -the new height may not be available immediately. -
- Parameters: -
  • animate : Boolean
    (optional) Animate the transition (Default is false)
  • duration : Float
    (optional) Length of the animation. (Defaults to .35 seconds)
  • onComplete : Function
    (optional) Function to call when animation completes.
  • easing : String
    (optional) Easing method to use.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

beginMeasure

- public function beginMeasure() -
- Temporarily enables offsets (width,height,x,y) for an element with display:none, use endMeasure() when done. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

blur

- public function blur() -
- Tries to blur the element. Any exceptions are caught. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

center

- public function center([String/HTMLElement/Ext.Element centerIn]) -
- Centers the Element in either the viewport, or another Element. -
- Parameters: -
  • centerIn : String/HTMLElement/Ext.Element
    (optional) The element in which to center the element.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

child

- public function child(String selector, Boolean returnDom) -
- Selects a single child based on the passed CSS selector (the selector should not contain an id) -
- Parameters: -
  • selector : String
    The CSS selector
  • returnDom : Boolean
    true to return the DOM node instead of Ext.Element
- Returns: -
    -
  • Element
    The element
  • -
-
-
-
This method is defined by Element.
-
- -
-

clean

- public function clean([Boolean forceReclean]) -
- Removes worthless text nodes -
- Parameters: -
  • forceReclean : Boolean
    (optional) By default the element keeps track if it has been cleaned already so you can call this over and over. However, if you update the element and need to force a reclean, you can pass true.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

clearOpacity

- public function clearOpacity() -
- Clears any opacity settings from this element. Required in some cases for IE. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

clearPositioning

- public function clearPositioning([String value]) -
- Clear positioning back to the default when the document was loaded -
- Parameters: -
  • value : String
    (optional) The value to use for the left,right,top,bottom, defaults to '' (empty string). You could use 'auto'.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

clip

- public function clip() -
- Store the current overflow setting and clip overflow on the element - use unclip to remove -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

contains

- public function contains(HTMLElement/String el) -
- Returns true if this element is an ancestor of the passed element -
- Parameters: -
  • el : HTMLElement/String
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Element.
-
- -
-

createChild

- public function createChild(Object config, [HTMLElement insertBefore], [Boolean returnDom]) -
- Creates the passed DomHelper config and appends it to this element or optionally inserts it before the passed child element. -
- Parameters: -
  • config : Object
    DomHelper element config object
  • insertBefore : HTMLElement
    (optional) a child element of this element
  • returnDom : Boolean
    (optional) true to return the dom node instead of creating an Element
- Returns: -
    -
  • Ext.Element
    The new child element
  • -
-
-
-
This method is defined by Element.
-
- -
-

createProxy

- public function createProxy(String/Object config, [String/HTMLElement renderTo], [Boolean matchBox]) -
- Creates a proxy element of this element -
- Parameters: -
  • config : String/Object
    The class name of the proxy element or a DomHelper config object
  • renderTo : String/HTMLElement
    (optional) The element or element id to render the proxy to (defaults to document.body)
  • matchBox : Boolean
    (optional) True to align and size the proxy to this element now (defaults to false)
- Returns: -
    -
  • Ext.Element
    The new proxy element
  • -
-
-
-
This method is defined by Element.
-
- -
-

createShim

- public function createShim() -
- Creates an iframe shim for this element to keep selects and other windowed objects from -showing through. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The new shim element
  • -
-
-
-
This method is defined by Element.
-
- -
-

down

- public function down(String selector, Boolean returnDom) -
- Selects a single *direct* child based on the passed CSS selector (the selector should not contain an id) -
- Parameters: -
  • selector : String
    The CSS selector
  • returnDom : Boolean
    true to return the DOM node instead of Ext.Element
- Returns: -
    -
  • Element
    The element
  • -
-
-
-
This method is defined by Element.
-
- -
-

enableDisplayMode

- public function enableDisplayMode([String display]) -
- Convenience method for setVisibilityMode(Element.DISPLAY) -
- Parameters: -
  • display : String
    (optional) What to set display to when visible
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

endMeasure

- public function endMeasure() -
- Restores displays to before beginMeasure was called -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

findParent

- public function findParent(String ss, [Number/String/HTMLElement/Element maxDepth], [Boolean returnEl]) -
- Looks at this node and then at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:first-child) -
- Parameters: -
  • ss : String
    The simple selector to test
  • maxDepth : Number/String/HTMLElement/Element
    (optional) The max depth to search as a number or element (defaults to 10 || document.body)
  • returnEl : Boolean
    (optional) True to return a Ext.Element object instead of DOM node
- Returns: -
    -
  • HTMLElement
  • -
-
-
-
This method is defined by Element.
-
- -
-

findParentNode

- public function findParentNode(String ss, [Number/String/HTMLElement/Element maxDepth], [Boolean returnEl]) -
- Looks at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:first-child) -
- Parameters: -
  • ss : String
    The simple selector to test
  • maxDepth : Number/String/HTMLElement/Element
    (optional) The max depth to search as a number or element (defaults to 10 || document.body)
  • returnEl : Boolean
    (optional) True to return a Ext.Element object instead of DOM node
- Returns: -
    -
  • HTMLElement
  • -
-
-
-
This method is defined by Element.
-
- -
-

fitToParent

- public function fitToParent([Boolean monitorResize], [String/HTMLElment/Element targetParent]) -
- Sizes this element to its parent element's dimensions performing -neccessary box adjustments. -
- Parameters: -
  • monitorResize : Boolean
    (optional) If true maintains the fit when the browser window is resized.
  • targetParent : String/HTMLElment/Element
    (optional) The target parent, default to the parentNode.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

focus

- public function focus() -
- Tries to focus the element. Any exceptions are caught. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

getAlignToXY

- public function getAlignToXY(String/HTMLElement/Ext.Element element, String position, [Array offsets]) -
- Gets the x,y coordinates to align this element with another element. See alignTo for more info on the -supported position values. -
- Parameters: -
  • element : String/HTMLElement/Ext.Element
    The element to align to.
  • position : String
    The position to align to.
  • offsets : Array
    (optional) Offset the positioning by [x, y]
- Returns: -
    -
  • Array
    [x, y]
  • -
-
-
-
This method is defined by Element.
-
- -
-

getAnchorXY

- public function getAnchorXY([String anchor], [Object size], [Boolean local]) -
- Gets the x,y coordinates specified by the anchor position on the element. -
- Parameters: -
  • anchor : String
    (optional) The specified anchor position (defaults to "c"). See alignTo for details on supported anchor positions.
  • size : Object
    (optional) An object containing the size to use for calculating anchor position {width: (target width), height: (target height)} (defaults to the element's current size)
  • local : Boolean
    (optional) True to get the local (element top/left-relative) anchor position instead of page coordinates
- Returns: -
    -
  • Array
    [x, y] An array containing the element's x and y coordinates
  • -
-
-
-
This method is defined by Element.
-
- -
-

getBorderWidth

- public function getBorderWidth(String side) -
- Gets the width of the border(s) for the specified side(s) -
- Parameters: -
  • side : String
    Can be t, l, r, b or any combination of those to add multiple values. For example, passing lr would get the border (l)eft width + the border (r)ight width.
- Returns: -
    -
  • Number
    The width of the sides passed added together
  • -
-
-
-
This method is defined by Element.
-
- -
-

getBottom

- public function getBottom(Boolean local) -
- Gets the bottom Y coordinate of the element (element Y position + element height) -
- Parameters: -
  • local : Boolean
    True to get the local css position instead of page coordinate
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getBox

- public function getBox([Boolean contentBox], [Boolean local]) -
- Return a box {x, y, width, height} that can be used to set another elements -size/location to match this element. -
- Parameters: -
  • contentBox : Boolean
    (optional) If true a box for the content of the element is returned.
  • local : Boolean
    (optional) If true the element's left and top are returned instead of page x/y.
- Returns: -
    -
  • Object
  • -
-
-
-
This method is defined by Element.
-
- -
-

getCenterXY

- public function getCenterXY() -
- Calculates the x, y to center this element on the screen -
- Parameters: -
  • None.
- Returns: -
    -
  • Array
    The x, y values [x, y]
  • -
-
-
-
This method is defined by Element.
-
- -
-

getColor

- public function getColor(String attr, String defaultValue, [String prefix]) -
- Return the CSS color for the specified CSS attribute. rgb, 3 digit (like #fff) and valid values -are convert to standard 6 digit hex color. -
- Parameters: -
  • attr : String
    The css attribute
  • defaultValue : String
    The default value to use when a valid color isn't found
  • prefix : String
    (optional) defaults to #. Use an empty string when working with YUI color anims.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

getComputedHeight

- public function getComputedHeight() -
- Returns either the offsetHeight or the height of this element based on CSS height adjusted by padding or borders -when needed to simulate offsetHeight when offsets aren't available. This may not work on display:none elements -if a height has not been set using CSS. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getComputedWidth

- public function getComputedWidth() -
- Returns either the offsetWidth or the width of this element based on CSS width adjusted by padding or borders -when needed to simulate offsetWidth when offsets aren't available. This may not work on display:none elements -if a width has not been set using CSS. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getFrameWidth

- public function getFrameWidth(String sides) -
- Returns the sum width of the padding and borders for the passed "sides". See getBorderWidth() - for more information about the sides. -
- Parameters: -
  • sides : String
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getHeight

- public function getHeight([Boolean contentHeight]) -
- Returns the offset height of the element -
- Parameters: -
  • contentHeight : Boolean
    (optional) true to get the height minus borders and padding
- Returns: -
    -
  • Number
    The element's height
  • -
-
-
-
This method is defined by Element.
-
- -
-

getLeft

- public function getLeft(Boolean local) -
- Gets the left X coordinate -
- Parameters: -
  • local : Boolean
    True to get the local css position instead of page coordinate
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getMargins

- public function getMargins([String sides]) -
- Returns an object with properties top, left, right and bottom representing the margins of this element unless sides is passed, -then it returns the calculated width of the sides (see getPadding) -
- Parameters: -
  • sides : String
    (optional) Any combination of l, r, t, b to get the sum of those sides
- Returns: -
    -
  • Object/Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getNextSibling

- public function getNextSibling() -
- Gets the next sibling, skipping text nodes -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    The next sibling or null
  • -
-
-
-
This method is defined by Element.
-
- -
-

getPadding

- public function getPadding(String side) -
- Gets the width of the padding(s) for the specified side(s) -
- Parameters: -
  • side : String
    Can be t, l, r, b or any combination of those to add multiple values. For example, passing lr would get the padding (l)eft + the padding (r)ight.
- Returns: -
    -
  • Number
    The padding of the sides passed added together
  • -
-
-
-
This method is defined by Element.
-
- -
-

getPositioning

- public function getPositioning() -
- Gets an object with all CSS positioning properties. Useful along with setPostioning to get -snapshot before performing an update and then restoring the element. -
- Parameters: -
  • None.
- Returns: -
    -
  • Object
  • -
-
-
-
This method is defined by Element.
-
- -
-

getPrevSibling

- public function getPrevSibling() -
- Gets the previous sibling, skipping text nodes -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    The previous sibling or null
  • -
-
-
-
This method is defined by Element.
-
- -
-

getRegion

- public function getRegion() -
- Returns the region of the given element. -The element must be part of the DOM tree to have a region (display:none or elements not appended return false). -
- Parameters: -
  • None.
- Returns: -
    -
  • Region
    A Ext.lib.Region containing "top, left, bottom, right" member data.
  • -
-
-
-
This method is defined by Element.
-
- -
-

getRight

- public function getRight(Boolean local) -
- Gets the right X coordinate of the element (element X position + element width) -
- Parameters: -
  • local : Boolean
    True to get the local css position instead of page coordinate
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getSize

- public function getSize([Boolean contentSize]) -
- Returns the size of the element -
- Parameters: -
  • contentSize : Boolean
    (optional) true to get the width/size minus borders and padding
- Returns: -
    -
  • Object
    An object containing the element's size {width: (element width), height: (element height)}
  • -
-
-
-
This method is defined by Element.
-
- -
-

getStyle

- public function getStyle(String property) -
- Normalizes currentStyle and computedStyle. This is not YUI getStyle, it is an optimised version. -
- Parameters: -
  • property : String
    The style property whose value is returned.
- Returns: -
    -
  • String
    The current value of the style property for this element.
  • -
-
-
-
This method is defined by Element.
-
- -
-

getStyles

- public function getStyles(String style1, String style2, String etc) -
- Get an object with properties matching the styles requested. -e.g. el.getStyles('color', 'font-size', 'width') might return -{'color': '#FFFFFF', 'font-size': '13px', 'width': '100px'}. -
- Parameters: -
  • style1 : String
  • style2 : String
  • etc : String
- Returns: -
    -
  • Object
  • -
-
-
-
This method is defined by Element.
-
- -
-

getTop

- public function getTop(Boolean local) -
- Gets the top Y coordinate -
- Parameters: -
  • local : Boolean
    True to get the local css position instead of page coordinate
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getUpdateManager

- public function getUpdateManager() -
- Gets this elements UpdateManager -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.UpdateManager
    The UpdateManager
  • -
-
-
-
This method is defined by Element.
-
- -
-

getValue

- public function getValue(Boolean asNumber) -
- Returns the value of the "value" attribute -
- Parameters: -
  • asNumber : Boolean
    true to parse the value as a number
- Returns: -
    -
  • String/Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getWidth

- public function getWidth([Boolean contentWidth]) -
- Returns the offset width of the element -
- Parameters: -
  • contentWidth : Boolean
    (optional) true to get the width minus borders and padding
- Returns: -
    -
  • Number
    The element's width
  • -
-
-
-
This method is defined by Element.
-
- -
-

getX

- public function getX() -
- Gets the current X position of the element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
    The X position of the element
  • -
-
-
-
This method is defined by Element.
-
- -
-

getXY

- public function getXY() -
- Gets the current position of the element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • None.
- Returns: -
    -
  • Array
    The XY position of the element
  • -
-
-
-
This method is defined by Element.
-
- -
-

getY

- public function getY() -
- Gets the current Y position of the element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
    The Y position of the element
  • -
-
-
-
This method is defined by Element.
-
- -
-

hasClass

- public function hasClass(String className) -
- Checks if a CSS class is in use by the element. -
- Parameters: -
  • className : String
    The CSS class to check
- Returns: -
    -
  • Boolean
    true or false
  • -
-
-
-
This method is defined by Element.
-
- -
-

hide

- public function hide([Boolean/Object animate]) -
- Hide this element - Uses display mode to determine whether to use "display" or "visibility". See setVisible. -
- Parameters: -
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

initDD

- public function initDD(String group, Object config, Object overrides) -
- Initializes a Ext.dd.DD object for this element. -
- Parameters: -
  • group : String
    The group the DD object is member of
  • config : Object
    The DD config object
  • overrides : Object
    An object containing methods to override/implement on the DD object
- Returns: -
    -
  • Ext.dd.DD
    The DD object
  • -
-
-
-
This method is defined by Element.
-
- -
-

initDDProxy

- public function initDDProxy(String group, Object config, Object overrides) -
- Initializes a Ext.dd.DDProxy object for this element. -
- Parameters: -
  • group : String
    The group the DDProxy object is member of
  • config : Object
    The DDProxy config object
  • overrides : Object
    An object containing methods to override/implement on the DDProxy object
- Returns: -
    -
  • Ext.dd.DDProxy
    The DDProxy object
  • -
-
-
-
This method is defined by Element.
-
- -
-

initDDTarget

- public function initDDTarget(String group, Object config, Object overrides) -
- Initializes a Ext.dd.DDTarget object for this element. -
- Parameters: -
  • group : String
    The group the DDTarget object is member of
  • config : Object
    The DDTarget config object
  • overrides : Object
    An object containing methods to override/implement on the DDTarget object
- Returns: -
    -
  • Ext.dd.DDTarget
    The DDTarget object
  • -
-
-
-
This method is defined by Element.
-
- -
-

insertAfter

- public function insertAfter(String/HTMLElement/Element el) -
- Inserts this element after the passed element in the DOM -
- Parameters: -
  • el : String/HTMLElement/Element
    The element to insert after
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

insertBefore

- public function insertBefore(String/HTMLElement/Element el) -
- Inserts this element before the passed element in the DOM -
- Parameters: -
  • el : String/HTMLElement/Element
    The element to insert before
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

insertFirst

- public function insertFirst(String/HTMLElement/Element/Object el) -
- Inserts (or creates) an element (or DomHelper config) as the first child of the this element -
- Parameters: -
  • el : String/HTMLElement/Element/Object
    The id or element to insert or a DomHelper config to create and insert
- Returns: -
    -
  • Ext.Element
    The new child
  • -
-
-
-
This method is defined by Element.
-
- -
-

insertHtml

- public function insertHtml(String where, String html) -
- Inserts an html fragment into this element -
- Parameters: -
  • where : String
    Where to insert the html in relation to the this element - beforeBegin, afterBegin, beforeEnd, afterEnd.
  • html : String
    The HTML fragment
- Returns: -
    -
  • HTMLElement
    The inserted node (or nearest related if more than 1 inserted)
  • -
-
-
-
This method is defined by Element.
-
- -
-

insertSibling

- public function insertSibling(String/HTMLElement/Element/Object el, [String where], [Boolean returnDom]) -
- Inserts (or creates) the passed element (or DomHelper config) as a sibling of this element -
- Parameters: -
  • el : String/HTMLElement/Element/Object
    The id or element to insert or a DomHelper config to create and insert
  • where : String
    (optional) 'before' or 'after' defaults to before
  • returnDom : Boolean
    (optional) True to return the raw DOM element instead of Ext.Element
- Returns: -
    -
  • Ext.Element
    the inserted Element
  • -
-
-
-
This method is defined by Element.
-
- -
-

is

- public function is(String ss) -
- Returns true if this element matches the passed simple selector (e.g. div.some-class or span:first-child) -
- Parameters: -
  • ss : String
    The simple selector to test
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Element.
-
- -
-

isBorderBox

- public function isBorderBox() -
- Tests various css rules/browsers to determine if this element uses a border box -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Element.
-
- -
-

isDisplayed

- public function isDisplayed() -
- Returns true if display is not "none" -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Element.
-
- -
-

isMasked

- public function isMasked() -
- Returns true if this element is masked -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Element.
-
- -
-

isScrollable

- public function isScrollable() -
- Returns true if this element is scrollable. -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Element.
-
- -
-

isVisible

- public function isVisible(Boolean deep) -
- Checks whether the element is currently visible using both visibility and display properties. -
- Parameters: -
  • deep : Boolean
    True to walk the dom and see if parent elements are hidden.
- Returns: -
    -
  • Boolean
    true if the element is currently visible
  • -
-
-
-
This method is defined by Element.
-
- -
-

load

- public function load(String/Function url, [String/Object params], [Function callback], [Boolean discardUrl]) -
- Direct access to the UpdateManager update() method (takes the same parameters). -
- Parameters: -
  • url : String/Function
    The url for this request or a function to call to get the url
  • params : String/Object
    (optional) The parameters to pass as either a url encoded string "param1=1&param2=2" or an object {param1: 1, param2: 2}
  • callback : Function
    (optional) Callback when transaction is complete - called with signature (oElement, bSuccess)
  • discardUrl : Boolean
    (optional) By default when you execute an update the defaultUrl is changed to the last used url. If true, it will not store the url.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

mask

- public function mask([String msg], [String msgCls]) -
- Puts a mask over this element to disable user interaction. Requires core.css. -This method can only be applied to elements which accept child nodes. -
- Parameters: -
  • msg : String
    (optional) A message to display in the mask
  • msgCls : String
    (optional) A css class to apply to the msg element
- Returns: -
    -
  • Element
    The message element
  • -
-
-
-
This method is defined by Element.
-
- -
-

move

- public function move(String direction, Number distance, [Boolean/Object animate]) -
- Move this element relative to its current position. -
- Parameters: -
  • direction : String
    Possible values are: "l","left" - "r","right" - "t","top","up" - "b","bottom","down".
  • distance : Number
    How far to move the element in pixels
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

moveTo

- public function moveTo(Number x, Number y, [Boolean/Object animate]) -
- Set the position of the element in page coordinates, regardless of how the element is positioned. -The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • x : Number
    X value for new position (coordinates are page-based)
  • y : Number
    Y value for new position (coordinates are page-based)
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

position

- public function position([String pos], [Number zIndex], [Number x], [Number y]) -
- Initializes positioning on this element. If a desired position is not passed, it will make the -the element positioned relative IF it is not already positioned. -
- Parameters: -
  • pos : String
    (optional) Positioning to use "relative", "absolute" or "fixed"
  • zIndex : Number
    (optional) The zIndex to apply
  • x : Number
    (optional) Set the page X position
  • y : Number
    (optional) Set the page Y position
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

query

- public function query(String selector) -
- Selects child nodes based on the passed CSS selector (the selector should not contain an id) -
- Parameters: -
  • selector : String
    The CSS selector
- Returns: -
    -
  • Array
    An array of the matched nodes
  • -
-
-
-
This method is defined by Element.
-
- -
-

radioClass

- public function radioClass(String className) -
- Adds the passed className to this element and removes the class from all siblings -
- Parameters: -
  • className : String
    The className to add
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

remove

- public function remove() -
- Removes this element from the DOM and deletes it from the cache -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

removeAllListeners

- public function removeAllListeners() -
- Removes all previous added listeners from this element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

removeClass

- public function removeClass(String/Array className) -
- Removes a CSS class from the element. -
- Parameters: -
  • className : String/Array
    The CSS class to remove or an array of classes
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

removeListener

- public function removeListener(String eventName, Function fn) -
- Removes an event handler from this element -
- Parameters: -
  • eventName : String
    the type of event to remove
  • fn : Function
    the method the event invokes
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

repaint

- public function repaint() -
- Forces the browser to repaint this element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

replace

- public function replace(String/HTMLElement/Element el) -
- Replaces the passed element with this element -
- Parameters: -
  • el : String/HTMLElement/Element
    The element to replace
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

replaceClass

- public function replaceClass(String oldClassName, String newClassName) -
- Replaces a CSS class on the element with another. -
- Parameters: -
  • oldClassName : String
    The CSS class to replace
  • newClassName : String
    The replacement CSS class
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

scroll

- public function scroll(String direction, Number distance, [Boolean/Object animate]) -
- Scrolls this element the specified direction. Does bounds checking to make sure the scroll is -within this elements scrollable range. -
- Parameters: -
  • direction : String
    Possible values are: "l","left" - "r","right" - "t","top","up" - "b","bottom","down".
  • distance : Number
    How far to scroll the element in pixels
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Boolean
    Returns true if a scroll was triggered or false if the element was scrolled as far as it could go.
  • -
-
-
-
This method is defined by Element.
-
- -
-

scrollIntoView

- public function scrollIntoView([String/HTMLElement/Element container], [Boolean hscroll]) -
- Scrolls this element into view within the passed container. -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The container element to scroll (defaults to document.body)
  • hscroll : Boolean
    (optional) false to disable horizontal scroll
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

scrollTo

- public function scrollTo(String side, Number value, [Boolean/Object animate]) -
- Scrolls this element the specified scroll point. It does NOT do bounds checking so if you scroll to a weird value it will try to do it. For auto bounds checking, use scroll(). -
- Parameters: -
  • side : String
    Either "left" for scrollLeft values or "top" for scrollTop values.
  • value : Number
    The new scroll value
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

select

- public function select(String selector, Boolean unique) -
- Creates a CompositeElement for child nodes based on the passed CSS selector (the selector should not contain an id) -
- Parameters: -
  • selector : String
    The CSS selector
  • unique : Boolean
    true to create a unique Ext.Element for each child (defaults to a shared flyweight object)
- Returns: -
    -
  • CompositeElement/CompositeElementLite
    The composite element
  • -
-
-
-
This method is defined by Element.
-
- -
-

set

- public function set(Object o, [Boolean useSet]) -
- Sets the passed attributes as attributes of this element (a style attribute can be a string, object or function) -
- Parameters: -
  • o : Object
    The object with the attributes
  • useSet : Boolean
    (optional) false to override the default setAttribute to use expandos.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setBottom

- public function setBottom(String bottom) -
- Set the element's css bottom style -
- Parameters: -
  • bottom : String
    The bottom CSS property value
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setBounds

- public function setBounds(Number x, Number y, Number width, Number height, [Boolean/Object animate]) -
- Sets the element's position and size in one shot. If animation is true then width, height, x and y will be animated concurrently. -
- Parameters: -
  • x : Number
    X value for new position (coordinates are page-based)
  • y : Number
    Y value for new position (coordinates are page-based)
  • width : Number
    The new width
  • height : Number
    The new height
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setBox

- public function setBox(Object box, [Boolean adjust], [Boolean/Object animate]) -
- Sets the element's box. Use getBox() on another element to get a box obj. If animate is true then width, height, x and y will be animated concurrently. -
- Parameters: -
  • box : Object
    The box to fill {x, y, width, height}
  • adjust : Boolean
    (optional) Whether to adjust for box-model issues automatically
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setDisplayed

- public function setDisplayed(Boolean value) -
- Sets the css display. Uses originalDisplay if value is a boolean true. -
- Parameters: -
  • value : Boolean
    Boolean to display the element using its default display or a string to set the display directly
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setHeight

- public function setHeight(Number height, [Boolean/Object animate]) -
- Set the height of the element -
- Parameters: -
  • height : Number
    The new height
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setLeft

- public function setLeft(String left) -
- Set the element's left position directly using CSS style (instead of setX()) -
- Parameters: -
  • left : String
    The left CSS property value
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setLeftTop

- public function setLeftTop() -
- Quick set left and top adding default units -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setLocation

- public function setLocation(Number x, Number y, [Boolean/Object animate]) -
- Set the position of the element in page coordinates, regardless of how the element is positioned. -The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • x : Number
    X value for new position (coordinates are page-based)
  • y : Number
    Y value for new position (coordinates are page-based)
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setOpacity

- public function setOpacity(Float opacity, [Boolean/Object animate]) -
- Set the opacity of the element -
- Parameters: -
  • opacity : Float
    The new opacity. 0 = transparent, .5 = 50% visibile, 1 = fully visible, etc
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setPositioning

- public function setPositioning(Object posCfg) -
- Set positioning with an object returned by getPositioning(). -
- Parameters: -
  • posCfg : Object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setRegion

- public function setRegion(Ext.lib.Region region, [Boolean/Object animate]) -
- Sets the element's position and size the the specified region. If animation is true then width, height, x and y will be animated concurrently. -
- Parameters: -
  • region : Ext.lib.Region
    The region to fill
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setRight

- public function setRight(String right) -
- Set the element's css right style -
- Parameters: -
  • right : String
    The right CSS property value
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setSize

- public function setSize(Number width, Number height, [Boolean/Object animate]) -
- Set the size of the element. If animation is true, both width an height will be animated concurrently. -
- Parameters: -
  • width : Number
    The new width
  • height : Number
    The new height
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setStyle

- public function setStyle(String/Object property, [String val]) -
- Wrapper for setting style properties, also takes single object parameter of multiple styles -
- Parameters: -
  • property : String/Object
    The style property to be set or an object of multiple styles.
  • val : String
    (optional) The value to apply to the given property or null if an object was passed.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setTop

- public function setTop(String top) -
- Set the element's top position directly using CSS style (instead of setY()) -
- Parameters: -
  • top : String
    The top CSS property value
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setVisibilityMode

- public function setVisibilityMode(visMode Element.VISIBILITY) -
- Sets the elements visibility mode. When setVisible() is called it -will use this to determine whether to set the visibility or the display property. -
- Parameters: -
  • Element.VISIBILITY : visMode
    or Element.DISPLAY
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setVisible

- public function setVisible(Boolean visible, [Boolean/Object animate]) -
- Sets the visibility of the element (see details). If the visibilityMode is set to Element.DISPLAY, it will use -the display property to hide the element, otherwise it uses visibility. The default is to hide and show using the visibility property. -
- Parameters: -
  • visible : Boolean
    Whether the element is visible
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setWidth

- public function setWidth(Number width, [Boolean/Object animate]) -
- Set the width of the element -
- Parameters: -
  • width : Number
    The new width
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setX

- public function setX(Number The, [Boolean/Object animate]) -
- Sets the X position of the element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • The : Number
    X position of the element
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setXY

- public function setXY(Array pos, [Boolean/Object animate]) -
- Set the position of the element in page coordinates, regardless of how the element is positioned. -The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • pos : Array
    Contains X & Y [x, y] values for new position (coordinates are page-based)
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setY

- public function setY(Number The, [Boolean/Object animate]) -
- Sets the Y position of the element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • The : Number
    Y position of the element
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

show

- public function show([Boolean/Object animate]) -
- Show this element - Uses display mode to determine whether to use "display" or "visibility". See setVisible. -
- Parameters: -
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

swallowEvent

- public function swallowEvent(String eventName, [Boolean preventDefault]) -
- Stops the specified event from bubbling and optionally prevents the default action -
- Parameters: -
  • eventName : String
  • preventDefault : Boolean
    (optional) true to prevent the default action too
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

toggle

- public function toggle([Boolean/Object animate]) -
- Toggles the elements visibility or display, depending on visibility mode. -
- Parameters: -
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

toggleClass

- public function toggleClass(String className) -
- Toggles (adds or removes) the passed class. -
- Parameters: -
  • className : String
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

translatePoints

- public function translatePoints(Number/Array x, Number y, Object An) -
- Translates the passed page coordinates into left/top css values for this element -
- Parameters: -
  • x : Number/Array
    The page x or an array containing [x, y]
  • y : Number
    The page y
  • An : Object
    object with left and top properties. e.g. {left: (value), top: (value)}
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

unclip

- public function unclip() -
- Return clipping (overflow) to original clipping before clip() was called -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

unmask

- public function unmask() -
- Removes a previously applied mask. If removeEl is true the mask overlay is destroyed, otherwise -it is cached for reuse. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

unselectable

- public function unselectable() -
- Disables text selection for this element (normalized across browsers) -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

up

- public function up(String ss, [Number/String/HTMLElement/Element maxDepth]) -
- Walks up the dom looking for a parent node that matches the passed simple selector (e.g. div.some-class or span:first-child). -This is a shortcut for findParentNode() that always returns an Ext.Element. -
- Parameters: -
  • ss : String
    The simple selector to test
  • maxDepth : Number/String/HTMLElement/Element
    (optional) The max depth to search as a number or element (defaults to 10 || document.body)
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by Element.
-
- -
-

update

- public function update(String html, [Boolean loadScripts], Function callback) -
- Update the innerHTML of this element, optionally searching for and processing scripts -
- Parameters: -
  • html : String
    The new HTML
  • loadScripts : Boolean
    (optional) true to look for and process scripts
  • callback : Function
    For async script loading you can be noticed when the update completes
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

wrap

- public function wrap([Object config], [Boolean returnDom]) -
- Creates and wraps this element with another element -
- Parameters: -
  • config : Object
    (optional) DomHelper element config object for the wrapper element or null for an empty div
  • returnDom : Boolean
    (optional) True to return the raw DOM element instead of Ext.Element
- Returns: -
    -
  • /HTMLElementElement
    The newly created wrapper element
  • -
-
-
-
This method is defined by Element.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.EventManager.html b/www/extras/extjs/docs/output/Ext.EventManager.html deleted file mode 100644 index 8dbe1420e..000000000 --- a/www/extras/extjs/docs/output/Ext.EventManager.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - Ext.EventManager - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.EventManager

- - - - - -
Package:Ext
Class:EventManager
Extends:Object
Defined In:EventManager.js
-
- Registers event handlers that want to receive a normalized EventObject instead of the standard browser event and provides -several useful events directly. -See Ext.EventObject for more details on normalized event objects.

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 ieDeferSrc : ObjectEventManager
Url used for onDocumentReady with using SSL (defaults to Ext.SSL_SECURE_URL)
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 addListener(String/HTMLElement element, String eventName, Function fn, Object options) : voidEventManager
Appends an event handler
 onDocumentReady(Function fn, Object scope, boolean options) : voidEventManager
Fires when the document is ready (before onload and before images are loaded). Can be -accessed shorthanded Ext.onRea...
 onTextResize(Function fn, Object scope, boolean options) : voidEventManager
Fires when the user changes the active text size. Handler gets called with 2 params, the old size and the new size.
 onWindowResize(Function fn, Object scope, boolean options) : voidEventManager
Fires when the window is resized and provides resize event buffering (50 milliseconds), passes new viewport width and...
 removeListener(String/HTMLElement element, String eventName, Function fn) : BooleanEventManager
Removes an event handler
 removeResizeListener(Function fn, Object scope) : voidEventManager
Removes the passed window resize listener.
 wrap(Function fn, Object scope, boolean override) : FunctionEventManager
Deprecated. This is no longer needed and is deprecated. Places a simple wrapper around an event handler to override t...
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

ieDeferSrc

- public Object ieDeferSrc -
- Url used for onDocumentReady with using SSL (defaults to Ext.SSL_SECURE_URL)
-
This property is defined by EventManager.
-
-
- - -

Method Details

-
- -
-

addListener

- public function addListener(String/HTMLElement element, String eventName, Function fn, Object options) -
- Appends an event handler -
- Parameters: -
  • element : String/HTMLElement
    The html element or id to assign the event to
  • eventName : String
    The type of event to append
  • fn : Function
    The method the event invokes
  • options : Object
    An object with standard EventManager options
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by EventManager.
-
- -
-

onDocumentReady

- public function onDocumentReady(Function fn, Object scope, boolean options) -
- Fires when the document is ready (before onload and before images are loaded). Can be -accessed shorthanded Ext.onReady(). -
- Parameters: -
  • fn : Function
    The method the event invokes
  • scope : Object
    An object that becomes the scope of the handler
  • options : boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by EventManager.
-
- -
-

onTextResize

- public function onTextResize(Function fn, Object scope, boolean options) -
- Fires when the user changes the active text size. Handler gets called with 2 params, the old size and the new size. -
- Parameters: -
  • fn : Function
    The method the event invokes
  • scope : Object
    An object that becomes the scope of the handler
  • options : boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by EventManager.
-
- -
-

onWindowResize

- public function onWindowResize(Function fn, Object scope, boolean options) -
- Fires when the window is resized and provides resize event buffering (50 milliseconds), passes new viewport width and height to handlers. -
- Parameters: -
  • fn : Function
    The method the event invokes
  • scope : Object
    An object that becomes the scope of the handler
  • options : boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by EventManager.
-
- -
-

removeListener

- public function removeListener(String/HTMLElement element, String eventName, Function fn) -
- Removes an event handler -
- Parameters: -
  • element : String/HTMLElement
    The id or html element to remove the event from
  • eventName : String
    The type of event
  • fn : Function
- Returns: -
    -
  • Boolean
    True if a listener was actually removed
  • -
-
-
-
This method is defined by EventManager.
-
- -
-

removeResizeListener

- public function removeResizeListener(Function fn, Object scope) -
- Removes the passed window resize listener. -
- Parameters: -
  • fn : Function
    The method the event invokes
  • scope : Object
    The scope of handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by EventManager.
-
- -
-

wrap

- public function wrap(Function fn, Object scope, boolean override) -
- Deprecated. This is no longer needed and is deprecated. Places a simple wrapper around an event handler to override the browser event -object with a Ext.EventObject -
- Parameters: -
  • fn : Function
    The method the event invokes
  • scope : Object
    An object that becomes the scope of the handler
  • override : boolean
    If true, the obj passed in becomes the execution scope of the listener
- Returns: -
    -
  • Function
    The wrapped function
  • -
-
-
-
This method is defined by EventManager.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.EventObject.html b/www/extras/extjs/docs/output/Ext.EventObject.html deleted file mode 100644 index cd8f18b28..000000000 --- a/www/extras/extjs/docs/output/Ext.EventObject.html +++ /dev/null @@ -1,793 +0,0 @@ - - - - Ext.EventObject - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.EventObject

- - - - - -
Package:Ext
Class:EventObject
Extends:Object
Defined In:EventManager.js
-
- EventObject exposes the Yahoo! UI Event functionality directly on the object -passed to your event handler. It exists mostly for convenience. It also fixes the annoying null checks automatically to cleanup your code -Example: -
function handleClick(e){ // e is not a standard event object, it is a Ext.EventObject
-    e.preventDefault();
-    var target = e.getTarget();
-    ...
- }
- var myDiv = Ext.get("myDiv");
- myDiv.on("click", handleClick);
- //or
- Ext.EventManager.on("myDiv", 'click', handleClick);
- Ext.EventManager.addListener("myDiv", 'click', handleClick);


This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 BACKSPACE : NumberEventObject
Key constant
 CONTROL : NumberEventObject
Key constant
 DELETE : NumberEventObject
Key constant
 DOWN : NumberEventObject
Key constant
 END : NumberEventObject
Key constant
 ENTER : NumberEventObject
Key constant
 ESC : NumberEventObject
Key constant
 F5 : NumberEventObject
Key constant
 HOME : NumberEventObject
Key constant
 LEFT : NumberEventObject
Key constant
 PAGEDOWN : NumberEventObject
Key constant
 PAGEUP : NumberEventObject
Key constant
 RETURN : NumberEventObject
Key constant
 RIGHT : NumberEventObject
Key constant
 SHIFT : NumberEventObject
Key constant
 SPACE : NumberEventObject
Key constant
 TAB : NumberEventObject
Key constant
 UP : NumberEventObject
Key constant
 altKey : ObjectEventObject
True if the alt key was down during the event
 browserEvent : ObjectEventObject
The normal browser event
 button : ObjectEventObject
The button pressed in a mouse event
 ctrlKey : ObjectEventObject
True if the control key was down during the event
 shiftKey : ObjectEventObject
True if the shift key was down during the event
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 getCharCode() : NumberEventObject
Gets the key code for the event.
 getKey() : NumberEventObject
Returns a normalized keyCode for the event.
 getPageX() : NumberEventObject
Gets the x coordinate of the event.
 getPageY() : NumberEventObject
Gets the y coordinate of the event.
 getRelatedTarget() : HTMLElementEventObject
Gets the related target.
 getTarget([String selector], [Number/String/HTMLElement/Element maxDepth], [Boolean returnEl]) : HTMLelementEventObject
Gets the target for the event.
 getTime() : NumberEventObject
Gets the time of the event.
 getWheelDelta() : NumberEventObject
Normalizes mouse wheel delta across browsers
 getXY() : ArrayEventObject
Gets the page coordinates of the event.
 hasModifier() : BooleanEventObject
Returns true if the control, meta, shift or alt key was pressed during this event.
 preventDefault() : voidEventObject
Prevents the browsers default handling of the event.
 stopEvent() : voidEventObject
Stop the event (preventDefault and stopPropagation)
 stopPropagation() : voidEventObject
Cancels bubbling of the event.
 within(String/HTMLElement/Element el, [Boolean related]) : BooleanEventObject
Returns true if the target of this event equals el or is a child of el
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

BACKSPACE

- public Number BACKSPACE -
- Key constant
-
This property is defined by EventObject.
-
- -
-

CONTROL

- public Number CONTROL -
- Key constant
-
This property is defined by EventObject.
-
- -
-

DELETE

- public Number DELETE -
- Key constant
-
This property is defined by EventObject.
-
- -
-

DOWN

- public Number DOWN -
- Key constant
-
This property is defined by EventObject.
-
- -
-

END

- public Number END -
- Key constant
-
This property is defined by EventObject.
-
- -
-

ENTER

- public Number ENTER -
- Key constant
-
This property is defined by EventObject.
-
- -
-

ESC

- public Number ESC -
- Key constant
-
This property is defined by EventObject.
-
- -
-

F5

- public Number F5 -
- Key constant
-
This property is defined by EventObject.
-
- -
-

HOME

- public Number HOME -
- Key constant
-
This property is defined by EventObject.
-
- -
-

LEFT

- public Number LEFT -
- Key constant
-
This property is defined by EventObject.
-
- -
-

PAGEDOWN

- public Number PAGEDOWN -
- Key constant
-
This property is defined by EventObject.
-
- -
-

PAGEUP

- public Number PAGEUP -
- Key constant
-
This property is defined by EventObject.
-
- -
-

RETURN

- public Number RETURN -
- Key constant
-
This property is defined by EventObject.
-
- -
-

RIGHT

- public Number RIGHT -
- Key constant
-
This property is defined by EventObject.
-
- -
-

SHIFT

- public Number SHIFT -
- Key constant
-
This property is defined by EventObject.
-
- -
-

SPACE

- public Number SPACE -
- Key constant
-
This property is defined by EventObject.
-
- -
-

TAB

- public Number TAB -
- Key constant
-
This property is defined by EventObject.
-
- -
-

UP

- public Number UP -
- Key constant
-
This property is defined by EventObject.
-
- -
-

altKey

- public Object altKey -
- True if the alt key was down during the event
-
This property is defined by EventObject.
-
- -
-

browserEvent

- public Object browserEvent -
- The normal browser event
-
This property is defined by EventObject.
-
- -
-

button

- public Object button -
- The button pressed in a mouse event
-
This property is defined by EventObject.
-
- -
-

ctrlKey

- public Object ctrlKey -
- True if the control key was down during the event
-
This property is defined by EventObject.
-
- -
-

shiftKey

- public Object shiftKey -
- True if the shift key was down during the event
-
This property is defined by EventObject.
-
-
- - -

Method Details

-
- -
-

getCharCode

- public function getCharCode() -
- Gets the key code for the event. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by EventObject.
-
- -
-

getKey

- public function getKey() -
- Returns a normalized keyCode for the event. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
    The key code
  • -
-
-
-
This method is defined by EventObject.
-
- -
-

getPageX

- public function getPageX() -
- Gets the x coordinate of the event. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by EventObject.
-
- -
-

getPageY

- public function getPageY() -
- Gets the y coordinate of the event. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by EventObject.
-
- -
-

getRelatedTarget

- public function getRelatedTarget() -
- Gets the related target. -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
  • -
-
-
-
This method is defined by EventObject.
-
- -
-

getTarget

- public function getTarget([String selector], [Number/String/HTMLElement/Element maxDepth], [Boolean returnEl]) -
- Gets the target for the event. -
- Parameters: -
  • selector : String
    (optional) A simple selector to filter the target or look for an ancestor of the target
  • maxDepth : Number/String/HTMLElement/Element
    (optional) The max depth to search as a number or element (defaults to 10 || document.body)
  • returnEl : Boolean
    (optional) True to return a Ext.Element object instead of DOM node
- Returns: -
    -
  • HTMLelement
  • -
-
-
-
This method is defined by EventObject.
-
- -
-

getTime

- public function getTime() -
- Gets the time of the event. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by EventObject.
-
- -
-

getWheelDelta

- public function getWheelDelta() -
- Normalizes mouse wheel delta across browsers -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
    The delta
  • -
-
-
-
This method is defined by EventObject.
-
- -
-

getXY

- public function getXY() -
- Gets the page coordinates of the event. -
- Parameters: -
  • None.
- Returns: -
    -
  • Array
    The xy values like [x, y]
  • -
-
-
-
This method is defined by EventObject.
-
- -
-

hasModifier

- public function hasModifier() -
- Returns true if the control, meta, shift or alt key was pressed during this event. -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by EventObject.
-
- -
-

preventDefault

- public function preventDefault() -
- Prevents the browsers default handling of the event. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by EventObject.
-
- -
-

stopEvent

- public function stopEvent() -
- Stop the event (preventDefault and stopPropagation) -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by EventObject.
-
- -
-

stopPropagation

- public function stopPropagation() -
- Cancels bubbling of the event. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by EventObject.
-
- -
-

within

- public function within(String/HTMLElement/Element el, [Boolean related]) -
- Returns true if the target of this event equals el or is a child of el -
- Parameters: -
  • el : String/HTMLElement/Element
  • related : Boolean
    (optional) true to test if the related target is within el instead of the target
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by EventObject.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Fx.html b/www/extras/extjs/docs/output/Ext.Fx.html deleted file mode 100644 index ab88f744b..000000000 --- a/www/extras/extjs/docs/output/Ext.Fx.html +++ /dev/null @@ -1,907 +0,0 @@ - - - - Ext.Fx - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Fx

- - - - - -
Package:Ext
Class:Fx
Extends:Object
Defined In:Fx.js
-
-

A class to provide basic animation and visual effects support. Note: This class is automatically applied -to the Ext.Element interface when included, so all effects calls should be performed via Element. -Conversely, since the effects are not actually defined in Element, Ext.Fx must be included in order for the -Element effects to work.


-

It is important to note that although the Fx methods and many non-Fx Element methods support "method chaining" in that -they return the Element object itself as the method return value, it is not always possible to mix the two in a single -method chain. The Fx methods use an internal effects queue so that each effect can be properly timed and sequenced. -Non-Fx methods, on the other hand, have no such internal queueing and will always execute immediately. For this reason, -while it may be possible to mix certain Fx and non-Fx method calls in a single chain, it may not always provide the -expected results and should be done with care.


-

Motion effects support 8-way anchoring, meaning that you can choose one of 8 different anchor points on the Element -that will serve as either the start or end point of the animation. Following are all of the supported anchor positions:

-
-Value  Description
------  -----------------------------
-tl     The top left corner
-t      The center of the top edge
-tr     The top right corner
-l      The center of the left edge
-r      The center of the right edge
-bl     The bottom left corner
-b      The center of the bottom edge
-br     The bottom right corner
-
-Although some Fx methods accept specific custom config parameters, the ones shown in the Config Options section -below are common options that can be passed to any Fx method.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 fadeIn([Object options]) : ElementFx
Fade an element in (from transparent to opaque). The ending opacity can be specified -using the "endOpacity" config o...
 fadeOut([Object options]) : ElementFx
Fade an element out (from opaque to transparent). The ending opacity can be specified -using the "endOpacity" config ...
 frame([String color], [Number count], [Object options]) : ElementFx
Shows a ripple of exploding, attenuating borders to draw attention to an Element. -Usage: - -// default: a single light ...
 ghost([String anchor], [Object options]) : ElementFx
Slides the element while fading it out of view. An anchor point can be optionally passed to set the -ending point of...
 hasActiveFx() : BooleanFx
Returns true if the element has any effects actively running or queued, else returns false.
 hasFxBlock() : BooleanFx
Returns true if the element is currently blocking so that no other effect can be queued -until this effect is finished...
 highlight([String color], [Object options]) : ElementFx
Highlights the Element by setting a color (applies to the background-color by default, but can be -changed using the "...
 pause(Number seconds) : ElementFx
Creates a pause before any subsequent queued effects begin. If there are -no effects queued after the pause it will h...
 puff([Object options]) : ElementFx
Fades the element out while slowly expanding it in all directions. When the effect is completed, the -element will b...
 scale(Number width, Number height, [Object options]) : ElementFx
Animates the transition of an element's dimensions from a starting height/width -to an ending height/width. -Usage: - -//...
 sequenceFx() : ElementFx
Ensures that all effects queued after sequenceFx is called on the element are -run in sequence. This is the opposite ...
 shift(Object options) : ElementFx
Animates the transition of any combination of an element's dimensions, xy position and/or opacity. -Any of these prope...
 slideIn([String anchor], [Object options]) : ElementFx
Slides the element into view. An anchor point can be optionally passed to set the point of -origin for the slide effe...
 slideOut([String anchor], [Object options]) : ElementFx
Slides the element out of view. An anchor point can be optionally passed to set the end point -for the slide effect. ...
 stopFx() : ElementFx
Stops any running effects and clears the element's internal effects queue if it contains -any additional effects that ...
 switchOff([Object options]) : ElementFx
Blinks the element as if it was clicked and then collapses on its center (similar to switching off a television). -Whe...
 syncFx() : ElementFx
Ensures that all effects queued after syncFx is called on the element are -run concurrently. This is the opposite of ...
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 afterCls : StringFx
A css class to apply after the effect
 afterStyle : String/Object/FunctionFx
A style specification string eg "width:100px", or object in the form {width:"100px"}, or a function which returns suc...
 block : BooleanFx
Whether the effect should block other effects from queueing while it runs
 callback : FunctionFx
A function called when the effect is finished
 concurrent : BooleanFx
Whether to allow subsequently-queued effects to run at the same time as the current effect, or to ensure that they ru...
 duration : NumberFx
The length of time (in seconds) that the effect should last
 easing : StringFx
A valid Easing value for the effect
 remove : BooleanFx
Whether the Element should be removed from the DOM and destroyed after the effect finishes
 scope : ObjectFx
The scope of the effect function
 stopFx : BooleanFx
Whether subsequent effects should be stopped and removed after the current effect finishes
 useDisplay : BooleanFx
Whether to use the display style attribute instead of visibility when hiding Elements (only applies to effects that e...
- - -

Method Details

-
- -
-

fadeIn

- public function fadeIn([Object options]) -
- Fade an element in (from transparent to opaque). The ending opacity can be specified -using the "endOpacity" config option. -Usage: -

-// default: fade in from opactiy 0 to 100%
-el.fadeIn();
-
-// custom: fade in from opcaity 0 to 75% over 2 seconds
-el.fadeIn({ endOpacity: .75, duration: 2});
-
-// common config options shown with default values
-el.fadeIn({
- endOpacity: 1, //can be any value between 0 and 1 (e.g. .5)
- easing: 'easeOut',
- duration: .5
-}); -
-
- Parameters: -
  • options : Object
    (optional) Object literal with any of the Fx config options
- Returns: -
    -
  • Element
    The Element
  • -
-
-
-
This method is defined by Fx.
-
- -
-

fadeOut

- public function fadeOut([Object options]) -
- Fade an element out (from opaque to transparent). The ending opacity can be specified -using the "endOpacity" config option. -Usage: -

-// default: fade out from the element's current opacity to 0
-el.fadeOut();
-
-// custom: fade out from the element's current opacity to 25% over 2 seconds
-el.fadeOut({ endOpacity: .25, duration: 2});
-
-// common config options shown with default values
-el.fadeOut({
- endOpacity: 0, //can be any value between 0 and 1 (e.g. .5)
- easing: 'easeOut',
- duration: .5
- remove: false,
- useDisplay: false -}); -
-
- Parameters: -
  • options : Object
    (optional) Object literal with any of the Fx config options
- Returns: -
    -
  • Element
    The Element
  • -
-
-
-
This method is defined by Fx.
-
- -
-

frame

- public function frame([String color], [Number count], [Object options]) -
- Shows a ripple of exploding, attenuating borders to draw attention to an Element. -Usage: -

-// default: a single light blue ripple
-el.frame();
-
-// custom: 3 red ripples lasting 3 seconds total
-el.frame("ff0000", 3, { duration: 3 });
-
-// common config options shown with default values
-el.frame("C3DAF9", 1, {
- duration: 1 //duration of entire animation (not each individual ripple)
- // Note: Easing is not configurable and will be ignored if included -}); -
-
- Parameters: -
  • color : String
    (optional) The color of the border. Should be a 6 char hex color without the leading # (defaults to light blue: 'C3DAF9').
  • count : Number
    (optional) The number of ripples to display (defaults to 1)
  • options : Object
    (optional) Object literal with any of the Fx config options
- Returns: -
    -
  • Element
    The Element
  • -
-
-
-
This method is defined by Fx.
-
- -
-

ghost

- public function ghost([String anchor], [Object options]) -
- Slides the element while fading it out of view. An anchor point can be optionally passed to set the -ending point of the effect. -Usage: -

-// default: slide the element downward while fading out
-el.ghost();
-
-// custom: slide the element out to the right with a 2-second duration
-el.ghost('r', { duration: 2 });
-
-// common config options shown with default values
-el.ghost('b', {
- easing: 'easeOut',
- duration: .5
- remove: false,
- useDisplay: false -}); -
-
- Parameters: -
  • anchor : String
    (optional) One of the valid Fx anchor positions (defaults to bottom: 'b')
  • options : Object
    (optional) Object literal with any of the Fx config options
- Returns: -
    -
  • Element
    The Element
  • -
-
-
-
This method is defined by Fx.
-
- -
-

hasActiveFx

- public function hasActiveFx() -
- Returns true if the element has any effects actively running or queued, else returns false. -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
    True if element has active effects, else false
  • -
-
-
-
This method is defined by Fx.
-
- -
-

hasFxBlock

- public function hasFxBlock() -
- Returns true if the element is currently blocking so that no other effect can be queued -until this effect is finished, else returns false if blocking is not set. This is commonly -used to ensure that an effect initiated by a user action runs to completion prior to the -same effect being restarted (e.g., firing only one effect even if the user clicks several times). -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
    True if blocking, else false
  • -
-
-
-
This method is defined by Fx.
-
- -
-

highlight

- public function highlight([String color], [Object options]) -
- Highlights the Element by setting a color (applies to the background-color by default, but can be -changed using the "attr" config option) and then fading back to the original color. If no original -color is available, you should provide the "endColor" config option which will be cleared after the animation. -Usage: -

-// default: highlight background to yellow
-el.highlight();
-
-// custom: highlight foreground text to blue for 2 seconds
-el.highlight("0000ff", { attr: 'color', duration: 2 });
-
-// common config options shown with default values
-el.highlight("ffff9c", {
- attr: "background-color", //can be any valid css attribute that supports a color value
- endColor: (current color) or "ffffff",
- easing: 'easeIn',
- duration: 1
-}); -
-
- Parameters: -
  • color : String
    (optional) The highlight color. Should be a 6 char hex color without the leading # (defaults to yellow: 'ffff9c')
  • options : Object
    (optional) Object literal with any of the Fx config options
- Returns: -
    -
  • Element
    The Element
  • -
-
-
-
This method is defined by Fx.
-
- -
-

pause

- public function pause(Number seconds) -
- Creates a pause before any subsequent queued effects begin. If there are -no effects queued after the pause it will have no affect. -Usage: -

-el.pause(1);
-
-
- Parameters: -
  • seconds : Number
    The length of time to pause (in seconds)
- Returns: -
    -
  • Element
    The Element
  • -
-
-
-
This method is defined by Fx.
-
- -
-

puff

- public function puff([Object options]) -
- Fades the element out while slowly expanding it in all directions. When the effect is completed, the -element will be hidden (visibility = 'hidden') but block elements will still take up space in the document. -The element must be removed from the DOM using the 'remove' config option if desired. -Usage: -

-// default
-el.puff();
-
-// common config options shown with default values
-el.puff({
- easing: 'easeOut',
- duration: .5,
- remove: false,
- useDisplay: false -}); -
-
- Parameters: -
  • options : Object
    (optional) Object literal with any of the Fx config options
- Returns: -
    -
  • Element
    The Element
  • -
-
-
-
This method is defined by Fx.
-
- -
-

scale

- public function scale(Number width, Number height, [Object options]) -
- Animates the transition of an element's dimensions from a starting height/width -to an ending height/width. -Usage: -

-// change height and width to 100x100 pixels
-el.scale(100, 100);
-
-// common config options shown with default values.  The height and width will default to
-// the element's existing values if passed as null.
-el.scale(
-	[element's width],
- [element's height], {
- easing: 'easeOut',
- duration: .35
-}); -
-
- Parameters: -
  • width : Number
    The new width (pass null to keep the original width)
  • height : Number
    The new height (pass null to keep the original height)
  • options : Object
    (optional) Object literal with any of the Fx config options
- Returns: -
    -
  • Element
    The Element
  • -
-
-
-
This method is defined by Fx.
-
- -
-

sequenceFx

- public function sequenceFx() -
- Ensures that all effects queued after sequenceFx is called on the element are -run in sequence. This is the opposite of syncFx. -
- Parameters: -
  • None.
- Returns: -
    -
  • Element
    The Element
  • -
-
-
-
This method is defined by Fx.
-
- -
-

shift

- public function shift(Object options) -
- Animates the transition of any combination of an element's dimensions, xy position and/or opacity. -Any of these properties not specified in the config object will not be changed. This effect -requires that at least one new dimension, position or opacity setting must be passed in on -the config object in order for the function to have any affect. -Usage: -

-// slide the element horizontally to x position 200 while changing the height and opacity
-el.shift({ x: 200, height: 50, opacity: .8 });
-
-// common config options shown with default values.
-el.shift({
-	width: [element's width],
- height: [element's height],
- x: [element's x position],
- y: [element's y position],
- opacity: [element's opacity],
- easing: 'easeOut',
- duration: .35
-}); -
-
- Parameters: -
  • options : Object
    Object literal with any of the Fx config options
- Returns: -
    -
  • Element
    The Element
  • -
-
-
-
This method is defined by Fx.
-
- -
-

slideIn

- public function slideIn([String anchor], [Object options]) -
- Slides the element into view. An anchor point can be optionally passed to set the point of -origin for the slide effect. This function automatically handles wrapping the element with -a fixed-size container if needed. See the Fx class overview for valid anchor point options. -Usage: -

-// default: slide the element in from the top
-el.slideIn();
-
-// custom: slide the element in from the right with a 2-second duration
-el.slideIn('r', { duration: 2 });
-
-// common config options shown with default values
-el.slideIn('t', {
- easing: 'easeOut',
- duration: .5
-}); -
-
- Parameters: -
  • anchor : String
    (optional) One of the valid Fx anchor positions (defaults to top: 't')
  • options : Object
    (optional) Object literal with any of the Fx config options
- Returns: -
    -
  • Element
    The Element
  • -
-
-
-
This method is defined by Fx.
-
- -
-

slideOut

- public function slideOut([String anchor], [Object options]) -
- Slides the element out of view. An anchor point can be optionally passed to set the end point -for the slide effect. When the effect is completed, the element will be hidden (visibility = -'hidden') but block elements will still take up space in the document. The element must be removed -from the DOM using the 'remove' config option if desired. This function automatically handles -wrapping the element with a fixed-size container if needed. See the Fx class overview for valid anchor point options. -Usage: -

-// default: slide the element out to the top
-el.slideOut();
-
-// custom: slide the element out to the right with a 2-second duration
-el.slideOut('r', { duration: 2 });
-
-// common config options shown with default values
-el.slideOut('t', {
- easing: 'easeOut',
- duration: .5,
- remove: false,
- useDisplay: false -}); -
-
- Parameters: -
  • anchor : String
    (optional) One of the valid Fx anchor positions (defaults to top: 't')
  • options : Object
    (optional) Object literal with any of the Fx config options
- Returns: -
    -
  • Element
    The Element
  • -
-
-
-
This method is defined by Fx.
-
- -
-

stopFx

- public function stopFx() -
- Stops any running effects and clears the element's internal effects queue if it contains -any additional effects that haven't started yet. -
- Parameters: -
  • None.
- Returns: -
    -
  • Element
    The Element
  • -
-
-
-
This method is defined by Fx.
-
- -
-

switchOff

- public function switchOff([Object options]) -
- Blinks the element as if it was clicked and then collapses on its center (similar to switching off a television). -When the effect is completed, the element will be hidden (visibility = 'hidden') but block elements will still -take up space in the document. The element must be removed from the using the 'remove' config option if desired. -Usage: -

-// default
-el.switchOff();
-
-// all config options shown with default values
-el.switchOff({
- easing: 'easeIn',
- duration: .3,
- remove: false,
- useDisplay: false -}); -
-
- Parameters: -
  • options : Object
    (optional) Object literal with any of the Fx config options
- Returns: -
    -
  • Element
    The Element
  • -
-
-
-
This method is defined by Fx.
-
- -
-

syncFx

- public function syncFx() -
- Ensures that all effects queued after syncFx is called on the element are -run concurrently. This is the opposite of sequenceFx. -
- Parameters: -
  • None.
- Returns: -
    -
  • Element
    The Element
  • -
-
-
-
This method is defined by Fx.
-
-
- -

Config Details

-
- -
-

afterCls

- afterCls : String -
- A css class to apply after the effect
-
This config option is defined by Fx.
-
- -
-

afterStyle

- afterStyle : String/Object/Function -
- A style specification string eg "width:100px", or object in the form {width:"100px"}, or a function which returns such a specification that will be applied to the Element after the effect finishes
-
This config option is defined by Fx.
-
- -
-

block

- block : Boolean -
- Whether the effect should block other effects from queueing while it runs
-
This config option is defined by Fx.
-
- -
-

callback

- callback : Function -
- A function called when the effect is finished
-
This config option is defined by Fx.
-
- -
-

concurrent

- concurrent : Boolean -
- Whether to allow subsequently-queued effects to run at the same time as the current effect, or to ensure that they run in sequence
-
This config option is defined by Fx.
-
- -
-

duration

- duration : Number -
- The length of time (in seconds) that the effect should last
-
This config option is defined by Fx.
-
- -
-

easing

- easing : String -
- A valid Easing value for the effect
-
This config option is defined by Fx.
-
- -
-

remove

- remove : Boolean -
- Whether the Element should be removed from the DOM and destroyed after the effect finishes
-
This config option is defined by Fx.
-
- -
-

scope

- scope : Object -
- The scope of the effect function
-
This config option is defined by Fx.
-
- -
-

stopFx

- stopFx : Boolean -
- Whether subsequent effects should be stopped and removed after the current effect finishes
-
This config option is defined by Fx.
-
- -
-

useDisplay

- useDisplay : Boolean -
- Whether to use the display style attribute instead of visibility when hiding Elements (only applies to effects that end with the element being visually hidden, ignored otherwise)
-
This config option is defined by Fx.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.GridPanel.html b/www/extras/extjs/docs/output/Ext.GridPanel.html deleted file mode 100644 index deeffb2fc..000000000 --- a/www/extras/extjs/docs/output/Ext.GridPanel.html +++ /dev/null @@ -1,898 +0,0 @@ - - - - Ext.GridPanel - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.GridPanel

- - - - - -
Package:Ext
Class:GridPanel
Extends:ContentPanel
Defined In:ContentPanels.js
-
-
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 GridPanel(Ext.grid.Grid grid, String/Object config)GridPanel
Create a new GridPanel.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 destroy() : voidContentPanel
Destroys this panel
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getEl() : Ext.ElementContentPanel
Returns this panel's element
 getGrid() : Ext.grid.GridGridPanel
Returns the grid for this panel
 getId() : StringContentPanel
Returns this panel's id
 getTitle() : StringContentPanel
Returns this panel's title
 getToolbar() : Ext.ToolbarContentPanel
Returns the toolbar for this Panel if one was configured.
 getUpdateManager() : Ext.UpdateManagerContentPanel
Get the Ext.UpdateManager for this panel. Enables you to perform Ajax updates.
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 isClosable() : BooleanContentPanel
Returns true is this panel was configured to be closable
 load(Object/String/Function url, [String/Object params], [Function callback], [Boolean discardUrl]) : Ext.ContentPanelContentPanel
Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use ...
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 refresh() : voidContentPanel
Force a content refresh from the URL specified in the setUrl() method. -Will fail silently if the setUrl method has no...
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 setContent(String content, [Boolean loadScripts]) : voidContentPanel
Updates this panel's element
 setTitle(String title) : voidContentPanel
Set this panel's title
 setUrl(String/Function url, [String/Object params], [Boolean loadOnce]) : Ext.UpdateManagerContentPanel
Set a URL to be used to load the content for this panel. When this panel is activated, the content will be loaded fro...
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 activate : (Ext.ContentPanel this)ContentPanel
Fires when this panel is activated.
 deactivate : (Ext.ContentPanel this)ContentPanel
Fires when this panel is activated.
 resize : (Ext.ContentPanel this, Number width, Number height)ContentPanel
Fires when this panel is resized if fitToFrame is true.
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 adjustments : ArrayContentPanel
Values to add to the width/height when doing a fitToFrame (default is [0, 0])
 autoCreate : Boolean/ObjectContentPanel
True to auto generate the DOM element for this panel, or a DomHelper config of the element to create
 autoScroll : BooleanContentPanel
True to scroll overflow in this panel (use with fitToFrame)
 background : BooleanContentPanel
True if the panel should not be activated when it is added (defaults to false)
 closable : BooleanContentPanel
True if the panel can be closed/removed
 fitContainer : BooleanContentPanel
When using fitToFrame and resizeEl, you can also fit the parent container (defaults to false)
 fitToFrame : BooleanContentPanel
True for this panel to adjust its size to fit when the region resizes (defaults to false)
 loadOnce : BooleanContentPanel
Calls When used with "url", calls setUrl() with this value
 params : String/ObjectContentPanel
When used with "url", calls setUrl() with this value
 resizeEl : String/HTMLElement/ElementContentPanel
An element to resize if fitToFrame is true (instead of this panel's element)
 title : StringContentPanel
The title for this panel
 toolbar : ToolbarContentPanel
A toolbar for this panel
 url : StringContentPanel
Calls setUrl() with this value
- - -

Constructor Details

-
-
-

GridPanel

- public function GridPanel(Ext.grid.Grid grid, String/Object config) -
- Create a new GridPanel.
- Parameters: -
  • grid : Ext.grid.Grid
    The grid for this panel
  • config : String/Object
    A string to set only the title or a config object
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

destroy

- public function destroy() -
- Destroys this panel -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getEl

- public function getEl() -
- Returns this panel's element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

getGrid

- public function getGrid() -
- Returns the grid for this panel -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.grid.Grid
  • -
-
-
-
This method is defined by GridPanel.
-
- -
-

getId

- public function getId() -
- Returns this panel's id -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

getTitle

- public function getTitle() -
- Returns this panel's title -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

getToolbar

- public function getToolbar() -
- Returns the toolbar for this Panel if one was configured. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Toolbar
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

getUpdateManager

- public function getUpdateManager() -
- Get the Ext.UpdateManager for this panel. Enables you to perform Ajax updates. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.UpdateManager
    The UpdateManager
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

isClosable

- public function isClosable() -
- Returns true is this panel was configured to be closable -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

load

- public function load(Object/String/Function url, [String/Object params], [Function callback], [Boolean discardUrl]) -
- Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use setUrl. -
- Parameters: -
  • url : Object/String/Function
    The url for this request or a function to call to get the url or a config object containing any of the following options:
     panel.load({
    url: "your-url.php",
    params: {param1: "foo", param2: "bar"}, // or a URL encoded string
    callback: yourFunction,
    scope: yourObject, //(optional scope)
    discardUrl: false,
    nocache: false,
    text: "Loading...",
    timeout: 30,
    scripts: false
    });
    The only required property is url. The optional properties nocache, text and scripts are shorthand for disableCaching, indicatorText and loadScripts and are used to set their associated property on this panel UpdateManager instance.
  • params : String/Object
    (optional) The parameters to pass as either a url encoded string "param1=1&param2=2" or an object {param1: 1, param2: 2}
  • callback : Function
    (optional) Callback when transaction is complete - called with signature (oElement, bSuccess, oResponse)
  • discardUrl : Boolean
    (optional) By default when you execute an update the defaultUrl is changed to the last used url. If true, it will not store the url.
- Returns: -
    -
  • Ext.ContentPanel
    this
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

refresh

- public function refresh() -
- Force a content refresh from the URL specified in the setUrl() method. -Will fail silently if the setUrl method has not been called. -This does not activate the panel, just updates its content. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

setContent

- public function setContent(String content, [Boolean loadScripts]) -
- Updates this panel's element -
- Parameters: -
  • content : String
    The new content
  • loadScripts : Boolean
    (optional) true to look for and process scripts
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

setTitle

- public function setTitle(String title) -
- Set this panel's title -
- Parameters: -
  • title : String
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

setUrl

- public function setUrl(String/Function url, [String/Object params], [Boolean loadOnce]) -
- Set a URL to be used to load the content for this panel. When this panel is activated, the content will be loaded from that URL. -
- Parameters: -
  • url : String/Function
    The url to load the content from or a function to call to get the url
  • params : String/Object
    (optional) The string params for the update call or an object of the params. See Ext.UpdateManager.update for more details. (Defaults to null)
  • loadOnce : Boolean
    (optional) Whether to only load the content once. If this is false it makes the Ajax call every time this panel is activated. (Defaults to false)
- Returns: -
    -
  • Ext.UpdateManager
    The UpdateManager
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

activate

- public event activate -
- Fires when this panel is activated. -
- Subscribers will be called with the following parameters: -
  • this : Ext.ContentPanel
-
-
-
This event is defined by ContentPanel.
-
- -
-

deactivate

- public event deactivate -
- Fires when this panel is activated. -
- Subscribers will be called with the following parameters: -
  • this : Ext.ContentPanel
-
-
-
This event is defined by ContentPanel.
-
- -
-

resize

- public event resize -
- Fires when this panel is resized if fitToFrame is true. -
- Subscribers will be called with the following parameters: -
  • this : Ext.ContentPanel
  • width : Number
    The width after any component adjustments
  • height : Number
    The height after any component adjustments
-
-
-
This event is defined by ContentPanel.
-
-
-

Config Details

-
- -
-

adjustments

- adjustments : Array -
- Values to add to the width/height when doing a fitToFrame (default is [0, 0])
-
This config option is defined by ContentPanel.
-
- -
-

autoCreate

- autoCreate : Boolean/Object -
- True to auto generate the DOM element for this panel, or a DomHelper config of the element to create
-
This config option is defined by ContentPanel.
-
- -
-

autoScroll

- autoScroll : Boolean -
- True to scroll overflow in this panel (use with fitToFrame)
-
This config option is defined by ContentPanel.
-
- -
-

background

- background : Boolean -
- True if the panel should not be activated when it is added (defaults to false)
-
This config option is defined by ContentPanel.
-
- -
-

closable

- closable : Boolean -
- True if the panel can be closed/removed
-
This config option is defined by ContentPanel.
-
- -
-

fitContainer

- fitContainer : Boolean -
- When using fitToFrame and resizeEl, you can also fit the parent container (defaults to false)
-
This config option is defined by ContentPanel.
-
- -
-

fitToFrame

- fitToFrame : Boolean -
- True for this panel to adjust its size to fit when the region resizes (defaults to false)
-
This config option is defined by ContentPanel.
-
- -
-

loadOnce

- loadOnce : Boolean -
- Calls When used with "url", calls setUrl() with this value
-
This config option is defined by ContentPanel.
-
- -
-

params

- params : String/Object -
- When used with "url", calls setUrl() with this value
-
This config option is defined by ContentPanel.
-
- -
-

resizeEl

- resizeEl : String/HTMLElement/Element -
- An element to resize if fitToFrame is true (instead of this panel's element)
-
This config option is defined by ContentPanel.
-
- -
-

title

- title : String -
- The title for this panel
-
This config option is defined by ContentPanel.
-
- -
-

toolbar

- toolbar : Toolbar -
- A toolbar for this panel
-
This config option is defined by ContentPanel.
-
- -
-

url

- url : String -
- Calls setUrl() with this value
-
This config option is defined by ContentPanel.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.JsonView.html b/www/extras/extjs/docs/output/Ext.JsonView.html deleted file mode 100644 index a705dc502..000000000 --- a/www/extras/extjs/docs/output/Ext.JsonView.html +++ /dev/null @@ -1,1138 +0,0 @@ - - - - Ext.JsonView - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.JsonView

- - - - - -
Package:Ext
Class:JsonView
Extends:View
Defined In:JsonView.js
-
- Shortcut class to create a JSON + UpdateManager template view. Usage: -
var view = new Ext.JsonView("my-element",
- '<div id="{id}">{foo} - {bar}</div>', // auto create template
- { multiSelect: true, jsonRoot: "data" });
-
- // listen for node click?
- view.on("click", function(vw, index, node, e){
- alert('Node "' + node.id + '" at index: ' + index + " was clicked.");
- });
-
- // direct load of JSON data
- view.load("foobar.php");
-
-
- // Example from my blog list
- var tpl = new Ext.Template(
- '<div class="entry">' +
- '<a class="entry-title" href="{link}">{title}</a>' +
- "<h4>{date} by {author} | {comments} Comments</h4>{description}" +
- "</div><hr />"
- );
-
- var moreView = new Ext.JsonView("entry-list", tpl, {
- jsonRoot: "posts"
- });
- moreView.on("beforerender", this.sortEntries, this);
- moreView.load({
- url:"/blog/get-posts.php",
- params: "allposts=true",
- text:"Loading Blog Entries..."
- });
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 jsonData : ObjectJsonView
The current json data or null
 jsonRoot : StringJsonView
The root property in the loaded json object that contains the data
 selectedClass : Ext.DomHelper.TemplateView
The css class to add to selected nodes
 tpl : Ext.DomHelper.TemplateView
The template used by this View
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 JsonView(String/HTMLElement/Element container, Template tpl, Object config)JsonView
Create a new JsonView
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 clearFilter() : voidJsonView
Clears the current filter.
 clearSelections([Boolean suppressEvent]) : voidView
Clear all selections
 filter(String property, String/RegExp value) : voidJsonView
Filter the data by a specific property.
 filterBy(Function fn, [Object scope]) : voidJsonView
Filter by a function. The passed function will be called with each -object in the current dataset. If the function ret...
 findItemFromChild(HTMLElement node) : HTMLElementView
Returns the template node the passed child belongs to or null if it doesn't belong to one.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getCount() : NumberJsonView
Get the number of records in the current JSON dataset
 getEl() : Ext.ElementView
Returns the element this view is bound to.
 getNode(HTMLElement/String/Number nodeInfo) : HTMLElementView
Gets a template node.
 getNodeData(HTMLElement/Array node) : Object/ArrayJsonView
Returns the JSON object for the specified node(s)
 getNodes(Number startIndex, Number endIndex) : ArrayView
Gets a range template nodes.
 getSelectedIndexes() : ArrayView
Get the indexes of the selected nodes.
 getSelectedNodes() : ArrayView
Get the currently selected nodes.
 getSelectionCount() : NumberView
Get the number of selected nodes.
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 indexOf(HTMLElement/String/Number nodeInfo) : NumberView
Finds the index of the passed node
 isSelected(HTMLElement/Number node) : BooleanView
Returns true if the passed node is selected
 load(Object/String/Function url, [String/Object params], [Function callback], [Boolean discardUrl]) : voidJsonView
Performs an async request, loading the JSON from the response. If params are specified it uses POST, otherwise it use...
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 prepareData(Array/Object data) : voidView
Function to override to reformat the data that is sent to -the template for each node.
 purgeListeners() : voidObservable
Removes all listeners for this object
 refresh() : voidJsonView
Refreshes the view.
 refreshNode(Number index) : voidView
Refresh an individual node.
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 select(Array/HTMLElement/String/Number nodeInfo, [Boolean keepExisting], [Boolean suppressEvent]) : voidView
Selects nodes.
 setStore(Store store) : voidView
Changes the data store this view uses and refresh the view.
 sort(String property, [String direction], [Function sortType]) : voidJsonView
Sorts the data for this view and refreshes it.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforeclick : (Ext.View this, Number index, HTMLElement node, Ext.EventObject e)View
Fires before a click is processed. Returns false to cancel the default action.
 beforerender : (Ext.View this, Object data)JsonView
Fires before rendering of the downloaded json data.
 beforeselect : (Ext.View this, HTMLElement node, Array selections)View
Fires before a selection is made. If any handlers return false, the selection is cancelled.
 click : (Ext.View this, Number index, HTMLElement node, Ext.EventObject e)View
Fires when a template node is clicked.
 contextmenu : (Ext.View this, Number index, HTMLElement node, Ext.EventObject e)View
Fires when a template node is right clicked.
 dblclick : (Ext.View this, Number index, HTMLElement node, Ext.EventObject e)View
Fires when a template node is double clicked.
 load : (Ext.View this, Object data, Object response)JsonView
* -Fires when data is loaded.
 loadexception : (Ext.View this, Object response)JsonView
* -Fires when loading fails.
 selectionchange : (Ext.View this, Array selections)View
Fires when the selected nodes change.
-

Property Details

-
- -
-

jsonData

- public Object jsonData -
- The current json data or null
-
This property is defined by JsonView.
-
- -
-

jsonRoot

- public String jsonRoot -
- The root property in the loaded json object that contains the data
-
This property is defined by JsonView.
-
- -
-

selectedClass

- public Ext.DomHelper.Template selectedClass -
- The css class to add to selected nodes
-
This property is defined by View.
-
- -
-

tpl

- public Ext.DomHelper.Template tpl -
- The template used by this View
-
This property is defined by View.
-
-
- - -

Constructor Details

-
-
-

JsonView

- public function JsonView(String/HTMLElement/Element container, Template tpl, Object config) -
- Create a new JsonView
- Parameters: -
  • container : String/HTMLElement/Element
    The container element where the view is to be rendered.
  • tpl : Template
    The rendering template
  • config : Object
    The config object
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

clearFilter

- public function clearFilter() -
- Clears the current filter. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by JsonView.
-
- -
-

clearSelections

- public function clearSelections([Boolean suppressEvent]) -
- Clear all selections -
- Parameters: -
  • suppressEvent : Boolean
    (optional) true to skip firing of the selectionchange event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by View.
-
- -
-

filter

- public function filter(String property, String/RegExp value) -
- Filter the data by a specific property. -
- Parameters: -
  • property : String
    A property on your JSON objects
  • value : String/RegExp
    Either string that the property values should start with or a RegExp to test against the property
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by JsonView.
-
- -
-

filterBy

- public function filterBy(Function fn, [Object scope]) -
- Filter by a function. The passed function will be called with each -object in the current dataset. If the function returns true, the value is kept -otherwise it is filtered. -
- Parameters: -
  • fn : Function
  • scope : Object
    (optional) The scope of the function (defaults to this JsonView)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by JsonView.
-
- -
-

findItemFromChild

- public function findItemFromChild(HTMLElement node) -
- Returns the template node the passed child belongs to or null if it doesn't belong to one. -
- Parameters: -
  • node : HTMLElement
- Returns: -
    -
  • HTMLElement
    The template node
  • -
-
-
-
This method is defined by View.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getCount

- public function getCount() -
- Get the number of records in the current JSON dataset -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by JsonView.
-
- -
-

getEl

- public function getEl() -
- Returns the element this view is bound to. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by View.
-
- -
-

getNode

- public function getNode(HTMLElement/String/Number nodeInfo) -
- Gets a template node. -
- Parameters: -
  • nodeInfo : HTMLElement/String/Number
    An HTMLElement template node, index of a template node or the id of a template node
- Returns: -
    -
  • HTMLElement
    The node or null if it wasn't found
  • -
-
-
-
This method is defined by View.
-
- -
-

getNodeData

- public function getNodeData(HTMLElement/Array node) -
- Returns the JSON object for the specified node(s) -
- Parameters: -
  • node : HTMLElement/Array
    The node or an array of nodes
- Returns: -
    -
  • Object/Array
    If you pass in an array, you get an array back, otherwise you get the JSON object for the node
  • -
-
-
-
This method is defined by JsonView.
-
- -
-

getNodes

- public function getNodes(Number startIndex, Number endIndex) -
- Gets a range template nodes. -
- Parameters: -
  • startIndex : Number
  • endIndex : Number
- Returns: -
    -
  • Array
    An array of nodes
  • -
-
-
-
This method is defined by View.
-
- -
-

getSelectedIndexes

- public function getSelectedIndexes() -
- Get the indexes of the selected nodes. -
- Parameters: -
  • None.
- Returns: -
    -
  • Array
  • -
-
-
-
This method is defined by View.
-
- -
-

getSelectedNodes

- public function getSelectedNodes() -
- Get the currently selected nodes. -
- Parameters: -
  • None.
- Returns: -
    -
  • Array
    An array of HTMLElements
  • -
-
-
-
This method is defined by View.
-
- -
-

getSelectionCount

- public function getSelectionCount() -
- Get the number of selected nodes. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by View.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

indexOf

- public function indexOf(HTMLElement/String/Number nodeInfo) -
- Finds the index of the passed node -
- Parameters: -
  • nodeInfo : HTMLElement/String/Number
    An HTMLElement template node, index of a template node or the id of a template node
- Returns: -
    -
  • Number
    The index of the node or -1
  • -
-
-
-
This method is defined by View.
-
- -
-

isSelected

- public function isSelected(HTMLElement/Number node) -
- Returns true if the passed node is selected -
- Parameters: -
  • node : HTMLElement/Number
    The node or node index
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by View.
-
- -
-

load

- public function load(Object/String/Function url, [String/Object params], [Function callback], [Boolean discardUrl]) -
- Performs an async request, loading the JSON from the response. If params are specified it uses POST, otherwise it uses GET. -
- Parameters: -
  • url : Object/String/Function
    The url for this request or a function to call to get the url or a config object containing any of the following options:
     view.load({ url: "your-url.php",
    params: {param1: "foo", param2: "bar"}, // or a URL encoded string
    callback: yourFunction,
    scope: yourObject, //(optional scope)
    discardUrl: false,
    nocache: false,
    text: "Loading...",
    timeout: 30,
    scripts: false
    });
    The only required property is url. The optional properties nocache, text and scripts are shorthand for disableCaching, indicatorText and loadScripts and are used to set their associated property on this UpdateManager instance.
  • params : String/Object
    (optional) The parameters to pass as either a url encoded string "param1=1&param2=2" or an object {param1: 1, param2: 2}
  • callback : Function
    (optional) Callback when transaction is complete - called with signature (oElement, bSuccess)
  • discardUrl : Boolean
    (optional) By default when you execute an update the defaultUrl is changed to the last used url. If true, it will not store the url.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by JsonView.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

prepareData

- public function prepareData(Array/Object data) -
- Function to override to reformat the data that is sent to -the template for each node. -
- Parameters: -
  • data : Array/Object
    The raw data (array of colData for a data model bound view or a JSON object for an UpdateManager bound view).
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by View.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

refresh

- public function refresh() -
- Refreshes the view. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by JsonView.
-
- -
-

refreshNode

- public function refreshNode(Number index) -
- Refresh an individual node. -
- Parameters: -
  • index : Number
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by View.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

select

- public function select(Array/HTMLElement/String/Number nodeInfo, [Boolean keepExisting], [Boolean suppressEvent]) -
- Selects nodes. -
- Parameters: -
  • nodeInfo : Array/HTMLElement/String/Number
    An HTMLElement template node, index of a template node, id of a template node or an array of any of those to select
  • keepExisting : Boolean
    (optional) true to keep existing selections
  • suppressEvent : Boolean
    (optional) true to skip firing of the selectionchange vent
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by View.
-
- -
-

setStore

- public function setStore(Store store) -
- Changes the data store this view uses and refresh the view. -
- Parameters: -
  • store : Store
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by View.
-
- -
-

sort

- public function sort(String property, [String direction], [Function sortType]) -
- Sorts the data for this view and refreshes it. -
- Parameters: -
  • property : String
    A property on your JSON objects to sort on
  • direction : String
    (optional) desc or asc (defaults to asc)
  • sortType : Function
    (optional) A function to call to convert the data to a sortable value.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by JsonView.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforeclick

- public event beforeclick -
- Fires before a click is processed. Returns false to cancel the default action. -
- Subscribers will be called with the following parameters: -
  • this : Ext.View
  • index : Number
    The index of the target node
  • node : HTMLElement
    The target node
  • e : Ext.EventObject
    The raw event object
-
-
-
This event is defined by View.
-
- -
-

beforerender

- public event beforerender -
- Fires before rendering of the downloaded json data. -
- Subscribers will be called with the following parameters: -
  • this : Ext.View
  • data : Object
    The json data loaded
-
-
-
This event is defined by JsonView.
-
- -
-

beforeselect

- public event beforeselect -
- Fires before a selection is made. If any handlers return false, the selection is cancelled. -
- Subscribers will be called with the following parameters: -
  • this : Ext.View
  • node : HTMLElement
    The node to be selected
  • selections : Array
    Array of currently selected nodes
-
-
-
This event is defined by View.
-
- -
-

click

- public event click -
- Fires when a template node is clicked. -
- Subscribers will be called with the following parameters: -
  • this : Ext.View
  • index : Number
    The index of the target node
  • node : HTMLElement
    The target node
  • e : Ext.EventObject
    The raw event object
-
-
-
This event is defined by View.
-
- -
-

contextmenu

- public event contextmenu -
- Fires when a template node is right clicked. -
- Subscribers will be called with the following parameters: -
  • this : Ext.View
  • index : Number
    The index of the target node
  • node : HTMLElement
    The target node
  • e : Ext.EventObject
    The raw event object
-
-
-
This event is defined by View.
-
- -
-

dblclick

- public event dblclick -
- Fires when a template node is double clicked. -
- Subscribers will be called with the following parameters: -
  • this : Ext.View
  • index : Number
    The index of the target node
  • node : HTMLElement
    The target node
  • e : Ext.EventObject
    The raw event object
-
-
-
This event is defined by View.
-
- -
-

load

- public event load -
- * -Fires when data is loaded. -
- Subscribers will be called with the following parameters: -
  • this : Ext.View
  • data : Object
    The json data loaded
  • response : Object
    The raw Connect response object
-
-
-
This event is defined by JsonView.
-
- -
-

loadexception

- public event loadexception -
- * -Fires when loading fails. -
- Subscribers will be called with the following parameters: -
  • this : Ext.View
  • response : Object
    The raw Connect response object
-
-
-
This event is defined by JsonView.
-
- -
-

selectionchange

- public event selectionchange -
- Fires when the selected nodes change. -
- Subscribers will be called with the following parameters: -
  • this : Ext.View
  • selections : Array
    Array of the selected nodes
-
-
-
This event is defined by View.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.KeyMap.html b/www/extras/extjs/docs/output/Ext.KeyMap.html deleted file mode 100644 index 01ef12987..000000000 --- a/www/extras/extjs/docs/output/Ext.KeyMap.html +++ /dev/null @@ -1,268 +0,0 @@ - - - - Ext.KeyMap - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.KeyMap

- - - - - -
Package:Ext
Class:KeyMap
Extends:Object
Defined In:KeyMap.js
-
- Handles mapping keys to actions for an element. One key map can be used for multiple actions. -The constructor accepts the same config object as defined by addBinding. -If you bind a callback function to a KeyMap, anytime the KeyMap handles an expected key -combination it will call the function with this signature (if the match is a multi-key -combination the callback will still be called only once): (String key, Ext.EventObject e) -A KeyMap can also handle a string representation of keys.
-Usage: -
// map one key by key code
- var map = new Ext.KeyMap("my-element", {
-     key: 13, // or Ext.EventObject.ENTER
-     fn: myHandler,
-     scope: myObject
- });
- 
- // map multiple keys to one action by string
- var map = new Ext.KeyMap("my-element", {
-     key: "a\r\n\t",
-     fn: myHandler,
-     scope: myObject
- });
- 
- // map multiple keys to multiple actions by strings and array of codes
- var map = new Ext.KeyMap("my-element", [
-    {
-        key: [10,13],
-        fn: function(){ alert("Return was pressed"); }
-    }, {
-        key: "abc",
-        fn: function(){ alert('a, b or c was pressed'); }
-    }, {
-        key: "\t",
-        ctrl:true,
-        shift:true,
-        fn: function(){ alert('Control + shift + tab was pressed.'); }
-    }
-]);
-Note: A KepMap starts enabled
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 stopEvent : BooleanKeyMap
True to stop the event from bubbling and prevent the default browser action if the -key was handled by the KeyMap (def...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 KeyMap(String/HTMLElement/Ext.Element el, Object config, [String eventName])KeyMap
 addBinding(Object config) : voidKeyMap
Add a new binding to this KeyMap. The following config object properties are supported: - -Property Type ...
 disable() : voidKeyMap
Disable this KeyMap
 enable() : voidKeyMap
Enable this KeyMap
 isEnabled() : BooleanKeyMap
Returns true if this KepMap is enabled
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

stopEvent

- public Boolean stopEvent -
- True to stop the event from bubbling and prevent the default browser action if the -key was handled by the KeyMap (defaults to false)
-
This property is defined by KeyMap.
-
-
- - -

Constructor Details

-
-
-

KeyMap

- public function KeyMap(String/HTMLElement/Ext.Element el, Object config, [String eventName]) -
-
- Parameters: -
  • el : String/HTMLElement/Ext.Element
    The element to bind to
  • config : Object
    The config
  • eventName : String
    (optional) The event to bind to (defaults to "keydown")
-
-
-
-
- -

Method Details

-
- -
-

addBinding

- public function addBinding(Object config) -
- Add a new binding to this KeyMap. The following config object properties are supported: -
-Property    Type             Description
-----------  ---------------  ----------------------------------------------------------------------
-key         String/Array     A single keycode or an array of keycodes to handle
-shift       Boolean          True to handle key only when shift is pressed (defaults to false)
-ctrl        Boolean          True to handle key only when ctrl is pressed (defaults to false)
-alt         Boolean          True to handle key only when alt is pressed (defaults to false)
-fn          Function         The function to call when KeyMap finds the expected key combination
-scope       Object           The scope of the callback function
-
-Usage: -

-// Create a KeyMap
-var map = new Ext.KeyMap(document, {
-    key: Ext.EventObject.ENTER,
-    fn: handleKey,
-    scope: this
-});
-
-//Add a new binding to the existing KeyMap later
-map.addBinding({
-    key: 'abc',
-    shift: true,
-    fn: handleKey,
-    scope: this
-});
-
-
- Parameters: -
  • config : Object
    A single KeyMap config
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by KeyMap.
-
- -
-

disable

- public function disable() -
- Disable this KeyMap -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by KeyMap.
-
- -
-

enable

- public function enable() -
- Enable this KeyMap -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by KeyMap.
-
- -
-

isEnabled

- public function isEnabled() -
- Returns true if this KepMap is enabled -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by KeyMap.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.KeyNav.html b/www/extras/extjs/docs/output/Ext.KeyNav.html deleted file mode 100644 index bc6cae7fa..000000000 --- a/www/extras/extjs/docs/output/Ext.KeyNav.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - Ext.KeyNav - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.KeyNav

- - - - - -
Package:Ext
Class:KeyNav
Extends:Object
Defined In:KeyNav.js
-
- Provides a convenient wrapper for normalized keyboard navigation. KeyNav allows you to bind -navigation keys to function calls that will get called when the keys are pressed. -
Usage: -
var nav = new Ext.KeyNav("my-element", {
-    "left" : function(e){
-        this.moveLeft(e.ctrlKey);
-    },
-    "right" : function(e){
-        this.moveRight(e.ctrlKey);
-    },
-    "enter" : function(e){
-        this.save();
-    },
-    scope : this
-});
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 KeyNav(String/HTMLElement/Ext.Element el, Object config)KeyNav
 disable() : voidKeyNav
Disable this KeyNav
 enable() : voidKeyNav
Enable this KeyNav
- -

Public Events

-
This class has no public events.
- -

Constructor Details

-
-
-

KeyNav

- public function KeyNav(String/HTMLElement/Ext.Element el, Object config) -
-
- Parameters: -
  • el : String/HTMLElement/Ext.Element
    The element to bind to
  • config : Object
    The config
-
-
-
-
- -

Method Details

-
- -
-

disable

- public function disable() -
- Disable this KeyNav -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by KeyNav.
-
- -
-

enable

- public function enable() -
- Enable this KeyNav -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by KeyNav.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Layer.html b/www/extras/extjs/docs/output/Ext.Layer.html deleted file mode 100644 index fed586b38..000000000 --- a/www/extras/extjs/docs/output/Ext.Layer.html +++ /dev/null @@ -1,3618 +0,0 @@ - - - - Ext.Layer - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Layer

- - - - - -
Package:Ext
Class:Layer
Extends:Element
Defined In:Layer.js
-
- An extended Element object that supports a shadow and shim, constrain to viewport and -automatic maintaining of shadow/shim positions.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 defaultUnit : StringElement
The default unit to append to CSS values where a unit isn't provided (Defaults to px).
 dom : HTMLElementElement
The DOM element
 id : StringElement
The DOM element ID
 originalDisplay : StringElement
The element's default display mode
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Layer(Object config, [String/HTMLElement existingEl])Layer
 addClass(String/Array className) : Ext.ElementElement
Add a CSS class to the element.
 addClassOnClick(String className) : Ext.ElementElement
Sets up event handlers to add and remove a css class when the mouse is down and then up on this element (a click effect)
 addClassOnFocus(String className) : Ext.ElementElement
Sets up event handlers to add and remove a css class when this element has the focus
 addClassOnOver(String className, [Boolean preventFlicker]) : Ext.ElementElement
Sets up event handlers to add and remove a css class when the mouse is over this element
 addKeyListener(Number/Array/Object/String key, Function fn, [Object scope]) : Ext.KeyMapElement
Convenience method for constructing a KeyMap
 addKeyMap(Object config) : Ext.KeyMapElement
Creates a KeyMap for this element
 addListener(String eventName, Function fn, [Object scope], [Object options]) : voidElement
Appends an event handler
 alignTo(String/HTMLElement/Ext.Element element, String position, [Array offsets], [Boolean/Object animate]) : Ext.ElementElement
Aligns this element with another element relative to the specified anchor points. If the other element is the -documen...
 anchorTo(String/HTMLElement/Ext.Element element, String position, [Array offsets], [Boolean/Object animate], [Boolean/Number monitorScroll], ) : voidElement
Anchors an element to another element and realigns it when the window is resized.
 animate(Object args, [Float duration], [Function onComplete], [String easing], [String animType]) : Ext.ElementElement
Perform animation on this element.
 appendChild(String/HTMLElement/Array/Element/CompositeElement el) : Ext.ElementElement
Appends the passed element(s) to this element
 appendTo(String/HTMLElement/Element el) : Ext.ElementElement
Appends this element to the passed element
 applyStyles(String/Object/Function styles) : Ext.ElementElement
More flexible version of setStyle for setting style properties.
 autoHeight([Boolean animate], [Float duration], [Function onComplete], [String easing]) : Ext.ElementElement
Measures the elements content height and updates height to match. Note, this function uses setTimeout and -the new he...
 beginMeasure() : Ext.ElementElement
Temporarily enables offsets (width,height,x,y) for an element with display:none, use endMeasure() when done.
 blur() : Ext.ElementElement
Tries to blur the element. Any exceptions are caught.
 center([String/HTMLElement/Ext.Element centerIn]) : voidElement
Centers the Element in either the viewport, or another Element.
 child(String selector, Boolean returnDom) : ElementElement
Selects a single child based on the passed CSS selector (the selector should not contain an id)
 clean([Boolean forceReclean]) : voidElement
Removes worthless text nodes
 clearOpacity() : Ext.ElementElement
Clears any opacity settings from this element. Required in some cases for IE.
 clearPositioning([String value]) : Ext.ElementElement
Clear positioning back to the default when the document was loaded
 clip() : Ext.ElementElement
Store the current overflow setting and clip overflow on the element - use unclip to remove
 contains(HTMLElement/String el) : BooleanElement
Returns true if this element is an ancestor of the passed element
 createChild(Object config, [HTMLElement insertBefore], [Boolean returnDom]) : Ext.ElementElement
Creates the passed DomHelper config and appends it to this element or optionally inserts it before the passed child e...
 createProxy(String/Object config, [String/HTMLElement renderTo], [Boolean matchBox]) : Ext.ElementElement
Creates a proxy element of this element
 createShim() : Ext.ElementElement
Creates an iframe shim for this element to keep selects and other windowed objects from -showing through.
 down(String selector, Boolean returnDom) : ElementElement
Selects a single *direct* child based on the passed CSS selector (the selector should not contain an id)
 enableDisplayMode([String display]) : Ext.ElementElement
Convenience method for setVisibilityMode(Element.DISPLAY)
 endMeasure() : Ext.ElementElement
Restores displays to before beginMeasure was called
 findParent(String ss, [Number/String/HTMLElement/Element maxDepth], [Boolean returnEl]) : HTMLElementElement
Looks at this node and then at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:fi...
 findParentNode(String ss, [Number/String/HTMLElement/Element maxDepth], [Boolean returnEl]) : HTMLElementElement
Looks at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:first-child)
 fitToParent([Boolean monitorResize], [String/HTMLElment/Element targetParent]) : Ext.ElementElement
Sizes this element to its parent element's dimensions performing -neccessary box adjustments.
 focus() : Ext.ElementElement
Tries to focus the element. Any exceptions are caught.
 getAlignToXY(String/HTMLElement/Ext.Element element, String position, [Array offsets]) : ArrayElement
Gets the x,y coordinates to align this element with another element. See alignTo for more info on the -supported posit...
 getAnchorXY([String anchor], [Object size], [Boolean local]) : ArrayElement
Gets the x,y coordinates specified by the anchor position on the element.
 getBorderWidth(String side) : NumberElement
Gets the width of the border(s) for the specified side(s)
 getBottom(Boolean local) : NumberElement
Gets the bottom Y coordinate of the element (element Y position + element height)
 getBox([Boolean contentBox], [Boolean local]) : ObjectElement
Return a box {x, y, width, height} that can be used to set another elements -size/location to match this element.
 getCenterXY() : ArrayElement
Calculates the x, y to center this element on the screen
 getColor(String attr, String defaultValue, [String prefix]) : voidElement
Return the CSS color for the specified CSS attribute. rgb, 3 digit (like #fff) and valid values -are convert to standa...
 getComputedHeight() : NumberElement
Returns either the offsetHeight or the height of this element based on CSS height adjusted by padding or borders -when...
 getComputedWidth() : NumberElement
Returns either the offsetWidth or the width of this element based on CSS width adjusted by padding or borders -when ne...
 getFrameWidth(String sides) : NumberElement
Returns the sum width of the padding and borders for the passed "sides". See getBorderWidth() - for more informat...
 getHeight([Boolean contentHeight]) : NumberElement
Returns the offset height of the element
 getLeft(Boolean local) : NumberElement
Gets the left X coordinate
 getMargins([String sides]) : Object/NumberElement
Returns an object with properties top, left, right and bottom representing the margins of this element unless sides i...
 getNextSibling() : HTMLElementElement
Gets the next sibling, skipping text nodes
 getPadding(String side) : NumberElement
Gets the width of the padding(s) for the specified side(s)
 getPositioning() : ObjectElement
Gets an object with all CSS positioning properties. Useful along with setPostioning to get -snapshot before performing...
 getPrevSibling() : HTMLElementElement
Gets the previous sibling, skipping text nodes
 getRegion() : RegionElement
Returns the region of the given element. -The element must be part of the DOM tree to have a region (display:none or e...
 getRight(Boolean local) : NumberElement
Gets the right X coordinate of the element (element X position + element width)
 getSize([Boolean contentSize]) : ObjectElement
Returns the size of the element
 getStyle(String property) : StringElement
Normalizes currentStyle and computedStyle. This is not YUI getStyle, it is an optimised version.
 getStyles(String style1, String style2, String etc) : ObjectElement
Get an object with properties matching the styles requested. -e.g. el.getStyles('color', 'font-size', 'width') might r...
 getTop(Boolean local) : NumberElement
Gets the top Y coordinate
 getUpdateManager() : Ext.UpdateManagerElement
Gets this elements UpdateManager
 getValue(Boolean asNumber) : String/NumberElement
Returns the value of the "value" attribute
 getWidth([Boolean contentWidth]) : NumberElement
Returns the offset width of the element
 getX() : NumberElement
Gets the current X position of the element based on page coordinates. Element must be part of the DOM tree to have p...
 getXY() : ArrayElement
Gets the current position of the element based on page coordinates. Element must be part of the DOM tree to have pag...
 getY() : NumberElement
Gets the current Y position of the element based on page coordinates. Element must be part of the DOM tree to have p...
 hasClass(String className) : BooleanElement
Checks if a CSS class is in use by the element.
 hide([Boolean/Object animate]) : Ext.ElementElement
Hide this element - Uses display mode to determine whether to use "display" or "visibility". See setVisible.
 initDD(String group, Object config, Object overrides) : Ext.dd.DDElement
Initializes a Ext.dd.DD object for this element.
 initDDProxy(String group, Object config, Object overrides) : Ext.dd.DDProxyElement
Initializes a Ext.dd.DDProxy object for this element.
 initDDTarget(String group, Object config, Object overrides) : Ext.dd.DDTargetElement
Initializes a Ext.dd.DDTarget object for this element.
 insertAfter(String/HTMLElement/Element el) : Ext.ElementElement
Inserts this element after the passed element in the DOM
 insertBefore(String/HTMLElement/Element el) : Ext.ElementElement
Inserts this element before the passed element in the DOM
 insertFirst(String/HTMLElement/Element/Object el) : Ext.ElementElement
Inserts (or creates) an element (or DomHelper config) as the first child of the this element
 insertHtml(String where, String html) : HTMLElementElement
Inserts an html fragment into this element
 insertSibling(String/HTMLElement/Element/Object el, [String where], [Boolean returnDom]) : Ext.ElementElement
Inserts (or creates) the passed element (or DomHelper config) as a sibling of this element
 is(String ss) : BooleanElement
Returns true if this element matches the passed simple selector (e.g. div.some-class or span:first-child)
 isBorderBox() : BooleanElement
Tests various css rules/browsers to determine if this element uses a border box
 isDisplayed() : BooleanElement
Returns true if display is not "none"
 isMasked() : BooleanElement
Returns true if this element is masked
 isScrollable() : BooleanElement
Returns true if this element is scrollable.
 isVisible(Boolean deep) : BooleanElement
Checks whether the element is currently visible using both visibility and display properties.
 load(String/Function url, [String/Object params], [Function callback], [Boolean discardUrl]) : Ext.ElementElement
Direct access to the UpdateManager update() method (takes the same parameters).
 mask([String msg], [String msgCls]) : ElementElement
Puts a mask over this element to disable user interaction. Requires core.css. -This method can only be applied to elem...
 move(String direction, Number distance, [Boolean/Object animate]) : Ext.ElementElement
Move this element relative to its current position.
 moveTo(Number x, Number y, [Boolean/Object animate]) : Ext.ElementElement
Set the position of the element in page coordinates, regardless of how the element is positioned. -The element must be...
 position([String pos], [Number zIndex], [Number x], [Number y]) : voidElement
Initializes positioning on this element. If a desired position is not passed, it will make the -the element positioned...
 query(String selector) : ArrayElement
Selects child nodes based on the passed CSS selector (the selector should not contain an id)
 radioClass(String className) : Ext.ElementElement
Adds the passed className to this element and removes the class from all siblings
 remove() : voidElement
Removes this element from the DOM and deletes it from the cache
 removeAllListeners() : Ext.ElementElement
Removes all previous added listeners from this element
 removeClass(String/Array className) : Ext.ElementElement
Removes a CSS class from the element.
 removeListener(String eventName, Function fn) : Ext.ElementElement
Removes an event handler from this element
 repaint() : Ext.ElementElement
Forces the browser to repaint this element
 replace(String/HTMLElement/Element el) : Ext.ElementElement
Replaces the passed element with this element
 replaceClass(String oldClassName, String newClassName) : Ext.ElementElement
Replaces a CSS class on the element with another.
 scroll(String direction, Number distance, [Boolean/Object animate]) : BooleanElement
Scrolls this element the specified direction. Does bounds checking to make sure the scroll is -within this elements s...
 scrollIntoView([String/HTMLElement/Element container], [Boolean hscroll]) : Ext.ElementElement
Scrolls this element into view within the passed container.
 scrollTo(String side, Number value, [Boolean/Object animate]) : ElementElement
Scrolls this element the specified scroll point. It does NOT do bounds checking so if you scroll to a weird value it ...
 select(String selector, Boolean unique) : CompositeElement/CompositeElementLiteElement
Creates a CompositeElement for child nodes based on the passed CSS selector (the selector should not contain an id)
 set(Object o, [Boolean useSet]) : Ext.ElementElement
Sets the passed attributes as attributes of this element (a style attribute can be a string, object or function)
 setBottom(String bottom) : Ext.ElementElement
Set the element's css bottom style
 setBounds(Number x, Number y, Number width, Number height, [Boolean/Object animate]) : Ext.ElementElement
Sets the element's position and size in one shot. If animation is true then width, height, x and y will be animated c...
 setBox(Object box, [Boolean adjust], [Boolean/Object animate]) : Ext.ElementElement
Sets the element's box. Use getBox() on another element to get a box obj. If animate is true then width, height, x an...
 setDisplayed(Boolean value) : Ext.ElementElement
Sets the css display. Uses originalDisplay if value is a boolean true.
 setHeight(Number height, [Boolean/Object animate]) : Ext.ElementElement
Set the height of the element
 setLeft(String left) : Ext.ElementElement
Set the element's left position directly using CSS style (instead of setX())
 setLeftTop() : Ext.ElementElement
Quick set left and top adding default units
 setLocation(Number x, Number y, [Boolean/Object animate]) : Ext.ElementElement
Set the position of the element in page coordinates, regardless of how the element is positioned. -The element must be...
 setOpacity(Float opacity, [Boolean/Object animate]) : Ext.ElementElement
Set the opacity of the element
 setPositioning(Object posCfg) : Ext.ElementElement
Set positioning with an object returned by getPositioning().
 setRegion(Ext.lib.Region region, [Boolean/Object animate]) : Ext.ElementElement
Sets the element's position and size the the specified region. If animation is true then width, height, x and y will ...
 setRight(String right) : Ext.ElementElement
Set the element's css right style
 setSize(Number width, Number height, [Boolean/Object animate]) : Ext.ElementElement
Set the size of the element. If animation is true, both width an height will be animated concurrently.
 setStyle(String/Object property, [String val]) : Ext.ElementElement
Wrapper for setting style properties, also takes single object parameter of multiple styles
 setTop(String top) : Ext.ElementElement
Set the element's top position directly using CSS style (instead of setY())
 setVisibilityMode(visMode Element.VISIBILITY) : Ext.ElementElement
Sets the elements visibility mode. When setVisible() is called it -will use this to determine whether to set the visib...
 setVisible(Boolean visible, [Boolean/Object animate]) : Ext.ElementElement
Sets the visibility of the element (see details). If the visibilityMode is set to Element.DISPLAY, it will use -the d...
 setWidth(Number width, [Boolean/Object animate]) : Ext.ElementElement
Set the width of the element
 setX(Number The, [Boolean/Object animate]) : Ext.ElementElement
Sets the X position of the element based on page coordinates. Element must be part of the DOM tree to have page coor...
 setXY(Array pos, [Boolean/Object animate]) : Ext.ElementElement
Set the position of the element in page coordinates, regardless of how the element is positioned. -The element must be...
 setY(Number The, [Boolean/Object animate]) : Ext.ElementElement
Sets the Y position of the element based on page coordinates. Element must be part of the DOM tree to have page coor...
 setZIndex(Number zindex) : thisLayer
Set the z-index of this layer and adjusts any shadow and shim z-indexes. The layer z-index is automatically -increment...
 show([Boolean/Object animate]) : Ext.ElementElement
Show this element - Uses display mode to determine whether to use "display" or "visibility". See setVisible.
 swallowEvent(String eventName, [Boolean preventDefault]) : Ext.ElementElement
Stops the specified event from bubbling and optionally prevents the default action
 toggle([Boolean/Object animate]) : Ext.ElementElement
Toggles the elements visibility or display, depending on visibility mode.
 toggleClass(String className) : Ext.ElementElement
Toggles (adds or removes) the passed class.
 translatePoints(Number/Array x, Number y, Object An) : voidElement
Translates the passed page coordinates into left/top css values for this element
 unclip() : Ext.ElementElement
Return clipping (overflow) to original clipping before clip() was called
 unmask() : voidElement
Removes a previously applied mask. If removeEl is true the mask overlay is destroyed, otherwise -it is cached for reuse.
 unselectable() : Ext.ElementElement
Disables text selection for this element (normalized across browsers)
 up(String ss, [Number/String/HTMLElement/Element maxDepth]) : Ext.ElementElement
Walks up the dom looking for a parent node that matches the passed simple selector (e.g. div.some-class or span:first...
 update(String html, [Boolean loadScripts], Function callback) : Ext.ElementElement
Update the innerHTML of this element, optionally searching for and processing scripts
 wrap([Object config], [Boolean returnDom]) : /HTMLElementElementElement
Creates and wraps this element with another element
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 cls : StringLayer
CSS class to add to the element
 constrain : BooleanLayer
False to disable constrain to viewport (defaults to true)
 dh : ObjectLayer
DomHelper object config to create element with (defaults to {tag: "div", cls: "x-layer"}).
 shadow : String/BooleanLayer
True to create a shadow element with default class "x-layer-shadow" or you can pass a string with a css class name. F...
 shadowOffset : NumberLayer
Number of pixels to offset the shadow (defaults to 3)
 shim : BooleanLayer
False to disable the iframe shim in browsers which need one (defaults to true)
 zindex : NumberLayer
Starting z-index (defaults to 11000!)
-

Property Details

-
- -
-

defaultUnit

- public String defaultUnit -
- The default unit to append to CSS values where a unit isn't provided (Defaults to px).
-
This property is defined by Element.
-
- -
-

dom

- public HTMLElement dom -
- The DOM element
-
This property is defined by Element.
-
- -
-

id

- public String id -
- The DOM element ID
-
This property is defined by Element.
-
- -
-

originalDisplay

- public String originalDisplay -
- The element's default display mode
-
This property is defined by Element.
-
-
- - -

Constructor Details

-
-
-

Layer

- public function Layer(Object config, [String/HTMLElement existingEl]) -
-
- Parameters: -
  • config : Object
  • existingEl : String/HTMLElement
    (optional) Uses an existing dom element. If the element is not found it creates it.
-
-
-
-
- -

Method Details

-
- -
-

addClass

- public function addClass(String/Array className) -
- Add a CSS class to the element. -
- Parameters: -
  • className : String/Array
    The CSS class to add or an array of classes
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

addClassOnClick

- public function addClassOnClick(String className) -
- Sets up event handlers to add and remove a css class when the mouse is down and then up on this element (a click effect) -
- Parameters: -
  • className : String
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

addClassOnFocus

- public function addClassOnFocus(String className) -
- Sets up event handlers to add and remove a css class when this element has the focus -
- Parameters: -
  • className : String
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

addClassOnOver

- public function addClassOnOver(String className, [Boolean preventFlicker]) -
- Sets up event handlers to add and remove a css class when the mouse is over this element -
- Parameters: -
  • className : String
  • preventFlicker : Boolean
    (optional) If set to true, it prevents flickering by filtering mouseout events for children elements
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

addKeyListener

- public function addKeyListener(Number/Array/Object/String key, Function fn, [Object scope]) -
- Convenience method for constructing a KeyMap -
- Parameters: -
  • key : Number/Array/Object/String
    Either a string with the keys to listen for, the numeric key code, array of key codes or an object with the following options: {key: (number or array), shift: (true/false), ctrl: (true/false), alt: (true/false)}
  • fn : Function
    The function to call
  • scope : Object
    (optional) The scope of the function
- Returns: -
    -
  • Ext.KeyMap
    The KeyMap created
  • -
-
-
-
This method is defined by Element.
-
- -
-

addKeyMap

- public function addKeyMap(Object config) -
- Creates a KeyMap for this element -
- Parameters: -
  • config : Object
    The KeyMap config. See Ext.KeyMap for more details
- Returns: -
    -
  • Ext.KeyMap
    The KeyMap created
  • -
-
-
-
This method is defined by Element.
-
- -
-

addListener

- public function addListener(String eventName, Function fn, [Object scope], [Object options]) -
- Appends an event handler -
- Parameters: -
  • eventName : String
    The type of event to append
  • fn : Function
    The method the event invokes
  • scope : Object
    (optional) The scope (this object) of the fn
  • options : Object
    (optional)An object with standard EventManager options
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

alignTo

- public function alignTo(String/HTMLElement/Ext.Element element, String position, [Array offsets], [Boolean/Object animate]) -
- Aligns this element with another element relative to the specified anchor points. If the other element is the -document it aligns it to the viewport. -The position parameter is optional, and can be specified in any one of the following formats: -
    -
  • Blank: Defaults to aligning the element"s top-left corner to the target"s bottom-left corner ("tl-bl").
  • -
  • One anchor (deprecated): The passed anchor position is used as the target element's anchor point. -The element being aligned will position its top-left corner (tl) to that point. This method has been -deprecated in favor of the newer two anchor syntax below.
  • -
  • Two anchors: If two values from the table below are passed separated by a dash, the first value is used as the -element"s anchor point, and the second value is used as the target"s anchor point.
  • -
-In addition to the anchor points, the position parameter also supports the "?" character. If "?" is passed at the end of -the position string, the element will attempt to align as specified, but the position will be adjusted to constrain to -the viewport if necessary. Note that the element being aligned might be swapped to align to a different position than -that specified in order to enforce the viewport constraints. -Following are all of the supported anchor positions: -
-Value  Description
------  -----------------------------
-tl     The top left corner (default)
-t      The center of the top edge
-tr     The top right corner
-l      The center of the left edge
-c      In the center of the element
-r      The center of the right edge
-bl     The bottom left corner
-b      The center of the bottom edge
-br     The bottom right corner
-
-Example Usage: -

-// align el to other-el using the default positioning ("tl-bl", non-constrained)
-el.alignTo("other-el");
-
-// align the top left corner of el with the top right corner of other-el (constrained to viewport)
-el.alignTo("other-el", "tr?");
-
-// align the bottom right corner of el with the center left edge of other-el
-el.alignTo("other-el", "br-l?");
-
-// align the center of el with the bottom left corner of other-el and
-// adjust the x position by -6 pixels (and the y position by 0)
-el.alignTo("other-el", "c-bl", [-6, 0]);
-
-
- Parameters: -
  • element : String/HTMLElement/Ext.Element
    The element to align to.
  • position : String
    The position to align to.
  • offsets : Array
    (optional) Offset the positioning by [x, y]
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

anchorTo

- public function anchorTo(String/HTMLElement/Ext.Element element, String position, [Array offsets], [Boolean/Object animate], [Boolean/Number monitorScroll], ) -
- Anchors an element to another element and realigns it when the window is resized. -
- Parameters: -
  • element : String/HTMLElement/Ext.Element
    The element to align to.
  • position : String
    The position to align to.
  • offsets : Array
    (optional) Offset the positioning by [x, y]
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
  • monitorScroll : Boolean/Number
    (optional) true to monitor body scroll and reposition. If this parameter is a number, it is used as the buffer delay (defaults to 50ms).
  • :
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

animate

- public function animate(Object args, [Float duration], [Function onComplete], [String easing], [String animType]) -
- Perform animation on this element. -
- Parameters: -
  • args : Object
    The YUI animation control args
  • duration : Float
    (optional) How long the animation lasts. (Defaults to .35 seconds)
  • onComplete : Function
    (optional) Function to call when animation completes.
  • easing : String
    (optional) Easing method to use. (Defaults to 'easeOut')
  • animType : String
    (optional) 'run' is the default. Can be 'color', 'motion', or 'scroll'
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

appendChild

- public function appendChild(String/HTMLElement/Array/Element/CompositeElement el) -
- Appends the passed element(s) to this element -
- Parameters: -
  • el : String/HTMLElement/Array/Element/CompositeElement
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

appendTo

- public function appendTo(String/HTMLElement/Element el) -
- Appends this element to the passed element -
- Parameters: -
  • el : String/HTMLElement/Element
    The new parent element
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

applyStyles

- public function applyStyles(String/Object/Function styles) -
- More flexible version of setStyle for setting style properties. -
- Parameters: -
  • styles : String/Object/Function
    A style specification string eg "width:100px", or object in the form {width:"100px"}, or a function which returns such a specification.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

autoHeight

- public function autoHeight([Boolean animate], [Float duration], [Function onComplete], [String easing]) -
- Measures the elements content height and updates height to match. Note, this function uses setTimeout and -the new height may not be available immediately. -
- Parameters: -
  • animate : Boolean
    (optional) Animate the transition (Default is false)
  • duration : Float
    (optional) Length of the animation. (Defaults to .35 seconds)
  • onComplete : Function
    (optional) Function to call when animation completes.
  • easing : String
    (optional) Easing method to use.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

beginMeasure

- public function beginMeasure() -
- Temporarily enables offsets (width,height,x,y) for an element with display:none, use endMeasure() when done. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

blur

- public function blur() -
- Tries to blur the element. Any exceptions are caught. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

center

- public function center([String/HTMLElement/Ext.Element centerIn]) -
- Centers the Element in either the viewport, or another Element. -
- Parameters: -
  • centerIn : String/HTMLElement/Ext.Element
    (optional) The element in which to center the element.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

child

- public function child(String selector, Boolean returnDom) -
- Selects a single child based on the passed CSS selector (the selector should not contain an id) -
- Parameters: -
  • selector : String
    The CSS selector
  • returnDom : Boolean
    true to return the DOM node instead of Ext.Element
- Returns: -
    -
  • Element
    The element
  • -
-
-
-
This method is defined by Element.
-
- -
-

clean

- public function clean([Boolean forceReclean]) -
- Removes worthless text nodes -
- Parameters: -
  • forceReclean : Boolean
    (optional) By default the element keeps track if it has been cleaned already so you can call this over and over. However, if you update the element and need to force a reclean, you can pass true.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

clearOpacity

- public function clearOpacity() -
- Clears any opacity settings from this element. Required in some cases for IE. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

clearPositioning

- public function clearPositioning([String value]) -
- Clear positioning back to the default when the document was loaded -
- Parameters: -
  • value : String
    (optional) The value to use for the left,right,top,bottom, defaults to '' (empty string). You could use 'auto'.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

clip

- public function clip() -
- Store the current overflow setting and clip overflow on the element - use unclip to remove -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

contains

- public function contains(HTMLElement/String el) -
- Returns true if this element is an ancestor of the passed element -
- Parameters: -
  • el : HTMLElement/String
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Element.
-
- -
-

createChild

- public function createChild(Object config, [HTMLElement insertBefore], [Boolean returnDom]) -
- Creates the passed DomHelper config and appends it to this element or optionally inserts it before the passed child element. -
- Parameters: -
  • config : Object
    DomHelper element config object
  • insertBefore : HTMLElement
    (optional) a child element of this element
  • returnDom : Boolean
    (optional) true to return the dom node instead of creating an Element
- Returns: -
    -
  • Ext.Element
    The new child element
  • -
-
-
-
This method is defined by Element.
-
- -
-

createProxy

- public function createProxy(String/Object config, [String/HTMLElement renderTo], [Boolean matchBox]) -
- Creates a proxy element of this element -
- Parameters: -
  • config : String/Object
    The class name of the proxy element or a DomHelper config object
  • renderTo : String/HTMLElement
    (optional) The element or element id to render the proxy to (defaults to document.body)
  • matchBox : Boolean
    (optional) True to align and size the proxy to this element now (defaults to false)
- Returns: -
    -
  • Ext.Element
    The new proxy element
  • -
-
-
-
This method is defined by Element.
-
- -
-

createShim

- public function createShim() -
- Creates an iframe shim for this element to keep selects and other windowed objects from -showing through. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The new shim element
  • -
-
-
-
This method is defined by Element.
-
- -
-

down

- public function down(String selector, Boolean returnDom) -
- Selects a single *direct* child based on the passed CSS selector (the selector should not contain an id) -
- Parameters: -
  • selector : String
    The CSS selector
  • returnDom : Boolean
    true to return the DOM node instead of Ext.Element
- Returns: -
    -
  • Element
    The element
  • -
-
-
-
This method is defined by Element.
-
- -
-

enableDisplayMode

- public function enableDisplayMode([String display]) -
- Convenience method for setVisibilityMode(Element.DISPLAY) -
- Parameters: -
  • display : String
    (optional) What to set display to when visible
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

endMeasure

- public function endMeasure() -
- Restores displays to before beginMeasure was called -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

findParent

- public function findParent(String ss, [Number/String/HTMLElement/Element maxDepth], [Boolean returnEl]) -
- Looks at this node and then at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:first-child) -
- Parameters: -
  • ss : String
    The simple selector to test
  • maxDepth : Number/String/HTMLElement/Element
    (optional) The max depth to search as a number or element (defaults to 10 || document.body)
  • returnEl : Boolean
    (optional) True to return a Ext.Element object instead of DOM node
- Returns: -
    -
  • HTMLElement
  • -
-
-
-
This method is defined by Element.
-
- -
-

findParentNode

- public function findParentNode(String ss, [Number/String/HTMLElement/Element maxDepth], [Boolean returnEl]) -
- Looks at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:first-child) -
- Parameters: -
  • ss : String
    The simple selector to test
  • maxDepth : Number/String/HTMLElement/Element
    (optional) The max depth to search as a number or element (defaults to 10 || document.body)
  • returnEl : Boolean
    (optional) True to return a Ext.Element object instead of DOM node
- Returns: -
    -
  • HTMLElement
  • -
-
-
-
This method is defined by Element.
-
- -
-

fitToParent

- public function fitToParent([Boolean monitorResize], [String/HTMLElment/Element targetParent]) -
- Sizes this element to its parent element's dimensions performing -neccessary box adjustments. -
- Parameters: -
  • monitorResize : Boolean
    (optional) If true maintains the fit when the browser window is resized.
  • targetParent : String/HTMLElment/Element
    (optional) The target parent, default to the parentNode.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

focus

- public function focus() -
- Tries to focus the element. Any exceptions are caught. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

getAlignToXY

- public function getAlignToXY(String/HTMLElement/Ext.Element element, String position, [Array offsets]) -
- Gets the x,y coordinates to align this element with another element. See alignTo for more info on the -supported position values. -
- Parameters: -
  • element : String/HTMLElement/Ext.Element
    The element to align to.
  • position : String
    The position to align to.
  • offsets : Array
    (optional) Offset the positioning by [x, y]
- Returns: -
    -
  • Array
    [x, y]
  • -
-
-
-
This method is defined by Element.
-
- -
-

getAnchorXY

- public function getAnchorXY([String anchor], [Object size], [Boolean local]) -
- Gets the x,y coordinates specified by the anchor position on the element. -
- Parameters: -
  • anchor : String
    (optional) The specified anchor position (defaults to "c"). See alignTo for details on supported anchor positions.
  • size : Object
    (optional) An object containing the size to use for calculating anchor position {width: (target width), height: (target height)} (defaults to the element's current size)
  • local : Boolean
    (optional) True to get the local (element top/left-relative) anchor position instead of page coordinates
- Returns: -
    -
  • Array
    [x, y] An array containing the element's x and y coordinates
  • -
-
-
-
This method is defined by Element.
-
- -
-

getBorderWidth

- public function getBorderWidth(String side) -
- Gets the width of the border(s) for the specified side(s) -
- Parameters: -
  • side : String
    Can be t, l, r, b or any combination of those to add multiple values. For example, passing lr would get the border (l)eft width + the border (r)ight width.
- Returns: -
    -
  • Number
    The width of the sides passed added together
  • -
-
-
-
This method is defined by Element.
-
- -
-

getBottom

- public function getBottom(Boolean local) -
- Gets the bottom Y coordinate of the element (element Y position + element height) -
- Parameters: -
  • local : Boolean
    True to get the local css position instead of page coordinate
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getBox

- public function getBox([Boolean contentBox], [Boolean local]) -
- Return a box {x, y, width, height} that can be used to set another elements -size/location to match this element. -
- Parameters: -
  • contentBox : Boolean
    (optional) If true a box for the content of the element is returned.
  • local : Boolean
    (optional) If true the element's left and top are returned instead of page x/y.
- Returns: -
    -
  • Object
  • -
-
-
-
This method is defined by Element.
-
- -
-

getCenterXY

- public function getCenterXY() -
- Calculates the x, y to center this element on the screen -
- Parameters: -
  • None.
- Returns: -
    -
  • Array
    The x, y values [x, y]
  • -
-
-
-
This method is defined by Element.
-
- -
-

getColor

- public function getColor(String attr, String defaultValue, [String prefix]) -
- Return the CSS color for the specified CSS attribute. rgb, 3 digit (like #fff) and valid values -are convert to standard 6 digit hex color. -
- Parameters: -
  • attr : String
    The css attribute
  • defaultValue : String
    The default value to use when a valid color isn't found
  • prefix : String
    (optional) defaults to #. Use an empty string when working with YUI color anims.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

getComputedHeight

- public function getComputedHeight() -
- Returns either the offsetHeight or the height of this element based on CSS height adjusted by padding or borders -when needed to simulate offsetHeight when offsets aren't available. This may not work on display:none elements -if a height has not been set using CSS. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getComputedWidth

- public function getComputedWidth() -
- Returns either the offsetWidth or the width of this element based on CSS width adjusted by padding or borders -when needed to simulate offsetWidth when offsets aren't available. This may not work on display:none elements -if a width has not been set using CSS. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getFrameWidth

- public function getFrameWidth(String sides) -
- Returns the sum width of the padding and borders for the passed "sides". See getBorderWidth() - for more information about the sides. -
- Parameters: -
  • sides : String
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getHeight

- public function getHeight([Boolean contentHeight]) -
- Returns the offset height of the element -
- Parameters: -
  • contentHeight : Boolean
    (optional) true to get the height minus borders and padding
- Returns: -
    -
  • Number
    The element's height
  • -
-
-
-
This method is defined by Element.
-
- -
-

getLeft

- public function getLeft(Boolean local) -
- Gets the left X coordinate -
- Parameters: -
  • local : Boolean
    True to get the local css position instead of page coordinate
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getMargins

- public function getMargins([String sides]) -
- Returns an object with properties top, left, right and bottom representing the margins of this element unless sides is passed, -then it returns the calculated width of the sides (see getPadding) -
- Parameters: -
  • sides : String
    (optional) Any combination of l, r, t, b to get the sum of those sides
- Returns: -
    -
  • Object/Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getNextSibling

- public function getNextSibling() -
- Gets the next sibling, skipping text nodes -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    The next sibling or null
  • -
-
-
-
This method is defined by Element.
-
- -
-

getPadding

- public function getPadding(String side) -
- Gets the width of the padding(s) for the specified side(s) -
- Parameters: -
  • side : String
    Can be t, l, r, b or any combination of those to add multiple values. For example, passing lr would get the padding (l)eft + the padding (r)ight.
- Returns: -
    -
  • Number
    The padding of the sides passed added together
  • -
-
-
-
This method is defined by Element.
-
- -
-

getPositioning

- public function getPositioning() -
- Gets an object with all CSS positioning properties. Useful along with setPostioning to get -snapshot before performing an update and then restoring the element. -
- Parameters: -
  • None.
- Returns: -
    -
  • Object
  • -
-
-
-
This method is defined by Element.
-
- -
-

getPrevSibling

- public function getPrevSibling() -
- Gets the previous sibling, skipping text nodes -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    The previous sibling or null
  • -
-
-
-
This method is defined by Element.
-
- -
-

getRegion

- public function getRegion() -
- Returns the region of the given element. -The element must be part of the DOM tree to have a region (display:none or elements not appended return false). -
- Parameters: -
  • None.
- Returns: -
    -
  • Region
    A Ext.lib.Region containing "top, left, bottom, right" member data.
  • -
-
-
-
This method is defined by Element.
-
- -
-

getRight

- public function getRight(Boolean local) -
- Gets the right X coordinate of the element (element X position + element width) -
- Parameters: -
  • local : Boolean
    True to get the local css position instead of page coordinate
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getSize

- public function getSize([Boolean contentSize]) -
- Returns the size of the element -
- Parameters: -
  • contentSize : Boolean
    (optional) true to get the width/size minus borders and padding
- Returns: -
    -
  • Object
    An object containing the element's size {width: (element width), height: (element height)}
  • -
-
-
-
This method is defined by Element.
-
- -
-

getStyle

- public function getStyle(String property) -
- Normalizes currentStyle and computedStyle. This is not YUI getStyle, it is an optimised version. -
- Parameters: -
  • property : String
    The style property whose value is returned.
- Returns: -
    -
  • String
    The current value of the style property for this element.
  • -
-
-
-
This method is defined by Element.
-
- -
-

getStyles

- public function getStyles(String style1, String style2, String etc) -
- Get an object with properties matching the styles requested. -e.g. el.getStyles('color', 'font-size', 'width') might return -{'color': '#FFFFFF', 'font-size': '13px', 'width': '100px'}. -
- Parameters: -
  • style1 : String
  • style2 : String
  • etc : String
- Returns: -
    -
  • Object
  • -
-
-
-
This method is defined by Element.
-
- -
-

getTop

- public function getTop(Boolean local) -
- Gets the top Y coordinate -
- Parameters: -
  • local : Boolean
    True to get the local css position instead of page coordinate
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getUpdateManager

- public function getUpdateManager() -
- Gets this elements UpdateManager -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.UpdateManager
    The UpdateManager
  • -
-
-
-
This method is defined by Element.
-
- -
-

getValue

- public function getValue(Boolean asNumber) -
- Returns the value of the "value" attribute -
- Parameters: -
  • asNumber : Boolean
    true to parse the value as a number
- Returns: -
    -
  • String/Number
  • -
-
-
-
This method is defined by Element.
-
- -
-

getWidth

- public function getWidth([Boolean contentWidth]) -
- Returns the offset width of the element -
- Parameters: -
  • contentWidth : Boolean
    (optional) true to get the width minus borders and padding
- Returns: -
    -
  • Number
    The element's width
  • -
-
-
-
This method is defined by Element.
-
- -
-

getX

- public function getX() -
- Gets the current X position of the element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
    The X position of the element
  • -
-
-
-
This method is defined by Element.
-
- -
-

getXY

- public function getXY() -
- Gets the current position of the element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • None.
- Returns: -
    -
  • Array
    The XY position of the element
  • -
-
-
-
This method is defined by Element.
-
- -
-

getY

- public function getY() -
- Gets the current Y position of the element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
    The Y position of the element
  • -
-
-
-
This method is defined by Element.
-
- -
-

hasClass

- public function hasClass(String className) -
- Checks if a CSS class is in use by the element. -
- Parameters: -
  • className : String
    The CSS class to check
- Returns: -
    -
  • Boolean
    true or false
  • -
-
-
-
This method is defined by Element.
-
- -
-

hide

- public function hide([Boolean/Object animate]) -
- Hide this element - Uses display mode to determine whether to use "display" or "visibility". See setVisible. -
- Parameters: -
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

initDD

- public function initDD(String group, Object config, Object overrides) -
- Initializes a Ext.dd.DD object for this element. -
- Parameters: -
  • group : String
    The group the DD object is member of
  • config : Object
    The DD config object
  • overrides : Object
    An object containing methods to override/implement on the DD object
- Returns: -
    -
  • Ext.dd.DD
    The DD object
  • -
-
-
-
This method is defined by Element.
-
- -
-

initDDProxy

- public function initDDProxy(String group, Object config, Object overrides) -
- Initializes a Ext.dd.DDProxy object for this element. -
- Parameters: -
  • group : String
    The group the DDProxy object is member of
  • config : Object
    The DDProxy config object
  • overrides : Object
    An object containing methods to override/implement on the DDProxy object
- Returns: -
    -
  • Ext.dd.DDProxy
    The DDProxy object
  • -
-
-
-
This method is defined by Element.
-
- -
-

initDDTarget

- public function initDDTarget(String group, Object config, Object overrides) -
- Initializes a Ext.dd.DDTarget object for this element. -
- Parameters: -
  • group : String
    The group the DDTarget object is member of
  • config : Object
    The DDTarget config object
  • overrides : Object
    An object containing methods to override/implement on the DDTarget object
- Returns: -
    -
  • Ext.dd.DDTarget
    The DDTarget object
  • -
-
-
-
This method is defined by Element.
-
- -
-

insertAfter

- public function insertAfter(String/HTMLElement/Element el) -
- Inserts this element after the passed element in the DOM -
- Parameters: -
  • el : String/HTMLElement/Element
    The element to insert after
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

insertBefore

- public function insertBefore(String/HTMLElement/Element el) -
- Inserts this element before the passed element in the DOM -
- Parameters: -
  • el : String/HTMLElement/Element
    The element to insert before
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

insertFirst

- public function insertFirst(String/HTMLElement/Element/Object el) -
- Inserts (or creates) an element (or DomHelper config) as the first child of the this element -
- Parameters: -
  • el : String/HTMLElement/Element/Object
    The id or element to insert or a DomHelper config to create and insert
- Returns: -
    -
  • Ext.Element
    The new child
  • -
-
-
-
This method is defined by Element.
-
- -
-

insertHtml

- public function insertHtml(String where, String html) -
- Inserts an html fragment into this element -
- Parameters: -
  • where : String
    Where to insert the html in relation to the this element - beforeBegin, afterBegin, beforeEnd, afterEnd.
  • html : String
    The HTML fragment
- Returns: -
    -
  • HTMLElement
    The inserted node (or nearest related if more than 1 inserted)
  • -
-
-
-
This method is defined by Element.
-
- -
-

insertSibling

- public function insertSibling(String/HTMLElement/Element/Object el, [String where], [Boolean returnDom]) -
- Inserts (or creates) the passed element (or DomHelper config) as a sibling of this element -
- Parameters: -
  • el : String/HTMLElement/Element/Object
    The id or element to insert or a DomHelper config to create and insert
  • where : String
    (optional) 'before' or 'after' defaults to before
  • returnDom : Boolean
    (optional) True to return the raw DOM element instead of Ext.Element
- Returns: -
    -
  • Ext.Element
    the inserted Element
  • -
-
-
-
This method is defined by Element.
-
- -
-

is

- public function is(String ss) -
- Returns true if this element matches the passed simple selector (e.g. div.some-class or span:first-child) -
- Parameters: -
  • ss : String
    The simple selector to test
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Element.
-
- -
-

isBorderBox

- public function isBorderBox() -
- Tests various css rules/browsers to determine if this element uses a border box -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Element.
-
- -
-

isDisplayed

- public function isDisplayed() -
- Returns true if display is not "none" -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Element.
-
- -
-

isMasked

- public function isMasked() -
- Returns true if this element is masked -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Element.
-
- -
-

isScrollable

- public function isScrollable() -
- Returns true if this element is scrollable. -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Element.
-
- -
-

isVisible

- public function isVisible(Boolean deep) -
- Checks whether the element is currently visible using both visibility and display properties. -
- Parameters: -
  • deep : Boolean
    True to walk the dom and see if parent elements are hidden.
- Returns: -
    -
  • Boolean
    true if the element is currently visible
  • -
-
-
-
This method is defined by Element.
-
- -
-

load

- public function load(String/Function url, [String/Object params], [Function callback], [Boolean discardUrl]) -
- Direct access to the UpdateManager update() method (takes the same parameters). -
- Parameters: -
  • url : String/Function
    The url for this request or a function to call to get the url
  • params : String/Object
    (optional) The parameters to pass as either a url encoded string "param1=1&param2=2" or an object {param1: 1, param2: 2}
  • callback : Function
    (optional) Callback when transaction is complete - called with signature (oElement, bSuccess)
  • discardUrl : Boolean
    (optional) By default when you execute an update the defaultUrl is changed to the last used url. If true, it will not store the url.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

mask

- public function mask([String msg], [String msgCls]) -
- Puts a mask over this element to disable user interaction. Requires core.css. -This method can only be applied to elements which accept child nodes. -
- Parameters: -
  • msg : String
    (optional) A message to display in the mask
  • msgCls : String
    (optional) A css class to apply to the msg element
- Returns: -
    -
  • Element
    The message element
  • -
-
-
-
This method is defined by Element.
-
- -
-

move

- public function move(String direction, Number distance, [Boolean/Object animate]) -
- Move this element relative to its current position. -
- Parameters: -
  • direction : String
    Possible values are: "l","left" - "r","right" - "t","top","up" - "b","bottom","down".
  • distance : Number
    How far to move the element in pixels
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

moveTo

- public function moveTo(Number x, Number y, [Boolean/Object animate]) -
- Set the position of the element in page coordinates, regardless of how the element is positioned. -The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • x : Number
    X value for new position (coordinates are page-based)
  • y : Number
    Y value for new position (coordinates are page-based)
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

position

- public function position([String pos], [Number zIndex], [Number x], [Number y]) -
- Initializes positioning on this element. If a desired position is not passed, it will make the -the element positioned relative IF it is not already positioned. -
- Parameters: -
  • pos : String
    (optional) Positioning to use "relative", "absolute" or "fixed"
  • zIndex : Number
    (optional) The zIndex to apply
  • x : Number
    (optional) Set the page X position
  • y : Number
    (optional) Set the page Y position
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

query

- public function query(String selector) -
- Selects child nodes based on the passed CSS selector (the selector should not contain an id) -
- Parameters: -
  • selector : String
    The CSS selector
- Returns: -
    -
  • Array
    An array of the matched nodes
  • -
-
-
-
This method is defined by Element.
-
- -
-

radioClass

- public function radioClass(String className) -
- Adds the passed className to this element and removes the class from all siblings -
- Parameters: -
  • className : String
    The className to add
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

remove

- public function remove() -
- Removes this element from the DOM and deletes it from the cache -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

removeAllListeners

- public function removeAllListeners() -
- Removes all previous added listeners from this element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

removeClass

- public function removeClass(String/Array className) -
- Removes a CSS class from the element. -
- Parameters: -
  • className : String/Array
    The CSS class to remove or an array of classes
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

removeListener

- public function removeListener(String eventName, Function fn) -
- Removes an event handler from this element -
- Parameters: -
  • eventName : String
    the type of event to remove
  • fn : Function
    the method the event invokes
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

repaint

- public function repaint() -
- Forces the browser to repaint this element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

replace

- public function replace(String/HTMLElement/Element el) -
- Replaces the passed element with this element -
- Parameters: -
  • el : String/HTMLElement/Element
    The element to replace
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

replaceClass

- public function replaceClass(String oldClassName, String newClassName) -
- Replaces a CSS class on the element with another. -
- Parameters: -
  • oldClassName : String
    The CSS class to replace
  • newClassName : String
    The replacement CSS class
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

scroll

- public function scroll(String direction, Number distance, [Boolean/Object animate]) -
- Scrolls this element the specified direction. Does bounds checking to make sure the scroll is -within this elements scrollable range. -
- Parameters: -
  • direction : String
    Possible values are: "l","left" - "r","right" - "t","top","up" - "b","bottom","down".
  • distance : Number
    How far to scroll the element in pixels
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Boolean
    Returns true if a scroll was triggered or false if the element was scrolled as far as it could go.
  • -
-
-
-
This method is defined by Element.
-
- -
-

scrollIntoView

- public function scrollIntoView([String/HTMLElement/Element container], [Boolean hscroll]) -
- Scrolls this element into view within the passed container. -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The container element to scroll (defaults to document.body)
  • hscroll : Boolean
    (optional) false to disable horizontal scroll
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

scrollTo

- public function scrollTo(String side, Number value, [Boolean/Object animate]) -
- Scrolls this element the specified scroll point. It does NOT do bounds checking so if you scroll to a weird value it will try to do it. For auto bounds checking, use scroll(). -
- Parameters: -
  • side : String
    Either "left" for scrollLeft values or "top" for scrollTop values.
  • value : Number
    The new scroll value
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

select

- public function select(String selector, Boolean unique) -
- Creates a CompositeElement for child nodes based on the passed CSS selector (the selector should not contain an id) -
- Parameters: -
  • selector : String
    The CSS selector
  • unique : Boolean
    true to create a unique Ext.Element for each child (defaults to a shared flyweight object)
- Returns: -
    -
  • CompositeElement/CompositeElementLite
    The composite element
  • -
-
-
-
This method is defined by Element.
-
- -
-

set

- public function set(Object o, [Boolean useSet]) -
- Sets the passed attributes as attributes of this element (a style attribute can be a string, object or function) -
- Parameters: -
  • o : Object
    The object with the attributes
  • useSet : Boolean
    (optional) false to override the default setAttribute to use expandos.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setBottom

- public function setBottom(String bottom) -
- Set the element's css bottom style -
- Parameters: -
  • bottom : String
    The bottom CSS property value
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setBounds

- public function setBounds(Number x, Number y, Number width, Number height, [Boolean/Object animate]) -
- Sets the element's position and size in one shot. If animation is true then width, height, x and y will be animated concurrently. -
- Parameters: -
  • x : Number
    X value for new position (coordinates are page-based)
  • y : Number
    Y value for new position (coordinates are page-based)
  • width : Number
    The new width
  • height : Number
    The new height
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setBox

- public function setBox(Object box, [Boolean adjust], [Boolean/Object animate]) -
- Sets the element's box. Use getBox() on another element to get a box obj. If animate is true then width, height, x and y will be animated concurrently. -
- Parameters: -
  • box : Object
    The box to fill {x, y, width, height}
  • adjust : Boolean
    (optional) Whether to adjust for box-model issues automatically
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setDisplayed

- public function setDisplayed(Boolean value) -
- Sets the css display. Uses originalDisplay if value is a boolean true. -
- Parameters: -
  • value : Boolean
    Boolean to display the element using its default display or a string to set the display directly
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setHeight

- public function setHeight(Number height, [Boolean/Object animate]) -
- Set the height of the element -
- Parameters: -
  • height : Number
    The new height
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setLeft

- public function setLeft(String left) -
- Set the element's left position directly using CSS style (instead of setX()) -
- Parameters: -
  • left : String
    The left CSS property value
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setLeftTop

- public function setLeftTop() -
- Quick set left and top adding default units -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setLocation

- public function setLocation(Number x, Number y, [Boolean/Object animate]) -
- Set the position of the element in page coordinates, regardless of how the element is positioned. -The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • x : Number
    X value for new position (coordinates are page-based)
  • y : Number
    Y value for new position (coordinates are page-based)
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setOpacity

- public function setOpacity(Float opacity, [Boolean/Object animate]) -
- Set the opacity of the element -
- Parameters: -
  • opacity : Float
    The new opacity. 0 = transparent, .5 = 50% visibile, 1 = fully visible, etc
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setPositioning

- public function setPositioning(Object posCfg) -
- Set positioning with an object returned by getPositioning(). -
- Parameters: -
  • posCfg : Object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setRegion

- public function setRegion(Ext.lib.Region region, [Boolean/Object animate]) -
- Sets the element's position and size the the specified region. If animation is true then width, height, x and y will be animated concurrently. -
- Parameters: -
  • region : Ext.lib.Region
    The region to fill
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setRight

- public function setRight(String right) -
- Set the element's css right style -
- Parameters: -
  • right : String
    The right CSS property value
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setSize

- public function setSize(Number width, Number height, [Boolean/Object animate]) -
- Set the size of the element. If animation is true, both width an height will be animated concurrently. -
- Parameters: -
  • width : Number
    The new width
  • height : Number
    The new height
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setStyle

- public function setStyle(String/Object property, [String val]) -
- Wrapper for setting style properties, also takes single object parameter of multiple styles -
- Parameters: -
  • property : String/Object
    The style property to be set or an object of multiple styles.
  • val : String
    (optional) The value to apply to the given property or null if an object was passed.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setTop

- public function setTop(String top) -
- Set the element's top position directly using CSS style (instead of setY()) -
- Parameters: -
  • top : String
    The top CSS property value
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setVisibilityMode

- public function setVisibilityMode(visMode Element.VISIBILITY) -
- Sets the elements visibility mode. When setVisible() is called it -will use this to determine whether to set the visibility or the display property. -
- Parameters: -
  • Element.VISIBILITY : visMode
    or Element.DISPLAY
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setVisible

- public function setVisible(Boolean visible, [Boolean/Object animate]) -
- Sets the visibility of the element (see details). If the visibilityMode is set to Element.DISPLAY, it will use -the display property to hide the element, otherwise it uses visibility. The default is to hide and show using the visibility property. -
- Parameters: -
  • visible : Boolean
    Whether the element is visible
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setWidth

- public function setWidth(Number width, [Boolean/Object animate]) -
- Set the width of the element -
- Parameters: -
  • width : Number
    The new width
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setX

- public function setX(Number The, [Boolean/Object animate]) -
- Sets the X position of the element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • The : Number
    X position of the element
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setXY

- public function setXY(Array pos, [Boolean/Object animate]) -
- Set the position of the element in page coordinates, regardless of how the element is positioned. -The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • pos : Array
    Contains X & Y [x, y] values for new position (coordinates are page-based)
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setY

- public function setY(Number The, [Boolean/Object animate]) -
- Sets the Y position of the element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
- Parameters: -
  • The : Number
    Y position of the element
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

setZIndex

- public function setZIndex(Number zindex) -
- Set the z-index of this layer and adjusts any shadow and shim z-indexes. The layer z-index is automatically -incremented by two more than the value passed in so that it always shows above any shadow or shim (the shadow -element, if any, will be assigned z-index + 1, and the shim element, if any, will be assigned the unmodified z-index). -
- Parameters: -
  • zindex : Number
    The new z-index to set
- Returns: -
    -
  • this
    The Layer
  • -
-
-
-
This method is defined by Layer.
-
- -
-

show

- public function show([Boolean/Object animate]) -
- Show this element - Uses display mode to determine whether to use "display" or "visibility". See setVisible. -
- Parameters: -
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

swallowEvent

- public function swallowEvent(String eventName, [Boolean preventDefault]) -
- Stops the specified event from bubbling and optionally prevents the default action -
- Parameters: -
  • eventName : String
  • preventDefault : Boolean
    (optional) true to prevent the default action too
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

toggle

- public function toggle([Boolean/Object animate]) -
- Toggles the elements visibility or display, depending on visibility mode. -
- Parameters: -
  • animate : Boolean/Object
    (optional) true for the default animation or a standard Element animation config object
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

toggleClass

- public function toggleClass(String className) -
- Toggles (adds or removes) the passed class. -
- Parameters: -
  • className : String
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

translatePoints

- public function translatePoints(Number/Array x, Number y, Object An) -
- Translates the passed page coordinates into left/top css values for this element -
- Parameters: -
  • x : Number/Array
    The page x or an array containing [x, y]
  • y : Number
    The page y
  • An : Object
    object with left and top properties. e.g. {left: (value), top: (value)}
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

unclip

- public function unclip() -
- Return clipping (overflow) to original clipping before clip() was called -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

unmask

- public function unmask() -
- Removes a previously applied mask. If removeEl is true the mask overlay is destroyed, otherwise -it is cached for reuse. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Element.
-
- -
-

unselectable

- public function unselectable() -
- Disables text selection for this element (normalized across browsers) -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

up

- public function up(String ss, [Number/String/HTMLElement/Element maxDepth]) -
- Walks up the dom looking for a parent node that matches the passed simple selector (e.g. div.some-class or span:first-child). -This is a shortcut for findParentNode() that always returns an Ext.Element. -
- Parameters: -
  • ss : String
    The simple selector to test
  • maxDepth : Number/String/HTMLElement/Element
    (optional) The max depth to search as a number or element (defaults to 10 || document.body)
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by Element.
-
- -
-

update

- public function update(String html, [Boolean loadScripts], Function callback) -
- Update the innerHTML of this element, optionally searching for and processing scripts -
- Parameters: -
  • html : String
    The new HTML
  • loadScripts : Boolean
    (optional) true to look for and process scripts
  • callback : Function
    For async script loading you can be noticed when the update completes
- Returns: -
    -
  • Ext.Element
    this
  • -
-
-
-
This method is defined by Element.
-
- -
-

wrap

- public function wrap([Object config], [Boolean returnDom]) -
- Creates and wraps this element with another element -
- Parameters: -
  • config : Object
    (optional) DomHelper element config object for the wrapper element or null for an empty div
  • returnDom : Boolean
    (optional) True to return the raw DOM element instead of Ext.Element
- Returns: -
    -
  • /HTMLElementElement
    The newly created wrapper element
  • -
-
-
-
This method is defined by Element.
-
-
- -

Config Details

-
- -
-

cls

- cls : String -
- CSS class to add to the element
-
This config option is defined by Layer.
-
- -
-

constrain

- constrain : Boolean -
- False to disable constrain to viewport (defaults to true)
-
This config option is defined by Layer.
-
- -
-

dh

- dh : Object -
- DomHelper object config to create element with (defaults to {tag: "div", cls: "x-layer"}).
-
This config option is defined by Layer.
-
- -
-

shadow

- shadow : String/Boolean -
- True to create a shadow element with default class "x-layer-shadow" or you can pass a string with a css class name. False turns off the shadow.
-
This config option is defined by Layer.
-
- -
-

shadowOffset

- shadowOffset : Number -
- Number of pixels to offset the shadow (defaults to 3)
-
This config option is defined by Layer.
-
- -
-

shim

- shim : Boolean -
- False to disable the iframe shim in browsers which need one (defaults to true)
-
This config option is defined by Layer.
-
- -
-

zindex

- zindex : Number -
- Starting z-index (defaults to 11000!)
-
This config option is defined by Layer.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.LayoutDialog.html b/www/extras/extjs/docs/output/Ext.LayoutDialog.html deleted file mode 100644 index 78f90b647..000000000 --- a/www/extras/extjs/docs/output/Ext.LayoutDialog.html +++ /dev/null @@ -1,1660 +0,0 @@ - - - - Ext.LayoutDialog - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.LayoutDialog

- - - - - -
Package:Ext
Class:LayoutDialog
Extends:BasicDialog
Defined In:BasicDialog.js
-
- Dialog which provides adjustments for working with a layout in a Dialog. -Add your neccessary layout config options to the dialogs config.
-Example Usage (including a nested layout): -
if(!dialog){
-    dialog = new Ext.LayoutDialog("download-dlg", {
-            modal: true,
-            width:600,
-            height:450,
-            shadow:true,
-            minWidth:500,
-            minHeight:350,
-            autoTabs:true,
-            proxyDrag:true,
-            // layout config merges with the dialog config
-            center:{
-                tabPosition: "top",
-                alwaysShowTabs: true
-            }
-    });
-    dialog.addKeyListener(27, dialog.hide, dialog);
-    dialog.setDefaultButton(dialog.addButton("Close", dialog.hide, dialog));
-    dialog.addButton("Build It!", this.getDownload, this);
-
-    // we can even add nested layouts
-    var innerLayout = new Ext.BorderLayout("dl-inner", {
-        east: {
-            initialSize: 200,
-            autoScroll:true,
-            split:true
-        },
-        center: {
-            autoScroll:true
-        }
-    });
-    innerLayout.beginUpdate();
-    innerLayout.add("east", new Ext.ContentPanel("dl-details"));
-    innerLayout.add("center", new Ext.ContentPanel("selection-panel"));
-    innerLayout.endUpdate(true);
-
-    var layout = dialog.getLayout();
-    layout.beginUpdate();
-    layout.add("center", new Ext.ContentPanel("standard-panel",
-                        {title: "Download the Source", fitToFrame:true}));
-    layout.add("center", new Ext.NestedLayoutPanel(innerLayout,
-               {title: "Build your own ext.js"}));
-    layout.getRegion("center").showPanel(sp);
-    layout.endUpdate();
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 body : Ext.ElementBasicDialog
The body element
 buttons : ArrayBasicDialog
Array of all the buttons that have been added to this dialog via addButton
 footer : Ext.ElementBasicDialog
The footer element
 header : Ext.ElementBasicDialog
The header element
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 LayoutDialog(String/HTMLElement/Ext.Element el, Object config)LayoutDialog
 addButton(String/Object config, Function handler, [Object scope]) : Ext.ButtonBasicDialog
Adds a button to the footer section of the dialog.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addKeyListener(Number/Array/Object key, Function fn, [Object scope]) : Ext.BasicDialogBasicDialog
Adds a key listener for when this dialog is displayed. This allows you to hook in a function that will be -executed i...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 alignTo(String/HTMLElement/Ext.Element element, String position, [Array offsets]) : Ext.BasicDialogBasicDialog
Aligns the dialog to the specified element
 anchorTo(String/HTMLElement/Ext.Element element, String position, [Array offsets], [Boolean/Number monitorScroll]) : Ext.BasicDialogBasicDialog
Anchors an element to another element and realigns it when the window is resized.
 beginUpdate() : voidLayoutDialog
Deprecated. Begins an update of the layout and sets display to block and visibility to hidden. Use standard beginUpda...
 center() : Ext.BasicDialogBasicDialog
Centers this dialog in the viewport
 collapse() : voidBasicDialog
Collapses the dialog to its minimized state (only the title bar is visible). -Equivalent to the user clicking the coll...
 destroy([Boolean removeEl]) : voidBasicDialog
Destroys this dialog and all its supporting elements (including any tabs, shim, -shadow, proxy, mask, etc.) Also remo...
 endUpdate() : voidLayoutDialog
Deprecated. Ends update of the layout and resets display to none. Use standard beginUpdate/endUpdate on the layout.
 expand() : voidBasicDialog
Expands a collapsed dialog back to its normal state. Equivalent to the user -clicking the expand dialog button.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus() : voidBasicDialog
Focuses the dialog. If a defaultButton is set, it will receive focus, otherwise the -dialog itself will receive focus.
 getEl() : Ext.ElementBasicDialog
Returns the element for this dialog
 getLayout() : Ext.BorderLayoutLayoutDialog
Get the BorderLayout for this dialog
 getTabs() : Ext.TabPanelBasicDialog
Returns the TabPanel component (creates it if it doesn't exist). -Note: If you wish to simply check for the existence ...
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide([Function callback]) : Ext.BasicDialogBasicDialog
Hides the dialog.
 initTabs() : Ext.TabPanelBasicDialog
Reinitializes the tabs component, clearing out old tabs and finding new ones.
 isVisible() : BooleanBasicDialog
Returns true if the dialog is visible
 moveTo(Number x, Number y) : Ext.BasicDialogBasicDialog
Moves the dialog's top-left corner to the specified point
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 resizeTo(Number width, Number height) : Ext.BasicDialogBasicDialog
Resizes the dialog.
 restoreState() : Ext.BasicDialogBasicDialog
Restores the previous state of the dialog if Ext.state is configured.
 setContentSize(Number width, Number height) : Ext.BasicDialogBasicDialog
Resizes the dialog to fit the specified content size.
 setDefaultButton(Ext.BasicDialog.Button btn) : Ext.BasicDialogBasicDialog
Sets the default button to be focused when the dialog is displayed.
 setTitle(String text) : Ext.BasicDialogBasicDialog
Sets the dialog title text
 show([String/HTMLElement/Ext.Element animateTarget]) : Ext.BasicDialogBasicDialog
Shows the dialog.
 toBack() : Ext.BasicDialogBasicDialog
Sends this dialog to the back (under) of any other visible dialogs
 toFront() : Ext.BasicDialogBasicDialog
Brings this dialog to the front of any other visible dialogs
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforehide : (Ext.BasicDialog this)BasicDialog
Fires before this dialog is hidden.
 beforeshow : (Ext.BasicDialog this)BasicDialog
Fires before this dialog is shown.
 hide : (Ext.BasicDialog this)BasicDialog
Fires when this dialog is hidden.
 keydown : (Ext.BasicDialog this, Ext.EventObject e)BasicDialog
Fires when a key is pressed
 move : (Ext.BasicDialog this, Number x, Number y)BasicDialog
Fires when this dialog is moved by the user.
 resize : (Ext.BasicDialog this, Number width, Number height)BasicDialog
Fires when this dialog is resized by the user.
 show : (Ext.BasicDialog this)BasicDialog
Fires when this dialog is shown.
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 animateTarget : String/ElementBasicDialog
Id or element from which the dialog should animate while opening (defaults to null with no animation)
 autoCreate : Boolean/DomHelperBasicDialog
True to auto create from scratch, or using a DomHelper Object (defaults to false)
 autoScroll : BooleanBasicDialog
True to allow the dialog body contents to overflow and display scrollbars (defaults to false)
 autoTabs : BooleanBasicDialog
If true, all elements with class 'x-dlg-tab' will get automatically converted to tabs (defaults to false)
 buttonAlign : StringBasicDialog
Valid values are "left," "center" and "right" (defaults to "right")
 closable : BooleanBasicDialog
False to remove the built-in top-right corner close button (defaults to true)
 collapsible : BooleanBasicDialog
False to remove the built-in top-right corner collapse button (defaults to true)
 constraintoviewport : BooleanBasicDialog
True to keep the dialog constrained within the visible viewport boundaries (defaults to true)
 draggable : BooleanBasicDialog
False to disable dragging of the dialog within the viewport (defaults to true)
 fixedcenter : BooleanBasicDialog
True to ensure that anytime the dialog is shown or resized it gets centered (defaults to false)
 height : NumberBasicDialog
Height of the dialog in pixels (can also be set via CSS). Determined by browser if unspecified.
 minButtonWidth : NumberBasicDialog
Minimum width of all dialog buttons (defaults to 75)
 minHeight : NumberBasicDialog
The minimum allowable height for a resizable dialog (defaults to 80)
 minWidth : NumberBasicDialog
The minimum allowable width for a resizable dialog (defaults to 200)
 modal : BooleanBasicDialog
True to show the dialog modally, preventing user interaction with the rest of the page (defaults to false)
 proxyDrag : BooleanBasicDialog
True to drag a lightweight proxy element rather than the dialog itself, used when draggable = true (defaults to false)
 resizable : BooleanBasicDialog
False to disable manual dialog resizing (defaults to true)
 resizeHandles : StringBasicDialog
Which resize handles to display - see the Ext.Resizable handles config property for valid values (defaults to 'all')
 shadow : Boolean/StringBasicDialog
True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right shadow (defaults to false)
 shadowOffset : NumberBasicDialog
The number of pixels to offset the shadow if displayed (defaults to 5)
 shim : BooleanBasicDialog
True to create an iframe shim that prevents selects from showing through (defaults to false)
 syncHeightBeforeShow : BooleanBasicDialog
True to cause the dimensions to be recalculated before the dialog is shown (defaults to false)
 tabTag : StringBasicDialog
The tag name of tab elements, used when autoTabs = true (defaults to 'div')
 title : StringBasicDialog
Default text to display in the title bar (defaults to null)
 width : NumberBasicDialog
Width of the dialog in pixels (can also be set via CSS). Determined by browser if unspecified.
 x : NumberBasicDialog
The default top page coordinate of the dialog (defaults to center screen)
 y : NumberBasicDialog
The default left page coordinate of the dialog (defaults to center screen)
-

Property Details

-
- -
-

body

- public Ext.Element body -
- The body element
-
This property is defined by BasicDialog.
-
- -
-

buttons

- public Array buttons -
- Array of all the buttons that have been added to this dialog via addButton
-
This property is defined by BasicDialog.
-
- -
-

footer

- public Ext.Element footer -
- The footer element
-
This property is defined by BasicDialog.
-
- -
-

header

- public Ext.Element header -
- The header element
-
This property is defined by BasicDialog.
-
-
- - -

Constructor Details

-
-
-

LayoutDialog

- public function LayoutDialog(String/HTMLElement/Ext.Element el, Object config) -
-
- Parameters: -
  • el : String/HTMLElement/Ext.Element
    The id of or container element
  • config : Object
    configuration options
-
-
-
-
- -

Method Details

-
- -
-

addButton

- public function addButton(String/Object config, Function handler, [Object scope]) -
- Adds a button to the footer section of the dialog. -
- Parameters: -
  • config : String/Object
    A string becomes the button text, an object can either be a Button config object or a valid Ext.DomHelper element config
  • handler : Function
    The function called when the button is clicked
  • scope : Object
    (optional) The scope of the handler function
- Returns: -
    -
  • Ext.Button
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addKeyListener

- public function addKeyListener(Number/Array/Object key, Function fn, [Object scope]) -
- Adds a key listener for when this dialog is displayed. This allows you to hook in a function that will be -executed in response to a particular key being pressed while the dialog is active. -
- Parameters: -
  • key : Number/Array/Object
    Either the numeric key code, array of key codes or an object with the following options: {key: (number or array), shift: (true/false), ctrl: (true/false), alt: (true/false)}
  • fn : Function
    The function to call
  • scope : Object
    (optional) The scope of the function
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

alignTo

- public function alignTo(String/HTMLElement/Ext.Element element, String position, [Array offsets]) -
- Aligns the dialog to the specified element -
- Parameters: -
  • element : String/HTMLElement/Ext.Element
    The element to align to.
  • position : String
    The position to align to (see Ext.Element.alignTo for more details).
  • offsets : Array
    (optional) Offset the positioning by [x, y]
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

anchorTo

- public function anchorTo(String/HTMLElement/Ext.Element element, String position, [Array offsets], [Boolean/Number monitorScroll]) -
- Anchors an element to another element and realigns it when the window is resized. -
- Parameters: -
  • element : String/HTMLElement/Ext.Element
    The element to align to.
  • position : String
    The position to align to (see Ext.Element.alignTo for more details)
  • offsets : Array
    (optional) Offset the positioning by [x, y]
  • monitorScroll : Boolean/Number
    (optional) true to monitor body scroll and reposition. If this parameter is a number, it is used as the buffer delay (defaults to 50ms).
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

beginUpdate

- public function beginUpdate() -
- Deprecated. Begins an update of the layout and sets display to block and visibility to hidden. Use standard beginUpdate/endUpdate on the layout. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutDialog.
-
- -
-

center

- public function center() -
- Centers this dialog in the viewport -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

collapse

- public function collapse() -
- Collapses the dialog to its minimized state (only the title bar is visible). -Equivalent to the user clicking the collapse dialog button. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

destroy

- public function destroy([Boolean removeEl]) -
- Destroys this dialog and all its supporting elements (including any tabs, shim, -shadow, proxy, mask, etc.) Also removes all event listeners. -
- Parameters: -
  • removeEl : Boolean
    (optional) true to remove the element from the DOM
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

endUpdate

- public function endUpdate() -
- Deprecated. Ends update of the layout and resets display to none. Use standard beginUpdate/endUpdate on the layout. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutDialog.
-
- -
-

expand

- public function expand() -
- Expands a collapsed dialog back to its normal state. Equivalent to the user -clicking the expand dialog button. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus() -
- Focuses the dialog. If a defaultButton is set, it will receive focus, otherwise the -dialog itself will receive focus. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

getEl

- public function getEl() -
- Returns the element for this dialog -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The underlying dialog Element
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

getLayout

- public function getLayout() -
- Get the BorderLayout for this dialog -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.BorderLayout
  • -
-
-
-
This method is defined by LayoutDialog.
-
- -
-

getTabs

- public function getTabs() -
- Returns the TabPanel component (creates it if it doesn't exist). -Note: If you wish to simply check for the existence of tabs without creating them, -check for a null 'tabs' property. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.TabPanel
    The tabs component
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide([Function callback]) -
- Hides the dialog. -
- Parameters: -
  • callback : Function
    (optional) Function to call when the dialog is hidden
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

initTabs

- public function initTabs() -
- Reinitializes the tabs component, clearing out old tabs and finding new ones. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.TabPanel
    The tabs component
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if the dialog is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

moveTo

- public function moveTo(Number x, Number y) -
- Moves the dialog's top-left corner to the specified point -
- Parameters: -
  • x : Number
  • y : Number
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

resizeTo

- public function resizeTo(Number width, Number height) -
- Resizes the dialog. -
- Parameters: -
  • width : Number
  • height : Number
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

restoreState

- public function restoreState() -
- Restores the previous state of the dialog if Ext.state is configured. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

setContentSize

- public function setContentSize(Number width, Number height) -
- Resizes the dialog to fit the specified content size. -
- Parameters: -
  • width : Number
  • height : Number
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

setDefaultButton

- public function setDefaultButton(Ext.BasicDialog.Button btn) -
- Sets the default button to be focused when the dialog is displayed. -
- Parameters: -
  • btn : Ext.BasicDialog.Button
    The button object returned by addButton
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

setTitle

- public function setTitle(String text) -
- Sets the dialog title text -
- Parameters: -
  • text : String
    The title text to display
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

show

- public function show([String/HTMLElement/Ext.Element animateTarget]) -
- Shows the dialog. -
- Parameters: -
  • animateTarget : String/HTMLElement/Ext.Element
    (optional) Reset the animation target
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

toBack

- public function toBack() -
- Sends this dialog to the back (under) of any other visible dialogs -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

toFront

- public function toFront() -
- Brings this dialog to the front of any other visible dialogs -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.BasicDialog
    this
  • -
-
-
-
This method is defined by BasicDialog.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforehide

- public event beforehide -
- Fires before this dialog is hidden. -
- Subscribers will be called with the following parameters: -
  • this : Ext.BasicDialog
-
-
-
This event is defined by BasicDialog.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before this dialog is shown. -
- Subscribers will be called with the following parameters: -
  • this : Ext.BasicDialog
-
-
-
This event is defined by BasicDialog.
-
- -
-

hide

- public event hide -
- Fires when this dialog is hidden. -
- Subscribers will be called with the following parameters: -
  • this : Ext.BasicDialog
-
-
-
This event is defined by BasicDialog.
-
- -
-

keydown

- public event keydown -
- Fires when a key is pressed -
- Subscribers will be called with the following parameters: -
  • this : Ext.BasicDialog
  • e : Ext.EventObject
-
-
-
This event is defined by BasicDialog.
-
- -
-

move

- public event move -
- Fires when this dialog is moved by the user. -
- Subscribers will be called with the following parameters: -
  • this : Ext.BasicDialog
  • x : Number
    The new page X
  • y : Number
    The new page Y
-
-
-
This event is defined by BasicDialog.
-
- -
-

resize

- public event resize -
- Fires when this dialog is resized by the user. -
- Subscribers will be called with the following parameters: -
  • this : Ext.BasicDialog
  • width : Number
    The new width
  • height : Number
    The new height
-
-
-
This event is defined by BasicDialog.
-
- -
-

show

- public event show -
- Fires when this dialog is shown. -
- Subscribers will be called with the following parameters: -
  • this : Ext.BasicDialog
-
-
-
This event is defined by BasicDialog.
-
-
-

Config Details

-
- -
-

animateTarget

- animateTarget : String/Element -
- Id or element from which the dialog should animate while opening (defaults to null with no animation)
-
This config option is defined by BasicDialog.
-
- -
-

autoCreate

- autoCreate : Boolean/DomHelper -
- True to auto create from scratch, or using a DomHelper Object (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

autoScroll

- autoScroll : Boolean -
- True to allow the dialog body contents to overflow and display scrollbars (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

autoTabs

- autoTabs : Boolean -
- If true, all elements with class 'x-dlg-tab' will get automatically converted to tabs (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

buttonAlign

- buttonAlign : String -
- Valid values are "left," "center" and "right" (defaults to "right")
-
This config option is defined by BasicDialog.
-
- -
-

closable

- closable : Boolean -
- False to remove the built-in top-right corner close button (defaults to true)
-
This config option is defined by BasicDialog.
-
- -
-

collapsible

- collapsible : Boolean -
- False to remove the built-in top-right corner collapse button (defaults to true)
-
This config option is defined by BasicDialog.
-
- -
-

constraintoviewport

- constraintoviewport : Boolean -
- True to keep the dialog constrained within the visible viewport boundaries (defaults to true)
-
This config option is defined by BasicDialog.
-
- -
-

draggable

- draggable : Boolean -
- False to disable dragging of the dialog within the viewport (defaults to true)
-
This config option is defined by BasicDialog.
-
- -
-

fixedcenter

- fixedcenter : Boolean -
- True to ensure that anytime the dialog is shown or resized it gets centered (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

height

- height : Number -
- Height of the dialog in pixels (can also be set via CSS). Determined by browser if unspecified.
-
This config option is defined by BasicDialog.
-
- -
-

minButtonWidth

- minButtonWidth : Number -
- Minimum width of all dialog buttons (defaults to 75)
-
This config option is defined by BasicDialog.
-
- -
-

minHeight

- minHeight : Number -
- The minimum allowable height for a resizable dialog (defaults to 80)
-
This config option is defined by BasicDialog.
-
- -
-

minWidth

- minWidth : Number -
- The minimum allowable width for a resizable dialog (defaults to 200)
-
This config option is defined by BasicDialog.
-
- -
-

modal

- modal : Boolean -
- True to show the dialog modally, preventing user interaction with the rest of the page (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

proxyDrag

- proxyDrag : Boolean -
- True to drag a lightweight proxy element rather than the dialog itself, used when draggable = true (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

resizable

- resizable : Boolean -
- False to disable manual dialog resizing (defaults to true)
-
This config option is defined by BasicDialog.
-
- -
-

resizeHandles

- resizeHandles : String -
- Which resize handles to display - see the Ext.Resizable handles config property for valid values (defaults to 'all')
-
This config option is defined by BasicDialog.
-
- -
-

shadow

- shadow : Boolean/String -
- True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right shadow (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

shadowOffset

- shadowOffset : Number -
- The number of pixels to offset the shadow if displayed (defaults to 5)
-
This config option is defined by BasicDialog.
-
- -
-

shim

- shim : Boolean -
- True to create an iframe shim that prevents selects from showing through (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

syncHeightBeforeShow

- syncHeightBeforeShow : Boolean -
- True to cause the dimensions to be recalculated before the dialog is shown (defaults to false)
-
This config option is defined by BasicDialog.
-
- -
-

tabTag

- tabTag : String -
- The tag name of tab elements, used when autoTabs = true (defaults to 'div')
-
This config option is defined by BasicDialog.
-
- -
-

title

- title : String -
- Default text to display in the title bar (defaults to null)
-
This config option is defined by BasicDialog.
-
- -
-

width

- width : Number -
- Width of the dialog in pixels (can also be set via CSS). Determined by browser if unspecified.
-
This config option is defined by BasicDialog.
-
- -
-

x

- x : Number -
- The default top page coordinate of the dialog (defaults to center screen)
-
This config option is defined by BasicDialog.
-
- -
-

y

- y : Number -
- The default left page coordinate of the dialog (defaults to center screen)
-
This config option is defined by BasicDialog.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.LayoutManager.html b/www/extras/extjs/docs/output/Ext.LayoutManager.html deleted file mode 100644 index 9f77eed1c..000000000 --- a/www/extras/extjs/docs/output/Ext.LayoutManager.html +++ /dev/null @@ -1,529 +0,0 @@ - - - - Ext.LayoutManager - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.LayoutManager

- - - - - - -
Package:Ext
Class:LayoutManager
Extends:Observable
Subclasses:BorderLayout
Defined In:LayoutManager.js
-
- Base class for layout managers.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 monitorWindowResize : BooleanLayoutManager
false to disable window resize monitoring
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 beginUpdate() : voidLayoutManager
Suspend the LayoutManager from doing auto-layouts while -making multiple add or remove calls
 endUpdate(Boolean noLayout) : voidLayoutManager
Restore auto-layouts and optionally disable the manager from performing a layout
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getEl() : Ext.ElementLayoutManager
Returns the element this layout is bound to.
 getRegion(String target) : Ext.LayoutRegionLayoutManager
Returns the specified region.
 getViewSize() : ObjectLayoutManager
Returns the size of the current view, This method normalizes document.body and element embedded layouts and -performs ...
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 isUpdating() : BooleanLayoutManager
Returns true if this layout is currently being updated
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 layout : (Ext.LayoutManager this)LayoutManager
Fires when a layout is performed.
 regioncollapsed : (Ext.LayoutRegion region)LayoutManager
Fires when a region is collapsed.
 regionexpanded : (Ext.LayoutRegion region)LayoutManager
Fires when a region is expanded.
 regionresized : (Ext.LayoutRegion region, Number newSize)LayoutManager
Fires when the user resizes a region.
-

Property Details

-
- -
-

monitorWindowResize

- public Boolean monitorWindowResize -
- false to disable window resize monitoring
-
This property is defined by LayoutManager.
-
-
- - -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

beginUpdate

- public function beginUpdate() -
- Suspend the LayoutManager from doing auto-layouts while -making multiple add or remove calls -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

endUpdate

- public function endUpdate(Boolean noLayout) -
- Restore auto-layouts and optionally disable the manager from performing a layout -
- Parameters: -
  • noLayout : Boolean
    true to disable a layout update
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getEl

- public function getEl() -
- Returns the element this layout is bound to. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

getRegion

- public function getRegion(String target) -
- Returns the specified region. -
- Parameters: -
  • target : String
    The region key
- Returns: -
    -
  • Ext.LayoutRegion
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

getViewSize

- public function getViewSize() -
- Returns the size of the current view, This method normalizes document.body and element embedded layouts and -performs box-model adjustments. -
- Parameters: -
  • None.
- Returns: -
    -
  • Object
    The size as an object {width: (the width), height: (the height)}
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

isUpdating

- public function isUpdating() -
- Returns true if this layout is currently being updated -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

layout

- public event layout -
- Fires when a layout is performed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutManager
-
-
-
This event is defined by LayoutManager.
-
- -
-

regioncollapsed

- public event regioncollapsed -
- Fires when a region is collapsed. -
- Subscribers will be called with the following parameters: -
  • region : Ext.LayoutRegion
-
-
-
This event is defined by LayoutManager.
-
- -
-

regionexpanded

- public event regionexpanded -
- Fires when a region is expanded. -
- Subscribers will be called with the following parameters: -
  • region : Ext.LayoutRegion
-
-
-
This event is defined by LayoutManager.
-
- -
-

regionresized

- public event regionresized -
- Fires when the user resizes a region. -
- Subscribers will be called with the following parameters: -
  • region : Ext.LayoutRegion
  • newSize : Number
    The new size (width for east/west, height for north/south)
-
-
-
This event is defined by LayoutManager.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.LayoutRegion.html b/www/extras/extjs/docs/output/Ext.LayoutRegion.html deleted file mode 100644 index 846697431..000000000 --- a/www/extras/extjs/docs/output/Ext.LayoutRegion.html +++ /dev/null @@ -1,1418 +0,0 @@ - - - - Ext.LayoutRegion - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.LayoutRegion

- - - - - - -
Package:Ext
Class:LayoutRegion
Extends:BasicLayoutRegion
Subclasses:SplitLayoutRegion
Defined In:LayoutRegion.js
-
- This class represents a region in a layout manager.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 bodyEl : Ext.ElementLayoutRegion
This regions body element
 collapsedEl : Ext.ElementLayoutRegion
This region's collapsed element
 el : Ext.ElementLayoutRegion
This regions container element
 panels : Ext.util.MixedCollectionBasicLayoutRegion
A collection of panels in this region.
 titleTextEl : HTMLElementLayoutRegion
This regions title text element
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 add(ContentPanel... panel) : Ext.ContentPanelLayoutRegion
Add the passed ContentPanel(s)
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 collapse([Boolean skipAnim]) : voidLayoutRegion
Collapses this region.
 expand(Ext.EventObject e, [Boolean skipAnim]) : voidLayoutRegion
Expand this region if it was previously collapsed.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getActivePanel() : Ext.ContentPanelLayoutRegion
Get the active panel for this region.
 getEl() : Ext.ElementLayoutRegion
Returns the container element for this region.
 getPanel(Number/String/ContentPanel panel) : Ext.ContentPanelBasicLayoutRegion
Returns the panel specified or null if it's not in this region.
 getPosition() : StringBasicLayoutRegion
Returns this regions position (north/south/east/west/center).
 getTabs() : Ext.TabPanelLayoutRegion
Returns the TabPanel component used by this region
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hasPanel(Number/String/ContentPanel panel) : BooleanBasicLayoutRegion
Returns true if the panel is in this region.
 hide() : voidLayoutRegion
Hides this region.
 hidePanel(Number/String/ContentPanel panel) : voidLayoutRegion
Hides the tab for the specified panel.
 isVisible() : BooleanLayoutRegion
Returns true if this region is currently visible.
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 remove(Number/String/ContentPanel panel, Boolean preservePanel) : Ext.ContentPanelLayoutRegion
Removes the specified panel. If preservePanel is not true (either here or in the config), the panel is destroyed.
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 resizeTo(Number newSize) : voidBasicLayoutRegion
Resizes the region to the specified size. For vertical regions (west, east) this adjusts -the width, for horizontal (...
 setCollapsedTitle() : voidLayoutRegion
Updates the collapsed text for north/south regions (used with collapsedTitle config option)
 show() : voidLayoutRegion
Shows this region if it was previously hidden.
 showPanel(Number/String/ContentPanel panelId) : Ext.ContentPanelLayoutRegion
Show the specified panel.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 unhidePanel(Number/String/ContentPanel panel) : voidLayoutRegion
Unhides the tab for a previously hidden panel.
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforeremove : (Ext.LayoutRegion this, Ext.ContentPanel panel, Object e)BasicLayoutRegion
Fires before a panel is removed (or closed). To cancel the removal set "e.cancel = true" on the event argument.
 collapsed : (Ext.LayoutRegion this)BasicLayoutRegion
Fires when this region is collapsed.
 expanded : (Ext.LayoutRegion this)BasicLayoutRegion
Fires when this region is expanded.
 invalidated : (Ext.LayoutRegion this)BasicLayoutRegion
Fires when the layout for this region is changed.
 panelactivated : (Ext.LayoutRegion this, Ext.ContentPanel panel)BasicLayoutRegion
Fires when a panel is activated.
 paneladded : (Ext.LayoutRegion this, Ext.ContentPanel panel)BasicLayoutRegion
Fires when a panel is added.
 panelremoved : (Ext.LayoutRegion this, Ext.ContentPanel panel)BasicLayoutRegion
Fires when a panel is removed.
 resized : (Ext.LayoutRegion this, Number newSize)BasicLayoutRegion
Fires when the user resizes this region.
 slidehide : (Ext.LayoutRegion this)BasicLayoutRegion
Fires when this region slides out of view.
 slideshow : (Ext.LayoutRegion this)BasicLayoutRegion
Fires when this region is slid into view.
 visibilitychange : (Ext.LayoutRegion this, Boolean visibility)BasicLayoutRegion
Fires when this region is shown or hidden
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 alwaysShowTabs : BooleanLayoutRegion
True to always display tabs even when only 1 panel (defaults to false)
 animate : BooleanLayoutRegion
True to animate expand/collapse (defaults to false)
 autoHide : BooleanLayoutRegion
False to disable autoHide when the mouse leaves the "floated" region (defaults to true)
 autoScroll : BooleanLayoutRegion
True to enable overflow scrolling (defaults to false)
 closeOnTab : BooleanLayoutRegion
True to place the close icon on the tabs instead of the region titlebar (defaults to false)
 cmargins : ObjectLayoutRegion
Margins for the element when collapsed (defaults to: north/south {top: 2, left: 0, right:0, bottom: 2} or east/west {...
 collapsed : BooleanLayoutRegion
True to set the initial display to collapsed (defaults to false)
 collapsedTitle : StringLayoutRegion
Optional string message to display in the collapsed block of a north or south region
 collapsible : BooleanLayoutRegion
False to disable collapsing (defaults to true)
 disableTabTips : BooleanLayoutRegion
True to disable tab tooltips
 floatable : BooleanLayoutRegion
False to disable floating (defaults to true)
 hidden : BooleanLayoutRegion
True to start the region hidden
 hideTabs : BooleanLayoutRegion
True to hide the tab strip (defaults to false)
 hideWhenEmpty : BooleanLayoutRegion
True to hide the region when it has no panels
 margins : ObjectLayoutRegion
Margins for the element (defaults to {top: 0, left: 0, right:0, bottom: 0})
 minTabWidth : NumberLayoutRegion
The minimum tab width (defaults to 40)
 preferredTabWidth : NumberLayoutRegion
The preferred tab width (defaults to 150)
 preservePanels : BooleanLayoutRegion
True to preserve removed panels so they can be readded later (defaults to false)
 resizeTabs : BooleanLayoutRegion
True to enable automatic tab resizing. This will resize the tabs so they are all the same size and fit within the spa...
 showPin : BooleanLayoutRegion
True to show a pin button
 tabPosition : StringLayoutRegion
"top" or "bottom" (defaults to "bottom")
 title : StringLayoutRegion
The title for the region (overrides panel titles)
 titlebar : BooleanLayoutRegion
True to display a title bar (defaults to true)
-

Property Details

-
- -
-

bodyEl

- public Ext.Element bodyEl -
- This regions body element
-
This property is defined by LayoutRegion.
-
- -
-

collapsedEl

- public Ext.Element collapsedEl -
- This region's collapsed element
-
This property is defined by LayoutRegion.
-
- -
-

el

- public Ext.Element el -
- This regions container element
-
This property is defined by LayoutRegion.
-
- -
-

panels

- public Ext.util.MixedCollection panels -
- A collection of panels in this region.
-
This property is defined by BasicLayoutRegion.
-
- -
-

titleTextEl

- public HTMLElement titleTextEl -
- This regions title text element
-
This property is defined by LayoutRegion.
-
-
- - -

Method Details

-
- -
-

add

- public function add(ContentPanel... panel) -
- Add the passed ContentPanel(s) -
- Parameters: -
  • panel : ContentPanel...
    The ContentPanel(s) to add (you can pass more than one)
- Returns: -
    -
  • Ext.ContentPanel
    The panel added (if only one was added)
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

collapse

- public function collapse([Boolean skipAnim]) -
- Collapses this region. -
- Parameters: -
  • skipAnim : Boolean
    (optional) true to collapse the element without animation (if animate is true)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

expand

- public function expand(Ext.EventObject e, [Boolean skipAnim]) -
- Expand this region if it was previously collapsed. -
- Parameters: -
  • e : Ext.EventObject
    The event that triggered the expand (or null if calling manually)
  • skipAnim : Boolean
    (optional) true to expand the element without animation (if animate is true)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getActivePanel

- public function getActivePanel() -
- Get the active panel for this region. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.ContentPanel
    The active panel or null
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

getEl

- public function getEl() -
- Returns the container element for this region. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

getPanel

- public function getPanel(Number/String/ContentPanel panel) -
- Returns the panel specified or null if it's not in this region. -
- Parameters: -
  • panel : Number/String/ContentPanel
    The panels index, id or the panel itself
- Returns: -
    -
  • Ext.ContentPanel
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

getPosition

- public function getPosition() -
- Returns this regions position (north/south/east/west/center). -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

getTabs

- public function getTabs() -
- Returns the TabPanel component used by this region -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.TabPanel
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hasPanel

- public function hasPanel(Number/String/ContentPanel panel) -
- Returns true if the panel is in this region. -
- Parameters: -
  • panel : Number/String/ContentPanel
    The panels index, id or the panel itself
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

hide

- public function hide() -
- Hides this region. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

hidePanel

- public function hidePanel(Number/String/ContentPanel panel) -
- Hides the tab for the specified panel. -
- Parameters: -
  • panel : Number/String/ContentPanel
    The panels index, id or the panel itself
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this region is currently visible. -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

remove

- public function remove(Number/String/ContentPanel panel, Boolean preservePanel) -
- Removes the specified panel. If preservePanel is not true (either here or in the config), the panel is destroyed. -
- Parameters: -
  • panel : Number/String/ContentPanel
    The panels index, id or the panel itself
  • preservePanel : Boolean
    Overrides the config preservePanel option
- Returns: -
    -
  • Ext.ContentPanel
    The panel that was removed
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

resizeTo

- public function resizeTo(Number newSize) -
- Resizes the region to the specified size. For vertical regions (west, east) this adjusts -the width, for horizontal (north, south) the height. -
- Parameters: -
  • newSize : Number
    The new width or height
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

setCollapsedTitle

- public function setCollapsedTitle() -
- Updates the collapsed text for north/south regions (used with collapsedTitle config option) -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

show

- public function show() -
- Shows this region if it was previously hidden. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

showPanel

- public function showPanel(Number/String/ContentPanel panelId) -
- Show the specified panel. -
- Parameters: -
  • panelId : Number/String/ContentPanel
    The panels index, id or the panel itself
- Returns: -
    -
  • Ext.ContentPanel
    The shown panel or null
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

unhidePanel

- public function unhidePanel(Number/String/ContentPanel panel) -
- Unhides the tab for a previously hidden panel. -
- Parameters: -
  • panel : Number/String/ContentPanel
    The panels index, id or the panel itself
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutRegion.
-
-
- -

Event Details

-
- -
-

beforeremove

- public event beforeremove -
- Fires before a panel is removed (or closed). To cancel the removal set "e.cancel = true" on the event argument. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • panel : Ext.ContentPanel
    The panel
  • e : Object
    The cancel event object
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

collapsed

- public event collapsed -
- Fires when this region is collapsed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

expanded

- public event expanded -
- Fires when this region is expanded. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

invalidated

- public event invalidated -
- Fires when the layout for this region is changed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

panelactivated

- public event panelactivated -
- Fires when a panel is activated. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • panel : Ext.ContentPanel
    The activated panel
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

paneladded

- public event paneladded -
- Fires when a panel is added. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • panel : Ext.ContentPanel
    The panel
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

panelremoved

- public event panelremoved -
- Fires when a panel is removed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • panel : Ext.ContentPanel
    The panel
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

resized

- public event resized -
- Fires when the user resizes this region. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • newSize : Number
    The new size (width for east/west, height for north/south)
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

slidehide

- public event slidehide -
- Fires when this region slides out of view. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

slideshow

- public event slideshow -
- Fires when this region is slid into view. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

visibilitychange

- public event visibilitychange -
- Fires when this region is shown or hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • visibility : Boolean
    true or false
-
-
-
This event is defined by BasicLayoutRegion.
-
-
-

Config Details

-
- -
-

alwaysShowTabs

- alwaysShowTabs : Boolean -
- True to always display tabs even when only 1 panel (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

animate

- animate : Boolean -
- True to animate expand/collapse (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

autoHide

- autoHide : Boolean -
- False to disable autoHide when the mouse leaves the "floated" region (defaults to true)
-
This config option is defined by LayoutRegion.
-
- -
-

autoScroll

- autoScroll : Boolean -
- True to enable overflow scrolling (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

closeOnTab

- closeOnTab : Boolean -
- True to place the close icon on the tabs instead of the region titlebar (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

cmargins

- cmargins : Object -
- Margins for the element when collapsed (defaults to: north/south {top: 2, left: 0, right:0, bottom: 2} or east/west {top: 0, left: 2, right:2, bottom: 0})
-
This config option is defined by LayoutRegion.
-
- -
-

collapsed

- collapsed : Boolean -
- True to set the initial display to collapsed (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

collapsedTitle

- collapsedTitle : String -
- Optional string message to display in the collapsed block of a north or south region
-
This config option is defined by LayoutRegion.
-
- -
-

collapsible

- collapsible : Boolean -
- False to disable collapsing (defaults to true)
-
This config option is defined by LayoutRegion.
-
- -
-

disableTabTips

- disableTabTips : Boolean -
- True to disable tab tooltips
-
This config option is defined by LayoutRegion.
-
- -
-

floatable

- floatable : Boolean -
- False to disable floating (defaults to true)
-
This config option is defined by LayoutRegion.
-
- -
-

hidden

- hidden : Boolean -
- True to start the region hidden
-
This config option is defined by LayoutRegion.
-
- -
-

hideTabs

- hideTabs : Boolean -
- True to hide the tab strip (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

hideWhenEmpty

- hideWhenEmpty : Boolean -
- True to hide the region when it has no panels
-
This config option is defined by LayoutRegion.
-
- -
-

margins

- margins : Object -
- Margins for the element (defaults to {top: 0, left: 0, right:0, bottom: 0})
-
This config option is defined by LayoutRegion.
-
- -
-

minTabWidth

- minTabWidth : Number -
- The minimum tab width (defaults to 40)
-
This config option is defined by LayoutRegion.
-
- -
-

preferredTabWidth

- preferredTabWidth : Number -
- The preferred tab width (defaults to 150)
-
This config option is defined by LayoutRegion.
-
- -
-

preservePanels

- preservePanels : Boolean -
- True to preserve removed panels so they can be readded later (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

resizeTabs

- resizeTabs : Boolean -
- True to enable automatic tab resizing. This will resize the tabs so they are all the same size and fit within the space available, similar to FireFox 1.5 tabs (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

showPin

- showPin : Boolean -
- True to show a pin button
-
This config option is defined by LayoutRegion.
-
- -
-

tabPosition

- tabPosition : String -
- "top" or "bottom" (defaults to "bottom")
-
This config option is defined by LayoutRegion.
-
- -
-

title

- title : String -
- The title for the region (overrides panel titles)
-
This config option is defined by LayoutRegion.
-
- -
-

titlebar

- titlebar : Boolean -
- True to display a title bar (defaults to true)
-
This config option is defined by LayoutRegion.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.LoadMask.html b/www/extras/extjs/docs/output/Ext.LoadMask.html deleted file mode 100644 index 2c48a9127..000000000 --- a/www/extras/extjs/docs/output/Ext.LoadMask.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - Ext.LoadMask - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.LoadMask

- - - - - -
Package:Ext
Class:LoadMask
Extends:Object
Defined In:LoadMask.js
-
- A simple utility class for generically masking elements while loading data. If the element being masked has -an underlying Ext.data.Store, the masking will be automatically synchronized with the store's loading -process and the mask element will be cached for reuse. For all other elements, this mask will replace the -element's UpdateManager load indicator and will be destroyed after the initial load.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 disabled : BooleanLoadMask
Read-only. True if the mask is currently disabled so that it will not be displayed (defaults to false)
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 LoadMask(Object config)LoadMask
Create a new LoadMask
 disable() : voidLoadMask
Disables the mask to prevent it from being displayed
 enable() : voidLoadMask
Enables the mask so that it can be displayed
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 msg : StringLoadMask
The text to display in a centered loading message box (defaults to 'Loading...')
 msgCls : StringLoadMask
The CSS class to apply to the loading message element (defaults to "x-mask-loading")
 removeMask : BooleanLoadMask
True to create a single-use mask that is automatically destroyed after loading (useful for page loads), False to pers...
-

Property Details

-
- -
-

disabled

- public Boolean disabled -
- Read-only. True if the mask is currently disabled so that it will not be displayed (defaults to false)
-
This property is defined by LoadMask.
-
-
- - -

Constructor Details

-
-
-

LoadMask

- public function LoadMask(Object config) -
- Create a new LoadMask
- Parameters: -
  • config : Object
    The config object
-
-
-
-
- -

Method Details

-
- -
-

disable

- public function disable() -
- Disables the mask to prevent it from being displayed -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LoadMask.
-
- -
-

enable

- public function enable() -
- Enables the mask so that it can be displayed -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LoadMask.
-
-
- -

Config Details

-
- -
-

msg

- msg : String -
- The text to display in a centered loading message box (defaults to 'Loading...')
-
This config option is defined by LoadMask.
-
- -
-

msgCls

- msgCls : String -
- The CSS class to apply to the loading message element (defaults to "x-mask-loading")
-
This config option is defined by LoadMask.
-
- -
-

removeMask

- removeMask : Boolean -
- True to create a single-use mask that is automatically destroyed after loading (useful for page loads), False to persist the mask element reference for multiple uses (e.g., for paged data widgets). Defaults to false.
-
This config option is defined by LoadMask.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.MasterTemplate.html b/www/extras/extjs/docs/output/Ext.MasterTemplate.html deleted file mode 100644 index c50814828..000000000 --- a/www/extras/extjs/docs/output/Ext.MasterTemplate.html +++ /dev/null @@ -1,478 +0,0 @@ - - - - Ext.MasterTemplate - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.MasterTemplate

- - - - - -
Package:Ext
Class:MasterTemplate
Extends:Template
Defined In:Template.js
-
- Provides a template that can have child templates. The syntax is: -
var t = new Ext.MasterTemplate(
-	'<select name="{name}">',
-		'<tpl name="options"><option value="{value:trim}">{text:ellipsis(10)}</option></tpl>',
-	'</select>'
-);
-t.add('options', {value: 'foo', text: 'bar'});
-// or you can add multiple child elements in one shot
-t.addAll('options', [
-    {value: 'foo', text: 'bar'},
-    {value: 'foo2', text: 'bar2'},
-    {value: 'foo3', text: 'bar3'}
-]);
-// then append, applying the master template values
-t.append('my-form', {name: 'my-select'});
-A name attribute for the child template is not required if you have only one child -template or you want to refer to them by index.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disableFormats : BooleanTemplate
True to disable format functions (default to false)
 re : RegExpTemplate
The regular expression used to match template variables
 subTemplateRe : RegExpMasterTemplate
The regular expression used to match sub templates
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 MasterTemplate.from(String/HTMLElement el) : voidMasterTemplate
<static> Creates a template from the passed element's value (display:none textarea, preferred) or innerHTML. e....
 add([String/Number name], Array/Object values) : MasterTemplateMasterTemplate
Applies the passed values to a child template.
 addAll() : voidMasterTemplate
Alias for fill().
 append(String/HTMLElement/Element el, Object values, [Boolean returnElement]) : HTMLElementTemplate
Applies the supplied values to the template and append the new node(s) to el
 apply() : voidTemplate
Alias for applyTemplate
 applyTemplate(Object values) : StringTemplate
Returns an HTML fragment of this template with the specified values applied
 compile() : voidTemplate
Compiles the template into an internal function, eliminating the RegEx overhead
 fill([String/Number name], Array values, [Boolean reset]) : MasterTemplateMasterTemplate
Applies all the passed values to a child template.
 insertAfter(String/HTMLElement/Element el, Object values, [Boolean returnElement]) : HTMLElementTemplate
Applies the supplied values to the template and inserts the new node(s) after el
 insertBefore(String/HTMLElement/Element el, Object values, [Boolean returnElement]) : HTMLElementTemplate
Applies the supplied values to the template and inserts the new node(s) before el
 insertFirst(String/HTMLElement/Element el, Object values, [Boolean returnElement]) : HTMLElementTemplate
Applies the supplied values to the template and inserts the new node(s) as the first child of el
 overwrite(String/HTMLElement/Element el, Object values, [Boolean returnElement]) : HTMLElementTemplate
Applies the supplied values to the template and overwrites the content of el with the new node(s)
 reset() : MasterTemplateMasterTemplate
Resets the template for reuse
 set(String html, [Boolean compile]) : TemplateTemplate
Sets the html used as the template and optionally compiles it
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

disableFormats

- public Boolean disableFormats -
- True to disable format functions (default to false)
-
This property is defined by Template.
-
- -
-

re

- public RegExp re -
- The regular expression used to match template variables
-
This property is defined by Template.
-
- -
-

subTemplateRe

- public RegExp subTemplateRe -
- The regular expression used to match sub templates
-
This property is defined by MasterTemplate.
-
-
- - -

Method Details

-
- -
-

MasterTemplate.from

- public function MasterTemplate.from(String/HTMLElement el) -
- <static> Creates a template from the passed element's value (display:none textarea, preferred) or innerHTML. e.g. -var tpl = Ext.MasterTemplate.from('element-id'); -
- Parameters: -
  • el : String/HTMLElement
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MasterTemplate.
-
- -
-

add

- public function add([String/Number name], Array/Object values) -
- Applies the passed values to a child template. -
- Parameters: -
  • name : String/Number
    (optional) The name or index of the child template
  • values : Array/Object
    The values to be applied to the template
- Returns: -
    -
  • MasterTemplate
    this
  • -
-
-
-
This method is defined by MasterTemplate.
-
- -
-

addAll

- public function addAll() -
- Alias for fill(). -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MasterTemplate.
-
- -
-

append

- public function append(String/HTMLElement/Element el, Object values, [Boolean returnElement]) -
- Applies the supplied values to the template and append the new node(s) to el -
- Parameters: -
  • el : String/HTMLElement/Element
    The context element
  • values : Object
    The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
  • returnElement : Boolean
    (optional) true to return a Ext.Element
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by Template.
-
- -
-

apply

- public function apply() -
- Alias for applyTemplate -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Template.
-
- -
-

applyTemplate

- public function applyTemplate(Object values) -
- Returns an HTML fragment of this template with the specified values applied -
- Parameters: -
  • values : Object
    The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Template.
-
- -
-

compile

- public function compile() -
- Compiles the template into an internal function, eliminating the RegEx overhead -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Template.
-
- -
-

fill

- public function fill([String/Number name], Array values, [Boolean reset]) -
- Applies all the passed values to a child template. -
- Parameters: -
  • name : String/Number
    (optional) The name or index of the child template
  • values : Array
    The values to be applied to the template, this should be an array of objects.
  • reset : Boolean
    (optional) True to reset the template first
- Returns: -
    -
  • MasterTemplate
    this
  • -
-
-
-
This method is defined by MasterTemplate.
-
- -
-

insertAfter

- public function insertAfter(String/HTMLElement/Element el, Object values, [Boolean returnElement]) -
- Applies the supplied values to the template and inserts the new node(s) after el -
- Parameters: -
  • el : String/HTMLElement/Element
    The context element
  • values : Object
    The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
  • returnElement : Boolean
    (optional) true to return a Ext.Element
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by Template.
-
- -
-

insertBefore

- public function insertBefore(String/HTMLElement/Element el, Object values, [Boolean returnElement]) -
- Applies the supplied values to the template and inserts the new node(s) before el -
- Parameters: -
  • el : String/HTMLElement/Element
    The context element
  • values : Object
    The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
  • returnElement : Boolean
    (optional) true to return a Ext.Element
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by Template.
-
- -
-

insertFirst

- public function insertFirst(String/HTMLElement/Element el, Object values, [Boolean returnElement]) -
- Applies the supplied values to the template and inserts the new node(s) as the first child of el -
- Parameters: -
  • el : String/HTMLElement/Element
    The context element
  • values : Object
    The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
  • returnElement : Boolean
    (optional) true to return a Ext.Element
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by Template.
-
- -
-

overwrite

- public function overwrite(String/HTMLElement/Element el, Object values, [Boolean returnElement]) -
- Applies the supplied values to the template and overwrites the content of el with the new node(s) -
- Parameters: -
  • el : String/HTMLElement/Element
    The context element
  • values : Object
    The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
  • returnElement : Boolean
    (optional) true to return a Ext.Element
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by Template.
-
- -
-

reset

- public function reset() -
- Resets the template for reuse -
- Parameters: -
  • None.
- Returns: -
    -
  • MasterTemplate
    this
  • -
-
-
-
This method is defined by MasterTemplate.
-
- -
-

set

- public function set(String html, [Boolean compile]) -
- Sets the html used as the template and optionally compiles it -
- Parameters: -
  • html : String
  • compile : Boolean
    (optional)
- Returns: -
    -
  • Template
    this
  • -
-
-
-
This method is defined by Template.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.MenuButton.html b/www/extras/extjs/docs/output/Ext.MenuButton.html deleted file mode 100644 index 1814fbf3c..000000000 --- a/www/extras/extjs/docs/output/Ext.MenuButton.html +++ /dev/null @@ -1,1086 +0,0 @@ - - - - Ext.MenuButton - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.MenuButton

- - - - - - -
Package:Ext
Class:MenuButton
Extends:Button
Subclasses:Toolbar.MenuButton
Defined In:MenuButton.js
-
- A split button that provides a built-in dropdown arrow that can fire an event separately from the default -click event of the button. Typically this would be used to display a dropdown menu that provides additional -options to the primary button action, but any custom handler can provide the arrowclick implementation.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : BooleanButton
Read-only. True if this button is disabled
 hidden : BooleanButton
Read-only. True if this button is hidden
 pressed : BooleanButton
Read-only. True if this button is pressed (only if enableToggle = true)
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 MenuButton(String/HTMLElement/Element renderTo, Object config)MenuButton
Create a new menu button
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 destroy() : voidButton
Destroys this Button and removes any listeners.
 disable() : voidButton
Disable this button
 enable() : voidButton
Enable this button
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus() : voidMenuButton
Focus the button
 getEl() : Ext.ElementButton
Returns the button's underlying element
 getText() : StringButton
Gets the text for this button
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidButton
Hide this button
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 setArrowHandler(Function handler, [Object scope]) : voidMenuButton
Sets this button's arrow click handler
 setDisabled(Boolean enabled) : voidButton
Convenience function for boolean enable/disable
 setHandler(Function handler, [Object scope]) : voidMenuButton
Sets this button's click handler
 setText(String text) : voidButton
Sets this button's text
 setVisible(Boolean visible) : voidButton
Convenience function for boolean show/hide
 show() : voidButton
Show this button
 toggle([Boolean state]) : voidButton
If a state it passed, it becomes the pressed state otherwise the current state is toggled.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 arrowclick : (MenuButton this, EventObject e)MenuButton
Fires when this button's arrow is clicked
 click : (Button this, EventObject e)Button
Fires when this button is clicked
 mouseout : (Button this, Event e)Button
Fires when the mouse exits the button
 mouseover : (Button this, Event e)Button
Fires when the mouse hovers over the button
 toggle : (Button this, Boolean pressed)Button
Fires when the "pressed" state of this button changes (only if enableToggle = true)
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 arrowHandler : FunctionMenuButton
A function called when the arrow button is clicked (can be used instead of click event)
 arrowTooltip : StringMenuButton
The title attribute of the arrow
 disabled : BooleanButton
True to start disabled (defaults to false)
 enableToggle : BooleanButton
True to enable pressed/not pressed toggling (defaults to false)
 handler : FunctionButton
A function called when the button is clicked (can be used instead of click event)
 hidden : BooleanButton
True to start hidden (defaults to false)
 icon : StringButton
The path to an image to display in the button (the image will be set as the background-image CSS property of the butt...
 menu : MixedButton
Standard menu attribute consisting of a reference to a menu object, a menu id or a menu config blob
 menuAlign : StringButton
The position to align the menu to (see Ext.Element.alignTo for more details, defaults to 'tl-bl?').
 minWidth : NumberButton
The minimum width for this button (used to give a set of buttons a common width)
 pressed : BooleanButton
True to start pressed (only if enableToggle = true)
 repeat : Boolean/ObjectButton
True to repeat fire the click event while the mouse is down. This can also be an Ext.util.ClickRepeater config object...
 scope : ObjectButton
The scope of the handler
 text : StringButton
The button text
 toggleGroup : StringButton
The group this toggle button is a member of (only 1 per group can be pressed, only applies if enableToggle = true)
 tooltip : String/ObjectButton
The tooltip for the button - can be a string or QuickTips config object
 tooltipType : StringButton
The type of tooltip to use. Either "qtip" for QuickTips or "title" for title attribute.
-

Property Details

-
- -
-

disabled

- public Boolean disabled -
- Read-only. True if this button is disabled
-
This property is defined by Button.
-
- -
-

hidden

- public Boolean hidden -
- Read-only. True if this button is hidden
-
This property is defined by Button.
-
- -
-

pressed

- public Boolean pressed -
- Read-only. True if this button is pressed (only if enableToggle = true)
-
This property is defined by Button.
-
-
- - -

Constructor Details

-
-
-

MenuButton

- public function MenuButton(String/HTMLElement/Element renderTo, Object config) -
- Create a new menu button
- Parameters: -
  • renderTo : String/HTMLElement/Element
    The element to append the button to
  • config : Object
    The config object
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

destroy

- public function destroy() -
- Destroys this Button and removes any listeners. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

disable

- public function disable() -
- Disable this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

enable

- public function enable() -
- Enable this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus() -
- Focus the button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MenuButton.
-
- -
-

getEl

- public function getEl() -
- Returns the button's underlying element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Button.
-
- -
-

getText

- public function getText() -
- Gets the text for this button -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    The button text
  • -
-
-
-
This method is defined by Button.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

setArrowHandler

- public function setArrowHandler(Function handler, [Object scope]) -
- Sets this button's arrow click handler -
- Parameters: -
  • handler : Function
    The function to call when the arrow is clicked
  • scope : Object
    (optional) Scope for the function passed above
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MenuButton.
-
- -
-

setDisabled

- public function setDisabled(Boolean enabled) -
- Convenience function for boolean enable/disable -
- Parameters: -
  • enabled : Boolean
    True to enable, false to disable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

setHandler

- public function setHandler(Function handler, [Object scope]) -
- Sets this button's click handler -
- Parameters: -
  • handler : Function
    The function to call when the button is clicked
  • scope : Object
    (optional) Scope for the function passed above
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MenuButton.
-
- -
-

setText

- public function setText(String text) -
- Sets this button's text -
- Parameters: -
  • text : String
    The button text
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function for boolean show/hide -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

show

- public function show() -
- Show this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

toggle

- public function toggle([Boolean state]) -
- If a state it passed, it becomes the pressed state otherwise the current state is toggled. -
- Parameters: -
  • state : Boolean
    (optional) Force a particular state
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

arrowclick

- public event arrowclick -
- Fires when this button's arrow is clicked -
- Subscribers will be called with the following parameters: -
  • this : MenuButton
  • e : EventObject
    The click event
-
-
-
This event is defined by MenuButton.
-
- -
-

click

- public event click -
- Fires when this button is clicked -
- Subscribers will be called with the following parameters: -
  • this : Button
  • e : EventObject
    The click event
-
-
-
This event is defined by Button.
-
- -
-

mouseout

- public event mouseout -
- Fires when the mouse exits the button -
- Subscribers will be called with the following parameters: -
  • this : Button
  • e : Event
    The event object
-
-
-
This event is defined by Button.
-
- -
-

mouseover

- public event mouseover -
- Fires when the mouse hovers over the button -
- Subscribers will be called with the following parameters: -
  • this : Button
  • e : Event
    The event object
-
-
-
This event is defined by Button.
-
- -
-

toggle

- public event toggle -
- Fires when the "pressed" state of this button changes (only if enableToggle = true) -
- Subscribers will be called with the following parameters: -
  • this : Button
  • pressed : Boolean
-
-
-
This event is defined by Button.
-
-
-

Config Details

-
- -
-

arrowHandler

- arrowHandler : Function -
- A function called when the arrow button is clicked (can be used instead of click event)
-
This config option is defined by MenuButton.
-
- -
-

arrowTooltip

- arrowTooltip : String -
- The title attribute of the arrow
-
This config option is defined by MenuButton.
-
- -
-

disabled

- disabled : Boolean -
- True to start disabled (defaults to false)
-
This config option is defined by Button.
-
- -
-

enableToggle

- enableToggle : Boolean -
- True to enable pressed/not pressed toggling (defaults to false)
-
This config option is defined by Button.
-
- -
-

handler

- handler : Function -
- A function called when the button is clicked (can be used instead of click event)
-
This config option is defined by Button.
-
- -
-

hidden

- hidden : Boolean -
- True to start hidden (defaults to false)
-
This config option is defined by Button.
-
- -
-

icon

- icon : String -
- The path to an image to display in the button (the image will be set as the background-image CSS property of the button by default, so if you want a mixed icon/text button, set cls:"x-btn-text-icon")
-
This config option is defined by Button.
-
- -
-

menu

- menu : Mixed -
- Standard menu attribute consisting of a reference to a menu object, a menu id or a menu config blob
-
This config option is defined by Button.
-
- -
-

menuAlign

- menuAlign : String -
- The position to align the menu to (see Ext.Element.alignTo for more details, defaults to 'tl-bl?').
-
This config option is defined by Button.
-
- -
-

minWidth

- minWidth : Number -
- The minimum width for this button (used to give a set of buttons a common width)
-
This config option is defined by Button.
-
- -
-

pressed

- pressed : Boolean -
- True to start pressed (only if enableToggle = true)
-
This config option is defined by Button.
-
- -
-

repeat

- repeat : Boolean/Object -
- True to repeat fire the click event while the mouse is down. This can also be an Ext.util.ClickRepeater config object (defaults to false).
-
This config option is defined by Button.
-
- -
-

scope

- scope : Object -
- The scope of the handler
-
This config option is defined by Button.
-
- -
-

text

- text : String -
- The button text
-
This config option is defined by Button.
-
- -
-

toggleGroup

- toggleGroup : String -
- The group this toggle button is a member of (only 1 per group can be pressed, only applies if enableToggle = true)
-
This config option is defined by Button.
-
- -
-

tooltip

- tooltip : String/Object -
- The tooltip for the button - can be a string or QuickTips config object
-
This config option is defined by Button.
-
- -
-

tooltipType

- tooltipType : String -
- The type of tooltip to use. Either "qtip" for QuickTips or "title" for title attribute.
-
This config option is defined by Button.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.MessageBox.html b/www/extras/extjs/docs/output/Ext.MessageBox.html deleted file mode 100644 index 90a8184de..000000000 --- a/www/extras/extjs/docs/output/Ext.MessageBox.html +++ /dev/null @@ -1,556 +0,0 @@ - - - - Ext.MessageBox - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.MessageBox

- - - - - -
Package:Ext
Class:MessageBox
Extends:Object
Defined In:MessageBox.js
-
- Utility class for generating different styles of message boxes. The alias Ext.Msg can also be used. -Example usage: -
// Basic alert:
-Ext.Msg.alert('Status', 'Changes saved successfully.');
-
-// Prompt for user data:
-Ext.Msg.prompt('Name', 'Please enter your name:', function(btn, text){
-    if (btn == 'ok'){
-        // process text value...
-    }
-});
-
-// Show a dialog using config options:
-Ext.Msg.show({
-   title:'Save Changes?',
-   msg: 'Your are closing a tab that has unsaved changes. Would you like to save your changes?',
-   buttons: Ext.Msg.YESNOCANCEL,
-   fn: processResult,
-   animEl: 'elId'
-});


This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 OK : ObjectMessageBox
Button config that displays a single OK button
 OKCANCEL : ObjectMessageBox
Button config that displays OK and Cancel buttons
 YESNO : ObjectMessageBox
Button config that displays Yes and No buttons
 YESNOCANCEL : ObjectMessageBox
Button config that displays Yes, No and Cancel buttons
 buttonText : ObjectMessageBox
An object containing the default button text strings that can be overriden for localized language support. -Supported ...
 defaultTextHeight : NumberMessageBox
The default height in pixels of the message box's multiline textarea if displayed (defaults to 75)
 maxWidth : NumberMessageBox
The maximum width in pixels of the message box (defaults to 600)
 minProgressWidth : NumberMessageBox
The minimum width in pixels of the message box progress bar if displayed (defaults to 250)
 minWidth : NumberMessageBox
The minimum width in pixels of the message box (defaults to 100)
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 alert(String title, String msg, [Function fn], [Object scope]) : Ext.MessageBoxMessageBox
Displays a standard read-only message box (comparable to the basic JavaScript alert prompt) with an OK -button. If a c...
 confirm(String title, String msg, [Function fn], [Object scope]) : Ext.MessageBoxMessageBox
Displays a confirmation message box with Yes and No buttons. If a callback function is passed it will -be called afte...
 getDialog() : Ext.BasicDialogMessageBox
Returns a reference to the underlying Ext.BasicDialog element
 hide() : voidMessageBox
Hides the message box if it is displayed
 isVisible() : BooleanMessageBox
Returns true if the message box is currently displayed
 progress(String title, String msg) : Ext.MessageBoxMessageBox
Displays a message box with a progress bar. This message box has no buttons and is not closeable by -the user. You a...
 prompt(String title, String msg, [Function fn], [Object scope], [Boolean/Number multiline]) : Ext.MessageBoxMessageBox
Displays a message box with OK and Cancel buttons prompting the user to enter some text. The prompt can -be a single-...
 show(Object config) : Ext.MessageBoxMessageBox
Displays a new message box, or reinitializes an existing message box, based on the config options -passed in. All func...
 updateProgress(Number value, String text) : Ext.MessageBoxMessageBox
Updates a progress-style message box's text and progress bar. Only relevant on message boxes -initiated via Ext.Messa...
 updateText(String text) : Ext.MessageBoxMessageBox
Updates the message box body text
 wait(String msg, [String title]) : Ext.MessageBoxMessageBox
Displays a message box with an infinitely auto-updating progress bar. This can be used to block user -interaction whi...
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

OK

- public Object OK -
- Button config that displays a single OK button
-
This property is defined by MessageBox.
-
- -
-

OKCANCEL

- public Object OKCANCEL -
- Button config that displays OK and Cancel buttons
-
This property is defined by MessageBox.
-
- -
-

YESNO

- public Object YESNO -
- Button config that displays Yes and No buttons
-
This property is defined by MessageBox.
-
- -
-

YESNOCANCEL

- public Object YESNOCANCEL -
- Button config that displays Yes, No and Cancel buttons
-
This property is defined by MessageBox.
-
- -
-

buttonText

- public Object buttonText -
- An object containing the default button text strings that can be overriden for localized language support. -Supported properties are: ok, cancel, yes and no. -Customize the default text like so: Ext.MessageBox.buttonText.yes = "Si";
-
This property is defined by MessageBox.
-
- -
-

defaultTextHeight

- public Number defaultTextHeight -
- The default height in pixels of the message box's multiline textarea if displayed (defaults to 75)
-
This property is defined by MessageBox.
-
- -
-

maxWidth

- public Number maxWidth -
- The maximum width in pixels of the message box (defaults to 600)
-
This property is defined by MessageBox.
-
- -
-

minProgressWidth

- public Number minProgressWidth -
- The minimum width in pixels of the message box progress bar if displayed (defaults to 250)
-
This property is defined by MessageBox.
-
- -
-

minWidth

- public Number minWidth -
- The minimum width in pixels of the message box (defaults to 100)
-
This property is defined by MessageBox.
-
-
- - -

Method Details

-
- -
-

alert

- public function alert(String title, String msg, [Function fn], [Object scope]) -
- Displays a standard read-only message box (comparable to the basic JavaScript alert prompt) with an OK -button. If a callback function is passed it will be called after the user clicks the button, and the -id of the button that was clicked will be passed as the only parameter to the callback -(could also be the top-right close button). -
- Parameters: -
  • title : String
    The title bar text
  • msg : String
    The message box body text
  • fn : Function
    (optional) The callback function invoked after the message box is closed
  • scope : Object
    (optional) The scope of the callback function
- Returns: -
    -
  • Ext.MessageBox
    messageBox This message box
  • -
-
-
-
This method is defined by MessageBox.
-
- -
-

confirm

- public function confirm(String title, String msg, [Function fn], [Object scope]) -
- Displays a confirmation message box with Yes and No buttons. If a callback function is passed it will -be called after the user clicks either button, and the id of the button that was clicked -will be passed as the only parameter to the callback (could also be the top-right close button). -
- Parameters: -
  • title : String
    The title bar text
  • msg : String
    The message box body text
  • fn : Function
    (optional) The callback function invoked after the message box is closed
  • scope : Object
    (optional) The scope of the callback function
- Returns: -
    -
  • Ext.MessageBox
    messageBox This message box
  • -
-
-
-
This method is defined by MessageBox.
-
- -
-

getDialog

- public function getDialog() -
- Returns a reference to the underlying Ext.BasicDialog element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.BasicDialog
    dialog The BasicDialog element
  • -
-
-
-
This method is defined by MessageBox.
-
- -
-

hide

- public function hide() -
- Hides the message box if it is displayed -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MessageBox.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if the message box is currently displayed -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
    isVisible True if the message box is visible, else false
  • -
-
-
-
This method is defined by MessageBox.
-
- -
-

progress

- public function progress(String title, String msg) -
- Displays a message box with a progress bar. This message box has no buttons and is not closeable by -the user. You are responsible for updating the progress bar as needed via Ext.MessageBox.updateProgress -and closing the message box when the process is complete. -
- Parameters: -
  • title : String
    The title bar text
  • msg : String
    The message box body text
- Returns: -
    -
  • Ext.MessageBox
    messageBox This message box
  • -
-
-
-
This method is defined by MessageBox.
-
- -
-

prompt

- public function prompt(String title, String msg, [Function fn], [Object scope], [Boolean/Number multiline]) -
- Displays a message box with OK and Cancel buttons prompting the user to enter some text. The prompt can -be a single-line or multi-line textbox. If a callback function is passed it will be called after the user -clicks either button, and the id of the button that was clicked (could also be the top-right -close button) and the text that was entered will be passed as the two parameters to the callback. -
- Parameters: -
  • title : String
    The title bar text
  • msg : String
    The message box body text
  • fn : Function
    (optional) The callback function invoked after the message box is closed
  • scope : Object
    (optional) The scope of the callback function
  • multiline : Boolean/Number
    (optional) True to create a multiline textbox using the defaultTextHeight property, or the height in pixels to create the textbox (defaults to false / single-line)
- Returns: -
    -
  • Ext.MessageBox
    messageBox This message box
  • -
-
-
-
This method is defined by MessageBox.
-
- -
-

show

- public function show(Object config) -
- Displays a new message box, or reinitializes an existing message box, based on the config options -passed in. All functions (e.g. prompt, alert, etc) on MessageBox call this function internally. -The following config object properties are supported: -
-Property    Type             Description
-----------  ---------------  ----------------------------------------------------------------------
-title       String           The title text
-closable    Boolean          False to hide the top-right close box (defaults to true)
-prompt      Boolean          True to prompt the user to enter single-line text (defaults to false)
-multiline   Boolean          True to prompt the user to enter multi-line text (defaults to false)
-progress    Boolean          True to display a progress bar (defaults to false)
-value       String           The string value to set into the active textbox element if displayed
-buttons     Object/Boolean   A button config object (e.g., Ext.MessageBox.OKCANCEL or {ok:'Foo',
-                             cancel:'Bar'}), or false to not show any buttons (defaults to false)
-msg         String           A string that will replace the existing message box body text (defaults
-                             to the XHTML-compliant non-breaking space character  )
-cls         String           A custom CSS class to apply to the message box element
-proxyDrag   Boolean          True to display a lightweight proxy while dragging (defaults to false)
-modal       Boolean          False to allow user interaction with the page while the message box is
-                             displayed (defaults to true)
-
-Example usage: -

-Ext.Msg.show({
-   title: 'Address',
-   msg: 'Please enter your address:',
-   width: 300,
-   buttons: Ext.MessageBox.OKCANCEL,
-   multiline: true,
-   fn: saveAddress,
-   animEl: 'addAddressBtn'
-});
-
-
- Parameters: -
  • config : Object
    Configuration options
- Returns: -
    -
  • Ext.MessageBox
    messageBox This message box
  • -
-
-
-
This method is defined by MessageBox.
-
- -
-

updateProgress

- public function updateProgress(Number value, String text) -
- Updates a progress-style message box's text and progress bar. Only relevant on message boxes -initiated via Ext.MessageBox.progress or by calling Ext.MessageBox.show with progress: true. -
- Parameters: -
  • value : Number
    Any number between 0 and 1 (e.g., .5)
  • text : String
    If defined, the message box's body text is replaced with the specified string (defaults to undefined)
- Returns: -
    -
  • Ext.MessageBox
    messageBox This message box
  • -
-
-
-
This method is defined by MessageBox.
-
- -
-

updateText

- public function updateText(String text) -
- Updates the message box body text -
- Parameters: -
  • text : String
    Replaces the message box element's innerHTML with the specified string (defaults to the XHTML-compliant non-breaking space character  )
- Returns: -
    -
  • Ext.MessageBox
    messageBox This message box
  • -
-
-
-
This method is defined by MessageBox.
-
- -
-

wait

- public function wait(String msg, [String title]) -
- Displays a message box with an infinitely auto-updating progress bar. This can be used to block user -interaction while waiting for a long-running process to complete that does not have defined intervals. -You are responsible for closing the message box when the process is complete. -
- Parameters: -
  • msg : String
    The message box body text
  • title : String
    (optional) The title bar text
- Returns: -
    -
  • Ext.MessageBox
    messageBox This message box
  • -
-
-
-
This method is defined by MessageBox.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.NestedLayoutPanel.html b/www/extras/extjs/docs/output/Ext.NestedLayoutPanel.html deleted file mode 100644 index d3caf9257..000000000 --- a/www/extras/extjs/docs/output/Ext.NestedLayoutPanel.html +++ /dev/null @@ -1,898 +0,0 @@ - - - - Ext.NestedLayoutPanel - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.NestedLayoutPanel

- - - - - -
Package:Ext
Class:NestedLayoutPanel
Extends:ContentPanel
Defined In:ContentPanels.js
-
-
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 NestedLayoutPanel(Ext.BorderLayout layout, String/Object config)NestedLayoutPanel
Create a new NestedLayoutPanel.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 destroy() : voidContentPanel
Destroys this panel
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getEl() : Ext.ElementContentPanel
Returns this panel's element
 getId() : StringContentPanel
Returns this panel's id
 getLayout() : Ext.BorderLayoutNestedLayoutPanel
Returns the nested BorderLayout for this panel
 getTitle() : StringContentPanel
Returns this panel's title
 getToolbar() : Ext.ToolbarContentPanel
Returns the toolbar for this Panel if one was configured.
 getUpdateManager() : Ext.UpdateManagerContentPanel
Get the Ext.UpdateManager for this panel. Enables you to perform Ajax updates.
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 isClosable() : BooleanContentPanel
Returns true is this panel was configured to be closable
 load(Object/String/Function url, [String/Object params], [Function callback], [Boolean discardUrl]) : Ext.ContentPanelContentPanel
Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use ...
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 refresh() : voidContentPanel
Force a content refresh from the URL specified in the setUrl() method. -Will fail silently if the setUrl method has no...
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 setContent(String content, [Boolean loadScripts]) : voidContentPanel
Updates this panel's element
 setTitle(String title) : voidContentPanel
Set this panel's title
 setUrl(String/Function url, [String/Object params], [Boolean loadOnce]) : Ext.UpdateManagerContentPanel
Set a URL to be used to load the content for this panel. When this panel is activated, the content will be loaded fro...
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 activate : (Ext.ContentPanel this)ContentPanel
Fires when this panel is activated.
 deactivate : (Ext.ContentPanel this)ContentPanel
Fires when this panel is activated.
 resize : (Ext.ContentPanel this, Number width, Number height)ContentPanel
Fires when this panel is resized if fitToFrame is true.
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 adjustments : ArrayContentPanel
Values to add to the width/height when doing a fitToFrame (default is [0, 0])
 autoCreate : Boolean/ObjectContentPanel
True to auto generate the DOM element for this panel, or a DomHelper config of the element to create
 autoScroll : BooleanContentPanel
True to scroll overflow in this panel (use with fitToFrame)
 background : BooleanContentPanel
True if the panel should not be activated when it is added (defaults to false)
 closable : BooleanContentPanel
True if the panel can be closed/removed
 fitContainer : BooleanContentPanel
When using fitToFrame and resizeEl, you can also fit the parent container (defaults to false)
 fitToFrame : BooleanContentPanel
True for this panel to adjust its size to fit when the region resizes (defaults to false)
 loadOnce : BooleanContentPanel
Calls When used with "url", calls setUrl() with this value
 params : String/ObjectContentPanel
When used with "url", calls setUrl() with this value
 resizeEl : String/HTMLElement/ElementContentPanel
An element to resize if fitToFrame is true (instead of this panel's element)
 title : StringContentPanel
The title for this panel
 toolbar : ToolbarContentPanel
A toolbar for this panel
 url : StringContentPanel
Calls setUrl() with this value
- - -

Constructor Details

-
-
-

NestedLayoutPanel

- public function NestedLayoutPanel(Ext.BorderLayout layout, String/Object config) -
- Create a new NestedLayoutPanel.
- Parameters: -
  • layout : Ext.BorderLayout
    The layout for this panel
  • config : String/Object
    A string to set only the title or a config object
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

destroy

- public function destroy() -
- Destroys this panel -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getEl

- public function getEl() -
- Returns this panel's element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

getId

- public function getId() -
- Returns this panel's id -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

getLayout

- public function getLayout() -
- Returns the nested BorderLayout for this panel -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.BorderLayout
  • -
-
-
-
This method is defined by NestedLayoutPanel.
-
- -
-

getTitle

- public function getTitle() -
- Returns this panel's title -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

getToolbar

- public function getToolbar() -
- Returns the toolbar for this Panel if one was configured. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Toolbar
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

getUpdateManager

- public function getUpdateManager() -
- Get the Ext.UpdateManager for this panel. Enables you to perform Ajax updates. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.UpdateManager
    The UpdateManager
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

isClosable

- public function isClosable() -
- Returns true is this panel was configured to be closable -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

load

- public function load(Object/String/Function url, [String/Object params], [Function callback], [Boolean discardUrl]) -
- Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use setUrl. -
- Parameters: -
  • url : Object/String/Function
    The url for this request or a function to call to get the url or a config object containing any of the following options:
     panel.load({
    url: "your-url.php",
    params: {param1: "foo", param2: "bar"}, // or a URL encoded string
    callback: yourFunction,
    scope: yourObject, //(optional scope)
    discardUrl: false,
    nocache: false,
    text: "Loading...",
    timeout: 30,
    scripts: false
    });
    The only required property is url. The optional properties nocache, text and scripts are shorthand for disableCaching, indicatorText and loadScripts and are used to set their associated property on this panel UpdateManager instance.
  • params : String/Object
    (optional) The parameters to pass as either a url encoded string "param1=1&param2=2" or an object {param1: 1, param2: 2}
  • callback : Function
    (optional) Callback when transaction is complete - called with signature (oElement, bSuccess, oResponse)
  • discardUrl : Boolean
    (optional) By default when you execute an update the defaultUrl is changed to the last used url. If true, it will not store the url.
- Returns: -
    -
  • Ext.ContentPanel
    this
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

refresh

- public function refresh() -
- Force a content refresh from the URL specified in the setUrl() method. -Will fail silently if the setUrl method has not been called. -This does not activate the panel, just updates its content. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

setContent

- public function setContent(String content, [Boolean loadScripts]) -
- Updates this panel's element -
- Parameters: -
  • content : String
    The new content
  • loadScripts : Boolean
    (optional) true to look for and process scripts
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

setTitle

- public function setTitle(String title) -
- Set this panel's title -
- Parameters: -
  • title : String
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

setUrl

- public function setUrl(String/Function url, [String/Object params], [Boolean loadOnce]) -
- Set a URL to be used to load the content for this panel. When this panel is activated, the content will be loaded from that URL. -
- Parameters: -
  • url : String/Function
    The url to load the content from or a function to call to get the url
  • params : String/Object
    (optional) The string params for the update call or an object of the params. See Ext.UpdateManager.update for more details. (Defaults to null)
  • loadOnce : Boolean
    (optional) Whether to only load the content once. If this is false it makes the Ajax call every time this panel is activated. (Defaults to false)
- Returns: -
    -
  • Ext.UpdateManager
    The UpdateManager
  • -
-
-
-
This method is defined by ContentPanel.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

activate

- public event activate -
- Fires when this panel is activated. -
- Subscribers will be called with the following parameters: -
  • this : Ext.ContentPanel
-
-
-
This event is defined by ContentPanel.
-
- -
-

deactivate

- public event deactivate -
- Fires when this panel is activated. -
- Subscribers will be called with the following parameters: -
  • this : Ext.ContentPanel
-
-
-
This event is defined by ContentPanel.
-
- -
-

resize

- public event resize -
- Fires when this panel is resized if fitToFrame is true. -
- Subscribers will be called with the following parameters: -
  • this : Ext.ContentPanel
  • width : Number
    The width after any component adjustments
  • height : Number
    The height after any component adjustments
-
-
-
This event is defined by ContentPanel.
-
-
-

Config Details

-
- -
-

adjustments

- adjustments : Array -
- Values to add to the width/height when doing a fitToFrame (default is [0, 0])
-
This config option is defined by ContentPanel.
-
- -
-

autoCreate

- autoCreate : Boolean/Object -
- True to auto generate the DOM element for this panel, or a DomHelper config of the element to create
-
This config option is defined by ContentPanel.
-
- -
-

autoScroll

- autoScroll : Boolean -
- True to scroll overflow in this panel (use with fitToFrame)
-
This config option is defined by ContentPanel.
-
- -
-

background

- background : Boolean -
- True if the panel should not be activated when it is added (defaults to false)
-
This config option is defined by ContentPanel.
-
- -
-

closable

- closable : Boolean -
- True if the panel can be closed/removed
-
This config option is defined by ContentPanel.
-
- -
-

fitContainer

- fitContainer : Boolean -
- When using fitToFrame and resizeEl, you can also fit the parent container (defaults to false)
-
This config option is defined by ContentPanel.
-
- -
-

fitToFrame

- fitToFrame : Boolean -
- True for this panel to adjust its size to fit when the region resizes (defaults to false)
-
This config option is defined by ContentPanel.
-
- -
-

loadOnce

- loadOnce : Boolean -
- Calls When used with "url", calls setUrl() with this value
-
This config option is defined by ContentPanel.
-
- -
-

params

- params : String/Object -
- When used with "url", calls setUrl() with this value
-
This config option is defined by ContentPanel.
-
- -
-

resizeEl

- resizeEl : String/HTMLElement/Element -
- An element to resize if fitToFrame is true (instead of this panel's element)
-
This config option is defined by ContentPanel.
-
- -
-

title

- title : String -
- The title for this panel
-
This config option is defined by ContentPanel.
-
- -
-

toolbar

- toolbar : Toolbar -
- A toolbar for this panel
-
This config option is defined by ContentPanel.
-
- -
-

url

- url : String -
- Calls setUrl() with this value
-
This config option is defined by ContentPanel.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.PagingToolbar.html b/www/extras/extjs/docs/output/Ext.PagingToolbar.html deleted file mode 100644 index 6434d1590..000000000 --- a/www/extras/extjs/docs/output/Ext.PagingToolbar.html +++ /dev/null @@ -1,586 +0,0 @@ - - - - Ext.PagingToolbar - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.PagingToolbar

- - - - - -
Package:Ext
Class:PagingToolbar
Extends:Toolbar
Defined In:PagingToolbar.js
-
- A specialized toolbar that is bound to a Ext.data.Store and provides automatic paging controls.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 afterPageText : StringPagingToolbar
Customizable piece of the default paging text (defaults to "of %0")
 beforePageText : StringPagingToolbar
Customizable piece of the default paging text (defaults to "Page")
 firstText : StringPagingToolbar
Customizable piece of the default paging text (defaults to "First Page")
 lastText : StringPagingToolbar
Customizable piece of the default paging text (defaults to "Last Page")
 nextText : StringPagingToolbar
Customizable piece of the default paging text (defaults to "Next Page")
 prevText : StringPagingToolbar
Customizable piece of the default paging text (defaults to "Previous Page")
 refreshText : StringPagingToolbar
Customizable piece of the default paging text (defaults to "Refresh")
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 PagingToolbar(String/HTMLElement/Element container, Ext.data.Store store, Object config)PagingToolbar
Create a new PagingToolbar
 add(Mixed arg1, Mixed arg2, Mixed etc) : voidToolbar
Adds element(s) to the toolbar - this function takes a variable number of -arguments of mixed type and adds them to t...
 addButton(Object/Array config) : Ext.Toolbar.Button/ArrayToolbar
Add a button (or buttons), see Ext.Toolbar.Button for more info on the config
 addDom(Object config) : Ext.Toolbar.ItemToolbar
Adds a new element to the toolbar from the passed DomHelper config
 addElement(String/HTMLElement/Element el) : Ext.Toolbar.ItemToolbar
Adds any standard HTML element to the toolbar
 addField(Field field) : ToolbarItemToolbar
Add a dynamically rendered Ext.form field (TextField, ComboBox, etc). Note: the field should not have -been rendered y...
 addItem(Toolbar.Item item) : Ext.Toolbar.ItemToolbar
Adds any Toolbar.Item or subclass
 addSeparator() : Ext.Toolbar.ItemToolbar
Adds a separator
 addSpacer() : Ext.Toolbar.ItemToolbar
Adds a spacer element
 addText(String text) : Ext.Toolbar.ItemToolbar
Adds text to the toolbar
 bind(Ext.data.Store store) : voidPagingToolbar
Binds the paging toolbar to the specified Ext.data.Store
 getEl() : Ext.ElementToolbar
Returns the element for this toolbar
 insertButton(Number index, Object/Toolbar.Item/Toolbar.Button (may) : Ext.Toolbar.Button/ItemToolbar
Inserts any Toolbar.Item/Toolbar.Button at the specified index
 unbind(Ext.data.Store store) : voidPagingToolbar
Unbinds the paging toolbar from the specified Ext.data.Store
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 displayMsg : StringPagingToolbar
The paging status message to display (defaults to "Displaying {start} - {end} of {total}")
 emptyMsg : StringPagingToolbar
The message to display when no records are found (defaults to "No data to display")
 pageSize : NumberPagingToolbar
The number of records to display per page (defaults to 20)
-

Property Details

-
- -
-

afterPageText

- public String afterPageText -
- Customizable piece of the default paging text (defaults to "of %0")
-
This property is defined by PagingToolbar.
-
- -
-

beforePageText

- public String beforePageText -
- Customizable piece of the default paging text (defaults to "Page")
-
This property is defined by PagingToolbar.
-
- -
-

firstText

- public String firstText -
- Customizable piece of the default paging text (defaults to "First Page")
-
This property is defined by PagingToolbar.
-
- -
-

lastText

- public String lastText -
- Customizable piece of the default paging text (defaults to "Last Page")
-
This property is defined by PagingToolbar.
-
- -
-

nextText

- public String nextText -
- Customizable piece of the default paging text (defaults to "Next Page")
-
This property is defined by PagingToolbar.
-
- -
-

prevText

- public String prevText -
- Customizable piece of the default paging text (defaults to "Previous Page")
-
This property is defined by PagingToolbar.
-
- -
-

refreshText

- public String refreshText -
- Customizable piece of the default paging text (defaults to "Refresh")
-
This property is defined by PagingToolbar.
-
-
- - -

Constructor Details

-
-
-

PagingToolbar

- public function PagingToolbar(String/HTMLElement/Element container, Ext.data.Store store, Object config) -
- Create a new PagingToolbar
- Parameters: -
  • container : String/HTMLElement/Element
    The id or element that will contain the toolbar
  • store : Ext.data.Store
    The underlying data store providing the paged data
  • config : Object
    The config object
-
-
-
-
- -

Method Details

-
- -
-

add

- public function add(Mixed arg1, Mixed arg2, Mixed etc) -
- Adds element(s) to the toolbar - this function takes a variable number of -arguments of mixed type and adds them to the toolbar. -
- Parameters: -
  • arg1 : Mixed
    If arg is a Toolbar.Button, it is added. If arg is a string, it is wrapped in a ytb-text element and added unless the text is "separator" in which case a separator is added. Otherwise, it is assumed the element is an HTMLElement and it is added directly.
  • arg2 : Mixed
  • etc : Mixed
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addButton

- public function addButton(Object/Array config) -
- Add a button (or buttons), see Ext.Toolbar.Button for more info on the config -
- Parameters: -
  • config : Object/Array
    A button config or array of configs
- Returns: -
    -
  • Ext.Toolbar.Button/Array
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addDom

- public function addDom(Object config) -
- Adds a new element to the toolbar from the passed DomHelper config -
- Parameters: -
  • config : Object
- Returns: -
    -
  • Ext.Toolbar.Item
    The element's item
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addElement

- public function addElement(String/HTMLElement/Element el) -
- Adds any standard HTML element to the toolbar -
- Parameters: -
  • el : String/HTMLElement/Element
    The element or id of the element to add
- Returns: -
    -
  • Ext.Toolbar.Item
    The element's item
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addField

- public function addField(Field field) -
- Add a dynamically rendered Ext.form field (TextField, ComboBox, etc). Note: the field should not have -been rendered yet. For a field that has already been rendered, use addElement. -
- Parameters: -
  • field : Field
- Returns: -
    -
  • ToolbarItem
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addItem

- public function addItem(Toolbar.Item item) -
- Adds any Toolbar.Item or subclass -
- Parameters: -
  • item : Toolbar.Item
- Returns: -
    -
  • Ext.Toolbar.Item
    The item
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addSeparator

- public function addSeparator() -
- Adds a separator -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Toolbar.Item
    The separator item
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addSpacer

- public function addSpacer() -
- Adds a spacer element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Toolbar.Item
    The spacer item
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addText

- public function addText(String text) -
- Adds text to the toolbar -
- Parameters: -
  • text : String
    The text to add
- Returns: -
    -
  • Ext.Toolbar.Item
    The element's item
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

bind

- public function bind(Ext.data.Store store) -
- Binds the paging toolbar to the specified Ext.data.Store -
- Parameters: -
  • store : Ext.data.Store
    The data store to bind
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by PagingToolbar.
-
- -
-

getEl

- public function getEl() -
- Returns the element for this toolbar -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

insertButton

- public function insertButton(Number index, Object/Toolbar.Item/Toolbar.Button (may) -
- Inserts any Toolbar.Item/Toolbar.Button at the specified index -
- Parameters: -
  • index : Number
    The index where the item is to be inserted
  • (may : Object/Toolbar.Item/Toolbar.Button
    be Array)} item The button, or button config object to be inserted.
- Returns: -
    -
  • Ext.Toolbar.Button/Item
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

unbind

- public function unbind(Ext.data.Store store) -
- Unbinds the paging toolbar from the specified Ext.data.Store -
- Parameters: -
  • store : Ext.data.Store
    The data store to unbind
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by PagingToolbar.
-
-
- -

Config Details

-
- -
-

displayMsg

- displayMsg : String -
- The paging status message to display (defaults to "Displaying {start} - {end} of {total}")
-
This config option is defined by PagingToolbar.
-
- -
-

emptyMsg

- emptyMsg : String -
- The message to display when no records are found (defaults to "No data to display")
-
This config option is defined by PagingToolbar.
-
- -
-

pageSize

- pageSize : Number -
- The number of records to display per page (defaults to 20)
-
This config option is defined by PagingToolbar.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.QuickTips.html b/www/extras/extjs/docs/output/Ext.QuickTips.html deleted file mode 100644 index 544f4d126..000000000 --- a/www/extras/extjs/docs/output/Ext.QuickTips.html +++ /dev/null @@ -1,367 +0,0 @@ - - - - Ext.QuickTips - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.QuickTips

- - - - - -
Package:Ext
Class:QuickTips
Extends:Object
Defined In:QuickTips.js
-
- Provides attractive and customizable tooltips for any element.

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 disable() : voidQuickTips
Disable this quick tip
 enable() : voidQuickTips
Enable this quick tip
 isEnabled() : voidQuickTips
Returns true if the quick tip is enabled, else false
 register(Object config) : voidQuickTips
Configures a new quick tip instance and assigns it to a target element
 unregister() : voidQuickTips
Removes this quick tip from its element and destroys it
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 Delay : NumberQuickTips
in milliseconds before the quick tip hides when autoDismiss = true (defaults to 5000)
 True : BooleanQuickTips
to automatically hide the quick tip after a set period of time, regardless of the user's actions (defaults to true). ...
 animate : BooleanQuickTips
True to turn on fade animation. Defaults to false (ClearType/scrollbar flicker issues in IE7).
 autoHide : BooleanQuickTips
True to automatically hide the quick tip after the mouse exits the target element (defaults to true). Used in conjunc...
 hideDelay : NumberQuickTips
Delay in milliseconds before the quick tip hides when autoHide = true (defaults to 200)
 hideOnClick : BooleanQuickTips
True to hide the quick tip if the user clicks anywhere in the document (defaults to true)
 interceptTitles : BooleanQuickTips
True to automatically use the element's DOM title value if available (defaults to false)
 maxWidth : NumberQuickTips
The maximum width of the quick tip (defaults to 300)
 minWidth : NumberQuickTips
The minimum width of the quick tip (defaults to 40)
 showDelay : NumberQuickTips
Delay in milliseconds before the quick tip displays after the mouse enters the target element (defaults to 500)
 trackMouse : BooleanQuickTips
True to have the quick tip follow the mouse as it moves over the target element (defaults to false)
- - -

Method Details

-
- -
-

disable

- public function disable() -
- Disable this quick tip -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by QuickTips.
-
- -
-

enable

- public function enable() -
- Enable this quick tip -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by QuickTips.
-
- -
-

isEnabled

- public function isEnabled() -
- Returns true if the quick tip is enabled, else false -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by QuickTips.
-
- -
-

register

- public function register(Object config) -
- Configures a new quick tip instance and assigns it to a target element -
- Parameters: -
  • config : Object
    The config object
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by QuickTips.
-
- -
-

unregister

- public function unregister() -
- Removes this quick tip from its element and destroys it -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by QuickTips.
-
-
- -

Config Details

-
- -
-

Delay

- Delay : Number -
- in milliseconds before the quick tip hides when autoDismiss = true (defaults to 5000)
-
This config option is defined by QuickTips.
-
- -
-

True

- True : Boolean -
- to automatically hide the quick tip after a set period of time, regardless of the user's actions (defaults to true). Used in conjunction with autoDismissDelay.
-
This config option is defined by QuickTips.
-
- -
-

animate

- animate : Boolean -
- True to turn on fade animation. Defaults to false (ClearType/scrollbar flicker issues in IE7).
-
This config option is defined by QuickTips.
-
- -
-

autoHide

- autoHide : Boolean -
- True to automatically hide the quick tip after the mouse exits the target element (defaults to true). Used in conjunction with hideDelay.
-
This config option is defined by QuickTips.
-
- -
-

hideDelay

- hideDelay : Number -
- Delay in milliseconds before the quick tip hides when autoHide = true (defaults to 200)
-
This config option is defined by QuickTips.
-
- -
-

hideOnClick

- hideOnClick : Boolean -
- True to hide the quick tip if the user clicks anywhere in the document (defaults to true)
-
This config option is defined by QuickTips.
-
- -
-

interceptTitles

- interceptTitles : Boolean -
- True to automatically use the element's DOM title value if available (defaults to false)
-
This config option is defined by QuickTips.
-
- -
-

maxWidth

- maxWidth : Number -
- The maximum width of the quick tip (defaults to 300)
-
This config option is defined by QuickTips.
-
- -
-

minWidth

- minWidth : Number -
- The minimum width of the quick tip (defaults to 40)
-
This config option is defined by QuickTips.
-
- -
-

showDelay

- showDelay : Number -
- Delay in milliseconds before the quick tip displays after the mouse enters the target element (defaults to 500)
-
This config option is defined by QuickTips.
-
- -
-

trackMouse

- trackMouse : Boolean -
- True to have the quick tip follow the mouse as it moves over the target element (defaults to false)
-
This config option is defined by QuickTips.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.ReaderLayout.html b/www/extras/extjs/docs/output/Ext.ReaderLayout.html deleted file mode 100644 index 2ad7b9d96..000000000 --- a/www/extras/extjs/docs/output/Ext.ReaderLayout.html +++ /dev/null @@ -1,741 +0,0 @@ - - - - Ext.ReaderLayout - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.ReaderLayout

- - - - - -
Package:Ext
Class:ReaderLayout
Extends:BorderLayout
Defined In:ReaderLayout.js
-
- This is a pre-built layout that represents a classic, 5-pane application. It consists of a header, a primary -center region containing two nested regions (a top one for a list view and one for item preview below), -and regions on either side that can be used for navigation, application commands, informational displays, etc. -The setup and configuration work exactly the same as it does for a Ext.BorderLayout - this class simply -expedites the setup of the overall layout and regions for this common application style. -Example: -
var reader = new Ext.ReaderLayout();
-var CP = Ext.ContentPanel;  // shortcut for adding
-
-reader.beginUpdate();
-reader.add("north", new CP("north", "North"));
-reader.add("west", new CP("west", {title: "West"}));
-reader.add("east", new CP("east", {title: "East"}));
-
-reader.regions.listView.add(new CP("listView", "List"));
-reader.regions.preview.add(new CP("preview", "Preview"));
-reader.endUpdate();
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 monitorWindowResize : BooleanLayoutManager
false to disable window resize monitoring
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 ReaderLayout(Object config, [String/HTMLElement/Element container])ReaderLayout
Create a new ReaderLayout
 add(String target, Ext.ContentPanel panel) : Ext.ContentPanelBorderLayout
Adds a ContentPanel (or subclass) to this layout.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 addRegion(String target, Object config) : BorderLayoutRegionBorderLayout
Creates and adds a new region if it doesn't already exist.
 beginUpdate() : voidLayoutManager
Suspend the LayoutManager from doing auto-layouts while -making multiple add or remove calls
 endUpdate(Boolean noLayout) : voidLayoutManager
Restore auto-layouts and optionally disable the manager from performing a layout
 findPanel(String panelId) : Ext.ContentPanelBorderLayout
Searches all regions for a panel with the specified id
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getEl() : Ext.ElementLayoutManager
Returns the element this layout is bound to.
 getRegion(String target) : Ext.LayoutRegionLayoutManager
Returns the specified region.
 getViewSize() : ObjectLayoutManager
Returns the size of the current view, This method normalizes document.body and element embedded layouts and -performs ...
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 isUpdating() : BooleanLayoutManager
Returns true if this layout is currently being updated
 layout() : voidBorderLayout
Performs a layout update.
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 remove(String target, Number/String/Ext.ContentPanel panel) : Ext.ContentPanelBorderLayout
Remove a ContentPanel (or subclass) to this layout.
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 restoreState([Ext.state.Provider provider]) : voidBorderLayout
Restores this layouts state using Ext.state.Manager or the state provided by the passed provider.
 showPanel(String/ContentPanel panelId) : Ext.ContentPanelBorderLayout
Searches all regions for a panel with the specified id and activates (shows) it.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 layout : (Ext.LayoutManager this)LayoutManager
Fires when a layout is performed.
 regioncollapsed : (Ext.LayoutRegion region)LayoutManager
Fires when a region is collapsed.
 regionexpanded : (Ext.LayoutRegion region)LayoutManager
Fires when a region is expanded.
 regionresized : (Ext.LayoutRegion region, Number newSize)LayoutManager
Fires when the user resizes a region.
-

Property Details

-
- -
-

monitorWindowResize

- public Boolean monitorWindowResize -
- false to disable window resize monitoring
-
This property is defined by LayoutManager.
-
-
- - -

Constructor Details

-
-
-

ReaderLayout

- public function ReaderLayout(Object config, [String/HTMLElement/Element container]) -
- Create a new ReaderLayout
- Parameters: -
  • config : Object
    Configuration options
  • container : String/HTMLElement/Element
    (optional) The container this layout is bound to (defaults to document.body if omitted)
-
-
-
-
- -

Method Details

-
- -
-

add

- public function add(String target, Ext.ContentPanel panel) -
- Adds a ContentPanel (or subclass) to this layout. -
- Parameters: -
  • target : String
    The target region key (north, south, east, west or center).
  • panel : Ext.ContentPanel
    The panel to add
- Returns: -
    -
  • Ext.ContentPanel
    The added panel
  • -
-
-
-
This method is defined by BorderLayout.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addRegion

- public function addRegion(String target, Object config) -
- Creates and adds a new region if it doesn't already exist. -
- Parameters: -
  • target : String
    The target region key (north, south, east, west or center).
  • config : Object
    The regions config object
- Returns: -
    -
  • BorderLayoutRegion
    The new region
  • -
-
-
-
This method is defined by BorderLayout.
-
- -
-

beginUpdate

- public function beginUpdate() -
- Suspend the LayoutManager from doing auto-layouts while -making multiple add or remove calls -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

endUpdate

- public function endUpdate(Boolean noLayout) -
- Restore auto-layouts and optionally disable the manager from performing a layout -
- Parameters: -
  • noLayout : Boolean
    true to disable a layout update
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

findPanel

- public function findPanel(String panelId) -
- Searches all regions for a panel with the specified id -
- Parameters: -
  • panelId : String
- Returns: -
    -
  • Ext.ContentPanel
    The panel or null if it wasn't found
  • -
-
-
-
This method is defined by BorderLayout.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getEl

- public function getEl() -
- Returns the element this layout is bound to. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

getRegion

- public function getRegion(String target) -
- Returns the specified region. -
- Parameters: -
  • target : String
    The region key
- Returns: -
    -
  • Ext.LayoutRegion
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

getViewSize

- public function getViewSize() -
- Returns the size of the current view, This method normalizes document.body and element embedded layouts and -performs box-model adjustments. -
- Parameters: -
  • None.
- Returns: -
    -
  • Object
    The size as an object {width: (the width), height: (the height)}
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

isUpdating

- public function isUpdating() -
- Returns true if this layout is currently being updated -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by LayoutManager.
-
- -
-

layout

- public function layout() -
- Performs a layout update. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BorderLayout.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

remove

- public function remove(String target, Number/String/Ext.ContentPanel panel) -
- Remove a ContentPanel (or subclass) to this layout. -
- Parameters: -
  • target : String
    The target region key (north, south, east, west or center).
  • panel : Number/String/Ext.ContentPanel
    The index, id or panel to remove
- Returns: -
    -
  • Ext.ContentPanel
    The removed panel
  • -
-
-
-
This method is defined by BorderLayout.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

restoreState

- public function restoreState([Ext.state.Provider provider]) -
- Restores this layouts state using Ext.state.Manager or the state provided by the passed provider. -
- Parameters: -
  • provider : Ext.state.Provider
    (optional) An alternate state provider
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BorderLayout.
-
- -
-

showPanel

- public function showPanel(String/ContentPanel panelId) -
- Searches all regions for a panel with the specified id and activates (shows) it. -
- Parameters: -
  • panelId : String/ContentPanel
    The panels id or the panel itself
- Returns: -
    -
  • Ext.ContentPanel
    The shown panel or null
  • -
-
-
-
This method is defined by BorderLayout.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

layout

- public event layout -
- Fires when a layout is performed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutManager
-
-
-
This event is defined by LayoutManager.
-
- -
-

regioncollapsed

- public event regioncollapsed -
- Fires when a region is collapsed. -
- Subscribers will be called with the following parameters: -
  • region : Ext.LayoutRegion
-
-
-
This event is defined by LayoutManager.
-
- -
-

regionexpanded

- public event regionexpanded -
- Fires when a region is expanded. -
- Subscribers will be called with the following parameters: -
  • region : Ext.LayoutRegion
-
-
-
This event is defined by LayoutManager.
-
- -
-

regionresized

- public event regionresized -
- Fires when the user resizes a region. -
- Subscribers will be called with the following parameters: -
  • region : Ext.LayoutRegion
  • newSize : Number
    The new size (width for east/west, height for north/south)
-
-
-
This event is defined by LayoutManager.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Resizable.html b/www/extras/extjs/docs/output/Ext.Resizable.html deleted file mode 100644 index 884708427..000000000 --- a/www/extras/extjs/docs/output/Ext.Resizable.html +++ /dev/null @@ -1,699 +0,0 @@ - - - - Ext.Resizable - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Resizable

- - - - - -
Package:Ext
Class:Resizable
Extends:Observable
Defined In:Resizable.js
-
-

Applies drag handles to an element to make it resizable. The drag handles are inserted into the element -and positioned absolute. Some elements, such as a textarea or image, don't support this. To overcome that, you can wrap -the textarea in a div and set "resizeChild" to true (or to the id of the element), or set wrap:true in your config and -the element will be wrapped for you automatically.

-

Here is the list of valid resize handles:

-
Value   Description
------  -------------------
 'n'     north
 's'     south
 'e'     east
 'w'     west
 'nw'    northwest
 'sw'    southwest
 'se'    southeast
 'ne'    northeast
 'all'   all
-

Here's an example showing the creation of a typical Resizable:

-
var resizer = new Ext.Resizable("element-id", {
    handles: 'all',
    minWidth: 200,
    minHeight: 100,
    maxWidth: 500,
    maxHeight: 400,
    pinned: true
});
resizer.on("resize", myHandler);
-

To hide a particular handle, set its display to none in CSS, or through script:
-resizer.east.setDisplayed(false);

-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Resizable(String/HTMLElement/Ext.Element el, Object config)Resizable
Create a new resizable component
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 adjustments : Array/StringResizable
String "auto" or an array [width, height] with values to be added to the resize operation's new size (defaults to [0,...
 animate : BooleanResizable
True to animate the resize (not compatible with dynamic sizing, defaults to false)
 disableTrackOver : BooleanResizable
True to disable mouse tracking. This is only applied at config time. (defaults to false)
 draggable : BooleanResizable
Convenience to initialize drag drop (defaults to false)
 duration : NumberResizable
Animation duration if animate = true (defaults to .35)
 dynamic : BooleanResizable
True to resize the element while dragging instead of using a proxy (defaults to false)
 easing : StringResizable
Animation easing if animate = true (defaults to 'easingOutStrong')
 enabled : BooleanResizable
False to disable resizing (defaults to true)
 handles : Boolean/StringResizable
String consisting of the resize handles to display (defaults to false)
 height : NumberResizable
The height of the element in pixels (defaults to null)
 heightIncrement : NumberResizable
The increment to snap the height resize in pixels (dynamic must be true, defaults to 0)
 maxHeight : NumberResizable
The maximum height for the element (defaults to 10000)
 maxWidth : NumberResizable
The maximum width for the element (defaults to 10000)
 minHeight : NumberResizable
The minimum height for the element (defaults to 5)
 minWidth : NumberResizable
The minimum width for the element (defaults to 5)
 minX : NumberResizable
The minimum allowed page X for the element (only used for west resizing, defaults to 0)
 minY : NumberResizable
The minimum allowed page Y for the element (only used for north resizing, defaults to 0)
 multiDirectional : BooleanResizable
Deprecated. The old style of adding multi-direction resize handles, deprecated in favor of the handles config option ...
 pinned : BooleanResizable
True to ensure that the resize handles are always visible, false to display them only when the user mouses over the r...
 preserveRatio : BooleanResizable
True to preserve the original ratio between height and width during resize (defaults to false)
 resizeChild : Boolean/String/ElementResizable
True to resize the first child, or id/element to resize (defaults to false)
 transparent : BooleanResizable
True for transparent handles. This is only applied at config time. (defaults to false)
 width : NumberResizable
The width of the element in pixels (defaults to null)
 widthIncrement : NumberResizable
The increment to snap the width resize in pixels (dynamic must be true, defaults to 0)
 wrap : BooleanResizable
True to wrap an element with a div if needed (required for textareas and images, defaults to false)
- - -

Constructor Details

-
-
-

Resizable

- public function Resizable(String/HTMLElement/Ext.Element el, Object config) -
- Create a new resizable component
- Parameters: -
  • el : String/HTMLElement/Ext.Element
    The id or element to resize
  • config : Object
    configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Config Details

-
- -
-

adjustments

- adjustments : Array/String -
- String "auto" or an array [width, height] with values to be added to the resize operation's new size (defaults to [0, 0])
-
This config option is defined by Resizable.
-
- -
-

animate

- animate : Boolean -
- True to animate the resize (not compatible with dynamic sizing, defaults to false)
-
This config option is defined by Resizable.
-
- -
-

disableTrackOver

- disableTrackOver : Boolean -
- True to disable mouse tracking. This is only applied at config time. (defaults to false)
-
This config option is defined by Resizable.
-
- -
-

draggable

- draggable : Boolean -
- Convenience to initialize drag drop (defaults to false)
-
This config option is defined by Resizable.
-
- -
-

duration

- duration : Number -
- Animation duration if animate = true (defaults to .35)
-
This config option is defined by Resizable.
-
- -
-

dynamic

- dynamic : Boolean -
- True to resize the element while dragging instead of using a proxy (defaults to false)
-
This config option is defined by Resizable.
-
- -
-

easing

- easing : String -
- Animation easing if animate = true (defaults to 'easingOutStrong')
-
This config option is defined by Resizable.
-
- -
-

enabled

- enabled : Boolean -
- False to disable resizing (defaults to true)
-
This config option is defined by Resizable.
-
- -
-

handles

- handles : Boolean/String -
- String consisting of the resize handles to display (defaults to false)
-
This config option is defined by Resizable.
-
- -
-

height

- height : Number -
- The height of the element in pixels (defaults to null)
-
This config option is defined by Resizable.
-
- -
-

heightIncrement

- heightIncrement : Number -
- The increment to snap the height resize in pixels (dynamic must be true, defaults to 0)
-
This config option is defined by Resizable.
-
- -
-

maxHeight

- maxHeight : Number -
- The maximum height for the element (defaults to 10000)
-
This config option is defined by Resizable.
-
- -
-

maxWidth

- maxWidth : Number -
- The maximum width for the element (defaults to 10000)
-
This config option is defined by Resizable.
-
- -
-

minHeight

- minHeight : Number -
- The minimum height for the element (defaults to 5)
-
This config option is defined by Resizable.
-
- -
-

minWidth

- minWidth : Number -
- The minimum width for the element (defaults to 5)
-
This config option is defined by Resizable.
-
- -
-

minX

- minX : Number -
- The minimum allowed page X for the element (only used for west resizing, defaults to 0)
-
This config option is defined by Resizable.
-
- -
-

minY

- minY : Number -
- The minimum allowed page Y for the element (only used for north resizing, defaults to 0)
-
This config option is defined by Resizable.
-
- -
-

multiDirectional

- multiDirectional : Boolean -
- Deprecated. The old style of adding multi-direction resize handles, deprecated in favor of the handles config option (defaults to false)
-
This config option is defined by Resizable.
-
- -
-

pinned

- pinned : Boolean -
- True to ensure that the resize handles are always visible, false to display them only when the user mouses over the resizable borders. This is only applied at config time. (defaults to false)
-
This config option is defined by Resizable.
-
- -
-

preserveRatio

- preserveRatio : Boolean -
- True to preserve the original ratio between height and width during resize (defaults to false)
-
This config option is defined by Resizable.
-
- -
-

resizeChild

- resizeChild : Boolean/String/Element -
- True to resize the first child, or id/element to resize (defaults to false)
-
This config option is defined by Resizable.
-
- -
-

transparent

- transparent : Boolean -
- True for transparent handles. This is only applied at config time. (defaults to false)
-
This config option is defined by Resizable.
-
- -
-

width

- width : Number -
- The width of the element in pixels (defaults to null)
-
This config option is defined by Resizable.
-
- -
-

widthIncrement

- widthIncrement : Number -
- The increment to snap the width resize in pixels (dynamic must be true, defaults to 0)
-
This config option is defined by Resizable.
-
- -
-

wrap

- wrap : Boolean -
- True to wrap an element with a div if needed (required for textareas and images, defaults to false)
-
This config option is defined by Resizable.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Shadow.html b/www/extras/extjs/docs/output/Ext.Shadow.html deleted file mode 100644 index 91dd02a06..000000000 --- a/www/extras/extjs/docs/output/Ext.Shadow.html +++ /dev/null @@ -1,249 +0,0 @@ - - - - Ext.Shadow - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Shadow

- - - - - -
Package:Ext
Class:Shadow
Extends:Object
Defined In:Shadow.js
-
- Simple class that can provide a shadow effect for any element. Note that the element MUST be absolutely positioned, -and the shadow does not provide any shimming. This should be used only in simple cases -- for more advanced -functionality that can also provide the same shadow effect, see the Ext.Layer class.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Shadow(Object config)Shadow
Create a new Shadow
 hide() : voidShadow
Hides this shadow
 isVisible() : voidShadow
Returns true if the shadow is visible, else false
 realign(Number left, Number top, Number width, Number height) : voidShadow
Direct alignment when values are already available. Show must be called at least once before -calling this method to e...
 setZIndex(Number zindex) : voidShadow
Adjust the z-index of this shadow
 show(String/HTMLElement/Element targetEl) : voidShadow
Displays the shadow under the target element
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 mode : StringShadow
The shadow display mode. Supports the following options: Option Description ------- --------------------------------...
 offset : StringShadow
The number of pixels to offset the shadow from the element (defaults to 4)
- - -

Constructor Details

-
-
-

Shadow

- public function Shadow(Object config) -
- Create a new Shadow
- Parameters: -
  • config : Object
    The config object
-
-
-
-
- -

Method Details

-
- -
-

hide

- public function hide() -
- Hides this shadow -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Shadow.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if the shadow is visible, else false -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Shadow.
-
- -
-

realign

- public function realign(Number left, Number top, Number width, Number height) -
- Direct alignment when values are already available. Show must be called at least once before -calling this method to ensure it is initialized. -
- Parameters: -
  • left : Number
    The target element left position
  • top : Number
    The target element top position
  • width : Number
    The target element width
  • height : Number
    The target element height
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Shadow.
-
- -
-

setZIndex

- public function setZIndex(Number zindex) -
- Adjust the z-index of this shadow -
- Parameters: -
  • zindex : Number
    The new z-index
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Shadow.
-
- -
-

show

- public function show(String/HTMLElement/Element targetEl) -
- Displays the shadow under the target element -
- Parameters: -
  • targetEl : String/HTMLElement/Element
    The id or element under which the shadow should display
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Shadow.
-
-
- -

Config Details

-
- -
-

mode

- mode : String -
- The shadow display mode. Supports the following options:
 Option Description ------- ---------------------------------------------- sides Shadow displays on both sides and bottom only frame Shadow displays equally on all four sides drop Traditional bottom-right drop shadow 
-
This config option is defined by Shadow.
-
- -
-

offset

- offset : String -
- The number of pixels to offset the shadow from the element (defaults to 4)
-
This config option is defined by Shadow.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.SplitBar.AbsoluteLayoutAdapter.html b/www/extras/extjs/docs/output/Ext.SplitBar.AbsoluteLayoutAdapter.html deleted file mode 100644 index 9327d03cb..000000000 --- a/www/extras/extjs/docs/output/Ext.SplitBar.AbsoluteLayoutAdapter.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - Ext.SplitBar.AbsoluteLayoutAdapter - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.SplitBar.AbsoluteLayoutAdapter

- - - - - -
Package:Ext
Class:SplitBar.AbsoluteLayoutAdapter
Extends:SplitBar.BasicLayoutAdapter
Defined In:SplitBar.js
-
- Adapter that moves the splitter element to align with the resized sizing element. -Used with an absolute positioned SplitBar.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 SplitBar.AbsoluteLayoutAdapter.BOTTOM : NumberSplitBar.AbsoluteLayoutAdapter
<static> Placement constant - The resizing element is positioned under splitter element
 SplitBar.AbsoluteLayoutAdapter.HORIZONTAL : NumberSplitBar.AbsoluteLayoutAdapter
<static> Orientation constant - Create a horizontal SplitBar
 SplitBar.AbsoluteLayoutAdapter.LEFT : NumberSplitBar.AbsoluteLayoutAdapter
<static> Placement constant - The resizing element is to the left of the splitter element
 SplitBar.AbsoluteLayoutAdapter.RIGHT : NumberSplitBar.AbsoluteLayoutAdapter
<static> Placement constant - The resizing element is to the right of the splitter element
 SplitBar.AbsoluteLayoutAdapter.TOP : NumberSplitBar.AbsoluteLayoutAdapter
<static> Placement constant - The resizing element is positioned above the splitter element
 SplitBar.AbsoluteLayoutAdapter.VERTICAL : NumberSplitBar.AbsoluteLayoutAdapter
<static> Orientation constant - Create a vertical SplitBar
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 getElementSize(Ext.SplitBar s) : voidSplitBar.BasicLayoutAdapter
Called before drag operations to get the current size of the resizing element.
 setElementSize(Ext.SplitBar s, Number newSize, Function onComplete) : voidSplitBar.BasicLayoutAdapter
Called after drag operations to set the size of the resizing element.
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

SplitBar.AbsoluteLayoutAdapter.BOTTOM

- public Number SplitBar.AbsoluteLayoutAdapter.BOTTOM -
- <static> Placement constant - The resizing element is positioned under splitter element
-
This property is defined by SplitBar.AbsoluteLayoutAdapter.
-
- -
-

SplitBar.AbsoluteLayoutAdapter.HORIZONTAL

- public Number SplitBar.AbsoluteLayoutAdapter.HORIZONTAL -
- <static> Orientation constant - Create a horizontal SplitBar
-
This property is defined by SplitBar.AbsoluteLayoutAdapter.
-
- -
-

SplitBar.AbsoluteLayoutAdapter.LEFT

- public Number SplitBar.AbsoluteLayoutAdapter.LEFT -
- <static> Placement constant - The resizing element is to the left of the splitter element
-
This property is defined by SplitBar.AbsoluteLayoutAdapter.
-
- -
-

SplitBar.AbsoluteLayoutAdapter.RIGHT

- public Number SplitBar.AbsoluteLayoutAdapter.RIGHT -
- <static> Placement constant - The resizing element is to the right of the splitter element
-
This property is defined by SplitBar.AbsoluteLayoutAdapter.
-
- -
-

SplitBar.AbsoluteLayoutAdapter.TOP

- public Number SplitBar.AbsoluteLayoutAdapter.TOP -
- <static> Placement constant - The resizing element is positioned above the splitter element
-
This property is defined by SplitBar.AbsoluteLayoutAdapter.
-
- -
-

SplitBar.AbsoluteLayoutAdapter.VERTICAL

- public Number SplitBar.AbsoluteLayoutAdapter.VERTICAL -
- <static> Orientation constant - Create a vertical SplitBar
-
This property is defined by SplitBar.AbsoluteLayoutAdapter.
-
-
- - -

Method Details

-
- -
-

getElementSize

- public function getElementSize(Ext.SplitBar s) -
- Called before drag operations to get the current size of the resizing element. -
- Parameters: -
  • s : Ext.SplitBar
    The SplitBar using this adapter
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by SplitBar.BasicLayoutAdapter.
-
- -
-

setElementSize

- public function setElementSize(Ext.SplitBar s, Number newSize, Function onComplete) -
- Called after drag operations to set the size of the resizing element. -
- Parameters: -
  • s : Ext.SplitBar
    The SplitBar using this adapter
  • newSize : Number
    The new size to set
  • onComplete : Function
    A function to be invoke when resizing is complete
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by SplitBar.BasicLayoutAdapter.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.SplitBar.BasicLayoutAdapter.html b/www/extras/extjs/docs/output/Ext.SplitBar.BasicLayoutAdapter.html deleted file mode 100644 index 0113f7b20..000000000 --- a/www/extras/extjs/docs/output/Ext.SplitBar.BasicLayoutAdapter.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - Ext.SplitBar.BasicLayoutAdapter - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.SplitBar.BasicLayoutAdapter

- - - - - - -
Package:Ext
Class:SplitBar.BasicLayoutAdapter
Extends:Object
Subclasses:SplitBar.AbsoluteLayoutAdapter
Defined In:SplitBar.js
-
- Default Adapter. It assumes the splitter and resizing element are not positioned -elements and only gets/sets the width of the element. Generally used for table based layouts.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 getElementSize(Ext.SplitBar s) : voidSplitBar.BasicLayoutAdapter
Called before drag operations to get the current size of the resizing element.
 setElementSize(Ext.SplitBar s, Number newSize, Function onComplete) : voidSplitBar.BasicLayoutAdapter
Called after drag operations to set the size of the resizing element.
- -

Public Events

-
This class has no public events.
- -

Method Details

-
- -
-

getElementSize

- public function getElementSize(Ext.SplitBar s) -
- Called before drag operations to get the current size of the resizing element. -
- Parameters: -
  • s : Ext.SplitBar
    The SplitBar using this adapter
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by SplitBar.BasicLayoutAdapter.
-
- -
-

setElementSize

- public function setElementSize(Ext.SplitBar s, Number newSize, Function onComplete) -
- Called after drag operations to set the size of the resizing element. -
- Parameters: -
  • s : Ext.SplitBar
    The SplitBar using this adapter
  • newSize : Number
    The new size to set
  • onComplete : Function
    A function to be invoke when resizing is complete
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by SplitBar.BasicLayoutAdapter.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.SplitBar.html b/www/extras/extjs/docs/output/Ext.SplitBar.html deleted file mode 100644 index 6a18a732a..000000000 --- a/www/extras/extjs/docs/output/Ext.SplitBar.html +++ /dev/null @@ -1,632 +0,0 @@ - - - - Ext.SplitBar - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.SplitBar

- - - - - -
Package:Ext
Class:SplitBar
Extends:Observable
Defined In:SplitBar.js
-
- Creates draggable splitter bar functionality from two elements. -

-Usage: -
var split = new Ext.SplitBar("elementToDrag", "elementToSize",
-                   Ext.SplitBar.HORIZONTAL, Ext.SplitBar.LEFT);
-split.setAdapter(new Ext.SplitBar.AbsoluteLayoutAdapter("container"));
-split.minSize = 100;
-split.maxSize = 600;
-split.animate = true;
-split.on('moved', splitterMoved);
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 animate : BooleanSplitBar
Whether to animate the transition to the new size
 maxSize : NumberSplitBar
The maximum size of the resizing element. (Defaults to 2000)
 minSize : NumberSplitBar
The minimum size of the resizing element. (Defaults to 0)
 useShim : BooleanSplitBar
Whether to create a transparent shim that overlays the page when dragging, enables dragging across iframes.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 SplitBar(String/HTMLElement/Element dragElement, String/HTMLElement/Element resizingElement, [Number orientation], [Number placement])SplitBar
Create a new SplitBar
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 destroy(Boolean removeEl) : voidSplitBar
Destroy this splitbar.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getAdapter() : TheSplitBar
Get the adapter this SplitBar uses
 getMaximumSize() : NumberSplitBar
Gets the maximum size for the resizing element
 getMinimumSize() : NumberSplitBar
Gets the minimum size for the resizing element
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 setAdapter(Object adapter) : voidSplitBar
Set the adapter this SplitBar uses
 setCurrentSize(Number size) : voidSplitBar
Sets the initialize size for the resizing element
 setMaximumSize(Number maxSize) : voidSplitBar
Sets the maximum size for the resizing element
 setMinimumSize(Number minSize) : voidSplitBar
Sets the minimum size for the resizing element
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforeresize : (Ext.SplitBar this)SplitBar
Fires before the splitter is dragged
 moved : (Ext.SplitBar this, Number newSize)SplitBar
Fires when the splitter is moved
 resize : (Ext.SplitBar this, Number newSize)SplitBar
Fires when the splitter is moved (alias for moved)
-

Property Details

-
- -
-

animate

- public Boolean animate -
- Whether to animate the transition to the new size
-
This property is defined by SplitBar.
-
- -
-

maxSize

- public Number maxSize -
- The maximum size of the resizing element. (Defaults to 2000)
-
This property is defined by SplitBar.
-
- -
-

minSize

- public Number minSize -
- The minimum size of the resizing element. (Defaults to 0)
-
This property is defined by SplitBar.
-
- -
-

useShim

- public Boolean useShim -
- Whether to create a transparent shim that overlays the page when dragging, enables dragging across iframes.
-
This property is defined by SplitBar.
-
-
- - -

Constructor Details

-
-
-

SplitBar

- public function SplitBar(String/HTMLElement/Element dragElement, String/HTMLElement/Element resizingElement, [Number orientation], [Number placement]) -
- Create a new SplitBar
- Parameters: -
  • dragElement : String/HTMLElement/Element
    The element to be dragged and act as the SplitBar.
  • resizingElement : String/HTMLElement/Element
    The element to be resized based on where the SplitBar element is dragged
  • orientation : Number
    (optional) Either Ext.SplitBar.HORIZONTAL or Ext.SplitBar.VERTICAL. (Defaults to HORIZONTAL)
  • placement : Number
    (optional) Either Ext.SplitBar.LEFT or Ext.SplitBar.RIGHT for horizontal or Ext.SplitBar.TOP or Ext.SplitBar.BOTTOM for vertical. (By default, this is determined automatically by the intial position position of the SplitBar).
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

destroy

- public function destroy(Boolean removeEl) -
- Destroy this splitbar. -
- Parameters: -
  • removeEl : Boolean
    True to remove the element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by SplitBar.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getAdapter

- public function getAdapter() -
- Get the adapter this SplitBar uses -
- Parameters: -
  • None.
- Returns: -
    -
  • The
    adapter object
  • -
-
-
-
This method is defined by SplitBar.
-
- -
-

getMaximumSize

- public function getMaximumSize() -
- Gets the maximum size for the resizing element -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
    The maximum size
  • -
-
-
-
This method is defined by SplitBar.
-
- -
-

getMinimumSize

- public function getMinimumSize() -
- Gets the minimum size for the resizing element -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
    The minimum size
  • -
-
-
-
This method is defined by SplitBar.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

setAdapter

- public function setAdapter(Object adapter) -
- Set the adapter this SplitBar uses -
- Parameters: -
  • adapter : Object
    A SplitBar adapter object
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by SplitBar.
-
- -
-

setCurrentSize

- public function setCurrentSize(Number size) -
- Sets the initialize size for the resizing element -
- Parameters: -
  • size : Number
    The initial size
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by SplitBar.
-
- -
-

setMaximumSize

- public function setMaximumSize(Number maxSize) -
- Sets the maximum size for the resizing element -
- Parameters: -
  • maxSize : Number
    The maximum size
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by SplitBar.
-
- -
-

setMinimumSize

- public function setMinimumSize(Number minSize) -
- Sets the minimum size for the resizing element -
- Parameters: -
  • minSize : Number
    The minimum size
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by SplitBar.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforeresize

- public event beforeresize -
- Fires before the splitter is dragged -
- Subscribers will be called with the following parameters: -
  • this : Ext.SplitBar
-
-
-
This event is defined by SplitBar.
-
- -
-

moved

- public event moved -
- Fires when the splitter is moved -
- Subscribers will be called with the following parameters: -
  • this : Ext.SplitBar
  • newSize : Number
    the new width or height
-
-
-
This event is defined by SplitBar.
-
- -
-

resize

- public event resize -
- Fires when the splitter is moved (alias for moved) -
- Subscribers will be called with the following parameters: -
  • this : Ext.SplitBar
  • newSize : Number
    the new width or height
-
-
-
This event is defined by SplitBar.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.SplitLayoutRegion.html b/www/extras/extjs/docs/output/Ext.SplitLayoutRegion.html deleted file mode 100644 index 06cdafaf6..000000000 --- a/www/extras/extjs/docs/output/Ext.SplitLayoutRegion.html +++ /dev/null @@ -1,1458 +0,0 @@ - - - - Ext.SplitLayoutRegion - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.SplitLayoutRegion

- - - - - -
Package:Ext
Class:SplitLayoutRegion
Extends:LayoutRegion
Defined In:SplitLayoutRegion.js
-
- Adds a splitbar and other (private) useful functionality to a LayoutRegion
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 bodyEl : Ext.ElementLayoutRegion
This regions body element
 collapsedEl : Ext.ElementLayoutRegion
This region's collapsed element
 el : Ext.ElementLayoutRegion
This regions container element
 panels : Ext.util.MixedCollectionBasicLayoutRegion
A collection of panels in this region.
 split : Ext.SplitBarSplitLayoutRegion
The SplitBar for this region
 titleTextEl : HTMLElementLayoutRegion
This regions title text element
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 add(ContentPanel... panel) : Ext.ContentPanelBasicLayoutRegion
Add the passed ContentPanel(s)
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 collapse([Boolean skipAnim]) : voidLayoutRegion
Collapses this region.
 expand(Ext.EventObject e, [Boolean skipAnim]) : voidLayoutRegion
Expand this region if it was previously collapsed.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getActivePanel() : Ext.ContentPanelBasicLayoutRegion
Get the active panel for this region.
 getEl() : Ext.ElementBasicLayoutRegion
Returns the container element for this region.
 getPanel(Number/String/ContentPanel panel) : Ext.ContentPanelBasicLayoutRegion
Returns the panel specified or null if it's not in this region.
 getPosition() : StringBasicLayoutRegion
Returns this regions position (north/south/east/west/center).
 getSplitBar() : Ext.SplitBarSplitLayoutRegion
Returns the SplitBar for this region.
 getTabs() : Ext.TabPanelLayoutRegion
Returns the TabPanel component used by this region
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hasPanel(Number/String/ContentPanel panel) : BooleanBasicLayoutRegion
Returns true if the panel is in this region.
 hide() : voidLayoutRegion
Hides this region.
 hidePanel(Number/String/ContentPanel panel) : voidLayoutRegion
Hides the tab for the specified panel.
 isVisible() : BooleanBasicLayoutRegion
Returns true if this region is currently visible.
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 remove(Number/String/ContentPanel panel, Boolean preservePanel) : Ext.ContentPanelBasicLayoutRegion
Removes the specified panel. If preservePanel is not true (either here or in the config), the panel is destroyed.
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 resizeTo(Number newSize) : voidBasicLayoutRegion
Resizes the region to the specified size. For vertical regions (west, east) this adjusts -the width, for horizontal (...
 setCollapsedTitle() : voidLayoutRegion
Updates the collapsed text for north/south regions (used with collapsedTitle config option)
 show() : voidLayoutRegion
Shows this region if it was previously hidden.
 showPanel(Number/String/ContentPanel panelId) : Ext.ContentPanelBasicLayoutRegion
Show the specified panel.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 unhidePanel(Number/String/ContentPanel panel) : voidLayoutRegion
Unhides the tab for a previously hidden panel.
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforeremove : (Ext.LayoutRegion this, Ext.ContentPanel panel, Object e)BasicLayoutRegion
Fires before a panel is removed (or closed). To cancel the removal set "e.cancel = true" on the event argument.
 collapsed : (Ext.LayoutRegion this)BasicLayoutRegion
Fires when this region is collapsed.
 expanded : (Ext.LayoutRegion this)BasicLayoutRegion
Fires when this region is expanded.
 invalidated : (Ext.LayoutRegion this)BasicLayoutRegion
Fires when the layout for this region is changed.
 panelactivated : (Ext.LayoutRegion this, Ext.ContentPanel panel)BasicLayoutRegion
Fires when a panel is activated.
 paneladded : (Ext.LayoutRegion this, Ext.ContentPanel panel)BasicLayoutRegion
Fires when a panel is added.
 panelremoved : (Ext.LayoutRegion this, Ext.ContentPanel panel)BasicLayoutRegion
Fires when a panel is removed.
 resized : (Ext.LayoutRegion this, Number newSize)BasicLayoutRegion
Fires when the user resizes this region.
 slidehide : (Ext.LayoutRegion this)BasicLayoutRegion
Fires when this region slides out of view.
 slideshow : (Ext.LayoutRegion this)BasicLayoutRegion
Fires when this region is slid into view.
 visibilitychange : (Ext.LayoutRegion this, Boolean visibility)BasicLayoutRegion
Fires when this region is shown or hidden
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 alwaysShowTabs : BooleanLayoutRegion
True to always display tabs even when only 1 panel (defaults to false)
 animate : BooleanLayoutRegion
True to animate expand/collapse (defaults to false)
 autoHide : BooleanLayoutRegion
False to disable autoHide when the mouse leaves the "floated" region (defaults to true)
 autoScroll : BooleanLayoutRegion
True to enable overflow scrolling (defaults to false)
 closeOnTab : BooleanLayoutRegion
True to place the close icon on the tabs instead of the region titlebar (defaults to false)
 cmargins : ObjectLayoutRegion
Margins for the element when collapsed (defaults to: north/south {top: 2, left: 0, right:0, bottom: 2} or east/west {...
 collapsed : BooleanLayoutRegion
True to set the initial display to collapsed (defaults to false)
 collapsedTitle : StringLayoutRegion
Optional string message to display in the collapsed block of a north or south region
 collapsible : BooleanLayoutRegion
False to disable collapsing (defaults to true)
 disableTabTips : BooleanLayoutRegion
True to disable tab tooltips
 floatable : BooleanLayoutRegion
False to disable floating (defaults to true)
 hidden : BooleanLayoutRegion
True to start the region hidden
 hideTabs : BooleanLayoutRegion
True to hide the tab strip (defaults to false)
 hideWhenEmpty : BooleanLayoutRegion
True to hide the region when it has no panels
 margins : ObjectLayoutRegion
Margins for the element (defaults to {top: 0, left: 0, right:0, bottom: 0})
 minTabWidth : NumberLayoutRegion
The minimum tab width (defaults to 40)
 preferredTabWidth : NumberLayoutRegion
The preferred tab width (defaults to 150)
 preservePanels : BooleanLayoutRegion
True to preserve removed panels so they can be readded later (defaults to false)
 resizeTabs : BooleanLayoutRegion
True to enable automatic tab resizing. This will resize the tabs so they are all the same size and fit within the spa...
 showPin : BooleanLayoutRegion
True to show a pin button
 tabPosition : StringLayoutRegion
"top" or "bottom" (defaults to "bottom")
 title : StringLayoutRegion
The title for the region (overrides panel titles)
 titlebar : BooleanLayoutRegion
True to display a title bar (defaults to true)
-

Property Details

-
- -
-

bodyEl

- public Ext.Element bodyEl -
- This regions body element
-
This property is defined by LayoutRegion.
-
- -
-

collapsedEl

- public Ext.Element collapsedEl -
- This region's collapsed element
-
This property is defined by LayoutRegion.
-
- -
-

el

- public Ext.Element el -
- This regions container element
-
This property is defined by LayoutRegion.
-
- -
-

panels

- public Ext.util.MixedCollection panels -
- A collection of panels in this region.
-
This property is defined by BasicLayoutRegion.
-
- -
-

split

- public Ext.SplitBar split -
- The SplitBar for this region
-
This property is defined by SplitLayoutRegion.
-
- -
-

titleTextEl

- public HTMLElement titleTextEl -
- This regions title text element
-
This property is defined by LayoutRegion.
-
-
- - -

Method Details

-
- -
-

add

- public function add(ContentPanel... panel) -
- Add the passed ContentPanel(s) -
- Parameters: -
  • panel : ContentPanel...
    The ContentPanel(s) to add (you can pass more than one)
- Returns: -
    -
  • Ext.ContentPanel
    The panel added (if only one was added)
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

collapse

- public function collapse([Boolean skipAnim]) -
- Collapses this region. -
- Parameters: -
  • skipAnim : Boolean
    (optional) true to collapse the element without animation (if animate is true)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

expand

- public function expand(Ext.EventObject e, [Boolean skipAnim]) -
- Expand this region if it was previously collapsed. -
- Parameters: -
  • e : Ext.EventObject
    The event that triggered the expand (or null if calling manually)
  • skipAnim : Boolean
    (optional) true to expand the element without animation (if animate is true)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getActivePanel

- public function getActivePanel() -
- Get the active panel for this region. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.ContentPanel
    The active panel or null
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

getEl

- public function getEl() -
- Returns the container element for this region. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

getPanel

- public function getPanel(Number/String/ContentPanel panel) -
- Returns the panel specified or null if it's not in this region. -
- Parameters: -
  • panel : Number/String/ContentPanel
    The panels index, id or the panel itself
- Returns: -
    -
  • Ext.ContentPanel
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

getPosition

- public function getPosition() -
- Returns this regions position (north/south/east/west/center). -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

getSplitBar

- public function getSplitBar() -
- Returns the SplitBar for this region. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.SplitBar
  • -
-
-
-
This method is defined by SplitLayoutRegion.
-
- -
-

getTabs

- public function getTabs() -
- Returns the TabPanel component used by this region -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.TabPanel
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hasPanel

- public function hasPanel(Number/String/ContentPanel panel) -
- Returns true if the panel is in this region. -
- Parameters: -
  • panel : Number/String/ContentPanel
    The panels index, id or the panel itself
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

hide

- public function hide() -
- Hides this region. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

hidePanel

- public function hidePanel(Number/String/ContentPanel panel) -
- Hides the tab for the specified panel. -
- Parameters: -
  • panel : Number/String/ContentPanel
    The panels index, id or the panel itself
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this region is currently visible. -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

remove

- public function remove(Number/String/ContentPanel panel, Boolean preservePanel) -
- Removes the specified panel. If preservePanel is not true (either here or in the config), the panel is destroyed. -
- Parameters: -
  • panel : Number/String/ContentPanel
    The panels index, id or the panel itself
  • preservePanel : Boolean
    Overrides the config preservePanel option
- Returns: -
    -
  • Ext.ContentPanel
    The panel that was removed
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

resizeTo

- public function resizeTo(Number newSize) -
- Resizes the region to the specified size. For vertical regions (west, east) this adjusts -the width, for horizontal (north, south) the height. -
- Parameters: -
  • newSize : Number
    The new width or height
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

setCollapsedTitle

- public function setCollapsedTitle() -
- Updates the collapsed text for north/south regions (used with collapsedTitle config option) -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

show

- public function show() -
- Shows this region if it was previously hidden. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutRegion.
-
- -
-

showPanel

- public function showPanel(Number/String/ContentPanel panelId) -
- Show the specified panel. -
- Parameters: -
  • panelId : Number/String/ContentPanel
    The panels index, id or the panel itself
- Returns: -
    -
  • Ext.ContentPanel
    The shown panel or null
  • -
-
-
-
This method is defined by BasicLayoutRegion.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

unhidePanel

- public function unhidePanel(Number/String/ContentPanel panel) -
- Unhides the tab for a previously hidden panel. -
- Parameters: -
  • panel : Number/String/ContentPanel
    The panels index, id or the panel itself
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by LayoutRegion.
-
-
- -

Event Details

-
- -
-

beforeremove

- public event beforeremove -
- Fires before a panel is removed (or closed). To cancel the removal set "e.cancel = true" on the event argument. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • panel : Ext.ContentPanel
    The panel
  • e : Object
    The cancel event object
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

collapsed

- public event collapsed -
- Fires when this region is collapsed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

expanded

- public event expanded -
- Fires when this region is expanded. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

invalidated

- public event invalidated -
- Fires when the layout for this region is changed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

panelactivated

- public event panelactivated -
- Fires when a panel is activated. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • panel : Ext.ContentPanel
    The activated panel
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

paneladded

- public event paneladded -
- Fires when a panel is added. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • panel : Ext.ContentPanel
    The panel
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

panelremoved

- public event panelremoved -
- Fires when a panel is removed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • panel : Ext.ContentPanel
    The panel
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

resized

- public event resized -
- Fires when the user resizes this region. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • newSize : Number
    The new size (width for east/west, height for north/south)
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

slidehide

- public event slidehide -
- Fires when this region slides out of view. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

slideshow

- public event slideshow -
- Fires when this region is slid into view. -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
-
-
-
This event is defined by BasicLayoutRegion.
-
- -
-

visibilitychange

- public event visibilitychange -
- Fires when this region is shown or hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.LayoutRegion
  • visibility : Boolean
    true or false
-
-
-
This event is defined by BasicLayoutRegion.
-
-
-

Config Details

-
- -
-

alwaysShowTabs

- alwaysShowTabs : Boolean -
- True to always display tabs even when only 1 panel (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

animate

- animate : Boolean -
- True to animate expand/collapse (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

autoHide

- autoHide : Boolean -
- False to disable autoHide when the mouse leaves the "floated" region (defaults to true)
-
This config option is defined by LayoutRegion.
-
- -
-

autoScroll

- autoScroll : Boolean -
- True to enable overflow scrolling (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

closeOnTab

- closeOnTab : Boolean -
- True to place the close icon on the tabs instead of the region titlebar (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

cmargins

- cmargins : Object -
- Margins for the element when collapsed (defaults to: north/south {top: 2, left: 0, right:0, bottom: 2} or east/west {top: 0, left: 2, right:2, bottom: 0})
-
This config option is defined by LayoutRegion.
-
- -
-

collapsed

- collapsed : Boolean -
- True to set the initial display to collapsed (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

collapsedTitle

- collapsedTitle : String -
- Optional string message to display in the collapsed block of a north or south region
-
This config option is defined by LayoutRegion.
-
- -
-

collapsible

- collapsible : Boolean -
- False to disable collapsing (defaults to true)
-
This config option is defined by LayoutRegion.
-
- -
-

disableTabTips

- disableTabTips : Boolean -
- True to disable tab tooltips
-
This config option is defined by LayoutRegion.
-
- -
-

floatable

- floatable : Boolean -
- False to disable floating (defaults to true)
-
This config option is defined by LayoutRegion.
-
- -
-

hidden

- hidden : Boolean -
- True to start the region hidden
-
This config option is defined by LayoutRegion.
-
- -
-

hideTabs

- hideTabs : Boolean -
- True to hide the tab strip (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

hideWhenEmpty

- hideWhenEmpty : Boolean -
- True to hide the region when it has no panels
-
This config option is defined by LayoutRegion.
-
- -
-

margins

- margins : Object -
- Margins for the element (defaults to {top: 0, left: 0, right:0, bottom: 0})
-
This config option is defined by LayoutRegion.
-
- -
-

minTabWidth

- minTabWidth : Number -
- The minimum tab width (defaults to 40)
-
This config option is defined by LayoutRegion.
-
- -
-

preferredTabWidth

- preferredTabWidth : Number -
- The preferred tab width (defaults to 150)
-
This config option is defined by LayoutRegion.
-
- -
-

preservePanels

- preservePanels : Boolean -
- True to preserve removed panels so they can be readded later (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

resizeTabs

- resizeTabs : Boolean -
- True to enable automatic tab resizing. This will resize the tabs so they are all the same size and fit within the space available, similar to FireFox 1.5 tabs (defaults to false)
-
This config option is defined by LayoutRegion.
-
- -
-

showPin

- showPin : Boolean -
- True to show a pin button
-
This config option is defined by LayoutRegion.
-
- -
-

tabPosition

- tabPosition : String -
- "top" or "bottom" (defaults to "bottom")
-
This config option is defined by LayoutRegion.
-
- -
-

title

- title : String -
- The title for the region (overrides panel titles)
-
This config option is defined by LayoutRegion.
-
- -
-

titlebar

- titlebar : Boolean -
- True to display a title bar (defaults to true)
-
This config option is defined by LayoutRegion.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.TabPanel.html b/www/extras/extjs/docs/output/Ext.TabPanel.html deleted file mode 100644 index f4db0477e..000000000 --- a/www/extras/extjs/docs/output/Ext.TabPanel.html +++ /dev/null @@ -1,921 +0,0 @@ - - - - Ext.TabPanel - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.TabPanel

- - - - - -
Package:Ext
Class:TabPanel
Extends:Observable
Defined In:TabPanel.js
-
- Creates a lightweight TabPanel component using Yahoo! UI. -

-Usage: -
// basic tabs 1, built from existing content
-    var tabs = new Ext.TabPanel("tabs1");
-    tabs.addTab("script", "View Script");
-    tabs.addTab("markup", "View Markup");
-    tabs.activate("script");
-    
-    // more advanced tabs, built from javascript
-    var jtabs = new Ext.TabPanel("jtabs");
-    jtabs.addTab("jtabs-1", "Normal Tab", "My content was added during construction.");
-    
-    // set up the UpdateManager
-    var tab2 = jtabs.addTab("jtabs-2", "Ajax Tab 1");
-    var updater = tab2.getUpdateManager();
-    updater.setDefaultUrl("ajax1.htm");
-    tab2.on('activate', updater.refresh, updater, true);
-
-    // Use setUrl for Ajax loading
-    var tab3 = jtabs.addTab("jtabs-3", "Ajax Tab 2");
-    tab3.setUrl("ajax2.htm", null, true);
-    
-    // Disabled tab
-    var tab4 = jtabs.addTab("tabs1-5", "Disabled Tab", "Can"t see me cause I"m disabled");
-    tab4.disable();
-    
-    jtabs.activate("jtabs-1");
-}
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 bodyEl : Ext.ElementTabPanel
The body element that contains TabPaneItem bodies.
 el : Ext.ElementTabPanel
The container element for this TabPanel.
 maxTabWidth : NumberTabPanel
The maximum width of a tab (ignored if resizeTabs is not true).
 minTabWidth : NumberTabPanel
The minimum width of a tab (ignored if resizeTabs is not true).
 monitorResize : BooleanTabPanel
Set this to true to turn on window resizing monitoring (ignored if resizeTabs is not true).
 preferredTabWidth : NumberTabPanel
The preferred (default) width of a tab (ignored if resizeTabs is not true).
 resizeTabs : BooleanTabPanel
Set this to true to enable dynamic tab resizing.
 tabPosition : StringTabPanel
The position of the tabs. Can be "top" or "bottom"
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 TabPanel(String/HTMLElement/Element container, Boolean config)TabPanel
Create new TabPanel.
 activate(String/Number id) : voidTabPanel
Activate a TabPanelItem. The currently active will be deactivated.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 addTab(String id, String text, [String content], [Boolean closable]) : Ext.TabPanelItemTabPanel
Creates a new TabPanelItem by looking for an existing element with the provided id - if it's not found it creates one.
 addTabItem(Ext.TabPanelItem item) : voidTabPanel
Add an existing TabPanelItem.
 autoSizeTabs() : voidTabPanel
Manual call to resize the tabs (if resizeTabs is false this does nothing)
 beginUpdate() : voidTabPanel
Disables tab resizing while tabs are being added (if resizeTabs is false this does nothing)
 destroy([Boolean removeEl]) : voidTabPanel
Destroys this TabPanel
 disableTab(String/Number id) : voidTabPanel
Disable a TabPanelItem. It cannot be the active tab, if it is this call is ignored..
 enableTab(String/Number id) : voidTabPanel
Enable a TabPanelItem that is disabled.
 endUpdate() : voidTabPanel
Stops an update and resizes the tabs (if resizeTabs is false this does nothing)
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getActiveTab() : Ext.TabPanelItemTabPanel
Get the active TabPanelItem
 getCount() : NumberTabPanel
Returns the number of tabs
 getTab(String/Number id) : Ext.TabPanelItemTabPanel
Returns the TabPanelItem with the specified id/index
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hideTab(String/Number id) : voidTabPanel
Hides the TabPanelItem with the specified id/index
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 removeTab(String/Number id) : voidTabPanel
Remove a TabPanelItem.
 setTabWidth(Number The) : voidTabPanel
Resizes all the tabs to the passed width
 syncHeight([Number targetHeight]) : voidTabPanel
Updates the tab body element to fit the height of the container element -for overflow scrolling
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 unhideTab(String/Number id) : voidTabPanel
"Unhides" the TabPanelItem with the specified id/index
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforetabchange : (Ext.TabPanel this, Object e, Ext.TabPanelItem tab)TabPanel
Fires before the active tab changes, set cancel to true on the "e" parameter to cancel the change
 tabchange : (Ext.TabPanel this, Ext.TabPanelItem activePanel)TabPanel
Fires when the active tab changes
-

Property Details

-
- -
-

bodyEl

- public Ext.Element bodyEl -
- The body element that contains TabPaneItem bodies.
-
This property is defined by TabPanel.
-
- -
-

el

- public Ext.Element el -
- The container element for this TabPanel.
-
This property is defined by TabPanel.
-
- -
-

maxTabWidth

- public Number maxTabWidth -
- The maximum width of a tab (ignored if resizeTabs is not true).
-
This property is defined by TabPanel.
-
- -
-

minTabWidth

- public Number minTabWidth -
- The minimum width of a tab (ignored if resizeTabs is not true).
-
This property is defined by TabPanel.
-
- -
-

monitorResize

- public Boolean monitorResize -
- Set this to true to turn on window resizing monitoring (ignored if resizeTabs is not true).
-
This property is defined by TabPanel.
-
- -
-

preferredTabWidth

- public Number preferredTabWidth -
- The preferred (default) width of a tab (ignored if resizeTabs is not true).
-
This property is defined by TabPanel.
-
- -
-

resizeTabs

- public Boolean resizeTabs -
- Set this to true to enable dynamic tab resizing.
-
This property is defined by TabPanel.
-
- -
-

tabPosition

- public String tabPosition -
- The position of the tabs. Can be "top" or "bottom"
-
This property is defined by TabPanel.
-
-
- - -

Constructor Details

-
-
-

TabPanel

- public function TabPanel(String/HTMLElement/Element container, Boolean config) -
- Create new TabPanel.
- Parameters: -
  • container : String/HTMLElement/Element
    The id, DOM element or Ext.Element container where this TabPanel is to be rendered.
  • config : Boolean
    Config object to set any properties for this TabPanel or true to render the tabs on the bottom.
-
-
-
-
- -

Method Details

-
- -
-

activate

- public function activate(String/Number id) -
- Activate a TabPanelItem. The currently active will be deactivated. -
- Parameters: -
  • id : String/Number
    The id or index of the TabPanelItem to activate.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addTab

- public function addTab(String id, String text, [String content], [Boolean closable]) -
- Creates a new TabPanelItem by looking for an existing element with the provided id - if it's not found it creates one. -
- Parameters: -
  • id : String
    The id of the div to use or create
  • text : String
    The text for the tab
  • content : String
    (optional) Content to put in the TabPanelItem body
  • closable : Boolean
    (optional) True to create a close icon on the tab
- Returns: -
    -
  • Ext.TabPanelItem
    The created TabPanelItem
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

addTabItem

- public function addTabItem(Ext.TabPanelItem item) -
- Add an existing TabPanelItem. -
- Parameters: -
  • item : Ext.TabPanelItem
    The TabPanelItem to add
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

autoSizeTabs

- public function autoSizeTabs() -
- Manual call to resize the tabs (if resizeTabs is false this does nothing) -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

beginUpdate

- public function beginUpdate() -
- Disables tab resizing while tabs are being added (if resizeTabs is false this does nothing) -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

destroy

- public function destroy([Boolean removeEl]) -
- Destroys this TabPanel -
- Parameters: -
  • removeEl : Boolean
    (optional) True to remove the element from the DOM as well
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

disableTab

- public function disableTab(String/Number id) -
- Disable a TabPanelItem. It cannot be the active tab, if it is this call is ignored.. -
- Parameters: -
  • id : String/Number
    The id or index of the TabPanelItem to disable.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

enableTab

- public function enableTab(String/Number id) -
- Enable a TabPanelItem that is disabled. -
- Parameters: -
  • id : String/Number
    The id or index of the TabPanelItem to enable.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

endUpdate

- public function endUpdate() -
- Stops an update and resizes the tabs (if resizeTabs is false this does nothing) -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getActiveTab

- public function getActiveTab() -
- Get the active TabPanelItem -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.TabPanelItem
    The active TabPanelItem or null if none are active.
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

getCount

- public function getCount() -
- Returns the number of tabs -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

getTab

- public function getTab(String/Number id) -
- Returns the TabPanelItem with the specified id/index -
- Parameters: -
  • id : String/Number
    The id or index of the TabPanelItem to fetch.
- Returns: -
    -
  • Ext.TabPanelItem
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hideTab

- public function hideTab(String/Number id) -
- Hides the TabPanelItem with the specified id/index -
- Parameters: -
  • id : String/Number
    The id or index of the TabPanelItem to hide.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeTab

- public function removeTab(String/Number id) -
- Remove a TabPanelItem. -
- Parameters: -
  • id : String/Number
    The id or index of the TabPanelItem to remove.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

setTabWidth

- public function setTabWidth(Number The) -
- Resizes all the tabs to the passed width -
- Parameters: -
  • The : Number
    new width
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

syncHeight

- public function syncHeight([Number targetHeight]) -
- Updates the tab body element to fit the height of the container element -for overflow scrolling -
- Parameters: -
  • targetHeight : Number
    (optional) Override the starting height from the elements height
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanel.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

unhideTab

- public function unhideTab(String/Number id) -
- "Unhides" the TabPanelItem with the specified id/index -
- Parameters: -
  • id : String/Number
    The id or index of the TabPanelItem to unhide.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanel.
-
-
- -

Event Details

-
- -
-

beforetabchange

- public event beforetabchange -
- Fires before the active tab changes, set cancel to true on the "e" parameter to cancel the change -
- Subscribers will be called with the following parameters: -
  • this : Ext.TabPanel
  • e : Object
    Set cancel to true on this object to cancel the tab change
  • tab : Ext.TabPanelItem
    The tab being changed to
-
-
-
This event is defined by TabPanel.
-
- -
-

tabchange

- public event tabchange -
- Fires when the active tab changes -
- Subscribers will be called with the following parameters: -
  • this : Ext.TabPanel
  • activePanel : Ext.TabPanelItem
    The new active tab
-
-
-
This event is defined by TabPanel.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.TabPanelItem.html b/www/extras/extjs/docs/output/Ext.TabPanelItem.html deleted file mode 100644 index c4d9a9068..000000000 --- a/www/extras/extjs/docs/output/Ext.TabPanelItem.html +++ /dev/null @@ -1,775 +0,0 @@ - - - - Ext.TabPanelItem - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.TabPanelItem

- - - - - -
Package:Ext
Class:TabPanelItem
Extends:Observable
Defined In:TabPanel.js
-
-
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 bodyEl : Ext.ElementTabPanelItem
The body element for this TabPanelItem
 closeText : StringTabPanelItem
The text displayed in the tooltip for the close icon.
 id : StringTabPanelItem
The id for this TabPanelItem
 tabPanel : Ext.TabPanelTabPanelItem
The TabPanel this TabPanelItem belongs to
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 activate() : voidTabPanelItem
Activate this TabPanelItem - this does deactivate the currently active TabPanelItem.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 disable() : voidTabPanelItem
Disable this TabPanelItem - this call is ignore if this is the active TabPanelItem.
 enable() : voidTabPanelItem
Enable this TabPanelItem if it was previously disabled.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getText() : StringTabPanelItem
Returns the text for this tab
 getUpdateManager() : Ext.UpdateManagerTabPanelItem
Get the Ext.UpdateManager for the body of this TabPanelItem. Enables you to perform Ajax updates.
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidTabPanelItem
Hide this TabPanelItem - if you don't activate another TabPanelItem this could look odd.
 isActive() : BooleanTabPanelItem
Returns true if this tab is the active tab
 isHidden() : BooleanTabPanelItem
Returns true if this tab is "hidden"
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 refresh() : voidTabPanelItem
Force a content refresh from the URL specified in the setUrl() method. -Will fail silently if the setUrl method has no...
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 setContent(String content, Boolean loadScripts) : voidTabPanelItem
Set the content for this TabPanelItem.
 setText(String text) : voidTabPanelItem
Sets the text for the tab (Note: this also sets the tooltip)
 setTooltip(String tooltip) : voidTabPanelItem
Set the tooltip for the tab
 setUrl(String/Function url, [String/Object params], [Boolean loadOnce]) : Ext.UpdateManagerTabPanelItem
Set a URL to be used to load the content for this TabPanelItem.
 show() : voidTabPanelItem
Show this TabPanelItem - this does not deactivate the currently active TabPanelItem.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 activate : (Ext.TabPanel tabPanel, Ext.TabPanelItem this)TabPanelItem
Fires when this tab becomes the active tab
 beforeclose : (Ext.TabPanelItem this, Object e)TabPanelItem
Fires before this tab is closed. To cancal the close, set cancel to true on e. (e.cancel = true)
 close : (Ext.TabPanelItem this)TabPanelItem
Fires when this tab is closed
 deactivate : (Ext.TabPanel tabPanel, Ext.TabPanelItem this)TabPanelItem
Fires when this tab is no longer the active tab
-

Property Details

-
- -
-

bodyEl

- public Ext.Element bodyEl -
- The body element for this TabPanelItem
-
This property is defined by TabPanelItem.
-
- -
-

closeText

- public String closeText -
- The text displayed in the tooltip for the close icon.
-
This property is defined by TabPanelItem.
-
- -
-

id

- public String id -
- The id for this TabPanelItem
-
This property is defined by TabPanelItem.
-
- -
-

tabPanel

- public Ext.TabPanel tabPanel -
- The TabPanel this TabPanelItem belongs to
-
This property is defined by TabPanelItem.
-
-
- - -

Method Details

-
- -
-

activate

- public function activate() -
- Activate this TabPanelItem - this does deactivate the currently active TabPanelItem. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanelItem.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

disable

- public function disable() -
- Disable this TabPanelItem - this call is ignore if this is the active TabPanelItem. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanelItem.
-
- -
-

enable

- public function enable() -
- Enable this TabPanelItem if it was previously disabled. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanelItem.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getText

- public function getText() -
- Returns the text for this tab -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by TabPanelItem.
-
- -
-

getUpdateManager

- public function getUpdateManager() -
- Get the Ext.UpdateManager for the body of this TabPanelItem. Enables you to perform Ajax updates. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.UpdateManager
    The UpdateManager
  • -
-
-
-
This method is defined by TabPanelItem.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this TabPanelItem - if you don't activate another TabPanelItem this could look odd. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanelItem.
-
- -
-

isActive

- public function isActive() -
- Returns true if this tab is the active tab -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by TabPanelItem.
-
- -
-

isHidden

- public function isHidden() -
- Returns true if this tab is "hidden" -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by TabPanelItem.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

refresh

- public function refresh() -
- Force a content refresh from the URL specified in the setUrl() method. -Will fail silently if the setUrl method has not been called. -This does not activate the panel, just updates its content. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanelItem.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

setContent

- public function setContent(String content, Boolean loadScripts) -
- Set the content for this TabPanelItem. -
- Parameters: -
  • content : String
    The content
  • loadScripts : Boolean
    true to look for and load scripts
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanelItem.
-
- -
-

setText

- public function setText(String text) -
- Sets the text for the tab (Note: this also sets the tooltip) -
- Parameters: -
  • text : String
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanelItem.
-
- -
-

setTooltip

- public function setTooltip(String tooltip) -
- Set the tooltip for the tab -
- Parameters: -
  • tooltip : String
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanelItem.
-
- -
-

setUrl

- public function setUrl(String/Function url, [String/Object params], [Boolean loadOnce]) -
- Set a URL to be used to load the content for this TabPanelItem. -
- Parameters: -
  • url : String/Function
    The url to load the content from or a function to call to get the url
  • params : String/Object
    (optional) The string params for the update call or an object of the params. See Ext.UpdateManager.update for more details. (Defaults to null)
  • loadOnce : Boolean
    (optional) Whether to only load the content once. If this is false it makes the Ajax call every time this TabPanelItem is activated. (Defaults to false)
- Returns: -
    -
  • Ext.UpdateManager
    The UpdateManager
  • -
-
-
-
This method is defined by TabPanelItem.
-
- -
-

show

- public function show() -
- Show this TabPanelItem - this does not deactivate the currently active TabPanelItem. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TabPanelItem.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

activate

- public event activate -
- Fires when this tab becomes the active tab -
- Subscribers will be called with the following parameters: -
  • tabPanel : Ext.TabPanel
  • this : Ext.TabPanelItem
-
-
-
This event is defined by TabPanelItem.
-
- -
-

beforeclose

- public event beforeclose -
- Fires before this tab is closed. To cancal the close, set cancel to true on e. (e.cancel = true) -
- Subscribers will be called with the following parameters: -
  • this : Ext.TabPanelItem
  • e : Object
    Set cancel to true on this object to cancel the close.
-
-
-
This event is defined by TabPanelItem.
-
- -
-

close

- public event close -
- Fires when this tab is closed -
- Subscribers will be called with the following parameters: -
  • this : Ext.TabPanelItem
-
-
-
This event is defined by TabPanelItem.
-
- -
-

deactivate

- public event deactivate -
- Fires when this tab is no longer the active tab -
- Subscribers will be called with the following parameters: -
  • tabPanel : Ext.TabPanel
  • this : Ext.TabPanelItem
-
-
-
This event is defined by TabPanelItem.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Template.html b/www/extras/extjs/docs/output/Ext.Template.html deleted file mode 100644 index c45d36219..000000000 --- a/www/extras/extjs/docs/output/Ext.Template.html +++ /dev/null @@ -1,377 +0,0 @@ - - - - Ext.Template - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Template

- - - - - - -
Package:Ext
Class:Template
Extends:Object
Subclasses:MasterTemplate
Defined In:Template.js
-
- Represents an HTML fragment template. Templates can be precompiled for greater performance. -For a list of available format functions, see Ext.util.Format. -
var t = new Ext.Template(
-	'<div name="{id}">',
-		'<span class="{cls}">{name:trim} {value:ellipsis(10)}</span>',
-	'</div>'
-);
-t.append('some-element', {id: 'myid', name: 'foo', value: 'bar'});
-For more information see this blog post with examples. -
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disableFormats : BooleanTemplate
True to disable format functions (default to false)
 re : RegExpTemplate
The regular expression used to match template variables
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Template(String/Array html)Template
 Template.from(String/HTMLElement el) : voidTemplate
<static> Creates a template from the passed element's value (display:none textarea, preferred) or innerHTML
 append(String/HTMLElement/Element el, Object values, [Boolean returnElement]) : HTMLElementTemplate
Applies the supplied values to the template and append the new node(s) to el
 apply() : voidTemplate
Alias for applyTemplate
 applyTemplate(Object values) : StringTemplate
Returns an HTML fragment of this template with the specified values applied
 compile() : voidTemplate
Compiles the template into an internal function, eliminating the RegEx overhead
 insertAfter(String/HTMLElement/Element el, Object values, [Boolean returnElement]) : HTMLElementTemplate
Applies the supplied values to the template and inserts the new node(s) after el
 insertBefore(String/HTMLElement/Element el, Object values, [Boolean returnElement]) : HTMLElementTemplate
Applies the supplied values to the template and inserts the new node(s) before el
 insertFirst(String/HTMLElement/Element el, Object values, [Boolean returnElement]) : HTMLElementTemplate
Applies the supplied values to the template and inserts the new node(s) as the first child of el
 overwrite(String/HTMLElement/Element el, Object values, [Boolean returnElement]) : HTMLElementTemplate
Applies the supplied values to the template and overwrites the content of el with the new node(s)
 set(String html, [Boolean compile]) : TemplateTemplate
Sets the html used as the template and optionally compiles it
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

disableFormats

- public Boolean disableFormats -
- True to disable format functions (default to false)
-
This property is defined by Template.
-
- -
-

re

- public RegExp re -
- The regular expression used to match template variables
-
This property is defined by Template.
-
-
- - -

Constructor Details

-
-
-

Template

- public function Template(String/Array html) -
-
- Parameters: -
  • html : String/Array
    The HTML fragment or an array of fragments to join('') or multiple arguments to join('')
-
-
-
-
- -

Method Details

-
- -
-

Template.from

- public function Template.from(String/HTMLElement el) -
- <static> Creates a template from the passed element's value (display:none textarea, preferred) or innerHTML -
- Parameters: -
  • el : String/HTMLElement
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Template.
-
- -
-

append

- public function append(String/HTMLElement/Element el, Object values, [Boolean returnElement]) -
- Applies the supplied values to the template and append the new node(s) to el -
- Parameters: -
  • el : String/HTMLElement/Element
    The context element
  • values : Object
    The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
  • returnElement : Boolean
    (optional) true to return a Ext.Element
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by Template.
-
- -
-

apply

- public function apply() -
- Alias for applyTemplate -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Template.
-
- -
-

applyTemplate

- public function applyTemplate(Object values) -
- Returns an HTML fragment of this template with the specified values applied -
- Parameters: -
  • values : Object
    The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Template.
-
- -
-

compile

- public function compile() -
- Compiles the template into an internal function, eliminating the RegEx overhead -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Template.
-
- -
-

insertAfter

- public function insertAfter(String/HTMLElement/Element el, Object values, [Boolean returnElement]) -
- Applies the supplied values to the template and inserts the new node(s) after el -
- Parameters: -
  • el : String/HTMLElement/Element
    The context element
  • values : Object
    The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
  • returnElement : Boolean
    (optional) true to return a Ext.Element
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by Template.
-
- -
-

insertBefore

- public function insertBefore(String/HTMLElement/Element el, Object values, [Boolean returnElement]) -
- Applies the supplied values to the template and inserts the new node(s) before el -
- Parameters: -
  • el : String/HTMLElement/Element
    The context element
  • values : Object
    The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
  • returnElement : Boolean
    (optional) true to return a Ext.Element
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by Template.
-
- -
-

insertFirst

- public function insertFirst(String/HTMLElement/Element el, Object values, [Boolean returnElement]) -
- Applies the supplied values to the template and inserts the new node(s) as the first child of el -
- Parameters: -
  • el : String/HTMLElement/Element
    The context element
  • values : Object
    The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
  • returnElement : Boolean
    (optional) true to return a Ext.Element
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by Template.
-
- -
-

overwrite

- public function overwrite(String/HTMLElement/Element el, Object values, [Boolean returnElement]) -
- Applies the supplied values to the template and overwrites the content of el with the new node(s) -
- Parameters: -
  • el : String/HTMLElement/Element
    The context element
  • values : Object
    The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
  • returnElement : Boolean
    (optional) true to return a Ext.Element
- Returns: -
    -
  • HTMLElement
    The new node
  • -
-
-
-
This method is defined by Template.
-
- -
-

set

- public function set(String html, [Boolean compile]) -
- Sets the html used as the template and optionally compiles it -
- Parameters: -
  • html : String
  • compile : Boolean
    (optional)
- Returns: -
    -
  • Template
    this
  • -
-
-
-
This method is defined by Template.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Toolbar.Button.html b/www/extras/extjs/docs/output/Ext.Toolbar.Button.html deleted file mode 100644 index 4796ceeca..000000000 --- a/www/extras/extjs/docs/output/Ext.Toolbar.Button.html +++ /dev/null @@ -1,1005 +0,0 @@ - - - - Ext.Toolbar.Button - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Toolbar.Button

- - - - - -
Package:Ext
Class:Toolbar.Button
Extends:Button
Defined In:Toolbar.js
-
- A button that renders into a toolbar.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : BooleanButton
Read-only. True if this button is disabled
 hidden : BooleanButton
Read-only. True if this button is hidden
 pressed : BooleanButton
Read-only. True if this button is pressed (only if enableToggle = true)
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Toolbar.Button(Object config)Toolbar.Button
Creates a new Button
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 destroy() : voidToolbar.Button
Remove and destroy this button
 disable() : voidToolbar.Button
Disable this item
 enable() : voidToolbar.Button
Enable this item
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus() : voidButton
Focus the button
 getEl() : Ext.ElementButton
Returns the button's underlying element
 getText() : StringButton
Gets the text for this button
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidToolbar.Button
Hide this button
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 setDisabled(Boolean enabled) : voidButton
Convenience function for boolean enable/disable
 setHandler(Function handler, [Object scope]) : voidButton
Assigns this button's click handler
 setText(String text) : voidButton
Sets this button's text
 setVisible(Boolean visible) : voidButton
Convenience function for boolean show/hide
 show() : voidToolbar.Button
Show this button
 toggle([Boolean state]) : voidButton
If a state it passed, it becomes the pressed state otherwise the current state is toggled.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 click : (Button this, EventObject e)Button
Fires when this button is clicked
 mouseout : (Button this, Event e)Button
Fires when the mouse exits the button
 mouseover : (Button this, Event e)Button
Fires when the mouse hovers over the button
 toggle : (Button this, Boolean pressed)Button
Fires when the "pressed" state of this button changes (only if enableToggle = true)
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 disabled : BooleanButton
True to start disabled (defaults to false)
 enableToggle : BooleanButton
True to enable pressed/not pressed toggling (defaults to false)
 handler : FunctionButton
A function called when the button is clicked (can be used instead of click event)
 hidden : BooleanButton
True to start hidden (defaults to false)
 icon : StringButton
The path to an image to display in the button (the image will be set as the background-image CSS property of the butt...
 menu : MixedButton
Standard menu attribute consisting of a reference to a menu object, a menu id or a menu config blob
 menuAlign : StringButton
The position to align the menu to (see Ext.Element.alignTo for more details, defaults to 'tl-bl?').
 minWidth : NumberButton
The minimum width for this button (used to give a set of buttons a common width)
 pressed : BooleanButton
True to start pressed (only if enableToggle = true)
 repeat : Boolean/ObjectButton
True to repeat fire the click event while the mouse is down. This can also be an Ext.util.ClickRepeater config object...
 scope : ObjectButton
The scope of the handler
 text : StringButton
The button text
 toggleGroup : StringButton
The group this toggle button is a member of (only 1 per group can be pressed, only applies if enableToggle = true)
 tooltip : String/ObjectButton
The tooltip for the button - can be a string or QuickTips config object
 tooltipType : StringButton
The type of tooltip to use. Either "qtip" for QuickTips or "title" for title attribute.
-

Property Details

-
- -
-

disabled

- public Boolean disabled -
- Read-only. True if this button is disabled
-
This property is defined by Button.
-
- -
-

hidden

- public Boolean hidden -
- Read-only. True if this button is hidden
-
This property is defined by Button.
-
- -
-

pressed

- public Boolean pressed -
- Read-only. True if this button is pressed (only if enableToggle = true)
-
This property is defined by Button.
-
-
- - -

Constructor Details

-
-
-

Toolbar.Button

- public function Toolbar.Button(Object config) -
- Creates a new Button
- Parameters: -
  • config : Object
    A standard Ext.Button config object
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

destroy

- public function destroy() -
- Remove and destroy this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Button.
-
- -
-

disable

- public function disable() -
- Disable this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Button.
-
- -
-

enable

- public function enable() -
- Enable this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Button.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus() -
- Focus the button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

getEl

- public function getEl() -
- Returns the button's underlying element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Button.
-
- -
-

getText

- public function getText() -
- Gets the text for this button -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    The button text
  • -
-
-
-
This method is defined by Button.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Button.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

setDisabled

- public function setDisabled(Boolean enabled) -
- Convenience function for boolean enable/disable -
- Parameters: -
  • enabled : Boolean
    True to enable, false to disable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

setHandler

- public function setHandler(Function handler, [Object scope]) -
- Assigns this button's click handler -
- Parameters: -
  • handler : Function
    The function to call when the button is clicked
  • scope : Object
    (optional) Scope for the function passed in
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

setText

- public function setText(String text) -
- Sets this button's text -
- Parameters: -
  • text : String
    The button text
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function for boolean show/hide -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

show

- public function show() -
- Show this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Button.
-
- -
-

toggle

- public function toggle([Boolean state]) -
- If a state it passed, it becomes the pressed state otherwise the current state is toggled. -
- Parameters: -
  • state : Boolean
    (optional) Force a particular state
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

click

- public event click -
- Fires when this button is clicked -
- Subscribers will be called with the following parameters: -
  • this : Button
  • e : EventObject
    The click event
-
-
-
This event is defined by Button.
-
- -
-

mouseout

- public event mouseout -
- Fires when the mouse exits the button -
- Subscribers will be called with the following parameters: -
  • this : Button
  • e : Event
    The event object
-
-
-
This event is defined by Button.
-
- -
-

mouseover

- public event mouseover -
- Fires when the mouse hovers over the button -
- Subscribers will be called with the following parameters: -
  • this : Button
  • e : Event
    The event object
-
-
-
This event is defined by Button.
-
- -
-

toggle

- public event toggle -
- Fires when the "pressed" state of this button changes (only if enableToggle = true) -
- Subscribers will be called with the following parameters: -
  • this : Button
  • pressed : Boolean
-
-
-
This event is defined by Button.
-
-
-

Config Details

-
- -
-

disabled

- disabled : Boolean -
- True to start disabled (defaults to false)
-
This config option is defined by Button.
-
- -
-

enableToggle

- enableToggle : Boolean -
- True to enable pressed/not pressed toggling (defaults to false)
-
This config option is defined by Button.
-
- -
-

handler

- handler : Function -
- A function called when the button is clicked (can be used instead of click event)
-
This config option is defined by Button.
-
- -
-

hidden

- hidden : Boolean -
- True to start hidden (defaults to false)
-
This config option is defined by Button.
-
- -
-

icon

- icon : String -
- The path to an image to display in the button (the image will be set as the background-image CSS property of the button by default, so if you want a mixed icon/text button, set cls:"x-btn-text-icon")
-
This config option is defined by Button.
-
- -
-

menu

- menu : Mixed -
- Standard menu attribute consisting of a reference to a menu object, a menu id or a menu config blob
-
This config option is defined by Button.
-
- -
-

menuAlign

- menuAlign : String -
- The position to align the menu to (see Ext.Element.alignTo for more details, defaults to 'tl-bl?').
-
This config option is defined by Button.
-
- -
-

minWidth

- minWidth : Number -
- The minimum width for this button (used to give a set of buttons a common width)
-
This config option is defined by Button.
-
- -
-

pressed

- pressed : Boolean -
- True to start pressed (only if enableToggle = true)
-
This config option is defined by Button.
-
- -
-

repeat

- repeat : Boolean/Object -
- True to repeat fire the click event while the mouse is down. This can also be an Ext.util.ClickRepeater config object (defaults to false).
-
This config option is defined by Button.
-
- -
-

scope

- scope : Object -
- The scope of the handler
-
This config option is defined by Button.
-
- -
-

text

- text : String -
- The button text
-
This config option is defined by Button.
-
- -
-

toggleGroup

- toggleGroup : String -
- The group this toggle button is a member of (only 1 per group can be pressed, only applies if enableToggle = true)
-
This config option is defined by Button.
-
- -
-

tooltip

- tooltip : String/Object -
- The tooltip for the button - can be a string or QuickTips config object
-
This config option is defined by Button.
-
- -
-

tooltipType

- tooltipType : String -
- The type of tooltip to use. Either "qtip" for QuickTips or "title" for title attribute.
-
This config option is defined by Button.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Toolbar.Item.html b/www/extras/extjs/docs/output/Ext.Toolbar.Item.html deleted file mode 100644 index 412bc16f2..000000000 --- a/www/extras/extjs/docs/output/Ext.Toolbar.Item.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - Ext.Toolbar.Item - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Toolbar.Item

- - - - - - -
Package:Ext
Class:Toolbar.Item
Extends:Object
Subclasses:Toolbar.Separator, Toolbar.Spacer, Toolbar.TextItem
Defined In:Toolbar.js
-
- The base class that other classes should extend in order to get some basic common toolbar item functionality.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Toolbar.Item(HTMLElement el)Toolbar.Item
Creates a new Item
 destroy() : voidToolbar.Item
Remove and destroy this button
 disable() : voidToolbar.Item
Disable this item
 enable() : voidToolbar.Item
Enable this item
 focus() : voidToolbar.Item
Try to focus this item
 getEl() : HTMLElementToolbar.Item
Get this item's HTML Element
 hide() : voidToolbar.Item
Hide this item
 setVisible(Boolean visible) : voidToolbar.Item
Convenience function for boolean show/hide
 show() : voidToolbar.Item
Show this item
- -

Public Events

-
This class has no public events.
- -

Constructor Details

-
-
-

Toolbar.Item

- public function Toolbar.Item(HTMLElement el) -
- Creates a new Item
- Parameters: -
  • el : HTMLElement
-
-
-
-
- -

Method Details

-
- -
-

destroy

- public function destroy() -
- Remove and destroy this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

disable

- public function disable() -
- Disable this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

enable

- public function enable() -
- Enable this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

focus

- public function focus() -
- Try to focus this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

getEl

- public function getEl() -
- Get this item's HTML Element -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

hide

- public function hide() -
- Hide this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function for boolean show/hide -
- Parameters: -
  • visible : Boolean
    true to show/false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

show

- public function show() -
- Show this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Toolbar.MenuButton.html b/www/extras/extjs/docs/output/Ext.Toolbar.MenuButton.html deleted file mode 100644 index 6a4d06e78..000000000 --- a/www/extras/extjs/docs/output/Ext.Toolbar.MenuButton.html +++ /dev/null @@ -1,1083 +0,0 @@ - - - - Ext.Toolbar.MenuButton - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Toolbar.MenuButton

- - - - - -
Package:Ext
Class:Toolbar.MenuButton
Extends:MenuButton
Defined In:Toolbar.js
-
- A menu button that renders into a toolbar.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : BooleanButton
Read-only. True if this button is disabled
 hidden : BooleanButton
Read-only. True if this button is hidden
 pressed : BooleanButton
Read-only. True if this button is pressed (only if enableToggle = true)
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Toolbar.MenuButton(Object config)Toolbar.MenuButton
Creates a new MenuButton
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 destroy() : voidToolbar.MenuButton
Remove and destroy this button
 disable() : voidButton
Disable this button
 enable() : voidButton
Enable this button
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus() : voidButton
Focus the button
 getEl() : Ext.ElementButton
Returns the button's underlying element
 getText() : StringButton
Gets the text for this button
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidToolbar.MenuButton
Hide this button
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 setArrowHandler(Function handler, [Object scope]) : voidMenuButton
Sets this button's arrow click handler
 setDisabled(Boolean enabled) : voidButton
Convenience function for boolean enable/disable
 setHandler(Function handler, [Object scope]) : voidButton
Assigns this button's click handler
 setText(String text) : voidButton
Sets this button's text
 setVisible(Boolean visible) : voidButton
Convenience function for boolean show/hide
 show() : voidToolbar.MenuButton
Show this button
 toggle([Boolean state]) : voidButton
If a state it passed, it becomes the pressed state otherwise the current state is toggled.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 arrowclick : (MenuButton this, EventObject e)MenuButton
Fires when this button's arrow is clicked
 click : (Button this, EventObject e)Button
Fires when this button is clicked
 mouseout : (Button this, Event e)Button
Fires when the mouse exits the button
 mouseover : (Button this, Event e)Button
Fires when the mouse hovers over the button
 toggle : (Button this, Boolean pressed)Button
Fires when the "pressed" state of this button changes (only if enableToggle = true)
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 arrowHandler : FunctionMenuButton
A function called when the arrow button is clicked (can be used instead of click event)
 arrowTooltip : StringMenuButton
The title attribute of the arrow
 disabled : BooleanButton
True to start disabled (defaults to false)
 enableToggle : BooleanButton
True to enable pressed/not pressed toggling (defaults to false)
 handler : FunctionButton
A function called when the button is clicked (can be used instead of click event)
 hidden : BooleanButton
True to start hidden (defaults to false)
 icon : StringButton
The path to an image to display in the button (the image will be set as the background-image CSS property of the butt...
 menu : MixedButton
Standard menu attribute consisting of a reference to a menu object, a menu id or a menu config blob
 menuAlign : StringButton
The position to align the menu to (see Ext.Element.alignTo for more details, defaults to 'tl-bl?').
 minWidth : NumberButton
The minimum width for this button (used to give a set of buttons a common width)
 pressed : BooleanButton
True to start pressed (only if enableToggle = true)
 repeat : Boolean/ObjectButton
True to repeat fire the click event while the mouse is down. This can also be an Ext.util.ClickRepeater config object...
 scope : ObjectButton
The scope of the handler
 text : StringButton
The button text
 toggleGroup : StringButton
The group this toggle button is a member of (only 1 per group can be pressed, only applies if enableToggle = true)
 tooltip : String/ObjectButton
The tooltip for the button - can be a string or QuickTips config object
 tooltipType : StringButton
The type of tooltip to use. Either "qtip" for QuickTips or "title" for title attribute.
-

Property Details

-
- -
-

disabled

- public Boolean disabled -
- Read-only. True if this button is disabled
-
This property is defined by Button.
-
- -
-

hidden

- public Boolean hidden -
- Read-only. True if this button is hidden
-
This property is defined by Button.
-
- -
-

pressed

- public Boolean pressed -
- Read-only. True if this button is pressed (only if enableToggle = true)
-
This property is defined by Button.
-
-
- - -

Constructor Details

-
-
-

Toolbar.MenuButton

- public function Toolbar.MenuButton(Object config) -
- Creates a new MenuButton
- Parameters: - -
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

destroy

- public function destroy() -
- Remove and destroy this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.MenuButton.
-
- -
-

disable

- public function disable() -
- Disable this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

enable

- public function enable() -
- Enable this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus() -
- Focus the button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

getEl

- public function getEl() -
- Returns the button's underlying element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Button.
-
- -
-

getText

- public function getText() -
- Gets the text for this button -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    The button text
  • -
-
-
-
This method is defined by Button.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.MenuButton.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

setArrowHandler

- public function setArrowHandler(Function handler, [Object scope]) -
- Sets this button's arrow click handler -
- Parameters: -
  • handler : Function
    The function to call when the arrow is clicked
  • scope : Object
    (optional) Scope for the function passed above
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MenuButton.
-
- -
-

setDisabled

- public function setDisabled(Boolean enabled) -
- Convenience function for boolean enable/disable -
- Parameters: -
  • enabled : Boolean
    True to enable, false to disable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

setHandler

- public function setHandler(Function handler, [Object scope]) -
- Assigns this button's click handler -
- Parameters: -
  • handler : Function
    The function to call when the button is clicked
  • scope : Object
    (optional) Scope for the function passed in
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

setText

- public function setText(String text) -
- Sets this button's text -
- Parameters: -
  • text : String
    The button text
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function for boolean show/hide -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

show

- public function show() -
- Show this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.MenuButton.
-
- -
-

toggle

- public function toggle([Boolean state]) -
- If a state it passed, it becomes the pressed state otherwise the current state is toggled. -
- Parameters: -
  • state : Boolean
    (optional) Force a particular state
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Button.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

arrowclick

- public event arrowclick -
- Fires when this button's arrow is clicked -
- Subscribers will be called with the following parameters: -
  • this : MenuButton
  • e : EventObject
    The click event
-
-
-
This event is defined by MenuButton.
-
- -
-

click

- public event click -
- Fires when this button is clicked -
- Subscribers will be called with the following parameters: -
  • this : Button
  • e : EventObject
    The click event
-
-
-
This event is defined by Button.
-
- -
-

mouseout

- public event mouseout -
- Fires when the mouse exits the button -
- Subscribers will be called with the following parameters: -
  • this : Button
  • e : Event
    The event object
-
-
-
This event is defined by Button.
-
- -
-

mouseover

- public event mouseover -
- Fires when the mouse hovers over the button -
- Subscribers will be called with the following parameters: -
  • this : Button
  • e : Event
    The event object
-
-
-
This event is defined by Button.
-
- -
-

toggle

- public event toggle -
- Fires when the "pressed" state of this button changes (only if enableToggle = true) -
- Subscribers will be called with the following parameters: -
  • this : Button
  • pressed : Boolean
-
-
-
This event is defined by Button.
-
-
-

Config Details

-
- -
-

arrowHandler

- arrowHandler : Function -
- A function called when the arrow button is clicked (can be used instead of click event)
-
This config option is defined by MenuButton.
-
- -
-

arrowTooltip

- arrowTooltip : String -
- The title attribute of the arrow
-
This config option is defined by MenuButton.
-
- -
-

disabled

- disabled : Boolean -
- True to start disabled (defaults to false)
-
This config option is defined by Button.
-
- -
-

enableToggle

- enableToggle : Boolean -
- True to enable pressed/not pressed toggling (defaults to false)
-
This config option is defined by Button.
-
- -
-

handler

- handler : Function -
- A function called when the button is clicked (can be used instead of click event)
-
This config option is defined by Button.
-
- -
-

hidden

- hidden : Boolean -
- True to start hidden (defaults to false)
-
This config option is defined by Button.
-
- -
-

icon

- icon : String -
- The path to an image to display in the button (the image will be set as the background-image CSS property of the button by default, so if you want a mixed icon/text button, set cls:"x-btn-text-icon")
-
This config option is defined by Button.
-
- -
-

menu

- menu : Mixed -
- Standard menu attribute consisting of a reference to a menu object, a menu id or a menu config blob
-
This config option is defined by Button.
-
- -
-

menuAlign

- menuAlign : String -
- The position to align the menu to (see Ext.Element.alignTo for more details, defaults to 'tl-bl?').
-
This config option is defined by Button.
-
- -
-

minWidth

- minWidth : Number -
- The minimum width for this button (used to give a set of buttons a common width)
-
This config option is defined by Button.
-
- -
-

pressed

- pressed : Boolean -
- True to start pressed (only if enableToggle = true)
-
This config option is defined by Button.
-
- -
-

repeat

- repeat : Boolean/Object -
- True to repeat fire the click event while the mouse is down. This can also be an Ext.util.ClickRepeater config object (defaults to false).
-
This config option is defined by Button.
-
- -
-

scope

- scope : Object -
- The scope of the handler
-
This config option is defined by Button.
-
- -
-

text

- text : String -
- The button text
-
This config option is defined by Button.
-
- -
-

toggleGroup

- toggleGroup : String -
- The group this toggle button is a member of (only 1 per group can be pressed, only applies if enableToggle = true)
-
This config option is defined by Button.
-
- -
-

tooltip

- tooltip : String/Object -
- The tooltip for the button - can be a string or QuickTips config object
-
This config option is defined by Button.
-
- -
-

tooltipType

- tooltipType : String -
- The type of tooltip to use. Either "qtip" for QuickTips or "title" for title attribute.
-
This config option is defined by Button.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Toolbar.Separator.html b/www/extras/extjs/docs/output/Ext.Toolbar.Separator.html deleted file mode 100644 index c9b2b696d..000000000 --- a/www/extras/extjs/docs/output/Ext.Toolbar.Separator.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - Ext.Toolbar.Separator - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Toolbar.Separator

- - - - - -
Package:Ext
Class:Toolbar.Separator
Extends:Toolbar.Item
Defined In:Toolbar.js
-
- A simple toolbar separator class
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Toolbar.Separator()Toolbar.Separator
Creates a new Separator
 destroy() : voidToolbar.Item
Remove and destroy this button
 disable() : voidToolbar.Item
Disable this item
 enable() : voidToolbar.Item
Enable this item
 focus() : voidToolbar.Item
Try to focus this item
 getEl() : HTMLElementToolbar.Item
Get this item's HTML Element
 hide() : voidToolbar.Item
Hide this item
 setVisible(Boolean visible) : voidToolbar.Item
Convenience function for boolean show/hide
 show() : voidToolbar.Item
Show this item
- -

Public Events

-
This class has no public events.
- -

Constructor Details

-
-
-

Toolbar.Separator

- public function Toolbar.Separator() -
- Creates a new Separator
- Parameters: -
  • None.
-
-
-
-
- -

Method Details

-
- -
-

destroy

- public function destroy() -
- Remove and destroy this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

disable

- public function disable() -
- Disable this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

enable

- public function enable() -
- Enable this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

focus

- public function focus() -
- Try to focus this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

getEl

- public function getEl() -
- Get this item's HTML Element -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

hide

- public function hide() -
- Hide this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function for boolean show/hide -
- Parameters: -
  • visible : Boolean
    true to show/false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

show

- public function show() -
- Show this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Toolbar.Spacer.html b/www/extras/extjs/docs/output/Ext.Toolbar.Spacer.html deleted file mode 100644 index 8476019c7..000000000 --- a/www/extras/extjs/docs/output/Ext.Toolbar.Spacer.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - Ext.Toolbar.Spacer - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Toolbar.Spacer

- - - - - -
Package:Ext
Class:Toolbar.Spacer
Extends:Toolbar.Item
Defined In:Toolbar.js
-
- A simple element that adds extra horizontal space to a toolbar.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Toolbar.Spacer()Toolbar.Spacer
Creates a new Spacer
 destroy() : voidToolbar.Item
Remove and destroy this button
 disable() : voidToolbar.Item
Disable this item
 enable() : voidToolbar.Item
Enable this item
 focus() : voidToolbar.Item
Try to focus this item
 getEl() : HTMLElementToolbar.Item
Get this item's HTML Element
 hide() : voidToolbar.Item
Hide this item
 setVisible(Boolean visible) : voidToolbar.Item
Convenience function for boolean show/hide
 show() : voidToolbar.Item
Show this item
- -

Public Events

-
This class has no public events.
- -

Constructor Details

-
-
-

Toolbar.Spacer

- public function Toolbar.Spacer() -
- Creates a new Spacer
- Parameters: -
  • None.
-
-
-
-
- -

Method Details

-
- -
-

destroy

- public function destroy() -
- Remove and destroy this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

disable

- public function disable() -
- Disable this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

enable

- public function enable() -
- Enable this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

focus

- public function focus() -
- Try to focus this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

getEl

- public function getEl() -
- Get this item's HTML Element -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

hide

- public function hide() -
- Hide this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function for boolean show/hide -
- Parameters: -
  • visible : Boolean
    true to show/false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

show

- public function show() -
- Show this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Toolbar.TextItem.html b/www/extras/extjs/docs/output/Ext.Toolbar.TextItem.html deleted file mode 100644 index ea8443abf..000000000 --- a/www/extras/extjs/docs/output/Ext.Toolbar.TextItem.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - Ext.Toolbar.TextItem - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Toolbar.TextItem

- - - - - -
Package:Ext
Class:Toolbar.TextItem
Extends:Toolbar.Item
Defined In:Toolbar.js
-
- A simple class that renders text directly into a toolbar.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Toolbar.TextItem(String text)Toolbar.TextItem
Creates a new TextItem
 destroy() : voidToolbar.Item
Remove and destroy this button
 disable() : voidToolbar.Item
Disable this item
 enable() : voidToolbar.Item
Enable this item
 focus() : voidToolbar.Item
Try to focus this item
 getEl() : HTMLElementToolbar.Item
Get this item's HTML Element
 hide() : voidToolbar.Item
Hide this item
 setVisible(Boolean visible) : voidToolbar.Item
Convenience function for boolean show/hide
 show() : voidToolbar.Item
Show this item
- -

Public Events

-
This class has no public events.
- -

Constructor Details

-
-
-

Toolbar.TextItem

- public function Toolbar.TextItem(String text) -
- Creates a new TextItem
- Parameters: -
  • text : String
-
-
-
-
- -

Method Details

-
- -
-

destroy

- public function destroy() -
- Remove and destroy this button -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

disable

- public function disable() -
- Disable this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

enable

- public function enable() -
- Enable this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

focus

- public function focus() -
- Try to focus this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

getEl

- public function getEl() -
- Get this item's HTML Element -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

hide

- public function hide() -
- Hide this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function for boolean show/hide -
- Parameters: -
  • visible : Boolean
    true to show/false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
- -
-

show

- public function show() -
- Show this item -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.Item.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.Toolbar.html b/www/extras/extjs/docs/output/Ext.Toolbar.html deleted file mode 100644 index 66e17cbc1..000000000 --- a/www/extras/extjs/docs/output/Ext.Toolbar.html +++ /dev/null @@ -1,356 +0,0 @@ - - - - Ext.Toolbar - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.Toolbar

- - - - - - -
Package:Ext
Class:Toolbar
Extends:Object
Subclasses:PagingToolbar
Defined In:Toolbar.js
-
- Basic Toolbar class.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Toolbar(String/HTMLElement/Element container, [Array buttons], Object config)Toolbar
Creates a new Toolbar
 add(Mixed arg1, Mixed arg2, Mixed etc) : voidToolbar
Adds element(s) to the toolbar - this function takes a variable number of -arguments of mixed type and adds them to t...
 addButton(Object/Array config) : Ext.Toolbar.Button/ArrayToolbar
Add a button (or buttons), see Ext.Toolbar.Button for more info on the config
 addDom(Object config) : Ext.Toolbar.ItemToolbar
Adds a new element to the toolbar from the passed DomHelper config
 addElement(String/HTMLElement/Element el) : Ext.Toolbar.ItemToolbar
Adds any standard HTML element to the toolbar
 addField(Field field) : ToolbarItemToolbar
Add a dynamically rendered Ext.form field (TextField, ComboBox, etc). Note: the field should not have -been rendered y...
 addItem(Toolbar.Item item) : Ext.Toolbar.ItemToolbar
Adds any Toolbar.Item or subclass
 addSeparator() : Ext.Toolbar.ItemToolbar
Adds a separator
 addSpacer() : Ext.Toolbar.ItemToolbar
Adds a spacer element
 addText(String text) : Ext.Toolbar.ItemToolbar
Adds text to the toolbar
 getEl() : Ext.ElementToolbar
Returns the element for this toolbar
 insertButton(Number index, Object/Toolbar.Item/Toolbar.Button (may) : Ext.Toolbar.Button/ItemToolbar
Inserts any Toolbar.Item/Toolbar.Button at the specified index
- -

Public Events

-
This class has no public events.
- -

Constructor Details

-
-
-

Toolbar

- public function Toolbar(String/HTMLElement/Element container, [Array buttons], Object config) -
- Creates a new Toolbar
- Parameters: -
  • container : String/HTMLElement/Element
    The id or element that will contain the toolbar
  • buttons : Array
    (optional) array of button configs or elements to add
  • config : Object
    The config object
-
-
-
-
- -

Method Details

-
- -
-

add

- public function add(Mixed arg1, Mixed arg2, Mixed etc) -
- Adds element(s) to the toolbar - this function takes a variable number of -arguments of mixed type and adds them to the toolbar. -
- Parameters: -
  • arg1 : Mixed
    If arg is a Toolbar.Button, it is added. If arg is a string, it is wrapped in a ytb-text element and added unless the text is "separator" in which case a separator is added. Otherwise, it is assumed the element is an HTMLElement and it is added directly.
  • arg2 : Mixed
  • etc : Mixed
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addButton

- public function addButton(Object/Array config) -
- Add a button (or buttons), see Ext.Toolbar.Button for more info on the config -
- Parameters: -
  • config : Object/Array
    A button config or array of configs
- Returns: -
    -
  • Ext.Toolbar.Button/Array
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addDom

- public function addDom(Object config) -
- Adds a new element to the toolbar from the passed DomHelper config -
- Parameters: -
  • config : Object
- Returns: -
    -
  • Ext.Toolbar.Item
    The element's item
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addElement

- public function addElement(String/HTMLElement/Element el) -
- Adds any standard HTML element to the toolbar -
- Parameters: -
  • el : String/HTMLElement/Element
    The element or id of the element to add
- Returns: -
    -
  • Ext.Toolbar.Item
    The element's item
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addField

- public function addField(Field field) -
- Add a dynamically rendered Ext.form field (TextField, ComboBox, etc). Note: the field should not have -been rendered yet. For a field that has already been rendered, use addElement. -
- Parameters: -
  • field : Field
- Returns: -
    -
  • ToolbarItem
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addItem

- public function addItem(Toolbar.Item item) -
- Adds any Toolbar.Item or subclass -
- Parameters: -
  • item : Toolbar.Item
- Returns: -
    -
  • Ext.Toolbar.Item
    The item
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addSeparator

- public function addSeparator() -
- Adds a separator -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Toolbar.Item
    The separator item
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addSpacer

- public function addSpacer() -
- Adds a spacer element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Toolbar.Item
    The spacer item
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

addText

- public function addText(String text) -
- Adds text to the toolbar -
- Parameters: -
  • text : String
    The text to add
- Returns: -
    -
  • Ext.Toolbar.Item
    The element's item
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

getEl

- public function getEl() -
- Returns the element for this toolbar -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by Toolbar.
-
- -
-

insertButton

- public function insertButton(Number index, Object/Toolbar.Item/Toolbar.Button (may) -
- Inserts any Toolbar.Item/Toolbar.Button at the specified index -
- Parameters: -
  • index : Number
    The index where the item is to be inserted
  • (may : Object/Toolbar.Item/Toolbar.Button
    be Array)} item The button, or button config object to be inserted.
- Returns: -
    -
  • Ext.Toolbar.Button/Item
  • -
-
-
-
This method is defined by Toolbar.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.UpdateManager.BasicRenderer.html b/www/extras/extjs/docs/output/Ext.UpdateManager.BasicRenderer.html deleted file mode 100644 index c8d2b1b91..000000000 --- a/www/extras/extjs/docs/output/Ext.UpdateManager.BasicRenderer.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - Ext.UpdateManager.BasicRenderer - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.UpdateManager.BasicRenderer

- - - - - -
Package:Ext
Class:UpdateManager.BasicRenderer
Extends:Object
Defined In:UpdateManager.js
-
- Default Content renderer. Updates the elements innerHTML with the responseText.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - -
MethodDefined By
 render(Ext.Element el, Object response, UpdateManager updateManager, Function callback) : voidUpdateManager.BasicRenderer
This is called when the transaction is completed and it's time to update the element - The BasicRenderer -updates the...
- -

Public Events

-
This class has no public events.
- -

Method Details

-
- -
-

render

- public function render(Ext.Element el, Object response, UpdateManager updateManager, Function callback) -
- This is called when the transaction is completed and it's time to update the element - The BasicRenderer -updates the elements innerHTML with the responseText - To perform a custom render (i.e. XML or JSON processing), -create an object with a "render(el, response)" method and pass it to setRenderer on the UpdateManager. -
- Parameters: -
  • el : Ext.Element
    The element being rendered
  • response : Object
    The YUI Connect response object
  • updateManager : UpdateManager
    The calling update manager
  • callback : Function
    A callback that will need to be called if loadScripts is true on the UpdateManager
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by UpdateManager.BasicRenderer.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.UpdateManager.defaults.html b/www/extras/extjs/docs/output/Ext.UpdateManager.defaults.html deleted file mode 100644 index 0e8f47f8a..000000000 --- a/www/extras/extjs/docs/output/Ext.UpdateManager.defaults.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - Ext.UpdateManager.defaults - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.UpdateManager.defaults

- - - - - -
Package:Ext
Class:UpdateManager.defaults
Extends:Object
Defined In:UpdateManager.js
-
- The defaults collection enables customizing the default properties of UpdateManager
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disableCaching : BooleanUpdateManager.defaults
Whether to append unique parameter on get request to disable caching (Defaults to false).
 indicatorText : StringUpdateManager.defaults
Text for loading indicator (Defaults to '<div class="loading-indicator">Loading...</div>').
 loadScripts : BooleanUpdateManager.defaults
True to process scripts by default (Defaults to false).
 showLoadIndicator : BooleanUpdateManager.defaults
Whether to show indicatorText when loading (Defaults to true).
 sslBlankUrl : StringUpdateManager.defaults
Blank page URL to use with SSL file uploads (Defaults to "javascript:false").
 timeout : NumberUpdateManager.defaults
Timeout for requests or form posts in seconds (Defaults 30 seconds).
- -

Public Methods

-
This class has no public methods.
-

Public Events

-
This class has no public events.

Property Details

-
- -
-

disableCaching

- public Boolean disableCaching -
- Whether to append unique parameter on get request to disable caching (Defaults to false).
-
This property is defined by UpdateManager.defaults.
-
- -
-

indicatorText

- public String indicatorText -
- Text for loading indicator (Defaults to '<div class="loading-indicator">Loading...</div>').
-
This property is defined by UpdateManager.defaults.
-
- -
-

loadScripts

- public Boolean loadScripts -
- True to process scripts by default (Defaults to false).
-
This property is defined by UpdateManager.defaults.
-
- -
-

showLoadIndicator

- public Boolean showLoadIndicator -
- Whether to show indicatorText when loading (Defaults to true).
-
This property is defined by UpdateManager.defaults.
-
- -
-

sslBlankUrl

- public String sslBlankUrl -
- Blank page URL to use with SSL file uploads (Defaults to "javascript:false").
-
This property is defined by UpdateManager.defaults.
-
- -
-

timeout

- public Number timeout -
- Timeout for requests or form posts in seconds (Defaults 30 seconds).
-
This property is defined by UpdateManager.defaults.
-
-
- - - - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.UpdateManager.html b/www/extras/extjs/docs/output/Ext.UpdateManager.html deleted file mode 100644 index 92620e3e8..000000000 --- a/www/extras/extjs/docs/output/Ext.UpdateManager.html +++ /dev/null @@ -1,890 +0,0 @@ - - - - Ext.UpdateManager - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.UpdateManager

- - - - - -
Package:Ext
Class:UpdateManager
Extends:Observable
Defined In:UpdateManager.js
-
- Provides AJAX-style update for Element object.

-Usage:
-
// Get it from a Ext.Element object
-var el = Ext.get("foo");
-var mgr = el.getUpdateManager();
-mgr.update("http://myserver.com/index.php", "param1=1&param2=2");
-...
-mgr.formUpdate("myFormId", "http://myserver.com/index.php");
-
-// or directly (returns the same UpdateManager instance) -var mgr = new Ext.UpdateManager("myElementId"); -mgr.startAutoRefresh(60, "http://myserver.com/index.php"); -mgr.on("update", myFcnNeedsToKnow); -
- // short handed call directly from the element object - Ext.get("foo").load({ - url: "bar.php", - scripts:true, - params: "for=bar", - text: "Loading Foo..." - });
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 defaultUrl : StringUpdateManager
Cached url to use for refreshes. Overwritten every time update() is called unless "discardUrl" param is set to true.
 disableCaching : BooleanUpdateManager
Whether to append unique parameter on get request to disable caching (Defaults to Ext.UpdateManager.defaults.disableC...
 el : Ext.ElementUpdateManager
The Element object
 formUpdateDelegate : FunctionUpdateManager
Delegate for formUpdate() prebound to "this", use myUpdater.formUpdateDelegate.createCallback(arg1, arg2) to bind arg...
 indicatorText : StringUpdateManager
Text for loading indicator (Defaults to Ext.UpdateManager.defaults.indicatorText or '<div class="loading-indicator...
 loadScripts : BooleanUpdateManager
True to process scripts in the output (Defaults to Ext.UpdateManager.defaults.loadScripts (false)).
 refreshDelegate : FunctionUpdateManager
Delegate for refresh() prebound to "this", use myUpdater.refreshDelegate.createCallback(arg1, arg2) to bind arguments
 renderer : ObjectUpdateManager
The renderer for this UpdateManager. Defaults to Ext.UpdateManager.BasicRenderer.
 showLoadIndicator : StringUpdateManager
Whether to show indicatorText when loading (Defaults to Ext.UpdateManager.defaults.showLoadIndicator or true).
 sslBlankUrl : StringUpdateManager
Blank page URL to use with SSL file uploads (Defaults to Ext.UpdateManager.defaults.sslBlankUrl or "about:blank").
 timeout : NumberUpdateManager
Timeout for requests or form posts in seconds (Defaults to Ext.UpdateManager.defaults.timeout or 30 seconds).
 transaction : ObjectUpdateManager
Transaction object of current executing transaction
 updateDelegate : FunctionUpdateManager
Delegate for update() prebound to "this", use myUpdater.updateDelegate.createCallback(arg1, arg2) to bind arguments
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 UpdateManager(String/HTMLElement/Ext.Element el, [Boolean forceNew])UpdateManager
Create new UpdateManager directly.
 UpdateManager.updateElement(String/HTMLElement/Ext.Element el, String url, [String/Object params], [Object options]) : voidUpdateManager
Deprecated. <static> Static convenience method. This method is deprecated in favor of el.load({url:'foo.php', ....
 abort() : voidUpdateManager
Aborts the executing transaction
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 formUpdate(String/HTMLElement form, [String url], [Boolean reset], [Function callback]) : voidUpdateManager
Performs an async form post, updating this element with the response. If the form has the attribute enctype="multipar...
 getEl() : Ext.ElementUpdateManager
Get the Element this UpdateManager is bound to
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 isUpdating() : BooleanUpdateManager
Returns true if an update is in progress
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 refresh([Function callback]) : voidUpdateManager
Refresh the element with the last used url or defaultUrl. If there is no url, it returns immediately
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 setDefaultUrl(String/Function defaultUrl) : voidUpdateManager
Set the defaultUrl used for updates
 setRenderer(Object renderer) : voidUpdateManager
Set the content renderer for this UpdateManager. See Ext.UpdateManager.BasicRenderer.render for more details.
 showLoading() : voidUpdateManager
Called to update the element to "Loading" state. Override to perform custom action.
 startAutoRefresh(Number interval, [String/Function url], [String/Object params], [Function callback], [Boolean refreshNow]) : voidUpdateManager
Set this element to auto refresh.
 stopAutoRefresh() : voidUpdateManager
Stop auto refresh on this element.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 update(Object/String/Function url, [String/Object params], [Function callback], [Boolean discardUrl]) : voidUpdateManager
Performs an async request, updating this element with the response. If params are specified it uses POST, otherwise i...
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforeupdate : (Ext.Element el, String/Object/Function url, String/Object params)UpdateManager
Fired before an update is made, return false from your handler and the update is cancelled.
 failure : (Ext.Element el, Object oResponseObject)UpdateManager
Fired on update failure.
 update : (Ext.Element el, Object oResponseObject)UpdateManager
Fired after successful update is made.
-

Property Details

-
- -
-

defaultUrl

- public String defaultUrl -
- Cached url to use for refreshes. Overwritten every time update() is called unless "discardUrl" param is set to true.
-
This property is defined by UpdateManager.
-
- -
-

disableCaching

- public Boolean disableCaching -
- Whether to append unique parameter on get request to disable caching (Defaults to Ext.UpdateManager.defaults.disableCaching or false).
-
This property is defined by UpdateManager.
-
- -
-

el

- public Ext.Element el -
- The Element object
-
This property is defined by UpdateManager.
-
- -
-

formUpdateDelegate

- public Function formUpdateDelegate -
- Delegate for formUpdate() prebound to "this", use myUpdater.formUpdateDelegate.createCallback(arg1, arg2) to bind arguments
-
This property is defined by UpdateManager.
-
- -
-

indicatorText

- public String indicatorText -
- Text for loading indicator (Defaults to Ext.UpdateManager.defaults.indicatorText or '<div class="loading-indicator">Loading...</div>').
-
This property is defined by UpdateManager.
-
- -
-

loadScripts

- public Boolean loadScripts -
- True to process scripts in the output (Defaults to Ext.UpdateManager.defaults.loadScripts (false)).
-
This property is defined by UpdateManager.
-
- -
-

refreshDelegate

- public Function refreshDelegate -
- Delegate for refresh() prebound to "this", use myUpdater.refreshDelegate.createCallback(arg1, arg2) to bind arguments
-
This property is defined by UpdateManager.
-
- -
-

renderer

- public Object renderer -
- The renderer for this UpdateManager. Defaults to Ext.UpdateManager.BasicRenderer.
-
This property is defined by UpdateManager.
-
- -
-

showLoadIndicator

- public String showLoadIndicator -
- Whether to show indicatorText when loading (Defaults to Ext.UpdateManager.defaults.showLoadIndicator or true).
-
This property is defined by UpdateManager.
-
- -
-

sslBlankUrl

- public String sslBlankUrl -
- Blank page URL to use with SSL file uploads (Defaults to Ext.UpdateManager.defaults.sslBlankUrl or "about:blank").
-
This property is defined by UpdateManager.
-
- -
-

timeout

- public Number timeout -
- Timeout for requests or form posts in seconds (Defaults to Ext.UpdateManager.defaults.timeout or 30 seconds).
-
This property is defined by UpdateManager.
-
- -
-

transaction

- public Object transaction -
- Transaction object of current executing transaction
-
This property is defined by UpdateManager.
-
- -
-

updateDelegate

- public Function updateDelegate -
- Delegate for update() prebound to "this", use myUpdater.updateDelegate.createCallback(arg1, arg2) to bind arguments
-
This property is defined by UpdateManager.
-
-
- - -

Constructor Details

-
-
-

UpdateManager

- public function UpdateManager(String/HTMLElement/Ext.Element el, [Boolean forceNew]) -
- Create new UpdateManager directly.
- Parameters: -
  • el : String/HTMLElement/Ext.Element
    The element to update
  • forceNew : Boolean
    (optional) By default the constructor checks to see if the passed element already has an UpdateManager and if it does it returns the same instance. This will skip that check (useful for extending this class).
-
-
-
-
- -

Method Details

-
- -
-

UpdateManager.updateElement

- public function UpdateManager.updateElement(String/HTMLElement/Ext.Element el, String url, [String/Object params], [Object options]) -
- Deprecated. <static> Static convenience method. This method is deprecated in favor of el.load({url:'foo.php', ...}). -Usage: -
Ext.UpdateManager.updateElement("my-div", "stuff.php");
-
- Parameters: -
  • el : String/HTMLElement/Ext.Element
    The element to update
  • url : String
    The url
  • params : String/Object
    (optional) Url encoded param string or an object of name/value pairs
  • options : Object
    (optional) A config object with any of the UpdateManager properties you want to set - for example: {disableCaching:true, indicatorText: "Loading data..."}
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by UpdateManager.
-
- -
-

abort

- public function abort() -
- Aborts the executing transaction -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by UpdateManager.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

formUpdate

- public function formUpdate(String/HTMLElement form, [String url], [Boolean reset], [Function callback]) -
- Performs an async form post, updating this element with the response. If the form has the attribute enctype="multipart/form-data", it assumes it's a file upload. -Uses this.sslBlankUrl for SSL file uploads to prevent IE security warning. See YUI docs for more info. -
- Parameters: -
  • form : String/HTMLElement
    The form Id or form element
  • url : String
    (optional) The url to pass the form to. If omitted the action attribute on the form will be used.
  • reset : Boolean
    (optional) Whether to try to reset the form after the update
  • callback : Function
    (optional) Callback when transaction is complete - called with signature (oElement, bSuccess, oResponse)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by UpdateManager.
-
- -
-

getEl

- public function getEl() -
- Get the Element this UpdateManager is bound to -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by UpdateManager.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

isUpdating

- public function isUpdating() -
- Returns true if an update is in progress -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by UpdateManager.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

refresh

- public function refresh([Function callback]) -
- Refresh the element with the last used url or defaultUrl. If there is no url, it returns immediately -
- Parameters: -
  • callback : Function
    (optional) Callback when transaction is complete - called with signature (oElement, bSuccess)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by UpdateManager.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

setDefaultUrl

- public function setDefaultUrl(String/Function defaultUrl) -
- Set the defaultUrl used for updates -
- Parameters: -
  • defaultUrl : String/Function
    The url or a function to call to get the url
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by UpdateManager.
-
- -
-

setRenderer

- public function setRenderer(Object renderer) -
- Set the content renderer for this UpdateManager. See Ext.UpdateManager.BasicRenderer.render for more details. -
- Parameters: -
  • renderer : Object
    The object implementing the render() method
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by UpdateManager.
-
- -
-

showLoading

- public function showLoading() -
- Called to update the element to "Loading" state. Override to perform custom action. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by UpdateManager.
-
- -
-

startAutoRefresh

- public function startAutoRefresh(Number interval, [String/Function url], [String/Object params], [Function callback], [Boolean refreshNow]) -
- Set this element to auto refresh. -
- Parameters: -
  • interval : Number
    How often to update (in seconds).
  • url : String/Function
    (optional) The url for this request or a function to call to get the url (Defaults to the last used url)
  • params : String/Object
    (optional) The parameters to pass as either a url encoded string "¶m1=1¶m2=2" or as an object {param1: 1, param2: 2}
  • callback : Function
    (optional) Callback when transaction is complete - called with signature (oElement, bSuccess)
  • refreshNow : Boolean
    (optional) Whether to execute the refresh now, or wait the interval
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by UpdateManager.
-
- -
-

stopAutoRefresh

- public function stopAutoRefresh() -
- Stop auto refresh on this element. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by UpdateManager.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

update

- public function update(Object/String/Function url, [String/Object params], [Function callback], [Boolean discardUrl]) -
- Performs an async request, updating this element with the response. If params are specified it uses POST, otherwise it uses GET. -
- Parameters: -
  • url : Object/String/Function
    The url for this request or a function to call to get the url or a config object containing any of the following options:
     um.update({
    url: "your-url.php",
    params: {param1: "foo", param2: "bar"}, // or a URL encoded string
    callback: yourFunction,
    scope: yourObject, //(optional scope)
    discardUrl: false,
    nocache: false,
    text: "Loading...",
    timeout: 30,
    scripts: false
    });
    The only required property is url. The optional properties nocache, text and scripts are shorthand for disableCaching, indicatorText and loadScripts and are used to set their associated property on this UpdateManager instance.
  • params : String/Object
    (optional) The parameters to pass as either a url encoded string "param1=1&param2=2" or an object {param1: 1, param2: 2}
  • callback : Function
    (optional) Callback when transaction is complete - called with signature (oElement, bSuccess, oResponse)
  • discardUrl : Boolean
    (optional) By default when you execute an update the defaultUrl is changed to the last used url. If true, it will not store the url.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by UpdateManager.
-
-
- -

Event Details

-
- -
-

beforeupdate

- public event beforeupdate -
- Fired before an update is made, return false from your handler and the update is cancelled. -
- Subscribers will be called with the following parameters: -
  • el : Ext.Element
  • url : String/Object/Function
  • params : String/Object
-
-
-
This event is defined by UpdateManager.
-
- -
-

failure

- public event failure -
- Fired on update failure. -
- Subscribers will be called with the following parameters: -
  • el : Ext.Element
  • oResponseObject : Object
    The response Object
-
-
-
This event is defined by UpdateManager.
-
- -
-

update

- public event update -
- Fired after successful update is made. -
- Subscribers will be called with the following parameters: -
  • el : Ext.Element
  • oResponseObject : Object
    The response Object
-
-
-
This event is defined by UpdateManager.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.View.html b/www/extras/extjs/docs/output/Ext.View.html deleted file mode 100644 index da0b43cdc..000000000 --- a/www/extras/extjs/docs/output/Ext.View.html +++ /dev/null @@ -1,855 +0,0 @@ - - - - Ext.View - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.View

- - - - - - -
Package:Ext
Class:View
Extends:Observable
Subclasses:JsonView
Defined In:View.js
-
- Create a "View" for an element based on a data model or UpdateManager and the supplied DomHelper template. -This class also supports single and multi selection modes.
-Create a data model bound view: -
var store = new Ext.data.Store(...);
-
- var view = new Ext.View("my-element",
- '<div id="{0}">{2} - {1}</div>', // auto create template
- {
- singleSelect: true,
- selectedClass: "ydataview-selected",
- store: store
- });
-
- // listen for node click?
- view.on("click", function(vw, index, node, e){
- alert('Node "' + node.id + '" at index: ' + index + " was clicked.");
- });
-
- // load XML data
- dataModel.load("foobar.xml");
- For an example of creating a JSON/UpdateManager view, see Ext.JsonView. -

-Note: The root of your template must be a single node. Table/row implementations may work but are not supported due to -IE"s limited insertion support with tables and Opera"s faulty event bubbling.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 selectedClass : Ext.DomHelper.TemplateView
The css class to add to selected nodes
 tpl : Ext.DomHelper.TemplateView
The template used by this View
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 View(String/HTMLElement/Element container, String/DomHelper.Template tpl, Object config)View
Create a new View
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 clearSelections([Boolean suppressEvent]) : voidView
Clear all selections
 findItemFromChild(HTMLElement node) : HTMLElementView
Returns the template node the passed child belongs to or null if it doesn't belong to one.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getEl() : Ext.ElementView
Returns the element this view is bound to.
 getNode(HTMLElement/String/Number nodeInfo) : HTMLElementView
Gets a template node.
 getNodes(Number startIndex, Number endIndex) : ArrayView
Gets a range template nodes.
 getSelectedIndexes() : ArrayView
Get the indexes of the selected nodes.
 getSelectedNodes() : ArrayView
Get the currently selected nodes.
 getSelectionCount() : NumberView
Get the number of selected nodes.
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 indexOf(HTMLElement/String/Number nodeInfo) : NumberView
Finds the index of the passed node
 isSelected(HTMLElement/Number node) : BooleanView
Returns true if the passed node is selected
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 prepareData(Array/Object data) : voidView
Function to override to reformat the data that is sent to -the template for each node.
 purgeListeners() : voidObservable
Removes all listeners for this object
 refresh() : voidView
Refreshes the view.
 refreshNode(Number index) : voidView
Refresh an individual node.
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 select(Array/HTMLElement/String/Number nodeInfo, [Boolean keepExisting], [Boolean suppressEvent]) : voidView
Selects nodes.
 setStore(Store store) : voidView
Changes the data store this view uses and refresh the view.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforeclick : (Ext.View this, Number index, HTMLElement node, Ext.EventObject e)View
Fires before a click is processed. Returns false to cancel the default action.
 beforeselect : (Ext.View this, HTMLElement node, Array selections)View
Fires before a selection is made. If any handlers return false, the selection is cancelled.
 click : (Ext.View this, Number index, HTMLElement node, Ext.EventObject e)View
Fires when a template node is clicked.
 contextmenu : (Ext.View this, Number index, HTMLElement node, Ext.EventObject e)View
Fires when a template node is right clicked.
 dblclick : (Ext.View this, Number index, HTMLElement node, Ext.EventObject e)View
Fires when a template node is double clicked.
 selectionchange : (Ext.View this, Array selections)View
Fires when the selected nodes change.
-

Property Details

-
- -
-

selectedClass

- public Ext.DomHelper.Template selectedClass -
- The css class to add to selected nodes
-
This property is defined by View.
-
- -
-

tpl

- public Ext.DomHelper.Template tpl -
- The template used by this View
-
This property is defined by View.
-
-
- - -

Constructor Details

-
-
-

View

- public function View(String/HTMLElement/Element container, String/DomHelper.Template tpl, Object config) -
- Create a new View
- Parameters: -
  • container : String/HTMLElement/Element
    The container element where the view is to be rendered.
  • tpl : String/DomHelper.Template
    The rendering template or a string to create a template with
  • config : Object
    The config object
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

clearSelections

- public function clearSelections([Boolean suppressEvent]) -
- Clear all selections -
- Parameters: -
  • suppressEvent : Boolean
    (optional) true to skip firing of the selectionchange event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by View.
-
- -
-

findItemFromChild

- public function findItemFromChild(HTMLElement node) -
- Returns the template node the passed child belongs to or null if it doesn't belong to one. -
- Parameters: -
  • node : HTMLElement
- Returns: -
    -
  • HTMLElement
    The template node
  • -
-
-
-
This method is defined by View.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getEl

- public function getEl() -
- Returns the element this view is bound to. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by View.
-
- -
-

getNode

- public function getNode(HTMLElement/String/Number nodeInfo) -
- Gets a template node. -
- Parameters: -
  • nodeInfo : HTMLElement/String/Number
    An HTMLElement template node, index of a template node or the id of a template node
- Returns: -
    -
  • HTMLElement
    The node or null if it wasn't found
  • -
-
-
-
This method is defined by View.
-
- -
-

getNodes

- public function getNodes(Number startIndex, Number endIndex) -
- Gets a range template nodes. -
- Parameters: -
  • startIndex : Number
  • endIndex : Number
- Returns: -
    -
  • Array
    An array of nodes
  • -
-
-
-
This method is defined by View.
-
- -
-

getSelectedIndexes

- public function getSelectedIndexes() -
- Get the indexes of the selected nodes. -
- Parameters: -
  • None.
- Returns: -
    -
  • Array
  • -
-
-
-
This method is defined by View.
-
- -
-

getSelectedNodes

- public function getSelectedNodes() -
- Get the currently selected nodes. -
- Parameters: -
  • None.
- Returns: -
    -
  • Array
    An array of HTMLElements
  • -
-
-
-
This method is defined by View.
-
- -
-

getSelectionCount

- public function getSelectionCount() -
- Get the number of selected nodes. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by View.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

indexOf

- public function indexOf(HTMLElement/String/Number nodeInfo) -
- Finds the index of the passed node -
- Parameters: -
  • nodeInfo : HTMLElement/String/Number
    An HTMLElement template node, index of a template node or the id of a template node
- Returns: -
    -
  • Number
    The index of the node or -1
  • -
-
-
-
This method is defined by View.
-
- -
-

isSelected

- public function isSelected(HTMLElement/Number node) -
- Returns true if the passed node is selected -
- Parameters: -
  • node : HTMLElement/Number
    The node or node index
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by View.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

prepareData

- public function prepareData(Array/Object data) -
- Function to override to reformat the data that is sent to -the template for each node. -
- Parameters: -
  • data : Array/Object
    The raw data (array of colData for a data model bound view or a JSON object for an UpdateManager bound view).
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by View.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

refresh

- public function refresh() -
- Refreshes the view. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by View.
-
- -
-

refreshNode

- public function refreshNode(Number index) -
- Refresh an individual node. -
- Parameters: -
  • index : Number
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by View.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

select

- public function select(Array/HTMLElement/String/Number nodeInfo, [Boolean keepExisting], [Boolean suppressEvent]) -
- Selects nodes. -
- Parameters: -
  • nodeInfo : Array/HTMLElement/String/Number
    An HTMLElement template node, index of a template node, id of a template node or an array of any of those to select
  • keepExisting : Boolean
    (optional) true to keep existing selections
  • suppressEvent : Boolean
    (optional) true to skip firing of the selectionchange vent
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by View.
-
- -
-

setStore

- public function setStore(Store store) -
- Changes the data store this view uses and refresh the view. -
- Parameters: -
  • store : Store
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by View.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforeclick

- public event beforeclick -
- Fires before a click is processed. Returns false to cancel the default action. -
- Subscribers will be called with the following parameters: -
  • this : Ext.View
  • index : Number
    The index of the target node
  • node : HTMLElement
    The target node
  • e : Ext.EventObject
    The raw event object
-
-
-
This event is defined by View.
-
- -
-

beforeselect

- public event beforeselect -
- Fires before a selection is made. If any handlers return false, the selection is cancelled. -
- Subscribers will be called with the following parameters: -
  • this : Ext.View
  • node : HTMLElement
    The node to be selected
  • selections : Array
    Array of currently selected nodes
-
-
-
This event is defined by View.
-
- -
-

click

- public event click -
- Fires when a template node is clicked. -
- Subscribers will be called with the following parameters: -
  • this : Ext.View
  • index : Number
    The index of the target node
  • node : HTMLElement
    The target node
  • e : Ext.EventObject
    The raw event object
-
-
-
This event is defined by View.
-
- -
-

contextmenu

- public event contextmenu -
- Fires when a template node is right clicked. -
- Subscribers will be called with the following parameters: -
  • this : Ext.View
  • index : Number
    The index of the target node
  • node : HTMLElement
    The target node
  • e : Ext.EventObject
    The raw event object
-
-
-
This event is defined by View.
-
- -
-

dblclick

- public event dblclick -
- Fires when a template node is double clicked. -
- Subscribers will be called with the following parameters: -
  • this : Ext.View
  • index : Number
    The index of the target node
  • node : HTMLElement
    The target node
  • e : Ext.EventObject
    The raw event object
-
-
-
This event is defined by View.
-
- -
-

selectionchange

- public event selectionchange -
- Fires when the selected nodes change. -
- Subscribers will be called with the following parameters: -
  • this : Ext.View
  • selections : Array
    Array of the selected nodes
-
-
-
This event is defined by View.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.WindowManager.html b/www/extras/extjs/docs/output/Ext.WindowManager.html deleted file mode 100644 index 296cf879e..000000000 --- a/www/extras/extjs/docs/output/Ext.WindowManager.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - Ext.WindowManager - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.WindowManager

- - - - - -
Package:Ext
Class:WindowManager
Extends:Ext.WindowGroup
Defined In:WindowManager.js
-
- The default global group of windows.

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

-
This class has no public methods.
-

Public Events

-
This class has no public events.
- - - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.data.ArrayReader.html b/www/extras/extjs/docs/output/Ext.data.ArrayReader.html deleted file mode 100644 index 4eecc17ca..000000000 --- a/www/extras/extjs/docs/output/Ext.data.ArrayReader.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - Ext.data.ArrayReader - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.data.ArrayReader

- - - - - -
Package:Ext.data
Class:ArrayReader
Extends:Ext.data.DataReader
Defined In:ArrayReader.js
-
- Data reader class to create an Array of Ext.data.Record objects from an Array. -Each element of that Array represents a row of data fields. The -fields are pulled into a Record object using as a subscript, the mapping property -of the field definition if it exists, or the field's ordinal position in the definition. -

-The code below lists all configuration options. -

var RecordDef = Ext.data.Record.create([
-       {name: 'name', mapping: 1},
-       {name: 'occupation', mapping: 2},
-   ]);
-   var myReader = new Ext.data.ArrayReader({
-       id: 0                     // The subscript within row Array that provides an ID for the Record (optional)
-   }, RecordDef);
-

-This would consume an Array like this: -


-   [ [1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist'] ]
-  
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 ArrayReader(Object meta, Array/Ext.data.Record constructor})ArrayReader
Create a new JsonReader
 readRecords(Object o) : ObjectArrayReader
Create a data block containing Ext.data.Records from an XML document.
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 id : StringArrayReader
(optional) The subscript within row Array that provides an ID for the Record
 totalProperty : StringArrayReader
Name of the property from which to retrieve the total number of records in the dataset. This is only needed if the wh...
- - -

Constructor Details

-
-
-

ArrayReader

- public function ArrayReader(Object meta, Array/Ext.data.Record constructor}) -
- Create a new JsonReader
- Parameters: - -
-
-
-
- -

Method Details

-
- -
-

readRecords

- public function readRecords(Object o) -
- Create a data block containing Ext.data.Records from an XML document. -
- Parameters: -
  • o : Object
    An object which contains an Array of row objects in the property specified in the config as 'root, and optionally a property, specified in the config as 'totalProperty' which contains the total size of the dataset.
- Returns: -
    -
  • Object
    data A data block which is used by an Ext.data.Store object as a cache of Ext.data.Records.
  • -
-
-
-
This method is defined by ArrayReader.
-
-
- -

Config Details

-
- -
-

id

- id : String -
- (optional) The subscript within row Array that provides an ID for the Record
-
This config option is defined by ArrayReader.
-
- -
-

totalProperty

- totalProperty : String -
- Name of the property from which to retrieve the total number of records in the dataset. This is only needed if the whole dataset is not passed in one go, but is being paged from the remote server.
-
This config option is defined by ArrayReader.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.data.Connection.html b/www/extras/extjs/docs/output/Ext.data.Connection.html deleted file mode 100644 index 5bb2eead1..000000000 --- a/www/extras/extjs/docs/output/Ext.data.Connection.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - Ext.data.Connection - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.data.Connection

- - - - - -
Package:Ext.data
Class:Connection
Extends:Object
Defined In:Connection.js
-
- The class encapsulates a connection to the page's originating domain, allowing requests to be made -either to a configured URL, or to a URL specified at request time. -

-Requests made by this class are asynchronous, and will return immediately, and no data from -the server will be available. To process the returned data, us a callback in the request options -object.

-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Connection(config {Object})Connection
 abort() : voidConnection
Aborts any outstanding request.
 isLoading() : BooleanConnection
Determine whether this object has a request outstanding.
 request([Object options.]) : voidConnection
Sends an HTTP request to a remote server.
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - -
Config OptionsDefined By
 {Number} : timeoutConnection
(Optional) The timeout in milliseconds to be used for requests. Defaults to 30000.
- - -

Constructor Details

-
-
-

Connection

- public function Connection(config {Object}) -
-
- Parameters: -
  • {Object} : config
    a configuration object.
-
-
-
-
- -

Method Details

-
- -
-

abort

- public function abort() -
- Aborts any outstanding request. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Connection.
-
- -
-

isLoading

- public function isLoading() -
- Determine whether this object has a request outstanding. -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
    True if there is an outstanding request.
  • -
-
-
-
This method is defined by Connection.
-
- -
-

request

- public function request([Object options.]) -
- Sends an HTTP request to a remote server. -
- Parameters: -
  • options. : Object
    An object which may contain the following properties:
    • url {String} (Optional) The URL to which to send the request. Defaults to configured URL
    • params {Object} (Optional) An object containing properties which are used as extra parameters to the request
    • method {String} (Optional) The HTTP method to use for the request. Defaults to the configured method, or if no method was configured, "GET" if no parameters are being sent, and "POST" if parameters are being sent.
    • callback {Function} (Optional) The function to be called upon receipt of the HTTP response. The callback is passed the following parameters:
      • options {Object} The parameter to the request call.
      • success {Boolean} True if the request succeeded.
      • resopnse {Object} The XMLHttpRequest object containing the response data.
    • scope {Object} (Optional) The scope in which to execute the callback: The "this" object for the callback function. Defaults to the browser window.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Connection.
-
-
- -

Config Details

-
- -
-

{Number}

- {Number} : timeout -
- (Optional) The timeout in milliseconds to be used for requests. Defaults to 30000.
-
This config option is defined by Connection.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.data.DataProxy.html b/www/extras/extjs/docs/output/Ext.data.DataProxy.html deleted file mode 100644 index fd000fd09..000000000 --- a/www/extras/extjs/docs/output/Ext.data.DataProxy.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - Ext.data.DataProxy - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.data.DataProxy

- - - - - -
Package:Ext.data
Class:DataProxy
Extends:Object
Defined In:DataProxy.js
-
- This class is an abstract base class for implementations which provide retrieval of -unformatted data objects. -

-DataProxy implementations are usually used in conjunction with an implementation of Ext.data.DataReader -(of the approriate type which knows how to parse the data object) to provide a block of Records -to an Ext.data.Store. -

-Custom implementations must implement the load method as described in -Ext.data.HttpProxy.load.

-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

-
This class has no public methods.
-

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforeload : (Object params)DataProxy
Fires before a network request is made to retrieve a data object.
 load : (Object o, Object arg)DataProxy
Fires before the load method's callback is called.
 loadexception : (Object o, Object arg, Object e)DataProxy
Fires if an Exception occurs during data retrieval.
- - - -

Event Details

-
- -
-

beforeload

- public event beforeload -
- Fires before a network request is made to retrieve a data object. -
- Subscribers will be called with the following parameters: -
  • params : Object
    The params parameter to the load function.
-
-
-
This event is defined by DataProxy.
-
- -
-

load

- public event load -
- Fires before the load method's callback is called. -
- Subscribers will be called with the following parameters: -
  • o : Object
    The data object.
  • arg : Object
    The callback argument object passed to the load function.
-
-
-
This event is defined by DataProxy.
-
- -
-

loadexception

- public event loadexception -
- Fires if an Exception occurs during data retrieval. -
- Subscribers will be called with the following parameters: -
  • o : Object
    The data object.
  • arg : Object
    The callback argument object passed to the load function.
  • e : Object
    The Exception.
-
-
-
This event is defined by DataProxy.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.data.HttpProxy.html b/www/extras/extjs/docs/output/Ext.data.HttpProxy.html deleted file mode 100644 index 92465c425..000000000 --- a/www/extras/extjs/docs/output/Ext.data.HttpProxy.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - Ext.data.HttpProxy - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.data.HttpProxy

- - - - - -
Package:Ext.data
Class:HttpProxy
Extends:Object
Defined In:HttpProxy.js
-
- An implementation of Ext.data.DataProxy that reads a data object from an Ext.data.Connection object -configured to reference a certain URL. -

-Note that this class cannot be used to retrieve data from a domain other than the domain -from which the running page was served. -

-For cross-domain access to remote data, use an Ext.data.ScriptTagProxy. - -

-Be aware that to enable the browser to parse an XML document, the server must set -the Content-Type header to "text/xml".

-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 HttpProxy(Object conn)HttpProxy
 load(Object params, Ext.data.DataReader) reader, Function callback, Object scope, Object arg) : voidHttpProxy
Load data from the configured Ext.data.Connection, read the data object into -a block of Ext.data.Records using the pa...
- -

Public Events

-
This class has no public events.
- -

Constructor Details

-
-
-

HttpProxy

- public function HttpProxy(Object conn) -
-
- Parameters: -
  • conn : Object
    An Ext.data.Connection object referencing the URL from which the data object is to be read, or a configuration object for an Ext.data.Connection.
-
-
-
-
- -

Method Details

-
- -
-

load

- public function load(Object params, Ext.data.DataReader) reader, Function callback, Object scope, Object arg) -
- Load data from the configured Ext.data.Connection, read the data object into -a block of Ext.data.Records using the passed Ext.data.DataReader implementation, and -process that block using the passed callback. -
- Parameters: -
  • params : Object
    An object containing properties which are to be used as HTTP parameters for the request to the remote server.
  • reader : Ext.data.DataReader)
    The Reader object which converts the data object into a block of Ext.data.Records.
  • callback : Function
    The function into which to pass the block of Ext.data.Records. The function must be passed
    • The Record block object
    • The "arg" argument from the load function
    • A boolean success indicator
  • scope : Object
    The scope in which to call the callback
  • arg : Object
    An optional argument which is passed to the callback as its second parameter.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by HttpProxy.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.data.JsonReader.html b/www/extras/extjs/docs/output/Ext.data.JsonReader.html deleted file mode 100644 index cf14bcd6f..000000000 --- a/www/extras/extjs/docs/output/Ext.data.JsonReader.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - Ext.data.JsonReader - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.data.JsonReader

- - - - - -
Package:Ext.data
Class:JsonReader
Extends:Ext.data.DataReader
Defined In:JsonReader.js
-
- Data reader class to create an Array of Ext.data.Record objects from a JSON response -based on mappings in a provided Ext.data.Record constructor. -

-The code below lists all configuration options. -

var RecordDef = Ext.data.Record.create([
-       {name: 'name', mapping: 'name'},     // "mapping" property not needed if it's the same as "name"
-       {name: 'occupation'},                // This field will use "occupation" as the mapping.
-   ]);
-   var myReader = new Ext.data.JsonReader({
-       totalProperty: "results",    // The property which contains the number of returned records (optional)
-       root: "rows",                // The property which contains an Array of record objects
-       id: "id"                     // The property within the record object that provides an ID for the record (optional)
-   }, RecordDef);
-

-This would consume a JSON file like this: -


-   { 'results': 2, 'rows': [
-     { 'id': 1, 'name': 'Bill', occupation: 'Gardener' },
-     { 'id': 2, 'name': 'Ben', occupation: 'Horticulturalist' } ]
-   }
-  
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 jsonData : ObjectJsonReader
After any data loads, the raw JSON data is available for further custom processing.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 JsonReader(Object meta, Object[]/Ext.data.Record constructor})JsonReader
Create a new JsonReader
 read(Object response) : ObjectJsonReader
This method is only used by a DataProxy which has retrieved data from a remote server.
 readRecords(Object o) : ObjectJsonReader
Create a data block containing Ext.data.Records from an XML document.
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 id : StringJsonReader
Name of the property within a row object that contains a record identifier value.
 root : StringJsonReader
name of the property which contains the Array of row objects.
 successProperty : StringJsonReader
Name of the property from which to retrieve the success attribute used by forms.
 totalProperty : StringJsonReader
Name of the property from which to retrieve the total number of records in the dataset. This is only needed if the wh...
-

Property Details

-
- -
-

jsonData

- public Object jsonData -
- After any data loads, the raw JSON data is available for further custom processing.
-
This property is defined by JsonReader.
-
-
- - -

Constructor Details

-
-
-

JsonReader

- public function JsonReader(Object meta, Object[]/Ext.data.Record constructor}) -
- Create a new JsonReader
- Parameters: -
  • meta : Object
    Metadata configuration options
  • constructor} : Object[]/Ext.data.Record
    recordType The record definition of the data record to produce.
-
-
-
-
- -

Method Details

-
- -
-

read

- public function read(Object response) -
- This method is only used by a DataProxy which has retrieved data from a remote server. -
- Parameters: -
  • response : Object
    The XHR object which contains the JSON data in its responseText.
- Returns: -
    -
  • Object
    data A data block which is used by an Ext.data.Store object as a cache of Ext.data.Records.
  • -
-
-
-
This method is defined by JsonReader.
-
- -
-

readRecords

- public function readRecords(Object o) -
- Create a data block containing Ext.data.Records from an XML document. -
- Parameters: -
  • o : Object
    An object which contains an Array of row objects in the property specified in the config as 'root, and optionally a property, specified in the config as 'totalProperty' which contains the total size of the dataset.
- Returns: -
    -
  • Object
    data A data block which is used by an Ext.data.Store object as a cache of Ext.data.Records.
  • -
-
-
-
This method is defined by JsonReader.
-
-
- -

Config Details

-
- -
-

id

- id : String -
- Name of the property within a row object that contains a record identifier value.
-
This config option is defined by JsonReader.
-
- -
-

root

- root : String -
- name of the property which contains the Array of row objects.
-
This config option is defined by JsonReader.
-
- -
-

successProperty

- successProperty : String -
- Name of the property from which to retrieve the success attribute used by forms.
-
This config option is defined by JsonReader.
-
- -
-

totalProperty

- totalProperty : String -
- Name of the property from which to retrieve the total number of records in the dataset. This is only needed if the whole dataset is not passed in one go, but is being paged from the remote server.
-
This config option is defined by JsonReader.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.data.MemoryProxy.html b/www/extras/extjs/docs/output/Ext.data.MemoryProxy.html deleted file mode 100644 index 5ee9fb494..000000000 --- a/www/extras/extjs/docs/output/Ext.data.MemoryProxy.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - Ext.data.MemoryProxy - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.data.MemoryProxy

- - - - - -
Package:Ext.data
Class:MemoryProxy
Extends:Object
Defined In:MemoryProxy.js
-
- An implementation of Ext.data.DataProxy that simply passes the data specified in its constructor -to the Reader when its load method is called.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 MemoryProxy(Object data)MemoryProxy
 load(Object params, Ext.data.DataReader) reader, Function callback, Object scope, Object arg) : voidMemoryProxy
Load data from the requested source (in this case an in-memory -data object passed to the constructor), read the data ...
- -

Public Events

-
This class has no public events.
- -

Constructor Details

-
-
-

MemoryProxy

- public function MemoryProxy(Object data) -
-
- Parameters: -
  • data : Object
    The data object which the Reader uses to construct a block of Ext.data.Records.
-
-
-
-
- -

Method Details

-
- -
-

load

- public function load(Object params, Ext.data.DataReader) reader, Function callback, Object scope, Object arg) -
- Load data from the requested source (in this case an in-memory -data object passed to the constructor), read the data object into -a block of Ext.data.Records using the passed Ext.data.DataReader implementation, and -process that block using the passed callback. -
- Parameters: -
  • params : Object
    This parameter is not used by the MemoryProxy class.
  • reader : Ext.data.DataReader)
    The Reader object which converts the data object into a block of Ext.data.Records.
  • callback : Function
    The function into which to pass the block of Ext.data.records. The function must be passed
    • The Record block object
    • The "arg" argument from the load function
    • A boolean success indicator
  • scope : Object
    The scope in which to call the callback
  • arg : Object
    An optional argument which is passed to the callback as its second parameter.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MemoryProxy.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.data.Node.html b/www/extras/extjs/docs/output/Ext.data.Node.html deleted file mode 100644 index ef2f71de7..000000000 --- a/www/extras/extjs/docs/output/Ext.data.Node.html +++ /dev/null @@ -1,1151 +0,0 @@ - - - - Ext.data.Node - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.data.Node

- - - - - - -
Package:Ext.data
Class:Node
Extends:Observable
Subclasses:TreeNode
Defined In:Tree.js
-
-
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 attributes : ObjectNode
The attributes supplied for the node. You can use this property to access any custom attributes you supplied.
 childNodes : ArrayNode
All child nodes of this node.
 firstChild : NodeNode
The first direct child node of this node, or null if this node has no child nodes.
 id : StringNode
The node id.
 lastChild : NodeNode
The last direct child node of this node, or null if this node has no child nodes.
 nextSibling : NodeNode
The node immediately following this node in the tree, or null if there is no sibling node.
 parentNode : NodeNode
The parent node for this node.
 previousSibling : NodeNode
The node immediately preceding this node in the tree, or null if there is no sibling node.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Node(Object attributes)Node
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 appendChild(Node/Array node) : NodeNode
Insert node(s) as the last child node of this node.
 bubble(Function fn, [Object scope], [Array args]) : voidNode
Bubbles up the tree from this node, calling the specified function with each node. The scope (this) of -function call...
 cascade(Function fn, [Object scope], [Array args]) : voidNode
Cascades down the tree from this node, calling the specified function with each node. The scope (this) of -function c...
 contains(Node node) : BooleanNode
Returns true if this node is an ancestor (at any point) of the passed node.
 eachChild(Function fn, [Object scope], [Array args]) : voidNode
Interates the child nodes of this node, calling the specified function with each node. The scope (this) of -function ...
 findChild(String attribute, Mixed value) : NodeNode
Finds the first child that has the attribute with the specified value.
 findChildBy(Function fn, [Object scope]) : NodeNode
Finds the first child by a custom function. The child matches if the function passed -returns true.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getDepth() : NumberNode
Returns depth of this node (the root node has a depth of 0)
 getOwnerTree() : TreeNode
Returns the tree this node is in.
 getPath([String attr]) : StringNode
Returns the path for this node. The path can be used to expand or select this node programmatically.
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 indexOf(Node node) : NumberNode
Returns the index of a child node
 insertBefore(Node node, Node refNode) : NodeNode
Inserts the first node before the second node in this nodes childNodes collection.
 isAncestor(Node node) : BooleanNode
Returns true if the passed node is an ancestor (at any point) of this node.
 isFirst() : BooleanNode
Returns true if this node is the first child of its parent
 isLast() : BooleanNode
Returns true if this node is the last child of its parent
 isLeaf() : BooleanNode
Returns true if this node is a leaf
 item(Number index) : NodeNode
Returns the child node at the specified index.
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeChild(Node node) : NodeNode
Removes a child node from this node.
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 replaceChild(Node newChild, Node oldChild) : NodeNode
Replaces one child node in this node with another.
 sort(Function fn, [Object scope]) : voidNode
Sorts this nodes children using the supplied sort function
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 append : (Tree tree, Node this, Node node, Number index)Node
Fires when a new child node is appended
 beforeappend : (Tree tree, Node this, Node node)Node
Fires before a new child is appended, return false to cancel the append.
 beforeinsert : (Tree tree, Node this, Node node, Node refNode)Node
Fires before a new child is inserted, return false to cancel the insert.
 beforemove : (Tree tree, Node this, Node oldParent, Node newParent, Number index)Node
Fires before this node is moved to a new location in the tree. Return false to cancel the move.
 beforeremove : (Tree tree, Node this, Node node)Node
Fires before a child is removed, return false to cancel the remove.
 insert : (Tree tree, Node this, Node node, Node refNode)Node
Fires when a new child node is inserted.
 move : (Tree tree, Node this, Node oldParent, Node newParent, Number index)Node
Fires when this node is moved to a new location in the tree
 remove : (Tree tree, Node this, Node node)Node
Fires when a child node is removed
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 id : StringNode
The id for this node. If one is not specified, one is generated.
 leaf : BooleanNode
true if this node is a leaf and does not have children
-

Property Details

-
- -
-

attributes

- public Object attributes -
- The attributes supplied for the node. You can use this property to access any custom attributes you supplied.
-
This property is defined by Node.
-
- -
-

childNodes

- public Array childNodes -
- All child nodes of this node.
-
This property is defined by Node.
-
- -
-

firstChild

- public Node firstChild -
- The first direct child node of this node, or null if this node has no child nodes.
-
This property is defined by Node.
-
- -
-

id

- public String id -
- The node id.
-
This property is defined by Node.
-
- -
-

lastChild

- public Node lastChild -
- The last direct child node of this node, or null if this node has no child nodes.
-
This property is defined by Node.
-
- -
-

nextSibling

- public Node nextSibling -
- The node immediately following this node in the tree, or null if there is no sibling node.
-
This property is defined by Node.
-
- -
-

parentNode

- public Node parentNode -
- The parent node for this node.
-
This property is defined by Node.
-
- -
-

previousSibling

- public Node previousSibling -
- The node immediately preceding this node in the tree, or null if there is no sibling node.
-
This property is defined by Node.
-
-
- - -

Constructor Details

-
-
-

Node

- public function Node(Object attributes) -
-
- Parameters: -
  • attributes : Object
    The attributes/config for the node
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

appendChild

- public function appendChild(Node/Array node) -
- Insert node(s) as the last child node of this node. -
- Parameters: -
  • node : Node/Array
    The node or Array of nodes to append
- Returns: -
    -
  • Node
    The appended node if single append, or null if an array was passed
  • -
-
-
-
This method is defined by Node.
-
- -
-

bubble

- public function bubble(Function fn, [Object scope], [Array args]) -
- Bubbles up the tree from this node, calling the specified function with each node. The scope (this) of -function call will be the scope provided or the current node. The arguments to the function -will be the args provided or the current node. If the function returns false at any point, -the bubble is stopped. -
- Parameters: -
  • fn : Function
    The function to call
  • scope : Object
    (optional) The scope of the function (defaults to current node)
  • args : Array
    (optional) The args to call the function with (default to passing the current node)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Node.
-
- -
-

cascade

- public function cascade(Function fn, [Object scope], [Array args]) -
- Cascades down the tree from this node, calling the specified function with each node. The scope (this) of -function call will be the scope provided or the current node. The arguments to the function -will be the args provided or the current node. If the function returns false at any point, -the cascade is stopped on that branch. -
- Parameters: -
  • fn : Function
    The function to call
  • scope : Object
    (optional) The scope of the function (defaults to current node)
  • args : Array
    (optional) The args to call the function with (default to passing the current node)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Node.
-
- -
-

contains

- public function contains(Node node) -
- Returns true if this node is an ancestor (at any point) of the passed node. -
- Parameters: -
  • node : Node
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Node.
-
- -
-

eachChild

- public function eachChild(Function fn, [Object scope], [Array args]) -
- Interates the child nodes of this node, calling the specified function with each node. The scope (this) of -function call will be the scope provided or the current node. The arguments to the function -will be the args provided or the current node. If the function returns false at any point, -the iteration stops. -
- Parameters: -
  • fn : Function
    The function to call
  • scope : Object
    (optional) The scope of the function (defaults to current node)
  • args : Array
    (optional) The args to call the function with (default to passing the current node)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Node.
-
- -
-

findChild

- public function findChild(String attribute, Mixed value) -
- Finds the first child that has the attribute with the specified value. -
- Parameters: -
  • attribute : String
    The attribute name
  • value : Mixed
    The value to search for
- Returns: -
    -
  • Node
    The found child or null if none was found
  • -
-
-
-
This method is defined by Node.
-
- -
-

findChildBy

- public function findChildBy(Function fn, [Object scope]) -
- Finds the first child by a custom function. The child matches if the function passed -returns true. -
- Parameters: -
  • fn : Function
  • scope : Object
    (optional)
- Returns: -
    -
  • Node
    The found child or null if none was found
  • -
-
-
-
This method is defined by Node.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getDepth

- public function getDepth() -
- Returns depth of this node (the root node has a depth of 0) -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Node.
-
- -
-

getOwnerTree

- public function getOwnerTree() -
- Returns the tree this node is in. -
- Parameters: -
  • None.
- Returns: -
    -
  • Tree
  • -
-
-
-
This method is defined by Node.
-
- -
-

getPath

- public function getPath([String attr]) -
- Returns the path for this node. The path can be used to expand or select this node programmatically. -
- Parameters: -
  • attr : String
    (optional) The attr to use for the path (defaults to the node's id)
- Returns: -
    -
  • String
    The path
  • -
-
-
-
This method is defined by Node.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

indexOf

- public function indexOf(Node node) -
- Returns the index of a child node -
- Parameters: -
  • node : Node
- Returns: -
    -
  • Number
    The index of the node or -1 if it was not found
  • -
-
-
-
This method is defined by Node.
-
- -
-

insertBefore

- public function insertBefore(Node node, Node refNode) -
- Inserts the first node before the second node in this nodes childNodes collection. -
- Parameters: -
  • node : Node
    The node to insert
  • refNode : Node
    The node to insert before (if null the node is appended)
- Returns: -
    -
  • Node
    The inserted node
  • -
-
-
-
This method is defined by Node.
-
- -
-

isAncestor

- public function isAncestor(Node node) -
- Returns true if the passed node is an ancestor (at any point) of this node. -
- Parameters: -
  • node : Node
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Node.
-
- -
-

isFirst

- public function isFirst() -
- Returns true if this node is the first child of its parent -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Node.
-
- -
-

isLast

- public function isLast() -
- Returns true if this node is the last child of its parent -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Node.
-
- -
-

isLeaf

- public function isLeaf() -
- Returns true if this node is a leaf -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Node.
-
- -
-

item

- public function item(Number index) -
- Returns the child node at the specified index. -
- Parameters: -
  • index : Number
- Returns: -
    -
  • Node
  • -
-
-
-
This method is defined by Node.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeChild

- public function removeChild(Node node) -
- Removes a child node from this node. -
- Parameters: -
  • node : Node
    The node to remove
- Returns: -
    -
  • Node
    The removed node
  • -
-
-
-
This method is defined by Node.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

replaceChild

- public function replaceChild(Node newChild, Node oldChild) -
- Replaces one child node in this node with another. -
- Parameters: -
  • newChild : Node
    The replacement node
  • oldChild : Node
    The node to replace
- Returns: -
    -
  • Node
    The replaced node
  • -
-
-
-
This method is defined by Node.
-
- -
-

sort

- public function sort(Function fn, [Object scope]) -
- Sorts this nodes children using the supplied sort function -
- Parameters: -
  • fn : Function
  • scope : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Node.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

append

- public event append -
- Fires when a new child node is appended -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The newly appended node
  • index : Number
    The index of the newly appended node
-
-
-
This event is defined by Node.
-
- -
-

beforeappend

- public event beforeappend -
- Fires before a new child is appended, return false to cancel the append. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The child node to be appended
-
-
-
This event is defined by Node.
-
- -
-

beforeinsert

- public event beforeinsert -
- Fires before a new child is inserted, return false to cancel the insert. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The child node to be inserted
  • refNode : Node
    The child node the node is being inserted before
-
-
-
This event is defined by Node.
-
- -
-

beforemove

- public event beforemove -
- Fires before this node is moved to a new location in the tree. Return false to cancel the move. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • oldParent : Node
    The parent of this node
  • newParent : Node
    The new parent this node is moving to
  • index : Number
    The index it is being moved to
-
-
-
This event is defined by Node.
-
- -
-

beforeremove

- public event beforeremove -
- Fires before a child is removed, return false to cancel the remove. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The child node to be removed
-
-
-
This event is defined by Node.
-
- -
-

insert

- public event insert -
- Fires when a new child node is inserted. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The child node inserted
  • refNode : Node
    The child node the node was inserted before
-
-
-
This event is defined by Node.
-
- -
-

move

- public event move -
- Fires when this node is moved to a new location in the tree -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • oldParent : Node
    The old parent of this node
  • newParent : Node
    The new parent of this node
  • index : Number
    The index it was moved to
-
-
-
This event is defined by Node.
-
- -
-

remove

- public event remove -
- Fires when a child node is removed -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The removed node
-
-
-
This event is defined by Node.
-
-
-

Config Details

-
- -
-

id

- id : String -
- The id for this node. If one is not specified, one is generated.
-
This config option is defined by Node.
-
- -
-

leaf

- leaf : Boolean -
- true if this node is a leaf and does not have children
-
This config option is defined by Node.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.data.Record.html b/www/extras/extjs/docs/output/Ext.data.Record.html deleted file mode 100644 index 1d88ead4f..000000000 --- a/www/extras/extjs/docs/output/Ext.data.Record.html +++ /dev/null @@ -1,222 +0,0 @@ - - - - Ext.data.Record - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.data.Record

- - - - - -
Package:Ext.data
Class:Record
Extends:Object
Defined In:Record.js
-
- Instances of this class encapsulate both record definition information, and record -value information for use in Ext.data.Store objects, or any code which needs -to access Records cached in an Ext.data.Store object. -

-Constructors for this class are generated by passing an Array of field definition objects to create -and instances are usually only created by Ext.data.Reader objects when processing unformatted data -objects. -

-Record objects generated by this constructor inherit all the methods of Ext.data.Record listed below.

-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 dirty : BooleanRecord
Readonly flag - true if this record has been modified.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Record(data {Array}, id (Optional))Record
This constructor should not be used to create Record objects. Instead, use the constructor generated by -create. The p...
 commit() : voidRecord
Usually called by the Ext.data.Store which owns the Record. -Commits all changes made to the Record since either creat...
 get(name {String}) : ObjectRecord
Get the value of the named field.
 reject() : voidRecord
Usually called by the Ext.data.Store which owns the Record. -Rejects all changes made to the Record since either creat...
 set(name {String}, value {Object}) : voidRecord
Set the named field to the specified value.
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

dirty

- public Boolean dirty -
- Readonly flag - true if this record has been modified.
-
This property is defined by Record.
-
-
- - -

Constructor Details

-
-
-

Record

- public function Record(data {Array}, id (Optional)) -
- This constructor should not be used to create Record objects. Instead, use the constructor generated by -create. The parameters are the same.
- Parameters: -
  • {Array} : data
    An associative Array of data values keyed by the field name.
  • (Optional) : id
    The id of the record. This id should be unique, and is used by the @link Ext.data.Store} object which owns the Record to index its collection of Records. If not specified an integer id is generated.
-
-
-
-
- -

Method Details

-
- -
-

commit

- public function commit() -
- Usually called by the Ext.data.Store which owns the Record. -Commits all changes made to the Record since either creation, or the last commit operation. -

-Developers should subscribe to the Ext.data.Store.update event to have their code notified -of commit operations. -

- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Record.
-
- -
-

get

- public function get(name {String}) -
- Get the value of the named field. -
- Parameters: -
  • {String} : name
    The name of the field to get the value of.
- Returns: -
    -
  • Object
    The value of the field.
  • -
-
-
-
This method is defined by Record.
-
- -
-

reject

- public function reject() -
- Usually called by the Ext.data.Store which owns the Record. -Rejects all changes made to the Record since either creation, or the last commit operation. -Modified fields are reverted to their original values. -

-Developers should subscribe to the Ext.data.Store.update event to have their code notified -of reject operations. -

- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Record.
-
- -
-

set

- public function set(name {String}, value {Object}) -
- Set the named field to the specified value. -
- Parameters: -
  • {String} : name
    The name of the field to set.
  • {Object} : value
    The value to set the field to.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Record.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.data.ScriptTagProxy.html b/www/extras/extjs/docs/output/Ext.data.ScriptTagProxy.html deleted file mode 100644 index 869c95db7..000000000 --- a/www/extras/extjs/docs/output/Ext.data.ScriptTagProxy.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - Ext.data.ScriptTagProxy - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.data.ScriptTagProxy

- - - - - -
Package:Ext.data
Class:ScriptTagProxy
Extends:Object
Defined In:ScriptTagProxy.js
-
- An implementation of Ext.data.DataProxy that reads a data object from a URL which may be in a domain -other than the originating domain of the running page. -

-Note that this class must be used to retrieve data from a domain other than the domain -from which the running page was served.

-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 ScriptTagProxy(Object conn)ScriptTagProxy
 abort() : voidScriptTagProxy
Abort the current server request.
 load(Object params, Ext.data.DataReader reader, Function callback, Object scope, Object arg) : voidScriptTagProxy
Load data from the configured URL, read the data object into -a block of Ext.data.Records using the passed Ext.data.Da...
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 callbackParam : StringScriptTagProxy
(Optional) The name of the parameter to pass to the server which tells the server the name of the callback function s...
 timeout : NumberScriptTagProxy
(Optional) The number of milliseconds to wait for a response. Defaults to 30 seconds.
 url : StringScriptTagProxy
The url from which to request the data object.
 {Boolean} : nocacheScriptTagProxy
(Optional) Defaults to true. Disable cacheing by adding a unique parameter name to the request.
- - -

Constructor Details

-
-
-

ScriptTagProxy

- public function ScriptTagProxy(Object conn) -
-
- Parameters: -
  • conn : Object
    A configuration object.
-
-
-
-
- -

Method Details

-
- -
-

abort

- public function abort() -
- Abort the current server request. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ScriptTagProxy.
-
- -
-

load

- public function load(Object params, Ext.data.DataReader reader, Function callback, Object scope, Object arg) -
- Load data from the configured URL, read the data object into -a block of Ext.data.Records using the passed Ext.data.DataReader implementation, and -process that block using the passed callback. -
- Parameters: -
  • params : Object
    An object containing properties which are to be used as HTTP parameters for the request to the remote server.
  • reader : Ext.data.DataReader
    The Reader object which converts the data object into a block of Ext.data.Records.
  • callback : Function
    The function into which to pass the block of Ext.data.Records. The function must be passed
    • The Record block object
    • The "arg" argument from the load function
    • A boolean success indicator
  • scope : Object
    The scope in which to call the callback
  • arg : Object
    An optional argument which is passed to the callback as its second parameter.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ScriptTagProxy.
-
-
- -

Config Details

-
- -
-

callbackParam

- callbackParam : String -
- (Optional) The name of the parameter to pass to the server which tells the server the name of the callback function set up by the load call to process the returned data object. Defaults to "callback".

The server-side processing must read this parameter value, and generate javascript output which calls this named function passing the data object as its only parameter.

-
This config option is defined by ScriptTagProxy.
-
- -
-

timeout

- timeout : Number -
- (Optional) The number of milliseconds to wait for a response. Defaults to 30 seconds.
-
This config option is defined by ScriptTagProxy.
-
- -
-

url

- url : String -
- The url from which to request the data object.
-
This config option is defined by ScriptTagProxy.
-
- -
-

{Boolean}

- {Boolean} : nocache -
- (Optional) Defaults to true. Disable cacheing by adding a unique parameter name to the request.
-
This config option is defined by ScriptTagProxy.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.data.SimpleStore.html b/www/extras/extjs/docs/output/Ext.data.SimpleStore.html deleted file mode 100644 index a34447507..000000000 --- a/www/extras/extjs/docs/output/Ext.data.SimpleStore.html +++ /dev/null @@ -1,1242 +0,0 @@ - - - - Ext.data.SimpleStore - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.data.SimpleStore

- - - - - -
Package:Ext.data
Class:SimpleStore
Extends:Store
Defined In:SimpleStore.js
-
- Smaller help class to make creating Stores from Array data easier.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 SimpleStore(Object config)SimpleStore
 add(Ext.data.Record[] records) : voidStore
Add Records to the Store and fires the add event.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 clearFilter(Boolean suppressEvent) : voidStore
Revert to a view of the Record cache with no filtering applied.
 commitChanges() : voidStore
Commit all Records with outstanding changes. To handle updates for changes, subscribe to the -Store's "update" event, ...
 each(Function fn, [Object scope]) : voidStore
Calls the specified function for each of the Records in the cache.
 filter(String field, String/RegExp value) : BooleanStore
Filter the records by a specified property.
 filterBy(Function fn, [Object scope]) : voidStore
Filter by a function. The specified function will be called with each -record in this data source. If the function ret...
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getAt(String index) : Ext.data.RecordStore
Get the Record at the specified index.
 getById(String id) : Ext.data.RecordStore
Get the Record with the specified id.
 getCount() : voidStore
Gets the number of cached records. - -If using paging, this may not be the total size of the dataset. If the data objec...
 getModifiedRecords() : Ext.data.Record[]Store
Get all records modified since the last load, or since the last commit.
 getRange([Number startIndex], [Number endIndex]) : Ext.data.Record[]Store
Returns a range of Records between specified indices.
 getSortState() : voidStore
Returns the sort state of the Store as an object with two properties: - - field {String} The name of the field by whic...
 getTotalCount() : voidStore
Gets the total number of records in the dataset. - -If using paging, for this to be accurate, the data object used by t...
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 indexOf(Ext.data.Record[] records) : NumberStore
Get the index within the cache of the passed Record.
 indexOfId(String id) : NumberStore
Get the index within the cache of the Record with the passed id.
 insert(Number index, Ext.data.Record[] records) : voidStore
Inserts Records to the Store at the given index and fires the add event.
 load(Object options) : voidStore
Loads the Record cache from the configured Proxy using the configured Reader. - -If using remote paging, then the first...
 loadData(Object data, [Boolean append]) : voidStore
Loads data from a passed data block. A Reader which understands the format of the data -must have been configured in t...
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 rejectChanges() : voidStore
Cancel outstanding changes on all changed records.
 reload([Object options]) : voidStore
Reloads the Record cache from the configured Proxy using the configured Reader and -the options from the last load ope...
 remove(Ext.data.Record record) : voidStore
Remove a Record from the Store and fires the remove event.
 removeAll() : voidStore
Remove all Records from the Store and fires the clear event.
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 setDefaultSort(String fieldName, [String dir]) : voidStore
Sets the default sort column and order to be used by the next load operation.
 sort(String fieldName, [String dir]) : voidStore
Sort the Records. -If remote sorting is used, the sort is performed on the server, and the cache is -reloaded. If local...
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 add : (Store this, Ext.data.Record[] records, Number index)Store
Fires when Records have been added to the Store
 beforeload : (Store this, Object options)Store
Fires before a request is made for a new data object. If the beforeload handler returns false -the load action will b...
 clear : (Store this)Store
Fires when the data cache has been cleared.
 datachanged : (Store this)Store
Fires when the data cache has changed, and a widget which is using this Store -as a Record cache should refresh its view.
 load : (Store this, Ext.data.Record[] records, Object options)Store
Fires after a new set of Records has been loaded.
 loadexception : ()Store
Fires if an exception occurs in the Proxy during loading. -Called with the signature of the Proxy's "loadexception" ev...
 remove : (Store this, Ext.data.Record record, Number index)Store
Fires when Records have been removed from the Store
 update : (Store this, Ext.data.Record record, String operation)Store
Fires when Records have been updated
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 baseParams : ObjectStore
An object containing properties which are to be sent as parameters on any HTTP request
 data : ArraySimpleStore
The multi-dimensional array of data
 fields : ArraySimpleStore
An standard field array consisting of string name or object literal field definitions
 id : NumberSimpleStore
The index in the array that be used for record ids. Leave blank to auto generate ids.
 proxy : Ext.data.DataProxyStore
The Proxy object which provides access to a data object.
 reader : Ext.data.ReaderStore
The Reader object which processes the data object and returns an Array of Ext.data.record objects which are cached ke...
 remoteSort : booleanStore
True if sorting is to be handled by requesting the Proxy to provide a refreshed version of the data object in sorted ...
 sortInfo : ObjectStore
A config object in the format: {field: "fieldName", direction: "ASC|DESC"}
- - -

Constructor Details

-
-
-

SimpleStore

- public function SimpleStore(Object config) -
-
- Parameters: -
  • config : Object
-
-
-
-
- -

Method Details

-
- -
-

add

- public function add(Ext.data.Record[] records) -
- Add Records to the Store and fires the add event. -
- Parameters: -
  • records : Ext.data.Record[]
    An Array of Ext.data.Record objects to add to the cache.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

clearFilter

- public function clearFilter(Boolean suppressEvent) -
- Revert to a view of the Record cache with no filtering applied. -
- Parameters: -
  • suppressEvent : Boolean
    If true the filter is cleared silently without notifying listeners
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

commitChanges

- public function commitChanges() -
- Commit all Records with outstanding changes. To handle updates for changes, subscribe to the -Store's "update" event, and perform updating when the third parameter is Ext.data.Record.COMMIT. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

each

- public function each(Function fn, [Object scope]) -
- Calls the specified function for each of the Records in the cache. -
- Parameters: -
  • fn : Function
    The function to call. The Record is passed as the first parameter. Returning false aborts and exits the iteration.
  • scope : Object
    (optional) The scope in which to call the function (defaults to the Record).
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

filter

- public function filter(String field, String/RegExp value) -
- Filter the records by a specified property. -
- Parameters: -
  • field : String
    A field on your records
  • value : String/RegExp
    Either a string that the field should start with or a RegExp to test against the field
- Returns: -
    -
  • Boolean
    True if the filter matched at least one record, else false
  • -
-
-
-
This method is defined by Store.
-
- -
-

filterBy

- public function filterBy(Function fn, [Object scope]) -
- Filter by a function. The specified function will be called with each -record in this data source. If the function returns true the record is included, -otherwise it is filtered. -
- Parameters: -
  • fn : Function
    The function to be called, it will receive 2 args (record, id)
  • scope : Object
    (optional) The scope of the function (defaults to this)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getAt

- public function getAt(String index) -
- Get the Record at the specified index. -
- Parameters: -
  • index : String
    The index of the Record to find.
- Returns: -
    -
  • Ext.data.Record
    The Record at the passed index. Returns undefined if not found.
  • -
-
-
-
This method is defined by Store.
-
- -
-

getById

- public function getById(String id) -
- Get the Record with the specified id. -
- Parameters: -
  • id : String
    The id of the Record to find.
- Returns: -
    -
  • Ext.data.Record
    The Record with the passed id. Returns undefined if not found.
  • -
-
-
-
This method is defined by Store.
-
- -
-

getCount

- public function getCount() -
- Gets the number of cached records. -

-If using paging, this may not be the total size of the dataset. If the data object -used by the Reader contains the dataset size, then the getTotalCount() function returns -the data set size -

- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

getModifiedRecords

- public function getModifiedRecords() -
- Get all records modified since the last load, or since the last commit. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.data.Record[]
    An array of Records containing outstanding modifications.
  • -
-
-
-
This method is defined by Store.
-
- -
-

getRange

- public function getRange([Number startIndex], [Number endIndex]) -
- Returns a range of Records between specified indices. -
- Parameters: -
  • startIndex : Number
    (optional) The starting index (defaults to 0)
  • endIndex : Number
    (optional) The ending index (defaults to the last Record in the Store)
- Returns: -
    -
  • Ext.data.Record[]
    An array of Records
  • -
-
-
-
This method is defined by Store.
-
- -
-

getSortState

- public function getSortState() -
- Returns the sort state of the Store as an object with two properties: -

- field {String} The name of the field by which the Records are sorted
- direction {String} The sort order, "ASC" or "DESC"
-
-
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

getTotalCount

- public function getTotalCount() -
- Gets the total number of records in the dataset. -

-If using paging, for this to be accurate, the data object used by the Reader must contain -the dataset size -

- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

indexOf

- public function indexOf(Ext.data.Record[] records) -
- Get the index within the cache of the passed Record. -
- Parameters: -
  • records : Ext.data.Record[]
    An Array of Ext.data.Record objects to add to the cache.
- Returns: -
    -
  • Number
    The index of the passed Record. Returns -1 if not found.
  • -
-
-
-
This method is defined by Store.
-
- -
-

indexOfId

- public function indexOfId(String id) -
- Get the index within the cache of the Record with the passed id. -
- Parameters: -
  • id : String
    The id of the Record to find.
- Returns: -
    -
  • Number
    The index of the Record. Returns -1 if not found.
  • -
-
-
-
This method is defined by Store.
-
- -
-

insert

- public function insert(Number index, Ext.data.Record[] records) -
- Inserts Records to the Store at the given index and fires the add event. -
- Parameters: -
  • index : Number
    The start index at which to insert the passed Records.
  • records : Ext.data.Record[]
    An Array of Ext.data.Record objects to add to the cache.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

load

- public function load(Object options) -
- Loads the Record cache from the configured Proxy using the configured Reader. -

-If using remote paging, then the first load call must specify the start -and limit properties in the options.params property to establish the initial -position within the dataset, and the number of Records to cache on each read from the Proxy. -

-It is important to note that for remote data sources, loading is asynchronous, -and this call will return before the new data has been loaded. Perform any post-processing -in a callback function, or in a "load" event handler. -

-

- Parameters: -
  • options : Object
    An object containing properties which control loading options:
     params {Object} An object containing properties to pass as HTTP parameters to a remote data source. callback {Function} A function to be called after the Records have been loaded. The callback is passed the following arguments: r : Ext.data.Record[] options: Options object from the load call success: Boolean success indicator scope {Object} Scope with which to call the callback (defaults to the Store object) append {Boolean} indicator to append loaded records rather than replace the current cache. 
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

loadData

- public function loadData(Object data, [Boolean append]) -
- Loads data from a passed data block. A Reader which understands the format of the data -must have been configured in the constructor. -
- Parameters: -
  • data : Object
    The data block from which to read the Records. The format of the data expected is dependent on the type of Reader that is configured and should correspond to that Reader's readRecords parameter.
  • append : Boolean
    (Optional) True to append the new Records rather than replace the existing cache.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

rejectChanges

- public function rejectChanges() -
- Cancel outstanding changes on all changed records. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

reload

- public function reload([Object options]) -
- Reloads the Record cache from the configured Proxy using the configured Reader and -the options from the last load operation performed. -
- Parameters: -
  • options : Object
    (optional) An object containing properties which may override the options used in the last load operation. See load for details (defaults to null, in which case the most recently used options are reused).
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

remove

- public function remove(Ext.data.Record record) -
- Remove a Record from the Store and fires the remove event. -
- Parameters: -
  • record : Ext.data.Record
    Th Ext.data.Record object to remove from the cache.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

removeAll

- public function removeAll() -
- Remove all Records from the Store and fires the clear event. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

setDefaultSort

- public function setDefaultSort(String fieldName, [String dir]) -
- Sets the default sort column and order to be used by the next load operation. -
- Parameters: -
  • fieldName : String
    The name of the field to sort by.
  • dir : String
    (optional) The sort order, "ASC" or "DESC" (defaults to "ASC")
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

sort

- public function sort(String fieldName, [String dir]) -
- Sort the Records. -If remote sorting is used, the sort is performed on the server, and the cache is -reloaded. If local sorting is used, the cache is sorted internally. -
- Parameters: -
  • fieldName : String
    The name of the field to sort by.
  • dir : String
    (optional) The sort order, "ASC" or "DESC" (defaults to "ASC")
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

add

- public event add -
- Fires when Records have been added to the Store -
- Subscribers will be called with the following parameters: -
  • this : Store
  • records : Ext.data.Record[]
    The array of Records added
  • index : Number
    The index at which the record(s) were added
-
-
-
This event is defined by Store.
-
- -
-

beforeload

- public event beforeload -
- Fires before a request is made for a new data object. If the beforeload handler returns false -the load action will be canceled. -
- Subscribers will be called with the following parameters: -
  • this : Store
  • options : Object
    The loading options that were specified (see load for details)
-
-
-
This event is defined by Store.
-
- -
-

clear

- public event clear -
- Fires when the data cache has been cleared. -
- Subscribers will be called with the following parameters: -
  • this : Store
-
-
-
This event is defined by Store.
-
- -
-

datachanged

- public event datachanged -
- Fires when the data cache has changed, and a widget which is using this Store -as a Record cache should refresh its view. -
- Subscribers will be called with the following parameters: -
  • this : Store
-
-
-
This event is defined by Store.
-
- -
-

load

- public event load -
- Fires after a new set of Records has been loaded. -
- Subscribers will be called with the following parameters: -
  • this : Store
  • records : Ext.data.Record[]
    The Records that were loaded
  • options : Object
    The loading options that were specified (see load for details)
-
-
-
This event is defined by Store.
-
- -
-

loadexception

- public event loadexception -
- Fires if an exception occurs in the Proxy during loading. -Called with the signature of the Proxy's "loadexception" event. -
- Subscribers will be called with the following parameters: -
  • None.
-
-
-
This event is defined by Store.
-
- -
-

remove

- public event remove -
- Fires when Records have been removed from the Store -
- Subscribers will be called with the following parameters: -
  • this : Store
  • record : Ext.data.Record
    The Record that was removed
  • index : Number
    The index at which the record was removed
-
-
-
This event is defined by Store.
-
- -
-

update

- public event update -
- Fires when Records have been updated -
- Subscribers will be called with the following parameters: -
  • this : Store
  • record : Ext.data.Record
    The Record that was updated
  • operation : String
    The update operation being performed. Value may be one of:
     Ext.data.Record.EDIT Ext.data.Record.REJECT Ext.data.Record.COMMIT 
-
-
-
This event is defined by Store.
-
-
-

Config Details

-
- -
-

baseParams

- baseParams : Object -
- An object containing properties which are to be sent as parameters on any HTTP request
-
This config option is defined by Store.
-
- -
-

data

- data : Array -
- The multi-dimensional array of data
-
This config option is defined by SimpleStore.
-
- -
-

fields

- fields : Array -
- An standard field array consisting of string name or object literal field definitions
-
This config option is defined by SimpleStore.
-
- -
-

id

- id : Number -
- The index in the array that be used for record ids. Leave blank to auto generate ids.
-
This config option is defined by SimpleStore.
-
- -
-

proxy

- proxy : Ext.data.DataProxy -
- The Proxy object which provides access to a data object.
-
This config option is defined by Store.
-
- -
-

reader

- reader : Ext.data.Reader -
- The Reader object which processes the data object and returns an Array of Ext.data.record objects which are cached keyed by their id property.
-
This config option is defined by Store.
-
- -
-

remoteSort

- remoteSort : boolean -
- True if sorting is to be handled by requesting the Proxy to provide a refreshed version of the data object in sorted order, as opposed to sorting the Record cache in place (defaults to false).
-
This config option is defined by Store.
-
- -
-

sortInfo

- sortInfo : Object -
- A config object in the format: {field: "fieldName", direction: "ASC|DESC"}
-
This config option is defined by Store.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.data.SortTypes.html b/www/extras/extjs/docs/output/Ext.data.SortTypes.html deleted file mode 100644 index 07464d032..000000000 --- a/www/extras/extjs/docs/output/Ext.data.SortTypes.html +++ /dev/null @@ -1,254 +0,0 @@ - - - - Ext.data.SortTypes - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.data.SortTypes

- - - - - -
Package:Ext.data
Class:SortTypes
Extends:Object
Defined In:SortTypes.js
-
-

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 stripTagsRE : RegExpSortTypes
The regular expression used to strip tags
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 asDate(Mixed s) : NumberSortTypes
Date sorting
 asFloat(Mixed s) : FloatSortTypes
Float sorting
 asInt(Mixed s) : NumberSortTypes
Integer sorting
 asText(Mixed s) : StringSortTypes
Strips all HTML tags to sort on text only
 asUCString(Mixed s) : StringSortTypes
Case insensitive string
 asUCText(Mixed s) : StringSortTypes
Strips all HTML tags to sort on text only - Case insensitive
 none(Mixed s) : MixedSortTypes
Default sort that does nothing
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

stripTagsRE

- public RegExp stripTagsRE -
- The regular expression used to strip tags
-
This property is defined by SortTypes.
-
-
- - -

Method Details

-
- -
-

asDate

- public function asDate(Mixed s) -
- Date sorting -
- Parameters: -
  • s : Mixed
    The value being converted
- Returns: -
    -
  • Number
    The comparison value
  • -
-
-
-
This method is defined by SortTypes.
-
- -
-

asFloat

- public function asFloat(Mixed s) -
- Float sorting -
- Parameters: -
  • s : Mixed
    The value being converted
- Returns: -
    -
  • Float
    The comparison value
  • -
-
-
-
This method is defined by SortTypes.
-
- -
-

asInt

- public function asInt(Mixed s) -
- Integer sorting -
- Parameters: -
  • s : Mixed
    The value being converted
- Returns: -
    -
  • Number
    The comparison value
  • -
-
-
-
This method is defined by SortTypes.
-
- -
-

asText

- public function asText(Mixed s) -
- Strips all HTML tags to sort on text only -
- Parameters: -
  • s : Mixed
    The value being converted
- Returns: -
    -
  • String
    The comparison value
  • -
-
-
-
This method is defined by SortTypes.
-
- -
-

asUCString

- public function asUCString(Mixed s) -
- Case insensitive string -
- Parameters: -
  • s : Mixed
    The value being converted
- Returns: -
    -
  • String
    The comparison value
  • -
-
-
-
This method is defined by SortTypes.
-
- -
-

asUCText

- public function asUCText(Mixed s) -
- Strips all HTML tags to sort on text only - Case insensitive -
- Parameters: -
  • s : Mixed
    The value being converted
- Returns: -
    -
  • String
    The comparison value
  • -
-
-
-
This method is defined by SortTypes.
-
- -
-

none

- public function none(Mixed s) -
- Default sort that does nothing -
- Parameters: -
  • s : Mixed
    The value being converted
- Returns: -
    -
  • Mixed
    The comparison value
  • -
-
-
-
This method is defined by SortTypes.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.data.Store.html b/www/extras/extjs/docs/output/Ext.data.Store.html deleted file mode 100644 index 9b730795f..000000000 --- a/www/extras/extjs/docs/output/Ext.data.Store.html +++ /dev/null @@ -1,1200 +0,0 @@ - - - - Ext.data.Store - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.data.Store

- - - - - - -
Package:Ext.data
Class:Store
Extends:Observable
Subclasses:SimpleStore
Defined In:Store.js
-
- The Store class encapsulates a client side cache of Ext.data.Record objects which provide input data -for widgets such as the Ext.grid.Grid, or the Ext.form.ComboBox. -A Store object uses an implementation of Ext.data.DataProxy to access a data object unless you call loadData() directly and pass in your data. The Store object -has no knowledge of the format of the data returned by the Proxy. -The Store object uses its configured implementation of Ext.data.DataReader to create Ext.data.Record -instances from the data object. These records are cached and made available through accessor functions.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Store(Object config)Store
Creates a new Store
 add(Ext.data.Record[] records) : voidStore
Add Records to the Store and fires the add event.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 clearFilter(Boolean suppressEvent) : voidStore
Revert to a view of the Record cache with no filtering applied.
 commitChanges() : voidStore
Commit all Records with outstanding changes. To handle updates for changes, subscribe to the -Store's "update" event, ...
 each(Function fn, [Object scope]) : voidStore
Calls the specified function for each of the Records in the cache.
 filter(String field, String/RegExp value) : BooleanStore
Filter the records by a specified property.
 filterBy(Function fn, [Object scope]) : voidStore
Filter by a function. The specified function will be called with each -record in this data source. If the function ret...
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getAt(String index) : Ext.data.RecordStore
Get the Record at the specified index.
 getById(String id) : Ext.data.RecordStore
Get the Record with the specified id.
 getCount() : voidStore
Gets the number of cached records. - -If using paging, this may not be the total size of the dataset. If the data objec...
 getModifiedRecords() : Ext.data.Record[]Store
Get all records modified since the last load, or since the last commit.
 getRange([Number startIndex], [Number endIndex]) : Ext.data.Record[]Store
Returns a range of Records between specified indices.
 getSortState() : voidStore
Returns the sort state of the Store as an object with two properties: - - field {String} The name of the field by whic...
 getTotalCount() : voidStore
Gets the total number of records in the dataset. - -If using paging, for this to be accurate, the data object used by t...
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 indexOf(Ext.data.Record[] records) : NumberStore
Get the index within the cache of the passed Record.
 indexOfId(String id) : NumberStore
Get the index within the cache of the Record with the passed id.
 insert(Number index, Ext.data.Record[] records) : voidStore
Inserts Records to the Store at the given index and fires the add event.
 load(Object options) : voidStore
Loads the Record cache from the configured Proxy using the configured Reader. - -If using remote paging, then the first...
 loadData(Object data, [Boolean append]) : voidStore
Loads data from a passed data block. A Reader which understands the format of the data -must have been configured in t...
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 rejectChanges() : voidStore
Cancel outstanding changes on all changed records.
 reload([Object options]) : voidStore
Reloads the Record cache from the configured Proxy using the configured Reader and -the options from the last load ope...
 remove(Ext.data.Record record) : voidStore
Remove a Record from the Store and fires the remove event.
 removeAll() : voidStore
Remove all Records from the Store and fires the clear event.
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 setDefaultSort(String fieldName, [String dir]) : voidStore
Sets the default sort column and order to be used by the next load operation.
 sort(String fieldName, [String dir]) : voidStore
Sort the Records. -If remote sorting is used, the sort is performed on the server, and the cache is -reloaded. If local...
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 add : (Store this, Ext.data.Record[] records, Number index)Store
Fires when Records have been added to the Store
 beforeload : (Store this, Object options)Store
Fires before a request is made for a new data object. If the beforeload handler returns false -the load action will b...
 clear : (Store this)Store
Fires when the data cache has been cleared.
 datachanged : (Store this)Store
Fires when the data cache has changed, and a widget which is using this Store -as a Record cache should refresh its view.
 load : (Store this, Ext.data.Record[] records, Object options)Store
Fires after a new set of Records has been loaded.
 loadexception : ()Store
Fires if an exception occurs in the Proxy during loading. -Called with the signature of the Proxy's "loadexception" ev...
 remove : (Store this, Ext.data.Record record, Number index)Store
Fires when Records have been removed from the Store
 update : (Store this, Ext.data.Record record, String operation)Store
Fires when Records have been updated
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 baseParams : ObjectStore
An object containing properties which are to be sent as parameters on any HTTP request
 proxy : Ext.data.DataProxyStore
The Proxy object which provides access to a data object.
 reader : Ext.data.ReaderStore
The Reader object which processes the data object and returns an Array of Ext.data.record objects which are cached ke...
 remoteSort : booleanStore
True if sorting is to be handled by requesting the Proxy to provide a refreshed version of the data object in sorted ...
 sortInfo : ObjectStore
A config object in the format: {field: "fieldName", direction: "ASC|DESC"}
- - -

Constructor Details

-
-
-

Store

- public function Store(Object config) -
- Creates a new Store
- Parameters: -
  • config : Object
    A config object containing the objects needed for the Store to access data, and read the data into Records.
-
-
-
-
- -

Method Details

-
- -
-

add

- public function add(Ext.data.Record[] records) -
- Add Records to the Store and fires the add event. -
- Parameters: -
  • records : Ext.data.Record[]
    An Array of Ext.data.Record objects to add to the cache.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

clearFilter

- public function clearFilter(Boolean suppressEvent) -
- Revert to a view of the Record cache with no filtering applied. -
- Parameters: -
  • suppressEvent : Boolean
    If true the filter is cleared silently without notifying listeners
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

commitChanges

- public function commitChanges() -
- Commit all Records with outstanding changes. To handle updates for changes, subscribe to the -Store's "update" event, and perform updating when the third parameter is Ext.data.Record.COMMIT. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

each

- public function each(Function fn, [Object scope]) -
- Calls the specified function for each of the Records in the cache. -
- Parameters: -
  • fn : Function
    The function to call. The Record is passed as the first parameter. Returning false aborts and exits the iteration.
  • scope : Object
    (optional) The scope in which to call the function (defaults to the Record).
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

filter

- public function filter(String field, String/RegExp value) -
- Filter the records by a specified property. -
- Parameters: -
  • field : String
    A field on your records
  • value : String/RegExp
    Either a string that the field should start with or a RegExp to test against the field
- Returns: -
    -
  • Boolean
    True if the filter matched at least one record, else false
  • -
-
-
-
This method is defined by Store.
-
- -
-

filterBy

- public function filterBy(Function fn, [Object scope]) -
- Filter by a function. The specified function will be called with each -record in this data source. If the function returns true the record is included, -otherwise it is filtered. -
- Parameters: -
  • fn : Function
    The function to be called, it will receive 2 args (record, id)
  • scope : Object
    (optional) The scope of the function (defaults to this)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getAt

- public function getAt(String index) -
- Get the Record at the specified index. -
- Parameters: -
  • index : String
    The index of the Record to find.
- Returns: -
    -
  • Ext.data.Record
    The Record at the passed index. Returns undefined if not found.
  • -
-
-
-
This method is defined by Store.
-
- -
-

getById

- public function getById(String id) -
- Get the Record with the specified id. -
- Parameters: -
  • id : String
    The id of the Record to find.
- Returns: -
    -
  • Ext.data.Record
    The Record with the passed id. Returns undefined if not found.
  • -
-
-
-
This method is defined by Store.
-
- -
-

getCount

- public function getCount() -
- Gets the number of cached records. -

-If using paging, this may not be the total size of the dataset. If the data object -used by the Reader contains the dataset size, then the getTotalCount() function returns -the data set size -

- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

getModifiedRecords

- public function getModifiedRecords() -
- Get all records modified since the last load, or since the last commit. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.data.Record[]
    An array of Records containing outstanding modifications.
  • -
-
-
-
This method is defined by Store.
-
- -
-

getRange

- public function getRange([Number startIndex], [Number endIndex]) -
- Returns a range of Records between specified indices. -
- Parameters: -
  • startIndex : Number
    (optional) The starting index (defaults to 0)
  • endIndex : Number
    (optional) The ending index (defaults to the last Record in the Store)
- Returns: -
    -
  • Ext.data.Record[]
    An array of Records
  • -
-
-
-
This method is defined by Store.
-
- -
-

getSortState

- public function getSortState() -
- Returns the sort state of the Store as an object with two properties: -

- field {String} The name of the field by which the Records are sorted
- direction {String} The sort order, "ASC" or "DESC"
-
-
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

getTotalCount

- public function getTotalCount() -
- Gets the total number of records in the dataset. -

-If using paging, for this to be accurate, the data object used by the Reader must contain -the dataset size -

- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

indexOf

- public function indexOf(Ext.data.Record[] records) -
- Get the index within the cache of the passed Record. -
- Parameters: -
  • records : Ext.data.Record[]
    An Array of Ext.data.Record objects to add to the cache.
- Returns: -
    -
  • Number
    The index of the passed Record. Returns -1 if not found.
  • -
-
-
-
This method is defined by Store.
-
- -
-

indexOfId

- public function indexOfId(String id) -
- Get the index within the cache of the Record with the passed id. -
- Parameters: -
  • id : String
    The id of the Record to find.
- Returns: -
    -
  • Number
    The index of the Record. Returns -1 if not found.
  • -
-
-
-
This method is defined by Store.
-
- -
-

insert

- public function insert(Number index, Ext.data.Record[] records) -
- Inserts Records to the Store at the given index and fires the add event. -
- Parameters: -
  • index : Number
    The start index at which to insert the passed Records.
  • records : Ext.data.Record[]
    An Array of Ext.data.Record objects to add to the cache.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

load

- public function load(Object options) -
- Loads the Record cache from the configured Proxy using the configured Reader. -

-If using remote paging, then the first load call must specify the start -and limit properties in the options.params property to establish the initial -position within the dataset, and the number of Records to cache on each read from the Proxy. -

-It is important to note that for remote data sources, loading is asynchronous, -and this call will return before the new data has been loaded. Perform any post-processing -in a callback function, or in a "load" event handler. -

-

- Parameters: -
  • options : Object
    An object containing properties which control loading options:
     params {Object} An object containing properties to pass as HTTP parameters to a remote data source. callback {Function} A function to be called after the Records have been loaded. The callback is passed the following arguments: r : Ext.data.Record[] options: Options object from the load call success: Boolean success indicator scope {Object} Scope with which to call the callback (defaults to the Store object) append {Boolean} indicator to append loaded records rather than replace the current cache. 
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

loadData

- public function loadData(Object data, [Boolean append]) -
- Loads data from a passed data block. A Reader which understands the format of the data -must have been configured in the constructor. -
- Parameters: -
  • data : Object
    The data block from which to read the Records. The format of the data expected is dependent on the type of Reader that is configured and should correspond to that Reader's readRecords parameter.
  • append : Boolean
    (Optional) True to append the new Records rather than replace the existing cache.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

rejectChanges

- public function rejectChanges() -
- Cancel outstanding changes on all changed records. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

reload

- public function reload([Object options]) -
- Reloads the Record cache from the configured Proxy using the configured Reader and -the options from the last load operation performed. -
- Parameters: -
  • options : Object
    (optional) An object containing properties which may override the options used in the last load operation. See load for details (defaults to null, in which case the most recently used options are reused).
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

remove

- public function remove(Ext.data.Record record) -
- Remove a Record from the Store and fires the remove event. -
- Parameters: -
  • record : Ext.data.Record
    Th Ext.data.Record object to remove from the cache.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

removeAll

- public function removeAll() -
- Remove all Records from the Store and fires the clear event. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

setDefaultSort

- public function setDefaultSort(String fieldName, [String dir]) -
- Sets the default sort column and order to be used by the next load operation. -
- Parameters: -
  • fieldName : String
    The name of the field to sort by.
  • dir : String
    (optional) The sort order, "ASC" or "DESC" (defaults to "ASC")
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

sort

- public function sort(String fieldName, [String dir]) -
- Sort the Records. -If remote sorting is used, the sort is performed on the server, and the cache is -reloaded. If local sorting is used, the cache is sorted internally. -
- Parameters: -
  • fieldName : String
    The name of the field to sort by.
  • dir : String
    (optional) The sort order, "ASC" or "DESC" (defaults to "ASC")
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Store.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

add

- public event add -
- Fires when Records have been added to the Store -
- Subscribers will be called with the following parameters: -
  • this : Store
  • records : Ext.data.Record[]
    The array of Records added
  • index : Number
    The index at which the record(s) were added
-
-
-
This event is defined by Store.
-
- -
-

beforeload

- public event beforeload -
- Fires before a request is made for a new data object. If the beforeload handler returns false -the load action will be canceled. -
- Subscribers will be called with the following parameters: -
  • this : Store
  • options : Object
    The loading options that were specified (see load for details)
-
-
-
This event is defined by Store.
-
- -
-

clear

- public event clear -
- Fires when the data cache has been cleared. -
- Subscribers will be called with the following parameters: -
  • this : Store
-
-
-
This event is defined by Store.
-
- -
-

datachanged

- public event datachanged -
- Fires when the data cache has changed, and a widget which is using this Store -as a Record cache should refresh its view. -
- Subscribers will be called with the following parameters: -
  • this : Store
-
-
-
This event is defined by Store.
-
- -
-

load

- public event load -
- Fires after a new set of Records has been loaded. -
- Subscribers will be called with the following parameters: -
  • this : Store
  • records : Ext.data.Record[]
    The Records that were loaded
  • options : Object
    The loading options that were specified (see load for details)
-
-
-
This event is defined by Store.
-
- -
-

loadexception

- public event loadexception -
- Fires if an exception occurs in the Proxy during loading. -Called with the signature of the Proxy's "loadexception" event. -
- Subscribers will be called with the following parameters: -
  • None.
-
-
-
This event is defined by Store.
-
- -
-

remove

- public event remove -
- Fires when Records have been removed from the Store -
- Subscribers will be called with the following parameters: -
  • this : Store
  • record : Ext.data.Record
    The Record that was removed
  • index : Number
    The index at which the record was removed
-
-
-
This event is defined by Store.
-
- -
-

update

- public event update -
- Fires when Records have been updated -
- Subscribers will be called with the following parameters: -
  • this : Store
  • record : Ext.data.Record
    The Record that was updated
  • operation : String
    The update operation being performed. Value may be one of:
     Ext.data.Record.EDIT Ext.data.Record.REJECT Ext.data.Record.COMMIT 
-
-
-
This event is defined by Store.
-
-
-

Config Details

-
- -
-

baseParams

- baseParams : Object -
- An object containing properties which are to be sent as parameters on any HTTP request
-
This config option is defined by Store.
-
- -
-

proxy

- proxy : Ext.data.DataProxy -
- The Proxy object which provides access to a data object.
-
This config option is defined by Store.
-
- -
-

reader

- reader : Ext.data.Reader -
- The Reader object which processes the data object and returns an Array of Ext.data.record objects which are cached keyed by their id property.
-
This config option is defined by Store.
-
- -
-

remoteSort

- remoteSort : boolean -
- True if sorting is to be handled by requesting the Proxy to provide a refreshed version of the data object in sorted order, as opposed to sorting the Record cache in place (defaults to false).
-
This config option is defined by Store.
-
- -
-

sortInfo

- sortInfo : Object -
- A config object in the format: {field: "fieldName", direction: "ASC|DESC"}
-
This config option is defined by Store.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.data.Tree.html b/www/extras/extjs/docs/output/Ext.data.Tree.html deleted file mode 100644 index 5c4121083..000000000 --- a/www/extras/extjs/docs/output/Ext.data.Tree.html +++ /dev/null @@ -1,557 +0,0 @@ - - - - Ext.data.Tree - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.data.Tree

- - - - - - -
Package:Ext.data
Class:Tree
Extends:Observable
Subclasses:TreePanel
Defined In:Tree.js
-
- Represents a tree data structure and bubbles all the events for its nodes. The nodes -in the tree have most standard DOM functionality.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 root : NodeTree
The root node for this tree
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Tree([Node root])Tree
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getNodeById(String id) : NodeTree
Gets a node in this tree by its id
 getRootNode() : NodeTree
Returns this root node for this tree
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 setRootNode(Node node) : NodeTree
Sets the root node for this tree
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 append : (Tree tree, Node parent, Node node, Number index)Tree
Fires when a new child node is appended to a node in this tree.
 beforeappend : (Tree tree, Node parent, Node node)Tree
Fires before a new child is appended to a node in this tree, return false to cancel the append.
 beforeinsert : (Tree tree, Node parent, Node node, Node refNode)Tree
Fires before a new child is inserted in a node in this tree, return false to cancel the insert.
 beforemove : (Tree tree, Node node, Node oldParent, Node newParent, Number index)Tree
Fires before a node is moved to a new location in the tree. Return false to cancel the move.
 beforeremove : (Tree tree, Node parent, Node node)Tree
Fires before a child is removed from a node in this tree, return false to cancel the remove.
 insert : (Tree tree, Node parent, Node node, Node refNode)Tree
Fires when a new child node is inserted in a node in this tree.
 move : (Tree tree, Node node, Node oldParent, Node newParent, Number index)Tree
Fires when a node is moved to a new location in the tree
 remove : (Tree tree, Node parent, Node node)Tree
Fires when a child node is removed from a node in this tree.
-

Property Details

-
- -
-

root

- public Node root -
- The root node for this tree
-
This property is defined by Tree.
-
-
- - -

Constructor Details

-
-
-

Tree

- public function Tree([Node root]) -
-
- Parameters: -
  • root : Node
    (optional) The root node
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getNodeById

- public function getNodeById(String id) -
- Gets a node in this tree by its id -
- Parameters: -
  • id : String
- Returns: -
    -
  • Node
  • -
-
-
-
This method is defined by Tree.
-
- -
-

getRootNode

- public function getRootNode() -
- Returns this root node for this tree -
- Parameters: -
  • None.
- Returns: -
    -
  • Node
  • -
-
-
-
This method is defined by Tree.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

setRootNode

- public function setRootNode(Node node) -
- Sets the root node for this tree -
- Parameters: -
  • node : Node
- Returns: -
    -
  • Node
  • -
-
-
-
This method is defined by Tree.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

append

- public event append -
- Fires when a new child node is appended to a node in this tree. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • parent : Node
    The parent node
  • node : Node
    The newly appended node
  • index : Number
    The index of the newly appended node
-
-
-
This event is defined by Tree.
-
- -
-

beforeappend

- public event beforeappend -
- Fires before a new child is appended to a node in this tree, return false to cancel the append. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • parent : Node
    The parent node
  • node : Node
    The child node to be appended
-
-
-
This event is defined by Tree.
-
- -
-

beforeinsert

- public event beforeinsert -
- Fires before a new child is inserted in a node in this tree, return false to cancel the insert. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • parent : Node
    The parent node
  • node : Node
    The child node to be inserted
  • refNode : Node
    The child node the node is being inserted before
-
-
-
This event is defined by Tree.
-
- -
-

beforemove

- public event beforemove -
- Fires before a node is moved to a new location in the tree. Return false to cancel the move. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • node : Node
    The node being moved
  • oldParent : Node
    The parent of the node
  • newParent : Node
    The new parent the node is moving to
  • index : Number
    The index it is being moved to
-
-
-
This event is defined by Tree.
-
- -
-

beforeremove

- public event beforeremove -
- Fires before a child is removed from a node in this tree, return false to cancel the remove. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • parent : Node
    The parent node
  • node : Node
    The child node to be removed
-
-
-
This event is defined by Tree.
-
- -
-

insert

- public event insert -
- Fires when a new child node is inserted in a node in this tree. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • parent : Node
    The parent node
  • node : Node
    The child node inserted
  • refNode : Node
    The child node the node was inserted before
-
-
-
This event is defined by Tree.
-
- -
-

move

- public event move -
- Fires when a node is moved to a new location in the tree -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • node : Node
    The node moved
  • oldParent : Node
    The old parent of this node
  • newParent : Node
    The new parent of this node
  • index : Number
    The index it was moved to
-
-
-
This event is defined by Tree.
-
- -
-

remove

- public event remove -
- Fires when a child node is removed from a node in this tree. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • parent : Node
    The parent node
  • node : Node
    The child node removed
-
-
-
This event is defined by Tree.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.data.XmlReader.html b/www/extras/extjs/docs/output/Ext.data.XmlReader.html deleted file mode 100644 index 6f59c288e..000000000 --- a/www/extras/extjs/docs/output/Ext.data.XmlReader.html +++ /dev/null @@ -1,251 +0,0 @@ - - - - Ext.data.XmlReader - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.data.XmlReader

- - - - - -
Package:Ext.data
Class:XmlReader
Extends:Ext.data.DataReader
Defined In:XmlReader.js
-
- Data reader class to create an Array of Ext.data.Record objects from an XML document -based on mappings in a provided Ext.data.Record constructor. -

-The code below lists all configuration options. -

var myReader = new Ext.data.XmlReader({
-   record: "row",           // The repeated element which contains record information
-   totalRecords: "results", // The element which contains the number of returned records (optional)
-   id: "id"                 // The element within the record that provides an ID for the record (optional)
-}, myRecordDefinition);
-

-This would consume an XML file like this: -


-<?xml?>
-<dataset>
- <results>2</results>
- <row>
-   <id>1</id>
-   <name>Bill</name>
- </row>
- <row>
-   <id>2</id>
-   <name>Ben</name>
- </row>
-</dataset>
-
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 xmlData : XMLDocumentXmlReader
After any data loads/reads, the raw XML Document is available for further custom processing.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 XmlReader(Object meta, Mixed recordType)XmlReader
Create a new XmlReader
 read(Object response) : ObjectXmlReader
This method is only used by a DataProxy which has retrieved data from a remote server.
 readRecords(Object doc) : ObjectXmlReader
Create a data block containing Ext.data.Records from an XML document.
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 id : StringXmlReader
The DomQuery path relative from the record element to the element that contains a record identifier value.
 record : StringXmlReader
The DomQuery path to the repeated element which contains record information.
 success : StringXmlReader
The DomQuery path to the success attribute used by forms.
 totalRecords : StringXmlReader
The DomQuery path from which to retrieve the total number of records in the dataset. This is only needed if the whole...
-

Property Details

-
- -
-

xmlData

- public XMLDocument xmlData -
- After any data loads/reads, the raw XML Document is available for further custom processing.
-
This property is defined by XmlReader.
-
-
- - -

Constructor Details

-
-
-

XmlReader

- public function XmlReader(Object meta, Mixed recordType) -
- Create a new XmlReader
- Parameters: -
  • meta : Object
    Metadata configuration options
  • recordType : Mixed
    The definition of the data record type to produce. This can be either a valid Record subclass created with Ext.data.Record.create, or an array of objects with which to call Ext.data.Record.create. See the Ext.data.Record class for more details.
-
-
-
-
- -

Method Details

-
- -
-

read

- public function read(Object response) -
- This method is only used by a DataProxy which has retrieved data from a remote server. -
- Parameters: -
  • response : Object
    The XHR object which contains the parsed XML document. The response is expected to contain a method called 'responseXML' that returns an XML document object.
- Returns: -
    -
  • Object
    records A data block which is used by an {@link Ext.data.Store} as a cache of Ext.data.Records.
  • -
-
-
-
This method is defined by XmlReader.
-
- -
-

readRecords

- public function readRecords(Object doc) -
- Create a data block containing Ext.data.Records from an XML document. -
- Parameters: -
  • doc : Object
    A parsed XML document.
- Returns: -
    -
  • Object
    records A data block which is used by an {@link Ext.data.Store} as a cache of Ext.data.Records.
  • -
-
-
-
This method is defined by XmlReader.
-
-
- -

Config Details

-
- -
-

id

- id : String -
- The DomQuery path relative from the record element to the element that contains a record identifier value.
-
This config option is defined by XmlReader.
-
- -
-

record

- record : String -
- The DomQuery path to the repeated element which contains record information.
-
This config option is defined by XmlReader.
-
- -
-

success

- success : String -
- The DomQuery path to the success attribute used by forms.
-
This config option is defined by XmlReader.
-
- -
-

totalRecords

- totalRecords : String -
- The DomQuery path from which to retrieve the total number of records in the dataset. This is only needed if the whole dataset is not passed in one go, but is being paged from the remote server.
-
This config option is defined by XmlReader.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.dd.DD.html b/www/extras/extjs/docs/output/Ext.dd.DD.html deleted file mode 100644 index c2e8980cd..000000000 --- a/www/extras/extjs/docs/output/Ext.dd.DD.html +++ /dev/null @@ -1,1580 +0,0 @@ - - - - Ext.dd.DD - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.dd.DD

- - - - - - -
Package:Ext.dd
Class:DD
Extends:DragDrop
Subclasses:DDProxy
Defined In:DDCore.js
-
- A DragDrop implementation where the linked element follows the -mouse cursor during a drag.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 available : booleanDragDrop
The availabe property is false until the linked dom element is accessible.
 config : objectDragDrop
Configuration attributes passed into the constructor
 groups : string:DragDrop
The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interact...
 hasOuterHandles : booleanDragDrop
By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in...
 id : StringDragDrop
The id of the element associated with this object. This is what we -refer to as the "linked element" because the size...
 invalidHandleClasses : string[]DragDrop
An indexted array of css class names for elements that will be ignored -if clicked.
 invalidHandleIds : string:DragDrop
An associative array of ids for elements that will be ignored if clicked
 invalidHandleTypes : string:DragDrop
An associative array of HTML tags that will be ignored if clicked.
 maintainOffset : booleanDragDrop
Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its par...
 primaryButtonOnly : booleanDragDrop
By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed m...
 scroll : booleanDD
When set to true, the utility automatically tries to scroll the browser -window wehn a drag and drop element is dragge...
 xTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is ge...
 yTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is gene...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 DD(String id, String sGroup, object config)DD
 addInvalidHandleClass(string cssClass) : voidDragDrop
Lets you specify a css class of elements that will not initiate a drag
 addInvalidHandleId(string id) : voidDragDrop
Lets you to specify an element id for a child of a drag handle -that should not initiate a drag
 addInvalidHandleType(string tagName) : voidDragDrop
Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate...
 addToGroup(sGroup {string}) : voidDragDrop
Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belon...
 alignElWithMouse(HTMLElement el, int iPageX, int iPageY) : voidDD
Sets the element to the location of the mousedown or click event, -maintaining the cursor location relative to the loc...
 applyConfig() : voidDragDrop
Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level ...
 autoOffset(int iPageX, int iPageY) : voidDD
Sets the pointer offset to the distance between the linked element's top -left corner and the location the element was...
 cachePosition(iPageX the, iPageY the) : voidDD
Saves the most recent position so that we can reset the constraints and -tick marks on-demand. We need to know this s...
 clearConstraints() : voidDragDrop
Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constrain...
 clearTicks() : voidDragDrop
Clears any tick interval defined for this instance
 endDrag(Event e) : voidDragDrop
Fired when we are done dragging the object
 getDragEl() : HTMLElementDragDrop
Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be as...
 getEl() : HTMLElementDragDrop
Returns a reference to the linked element
 init(id the, String sGroup, object config) : voidDragDrop
Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass
 initTarget(id the, String sGroup, object config) : voidDragDrop
Initializes Targeting functionality only... the object does not -get a mousedown handler.
 isLocked() : booleanDragDrop
Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on th...
 isTarget() : voidDragDrop
By default, all insances can be a drop target. This can be disabled by -setting isTarget to false.
 isValidHandleChild(HTMLElement node) : booleanDragDrop
Checks the tag exclusion list to see if this click should be ignored
 lock() : voidDragDrop
Lock this instance
 onAvailable() : voidDragDrop
Override the onAvailable method to do what is needed after the initial -position was determined.
 onDrag(Event e) : voidDragDrop
Abstract method called during the onMouseMove event while dragging an -object.
 onDragDrop(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this item is dropped on another DragDrop -obj
 onDragEnter(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element fist begins hovering over -another DragDrop obj
 onDragOut(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when we are no longer hovering over an element
 onDragOver(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element is hovering over another -DragDrop obj
 onInvalidDrop(Event e) : voidDragDrop
Abstract method called when this item is dropped on an area with no -drop target
 onMouseDown(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mousedown
 onMouseUp(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mouseup
 padding() : voidDragDrop
The padding configured for this drag and drop object for calculating -the drop zone intersection with this object.
 removeFromGroup(string sGroup) : voidDragDrop
Remove's this instance from the supplied interaction group
 removeInvalidHandleClass(string cssClass) : voidDragDrop
Unsets an invalid css class
 removeInvalidHandleId(string id) : voidDragDrop
Unsets an invalid handle id
 removeInvalidHandleType(string tagName) : voidDragDrop
Unsets an excluded tag name set by addInvalidHandleType
 resetConstraints(boolean maintainOffset) : voidDragDrop
resetConstraints must be called if you manually reposition a dd element.
 setDelta(int iDeltaX, int iDeltaY) : voidDD
Sets the pointer offset. You can call this directly to force the -offset to be in a particular location (e.g., pass i...
 setDragElId(id {string}) : voidDragDrop
Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag
 setDragElPos(int iPageX, int iPageY) : voidDD
Sets the drag element to the location of the mousedown or click event, -maintaining the cursor location relative to th...
 setHandleElId(id {string}) : voidDragDrop
Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example o...
 setInitialPosition(int diffX, int diffY) : voidDragDrop
Stores the initial placement of the linked element.
 setOuterHandleElId(id the) : voidDragDrop
Allows you to set an element outside of the linked element as a drag -handle
 setPadding(int iTop, int iRight, int iBot, int iLeft) : voidDragDrop
Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targe...
 setXConstraint(int iLeft, int iRight, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of th...
 setYConstraint(int iUp, int iDown, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element...
 startDrag(int X, int Y) : voidDragDrop
Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met.
 toString() : stringDragDrop
toString method
 unlock() : voidDragDrop
Unlock this instace
 unreg() : voidDragDrop
Remove all drag and drop hooks for this element
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

available

- public boolean available -
- The availabe property is false until the linked dom element is accessible.
-
This property is defined by DragDrop.
-
- -
-

config

- public object config -
- Configuration attributes passed into the constructor
-
This property is defined by DragDrop.
-
- -
-

groups

- public string: groups -
- The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interacting with other -DragDrop object in the same group. This lets us define multiple -groups using a single DragDrop subclass if we want.
-
This property is defined by DragDrop.
-
- -
-

hasOuterHandles

- public boolean hasOuterHandles -
- By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in part to work around a -bug in some browsers that mis-report the mousedown if the previous -mouseup happened outside of the window. This property is set to true -if outer handles are defined.
-
This property is defined by DragDrop.
-
- -
-

id

- public String id -
- The id of the element associated with this object. This is what we -refer to as the "linked element" because the size and position of -this element is used to determine when the drag and drop objects have -interacted.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleClasses

- public string[] invalidHandleClasses -
- An indexted array of css class names for elements that will be ignored -if clicked.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleIds

- public string: invalidHandleIds -
- An associative array of ids for elements that will be ignored if clicked
-
This property is defined by DragDrop.
-
- -
-

invalidHandleTypes

- public string: invalidHandleTypes -
- An associative array of HTML tags that will be ignored if clicked.
-
This property is defined by DragDrop.
-
- -
-

maintainOffset

- public boolean maintainOffset -
- Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its parent to stay the same -when the page changes
-
This property is defined by DragDrop.
-
- -
-

primaryButtonOnly

- public boolean primaryButtonOnly -
- By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed mouse). Set to true to -allow drag and drop to start with any mouse click that is propogated -by the browser
-
This property is defined by DragDrop.
-
- -
-

scroll

- public boolean scroll -
- When set to true, the utility automatically tries to scroll the browser -window wehn a drag and drop element is dragged near the viewport boundary. -Defaults to true.
-
This property is defined by DD.
-
- -
-

xTicks

- public int[] xTicks -
- Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
- -
-

yTicks

- public int[] yTicks -
- Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
-
- - -

Constructor Details

-
-
-

DD

- public function DD(String id, String sGroup, object config) -
-
- Parameters: -
  • id : String
    the id of the linked element
  • sGroup : String
    the group of related DragDrop items
  • config : object
    an object containing configurable attributes Valid properties for DD: scroll
-
-
-
-
- -

Method Details

-
- -
-

addInvalidHandleClass

- public function addInvalidHandleClass(string cssClass) -
- Lets you specify a css class of elements that will not initiate a drag -
- Parameters: -
  • cssClass : string
    the class of the elements you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleId

- public function addInvalidHandleId(string id) -
- Lets you to specify an element id for a child of a drag handle -that should not initiate a drag -
- Parameters: -
  • id : string
    the element id of the element you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleType

- public function addInvalidHandleType(string tagName) -
- Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate embedding links within a -drag handle that do something other than start the drag. -
- Parameters: -
  • tagName : string
    the type of element to exclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addToGroup

- public function addToGroup(sGroup {string}) -
- Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belong to as many -groups as needed. -
- Parameters: -
  • {string} : sGroup
    the name of the group
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

alignElWithMouse

- public function alignElWithMouse(HTMLElement el, int iPageX, int iPageY) -
- Sets the element to the location of the mousedown or click event, -maintaining the cursor location relative to the location on the element -that was clicked. Override this if you want to place the element in a -location other than where the cursor is. -
- Parameters: -
  • el : HTMLElement
    the element to move
  • iPageX : int
    the X coordinate of the mousedown or drag event
  • iPageY : int
    the Y coordinate of the mousedown or drag event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

applyConfig

- public function applyConfig() -
- Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level through the inheritance chain. So -a DDProxy implentation will execute apply config on DDProxy, DD, and -DragDrop in order to get all of the parameters that are available in -each object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

autoOffset

- public function autoOffset(int iPageX, int iPageY) -
- Sets the pointer offset to the distance between the linked element's top -left corner and the location the element was clicked -
- Parameters: -
  • iPageX : int
    the X coordinate of the click
  • iPageY : int
    the Y coordinate of the click
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

cachePosition

- public function cachePosition(iPageX the, iPageY the) -
- Saves the most recent position so that we can reset the constraints and -tick marks on-demand. We need to know this so that we can calculate the -number of pixels the element is offset from its original position. -
- Parameters: -
  • the : iPageX
    current x position (optional, this just makes it so we don't have to look it up again)
  • the : iPageY
    current y position (optional, this just makes it so we don't have to look it up again)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

clearConstraints

- public function clearConstraints() -
- Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constraint at this time. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

clearTicks

- public function clearTicks() -
- Clears any tick interval defined for this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

endDrag

- public function endDrag(Event e) -
- Fired when we are done dragging the object -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getDragEl

- public function getDragEl() -
- Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be assigned to another -element. An example of this can be found in Ext.dd.DDProxy -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getEl

- public function getEl() -
- Returns a reference to the linked element -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

init

- public function init(id the, String sGroup, object config) -
- Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

initTarget

- public function initTarget(id the, String sGroup, object config) -
- Initializes Targeting functionality only... the object does not -get a mousedown handler. -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isLocked

- public function isLocked() -
- Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on the page.) -
- Parameters: -
  • None.
- Returns: -
    -
  • boolean
    true if this obj or all drag/drop is locked, else false
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isTarget

- public function isTarget() -
- By default, all insances can be a drop target. This can be disabled by -setting isTarget to false. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isValidHandleChild

- public function isValidHandleChild(HTMLElement node) -
- Checks the tag exclusion list to see if this click should be ignored -
- Parameters: -
  • node : HTMLElement
    the HTMLElement to evaluate
- Returns: -
    -
  • boolean
    true if this is a valid tag type, false if not
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

lock

- public function lock() -
- Lock this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onAvailable

- public function onAvailable() -
- Override the onAvailable method to do what is needed after the initial -position was determined. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDrag

- public function onDrag(Event e) -
- Abstract method called during the onMouseMove event while dragging an -object. -
- Parameters: -
  • e : Event
    the mousemove event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragDrop

- public function onDragDrop(Event e, String|DragDrop[] id) -
- Abstract method called when this item is dropped on another DragDrop -obj -
- Parameters: -
  • e : Event
    the mouseup event
  • id : String|DragDrop[]
    In POINT mode, the element id this was dropped on. In INTERSECT mode, an array of dd items this was dropped on.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragEnter

- public function onDragEnter(Event e, String|DragDrop[] id) -
- Abstract method called when this element fist begins hovering over -another DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of one or more dragdrop items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOut

- public function onDragOut(Event e, String|DragDrop[] id) -
- Abstract method called when we are no longer hovering over an element -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this was hovering over. In INTERSECT mode, an array of dd items that the mouse is no longer over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOver

- public function onDragOver(Event e, String|DragDrop[] id) -
- Abstract method called when this element is hovering over another -DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of dd items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onInvalidDrop

- public function onInvalidDrop(Event e) -
- Abstract method called when this item is dropped on an area with no -drop target -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseDown

- public function onMouseDown(Event e) -
- Event handler that fires when a drag/drop obj gets a mousedown -
- Parameters: -
  • e : Event
    the mousedown event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseUp

- public function onMouseUp(Event e) -
- Event handler that fires when a drag/drop obj gets a mouseup -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

padding

- public function padding() -
- The padding configured for this drag and drop object for calculating -the drop zone intersection with this object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeFromGroup

- public function removeFromGroup(string sGroup) -
- Remove's this instance from the supplied interaction group -
- Parameters: -
  • sGroup : string
    The group to drop
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleClass

- public function removeInvalidHandleClass(string cssClass) -
- Unsets an invalid css class -
- Parameters: -
  • cssClass : string
    the class of the element(s) you wish to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleId

- public function removeInvalidHandleId(string id) -
- Unsets an invalid handle id -
- Parameters: -
  • id : string
    the id of the element to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleType

- public function removeInvalidHandleType(string tagName) -
- Unsets an excluded tag name set by addInvalidHandleType -
- Parameters: -
  • tagName : string
    the type of element to unexclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

resetConstraints

- public function resetConstraints(boolean maintainOffset) -
- resetConstraints must be called if you manually reposition a dd element. -
- Parameters: -
  • maintainOffset : boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setDelta

- public function setDelta(int iDeltaX, int iDeltaY) -
- Sets the pointer offset. You can call this directly to force the -offset to be in a particular location (e.g., pass in 0,0 to set it -to the center of the object) -
- Parameters: -
  • iDeltaX : int
    the distance from the left
  • iDeltaY : int
    the distance from the top
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

setDragElId

- public function setDragElId(id {string}) -
- Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setDragElPos

- public function setDragElPos(int iPageX, int iPageY) -
- Sets the drag element to the location of the mousedown or click event, -maintaining the cursor location relative to the location on the element -that was clicked. Override this if you want to place the element in a -location other than where the cursor is. -
- Parameters: -
  • iPageX : int
    the X coordinate of the mousedown or drag event
  • iPageY : int
    the Y coordinate of the mousedown or drag event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

setHandleElId

- public function setHandleElId(id {string}) -
- Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example of this would be if -you have a content div with text and links. Clicking anywhere in the -content area would normally start the drag operation. Use this method -to specify that an element inside of the content div is the element -that starts the drag operation. -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setInitialPosition

- public function setInitialPosition(int diffX, int diffY) -
- Stores the initial placement of the linked element. -
- Parameters: -
  • diffX : int
    the X offset, default 0
  • diffY : int
    the Y offset, default 0
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setOuterHandleElId

- public function setOuterHandleElId(id the) -
- Allows you to set an element outside of the linked element as a drag -handle -
- Parameters: -
  • the : id
    id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setPadding

- public function setPadding(int iTop, int iRight, int iBot, int iLeft) -
- Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targeting calculations. -Supports css-style shorthand; if only one parameter is passed, all sides -will have that padding, and if only two are passed, the top and bottom -will have the first param, the left and right the second. -
- Parameters: -
  • iTop : int
    Top pad
  • iRight : int
    Right pad
  • iBot : int
    Bot pad
  • iLeft : int
    Left pad
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setXConstraint

- public function setXConstraint(int iLeft, int iRight, int iTickSize) -
- By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of the element. Pass in -0,0 for the parameters if you want to lock the drag to the y axis. -
- Parameters: -
  • iLeft : int
    the number of pixels the element can move to the left
  • iRight : int
    the number of pixels the element can move to the right
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setYConstraint

- public function setYConstraint(int iUp, int iDown, int iTickSize) -
- By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element. Pass in 0,0 for the -parameters if you want to lock the drag to the x axis. -
- Parameters: -
  • iUp : int
    the number of pixels the element can move up
  • iDown : int
    the number of pixels the element can move down
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

startDrag

- public function startDrag(int X, int Y) -
- Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met. -
- Parameters: -
  • X : int
    click location
  • Y : int
    click location
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

toString

- public function toString() -
- toString method -
- Parameters: -
  • None.
- Returns: -
    -
  • string
    string representation of the dd obj
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unlock

- public function unlock() -
- Unlock this instace -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unreg

- public function unreg() -
- Remove all drag and drop hooks for this element -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.dd.DDProxy.html b/www/extras/extjs/docs/output/Ext.dd.DDProxy.html deleted file mode 100644 index 701f1fd11..000000000 --- a/www/extras/extjs/docs/output/Ext.dd.DDProxy.html +++ /dev/null @@ -1,1692 +0,0 @@ - - - - Ext.dd.DDProxy - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.dd.DDProxy

- - - - - - -
Package:Ext.dd
Class:DDProxy
Extends:DD
Subclasses:DragSource
Defined In:DDCore.js
-
- A DragDrop implementation that inserts an empty, bordered div into -the document that follows the cursor during drag operations. At the time of -the click, the frame div is resized to the dimensions of the linked html -element, and moved to the exact location of the linked element. -References to the "frame" element refer to the single proxy element that -was created to be dragged in place of all DDProxy elements on the -page.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 DDProxy.dragElId : StringDDProxy
<static> The default drag frame div id
 available : booleanDragDrop
The availabe property is false until the linked dom element is accessible.
 centerFrame : booleanDDProxy
By default the frame is positioned exactly where the drag element is, so -we use the cursor offset provided by Ext.dd....
 config : objectDragDrop
Configuration attributes passed into the constructor
 groups : string:DragDrop
The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interact...
 hasOuterHandles : booleanDragDrop
By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in...
 id : StringDragDrop
The id of the element associated with this object. This is what we -refer to as the "linked element" because the size...
 invalidHandleClasses : string[]DragDrop
An indexted array of css class names for elements that will be ignored -if clicked.
 invalidHandleIds : string:DragDrop
An associative array of ids for elements that will be ignored if clicked
 invalidHandleTypes : string:DragDrop
An associative array of HTML tags that will be ignored if clicked.
 maintainOffset : booleanDragDrop
Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its par...
 primaryButtonOnly : booleanDragDrop
By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed m...
 resizeFrame : booleanDDProxy
By default we resize the drag frame to be the same size as the element -we want to drag (this is to get the frame effe...
 scroll : booleanDD
When set to true, the utility automatically tries to scroll the browser -window wehn a drag and drop element is dragge...
 xTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is ge...
 yTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is gene...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 DDProxy(String id, String sGroup, object config)DDProxy
 addInvalidHandleClass(string cssClass) : voidDragDrop
Lets you specify a css class of elements that will not initiate a drag
 addInvalidHandleId(string id) : voidDragDrop
Lets you to specify an element id for a child of a drag handle -that should not initiate a drag
 addInvalidHandleType(string tagName) : voidDragDrop
Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate...
 addToGroup(sGroup {string}) : voidDragDrop
Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belon...
 alignElWithMouse(HTMLElement el, int iPageX, int iPageY) : voidDD
Sets the element to the location of the mousedown or click event, -maintaining the cursor location relative to the loc...
 applyConfig() : voidDragDrop
Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level ...
 autoOffset(int iPageX, int iPageY) : voidDD
Sets the pointer offset to the distance between the linked element's top -left corner and the location the element was...
 cachePosition(iPageX the, iPageY the) : voidDD
Saves the most recent position so that we can reset the constraints and -tick marks on-demand. We need to know this s...
 clearConstraints() : voidDragDrop
Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constrain...
 clearTicks() : voidDragDrop
Clears any tick interval defined for this instance
 createFrame() : voidDDProxy
Creates the proxy element if it does not yet exist
 endDrag(Event e) : voidDragDrop
Fired when we are done dragging the object
 getDragEl() : HTMLElementDragDrop
Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be as...
 getEl() : HTMLElementDragDrop
Returns a reference to the linked element
 init(id the, String sGroup, object config) : voidDragDrop
Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass
 initFrame() : voidDDProxy
Initialization for the drag frame element. Must be called in the -constructor of all subclasses
 initTarget(id the, String sGroup, object config) : voidDragDrop
Initializes Targeting functionality only... the object does not -get a mousedown handler.
 isLocked() : booleanDragDrop
Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on th...
 isTarget() : voidDragDrop
By default, all insances can be a drop target. This can be disabled by -setting isTarget to false.
 isValidHandleChild(HTMLElement node) : booleanDragDrop
Checks the tag exclusion list to see if this click should be ignored
 lock() : voidDragDrop
Lock this instance
 onAvailable() : voidDragDrop
Override the onAvailable method to do what is needed after the initial -position was determined.
 onDrag(Event e) : voidDragDrop
Abstract method called during the onMouseMove event while dragging an -object.
 onDragDrop(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this item is dropped on another DragDrop -obj
 onDragEnter(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element fist begins hovering over -another DragDrop obj
 onDragOut(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when we are no longer hovering over an element
 onDragOver(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element is hovering over another -DragDrop obj
 onInvalidDrop(Event e) : voidDragDrop
Abstract method called when this item is dropped on an area with no -drop target
 onMouseDown(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mousedown
 onMouseUp(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mouseup
 padding() : voidDragDrop
The padding configured for this drag and drop object for calculating -the drop zone intersection with this object.
 removeFromGroup(string sGroup) : voidDragDrop
Remove's this instance from the supplied interaction group
 removeInvalidHandleClass(string cssClass) : voidDragDrop
Unsets an invalid css class
 removeInvalidHandleId(string id) : voidDragDrop
Unsets an invalid handle id
 removeInvalidHandleType(string tagName) : voidDragDrop
Unsets an excluded tag name set by addInvalidHandleType
 resetConstraints(boolean maintainOffset) : voidDragDrop
resetConstraints must be called if you manually reposition a dd element.
 setDelta(int iDeltaX, int iDeltaY) : voidDD
Sets the pointer offset. You can call this directly to force the -offset to be in a particular location (e.g., pass i...
 setDragElId(id {string}) : voidDragDrop
Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag
 setDragElPos(int iPageX, int iPageY) : voidDD
Sets the drag element to the location of the mousedown or click event, -maintaining the cursor location relative to th...
 setHandleElId(id {string}) : voidDragDrop
Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example o...
 setInitialPosition(int diffX, int diffY) : voidDragDrop
Stores the initial placement of the linked element.
 setOuterHandleElId(id the) : voidDragDrop
Allows you to set an element outside of the linked element as a drag -handle
 setPadding(int iTop, int iRight, int iBot, int iLeft) : voidDragDrop
Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targe...
 setXConstraint(int iLeft, int iRight, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of th...
 setYConstraint(int iUp, int iDown, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element...
 startDrag(int X, int Y) : voidDragDrop
Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met.
 toString() : stringDragDrop
toString method
 unlock() : voidDragDrop
Unlock this instace
 unreg() : voidDragDrop
Remove all drag and drop hooks for this element
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

DDProxy.dragElId

- public String DDProxy.dragElId -
- <static> The default drag frame div id
-
This property is defined by DDProxy.
-
- -
-

available

- public boolean available -
- The availabe property is false until the linked dom element is accessible.
-
This property is defined by DragDrop.
-
- -
-

centerFrame

- public boolean centerFrame -
- By default the frame is positioned exactly where the drag element is, so -we use the cursor offset provided by Ext.dd.DD. Another option that works only if -you do not have constraints on the obj is to have the drag frame centered -around the cursor. Set centerFrame to true for this effect.
-
This property is defined by DDProxy.
-
- -
-

config

- public object config -
- Configuration attributes passed into the constructor
-
This property is defined by DragDrop.
-
- -
-

groups

- public string: groups -
- The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interacting with other -DragDrop object in the same group. This lets us define multiple -groups using a single DragDrop subclass if we want.
-
This property is defined by DragDrop.
-
- -
-

hasOuterHandles

- public boolean hasOuterHandles -
- By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in part to work around a -bug in some browsers that mis-report the mousedown if the previous -mouseup happened outside of the window. This property is set to true -if outer handles are defined.
-
This property is defined by DragDrop.
-
- -
-

id

- public String id -
- The id of the element associated with this object. This is what we -refer to as the "linked element" because the size and position of -this element is used to determine when the drag and drop objects have -interacted.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleClasses

- public string[] invalidHandleClasses -
- An indexted array of css class names for elements that will be ignored -if clicked.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleIds

- public string: invalidHandleIds -
- An associative array of ids for elements that will be ignored if clicked
-
This property is defined by DragDrop.
-
- -
-

invalidHandleTypes

- public string: invalidHandleTypes -
- An associative array of HTML tags that will be ignored if clicked.
-
This property is defined by DragDrop.
-
- -
-

maintainOffset

- public boolean maintainOffset -
- Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its parent to stay the same -when the page changes
-
This property is defined by DragDrop.
-
- -
-

primaryButtonOnly

- public boolean primaryButtonOnly -
- By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed mouse). Set to true to -allow drag and drop to start with any mouse click that is propogated -by the browser
-
This property is defined by DragDrop.
-
- -
-

resizeFrame

- public boolean resizeFrame -
- By default we resize the drag frame to be the same size as the element -we want to drag (this is to get the frame effect). We can turn it off -if we want a different behavior.
-
This property is defined by DDProxy.
-
- -
-

scroll

- public boolean scroll -
- When set to true, the utility automatically tries to scroll the browser -window wehn a drag and drop element is dragged near the viewport boundary. -Defaults to true.
-
This property is defined by DD.
-
- -
-

xTicks

- public int[] xTicks -
- Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
- -
-

yTicks

- public int[] yTicks -
- Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
-
- - -

Constructor Details

-
-
-

DDProxy

- public function DDProxy(String id, String sGroup, object config) -
-
- Parameters: -
  • id : String
    the id of the linked html element
  • sGroup : String
    the group of related DragDrop objects
  • config : object
    an object containing configurable attributes Valid properties for DDProxy in addition to those in DragDrop: resizeFrame, centerFrame, dragElId
-
-
-
-
- -

Method Details

-
- -
-

addInvalidHandleClass

- public function addInvalidHandleClass(string cssClass) -
- Lets you specify a css class of elements that will not initiate a drag -
- Parameters: -
  • cssClass : string
    the class of the elements you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleId

- public function addInvalidHandleId(string id) -
- Lets you to specify an element id for a child of a drag handle -that should not initiate a drag -
- Parameters: -
  • id : string
    the element id of the element you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleType

- public function addInvalidHandleType(string tagName) -
- Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate embedding links within a -drag handle that do something other than start the drag. -
- Parameters: -
  • tagName : string
    the type of element to exclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addToGroup

- public function addToGroup(sGroup {string}) -
- Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belong to as many -groups as needed. -
- Parameters: -
  • {string} : sGroup
    the name of the group
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

alignElWithMouse

- public function alignElWithMouse(HTMLElement el, int iPageX, int iPageY) -
- Sets the element to the location of the mousedown or click event, -maintaining the cursor location relative to the location on the element -that was clicked. Override this if you want to place the element in a -location other than where the cursor is. -
- Parameters: -
  • el : HTMLElement
    the element to move
  • iPageX : int
    the X coordinate of the mousedown or drag event
  • iPageY : int
    the Y coordinate of the mousedown or drag event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

applyConfig

- public function applyConfig() -
- Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level through the inheritance chain. So -a DDProxy implentation will execute apply config on DDProxy, DD, and -DragDrop in order to get all of the parameters that are available in -each object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

autoOffset

- public function autoOffset(int iPageX, int iPageY) -
- Sets the pointer offset to the distance between the linked element's top -left corner and the location the element was clicked -
- Parameters: -
  • iPageX : int
    the X coordinate of the click
  • iPageY : int
    the Y coordinate of the click
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

cachePosition

- public function cachePosition(iPageX the, iPageY the) -
- Saves the most recent position so that we can reset the constraints and -tick marks on-demand. We need to know this so that we can calculate the -number of pixels the element is offset from its original position. -
- Parameters: -
  • the : iPageX
    current x position (optional, this just makes it so we don't have to look it up again)
  • the : iPageY
    current y position (optional, this just makes it so we don't have to look it up again)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

clearConstraints

- public function clearConstraints() -
- Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constraint at this time. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

clearTicks

- public function clearTicks() -
- Clears any tick interval defined for this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

createFrame

- public function createFrame() -
- Creates the proxy element if it does not yet exist -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DDProxy.
-
- -
-

endDrag

- public function endDrag(Event e) -
- Fired when we are done dragging the object -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getDragEl

- public function getDragEl() -
- Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be assigned to another -element. An example of this can be found in Ext.dd.DDProxy -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getEl

- public function getEl() -
- Returns a reference to the linked element -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

init

- public function init(id the, String sGroup, object config) -
- Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

initFrame

- public function initFrame() -
- Initialization for the drag frame element. Must be called in the -constructor of all subclasses -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DDProxy.
-
- -
-

initTarget

- public function initTarget(id the, String sGroup, object config) -
- Initializes Targeting functionality only... the object does not -get a mousedown handler. -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isLocked

- public function isLocked() -
- Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on the page.) -
- Parameters: -
  • None.
- Returns: -
    -
  • boolean
    true if this obj or all drag/drop is locked, else false
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isTarget

- public function isTarget() -
- By default, all insances can be a drop target. This can be disabled by -setting isTarget to false. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isValidHandleChild

- public function isValidHandleChild(HTMLElement node) -
- Checks the tag exclusion list to see if this click should be ignored -
- Parameters: -
  • node : HTMLElement
    the HTMLElement to evaluate
- Returns: -
    -
  • boolean
    true if this is a valid tag type, false if not
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

lock

- public function lock() -
- Lock this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onAvailable

- public function onAvailable() -
- Override the onAvailable method to do what is needed after the initial -position was determined. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDrag

- public function onDrag(Event e) -
- Abstract method called during the onMouseMove event while dragging an -object. -
- Parameters: -
  • e : Event
    the mousemove event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragDrop

- public function onDragDrop(Event e, String|DragDrop[] id) -
- Abstract method called when this item is dropped on another DragDrop -obj -
- Parameters: -
  • e : Event
    the mouseup event
  • id : String|DragDrop[]
    In POINT mode, the element id this was dropped on. In INTERSECT mode, an array of dd items this was dropped on.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragEnter

- public function onDragEnter(Event e, String|DragDrop[] id) -
- Abstract method called when this element fist begins hovering over -another DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of one or more dragdrop items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOut

- public function onDragOut(Event e, String|DragDrop[] id) -
- Abstract method called when we are no longer hovering over an element -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this was hovering over. In INTERSECT mode, an array of dd items that the mouse is no longer over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOver

- public function onDragOver(Event e, String|DragDrop[] id) -
- Abstract method called when this element is hovering over another -DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of dd items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onInvalidDrop

- public function onInvalidDrop(Event e) -
- Abstract method called when this item is dropped on an area with no -drop target -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseDown

- public function onMouseDown(Event e) -
- Event handler that fires when a drag/drop obj gets a mousedown -
- Parameters: -
  • e : Event
    the mousedown event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseUp

- public function onMouseUp(Event e) -
- Event handler that fires when a drag/drop obj gets a mouseup -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

padding

- public function padding() -
- The padding configured for this drag and drop object for calculating -the drop zone intersection with this object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeFromGroup

- public function removeFromGroup(string sGroup) -
- Remove's this instance from the supplied interaction group -
- Parameters: -
  • sGroup : string
    The group to drop
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleClass

- public function removeInvalidHandleClass(string cssClass) -
- Unsets an invalid css class -
- Parameters: -
  • cssClass : string
    the class of the element(s) you wish to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleId

- public function removeInvalidHandleId(string id) -
- Unsets an invalid handle id -
- Parameters: -
  • id : string
    the id of the element to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleType

- public function removeInvalidHandleType(string tagName) -
- Unsets an excluded tag name set by addInvalidHandleType -
- Parameters: -
  • tagName : string
    the type of element to unexclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

resetConstraints

- public function resetConstraints(boolean maintainOffset) -
- resetConstraints must be called if you manually reposition a dd element. -
- Parameters: -
  • maintainOffset : boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setDelta

- public function setDelta(int iDeltaX, int iDeltaY) -
- Sets the pointer offset. You can call this directly to force the -offset to be in a particular location (e.g., pass in 0,0 to set it -to the center of the object) -
- Parameters: -
  • iDeltaX : int
    the distance from the left
  • iDeltaY : int
    the distance from the top
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

setDragElId

- public function setDragElId(id {string}) -
- Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setDragElPos

- public function setDragElPos(int iPageX, int iPageY) -
- Sets the drag element to the location of the mousedown or click event, -maintaining the cursor location relative to the location on the element -that was clicked. Override this if you want to place the element in a -location other than where the cursor is. -
- Parameters: -
  • iPageX : int
    the X coordinate of the mousedown or drag event
  • iPageY : int
    the Y coordinate of the mousedown or drag event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

setHandleElId

- public function setHandleElId(id {string}) -
- Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example of this would be if -you have a content div with text and links. Clicking anywhere in the -content area would normally start the drag operation. Use this method -to specify that an element inside of the content div is the element -that starts the drag operation. -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setInitialPosition

- public function setInitialPosition(int diffX, int diffY) -
- Stores the initial placement of the linked element. -
- Parameters: -
  • diffX : int
    the X offset, default 0
  • diffY : int
    the Y offset, default 0
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setOuterHandleElId

- public function setOuterHandleElId(id the) -
- Allows you to set an element outside of the linked element as a drag -handle -
- Parameters: -
  • the : id
    id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setPadding

- public function setPadding(int iTop, int iRight, int iBot, int iLeft) -
- Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targeting calculations. -Supports css-style shorthand; if only one parameter is passed, all sides -will have that padding, and if only two are passed, the top and bottom -will have the first param, the left and right the second. -
- Parameters: -
  • iTop : int
    Top pad
  • iRight : int
    Right pad
  • iBot : int
    Bot pad
  • iLeft : int
    Left pad
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setXConstraint

- public function setXConstraint(int iLeft, int iRight, int iTickSize) -
- By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of the element. Pass in -0,0 for the parameters if you want to lock the drag to the y axis. -
- Parameters: -
  • iLeft : int
    the number of pixels the element can move to the left
  • iRight : int
    the number of pixels the element can move to the right
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setYConstraint

- public function setYConstraint(int iUp, int iDown, int iTickSize) -
- By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element. Pass in 0,0 for the -parameters if you want to lock the drag to the x axis. -
- Parameters: -
  • iUp : int
    the number of pixels the element can move up
  • iDown : int
    the number of pixels the element can move down
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

startDrag

- public function startDrag(int X, int Y) -
- Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met. -
- Parameters: -
  • X : int
    click location
  • Y : int
    click location
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

toString

- public function toString() -
- toString method -
- Parameters: -
  • None.
- Returns: -
    -
  • string
    string representation of the dd obj
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unlock

- public function unlock() -
- Unlock this instace -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unreg

- public function unreg() -
- Remove all drag and drop hooks for this element -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.dd.DDTarget.html b/www/extras/extjs/docs/output/Ext.dd.DDTarget.html deleted file mode 100644 index b237f8981..000000000 --- a/www/extras/extjs/docs/output/Ext.dd.DDTarget.html +++ /dev/null @@ -1,1422 +0,0 @@ - - - - Ext.dd.DDTarget - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.dd.DDTarget

- - - - - - -
Package:Ext.dd
Class:DDTarget
Extends:DragDrop
Subclasses:DropTarget
Defined In:DDCore.js
-
- A DragDrop implementation that does not move, but can be a drop -target. You would get the same result by simply omitting implementation -for the event callbacks, but this way we reduce the processing cost of the -event listener and the callbacks.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 available : booleanDragDrop
The availabe property is false until the linked dom element is accessible.
 config : objectDragDrop
Configuration attributes passed into the constructor
 groups : string:DragDrop
The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interact...
 hasOuterHandles : booleanDragDrop
By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in...
 id : StringDragDrop
The id of the element associated with this object. This is what we -refer to as the "linked element" because the size...
 invalidHandleClasses : string[]DragDrop
An indexted array of css class names for elements that will be ignored -if clicked.
 invalidHandleIds : string:DragDrop
An associative array of ids for elements that will be ignored if clicked
 invalidHandleTypes : string:DragDrop
An associative array of HTML tags that will be ignored if clicked.
 maintainOffset : booleanDragDrop
Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its par...
 primaryButtonOnly : booleanDragDrop
By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed m...
 xTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is ge...
 yTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is gene...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 DDTarget(String id, String sGroup, object config)DDTarget
 addInvalidHandleClass(string cssClass) : voidDragDrop
Lets you specify a css class of elements that will not initiate a drag
 addInvalidHandleId(string id) : voidDragDrop
Lets you to specify an element id for a child of a drag handle -that should not initiate a drag
 addInvalidHandleType(string tagName) : voidDragDrop
Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate...
 addToGroup(sGroup {string}) : voidDragDrop
Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belon...
 applyConfig() : voidDragDrop
Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level ...
 clearConstraints() : voidDragDrop
Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constrain...
 clearTicks() : voidDragDrop
Clears any tick interval defined for this instance
 endDrag(Event e) : voidDragDrop
Fired when we are done dragging the object
 getDragEl() : HTMLElementDragDrop
Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be as...
 getEl() : HTMLElementDragDrop
Returns a reference to the linked element
 init(id the, String sGroup, object config) : voidDragDrop
Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass
 initTarget(id the, String sGroup, object config) : voidDragDrop
Initializes Targeting functionality only... the object does not -get a mousedown handler.
 isLocked() : booleanDragDrop
Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on th...
 isTarget() : voidDragDrop
By default, all insances can be a drop target. This can be disabled by -setting isTarget to false.
 isValidHandleChild(HTMLElement node) : booleanDragDrop
Checks the tag exclusion list to see if this click should be ignored
 lock() : voidDragDrop
Lock this instance
 onAvailable() : voidDragDrop
Override the onAvailable method to do what is needed after the initial -position was determined.
 onDrag(Event e) : voidDragDrop
Abstract method called during the onMouseMove event while dragging an -object.
 onDragDrop(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this item is dropped on another DragDrop -obj
 onDragEnter(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element fist begins hovering over -another DragDrop obj
 onDragOut(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when we are no longer hovering over an element
 onDragOver(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element is hovering over another -DragDrop obj
 onInvalidDrop(Event e) : voidDragDrop
Abstract method called when this item is dropped on an area with no -drop target
 onMouseDown(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mousedown
 onMouseUp(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mouseup
 padding() : voidDragDrop
The padding configured for this drag and drop object for calculating -the drop zone intersection with this object.
 removeFromGroup(string sGroup) : voidDragDrop
Remove's this instance from the supplied interaction group
 removeInvalidHandleClass(string cssClass) : voidDragDrop
Unsets an invalid css class
 removeInvalidHandleId(string id) : voidDragDrop
Unsets an invalid handle id
 removeInvalidHandleType(string tagName) : voidDragDrop
Unsets an excluded tag name set by addInvalidHandleType
 resetConstraints(boolean maintainOffset) : voidDragDrop
resetConstraints must be called if you manually reposition a dd element.
 setDragElId(id {string}) : voidDragDrop
Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag
 setHandleElId(id {string}) : voidDragDrop
Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example o...
 setInitialPosition(int diffX, int diffY) : voidDragDrop
Stores the initial placement of the linked element.
 setOuterHandleElId(id the) : voidDragDrop
Allows you to set an element outside of the linked element as a drag -handle
 setPadding(int iTop, int iRight, int iBot, int iLeft) : voidDragDrop
Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targe...
 setXConstraint(int iLeft, int iRight, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of th...
 setYConstraint(int iUp, int iDown, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element...
 startDrag(int X, int Y) : voidDragDrop
Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met.
 toString() : stringDragDrop
toString method
 unlock() : voidDragDrop
Unlock this instace
 unreg() : voidDragDrop
Remove all drag and drop hooks for this element
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

available

- public boolean available -
- The availabe property is false until the linked dom element is accessible.
-
This property is defined by DragDrop.
-
- -
-

config

- public object config -
- Configuration attributes passed into the constructor
-
This property is defined by DragDrop.
-
- -
-

groups

- public string: groups -
- The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interacting with other -DragDrop object in the same group. This lets us define multiple -groups using a single DragDrop subclass if we want.
-
This property is defined by DragDrop.
-
- -
-

hasOuterHandles

- public boolean hasOuterHandles -
- By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in part to work around a -bug in some browsers that mis-report the mousedown if the previous -mouseup happened outside of the window. This property is set to true -if outer handles are defined.
-
This property is defined by DragDrop.
-
- -
-

id

- public String id -
- The id of the element associated with this object. This is what we -refer to as the "linked element" because the size and position of -this element is used to determine when the drag and drop objects have -interacted.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleClasses

- public string[] invalidHandleClasses -
- An indexted array of css class names for elements that will be ignored -if clicked.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleIds

- public string: invalidHandleIds -
- An associative array of ids for elements that will be ignored if clicked
-
This property is defined by DragDrop.
-
- -
-

invalidHandleTypes

- public string: invalidHandleTypes -
- An associative array of HTML tags that will be ignored if clicked.
-
This property is defined by DragDrop.
-
- -
-

maintainOffset

- public boolean maintainOffset -
- Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its parent to stay the same -when the page changes
-
This property is defined by DragDrop.
-
- -
-

primaryButtonOnly

- public boolean primaryButtonOnly -
- By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed mouse). Set to true to -allow drag and drop to start with any mouse click that is propogated -by the browser
-
This property is defined by DragDrop.
-
- -
-

xTicks

- public int[] xTicks -
- Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
- -
-

yTicks

- public int[] yTicks -
- Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
-
- - -

Constructor Details

-
-
-

DDTarget

- public function DDTarget(String id, String sGroup, object config) -
-
- Parameters: -
  • id : String
    the id of the element that is a drop target
  • sGroup : String
    the group of related DragDrop objects
  • config : object
    an object containing configurable attributes Valid properties for DDTarget in addition to those in DragDrop: none
-
-
-
-
- -

Method Details

-
- -
-

addInvalidHandleClass

- public function addInvalidHandleClass(string cssClass) -
- Lets you specify a css class of elements that will not initiate a drag -
- Parameters: -
  • cssClass : string
    the class of the elements you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleId

- public function addInvalidHandleId(string id) -
- Lets you to specify an element id for a child of a drag handle -that should not initiate a drag -
- Parameters: -
  • id : string
    the element id of the element you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleType

- public function addInvalidHandleType(string tagName) -
- Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate embedding links within a -drag handle that do something other than start the drag. -
- Parameters: -
  • tagName : string
    the type of element to exclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addToGroup

- public function addToGroup(sGroup {string}) -
- Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belong to as many -groups as needed. -
- Parameters: -
  • {string} : sGroup
    the name of the group
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

applyConfig

- public function applyConfig() -
- Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level through the inheritance chain. So -a DDProxy implentation will execute apply config on DDProxy, DD, and -DragDrop in order to get all of the parameters that are available in -each object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

clearConstraints

- public function clearConstraints() -
- Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constraint at this time. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

clearTicks

- public function clearTicks() -
- Clears any tick interval defined for this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

endDrag

- public function endDrag(Event e) -
- Fired when we are done dragging the object -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getDragEl

- public function getDragEl() -
- Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be assigned to another -element. An example of this can be found in Ext.dd.DDProxy -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getEl

- public function getEl() -
- Returns a reference to the linked element -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

init

- public function init(id the, String sGroup, object config) -
- Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

initTarget

- public function initTarget(id the, String sGroup, object config) -
- Initializes Targeting functionality only... the object does not -get a mousedown handler. -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isLocked

- public function isLocked() -
- Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on the page.) -
- Parameters: -
  • None.
- Returns: -
    -
  • boolean
    true if this obj or all drag/drop is locked, else false
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isTarget

- public function isTarget() -
- By default, all insances can be a drop target. This can be disabled by -setting isTarget to false. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isValidHandleChild

- public function isValidHandleChild(HTMLElement node) -
- Checks the tag exclusion list to see if this click should be ignored -
- Parameters: -
  • node : HTMLElement
    the HTMLElement to evaluate
- Returns: -
    -
  • boolean
    true if this is a valid tag type, false if not
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

lock

- public function lock() -
- Lock this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onAvailable

- public function onAvailable() -
- Override the onAvailable method to do what is needed after the initial -position was determined. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDrag

- public function onDrag(Event e) -
- Abstract method called during the onMouseMove event while dragging an -object. -
- Parameters: -
  • e : Event
    the mousemove event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragDrop

- public function onDragDrop(Event e, String|DragDrop[] id) -
- Abstract method called when this item is dropped on another DragDrop -obj -
- Parameters: -
  • e : Event
    the mouseup event
  • id : String|DragDrop[]
    In POINT mode, the element id this was dropped on. In INTERSECT mode, an array of dd items this was dropped on.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragEnter

- public function onDragEnter(Event e, String|DragDrop[] id) -
- Abstract method called when this element fist begins hovering over -another DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of one or more dragdrop items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOut

- public function onDragOut(Event e, String|DragDrop[] id) -
- Abstract method called when we are no longer hovering over an element -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this was hovering over. In INTERSECT mode, an array of dd items that the mouse is no longer over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOver

- public function onDragOver(Event e, String|DragDrop[] id) -
- Abstract method called when this element is hovering over another -DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of dd items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onInvalidDrop

- public function onInvalidDrop(Event e) -
- Abstract method called when this item is dropped on an area with no -drop target -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseDown

- public function onMouseDown(Event e) -
- Event handler that fires when a drag/drop obj gets a mousedown -
- Parameters: -
  • e : Event
    the mousedown event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseUp

- public function onMouseUp(Event e) -
- Event handler that fires when a drag/drop obj gets a mouseup -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

padding

- public function padding() -
- The padding configured for this drag and drop object for calculating -the drop zone intersection with this object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeFromGroup

- public function removeFromGroup(string sGroup) -
- Remove's this instance from the supplied interaction group -
- Parameters: -
  • sGroup : string
    The group to drop
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleClass

- public function removeInvalidHandleClass(string cssClass) -
- Unsets an invalid css class -
- Parameters: -
  • cssClass : string
    the class of the element(s) you wish to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleId

- public function removeInvalidHandleId(string id) -
- Unsets an invalid handle id -
- Parameters: -
  • id : string
    the id of the element to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleType

- public function removeInvalidHandleType(string tagName) -
- Unsets an excluded tag name set by addInvalidHandleType -
- Parameters: -
  • tagName : string
    the type of element to unexclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

resetConstraints

- public function resetConstraints(boolean maintainOffset) -
- resetConstraints must be called if you manually reposition a dd element. -
- Parameters: -
  • maintainOffset : boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setDragElId

- public function setDragElId(id {string}) -
- Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setHandleElId

- public function setHandleElId(id {string}) -
- Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example of this would be if -you have a content div with text and links. Clicking anywhere in the -content area would normally start the drag operation. Use this method -to specify that an element inside of the content div is the element -that starts the drag operation. -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setInitialPosition

- public function setInitialPosition(int diffX, int diffY) -
- Stores the initial placement of the linked element. -
- Parameters: -
  • diffX : int
    the X offset, default 0
  • diffY : int
    the Y offset, default 0
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setOuterHandleElId

- public function setOuterHandleElId(id the) -
- Allows you to set an element outside of the linked element as a drag -handle -
- Parameters: -
  • the : id
    id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setPadding

- public function setPadding(int iTop, int iRight, int iBot, int iLeft) -
- Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targeting calculations. -Supports css-style shorthand; if only one parameter is passed, all sides -will have that padding, and if only two are passed, the top and bottom -will have the first param, the left and right the second. -
- Parameters: -
  • iTop : int
    Top pad
  • iRight : int
    Right pad
  • iBot : int
    Bot pad
  • iLeft : int
    Left pad
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setXConstraint

- public function setXConstraint(int iLeft, int iRight, int iTickSize) -
- By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of the element. Pass in -0,0 for the parameters if you want to lock the drag to the y axis. -
- Parameters: -
  • iLeft : int
    the number of pixels the element can move to the left
  • iRight : int
    the number of pixels the element can move to the right
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setYConstraint

- public function setYConstraint(int iUp, int iDown, int iTickSize) -
- By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element. Pass in 0,0 for the -parameters if you want to lock the drag to the x axis. -
- Parameters: -
  • iUp : int
    the number of pixels the element can move up
  • iDown : int
    the number of pixels the element can move down
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

startDrag

- public function startDrag(int X, int Y) -
- Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met. -
- Parameters: -
  • X : int
    click location
  • Y : int
    click location
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

toString

- public function toString() -
- toString method -
- Parameters: -
  • None.
- Returns: -
    -
  • string
    string representation of the dd obj
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unlock

- public function unlock() -
- Unlock this instace -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unreg

- public function unreg() -
- Remove all drag and drop hooks for this element -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.dd.DragDrop.html b/www/extras/extjs/docs/output/Ext.dd.DragDrop.html deleted file mode 100644 index f6bc130d9..000000000 --- a/www/extras/extjs/docs/output/Ext.dd.DragDrop.html +++ /dev/null @@ -1,1453 +0,0 @@ - - - - Ext.dd.DragDrop - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.dd.DragDrop

- - - - - - -
Package:Ext.dd
Class:DragDrop
Extends:Object
Subclasses:DD, DDTarget
Defined In:DDCore.js
-
- Defines the interface and base operation of items that that can be -dragged or can be drop targets. It was designed to be extended, overriding -the event handlers for startDrag, onDrag, onDragOver and onDragOut. -Up to three html elements can be associated with a DragDrop instance: -
    -
  • linked element: the element that is passed into the constructor. -This is the element which defines the boundaries for interaction with -other DragDrop objects.
  • -
  • handle element(s): The drag operation only occurs if the element that -was clicked matches a handle element. By default this is the linked -element, but there are times that you will want only a portion of the -linked element to initiate the drag operation, and the setHandleElId() -method provides a way to define this.
  • -
  • drag element: this represents the element that would be moved along -with the cursor during a drag operation. By default, this is the linked -element itself as in Ext.dd.DD. setDragElId() lets you define -a separate element that would be moved, as in Ext.dd.DDProxy. -
  • -
-This class should not be instantiated until the onload event to ensure that -the associated elements are available. -The following would define a DragDrop obj that would interact with any -other DragDrop obj in the "group1" group: -
-dd = new Ext.dd.DragDrop("div1", "group1");
-
-Since none of the event handlers have been implemented, nothing would -actually happen if you were to run the code above. Normally you would -override this class or one of the default implementations, but you can -also override the methods you want on an instance of the class... -
-dd.onDragDrop = function(e, id) {
-  alert("dd was dropped on " + id);
-}
-
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 available : booleanDragDrop
The availabe property is false until the linked dom element is accessible.
 config : objectDragDrop
Configuration attributes passed into the constructor
 groups : string:DragDrop
The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interact...
 hasOuterHandles : booleanDragDrop
By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in...
 id : StringDragDrop
The id of the element associated with this object. This is what we -refer to as the "linked element" because the size...
 invalidHandleClasses : string[]DragDrop
An indexted array of css class names for elements that will be ignored -if clicked.
 invalidHandleIds : string:DragDrop
An associative array of ids for elements that will be ignored if clicked
 invalidHandleTypes : string:DragDrop
An associative array of HTML tags that will be ignored if clicked.
 maintainOffset : booleanDragDrop
Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its par...
 primaryButtonOnly : booleanDragDrop
By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed m...
 xTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is ge...
 yTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is gene...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 DragDrop(String id, String sGroup, object config)DragDrop
 addInvalidHandleClass(string cssClass) : voidDragDrop
Lets you specify a css class of elements that will not initiate a drag
 addInvalidHandleId(string id) : voidDragDrop
Lets you to specify an element id for a child of a drag handle -that should not initiate a drag
 addInvalidHandleType(string tagName) : voidDragDrop
Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate...
 addToGroup(sGroup {string}) : voidDragDrop
Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belon...
 applyConfig() : voidDragDrop
Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level ...
 clearConstraints() : voidDragDrop
Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constrain...
 clearTicks() : voidDragDrop
Clears any tick interval defined for this instance
 endDrag(Event e) : voidDragDrop
Fired when we are done dragging the object
 getDragEl() : HTMLElementDragDrop
Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be as...
 getEl() : HTMLElementDragDrop
Returns a reference to the linked element
 init(id the, String sGroup, object config) : voidDragDrop
Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass
 initTarget(id the, String sGroup, object config) : voidDragDrop
Initializes Targeting functionality only... the object does not -get a mousedown handler.
 isLocked() : booleanDragDrop
Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on th...
 isTarget() : voidDragDrop
By default, all insances can be a drop target. This can be disabled by -setting isTarget to false.
 isValidHandleChild(HTMLElement node) : booleanDragDrop
Checks the tag exclusion list to see if this click should be ignored
 lock() : voidDragDrop
Lock this instance
 onAvailable() : voidDragDrop
Override the onAvailable method to do what is needed after the initial -position was determined.
 onDrag(Event e) : voidDragDrop
Abstract method called during the onMouseMove event while dragging an -object.
 onDragDrop(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this item is dropped on another DragDrop -obj
 onDragEnter(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element fist begins hovering over -another DragDrop obj
 onDragOut(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when we are no longer hovering over an element
 onDragOver(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element is hovering over another -DragDrop obj
 onInvalidDrop(Event e) : voidDragDrop
Abstract method called when this item is dropped on an area with no -drop target
 onMouseDown(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mousedown
 onMouseUp(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mouseup
 padding() : voidDragDrop
The padding configured for this drag and drop object for calculating -the drop zone intersection with this object.
 removeFromGroup(string sGroup) : voidDragDrop
Remove's this instance from the supplied interaction group
 removeInvalidHandleClass(string cssClass) : voidDragDrop
Unsets an invalid css class
 removeInvalidHandleId(string id) : voidDragDrop
Unsets an invalid handle id
 removeInvalidHandleType(string tagName) : voidDragDrop
Unsets an excluded tag name set by addInvalidHandleType
 resetConstraints(boolean maintainOffset) : voidDragDrop
resetConstraints must be called if you manually reposition a dd element.
 setDragElId(id {string}) : voidDragDrop
Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag
 setHandleElId(id {string}) : voidDragDrop
Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example o...
 setInitialPosition(int diffX, int diffY) : voidDragDrop
Stores the initial placement of the linked element.
 setOuterHandleElId(id the) : voidDragDrop
Allows you to set an element outside of the linked element as a drag -handle
 setPadding(int iTop, int iRight, int iBot, int iLeft) : voidDragDrop
Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targe...
 setXConstraint(int iLeft, int iRight, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of th...
 setYConstraint(int iUp, int iDown, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element...
 startDrag(int X, int Y) : voidDragDrop
Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met.
 toString() : stringDragDrop
toString method
 unlock() : voidDragDrop
Unlock this instace
 unreg() : voidDragDrop
Remove all drag and drop hooks for this element
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

available

- public boolean available -
- The availabe property is false until the linked dom element is accessible.
-
This property is defined by DragDrop.
-
- -
-

config

- public object config -
- Configuration attributes passed into the constructor
-
This property is defined by DragDrop.
-
- -
-

groups

- public string: groups -
- The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interacting with other -DragDrop object in the same group. This lets us define multiple -groups using a single DragDrop subclass if we want.
-
This property is defined by DragDrop.
-
- -
-

hasOuterHandles

- public boolean hasOuterHandles -
- By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in part to work around a -bug in some browsers that mis-report the mousedown if the previous -mouseup happened outside of the window. This property is set to true -if outer handles are defined.
-
This property is defined by DragDrop.
-
- -
-

id

- public String id -
- The id of the element associated with this object. This is what we -refer to as the "linked element" because the size and position of -this element is used to determine when the drag and drop objects have -interacted.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleClasses

- public string[] invalidHandleClasses -
- An indexted array of css class names for elements that will be ignored -if clicked.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleIds

- public string: invalidHandleIds -
- An associative array of ids for elements that will be ignored if clicked
-
This property is defined by DragDrop.
-
- -
-

invalidHandleTypes

- public string: invalidHandleTypes -
- An associative array of HTML tags that will be ignored if clicked.
-
This property is defined by DragDrop.
-
- -
-

maintainOffset

- public boolean maintainOffset -
- Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its parent to stay the same -when the page changes
-
This property is defined by DragDrop.
-
- -
-

primaryButtonOnly

- public boolean primaryButtonOnly -
- By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed mouse). Set to true to -allow drag and drop to start with any mouse click that is propogated -by the browser
-
This property is defined by DragDrop.
-
- -
-

xTicks

- public int[] xTicks -
- Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
- -
-

yTicks

- public int[] yTicks -
- Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
-
- - -

Constructor Details

-
-
-

DragDrop

- public function DragDrop(String id, String sGroup, object config) -
-
- Parameters: -
  • id : String
    of the element that is linked to this instance
  • sGroup : String
    the group of related DragDrop objects
  • config : object
    an object containing configurable attributes Valid properties for DragDrop: padding, isTarget, maintainOffset, primaryButtonOnly
-
-
-
-
- -

Method Details

-
- -
-

addInvalidHandleClass

- public function addInvalidHandleClass(string cssClass) -
- Lets you specify a css class of elements that will not initiate a drag -
- Parameters: -
  • cssClass : string
    the class of the elements you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleId

- public function addInvalidHandleId(string id) -
- Lets you to specify an element id for a child of a drag handle -that should not initiate a drag -
- Parameters: -
  • id : string
    the element id of the element you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleType

- public function addInvalidHandleType(string tagName) -
- Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate embedding links within a -drag handle that do something other than start the drag. -
- Parameters: -
  • tagName : string
    the type of element to exclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addToGroup

- public function addToGroup(sGroup {string}) -
- Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belong to as many -groups as needed. -
- Parameters: -
  • {string} : sGroup
    the name of the group
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

applyConfig

- public function applyConfig() -
- Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level through the inheritance chain. So -a DDProxy implentation will execute apply config on DDProxy, DD, and -DragDrop in order to get all of the parameters that are available in -each object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

clearConstraints

- public function clearConstraints() -
- Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constraint at this time. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

clearTicks

- public function clearTicks() -
- Clears any tick interval defined for this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

endDrag

- public function endDrag(Event e) -
- Fired when we are done dragging the object -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getDragEl

- public function getDragEl() -
- Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be assigned to another -element. An example of this can be found in Ext.dd.DDProxy -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getEl

- public function getEl() -
- Returns a reference to the linked element -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

init

- public function init(id the, String sGroup, object config) -
- Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

initTarget

- public function initTarget(id the, String sGroup, object config) -
- Initializes Targeting functionality only... the object does not -get a mousedown handler. -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isLocked

- public function isLocked() -
- Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on the page.) -
- Parameters: -
  • None.
- Returns: -
    -
  • boolean
    true if this obj or all drag/drop is locked, else false
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isTarget

- public function isTarget() -
- By default, all insances can be a drop target. This can be disabled by -setting isTarget to false. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isValidHandleChild

- public function isValidHandleChild(HTMLElement node) -
- Checks the tag exclusion list to see if this click should be ignored -
- Parameters: -
  • node : HTMLElement
    the HTMLElement to evaluate
- Returns: -
    -
  • boolean
    true if this is a valid tag type, false if not
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

lock

- public function lock() -
- Lock this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onAvailable

- public function onAvailable() -
- Override the onAvailable method to do what is needed after the initial -position was determined. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDrag

- public function onDrag(Event e) -
- Abstract method called during the onMouseMove event while dragging an -object. -
- Parameters: -
  • e : Event
    the mousemove event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragDrop

- public function onDragDrop(Event e, String|DragDrop[] id) -
- Abstract method called when this item is dropped on another DragDrop -obj -
- Parameters: -
  • e : Event
    the mouseup event
  • id : String|DragDrop[]
    In POINT mode, the element id this was dropped on. In INTERSECT mode, an array of dd items this was dropped on.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragEnter

- public function onDragEnter(Event e, String|DragDrop[] id) -
- Abstract method called when this element fist begins hovering over -another DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of one or more dragdrop items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOut

- public function onDragOut(Event e, String|DragDrop[] id) -
- Abstract method called when we are no longer hovering over an element -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this was hovering over. In INTERSECT mode, an array of dd items that the mouse is no longer over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOver

- public function onDragOver(Event e, String|DragDrop[] id) -
- Abstract method called when this element is hovering over another -DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of dd items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onInvalidDrop

- public function onInvalidDrop(Event e) -
- Abstract method called when this item is dropped on an area with no -drop target -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseDown

- public function onMouseDown(Event e) -
- Event handler that fires when a drag/drop obj gets a mousedown -
- Parameters: -
  • e : Event
    the mousedown event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseUp

- public function onMouseUp(Event e) -
- Event handler that fires when a drag/drop obj gets a mouseup -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

padding

- public function padding() -
- The padding configured for this drag and drop object for calculating -the drop zone intersection with this object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeFromGroup

- public function removeFromGroup(string sGroup) -
- Remove's this instance from the supplied interaction group -
- Parameters: -
  • sGroup : string
    The group to drop
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleClass

- public function removeInvalidHandleClass(string cssClass) -
- Unsets an invalid css class -
- Parameters: -
  • cssClass : string
    the class of the element(s) you wish to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleId

- public function removeInvalidHandleId(string id) -
- Unsets an invalid handle id -
- Parameters: -
  • id : string
    the id of the element to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleType

- public function removeInvalidHandleType(string tagName) -
- Unsets an excluded tag name set by addInvalidHandleType -
- Parameters: -
  • tagName : string
    the type of element to unexclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

resetConstraints

- public function resetConstraints(boolean maintainOffset) -
- resetConstraints must be called if you manually reposition a dd element. -
- Parameters: -
  • maintainOffset : boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setDragElId

- public function setDragElId(id {string}) -
- Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setHandleElId

- public function setHandleElId(id {string}) -
- Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example of this would be if -you have a content div with text and links. Clicking anywhere in the -content area would normally start the drag operation. Use this method -to specify that an element inside of the content div is the element -that starts the drag operation. -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setInitialPosition

- public function setInitialPosition(int diffX, int diffY) -
- Stores the initial placement of the linked element. -
- Parameters: -
  • diffX : int
    the X offset, default 0
  • diffY : int
    the Y offset, default 0
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setOuterHandleElId

- public function setOuterHandleElId(id the) -
- Allows you to set an element outside of the linked element as a drag -handle -
- Parameters: -
  • the : id
    id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setPadding

- public function setPadding(int iTop, int iRight, int iBot, int iLeft) -
- Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targeting calculations. -Supports css-style shorthand; if only one parameter is passed, all sides -will have that padding, and if only two are passed, the top and bottom -will have the first param, the left and right the second. -
- Parameters: -
  • iTop : int
    Top pad
  • iRight : int
    Right pad
  • iBot : int
    Bot pad
  • iLeft : int
    Left pad
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setXConstraint

- public function setXConstraint(int iLeft, int iRight, int iTickSize) -
- By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of the element. Pass in -0,0 for the parameters if you want to lock the drag to the y axis. -
- Parameters: -
  • iLeft : int
    the number of pixels the element can move to the left
  • iRight : int
    the number of pixels the element can move to the right
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setYConstraint

- public function setYConstraint(int iUp, int iDown, int iTickSize) -
- By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element. Pass in 0,0 for the -parameters if you want to lock the drag to the x axis. -
- Parameters: -
  • iUp : int
    the number of pixels the element can move up
  • iDown : int
    the number of pixels the element can move down
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

startDrag

- public function startDrag(int X, int Y) -
- Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met. -
- Parameters: -
  • X : int
    click location
  • Y : int
    click location
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

toString

- public function toString() -
- toString method -
- Parameters: -
  • None.
- Returns: -
    -
  • string
    string representation of the dd obj
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unlock

- public function unlock() -
- Unlock this instace -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unreg

- public function unreg() -
- Remove all drag and drop hooks for this element -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.dd.DragDropMgr.html b/www/extras/extjs/docs/output/Ext.dd.DragDropMgr.html deleted file mode 100644 index 3d9cc3747..000000000 --- a/www/extras/extjs/docs/output/Ext.dd.DragDropMgr.html +++ /dev/null @@ -1,1013 +0,0 @@ - - - - Ext.dd.DragDropMgr - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.dd.DragDropMgr

- - - - - -
Package:Ext.dd
Class:DragDropMgr
Extends:Object
Defined In:DDCore.js
-
- DragDropMgr is a singleton that tracks the element interaction for -all DragDrop items in the window. Generally, you will not call -this class directly, but it does have helper methods that could -be useful in your DragDrop implementations.

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 INTERSECT : intDragDropMgr
<static> In intersect mode, drag and drop interactio nis defined by the -overlap of two or more drag and drop ob...
 POINT : intDragDropMgr
<static> In point mode, drag and drop interaction is defined by the -location of the cursor during the drag/drop
 clickPixelThresh : intDragDropMgr
<static> The number of pixels that the mouse needs to move after the -mousedown before the drag is initiated. D...
 clickTimeThresh : intDragDropMgr
<static> The number of milliseconds after the mousedown event to initiate the -drag if we don't get a mouseup ev...
 css : ObjectDragDropMgr
A reference to the style property
 el : ObjectDragDropMgr
The element
 id : ObjectDragDropMgr
The element id
 mode : intDragDropMgr
<static> The current drag and drop mode. Default: POINT
 preventDefault : booleanDragDropMgr
<static> Flag to determine if we should prevent the default behavior of the -events we define. By default this i...
 stopPropagation : booleanDragDropMgr
<static> Flag to determine if we should stop the propagation of the events -we generate. This is true by default...
 useCache : booleanDragDropMgr
<static> Set useCache to false if you want to force object the lookup of each -drag and drop linked element cons...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 getBestMatch(DragDrop[] dds) : DragDropDragDropMgr
<static> Helper function for getting the best match from the list of drag -and drop objects returned by the drag...
 getCss(String id) : ObjectDragDropMgr
Deprecated. <static> Returns the style property for the DOM element (i.e., -document.getElById(id).style)
 getDDById(String id) : DragDropDragDropMgr
<static> Returns the DragDrop instance for a given id
 getElement(String id) : ObjectDragDropMgr
Deprecated. <static> Returns the actual DOM element
 getLocation(DragDrop oDD) : Ext.lib.RegionDragDropMgr
<static> Returns a Region object containing the drag and drop element's position -and size, including the paddin...
 getPosX(el the) : intDragDropMgr
Deprecated. <static> Returns the X position of an html element
 getPosY(el the) : intDragDropMgr
Deprecated. <static> Returns the Y position of an html element
 getRelated(DragDrop p_oDD, boolean bTargetsOnly) : DragDrop[]DragDropMgr
<static> Returns the drag and drop instances that are in all groups the -passed in instance belongs to.
 getScrollLeft() : intDragDropMgr
<static> Gets the scrollLeft
 getScrollTop() : intDragDropMgr
<static> Gets the scrollTop
 getStyle(HTMLElement el, string styleProp) : stringDragDropMgr
Deprecated. <static> Returns the specified element style property
 handleWasClicked(node the) : voidDragDropMgr
<static> Recursively searches the immediate parent and all child nodes for -the handle element in order to deter...
 isDragDrop(String id) : booleanDragDropMgr
<static> Utility function to determine if a given element has been -registered as a drag drop item.
 isHandle(String id) : booleanDragDropMgr
<static> Utility function to determine if a given element has been -registered as a drag drop handle for the giv...
 isLegalTarget(DragDrop the, DragDrop the) : booleanDragDropMgr
<static> Returns true if the specified dd target is a legal target for -the specifice drag obj
 isLocked() : booleanDragDropMgr
<static> Is drag and drop locked?
 isTypeOfDD(Object the) : booleanDragDropMgr
<static> My goal is to be able to transparently determine if an object is -typeof DragDrop, and the exact subcla...
 lock() : voidDragDropMgr
<static> Lock all drag and drop functionality
 moveToEl(HTMLElement moveEl, HTMLElement targetEl) : voidDragDropMgr
<static> Sets the x/y position of an element to the location of the -target element.
 numericSort() : voidDragDropMgr
<static> Numeric array sort function
 refreshCache(Object groups) : voidDragDropMgr
<static> Refreshes the cache of the top-left and bottom-right points of the -drag and drop objects in the specif...
 regDragDrop(DragDrop oDD, String sGroup) : voidDragDropMgr
<static> Each DragDrop instance must be registered with the DragDropMgr. -This is executed in DragDrop.init()
 regHandle(String sDDId, String sHandleId) : voidDragDropMgr
<static> Each DragDrop handle element must be registered. This is done -automatically when executing DragDrop.s...
 startDrag(x {int}, y {int}) : voidDragDropMgr
<static> Fired when either the drag pixel threshol or the mousedown hold -time threshold has been met.
 stopEvent(Event e) : voidDragDropMgr
<static> Utility to stop event propagation and event default, if these -features are turned on.
 swapNode(n1 the, n2 the) : voidDragDropMgr
<static> Swap two nodes. In IE, we use the native method, for others we -emulate the IE behavior
 unlock() : voidDragDropMgr
<static> Unlock all drag and drop functionality
 verifyEl(HTMLElement el) : booleanDragDropMgr
<static> This checks to make sure an element exists and is in the DOM. The -main purpose is to handle cases whe...
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

INTERSECT

- public int INTERSECT -
- <static> In intersect mode, drag and drop interactio nis defined by the -overlap of two or more drag and drop objects.
-
This property is defined by DragDropMgr.
-
- -
-

POINT

- public int POINT -
- <static> In point mode, drag and drop interaction is defined by the -location of the cursor during the drag/drop
-
This property is defined by DragDropMgr.
-
- -
-

clickPixelThresh

- public int clickPixelThresh -
- <static> The number of pixels that the mouse needs to move after the -mousedown before the drag is initiated. Default=3;
-
This property is defined by DragDropMgr.
-
- -
-

clickTimeThresh

- public int clickTimeThresh -
- <static> The number of milliseconds after the mousedown event to initiate the -drag if we don't get a mouseup event. Default=1000
-
This property is defined by DragDropMgr.
-
- -
-

css

- public Object css -
- A reference to the style property
-
This property is defined by DragDropMgr.
-
- -
-

el

- public Object el -
- The element
-
This property is defined by DragDropMgr.
-
- -
-

id

- public Object id -
- The element id
-
This property is defined by DragDropMgr.
-
- -
-

mode

- public int mode -
- <static> The current drag and drop mode. Default: POINT
-
This property is defined by DragDropMgr.
-
- -
-

preventDefault

- public boolean preventDefault -
- <static> Flag to determine if we should prevent the default behavior of the -events we define. By default this is true, but this can be set to -false if you need the default behavior (not recommended)
-
This property is defined by DragDropMgr.
-
- -
-

stopPropagation

- public boolean stopPropagation -
- <static> Flag to determine if we should stop the propagation of the events -we generate. This is true by default but you may want to set it to -false if the html element contains other features that require the -mouse click.
-
This property is defined by DragDropMgr.
-
- -
-

useCache

- public boolean useCache -
- <static> Set useCache to false if you want to force object the lookup of each -drag and drop linked element constantly during a drag.
-
This property is defined by DragDropMgr.
-
-
- - -

Method Details

-
- -
-

getBestMatch

- public function getBestMatch(DragDrop[] dds) -
- <static> Helper function for getting the best match from the list of drag -and drop objects returned by the drag and drop events when we are -in INTERSECT mode. It returns either the first object that the -cursor is over, or the object that has the greatest overlap with -the dragged element. -
- Parameters: -
  • dds : DragDrop[]
    The array of drag and drop objects targeted
- Returns: -
    -
  • DragDrop
    The best single match
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

getCss

- public function getCss(String id) -
- Deprecated. <static> Returns the style property for the DOM element (i.e., -document.getElById(id).style) -
- Parameters: -
  • id : String
    the id of the elment to get
- Returns: -
    -
  • Object
    The style property of the element
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

getDDById

- public function getDDById(String id) -
- <static> Returns the DragDrop instance for a given id -
- Parameters: -
  • id : String
    the id of the DragDrop object
- Returns: -
    -
  • DragDrop
    the drag drop object, null if it is not found
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

getElement

- public function getElement(String id) -
- Deprecated. <static> Returns the actual DOM element -
- Parameters: -
  • id : String
    the id of the elment to get
- Returns: -
    -
  • Object
    The element
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

getLocation

- public function getLocation(DragDrop oDD) -
- <static> Returns a Region object containing the drag and drop element's position -and size, including the padding configured for it -
- Parameters: -
  • oDD : DragDrop
    the drag and drop object to get the location for
- Returns: -
    -
  • Ext.lib.Region
    a Region object representing the total area the element occupies, including any padding the instance is configured for.
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

getPosX

- public function getPosX(el the) -
- Deprecated. <static> Returns the X position of an html element -
- Parameters: -
  • the : el
    element for which to get the position
- Returns: -
    -
  • int
    the X coordinate @for DragDropMgr
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

getPosY

- public function getPosY(el the) -
- Deprecated. <static> Returns the Y position of an html element -
- Parameters: -
  • the : el
    element for which to get the position
- Returns: -
    -
  • int
    the Y coordinate
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

getRelated

- public function getRelated(DragDrop p_oDD, boolean bTargetsOnly) -
- <static> Returns the drag and drop instances that are in all groups the -passed in instance belongs to. -
- Parameters: -
  • p_oDD : DragDrop
    the obj to get related data for
  • bTargetsOnly : boolean
    if true, only return targetable objs
- Returns: -
    -
  • DragDrop[]
    the related instances
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

getScrollLeft

- public function getScrollLeft() -
- <static> Gets the scrollLeft -
- Parameters: -
  • None.
- Returns: -
    -
  • int
    the document's scrollTop
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

getScrollTop

- public function getScrollTop() -
- <static> Gets the scrollTop -
- Parameters: -
  • None.
- Returns: -
    -
  • int
    the document's scrollTop
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

getStyle

- public function getStyle(HTMLElement el, string styleProp) -
- Deprecated. <static> Returns the specified element style property -
- Parameters: -
  • el : HTMLElement
    the element
  • styleProp : string
    the style property
- Returns: -
    -
  • string
    The value of the style property
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

handleWasClicked

- public function handleWasClicked(node the) -
- <static> Recursively searches the immediate parent and all child nodes for -the handle element in order to determine wheter or not it was -clicked. -
- Parameters: -
  • the : node
    html element to inspect
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

isDragDrop

- public function isDragDrop(String id) -
- <static> Utility function to determine if a given element has been -registered as a drag drop item. -
- Parameters: -
  • id : String
    the element id to check
- Returns: -
    -
  • boolean
    true if this element is a DragDrop item, false otherwise
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

isHandle

- public function isHandle(String id) -
- <static> Utility function to determine if a given element has been -registered as a drag drop handle for the given Drag Drop object. -
- Parameters: -
  • id : String
    the element id to check
- Returns: -
    -
  • boolean
    true if this element is a DragDrop handle, false otherwise
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

isLegalTarget

- public function isLegalTarget(DragDrop the, DragDrop the) -
- <static> Returns true if the specified dd target is a legal target for -the specifice drag obj -
- Parameters: -
  • the : DragDrop
    drag obj
  • the : DragDrop
    target
- Returns: -
    -
  • boolean
    true if the target is a legal target for the dd obj
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

isLocked

- public function isLocked() -
- <static> Is drag and drop locked? -
- Parameters: -
  • None.
- Returns: -
    -
  • boolean
    True if drag and drop is locked, false otherwise.
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

isTypeOfDD

- public function isTypeOfDD(Object the) -
- <static> My goal is to be able to transparently determine if an object is -typeof DragDrop, and the exact subclass of DragDrop. typeof -returns "object", oDD.constructor.toString() always returns -"DragDrop" and not the name of the subclass. So for now it just -evaluates a well-known variable in DragDrop. -
- Parameters: -
  • the : Object
    object to evaluate
- Returns: -
    -
  • boolean
    true if typeof oDD = DragDrop
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

lock

- public function lock() -
- <static> Lock all drag and drop functionality -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

moveToEl

- public function moveToEl(HTMLElement moveEl, HTMLElement targetEl) -
- <static> Sets the x/y position of an element to the location of the -target element. -
- Parameters: -
  • moveEl : HTMLElement
    The element to move
  • targetEl : HTMLElement
    The position reference element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

numericSort

- public function numericSort() -
- <static> Numeric array sort function -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

refreshCache

- public function refreshCache(Object groups) -
- <static> Refreshes the cache of the top-left and bottom-right points of the -drag and drop objects in the specified group(s). This is in the -format that is stored in the drag and drop instance, so typical -usage is: - -Ext.dd.DragDropMgr.refreshCache(ddinstance.groups); - -Alternatively: - -Ext.dd.DragDropMgr.refreshCache({group1:true, group2:true}); - -@TODO this really should be an indexed array. Alternatively this -method could accept both. -
- Parameters: -
  • groups : Object
    an associative array of groups to refresh
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

regDragDrop

- public function regDragDrop(DragDrop oDD, String sGroup) -
- <static> Each DragDrop instance must be registered with the DragDropMgr. -This is executed in DragDrop.init() -
- Parameters: -
  • oDD : DragDrop
    the DragDrop object to register
  • sGroup : String
    the name of the group this element belongs to
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

regHandle

- public function regHandle(String sDDId, String sHandleId) -
- <static> Each DragDrop handle element must be registered. This is done -automatically when executing DragDrop.setHandleElId() -
- Parameters: -
  • sDDId : String
    the DragDrop id this element is a handle for
  • sHandleId : String
    the id of the element that is the drag handle
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

startDrag

- public function startDrag(x {int}, y {int}) -
- <static> Fired when either the drag pixel threshol or the mousedown hold -time threshold has been met. -
- Parameters: -
  • {int} : x
    the X position of the original mousedown
  • {int} : y
    the Y position of the original mousedown
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

stopEvent

- public function stopEvent(Event e) -
- <static> Utility to stop event propagation and event default, if these -features are turned on. -
- Parameters: -
  • e : Event
    the event as returned by this.getEvent()
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

swapNode

- public function swapNode(n1 the, n2 the) -
- <static> Swap two nodes. In IE, we use the native method, for others we -emulate the IE behavior -
- Parameters: -
  • the : n1
    first node to swap
  • the : n2
    other node to swap
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

unlock

- public function unlock() -
- <static> Unlock all drag and drop functionality -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDropMgr.
-
- -
-

verifyEl

- public function verifyEl(HTMLElement el) -
- <static> This checks to make sure an element exists and is in the DOM. The -main purpose is to handle cases where innerHTML is used to remove -drag and drop objects from the DOM. IE provides an 'unspecified -error' when trying to access the offsetParent of such an element -
- Parameters: -
  • el : HTMLElement
    the element to check
- Returns: -
    -
  • boolean
    true if the element looks usable
  • -
-
-
-
This method is defined by DragDropMgr.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.dd.DragSource.html b/www/extras/extjs/docs/output/Ext.dd.DragSource.html deleted file mode 100644 index e3ed53b05..000000000 --- a/www/extras/extjs/docs/output/Ext.dd.DragSource.html +++ /dev/null @@ -1,2104 +0,0 @@ - - - - Ext.dd.DragSource - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.dd.DragSource

- - - - - - -
Package:Ext.dd
Class:DragSource
Extends:DDProxy
Subclasses:DragZone
Defined In:DragSource.js
-
- A simple class that provides the basic implementation needed to make any element draggable.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 available : booleanDragDrop
The availabe property is false until the linked dom element is accessible.
 centerFrame : booleanDDProxy
By default the frame is positioned exactly where the drag element is, so -we use the cursor offset provided by Ext.dd....
 config : objectDragDrop
Configuration attributes passed into the constructor
 groups : string:DragDrop
The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interact...
 hasOuterHandles : booleanDragDrop
By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in...
 id : StringDragDrop
The id of the element associated with this object. This is what we -refer to as the "linked element" because the size...
 invalidHandleClasses : string[]DragDrop
An indexted array of css class names for elements that will be ignored -if clicked.
 invalidHandleIds : string:DragDrop
An associative array of ids for elements that will be ignored if clicked
 invalidHandleTypes : string:DragDrop
An associative array of HTML tags that will be ignored if clicked.
 maintainOffset : booleanDragDrop
Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its par...
 onStartDrag : ObjectDragSource
An empty function by default, but provided so that you can perform a custom action once the initial -drag event has be...
 primaryButtonOnly : booleanDragDrop
By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed m...
 resizeFrame : booleanDDProxy
By default we resize the drag frame to be the same size as the element -we want to drag (this is to get the frame effe...
 scroll : booleanDD
When set to true, the utility automatically tries to scroll the browser -window wehn a drag and drop element is dragge...
 xTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is ge...
 yTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is gene...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 DragSource(String/HTMLElement/Element el, Object config)DragSource
 addInvalidHandleClass(string cssClass) : voidDragDrop
Lets you specify a css class of elements that will not initiate a drag
 addInvalidHandleId(string id) : voidDragDrop
Lets you to specify an element id for a child of a drag handle -that should not initiate a drag
 addInvalidHandleType(string tagName) : voidDragDrop
Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate...
 addToGroup(sGroup {string}) : voidDragDrop
Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belon...
 afterDragDrop(Ext.dd.DragDrop target, Event e, String id) : voidDragSource
An empty function by default, but provided so that you can perform a custom action -after a valid drag drop has occurr...
 afterDragEnter(Ext.dd.DragDrop target, Event e, String id) : voidDragSource
An empty function by default, but provided so that you can perform a custom action -when the dragged item enters the d...
 afterDragOut(Ext.dd.DragDrop target, Event e, String id) : voidDragSource
An empty function by default, but provided so that you can perform a custom action -after the dragged item is dragged ...
 afterDragOver(Ext.dd.DragDrop target, Event e, String id) : voidDragSource
An empty function by default, but provided so that you can perform a custom action -while the dragged item is over the...
 afterInvalidDrop(Event e, String id) : voidDragSource
An empty function by default, but provided so that you can perform a custom action -after an invalid drop has occurred...
 alignElWithMouse(HTMLElement el, int iPageX, int iPageY) : voidDD
Sets the element to the location of the mousedown or click event, -maintaining the cursor location relative to the loc...
 applyConfig() : voidDragDrop
Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level ...
 autoOffset(int iPageX, int iPageY) : voidDD
Sets the pointer offset to the distance between the linked element's top -left corner and the location the element was...
 beforeDragDrop(Ext.dd.DragDrop target, Event e, String id) : BooleanDragSource
An empty function by default, but provided so that you can perform a custom action before the dragged -item is dropped...
 beforeDragEnter(Ext.dd.DragDrop target, Event e, String id) : BooleanDragSource
An empty function by default, but provided so that you can perform a custom action -before the dragged item enters the...
 beforeDragOut(Ext.dd.DragDrop target, Event e, String id) : BooleanDragSource
An empty function by default, but provided so that you can perform a custom action before the dragged -item is dragged...
 beforeDragOver(Ext.dd.DragDrop target, Event e, String id) : BooleanDragSource
An empty function by default, but provided so that you can perform a custom action -while the dragged item is over the...
 beforeInvalidDrop(Ext.dd.DragDrop target, Event e, String id) : BooleanDragSource
An empty function by default, but provided so that you can perform a custom action after an invalid -drop has occurred.
 cachePosition(iPageX the, iPageY the) : voidDD
Saves the most recent position so that we can reset the constraints and -tick marks on-demand. We need to know this s...
 clearConstraints() : voidDragDrop
Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constrain...
 clearTicks() : voidDragDrop
Clears any tick interval defined for this instance
 createFrame() : voidDDProxy
Creates the proxy element if it does not yet exist
 endDrag(Event e) : voidDragDrop
Fired when we are done dragging the object
 getDragData() : ObjectDragSource
Returns the data object associated with this drag source
 getDragEl() : HTMLElementDragDrop
Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be as...
 getEl() : HTMLElementDragDrop
Returns a reference to the linked element
 getProxy() : Ext.dd.StatusProxyDragSource
Returns the drag source's underlying Ext.dd.StatusProxy
 hideProxy() : voidDragSource
Hides the drag source's Ext.dd.StatusProxy
 init(id the, String sGroup, object config) : voidDragDrop
Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass
 initFrame() : voidDDProxy
Initialization for the drag frame element. Must be called in the -constructor of all subclasses
 initTarget(id the, String sGroup, object config) : voidDragDrop
Initializes Targeting functionality only... the object does not -get a mousedown handler.
 isLocked() : booleanDragDrop
Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on th...
 isTarget() : voidDragDrop
By default, all insances can be a drop target. This can be disabled by -setting isTarget to false.
 isValidHandleChild(HTMLElement node) : booleanDragDrop
Checks the tag exclusion list to see if this click should be ignored
 lock() : voidDragDrop
Lock this instance
 onAvailable() : voidDragDrop
Override the onAvailable method to do what is needed after the initial -position was determined.
 onBeforeDrag(Object data, Event e) : BooleanDragSource
An empty function by default, but provided so that you can perform a custom action before the initial -drag event begi...
 onDrag(Event e) : voidDragDrop
Abstract method called during the onMouseMove event while dragging an -object.
 onDragDrop(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this item is dropped on another DragDrop -obj
 onDragEnter(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element fist begins hovering over -another DragDrop obj
 onDragOut(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when we are no longer hovering over an element
 onDragOver(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element is hovering over another -DragDrop obj
 onInvalidDrop(Event e) : voidDragDrop
Abstract method called when this item is dropped on an area with no -drop target
 onMouseDown(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mousedown
 onMouseUp(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mouseup
 padding() : voidDragDrop
The padding configured for this drag and drop object for calculating -the drop zone intersection with this object.
 removeFromGroup(string sGroup) : voidDragDrop
Remove's this instance from the supplied interaction group
 removeInvalidHandleClass(string cssClass) : voidDragDrop
Unsets an invalid css class
 removeInvalidHandleId(string id) : voidDragDrop
Unsets an invalid handle id
 removeInvalidHandleType(string tagName) : voidDragDrop
Unsets an excluded tag name set by addInvalidHandleType
 resetConstraints(boolean maintainOffset) : voidDragDrop
resetConstraints must be called if you manually reposition a dd element.
 setDelta(int iDeltaX, int iDeltaY) : voidDD
Sets the pointer offset. You can call this directly to force the -offset to be in a particular location (e.g., pass i...
 setDragElId(id {string}) : voidDragDrop
Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag
 setDragElPos(int iPageX, int iPageY) : voidDD
Sets the drag element to the location of the mousedown or click event, -maintaining the cursor location relative to th...
 setHandleElId(id {string}) : voidDragDrop
Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example o...
 setInitialPosition(int diffX, int diffY) : voidDragDrop
Stores the initial placement of the linked element.
 setOuterHandleElId(id the) : voidDragDrop
Allows you to set an element outside of the linked element as a drag -handle
 setPadding(int iTop, int iRight, int iBot, int iLeft) : voidDragDrop
Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targe...
 setXConstraint(int iLeft, int iRight, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of th...
 setYConstraint(int iUp, int iDown, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element...
 startDrag(int X, int Y) : voidDragDrop
Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met.
 toString() : stringDragDrop
toString method
 unlock() : voidDragDrop
Unlock this instace
 unreg() : voidDragDrop
Remove all drag and drop hooks for this element
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 dropAllowed : StringDragSource
The CSS class returned to the drag source when drop is allowed (defaults to "x-dd-drop-ok").
 dropNotAllowed : StringDragSource
The CSS class returned to the drag source when drop is not allowed (defaults to "x-dd-drop-nodrop").
-

Property Details

-
- -
-

available

- public boolean available -
- The availabe property is false until the linked dom element is accessible.
-
This property is defined by DragDrop.
-
- -
-

centerFrame

- public boolean centerFrame -
- By default the frame is positioned exactly where the drag element is, so -we use the cursor offset provided by Ext.dd.DD. Another option that works only if -you do not have constraints on the obj is to have the drag frame centered -around the cursor. Set centerFrame to true for this effect.
-
This property is defined by DDProxy.
-
- -
-

config

- public object config -
- Configuration attributes passed into the constructor
-
This property is defined by DragDrop.
-
- -
-

groups

- public string: groups -
- The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interacting with other -DragDrop object in the same group. This lets us define multiple -groups using a single DragDrop subclass if we want.
-
This property is defined by DragDrop.
-
- -
-

hasOuterHandles

- public boolean hasOuterHandles -
- By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in part to work around a -bug in some browsers that mis-report the mousedown if the previous -mouseup happened outside of the window. This property is set to true -if outer handles are defined.
-
This property is defined by DragDrop.
-
- -
-

id

- public String id -
- The id of the element associated with this object. This is what we -refer to as the "linked element" because the size and position of -this element is used to determine when the drag and drop objects have -interacted.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleClasses

- public string[] invalidHandleClasses -
- An indexted array of css class names for elements that will be ignored -if clicked.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleIds

- public string: invalidHandleIds -
- An associative array of ids for elements that will be ignored if clicked
-
This property is defined by DragDrop.
-
- -
-

invalidHandleTypes

- public string: invalidHandleTypes -
- An associative array of HTML tags that will be ignored if clicked.
-
This property is defined by DragDrop.
-
- -
-

maintainOffset

- public boolean maintainOffset -
- Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its parent to stay the same -when the page changes
-
This property is defined by DragDrop.
-
- -
-

onStartDrag

- public Object onStartDrag -
- An empty function by default, but provided so that you can perform a custom action once the initial -drag event has begun. The drag cannot be canceled from this function.
-
This property is defined by DragSource.
-
- -
-

primaryButtonOnly

- public boolean primaryButtonOnly -
- By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed mouse). Set to true to -allow drag and drop to start with any mouse click that is propogated -by the browser
-
This property is defined by DragDrop.
-
- -
-

resizeFrame

- public boolean resizeFrame -
- By default we resize the drag frame to be the same size as the element -we want to drag (this is to get the frame effect). We can turn it off -if we want a different behavior.
-
This property is defined by DDProxy.
-
- -
-

scroll

- public boolean scroll -
- When set to true, the utility automatically tries to scroll the browser -window wehn a drag and drop element is dragged near the viewport boundary. -Defaults to true.
-
This property is defined by DD.
-
- -
-

xTicks

- public int[] xTicks -
- Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
- -
-

yTicks

- public int[] yTicks -
- Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
-
- - -

Constructor Details

-
-
-

DragSource

- public function DragSource(String/HTMLElement/Element el, Object config) -
-
- Parameters: -
  • el : String/HTMLElement/Element
    The container element
  • config : Object
-
-
-
-
- -

Method Details

-
- -
-

addInvalidHandleClass

- public function addInvalidHandleClass(string cssClass) -
- Lets you specify a css class of elements that will not initiate a drag -
- Parameters: -
  • cssClass : string
    the class of the elements you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleId

- public function addInvalidHandleId(string id) -
- Lets you to specify an element id for a child of a drag handle -that should not initiate a drag -
- Parameters: -
  • id : string
    the element id of the element you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleType

- public function addInvalidHandleType(string tagName) -
- Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate embedding links within a -drag handle that do something other than start the drag. -
- Parameters: -
  • tagName : string
    the type of element to exclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addToGroup

- public function addToGroup(sGroup {string}) -
- Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belong to as many -groups as needed. -
- Parameters: -
  • {string} : sGroup
    the name of the group
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

afterDragDrop

- public function afterDragDrop(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action -after a valid drag drop has occurred by providing an implementation. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dropped element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

afterDragEnter

- public function afterDragEnter(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action -when the dragged item enters the drop target by providing an implementation. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

afterDragOut

- public function afterDragOut(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action -after the dragged item is dragged out of the target without dropping. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

afterDragOver

- public function afterDragOver(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action -while the dragged item is over the drop target by providing an implementation. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

afterInvalidDrop

- public function afterInvalidDrop(Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action -after an invalid drop has occurred by providing an implementation. -
- Parameters: -
  • e : Event
    The event object
  • id : String
    The id of the dropped element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

alignElWithMouse

- public function alignElWithMouse(HTMLElement el, int iPageX, int iPageY) -
- Sets the element to the location of the mousedown or click event, -maintaining the cursor location relative to the location on the element -that was clicked. Override this if you want to place the element in a -location other than where the cursor is. -
- Parameters: -
  • el : HTMLElement
    the element to move
  • iPageX : int
    the X coordinate of the mousedown or drag event
  • iPageY : int
    the Y coordinate of the mousedown or drag event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

applyConfig

- public function applyConfig() -
- Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level through the inheritance chain. So -a DDProxy implentation will execute apply config on DDProxy, DD, and -DragDrop in order to get all of the parameters that are available in -each object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

autoOffset

- public function autoOffset(int iPageX, int iPageY) -
- Sets the pointer offset to the distance between the linked element's top -left corner and the location the element was clicked -
- Parameters: -
  • iPageX : int
    the X coordinate of the click
  • iPageY : int
    the Y coordinate of the click
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

beforeDragDrop

- public function beforeDragDrop(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action before the dragged -item is dropped onto the target and optionally cancel the onDragDrop. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • Boolean
    isValid True if the drag drop event is valid, else false to cancel
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

beforeDragEnter

- public function beforeDragEnter(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action -before the dragged item enters the drop target and optionally cancel the onDragEnter. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • Boolean
    isValid True if the drag event is valid, else false to cancel
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

beforeDragOut

- public function beforeDragOut(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action before the dragged -item is dragged out of the target without dropping, and optionally cancel the onDragOut. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • Boolean
    isValid True if the drag event is valid, else false to cancel
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

beforeDragOver

- public function beforeDragOver(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action -while the dragged item is over the drop target and optionally cancel the onDragOver. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • Boolean
    isValid True if the drag event is valid, else false to cancel
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

beforeInvalidDrop

- public function beforeInvalidDrop(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action after an invalid -drop has occurred. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • Boolean
    isValid True if the invalid drop should proceed, else false to cancel
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

cachePosition

- public function cachePosition(iPageX the, iPageY the) -
- Saves the most recent position so that we can reset the constraints and -tick marks on-demand. We need to know this so that we can calculate the -number of pixels the element is offset from its original position. -
- Parameters: -
  • the : iPageX
    current x position (optional, this just makes it so we don't have to look it up again)
  • the : iPageY
    current y position (optional, this just makes it so we don't have to look it up again)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

clearConstraints

- public function clearConstraints() -
- Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constraint at this time. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

clearTicks

- public function clearTicks() -
- Clears any tick interval defined for this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

createFrame

- public function createFrame() -
- Creates the proxy element if it does not yet exist -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DDProxy.
-
- -
-

endDrag

- public function endDrag(Event e) -
- Fired when we are done dragging the object -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getDragData

- public function getDragData() -
- Returns the data object associated with this drag source -
- Parameters: -
  • None.
- Returns: -
    -
  • Object
    data An object containing arbitrary data
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

getDragEl

- public function getDragEl() -
- Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be assigned to another -element. An example of this can be found in Ext.dd.DDProxy -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getEl

- public function getEl() -
- Returns a reference to the linked element -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getProxy

- public function getProxy() -
- Returns the drag source's underlying Ext.dd.StatusProxy -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.dd.StatusProxy
    proxy The StatusProxy
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

hideProxy

- public function hideProxy() -
- Hides the drag source's Ext.dd.StatusProxy -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

init

- public function init(id the, String sGroup, object config) -
- Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

initFrame

- public function initFrame() -
- Initialization for the drag frame element. Must be called in the -constructor of all subclasses -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DDProxy.
-
- -
-

initTarget

- public function initTarget(id the, String sGroup, object config) -
- Initializes Targeting functionality only... the object does not -get a mousedown handler. -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isLocked

- public function isLocked() -
- Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on the page.) -
- Parameters: -
  • None.
- Returns: -
    -
  • boolean
    true if this obj or all drag/drop is locked, else false
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isTarget

- public function isTarget() -
- By default, all insances can be a drop target. This can be disabled by -setting isTarget to false. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isValidHandleChild

- public function isValidHandleChild(HTMLElement node) -
- Checks the tag exclusion list to see if this click should be ignored -
- Parameters: -
  • node : HTMLElement
    the HTMLElement to evaluate
- Returns: -
    -
  • boolean
    true if this is a valid tag type, false if not
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

lock

- public function lock() -
- Lock this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onAvailable

- public function onAvailable() -
- Override the onAvailable method to do what is needed after the initial -position was determined. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onBeforeDrag

- public function onBeforeDrag(Object data, Event e) -
- An empty function by default, but provided so that you can perform a custom action before the initial -drag event begins and optionally cancel it. -
- Parameters: -
  • data : Object
    An object containing arbitrary data to be shared with drop targets
  • e : Event
    The event object
- Returns: -
    -
  • Boolean
    isValid True if the drag event is valid, else false to cancel
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

onDrag

- public function onDrag(Event e) -
- Abstract method called during the onMouseMove event while dragging an -object. -
- Parameters: -
  • e : Event
    the mousemove event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragDrop

- public function onDragDrop(Event e, String|DragDrop[] id) -
- Abstract method called when this item is dropped on another DragDrop -obj -
- Parameters: -
  • e : Event
    the mouseup event
  • id : String|DragDrop[]
    In POINT mode, the element id this was dropped on. In INTERSECT mode, an array of dd items this was dropped on.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragEnter

- public function onDragEnter(Event e, String|DragDrop[] id) -
- Abstract method called when this element fist begins hovering over -another DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of one or more dragdrop items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOut

- public function onDragOut(Event e, String|DragDrop[] id) -
- Abstract method called when we are no longer hovering over an element -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this was hovering over. In INTERSECT mode, an array of dd items that the mouse is no longer over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOver

- public function onDragOver(Event e, String|DragDrop[] id) -
- Abstract method called when this element is hovering over another -DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of dd items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onInvalidDrop

- public function onInvalidDrop(Event e) -
- Abstract method called when this item is dropped on an area with no -drop target -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseDown

- public function onMouseDown(Event e) -
- Event handler that fires when a drag/drop obj gets a mousedown -
- Parameters: -
  • e : Event
    the mousedown event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseUp

- public function onMouseUp(Event e) -
- Event handler that fires when a drag/drop obj gets a mouseup -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

padding

- public function padding() -
- The padding configured for this drag and drop object for calculating -the drop zone intersection with this object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeFromGroup

- public function removeFromGroup(string sGroup) -
- Remove's this instance from the supplied interaction group -
- Parameters: -
  • sGroup : string
    The group to drop
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleClass

- public function removeInvalidHandleClass(string cssClass) -
- Unsets an invalid css class -
- Parameters: -
  • cssClass : string
    the class of the element(s) you wish to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleId

- public function removeInvalidHandleId(string id) -
- Unsets an invalid handle id -
- Parameters: -
  • id : string
    the id of the element to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleType

- public function removeInvalidHandleType(string tagName) -
- Unsets an excluded tag name set by addInvalidHandleType -
- Parameters: -
  • tagName : string
    the type of element to unexclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

resetConstraints

- public function resetConstraints(boolean maintainOffset) -
- resetConstraints must be called if you manually reposition a dd element. -
- Parameters: -
  • maintainOffset : boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setDelta

- public function setDelta(int iDeltaX, int iDeltaY) -
- Sets the pointer offset. You can call this directly to force the -offset to be in a particular location (e.g., pass in 0,0 to set it -to the center of the object) -
- Parameters: -
  • iDeltaX : int
    the distance from the left
  • iDeltaY : int
    the distance from the top
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

setDragElId

- public function setDragElId(id {string}) -
- Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setDragElPos

- public function setDragElPos(int iPageX, int iPageY) -
- Sets the drag element to the location of the mousedown or click event, -maintaining the cursor location relative to the location on the element -that was clicked. Override this if you want to place the element in a -location other than where the cursor is. -
- Parameters: -
  • iPageX : int
    the X coordinate of the mousedown or drag event
  • iPageY : int
    the Y coordinate of the mousedown or drag event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

setHandleElId

- public function setHandleElId(id {string}) -
- Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example of this would be if -you have a content div with text and links. Clicking anywhere in the -content area would normally start the drag operation. Use this method -to specify that an element inside of the content div is the element -that starts the drag operation. -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setInitialPosition

- public function setInitialPosition(int diffX, int diffY) -
- Stores the initial placement of the linked element. -
- Parameters: -
  • diffX : int
    the X offset, default 0
  • diffY : int
    the Y offset, default 0
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setOuterHandleElId

- public function setOuterHandleElId(id the) -
- Allows you to set an element outside of the linked element as a drag -handle -
- Parameters: -
  • the : id
    id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setPadding

- public function setPadding(int iTop, int iRight, int iBot, int iLeft) -
- Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targeting calculations. -Supports css-style shorthand; if only one parameter is passed, all sides -will have that padding, and if only two are passed, the top and bottom -will have the first param, the left and right the second. -
- Parameters: -
  • iTop : int
    Top pad
  • iRight : int
    Right pad
  • iBot : int
    Bot pad
  • iLeft : int
    Left pad
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setXConstraint

- public function setXConstraint(int iLeft, int iRight, int iTickSize) -
- By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of the element. Pass in -0,0 for the parameters if you want to lock the drag to the y axis. -
- Parameters: -
  • iLeft : int
    the number of pixels the element can move to the left
  • iRight : int
    the number of pixels the element can move to the right
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setYConstraint

- public function setYConstraint(int iUp, int iDown, int iTickSize) -
- By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element. Pass in 0,0 for the -parameters if you want to lock the drag to the x axis. -
- Parameters: -
  • iUp : int
    the number of pixels the element can move up
  • iDown : int
    the number of pixels the element can move down
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

startDrag

- public function startDrag(int X, int Y) -
- Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met. -
- Parameters: -
  • X : int
    click location
  • Y : int
    click location
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

toString

- public function toString() -
- toString method -
- Parameters: -
  • None.
- Returns: -
    -
  • string
    string representation of the dd obj
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unlock

- public function unlock() -
- Unlock this instace -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unreg

- public function unreg() -
- Remove all drag and drop hooks for this element -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
-
- -

Config Details

-
- -
-

dropAllowed

- dropAllowed : String -
- The CSS class returned to the drag source when drop is allowed (defaults to "x-dd-drop-ok").
-
This config option is defined by DragSource.
-
- -
-

dropNotAllowed

- dropNotAllowed : String -
- The CSS class returned to the drag source when drop is not allowed (defaults to "x-dd-drop-nodrop").
-
This config option is defined by DragSource.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.dd.DragZone.html b/www/extras/extjs/docs/output/Ext.dd.DragZone.html deleted file mode 100644 index 392c2a272..000000000 --- a/www/extras/extjs/docs/output/Ext.dd.DragZone.html +++ /dev/null @@ -1,2221 +0,0 @@ - - - - Ext.dd.DragZone - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.dd.DragZone

- - - - - -
Package:Ext.dd
Class:DragZone
Extends:DragSource
Defined In:DragZone.js
-
- This class provides a container DD instance that proxies for multiple child node sources.
-By default, this class requires that draggable child nodes are registered with Ext.dd.Registry.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 available : booleanDragDrop
The availabe property is false until the linked dom element is accessible.
 centerFrame : booleanDDProxy
By default the frame is positioned exactly where the drag element is, so -we use the cursor offset provided by Ext.dd....
 config : objectDragDrop
Configuration attributes passed into the constructor
 groups : string:DragDrop
The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interact...
 hasOuterHandles : booleanDragDrop
By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in...
 id : StringDragDrop
The id of the element associated with this object. This is what we -refer to as the "linked element" because the size...
 invalidHandleClasses : string[]DragDrop
An indexted array of css class names for elements that will be ignored -if clicked.
 invalidHandleIds : string:DragDrop
An associative array of ids for elements that will be ignored if clicked
 invalidHandleTypes : string:DragDrop
An associative array of HTML tags that will be ignored if clicked.
 maintainOffset : booleanDragDrop
Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its par...
 onStartDrag : ObjectDragSource
An empty function by default, but provided so that you can perform a custom action once the initial -drag event has be...
 primaryButtonOnly : booleanDragDrop
By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed m...
 resizeFrame : booleanDDProxy
By default we resize the drag frame to be the same size as the element -we want to drag (this is to get the frame effe...
 scroll : booleanDD
When set to true, the utility automatically tries to scroll the browser -window wehn a drag and drop element is dragge...
 xTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is ge...
 yTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is gene...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 DragZone(String/HTMLElement/Element el, Object config)DragZone
 addInvalidHandleClass(string cssClass) : voidDragDrop
Lets you specify a css class of elements that will not initiate a drag
 addInvalidHandleId(string id) : voidDragDrop
Lets you to specify an element id for a child of a drag handle -that should not initiate a drag
 addInvalidHandleType(string tagName) : voidDragDrop
Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate...
 addToGroup(sGroup {string}) : voidDragDrop
Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belon...
 afterDragDrop(Ext.dd.DragDrop target, Event e, String id) : voidDragSource
An empty function by default, but provided so that you can perform a custom action -after a valid drag drop has occurr...
 afterDragEnter(Ext.dd.DragDrop target, Event e, String id) : voidDragSource
An empty function by default, but provided so that you can perform a custom action -when the dragged item enters the d...
 afterDragOut(Ext.dd.DragDrop target, Event e, String id) : voidDragSource
An empty function by default, but provided so that you can perform a custom action -after the dragged item is dragged ...
 afterDragOver(Ext.dd.DragDrop target, Event e, String id) : voidDragSource
An empty function by default, but provided so that you can perform a custom action -while the dragged item is over the...
 afterInvalidDrop(Event e, String id) : voidDragSource
An empty function by default, but provided so that you can perform a custom action -after an invalid drop has occurred...
 afterRepair() : voidDragZone
Called after a repair of an invalid drop. By default, highlights this.dragData.ddel
 alignElWithMouse(HTMLElement el, int iPageX, int iPageY) : voidDD
Sets the element to the location of the mousedown or click event, -maintaining the cursor location relative to the loc...
 applyConfig() : voidDragDrop
Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level ...
 autoOffset(int iPageX, int iPageY) : voidDD
Sets the pointer offset to the distance between the linked element's top -left corner and the location the element was...
 beforeDragDrop(Ext.dd.DragDrop target, Event e, String id) : BooleanDragSource
An empty function by default, but provided so that you can perform a custom action before the dragged -item is dropped...
 beforeDragEnter(Ext.dd.DragDrop target, Event e, String id) : BooleanDragSource
An empty function by default, but provided so that you can perform a custom action -before the dragged item enters the...
 beforeDragOut(Ext.dd.DragDrop target, Event e, String id) : BooleanDragSource
An empty function by default, but provided so that you can perform a custom action before the dragged -item is dragged...
 beforeDragOver(Ext.dd.DragDrop target, Event e, String id) : BooleanDragSource
An empty function by default, but provided so that you can perform a custom action -while the dragged item is over the...
 beforeInvalidDrop(Ext.dd.DragDrop target, Event e, String id) : BooleanDragSource
An empty function by default, but provided so that you can perform a custom action after an invalid -drop has occurred.
 cachePosition(iPageX the, iPageY the) : voidDD
Saves the most recent position so that we can reset the constraints and -tick marks on-demand. We need to know this s...
 clearConstraints() : voidDragDrop
Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constrain...
 clearTicks() : voidDragDrop
Clears any tick interval defined for this instance
 createFrame() : voidDDProxy
Creates the proxy element if it does not yet exist
 endDrag(Event e) : voidDragDrop
Fired when we are done dragging the object
 getDragData(EventObject e) : ObjectDragZone
* -Called when a mousedown occurs in this container. Looks in Ext.dd.Registry -for a valid target to drag based on the ...
 getDragEl() : HTMLElementDragDrop
Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be as...
 getEl() : HTMLElementDragDrop
Returns a reference to the linked element
 getProxy() : Ext.dd.StatusProxyDragSource
Returns the drag source's underlying Ext.dd.StatusProxy
 getRepairXY(EventObject e) : ArrayDragZone
Called before a repair of an invalid drop to get the XY to animate to. By default returns -the XY of this.dragData.ddel
 hideProxy() : voidDragSource
Hides the drag source's Ext.dd.StatusProxy
 init(id the, String sGroup, object config) : voidDragDrop
Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass
 initFrame() : voidDDProxy
Initialization for the drag frame element. Must be called in the -constructor of all subclasses
 initTarget(id the, String sGroup, object config) : voidDragDrop
Initializes Targeting functionality only... the object does not -get a mousedown handler.
 isLocked() : booleanDragDrop
Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on th...
 isTarget() : voidDragDrop
By default, all insances can be a drop target. This can be disabled by -setting isTarget to false.
 isValidHandleChild(HTMLElement node) : booleanDragDrop
Checks the tag exclusion list to see if this click should be ignored
 lock() : voidDragDrop
Lock this instance
 onAvailable() : voidDragDrop
Override the onAvailable method to do what is needed after the initial -position was determined.
 onBeforeDrag(Object data, Event e) : BooleanDragSource
An empty function by default, but provided so that you can perform a custom action before the initial -drag event begi...
 onDrag(Event e) : voidDragDrop
Abstract method called during the onMouseMove event while dragging an -object.
 onDragDrop(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this item is dropped on another DragDrop -obj
 onDragEnter(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element fist begins hovering over -another DragDrop obj
 onDragOut(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when we are no longer hovering over an element
 onDragOver(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element is hovering over another -DragDrop obj
 onInitDrag(Number x, Number y) : BooleanDragZone
Called once drag threshold has been reached to initialize the proxy element. By default, it clones the -this.dragData....
 onInvalidDrop(Event e) : voidDragDrop
Abstract method called when this item is dropped on an area with no -drop target
 onMouseDown(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mousedown
 onMouseUp(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mouseup
 padding() : voidDragDrop
The padding configured for this drag and drop object for calculating -the drop zone intersection with this object.
 removeFromGroup(string sGroup) : voidDragDrop
Remove's this instance from the supplied interaction group
 removeInvalidHandleClass(string cssClass) : voidDragDrop
Unsets an invalid css class
 removeInvalidHandleId(string id) : voidDragDrop
Unsets an invalid handle id
 removeInvalidHandleType(string tagName) : voidDragDrop
Unsets an excluded tag name set by addInvalidHandleType
 resetConstraints(boolean maintainOffset) : voidDragDrop
resetConstraints must be called if you manually reposition a dd element.
 setDelta(int iDeltaX, int iDeltaY) : voidDD
Sets the pointer offset. You can call this directly to force the -offset to be in a particular location (e.g., pass i...
 setDragElId(id {string}) : voidDragDrop
Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag
 setDragElPos(int iPageX, int iPageY) : voidDD
Sets the drag element to the location of the mousedown or click event, -maintaining the cursor location relative to th...
 setHandleElId(id {string}) : voidDragDrop
Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example o...
 setInitialPosition(int diffX, int diffY) : voidDragDrop
Stores the initial placement of the linked element.
 setOuterHandleElId(id the) : voidDragDrop
Allows you to set an element outside of the linked element as a drag -handle
 setPadding(int iTop, int iRight, int iBot, int iLeft) : voidDragDrop
Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targe...
 setXConstraint(int iLeft, int iRight, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of th...
 setYConstraint(int iUp, int iDown, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element...
 startDrag(int X, int Y) : voidDragDrop
Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met.
 toString() : stringDragDrop
toString method
 unlock() : voidDragDrop
Unlock this instace
 unreg() : voidDragDrop
Remove all drag and drop hooks for this element
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 containerScroll : BooleanDragZone
True to register this container with the Scrollmanager for auto scrolling during drag operations.
 dropAllowed : StringDragSource
The CSS class returned to the drag source when drop is allowed (defaults to "x-dd-drop-ok").
 dropNotAllowed : StringDragSource
The CSS class returned to the drag source when drop is not allowed (defaults to "x-dd-drop-nodrop").
 hlColor : StringDragZone
The color to use when visually highlighting the drag source in the afterRepair method after a failed drop (defaults t...
-

Property Details

-
- -
-

available

- public boolean available -
- The availabe property is false until the linked dom element is accessible.
-
This property is defined by DragDrop.
-
- -
-

centerFrame

- public boolean centerFrame -
- By default the frame is positioned exactly where the drag element is, so -we use the cursor offset provided by Ext.dd.DD. Another option that works only if -you do not have constraints on the obj is to have the drag frame centered -around the cursor. Set centerFrame to true for this effect.
-
This property is defined by DDProxy.
-
- -
-

config

- public object config -
- Configuration attributes passed into the constructor
-
This property is defined by DragDrop.
-
- -
-

groups

- public string: groups -
- The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interacting with other -DragDrop object in the same group. This lets us define multiple -groups using a single DragDrop subclass if we want.
-
This property is defined by DragDrop.
-
- -
-

hasOuterHandles

- public boolean hasOuterHandles -
- By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in part to work around a -bug in some browsers that mis-report the mousedown if the previous -mouseup happened outside of the window. This property is set to true -if outer handles are defined.
-
This property is defined by DragDrop.
-
- -
-

id

- public String id -
- The id of the element associated with this object. This is what we -refer to as the "linked element" because the size and position of -this element is used to determine when the drag and drop objects have -interacted.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleClasses

- public string[] invalidHandleClasses -
- An indexted array of css class names for elements that will be ignored -if clicked.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleIds

- public string: invalidHandleIds -
- An associative array of ids for elements that will be ignored if clicked
-
This property is defined by DragDrop.
-
- -
-

invalidHandleTypes

- public string: invalidHandleTypes -
- An associative array of HTML tags that will be ignored if clicked.
-
This property is defined by DragDrop.
-
- -
-

maintainOffset

- public boolean maintainOffset -
- Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its parent to stay the same -when the page changes
-
This property is defined by DragDrop.
-
- -
-

onStartDrag

- public Object onStartDrag -
- An empty function by default, but provided so that you can perform a custom action once the initial -drag event has begun. The drag cannot be canceled from this function.
-
This property is defined by DragSource.
-
- -
-

primaryButtonOnly

- public boolean primaryButtonOnly -
- By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed mouse). Set to true to -allow drag and drop to start with any mouse click that is propogated -by the browser
-
This property is defined by DragDrop.
-
- -
-

resizeFrame

- public boolean resizeFrame -
- By default we resize the drag frame to be the same size as the element -we want to drag (this is to get the frame effect). We can turn it off -if we want a different behavior.
-
This property is defined by DDProxy.
-
- -
-

scroll

- public boolean scroll -
- When set to true, the utility automatically tries to scroll the browser -window wehn a drag and drop element is dragged near the viewport boundary. -Defaults to true.
-
This property is defined by DD.
-
- -
-

xTicks

- public int[] xTicks -
- Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
- -
-

yTicks

- public int[] yTicks -
- Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
-
- - -

Constructor Details

-
-
-

DragZone

- public function DragZone(String/HTMLElement/Element el, Object config) -
-
- Parameters: -
  • el : String/HTMLElement/Element
    The container element
  • config : Object
-
-
-
-
- -

Method Details

-
- -
-

addInvalidHandleClass

- public function addInvalidHandleClass(string cssClass) -
- Lets you specify a css class of elements that will not initiate a drag -
- Parameters: -
  • cssClass : string
    the class of the elements you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleId

- public function addInvalidHandleId(string id) -
- Lets you to specify an element id for a child of a drag handle -that should not initiate a drag -
- Parameters: -
  • id : string
    the element id of the element you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleType

- public function addInvalidHandleType(string tagName) -
- Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate embedding links within a -drag handle that do something other than start the drag. -
- Parameters: -
  • tagName : string
    the type of element to exclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addToGroup

- public function addToGroup(sGroup {string}) -
- Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belong to as many -groups as needed. -
- Parameters: -
  • {string} : sGroup
    the name of the group
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

afterDragDrop

- public function afterDragDrop(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action -after a valid drag drop has occurred by providing an implementation. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dropped element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

afterDragEnter

- public function afterDragEnter(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action -when the dragged item enters the drop target by providing an implementation. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

afterDragOut

- public function afterDragOut(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action -after the dragged item is dragged out of the target without dropping. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

afterDragOver

- public function afterDragOver(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action -while the dragged item is over the drop target by providing an implementation. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

afterInvalidDrop

- public function afterInvalidDrop(Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action -after an invalid drop has occurred by providing an implementation. -
- Parameters: -
  • e : Event
    The event object
  • id : String
    The id of the dropped element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

afterRepair

- public function afterRepair() -
- Called after a repair of an invalid drop. By default, highlights this.dragData.ddel -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragZone.
-
- -
-

alignElWithMouse

- public function alignElWithMouse(HTMLElement el, int iPageX, int iPageY) -
- Sets the element to the location of the mousedown or click event, -maintaining the cursor location relative to the location on the element -that was clicked. Override this if you want to place the element in a -location other than where the cursor is. -
- Parameters: -
  • el : HTMLElement
    the element to move
  • iPageX : int
    the X coordinate of the mousedown or drag event
  • iPageY : int
    the Y coordinate of the mousedown or drag event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

applyConfig

- public function applyConfig() -
- Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level through the inheritance chain. So -a DDProxy implentation will execute apply config on DDProxy, DD, and -DragDrop in order to get all of the parameters that are available in -each object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

autoOffset

- public function autoOffset(int iPageX, int iPageY) -
- Sets the pointer offset to the distance between the linked element's top -left corner and the location the element was clicked -
- Parameters: -
  • iPageX : int
    the X coordinate of the click
  • iPageY : int
    the Y coordinate of the click
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

beforeDragDrop

- public function beforeDragDrop(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action before the dragged -item is dropped onto the target and optionally cancel the onDragDrop. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • Boolean
    isValid True if the drag drop event is valid, else false to cancel
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

beforeDragEnter

- public function beforeDragEnter(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action -before the dragged item enters the drop target and optionally cancel the onDragEnter. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • Boolean
    isValid True if the drag event is valid, else false to cancel
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

beforeDragOut

- public function beforeDragOut(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action before the dragged -item is dragged out of the target without dropping, and optionally cancel the onDragOut. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • Boolean
    isValid True if the drag event is valid, else false to cancel
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

beforeDragOver

- public function beforeDragOver(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action -while the dragged item is over the drop target and optionally cancel the onDragOver. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • Boolean
    isValid True if the drag event is valid, else false to cancel
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

beforeInvalidDrop

- public function beforeInvalidDrop(Ext.dd.DragDrop target, Event e, String id) -
- An empty function by default, but provided so that you can perform a custom action after an invalid -drop has occurred. -
- Parameters: -
  • target : Ext.dd.DragDrop
    The drop target
  • e : Event
    The event object
  • id : String
    The id of the dragged element
- Returns: -
    -
  • Boolean
    isValid True if the invalid drop should proceed, else false to cancel
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

cachePosition

- public function cachePosition(iPageX the, iPageY the) -
- Saves the most recent position so that we can reset the constraints and -tick marks on-demand. We need to know this so that we can calculate the -number of pixels the element is offset from its original position. -
- Parameters: -
  • the : iPageX
    current x position (optional, this just makes it so we don't have to look it up again)
  • the : iPageY
    current y position (optional, this just makes it so we don't have to look it up again)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

clearConstraints

- public function clearConstraints() -
- Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constraint at this time. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

clearTicks

- public function clearTicks() -
- Clears any tick interval defined for this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

createFrame

- public function createFrame() -
- Creates the proxy element if it does not yet exist -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DDProxy.
-
- -
-

endDrag

- public function endDrag(Event e) -
- Fired when we are done dragging the object -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getDragData

- public function getDragData(EventObject e) -
- * -Called when a mousedown occurs in this container. Looks in Ext.dd.Registry -for a valid target to drag based on the mouse down. Override this method -to provide your own lookup logic (e.g. finding a child by class name). Make sure your returned -object has a "ddel" attribute (with an HTML Element) for other functions to work. -
- Parameters: -
  • e : EventObject
    The mouse down event
- Returns: -
    -
  • Object
    The dragData
  • -
-
-
-
This method is defined by DragZone.
-
- -
-

getDragEl

- public function getDragEl() -
- Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be assigned to another -element. An example of this can be found in Ext.dd.DDProxy -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getEl

- public function getEl() -
- Returns a reference to the linked element -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getProxy

- public function getProxy() -
- Returns the drag source's underlying Ext.dd.StatusProxy -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.dd.StatusProxy
    proxy The StatusProxy
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

getRepairXY

- public function getRepairXY(EventObject e) -
- Called before a repair of an invalid drop to get the XY to animate to. By default returns -the XY of this.dragData.ddel -
- Parameters: -
  • e : EventObject
    The mouse up event
- Returns: -
    -
  • Array
    The xy location (e.g. [100, 200])
  • -
-
-
-
This method is defined by DragZone.
-
- -
-

hideProxy

- public function hideProxy() -
- Hides the drag source's Ext.dd.StatusProxy -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

init

- public function init(id the, String sGroup, object config) -
- Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

initFrame

- public function initFrame() -
- Initialization for the drag frame element. Must be called in the -constructor of all subclasses -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DDProxy.
-
- -
-

initTarget

- public function initTarget(id the, String sGroup, object config) -
- Initializes Targeting functionality only... the object does not -get a mousedown handler. -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isLocked

- public function isLocked() -
- Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on the page.) -
- Parameters: -
  • None.
- Returns: -
    -
  • boolean
    true if this obj or all drag/drop is locked, else false
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isTarget

- public function isTarget() -
- By default, all insances can be a drop target. This can be disabled by -setting isTarget to false. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isValidHandleChild

- public function isValidHandleChild(HTMLElement node) -
- Checks the tag exclusion list to see if this click should be ignored -
- Parameters: -
  • node : HTMLElement
    the HTMLElement to evaluate
- Returns: -
    -
  • boolean
    true if this is a valid tag type, false if not
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

lock

- public function lock() -
- Lock this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onAvailable

- public function onAvailable() -
- Override the onAvailable method to do what is needed after the initial -position was determined. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onBeforeDrag

- public function onBeforeDrag(Object data, Event e) -
- An empty function by default, but provided so that you can perform a custom action before the initial -drag event begins and optionally cancel it. -
- Parameters: -
  • data : Object
    An object containing arbitrary data to be shared with drop targets
  • e : Event
    The event object
- Returns: -
    -
  • Boolean
    isValid True if the drag event is valid, else false to cancel
  • -
-
-
-
This method is defined by DragSource.
-
- -
-

onDrag

- public function onDrag(Event e) -
- Abstract method called during the onMouseMove event while dragging an -object. -
- Parameters: -
  • e : Event
    the mousemove event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragDrop

- public function onDragDrop(Event e, String|DragDrop[] id) -
- Abstract method called when this item is dropped on another DragDrop -obj -
- Parameters: -
  • e : Event
    the mouseup event
  • id : String|DragDrop[]
    In POINT mode, the element id this was dropped on. In INTERSECT mode, an array of dd items this was dropped on.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragEnter

- public function onDragEnter(Event e, String|DragDrop[] id) -
- Abstract method called when this element fist begins hovering over -another DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of one or more dragdrop items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOut

- public function onDragOut(Event e, String|DragDrop[] id) -
- Abstract method called when we are no longer hovering over an element -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this was hovering over. In INTERSECT mode, an array of dd items that the mouse is no longer over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOver

- public function onDragOver(Event e, String|DragDrop[] id) -
- Abstract method called when this element is hovering over another -DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of dd items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onInitDrag

- public function onInitDrag(Number x, Number y) -
- Called once drag threshold has been reached to initialize the proxy element. By default, it clones the -this.dragData.ddel -
- Parameters: -
  • x : Number
    The x position of the click on the dragged object
  • y : Number
    The y position of the click on the dragged object
- Returns: -
    -
  • Boolean
    true to continue the drag, false to cancel
  • -
-
-
-
This method is defined by DragZone.
-
- -
-

onInvalidDrop

- public function onInvalidDrop(Event e) -
- Abstract method called when this item is dropped on an area with no -drop target -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseDown

- public function onMouseDown(Event e) -
- Event handler that fires when a drag/drop obj gets a mousedown -
- Parameters: -
  • e : Event
    the mousedown event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseUp

- public function onMouseUp(Event e) -
- Event handler that fires when a drag/drop obj gets a mouseup -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

padding

- public function padding() -
- The padding configured for this drag and drop object for calculating -the drop zone intersection with this object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeFromGroup

- public function removeFromGroup(string sGroup) -
- Remove's this instance from the supplied interaction group -
- Parameters: -
  • sGroup : string
    The group to drop
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleClass

- public function removeInvalidHandleClass(string cssClass) -
- Unsets an invalid css class -
- Parameters: -
  • cssClass : string
    the class of the element(s) you wish to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleId

- public function removeInvalidHandleId(string id) -
- Unsets an invalid handle id -
- Parameters: -
  • id : string
    the id of the element to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleType

- public function removeInvalidHandleType(string tagName) -
- Unsets an excluded tag name set by addInvalidHandleType -
- Parameters: -
  • tagName : string
    the type of element to unexclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

resetConstraints

- public function resetConstraints(boolean maintainOffset) -
- resetConstraints must be called if you manually reposition a dd element. -
- Parameters: -
  • maintainOffset : boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setDelta

- public function setDelta(int iDeltaX, int iDeltaY) -
- Sets the pointer offset. You can call this directly to force the -offset to be in a particular location (e.g., pass in 0,0 to set it -to the center of the object) -
- Parameters: -
  • iDeltaX : int
    the distance from the left
  • iDeltaY : int
    the distance from the top
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

setDragElId

- public function setDragElId(id {string}) -
- Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setDragElPos

- public function setDragElPos(int iPageX, int iPageY) -
- Sets the drag element to the location of the mousedown or click event, -maintaining the cursor location relative to the location on the element -that was clicked. Override this if you want to place the element in a -location other than where the cursor is. -
- Parameters: -
  • iPageX : int
    the X coordinate of the mousedown or drag event
  • iPageY : int
    the Y coordinate of the mousedown or drag event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DD.
-
- -
-

setHandleElId

- public function setHandleElId(id {string}) -
- Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example of this would be if -you have a content div with text and links. Clicking anywhere in the -content area would normally start the drag operation. Use this method -to specify that an element inside of the content div is the element -that starts the drag operation. -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setInitialPosition

- public function setInitialPosition(int diffX, int diffY) -
- Stores the initial placement of the linked element. -
- Parameters: -
  • diffX : int
    the X offset, default 0
  • diffY : int
    the Y offset, default 0
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setOuterHandleElId

- public function setOuterHandleElId(id the) -
- Allows you to set an element outside of the linked element as a drag -handle -
- Parameters: -
  • the : id
    id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setPadding

- public function setPadding(int iTop, int iRight, int iBot, int iLeft) -
- Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targeting calculations. -Supports css-style shorthand; if only one parameter is passed, all sides -will have that padding, and if only two are passed, the top and bottom -will have the first param, the left and right the second. -
- Parameters: -
  • iTop : int
    Top pad
  • iRight : int
    Right pad
  • iBot : int
    Bot pad
  • iLeft : int
    Left pad
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setXConstraint

- public function setXConstraint(int iLeft, int iRight, int iTickSize) -
- By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of the element. Pass in -0,0 for the parameters if you want to lock the drag to the y axis. -
- Parameters: -
  • iLeft : int
    the number of pixels the element can move to the left
  • iRight : int
    the number of pixels the element can move to the right
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setYConstraint

- public function setYConstraint(int iUp, int iDown, int iTickSize) -
- By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element. Pass in 0,0 for the -parameters if you want to lock the drag to the x axis. -
- Parameters: -
  • iUp : int
    the number of pixels the element can move up
  • iDown : int
    the number of pixels the element can move down
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

startDrag

- public function startDrag(int X, int Y) -
- Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met. -
- Parameters: -
  • X : int
    click location
  • Y : int
    click location
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

toString

- public function toString() -
- toString method -
- Parameters: -
  • None.
- Returns: -
    -
  • string
    string representation of the dd obj
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unlock

- public function unlock() -
- Unlock this instace -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unreg

- public function unreg() -
- Remove all drag and drop hooks for this element -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
-
- -

Config Details

-
- -
-

containerScroll

- containerScroll : Boolean -
- True to register this container with the Scrollmanager for auto scrolling during drag operations.
-
This config option is defined by DragZone.
-
- -
-

dropAllowed

- dropAllowed : String -
- The CSS class returned to the drag source when drop is allowed (defaults to "x-dd-drop-ok").
-
This config option is defined by DragSource.
-
- -
-

dropNotAllowed

- dropNotAllowed : String -
- The CSS class returned to the drag source when drop is not allowed (defaults to "x-dd-drop-nodrop").
-
This config option is defined by DragSource.
-
- -
-

hlColor

- hlColor : String -
- The color to use when visually highlighting the drag source in the afterRepair method after a failed drop (defaults to "c3daf9" - light blue)
-
This config option is defined by DragZone.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.dd.DropTarget.html b/www/extras/extjs/docs/output/Ext.dd.DropTarget.html deleted file mode 100644 index e0a46f9cd..000000000 --- a/www/extras/extjs/docs/output/Ext.dd.DropTarget.html +++ /dev/null @@ -1,1593 +0,0 @@ - - - - Ext.dd.DropTarget - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.dd.DropTarget

- - - - - - -
Package:Ext.dd
Class:DropTarget
Extends:DDTarget
Subclasses:DropZone
Defined In:DropTarget.js
-
- A simple class that provides the basic implementation needed to make any element a drop target that can have -draggable items dropped onto it. The drop has no effect until an implementation of notifyDrop is provided.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 available : booleanDragDrop
The availabe property is false until the linked dom element is accessible.
 config : objectDragDrop
Configuration attributes passed into the constructor
 groups : string:DragDrop
The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interact...
 hasOuterHandles : booleanDragDrop
By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in...
 id : StringDragDrop
The id of the element associated with this object. This is what we -refer to as the "linked element" because the size...
 invalidHandleClasses : string[]DragDrop
An indexted array of css class names for elements that will be ignored -if clicked.
 invalidHandleIds : string:DragDrop
An associative array of ids for elements that will be ignored if clicked
 invalidHandleTypes : string:DragDrop
An associative array of HTML tags that will be ignored if clicked.
 maintainOffset : booleanDragDrop
Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its par...
 primaryButtonOnly : booleanDragDrop
By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed m...
 xTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is ge...
 yTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is gene...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 DropTarget(String/HTMLElement/Element el, Object config)DropTarget
 addInvalidHandleClass(string cssClass) : voidDragDrop
Lets you specify a css class of elements that will not initiate a drag
 addInvalidHandleId(string id) : voidDragDrop
Lets you to specify an element id for a child of a drag handle -that should not initiate a drag
 addInvalidHandleType(string tagName) : voidDragDrop
Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate...
 addToGroup(sGroup {string}) : voidDragDrop
Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belon...
 applyConfig() : voidDragDrop
Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level ...
 clearConstraints() : voidDragDrop
Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constrain...
 clearTicks() : voidDragDrop
Clears any tick interval defined for this instance
 endDrag(Event e) : voidDragDrop
Fired when we are done dragging the object
 getDragEl() : HTMLElementDragDrop
Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be as...
 getEl() : HTMLElementDragDrop
Returns a reference to the linked element
 init(id the, String sGroup, object config) : voidDragDrop
Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass
 initTarget(id the, String sGroup, object config) : voidDragDrop
Initializes Targeting functionality only... the object does not -get a mousedown handler.
 isLocked() : booleanDragDrop
Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on th...
 isTarget() : voidDragDrop
By default, all insances can be a drop target. This can be disabled by -setting isTarget to false.
 isValidHandleChild(HTMLElement node) : booleanDragDrop
Checks the tag exclusion list to see if this click should be ignored
 lock() : voidDragDrop
Lock this instance
 notifyDrop(Ext.dd.DragSource source, Event e, Object data) : BooleanDropTarget
The function a Ext.dd.DragSource calls once to notify this drop target that the dragged item has -been dropped on it. ...
 notifyEnter(Ext.dd.DragSource source, Event e, Object data) : StringDropTarget
The function a Ext.dd.DragSource calls once to notify this drop target that the source is now over the -target. This ...
 notifyOut(Ext.dd.DragSource source, Event e, Object data) : voidDropTarget
The function a Ext.dd.DragSource calls once to notify this drop target that the source has been dragged -out of the ta...
 notifyOver(Ext.dd.DragSource source, Event e, Object data) : StringDropTarget
The function a Ext.dd.DragSource calls continuously while it is being dragged over the target. -This method will be ca...
 onAvailable() : voidDragDrop
Override the onAvailable method to do what is needed after the initial -position was determined.
 onDrag(Event e) : voidDragDrop
Abstract method called during the onMouseMove event while dragging an -object.
 onDragDrop(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this item is dropped on another DragDrop -obj
 onDragEnter(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element fist begins hovering over -another DragDrop obj
 onDragOut(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when we are no longer hovering over an element
 onDragOver(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element is hovering over another -DragDrop obj
 onInvalidDrop(Event e) : voidDragDrop
Abstract method called when this item is dropped on an area with no -drop target
 onMouseDown(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mousedown
 onMouseUp(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mouseup
 padding() : voidDragDrop
The padding configured for this drag and drop object for calculating -the drop zone intersection with this object.
 removeFromGroup(string sGroup) : voidDragDrop
Remove's this instance from the supplied interaction group
 removeInvalidHandleClass(string cssClass) : voidDragDrop
Unsets an invalid css class
 removeInvalidHandleId(string id) : voidDragDrop
Unsets an invalid handle id
 removeInvalidHandleType(string tagName) : voidDragDrop
Unsets an excluded tag name set by addInvalidHandleType
 resetConstraints(boolean maintainOffset) : voidDragDrop
resetConstraints must be called if you manually reposition a dd element.
 setDragElId(id {string}) : voidDragDrop
Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag
 setHandleElId(id {string}) : voidDragDrop
Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example o...
 setInitialPosition(int diffX, int diffY) : voidDragDrop
Stores the initial placement of the linked element.
 setOuterHandleElId(id the) : voidDragDrop
Allows you to set an element outside of the linked element as a drag -handle
 setPadding(int iTop, int iRight, int iBot, int iLeft) : voidDragDrop
Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targe...
 setXConstraint(int iLeft, int iRight, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of th...
 setYConstraint(int iUp, int iDown, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element...
 startDrag(int X, int Y) : voidDragDrop
Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met.
 toString() : stringDragDrop
toString method
 unlock() : voidDragDrop
Unlock this instace
 unreg() : voidDragDrop
Remove all drag and drop hooks for this element
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 dropAllowed : StringDropTarget
The CSS class returned to the drag source when drop is allowed (defaults to "x-dd-drop-ok").
 dropNotAllowed : StringDropTarget
The CSS class returned to the drag source when drop is not allowed (defaults to "x-dd-drop-nodrop").
 overClass : StringDropTarget
The CSS class applied to the drop target element while the drag source is over it (defaults to "").
-

Property Details

-
- -
-

available

- public boolean available -
- The availabe property is false until the linked dom element is accessible.
-
This property is defined by DragDrop.
-
- -
-

config

- public object config -
- Configuration attributes passed into the constructor
-
This property is defined by DragDrop.
-
- -
-

groups

- public string: groups -
- The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interacting with other -DragDrop object in the same group. This lets us define multiple -groups using a single DragDrop subclass if we want.
-
This property is defined by DragDrop.
-
- -
-

hasOuterHandles

- public boolean hasOuterHandles -
- By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in part to work around a -bug in some browsers that mis-report the mousedown if the previous -mouseup happened outside of the window. This property is set to true -if outer handles are defined.
-
This property is defined by DragDrop.
-
- -
-

id

- public String id -
- The id of the element associated with this object. This is what we -refer to as the "linked element" because the size and position of -this element is used to determine when the drag and drop objects have -interacted.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleClasses

- public string[] invalidHandleClasses -
- An indexted array of css class names for elements that will be ignored -if clicked.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleIds

- public string: invalidHandleIds -
- An associative array of ids for elements that will be ignored if clicked
-
This property is defined by DragDrop.
-
- -
-

invalidHandleTypes

- public string: invalidHandleTypes -
- An associative array of HTML tags that will be ignored if clicked.
-
This property is defined by DragDrop.
-
- -
-

maintainOffset

- public boolean maintainOffset -
- Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its parent to stay the same -when the page changes
-
This property is defined by DragDrop.
-
- -
-

primaryButtonOnly

- public boolean primaryButtonOnly -
- By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed mouse). Set to true to -allow drag and drop to start with any mouse click that is propogated -by the browser
-
This property is defined by DragDrop.
-
- -
-

xTicks

- public int[] xTicks -
- Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
- -
-

yTicks

- public int[] yTicks -
- Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
-
- - -

Constructor Details

-
-
-

DropTarget

- public function DropTarget(String/HTMLElement/Element el, Object config) -
-
- Parameters: -
  • el : String/HTMLElement/Element
    The container element
  • config : Object
-
-
-
-
- -

Method Details

-
- -
-

addInvalidHandleClass

- public function addInvalidHandleClass(string cssClass) -
- Lets you specify a css class of elements that will not initiate a drag -
- Parameters: -
  • cssClass : string
    the class of the elements you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleId

- public function addInvalidHandleId(string id) -
- Lets you to specify an element id for a child of a drag handle -that should not initiate a drag -
- Parameters: -
  • id : string
    the element id of the element you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleType

- public function addInvalidHandleType(string tagName) -
- Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate embedding links within a -drag handle that do something other than start the drag. -
- Parameters: -
  • tagName : string
    the type of element to exclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addToGroup

- public function addToGroup(sGroup {string}) -
- Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belong to as many -groups as needed. -
- Parameters: -
  • {string} : sGroup
    the name of the group
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

applyConfig

- public function applyConfig() -
- Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level through the inheritance chain. So -a DDProxy implentation will execute apply config on DDProxy, DD, and -DragDrop in order to get all of the parameters that are available in -each object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

clearConstraints

- public function clearConstraints() -
- Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constraint at this time. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

clearTicks

- public function clearTicks() -
- Clears any tick interval defined for this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

endDrag

- public function endDrag(Event e) -
- Fired when we are done dragging the object -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getDragEl

- public function getDragEl() -
- Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be assigned to another -element. An example of this can be found in Ext.dd.DDProxy -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getEl

- public function getEl() -
- Returns a reference to the linked element -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

init

- public function init(id the, String sGroup, object config) -
- Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

initTarget

- public function initTarget(id the, String sGroup, object config) -
- Initializes Targeting functionality only... the object does not -get a mousedown handler. -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isLocked

- public function isLocked() -
- Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on the page.) -
- Parameters: -
  • None.
- Returns: -
    -
  • boolean
    true if this obj or all drag/drop is locked, else false
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isTarget

- public function isTarget() -
- By default, all insances can be a drop target. This can be disabled by -setting isTarget to false. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isValidHandleChild

- public function isValidHandleChild(HTMLElement node) -
- Checks the tag exclusion list to see if this click should be ignored -
- Parameters: -
  • node : HTMLElement
    the HTMLElement to evaluate
- Returns: -
    -
  • boolean
    true if this is a valid tag type, false if not
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

lock

- public function lock() -
- Lock this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

notifyDrop

- public function notifyDrop(Ext.dd.DragSource source, Event e, Object data) -
- The function a Ext.dd.DragSource calls once to notify this drop target that the dragged item has -been dropped on it. This method has no default implementation and returns false, so you must provide an -implementation that does something to process the drop event and returns true so that the drag source's -repair action does not run. -
- Parameters: -
  • source : Ext.dd.DragSource
    The drag source that was dragged over this drop target
  • e : Event
    The event
  • data : Object
    An object containing arbitrary data supplied by the drag source
- Returns: -
    -
  • Boolean
    True if the drop was valid, else false
  • -
-
-
-
This method is defined by DropTarget.
-
- -
-

notifyEnter

- public function notifyEnter(Ext.dd.DragSource source, Event e, Object data) -
- The function a Ext.dd.DragSource calls once to notify this drop target that the source is now over the -target. This default implementation adds the CSS class specified by overClass (if any) to the drop element -and returns the dropAllowed config value. This method should be overridden if drop validation is required. -
- Parameters: -
  • source : Ext.dd.DragSource
    The drag source that was dragged over this drop target
  • e : Event
    The event
  • data : Object
    An object containing arbitrary data supplied by the drag source
- Returns: -
    -
  • String
    status The CSS class that communicates the drop status back to the source so that the underlying {@link Ext.dd.StatusProxy} can be updated
  • -
-
-
-
This method is defined by DropTarget.
-
- -
-

notifyOut

- public function notifyOut(Ext.dd.DragSource source, Event e, Object data) -
- The function a Ext.dd.DragSource calls once to notify this drop target that the source has been dragged -out of the target without dropping. This default implementation simply removes the CSS class specified by -overClass (if any) from the drop element. -
- Parameters: -
  • source : Ext.dd.DragSource
    The drag source that was dragged over this drop target
  • e : Event
    The event
  • data : Object
    An object containing arbitrary data supplied by the drag source
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DropTarget.
-
- -
-

notifyOver

- public function notifyOver(Ext.dd.DragSource source, Event e, Object data) -
- The function a Ext.dd.DragSource calls continuously while it is being dragged over the target. -This method will be called on every mouse movement while the drag source is over the drop target. -This default implementation simply returns the dropAllowed config value. -
- Parameters: -
  • source : Ext.dd.DragSource
    The drag source that was dragged over this drop target
  • e : Event
    The event
  • data : Object
    An object containing arbitrary data supplied by the drag source
- Returns: -
    -
  • String
    status The CSS class that communicates the drop status back to the source so that the underlying {@link Ext.dd.StatusProxy} can be updated
  • -
-
-
-
This method is defined by DropTarget.
-
- -
-

onAvailable

- public function onAvailable() -
- Override the onAvailable method to do what is needed after the initial -position was determined. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDrag

- public function onDrag(Event e) -
- Abstract method called during the onMouseMove event while dragging an -object. -
- Parameters: -
  • e : Event
    the mousemove event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragDrop

- public function onDragDrop(Event e, String|DragDrop[] id) -
- Abstract method called when this item is dropped on another DragDrop -obj -
- Parameters: -
  • e : Event
    the mouseup event
  • id : String|DragDrop[]
    In POINT mode, the element id this was dropped on. In INTERSECT mode, an array of dd items this was dropped on.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragEnter

- public function onDragEnter(Event e, String|DragDrop[] id) -
- Abstract method called when this element fist begins hovering over -another DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of one or more dragdrop items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOut

- public function onDragOut(Event e, String|DragDrop[] id) -
- Abstract method called when we are no longer hovering over an element -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this was hovering over. In INTERSECT mode, an array of dd items that the mouse is no longer over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOver

- public function onDragOver(Event e, String|DragDrop[] id) -
- Abstract method called when this element is hovering over another -DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of dd items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onInvalidDrop

- public function onInvalidDrop(Event e) -
- Abstract method called when this item is dropped on an area with no -drop target -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseDown

- public function onMouseDown(Event e) -
- Event handler that fires when a drag/drop obj gets a mousedown -
- Parameters: -
  • e : Event
    the mousedown event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseUp

- public function onMouseUp(Event e) -
- Event handler that fires when a drag/drop obj gets a mouseup -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

padding

- public function padding() -
- The padding configured for this drag and drop object for calculating -the drop zone intersection with this object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeFromGroup

- public function removeFromGroup(string sGroup) -
- Remove's this instance from the supplied interaction group -
- Parameters: -
  • sGroup : string
    The group to drop
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleClass

- public function removeInvalidHandleClass(string cssClass) -
- Unsets an invalid css class -
- Parameters: -
  • cssClass : string
    the class of the element(s) you wish to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleId

- public function removeInvalidHandleId(string id) -
- Unsets an invalid handle id -
- Parameters: -
  • id : string
    the id of the element to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleType

- public function removeInvalidHandleType(string tagName) -
- Unsets an excluded tag name set by addInvalidHandleType -
- Parameters: -
  • tagName : string
    the type of element to unexclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

resetConstraints

- public function resetConstraints(boolean maintainOffset) -
- resetConstraints must be called if you manually reposition a dd element. -
- Parameters: -
  • maintainOffset : boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setDragElId

- public function setDragElId(id {string}) -
- Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setHandleElId

- public function setHandleElId(id {string}) -
- Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example of this would be if -you have a content div with text and links. Clicking anywhere in the -content area would normally start the drag operation. Use this method -to specify that an element inside of the content div is the element -that starts the drag operation. -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setInitialPosition

- public function setInitialPosition(int diffX, int diffY) -
- Stores the initial placement of the linked element. -
- Parameters: -
  • diffX : int
    the X offset, default 0
  • diffY : int
    the Y offset, default 0
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setOuterHandleElId

- public function setOuterHandleElId(id the) -
- Allows you to set an element outside of the linked element as a drag -handle -
- Parameters: -
  • the : id
    id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setPadding

- public function setPadding(int iTop, int iRight, int iBot, int iLeft) -
- Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targeting calculations. -Supports css-style shorthand; if only one parameter is passed, all sides -will have that padding, and if only two are passed, the top and bottom -will have the first param, the left and right the second. -
- Parameters: -
  • iTop : int
    Top pad
  • iRight : int
    Right pad
  • iBot : int
    Bot pad
  • iLeft : int
    Left pad
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setXConstraint

- public function setXConstraint(int iLeft, int iRight, int iTickSize) -
- By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of the element. Pass in -0,0 for the parameters if you want to lock the drag to the y axis. -
- Parameters: -
  • iLeft : int
    the number of pixels the element can move to the left
  • iRight : int
    the number of pixels the element can move to the right
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setYConstraint

- public function setYConstraint(int iUp, int iDown, int iTickSize) -
- By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element. Pass in 0,0 for the -parameters if you want to lock the drag to the x axis. -
- Parameters: -
  • iUp : int
    the number of pixels the element can move up
  • iDown : int
    the number of pixels the element can move down
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

startDrag

- public function startDrag(int X, int Y) -
- Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met. -
- Parameters: -
  • X : int
    click location
  • Y : int
    click location
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

toString

- public function toString() -
- toString method -
- Parameters: -
  • None.
- Returns: -
    -
  • string
    string representation of the dd obj
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unlock

- public function unlock() -
- Unlock this instace -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unreg

- public function unreg() -
- Remove all drag and drop hooks for this element -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
-
- -

Config Details

-
- -
-

dropAllowed

- dropAllowed : String -
- The CSS class returned to the drag source when drop is allowed (defaults to "x-dd-drop-ok").
-
This config option is defined by DropTarget.
-
- -
-

dropNotAllowed

- dropNotAllowed : String -
- The CSS class returned to the drag source when drop is not allowed (defaults to "x-dd-drop-nodrop").
-
This config option is defined by DropTarget.
-
- -
-

overClass

- overClass : String -
- The CSS class applied to the drop target element while the drag source is over it (defaults to "").
-
This config option is defined by DropTarget.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.dd.DropZone.html b/www/extras/extjs/docs/output/Ext.dd.DropZone.html deleted file mode 100644 index 7afcc963b..000000000 --- a/www/extras/extjs/docs/output/Ext.dd.DropZone.html +++ /dev/null @@ -1,1793 +0,0 @@ - - - - Ext.dd.DropZone - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.dd.DropZone

- - - - - -
Package:Ext.dd
Class:DropZone
Extends:DropTarget
Defined In:DropZone.js
-
- This class provides a container DD instance that proxies for multiple child node targets.
-By default, this class requires that child nodes accepting drop are registered with Ext.dd.Registry.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 available : booleanDragDrop
The availabe property is false until the linked dom element is accessible.
 config : objectDragDrop
Configuration attributes passed into the constructor
 groups : string:DragDrop
The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interact...
 hasOuterHandles : booleanDragDrop
By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in...
 id : StringDragDrop
The id of the element associated with this object. This is what we -refer to as the "linked element" because the size...
 invalidHandleClasses : string[]DragDrop
An indexted array of css class names for elements that will be ignored -if clicked.
 invalidHandleIds : string:DragDrop
An associative array of ids for elements that will be ignored if clicked
 invalidHandleTypes : string:DragDrop
An associative array of HTML tags that will be ignored if clicked.
 maintainOffset : booleanDragDrop
Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its par...
 primaryButtonOnly : booleanDragDrop
By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed m...
 xTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is ge...
 yTicks : int[]DragDrop
Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is gene...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 DropZone(String/HTMLElement/Element el, Object config)DropZone
 addInvalidHandleClass(string cssClass) : voidDragDrop
Lets you specify a css class of elements that will not initiate a drag
 addInvalidHandleId(string id) : voidDragDrop
Lets you to specify an element id for a child of a drag handle -that should not initiate a drag
 addInvalidHandleType(string tagName) : voidDragDrop
Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate...
 addToGroup(sGroup {string}) : voidDragDrop
Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belon...
 applyConfig() : voidDragDrop
Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level ...
 clearConstraints() : voidDragDrop
Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constrain...
 clearTicks() : voidDragDrop
Clears any tick interval defined for this instance
 endDrag(Event e) : voidDragDrop
Fired when we are done dragging the object
 getDragEl() : HTMLElementDragDrop
Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be as...
 getEl() : HTMLElementDragDrop
Returns a reference to the linked element
 getTargetFromEvent(Event e) : ObjectDropZone
Returns a custom data object associated with the DOM node that is the target of the event. By default -this looks up ...
 init(id the, String sGroup, object config) : voidDragDrop
Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass
 initTarget(id the, String sGroup, object config) : voidDragDrop
Initializes Targeting functionality only... the object does not -get a mousedown handler.
 isLocked() : booleanDragDrop
Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on th...
 isTarget() : voidDragDrop
By default, all insances can be a drop target. This can be disabled by -setting isTarget to false.
 isValidHandleChild(HTMLElement node) : booleanDragDrop
Checks the tag exclusion list to see if this click should be ignored
 lock() : voidDragDrop
Lock this instance
 notifyDrop(Ext.dd.DragSource source, Event e, Object data) : BooleanDropZone
The function a Ext.dd.DragSource calls once to notify this drop zone that the dragged item has -been dropped on it. T...
 notifyEnter(Ext.dd.DragSource source, Event e, Object data) : StringDropZone
The function a Ext.dd.DragSource calls once to notify this drop zone that the source is now over -the zone. The defau...
 notifyOut(Ext.dd.DragSource source, Event e, Object data) : voidDropZone
The function a Ext.dd.DragSource calls once to notify this drop zone that the source has been dragged -out of the zone...
 notifyOver(Ext.dd.DragSource source, Event e, Object data) : StringDropZone
The function a Ext.dd.DragSource calls continuously while it is being dragged over the drop zone. -This method will be...
 onAvailable() : voidDragDrop
Override the onAvailable method to do what is needed after the initial -position was determined.
 onContainerDrop(Ext.dd.DragSource source, Event e, Object data) : BooleanDropZone
Called internally when the DropZone determines that a Ext.dd.DragSource has been dropped on it, -but not on any of its...
 onContainerOver(Ext.dd.DragSource source, Event e, Object data) : StringDropZone
Called internally while the DropZone determines that a Ext.dd.DragSource is being dragged over it, -but not over any o...
 onDrag(Event e) : voidDragDrop
Abstract method called during the onMouseMove event while dragging an -object.
 onDragDrop(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this item is dropped on another DragDrop -obj
 onDragEnter(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element fist begins hovering over -another DragDrop obj
 onDragOut(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when we are no longer hovering over an element
 onDragOver(Event e, String|DragDrop[] id) : voidDragDrop
Abstract method called when this element is hovering over another -DragDrop obj
 onInvalidDrop(Event e) : voidDragDrop
Abstract method called when this item is dropped on an area with no -drop target
 onMouseDown(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mousedown
 onMouseUp(Event e) : voidDragDrop
Event handler that fires when a drag/drop obj gets a mouseup
 onNodeDrop(Object nodeData, Ext.dd.DragSource source, Event e, Object data) : BooleanDropZone
Called internally when the DropZone determines that a Ext.dd.DragSource has been dropped onto -the drop node. The def...
 onNodeEnter(Object nodeData, Ext.dd.DragSource source, Event e, Object data) : voidDropZone
Called internally when the DropZone determines that a Ext.dd.DragSource has entered a drop node -that it has registere...
 onNodeOut(Object nodeData, Ext.dd.DragSource source, Event e, Object data) : voidDropZone
Called internally when the DropZone determines that a Ext.dd.DragSource has been dragged out of -the drop node without...
 onNodeOver(Object nodeData, Ext.dd.DragSource source, Event e, Object data) : StringDropZone
Called internally while the DropZone determines that a Ext.dd.DragSource is over a drop node -that it has registered. ...
 padding() : voidDragDrop
The padding configured for this drag and drop object for calculating -the drop zone intersection with this object.
 removeFromGroup(string sGroup) : voidDragDrop
Remove's this instance from the supplied interaction group
 removeInvalidHandleClass(string cssClass) : voidDragDrop
Unsets an invalid css class
 removeInvalidHandleId(string id) : voidDragDrop
Unsets an invalid handle id
 removeInvalidHandleType(string tagName) : voidDragDrop
Unsets an excluded tag name set by addInvalidHandleType
 resetConstraints(boolean maintainOffset) : voidDragDrop
resetConstraints must be called if you manually reposition a dd element.
 setDragElId(id {string}) : voidDragDrop
Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag
 setHandleElId(id {string}) : voidDragDrop
Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example o...
 setInitialPosition(int diffX, int diffY) : voidDragDrop
Stores the initial placement of the linked element.
 setOuterHandleElId(id the) : voidDragDrop
Allows you to set an element outside of the linked element as a drag -handle
 setPadding(int iTop, int iRight, int iBot, int iLeft) : voidDragDrop
Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targe...
 setXConstraint(int iLeft, int iRight, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of th...
 setYConstraint(int iUp, int iDown, int iTickSize) : voidDragDrop
By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element...
 startDrag(int X, int Y) : voidDragDrop
Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met.
 toString() : stringDragDrop
toString method
 unlock() : voidDragDrop
Unlock this instace
 unreg() : voidDragDrop
Remove all drag and drop hooks for this element
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 dropAllowed : StringDropTarget
The CSS class returned to the drag source when drop is allowed (defaults to "x-dd-drop-ok").
 dropNotAllowed : StringDropTarget
The CSS class returned to the drag source when drop is not allowed (defaults to "x-dd-drop-nodrop").
 overClass : StringDropTarget
The CSS class applied to the drop target element while the drag source is over it (defaults to "").
-

Property Details

-
- -
-

available

- public boolean available -
- The availabe property is false until the linked dom element is accessible.
-
This property is defined by DragDrop.
-
- -
-

config

- public object config -
- Configuration attributes passed into the constructor
-
This property is defined by DragDrop.
-
- -
-

groups

- public string: groups -
- The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interacting with other -DragDrop object in the same group. This lets us define multiple -groups using a single DragDrop subclass if we want.
-
This property is defined by DragDrop.
-
- -
-

hasOuterHandles

- public boolean hasOuterHandles -
- By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in part to work around a -bug in some browsers that mis-report the mousedown if the previous -mouseup happened outside of the window. This property is set to true -if outer handles are defined.
-
This property is defined by DragDrop.
-
- -
-

id

- public String id -
- The id of the element associated with this object. This is what we -refer to as the "linked element" because the size and position of -this element is used to determine when the drag and drop objects have -interacted.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleClasses

- public string[] invalidHandleClasses -
- An indexted array of css class names for elements that will be ignored -if clicked.
-
This property is defined by DragDrop.
-
- -
-

invalidHandleIds

- public string: invalidHandleIds -
- An associative array of ids for elements that will be ignored if clicked
-
This property is defined by DragDrop.
-
- -
-

invalidHandleTypes

- public string: invalidHandleTypes -
- An associative array of HTML tags that will be ignored if clicked.
-
This property is defined by DragDrop.
-
- -
-

maintainOffset

- public boolean maintainOffset -
- Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its parent to stay the same -when the page changes
-
This property is defined by DragDrop.
-
- -
-

primaryButtonOnly

- public boolean primaryButtonOnly -
- By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed mouse). Set to true to -allow drag and drop to start with any mouse click that is propogated -by the browser
-
This property is defined by DragDrop.
-
- -
-

xTicks

- public int[] xTicks -
- Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
- -
-

yTicks

- public int[] yTicks -
- Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is generated automatically -when you define a tick interval.
-
This property is defined by DragDrop.
-
-
- - -

Constructor Details

-
-
-

DropZone

- public function DropZone(String/HTMLElement/Element el, Object config) -
-
- Parameters: -
  • el : String/HTMLElement/Element
    The container element
  • config : Object
-
-
-
-
- -

Method Details

-
- -
-

addInvalidHandleClass

- public function addInvalidHandleClass(string cssClass) -
- Lets you specify a css class of elements that will not initiate a drag -
- Parameters: -
  • cssClass : string
    the class of the elements you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleId

- public function addInvalidHandleId(string id) -
- Lets you to specify an element id for a child of a drag handle -that should not initiate a drag -
- Parameters: -
  • id : string
    the element id of the element you wish to ignore
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addInvalidHandleType

- public function addInvalidHandleType(string tagName) -
- Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate embedding links within a -drag handle that do something other than start the drag. -
- Parameters: -
  • tagName : string
    the type of element to exclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

addToGroup

- public function addToGroup(sGroup {string}) -
- Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belong to as many -groups as needed. -
- Parameters: -
  • {string} : sGroup
    the name of the group
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

applyConfig

- public function applyConfig() -
- Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level through the inheritance chain. So -a DDProxy implentation will execute apply config on DDProxy, DD, and -DragDrop in order to get all of the parameters that are available in -each object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

clearConstraints

- public function clearConstraints() -
- Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constraint at this time. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

clearTicks

- public function clearTicks() -
- Clears any tick interval defined for this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

endDrag

- public function endDrag(Event e) -
- Fired when we are done dragging the object -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getDragEl

- public function getDragEl() -
- Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be assigned to another -element. An example of this can be found in Ext.dd.DDProxy -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getEl

- public function getEl() -
- Returns a reference to the linked element -
- Parameters: -
  • None.
- Returns: -
    -
  • HTMLElement
    the html element
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

getTargetFromEvent

- public function getTargetFromEvent(Event e) -
- Returns a custom data object associated with the DOM node that is the target of the event. By default -this looks up the event target in the Ext.dd.Registry, although you can override this method to -provide your own custom lookup. -
- Parameters: -
  • e : Event
    The event
- Returns: -
    -
  • Object
    data The custom data
  • -
-
-
-
This method is defined by DropZone.
-
- -
-

init

- public function init(id the, String sGroup, object config) -
- Sets up the DragDrop object. Must be called in the constructor of any -Ext.dd.DragDrop subclass -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

initTarget

- public function initTarget(id the, String sGroup, object config) -
- Initializes Targeting functionality only... the object does not -get a mousedown handler. -
- Parameters: -
  • the : id
    id of the linked element
  • sGroup : String
    the group of related items
  • config : object
    configuration attributes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isLocked

- public function isLocked() -
- Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on the page.) -
- Parameters: -
  • None.
- Returns: -
    -
  • boolean
    true if this obj or all drag/drop is locked, else false
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isTarget

- public function isTarget() -
- By default, all insances can be a drop target. This can be disabled by -setting isTarget to false. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

isValidHandleChild

- public function isValidHandleChild(HTMLElement node) -
- Checks the tag exclusion list to see if this click should be ignored -
- Parameters: -
  • node : HTMLElement
    the HTMLElement to evaluate
- Returns: -
    -
  • boolean
    true if this is a valid tag type, false if not
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

lock

- public function lock() -
- Lock this instance -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

notifyDrop

- public function notifyDrop(Ext.dd.DragSource source, Event e, Object data) -
- The function a Ext.dd.DragSource calls once to notify this drop zone that the dragged item has -been dropped on it. The drag zone will look up the target node based on the event passed in, and if there -is a node registered for that event, it will delegate to onNodeDrop for node-specific handling, -otherwise it will call onContainerDrop. -
- Parameters: -
  • source : Ext.dd.DragSource
    The drag source that was dragged over this drop zone
  • e : Event
    The event
  • data : Object
    An object containing arbitrary data supplied by the drag source
- Returns: -
    -
  • Boolean
    True if the drop was valid, else false
  • -
-
-
-
This method is defined by DropZone.
-
- -
-

notifyEnter

- public function notifyEnter(Ext.dd.DragSource source, Event e, Object data) -
- The function a Ext.dd.DragSource calls once to notify this drop zone that the source is now over -the zone. The default implementation returns this.dropNotAllowed and expects that only registered drop -nodes can process drag drop operations, so if you need the drop zone itself to be able to process drops -you should override this method and provide a custom implementation. -
- Parameters: -
  • source : Ext.dd.DragSource
    The drag source that was dragged over this drop zone
  • e : Event
    The event
  • data : Object
    An object containing arbitrary data supplied by the drag source
- Returns: -
    -
  • String
    status The CSS class that communicates the drop status back to the source so that the underlying {@link Ext.dd.StatusProxy} can be updated
  • -
-
-
-
This method is defined by DropZone.
-
- -
-

notifyOut

- public function notifyOut(Ext.dd.DragSource source, Event e, Object data) -
- The function a Ext.dd.DragSource calls once to notify this drop zone that the source has been dragged -out of the zone without dropping. If the drag source is currently over a registered node, the notification -will be delegated to onNodeOut for node-specific handling, otherwise it will be ignored. -
- Parameters: -
  • source : Ext.dd.DragSource
    The drag source that was dragged over this drop target
  • e : Event
    The event
  • data : Object
    An object containing arbitrary data supplied by the drag zone
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DropZone.
-
- -
-

notifyOver

- public function notifyOver(Ext.dd.DragSource source, Event e, Object data) -
- The function a Ext.dd.DragSource calls continuously while it is being dragged over the drop zone. -This method will be called on every mouse movement while the drag source is over the drop zone. -It will call onNodeOver while the drag source is over a registered node, and will also automatically -delegate to the appropriate node-specific methods as necessary when the drag source enters and exits -registered nodes (onNodeEnter, onNodeOut). If the drag source is not currently over a -registered node, it will call onContainerOver. -
- Parameters: -
  • source : Ext.dd.DragSource
    The drag source that was dragged over this drop zone
  • e : Event
    The event
  • data : Object
    An object containing arbitrary data supplied by the drag source
- Returns: -
    -
  • String
    status The CSS class that communicates the drop status back to the source so that the underlying {@link Ext.dd.StatusProxy} can be updated
  • -
-
-
-
This method is defined by DropZone.
-
- -
-

onAvailable

- public function onAvailable() -
- Override the onAvailable method to do what is needed after the initial -position was determined. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onContainerDrop

- public function onContainerDrop(Ext.dd.DragSource source, Event e, Object data) -
- Called internally when the DropZone determines that a Ext.dd.DragSource has been dropped on it, -but not on any of its registered drop nodes. The default implementation returns false, so it should be -overridden to provide the appropriate processing of the drop event if you need the drop zone itself to -be able to accept drops. It should return true when valid so that the drag source's repair action does not run. -
- Parameters: -
  • source : Ext.dd.DragSource
    The drag source that was dragged over this drop zone
  • e : Event
    The event
  • data : Object
    An object containing arbitrary data supplied by the drag source
- Returns: -
    -
  • Boolean
    True if the drop was valid, else false
  • -
-
-
-
This method is defined by DropZone.
-
- -
-

onContainerOver

- public function onContainerOver(Ext.dd.DragSource source, Event e, Object data) -
- Called internally while the DropZone determines that a Ext.dd.DragSource is being dragged over it, -but not over any of its registered drop nodes. The default implementation returns this.dropNotAllowed, so -it should be overridden to provide the proper feedback if necessary. -
- Parameters: -
  • source : Ext.dd.DragSource
    The drag source that was dragged over this drop zone
  • e : Event
    The event
  • data : Object
    An object containing arbitrary data supplied by the drag source
- Returns: -
    -
  • String
    status The CSS class that communicates the drop status back to the source so that the underlying {@link Ext.dd.StatusProxy} can be updated
  • -
-
-
-
This method is defined by DropZone.
-
- -
-

onDrag

- public function onDrag(Event e) -
- Abstract method called during the onMouseMove event while dragging an -object. -
- Parameters: -
  • e : Event
    the mousemove event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragDrop

- public function onDragDrop(Event e, String|DragDrop[] id) -
- Abstract method called when this item is dropped on another DragDrop -obj -
- Parameters: -
  • e : Event
    the mouseup event
  • id : String|DragDrop[]
    In POINT mode, the element id this was dropped on. In INTERSECT mode, an array of dd items this was dropped on.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragEnter

- public function onDragEnter(Event e, String|DragDrop[] id) -
- Abstract method called when this element fist begins hovering over -another DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of one or more dragdrop items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOut

- public function onDragOut(Event e, String|DragDrop[] id) -
- Abstract method called when we are no longer hovering over an element -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this was hovering over. In INTERSECT mode, an array of dd items that the mouse is no longer over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onDragOver

- public function onDragOver(Event e, String|DragDrop[] id) -
- Abstract method called when this element is hovering over another -DragDrop obj -
- Parameters: -
  • e : Event
    the mousemove event
  • id : String|DragDrop[]
    In POINT mode, the element id this is hovering over. In INTERSECT mode, an array of dd items being hovered over.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onInvalidDrop

- public function onInvalidDrop(Event e) -
- Abstract method called when this item is dropped on an area with no -drop target -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseDown

- public function onMouseDown(Event e) -
- Event handler that fires when a drag/drop obj gets a mousedown -
- Parameters: -
  • e : Event
    the mousedown event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onMouseUp

- public function onMouseUp(Event e) -
- Event handler that fires when a drag/drop obj gets a mouseup -
- Parameters: -
  • e : Event
    the mouseup event
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

onNodeDrop

- public function onNodeDrop(Object nodeData, Ext.dd.DragSource source, Event e, Object data) -
- Called internally when the DropZone determines that a Ext.dd.DragSource has been dropped onto -the drop node. The default implementation returns false, so it should be overridden to provide the -appropriate processing of the drop event and return true so that the drag source's repair action does not run. -
- Parameters: -
  • nodeData : Object
    The custom data associated with the drop node (this is the same value returned from getTargetFromEvent for this node)
  • source : Ext.dd.DragSource
    The drag source that was dragged over this drop zone
  • e : Event
    The event
  • data : Object
    An object containing arbitrary data supplied by the drag source
- Returns: -
    -
  • Boolean
    True if the drop was valid, else false
  • -
-
-
-
This method is defined by DropZone.
-
- -
-

onNodeEnter

- public function onNodeEnter(Object nodeData, Ext.dd.DragSource source, Event e, Object data) -
- Called internally when the DropZone determines that a Ext.dd.DragSource has entered a drop node -that it has registered. This method has no default implementation and should be overridden to provide -node-specific processing if necessary. -
- Parameters: -
  • nodeData : Object
    The custom data associated with the drop node (this is the same value returned from getTargetFromEvent for this node)
  • source : Ext.dd.DragSource
    The drag source that was dragged over this drop zone
  • e : Event
    The event
  • data : Object
    An object containing arbitrary data supplied by the drag source
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DropZone.
-
- -
-

onNodeOut

- public function onNodeOut(Object nodeData, Ext.dd.DragSource source, Event e, Object data) -
- Called internally when the DropZone determines that a Ext.dd.DragSource has been dragged out of -the drop node without dropping. This method has no default implementation and should be overridden to provide -node-specific processing if necessary. -
- Parameters: -
  • nodeData : Object
    The custom data associated with the drop node (this is the same value returned from getTargetFromEvent for this node)
  • source : Ext.dd.DragSource
    The drag source that was dragged over this drop zone
  • e : Event
    The event
  • data : Object
    An object containing arbitrary data supplied by the drag source
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DropZone.
-
- -
-

onNodeOver

- public function onNodeOver(Object nodeData, Ext.dd.DragSource source, Event e, Object data) -
- Called internally while the DropZone determines that a Ext.dd.DragSource is over a drop node -that it has registered. The default implementation returns this.dropNotAllowed, so it should be -overridden to provide the proper feedback. -
- Parameters: -
  • nodeData : Object
    The custom data associated with the drop node (this is the same value returned from getTargetFromEvent for this node)
  • source : Ext.dd.DragSource
    The drag source that was dragged over this drop zone
  • e : Event
    The event
  • data : Object
    An object containing arbitrary data supplied by the drag source
- Returns: -
    -
  • String
    status The CSS class that communicates the drop status back to the source so that the underlying {@link Ext.dd.StatusProxy} can be updated
  • -
-
-
-
This method is defined by DropZone.
-
- -
-

padding

- public function padding() -
- The padding configured for this drag and drop object for calculating -the drop zone intersection with this object. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeFromGroup

- public function removeFromGroup(string sGroup) -
- Remove's this instance from the supplied interaction group -
- Parameters: -
  • sGroup : string
    The group to drop
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleClass

- public function removeInvalidHandleClass(string cssClass) -
- Unsets an invalid css class -
- Parameters: -
  • cssClass : string
    the class of the element(s) you wish to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleId

- public function removeInvalidHandleId(string id) -
- Unsets an invalid handle id -
- Parameters: -
  • id : string
    the id of the element to re-enable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

removeInvalidHandleType

- public function removeInvalidHandleType(string tagName) -
- Unsets an excluded tag name set by addInvalidHandleType -
- Parameters: -
  • tagName : string
    the type of element to unexclude
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

resetConstraints

- public function resetConstraints(boolean maintainOffset) -
- resetConstraints must be called if you manually reposition a dd element. -
- Parameters: -
  • maintainOffset : boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setDragElId

- public function setDragElId(id {string}) -
- Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setHandleElId

- public function setHandleElId(id {string}) -
- Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example of this would be if -you have a content div with text and links. Clicking anywhere in the -content area would normally start the drag operation. Use this method -to specify that an element inside of the content div is the element -that starts the drag operation. -
- Parameters: -
  • {string} : id
    the id of the element that will be used to initiate the drag.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setInitialPosition

- public function setInitialPosition(int diffX, int diffY) -
- Stores the initial placement of the linked element. -
- Parameters: -
  • diffX : int
    the X offset, default 0
  • diffY : int
    the Y offset, default 0
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setOuterHandleElId

- public function setOuterHandleElId(id the) -
- Allows you to set an element outside of the linked element as a drag -handle -
- Parameters: -
  • the : id
    id of the element that will be used to initiate the drag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setPadding

- public function setPadding(int iTop, int iRight, int iBot, int iLeft) -
- Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targeting calculations. -Supports css-style shorthand; if only one parameter is passed, all sides -will have that padding, and if only two are passed, the top and bottom -will have the first param, the left and right the second. -
- Parameters: -
  • iTop : int
    Top pad
  • iRight : int
    Right pad
  • iBot : int
    Bot pad
  • iLeft : int
    Left pad
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setXConstraint

- public function setXConstraint(int iLeft, int iRight, int iTickSize) -
- By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of the element. Pass in -0,0 for the parameters if you want to lock the drag to the y axis. -
- Parameters: -
  • iLeft : int
    the number of pixels the element can move to the left
  • iRight : int
    the number of pixels the element can move to the right
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

setYConstraint

- public function setYConstraint(int iUp, int iDown, int iTickSize) -
- By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element. Pass in 0,0 for the -parameters if you want to lock the drag to the x axis. -
- Parameters: -
  • iUp : int
    the number of pixels the element can move up
  • iDown : int
    the number of pixels the element can move down
  • iTickSize : int
    optional parameter for specifying that the element should move iTickSize pixels at a time.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

startDrag

- public function startDrag(int X, int Y) -
- Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met. -
- Parameters: -
  • X : int
    click location
  • Y : int
    click location
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

toString

- public function toString() -
- toString method -
- Parameters: -
  • None.
- Returns: -
    -
  • string
    string representation of the dd obj
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unlock

- public function unlock() -
- Unlock this instace -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
- -
-

unreg

- public function unreg() -
- Remove all drag and drop hooks for this element -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DragDrop.
-
-
- -

Config Details

-
- -
-

dropAllowed

- dropAllowed : String -
- The CSS class returned to the drag source when drop is allowed (defaults to "x-dd-drop-ok").
-
This config option is defined by DropTarget.
-
- -
-

dropNotAllowed

- dropNotAllowed : String -
- The CSS class returned to the drag source when drop is not allowed (defaults to "x-dd-drop-nodrop").
-
This config option is defined by DropTarget.
-
- -
-

overClass

- overClass : String -
- The CSS class applied to the drop target element while the drag source is over it (defaults to "").
-
This config option is defined by DropTarget.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.dd.Registry.html b/www/extras/extjs/docs/output/Ext.dd.Registry.html deleted file mode 100644 index 6ee28835b..000000000 --- a/www/extras/extjs/docs/output/Ext.dd.Registry.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - Ext.dd.Registry - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.dd.Registry

- - - - - -
Package:Ext.dd
Class:Registry
Extends:Object
Defined In:Registry.js
-
- Provides easy access to all drag drop components that are registered on a page. Items can be retrieved either -directly by DOM node id, or by passing in the drag drop event that occurred and looking up the event target.

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 getHandle(String/HTMLElement id) : ObjectRegistry
Returns the handle registered for a DOM Node by id
 getHandleFromEvent(Event e) : ObjectRegistry
Returns the handle that is registered for the DOM node that is the target of the event
 getTarget(String/HTMLElement id) : ObjectRegistry
Returns a custom data object that is registered for a DOM node by id
 getTargetFromEvent(Event e) : ObjectRegistry
Returns a custom data object that is registered for the DOM node that is the target of the event
 register(String/HTMLElement) element, [Object data]) : voidRegistry
Resgister a drag drop element
 unregister(String/HTMLElement) element) : voidRegistry
Unregister a drag drop element
- -

Public Events

-
This class has no public events.
- -

Method Details

-
- -
-

getHandle

- public function getHandle(String/HTMLElement id) -
- Returns the handle registered for a DOM Node by id -
- Parameters: -
  • id : String/HTMLElement
    The DOM node or id to look up
- Returns: -
    -
  • Object
    handle The custom handle data
  • -
-
-
-
This method is defined by Registry.
-
- -
-

getHandleFromEvent

- public function getHandleFromEvent(Event e) -
- Returns the handle that is registered for the DOM node that is the target of the event -
- Parameters: -
  • e : Event
    The event
- Returns: -
    -
  • Object
    handle The custom handle data
  • -
-
-
-
This method is defined by Registry.
-
- -
-

getTarget

- public function getTarget(String/HTMLElement id) -
- Returns a custom data object that is registered for a DOM node by id -
- Parameters: -
  • id : String/HTMLElement
    The DOM node or id to look up
- Returns: -
    -
  • Object
    data The custom data
  • -
-
-
-
This method is defined by Registry.
-
- -
-

getTargetFromEvent

- public function getTargetFromEvent(Event e) -
- Returns a custom data object that is registered for the DOM node that is the target of the event -
- Parameters: -
  • e : Event
    The event
- Returns: -
    -
  • Object
    data The custom data
  • -
-
-
-
This method is defined by Registry.
-
- -
-

register

- public function register(String/HTMLElement) element, [Object data]) -
- Resgister a drag drop element -
- Parameters: -
  • element : String/HTMLElement)
    The id or DOM node to register
  • data : Object
    (optional) An custom data object that will be passed between the elements that are involved in drag drop operations. You can populate this object with any arbitrary properties that your own code knows how to interpret, plus there are some specific properties known to the Registry that should be populated in the data object (if applicable):
     Value Description
    --------- ------------------------------------------
    handles Array of DOM nodes that trigger dragging
    for the element being registered
    isHandle True if the element passed in triggers
    dragging itself, else false
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Registry.
-
- -
-

unregister

- public function unregister(String/HTMLElement) element) -
- Unregister a drag drop element -
- Parameters: -
  • element : String/HTMLElement)
    The id or DOM node to unregister
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Registry.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.dd.ScrollManager.html b/www/extras/extjs/docs/output/Ext.dd.ScrollManager.html deleted file mode 100644 index 2c2071c93..000000000 --- a/www/extras/extjs/docs/output/Ext.dd.ScrollManager.html +++ /dev/null @@ -1,223 +0,0 @@ - - - - Ext.dd.ScrollManager - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.dd.ScrollManager

- - - - - -
Package:Ext.dd
Class:ScrollManager
Extends:Object
Defined In:ScrollManager.js
-
- Provides automatic scrolling of overflow regions in the page during drag operations.

-Note: This class uses "Point Mode" and is untested in "Intersect Mode".

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 animDuration : NumberScrollManager
The animation duration in seconds - -MUST BE less than Ext.dd.ScrollManager.frequency! (defaults to .4)
 animate : BooleanScrollManager
True to animate the scroll (defaults to true)
 frequency : NumberScrollManager
The frequency of scrolls in milliseconds (defaults to 500)
 increment : NumberScrollManager
The number of pixels to scroll in each scroll increment (defaults to 50)
 thresh : NumberScrollManager
The number of pixels from the edge of a container the pointer needs to be to -trigger scrolling (defaults to 25)
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 refreshCache() : voidScrollManager
Manually trigger a cache refresh.
 register(String/HTMLElement/Element/Array el) : voidScrollManager
Registers new overflow element(s) to auto scroll
 unregister(String/HTMLElement/Element/Array el) : voidScrollManager
Unregisters overflow element(s) so they are no longer scrolled
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

animDuration

- public Number animDuration -
- The animation duration in seconds - -MUST BE less than Ext.dd.ScrollManager.frequency! (defaults to .4)
-
This property is defined by ScrollManager.
-
- -
-

animate

- public Boolean animate -
- True to animate the scroll (defaults to true)
-
This property is defined by ScrollManager.
-
- -
-

frequency

- public Number frequency -
- The frequency of scrolls in milliseconds (defaults to 500)
-
This property is defined by ScrollManager.
-
- -
-

increment

- public Number increment -
- The number of pixels to scroll in each scroll increment (defaults to 50)
-
This property is defined by ScrollManager.
-
- -
-

thresh

- public Number thresh -
- The number of pixels from the edge of a container the pointer needs to be to -trigger scrolling (defaults to 25)
-
This property is defined by ScrollManager.
-
-
- - -

Method Details

-
- -
-

refreshCache

- public function refreshCache() -
- Manually trigger a cache refresh. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ScrollManager.
-
- -
-

register

- public function register(String/HTMLElement/Element/Array el) -
- Registers new overflow element(s) to auto scroll -
- Parameters: -
  • el : String/HTMLElement/Element/Array
    The id of or the element to be scrolled or an array of either
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ScrollManager.
-
- -
-

unregister

- public function unregister(String/HTMLElement/Element/Array el) -
- Unregisters overflow element(s) so they are no longer scrolled -
- Parameters: -
  • el : String/HTMLElement/Element/Array
    The id of or the element to be removed or an array of either
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ScrollManager.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.dd.StatusProxy.html b/www/extras/extjs/docs/output/Ext.dd.StatusProxy.html deleted file mode 100644 index c9840588b..000000000 --- a/www/extras/extjs/docs/output/Ext.dd.StatusProxy.html +++ /dev/null @@ -1,375 +0,0 @@ - - - - Ext.dd.StatusProxy - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.dd.StatusProxy

- - - - - -
Package:Ext.dd
Class:StatusProxy
Extends:Object
Defined In:StatusProxy.js
-
- A specialized drag proxy that supports a drop status icon, Ext.Layer styles and auto-repair. This is the -default drag proxy used by all Ext.dd components.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 StatusProxy(Object config)StatusProxy
 getEl() : Ext.LayerStatusProxy
Returns the underlying proxy Ext.Layer
 getGhost() : Ext.ElementStatusProxy
Returns the ghost element
 hide(Boolean clear) : voidStatusProxy
Hides the proxy
 repair(Array xy, Function callback, Object scope) : voidStatusProxy
Causes the proxy to return to its position of origin via an animation. Should be called after an -invalid drop operat...
 reset(Boolean clearGhost) : voidStatusProxy
Resets the status indicator to the default dropNotAllowed value
 setStatus(String cssClass) : voidStatusProxy
Updates the proxy's visual element to indicate the status of whether or not drop is allowed -over the current target e...
 show() : voidStatusProxy
Displays this proxy
 stop() : voidStatusProxy
Stops the repair animation if it's currently running
 sync() : voidStatusProxy
Force the Layer to sync its shadow and shim positions to the element
 update(String html) : voidStatusProxy
Updates the contents of the ghost element
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 dropAllowed : StringStatusProxy
The CSS class to apply to the status element when drop is allowed (defaults to "x-dd-drop-ok").
 dropNotAllowed : StringStatusProxy
The CSS class to apply to the status element when drop is not allowed (defaults to "x-dd-drop-nodrop").
- - -

Constructor Details

-
-
-

StatusProxy

- public function StatusProxy(Object config) -
-
- Parameters: -
  • config : Object
-
-
-
-
- -

Method Details

-
- -
-

getEl

- public function getEl() -
- Returns the underlying proxy Ext.Layer -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Layer
    el
  • -
-
-
-
This method is defined by StatusProxy.
-
- -
-

getGhost

- public function getGhost() -
- Returns the ghost element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    el
  • -
-
-
-
This method is defined by StatusProxy.
-
- -
-

hide

- public function hide(Boolean clear) -
- Hides the proxy -
- Parameters: -
  • clear : Boolean
    True to reset the status and clear the ghost contents, false to preserve them
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by StatusProxy.
-
- -
-

repair

- public function repair(Array xy, Function callback, Object scope) -
- Causes the proxy to return to its position of origin via an animation. Should be called after an -invalid drop operation by the item being dragged. -
- Parameters: -
  • xy : Array
    The XY position of the element ([x, y])
  • callback : Function
    The function to call after the repair is complete
  • scope : Object
    The scope in which to execute the callback
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by StatusProxy.
-
- -
-

reset

- public function reset(Boolean clearGhost) -
- Resets the status indicator to the default dropNotAllowed value -
- Parameters: -
  • clearGhost : Boolean
    True to also remove all content from the ghost, false to preserve it
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by StatusProxy.
-
- -
-

setStatus

- public function setStatus(String cssClass) -
- Updates the proxy's visual element to indicate the status of whether or not drop is allowed -over the current target element. -
- Parameters: -
  • cssClass : String
    The css class for the new drop status indicator image
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by StatusProxy.
-
- -
-

show

- public function show() -
- Displays this proxy -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by StatusProxy.
-
- -
-

stop

- public function stop() -
- Stops the repair animation if it's currently running -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by StatusProxy.
-
- -
-

sync

- public function sync() -
- Force the Layer to sync its shadow and shim positions to the element -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by StatusProxy.
-
- -
-

update

- public function update(String html) -
- Updates the contents of the ghost element -
- Parameters: -
  • html : String
    The html that will replace the current innerHTML of the ghost element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by StatusProxy.
-
-
- -

Config Details

-
- -
-

dropAllowed

- dropAllowed : String -
- The CSS class to apply to the status element when drop is allowed (defaults to "x-dd-drop-ok").
-
This config option is defined by StatusProxy.
-
- -
-

dropNotAllowed

- dropNotAllowed : String -
- The CSS class to apply to the status element when drop is not allowed (defaults to "x-dd-drop-nodrop").
-
This config option is defined by StatusProxy.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.form.BasicForm.html b/www/extras/extjs/docs/output/Ext.form.BasicForm.html deleted file mode 100644 index e36c8b189..000000000 --- a/www/extras/extjs/docs/output/Ext.form.BasicForm.html +++ /dev/null @@ -1,906 +0,0 @@ - - - - Ext.form.BasicForm - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.form.BasicForm

- - - - - - -
Package:Ext.form
Class:BasicForm
Extends:Observable
Subclasses:Form
Defined In:BasicForm.js
-
- Supplies the functionality to do "actions" on forms and initialize Ext.form.Field types on existing markup.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 waitMsgTarget : MixedBasicForm
By default wait messages are displayed with Ext.MessageBox.wait. You can target a specific -element by passing it or i...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 BasicForm(String/HTMLElement/Ext.Element el, Object config)BasicForm
 add(Field field1, [Field field2], [Field etc]) : voidBasicForm
Add Ext.form components to this form
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 applyIfToFields(Object values) : voidBasicForm
Calls Ext.applyIf for all field in this form with the passed object
 applyToFields(Object values) : voidBasicForm
Calls Ext.apply for all field in this form with the passed object
 clearInvalid() : voidBasicForm
Clears all invalid messages in this form
 doAction(String actionName, Object options) : voidBasicForm
Performs a predefined action (submit or load) or custom actions you define on this form
 findField(String id) : FieldBasicForm
Find a Ext.form.Field in this form by id, dataIndex, name or hiddenName
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getValues(Boolean asString) : ObjectBasicForm
Returns the fields in this form as an object with key value pair. If multiple fields exist with the same name -they ar...
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 isValid() : BooleanBasicForm
Returns true is client-side validation on the form is successful
 load(Object options) : voidBasicForm
Shortcut to do a load action
 markInvalid(Array/Object errors) : voidBasicForm
Mark fields in this form invalid in bulk.
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 remove(Field field) : voidBasicForm
Removes a field from the items collection (does NOT remove its markup)
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render() : voidBasicForm
Looks at the fields in this form, checks them for an id attribute -and call applyTo on the existing dom element with t...
 reset() : voidBasicForm
Resets this form
 setValues(Array/Object values) : voidBasicForm
Set values for fields in this form in bulk.
 submit(Object options) : voidBasicForm
Shortcut to do a submit action
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 updateRecord(Record record) : voidBasicForm
Persists the values in this form into the passed Ext.data.Record object in a beginEdit/endEdit block.
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 actioncomplete : (Form this, Action action)BasicForm
Fires when an action is completed
 actionfailed : (Form this, Action action)BasicForm
Fires when an action fails
 beforeaction : (Form this, Action action)BasicForm
Fires before any action is performed. Return false to cancel the action.
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 baseParams : ObjectBasicForm
Parameters to pass with all requests. e.g. baseParams: {id: '123', foo: 'bar'}
 errorReader : DataReaderBasicForm
An Ext.data.DataReader (e.g. Ext.data.XmlReader to be used to read data when reading validation errors on "submit" ac...
 fileUpload : BooleanBasicForm
Set to true if this form is a file upload (YUI adapter only)
 method : StringBasicForm
The request method to use (GET or POST) for form actions if one isn't supplied in the action options
 reader : DataReaderBasicForm
An Ext.data.DataReader (e.g. Ext.data.XmlReader to be used to read data when executing "load" actions. This is comple...
 timeout : NumberBasicForm
 url : StringBasicForm
The url to use for form actions if one isn't supplied in the action options
-

Property Details

-
- -
-

waitMsgTarget

- public Mixed waitMsgTarget -
- By default wait messages are displayed with Ext.MessageBox.wait. You can target a specific -element by passing it or its id or mask the form itself by passing in true.
-
This property is defined by BasicForm.
-
-
- - -

Constructor Details

-
-
-

BasicForm

- public function BasicForm(String/HTMLElement/Ext.Element el, Object config) -
-
- Parameters: -
  • el : String/HTMLElement/Ext.Element
    The form element or its id
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

add

- public function add(Field field1, [Field field2], [Field etc]) -
- Add Ext.form components to this form -
- Parameters: -
  • field1 : Field
  • field2 : Field
    (optional)
  • etc : Field
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

applyIfToFields

- public function applyIfToFields(Object values) -
- Calls Ext.applyIf for all field in this form with the passed object -
- Parameters: -
  • values : Object
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

applyToFields

- public function applyToFields(Object values) -
- Calls Ext.apply for all field in this form with the passed object -
- Parameters: -
  • values : Object
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

clearInvalid

- public function clearInvalid() -
- Clears all invalid messages in this form -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

doAction

- public function doAction(String actionName, Object options) -
- Performs a predefined action (submit or load) or custom actions you define on this form -
- Parameters: -
  • actionName : String
    The name of the action type
  • options : Object
    The options to pass to the action
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

findField

- public function findField(String id) -
- Find a Ext.form.Field in this form by id, dataIndex, name or hiddenName -
- Parameters: -
  • id : String
    The value to search for
- Returns: -
    -
  • Field
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getValues

- public function getValues(Boolean asString) -
- Returns the fields in this form as an object with key value pair. If multiple fields exist with the same name -they are returned as an array. -
- Parameters: -
  • asString : Boolean
- Returns: -
    -
  • Object
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

isValid

- public function isValid() -
- Returns true is client-side validation on the form is successful -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

load

- public function load(Object options) -
- Shortcut to do a load action -
- Parameters: -
  • options : Object
    The options to pass to the action
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

markInvalid

- public function markInvalid(Array/Object errors) -
- Mark fields in this form invalid in bulk. -
- Parameters: -
  • errors : Array/Object
    Either an array in the form [{id:'fieldId', msg:'The message'},...] or an object hash of {id: msg, id2: msg2}
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

remove

- public function remove(Field field) -
- Removes a field from the items collection (does NOT remove its markup) -
- Parameters: -
  • field : Field
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render() -
- Looks at the fields in this form, checks them for an id attribute -and call applyTo on the existing dom element with that id -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

reset

- public function reset() -
- Resets this form -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

setValues

- public function setValues(Array/Object values) -
- Set values for fields in this form in bulk. -
- Parameters: -
  • values : Array/Object
    Either an array in the form [{id:'fieldId', value:'foo'},...] or an object hash of {id: value, id2: value2}
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

submit

- public function submit(Object options) -
- Shortcut to do a submit action -
- Parameters: -
  • options : Object
    The options to pass to the action
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

updateRecord

- public function updateRecord(Record record) -
- Persists the values in this form into the passed Ext.data.Record object in a beginEdit/endEdit block. -
- Parameters: -
  • record : Record
    The record to edit
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
-
- -

Event Details

-
- -
-

actioncomplete

- public event actioncomplete -
- Fires when an action is completed -
- Subscribers will be called with the following parameters: -
  • this : Form
  • action : Action
    The action that completed
-
-
-
This event is defined by BasicForm.
-
- -
-

actionfailed

- public event actionfailed -
- Fires when an action fails -
- Subscribers will be called with the following parameters: -
  • this : Form
  • action : Action
    The action that failed
-
-
-
This event is defined by BasicForm.
-
- -
-

beforeaction

- public event beforeaction -
- Fires before any action is performed. Return false to cancel the action. -
- Subscribers will be called with the following parameters: -
  • this : Form
  • action : Action
    The action to be performed
-
-
-
This event is defined by BasicForm.
-
-
-

Config Details

-
- -
-

baseParams

- baseParams : Object -
- Parameters to pass with all requests. e.g. baseParams: {id: '123', foo: 'bar'}
-
This config option is defined by BasicForm.
-
- -
-

errorReader

- errorReader : DataReader -
- An Ext.data.DataReader (e.g. Ext.data.XmlReader to be used to read data when reading validation errors on "submit" actions. This is completely optional as there is built-in support for processing JSON.
-
This config option is defined by BasicForm.
-
- -
-

fileUpload

- fileUpload : Boolean -
- Set to true if this form is a file upload (YUI adapter only)
-
This config option is defined by BasicForm.
-
- -
-

method

- method : String -
- The request method to use (GET or POST) for form actions if one isn't supplied in the action options
-
This config option is defined by BasicForm.
-
- -
-

reader

- reader : DataReader -
- An Ext.data.DataReader (e.g. Ext.data.XmlReader to be used to read data when executing "load" actions. This is completely optional as there is built-in support for processing JSON.
-
This config option is defined by BasicForm.
-
- -
-

timeout

- timeout : Number -
-
-
This config option is defined by BasicForm.
-
- -
-

url

- url : String -
- The url to use for form actions if one isn't supplied in the action options
-
This config option is defined by BasicForm.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.form.Checkbox.html b/www/extras/extjs/docs/output/Ext.form.Checkbox.html deleted file mode 100644 index 46db38830..000000000 --- a/www/extras/extjs/docs/output/Ext.form.Checkbox.html +++ /dev/null @@ -1,1549 +0,0 @@ - - - - Ext.form.Checkbox - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.form.Checkbox

- - - - - - -
Package:Ext.form
Class:Checkbox
Extends:Field
Subclasses:Radio
Defined In:Checkbox.js
-
- Single checkbox field. Can be used as a direct replacement for traditional checkbox fields.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Checkbox(Object config)Checkbox
Creates a new CheckBox
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 applyTo(String/HTMLElement/Element el) : Ext.form.FieldField
Apply the behaviors of this component to an existing element. This is used instead of render().
 clearInvalid() : voidField
Clear any invalid styles/messages for this field
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 getName() : StringField
Returns the name attribute of the field if available
 getRawValue() : MixedField
Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue.
 getValue() : BooleanCheckbox
Returns the checked state of the checkbox.
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isValid(Boolean preventMark) : BooleanField
Returns whether or not the field value is currently valid
 isVisible() : voidComponent
Returns true if this component is visible
 markInvalid(String msg) : voidField
Mark this field as invalid
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 reset() : voidField
Resets the current field value to the originally-loaded value and clears any validation messages
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setRawValue(Mixed value) : voidField
Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue.
 setSize(Number width, Number height) : voidCheckbox
* -Sets the width and height of the checkbox wrapper element
 setValue(Boolean/String checked) : voidCheckbox
Sets the checked state of the checkbox
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 validate() : BooleanField
Validates the field value
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 blur : (Ext.form.Field this)Field
Fires when
 change : (Ext.form.Field this, Mixed value, Mixed value)Field
Fires just before the field blurs if the field value has changed
 check : (Ext.form.Checkbox this, Boolean checked)Checkbox
Fires when the checkbox is checked or unchecked
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 focus : (Ext.form.Field this)Field
Fires when this field receives input focus
 hide : (Ext.Component this)Component
Fires after the component is hidden
 invalid : (Ext.form.Field this, String msg)Field
Fires after the field has been marked as invalid
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
 specialkey : (Ext.form.Field this, Ext.EventObject e)Field
Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.g...
 valid : (Ext.form.Field this)Field
Fires after the field has been validated with no errors
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 autoCreate : String/ObjectField
A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "20", au...
 boxLabel : StringCheckbox
The text that appears beside the checkbox
 checked : BooleanCheckbox
True if the the checkbox should render already checked (defaults to false)
 fieldClass : StringCheckbox
The default CSS class for the checkbox (defaults to "x-form-field")
 focusClass : StringCheckbox
The CSS class to use when the checkbox receives focus (defaults to 'x-form-check-focus')
 inputType : StringField
The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
 inputValue : StringCheckbox
The value that should go into the generated input element's value attribute
 invalidClass : StringField
The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
 invalidText : StringField
The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field i...
 msgFx : StringField
Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
 msgTarget : StringField
The location where error text should display. Should be one of the following values (defaults to 'qtip'): Value Desc...
 validateOnBlur : String/BooleanField
Defaults to true.
 validationDelay : NumberField
The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
 validationEvent : String/BooleanField
The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
 value : MixedField
A value to initialize this field with
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

Checkbox

- public function Checkbox(Object config) -
- Creates a new CheckBox
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

applyTo

- public function applyTo(String/HTMLElement/Element el) -
- Apply the behaviors of this component to an existing element. This is used instead of render(). -
- Parameters: -
  • el : String/HTMLElement/Element
    The id of the node, a DOM Node or an existing Element
- Returns: -
    -
  • Ext.form.Field
    this
  • -
-
-
-
This method is defined by Field.
-
- -
-

clearInvalid

- public function clearInvalid() -
- Clear any invalid styles/messages for this field -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

getName

- public function getName() -
- Returns the name attribute of the field if available -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    name The field name
  • -
-
-
-
This method is defined by Field.
-
- -
-

getRawValue

- public function getRawValue() -
- Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue. -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The field value
  • -
-
-
-
This method is defined by Field.
-
- -
-

getValue

- public function getValue() -
- Returns the checked state of the checkbox. -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
    True if checked, else false
  • -
-
-
-
This method is defined by Checkbox.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isValid

- public function isValid(Boolean preventMark) -
- Returns whether or not the field value is currently valid -
- Parameters: -
  • preventMark : Boolean
    True to disable marking the field invalid
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

markInvalid

- public function markInvalid(String msg) -
- Mark this field as invalid -
- Parameters: -
  • msg : String
    The validation message
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

reset

- public function reset() -
- Resets the current field value to the originally-loaded value and clears any validation messages -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setRawValue

- public function setRawValue(Mixed value) -
- Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue. -
- Parameters: -
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setSize

- public function setSize(Number width, Number height) -
- * -Sets the width and height of the checkbox wrapper element -
- Parameters: -
  • width : Number
    New width in pixels
  • height : Number
    New height in pixels
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Checkbox.
-
- -
-

setValue

- public function setValue(Boolean/String checked) -
- Sets the checked state of the checkbox -
- Parameters: -
  • checked : Boolean/String
    True, 'true,' or '1' to check the checkbox, any other value will uncheck it
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Checkbox.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

validate

- public function validate() -
- Validates the field value -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
-
- -

Event Details

-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

blur

- public event blur -
- Fires when -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

change

- public event change -
- Fires just before the field blurs if the field value has changed -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • value : Mixed
    The changed value
  • value : Mixed
    The original value
-
-
-
This event is defined by Field.
-
- -
-

check

- public event check -
- Fires when the checkbox is checked or unchecked -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Checkbox
    This checkbox
  • checked : Boolean
    The new checked value
-
-
-
This event is defined by Checkbox.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

focus

- public event focus -
- Fires when this field receives input focus -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

invalid

- public event invalid -
- Fires after the field has been marked as invalid -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • msg : String
    The validation message
-
-
-
This event is defined by Field.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

specialkey

- public event specialkey -
- Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.getKey to determine which key was pressed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by Field.
-
- -
-

valid

- public event valid -
- Fires after the field has been validated with no errors -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
-
-

Config Details

-
- -
-

autoCreate

- autoCreate : String/Object -
- A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "20", autocomplete: "off"})
-
This config option is defined by Field.
-
- -
-

boxLabel

- boxLabel : String -
- The text that appears beside the checkbox
-
This config option is defined by Checkbox.
-
- -
-

checked

- checked : Boolean -
- True if the the checkbox should render already checked (defaults to false)
-
This config option is defined by Checkbox.
-
- -
-

fieldClass

- fieldClass : String -
- The default CSS class for the checkbox (defaults to "x-form-field")
-
This config option is defined by Checkbox.
-
- -
-

focusClass

- focusClass : String -
- The CSS class to use when the checkbox receives focus (defaults to 'x-form-check-focus')
-
This config option is defined by Checkbox.
-
- -
-

inputType

- inputType : String -
- The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
-
This config option is defined by Field.
-
- -
-

inputValue

- inputValue : String -
- The value that should go into the generated input element's value attribute
-
This config option is defined by Checkbox.
-
- -
-

invalidClass

- invalidClass : String -
- The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
-
This config option is defined by Field.
-
- -
-

invalidText

- invalidText : String -
- The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field is invalid")
-
This config option is defined by Field.
-
- -
-

msgFx

- msgFx : String -
- Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
-
This config option is defined by Field.
-
- -
-

msgTarget

- msgTarget : String -
- The location where error text should display. Should be one of the following values (defaults to 'qtip'):
 Value Description ----------- ---------------------------------------------------------------------- qtip Display a quick tip when the user hovers over the field title Display a default browser title attribute popup under Add a block div beneath the field containing the error text side Add an error icon to the right of the field with a popup on hover [element id] Add the error text directly to the innerHTML of the specified element 
-
This config option is defined by Field.
-
- -
-

validateOnBlur

- validateOnBlur : String/Boolean -
- Defaults to true.
-
This config option is defined by Field.
-
- -
-

validationDelay

- validationDelay : Number -
- The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
-
This config option is defined by Field.
-
- -
-

validationEvent

- validationEvent : String/Boolean -
- The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
-
This config option is defined by Field.
-
- -
-

value

- value : Mixed -
- A value to initialize this field with
-
This config option is defined by Field.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.form.Column.html b/www/extras/extjs/docs/output/Ext.form.Column.html deleted file mode 100644 index 4ac738ea0..000000000 --- a/www/extras/extjs/docs/output/Ext.form.Column.html +++ /dev/null @@ -1,985 +0,0 @@ - - - - Ext.form.Column - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.form.Column

- - - - - -
Package:Ext.form
Class:Column
Extends:Layout
Defined In:Layout.js
-
- Creates a column container for layout and rendering of fields in an Ext.form.Form.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Column(Object config)Column
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isVisible() : voidComponent
Returns true if this component is visible
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 hide : (Ext.Component this)Component
Fires after the component is hidden
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 autoCreate : String/ObjectColumn
A DomHelper element spec used to autocreate the column (defaults to {tag: 'div', cls: 'x-form-ct x-form-column'})
 clear : BooleanLayout
True to add a clearing element at the end of this layout, equivalent to CSS clear: both (defaults to true)
 hideLabels : BooleanLayout
True to suppress the display of field labels in this layout (defaults to false)
 labelAlign : StringLayout
Valid values are "left," "top" and "right" (defaults to "left")
 labelSeparator : StringLayout
The separator to use after field labels (defaults to ':')
 labelWidth : NumberLayout
Fixed width in pixels of all field labels (defaults to undefined)
 style : String/Object/FunctionLayout
A style specification string eg "width:100px", or object in the form {width:"100px"}, or a function which returns suc...
 width : NumberColumn
The fixed width of the column in pixels (defaults to auto)
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

Column

- public function Column(Object config) -
-
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
-
-

Config Details

-
- -
-

autoCreate

- autoCreate : String/Object -
- A DomHelper element spec used to autocreate the column (defaults to {tag: 'div', cls: 'x-form-ct x-form-column'})
-
This config option is defined by Column.
-
- -
-

clear

- clear : Boolean -
- True to add a clearing element at the end of this layout, equivalent to CSS clear: both (defaults to true)
-
This config option is defined by Layout.
-
- -
-

hideLabels

- hideLabels : Boolean -
- True to suppress the display of field labels in this layout (defaults to false)
-
This config option is defined by Layout.
-
- -
-

labelAlign

- labelAlign : String -
- Valid values are "left," "top" and "right" (defaults to "left")
-
This config option is defined by Layout.
-
- -
-

labelSeparator

- labelSeparator : String -
- The separator to use after field labels (defaults to ':')
-
This config option is defined by Layout.
-
- -
-

labelWidth

- labelWidth : Number -
- Fixed width in pixels of all field labels (defaults to undefined)
-
This config option is defined by Layout.
-
- -
-

style

- style : String/Object/Function -
- A style specification string eg "width:100px", or object in the form {width:"100px"}, or a function which returns such a specification.
-
This config option is defined by Layout.
-
- -
-

width

- width : Number -
- The fixed width of the column in pixels (defaults to auto)
-
This config option is defined by Column.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.form.ComboBox.html b/www/extras/extjs/docs/output/Ext.form.ComboBox.html deleted file mode 100644 index 9c051f56c..000000000 --- a/www/extras/extjs/docs/output/Ext.form.ComboBox.html +++ /dev/null @@ -1,2731 +0,0 @@ - - - - Ext.form.ComboBox - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.form.ComboBox

- - - - - -
Package:Ext.form
Class:ComboBox
Extends:TriggerField
Defined In:Combo.js
-
- A combobox control with support for autocomplete, remote-loading, paging and many other features.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 ComboBox(Object config)ComboBox
Create a new ComboBox.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 applyTo(String/HTMLElement/Element el) : Ext.form.FieldField
Apply the behaviors of this component to an existing element. This is used instead of render().
 autoSize() : voidTextField
Automatically grows the field to accomodate the width of the text up to the maximum field width allowed. -This only ta...
 clearInvalid() : voidField
Clear any invalid styles/messages for this field
 clearValue() : voidComboBox
Clears any text/value currently set in the field
 collapse() : voidComboBox
Hides the dropdown list if it is currently expanded. Fires the 'collapse' event on completion.
 disable() : voidComponent
Disable this component
 doQuery(String query, Boolean forceAll) : voidComboBox
Execute a query to filter the dropdown list. Fires the beforequery event prior to performing the -query allowing the ...
 enable() : voidComponent
Enable this component
 expand() : voidComboBox
Expands the dropdown list if it is currently hidden. Fires the 'expand' event on completion.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 getName() : StringField
Returns the name attribute of the field if available
 getRawValue() : MixedField
Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue.
 getValue() : StringComboBox
Returns the currently-selected field value or empty string if no value is set.
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isExpanded() : voidComboBox
Returns true if the dropdown list is expanded, else false.
 isValid(Boolean preventMark) : BooleanField
Returns whether or not the field value is currently valid
 isVisible() : voidComponent
Returns true if this component is visible
 markInvalid(String msg) : voidField
Mark this field as invalid
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 onTriggerClick(EventObject e) : voidTriggerField
The function that should handle the trigger's click event. This method does nothing by default until overridden -by a...
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 reset() : voidField
Resets the current field value to the originally-loaded value and clears any validation messages
 select(Number index, Boolean scrollIntoView) : voidComboBox
Select an item in the dropdown list by its numeric index in the list
 selectByValue(String value, Boolean scrollIntoView) : BooleanComboBox
Select an item in the dropdown list by its data value
 selectNext() : voidComboBox
Select the next item in the dropdown list (selects the first item by default if no items are currently selected)
 selectPrev() : voidComboBox
Select the previous item in the dropdown list (selects the first item by default if no items are currently selected)
 selectText([Number start], [Number end]) : voidTextField
Selects text in this field
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setEditable() : voidComboBox
Allow or prevent the user from directly editing the field text. If false is passed in, -the user will only be able to...
 setRawValue(Mixed value) : voidField
Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue.
 setSize(Number width, Number height) : voidField
Sets the height and width of the field
 setValue(String value) : voidComboBox
Sets the specified value into the field. If the value finds a match, the corresponding record text -will be displayed...
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 validate() : BooleanField
Validates the field value
 validateValue(Mixed value) : BooleanTextField
Validates a value according to the field's validation rules and marks the field as invalid -if the validation fails
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 autosize : (Ext.form.Field this, Number width)TextField
Fires when the autosize function is triggered. The field may or may not have actually changed size -according to the ...
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforequery : (Object e)ComboBox
Fires before all queries are processed. Return false to cancel the query or set cancel to true. -The event object pass...
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeselect : (Ext.form.ComboBox combo, Ext.data.Record record, Number index)ComboBox
Fires before a list item is selected. Return false to cancel the selection.
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 blur : (Ext.form.Field this)Field
Fires when
 change : (Ext.form.Field this, Mixed value, Mixed value)Field
Fires just before the field blurs if the field value has changed
 collapse : (Ext.form.ComboBox combo)ComboBox
Fires when the dropdown list is collapsed
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 expand : (Ext.form.ComboBox combo)ComboBox
Fires when the dropdown list is expanded
 focus : (Ext.form.Field this)Field
Fires when this field receives input focus
 hide : (Ext.Component this)Component
Fires after the component is hidden
 invalid : (Ext.form.Field this, String msg)Field
Fires after the field has been marked as invalid
 render : (Ext.Component this)Component
Fires after the component is rendered
 select : (Ext.form.ComboBox combo, Ext.data.Record record, Number index)ComboBox
Fires when a list item is selected
 show : (Ext.Component this)Component
Fires after the component is shown
 specialkey : (Ext.form.Field this, Ext.EventObject e)Field
Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.g...
 valid : (Ext.form.Field this)Field
Fires after the field has been validated with no errors
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 allQuery : StringComboBox
The text query to send to the server to return all records for the list with no filtering (defaults to '')
 allowBlank : BooleanTextField
False to validate that the value length > 0 (defaults to true)
 autoCreate : Boolean/ObjectComboBox
A DomHelper element spec, or true for a default element spec (defaults to: {tag: "input", type: "text", size: "24", a...
 blankText : StringTextField
Error text to display if the allow blank validation fails (defaults to "This field is required")
 disableKeyFilter : BooleanTextField
True to disable input keystroke filtering (defaults to false)
 displayField : StringComboBox
The underlying data field name to bind to this CombBox (defaults to undefined if mode = 'remote' or 'text' if mode = ...
 editable : BooleanComboBox
False to prevent the user from typing text directly into the field, just like a traditional select (defaults to true)
 emptyClass : StringTextField
The CSS class to apply to an empty field to style the emptyText (defaults to 'x-form-empty-field'). This class is aut...
 emptyText : StringTextField
The default text to display in an empty field (defaults to null).
 fieldClass : StringField
The default CSS class for the field (defaults to "x-form-field")
 focusClass : StringField
The CSS class to use when the field receives focus (defaults to "x-form-focus")
 forceSelection : BooleanComboBox
True to restrict the selected value to one of the values in the list, false to allow the user to set arbitrary text i...
 grow : BooleanTextField
True if this field should automatically grow and shrink to its content
 growMax : NumberTextField
The maximum width to allow when grow = true (defaults to 800)
 growMin : NumberTextField
The minimum width to allow when grow = true (defaults to 30)
 handleHeight : NumberComboBox
The height in pixels of the dropdown list resize handle if resizable = true (defaults to 8)
 hiddenName : StringComboBox
If specified, a hidden form field with this name is dynamically generated to store the field's data value (defaults t...
 hideTrigger : BooleanTriggerField
True to hide the trigger element and display only the base text field (defaults to false)
 inputType : StringField
The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
 invalidClass : StringField
The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
 invalidText : StringField
The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field i...
 lazyRender : BooleanComboBox
True to prevent the ComboBox from rendering until requested (should always be used when rendering into an Ext.Editor,...
 listAlign : StringComboBox
A valid anchor position value. See Ext.Element.alignTo for details on supported anchor positions (defaults to 'tl-bl')
 listClass : StringComboBox
CSS class to apply to the dropdown list element (defaults to '')
 listWidth : NumberComboBox
The width in pixels of the dropdown list (defaults to the width of the ComboBox field)
 loadingText : StringComboBox
The text to display in the dropdown list while data is loading. Only applies when mode = 'remote' (defaults to 'Loadi...
 maskRe : StringTextField
An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)
 maxHeight : NumberComboBox
The maximum height in pixels of the dropdown list before scrollbars are shown (defaults to 300)
 maxLength : NumberTextField
Maximum input field length allowed (defaults to Number.MAX_VALUE)
 maxLengthText : StringTextField
Error text to display if the maximum length validation fails (defaults to "The maximum length for this field is {maxL...
 minChars : NumberComboBox
The minimum number of characters the user must type before autocomplete and typeahead activate (defaults to 4, does n...
 minLength : NumberTextField
Minimum input field length required (defaults to 0)
 minLengthText : StringTextField
Error text to display if the minimum length validation fails (defaults to "The minimum length for this field is {minL...
 minListWidth : NumberComboBox
The minimum width of the dropdown list in pixels (defaults to 70, will be ignored if listWidth has a higher value)
 mode : StringComboBox
Set to 'local' if the ComboBox loads local data (defaults to 'remote' which loads from the server)
 msgFx : StringField
Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
 msgTarget : StringField
The location where error text should display. Should be one of the following values (defaults to 'qtip'): Value Desc...
 pageSize : NumberComboBox
If greater than 0, a paging toolbar is displayed in the footer of the dropdown list and the filter queries will execu...
 queryDelay : NumberComboBox
The length of time in milliseconds to delay between the start of typing and sending the query to filter the dropdown ...
 queryParam : StringComboBox
Name of the query as it will be passed on the querystring (defaults to 'query')
 regex : RegExpTextField
A JavaScript RegExp object to be tested against the field value during validation (defaults to null). If available, t...
 regexText : StringTextField
The error text to display if regex is used and the test fails during validation (defaults to "")
 resizable : BooleanComboBox
True to add a resize handle to the bottom of the dropdown list (defaults to false)
 selectOnFocus : BooleanComboBox
True to select any existing text in the field immediately on focus. Only applies when editable = true (defaults to fa...
 selectedClass : StringComboBox
CSS class to apply to the selected item in the dropdown list (defaults to 'x-combo-selected')
 shadow : Boolean/StringComboBox
True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right
 transform : String/HTMLElement/ElementComboBox
The id, DOM node or element of an existing select to convert to a ComboBox
 triggerAction : StringComboBox
The action to execute when the trigger field is activated. Use 'all' to run the query specified by the allQuery confi...
 triggerClass : StringComboBox
An additional CSS class used to style the trigger button. The trigger will always get the class 'x-form-trigger' and ...
 typeAhead : BooleanComboBox
True to populate and autoselect the remainder of the text being typed after a configurable delay (typeAheadDelay) if ...
 typeAheadDelay : NumberComboBox
The length of time in milliseconds to wait until the typeahead text is displayed if typeAhead = true (defaults to 250)
 validateOnBlur : String/BooleanField
Defaults to true.
 validationDelay : NumberField
The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
 validationEvent : String/BooleanField
The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
 validator : FunctionTextField
A custom validation function to be called during field validation (defaults to null). If available, this function wil...
 value : MixedField
A value to initialize this field with
 valueField : StringComboBox
The underlying data value name to bind to this CombBox (defaults to undefined if mode = 'remote' or 'value' if mode =...
 valueNotFoundText : StringComboBox
When using a name/value combo, if the value passed to setValue is not found in the store, valueNotFoundText will be d...
 vtype : StringTextField
A validation type name as defined in Ext.form.VTypes (defaults to null)
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

ComboBox

- public function ComboBox(Object config) -
- Create a new ComboBox.
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

applyTo

- public function applyTo(String/HTMLElement/Element el) -
- Apply the behaviors of this component to an existing element. This is used instead of render(). -
- Parameters: -
  • el : String/HTMLElement/Element
    The id of the node, a DOM Node or an existing Element
- Returns: -
    -
  • Ext.form.Field
    this
  • -
-
-
-
This method is defined by Field.
-
- -
-

autoSize

- public function autoSize() -
- Automatically grows the field to accomodate the width of the text up to the maximum field width allowed. -This only takes effect if grow = true and fires the autosize event. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TextField.
-
- -
-

clearInvalid

- public function clearInvalid() -
- Clear any invalid styles/messages for this field -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

clearValue

- public function clearValue() -
- Clears any text/value currently set in the field -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ComboBox.
-
- -
-

collapse

- public function collapse() -
- Hides the dropdown list if it is currently expanded. Fires the 'collapse' event on completion. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ComboBox.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

doQuery

- public function doQuery(String query, Boolean forceAll) -
- Execute a query to filter the dropdown list. Fires the beforequery event prior to performing the -query allowing the query action to be canceled if needed. -
- Parameters: -
  • query : String
    The sql query to execute
  • forceAll : Boolean
    True to force the query to execute even if there are currently fewer characters in the field than the minimum specified by the minChars config option. It also clears any filter previously saved in the current store (defaults to false)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ComboBox.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

expand

- public function expand() -
- Expands the dropdown list if it is currently hidden. Fires the 'expand' event on completion. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ComboBox.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

getName

- public function getName() -
- Returns the name attribute of the field if available -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    name The field name
  • -
-
-
-
This method is defined by Field.
-
- -
-

getRawValue

- public function getRawValue() -
- Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue. -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The field value
  • -
-
-
-
This method is defined by Field.
-
- -
-

getValue

- public function getValue() -
- Returns the currently-selected field value or empty string if no value is set. -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    value The selected value
  • -
-
-
-
This method is defined by ComboBox.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isExpanded

- public function isExpanded() -
- Returns true if the dropdown list is expanded, else false. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ComboBox.
-
- -
-

isValid

- public function isValid(Boolean preventMark) -
- Returns whether or not the field value is currently valid -
- Parameters: -
  • preventMark : Boolean
    True to disable marking the field invalid
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

markInvalid

- public function markInvalid(String msg) -
- Mark this field as invalid -
- Parameters: -
  • msg : String
    The validation message
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

onTriggerClick

- public function onTriggerClick(EventObject e) -
- The function that should handle the trigger's click event. This method does nothing by default until overridden -by a handler implementation. -
- Parameters: -
  • e : EventObject
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TriggerField.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

reset

- public function reset() -
- Resets the current field value to the originally-loaded value and clears any validation messages -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

select

- public function select(Number index, Boolean scrollIntoView) -
- Select an item in the dropdown list by its numeric index in the list -
- Parameters: -
  • index : Number
    The zero-based index of the list item to select
  • scrollIntoView : Boolean
    False to prevent the dropdown list from autoscrolling to display the selected item if it is not currently in view (defaults to true)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ComboBox.
-
- -
-

selectByValue

- public function selectByValue(String value, Boolean scrollIntoView) -
- Select an item in the dropdown list by its data value -
- Parameters: -
  • value : String
    The data value of the item to select
  • scrollIntoView : Boolean
    False to prevent the dropdown list from autoscrolling to display the selected item if it is not currently in view (defaults to true)
- Returns: -
    -
  • Boolean
    valueFound True if the value matched an item in the list, else false
  • -
-
-
-
This method is defined by ComboBox.
-
- -
-

selectNext

- public function selectNext() -
- Select the next item in the dropdown list (selects the first item by default if no items are currently selected) -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ComboBox.
-
- -
-

selectPrev

- public function selectPrev() -
- Select the previous item in the dropdown list (selects the first item by default if no items are currently selected) -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ComboBox.
-
- -
-

selectText

- public function selectText([Number start], [Number end]) -
- Selects text in this field -
- Parameters: -
  • start : Number
    (optional) The index where the selection should start (defaults to 0)
  • end : Number
    (optional) The index where the selection should end (defaults to the text length)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TextField.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setEditable

- public function setEditable() -
- Allow or prevent the user from directly editing the field text. If false is passed in, -the user will only be able to select from the items defined in the dropdown list. This method -is the runtime equivalent of setting the editable config option at config time. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ComboBox.
-
- -
-

setRawValue

- public function setRawValue(Mixed value) -
- Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue. -
- Parameters: -
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setSize

- public function setSize(Number width, Number height) -
- Sets the height and width of the field -
- Parameters: -
  • width : Number
    The new field width in pixels
  • height : Number
    The new field height in pixels
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setValue

- public function setValue(String value) -
- Sets the specified value into the field. If the value finds a match, the corresponding record text -will be displayed in the field. If the value does not match the data value of an existing item, -and the valueNotFoundText config option is defined, it will be displayed as the default field text. -Otherwise the field will be blank (although the value will still be set). -
- Parameters: -
  • value : String
    The value to match
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ComboBox.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

validate

- public function validate() -
- Validates the field value -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
- -
-

validateValue

- public function validateValue(Mixed value) -
- Validates a value according to the field's validation rules and marks the field as invalid -if the validation fails -
- Parameters: -
  • value : Mixed
    The value to validate
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by TextField.
-
-
- -

Event Details

-
- -
-

autosize

- public event autosize -
- Fires when the autosize function is triggered. The field may or may not have actually changed size -according to the default logic, but this event provides a hook for the developer to apply additional -logic at runtime to resize the field if needed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
    This text field
  • width : Number
    The new field width
-
-
-
This event is defined by TextField.
-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforequery

- public event beforequery -
- Fires before all queries are processed. Return false to cancel the query or set cancel to true. -The event object passed has these properties: -
    -
  • {Ext.form.ComboBox} combo - This combo box
  • -
  • {String} query - The query
  • -
  • {Boolean} forceAll - true to force "all" query
  • -
  • {Boolean} cancel - set to true to cancel the query.
  • -
-
- Subscribers will be called with the following parameters: -
  • e : Object
    The query event object
-
-
-
This event is defined by ComboBox.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeselect

- public event beforeselect -
- Fires before a list item is selected. Return false to cancel the selection. -
- Subscribers will be called with the following parameters: -
  • combo : Ext.form.ComboBox
    This combo box
  • record : Ext.data.Record
    The data record returned from the underlying store
  • index : Number
    The index of the selected item in the dropdown list
-
-
-
This event is defined by ComboBox.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

blur

- public event blur -
- Fires when -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

change

- public event change -
- Fires just before the field blurs if the field value has changed -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • value : Mixed
    The changed value
  • value : Mixed
    The original value
-
-
-
This event is defined by Field.
-
- -
-

collapse

- public event collapse -
- Fires when the dropdown list is collapsed -
- Subscribers will be called with the following parameters: -
  • combo : Ext.form.ComboBox
    This combo box
-
-
-
This event is defined by ComboBox.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

expand

- public event expand -
- Fires when the dropdown list is expanded -
- Subscribers will be called with the following parameters: -
  • combo : Ext.form.ComboBox
    This combo box
-
-
-
This event is defined by ComboBox.
-
- -
-

focus

- public event focus -
- Fires when this field receives input focus -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

invalid

- public event invalid -
- Fires after the field has been marked as invalid -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • msg : String
    The validation message
-
-
-
This event is defined by Field.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

select

- public event select -
- Fires when a list item is selected -
- Subscribers will be called with the following parameters: -
  • combo : Ext.form.ComboBox
    This combo box
  • record : Ext.data.Record
    The data record returned from the underlying store
  • index : Number
    The index of the selected item in the dropdown list
-
-
-
This event is defined by ComboBox.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

specialkey

- public event specialkey -
- Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.getKey to determine which key was pressed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by Field.
-
- -
-

valid

- public event valid -
- Fires after the field has been validated with no errors -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
-
-

Config Details

-
- -
-

allQuery

- allQuery : String -
- The text query to send to the server to return all records for the list with no filtering (defaults to '')
-
This config option is defined by ComboBox.
-
- -
-

allowBlank

- allowBlank : Boolean -
- False to validate that the value length > 0 (defaults to true)
-
This config option is defined by TextField.
-
- -
-

autoCreate

- autoCreate : Boolean/Object -
- A DomHelper element spec, or true for a default element spec (defaults to: {tag: "input", type: "text", size: "24", autocomplete: "off"})
-
This config option is defined by ComboBox.
-
- -
-

blankText

- blankText : String -
- Error text to display if the allow blank validation fails (defaults to "This field is required")
-
This config option is defined by TextField.
-
- -
-

disableKeyFilter

- disableKeyFilter : Boolean -
- True to disable input keystroke filtering (defaults to false)
-
This config option is defined by TextField.
-
- -
-

displayField

- displayField : String -
- The underlying data field name to bind to this CombBox (defaults to undefined if mode = 'remote' or 'text' if mode = 'local')
-
This config option is defined by ComboBox.
-
- -
-

editable

- editable : Boolean -
- False to prevent the user from typing text directly into the field, just like a traditional select (defaults to true)
-
This config option is defined by ComboBox.
-
- -
-

emptyClass

- emptyClass : String -
- The CSS class to apply to an empty field to style the emptyText (defaults to 'x-form-empty-field'). This class is automatically added and removed as needed depending on the current field value.
-
This config option is defined by TextField.
-
- -
-

emptyText

- emptyText : String -
- The default text to display in an empty field (defaults to null).
-
This config option is defined by TextField.
-
- -
-

fieldClass

- fieldClass : String -
- The default CSS class for the field (defaults to "x-form-field")
-
This config option is defined by Field.
-
- -
-

focusClass

- focusClass : String -
- The CSS class to use when the field receives focus (defaults to "x-form-focus")
-
This config option is defined by Field.
-
- -
-

forceSelection

- forceSelection : Boolean -
- True to restrict the selected value to one of the values in the list, false to allow the user to set arbitrary text into the field (defaults to false)
-
This config option is defined by ComboBox.
-
- -
-

grow

- grow : Boolean -
- True if this field should automatically grow and shrink to its content
-
This config option is defined by TextField.
-
- -
-

growMax

- growMax : Number -
- The maximum width to allow when grow = true (defaults to 800)
-
This config option is defined by TextField.
-
- -
-

growMin

- growMin : Number -
- The minimum width to allow when grow = true (defaults to 30)
-
This config option is defined by TextField.
-
- -
-

handleHeight

- handleHeight : Number -
- The height in pixels of the dropdown list resize handle if resizable = true (defaults to 8)
-
This config option is defined by ComboBox.
-
- -
-

hiddenName

- hiddenName : String -
- If specified, a hidden form field with this name is dynamically generated to store the field's data value (defaults to the underlying DOM element's name)
-
This config option is defined by ComboBox.
-
- -
-

hideTrigger

- hideTrigger : Boolean -
- True to hide the trigger element and display only the base text field (defaults to false)
-
This config option is defined by TriggerField.
-
- -
-

inputType

- inputType : String -
- The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
-
This config option is defined by Field.
-
- -
-

invalidClass

- invalidClass : String -
- The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
-
This config option is defined by Field.
-
- -
-

invalidText

- invalidText : String -
- The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field is invalid")
-
This config option is defined by Field.
-
- -
-

lazyRender

- lazyRender : Boolean -
- True to prevent the ComboBox from rendering until requested (should always be used when rendering into an Ext.Editor, defaults to false)
-
This config option is defined by ComboBox.
-
- -
-

listAlign

- listAlign : String -
- A valid anchor position value. See Ext.Element.alignTo for details on supported anchor positions (defaults to 'tl-bl')
-
This config option is defined by ComboBox.
-
- -
-

listClass

- listClass : String -
- CSS class to apply to the dropdown list element (defaults to '')
-
This config option is defined by ComboBox.
-
- -
-

listWidth

- listWidth : Number -
- The width in pixels of the dropdown list (defaults to the width of the ComboBox field)
-
This config option is defined by ComboBox.
-
- -
-

loadingText

- loadingText : String -
- The text to display in the dropdown list while data is loading. Only applies when mode = 'remote' (defaults to 'Loading...')
-
This config option is defined by ComboBox.
-
- -
-

maskRe

- maskRe : String -
- An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)
-
This config option is defined by TextField.
-
- -
-

maxHeight

- maxHeight : Number -
- The maximum height in pixels of the dropdown list before scrollbars are shown (defaults to 300)
-
This config option is defined by ComboBox.
-
- -
-

maxLength

- maxLength : Number -
- Maximum input field length allowed (defaults to Number.MAX_VALUE)
-
This config option is defined by TextField.
-
- -
-

maxLengthText

- maxLengthText : String -
- Error text to display if the maximum length validation fails (defaults to "The maximum length for this field is {maxLength}")
-
This config option is defined by TextField.
-
- -
-

minChars

- minChars : Number -
- The minimum number of characters the user must type before autocomplete and typeahead activate (defaults to 4, does not apply if editable = false)
-
This config option is defined by ComboBox.
-
- -
-

minLength

- minLength : Number -
- Minimum input field length required (defaults to 0)
-
This config option is defined by TextField.
-
- -
-

minLengthText

- minLengthText : String -
- Error text to display if the minimum length validation fails (defaults to "The minimum length for this field is {minLength}")
-
This config option is defined by TextField.
-
- -
-

minListWidth

- minListWidth : Number -
- The minimum width of the dropdown list in pixels (defaults to 70, will be ignored if listWidth has a higher value)
-
This config option is defined by ComboBox.
-
- -
-

mode

- mode : String -
- Set to 'local' if the ComboBox loads local data (defaults to 'remote' which loads from the server)
-
This config option is defined by ComboBox.
-
- -
-

msgFx

- msgFx : String -
- Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
-
This config option is defined by Field.
-
- -
-

msgTarget

- msgTarget : String -
- The location where error text should display. Should be one of the following values (defaults to 'qtip'):
 Value Description ----------- ---------------------------------------------------------------------- qtip Display a quick tip when the user hovers over the field title Display a default browser title attribute popup under Add a block div beneath the field containing the error text side Add an error icon to the right of the field with a popup on hover [element id] Add the error text directly to the innerHTML of the specified element 
-
This config option is defined by Field.
-
- -
-

pageSize

- pageSize : Number -
- If greater than 0, a paging toolbar is displayed in the footer of the dropdown list and the filter queries will execute with page start and limit parameters. Only applies when mode = 'remote' (defaults to 0)
-
This config option is defined by ComboBox.
-
- -
-

queryDelay

- queryDelay : Number -
- The length of time in milliseconds to delay between the start of typing and sending the query to filter the dropdown list (defaults to 500 if mode = 'remote' or 10 if mode = 'local')
-
This config option is defined by ComboBox.
-
- -
-

queryParam

- queryParam : String -
- Name of the query as it will be passed on the querystring (defaults to 'query')
-
This config option is defined by ComboBox.
-
- -
-

regex

- regex : RegExp -
- A JavaScript RegExp object to be tested against the field value during validation (defaults to null). If available, this regex will be evaluated only after the basic validators all return true, and will be passed the current field value. If the test fails, the field will be marked invalid using regexText.
-
This config option is defined by TextField.
-
- -
-

regexText

- regexText : String -
- The error text to display if regex is used and the test fails during validation (defaults to "")
-
This config option is defined by TextField.
-
- -
-

resizable

- resizable : Boolean -
- True to add a resize handle to the bottom of the dropdown list (defaults to false)
-
This config option is defined by ComboBox.
-
- -
-

selectOnFocus

- selectOnFocus : Boolean -
- True to select any existing text in the field immediately on focus. Only applies when editable = true (defaults to false)
-
This config option is defined by ComboBox.
-
- -
-

selectedClass

- selectedClass : String -
- CSS class to apply to the selected item in the dropdown list (defaults to 'x-combo-selected')
-
This config option is defined by ComboBox.
-
- -
-

shadow

- shadow : Boolean/String -
- True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right
-
This config option is defined by ComboBox.
-
- -
-

transform

- transform : String/HTMLElement/Element -
- The id, DOM node or element of an existing select to convert to a ComboBox
-
This config option is defined by ComboBox.
-
- -
-

triggerAction

- triggerAction : String -
- The action to execute when the trigger field is activated. Use 'all' to run the query specified by the allQuery config option (defaults to 'query')
-
This config option is defined by ComboBox.
-
- -
-

triggerClass

- triggerClass : String -
- An additional CSS class used to style the trigger button. The trigger will always get the class 'x-form-trigger' and triggerClass will be appended if specified (defaults to 'x-form-arrow-trigger' which displays a downward arrow icon).
-
This config option is defined by ComboBox.
-
- -
-

typeAhead

- typeAhead : Boolean -
- True to populate and autoselect the remainder of the text being typed after a configurable delay (typeAheadDelay) if it matches a known value (defaults to false)
-
This config option is defined by ComboBox.
-
- -
-

typeAheadDelay

- typeAheadDelay : Number -
- The length of time in milliseconds to wait until the typeahead text is displayed if typeAhead = true (defaults to 250)
-
This config option is defined by ComboBox.
-
- -
-

validateOnBlur

- validateOnBlur : String/Boolean -
- Defaults to true.
-
This config option is defined by Field.
-
- -
-

validationDelay

- validationDelay : Number -
- The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
-
This config option is defined by Field.
-
- -
-

validationEvent

- validationEvent : String/Boolean -
- The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
-
This config option is defined by Field.
-
- -
-

validator

- validator : Function -
- A custom validation function to be called during field validation (defaults to null). If available, this function will be called only after the basic validators all return true, and will be passed the current field value and expected to return boolean true if the value is valid or a string error message if invalid.
-
This config option is defined by TextField.
-
- -
-

value

- value : Mixed -
- A value to initialize this field with
-
This config option is defined by Field.
-
- -
-

valueField

- valueField : String -
- The underlying data value name to bind to this CombBox (defaults to undefined if mode = 'remote' or 'value' if mode = 'local')
-
This config option is defined by ComboBox.
-
- -
-

valueNotFoundText

- valueNotFoundText : String -
- When using a name/value combo, if the value passed to setValue is not found in the store, valueNotFoundText will be displayed as the field text if defined (defaults to undefined)
-
This config option is defined by ComboBox.
-
- -
-

vtype

- vtype : String -
- A validation type name as defined in Ext.form.VTypes (defaults to null)
-
This config option is defined by TextField.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.form.DateField.html b/www/extras/extjs/docs/output/Ext.form.DateField.html deleted file mode 100644 index df4362c47..000000000 --- a/www/extras/extjs/docs/output/Ext.form.DateField.html +++ /dev/null @@ -1,2089 +0,0 @@ - - - - Ext.form.DateField - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.form.DateField

- - - - - -
Package:Ext.form
Class:DateField
Extends:TriggerField
Defined In:DateField.js
-
- Provides a date input field with a Ext.DatePicker dropdown and automatic date validation.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 DateField(Object config)DateField
Create a new DateField
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 applyTo(String/HTMLElement/Element el) : Ext.form.FieldField
Apply the behaviors of this component to an existing element. This is used instead of render().
 autoSize() : voidTextField
Automatically grows the field to accomodate the width of the text up to the maximum field width allowed. -This only ta...
 clearInvalid() : voidField
Clear any invalid styles/messages for this field
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 getName() : StringField
Returns the name attribute of the field if available
 getRawValue() : MixedField
Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue.
 getValue() : DateDateField
Returns the current date value of the date field
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isValid(Boolean preventMark) : BooleanField
Returns whether or not the field value is currently valid
 isVisible() : voidComponent
Returns true if this component is visible
 markInvalid(String msg) : voidField
Mark this field as invalid
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 onTriggerClick(EventObject e) : voidTriggerField
The function that should handle the trigger's click event. This method does nothing by default until overridden -by a...
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 reset() : voidField
Resets the current field value to the originally-loaded value and clears any validation messages
 selectText([Number start], [Number end]) : voidTextField
Selects text in this field
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setRawValue(Mixed value) : voidField
Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue.
 setSize(Number width, Number height) : voidField
Sets the height and width of the field
 setValue(String/Date date) : voidDateField
Sets the value of the date field. You can pass a date object or any string that can be parsed into a valid -date, usi...
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 validate() : BooleanField
Validates the field value
 validateValue(Mixed value) : BooleanTextField
Validates a value according to the field's validation rules and marks the field as invalid -if the validation fails
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 autosize : (Ext.form.Field this, Number width)TextField
Fires when the autosize function is triggered. The field may or may not have actually changed size -according to the ...
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 blur : (Ext.form.Field this)Field
Fires when
 change : (Ext.form.Field this, Mixed value, Mixed value)Field
Fires just before the field blurs if the field value has changed
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 focus : (Ext.form.Field this)Field
Fires when this field receives input focus
 hide : (Ext.Component this)Component
Fires after the component is hidden
 invalid : (Ext.form.Field this, String msg)Field
Fires after the field has been marked as invalid
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
 specialkey : (Ext.form.Field this, Ext.EventObject e)Field
Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.g...
 valid : (Ext.form.Field this)Field
Fires after the field has been validated with no errors
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 allowBlank : BooleanTextField
False to validate that the value length > 0 (defaults to true)
 autoCreate : String/ObjectDateField
A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "10", au...
 blankText : StringTextField
Error text to display if the allow blank validation fails (defaults to "This field is required")
 disableKeyFilter : BooleanTextField
True to disable input keystroke filtering (defaults to false)
 disabledDates : ArrayDateField
An array of "dates" to disable, as strings. These strings will be used to build a dynamic regular expression so they ...
 disabledDatesText : StringDateField
The tooltip text to display when the date falls on a disabled date (defaults to 'Disabled')
 disabledDays : ArrayDateField
An array of days to disable, 0 based. For example, [0, 6] disables Sunday and Saturday (defaults to null).
 disabledDaysText : StringDateField
The tooltip to display when the date falls on a disabled day (defaults to 'Disabled')
 emptyClass : StringTextField
The CSS class to apply to an empty field to style the emptyText (defaults to 'x-form-empty-field'). This class is aut...
 emptyText : StringTextField
The default text to display in an empty field (defaults to null).
 fieldClass : StringField
The default CSS class for the field (defaults to "x-form-field")
 focusClass : StringField
The CSS class to use when the field receives focus (defaults to "x-form-focus")
 format : StringDateField
The default date format string which can be overriden for localization support. The format must be valid according to...
 grow : BooleanTextField
True if this field should automatically grow and shrink to its content
 growMax : NumberTextField
The maximum width to allow when grow = true (defaults to 800)
 growMin : NumberTextField
The minimum width to allow when grow = true (defaults to 30)
 hideTrigger : BooleanTriggerField
True to hide the trigger element and display only the base text field (defaults to false)
 inputType : StringField
The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
 invalidClass : StringField
The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
 invalidText : StringDateField
The error to display when the date in the field is invalid (defaults to '{value} is not a valid date - it must be in ...
 maskRe : StringTextField
An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)
 maxLength : NumberTextField
Maximum input field length allowed (defaults to Number.MAX_VALUE)
 maxLengthText : StringTextField
Error text to display if the maximum length validation fails (defaults to "The maximum length for this field is {maxL...
 maxText : StringDateField
The error text to display when the date in the cell is before maxValue (defaults to 'The date in this field must be b...
 maxValue : Date/StringDateField
The maximum allowed date. Can be either a Javascript date object or a string date in a valid format (defaults to null).
 minLength : NumberTextField
Minimum input field length required (defaults to 0)
 minLengthText : StringTextField
Error text to display if the minimum length validation fails (defaults to "The minimum length for this field is {minL...
 minText : StringDateField
The error text to display when the date in the cell is before minValue (defaults to 'The date in this field must be a...
 minValue : Date/StringDateField
The minimum allowed date. Can be either a Javascript date object or a string date in a valid format (defaults to null).
 msgFx : StringField
Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
 msgTarget : StringField
The location where error text should display. Should be one of the following values (defaults to 'qtip'): Value Desc...
 regex : RegExpTextField
A JavaScript RegExp object to be tested against the field value during validation (defaults to null). If available, t...
 regexText : StringTextField
The error text to display if regex is used and the test fails during validation (defaults to "")
 selectOnFocus : BooleanTextField
True to automatically select any existing field text when the field receives input focus (defaults to false)
 triggerClass : StringDateField
An additional CSS class used to style the trigger button. The trigger will always get the class 'x-form-trigger' and ...
 validateOnBlur : String/BooleanField
Defaults to true.
 validationDelay : NumberField
The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
 validationEvent : String/BooleanField
The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
 validator : FunctionTextField
A custom validation function to be called during field validation (defaults to null). If available, this function wil...
 value : MixedField
A value to initialize this field with
 vtype : StringTextField
A validation type name as defined in Ext.form.VTypes (defaults to null)
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

DateField

- public function DateField(Object config) -
- Create a new DateField
- Parameters: -
  • config : Object
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

applyTo

- public function applyTo(String/HTMLElement/Element el) -
- Apply the behaviors of this component to an existing element. This is used instead of render(). -
- Parameters: -
  • el : String/HTMLElement/Element
    The id of the node, a DOM Node or an existing Element
- Returns: -
    -
  • Ext.form.Field
    this
  • -
-
-
-
This method is defined by Field.
-
- -
-

autoSize

- public function autoSize() -
- Automatically grows the field to accomodate the width of the text up to the maximum field width allowed. -This only takes effect if grow = true and fires the autosize event. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TextField.
-
- -
-

clearInvalid

- public function clearInvalid() -
- Clear any invalid styles/messages for this field -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

getName

- public function getName() -
- Returns the name attribute of the field if available -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    name The field name
  • -
-
-
-
This method is defined by Field.
-
- -
-

getRawValue

- public function getRawValue() -
- Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue. -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The field value
  • -
-
-
-
This method is defined by Field.
-
- -
-

getValue

- public function getValue() -
- Returns the current date value of the date field -
- Parameters: -
  • None.
- Returns: -
    -
  • Date
    value The date value
  • -
-
-
-
This method is defined by DateField.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isValid

- public function isValid(Boolean preventMark) -
- Returns whether or not the field value is currently valid -
- Parameters: -
  • preventMark : Boolean
    True to disable marking the field invalid
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

markInvalid

- public function markInvalid(String msg) -
- Mark this field as invalid -
- Parameters: -
  • msg : String
    The validation message
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

onTriggerClick

- public function onTriggerClick(EventObject e) -
- The function that should handle the trigger's click event. This method does nothing by default until overridden -by a handler implementation. -
- Parameters: -
  • e : EventObject
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TriggerField.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

reset

- public function reset() -
- Resets the current field value to the originally-loaded value and clears any validation messages -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

selectText

- public function selectText([Number start], [Number end]) -
- Selects text in this field -
- Parameters: -
  • start : Number
    (optional) The index where the selection should start (defaults to 0)
  • end : Number
    (optional) The index where the selection should end (defaults to the text length)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TextField.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setRawValue

- public function setRawValue(Mixed value) -
- Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue. -
- Parameters: -
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setSize

- public function setSize(Number width, Number height) -
- Sets the height and width of the field -
- Parameters: -
  • width : Number
    The new field width in pixels
  • height : Number
    The new field height in pixels
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setValue

- public function setValue(String/Date date) -
- Sets the value of the date field. You can pass a date object or any string that can be parsed into a valid -date, using DateField.format as the date format, according to the same rules as Date.parseDate -(the default format used is "m/d/y"). -
Usage: -

-//All of these calls set the same date value (May 4, 2006)
-
-//Pass a date object:
-var dt = new Date('5/4/06');
-dateField.setValue(dt);
-
-//Pass a date string (default format):
-dateField.setValue('5/4/06');
-
-//Pass a date string (custom format):
-dateField.format = 'Y-m-d';
-dateField.setValue('2006-5-4');
-
-
- Parameters: -
  • date : String/Date
    The date or valid date string
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DateField.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

validate

- public function validate() -
- Validates the field value -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
- -
-

validateValue

- public function validateValue(Mixed value) -
- Validates a value according to the field's validation rules and marks the field as invalid -if the validation fails -
- Parameters: -
  • value : Mixed
    The value to validate
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by TextField.
-
-
- -

Event Details

-
- -
-

autosize

- public event autosize -
- Fires when the autosize function is triggered. The field may or may not have actually changed size -according to the default logic, but this event provides a hook for the developer to apply additional -logic at runtime to resize the field if needed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
    This text field
  • width : Number
    The new field width
-
-
-
This event is defined by TextField.
-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

blur

- public event blur -
- Fires when -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

change

- public event change -
- Fires just before the field blurs if the field value has changed -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • value : Mixed
    The changed value
  • value : Mixed
    The original value
-
-
-
This event is defined by Field.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

focus

- public event focus -
- Fires when this field receives input focus -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

invalid

- public event invalid -
- Fires after the field has been marked as invalid -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • msg : String
    The validation message
-
-
-
This event is defined by Field.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

specialkey

- public event specialkey -
- Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.getKey to determine which key was pressed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by Field.
-
- -
-

valid

- public event valid -
- Fires after the field has been validated with no errors -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
-
-

Config Details

-
- -
-

allowBlank

- allowBlank : Boolean -
- False to validate that the value length > 0 (defaults to true)
-
This config option is defined by TextField.
-
- -
-

autoCreate

- autoCreate : String/Object -
- A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "10", autocomplete: "off"})
-
This config option is defined by DateField.
-
- -
-

blankText

- blankText : String -
- Error text to display if the allow blank validation fails (defaults to "This field is required")
-
This config option is defined by TextField.
-
- -
-

disableKeyFilter

- disableKeyFilter : Boolean -
- True to disable input keystroke filtering (defaults to false)
-
This config option is defined by TextField.
-
- -
-

disabledDates

- disabledDates : Array -
- An array of "dates" to disable, as strings. These strings will be used to build a dynamic regular expression so they are very powerful. Some examples:
  • ["03/08/2003", "09/16/2003"] would disable those exact dates
  • ["03/08", "09/16"] would disable those days for every year
  • ["^03/08"] would only match the beginning (useful if you are using short years)
  • ["03/../2006"] would disable every day in March 2006
  • ["^03"] would disable every day in every March
In order to support regular expressions, if you are using a date format that has "." in it, you will have to escape the dot when restricting dates. For example: ["03\\.08\\.03"].
-
This config option is defined by DateField.
-
- -
-

disabledDatesText

- disabledDatesText : String -
- The tooltip text to display when the date falls on a disabled date (defaults to 'Disabled')
-
This config option is defined by DateField.
-
- -
-

disabledDays

- disabledDays : Array -
- An array of days to disable, 0 based. For example, [0, 6] disables Sunday and Saturday (defaults to null).
-
This config option is defined by DateField.
-
- -
-

disabledDaysText

- disabledDaysText : String -
- The tooltip to display when the date falls on a disabled day (defaults to 'Disabled')
-
This config option is defined by DateField.
-
- -
-

emptyClass

- emptyClass : String -
- The CSS class to apply to an empty field to style the emptyText (defaults to 'x-form-empty-field'). This class is automatically added and removed as needed depending on the current field value.
-
This config option is defined by TextField.
-
- -
-

emptyText

- emptyText : String -
- The default text to display in an empty field (defaults to null).
-
This config option is defined by TextField.
-
- -
-

fieldClass

- fieldClass : String -
- The default CSS class for the field (defaults to "x-form-field")
-
This config option is defined by Field.
-
- -
-

focusClass

- focusClass : String -
- The CSS class to use when the field receives focus (defaults to "x-form-focus")
-
This config option is defined by Field.
-
- -
-

format

- format : String -
- The default date format string which can be overriden for localization support. The format must be valid according to Date.parseDate (defaults to 'm/d/y').
-
This config option is defined by DateField.
-
- -
-

grow

- grow : Boolean -
- True if this field should automatically grow and shrink to its content
-
This config option is defined by TextField.
-
- -
-

growMax

- growMax : Number -
- The maximum width to allow when grow = true (defaults to 800)
-
This config option is defined by TextField.
-
- -
-

growMin

- growMin : Number -
- The minimum width to allow when grow = true (defaults to 30)
-
This config option is defined by TextField.
-
- -
-

hideTrigger

- hideTrigger : Boolean -
- True to hide the trigger element and display only the base text field (defaults to false)
-
This config option is defined by TriggerField.
-
- -
-

inputType

- inputType : String -
- The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
-
This config option is defined by Field.
-
- -
-

invalidClass

- invalidClass : String -
- The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
-
This config option is defined by Field.
-
- -
-

invalidText

- invalidText : String -
- The error to display when the date in the field is invalid (defaults to '{value} is not a valid date - it must be in the format {format}').
-
This config option is defined by DateField.
-
- -
-

maskRe

- maskRe : String -
- An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)
-
This config option is defined by TextField.
-
- -
-

maxLength

- maxLength : Number -
- Maximum input field length allowed (defaults to Number.MAX_VALUE)
-
This config option is defined by TextField.
-
- -
-

maxLengthText

- maxLengthText : String -
- Error text to display if the maximum length validation fails (defaults to "The maximum length for this field is {maxLength}")
-
This config option is defined by TextField.
-
- -
-

maxText

- maxText : String -
- The error text to display when the date in the cell is before maxValue (defaults to 'The date in this field must be before {maxValue}').
-
This config option is defined by DateField.
-
- -
-

maxValue

- maxValue : Date/String -
- The maximum allowed date. Can be either a Javascript date object or a string date in a valid format (defaults to null).
-
This config option is defined by DateField.
-
- -
-

minLength

- minLength : Number -
- Minimum input field length required (defaults to 0)
-
This config option is defined by TextField.
-
- -
-

minLengthText

- minLengthText : String -
- Error text to display if the minimum length validation fails (defaults to "The minimum length for this field is {minLength}")
-
This config option is defined by TextField.
-
- -
-

minText

- minText : String -
- The error text to display when the date in the cell is before minValue (defaults to 'The date in this field must be after {minValue}').
-
This config option is defined by DateField.
-
- -
-

minValue

- minValue : Date/String -
- The minimum allowed date. Can be either a Javascript date object or a string date in a valid format (defaults to null).
-
This config option is defined by DateField.
-
- -
-

msgFx

- msgFx : String -
- Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
-
This config option is defined by Field.
-
- -
-

msgTarget

- msgTarget : String -
- The location where error text should display. Should be one of the following values (defaults to 'qtip'):
 Value Description ----------- ---------------------------------------------------------------------- qtip Display a quick tip when the user hovers over the field title Display a default browser title attribute popup under Add a block div beneath the field containing the error text side Add an error icon to the right of the field with a popup on hover [element id] Add the error text directly to the innerHTML of the specified element 
-
This config option is defined by Field.
-
- -
-

regex

- regex : RegExp -
- A JavaScript RegExp object to be tested against the field value during validation (defaults to null). If available, this regex will be evaluated only after the basic validators all return true, and will be passed the current field value. If the test fails, the field will be marked invalid using regexText.
-
This config option is defined by TextField.
-
- -
-

regexText

- regexText : String -
- The error text to display if regex is used and the test fails during validation (defaults to "")
-
This config option is defined by TextField.
-
- -
-

selectOnFocus

- selectOnFocus : Boolean -
- True to automatically select any existing field text when the field receives input focus (defaults to false)
-
This config option is defined by TextField.
-
- -
-

triggerClass

- triggerClass : String -
- An additional CSS class used to style the trigger button. The trigger will always get the class 'x-form-trigger' and triggerClass will be appended if specified (defaults to 'x-form-date-trigger' which displays a calendar icon).
-
This config option is defined by DateField.
-
- -
-

validateOnBlur

- validateOnBlur : String/Boolean -
- Defaults to true.
-
This config option is defined by Field.
-
- -
-

validationDelay

- validationDelay : Number -
- The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
-
This config option is defined by Field.
-
- -
-

validationEvent

- validationEvent : String/Boolean -
- The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
-
This config option is defined by Field.
-
- -
-

validator

- validator : Function -
- A custom validation function to be called during field validation (defaults to null). If available, this function will be called only after the basic validators all return true, and will be passed the current field value and expected to return boolean true if the value is valid or a string error message if invalid.
-
This config option is defined by TextField.
-
- -
-

value

- value : Mixed -
- A value to initialize this field with
-
This config option is defined by Field.
-
- -
-

vtype

- vtype : String -
- A validation type name as defined in Ext.form.VTypes (defaults to null)
-
This config option is defined by TextField.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.form.Field.html b/www/extras/extjs/docs/output/Ext.form.Field.html deleted file mode 100644 index d5c44eaff..000000000 --- a/www/extras/extjs/docs/output/Ext.form.Field.html +++ /dev/null @@ -1,1478 +0,0 @@ - - - - Ext.form.Field - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.form.Field

- - - - - - -
Package:Ext.form
Class:Field
Extends:Component
Subclasses:Checkbox, TextField
Defined In:Field.js
-
- Base class for form fields that provides default event handling, sizing, value handling and other functionality.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Field(Object config)Field
Creates a new Field
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 applyTo(String/HTMLElement/Element el) : Ext.form.FieldField
Apply the behaviors of this component to an existing element. This is used instead of render().
 clearInvalid() : voidField
Clear any invalid styles/messages for this field
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 getName() : StringField
Returns the name attribute of the field if available
 getRawValue() : MixedField
Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue.
 getValue() : MixedField
Returns the normalized data value (undefined or emptyText will be returned as ''). To return the raw value see getRa...
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isValid(Boolean preventMark) : BooleanField
Returns whether or not the field value is currently valid
 isVisible() : voidComponent
Returns true if this component is visible
 markInvalid(String msg) : voidField
Mark this field as invalid
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 reset() : voidField
Resets the current field value to the originally-loaded value and clears any validation messages
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setRawValue(Mixed value) : voidField
Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue.
 setSize(Number width, Number height) : voidField
Sets the height and width of the field
 setValue(Mixed value) : voidField
Sets a data value into the field and validates it. To set the value directly without validation see setRawValue.
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 validate() : BooleanField
Validates the field value
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 blur : (Ext.form.Field this)Field
Fires when
 change : (Ext.form.Field this, Mixed value, Mixed value)Field
Fires just before the field blurs if the field value has changed
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 focus : (Ext.form.Field this)Field
Fires when this field receives input focus
 hide : (Ext.Component this)Component
Fires after the component is hidden
 invalid : (Ext.form.Field this, String msg)Field
Fires after the field has been marked as invalid
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
 specialkey : (Ext.form.Field this, Ext.EventObject e)Field
Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.g...
 valid : (Ext.form.Field this)Field
Fires after the field has been validated with no errors
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 autoCreate : String/ObjectField
A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "20", au...
 fieldClass : StringField
The default CSS class for the field (defaults to "x-form-field")
 focusClass : StringField
The CSS class to use when the field receives focus (defaults to "x-form-focus")
 inputType : StringField
The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
 invalidClass : StringField
The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
 invalidText : StringField
The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field i...
 msgFx : StringField
Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
 msgTarget : StringField
The location where error text should display. Should be one of the following values (defaults to 'qtip'): Value Desc...
 validateOnBlur : String/BooleanField
Defaults to true.
 validationDelay : NumberField
The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
 validationEvent : String/BooleanField
The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
 value : MixedField
A value to initialize this field with
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

Field

- public function Field(Object config) -
- Creates a new Field
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

applyTo

- public function applyTo(String/HTMLElement/Element el) -
- Apply the behaviors of this component to an existing element. This is used instead of render(). -
- Parameters: -
  • el : String/HTMLElement/Element
    The id of the node, a DOM Node or an existing Element
- Returns: -
    -
  • Ext.form.Field
    this
  • -
-
-
-
This method is defined by Field.
-
- -
-

clearInvalid

- public function clearInvalid() -
- Clear any invalid styles/messages for this field -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

getName

- public function getName() -
- Returns the name attribute of the field if available -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    name The field name
  • -
-
-
-
This method is defined by Field.
-
- -
-

getRawValue

- public function getRawValue() -
- Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue. -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The field value
  • -
-
-
-
This method is defined by Field.
-
- -
-

getValue

- public function getValue() -
- Returns the normalized data value (undefined or emptyText will be returned as ''). To return the raw value see getRawValue. -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The field value
  • -
-
-
-
This method is defined by Field.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isValid

- public function isValid(Boolean preventMark) -
- Returns whether or not the field value is currently valid -
- Parameters: -
  • preventMark : Boolean
    True to disable marking the field invalid
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

markInvalid

- public function markInvalid(String msg) -
- Mark this field as invalid -
- Parameters: -
  • msg : String
    The validation message
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

reset

- public function reset() -
- Resets the current field value to the originally-loaded value and clears any validation messages -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setRawValue

- public function setRawValue(Mixed value) -
- Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue. -
- Parameters: -
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setSize

- public function setSize(Number width, Number height) -
- Sets the height and width of the field -
- Parameters: -
  • width : Number
    The new field width in pixels
  • height : Number
    The new field height in pixels
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setValue

- public function setValue(Mixed value) -
- Sets a data value into the field and validates it. To set the value directly without validation see setRawValue. -
- Parameters: -
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

validate

- public function validate() -
- Validates the field value -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
-
- -

Event Details

-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

blur

- public event blur -
- Fires when -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

change

- public event change -
- Fires just before the field blurs if the field value has changed -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • value : Mixed
    The changed value
  • value : Mixed
    The original value
-
-
-
This event is defined by Field.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

focus

- public event focus -
- Fires when this field receives input focus -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

invalid

- public event invalid -
- Fires after the field has been marked as invalid -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • msg : String
    The validation message
-
-
-
This event is defined by Field.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

specialkey

- public event specialkey -
- Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.getKey to determine which key was pressed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by Field.
-
- -
-

valid

- public event valid -
- Fires after the field has been validated with no errors -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
-
-

Config Details

-
- -
-

autoCreate

- autoCreate : String/Object -
- A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "20", autocomplete: "off"})
-
This config option is defined by Field.
-
- -
-

fieldClass

- fieldClass : String -
- The default CSS class for the field (defaults to "x-form-field")
-
This config option is defined by Field.
-
- -
-

focusClass

- focusClass : String -
- The CSS class to use when the field receives focus (defaults to "x-form-focus")
-
This config option is defined by Field.
-
- -
-

inputType

- inputType : String -
- The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
-
This config option is defined by Field.
-
- -
-

invalidClass

- invalidClass : String -
- The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
-
This config option is defined by Field.
-
- -
-

invalidText

- invalidText : String -
- The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field is invalid")
-
This config option is defined by Field.
-
- -
-

msgFx

- msgFx : String -
- Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
-
This config option is defined by Field.
-
- -
-

msgTarget

- msgTarget : String -
- The location where error text should display. Should be one of the following values (defaults to 'qtip'):
 Value Description ----------- ---------------------------------------------------------------------- qtip Display a quick tip when the user hovers over the field title Display a default browser title attribute popup under Add a block div beneath the field containing the error text side Add an error icon to the right of the field with a popup on hover [element id] Add the error text directly to the innerHTML of the specified element 
-
This config option is defined by Field.
-
- -
-

validateOnBlur

- validateOnBlur : String/Boolean -
- Defaults to true.
-
This config option is defined by Field.
-
- -
-

validationDelay

- validationDelay : Number -
- The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
-
This config option is defined by Field.
-
- -
-

validationEvent

- validationEvent : String/Boolean -
- The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
-
This config option is defined by Field.
-
- -
-

value

- value : Mixed -
- A value to initialize this field with
-
This config option is defined by Field.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.form.FieldSet.html b/www/extras/extjs/docs/output/Ext.form.FieldSet.html deleted file mode 100644 index f33d6f4f0..000000000 --- a/www/extras/extjs/docs/output/Ext.form.FieldSet.html +++ /dev/null @@ -1,985 +0,0 @@ - - - - Ext.form.FieldSet - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.form.FieldSet

- - - - - -
Package:Ext.form
Class:FieldSet
Extends:Layout
Defined In:Layout.js
-
- Creates a fieldset container for layout and rendering of fields in an Ext.form.Form.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 FieldSet(Object config)FieldSet
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isVisible() : voidComponent
Returns true if this component is visible
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 hide : (Ext.Component this)Component
Fires after the component is hidden
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 autoCreate : String/ObjectFieldSet
A DomHelper element spec used to autocreate the fieldset (defaults to {tag: 'fieldset', cn: {tag:'legend'}})
 clear : BooleanLayout
True to add a clearing element at the end of this layout, equivalent to CSS clear: both (defaults to true)
 hideLabels : BooleanLayout
True to suppress the display of field labels in this layout (defaults to false)
 labelAlign : StringLayout
Valid values are "left," "top" and "right" (defaults to "left")
 labelSeparator : StringLayout
The separator to use after field labels (defaults to ':')
 labelWidth : NumberLayout
Fixed width in pixels of all field labels (defaults to undefined)
 legend : StringFieldSet
The text to display as the legend for the FieldSet (defaults to '')
 style : String/Object/FunctionLayout
A style specification string eg "width:100px", or object in the form {width:"100px"}, or a function which returns suc...
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

FieldSet

- public function FieldSet(Object config) -
-
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
-
-

Config Details

-
- -
-

autoCreate

- autoCreate : String/Object -
- A DomHelper element spec used to autocreate the fieldset (defaults to {tag: 'fieldset', cn: {tag:'legend'}})
-
This config option is defined by FieldSet.
-
- -
-

clear

- clear : Boolean -
- True to add a clearing element at the end of this layout, equivalent to CSS clear: both (defaults to true)
-
This config option is defined by Layout.
-
- -
-

hideLabels

- hideLabels : Boolean -
- True to suppress the display of field labels in this layout (defaults to false)
-
This config option is defined by Layout.
-
- -
-

labelAlign

- labelAlign : String -
- Valid values are "left," "top" and "right" (defaults to "left")
-
This config option is defined by Layout.
-
- -
-

labelSeparator

- labelSeparator : String -
- The separator to use after field labels (defaults to ':')
-
This config option is defined by Layout.
-
- -
-

labelWidth

- labelWidth : Number -
- Fixed width in pixels of all field labels (defaults to undefined)
-
This config option is defined by Layout.
-
- -
-

legend

- legend : String -
- The text to display as the legend for the FieldSet (defaults to '')
-
This config option is defined by FieldSet.
-
- -
-

style

- style : String/Object/Function -
- A style specification string eg "width:100px", or object in the form {width:"100px"}, or a function which returns such a specification.
-
This config option is defined by Layout.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.form.Form.html b/www/extras/extjs/docs/output/Ext.form.Form.html deleted file mode 100644 index 2b7f2be46..000000000 --- a/www/extras/extjs/docs/output/Ext.form.Form.html +++ /dev/null @@ -1,1263 +0,0 @@ - - - - Ext.form.Form - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.form.Form

- - - - - -
Package:Ext.form
Class:Form
Extends:BasicForm
Defined In:Form.js
-
- Adds the ability to dynamically render forms with JS to Ext.form.BasicForm.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 buttons : ArrayForm
Array of all the buttons that have been added to this form via addButton
 waitMsgTarget : MixedBasicForm
By default wait messages are displayed with Ext.MessageBox.wait. You can target a specific -element by passing it or i...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Form(Object config)Form
 add(Field field1, [Field field2], [Field etc]) : FormForm
Add Ext.form components to the current open container (e.g. column, fieldset, etc)
 addButton(String/Object config, Function handler, [Object scope]) : Ext.ButtonForm
Adds a button to the footer of the form - this must be called before the form is rendered.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 applyIfToFields(Object values) : voidBasicForm
Calls Ext.applyIf for all field in this form with the passed object
 applyToFields(Object values) : voidBasicForm
Calls Ext.apply for all field in this form with the passed object
 clearInvalid() : voidBasicForm
Clears all invalid messages in this form
 column(Object config, [Field field1], [Field field2], [Field etc]) : ColumnForm
Opens the a new Ext.form.Column container in the layout stack. If fields are passed after the config, the -fields are ...
 container(Object config, [Field field1], [Field field2], [Field etc]) : LayoutForm
Opens the a new Ext.form.Layout container in the layout stack. If fields are passed after the config, the -fields are ...
 doAction(String actionName, Object options) : voidBasicForm
Performs a predefined action (submit or load) or custom actions you define on this form
 end() : FormForm
Closes the current open container
 fieldset(Object config, [Field field1], [Field field2], [Field etc]) : FieldSetForm
Opens the a new Ext.form.FieldSet container in the layout stack. If fields are passed after the config, the -fields ar...
 findField(String id) : FieldBasicForm
Find a Ext.form.Field in this form by id, dataIndex, name or hiddenName
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getValues(Boolean asString) : ObjectBasicForm
Returns the fields in this form as an object with key value pair. If multiple fields exist with the same name -they ar...
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 isValid() : BooleanBasicForm
Returns true is client-side validation on the form is successful
 load(Object options) : voidBasicForm
Shortcut to do a load action
 markInvalid(Array/Object errors) : voidBasicForm
Mark fields in this form invalid in bulk.
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 remove(Field field) : voidBasicForm
Removes a field from the items collection (does NOT remove its markup)
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render(String/HTMLElement/Element container) : FormForm
Render this form into the passed container. This should only be called once!
 reset() : voidBasicForm
Resets this form
 setValues(Array/Object values) : voidBasicForm
Set values for fields in this form in bulk.
 start(Object container) : FormForm
Opens the passed container in the layout stack. The container can be any Ext.form.Layout or subclass.
 startMonitoring() : voidForm
Starts monitoring of the valid state of this form. Usually this is don't by passing the config -option "monitorValid"
 stopMonitoring() : voidForm
Stops monitoring of the valid state of this form
 submit(Object options) : voidBasicForm
Shortcut to do a submit action
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 updateRecord(Record record) : voidBasicForm
Persists the values in this form into the passed Ext.data.Record object in a beginEdit/endEdit block.
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 actioncomplete : (Form this, Action action)BasicForm
Fires when an action is completed
 actionfailed : (Form this, Action action)BasicForm
Fires when an action fails
 beforeaction : (Form this, Action action)BasicForm
Fires before any action is performed. Return false to cancel the action.
 clientvalidation : (Form this, Boolean valid)Form
If the monitorValid config option is true, this event fires repetitively to notify of valid state
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 baseParams : ObjectBasicForm
Parameters to pass with all requests. e.g. baseParams: {id: '123', foo: 'bar'}
 buttonAlign : StringForm
Valid values are "left," "center" and "right" (defaults to "center")
 errorReader : DataReaderBasicForm
An Ext.data.DataReader (e.g. Ext.data.XmlReader to be used to read data when reading validation errors on "submit" ac...
 fileUpload : BooleanBasicForm
Set to true if this form is a file upload (YUI adapter only)
 itemCls : StringForm
A css class to apply to the x-form-item of fields. This property cascades to child containers.
 labelAlign : StringForm
Valid values are "left," "top" and "right" (defaults to "left"). This property cascades to child containers if not set.
 labelWidth : NumberForm
The width of labels. This property cascades to child containers.
 method : StringBasicForm
The request method to use (GET or POST) for form actions if one isn't supplied in the action options
 minButtonWidth : NumberForm
Minimum width of all buttons (defaults to 75)
 monitorPoll : NumberForm
The milliseconds to poll valid state, ignored if monitorValid is not true (defaults to 200)
 monitorValid : BooleanForm
If true the form monitors it's valid state client-side and fires a looping event with that state. This is required to...
 reader : DataReaderBasicForm
An Ext.data.DataReader (e.g. Ext.data.XmlReader to be used to read data when executing "load" actions. This is comple...
 timeout : NumberBasicForm
 url : StringBasicForm
The url to use for form actions if one isn't supplied in the action options
-

Property Details

-
- -
-

buttons

- public Array buttons -
- Array of all the buttons that have been added to this form via addButton
-
This property is defined by Form.
-
- -
-

waitMsgTarget

- public Mixed waitMsgTarget -
- By default wait messages are displayed with Ext.MessageBox.wait. You can target a specific -element by passing it or its id or mask the form itself by passing in true.
-
This property is defined by BasicForm.
-
-
- - -

Constructor Details

-
-
-

Form

- public function Form(Object config) -
-
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

add

- public function add(Field field1, [Field field2], [Field etc]) -
- Add Ext.form components to the current open container (e.g. column, fieldset, etc) -
- Parameters: -
  • field1 : Field
  • field2 : Field
    (optional)
  • etc : Field
    (optional)
- Returns: -
    -
  • Form
    this
  • -
-
-
-
This method is defined by Form.
-
- -
-

addButton

- public function addButton(String/Object config, Function handler, [Object scope]) -
- Adds a button to the footer of the form - this must be called before the form is rendered. -
- Parameters: -
  • config : String/Object
    A string becomes the button text, an object can either be a Button config object or a valid Ext.DomHelper element config
  • handler : Function
    The function called when the button is clicked
  • scope : Object
    (optional) The scope of the handler function
- Returns: -
    -
  • Ext.Button
  • -
-
-
-
This method is defined by Form.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

applyIfToFields

- public function applyIfToFields(Object values) -
- Calls Ext.applyIf for all field in this form with the passed object -
- Parameters: -
  • values : Object
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

applyToFields

- public function applyToFields(Object values) -
- Calls Ext.apply for all field in this form with the passed object -
- Parameters: -
  • values : Object
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

clearInvalid

- public function clearInvalid() -
- Clears all invalid messages in this form -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

column

- public function column(Object config, [Field field1], [Field field2], [Field etc]) -
- Opens the a new Ext.form.Column container in the layout stack. If fields are passed after the config, the -fields are added and the column is closed. If no fields are passed the column remains open -until end() is called. -
- Parameters: -
  • config : Object
    The config to pass to the column
  • field1 : Field
    (optional)
  • field2 : Field
    (optional)
  • etc : Field
    (optional)
- Returns: -
    -
  • Column
    The column container object
  • -
-
-
-
This method is defined by Form.
-
- -
-

container

- public function container(Object config, [Field field1], [Field field2], [Field etc]) -
- Opens the a new Ext.form.Layout container in the layout stack. If fields are passed after the config, the -fields are added and the container is closed. If no fields are passed the container remains open -until end() is called. -
- Parameters: -
  • config : Object
    The config to pass to the Layout
  • field1 : Field
    (optional)
  • field2 : Field
    (optional)
  • etc : Field
    (optional)
- Returns: -
    -
  • Layout
    The container object
  • -
-
-
-
This method is defined by Form.
-
- -
-

doAction

- public function doAction(String actionName, Object options) -
- Performs a predefined action (submit or load) or custom actions you define on this form -
- Parameters: -
  • actionName : String
    The name of the action type
  • options : Object
    The options to pass to the action
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

end

- public function end() -
- Closes the current open container -
- Parameters: -
  • None.
- Returns: -
    -
  • Form
    this
  • -
-
-
-
This method is defined by Form.
-
- -
-

fieldset

- public function fieldset(Object config, [Field field1], [Field field2], [Field etc]) -
- Opens the a new Ext.form.FieldSet container in the layout stack. If fields are passed after the config, the -fields are added and the fieldset is closed. If no fields are passed the fieldset remains open -until end() is called. -
- Parameters: -
  • config : Object
    The config to pass to the fieldset
  • field1 : Field
    (optional)
  • field2 : Field
    (optional)
  • etc : Field
    (optional)
- Returns: -
    -
  • FieldSet
    The fieldset container object
  • -
-
-
-
This method is defined by Form.
-
- -
-

findField

- public function findField(String id) -
- Find a Ext.form.Field in this form by id, dataIndex, name or hiddenName -
- Parameters: -
  • id : String
    The value to search for
- Returns: -
    -
  • Field
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getValues

- public function getValues(Boolean asString) -
- Returns the fields in this form as an object with key value pair. If multiple fields exist with the same name -they are returned as an array. -
- Parameters: -
  • asString : Boolean
- Returns: -
    -
  • Object
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

isValid

- public function isValid() -
- Returns true is client-side validation on the form is successful -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

load

- public function load(Object options) -
- Shortcut to do a load action -
- Parameters: -
  • options : Object
    The options to pass to the action
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

markInvalid

- public function markInvalid(Array/Object errors) -
- Mark fields in this form invalid in bulk. -
- Parameters: -
  • errors : Array/Object
    Either an array in the form [{id:'fieldId', msg:'The message'},...] or an object hash of {id: msg, id2: msg2}
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

remove

- public function remove(Field field) -
- Removes a field from the items collection (does NOT remove its markup) -
- Parameters: -
  • field : Field
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render(String/HTMLElement/Element container) -
- Render this form into the passed container. This should only be called once! -
- Parameters: -
  • container : String/HTMLElement/Element
    The element this component should be rendered into
- Returns: -
    -
  • Form
    this
  • -
-
-
-
This method is defined by Form.
-
- -
-

reset

- public function reset() -
- Resets this form -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

setValues

- public function setValues(Array/Object values) -
- Set values for fields in this form in bulk. -
- Parameters: -
  • values : Array/Object
    Either an array in the form [{id:'fieldId', value:'foo'},...] or an object hash of {id: value, id2: value2}
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

start

- public function start(Object container) -
- Opens the passed container in the layout stack. The container can be any Ext.form.Layout or subclass. -
- Parameters: -
  • container : Object
    A Ext.form.Layout or subclass of Layout
- Returns: -
    -
  • Form
    this
  • -
-
-
-
This method is defined by Form.
-
- -
-

startMonitoring

- public function startMonitoring() -
- Starts monitoring of the valid state of this form. Usually this is don't by passing the config -option "monitorValid" -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Form.
-
- -
-

stopMonitoring

- public function stopMonitoring() -
- Stops monitoring of the valid state of this form -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Form.
-
- -
-

submit

- public function submit(Object options) -
- Shortcut to do a submit action -
- Parameters: -
  • options : Object
    The options to pass to the action
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

updateRecord

- public function updateRecord(Record record) -
- Persists the values in this form into the passed Ext.data.Record object in a beginEdit/endEdit block. -
- Parameters: -
  • record : Record
    The record to edit
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by BasicForm.
-
-
- -

Event Details

-
- -
-

actioncomplete

- public event actioncomplete -
- Fires when an action is completed -
- Subscribers will be called with the following parameters: -
  • this : Form
  • action : Action
    The action that completed
-
-
-
This event is defined by BasicForm.
-
- -
-

actionfailed

- public event actionfailed -
- Fires when an action fails -
- Subscribers will be called with the following parameters: -
  • this : Form
  • action : Action
    The action that failed
-
-
-
This event is defined by BasicForm.
-
- -
-

beforeaction

- public event beforeaction -
- Fires before any action is performed. Return false to cancel the action. -
- Subscribers will be called with the following parameters: -
  • this : Form
  • action : Action
    The action to be performed
-
-
-
This event is defined by BasicForm.
-
- -
-

clientvalidation

- public event clientvalidation -
- If the monitorValid config option is true, this event fires repetitively to notify of valid state -
- Subscribers will be called with the following parameters: -
  • this : Form
  • valid : Boolean
    true if the form has passed client-side validation
-
-
-
This event is defined by Form.
-
-
-

Config Details

-
- -
-

baseParams

- baseParams : Object -
- Parameters to pass with all requests. e.g. baseParams: {id: '123', foo: 'bar'}
-
This config option is defined by BasicForm.
-
- -
-

buttonAlign

- buttonAlign : String -
- Valid values are "left," "center" and "right" (defaults to "center")
-
This config option is defined by Form.
-
- -
-

errorReader

- errorReader : DataReader -
- An Ext.data.DataReader (e.g. Ext.data.XmlReader to be used to read data when reading validation errors on "submit" actions. This is completely optional as there is built-in support for processing JSON.
-
This config option is defined by BasicForm.
-
- -
-

fileUpload

- fileUpload : Boolean -
- Set to true if this form is a file upload (YUI adapter only)
-
This config option is defined by BasicForm.
-
- -
-

itemCls

- itemCls : String -
- A css class to apply to the x-form-item of fields. This property cascades to child containers.
-
This config option is defined by Form.
-
- -
-

labelAlign

- labelAlign : String -
- Valid values are "left," "top" and "right" (defaults to "left"). This property cascades to child containers if not set.
-
This config option is defined by Form.
-
- -
-

labelWidth

- labelWidth : Number -
- The width of labels. This property cascades to child containers.
-
This config option is defined by Form.
-
- -
-

method

- method : String -
- The request method to use (GET or POST) for form actions if one isn't supplied in the action options
-
This config option is defined by BasicForm.
-
- -
-

minButtonWidth

- minButtonWidth : Number -
- Minimum width of all buttons (defaults to 75)
-
This config option is defined by Form.
-
- -
-

monitorPoll

- monitorPoll : Number -
- The milliseconds to poll valid state, ignored if monitorValid is not true (defaults to 200)
-
This config option is defined by Form.
-
- -
-

monitorValid

- monitorValid : Boolean -
- If true the form monitors it's valid state client-side and fires a looping event with that state. This is required to bind buttons to the valid state using the config value bindForm:true on the button.
-
This config option is defined by Form.
-
- -
-

reader

- reader : DataReader -
- An Ext.data.DataReader (e.g. Ext.data.XmlReader to be used to read data when executing "load" actions. This is completely optional as there is built-in support for processing JSON.
-
This config option is defined by BasicForm.
-
- -
-

timeout

- timeout : Number -
-
-
This config option is defined by BasicForm.
-
- -
-

url

- url : String -
- The url to use for form actions if one isn't supplied in the action options
-
This config option is defined by BasicForm.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.form.Layout.html b/www/extras/extjs/docs/output/Ext.form.Layout.html deleted file mode 100644 index a67e68c0b..000000000 --- a/www/extras/extjs/docs/output/Ext.form.Layout.html +++ /dev/null @@ -1,970 +0,0 @@ - - - - Ext.form.Layout - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.form.Layout

- - - - - - -
Package:Ext.form
Class:Layout
Extends:Component
Subclasses:Column, FieldSet
Defined In:Layout.js
-
- Creates a container for layout and rendering of fields in an Ext.form.Form.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Layout(Object config)Layout
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isVisible() : voidComponent
Returns true if this component is visible
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 hide : (Ext.Component this)Component
Fires after the component is hidden
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 autoCreate : String/ObjectLayout
A DomHelper element spec used to autocreate the layout (defaults to {tag: 'div', cls: 'x-form-ct'})
 clear : BooleanLayout
True to add a clearing element at the end of this layout, equivalent to CSS clear: both (defaults to true)
 hideLabels : BooleanLayout
True to suppress the display of field labels in this layout (defaults to false)
 labelAlign : StringLayout
Valid values are "left," "top" and "right" (defaults to "left")
 labelSeparator : StringLayout
The separator to use after field labels (defaults to ':')
 labelWidth : NumberLayout
Fixed width in pixels of all field labels (defaults to undefined)
 style : String/Object/FunctionLayout
A style specification string eg "width:100px", or object in the form {width:"100px"}, or a function which returns suc...
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

Layout

- public function Layout(Object config) -
-
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
-
-

Config Details

-
- -
-

autoCreate

- autoCreate : String/Object -
- A DomHelper element spec used to autocreate the layout (defaults to {tag: 'div', cls: 'x-form-ct'})
-
This config option is defined by Layout.
-
- -
-

clear

- clear : Boolean -
- True to add a clearing element at the end of this layout, equivalent to CSS clear: both (defaults to true)
-
This config option is defined by Layout.
-
- -
-

hideLabels

- hideLabels : Boolean -
- True to suppress the display of field labels in this layout (defaults to false)
-
This config option is defined by Layout.
-
- -
-

labelAlign

- labelAlign : String -
- Valid values are "left," "top" and "right" (defaults to "left")
-
This config option is defined by Layout.
-
- -
-

labelSeparator

- labelSeparator : String -
- The separator to use after field labels (defaults to ':')
-
This config option is defined by Layout.
-
- -
-

labelWidth

- labelWidth : Number -
- Fixed width in pixels of all field labels (defaults to undefined)
-
This config option is defined by Layout.
-
- -
-

style

- style : String/Object/Function -
- A style specification string eg "width:100px", or object in the form {width:"100px"}, or a function which returns such a specification.
-
This config option is defined by Layout.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.form.NumberField.html b/www/extras/extjs/docs/output/Ext.form.NumberField.html deleted file mode 100644 index c1bff3dbf..000000000 --- a/www/extras/extjs/docs/output/Ext.form.NumberField.html +++ /dev/null @@ -1,2012 +0,0 @@ - - - - Ext.form.NumberField - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.form.NumberField

- - - - - -
Package:Ext.form
Class:NumberField
Extends:TextField
Defined In:NumberField.js
-
- Numeric text field that provides automatic keystroke filtering and numeric validation.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 NumberField(Object config)NumberField
Creates a new NumberField
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 applyTo(String/HTMLElement/Element el) : Ext.form.FieldField
Apply the behaviors of this component to an existing element. This is used instead of render().
 autoSize() : voidTextField
Automatically grows the field to accomodate the width of the text up to the maximum field width allowed. -This only ta...
 clearInvalid() : voidField
Clear any invalid styles/messages for this field
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 getName() : StringField
Returns the name attribute of the field if available
 getRawValue() : MixedField
Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue.
 getValue() : MixedField
Returns the normalized data value (undefined or emptyText will be returned as ''). To return the raw value see getRa...
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isValid(Boolean preventMark) : BooleanField
Returns whether or not the field value is currently valid
 isVisible() : voidComponent
Returns true if this component is visible
 markInvalid(String msg) : voidField
Mark this field as invalid
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 reset() : voidField
Resets the current field value to the originally-loaded value and clears any validation messages
 selectText([Number start], [Number end]) : voidTextField
Selects text in this field
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setRawValue(Mixed value) : voidField
Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue.
 setSize(Number width, Number height) : voidField
Sets the height and width of the field
 setValue(Mixed value) : voidField
Sets a data value into the field and validates it. To set the value directly without validation see setRawValue.
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 validate() : BooleanField
Validates the field value
 validateValue(Mixed value) : BooleanTextField
Validates a value according to the field's validation rules and marks the field as invalid -if the validation fails
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 autosize : (Ext.form.Field this, Number width)TextField
Fires when the autosize function is triggered. The field may or may not have actually changed size -according to the ...
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 blur : (Ext.form.Field this)Field
Fires when
 change : (Ext.form.Field this, Mixed value, Mixed value)Field
Fires just before the field blurs if the field value has changed
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 focus : (Ext.form.Field this)Field
Fires when this field receives input focus
 hide : (Ext.Component this)Component
Fires after the component is hidden
 invalid : (Ext.form.Field this, String msg)Field
Fires after the field has been marked as invalid
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
 specialkey : (Ext.form.Field this, Ext.EventObject e)Field
Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.g...
 valid : (Ext.form.Field this)Field
Fires after the field has been validated with no errors
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 allowBlank : BooleanTextField
False to validate that the value length > 0 (defaults to true)
 allowDecimals : BooleanNumberField
False to disallow decimal values (defaults to true)
 allowNegative : BooleanNumberField
False to require only positive numbers (defaults to true)
 autoCreate : String/ObjectField
A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "20", au...
 blankText : StringTextField
Error text to display if the allow blank validation fails (defaults to "This field is required")
 decimalPrecision : NumberNumberField
The maximum precision to display after the decimal separator (defaults to 2)
 decimalSeparator : StringNumberField
Character(s) to allow as the decimal separator (defaults to '.')
 disableKeyFilter : BooleanTextField
True to disable input keystroke filtering (defaults to false)
 emptyClass : StringTextField
The CSS class to apply to an empty field to style the emptyText (defaults to 'x-form-empty-field'). This class is aut...
 emptyText : StringTextField
The default text to display in an empty field (defaults to null).
 fieldClass : StringNumberField
The default CSS class for the field (defaults to "x-form-field x-form-num-field")
 focusClass : StringField
The CSS class to use when the field receives focus (defaults to "x-form-focus")
 grow : BooleanTextField
True if this field should automatically grow and shrink to its content
 growMax : NumberTextField
The maximum width to allow when grow = true (defaults to 800)
 growMin : NumberTextField
The minimum width to allow when grow = true (defaults to 30)
 inputType : StringField
The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
 invalidClass : StringField
The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
 invalidText : StringField
The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field i...
 maskRe : StringTextField
An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)
 maxLength : NumberTextField
Maximum input field length allowed (defaults to Number.MAX_VALUE)
 maxLengthText : StringTextField
Error text to display if the maximum length validation fails (defaults to "The maximum length for this field is {maxL...
 maxText : StringNumberField
Error text to display if the maximum value validation fails (defaults to "The maximum value for this field is {maxVal...
 maxValue : NumberNumberField
The maximum allowed value (defaults to Number.MAX_VALUE)
 minLength : NumberTextField
Minimum input field length required (defaults to 0)
 minLengthText : StringTextField
Error text to display if the minimum length validation fails (defaults to "The minimum length for this field is {minL...
 minText : StringNumberField
Error text to display if the minimum value validation fails (defaults to "The minimum value for this field is {minVal...
 minValue : NumberNumberField
The minimum allowed value (defaults to Number.NEGATIVE_INFINITY)
 msgFx : StringField
Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
 msgTarget : StringField
The location where error text should display. Should be one of the following values (defaults to 'qtip'): Value Desc...
 nanText : StringNumberField
Error text to display if the value is not a valid number. For example, this can happen if a valid character like '.' ...
 regex : RegExpTextField
A JavaScript RegExp object to be tested against the field value during validation (defaults to null). If available, t...
 regexText : StringTextField
The error text to display if regex is used and the test fails during validation (defaults to "")
 selectOnFocus : BooleanTextField
True to automatically select any existing field text when the field receives input focus (defaults to false)
 validateOnBlur : String/BooleanField
Defaults to true.
 validationDelay : NumberField
The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
 validationEvent : String/BooleanField
The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
 validator : FunctionTextField
A custom validation function to be called during field validation (defaults to null). If available, this function wil...
 value : MixedField
A value to initialize this field with
 vtype : StringTextField
A validation type name as defined in Ext.form.VTypes (defaults to null)
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

NumberField

- public function NumberField(Object config) -
- Creates a new NumberField
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

applyTo

- public function applyTo(String/HTMLElement/Element el) -
- Apply the behaviors of this component to an existing element. This is used instead of render(). -
- Parameters: -
  • el : String/HTMLElement/Element
    The id of the node, a DOM Node or an existing Element
- Returns: -
    -
  • Ext.form.Field
    this
  • -
-
-
-
This method is defined by Field.
-
- -
-

autoSize

- public function autoSize() -
- Automatically grows the field to accomodate the width of the text up to the maximum field width allowed. -This only takes effect if grow = true and fires the autosize event. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TextField.
-
- -
-

clearInvalid

- public function clearInvalid() -
- Clear any invalid styles/messages for this field -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

getName

- public function getName() -
- Returns the name attribute of the field if available -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    name The field name
  • -
-
-
-
This method is defined by Field.
-
- -
-

getRawValue

- public function getRawValue() -
- Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue. -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The field value
  • -
-
-
-
This method is defined by Field.
-
- -
-

getValue

- public function getValue() -
- Returns the normalized data value (undefined or emptyText will be returned as ''). To return the raw value see getRawValue. -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The field value
  • -
-
-
-
This method is defined by Field.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isValid

- public function isValid(Boolean preventMark) -
- Returns whether or not the field value is currently valid -
- Parameters: -
  • preventMark : Boolean
    True to disable marking the field invalid
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

markInvalid

- public function markInvalid(String msg) -
- Mark this field as invalid -
- Parameters: -
  • msg : String
    The validation message
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

reset

- public function reset() -
- Resets the current field value to the originally-loaded value and clears any validation messages -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

selectText

- public function selectText([Number start], [Number end]) -
- Selects text in this field -
- Parameters: -
  • start : Number
    (optional) The index where the selection should start (defaults to 0)
  • end : Number
    (optional) The index where the selection should end (defaults to the text length)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TextField.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setRawValue

- public function setRawValue(Mixed value) -
- Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue. -
- Parameters: -
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setSize

- public function setSize(Number width, Number height) -
- Sets the height and width of the field -
- Parameters: -
  • width : Number
    The new field width in pixels
  • height : Number
    The new field height in pixels
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setValue

- public function setValue(Mixed value) -
- Sets a data value into the field and validates it. To set the value directly without validation see setRawValue. -
- Parameters: -
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

validate

- public function validate() -
- Validates the field value -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
- -
-

validateValue

- public function validateValue(Mixed value) -
- Validates a value according to the field's validation rules and marks the field as invalid -if the validation fails -
- Parameters: -
  • value : Mixed
    The value to validate
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by TextField.
-
-
- -

Event Details

-
- -
-

autosize

- public event autosize -
- Fires when the autosize function is triggered. The field may or may not have actually changed size -according to the default logic, but this event provides a hook for the developer to apply additional -logic at runtime to resize the field if needed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
    This text field
  • width : Number
    The new field width
-
-
-
This event is defined by TextField.
-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

blur

- public event blur -
- Fires when -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

change

- public event change -
- Fires just before the field blurs if the field value has changed -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • value : Mixed
    The changed value
  • value : Mixed
    The original value
-
-
-
This event is defined by Field.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

focus

- public event focus -
- Fires when this field receives input focus -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

invalid

- public event invalid -
- Fires after the field has been marked as invalid -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • msg : String
    The validation message
-
-
-
This event is defined by Field.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

specialkey

- public event specialkey -
- Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.getKey to determine which key was pressed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by Field.
-
- -
-

valid

- public event valid -
- Fires after the field has been validated with no errors -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
-
-

Config Details

-
- -
-

allowBlank

- allowBlank : Boolean -
- False to validate that the value length > 0 (defaults to true)
-
This config option is defined by TextField.
-
- -
-

allowDecimals

- allowDecimals : Boolean -
- False to disallow decimal values (defaults to true)
-
This config option is defined by NumberField.
-
- -
-

allowNegative

- allowNegative : Boolean -
- False to require only positive numbers (defaults to true)
-
This config option is defined by NumberField.
-
- -
-

autoCreate

- autoCreate : String/Object -
- A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "20", autocomplete: "off"})
-
This config option is defined by Field.
-
- -
-

blankText

- blankText : String -
- Error text to display if the allow blank validation fails (defaults to "This field is required")
-
This config option is defined by TextField.
-
- -
-

decimalPrecision

- decimalPrecision : Number -
- The maximum precision to display after the decimal separator (defaults to 2)
-
This config option is defined by NumberField.
-
- -
-

decimalSeparator

- decimalSeparator : String -
- Character(s) to allow as the decimal separator (defaults to '.')
-
This config option is defined by NumberField.
-
- -
-

disableKeyFilter

- disableKeyFilter : Boolean -
- True to disable input keystroke filtering (defaults to false)
-
This config option is defined by TextField.
-
- -
-

emptyClass

- emptyClass : String -
- The CSS class to apply to an empty field to style the emptyText (defaults to 'x-form-empty-field'). This class is automatically added and removed as needed depending on the current field value.
-
This config option is defined by TextField.
-
- -
-

emptyText

- emptyText : String -
- The default text to display in an empty field (defaults to null).
-
This config option is defined by TextField.
-
- -
-

fieldClass

- fieldClass : String -
- The default CSS class for the field (defaults to "x-form-field x-form-num-field")
-
This config option is defined by NumberField.
-
- -
-

focusClass

- focusClass : String -
- The CSS class to use when the field receives focus (defaults to "x-form-focus")
-
This config option is defined by Field.
-
- -
-

grow

- grow : Boolean -
- True if this field should automatically grow and shrink to its content
-
This config option is defined by TextField.
-
- -
-

growMax

- growMax : Number -
- The maximum width to allow when grow = true (defaults to 800)
-
This config option is defined by TextField.
-
- -
-

growMin

- growMin : Number -
- The minimum width to allow when grow = true (defaults to 30)
-
This config option is defined by TextField.
-
- -
-

inputType

- inputType : String -
- The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
-
This config option is defined by Field.
-
- -
-

invalidClass

- invalidClass : String -
- The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
-
This config option is defined by Field.
-
- -
-

invalidText

- invalidText : String -
- The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field is invalid")
-
This config option is defined by Field.
-
- -
-

maskRe

- maskRe : String -
- An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)
-
This config option is defined by TextField.
-
- -
-

maxLength

- maxLength : Number -
- Maximum input field length allowed (defaults to Number.MAX_VALUE)
-
This config option is defined by TextField.
-
- -
-

maxLengthText

- maxLengthText : String -
- Error text to display if the maximum length validation fails (defaults to "The maximum length for this field is {maxLength}")
-
This config option is defined by TextField.
-
- -
-

maxText

- maxText : String -
- Error text to display if the maximum value validation fails (defaults to "The maximum value for this field is {maxValue}")
-
This config option is defined by NumberField.
-
- -
-

maxValue

- maxValue : Number -
- The maximum allowed value (defaults to Number.MAX_VALUE)
-
This config option is defined by NumberField.
-
- -
-

minLength

- minLength : Number -
- Minimum input field length required (defaults to 0)
-
This config option is defined by TextField.
-
- -
-

minLengthText

- minLengthText : String -
- Error text to display if the minimum length validation fails (defaults to "The minimum length for this field is {minLength}")
-
This config option is defined by TextField.
-
- -
-

minText

- minText : String -
- Error text to display if the minimum value validation fails (defaults to "The minimum value for this field is {minValue}")
-
This config option is defined by NumberField.
-
- -
-

minValue

- minValue : Number -
- The minimum allowed value (defaults to Number.NEGATIVE_INFINITY)
-
This config option is defined by NumberField.
-
- -
-

msgFx

- msgFx : String -
- Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
-
This config option is defined by Field.
-
- -
-

msgTarget

- msgTarget : String -
- The location where error text should display. Should be one of the following values (defaults to 'qtip'):
 Value Description ----------- ---------------------------------------------------------------------- qtip Display a quick tip when the user hovers over the field title Display a default browser title attribute popup under Add a block div beneath the field containing the error text side Add an error icon to the right of the field with a popup on hover [element id] Add the error text directly to the innerHTML of the specified element 
-
This config option is defined by Field.
-
- -
-

nanText

- nanText : String -
- Error text to display if the value is not a valid number. For example, this can happen if a valid character like '.' or '-' is left in the field with no number (defaults to "{value} is not a valid number")
-
This config option is defined by NumberField.
-
- -
-

regex

- regex : RegExp -
- A JavaScript RegExp object to be tested against the field value during validation (defaults to null). If available, this regex will be evaluated only after the basic validators all return true, and will be passed the current field value. If the test fails, the field will be marked invalid using regexText.
-
This config option is defined by TextField.
-
- -
-

regexText

- regexText : String -
- The error text to display if regex is used and the test fails during validation (defaults to "")
-
This config option is defined by TextField.
-
- -
-

selectOnFocus

- selectOnFocus : Boolean -
- True to automatically select any existing field text when the field receives input focus (defaults to false)
-
This config option is defined by TextField.
-
- -
-

validateOnBlur

- validateOnBlur : String/Boolean -
- Defaults to true.
-
This config option is defined by Field.
-
- -
-

validationDelay

- validationDelay : Number -
- The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
-
This config option is defined by Field.
-
- -
-

validationEvent

- validationEvent : String/Boolean -
- The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
-
This config option is defined by Field.
-
- -
-

validator

- validator : Function -
- A custom validation function to be called during field validation (defaults to null). If available, this function will be called only after the basic validators all return true, and will be passed the current field value and expected to return boolean true if the value is valid or a string error message if invalid.
-
This config option is defined by TextField.
-
- -
-

value

- value : Mixed -
- A value to initialize this field with
-
This config option is defined by Field.
-
- -
-

vtype

- vtype : String -
- A validation type name as defined in Ext.form.VTypes (defaults to null)
-
This config option is defined by TextField.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.form.Radio.html b/www/extras/extjs/docs/output/Ext.form.Radio.html deleted file mode 100644 index 6d9487ab5..000000000 --- a/www/extras/extjs/docs/output/Ext.form.Radio.html +++ /dev/null @@ -1,1547 +0,0 @@ - - - - Ext.form.Radio - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.form.Radio

- - - - - -
Package:Ext.form
Class:Radio
Extends:Checkbox
Defined In:Radio.js
-
- Single radio field. Same as Checkbox, but provided as a convenience for automatically setting the input type. -Radio grouping is handled automatically by the browser if you give each radio in a group the same name.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Radio(Object config)Radio
Creates a new Radio
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 applyTo(String/HTMLElement/Element el) : Ext.form.FieldField
Apply the behaviors of this component to an existing element. This is used instead of render().
 clearInvalid() : voidField
Clear any invalid styles/messages for this field
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 getName() : StringField
Returns the name attribute of the field if available
 getRawValue() : MixedField
Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue.
 getValue() : MixedField
Returns the normalized data value (undefined or emptyText will be returned as ''). To return the raw value see getRa...
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isValid(Boolean preventMark) : BooleanField
Returns whether or not the field value is currently valid
 isVisible() : voidComponent
Returns true if this component is visible
 markInvalid(String msg) : voidField
Mark this field as invalid
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 reset() : voidField
Resets the current field value to the originally-loaded value and clears any validation messages
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setRawValue(Mixed value) : voidField
Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue.
 setSize(Number width, Number height) : voidField
Sets the height and width of the field
 setValue(Mixed value) : voidField
Sets a data value into the field and validates it. To set the value directly without validation see setRawValue.
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 validate() : BooleanField
Validates the field value
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 blur : (Ext.form.Field this)Field
Fires when
 change : (Ext.form.Field this, Mixed value, Mixed value)Field
Fires just before the field blurs if the field value has changed
 check : (Ext.form.Checkbox this, Boolean checked)Checkbox
Fires when the checkbox is checked or unchecked
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 focus : (Ext.form.Field this)Field
Fires when this field receives input focus
 hide : (Ext.Component this)Component
Fires after the component is hidden
 invalid : (Ext.form.Field this, String msg)Field
Fires after the field has been marked as invalid
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
 specialkey : (Ext.form.Field this, Ext.EventObject e)Field
Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.g...
 valid : (Ext.form.Field this)Field
Fires after the field has been validated with no errors
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 autoCreate : String/ObjectField
A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "20", au...
 boxLabel : StringCheckbox
The text that appears beside the checkbox
 checked : BooleanCheckbox
True if the the checkbox should render already checked (defaults to false)
 fieldClass : StringField
The default CSS class for the field (defaults to "x-form-field")
 focusClass : StringField
The CSS class to use when the field receives focus (defaults to "x-form-focus")
 inputType : StringField
The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
 inputValue : StringCheckbox
The value that should go into the generated input element's value attribute
 invalidClass : StringField
The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
 invalidText : StringField
The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field i...
 msgFx : StringField
Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
 msgTarget : StringField
The location where error text should display. Should be one of the following values (defaults to 'qtip'): Value Desc...
 validateOnBlur : String/BooleanField
Defaults to true.
 validationDelay : NumberField
The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
 validationEvent : String/BooleanField
The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
 value : MixedField
A value to initialize this field with
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

Radio

- public function Radio(Object config) -
- Creates a new Radio
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

applyTo

- public function applyTo(String/HTMLElement/Element el) -
- Apply the behaviors of this component to an existing element. This is used instead of render(). -
- Parameters: -
  • el : String/HTMLElement/Element
    The id of the node, a DOM Node or an existing Element
- Returns: -
    -
  • Ext.form.Field
    this
  • -
-
-
-
This method is defined by Field.
-
- -
-

clearInvalid

- public function clearInvalid() -
- Clear any invalid styles/messages for this field -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

getName

- public function getName() -
- Returns the name attribute of the field if available -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    name The field name
  • -
-
-
-
This method is defined by Field.
-
- -
-

getRawValue

- public function getRawValue() -
- Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue. -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The field value
  • -
-
-
-
This method is defined by Field.
-
- -
-

getValue

- public function getValue() -
- Returns the normalized data value (undefined or emptyText will be returned as ''). To return the raw value see getRawValue. -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The field value
  • -
-
-
-
This method is defined by Field.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isValid

- public function isValid(Boolean preventMark) -
- Returns whether or not the field value is currently valid -
- Parameters: -
  • preventMark : Boolean
    True to disable marking the field invalid
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

markInvalid

- public function markInvalid(String msg) -
- Mark this field as invalid -
- Parameters: -
  • msg : String
    The validation message
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

reset

- public function reset() -
- Resets the current field value to the originally-loaded value and clears any validation messages -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setRawValue

- public function setRawValue(Mixed value) -
- Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue. -
- Parameters: -
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setSize

- public function setSize(Number width, Number height) -
- Sets the height and width of the field -
- Parameters: -
  • width : Number
    The new field width in pixels
  • height : Number
    The new field height in pixels
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setValue

- public function setValue(Mixed value) -
- Sets a data value into the field and validates it. To set the value directly without validation see setRawValue. -
- Parameters: -
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

validate

- public function validate() -
- Validates the field value -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
-
- -

Event Details

-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

blur

- public event blur -
- Fires when -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

change

- public event change -
- Fires just before the field blurs if the field value has changed -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • value : Mixed
    The changed value
  • value : Mixed
    The original value
-
-
-
This event is defined by Field.
-
- -
-

check

- public event check -
- Fires when the checkbox is checked or unchecked -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Checkbox
    This checkbox
  • checked : Boolean
    The new checked value
-
-
-
This event is defined by Checkbox.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

focus

- public event focus -
- Fires when this field receives input focus -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

invalid

- public event invalid -
- Fires after the field has been marked as invalid -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • msg : String
    The validation message
-
-
-
This event is defined by Field.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

specialkey

- public event specialkey -
- Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.getKey to determine which key was pressed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by Field.
-
- -
-

valid

- public event valid -
- Fires after the field has been validated with no errors -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
-
-

Config Details

-
- -
-

autoCreate

- autoCreate : String/Object -
- A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "20", autocomplete: "off"})
-
This config option is defined by Field.
-
- -
-

boxLabel

- boxLabel : String -
- The text that appears beside the checkbox
-
This config option is defined by Checkbox.
-
- -
-

checked

- checked : Boolean -
- True if the the checkbox should render already checked (defaults to false)
-
This config option is defined by Checkbox.
-
- -
-

fieldClass

- fieldClass : String -
- The default CSS class for the field (defaults to "x-form-field")
-
This config option is defined by Field.
-
- -
-

focusClass

- focusClass : String -
- The CSS class to use when the field receives focus (defaults to "x-form-focus")
-
This config option is defined by Field.
-
- -
-

inputType

- inputType : String -
- The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
-
This config option is defined by Field.
-
- -
-

inputValue

- inputValue : String -
- The value that should go into the generated input element's value attribute
-
This config option is defined by Checkbox.
-
- -
-

invalidClass

- invalidClass : String -
- The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
-
This config option is defined by Field.
-
- -
-

invalidText

- invalidText : String -
- The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field is invalid")
-
This config option is defined by Field.
-
- -
-

msgFx

- msgFx : String -
- Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
-
This config option is defined by Field.
-
- -
-

msgTarget

- msgTarget : String -
- The location where error text should display. Should be one of the following values (defaults to 'qtip'):
 Value Description ----------- ---------------------------------------------------------------------- qtip Display a quick tip when the user hovers over the field title Display a default browser title attribute popup under Add a block div beneath the field containing the error text side Add an error icon to the right of the field with a popup on hover [element id] Add the error text directly to the innerHTML of the specified element 
-
This config option is defined by Field.
-
- -
-

validateOnBlur

- validateOnBlur : String/Boolean -
- Defaults to true.
-
This config option is defined by Field.
-
- -
-

validationDelay

- validationDelay : Number -
- The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
-
This config option is defined by Field.
-
- -
-

validationEvent

- validationEvent : String/Boolean -
- The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
-
This config option is defined by Field.
-
- -
-

value

- value : Mixed -
- A value to initialize this field with
-
This config option is defined by Field.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.form.TextArea.html b/www/extras/extjs/docs/output/Ext.form.TextArea.html deleted file mode 100644 index 926c9a199..000000000 --- a/www/extras/extjs/docs/output/Ext.form.TextArea.html +++ /dev/null @@ -1,1885 +0,0 @@ - - - - Ext.form.TextArea - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.form.TextArea

- - - - - -
Package:Ext.form
Class:TextArea
Extends:TextField
Defined In:TextArea.js
-
- Multiline text field. Can be used as a direct replacement for traditional textarea fields, plus adds -support for auto-sizing.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 TextArea(Object config)TextArea
Creates a new TextArea
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 applyTo(String/HTMLElement/Element el) : Ext.form.FieldField
Apply the behaviors of this component to an existing element. This is used instead of render().
 autoSize() : voidTextArea
Automatically grows the field to accomodate the height of the text up to the maximum field height allowed. -This only ...
 clearInvalid() : voidField
Clear any invalid styles/messages for this field
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 getName() : StringField
Returns the name attribute of the field if available
 getRawValue() : MixedField
Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue.
 getValue() : MixedField
Returns the normalized data value (undefined or emptyText will be returned as ''). To return the raw value see getRa...
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isValid(Boolean preventMark) : BooleanField
Returns whether or not the field value is currently valid
 isVisible() : voidComponent
Returns true if this component is visible
 markInvalid(String msg) : voidField
Mark this field as invalid
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 reset() : voidField
Resets the current field value to the originally-loaded value and clears any validation messages
 selectText([Number start], [Number end]) : voidTextField
Selects text in this field
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setRawValue(Mixed value) : voidField
Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue.
 setSize(Number width, Number height) : voidField
Sets the height and width of the field
 setValue(Mixed value) : voidField
Sets a data value into the field and validates it. To set the value directly without validation see setRawValue.
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 validate() : BooleanField
Validates the field value
 validateValue(Mixed value) : BooleanTextField
Validates a value according to the field's validation rules and marks the field as invalid -if the validation fails
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 autosize : (Ext.form.Field this, Number width)TextField
Fires when the autosize function is triggered. The field may or may not have actually changed size -according to the ...
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 blur : (Ext.form.Field this)Field
Fires when
 change : (Ext.form.Field this, Mixed value, Mixed value)Field
Fires just before the field blurs if the field value has changed
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 focus : (Ext.form.Field this)Field
Fires when this field receives input focus
 hide : (Ext.Component this)Component
Fires after the component is hidden
 invalid : (Ext.form.Field this, String msg)Field
Fires after the field has been marked as invalid
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
 specialkey : (Ext.form.Field this, Ext.EventObject e)Field
Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.g...
 valid : (Ext.form.Field this)Field
Fires after the field has been validated with no errors
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 allowBlank : BooleanTextField
False to validate that the value length > 0 (defaults to true)
 autoCreate : String/ObjectField
A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "20", au...
 blankText : StringTextField
Error text to display if the allow blank validation fails (defaults to "This field is required")
 disableKeyFilter : BooleanTextField
True to disable input keystroke filtering (defaults to false)
 emptyClass : StringTextField
The CSS class to apply to an empty field to style the emptyText (defaults to 'x-form-empty-field'). This class is aut...
 emptyText : StringTextField
The default text to display in an empty field (defaults to null).
 fieldClass : StringField
The default CSS class for the field (defaults to "x-form-field")
 focusClass : StringField
The CSS class to use when the field receives focus (defaults to "x-form-focus")
 grow : BooleanTextField
True if this field should automatically grow and shrink to its content
 growMax : NumberTextArea
The maximum height to allow when grow = true (defaults to 1000)
 growMin : NumberTextArea
The minimum height to allow when grow = true (defaults to 60)
 inputType : StringField
The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
 invalidClass : StringField
The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
 invalidText : StringField
The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field i...
 maskRe : StringTextField
An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)
 maxLength : NumberTextField
Maximum input field length allowed (defaults to Number.MAX_VALUE)
 maxLengthText : StringTextField
Error text to display if the maximum length validation fails (defaults to "The maximum length for this field is {maxL...
 minLength : NumberTextField
Minimum input field length required (defaults to 0)
 minLengthText : StringTextField
Error text to display if the minimum length validation fails (defaults to "The minimum length for this field is {minL...
 msgFx : StringField
Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
 msgTarget : StringField
The location where error text should display. Should be one of the following values (defaults to 'qtip'): Value Desc...
 preventScrollbars : BooleanTextArea
True to prevent scrollbars from appearing regardless of how much text is in the field (equivalent to setting overflow...
 regex : RegExpTextField
A JavaScript RegExp object to be tested against the field value during validation (defaults to null). If available, t...
 regexText : StringTextField
The error text to display if regex is used and the test fails during validation (defaults to "")
 selectOnFocus : BooleanTextField
True to automatically select any existing field text when the field receives input focus (defaults to false)
 validateOnBlur : String/BooleanField
Defaults to true.
 validationDelay : NumberField
The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
 validationEvent : String/BooleanField
The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
 validator : FunctionTextField
A custom validation function to be called during field validation (defaults to null). If available, this function wil...
 value : MixedField
A value to initialize this field with
 vtype : StringTextField
A validation type name as defined in Ext.form.VTypes (defaults to null)
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

TextArea

- public function TextArea(Object config) -
- Creates a new TextArea
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

applyTo

- public function applyTo(String/HTMLElement/Element el) -
- Apply the behaviors of this component to an existing element. This is used instead of render(). -
- Parameters: -
  • el : String/HTMLElement/Element
    The id of the node, a DOM Node or an existing Element
- Returns: -
    -
  • Ext.form.Field
    this
  • -
-
-
-
This method is defined by Field.
-
- -
-

autoSize

- public function autoSize() -
- Automatically grows the field to accomodate the height of the text up to the maximum field height allowed. -This only takes effect if grow = true and fires the autosize event. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TextArea.
-
- -
-

clearInvalid

- public function clearInvalid() -
- Clear any invalid styles/messages for this field -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

getName

- public function getName() -
- Returns the name attribute of the field if available -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    name The field name
  • -
-
-
-
This method is defined by Field.
-
- -
-

getRawValue

- public function getRawValue() -
- Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue. -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The field value
  • -
-
-
-
This method is defined by Field.
-
- -
-

getValue

- public function getValue() -
- Returns the normalized data value (undefined or emptyText will be returned as ''). To return the raw value see getRawValue. -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The field value
  • -
-
-
-
This method is defined by Field.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isValid

- public function isValid(Boolean preventMark) -
- Returns whether or not the field value is currently valid -
- Parameters: -
  • preventMark : Boolean
    True to disable marking the field invalid
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

markInvalid

- public function markInvalid(String msg) -
- Mark this field as invalid -
- Parameters: -
  • msg : String
    The validation message
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

reset

- public function reset() -
- Resets the current field value to the originally-loaded value and clears any validation messages -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

selectText

- public function selectText([Number start], [Number end]) -
- Selects text in this field -
- Parameters: -
  • start : Number
    (optional) The index where the selection should start (defaults to 0)
  • end : Number
    (optional) The index where the selection should end (defaults to the text length)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TextField.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setRawValue

- public function setRawValue(Mixed value) -
- Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue. -
- Parameters: -
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setSize

- public function setSize(Number width, Number height) -
- Sets the height and width of the field -
- Parameters: -
  • width : Number
    The new field width in pixels
  • height : Number
    The new field height in pixels
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setValue

- public function setValue(Mixed value) -
- Sets a data value into the field and validates it. To set the value directly without validation see setRawValue. -
- Parameters: -
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

validate

- public function validate() -
- Validates the field value -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
- -
-

validateValue

- public function validateValue(Mixed value) -
- Validates a value according to the field's validation rules and marks the field as invalid -if the validation fails -
- Parameters: -
  • value : Mixed
    The value to validate
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by TextField.
-
-
- -

Event Details

-
- -
-

autosize

- public event autosize -
- Fires when the autosize function is triggered. The field may or may not have actually changed size -according to the default logic, but this event provides a hook for the developer to apply additional -logic at runtime to resize the field if needed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
    This text field
  • width : Number
    The new field width
-
-
-
This event is defined by TextField.
-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

blur

- public event blur -
- Fires when -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

change

- public event change -
- Fires just before the field blurs if the field value has changed -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • value : Mixed
    The changed value
  • value : Mixed
    The original value
-
-
-
This event is defined by Field.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

focus

- public event focus -
- Fires when this field receives input focus -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

invalid

- public event invalid -
- Fires after the field has been marked as invalid -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • msg : String
    The validation message
-
-
-
This event is defined by Field.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

specialkey

- public event specialkey -
- Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.getKey to determine which key was pressed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by Field.
-
- -
-

valid

- public event valid -
- Fires after the field has been validated with no errors -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
-
-

Config Details

-
- -
-

allowBlank

- allowBlank : Boolean -
- False to validate that the value length > 0 (defaults to true)
-
This config option is defined by TextField.
-
- -
-

autoCreate

- autoCreate : String/Object -
- A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "20", autocomplete: "off"})
-
This config option is defined by Field.
-
- -
-

blankText

- blankText : String -
- Error text to display if the allow blank validation fails (defaults to "This field is required")
-
This config option is defined by TextField.
-
- -
-

disableKeyFilter

- disableKeyFilter : Boolean -
- True to disable input keystroke filtering (defaults to false)
-
This config option is defined by TextField.
-
- -
-

emptyClass

- emptyClass : String -
- The CSS class to apply to an empty field to style the emptyText (defaults to 'x-form-empty-field'). This class is automatically added and removed as needed depending on the current field value.
-
This config option is defined by TextField.
-
- -
-

emptyText

- emptyText : String -
- The default text to display in an empty field (defaults to null).
-
This config option is defined by TextField.
-
- -
-

fieldClass

- fieldClass : String -
- The default CSS class for the field (defaults to "x-form-field")
-
This config option is defined by Field.
-
- -
-

focusClass

- focusClass : String -
- The CSS class to use when the field receives focus (defaults to "x-form-focus")
-
This config option is defined by Field.
-
- -
-

grow

- grow : Boolean -
- True if this field should automatically grow and shrink to its content
-
This config option is defined by TextField.
-
- -
-

growMax

- growMax : Number -
- The maximum height to allow when grow = true (defaults to 1000)
-
This config option is defined by TextArea.
-
- -
-

growMin

- growMin : Number -
- The minimum height to allow when grow = true (defaults to 60)
-
This config option is defined by TextArea.
-
- -
-

inputType

- inputType : String -
- The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
-
This config option is defined by Field.
-
- -
-

invalidClass

- invalidClass : String -
- The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
-
This config option is defined by Field.
-
- -
-

invalidText

- invalidText : String -
- The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field is invalid")
-
This config option is defined by Field.
-
- -
-

maskRe

- maskRe : String -
- An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)
-
This config option is defined by TextField.
-
- -
-

maxLength

- maxLength : Number -
- Maximum input field length allowed (defaults to Number.MAX_VALUE)
-
This config option is defined by TextField.
-
- -
-

maxLengthText

- maxLengthText : String -
- Error text to display if the maximum length validation fails (defaults to "The maximum length for this field is {maxLength}")
-
This config option is defined by TextField.
-
- -
-

minLength

- minLength : Number -
- Minimum input field length required (defaults to 0)
-
This config option is defined by TextField.
-
- -
-

minLengthText

- minLengthText : String -
- Error text to display if the minimum length validation fails (defaults to "The minimum length for this field is {minLength}")
-
This config option is defined by TextField.
-
- -
-

msgFx

- msgFx : String -
- Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
-
This config option is defined by Field.
-
- -
-

msgTarget

- msgTarget : String -
- The location where error text should display. Should be one of the following values (defaults to 'qtip'):
 Value Description ----------- ---------------------------------------------------------------------- qtip Display a quick tip when the user hovers over the field title Display a default browser title attribute popup under Add a block div beneath the field containing the error text side Add an error icon to the right of the field with a popup on hover [element id] Add the error text directly to the innerHTML of the specified element 
-
This config option is defined by Field.
-
- -
-

preventScrollbars

- preventScrollbars : Boolean -
- True to prevent scrollbars from appearing regardless of how much text is in the field (equivalent to setting overflow: hidden, defaults to false)
-
This config option is defined by TextArea.
-
- -
-

regex

- regex : RegExp -
- A JavaScript RegExp object to be tested against the field value during validation (defaults to null). If available, this regex will be evaluated only after the basic validators all return true, and will be passed the current field value. If the test fails, the field will be marked invalid using regexText.
-
This config option is defined by TextField.
-
- -
-

regexText

- regexText : String -
- The error text to display if regex is used and the test fails during validation (defaults to "")
-
This config option is defined by TextField.
-
- -
-

selectOnFocus

- selectOnFocus : Boolean -
- True to automatically select any existing field text when the field receives input focus (defaults to false)
-
This config option is defined by TextField.
-
- -
-

validateOnBlur

- validateOnBlur : String/Boolean -
- Defaults to true.
-
This config option is defined by Field.
-
- -
-

validationDelay

- validationDelay : Number -
- The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
-
This config option is defined by Field.
-
- -
-

validationEvent

- validationEvent : String/Boolean -
- The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
-
This config option is defined by Field.
-
- -
-

validator

- validator : Function -
- A custom validation function to be called during field validation (defaults to null). If available, this function will be called only after the basic validators all return true, and will be passed the current field value and expected to return boolean true if the value is valid or a string error message if invalid.
-
This config option is defined by TextField.
-
- -
-

value

- value : Mixed -
- A value to initialize this field with
-
This config option is defined by Field.
-
- -
-

vtype

- vtype : String -
- A validation type name as defined in Ext.form.VTypes (defaults to null)
-
This config option is defined by TextField.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.form.TextField.html b/www/extras/extjs/docs/output/Ext.form.TextField.html deleted file mode 100644 index 3588f935c..000000000 --- a/www/extras/extjs/docs/output/Ext.form.TextField.html +++ /dev/null @@ -1,1872 +0,0 @@ - - - - Ext.form.TextField - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.form.TextField

- - - - - - -
Package:Ext.form
Class:TextField
Extends:Field
Subclasses:NumberField, TextArea, TriggerField
Defined In:TextField.js
-
- Basic text field. Can be used as a direct replacement for traditional text inputs, or as the base -class for more sophisticated input controls (like Ext.form.TextArea and Ext.form.ComboBox).
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 TextField(Object config)TextField
Creates a new TextField
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 applyTo(String/HTMLElement/Element el) : Ext.form.FieldField
Apply the behaviors of this component to an existing element. This is used instead of render().
 autoSize() : voidTextField
Automatically grows the field to accomodate the width of the text up to the maximum field width allowed. -This only ta...
 clearInvalid() : voidField
Clear any invalid styles/messages for this field
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 getName() : StringField
Returns the name attribute of the field if available
 getRawValue() : MixedField
Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue.
 getValue() : MixedField
Returns the normalized data value (undefined or emptyText will be returned as ''). To return the raw value see getRa...
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isValid(Boolean preventMark) : BooleanField
Returns whether or not the field value is currently valid
 isVisible() : voidComponent
Returns true if this component is visible
 markInvalid(String msg) : voidField
Mark this field as invalid
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 reset() : voidTextField
Resets the current field value to the originally-loaded value and clears any validation messages. -Also adds emptyText...
 selectText([Number start], [Number end]) : voidTextField
Selects text in this field
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setRawValue(Mixed value) : voidField
Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue.
 setSize(Number width, Number height) : voidField
Sets the height and width of the field
 setValue(Mixed value) : voidField
Sets a data value into the field and validates it. To set the value directly without validation see setRawValue.
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 validate() : BooleanField
Validates the field value
 validateValue(Mixed value) : BooleanTextField
Validates a value according to the field's validation rules and marks the field as invalid -if the validation fails
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 autosize : (Ext.form.Field this, Number width)TextField
Fires when the autosize function is triggered. The field may or may not have actually changed size -according to the ...
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 blur : (Ext.form.Field this)Field
Fires when
 change : (Ext.form.Field this, Mixed value, Mixed value)Field
Fires just before the field blurs if the field value has changed
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 focus : (Ext.form.Field this)Field
Fires when this field receives input focus
 hide : (Ext.Component this)Component
Fires after the component is hidden
 invalid : (Ext.form.Field this, String msg)Field
Fires after the field has been marked as invalid
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
 specialkey : (Ext.form.Field this, Ext.EventObject e)Field
Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.g...
 valid : (Ext.form.Field this)Field
Fires after the field has been validated with no errors
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 allowBlank : BooleanTextField
False to validate that the value length > 0 (defaults to true)
 autoCreate : String/ObjectField
A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "20", au...
 blankText : StringTextField
Error text to display if the allow blank validation fails (defaults to "This field is required")
 disableKeyFilter : BooleanTextField
True to disable input keystroke filtering (defaults to false)
 emptyClass : StringTextField
The CSS class to apply to an empty field to style the emptyText (defaults to 'x-form-empty-field'). This class is aut...
 emptyText : StringTextField
The default text to display in an empty field (defaults to null).
 fieldClass : StringField
The default CSS class for the field (defaults to "x-form-field")
 focusClass : StringField
The CSS class to use when the field receives focus (defaults to "x-form-focus")
 grow : BooleanTextField
True if this field should automatically grow and shrink to its content
 growMax : NumberTextField
The maximum width to allow when grow = true (defaults to 800)
 growMin : NumberTextField
The minimum width to allow when grow = true (defaults to 30)
 inputType : StringField
The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
 invalidClass : StringField
The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
 invalidText : StringField
The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field i...
 maskRe : StringTextField
An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)
 maxLength : NumberTextField
Maximum input field length allowed (defaults to Number.MAX_VALUE)
 maxLengthText : StringTextField
Error text to display if the maximum length validation fails (defaults to "The maximum length for this field is {maxL...
 minLength : NumberTextField
Minimum input field length required (defaults to 0)
 minLengthText : StringTextField
Error text to display if the minimum length validation fails (defaults to "The minimum length for this field is {minL...
 msgFx : StringField
Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
 msgTarget : StringField
The location where error text should display. Should be one of the following values (defaults to 'qtip'): Value Desc...
 regex : RegExpTextField
A JavaScript RegExp object to be tested against the field value during validation (defaults to null). If available, t...
 regexText : StringTextField
The error text to display if regex is used and the test fails during validation (defaults to "")
 selectOnFocus : BooleanTextField
True to automatically select any existing field text when the field receives input focus (defaults to false)
 validateOnBlur : String/BooleanField
Defaults to true.
 validationDelay : NumberField
The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
 validationEvent : String/BooleanField
The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
 validator : FunctionTextField
A custom validation function to be called during field validation (defaults to null). If available, this function wil...
 value : MixedField
A value to initialize this field with
 vtype : StringTextField
A validation type name as defined in Ext.form.VTypes (defaults to null)
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

TextField

- public function TextField(Object config) -
- Creates a new TextField
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

applyTo

- public function applyTo(String/HTMLElement/Element el) -
- Apply the behaviors of this component to an existing element. This is used instead of render(). -
- Parameters: -
  • el : String/HTMLElement/Element
    The id of the node, a DOM Node or an existing Element
- Returns: -
    -
  • Ext.form.Field
    this
  • -
-
-
-
This method is defined by Field.
-
- -
-

autoSize

- public function autoSize() -
- Automatically grows the field to accomodate the width of the text up to the maximum field width allowed. -This only takes effect if grow = true and fires the autosize event. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TextField.
-
- -
-

clearInvalid

- public function clearInvalid() -
- Clear any invalid styles/messages for this field -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

getName

- public function getName() -
- Returns the name attribute of the field if available -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    name The field name
  • -
-
-
-
This method is defined by Field.
-
- -
-

getRawValue

- public function getRawValue() -
- Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue. -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The field value
  • -
-
-
-
This method is defined by Field.
-
- -
-

getValue

- public function getValue() -
- Returns the normalized data value (undefined or emptyText will be returned as ''). To return the raw value see getRawValue. -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The field value
  • -
-
-
-
This method is defined by Field.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isValid

- public function isValid(Boolean preventMark) -
- Returns whether or not the field value is currently valid -
- Parameters: -
  • preventMark : Boolean
    True to disable marking the field invalid
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

markInvalid

- public function markInvalid(String msg) -
- Mark this field as invalid -
- Parameters: -
  • msg : String
    The validation message
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

reset

- public function reset() -
- Resets the current field value to the originally-loaded value and clears any validation messages. -Also adds emptyText and emptyClass if the original value was blank. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TextField.
-
- -
-

selectText

- public function selectText([Number start], [Number end]) -
- Selects text in this field -
- Parameters: -
  • start : Number
    (optional) The index where the selection should start (defaults to 0)
  • end : Number
    (optional) The index where the selection should end (defaults to the text length)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TextField.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setRawValue

- public function setRawValue(Mixed value) -
- Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue. -
- Parameters: -
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setSize

- public function setSize(Number width, Number height) -
- Sets the height and width of the field -
- Parameters: -
  • width : Number
    The new field width in pixels
  • height : Number
    The new field height in pixels
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setValue

- public function setValue(Mixed value) -
- Sets a data value into the field and validates it. To set the value directly without validation see setRawValue. -
- Parameters: -
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

validate

- public function validate() -
- Validates the field value -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
- -
-

validateValue

- public function validateValue(Mixed value) -
- Validates a value according to the field's validation rules and marks the field as invalid -if the validation fails -
- Parameters: -
  • value : Mixed
    The value to validate
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by TextField.
-
-
- -

Event Details

-
- -
-

autosize

- public event autosize -
- Fires when the autosize function is triggered. The field may or may not have actually changed size -according to the default logic, but this event provides a hook for the developer to apply additional -logic at runtime to resize the field if needed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
    This text field
  • width : Number
    The new field width
-
-
-
This event is defined by TextField.
-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

blur

- public event blur -
- Fires when -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

change

- public event change -
- Fires just before the field blurs if the field value has changed -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • value : Mixed
    The changed value
  • value : Mixed
    The original value
-
-
-
This event is defined by Field.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

focus

- public event focus -
- Fires when this field receives input focus -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

invalid

- public event invalid -
- Fires after the field has been marked as invalid -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • msg : String
    The validation message
-
-
-
This event is defined by Field.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

specialkey

- public event specialkey -
- Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.getKey to determine which key was pressed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by Field.
-
- -
-

valid

- public event valid -
- Fires after the field has been validated with no errors -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
-
-

Config Details

-
- -
-

allowBlank

- allowBlank : Boolean -
- False to validate that the value length > 0 (defaults to true)
-
This config option is defined by TextField.
-
- -
-

autoCreate

- autoCreate : String/Object -
- A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "20", autocomplete: "off"})
-
This config option is defined by Field.
-
- -
-

blankText

- blankText : String -
- Error text to display if the allow blank validation fails (defaults to "This field is required")
-
This config option is defined by TextField.
-
- -
-

disableKeyFilter

- disableKeyFilter : Boolean -
- True to disable input keystroke filtering (defaults to false)
-
This config option is defined by TextField.
-
- -
-

emptyClass

- emptyClass : String -
- The CSS class to apply to an empty field to style the emptyText (defaults to 'x-form-empty-field'). This class is automatically added and removed as needed depending on the current field value.
-
This config option is defined by TextField.
-
- -
-

emptyText

- emptyText : String -
- The default text to display in an empty field (defaults to null).
-
This config option is defined by TextField.
-
- -
-

fieldClass

- fieldClass : String -
- The default CSS class for the field (defaults to "x-form-field")
-
This config option is defined by Field.
-
- -
-

focusClass

- focusClass : String -
- The CSS class to use when the field receives focus (defaults to "x-form-focus")
-
This config option is defined by Field.
-
- -
-

grow

- grow : Boolean -
- True if this field should automatically grow and shrink to its content
-
This config option is defined by TextField.
-
- -
-

growMax

- growMax : Number -
- The maximum width to allow when grow = true (defaults to 800)
-
This config option is defined by TextField.
-
- -
-

growMin

- growMin : Number -
- The minimum width to allow when grow = true (defaults to 30)
-
This config option is defined by TextField.
-
- -
-

inputType

- inputType : String -
- The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
-
This config option is defined by Field.
-
- -
-

invalidClass

- invalidClass : String -
- The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
-
This config option is defined by Field.
-
- -
-

invalidText

- invalidText : String -
- The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field is invalid")
-
This config option is defined by Field.
-
- -
-

maskRe

- maskRe : String -
- An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)
-
This config option is defined by TextField.
-
- -
-

maxLength

- maxLength : Number -
- Maximum input field length allowed (defaults to Number.MAX_VALUE)
-
This config option is defined by TextField.
-
- -
-

maxLengthText

- maxLengthText : String -
- Error text to display if the maximum length validation fails (defaults to "The maximum length for this field is {maxLength}")
-
This config option is defined by TextField.
-
- -
-

minLength

- minLength : Number -
- Minimum input field length required (defaults to 0)
-
This config option is defined by TextField.
-
- -
-

minLengthText

- minLengthText : String -
- Error text to display if the minimum length validation fails (defaults to "The minimum length for this field is {minLength}")
-
This config option is defined by TextField.
-
- -
-

msgFx

- msgFx : String -
- Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
-
This config option is defined by Field.
-
- -
-

msgTarget

- msgTarget : String -
- The location where error text should display. Should be one of the following values (defaults to 'qtip'):
 Value Description ----------- ---------------------------------------------------------------------- qtip Display a quick tip when the user hovers over the field title Display a default browser title attribute popup under Add a block div beneath the field containing the error text side Add an error icon to the right of the field with a popup on hover [element id] Add the error text directly to the innerHTML of the specified element 
-
This config option is defined by Field.
-
- -
-

regex

- regex : RegExp -
- A JavaScript RegExp object to be tested against the field value during validation (defaults to null). If available, this regex will be evaluated only after the basic validators all return true, and will be passed the current field value. If the test fails, the field will be marked invalid using regexText.
-
This config option is defined by TextField.
-
- -
-

regexText

- regexText : String -
- The error text to display if regex is used and the test fails during validation (defaults to "")
-
This config option is defined by TextField.
-
- -
-

selectOnFocus

- selectOnFocus : Boolean -
- True to automatically select any existing field text when the field receives input focus (defaults to false)
-
This config option is defined by TextField.
-
- -
-

validateOnBlur

- validateOnBlur : String/Boolean -
- Defaults to true.
-
This config option is defined by Field.
-
- -
-

validationDelay

- validationDelay : Number -
- The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
-
This config option is defined by Field.
-
- -
-

validationEvent

- validationEvent : String/Boolean -
- The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
-
This config option is defined by Field.
-
- -
-

validator

- validator : Function -
- A custom validation function to be called during field validation (defaults to null). If available, this function will be called only after the basic validators all return true, and will be passed the current field value and expected to return boolean true if the value is valid or a string error message if invalid.
-
This config option is defined by TextField.
-
- -
-

value

- value : Mixed -
- A value to initialize this field with
-
This config option is defined by Field.
-
- -
-

vtype

- vtype : String -
- A validation type name as defined in Ext.form.VTypes (defaults to null)
-
This config option is defined by TextField.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.form.TriggerField.html b/www/extras/extjs/docs/output/Ext.form.TriggerField.html deleted file mode 100644 index 2dc1907dc..000000000 --- a/www/extras/extjs/docs/output/Ext.form.TriggerField.html +++ /dev/null @@ -1,1909 +0,0 @@ - - - - Ext.form.TriggerField - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.form.TriggerField

- - - - - - -
Package:Ext.form
Class:TriggerField
Extends:TextField
Subclasses:ComboBox, DateField
Defined In:TriggerField.js
-
- Provides a convenient wrapper for TextFields that adds a clickable trigger button (looks like a combobox by default). -The trigger has no default action, so you must assign a function to implement the trigger click handler by -overriding onTriggerClick. You can create a TriggerField directly, as it renders exactly like a combobox -for which you can provide a custom implementation. For example: -
var trigger = new Ext.form.TriggerField();
-trigger.onTriggerClick = myTriggerFn;
-trigger.applyTo('my-field');
-However, in general you will most likely want to use TriggerField as the base class for a reusable component. -Ext.form.DateField and Ext.form.ComboBox are perfect examples of this.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 TriggerField(Object config)TriggerField
Create a new TriggerField.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 applyTo(String/HTMLElement/Element el) : Ext.form.FieldField
Apply the behaviors of this component to an existing element. This is used instead of render().
 clearInvalid() : voidField
Clear any invalid styles/messages for this field
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 getName() : StringField
Returns the name attribute of the field if available
 getRawValue() : MixedField
Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue.
 getValue() : MixedField
Returns the normalized data value (undefined or emptyText will be returned as ''). To return the raw value see getRa...
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isValid(Boolean preventMark) : BooleanField
Returns whether or not the field value is currently valid
 isVisible() : voidComponent
Returns true if this component is visible
 markInvalid(String msg) : voidField
Mark this field as invalid
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 onTriggerClick(EventObject e) : voidTriggerField
The function that should handle the trigger's click event. This method does nothing by default until overridden -by a...
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 reset() : voidField
Resets the current field value to the originally-loaded value and clears any validation messages
 selectText([Number start], [Number end]) : voidTextField
Selects text in this field
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setRawValue(Mixed value) : voidField
Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue.
 setSize(Number width, Number height) : voidField
Sets the height and width of the field
 setValue(Mixed value) : voidField
Sets a data value into the field and validates it. To set the value directly without validation see setRawValue.
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 validate() : BooleanField
Validates the field value
 validateValue(Mixed value) : BooleanTextField
Validates a value according to the field's validation rules and marks the field as invalid -if the validation fails
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 autosize : (Ext.form.Field this, Number width)TextField
Fires when the autosize function is triggered. The field may or may not have actually changed size -according to the ...
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 blur : (Ext.form.Field this)Field
Fires when
 change : (Ext.form.Field this, Mixed value, Mixed value)Field
Fires just before the field blurs if the field value has changed
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 focus : (Ext.form.Field this)Field
Fires when this field receives input focus
 hide : (Ext.Component this)Component
Fires after the component is hidden
 invalid : (Ext.form.Field this, String msg)Field
Fires after the field has been marked as invalid
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
 specialkey : (Ext.form.Field this, Ext.EventObject e)Field
Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.g...
 valid : (Ext.form.Field this)Field
Fires after the field has been validated with no errors
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 allowBlank : BooleanTextField
False to validate that the value length > 0 (defaults to true)
 autoCreate : String/ObjectTriggerField
A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "16", au...
 blankText : StringTextField
Error text to display if the allow blank validation fails (defaults to "This field is required")
 disableKeyFilter : BooleanTextField
True to disable input keystroke filtering (defaults to false)
 emptyClass : StringTextField
The CSS class to apply to an empty field to style the emptyText (defaults to 'x-form-empty-field'). This class is aut...
 emptyText : StringTextField
The default text to display in an empty field (defaults to null).
 fieldClass : StringField
The default CSS class for the field (defaults to "x-form-field")
 focusClass : StringField
The CSS class to use when the field receives focus (defaults to "x-form-focus")
 grow : BooleanTextField
True if this field should automatically grow and shrink to its content
 growMax : NumberTextField
The maximum width to allow when grow = true (defaults to 800)
 growMin : NumberTextField
The minimum width to allow when grow = true (defaults to 30)
 hideTrigger : BooleanTriggerField
True to hide the trigger element and display only the base text field (defaults to false)
 inputType : StringField
The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
 invalidClass : StringField
The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
 invalidText : StringField
The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field i...
 maskRe : StringTextField
An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)
 maxLength : NumberTextField
Maximum input field length allowed (defaults to Number.MAX_VALUE)
 maxLengthText : StringTextField
Error text to display if the maximum length validation fails (defaults to "The maximum length for this field is {maxL...
 minLength : NumberTextField
Minimum input field length required (defaults to 0)
 minLengthText : StringTextField
Error text to display if the minimum length validation fails (defaults to "The minimum length for this field is {minL...
 msgFx : StringField
Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
 msgTarget : StringField
The location where error text should display. Should be one of the following values (defaults to 'qtip'): Value Desc...
 regex : RegExpTextField
A JavaScript RegExp object to be tested against the field value during validation (defaults to null). If available, t...
 regexText : StringTextField
The error text to display if regex is used and the test fails during validation (defaults to "")
 selectOnFocus : BooleanTextField
True to automatically select any existing field text when the field receives input focus (defaults to false)
 triggerClass : StringTriggerField
An additional CSS class used to style the trigger button. The trigger will always get the class 'x-form-trigger' by d...
 validateOnBlur : String/BooleanField
Defaults to true.
 validationDelay : NumberField
The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
 validationEvent : String/BooleanField
The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
 validator : FunctionTextField
A custom validation function to be called during field validation (defaults to null). If available, this function wil...
 value : MixedField
A value to initialize this field with
 vtype : StringTextField
A validation type name as defined in Ext.form.VTypes (defaults to null)
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

TriggerField

- public function TriggerField(Object config) -
- Create a new TriggerField.
- Parameters: -
  • config : Object
    Configuration options (valid {@Ext.form.TextField} config options will also be applied to the base TextField)
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

applyTo

- public function applyTo(String/HTMLElement/Element el) -
- Apply the behaviors of this component to an existing element. This is used instead of render(). -
- Parameters: -
  • el : String/HTMLElement/Element
    The id of the node, a DOM Node or an existing Element
- Returns: -
    -
  • Ext.form.Field
    this
  • -
-
-
-
This method is defined by Field.
-
- -
-

clearInvalid

- public function clearInvalid() -
- Clear any invalid styles/messages for this field -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

getName

- public function getName() -
- Returns the name attribute of the field if available -
- Parameters: -
  • None.
- Returns: -
    -
  • String
    name The field name
  • -
-
-
-
This method is defined by Field.
-
- -
-

getRawValue

- public function getRawValue() -
- Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see getValue. -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The field value
  • -
-
-
-
This method is defined by Field.
-
- -
-

getValue

- public function getValue() -
- Returns the normalized data value (undefined or emptyText will be returned as ''). To return the raw value see getRawValue. -
- Parameters: -
  • None.
- Returns: -
    -
  • Mixed
    value The field value
  • -
-
-
-
This method is defined by Field.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isValid

- public function isValid(Boolean preventMark) -
- Returns whether or not the field value is currently valid -
- Parameters: -
  • preventMark : Boolean
    True to disable marking the field invalid
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

markInvalid

- public function markInvalid(String msg) -
- Mark this field as invalid -
- Parameters: -
  • msg : String
    The validation message
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

onTriggerClick

- public function onTriggerClick(EventObject e) -
- The function that should handle the trigger's click event. This method does nothing by default until overridden -by a handler implementation. -
- Parameters: -
  • e : EventObject
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TriggerField.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

reset

- public function reset() -
- Resets the current field value to the originally-loaded value and clears any validation messages -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

selectText

- public function selectText([Number start], [Number end]) -
- Selects text in this field -
- Parameters: -
  • start : Number
    (optional) The index where the selection should start (defaults to 0)
  • end : Number
    (optional) The index where the selection should end (defaults to the text length)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TextField.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setRawValue

- public function setRawValue(Mixed value) -
- Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue. -
- Parameters: -
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setSize

- public function setSize(Number width, Number height) -
- Sets the height and width of the field -
- Parameters: -
  • width : Number
    The new field width in pixels
  • height : Number
    The new field height in pixels
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setValue

- public function setValue(Mixed value) -
- Sets a data value into the field and validates it. To set the value directly without validation see setRawValue. -
- Parameters: -
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Field.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

validate

- public function validate() -
- Validates the field value -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by Field.
-
- -
-

validateValue

- public function validateValue(Mixed value) -
- Validates a value according to the field's validation rules and marks the field as invalid -if the validation fails -
- Parameters: -
  • value : Mixed
    The value to validate
- Returns: -
    -
  • Boolean
    True if the value is valid, else false
  • -
-
-
-
This method is defined by TextField.
-
-
- -

Event Details

-
- -
-

autosize

- public event autosize -
- Fires when the autosize function is triggered. The field may or may not have actually changed size -according to the default logic, but this event provides a hook for the developer to apply additional -logic at runtime to resize the field if needed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
    This text field
  • width : Number
    The new field width
-
-
-
This event is defined by TextField.
-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

blur

- public event blur -
- Fires when -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

change

- public event change -
- Fires just before the field blurs if the field value has changed -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • value : Mixed
    The changed value
  • value : Mixed
    The original value
-
-
-
This event is defined by Field.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

focus

- public event focus -
- Fires when this field receives input focus -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

invalid

- public event invalid -
- Fires after the field has been marked as invalid -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • msg : String
    The validation message
-
-
-
This event is defined by Field.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

specialkey

- public event specialkey -
- Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check -Ext.EventObject.getKey to determine which key was pressed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by Field.
-
- -
-

valid

- public event valid -
- Fires after the field has been validated with no errors -
- Subscribers will be called with the following parameters: -
  • this : Ext.form.Field
-
-
-
This event is defined by Field.
-
-
-

Config Details

-
- -
-

allowBlank

- allowBlank : Boolean -
- False to validate that the value length > 0 (defaults to true)
-
This config option is defined by TextField.
-
- -
-

autoCreate

- autoCreate : String/Object -
- A DomHelper element spec, or true for a default element spec (defaults to {tag: "input", type: "text", size: "16", autocomplete: "off"})
-
This config option is defined by TriggerField.
-
- -
-

blankText

- blankText : String -
- Error text to display if the allow blank validation fails (defaults to "This field is required")
-
This config option is defined by TextField.
-
- -
-

disableKeyFilter

- disableKeyFilter : Boolean -
- True to disable input keystroke filtering (defaults to false)
-
This config option is defined by TextField.
-
- -
-

emptyClass

- emptyClass : String -
- The CSS class to apply to an empty field to style the emptyText (defaults to 'x-form-empty-field'). This class is automatically added and removed as needed depending on the current field value.
-
This config option is defined by TextField.
-
- -
-

emptyText

- emptyText : String -
- The default text to display in an empty field (defaults to null).
-
This config option is defined by TextField.
-
- -
-

fieldClass

- fieldClass : String -
- The default CSS class for the field (defaults to "x-form-field")
-
This config option is defined by Field.
-
- -
-

focusClass

- focusClass : String -
- The CSS class to use when the field receives focus (defaults to "x-form-focus")
-
This config option is defined by Field.
-
- -
-

grow

- grow : Boolean -
- True if this field should automatically grow and shrink to its content
-
This config option is defined by TextField.
-
- -
-

growMax

- growMax : Number -
- The maximum width to allow when grow = true (defaults to 800)
-
This config option is defined by TextField.
-
- -
-

growMin

- growMin : Number -
- The minimum width to allow when grow = true (defaults to 30)
-
This config option is defined by TextField.
-
- -
-

hideTrigger

- hideTrigger : Boolean -
- True to hide the trigger element and display only the base text field (defaults to false)
-
This config option is defined by TriggerField.
-
- -
-

inputType

- inputType : String -
- The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
-
This config option is defined by Field.
-
- -
-

invalidClass

- invalidClass : String -
- The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
-
This config option is defined by Field.
-
- -
-

invalidText

- invalidText : String -
- The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field is invalid")
-
This config option is defined by Field.
-
- -
-

maskRe

- maskRe : String -
- An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)
-
This config option is defined by TextField.
-
- -
-

maxLength

- maxLength : Number -
- Maximum input field length allowed (defaults to Number.MAX_VALUE)
-
This config option is defined by TextField.
-
- -
-

maxLengthText

- maxLengthText : String -
- Error text to display if the maximum length validation fails (defaults to "The maximum length for this field is {maxLength}")
-
This config option is defined by TextField.
-
- -
-

minLength

- minLength : Number -
- Minimum input field length required (defaults to 0)
-
This config option is defined by TextField.
-
- -
-

minLengthText

- minLengthText : String -
- Error text to display if the minimum length validation fails (defaults to "The minimum length for this field is {minLength}")
-
This config option is defined by TextField.
-
- -
-

msgFx

- msgFx : String -
- Experimental The effect used when displaying a validation message under the field (defaults to 'normal').
-
This config option is defined by Field.
-
- -
-

msgTarget

- msgTarget : String -
- The location where error text should display. Should be one of the following values (defaults to 'qtip'):
 Value Description ----------- ---------------------------------------------------------------------- qtip Display a quick tip when the user hovers over the field title Display a default browser title attribute popup under Add a block div beneath the field containing the error text side Add an error icon to the right of the field with a popup on hover [element id] Add the error text directly to the innerHTML of the specified element 
-
This config option is defined by Field.
-
- -
-

regex

- regex : RegExp -
- A JavaScript RegExp object to be tested against the field value during validation (defaults to null). If available, this regex will be evaluated only after the basic validators all return true, and will be passed the current field value. If the test fails, the field will be marked invalid using regexText.
-
This config option is defined by TextField.
-
- -
-

regexText

- regexText : String -
- The error text to display if regex is used and the test fails during validation (defaults to "")
-
This config option is defined by TextField.
-
- -
-

selectOnFocus

- selectOnFocus : Boolean -
- True to automatically select any existing field text when the field receives input focus (defaults to false)
-
This config option is defined by TextField.
-
- -
-

triggerClass

- triggerClass : String -
- An additional CSS class used to style the trigger button. The trigger will always get the class 'x-form-trigger' by default and triggerClass will be appended if specified.
-
This config option is defined by TriggerField.
-
- -
-

validateOnBlur

- validateOnBlur : String/Boolean -
- Defaults to true.
-
This config option is defined by Field.
-
- -
-

validationDelay

- validationDelay : Number -
- The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
-
This config option is defined by Field.
-
- -
-

validationEvent

- validationEvent : String/Boolean -
- The event that should initiate field validation. Set to false to disable automatic validation. (defaults to "keyup")
-
This config option is defined by Field.
-
- -
-

validator

- validator : Function -
- A custom validation function to be called during field validation (defaults to null). If available, this function will be called only after the basic validators all return true, and will be passed the current field value and expected to return boolean true if the value is valid or a string error message if invalid.
-
This config option is defined by TextField.
-
- -
-

value

- value : Mixed -
- A value to initialize this field with
-
This config option is defined by Field.
-
- -
-

vtype

- vtype : String -
- A validation type name as defined in Ext.form.VTypes (defaults to null)
-
This config option is defined by TextField.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.form.VTypes.html b/www/extras/extjs/docs/output/Ext.form.VTypes.html deleted file mode 100644 index 67d62dd49..000000000 --- a/www/extras/extjs/docs/output/Ext.form.VTypes.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - Ext.form.VTypes - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.form.VTypes

- - - - - -
Package:Ext.form
Class:VTypes
Extends:Object
Defined In:VTypes.js
-
- Overrideable validation definitions. The validations provided are basic and intended to be easily customizable and extended.

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 alphaMask : RegExpVTypes
The keystroke filter mask to be applied on alpha input
 alphaText : StringVTypes
The error text to display when the alpha validation function returns false
 alphanumMask : RegExpVTypes
The keystroke filter mask to be applied on alphanumeric input
 alphanumText : StringVTypes
The error text to display when the alphanumeric validation function returns false
 emailMask : RegExpVTypes
The keystroke filter mask to be applied on email input
 emailText : StringVTypes
The error text to display when the email validation function returns false
 urlText : StringVTypes
The error text to display when the url validation function returns false
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 alpha(String value) : voidVTypes
The function used to validate alpha values
 alphanum(String value) : voidVTypes
The function used to validate alphanumeric values
 email(String value) : voidVTypes
The function used to validate email addresses
 url(String value) : voidVTypes
The function used to validate urls
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

alphaMask

- public RegExp alphaMask -
- The keystroke filter mask to be applied on alpha input
-
This property is defined by VTypes.
-
- -
-

alphaText

- public String alphaText -
- The error text to display when the alpha validation function returns false
-
This property is defined by VTypes.
-
- -
-

alphanumMask

- public RegExp alphanumMask -
- The keystroke filter mask to be applied on alphanumeric input
-
This property is defined by VTypes.
-
- -
-

alphanumText

- public String alphanumText -
- The error text to display when the alphanumeric validation function returns false
-
This property is defined by VTypes.
-
- -
-

emailMask

- public RegExp emailMask -
- The keystroke filter mask to be applied on email input
-
This property is defined by VTypes.
-
- -
-

emailText

- public String emailText -
- The error text to display when the email validation function returns false
-
This property is defined by VTypes.
-
- -
-

urlText

- public String urlText -
- The error text to display when the url validation function returns false
-
This property is defined by VTypes.
-
-
- - -

Method Details

-
- -
-

alpha

- public function alpha(String value) -
- The function used to validate alpha values -
- Parameters: -
  • value : String
    The value
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by VTypes.
-
- -
-

alphanum

- public function alphanum(String value) -
- The function used to validate alphanumeric values -
- Parameters: -
  • value : String
    The value
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by VTypes.
-
- -
-

email

- public function email(String value) -
- The function used to validate email addresses -
- Parameters: -
  • value : String
    The email address
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by VTypes.
-
- -
-

url

- public function url(String value) -
- The function used to validate urls -
- Parameters: -
  • value : String
    The url
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by VTypes.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.grid.AbstractSelectionModel.html b/www/extras/extjs/docs/output/Ext.grid.AbstractSelectionModel.html deleted file mode 100644 index 00d7689c8..000000000 --- a/www/extras/extjs/docs/output/Ext.grid.AbstractSelectionModel.html +++ /dev/null @@ -1,354 +0,0 @@ - - - - Ext.grid.AbstractSelectionModel - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.grid.AbstractSelectionModel

- - - - - - -
Package:Ext.grid
Class:AbstractSelectionModel
Extends:Observable
Subclasses:CellSelectionModel, RowSelectionModel
Defined In:AbstractSelectionModel.js
-
-
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 AbstractSelectionModel()AbstractSelectionModel
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 isLocked() : BooleanAbstractSelectionModel
Returns true if the selections are locked
 lock() : voidAbstractSelectionModel
Lock the selections
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 unlock() : voidAbstractSelectionModel
Unlock the selections
- -

Public Events

-
This class has no public events.
- -

Constructor Details

-
-
-

AbstractSelectionModel

- public function AbstractSelectionModel() -
-
- Parameters: -
  • None.
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

isLocked

- public function isLocked() -
- Returns true if the selections are locked -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by AbstractSelectionModel.
-
- -
-

lock

- public function lock() -
- Lock the selections -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by AbstractSelectionModel.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

unlock

- public function unlock() -
- Unlock the selections -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by AbstractSelectionModel.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.grid.CellSelectionModel.html b/www/extras/extjs/docs/output/Ext.grid.CellSelectionModel.html deleted file mode 100644 index 00528c9ec..000000000 --- a/www/extras/extjs/docs/output/Ext.grid.CellSelectionModel.html +++ /dev/null @@ -1,500 +0,0 @@ - - - - Ext.grid.CellSelectionModel - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.grid.CellSelectionModel

- - - - - -
Package:Ext.grid
Class:CellSelectionModel
Extends:AbstractSelectionModel
Defined In:CellSelectionModel.js
-
-
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 CellSelectionModel(Object config)CellSelectionModel
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 clearSelections() : voidCellSelectionModel
Clears all selections.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hasSelection() : BooleanCellSelectionModel
Returns True if there is a selection.
 isLocked() : BooleanAbstractSelectionModel
Returns true if the selections are locked
 lock() : voidAbstractSelectionModel
Lock the selections
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 select(Number rowIndex, Number collIndex) : voidCellSelectionModel
Selects a cell.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 unlock() : voidAbstractSelectionModel
Unlock the selections
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforerowselect : (SelectionModel this, Number rowIndex, Number colIndex)CellSelectionModel
Fires before a cell is selected.
 cellselect : (SelectionModel this, Number rowIndex, Number colIndex)CellSelectionModel
Fires when a cell is selected.
 selectionchange : (SelectionModel this, Object selection)CellSelectionModel
Fires when the active selection changes.
- - -

Constructor Details

-
-
-

CellSelectionModel

- public function CellSelectionModel(Object config) -
-
- Parameters: -
  • config : Object
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

clearSelections

- public function clearSelections() -
- Clears all selections. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by CellSelectionModel.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hasSelection

- public function hasSelection() -
- Returns True if there is a selection. -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by CellSelectionModel.
-
- -
-

isLocked

- public function isLocked() -
- Returns true if the selections are locked -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by AbstractSelectionModel.
-
- -
-

lock

- public function lock() -
- Lock the selections -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by AbstractSelectionModel.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

select

- public function select(Number rowIndex, Number collIndex) -
- Selects a cell. -
- Parameters: -
  • rowIndex : Number
  • collIndex : Number
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by CellSelectionModel.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

unlock

- public function unlock() -
- Unlock the selections -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by AbstractSelectionModel.
-
-
- -

Event Details

-
- -
-

beforerowselect

- public event beforerowselect -
- Fires before a cell is selected. -
- Subscribers will be called with the following parameters: -
  • this : SelectionModel
  • rowIndex : Number
    The selected row index
  • colIndex : Number
    The selected cell index
-
-
-
This event is defined by CellSelectionModel.
-
- -
-

cellselect

- public event cellselect -
- Fires when a cell is selected. -
- Subscribers will be called with the following parameters: -
  • this : SelectionModel
  • rowIndex : Number
    The selected row index
  • colIndex : Number
    The selected cell index
-
-
-
This event is defined by CellSelectionModel.
-
- -
-

selectionchange

- public event selectionchange -
- Fires when the active selection changes. -
- Subscribers will be called with the following parameters: -
  • this : SelectionModel
  • selection : Object
    null for no selection or an object (o) with two properties
    • o.record: the record object for the row the selection is in
    • o.cell: An array of [rowIndex, columnIndex]
-
-
-
This event is defined by CellSelectionModel.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.grid.ColumnModel.html b/www/extras/extjs/docs/output/Ext.grid.ColumnModel.html deleted file mode 100644 index a665d52ed..000000000 --- a/www/extras/extjs/docs/output/Ext.grid.ColumnModel.html +++ /dev/null @@ -1,1013 +0,0 @@ - - - - Ext.grid.ColumnModel - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.grid.ColumnModel

- - - - - -
Package:Ext.grid
Class:ColumnModel
Extends:Observable
Defined In:ColumnModel.js
-
- This is the default implementation of a ColumnModel used by the Grid. It defines -the columns in the grid. -
Usage:
-
var colModel = new Ext.grid.ColumnModel([
-	{header: "Ticker", width: 60, sortable: true, locked: true},
-	{header: "Company Name", width: 150, sortable: true},
-	{header: "Market Cap.", width: 100, sortable: true},
-	{header: "$ Sales", width: 100, sortable: true, renderer: money},
-	{header: "Employees", width: 100, sortable: true, resizable: false}
- ]);
-

-The config options listed for this class, are options which may appear in each -individual column definition.

-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 config : ObjectColumnModel
The config passed into the constructor
 defaultSortable : BooleanColumnModel
Default sortable of columns which have no sortable specified (defaults to false)
 defaultWidth : NumberColumnModel
The width of columns which have no width specified (defaults to 100)
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 ColumnModel(Object config)ColumnModel
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getCellEditor(Number colIndex, Number rowIndex) : ObjectColumnModel
Returns the editor defined for the cell/column.
 getColumnCount() : NumberColumnModel
Returns the number of columns.
 getColumnHeader(Number col) : StringColumnModel
Returns the header for the specified column.
 getColumnId(Number index) : StringColumnModel
* -Returns the id of the column at the specified index
 getColumnTooltip(Number col) : StringColumnModel
Returns the tooltip for the specified column.
 getColumnWidth(Number col) : NumberColumnModel
Returns the width for the specified column.
 getDataIndex(Number col) : NumberColumnModel
Returns the dataIndex for the specified column.
 getRenderer(Number col) : FunctionColumnModel
Returns the rendering (formatting) function defined for the column.
 getTotalWidth(Boolean includeHidden) : NumberColumnModel
Returns the total width of all columns.
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 isCellEditable(Number colIndex, Number rowIndex) : BooleanColumnModel
Returns true if the cell is editable.
 isFixed() : voidColumnModel
Returns true if the column width cannot be changed
 isHidden(Number colIndex) : BooleanColumnModel
Returns true if the column is hidden.
 isResizable() : BooleanColumnModel
Returns true if the column cannot be resized
 isSortable(Number col) : BooleanColumnModel
Returns true if the specified column is sortable.
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 setColumnHeader(Number col, String header) : voidColumnModel
Sets the header for a column.
 setColumnTooltip(Number col, String tooltip) : voidColumnModel
Sets the tooltip for a column.
 setColumnWidth(Number col, Number width) : voidColumnModel
Sets the width for a column.
 setDataIndex(Number col, Number dataIndex) : voidColumnModel
Sets the dataIndex for a column.
 setEditable(Number col, Boolean editable) : voidColumnModel
Sets if a column is editable.
 setEditor(Number col, Object editor) : voidColumnModel
Sets the editor for a column.
 setHidden(Number colIndex, Boolean hidden) : voidColumnModel
Sets if a column is hidden.
 setRenderer(Number col, Function fn) : voidColumnModel
Sets the rendering (formatting) function for a column.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 columlockchange : (ColumnModel this, Number colIndex, Boolean locked)ColumnModel
Fires when a column's locked state is changed
 columnmoved : (ColumnModel this, Number oldIndex, Number newIndex)ColumnModel
Fires when a column is moved
 headerchange : (ColumnModel this, Number columnIndex, Number newText)ColumnModel
Fires when the text of a header changes
 hiddenchange : (ColumnModel this, Number columnIndex, Number hidden)ColumnModel
Fires when a column is hidden or "unhidden"
 widthchange : (ColumnModel this, Number columnIndex, Number newWidth)ColumnModel
Fires when the width of a column changes
-

Property Details

-
- -
-

config

- public Object config -
- The config passed into the constructor
-
This property is defined by ColumnModel.
-
- -
-

defaultSortable

- public Boolean defaultSortable -
- Default sortable of columns which have no sortable specified (defaults to false)
-
This property is defined by ColumnModel.
-
- -
-

defaultWidth

- public Number defaultWidth -
- The width of columns which have no width specified (defaults to 100)
-
This property is defined by ColumnModel.
-
-
- - -

Constructor Details

-
-
-

ColumnModel

- public function ColumnModel(Object config) -
-
- Parameters: -
  • config : Object
    An Array of column config objects. See this class's config objects for details.
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getCellEditor

- public function getCellEditor(Number colIndex, Number rowIndex) -
- Returns the editor defined for the cell/column. -
- Parameters: -
  • colIndex : Number
    The column index
  • rowIndex : Number
    The row index
- Returns: -
    -
  • Object
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

getColumnCount

- public function getColumnCount() -
- Returns the number of columns. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

getColumnHeader

- public function getColumnHeader(Number col) -
- Returns the header for the specified column. -
- Parameters: -
  • col : Number
    The column index
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

getColumnId

- public function getColumnId(Number index) -
- * -Returns the id of the column at the specified index -
- Parameters: -
  • index : Number
- Returns: -
    -
  • String
    the id
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

getColumnTooltip

- public function getColumnTooltip(Number col) -
- Returns the tooltip for the specified column. -
- Parameters: -
  • col : Number
    The column index
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

getColumnWidth

- public function getColumnWidth(Number col) -
- Returns the width for the specified column. -
- Parameters: -
  • col : Number
    The column index
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

getDataIndex

- public function getDataIndex(Number col) -
- Returns the dataIndex for the specified column. -
- Parameters: -
  • col : Number
    The column index
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

getRenderer

- public function getRenderer(Number col) -
- Returns the rendering (formatting) function defined for the column. -
- Parameters: -
  • col : Number
    The column index.
- Returns: -
    -
  • Function
    The function used to render the cell. See {@link #setRenderer}.
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

getTotalWidth

- public function getTotalWidth(Boolean includeHidden) -
- Returns the total width of all columns. -
- Parameters: -
  • includeHidden : Boolean
    True to include hidden column widths
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

isCellEditable

- public function isCellEditable(Number colIndex, Number rowIndex) -
- Returns true if the cell is editable. -
- Parameters: -
  • colIndex : Number
    The column index
  • rowIndex : Number
    The row index
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

isFixed

- public function isFixed() -
- Returns true if the column width cannot be changed -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

isHidden

- public function isHidden(Number colIndex) -
- Returns true if the column is hidden. -
- Parameters: -
  • colIndex : Number
    The column index
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

isResizable

- public function isResizable() -
- Returns true if the column cannot be resized -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

isSortable

- public function isSortable(Number col) -
- Returns true if the specified column is sortable. -
- Parameters: -
  • col : Number
    The column index
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

setColumnHeader

- public function setColumnHeader(Number col, String header) -
- Sets the header for a column. -
- Parameters: -
  • col : Number
    The column index
  • header : String
    The new header
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

setColumnTooltip

- public function setColumnTooltip(Number col, String tooltip) -
- Sets the tooltip for a column. -
- Parameters: -
  • col : Number
    The column index
  • tooltip : String
    The new tooltip
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

setColumnWidth

- public function setColumnWidth(Number col, Number width) -
- Sets the width for a column. -
- Parameters: -
  • col : Number
    The column index
  • width : Number
    The new width
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

setDataIndex

- public function setDataIndex(Number col, Number dataIndex) -
- Sets the dataIndex for a column. -
- Parameters: -
  • col : Number
    The column index
  • dataIndex : Number
    The new dataIndex
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

setEditable

- public function setEditable(Number col, Boolean editable) -
- Sets if a column is editable. -
- Parameters: -
  • col : Number
    The column index
  • editable : Boolean
    True if the column is editable
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

setEditor

- public function setEditor(Number col, Object editor) -
- Sets the editor for a column. -
- Parameters: -
  • col : Number
    The column index
  • editor : Object
    The editor object
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

setHidden

- public function setHidden(Number colIndex, Boolean hidden) -
- Sets if a column is hidden. -
- Parameters: -
  • colIndex : Number
    The column index
  • hidden : Boolean
    True if the column is hidden
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

setRenderer

- public function setRenderer(Number col, Function fn) -
- Sets the rendering (formatting) function for a column. -
- Parameters: -
  • col : Number
    The column index
  • fn : Function
    The function to use to process the cell's raw data to return HTML markup for the grid view. The render function is called with the following parameters:
    • Data value.
    • Cell metadata. An object in which you may set the following attributes:
      • css A CSS style string to apply to the table cell.
      • attr An HTML attribute definition string to apply to the data container element within the table cell.
    • The Ext.data.Record from which the data was extracted.
    • Row index
    • Column index
    • The Ext.data.Store object from which the Record was extracted
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by ColumnModel.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

columlockchange

- public event columlockchange -
- Fires when a column's locked state is changed -
- Subscribers will be called with the following parameters: -
  • this : ColumnModel
  • colIndex : Number
  • locked : Boolean
    true if locked
-
-
-
This event is defined by ColumnModel.
-
- -
-

columnmoved

- public event columnmoved -
- Fires when a column is moved -
- Subscribers will be called with the following parameters: -
  • this : ColumnModel
  • oldIndex : Number
  • newIndex : Number
-
-
-
This event is defined by ColumnModel.
-
- -
-

headerchange

- public event headerchange -
- Fires when the text of a header changes -
- Subscribers will be called with the following parameters: -
  • this : ColumnModel
  • columnIndex : Number
    The column index
  • newText : Number
    The new header text
-
-
-
This event is defined by ColumnModel.
-
- -
-

hiddenchange

- public event hiddenchange -
- Fires when a column is hidden or "unhidden" -
- Subscribers will be called with the following parameters: -
  • this : ColumnModel
  • columnIndex : Number
    The column index
  • hidden : Number
    true if hidden, false otherwise
-
-
-
This event is defined by ColumnModel.
-
- -
-

widthchange

- public event widthchange -
- Fires when the width of a column changes -
- Subscribers will be called with the following parameters: -
  • this : ColumnModel
  • columnIndex : Number
    The column index
  • newWidth : Number
    The new width
-
-
-
This event is defined by ColumnModel.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.grid.EditorGrid.html b/www/extras/extjs/docs/output/Ext.grid.EditorGrid.html deleted file mode 100644 index 234050c8f..000000000 --- a/www/extras/extjs/docs/output/Ext.grid.EditorGrid.html +++ /dev/null @@ -1,1305 +0,0 @@ - - - - Ext.grid.EditorGrid - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.grid.EditorGrid

- - - - - -
Package:Ext.grid
Class:EditorGrid
Extends:Grid
Defined In:EditorGrid.js
-
- Class for creating and editable grid.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 ddText : StringGrid
Configures the text is the drag proxy (defaults to "%0 selected row(s)"). -%0 is replaced with the number of selected ...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 autoSize() : voidGrid
Causes the grid to manually recalculate its dimensions. Generally this is done automatically, -but if manual update is...
 destroy(Boolean removeEl) : voidGrid
Destroy this grid.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getColumnModel() : ColumnModelGrid
Returns the grid's ColumnModel.
 getDataSource() : DataSourceGrid
Returns the grid's DataSource.
 getDragDropText() : StringGrid
Called to get grid's drag proxy text, by default returns this.ddText.
 getSelectionModel() : SelectionModelGrid
Returns the grid's SelectionModel.
 getView() : GridViewGrid
Returns the grid's GridView object.
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render() : Ext.grid.GridGrid
* -Called once after all setup has been completed and the grid is ready to be rendered.
 startEditing(Number rowIndex, Number colIndex) : voidEditorGrid
Starts editing the specified for the specified row/column
 stopEditing() : voidEditorGrid
Stops any active editing
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 afteredit : (Object e)EditorGrid
Fires after a cell is edited. - -grid - This grid -record - The record being edited -field - The field name being edited...
 beforeedit : (Object e)EditorGrid
Fires before cell editing is triggered. The edit event object has the following properties - -grid - This grid -record ...
 bodyscroll : (Number scrollLeft, Number scrollTop)Grid
Fires when the body element is scrolled
 cellclick : (Grid this, Number rowIndex, Number columnIndex, Ext.EventObject e)Grid
Fires when a cell is clicked
 cellcontextmenu : (Grid this, Number rowIndex, Number cellIndex, Ext.EventObject e)Grid
Fires when a cell is right clicked
 celldblclick : (Grid this, Number rowIndex, Number columnIndex, Ext.EventObject e)Grid
Fires when a cell is double clicked
 click : (Ext.EventObject e)Grid
The raw click event for the entire grid.
 columnmove : (Number oldIndex, Number newIndex)Grid
Fires when the user moves a column
 columnresize : (Number columnIndex, Number newSize)Grid
Fires when the user resizes a column
 contextmenu : (Ext.EventObject e)Grid
The raw contextmenu event for the entire grid.
 dblclick : (Ext.EventObject e)Grid
The raw dblclick event for the entire grid.
 dragdrop : (Grid this, Ext.GridDD dd, String targetId, event e)Grid
Fires when dragged row(s) are dropped on a valid DD target
 dragenter : (Grid this, Ext.GridDD dd, String targetId, event e)Grid
Fires when the dragged row(s) first cross another DD target while being dragged
 dragout : (Grid this, Ext.GridDD dd, String targetId, event e)Grid
Fires when the dragged row(s) leave another DD target while being dragged
 dragover : (Grid this, Ext.GridDD dd, String targetId, event e)Grid
Fires while row(s) are being dragged. "targetId" is the id of the Yahoo.util.DD object the selected rows are being dr...
 enddrag : (Grid this, Ext.GridDD dd, event e)Grid
Fires when a drag operation is complete
 headerclick : (Grid this, Number columnIndex, Ext.EventObject e)Grid
Fires when a header is clicked
 headercontextmenu : (Grid this, Number columnIndex, Ext.EventObject e)Grid
Fires when a header is right clicked
 headerdblclick : (Grid this, Number rowIndex, Number columnIndex, Ext.EventObject e)Grid
Fires when a header cell is double clicked
 keydown : (Ext.EventObject e)Grid
The raw keydown event for the entire grid.
 keypress : (Ext.EventObject e)Grid
The raw keypress event for the entire grid.
 mousedown : (Ext.EventObject e)Grid
The raw mousedown event for the entire grid.
 mouseout : (Ext.EventObject e)Grid
The raw mouseout event for the entire grid.
 mouseover : (Ext.EventObject e)Grid
The raw mouseover event for the entire grid.
 mouseup : (Ext.EventObject e)Grid
The raw mouseup event for the entire grid.
 rowclick : (Grid this, Number rowIndex, Ext.EventObject e)Grid
Fires when a row is clicked
 rowcontextmenu : (Grid this, Number rowIndex, Ext.EventObject e)Grid
Fires when a row is right clicked
 rowdblclick : (Grid this, Number rowIndex, Ext.EventObject e)Grid
Fires when a row is double clicked
 startdrag : (Grid this, Ext.GridDD dd, event e)Grid
Fires when row(s) start being dragged
 validateedit : (Object e)EditorGrid
Fires after a cell is edited, but before the value is set in the record. Return false -to cancel the change. The edit ...
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 A : ObjectGrid
javascript RegExp defining tagNames allowed to have text selection (Defaults to /INPUT|TEXTAREA|SELECT/i).
 An : ObjectGrid
Ext.LoadMask config or true to mask the grid while loading (defaults to false).
 If : BooleanGrid
autoSizeColumns is on, maxRowsToMeasure can be used to limit the number of rows measured to get a columns size - defa...
 The : ObjectGrid
Ext.grid.GridView used by the grid. This can be set before a call to render().
 True : BooleanGrid
to fit the height of the grid container to the height of the data. Defaults to false.
-

Property Details

-
- -
-

ddText

- public String ddText -
- Configures the text is the drag proxy (defaults to "%0 selected row(s)"). -%0 is replaced with the number of selected rows.
-
This property is defined by Grid.
-
-
- - -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

autoSize

- public function autoSize() -
- Causes the grid to manually recalculate its dimensions. Generally this is done automatically, -but if manual update is required this method will initiate it. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Grid.
-
- -
-

destroy

- public function destroy(Boolean removeEl) -
- Destroy this grid. -
- Parameters: -
  • removeEl : Boolean
    True to remove the element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Grid.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getColumnModel

- public function getColumnModel() -
- Returns the grid's ColumnModel. -
- Parameters: -
  • None.
- Returns: -
    -
  • ColumnModel
  • -
-
-
-
This method is defined by Grid.
-
- -
-

getDataSource

- public function getDataSource() -
- Returns the grid's DataSource. -
- Parameters: -
  • None.
- Returns: -
    -
  • DataSource
  • -
-
-
-
This method is defined by Grid.
-
- -
-

getDragDropText

- public function getDragDropText() -
- Called to get grid's drag proxy text, by default returns this.ddText. -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Grid.
-
- -
-

getSelectionModel

- public function getSelectionModel() -
- Returns the grid's SelectionModel. -
- Parameters: -
  • None.
- Returns: -
    -
  • SelectionModel
  • -
-
-
-
This method is defined by Grid.
-
- -
-

getView

- public function getView() -
- Returns the grid's GridView object. -
- Parameters: -
  • None.
- Returns: -
    -
  • GridView
  • -
-
-
-
This method is defined by Grid.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render() -
- * -Called once after all setup has been completed and the grid is ready to be rendered. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.grid.Grid
    this
  • -
-
-
-
This method is defined by Grid.
-
- -
-

startEditing

- public function startEditing(Number rowIndex, Number colIndex) -
- Starts editing the specified for the specified row/column -
- Parameters: -
  • rowIndex : Number
  • colIndex : Number
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by EditorGrid.
-
- -
-

stopEditing

- public function stopEditing() -
- Stops any active editing -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by EditorGrid.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

afteredit

- public event afteredit -
- Fires after a cell is edited.
-
    -
  • grid - This grid
  • -
  • record - The record being edited
  • -
  • field - The field name being edited
  • -
  • value - The value being set
  • -
  • originalValue - The original value for the field, before the edit.
  • -
  • row - The grid row index
  • -
  • column - The grid column index
  • -
-
- Subscribers will be called with the following parameters: -
  • e : Object
    An edit event (see above for description)
-
-
-
This event is defined by EditorGrid.
-
- -
-

beforeedit

- public event beforeedit -
- Fires before cell editing is triggered. The edit event object has the following properties
-
    -
  • grid - This grid
  • -
  • record - The record being edited
  • -
  • field - The field name being edited
  • -
  • value - The value for the field being edited.
  • -
  • row - The grid row index
  • -
  • column - The grid column index
  • -
  • cancel - Set this to true to cancel the edit or return false from your handler.
  • -
-
- Subscribers will be called with the following parameters: -
  • e : Object
    An edit event (see above for description)
-
-
-
This event is defined by EditorGrid.
-
- -
-

bodyscroll

- public event bodyscroll -
- Fires when the body element is scrolled -
- Subscribers will be called with the following parameters: -
  • scrollLeft : Number
  • scrollTop : Number
-
-
-
This event is defined by Grid.
-
- -
-

cellclick

- public event cellclick -
- Fires when a cell is clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • rowIndex : Number
  • columnIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

cellcontextmenu

- public event cellcontextmenu -
- Fires when a cell is right clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • rowIndex : Number
  • cellIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

celldblclick

- public event celldblclick -
- Fires when a cell is double clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • rowIndex : Number
  • columnIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

click

- public event click -
- The raw click event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

columnmove

- public event columnmove -
- Fires when the user moves a column -
- Subscribers will be called with the following parameters: -
  • oldIndex : Number
  • newIndex : Number
-
-
-
This event is defined by Grid.
-
- -
-

columnresize

- public event columnresize -
- Fires when the user resizes a column -
- Subscribers will be called with the following parameters: -
  • columnIndex : Number
  • newSize : Number
-
-
-
This event is defined by Grid.
-
- -
-

contextmenu

- public event contextmenu -
- The raw contextmenu event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

dblclick

- public event dblclick -
- The raw dblclick event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

dragdrop

- public event dragdrop -
- Fires when dragged row(s) are dropped on a valid DD target -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • dd : Ext.GridDD
    The drag drop object
  • targetId : String
    The target drag drop object
  • e : event
    The raw browser event
-
-
-
This event is defined by Grid.
-
- -
-

dragenter

- public event dragenter -
- Fires when the dragged row(s) first cross another DD target while being dragged -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • dd : Ext.GridDD
    The drag drop object
  • targetId : String
    The target drag drop object
  • e : event
    The raw browser event
-
-
-
This event is defined by Grid.
-
- -
-

dragout

- public event dragout -
- Fires when the dragged row(s) leave another DD target while being dragged -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • dd : Ext.GridDD
    The drag drop object
  • targetId : String
    The target drag drop object
  • e : event
    The raw browser event
-
-
-
This event is defined by Grid.
-
- -
-

dragover

- public event dragover -
- Fires while row(s) are being dragged. "targetId" is the id of the Yahoo.util.DD object the selected rows are being dragged over. -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • dd : Ext.GridDD
    The drag drop object
  • targetId : String
    The target drag drop object
  • e : event
    The raw browser event
-
-
-
This event is defined by Grid.
-
- -
-

enddrag

- public event enddrag -
- Fires when a drag operation is complete -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • dd : Ext.GridDD
    The drag drop object
  • e : event
    The raw browser event
-
-
-
This event is defined by Grid.
-
- -
-

headerclick

- public event headerclick -
- Fires when a header is clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • columnIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

headercontextmenu

- public event headercontextmenu -
- Fires when a header is right clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • columnIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

headerdblclick

- public event headerdblclick -
- Fires when a header cell is double clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • rowIndex : Number
  • columnIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

keydown

- public event keydown -
- The raw keydown event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

keypress

- public event keypress -
- The raw keypress event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

mousedown

- public event mousedown -
- The raw mousedown event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

mouseout

- public event mouseout -
- The raw mouseout event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

mouseover

- public event mouseover -
- The raw mouseover event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

mouseup

- public event mouseup -
- The raw mouseup event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

rowclick

- public event rowclick -
- Fires when a row is clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • rowIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

rowcontextmenu

- public event rowcontextmenu -
- Fires when a row is right clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • rowIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

rowdblclick

- public event rowdblclick -
- Fires when a row is double clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • rowIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

startdrag

- public event startdrag -
- Fires when row(s) start being dragged -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • dd : Ext.GridDD
    The drag drop object
  • e : event
    The raw browser event
-
-
-
This event is defined by Grid.
-
- -
-

validateedit

- public event validateedit -
- Fires after a cell is edited, but before the value is set in the record. Return false -to cancel the change. The edit event object has the following properties
-
    -
  • grid - This grid
  • -
  • record - The record being edited
  • -
  • field - The field name being edited
  • -
  • value - The value being set
  • -
  • originalValue - The original value for the field, before the edit.
  • -
  • row - The grid row index
  • -
  • column - The grid column index
  • -
  • cancel - Set this to true to cancel the edit or return false from your handler.
  • -
-
- Subscribers will be called with the following parameters: -
  • e : Object
    An edit event (see above for description)
-
-
-
This event is defined by EditorGrid.
-
-
-

Config Details

-
- -
-

A

- A : Object -
- javascript RegExp defining tagNames allowed to have text selection (Defaults to /INPUT|TEXTAREA|SELECT/i).
-
This config option is defined by Grid.
-
- -
-

An

- An : Object -
- Ext.LoadMask config or true to mask the grid while loading (defaults to false).
-
This config option is defined by Grid.
-
- -
-

If

- If : Boolean -
- autoSizeColumns is on, maxRowsToMeasure can be used to limit the number of rows measured to get a columns size - defaults to 0 (all rows).
-
This config option is defined by Grid.
-
- -
-

The

- The : Object -
- Ext.grid.GridView used by the grid. This can be set before a call to render().
-
This config option is defined by Grid.
-
- -
-

True

- True : Boolean -
- to fit the height of the grid container to the height of the data. Defaults to false.
-
This config option is defined by Grid.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.grid.Grid.html b/www/extras/extjs/docs/output/Ext.grid.Grid.html deleted file mode 100644 index fcdcfcd24..000000000 --- a/www/extras/extjs/docs/output/Ext.grid.Grid.html +++ /dev/null @@ -1,1196 +0,0 @@ - - - - Ext.grid.Grid - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.grid.Grid

- - - - - - -
Package:Ext.grid
Class:Grid
Extends:Observable
Subclasses:EditorGrid
Defined In:Grid.js
-
- This class represents the primary interface of a component based grid control. -

Usage:
var grid = new Ext.grid.Grid("my-container-id", {
-     ds: myDataStore,
-     cm: myColModel,
-     selModel: mySelectionModel,
-     autoSizeColumns: true,
-     monitorWindowResize: false,
-     trackMouseOver: true
- });
- // set any options
- grid.render();
-Common Problems:
-- Grid does not resize properly when going smaller: Setting overflow hidden on the container -element will correct this
-- If you get el.style[camel]= NaNpx or -2px or something related, be certain you have given your container element -dimensions. The grid adapts to your container's size, if your container has no size defined then the results -are unpredictable.
-- Do not render the grid into an element with display:none. Try using visibility:hidden. Otherwise there is no way for the -grid to calculate dimensions/offsets.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 ddText : StringGrid
Configures the text is the drag proxy (defaults to "%0 selected row(s)"). -%0 is replaced with the number of selected ...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Grid(String/HTMLElement/Ext.Element container, Object config)Grid
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 autoSize() : voidGrid
Causes the grid to manually recalculate its dimensions. Generally this is done automatically, -but if manual update is...
 destroy(Boolean removeEl) : voidGrid
Destroy this grid.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getColumnModel() : ColumnModelGrid
Returns the grid's ColumnModel.
 getDataSource() : DataSourceGrid
Returns the grid's DataSource.
 getDragDropText() : StringGrid
Called to get grid's drag proxy text, by default returns this.ddText.
 getSelectionModel() : SelectionModelGrid
Returns the grid's SelectionModel.
 getView() : GridViewGrid
Returns the grid's GridView object.
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render() : Ext.grid.GridGrid
* -Called once after all setup has been completed and the grid is ready to be rendered.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 bodyscroll : (Number scrollLeft, Number scrollTop)Grid
Fires when the body element is scrolled
 cellclick : (Grid this, Number rowIndex, Number columnIndex, Ext.EventObject e)Grid
Fires when a cell is clicked
 cellcontextmenu : (Grid this, Number rowIndex, Number cellIndex, Ext.EventObject e)Grid
Fires when a cell is right clicked
 celldblclick : (Grid this, Number rowIndex, Number columnIndex, Ext.EventObject e)Grid
Fires when a cell is double clicked
 click : (Ext.EventObject e)Grid
The raw click event for the entire grid.
 columnmove : (Number oldIndex, Number newIndex)Grid
Fires when the user moves a column
 columnresize : (Number columnIndex, Number newSize)Grid
Fires when the user resizes a column
 contextmenu : (Ext.EventObject e)Grid
The raw contextmenu event for the entire grid.
 dblclick : (Ext.EventObject e)Grid
The raw dblclick event for the entire grid.
 dragdrop : (Grid this, Ext.GridDD dd, String targetId, event e)Grid
Fires when dragged row(s) are dropped on a valid DD target
 dragenter : (Grid this, Ext.GridDD dd, String targetId, event e)Grid
Fires when the dragged row(s) first cross another DD target while being dragged
 dragout : (Grid this, Ext.GridDD dd, String targetId, event e)Grid
Fires when the dragged row(s) leave another DD target while being dragged
 dragover : (Grid this, Ext.GridDD dd, String targetId, event e)Grid
Fires while row(s) are being dragged. "targetId" is the id of the Yahoo.util.DD object the selected rows are being dr...
 enddrag : (Grid this, Ext.GridDD dd, event e)Grid
Fires when a drag operation is complete
 headerclick : (Grid this, Number columnIndex, Ext.EventObject e)Grid
Fires when a header is clicked
 headercontextmenu : (Grid this, Number columnIndex, Ext.EventObject e)Grid
Fires when a header is right clicked
 headerdblclick : (Grid this, Number rowIndex, Number columnIndex, Ext.EventObject e)Grid
Fires when a header cell is double clicked
 keydown : (Ext.EventObject e)Grid
The raw keydown event for the entire grid.
 keypress : (Ext.EventObject e)Grid
The raw keypress event for the entire grid.
 mousedown : (Ext.EventObject e)Grid
The raw mousedown event for the entire grid.
 mouseout : (Ext.EventObject e)Grid
The raw mouseout event for the entire grid.
 mouseover : (Ext.EventObject e)Grid
The raw mouseover event for the entire grid.
 mouseup : (Ext.EventObject e)Grid
The raw mouseup event for the entire grid.
 rowclick : (Grid this, Number rowIndex, Ext.EventObject e)Grid
Fires when a row is clicked
 rowcontextmenu : (Grid this, Number rowIndex, Ext.EventObject e)Grid
Fires when a row is right clicked
 rowdblclick : (Grid this, Number rowIndex, Ext.EventObject e)Grid
Fires when a row is double clicked
 startdrag : (Grid this, Ext.GridDD dd, event e)Grid
Fires when row(s) start being dragged
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 A : ObjectGrid
javascript RegExp defining tagNames allowed to have text selection (Defaults to /INPUT|TEXTAREA|SELECT/i).
 An : ObjectGrid
Ext.LoadMask config or true to mask the grid while loading (defaults to false).
 If : BooleanGrid
autoSizeColumns is on, maxRowsToMeasure can be used to limit the number of rows measured to get a columns size - defa...
 The : ObjectGrid
Ext.grid.GridView used by the grid. This can be set before a call to render().
 True : BooleanGrid
to fit the height of the grid container to the height of the data. Defaults to false.
-

Property Details

-
- -
-

ddText

- public String ddText -
- Configures the text is the drag proxy (defaults to "%0 selected row(s)"). -%0 is replaced with the number of selected rows.
-
This property is defined by Grid.
-
-
- - -

Constructor Details

-
-
-

Grid

- public function Grid(String/HTMLElement/Ext.Element container, Object config) -
-
- Parameters: -
  • container : String/HTMLElement/Ext.Element
    The element into which this grid will be rendered - The container MUST have some type of size defined for the grid to fill. The container will be automatically set to position relative if it isn't already.
  • config : Object
    A config object that sets properties on this grid.
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

autoSize

- public function autoSize() -
- Causes the grid to manually recalculate its dimensions. Generally this is done automatically, -but if manual update is required this method will initiate it. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Grid.
-
- -
-

destroy

- public function destroy(Boolean removeEl) -
- Destroy this grid. -
- Parameters: -
  • removeEl : Boolean
    True to remove the element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Grid.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getColumnModel

- public function getColumnModel() -
- Returns the grid's ColumnModel. -
- Parameters: -
  • None.
- Returns: -
    -
  • ColumnModel
  • -
-
-
-
This method is defined by Grid.
-
- -
-

getDataSource

- public function getDataSource() -
- Returns the grid's DataSource. -
- Parameters: -
  • None.
- Returns: -
    -
  • DataSource
  • -
-
-
-
This method is defined by Grid.
-
- -
-

getDragDropText

- public function getDragDropText() -
- Called to get grid's drag proxy text, by default returns this.ddText. -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Grid.
-
- -
-

getSelectionModel

- public function getSelectionModel() -
- Returns the grid's SelectionModel. -
- Parameters: -
  • None.
- Returns: -
    -
  • SelectionModel
  • -
-
-
-
This method is defined by Grid.
-
- -
-

getView

- public function getView() -
- Returns the grid's GridView object. -
- Parameters: -
  • None.
- Returns: -
    -
  • GridView
  • -
-
-
-
This method is defined by Grid.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render() -
- * -Called once after all setup has been completed and the grid is ready to be rendered. -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.grid.Grid
    this
  • -
-
-
-
This method is defined by Grid.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

bodyscroll

- public event bodyscroll -
- Fires when the body element is scrolled -
- Subscribers will be called with the following parameters: -
  • scrollLeft : Number
  • scrollTop : Number
-
-
-
This event is defined by Grid.
-
- -
-

cellclick

- public event cellclick -
- Fires when a cell is clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • rowIndex : Number
  • columnIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

cellcontextmenu

- public event cellcontextmenu -
- Fires when a cell is right clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • rowIndex : Number
  • cellIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

celldblclick

- public event celldblclick -
- Fires when a cell is double clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • rowIndex : Number
  • columnIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

click

- public event click -
- The raw click event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

columnmove

- public event columnmove -
- Fires when the user moves a column -
- Subscribers will be called with the following parameters: -
  • oldIndex : Number
  • newIndex : Number
-
-
-
This event is defined by Grid.
-
- -
-

columnresize

- public event columnresize -
- Fires when the user resizes a column -
- Subscribers will be called with the following parameters: -
  • columnIndex : Number
  • newSize : Number
-
-
-
This event is defined by Grid.
-
- -
-

contextmenu

- public event contextmenu -
- The raw contextmenu event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

dblclick

- public event dblclick -
- The raw dblclick event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

dragdrop

- public event dragdrop -
- Fires when dragged row(s) are dropped on a valid DD target -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • dd : Ext.GridDD
    The drag drop object
  • targetId : String
    The target drag drop object
  • e : event
    The raw browser event
-
-
-
This event is defined by Grid.
-
- -
-

dragenter

- public event dragenter -
- Fires when the dragged row(s) first cross another DD target while being dragged -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • dd : Ext.GridDD
    The drag drop object
  • targetId : String
    The target drag drop object
  • e : event
    The raw browser event
-
-
-
This event is defined by Grid.
-
- -
-

dragout

- public event dragout -
- Fires when the dragged row(s) leave another DD target while being dragged -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • dd : Ext.GridDD
    The drag drop object
  • targetId : String
    The target drag drop object
  • e : event
    The raw browser event
-
-
-
This event is defined by Grid.
-
- -
-

dragover

- public event dragover -
- Fires while row(s) are being dragged. "targetId" is the id of the Yahoo.util.DD object the selected rows are being dragged over. -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • dd : Ext.GridDD
    The drag drop object
  • targetId : String
    The target drag drop object
  • e : event
    The raw browser event
-
-
-
This event is defined by Grid.
-
- -
-

enddrag

- public event enddrag -
- Fires when a drag operation is complete -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • dd : Ext.GridDD
    The drag drop object
  • e : event
    The raw browser event
-
-
-
This event is defined by Grid.
-
- -
-

headerclick

- public event headerclick -
- Fires when a header is clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • columnIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

headercontextmenu

- public event headercontextmenu -
- Fires when a header is right clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • columnIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

headerdblclick

- public event headerdblclick -
- Fires when a header cell is double clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • rowIndex : Number
  • columnIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

keydown

- public event keydown -
- The raw keydown event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

keypress

- public event keypress -
- The raw keypress event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

mousedown

- public event mousedown -
- The raw mousedown event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

mouseout

- public event mouseout -
- The raw mouseout event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

mouseover

- public event mouseover -
- The raw mouseover event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

mouseup

- public event mouseup -
- The raw mouseup event for the entire grid. -
- Subscribers will be called with the following parameters: -
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

rowclick

- public event rowclick -
- Fires when a row is clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • rowIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

rowcontextmenu

- public event rowcontextmenu -
- Fires when a row is right clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • rowIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

rowdblclick

- public event rowdblclick -
- Fires when a row is double clicked -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • rowIndex : Number
  • e : Ext.EventObject
-
-
-
This event is defined by Grid.
-
- -
-

startdrag

- public event startdrag -
- Fires when row(s) start being dragged -
- Subscribers will be called with the following parameters: -
  • this : Grid
  • dd : Ext.GridDD
    The drag drop object
  • e : event
    The raw browser event
-
-
-
This event is defined by Grid.
-
-
-

Config Details

-
- -
-

A

- A : Object -
- javascript RegExp defining tagNames allowed to have text selection (Defaults to /INPUT|TEXTAREA|SELECT/i).
-
This config option is defined by Grid.
-
- -
-

An

- An : Object -
- Ext.LoadMask config or true to mask the grid while loading (defaults to false).
-
This config option is defined by Grid.
-
- -
-

If

- If : Boolean -
- autoSizeColumns is on, maxRowsToMeasure can be used to limit the number of rows measured to get a columns size - defaults to 0 (all rows).
-
This config option is defined by Grid.
-
- -
-

The

- The : Object -
- Ext.grid.GridView used by the grid. This can be set before a call to render().
-
This config option is defined by Grid.
-
- -
-

True

- True : Boolean -
- to fit the height of the grid container to the height of the data. Defaults to false.
-
This config option is defined by Grid.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.grid.GridView.html b/www/extras/extjs/docs/output/Ext.grid.GridView.html deleted file mode 100644 index 184e6b311..000000000 --- a/www/extras/extjs/docs/output/Ext.grid.GridView.html +++ /dev/null @@ -1,357 +0,0 @@ - - - - Ext.grid.GridView - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.grid.GridView

- - - - - -
Package:Ext.grid
Class:GridView
Extends:AbstractGridView
Defined In:GridView.js
-
- The default GridView implementation
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 GridView(Object config)GridView
 autoSizeColumn(Number colIndex, Boolean forceMinSize) : voidGridView
Autofit a column to its content.
 autoSizeColumns() : voidGridView
Autofits all columns to their content and then expands to fit any extra space in the grid
 ensureVisible(Number row, Number col, Boolean hscroll) : voidGridView
Scrolls the specified cell into view
 fitColumns(Boolean reserveScrollSpace) : voidGridView
Autofits all columns to the grid's width proportionate with their current size
 focusCell(Number row, Number col, Boolean hscroll) : voidGridView
Focuses the specified cell.
 focusRow(Number row) : voidGridView
Focuses the specified row.
 getFooterPanel(Boolean doShow) : Ext.ElementGridView
Gets a panel in the footer of the grid that can be used for toolbars etc. -After modifying the contents of this panel ...
 getHeaderPanel(Boolean doShow) : Ext.ElementGridView
Gets a panel in the header of the grid that can be used for toolbars etc. -After modifying the contents of this panel ...
 getRowClass(Record record, Number index) : voidGridView
Override this function to apply custom css classes to rows during rendering
 refresh(Boolean headersToo) : voidGridView
Refreshes the grid
 scrollToTop() : voidGridView
Scrolls the grid to the top
- -

Public Events

-
This class has no public events.
- -

Constructor Details

-
-
-

GridView

- public function GridView(Object config) -
-
- Parameters: -
  • config : Object
-
-
-
-
- -

Method Details

-
- -
-

autoSizeColumn

- public function autoSizeColumn(Number colIndex, Boolean forceMinSize) -
- Autofit a column to its content. -
- Parameters: -
  • colIndex : Number
  • forceMinSize : Boolean
    true to force the column to go smaller if possible
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by GridView.
-
- -
-

autoSizeColumns

- public function autoSizeColumns() -
- Autofits all columns to their content and then expands to fit any extra space in the grid -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by GridView.
-
- -
-

ensureVisible

- public function ensureVisible(Number row, Number col, Boolean hscroll) -
- Scrolls the specified cell into view -
- Parameters: -
  • row : Number
    The row index
  • col : Number
    The column index
  • hscroll : Boolean
    false to disable horizontal scrolling
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by GridView.
-
- -
-

fitColumns

- public function fitColumns(Boolean reserveScrollSpace) -
- Autofits all columns to the grid's width proportionate with their current size -
- Parameters: -
  • reserveScrollSpace : Boolean
    Reserve space for a scrollbar
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by GridView.
-
- -
-

focusCell

- public function focusCell(Number row, Number col, Boolean hscroll) -
- Focuses the specified cell. -
- Parameters: -
  • row : Number
    The row index
  • col : Number
    The column index
  • hscroll : Boolean
    false to disable horizontal scrolling
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by GridView.
-
- -
-

focusRow

- public function focusRow(Number row) -
- Focuses the specified row. -
- Parameters: -
  • row : Number
    The row index
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by GridView.
-
- -
-

getFooterPanel

- public function getFooterPanel(Boolean doShow) -
- Gets a panel in the footer of the grid that can be used for toolbars etc. -After modifying the contents of this panel a call to grid.autoSize() may be -required to register any changes in size. -
- Parameters: -
  • doShow : Boolean
    By default the footer is hidden. Pass true to show the panel
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by GridView.
-
- -
-

getHeaderPanel

- public function getHeaderPanel(Boolean doShow) -
- Gets a panel in the header of the grid that can be used for toolbars etc. -After modifying the contents of this panel a call to grid.autoSize() may be -required to register any changes in size. -
- Parameters: -
  • doShow : Boolean
    By default the header is hidden. Pass true to show the panel
- Returns: -
    -
  • Ext.Element
  • -
-
-
-
This method is defined by GridView.
-
- -
-

getRowClass

- public function getRowClass(Record record, Number index) -
- Override this function to apply custom css classes to rows during rendering -
- Parameters: -
  • record : Record
    The record
  • index : Number
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by GridView.
-
- -
-

refresh

- public function refresh(Boolean headersToo) -
- Refreshes the grid -
- Parameters: -
  • headersToo : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by GridView.
-
- -
-

scrollToTop

- public function scrollToTop() -
- Scrolls the grid to the top -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by GridView.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.grid.RowSelectionModel.html b/www/extras/extjs/docs/output/Ext.grid.RowSelectionModel.html deleted file mode 100644 index 7efb4d6cf..000000000 --- a/www/extras/extjs/docs/output/Ext.grid.RowSelectionModel.html +++ /dev/null @@ -1,904 +0,0 @@ - - - - Ext.grid.RowSelectionModel - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.grid.RowSelectionModel

- - - - - -
Package:Ext.grid
Class:RowSelectionModel
Extends:AbstractSelectionModel
Defined In:RowSelectionModel.js
-
- The default SelectionModel used by Ext.grid.Grid. - It supports multiple selections and keyboard selection/navigation.

-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 RowSelectionModel(Object config)RowSelectionModel
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 clearSelections() : voidRowSelectionModel
Clears all selections.
 deselectRange(Number startRow, Number endRow) : voidRowSelectionModel
Deselects a range of rows. All rows in between startRow and endRow are also deselected.
 deselectRow(Number row) : voidRowSelectionModel
Deselects a row.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getCount() : NumberRowSelectionModel
Gets the number of selected rows.
 getSelected() : RecordRowSelectionModel
Returns the first selected record.
 getSelections() : ArrayRowSelectionModel
Returns the selected records
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hasSelection() : BooleanRowSelectionModel
Returns True if there is a selection.
 isIdSelected(String id) : BooleanRowSelectionModel
Returns True if the specified record id is selected.
 isLocked() : BooleanAbstractSelectionModel
Returns true if the selections are locked
 isSelected(Number/Record record) : BooleanRowSelectionModel
Returns True if the specified row is selected.
 lock() : voidAbstractSelectionModel
Lock the selections
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 selectAll() : voidRowSelectionModel
Selects all rows.
 selectFirstRow() : voidRowSelectionModel
Selects the first row in the grid.
 selectLastRow([Boolean keepExisting]) : voidRowSelectionModel
Select the last row.
 selectNext([Boolean keepExisting]) : voidRowSelectionModel
Selects the row immediately following the last selected row.
 selectPrevious([Boolean keepExisting]) : voidRowSelectionModel
Selects the row that precedes the last selected row.
 selectRange(Number startRow, Number endRow, [Boolean keepExisting]) : voidRowSelectionModel
Selects a range of rows. All rows in between startRow and endRow are also selected.
 selectRecords(Array records, [Boolean keepExisting]) : voidRowSelectionModel
Select records.
 selectRow(Number row, [Boolean keepExisting]) : voidRowSelectionModel
Selects a row.
 selectRows(Array rows, [Boolean keepExisting]) : voidRowSelectionModel
Selects multiple rows.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 unlock() : voidAbstractSelectionModel
Unlock the selections
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforerowselect : (SelectionModel this, Number rowIndex)RowSelectionModel
Fires when a row is selected being selected, return false to cancel.
 rowselect : (SelectionModel this, Number rowIndex)RowSelectionModel
Fires when a row is selected.
 selectionchange : (SelectionModel this)RowSelectionModel
Fires when the selection changes
- -

Config Options

- - - - - - - - - - - - - -
Config OptionsDefined By
 singleSelect : BooleanRowSelectionModel
True to allow selection of only one row at a time (defaults to false)
- - -

Constructor Details

-
-
-

RowSelectionModel

- public function RowSelectionModel(Object config) -
-
- Parameters: -
  • config : Object
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

clearSelections

- public function clearSelections() -
- Clears all selections. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

deselectRange

- public function deselectRange(Number startRow, Number endRow) -
- Deselects a range of rows. All rows in between startRow and endRow are also deselected. -
- Parameters: -
  • startRow : Number
    The index of the first row in the range
  • endRow : Number
    The index of the last row in the range
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

deselectRow

- public function deselectRow(Number row) -
- Deselects a row. -
- Parameters: -
  • row : Number
    The index of the row to deselect
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getCount

- public function getCount() -
- Gets the number of selected rows. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

getSelected

- public function getSelected() -
- Returns the first selected record. -
- Parameters: -
  • None.
- Returns: -
    -
  • Record
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

getSelections

- public function getSelections() -
- Returns the selected records -
- Parameters: -
  • None.
- Returns: -
    -
  • Array
    Array of selected records
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hasSelection

- public function hasSelection() -
- Returns True if there is a selection. -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

isIdSelected

- public function isIdSelected(String id) -
- Returns True if the specified record id is selected. -
- Parameters: -
  • id : String
    The id of record to check
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

isLocked

- public function isLocked() -
- Returns true if the selections are locked -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by AbstractSelectionModel.
-
- -
-

isSelected

- public function isSelected(Number/Record record) -
- Returns True if the specified row is selected. -
- Parameters: -
  • record : Number/Record
    The record or index of the record to check
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

lock

- public function lock() -
- Lock the selections -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by AbstractSelectionModel.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

selectAll

- public function selectAll() -
- Selects all rows. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

selectFirstRow

- public function selectFirstRow() -
- Selects the first row in the grid. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

selectLastRow

- public function selectLastRow([Boolean keepExisting]) -
- Select the last row. -
- Parameters: -
  • keepExisting : Boolean
    (optional) True to keep existing selections
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

selectNext

- public function selectNext([Boolean keepExisting]) -
- Selects the row immediately following the last selected row. -
- Parameters: -
  • keepExisting : Boolean
    (optional) True to keep existing selections
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

selectPrevious

- public function selectPrevious([Boolean keepExisting]) -
- Selects the row that precedes the last selected row. -
- Parameters: -
  • keepExisting : Boolean
    (optional) True to keep existing selections
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

selectRange

- public function selectRange(Number startRow, Number endRow, [Boolean keepExisting]) -
- Selects a range of rows. All rows in between startRow and endRow are also selected. -
- Parameters: -
  • startRow : Number
    The index of the first row in the range
  • endRow : Number
    The index of the last row in the range
  • keepExisting : Boolean
    (optional) True to retain existing selections
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

selectRecords

- public function selectRecords(Array records, [Boolean keepExisting]) -
- Select records. -
- Parameters: -
  • records : Array
    The records to select
  • keepExisting : Boolean
    (optional) True to keep existing selections
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

selectRow

- public function selectRow(Number row, [Boolean keepExisting]) -
- Selects a row. -
- Parameters: -
  • row : Number
    The index of the row to select
  • keepExisting : Boolean
    (optional) True to keep existing selections
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

selectRows

- public function selectRows(Array rows, [Boolean keepExisting]) -
- Selects multiple rows. -
- Parameters: -
  • rows : Array
    Array of the indexes of the row to select
  • keepExisting : Boolean
    (optional) True to keep existing selections
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by RowSelectionModel.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

unlock

- public function unlock() -
- Unlock the selections -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by AbstractSelectionModel.
-
-
- -

Event Details

-
- -
-

beforerowselect

- public event beforerowselect -
- Fires when a row is selected being selected, return false to cancel. -
- Subscribers will be called with the following parameters: -
  • this : SelectionModel
  • rowIndex : Number
    The selected index
-
-
-
This event is defined by RowSelectionModel.
-
- -
-

rowselect

- public event rowselect -
- Fires when a row is selected. -
- Subscribers will be called with the following parameters: -
  • this : SelectionModel
  • rowIndex : Number
    The selected index
-
-
-
This event is defined by RowSelectionModel.
-
- -
-

selectionchange

- public event selectionchange -
- Fires when the selection changes -
- Subscribers will be called with the following parameters: -
  • this : SelectionModel
-
-
-
This event is defined by RowSelectionModel.
-
-
-

Config Details

-
- -
-

singleSelect

- singleSelect : Boolean -
- True to allow selection of only one row at a time (defaults to false)
-
This config option is defined by RowSelectionModel.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.html b/www/extras/extjs/docs/output/Ext.html deleted file mode 100644 index 0830dcd60..000000000 --- a/www/extras/extjs/docs/output/Ext.html +++ /dev/null @@ -1,668 +0,0 @@ - - - - Ext - - - - - - -
-
-  Print Friendly
- -
-

Class Ext

- - - - - -
Package:Global
Class:Ext
Extends:Object
Defined In:Ext.js
-
- Ext core utilties and functions

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 BLANK_IMAGE_URL : StringExt
URL to a 1x1 transparent gif image used by Ext to create inline icons with CSS background images. (Defaults to -"http:...
 SSL_SECURE_URL : StringExt
URL to a blank file used by Ext when in secure mode for iframe src and onReady src to prevent -the IE insecure content...
 isReady : BooleanExt
True when the document is fully initialized and ready for action
 isSecure : BooleanExt
True if the page is running over SSL
 isStrict : BooleanExt
True if the browser is in strict mode
 useShims : BooleanExt
By default, Ext intelligently decides whether floating elements should be shimmed. If you are using flash, - you ...
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 addBehaviors(Object obj) : voidExt
Applies event listeners to elements by selectors when the document is ready. -The event name is specified with an @ su...
 apply(Object obj, Object config, Object defaults) : ObjectExt
* -Copies all the properties of config to obj.
 applyIf(Object obj, Object config) : ObjectExt
Copies all the properties of config to obj if they don't already exist.
 decode() : voidExt
Shorthand for Ext.util.JSON.decode
 each(Array/NodeList/Mixed array, Function fn, Object scope) : voidExt
Iterates an array calling the passed function with each item, stopping if your function returns false. If the -passed ...
 encode() : voidExt
Shorthand for Ext.util.JSON.encode
 escapeRe(String str) : StringExt
Escapes the passed string for use in a regular expression
 extend(Object subclass, Object superclass, [Object overrides]) : voidExt
Extends one class with another class and optionally overrides members with the passed literal. This class -also adds t...
 fly(String/HTMLElement el, [String named]) : ElementExt
<static> Gets the globally shared flyweight Element, with the passed node as the active element. Do not store a...
 get(String/HTMLElement/Element el) : ElementExt
Static method to retrieve Element objects. Uses simple caching to consistently return the same object. -Automatically...
 getCmp(String id) : Ext.ComponentExt
Shorthand for Ext.ComponentMgr.get
 getDom(String/HTMLElement/Element) el) : HTMLElementExt
Return the dom node for the passed string (id), dom node, or Ext.Element
 id([String/HTMLElement/Element el], [String prefix]) : voidExt
Generates unique ids. If the element already has an id, it is unchanged
 namespace(String namespace1, String namespace2, String etc) : voidExt
Creates namespaces but does not assume YAHOO is the root.
 onReady(Function fn, Object scope, boolean override) : voidExt
Fires when the document is ready (before onload and before images are loaded). Shorthand of Ext.EventManager.onDocum...
 query(String path, [Node root]) : ArrayExt
Selects an array of DOM nodes by CSS/XPath selector. Shorthand of Ext.DomQuery.select
 select(String/Array selector, [Boolean unique]) : CompositeElementLite/CompositeElementExt
Selects elements based on the passed CSS selector to enable working on them as 1.
 urlDecode(String string, [Boolean overwrite]) : ObjectExt
Takes an encoded URL and and converts it to an object. e.g. Ext.urlDecode("foo=1&bar=2"); would return {foo: 1, bar: ...
 urlEncode(Object o) : StringExt
Takes an object and converts it to an encoded URL. e.g. Ext.urlEncode({foo: 1, bar: 2}); would return "foo=1&bar=2". ...
- -

Public Events

-
This class has no public events.

Property Details

-
- -
-

BLANK_IMAGE_URL

- public String BLANK_IMAGE_URL -
- URL to a 1x1 transparent gif image used by Ext to create inline icons with CSS background images. (Defaults to -"http://extjs.com/s.gif" and you should change this to a URL on your server).
-
This property is defined by Ext.
-
- -
-

SSL_SECURE_URL

- public String SSL_SECURE_URL -
- URL to a blank file used by Ext when in secure mode for iframe src and onReady src to prevent -the IE insecure content warning (defaults to javascript:false).
-
This property is defined by Ext.
-
- -
-

isReady

- public Boolean isReady -
- True when the document is fully initialized and ready for action
-
This property is defined by Ext.
-
- -
-

isSecure

- public Boolean isSecure -
- True if the page is running over SSL
-
This property is defined by Ext.
-
- -
-

isStrict

- public Boolean isStrict -
- True if the browser is in strict mode
-
This property is defined by Ext.
-
- -
-

useShims

- public Boolean useShims -
- By default, Ext intelligently decides whether floating elements should be shimmed. If you are using flash, - you may want to set this to true.
-
This property is defined by Ext.
-
-
- - -

Method Details

-
- -
-

addBehaviors

- public function addBehaviors(Object obj) -
- Applies event listeners to elements by selectors when the document is ready. -The event name is specified with an @ suffix. -

-Ext.addBehaviors({
-   // add a listener for click on all anchors in element with id foo
-   '#foo a@click' : function(e, t){
-       // do something
-   },
-
-   // add the same listener to multiple selectors (separated by comma BEFORE the @)
-   '#foo a, #bar span.some-class@mouseover' : function(){
-       // do something
-   }
-});
-
-
- Parameters: -
  • obj : Object
    The list of behaviors to apply
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Ext.
-
- -
-

apply

- public function apply(Object obj, Object config, Object defaults) -
- * -Copies all the properties of config to obj. -
- Parameters: -
  • obj : Object
    The receiver of the properties
  • config : Object
    The source of the properties
  • defaults : Object
    A different object that will also be applied for default values
- Returns: -
    -
  • Object
    returns obj
  • -
-
-
-
This method is defined by Ext.
-
- -
-

applyIf

- public function applyIf(Object obj, Object config) -
- Copies all the properties of config to obj if they don't already exist. -
- Parameters: -
  • obj : Object
    The receiver of the properties
  • config : Object
    The source of the properties
- Returns: -
    -
  • Object
    returns obj
  • -
-
-
-
This method is defined by Ext.
-
- -
-

decode

- public function decode() -
- Shorthand for Ext.util.JSON.decode -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Ext.
-
- -
-

each

- public function each(Array/NodeList/Mixed array, Function fn, Object scope) -
- Iterates an array calling the passed function with each item, stopping if your function returns false. If the -passed array is not really an array, your function is called once with it. -The supplied function is called with (Object item, Number index, Array allItems). -
- Parameters: -
  • array : Array/NodeList/Mixed
  • fn : Function
  • scope : Object
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Ext.
-
- -
-

encode

- public function encode() -
- Shorthand for Ext.util.JSON.encode -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Ext.
-
- -
-

escapeRe

- public function escapeRe(String str) -
- Escapes the passed string for use in a regular expression -
- Parameters: -
  • str : String
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Ext.
-
- -
-

extend

- public function extend(Object subclass, Object superclass, [Object overrides]) -
- Extends one class with another class and optionally overrides members with the passed literal. This class -also adds the function "override()" to the class that can be used to override -members on an instance. -
- Parameters: -
  • subclass : Object
    The class inheriting the functionality
  • superclass : Object
    The class being extended
  • overrides : Object
    (optional) A literal with members
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Ext.
-
- -
-

fly

- public function fly(String/HTMLElement el, [String named]) -
- <static> Gets the globally shared flyweight Element, with the passed node as the active element. Do not store a reference to this element - -the dom node can be overwritten by other code. -Shorthand of Ext.Element.fly -
- Parameters: -
  • el : String/HTMLElement
    The dom node or id
  • named : String
    (optional) Allows for creation of named reusable flyweights to prevent conflicts (e.g. internally Ext uses "_internal")
- Returns: -
    -
  • Element
    The shared Element object
  • -
-
-
-
This method is defined by Ext.
-
- -
-

get

- public function get(String/HTMLElement/Element el) -
- Static method to retrieve Element objects. Uses simple caching to consistently return the same object. -Automatically fixes if an object was recreated with the same id via AJAX or DOM. -Shorthand of Ext.Element.get -
- Parameters: -
  • el : String/HTMLElement/Element
    The id of the node, a DOM Node or an existing Element.
- Returns: -
    -
  • Element
    The Element object
  • -
-
-
-
This method is defined by Ext.
-
- -
-

getCmp

- public function getCmp(String id) -
- Shorthand for Ext.ComponentMgr.get -
- Parameters: -
  • id : String
- Returns: -
    -
  • Ext.Component
  • -
-
-
-
This method is defined by Ext.
-
- -
-

getDom

- public function getDom(String/HTMLElement/Element) el) -
- Return the dom node for the passed string (id), dom node, or Ext.Element -
- Parameters: -
  • el : String/HTMLElement/Element)
- Returns: -
    -
  • HTMLElement
  • -
-
-
-
This method is defined by Ext.
-
- -
-

id

- public function id([String/HTMLElement/Element el], [String prefix]) -
- Generates unique ids. If the element already has an id, it is unchanged -
- Parameters: -
  • el : String/HTMLElement/Element
    (optional) The element to generate an id for
  • prefix : String
    (optional) Id prefix (defaults "ext-gen")
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Ext.
-
- -
-

namespace

- public function namespace(String namespace1, String namespace2, String etc) -
- Creates namespaces but does not assume YAHOO is the root. -
- Parameters: -
  • namespace1 : String
  • namespace2 : String
  • etc : String
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Ext.
-
- -
-

onReady

- public function onReady(Function fn, Object scope, boolean override) -
- Fires when the document is ready (before onload and before images are loaded). Shorthand of Ext.EventManager.onDocumentReady. -
- Parameters: -
  • fn : Function
    The method the event invokes
  • scope : Object
    An object that becomes the scope of the handler
  • override : boolean
    If true, the obj passed in becomes the execution scope of the listener
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Ext.
-
- -
-

query

- public function query(String path, [Node root]) -
- Selects an array of DOM nodes by CSS/XPath selector. Shorthand of Ext.DomQuery.select -
- Parameters: -
  • path : String
    The selector/xpath query
  • root : Node
    (optional) The start of the query (defaults to document).
- Returns: -
    -
  • Array
  • -
-
-
-
This method is defined by Ext.
-
- -
-

select

- public function select(String/Array selector, [Boolean unique]) -
- Selects elements based on the passed CSS selector to enable working on them as 1. -
- Parameters: -
  • selector : String/Array
    The CSS selector or an array of elements
  • unique : Boolean
    (optional) true to create a unique Ext.Element for each element (defaults to a shared flyweight object)
- Returns: -
    -
  • CompositeElementLite/CompositeElement
  • -
-
-
-
This method is defined by Ext.
-
- -
-

urlDecode

- public function urlDecode(String string, [Boolean overwrite]) -
- Takes an encoded URL and and converts it to an object. e.g. Ext.urlDecode("foo=1&bar=2"); would return {foo: 1, bar: 2} or Ext.urlDecode("foo=1&bar=2&bar=3&bar=4", true); would return {foo: 1, bar: [2, 3, 4]}. -
- Parameters: -
  • string : String
  • overwrite : Boolean
    (optional) Items of the same name will overwrite previous values instead of creating an an array (Defaults to false).
- Returns: -
    -
  • Object
    A literal with members
  • -
-
-
-
This method is defined by Ext.
-
- -
-

urlEncode

- public function urlEncode(Object o) -
- Takes an object and converts it to an encoded URL. e.g. Ext.urlEncode({foo: 1, bar: 2}); would return "foo=1&bar=2". Optionally, property values can be arrays, instead of keys and the resulting string that's returned will contain a name/value pair for each array value. -
- Parameters: -
  • o : Object
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Ext.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.jss.html b/www/extras/extjs/docs/output/Ext.jss.html deleted file mode 100644 index 40e5bc462..000000000 --- a/www/extras/extjs/docs/output/Ext.jss.html +++ /dev/null @@ -1,588 +0,0 @@ -Ext.js

Ext.js


-Ext = {};
-
-// for old browsers
-window["undefined"] = window["undefined"];
-
-/**
- * @class Ext
- * Ext core utilties and functions
- * @singleton
- */
-// holder
-/***
- * Copies all the properties of config to obj.
- * @param {Object} obj The receiver of the properties
- * @param {Object} config The source of the properties
- * @param {Object} defaults A different object that will also be applied for default values
- * @return {Object} returns obj
- * @member Ext apply
- */
-Ext.apply = function(o, c, defaults){
-    if(defaults){
-        // no "this" reference for friendly out of scope calls
-        Ext.apply(o, defaults);
-    }
-    if(o && c && typeof c == 'object'){
-        for(var p in c){
-            o[p] = c[p];
-        }
-    }
-    return o;
-};
-
-(function(){
-    var idSeed = 0;
-    var ua = navigator.userAgent.toLowerCase();
-
-    var isStrict = document.compatMode == "CSS1Compat",
-        isOpera = ua.indexOf("opera") > -1,
-        isSafari = (/webkit|khtml/).test(ua),
-        isIE = ua.indexOf("msie") > -1,
-        isIE7 = ua.indexOf("msie 7") > -1,
-        isGecko = !isSafari && ua.indexOf("gecko") > -1,
-        isBorderBox = isIE && !isStrict,
-        isWindows = (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1),
-        isMac = (ua.indexOf("macintosh") != -1 || ua.indexOf("mac os x") != -1),
-        isSecure = window.location.href.toLowerCase().indexOf("https") === 0;
-
-    // remove css image flicker
-	if(isIE && !isIE7){
-        try{
-            document.execCommand("BackgroundImageCache", false, true);
-        }catch(e){}
-    }
-
-    Ext.apply(Ext, {
-        /**
-         * True if the browser is in strict mode
-         * @type Boolean
-         */
-        isStrict : isStrict,
-        /**
-         * True if the page is running over SSL
-         * @type Boolean
-         */
-        isSecure : isSecure,
-        /**
-         * True when the document is fully initialized and ready for action
-         * @type Boolean
-         */
-        isReady : false,
-        /**
-         * URL to a blank file used by Ext when in secure mode for iframe src and onReady src to prevent
-         * the IE insecure content warning (defaults to javascript:false).
-         * @type String
-         */
-        SSL_SECURE_URL : "javascript:false",
-
-        /**
-         * URL to a 1x1 transparent gif image used by Ext to create inline icons with CSS background images. (Defaults to
-         * "http://extjs.com/s.gif" and you should change this to a URL on your server).
-         * @type String
-         */
-        BLANK_IMAGE_URL : "http:/"+"/extjs.com/s.gif",
-
-        emptyFn : function(){},
-
-        /**
-         * Copies all the properties of config to obj if they don't already exist.
-         * @param {Object} obj The receiver of the properties
-         * @param {Object} config The source of the properties
-         * @return {Object} returns obj
-         */
-        applyIf : function(o, c){
-            if(o && c){
-                for(var p in c){
-                    if(typeof o[p] == "undefined"){ o[p] = c[p]; }
-                }
-            }
-            return o;
-        },
-
-        /**
-         * Applies event listeners to elements by selectors when the document is ready.
-         * The event name is specified with an @ suffix.
-<pre><code>
-Ext.addBehaviors({
-   // add a listener for click on all anchors in element with id foo
-   '#foo a@click' : function(e, t){
-       // do something
-   },
-
-   // add the same listener to multiple selectors (separated by comma BEFORE the @)
-   '#foo a, #bar span.some-class@mouseover' : function(){
-       // do something
-   }
-});
-</code></pre>
-         * @param {Object} obj The list of behaviors to apply
-         */
-        addBehaviors : function(o){
-            if(!Ext.isReady){
-                Ext.onReady(function(){
-                    Ext.addBehaviors(o);
-                });
-                return;
-            }
-            var cache = {}; // simple cache for applying multiple behaviors to same selector does query multiple times
-            for(var b in o){
-                var parts = b.split('@');
-                if(parts[1]){ // for Object prototype breakers
-                    var s = parts[0];
-                    if(!cache[s]){
-                        cache[s] = Ext.select(s);
-                    }
-                    cache[s].on(parts[1], o[b]);
-                }
-            }
-            cache = null;
-        },
-
-        /**
-         * Generates unique ids. If the element already has an id, it is unchanged
-         * @param {String/HTMLElement/Element} el (optional) The element to generate an id for
-         * @param {String} prefix (optional) Id prefix (defaults "ext-gen")
-         */
-        id : function(el, prefix){
-            prefix = prefix || "ext-gen";
-            el = Ext.getDom(el);
-            var id = prefix + (++idSeed);
-            return el ? (el.id ? el.id : (el.id = id)) : id;
-        },
-
-        /**
-         * Extends one class with another class and optionally overrides members with the passed literal. This class
-         * also adds the function "override()" to the class that can be used to override
-         * members on an instance.
-         * @param {Object} subclass The class inheriting the functionality
-         * @param {Object} superclass The class being extended
-         * @param {Object} overrides (optional) A literal with members
-         * @method extend
-         */
-        extend : function(){
-            // inline overrides
-            var io = function(o){
-                for(var m in o){
-                    this[m] = o[m];
-                }
-            };
-            return function(sb, sp, overrides){
-                if(typeof sp == 'object'){
-                    overrides = sp;
-                    sp = sb;
-                    sb = function(){sp.apply(this, arguments);};
-                }
-                var F = function(){}, sbp, spp = sp.prototype;
-                F.prototype = spp;
-                sbp = sb.prototype = new F();
-                sbp.constructor=sb;
-                sb.superclass=spp;
-                if(spp.constructor == Object.prototype.constructor){
-                    spp.constructor=sp;
-                }
-                sb.override = function(o){
-                    Ext.override(sb, o);
-                };
-                sbp.override = io;
-                sbp.__extcls = sb;
-                Ext.override(sb, overrides);
-                return sb;
-            };
-        }(),
-
-        override : function(origclass, overrides){
-            if(overrides){
-                var p = origclass.prototype;
-                for(var method in overrides){
-                    p[method] = overrides[method];
-                }
-            }
-        },
-        /**
-         * Creates namespaces but does not assume YAHOO is the root.
-         * @param {String} namespace1
-         * @param {String} namespace2
-         * @param {String} etc
-         * @method namespace
-         */
-        namespace : function(){
-            var a=arguments, o=null, i, j, d, rt;
-            for (i=0; i<a.length; ++i) {
-                d=a[i].split(".");
-                rt = d[0];
-                eval('if (typeof ' + rt + ' == "undefined"){' + rt + ' = {};} o = ' + rt + ';');
-                for (j=1; j<d.length; ++j) {
-                    o[d[j]]=o[d[j]] || {};
-                    o=o[d[j]];
-                }
-            }
-        },
-
-        /**
-         * Takes an object and converts it to an encoded URL. e.g. Ext.urlEncode({foo: 1, bar: 2}); would return "foo=1&bar=2".  Optionally, property values can be arrays, instead of keys and the resulting string that's returned will contain a name/value pair for each array value.
-         * @param {Object} o
-         * @return {String}
-         */
-        urlEncode : function(o){
-            if(!o){
-                return "";
-            }
-            var buf = [];
-            for(var key in o){
-                var ov = o[key];
-                var type = typeof ov;
-                if(type == 'undefined'){
-                    buf.push(encodeURIComponent(key), "=&");
-                }else if(type != "function" && type != "object"){
-                    buf.push(encodeURIComponent(key), "=", encodeURIComponent(ov), "&");
-                }else if(ov instanceof Array){
-                    for(var i = 0, len = ov.length; i < len; i++) {
-                        buf.push(encodeURIComponent(key), "=", encodeURIComponent(ov[i] === undefined ? '' : ov[i]), "&");
-                    }
-                }
-            }
-            buf.pop();
-            return buf.join("");
-        },
-
-        /**
-         * Takes an encoded URL and and converts it to an object. e.g. Ext.urlDecode("foo=1&bar=2"); would return {foo: 1, bar: 2} or Ext.urlDecode("foo=1&bar=2&bar=3&bar=4", true); would return {foo: 1, bar: [2, 3, 4]}.
-         * @param {String} string
-         * @param {Boolean} overwrite (optional) Items of the same name will overwrite previous values instead of creating an an array (Defaults to false).
-         * @return {Object} A literal with members
-         */
-        urlDecode : function(string, overwrite){
-            if(!string || !string.length){
-                return {};
-            }
-            var obj = {};
-            var pairs = string.split('&');
-            var pair, name, value;
-            for(var i = 0, len = pairs.length; i < len; i++){
-                pair = pairs[i].split('=');
-                name = decodeURIComponent(pair[0]);
-                value = decodeURIComponent(pair[1]);
-                if(overwrite !== true){
-                    if(typeof obj[name] == "undefined"){
-                        obj[name] = value;
-                    }else if(typeof obj[name] == "string"){
-                        obj[name] = [obj[name]];
-                        obj[name].push(value);
-                    }else{
-                        obj[name].push(value);
-                    }
-                }else{
-                    obj[name] = value;
-                }
-            }
-            return obj;
-        },
-
-        /**
-         * Iterates an array calling the passed function with each item, stopping if your function returns false. If the
-         * passed array is not really an array, your function is called once with it.
-         * The supplied function is called with (Object item, Number index, Array allItems).
-         * @param {Array/NodeList/Mixed} array
-         * @param {Function} fn
-         * @param {Object} scope
-         */
-        each : function(array, fn, scope){
-            if(typeof array.length == "undefined" || typeof array == "string"){
-                array = [array];
-            }
-            for(var i = 0, len = array.length; i < len; i++){
-                if(fn.call(scope || array[i], array[i], i, array) === false){ return i; };
-            }
-        },
-
-        // deprecated
-        combine : function(){
-            var as = arguments, l = as.length, r = [];
-            for(var i = 0; i < l; i++){
-                var a = as[i];
-                if(a instanceof Array){
-                    r = r.concat(a);
-                }else if(a.length !== undefined && !a.substr){
-                    r = r.concat(Array.prototype.slice.call(a, 0));
-                }else{
-                    r.push(a);
-                }
-            }
-            return r;
-        },
-
-        /**
-         * Escapes the passed string for use in a regular expression
-         * @param {String} str
-         * @return {String}
-         */
-        escapeRe : function(s) {
-            return s.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1");
-        },
-
-        // internal
-        callback : function(cb, scope, args, delay){
-            if(typeof cb == "function"){
-                if(delay){
-                    cb.defer(delay, scope, args || []);
-                }else{
-                    cb.apply(scope, args || []);
-                }
-            }
-        },
-
-        /**
-         * Return the dom node for the passed string (id), dom node, or Ext.Element
-         * @param {String/HTMLElement/Element) el
-         * @return HTMLElement
-         */
-        getDom : function(el){
-            if(!el){
-                return null;
-            }
-            return el.dom ? el.dom : (typeof el == 'string' ? document.getElementById(el) : el);
-        },
-
-        /**
-        * Shorthand for {@link Ext.ComponentMgr#get}
-        * @param {String} id
-        * @return Ext.Component
-        */
-        getCmp : function(id){
-            return Ext.ComponentMgr.get(id);
-        },
-
-        num : function(v, defaultValue){
-            if(typeof v != 'number'){
-                return defaultValue;
-            }
-            return v;
-        },
-
-        destroy : function(){
-            for(var i = 0, a = arguments, len = a.length; i < len; i++) {
-                var as = a[i];
-                if(as){
-                    if(as.dom){
-                        as.removeAllListeners();
-                        as.remove();
-                        continue;
-                    }
-                    if(typeof as.purgeListeners == 'function'){
-                        as.purgeListeners();
-                    }
-                    if(typeof as.destroy == 'function'){
-                        as.destroy();
-                    }
-                }
-            }
-        },
-
-        /* @type Boolean */
-        isOpera : isOpera,
-        /* @type Boolean */
-        isSafari : isSafari,
-        /* @type Boolean */
-        isIE : isIE,
-        /* @type Boolean */
-        isIE7 : isIE7,
-        /* @type Boolean */
-        isGecko : isGecko,
-        /* @type Boolean */
-        isBorderBox : isBorderBox,
-        /* @type Boolean */
-        isWindows : isWindows,
-        /* @type Boolean */
-        isMac : isMac,
-
-    /**
-     By default, Ext intelligently decides whether floating elements should be shimmed. If you are using flash,
-     you may want to set this to true.
-     @type Boolean
-     */
-        useShims : ((isIE && !isIE7) || (isGecko && isMac))
-    });
-
-
-})();
-
-Ext.namespace("Ext", "Ext.util", "Ext.grid", "Ext.dd", "Ext.tree", "Ext.data",
-                "Ext.form", "Ext.menu", "Ext.state", "Ext.lib", "Ext.layout");
-
-
-/**
- * @class Function
- * These functions are available on every Function object (any javascript function).
- */
-Ext.apply(Function.prototype, {
-     /**
-     * Creates a callback that passes arguments[0], arguments[1], arguments[2], ...
-     * Call directly on any function. Example: <code>myFunction.createCallback(myarg, myarg2)</code>
-     * Will create a function that is bound to those 2 args.
-     * @return {Function} The new function
-    */
-    createCallback : function(/*args...*/){
-        // make args available, in function below
-        var args = arguments;
-        var method = this;
-        return function() {
-            return method.apply(window, args);
-        };
-    },
-
-    /**
-     * Creates a delegate (callback) that sets the scope to obj.
-     * Call directly on any function. Example: <code>this.myFunction.createDelegate(this)</code>
-     * Will create a function that is automatically scoped to this.
-     * @param {Object} obj (optional) The object for which the scope is set
-     * @param {Array} args (optional) Overrides arguments for the call. (Defaults to the arguments passed by the caller)
-     * @param {Boolean/Number} appendArgs (optional) if True args are appended to call args instead of overriding,
-     *                                             if a number the args are inserted at the specified position
-     * @return {Function} The new function
-     */
-    createDelegate : function(obj, args, appendArgs){
-        var method = this;
-        return function() {
-            var callArgs = args || arguments;
-            if(appendArgs === true){
-                callArgs = Array.prototype.slice.call(arguments, 0);
-                callArgs = callArgs.concat(args);
-            }else if(typeof appendArgs == "number"){
-                callArgs = Array.prototype.slice.call(arguments, 0); // copy arguments first
-                var applyArgs = [appendArgs, 0].concat(args); // create method call params
-                Array.prototype.splice.apply(callArgs, applyArgs); // splice them in
-            }
-            return method.apply(obj || window, callArgs);
-        };
-    },
-
-    /**
-     * Calls this function after the number of millseconds specified.
-     * @param {Number} millis The number of milliseconds for the setTimeout call (if 0 the function is executed immediately)
-     * @param {Object} obj (optional) The object for which the scope is set
-     * @param {Array} args (optional) Overrides arguments for the call. (Defaults to the arguments passed by the caller)
-     * @param {Boolean/Number} appendArgs (optional) if True args are appended to call args instead of overriding,
-     *                                             if a number the args are inserted at the specified position
-     * @return {Number} The timeout id that can be used with clearTimeout
-     */
-    defer : function(millis, obj, args, appendArgs){
-        var fn = this.createDelegate(obj, args, appendArgs);
-        if(millis){
-            return setTimeout(fn, millis);
-        }
-        fn();
-        return 0;
-    },
-    /**
-     * Create a combined function call sequence of the original function + the passed function.
-     * The resulting function returns the results of the original function.
-     * The passed fcn is called with the parameters of the original function
-     * @param {Function} fcn The function to sequence
-     * @param {Object} scope (optional) The scope of the passed fcn (Defaults to scope of original function or window)
-     * @return {Function} The new function
-     */
-    createSequence : function(fcn, scope){
-        if(typeof fcn != "function"){
-            return this;
-        }
-        var method = this;
-        return function() {
-            var retval = method.apply(this || window, arguments);
-            fcn.apply(scope || this || window, arguments);
-            return retval;
-        };
-    },
-
-    /**
-     * Creates an interceptor function. The passed fcn is called before the original one. If it returns false, the original one is not called.
-     * The resulting function returns the results of the original function.
-     * The passed fcn is called with the parameters of the original function.
-     * @addon
-     * @param {Function} fcn The function to call before the original
-     * @param {Object} scope (optional) The scope of the passed fcn (Defaults to scope of original function or window)
-     * @return {Function} The new function
-     */
-    createInterceptor : function(fcn, scope){
-        if(typeof fcn != "function"){
-            return this;
-        }
-        var method = this;
-        return function() {
-            fcn.target = this;
-            fcn.method = method;
-            if(fcn.apply(scope || this || window, arguments) === false){
-                return;
-            }
-            return method.apply(this || window, arguments);
-        };
-    }
-});
-
-Ext.applyIf(String, {
-
-    /*
-     * Escapes the passed string for ' and \
-     * @param {String} str
-     * @return {String}
-     */
-    escape : function(string) {
-        return string.replace(/('|\\)/g, "\\$1");
-    },
-
-    leftPad : function (val, size, ch) {
-        var result = new String(val);
-        if (ch == null) {
-            ch = " ";
-        }
-        while (result.length < size) {
-            result = ch + result;
-        }
-        return result;
-    },
-
-    format : function(format){
-        var args = Array.prototype.slice.call(arguments, 1);
-        return format.replace(/\{(\d+)\}/g, function(m, i){
-            return args[i];
-        });
-    }
-});
-
-String.prototype.toggle = function(value, other){
-    return this == value ? other : value;
-};
-
-Ext.applyIf(Number.prototype, {
-    constrain : function(min, max){
-        return Math.min(Math.max(this, min), max);
-    }
-});
-
-Ext.applyIf(Array.prototype, {
-    indexOf : function(o){
-       for (var i = 0, len = this.length; i < len; i++){
- 	      if(this[i] == o) return i;
-       }
- 	   return -1;
-    },
-
-    remove : function(o){
-       var index = this.indexOf(o);
-       if(index != -1){
-           this.splice(index, 1);
-       }
-    }
-});
-
-/**
- Returns the number of milliseconds between this date and date
- @param {Date} date (optional) Defaults to now
- @return {Number} The diff in milliseconds
- @member Date getElapsed
- */
-Date.prototype.getElapsed = function(date) {
-	return Math.abs((date || new Date()).getTime()-this.getTime());
-};
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.menu.Adapter.html b/www/extras/extjs/docs/output/Ext.menu.Adapter.html deleted file mode 100644 index 852f60799..000000000 --- a/www/extras/extjs/docs/output/Ext.menu.Adapter.html +++ /dev/null @@ -1,1002 +0,0 @@ - - - - Ext.menu.Adapter - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.menu.Adapter

- - - - - - -
Package:Ext.menu
Class:Adapter
Extends:BaseItem
Subclasses:ColorItem, DateItem
Defined In:Adapter.js
-
- A base utility class that adapts a non-menu component so that it can be wrapped by a menu item and added to a menu. -It provides basic rendering, activation management and enable/disable logic required to work in menus.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Adapter(Object config)Adapter
Creates a new Adapter
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isVisible() : voidComponent
Returns true if this component is visible
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 activate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is activated
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 click : (Ext.menu.BaseItem this, Ext.EventObject e)BaseItem
Fires when this item is clicked
 deactivate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is deactivated
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 hide : (Ext.Component this)Component
Fires after the component is hidden
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 activeClass : StringBaseItem
The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
 canActivate : BooleanBaseItem
True if this item can be visually activated (defaults to false)
 handler : FunctionBaseItem
A function that will handle the click event of this menu item (defaults to undefined)
 hideDelay : NumberBaseItem
Length of time in milliseconds to wait before hiding after a click (defaults to 100)
 hideOnClick : BooleanBaseItem
True to hide the containing menu after this item is clicked (defaults to true)
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

Adapter

- public function Adapter(Object config) -
- Creates a new Adapter
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

activate

- public event activate -
- Fires when this item is activated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

click

- public event click -
- Fires when this item is clicked -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
  • e : Ext.EventObject
-
-
-
This event is defined by BaseItem.
-
- -
-

deactivate

- public event deactivate -
- Fires when this item is deactivated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
-
-

Config Details

-
- -
-

activeClass

- activeClass : String -
- The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
-
This config option is defined by BaseItem.
-
- -
-

canActivate

- canActivate : Boolean -
- True if this item can be visually activated (defaults to false)
-
This config option is defined by BaseItem.
-
- -
-

handler

- handler : Function -
- A function that will handle the click event of this menu item (defaults to undefined)
-
This config option is defined by BaseItem.
-
- -
-

hideDelay

- hideDelay : Number -
- Length of time in milliseconds to wait before hiding after a click (defaults to 100)
-
This config option is defined by BaseItem.
-
- -
-

hideOnClick

- hideOnClick : Boolean -
- True to hide the containing menu after this item is clicked (defaults to true)
-
This config option is defined by BaseItem.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.menu.BaseItem.html b/www/extras/extjs/docs/output/Ext.menu.BaseItem.html deleted file mode 100644 index a3d9cfb19..000000000 --- a/www/extras/extjs/docs/output/Ext.menu.BaseItem.html +++ /dev/null @@ -1,1002 +0,0 @@ - - - - Ext.menu.BaseItem - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.menu.BaseItem

- - - - - - -
Package:Ext.menu
Class:BaseItem
Extends:Component
Subclasses:Adapter, Item, Separator, TextItem
Defined In:BaseItem.js
-
- The base class for all items that render into menus. BaseItem provides default rendering, activated state -management and base configuration options shared by all menu components.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 BaseItem(Object config)BaseItem
Creates a new BaseItem
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isVisible() : voidComponent
Returns true if this component is visible
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 activate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is activated
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 click : (Ext.menu.BaseItem this, Ext.EventObject e)BaseItem
Fires when this item is clicked
 deactivate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is deactivated
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 hide : (Ext.Component this)Component
Fires after the component is hidden
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 activeClass : StringBaseItem
The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
 canActivate : BooleanBaseItem
True if this item can be visually activated (defaults to false)
 handler : FunctionBaseItem
A function that will handle the click event of this menu item (defaults to undefined)
 hideDelay : NumberBaseItem
Length of time in milliseconds to wait before hiding after a click (defaults to 100)
 hideOnClick : BooleanBaseItem
True to hide the containing menu after this item is clicked (defaults to true)
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

BaseItem

- public function BaseItem(Object config) -
- Creates a new BaseItem
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

activate

- public event activate -
- Fires when this item is activated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

click

- public event click -
- Fires when this item is clicked -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
  • e : Ext.EventObject
-
-
-
This event is defined by BaseItem.
-
- -
-

deactivate

- public event deactivate -
- Fires when this item is deactivated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
-
-

Config Details

-
- -
-

activeClass

- activeClass : String -
- The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
-
This config option is defined by BaseItem.
-
- -
-

canActivate

- canActivate : Boolean -
- True if this item can be visually activated (defaults to false)
-
This config option is defined by BaseItem.
-
- -
-

handler

- handler : Function -
- A function that will handle the click event of this menu item (defaults to undefined)
-
This config option is defined by BaseItem.
-
- -
-

hideDelay

- hideDelay : Number -
- Length of time in milliseconds to wait before hiding after a click (defaults to 100)
-
This config option is defined by BaseItem.
-
- -
-

hideOnClick

- hideOnClick : Boolean -
- True to hide the containing menu after this item is clicked (defaults to true)
-
This config option is defined by BaseItem.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.menu.CheckItem.html b/www/extras/extjs/docs/output/Ext.menu.CheckItem.html deleted file mode 100644 index 9c5080a99..000000000 --- a/www/extras/extjs/docs/output/Ext.menu.CheckItem.html +++ /dev/null @@ -1,1172 +0,0 @@ - - - - Ext.menu.CheckItem - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.menu.CheckItem

- - - - - -
Package:Ext.menu
Class:CheckItem
Extends:Item
Defined In:CheckItem.js
-
- Adds a menu item that contains a checkbox by default, but can also be part of a radio group.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 CheckItem(Object config)CheckItem
Creates a new CheckItem
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isVisible() : voidComponent
Returns true if this component is visible
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 setChecked(Boolean checked, [Boolean suppressEvent]) : voidCheckItem
Set the checked state of this item
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setText(String text) : voidItem
Sets the text to display in this menu item
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 activate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is activated
 beforecheckchange : (Ext.menu.CheckItem this, Boolean checked)CheckItem
Fires before the checked value is set, providing an opportunity to cancel if needed
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 checkchange : (Ext.menu.CheckItem this, Boolean checked)CheckItem
Fires after the checked value has been set
 click : (Ext.menu.BaseItem this, Ext.EventObject e)BaseItem
Fires when this item is clicked
 deactivate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is deactivated
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 hide : (Ext.Component this)Component
Fires after the component is hidden
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 activeClass : StringBaseItem
The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
 canActivate : BooleanBaseItem
True if this item can be visually activated (defaults to false)
 checked : BooleanCheckItem
True to initialize this checkbox as checked (defaults to false). Note that if this checkbox is part of a radio group ...
 group : StringCheckItem
All check items with the same group name will automatically be grouped into a single-select radio button group (defau...
 groupClass : StringCheckItem
The default CSS class to use for radio group check items (defaults to "x-menu-group-item")
 handler : FunctionBaseItem
A function that will handle the click event of this menu item (defaults to undefined)
 hideDelay : NumberBaseItem
Length of time in milliseconds to wait before hiding after a click (defaults to 100)
 hideOnClick : BooleanBaseItem
True to hide the containing menu after this item is clicked (defaults to true)
 icon : StringItem
The path to an icon to display in this menu item (defaults to Ext.BLANK_IMAGE_URL)
 itemCls : StringCheckItem
The default CSS class to use for check items (defaults to "x-menu-item x-menu-check-item")
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

CheckItem

- public function CheckItem(Object config) -
- Creates a new CheckItem
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setChecked

- public function setChecked(Boolean checked, [Boolean suppressEvent]) -
- Set the checked state of this item -
- Parameters: -
  • checked : Boolean
    The new checked value
  • suppressEvent : Boolean
    (optional) True to prevent the checkchange event from firing (defaults to false)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by CheckItem.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setText

- public function setText(String text) -
- Sets the text to display in this menu item -
- Parameters: -
  • text : String
    The text to display
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Item.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

activate

- public event activate -
- Fires when this item is activated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

beforecheckchange

- public event beforecheckchange -
- Fires before the checked value is set, providing an opportunity to cancel if needed -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.CheckItem
  • checked : Boolean
    The new checked value that will be set
-
-
-
This event is defined by CheckItem.
-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

checkchange

- public event checkchange -
- Fires after the checked value has been set -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.CheckItem
  • checked : Boolean
    The checked value that was set
-
-
-
This event is defined by CheckItem.
-
- -
-

click

- public event click -
- Fires when this item is clicked -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
  • e : Ext.EventObject
-
-
-
This event is defined by BaseItem.
-
- -
-

deactivate

- public event deactivate -
- Fires when this item is deactivated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
-
-

Config Details

-
- -
-

activeClass

- activeClass : String -
- The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
-
This config option is defined by BaseItem.
-
- -
-

canActivate

- canActivate : Boolean -
- True if this item can be visually activated (defaults to false)
-
This config option is defined by BaseItem.
-
- -
-

checked

- checked : Boolean -
- True to initialize this checkbox as checked (defaults to false). Note that if this checkbox is part of a radio group (group = true) only the last item in the group that is initialized with checked = true will be rendered as checked.
-
This config option is defined by CheckItem.
-
- -
-

group

- group : String -
- All check items with the same group name will automatically be grouped into a single-select radio button group (defaults to '')
-
This config option is defined by CheckItem.
-
- -
-

groupClass

- groupClass : String -
- The default CSS class to use for radio group check items (defaults to "x-menu-group-item")
-
This config option is defined by CheckItem.
-
- -
-

handler

- handler : Function -
- A function that will handle the click event of this menu item (defaults to undefined)
-
This config option is defined by BaseItem.
-
- -
-

hideDelay

- hideDelay : Number -
- Length of time in milliseconds to wait before hiding after a click (defaults to 100)
-
This config option is defined by BaseItem.
-
- -
-

hideOnClick

- hideOnClick : Boolean -
- True to hide the containing menu after this item is clicked (defaults to true)
-
This config option is defined by BaseItem.
-
- -
-

icon

- icon : String -
- The path to an icon to display in this menu item (defaults to Ext.BLANK_IMAGE_URL)
-
This config option is defined by Item.
-
- -
-

itemCls

- itemCls : String -
- The default CSS class to use for check items (defaults to "x-menu-item x-menu-check-item")
-
This config option is defined by CheckItem.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.menu.ColorItem.html b/www/extras/extjs/docs/output/Ext.menu.ColorItem.html deleted file mode 100644 index 27f4c4b23..000000000 --- a/www/extras/extjs/docs/output/Ext.menu.ColorItem.html +++ /dev/null @@ -1,1016 +0,0 @@ - - - - Ext.menu.ColorItem - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.menu.ColorItem

- - - - - -
Package:Ext.menu
Class:ColorItem
Extends:Adapter
Defined In:ColorItem.js
-
- A menu item that wraps the Ext.ColorPalette component.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 palette : Ext.ColorPaletteColorItem
The Ext.ColorPalette object
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 ColorItem(Object config)ColorItem
Creates a new ColorItem
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isVisible() : voidComponent
Returns true if this component is visible
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 activate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is activated
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 click : (Ext.menu.BaseItem this, Ext.EventObject e)BaseItem
Fires when this item is clicked
 deactivate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is deactivated
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 hide : (Ext.Component this)Component
Fires after the component is hidden
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 activeClass : StringBaseItem
The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
 canActivate : BooleanBaseItem
True if this item can be visually activated (defaults to false)
 handler : FunctionBaseItem
A function that will handle the click event of this menu item (defaults to undefined)
 hideDelay : NumberBaseItem
Length of time in milliseconds to wait before hiding after a click (defaults to 100)
 hideOnClick : BooleanBaseItem
True to hide the containing menu after this item is clicked (defaults to true)
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

palette

- public Ext.ColorPalette palette -
- The Ext.ColorPalette object
-
This property is defined by ColorItem.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

ColorItem

- public function ColorItem(Object config) -
- Creates a new ColorItem
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

activate

- public event activate -
- Fires when this item is activated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

click

- public event click -
- Fires when this item is clicked -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
  • e : Ext.EventObject
-
-
-
This event is defined by BaseItem.
-
- -
-

deactivate

- public event deactivate -
- Fires when this item is deactivated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
-
-

Config Details

-
- -
-

activeClass

- activeClass : String -
- The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
-
This config option is defined by BaseItem.
-
- -
-

canActivate

- canActivate : Boolean -
- True if this item can be visually activated (defaults to false)
-
This config option is defined by BaseItem.
-
- -
-

handler

- handler : Function -
- A function that will handle the click event of this menu item (defaults to undefined)
-
This config option is defined by BaseItem.
-
- -
-

hideDelay

- hideDelay : Number -
- Length of time in milliseconds to wait before hiding after a click (defaults to 100)
-
This config option is defined by BaseItem.
-
- -
-

hideOnClick

- hideOnClick : Boolean -
- True to hide the containing menu after this item is clicked (defaults to true)
-
This config option is defined by BaseItem.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.menu.ColorMenu.html b/www/extras/extjs/docs/output/Ext.menu.ColorMenu.html deleted file mode 100644 index 5666a80d1..000000000 --- a/www/extras/extjs/docs/output/Ext.menu.ColorMenu.html +++ /dev/null @@ -1,969 +0,0 @@ - - - - Ext.menu.ColorMenu - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.menu.ColorMenu

- - - - - -
Package:Ext.menu
Class:ColorMenu
Extends:Menu
Defined In:ColorMenu.js
-
- A menu containing a Ext.menu.ColorItem component (which provides a basic color picker).
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 palette : ColorPaletteColorMenu
The Ext.ColorPalette instance for this ColorMenu
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 ColorMenu(Object config)ColorMenu
Creates a new ColorMenu
 add(Mixed args) : Ext.menu.ItemMenu
Addds one or more items of any type supported by the Menu class, or that can be converted into menu items. -Any of the...
 addElement(String/HTMLElement/Ext.Element el) : Ext.menu.ItemMenu
Adds an Ext.Element object to the menu
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addItem(Ext.menu.Item item) : Ext.menu.ItemMenu
Adds an existing object based on Ext.menu.Item to the menu
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 addMenuItem(Object config) : Ext.menu.ItemMenu
Creates a new Ext.menu.Item based an the supplied config object and adds it to the menu
 addSeparator() : Ext.menu.ItemMenu
Adds a separator bar to the menu
 addText(String text) : Ext.menu.ItemMenu
Creates a new Ext.menu.TextItem with the supplied text and adds it to the menu
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getEl() : Ext.ElementMenu
Returns this menu's underlying Ext.Element object
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide([Boolean deep]) : voidMenu
Hides this menu and optionally all parent menus
 insert(Number index, Ext.menu.Item item) : Ext.menu.ItemMenu
Inserts an existing object based on Ext.menu.Item to the menu at a specified index
 isVisible() : voidMenu
Read-only. Returns true if the menu is currently displayed, else false.
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 remove(Ext.menu.Item item) : voidMenu
Removes an Ext.menu.Item from the menu and destroys the object
 removeAll() : voidMenu
Removes and destroys all items in the menu
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 show(String/HTMLElement/Ext.Element element, [String position], [Ext.menu.Menu parentMenu]) : voidMenu
Displays this menu relative to another element
 showAt(Array xyPosition, [Ext.menu.Menu parentMenu]) : voidMenu
Displays this menu at a specific xy position
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforehide : (Ext.menu.Menu this)Menu
Fires before this menu is hidden
 beforeshow : (Ext.menu.Menu this)Menu
Fires before this menu is displayed
 click : (Ext.menu.Menu this, String menuItemId, Ext.EventObject e)Menu
Fires when this menu is clicked (or when the enter key is pressed while it is active)
 hide : (Ext.menu.Menu this)Menu
Fires after this menu is hidden
 itemclick : (Ext.menu.BaseItem baseItem, Ext.EventObject e)Menu
Fires when a menu item contained in this menu is clicked
 mouseout : (Ext.menu.Menu this, Ext.EventObject e, String menuItemId)Menu
Fires when the mouse exits this menu
 mouseover : (Ext.menu.Menu this, Ext.EventObject e, String menuItemId)Menu
Fires when the mouse is hovering over this menu
 select : (ColorPalette palette, String color)ColorMenu
 show : (Ext.menu.Menu this)Menu
Fires after this menu is displayed
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 allowOtherMenus : BooleanMenu
True to allow multiple menus to be displayed at the same time (defaults to false)
 defaultAlign : StringMenu
The default {@link Ext.Element#alignTo) anchor position value for this menu relative to its element of origin (defaul...
 minWidth : NumberMenu
The minimum width of the menu in pixels (defaults to 120)
 shadow : Boolean/StringMenu
True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right shadow (defaults to "si...
 subMenuAlign : StringMenu
The {@link Ext.Element#alignTo) anchor position value to use for submenus of this menu (defaults to "tl-tr?")
-

Property Details

-
- -
-

palette

- public ColorPalette palette -
- The Ext.ColorPalette instance for this ColorMenu
-
This property is defined by ColorMenu.
-
-
- - -

Constructor Details

-
-
-

ColorMenu

- public function ColorMenu(Object config) -
- Creates a new ColorMenu
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

add

- public function add(Mixed args) -
- Addds one or more items of any type supported by the Menu class, or that can be converted into menu items. -Any of the following are valid: -
    -
  • Any menu item object based on Ext.menu.Item
  • -
  • An HTMLElement object which will be converted to a menu item
  • -
  • A menu item config object that will be created as a new menu item
  • -
  • A string, which can either be '-' or 'separator' to add a menu separator, otherwise -it will be converted into a Ext.menu.TextItem and added
  • -
-Usage: -

-// Create the menu
-var menu = new Ext.menu.Menu();
-
-// Create a menu item to add by reference
-var menuItem = new Ext.menu.Item({ text: 'New Item!' });
-
-// Add a bunch of items at once using different methods.
-// Only the last item added will be returned.
-var item = menu.add(
-    menuItem,                // add existing item by ref
-    'Dynamic Item',          // new TextItem
-    '-',                     // new separator
-    { text: 'Config Item' }  // new item by config
-);
-
-
- Parameters: -
  • args : Mixed
    One or more menu items, menu item configs or other objects that can be converted to menu items
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added, or the last one if multiple items were added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

addElement

- public function addElement(String/HTMLElement/Ext.Element el) -
- Adds an Ext.Element object to the menu -
- Parameters: -
  • el : String/HTMLElement/Ext.Element
    The element or DOM node to add, or its id
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addItem

- public function addItem(Ext.menu.Item item) -
- Adds an existing object based on Ext.menu.Item to the menu -
- Parameters: -
  • item : Ext.menu.Item
    The menu item to add
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addMenuItem

- public function addMenuItem(Object config) -
- Creates a new Ext.menu.Item based an the supplied config object and adds it to the menu -
- Parameters: -
  • config : Object
    A MenuItem config object
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

addSeparator

- public function addSeparator() -
- Adds a separator bar to the menu -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

addText

- public function addText(String text) -
- Creates a new Ext.menu.TextItem with the supplied text and adds it to the menu -
- Parameters: -
  • text : String
    The text to display in the menu item
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getEl

- public function getEl() -
- Returns this menu's underlying Ext.Element object -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Menu.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide([Boolean deep]) -
- Hides this menu and optionally all parent menus -
- Parameters: -
  • deep : Boolean
    (optional) True to hide all parent menus recursively, if any (defaults to false)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

insert

- public function insert(Number index, Ext.menu.Item item) -
- Inserts an existing object based on Ext.menu.Item to the menu at a specified index -
- Parameters: -
  • index : Number
    The index in the menu's list of current items where the new item should be inserted
  • item : Ext.menu.Item
    The menu item to add
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

isVisible

- public function isVisible() -
- Read-only. Returns true if the menu is currently displayed, else false. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

remove

- public function remove(Ext.menu.Item item) -
- Removes an Ext.menu.Item from the menu and destroys the object -
- Parameters: -
  • item : Ext.menu.Item
    The menu item to remove
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

removeAll

- public function removeAll() -
- Removes and destroys all items in the menu -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

show

- public function show(String/HTMLElement/Ext.Element element, [String position], [Ext.menu.Menu parentMenu]) -
- Displays this menu relative to another element -
- Parameters: -
  • element : String/HTMLElement/Ext.Element
    The element to align to
  • position : String
    (optional) The Ext.Element.alignTo anchor position to use in aligning to the element (defaults to this.defaultAlign)
  • parentMenu : Ext.menu.Menu
    (optional) This menu's parent menu, if applicable (defaults to undefined)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

showAt

- public function showAt(Array xyPosition, [Ext.menu.Menu parentMenu]) -
- Displays this menu at a specific xy position -
- Parameters: -
  • xyPosition : Array
    Contains X & Y [x, y] values for the position at which to show the menu (coordinates are page-based)
  • parentMenu : Ext.menu.Menu
    (optional) This menu's parent menu, if applicable (defaults to undefined)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforehide

- public event beforehide -
- Fires before this menu is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
-
-
-
This event is defined by Menu.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before this menu is displayed -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
-
-
-
This event is defined by Menu.
-
- -
-

click

- public event click -
- Fires when this menu is clicked (or when the enter key is pressed while it is active) -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
  • menuItemId : String
    The id of the menu item that was clicked
  • e : Ext.EventObject
-
-
-
This event is defined by Menu.
-
- -
-

hide

- public event hide -
- Fires after this menu is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
-
-
-
This event is defined by Menu.
-
- -
-

itemclick

- public event itemclick -
- Fires when a menu item contained in this menu is clicked -
- Subscribers will be called with the following parameters: -
  • baseItem : Ext.menu.BaseItem
    The BaseItem that was clicked
  • e : Ext.EventObject
-
-
-
This event is defined by Menu.
-
- -
-

mouseout

- public event mouseout -
- Fires when the mouse exits this menu -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
  • e : Ext.EventObject
  • menuItemId : String
    The id of the menu item that the mouse has exited
-
-
-
This event is defined by Menu.
-
- -
-

mouseover

- public event mouseover -
- Fires when the mouse is hovering over this menu -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
  • e : Ext.EventObject
  • menuItemId : String
    The id of the menu item that the mouse is over
-
-
-
This event is defined by Menu.
-
- -
-

select

- public event select -
- -
- Subscribers will be called with the following parameters: -
  • palette : ColorPalette
  • color : String
-
-
-
This event is defined by ColorMenu.
-
- -
-

show

- public event show -
- Fires after this menu is displayed -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
-
-
-
This event is defined by Menu.
-
-
-

Config Details

-
- -
-

allowOtherMenus

- allowOtherMenus : Boolean -
- True to allow multiple menus to be displayed at the same time (defaults to false)
-
This config option is defined by Menu.
-
- -
-

defaultAlign

- defaultAlign : String -
- The default {@link Ext.Element#alignTo) anchor position value for this menu relative to its element of origin (defaults to "tl-bl?")
-
This config option is defined by Menu.
-
- -
-

minWidth

- minWidth : Number -
- The minimum width of the menu in pixels (defaults to 120)
-
This config option is defined by Menu.
-
- -
-

shadow

- shadow : Boolean/String -
- True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right shadow (defaults to "sides")
-
This config option is defined by Menu.
-
- -
-

subMenuAlign

- subMenuAlign : String -
- The {@link Ext.Element#alignTo) anchor position value to use for submenus of this menu (defaults to "tl-tr?")
-
This config option is defined by Menu.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.menu.DateItem.html b/www/extras/extjs/docs/output/Ext.menu.DateItem.html deleted file mode 100644 index 59a717822..000000000 --- a/www/extras/extjs/docs/output/Ext.menu.DateItem.html +++ /dev/null @@ -1,1016 +0,0 @@ - - - - Ext.menu.DateItem - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.menu.DateItem

- - - - - -
Package:Ext.menu
Class:DateItem
Extends:Adapter
Defined In:DateItem.js
-
- A menu item that wraps the Ext.DatPicker component.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 picker : Ext.DatePickerDateItem
The Ext.DatePicker object
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 DateItem(Object config)DateItem
Creates a new DateItem
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isVisible() : voidComponent
Returns true if this component is visible
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 activate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is activated
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 click : (Ext.menu.BaseItem this, Ext.EventObject e)BaseItem
Fires when this item is clicked
 deactivate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is deactivated
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 hide : (Ext.Component this)Component
Fires after the component is hidden
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 activeClass : StringBaseItem
The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
 canActivate : BooleanBaseItem
True if this item can be visually activated (defaults to false)
 handler : FunctionBaseItem
A function that will handle the click event of this menu item (defaults to undefined)
 hideDelay : NumberBaseItem
Length of time in milliseconds to wait before hiding after a click (defaults to 100)
 hideOnClick : BooleanBaseItem
True to hide the containing menu after this item is clicked (defaults to true)
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

picker

- public Ext.DatePicker picker -
- The Ext.DatePicker object
-
This property is defined by DateItem.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

DateItem

- public function DateItem(Object config) -
- Creates a new DateItem
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

activate

- public event activate -
- Fires when this item is activated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

click

- public event click -
- Fires when this item is clicked -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
  • e : Ext.EventObject
-
-
-
This event is defined by BaseItem.
-
- -
-

deactivate

- public event deactivate -
- Fires when this item is deactivated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
-
-

Config Details

-
- -
-

activeClass

- activeClass : String -
- The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
-
This config option is defined by BaseItem.
-
- -
-

canActivate

- canActivate : Boolean -
- True if this item can be visually activated (defaults to false)
-
This config option is defined by BaseItem.
-
- -
-

handler

- handler : Function -
- A function that will handle the click event of this menu item (defaults to undefined)
-
This config option is defined by BaseItem.
-
- -
-

hideDelay

- hideDelay : Number -
- Length of time in milliseconds to wait before hiding after a click (defaults to 100)
-
This config option is defined by BaseItem.
-
- -
-

hideOnClick

- hideOnClick : Boolean -
- True to hide the containing menu after this item is clicked (defaults to true)
-
This config option is defined by BaseItem.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.menu.DateMenu.html b/www/extras/extjs/docs/output/Ext.menu.DateMenu.html deleted file mode 100644 index 572668c7d..000000000 --- a/www/extras/extjs/docs/output/Ext.menu.DateMenu.html +++ /dev/null @@ -1,969 +0,0 @@ - - - - Ext.menu.DateMenu - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.menu.DateMenu

- - - - - -
Package:Ext.menu
Class:DateMenu
Extends:Menu
Defined In:DateMenu.js
-
- A menu containing a Ext.menu.DateItem component (which provides a date picker).
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - -
PropertyDefined By
 picker : DatePickerDateMenu
The Ext.DatePicker instance for this DateMenu
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 DateMenu(Object config)DateMenu
Creates a new DateMenu
 add(Mixed args) : Ext.menu.ItemMenu
Addds one or more items of any type supported by the Menu class, or that can be converted into menu items. -Any of the...
 addElement(String/HTMLElement/Ext.Element el) : Ext.menu.ItemMenu
Adds an Ext.Element object to the menu
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addItem(Ext.menu.Item item) : Ext.menu.ItemMenu
Adds an existing object based on Ext.menu.Item to the menu
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 addMenuItem(Object config) : Ext.menu.ItemMenu
Creates a new Ext.menu.Item based an the supplied config object and adds it to the menu
 addSeparator() : Ext.menu.ItemMenu
Adds a separator bar to the menu
 addText(String text) : Ext.menu.ItemMenu
Creates a new Ext.menu.TextItem with the supplied text and adds it to the menu
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getEl() : Ext.ElementMenu
Returns this menu's underlying Ext.Element object
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide([Boolean deep]) : voidMenu
Hides this menu and optionally all parent menus
 insert(Number index, Ext.menu.Item item) : Ext.menu.ItemMenu
Inserts an existing object based on Ext.menu.Item to the menu at a specified index
 isVisible() : voidMenu
Read-only. Returns true if the menu is currently displayed, else false.
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 remove(Ext.menu.Item item) : voidMenu
Removes an Ext.menu.Item from the menu and destroys the object
 removeAll() : voidMenu
Removes and destroys all items in the menu
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 show(String/HTMLElement/Ext.Element element, [String position], [Ext.menu.Menu parentMenu]) : voidMenu
Displays this menu relative to another element
 showAt(Array xyPosition, [Ext.menu.Menu parentMenu]) : voidMenu
Displays this menu at a specific xy position
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforehide : (Ext.menu.Menu this)Menu
Fires before this menu is hidden
 beforeshow : (Ext.menu.Menu this)Menu
Fires before this menu is displayed
 click : (Ext.menu.Menu this, String menuItemId, Ext.EventObject e)Menu
Fires when this menu is clicked (or when the enter key is pressed while it is active)
 hide : (Ext.menu.Menu this)Menu
Fires after this menu is hidden
 itemclick : (Ext.menu.BaseItem baseItem, Ext.EventObject e)Menu
Fires when a menu item contained in this menu is clicked
 mouseout : (Ext.menu.Menu this, Ext.EventObject e, String menuItemId)Menu
Fires when the mouse exits this menu
 mouseover : (Ext.menu.Menu this, Ext.EventObject e, String menuItemId)Menu
Fires when the mouse is hovering over this menu
 select : (DatePicker picker, Date date)DateMenu
 show : (Ext.menu.Menu this)Menu
Fires after this menu is displayed
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 allowOtherMenus : BooleanMenu
True to allow multiple menus to be displayed at the same time (defaults to false)
 defaultAlign : StringMenu
The default {@link Ext.Element#alignTo) anchor position value for this menu relative to its element of origin (defaul...
 minWidth : NumberMenu
The minimum width of the menu in pixels (defaults to 120)
 shadow : Boolean/StringMenu
True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right shadow (defaults to "si...
 subMenuAlign : StringMenu
The {@link Ext.Element#alignTo) anchor position value to use for submenus of this menu (defaults to "tl-tr?")
-

Property Details

-
- -
-

picker

- public DatePicker picker -
- The Ext.DatePicker instance for this DateMenu
-
This property is defined by DateMenu.
-
-
- - -

Constructor Details

-
-
-

DateMenu

- public function DateMenu(Object config) -
- Creates a new DateMenu
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

add

- public function add(Mixed args) -
- Addds one or more items of any type supported by the Menu class, or that can be converted into menu items. -Any of the following are valid: -
    -
  • Any menu item object based on Ext.menu.Item
  • -
  • An HTMLElement object which will be converted to a menu item
  • -
  • A menu item config object that will be created as a new menu item
  • -
  • A string, which can either be '-' or 'separator' to add a menu separator, otherwise -it will be converted into a Ext.menu.TextItem and added
  • -
-Usage: -

-// Create the menu
-var menu = new Ext.menu.Menu();
-
-// Create a menu item to add by reference
-var menuItem = new Ext.menu.Item({ text: 'New Item!' });
-
-// Add a bunch of items at once using different methods.
-// Only the last item added will be returned.
-var item = menu.add(
-    menuItem,                // add existing item by ref
-    'Dynamic Item',          // new TextItem
-    '-',                     // new separator
-    { text: 'Config Item' }  // new item by config
-);
-
-
- Parameters: -
  • args : Mixed
    One or more menu items, menu item configs or other objects that can be converted to menu items
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added, or the last one if multiple items were added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

addElement

- public function addElement(String/HTMLElement/Ext.Element el) -
- Adds an Ext.Element object to the menu -
- Parameters: -
  • el : String/HTMLElement/Ext.Element
    The element or DOM node to add, or its id
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addItem

- public function addItem(Ext.menu.Item item) -
- Adds an existing object based on Ext.menu.Item to the menu -
- Parameters: -
  • item : Ext.menu.Item
    The menu item to add
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addMenuItem

- public function addMenuItem(Object config) -
- Creates a new Ext.menu.Item based an the supplied config object and adds it to the menu -
- Parameters: -
  • config : Object
    A MenuItem config object
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

addSeparator

- public function addSeparator() -
- Adds a separator bar to the menu -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

addText

- public function addText(String text) -
- Creates a new Ext.menu.TextItem with the supplied text and adds it to the menu -
- Parameters: -
  • text : String
    The text to display in the menu item
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getEl

- public function getEl() -
- Returns this menu's underlying Ext.Element object -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Menu.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide([Boolean deep]) -
- Hides this menu and optionally all parent menus -
- Parameters: -
  • deep : Boolean
    (optional) True to hide all parent menus recursively, if any (defaults to false)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

insert

- public function insert(Number index, Ext.menu.Item item) -
- Inserts an existing object based on Ext.menu.Item to the menu at a specified index -
- Parameters: -
  • index : Number
    The index in the menu's list of current items where the new item should be inserted
  • item : Ext.menu.Item
    The menu item to add
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

isVisible

- public function isVisible() -
- Read-only. Returns true if the menu is currently displayed, else false. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

remove

- public function remove(Ext.menu.Item item) -
- Removes an Ext.menu.Item from the menu and destroys the object -
- Parameters: -
  • item : Ext.menu.Item
    The menu item to remove
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

removeAll

- public function removeAll() -
- Removes and destroys all items in the menu -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

show

- public function show(String/HTMLElement/Ext.Element element, [String position], [Ext.menu.Menu parentMenu]) -
- Displays this menu relative to another element -
- Parameters: -
  • element : String/HTMLElement/Ext.Element
    The element to align to
  • position : String
    (optional) The Ext.Element.alignTo anchor position to use in aligning to the element (defaults to this.defaultAlign)
  • parentMenu : Ext.menu.Menu
    (optional) This menu's parent menu, if applicable (defaults to undefined)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

showAt

- public function showAt(Array xyPosition, [Ext.menu.Menu parentMenu]) -
- Displays this menu at a specific xy position -
- Parameters: -
  • xyPosition : Array
    Contains X & Y [x, y] values for the position at which to show the menu (coordinates are page-based)
  • parentMenu : Ext.menu.Menu
    (optional) This menu's parent menu, if applicable (defaults to undefined)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforehide

- public event beforehide -
- Fires before this menu is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
-
-
-
This event is defined by Menu.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before this menu is displayed -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
-
-
-
This event is defined by Menu.
-
- -
-

click

- public event click -
- Fires when this menu is clicked (or when the enter key is pressed while it is active) -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
  • menuItemId : String
    The id of the menu item that was clicked
  • e : Ext.EventObject
-
-
-
This event is defined by Menu.
-
- -
-

hide

- public event hide -
- Fires after this menu is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
-
-
-
This event is defined by Menu.
-
- -
-

itemclick

- public event itemclick -
- Fires when a menu item contained in this menu is clicked -
- Subscribers will be called with the following parameters: -
  • baseItem : Ext.menu.BaseItem
    The BaseItem that was clicked
  • e : Ext.EventObject
-
-
-
This event is defined by Menu.
-
- -
-

mouseout

- public event mouseout -
- Fires when the mouse exits this menu -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
  • e : Ext.EventObject
  • menuItemId : String
    The id of the menu item that the mouse has exited
-
-
-
This event is defined by Menu.
-
- -
-

mouseover

- public event mouseover -
- Fires when the mouse is hovering over this menu -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
  • e : Ext.EventObject
  • menuItemId : String
    The id of the menu item that the mouse is over
-
-
-
This event is defined by Menu.
-
- -
-

select

- public event select -
- -
- Subscribers will be called with the following parameters: -
  • picker : DatePicker
  • date : Date
-
-
-
This event is defined by DateMenu.
-
- -
-

show

- public event show -
- Fires after this menu is displayed -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
-
-
-
This event is defined by Menu.
-
-
-

Config Details

-
- -
-

allowOtherMenus

- allowOtherMenus : Boolean -
- True to allow multiple menus to be displayed at the same time (defaults to false)
-
This config option is defined by Menu.
-
- -
-

defaultAlign

- defaultAlign : String -
- The default {@link Ext.Element#alignTo) anchor position value for this menu relative to its element of origin (defaults to "tl-bl?")
-
This config option is defined by Menu.
-
- -
-

minWidth

- minWidth : Number -
- The minimum width of the menu in pixels (defaults to 120)
-
This config option is defined by Menu.
-
- -
-

shadow

- shadow : Boolean/String -
- True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right shadow (defaults to "sides")
-
This config option is defined by Menu.
-
- -
-

subMenuAlign

- subMenuAlign : String -
- The {@link Ext.Element#alignTo) anchor position value to use for submenus of this menu (defaults to "tl-tr?")
-
This config option is defined by Menu.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.menu.Item.html b/www/extras/extjs/docs/output/Ext.menu.Item.html deleted file mode 100644 index 574fa256b..000000000 --- a/www/extras/extjs/docs/output/Ext.menu.Item.html +++ /dev/null @@ -1,1060 +0,0 @@ - - - - Ext.menu.Item - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.menu.Item

- - - - - - -
Package:Ext.menu
Class:Item
Extends:BaseItem
Subclasses:CheckItem
Defined In:Item.js
-
- A base class for all menu items that require menu-related functionality (like sub-menus) and are not static -display items. Item extends the base functionality of Ext.menu.BaseItem by adding menu-specific -activation and click handling.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Item(Object config)Item
Creates a new Item
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isVisible() : voidComponent
Returns true if this component is visible
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setText(String text) : voidItem
Sets the text to display in this menu item
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 activate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is activated
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 click : (Ext.menu.BaseItem this, Ext.EventObject e)BaseItem
Fires when this item is clicked
 deactivate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is deactivated
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 hide : (Ext.Component this)Component
Fires after the component is hidden
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 activeClass : StringBaseItem
The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
 canActivate : BooleanItem
True if this item can be visually activated (defaults to true)
 handler : FunctionBaseItem
A function that will handle the click event of this menu item (defaults to undefined)
 hideDelay : NumberBaseItem
Length of time in milliseconds to wait before hiding after a click (defaults to 100)
 hideOnClick : BooleanBaseItem
True to hide the containing menu after this item is clicked (defaults to true)
 icon : StringItem
The path to an icon to display in this menu item (defaults to Ext.BLANK_IMAGE_URL)
 itemCls : StringItem
The default CSS class to use for menu items (defaults to "x-menu-item")
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

Item

- public function Item(Object config) -
- Creates a new Item
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setText

- public function setText(String text) -
- Sets the text to display in this menu item -
- Parameters: -
  • text : String
    The text to display
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Item.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

activate

- public event activate -
- Fires when this item is activated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

click

- public event click -
- Fires when this item is clicked -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
  • e : Ext.EventObject
-
-
-
This event is defined by BaseItem.
-
- -
-

deactivate

- public event deactivate -
- Fires when this item is deactivated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
-
-

Config Details

-
- -
-

activeClass

- activeClass : String -
- The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
-
This config option is defined by BaseItem.
-
- -
-

canActivate

- canActivate : Boolean -
- True if this item can be visually activated (defaults to true)
-
This config option is defined by Item.
-
- -
-

handler

- handler : Function -
- A function that will handle the click event of this menu item (defaults to undefined)
-
This config option is defined by BaseItem.
-
- -
-

hideDelay

- hideDelay : Number -
- Length of time in milliseconds to wait before hiding after a click (defaults to 100)
-
This config option is defined by BaseItem.
-
- -
-

hideOnClick

- hideOnClick : Boolean -
- True to hide the containing menu after this item is clicked (defaults to true)
-
This config option is defined by BaseItem.
-
- -
-

icon

- icon : String -
- The path to an icon to display in this menu item (defaults to Ext.BLANK_IMAGE_URL)
-
This config option is defined by Item.
-
- -
-

itemCls

- itemCls : String -
- The default CSS class to use for menu items (defaults to "x-menu-item")
-
This config option is defined by Item.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.menu.Menu.html b/www/extras/extjs/docs/output/Ext.menu.Menu.html deleted file mode 100644 index 193d098ff..000000000 --- a/www/extras/extjs/docs/output/Ext.menu.Menu.html +++ /dev/null @@ -1,925 +0,0 @@ - - - - Ext.menu.Menu - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.menu.Menu

- - - - - - -
Package:Ext.menu
Class:Menu
Extends:Observable
Subclasses:ColorMenu, DateMenu
Defined In:Menu.js
-
- A menu object. This is the container to which you add all other menu items. Menu can also serve a as a base class -when you want a specialzed menu based off of another component (like Ext.menu.DateMenu for example).
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Menu(Object config)Menu
Creates a new Menu
 add(Mixed args) : Ext.menu.ItemMenu
Addds one or more items of any type supported by the Menu class, or that can be converted into menu items. -Any of the...
 addElement(String/HTMLElement/Ext.Element el) : Ext.menu.ItemMenu
Adds an Ext.Element object to the menu
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addItem(Ext.menu.Item item) : Ext.menu.ItemMenu
Adds an existing object based on Ext.menu.Item to the menu
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 addMenuItem(Object config) : Ext.menu.ItemMenu
Creates a new Ext.menu.Item based an the supplied config object and adds it to the menu
 addSeparator() : Ext.menu.ItemMenu
Adds a separator bar to the menu
 addText(String text) : Ext.menu.ItemMenu
Creates a new Ext.menu.TextItem with the supplied text and adds it to the menu
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getEl() : Ext.ElementMenu
Returns this menu's underlying Ext.Element object
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide([Boolean deep]) : voidMenu
Hides this menu and optionally all parent menus
 insert(Number index, Ext.menu.Item item) : Ext.menu.ItemMenu
Inserts an existing object based on Ext.menu.Item to the menu at a specified index
 isVisible() : voidMenu
Read-only. Returns true if the menu is currently displayed, else false.
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 remove(Ext.menu.Item item) : voidMenu
Removes an Ext.menu.Item from the menu and destroys the object
 removeAll() : voidMenu
Removes and destroys all items in the menu
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 show(String/HTMLElement/Ext.Element element, [String position], [Ext.menu.Menu parentMenu]) : voidMenu
Displays this menu relative to another element
 showAt(Array xyPosition, [Ext.menu.Menu parentMenu]) : voidMenu
Displays this menu at a specific xy position
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforehide : (Ext.menu.Menu this)Menu
Fires before this menu is hidden
 beforeshow : (Ext.menu.Menu this)Menu
Fires before this menu is displayed
 click : (Ext.menu.Menu this, String menuItemId, Ext.EventObject e)Menu
Fires when this menu is clicked (or when the enter key is pressed while it is active)
 hide : (Ext.menu.Menu this)Menu
Fires after this menu is hidden
 itemclick : (Ext.menu.BaseItem baseItem, Ext.EventObject e)Menu
Fires when a menu item contained in this menu is clicked
 mouseout : (Ext.menu.Menu this, Ext.EventObject e, String menuItemId)Menu
Fires when the mouse exits this menu
 mouseover : (Ext.menu.Menu this, Ext.EventObject e, String menuItemId)Menu
Fires when the mouse is hovering over this menu
 show : (Ext.menu.Menu this)Menu
Fires after this menu is displayed
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 allowOtherMenus : BooleanMenu
True to allow multiple menus to be displayed at the same time (defaults to false)
 defaultAlign : StringMenu
The default {@link Ext.Element#alignTo) anchor position value for this menu relative to its element of origin (defaul...
 minWidth : NumberMenu
The minimum width of the menu in pixels (defaults to 120)
 shadow : Boolean/StringMenu
True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right shadow (defaults to "si...
 subMenuAlign : StringMenu
The {@link Ext.Element#alignTo) anchor position value to use for submenus of this menu (defaults to "tl-tr?")
- - -

Constructor Details

-
-
-

Menu

- public function Menu(Object config) -
- Creates a new Menu
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

add

- public function add(Mixed args) -
- Addds one or more items of any type supported by the Menu class, or that can be converted into menu items. -Any of the following are valid: -
    -
  • Any menu item object based on Ext.menu.Item
  • -
  • An HTMLElement object which will be converted to a menu item
  • -
  • A menu item config object that will be created as a new menu item
  • -
  • A string, which can either be '-' or 'separator' to add a menu separator, otherwise -it will be converted into a Ext.menu.TextItem and added
  • -
-Usage: -

-// Create the menu
-var menu = new Ext.menu.Menu();
-
-// Create a menu item to add by reference
-var menuItem = new Ext.menu.Item({ text: 'New Item!' });
-
-// Add a bunch of items at once using different methods.
-// Only the last item added will be returned.
-var item = menu.add(
-    menuItem,                // add existing item by ref
-    'Dynamic Item',          // new TextItem
-    '-',                     // new separator
-    { text: 'Config Item' }  // new item by config
-);
-
-
- Parameters: -
  • args : Mixed
    One or more menu items, menu item configs or other objects that can be converted to menu items
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added, or the last one if multiple items were added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

addElement

- public function addElement(String/HTMLElement/Ext.Element el) -
- Adds an Ext.Element object to the menu -
- Parameters: -
  • el : String/HTMLElement/Ext.Element
    The element or DOM node to add, or its id
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addItem

- public function addItem(Ext.menu.Item item) -
- Adds an existing object based on Ext.menu.Item to the menu -
- Parameters: -
  • item : Ext.menu.Item
    The menu item to add
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addMenuItem

- public function addMenuItem(Object config) -
- Creates a new Ext.menu.Item based an the supplied config object and adds it to the menu -
- Parameters: -
  • config : Object
    A MenuItem config object
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

addSeparator

- public function addSeparator() -
- Adds a separator bar to the menu -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

addText

- public function addText(String text) -
- Creates a new Ext.menu.TextItem with the supplied text and adds it to the menu -
- Parameters: -
  • text : String
    The text to display in the menu item
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getEl

- public function getEl() -
- Returns this menu's underlying Ext.Element object -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Menu.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide([Boolean deep]) -
- Hides this menu and optionally all parent menus -
- Parameters: -
  • deep : Boolean
    (optional) True to hide all parent menus recursively, if any (defaults to false)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

insert

- public function insert(Number index, Ext.menu.Item item) -
- Inserts an existing object based on Ext.menu.Item to the menu at a specified index -
- Parameters: -
  • index : Number
    The index in the menu's list of current items where the new item should be inserted
  • item : Ext.menu.Item
    The menu item to add
- Returns: -
    -
  • Ext.menu.Item
    The menu item that was added
  • -
-
-
-
This method is defined by Menu.
-
- -
-

isVisible

- public function isVisible() -
- Read-only. Returns true if the menu is currently displayed, else false. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

remove

- public function remove(Ext.menu.Item item) -
- Removes an Ext.menu.Item from the menu and destroys the object -
- Parameters: -
  • item : Ext.menu.Item
    The menu item to remove
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

removeAll

- public function removeAll() -
- Removes and destroys all items in the menu -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

show

- public function show(String/HTMLElement/Ext.Element element, [String position], [Ext.menu.Menu parentMenu]) -
- Displays this menu relative to another element -
- Parameters: -
  • element : String/HTMLElement/Ext.Element
    The element to align to
  • position : String
    (optional) The Ext.Element.alignTo anchor position to use in aligning to the element (defaults to this.defaultAlign)
  • parentMenu : Ext.menu.Menu
    (optional) This menu's parent menu, if applicable (defaults to undefined)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

showAt

- public function showAt(Array xyPosition, [Ext.menu.Menu parentMenu]) -
- Displays this menu at a specific xy position -
- Parameters: -
  • xyPosition : Array
    Contains X & Y [x, y] values for the position at which to show the menu (coordinates are page-based)
  • parentMenu : Ext.menu.Menu
    (optional) This menu's parent menu, if applicable (defaults to undefined)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Menu.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

beforehide

- public event beforehide -
- Fires before this menu is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
-
-
-
This event is defined by Menu.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before this menu is displayed -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
-
-
-
This event is defined by Menu.
-
- -
-

click

- public event click -
- Fires when this menu is clicked (or when the enter key is pressed while it is active) -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
  • menuItemId : String
    The id of the menu item that was clicked
  • e : Ext.EventObject
-
-
-
This event is defined by Menu.
-
- -
-

hide

- public event hide -
- Fires after this menu is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
-
-
-
This event is defined by Menu.
-
- -
-

itemclick

- public event itemclick -
- Fires when a menu item contained in this menu is clicked -
- Subscribers will be called with the following parameters: -
  • baseItem : Ext.menu.BaseItem
    The BaseItem that was clicked
  • e : Ext.EventObject
-
-
-
This event is defined by Menu.
-
- -
-

mouseout

- public event mouseout -
- Fires when the mouse exits this menu -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
  • e : Ext.EventObject
  • menuItemId : String
    The id of the menu item that the mouse has exited
-
-
-
This event is defined by Menu.
-
- -
-

mouseover

- public event mouseover -
- Fires when the mouse is hovering over this menu -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
  • e : Ext.EventObject
  • menuItemId : String
    The id of the menu item that the mouse is over
-
-
-
This event is defined by Menu.
-
- -
-

show

- public event show -
- Fires after this menu is displayed -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.Menu
-
-
-
This event is defined by Menu.
-
-
-

Config Details

-
- -
-

allowOtherMenus

- allowOtherMenus : Boolean -
- True to allow multiple menus to be displayed at the same time (defaults to false)
-
This config option is defined by Menu.
-
- -
-

defaultAlign

- defaultAlign : String -
- The default {@link Ext.Element#alignTo) anchor position value for this menu relative to its element of origin (defaults to "tl-bl?")
-
This config option is defined by Menu.
-
- -
-

minWidth

- minWidth : Number -
- The minimum width of the menu in pixels (defaults to 120)
-
This config option is defined by Menu.
-
- -
-

shadow

- shadow : Boolean/String -
- True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right shadow (defaults to "sides")
-
This config option is defined by Menu.
-
- -
-

subMenuAlign

- subMenuAlign : String -
- The {@link Ext.Element#alignTo) anchor position value to use for submenus of this menu (defaults to "tl-tr?")
-
This config option is defined by Menu.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.menu.MenuMgr.html b/www/extras/extjs/docs/output/Ext.menu.MenuMgr.html deleted file mode 100644 index 620f353fd..000000000 --- a/www/extras/extjs/docs/output/Ext.menu.MenuMgr.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - Ext.menu.MenuMgr - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.menu.MenuMgr

- - - - - -
Package:Ext.menu
Class:MenuMgr
Extends:Object
Defined In:MenuMgr.js
-
- Provides a common registry of all menu items on a page so that they can be easily accessed by id.

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 get(String/Object menu) : voidMenuMgr
Returns a Ext.menu.Menu object
 hideAll() : voidMenuMgr
Hides all menus that are currently visible
- -

Public Events

-
This class has no public events.
- -

Method Details

-
- -
-

get

- public function get(String/Object menu) -
- Returns a Ext.menu.Menu object -
- Parameters: -
  • menu : String/Object
    The string menu id, an existing menu object reference, or a Menu config that will be used to generate and return a new Menu instance.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MenuMgr.
-
- -
-

hideAll

- public function hideAll() -
- Hides all menus that are currently visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MenuMgr.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.menu.Separator.html b/www/extras/extjs/docs/output/Ext.menu.Separator.html deleted file mode 100644 index dc25c45d1..000000000 --- a/www/extras/extjs/docs/output/Ext.menu.Separator.html +++ /dev/null @@ -1,1017 +0,0 @@ - - - - Ext.menu.Separator - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.menu.Separator

- - - - - -
Package:Ext.menu
Class:Separator
Extends:BaseItem
Defined In:Separator.js
-
- Adds a separator bar to a menu, used to divide logical groups of menu items. Generally you will -add one of these by using "-" in you call to add() or in your items config rather than creating one directly.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Separator(Object config)Separator
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isVisible() : voidComponent
Returns true if this component is visible
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 activate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is activated
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 click : (Ext.menu.BaseItem this, Ext.EventObject e)BaseItem
Fires when this item is clicked
 deactivate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is deactivated
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 hide : (Ext.Component this)Component
Fires after the component is hidden
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 activeClass : StringBaseItem
The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
 canActivate : BooleanBaseItem
True if this item can be visually activated (defaults to false)
 handler : FunctionBaseItem
A function that will handle the click event of this menu item (defaults to undefined)
 hideDelay : NumberBaseItem
Length of time in milliseconds to wait before hiding after a click (defaults to 100)
 hideOnClick : BooleanSeparator
True to hide the containing menu after this item is clicked (defaults to false)
 itemCls : StringSeparator
The default CSS class to use for separators (defaults to "x-menu-sep")
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

Separator

- public function Separator(Object config) -
-
- Parameters: -
  • config : Object
    Configuration options
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

activate

- public event activate -
- Fires when this item is activated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

click

- public event click -
- Fires when this item is clicked -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
  • e : Ext.EventObject
-
-
-
This event is defined by BaseItem.
-
- -
-

deactivate

- public event deactivate -
- Fires when this item is deactivated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
-
-

Config Details

-
- -
-

activeClass

- activeClass : String -
- The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
-
This config option is defined by BaseItem.
-
- -
-

canActivate

- canActivate : Boolean -
- True if this item can be visually activated (defaults to false)
-
This config option is defined by BaseItem.
-
- -
-

handler

- handler : Function -
- A function that will handle the click event of this menu item (defaults to undefined)
-
This config option is defined by BaseItem.
-
- -
-

hideDelay

- hideDelay : Number -
- Length of time in milliseconds to wait before hiding after a click (defaults to 100)
-
This config option is defined by BaseItem.
-
- -
-

hideOnClick

- hideOnClick : Boolean -
- True to hide the containing menu after this item is clicked (defaults to false)
-
This config option is defined by Separator.
-
- -
-

itemCls

- itemCls : String -
- The default CSS class to use for separators (defaults to "x-menu-sep")
-
This config option is defined by Separator.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.menu.TextItem.html b/www/extras/extjs/docs/output/Ext.menu.TextItem.html deleted file mode 100644 index 2b1733f40..000000000 --- a/www/extras/extjs/docs/output/Ext.menu.TextItem.html +++ /dev/null @@ -1,1016 +0,0 @@ - - - - Ext.menu.TextItem - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.menu.TextItem

- - - - - -
Package:Ext.menu
Class:TextItem
Extends:BaseItem
Defined In:TextItem.js
-
- Adds a static text string to a menu, usually used as either a heading or group separator.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 disabled : ObjectComponent
true if this component is disabled. Read-only.
 disabledClass : ObjectComponent
CSS class added to the component when it is disabled.
 hidden : ObjectComponent
true if this component is hidden. Read-only.
 rendered : ObjectComponent
true if this component has been rendered. Read-only.
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 TextItem(String text)TextItem
Creates a new TextItem
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 disable() : voidComponent
Disable this component
 enable() : voidComponent
Enable this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 focus(Boolean selectText) : voidComponent
Try to focus this component
 getEl() : Ext.ElementComponent
Returns the underlying Ext.Element
 getId() : StringComponent
Returns the id of this component
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 hide() : voidComponent
Hide this component
 isVisible() : voidComponent
Returns true if this component is visible
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render([String/HTMLElement/Element container]) : voidComponent
If this is a lazy rendering component, render it to its container element
 setDisabled(Boolean disabled) : voidComponent
Convenience function for setting disabled/enabled by boolean
 setVisible(Boolean visible) : voidComponent
Convenience function to hide or show this component by boolean
 show() : voidComponent
Show this component
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 activate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is activated
 beforedestroy : (Ext.Component this)Component
Fires before the component is destroyed
 beforehide : (Ext.Component this)Component
Fires before the component is hidden
 beforerender : (Ext.Component this)Component
Fires before the component is rendered
 beforeshow : (Ext.Component this)Component
Fires before the component is shown
 click : (Ext.menu.BaseItem this, Ext.EventObject e)BaseItem
Fires when this item is clicked
 deactivate : (Ext.menu.BaseItem this)BaseItem
Fires when this item is deactivated
 destroy : (Ext.Component this)Component
Fires after the component is destroyed
 disable : (Ext.Component this)Component
Fires after the component is disabled
 enable : (Ext.Component this)Component
Fires after the component is enabled
 hide : (Ext.Component this)Component
Fires after the component is hidden
 render : (Ext.Component this)Component
Fires after the component is rendered
 show : (Ext.Component this)Component
Fires after the component is shown
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 activeClass : StringBaseItem
The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
 canActivate : BooleanBaseItem
True if this item can be visually activated (defaults to false)
 handler : FunctionBaseItem
A function that will handle the click event of this menu item (defaults to undefined)
 hideDelay : NumberBaseItem
Length of time in milliseconds to wait before hiding after a click (defaults to 100)
 hideOnClick : BooleanTextItem
True to hide the containing menu after this item is clicked (defaults to false)
 itemCls : StringTextItem
The default CSS class to use for text items (defaults to "x-menu-text")
-

Property Details

-
- -
-

disabled

- public Object disabled -
- true if this component is disabled. Read-only.
-
This property is defined by Component.
-
- -
-

disabledClass

- public Object disabledClass -
- CSS class added to the component when it is disabled.
-
This property is defined by Component.
-
- -
-

hidden

- public Object hidden -
- true if this component is hidden. Read-only.
-
This property is defined by Component.
-
- -
-

rendered

- public Object rendered -
- true if this component has been rendered. Read-only.
-
This property is defined by Component.
-
-
- - -

Constructor Details

-
-
-

TextItem

- public function TextItem(String text) -
- Creates a new TextItem
- Parameters: -
  • text : String
    The text to display
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

disable

- public function disable() -
- Disable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

enable

- public function enable() -
- Enable this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

focus

- public function focus(Boolean selectText) -
- Try to focus this component -
- Parameters: -
  • selectText : Boolean
    True to also select the text in this component (if applicable)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

getEl

- public function getEl() -
- Returns the underlying Ext.Element -
- Parameters: -
  • None.
- Returns: -
    -
  • Ext.Element
    The element
  • -
-
-
-
This method is defined by Component.
-
- -
-

getId

- public function getId() -
- Returns the id of this component -
- Parameters: -
  • None.
- Returns: -
    -
  • String
  • -
-
-
-
This method is defined by Component.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hide

- public function hide() -
- Hide this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

isVisible

- public function isVisible() -
- Returns true if this component is visible -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render([String/HTMLElement/Element container]) -
- If this is a lazy rendering component, render it to its container element -
- Parameters: -
  • container : String/HTMLElement/Element
    (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setDisabled

- public function setDisabled(Boolean disabled) -
- Convenience function for setting disabled/enabled by boolean -
- Parameters: -
  • disabled : Boolean
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

setVisible

- public function setVisible(Boolean visible) -
- Convenience function to hide or show this component by boolean -
- Parameters: -
  • visible : Boolean
    True to show, false to hide
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

show

- public function show() -
- Show this component -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Component.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

activate

- public event activate -
- Fires when this item is activated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

beforedestroy

- public event beforedestroy -
- Fires before the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforehide

- public event beforehide -
- Fires before the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforerender

- public event beforerender -
- Fires before the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

beforeshow

- public event beforeshow -
- Fires before the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

click

- public event click -
- Fires when this item is clicked -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
  • e : Ext.EventObject
-
-
-
This event is defined by BaseItem.
-
- -
-

deactivate

- public event deactivate -
- Fires when this item is deactivated -
- Subscribers will be called with the following parameters: -
  • this : Ext.menu.BaseItem
-
-
-
This event is defined by BaseItem.
-
- -
-

destroy

- public event destroy -
- Fires after the component is destroyed -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

disable

- public event disable -
- Fires after the component is disabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

enable

- public event enable -
- Fires after the component is enabled -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

hide

- public event hide -
- Fires after the component is hidden -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

render

- public event render -
- Fires after the component is rendered -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
- -
-

show

- public event show -
- Fires after the component is shown -
- Subscribers will be called with the following parameters: -
  • this : Ext.Component
-
-
-
This event is defined by Component.
-
-
-

Config Details

-
- -
-

activeClass

- activeClass : String -
- The CSS class to use when the item becomes activated (defaults to "x-menu-item-active")
-
This config option is defined by BaseItem.
-
- -
-

canActivate

- canActivate : Boolean -
- True if this item can be visually activated (defaults to false)
-
This config option is defined by BaseItem.
-
- -
-

handler

- handler : Function -
- A function that will handle the click event of this menu item (defaults to undefined)
-
This config option is defined by BaseItem.
-
- -
-

hideDelay

- hideDelay : Number -
- Length of time in milliseconds to wait before hiding after a click (defaults to 100)
-
This config option is defined by BaseItem.
-
- -
-

hideOnClick

- hideOnClick : Boolean -
- True to hide the containing menu after this item is clicked (defaults to false)
-
This config option is defined by TextItem.
-
- -
-

itemCls

- itemCls : String -
- The default CSS class to use for text items (defaults to "x-menu-text")
-
This config option is defined by TextItem.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.state.CookieProvider.html b/www/extras/extjs/docs/output/Ext.state.CookieProvider.html deleted file mode 100644 index 53d3c8ba0..000000000 --- a/www/extras/extjs/docs/output/Ext.state.CookieProvider.html +++ /dev/null @@ -1,314 +0,0 @@ - - - - Ext.state.CookieProvider - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.state.CookieProvider

- - - - - -
Package:Ext.state
Class:CookieProvider
Extends:Provider
Defined In:State.js
-
- The default Provider implementation which saves state via cookies. -
Usage: -
var cp = new Ext.state.CookieProvider({
-       path: "/cgi-bin/",
-       expires: new Date(new Date().getTime()+(1000*60*60*24*30)); //30 days
-       domain: "extjs.com"
-   })
-   Ext.state.Manager.setProvider(cp);
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 CookieProvider(Object config)CookieProvider
Create a new CookieProvider
 clear(String name) : voidProvider
Clears a value from the state
 decodeValue(String value) : MixedProvider
Decodes a string previously encoded with encodeValue.
 encodeValue(Mixed value) : StringProvider
Encodes a value including type information. Decode with decodeValue.
 get(String name, Mixed defaultValue) : MixedProvider
Returns the current value for a key
 set(String name, Mixed value) : voidProvider
Sets the value for a key
- -

Public Events

- - - - - - - - - - - - - -
EventDefined By
 statechange : (Provider this, String key, String value)Provider
Fires when a state change occurs.
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 domain : StringCookieProvider
The domain to save the cookie for. Note that you cannot specify a different domain than your page is on, but you can ...
 expires : DateCookieProvider
The cookie expiration date (defaults to 7 days from now)
 path : StringCookieProvider
The path for which the cookie is active (defaults to root '/' which makes it active for all pages in the site)
 secure : BooleanCookieProvider
True if the site is using SSL (defaults to false)
- - -

Constructor Details

-
-
-

CookieProvider

- public function CookieProvider(Object config) -
- Create a new CookieProvider
- Parameters: -
  • config : Object
    The configuration object
-
-
-
-
- -

Method Details

-
- -
-

clear

- public function clear(String name) -
- Clears a value from the state -
- Parameters: -
  • name : String
    The key name
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Provider.
-
- -
-

decodeValue

- public function decodeValue(String value) -
- Decodes a string previously encoded with encodeValue. -
- Parameters: -
  • value : String
    The value to decode
- Returns: -
    -
  • Mixed
    The decoded value
  • -
-
-
-
This method is defined by Provider.
-
- -
-

encodeValue

- public function encodeValue(Mixed value) -
- Encodes a value including type information. Decode with decodeValue. -
- Parameters: -
  • value : Mixed
    The value to encode
- Returns: -
    -
  • String
    The encoded value
  • -
-
-
-
This method is defined by Provider.
-
- -
-

get

- public function get(String name, Mixed defaultValue) -
- Returns the current value for a key -
- Parameters: -
  • name : String
    The key name
  • defaultValue : Mixed
    A default value to return if the key's value is not found
- Returns: -
    -
  • Mixed
    The state data
  • -
-
-
-
This method is defined by Provider.
-
- -
-

set

- public function set(String name, Mixed value) -
- Sets the value for a key -
- Parameters: -
  • name : String
    The key name
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Provider.
-
-
- -

Event Details

-
- -
-

statechange

- public event statechange -
- Fires when a state change occurs. -
- Subscribers will be called with the following parameters: -
  • this : Provider
    This state provider
  • key : String
    The state key which was changed
  • value : String
    The encoded value for the state
-
-
-
This event is defined by Provider.
-
-
-

Config Details

-
- -
-

domain

- domain : String -
- The domain to save the cookie for. Note that you cannot specify a different domain than your page is on, but you can specify a sub-domain, or simply the domain itself like 'extjs.com' to include all sub-domains if you need to access cookies across different sub-domains (defaults to null which uses the same domain the page is running on including the 'www' like 'www.extjs.com')
-
This config option is defined by CookieProvider.
-
- -
-

expires

- expires : Date -
- The cookie expiration date (defaults to 7 days from now)
-
This config option is defined by CookieProvider.
-
- -
-

path

- path : String -
- The path for which the cookie is active (defaults to root '/' which makes it active for all pages in the site)
-
This config option is defined by CookieProvider.
-
- -
-

secure

- secure : Boolean -
- True if the site is using SSL (defaults to false)
-
This config option is defined by CookieProvider.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.state.Manager.html b/www/extras/extjs/docs/output/Ext.state.Manager.html deleted file mode 100644 index 22d2addd7..000000000 --- a/www/extras/extjs/docs/output/Ext.state.Manager.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - Ext.state.Manager - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.state.Manager

- - - - - -
Package:Ext.state
Class:Manager
Extends:Object
Defined In:State.js
-
- This is the global state manager. By default all components that are "state aware" check this class -for state information if you don't pass them a custom state provider. In order for this class -to be useful, it must be initialized with a provider when your application initializes. -
// in your initialization function
-init : function(){
-   Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
-   ...
-   // supposed you have a Ext.BorderLayout
-   var layout = new Ext.BorderLayout(...);
-   layout.restoreState();
-   // or a {Ext.BasicDialog}
-   var dialog = new Ext.BasicDialog(...);
-   dialog.restoreState();


This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 clear(String name) : voidManager
Clears a value from the state
 get(String name, Mixed defaultValue) : MixedManager
Returns the current value for a key
 getProvider() : ProviderManager
Gets the currently configured state provider
 set(String name, Mixed value) : voidManager
Sets the value for a key
 setProvider(Provider stateProvider) : voidManager
Configures the default state provider for your application
- -

Public Events

-
This class has no public events.
- -

Method Details

-
- -
-

clear

- public function clear(String name) -
- Clears a value from the state -
- Parameters: -
  • name : String
    The key name
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Manager.
-
- -
-

get

- public function get(String name, Mixed defaultValue) -
- Returns the current value for a key -
- Parameters: -
  • name : String
    The key name
  • defaultValue : Mixed
    The default value to return if the key lookup does not match
- Returns: -
    -
  • Mixed
    The state data
  • -
-
-
-
This method is defined by Manager.
-
- -
-

getProvider

- public function getProvider() -
- Gets the currently configured state provider -
- Parameters: -
  • None.
- Returns: -
    -
  • Provider
    The state provider
  • -
-
-
-
This method is defined by Manager.
-
- -
-

set

- public function set(String name, Mixed value) -
- Sets the value for a key -
- Parameters: -
  • name : String
    The key name
  • value : Mixed
    The state data
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Manager.
-
- -
-

setProvider

- public function setProvider(Provider stateProvider) -
- Configures the default state provider for your application -
- Parameters: -
  • stateProvider : Provider
    The state provider to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Manager.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.state.Provider.html b/www/extras/extjs/docs/output/Ext.state.Provider.html deleted file mode 100644 index 3693a5589..000000000 --- a/www/extras/extjs/docs/output/Ext.state.Provider.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - Ext.state.Provider - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.state.Provider

- - - - - - -
Package:Ext.state
Class:Provider
Extends:Object
Subclasses:CookieProvider
Defined In:State.js
-
- Abstract base class for state provider implementations. This class provides methods -for encoding and decoding typed variables including dates and defines the -Provider interface.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 clear(String name) : voidProvider
Clears a value from the state
 decodeValue(String value) : MixedProvider
Decodes a string previously encoded with encodeValue.
 encodeValue(Mixed value) : StringProvider
Encodes a value including type information. Decode with decodeValue.
 get(String name, Mixed defaultValue) : MixedProvider
Returns the current value for a key
 set(String name, Mixed value) : voidProvider
Sets the value for a key
- -

Public Events

- - - - - - - - - - - - - -
EventDefined By
 statechange : (Provider this, String key, String value)Provider
Fires when a state change occurs.
- - -

Method Details

-
- -
-

clear

- public function clear(String name) -
- Clears a value from the state -
- Parameters: -
  • name : String
    The key name
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Provider.
-
- -
-

decodeValue

- public function decodeValue(String value) -
- Decodes a string previously encoded with encodeValue. -
- Parameters: -
  • value : String
    The value to decode
- Returns: -
    -
  • Mixed
    The decoded value
  • -
-
-
-
This method is defined by Provider.
-
- -
-

encodeValue

- public function encodeValue(Mixed value) -
- Encodes a value including type information. Decode with decodeValue. -
- Parameters: -
  • value : Mixed
    The value to encode
- Returns: -
    -
  • String
    The encoded value
  • -
-
-
-
This method is defined by Provider.
-
- -
-

get

- public function get(String name, Mixed defaultValue) -
- Returns the current value for a key -
- Parameters: -
  • name : String
    The key name
  • defaultValue : Mixed
    A default value to return if the key's value is not found
- Returns: -
    -
  • Mixed
    The state data
  • -
-
-
-
This method is defined by Provider.
-
- -
-

set

- public function set(String name, Mixed value) -
- Sets the value for a key -
- Parameters: -
  • name : String
    The key name
  • value : Mixed
    The value to set
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Provider.
-
-
- -

Event Details

-
- -
-

statechange

- public event statechange -
- Fires when a state change occurs. -
- Subscribers will be called with the following parameters: -
  • this : Provider
    This state provider
  • key : String
    The state key which was changed
  • value : String
    The encoded value for the state
-
-
-
This event is defined by Provider.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.tree.AsyncTreeNode.html b/www/extras/extjs/docs/output/Ext.tree.AsyncTreeNode.html deleted file mode 100644 index 5778c21fb..000000000 --- a/www/extras/extjs/docs/output/Ext.tree.AsyncTreeNode.html +++ /dev/null @@ -1,2138 +0,0 @@ - - - - Ext.tree.AsyncTreeNode - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.tree.AsyncTreeNode

- - - - - -
Package:Ext.tree
Class:AsyncTreeNode
Extends:TreeNode
Defined In:AsyncTreeNode.js
-
-
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 attributes : ObjectNode
The attributes supplied for the node. You can use this property to access any custom attributes you supplied.
 childNodes : ArrayNode
All child nodes of this node.
 disabled : BooleanTreeNode
True if this node is disabled.
 firstChild : NodeNode
The first direct child node of this node, or null if this node has no child nodes.
 id : StringNode
The node id.
 lastChild : NodeNode
The last direct child node of this node, or null if this node has no child nodes.
 loader : TreeLoaderAsyncTreeNode
* -The loader used by this node (defaults to using the tree's defined loader)
 nextSibling : NodeNode
The node immediately following this node in the tree, or null if there is no sibling node.
 parentNode : NodeNode
The parent node for this node.
 previousSibling : NodeNode
The node immediately preceding this node in the tree, or null if there is no sibling node.
 text : StringTreeNode
Read-only. The text for this node. To change it use setText().
 ui : TreeNodeUITreeNode
Read-only. The UI for this node
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 AsyncTreeNode(Object/String attributes)AsyncTreeNode
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 appendChild(Node/Array node) : NodeNode
Insert node(s) as the last child node of this node.
 bubble(Function fn, [Object scope], [Array args]) : voidNode
Bubbles up the tree from this node, calling the specified function with each node. The scope (this) of -function call...
 cascade(Function fn, [Object scope], [Array args]) : voidNode
Cascades down the tree from this node, calling the specified function with each node. The scope (this) of -function c...
 collapse([Boolean deep], [Boolean anim]) : voidTreeNode
Collapse this node.
 collapseChildNodes([Boolean deep]) : voidTreeNode
Collapse all child nodes
 contains(Node node) : BooleanNode
Returns true if this node is an ancestor (at any point) of the passed node.
 disable() : voidTreeNode
Disables this node
 eachChild(Function fn, [Object scope], [Array args]) : voidNode
Interates the child nodes of this node, calling the specified function with each node. The scope (this) of -function ...
 enable() : voidTreeNode
Enables this node
 ensureVisible() : voidTreeNode
Ensures all parent nodes are expanded
 expand([Boolean deep], [Boolean anim], [Function callback]) : voidTreeNode
Expand this node.
 expandChildNodes([Boolean deep]) : voidTreeNode
Expand all child nodes
 findChild(String attribute, Mixed value) : NodeNode
Finds the first child that has the attribute with the specified value.
 findChildBy(Function fn, [Object scope]) : NodeNode
Finds the first child by a custom function. The child matches if the function passed -returns true.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getDepth() : NumberNode
Returns depth of this node (the root node has a depth of 0)
 getOwnerTree() : TreeNode
Returns the tree this node is in.
 getPath([String attr]) : StringNode
Returns the path for this node. The path can be used to expand or select this node programmatically.
 getUI() : TreeNodeUITreeNode
Returns the UI object for this node
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 indexOf(Node node) : NumberNode
Returns the index of a child node
 insertBefore(Node node, Node refNode) : NodeNode
Inserts the first node before the second node in this nodes childNodes collection.
 isAncestor(Node node) : BooleanNode
Returns true if the passed node is an ancestor (at any point) of this node.
 isExpanded() : BooleanTreeNode
Returns true if this node is expanded
 isFirst() : BooleanNode
Returns true if this node is the first child of its parent
 isLast() : BooleanNode
Returns true if this node is the last child of its parent
 isLeaf() : BooleanNode
Returns true if this node is a leaf
 isLoaded() : BooleanAsyncTreeNode
Returns true if this node has been loaded
 isLoading() : BooleanAsyncTreeNode
Returns true if this node is currently loading
 isSelected() : BooleanTreeNode
Returns true if this node is selected
 item(Number index) : NodeNode
Returns the child node at the specified index.
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 reload(Function callback) : voidAsyncTreeNode
Trigger a reload for this node
 removeChild(Node node) : NodeNode
Removes a child node from this node.
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 replaceChild(Node newChild, Node oldChild) : NodeNode
Replaces one child node in this node with another.
 select() : voidTreeNode
Triggers selection of this node
 setText(String text) : voidTreeNode
Sets the text for this node
 sort(Function fn, [Object scope]) : voidNode
Sorts this nodes children using the supplied sort function
 toggle() : voidTreeNode
Toggles expanded/collapsed state of the node
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 unselect() : voidTreeNode
Triggers deselection of this node
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 append : (Tree tree, Node this, Node node, Number index)Node
Fires when a new child node is appended
 beforeappend : (Tree tree, Node this, Node node)Node
Fires before a new child is appended, return false to cancel the append.
 beforechildrenrendered : (Node this)TreeNode
Fires right before the child nodes for this node are rendered
 beforeclick : (Node this, Ext.EventObject e)TreeNode
Fires before click processing. Return false to cancel the default action.
 beforecollapse : (Node this, Boolean deep, Boolean anim)TreeNode
Fires before this node is collapsed, return false to cancel.
 beforeexpand : (Node this, Boolean deep, Boolean anim)TreeNode
Fires before this node is expanded, return false to cancel.
 beforeinsert : (Tree tree, Node this, Node node, Node refNode)Node
Fires before a new child is inserted, return false to cancel the insert.
 beforeload : (Node this)AsyncTreeNode
Fires before this node is loaded, return false to cancel
 beforemove : (Tree tree, Node this, Node oldParent, Node newParent, Number index)Node
Fires before this node is moved to a new location in the tree. Return false to cancel the move.
 beforeremove : (Tree tree, Node this, Node node)Node
Fires before a child is removed, return false to cancel the remove.
 click : (Node this, Ext.EventObject e)TreeNode
Fires when this node is clicked
 collapse : (Node this)TreeNode
Fires when this node is collapsed
 contextmenu : (Node this, Ext.EventObject e)TreeNode
Fires when this node is right clicked
 dblclick : (Node this, Ext.EventObject e)TreeNode
Fires when this node is double clicked
 disabledchange : (Node this, Boolean disabled)TreeNode
Fires when the disabled status of this node changes
 expand : (Node this)TreeNode
Fires when this node is expanded
 insert : (Tree tree, Node this, Node node, Node refNode)Node
Fires when a new child node is inserted.
 load : (Node this)AsyncTreeNode
Fires when this node is loaded
 move : (Tree tree, Node this, Node oldParent, Node newParent, Number index)Node
Fires when this node is moved to a new location in the tree
 remove : (Tree tree, Node this, Node node)Node
Fires when a child node is removed
 textchange : (Node this, String text, String oldText)TreeNode
Fires when the text for this node is changed
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 allowDrag : BooleanTreeNode
false to make this node undraggable if DD is on (defaults to true)
 allowDrop : BooleanTreeNode
false if this node cannot be drop on
 cls : StringTreeNode
A css class to be added to the node
 disabled : BooleanTreeNode
true to start the node disabled
 expanded : BooleanTreeNode
true to start the node expanded
 href : StringTreeNode
URL of the link used for the node (defaults to #)
 hrefTarget : StringTreeNode
target frame for the link
 icon : StringTreeNode
The path to an icon for the node. The preferred way to do this is to use the cls or iconCls attributes and add the ic...
 iconCls : StringTreeNode
A css class to be added to the nodes icon element for applying css background images
 id : StringNode
The id for this node. If one is not specified, one is generated.
 leaf : BooleanNode
true if this node is a leaf and does not have children
 loader : TreeLoaderAsyncTreeNode
A TreeLoader to be used by this node (defaults to the loader defined on the tree)
 qtip : StringTreeNode
An Ext QuickTip for the node
 singleClickExpand : BooleanTreeNode
True for single click expand on this node
 text : StringTreeNode
The text for this node
 uiProvider : FunctionTreeNode
A UI class to use for this node (defaults to Ext.tree.TreeNodeUI)
-

Property Details

-
- -
-

attributes

- public Object attributes -
- The attributes supplied for the node. You can use this property to access any custom attributes you supplied.
-
This property is defined by Node.
-
- -
-

childNodes

- public Array childNodes -
- All child nodes of this node.
-
This property is defined by Node.
-
- -
-

disabled

- public Boolean disabled -
- True if this node is disabled.
-
This property is defined by TreeNode.
-
- -
-

firstChild

- public Node firstChild -
- The first direct child node of this node, or null if this node has no child nodes.
-
This property is defined by Node.
-
- -
-

id

- public String id -
- The node id.
-
This property is defined by Node.
-
- -
-

lastChild

- public Node lastChild -
- The last direct child node of this node, or null if this node has no child nodes.
-
This property is defined by Node.
-
- -
-

loader

- public TreeLoader loader -
- * -The loader used by this node (defaults to using the tree's defined loader)
-
This property is defined by AsyncTreeNode.
-
- -
-

nextSibling

- public Node nextSibling -
- The node immediately following this node in the tree, or null if there is no sibling node.
-
This property is defined by Node.
-
- -
-

parentNode

- public Node parentNode -
- The parent node for this node.
-
This property is defined by Node.
-
- -
-

previousSibling

- public Node previousSibling -
- The node immediately preceding this node in the tree, or null if there is no sibling node.
-
This property is defined by Node.
-
- -
-

text

- public String text -
- Read-only. The text for this node. To change it use setText().
-
This property is defined by TreeNode.
-
- -
-

ui

- public TreeNodeUI ui -
- Read-only. The UI for this node
-
This property is defined by TreeNode.
-
-
- - -

Constructor Details

-
-
-

AsyncTreeNode

- public function AsyncTreeNode(Object/String attributes) -
-
- Parameters: -
  • attributes : Object/String
    The attributes/config for the node or just a string with the text for the node
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

appendChild

- public function appendChild(Node/Array node) -
- Insert node(s) as the last child node of this node. -
- Parameters: -
  • node : Node/Array
    The node or Array of nodes to append
- Returns: -
    -
  • Node
    The appended node if single append, or null if an array was passed
  • -
-
-
-
This method is defined by Node.
-
- -
-

bubble

- public function bubble(Function fn, [Object scope], [Array args]) -
- Bubbles up the tree from this node, calling the specified function with each node. The scope (this) of -function call will be the scope provided or the current node. The arguments to the function -will be the args provided or the current node. If the function returns false at any point, -the bubble is stopped. -
- Parameters: -
  • fn : Function
    The function to call
  • scope : Object
    (optional) The scope of the function (defaults to current node)
  • args : Array
    (optional) The args to call the function with (default to passing the current node)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Node.
-
- -
-

cascade

- public function cascade(Function fn, [Object scope], [Array args]) -
- Cascades down the tree from this node, calling the specified function with each node. The scope (this) of -function call will be the scope provided or the current node. The arguments to the function -will be the args provided or the current node. If the function returns false at any point, -the cascade is stopped on that branch. -
- Parameters: -
  • fn : Function
    The function to call
  • scope : Object
    (optional) The scope of the function (defaults to current node)
  • args : Array
    (optional) The args to call the function with (default to passing the current node)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Node.
-
- -
-

collapse

- public function collapse([Boolean deep], [Boolean anim]) -
- Collapse this node. -
- Parameters: -
  • deep : Boolean
    (optional) True to collapse all children as well
  • anim : Boolean
    (optional) false to cancel the default animation
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

collapseChildNodes

- public function collapseChildNodes([Boolean deep]) -
- Collapse all child nodes -
- Parameters: -
  • deep : Boolean
    (optional) true if the child nodes should also collapse their child nodes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

contains

- public function contains(Node node) -
- Returns true if this node is an ancestor (at any point) of the passed node. -
- Parameters: -
  • node : Node
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Node.
-
- -
-

disable

- public function disable() -
- Disables this node -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

eachChild

- public function eachChild(Function fn, [Object scope], [Array args]) -
- Interates the child nodes of this node, calling the specified function with each node. The scope (this) of -function call will be the scope provided or the current node. The arguments to the function -will be the args provided or the current node. If the function returns false at any point, -the iteration stops. -
- Parameters: -
  • fn : Function
    The function to call
  • scope : Object
    (optional) The scope of the function (defaults to current node)
  • args : Array
    (optional) The args to call the function with (default to passing the current node)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Node.
-
- -
-

enable

- public function enable() -
- Enables this node -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

ensureVisible

- public function ensureVisible() -
- Ensures all parent nodes are expanded -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

expand

- public function expand([Boolean deep], [Boolean anim], [Function callback]) -
- Expand this node. -
- Parameters: -
  • deep : Boolean
    (optional) True to expand all children as well
  • anim : Boolean
    (optional) false to cancel the default animation
  • callback : Function
    (optional) A callback to be called when expanding this node completes (does not wait for deep expand to complete). Called with 1 parameter, this node.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

expandChildNodes

- public function expandChildNodes([Boolean deep]) -
- Expand all child nodes -
- Parameters: -
  • deep : Boolean
    (optional) true if the child nodes should also expand their child nodes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

findChild

- public function findChild(String attribute, Mixed value) -
- Finds the first child that has the attribute with the specified value. -
- Parameters: -
  • attribute : String
    The attribute name
  • value : Mixed
    The value to search for
- Returns: -
    -
  • Node
    The found child or null if none was found
  • -
-
-
-
This method is defined by Node.
-
- -
-

findChildBy

- public function findChildBy(Function fn, [Object scope]) -
- Finds the first child by a custom function. The child matches if the function passed -returns true. -
- Parameters: -
  • fn : Function
  • scope : Object
    (optional)
- Returns: -
    -
  • Node
    The found child or null if none was found
  • -
-
-
-
This method is defined by Node.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getDepth

- public function getDepth() -
- Returns depth of this node (the root node has a depth of 0) -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Node.
-
- -
-

getOwnerTree

- public function getOwnerTree() -
- Returns the tree this node is in. -
- Parameters: -
  • None.
- Returns: -
    -
  • Tree
  • -
-
-
-
This method is defined by Node.
-
- -
-

getPath

- public function getPath([String attr]) -
- Returns the path for this node. The path can be used to expand or select this node programmatically. -
- Parameters: -
  • attr : String
    (optional) The attr to use for the path (defaults to the node's id)
- Returns: -
    -
  • String
    The path
  • -
-
-
-
This method is defined by Node.
-
- -
-

getUI

- public function getUI() -
- Returns the UI object for this node -
- Parameters: -
  • None.
- Returns: -
    -
  • TreeNodeUI
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

indexOf

- public function indexOf(Node node) -
- Returns the index of a child node -
- Parameters: -
  • node : Node
- Returns: -
    -
  • Number
    The index of the node or -1 if it was not found
  • -
-
-
-
This method is defined by Node.
-
- -
-

insertBefore

- public function insertBefore(Node node, Node refNode) -
- Inserts the first node before the second node in this nodes childNodes collection. -
- Parameters: -
  • node : Node
    The node to insert
  • refNode : Node
    The node to insert before (if null the node is appended)
- Returns: -
    -
  • Node
    The inserted node
  • -
-
-
-
This method is defined by Node.
-
- -
-

isAncestor

- public function isAncestor(Node node) -
- Returns true if the passed node is an ancestor (at any point) of this node. -
- Parameters: -
  • node : Node
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Node.
-
- -
-

isExpanded

- public function isExpanded() -
- Returns true if this node is expanded -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

isFirst

- public function isFirst() -
- Returns true if this node is the first child of its parent -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Node.
-
- -
-

isLast

- public function isLast() -
- Returns true if this node is the last child of its parent -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Node.
-
- -
-

isLeaf

- public function isLeaf() -
- Returns true if this node is a leaf -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Node.
-
- -
-

isLoaded

- public function isLoaded() -
- Returns true if this node has been loaded -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by AsyncTreeNode.
-
- -
-

isLoading

- public function isLoading() -
- Returns true if this node is currently loading -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by AsyncTreeNode.
-
- -
-

isSelected

- public function isSelected() -
- Returns true if this node is selected -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

item

- public function item(Number index) -
- Returns the child node at the specified index. -
- Parameters: -
  • index : Number
- Returns: -
    -
  • Node
  • -
-
-
-
This method is defined by Node.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

reload

- public function reload(Function callback) -
- Trigger a reload for this node -
- Parameters: -
  • callback : Function
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by AsyncTreeNode.
-
- -
-

removeChild

- public function removeChild(Node node) -
- Removes a child node from this node. -
- Parameters: -
  • node : Node
    The node to remove
- Returns: -
    -
  • Node
    The removed node
  • -
-
-
-
This method is defined by Node.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

replaceChild

- public function replaceChild(Node newChild, Node oldChild) -
- Replaces one child node in this node with another. -
- Parameters: -
  • newChild : Node
    The replacement node
  • oldChild : Node
    The node to replace
- Returns: -
    -
  • Node
    The replaced node
  • -
-
-
-
This method is defined by Node.
-
- -
-

select

- public function select() -
- Triggers selection of this node -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

setText

- public function setText(String text) -
- Sets the text for this node -
- Parameters: -
  • text : String
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

sort

- public function sort(Function fn, [Object scope]) -
- Sorts this nodes children using the supplied sort function -
- Parameters: -
  • fn : Function
  • scope : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Node.
-
- -
-

toggle

- public function toggle() -
- Toggles expanded/collapsed state of the node -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

unselect

- public function unselect() -
- Triggers deselection of this node -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
-
- -

Event Details

-
- -
-

append

- public event append -
- Fires when a new child node is appended -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The newly appended node
  • index : Number
    The index of the newly appended node
-
-
-
This event is defined by Node.
-
- -
-

beforeappend

- public event beforeappend -
- Fires before a new child is appended, return false to cancel the append. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The child node to be appended
-
-
-
This event is defined by Node.
-
- -
-

beforechildrenrendered

- public event beforechildrenrendered -
- Fires right before the child nodes for this node are rendered -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
-
-
-
This event is defined by TreeNode.
-
- -
-

beforeclick

- public event beforeclick -
- Fires before click processing. Return false to cancel the default action. -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by TreeNode.
-
- -
-

beforecollapse

- public event beforecollapse -
- Fires before this node is collapsed, return false to cancel. -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • deep : Boolean
  • anim : Boolean
-
-
-
This event is defined by TreeNode.
-
- -
-

beforeexpand

- public event beforeexpand -
- Fires before this node is expanded, return false to cancel. -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • deep : Boolean
  • anim : Boolean
-
-
-
This event is defined by TreeNode.
-
- -
-

beforeinsert

- public event beforeinsert -
- Fires before a new child is inserted, return false to cancel the insert. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The child node to be inserted
  • refNode : Node
    The child node the node is being inserted before
-
-
-
This event is defined by Node.
-
- -
-

beforeload

- public event beforeload -
- Fires before this node is loaded, return false to cancel -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
-
-
-
This event is defined by AsyncTreeNode.
-
- -
-

beforemove

- public event beforemove -
- Fires before this node is moved to a new location in the tree. Return false to cancel the move. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • oldParent : Node
    The parent of this node
  • newParent : Node
    The new parent this node is moving to
  • index : Number
    The index it is being moved to
-
-
-
This event is defined by Node.
-
- -
-

beforeremove

- public event beforeremove -
- Fires before a child is removed, return false to cancel the remove. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The child node to be removed
-
-
-
This event is defined by Node.
-
- -
-

click

- public event click -
- Fires when this node is clicked -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by TreeNode.
-
- -
-

collapse

- public event collapse -
- Fires when this node is collapsed -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
-
-
-
This event is defined by TreeNode.
-
- -
-

contextmenu

- public event contextmenu -
- Fires when this node is right clicked -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by TreeNode.
-
- -
-

dblclick

- public event dblclick -
- Fires when this node is double clicked -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by TreeNode.
-
- -
-

disabledchange

- public event disabledchange -
- Fires when the disabled status of this node changes -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • disabled : Boolean
-
-
-
This event is defined by TreeNode.
-
- -
-

expand

- public event expand -
- Fires when this node is expanded -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
-
-
-
This event is defined by TreeNode.
-
- -
-

insert

- public event insert -
- Fires when a new child node is inserted. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The child node inserted
  • refNode : Node
    The child node the node was inserted before
-
-
-
This event is defined by Node.
-
- -
-

load

- public event load -
- Fires when this node is loaded -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
-
-
-
This event is defined by AsyncTreeNode.
-
- -
-

move

- public event move -
- Fires when this node is moved to a new location in the tree -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • oldParent : Node
    The old parent of this node
  • newParent : Node
    The new parent of this node
  • index : Number
    The index it was moved to
-
-
-
This event is defined by Node.
-
- -
-

remove

- public event remove -
- Fires when a child node is removed -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The removed node
-
-
-
This event is defined by Node.
-
- -
-

textchange

- public event textchange -
- Fires when the text for this node is changed -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • text : String
    The new text
  • oldText : String
    The old text
-
-
-
This event is defined by TreeNode.
-
-
-

Config Details

-
- -
-

allowDrag

- allowDrag : Boolean -
- false to make this node undraggable if DD is on (defaults to true)
-
This config option is defined by TreeNode.
-
- -
-

allowDrop

- allowDrop : Boolean -
- false if this node cannot be drop on
-
This config option is defined by TreeNode.
-
- -
-

cls

- cls : String -
- A css class to be added to the node
-
This config option is defined by TreeNode.
-
- -
-

disabled

- disabled : Boolean -
- true to start the node disabled
-
This config option is defined by TreeNode.
-
- -
-

expanded

- expanded : Boolean -
- true to start the node expanded
-
This config option is defined by TreeNode.
-
- -
-

href

- href : String -
- URL of the link used for the node (defaults to #)
-
This config option is defined by TreeNode.
-
- -
-

hrefTarget

- hrefTarget : String -
- target frame for the link
-
This config option is defined by TreeNode.
-
- -
-

icon

- icon : String -
- The path to an icon for the node. The preferred way to do this is to use the cls or iconCls attributes and add the icon via a CSS background image.
-
This config option is defined by TreeNode.
-
- -
-

iconCls

- iconCls : String -
- A css class to be added to the nodes icon element for applying css background images
-
This config option is defined by TreeNode.
-
- -
-

id

- id : String -
- The id for this node. If one is not specified, one is generated.
-
This config option is defined by Node.
-
- -
-

leaf

- leaf : Boolean -
- true if this node is a leaf and does not have children
-
This config option is defined by Node.
-
- -
-

loader

- loader : TreeLoader -
- A TreeLoader to be used by this node (defaults to the loader defined on the tree)
-
This config option is defined by AsyncTreeNode.
-
- -
-

qtip

- qtip : String -
- An Ext QuickTip for the node
-
This config option is defined by TreeNode.
-
- -
-

singleClickExpand

- singleClickExpand : Boolean -
- True for single click expand on this node
-
This config option is defined by TreeNode.
-
- -
-

text

- text : String -
- The text for this node
-
This config option is defined by TreeNode.
-
- -
-

uiProvider

- uiProvider : Function -
- A UI class to use for this node (defaults to Ext.tree.TreeNodeUI)
-
This config option is defined by TreeNode.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.tree.DefaultSelectionModel.html b/www/extras/extjs/docs/output/Ext.tree.DefaultSelectionModel.html deleted file mode 100644 index ac426ed5b..000000000 --- a/www/extras/extjs/docs/output/Ext.tree.DefaultSelectionModel.html +++ /dev/null @@ -1,482 +0,0 @@ - - - - Ext.tree.DefaultSelectionModel - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.tree.DefaultSelectionModel

- - - - - -
Package:Ext.tree
Class:DefaultSelectionModel
Extends:Observable
Defined In:TreeSelectionModel.js
-
- The default single selection for a TreePanel.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 clearSelections() : voidDefaultSelectionModel
Clear all selections
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getSelectedNode() : TreeNodeDefaultSelectionModel
Get the selected node
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 isSelected(TreeNode node) : BooleanDefaultSelectionModel
Returns true if the node is selected
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 select(TreeNode node) : TreeNodeDefaultSelectionModel
Select a node.
 selectNext() : TreeNodeDefaultSelectionModel
Selects the node above the selected node in the tree, intelligently walking the nodes
 selectPrevious() : TreeNodeDefaultSelectionModel
Selects the node above the selected node in the tree, intelligently walking the nodes
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 unselect(TreeNode node) : voidDefaultSelectionModel
Deselect a node.
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 beforeselect : (DefaultSelectionModel this, TreeNode node, TreeNode node)DefaultSelectionModel
Fires before the selected node changes, return false to cancel the change
 selectionchange : (DefaultSelectionModel this, TreeNode node)DefaultSelectionModel
Fires when the selected node changes
- - -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

clearSelections

- public function clearSelections() -
- Clear all selections -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DefaultSelectionModel.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getSelectedNode

- public function getSelectedNode() -
- Get the selected node -
- Parameters: -
  • None.
- Returns: -
    -
  • TreeNode
    The selected node
  • -
-
-
-
This method is defined by DefaultSelectionModel.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

isSelected

- public function isSelected(TreeNode node) -
- Returns true if the node is selected -
- Parameters: -
  • node : TreeNode
    The node to check
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by DefaultSelectionModel.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

select

- public function select(TreeNode node) -
- Select a node. -
- Parameters: -
  • node : TreeNode
    The node to select
- Returns: -
    -
  • TreeNode
    The selected node
  • -
-
-
-
This method is defined by DefaultSelectionModel.
-
- -
-

selectNext

- public function selectNext() -
- Selects the node above the selected node in the tree, intelligently walking the nodes -
- Parameters: -
  • None.
- Returns: -
    -
  • TreeNode
    The new selection
  • -
-
-
-
This method is defined by DefaultSelectionModel.
-
- -
-

selectPrevious

- public function selectPrevious() -
- Selects the node above the selected node in the tree, intelligently walking the nodes -
- Parameters: -
  • None.
- Returns: -
    -
  • TreeNode
    The new selection
  • -
-
-
-
This method is defined by DefaultSelectionModel.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

unselect

- public function unselect(TreeNode node) -
- Deselect a node. -
- Parameters: -
  • node : TreeNode
    The node to unselect
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DefaultSelectionModel.
-
-
- -

Event Details

-
- -
-

beforeselect

- public event beforeselect -
- Fires before the selected node changes, return false to cancel the change -
- Subscribers will be called with the following parameters: -
  • this : DefaultSelectionModel
  • node : TreeNode
    the new selection
  • node : TreeNode
    the old selection
-
-
-
This event is defined by DefaultSelectionModel.
-
- -
-

selectionchange

- public event selectionchange -
- Fires when the selected node changes -
- Subscribers will be called with the following parameters: -
  • this : DefaultSelectionModel
  • node : TreeNode
    the new selection
-
-
-
This event is defined by DefaultSelectionModel.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.tree.MultiSelectionModel.html b/www/extras/extjs/docs/output/Ext.tree.MultiSelectionModel.html deleted file mode 100644 index 04afb2ea3..000000000 --- a/www/extras/extjs/docs/output/Ext.tree.MultiSelectionModel.html +++ /dev/null @@ -1,411 +0,0 @@ - - - - Ext.tree.MultiSelectionModel - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.tree.MultiSelectionModel

- - - - - -
Package:Ext.tree
Class:MultiSelectionModel
Extends:Observable
Defined In:TreeSelectionModel.js
-
- Multi selection for a TreePanel.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 clearSelections() : voidMultiSelectionModel
Clear all selections
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getSelectedNodes() : ArrayMultiSelectionModel
Returns an array of the selected nodes
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 isSelected(TreeNode node) : BooleanMultiSelectionModel
Returns true if the node is selected
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 select(TreeNode node, [EventObject e], Boolean keepExisting) : TreeNodeMultiSelectionModel
Select a node.
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 unselect(TreeNode node) : voidMultiSelectionModel
Deselect a node.
- -

Public Events

- - - - - - - - - - - - - -
EventDefined By
 selectionchange : (MultiSelectionModel this, Array nodes)MultiSelectionModel
Fires when the selected nodes change
- - -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

clearSelections

- public function clearSelections() -
- Clear all selections -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MultiSelectionModel.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getSelectedNodes

- public function getSelectedNodes() -
- Returns an array of the selected nodes -
- Parameters: -
  • None.
- Returns: -
    -
  • Array
  • -
-
-
-
This method is defined by MultiSelectionModel.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

isSelected

- public function isSelected(TreeNode node) -
- Returns true if the node is selected -
- Parameters: -
  • node : TreeNode
    The node to check
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by MultiSelectionModel.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

select

- public function select(TreeNode node, [EventObject e], Boolean keepExisting) -
- Select a node. -
- Parameters: -
  • node : TreeNode
    The node to select
  • e : EventObject
    (optional) An event associated with the selection
  • keepExisting : Boolean
    True to retain existing selections
- Returns: -
    -
  • TreeNode
    The selected node
  • -
-
-
-
This method is defined by MultiSelectionModel.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

unselect

- public function unselect(TreeNode node) -
- Deselect a node. -
- Parameters: -
  • node : TreeNode
    The node to unselect
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MultiSelectionModel.
-
-
- -

Event Details

-
- -
-

selectionchange

- public event selectionchange -
- Fires when the selected nodes change -
- Subscribers will be called with the following parameters: -
  • this : MultiSelectionModel
  • nodes : Array
    Array of the selected nodes
-
-
-
This event is defined by MultiSelectionModel.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.tree.TreeLoader.html b/www/extras/extjs/docs/output/Ext.tree.TreeLoader.html deleted file mode 100644 index 00a5bda98..000000000 --- a/www/extras/extjs/docs/output/Ext.tree.TreeLoader.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - Ext.tree.TreeLoader - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.tree.TreeLoader

- - - - - -
Package:Ext.tree
Class:TreeLoader
Extends:Object
Defined In:TreeLoader.js
-
-
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - -
MethodDefined By
 createNode() : voidTreeLoader
Override this function for custom TreeNode node implementation
- -

Public Events

-
This class has no public events.
- -

Method Details

-
- -
-

createNode

- public function createNode() -
- Override this function for custom TreeNode node implementation -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeLoader.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.tree.TreeNode.html b/www/extras/extjs/docs/output/Ext.tree.TreeNode.html deleted file mode 100644 index a17e23894..000000000 --- a/www/extras/extjs/docs/output/Ext.tree.TreeNode.html +++ /dev/null @@ -1,1988 +0,0 @@ - - - - Ext.tree.TreeNode - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.tree.TreeNode

- - - - - - -
Package:Ext.tree
Class:TreeNode
Extends:Node
Subclasses:AsyncTreeNode
Defined In:TreeNode.js
-
-
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 attributes : ObjectNode
The attributes supplied for the node. You can use this property to access any custom attributes you supplied.
 childNodes : ArrayNode
All child nodes of this node.
 disabled : BooleanTreeNode
True if this node is disabled.
 firstChild : NodeNode
The first direct child node of this node, or null if this node has no child nodes.
 id : StringNode
The node id.
 lastChild : NodeNode
The last direct child node of this node, or null if this node has no child nodes.
 nextSibling : NodeNode
The node immediately following this node in the tree, or null if there is no sibling node.
 parentNode : NodeNode
The parent node for this node.
 previousSibling : NodeNode
The node immediately preceding this node in the tree, or null if there is no sibling node.
 text : StringTreeNode
Read-only. The text for this node. To change it use setText().
 ui : TreeNodeUITreeNode
Read-only. The UI for this node
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 TreeNode(Object/String attributes)TreeNode
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 appendChild(Node/Array node) : NodeNode
Insert node(s) as the last child node of this node.
 bubble(Function fn, [Object scope], [Array args]) : voidNode
Bubbles up the tree from this node, calling the specified function with each node. The scope (this) of -function call...
 cascade(Function fn, [Object scope], [Array args]) : voidNode
Cascades down the tree from this node, calling the specified function with each node. The scope (this) of -function c...
 collapse([Boolean deep], [Boolean anim]) : voidTreeNode
Collapse this node.
 collapseChildNodes([Boolean deep]) : voidTreeNode
Collapse all child nodes
 contains(Node node) : BooleanNode
Returns true if this node is an ancestor (at any point) of the passed node.
 disable() : voidTreeNode
Disables this node
 eachChild(Function fn, [Object scope], [Array args]) : voidNode
Interates the child nodes of this node, calling the specified function with each node. The scope (this) of -function ...
 enable() : voidTreeNode
Enables this node
 ensureVisible() : voidTreeNode
Ensures all parent nodes are expanded
 expand([Boolean deep], [Boolean anim], [Function callback]) : voidTreeNode
Expand this node.
 expandChildNodes([Boolean deep]) : voidTreeNode
Expand all child nodes
 findChild(String attribute, Mixed value) : NodeNode
Finds the first child that has the attribute with the specified value.
 findChildBy(Function fn, [Object scope]) : NodeNode
Finds the first child by a custom function. The child matches if the function passed -returns true.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getDepth() : NumberNode
Returns depth of this node (the root node has a depth of 0)
 getOwnerTree() : TreeNode
Returns the tree this node is in.
 getPath([String attr]) : StringNode
Returns the path for this node. The path can be used to expand or select this node programmatically.
 getUI() : TreeNodeUITreeNode
Returns the UI object for this node
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 indexOf(Node node) : NumberNode
Returns the index of a child node
 insertBefore(Node node, Node refNode) : NodeNode
Inserts the first node before the second node in this nodes childNodes collection.
 isAncestor(Node node) : BooleanNode
Returns true if the passed node is an ancestor (at any point) of this node.
 isExpanded() : BooleanTreeNode
Returns true if this node is expanded
 isFirst() : BooleanNode
Returns true if this node is the first child of its parent
 isLast() : BooleanNode
Returns true if this node is the last child of its parent
 isLeaf() : BooleanNode
Returns true if this node is a leaf
 isSelected() : BooleanTreeNode
Returns true if this node is selected
 item(Number index) : NodeNode
Returns the child node at the specified index.
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeChild(Node node) : NodeNode
Removes a child node from this node.
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 replaceChild(Node newChild, Node oldChild) : NodeNode
Replaces one child node in this node with another.
 select() : voidTreeNode
Triggers selection of this node
 setText(String text) : voidTreeNode
Sets the text for this node
 sort(Function fn, [Object scope]) : voidNode
Sorts this nodes children using the supplied sort function
 toggle() : voidTreeNode
Toggles expanded/collapsed state of the node
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
 unselect() : voidTreeNode
Triggers deselection of this node
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 append : (Tree tree, Node this, Node node, Number index)Node
Fires when a new child node is appended
 beforeappend : (Tree tree, Node this, Node node)Node
Fires before a new child is appended, return false to cancel the append.
 beforechildrenrendered : (Node this)TreeNode
Fires right before the child nodes for this node are rendered
 beforeclick : (Node this, Ext.EventObject e)TreeNode
Fires before click processing. Return false to cancel the default action.
 beforecollapse : (Node this, Boolean deep, Boolean anim)TreeNode
Fires before this node is collapsed, return false to cancel.
 beforeexpand : (Node this, Boolean deep, Boolean anim)TreeNode
Fires before this node is expanded, return false to cancel.
 beforeinsert : (Tree tree, Node this, Node node, Node refNode)Node
Fires before a new child is inserted, return false to cancel the insert.
 beforemove : (Tree tree, Node this, Node oldParent, Node newParent, Number index)Node
Fires before this node is moved to a new location in the tree. Return false to cancel the move.
 beforeremove : (Tree tree, Node this, Node node)Node
Fires before a child is removed, return false to cancel the remove.
 click : (Node this, Ext.EventObject e)TreeNode
Fires when this node is clicked
 collapse : (Node this)TreeNode
Fires when this node is collapsed
 contextmenu : (Node this, Ext.EventObject e)TreeNode
Fires when this node is right clicked
 dblclick : (Node this, Ext.EventObject e)TreeNode
Fires when this node is double clicked
 disabledchange : (Node this, Boolean disabled)TreeNode
Fires when the disabled status of this node changes
 expand : (Node this)TreeNode
Fires when this node is expanded
 insert : (Tree tree, Node this, Node node, Node refNode)Node
Fires when a new child node is inserted.
 move : (Tree tree, Node this, Node oldParent, Node newParent, Number index)Node
Fires when this node is moved to a new location in the tree
 remove : (Tree tree, Node this, Node node)Node
Fires when a child node is removed
 textchange : (Node this, String text, String oldText)TreeNode
Fires when the text for this node is changed
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 allowDrag : BooleanTreeNode
false to make this node undraggable if DD is on (defaults to true)
 allowDrop : BooleanTreeNode
false if this node cannot be drop on
 cls : StringTreeNode
A css class to be added to the node
 disabled : BooleanTreeNode
true to start the node disabled
 expanded : BooleanTreeNode
true to start the node expanded
 href : StringTreeNode
URL of the link used for the node (defaults to #)
 hrefTarget : StringTreeNode
target frame for the link
 icon : StringTreeNode
The path to an icon for the node. The preferred way to do this is to use the cls or iconCls attributes and add the ic...
 iconCls : StringTreeNode
A css class to be added to the nodes icon element for applying css background images
 id : StringNode
The id for this node. If one is not specified, one is generated.
 leaf : BooleanNode
true if this node is a leaf and does not have children
 qtip : StringTreeNode
An Ext QuickTip for the node
 singleClickExpand : BooleanTreeNode
True for single click expand on this node
 text : StringTreeNode
The text for this node
 uiProvider : FunctionTreeNode
A UI class to use for this node (defaults to Ext.tree.TreeNodeUI)
-

Property Details

-
- -
-

attributes

- public Object attributes -
- The attributes supplied for the node. You can use this property to access any custom attributes you supplied.
-
This property is defined by Node.
-
- -
-

childNodes

- public Array childNodes -
- All child nodes of this node.
-
This property is defined by Node.
-
- -
-

disabled

- public Boolean disabled -
- True if this node is disabled.
-
This property is defined by TreeNode.
-
- -
-

firstChild

- public Node firstChild -
- The first direct child node of this node, or null if this node has no child nodes.
-
This property is defined by Node.
-
- -
-

id

- public String id -
- The node id.
-
This property is defined by Node.
-
- -
-

lastChild

- public Node lastChild -
- The last direct child node of this node, or null if this node has no child nodes.
-
This property is defined by Node.
-
- -
-

nextSibling

- public Node nextSibling -
- The node immediately following this node in the tree, or null if there is no sibling node.
-
This property is defined by Node.
-
- -
-

parentNode

- public Node parentNode -
- The parent node for this node.
-
This property is defined by Node.
-
- -
-

previousSibling

- public Node previousSibling -
- The node immediately preceding this node in the tree, or null if there is no sibling node.
-
This property is defined by Node.
-
- -
-

text

- public String text -
- Read-only. The text for this node. To change it use setText().
-
This property is defined by TreeNode.
-
- -
-

ui

- public TreeNodeUI ui -
- Read-only. The UI for this node
-
This property is defined by TreeNode.
-
-
- - -

Constructor Details

-
-
-

TreeNode

- public function TreeNode(Object/String attributes) -
-
- Parameters: -
  • attributes : Object/String
    The attributes/config for the node or just a string with the text for the node
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

appendChild

- public function appendChild(Node/Array node) -
- Insert node(s) as the last child node of this node. -
- Parameters: -
  • node : Node/Array
    The node or Array of nodes to append
- Returns: -
    -
  • Node
    The appended node if single append, or null if an array was passed
  • -
-
-
-
This method is defined by Node.
-
- -
-

bubble

- public function bubble(Function fn, [Object scope], [Array args]) -
- Bubbles up the tree from this node, calling the specified function with each node. The scope (this) of -function call will be the scope provided or the current node. The arguments to the function -will be the args provided or the current node. If the function returns false at any point, -the bubble is stopped. -
- Parameters: -
  • fn : Function
    The function to call
  • scope : Object
    (optional) The scope of the function (defaults to current node)
  • args : Array
    (optional) The args to call the function with (default to passing the current node)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Node.
-
- -
-

cascade

- public function cascade(Function fn, [Object scope], [Array args]) -
- Cascades down the tree from this node, calling the specified function with each node. The scope (this) of -function call will be the scope provided or the current node. The arguments to the function -will be the args provided or the current node. If the function returns false at any point, -the cascade is stopped on that branch. -
- Parameters: -
  • fn : Function
    The function to call
  • scope : Object
    (optional) The scope of the function (defaults to current node)
  • args : Array
    (optional) The args to call the function with (default to passing the current node)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Node.
-
- -
-

collapse

- public function collapse([Boolean deep], [Boolean anim]) -
- Collapse this node. -
- Parameters: -
  • deep : Boolean
    (optional) True to collapse all children as well
  • anim : Boolean
    (optional) false to cancel the default animation
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

collapseChildNodes

- public function collapseChildNodes([Boolean deep]) -
- Collapse all child nodes -
- Parameters: -
  • deep : Boolean
    (optional) true if the child nodes should also collapse their child nodes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

contains

- public function contains(Node node) -
- Returns true if this node is an ancestor (at any point) of the passed node. -
- Parameters: -
  • node : Node
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Node.
-
- -
-

disable

- public function disable() -
- Disables this node -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

eachChild

- public function eachChild(Function fn, [Object scope], [Array args]) -
- Interates the child nodes of this node, calling the specified function with each node. The scope (this) of -function call will be the scope provided or the current node. The arguments to the function -will be the args provided or the current node. If the function returns false at any point, -the iteration stops. -
- Parameters: -
  • fn : Function
    The function to call
  • scope : Object
    (optional) The scope of the function (defaults to current node)
  • args : Array
    (optional) The args to call the function with (default to passing the current node)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Node.
-
- -
-

enable

- public function enable() -
- Enables this node -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

ensureVisible

- public function ensureVisible() -
- Ensures all parent nodes are expanded -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

expand

- public function expand([Boolean deep], [Boolean anim], [Function callback]) -
- Expand this node. -
- Parameters: -
  • deep : Boolean
    (optional) True to expand all children as well
  • anim : Boolean
    (optional) false to cancel the default animation
  • callback : Function
    (optional) A callback to be called when expanding this node completes (does not wait for deep expand to complete). Called with 1 parameter, this node.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

expandChildNodes

- public function expandChildNodes([Boolean deep]) -
- Expand all child nodes -
- Parameters: -
  • deep : Boolean
    (optional) true if the child nodes should also expand their child nodes
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

findChild

- public function findChild(String attribute, Mixed value) -
- Finds the first child that has the attribute with the specified value. -
- Parameters: -
  • attribute : String
    The attribute name
  • value : Mixed
    The value to search for
- Returns: -
    -
  • Node
    The found child or null if none was found
  • -
-
-
-
This method is defined by Node.
-
- -
-

findChildBy

- public function findChildBy(Function fn, [Object scope]) -
- Finds the first child by a custom function. The child matches if the function passed -returns true. -
- Parameters: -
  • fn : Function
  • scope : Object
    (optional)
- Returns: -
    -
  • Node
    The found child or null if none was found
  • -
-
-
-
This method is defined by Node.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getDepth

- public function getDepth() -
- Returns depth of this node (the root node has a depth of 0) -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
  • -
-
-
-
This method is defined by Node.
-
- -
-

getOwnerTree

- public function getOwnerTree() -
- Returns the tree this node is in. -
- Parameters: -
  • None.
- Returns: -
    -
  • Tree
  • -
-
-
-
This method is defined by Node.
-
- -
-

getPath

- public function getPath([String attr]) -
- Returns the path for this node. The path can be used to expand or select this node programmatically. -
- Parameters: -
  • attr : String
    (optional) The attr to use for the path (defaults to the node's id)
- Returns: -
    -
  • String
    The path
  • -
-
-
-
This method is defined by Node.
-
- -
-

getUI

- public function getUI() -
- Returns the UI object for this node -
- Parameters: -
  • None.
- Returns: -
    -
  • TreeNodeUI
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

indexOf

- public function indexOf(Node node) -
- Returns the index of a child node -
- Parameters: -
  • node : Node
- Returns: -
    -
  • Number
    The index of the node or -1 if it was not found
  • -
-
-
-
This method is defined by Node.
-
- -
-

insertBefore

- public function insertBefore(Node node, Node refNode) -
- Inserts the first node before the second node in this nodes childNodes collection. -
- Parameters: -
  • node : Node
    The node to insert
  • refNode : Node
    The node to insert before (if null the node is appended)
- Returns: -
    -
  • Node
    The inserted node
  • -
-
-
-
This method is defined by Node.
-
- -
-

isAncestor

- public function isAncestor(Node node) -
- Returns true if the passed node is an ancestor (at any point) of this node. -
- Parameters: -
  • node : Node
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Node.
-
- -
-

isExpanded

- public function isExpanded() -
- Returns true if this node is expanded -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

isFirst

- public function isFirst() -
- Returns true if this node is the first child of its parent -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Node.
-
- -
-

isLast

- public function isLast() -
- Returns true if this node is the last child of its parent -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Node.
-
- -
-

isLeaf

- public function isLeaf() -
- Returns true if this node is a leaf -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by Node.
-
- -
-

isSelected

- public function isSelected() -
- Returns true if this node is selected -
- Parameters: -
  • None.
- Returns: -
    -
  • Boolean
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

item

- public function item(Number index) -
- Returns the child node at the specified index. -
- Parameters: -
  • index : Number
- Returns: -
    -
  • Node
  • -
-
-
-
This method is defined by Node.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeChild

- public function removeChild(Node node) -
- Removes a child node from this node. -
- Parameters: -
  • node : Node
    The node to remove
- Returns: -
    -
  • Node
    The removed node
  • -
-
-
-
This method is defined by Node.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

replaceChild

- public function replaceChild(Node newChild, Node oldChild) -
- Replaces one child node in this node with another. -
- Parameters: -
  • newChild : Node
    The replacement node
  • oldChild : Node
    The node to replace
- Returns: -
    -
  • Node
    The replaced node
  • -
-
-
-
This method is defined by Node.
-
- -
-

select

- public function select() -
- Triggers selection of this node -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

setText

- public function setText(String text) -
- Sets the text for this node -
- Parameters: -
  • text : String
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

sort

- public function sort(Function fn, [Object scope]) -
- Sorts this nodes children using the supplied sort function -
- Parameters: -
  • fn : Function
  • scope : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Node.
-
- -
-

toggle

- public function toggle() -
- Toggles expanded/collapsed state of the node -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

unselect

- public function unselect() -
- Triggers deselection of this node -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreeNode.
-
-
- -

Event Details

-
- -
-

append

- public event append -
- Fires when a new child node is appended -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The newly appended node
  • index : Number
    The index of the newly appended node
-
-
-
This event is defined by Node.
-
- -
-

beforeappend

- public event beforeappend -
- Fires before a new child is appended, return false to cancel the append. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The child node to be appended
-
-
-
This event is defined by Node.
-
- -
-

beforechildrenrendered

- public event beforechildrenrendered -
- Fires right before the child nodes for this node are rendered -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
-
-
-
This event is defined by TreeNode.
-
- -
-

beforeclick

- public event beforeclick -
- Fires before click processing. Return false to cancel the default action. -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by TreeNode.
-
- -
-

beforecollapse

- public event beforecollapse -
- Fires before this node is collapsed, return false to cancel. -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • deep : Boolean
  • anim : Boolean
-
-
-
This event is defined by TreeNode.
-
- -
-

beforeexpand

- public event beforeexpand -
- Fires before this node is expanded, return false to cancel. -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • deep : Boolean
  • anim : Boolean
-
-
-
This event is defined by TreeNode.
-
- -
-

beforeinsert

- public event beforeinsert -
- Fires before a new child is inserted, return false to cancel the insert. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The child node to be inserted
  • refNode : Node
    The child node the node is being inserted before
-
-
-
This event is defined by Node.
-
- -
-

beforemove

- public event beforemove -
- Fires before this node is moved to a new location in the tree. Return false to cancel the move. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • oldParent : Node
    The parent of this node
  • newParent : Node
    The new parent this node is moving to
  • index : Number
    The index it is being moved to
-
-
-
This event is defined by Node.
-
- -
-

beforeremove

- public event beforeremove -
- Fires before a child is removed, return false to cancel the remove. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The child node to be removed
-
-
-
This event is defined by Node.
-
- -
-

click

- public event click -
- Fires when this node is clicked -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by TreeNode.
-
- -
-

collapse

- public event collapse -
- Fires when this node is collapsed -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
-
-
-
This event is defined by TreeNode.
-
- -
-

contextmenu

- public event contextmenu -
- Fires when this node is right clicked -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by TreeNode.
-
- -
-

dblclick

- public event dblclick -
- Fires when this node is double clicked -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by TreeNode.
-
- -
-

disabledchange

- public event disabledchange -
- Fires when the disabled status of this node changes -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • disabled : Boolean
-
-
-
This event is defined by TreeNode.
-
- -
-

expand

- public event expand -
- Fires when this node is expanded -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
-
-
-
This event is defined by TreeNode.
-
- -
-

insert

- public event insert -
- Fires when a new child node is inserted. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The child node inserted
  • refNode : Node
    The child node the node was inserted before
-
-
-
This event is defined by Node.
-
- -
-

move

- public event move -
- Fires when this node is moved to a new location in the tree -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • oldParent : Node
    The old parent of this node
  • newParent : Node
    The new parent of this node
  • index : Number
    The index it was moved to
-
-
-
This event is defined by Node.
-
- -
-

remove

- public event remove -
- Fires when a child node is removed -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • this : Node
    This node
  • node : Node
    The removed node
-
-
-
This event is defined by Node.
-
- -
-

textchange

- public event textchange -
- Fires when the text for this node is changed -
- Subscribers will be called with the following parameters: -
  • this : Node
    This node
  • text : String
    The new text
  • oldText : String
    The old text
-
-
-
This event is defined by TreeNode.
-
-
-

Config Details

-
- -
-

allowDrag

- allowDrag : Boolean -
- false to make this node undraggable if DD is on (defaults to true)
-
This config option is defined by TreeNode.
-
- -
-

allowDrop

- allowDrop : Boolean -
- false if this node cannot be drop on
-
This config option is defined by TreeNode.
-
- -
-

cls

- cls : String -
- A css class to be added to the node
-
This config option is defined by TreeNode.
-
- -
-

disabled

- disabled : Boolean -
- true to start the node disabled
-
This config option is defined by TreeNode.
-
- -
-

expanded

- expanded : Boolean -
- true to start the node expanded
-
This config option is defined by TreeNode.
-
- -
-

href

- href : String -
- URL of the link used for the node (defaults to #)
-
This config option is defined by TreeNode.
-
- -
-

hrefTarget

- hrefTarget : String -
- target frame for the link
-
This config option is defined by TreeNode.
-
- -
-

icon

- icon : String -
- The path to an icon for the node. The preferred way to do this is to use the cls or iconCls attributes and add the icon via a CSS background image.
-
This config option is defined by TreeNode.
-
- -
-

iconCls

- iconCls : String -
- A css class to be added to the nodes icon element for applying css background images
-
This config option is defined by TreeNode.
-
- -
-

id

- id : String -
- The id for this node. If one is not specified, one is generated.
-
This config option is defined by Node.
-
- -
-

leaf

- leaf : Boolean -
- true if this node is a leaf and does not have children
-
This config option is defined by Node.
-
- -
-

qtip

- qtip : String -
- An Ext QuickTip for the node
-
This config option is defined by TreeNode.
-
- -
-

singleClickExpand

- singleClickExpand : Boolean -
- True for single click expand on this node
-
This config option is defined by TreeNode.
-
- -
-

text

- text : String -
- The text for this node
-
This config option is defined by TreeNode.
-
- -
-

uiProvider

- uiProvider : Function -
- A UI class to use for this node (defaults to Ext.tree.TreeNodeUI)
-
This config option is defined by TreeNode.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.tree.TreePanel.html b/www/extras/extjs/docs/output/Ext.tree.TreePanel.html deleted file mode 100644 index 503e68164..000000000 --- a/www/extras/extjs/docs/output/Ext.tree.TreePanel.html +++ /dev/null @@ -1,1521 +0,0 @@ - - - - Ext.tree.TreePanel - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.tree.TreePanel

- - - - - -
Package:Ext.tree
Class:TreePanel
Extends:Tree
Defined In:TreePanel.js
-
-
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDefined By
 dragZone : Ext.tree.TreeDragZoneTreePanel
The dragZone used by this tree if drag is enabled
 dropZone : Ext.tree.TreeDropZoneTreePanel
The dropZone used by this tree if drop is enabled
 id : ObjectTreePanel
Read-only. The id of the container element becomes this TreePanel's id.
 root : NodeTree
The root node for this tree
- -

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 TreePanel(String/HTMLElement/Element el, Object config)TreePanel
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 collapseAll() : voidTreePanel
Collapse all nodes
 expandAll() : voidTreePanel
Expand all nodes
 expandPath(String path, [String attr], [Function callback]) : voidTreePanel
Expands a specified path in this TreePanel. A path can be retrieved from a node with Ext.data.Node.getPath
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 getEl() : voidTreePanel
Returns the container element for this TreePanel
 getLoader() : voidTreePanel
Returns the default TreeLoader for this TreePanel
 getNodeById(String id) : NodeTree
Gets a node in this tree by its id
 getRootNode() : NodeTree
Returns this root node for this tree
 getSelectionModel() : voidTreePanel
Returns the selection model used by this TreePanel
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 render() : voidTreePanel
Trigger rendering of this TreePanel
 selectPath(String path, [String attr], [Function callback]) : voidTreePanel
Selects the node in this tree at the specified path. A path can be retrieved from a node with Ext.data.Node.getPath
 setRootNode(Node node) : NodeTree
Sets the root node for this tree
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 append : (Tree tree, Node parent, Node node, Number index)Tree
Fires when a new child node is appended to a node in this tree.
 beforeappend : (Tree tree, Node parent, Node node)Tree
Fires before a new child is appended to a node in this tree, return false to cancel the append.
 beforechildrenrendered : (Node node)TreePanel
Fires right before the child nodes for a node are rendered
 beforeclick : (Node node, Ext.EventObject e)TreePanel
Fires before click processing on a node. Return false to cancel the default action.
 beforecollapse : (Node node, Boolean deep, Boolean anim)TreePanel
Fires before a node is collapsed, return false to cancel.
 beforeexpand : (Node node, Boolean deep, Boolean anim)TreePanel
Fires before a node is expanded, return false to cancel.
 beforeinsert : (Tree tree, Node parent, Node node, Node refNode)Tree
Fires before a new child is inserted in a node in this tree, return false to cancel the insert.
 beforeload : (Node node)TreePanel
Fires before a node is loaded, return false to cancel
 beforemove : (Tree tree, Node node, Node oldParent, Node newParent, Number index)Tree
Fires before a node is moved to a new location in the tree. Return false to cancel the move.
 beforenodedrop : (Object dropEvent)TreePanel
Fires when a DD object is dropped on a node in this tree for preprocessing. Return false to cancel the drop. The drop...
 beforeremove : (Tree tree, Node parent, Node node)Tree
Fires before a child is removed from a node in this tree, return false to cancel the remove.
 click : (Node node, Ext.EventObject e)TreePanel
Fires when a node is clicked
 collapse : (Node node)TreePanel
Fires when a node is collapsed
 contextmenu : (Node node, Ext.EventObject e)TreePanel
Fires when a node is right clicked
 dblclick : (Node node, Ext.EventObject e)TreePanel
Fires when a node is double clicked
 disabledchange : (Node node, Boolean disabled)TreePanel
Fires when the disabled status of a node changes
 dragdrop : (Ext.tree.TreePanel this, Ext.tree.TreeNode node, DD dd, event e)TreePanel
Fires when a dragged node is dropped on a valid DD target
 enddrag : (Ext.tree.TreePanel this, Ext.tree.TreeNode node, event e)TreePanel
Fires when a drag operation is complete
 expand : (Node node)TreePanel
Fires when a node is expanded
 insert : (Tree tree, Node parent, Node node, Node refNode)Tree
Fires when a new child node is inserted in a node in this tree.
 load : (Node node)TreePanel
Fires when a node is loaded
 move : (Tree tree, Node node, Node oldParent, Node newParent, Number index)Tree
Fires when a node is moved to a new location in the tree
 nodedragover : (Object dragOverEvent)TreePanel
Fires when a tree node is being targeted for a drag drop, return false to signal drop not allowed. The dragOverEvent -...
 nodedrop : (Object dropEvent)TreePanel
Fires after a DD object is dropped on a node in this tree. The dropEvent -passed to handlers has the following propert...
 remove : (Tree tree, Node parent, Node node)Tree
Fires when a child node is removed from a node in this tree.
 startdrag : (Ext.tree.TreePanel this, Ext.tree.TreeNode node, event e)TreePanel
Fires when a node starts being dragged
 textchange : (Node node, String text, String oldText)TreePanel
Fires when the text for a node is changed
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 animate : BooleanTreePanel
true to enable animated expand/collapse
 containerScroll : BooleanTreePanel
true to register this container with ScrollManager
 ddAppendOnly : StringTreePanel
True if the tree should only allow append drops (use for trees which are sorted)
 ddGroup : StringTreePanel
The DD group this TreePanel belongs to
 ddScroll : BooleanTreePanel
true to enable YUI body scrolling
 dragConfig : ObjectTreePanel
Custom config to pass to the Ext.tree.TreeDragZone instance
 dropConfig : ObjectTreePanel
Custom config to pass to the Ext.tree.TreeDropZone instance
 enableDD : BooleanTreePanel
true to enable drag and drop
 enableDrag : BooleanTreePanel
true to enable just drag
 enableDrop : BooleanTreePanel
true to enable just drop
 hlColor : StringTreePanel
The color of the node highlight (defaults to C3DAF9)
 hlDrop : BooleanTreePanel
false to disable node highlight on drop (defaults to true)
 lines : BooleanTreePanel
false to disable tree lines (defaults to true)
 loader : BooleanTreePanel
A TreeLoader for use with this TreePanel
 rootVisible : BooleanTreePanel
false to hide the root node (defaults to true)
 selModel : BooleanTreePanel
A tree selection model to use with this TreePanel (defaults to a Ext.tree.DefaultSelectionModel)
 singleExpand : BooleanTreePanel
true if only 1 node per branch may be expanded
-

Property Details

-
- -
-

dragZone

- public Ext.tree.TreeDragZone dragZone -
- The dragZone used by this tree if drag is enabled
-
This property is defined by TreePanel.
-
- -
-

dropZone

- public Ext.tree.TreeDropZone dropZone -
- The dropZone used by this tree if drop is enabled
-
This property is defined by TreePanel.
-
- -
-

id

- public Object id -
- Read-only. The id of the container element becomes this TreePanel's id.
-
This property is defined by TreePanel.
-
- -
-

root

- public Node root -
- The root node for this tree
-
This property is defined by Tree.
-
-
- - -

Constructor Details

-
-
-

TreePanel

- public function TreePanel(String/HTMLElement/Element el, Object config) -
-
- Parameters: -
  • el : String/HTMLElement/Element
    The container element
  • config : Object
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

collapseAll

- public function collapseAll() -
- Collapse all nodes -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreePanel.
-
- -
-

expandAll

- public function expandAll() -
- Expand all nodes -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreePanel.
-
- -
-

expandPath

- public function expandPath(String path, [String attr], [Function callback]) -
- Expands a specified path in this TreePanel. A path can be retrieved from a node with Ext.data.Node.getPath -
- Parameters: -
  • path : String
  • attr : String
    (optional) The attribute used in the path (see Ext.data.Node.getPath for more info)
  • callback : Function
    (optional) The callback to call when the expand is complete. The callback will be called with (bSuccess, oLastNode) where bSuccess is if the expand was successful and oLastNode is the last node that was expanded.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreePanel.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

getEl

- public function getEl() -
- Returns the container element for this TreePanel -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreePanel.
-
- -
-

getLoader

- public function getLoader() -
- Returns the default TreeLoader for this TreePanel -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreePanel.
-
- -
-

getNodeById

- public function getNodeById(String id) -
- Gets a node in this tree by its id -
- Parameters: -
  • id : String
- Returns: -
    -
  • Node
  • -
-
-
-
This method is defined by Tree.
-
- -
-

getRootNode

- public function getRootNode() -
- Returns this root node for this tree -
- Parameters: -
  • None.
- Returns: -
    -
  • Node
  • -
-
-
-
This method is defined by Tree.
-
- -
-

getSelectionModel

- public function getSelectionModel() -
- Returns the selection model used by this TreePanel -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreePanel.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

render

- public function render() -
- Trigger rendering of this TreePanel -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreePanel.
-
- -
-

selectPath

- public function selectPath(String path, [String attr], [Function callback]) -
- Selects the node in this tree at the specified path. A path can be retrieved from a node with Ext.data.Node.getPath -
- Parameters: -
  • path : String
  • attr : String
    (optional) The attribute used in the path (see Ext.data.Node.getPath for more info)
  • callback : Function
    (optional) The callback to call when the selection is complete. The callback will be called with (bSuccess, oSelNode) where bSuccess is if the selection was successful and oSelNode is the selected node.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TreePanel.
-
- -
-

setRootNode

- public function setRootNode(Node node) -
- Sets the root node for this tree -
- Parameters: -
  • node : Node
- Returns: -
    -
  • Node
  • -
-
-
-
This method is defined by Tree.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

append

- public event append -
- Fires when a new child node is appended to a node in this tree. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • parent : Node
    The parent node
  • node : Node
    The newly appended node
  • index : Number
    The index of the newly appended node
-
-
-
This event is defined by Tree.
-
- -
-

beforeappend

- public event beforeappend -
- Fires before a new child is appended to a node in this tree, return false to cancel the append. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • parent : Node
    The parent node
  • node : Node
    The child node to be appended
-
-
-
This event is defined by Tree.
-
- -
-

beforechildrenrendered

- public event beforechildrenrendered -
- Fires right before the child nodes for a node are rendered -
- Subscribers will be called with the following parameters: -
  • node : Node
    The node
-
-
-
This event is defined by TreePanel.
-
- -
-

beforeclick

- public event beforeclick -
- Fires before click processing on a node. Return false to cancel the default action. -
- Subscribers will be called with the following parameters: -
  • node : Node
    The node
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by TreePanel.
-
- -
-

beforecollapse

- public event beforecollapse -
- Fires before a node is collapsed, return false to cancel. -
- Subscribers will be called with the following parameters: -
  • node : Node
    The node
  • deep : Boolean
  • anim : Boolean
-
-
-
This event is defined by TreePanel.
-
- -
-

beforeexpand

- public event beforeexpand -
- Fires before a node is expanded, return false to cancel. -
- Subscribers will be called with the following parameters: -
  • node : Node
    The node
  • deep : Boolean
  • anim : Boolean
-
-
-
This event is defined by TreePanel.
-
- -
-

beforeinsert

- public event beforeinsert -
- Fires before a new child is inserted in a node in this tree, return false to cancel the insert. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • parent : Node
    The parent node
  • node : Node
    The child node to be inserted
  • refNode : Node
    The child node the node is being inserted before
-
-
-
This event is defined by Tree.
-
- -
-

beforeload

- public event beforeload -
- Fires before a node is loaded, return false to cancel -
- Subscribers will be called with the following parameters: -
  • node : Node
    The node being loaded
-
-
-
This event is defined by TreePanel.
-
- -
-

beforemove

- public event beforemove -
- Fires before a node is moved to a new location in the tree. Return false to cancel the move. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • node : Node
    The node being moved
  • oldParent : Node
    The parent of the node
  • newParent : Node
    The new parent the node is moving to
  • index : Number
    The index it is being moved to
-
-
-
This event is defined by Tree.
-
- -
-

beforenodedrop

- public event beforenodedrop -
- Fires when a DD object is dropped on a node in this tree for preprocessing. Return false to cancel the drop. The dropEvent -passed to handlers has the following properties:
-
    -
  • tree - The TreePanel
  • -
  • target - The node being targeted for the drop
  • -
  • data - The drag data from the drag source
  • -
  • point - The point of the drop - append, above or below
  • -
  • source - The drag source
  • -
  • rawEvent - Raw mouse event
  • -
  • dropNode - Drop node(s) provided by the source OR you can supply node(s) -to be inserted by setting them on this object.
  • -
  • cancel - Set this to true to cancel the drop.
  • -
-
- Subscribers will be called with the following parameters: -
  • dropEvent : Object
-
-
-
This event is defined by TreePanel.
-
- -
-

beforeremove

- public event beforeremove -
- Fires before a child is removed from a node in this tree, return false to cancel the remove. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • parent : Node
    The parent node
  • node : Node
    The child node to be removed
-
-
-
This event is defined by Tree.
-
- -
-

click

- public event click -
- Fires when a node is clicked -
- Subscribers will be called with the following parameters: -
  • node : Node
    The node
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by TreePanel.
-
- -
-

collapse

- public event collapse -
- Fires when a node is collapsed -
- Subscribers will be called with the following parameters: -
  • node : Node
    The node
-
-
-
This event is defined by TreePanel.
-
- -
-

contextmenu

- public event contextmenu -
- Fires when a node is right clicked -
- Subscribers will be called with the following parameters: -
  • node : Node
    The node
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by TreePanel.
-
- -
-

dblclick

- public event dblclick -
- Fires when a node is double clicked -
- Subscribers will be called with the following parameters: -
  • node : Node
    The node
  • e : Ext.EventObject
    The event object
-
-
-
This event is defined by TreePanel.
-
- -
-

disabledchange

- public event disabledchange -
- Fires when the disabled status of a node changes -
- Subscribers will be called with the following parameters: -
  • node : Node
    The node
  • disabled : Boolean
-
-
-
This event is defined by TreePanel.
-
- -
-

dragdrop

- public event dragdrop -
- Fires when a dragged node is dropped on a valid DD target -
- Subscribers will be called with the following parameters: -
  • this : Ext.tree.TreePanel
  • node : Ext.tree.TreeNode
  • dd : DD
    The dd it was dropped on
  • e : event
    The raw browser event
-
-
-
This event is defined by TreePanel.
-
- -
-

enddrag

- public event enddrag -
- Fires when a drag operation is complete -
- Subscribers will be called with the following parameters: -
  • this : Ext.tree.TreePanel
  • node : Ext.tree.TreeNode
  • e : event
    The raw browser event
-
-
-
This event is defined by TreePanel.
-
- -
-

expand

- public event expand -
- Fires when a node is expanded -
- Subscribers will be called with the following parameters: -
  • node : Node
    The node
-
-
-
This event is defined by TreePanel.
-
- -
-

insert

- public event insert -
- Fires when a new child node is inserted in a node in this tree. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • parent : Node
    The parent node
  • node : Node
    The child node inserted
  • refNode : Node
    The child node the node was inserted before
-
-
-
This event is defined by Tree.
-
- -
-

load

- public event load -
- Fires when a node is loaded -
- Subscribers will be called with the following parameters: -
  • node : Node
    The node that was loaded
-
-
-
This event is defined by TreePanel.
-
- -
-

move

- public event move -
- Fires when a node is moved to a new location in the tree -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • node : Node
    The node moved
  • oldParent : Node
    The old parent of this node
  • newParent : Node
    The new parent of this node
  • index : Number
    The index it was moved to
-
-
-
This event is defined by Tree.
-
- -
-

nodedragover

- public event nodedragover -
- Fires when a tree node is being targeted for a drag drop, return false to signal drop not allowed. The dragOverEvent -passed to handlers has the following properties:
-
    -
  • tree - The TreePanel
  • -
  • target - The node being targeted for the drop
  • -
  • data - The drag data from the drag source
  • -
  • point - The point of the drop - append, above or below
  • -
  • source - The drag source
  • -
  • rawEvent - Raw mouse event
  • -
  • dropNode - Drop node(s) provided by the source.
  • -
  • cancel - Set this to true to signal drop not allowed.
  • -
-
- Subscribers will be called with the following parameters: -
  • dragOverEvent : Object
-
-
-
This event is defined by TreePanel.
-
- -
-

nodedrop

- public event nodedrop -
- Fires after a DD object is dropped on a node in this tree. The dropEvent -passed to handlers has the following properties:
-
    -
  • tree - The TreePanel
  • -
  • target - The node being targeted for the drop
  • -
  • data - The drag data from the drag source
  • -
  • point - The point of the drop - append, above or below
  • -
  • source - The drag source
  • -
  • rawEvent - Raw mouse event
  • -
  • dropNode - Dropped node(s).
  • -
-
- Subscribers will be called with the following parameters: -
  • dropEvent : Object
-
-
-
This event is defined by TreePanel.
-
- -
-

remove

- public event remove -
- Fires when a child node is removed from a node in this tree. -
- Subscribers will be called with the following parameters: -
  • tree : Tree
    The owner tree
  • parent : Node
    The parent node
  • node : Node
    The child node removed
-
-
-
This event is defined by Tree.
-
- -
-

startdrag

- public event startdrag -
- Fires when a node starts being dragged -
- Subscribers will be called with the following parameters: -
  • this : Ext.tree.TreePanel
  • node : Ext.tree.TreeNode
  • e : event
    The raw browser event
-
-
-
This event is defined by TreePanel.
-
- -
-

textchange

- public event textchange -
- Fires when the text for a node is changed -
- Subscribers will be called with the following parameters: -
  • node : Node
    The node
  • text : String
    The new text
  • oldText : String
    The old text
-
-
-
This event is defined by TreePanel.
-
-
-

Config Details

-
- -
-

animate

- animate : Boolean -
- true to enable animated expand/collapse
-
This config option is defined by TreePanel.
-
- -
-

containerScroll

- containerScroll : Boolean -
- true to register this container with ScrollManager
-
This config option is defined by TreePanel.
-
- -
-

ddAppendOnly

- ddAppendOnly : String -
- True if the tree should only allow append drops (use for trees which are sorted)
-
This config option is defined by TreePanel.
-
- -
-

ddGroup

- ddGroup : String -
- The DD group this TreePanel belongs to
-
This config option is defined by TreePanel.
-
- -
-

ddScroll

- ddScroll : Boolean -
- true to enable YUI body scrolling
-
This config option is defined by TreePanel.
-
- -
-

dragConfig

- dragConfig : Object -
- Custom config to pass to the Ext.tree.TreeDragZone instance
-
This config option is defined by TreePanel.
-
- -
-

dropConfig

- dropConfig : Object -
- Custom config to pass to the Ext.tree.TreeDropZone instance
-
This config option is defined by TreePanel.
-
- -
-

enableDD

- enableDD : Boolean -
- true to enable drag and drop
-
This config option is defined by TreePanel.
-
- -
-

enableDrag

- enableDrag : Boolean -
- true to enable just drag
-
This config option is defined by TreePanel.
-
- -
-

enableDrop

- enableDrop : Boolean -
- true to enable just drop
-
This config option is defined by TreePanel.
-
- -
-

hlColor

- hlColor : String -
- The color of the node highlight (defaults to C3DAF9)
-
This config option is defined by TreePanel.
-
- -
-

hlDrop

- hlDrop : Boolean -
- false to disable node highlight on drop (defaults to true)
-
This config option is defined by TreePanel.
-
- -
-

lines

- lines : Boolean -
- false to disable tree lines (defaults to true)
-
This config option is defined by TreePanel.
-
- -
-

loader

- loader : Boolean -
- A TreeLoader for use with this TreePanel
-
This config option is defined by TreePanel.
-
- -
-

rootVisible

- rootVisible : Boolean -
- false to hide the root node (defaults to true)
-
This config option is defined by TreePanel.
-
- -
-

selModel

- selModel : Boolean -
- A tree selection model to use with this TreePanel (defaults to a Ext.tree.DefaultSelectionModel)
-
This config option is defined by TreePanel.
-
- -
-

singleExpand

- singleExpand : Boolean -
- true if only 1 node per branch may be expanded
-
This config option is defined by TreePanel.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.tree.TreeSorter.html b/www/extras/extjs/docs/output/Ext.tree.TreeSorter.html deleted file mode 100644 index fb73d6b8d..000000000 --- a/www/extras/extjs/docs/output/Ext.tree.TreeSorter.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - Ext.tree.TreeSorter - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.tree.TreeSorter

- - - - - -
Package:Ext.tree
Class:TreeSorter
Extends:Object
Defined In:TreeSorter.js
-
- Provides sorting of nodes in a TreePanel
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - -
MethodDefined By
 TreeSorter(TreePanel tree, Object config)TreeSorter
- -

Public Events

-
This class has no public events.
-

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 caseSensitive : BooleanTreeSorter
true for case sensitive sort (defaults to false)
 dir : StringTreeSorter
The direction to sort (asc or desc) (defaults to asc)
 folderSort : BooleanTreeSorter
True to sort leaf nodes under non leaf nodes
 leafAttr : StringTreeSorter
The attribute used to determine leaf nodes in folder sort (defaults to "leaf")
 property : StringTreeSorter
The named attribute on the node to sort by (defaults to text)
 sortType : FunctionTreeSorter
A custom "casting" function used to convert node values before sorting
- - -

Constructor Details

-
-
-

TreeSorter

- public function TreeSorter(TreePanel tree, Object config) -
-
- Parameters: -
  • tree : TreePanel
  • config : Object
-
-
-
-
- - -

Config Details

-
- -
-

caseSensitive

- caseSensitive : Boolean -
- true for case sensitive sort (defaults to false)
-
This config option is defined by TreeSorter.
-
- -
-

dir

- dir : String -
- The direction to sort (asc or desc) (defaults to asc)
-
This config option is defined by TreeSorter.
-
- -
-

folderSort

- folderSort : Boolean -
- True to sort leaf nodes under non leaf nodes
-
This config option is defined by TreeSorter.
-
- -
-

leafAttr

- leafAttr : String -
- The attribute used to determine leaf nodes in folder sort (defaults to "leaf")
-
This config option is defined by TreeSorter.
-
- -
-

property

- property : String -
- The named attribute on the node to sort by (defaults to text)
-
This config option is defined by TreeSorter.
-
- -
-

sortType

- sortType : Function -
- A custom "casting" function used to convert node values before sorting
-
This config option is defined by TreeSorter.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.util.CSS.html b/www/extras/extjs/docs/output/Ext.util.CSS.html deleted file mode 100644 index 5433adf06..000000000 --- a/www/extras/extjs/docs/output/Ext.util.CSS.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - Ext.util.CSS - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.util.CSS

- - - - - -
Package:Ext.util
Class:CSS
Extends:Object
Defined In:CSS.js
-
- Utility class for manipulating CSS rules

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 createStyleSheet(String cssText) : StyleSheetCSS
Very simple dynamic creation of stylesheets from a text blob of rules. The text will wrapped in a style -tag and appe...
 getRule(String/Array selector, Boolean refreshCache) : CSSRuleCSS
Gets an an individual CSS rule by selector(s)
 getRules(Boolean refreshCache) : ObjectCSS
Gets all css rules for the document
 refreshCache() : ObjectCSS
Refresh the rule cache if you have dynamically added stylesheets
 removeStyleSheet(String id) : voidCSS
Removes a style or link tag by id
 swapStyleSheet(String id, String url) : voidCSS
Dynamically swaps an existing stylesheet reference for a new one
 updateRule(String/Array selector, String property, String value) : BooleanCSS
Updates a rule property
- -

Public Events

-
This class has no public events.
- -

Method Details

-
- -
-

createStyleSheet

- public function createStyleSheet(String cssText) -
- Very simple dynamic creation of stylesheets from a text blob of rules. The text will wrapped in a style -tag and appended to the HEAD of the document. -
- Parameters: -
  • cssText : String
    The text containing the css rules
- Returns: -
    -
  • StyleSheet
  • -
-
-
-
This method is defined by CSS.
-
- -
-

getRule

- public function getRule(String/Array selector, Boolean refreshCache) -
- Gets an an individual CSS rule by selector(s) -
- Parameters: -
  • selector : String/Array
    The CSS selector or an array of selectors to try. The first selector that is found is returned.
  • refreshCache : Boolean
    true to refresh the internal cache if you have recently updated any rules or added styles dynamically
- Returns: -
    -
  • CSSRule
    The CSS rule or null if one is not found
  • -
-
-
-
This method is defined by CSS.
-
- -
-

getRules

- public function getRules(Boolean refreshCache) -
- Gets all css rules for the document -
- Parameters: -
  • refreshCache : Boolean
    true to refresh the internal cache
- Returns: -
    -
  • Object
    An object (hash) of rules indexed by selector
  • -
-
-
-
This method is defined by CSS.
-
- -
-

refreshCache

- public function refreshCache() -
- Refresh the rule cache if you have dynamically added stylesheets -
- Parameters: -
  • None.
- Returns: -
    -
  • Object
    An object (hash) of rules indexed by selector
  • -
-
-
-
This method is defined by CSS.
-
- -
-

removeStyleSheet

- public function removeStyleSheet(String id) -
- Removes a style or link tag by id -
- Parameters: -
  • id : String
    The id of the tag
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by CSS.
-
- -
-

swapStyleSheet

- public function swapStyleSheet(String id, String url) -
- Dynamically swaps an existing stylesheet reference for a new one -
- Parameters: -
  • id : String
    The id of an existing link tag to remove
  • url : String
    The href of the new stylesheet to include
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by CSS.
-
- -
-

updateRule

- public function updateRule(String/Array selector, String property, String value) -
- Updates a rule property -
- Parameters: -
  • selector : String/Array
    If it's an array it tries each selector until it finds one. Stops immediately once one is found.
  • property : String
    The css property
  • value : String
    The new value for the property
- Returns: -
    -
  • Boolean
    true If a rule was found and updated
  • -
-
-
-
This method is defined by CSS.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.util.ClickRepeater.html b/www/extras/extjs/docs/output/Ext.util.ClickRepeater.html deleted file mode 100644 index 7ad1e12e0..000000000 --- a/www/extras/extjs/docs/output/Ext.util.ClickRepeater.html +++ /dev/null @@ -1,478 +0,0 @@ - - - - Ext.util.ClickRepeater - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.util.ClickRepeater

- - - - - -
Package:Ext.util
Class:ClickRepeater
Extends:Observable
Defined In:ClickRepeater.js
-
- A wrapper class which can be applied to any element. Fires a "click" event while the - mouse is pressed. The interval between firings may be specified in the config but - defaults to 10 milliseconds. - - Optionally, a CSS class may be applied to the element during the time it is pressed.
-
- Properties -   -  Methods -   -  Events -   -  Config Options -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 ClickRepeater(String/HTMLElement/Element el, Object config)ClickRepeater
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 click : (Ext.util.ClickRepeater this)ClickRepeater
Fires on a specified interval during the time the element is pressed.
 mousedown : (Ext.util.ClickRepeater this)ClickRepeater
Fires when the mouse button is depressed.
 mouseup : (Ext.util.ClickRepeater this)ClickRepeater
Fires when the mouse key is released.
- -

Config Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Config OptionsDefined By
 accelerate : BooleanClickRepeater
True if autorepeating should start slowly and accelerate. "interval" and "delay" are ignored. "immediate" is honored.
 delay : NumberClickRepeater
The initial delay before the repeating event begins firing. Similar to an autorepeat key delay.
 el : String/HTMLElement/ElementClickRepeater
The element to act as a button.
 interval : NumberClickRepeater
The interval between firings of the "click" event. Default 10 ms.
 pressClass : StringClickRepeater
A CSS class name to be applied to the element while pressed.
 preventDefault : BooleanClickRepeater
True to prevent the default click event
 stopDefault : BooleanClickRepeater
True to stop the default click event
- - -

Constructor Details

-
-
-

ClickRepeater

- public function ClickRepeater(String/HTMLElement/Element el, Object config) -
-
- Parameters: -
  • el : String/HTMLElement/Element
    The element to listen on
  • config : Object
-
-
-
-
- -

Method Details

-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

click

- public event click -
- Fires on a specified interval during the time the element is pressed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.util.ClickRepeater
-
-
-
This event is defined by ClickRepeater.
-
- -
-

mousedown

- public event mousedown -
- Fires when the mouse button is depressed. -
- Subscribers will be called with the following parameters: -
  • this : Ext.util.ClickRepeater
-
-
-
This event is defined by ClickRepeater.
-
- -
-

mouseup

- public event mouseup -
- Fires when the mouse key is released. -
- Subscribers will be called with the following parameters: -
  • this : Ext.util.ClickRepeater
-
-
-
This event is defined by ClickRepeater.
-
-
-

Config Details

-
- -
-

accelerate

- accelerate : Boolean -
- True if autorepeating should start slowly and accelerate. "interval" and "delay" are ignored. "immediate" is honored.
-
This config option is defined by ClickRepeater.
-
- -
-

delay

- delay : Number -
- The initial delay before the repeating event begins firing. Similar to an autorepeat key delay.
-
This config option is defined by ClickRepeater.
-
- -
-

el

- el : String/HTMLElement/Element -
- The element to act as a button.
-
This config option is defined by ClickRepeater.
-
- -
-

interval

- interval : Number -
- The interval between firings of the "click" event. Default 10 ms.
-
This config option is defined by ClickRepeater.
-
- -
-

pressClass

- pressClass : String -
- A CSS class name to be applied to the element while pressed.
-
This config option is defined by ClickRepeater.
-
- -
-

preventDefault

- preventDefault : Boolean -
- True to prevent the default click event
-
This config option is defined by ClickRepeater.
-
- -
-

stopDefault

- stopDefault : Boolean -
- True to stop the default click event
-
This config option is defined by ClickRepeater.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.util.DelayedTask.html b/www/extras/extjs/docs/output/Ext.util.DelayedTask.html deleted file mode 100644 index 159f78e0a..000000000 --- a/www/extras/extjs/docs/output/Ext.util.DelayedTask.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - Ext.util.DelayedTask - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.util.DelayedTask

- - - - - -
Package:Ext.util
Class:DelayedTask
Extends:Object
Defined In:DelayedTask.js
-
- Provides a convenient method of performing setTimeout where a new -timeout cancels the old timeout. An example would be performing validation on a keypress. -You can use this class to buffer -the keypress events for a certain number of milliseconds, and perform only if they stop -for that amount of time.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 DelayedTask([Function fn], [Object scope], [Array args])DelayedTask
The parameters to this constructor serve as defaults and are not required.
 cancel() : voidDelayedTask
Cancel the last queued timeout
 delay(Number delay, [Function newFn], [Object newScope], [Array newArgs]) : voidDelayedTask
Cancels any pending timeout and queues a new one
- -

Public Events

-
This class has no public events.
- -

Constructor Details

-
-
-

DelayedTask

- public function DelayedTask([Function fn], [Object scope], [Array args]) -
- The parameters to this constructor serve as defaults and are not required.
- Parameters: -
  • fn : Function
    (optional) The default function to timeout
  • scope : Object
    (optional) The default scope of that timeout
  • args : Array
    (optional) The default Array of arguments
-
-
-
-
- -

Method Details

-
- -
-

cancel

- public function cancel() -
- Cancel the last queued timeout -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DelayedTask.
-
- -
-

delay

- public function delay(Number delay, [Function newFn], [Object newScope], [Array newArgs]) -
- Cancels any pending timeout and queues a new one -
- Parameters: -
  • delay : Number
    The milliseconds to delay
  • newFn : Function
    (optional) Overrides function passed to constructor
  • newScope : Object
    (optional) Overrides scope passed to constructor
  • newArgs : Array
    (optional) Overrides args passed to constructor
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by DelayedTask.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.util.Format.html b/www/extras/extjs/docs/output/Ext.util.Format.html deleted file mode 100644 index d1cb462d4..000000000 --- a/www/extras/extjs/docs/output/Ext.util.Format.html +++ /dev/null @@ -1,354 +0,0 @@ - - - - Ext.util.Format - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.util.Format

- - - - - -
Package:Ext.util
Class:Format
Extends:Object
Defined In:Format.js
-
- Reusable data formatting functions

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 capitalize(String value) : StringFormat
Converts the first character only of a string to upper case
 date(Mixed value, [String format]) : StringFormat
Parse a value into a formatted date using the specified format pattern.
 dateRenderer(String format) : FunctionFormat
Returns a date rendering function that can be reused to apply a date format multiple times efficiently
 ellipsis(String value, Number length) : StringFormat
Truncate a string and add an ellipsis ('...') to the end if it exceeds the specified length
 htmlEncode(String value) : StringFormat
Convert certain characters (&, <, >, and ') to their HTML character equivalents for literal display in web pages.
 lowercase(String value) : StringFormat
Converts a string to all lower case letters
 stripTags(Mixed value) : StringFormat
Strips all HTML tags
 substr(String value, Number start, Number length) : StringFormat
Returns a substring from within an original string
 trim(String value) : StringFormat
Trims any whitespace from either side of a string
 undef(Mixed value) : MixedFormat
Checks a reference and converts it to empty string if it is undefined
 uppercase(String value) : StringFormat
Converts a string to all upper case letters
 usMoney(Number/String value) : StringFormat
Format a number as US currency
- -

Public Events

-
This class has no public events.
- -

Method Details

-
- -
-

capitalize

- public function capitalize(String value) -
- Converts the first character only of a string to upper case -
- Parameters: -
  • value : String
    The text to convert
- Returns: -
    -
  • String
    The converted text
  • -
-
-
-
This method is defined by Format.
-
- -
-

date

- public function date(Mixed value, [String format]) -
- Parse a value into a formatted date using the specified format pattern. -
- Parameters: -
  • value : Mixed
    The value to format
  • format : String
    (optional) Any valid date format string (defaults to 'm/d/Y')
- Returns: -
    -
  • String
    The formatted date string
  • -
-
-
-
This method is defined by Format.
-
- -
-

dateRenderer

- public function dateRenderer(String format) -
- Returns a date rendering function that can be reused to apply a date format multiple times efficiently -
- Parameters: -
  • format : String
    Any valid date format string
- Returns: -
    -
  • Function
    The date formatting function
  • -
-
-
-
This method is defined by Format.
-
- -
-

ellipsis

- public function ellipsis(String value, Number length) -
- Truncate a string and add an ellipsis ('...') to the end if it exceeds the specified length -
- Parameters: -
  • value : String
    The string to truncate
  • length : Number
    The maximum length to allow before truncating
- Returns: -
    -
  • String
    The converted text
  • -
-
-
-
This method is defined by Format.
-
- -
-

htmlEncode

- public function htmlEncode(String value) -
- Convert certain characters (&, <, >, and ') to their HTML character equivalents for literal display in web pages. -
- Parameters: -
  • value : String
    The string to encode
- Returns: -
    -
  • String
    The encoded text
  • -
-
-
-
This method is defined by Format.
-
- -
-

lowercase

- public function lowercase(String value) -
- Converts a string to all lower case letters -
- Parameters: -
  • value : String
    The text to convert
- Returns: -
    -
  • String
    The converted text
  • -
-
-
-
This method is defined by Format.
-
- -
-

stripTags

- public function stripTags(Mixed value) -
- Strips all HTML tags -
- Parameters: -
  • value : Mixed
    The text from which to strip tags
- Returns: -
    -
  • String
    The stripped text
  • -
-
-
-
This method is defined by Format.
-
- -
-

substr

- public function substr(String value, Number start, Number length) -
- Returns a substring from within an original string -
- Parameters: -
  • value : String
    The original text
  • start : Number
    The start index of the substring
  • length : Number
    The length of the substring
- Returns: -
    -
  • String
    The substring
  • -
-
-
-
This method is defined by Format.
-
- -
-

trim

- public function trim(String value) -
- Trims any whitespace from either side of a string -
- Parameters: -
  • value : String
    The text to trim
- Returns: -
    -
  • String
    The trimmed text
  • -
-
-
-
This method is defined by Format.
-
- -
-

undef

- public function undef(Mixed value) -
- Checks a reference and converts it to empty string if it is undefined -
- Parameters: -
  • value : Mixed
    Reference to check
- Returns: -
    -
  • Mixed
    Empty string if converted, otherwise the original value
  • -
-
-
-
This method is defined by Format.
-
- -
-

uppercase

- public function uppercase(String value) -
- Converts a string to all upper case letters -
- Parameters: -
  • value : String
    The text to convert
- Returns: -
    -
  • String
    The converted text
  • -
-
-
-
This method is defined by Format.
-
- -
-

usMoney

- public function usMoney(Number/String value) -
- Format a number as US currency -
- Parameters: -
  • value : Number/String
    The numeric value to format
- Returns: -
    -
  • String
    The formatted currency string
  • -
-
-
-
This method is defined by Format.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.util.JSON.html b/www/extras/extjs/docs/output/Ext.util.JSON.html deleted file mode 100644 index 8c3691d16..000000000 --- a/www/extras/extjs/docs/output/Ext.util.JSON.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - Ext.util.JSON - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.util.JSON

- - - - - -
Package:Ext.util
Class:JSON
Extends:Object
Defined In:JSON.js
-
- Modified version of Douglas Crockford"s json.js that doesn"t -mess with the Object prototype -http://www.json.org/js.html

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 decode(String json) : ObjectJSON
Decodes (parses) a JSON string to an object. If the JSON is invalid, this function throws a SyntaxError.
 encode(Mixed o) : StringJSON
Encodes an Object, Array or other value
- -

Public Events

-
This class has no public events.
- -

Method Details

-
- -
-

decode

- public function decode(String json) -
- Decodes (parses) a JSON string to an object. If the JSON is invalid, this function throws a SyntaxError. -
- Parameters: -
  • json : String
    The JSON string
- Returns: -
    -
  • Object
    The resulting object
  • -
-
-
-
This method is defined by JSON.
-
- -
-

encode

- public function encode(Mixed o) -
- Encodes an Object, Array or other value -
- Parameters: -
  • o : Mixed
    The variable to encode
- Returns: -
    -
  • String
    The JSON string
  • -
-
-
-
This method is defined by JSON.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.util.MixedCollection.html b/www/extras/extjs/docs/output/Ext.util.MixedCollection.html deleted file mode 100644 index 0857ed58d..000000000 --- a/www/extras/extjs/docs/output/Ext.util.MixedCollection.html +++ /dev/null @@ -1,1127 +0,0 @@ - - - - Ext.util.MixedCollection - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.util.MixedCollection

- - - - - -
Package:Ext.util
Class:MixedCollection
Extends:Observable
Defined In:MixedCollection.js
-
- A Collection class that maintains both numeric indexes and keys and exposes events.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 MixedCollection(Boolean allowFunctions, Function keyFn)MixedCollection
 add(String key, Object o) : ObjectMixedCollection
Adds an item to the collection.
 addAll(Object/Array objs) : voidMixedCollection
Adds all elements of an Array or an Object to the collection.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 clear() : voidMixedCollection
Removes all items from the collection.
 clone() : MixedCollectionMixedCollection
Creates a duplicate of this collection
 contains(Object o) : BooleanMixedCollection
Returns true if the collection contains the passed Object as an item.
 containsKey(String key) : BooleanMixedCollection
Returns true if the collection contains the passed Object as a key.
 each(Function fn, [Object scope]) : voidMixedCollection
Executes the specified function once for every item in the collection, passing each -item as the first and only parame...
 eachKey(Function fn, [Object scope]) : voidMixedCollection
Executes the specified function once for every key in the collection, passing each -key, and its associated item as th...
 filter(String property, String/RegExp value) : MixedCollectionMixedCollection
Filter the objects in this collection by a specific property. -Returns a new collection that has been filtered.
 filterBy(Function fn, [Object scope]) : MixedCollectionMixedCollection
Filter by a function. * Returns a new collection that has been filtered. -The passed function will be called with each...
 find(Function fn, [Object scope]) : ObjectMixedCollection
Returns the first item in the collection which elicits a true return value from the -passed selection function.
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 first() : ObjectMixedCollection
Returns the first item in the collection.
 get(String/Number key) : ObjectMixedCollection
Returns the item associated with the passed key or index.
 getCount() : NumberMixedCollection
Returns the number of items in the collection.
 getKey(o {Object}) : ObjectMixedCollection
MixedCollection has a generic way to fetch keys if you implement getKey. - - // normal way - var mc = new E...
 getRange([Number startIndex], [Number endIndex]) : ArrayMixedCollection
Returns a range of items in this collection
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 indexOf(Object o) : NumberMixedCollection
Returns index within the collection of the passed Object.
 indexOfKey(String key) : NumberMixedCollection
Returns index within the collection of the passed key.
 insert(Number index, String key, [Object o]) : ObjectMixedCollection
Inserts an item at the specified index in the collection.
 item(String/Number key) : ObjectMixedCollection
Returns the item associated with the passed key OR index. Key has priority over index.
 itemAt(Number index) : ObjectMixedCollection
Returns the item at the specified index.
 key(String/Number key) : ObjectMixedCollection
Returns the item associated with the passed key.
 keySort([String direction], [Function fn]) : voidMixedCollection
Sorts this collection by keys
 last() : ObjectMixedCollection
Returns the last item in the collection.
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 remove(Object o) : ObjectMixedCollection
Removed an item from the collection.
 removeAt(Number index) : voidMixedCollection
Remove an item from a specified index in the collection.
 removeKey(String key) : voidMixedCollection
Removed an item associated with the passed key fom the collection.
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 replace(String key, [o {Object}]) : ObjectMixedCollection
Replaces an item in the collection.
 sort([String direction], [Function fn]) : voidMixedCollection
Sorts this collection with the passed comparison function
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDefined By
 add : (Number index, Object o, String key)MixedCollection
Fires when an item is added to the collection.
 clear : ()MixedCollection
Fires when the collection is cleared.
 remove : (Object o, [String key])MixedCollection
Fires when an item is removed from the collection.
 replace : (String key, Object old, Object new)MixedCollection
Fires when an item is replaced in the collection.
- - -

Constructor Details

-
-
-

MixedCollection

- public function MixedCollection(Boolean allowFunctions, Function keyFn) -
-
- Parameters: -
  • allowFunctions : Boolean
    True if the addAll function should add function references to the collection (defaults to false)
  • keyFn : Function
    A function that can accept an item of the type(s) stored in this MixedCollection and return the key value for that item. This is used when available to look up the key on items that were passed without an explicit key parameter to a MixedCollection method. Passing this parameter is equivalent to providing an implementation for the getKey method.
-
-
-
-
- -

Method Details

-
- -
-

add

- public function add(String key, Object o) -
- Adds an item to the collection. -
- Parameters: -
  • key : String
    The key to associate with the item
  • o : Object
    The item to add.
- Returns: -
    -
  • Object
    The item added.
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

addAll

- public function addAll(Object/Array objs) -
- Adds all elements of an Array or an Object to the collection. -
- Parameters: -
  • objs : Object/Array
    An Object containing properties which will be added to the collection, or an Array of values, each of which are added to the collection.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

clear

- public function clear() -
- Removes all items from the collection. -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

clone

- public function clone() -
- Creates a duplicate of this collection -
- Parameters: -
  • None.
- Returns: -
    -
  • MixedCollection
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

contains

- public function contains(Object o) -
- Returns true if the collection contains the passed Object as an item. -
- Parameters: -
  • o : Object
    The Object to look for in the collection.
- Returns: -
    -
  • Boolean
    True if the collection contains the Object as an item.
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

containsKey

- public function containsKey(String key) -
- Returns true if the collection contains the passed Object as a key. -
- Parameters: -
  • key : String
    The key to look for in the collection.
- Returns: -
    -
  • Boolean
    True if the collection contains the Object as a key.
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

each

- public function each(Function fn, [Object scope]) -
- Executes the specified function once for every item in the collection, passing each -item as the first and only parameter. returning false from the function will stop the iteration. -
- Parameters: -
  • fn : Function
    The function to execute for each item.
  • scope : Object
    (optional) The scope in which to execute the function.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

eachKey

- public function eachKey(Function fn, [Object scope]) -
- Executes the specified function once for every key in the collection, passing each -key, and its associated item as the first two parameters. -
- Parameters: -
  • fn : Function
    The function to execute for each item.
  • scope : Object
    (optional) The scope in which to execute the function.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

filter

- public function filter(String property, String/RegExp value) -
- Filter the objects in this collection by a specific property. -Returns a new collection that has been filtered. -
- Parameters: -
  • property : String
    A property on your objects
  • value : String/RegExp
    Either string that the property values should start with or a RegExp to test against the property
- Returns: -
    -
  • MixedCollection
    The new filtered collection
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

filterBy

- public function filterBy(Function fn, [Object scope]) -
- Filter by a function. * Returns a new collection that has been filtered. -The passed function will be called with each -object in the collection. If the function returns true, the value is included -otherwise it is filtered. -
- Parameters: -
  • fn : Function
    The function to be called, it will receive the args o (the object), k (the key)
  • scope : Object
    (optional) The scope of the function (defaults to this)
- Returns: -
    -
  • MixedCollection
    The new filtered collection
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

find

- public function find(Function fn, [Object scope]) -
- Returns the first item in the collection which elicits a true return value from the -passed selection function. -
- Parameters: -
  • fn : Function
    The selection function to execute for each item.
  • scope : Object
    (optional) The scope in which to execute the function.
- Returns: -
    -
  • Object
    The first item in the collection which returned true from the selection function.
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

first

- public function first() -
- Returns the first item in the collection. -
- Parameters: -
  • None.
- Returns: -
    -
  • Object
    the first item in the collection..
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

get

- public function get(String/Number key) -
- Returns the item associated with the passed key or index. -
- Parameters: -
  • key : String/Number
    The key or index of the item.
- Returns: -
    -
  • Object
    The item associated with the passed key.
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

getCount

- public function getCount() -
- Returns the number of items in the collection. -
- Parameters: -
  • None.
- Returns: -
    -
  • Number
    the number of items in the collection.
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

getKey

- public function getKey(o {Object}) -
- MixedCollection has a generic way to fetch keys if you implement getKey. -

-    // normal way
-    var mc = new Ext.util.MixedCollection();
-    mc.add(someEl.dom.id, someEl);
-    mc.add(otherEl.dom.id, otherEl);
-    //and so on
-    
-    // using getKey
-    var mc = new Ext.util.MixedCollection();
-    mc.getKey = function(el){
-       return el.dom.id;
-    }
-    mc.add(someEl);
-    mc.add(otherEl);
-    // etc
-    
-                
- Parameters: -
  • {Object} : o
    The item for which to find the key.
- Returns: -
    -
  • Object
    The key for the passed item.
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

getRange

- public function getRange([Number startIndex], [Number endIndex]) -
- Returns a range of items in this collection -
- Parameters: -
  • startIndex : Number
    (optional) defaults to 0
  • endIndex : Number
    (optional) default to the last item
- Returns: -
    -
  • Array
    An array of items
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

indexOf

- public function indexOf(Object o) -
- Returns index within the collection of the passed Object. -
- Parameters: -
  • o : Object
    The item to find the index of.
- Returns: -
    -
  • Number
    index of the item.
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

indexOfKey

- public function indexOfKey(String key) -
- Returns index within the collection of the passed key. -
- Parameters: -
  • key : String
    The key to find the index of.
- Returns: -
    -
  • Number
    index of the key.
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

insert

- public function insert(Number index, String key, [Object o]) -
- Inserts an item at the specified index in the collection. -
- Parameters: -
  • index : Number
    The index to insert the item at.
  • key : String
    The key to associate with the new item, or the item itself.
  • o : Object
    (optional) If the second parameter was a key, the new item.
- Returns: -
    -
  • Object
    The item inserted.
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

item

- public function item(String/Number key) -
- Returns the item associated with the passed key OR index. Key has priority over index. -
- Parameters: -
  • key : String/Number
    The key or index of the item.
- Returns: -
    -
  • Object
    The item associated with the passed key.
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

itemAt

- public function itemAt(Number index) -
- Returns the item at the specified index. -
- Parameters: -
  • index : Number
    The index of the item.
- Returns: -
    -
  • Object
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

key

- public function key(String/Number key) -
- Returns the item associated with the passed key. -
- Parameters: -
  • key : String/Number
    The key of the item.
- Returns: -
    -
  • Object
    The item associated with the passed key.
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

keySort

- public function keySort([String direction], [Function fn]) -
- Sorts this collection by keys -
- Parameters: -
  • direction : String
    (optional) "ASC" or "DESC"
  • fn : Function
    (optional) a comparison function (defaults to case insensitive string)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

last

- public function last() -
- Returns the last item in the collection. -
- Parameters: -
  • None.
- Returns: -
    -
  • Object
    the last item in the collection..
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

remove

- public function remove(Object o) -
- Removed an item from the collection. -
- Parameters: -
  • o : Object
    The item to remove.
- Returns: -
    -
  • Object
    The item removed.
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

removeAt

- public function removeAt(Number index) -
- Remove an item from a specified index in the collection. -
- Parameters: -
  • index : Number
    The index within the collection of the item to remove.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

removeKey

- public function removeKey(String key) -
- Removed an item associated with the passed key fom the collection. -
- Parameters: -
  • key : String
    The key of the item to remove.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

replace

- public function replace(String key, [o {Object}]) -
- Replaces an item in the collection. -
- Parameters: -
  • key : String
    The key associated with the item to replace, or the item to replace.
  • {Object} : o
    o (optional) If the first parameter passed was a key, the item to associate with that key.
- Returns: -
    -
  • Object
    The new item.
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

sort

- public function sort([String direction], [Function fn]) -
- Sorts this collection with the passed comparison function -
- Parameters: -
  • direction : String
    (optional) "ASC" or "DESC"
  • fn : Function
    (optional) comparison function
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by MixedCollection.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- -

Event Details

-
- -
-

add

- public event add -
- Fires when an item is added to the collection. -
- Subscribers will be called with the following parameters: -
  • index : Number
    The index at which the item was added.
  • o : Object
    The item added.
  • key : String
    The key associated with the added item.
-
-
-
This event is defined by MixedCollection.
-
- -
-

clear

- public event clear -
- Fires when the collection is cleared. -
- Subscribers will be called with the following parameters: -
  • None.
-
-
-
This event is defined by MixedCollection.
-
- -
-

remove

- public event remove -
- Fires when an item is removed from the collection. -
- Subscribers will be called with the following parameters: -
  • o : Object
    The item being removed.
  • key : String
    (optional) The key associated with the removed item.
-
-
-
This event is defined by MixedCollection.
-
- -
-

replace

- public event replace -
- Fires when an item is replaced in the collection. -
- Subscribers will be called with the following parameters: -
  • key : String
    he key associated with the new added.
  • old : Object
    The item being replaced.
  • new : Object
    The new item.
-
-
-
This event is defined by MixedCollection.
-
-
- -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.util.Observable.html b/www/extras/extjs/docs/output/Ext.util.Observable.html deleted file mode 100644 index 86a860349..000000000 --- a/www/extras/extjs/docs/output/Ext.util.Observable.html +++ /dev/null @@ -1,321 +0,0 @@ - - - - Ext.util.Observable - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.util.Observable

- - - - - - -
Package:Ext.util
Class:Observable
Extends:Object
Subclasses:BasicDialog, BasicLayoutRegion, Button, Component, ContentPanel, LayoutManager, Resizable, SplitBar, TabPanel, TabPanelItem, UpdateManager, View, Node, Store, Tree, BasicForm, AbstractSelectionModel, ColumnModel, Grid, Menu, DefaultSelectionModel, MultiSelectionModel, ClickRepeater, MixedCollection
Defined In:Observable.js
-
- Abstract base class that provides a common interface for publishing events. Subclasses are expected to -to have a property "events" with all the events defined.
-For example: -
Employee = function(name){
-    this.name = name;
-    this.events = {
-        "fired" : true,
-        "quit" : true
-    }
- }
- Ext.extend(Employee, Ext.util.Observable);
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 Observable.capture(Observable o, Function fn, [Object scope]) : voidObservable
<static> Starts capture on the specified Observable. All events will be passed -to the supplied function with th...
 Observable.releaseCapture(Observable o) : voidObservable
<static> Removes all added captures from the Observable.
 addEvents(Object object) : voidObservable
Copies any events from the passed object onto this object if they do not already exist. The passed object -must also ...
 addListener(String eventName, Function handler, [Object scope], [Object options]) : voidObservable
Appends an event handler to this component
 fireEvent(String eventName, Object... args) : BooleanObservable
Fires the specified event with the passed parameters (minus the event name).
 hasListener(String eventName) : BooleanObservable
Checks to see if this object is currently listening for a specified event
 on(String eventName, Function handler, [Object options]) : voidObservable
Appends an event handler to this element (shorthand for addListener)
 purgeListeners() : voidObservable
Removes all listeners for this object
 removeListener(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener
 un(String eventName, Function handler, [Object scope]) : voidObservable
Removes a listener (shorthand for removeListener)
- -

Public Events

-
This class has no public events.
- -

Method Details

-
- -
-

Observable.capture

- public function Observable.capture(Observable o, Function fn, [Object scope]) -
- <static> Starts capture on the specified Observable. All events will be passed -to the supplied function with the event name + standard signature of the event -before the event is fired. If the supplied function returns false, -the event will not fire. -
- Parameters: -
  • o : Observable
    The Observable to capture
  • fn : Function
    The function to call
  • scope : Object
    (optional) The scope (this object) for the fn
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

Observable.releaseCapture

- public function Observable.releaseCapture(Observable o) -
- <static> Removes all added captures from the Observable. -
- Parameters: -
  • o : Observable
    The Observable to release
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addEvents

- public function addEvents(Object object) -
- Copies any events from the passed object onto this object if they do not already exist. The passed object -must also inherit from Observable for this method to have any effect. -
- Parameters: -
  • object : Object
    The object from which to copy events
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

addListener

- public function addListener(String eventName, Function handler, [Object scope], [Object options]) -
- Appends an event handler to this component -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • scope : Object
    (optional) The scope in which to execute the handler function. The handler function's "this" context.
  • options : Object
    (optional) An object containing handler configuration properties. This may contain any of the following properties:
    • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
    • delegate {String} A simple selector to filter the target or look for a descendant of the target
    • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
    • preventDefault {Boolean} True to prevent the default action
    • stopPropagation {Boolean} True to prevent event propagation
    • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
    • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
    • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
    • buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

    Combining Options
    Using the options argument, it is possible to combine different types of listeners:

    A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

    Code:
    el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

    The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

    Attaching multiple handlers in 1 call
    Code:

    el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

    Or a shorthand syntax:
    Code:

    el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

fireEvent

- public function fireEvent(String eventName, Object... args) -
- Fires the specified event with the passed parameters (minus the event name). -
- Parameters: -
  • eventName : String
  • args : Object...
    Variable number of parameters are passed to handlers
- Returns: -
    -
  • Boolean
    returns false if any of the handlers return false otherwise it returns true
  • -
-
-
-
This method is defined by Observable.
-
- -
-

hasListener

- public function hasListener(String eventName) -
- Checks to see if this object is currently listening for a specified event -
- Parameters: -
  • eventName : String
    The name of the event to check for
- Returns: -
    -
  • Boolean
    True if the event is being listened for, else false
  • -
-
-
-
This method is defined by Observable.
-
- -
-

on

- public function on(String eventName, Function handler, [Object options]) -
- Appends an event handler to this element (shorthand for addListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The method the event invokes
  • options : Object
    (optional)
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

purgeListeners

- public function purgeListeners() -
- Removes all listeners for this object -
- Parameters: -
  • None.
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

removeListener

- public function removeListener(String eventName, Function handler, [Object scope]) -
- Removes a listener -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
- -
-

un

- public function un(String eventName, Function handler, [Object scope]) -
- Removes a listener (shorthand for removeListener) -
- Parameters: -
  • eventName : String
    The type of event to listen for
  • handler : Function
    The handler to remove
  • scope : Object
    (optional) The scope (this object) for the handler
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by Observable.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Ext.util.TextMetrics.html b/www/extras/extjs/docs/output/Ext.util.TextMetrics.html deleted file mode 100644 index 5c729d297..000000000 --- a/www/extras/extjs/docs/output/Ext.util.TextMetrics.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - Ext.util.TextMetrics - - - - - - -
-
-  Print Friendly
- -
-

Class Ext.util.TextMetrics

- - - - - -
Package:Ext.util
Class:TextMetrics
Extends:Object
Defined In:TextMetrics.js
-
- Provides precise pixel measurements for blocks of text so that you can determine exactly how high and -wide, in pixels, a given block of text will be.

This class is a singleton and cannot be created directly.
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 bind(String/HTMLElement el) : voidTextMetrics
Binds this TextMetrics instance to an element from which to copy existing CSS styles -that can affect the size of the ...
 createInstance(String/HTMLElement el, [Number fixedWidth]) : Ext.util.TextMetrics.InstanceTextMetrics
Return a unique TextMetrics instance that can be bound directly to an element and reused. This reduces -the overhead ...
 getHeight(String text) : NumberTextMetrics
Returns the measured height of the specified text. For multiline text, be sure to call -setFixedWidth if necessary.
 getSize(String text) : ObjectTextMetrics
Returns the size of the specified text based on the internal element's style and width properties
 getWidth(String text) : NumberTextMetrics
Returns the measured width of the specified text
 measure(String/HTMLElement el, String text, [Number fixedWidth]) : ObjectTextMetrics
Measures the size of the specified text
 setFixedWidth(Number width) : voidTextMetrics
Sets a fixed width on the internal measurement element. If the text will be multiline, you have -to set a fixed width...
- -

Public Events

-
This class has no public events.
- -

Method Details

-
- -
-

bind

- public function bind(String/HTMLElement el) -
- Binds this TextMetrics instance to an element from which to copy existing CSS styles -that can affect the size of the rendered text -
- Parameters: -
  • el : String/HTMLElement
    The element, dom node or id
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TextMetrics.
-
- -
-

createInstance

- public function createInstance(String/HTMLElement el, [Number fixedWidth]) -
- Return a unique TextMetrics instance that can be bound directly to an element and reused. This reduces -the overhead of multiple calls to initialize the style properties on each measurement. -
- Parameters: -
  • el : String/HTMLElement
    The element, dom node or id that the instance will be bound to
  • fixedWidth : Number
    (optional) If the text will be multiline, you have to set a fixed width in order to accurately measure the text height
- Returns: -
    -
  • Ext.util.TextMetrics.Instance
    instance The new instance
  • -
-
-
-
This method is defined by TextMetrics.
-
- -
-

getHeight

- public function getHeight(String text) -
- Returns the measured height of the specified text. For multiline text, be sure to call -setFixedWidth if necessary. -
- Parameters: -
  • text : String
    The text to measure
- Returns: -
    -
  • Number
    height The height in pixels
  • -
-
-
-
This method is defined by TextMetrics.
-
- -
-

getSize

- public function getSize(String text) -
- Returns the size of the specified text based on the internal element's style and width properties -
- Parameters: -
  • text : String
    The text to measure
- Returns: -
    -
  • Object
    An object containing the text's size {width: (width), height: (height)}
  • -
-
-
-
This method is defined by TextMetrics.
-
- -
-

getWidth

- public function getWidth(String text) -
- Returns the measured width of the specified text -
- Parameters: -
  • text : String
    The text to measure
- Returns: -
    -
  • Number
    width The width in pixels
  • -
-
-
-
This method is defined by TextMetrics.
-
- -
-

measure

- public function measure(String/HTMLElement el, String text, [Number fixedWidth]) -
- Measures the size of the specified text -
- Parameters: -
  • el : String/HTMLElement
    The element, dom node or id from which to copy existing CSS styles that can affect the size of the rendered text
  • text : String
    The text to measure
  • fixedWidth : Number
    (optional) If the text will be multiline, you have to set a fixed width in order to accurately measure the text height
- Returns: -
    -
  • Object
    An object containing the text's size {width: (width), height: (height)}
  • -
-
-
-
This method is defined by TextMetrics.
-
- -
-

setFixedWidth

- public function setFixedWidth(Number width) -
- Sets a fixed width on the internal measurement element. If the text will be multiline, you have -to set a fixed width in order to accurately measure the text height. -
- Parameters: -
  • width : Number
    The width to set on the element
- Returns: -
    -
  • void
  • -
-
-
-
This method is defined by TextMetrics.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Field.jss.html b/www/extras/extjs/docs/output/Field.jss.html deleted file mode 100644 index b8e80032f..000000000 --- a/www/extras/extjs/docs/output/Field.jss.html +++ /dev/null @@ -1,491 +0,0 @@ -Field.js

Field.js

/**
- * @class Ext.form.Field
- * @extends Ext.Component
- * Base class for form fields that provides default event handling, sizing, value handling and other functionality.
- * @constructor
- * Creates a new Field 
- * @param {Object} config Configuration options
- */
-Ext.form.Field = function(config){
-    Ext.form.Field.superclass.constructor.call(this, config);
-    this.addEvents({
-        /**
-         * @event focus
-         * Fires when this field receives input focus
-	     * @param {Ext.form.Field} this
-	     */
-        focus : true,
-        /**
-         * @event blur
-         * Fires when
-	     * @param {Ext.form.Field} this
-	     */
-        blur : true,
-        /**
-         * @event specialkey
-         * Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed.  You can check
-         * {@link Ext.EventObject#getKey} to determine which key was pressed.
-	     * @param {Ext.form.Field} this
-	     * @param {Ext.EventObject} e The event object
-	     */
-        specialkey : true,
-        /**
-         * @event change
-         * Fires just before the field blurs if the field value has changed
-	     * @param {Ext.form.Field} this
-	     * @param {Mixed} value The changed value
-	     * @param {Mixed} value The original value
-	     */
-        change : true,
-        /**
-         * @event invalid
-         * Fires after the field has been marked as invalid
-	     * @param {Ext.form.Field} this
-	     * @param {String} msg The validation message
-	     */
-        invalid : true,
-        /**
-         * @event valid
-         * Fires after the field has been validated with no errors
-	     * @param {Ext.form.Field} this
-	     */
-        valid : true
-    });
-};
-
-Ext.extend(Ext.form.Field, Ext.Component,  {
-    /**
-     * @cfg {String} invalidClass The CSS class to use when marking a field invalid (defaults to "x-form-invalid")
-     */
-    invalidClass : "x-form-invalid",
-    /**
-     * @cfg {String} invalidText The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field is invalid")
-     */
-    invalidText : "The value in this field is invalid",
-    /**
-     * @cfg {String} focusClass The CSS class to use when the field receives focus (defaults to "x-form-focus")
-     */
-    focusClass : "x-form-focus",
-    /**
-     * @cfg {String/Boolean} validationEvent The event that should initiate field validation. Set to false to disable
-      automatic validation. (defaults to "keyup")
-     */
-    validationEvent : "keyup",
-    /**
-     * @cfg {String/Boolean} validateOnBlur Defaults to true.
-     */
-    validateOnBlur : true,
-    /**
-     * @cfg {Number} validationDelay The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)
-     */
-    validationDelay : 250,
-    /**
-     * @cfg {String/Object} autoCreate A DomHelper element spec, or true for a default element spec (defaults to
-     * {tag: "input", type: "text", size: "20", autocomplete: "off"})
-     */
-    defaultAutoCreate : {tag: "input", type: "text", size: "20", autocomplete: "off"},
-    /**
-     * @cfg {String} fieldClass The default CSS class for the field (defaults to "x-form-field")
-     */
-    fieldClass: "x-form-field",
-    /**
-     * @cfg {String} msgTarget The location where error text should display.  Should be one of the following values (defaults to 'qtip'):
-     *<pre>
-Value         Description
------------   ----------------------------------------------------------------------
-qtip          Display a quick tip when the user hovers over the field
-title         Display a default browser title attribute popup
-under         Add a block div beneath the field containing the error text
-side          Add an error icon to the right of the field with a popup on hover
-[element id]  Add the error text directly to the innerHTML of the specified element
-</pre>
-     */
-    msgTarget: 'qtip',
-    /**
-     * @cfg {String} msgFx <b>Experimental</b> The effect used when displaying a validation message under the field (defaults to 'normal').
-     */
-    msgFx : 'normal',
-
-    /**
-     * @cfg {String} inputType The type attribute for input fields - e.g. radio, text, password. (defaults to "text")
-     */
-    inputType : undefined,
-
-    // private
-    isFormField : true,
-
-    // private
-    hasFocus : false,
-
-    /**
-     * @cfg {Mixed} value A value to initialize this field with
-     */
-    value : undefined,
-
-
-    /**
-     * Returns the name attribute of the field if available
-     * @return {String} name The field name
-     */
-    getName: function(){
-         return this.rendered && this.el.dom.name ? this.el.dom.name : (this.hiddenName || '');
-    },
-
-    /**
-     * Apply the behaviors of this component to an existing element. <b>This is used instead of render().</b>
-     * @param {String/HTMLElement/Element} el The id of the node, a DOM Node or an existing Element
-     * @return {Ext.form.Field} this
-     */
-    applyTo : function(target){
-        this.target = target;
-        this.el = Ext.get(target);
-        this.render(this.el.dom.parentNode);
-        return this;
-    },
-
-    // private
-    onRender : function(ct, position){
-        if(this.el){
-            this.el = Ext.get(this.el);
-            if(!this.target){
-                ct.dom.appendChild(this.el.dom);
-            }
-        }else {
-            var cfg = this.getAutoCreate();
-            if(!cfg.name){
-                cfg.name = this.name || this.id;
-            }
-            if(this.inputType){
-                cfg.type = this.inputType;
-            }
-            if(this.tabIndex !== undefined){
-                cfg.tabIndex = this.tabIndex;
-            }
-            this.el = ct.createChild(cfg, position);
-        }
-        var type = this.el.dom.type;
-        if(type){
-            if(type == 'password'){
-                type = 'text';
-            }
-            this.el.addClass('x-form-'+type);
-        }
-        if(!this.customSize && (this.width || this.height)){
-            this.setSize(this.width || "", this.height || "");
-        }
-        if(this.readOnly){
-            this.el.dom.readOnly = true;
-        }
-
-        this.el.addClass([this.fieldClass, this.cls]);
-        this.initValue();
-    },
-
-    // private
-    initValue : function(){
-        if(this.value !== undefined){
-            this.setValue(this.value);
-        }else if(this.el.dom.value.length > 0){
-            this.setValue(this.el.dom.value);
-        }
-    },
-
-    // private
-    afterRender : function(){
-        Ext.form.Field.superclass.afterRender.call(this);
-        this.initEvents();
-    },
-
-    // private
-    fireKey : function(e){
-        if(e.isNavKeyPress()){
-            this.fireEvent("specialkey", this, e);
-        }
-    },
-
-    /**
-     * Resets the current field value to the originally-loaded value and clears any validation messages
-     */
-    reset : function(){
-        this.setValue(this.originalValue);
-        this.clearInvalid();
-    },
-
-    // private
-    initEvents : function(){
-        this.el.on(Ext.isIE ? "keydown" : "keypress", this.fireKey,  this);
-        this.el.on("focus", this.onFocus,  this);
-        this.el.on("blur", this.onBlur,  this);
-
-        // reference to original value for reset
-        this.originalValue = this.getValue();
-    },
-
-    // private
-    onFocus : function(){
-        if(!Ext.isOpera){ // don't touch in Opera
-            this.el.addClass(this.focusClass);
-        }
-        this.hasFocus = true;
-        this.startValue = this.getValue();
-        this.fireEvent("focus", this);
-    },
-
-    // private
-    onBlur : function(){
-        this.el.removeClass(this.focusClass);
-        this.hasFocus = false;
-        if(this.validationEvent !== false && this.validateOnBlur && this.validationEvent != "blur"){
-            this.validate();
-        }
-        var v = this.getValue();
-        if(v != this.startValue){
-            this.fireEvent('change', this, v, this.startValue);
-        }
-        this.fireEvent("blur", this);
-    },
-
-    /**
-     * Sets the height and width of the field
-     * @param {Number} width The new field width in pixels
-     * @param {Number} height The new field height in pixels
-     */
-    setSize : function(w, h){
-        if(!this.rendered || !this.el){
-            this.width = w;
-            this.height = h;
-            return;
-        }
-        if(w){
-            w = this.adjustWidth(this.el.dom.tagName, w);
-            this.el.setWidth(w);
-        }
-        if(h){
-            this.el.setHeight(h);
-        }
-        var h = this.el.dom.offsetHeight; // force browser recalc
-    },
-
-    /**
-     * Returns whether or not the field value is currently valid
-     * @param {Boolean} preventMark True to disable marking the field invalid
-     * @return {Boolean} True if the value is valid, else false
-     */
-    isValid : function(preventMark){
-        if(this.disabled){
-            return true;
-        }
-        var restore = this.preventMark;
-        this.preventMark = preventMark === true;
-        var v = this.validateValue(this.getRawValue());
-        this.preventMark = restore;
-        return v;
-    },
-
-    /**
-     * Validates the field value
-     * @return {Boolean} True if the value is valid, else false
-     */
-    validate : function(){
-        if(this.disabled || this.validateValue(this.getRawValue())){
-            this.clearInvalid();
-            return true;
-        }
-        return false;
-    },
-
-    // private
-    // Subclasses should provide the validation implementation by overriding this
-    validateValue : function(value){
-        return true;
-    },
-
-    /**
-     * Mark this field as invalid
-     * @param {String} msg The validation message
-     */
-    markInvalid : function(msg){
-        if(!this.rendered || this.preventMark){ // not rendered
-            return;
-        }
-        this.el.addClass(this.invalidClass);
-        msg = msg || this.invalidText;
-        switch(this.msgTarget){
-            case 'qtip':
-                this.el.dom.qtip = msg;
-                this.el.dom.qclass = 'x-form-invalid-tip';
-                break;
-            case 'title':
-                this.el.dom.title = msg;
-                break;
-            case 'under':
-                if(!this.errorEl){
-                    var elp = this.el.findParent('.x-form-element', 5, true);
-                    this.errorEl = elp.createChild({cls:'x-form-invalid-msg'});
-                    this.errorEl.setWidth(elp.getWidth(true)-20);
-                }
-                this.errorEl.update(msg);
-                Ext.form.Field.msgFx[this.msgFx].show(this.errorEl, this);
-                break;
-            case 'side':
-                if(!this.errorIcon){
-                    var elp = this.el.findParent('.x-form-element', 5, true);
-                    this.errorIcon = elp.createChild({cls:'x-form-invalid-icon'});
-                }
-                this.alignErrorIcon();
-                this.errorIcon.dom.qtip = msg;
-                this.errorIcon.dom.qclass = 'x-form-invalid-tip';
-                this.errorIcon.show();
-                break;
-            default:
-                var t = Ext.getDom(this.msgTarget);
-                t.innerHTML = msg;
-                t.style.display = this.msgDisplay;
-                break;
-        }
-        this.fireEvent('invalid', this, msg);
-    },
-
-    // private
-    alignErrorIcon : function(){
-        this.errorIcon.alignTo(this.el, 'tl-tr', [2, 0]);
-    },
-
-    /**
-     * Clear any invalid styles/messages for this field
-     */
-    clearInvalid : function(){
-        if(!this.rendered || this.preventMark){ // not rendered
-            return;
-        }
-        this.el.removeClass(this.invalidClass);
-        switch(this.msgTarget){
-            case 'qtip':
-                this.el.dom.qtip = '';
-                break;
-            case 'title':
-                this.el.dom.title = '';
-                break;
-            case 'under':
-                if(this.errorEl){
-                    Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl, this);
-                }
-                break;
-            case 'side':
-                if(this.errorIcon){
-                    this.errorIcon.dom.qtip = '';
-                    this.errorIcon.hide();
-                }
-                break;
-            default:
-                var t = Ext.getDom(this.msgTarget);
-                t.innerHTML = '';
-                t.style.display = 'none';
-                break;
-        }
-        this.fireEvent('valid', this);
-    },
-
-    /**
-     * Returns the raw data value which may or may not be a valid, defined value.  To return a normalized value see {@link #getValue}.
-     * @return {Mixed} value The field value
-     */
-    getRawValue : function(){
-        return this.el.getValue();
-    },
-
-    /**
-     * Returns the normalized data value (undefined or emptyText will be returned as '').  To return the raw value see {@link #getRawValue}.
-     * @return {Mixed} value The field value
-     */
-    getValue : function(){
-        var v = this.el.getValue();
-        if(v == this.emptyText || v === undefined){
-            v = '';
-        }
-        return v;
-    },
-
-    /**
-     * Sets the underlying DOM field's value directly, bypassing validation.  To set the value with validation see {@link #setValue}.
-     * @param {Mixed} value The value to set
-     */
-    setRawValue : function(v){
-        return this.el.dom.value = v;
-    },
-
-    /**
-     * Sets a data value into the field and validates it.  To set the value directly without validation see {@link #setRawValue}.
-     * @param {Mixed} value The value to set
-     */
-    setValue : function(v){
-        this.value = v;
-        if(this.rendered){
-            this.el.dom.value = v;
-            this.validate();
-        }
-    },
-
-    // private
-    adjustWidth : function(tag, w){
-        tag = tag.toLowerCase();
-        if(typeof w == 'number' && Ext.isStrict && !Ext.isSafari){
-            if(Ext.isIE && (tag == 'input' || tag == 'textarea')){
-                if(tag == 'input'){
-                    return w + 2;
-                }
-                if(tag = 'textarea'){
-                    return w-2;
-                }
-            }else if(Ext.isGecko && tag == 'textarea'){
-                return w-6;
-            }else if(Ext.isOpera){
-                if(tag == 'input'){
-                    return w + 2;
-                }
-                if(tag = 'textarea'){
-                    return w-2;
-                }
-            }
-        }
-        return w;
-    }
-});
-
-
-// anything other than normal should be considered experimental
-Ext.form.Field.msgFx = {
-    normal : {
-        show: function(msgEl, f){
-            msgEl.setDisplayed('block');
-        },
-
-        hide : function(msgEl, f){
-            msgEl.setDisplayed(false).update('');
-        }
-    },
-
-    slide : {
-        show: function(msgEl, f){
-            msgEl.slideIn('t', {stopFx:true});
-        },
-
-        hide : function(msgEl, f){
-            msgEl.slideOut('t', {stopFx:true,useDisplay:true});
-        }
-    },
-
-    slideRight : {
-        show: function(msgEl, f){
-            msgEl.fixDisplay();
-            msgEl.alignTo(f.el, 'tl-tr');
-            msgEl.slideIn('l', {stopFx:true});
-        },
-
-        hide : function(msgEl, f){
-            msgEl.slideOut('l', {stopFx:true,useDisplay:true});
-        }
-    }
-};
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Form.jss.html b/www/extras/extjs/docs/output/Form.jss.html deleted file mode 100644 index 78ea7db02..000000000 --- a/www/extras/extjs/docs/output/Form.jss.html +++ /dev/null @@ -1,291 +0,0 @@ -Form.js

Form.js

/**
- * @class Ext.form.Form
- * @extends Ext.form.BasicForm
- * Adds the ability to dynamically render forms with JS to {@link Ext.form.BasicForm}.
- * @constructor
- * @param {Object} config Configuration options
- */
-Ext.form.Form = function(config){
-    Ext.form.Form.superclass.constructor.call(this, null, config);
-    this.url = this.url || this.action;
-    if(!this.root){
-        this.root = new Ext.form.Layout(Ext.applyIf({
-            id: Ext.id()
-        }, config));
-    }
-    this.active = this.root;
-    /**
-     * Array of all the buttons that have been added to this form via addButton
-     * @type Array
-     */
-    this.buttons = [];
-    this.addEvents({
-        /**
-         * @event clientvalidation
-         * If the monitorValid config option is true, this event fires repetitively to notify of valid state
-         * @param {Form} this
-         * @param {Boolean} valid true if the form has passed client-side validation
-         */
-        clientvalidation: true
-    });
-};
-
-Ext.extend(Ext.form.Form, Ext.form.BasicForm, {
-    /**
-     * @cfg {Number} labelWidth The width of labels. This property cascades to child containers.
-     */
-// holder
-/***
-     * @cfg {String} itemCls A css class to apply to the x-form-item of fields. This property cascades to child containers.
-     */
-// holder
-/***
-     * @cfg {String} buttonAlign Valid values are "left," "center" and "right" (defaults to "center")
-     */
-    buttonAlign:'center',
-
-    /**
-     * @cfg {Number} minButtonWidth Minimum width of all buttons (defaults to 75)
-     */
-    minButtonWidth:75,
-
-    /**
-     * @cfg {String} labelAlign Valid values are "left," "top" and "right" (defaults to "left").
-     * This property cascades to child containers if not set.
-     */
-    labelAlign:'left',
-
-    /**
-     * @cfg {Boolean} monitorValid If true the form monitors it's valid state <b>client-side</b> and
-     * fires a looping event with that state. This is required to bind buttons to the valid
-     * state using the config value bindForm:true on the button.
-     */
-    monitorValid : false,
-
-    /**
-     * @cfg {Number} monitorPoll The milliseconds to poll valid state, ignored if monitorValid is not true (defaults to 200)
-     */
-    monitorPoll : 200,
-
-    /**
-     * Opens the a new {@link Ext.form.Column} container in the layout stack. If fields are passed after the config, the
-     * fields are added and the column is closed. If no fields are passed the column remains open
-     * until end() is called.
-     * @param {Object} config The config to pass to the column
-     * @param {Field} field1 (optional)
-     * @param {Field} field2 (optional)
-     * @param {Field} etc (optional)
-     * @return Column The column container object
-     */
-    column : function(c){
-        var col = new Ext.form.Column(c);
-        this.start(col);
-        if(arguments.length > 1){ // duplicate code required because of Opera
-            this.add.apply(this, Array.prototype.slice.call(arguments, 1));
-            this.end();
-        }
-        return col;
-    },
-
-    /**
-     * Opens the a new {@link Ext.form.FieldSet} container in the layout stack. If fields are passed after the config, the
-     * fields are added and the fieldset is closed. If no fields are passed the fieldset remains open
-     * until end() is called.
-     * @param {Object} config The config to pass to the fieldset
-     * @param {Field} field1 (optional)
-     * @param {Field} field2 (optional)
-     * @param {Field} etc (optional)
-     * @return FieldSet The fieldset container object
-     */
-    fieldset : function(c){
-        var fs = new Ext.form.FieldSet(c);
-        this.start(fs);
-        if(arguments.length > 1){ // duplicate code required because of Opera
-            this.add.apply(this, Array.prototype.slice.call(arguments, 1));
-            this.end();
-        }
-        return fs;
-    },
-
-    /**
-     * Opens the a new {@link Ext.form.Layout} container in the layout stack. If fields are passed after the config, the
-     * fields are added and the container is closed. If no fields are passed the container remains open
-     * until end() is called.
-     * @param {Object} config The config to pass to the Layout
-     * @param {Field} field1 (optional)
-     * @param {Field} field2 (optional)
-     * @param {Field} etc (optional)
-     * @return Layout The container object
-     */
-    container : function(c){
-        var l = new Ext.form.Layout(c);
-        this.start(l);
-        if(arguments.length > 1){ // duplicate code required because of Opera
-            this.add.apply(this, Array.prototype.slice.call(arguments, 1));
-            this.end();
-        }
-        return l;
-    },
-
-    /**
-     * Opens the passed container in the layout stack. The container can be any {@link Ext.form.Layout} or subclass.
-     * @param {Object} container A Ext.form.Layout or subclass of Layout
-     * @return {Form} this
-     */
-    start : function(c){
-        // cascade label info
-        Ext.applyIf(c, {'labelAlign': this.active.labelAlign, 'labelWidth': this.active.labelWidth, 'itemCls': this.active.itemCls});
-        this.active.stack.push(c);
-        c.ownerCt = this.active;
-        this.active = c;
-        return this;
-    },
-
-    /**
-     * Closes the current open container
-     * @return {Form} this
-     */
-    end : function(){
-        if(this.active == this.root){
-            return this;
-        }
-        this.active = this.active.ownerCt;
-        return this;
-    },
-
-    /**
-     * Add Ext.form components to the current open container (e.g. column, fieldset, etc)
-     * @param {Field} field1
-     * @param {Field} field2 (optional)
-     * @param {Field} etc (optional)
-     * @return {Form} this
-     */
-    add : function(){
-        this.active.stack.push.apply(this.active.stack, arguments);
-        var r = [];
-        for(var i = 0, a = arguments, len = a.length; i < len; i++) {
-            if(a[i].isFormField){
-                r.push(a[i]);
-            }
-        }
-        if(r.length > 0){
-            Ext.form.Form.superclass.add.apply(this, r);
-        }
-        return this;
-    },
-
-    /**
-     * Render this form into the passed container. This should only be called once!
-     * @param {String/HTMLElement/Element} container The element this component should be rendered into
-     * @return {Form} this
-     */
-    render : function(ct){
-        ct = Ext.get(ct);
-        var o = this.autoCreate || {
-            tag: 'form',
-            method : this.method || 'POST',
-            id : this.id || Ext.id()
-        };
-        this.initEl(ct.createChild(o));
-
-        this.root.render(this.el);
-
-        this.items.each(function(f){
-            f.render('x-form-el-'+f.id);
-        });
-
-        if(this.buttons.length > 0){
-            // tables are required to maintain order and for correct IE layout
-            var tb = this.el.createChild({cls:'x-form-btns-ct', cn: {
-                cls:"x-form-btns x-form-btns-"+this.buttonAlign,
-                html:'<table cellspacing="0"><tbody><tr></tr></tbody></table><div class="x-clear"></div>'
-            }}, null, true);
-            var tr = tb.getElementsByTagName('tr')[0];
-            for(var i = 0, len = this.buttons.length; i < len; i++) {
-                var b = this.buttons[i];
-                var td = document.createElement('td');
-                td.className = 'x-form-btn-td';
-                b.render(tr.appendChild(td));
-            }
-        }
-        if(this.monitorValid){ // initialize after render
-            this.startMonitoring();
-        }
-        return this;
-    },
-
-    /**
-     * Adds a button to the footer of the form - this <b>must</b> be called before the form is rendered.
-     * @param {String/Object} config A string becomes the button text, an object can either be a Button config
-     * object or a valid Ext.DomHelper element config
-     * @param {Function} handler The function called when the button is clicked
-     * @param {Object} scope (optional) The scope of the handler function
-     * @return {Ext.Button}
-     */
-    addButton : function(config, handler, scope){
-        var bc = {
-            handler: handler,
-            scope: scope,
-            minWidth: this.minButtonWidth,
-            hideParent:true
-        };
-        if(typeof config == "string"){
-            bc.text = config;
-        }else{
-            Ext.apply(bc, config);
-        }
-        var btn = new Ext.Button(null, bc);
-        this.buttons.push(btn);
-        return btn;
-    },
-
-    /**
-     * Starts monitoring of the valid state of this form. Usually this is don't by passing the config
-     * option "monitorValid"
-     */
-    startMonitoring : function(){
-        if(!this.bound){
-            this.bound = true;
-            Ext.TaskMgr.start({
-                run : this.bindHandler,
-                interval : this.monitorPoll || 200,
-                scope: this
-            });
-        }
-    },
-
-    /**
-     * Stops monitoring of the valid state of this form
-     */
-    stopMonitoring : function(){
-        this.bound = false;
-    },
-
-    // private
-    bindHandler : function(){
-        if(!this.bound){
-            return false; // stops binding
-        }
-        var valid = true;
-        this.items.each(function(f){
-            if(!f.isValid(true)){
-                valid = false;
-                return false;
-            }
-        });
-        for(var i = 0, len = this.buttons.length; i < len; i++){
-            var btn = this.buttons[i];
-            if(btn.formBind === true && btn.disabled === valid){
-                btn.setDisabled(!valid);
-            }
-        }
-        this.fireEvent('clientvalidation', this, valid);
-    }
-});
-
-
-// back compat
-Ext.Form = Ext.form.Form;
-
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Format.jss.html b/www/extras/extjs/docs/output/Format.jss.html deleted file mode 100644 index 04f5ca4fa..000000000 --- a/www/extras/extjs/docs/output/Format.jss.html +++ /dev/null @@ -1,149 +0,0 @@ -Format.js

Format.js

/**
- * @class Ext.util.Format
- * Reusable data formatting functions
- * @singleton
- */
-Ext.util.Format = function(){
-    var trimRe = /^\s+|\s+$/g;
-    return {
-        /**
-         * Truncate a string and add an ellipsis ('...') to the end if it exceeds the specified length
-         * @param {String} value The string to truncate
-         * @param {Number} length The maximum length to allow before truncating
-         * @return {String} The converted text
-         */
-        ellipsis : function(value, len){
-            if(value && value.length > len){
-                return value.substr(0, len-3)+"...";
-            }
-            return value;
-        },
-
-        /**
-         * Checks a reference and converts it to empty string if it is undefined
-         * @param {Mixed} value Reference to check
-         * @return {Mixed} Empty string if converted, otherwise the original value
-         */
-        undef : function(value){
-            return typeof value != "undefined" ? value : "";
-        },
-
-        /**
-         * Convert certain characters (&, <, >, and ') to their HTML character equivalents for literal display in web pages.
-         * @param {String} value The string to encode
-         * @return {String} The encoded text
-         */
-        htmlEncode : function(value){
-            return !value ? value : String(value).replace(/&/g, "&amp;").replace(/>/g, "&gt;").replace(/</g, "&lt;").replace(/"/g, "&quot;");
-        },
-
-        /**
-         * Trims any whitespace from either side of a string
-         * @param {String} value The text to trim
-         * @return {String} The trimmed text
-         */
-        trim : function(value){
-            return String(value).replace(trimRe, "");
-        },
-
-        /**
-         * Returns a substring from within an original string
-         * @param {String} value The original text
-         * @param {Number} start The start index of the substring
-         * @param {Number} length The length of the substring
-         * @return {String} The substring
-         */
-        substr : function(value, start, length){
-            return String(value).substr(start, length);
-        },
-
-        /**
-         * Converts a string to all lower case letters
-         * @param {String} value The text to convert
-         * @return {String} The converted text
-         */
-        lowercase : function(value){
-            return String(value).toLowerCase();
-        },
-
-        /**
-         * Converts a string to all upper case letters
-         * @param {String} value The text to convert
-         * @return {String} The converted text
-         */
-        uppercase : function(value){
-            return String(value).toUpperCase();
-        },
-
-        /**
-         * Converts the first character only of a string to upper case
-         * @param {String} value The text to convert
-         * @return {String} The converted text
-         */
-        capitalize : function(value){
-            return !value ? value : value.charAt(0).toUpperCase() + value.substr(1).toLowerCase();
-        },
-
-        // private
-        call : function(value, fn){
-            if(arguments.length > 2){
-                var args = Array.prototype.slice.call(arguments, 2);
-                args.unshift(value);
-                return eval(fn).apply(window, args);
-            }else{
-                return eval(fn).call(window, value);
-            }
-        },
-
-        /**
-         * Format a number as US currency
-         * @param {Number/String} value The numeric value to format
-         * @return {String} The formatted currency string
-         */
-        usMoney : function(v){
-            v = (Math.round((v-0)*100))/100;
-            v = (v == Math.floor(v)) ? v + ".00" : ((v*10 == Math.floor(v*10)) ? v + "0" : v);
-            return "$" + v ;
-        },
-
-        /**
-         * Parse a value into a formatted date using the specified format pattern.
-         * @param {Mixed} value The value to format
-         * @param {String} format (optional) Any valid date format string (defaults to 'm/d/Y')
-         * @return {String} The formatted date string
-         */
-        date : function(v, format){
-            if(!v){
-                return "";
-            }
-            if(!(v instanceof Date)){
-                v = new Date(Date.parse(v));
-            }
-            return v.dateFormat(format || "m/d/Y");
-        },
-
-        /**
-         * Returns a date rendering function that can be reused to apply a date format multiple times efficiently
-         * @param {String} format Any valid date format string
-         * @return {Function} The date formatting function
-         */
-        dateRenderer : function(format){
-            return function(v){
-                return Ext.util.Format.date(v, format);  
-            };
-        },
-
-        // private
-        stripTagsRE : /<\/?[^>]+>/gi,
-        
-        /**
-         * Strips all HTML tags
-         * @param {Mixed} value The text from which to strip tags
-         * @return {String} The stripped text
-         */
-        stripTags : function(v){
-            return !v ? v : String(v).replace(this.stripTagsRE, "");
-        }
-    };
-}();

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Function.html b/www/extras/extjs/docs/output/Function.html deleted file mode 100644 index 54300ca2d..000000000 --- a/www/extras/extjs/docs/output/Function.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - Function - - - - - - -
-
-  Print Friendly
- -
-

Class Function

- - - - - -
Package:Global
Class:Function
Extends:Object
Defined In:Ext.js
-
- These functions are available on every Function object (any javascript function).
-
- Properties -   -  Methods -   -  Events -
- -

Public Properties

-
This class has no public properties.
-

Public Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDefined By
 createCallback() : FunctionFunction
Creates a callback that passes arguments[0], arguments[1], arguments[2], ... -Call directly on any function. Example: ...
 createDelegate([Object obj], [Array args], [Boolean/Number appendArgs]) : FunctionFunction
Creates a delegate (callback) that sets the scope to obj. -Call directly on any function. Example: this.myFunction.cre...
 createInterceptor(Function fcn, [Object scope]) : FunctionFunction
Creates an interceptor function. The passed fcn is called before the original one. If it returns false, the original ...
 createSequence(Function fcn, [Object scope]) : FunctionFunction
Create a combined function call sequence of the original function + the passed function. -The resulting function retur...
 defer(Number millis, [Object obj], [Array args], [Boolean/Number appendArgs]) : NumberFunction
Calls this function after the number of millseconds specified.
- -

Public Events

-
This class has no public events.
- -

Method Details

-
- -
-

createCallback

- public function createCallback() -
- Creates a callback that passes arguments[0], arguments[1], arguments[2], ... -Call directly on any function. Example: myFunction.createCallback(myarg, myarg2) -Will create a function that is bound to those 2 args. -
- Parameters: -
  • None.
- Returns: -
    -
  • Function
    The new function
  • -
-
-
-
This method is defined by Function.
-
- -
-

createDelegate

- public function createDelegate([Object obj], [Array args], [Boolean/Number appendArgs]) -
- Creates a delegate (callback) that sets the scope to obj. -Call directly on any function. Example: this.myFunction.createDelegate(this) -Will create a function that is automatically scoped to this. -
- Parameters: -
  • obj : Object
    (optional) The object for which the scope is set
  • args : Array
    (optional) Overrides arguments for the call. (Defaults to the arguments passed by the caller)
  • appendArgs : Boolean/Number
    (optional) if True args are appended to call args instead of overriding, if a number the args are inserted at the specified position
- Returns: -
    -
  • Function
    The new function
  • -
-
-
-
This method is defined by Function.
-
- -
-

createInterceptor

- public function createInterceptor(Function fcn, [Object scope]) -
- Creates an interceptor function. The passed fcn is called before the original one. If it returns false, the original one is not called. -The resulting function returns the results of the original function. -The passed fcn is called with the parameters of the original function. -@addon -
- Parameters: -
  • fcn : Function
    The function to call before the original
  • scope : Object
    (optional) The scope of the passed fcn (Defaults to scope of original function or window)
- Returns: -
    -
  • Function
    The new function
  • -
-
-
-
This method is defined by Function.
-
- -
-

createSequence

- public function createSequence(Function fcn, [Object scope]) -
- Create a combined function call sequence of the original function + the passed function. -The resulting function returns the results of the original function. -The passed fcn is called with the parameters of the original function -
- Parameters: -
  • fcn : Function
    The function to sequence
  • scope : Object
    (optional) The scope of the passed fcn (Defaults to scope of original function or window)
- Returns: -
    -
  • Function
    The new function
  • -
-
-
-
This method is defined by Function.
-
- -
-

defer

- public function defer(Number millis, [Object obj], [Array args], [Boolean/Number appendArgs]) -
- Calls this function after the number of millseconds specified. -
- Parameters: -
  • millis : Number
    The number of milliseconds for the setTimeout call (if 0 the function is executed immediately)
  • obj : Object
    (optional) The object for which the scope is set
  • args : Array
    (optional) Overrides arguments for the call. (Defaults to the arguments passed by the caller)
  • appendArgs : Boolean/Number
    (optional) if True args are appended to call args instead of overriding, if a number the args are inserted at the specified position
- Returns: -
    -
  • Number
    The timeout id that can be used with clearTimeout
  • -
-
-
-
This method is defined by Function.
-
-
- - -
-
-
Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- - - \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Fx.jss.html b/www/extras/extjs/docs/output/Fx.jss.html deleted file mode 100644 index a1aa92833..000000000 --- a/www/extras/extjs/docs/output/Fx.jss.html +++ /dev/null @@ -1,994 +0,0 @@ -Fx.js

Fx.js


-//Notifies Element that fx methods are available
-Ext.enableFx = true;
-
-/**
- * @class Ext.Fx
- * <p>A class to provide basic animation and visual effects support.  <b>Note:</b> This class is automatically applied
- * to the {@link Ext.Element} interface when included, so all effects calls should be performed via Element.
- * Conversely, since the effects are not actually defined in Element, Ext.Fx <b>must</b> be included in order for the 
- * Element effects to work.</p><br/>
- *
- * <p>It is important to note that although the Fx methods and many non-Fx Element methods support "method chaining" in that
- * they return the Element object itself as the method return value, it is not always possible to mix the two in a single
- * method chain.  The Fx methods use an internal effects queue so that each effect can be properly timed and sequenced.
- * Non-Fx methods, on the other hand, have no such internal queueing and will always execute immediately.  For this reason,
- * while it may be possible to mix certain Fx and non-Fx method calls in a single chain, it may not always provide the
- * expected results and should be done with care.</p><br/>
- *
- * <p>Motion effects support 8-way anchoring, meaning that you can choose one of 8 different anchor points on the Element
- * that will serve as either the start or end point of the animation.  Following are all of the supported anchor positions:</p>
-<pre>
-Value  Description
------  -----------------------------
-tl     The top left corner
-t      The center of the top edge
-tr     The top right corner
-l      The center of the left edge
-r      The center of the right edge
-bl     The bottom left corner
-b      The center of the bottom edge
-br     The bottom right corner
-</pre>
- * <b>Although some Fx methods accept specific custom config parameters, the ones shown in the Config Options section
- * below are common options that can be passed to any Fx method.</b>
- * @cfg {Function} callback A function called when the effect is finished
- * @cfg {Object} scope The scope of the effect function
- * @cfg {String} easing A valid Easing value for the effect
- * @cfg {String} afterCls A css class to apply after the effect
- * @cfg {Number} duration The length of time (in seconds) that the effect should last
- * @cfg {Boolean} remove Whether the Element should be removed from the DOM and destroyed after the effect finishes
- * @cfg {Boolean} useDisplay Whether to use the display style attribute instead of visibility when hiding Elements (only applies to 
- * effects that end with the element being visually hidden, ignored otherwise)
- * @cfg {String/Object/Function} afterStyle A style specification string eg "width:100px", or object in the form {width:"100px"}, or
- * a function which returns such a specification that will be applied to the Element after the effect finishes
- * @cfg {Boolean} block Whether the effect should block other effects from queueing while it runs
- * @cfg {Boolean} concurrent Whether to allow subsequently-queued effects to run at the same time as the current effect, or to ensure that they run in sequence
- * @cfg {Boolean} stopFx Whether subsequent effects should be stopped and removed after the current effect finishes
- */
-Ext.Fx = {
-	/**
-	 * Slides the element into view.  An anchor point can be optionally passed to set the point of
-	 * origin for the slide effect.  This function automatically handles wrapping the element with
-	 * a fixed-size container if needed.  See the Fx class overview for valid anchor point options.
-	 * Usage:
-	 *<pre><code>
-// default: slide the element in from the top
-el.slideIn();
-
-// custom: slide the element in from the right with a 2-second duration
-el.slideIn('r', { duration: 2 });
-
-// common config options shown with default values
-el.slideIn('t', {<br/>
-    easing: 'easeOut', <br/>
-    duration: .5<br/>
-});
-	</code></pre>
-	 * @param {String} anchor (optional) One of the valid Fx anchor positions (defaults to top: 't')
-	 * @param {Object} options (optional) Object literal with any of the Fx config options
-	 * @return {Element} The Element
-	 */
-    slideIn : function(anchor, o){
-        var el = this.getFxEl();
-        o = o || {};
-
-        el.queueFx(o, function(){
-
-            anchor = anchor || "t";
-
-            // fix display to visibility
-            this.fixDisplay();
-
-            // restore values after effect
-            var r = this.getFxRestore();
-            var b = this.getBox();
-            // fixed size for slide
-            this.setSize(b);
-
-            // wrap if needed
-            var wrap = this.fxWrap(r.pos, o, "hidden");
-
-            var st = this.dom.style;
-            st.visibility = "visible";
-            st.position = "absolute";
-
-            // clear out temp styles after slide and unwrap
-            var after = function(){
-                el.fxUnwrap(wrap, r.pos, o);
-                st.width = r.width;
-                st.height = r.height;
-                el.afterFx(o);
-            };
-            // time to calc the positions
-            var a, pt = {to: [b.x, b.y]}, bw = {to: b.width}, bh = {to: b.height};
-
-            switch(anchor.toLowerCase()){
-                case "t":
-                    wrap.setSize(b.width, 0);
-                    st.left = st.bottom = "0";
-                    a = {height: bh};
-                break;
-                case "l":
-                    wrap.setSize(0, b.height);
-                    st.right = st.top = "0";
-                    a = {width: bw};
-                break;
-                case "r":
-                    wrap.setSize(0, b.height);
-                    wrap.setX(b.right);
-                    st.left = st.top = "0";
-                    a = {width: bw, points: pt};
-                break;
-                case "b":
-                    wrap.setSize(b.width, 0);
-                    wrap.setY(b.bottom);
-                    st.left = st.top = "0";
-                    a = {height: bh, points: pt};
-                break;
-                case "tl":
-                    wrap.setSize(0, 0);
-                    st.right = st.bottom = "0";
-                    a = {width: bw, height: bh};
-                break;
-                case "bl":
-                    wrap.setSize(0, 0);
-                    wrap.setY(b.y+b.height);
-                    st.right = st.top = "0";
-                    a = {width: bw, height: bh, points: pt};
-                break;
-                case "br":
-                    wrap.setSize(0, 0);
-                    wrap.setXY([b.right, b.bottom]);
-                    st.left = st.top = "0";
-                    a = {width: bw, height: bh, points: pt};
-                break;
-                case "tr":
-                    wrap.setSize(0, 0);
-                    wrap.setX(b.x+b.width);
-                    st.left = st.bottom = "0";
-                    a = {width: bw, height: bh, points: pt};
-                break;
-            }
-            this.dom.style.visibility = "visible";
-            wrap.show();
-
-            arguments.callee.anim = wrap.fxanim(a,
-                o,
-                'motion',
-                .5,
-                'easeOut', after);
-        });
-        return this;
-    },
-    
-	/**
-	 * Slides the element out of view.  An anchor point can be optionally passed to set the end point
-	 * for the slide effect.  When the effect is completed, the element will be hidden (visibility = 
-	 * 'hidden') but block elements will still take up space in the document.  The element must be removed
-	 * from the DOM using the 'remove' config option if desired.  This function automatically handles 
-	 * wrapping the element with a fixed-size container if needed.  See the Fx class overview for valid anchor point options.
-	 * Usage:
-	 *<pre><code>
-// default: slide the element out to the top
-el.slideOut();
-
-// custom: slide the element out to the right with a 2-second duration
-el.slideOut('r', { duration: 2 });
-
-// common config options shown with default values
-el.slideOut('t', {<br/>
-    easing: 'easeOut', <br/>
-    duration: .5,<br/>
-    remove: false,<br />
-    useDisplay: false
-});
-	</code></pre>
-	 * @param {String} anchor (optional) One of the valid Fx anchor positions (defaults to top: 't')
-	 * @param {Object} options (optional) Object literal with any of the Fx config options
-	 * @return {Element} The Element
-	 */
-    slideOut : function(anchor, o){
-        var el = this.getFxEl();
-        o = o || {};
-
-        el.queueFx(o, function(){
-
-            anchor = anchor || "t";
-
-            // restore values after effect
-            var r = this.getFxRestore();
-            
-            var b = this.getBox();
-            // fixed size for slide
-            this.setSize(b);
-
-            // wrap if needed
-            var wrap = this.fxWrap(r.pos, o, "visible");
-
-            var st = this.dom.style;
-            st.visibility = "visible";
-            st.position = "absolute";
-
-            wrap.setSize(b);
-
-            var after = function(){
-                if(o.useDisplay){
-                    el.setDisplayed(false);
-                }else{
-                    el.hide();
-                }
-
-                el.fxUnwrap(wrap, r.pos, o);
-
-                st.width = r.width;
-                st.height = r.height;
-
-                el.afterFx(o);
-            };
-
-            var a, zero = {to: 0};
-            switch(anchor.toLowerCase()){
-                case "t":
-                    st.left = st.bottom = "0";
-                    a = {height: zero};
-                break;
-                case "l":
-                    st.right = st.top = "0";
-                    a = {width: zero};
-                break;
-                case "r":
-                    st.left = st.top = "0";
-                    a = {width: zero, points: {to:[b.right, b.y]}};
-                break;
-                case "b":
-                    st.left = st.top = "0";
-                    a = {height: zero, points: {to:[b.x, b.bottom]}};
-                break;
-                case "tl":
-                    st.right = st.bottom = "0";
-                    a = {width: zero, height: zero};
-                break;
-                case "bl":
-                    st.right = st.top = "0";
-                    a = {width: zero, height: zero, points: {to:[b.x, b.bottom]}};
-                break;
-                case "br":
-                    st.left = st.top = "0";
-                    a = {width: zero, height: zero, points: {to:[b.x+b.width, b.bottom]}};
-                break;
-                case "tr":
-                    st.left = st.bottom = "0";
-                    a = {width: zero, height: zero, points: {to:[b.right, b.y]}};
-                break;
-            }
-
-            arguments.callee.anim = wrap.fxanim(a,
-                o,
-                'motion',
-                .5,
-                "easeOut", after);
-        });
-        return this;
-    },
-
-	/**
-	 * Fades the element out while slowly expanding it in all directions.  When the effect is completed, the 
-	 * element will be hidden (visibility = 'hidden') but block elements will still take up space in the document. 
-	 * The element must be removed from the DOM using the 'remove' config option if desired.
-	 * Usage:
-	 *<pre><code>
-// default
-el.puff();
-
-// common config options shown with default values
-el.puff({<br/>
-    easing: 'easeOut', <br/>
-    duration: .5,<br/>
-    remove: false,<br />
-    useDisplay: false
-});
-	</code></pre>
-	 * @param {Object} options (optional) Object literal with any of the Fx config options
-	 * @return {Element} The Element
-	 */
-    puff : function(o){
-        var el = this.getFxEl();
-        o = o || {};
-
-        el.queueFx(o, function(){
-            this.clearOpacity();
-            this.show();
-
-            // restore values after effect
-            var r = this.getFxRestore();
-            var st = this.dom.style;
-
-            var after = function(){
-                if(o.useDisplay){
-                    el.setDisplayed(false);
-                }else{
-                    el.hide();
-                }
-
-                el.clearOpacity();
-
-                el.setPositioning(r.pos);
-                st.width = r.width;
-                st.height = r.height;
-                st.fontSize = '';
-                el.afterFx(o);
-            };
-
-            var width = this.getWidth();
-            var height = this.getHeight();
-
-            arguments.callee.anim = this.fxanim({
-                    width : {to: this.adjustWidth(width * 2)},
-                    height : {to: this.adjustHeight(height * 2)},
-                    points : {by: [-(width * .5), -(height * .5)]},
-                    opacity : {to: 0},
-                    fontSize: {to:200, unit: "%"}
-                },
-                o,
-                'motion',
-                .5,
-                "easeOut", after);
-        });
-        return this;
-    },
-
-	/**
-	 * Blinks the element as if it was clicked and then collapses on its center (similar to switching off a television).
-	 * When the effect is completed, the element will be hidden (visibility = 'hidden') but block elements will still 
-	 * take up space in the document. The element must be removed from the using the 'remove' config option if desired.
-	 * Usage:
-	 *<pre><code>
-// default
-el.switchOff();
-
-// all config options shown with default values
-el.switchOff({<br/>
-    easing: 'easeIn', <br/>
-    duration: .3,<br/>
-    remove: false,<br />
-    useDisplay: false
-});
-	</code></pre>
-	 * @param {Object} options (optional) Object literal with any of the Fx config options
-	 * @return {Element} The Element
-	 */
-    switchOff : function(o){
-        var el = this.getFxEl();
-        o = o || {};
-
-        el.queueFx(o, function(){
-            this.clearOpacity();
-            this.clip();
-
-            // restore values after effect
-            var r = this.getFxRestore();
-            var st = this.dom.style;
-
-            var after = function(){
-                if(o.useDisplay){
-                    el.setDisplayed(false);
-                }else{
-                    el.hide();
-                }
-
-                el.clearOpacity();
-                el.setPositioning(r.pos);
-                st.width = r.width;
-                st.height = r.height;
-
-                el.afterFx(o);
-            };
-
-            this.fxanim({opacity:{to:0.3}}, null, null, .1, null, function(){
-                this.clearOpacity();
-                (function(){
-                    this.fxanim({
-                        height:{to:1},
-                        points:{by:[0, this.getHeight() * .5]}
-                    }, o, 'motion', 0.3, 'easeIn', after);
-                }).defer(100, this);
-            });
-        });
-        return this;
-    },
-
-    /**
-     * Highlights the Element by setting a color (applies to the background-color by default, but can be
-     * changed using the "attr" config option) and then fading back to the original color. If no original
-     * color is available, you should provide the "endColor" config option which will be cleared after the animation.
-     * Usage:
-<pre><code>
-// default: highlight background to yellow
-el.highlight();
-
-// custom: highlight foreground text to blue for 2 seconds
-el.highlight("0000ff", { attr: 'color', duration: 2 });
-
-// common config options shown with default values
-el.highlight("ffff9c", {<br/>
-    attr: "background-color", //can be any valid css attribute that supports a color value<br/>
-    endColor: (current color) or "ffffff",<br/>
-    easing: 'easeIn',<br/>
-    duration: 1<br/>
-});
-</code></pre>
-     * @param {String} color (optional) The highlight color. Should be a 6 char hex color without the leading # (defaults to yellow: 'ffff9c')
-     * @param {Object} options (optional) Object literal with any of the Fx config options
-     * @return {Element} The Element
-     */	
-    highlight : function(color, o){
-        var el = this.getFxEl();
-        o = o || {};
-
-        el.queueFx(o, function(){
-            color = color || "ffff9c";
-            attr = o.attr || "backgroundColor";
-
-            this.clearOpacity();
-            this.show();
-
-            var origColor = this.getColor(attr);
-            var restoreColor = this.dom.style[attr];
-            endColor = (o.endColor || origColor) || "ffffff";
-
-            var after = function(){
-                el.dom.style[attr] = restoreColor;
-                el.afterFx(o);
-            };
-
-            var a = {};
-            a[attr] = {from: color, to: endColor};
-            arguments.callee.anim = this.fxanim(a,
-                o,
-                'color',
-                1,
-                'easeIn', after);
-        });
-        return this;
-    },
-
-   /**
-    * Shows a ripple of exploding, attenuating borders to draw attention to an Element.
-    * Usage:
-<pre><code>
-// default: a single light blue ripple
-el.frame();
-
-// custom: 3 red ripples lasting 3 seconds total
-el.frame("ff0000", 3, { duration: 3 });
-
-// common config options shown with default values
-el.frame("C3DAF9", 1, {<br/>
-    duration: 1 //duration of entire animation (not each individual ripple)<br/>
-    // Note: Easing is not configurable and will be ignored if included
-});
-</code></pre>
-    * @param {String} color (optional) The color of the border.  Should be a 6 char hex color without the leading # (defaults to light blue: 'C3DAF9').
-    * @param {Number} count (optional) The number of ripples to display (defaults to 1)
-    * @param {Object} options (optional) Object literal with any of the Fx config options
-    * @return {Element} The Element
-    */
-    frame : function(color, count, o){
-        var el = this.getFxEl();
-        o = o || {};
-
-        el.queueFx(o, function(){
-            color = color || "#C3DAF9";
-            if(color.length == 6){
-                color = "#" + color;
-            }
-            count = count || 1;
-            duration = o.duration || 1;
-            this.show();
-
-            var b = this.getBox();
-            var animFn = function(){
-                var proxy = this.createProxy({
-                     tag:"div",
-                     style:{
-                        visbility:"hidden",
-                        position:"absolute",
-                        "z-index":"35000", // yee haw
-                        border:"0px solid " + color
-                     }
-                  });
-                var scale = Ext.isBorderBox ? 2 : 1;
-                proxy.animate({
-                    top:{from:b.y, to:b.y - 20},
-                    left:{from:b.x, to:b.x - 20},
-                    borderWidth:{from:0, to:10},
-                    opacity:{from:1, to:0},
-                    height:{from:b.height, to:(b.height + (20*scale))},
-                    width:{from:b.width, to:(b.width + (20*scale))}
-                }, duration, function(){
-                    proxy.remove();
-                });
-                if(--count > 0){
-                     animFn.defer((duration/2)*1000, this);
-                }else{
-                    el.afterFx(o);
-                }
-            };
-            animFn.call(this);
-        });
-        return this;
-    },
-
-   /**
-    * Creates a pause before any subsequent queued effects begin.  If there are
-    * no effects queued after the pause it will have no affect.
-    * Usage:
-<pre><code>
-el.pause(1);
-</code></pre>
-    * @param {Number} seconds The length of time to pause (in seconds)
-    * @return {Element} The Element
-    */
-    pause : function(seconds){
-        var el = this.getFxEl();
-        var o = {};
-
-        el.queueFx(o, function(){
-            setTimeout(function(){
-                el.afterFx(o);
-            }, seconds * 1000);
-        });
-        return this;
-    },
-
-   /**
-    * Fade an element in (from transparent to opaque).  The ending opacity can be specified
-    * using the "endOpacity" config option.
-    * Usage:
-<pre><code>
-// default: fade in from opactiy 0 to 100%
-el.fadeIn();
-
-// custom: fade in from opcaity 0 to 75% over 2 seconds
-el.fadeIn({ endOpacity: .75, duration: 2});
-
-// common config options shown with default values
-el.fadeIn({<br/>
-	endOpacity: 1, //can be any value between 0 and 1 (e.g. .5)<br/>
-    easing: 'easeOut',<br/>
-    duration: .5<br/>
-});
-</code></pre>
-    * @param {Object} options (optional) Object literal with any of the Fx config options
-    * @return {Element} The Element
-    */
-    fadeIn : function(o){
-        var el = this.getFxEl();
-        o = o || {};
-        el.queueFx(o, function(){
-            this.setOpacity(0);
-            this.fixDisplay();
-            this.dom.style.visibility = 'visible';
-            var to = o.endOpacity || 1;
-            arguments.callee.anim = this.fxanim({opacity:{to:to}},
-                o, null, .5, "easeOut", function(){
-                if(to == 1){
-                    this.clearOpacity();
-                }
-                el.afterFx(o);
-            });
-        });
-        return this;
-    },
-
-   /**
-    * Fade an element out (from opaque to transparent).  The ending opacity can be specified
-    * using the "endOpacity" config option.
-    * Usage:
-<pre><code>
-// default: fade out from the element's current opacity to 0
-el.fadeOut();
-
-// custom: fade out from the element's current opacity to 25% over 2 seconds
-el.fadeOut({ endOpacity: .25, duration: 2});
-
-// common config options shown with default values
-el.fadeOut({<br/>
-	endOpacity: 0, //can be any value between 0 and 1 (e.g. .5)<br/>
-    easing: 'easeOut',<br/>
-    duration: .5<br/>
-    remove: false,<br />
-    useDisplay: false
-});
-</code></pre>
-    * @param {Object} options (optional) Object literal with any of the Fx config options
-    * @return {Element} The Element
-    */
-    fadeOut : function(o){
-        var el = this.getFxEl();
-        o = o || {};
-        el.queueFx(o, function(){
-            arguments.callee.anim = this.fxanim({opacity:{to:o.endOpacity || 0}},
-                o, null, .5, "easeOut", function(){
-                if(this.visibilityMode == Ext.Element.DISPLAY || o.useDisplay){
-                     this.dom.style.display = "none";
-                }else{
-                     this.dom.style.visibility = "hidden";
-                }
-                this.clearOpacity();
-                el.afterFx(o);
-            });
-        });
-        return this;
-    },
-
-   /**
-    * Animates the transition of an element's dimensions from a starting height/width
-    * to an ending height/width.
-    * Usage:
-<pre><code>
-// change height and width to 100x100 pixels
-el.scale(100, 100);
-
-// common config options shown with default values.  The height and width will default to
-// the element's existing values if passed as null.
-el.scale(
-	[element's width],<br/>
-	[element's height], {<br/>
-    easing: 'easeOut',<br/>
-    duration: .35<br/>
-});
-</code></pre>
-    * @param {Number} width  The new width (pass null to keep the original width)
-    * @param {Number} height  The new height (pass null to keep the original height)
-    * @param {Object} options (optional) Object literal with any of the Fx config options
-    * @return {Element} The Element
-    */
-    scale : function(w, h, o){
-        this.shift(Ext.apply({}, o, {
-            width: w,
-            height: h
-        }));
-        return this;
-    },
-
-   /**
-    * Animates the transition of any combination of an element's dimensions, xy position and/or opacity.
-    * Any of these properties not specified in the config object will not be changed.  This effect 
-    * requires that at least one new dimension, position or opacity setting must be passed in on
-    * the config object in order for the function to have any affect.
-    * Usage:
-<pre><code>
-// slide the element horizontally to x position 200 while changing the height and opacity
-el.shift({ x: 200, height: 50, opacity: .8 });
-
-// common config options shown with default values.
-el.shift({
-	width: [element's width],<br/>
-	height: [element's height],<br/>
-	x: [element's x position],<br/>
-	y: [element's y position],<br/>
-	opacity: [element's opacity],<br/>
-    easing: 'easeOut',<br/>
-    duration: .35<br/>
-});
-</code></pre>
-    * @param {Object} options  Object literal with any of the Fx config options
-    * @return {Element} The Element
-    */
-    shift : function(o){
-        var el = this.getFxEl();
-        o = o || {};
-        el.queueFx(o, function(){
-            var a = {}, w = o.width, h = o.height, x = o.x, y = o.y,  op = o.opacity;
-            if(w !== undefined){
-                a.width = {to: this.adjustWidth(w)};
-            }
-            if(h !== undefined){
-                a.height = {to: this.adjustHeight(h)};
-            }
-            if(x !== undefined || y !== undefined){
-                a.points = {to: [
-                    x !== undefined ? x : this.getX(),
-                    y !== undefined ? y : this.getY()
-                ]};
-            }
-            if(op !== undefined){
-                a.opacity = {to: op};
-            }
-            if(o.xy !== undefined){
-                a.points = {to: o.xy};
-            }
-            arguments.callee.anim = this.fxanim(a,
-                o, 'motion', .35, "easeOut", function(){
-                el.afterFx(o);
-            });
-        });
-        return this;
-    },
-
-	/**
-	 * Slides the element while fading it out of view.  An anchor point can be optionally passed to set the 
-	 * ending point of the effect.
-	 * Usage:
-	 *<pre><code>
-// default: slide the element downward while fading out
-el.ghost();
-
-// custom: slide the element out to the right with a 2-second duration
-el.ghost('r', { duration: 2 });
-
-// common config options shown with default values
-el.ghost('b', {<br/>
-    easing: 'easeOut', <br/>
-    duration: .5<br/>
-    remove: false,<br />
-    useDisplay: false
-});
-	</code></pre>
-	 * @param {String} anchor (optional) One of the valid Fx anchor positions (defaults to bottom: 'b')
-	 * @param {Object} options (optional) Object literal with any of the Fx config options
-	 * @return {Element} The Element
-	 */
-    ghost : function(anchor, o){
-        var el = this.getFxEl();
-        o = o || {};
-
-        el.queueFx(o, function(){
-            anchor = anchor || "b";
-
-            // restore values after effect
-            var r = this.getFxRestore();
-            var w = this.getWidth(),
-                h = this.getHeight();
-
-            var st = this.dom.style;
-
-            var after = function(){
-                if(o.useDisplay){
-                    el.setDisplayed(false);
-                }else{
-                    el.hide();
-                }
-
-                el.clearOpacity();
-                el.setPositioning(r.pos);
-                st.width = r.width;
-                st.height = r.height;
-
-                el.afterFx(o);
-            };
-
-            var a = {opacity: {to: 0}, points: {}}, pt = a.points;
-            switch(anchor.toLowerCase()){
-                case "t":
-                    pt.by = [0, -h];
-                break;
-                case "l":
-                    pt.by = [-w, 0];
-                break;
-                case "r":
-                    pt.by = [w, 0];
-                break;
-                case "b":
-                    pt.by = [0, h];
-                break;
-                case "tl":
-                    pt.by = [-w, -h];
-                break;
-                case "bl":
-                    pt.by = [-w, h];
-                break;
-                case "br":
-                    pt.by = [w, h];
-                break;
-                case "tr":
-                    pt.by = [w, -h];
-                break;
-            }
-
-            arguments.callee.anim = this.fxanim(a,
-                o,
-                'motion',
-                .5,
-                "easeOut", after);
-        });
-        return this;
-    },
-
-	/**
-	 * Ensures that all effects queued after syncFx is called on the element are
-	 * run concurrently.  This is the opposite of {@link #sequenceFx}.
-	 * @return {Element} The Element
-	 */
-    syncFx : function(){
-        this.fxDefaults = Ext.apply(this.fxDefaults || {}, {
-            block : false,
-            concurrent : true,
-            stopFx : false
-        });
-        return this;
-    },
-
-	/**
-	 * Ensures that all effects queued after sequenceFx is called on the element are
-	 * run in sequence.  This is the opposite of {@link #syncFx}.
-	 * @return {Element} The Element
-	 */
-    sequenceFx : function(){
-        this.fxDefaults = Ext.apply(this.fxDefaults || {}, {
-            block : false,
-            concurrent : false,
-            stopFx : false
-        });
-        return this;
-    },
-
-	/* @private */
-    nextFx : function(){
-        var ef = this.fxQueue[0];
-        if(ef){
-            ef.call(this);
-        }
-    },
-
-	/**
-	 * Returns true if the element has any effects actively running or queued, else returns false.
-	 * @return {Boolean} True if element has active effects, else false
-	 */
-    hasActiveFx : function(){
-        return this.fxQueue && this.fxQueue[0];
-    },
-
-	/**
-	 * Stops any running effects and clears the element's internal effects queue if it contains
-	 * any additional effects that haven't started yet.
-	 * @return {Element} The Element
-	 */
-    stopFx : function(){
-        if(this.hasActiveFx()){
-            var cur = this.fxQueue[0];
-            if(cur && cur.anim && cur.anim.isAnimated()){
-                this.fxQueue = [cur]; // clear out others
-                cur.anim.stop(true);
-            }
-        }
-        return this;
-    },
-
-	/* @private */
-    beforeFx : function(o){
-        if(this.hasActiveFx() && !o.concurrent){
-           if(o.stopFx){
-               this.stopFx();
-               return true;
-           }
-           return false;
-        }
-        return true;
-    },
-
-	/**
-	 * Returns true if the element is currently blocking so that no other effect can be queued
-	 * until this effect is finished, else returns false if blocking is not set.  This is commonly
-	 * used to ensure that an effect initiated by a user action runs to completion prior to the
-	 * same effect being restarted (e.g., firing only one effect even if the user clicks several times).
-	 * @return {Boolean} True if blocking, else false
-	 */
-    hasFxBlock : function(){
-        var q = this.fxQueue;
-        return q && q[0] && q[0].block;
-    },
-
-	/* @private */
-    queueFx : function(o, fn){
-        if(!this.fxQueue){
-            this.fxQueue = [];
-        }
-        if(!this.hasFxBlock()){
-            Ext.applyIf(o, this.fxDefaults);
-            if(!o.concurrent){
-                var run = this.beforeFx(o);
-                fn.block = o.block;
-                this.fxQueue.push(fn);
-                if(run){
-                    this.nextFx();
-                }
-            }else{
-                fn.call(this);
-            }
-        }
-        return this;
-    },
-
-	/* @private */
-    fxWrap : function(pos, o, vis){
-        var wrap;
-        if(!o.wrap || !(wrap = Ext.get(o.wrap))){
-            var wrapXY;
-            if(o.fixPosition){
-                wrapXY = this.getXY();
-            }
-            var div = document.createElement("div");
-            div.style.visibility = vis;
-            wrap = Ext.get(this.dom.parentNode.insertBefore(div, this.dom));
-            wrap.setPositioning(pos);
-            if(wrap.getStyle("position") == "static"){
-                wrap.position("relative");
-            }
-            this.clearPositioning('auto');
-            wrap.clip();
-            wrap.dom.appendChild(this.dom);
-            if(wrapXY){
-                wrap.setXY(wrapXY);
-            }
-        }
-        return wrap;
-    },
-
-	/* @private */
-    fxUnwrap : function(wrap, pos, o){
-        this.clearPositioning();
-        this.setPositioning(pos);
-        if(!o.wrap){
-            wrap.dom.parentNode.insertBefore(this.dom, wrap.dom);
-            wrap.remove();
-        }
-    },
-
-	/* @private */
-    getFxRestore : function(){
-        var st = this.dom.style;
-        return {pos: this.getPositioning(), width: st.width, height : st.height};
-    },
-
-	/* @private */
-    afterFx : function(o){
-        if(o.afterStyle){
-            this.applyStyles(o.afterStyle);
-        }
-        if(o.afterCls){
-            this.addClass(o.afterCls);
-        }
-        if(o.remove === true){
-            this.remove();
-        }
-        Ext.callback(o.callback, o.scope, [this]);
-        if(!o.concurrent){
-            this.fxQueue.shift();
-            this.nextFx();
-        }
-    },
-
-	/* @private */
-    getFxEl : function(){ // support for composite element fx
-        return Ext.get(this.dom);
-    },
-
-	/* @private */
-    fxanim : function(args, opt, animType, defaultDur, defaultEase, cb){
-        animType = animType || 'run';
-        opt = opt || {};
-        var anim = Ext.lib.Anim[animType](
-            this.dom, args,
-            (opt.duration || defaultDur) || .35,
-            (opt.easing || defaultEase) || 'easeOut',
-            function(){
-                Ext.callback(cb, this);
-            },
-            this
-        );
-        opt.anim = anim;
-        return anim;
-    }
-};
-
-// backwords compat
-Ext.Fx.resize = Ext.Fx.scale;
-
-//When included, Ext.Fx is automatically applied to Element so that all basic
-//effects are available directly via the Element API
-Ext.apply(Ext.Element.prototype, Ext.Fx);
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Grid.jss.html b/www/extras/extjs/docs/output/Grid.jss.html deleted file mode 100644 index 67d52659d..000000000 --- a/www/extras/extjs/docs/output/Grid.jss.html +++ /dev/null @@ -1,598 +0,0 @@ -Grid.js

Grid.js

/**
- * @class Ext.grid.Grid
- * @extends Ext.util.Observable
- * This class represents the primary interface of a component based grid control.
- * <br><br>Usage:<pre><code>
- var grid = new Ext.grid.Grid("my-container-id", {
-     ds: myDataStore,
-     cm: myColModel,
-     selModel: mySelectionModel,
-     autoSizeColumns: true,
-     monitorWindowResize: false,
-     trackMouseOver: true
- });
- // set any options
- grid.render();
- * </code></pre>
- * <b>Common Problems:</b><br/>
- * - Grid does not resize properly when going smaller: Setting overflow hidden on the container
- * element will correct this<br/>
- * - If you get el.style[camel]= NaNpx or -2px or something related, be certain you have given your container element
- * dimensions. The grid adapts to your container's size, if your container has no size defined then the results
- * are unpredictable.<br/>
- * - Do not render the grid into an element with display:none. Try using visibility:hidden. Otherwise there is no way for the
- * grid to calculate dimensions/offsets.<br/>
-  * @constructor
- * @param {String/HTMLElement/Ext.Element} container The element into which this grid will be rendered -
- * The container MUST have some type of size defined for the grid to fill. The container will be
- * automatically set to position relative if it isn't already.
- * @param {Object} config A config object that sets properties on this grid.
- */
-Ext.grid.Grid = function(container, config){
-	// initialize the container
-	this.container = Ext.get(container);
-	this.container.update("");
-	this.container.setStyle("overflow", "hidden");
-    this.container.addClass('x-grid-container');
-
-    this.id = this.container.id;
-
-    Ext.apply(this, config);
-    // check and correct shorthanded configs
-    if(this.ds){
-        this.dataSource = this.ds;
-        delete this.ds;
-    }
-    if(this.cm){
-        this.colModel = this.cm;
-        delete this.cm;
-    }
-    if(this.sm){
-        this.selModel = this.sm;
-        delete this.sm;
-    }
-
-    if(this.width){
-        this.container.setWidth(this.width);
-    }
-
-    if(this.height){
-        this.container.setHeight(this.height);
-    }
-    /** @private */
-	this.addEvents({
-	    // raw events
-	    /**
-	     * @event click
-	     * The raw click event for the entire grid.
-	     * @param {Ext.EventObject} e
-	     */
-	    "click" : true,
-	    /**
-	     * @event dblclick
-	     * The raw dblclick event for the entire grid.
-	     * @param {Ext.EventObject} e
-	     */
-	    "dblclick" : true,
-	    /**
-	     * @event contextmenu
-	     * The raw contextmenu event for the entire grid.
-	     * @param {Ext.EventObject} e
-	     */
-	    "contextmenu" : true,
-	    /**
-	     * @event mousedown
-	     * The raw mousedown event for the entire grid.
-	     * @param {Ext.EventObject} e
-	     */
-	    "mousedown" : true,
-	    /**
-	     * @event mouseup
-	     * The raw mouseup event for the entire grid.
-	     * @param {Ext.EventObject} e
-	     */
-	    "mouseup" : true,
-	    /**
-	     * @event mouseover
-	     * The raw mouseover event for the entire grid.
-	     * @param {Ext.EventObject} e
-	     */
-	    "mouseover" : true,
-	    /**
-	     * @event mouseout
-	     * The raw mouseout event for the entire grid.
-	     * @param {Ext.EventObject} e
-	     */
-	    "mouseout" : true,
-	    /**
-	     * @event keypress
-	     * The raw keypress event for the entire grid.
-	     * @param {Ext.EventObject} e
-	     */
-	    "keypress" : true,
-	    /**
-	     * @event keydown
-	     * The raw keydown event for the entire grid.
-	     * @param {Ext.EventObject} e
-	     */
-	    "keydown" : true,
-
-	    // custom events
-
-	    /**
-	     * @event cellclick
-	     * Fires when a cell is clicked
-	     * @param {Grid} this
-	     * @param {Number} rowIndex
-	     * @param {Number} columnIndex
-	     * @param {Ext.EventObject} e
-	     */
-	    "cellclick" : true,
-	    /**
-	     * @event celldblclick
-	     * Fires when a cell is double clicked
-	     * @param {Grid} this
-	     * @param {Number} rowIndex
-	     * @param {Number} columnIndex
-	     * @param {Ext.EventObject} e
-	     */
-	    "celldblclick" : true,
-	    /**
-	     * @event rowclick
-	     * Fires when a row is clicked
-	     * @param {Grid} this
-	     * @param {Number} rowIndex
-	     * @param {Ext.EventObject} e
-	     */
-	    "rowclick" : true,
-	    /**
-	     * @event rowdblclick
-	     * Fires when a row is double clicked
-	     * @param {Grid} this
-	     * @param {Number} rowIndex
-	     * @param {Ext.EventObject} e
-	     */
-	    "rowdblclick" : true,
-	    /**
-	     * @event headerclick
-	     * Fires when a header is clicked
-	     * @param {Grid} this
-	     * @param {Number} columnIndex
-	     * @param {Ext.EventObject} e
-	     */
-	    "headerclick" : true,
-	    /**
-	     * @event headerdblclick
-	     * Fires when a header cell is double clicked
-	     * @param {Grid} this
-	     * @param {Number} rowIndex
-	     * @param {Number} columnIndex
-	     * @param {Ext.EventObject} e
-	     */
-	    "headerdblclick" : true,
-	    /**
-	     * @event rowcontextmenu
-	     * Fires when a row is right clicked
-	     * @param {Grid} this
-	     * @param {Number} rowIndex
-	     * @param {Ext.EventObject} e
-	     */
-	    "rowcontextmenu" : true,
-	    /**
-         * @event cellcontextmenu
-         * Fires when a cell is right clicked
-         * @param {Grid} this
-         * @param {Number} rowIndex
-         * @param {Number} cellIndex
-         * @param {Ext.EventObject} e
-         */
-         "cellcontextmenu" : true,
-	    /**
-	     * @event headercontextmenu
-	     * Fires when a header is right clicked
-	     * @param {Grid} this
-	     * @param {Number} columnIndex
-	     * @param {Ext.EventObject} e
-	     */
-	    "headercontextmenu" : true,
-	    /**
-	     * @event bodyscroll
-	     * Fires when the body element is scrolled
-	     * @param {Number} scrollLeft
-	     * @param {Number} scrollTop
-	     */
-	    "bodyscroll" : true,
-	    /**
-	     * @event columnresize
-	     * Fires when the user resizes a column
-	     * @param {Number} columnIndex
-	     * @param {Number} newSize
-	     */
-	    "columnresize" : true,
-	    /**
-	     * @event columnmove
-	     * Fires when the user moves a column
-	     * @param {Number} oldIndex
-	     * @param {Number} newIndex
-	     */
-	    "columnmove" : true,
-	    /**
-	     * @event startdrag
-	     * Fires when row(s) start being dragged
-	     * @param {Grid} this
-	     * @param {Ext.GridDD} dd The drag drop object
-	     * @param {event} e The raw browser event
-	     */
-	    "startdrag" : true,
-	    /**
-	     * @event enddrag
-	     * Fires when a drag operation is complete
-	     * @param {Grid} this
-	     * @param {Ext.GridDD} dd The drag drop object
-	     * @param {event} e The raw browser event
-	     */
-	    "enddrag" : true,
-	    /**
-	     * @event dragdrop
-	     * Fires when dragged row(s) are dropped on a valid DD target
-	     * @param {Grid} this
-	     * @param {Ext.GridDD} dd The drag drop object
-	     * @param {String} targetId The target drag drop object
-	     * @param {event} e The raw browser event
-	     */
-	    "dragdrop" : true,
-	    /**
-	     * @event dragover
-	     * Fires while row(s) are being dragged. "targetId" is the id of the Yahoo.util.DD object the selected rows are being dragged over.
-	     * @param {Grid} this
-	     * @param {Ext.GridDD} dd The drag drop object
-	     * @param {String} targetId The target drag drop object
-	     * @param {event} e The raw browser event
-	     */
-	    "dragover" : true,
-	    /**
-	     * @event dragenter
-	     *  Fires when the dragged row(s) first cross another DD target while being dragged
-	     * @param {Grid} this
-	     * @param {Ext.GridDD} dd The drag drop object
-	     * @param {String} targetId The target drag drop object
-	     * @param {event} e The raw browser event
-	     */
-	    "dragenter" : true,
-	    /**
-	     * @event dragout
-	     * Fires when the dragged row(s) leave another DD target while being dragged
-	     * @param {Grid} this
-	     * @param {Ext.GridDD} dd The drag drop object
-	     * @param {String} targetId The target drag drop object
-	     * @param {event} e The raw browser event
-	     */
-	    "dragout" : true
-	});
-
-    Ext.grid.Grid.superclass.constructor.call(this);
-};
-Ext.extend(Ext.grid.Grid, Ext.util.Observable, {
-    /**
-     * @cfg {Number} The minimum width a column can be resized to. Defaults to 25.
-	 */
-	minColumnWidth : 25,
-
-    /**
-	 * @cfg {Boolean} True to automatically resize the columns to fit their content
-	 * <b>on initial render.</b> It is more efficient to explicitly size the columns
-	 * through the ColumnModel's {@link Ext.grid.ColumnModel#width} config option.
-	 */
-	autoSizeColumns : false,
-
-	/**
-	 * @cfg {Boolean} True to measure headers with column data when auto sizing columns.
-	 */
-	autoSizeHeaders : true,
-
-	/**
-	 * @cfg {Boolean} True to autoSize the grid when the window resizes. Defaults to true.
-	 */
-	monitorWindowResize : true,
-
-	/**
-	 * @cfg {Boolean} If autoSizeColumns is on, maxRowsToMeasure can be used to limit the number of
-	 * rows measured to get a columns size - defaults to 0 (all rows).
-	 */
-	maxRowsToMeasure : 0,
-
-	/**
-	 * @cfg {Boolean} True to highlight rows when the mouse is over. Default is false.
-	 */
-	trackMouseOver : true,
-
-	/**
-	 * @cfg {Boolean} True to enable drag and drop of rows.
-	 */
-	enableDragDrop : false,
-
-	/**
-	 * @cfg {Boolean} True to enable drag and drop reorder of columns.
-	 */
-	enableColumnMove : true,
-
-	/**
-	 * @cfg {Boolean} True to enable hiding of columns with the header context menu.
-	 */
-	enableColumnHide : true,
-
-	/**
-	 * @cfg {Boolean} True to manually sync row heights across locked and not locked rows.
-	 */
-	enableRowHeightSync : false,
-
-	/**
-	 * @cfg {Boolean} True to stripe the rows. Default is true.
-	 */
-	stripeRows : true,
-
-	/**
-	 * @cfg {Boolean} True to fit the height of the grid container to the height of the data. Defaults to false.
-	 */
-	autoHeight : false,
-
-    /**
-     * @cfg {String} The id of a column in this grid that should expand to fill unused space.
-     */
-    autoExpandColumn : false,
-
-    /**
-    * @cfg {Number} The minimum width the autoExpandColumn can have (if enabled).
-    * defaults to 50.
-    */
-    autoExpandMin : 50,
-
-    /**
-    * @cfg {Number} The maximum width the autoExpandColumn can have (if enabled). Defaults to 1000.
-    */
-    autoExpandMax : 1000,
-
-    /**
-	 * @cfg {Object} The {@link Ext.grid.GridView} used by the grid. This can be set before a call to render().
-	 */
-	view : null,
-
-	/**
-	 * @cfg {Object} A javascript RegExp defining tagNames
-     * allowed to have text selection (Defaults to <code>/INPUT|TEXTAREA|SELECT/i</code>).
-     */
-    allowTextSelectionPattern : /INPUT|TEXTAREA|SELECT/i,
-
-    /**
-     * @cfg {Object} An {@link Ext.LoadMask} config or true to mask the grid while loading (defaults to false).
-	 */
-	loadMask : false,
-
-    // private
-    rendered : false,
-
-    /**
-    * Sets the maximum height of the grid - ignored if autoHeight is not on.
-    * @type Number
-    */
-// holder
-/***
-     * Called once after all setup has been completed and the grid is ready to be rendered.
-     * @return {Ext.grid.Grid} this
-     */
-    render : function(){
-        var c = this.container;
-        // try to detect autoHeight/width mode
-        if((!c.dom.offsetHeight || c.dom.offsetHeight < 20) || c.getStyle("height") == "auto"){
-    	    this.autoHeight = true;
-    	}
-    	var view = this.getView();
-        view.init(this);
-
-        c.on("click", this.onClick, this);
-        c.on("dblclick", this.onDblClick, this);
-        c.on("contextmenu", this.onContextMenu, this);
-        c.on("keydown", this.onKeyDown, this);
-
-        this.relayEvents(c, ["mousedown","mouseup","mouseover","mouseout","keypress"]);
-
-        this.getSelectionModel().init(this);
-
-        view.render();
-
-        if(this.loadMask){
-            this.loadMask = new Ext.LoadMask(this.container,
-                    Ext.apply({store:this.dataSource}, this.loadMask));
-        }
-        this.rendered = true;
-        return this;
-    },
-
-    reconfigure : function(dataSource, colModel){
-        if(this.loadMask){
-            this.loadMask.destroy();
-            this.loadMask = new Ext.LoadMask(this.container,
-                    Ext.apply({store:dataSource}, this.loadMask));
-        }
-        this.view.bind(dataSource, colModel);
-        this.dataSource = dataSource;
-        this.colModel = colModel;
-        this.view.refresh(true);
-    },
-
-    onKeyDown : function(e){
-        this.fireEvent("keydown", e);
-    },
-
-    /**
-     * Destroy this grid.
-     * @param {Boolean} removeEl True to remove the element
-     */
-    destroy : function(removeEl, keepListeners){
-        if(this.loadMask){
-            this.loadMask.destroy();
-        }
-        var c = this.container;
-        c.removeAllListeners();
-        this.view.destroy();
-        this.colModel.purgeListeners();
-        if(!keepListeners){
-            this.purgeListeners();
-        }
-        c.update("");
-        if(removeEl === true){
-            c.remove();
-        }
-    },
-
-    // private
-    processEvent : function(name, e){
-        this.fireEvent(name, e);
-        var t = e.getTarget();
-        var v = this.view;
-        var header = v.findHeaderIndex(t);
-        if(header !== false){
-            this.fireEvent("header" + name, this, header, e);
-        }else{
-            var row = v.findRowIndex(t);
-            var cell = v.findCellIndex(t);
-            if(row !== false){
-                this.fireEvent("row" + name, this, row, e);
-                if(cell !== false){
-                    this.fireEvent("cell" + name, this, row, cell, e);
-                }
-            }
-        }
-    },
-
-    // private
-    onClick : function(e){
-        this.processEvent("click", e);
-    },
-
-    // private
-    onContextMenu : function(e, t){
-        this.processEvent("contextmenu", e);
-    },
-
-    // private
-    onDblClick : function(e){
-        this.processEvent("dblclick", e);
-    },
-
-    walkCells : function(row, col, step, fn, scope){
-        var cm = this.colModel, clen = cm.getColumnCount();
-        var ds = this.dataSource, rlen = ds.getCount(), first = true;
-        if(step < 0){
-            if(col < 0){
-                row--;
-                first = false;
-            }
-            while(row >= 0){
-                if(!first){
-                    col = clen-1;
-                }
-                first = false;
-                while(col >= 0){
-                    if(fn.call(scope || this, row, col, cm) === true){
-                        return [row, col];
-                    }
-                    col--;
-                }
-                row--;
-            }
-        } else {
-            if(col >= clen){
-                row++;
-                first = false;
-            }
-            while(row < rlen){
-                if(!first){
-                    col = 0;
-                }
-                first = false;
-                while(col < clen){
-                    if(fn.call(scope || this, row, col, cm) === true){
-                        return [row, col];
-                    }
-                    col++;
-                }
-                row++;
-            }
-        }
-        return null;
-    },
-
-    getSelections : function(){
-        return this.selModel.getSelections();
-    },
-
-    /**
-     * Causes the grid to manually recalculate its dimensions. Generally this is done automatically,
-     * but if manual update is required this method will initiate it.
-     */
-    autoSize : function(){
-        if(this.rendered){
-            this.view.layout();
-            if(this.view.adjustForScroll){
-                this.view.adjustForScroll();
-            }
-        }
-    },
-
-    // private for compatibility, overridden by editor grid
-    stopEditing : function(){},
-
-    /**
-     * Returns the grid's SelectionModel.
-     * @return {SelectionModel}
-     */
-    getSelectionModel : function(){
-        if(!this.selModel){
-            this.selModel = new Ext.grid.RowSelectionModel();
-        }
-        return this.selModel;
-    },
-
-    /**
-     * Returns the grid's DataSource.
-     * @return {DataSource}
-     */
-    getDataSource : function(){
-        return this.dataSource;
-    },
-
-    /**
-     * Returns the grid's ColumnModel.
-     * @return {ColumnModel}
-     */
-    getColumnModel : function(){
-        return this.colModel;
-    },
-
-    /**
-     * Returns the grid's GridView object.
-     * @return {GridView}
-     */
-    getView : function(){
-        if(!this.view){
-            this.view = new Ext.grid.GridView();
-        }
-        return this.view;
-    },
-    /**
-     * Called to get grid's drag proxy text, by default returns this.ddText.
-     * @return {String}
-     */
-    getDragDropText : function(){
-        var count = this.selModel.getCount();
-        return String.format(this.ddText, count, count == 1 ? '' : 's');
-    }
-});
-/**
- * Configures the text is the drag proxy (defaults to "%0 selected row(s)").
- * %0 is replaced with the number of selected rows.
- * @type String
- */
-Ext.grid.Grid.prototype.ddText = "{0} selected row{1}";

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/GridDD.jss.html b/www/extras/extjs/docs/output/GridDD.jss.html deleted file mode 100644 index 0c4b0d572..000000000 --- a/www/extras/extjs/docs/output/GridDD.jss.html +++ /dev/null @@ -1,58 +0,0 @@ -GridDD.js

GridDD.js

// private
-// This is a support class used internally by the Grid components
-Ext.grid.GridDragZone = function(grid, config){
-    this.view = grid.getView();
-    Ext.grid.GridDragZone.superclass.constructor.call(this, this.view.lockedBody.dom, config);
-    this.setHandleElId(Ext.id(this.view.lockedBody.dom));
-    this.setOuterHandleElId(Ext.id(this.view.mainBody.dom));
-    this.scroll = false;
-    this.grid = grid;
-    this.ddel = document.createElement('div');
-    this.ddel.className = 'x-grid-dd-wrap';
-};
-
-Ext.extend(Ext.grid.GridDragZone, Ext.dd.DragZone, {
-    ddGroup : "GridDD",
-
-    getDragData : function(e){
-        var t = Ext.lib.Event.getTarget(e);
-        var rowIndex = this.view.findRowIndex(t);
-        if(rowIndex !== false){
-            var sm = this.grid.selModel;
-            if(!sm.isSelected(rowIndex) || e.hasModifier()){
-                sm.handleMouseDown(e, t);
-            }
-            return {grid: this.grid, ddel: this.ddel, rowIndex: rowIndex, selections:sm.getSelections()};
-        }
-        return false;
-    },
-
-    onInitDrag : function(e){
-        var data = this.dragData;
-        this.ddel.innerHTML = this.grid.getDragDropText();
-        this.proxy.update(this.ddel);
-        // fire start drag?
-    },
-
-    afterRepair : function(){
-        this.dragging = false;
-    },
-
-    getRepairXY : function(e, data){
-        return false;
-    },
-
-    onEndDrag : function(data, e){
-        // fire end drag?
-    },
-
-    onValidDrop : function(dd, e, id){
-        // fire drag drop?
-        this.hideProxy();
-    },
-
-    beforeInvalidDrop : function(e, id){
-
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/GridEditor.jss.html b/www/extras/extjs/docs/output/GridEditor.jss.html deleted file mode 100644 index dbe471f40..000000000 --- a/www/extras/extjs/docs/output/GridEditor.jss.html +++ /dev/null @@ -1,16 +0,0 @@ -GridEditor.js

GridEditor.js

// private
-// This is a support class used internally by the Grid components
-Ext.grid.GridEditor = function(field, config){
-    Ext.grid.GridEditor.superclass.constructor.call(this, field, config);
-    field.monitorTab = false;
-};
-
-Ext.extend(Ext.grid.GridEditor, Ext.Editor, {
-    alignment: "tl-tl",
-    autoSize: "width",
-    hideEl : false,
-    cls: "x-small-editor x-grid-editor",
-    shim:false,
-    shadow:"frame"
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/GridView.jss.html b/www/extras/extjs/docs/output/GridView.jss.html deleted file mode 100644 index 6eaeaaaeb..000000000 --- a/www/extras/extjs/docs/output/GridView.jss.html +++ /dev/null @@ -1,1505 +0,0 @@ -GridView.js

GridView.js

/**
- * @class Ext.grid.GridView
- * @extends AbstractGridView
- * The default GridView implementation
- * @constructor
- * @param {Object} config
- */
-
-Ext.grid.GridView = function(config){
-    Ext.grid.GridView.superclass.constructor.call(this);
-    this.el = null;
-
-    Ext.apply(this, config);
-};
-
-Ext.extend(Ext.grid.GridView, Ext.grid.AbstractGridView, {
-
-    /**
-     * Override this function to apply custom css classes to rows during rendering
-     * @param {Record} record The record
-     * @param {Number} index
-     * @method getRowClass
-     */
-    rowClass : "x-grid-row",
-
-    cellClass : "x-grid-col",
-
-    tdClass : "x-grid-td",
-
-    hdClass : "x-grid-hd",
-
-    splitClass : "x-grid-split",
-
-    sortClasses : ["sort-asc", "sort-desc"],
-
-    enableMoveAnim : false,
-
-    hlColor: "C3DAF9",
-
-    dh : Ext.DomHelper,
-
-    fly : Ext.Element.fly,
-
-    css : Ext.util.CSS,
-
-    borderWidth: 1,
-
-    splitOffset: 3,
-
-    scrollIncrement : 22,
-
-    cellRE: /(?:.*?)x-grid-(?:hd|cell|csplit)-(?:[\d]+)-([\d]+)(?:.*?)/,
-
-    findRE: /\s?(?:x-grid-hd|x-grid-col|x-grid-csplit)\s/,
-
-    bind : function(ds, cm){
-        if(this.ds){
-            this.ds.un("load", this.onLoad, this);
-            this.ds.un("datachanged", this.onDataChange);
-            this.ds.un("add", this.onAdd);
-            this.ds.un("remove", this.onRemove);
-            this.ds.un("update", this.onUpdate);
-            this.ds.un("clear", this.onClear);
-        }
-        if(ds){
-            ds.on("load", this.onLoad, this);
-            ds.on("datachanged", this.onDataChange, this);
-            ds.on("add", this.onAdd, this);
-            ds.on("remove", this.onRemove, this);
-            ds.on("update", this.onUpdate, this);
-            ds.on("clear", this.onClear, this);
-        }
-        this.ds = ds;
-
-        if(this.cm){
-            this.cm.un("widthchange", this.onColWidthChange, this);
-            this.cm.un("headerchange", this.onHeaderChange, this);
-            this.cm.un("hiddenchange", this.onHiddenChange, this);
-            this.cm.un("columnmoved", this.onColumnMove, this);
-            this.cm.un("columnlockchange", this.onColumnLock, this);
-        }
-        if(cm){
-            this.generateRules(cm);
-            cm.on("widthchange", this.onColWidthChange, this);
-            cm.on("headerchange", this.onHeaderChange, this);
-            cm.on("hiddenchange", this.onHiddenChange, this);
-            cm.on("columnmoved", this.onColumnMove, this);
-            cm.on("columnlockchange", this.onColumnLock, this);
-        }
-        this.cm = cm;
-    },
-
-    init: function(grid){
-		Ext.grid.GridView.superclass.init.call(this, grid);
-
-		this.bind(grid.dataSource, grid.colModel);
-
-	    grid.on("headerclick", this.handleHeaderClick, this);
-
-        if(grid.trackMouseOver){
-            grid.on("mouseover", this.onRowOver, this);
-	        grid.on("mouseout", this.onRowOut, this);
-	    }
-	    grid.cancelTextSelection = function(){};
-		this.gridId = grid.id;
-
-		var tpls = this.templates || {};
-
-		if(!tpls.master){
-		    tpls.master = new Ext.Template(
-		       '<div class="x-grid" hidefocus="true">',
-		          '<div class="x-grid-topbar"></div>',
-		          '<div class="x-grid-scroller"><div></div></div>',
-		          '<div class="x-grid-locked">',
-		              '<div class="x-grid-header">{lockedHeader}</div>',
-		              '<div class="x-grid-body">{lockedBody}</div>',
-		          "</div>",
-		          '<div class="x-grid-viewport">',
-		              '<div class="x-grid-header">{header}</div>',
-		              '<div class="x-grid-body">{body}</div>',
-		          "</div>",
-		          '<div class="x-grid-bottombar"></div>',
-		          '<a href="#" class="x-grid-focus" tabIndex="-1"></a>',
-		          '<div class="x-grid-resize-proxy">&#160;</div>',
-		       "</div>"
-		    );
-		    tpls.master.disableformats = true;
-		}
-
-		if(!tpls.header){
-		    tpls.header = new Ext.Template(
-		       '<table border="0" cellspacing="0" cellpadding="0">',
-		       '<tbody><tr class="x-grid-hd-row">{cells}</tr></tbody>',
-		       "</table>{splits}"
-		    );
-		    tpls.header.disableformats = true;
-		}
-		tpls.header.compile();
-
-		if(!tpls.hcell){
-		    tpls.hcell = new Ext.Template(
-		        '<td class="x-grid-hd x-grid-td-{id} {cellId}"><div title="{title}" class="x-grid-hd-inner x-grid-hd-{id}">',
-		        '<div class="x-grid-hd-text" unselectable="on">{value}<img class="x-grid-sort-icon" src="', Ext.BLANK_IMAGE_URL, '" /></div>',
-		        "</div></td>"
-		     );
-		     tpls.hcell.disableFormats = true;
-		}
-		tpls.hcell.compile();
-
-		if(!tpls.hsplit){
-		    tpls.hsplit = new Ext.Template('<div class="x-grid-split {splitId} x-grid-split-{id}" style="{style}" unselectable="on">&#160;</div>');
-		    tpls.hsplit.disableFormats = true;
-		}
-		tpls.hsplit.compile();
-
-		if(!tpls.body){
-		    tpls.body = new Ext.Template(
-		       '<table border="0" cellspacing="0" cellpadding="0">',
-		       "<tbody>{rows}</tbody>",
-		       "</table>"
-		    );
-		    tpls.body.disableFormats = true;
-		}
-		tpls.body.compile();
-
-		if(!tpls.row){
-		    tpls.row = new Ext.Template('<tr class="x-grid-row {alt}">{cells}</tr>');
-		    tpls.row.disableFormats = true;
-		}
-		tpls.row.compile();
-
-		if(!tpls.cell){
-		    tpls.cell = new Ext.Template(
-		        '<td class="x-grid-col x-grid-td-{id} {cellId} {css}" tabIndex="0">',
-		        '<div class="x-grid-col-{id} x-grid-cell-inner"><div class="x-grid-cell-text" unselectable="on" {attr}>{value}</div></div>',
-		        "</td>"
-		    );
-            tpls.cell.disableFormats = true;
-        }
-		tpls.cell.compile();
-
-		this.templates = tpls;
-	},
-
-	// remap these for backwards compat
-    onColWidthChange : function(){
-        this.updateColumns.apply(this, arguments);
-    },
-    onHeaderChange : function(){
-        this.updateHeaders.apply(this, arguments);
-    }, 
-    onHiddenChange : function(){
-        this.handleHiddenChange.apply(this, arguments);
-    },
-    onColumnMove : function(){
-        this.handleColumnMove.apply(this, arguments);
-    },
-    onColumnLock : function(){
-        this.handleLockChange.apply(this, arguments);
-    },
-
-    onDataChange : function(){
-        this.refresh();
-        this.updateHeaderSortState();
-    },
-
-	onClear : function(){
-        this.refresh();
-    },
-
-	onUpdate : function(ds, record){
-        this.refreshRow(record);
-    },
-
-    refreshRow : function(record){
-        var ds = this.ds, index;
-        if(typeof record == 'number'){
-            index = record;
-            record = ds.getAt(index);
-        }else{
-            index = ds.indexOf(record);
-        }
-        var rows = this.getRowComposite(index);
-        var cls = [];
-        this.insertRows(ds, index, index, true);
-        this.onRemove(ds, record, index+1, true);
-        this.syncRowHeights(index, index);
-        this.layout();
-        this.fireEvent("rowupdated", this, index, record);
-    },
-
-    onAdd : function(ds, records, index){
-        this.insertRows(ds, index, index + (records.length-1));
-    },
-
-    onRemove : function(ds, record, index, isUpdate){
-        if(isUpdate !== true){
-            this.fireEvent("beforerowremoved", this, index, record);
-        }
-        var bt = this.getBodyTable(), lt = this.getLockedTable();
-        if(bt.rows[index]){
-            bt.firstChild.removeChild(bt.rows[index]);
-        }
-        if(lt.rows[index]){
-            lt.firstChild.removeChild(lt.rows[index]);
-        }
-        if(isUpdate !== true){
-            this.stripeRows(index);
-            this.syncRowHeights(index, index);
-            this.layout();
-            this.fireEvent("rowremoved", this, index, record);
-        }
-    },
-
-    onLoad : function(){
-        this.scrollToTop();
-    },
-
-    /**
-     * Scrolls the grid to the top
-     */
-    scrollToTop : function(){
-        if(this.scroller){
-            this.scroller.dom.scrollTop = 0;
-            this.syncScroll();
-        }
-    },
-
-    /**
-     * Gets a panel in the header of the grid that can be used for toolbars etc.
-     * After modifying the contents of this panel a call to grid.autoSize() may be
-     * required to register any changes in size.
-     * @param {Boolean} doShow By default the header is hidden. Pass true to show the panel
-     * @return Ext.Element
-     */
-    getHeaderPanel : function(doShow){
-        if(doShow){
-            this.headerPanel.show();
-        }
-        return this.headerPanel;
-	},
-
-	/**
-     * Gets a panel in the footer of the grid that can be used for toolbars etc.
-     * After modifying the contents of this panel a call to grid.autoSize() may be
-     * required to register any changes in size.
-     * @param {Boolean} doShow By default the footer is hidden. Pass true to show the panel
-     * @return Ext.Element
-     */
-    getFooterPanel : function(doShow){
-        if(doShow){
-            this.footerPanel.show();
-        }
-        return this.footerPanel;
-	},
-
-	initElements : function(){
-	    var E = Ext.Element;
-	    var el = this.grid.container.dom.firstChild;
-	    var cs = el.childNodes;
-
-	    this.el = new E(el);
-	    this.headerPanel = new E(el.firstChild);
-	    this.headerPanel.enableDisplayMode("block");
-
-        this.scroller = new E(cs[1]);
-	    this.scrollSizer = new E(this.scroller.dom.firstChild);
-
-	    this.lockedWrap = new E(cs[2]);
-	    this.lockedHd = new E(this.lockedWrap.dom.firstChild);
-	    this.lockedBody = new E(this.lockedWrap.dom.childNodes[1]);
-
-	    this.mainWrap = new E(cs[3]);
-	    this.mainHd = new E(this.mainWrap.dom.firstChild);
-	    this.mainBody = new E(this.mainWrap.dom.childNodes[1]);
-
-	    this.footerPanel = new E(cs[4]);
-	    this.footerPanel.enableDisplayMode("block");
-
-        this.focusEl = new E(cs[5]);
-        this.focusEl.swallowEvent("click", true);
-        this.resizeProxy = new E(cs[6]);
-
-	    this.headerSelector = String.format(
-	       '#{0} td.x-grid-hd, #{1} td.x-grid-hd',
-	       this.lockedHd.id, this.mainHd.id
-	    );
-
-	    this.splitterSelector = String.format(
-	       '#{0} div.x-grid-split, #{1} div.x-grid-split',
-	       this.lockedHd.id, this.mainHd.id
-	    );
-    },
-
-	getHeaderCell : function(index){
-	    return Ext.DomQuery.select(this.headerSelector)[index];
-	},
-
-	getHeaderCellMeasure : function(index){
-	    return this.getHeaderCell(index).firstChild;
-	},
-
-	getHeaderCellText : function(index){
-	    return this.getHeaderCell(index).firstChild.firstChild;
-	},
-
-	getLockedTable : function(){
-	    return this.lockedBody.dom.firstChild;
-	},
-
-	getBodyTable : function(){
-	    return this.mainBody.dom.firstChild;
-	},
-
-	getLockedRow : function(index){
-	    return this.getLockedTable().rows[index];
-	},
-
-	getRow : function(index){
-	    return this.getBodyTable().rows[index];
-	},
-
-	getRowComposite : function(index){
-	    if(!this.rowEl){
-	        this.rowEl = new Ext.CompositeElementLite();
-	    }
-        var els = [], lrow, mrow;
-        if(lrow = this.getLockedRow(index)){
-            els.push(lrow);
-        }
-        if(mrow = this.getRow(index)){
-            els.push(mrow);
-        }
-        this.rowEl.elements = els;
-	    return this.rowEl;
-	},
-
-	getCell : function(rowIndex, colIndex){
-	    var locked = this.cm.getLockedCount();
-	    var source;
-	    if(colIndex < locked){
-	        source = this.lockedBody.dom.firstChild;
-	    }else{
-	        source = this.mainBody.dom.firstChild;
-	        colIndex -= locked;
-	    }
-        return source.rows[rowIndex].childNodes[colIndex];
-	},
-
-	getCellText : function(rowIndex, colIndex){
-	    return this.getCell(rowIndex, colIndex).firstChild.firstChild;
-	},
-
-	getCellBox : function(cell){
-	    var b = this.fly(cell).getBox();
-        if(Ext.isOpera){ // opera fails to report the Y
-            b.y = cell.offsetTop + this.mainBody.getY();
-        }
-        return b;
-    },
-
-    getCellIndex : function(cell){
-        var id = String(cell.className).match(this.cellRE);
-        if(id){
-            return parseInt(id[1], 10);
-        }
-        return 0;
-    },
-
-    findHeaderIndex : function(n){
-        var r = Ext.fly(n).findParent("td." + this.hdClass, 6);
-        return r ? this.getCellIndex(r) : false;
-    },
-
-    findHeaderCell : function(n){
-        var r = Ext.fly(n).findParent("td." + this.hdClass, 6);
-        return r ? r : false;
-    },
-
-    findRowIndex : function(n){
-        if(!n){
-            return false;
-        }
-        var r = Ext.fly(n).findParent("tr." + this.rowClass, 6);
-        return r ? r.rowIndex : false;
-    },
-
-    findCellIndex : function(node){
-        var stop = this.el.dom;
-        while(node && node != stop){
-            if(this.findRE.test(node.className)){
-                return this.getCellIndex(node);
-            }
-            node = node.parentNode;
-        }
-        return false;
-    },
-
-    getColumnId : function(index){
-	    return this.cm.getColumnId(index);
-	},
-
-	getSplitters : function(){
-	    if(this.splitterSelector){
-	       return Ext.DomQuery.select(this.splitterSelector);
-	    }else{
-	        return null;
-	    }
-	},
-
-	getSplitter : function(index){
-	    return this.getSplitters()[index];
-	},
-
-    onRowOver : function(e, t){
-        var row;
-        if((row = this.findRowIndex(t)) !== false){
-            this.getRowComposite(row).addClass("x-grid-row-over");
-        }
-    },
-
-    onRowOut : function(e, t){
-        var row;
-        if((row = this.findRowIndex(t)) !== false && row !== this.findRowIndex(e.getRelatedTarget())){
-            this.getRowComposite(row).removeClass("x-grid-row-over");
-        }
-    },
-
-    renderHeaders : function(){
-	    var cm = this.cm;
-        var ct = this.templates.hcell, ht = this.templates.header, st = this.templates.hsplit;
-        var cb = [], lb = [], sb = [], lsb = [], p = {};
-        for(var i = 0, len = cm.getColumnCount(); i < len; i++){
-            p.cellId = "x-grid-hd-0-" + i;
-            p.splitId = "x-grid-csplit-0-" + i;
-            p.id = cm.getColumnId(i);
-            p.title = cm.getColumnTooltip(i) || "";
-            p.value = cm.getColumnHeader(i) || "";
-            p.style = (this.grid.enableColumnResize === false || !cm.isResizable(i) || cm.isFixed(i)) ? 'cursor:default' : '';
-            if(!cm.isLocked(i)){
-                cb[cb.length] = ct.apply(p);
-                sb[sb.length] = st.apply(p);
-            }else{
-                lb[lb.length] = ct.apply(p);
-                lsb[lsb.length] = st.apply(p);
-            }
-        }
-        return [ht.apply({cells: lb.join(""), splits:lsb.join("")}),
-                ht.apply({cells: cb.join(""), splits:sb.join("")})];
-	},
-
-	updateHeaders : function(){
-        var html = this.renderHeaders();
-        this.lockedHd.update(html[0]);
-        this.mainHd.update(html[1]);
-    },
-
-    /**
-     * Focuses the specified row.
-     * @param {Number} row The row index
-     */
-    focusRow : function(row){
-        var x = this.scroller.dom.scrollLeft;
-        this.focusCell(row, 0, false);
-        this.scroller.dom.scrollLeft = x;
-    },
-
-    /**
-     * Focuses the specified cell.
-     * @param {Number} row The row index
-     * @param {Number} col The column index
-     * @param {Boolean} hscroll false to disable horizontal scrolling
-     */
-    focusCell : function(row, col, hscroll){
-        var el = this.ensureVisible(row, col, hscroll);
-        this.focusEl.alignTo(el, "tl-tl");
-        if(Ext.isGecko){
-            this.focusEl.focus();
-        }else{
-            this.focusEl.focus.defer(1, this.focusEl);
-        }
-    },
-
-    /**
-     * Scrolls the specified cell into view
-     * @param {Number} row The row index
-     * @param {Number} col The column index
-     * @param {Boolean} hscroll false to disable horizontal scrolling
-     */
-    ensureVisible : function(row, col, hscroll){
-        if(typeof row != "number"){
-            row = row.rowIndex;
-        }
-        if(row < 0 && row >= this.ds.getCount()){
-            return;
-        }
-        col = (col !== undefined ? col : 0);
-        var cm = this.grid.colModel;
-        while(cm.isHidden(col)){
-            col++;
-        }
-
-        var el = this.getCell(row, col);
-        if(!el){
-            return;
-        }
-        var c = this.scroller.dom;
-
-        var ctop = parseInt(el.offsetTop, 10);
-        var cleft = parseInt(el.offsetLeft, 10);
-        var cbot = ctop + el.offsetHeight;
-        var cright = cleft + el.offsetWidth;
-
-        var ch = c.clientHeight - this.mainHd.dom.offsetHeight;
-        var stop = parseInt(c.scrollTop, 10);
-        var sleft = parseInt(c.scrollLeft, 10);
-        var sbot = stop + ch;
-        var sright = sleft + c.clientWidth;
-
-        if(ctop < stop){
-        	c.scrollTop = ctop;
-        }else if(cbot > sbot){
-            c.scrollTop = cbot-ch;
-        }
-
-        if(hscroll !== false){
-            if(cleft < sleft){
-                c.scrollLeft = cleft;
-            }else if(cright > sright){
-                c.scrollLeft = cright-c.clientWidth;
-            }
-        }
-        return el;
-    },
-
-    updateColumns : function(){
-        this.grid.stopEditing();
-        var cm = this.grid.colModel, colIds = this.getColumnIds();
-        //var totalWidth = cm.getTotalWidth();
-        var pos = 0;
-        for(var i = 0, len = cm.getColumnCount(); i < len; i++){
-            //if(cm.isHidden(i)) continue;
-            var w = cm.getColumnWidth(i);
-            this.css.updateRule(this.colSelector+colIds[i], "width", (w - this.borderWidth) + "px");
-            this.css.updateRule(this.hdSelector+colIds[i], "width", (w - this.borderWidth) + "px");
-        }
-        this.updateSplitters();
-    },
-
-    updateSplitters : function(){
-        var cm = this.cm, s = this.getSplitters();
-        if(s){ // splitters not created yet
-            var pos = 0, locked = true;
-            for(var i = 0, len = cm.getColumnCount(); i < len; i++){
-                if(cm.isHidden(i)) continue;
-                var w = cm.getColumnWidth(i);
-                if(!cm.isLocked(i) && locked){
-                    pos = 0;
-                    locked = false;
-                }
-                pos += w;
-                s[i].style.left = (pos-this.splitOffset) + "px";
-            }
-        }
-    },
-
-    handleHiddenChange : function(colModel, colIndex, hidden){
-        if(hidden){
-            this.hideColumn(colIndex);
-        }else{
-            this.unhideColumn(colIndex);
-        }
-    },
-
-    hideColumn : function(colIndex){
-        var cid = this.getColumnId(colIndex);
-        this.css.updateRule(this.tdSelector+cid, "display", "none");
-        this.css.updateRule(this.splitSelector+cid, "display", "none");
-        if(Ext.isSafari){
-            this.updateHeaders();
-        }
-        this.updateSplitters();
-        this.layout();
-    },
-
-    unhideColumn : function(colIndex){
-        var cid = this.getColumnId(colIndex);
-        this.css.updateRule(this.tdSelector+cid, "display", "");
-        this.css.updateRule(this.splitSelector+cid, "display", "");
-
-        if(Ext.isSafari){
-            this.updateHeaders();
-        }
-        this.updateSplitters();
-        this.layout();
-    },
-
-    insertRows : function(dm, firstRow, lastRow, isUpdate){
-        if(firstRow == 0 && lastRow == dm.getCount()-1){
-            this.refresh();
-        }else{
-            if(!isUpdate){
-                this.fireEvent("beforerowsinserted", this, firstRow, lastRow);
-            }
-            var s = this.getScrollState();
-            var markup = this.renderRows(firstRow, lastRow);
-            this.bufferRows(markup[0], this.getLockedTable(), firstRow);
-            this.bufferRows(markup[1], this.getBodyTable(), firstRow);
-            this.restoreScroll(s);
-            if(!isUpdate){
-                this.fireEvent("rowsinserted", this, firstRow, lastRow);
-                this.syncRowHeights(firstRow, lastRow);
-                this.stripeRows(firstRow);
-                this.layout();
-            }
-        }
-    },
-
-    bufferRows : function(markup, target, index){
-        var before = null, trows = target.rows, tbody = target.tBodies[0];
-        if(index < trows.length){
-            before = trows[index];
-        }
-        var b = document.createElement("div");
-        b.innerHTML = "<table><tbody>"+markup+"</tbody></table>";
-        var rows = b.firstChild.rows;
-        for(var i = 0, len = rows.length; i < len; i++){
-            if(before){
-                tbody.insertBefore(rows[0], before);
-            }else{
-                tbody.appendChild(rows[0]);
-            }
-        }
-        b.innerHTML = "";
-        b = null;
-    },
-
-    deleteRows : function(dm, firstRow, lastRow){
-        if(dm.getRowCount()<1){
-            this.fireEvent("beforerefresh", this);
-            this.mainBody.update("");
-            this.lockedBody.update("");
-            this.fireEvent("refresh", this);
-        }else{
-            this.fireEvent("beforerowsdeleted", this, firstRow, lastRow);
-            var bt = this.getBodyTable();
-            var tbody = bt.firstChild;
-            var rows = bt.rows;
-            for(var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++){
-                tbody.removeChild(rows[firstRow]);
-            }
-            this.stripeRows(firstRow);
-            this.fireEvent("rowsdeleted", this, firstRow, lastRow);
-        }
-    },
-
-    updateRows : function(dataSource, firstRow, lastRow){
-        var s = this.getScrollState();
-        this.refresh();
-        this.restoreScroll(s);
-    },
-
-    handleSort : function(dataSource, sortColumnIndex, sortDir, noRefresh){
-        if(!noRefresh){
-           this.refresh();
-        }
-        this.updateHeaderSortState();
-    },
-
-    getScrollState : function(){
-        var sb = this.scroller.dom;
-        return {left: sb.scrollLeft, top: sb.scrollTop};
-    },
-
-    stripeRows : function(startRow){
-        if(!this.grid.stripeRows || this.ds.getCount() < 1){
-            return;
-        }
-        startRow = startRow || 0;
-        var rows = this.getBodyTable().rows;
-        var lrows = this.getLockedTable().rows;
-        var cls = ' x-grid-row-alt ';
-        for(var i = startRow, len = rows.length; i < len; i++){
-            var row = rows[i], lrow = lrows[i];
-            var isAlt = ((i+1) % 2 == 0);
-            var hasAlt = (' '+row.className + ' ').indexOf(cls) != -1;
-            if(isAlt == hasAlt){
-                continue;
-            }
-            if(isAlt){
-                row.className += " x-grid-row-alt";
-            }else{
-                row.className = row.className.replace("x-grid-row-alt", "");
-            }
-            if(lrow){
-                lrow.className = row.className;
-            }
-        }
-    },
-
-    restoreScroll : function(state){
-        var sb = this.scroller.dom;
-        sb.scrollLeft = state.left;
-        sb.scrollTop = state.top;
-        this.syncScroll();
-    },
-
-    syncScroll : function(){
-        var sb = this.scroller.dom;
-        var sh = this.mainHd.dom;
-        var bs = this.mainBody.dom;
-        var lv = this.lockedBody.dom;
-        sh.scrollLeft = bs.scrollLeft = sb.scrollLeft;
-        lv.scrollTop = bs.scrollTop = sb.scrollTop;
-    },
-
-    handleScroll : function(e){
-        this.syncScroll();
-        var sb = this.scroller.dom;
-        this.grid.fireEvent("bodyscroll", sb.scrollLeft, sb.scrollTop);
-        e.stopEvent();
-    },
-
-    handleWheel : function(e){
-        var d = e.getWheelDelta();
-        this.scroller.dom.scrollTop -= d*22;
-        // set this here to prevent jumpy scrolling on large tables
-        this.lockedBody.dom.scrollTop = this.mainBody.dom.scrollTop = this.scroller.dom.scrollTop;
-        e.stopEvent();
-    },
-
-    renderRows : function(startRow, endRow){
-        // pull in all the crap needed to render rows
-        var g = this.grid, cm = g.colModel, ds = g.dataSource, stripe = g.stripeRows;
-        var colCount = cm.getColumnCount();
-
-        if(ds.getCount() < 1){
-            return ["", ""];
-        }
-
-        // build a map for all the columns
-        var cs = [];
-        for(var i = 0; i < colCount; i++){
-            var name = cm.getDataIndex(i);
-            cs[i] = {
-                name : typeof name == 'undefined' ? ds.fields.get(i).name : name,
-                renderer : cm.getRenderer(i),
-                id : cm.getColumnId(i),
-                locked : cm.isLocked(i)
-            };
-        }
-
-        startRow = startRow || 0;
-        endRow = typeof endRow == "undefined"? ds.getCount()-1 : endRow;
-
-        // records to render
-        var rs = ds.getRange(startRow, endRow);
-
-        return this.doRender(cs, rs, ds, startRow, colCount, stripe);
-    },
-
-    // As much as I hate to duplicate code, this was branched because FireFox really hates
-    // [].join("") on strings. The performance difference was substantial enough to
-    // branch this function
-    doRender : Ext.isGecko ?
-            function(cs, rs, ds, startRow, colCount, stripe){
-                var ts = this.templates, ct = ts.cell, rt = ts.row;
-                // buffers
-                var buf = "", lbuf = "", cb, lcb, c, p = {}, rp = {}, r;
-                for(var j = 0, len = rs.length; j < len; j++){
-                    r = rs[j], cb = "", lcb = "", rowIndex = (j+startRow);
-                    for(var i = 0; i < colCount; i++){
-                        c = cs[i];
-                        p.cellId = "x-grid-cell-" + rowIndex + "-" + i;
-                        p.id = c.id;
-                        p.css = p.attr = "";
-                        p.value = c.renderer(r.data[c.name], p, r, rowIndex, i, ds);
-                        if(p.value == undefined || p.value === "") p.value = "&#160;";
-                        if(r.dirty && typeof r.modified[c.name] !== 'undefined'){
-                            p.css += p.css ? ' x-grid-dirty-cell' : 'x-grid-dirty-cell';
-                        }
-                        var markup = ct.apply(p);
-                        if(!c.locked){
-                            cb+= markup;
-                        }else{
-                            lcb+= markup;
-                        }
-                    }
-                    var alt = [];
-                    if(stripe && ((rowIndex+1) % 2 == 0)){
-                        alt[0] = "x-grid-row-alt";
-                    }
-                    if(r.dirty){
-                        alt[1] = " x-grid-dirty-row";
-                    }
-                    rp.cells = lcb;
-                    if(this.getRowClass){
-                        alt[2] = this.getRowClass(r, rowIndex);
-                    }
-                    rp.alt = alt.join(" ");
-                    lbuf+= rt.apply(rp);
-                    rp.cells = cb;
-                    buf+=  rt.apply(rp);
-                }
-                return [lbuf, buf];
-            } :
-            function(cs, rs, ds, startRow, colCount, stripe){
-                var ts = this.templates, ct = ts.cell, rt = ts.row;
-                // buffers
-                var buf = [], lbuf = [], cb, lcb, c, p = {}, rp = {}, r;
-                for(var j = 0, len = rs.length; j < len; j++){
-                    r = rs[j], cb = [], lcb = [], rowIndex = (j+startRow);
-                    for(var i = 0; i < colCount; i++){
-                        c = cs[i];
-                        p.cellId = "x-grid-cell-" + rowIndex + "-" + i;
-                        p.id = c.id;
-                        p.css = p.attr = "";
-                        p.value = c.renderer(r.data[c.name], p, r, rowIndex, i, ds);
-                        if(p.value == undefined || p.value === "") p.value = "&#160;";
-                        if(r.dirty && typeof r.modified[c.name] !== 'undefined'){
-                            p.css += p.css ? ' x-grid-dirty-cell' : 'x-grid-dirty-cell';
-                        }
-                        var markup = ct.apply(p);
-                        if(!c.locked){
-                            cb[cb.length] = markup;
-                        }else{
-                            lcb[lcb.length] = markup;
-                        }
-                    }
-                    var alt = [];
-                    if(stripe && ((rowIndex+1) % 2 == 0)){
-                        alt[0] = "x-grid-row-alt";
-                    }
-                    if(r.dirty){
-                        alt[1] = " x-grid-dirty-row";
-                    }
-                    rp.cells = lcb;
-                    if(this.getRowClass){
-                        alt[2] = this.getRowClass(r, rowIndex);
-                    }
-                    rp.alt = alt.join(" ");
-                    rp.cells = lcb.join("");
-                    lbuf[lbuf.length] = rt.apply(rp);
-                    rp.cells = cb.join("");
-                    buf[buf.length] =  rt.apply(rp);
-                }
-                return [lbuf.join(""), buf.join("")];
-            },
-
-    renderBody : function(){
-        var markup = this.renderRows();
-        var bt = this.templates.body;
-        return [bt.apply({rows: markup[0]}), bt.apply({rows: markup[1]})];
-    },
-
-    /**
-     * Refreshes the grid
-     * @param {Boolean} headersToo
-     */
-    refresh : function(headersToo){
-        this.fireEvent("beforerefresh", this);
-        this.grid.stopEditing();
-        var result = this.renderBody();
-        this.lockedBody.update(result[0]);
-        this.mainBody.update(result[1]);
-        if(headersToo === true){
-            this.updateHeaders();
-            this.updateColumns();
-            this.updateSplitters();
-            this.updateHeaderSortState();
-        }
-        this.syncRowHeights();
-        this.layout();
-        this.fireEvent("refresh", this);
-    },
-
-    handleColumnMove : function(cm, oldIndex, newIndex){
-        this.indexMap = null;
-        var s = this.getScrollState();
-        this.refresh(true);
-        this.restoreScroll(s);
-        this.afterMove(newIndex);
-    },
-
-    afterMove : function(colIndex){
-        if(this.enableMoveAnim && Ext.enableFx){
-            this.fly(this.getHeaderCell(colIndex).firstChild).highlight(this.hlColor);
-        }
-    },
-
-    updateCell : function(dm, rowIndex, dataIndex){
-        var colIndex = this.getColumnIndexByDataIndex(dataIndex);
-        if(typeof colIndex == "undefined"){ // not present in grid
-            return;
-        }
-        var cm = this.grid.colModel;
-        var cell = this.getCell(rowIndex, colIndex);
-        var cellText = this.getCellText(rowIndex, colIndex);
-
-        var p = {
-            cellId : "x-grid-cell-" + rowIndex + "-" + colIndex,
-            id : cm.getColumnId(colIndex),
-            css: colIndex == cm.getColumnCount()-1 ? "x-grid-col-last" : ""
-        };
-        var renderer = cm.getRenderer(colIndex);
-        var val = renderer(dm.getValueAt(rowIndex, dataIndex), p, rowIndex, colIndex, dm);
-        if(typeof val == "undefined" || val === "") val = "&#160;";
-        cellText.innerHTML = val;
-        cell.className = this.cellClass + " " + p.cellId + " " + p.css;
-        this.syncRowHeights(rowIndex, rowIndex);
-    },
-
-    calcColumnWidth : function(colIndex, maxRowsToMeasure){
-        var maxWidth = 0;
-        if(this.grid.autoSizeHeaders){
-            var h = this.getHeaderCellMeasure(colIndex);
-            maxWidth = Math.max(maxWidth, h.scrollWidth);
-        }
-        var tb, index;
-        if(this.cm.isLocked(colIndex)){
-            tb = this.getLockedTable();
-            index = colIndex;
-        }else{
-            tb = this.getBodyTable();
-            index = colIndex - this.cm.getLockedCount();
-        }
-        if(tb && tb.rows){
-            var rows = tb.rows;
-            var stopIndex = Math.min(maxRowsToMeasure || rows.length, rows.length);
-            for(var i = 0; i < stopIndex; i++){
-                var cell = rows[i].childNodes[index].firstChild;
-                maxWidth = Math.max(maxWidth, cell.scrollWidth);
-            }
-        }
-        return maxWidth + /*margin for error in IE*/ 5;
-    },
-    /**
-     * Autofit a column to its content.
-     * @param {Number} colIndex
-     * @param {Boolean} forceMinSize true to force the column to go smaller if possible
-     */
-     autoSizeColumn : function(colIndex, forceMinSize, suppressEvent){
-         if(this.cm.isHidden(colIndex)){
-             return; // can't calc a hidden column
-         }
-        if(forceMinSize){
-            var cid = this.cm.getColumnId(colIndex);
-            this.css.updateRule(this.colSelector + cid, "width", this.grid.minColumnWidth + "px");
-           if(this.grid.autoSizeHeaders){
-               this.css.updateRule(this.hdSelector + cid, "width", this.grid.minColumnWidth + "px");
-           }
-        }
-        var newWidth = this.calcColumnWidth(colIndex);
-        this.cm.setColumnWidth(colIndex,
-            Math.max(this.grid.minColumnWidth, newWidth), suppressEvent);
-        if(!suppressEvent){
-            this.grid.fireEvent("columnresize", colIndex, newWidth);
-        }
-    },
-
-    /**
-     * Autofits all columns to their content and then expands to fit any extra space in the grid
-     */
-     autoSizeColumns : function(){
-        var cm = this.grid.colModel;
-        var colCount = cm.getColumnCount();
-        for(var i = 0; i < colCount; i++){
-            this.autoSizeColumn(i, true, true);
-        }
-        if(cm.getTotalWidth() < this.scroller.dom.clientWidth){
-            this.fitColumns();
-        }else{
-            this.updateColumns();
-            this.layout();
-        }
-    },
-
-    /**
-     * Autofits all columns to the grid's width proportionate with their current size
-     * @param {Boolean} reserveScrollSpace Reserve space for a scrollbar
-     */
-    fitColumns : function(reserveScrollSpace){
-        var cm = this.grid.colModel;
-        var colCount = cm.getColumnCount();
-        var cols = [];
-        var width = 0;
-        var i, w;
-        for (i = 0; i < colCount; i++){
-            if(!cm.isHidden(i) && !cm.isFixed(i)){
-                w = cm.getColumnWidth(i);
-                cols.push(i);
-                cols.push(w);
-                width += w;
-            }
-        }
-        var avail = Math.min(this.scroller.dom.clientWidth, this.el.getWidth());
-        if(reserveScrollSpace){
-            avail -= 17;
-        }
-        var frac = (avail - cm.getTotalWidth())/width;
-        while (cols.length){
-            w = cols.pop();
-            i = cols.pop();
-            cm.setColumnWidth(i, Math.floor(w + w*frac), true);
-        }
-        this.updateColumns();
-        this.layout();
-    },
-
-    onRowSelect : function(rowIndex){
-        var row = this.getRowComposite(rowIndex);
-        row.addClass("x-grid-row-selected");
-    },
-
-    onRowDeselect : function(rowIndex){
-        var row = this.getRowComposite(rowIndex);
-        row.removeClass("x-grid-row-selected");
-    },
-
-    onCellSelect : function(row, col){
-        var cell = this.getCell(row, col);
-        if(cell){
-            Ext.fly(cell).addClass("x-grid-cell-selected");
-        }
-    },
-
-    onCellDeselect : function(row, col){
-        var cell = this.getCell(row, col);
-        if(cell){
-            Ext.fly(cell).removeClass("x-grid-cell-selected");
-        }
-    },
-
-    updateHeaderSortState : function(){
-        var state = this.ds.getSortState();
-        if(!state){
-            return;
-        }
-        this.sortState = state;
-        var sortColumn = this.cm.findColumnIndex(state.field);
-        if(sortColumn != -1){
-            var sortDir = state.direction;
-            var sc = this.sortClasses;
-            var hds = this.el.select(this.headerSelector).removeClass(sc);
-            hds.item(sortColumn).addClass(sc[sortDir == "DESC" ? 1 : 0]);
-        }
-    },
-
-    handleHeaderClick : function(g, index){
-        if(this.headersDisabled){
-            return;
-        }
-        var dm = g.dataSource, cm = g.colModel;
-	    if(!cm.isSortable(index)){
-            return;
-        }
-	    g.stopEditing();
-        dm.sort(cm.getDataIndex(index));
-    },
-
-
-    destroy : function(){
-        if(this.colMenu){
-            this.colMenu.removeAll();
-            Ext.menu.MenuMgr.unregister(this.colMenu);
-            this.colMenu.getEl().remove();
-            delete this.colMenu;
-        }
-        if(this.hmenu){
-            this.hmenu.removeAll();
-            Ext.menu.MenuMgr.unregister(this.hmenu);
-            this.hmenu.getEl().remove();
-            delete this.hmenu;
-        }
-        if(this.grid.enableColumnMove){
-            var dds = Ext.dd.DDM.ids['gridHeader' + this.grid.container.id];
-            if(dds){
-                for(var dd in dds){
-                    if(!dds[dd].config.isTarget && dds[dd].dragElId){
-                        var elid = dds[dd].dragElId;
-                        dds[dd].unreg();
-                        Ext.get(elid).remove();
-                    } else if(dds[dd].config.isTarget){
-                        dds[dd].proxyTop.remove();
-                        dds[dd].proxyBottom.remove();
-                        dds[dd].unreg();
-                    }
-                    if(Ext.dd.DDM.locationCache[dd]){
-                        delete Ext.dd.DDM.locationCache[dd];
-                    }
-                }
-                delete Ext.dd.DDM.ids['gridHeader' + this.grid.container.id];
-            }
-        }
-
-        this.bind(null, null);
-        Ext.EventManager.removeResizeListener(this.onWindowResize, this);
-    },
-
-    handleLockChange : function(){
-        this.refresh(true);
-    },
-
-    onDenyColumnLock : function(){
-
-    },
-
-    onDenyColumnHide : function(){
-
-    },
-
-    handleHdMenuClick : function(item){
-        var index = this.hdCtxIndex;
-        var cm = this.cm, ds = this.ds;
-        switch(item.id){
-            case "asc":
-                ds.sort(cm.getDataIndex(index), "ASC");
-                break;
-            case "desc":
-                ds.sort(cm.getDataIndex(index), "DESC");
-                break;
-            case "lock":
-                var lc = cm.getLockedCount();
-                if(cm.getColumnCount(true) <= lc+1){
-                    this.onDenyColumnLock();
-                    return;
-                }
-                if(lc != index){
-                    cm.setLocked(index, true, true);
-                    cm.moveColumn(index, lc);
-                    this.grid.fireEvent("columnmove", index, lc);
-                }else{
-                    cm.setLocked(index, true);
-                }
-            break;
-            case "unlock":
-                var lc = cm.getLockedCount();
-                if((lc-1) != index){
-                    cm.setLocked(index, false, true);
-                    cm.moveColumn(index, lc-1);
-                    this.grid.fireEvent("columnmove", index, lc-1);
-                }else{
-                    cm.setLocked(index, false);
-                }
-            break;
-            default:
-                index = cm.getIndexById(item.id.substr(4));
-                if(index != -1){
-                    if(item.checked && cm.getColumnCount(true) <= 1){
-                        this.onDenyColumnHide();
-                        return false;
-                    }
-                    cm.setHidden(index, item.checked);
-                }
-        }
-        return true;
-    },
-
-    beforeColMenuShow : function(){
-        var cm = this.cm,  colCount = cm.getColumnCount();
-        this.colMenu.removeAll();
-        for(var i = 0; i < colCount; i++){
-            this.colMenu.add(new Ext.menu.CheckItem({
-                id: "col-"+cm.getColumnId(i),
-                text: cm.getColumnHeader(i),
-                checked: !cm.isHidden(i),
-                hideOnClick:false
-            }));
-        }
-    },
-
-    handleHdCtx : function(g, index, e){
-        e.stopEvent();
-        var hd = this.getHeaderCell(index);
-        this.hdCtxIndex = index;
-        var ms = this.hmenu.items, cm = this.cm;
-        ms.get("asc").setDisabled(!cm.isSortable(index));
-        ms.get("desc").setDisabled(!cm.isSortable(index));
-        if(this.grid.enableColLock !== false){
-            ms.get("lock").setDisabled(cm.isLocked(index));
-            ms.get("unlock").setDisabled(!cm.isLocked(index));
-        }
-        this.hmenu.show(hd, "tl-bl");
-    },
-
-    handleHdOver : function(e){
-        var hd = this.findHeaderCell(e.getTarget());
-        if(hd && !this.headersDisabled){
-            if(this.grid.colModel.isSortable(this.getCellIndex(hd))){
-               this.fly(hd).addClass("x-grid-hd-over");
-            }
-        }
-    },
-
-    handleHdOut : function(e){
-        var hd = this.findHeaderCell(e.getTarget());
-        if(hd){
-            this.fly(hd).removeClass("x-grid-hd-over");
-        }
-    },
-
-    handleSplitDblClick : function(e, t){
-        var i = this.getCellIndex(t);
-        if(this.grid.enableColumnResize !== false && this.cm.isResizable(i) && !this.cm.isFixed(i)){
-            this.autoSizeColumn(i, true);
-            this.layout();
-        }
-    },
-
-    render : function(){
-
-        var cm = this.cm;
-        var colCount = cm.getColumnCount();
-
-        if(this.grid.monitorWindowResize === true){
-            Ext.EventManager.onWindowResize(this.onWindowResize, this, true);
-        }
-        var header = this.renderHeaders();
-        var body = this.templates.body.apply({rows:""});
-        var html = this.templates.master.apply({
-            lockedBody: body,
-            body: body,
-            lockedHeader: header[0],
-            header: header[1]
-        });
-
-        this.updateColumns();
-
-        this.grid.container.dom.innerHTML = html;
-
-        this.initElements();
-
-        this.scroller.on("scroll", this.handleScroll, this);
-        this.lockedBody.on("mousewheel", this.handleWheel, this);
-        this.mainBody.on("mousewheel", this.handleWheel, this);
-
-        this.mainHd.on("mouseover", this.handleHdOver, this);
-        this.mainHd.on("mouseout", this.handleHdOut, this);
-        this.mainHd.on("dblclick", this.handleSplitDblClick, this,
-                {delegate: "."+this.splitClass});
-
-        this.lockedHd.on("mouseover", this.handleHdOver, this);
-        this.lockedHd.on("mouseout", this.handleHdOut, this);
-        this.lockedHd.on("dblclick", this.handleSplitDblClick, this,
-                {delegate: "."+this.splitClass});
-
-        if(this.grid.enableColumnResize !== false && Ext.grid.SplitDragZone){
-            new Ext.grid.SplitDragZone(this.grid, this.lockedHd.dom, this.mainHd.dom);
-        }
-
-        this.updateSplitters();
-
-        if(this.grid.enableColumnMove && Ext.grid.HeaderDragZone){
-            new Ext.grid.HeaderDragZone(this.grid, this.lockedHd.dom, this.mainHd.dom);
-            new Ext.grid.HeaderDropZone(this.grid, this.lockedHd.dom, this.mainHd.dom);
-        }
-
-        if(this.grid.enableCtxMenu !== false && Ext.menu.Menu){
-            this.hmenu = new Ext.menu.Menu({id: this.grid.id + "-hctx"});
-            this.hmenu.add(
-                {id:"asc", text: this.sortAscText, cls: "xg-hmenu-sort-asc"},
-                {id:"desc", text: this.sortDescText, cls: "xg-hmenu-sort-desc"}
-            );
-            if(this.grid.enableColLock !== false){
-                this.hmenu.add('-',
-                    {id:"lock", text: this.lockText, cls: "xg-hmenu-lock"},
-                    {id:"unlock", text: this.unlockText, cls: "xg-hmenu-unlock"}
-                );
-            }
-            if(this.grid.enableColumnHide !== false){
-
-                this.colMenu = new Ext.menu.Menu({id:this.grid.id + "-hcols-menu"});
-                this.colMenu.on("beforeshow", this.beforeColMenuShow, this);
-                this.colMenu.on("itemclick", this.handleHdMenuClick, this);
-
-                this.hmenu.add('-',
-                    {id:"columns", text: this.columnsText, menu: this.colMenu}
-                );
-            }
-            this.hmenu.on("itemclick", this.handleHdMenuClick, this);
-
-            this.grid.on("headercontextmenu", this.handleHdCtx, this);
-        }
-
-        if((this.grid.enableDragDrop || this.grid.enableDrag) && Ext.grid.GridDragZone){
-            this.dd = new Ext.grid.GridDragZone(this.grid, {
-                ddGroup : this.grid.ddGroup || 'GridDD'
-            });
-        }
-        for(var i = 0; i < colCount; i++){
-            if(cm.isHidden(i)){
-                this.hideColumn(i);
-            }
-            if(cm.config[i].align){
-                this.css.updateRule(this.colSelector + i, "textAlign", cm.config[i].align);
-                this.css.updateRule(this.hdSelector + i, "textAlign", cm.config[i].align);
-            }
-        }
-
-        this.updateHeaderSortState();
-
-        this.beforeInitialResize();
-        this.layout(true);
-
-        // two part rendering gives faster view to the user
-        this.renderPhase2.defer(1, this);
-    },
-
-    renderPhase2 : function(){
-        // render the rows now
-        this.refresh();
-        if(this.grid.autoSizeColumns){
-            this.autoSizeColumns();
-        }
-    },
-
-    beforeInitialResize : function(){
-
-    },
-
-    onColumnSplitterMoved : function(i, w){
-        this.userResized = true;
-        var cm = this.grid.colModel;
-        cm.setColumnWidth(i, w, true);
-        var cid = cm.getColumnId(i);
-        this.css.updateRule(this.colSelector + cid, "width", (w-this.borderWidth) + "px");
-        this.css.updateRule(this.hdSelector + cid, "width", (w-this.borderWidth) + "px");
-        this.updateSplitters();
-        this.layout();
-        this.grid.fireEvent("columnresize", i, w);
-    },
-
-    syncRowHeights : function(startIndex, endIndex){
-        if(this.grid.enableRowHeightSync === true && this.cm.getLockedCount() > 0){
-            startIndex = startIndex || 0;
-            var mrows = this.getBodyTable().rows;
-            var lrows = this.getLockedTable().rows;
-            var len = mrows.length-1;
-            endIndex = Math.min(endIndex || len, len);
-            for(var i = startIndex; i <= endIndex; i++){
-                var m = mrows[i], l = lrows[i];
-                var h = Math.max(m.offsetHeight, l.offsetHeight);
-                m.style.height = l.style.height = h + "px";
-            }
-        }
-    },
-
-    layout : function(initialRender, is2ndPass){
-        var g = this.grid;
-        var auto = g.autoHeight;
-        var scrollOffset = 16;
-        var c = g.container, cm = this.cm,
-                expandCol = g.autoExpandColumn,
-                gv = this;
-        //c.beginMeasure();
-
-        if(!c.dom.offsetWidth){ // display:none?
-            if(initialRender){
-                this.lockedWrap.show();
-                this.mainWrap.show();
-            }
-            return;
-        }
-
-        var hasLock = this.cm.isLocked(0);
-
-        var tbh = this.headerPanel.getHeight();
-        var bbh = this.footerPanel.getHeight();
-
-        if(auto){
-            var ch = this.getBodyTable().offsetHeight + tbh + bbh + this.mainHd.getHeight();
-            var newHeight = ch + c.getBorderWidth("tb");
-            if(g.maxHeight){
-                newHeight = Math.min(g.maxHeight, newHeight);
-            }
-            c.setHeight(newHeight);
-        }
-
-        if(g.autoWidth){
-            c.setWidth(cm.getTotalWidth()+c.getBorderWidth('lr'));
-        }
-
-        var s = this.scroller;
-
-        var csize = c.getSize(true);
-
-        this.el.setSize(csize.width, csize.height);
-
-        this.headerPanel.setWidth(csize.width);
-        this.footerPanel.setWidth(csize.width);
-
-        var hdHeight = this.mainHd.getHeight();
-        var vw = csize.width;
-        var vh = csize.height - (tbh + bbh);
-
-        s.setSize(vw, vh);
-
-        var bt = this.getBodyTable();
-        var ltWidth = hasLock ?
-                      Math.max(this.getLockedTable().offsetWidth, this.lockedHd.dom.firstChild.offsetWidth) : 0;
-
-        var scrollHeight = bt.offsetHeight;
-        var scrollWidth = ltWidth + bt.offsetWidth;
-        var vscroll = false, hscroll = false;
-
-        this.scrollSizer.setSize(scrollWidth, scrollHeight+hdHeight);
-
-        var lw = this.lockedWrap, mw = this.mainWrap;
-        var lb = this.lockedBody, mb = this.mainBody;
-
-        setTimeout(function(){
-            var t = s.dom.offsetTop;
-            var w = s.dom.clientWidth,
-                h = s.dom.clientHeight;
-
-            lw.setTop(t);
-            lw.setSize(ltWidth, h);
-
-            mw.setLeftTop(ltWidth, t);
-            mw.setSize(w-ltWidth, h);
-
-            lb.setHeight(h-hdHeight);
-            mb.setHeight(h-hdHeight);
-
-            if(is2ndPass !== true && !gv.userResized && expandCol){
-                // high speed resize without full column calculation
-                var ci = cm.getIndexById(expandCol);
-                var tw = cm.getTotalWidth(false);
-                var currentWidth = cm.getColumnWidth(ci);
-                var cw = Math.min(Math.max(((w-tw)+currentWidth-2)-/*scrollbar*/(w <= s.dom.offsetWidth ? 0 : 18), g.autoExpandMin), g.autoExpandMax);
-                if(currentWidth != cw){
-                    cm.setColumnWidth(ci, cw, true);
-                    gv.css.updateRule(gv.colSelector+expandCol, "width", (cw - gv.borderWidth) + "px");
-                    gv.css.updateRule(gv.hdSelector+expandCol, "width", (cw - gv.borderWidth) + "px");
-                    gv.updateSplitters();
-                    gv.layout(false, true);
-                }
-            }
-
-            if(initialRender){
-                lw.show();
-                mw.show();
-            }
-            //c.endMeasure();
-        }, 10);
-    },
-
-    onWindowResize : function(){
-        if(!this.grid.monitorWindowResize || this.grid.autoHeight){
-            return;
-        }
-        this.layout();
-    },
-
-    appendFooter : function(parentEl){
-        return null;
-    },
-
-    sortAscText : "Sort Ascending",
-    sortDescText : "Sort Descending",
-    lockText : "Lock Column",
-    unlockText : "Unlock Column",
-    columnsText : "Columns"
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/HttpProxy.jss.html b/www/extras/extjs/docs/output/HttpProxy.jss.html deleted file mode 100644 index 9dc853f14..000000000 --- a/www/extras/extjs/docs/output/HttpProxy.jss.html +++ /dev/null @@ -1,94 +0,0 @@ -HttpProxy.js

HttpProxy.js

/**
- * @class Ext.data.HttpProxy
- * An implementation of Ext.data.DataProxy that reads a data object from an Ext.data.Connection object
- * configured to reference a certain URL.
- * <p>
- * <em>Note that this class cannot be used to retrieve data from a domain other than the domain
- * from which the running page was served.
- * <p>
- * For cross-domain access to remote data, use an Ext.data.ScriptTagProxy.
- * </em>
- * <p>
- * Be aware that to enable the browser to parse an XML document, the server <strong>must</strong> set
- * the Content-Type header to "text/xml".
- * @constructor
- * @param {Object} conn An Ext.data.Connection object referencing the URL from which the data object
- * is to be read, or a configuration object for an Ext.data.Connection.
- */
-Ext.data.HttpProxy = function(conn){
-    Ext.data.HttpProxy.superclass.constructor.call(this);
-    // is conn a conn config or a real conn?
-    this.conn = conn.events ? conn : new Ext.data.Connection(conn);
-};
-
-Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, {
-    // private
-    getConnection : function(){
-        return this.conn;
-    },
-
-    /**
-     * Load data from the configured Ext.data.Connection, read the data object into
-     * a block of Ext.data.Records using the passed Ext.data.DataReader implementation, and
-     * process that block using the passed callback.
-     * @param {Object} params An object containing properties which are to be used as HTTP parameters
-     * for the request to the remote server.
-     * @param {Ext.data.DataReader) reader The Reader object which converts the data
-     * object into a block of Ext.data.Records.
-     * @param {Function} callback The function into which to pass the block of Ext.data.Records.
-     * The function must be passed <ul>
-     * <li>The Record block object</li>
-     * <li>The "arg" argument from the load function</li>
-     * <li>A boolean success indicator</li>
-     * </ul>
-     * @param {Object} scope The scope in which to call the callback
-     * @param {Object} arg An optional argument which is passed to the callback as its second parameter.
-     */
-    load : function(params, reader, callback, scope, arg){
-        if(this.fireEvent("beforeload", this, params) !== false){
-            this.conn.request({
-                params : params || {}, 
-                request: {
-                    callback : callback,
-                    scope : scope,
-                    arg : arg
-                },
-                reader: reader,
-                callback : this.loadResponse,
-                scope: this
-            });
-        }else{
-            callback.call(scope||this, null, arg, false);
-        }
-    },
-    
-    // private
-    loadResponse : function(o, success, response){
-        if(!success){
-            this.fireEvent("loadexception", this, o, response);
-            o.request.callback.call(o.request.scope, null, o.request.arg, false);
-            return;
-        }
-        var result;
-        try {
-            result = o.reader.read(response);
-        }catch(e){
-            this.fireEvent("loadexception", this, o, response, e);
-            o.request.callback.call(o.request.scope, null, o.request.arg, false);
-            return;
-        }
-        this.fireEvent("load", this, o, o.request.arg);
-        o.request.callback.call(o.request.scope, result, o.request.arg, true);
-    },
-    
-    // private
-    update : function(dataSet){
-        
-    },
-    
-    // private
-    updateResponse : function(dataSet){
-        
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Item.jss.html b/www/extras/extjs/docs/output/Item.jss.html deleted file mode 100644 index 3957c77fb..000000000 --- a/www/extras/extjs/docs/output/Item.jss.html +++ /dev/null @@ -1,121 +0,0 @@ -Item.js

Item.js

/**
- * @class Ext.menu.Item
- * @extends Ext.menu.BaseItem
- * A base class for all menu items that require menu-related functionality (like sub-menus) and are not static
- * display items.  Item extends the base functionality of {@link Ext.menu.BaseItem} by adding menu-specific
- * activation and click handling.
- * @constructor
- * Creates a new Item
- * @param {Object} config Configuration options
- */
-Ext.menu.Item = function(config){
-    Ext.menu.Item.superclass.constructor.call(this, config);
-    if(this.menu){
-        this.menu = Ext.menu.MenuMgr.get(this.menu);
-    }
-};
-Ext.extend(Ext.menu.Item, Ext.menu.BaseItem, {
-    /**
-     * @cfg {String} icon
-     * The path to an icon to display in this menu item (defaults to Ext.BLANK_IMAGE_URL)
-     */
-// holder
-/***
-     * @cfg {String} itemCls The default CSS class to use for menu items (defaults to "x-menu-item")
-     */
-    itemCls : "x-menu-item",
-    /**
-     * @cfg {Boolean} canActivate True if this item can be visually activated (defaults to true)
-     */
-    canActivate : true,
-
-    // private
-    ctype: "Ext.menu.Item",
-
-    // private
-    onRender : function(container, position){
-        var el = document.createElement("a");
-        el.hideFocus = true;
-        el.unselectable = "on";
-        el.href = this.href || "#";
-        if(this.hrefTarget){
-            el.target = this.hrefTarget;
-        }
-        el.className = this.itemCls + (this.menu ?  " x-menu-item-arrow" : "") + (this.cls ?  " " + this.cls : "");
-        el.innerHTML = String.format(
-                '<img src="{0}" class="x-menu-item-icon">{1}',
-                this.icon || Ext.BLANK_IMAGE_URL, this.text);
-        this.el = el;
-        Ext.menu.Item.superclass.onRender.call(this, container, position);
-    },
-
-    /**
-     * Sets the text to display in this menu item
-     * @param {String} text The text to display
-     */
-    setText : function(text){
-        this.text = text;
-        if(this.rendered){
-            this.el.update(String.format(
-                '<img src="{0}" class="x-menu-item-icon">{1}',
-                this.icon || Ext.BLANK_IMAGE_URL, this.text));
-            this.parentMenu.autoWidth();
-        }
-    },
-
-    // private
-    handleClick : function(e){
-        if(!this.href){ // if no link defined, stop the event automatically
-            e.stopEvent();
-        }
-        Ext.menu.Item.superclass.handleClick.apply(this, arguments);
-    },
-
-    // private
-    activate : function(autoExpand){
-        if(Ext.menu.Item.superclass.activate.apply(this, arguments)){
-            this.focus();
-            if(autoExpand){
-                this.expandMenu();
-            }
-        }
-        return true;
-    },
-
-    // private
-    shouldDeactivate : function(e){
-        if(Ext.menu.Item.superclass.shouldDeactivate.call(this, e)){
-            if(this.menu && this.menu.isVisible()){
-                return !this.menu.getEl().getRegion().contains(e.getPoint());
-            }
-            return true;
-        }
-        return false;
-    },
-
-    // private
-    deactivate : function(){
-        Ext.menu.Item.superclass.deactivate.apply(this, arguments);
-        this.hideMenu();
-    },
-
-    // private
-    expandMenu : function(autoActivate){
-        if(!this.disabled && this.menu){
-            if(!this.menu.isVisible()){
-                this.menu.show(this.container, this.parentMenu.subMenuAlign || "tl-tr?", this.parentMenu);
-            }
-            if(autoActivate){
-                this.menu.tryActivate(0, 1);
-            }
-        }
-    },
-
-    // private
-    hideMenu : function(){
-        if(this.menu && this.menu.isVisible()){
-            this.menu.hide();
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/JSON.jss.html b/www/extras/extjs/docs/output/JSON.jss.html deleted file mode 100644 index e968c76c1..000000000 --- a/www/extras/extjs/docs/output/JSON.jss.html +++ /dev/null @@ -1,137 +0,0 @@ -JSON.js

JSON.js

/**
- * @class Ext.util.JSON
- * Modified version of Douglas Crockford"s json.js that doesn"t
- * mess with the Object prototype 
- * http://www.json.org/js.html
- * @singleton
- */
-Ext.util.JSON = new (function(){
-    var useHasOwn = {}.hasOwnProperty ? true : false;
-    
-    // crashes Safari in some instances
-    //var validRE = /^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/;
-    
-    var pad = function(n) {
-        return n < 10 ? "0" + n : n;
-    };
-    
-    var m = {
-        "\b": '\\b',
-        "\t": '\\t',
-        "\n": '\\n',
-        "\f": '\\f',
-        "\r": '\\r',
-        '"' : '\\"',
-        "\\": '\\\\'
-    };
-
-    var encodeString = function(s){
-        if (/["\\\x00-\x1f]/.test(s)) {
-            return '"' + s.replace(/([\x00-\x1f\\"])/g, function(a, b) {
-                var c = m[b];
-                if(c){
-                    return c;
-                }
-                c = b.charCodeAt();
-                return "\\u00" +
-                    Math.floor(c / 16).toString(16) +
-                    (c % 16).toString(16);
-            }) + '"';
-        }
-        return '"' + s + '"';
-    };
-    
-    var encodeArray = function(o){
-        var a = ["["], b, i, l = o.length, v;
-            for (i = 0; i < l; i += 1) {
-                v = o[i];
-                switch (typeof v) {
-                    case "undefined":
-                    case "function":
-                    case "unknown":
-                        break;
-                    default:
-                        if (b) {
-                            a.push(',');
-                        }
-                        a.push(v === null ? "null" : Ext.util.JSON.encode(v));
-                        b = true;
-                }
-            }
-            a.push("]");
-            return a.join("");
-    };
-    
-    var encodeDate = function(o){
-        return '"' + o.getFullYear() + "-" +
-                pad(o.getMonth() + 1) + "-" +
-                pad(o.getDate()) + "T" +
-                pad(o.getHours()) + ":" +
-                pad(o.getMinutes()) + ":" +
-                pad(o.getSeconds()) + '"';
-    };
-    
-    /**
-     * Encodes an Object, Array or other value
-     * @param {Mixed} o The variable to encode
-     * @return {String} The JSON string
-     */
-    this.encode = function(o){
-        if(typeof o == "undefined" || o === null){
-            return "null";
-        }else if(o instanceof Array){
-            return encodeArray(o);
-        }else if(o instanceof Date){
-            return encodeDate(o);
-        }else if(typeof o == "string"){
-            return encodeString(o);
-        }else if(typeof o == "number"){
-            return isFinite(o) ? String(o) : "null";
-        }else if(typeof o == "boolean"){
-            return String(o);
-        }else {
-            var a = ["{"], b, i, v;
-            for (i in o) {
-                if(!useHasOwn || o.hasOwnProperty(i)) {
-                    v = o[i];
-                    switch (typeof v) {
-                    case "undefined":
-                    case "function":
-                    case "unknown":
-                        break;
-                    default:
-                        if(b){
-                            a.push(',');
-                        }
-                        a.push(this.encode(i), ":",
-                                v === null ? "null" : this.encode(v));
-                        b = true;
-                    }
-                }
-            }
-            a.push("}");
-            return a.join("");
-        }
-    };
-    
-    /**
-     * Decodes (parses) a JSON string to an object. If the JSON is invalid, this function throws a SyntaxError.
-     * @param {String} json The JSON string
-     * @return {Object} The resulting object
-     */
-    this.decode = function(json){
-        return eval("(" + json + ')');
-    };
-})();
-/** 
- * Shorthand for {@link Ext.util.JSON#encode}
- * @member Ext encode 
- * @method */
-Ext.encode = Ext.util.JSON.encode;
-/** 
- * Shorthand for {@link Ext.util.JSON#decode}
- * @member Ext decode 
- * @method */
-Ext.decode = Ext.util.JSON.decode;
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/JsonReader.jss.html b/www/extras/extjs/docs/output/JsonReader.jss.html deleted file mode 100644 index c57007f26..000000000 --- a/www/extras/extjs/docs/output/JsonReader.jss.html +++ /dev/null @@ -1,158 +0,0 @@ -JsonReader.js

JsonReader.js

/**
- * @class Ext.data.JsonReader
- * @extends Ext.data.DataReader
- * Data reader class to create an Array of Ext.data.Record objects from a JSON response
- * based on mappings in a provided Ext.data.Record constructor.
- * <p>
- * The code below lists all configuration options.
- * <pre><code>
-   var RecordDef = Ext.data.Record.create([
-       {name: 'name', mapping: 'name'},     // "mapping" property not needed if it's the same as "name"
-       {name: 'occupation'},                // This field will use "occupation" as the mapping.
-   ]);
-   var myReader = new Ext.data.JsonReader({
-       totalProperty: "results",    // The property which contains the number of returned records (optional)
-       root: "rows",                // The property which contains an Array of record objects
-       id: "id"                     // The property within the record object that provides an ID for the record (optional)
-   }, RecordDef);
-  </code></pre>
- * <p>
- * This would consume a JSON file like this:
- * <pre><code>
-   { 'results': 2, 'rows': [
-     { 'id': 1, 'name': 'Bill', occupation: 'Gardener' },
-     { 'id': 2, 'name': 'Ben', occupation: 'Horticulturalist' } ]
-   }
-  </code></pre>
- * @cfg {String} totalProperty Name of the property from which to retrieve the total number of records
- * in the dataset. This is only needed if the whole dataset is not passed in one go, but is being
- * paged from the remote server.
- * @cfg {String} successProperty Name of the property from which to retrieve the success attribute used by forms.
- * @cfg {String} root name of the property which contains the Array of row objects.
- * @cfg {String} id Name of the property within a row object that contains a record identifier value.
- * @constructor
- * Create a new JsonReader
- * @param {Object} meta Metadata configuration options
- * @param {Object[]/Ext.data.Record constructor} recordType The record definition of the data record to produce.
- */
-Ext.data.JsonReader = function(meta, recordType){
-    Ext.data.JsonReader.superclass.constructor.call(this, meta, recordType);
-};
-Ext.extend(Ext.data.JsonReader, Ext.data.DataReader, {
-    /**
-     * This method is only used by a DataProxy which has retrieved data from a remote server.
-     * @param {Object} response The XHR object which contains the JSON data in its responseText.
-     * @return {Object} data A data block which is used by an Ext.data.Store object as
-     * a cache of Ext.data.Records.
-     */
-    read : function(response){
-        var json = response.responseText;
-        var o = eval("("+json+")");
-        if(!o) {
-            throw {message: "JsonReader.read: Json object not found"};
-        }
-        return this.readRecords(o);
-    },
-
-	/**
-	 * @ignore
-	 */
-    simpleAccess: function(obj, subsc) {
-    	return obj[subsc];
-    },
-
-	/**
-	 * @ignore
-	 */
-    getJsonAccessor: function(){
-        var re = /[\[\.]/;
-        return function(expr) {
-            try {
-                return(re.test(expr))
-                    ? new Function("obj", "return obj." + expr)
-                    : function(obj){
-                        return obj[expr];
-                    };
-            } catch(e){}
-            return Ext.emptyFn;
-        };
-    }(),
-
-    /**
-     * Create a data block containing Ext.data.Records from an XML document.
-     * @param {Object} o An object which contains an Array of row objects in the property specified
-     * in the config as 'root, and optionally a property, specified in the config as 'totalProperty'
-     * which contains the total size of the dataset.
-     * @return {Object} data A data block which is used by an Ext.data.Store object as
-     * a cache of Ext.data.Records.
-     */
-    readRecords : function(o){
-        /**
-         * After any data loads, the raw JSON data is available for further custom processing.
-         * @type Object
-         */
-        this.jsonData = o;
-        var s = this.meta, Record = this.recordType,
-            f = Record.prototype.fields, fi = f.items, fl = f.length;
-
-//      Generate extraction functions for the totalProperty, the root, the id, and for each field
-        if (!this.ef) {
-            if(s.totalProperty) {
-	            this.getTotal = this.getJsonAccessor(s.totalProperty);
-	        }
-	        if(s.successProperty) {
-	            this.getSuccess = this.getJsonAccessor(s.successProperty);
-	        }
-	        this.getRoot = s.root ? this.getJsonAccessor(s.root) : function(p){return p;};
-	        if (s.id) {
-	        	var g = this.getJsonAccessor(s.id);
-	        	this.getId = function(rec) {
-	        		var r = g(rec);
-		        	return (r === undefined || r === "") ? null : r;
-	        	};
-	        } else {
-	        	this.getId = function(){return null;};
-	        }
-            this.ef = [];
-            for(var i = 0; i < fl; i++){
-                f = fi[i];
-                var map = (f.mapping !== undefined && f.mapping !== null) ? f.mapping : f.name;
-                this.ef[i] = this.getJsonAccessor(map);
-            }
-        }
-
-    	var root = this.getRoot(o), c = root.length, totalRecords = c, success = true;
-    	if(s.totalProperty){
-            var v = parseInt(this.getTotal(o), 10);
-            if(!isNaN(v)){
-                totalRecords = v;
-            }
-        }
-        if(s.successProperty){
-            var v = this.getSuccess(o);
-            if(v === false || v === 'false'){
-                success = false;
-            }
-        }
-        var records = [];
-	    for(var i = 0; i < c; i++){
-		    var n = root[i];
-	        var values = {};
-	        var id = this.getId(n);
-	        for(var j = 0; j < fl; j++){
-	            f = fi[j];
-                var v = this.ef[j](n);
-                values[f.name] = f.convert((v !== undefined) ? v : f.defaultValue);
-	        }
-	        var record = new Record(values, id);
-	        record.json = n;
-	        records[i] = record;
-	    }
-	    return {
-	        success : success,
-	        records : records,
-	        totalRecords : totalRecords
-	    };
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/JsonView.jss.html b/www/extras/extjs/docs/output/JsonView.jss.html deleted file mode 100644 index a38f71adf..000000000 --- a/www/extras/extjs/docs/output/JsonView.jss.html +++ /dev/null @@ -1,295 +0,0 @@ -JsonView.js

JsonView.js

/**
- * @class Ext.JsonView
- * @extends Ext.View
- * Shortcut class to create a JSON + UpdateManager template view. Usage:
- <pre><code>
- var view = new Ext.JsonView("my-element",
- '&lt;div id="{id}"&gt;{foo} - {bar}&lt;/div&gt;', // auto create template
- { multiSelect: true, jsonRoot: "data" });
-
- // listen for node click?
- view.on("click", function(vw, index, node, e){
- alert('Node "' + node.id + '" at index: ' + index + " was clicked.");
- });
-
- // direct load of JSON data
- view.load("foobar.php");
-
-
- // Example from my blog list
- var tpl = new Ext.Template(
- '&lt;div class="entry"&gt;' +
- '&lt;a class="entry-title" href="{link}"&gt;{title}&lt;/a&gt;' +
- "&lt;h4&gt;{date} by {author} | {comments} Comments&lt;/h4&gt;{description}" +
- "&lt;/div&gt;&lt;hr /&gt;"
- );
-
- var moreView = new Ext.JsonView("entry-list", tpl, {
- jsonRoot: "posts"
- });
- moreView.on("beforerender", this.sortEntries, this);
- moreView.load({
- url:"/blog/get-posts.php",
- params: "allposts=true",
- text:"Loading Blog Entries..."
- });
- </code></pre>
- * @constructor
- * Create a new JsonView
- * @param {String/HTMLElement/Element} container The container element where the view is to be rendered.
- * @param {Template} tpl The rendering template
- * @param {Object} config The config object
- */
-Ext.JsonView = function(container, tpl, config){
-    Ext.JsonView.superclass.constructor.call(this, container, tpl, config);
-
-    var um = this.el.getUpdateManager();
-    um.setRenderer(this);
-    um.on("update", this.onLoad, this);
-    um.on("failure", this.onLoadException, this);
-
-    /**
-     * @event beforerender
-     * Fires before rendering of the downloaded json data.
-     * @param {Ext.View} this
-     * @param {Object} data The json data loaded
-     */
-// holder
-/***
-     * @event load
-     * Fires when data is loaded.
-     * @param {Ext.View} this
-     * @param {Object} data The json data loaded
-     * @param {Object} response The raw Connect response object
-     */
-// holder
-/***
-     * @event loadexception
-     * Fires when loading fails.
-     * @param {Ext.View} this
-     * @param {Object} response The raw Connect response object
-     */
-    this.addEvents({
-        'beforerender' : true,
-        'load' : true,
-        'loadexception' : true
-    });
-};
-Ext.extend(Ext.JsonView, Ext.View, {
-    /**
-     * The root property in the loaded json object that contains the data
-     * @type {String}
-     */
-    jsonRoot : "",
-
-    /**
-     * Refreshes the view.
-     */
-    refresh : function(){
-        this.clearSelections();
-        this.el.update("");
-        var html = [];
-        var o = this.jsonData;
-        if(o && o.length > 0){
-            for(var i = 0, len = o.length; i < len; i++){
-                var data = this.prepareData(o[i], i, o);
-                html[html.length] = this.tpl.apply(data);
-            }
-        }else{
-            html.push(this.emptyText);
-        }
-        this.el.update(html.join(""));
-        this.nodes = this.el.dom.childNodes;
-        this.updateIndexes(0);
-    },
-
-    /**
-     * Performs an async request, loading the JSON from the response. If params are specified it uses POST, otherwise it uses GET.
-     * @param {Object/String/Function} url The url for this request or a function to call to get the url or a config object containing any of the following options:
-     <pre><code>
-     view.load({
-     url: "your-url.php",<br/>
-     params: {param1: "foo", param2: "bar"}, // or a URL encoded string<br/>
-     callback: yourFunction,<br/>
-     scope: yourObject, //(optional scope)  <br/>
-     discardUrl: false, <br/>
-     nocache: false,<br/>
-     text: "Loading...",<br/>
-     timeout: 30,<br/>
-     scripts: false<br/>
-     });
-     </code></pre>
-     * The only required property is url. The optional properties nocache, text and scripts
-     * are shorthand for disableCaching, indicatorText and loadScripts and are used to set their associated property on this UpdateManager instance.
-     * @param {String/Object} params (optional) The parameters to pass as either a url encoded string "param1=1&amp;param2=2" or an object {param1: 1, param2: 2}
-     * @param {Function} callback (optional) Callback when transaction is complete - called with signature (oElement, bSuccess)
-     * @param {Boolean} discardUrl (optional) By default when you execute an update the defaultUrl is changed to the last used url. If true, it will not store the url.
-     */
-    load : function(){
-        var um = this.el.getUpdateManager();
-        um.update.apply(um, arguments);
-    },
-
-    render : function(el, response){
-        this.clearSelections();
-        this.el.update("");
-        var o;
-        try{
-            o = Ext.util.JSON.decode(response.responseText);
-            if(this.jsonRoot){
-                o = eval("o." + this.jsonRoot);
-            }
-        } catch(e){
-        }
-        /**
-         * The current json data or null
-         */
-        this.jsonData = o;
-        this.beforeRender();
-        this.refresh();
-    },
-
-/**
- * Get the number of records in the current JSON dataset
- * @return {Number}
- */
-    getCount : function(){
-        return this.jsonData ? this.jsonData.length : 0;
-    },
-
-/**
- * Returns the JSON object for the specified node(s)
- * @param {HTMLElement/Array} node The node or an array of nodes
- * @return {Object/Array} If you pass in an array, you get an array back, otherwise
- * you get the JSON object for the node
- */
-    getNodeData : function(node){
-        if(node instanceof Array){
-            var data = [];
-            for(var i = 0, len = node.length; i < len; i++){
-                data.push(this.getNodeData(node[i]));
-            }
-            return data;
-        }
-        return this.jsonData[this.indexOf(node)] || null;
-    },
-
-    beforeRender : function(){
-        this.snapshot = this.jsonData;
-        if(this.sortInfo){
-            this.sort.apply(this, this.sortInfo);
-        }
-        this.fireEvent("beforerender", this, this.jsonData);
-    },
-
-    onLoad : function(el, o){
-        this.fireEvent("load", this, this.jsonData, o);
-    },
-
-    onLoadException : function(el, o){
-        this.fireEvent("loadexception", this, o);
-    },
-
-/**
- * Filter the data by a specific property.
- * @param {String} property A property on your JSON objects
- * @param {String/RegExp} value Either string that the property values
- * should start with or a RegExp to test against the property
- */
-    filter : function(property, value){
-        if(this.jsonData){
-            var data = [];
-            var ss = this.snapshot;
-            if(typeof value == "string"){
-                var vlen = value.length;
-                if(vlen == 0){
-                    this.clearFilter();
-                    return;
-                }
-                value = value.toLowerCase();
-                for(var i = 0, len = ss.length; i < len; i++){
-                    var o = ss[i];
-                    if(o[property].substr(0, vlen).toLowerCase() == value){
-                        data.push(o);
-                    }
-                }
-            } else if(value.exec){ // regex?
-                for(var i = 0, len = ss.length; i < len; i++){
-                    var o = ss[i];
-                    if(value.test(o[property])){
-                        data.push(o);
-                    }
-                }
-            } else{
-                return;
-            }
-            this.jsonData = data;
-            this.refresh();
-        }
-    },
-
-/**
- * Filter by a function. The passed function will be called with each
- * object in the current dataset. If the function returns true, the value is kept
- * otherwise it is filtered.
- * @param {Function} fn
- * @param {Object} scope (optional) The scope of the function (defaults to this JsonView)
- */
-    filterBy : function(fn, scope){
-        if(this.jsonData){
-            var data = [];
-            var ss = this.snapshot;
-            for(var i = 0, len = ss.length; i < len; i++){
-                var o = ss[i];
-                if(fn.call(scope || this, o)){
-                    data.push(o);
-                }
-            }
-            this.jsonData = data;
-            this.refresh();
-        }
-    },
-
-/**
- * Clears the current filter.
- */
-    clearFilter : function(){
-        if(this.snapshot && this.jsonData != this.snapshot){
-            this.jsonData = this.snapshot;
-            this.refresh();
-        }
-    },
-
-
-/**
- * Sorts the data for this view and refreshes it.
- * @param {String} property A property on your JSON objects to sort on
- * @param {String} direction (optional) desc or asc (defaults to asc)
- * @param {Function} sortType (optional) A function to call to convert the data to a sortable value.
- */
-    sort : function(property, dir, sortType){
-        this.sortInfo = Array.prototype.slice.call(arguments, 0);
-        if(this.jsonData){
-            var p = property;
-            var dsc = dir && dir.toLowerCase() == "desc";
-            var f = function(o1, o2){
-                var v1 = sortType ? sortType(o1[p]) : o1[p];
-                var v2 = sortType ? sortType(o2[p]) : o2[p];
-                ;
-                if(v1 < v2){
-                    return dsc ? +1 : -1;
-                } else if(v1 > v2){
-                    return dsc ? -1 : +1;
-                } else{
-                    return 0;
-                }
-            };
-            this.jsonData.sort(f);
-            this.refresh();
-            if(this.jsonData != this.snapshot){
-                this.snapshot.sort(f);
-            }
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/KeyMap.jss.html b/www/extras/extjs/docs/output/KeyMap.jss.html deleted file mode 100644 index 685eb70f1..000000000 --- a/www/extras/extjs/docs/output/KeyMap.jss.html +++ /dev/null @@ -1,182 +0,0 @@ -KeyMap.js

KeyMap.js

/**
- * @class Ext.KeyMap
- * Handles mapping keys to actions for an element. One key map can be used for multiple actions.
- * The constructor accepts the same config object as defined by {@link #addBinding}.
- * If you bind a callback function to a KeyMap, anytime the KeyMap handles an expected key
- * combination it will call the function with this signature (if the match is a multi-key
- * combination the callback will still be called only once): (String key, Ext.EventObject e)
- * A KeyMap can also handle a string representation of keys.<br />
- * Usage:
- <pre><code>
- // map one key by key code
- var map = new Ext.KeyMap("my-element", {
-     key: 13, // or Ext.EventObject.ENTER
-     fn: myHandler,
-     scope: myObject
- });
- 
- // map multiple keys to one action by string
- var map = new Ext.KeyMap("my-element", {
-     key: "a\r\n\t",
-     fn: myHandler,
-     scope: myObject
- });
- 
- // map multiple keys to multiple actions by strings and array of codes
- var map = new Ext.KeyMap("my-element", [
-    {
-        key: [10,13],
-        fn: function(){ alert("Return was pressed"); }
-    }, {
-        key: "abc",
-        fn: function(){ alert('a, b or c was pressed'); }
-    }, {
-        key: "\t",
-        ctrl:true,
-        shift:true,
-        fn: function(){ alert('Control + shift + tab was pressed.'); }
-    }
-]);
-</code></pre>
- * <b>Note: A KepMap starts enabled</b>
- * @constructor
- * @param {String/HTMLElement/Ext.Element} el The element to bind to
- * @param {Object} config The config
- * @param {String} eventName (optional) The event to bind to (defaults to "keydown")
- */
-Ext.KeyMap = function(el, config, eventName){
-    this.el  = Ext.get(el);
-    this.eventName = eventName || "keydown";
-    this.bindings = [];
-    if(config instanceof Array){
-	    for(var i = 0, len = config.length; i < len; i++){
-	        this.addBinding(config[i]);
-	    }
-    }else{
-        this.addBinding(config);
-    }
-    this.keyDownDelegate = Ext.EventManager.wrap(this.handleKeyDown, this, true);
-    this.enable();
-};
-
-Ext.KeyMap.prototype = {
-    /**
-     * True to stop the event from bubbling and prevent the default browser action if the
-     * key was handled by the KeyMap (defaults to false)
-     * @type Boolean
-     */
-    stopEvent : false,
-
-    /**
-     * Add a new binding to this KeyMap. The following config object properties are supported:
-     * <pre>
-Property    Type             Description
-----------  ---------------  ----------------------------------------------------------------------
-key         String/Array     A single keycode or an array of keycodes to handle
-shift       Boolean          True to handle key only when shift is pressed (defaults to false)
-ctrl        Boolean          True to handle key only when ctrl is pressed (defaults to false)
-alt         Boolean          True to handle key only when alt is pressed (defaults to false)
-fn          Function         The function to call when KeyMap finds the expected key combination
-scope       Object           The scope of the callback function
-</pre>
-     *
-     * Usage:
-     * <pre><code>
-// Create a KeyMap
-var map = new Ext.KeyMap(document, {
-    key: Ext.EventObject.ENTER,
-    fn: handleKey,
-    scope: this
-});
-
-//Add a new binding to the existing KeyMap later
-map.addBinding({
-    key: 'abc',
-    shift: true,
-    fn: handleKey,
-    scope: this
-});
-</code></pre>
-     * @param {Object} config A single KeyMap config
-     */
-	addBinding : function(config){
-        var keyCode = config.key, 
-            shift = config.shift, 
-            ctrl = config.ctrl, 
-            alt = config.alt,
-            fn = config.fn,
-            scope = config.scope;
-        if(typeof keyCode == "string"){
-            var ks = [];
-            var keyString = keyCode.toUpperCase();
-            for(var j = 0, len = keyString.length; j < len; j++){
-                ks.push(keyString.charCodeAt(j));
-            }
-            keyCode = ks;
-        }
-        var keyArray = keyCode instanceof Array;
-        var handler = function(e){
-            if((!shift || e.shiftKey) && (!ctrl || e.ctrlKey) &&  (!alt || e.altKey)){
-                var k = e.getKey();
-                if(keyArray){
-                    for(var i = 0, len = keyCode.length; i < len; i++){
-                        if(keyCode[i] == k){
-                          if(this.stopEvent){
-                              e.stopEvent();
-                          }
-                          fn.call(scope || window, k, e);
-                          return;
-                        }
-                    }
-                }else{
-                    if(k == keyCode){
-                        if(this.stopEvent){
-                           e.stopEvent();
-                        }
-                        fn.call(scope || window, k, e);
-                    }
-                }
-            }
-        };
-        this.bindings.push(handler);  
-	},
-
-    // private
-    handleKeyDown : function(e){
-	    if(this.enabled){ //just in case
-    	    var b = this.bindings;
-    	    for(var i = 0, len = b.length; i < len; i++){
-    	        b[i].call(this, e);
-    	    }
-	    }
-	},
-	
-	/**
-	 * Returns true if this KepMap is enabled
-	 * @return {Boolean} 
-	 */
-	isEnabled : function(){
-	    return this.enabled;  
-	},
-	
-	/**
-	 * Enable this KeyMap
-	 */
-	enable: function(){
-		if(!this.enabled){
-		    this.el.on(this.eventName, this.keyDownDelegate);
-		    this.enabled = true;
-		}
-	},
-
-	/**
-	 * Disable this KeyMap
-	 */
-	disable: function(){
-		if(this.enabled){
-		    this.el.removeListener(this.eventName, this.keyDownDelegate);
-		    this.enabled = false;
-		}
-	}
-};

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/KeyNav.jss.html b/www/extras/extjs/docs/output/KeyNav.jss.html deleted file mode 100644 index 15de1c5ab..000000000 --- a/www/extras/extjs/docs/output/KeyNav.jss.html +++ /dev/null @@ -1,124 +0,0 @@ -KeyNav.js

KeyNav.js

/**
- * @class Ext.KeyNav
- * Provides a convenient wrapper for normalized keyboard navigation.  KeyNav allows you to bind
- * navigation keys to function calls that will get called when the keys are pressed.
- * <br />Usage:
- <pre><code>
-var nav = new Ext.KeyNav("my-element", {
-    "left" : function(e){
-        this.moveLeft(e.ctrlKey);
-    },
-    "right" : function(e){
-        this.moveRight(e.ctrlKey);
-    },
-    "enter" : function(e){
-        this.save();
-    },
-    scope : this
-});
-</code></pre>
- * @constructor
- * @param {String/HTMLElement/Ext.Element} el The element to bind to
- * @param {Object} config The config
- */
-Ext.KeyNav = function(el, config){
-    this.el = Ext.get(el);
-    Ext.apply(this, config);
-    if(!this.disabled){
-        this.disabled = true;
-        this.enable();
-    }
-};
-
-Ext.KeyNav.prototype = {
-    disabled : false,
-    defaultEventAction: "stopEvent",
-
-    prepareEvent : function(e){
-        var k = e.getKey();
-        var h = this.keyToHandler[k];
-        //if(h && this[h]){
-        //    e.stopPropagation();
-        //}
-        if(Ext.isSafari && h && k >= 37 && k <= 40){
-            e.stopEvent();
-        }
-    },
-
-    relay : function(e){
-        var k = e.getKey();
-        var h = this.keyToHandler[k];
-        if(h && this[h]){
-            if(this.doRelay(e, this[h], h) !== true){
-                e[this.defaultEventAction]();
-            }
-        }
-    },
-
-    doRelay : function(e, h, hname){
-        return h.call(this.scope || this, e);
-    },
-
-    // possible handlers
-    enter : false,
-    left : false,
-    right : false,
-    up : false,
-    down : false,
-    tab : false,
-    esc : false,
-    pageUp : false,
-    pageDown : false,
-    del : false,
-    home : false,
-    end : false,
-
-    // quick lookup hash
-    keyToHandler : {
-        37 : "left",
-        39 : "right",
-        38 : "up",
-        40 : "down",
-        33 : "pageUp",
-        34 : "pageDown",
-        46 : "del",
-        36 : "home",
-        35 : "end",
-        13 : "enter",
-        27 : "esc",
-        9  : "tab"
-    },
-
-	/**
-	 * Enable this KeyNav
-	 */
-	enable: function(){
-		if(this.disabled){
-            // ie won't do special keys on keypress, no one else will repeat keys with keydown
-            // the EventObject will normalize Safari automatically
-            if(Ext.isIE){
-                this.el.on("keydown", this.relay,  this);
-            }else{
-                this.el.on("keydown", this.prepareEvent,  this);
-                this.el.on("keypress", this.relay,  this);
-            }
-		    this.disabled = false;
-		}
-	},
-
-	/**
-	 * Disable this KeyNav
-	 */
-	disable: function(){
-		if(!this.disabled){
-		    if(Ext.isIE){
-                this.el.un("keydown", this.relay);
-            }else{
-                this.el.un("keydown", this.prepareEvent);
-                this.el.un("keypress", this.relay);
-            }
-		    this.disabled = true;
-		}
-	}
-};

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Layer.jss.html b/www/extras/extjs/docs/output/Layer.jss.html deleted file mode 100644 index 8fbc9a993..000000000 --- a/www/extras/extjs/docs/output/Layer.jss.html +++ /dev/null @@ -1,448 +0,0 @@ -Layer.js

Layer.js

/**
- * @class Ext.Layer
- * @extends Ext.Element
- * An extended Element object that supports a shadow and shim, constrain to viewport and
- * automatic maintaining of shadow/shim positions.
- * @cfg {Boolean} shim False to disable the iframe shim in browsers which need one (defaults to true)
- * @cfg {String/Boolean} shadow True to create a shadow element with default class "x-layer-shadow" or
- * you can pass a string with a css class name. False turns off the shadow.
- * @cfg {Object} dh DomHelper object config to create element with (defaults to {tag: "div", cls: "x-layer"}).
- * @cfg {Boolean} constrain False to disable constrain to viewport (defaults to true)
- * @cfg {String} cls CSS class to add to the element
- * @cfg {Number} zindex Starting z-index (defaults to 11000!)
- * @cfg {Number} shadowOffset Number of pixels to offset the shadow (defaults to 3)
- * @constructor
- * @param {Object} config
- * @param {String/HTMLElement} existingEl (optional) Uses an existing dom element. If the element is not found it creates it.
- */
-(function(){ 
-Ext.Layer = function(config, existingEl){
-    config = config || {};
-    var dh = Ext.DomHelper;
-    var cp = config.parentEl, pel = cp ? Ext.getDom(cp) : document.body;
-    if(existingEl){
-        this.dom = Ext.getDom(existingEl);
-    }
-    if(!this.dom){
-        var o = config.dh || {tag: "div", cls: "x-layer"};
-        this.dom = dh.append(pel, o);
-    }
-    if(config.cls){
-        this.addClass(config.cls);
-    }
-    this.constrain = config.constrain !== false;
-    this.visibilityMode = Ext.Element.VISIBILITY;
-    if(config.id){
-        this.id = this.dom.id = config.id;
-    }else{
-        this.id = Ext.id(this.dom);
-    }
-    this.zindex = config.zindex || this.getZIndex();
-    this.position("absolute", this.zindex);
-    if(config.shadow){
-        this.shadowOffset = config.shadowOffset || 4;
-        this.shadow = new Ext.Shadow({
-            offset : this.shadowOffset,
-            mode : config.shadow
-        });
-    }else{
-        this.shadowOffset = 0;
-    }
-    this.useShim = config.shim !== false && Ext.useShims;
-    this.useDisplay = config.useDisplay;
-    this.hide();
-};
-
-var supr = Ext.Element.prototype;
-
-// shims are shared among layer to keep from having 100 iframes
-var shims = [];
-
-Ext.extend(Ext.Layer, Ext.Element, {
-
-    getZIndex : function(){
-        return this.zindex || parseInt(this.getStyle("z-index"), 10) || 11000;
-    },
-
-    getShim : function(){
-        if(!this.useShim){
-            return null;
-        }
-        if(this.shim){
-            return this.shim;
-        }
-        var shim = shims.shift();
-        if(!shim){
-            shim = this.createShim();
-            shim.enableDisplayMode('block');
-            shim.dom.style.display = 'none';
-            shim.dom.style.visibility = 'visible';
-        }
-        var pn = this.dom.parentNode;
-        if(shim.dom.parentNode != pn){
-            pn.insertBefore(shim.dom, this.dom);
-        }
-        shim.setStyle('z-index', this.getZIndex()-2);
-        this.shim = shim;
-        return shim;
-    },
-
-    hideShim : function(){
-        if(this.shim){
-            this.shim.setDisplayed(false);
-            shims.push(this.shim);
-            delete this.shim;
-        }
-    },
-
-    disableShadow : function(){
-        if(this.shadow){
-            this.shadowDisabled = true;
-            this.shadow.hide();
-            this.lastShadowOffset = this.shadowOffset;
-            this.shadowOffset = 0;
-        }
-    },
-
-    enableShadow : function(show){
-        if(this.shadow){
-            this.shadowDisabled = false;
-            this.shadowOffset = this.lastShadowOffset;
-            delete this.lastShadowOffset;
-            if(show){
-                this.sync(true);
-            }
-        }
-    },
-
-    // private
-    // this code can execute repeatedly in milliseconds (i.e. during a drag) so
-    // code size was sacrificed for effeciency (e.g. no getBox/setBox, no XY calls)
-    sync : function(doShow){
-        var sw = this.shadow;
-        if(!this.updating && this.isVisible() && (sw || this.useShim)){
-            var sh = this.getShim();
-
-            var w = this.getWidth(),
-                h = this.getHeight();
-
-            var l = this.getLeft(true),
-                t = this.getTop(true);
-
-            if(sw && !this.shadowDisabled){
-                if(doShow && !sw.isVisible()){
-                    sw.show(this);
-                }else{
-                    sw.realign(l, t, w, h);
-                }
-                if(sh){
-                    if(doShow){
-                       sh.show();
-                    }
-                    // fit the shim behind the shadow, so it is shimmed too
-                    var a = sw.adjusts, s = sh.dom.style;
-                    s.left = (Math.min(l, l+a.l))+"px";
-                    s.top = (Math.min(t, t+a.t))+"px";
-                    s.width = (w+a.w)+"px";
-                    s.height = (h+a.h)+"px";
-                }
-            }else if(sh){
-                if(doShow){
-                   sh.show();
-                }
-                sh.setSize(w, h);
-                sh.setLeftTop(l, t);
-            }
-            
-        }
-    },
-
-    // private
-    destroy : function(){
-        this.hideShim();
-        if(this.shadow){
-            this.shadow.hide();
-        }
-        this.removeAllListeners();
-        var pn = this.dom.parentNode;
-        if(pn){
-            pn.removeChild(this.dom);
-        }
-        Ext.Element.uncache(this.id);
-    },
-
-    remove : function(){
-        this.destroy();
-    },
-
-    // private
-    beginUpdate : function(){
-        this.updating = true;
-    },
-
-    // private
-    endUpdate : function(){
-        this.updating = false;
-        this.sync(true);
-    },
-
-    // private
-    hideUnders : function(negOffset){
-        if(this.shadow){
-            this.shadow.hide();
-        }
-        this.hideShim();
-    },
-
-    // private
-    constrainXY : function(){
-        if(this.constrain){
-            var vw = Ext.lib.Dom.getViewWidth(),
-                vh = Ext.lib.Dom.getViewHeight();
-            var s = Ext.get(document).getScroll();
-
-            var xy = this.getXY();
-            var x = xy[0], y = xy[1];   
-            var w = this.dom.offsetWidth+this.shadowOffset, h = this.dom.offsetHeight+this.shadowOffset;
-            // only move it if it needs it
-            var moved = false;
-            // first validate right/bottom
-            if((x + w) > vw+s.left){
-                x = vw - w - this.shadowOffset;
-                moved = true;
-            }
-            if((y + h) > vh+s.top){
-                y = vh - h - this.shadowOffset;
-                moved = true;
-            }
-            // then make sure top/left isn't negative
-            if(x < s.left){
-                x = s.left;
-                moved = true;
-            }
-            if(y < s.top){
-                y = s.top;
-                moved = true;
-            }
-            if(moved){
-                if(this.avoidY){
-                    var ay = this.avoidY;
-                    if(y <= ay && (y+h) >= ay){
-                        y = ay-h-5;   
-                    }
-                }
-                xy = [x, y];
-                this.storeXY(xy);
-                supr.setXY.call(this, xy);
-                this.sync();
-            }
-        }
-    },
-
-    isVisible : function(){
-        return this.visible;    
-    },
-
-    // private
-    showAction : function(){
-        this.visible = true; // track visibility to prevent getStyle calls
-        if(this.useDisplay === true){
-            this.setDisplayed("");
-        }else if(this.lastXY){
-            supr.setXY.call(this, this.lastXY);
-        }else if(this.lastLT){
-            supr.setLeftTop.call(this, this.lastLT[0], this.lastLT[1]);
-        }
-    },
-
-    // private
-    hideAction : function(){
-        this.visible = false;
-        if(this.useDisplay === true){
-            this.setDisplayed(false);
-        }else{
-            this.setLeftTop(-10000,-10000);
-        }
-    },
-
-    // overridden Element method
-    setVisible : function(v, a, d, c, e){
-        if(v){
-            this.showAction();
-        }
-        if(a && v){
-            var cb = function(){
-                this.sync(true);
-                if(c){
-                    c();
-                }
-            }.createDelegate(this);
-            supr.setVisible.call(this, true, true, d, cb, e);
-        }else{
-            if(!v){
-                this.hideUnders(true);
-            }
-            var cb = c;
-            if(a){
-                cb = function(){
-                    this.hideAction();
-                    if(c){
-                        c();
-                    }
-                }.createDelegate(this);
-            }
-            supr.setVisible.call(this, v, a, d, cb, e);
-            if(v){
-                this.sync(true);
-            }else if(!a){
-                this.hideAction();
-            }
-        }
-    },
-
-    storeXY : function(xy){
-        delete this.lastLT;
-        this.lastXY = xy;
-    },
-
-    storeLeftTop : function(left, top){
-        delete this.lastXY;
-        this.lastLT = [left, top];
-    },
-
-    // private
-    beforeFx : function(){
-        this.beforeAction();
-        return Ext.Layer.superclass.beforeFx.apply(this, arguments);
-    },
-
-    // private
-    afterFx : function(){
-        Ext.Layer.superclass.afterFx.apply(this, arguments);
-        this.sync(this.isVisible());
-    },
-
-    // private
-    beforeAction : function(){
-        if(!this.updating && this.shadow){
-            this.shadow.hide();
-        }
-    },
-
-    // overridden Element method
-    setLeft : function(left){
-        this.storeLeftTop(left, this.getTop(true));
-        supr.setLeft.apply(this, arguments);
-        this.sync();
-    },
-
-    setTop : function(top){
-        this.storeLeftTop(this.getLeft(true), top);
-        supr.setTop.apply(this, arguments);
-        this.sync();
-    },
-
-    setLeftTop : function(left, top){
-        this.storeLeftTop(left, top);
-        supr.setLeftTop.apply(this, arguments);
-        this.sync();
-    },
-
-    setXY : function(xy, a, d, c, e){
-        this.fixDisplay();
-        this.beforeAction();
-        this.storeXY(xy);
-        var cb = this.createCB(c);
-        supr.setXY.call(this, xy, a, d, cb, e);
-        if(!a){
-            cb();
-        }
-    },
-
-    // private
-    createCB : function(c){
-        var el = this;
-        return function(){
-            el.constrainXY();
-            el.sync(true);
-            if(c){
-                c();
-            }
-        };
-    },
-
-    // overridden Element method
-    setX : function(x, a, d, c, e){
-        this.setXY([x, this.getY()], a, d, c, e);
-    },
-
-    // overridden Element method
-    setY : function(y, a, d, c, e){
-        this.setXY([this.getX(), y], a, d, c, e);
-    },
-
-    // overridden Element method
-    setSize : function(w, h, a, d, c, e){
-        this.beforeAction();
-        var cb = this.createCB(c);
-        supr.setSize.call(this, w, h, a, d, cb, e);
-        if(!a){
-            cb();
-        }
-    },
-
-    // overridden Element method
-    setWidth : function(w, a, d, c, e){
-        this.beforeAction();
-        var cb = this.createCB(c);
-        supr.setWidth.call(this, w, a, d, cb, e);
-        if(!a){
-            cb();
-        }
-    },
-
-    // overridden Element method
-    setHeight : function(h, a, d, c, e){
-        this.beforeAction();
-        var cb = this.createCB(c);
-        supr.setHeight.call(this, h, a, d, cb, e);
-        if(!a){
-            cb();
-        }
-    },
-
-    // overridden Element method
-    setBounds : function(x, y, w, h, a, d, c, e){
-        this.beforeAction();
-        var cb = this.createCB(c);
-        if(!a){
-            this.storeXY([x, y]);
-            supr.setXY.call(this, [x, y]);
-            supr.setSize.call(this, w, h, a, d, cb, e);
-            cb();
-        }else{
-            supr.setBounds.call(this, x, y, w, h, a, d, cb, e);
-        }
-        return this;
-    },
-    
-    /**
-     * Set the z-index of this layer and adjusts any shadow and shim z-indexes. The layer z-index is automatically
-     * incremented by two more than the value passed in so that it always shows above any shadow or shim (the shadow
-     * element, if any, will be assigned z-index + 1, and the shim element, if any, will be assigned the unmodified z-index).
-     * @param {Number} zindex The new z-index to set
-     * @return {this} The Layer
-     */
-    setZIndex : function(zindex){
-        this.zindex = zindex;
-        this.setStyle("z-index", zindex + 2);
-        if(this.shadow){
-            this.shadow.setZIndex(zindex + 1);
-        }
-        if(this.shim){
-            this.shim.setStyle("z-index", zindex);
-        }
-    }
-});
-})();

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Layout.jss.html b/www/extras/extjs/docs/output/Layout.jss.html deleted file mode 100644 index 5b1e9d6eb..000000000 --- a/www/extras/extjs/docs/output/Layout.jss.html +++ /dev/null @@ -1,200 +0,0 @@ -Layout.js

Layout.js

/**
- * @class Ext.form.Layout
- * @extends Ext.Component
- * Creates a container for layout and rendering of fields in an {@link Ext.form.Form}.
- * @constructor
- * @param {Object} config Configuration options
- */
-Ext.form.Layout = function(config){
-    Ext.form.Layout.superclass.constructor.call(this, config);
-    this.stack = [];
-};
-
-Ext.extend(Ext.form.Layout, Ext.Component, {
-    /**
-     * @cfg {String/Object} autoCreate
-     * A DomHelper element spec used to autocreate the layout (defaults to {tag: 'div', cls: 'x-form-ct'})
-     */
-// holder
-/***
-     * @cfg {String/Object/Function} style
-     * A style specification string eg "width:100px", or object in the form {width:"100px"}, or
-     * a function which returns such a specification.
-     */
-// holder
-/***
-     * @cfg {String} labelAlign
-     * Valid values are "left," "top" and "right" (defaults to "left")
-     */
-// holder
-/***
-     * @cfg {Number} labelWidth
-     * Fixed width in pixels of all field labels (defaults to undefined)
-     */
-// holder
-/***
-     * @cfg {Boolean} clear
-     * True to add a clearing element at the end of this layout, equivalent to CSS clear: both (defaults to true)
-     */
-    clear : true,
-    /**
-     * @cfg {String} labelSeparator
-     * The separator to use after field labels (defaults to ':')
-     */
-    labelSeparator : ':',
-    /**
-     * @cfg {Boolean} hideLabels
-     * True to suppress the display of field labels in this layout (defaults to false)
-     */
-    hideLabels : false,
-
-    // private
-    defaultAutoCreate : {tag: 'div', cls: 'x-form-ct'},
-
-    // private
-    onRender : function(ct, position){
-        if(this.el){ // from markup
-            this.el = Ext.get(this.el);
-        }else {  // generate
-            var cfg = this.getAutoCreate();
-            this.el = ct.createChild(cfg, position);
-        }
-        if(this.style){
-            this.el.applyStyles(this.style);
-        }
-        if(this.labelAlign){
-            this.el.addClass('x-form-label-'+this.labelAlign);
-        }
-        if(this.hideLabels){
-            this.labelStyle = "display:none";
-            this.elementStyle = "padding-left:0;";
-        }else{
-            if(typeof this.labelWidth == 'number'){
-                this.labelStyle = "width:"+this.labelWidth+"px;";
-                this.elementStyle = "padding-left:"+((this.labelWidth+(typeof this.labelPad == 'number' ? this.labelPad : 5))+'px')+";";
-            }
-            if(this.labelAlign == 'top'){
-                this.labelStyle = "width:auto;";
-                this.elementStyle = "padding-left:0;";
-            }
-        }
-        var stack = this.stack;
-        var slen = stack.length;
-        if(slen > 0){
-            if(!this.fieldTpl){
-                var t = new Ext.Template(
-                    '<div class="x-form-item {5}">',
-                        '<label for="{0}" style="{2}">{1}{4}</label>',
-                        '<div class="x-form-element" id="x-form-el-{0}" style="{3}">',
-                        '</div>',
-                    '</div><div class="x-form-clear-left"></div>'
-                );
-                t.disableFormats = true;
-                t.compile();
-                Ext.form.Layout.prototype.fieldTpl = t;
-            }
-            for(var i = 0; i < slen; i++) {
-                if(stack[i].isFormField){
-                    this.renderField(stack[i]);
-                }else{
-                    this.renderComponent(stack[i]);
-                }
-            }
-        }
-        if(this.clear){
-            this.el.createChild({cls:'x-form-clear'});
-        }
-    },
-
-    // private
-    renderField : function(f){
-       this.fieldTpl.append(this.el, [
-               f.id, f.fieldLabel,
-               f.labelStyle||this.labelStyle||'',
-               this.elementStyle||'',
-               typeof f.labelSeparator == 'undefined' ? this.labelSeparator : f.labelSeparator,
-               f.itemCls||this.itemCls||''
-       ]);
-    },
-
-    // private
-    renderComponent : function(c){
-        c.render(this.el);
-    }
-});
-
-/**
- * @class Ext.form.Column
- * @extends Ext.form.Layout
- * Creates a column container for layout and rendering of fields in an {@link Ext.form.Form}.
- * @constructor
- * @param {Object} config Configuration options
- */
-Ext.form.Column = function(config){
-    Ext.form.Column.superclass.constructor.call(this, config);
-};
-
-Ext.extend(Ext.form.Column, Ext.form.Layout, {
-    /**
-     * @cfg {Number} width
-     * The fixed width of the column in pixels (defaults to auto)
-     */
-// holder
-/***
-     * @cfg {String/Object} autoCreate
-     * A DomHelper element spec used to autocreate the column (defaults to {tag: 'div', cls: 'x-form-ct x-form-column'})
-     */
-
-    // private
-    defaultAutoCreate : {tag: 'div', cls: 'x-form-ct x-form-column'},
-
-    // private
-    onRender : function(ct, position){
-        Ext.form.Column.superclass.onRender.call(this, ct, position);
-        if(this.width){
-            this.el.setWidth(this.width);
-        }
-    }
-});
-
-/**
- * @class Ext.form.FieldSet
- * @extends Ext.form.Layout
- * Creates a fieldset container for layout and rendering of fields in an {@link Ext.form.Form}.
- * @constructor
- * @param {Object} config Configuration options
- */
-Ext.form.FieldSet = function(config){
-    Ext.form.FieldSet.superclass.constructor.call(this, config);
-};
-
-Ext.extend(Ext.form.FieldSet, Ext.form.Layout, {
-    /**
-     * @cfg {String} legend
-     * The text to display as the legend for the FieldSet (defaults to '')
-     */
-// holder
-/***
-     * @cfg {String/Object} autoCreate
-     * A DomHelper element spec used to autocreate the fieldset (defaults to {tag: 'fieldset', cn: {tag:'legend'}})
-     */
-
-    // private
-    defaultAutoCreate : {tag: 'fieldset', cn: {tag:'legend'}},
-
-    // private
-    onRender : function(ct, position){
-        Ext.form.FieldSet.superclass.onRender.call(this, ct, position);
-        if(this.legend){
-            this.setLegend(this.legend);
-        }
-    },
-
-    // private
-    setLegend : function(text){
-        if(this.rendered){
-            this.el.child('legend').update(text);
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/LayoutManager.jss.html b/www/extras/extjs/docs/output/LayoutManager.jss.html deleted file mode 100644 index e1c665dd7..000000000 --- a/www/extras/extjs/docs/output/LayoutManager.jss.html +++ /dev/null @@ -1,136 +0,0 @@ -LayoutManager.js

LayoutManager.js

/**
- * @class Ext.LayoutManager
- * @extends Ext.util.Observable
- * Base class for layout managers.
- */
-Ext.LayoutManager = function(container, config){
-    Ext.LayoutManager.superclass.constructor.call(this);
-    this.el = Ext.get(container);
-    // ie scrollbar fix
-    if(this.el.dom == document.body && Ext.isIE && !config.allowScroll){
-        document.body.scroll = "no";
-    }else if(this.el.dom != document.body && this.el.getStyle('position') == 'static'){
-        this.el.position('relative');
-    }
-    this.id = this.el.id;
-    this.el.addClass("x-layout-container");
-    /** false to disable window resize monitoring @type Boolean */
-    this.monitorWindowResize = true;
-    this.regions = {};
-    this.addEvents({
-        /**
-         * @event layout
-         * Fires when a layout is performed. 
-         * @param {Ext.LayoutManager} this
-         */
-        "layout" : true,
-        /**
-         * @event regionresized
-         * Fires when the user resizes a region. 
-         * @param {Ext.LayoutRegion} region
-         * @param {Number} newSize The new size (width for east/west, height for north/south)
-         */
-        "regionresized" : true,
-        /**
-         * @event regioncollapsed
-         * Fires when a region is collapsed. 
-         * @param {Ext.LayoutRegion} region
-         */
-        "regioncollapsed" : true,
-        /**
-         * @event regionexpanded
-         * Fires when a region is expanded.  
-         * @param {Ext.LayoutRegion} region
-         */
-        "regionexpanded" : true
-    });
-    this.updating = false;
-    Ext.EventManager.onWindowResize(this.onWindowResize, this, true);
-};
-
-Ext.extend(Ext.LayoutManager, Ext.util.Observable, {
-    /**
-     * Returns true if this layout is currently being updated
-     * @return {Boolean}
-     */
-    isUpdating : function(){
-        return this.updating; 
-    },
-    
-    /**
-     * Suspend the LayoutManager from doing auto-layouts while
-     * making multiple add or remove calls
-     */
-    beginUpdate : function(){
-        this.updating = true;    
-    },
-    
-    /**
-     * Restore auto-layouts and optionally disable the manager from performing a layout
-     * @param {Boolean} noLayout true to disable a layout update 
-     */
-    endUpdate : function(noLayout){
-        this.updating = false;
-        if(!noLayout){
-            this.layout();
-        }    
-    },
-    
-    layout: function(){
-        
-    },
-    
-    onRegionResized : function(region, newSize){
-        this.fireEvent("regionresized", region, newSize);
-        this.layout();
-    },
-    
-    onRegionCollapsed : function(region){
-        this.fireEvent("regioncollapsed", region);
-    },
-    
-    onRegionExpanded : function(region){
-        this.fireEvent("regionexpanded", region);
-    },
-        
-    /**
-     * Returns the size of the current view, This method normalizes document.body and element embedded layouts and
-     * performs box-model adjustments.
-     * @return {Object} The size as an object {width: (the width), height: (the height)}
-     */
-    getViewSize : function(){
-        var size;
-        if(this.el.dom != document.body){
-            size = this.el.getSize();
-        }else{
-            size = {width: Ext.lib.Dom.getViewWidth(), height: Ext.lib.Dom.getViewHeight()};
-        }
-        size.width -= this.el.getBorderWidth("lr")-this.el.getPadding("lr");
-        size.height -= this.el.getBorderWidth("tb")-this.el.getPadding("tb");
-        return size;
-    },
-    
-    /**
-     * Returns the element this layout is bound to.
-     * @return {Ext.Element}
-     */
-    getEl : function(){
-        return this.el;
-    },
-    
-    /**
-     * Returns the specified region.
-     * @param {String} target The region key
-     * @return {Ext.LayoutRegion}
-     */
-    getRegion : function(target){
-        return this.regions[target.toLowerCase()];
-    },
-    
-    onWindowResize : function(){
-        if(this.monitorWindowResize){
-            this.layout();
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/LayoutRegion.jss.html b/www/extras/extjs/docs/output/LayoutRegion.jss.html deleted file mode 100644 index 88d9154e6..000000000 --- a/www/extras/extjs/docs/output/LayoutRegion.jss.html +++ /dev/null @@ -1,585 +0,0 @@ -LayoutRegion.js

LayoutRegion.js

/**
- * @class Ext.LayoutRegion
- * @extends Ext.BasicLayoutRegion
- * This class represents a region in a layout manager.
- * @cfg {Boolean} collapsible False to disable collapsing (defaults to true)
- * @cfg {Boolean} collapsed True to set the initial display to collapsed (defaults to false)
- * @cfg {Boolean} floatable False to disable floating (defaults to true)
- * @cfg {Object} margins Margins for the element (defaults to {top: 0, left: 0, right:0, bottom: 0})
- * @cfg {Object} cmargins Margins for the element when collapsed (defaults to: north/south {top: 2, left: 0, right:0, bottom: 2} or east/west {top: 0, left: 2, right:2, bottom: 0})
- * @cfg {String} tabPosition "top" or "bottom" (defaults to "bottom")
- * @cfg {String} collapsedTitle Optional string message to display in the collapsed block of a north or south region
- * @cfg {Boolean} alwaysShowTabs True to always display tabs even when only 1 panel (defaults to false)
- * @cfg {Boolean} autoScroll True to enable overflow scrolling (defaults to false)
- * @cfg {Boolean} titlebar True to display a title bar (defaults to true)
- * @cfg {String} title The title for the region (overrides panel titles)
- * @cfg {Boolean} animate True to animate expand/collapse (defaults to false)
- * @cfg {Boolean} autoHide False to disable autoHide when the mouse leaves the "floated" region (defaults to true)
- * @cfg {Boolean} preservePanels True to preserve removed panels so they can be readded later (defaults to false)
- * @cfg {Boolean} closeOnTab True to place the close icon on the tabs instead of the region titlebar (defaults to false)
- * @cfg {Boolean} hideTabs True to hide the tab strip (defaults to false)
- * @cfg {Boolean} resizeTabs True to enable automatic tab resizing. This will resize the tabs so they are all the same size and fit within
- * the space available, similar to FireFox 1.5 tabs (defaults to false)
- * @cfg {Number} minTabWidth The minimum tab width (defaults to 40)
- * @cfg {Number} preferredTabWidth The preferred tab width (defaults to 150)
- * @cfg {Boolean} showPin True to show a pin button
-* @cfg {Boolean} hidden True to start the region hidden
-* @cfg {Boolean} hideWhenEmpty True to hide the region when it has no panels
-* @cfg {Boolean} disableTabTips True to disable tab tooltips
- */
-Ext.LayoutRegion = function(mgr, config, pos){
-    Ext.LayoutRegion.superclass.constructor.call(this, mgr, config, pos, true);
-    var dh = Ext.DomHelper;
-    /** This regions container element @type Ext.Element */
-    this.el = dh.append(mgr.el.dom, {tag: "div", cls: "x-layout-panel x-layout-panel-" + this.position}, true);
-    /** This regions title element @type Ext.Element */
-
-    if(config.titlebar !== false){
-        this.titleEl = dh.append(this.el.dom, {tag: "div", unselectable: "on", cls: "x-unselectable x-layout-panel-hd x-layout-title-"+this.position, children:[
-            {tag: "span", cls: "x-unselectable x-layout-panel-hd-text", unselectable: "on", html: "&#160;"},
-            {tag: "div", cls: "x-unselectable x-layout-panel-hd-tools", unselectable: "on"}
-        ]}, true);
-        this.titleEl.enableDisplayMode();
-        /** This regions title text element @type HTMLElement */
-        this.titleTextEl = this.titleEl.dom.firstChild;
-        this.tools = Ext.get(this.titleEl.dom.childNodes[1], true);
-        this.closeBtn = this.createTool(this.tools.dom, "x-layout-close");
-        this.closeBtn.enableDisplayMode();
-        this.closeBtn.on("click", this.closeClicked, this);
-        this.closeBtn.hide();
-    }
-    
-    this.createBody(config);
-    this.visible = true;
-    this.collapsed = false;
-
-    if(config.hideWhenEmpty){
-        this.hide();
-        this.on("paneladded", this.validateVisibility, this);
-        this.on("panelremoved", this.validateVisibility, this);
-    }
-    this.applyConfig(config);
-};
-
-Ext.extend(Ext.LayoutRegion, Ext.BasicLayoutRegion, {
-
-    createBody : function(){
-        /** This regions body element @type Ext.Element */
-        this.bodyEl = this.el.createChild({tag: "div", cls: "x-layout-panel-body"});
-    },
-
-    applyConfig : function(c){
-        if(c.collapsible && this.position != "center" && !this.collapsedEl){
-            var dh = Ext.DomHelper;
-            if(c.titlebar !== false){
-                this.collapseBtn = this.createTool(this.tools.dom, "x-layout-collapse-"+this.position);
-                this.collapseBtn.on("click", this.collapse, this);
-                this.collapseBtn.enableDisplayMode();
-
-                if(c.showPin === true || this.showPin){
-                    this.stickBtn = this.createTool(this.tools.dom, "x-layout-stick");
-                    this.stickBtn.enableDisplayMode();
-                    this.stickBtn.on("click", this.expand, this);
-                    this.stickBtn.hide();
-                }
-            }
-            /** This region's collapsed element @type Ext.Element */
-            this.collapsedEl = dh.append(this.mgr.el.dom, {cls: "x-layout-collapsed x-layout-collapsed-"+this.position, children:[
-                {cls: "x-layout-collapsed-tools", children:[{cls: "x-layout-ctools-inner"}]}
-            ]}, true);
-            if(c.floatable !== false){
-               this.collapsedEl.addClassOnOver("x-layout-collapsed-over");
-               this.collapsedEl.on("click", this.collapseClick, this);
-            }
-
-            if(c.collapsedTitle && (this.position == "north" || this.position== "south")) {
-                this.collapsedTitleTextEl = dh.append(this.collapsedEl.dom, {tag: "div", cls: "x-unselectable x-layout-panel-hd-text",
-                   id: "message", unselectable: "on", style:{"float":"left"}});
-               this.collapsedTitleTextEl.innerHTML = c.collapsedTitle;
-             }
-            this.expandBtn = this.createTool(this.collapsedEl.dom.firstChild.firstChild, "x-layout-expand-"+this.position);
-            this.expandBtn.on("click", this.expand, this);
-        }
-        if(this.collapseBtn){
-            this.collapseBtn.setVisible(c.collapsible == true);
-        }
-        this.cmargins = c.cmargins || this.cmargins ||
-                         (this.position == "west" || this.position == "east" ?
-                             {top: 0, left: 2, right:2, bottom: 0} :
-                             {top: 2, left: 0, right:0, bottom: 2});
-        this.margins = c.margins || this.margins || {top: 0, left: 0, right:0, bottom: 0};
-        this.bottomTabs = c.tabPosition != "top";
-        this.autoScroll = c.autoScroll || false;
-        if(this.autoScroll){
-            this.bodyEl.setStyle("overflow", "auto");
-        }else{
-            this.bodyEl.setStyle("overflow", "hidden");
-        }
-        if(c.titlebar !== false){
-            if((!c.titlebar && !c.title) || c.titlebar === false){
-                this.titleEl.hide();
-            }else{
-                this.titleEl.show();
-                if(c.title){
-                    this.titleTextEl.innerHTML = c.title;
-                }
-            }
-        }
-        this.duration = c.duration || .30;
-        this.slideDuration = c.slideDuration || .45;
-        this.config = c;
-        if(c.collapsed){
-            this.collapse(true);
-        }
-        if(c.hidden){
-            this.hide();
-        }
-    },
-    /**
-     * Returns true if this region is currently visible.
-     * @return {Boolean}
-     */
-    isVisible : function(){
-        return this.visible;
-    },
-
-    /**
-     * Updates the collapsed text for north/south regions (used with collapsedTitle config option)
-     */
-    setCollapsedTitle : function(title){
-        title = title || "&#160;";
-        if(this.collapsedTitleTextEl){
-            this.collapsedTitleTextEl.innerHTML = title;
-        }
-    },
-
-    getBox : function(){
-        var b;
-        if(!this.collapsed){
-            b = this.el.getBox(false, true);
-        }else{
-            b = this.collapsedEl.getBox(false, true);
-        }
-        return b;
-    },
-
-    getMargins : function(){
-        return this.collapsed ? this.cmargins : this.margins;
-    },
-
-    highlight : function(){
-        this.el.addClass("x-layout-panel-dragover");
-    },
-
-    unhighlight : function(){
-        this.el.removeClass("x-layout-panel-dragover");
-    },
-
-    updateBox : function(box){
-        this.box = box;
-        if(!this.collapsed){
-            this.el.dom.style.left = box.x + "px";
-            this.el.dom.style.top = box.y + "px";
-            this.updateBody(box.width, box.height);
-        }else{
-            this.collapsedEl.dom.style.left = box.x + "px";
-            this.collapsedEl.dom.style.top = box.y + "px";
-            this.collapsedEl.setSize(box.width, box.height);
-        }
-        if(this.tabs){
-            this.tabs.autoSizeTabs();
-        }
-    },
-
-    updateBody : function(w, h){
-        if(w !== null){
-            this.el.setWidth(w);
-            w -= this.el.getBorderWidth("rl");
-            if(this.config.adjustments){
-                w += this.config.adjustments[0];
-            }
-        }
-        if(h !== null){
-            this.el.setHeight(h);
-            h = this.titleEl && this.titleEl.isDisplayed() ? h - (this.titleEl.getHeight()||0) : h;
-            h -= this.el.getBorderWidth("tb");
-            if(this.config.adjustments){
-                h += this.config.adjustments[1];
-            }
-            this.bodyEl.setHeight(h);
-            if(this.tabs){
-                h = this.tabs.syncHeight(h);
-            }
-        }
-        if(this.panelSize){
-            w = w !== null ? w : this.panelSize.width;
-            h = h !== null ? h : this.panelSize.height;
-        }
-        if(this.activePanel){
-            var el = this.activePanel.getEl();
-            w = w !== null ? w : el.getWidth();
-            h = h !== null ? h : el.getHeight();
-            this.panelSize = {width: w, height: h};
-            this.activePanel.setSize(w, h);
-        }
-        if(Ext.isIE && this.tabs){
-            this.tabs.el.repaint();
-        }
-    },
-
-    /**
-     * Returns the container element for this region.
-     * @return {Ext.Element}
-     */
-    getEl : function(){
-        return this.el;
-    },
-
-    /**
-     * Hides this region.
-     */
-    hide : function(){
-        if(!this.collapsed){
-            this.el.dom.style.left = "-2000px";
-            this.el.hide();
-        }else{
-            this.collapsedEl.dom.style.left = "-2000px";
-            this.collapsedEl.hide();
-        }
-        this.visible = false;
-        this.fireEvent("visibilitychange", this, false);
-    },
-
-    /**
-     * Shows this region if it was previously hidden.
-     */
-    show : function(){
-        if(!this.collapsed){
-            this.el.show();
-        }else{
-            this.collapsedEl.show();
-        }
-        this.visible = true;
-        this.fireEvent("visibilitychange", this, true);
-    },
-
-    closeClicked : function(){
-        if(this.activePanel){
-            this.remove(this.activePanel);
-        }
-    },
-
-    collapseClick : function(e){
-        if(this.isSlid){
-           e.stopPropagation();
-           this.slideIn();
-        }else{
-           e.stopPropagation();
-           this.slideOut();
-        }
-    },
-
-    /**
-     * Collapses this region.
-     * @param {Boolean} skipAnim (optional) true to collapse the element without animation (if animate is true)
-     */
-    collapse : function(skipAnim){
-        if(this.collapsed) return;
-        this.collapsed = true;
-        if(this.split){
-            this.split.el.hide();
-        }
-        if(this.config.animate && skipAnim !== true){
-            this.fireEvent("invalidated", this);
-            this.animateCollapse();
-        }else{
-            this.el.setLocation(-20000,-20000);
-            this.el.hide();
-            this.collapsedEl.show();
-            this.fireEvent("collapsed", this);
-            this.fireEvent("invalidated", this);
-        }
-    },
-
-    animateCollapse : function(){
-        // overridden
-    },
-
-    /**
-     * Expand this region if it was previously collapsed.
-     * @param {Ext.EventObject} e The event that triggered the expand (or null if calling manually)
-     * @param {Boolean} skipAnim (optional) true to expand the element without animation (if animate is true)
-     */
-    expand : function(e, skipAnim){
-        if(e) e.stopPropagation();
-        if(!this.collapsed || this.el.hasActiveFx()) return;
-        if(this.isSlid){
-            this.afterSlideIn();
-            skipAnim = true;
-        }
-        this.collapsed = false;
-        if(this.config.animate && skipAnim !== true){
-            this.animateExpand();
-        }else{
-            this.el.show();
-            if(this.split){
-                this.split.el.show();
-            }
-            this.collapsedEl.setLocation(-2000,-2000);
-            this.collapsedEl.hide();
-            this.fireEvent("invalidated", this);
-            this.fireEvent("expanded", this);
-        }
-    },
-
-    animateExpand : function(){
-        // overridden
-    },
-
-    initTabs : function(){
-        this.bodyEl.setStyle("overflow", "hidden");
-        var ts = new Ext.TabPanel(this.bodyEl.dom, {
-            tabPosition: this.bottomTabs ? 'bottom' : 'top',
-            disableTooltips: this.config.disableTabTips
-        });
-        if(this.config.hideTabs){
-            ts.stripWrap.setDisplayed(false);
-        }
-        this.tabs = ts;
-        ts.resizeTabs = this.config.resizeTabs === true;
-        ts.minTabWidth = this.config.minTabWidth || 40;
-        ts.maxTabWidth = this.config.maxTabWidth || 250;
-        ts.preferredTabWidth = this.config.preferredTabWidth || 150;
-        ts.monitorResize = false;
-        ts.bodyEl.setStyle("overflow", this.config.autoScroll ? "auto" : "hidden");
-        ts.bodyEl.addClass('x-layout-tabs-body');
-        this.panels.each(this.initPanelAsTab, this);
-    },
-
-    initPanelAsTab : function(panel){
-        var ti = this.tabs.addTab(panel.getEl().id, panel.getTitle(), null,
-                    this.config.closeOnTab && panel.isClosable());
-        if(panel.tabTip !== undefined){
-            ti.setTooltip(panel.tabTip);
-        }
-        ti.on("activate", function(){
-              this.setActivePanel(panel);
-        }, this);
-        if(this.config.closeOnTab){
-            ti.on("beforeclose", function(t, e){
-                e.cancel = true;
-                this.remove(panel);
-            }, this);
-        }
-        return ti;
-    },
-
-    updatePanelTitle : function(panel, title){
-        if(this.activePanel == panel){
-            this.updateTitle(title);
-        }
-        if(this.tabs){
-            var ti = this.tabs.getTab(panel.getEl().id);
-            ti.setText(title);
-            if(panel.tabTip !== undefined){
-                ti.setTooltip(panel.tabTip);
-            }
-        }
-    },
-
-    updateTitle : function(title){
-        if(this.titleTextEl && !this.config.title){
-            this.titleTextEl.innerHTML = (typeof title != "undefined" && title.length > 0 ? title : "&#160;");
-        }
-    },
-
-    setActivePanel : function(panel){
-        panel = this.getPanel(panel);
-        if(this.activePanel && this.activePanel != panel){
-            this.activePanel.setActiveState(false);
-        }
-        this.activePanel = panel;
-        panel.setActiveState(true);
-        if(this.panelSize){
-            panel.setSize(this.panelSize.width, this.panelSize.height);
-        }
-        if(this.closeBtn){
-            this.closeBtn.setVisible(!this.config.closeOnTab && !this.isSlid && panel.isClosable());
-        }
-        this.updateTitle(panel.getTitle());
-        if(this.tabs){
-            this.fireEvent("invalidated", this);
-        }
-        this.fireEvent("panelactivated", this, panel);
-    },
-
-    /**
-     * Show the specified panel.
-     * @param {Number/String/ContentPanel} panelId The panels index, id or the panel itself
-     * @return {Ext.ContentPanel} The shown panel or null
-     */
-    showPanel : function(panel){
-        if(panel = this.getPanel(panel)){
-            if(this.tabs){
-                var tab = this.tabs.getTab(panel.getEl().id);
-                if(tab.isHidden()){
-                    this.tabs.unhideTab(tab.id);
-                }
-                tab.activate();
-            }else{
-                this.setActivePanel(panel);
-            }
-        }
-        return panel;
-    },
-
-    /**
-     * Get the active panel for this region.
-     * @return {Ext.ContentPanel} The active panel or null
-     */
-    getActivePanel : function(){
-        return this.activePanel;
-    },
-
-    validateVisibility : function(){
-        if(this.panels.getCount() < 1){
-            this.updateTitle("&#160;");
-            this.closeBtn.hide();
-            this.hide();
-        }else{
-            if(!this.isVisible()){
-                this.show();
-            }
-        }
-    },
-
-    /**
-     * Add the passed ContentPanel(s)
-     * @param {ContentPanel...} panel The ContentPanel(s) to add (you can pass more than one)
-     * @return {Ext.ContentPanel} The panel added (if only one was added)
-     */
-    add : function(panel){
-        if(arguments.length > 1){
-            for(var i = 0, len = arguments.length; i < len; i++) {
-            	this.add(arguments[i]);
-            }
-            return null;
-        }
-        if(this.hasPanel(panel)){
-            this.showPanel(panel);
-            return panel;
-        }
-        panel.setRegion(this);
-        this.panels.add(panel);
-        if(this.panels.getCount() == 1 && !this.config.alwaysShowTabs){
-            this.bodyEl.dom.appendChild(panel.getEl().dom);
-            if(panel.background !== true){
-                this.setActivePanel(panel);
-            }
-            this.fireEvent("paneladded", this, panel);
-            return panel;
-        }
-        if(!this.tabs){
-            this.initTabs();
-        }else{
-            this.initPanelAsTab(panel);
-        }
-        if(panel.background !== true){
-            this.tabs.activate(panel.getEl().id);
-        }
-        this.fireEvent("paneladded", this, panel);
-        return panel;
-    },
-
-    /**
-     * Hides the tab for the specified panel.
-     * @param {Number/String/ContentPanel} panel The panels index, id or the panel itself
-     */
-    hidePanel : function(panel){
-        if(this.tabs && (panel = this.getPanel(panel))){
-            this.tabs.hideTab(panel.getEl().id);
-        }
-    },
-
-    /**
-     * Unhides the tab for a previously hidden panel.
-     * @param {Number/String/ContentPanel} panel The panels index, id or the panel itself
-     */
-    unhidePanel : function(panel){
-        if(this.tabs && (panel = this.getPanel(panel))){
-            this.tabs.unhideTab(panel.getEl().id);
-        }
-    },
-
-    clearPanels : function(){
-        while(this.panels.getCount() > 0){
-             this.remove(this.panels.first());
-        }
-    },
-
-    /**
-     * Removes the specified panel. If preservePanel is not true (either here or in the config), the panel is destroyed.
-     * @param {Number/String/ContentPanel} panel The panels index, id or the panel itself
-     * @param {Boolean} preservePanel Overrides the config preservePanel option
-     * @return {Ext.ContentPanel} The panel that was removed
-     */
-    remove : function(panel, preservePanel){
-        panel = this.getPanel(panel);
-        if(!panel){
-            return null;
-        }
-        var e = {};
-        this.fireEvent("beforeremove", this, panel, e);
-        if(e.cancel === true){
-            return null;
-        }
-        preservePanel = (typeof preservePanel != "undefined" ? preservePanel : (this.config.preservePanels === true || panel.preserve === true));
-        var panelId = panel.getId();
-        this.panels.removeKey(panelId);
-        if(preservePanel){
-            document.body.appendChild(panel.getEl().dom);
-        }
-        if(this.tabs){
-            this.tabs.removeTab(panel.getEl().id);
-        }else if (!preservePanel){
-            this.bodyEl.dom.removeChild(panel.getEl().dom);
-        }
-        if(this.panels.getCount() == 1 && this.tabs && !this.config.alwaysShowTabs){
-            var p = this.panels.first();
-            var tempEl = document.createElement("div"); // temp holder to keep IE from deleting the node
-            tempEl.appendChild(p.getEl().dom);
-            this.bodyEl.update("");
-            this.bodyEl.dom.appendChild(p.getEl().dom);
-            tempEl = null;
-            this.updateTitle(p.getTitle());
-            this.tabs = null;
-            this.bodyEl.setStyle("overflow", this.config.autoScroll ? "auto" : "hidden");
-            this.setActivePanel(p);
-        }
-        panel.setRegion(null);
-        if(this.activePanel == panel){
-            this.activePanel = null;
-        }
-        if(this.config.autoDestroy !== false && preservePanel !== true){
-            try{panel.destroy();}catch(e){}
-        }
-        this.fireEvent("panelremoved", this, panel);
-        return panel;
-    },
-
-    /**
-     * Returns the TabPanel component used by this region
-     * @return {Ext.TabPanel}
-     */
-    getTabs : function(){
-        return this.tabs;
-    },
-
-    createTool : function(parentEl, className){
-        var btn = Ext.DomHelper.append(parentEl, {tag: "div", cls: "x-layout-tools-button",
-            children: [{tag: "div", cls: "x-layout-tools-button-inner " + className, html: "&#160;"}]}, true);
-        btn.addClassOnOver("x-layout-tools-button-over");
-        return btn;
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/LayoutStateManager.jss.html b/www/extras/extjs/docs/output/LayoutStateManager.jss.html deleted file mode 100644 index b7a78982c..000000000 --- a/www/extras/extjs/docs/output/LayoutStateManager.jss.html +++ /dev/null @@ -1,69 +0,0 @@ -LayoutStateManager.js

LayoutStateManager.js

/*
- * Private internal class for reading and applying state
- */
-Ext.LayoutStateManager = function(layout){
-     // default empty state
-     this.state = {
-        north: {},
-        south: {},
-        east: {},
-        west: {}       
-    };
-};
-
-Ext.LayoutStateManager.prototype = {
-    init : function(layout, provider){
-        this.provider = provider;
-        var state = provider.get(layout.id+"-layout-state");
-        if(state){
-            var wasUpdating = layout.isUpdating();
-            if(!wasUpdating){
-                layout.beginUpdate();
-            }
-            for(var key in state){
-                if(typeof state[key] != "function"){
-                    var rstate = state[key];
-                    var r = layout.getRegion(key);
-                    if(r && rstate){
-                        if(rstate.size){
-                            r.resizeTo(rstate.size);
-                        }
-                        if(rstate.collapsed == true){
-                            r.collapse(true);
-                        }else{
-                            r.expand(null, true);
-                        }
-                    }
-                }
-            }
-            if(!wasUpdating){
-                layout.endUpdate();
-            }
-            this.state = state; 
-        }
-        this.layout = layout;
-        layout.on("regionresized", this.onRegionResized, this);
-        layout.on("regioncollapsed", this.onRegionCollapsed, this);
-        layout.on("regionexpanded", this.onRegionExpanded, this);
-    },
-    
-    storeState : function(){
-        this.provider.set(this.layout.id+"-layout-state", this.state);
-    },
-    
-    onRegionResized : function(region, newSize){
-        this.state[region.getPosition()].size = newSize;
-        this.storeState();
-    },
-    
-    onRegionCollapsed : function(region){
-        this.state[region.getPosition()].collapsed = true;
-        this.storeState();
-    },
-    
-    onRegionExpanded : function(region){
-        this.state[region.getPosition()].collapsed = false;
-        this.storeState();
-    }
-};

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/LoadMask.jss.html b/www/extras/extjs/docs/output/LoadMask.jss.html deleted file mode 100644 index 6a6c2beef..000000000 --- a/www/extras/extjs/docs/output/LoadMask.jss.html +++ /dev/null @@ -1,93 +0,0 @@ -LoadMask.js

LoadMask.js

/**
- * @class Ext.LoadMask
- * A simple utility class for generically masking elements while loading data.  If the element being masked has
- * an underlying {@link Ext.data.Store}, the masking will be automatically synchronized with the store's loading
- * process and the mask element will be cached for reuse.  For all other elements, this mask will replace the
- * element's UpdateManager load indicator and will be destroyed after the initial load.
- * @constructor
- * Create a new LoadMask
- * @param {Object} config The config object
- */
-Ext.LoadMask = function(el, config){
-    this.el = Ext.get(el);
-    Ext.apply(this, config);
-    if(this.store){
-        this.store.on('beforeload', this.onBeforeLoad, this);
-        this.store.on('load', this.onLoad, this);
-        this.store.on('loadexception', this.onLoad, this);
-        this.removeMask = false;
-    }else{
-        var um = this.el.getUpdateManager();
-        um.showLoadIndicator = false; // disable the default indicator
-        um.on('beforeupdate', this.onBeforeLoad, this);
-        um.on('update', this.onLoad, this);
-        um.on('failure', this.onLoad, this);
-        this.removeMask = true;
-    }
-};
-
-Ext.LoadMask.prototype = {
-    /**
-     * @cfg {Boolean} removeMask
-     * True to create a single-use mask that is automatically destroyed after loading (useful for page loads),
-     * False to persist the mask element reference for multiple uses (e.g., for paged data widgets).  Defaults to false.
-     */
-// holder
-/***
-     * @cfg {String} msg
-     * The text to display in a centered loading message box (defaults to 'Loading...')
-     */
-    msg : 'Loading...',
-    /**
-     * @cfg {String} msgCls
-     * The CSS class to apply to the loading message element (defaults to "x-mask-loading")
-     */
-    msgCls : 'x-mask-loading',
-
-    /**
-     * Read-only. True if the mask is currently disabled so that it will not be displayed (defaults to false)
-     * @type Boolean
-     */
-    disabled: false,
-
-    /**
-     * Disables the mask to prevent it from being displayed
-     */
-    disable : function(){
-       this.disabled = true;
-    },
-
-    /**
-     * Enables the mask so that it can be displayed
-     */
-    enable : function(){
-        this.disabled = false;
-    },
-
-    // private
-    onLoad : function(){
-        this.el.unmask(this.removeMask);
-    },
-
-    // private
-    onBeforeLoad : function(){
-        if(!this.disabled){
-            this.el.mask(this.msg, this.msgCls);
-        }
-    },
-
-    // private
-    destroy : function(){
-        if(this.store){
-            this.store.un('beforeload', this.onBeforeLoad, this);
-            this.store.un('load', this.onLoad, this);
-            this.store.un('loadexception', this.onLoad, this);
-        }else{
-            var um = this.el.getUpdateManager();
-            um.un('beforeupdate', this.onBeforeLoad, this);
-            um.un('update', this.onLoad, this);
-            um.un('failure', this.onLoad, this);
-        }
-    }
-};

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/MemoryProxy.jss.html b/www/extras/extjs/docs/output/MemoryProxy.jss.html deleted file mode 100644 index 977456327..000000000 --- a/www/extras/extjs/docs/output/MemoryProxy.jss.html +++ /dev/null @@ -1,49 +0,0 @@ -MemoryProxy.js

MemoryProxy.js

/**
- * @class Ext.data.MemoryProxy
- * An implementation of Ext.data.DataProxy that simply passes the data specified in its constructor
- * to the Reader when its load method is called.
- * @constructor
- * @param {Object} data The data object which the Reader uses to construct a block of Ext.data.Records.
- */
-Ext.data.MemoryProxy = function(data){
-    Ext.data.MemoryProxy.superclass.constructor.call(this);
-    this.data = data;
-};
-
-Ext.extend(Ext.data.MemoryProxy, Ext.data.DataProxy, {
-    /**
-     * Load data from the requested source (in this case an in-memory
-     * data object passed to the constructor), read the data object into
-     * a block of Ext.data.Records using the passed Ext.data.DataReader implementation, and
-     * process that block using the passed callback.
-     * @param {Object} params This parameter is not used by the MemoryProxy class.
-     * @param {Ext.data.DataReader) reader The Reader object which converts the data
-     * object into a block of Ext.data.Records.
-     * @param {Function} callback The function into which to pass the block of Ext.data.records.
-     * The function must be passed <ul>
-     * <li>The Record block object</li>
-     * <li>The "arg" argument from the load function</li>
-     * <li>A boolean success indicator</li>
-     * </ul>
-     * @param {Object} scope The scope in which to call the callback
-     * @param {Object} arg An optional argument which is passed to the callback as its second parameter.
-     */
-    load : function(params, reader, callback, scope, arg){
-        params = params || {};
-        var result;
-        try {
-            result = reader.readRecords(this.data);
-        }catch(e){
-            this.fireEvent("loadexception", this, arg, null, e);
-            callback.call(scope, null, arg, false);
-            return;
-        }
-        callback.call(scope, result, arg, true);
-    },
-    
-    // private
-    update : function(params, records){
-        
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Menu.jss.html b/www/extras/extjs/docs/output/Menu.jss.html deleted file mode 100644 index daa16b9ec..000000000 --- a/www/extras/extjs/docs/output/Menu.jss.html +++ /dev/null @@ -1,501 +0,0 @@ -Menu.js

Menu.js

/**
- * @class Ext.menu.Menu
- * @extends Ext.util.Observable
- * A menu object.  This is the container to which you add all other menu items.  Menu can also serve a as a base class
- * when you want a specialzed menu based off of another component (like {@link Ext.menu.DateMenu} for example).
- * @constructor
- * Creates a new Menu
- * @param {Object} config Configuration options
- */
-Ext.menu.Menu = function(config){
-    Ext.apply(this, config);
-    this.id = this.id || Ext.id();
-    this.addEvents({
-        /**
-         * @event beforeshow
-         * Fires before this menu is displayed
-         * @param {Ext.menu.Menu} this
-         */
-        beforeshow : true,
-        /**
-         * @event beforehide
-         * Fires before this menu is hidden
-         * @param {Ext.menu.Menu} this
-         */
-        beforehide : true,
-        /**
-         * @event show
-         * Fires after this menu is displayed
-         * @param {Ext.menu.Menu} this
-         */
-        show : true,
-        /**
-         * @event hide
-         * Fires after this menu is hidden
-         * @param {Ext.menu.Menu} this
-         */
-        hide : true,
-        /**
-         * @event click
-         * Fires when this menu is clicked (or when the enter key is pressed while it is active)
-         * @param {Ext.menu.Menu} this
-         * @param {String} menuItemId The id of the menu item that was clicked
-         * @param {Ext.EventObject} e
-         */
-        click : true,
-        /**
-         * @event mouseover
-         * Fires when the mouse is hovering over this menu
-         * @param {Ext.menu.Menu} this
-         * @param {Ext.EventObject} e
-         * @param {String} menuItemId The id of the menu item that the mouse is over
-         */
-        mouseover : true,
-        /**
-         * @event mouseout
-         * Fires when the mouse exits this menu
-         * @param {Ext.menu.Menu} this
-         * @param {Ext.EventObject} e
-         * @param {String} menuItemId The id of the menu item that the mouse has exited
-         */
-        mouseout : true,
-        /**
-         * @event itemclick
-         * Fires when a menu item contained in this menu is clicked
-         * @param {Ext.menu.BaseItem} baseItem The BaseItem that was clicked
-         * @param {Ext.EventObject} e
-         */
-        itemclick: true
-    });
-    Ext.menu.MenuMgr.register(this);
-    var mis = this.items;
-    this.items = new Ext.util.MixedCollection();
-    if(mis){
-        this.add.apply(this, mis);
-    }
-};
-
-Ext.extend(Ext.menu.Menu, Ext.util.Observable, {
-    /**
-     * @cfg {Number} minWidth The minimum width of the menu in pixels (defaults to 120)
-     */
-    minWidth : 120,
-    /**
-     * @cfg {Boolean/String} shadow True or "sides" for the default effect, "frame" for 4-way shadow, and "drop"
-     * for bottom-right shadow (defaults to "sides")
-     */
-    shadow : "sides",
-    /**
-     * @cfg {String} subMenuAlign The {@link Ext.Element#alignTo) anchor position value to use for submenus of
-     * this menu (defaults to "tl-tr?")
-     */
-    subMenuAlign : "tl-tr?",
-    /**
-     * @cfg {String} defaultAlign The default {@link Ext.Element#alignTo) anchor position value for this menu
-     * relative to its element of origin (defaults to "tl-bl?")
-     */
-    defaultAlign : "tl-bl?",
-    /**
-     * @cfg {Boolean} allowOtherMenus True to allow multiple menus to be displayed at the same time (defaults to false)
-     */
-    allowOtherMenus : false,
-
-    // private
-    render : function(){
-        if(this.el){
-            return;
-        }
-        var el = this.el = new Ext.Layer({
-            cls: "x-menu",
-            shadow:this.shadow,
-            constrain: false,
-            parentEl: this.parentEl || document.body,
-            zindex:15000
-        });
-
-        this.keyNav = new Ext.menu.MenuNav(this);
-
-        if(this.plain){
-            el.addClass("x-menu-plain");
-        }
-        if(this.cls){
-            el.addClass(this.cls);
-        }
-        // generic focus element
-        this.focusEl = el.createChild({
-            tag: "a", cls: "x-menu-focus", href: "#", onclick: "return false;", tabIndex:"-1"
-        });
-        var ul = el.createChild({tag: "ul", cls: "x-menu-list"});
-        ul.on("click", this.onClick, this);
-        ul.on("mouseover", this.onMouseOver, this);
-        ul.on("mouseout", this.onMouseOut, this);
-        this.items.each(function(item){
-            var li = document.createElement("li");
-            li.className = "x-menu-list-item";
-            ul.dom.appendChild(li);
-            item.render(li, this);
-        }, this);
-        this.ul = ul;
-        this.autoWidth();
-    },
-
-    // private
-    autoWidth : function(){
-        var el = this.el, ul = this.ul;
-        if(!el){
-            return;
-        }
-        var w = this.width;
-        if(w){
-            el.setWidth(w);
-        }else if(Ext.isIE){
-            el.setWidth(this.minWidth);
-            var t = el.dom.offsetWidth; // force recalc
-            el.setWidth(ul.getWidth()+el.getFrameWidth("lr"));
-        }
-    },
-
-    // private
-    delayAutoWidth : function(){
-        if(this.rendered){
-            if(!this.awTask){
-                this.awTask = new Ext.util.DelayedTask(this.autoWidth, this);
-            }
-            this.awTask.delay(20);
-        }
-    },
-
-    // private
-    findTargetItem : function(e){
-        var t = e.getTarget(".x-menu-list-item", this.ul,  true);
-        if(t && t.menuItemId){
-            return this.items.get(t.menuItemId);
-        }
-    },
-
-    // private
-    onClick : function(e){
-        var t;
-        if(t = this.findTargetItem(e)){
-            t.onClick(e);
-            this.fireEvent("click", this, t, e);
-        }
-    },
-
-    // private
-    setActiveItem : function(item, autoExpand){
-        if(item != this.activeItem){
-            if(this.activeItem){
-                this.activeItem.deactivate();
-            }
-            this.activeItem = item;
-            item.activate(autoExpand);
-        }else if(autoExpand){
-            item.expandMenu();
-        }
-    },
-
-    // private
-    tryActivate : function(start, step){
-        var items = this.items;
-        for(var i = start, len = items.length; i >= 0 && i < len; i+= step){
-            var item = items.get(i);
-            if(!item.disabled && item.canActivate){
-                this.setActiveItem(item, false);
-                return item;
-            }
-        }
-        return false;
-    },
-
-    // private
-    onMouseOver : function(e){
-        var t;
-        if(t = this.findTargetItem(e)){
-            if(t.canActivate && !t.disabled){
-                this.setActiveItem(t, true);
-            }
-        }
-        this.fireEvent("mouseover", this, e, t);
-    },
-
-    // private
-    onMouseOut : function(e){
-        var t;
-        if(t = this.findTargetItem(e)){
-            if(t == this.activeItem && t.shouldDeactivate(e)){
-                this.activeItem.deactivate();
-                delete this.activeItem;
-            }
-        }
-        this.fireEvent("mouseout", this, e, t);
-    },
-
-    /**
-     * Read-only.  Returns true if the menu is currently displayed, else false.
-     * @type Boolean
-     */
-    isVisible : function(){
-        return this.el && this.el.isVisible();
-    },
-
-    /**
-     * Displays this menu relative to another element
-     * @param {String/HTMLElement/Ext.Element} element The element to align to
-     * @param {String} position (optional) The {@link Ext.Element#alignTo} anchor position to use in aligning to
-     * the element (defaults to this.defaultAlign)
-     * @param {Ext.menu.Menu} parentMenu (optional) This menu's parent menu, if applicable (defaults to undefined)
-     */
-    show : function(el, pos, parentMenu){
-        this.parentMenu = parentMenu;
-        if(!this.el){
-            this.render();
-        }
-        this.fireEvent("beforeshow", this);
-        this.showAt(this.el.getAlignToXY(el, pos || this.defaultAlign), parentMenu, false);
-    },
-
-    /**
-     * Displays this menu at a specific xy position
-     * @param {Array} xyPosition Contains X & Y [x, y] values for the position at which to show the menu (coordinates are page-based)
-     * @param {Ext.menu.Menu} parentMenu (optional) This menu's parent menu, if applicable (defaults to undefined)
-     */
-    showAt : function(xy, parentMenu, /* private: */_fireBefore){
-        this.parentMenu = parentMenu;
-        if(!this.el){
-            this.render();
-        }
-        if(_fireBefore !== false){
-            this.fireEvent("beforeshow", this);
-        }
-        this.el.setXY(xy);
-        this.el.show();
-        this.focusEl.focus.defer(50, this.focusEl);
-        this.fireEvent("show", this);
-    },
-
-    /**
-     * Hides this menu and optionally all parent menus
-     * @param {Boolean} deep (optional) True to hide all parent menus recursively, if any (defaults to false)
-     */
-    hide : function(deep){
-        if(this.el && this.isVisible()){
-            this.fireEvent("beforehide", this);
-            if(this.activeItem){
-                this.activeItem.deactivate();
-                this.activeItem = null;
-            }
-            this.el.hide();
-            this.fireEvent("hide", this);
-        }
-        if(deep === true && this.parentMenu){
-            this.parentMenu.hide(true);
-        }
-    },
-
-    /**
-     * Addds one or more items of any type supported by the Menu class, or that can be converted into menu items.
-     * Any of the following are valid:
-     * <ul>
-     * <li>Any menu item object based on {@link Ext.menu.Item}</li>
-     * <li>An HTMLElement object which will be converted to a menu item</li>
-     * <li>A menu item config object that will be created as a new menu item</li>
-     * <li>A string, which can either be '-' or 'separator' to add a menu separator, otherwise
-     * it will be converted into a {@link Ext.menu.TextItem} and added</li>
-     * </ul>
-     * Usage:
-     * <pre><code>
-// Create the menu
-var menu = new Ext.menu.Menu();
-
-// Create a menu item to add by reference
-var menuItem = new Ext.menu.Item({ text: 'New Item!' });
-
-// Add a bunch of items at once using different methods.
-// Only the last item added will be returned.
-var item = menu.add(
-    menuItem,                // add existing item by ref
-    'Dynamic Item',          // new TextItem
-    '-',                     // new separator
-    { text: 'Config Item' }  // new item by config
-);
-</code></pre>
-     * @param {Mixed} args One or more menu items, menu item configs or other objects that can be converted to menu items
-     * @return {Ext.menu.Item} The menu item that was added, or the last one if multiple items were added
-     */
-    add : function(){
-        var a = arguments, l = a.length, item;
-        for(var i = 0; i < l; i++){
-            var el = a[i];
-            if(el.render){ // some kind of Item
-                item = this.addItem(el);
-            }else if(typeof el == "string"){ // string
-                if(el == "separator" || el == "-"){
-                    item = this.addSeparator();
-                }else{
-                    item = this.addText(el);
-                }
-            }else if(el.tagName || el.el){ // element
-                item = this.addElement(el);
-            }else if(typeof el == "object"){ // must be menu item config?
-                item = this.addMenuItem(el);
-            }
-        }
-        return item;
-    },
-
-    /**
-     * Returns this menu's underlying {@link Ext.Element} object
-     * @return {Ext.Element} The element
-     */
-    getEl : function(){
-        if(!this.el){
-            this.render();
-        }
-        return this.el;
-    },
-
-    /**
-     * Adds a separator bar to the menu
-     * @return {Ext.menu.Item} The menu item that was added
-     */
-    addSeparator : function(){
-        return this.addItem(new Ext.menu.Separator());
-    },
-
-    /**
-     * Adds an {@link Ext.Element} object to the menu
-     * @param {String/HTMLElement/Ext.Element} el The element or DOM node to add, or its id
-     * @return {Ext.menu.Item} The menu item that was added
-     */
-    addElement : function(el){
-        return this.addItem(new Ext.menu.BaseItem(el));
-    },
-
-    /**
-     * Adds an existing object based on {@link Ext.menu.Item} to the menu
-     * @param {Ext.menu.Item} item The menu item to add
-     * @return {Ext.menu.Item} The menu item that was added
-     */
-    addItem : function(item){
-        this.items.add(item);
-        if(this.ul){
-            var li = document.createElement("li");
-            li.className = "x-menu-list-item";
-            this.ul.dom.appendChild(li);
-            item.render(li, this);
-            this.delayAutoWidth();
-        }
-        return item;
-    },
-
-    /**
-     * Creates a new {@link Ext.menu.Item} based an the supplied config object and adds it to the menu
-     * @param {Object} config A MenuItem config object
-     * @return {Ext.menu.Item} The menu item that was added
-     */
-    addMenuItem : function(config){
-        if(!(config instanceof Ext.menu.Item)){
-             config = new Ext.menu.Item(config);
-        }
-        return this.addItem(config);
-    },
-
-    /**
-     * Creates a new {@link Ext.menu.TextItem} with the supplied text and adds it to the menu
-     * @param {String} text The text to display in the menu item
-     * @return {Ext.menu.Item} The menu item that was added
-     */
-    addText : function(text){
-        return this.addItem(new Ext.menu.TextItem(text));
-    },
-
-    /**
-     * Inserts an existing object based on {@link Ext.menu.Item} to the menu at a specified index
-     * @param {Number} index The index in the menu's list of current items where the new item should be inserted
-     * @param {Ext.menu.Item} item The menu item to add
-     * @return {Ext.menu.Item} The menu item that was added
-     */
-    insert : function(index, item){
-        this.items.insert(index, item);
-        if(this.ul){
-            var li = document.createElement("li");
-            li.className = "x-menu-list-item";
-            this.ul.dom.insertBefore(li, this.ul.dom.childNodes[index]);
-            item.render(li, this);
-            this.delayAutoWidth();
-        }
-        return item;
-    },
-
-    /**
-     * Removes an {@link Ext.menu.Item} from the menu and destroys the object
-     * @param {Ext.menu.Item} item The menu item to remove
-     */
-    remove : function(item){
-        this.items.removeKey(item.id);
-        item.destroy();
-    },
-
-    /**
-     * Removes and destroys all items in the menu
-     */
-    removeAll : function(){
-        var f;
-        while(f = this.items.first()){
-            this.remove(f);
-        }
-    }
-});
-
-// MenuNav is a private utility class used internally by the Menu
-Ext.menu.MenuNav = function(menu){
-    Ext.menu.MenuNav.superclass.constructor.call(this, menu.el);
-    this.scope = this.menu = menu;
-};
-
-Ext.extend(Ext.menu.MenuNav, Ext.KeyNav, {
-    doRelay : function(e, h){
-        var k = e.getKey();
-        if(!this.menu.activeItem && e.isNavKeyPress() && k != e.SPACE && k != e.RETURN){
-            this.menu.tryActivate(0, 1);
-            return false;
-        }
-        return h.call(this.scope || this, e, this.menu);
-    },
-
-    up : function(e, m){
-        if(!m.tryActivate(m.items.indexOf(m.activeItem)-1, -1)){
-            m.tryActivate(m.items.length-1, -1);
-        }
-    },
-
-    down : function(e, m){
-        if(!m.tryActivate(m.items.indexOf(m.activeItem)+1, 1)){
-            m.tryActivate(0, 1);
-        }
-    },
-
-    right : function(e, m){
-        if(m.activeItem){
-            m.activeItem.expandMenu(true);
-        }
-    },
-
-    left : function(e, m){
-        m.hide();
-        if(m.parentMenu && m.parentMenu.activeItem){
-            m.parentMenu.activeItem.activate();
-        }
-    },
-
-    enter : function(e, m){
-        if(m.activeItem){
-            e.stopPropagation();
-            m.activeItem.onClick(e);
-            m.fireEvent("click", this, m.activeItem);
-            return true;
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/MenuButton.jss.html b/www/extras/extjs/docs/output/MenuButton.jss.html deleted file mode 100644 index ff724cecc..000000000 --- a/www/extras/extjs/docs/output/MenuButton.jss.html +++ /dev/null @@ -1,167 +0,0 @@ -MenuButton.js

MenuButton.js

/**
- * @class Ext.MenuButton
- * @extends Ext.Button
- * A split button that provides a built-in dropdown arrow that can fire an event separately from the default
- * click event of the button.  Typically this would be used to display a dropdown menu that provides additional
- * options to the primary button action, but any custom handler can provide the arrowclick implementation.
- * @cfg {Function} arrowHandler A function called when the arrow button is clicked (can be used instead of click event)
- * @cfg {String} arrowTooltip The title attribute of the arrow
- * @constructor
- * Create a new menu button
- * @param {String/HTMLElement/Element} renderTo The element to append the button to
- * @param {Object} config The config object
- */
-Ext.MenuButton = function(renderTo, config){
-    Ext.MenuButton.superclass.constructor.call(this, renderTo, config);
-    /**
-     * @event arrowclick
-     * Fires when this button's arrow is clicked
-     * @param {MenuButton} this
-     * @param {EventObject} e The click event
-     */
-    this.addEvents({"arrowclick":true});
-};
-
-Ext.extend(Ext.MenuButton, Ext.Button, {
-    render : function(renderTo){
-        // this is one sweet looking template!
-        var tpl = new Ext.Template(
-            '<table cellspacing="0" class="x-btn-menu-wrap x-btn"><tr><td>',
-            '<table cellspacing="0" class="x-btn-wrap x-btn-menu-text-wrap"><tbody>',
-            '<tr><td class="x-btn-left"><i>&#160;</i></td><td class="x-btn-center"><button class="x-btn-text">{0}</button></td></tr>',
-            "</tbody></table></td><td>",
-            '<table cellspacing="0" class="x-btn-wrap x-btn-menu-arrow-wrap"><tbody>',
-            '<tr><td class="x-btn-center"><button class="x-btn-menu-arrow-el">&#160;</button></td><td class="x-btn-right"><i>&#160;</i></td></tr>',
-            "</tbody></table></td></tr></table>"
-        );
-        var btn = tpl.append(renderTo, [this.text], true);
-        if(this.cls){
-            btn.addClass(this.cls);
-        }
-        if(this.icon){
-            btn.child("button").setStyle('background-image', 'url(' +this.icon +')');
-        }
-        this.el = btn;
-        this.autoWidth();
-        if(this.handleMouseEvents){
-            btn.on("mouseover", this.onMouseOver, this);
-            btn.on("mouseout", this.onMouseOut, this);
-            btn.on("mousedown", this.onMouseDown, this);
-            btn.on("mouseup", this.onMouseUp, this);
-        }
-        btn.on(this.clickEvent, this.onClick, this);
-        if(this.tooltip){
-            var btnEl = btn.child("button:first");
-            if(typeof this.tooltip == 'object'){
-                Ext.QuickTips.tips(Ext.apply({
-                      target: btnEl.id
-                }, this.tooltip));
-            } else {
-                btnEl.dom[this.tooltipType] = this.tooltip;
-            }
-        }
-        if(this.arrowTooltip){
-            var btnEl = btn.child("button:nth(2)");
-            btnEl.dom[this.tooltipType] = this.arrowTooltip;
-        }
-        if(this.hidden){
-            this.hide();
-        }
-        if(this.disabled){
-            this.disable();
-        }
-        if(this.menu){
-            this.menu.on("show", this.onMenuShow, this);
-            this.menu.on("hide", this.onMenuHide, this);
-        }
-    },
-
-    // private
-    autoWidth : function(){
-        if(this.el){
-            var tbl = this.el.child("table:first");
-            var tbl2 = this.el.child("table:last");
-            this.el.setWidth("auto");
-            tbl.setWidth("auto");
-            if(Ext.isIE7 && Ext.isStrict){
-                var ib = this.el.child('button:first');
-                if(ib && ib.getWidth() > 20){
-                    ib.clip();
-                    ib.setWidth(Ext.util.TextMetrics.measure(ib, this.text).width+ib.getFrameWidth('lr'));
-                }
-            }
-            if(this.minWidth){
-                if(this.hidden){
-                    this.el.beginMeasure();
-                }
-                if((tbl.getWidth()+tbl2.getWidth()) < this.minWidth){
-                    tbl.setWidth(this.minWidth-tbl2.getWidth());
-                }
-                if(this.hidden){
-                    this.el.endMeasure();
-                }
-            }
-            this.el.setWidth(tbl.getWidth()+tbl2.getWidth());
-        } 
-    },
-    /**
-     * Sets this button's click handler
-     * @param {Function} handler The function to call when the button is clicked
-     * @param {Object} scope (optional) Scope for the function passed above
-     */
-    setHandler : function(handler, scope){
-        this.handler = handler;
-        this.scope = scope;  
-    },
-    
-    /**
-     * Sets this button's arrow click handler
-     * @param {Function} handler The function to call when the arrow is clicked
-     * @param {Object} scope (optional) Scope for the function passed above
-     */
-    setArrowHandler : function(handler, scope){
-        this.arrowHandler = handler;
-        this.scope = scope;  
-    },
-    
-    /**
-     * Focus the button
-     */
-    focus : function(){
-        if(this.el){
-            this.el.child("a:first").focus();
-        }
-    },
-
-    // private
-    onClick : function(e){
-        e.preventDefault();
-        if(!this.disabled){
-            if(e.getTarget(".x-btn-menu-arrow-wrap")){
-                if(this.menu && !this.menu.isVisible()){
-                    this.menu.show(this.el, this.menuAlign);
-                }
-                this.fireEvent("arrowclick", this, e);
-                if(this.arrowHandler){
-                    this.arrowHandler.call(this.scope || this, this, e);
-                }
-            }else{
-                this.fireEvent("click", this, e);
-                if(this.handler){
-                    this.handler.call(this.scope || this, this, e);
-                }
-            }
-        }
-    },
-    // private
-    onMouseDown : function(e){
-        if(!this.disabled){
-            Ext.fly(e.getTarget("table")).addClass("x-btn-click");
-        }
-    },
-    // private
-    onMouseUp : function(e){
-        Ext.fly(e.getTarget("table")).removeClass("x-btn-click");
-    }   
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/MenuMgr.jss.html b/www/extras/extjs/docs/output/MenuMgr.jss.html deleted file mode 100644 index bdce58adc..000000000 --- a/www/extras/extjs/docs/output/MenuMgr.jss.html +++ /dev/null @@ -1,176 +0,0 @@ -MenuMgr.js

MenuMgr.js

/**
- * @class Ext.menu.MenuMgr
- * Provides a common registry of all menu items on a page so that they can be easily accessed by id.
- * @singleton
- */
-Ext.menu.MenuMgr = function(){
-   var menus, active, groups = {}, attached = false, lastShow = new Date();
-
-   // private - called when first menu is created
-   function init(){
-       menus = {}, active = new Ext.util.MixedCollection();
-       Ext.get(document).addKeyListener(27, function(){
-           if(active.length > 0){
-               hideAll();
-           }
-       });
-   }
-
-   // private
-   function hideAll(){
-       if(active.length > 0){
-           var c = active.clone();
-           c.each(function(m){
-               m.hide();
-           });
-       }
-   }
-
-   // private
-   function onHide(m){
-       active.remove(m);
-       if(active.length < 1){
-           Ext.get(document).un("mousedown", onMouseDown);
-           attached = false;
-       }
-   }
-
-   // private
-   function onShow(m){
-       var last = active.last();
-       lastShow = new Date();
-       active.add(m);
-       if(!attached){
-           Ext.get(document).on("mousedown", onMouseDown);
-           attached = true;
-       }
-       if(m.parentMenu){
-          m.getEl().setZIndex(parseInt(m.parentMenu.getEl().getStyle("z-index"), 10) + 3);
-          m.parentMenu.activeChild = m;
-       }else if(last && last.isVisible()){
-          m.getEl().setZIndex(parseInt(last.getEl().getStyle("z-index"), 10) + 3);
-       }
-   }
-
-   // private
-   function onBeforeHide(m){
-       if(m.activeChild){
-           m.activeChild.hide();
-       }
-       if(m.autoHideTimer){
-           clearTimeout(m.autoHideTimer);
-           delete m.autoHideTimer;
-       }
-   }
-
-   // private
-   function onBeforeShow(m){
-       var pm = m.parentMenu;
-       if(!pm && !m.allowOtherMenus){
-           hideAll();
-       }else if(pm && pm.activeChild){
-           pm.activeChild.hide();
-       }
-   }
-
-   // private
-   function onMouseDown(e){
-       if(lastShow.getElapsed() > 50 && active.length > 0 && !e.getTarget(".x-menu")){
-           hideAll();
-       }
-   }
-
-   // private
-   function onBeforeCheck(mi, state){
-       if(state){
-           var g = groups[mi.group];
-           for(var i = 0, l = g.length; i < l; i++){
-               if(g[i] != mi){
-                   g[i].setChecked(false);
-               }
-           }
-       }
-   }
-
-   return {
-
-       /**
-        * Hides all menus that are currently visible
-        */
-       hideAll : function(){
-            hideAll();  
-       },
-
-       // private
-       register : function(menu){
-           if(!menus){
-               init();
-           }
-           menus[menu.id] = menu;
-           menu.on("beforehide", onBeforeHide);
-           menu.on("hide", onHide);
-           menu.on("beforeshow", onBeforeShow);
-           menu.on("show", onShow);
-           var g = menu.group;
-           if(g && menu.events["checkchange"]){
-               if(!groups[g]){
-                   groups[g] = [];
-               }
-               groups[g].push(menu);
-               menu.on("checkchange", onCheck);
-           }
-       },
-
-        /**
-         * Returns a {@link Ext.menu.Menu} object
-         * @param {String/Object} menu The string menu id, an existing menu object reference, or a Menu config that will
-         * be used to generate and return a new Menu instance.
-         */
-       get : function(menu){
-           if(typeof menu == "string"){ // menu id
-               return menus[menu];
-           }else if(menu.events){  // menu instance
-               return menu;
-           }else{ // otherwise, must be a config
-               return new Ext.menu.Menu(menu);
-           }
-       },
-
-       // private
-       unregister : function(menu){
-           delete menus[menu.id];
-           menu.un("beforehide", onBeforeHide);
-           menu.un("hide", onHide);
-           menu.un("beforeshow", onBeforeShow);
-           menu.un("show", onShow);
-           var g = menu.group;
-           if(g && menu.events["checkchange"]){
-               groups[g].remove(menu);
-               menu.un("checkchange", onCheck);
-           }
-       },
-
-       // private
-       registerCheckable : function(menuItem){
-           var g = menuItem.group;
-           if(g){
-               if(!groups[g]){
-                   groups[g] = [];
-               }
-               groups[g].push(menuItem);
-               menuItem.on("beforecheckchange", onBeforeCheck);
-           }
-       },
-
-       // private
-       unregisterCheckable : function(menuItem){
-           var g = menuItem.group;
-           if(g){
-               groups[g].remove(menuItem);
-               menuItem.un("beforecheckchange", onBeforeCheck);
-           }
-       }
-   };
-}();
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/MessageBox.jss.html b/www/extras/extjs/docs/output/MessageBox.jss.html deleted file mode 100644 index 39622cd35..000000000 --- a/www/extras/extjs/docs/output/MessageBox.jss.html +++ /dev/null @@ -1,479 +0,0 @@ -MessageBox.js

MessageBox.js

/**
- * @class Ext.MessageBox
- * Utility class for generating different styles of message boxes.  The alias Ext.Msg can also be used.
- * Example usage:
- *<pre><code>
-// Basic alert:
-Ext.Msg.alert('Status', 'Changes saved successfully.');
-
-// Prompt for user data:
-Ext.Msg.prompt('Name', 'Please enter your name:', function(btn, text){
-    if (btn == 'ok'){
-        // process text value...
-    }
-});
-
-// Show a dialog using config options:
-Ext.Msg.show({
-   title:'Save Changes?',
-   msg: 'Your are closing a tab that has unsaved changes. Would you like to save your changes?',
-   buttons: Ext.Msg.YESNOCANCEL,
-   fn: processResult,
-   animEl: 'elId'
-});
- </code></pre>
- * @singleton
- */
-Ext.MessageBox = function(){
-    var dlg, opt, mask, waitTimer;
-    var bodyEl, msgEl, textboxEl, textareaEl, progressEl, pp;
-    var buttons, activeTextEl, bwidth;
-
-    // private
-    var handleButton = function(button){
-        dlg.hide();
-        Ext.callback(opt.fn, opt.scope||window, [button, activeTextEl.dom.value], 1);
-    };
-
-    // private
-    var handleHide = function(){
-        if(opt && opt.cls){
-            dlg.el.removeClass(opt.cls);
-        }
-        if(waitTimer){
-            Ext.TaskMgr.stop(waitTimer);
-            waitTimer = null;
-        }
-    };
-
-    // private
-    var updateButtons = function(b){
-        var width = 0;
-        if(!b){
-            buttons["ok"].hide();
-            buttons["cancel"].hide();
-            buttons["yes"].hide();
-            buttons["no"].hide();
-            dlg.footer.dom.style.display = 'none';
-            return width;
-        }
-        dlg.footer.dom.style.display = '';
-        for(var k in buttons){
-            if(typeof buttons[k] != "function"){
-                if(b[k]){
-                    buttons[k].show();
-                    buttons[k].setText(typeof b[k] == "string" ? b[k] : Ext.MessageBox.buttonText[k]);
-                    width += buttons[k].el.getWidth()+15;
-                }else{
-                    buttons[k].hide();
-                }
-            }
-        }
-        return width;
-    };
-
-    // private
-    var handleEsc = function(d, k, e){
-        if(opt && opt.closable !== false){
-            dlg.hide();
-        }
-        if(e){
-            e.stopEvent();
-        }
-    };
-
-    return {
-        /**
-         * Returns a reference to the underlying {@link Ext.BasicDialog} element
-         * @return {Ext.BasicDialog} dialog The BasicDialog element
-         */
-        getDialog : function(){
-           if(!dlg){
-                dlg = new Ext.BasicDialog("x-msg-box", {
-                    autoCreate : true,
-                    shadow: true,
-                    draggable: true,
-                    resizable:false,
-                    constraintoviewport:false,
-                    fixedcenter:true,
-                    collapsible : false,
-                    shim:true,
-                    modal: true,
-                    width:400, height:100,
-                    buttonAlign:"center",
-                    closeClick : function(){
-                        if(opt && opt.buttons && opt.buttons.no && !opt.buttons.cancel){
-                            handleButton("no");
-                        }else{
-                            handleButton("cancel");
-                        }
-                    }
-                });
-                dlg.on("hide", handleHide);
-                mask = dlg.mask;
-                dlg.addKeyListener(27, handleEsc);
-                buttons = {};
-                var bt = this.buttonText;
-                buttons["ok"] = dlg.addButton(bt["ok"], handleButton.createCallback("ok"));
-                buttons["yes"] = dlg.addButton(bt["yes"], handleButton.createCallback("yes"));
-                buttons["no"] = dlg.addButton(bt["no"], handleButton.createCallback("no"));
-                buttons["cancel"] = dlg.addButton(bt["cancel"], handleButton.createCallback("cancel"));
-                bodyEl = dlg.body.createChild({
-                    tag:"div",
-                    html:'<span class="ext-mb-text"></span><br /><input type="text" class="ext-mb-input" /><textarea class="ext-mb-textarea"></textarea><div class="ext-mb-progress-wrap"><div class="ext-mb-progress"><div class="ext-mb-progress-bar">&#160;</div></div></div>'
-                });
-                msgEl = bodyEl.dom.firstChild;
-                textboxEl = Ext.get(bodyEl.dom.childNodes[2]);
-                textboxEl.enableDisplayMode();
-                textboxEl.addKeyListener([10,13], function(){
-                    if(dlg.isVisible() && opt && opt.buttons){
-                        if(opt.buttons.ok){
-                            handleButton("ok");
-                        }else if(opt.buttons.yes){
-                            handleButton("yes");
-                        }
-                    }
-                });
-                textareaEl = Ext.get(bodyEl.dom.childNodes[3]);
-                textareaEl.enableDisplayMode();
-                progressEl = Ext.get(bodyEl.dom.childNodes[4]);
-                progressEl.enableDisplayMode();
-                var pf = progressEl.dom.firstChild;
-                pp = Ext.get(pf.firstChild);
-                pp.setHeight(pf.offsetHeight);
-            }
-            return dlg;
-        },
-
-        /**
-         * Updates the message box body text
-         * @param {String} text Replaces the message box element's innerHTML with the specified string (defaults to
-         * the XHTML-compliant non-breaking space character &#160;)
-         * @return {Ext.MessageBox} messageBox This message box
-         */
-        updateText : function(text){
-            if(!dlg.isVisible() && !opt.width){
-                dlg.resizeTo(this.maxWidth, 100); // resize first so content is never clipped from previous shows
-            }
-            msgEl.innerHTML = text || '&#160;';
-            var w = Math.max(Math.min(opt.width || msgEl.offsetWidth, this.maxWidth), 
-                        Math.max(opt.minWidth || this.minWidth, bwidth));
-            if(opt.prompt){
-                activeTextEl.setWidth(w);
-            }
-            if(dlg.isVisible()){
-                dlg.fixedcenter = false;
-            }
-            dlg.setContentSize(w, bodyEl.getHeight());
-            if(dlg.isVisible()){
-                dlg.fixedcenter = true;
-            }
-            return this;
-        },
-
-        /**
-         * Updates a progress-style message box's text and progress bar.  Only relevant on message boxes
-         * initiated via {@link Ext.MessageBox#progress} or by calling {@link Ext.MessageBox#show} with progress: true.
-         * @param {Number} value Any number between 0 and 1 (e.g., .5)
-         * @param {String} text If defined, the message box's body text is replaced with the specified string (defaults to undefined)
-         * @return {Ext.MessageBox} messageBox This message box
-         */
-        updateProgress : function(value, text){
-            if(text){
-                this.updateText(text);
-            }
-            pp.setWidth(Math.floor(value*progressEl.dom.firstChild.offsetWidth));
-            return this;
-        },        
-
-        /**
-         * Returns true if the message box is currently displayed
-         * @return {Boolean} isVisible True if the message box is visible, else false
-         */
-        isVisible : function(){
-            return dlg && dlg.isVisible();  
-        },
-
-        /**
-         * Hides the message box if it is displayed
-         */
-        hide : function(){
-            if(this.isVisible()){
-                dlg.hide();
-            }  
-        },
-
-        /**
-         * Displays a new message box, or reinitializes an existing message box, based on the config options
-         * passed in. All functions (e.g. prompt, alert, etc) on MessageBox call this function internally.
-         * The following config object properties are supported:
-         * <pre>
-Property    Type             Description
-----------  ---------------  ----------------------------------------------------------------------
-title       String           The title text
-closable    Boolean          False to hide the top-right close box (defaults to true)
-prompt      Boolean          True to prompt the user to enter single-line text (defaults to false)
-multiline   Boolean          True to prompt the user to enter multi-line text (defaults to false)
-progress    Boolean          True to display a progress bar (defaults to false)
-value       String           The string value to set into the active textbox element if displayed
-buttons     Object/Boolean   A button config object (e.g., Ext.MessageBox.OKCANCEL or {ok:'Foo',
-                             cancel:'Bar'}), or false to not show any buttons (defaults to false)
-msg         String           A string that will replace the existing message box body text (defaults
-                             to the XHTML-compliant non-breaking space character &#160;)
-cls         String           A custom CSS class to apply to the message box element
-proxyDrag   Boolean          True to display a lightweight proxy while dragging (defaults to false)
-modal       Boolean          False to allow user interaction with the page while the message box is
-                             displayed (defaults to true)
-</pre>
-         *
-         * Example usage:
-         * <pre><code>
-Ext.Msg.show({
-   title: 'Address',
-   msg: 'Please enter your address:',
-   width: 300,
-   buttons: Ext.MessageBox.OKCANCEL,
-   multiline: true,
-   fn: saveAddress,
-   animEl: 'addAddressBtn'
-});
-</code></pre>
-         * @param {Object} config Configuration options
-         * @return {Ext.MessageBox} messageBox This message box
-         */
-        show : function(options){
-            if(this.isVisible()){
-                this.hide();
-            }
-            var d = this.getDialog();
-            opt = options;
-            d.setTitle(opt.title || "&#160;");
-            d.close.setDisplayed(opt.closable !== false);
-            activeTextEl = textboxEl;
-            opt.prompt = opt.prompt || (opt.multiline ? true : false);
-            if(opt.prompt){
-                if(opt.multiline){
-                    textboxEl.hide();
-                    textareaEl.show();
-                    textareaEl.setHeight(typeof opt.multiline == "number" ?
-                        opt.multiline : this.defaultTextHeight);
-                    activeTextEl = textareaEl;
-                }else{
-                    textboxEl.show();
-                    textareaEl.hide();
-                }
-            }else{
-                textboxEl.hide();
-                textareaEl.hide();
-            }
-            progressEl.setDisplayed(opt.progress === true);
-            this.updateProgress(0);
-            activeTextEl.dom.value = opt.value || "";
-            if(opt.prompt){
-                dlg.setDefaultButton(activeTextEl);
-            }else{
-                var bs = opt.buttons;
-                var db = null;
-                if(bs && bs.ok){
-                    db = buttons["ok"];
-                }else if(bs && bs.yes){
-                    db = buttons["yes"];
-                }
-                dlg.setDefaultButton(db);
-            }
-            bwidth = updateButtons(opt.buttons);
-            this.updateText(opt.msg);
-            if(opt.cls){
-                d.el.addClass(opt.cls);
-            }
-            d.proxyDrag = opt.proxyDrag === true;
-            d.modal = opt.modal !== false;
-            d.mask = opt.modal !== false ? mask : false;
-            if(!d.isVisible()){
-                // force it to the end of the z-index stack so it gets a cursor in FF
-                document.body.appendChild(dlg.el.dom);
-                d.animateTarget = null;
-                d.show(options.animEl);
-            }
-            return this;
-        },
-
-        /**
-         * Displays a message box with a progress bar.  This message box has no buttons and is not closeable by
-         * the user.  You are responsible for updating the progress bar as needed via {@link Ext.MessageBox#updateProgress}
-         * and closing the message box when the process is complete.
-         * @param {String} title The title bar text
-         * @param {String} msg The message box body text
-         * @return {Ext.MessageBox} messageBox This message box
-         */
-        progress : function(title, msg){
-            this.show({
-                title : title,
-                msg : msg,
-                buttons: false,
-                progress:true,
-                closable:false,
-                minWidth: this.minProgressWidth
-            });
-            return this;
-        },
-
-        /**
-         * Displays a standard read-only message box (comparable to the basic JavaScript alert prompt) with an OK
-         * button. If a callback function is passed it will be called after the user clicks the button, and the
-         * id of the button that was clicked will be passed as the only parameter to the callback
-         * (could also be the top-right close button).
-         * @param {String} title The title bar text
-         * @param {String} msg The message box body text
-         * @param {Function} fn (optional) The callback function invoked after the message box is closed
-         * @param {Object} scope (optional) The scope of the callback function
-         * @return {Ext.MessageBox} messageBox This message box
-         */
-        alert : function(title, msg, fn, scope){
-            this.show({
-                title : title,
-                msg : msg,
-                buttons: this.OK,
-                fn: fn,
-                scope : scope
-            });
-            return this;
-        },
-
-        /**
-         * Displays a message box with an infinitely auto-updating progress bar.  This can be used to block user
-         * interaction while waiting for a long-running process to complete that does not have defined intervals.
-         * You are responsible for closing the message box when the process is complete.
-         * @param {String} msg The message box body text
-         * @param {String} title (optional) The title bar text
-         * @return {Ext.MessageBox} messageBox This message box
-         */
-        wait : function(msg, title){
-            this.show({
-                title : title,
-                msg : msg,
-                buttons: false,
-                closable:false,
-                progress:true,
-                modal:true,
-                width:300,
-                wait:true
-            });
-            waitTimer = Ext.TaskMgr.start({
-                run: function(i){
-                    Ext.MessageBox.updateProgress(((((i+20)%20)+1)*5)*.01);
-                },
-                interval: 1000
-            });
-            return this;
-        },
-
-        /**
-         * Displays a confirmation message box with Yes and No buttons.  If a callback function is passed it will
-         * be called after the user clicks either button, and the id of the button that was clicked
-         * will be passed as the only parameter to the callback (could also be the top-right close button).
-         * @param {String} title The title bar text
-         * @param {String} msg The message box body text
-         * @param {Function} fn (optional) The callback function invoked after the message box is closed
-         * @param {Object} scope (optional) The scope of the callback function
-         * @return {Ext.MessageBox} messageBox This message box
-         */
-        confirm : function(title, msg, fn, scope){
-            this.show({
-                title : title,
-                msg : msg,
-                buttons: this.YESNO,
-                fn: fn,
-                scope : scope
-            });
-            return this;
-        },
-
-        /**
-         * Displays a message box with OK and Cancel buttons prompting the user to enter some text.  The prompt can
-         * be a single-line or multi-line textbox.  If a callback function is passed it will be called after the user
-         * clicks either button, and the id of the button that was clicked (could also be the top-right
-         * close button) and the text that was entered will be passed as the two parameters to the callback.
-         * @param {String} title The title bar text
-         * @param {String} msg The message box body text
-         * @param {Function} fn (optional) The callback function invoked after the message box is closed
-         * @param {Object} scope (optional) The scope of the callback function
-         * @param {Boolean/Number} multiline (optional) True to create a multiline textbox using the defaultTextHeight
-         * property, or the height in pixels to create the textbox (defaults to false / single-line)
-         * @return {Ext.MessageBox} messageBox This message box
-         */
-        prompt : function(title, msg, fn, scope, multiline){
-            this.show({
-                title : title,
-                msg : msg,
-                buttons: this.OKCANCEL,
-                fn: fn,
-                minWidth:250,
-                scope : scope,
-                prompt:true,
-                multiline: multiline
-            });
-            return this;
-        },
-
-        /**
-         * Button config that displays a single OK button
-         * @type Object
-         */
-        OK : {ok:true},
-        /**
-         * Button config that displays Yes and No buttons
-         * @type Object
-         */
-        YESNO : {yes:true, no:true},
-        /**
-         * Button config that displays OK and Cancel buttons
-         * @type Object
-         */
-        OKCANCEL : {ok:true, cancel:true},
-        /**
-         * Button config that displays Yes, No and Cancel buttons
-         * @type Object
-         */
-        YESNOCANCEL : {yes:true, no:true, cancel:true},
-
-        /**
-         * The default height in pixels of the message box's multiline textarea if displayed (defaults to 75)
-         * @type Number
-         */
-        defaultTextHeight : 75,
-        /**
-         * The maximum width in pixels of the message box (defaults to 600)
-         * @type Number
-         */
-        maxWidth : 600,
-        /**
-         * The minimum width in pixels of the message box (defaults to 100)
-         * @type Number
-         */
-        minWidth : 100,
-        /**
-         * The minimum width in pixels of the message box progress bar if displayed (defaults to 250)
-         * @type Number
-         */
-        minProgressWidth : 250,
-        /**
-         * An object containing the default button text strings that can be overriden for localized language support.
-         * Supported properties are: ok, cancel, yes and no.
-         * Customize the default text like so: Ext.MessageBox.buttonText.yes = "Si";
-         * @type Object
-         */
-        buttonText : {
-            ok : "OK",
-            cancel : "Cancel",
-            yes : "Yes",
-            no : "No"
-        }
-    };
-}();
-
-/**
- * Shorthand for {@link Ext.MessageBox}
- */
-Ext.Msg = Ext.MessageBox;

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/MixedCollection.jss.html b/www/extras/extjs/docs/output/MixedCollection.jss.html deleted file mode 100644 index 34074b649..000000000 --- a/www/extras/extjs/docs/output/MixedCollection.jss.html +++ /dev/null @@ -1,503 +0,0 @@ -MixedCollection.js

MixedCollection.js

/**
- * @class Ext.util.MixedCollection
- * @extends Ext.util.Observable
- * A Collection class that maintains both numeric indexes and keys and exposes events.
- * @constructor
- * @param {Boolean} allowFunctions True if the addAll function should add function references to the
- * collection (defaults to false)
- * @param {Function} keyFn A function that can accept an item of the type(s) stored in this MixedCollection
- * and return the key value for that item.  This is used when available to look up the key on items that
- * were passed without an explicit key parameter to a MixedCollection method.  Passing this parameter is
- * equivalent to providing an implementation for the {@link #getKey} method.
- */
-Ext.util.MixedCollection = function(allowFunctions, keyFn){
-    this.items = [];
-    this.map = {};
-    this.keys = [];
-    this.length = 0;
-    this.addEvents({
-        /**
-         * @event clear
-         * Fires when the collection is cleared.
-         */
-        "clear" : true,
-        /**
-         * @event add
-         * Fires when an item is added to the collection.
-         * @param {Number} index The index at which the item was added.
-         * @param {Object} o The item added.
-         * @param {String} key The key associated with the added item.
-         */
-        "add" : true,
-        /**
-         * @event replace
-         * Fires when an item is replaced in the collection.
-         * @param {String} key he key associated with the new added.
-         * @param {Object} old The item being replaced.
-         * @param {Object} new The new item.
-         */
-        "replace" : true,
-        /**
-         * @event remove
-         * Fires when an item is removed from the collection.
-         * @param {Object} o The item being removed.
-         * @param {String} key (optional) The key associated with the removed item.
-         */
-        "remove" : true,
-        "sort" : true
-    });
-    this.allowFunctions = allowFunctions === true;
-    if(keyFn){
-        this.getKey = keyFn;
-    }
-    Ext.util.MixedCollection.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, {
-    allowFunctions : false,
-    
-/**
- * Adds an item to the collection.
- * @param {String} key The key to associate with the item
- * @param {Object} o The item to add.
- * @return {Object} The item added.
- */
-    add : function(key, o){
-        if(arguments.length == 1){
-            o = arguments[0];
-            key = this.getKey(o);
-        }
-        if(typeof key == "undefined" || key === null){
-            this.length++;
-            this.items.push(o);
-            this.keys.push(null);
-        }else{
-            var old = this.map[key];
-            if(old){
-                return this.replace(key, o);
-            }
-            this.length++;
-            this.items.push(o);
-            this.map[key] = o;
-            this.keys.push(key);
-        }
-        this.fireEvent("add", this.length-1, o, key);
-        return o;
-    },
-   
-/**
-  * MixedCollection has a generic way to fetch keys if you implement getKey.
-    <pre><code>
-    // normal way
-    var mc = new Ext.util.MixedCollection();
-    mc.add(someEl.dom.id, someEl);
-    mc.add(otherEl.dom.id, otherEl);
-    //and so on
-    
-    // using getKey
-    var mc = new Ext.util.MixedCollection();
-    mc.getKey = function(el){
-       return el.dom.id;
-    }
-    mc.add(someEl);
-    mc.add(otherEl);
-    // etc
-    </code>
- * @param o {Object} The item for which to find the key.
- * @return {Object} The key for the passed item.
- */
-    getKey : function(o){
-         return o.id; 
-    },
-   
-/**
- * Replaces an item in the collection.
- * @param {String} key The key associated with the item to replace, or the item to replace.
- * @param o {Object} o (optional) If the first parameter passed was a key, the item to associate with that key.
- * @return {Object}  The new item.
- */
-    replace : function(key, o){
-        if(arguments.length == 1){
-            o = arguments[0];
-            key = this.getKey(o);
-        }
-        var old = this.item(key);
-        if(typeof key == "undefined" || key === null || typeof old == "undefined"){
-             return this.add(key, o);
-        }
-        var index = this.indexOfKey(key);
-        this.items[index] = o;
-        this.map[key] = o;
-        this.fireEvent("replace", key, old, o);
-        return o;
-    },
-   
-/**
- * Adds all elements of an Array or an Object to the collection.
- * @param {Object/Array} objs An Object containing properties which will be added to the collection, or
- * an Array of values, each of which are added to the collection.
- */
-    addAll : function(objs){
-        if(arguments.length > 1 || objs instanceof Array){
-            var args = arguments.length > 1 ? arguments : objs;
-            for(var i = 0, len = args.length; i < len; i++){
-                this.add(args[i]);
-            }
-        }else{
-            for(var key in objs){
-                if(this.allowFunctions || typeof objs[key] != "function"){
-                    this.add(objs[key], key);
-                }
-            }
-        }
-    },
-   
-/**
- * Executes the specified function once for every item in the collection, passing each
- * item as the first and only parameter. returning false from the function will stop the iteration.
- * @param {Function} fn The function to execute for each item.
- * @param {Object} scope (optional) The scope in which to execute the function.
- */
-    each : function(fn, scope){
-        var items = [].concat(this.items); // each safe for removal
-        for(var i = 0, len = items.length; i < len; i++){
-            if(fn.call(scope || items[i], items[i], i, len) === false){
-                break;
-            }
-        }
-    },
-   
-/**
- * Executes the specified function once for every key in the collection, passing each
- * key, and its associated item as the first two parameters.
- * @param {Function} fn The function to execute for each item.
- * @param {Object} scope (optional) The scope in which to execute the function.
- */
-    eachKey : function(fn, scope){
-        for(var i = 0, len = this.keys.length; i < len; i++){
-            fn.call(scope || window, this.keys[i], this.items[i], i, len);
-        }
-    },
-   
-/**
- * Returns the first item in the collection which elicits a true return value from the
- * passed selection function.
- * @param {Function} fn The selection function to execute for each item.
- * @param {Object} scope (optional) The scope in which to execute the function.
- * @return {Object} The first item in the collection which returned true from the selection function.
- */
-    find : function(fn, scope){
-        for(var i = 0, len = this.items.length; i < len; i++){
-            if(fn.call(scope || window, this.items[i], this.keys[i])){
-                return this.items[i];
-            }
-        }
-        return null;
-    },
-   
-/**
- * Inserts an item at the specified index in the collection.
- * @param {Number} index The index to insert the item at.
- * @param {String} key The key to associate with the new item, or the item itself.
- * @param {Object} o  (optional) If the second parameter was a key, the new item.
- * @return {Object} The item inserted.
- */
-    insert : function(index, key, o){
-        if(arguments.length == 2){
-            o = arguments[1];
-            key = this.getKey(o);
-        }
-        if(index >= this.length){
-            return this.add(key, o);
-        }
-        this.length++;
-        this.items.splice(index, 0, o);
-        if(typeof key != "undefined" && key != null){
-            this.map[key] = o;
-        }
-        this.keys.splice(index, 0, key);
-        this.fireEvent("add", index, o, key);
-        return o;
-    },
-   
-/**
- * Removed an item from the collection.
- * @param {Object} o The item to remove.
- * @return {Object} The item removed.
- */
-    remove : function(o){
-        return this.removeAt(this.indexOf(o));
-    },
-   
-/**
- * Remove an item from a specified index in the collection.
- * @param {Number} index The index within the collection of the item to remove.
- */
-    removeAt : function(index){
-        if(index < this.length && index >= 0){
-            this.length--;
-            var o = this.items[index];
-            this.items.splice(index, 1);
-            var key = this.keys[index];
-            if(typeof key != "undefined"){
-                delete this.map[key];
-            }
-            this.keys.splice(index, 1);
-            this.fireEvent("remove", o, key);
-        }
-    },
-   
-/**
- * Removed an item associated with the passed key fom the collection.
- * @param {String} key The key of the item to remove.
- */
-    removeKey : function(key){
-        return this.removeAt(this.indexOfKey(key));
-    },
-   
-/**
- * Returns the number of items in the collection.
- * @return {Number} the number of items in the collection.
- */
-    getCount : function(){
-        return this.length; 
-    },
-   
-/**
- * Returns index within the collection of the passed Object.
- * @param {Object} o The item to find the index of.
- * @return {Number} index of the item.
- */
-    indexOf : function(o){
-        if(!this.items.indexOf){
-            for(var i = 0, len = this.items.length; i < len; i++){
-                if(this.items[i] == o) return i;
-            }
-            return -1;
-        }else{
-            return this.items.indexOf(o);
-        }
-    },
-   
-/**
- * Returns index within the collection of the passed key.
- * @param {String} key The key to find the index of.
- * @return {Number} index of the key.
- */
-    indexOfKey : function(key){
-        if(!this.keys.indexOf){
-            for(var i = 0, len = this.keys.length; i < len; i++){
-                if(this.keys[i] == key) return i;
-            }
-            return -1;
-        }else{
-            return this.keys.indexOf(key);
-        }
-    },
-   
-/**
- * Returns the item associated with the passed key OR index. Key has priority over index.
- * @param {String/Number} key The key or index of the item.
- * @return {Object} The item associated with the passed key.
- */
-    item : function(key){
-        var item = typeof this.map[key] != "undefined" ? this.map[key] : this.items[key];
-        return typeof item != 'function' || this.allowFunctions ? item : null; // for prototype!
-    },
-    
-/**
- * Returns the item at the specified index.
- * @param {Number} index The index of the item.
- * @return {Object}
- */
-    itemAt : function(index){
-        return this.items[index];
-    },
-    
-/**
- * Returns the item associated with the passed key.
- * @param {String/Number} key The key of the item.
- * @return {Object} The item associated with the passed key.
- */
-    key : function(key){
-        return this.map[key];
-    },
-   
-/**
- * Returns true if the collection contains the passed Object as an item.
- * @param {Object} o  The Object to look for in the collection.
- * @return {Boolean} True if the collection contains the Object as an item.
- */
-    contains : function(o){
-        return this.indexOf(o) != -1;
-    },
-   
-/**
- * Returns true if the collection contains the passed Object as a key.
- * @param {String} key The key to look for in the collection.
- * @return {Boolean} True if the collection contains the Object as a key.
- */
-    containsKey : function(key){
-        return typeof this.map[key] != "undefined";
-    },
-   
-/**
- * Removes all items from the collection.
- */
-    clear : function(){
-        this.length = 0;
-        this.items = [];
-        this.keys = [];
-        this.map = {};
-        this.fireEvent("clear");
-    },
-   
-/**
- * Returns the first item in the collection.
- * @return {Object} the first item in the collection..
- */
-    first : function(){
-        return this.items[0]; 
-    },
-   
-/**
- * Returns the last item in the collection.
- * @return {Object} the last item in the collection..
- */
-    last : function(){
-        return this.items[this.length-1];   
-    },
-    
-    _sort : function(property, dir, fn){
-        var dsc = String(dir).toUpperCase() == "DESC" ? -1 : 1;
-        fn = fn || function(a, b){
-            return a-b;
-        };
-        var c = [], k = this.keys, items = this.items;
-        for(var i = 0, len = items.length; i < len; i++){
-            c[c.length] = {key: k[i], value: items[i], index: i};
-        }
-        c.sort(function(a, b){
-            var v = fn(a[property], b[property]) * dsc;
-            if(v == 0){
-                v = (a.index < b.index ? -1 : 1);
-            }
-            return v;
-        });
-        for(var i = 0, len = c.length; i < len; i++){
-            items[i] = c[i].value;
-            k[i] = c[i].key;
-        }
-        this.fireEvent("sort", this);
-    },
-    
-    /**
-     * Sorts this collection with the passed comparison function
-     * @param {String} direction (optional) "ASC" or "DESC"
-     * @param {Function} fn (optional) comparison function
-     */
-    sort : function(dir, fn){
-        this._sort("value", dir, fn);
-    },
-    
-    /**
-     * Sorts this collection by keys
-     * @param {String} direction (optional) "ASC" or "DESC"
-     * @param {Function} fn (optional) a comparison function (defaults to case insensitive string)
-     */
-    keySort : function(dir, fn){
-        this._sort("key", dir, fn || function(a, b){
-            return String(a).toUpperCase()-String(b).toUpperCase();
-        });
-    },
-    
-    /**
-     * Returns a range of items in this collection
-     * @param {Number} startIndex (optional) defaults to 0
-     * @param {Number} endIndex (optional) default to the last item
-     * @return {Array} An array of items
-     */
-    getRange : function(start, end){
-        var items = this.items;
-        if(items.length < 1){
-            return [];
-        }
-        start = start || 0;
-        end = Math.min(typeof end == "undefined" ? this.length-1 : end, this.length-1);
-        var r = [];
-        if(start <= end){
-            for(var i = start; i <= end; i++) {
-        	    r[r.length] = items[i];
-            }
-        }else{
-            for(var i = start; i >= end; i--) {
-        	    r[r.length] = items[i];
-            }
-        }
-        return r;
-    },
-        
-    /**
-     * Filter the <i>objects</i> in this collection by a specific property. 
-     * Returns a new collection that has been filtered.
-     * @param {String} property A property on your objects
-     * @param {String/RegExp} value Either string that the property values 
-     * should start with or a RegExp to test against the property
-     * @return {MixedCollection} The new filtered collection
-     */
-    filter : function(property, value){
-        if(!value.exec){ // not a regex
-            value = String(value);
-            if(value.length == 0){
-                return this.clone();
-            }
-            value = new RegExp("^" + Ext.escapeRe(value), "i");
-        }
-        return this.filterBy(function(o){
-            return o && value.test(o[property]);
-        });
-	},
-    
-    /**
-     * Filter by a function. * Returns a new collection that has been filtered.
-     * The passed function will be called with each 
-     * object in the collection. If the function returns true, the value is included 
-     * otherwise it is filtered.
-     * @param {Function} fn The function to be called, it will receive the args o (the object), k (the key)
-     * @param {Object} scope (optional) The scope of the function (defaults to this) 
-     * @return {MixedCollection} The new filtered collection
-     */
-    filterBy : function(fn, scope){
-        var r = new Ext.util.MixedCollection();
-        r.getKey = this.getKey;
-        var k = this.keys, it = this.items;
-        for(var i = 0, len = it.length; i < len; i++){
-            if(fn.call(scope||this, it[i], k[i])){
-				r.add(k[i], it[i]);
-			}
-        }
-        return r;
-    },
-    
-    /**
-     * Creates a duplicate of this collection
-     * @return {MixedCollection}
-     */
-    clone : function(){
-        var r = new Ext.util.MixedCollection();
-        var k = this.keys, it = this.items;
-        for(var i = 0, len = it.length; i < len; i++){
-            r.add(k[i], it[i]);
-        }
-        r.getKey = this.getKey;
-        return r;
-    }
-});
-/**
- * Returns the item associated with the passed key or index.
- * @method
- * @param {String/Number} key The key or index of the item.
- * @return {Object} The item associated with the passed key.
- */
-Ext.util.MixedCollection.prototype.get = Ext.util.MixedCollection.prototype.item;

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/NumberField.jss.html b/www/extras/extjs/docs/output/NumberField.jss.html deleted file mode 100644 index 081a36542..000000000 --- a/www/extras/extjs/docs/output/NumberField.jss.html +++ /dev/null @@ -1,131 +0,0 @@ -NumberField.js

NumberField.js

/**
- * @class Ext.form.NumberField
- * @extends Ext.form.TextField
- * Numeric text field that provides automatic keystroke filtering and numeric validation.
- * @constructor
- * Creates a new NumberField
- * @param {Object} config Configuration options
- */
-Ext.form.NumberField = function(config){
-    Ext.form.NumberField.superclass.constructor.call(this, config);
-};
-
-Ext.extend(Ext.form.NumberField, Ext.form.TextField,  {
-    /**
-     * @cfg {String} fieldClass The default CSS class for the field (defaults to "x-form-field x-form-num-field")
-     */
-    fieldClass: "x-form-field x-form-num-field",
-    /**
-     * @cfg {Boolean} allowDecimals False to disallow decimal values (defaults to true)
-     */
-    allowDecimals : true,
-    /**
-     * @cfg {String} decimalSeparator Character(s) to allow as the decimal separator (defaults to '.')
-     */
-    decimalSeparator : ".",
-    /**
-     * @cfg {Number} decimalPrecision The maximum precision to display after the decimal separator (defaults to 2)
-     */
-    decimalPrecision : 2,
-    /**
-     * @cfg {Boolean} allowNegative False to require only positive numbers (defaults to true)
-     */
-    allowNegative : true,
-    /**
-     * @cfg {Number} minValue The minimum allowed value (defaults to Number.NEGATIVE_INFINITY)
-     */
-    minValue : Number.NEGATIVE_INFINITY,
-    /**
-     * @cfg {Number} maxValue The maximum allowed value (defaults to Number.MAX_VALUE)
-     */
-    maxValue : Number.MAX_VALUE,
-    /**
-     * @cfg {String} minText Error text to display if the minimum value validation fails (defaults to "The minimum value for this field is {minValue}")
-     */
-    minText : "The minimum value for this field is {0}",
-    /**
-     * @cfg {String} maxText Error text to display if the maximum value validation fails (defaults to "The maximum value for this field is {maxValue}")
-     */
-    maxText : "The maximum value for this field is {0}",
-    /**
-     * @cfg {String} nanText Error text to display if the value is not a valid number.  For example, this can happen
-     * if a valid character like '.' or '-' is left in the field with no number (defaults to "{value} is not a valid number")
-     */
-    nanText : "{0} is not a valid number",
-
-    // private
-    initEvents : function(){
-        Ext.form.NumberField.superclass.initEvents.call(this);
-        var allowed = "0123456789";
-        if(this.allowDecimals){
-            allowed += this.decimalSeparator;
-        }
-        if(this.allowNegative){
-            allowed += "-";
-        }
-        var keyPress = function(e){
-            var k = e.getKey();
-            if(!Ext.isIE && (e.isNavKeyPress() || k == e.BACKSPACE || (k == e.DELETE && e.button == -1))){
-                return;
-            }
-            var c = e.getCharCode();
-            if(allowed.indexOf(String.fromCharCode(c)) === -1){
-                e.stopEvent();
-            }
-        };
-        this.el.on("keypress", keyPress, this);
-    },
-
-    // private
-    validateValue : function(value){
-        if(!Ext.form.NumberField.superclass.validateValue.call(this, value)){
-            return false;
-        }
-        if(value.length < 1){ // if it's blank and textfield didn't flag it then it's valid
-             return true;
-        }
-        value = String(value).replace(this.decimalSeparator, ".");
-        if(isNaN(value)){
-            this.markInvalid(String.format(this.nanText, value));
-            return false;
-        }
-        var num = this.parseValue(value);
-        if(num < this.minValue){
-            this.markInvalid(String.format(this.minText, this.minValue));
-            return false;
-        }
-        if(num > this.maxValue){
-            this.markInvalid(String.format(this.maxText, this.maxValue));
-            return false;
-        }
-        return true;
-    },
-
-    // private
-    parseValue : function(value){
-        return parseFloat(String(value).replace(this.decimalSeparator, "."));
-    },
-
-    // private
-    fixPrecision : function(value){
-       if(!this.allowDecimals || this.decimalPrecision == -1 || isNaN(value) || value == 0 || !value){
-           return value;
-       }
-       // this should work but doesn't due to precision error in JS
-       // var scale = Math.pow(10, this.decimalPrecision);
-       // var fixed = this.decimalPrecisionFcn(value * scale);
-       // return fixed / scale;
-       //
-       // so here's our workaround:
-       var scale = Math.pow(10, this.decimalPrecision+1);
-       var fixed = this.decimalPrecisionFcn(value * scale);
-       fixed = this.decimalPrecisionFcn(fixed/10);
-       return fixed / (scale/10);
-    },
-
-    // private
-    decimalPrecisionFcn : function(v){
-        return Math.floor(v);
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Observable.jss.html b/www/extras/extjs/docs/output/Observable.jss.html deleted file mode 100644 index 96a13ff53..000000000 --- a/www/extras/extjs/docs/output/Observable.jss.html +++ /dev/null @@ -1,341 +0,0 @@ -Observable.js

Observable.js


-/**
- * @class Ext.util.Observable
- * Abstract base class that provides a common interface for publishing events. Subclasses are expected to
- * to have a property "events" with all the events defined.<br>
- * For example:
- * <pre><code>
- Employee = function(name){
-    this.name = name;
-    this.events = {
-        "fired" : true,
-        "quit" : true
-    }
- }
- Ext.extend(Employee, Ext.util.Observable);
-</code></pre>
- */
-Ext.util.Observable = function(){
-    if(this.listeners){
-        this.on(this.listeners);
-        delete this.listeners;
-    }
-};
-Ext.util.Observable.prototype = {
-    /**
-     * Fires the specified event with the passed parameters (minus the event name).
-     * @param {String} eventName
-     * @param {Object...} args Variable number of parameters are passed to handlers
-     * @return {Boolean} returns false if any of the handlers return false otherwise it returns true
-     */
-    fireEvent : function(){
-        var ce = this.events[arguments[0].toLowerCase()];
-        if(typeof ce == "object"){
-            return ce.fire.apply(ce, Array.prototype.slice.call(arguments, 1));
-        }else{
-            return true;
-        }
-    },
-
-    // private
-    filterOptRe : /^(?:scope|delay|buffer|single)$/,
-
-    /**
-     * Appends an event handler to this component
-     * @param {String}   eventName The type of event to listen for
-     * @param {Function} handler The method the event invokes
-     * @param {Object}   scope (optional) The scope in which to execute the handler
-     * function. The handler function's "this" context.
-     * @param {Object}   options (optional) An object containing handler configuration
-     * properties. This may contain any of the following properties:<ul>
-     * <li>scope {Object} The scope in which to execute the handler function. The handler function's "this" context.</li>
-     * <li>delegate {String} A simple selector to filter the target or look for a descendant of the target</li>
-     * <li>stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.</li>
-     * <li>preventDefault {Boolean} True to prevent the default action</li>
-     * <li>stopPropagation {Boolean} True to prevent event propagation</li>
-     * <li>normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject</li>
-     * <li>delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.</li>
-     * <li>single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.</li>
-     * <li>buffer {Number} Causes the handler to be scheduled to run in an {@link Ext.util.DelayedTask} delayed
-     * by the specified number of milliseconds. If the event fires again within that time, the original
-     * handler is <em>not</em> invoked, but the new handler is scheduled in its place.</li>
-     * </ul>
-     * <p>
-     * <b>Combining Options</b><br>
-     * Using the options argument, it is possible to combine different types of listeners:<br>
-     * <br>
-     * A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)<div style="margin: 5px 20px 20px;">
-     * Code:
-     * 	<pre><code>el.on('click', this.onClick, this, {
-     * 	single: true,
-     * 	delay: 100,
-     * 	stopEvent : true,
-     *  forumId: 4
-     * });</pre>
-     * <p>
-     * The method also allows for a single argument to be passed which is a config object containing properties
-     * which specify multiple handlers.
-     * <p>
-     * <b>Attaching multiple handlers in 1 call</b><br>
-     * Code:
-     * 	<pre><code>el.on({
-     * 	'click' : {
-     *     	fn: this.onClick
-     * 		scope: this,
-     * 		delay: 100
-     *     }, 
-     * 	'mouseover' : {
-     *     	fn: this.onMouseOver
-     * 		scope: this
-     *     },
-     * 	'mouseout' : {
-     *     	fn: this.onMouseOut
-     * 		scope: this
-     *     }
-     * });</pre>
-     * <p>
-     * Or a shorthand syntax:<br>
-     * Code:
-     * 	<pre><code>el.on({
-     * 	'click' : this.onClick,
-     * 	'mouseover' : this.onMouseOver,
-     * 	'mouseout' : this.onMouseOut
-     * 	scope: this
-     * });</pre>
-     */
-    addListener : function(eventName, fn, scope, o){
-        if(typeof eventName == "object"){
-            o = eventName;
-            for(var e in o){
-                if(this.filterOptRe.test(e)){
-                    continue;
-                }
-                if(typeof o[e] == "function"){
-                    // shared options
-                    this.addListener(e, o[e], o.scope,  o);
-                }else{
-                    // individual options
-                    this.addListener(e, o[e].fn, o[e].scope, o[e]);
-                }
-            }
-            return;
-        }
-        o = (!o || typeof o == "boolean") ? {} : o;
-        eventName = eventName.toLowerCase();
-        var ce = this.events[eventName] || true;
-        if(typeof ce == "boolean"){
-            ce = new Ext.util.Event(this, eventName);
-            this.events[eventName] = ce;
-        }
-        ce.addListener(fn, scope, o);
-    },
-
-    /**
-     * Removes a listener
-     * @param {String}   eventName     The type of event to listen for
-     * @param {Function} handler        The handler to remove
-     * @param {Object}   scope  (optional) The scope (this object) for the handler
-     */
-    removeListener : function(eventName, fn, scope){
-        var ce = this.events[eventName.toLowerCase()];
-        if(typeof ce == "object"){
-            ce.removeListener(fn, scope);
-        }
-    },
-
-    /**
-     * Removes all listeners for this object
-     */
-    purgeListeners : function(){
-        for(var evt in this.events){
-            if(typeof this.events[evt] == "object"){
-                 this.events[evt].clearListeners();
-            }
-        }
-    },
-
-    relayEvents : function(o, events){
-        var createHandler = function(ename){
-            return function(){
-                return this.fireEvent.apply(this, Ext.combine(ename, Array.prototype.slice.call(arguments, 0)));
-            };
-        };
-        for(var i = 0, len = events.length; i < len; i++){
-            var ename = events[i];
-            if(!this.events[ename]){ this.events[ename] = true; };
-            o.on(ename, createHandler(ename), this);
-        }
-    },
-
-    /**
-     * Copies any events from the passed object onto this object if they do not already exist.  The passed object
-     * must also inherit from Observable for this method to have any effect.
-     * @param {Object} object The object from which to copy events
-     */
-    addEvents : function(o){
-        if(!this.events){
-            this.events = {};
-        }
-        Ext.applyIf(this.events, o);
-    },
-
-    /**
-     * Checks to see if this object is currently listening for a specified event
-     * @param {String} eventName The name of the event to check for
-     * @return {Boolean} True if the event is being listened for, else false
-     */
-    hasListener : function(eventName){
-        var e = this.events[eventName];
-        return typeof e == "object" && e.listeners.length > 0;
-    }
-};
-/**
- * Appends an event handler to this element (shorthand for addListener)
- * @param {String}   eventName     The type of event to listen for
- * @param {Function} handler        The method the event invokes
- * @param {Object}   options  (optional)
- * @method
- */
-Ext.util.Observable.prototype.on = Ext.util.Observable.prototype.addListener;
-/**
- * Removes a listener (shorthand for removeListener)
- * @param {String}   eventName     The type of event to listen for
- * @param {Function} handler        The handler to remove
- * @param {Object}   scope  (optional) The scope (this object) for the handler
- * @method
- */
-Ext.util.Observable.prototype.un = Ext.util.Observable.prototype.removeListener;
-
-/**
- * Starts capture on the specified Observable. All events will be passed
- * to the supplied function with the event name + standard signature of the event
- * <b>before</b> the event is fired. If the supplied function returns false,
- * the event will not fire.
- * @param {Observable} o The Observable to capture
- * @param {Function} fn The function to call
- * @param {Object} scope (optional) The scope (this object) for the fn
- * @static
- */
-Ext.util.Observable.capture = function(o, fn, scope){
-    o.fireEvent = o.fireEvent.createInterceptor(fn, scope);
-};
-
-/**
- * Removes <b>all</b> added captures from the Observable.
- * @param {Observable} o The Observable to release
- * @static
- */
-Ext.util.Observable.releaseCapture = function(o){
-    o.fireEvent = Ext.util.Observable.prototype.fireEvent;
-};
-
-(function(){
-
-    var createBuffered = function(h, o, scope){
-        var task = new Ext.util.DelayedTask();
-        return function(){
-            task.delay(o.buffer, h, scope, Array.prototype.slice.call(arguments, 0));
-        };
-    };
-
-    var createSingle = function(h, e, fn, scope){
-        return function(){
-            e.removeListener(fn, scope);
-            return h.apply(scope, arguments);
-        };
-    };
-
-    var createDelayed = function(h, o, scope){
-        return function(){
-            var args = Array.prototype.slice.call(arguments, 0);
-            setTimeout(function(){
-                h.apply(scope, args);
-            }, o.delay || 10);
-        };
-    };
-
-    Ext.util.Event = function(obj, name){
-        this.name = name;
-        this.obj = obj;
-        this.listeners = [];
-    };
-
-    Ext.util.Event.prototype = {
-        addListener : function(fn, scope, options){
-            var o = options || {};
-            scope = scope || this.obj;
-            if(!this.isListening(fn, scope)){
-                var l = {fn: fn, scope: scope, options: o};
-                var h = fn;
-                if(o.delay){
-                    h = createDelayed(h, o, scope);
-                }
-                if(o.single){
-                    h = createSingle(h, this, fn, scope);
-                }
-                if(o.buffer){
-                    h = createBuffered(h, o, scope);
-                }
-                l.fireFn = h;
-                if(!this.firing){ // if we are currently firing this event, don't disturb the listener loop
-                    this.listeners.push(l);
-                }else{
-                    this.listeners = this.listeners.slice(0);
-                    this.listeners.push(l);
-                }
-            }
-        },
-
-        findListener : function(fn, scope){
-            scope = scope || this.obj;
-            var ls = this.listeners;
-            for(var i = 0, len = ls.length; i < len; i++){
-                var l = ls[i];
-                if(l.fn == fn && l.scope == scope){
-                    return i;
-                }
-            }
-            return -1;
-        },
-
-        isListening : function(fn, scope){
-            return this.findListener(fn, scope) != -1;
-        },
-
-        removeListener : function(fn, scope){
-            var index;
-            if((index = this.findListener(fn, scope)) != -1){
-                if(!this.firing){
-                    this.listeners.splice(index, 1);
-                }else{
-                    this.listeners = this.listeners.slice(0);
-                    this.listeners.splice(index, 1);
-                }
-                return true;
-            }
-            return false;
-        },
-
-        clearListeners : function(){
-            this.listeners = [];
-        },
-
-        fire : function(){
-            var ls = this.listeners, scope, len = ls.length;
-            if(len > 0){
-                this.firing = true;
-                var args = Array.prototype.slice.call(arguments, 0);
-                for(var i = 0; i < len; i++){
-                    var l = ls[i];
-                    if(l.fireFn.apply(l.scope, arguments) === false){
-                        this.firing = false;
-                        return false;
-                    }
-                }
-                this.firing = false;
-            }
-            return true;
-        }
-    };
-})();

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/PagingToolbar.jss.html b/www/extras/extjs/docs/output/PagingToolbar.jss.html deleted file mode 100644 index cb54f2a43..000000000 --- a/www/extras/extjs/docs/output/PagingToolbar.jss.html +++ /dev/null @@ -1,261 +0,0 @@ -PagingToolbar.js

PagingToolbar.js

/**
- * @class Ext.PagingToolbar
- * @extends Ext.Toolbar
- * A specialized toolbar that is bound to a {@link Ext.data.Store} and provides automatic paging controls.
- * @constructor
- * Create a new PagingToolbar
- * @param {String/HTMLElement/Element} container The id or element that will contain the toolbar
- * @param {Ext.data.Store} store The underlying data store providing the paged data
- * @param {Object} config The config object
- */
-Ext.PagingToolbar = function(el, ds, config){
-    Ext.PagingToolbar.superclass.constructor.call(this, el, null, config);
-    this.ds = ds;
-    this.cursor = 0;
-    this.render(this.el);
-    this.bind(ds);
-};
-
-Ext.extend(Ext.PagingToolbar, Ext.Toolbar, {
-    /**
-     * @cfg {Number} pageSize
-     * The number of records to display per page (defaults to 20)
-     */
-    pageSize: 20,
-    /**
-     * @cfg {String} displayMsg
-     * The paging status message to display (defaults to "Displaying {start} - {end} of {total}")
-     */
-    displayMsg : 'Displaying {0} - {1} of {2}',
-    /**
-     * @cfg {String} emptyMsg
-     * The message to display when no records are found (defaults to "No data to display")
-     */
-    emptyMsg : 'No data to display',
-    /**
-     * Customizable piece of the default paging text (defaults to "Page")
-     * @type String
-     */
-    beforePageText : "Page",
-    /**
-     * Customizable piece of the default paging text (defaults to "of %0")
-     * @type String
-     */
-    afterPageText : "of {0}",
-    /**
-     * Customizable piece of the default paging text (defaults to "First Page")
-     * @type String
-     */
-    firstText : "First Page",
-    /**
-     * Customizable piece of the default paging text (defaults to "Previous Page")
-     * @type String
-     */
-    prevText : "Previous Page",
-    /**
-     * Customizable piece of the default paging text (defaults to "Next Page")
-     * @type String
-     */
-    nextText : "Next Page",
-    /**
-     * Customizable piece of the default paging text (defaults to "Last Page")
-     * @type String
-     */
-    lastText : "Last Page",
-    /**
-     * Customizable piece of the default paging text (defaults to "Refresh")
-     * @type String
-     */
-    refreshText : "Refresh",
-
-    // private
-    render : function(el){
-        this.first = this.addButton({
-            tooltip: this.firstText,
-            cls: "x-btn-icon x-grid-page-first",
-            disabled: true,
-            handler: this.onClick.createDelegate(this, ["first"])
-        });
-        this.prev = this.addButton({
-            tooltip: this.prevText,
-            cls: "x-btn-icon x-grid-page-prev",
-            disabled: true,
-            handler: this.onClick.createDelegate(this, ["prev"])
-        });
-        this.addSeparator();
-        this.add(this.beforePageText);
-        this.field = Ext.get(this.addDom({
-           tag: "input",
-           type: "text",
-           size: "3",
-           value: "1",
-           cls: "x-grid-page-number"
-        }).el);
-        this.field.on("keydown", this.onPagingKeydown, this);
-        this.field.on("focus", function(){this.dom.select();});
-        this.afterTextEl = this.addText(String.format(this.afterPageText, 1));
-        this.field.setHeight(18);
-        this.addSeparator();
-        this.next = this.addButton({
-            tooltip: this.nextText,
-            cls: "x-btn-icon x-grid-page-next",
-            disabled: true,
-            handler: this.onClick.createDelegate(this, ["next"])
-        });
-        this.last = this.addButton({
-            tooltip: this.lastText,
-            cls: "x-btn-icon x-grid-page-last",
-            disabled: true,
-            handler: this.onClick.createDelegate(this, ["last"])
-        });
-        this.addSeparator();
-        this.loading = this.addButton({
-            tooltip: this.refreshText,
-            cls: "x-btn-icon x-grid-loading",
-            disabled: true,
-            handler: this.onClick.createDelegate(this, ["refresh"])
-        });
-
-        if(this.displayInfo){
-            this.displayEl = this.el.createChild({cls:'x-paging-info'});
-        }
-    },
-
-    // private
-    updateInfo : function(){
-        if(this.displayEl){
-            var count = this.ds.getCount();
-            var msg = count == 0 ?
-                this.emptyMsg :
-                String.format(
-                    this.displayMsg,
-                    this.cursor+1, this.cursor+count, this.ds.getTotalCount()    
-                );
-            this.displayEl.update(msg);
-        }
-    },
-
-    // private
-    onLoad : function(ds, r, o){
-       this.cursor = o.params ? o.params.start : 0;
-       var d = this.getPageData(), ap = d.activePage, ps = d.pages;
-
-       this.afterTextEl.el.innerHTML = String.format(this.afterPageText, d.pages);
-       this.field.dom.value = ap;
-       this.first.setDisabled(ap == 1);
-       this.prev.setDisabled(ap == 1);
-       this.next.setDisabled(ap == ps);
-       this.last.setDisabled(ap == ps);
-       this.loading.enable();
-       this.updateInfo();
-    },
-
-    // private
-    getPageData : function(){
-        var total = this.ds.getTotalCount();
-        return {
-            total : total,
-            activePage : Math.ceil((this.cursor+this.pageSize)/this.pageSize),
-            pages :  total < this.pageSize ? 1 : Math.ceil(total/this.pageSize)
-        };
-    },
-
-    // private
-    onLoadError : function(){
-        this.loading.enable();
-    },
-
-    // private
-    onPagingKeydown : function(e){
-        var k = e.getKey();
-        var d = this.getPageData();
-        if(k == e.RETURN){
-            var v = this.field.dom.value, pageNum;
-            if(!v || isNaN(pageNum = parseInt(v, 10))){
-                this.field.dom.value = d.activePage;
-                return;
-            }
-            pageNum = Math.min(Math.max(1, pageNum), d.pages) - 1;
-            this.ds.load({params:{start: pageNum * this.pageSize, limit: this.pageSize}});
-            e.stopEvent();
-        }
-        else if(k == e.HOME || (k == e.UP && e.ctrlKey) || (k == e.PAGEUP && e.ctrlKey) || (k == e.RIGHT && e.ctrlKey) || k == e.END || (k == e.DOWN && e.ctrlKey) || (k == e.LEFT && e.ctrlKey) || (k == e.PAGEDOWN && e.ctrlKey))
-        {
-          var pageNum = (k == e.HOME || (k == e.DOWN && e.ctrlKey) || (k == e.LEFT && e.ctrlKey) || (k == e.PAGEDOWN && e.ctrlKey)) ? 1 : d.pages;
-          this.field.dom.value = pageNum;
-          this.ds.load({params:{start: (pageNum - 1) * this.pageSize, limit: this.pageSize}});
-          e.stopEvent();
-        }
-        else if(k == e.UP || k == e.RIGHT || k == e.PAGEUP || k == e.DOWN || k == e.LEFT || k == e.PAGEDOWN)
-        {
-          var v = this.field.dom.value, pageNum; 
-          var increment = (e.shiftKey) ? 10 : 1;
-          if(k == e.DOWN || k == e.LEFT || k == e.PAGEDOWN)
-            increment *= -1;
-          if(!v || isNaN(pageNum = parseInt(v, 10))) {
-            this.field.dom.value = d.activePage;
-            return;
-          }
-          else if(parseInt(v, 10) + increment >= 1 & parseInt(v, 10) + increment <= d.pages)
-          {
-            this.field.dom.value = parseInt(v, 10) + increment;
-            pageNum = Math.min(Math.max(1, pageNum + increment), d.pages) - 1;
-            this.ds.load({params:{start: pageNum * this.pageSize, limit: this.pageSize}});
-          }
-          e.stopEvent();
-        }
-    },
-
-    // private
-    beforeLoad : function(){
-        if(this.loading){
-            this.loading.disable();
-        }
-    },
-
-    // private
-    onClick : function(which){
-        var ds = this.ds;
-        switch(which){
-            case "first":
-                ds.load({params:{start: 0, limit: this.pageSize}});
-            break;
-            case "prev":
-                ds.load({params:{start: Math.max(0, this.cursor-this.pageSize), limit: this.pageSize}});
-            break;
-            case "next":
-                ds.load({params:{start: this.cursor+this.pageSize, limit: this.pageSize}});
-            break;
-            case "last":
-                var total = ds.getTotalCount();
-                var extra = total % this.pageSize;
-                var lastStart = extra ? (total - extra) : total-this.pageSize;
-                ds.load({params:{start: lastStart, limit: this.pageSize}});
-            break;
-            case "refresh":
-                ds.load({params:{start: this.cursor, limit: this.pageSize}});
-            break;
-        }
-    },
-
-    /**
-     * Unbinds the paging toolbar from the specified {@link Ext.data.Store}
-     * @param {Ext.data.Store} store The data store to unbind
-     */
-    unbind : function(ds){
-        ds.un("beforeload", this.beforeLoad, this);
-        ds.un("load", this.onLoad, this);
-        ds.un("loadexception", this.onLoadError, this);
-    },
-
-    /**
-     * Binds the paging toolbar to the specified {@link Ext.data.Store}
-     * @param {Ext.data.Store} store The data store to bind
-     */
-    bind : function(ds){
-        ds.on("beforeload", this.beforeLoad, this);
-        ds.on("load", this.onLoad, this);
-        ds.on("loadexception", this.onLoadError, this);
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Panel.jss.html b/www/extras/extjs/docs/output/Panel.jss.html deleted file mode 100644 index 01e0b83be..000000000 --- a/www/extras/extjs/docs/output/Panel.jss.html +++ /dev/null @@ -1,547 +0,0 @@ -Panel.js

Panel.js

Ext.Panel = function(config){
-    Ext.Panel.superclass.constructor.call(this, config);
-};
-
-Ext.extend(Ext.Panel, Ext.Container, {
-    baseCls : 'x-panel',
-    collapsedCls : 'x-panel-collapsed',
-    elements : 'header,body,footer',
-    maskDisabled: true,
-    collapsed : false,
-    animCollapse:Ext.enableFx,
-    toolTarget : 'header',
-    headerAsText:true,
-    buttonAlign:'right',
-    /**
-     * @cfg {Number} minButtonWidth Minimum width of all buttons (defaults to 75)
-     */
-    minButtonWidth:75,
-
-    initComponent : function(){
-        Ext.Panel.superclass.initComponent.call(this);
-        this.addEvents({
-            bodyresize : true,
-            titlechange: true,
-            collapse : true,
-            expand:true,
-            beforecollapse : true,
-            beforeexpand:true,
-
-            // these 4 events are only fired if used within
-            // a container that supports them
-            beforeclose: true,
-            close: true,
-            activate: true,
-            deactivate: true
-        });
-
-        // shortcuts
-        if(this.tbar){
-            this.elements += ',tbar';
-            if(typeof this.tbar == 'object'){
-                this.topToolbar = this.tbar;
-            }
-            delete this.tbar;
-        }
-        if(this.bbar){
-            this.elements += ',bbar';
-            if(typeof this.bbar == 'object'){
-                this.bottomToolbar = this.bbar;
-            }
-            delete this.bbar;
-        }
-
-        if(this.buttons){
-            var btns = this.buttons;
-            delete this.buttons;
-            for(var i = 0, len = btns.length; i < len; i++) {
-                this.addButton(btns[i]);
-            }
-        }
-    },
-
-    // private, notify box this class will handle heights
-    deferHeight:true,
-
-    createElement : function(name, pnode){
-        if(name !== 'bwrap' && this.elements.indexOf(name) == -1){
-            return;
-        }
-        if(this[name]){
-            pnode.appendChild(this[name].dom);
-        }else{
-            if(this[name+'Cfg']){
-                this[name] = Ext.fly(pnode).createChild(this[name+'Cfg']);
-            }else{
-                var el = document.createElement('div');
-                el.className = this[name+'Cls'];
-                this[name] = Ext.get(pnode.appendChild(el));
-            }
-        }
-    },
-
-    onRender : function(ct, position){
-        Ext.Panel.superclass.onRender.call(this, ct, position);
-
-        this.createClasses();
-
-        if(this.el){ // existing markup
-            this.header = this.el.down('.'+this.headerCls);
-            this.bwrap = this.el.down('.'+this.bwrapCls);
-            var cp = this.bwrap ? this.bwrap : this.el;
-            this.tbar = cp.down('.'+this.tbarCls);
-            this.body = cp.down('.'+this.bodyCls);
-            this.bbar = cp.down('.'+this.bbarCls);
-            this.footer = cp.down('.'+this.footerCls);
-        }else{
-            this.el = ct.createChild({
-                id: this.id,
-                cls: this.baseCls
-            }, position);
-        }
-        var el = this.el, d = el.dom;
-        if(this.cls){
-            this.el.addClass(this.cls);
-        }
-        // This block allows for maximum flexibility and performance when using existing markup
-
-        // framing requires special markup
-        if(this.frame){
-            el.insertHtml('afterBegin', String.format(Ext.Element.boxMarkup, this.baseCls));
-
-            this.createElement('header', d.firstChild.firstChild.firstChild);
-            this.createElement('bwrap', d);
-
-            // append the mid and bottom frame to the bwrap
-            var bw = this.bwrap.dom;
-            var ml = d.childNodes[1], bl = d.childNodes[2];
-            bw.appendChild(ml);
-            bw.appendChild(bl);
-
-            var mc = bw.firstChild.firstChild.firstChild;
-            this.createElement('tbar', mc);
-            this.createElement('body', mc);
-            this.createElement('bbar', mc);
-            this.createElement('footer', bw.lastChild.firstChild.firstChild);
-        }else{
-            this.createElement('header', d);
-            this.createElement('bwrap', d);
-
-            // append the mid and bottom frame to the bwrap
-            var bw = this.bwrap.dom;
-            this.createElement('tbar', bw);
-            this.createElement('body', bw);
-            this.createElement('bbar', bw);
-            this.createElement('footer', bw);
-
-            if(!this.header){
-                this.body.addClass(this.bodyCls + '-noheader');
-            }
-        }
-
-        this.bwrap.enableDisplayMode('block');
-
-        if(this.header){
-            this.header.unselectable();
-        }
-
-        if(this.iconCls){
-            this.header.addClass('x-panel-icon '+this.iconCls);
-        }
-
-        if(this.ownerCt){
-            this.el.addClass(this.baseCls + '-nested');
-        }
-
-        // for tools, we need to wrap any existing header markup
-        if(this.header && this.headerAsText){
-            this.header.dom.innerHTML =
-                '<span class="' + this.headerTextCls + '">'+this.header.dom.innerHTML+'</span>';
-        }
-        if(this.floating){
-            this.el = new Ext.Layer(
-                typeof this.floating == 'object' ? this.floating : {
-                    shadow:this.shadow||'sides', constrain:false, shim: this.shim === false ? false : undefined
-                }, this.el
-            );
-        }
-        if(this.collapsible){
-            this.tools = this.tools || [];
-            this.tools.unshift({
-                id: 'toggle',
-                on : {
-                    'click' : this.toggleCollapse,
-                    'scope': this
-                }
-            });
-        }
-        if(this.tools){
-            var ts = this.tools;
-            this.tools = {};
-            this.addTool.apply(this, ts);
-        }else{
-            this.tools = {};
-        }
-
-        if(this.buttons && this.buttons.length > 0){
-            // tables are required to maintain order and for correct IE layout
-            var tb = this.footer.createChild({cls:'x-panel-btns-ct', cn: {
-                cls:"x-panel-btns x-panel-btns-"+this.buttonAlign,
-                html:'<table cellspacing="0"><tbody><tr></tr></tbody></table><div class="x-clear"></div>'
-            }}, null, true);
-            var tr = tb.getElementsByTagName('tr')[0];
-            for(var i = 0, len = this.buttons.length; i < len; i++) {
-                var b = this.buttons[i];
-                var td = document.createElement('td');
-                td.className = 'x-panel-btn-td';
-                b.render(tr.appendChild(td));
-            }
-        }
-
-        if(this.tbar && this.topToolbar){
-            if(this.topToolbar instanceof Array){
-                this.topToolbar = new Ext.Toolbar(this.topToolbar);
-            }
-            this.topToolbar.render(this.tbar);
-        }
-        if(this.bbar && this.bottomToolbar){
-            if(this.bottomToolbar instanceof Array){
-                this.bottomToolbar = new Ext.Toolbar(this.bottomToolbar);
-            }
-            this.bottomToolbar.render(this.bbar);
-        }
-    },
-
-    // must be called before rendering
-    addButton : function(config, handler, scope){
-        var bc = {
-            handler: handler,
-            scope: scope,
-            minWidth: this.minButtonWidth,
-            hideParent:true
-        };
-        if(typeof config == "string"){
-            bc.text = config;
-        }else{
-            Ext.apply(bc, config);
-        }
-        var btn = new Ext.Button(null, bc);
-        if(!this.buttons){
-            this.buttons = [];
-        }
-        this.buttons.push(btn);
-        return btn;
-    },
-
-    addTool : function(){
-        if(!this.toolTemplate){
-            // initialize the global tool template on first use
-            var tt = new Ext.Template(
-                 '<div class="x-tool x-tool-{id}">&#160</div>'
-            );
-            tt.disableFormats = true;
-            tt.compile();
-            Ext.Panel.prototype.toolTemplate = tt;
-        }
-        for(var i = 0, a = arguments, len = a.length; i < len; i++) {
-            var tc = a[i];
-            var t = this.toolTemplate.insertFirst(this[this.toolTarget], tc, true);
-            this.tools[tc.id] = t;
-            t.enableDisplayMode('block');
-            if(tc.on){
-                t.on(tc.on);
-            }
-            if(tc.hidden){
-                t.hide();
-            }
-            t.addClassOnOver('x-tool-'+tc.id+'-over');
-        }
-    },
-
-    afterRender : function(){
-        if(this.floating && !this.hidden && !this.initHidden){
-            this.el.show();
-        }
-        if(this.title){
-            this.setTitle(this.title);
-        }
-        if(this.autoScroll){
-            this.body.dom.style.overflow = 'auto';
-        }
-        if(this.html){
-            this.body.update(this.html);
-            delete this.html;
-        }
-        if(this.contentEl){
-            this.body.dom.appendChild(Ext.getDom(this.contentEl));
-        }
-        if(this.loadContent){
-            this.load.defer(10, this, [this.loadContent]);
-            delete this.loadContent;
-        }
-        if(this.collapsed){
-            this.collapsed = false;
-            this.collapse(false);
-        }
-        Ext.Panel.superclass.afterRender.call(this); // do sizing calcs last
-        this.initEvents();
-    },
-
-    initEvents : function(){
-
-    },
-
-    beforeEffect : function(){
-        if(this.floating){
-            this.el.beforeAction();
-        }
-        if(Ext.isGecko){
-            this.body.clip();
-        }
-    },
-
-    afterEffect : function(){
-        this.syncShadow();
-        if(Ext.isGecko){
-            this.body.unclip();
-        }
-    },
-
-    // private - wraps up an animation param with internal callbacks
-    createEffect : function(a, cb, scope){
-        var o = {
-            scope:scope,
-            block:true
-        };
-        if(a === true){
-            o.callback = cb;
-            return o;
-        }else if(!a.callback){
-            o.callback = cb;
-        }else { // wrap it up
-            o.callback = function(){
-                cb.call(scope);
-                Ext.callback(a.callback, a.scope);
-            };
-        }
-        return Ext.applyIf(o, a);
-    },
-
-    collapse : function(animate){
-        if(this.collapsed || this.el.hasFxBlock() || this.fireEvent('beforecollapse', this, animate) === false){
-            return;
-        }
-        var a = animate === true || (animate !== false && this.animCollapse);
-        this.beforeEffect();
-        if(a){
-            this.bwrap.slideOut('t', this.createEffect(a, this.afterCollapse, this));
-        }else{
-            this.bwrap.hide();
-            this.afterCollapse();
-        }
-        return this;
-    },
-
-    afterCollapse : function(){
-        this.collapsed = true;
-        this.el.addClass(this.collapsedCls);
-        this.afterEffect();
-        this.fireEvent('collapse', this);
-    },
-
-    expand : function(animate){
-        if(!this.collapsed || this.el.hasFxBlock() || this.fireEvent('beforeexpand', this, animate) === false){
-            return;
-        }
-        var a = animate === true || (animate !== false && this.animCollapse);
-        this.el.removeClass(this.collapsedCls);
-        this.beforeEffect();
-        if(a){
-            this.bwrap.slideIn('t', this.createEffect(a, this.afterExpand, this));
-        }else{
-            this.bwrap.show();
-            this.afterExpand();
-        }
-        return this;
-    },
-
-    afterExpand : function(){
-        this.collapsed = false;
-        this.afterEffect();
-        this.fireEvent('expand', this);
-    },
-
-    toggleCollapse : function(animate){
-        this[this.collapsed ? 'expand' : 'collapse'](animate);
-        return this;
-    },
-
-    onDisable : function(){
-        if(this.rendered && this.maskDisabled){
-            this.el.mask();
-        }
-        Ext.Panel.superclass.onDisable.call(this);
-    },
-
-    onEnable : function(){
-        if(this.rendered && this.maskDisabled){
-            this.el.unmask();
-        }
-        Ext.Panel.superclass.onEnable.call(this);
-    },
-
-    onResize : function(w, h){
-        if(w !== undefined || h !== undefined){
-            if(typeof w == 'number'){
-                this.body.setWidth(w - this.getFrameWidth());
-            }else if(w == 'auto'){
-                this.body.setWidth(w);
-            }
-
-            if(typeof h == 'number'){
-                this.body.setHeight(h - this.getFrameHeight());
-            }else if(h == 'auto'){
-                this.body.setHeight(h);
-            }
-            this.syncShadow();
-            this.fireEvent('bodyresize', this, w, h);
-        }
-    },
-
-    onPosition : function(){
-        this.syncShadow();
-    },
-
-    getFrameWidth : function(){
-        var w = this.el.getFrameWidth('lr');
-
-        if(this.frame){
-            var l = this.bwrap.dom.firstChild;
-            w += (Ext.fly(l).getFrameWidth('l') + Ext.fly(l.firstChild).getFrameWidth('r'));
-            var mc = this.bwrap.dom.firstChild.firstChild.firstChild;
-            w += Ext.fly(mc).getFrameWidth('lr');
-        }
-        return w;
-    },
-
-    getFrameHeight : function(){
-        var h  = this.el.getFrameWidth('tb');
-        h += (this.tbar ? this.tbar.getHeight() : 0) +
-             (this.bbar ? this.bbar.getHeight() : 0);
-
-        if(this.frame){
-            var hd = this.el.dom.firstChild;
-            var ft = this.bwrap.dom.lastChild;
-            h += (hd.offsetHeight + ft.offsetHeight);
-            var mc = this.bwrap.dom.firstChild.firstChild.firstChild;
-            h += Ext.fly(mc).getFrameWidth('tb');
-        }else{
-            h += (this.header ? this.header.getHeight() : 0) +
-                (this.footer ? this.footer.getHeight() : 0);
-        }
-        return h;
-    },
-
-    getInnerWidth : function(){
-        return this.getSize().width - this.getFrameWidth();
-    },
-
-    getInnerHeight : function(){
-        return this.getSize().height - this.getFrameHeight();
-    },
-
-    syncShadow : function(){
-        if(this.floating){
-            this.el.sync(true);
-        }
-    },
-
-    getLayoutTarget : function(){
-        return this.body;
-    },
-
-    setTitle : function(title){
-        this.title = title;
-        if(this.header && this.headerAsText){
-            this.header.child('span').update(title);
-            this.fireEvent('titlechange', this, title);
-        }
-        return this;
-    },
-
-    /**
-     * Get the {@link Ext.UpdateManager} for this panel. Enables you to perform Ajax updates.
-     * @return {Ext.UpdateManager} The UpdateManager
-     */
-    getUpdateManager : function(){
-        return this.body.getUpdateManager();
-    },
-
-     /**
-     * Loads this content panel immediately with content from XHR.
-     * @param {Object/String/Function} config A config object containing any of the following options:
-<pre><code>
-panel.load({<br/>
-    url: "your-url.php",<br/>
-    params: {param1: "foo", param2: "bar"}, // or a URL encoded string<br/>
-    callback: yourFunction,<br/>
-    scope: yourObject, //(optional scope)  <br/>
-    discardUrl: false, <br/>
-    nocache: false,<br/>
-    text: "Loading...",<br/>
-    timeout: 30,<br/>
-    scripts: false<br/>
-});
-</code></pre>
-     * The only required property is url. The optional properties nocache, text and scripts
-     * are shorthand for disableCaching, indicatorText and loadScripts and are used to set their
-     * associated property on this panel UpdateManager instance.
-     * @return {Ext.Panel} this
-     */
-    load : function(){
-        var um = this.body.getUpdateManager();
-        um.update.apply(um, arguments);
-        return this;
-    },
-
-    beforeDestroy : function(){
-        Ext.Element.uncache(
-            this.header,
-            this.tbar,
-            this.bbar,
-            this.footer,
-            this.body
-        );
-    },
-
-    createClasses : function(){
-        this.headerCls = this.baseCls + '-header';
-        this.headerTextCls = this.baseCls + '-header-text';
-        this.bwrapCls = this.baseCls + '-bwrap';
-        this.tbarCls = this.baseCls + '-tbar';
-        this.bodyCls = this.baseCls + '-body';
-        this.bbarCls = this.baseCls + '-bbar';
-        this.footerCls = this.baseCls + '-footer';
-    },
-
-    createGhost : function(cls, useShim, preventAppend){
-        var el = document.createElement('div');
-        el.className = 'x-panel-ghost ' + (cls ? cls : '');
-        if(this.header){
-            el.appendChild(this.el.dom.firstChild.cloneNode(true));
-        }
-        Ext.fly(el.appendChild(document.createElement('ul'))).setSize(this.bwrap.getSize());
-        if(!preventAppend){
-            this.container.dom.appendChild(el);
-        }
-        if(useShim !== false && this.el.useShim !== false){
-            var layer = new Ext.Layer({shadow:false, useDisplay:true, constrain:false}, el);
-            layer.show();
-            return layer;
-        }else{
-            return new Ext.Element(el);
-        }
-    }
-});
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/PropertyGrid.jss.html b/www/extras/extjs/docs/output/PropertyGrid.jss.html deleted file mode 100644 index d7619e490..000000000 --- a/www/extras/extjs/docs/output/PropertyGrid.jss.html +++ /dev/null @@ -1,201 +0,0 @@ -PropertyGrid.js

PropertyGrid.js

Ext.grid.PropertyRecord = Ext.data.Record.create([
-    {name:'name',type:'string'}, 'value'
-]);
-
-Ext.grid.PropertyStore = function(grid, source){
-    this.grid = grid;
-    this.store = new Ext.data.Store({
-        recordType : Ext.grid.PropertyRecord
-    });
-    this.store.on('update', this.onUpdate,  this);
-    if(source){
-        this.setSource(source);
-    }
-    Ext.grid.PropertyStore.superclass.constructor.call(this);
-};
-Ext.extend(Ext.grid.PropertyStore, Ext.util.Observable, {
-    setSource : function(o){
-        this.source = o;
-        this.store.removeAll();
-        var data = [];
-        for(var k in o){
-            if(this.isEditableValue(o[k])){
-                data.push(new Ext.grid.PropertyRecord({name: k, value: o[k]}, k));
-            }
-        }
-        this.store.loadRecords({records: data}, {}, true);
-    },
-
-    onUpdate : function(ds, record, type){
-        if(type == Ext.data.Record.EDIT){
-            var v = record.data['value'];
-            var oldValue = record.modified['value'];
-            if(this.grid.fireEvent('beforepropertychange', this.source, record.id, v, oldValue) !== false){
-                this.source[record.id] = v;
-                record.commit();
-                this.grid.fireEvent('propertychange', this.source, record.id, v, oldValue);
-            }else{
-                record.reject();
-            }
-        }
-    },
-
-    getProperty : function(row){
-       return this.store.getAt(row);
-    },
-
-    isEditableValue: function(val){
-        if(val && val instanceof Date){
-            return true;
-        }else if(typeof val == 'object' || typeof val == 'function'){
-            return false;
-        }
-        return true;
-    },
-
-    setValue : function(prop, value){
-        this.source[prop] = value;
-        this.store.getById(prop).set('value', value);
-    },
-
-    getSource : function(){
-        return this.source;
-    }
-});
-
-Ext.grid.PropertyColumnModel = function(grid, store){
-    this.grid = grid;
-    var g = Ext.grid;
-    g.PropertyColumnModel.superclass.constructor.call(this, [
-        {header: this.nameText, sortable: true, dataIndex:'name', id: 'name'},
-        {header: this.valueText, resizable:false, dataIndex: 'value', id: 'value'}
-    ]);
-    this.store = store;
-    this.bselect = Ext.DomHelper.append(document.body, {
-        tag: 'select', style:'display:none', cls: 'x-grid-editor', children: [
-            {tag: 'option', value: 'true', html: 'true'},
-            {tag: 'option', value: 'false', html: 'false'}
-        ]
-    });
-    Ext.id(this.bselect);
-    var f = Ext.form;
-    this.editors = {
-        'date' : new g.GridEditor(new f.DateField({selectOnFocus:true})),
-        'string' : new g.GridEditor(new f.TextField({selectOnFocus:true})),
-        'number' : new g.GridEditor(new f.NumberField({selectOnFocus:true, style:'text-align:left;'})),
-        'boolean' : new g.GridEditor(new f.Field({el:this.beselect,selectOnFocus:true}))
-    };
-    this.renderCellDelegate = this.renderCell.createDelegate(this);
-    this.renderPropDelegate = this.renderProp.createDelegate(this);
-};
-
-Ext.extend(Ext.grid.PropertyColumnModel, Ext.grid.ColumnModel, {
-    nameText : 'Name',
-    valueText : 'Value',
-    dateFormat : 'm/j/Y',
-    renderDate : function(dateVal){
-        return dateVal.dateFormat(this.dateFormat);
-    },
-
-    renderBool : function(bVal){
-        return bVal ? 'true' : 'false';
-    },
-
-    isCellEditable : function(colIndex, rowIndex){
-        return colIndex == 1;
-    },
-
-    getRenderer : function(col){
-        return col == 1 ?
-            this.renderCellDelegate : this.renderPropDelegate;
-    },
-
-    renderProp : function(v){
-        return this.getPropertyName(v);
-    },
-
-    renderCell : function(val){
-        var rv = val;
-        if(val instanceof Date){
-            rv = this.renderDate(val);
-        }else if(typeof val == 'boolean'){
-            rv = this.renderBool(val);
-        }
-        return Ext.util.Format.htmlEncode(rv);
-    },
-
-    getPropertyName : function(name){
-        var pn = this.grid.propertyNames;
-        return pn && pn[name] ? pn[name] : name;
-    },
-
-    getCellEditor : function(colIndex, rowIndex){
-        var p = this.store.getProperty(rowIndex);
-        var n = p.data['name'], val = p.data['value'];
-        if(this.grid.customEditors[n]){
-            return this.grid.customEditors[n];
-        }
-        if(val instanceof Date){
-            return this.editors['date'];
-        }else if(typeof val == 'number'){
-            return this.editors['number'];
-        }else if(typeof val == 'boolean'){
-            return this.editors['boolean'];
-        }else{
-            return this.editors['string'];
-        }
-    }
-});
-
-Ext.grid.PropertyGrid = function(container, config){
-    config = config || {};
-    var store = new Ext.grid.PropertyStore(this);
-    this.store = store;
-    var cm = new Ext.grid.PropertyColumnModel(this, store);
-    store.store.sort('name', 'ASC');
-    Ext.grid.PropertyGrid.superclass.constructor.call(this, container, Ext.apply({
-        ds: store.store,
-        cm: cm,
-        enableColLock:false,
-        enableColumnMove:false,
-        stripeRows:false,
-        trackMouseOver: false,
-        clicksToEdit:1
-    }, config));
-    this.container.addClass('x-props-grid');
-    this.lastEditRow = null;
-    this.on('columnresize', this.onColumnResize, this);
-    this.addEvents({
-        beforepropertychange: true,
-        propertychange: true
-    });
-    this.customEditors = this.customEditors || {};
-};
-Ext.extend(Ext.grid.PropertyGrid, Ext.grid.EditorGrid, {
-    render : function(){
-        Ext.grid.PropertyGrid.superclass.render.call(this);
-        this.autoSize.defer(100, this);
-    },
-
-    autoSize : function(){
-        Ext.grid.PropertyGrid.superclass.autoSize.call(this);
-        if(this.view){
-            this.view.fitColumns();
-        }
-    },
-
-    onColumnResize : function(){
-        this.colModel.setColumnWidth(1, this.container.getWidth(true)-this.colModel.getColumnWidth(0));
-        this.autoSize();
-    },
-
-    setSource : function(source){
-        this.store.setSource(source);
-        //this.autoSize();
-    },
-
-    getSource : function(){
-        return this.store.getSource();
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/QuickTips.jss.html b/www/extras/extjs/docs/output/QuickTips.jss.html deleted file mode 100644 index 16af142ce..000000000 --- a/www/extras/extjs/docs/output/QuickTips.jss.html +++ /dev/null @@ -1,358 +0,0 @@ -QuickTips.js

QuickTips.js

/**
- * @class Ext.QuickTips
- * Provides attractive and customizable tooltips for any element.
- * @singleton
- */
-Ext.QuickTips = function(){
-    var el, tipBody, tipBodyText, tipTitle, tm, cfg, close, tagEls = {}, esc, removeCls = null, bdLeft, bdRight;
-    var ce, bd, xy, dd;
-    var visible = false, disabled = true, inited = false;
-    var showProc = 1, hideProc = 1, dismissProc = 1, locks = [];
-    
-    var onOver = function(e){
-        if(disabled){
-            return;
-        }
-        var t = e.getTarget();
-        if(!t || t.nodeType !== 1 || t == document || t == document.body){
-            return;
-        }
-        if(ce && t == ce.el){
-            clearTimeout(hideProc);
-            return;
-        }
-        if(t && tagEls[t.id]){
-            tagEls[t.id].el = t;
-            showProc = show.defer(tm.showDelay, tm, [tagEls[t.id]]);
-            return;
-        }
-        var ttp, et = Ext.fly(t);
-        var ns = cfg.namespace;
-        if(tm.interceptTitles && t.title){
-            ttp = t.title;
-            t.qtip = ttp;
-            t.removeAttribute("title");
-            e.preventDefault();
-        }else{
-            ttp = t.qtip || et.getAttributeNS(ns, cfg.attribute);
-        }
-        if(ttp){
-            showProc = show.defer(tm.showDelay, tm, [{
-                el: t, 
-                text: ttp, 
-                width: et.getAttributeNS(ns, cfg.width),
-                autoHide: et.getAttributeNS(ns, cfg.hide) != "user",
-                title: et.getAttributeNS(ns, cfg.title),
-           	    cls: et.getAttributeNS(ns, cfg.cls)
-            }]);
-        }
-    };
-    
-    var onOut = function(e){
-        clearTimeout(showProc);
-        var t = e.getTarget();
-        if(t && ce && ce.el == t && (tm.autoHide && ce.autoHide !== false)){
-            hideProc = setTimeout(hide, tm.hideDelay);
-        }
-    };
-    
-    var onMove = function(e){
-        if(disabled){
-            return;
-        }
-        xy = e.getXY();
-        xy[1] += 18;
-        if(tm.trackMouse && ce){
-            el.setXY(xy);
-        }
-    };
-    
-    var onDown = function(e){
-        clearTimeout(showProc);
-        clearTimeout(hideProc);
-        if(!e.within(el)){
-            if(tm.hideOnClick){
-                hide();
-                tm.disable();
-            }
-        }
-    };
-    
-    var onUp = function(e){
-        tm.enable();
-    };
-
-    var getPad = function(){
-        return bdLeft.getPadding('l')+bdRight.getPadding('r');
-    };
-
-    var show = function(o){
-        if(disabled){
-            return;
-        }
-        clearTimeout(dismissProc);
-        ce = o;
-        if(removeCls){ // in case manually hidden
-            el.removeClass(removeCls);
-            removeCls = null;
-        }
-        if(ce.cls){
-            el.addClass(ce.cls);
-            removeCls = ce.cls;
-        }
-        if(ce.title){
-            tipTitle.update(ce.title);
-            tipTitle.show();
-        }else{
-            tipTitle.update('');
-            tipTitle.hide();
-        }
-        el.dom.style.width  = tm.maxWidth+'px';
-        //tipBody.dom.style.width = '';
-        tipBodyText.update(o.text);
-        var p = getPad(), w = ce.width;
-        if(!w){
-            var td = tipBodyText.dom;
-            var aw = Math.max(td.offsetWidth, td.clientWidth, td.scrollWidth);
-            if(aw > tm.maxWidth){
-                w = tm.maxWidth;
-            }else if(aw < tm.minWidth){
-                w = tm.minWidth;
-            }else{
-                w = aw;
-            }
-        }
-        //tipBody.setWidth(w);
-        el.setWidth(parseInt(w, 10) + p);
-        if(!ce.autoHide){
-            close.setDisplayed(true);
-            if(dd){
-                dd.unlock();
-            }
-        }else{
-            close.setDisplayed(false);
-            if(dd){
-                dd.lock();
-            }
-        }
-        if(xy){
-            el.avoidY = xy[1]-18;
-            el.setXY(xy);
-        }
-        if(tm.animate){
-            el.setOpacity(.1);
-            el.setStyle("visibility", "visible");
-            el.fadeIn({callback: afterShow});
-        }else{
-            afterShow();
-        }
-    };
-    
-    var afterShow = function(){
-        if(ce){
-            el.show();
-            esc.enable();
-            if(tm.autoDismiss && ce.autoHide !== false){
-                dismissProc = setTimeout(hide, tm.autoDismissDelay);
-            }
-        }
-    };
-    
-    var hide = function(noanim){
-        clearTimeout(dismissProc);
-        clearTimeout(hideProc);
-        ce = null;
-        if(el.isVisible()){
-            esc.disable();
-            if(noanim !== true && tm.animate){
-                el.fadeOut({callback: afterHide});
-            }else{
-                afterHide();
-            } 
-        }
-    };
-    
-    var afterHide = function(){
-        el.hide();
-        if(removeCls){
-            el.removeClass(removeCls);
-            removeCls = null;
-        }
-    };
-    
-    return {
-        /**
-        * @cfg {Number} minWidth
-        * The minimum width of the quick tip (defaults to 40)
-        */
-       minWidth : 40,
-        /**
-        * @cfg {Number} maxWidth
-        * The maximum width of the quick tip (defaults to 300)
-        */
-       maxWidth : 300,
-        /**
-        * @cfg {Boolean} interceptTitles
-        * True to automatically use the element's DOM title value if available (defaults to false)
-        */
-       interceptTitles : false,
-        /**
-        * @cfg {Boolean} trackMouse
-        * True to have the quick tip follow the mouse as it moves over the target element (defaults to false)
-        */
-       trackMouse : false,
-        /**
-        * @cfg {Boolean} hideOnClick
-        * True to hide the quick tip if the user clicks anywhere in the document (defaults to true)
-        */
-       hideOnClick : true,
-        /**
-        * @cfg {Number} showDelay
-        * Delay in milliseconds before the quick tip displays after the mouse enters the target element (defaults to 500)
-        */
-       showDelay : 500,
-        /**
-        * @cfg {Number} hideDelay
-        * Delay in milliseconds before the quick tip hides when autoHide = true (defaults to 200)
-        */
-       hideDelay : 200,
-        /**
-        * @cfg {Boolean} autoHide
-        * True to automatically hide the quick tip after the mouse exits the target element (defaults to true).
-        * Used in conjunction with hideDelay.
-        */
-       autoHide : true,
-        /**
-        * @cfg {Boolean}
-        * True to automatically hide the quick tip after a set period of time, regardless of the user's actions
-        * (defaults to true).  Used in conjunction with autoDismissDelay.
-        */
-       autoDismiss : true,
-        /**
-        * @cfg {Number}
-        * Delay in milliseconds before the quick tip hides when autoDismiss = true (defaults to 5000)
-        */
-       autoDismissDelay : 5000,
-       /**
-        * @cfg {Boolean} animate
-        * True to turn on fade animation. Defaults to false (ClearType/scrollbar flicker issues in IE7).
-        */
-       animate : false,
-               
-        // private
-       init : function(){
-          tm = Ext.QuickTips;
-          cfg = tm.tagConfig;
-          if(!inited){
-              el = new Ext.Layer({cls:"x-tip", shadow:"drop", shim: true, constrain:true, shadowOffset:3});
-              el.fxDefaults = {stopFx: true};
-              // maximum custom styling
-              el.update('<div class="x-tip-top-left"><div class="x-tip-top-right"><div class="x-tip-top"></div></div></div><div class="x-tip-bd-left"><div class="x-tip-bd-right"><div class="x-tip-bd"><div class="x-tip-close"></div><h3></h3><div class="x-tip-bd-inner"></div><div class="x-clear"></div></div></div></div><div class="x-tip-ft-left"><div class="x-tip-ft-right"><div class="x-tip-ft"></div></div></div>');
-              tipTitle = el.child('h3');
-              tipTitle.enableDisplayMode("block");
-              tipBody = el.child('div.x-tip-bd');
-              tipBodyText = el.child('div.x-tip-bd-inner');
-              bdLeft = el.child('div.x-tip-bd-left');
-              bdRight = el.child('div.x-tip-bd-right');
-              close = el.child('div.x-tip-close');
-              close.enableDisplayMode("block");
-              close.on("click", hide);
-              d = Ext.get(document);
-              d.on("mousedown", onDown);
-              d.on("mouseup", onUp);
-              d.on("mouseover", onOver);
-              d.on("mouseout", onOut);
-              d.on("mousemove", onMove);
-              esc = d.addKeyListener(27, hide);
-              esc.disable();
-              if(Ext.dd.DD){
-                  dd = el.initDD("default", null, {
-                      onDrag : function(){
-                          el.sync();  
-                      }
-                  });
-                  dd.setHandleElId(tipTitle.id);
-                  dd.lock();
-              }
-              inited = true;
-          }
-          this.enable(); 
-       },
-
-    /**
-     * Configures a new quick tip instance and assigns it to a target element
-     * @param {Object} config The config object
-     */
-       register : function(config){
-           var cs = config instanceof Array ? config : arguments;
-           for(var i = 0, len = cs.length; i < len; i++) {
-               var c = cs[i];
-               var target = c.target;
-               if(target){
-                   if(target instanceof Array){
-                       for(var j = 0, jlen = target.length; j < jlen; j++){
-                           tagEls[target[j]] = c;
-                       }
-                   }else{
-                       tagEls[typeof target == 'string' ? target : Ext.id(target.id)] = c;
-                   }
-               }
-           }
-       },
-
-    /**
-     * Removes this quick tip from its element and destroys it
-     */
-       unregister : function(el){
-           delete tagEls[Ext.id(el)];
-       },
-
-    /**
-     * Enable this quick tip
-     */
-       enable : function(){
-           if(inited){
-               locks.pop();
-               if(locks.length < 1){
-                   disabled = false;
-               }
-           }
-       },
-
-    /**
-     * Disable this quick tip
-     */
-       disable : function(){
-          disabled = true;
-          clearTimeout(showProc);
-          clearTimeout(hideProc);
-          clearTimeout(dismissProc);
-          if(ce){
-              hide(true);
-          }
-          locks.push(1);
-       },
-
-    /**
-     * Returns true if the quick tip is enabled, else false
-     */
-       isEnabled : function(){
-            return !disabled;
-       },
-
-        // private
-       tagConfig : {
-           namespace : "ext",
-           attribute : "qtip",
-           width : "width",
-           target : "target",
-           title : "qtitle",
-           hide : "hide",
-           cls : "qclass"
-       }
-   };
-}();
-
-// backwards compat
-Ext.QuickTips.tips = Ext.QuickTips.register;

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Radio.jss.html b/www/extras/extjs/docs/output/Radio.jss.html deleted file mode 100644 index 5b8e4bcd5..000000000 --- a/www/extras/extjs/docs/output/Radio.jss.html +++ /dev/null @@ -1,16 +0,0 @@ -Radio.js

Radio.js

/**
- * @class Ext.form.Radio
- * @extends Ext.form.Checkbox
- * Single radio field.  Same as Checkbox, but provided as a convenience for automatically setting the input type.
- * Radio grouping is handled automatically by the browser if you give each radio in a group the same name.
- * @constructor
- * Creates a new Radio
- * @param {Object} config Configuration options
- */
-Ext.form.Radio = function(){
-    Ext.form.Radio.superclass.constructor.apply(this, arguments);
-};
-Ext.extend(Ext.form.Radio, Ext.form.Checkbox, {
-    inputType: 'radio'
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ReaderLayout.jss.html b/www/extras/extjs/docs/output/ReaderLayout.jss.html deleted file mode 100644 index 1292ac077..000000000 --- a/www/extras/extjs/docs/output/ReaderLayout.jss.html +++ /dev/null @@ -1,98 +0,0 @@ -ReaderLayout.js

ReaderLayout.js

/**
- * @class Ext.ReaderLayout
- * @extends Ext.BorderLayout
- * This is a pre-built layout that represents a classic, 5-pane application.  It consists of a header, a primary
- * center region containing two nested regions (a top one for a list view and one for item preview below),
- * and regions on either side that can be used for navigation, application commands, informational displays, etc.
- * The setup and configuration work exactly the same as it does for a {@link Ext.BorderLayout} - this class simply
- * expedites the setup of the overall layout and regions for this common application style.
- * Example:
- <pre><code>
-var reader = new Ext.ReaderLayout();
-var CP = Ext.ContentPanel;  // shortcut for adding
-
-reader.beginUpdate();
-reader.add("north", new CP("north", "North"));
-reader.add("west", new CP("west", {title: "West"}));
-reader.add("east", new CP("east", {title: "East"}));
-
-reader.regions.listView.add(new CP("listView", "List"));
-reader.regions.preview.add(new CP("preview", "Preview"));
-reader.endUpdate();
-</code></pre>
-* @constructor
-* Create a new ReaderLayout
-* @param {Object} config Configuration options
-* @param {String/HTMLElement/Element} container (optional) The container this layout is bound to (defaults to
-* document.body if omitted)
-*/
-Ext.ReaderLayout = function(config, renderTo){
-    var c = config || {size:{}};
-    Ext.ReaderLayout.superclass.constructor.call(this, renderTo || document.body, {
-        north: c.north !== false ? Ext.apply({
-            split:false,
-            initialSize: 32,
-            titlebar: false
-        }, c.north) : false,
-        west: c.west !== false ? Ext.apply({
-            split:true,
-            initialSize: 200,
-            minSize: 175,
-            maxSize: 400,
-            titlebar: true,
-            collapsible: true,
-            animate: true,
-            margins:{left:5,right:0,bottom:5,top:5},
-            cmargins:{left:5,right:5,bottom:5,top:5}
-        }, c.west) : false,
-        east: c.east !== false ? Ext.apply({
-            split:true,
-            initialSize: 200,
-            minSize: 175,
-            maxSize: 400,
-            titlebar: true,
-            collapsible: true,
-            animate: true,
-            margins:{left:0,right:5,bottom:5,top:5},
-            cmargins:{left:5,right:5,bottom:5,top:5}
-        }, c.east) : false,
-        center: Ext.apply({
-            tabPosition: 'top',
-            autoScroll:false,
-            closeOnTab: true,
-            titlebar:false,
-            margins:{left:c.west!==false ? 0 : 5,right:c.east!==false ? 0 : 5,bottom:5,top:2}
-        }, c.center)
-    });
-
-    this.el.addClass('x-reader');
-
-    this.beginUpdate();
-
-    var inner = new Ext.BorderLayout(Ext.get(document.body).createChild(), {
-        south: c.preview !== false ? Ext.apply({
-            split:true,
-            initialSize: 200,
-            minSize: 100,
-            autoScroll:true,
-            collapsible:true,
-            titlebar: true,
-            cmargins:{top:5,left:0, right:0, bottom:0}
-        }, c.preview) : false,
-        center: Ext.apply({
-            autoScroll:false,
-            titlebar:false,
-            minHeight:200
-        }, c.listView)
-    });
-    this.add('center', new Ext.NestedLayoutPanel(inner,
-            Ext.apply({title: c.mainTitle || '',tabTip:''},c.innerPanelCfg)));
-
-    this.endUpdate();
-
-    this.regions.preview = inner.getRegion('south');
-    this.regions.listView = inner.getRegion('center');
-};
-
-Ext.extend(Ext.ReaderLayout, Ext.BorderLayout);

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Record.jss.html b/www/extras/extjs/docs/output/Record.jss.html deleted file mode 100644 index 93d379528..000000000 --- a/www/extras/extjs/docs/output/Record.jss.html +++ /dev/null @@ -1,209 +0,0 @@ -Record.js

Record.js

/**
-* @class Ext.data.Record
- * Instances of this class encapsulate both record <em>definition</em> information, and record
- * <em>value</em> information for use in {@link Ext.data.Store} objects, or any code which needs
- * to access Records cached in an {@link Ext.data.Store} object.
- * <p>
- * Constructors for this class are generated by passing an Array of field definition objects to {@link #create}
- * and instances are usually only created by {@link Ext.data.Reader} objects when processing unformatted data
- * objects.
- * <p>
- * Record objects generated by this constructor inherit all the methods of Ext.data.Record listed below.
- * @constructor
- * This constructor should not be used to create Record objects. Instead, use the constructor generated by
- * {@link #create}. The parameters are the same.
- * @param data {Array} An associative Array of data values keyed by the field name.
- * @param id (Optional) The id of the record. This id should be unique, and is used by the
- * @link Ext.data.Store} object which owns the Record to index its collection of Records. If
- * not specified an integer id is generated.
- */
-Ext.data.Record = function(data, id){
-    this.id = (id || id === 0) ? id : ++Ext.data.Record.AUTO_ID;
-    this.data = data;
-};
-
-/**
- * Generate a constructor for a specific record layout.
- * @param {Array} o An Array of field definition objects which specify field names, and optionally,
- * data types, and a mapping for an {@link Ext.data.Reader} to extract the field's value from a data object.
- * Each field definition object may contain the following properties: <ul>
- * <li>name {String} The name by which the field is referenced within the Record. This is referenced by,
- * for example the <em>dataIndex</em> property in column definition objects passed to {@link Ext.grid.ColumnModel}</li>
- * <li>mapping {String} (Optional) A path specification for use by the {@link Ext.data.Reader} implementation
- * that is creating the Record to access the data value from the data object. If an {@link Ext.data.JsonReader}
- * is being used, then this is a string containing the javascript expression to reference the data relative to 
- * the record item's root. If an {@link Ext.data.XmlReader} is being used, this is an {@link Ext.DomQuery} path
- * to the data item relative to the record element. If the mapping expression is the same as the field name,
- * this may be omitted.</li>
- * <li>type {String} (Optional) The data type for conversion to displayable value. Possible values are
- * <ul><li>auto (Default, implies no conversion)</li>
- * <li>string</li>
- * <li>int</li>
- * <li>float</li>
- * <li>boolean</li>
- * <li>date</li></ul></li>
- * <li>sortType {Mixed} (Optional) A member of {@link Ext.data.SortTypes}.</li>
- * <li>sortDir {String} (Optional) Initial direction to sort. "ASC" or "DESC"</li>
- * <li>convert {Function} (Optional) A function which accepts a data value and returns it formatted for display.</li>
- * <li>dateFormat {String} (Optional) A format String for the Date.parseDate function.</li>
- * </ul>
- * <br>usage:<br><pre><code>
-    var TopicRecord = Ext.data.Record.create(
-        {name: 'title', mapping: 'topic_title'},
-        {name: 'author', mapping: 'username'},
-        {name: 'totalPosts', mapping: 'topic_replies', type: 'int'},
-        {name: 'lastPost', mapping: 'post_time', type: 'date'},
-        {name: 'lastPoster', mapping: 'user2'},
-        {name: 'excerpt', mapping: 'post_text'}
-    );
-    
-    var myNewRecord = new TopicRecord({
-        title: 'Do my job please',
-        author: 'noobie',
-        totalPosts: 1,
-        lastPost: new Date(),
-        lastPoster: 'Animal',
-        excerpt: 'No way dude!'
-    });
-    myStore.add(myNewRecord);
-</code></pre>
- */
-Ext.data.Record.create = function(o){
-    var f = function(){
-        f.superclass.constructor.apply(this, arguments);
-    };
-    Ext.extend(f, Ext.data.Record);
-    var p = f.prototype;
-    p.fields = new Ext.util.MixedCollection(false, function(field){
-        return field.name;
-    });
-    for(var i = 0, len = o.length; i < len; i++){
-        p.fields.add(new Ext.data.Field(o[i]));
-    }
-    f.getField = function(name){
-        return p.fields.get(name);  
-    };
-    return f;
-};
-
-Ext.data.Record.AUTO_ID = 1000;
-Ext.data.Record.EDIT = 'edit';
-Ext.data.Record.REJECT = 'reject';
-Ext.data.Record.COMMIT = 'commit';
-
-Ext.data.Record.prototype = {
-    /**
-     * Readonly flag - true if this record has been modified.
-     * @type Boolean
-     */
-    dirty : false,
-    editing : false,
-    error: null,
-    modified: null,
-
-    // private
-    join : function(store){
-        this.store = store;
-    },
-
-    /**
-     * Set the named field to the specified value.
-     * @param name {String} The name of the field to set.
-     * @param value {Object} The value to set the field to.
-     */
-    set : function(name, value){
-        if(this.data[name] == value){
-            return;
-        }
-        this.dirty = true;
-        if(!this.modified){
-            this.modified = {};
-        }
-        if(typeof this.modified[name] == 'undefined'){
-            this.modified[name] = this.data[name];
-        }
-        this.data[name] = value;
-        if(!this.editing){
-            this.store.afterEdit(this);
-        }       
-    },
-
-    /**
-     * Get the value of the named field.
-     * @param name {String} The name of the field to get the value of.
-     * @return {Object} The value of the field.
-     */
-    get : function(name){
-        return this.data[name]; 
-    },
-
-    // private
-    beginEdit : function(){
-        this.editing = true;
-        this.modified = {}; 
-    },
-
-    // private
-    cancelEdit : function(){
-        this.editing = false;
-        delete this.modified;
-    },
-
-    // private
-    endEdit : function(){
-        this.editing = false;
-        if(this.dirty && this.store){
-            this.store.afterEdit(this);
-        }
-    },
-
-    /**
-     * Usually called by the {@link Ext.data.Store} which owns the Record.
-     * Rejects all changes made to the Record since either creation, or the last commit operation.
-     * Modified fields are reverted to their original values.
-     * <p>
-     * Developers should subscribe to the {@link Ext.data.Store#update} event to have their code notified
-     * of reject operations.
-     */
-    reject : function(){
-        var m = this.modified;
-        for(var n in m){
-            if(typeof m[n] != "function"){
-                this.data[n] = m[n];
-            }
-        }
-        this.dirty = false;
-        delete this.modified;
-        this.editing = false;
-        if(this.store){
-            this.store.afterReject(this);
-        }
-    },
-
-    /**
-     * Usually called by the {@link Ext.data.Store} which owns the Record.
-     * Commits all changes made to the Record since either creation, or the last commit operation.
-     * <p>
-     * Developers should subscribe to the {@link Ext.data.Store#update} event to have their code notified
-     * of commit operations.
-     */
-    commit : function(){
-        this.dirty = false;
-        delete this.modified;
-        this.editing = false;
-        if(this.store){
-            this.store.afterCommit(this);
-        }
-    },
-
-    // private
-    hasError : function(){
-        return this.error != null;
-    },
-
-    // private
-    clearError : function(){
-        this.error = null;
-    }
-};

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Registry.jss.html b/www/extras/extjs/docs/output/Registry.jss.html deleted file mode 100644 index f658015fd..000000000 --- a/www/extras/extjs/docs/output/Registry.jss.html +++ /dev/null @@ -1,122 +0,0 @@ -Registry.js

Registry.js

/**
- * @class Ext.dd.Registry
- * Provides easy access to all drag drop components that are registered on a page.  Items can be retrieved either
- * directly by DOM node id, or by passing in the drag drop event that occurred and looking up the event target.
- * @singleton
- */
-Ext.dd.Registry = function(){
-    var elements = {}; 
-    var handles = {}; 
-    var autoIdSeed = 0;
-
-    var getId = function(el, autogen){
-        if(typeof el == "string"){
-            return el;
-        }
-        var id = el.id;
-        if(!id && autogen !== false){
-            id = "extdd-" + (++autoIdSeed);
-            el.id = id;
-        }
-        return id;
-    };
-    
-    return {
-    /**
-     * Resgister a drag drop element
-     * @param {String/HTMLElement) element The id or DOM node to register
-     * @param {Object} data (optional) An custom data object that will be passed between the elements that are involved
-     * in drag drop operations.  You can populate this object with any arbitrary properties that your own code
-     * knows how to interpret, plus there are some specific properties known to the Registry that should be
-     * populated in the data object (if applicable):
-     * <pre>
-Value      Description<br />
----------  ------------------------------------------<br />
-handles    Array of DOM nodes that trigger dragging<br />
-           for the element being registered<br />
-isHandle   True if the element passed in triggers<br />
-           dragging itself, else false
-</pre>
-     */
-        register : function(el, data){
-            data = data || {};
-            if(typeof el == "string"){
-                el = document.getElementById(el);
-            }
-            data.ddel = el;
-            elements[getId(el)] = data;
-            if(data.isHandle !== false){
-                handles[data.ddel.id] = data;
-            }
-            if(data.handles){
-                var hs = data.handles;
-                for(var i = 0, len = hs.length; i < len; i++){
-                	handles[getId(hs[i])] = data;
-                }
-            }
-        },
-
-    /**
-     * Unregister a drag drop element
-     * @param {String/HTMLElement) element The id or DOM node to unregister
-     */
-        unregister : function(el){
-            var id = getId(el, false);
-            var data = elements[id];
-            if(data){
-                delete elements[id];
-                if(data.handles){
-                    var hs = data.handles;
-                    for(var i = 0, len = hs.length; i < len; i++){
-                    	delete handles[getId(hs[i], false)];
-                    }
-                }
-            }
-        },
-
-    /**
-     * Returns the handle registered for a DOM Node by id
-     * @param {String/HTMLElement} id The DOM node or id to look up
-     * @return {Object} handle The custom handle data
-     */
-        getHandle : function(id){
-            if(typeof id != "string"){ // must be element?
-                id = id.id;
-            }
-            return handles[id];
-        },
-
-    /**
-     * Returns the handle that is registered for the DOM node that is the target of the event
-     * @param {Event} e The event
-     * @return {Object} handle The custom handle data
-     */
-        getHandleFromEvent : function(e){
-            var t = Ext.lib.Event.getTarget(e);
-            return t ? handles[t.id] : null;
-        },
-
-    /**
-     * Returns a custom data object that is registered for a DOM node by id
-     * @param {String/HTMLElement} id The DOM node or id to look up
-     * @return {Object} data The custom data
-     */
-        getTarget : function(id){
-            if(typeof id != "string"){ // must be element?
-                id = id.id;
-            }
-            return elements[id];
-        },
-
-    /**
-     * Returns a custom data object that is registered for the DOM node that is the target of the event
-     * @param {Event} e The event
-     * @return {Object} data The custom data
-     */
-        getTargetFromEvent : function(e){
-            var t = Ext.lib.Event.getTarget(e);
-            return t ? elements[t.id] || handles[t.id] : null;
-        }
-    };
-}();

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Resizable.jss.html b/www/extras/extjs/docs/output/Resizable.jss.html deleted file mode 100644 index 24e1678f1..000000000 --- a/www/extras/extjs/docs/output/Resizable.jss.html +++ /dev/null @@ -1,2 +0,0 @@ -Resizable.js

Resizable.js

/**
 * @class Ext.Resizable
 * @extends Ext.util.Observable
 * <p>Applies drag handles to an element to make it resizable. The drag handles are inserted into the element 
 * and positioned absolute. Some elements, such as a textarea or image, don't support this. To overcome that, you can wrap
 * the textarea in a div and set "resizeChild" to true (or to the id of the element), <b>or</b> set wrap:true in your config and
 * the element will be wrapped for you automatically.</p>
 * <p>Here is the list of valid resize handles:</p>
 * <pre>
Value   Description
------  -------------------
 'n'     north
 's'     south
 'e'     east
 'w'     west
 'nw'    northwest
 'sw'    southwest
 'se'    southeast
 'ne'    northeast
 'all'   all
</pre>
 * <p>Here's an example showing the creation of a typical Resizable:</p>
 * <pre><code>
var resizer = new Ext.Resizable("element-id", {
    handles: 'all',
    minWidth: 200,
    minHeight: 100,
    maxWidth: 500,
    maxHeight: 400,
    pinned: true
});
resizer.on("resize", myHandler);
</code></pre>
 * <p>To hide a particular handle, set its display to none in CSS, or through script:<br>
 * resizer.east.setDisplayed(false);</p>
 * @cfg {Boolean/String/Element} resizeChild True to resize the first child, or id/element to resize (defaults to false)
 * @cfg {Array/String} adjustments String "auto" or an array [width, height] with values to be <b>added</b> to the
 * resize operation's new size (defaults to [0, 0])
 * @cfg {Number} minWidth The minimum width for the element (defaults to 5)
 * @cfg {Number} minHeight The minimum height for the element (defaults to 5)
 * @cfg {Number} maxWidth The maximum width for the element (defaults to 10000)
 * @cfg {Number} maxHeight The maximum height for the element (defaults to 10000)
 * @cfg {Boolean} enabled False to disable resizing (defaults to true)
 * @cfg {Boolean} wrap True to wrap an element with a div if needed (required for textareas and images, defaults to false)
 * @cfg {Number} width The width of the element in pixels (defaults to null)
 * @cfg {Number} height The height of the element in pixels (defaults to null)
 * @cfg {Boolean} animate True to animate the resize (not compatible with dynamic sizing, defaults to false)
 * @cfg {Number} duration Animation duration if animate = true (defaults to .35)
 * @cfg {Boolean} dynamic True to resize the element while dragging instead of using a proxy (defaults to false)
 * @cfg {Boolean/String} handles String consisting of the resize handles to display (defaults to false)
 * @cfg {Boolean} multiDirectional <b>Deprecated</b>.  The old style of adding multi-direction resize handles, deprecated
 * in favor of the handles config option (defaults to false)
 * @cfg {Boolean} disableTrackOver True to disable mouse tracking. This is only applied at config time. (defaults to false)
 * @cfg {String} easing Animation easing if animate = true (defaults to 'easingOutStrong')
 * @cfg {Number} widthIncrement The increment to snap the width resize in pixels (dynamic must be true, defaults to 0)
 * @cfg {Number} heightIncrement The increment to snap the height resize in pixels (dynamic must be true, defaults to 0)
 * @cfg {Boolean} pinned True to ensure that the resize handles are always visible, false to display them only when the
 * user mouses over the resizable borders. This is only applied at config time. (defaults to false)
 * @cfg {Boolean} preserveRatio True to preserve the original ratio between height and width during resize (defaults to false)
 * @cfg {Boolean} transparent True for transparent handles. This is only applied at config time. (defaults to false)
 * @cfg {Number} minX The minimum allowed page X for the element (only used for west resizing, defaults to 0)
 * @cfg {Number} minY The minimum allowed page Y for the element (only used for north resizing, defaults to 0)
 * @cfg {Boolean} draggable Convenience to initialize drag drop (defaults to false)
 * @constructor
 * Create a new resizable component
 * @param {String/HTMLElement/Ext.Element} el The id or element to resize
 * @param {Object} config configuration options
  */
Ext.Resizable = function(el, config){
    this.el = Ext.get(el);
    
    if(config && config.wrap){
        config.resizeChild = this.el;
        this.el = this.el.wrap(typeof config.wrap == "object" ? config.wrap : {cls:"xresizable-wrap"});
        this.el.id = this.el.dom.id = config.resizeChild.id + "-rzwrap";
        this.el.setStyle("overflow", "hidden");
        this.el.setPositioning(config.resizeChild.getPositioning());
        config.resizeChild.clearPositioning();
        if(!config.width || !config.height){
            var csize = config.resizeChild.getSize();
            this.el.setSize(csize.width, csize.height);
        }
        if(config.pinned && !config.adjustments){
            config.adjustments = "auto";
        }
    }

    this.proxy = this.el.createProxy({tag: "div", cls: "x-resizable-proxy", id: this.el.id + "-rzproxy"});
    this.proxy.unselectable();
    this.proxy.enableDisplayMode('block');

    Ext.apply(this, config);
    
    if(this.pinned){
        this.disableTrackOver = true;
        this.el.addClass("x-resizable-pinned");
    }
    // if the element isn't positioned, make it relative
    var position = this.el.getStyle("position");
    if(position != "absolute" && position != "fixed"){
        this.el.setStyle("position", "relative");
    }
    if(!this.handles){ // no handles passed, must be legacy style
        this.handles = 's,e,se';
        if(this.multiDirectional){
            this.handles += ',n,w';
        }
    }
    if(this.handles == "all"){
        this.handles = "n s e w ne nw se sw";
    }
    var hs = this.handles.split(/\s*?[,;]\s*?| /);
    var ps = Ext.Resizable.positions;
    for(var i = 0, len = hs.length; i < len; i++){
        if(hs[i] && ps[hs[i]]){
            var pos = ps[hs[i]];
            this[pos] = new Ext.Resizable.Handle(this, pos, this.disableTrackOver, this.transparent);
        }
    }
    // legacy
    this.corner = this.southeast;
    
    if(this.handles.indexOf("n") != -1 || this.handles.indexOf("w") != -1){
        this.updateBox = true;
    }   
   
    this.activeHandle = null;
    
    if(this.resizeChild){
        if(typeof this.resizeChild == "boolean"){
            this.resizeChild = Ext.get(this.el.dom.firstChild, true);
        }else{
            this.resizeChild = Ext.get(this.resizeChild, true);
        }
    }
    
    if(this.adjustments == "auto"){
        var rc = this.resizeChild;
        var hw = this.west, he = this.east, hn = this.north, hs = this.south;
        if(rc && (hw || hn)){
            rc.position("relative");
            rc.setLeft(hw ? hw.el.getWidth() : 0);
            rc.setTop(hn ? hn.el.getHeight() : 0);
        }
        this.adjustments = [
            (he ? -he.el.getWidth() : 0) + (hw ? -hw.el.getWidth() : 0),
            (hn ? -hn.el.getHeight() : 0) + (hs ? -hs.el.getHeight() : 0) -1 
        ];
    }
    
    if(this.draggable){
        this.dd = this.dynamic ? 
            this.el.initDD(null) : this.el.initDDProxy(null, {dragElId: this.proxy.id});
        this.dd.setHandleElId(this.resizeChild ? this.resizeChild.id : this.el.id);
    }
    
    // public events
    this.addEvents({
        /**
         * @event beforeresize
         * Fired before resize is allowed. Set enabled to false to cancel resize. 
         * @param {Ext.Resizable} this
         * @param {Ext.EventObject} e The mousedown event
         */
        "beforeresize" : true,
        /**
         * @event resize
         * Fired after a resize. 
         * @param {Ext.Resizable} this
         * @param {Number} width The new width
         * @param {Number} height The new height
         * @param {Ext.EventObject} e The mouseup event
         */
        "resize" : true
    });
    
    if(this.width !== null && this.height !== null){
        this.resizeTo(this.width, this.height);
    }else{
        this.updateChildSize();
    }
    if(Ext.isIE){
        this.el.dom.style.zoom = 1;
    }
    Ext.Resizable.superclass.constructor.call(this);
};

Ext.extend(Ext.Resizable, Ext.util.Observable, {
        resizeChild : false,
        adjustments : [0, 0],
        minWidth : 5,
        minHeight : 5,
        maxWidth : 10000,
        maxHeight : 10000,
        enabled : true,
        animate : false,
        duration : .35,
        dynamic : false,
        handles : false,
        multiDirectional : false,
        disableTrackOver : false,
        easing : 'easeOutStrong',
        widthIncrement : 0,
        heightIncrement : 0,
        pinned : false,
        width : null,
        height : null,
        preserveRatio : false,
        transparent: false,
        minX: 0,
        minY: 0,
        draggable: false,
    /**
     * Perform a manual resize
     * @param {Number} width
     * @param {Number} height
     */
    resizeTo : function(width, height){
        this.el.setSize(width, height);
        this.updateChildSize();
        this.fireEvent("resize", this, width, height, null);
    },

    // private
    startSizing : function(e, handle){
        this.fireEvent("beforeresize", this, e);
        if(this.enabled){ // 2nd enabled check in case disabled before beforeresize handler

            if(!this.overlay){
                this.overlay = this.el.createProxy({tag: "div", cls: "x-resizable-overlay", html: "&#160;"});
                this.overlay.unselectable();
                this.overlay.enableDisplayMode("block");
                this.overlay.on("mousemove", this.onMouseMove, this);
                this.overlay.on("mouseup", this.onMouseUp, this);
            }
            this.overlay.setStyle("cursor", handle.el.getStyle("cursor"));

            this.resizing = true;
            this.startBox = this.el.getBox();
            this.startPoint = e.getXY();
            this.offsets = [(this.startBox.x + this.startBox.width) - this.startPoint[0],
                            (this.startBox.y + this.startBox.height) - this.startPoint[1]];

            this.overlay.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true));
            this.overlay.show();

            this.proxy.setStyle('visibility', 'hidden'); // workaround display none
            this.proxy.show();
            this.proxy.setBox(this.startBox);
            if(!this.dynamic){
                this.proxy.setStyle('visibility', 'visible');
            }
        }
    },

    // private
    onMouseDown : function(handle, e){
        if(this.enabled){
            e.stopEvent();
            this.activeHandle = handle;
            this.startSizing(e, handle);
        }          
    },

    // private
    onMouseUp : function(e){
        var size = this.resizeElement();
        this.resizing = false;
        this.handleOut();
        this.overlay.hide();
        this.fireEvent("resize", this, size.width, size.height, e);
    },

    // private
    updateChildSize : function(){
        if(this.resizeChild){
            var el = this.el;
            var child = this.resizeChild;
            var adj = this.adjustments;
            if(el.dom.offsetWidth){
                var b = el.getSize(true);
                child.setSize(b.width+adj[0], b.height+adj[1]);
            }
            // Second call here for IE
            // The first call enables instant resizing and
            // the second call corrects scroll bars if they
            // exist
            if(Ext.isIE){
                setTimeout(function(){
                    if(el.dom.offsetWidth){
                        var b = el.getSize(true);
                        child.setSize(b.width+adj[0], b.height+adj[1]);
                    }
                }, 10);
            }
        }
    },

    // private
    snap : function(value, inc, min){
        if(!inc || !value) return value;
        var newValue = value;
        var m = value % inc;
        if(m > 0){
            if(m > (inc/2)){
                newValue = value + (inc-m);
            }else{
                newValue = value - m;
            }
        }
        return Math.max(min, newValue);
    },

    // private
    resizeElement : function(){
        var box = this.proxy.getBox();
        if(this.updateBox){
            this.el.setBox(box, false, this.animate, this.duration, null, this.easing);
        }else{
            this.el.setSize(box.width, box.height, this.animate, this.duration, null, this.easing);
        }
        this.updateChildSize();
        this.proxy.hide();
        return box;
    },

    // private
    constrain : function(v, diff, m, mx){
        if(v - diff < m){
            diff = v - m;    
        }else if(v - diff > mx){
            diff = mx - v; 
        }
        return diff;                
    },

    // private
    onMouseMove : function(e){
        if(this.enabled){
            try{// try catch so if something goes wrong the user doesn't get hung
            
            //var curXY = this.startPoint;
            var curSize = this.curSize || this.startBox;
            var x = this.startBox.x, y = this.startBox.y;
            var ox = x, oy = y;
            var w = curSize.width, h = curSize.height;
            var ow = w, oh = h;
            var mw = this.minWidth, mh = this.minHeight;
            var mxw = this.maxWidth, mxh = this.maxHeight;
            var wi = this.widthIncrement;
            var hi = this.heightIncrement;
            
            var eventXY = e.getXY();
            var diffX = -(this.startPoint[0] - Math.max(this.minX, eventXY[0]));
            var diffY = -(this.startPoint[1] - Math.max(this.minY, eventXY[1]));
            
            var pos = this.activeHandle.position;
            
            switch(pos){
                case "east":
                    w += diffX; 
                    w = Math.min(Math.max(mw, w), mxw);
                    break;
                case "south":
                    h += diffY;
                    h = Math.min(Math.max(mh, h), mxh);
                    break;
                case "southeast":
                    w += diffX; 
                    h += diffY;
                    w = Math.min(Math.max(mw, w), mxw);
                    h = Math.min(Math.max(mh, h), mxh);
                    break;
                case "north":
                    diffY = this.constrain(h, diffY, mh, mxh);
                    y += diffY;
                    h -= diffY;
                    break;
                case "west":
                    diffX = this.constrain(w, diffX, mw, mxw);
                    x += diffX;
                    w -= diffX;
                    break;
                case "northeast":
                    w += diffX; 
                    w = Math.min(Math.max(mw, w), mxw);
                    diffY = this.constrain(h, diffY, mh, mxh);
                    y += diffY;
                    h -= diffY;
                    break;
                case "northwest":
                    diffX = this.constrain(w, diffX, mw, mxw);
                    diffY = this.constrain(h, diffY, mh, mxh);
                    y += diffY;
                    h -= diffY;
                    x += diffX;
                    w -= diffX;
                    break;
               case "southwest":
                    diffX = this.constrain(w, diffX, mw, mxw);
                    h += diffY;
                    h = Math.min(Math.max(mh, h), mxh);
                    x += diffX;
                    w -= diffX;
                    break;
            }
            
            var sw = this.snap(w, wi, mw);
            var sh = this.snap(h, hi, mh);
            if(sw != w || sh != h){
                switch(pos){
                    case "northeast":
                        y -= sh - h;
                    break;
                    case "north":
                        y -= sh - h;
                        break;
                    case "southwest":
                        x -= sw - w;
                    break;
                    case "west":
                        x -= sw - w;
                        break;
                    case "northwest":
                        x -= sw - w;
                        y -= sh - h;
                    break;
                }
                w = sw;
                h = sh;
            }
            
            if(this.preserveRatio){
                switch(pos){
                    case "southeast":
                    case "east":
                        h = oh * (w/ow);
                        h = Math.min(Math.max(mh, h), mxh);
                        w = ow * (h/oh);
                       break;
                    case "south":
                        w = ow * (h/oh);
                        w = Math.min(Math.max(mw, w), mxw);
                        h = oh * (w/ow);
                        break;
                    case "northeast":
                        w = ow * (h/oh);
                        w = Math.min(Math.max(mw, w), mxw);
                        h = oh * (w/ow);
                    break;
                    case "north":
                        var tw = w;
                        w = ow * (h/oh);
                        w = Math.min(Math.max(mw, w), mxw);
                        h = oh * (w/ow);
                        x += (tw - w) / 2;
                        break;
                    case "southwest":
                        h = oh * (w/ow);
                        h = Math.min(Math.max(mh, h), mxh);
                        var tw = w;
                        w = ow * (h/oh);
                        x += tw - w;
                        break;
                    case "west":
                        var th = h;
                        h = oh * (w/ow);
                        h = Math.min(Math.max(mh, h), mxh);
                        y += (th - h) / 2;
                        var tw = w;
                        w = ow * (h/oh);
                        x += tw - w;
                       break;
                    case "northwest":
                        var tw = w;
                        var th = h;
                        h = oh * (w/ow);
                        h = Math.min(Math.max(mh, h), mxh);
                        w = ow * (h/oh);
                        y += th - h;
                         x += tw - w;
                       break;
                        
                }
            }
            this.proxy.setBounds(x, y, w, h);
            if(this.dynamic){
                this.resizeElement();
            }
            }catch(e){}
        }
    },

    // private
    handleOver : function(){
        if(this.enabled){
            this.el.addClass("x-resizable-over");
        }
    },

    // private
    handleOut : function(){
        if(!this.resizing){
            this.el.removeClass("x-resizable-over");
        }
    },
    
    /**
     * Returns the element this component is bound to.
     * @return {Ext.Element}
     */
    getEl : function(){
        return this.el;
    },
    
    /**
     * Returns the resizeChild element (or null).
     * @return {Ext.Element}
     */
    getResizeChild : function(){
        return this.resizeChild;
    },
    
    /**
     * Destroys this resizable. If the element was wrapped and 
     * removeEl is not true then the element remains.
     * @param {Boolean} removeEl (optional) true to remove the element from the DOM
     */
    destroy : function(removeEl){
        this.proxy.remove();
        this.overlay.removeAllListeners();
        this.overlay.remove();
        var ps = Ext.Resizable.positions;
        for(var k in ps){
            if(typeof ps[k] != "function" && this[ps[k]]){
                var h = this[ps[k]];
                h.el.removeAllListeners();
                h.el.remove();
            }
        }
        if(removeEl){
            this.el.update("");
            this.el.remove();
        }
    }
});

// private
// hash to map config positions to true positions
Ext.Resizable.positions = {
    n: "north", s: "south", e: "east", w: "west", se: "southeast", sw: "southwest", nw: "northwest", ne: "northeast"
};

// private
Ext.Resizable.Handle = function(rz, pos, disableTrackOver, transparent){
    if(!this.tpl){
        // only initialize the template if resizable is used
        var tpl = Ext.DomHelper.createTemplate(
            {tag: "div", cls: "x-resizable-handle x-resizable-handle-{0}"}
        );
        tpl.compile();
        Ext.Resizable.Handle.prototype.tpl = tpl;
    }
    this.position = pos;
    this.rz = rz;
    this.el = this.tpl.append(rz.el.dom, [this.position], true);
    this.el.unselectable();
    if(transparent){
        this.el.setOpacity(0);
    }
    this.el.on("mousedown", this.onMouseDown, this);
    if(!disableTrackOver){
        this.el.on("mouseover", this.onMouseOver, this);
        this.el.on("mouseout", this.onMouseOut, this);
    }
};

// private
Ext.Resizable.Handle.prototype = {
    afterResize : function(rz){
        // do nothing    
    },
    // private
    onMouseDown : function(e){
        this.rz.onMouseDown(this, e);
    },
    // private
    onMouseOver : function(e){
        this.rz.handleOver(this, e);
    },
    // private
    onMouseOut : function(e){
        this.rz.handleOut(this, e);
    }  
};




Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/RowSelectionModel.jss.html b/www/extras/extjs/docs/output/RowSelectionModel.jss.html deleted file mode 100644 index 015a6f84e..000000000 --- a/www/extras/extjs/docs/output/RowSelectionModel.jss.html +++ /dev/null @@ -1,411 +0,0 @@ -RowSelectionModel.js

RowSelectionModel.js

/**
- @class Ext.grid.RowSelectionModel
- * @extends Ext.grid.AbstractSelectionModel
- * The default SelectionModel used by {@link Ext.grid.Grid}. 
- It supports multiple selections and keyboard selection/navigation. <br><br>
- @constructor
- * @param {Object} config
- */
-Ext.grid.RowSelectionModel = function(config){
-    Ext.apply(this, config);
-    this.selections = new Ext.util.MixedCollection(false, function(o){
-        return o.id;
-    });
-    
-    this.last = false;
-    this.lastActive = false;
-
-    this.addEvents({
-        /**
-	     * @event selectionchange
-	     * Fires when the selection changes 
-	     * @param {SelectionModel} this
-	     */
-	    "selectionchange" : true,
-        /**
-	     * @event beforerowselect
-	     * Fires when a row is selected being selected, return false to cancel.
-	     * @param {SelectionModel} this
-	     * @param {Number} rowIndex The selected index
-	     */
-	    "beforerowselect" : true,
-        /**
-	     * @event rowselect
-	     * Fires when a row is selected.
-	     * @param {SelectionModel} this
-	     * @param {Number} rowIndex The selected index
-	     */
-	    "rowselect" : true,
-        
-        "rowdeselect" : true
-    });
-    
-    this.locked = false;
-};
-
-Ext.extend(Ext.grid.RowSelectionModel, Ext.grid.AbstractSelectionModel,  {
-    /**
-     * @cfg {Boolean} singleSelect
-     * True to allow selection of only one row at a time (defaults to false)
-     */
-    singleSelect : false,
-
-    // private
-    initEvents : function(){
-
-        if(!this.grid.enableDragDrop && !this.grid.enableDrag){
-            this.grid.on("mousedown", this.handleMouseDown, this);
-        }
-
-        this.rowNav = new Ext.KeyNav(this.grid.container, {
-            "up" : function(e){
-                if(!e.shiftKey){
-                    this.selectPrevious(e.shiftKey);
-                }else if(this.last !== false && this.lastActive !== false){
-                    var last = this.last;
-                    this.selectRange(this.last,  this.lastActive-1);
-                    this.grid.getView().focusRow(this.lastActive);
-                    if(last !== false){
-                        this.last = last;
-                    }
-                }else{
-                    this.selectFirstRow();
-                }
-            },
-            "down" : function(e){
-                if(!e.shiftKey){
-                    this.selectNext(e.shiftKey);
-                }else if(this.last !== false && this.lastActive !== false){
-                    var last = this.last;
-                    this.selectRange(this.last,  this.lastActive+1);
-                    this.grid.getView().focusRow(this.lastActive);
-                    if(last !== false){
-                        this.last = last;
-                    }
-                }else{
-                    this.selectFirstRow();
-                }
-            },
-            scope: this
-        });
-
-        var view = this.grid.view;
-        view.on("refresh", this.onRefresh, this);
-        view.on("rowupdated", this.onRowUpdated, this);
-        view.on("rowremoved", this.onRemove, this);
-    },
-
-    // private
-    onRefresh : function(){
-        var ds = this.grid.dataSource, i, v = this.grid.view;
-        var s = this.selections;
-        s.each(function(r){
-            if((i = ds.indexOfId(r.id)) != -1){
-                v.onRowSelect(i);
-            }else{
-                s.remove(r);
-            }
-        });
-    },
-
-    // private
-    onRemove : function(v, index, r){
-        this.selections.remove(r);
-    },
-
-    // private
-    onRowUpdated : function(v, index, r){
-        if(this.isSelected(r)){
-            v.onRowSelect(index);
-        }
-    },
-
-    /**
-     * Select records.
-     * @param {Array} records The records to select
-     * @param {Boolean} keepExisting (optional) True to keep existing selections
-     */
-    selectRecords : function(records, keepExisting){
-        if(!keepExisting){
-            this.clearSelections();
-        }
-        var ds = this.grid.dataSource;
-        for(var i = 0, len = records.length; i < len; i++){
-            this.selectRow(ds.indexOf(records[i]), true);
-        }
-    },
-    
-    /**
-     * Gets the number of selected rows.
-     * @return {Number}
-     */
-    getCount : function(){
-        return this.selections.length;
-    },
-    
-    /**
-     * Selects the first row in the grid.
-     */
-    selectFirstRow : function(){
-        this.selectRow(0);
-    },
-
-    /**
-     * Select the last row.
-     * @param {Boolean} keepExisting (optional) True to keep existing selections
-     */
-    selectLastRow : function(keepExisting){
-        this.selectRow(this.grid.dataSource.getCount() - 1, keepExisting);
-    },
-
-    /**
-     * Selects the row immediately following the last selected row.
-     * @param {Boolean} keepExisting (optional) True to keep existing selections
-     */
-    selectNext : function(keepExisting){
-        if(this.last !== false && (this.last+1) < this.grid.dataSource.getCount()){
-            this.selectRow(this.last+1, keepExisting);
-            this.grid.getView().focusRow(this.last);
-        }
-    },
-    
-    /**
-     * Selects the row that precedes the last selected row.
-     * @param {Boolean} keepExisting (optional) True to keep existing selections
-     */
-    selectPrevious : function(keepExisting){
-        if(this.last){
-            this.selectRow(this.last-1, keepExisting);
-            this.grid.getView().focusRow(this.last);
-        }
-    },
-    
-    /**
-     * Returns the selected records
-     * @return {Array} Array of selected records
-     */
-    getSelections : function(){
-        return [].concat(this.selections.items);
-    },
-    
-    /**
-     * Returns the first selected record.
-     * @return {Record}
-     */
-    getSelected : function(){
-        return this.selections.itemAt(0);
-    },
-    
-    
-    /**
-     * Clears all selections.
-     */
-    clearSelections : function(fast){
-        if(this.locked) return;
-        if(fast !== true){
-            var ds = this.grid.dataSource;
-            var s = this.selections;
-            s.each(function(r){
-                this.deselectRow(ds.indexOfId(r.id));
-            }, this);
-            s.clear();
-        }else{
-            this.selections.clear();
-        }
-        this.last = false;
-    },
-    
-        
-    /**
-     * Selects all rows.
-     */
-    selectAll : function(){
-        if(this.locked) return;
-        this.selections.clear();
-        for(var i = 0, len = this.grid.dataSource.getCount(); i < len; i++){
-            this.selectRow(i, true);
-        }
-    },
-    
-    /**
-     * Returns True if there is a selection.
-     * @return {Boolean}
-     */
-    hasSelection : function(){
-        return this.selections.length > 0;
-    },
-
-    /**
-     * Returns True if the specified row is selected.
-     * @param {Number/Record} record The record or index of the record to check
-     * @return {Boolean}
-     */
-    isSelected : function(index){
-        var r = typeof index == "number" ? this.grid.dataSource.getAt(index) : index;
-        return (r && this.selections.key(r.id) ? true : false);
-    },
-
-    /**
-     * Returns True if the specified record id is selected.
-     * @param {String} id The id of record to check
-     * @return {Boolean}
-     */
-    isIdSelected : function(id){
-        return (this.selections.key(id) ? true : false);
-    },
-
-    // private
-    handleMouseDown : function(e, t){
-        var view = this.grid.getView(), rowIndex;
-        if(this.isLocked() || (rowIndex = view.findRowIndex(t)) === false){
-            return;
-        };
-        if(e.shiftKey && this.last !== false){
-            var last = this.last;
-            this.selectRange(last, rowIndex, e.ctrlKey);
-            this.last = last; // reset the last
-            view.focusRow(rowIndex);
-        }else{
-            var isSelected = this.isSelected(rowIndex);
-            if(e.button != 0 && isSelected){
-                view.focusRow(rowIndex);
-            }else if(e.ctrlKey && isSelected){
-                this.deselectRow(rowIndex);
-            }else{
-                this.selectRow(rowIndex, e.button == 0 && (e.ctrlKey || e.shiftKey));
-                view.focusRow(rowIndex);
-            }
-        }
-    },
-    
-    /**
-     * Selects multiple rows.
-     * @param {Array} rows Array of the indexes of the row to select
-     * @param {Boolean} keepExisting (optional) True to keep existing selections
-     */
-    selectRows : function(rows, keepExisting){
-        if(!keepExisting){
-            this.clearSelections();
-        }
-        for(var i = 0, len = rows.length; i < len; i++){
-            this.selectRow(rows[i], true);
-        }
-    },
-    
-    /**
-     * Selects a range of rows. All rows in between startRow and endRow are also selected.
-     * @param {Number} startRow The index of the first row in the range
-     * @param {Number} endRow The index of the last row in the range
-     * @param {Boolean} keepExisting (optional) True to retain existing selections
-     */
-    selectRange : function(startRow, endRow, keepExisting){
-        if(this.locked) return;
-        if(!keepExisting){
-            this.clearSelections();
-        }
-        if(startRow <= endRow){
-            for(var i = startRow; i <= endRow; i++){
-                this.selectRow(i, true);
-            }
-        }else{
-            for(var i = startRow; i >= endRow; i--){
-                this.selectRow(i, true);
-            }
-        }
-    },
-    
-    /**
-     * Deselects a range of rows. All rows in between startRow and endRow are also deselected.
-     * @param {Number} startRow The index of the first row in the range
-     * @param {Number} endRow The index of the last row in the range
-     */
-    deselectRange : function(startRow, endRow, preventViewNotify){
-        if(this.locked) return;
-        for(var i = startRow; i <= endRow; i++){
-            this.deselectRow(i, preventViewNotify);
-        }
-    },
-    
-    /**
-     * Selects a row.
-     * @param {Number} row The index of the row to select
-     * @param {Boolean} keepExisting (optional) True to keep existing selections
-     */
-    selectRow : function(index, keepExisting, preventViewNotify){
-        if(this.locked || (index < 0 || index >= this.grid.dataSource.getCount())) return;
-        if(this.fireEvent("beforerowselect", this, index, keepExisting) !== false){
-            if(!keepExisting || this.singleSelect){
-                this.clearSelections();
-            }
-            var r = this.grid.dataSource.getAt(index);
-            this.selections.add(r);
-            this.last = this.lastActive = index;
-            if(!preventViewNotify){
-                this.grid.getView().onRowSelect(index);
-            }
-            this.fireEvent("rowselect", this, index, r);
-            this.fireEvent("selectionchange", this);
-        }
-    },
-
-    /**
-     * Deselects a row.
-     * @param {Number} row The index of the row to deselect
-     */
-    deselectRow : function(index, preventViewNotify){
-        if(this.locked) return;
-        if(this.last == index){
-            this.last = false;
-        }
-        if(this.lastActive == index){
-            this.lastActive = false;
-        }
-        var r = this.grid.dataSource.getAt(index);
-        this.selections.remove(r);
-        if(!preventViewNotify){
-            this.grid.getView().onRowDeselect(index);
-        }
-        this.fireEvent("rowdeselect", this, index);
-        this.fireEvent("selectionchange", this);
-    },
-
-    // private
-    restoreLast : function(){
-        if(this._last){
-            this.last = this._last;
-        }    
-    },
-
-    // private
-    acceptsNav : function(row, col, cm){
-        return !cm.isHidden(col) && cm.isCellEditable(col, row);
-    },
-
-    // private
-    onEditorKey : function(field, e){
-        var k = e.getKey(), newCell, g = this.grid, ed = g.activeEditor;
-        if(k == e.TAB){
-            ed.completeEdit();
-            if(e.shiftKey){
-                newCell = g.walkCells(ed.row, ed.col-1, -1, this.acceptsNav, this);
-            }else{
-                newCell = g.walkCells(ed.row, ed.col+1, 1, this.acceptsNav, this);
-            }
-            e.stopEvent();
-        }else if(k == e.ENTER && !e.ctrlKey){
-            ed.completeEdit();
-            if(e.shiftKey){
-                newCell = g.walkCells(ed.row-1, ed.col, -1, this.acceptsNav, this);
-            }else{
-                newCell = g.walkCells(ed.row+1, ed.col, 1, this.acceptsNav, this);
-            }
-            e.stopEvent();
-        }else if(k == e.ESC){
-            ed.cancelEdit();
-        }
-        if(newCell){
-            g.startEditing(newCell[0], newCell[1]);
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ScriptTagProxy.jss.html b/www/extras/extjs/docs/output/ScriptTagProxy.jss.html deleted file mode 100644 index 6f7d80218..000000000 --- a/www/extras/extjs/docs/output/ScriptTagProxy.jss.html +++ /dev/null @@ -1,162 +0,0 @@ -ScriptTagProxy.js

ScriptTagProxy.js

/**
- * @class Ext.data.ScriptTagProxy
- * An implementation of Ext.data.DataProxy that reads a data object from a URL which may be in a domain
- * other than the originating domain of the running page.
- * <p>
- * <em>Note that this class must be used to retrieve data from a domain other than the domain
- * from which the running page was served.</em>
- * 
- * @cfg {String} url The url from which to request the data object.
- * @constructor
- * @param {Object} conn A configuration object.
- */
-Ext.data.ScriptTagProxy = function(config){
-    Ext.data.ScriptTagProxy.superclass.constructor.call(this);
-    Ext.apply(this, config);
-    this.head = document.getElementsByTagName("head")[0];
-};
-
-Ext.data.ScriptTagProxy.TRANS_ID = 1000;
-
-Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, {
-    /**
-     * @cfg {Number} timeout (Optional) The number of milliseconds to wait for a response. Defaults to 30 seconds.
-     */
-    timeout : 30000,
-    /**
-     * @cfg {String} callbackParam (Optional) The name of the parameter to pass to the server which tells
-     * the server the name of the callback function set up by the load call to process the returned data object.
-     * Defaults to "callback".<p>The server-side processing must read this parameter value, and generate
-     * javascript output which calls this named function passing the data object as its only parameter.
-     */
-    callbackParam : "callback",
-    /**
-     *  @cfg nocache {Boolean} (Optional) Defaults to true. Disable cacheing by adding a unique parameter
-     * name to the request.
-     */
-    nocache : true,
-    
-    /**
-     * Load data from the configured URL, read the data object into
-     * a block of Ext.data.Records using the passed Ext.data.DataReader implementation, and
-     * process that block using the passed callback.
-     * @param {Object} params An object containing properties which are to be used as HTTP parameters
-     * for the request to the remote server.
-     * @param {Ext.data.DataReader} reader The Reader object which converts the data
-     * object into a block of Ext.data.Records.
-     * @param {Function} callback The function into which to pass the block of Ext.data.Records.
-     * The function must be passed <ul>
-     * <li>The Record block object</li>
-     * <li>The "arg" argument from the load function</li>
-     * <li>A boolean success indicator</li>
-     * </ul>
-     * @param {Object} scope The scope in which to call the callback
-     * @param {Object} arg An optional argument which is passed to the callback as its second parameter.
-     */
-    load : function(params, reader, callback, scope, arg){
-        if(this.fireEvent("beforeload", this, params) !== false){
-            
-            var p = Ext.urlEncode(Ext.apply(params, this.extraParams));
-            
-            var url = this.url;
-            url += (url.indexOf("?") != -1 ? "&" : "?") + p;
-            if(this.nocache){
-                url += "&_dc=" + (new Date().getTime());
-            }
-            var transId = ++Ext.data.ScriptTagProxy.TRANS_ID;
-            var trans = {
-                id : transId,
-                cb : "stcCallback"+transId,
-                scriptId : "stcScript"+transId,
-                params : params,
-                arg : arg,
-                url : url,
-                callback : callback,
-                scope : scope,
-                reader : reader
-            };
-            var conn = this;
-            
-            window[trans.cb] = function(o){
-                conn.handleResponse(o, trans);
-            };
-            
-            url += String.format("&{0}={1}", this.callbackParam, trans.cb);
-            
-            if(this.autoAbort !== false){
-                this.abort();
-            }
-            
-            trans.timeoutId = this.handleFailure.defer(this.timeout, this, [trans]);
-            
-            var script = document.createElement("script");
-            script.setAttribute("src", url);
-            script.setAttribute("type", "text/javascript");
-            script.setAttribute("id", trans.scriptId);
-            this.head.appendChild(script);
-            
-            this.trans = trans;
-        }else{
-            callback.call(scope||this, null, arg, false);
-        }
-    },
-
-    // private
-    isLoading : function(){
-        return this.trans ? true : false;  
-    },
-
-    /**
-     * Abort the current server request.
-     */
-    abort : function(){
-        if(this.isLoading()){
-            this.destroyTrans(this.trans);
-        }
-    },
-    
-    // private
-    destroyTrans : function(trans, isLoaded){
-        this.head.removeChild(document.getElementById(trans.scriptId));
-        clearTimeout(trans.timeoutId);
-        if(isLoaded){
-            window[trans.cb] = undefined;
-            try{
-                delete window[trans.cb];
-            }catch(e){}
-        }else{
-            // if hasn't been loaded, wait for load to remove it to prevent script error
-            window[trans.cb] = function(){
-                window[trans.cb] = undefined;
-                try{
-                    delete window[trans.cb];
-                }catch(e){}
-            }; 
-        }
-    },
-    
-    // private
-    handleResponse : function(o, trans){
-        this.trans = false;
-        this.destroyTrans(trans, true);
-        var result;
-        try {
-            result = trans.reader.readRecords(o);
-        }catch(e){
-            this.fireEvent("loadexception", this, o, trans.arg, e);
-            trans.callback.call(trans.scope||window, null, trans.arg, false);
-            return;
-        }
-        this.fireEvent("load", this, o, trans.arg);
-        trans.callback.call(trans.scope||window, result, trans.arg, true);
-    },
-    
-    // private
-    handleFailure : function(trans){
-        this.trans = false;
-        this.destroyTrans(trans, false);
-        this.fireEvent("loadexception", this, null, trans.arg);
-        trans.callback.call(trans.scope||window, null, trans.arg, false);
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ScrollManager.jss.html b/www/extras/extjs/docs/output/ScrollManager.jss.html deleted file mode 100644 index f3c21fa8f..000000000 --- a/www/extras/extjs/docs/output/ScrollManager.jss.html +++ /dev/null @@ -1,171 +0,0 @@ -ScrollManager.js

ScrollManager.js

/**
- * @class Ext.dd.ScrollManager
- * Provides automatic scrolling of overflow regions in the page during drag operations.<br><br>
- * <b>Note: This class uses "Point Mode" and is untested in "Intersect Mode".</b>
- * @singleton
- */
-Ext.dd.ScrollManager = function(){
-    var ddm = Ext.dd.DragDropMgr;
-    var els = {};
-    var dragEl = null;
-    var proc = {};
-    
-    var onStop = function(e){
-        dragEl = null;
-        clearProc();
-    };
-    
-    var triggerRefresh = function(){
-        if(ddm.dragCurrent){
-             ddm.refreshCache(ddm.dragCurrent.groups);
-        }
-    };
-    
-    var doScroll = function(){
-        if(ddm.dragCurrent){
-            var dds = Ext.dd.ScrollManager;
-            if(!dds.animate){
-                if(proc.el.scroll(proc.dir, dds.increment)){
-                    triggerRefresh();
-                }
-            }else{
-                proc.el.scroll(proc.dir, dds.increment, true, dds.animDuration, triggerRefresh);
-            }
-        }
-    };
-    
-    var clearProc = function(){
-        if(proc.id){
-            clearInterval(proc.id);
-        }
-        proc.id = 0;
-        proc.el = null;
-        proc.dir = "";
-    };
-    
-    var startProc = function(el, dir){
-        clearProc();
-        proc.el = el;
-        proc.dir = dir;
-        proc.id = setInterval(doScroll, Ext.dd.ScrollManager.frequency);
-    };
-    
-    var onFire = function(e, isDrop){
-        if(isDrop || !ddm.dragCurrent){ return; }
-        var dds = Ext.dd.ScrollManager;
-        if(!dragEl || dragEl != ddm.dragCurrent){
-            dragEl = ddm.dragCurrent;
-            // refresh regions on drag start
-            dds.refreshCache();
-        }
-        
-        var xy = Ext.lib.Event.getXY(e);
-        var pt = new Ext.lib.Point(xy[0], xy[1]);
-        for(var id in els){
-            var el = els[id], r = el._region;
-            if(r.contains(pt) && el.isScrollable()){
-                if(r.bottom - pt.y <= dds.thresh){
-                    if(proc.el != el){
-                        startProc(el, "down");
-                    }
-                    return;
-                }else if(r.right - pt.x <= dds.thresh){
-                    if(proc.el != el){
-                        startProc(el, "left");
-                    }
-                    return;
-                }else if(pt.y - r.top <= dds.thresh){
-                    if(proc.el != el){
-                        startProc(el, "up");
-                    }
-                    return;
-                }else if(pt.x - r.left <= dds.thresh){
-                    if(proc.el != el){
-                        startProc(el, "right");
-                    }
-                    return;
-                }
-            }
-        }
-        clearProc();
-    };
-    
-    ddm.fireEvents = ddm.fireEvents.createSequence(onFire, ddm);
-    ddm.stopDrag = ddm.stopDrag.createSequence(onStop, ddm);
-    
-    return {
-        /**
-         * Registers new overflow element(s) to auto scroll
-         * @param {String/HTMLElement/Element/Array} el The id of or the element to be scrolled or an array of either
-         */
-        register : function(el){
-            if(el instanceof Array){
-                for(var i = 0, len = el.length; i < len; i++) {
-                	this.register(el[i]);
-                }
-            }else{
-                el = Ext.get(el);
-                els[el.id] = el;
-            }
-        },
-        
-        /**
-         * Unregisters overflow element(s) so they are no longer scrolled
-         * @param {String/HTMLElement/Element/Array} el The id of or the element to be removed or an array of either
-         */
-        unregister : function(el){
-            if(el instanceof Array){
-                for(var i = 0, len = el.length; i < len; i++) {
-                	this.unregister(el[i]);
-                }
-            }else{
-                el = Ext.get(el);
-                delete els[el.id];
-            }
-        },
-        
-        /**
-         * The number of pixels from the edge of a container the pointer needs to be to 
-         * trigger scrolling (defaults to 25)
-         * @type Number
-         */
-        thresh : 25,
-        
-        /**
-         * The number of pixels to scroll in each scroll increment (defaults to 50)
-         * @type Number
-         */
-        increment : 100,
-        
-        /**
-         * The frequency of scrolls in milliseconds (defaults to 500)
-         * @type Number
-         */
-        frequency : 500,
-        
-        /**
-         * True to animate the scroll (defaults to true)
-         * @type Boolean
-         */
-        animate: true,
-        
-        /**
-         * The animation duration in seconds - 
-         * MUST BE less than Ext.dd.ScrollManager.frequency! (defaults to .4)
-         * @type Number
-         */
-        animDuration: .4,
-        
-        /**
-         * Manually trigger a cache refresh.
-         */
-        refreshCache : function(){
-            for(var id in els){
-                if(typeof els[id] == 'object'){ // for people extending the object prototype
-                    els[id]._region = els[id].getRegion();
-                }
-            }
-        }
-    };
-}();

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Separator.jss.html b/www/extras/extjs/docs/output/Separator.jss.html deleted file mode 100644 index e5f14090b..000000000 --- a/www/extras/extjs/docs/output/Separator.jss.html +++ /dev/null @@ -1,33 +0,0 @@ -Separator.js

Separator.js

/**
- * @class Ext.menu.Separator
- * @extends Ext.menu.BaseItem
- * Adds a separator bar to a menu, used to divide logical groups of menu items. Generally you will
- * add one of these by using "-" in you call to add() or in your items config rather than creating one directly.
- * @constructor
- * @param {Object} config Configuration options
- */
-Ext.menu.Separator = function(config){
-    Ext.menu.Separator.superclass.constructor.call(this, config);
-};
-
-Ext.extend(Ext.menu.Separator, Ext.menu.BaseItem, {
-    /**
-     * @cfg {String} itemCls The default CSS class to use for separators (defaults to "x-menu-sep")
-     */
-    itemCls : "x-menu-sep",
-    /**
-     * @cfg {Boolean} hideOnClick True to hide the containing menu after this item is clicked (defaults to false)
-     */
-    hideOnClick : false,
-
-    // private
-    onRender : function(li){
-        var s = document.createElement("span");
-        s.className = this.itemCls;
-        s.innerHTML = "&#160;";
-        this.el = s;
-        li.addClass("x-menu-sep-li");
-        Ext.menu.Separator.superclass.onRender.apply(this, arguments);
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Shadow.jss.html b/www/extras/extjs/docs/output/Shadow.jss.html deleted file mode 100644 index 7b7cfaac8..000000000 --- a/www/extras/extjs/docs/output/Shadow.jss.html +++ /dev/null @@ -1,166 +0,0 @@ -Shadow.js

Shadow.js

/**
- * @class Ext.Shadow
- * Simple class that can provide a shadow effect for any element.  Note that the element MUST be absolutely positioned,
- * and the shadow does not provide any shimming.  This should be used only in simple cases -- for more advanced
- * functionality that can also provide the same shadow effect, see the {@link Ext.Layer} class.
- * @constructor
- * Create a new Shadow
- * @param {Object} config The config object
- */
-Ext.Shadow = function(config){
-    Ext.apply(this, config);
-    if(typeof this.mode != "string"){
-        this.mode = this.defaultMode;
-    }
-    var o = this.offset, a = {h: 0};
-    switch(this.mode.toLowerCase()){
-        case "drop":
-            a.w = 0;
-            a.l = a.t = o;
-        break;
-        case "sides":
-            a.w = (o*2);
-            a.l = -o;
-            a.t = o;
-        break;
-        case "frame":
-            a.w = a.h = (o*2);
-            a.l = a.t = -o;
-        break;
-    };
-    this.adjusts = a;
-};
-
-Ext.Shadow.prototype = {
-    /**
-     * @cfg {String} mode
-     * The shadow display mode.  Supports the following options:
-     * <pre>
-Option   Description
--------  ----------------------------------------------
-sides    Shadow displays on both sides and bottom only
-frame    Shadow displays equally on all four sides
-drop     Traditional bottom-right drop shadow
-</pre>
-     */
-// holder
-/***
-     * @cfg {String} offset
-     * The number of pixels to offset the shadow from the element (defaults to 4)
-     */
-    offset: 4,
-
-    // private
-    defaultMode: "drop",
-
-    /**
-     * Displays the shadow under the target element
-     * @param {String/HTMLElement/Element} targetEl The id or element under which the shadow should display
-     */
-    show : function(target){
-        target = Ext.get(target);
-        if(!this.el){
-            this.el = Ext.Shadow.Pool.pull();
-            if(this.el.dom.nextSibling != target.dom){
-                this.el.insertBefore(target);
-            }
-        }
-        this.el.setStyle("z-index", this.zIndex || parseInt(target.getStyle("z-index"), 10)-1);
-        if(Ext.isIE){
-            this.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius="+this.offset+")";
-        }
-        this.realign(
-            target.getLeft(true),
-            target.getTop(true),
-            target.getWidth(),
-            target.getHeight()
-        );
-        this.el.dom.style.display = "block";
-    },
-
-    /**
-     * Returns true if the shadow is visible, else false
-     */
-    isVisible : function(){
-        return this.el ? true : false;  
-    },
-
-    /**
-     * Direct alignment when values are already available. Show must be called at least once before
-     * calling this method to ensure it is initialized.
-     * @param {Number} left The target element left position
-     * @param {Number} top The target element top position
-     * @param {Number} width The target element width
-     * @param {Number} height The target element height
-     */
-    realign : function(l, t, w, h){
-        if(!this.el){
-            return;
-        }
-        var a = this.adjusts, d = this.el.dom, s = d.style;
-        var iea = 0;
-        if(Ext.isIE){
-            iea = -(this.offset);
-        }
-        s.left = (l+a.l+iea)+"px";
-        s.top = (t+a.t+iea)+"px";
-        var sw = (w+a.w), sh = (h+a.h), sws = sw +"px", shs = sh + "px";
-        if(s.width != sws || s.height != shs){
-            s.width = sws;
-            s.height = shs;
-            if(!Ext.isIE){
-                var cn = d.childNodes;
-                var sww = Math.max(0, (sw-12))+"px";
-                cn[0].childNodes[1].style.width = sww;
-                cn[1].childNodes[1].style.width = sww;
-                cn[2].childNodes[1].style.width = sww;
-                cn[1].style.height = Math.max(0, (sh-12))+"px";
-            }
-        }
-    },
-
-    /**
-     * Hides this shadow
-     */
-    hide : function(){
-        if(this.el){
-            this.el.dom.style.display = "none";
-            Ext.Shadow.Pool.push(this.el);
-            delete this.el;
-        }
-    },
-
-    /**
-     * Adjust the z-index of this shadow
-     * @param {Number} zindex The new z-index
-     */
-    setZIndex : function(z){
-        this.zIndex = z;
-        if(this.el){
-            this.el.setStyle("z-index", z);
-        }
-    }
-};
-
-// Private utility class that manages the internal Shadow cache
-Ext.Shadow.Pool = function(){
-    var p = [];
-    var markup = Ext.isIE ?
-                 '<div class="x-ie-shadow"></div>' :
-                 '<div class="x-shadow"><div class="xst"><div class="xstl"></div><div class="xstc"></div><div class="xstr"></div></div><div class="xsc"><div class="xsml"></div><div class="xsmc"></div><div class="xsmr"></div></div><div class="xsb"><div class="xsbl"></div><div class="xsbc"></div><div class="xsbr"></div></div></div>';
-    return {
-        pull : function(){
-            var sh = p.shift();
-            if(!sh){
-                sh = Ext.get(Ext.DomHelper.insertHtml("beforeBegin", document.body.firstChild, markup));
-                sh.autoBoxAdjust = false;
-            }
-            return sh;
-        },
-
-        push : function(sh){
-            p.push(sh);
-        }
-    };
-}();

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/SimpleStore.jss.html b/www/extras/extjs/docs/output/SimpleStore.jss.html deleted file mode 100644 index 7eec6ef85..000000000 --- a/www/extras/extjs/docs/output/SimpleStore.jss.html +++ /dev/null @@ -1,23 +0,0 @@ -SimpleStore.js

SimpleStore.js

/**
- * @class Ext.data.SimpleStore
- * @extends Ext.data.Store
- * Smaller help class to make creating Stores from Array data easier.
- * @cfg {Number} id The index in the array that be used for record ids. Leave blank to auto generate ids.
- * @cfg {Array} fields An standard field array consisting of string name or object literal field definitions
- * @cfg {Array} data The multi-dimensional array of data
- * @constructor
- * @param {Object} config
- */
-Ext.data.SimpleStore = function(config){
-    Ext.data.SimpleStore.superclass.constructor.call(this, {
-        reader: new Ext.data.ArrayReader({
-                id: config.id
-            },
-            Ext.data.Record.create(config.fields)
-        ),
-        proxy : new Ext.data.MemoryProxy(config.data)
-    });
-    this.load();
-};
-Ext.extend(Ext.data.SimpleStore, Ext.data.Store);

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/SortTypes.jss.html b/www/extras/extjs/docs/output/SortTypes.jss.html deleted file mode 100644 index 2e1af165e..000000000 --- a/www/extras/extjs/docs/output/SortTypes.jss.html +++ /dev/null @@ -1,88 +0,0 @@ -SortTypes.js

SortTypes.js


-/**
- * @class Ext.data.SortTypes
- * @singleton
- * Defines the default sorting (casting?) comparison functions used when sorting data.
- */
-Ext.data.SortTypes = {
-    /**
-     * Default sort that does nothing
-     * @param {Mixed} s The value being converted
-     * @return {Mixed} The comparison value
-     */
-    none : function(s){
-        return s;
-    },
-    
-    /**
-     * The regular expression used to strip tags
-     * @type {RegExp}
-     * @property
-     */
-    stripTagsRE : /<\/?[^>]+>/gi,
-    
-    /**
-     * Strips all HTML tags to sort on text only
-     * @param {Mixed} s The value being converted
-     * @return {String} The comparison value
-     */
-    asText : function(s){
-        return String(s).replace(this.stripTagsRE, "");
-    },
-    
-    /**
-     * Strips all HTML tags to sort on text only - Case insensitive
-     * @param {Mixed} s The value being converted
-     * @return {String} The comparison value
-     */
-    asUCText : function(s){
-        return String(s).toUpperCase().replace(this.stripTagsRE, "");
-    },
-    
-    /**
-     * Case insensitive string
-     * @param {Mixed} s The value being converted
-     * @return {String} The comparison value
-     */
-    asUCString : function(s) {
-    	return String(s).toUpperCase();
-    },
-    
-    /**
-     * Date sorting
-     * @param {Mixed} s The value being converted
-     * @return {Number} The comparison value
-     */
-    asDate : function(s) {
-        if(!s){
-            return 0;
-        }
-        if(s instanceof Date){
-            return s.getTime();
-        }
-    	return Date.parse(String(s));
-    },
-    
-    /**
-     * Float sorting
-     * @param {Mixed} s The value being converted
-     * @return {Float} The comparison value
-     */
-    asFloat : function(s) {
-    	var val = parseFloat(String(s).replace(/,/g, ""));
-        if(isNaN(val)) val = 0;
-    	return val;
-    },
-    
-    /**
-     * Integer sorting
-     * @param {Mixed} s The value being converted
-     * @return {Number} The comparison value
-     */
-    asInt : function(s) {
-        var val = parseInt(String(s).replace(/,/g, ""));
-        if(isNaN(val)) val = 0;
-    	return val;
-    }
-};

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/SplitBar.jss.html b/www/extras/extjs/docs/output/SplitBar.jss.html deleted file mode 100644 index 60613d28a..000000000 --- a/www/extras/extjs/docs/output/SplitBar.jss.html +++ /dev/null @@ -1,431 +0,0 @@ -SplitBar.js

SplitBar.js

/**
- * @class Ext.SplitBar
- * @extends Ext.util.Observable
- * Creates draggable splitter bar functionality from two elements.
- * <br><br>
- * Usage:
- * <pre><code>
-var split = new Ext.SplitBar("elementToDrag", "elementToSize",
-                   Ext.SplitBar.HORIZONTAL, Ext.SplitBar.LEFT);
-split.setAdapter(new Ext.SplitBar.AbsoluteLayoutAdapter("container"));
-split.minSize = 100;
-split.maxSize = 600;
-split.animate = true;
-split.on('moved', splitterMoved);
-</code></pre>
- * @constructor
- * Create a new SplitBar
- * @param {String/HTMLElement/Element} dragElement The element to be dragged and act as the SplitBar. 
- * @param {String/HTMLElement/Element} resizingElement The element to be resized based on where the SplitBar element is dragged 
- * @param {Number} orientation (optional) Either Ext.SplitBar.HORIZONTAL or Ext.SplitBar.VERTICAL. (Defaults to HORIZONTAL)
- * @param {Number} placement (optional) Either Ext.SplitBar.LEFT or Ext.SplitBar.RIGHT for horizontal or  
-                        Ext.SplitBar.TOP or Ext.SplitBar.BOTTOM for vertical. (By default, this is determined automatically by the intial position 
-                        position of the SplitBar).
- */
-Ext.SplitBar = function(dragElement, resizingElement, orientation, placement, existingProxy){
-    
-    /** @private */
-    this.el = Ext.get(dragElement, true);
-    this.el.dom.unselectable = "on";
-    /** @private */
-    this.resizingEl = Ext.get(resizingElement, true);
-
-    /**
-     * @private
-     * The orientation of the split. Either Ext.SplitBar.HORIZONTAL or Ext.SplitBar.VERTICAL. (Defaults to HORIZONTAL)
-     * Note: If this is changed after creating the SplitBar, the placement property must be manually updated
-     * @type Number
-     */
-    this.orientation = orientation || Ext.SplitBar.HORIZONTAL;
-    
-    /**
-     * The minimum size of the resizing element. (Defaults to 0)
-     * @type Number
-     */
-    this.minSize = 0;
-    
-    /**
-     * The maximum size of the resizing element. (Defaults to 2000)
-     * @type Number
-     */
-    this.maxSize = 2000;
-    
-    /**
-     * Whether to animate the transition to the new size
-     * @type Boolean
-     */
-    this.animate = false;
-    
-    /**
-     * Whether to create a transparent shim that overlays the page when dragging, enables dragging across iframes.
-     * @type Boolean
-     */
-    this.useShim = false;
-    
-    /** @private */
-    this.shim = null;
-    
-    if(!existingProxy){
-        /** @private */
-        this.proxy = Ext.SplitBar.createProxy(this.orientation);
-    }else{
-        this.proxy = Ext.get(existingProxy).dom;
-    }
-    /** @private */
-    this.dd = new Ext.dd.DDProxy(this.el.dom.id, "XSplitBars", {dragElId : this.proxy.id});
-    
-    /** @private */
-    this.dd.b4StartDrag = this.onStartProxyDrag.createDelegate(this);
-    
-    /** @private */
-    this.dd.endDrag = this.onEndProxyDrag.createDelegate(this);
-    
-    /** @private */
-    this.dragSpecs = {};
-    
-    /**
-     * @private The adapter to use to positon and resize elements
-     */
-    this.adapter = new Ext.SplitBar.BasicLayoutAdapter();
-    this.adapter.init(this);
-    
-    if(this.orientation == Ext.SplitBar.HORIZONTAL){
-        /** @private */
-        this.placement = placement || (this.el.getX() > this.resizingEl.getX() ? Ext.SplitBar.LEFT : Ext.SplitBar.RIGHT);
-        this.el.addClass("x-splitbar-h");
-    }else{
-        /** @private */
-        this.placement = placement || (this.el.getY() > this.resizingEl.getY() ? Ext.SplitBar.TOP : Ext.SplitBar.BOTTOM);
-        this.el.addClass("x-splitbar-v");
-    }
-    
-    this.addEvents({
-        /**
-         * @event resize
-         * Fires when the splitter is moved (alias for moved)
-         * @param {Ext.SplitBar} this
-         * @param {Number} newSize the new width or height
-         */
-        "resize" : true,
-        /**
-         * @event moved
-         * Fires when the splitter is moved
-         * @param {Ext.SplitBar} this
-         * @param {Number} newSize the new width or height
-         */
-        "moved" : true,
-        /**
-         * @event beforeresize
-         * Fires before the splitter is dragged
-         * @param {Ext.SplitBar} this
-         */
-        "beforeresize" : true,
-
-        "beforeapply" : true
-    });
-
-    Ext.SplitBar.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.SplitBar, Ext.util.Observable, {
-    onStartProxyDrag : function(x, y){
-        this.fireEvent("beforeresize", this);
-        if(!this.overlay){
-            var o = Ext.DomHelper.insertFirst(document.body,  {cls: "x-drag-overlay", html: "&#160;"}, true);
-            o.unselectable();
-            o.enableDisplayMode("block");
-            // all splitbars share the same overlay
-            Ext.SplitBar.prototype.overlay = o;
-        }
-        this.overlay.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true));
-        this.overlay.show();
-        Ext.get(this.proxy).setDisplayed("block");
-        var size = this.adapter.getElementSize(this);
-        this.activeMinSize = this.getMinimumSize();;
-        this.activeMaxSize = this.getMaximumSize();;
-        var c1 = size - this.activeMinSize;
-        var c2 = Math.max(this.activeMaxSize - size, 0);
-        if(this.orientation == Ext.SplitBar.HORIZONTAL){
-            this.dd.resetConstraints();
-            this.dd.setXConstraint(
-                this.placement == Ext.SplitBar.LEFT ? c1 : c2, 
-                this.placement == Ext.SplitBar.LEFT ? c2 : c1
-            );
-            this.dd.setYConstraint(0, 0);
-        }else{
-            this.dd.resetConstraints();
-            this.dd.setXConstraint(0, 0);
-            this.dd.setYConstraint(
-                this.placement == Ext.SplitBar.TOP ? c1 : c2, 
-                this.placement == Ext.SplitBar.TOP ? c2 : c1
-            );
-         }
-        this.dragSpecs.startSize = size;
-        this.dragSpecs.startPoint = [x, y];
-        Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd, x, y);
-    },
-    
-    /** 
-     * @private Called after the drag operation by the DDProxy
-     */
-    onEndProxyDrag : function(e){
-        Ext.get(this.proxy).setDisplayed(false);
-        var endPoint = Ext.lib.Event.getXY(e);
-        if(this.overlay){
-            this.overlay.hide();
-        }
-        var newSize;
-        if(this.orientation == Ext.SplitBar.HORIZONTAL){
-            newSize = this.dragSpecs.startSize + 
-                (this.placement == Ext.SplitBar.LEFT ?
-                    endPoint[0] - this.dragSpecs.startPoint[0] :
-                    this.dragSpecs.startPoint[0] - endPoint[0]
-                );
-        }else{
-            newSize = this.dragSpecs.startSize + 
-                (this.placement == Ext.SplitBar.TOP ?
-                    endPoint[1] - this.dragSpecs.startPoint[1] :
-                    this.dragSpecs.startPoint[1] - endPoint[1]
-                );
-        }
-        newSize = Math.min(Math.max(newSize, this.activeMinSize), this.activeMaxSize);
-        if(newSize != this.dragSpecs.startSize){
-            if(this.fireEvent('beforeapply', this, newSize) !== false){
-                this.adapter.setElementSize(this, newSize);
-                this.fireEvent("moved", this, newSize);
-                this.fireEvent("resize", this, newSize);
-            }
-        }
-    },
-    
-    /**
-     * Get the adapter this SplitBar uses
-     * @return The adapter object
-     */
-    getAdapter : function(){
-        return this.adapter;
-    },
-    
-    /**
-     * Set the adapter this SplitBar uses
-     * @param {Object} adapter A SplitBar adapter object
-     */
-    setAdapter : function(adapter){
-        this.adapter = adapter;
-        this.adapter.init(this);
-    },
-    
-    /**
-     * Gets the minimum size for the resizing element
-     * @return {Number} The minimum size
-     */
-    getMinimumSize : function(){
-        return this.minSize;
-    },
-    
-    /**
-     * Sets the minimum size for the resizing element
-     * @param {Number} minSize The minimum size
-     */
-    setMinimumSize : function(minSize){
-        this.minSize = minSize;
-    },
-    
-    /**
-     * Gets the maximum size for the resizing element
-     * @return {Number} The maximum size
-     */
-    getMaximumSize : function(){
-        return this.maxSize;
-    },
-    
-    /**
-     * Sets the maximum size for the resizing element
-     * @param {Number} maxSize The maximum size
-     */
-    setMaximumSize : function(maxSize){
-        this.maxSize = maxSize;
-    },
-    
-    /**
-     * Sets the initialize size for the resizing element
-     * @param {Number} size The initial size
-     */
-    setCurrentSize : function(size){
-        var oldAnimate = this.animate;
-        this.animate = false;
-        this.adapter.setElementSize(this, size);
-        this.animate = oldAnimate;
-    },
-    
-    /**
-     * Destroy this splitbar. 
-     * @param {Boolean} removeEl True to remove the element
-     */
-    destroy : function(removeEl){
-        if(this.shim){
-            this.shim.remove();
-        }
-        this.dd.unreg();
-        this.proxy.parentNode.removeChild(this.proxy);
-        if(removeEl){
-            this.el.remove();
-        }
-    }
-});
-
-/**
- * @private static Create our own proxy element element. So it will be the same same size on all browsers, we won't use borders. Instead we use a background color.
- */
-Ext.SplitBar.createProxy = function(dir){
-    var proxy = new Ext.Element(document.createElement("div"));
-    proxy.unselectable();
-    var cls = 'x-splitbar-proxy';
-    proxy.addClass(cls + ' ' + (dir == Ext.SplitBar.HORIZONTAL ? cls +'-h' : cls + '-v'));
-    document.body.appendChild(proxy.dom);
-    return proxy.dom;
-};
-
-/** 
- * @class Ext.SplitBar.BasicLayoutAdapter
- * Default Adapter. It assumes the splitter and resizing element are not positioned
- * elements and only gets/sets the width of the element. Generally used for table based layouts.
- */
-Ext.SplitBar.BasicLayoutAdapter = function(){
-};
-
-Ext.SplitBar.BasicLayoutAdapter.prototype = {
-    // do nothing for now
-    init : function(s){
-    
-    },
-    /**
-     * Called before drag operations to get the current size of the resizing element. 
-     * @param {Ext.SplitBar} s The SplitBar using this adapter
-     */
-     getElementSize : function(s){
-        if(s.orientation == Ext.SplitBar.HORIZONTAL){
-            return s.resizingEl.getWidth();
-        }else{
-            return s.resizingEl.getHeight();
-        }
-    },
-    
-    /**
-     * Called after drag operations to set the size of the resizing element.
-     * @param {Ext.SplitBar} s The SplitBar using this adapter
-     * @param {Number} newSize The new size to set
-     * @param {Function} onComplete A function to be invoke when resizing is complete
-     */
-    setElementSize : function(s, newSize, onComplete){
-        if(s.orientation == Ext.SplitBar.HORIZONTAL){
-            if(!s.animate){
-                s.resizingEl.setWidth(newSize);
-                if(onComplete){
-                    onComplete(s, newSize);
-                }
-            }else{
-                s.resizingEl.setWidth(newSize, true, .1, onComplete, 'easeOut');
-            }
-        }else{
-            
-            if(!s.animate){
-                s.resizingEl.setHeight(newSize);
-                if(onComplete){
-                    onComplete(s, newSize);
-                }
-            }else{
-                s.resizingEl.setHeight(newSize, true, .1, onComplete, 'easeOut');
-            }
-        }
-    }
-};
-
-/** 
- *@class Ext.SplitBar.AbsoluteLayoutAdapter
- * @extends Ext.SplitBar.BasicLayoutAdapter
- * Adapter that  moves the splitter element to align with the resized sizing element. 
- * Used with an absolute positioned SplitBar.
- * @param {String/HTMLElement/Element} container The container that wraps around the absolute positioned content. If it's
- * document.body, make sure you assign an id to the body element.
- */
-Ext.SplitBar.AbsoluteLayoutAdapter = function(container){
-    this.basic = new Ext.SplitBar.BasicLayoutAdapter();
-    this.container = Ext.get(container);
-};
-
-Ext.SplitBar.AbsoluteLayoutAdapter.prototype = {
-    init : function(s){
-        this.basic.init(s);
-    },
-    
-    getElementSize : function(s){
-        return this.basic.getElementSize(s);
-    },
-    
-    setElementSize : function(s, newSize, onComplete){
-        this.basic.setElementSize(s, newSize, this.moveSplitter.createDelegate(this, [s]));
-    },
-    
-    moveSplitter : function(s){
-        var yes = Ext.SplitBar;
-        switch(s.placement){
-            case yes.LEFT:
-                s.el.setX(s.resizingEl.getRight());
-                break;
-            case yes.RIGHT:
-                s.el.setStyle("right", (this.container.getWidth() - s.resizingEl.getLeft()) + "px");
-                break;
-            case yes.TOP:
-                s.el.setY(s.resizingEl.getBottom());
-                break;
-            case yes.BOTTOM:
-                s.el.setY(s.resizingEl.getTop() - s.el.getHeight());
-                break;
-        }
-    }
-};
-
-/**
- * Orientation constant - Create a vertical SplitBar
- * @static
- * @type Number
- */
-Ext.SplitBar.VERTICAL = 1;
-
-/**
- * Orientation constant - Create a horizontal SplitBar
- * @static
- * @type Number
- */
-Ext.SplitBar.HORIZONTAL = 2;
-
-/**
- * Placement constant - The resizing element is to the left of the splitter element
- * @static
- * @type Number
- */
-Ext.SplitBar.LEFT = 1;
-
-/**
- * Placement constant - The resizing element is to the right of the splitter element
- * @static
- * @type Number
- */
-Ext.SplitBar.RIGHT = 2;
-
-/**
- * Placement constant - The resizing element is positioned above the splitter element
- * @static
- * @type Number
- */
-Ext.SplitBar.TOP = 3;
-
-/**
- * Placement constant - The resizing element is positioned under splitter element
- * @static
- * @type Number
- */
-Ext.SplitBar.BOTTOM = 4;
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/SplitLayoutRegion.jss.html b/www/extras/extjs/docs/output/SplitLayoutRegion.jss.html deleted file mode 100644 index e9a6fea2c..000000000 --- a/www/extras/extjs/docs/output/SplitLayoutRegion.jss.html +++ /dev/null @@ -1,326 +0,0 @@ -SplitLayoutRegion.js

SplitLayoutRegion.js

/**
- * @class Ext.SplitLayoutRegion
- * @extends Ext.LayoutRegion
- * Adds a splitbar and other (private) useful functionality to a LayoutRegion
- */
-Ext.SplitLayoutRegion = function(mgr, config, pos, cursor){
-    this.cursor = cursor;
-    Ext.SplitLayoutRegion.superclass.constructor.call(this, mgr, config, pos);
-};
-
-Ext.extend(Ext.SplitLayoutRegion, Ext.LayoutRegion, {
-    splitTip : "Drag to resize.",
-    collapsibleSplitTip : "Drag to resize. Double click to hide.",
-    useSplitTips : false,
-
-    applyConfig : function(config){
-        Ext.SplitLayoutRegion.superclass.applyConfig.call(this, config);
-        if(config.split){
-            if(!this.split){
-                var splitEl = Ext.DomHelper.append(this.mgr.el.dom, 
-                        {tag: "div", id: this.el.id + "-split", cls: "x-layout-split x-layout-split-"+this.position, html: "&#160;"});
-                /** The SplitBar for this region @type Ext.SplitBar */
-                this.split = new Ext.SplitBar(splitEl, this.el, this.orientation);
-                this.split.on("moved", this.onSplitMove, this);
-                this.split.useShim = config.useShim === true;
-                this.split.getMaximumSize = this[this.position == 'north' || this.position == 'south' ? 'getVMaxSize' : 'getHMaxSize'].createDelegate(this);
-                if(this.useSplitTips){
-                    this.split.el.dom.title = config.collapsible ? this.collapsibleSplitTip : this.splitTip;
-                }
-                if(config.collapsible){
-                    this.split.el.on("dblclick", this.collapse,  this);
-                }
-            }
-            if(typeof config.minSize != "undefined"){
-                this.split.minSize = config.minSize;
-            }
-            if(typeof config.maxSize != "undefined"){
-                this.split.maxSize = config.maxSize;
-            }
-            if(config.hideWhenEmpty || config.hidden){
-                this.hideSplitter();
-            }
-        }
-    },
-
-    getHMaxSize : function(){
-         var cmax = this.config.maxSize || 10000;
-         var center = this.mgr.getRegion("center");
-         return Math.min(cmax, (this.el.getWidth()+center.getEl().getWidth())-center.getMinWidth());
-    },
-
-    getVMaxSize : function(){
-         var cmax = this.config.maxSize || 10000;
-         var center = this.mgr.getRegion("center");
-         return Math.min(cmax, (this.el.getHeight()+center.getEl().getHeight())-center.getMinHeight());
-    },
-
-    onSplitMove : function(split, newSize){
-        this.fireEvent("resized", this, newSize);
-    },
-    
-    /** 
-     * Returns the SplitBar for this region.
-     * @return {Ext.SplitBar}
-     */
-    getSplitBar : function(){
-        return this.split;
-    },
-    
-    hide : function(){
-        this.hideSplitter();
-        Ext.SplitLayoutRegion.superclass.hide.call(this);
-    },
-
-    hideSplitter : function(){
-        if(this.split){
-            this.split.el.setLocation(-2000,-2000);
-            this.split.el.hide();
-        }
-    },
-
-    show : function(){
-        if(this.split){
-            this.split.el.show();
-        }
-        Ext.SplitLayoutRegion.superclass.show.call(this);
-    },
-    
-    beforeSlide: function(){
-        if(Ext.isGecko){// firefox overflow auto bug workaround
-            this.bodyEl.clip();
-            if(this.tabs) this.tabs.bodyEl.clip();
-            if(this.activePanel){
-                this.activePanel.getEl().clip();
-                
-                if(this.activePanel.beforeSlide){
-                    this.activePanel.beforeSlide();
-                }
-            }
-        }
-    },
-    
-    afterSlide : function(){
-        if(Ext.isGecko){// firefox overflow auto bug workaround
-            this.bodyEl.unclip();
-            if(this.tabs) this.tabs.bodyEl.unclip();
-            if(this.activePanel){
-                this.activePanel.getEl().unclip();
-                if(this.activePanel.afterSlide){
-                    this.activePanel.afterSlide();
-                }
-            }
-        }
-    },
-
-    initAutoHide : function(){
-        if(this.autoHide !== false){
-            if(!this.autoHideHd){
-                var st = new Ext.util.DelayedTask(this.slideIn, this);
-                this.autoHideHd = {
-                    "mouseout": function(e){
-                        if(!e.within(this.el, true)){
-                            st.delay(500);
-                        }
-                    },
-                    "mouseover" : function(e){
-                        st.cancel();
-                    },
-                    scope : this
-                };
-            }
-            this.el.on(this.autoHideHd);
-        }
-    },
-
-    clearAutoHide : function(){
-        if(this.autoHide !== false){
-            this.el.un("mouseout", this.autoHideHd.mouseout);
-            this.el.un("mouseover", this.autoHideHd.mouseover);
-        }
-    },
-
-    clearMonitor : function(){
-        Ext.get(document).un("click", this.slideInIf, this);
-    },
-
-    // these names are backwards but not changed for compat
-    slideOut : function(){
-        if(this.isSlid || this.el.hasActiveFx()){
-            return;
-        }
-        this.isSlid = true;
-        if(this.collapseBtn){
-            this.collapseBtn.hide();
-        }
-        this.closeBtnState = this.closeBtn.getStyle('display');
-        this.closeBtn.hide();
-        if(this.stickBtn){
-            this.stickBtn.show();
-        }
-        this.el.show();
-        this.el.alignTo(this.collapsedEl, this.getCollapseAnchor());
-        this.beforeSlide();
-        this.el.setStyle("z-index", 20000);
-        this.el.slideIn(this.getSlideAnchor(), {
-            callback: function(){
-                this.afterSlide();
-                this.initAutoHide();
-                Ext.get(document).on("click", this.slideInIf, this);
-                this.fireEvent("slideshow", this);
-            },
-            scope: this,
-            block: true
-        });
-    },
-
-    afterSlideIn : function(){
-        this.clearAutoHide();
-        this.isSlid = false;
-        this.clearMonitor();
-        this.el.setStyle("z-index", "");
-        if(this.collapseBtn){
-            this.collapseBtn.show();
-        }
-        this.closeBtn.setStyle('display', this.closeBtnState);
-        if(this.stickBtn){
-            this.stickBtn.hide();
-        }
-        this.fireEvent("slidehide", this);
-    },
-
-    slideIn : function(cb){
-        if(!this.isSlid || this.el.hasActiveFx()){
-            Ext.callback(cb);
-            return;
-        }
-        this.isSlid = false;
-        this.beforeSlide();
-        this.el.slideOut(this.getSlideAnchor(), {
-            callback: function(){
-                this.el.setLeftTop(-10000, -10000);
-                this.afterSlide();
-                this.afterSlideIn();
-                Ext.callback(cb);
-            },
-            scope: this,
-            block: true
-        });
-    },
-    
-    slideInIf : function(e){
-        if(!e.within(this.el)){
-            this.slideIn();
-        }
-    },
-
-    animateCollapse : function(){
-        this.beforeSlide();
-        this.el.setStyle("z-index", 20000);
-        var anchor = this.getSlideAnchor();
-        this.el.slideOut(anchor, {
-            callback : function(){
-                this.el.setStyle("z-index", "");
-                this.collapsedEl.slideIn(anchor, {duration:.3});
-                this.afterSlide();
-                this.el.setLocation(-10000,-10000);
-                this.el.hide();
-                this.fireEvent("collapsed", this);
-            },
-            scope: this,
-            block: true
-        });
-    },
-
-    animateExpand : function(){
-        this.beforeSlide();
-        this.el.alignTo(this.collapsedEl, this.getCollapseAnchor(), this.getExpandAdj());
-        this.el.setStyle("z-index", 20000);
-        this.collapsedEl.hide({
-            duration:.1
-        });
-        this.el.slideIn(this.getSlideAnchor(), {
-            callback : function(){
-                this.el.setStyle("z-index", "");
-                this.afterSlide();
-                if(this.split){
-                    this.split.el.show();
-                }
-                this.fireEvent("invalidated", this);
-                this.fireEvent("expanded", this);
-            },
-            scope: this,
-            block: true
-        });
-    },
-
-    anchors : {
-        "west" : "left",
-        "east" : "right",
-        "north" : "top",
-        "south" : "bottom"
-    },
-
-    sanchors : {
-        "west" : "l",
-        "east" : "r",
-        "north" : "t",
-        "south" : "b"
-    },
-
-    canchors : {
-        "west" : "tl-tr",
-        "east" : "tr-tl",
-        "north" : "tl-bl",
-        "south" : "bl-tl"
-    },
-
-    getAnchor : function(){
-        return this.anchors[this.position];
-    },
-
-    getCollapseAnchor : function(){
-        return this.canchors[this.position];
-    },
-
-    getSlideAnchor : function(){
-        return this.sanchors[this.position];
-    },
-
-    getAlignAdj : function(){
-        var cm = this.cmargins;
-        switch(this.position){
-            case "west":
-                return [0, 0];
-            break;
-            case "east":
-                return [0, 0];
-            break;
-            case "north":
-                return [0, 0];
-            break;
-            case "south":
-                return [0, 0];
-            break;
-        }
-    },
-
-    getExpandAdj : function(){
-        var c = this.collapsedEl, cm = this.cmargins;
-        switch(this.position){
-            case "west":
-                return [-(cm.right+c.getWidth()+cm.left), 0];
-            break;
-            case "east":
-                return [cm.right+c.getWidth()+cm.left, 0];
-            break;
-            case "north":
-                return [0, -(cm.top+cm.bottom+c.getHeight())];
-            break;
-            case "south":
-                return [0, cm.top+cm.bottom+c.getHeight()];
-            break;
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/State.jss.html b/www/extras/extjs/docs/output/State.jss.html deleted file mode 100644 index bd8b38b4e..000000000 --- a/www/extras/extjs/docs/output/State.jss.html +++ /dev/null @@ -1,279 +0,0 @@ -State.js

State.js

/**
- * @class Ext.state.Provider
- * Abstract base class for state provider implementations. This class provides methods
- * for encoding and decoding <b>typed</b> variables including dates and defines the 
- * Provider interface.
- */
-Ext.state.Provider = function(){
-    Ext.state.Provider.superclass.constructor.call(this);
-    /**
-     * @event statechange
-     * Fires when a state change occurs.
-     * @param {Provider} this This state provider
-     * @param {String} key The state key which was changed
-     * @param {String} value The encoded value for the state
-     */
-    this.addEvents({
-        "statechange": true
-    });
-    this.state = {};
-    Ext.state.Provider.superclass.constructor.call(this);
-};
-Ext.extend(Ext.state.Provider, Ext.util.Observable, {
-    /**
-     * Returns the current value for a key
-     * @param {String} name The key name
-     * @param {Mixed} defaultValue A default value to return if the key's value is not found
-     * @return {Mixed} The state data
-     */
-    get : function(name, defaultValue){
-        return typeof this.state[name] == "undefined" ?
-            defaultValue : this.state[name];
-    },
-    
-    /**
-     * Clears a value from the state
-     * @param {String} name The key name
-     */
-    clear : function(name){
-        delete this.state[name];
-        this.fireEvent("statechange", this, name, null);
-    },
-    
-    /**
-     * Sets the value for a key
-     * @param {String} name The key name
-     * @param {Mixed} value The value to set
-     */
-    set : function(name, value){
-        this.state[name] = value;
-        this.fireEvent("statechange", this, name, value);
-    },
-    
-    /**
-     * Decodes a string previously encoded with {@link #encodeValue}.
-     * @param {String} value The value to decode
-     * @return {Mixed} The decoded value
-     */
-    decodeValue : function(cookie){
-        var re = /^(a|n|d|b|s|o)\:(.*)$/;
-        var matches = re.exec(unescape(cookie));
-        if(!matches || !matches[1]) return; // non state cookie
-        var type = matches[1];
-        var v = matches[2];
-        switch(type){
-            case "n":
-                return parseFloat(v);
-            case "d":
-                return new Date(Date.parse(v));
-            case "b":
-                return (v == "1");
-            case "a":
-                var all = [];
-                var values = v.split("^");
-                for(var i = 0, len = values.length; i < len; i++){
-                    all.push(this.decodeValue(values[i]));
-                }
-                return all;
-           case "o":
-                var all = {};
-                var values = v.split("^");
-                for(var i = 0, len = values.length; i < len; i++){
-                    var kv = values[i].split("=");
-                    all[kv[0]] = this.decodeValue(kv[1]);
-                }
-                return all;
-           default:
-                return v;
-        }
-    },
-    
-    /**
-     * Encodes a value including type information.  Decode with {@link #decodeValue}.
-     * @param {Mixed} value The value to encode
-     * @return {String} The encoded value
-     */
-    encodeValue : function(v){
-        var enc;
-        if(typeof v == "number"){
-            enc = "n:" + v;
-        }else if(typeof v == "boolean"){
-            enc = "b:" + (v ? "1" : "0");
-        }else if(v instanceof Date){
-            enc = "d:" + v.toGMTString();
-        }else if(v instanceof Array){
-            var flat = "";
-            for(var i = 0, len = v.length; i < len; i++){
-                flat += this.encodeValue(v[i]);
-                if(i != len-1) flat += "^";
-            }
-            enc = "a:" + flat;
-        }else if(typeof v == "object"){
-            var flat = "";
-            for(var key in v){
-                if(typeof v[key] != "function"){
-                    flat += key + "=" + this.encodeValue(v[key]) + "^";
-                }
-            }
-            enc = "o:" + flat.substring(0, flat.length-1);
-        }else{
-            enc = "s:" + v;
-        }
-        return escape(enc);        
-    }
-});
-
-/**
- * @class Ext.state.Manager
- * This is the global state manager. By default all components that are "state aware" check this class
- * for state information if you don't pass them a custom state provider. In order for this class
- * to be useful, it must be initialized with a provider when your application initializes.
- <pre><code>
-// in your initialization function
-init : function(){
-   Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
-   ...
-   // supposed you have a {@link Ext.BorderLayout}
-   var layout = new Ext.BorderLayout(...);
-   layout.restoreState();
-   // or a {Ext.BasicDialog}
-   var dialog = new Ext.BasicDialog(...);
-   dialog.restoreState();
- </code></pre>
- * @singleton
- */
-Ext.state.Manager = function(){
-    var provider = new Ext.state.Provider();
-    
-    return {
-        /**
-         * Configures the default state provider for your application
-         * @param {Provider} stateProvider The state provider to set
-         */
-        setProvider : function(stateProvider){
-            provider = stateProvider;
-        },
-        
-        /**
-         * Returns the current value for a key
-         * @param {String} name The key name
-         * @param {Mixed} defaultValue The default value to return if the key lookup does not match
-         * @return {Mixed} The state data
-         */
-        get : function(key, defaultValue){
-            return provider.get(key, defaultValue);
-        },
-        
-        /**
-         * Sets the value for a key
-         * @param {String} name The key name
-         * @param {Mixed} value The state data
-         */
-         set : function(key, value){
-            provider.set(key, value);
-        },
-        
-        /**
-         * Clears a value from the state
-         * @param {String} name The key name
-         */
-        clear : function(key){
-            provider.clear(key);
-        },
-        
-        /**
-         * Gets the currently configured state provider
-         * @return {Provider} The state provider
-         */
-        getProvider : function(){
-            return provider;
-        }
-    };
-}();
-
-/**
- * @class Ext.state.CookieProvider
- * @extends Ext.state.Provider
- * The default Provider implementation which saves state via cookies.
- * <br />Usage:
- <pre><code>
-   var cp = new Ext.state.CookieProvider({
-       path: "/cgi-bin/",
-       expires: new Date(new Date().getTime()+(1000*60*60*24*30)); //30 days
-       domain: "extjs.com"
-   })
-   Ext.state.Manager.setProvider(cp);
- </code></pre>
- * @cfg {String} path The path for which the cookie is active (defaults to root '/' which makes it active for all pages in the site)
- * @cfg {Date} expires The cookie expiration date (defaults to 7 days from now)
- * @cfg {String} domain The domain to save the cookie for.  Note that you cannot specify a different domain than
- * your page is on, but you can specify a sub-domain, or simply the domain itself like 'extjs.com' to include
- * all sub-domains if you need to access cookies across different sub-domains (defaults to null which uses the same
- * domain the page is running on including the 'www' like 'www.extjs.com')
- * @cfg {Boolean} secure True if the site is using SSL (defaults to false)
- * @constructor
- * Create a new CookieProvider
- * @param {Object} config The configuration object
- */
-Ext.state.CookieProvider = function(config){
-    Ext.state.CookieProvider.superclass.constructor.call(this);
-    this.path = "/";
-    this.expires = new Date(new Date().getTime()+(1000*60*60*24*7)); //7 days
-    this.domain = null;
-    this.secure = false;
-    Ext.apply(this, config);
-    this.state = this.readCookies();
-};
-
-Ext.extend(Ext.state.CookieProvider, Ext.state.Provider, {
-    // private
-    set : function(name, value){
-        if(typeof value == "undefined" || value === null){
-            this.clear(name);
-            return;
-        }
-        this.setCookie(name, value);
-        Ext.state.CookieProvider.superclass.set.call(this, name, value);
-    },
-
-    // private
-    clear : function(name){
-        this.clearCookie(name);
-        Ext.state.CookieProvider.superclass.clear.call(this, name);
-    },
-
-    // private
-    readCookies : function(){
-        var cookies = {};
-        var c = document.cookie + ";";
-        var re = /\s?(.*?)=(.*?);/g;
-    	var matches;
-    	while((matches = re.exec(c)) != null){
-            var name = matches[1];
-            var value = matches[2];
-            if(name && name.substring(0,3) == "ys-"){
-                cookies[name.substr(3)] = this.decodeValue(value);
-            }
-        }
-        return cookies;
-    },
-
-    // private
-    setCookie : function(name, value){
-        document.cookie = "ys-"+ name + "=" + this.encodeValue(value) +
-           ((this.expires == null) ? "" : ("; expires=" + this.expires.toGMTString())) +
-           ((this.path == null) ? "" : ("; path=" + this.path)) +
-           ((this.domain == null) ? "" : ("; domain=" + this.domain)) +
-           ((this.secure == true) ? "; secure" : "");
-    },
-
-    // private
-    clearCookie : function(name){
-        document.cookie = "ys-" + name + "=null; expires=Thu, 01-Jan-70 00:00:01 GMT" +
-           ((this.path == null) ? "" : ("; path=" + this.path)) +
-           ((this.domain == null) ? "" : ("; domain=" + this.domain)) +
-           ((this.secure == true) ? "; secure" : "");
-    }
-});
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/StatusProxy.jss.html b/www/extras/extjs/docs/output/StatusProxy.jss.html deleted file mode 100644 index 4a44c5b80..000000000 --- a/www/extras/extjs/docs/output/StatusProxy.jss.html +++ /dev/null @@ -1,161 +0,0 @@ -StatusProxy.js

StatusProxy.js

/**
- * @class Ext.dd.StatusProxy
- * A specialized drag proxy that supports a drop status icon, {@link Ext.Layer} styles and auto-repair.  This is the
- * default drag proxy used by all Ext.dd components.
- * @constructor
- * @param {Object} config
- */
-Ext.dd.StatusProxy = function(config){
-    Ext.apply(this, config);
-    this.id = this.id || Ext.id();
-    this.el = new Ext.Layer({
-        dh: {
-            id: this.id, tag: "div", cls: "x-dd-drag-proxy "+this.dropNotAllowed, children: [
-                {tag: "div", cls: "x-dd-drop-icon"},
-                {tag: "div", cls: "x-dd-drag-ghost"}
-            ]
-        }, 
-        shadow: !config || config.shadow !== false
-    });
-    this.ghost = Ext.get(this.el.dom.childNodes[1]);
-    this.dropStatus = this.dropNotAllowed;
-};
-
-Ext.dd.StatusProxy.prototype = {
-    /**
-     * @cfg {String} dropAllowed
-     * The CSS class to apply to the status element when drop is allowed (defaults to "x-dd-drop-ok").
-     */
-    dropAllowed : "x-dd-drop-ok",
-    /**
-     * @cfg {String} dropNotAllowed
-     * The CSS class to apply to the status element when drop is not allowed (defaults to "x-dd-drop-nodrop").
-     */
-    dropNotAllowed : "x-dd-drop-nodrop",
-
-    /**
-     * Updates the proxy's visual element to indicate the status of whether or not drop is allowed
-     * over the current target element.
-     * @param {String} cssClass The css class for the new drop status indicator image
-     */
-    setStatus : function(cssClass){
-        cssClass = cssClass || this.dropNotAllowed;
-        if(this.dropStatus != cssClass){
-            this.el.replaceClass(this.dropStatus, cssClass);
-            this.dropStatus = cssClass;
-        }
-    },
-
-    /**
-     * Resets the status indicator to the default dropNotAllowed value
-     * @param {Boolean} clearGhost True to also remove all content from the ghost, false to preserve it
-     */
-    reset : function(clearGhost){
-        this.el.dom.className = "x-dd-drag-proxy " + this.dropNotAllowed;
-        this.dropStatus = this.dropNotAllowed;
-        if(clearGhost){
-            this.ghost.update("");
-        }
-    },
-
-    /**
-     * Updates the contents of the ghost element
-     * @param {String} html The html that will replace the current innerHTML of the ghost element
-     */
-    update : function(html){
-        if(typeof html == "string"){
-            this.ghost.update(html);
-        }else{
-            this.ghost.update("");
-            html.style.margin = "0";
-            this.ghost.dom.appendChild(html);
-        }        
-    },
-
-    /**
-     * Returns the underlying proxy {@link Ext.Layer}
-     * @return {Ext.Layer} el
-    */
-    getEl : function(){
-        return this.el;
-    },
-
-    /**
-     * Returns the ghost element
-     * @return {Ext.Element} el
-     */
-    getGhost : function(){
-        return this.ghost;
-    },
-
-    /**
-     * Hides the proxy
-     * @param {Boolean} clear True to reset the status and clear the ghost contents, false to preserve them
-     */
-    hide : function(clear){
-        this.el.hide();
-        if(clear){
-            this.reset(true);
-        }
-    },
-
-    /**
-     * Stops the repair animation if it's currently running
-     */
-    stop : function(){
-        if(this.anim && this.anim.isAnimated && this.anim.isAnimated()){
-            this.anim.stop();
-        }
-    },
-
-    /**
-     * Displays this proxy
-     */
-    show : function(){
-        this.el.show();
-    },
-
-    /**
-     * Force the Layer to sync its shadow and shim positions to the element
-     */
-    sync : function(){
-        this.el.sync();
-    },
-
-    /**
-     * Causes the proxy to return to its position of origin via an animation.  Should be called after an
-     * invalid drop operation by the item being dragged.
-     * @param {Array} xy The XY position of the element ([x, y])
-     * @param {Function} callback The function to call after the repair is complete
-     * @param {Object} scope The scope in which to execute the callback
-     */
-    repair : function(xy, callback, scope){
-        this.callback = callback;
-        this.scope = scope;
-        if(xy && this.animRepair !== false){
-            this.el.addClass("x-dd-drag-repair");
-            this.el.hideUnders(true);
-            this.anim = this.el.shift({
-                duration: this.repairDuration || .5,
-                easing: 'easeOut',
-                xy: xy,
-                stopFx: true,
-                callback: this.afterRepair,
-                scope: this
-            });
-        }else{
-            this.afterRepair();
-        }
-    },
-
-    // private
-    afterRepair : function(){
-        this.hide(true);
-        if(typeof this.callback == "function"){
-            this.callback.call(this.scope || this);
-        }
-        this.callback == null;
-        this.scope == null;
-    }
-};

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Store.jss.html b/www/extras/extjs/docs/output/Store.jss.html deleted file mode 100644 index 62af3b249..000000000 --- a/www/extras/extjs/docs/output/Store.jss.html +++ /dev/null @@ -1,523 +0,0 @@ -Store.js

Store.js

/**
- * @class Ext.data.Store
- * @extends Ext.util.Observable
- * The Store class encapsulates a client side cache of {@link Ext.data.Record} objects which provide input data
- * for widgets such as the Ext.grid.Grid, or the Ext.form.ComboBox.
- * A Store object uses an implementation of {@link Ext.data.DataProxy} to access a data object unless you call loadData() directly and pass in your data. The Store object
- * has no knowledge of the format of the data returned by the Proxy.
- * The Store object uses its configured implementation of Ext.data.DataReader to create Ext.data.Record
- * instances from the data object. These records are cached and made available through accessor functions.
- * @constructor
- * Creates a new Store
- * @param {Object} config A config object containing the objects needed for the Store to access data,
- * and read the data into Records.
- */
-Ext.data.Store = function(config){
-    this.data = new Ext.util.MixedCollection(false);
-    this.data.getKey = function(o){
-        return o.id;
-    };
-    this.baseParams = {};
-    this.paramNames = {
-        "start" : "start",
-        "limit" : "limit",
-        "sort" : "sort",
-        "dir" : "dir"
-    };
-    Ext.apply(this, config);
-
-    if(this.reader && !this.recordType){ // reader passed
-        this.recordType = this.reader.recordType;
-    }
-
-    this.fields = this.recordType.prototype.fields;
-
-    this.modified = [];
-
-    this.addEvents({
-        /**
-         * @event datachanged
-         * Fires when the data cache has changed, and a widget which is using this Store
-         * as a Record cache should refresh its view.
-         * @param {Store} this
-         */
-        datachanged : true,
-        /**
-         * @event add
-         * Fires when Records have been added to the Store
-         * @param {Store} this
-         * @param {Ext.data.Record[]} records The array of Records added
-         * @param {Number} index The index at which the record(s) were added
-         */
-        add : true,
-        /**
-         * @event remove
-         * Fires when Records have been removed from the Store
-         * @param {Store} this
-         * @param {Ext.data.Record} record The Record that was removed
-         * @param {Number} index The index at which the record was removed
-         */
-        remove : true,
-        /**
-         * @event update
-         * Fires when Records have been updated
-         * @param {Store} this
-         * @param {Ext.data.Record} record The Record that was updated
-         * @param {String} operation The update operation being performed.  Value may be one of:
-         * <pre><code>
- Ext.data.Record.EDIT
- Ext.data.Record.REJECT
- Ext.data.Record.COMMIT
-         * </code></pre>
-         */
-        update : true,
-        /**
-         * @event clear
-         * Fires when the data cache has been cleared.
-         * @param {Store} this
-         */
-        clear : true,
-        /**
-         * @event beforeload
-         * Fires before a request is made for a new data object.  If the beforeload handler returns false
-         * the load action will be canceled.
-         * @param {Store} this
-         * @param {Object} options The loading options that were specified (see {@link #load} for details)
-         */
-        beforeload : true,
-        /**
-         * @event load
-         * Fires after a new set of Records has been loaded.
-         * @param {Store} this
-         * @param {Ext.data.Record[]} records The Records that were loaded
-         * @param {Object} options The loading options that were specified (see {@link #load} for details)
-         */
-        load : true,
-        /**
-         * @event loadexception
-         * Fires if an exception occurs in the Proxy during loading.
-         * Called with the signature of the Proxy's "loadexception" event.
-         */
-        loadexception : true
-    });
-
-    if(this.proxy){
-        this.relayEvents(this.proxy,  ["loadexception"]);
-    }
-    this.sortToggle = {};
-    
-    Ext.data.Store.superclass.constructor.call(this);
-};
-Ext.extend(Ext.data.Store, Ext.util.Observable, {
-    /**
-    * @cfg {Ext.data.DataProxy} proxy The Proxy object which provides access to a data object.
-    */
-// holder
-/***
-    * @cfg {Ext.data.Reader} reader The Reader object which processes the data object and returns
-    * an Array of Ext.data.record objects which are cached keyed by their <em>id</em> property.
-    */
-// holder
-/***
-    * @cfg {Object} baseParams An object containing properties which are to be sent as parameters
-    * on any HTTP request
-    */
-// holder
-/***
-    * @cfg {Object} sortInfo A config object in the format: {field: "fieldName", direction: "ASC|DESC"}
-    */
-// holder
-/***
-    * @cfg {boolean} remoteSort True if sorting is to be handled by requesting the Proxy to provide a refreshed
-    * version of the data object in sorted order, as opposed to sorting the Record cache in place (defaults to false).
-    */
-    remoteSort : false,
-
-    // private
-    lastOptions : null,
-
-    /**
-     * Add Records to the Store and fires the add event.
-     * @param {Ext.data.Record[]} records An Array of Ext.data.Record objects to add to the cache.
-     */
-    add : function(records){
-        records = [].concat(records);
-        for(var i = 0, len = records.length; i < len; i++){
-            records[i].join(this);
-        }
-        var index = this.data.length;
-        this.data.addAll(records);
-        this.fireEvent("add", this, records, index);
-    },
-
-    /**
-     * Remove a Record from the Store and fires the remove event.
-     * @param {Ext.data.Record} record Th Ext.data.Record object to remove from the cache.
-     */
-    remove : function(record){
-        var index = this.data.indexOf(record);
-        this.data.removeAt(index);
-        this.fireEvent("remove", this, record, index);
-    },
-
-    /**
-     * Remove all Records from the Store and fires the clear event.
-     */
-    removeAll : function(){
-        this.data.clear();
-        this.fireEvent("clear", this);
-    },
-
-    /**
-     * Inserts Records to the Store at the given index and fires the add event.
-     * @param {Number} index The start index at which to insert the passed Records.
-     * @param {Ext.data.Record[]} records An Array of Ext.data.Record objects to add to the cache.
-     */
-    insert : function(index, records){
-        records = [].concat(records);
-        for(var i = 0, len = records.length; i < len; i++){
-            this.data.insert(index, records[i]);
-            records[i].join(this);
-        }
-        this.fireEvent("add", this, records, index);
-    },
-
-    /**
-     * Get the index within the cache of the passed Record.
-     * @param {Ext.data.Record[]} records An Array of Ext.data.Record objects to add to the cache.
-     * @return {Number} The index of the passed Record. Returns -1 if not found.
-     */
-    indexOf : function(record){
-        return this.data.indexOf(record);
-    },
-
-    /**
-     * Get the index within the cache of the Record with the passed id.
-     * @param {String} id The id of the Record to find.
-     * @return {Number} The index of the Record. Returns -1 if not found.
-     */
-    indexOfId : function(id){
-        return this.data.indexOfKey(id);
-    },
-
-    /**
-     * Get the Record with the specified id.
-     * @param {String} id The id of the Record to find.
-     * @return {Ext.data.Record} The Record with the passed id. Returns undefined if not found.
-     */
-    getById : function(id){
-        return this.data.key(id);
-    },
-
-    /**
-     * Get the Record at the specified index.
-     * @param {String} index The index of the Record to find.
-     * @return {Ext.data.Record} The Record at the passed index. Returns undefined if not found.
-     */
-    getAt : function(index){
-        return this.data.itemAt(index);
-    },
-
-    /**
-     * Returns a range of Records between specified indices.
-     * @param {Number} startIndex (optional) The starting index (defaults to 0)
-     * @param {Number} endIndex (optional) The ending index (defaults to the last Record in the Store)
-     * @return {Ext.data.Record[]} An array of Records
-     */
-    getRange : function(start, end){
-        return this.data.getRange(start, end);
-    },
-
-    // private
-    storeOptions : function(o){
-        o = Ext.apply({}, o);
-        delete o.callback;
-        delete o.scope;
-        this.lastOptions = o;
-    },
-
-    /**
-     * Loads the Record cache from the configured Proxy using the configured Reader.
-     * <p>
-     * If using remote paging, then the first load call must specify the <em>start</em>
-     * and <em>limit</em> properties in the options.params property to establish the initial
-     * position within the dataset, and the number of Records to cache on each read from the Proxy.
-     * <p>
-     * <strong>It is important to note that for remote data sources, loading is asynchronous,
-     * and this call will return before the new data has been loaded. Perform any post-processing
-     * in a callback function, or in a "load" event handler.</strong>
-     * <p>
-     * @param {Object} options An object containing properties which control loading options:
-     * <pre><code>
- params {Object} An object containing properties to pass as HTTP parameters to a remote data source.
- callback {Function} A function to be called after the Records have been loaded. The callback is
- passed the following arguments:
-   r : Ext.data.Record[]
-   options: Options object from the load call
-   success: Boolean success indicator
- scope {Object} Scope with which to call the callback (defaults to the Store object)
- append {Boolean} indicator to append loaded records rather than replace the current cache.
- * </code></pre>
-     */
-    load : function(options){
-        options = options || {};
-        if(this.fireEvent("beforeload", this, options) !== false){
-            this.storeOptions(options);
-            var p = Ext.apply(options.params || {}, this.baseParams);
-            if(this.sortInfo && this.remoteSort){
-                var pn = this.paramNames;
-                p[pn["sort"]] = this.sortInfo.field;
-                p[pn["dir"]] = this.sortInfo.direction;
-            }
-            this.proxy.load(p, this.reader, this.loadRecords, this, options);
-        }
-    },
-
-    /**
-     * Reloads the Record cache from the configured Proxy using the configured Reader and
-     * the options from the last load operation performed.
-     * @param {Object} options (optional) An object containing properties which may override the options
-     * used in the last load operation. See {@link #load} for details (defaults to null, in which case
-     * the most recently used options are reused).
-     */
-    reload : function(options){
-        this.load(Ext.applyIf(options||{}, this.lastOptions));
-    },
-
-    // private
-    // Called as a callback by the Reader during a load operation.
-    loadRecords : function(o, options, success){
-        if(!o || success === false){
-            if(success !== false){
-                this.fireEvent("load", this, [], options);
-            }
-            if(options.callback){
-                options.callback.call(options.scope || this, [], options, false);
-            }
-            return;
-        }
-        var r = o.records, t = o.totalRecords || r.length;
-        for(var i = 0, len = r.length; i < len; i++){
-            r[i].join(this);
-        }
-        if(!options || options.add !== true){
-            this.data.clear();
-            this.data.addAll(r);
-            this.totalLength = t;
-            this.applySort();
-            this.fireEvent("datachanged", this);
-        }else{
-            this.totalLength = Math.max(t, this.data.length+r.length);
-            this.data.addAll(r);
-        }
-        this.fireEvent("load", this, r, options);
-        if(options.callback){
-            options.callback.call(options.scope || this, r, options, true);
-        }
-    },
-
-    /**
-     * Loads data from a passed data block. A Reader which understands the format of the data
-     * must have been configured in the constructor.
-     * @param {Object} data The data block from which to read the Records.  The format of the data expected
-     * is dependent on the type of Reader that is configured and should correspond to that Reader's readRecords parameter.
-     * @param {Boolean} append (Optional) True to append the new Records rather than replace the existing cache.
-     */
-    loadData : function(o, append){
-        var r = this.reader.readRecords(o);
-        this.loadRecords(r, {add: append}, true);
-    },
-
-    /**
-     * Gets the number of cached records.
-     * <p>
-     * <em>If using paging, this may not be the total size of the dataset. If the data object
-     * used by the Reader contains the dataset size, then the getTotalCount() function returns
-     * the data set size</em>
-     */
-    getCount : function(){
-        return this.data.length || 0;
-    },
-
-    /**
-     * Gets the total number of records in the dataset.
-     * <p>
-     * <em>If using paging, for this to be accurate, the data object used by the Reader must contain
-     * the dataset size</em>
-     */
-    getTotalCount : function(){
-        return this.totalLength || 0;
-    },
-
-    /**
-     * Returns the sort state of the Store as an object with two properties:
-     * <pre><code>
- field {String} The name of the field by which the Records are sorted
- direction {String} The sort order, "ASC" or "DESC"
-     * </code></pre>
-     */
-    getSortState : function(){
-        return this.sortInfo;
-    },
-
-    // private
-    applySort : function(){
-        if(this.sortInfo && !this.remoteSort){
-            var s = this.sortInfo, f = s.field;
-            var st = this.fields.get(f).sortType;
-            var fn = function(r1, r2){
-                var v1 = st(r1.data[f]), v2 = st(r2.data[f]);
-                return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0);
-            };
-            this.data.sort(s.direction, fn);
-            if(this.snapshot && this.snapshot != this.data){
-                this.snapshot.sort(s.direction, fn);
-            }
-        }
-    },
-
-    /**
-     * Sets the default sort column and order to be used by the next load operation.
-     * @param {String} fieldName The name of the field to sort by.
-     * @param {String} dir (optional) The sort order, "ASC" or "DESC" (defaults to "ASC")
-     */
-    setDefaultSort : function(field, dir){
-        this.sortInfo = {field: field, direction: dir ? dir.toUpperCase() : "ASC"};
-    },
-
-    /**
-     * Sort the Records.
-     * If remote sorting is used, the sort is performed on the server, and the cache is
-     * reloaded. If local sorting is used, the cache is sorted internally.
-     * @param {String} fieldName The name of the field to sort by.
-     * @param {String} dir (optional) The sort order, "ASC" or "DESC" (defaults to "ASC")
-     */
-    sort : function(fieldName, dir){
-        var f = this.fields.get(fieldName);
-        if(!dir){
-            if(this.sortInfo && this.sortInfo.field == f.name){ // toggle sort dir
-                dir = (this.sortToggle[f.name] || "ASC").toggle("ASC", "DESC");
-            }else{
-                dir = f.sortDir;
-            }
-        }
-        this.sortToggle[f.name] = dir;
-        this.sortInfo = {field: f.name, direction: dir};
-        if(!this.remoteSort){
-            this.applySort();
-            this.fireEvent("datachanged", this);
-        }else{
-            this.load(this.lastOptions);
-        }
-    },
-
-    /**
-     * Calls the specified function for each of the Records in the cache.
-     * @param {Function} fn The function to call. The Record is passed as the first parameter.
-     * Returning <em>false</em> aborts and exits the iteration.
-     * @param {Object} scope (optional) The scope in which to call the function (defaults to the Record).
-     */
-    each : function(fn, scope){
-        this.data.each(fn, scope);
-    },
-
-    /**
-     * Get all records modified since the last load, or since the last commit.
-     * @return {Ext.data.Record[]} An array of Records containing outstanding modifications.
-     */
-    getModifiedRecords : function(){
-        return this.modified;
-    },
-
-    /**
-     * Filter the records by a specified property.
-     * @param {String} field A field on your records
-     * @param {String/RegExp} value Either a string that the field
-     * should start with or a RegExp to test against the field
-     * @return {Boolean} True if the filter matched at least one record, else false
-     */
-    filter : function(property, value){
-        if(!value.exec){ // not a regex
-            value = String(value);
-            if(value.length == 0){
-                return this.clearFilter();
-            }
-            value = new RegExp("^" + Ext.escapeRe(value), "i");
-        }
-        this.filterBy(function(r){
-            return value.test(r.data[property]);
-        });
-    },
-
-    /**
-     * Filter by a function. The specified function will be called with each
-     * record in this data source. If the function returns true the record is included,
-     * otherwise it is filtered.
-     * @param {Function} fn The function to be called, it will receive 2 args (record, id)
-     * @param {Object} scope (optional) The scope of the function (defaults to this)
-     */
-    filterBy : function(fn, scope){
-        var data = this.snapshot || this.data;
-        this.snapshot = data;
-        this.data = data.filterBy(fn, scope);
-        this.fireEvent("datachanged", this);
-    },
-
-    /**
-     * Revert to a view of the Record cache with no filtering applied.
-     * @param {Boolean} suppressEvent If true the filter is cleared silently without notifying listeners
-     */
-    clearFilter : function(suppressEvent){
-        if(this.snapshot && this.snapshot != this.data){
-            this.data = this.snapshot;
-            delete this.snapshot;
-            if(suppressEvent !== true){
-                this.fireEvent("datachanged", this);
-            }
-        }
-    },
-
-    // private
-    afterEdit : function(record){
-        if(this.modified.indexOf(record) == -1){
-            this.modified.push(record);
-        }
-        this.fireEvent("update", this, record, Ext.data.Record.EDIT);
-    },
-
-    // private
-    afterReject : function(record){
-        this.modified.remove(record);
-        this.fireEvent("update", this, record, Ext.data.Record.REJECT);
-    },
-
-    // private
-    afterCommit : function(record){
-        this.modified.remove(record);
-        this.fireEvent("update", this, record, Ext.data.Record.COMMIT);
-    },
-
-    /**
-     * Commit all Records with outstanding changes. To handle updates for changes, subscribe to the
-     * Store's "update" event, and perform updating when the third parameter is Ext.data.Record.COMMIT.
-     */
-    commitChanges : function(){
-        var m = this.modified.slice(0);
-        this.modified = [];
-        for(var i = 0, len = m.length; i < len; i++){
-            m[i].commit();
-        }
-    },
-
-    /**
-     * Cancel outstanding changes on all changed records.
-     */
-    rejectChanges : function(){
-        var m = this.modified.slice(0);
-        this.modified = [];
-        for(var i = 0, len = m.length; i < len; i++){
-            m[i].reject();
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TabPanel.jss.html b/www/extras/extjs/docs/output/TabPanel.jss.html deleted file mode 100644 index 8845436d7..000000000 --- a/www/extras/extjs/docs/output/TabPanel.jss.html +++ /dev/null @@ -1,744 +0,0 @@ -TabPanel.js

TabPanel.js

/**
- * @class Ext.TabPanel
- * @extends Ext.util.Observable
- * Creates a lightweight TabPanel component using Yahoo! UI.
- * <br><br>
- * Usage:
- * <pre><code>
-    <font color="#008000">// basic tabs 1, built from existing content</font>
-    var tabs = new Ext.TabPanel("tabs1");
-    tabs.addTab("script", "View Script");
-    tabs.addTab("markup", "View Markup");
-    tabs.activate("script");
-    
-    <font color="#008000">// more advanced tabs, built from javascript</font>
-    var jtabs = new Ext.TabPanel("jtabs");
-    jtabs.addTab("jtabs-1", "Normal Tab", "My content was added during construction.");
-    
-    <font color="#008000">// set up the UpdateManager</font>
-    var tab2 = jtabs.addTab("jtabs-2", "Ajax Tab 1");
-    var updater = tab2.getUpdateManager();
-    updater.setDefaultUrl("ajax1.htm");
-    tab2.on('activate', updater.refresh, updater, true);
-
-    <font color="#008000">// Use setUrl for Ajax loading</font>
-    var tab3 = jtabs.addTab("jtabs-3", "Ajax Tab 2");
-    tab3.setUrl("ajax2.htm", null, true);
-    
-    <font color="#008000">// Disabled tab</font>
-    var tab4 = jtabs.addTab("tabs1-5", "Disabled Tab", "Can"t see me cause I"m disabled");
-    tab4.disable();
-    
-    jtabs.activate("jtabs-1");
-}
- * </code></pre>
- * @constructor
- * Create new TabPanel.
- * @param {String/HTMLElement/Element} container The id, DOM element or Ext.Element container where this TabPanel is to be rendered. 
- * @param {Boolean} config Config object to set any properties for this TabPanel or true to render the tabs on the bottom. 
- */
-Ext.TabPanel = function(container, config){
-    /**
-    * The container element for this TabPanel.
-    * @type Ext.Element
-    */
-    this.el = Ext.get(container, true);
-    if(config){
-        if(typeof config == "boolean"){
-            this.tabPosition = config ? "bottom" : "top";
-        }else{
-            Ext.apply(this, config);
-        }
-    }
-    if(this.tabPosition == "bottom"){
-        this.bodyEl = Ext.get(this.createBody(this.el.dom));
-        this.el.addClass("x-tabs-bottom");
-    }
-    this.stripWrap = Ext.get(this.createStrip(this.el.dom), true);
-    this.stripEl = Ext.get(this.createStripList(this.stripWrap.dom), true);
-    this.stripBody = Ext.get(this.stripWrap.dom.firstChild.firstChild, true);
-    if(Ext.isIE){
-        Ext.fly(this.stripWrap.dom.firstChild).setStyle("overflow-x", "hidden");
-    }
-    if(this.tabPosition != "bottom"){
-    /** The body element that contains TabPaneItem bodies. 
-     * @type Ext.Element
-     */
-      this.bodyEl = Ext.get(this.createBody(this.el.dom));
-      this.el.addClass("x-tabs-top");
-    }
-    this.items = [];
-    
-    this.bodyEl.setStyle("position", "relative");
-    
-    this.active = null;
-    this.activateDelegate = this.activate.createDelegate(this);
-    
-    this.addEvents({
-        /**
-         * @event tabchange
-         * Fires when the active tab changes
-         * @param {Ext.TabPanel} this
-         * @param {Ext.TabPanelItem} activePanel The new active tab
-         */
-        "tabchange": true,
-        /**
-         * @event beforetabchange
-         * Fires before the active tab changes, set cancel to true on the "e" parameter to cancel the change
-         * @param {Ext.TabPanel} this
-         * @param {Object} e Set cancel to true on this object to cancel the tab change
-         * @param {Ext.TabPanelItem} tab The tab being changed to
-         */
-        "beforetabchange" : true
-    });
-    
-    Ext.EventManager.onWindowResize(this.onResize, this);
-    this.cpad = this.el.getPadding("lr");
-    this.hiddenCount = 0;
-
-    Ext.TabPanel.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.TabPanel, Ext.util.Observable, {
-    /** The position of the tabs. Can be "top" or "bottom" @type String */
-    tabPosition : "top",
-    currentTabWidth : 0,
-    /** The minimum width of a tab (ignored if resizeTabs is not true). @type Number */
-    minTabWidth : 40,
-    /** The maximum width of a tab (ignored if resizeTabs is not true). @type Number */
-    maxTabWidth : 250,
-    /** The preferred (default) width of a tab (ignored if resizeTabs is not true). @type Number */
-    preferredTabWidth : 175,
-    /** Set this to true to enable dynamic tab resizing. @type Boolean */
-    resizeTabs : false,
-    /** Set this to true to turn on window resizing monitoring (ignored if resizeTabs is not true). @type Boolean */
-    monitorResize : true,
-
-    /**
-     * Creates a new TabPanelItem by looking for an existing element with the provided id - if it's not found it creates one.
-     * @param {String} id The id of the div to use <b>or create</b>
-     * @param {String} text The text for the tab
-     * @param {String} content (optional) Content to put in the TabPanelItem body
-     * @param {Boolean} closable (optional) True to create a close icon on the tab
-     * @return {Ext.TabPanelItem} The created TabPanelItem
-     */
-    addTab : function(id, text, content, closable){
-        var item = new Ext.TabPanelItem(this, id, text, closable);
-        this.addTabItem(item);
-        if(content){
-            item.setContent(content);
-        }
-        return item;
-    },
-    
-    /**
-     * Returns the TabPanelItem with the specified id/index
-     * @param {String/Number} id The id or index of the TabPanelItem to fetch.
-     * @return {Ext.TabPanelItem}
-     */
-    getTab : function(id){
-        return this.items[id];
-    },
-    
-    /**
-     * Hides the TabPanelItem with the specified id/index
-     * @param {String/Number} id The id or index of the TabPanelItem to hide.
-     */
-    hideTab : function(id){
-        var t = this.items[id];
-        if(!t.isHidden()){
-           t.setHidden(true);
-           this.hiddenCount++;
-           this.autoSizeTabs();
-        }
-    },
-    
-    /**
-     * "Unhides" the TabPanelItem with the specified id/index
-     * @param {String/Number} id The id or index of the TabPanelItem to unhide.
-     */
-    unhideTab : function(id){
-        var t = this.items[id];
-        if(t.isHidden()){
-           t.setHidden(false);
-           this.hiddenCount--;
-           this.autoSizeTabs();
-        }
-    },
-    
-    /**
-     * Add an existing TabPanelItem.
-     * @param {Ext.TabPanelItem} item The TabPanelItem to add
-     */
-    addTabItem : function(item){
-        this.items[item.id] = item;
-        this.items.push(item);
-        if(this.resizeTabs){
-           item.setWidth(this.currentTabWidth || this.preferredTabWidth);
-           this.autoSizeTabs();
-        }else{
-            item.autoSize();
-        }
-    },
-        
-    /**
-     * Remove a TabPanelItem.
-     * @param {String/Number} id The id or index of the TabPanelItem to remove.
-     */
-    removeTab : function(id){
-        var items = this.items;
-        var tab = items[id];
-        if(!tab) return;
-        var index = items.indexOf(tab);
-        if(this.active == tab && items.length > 1){
-            var newTab = this.getNextAvailable(index);
-            if(newTab)newTab.activate();
-        }
-        this.stripEl.dom.removeChild(tab.pnode.dom);
-        if(tab.bodyEl.dom.parentNode == this.bodyEl.dom){ // if it was moved already prevent error
-            this.bodyEl.dom.removeChild(tab.bodyEl.dom);
-        }
-        items.splice(index, 1);
-        delete this.items[tab.id];
-        tab.fireEvent("close", tab);
-        tab.purgeListeners();
-        this.autoSizeTabs();
-    },
-    
-    getNextAvailable : function(start){
-        var items = this.items;
-        var index = start;
-        // look for a next tab that will slide over to
-        // replace the one being removed
-        while(index < items.length){
-            var item = items[++index];
-            if(item && !item.isHidden()){
-                return item;
-            }
-        }
-        // if one isn't found select the previous tab (on the left)
-        index = start;
-        while(index >= 0){
-            var item = items[--index];
-            if(item && !item.isHidden()){
-                return item;
-            }
-        }
-        return null;
-    },
-    
-    /**
-     * Disable a TabPanelItem. <b>It cannot be the active tab, if it is this call is ignored.</b>. 
-     * @param {String/Number} id The id or index of the TabPanelItem to disable.
-     */
-    disableTab : function(id){
-        var tab = this.items[id];
-        if(tab && this.active != tab){
-            tab.disable();
-        }
-    },
-    
-    /**
-     * Enable a TabPanelItem that is disabled.
-     * @param {String/Number} id The id or index of the TabPanelItem to enable.
-     */
-    enableTab : function(id){
-        var tab = this.items[id];
-        tab.enable();
-    },
-    
-    /**
-     * Activate a TabPanelItem. The currently active will be deactivated. 
-     * @param {String/Number} id The id or index of the TabPanelItem to activate.
-     */
-    activate : function(id){
-        var tab = this.items[id];
-        if(!tab){
-            return null;
-        }
-        if(tab == this.active){
-            return tab;
-        } 
-        var e = {};
-        this.fireEvent("beforetabchange", this, e, tab);
-        if(e.cancel !== true && !tab.disabled){
-            if(this.active){
-                this.active.hide();
-            }
-            this.active = this.items[id];
-            this.active.show();
-            this.fireEvent("tabchange", this, this.active);
-        }
-        return tab;
-    },
-    
-    /**
-     * Get the active TabPanelItem
-     * @return {Ext.TabPanelItem} The active TabPanelItem or null if none are active.
-     */
-    getActiveTab : function(){
-        return this.active;
-    },
-    
-    /**
-     * Updates the tab body element to fit the height of the container element
-     * for overflow scrolling
-     * @param {Number} targetHeight (optional) Override the starting height from the elements height
-     */
-    syncHeight : function(targetHeight){
-        var height = (targetHeight || this.el.getHeight())-this.el.getBorderWidth("tb")-this.el.getPadding("tb");
-        var bm = this.bodyEl.getMargins();
-        var newHeight = height-(this.stripWrap.getHeight()||0)-(bm.top+bm.bottom);
-        this.bodyEl.setHeight(newHeight);
-        return newHeight; 
-    },
-    
-    onResize : function(){
-        if(this.monitorResize){
-            this.autoSizeTabs();
-        }
-    },
-
-    /**
-     * Disables tab resizing while tabs are being added (if resizeTabs is false this does nothing)
-     */
-    beginUpdate : function(){
-        this.updating = true;    
-    },
-    
-    /**
-     * Stops an update and resizes the tabs (if resizeTabs is false this does nothing)
-     */
-    endUpdate : function(){
-        this.updating = false;
-        this.autoSizeTabs();  
-    },
-    
-    /**
-     * Manual call to resize the tabs (if resizeTabs is false this does nothing)
-     */
-    autoSizeTabs : function(){
-        var count = this.items.length;
-        var vcount = count - this.hiddenCount;
-        if(!this.resizeTabs || count < 1 || vcount < 1 || this.updating) return;
-        var w = Math.max(this.el.getWidth() - this.cpad, 10);
-        var availWidth = Math.floor(w / vcount);
-        var b = this.stripBody;
-        if(b.getWidth() > w){
-            var tabs = this.items;
-            this.setTabWidth(Math.max(availWidth, this.minTabWidth)-2);
-            if(availWidth < this.minTabWidth){
-                /*if(!this.sleft){    // incomplete scrolling code
-                    this.createScrollButtons();
-                }
-                this.showScroll();
-                this.stripClip.setWidth(w - (this.sleft.getWidth()+this.sright.getWidth()));*/
-            }
-        }else{
-            if(this.currentTabWidth < this.preferredTabWidth){
-                this.setTabWidth(Math.min(availWidth, this.preferredTabWidth)-2);
-            }
-        }
-    },
-    
-    /**
-     * Returns the number of tabs
-     * @return {Number}
-     */
-     getCount : function(){
-         return this.items.length;  
-     },
-    
-    /**
-     * Resizes all the tabs to the passed width
-     * @param {Number} The new width
-     */
-    setTabWidth : function(width){
-        this.currentTabWidth = width;
-        for(var i = 0, len = this.items.length; i < len; i++) {
-        	if(!this.items[i].isHidden())this.items[i].setWidth(width);
-        }
-    },
-    
-    /**
-     * Destroys this TabPanel
-     * @param {Boolean} removeEl (optional) True to remove the element from the DOM as well
-     */
-    destroy : function(removeEl){
-        Ext.EventManager.removeResizeListener(this.onResize, this);
-        for(var i = 0, len = this.items.length; i < len; i++){
-            this.items[i].purgeListeners();
-        }
-        if(removeEl === true){
-            this.el.update("");
-            this.el.remove();
-        }
-    }
-});
-
-/**
-* @class Ext.TabPanelItem
-* @extends Ext.util.Observable
-*/ 
-Ext.TabPanelItem = function(tabPanel, id, text, closable){
-    /**
-     * The TabPanel this TabPanelItem belongs to
-     * @type Ext.TabPanel
-     */
-    this.tabPanel = tabPanel;
-    /**
-     * The id for this TabPanelItem
-     * @type String
-     */
-    this.id = id;
-    /** @private */
-    this.disabled = false;
-    /** @private */
-    this.text = text;
-    /** @private */
-    this.loaded = false;
-    this.closable = closable;
-    
-    /** 
-     * The body element for this TabPanelItem
-     * @type Ext.Element
-     */
-    this.bodyEl = Ext.get(tabPanel.createItemBody(tabPanel.bodyEl.dom, id));
-    this.bodyEl.setVisibilityMode(Ext.Element.VISIBILITY);
-    this.bodyEl.setStyle("display", "block");
-    this.bodyEl.setStyle("zoom", "1");
-    this.hideAction();
-    
-    var els = tabPanel.createStripElements(tabPanel.stripEl.dom, text, closable);
-    /** @private */
-    this.el = Ext.get(els.el, true);
-    this.inner = Ext.get(els.inner, true);
-    this.textEl = Ext.get(this.el.dom.firstChild.firstChild.firstChild, true);
-    this.pnode = Ext.get(els.el.parentNode, true);
-    this.el.on("mousedown", this.onTabMouseDown, this);
-    this.el.on("click", this.onTabClick, this);
-    /** @private */
-    if(closable){
-        var c = Ext.get(els.close, true);
-        c.dom.title = this.closeText;
-        c.addClassOnOver("close-over");
-        c.on("click", this.closeClick, this);
-     }
-    
-    this.addEvents({
-         /**
-         * @event activate
-         * Fires when this tab becomes the active tab
-         * @param {Ext.TabPanel} tabPanel
-         * @param {Ext.TabPanelItem} this
-         */
-        "activate": true,
-        /**
-         * @event beforeclose
-         * Fires before this tab is closed. To cancal the close, set cancel to true on e. (e.cancel = true)
-         * @param {Ext.TabPanelItem} this
-         * @param {Object} e Set cancel to true on this object to cancel the close.
-         */
-        "beforeclose": true,
-        /**
-         * @event close
-         * Fires when this tab is closed
-         * @param {Ext.TabPanelItem} this
-         */
-         "close": true,
-        /**
-         * @event deactivate
-         * Fires when this tab is no longer the active tab
-         * @param {Ext.TabPanel} tabPanel
-         * @param {Ext.TabPanelItem} this
-         */
-         "deactivate" : true
-    });
-    this.hidden = false;
-
-    Ext.TabPanelItem.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.TabPanelItem, Ext.util.Observable, {
-    purgeListeners : function(){
-       Ext.util.Observable.prototype.purgeListeners.call(this);
-       this.el.removeAllListeners(); 
-    },
-    /**
-     * Show this TabPanelItem - this <b>does not</b> deactivate the currently active TabPanelItem.
-     */
-    show : function(){
-        this.pnode.addClass("on");
-        this.showAction();
-        if(Ext.isOpera){
-            this.tabPanel.stripWrap.repaint();
-        }
-        this.fireEvent("activate", this.tabPanel, this);
-    },
-    
-    /**
-     * Returns true if this tab is the active tab
-     * @return {Boolean}
-     */
-    isActive : function(){
-        return this.tabPanel.getActiveTab() == this;  
-    },
-    
-    /**
-     * Hide this TabPanelItem - if you don't activate another TabPanelItem this could look odd.
-     */
-    hide : function(){
-        this.pnode.removeClass("on");
-        this.hideAction();
-        this.fireEvent("deactivate", this.tabPanel, this);
-    },
-    
-    hideAction : function(){
-        this.bodyEl.hide();
-        this.bodyEl.setStyle("position", "absolute");
-        this.bodyEl.setLeft("-20000px");
-        this.bodyEl.setTop("-20000px");
-    },
-    
-    showAction : function(){
-        this.bodyEl.setStyle("position", "relative");
-        this.bodyEl.setTop("");
-        this.bodyEl.setLeft("");
-        this.bodyEl.show();
-    },
-    
-    /**
-     * Set the tooltip for the tab
-     * @param {String} tooltip
-     */
-    setTooltip : function(text){
-        if(Ext.QuickTips && Ext.QuickTips.isEnabled()){
-            this.textEl.dom.qtip = text;
-            this.textEl.dom.removeAttribute('title');
-        }else{
-            this.textEl.dom.title = text;
-        }
-    },
-    
-    onTabClick : function(e){
-        e.preventDefault();
-        this.tabPanel.activate(this.id);
-    },
-
-    onTabMouseDown : function(e){
-        e.preventDefault();
-        this.tabPanel.activate(this.id);
-    },
-
-    getWidth : function(){
-        return this.inner.getWidth();  
-    },
-    
-    setWidth : function(width){
-        var iwidth = width - this.pnode.getPadding("lr");
-        this.inner.setWidth(iwidth);
-        this.textEl.setWidth(iwidth-this.inner.getPadding("lr"));
-        this.pnode.setWidth(width);
-    },
-    
-    setHidden : function(hidden){
-        this.hidden = hidden;
-        this.pnode.setStyle("display", hidden ? "none" : "");
-    },
-    
-    /**
-     * Returns true if this tab is "hidden"
-     * @return {Boolean}
-     */
-    isHidden : function(){
-        return this.hidden;  
-    },
-    
-    /**
-     * Returns the text for this tab
-     * @return {String}
-     */
-    getText : function(){
-        return this.text;
-    },
-    
-    autoSize : function(){
-        //this.el.beginMeasure();
-        this.textEl.setWidth(1);
-        this.setWidth(this.textEl.dom.scrollWidth+this.pnode.getPadding("lr")+this.inner.getPadding("lr"));
-        //this.el.endMeasure();
-    },
-    
-    /**
-     * Sets the text for the tab (Note: this also sets the tooltip)
-     * @param {String} text
-     */
-    setText : function(text){
-        this.text = text;
-        this.textEl.update(text);
-        this.setTooltip(text);
-        if(!this.tabPanel.resizeTabs){
-            this.autoSize();
-        }
-    },
-    /**
-     * Activate this TabPanelItem - this <b>does</b> deactivate the currently active TabPanelItem.
-     */
-    activate : function(){
-        this.tabPanel.activate(this.id);
-    },
-    
-    /**
-     * Disable this TabPanelItem - this call is ignore if this is the active TabPanelItem.
-     */
-    disable : function(){
-        if(this.tabPanel.active != this){
-            this.disabled = true;
-            this.pnode.addClass("disabled");
-        }
-    },
-    
-    /**
-     * Enable this TabPanelItem if it was previously disabled.
-     */
-    enable : function(){
-        this.disabled = false;
-        this.pnode.removeClass("disabled");
-    },
-    
-    /**
-     * Set the content for this TabPanelItem.
-     * @param {String} content The content
-     * @param {Boolean} loadScripts true to look for and load scripts
-     */
-    setContent : function(content, loadScripts){
-        this.bodyEl.update(content, loadScripts);
-    },
-    
-    /**
-     * Get the {@link Ext.UpdateManager} for the body of this TabPanelItem. Enables you to perform Ajax updates.
-     * @return {Ext.UpdateManager} The UpdateManager
-     */
-    getUpdateManager : function(){
-        return this.bodyEl.getUpdateManager();
-    },
-    
-    /**
-     * Set a URL to be used to load the content for this TabPanelItem.
-     * @param {String/Function} url The url to load the content from or a function to call to get the url
-     * @param {String/Object} params (optional) The string params for the update call or an object of the params. See {@link Ext.UpdateManager#update} for more details. (Defaults to null)
-     * @param {Boolean} loadOnce (optional) Whether to only load the content once. If this is false it makes the Ajax call every time this TabPanelItem is activated. (Defaults to false)
-     * @return {Ext.UpdateManager} The UpdateManager
-     */
-    setUrl : function(url, params, loadOnce){
-        if(this.refreshDelegate){
-            this.un('activate', this.refreshDelegate);
-        }
-        this.refreshDelegate = this._handleRefresh.createDelegate(this, [url, params, loadOnce]);
-        this.on("activate", this.refreshDelegate);
-        return this.bodyEl.getUpdateManager();
-    },
-    
-    /** @private */
-    _handleRefresh : function(url, params, loadOnce){
-        if(!loadOnce || !this.loaded){
-            var updater = this.bodyEl.getUpdateManager();
-            updater.update(url, params, this._setLoaded.createDelegate(this));
-        }
-    },
-    
-    /**
-     *   Force a content refresh from the URL specified in the setUrl() method.
-     *   Will fail silently if the setUrl method has not been called.
-     *   This does not activate the panel, just updates its content.
-     */
-    refresh : function(){
-        if(this.refreshDelegate){
-           this.loaded = false;
-           this.refreshDelegate();
-        }
-    }, 
-    
-    /** @private */
-    _setLoaded : function(){
-        this.loaded = true;
-    },
-    
-    /** @private */
-    closeClick : function(e){
-        var o = {};
-        e.stopEvent();
-        this.fireEvent("beforeclose", this, o);
-        if(o.cancel !== true){
-            this.tabPanel.removeTab(this.id);
-        }
-    },
-    /**
-     * The text displayed in the tooltip for the close icon.
-     * @type String
-     */
-    closeText : "Close this tab"
-});
-
-/** @private */
-Ext.TabPanel.prototype.createStrip = function(container){
-    var strip = document.createElement("div");
-    strip.className = "x-tabs-wrap";
-    container.appendChild(strip);
-    return strip;
-};
-/** @private */
-Ext.TabPanel.prototype.createStripList = function(strip){
-    // div wrapper for retard IE
-    strip.innerHTML = '<div class="x-tabs-strip-wrap"><table class="x-tabs-strip" cellspacing="0" cellpadding="0" border="0"><tbody><tr></tr></tbody></table></div>';
-    return strip.firstChild.firstChild.firstChild.firstChild;
-};
-/** @private */
-Ext.TabPanel.prototype.createBody = function(container){
-    var body = document.createElement("div");
-    Ext.id(body, "tab-body");
-    Ext.fly(body).addClass("x-tabs-body");
-    container.appendChild(body);
-    return body;
-};
-/** @private */
-Ext.TabPanel.prototype.createItemBody = function(bodyEl, id){
-    var body = Ext.getDom(id);
-    if(!body){
-        body = document.createElement("div");
-        body.id = id;
-    }
-    Ext.fly(body).addClass("x-tabs-item-body");
-    bodyEl.insertBefore(body, bodyEl.firstChild);
-    return body;
-};
-/** @private */
-Ext.TabPanel.prototype.createStripElements = function(stripEl, text, closable){
-    var td = document.createElement("td");
-    stripEl.appendChild(td);
-    if(closable){
-        td.className = "x-tabs-closable";
-        if(!this.closeTpl){
-            this.closeTpl = new Ext.Template(
-               '<a href="#" class="x-tabs-right"><span class="x-tabs-left"><em class="x-tabs-inner">' +
-               '<span unselectable="on"' + (this.disableTooltips ? '' : ' title="{text}"') +' class="x-tabs-text">{text}</span>' +
-               '<div unselectable="on" class="close-icon">&#160;</div></em></span></a>'
-            );
-        }
-        var el = this.closeTpl.overwrite(td, {"text": text});
-        var close = el.getElementsByTagName("div")[0];
-        var inner = el.getElementsByTagName("em")[0];
-        return {"el": el, "close": close, "inner": inner};
-    } else {
-        if(!this.tabTpl){
-            this.tabTpl = new Ext.Template(
-               '<a href="#" class="x-tabs-right"><span class="x-tabs-left"><em class="x-tabs-inner">' +
-               '<span unselectable="on"' + (this.disableTooltips ? '' : ' title="{text}"') +' class="x-tabs-text">{text}</span></em></span></a>'
-            );
-        }
-        var el = this.tabTpl.overwrite(td, {"text": text});
-        var inner = el.getElementsByTagName("em")[0];
-        return {"el": el, "inner": inner};
-    }
-};

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TaskMgr.jss.html b/www/extras/extjs/docs/output/TaskMgr.jss.html deleted file mode 100644 index 5abb47707..000000000 --- a/www/extras/extjs/docs/output/TaskMgr.jss.html +++ /dev/null @@ -1,87 +0,0 @@ -TaskMgr.js

TaskMgr.js

Ext.util.TaskRunner = function(interval){
-    interval = interval || 10;
-    var tasks = [], removeQueue = [];
-    var id = 0;
-    var running = false;
-
-    var stopThread = function(){
-        running = false;
-        clearInterval(id);
-        id = 0;
-    };
-
-    var startThread = function(){
-        if(!running){
-            running = true;
-            id = setInterval(runTasks, interval);
-        }
-    };
-
-    var removeTask = function(task){
-        removeQueue.push(task);
-        if(task.onStop){
-            task.onStop();
-        }
-    };
-
-    var runTasks = function(){
-        if(removeQueue.length > 0){
-            for(var i = 0, len = removeQueue.length; i < len; i++){
-                tasks.remove(removeQueue[i]);
-            }
-            removeQueue = [];
-            if(tasks.length < 1){
-                stopThread();
-                return;
-            }
-        }
-        var now = new Date().getTime();
-        for(var i = 0, len = tasks.length; i < len; ++i){
-            var t = tasks[i];
-            var itime = now - t.taskRunTime;
-            if(t.interval <= itime){
-                var rt = t.run.apply(t.scope || t, t.args || [++t.taskRunCount]);
-                t.taskRunTime = now;
-                if(rt === false || t.taskRunCount === t.repeat){
-                    removeTask(t);
-                    return;
-                }
-            }
-            if(t.duration && t.duration <= (now - t.taskStartTime)){
-                removeTask(t);
-            }
-        }
-    };
-
-    /**
-     * Queues a new task.
-     * @param {Object} task
-     */
-    this.start = function(task){
-        tasks.push(task);
-        task.taskStartTime = new Date().getTime();
-        task.taskRunTime = 0;
-        task.taskRunCount = 0;
-        startThread();
-        return task;
-    };
-
-    this.stop = function(task){
-        removeTask(task);
-        return task;
-    };
-
-    this.stopAll = function(){
-        stopThread();
-        for(var i = 0, len = tasks.length; i < len; i++){
-            if(tasks[i].onStop){
-                tasks[i].onStop();
-            }
-        }
-        tasks = [];
-        removeQueue = [];
-    };
-};
-
-Ext.TaskMgr = new Ext.util.TaskRunner();

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Template.jss.html b/www/extras/extjs/docs/output/Template.jss.html deleted file mode 100644 index 4b23600a2..000000000 --- a/www/extras/extjs/docs/output/Template.jss.html +++ /dev/null @@ -1,357 +0,0 @@ -Template.js

Template.js

/**
-* @class Ext.Template
-* Represents an HTML fragment template. Templates can be precompiled for greater performance.
-* For a list of available format functions, see {@link Ext.util.Format}.
-<pre><code>
-var t = new Ext.Template(
-	'&lt;div name="{id}"&gt;',
-		'&lt;span class="{cls}"&gt;{name:trim} {value:ellipsis(10)}&lt;/span&gt;',
-	'&lt;/div&gt;'
-);
-t.append('some-element', {id: 'myid', name: 'foo', value: 'bar'});
-</code></pre>
-* For more information see <a href="http://www.jackslocum.com/yui/2006/10/06/domhelper-create-elements-using-dom-html-fragments-or-templates/">this blog post with examples</a>. 
-* <br>
-* @constructor
-* @param {String/Array} html The HTML fragment or an array of fragments to join('') or multiple arguments to join('')
-*/
-Ext.Template = function(html){
-    if(html instanceof Array){
-        html = html.join("");
-    }else if(arguments.length > 1){
-        html = Array.prototype.join.call(arguments, "");
-    }
-    /**@private*/
-    this.html = html;
-    
-};
-Ext.Template.prototype = {
-    /**
-     * Returns an HTML fragment of this template with the specified values applied
-     * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
-     * @return {String}
-     */
-    applyTemplate : function(values){
-        if(this.compiled){
-            return this.compiled(values);
-        }
-        var useF = this.disableFormats !== true;
-        var fm = Ext.util.Format, tpl = this;
-        var fn = function(m, name, format, args){
-            if(format && useF){
-                if(format.substr(0, 5) == "this."){
-                    return tpl.call(format.substr(5), values[name]);
-                }else{
-                    if(args){
-                        // quoted values are required for strings in compiled templates, 
-                        // but for non compiled we need to strip them
-                        // quoted reversed for jsmin
-                        var re = /^\s*['"](.*)["']\s*$/;
-                        args = args.split(',');
-                        for(var i = 0, len = args.length; i < len; i++){
-                            args[i] = args[i].replace(re, "$1");
-                        }
-                        args = [values[name]].concat(args);
-                    }else{
-                        args = [values[name]];
-                    }
-                    return fm[format].apply(fm, args);
-                }
-            }else{
-                return values[name] !== undefined ? values[name] : "";
-            }
-        };
-        return this.html.replace(this.re, fn);
-    },
-    
-    /**
-     * Sets the html used as the template and optionally compiles it
-     * @param {String} html
-     * @param {Boolean} compile (optional)
-     * @return {Template} this
-     */
-    set : function(html, compile){
-        this.html = html;
-        this.compiled = null;
-        if(compile){
-            this.compile();
-        }
-        return this;
-    },
-    
-    /**
-     * True to disable format functions (default to false)
-     * @type Boolean
-     */
-    disableFormats : false,
-    
-    /**
-    * The regular expression used to match template variables 
-    * @type RegExp
-    * @property 
-    */
-    re : /\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,
-    
-    /**
-     * Compiles the template into an internal function, eliminating the RegEx overhead
-     */
-    compile : function(){
-        var fm = Ext.util.Format;
-        var useF = this.disableFormats !== true;
-        var sep = Ext.isGecko ? "+" : ",";
-        var fn = function(m, name, format, args){
-            if(format && useF){
-                args = args ? ',' + args : "";
-                if(format.substr(0, 5) != "this."){
-                    format = "fm." + format + '(';
-                }else{
-                    format = 'this.call("'+ format.substr(5) + '", ';
-                    args = "";
-                }
-            }else{
-                args= '', format = "(values['" + name + "'] == undefined ? '' : ";
-            }
-            return "'"+ sep + format + "values['" + name + "']" + args + ")"+sep+"'";
-        };
-        var body;
-        // branched to use + in gecko and [].join() in others
-        if(Ext.isGecko){
-            body = "this.compiled = function(values){ return '" +
-                   this.html.replace(/(\r\n|\n)/g, '\\n').replace("'", "\\'").replace(this.re, fn) +
-                    "';};";
-        }else{
-            body = ["this.compiled = function(values){ return ['"];
-            body.push(this.html.replace(/(\r\n|\n)/g, '\\n').replace("'", "\\'").replace(this.re, fn));
-            body.push("'].join('');};");
-            body = body.join('');
-        }
-        eval(body);
-        return this;
-    },
-    
-    // private function used to call members
-    call : function(fnName, value){
-        return this[fnName](value);
-    },
-    
-    /**
-     * Applies the supplied values to the template and inserts the new node(s) as the first child of el
-     * @param {String/HTMLElement/Element} el The context element
-     * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
-     * @param {Boolean} returnElement (optional) true to return a Ext.Element
-     * @return {HTMLElement} The new node
-     */
-    insertFirst: function(el, values, returnElement){
-        return this.doInsert('afterBegin', el, values, returnElement);
-    },
-
-    /**
-     * Applies the supplied values to the template and inserts the new node(s) before el
-     * @param {String/HTMLElement/Element} el The context element
-     * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
-     * @param {Boolean} returnElement (optional) true to return a Ext.Element
-     * @return {HTMLElement} The new node
-     */
-    insertBefore: function(el, values, returnElement){
-        return this.doInsert('beforeBegin', el, values, returnElement);
-    },
-
-    /**
-     * Applies the supplied values to the template and inserts the new node(s) after el
-     * @param {String/HTMLElement/Element} el The context element
-     * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
-     * @param {Boolean} returnElement (optional) true to return a Ext.Element
-     * @return {HTMLElement} The new node
-     */
-    insertAfter : function(el, values, returnElement){
-        return this.doInsert('afterEnd', el, values, returnElement);
-    },
-    
-    /**
-     * Applies the supplied values to the template and append the new node(s) to el
-     * @param {String/HTMLElement/Element} el The context element
-     * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
-     * @param {Boolean} returnElement (optional) true to return a Ext.Element
-     * @return {HTMLElement} The new node
-     */
-    append : function(el, values, returnElement){
-        return this.doInsert('beforeEnd', el, values, returnElement);
-    },
-
-    doInsert : function(where, el, values, returnEl){
-        el = Ext.getDom(el);
-        var newNode = Ext.DomHelper.insertHtml(where, el, this.applyTemplate(values));
-        return returnEl ? Ext.get(newNode, true) : newNode;
-    },
-
-    /**
-     * Applies the supplied values to the template and overwrites the content of el with the new node(s)
-     * @param {String/HTMLElement/Element} el The context element
-     * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
-     * @param {Boolean} returnElement (optional) true to return a Ext.Element
-     * @return {HTMLElement} The new node
-     */
-    overwrite : function(el, values, returnElement){
-        el = Ext.getDom(el);
-        el.innerHTML = this.applyTemplate(values);
-        return returnElement ? Ext.get(el.firstChild, true) : el.firstChild;
-    }
-};
-/**
- * Alias for applyTemplate
- * @method
- */
-Ext.Template.prototype.apply = Ext.Template.prototype.applyTemplate;
-
-// backwards compat
-Ext.DomHelper.Template = Ext.Template;
-
-/**
- * Creates a template from the passed element's value (display:none textarea, preferred) or innerHTML
- * @param {String/HTMLElement} el
- * @static
- */
-Ext.Template.from = function(el){
-    el = Ext.getDom(el);
-    return new Ext.Template(el.value || el.innerHTML);  
-};
-
-/**
- * @class Ext.MasterTemplate
- * @extends Ext.Template
- * Provides a template that can have child templates. The syntax is:
-<pre><code>
-var t = new Ext.MasterTemplate(
-	'&lt;select name="{name}"&gt;',
-		'&lt;tpl name="options"&gt;&lt;option value="{value:trim}"&gt;{text:ellipsis(10)}&lt;/option&gt;&lt;/tpl&gt;',
-	'&lt;/select&gt;'
-);
-t.add('options', {value: 'foo', text: 'bar'});
-// or you can add multiple child elements in one shot
-t.addAll('options', [
-    {value: 'foo', text: 'bar'},
-    {value: 'foo2', text: 'bar2'},
-    {value: 'foo3', text: 'bar3'}
-]);
-// then append, applying the master template values
-t.append('my-form', {name: 'my-select'});
-</code></pre>
-* A name attribute for the child template is not required if you have only one child 
-* template or you want to refer to them by index.
- */
-Ext.MasterTemplate = function(){
-    Ext.MasterTemplate.superclass.constructor.apply(this, arguments);
-    this.originalHtml = this.html;
-    var st = {};
-    var m, re = this.subTemplateRe;
-    re.lastIndex = 0;
-    var subIndex = 0;
-    while(m = re.exec(this.html)){
-        var name = m[1], content = m[2];
-        st[subIndex] = {
-            name: name,
-            index: subIndex,
-            buffer: [],
-            tpl : new Ext.Template(content)
-        };
-        if(name){
-            st[name] = st[subIndex];
-        }
-        st[subIndex].tpl.compile();
-        st[subIndex].tpl.call = this.call.createDelegate(this);
-        subIndex++;
-    }
-    this.subCount = subIndex;
-    this.subs = st;
-};
-Ext.extend(Ext.MasterTemplate, Ext.Template, {
-    /**
-    * The regular expression used to match sub templates 
-    * @type RegExp
-    * @property 
-    */
-    subTemplateRe : /<tpl(?:\sname="([\w-]+)")?>((?:.|\n)*?)<\/tpl>/gi,
-    
-    /**
-     * Applies the passed values to a child template.
-     * @param {String/Number} name (optional) The name or index of the child template
-     * @param {Array/Object} values The values to be applied to the template
-     * @return {MasterTemplate} this
-     */
-     add : function(name, values){
-        if(arguments.length == 1){
-            values = arguments[0];
-            name = 0;
-        }
-        var s = this.subs[name];
-        s.buffer[s.buffer.length] = s.tpl.apply(values);
-        return this;
-    },
-    
-    /**
-     * Applies all the passed values to a child template.
-     * @param {String/Number} name (optional) The name or index of the child template
-     * @param {Array} values The values to be applied to the template, this should be an array of objects.
-     * @param {Boolean} reset (optional) True to reset the template first
-     * @return {MasterTemplate} this
-     */
-    fill : function(name, values, reset){
-        var a = arguments;
-        if(a.length == 1 || (a.length == 2 && typeof a[1] == "boolean")){
-            values = a[0];
-            name = 0;
-            reset = a[1];
-        }
-        if(reset){
-            this.reset();
-        }
-        for(var i = 0, len = values.length; i < len; i++){
-            this.add(name, values[i]);
-        }
-        return this;
-    },
-    
-    /**
-     * Resets the template for reuse
-     * @return {MasterTemplate} this
-     */
-     reset : function(){
-        var s = this.subs;
-        for(var i = 0; i < this.subCount; i++){
-            s[i].buffer = [];
-        }
-        return this;
-    },
-    
-    applyTemplate : function(values){
-        var s = this.subs;
-        var replaceIndex = -1;
-        this.html = this.originalHtml.replace(this.subTemplateRe, function(m, name){
-            return s[++replaceIndex].buffer.join("");
-        });
-        return Ext.MasterTemplate.superclass.applyTemplate.call(this, values);
-    },
-    
-    apply : function(){
-        return this.applyTemplate.apply(this, arguments);
-    },
-    
-    compile : function(){return this;}
-});
-
-/**
- * Alias for fill().
- * @method
- */
-Ext.MasterTemplate.prototype.addAll = Ext.MasterTemplate.prototype.fill;
- /**
- * Creates a template from the passed element's value (display:none textarea, preferred) or innerHTML. e.g.
- * var tpl = Ext.MasterTemplate.from('element-id');
- * @param {String/HTMLElement} el
- * @static
- */
-Ext.MasterTemplate.from = function(el){
-    el = Ext.getDom(el);
-    return new Ext.MasterTemplate(el.value || el.innerHTML);  
-};

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TextArea.jss.html b/www/extras/extjs/docs/output/TextArea.jss.html deleted file mode 100644 index 978ca5988..000000000 --- a/www/extras/extjs/docs/output/TextArea.jss.html +++ /dev/null @@ -1,101 +0,0 @@ -TextArea.js

TextArea.js

/**
- * @class Ext.form.TextArea
- * @extends Ext.form.TextField
- * Multiline text field.  Can be used as a direct replacement for traditional textarea fields, plus adds
- * support for auto-sizing.
- * @constructor
- * Creates a new TextArea
- * @param {Object} config Configuration options
- */
-Ext.form.TextArea = function(config){
-    Ext.form.TextArea.superclass.constructor.call(this, config);
-    // these are provided exchanges for backwards compat
-    // minHeight/maxHeight were replaced by growMin/growMax to be
-    // compatible with TextField growing config values
-    if(this.minHeight !== undefined){
-        this.growMin = this.minHeight;
-    }
-    if(this.maxHeight !== undefined){
-        this.growMax = this.maxHeight;
-    }
-};
-
-Ext.extend(Ext.form.TextArea, Ext.form.TextField,  {
-    /**
-     * @cfg {Number} growMin The minimum height to allow when grow = true (defaults to 60)
-     */
-    growMin : 60,
-    /**
-     * @cfg {Number} growMax The maximum height to allow when grow = true (defaults to 1000)
-     */
-    growMax: 1000,
-    /**
-     * @cfg {Boolean} preventScrollbars True to prevent scrollbars from appearing regardless of how much text is
-     * in the field (equivalent to setting overflow: hidden, defaults to false)
-     */
-    preventScrollbars: false,
-
-    // private
-    onRender : function(ct, position){
-        if(!this.el){
-            this.defaultAutoCreate = {
-                tag: "textarea",
-                style:"width:300px;height:60px;",
-                autocomplete: "off"
-            };
-        }
-        Ext.form.TextArea.superclass.onRender.call(this, ct, position);
-        if(this.grow){
-            this.textSizeEl = Ext.DomHelper.append(document.body, {
-                tag: "pre", cls: "x-form-grow-sizer"
-            });
-            if(this.preventScrollbars){
-                this.el.setStyle("overflow", "hidden");
-            }
-            this.el.setHeight(this.growMin);
-        }
-    },
-
-    // private
-    onKeyUp : function(e){
-        if(!e.isNavKeyPress() || e.getKey() == e.ENTER){
-            this.autoSize();
-        }
-    },
-
-    /**
-     * Automatically grows the field to accomodate the height of the text up to the maximum field height allowed.
-     * This only takes effect if grow = true and fires the autosize event.
-     */
-    autoSize : function(){
-        if(!this.grow || !this.textSizeEl){
-            return;
-        }
-        var el = this.el;
-        var v = el.dom.value;
-        var ts = this.textSizeEl;
-        Ext.fly(ts).setWidth(this.el.getWidth());
-        if(v.length < 1){
-            v = "&#160;&#160;";
-        }else{
-            v += "&#160;\n&#160;";
-        }
-        if(Ext.isIE){
-            v = v.replace(/\n/g, '<br />');
-        }
-        ts.innerHTML = v;
-        var h = Math.min(this.growMax, Math.max(ts.offsetHeight, this.growMin));
-        if(h != this.lastHeight){
-            this.lastHeight = h;
-            this.el.setHeight(h);
-            this.fireEvent("autosize", this, h);
-        }
-    },
-
-    // private
-    setValue : function(v){
-        Ext.form.TextArea.superclass.setValue.call(this, v);
-        this.autoSize();
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TextField.jss.html b/www/extras/extjs/docs/output/TextField.jss.html deleted file mode 100644 index 5b52cc569..000000000 --- a/www/extras/extjs/docs/output/TextField.jss.html +++ /dev/null @@ -1,281 +0,0 @@ -TextField.js

TextField.js

/**
- * @class Ext.form.TextField
- * @extends Ext.form.Field
- * Basic text field.  Can be used as a direct replacement for traditional text inputs, or as the base
- * class for more sophisticated input controls (like {@link Ext.form.TextArea} and {@link Ext.form.ComboBox}).
- * @constructor
- * Creates a new TextField
- * @param {Object} config Configuration options
- */
-Ext.form.TextField = function(config){
-    Ext.form.TextField.superclass.constructor.call(this, config);
-    this.addEvents({
-        /**
-         * @event autosize
-         * Fires when the autosize function is triggered.  The field may or may not have actually changed size
-         * according to the default logic, but this event provides a hook for the developer to apply additional
-         * logic at runtime to resize the field if needed.
-	     * @param {Ext.form.Field} this This text field
-	     * @param {Number} width The new field width
-	     */
-        autosize : true
-    });
-};
-
-Ext.extend(Ext.form.TextField, Ext.form.Field,  {
-    /**
-     * @cfg {Boolean} grow True if this field should automatically grow and shrink to its content
-     */
-    grow : false,
-    /**
-     * @cfg {Number} growMin The minimum width to allow when grow = true (defaults to 30)
-     */
-    growMin : 30,
-    /**
-     * @cfg {Number} growMax The maximum width to allow when grow = true (defaults to 800)
-     */
-    growMax : 800,
-    /**
-     * @cfg {String} vtype A validation type name as defined in {@link Ext.form.VTypes} (defaults to null)
-     */
-    vtype : null,
-    /**
-     * @cfg {String} maskRe An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)
-     */
-    maskRe : null,
-    /**
-     * @cfg {Boolean} disableKeyFilter True to disable input keystroke filtering (defaults to false)
-     */
-    disableKeyFilter : false,
-    /**
-     * @cfg {Boolean} allowBlank False to validate that the value length > 0 (defaults to true)
-     */
-    allowBlank : true,
-    /**
-     * @cfg {Number} minLength Minimum input field length required (defaults to 0)
-     */
-    minLength : 0,
-    /**
-     * @cfg {Number} maxLength Maximum input field length allowed (defaults to Number.MAX_VALUE)
-     */
-    maxLength : Number.MAX_VALUE,
-    /**
-     * @cfg {String} minLengthText Error text to display if the minimum length validation fails (defaults to "The minimum length for this field is {minLength}")
-     */
-    minLengthText : "The minimum length for this field is {0}",
-    /**
-     * @cfg {String} maxLengthText Error text to display if the maximum length validation fails (defaults to "The maximum length for this field is {maxLength}")
-     */
-    maxLengthText : "The maximum length for this field is {0}",
-    /**
-     * @cfg {Boolean} selectOnFocus True to automatically select any existing field text when the field receives input focus (defaults to false)
-     */
-    selectOnFocus : false,
-    /**
-     * @cfg {String} blankText Error text to display if the allow blank validation fails (defaults to "This field is required")
-     */
-    blankText : "This field is required",
-    /**
-     * @cfg {Function} validator A custom validation function to be called during field validation (defaults to null).
-     * If available, this function will be called only after the basic validators all return true, and will be passed the
-     * current field value and expected to return boolean true if the value is valid or a string error message if invalid.
-     */
-    validator : null,
-    /**
-     * @cfg {RegExp} regex A JavaScript RegExp object to be tested against the field value during validation (defaults to null).
-     * If available, this regex will be evaluated only after the basic validators all return true, and will be passed the
-     * current field value.  If the test fails, the field will be marked invalid using {@link #regexText}.
-     */
-    regex : null,
-    /**
-     * @cfg {String} regexText The error text to display if {@link #regex} is used and the test fails during validation (defaults to "")
-     */
-    regexText : "",
-    /**
-     * @cfg {String} emptyText The default text to display in an empty field (defaults to null).
-     */
-    emptyText : null,
-    /**
-     * @cfg {String} emptyClass The CSS class to apply to an empty field to style the {@link #emptyText} (defaults to
-     * 'x-form-empty-field').  This class is automatically added and removed as needed depending on the current field value.
-     */
-    emptyClass : 'x-form-empty-field',
-
-    // private
-    initEvents : function(){
-        Ext.form.TextField.superclass.initEvents.call(this);
-        if(this.validationEvent == 'keyup'){
-            this.validationTask = new Ext.util.DelayedTask(this.validate, this);
-            this.el.on('keyup', this.filterValidation, this);
-        }
-        else if(this.validationEvent !== false){
-            this.el.on(this.validationEvent, this.validate, this, {buffer: this.validationDelay});
-        }
-        if(this.selectOnFocus || this.emptyText){
-            this.on("focus", this.preFocus, this);
-            if(this.emptyText){
-                this.on('blur', this.postBlur, this);
-                this.applyEmptyText();
-            }
-        }
-        if(this.maskRe || (this.vtype && this.disableKeyFilter !== true && (this.maskRe = Ext.form.VTypes[this.vtype+'Mask']))){
-            this.el.on("keypress", this.filterKeys, this);
-        }
-        if(this.grow){
-            this.el.on("keyup", this.onKeyUp,  this, {buffer:50});
-            this.el.on("click", this.autoSize,  this);
-        }
-    },
-
-    filterValidation : function(e){
-        if(!e.isNavKeyPress()){
-            this.validationTask.delay(this.validationDelay);
-        }
-    },
-
-    // private
-    onKeyUp : function(e){
-        if(!e.isNavKeyPress()){
-            this.autoSize();
-        }
-    },
-
-    /**
-     * Resets the current field value to the originally-loaded value and clears any validation messages.
-     * Also adds emptyText and emptyClass if the original value was blank.
-     */
-    reset : function(){
-        Ext.form.TextField.superclass.reset.call(this);
-        this.applyEmptyText();
-    },
-
-    applyEmptyText : function(){
-        if(this.rendered && this.emptyText && this.getRawValue().length < 1){
-            this.setRawValue(this.emptyText);
-            this.el.addClass(this.emptyClass);
-        }
-    },
-
-    // private
-    preFocus : function(){
-        if(this.emptyText){
-            if(this.getRawValue() == this.emptyText){
-                this.setRawValue('');
-            }
-            this.el.removeClass(this.emptyClass);
-        }
-        if(this.selectOnFocus){
-            this.el.dom.select();
-        }
-    },
-
-    // private
-    postBlur : function(){
-        this.applyEmptyText();
-    },
-
-    // private
-    filterKeys : function(e){
-        var k = e.getKey();
-        if(!Ext.isIE && (e.isNavKeyPress() || k == e.BACKSPACE || (k == e.DELETE && e.button == -1))){
-            return;
-        }
-        var c = e.getCharCode();
-        if(!this.maskRe.test(String.fromCharCode(c) || '')){
-            e.stopEvent();
-        }
-    },
-
-    setValue : function(v){
-        if(this.emptyText && v !== undefined && v !== null && v !== ''){
-            this.el.removeClass(this.emptyClass);
-        }
-        Ext.form.TextField.superclass.setValue.apply(this, arguments);
-    },
-
-    /**
-     * Validates a value according to the field's validation rules and marks the field as invalid
-     * if the validation fails
-     * @param {Mixed} value The value to validate
-     * @return {Boolean} True if the value is valid, else false
-     */
-    validateValue : function(value){
-        if(value.length < 1 || value === this.emptyText){ // if it's blank
-             if(this.allowBlank){
-                 this.clearInvalid();
-                 return true;
-             }else{
-                 this.markInvalid(this.blankText);
-                 return false;
-             }
-        }
-        if(value.length < this.minLength){
-            this.markInvalid(String.format(this.minLengthText, this.minLength));
-            return false;
-        }
-        if(value.length > this.maxLength){
-            this.markInvalid(String.format(this.maxLengthText, this.maxLength));
-            return false;
-        }
-        if(this.vtype){
-            var vt = Ext.form.VTypes;
-            if(!vt[this.vtype](value)){
-                this.markInvalid(this.vtypeText || vt[this.vtype +'Text']);
-                return false;
-            }
-        }
-        if(typeof this.validator == "function"){
-            var msg = this.validator(value);
-            if(msg !== true){
-                this.markInvalid(msg);
-                return false;
-            }
-        }
-        if(this.regex && !this.regex.test(value)){
-            this.markInvalid(this.regexText);
-            return false;
-        }
-        return true;
-    },
-
-    /**
-     * Selects text in this field
-     * @param {Number} start (optional) The index where the selection should start (defaults to 0)
-     * @param {Number} end (optional) The index where the selection should end (defaults to the text length)
-     */
-    selectText : function(start, end){
-        var v = this.getRawValue();
-        if(v.length > 0){
-            start = start === undefined ? 0 : start;
-            end = end === undefined ? v.length : end;
-            var d = this.el.dom;
-            if(d.setSelectionRange){
-                d.setSelectionRange(start, end);
-            }else if(d.createTextRange){
-                var range = d.createTextRange();
-                range.moveStart("character", start);
-                range.moveEnd("character", v.length-end);
-                range.select();
-            }
-        }
-    },
-
-    /**
-     * Automatically grows the field to accomodate the width of the text up to the maximum field width allowed.
-     * This only takes effect if grow = true and fires the autosize event.
-     */
-    autoSize : function(){
-        if(!this.grow || !this.rendered){
-            return;
-        }
-        if(!this.metrics){
-            this.metrics = Ext.util.TextMetrics.createInstance(this.el);
-        }
-        var el = this.el;
-        var v = el.dom.value + "&#160;";
-        var w = Math.min(this.growMax, Math.max(this.metrics.getWidth(v) + /* add extra padding */ 10, this.growMin));
-        this.el.setWidth(w);
-        this.fireEvent("autosize", this, w);
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TextItem.jss.html b/www/extras/extjs/docs/output/TextItem.jss.html deleted file mode 100644 index a91f0ef2e..000000000 --- a/www/extras/extjs/docs/output/TextItem.jss.html +++ /dev/null @@ -1,33 +0,0 @@ -TextItem.js

TextItem.js

/**
- * @class Ext.menu.TextItem
- * @extends Ext.menu.BaseItem
- * Adds a static text string to a menu, usually used as either a heading or group separator.
- * @constructor
- * Creates a new TextItem
- * @param {String} text The text to display
- */
-Ext.menu.TextItem = function(text){
-    this.text = text;
-    Ext.menu.TextItem.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.menu.TextItem, Ext.menu.BaseItem, {
-    /**
-     * @cfg {Boolean} hideOnClick True to hide the containing menu after this item is clicked (defaults to false)
-     */
-    hideOnClick : false,
-    /**
-     * @cfg {String} itemCls The default CSS class to use for text items (defaults to "x-menu-text")
-     */
-    itemCls : "x-menu-text",
-
-    // private
-    onRender : function(){
-        var s = document.createElement("span");
-        s.className = this.itemCls;
-        s.innerHTML = this.text;
-        this.el = s;
-        Ext.menu.TextItem.superclass.onRender.apply(this, arguments);
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TextMetrics.jss.html b/www/extras/extjs/docs/output/TextMetrics.jss.html deleted file mode 100644 index 5ae9f5fc6..000000000 --- a/www/extras/extjs/docs/output/TextMetrics.jss.html +++ /dev/null @@ -1,114 +0,0 @@ -TextMetrics.js

TextMetrics.js

/**
- * @class Ext.util.TextMetrics
- * Provides precise pixel measurements for blocks of text so that you can determine exactly how high and
- * wide, in pixels, a given block of text will be.
- * @singleton
- */
-Ext.util.TextMetrics = function(){
-    var shared;
-    return {
-        /**
-         * Measures the size of the specified text
-         * @param {String/HTMLElement} el The element, dom node or id from which to copy existing CSS styles
-         * that can affect the size of the rendered text
-         * @param {String} text The text to measure
-         * @param {Number} fixedWidth (optional) If the text will be multiline, you have to set a fixed width
-         * in order to accurately measure the text height
-         * @return {Object} An object containing the text's size {width: (width), height: (height)}
-         */
-        measure : function(el, text, fixedWidth){
-            if(!shared){
-                shared = Ext.util.TextMetrics.Instance(el, fixedWidth);
-            }
-            shared.bind(el);
-            shared.setFixedWidth(fixedWidth || 'auto');
-            return shared.getSize(text);
-        },
-
-        /**
-         * Return a unique TextMetrics instance that can be bound directly to an element and reused.  This reduces
-         * the overhead of multiple calls to initialize the style properties on each measurement.
-         * @param {String/HTMLElement} el The element, dom node or id that the instance will be bound to
-         * @param {Number} fixedWidth (optional) If the text will be multiline, you have to set a fixed width
-         * in order to accurately measure the text height
-         * @return {Ext.util.TextMetrics.Instance} instance The new instance
-         */
-        createInstance : function(el, fixedWidth){
-            return Ext.util.TextMetrics.Instance(el, fixedWidth);
-        }
-    };
-}();
-
-Ext.util.TextMetrics.Instance = function(bindTo, fixedWidth){
-    var ml = new Ext.Element(document.createElement('div'));
-    document.body.appendChild(ml.dom);
-    ml.position('absolute');
-    ml.setLeftTop(-1000, -1000);
-    ml.hide();
-
-    if(fixedWidth){
-        mi.setWidth(fixedWidth);
-    }
-
-    var instance = {
-        /**
-         * Returns the size of the specified text based on the internal element's style and width properties
-         * @param {String} text The text to measure
-         * @return {Object} An object containing the text's size {width: (width), height: (height)}
-         */
-        getSize : function(text){
-            ml.update(text);
-            var s = ml.getSize();
-            ml.update('');
-            return s;
-        },
-
-        /**
-         * Binds this TextMetrics instance to an element from which to copy existing CSS styles
-         * that can affect the size of the rendered text
-         * @param {String/HTMLElement} el The element, dom node or id
-         */
-        bind : function(el){
-            ml.setStyle(
-                Ext.fly(el).getStyles('font-size','font-style', 'font-weight', 'font-family','line-height')
-            );
-        },
-
-        /**
-         * Sets a fixed width on the internal measurement element.  If the text will be multiline, you have
-         * to set a fixed width in order to accurately measure the text height.
-         * @param {Number} width The width to set on the element
-         */
-        setFixedWidth : function(width){
-            ml.setWidth(width);
-        },
-
-        /**
-         * Returns the measured width of the specified text
-         * @param {String} text The text to measure
-         * @return {Number} width The width in pixels
-         */
-        getWidth : function(text){
-            ml.dom.style.width = 'auto';
-            return this.getSize(text).width;
-        },
-
-        /**
-         * Returns the measured height of the specified text.  For multiline text, be sure to call
-         * {@link #setFixedWidth} if necessary.
-         * @param {String} text The text to measure
-         * @return {Number} height The height in pixels
-         */
-        getHeight : function(text){
-            return this.getSize(text).height;
-        }
-    };
-
-    instance.bind(bindTo);
-
-    return instance;
-};
-
-// backwards compat
-Ext.Element.measureText = Ext.util.TextMetrics.measure;

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Toolbar.jss.html b/www/extras/extjs/docs/output/Toolbar.jss.html deleted file mode 100644 index 00c773507..000000000 --- a/www/extras/extjs/docs/output/Toolbar.jss.html +++ /dev/null @@ -1,452 +0,0 @@ -Toolbar.js

Toolbar.js

/**
- * @class Ext.Toolbar
- * Basic Toolbar class.
- * @constructor
- * Creates a new Toolbar
- * @param {String/HTMLElement/Element} container The id or element that will contain the toolbar
- * @param {Array} buttons (optional) array of button configs or elements to add
- * @param {Object} config The config object
- */ 
- Ext.Toolbar = function(container, buttons, config){
-     if(container instanceof Array){ // omit the container for later rendering
-         buttons = container;
-         config = buttons;
-         container = null;
-     }
-     Ext.apply(this, config);
-     this.buttons = buttons;
-     if(container){
-         this.render(container);
-     }
-};
-
-Ext.Toolbar.prototype = {
-
-    render : function(ct){
-        this.el = Ext.get(ct);
-        if(this.cls){
-            this.el.addClass(this.cls);
-        }
-        // using a table allows for vertical alignment
-        this.el.update('<div class="x-toolbar x-small-editor"><table cellspacing="0"><tr></tr></table></div>');
-        this.tr = this.el.child("tr", true);
-        var autoId = 0;
-        this.items = new Ext.util.MixedCollection(false, function(o){
-            return o.id || ("item" + (++autoId));
-        });
-        if(this.buttons){
-            this.add.apply(this, this.buttons);
-            delete this.buttons;
-        }
-    },
-
-    /**
-     * Adds element(s) to the toolbar - this function takes a variable number of 
-     * arguments of mixed type and adds them to the toolbar.
-     * @param {Mixed} arg1 If arg is a Toolbar.Button, it is added. If arg is a string, it is wrapped 
-     * in a ytb-text element and added unless the text is "separator" in which case a separator
-     * is added. Otherwise, it is assumed the element is an HTMLElement and it is added directly.
-     * @param {Mixed} arg2
-     * @param {Mixed} etc
-     */
-    add : function(){
-        var a = arguments, l = a.length;
-        for(var i = 0; i < l; i++){
-            var el = a[i];
-            if(el.applyTo){ // some kind of form field
-                this.addField(el);
-            }else if(el.render){ // some kind of Toolbar.Item
-                this.addItem(el);
-            }else if(typeof el == "string"){ // string
-                if(el == "separator" || el == "-"){
-                    this.addSeparator();
-                }else if(el == " "){
-                    this.addSpacer();
-                }else{
-                    this.addText(el);
-                }
-            }else if(el.tagName){ // element
-                this.addElement(el);
-            }else if(typeof el == "object"){ // must be button config?
-                this.addButton(el);
-            }
-        }
-    },
-    
-    /**
-     * Returns the element for this toolbar
-     * @return {Ext.Element}
-     */
-    getEl : function(){
-        return this.el;  
-    },
-    
-    /**
-     * Adds a separator
-     * @return {Ext.Toolbar.Item} The separator item
-     */
-    addSeparator : function(){
-        return this.addItem(new Ext.Toolbar.Separator());
-    },
-
-    /**
-     * Adds a spacer element
-     * @return {Ext.Toolbar.Item} The spacer item
-     */
-    addSpacer : function(){
-        return this.addItem(new Ext.Toolbar.Spacer());
-    },
-
-    /**
-     * Adds any standard HTML element to the toolbar
-     * @param {String/HTMLElement/Element} el The element or id of the element to add
-     * @return {Ext.Toolbar.Item} The element's item
-     */
-    addElement : function(el){
-        return this.addItem(new Ext.Toolbar.Item(el));
-    },
-    
-    /**
-     * Adds any Toolbar.Item or subclass
-     * @param {Toolbar.Item} item
-     * @return {Ext.Toolbar.Item} The item
-     */
-    addItem : function(item){
-        var td = this.nextBlock();
-        item.render(td);
-        this.items.add(item);
-        return item;
-    },
-    
-    /**
-     * Add a button (or buttons), see {@link Ext.Toolbar.Button} for more info on the config
-     * @param {Object/Array} config A button config or array of configs
-     * @return {Ext.Toolbar.Button/Array}
-     */
-    addButton : function(config){
-        if(config instanceof Array){
-            var buttons = [];
-            for(var i = 0, len = config.length; i < len; i++) {
-            	buttons.push(this.addButton(config[i]));
-            }
-            return buttons;
-        }
-        var b = config;
-        if(!(config instanceof Ext.Toolbar.Button)){
-             b = new Ext.Toolbar.Button(config);
-        }
-        var td = this.nextBlock();
-        b.render(td);
-        this.items.add(b);
-        return b;
-    },
-    
-    /**
-     * Adds text to the toolbar
-     * @param {String} text The text to add
-     * @return {Ext.Toolbar.Item} The element's item
-     */
-    addText : function(text){
-        return this.addItem(new Ext.Toolbar.TextItem(text));
-    },
-    
-    /**
-     * Inserts any Toolbar.Item/Toolbar.Button at the specified index
-     * @param {Number} index The index where the item is to be inserted
-     * @param {Object/Toolbar.Item/Toolbar.Button (may be Array)} item The button, or button config object to be inserted.
-     * @return {Ext.Toolbar.Button/Item}
-     */
-    insertButton : function(index, item){
-        if(item instanceof Array){
-            var buttons = [];
-            for(var i = 0, len = item.length; i < len; i++) {
-               buttons.push(this.insertButton(index + i, item[i]));
-            }
-            return buttons;
-        }
-        if (!(item instanceof Ext.Toolbar.Button)){
-           item = new Ext.Toolbar.Button(item);
-        }
-        var td = document.createElement("td");
-        this.tr.insertBefore(td, this.tr.childNodes[index]);
-        item.render(td);
-        this.items.insert(index, item);
-        return item;
-    },
-    
-    /**
-     * Adds a new element to the toolbar from the passed DomHelper config
-     * @param {Object} config
-     * @return {Ext.Toolbar.Item} The element's item
-     */
-    addDom : function(config, returnEl){
-        var td = this.nextBlock();
-        Ext.DomHelper.overwrite(td, config);
-        var ti = new Ext.Toolbar.Item(td.firstChild);
-        ti.render(td);
-        this.items.add(ti);
-        return ti;
-    },
-
-    /**
-     * Add a dynamically rendered Ext.form field (TextField, ComboBox, etc). Note: the field should not have
-     * been rendered yet. For a field that has already been rendered, use addElement.
-     * @param {Field} field
-     * @return {ToolbarItem}
-     */
-    addField : function(field){
-        var td = this.nextBlock();
-        field.render(td);
-        var ti = new Ext.Toolbar.Item(td.firstChild);
-        ti.render(td);
-        this.items.add(ti);
-        return ti;
-    },
-
-    // private
-    nextBlock : function(){
-        var td = document.createElement("td");
-        this.tr.appendChild(td);
-        return td;
-    }
-};
-
-/**
- * @class Ext.Toolbar.Item
- * The base class that other classes should extend in order to get some basic common toolbar item functionality.
- * @constructor
- * Creates a new Item
- * @param {HTMLElement} el 
- */
-Ext.Toolbar.Item = function(el){
-    this.el = Ext.getDom(el);
-    this.id = Ext.id(this.el);
-    this.hidden = false;
-};
-
-Ext.Toolbar.Item.prototype = {
-    
-    /**
-     * Get this item's HTML Element
-     * @return {HTMLElement}
-     */
-    getEl : function(){
-       return this.el;  
-    },
-
-    // private
-    render : function(td){
-        this.td = td;
-        td.appendChild(this.el);
-    },
-    
-    /**
-     * Remove and destroy this button
-     */
-    destroy : function(){
-        this.td.parentNode.removeChild(this.td);
-    },
-    
-    /**
-     * Show this item
-     */
-    show: function(){
-        this.hidden = false;
-        this.td.style.display = "";
-    },
-    
-    /**
-     * Hide this item
-     */
-    hide: function(){
-        this.hidden = true;
-        this.td.style.display = "none";
-    },
-    
-    /**
-     * Convenience function for boolean show/hide
-     * @param {Boolean} visible true to show/false to hide
-     */
-    setVisible: function(visible){
-        if(visible) {
-            this.show();
-        }else{
-            this.hide();
-        }
-    },
-    
-    /**
-     * Try to focus this item
-     */
-    focus : function(){
-        Ext.fly(this.el).focus();
-    },
-    
-    /**
-     * Disable this item
-     */
-    disable : function(){
-        Ext.fly(this.td).addClass("x-item-disabled");
-        this.disabled = true;
-        this.el.disabled = true;
-    },
-    
-    /**
-     * Enable this item
-     */
-    enable : function(){
-        Ext.fly(this.td).removeClass("x-item-disabled");
-        this.disabled = false;
-        this.el.disabled = false;
-    }
-};
-
-
-/**
- * @class Ext.Toolbar.Separator
- * @extends Ext.Toolbar.Item
- * A simple toolbar separator class
- * @constructor
- * Creates a new Separator
- */
-Ext.Toolbar.Separator = function(){
-    var s = document.createElement("span");
-    s.className = "ytb-sep";
-    Ext.Toolbar.Separator.superclass.constructor.call(this, s);
-};
-Ext.extend(Ext.Toolbar.Separator, Ext.Toolbar.Item);
-
-/**
- * @class Ext.Toolbar.Spacer
- * @extends Ext.Toolbar.Item
- * A simple element that adds extra horizontal space to a toolbar.
- * @constructor
- * Creates a new Spacer
- */
-Ext.Toolbar.Spacer = function(){
-    var s = document.createElement("div");
-    s.className = "ytb-spacer";
-    Ext.Toolbar.Separator.superclass.constructor.call(this, s);
-};
-Ext.extend(Ext.Toolbar.Spacer, Ext.Toolbar.Item);
-
-/**
- * @class Ext.Toolbar.TextItem
- * @extends Ext.Toolbar.Item
- * A simple class that renders text directly into a toolbar.
- * @constructor
- * Creates a new TextItem
- * @param {String} text
- */
-Ext.Toolbar.TextItem = function(text){
-    var s = document.createElement("span");
-    s.className = "ytb-text";
-    s.innerHTML = text;
-    Ext.Toolbar.TextItem.superclass.constructor.call(this, s);
-};
-Ext.extend(Ext.Toolbar.TextItem, Ext.Toolbar.Item);
-
-/**
- * @class Ext.Toolbar.Button
- * @extends Ext.Button
- * A button that renders into a toolbar.
- * @constructor
- * Creates a new Button
- * @param {Object} config A standard {@link Ext.Button} config object
- */
-Ext.Toolbar.Button = function(config){
-    Ext.Toolbar.Button.superclass.constructor.call(this, null, config);
-};
-Ext.extend(Ext.Toolbar.Button, Ext.Button, {
-    render : function(td){
-        this.td = td;
-        Ext.Toolbar.Button.superclass.render.call(this, td);
-    },
-    
-    /**
-     * Remove and destroy this button
-     */
-    destroy : function(){
-        Ext.Toolbar.Button.superclass.destroy.call(this);
-        this.td.parentNode.removeChild(this.td);
-    },
-    
-    /**
-     * Show this button
-     */
-    show: function(){
-        this.hidden = false;
-        this.td.style.display = "";
-    },
-    
-    /**
-     * Hide this button
-     */
-    hide: function(){
-        this.hidden = true;
-        this.td.style.display = "none";
-    },
-
-    /**
-     * Disable this item
-     */
-    disable : function(){
-        Ext.fly(this.td).addClass("x-item-disabled");
-        this.disabled = true;
-    },
-
-    /**
-     * Enable this item
-     */
-    enable : function(){
-        Ext.fly(this.td).removeClass("x-item-disabled");
-        this.disabled = false;
-    }
-});
-// backwards compat
-Ext.ToolbarButton = Ext.Toolbar.Button;
-
-/**
- * @class Ext.Toolbar.MenuButton
- * @extends Ext.MenuButton
- * A menu button that renders into a toolbar.
- * @constructor
- * Creates a new MenuButton
- * @param {Object} config A standard {@link Ext.MenuButton} config object
- */
-Ext.Toolbar.MenuButton = function(config){
-    Ext.Toolbar.MenuButton.superclass.constructor.call(this, null, config);
-};
-Ext.extend(Ext.Toolbar.MenuButton, Ext.MenuButton, {
-    render : function(td){
-        this.td = td;
-        Ext.Toolbar.MenuButton.superclass.render.call(this, td);
-    },
-    
-    /**
-     * Remove and destroy this button
-     */
-    destroy : function(){
-        Ext.Toolbar.MenuButton.superclass.destroy.call(this);
-        this.td.parentNode.removeChild(this.td);
-    },
-    
-    /**
-     * Show this button
-     */
-    show: function(){
-        this.hidden = false;
-        this.td.style.display = "";
-    },
-    
-    /**
-     * Hide this button
-     */
-    hide: function(){
-        this.hidden = true;
-        this.td.style.display = "none";
-    }
-});
-
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Tree.jss.html b/www/extras/extjs/docs/output/Tree.jss.html deleted file mode 100644 index d01bc867d..000000000 --- a/www/extras/extjs/docs/output/Tree.jss.html +++ /dev/null @@ -1,722 +0,0 @@ -Tree.js

Tree.js

/**
- * @class Ext.data.Tree
- * @extends Ext.util.Observable
- * Represents a tree data structure and bubbles all the events for its nodes. The nodes
- * in the tree have most standard DOM functionality.
- * @constructor
- * @param {Node} root (optional) The root node 
- */
-Ext.data.Tree = function(root){
-   this.nodeHash = {};
-   /**
-    * The root node for this tree
-    * @type Node
-    */
-   this.root = null;
-   if(root){
-       this.setRootNode(root);
-   }
-   this.addEvents({
-       /**
-        * @event append
-        * Fires when a new child node is appended to a node in this tree.
-        * @param {Tree} tree The owner tree
-        * @param {Node} parent The parent node
-        * @param {Node} node The newly appended node
-        * @param {Number} index The index of the newly appended node
-        */
-       "append" : true,
-       /**
-        * @event remove
-        * Fires when a child node is removed from a node in this tree.
-        * @param {Tree} tree The owner tree
-        * @param {Node} parent The parent node
-        * @param {Node} node The child node removed
-        */
-       "remove" : true,
-       /**
-        * @event move
-        * Fires when a node is moved to a new location in the tree
-        * @param {Tree} tree The owner tree
-        * @param {Node} node The node moved
-        * @param {Node} oldParent The old parent of this node
-        * @param {Node} newParent The new parent of this node
-        * @param {Number} index The index it was moved to
-        */
-       "move" : true,
-       /**
-        * @event insert
-        * Fires when a new child node is inserted in a node in this tree.
-        * @param {Tree} tree The owner tree
-        * @param {Node} parent The parent node 
-        * @param {Node} node The child node inserted
-        * @param {Node} refNode The child node the node was inserted before
-        */
-       "insert" : true,
-       /**
-        * @event beforeappend
-        * Fires before a new child is appended to a node in this tree, return false to cancel the append.
-        * @param {Tree} tree The owner tree
-        * @param {Node} parent The parent node 
-        * @param {Node} node The child node to be appended
-        */
-       "beforeappend" : true,
-       /**
-        * @event beforeremove
-        * Fires before a child is removed from a node in this tree, return false to cancel the remove.
-        * @param {Tree} tree The owner tree
-        * @param {Node} parent The parent node 
-        * @param {Node} node The child node to be removed
-        */
-       "beforeremove" : true,
-       /**
-        * @event beforemove
-        * Fires before a node is moved to a new location in the tree. Return false to cancel the move.
-        * @param {Tree} tree The owner tree
-        * @param {Node} node The node being moved
-        * @param {Node} oldParent The parent of the node
-        * @param {Node} newParent The new parent the node is moving to
-        * @param {Number} index The index it is being moved to
-        */
-       "beforemove" : true,
-       /**
-        * @event beforeinsert
-        * Fires before a new child is inserted in a node in this tree, return false to cancel the insert.
-        * @param {Tree} tree The owner tree
-        * @param {Node} parent The parent node 
-        * @param {Node} node The child node to be inserted
-        * @param {Node} refNode The child node the node is being inserted before
-        */
-       "beforeinsert" : true
-   });
-
-    Ext.data.Tree.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.data.Tree, Ext.util.Observable, {
-    pathSeparator: "/",
-    
-    /**
-     * Returns this root node for this tree
-     * @return {Node}
-     */
-    getRootNode : function(){
-        return this.root;
-    },
-    
-    /**
-     * Sets the root node for this tree
-     * @param {Node} node
-     * @return {Node}
-     */
-    setRootNode : function(node){
-        this.root = node;
-        node.ownerTree = this;
-        node.isRoot = true;
-        this.registerNode(node);
-        return node;
-    },
-    
-    /**
-     * Gets a node in this tree by its id
-     * @param {String} id
-     * @return {Node}
-     */
-    getNodeById : function(id){
-        return this.nodeHash[id];
-    },
-    
-    registerNode : function(node){
-        this.nodeHash[node.id] = node;
-    },
-    
-    unregisterNode : function(node){
-        delete this.nodeHash[node.id];
-    },
-    
-    toString : function(){
-        return "[Tree"+(this.id?" "+this.id:"")+"]";
-    }  
-});
-
-/**
- * @class Ext.data.Node
- * @extends Ext.util.Observable
- * @cfg {Boolean} leaf true if this node is a leaf and does not have children
- * @cfg {String} id The id for this node. If one is not specified, one is generated.
- * @constructor
- * @param {Object} attributes The attributes/config for the node 
- */
-Ext.data.Node = function(attributes){
-    /**
-     * The attributes supplied for the node. You can use this property to access any custom attributes you supplied.
-     * @type {Object}
-     */
-    this.attributes = attributes || {};
-    this.leaf = this.attributes.leaf;
-    /**
-     * The node id. @type String
-     */
-    this.id = this.attributes.id;
-    if(!this.id){
-        this.id = Ext.id(null, "ynode-");
-        this.attributes.id = this.id;
-    }
-    /**
-     * All child nodes of this node. @type Array
-     */
-    this.childNodes = [];
-    if(!this.childNodes.indexOf){ // indexOf is a must
-        this.childNodes.indexOf = function(o){
-            for(var i = 0, len = this.length; i < len; i++){
-                if(this[i] == o) return i;
-            }
-            return -1;
-        };
-    }
-    /**
-     * The parent node for this node. @type Node
-     */
-    this.parentNode = null;
-    /**
-     * The first direct child node of this node, or null if this node has no child nodes. @type Node
-     */
-    this.firstChild = null;
-    /**
-     * The last direct child node of this node, or null if this node has no child nodes. @type Node
-     */
-    this.lastChild = null;
-    /**
-     * The node immediately preceding this node in the tree, or null if there is no sibling node. @type Node
-     */
-    this.previousSibling = null;
-    /**
-     * The node immediately following this node in the tree, or null if there is no sibling node. @type Node
-     */
-    this.nextSibling = null;
-    
-    this.addEvents({
-       /**
-        * @event append
-        * Fires when a new child node is appended
-        * @param {Tree} tree The owner tree
-        * @param {Node} this This node
-        * @param {Node} node The newly appended node
-        * @param {Number} index The index of the newly appended node
-        */
-       "append" : true,
-       /**
-        * @event remove
-        * Fires when a child node is removed
-        * @param {Tree} tree The owner tree
-        * @param {Node} this This node
-        * @param {Node} node The removed node
-        */
-       "remove" : true,
-       /**
-        * @event move
-        * Fires when this node is moved to a new location in the tree
-        * @param {Tree} tree The owner tree
-        * @param {Node} this This node
-        * @param {Node} oldParent The old parent of this node
-        * @param {Node} newParent The new parent of this node
-        * @param {Number} index The index it was moved to
-        */
-       "move" : true,
-       /**
-        * @event insert
-        * Fires when a new child node is inserted.
-        * @param {Tree} tree The owner tree
-        * @param {Node} this This node
-        * @param {Node} node The child node inserted
-        * @param {Node} refNode The child node the node was inserted before
-        */
-       "insert" : true,
-       /**
-        * @event beforeappend
-        * Fires before a new child is appended, return false to cancel the append.
-        * @param {Tree} tree The owner tree
-        * @param {Node} this This node
-        * @param {Node} node The child node to be appended
-        */
-       "beforeappend" : true,
-       /**
-        * @event beforeremove
-        * Fires before a child is removed, return false to cancel the remove.
-        * @param {Tree} tree The owner tree
-        * @param {Node} this This node
-        * @param {Node} node The child node to be removed
-        */
-       "beforeremove" : true,
-       /**
-        * @event beforemove
-        * Fires before this node is moved to a new location in the tree. Return false to cancel the move.
-        * @param {Tree} tree The owner tree
-        * @param {Node} this This node
-        * @param {Node} oldParent The parent of this node
-        * @param {Node} newParent The new parent this node is moving to
-        * @param {Number} index The index it is being moved to
-        */
-       "beforemove" : true,
-       /**
-        * @event beforeinsert
-        * Fires before a new child is inserted, return false to cancel the insert.
-        * @param {Tree} tree The owner tree
-        * @param {Node} this This node
-        * @param {Node} node The child node to be inserted
-        * @param {Node} refNode The child node the node is being inserted before
-        */
-       "beforeinsert" : true
-   });
-    this.listeners = this.attributes.listeners;
-    Ext.data.Node.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.data.Node, Ext.util.Observable, {
-    fireEvent : function(evtName){
-        // first do standard event for this node
-        if(Ext.data.Node.superclass.fireEvent.apply(this, arguments) === false){
-            return false;
-        }
-        // then bubble it up to the tree if the event wasn't cancelled
-        var ot = this.getOwnerTree();
-        if(ot){
-            if(ot.fireEvent.apply(this.ownerTree, arguments) === false){
-                return false;
-            }
-        }
-        return true;
-    },
-    
-    /**
-     * Returns true if this node is a leaf 
-     * @return {Boolean}
-     */
-    isLeaf : function(){
-        return this.leaf === true;  
-    },
-    
-    // private
-    setFirstChild : function(node){
-        this.firstChild = node;  
-    },
-    
-    //private
-    setLastChild : function(node){
-        this.lastChild = node;
-    },
-    
-    
-    /**
-     * Returns true if this node is the last child of its parent
-     * @return {Boolean}
-     */
-    isLast : function(){
-       return (!this.parentNode ? true : this.parentNode.lastChild == this);   
-    },
-    
-    /**
-     * Returns true if this node is the first child of its parent
-     * @return {Boolean}
-     */
-    isFirst : function(){
-       return (!this.parentNode ? true : this.parentNode.firstChild == this);   
-    },
-    
-    hasChildNodes : function(){
-        return !this.isLeaf() && this.childNodes.length > 0;
-    },
-    
-    /**
-     * Insert node(s) as the last child node of this node.
-     * @param {Node/Array} node The node or Array of nodes to append
-     * @return {Node} The appended node if single append, or null if an array was passed
-     */
-    appendChild : function(node){
-        var multi = false;
-        if(node instanceof Array){
-            multi = node;
-        }else if(arguments.length > 1){
-            multi = arguments;
-        }
-        // if passed an array or multiple args do them one by one
-        if(multi){
-            for(var i = 0, len = multi.length; i < len; i++) {
-            	this.appendChild(multi[i]);
-            }
-        }else{
-            if(this.fireEvent("beforeappend", this.ownerTree, this, node) === false){
-                return false;
-            }
-            var index = this.childNodes.length;
-            var oldParent = node.parentNode;
-            // it's a move, make sure we move it cleanly
-            if(oldParent){
-                if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index) === false){
-                    return false;
-                }
-                oldParent.removeChild(node);
-            }
-            index = this.childNodes.length;
-            if(index == 0){
-                this.setFirstChild(node);
-            }
-            this.childNodes.push(node);
-            node.parentNode = this;
-            var ps = this.childNodes[index-1];
-            if(ps){
-                node.previousSibling = ps;
-                ps.nextSibling = node;
-            }else{
-                node.previousSibling = null;
-            }
-            node.nextSibling = null;
-            this.setLastChild(node);
-            node.setOwnerTree(this.getOwnerTree());
-            this.fireEvent("append", this.ownerTree, this, node, index);
-            if(oldParent){
-                node.fireEvent("move", this.ownerTree, node, oldParent, this, index);
-            }
-            return node;
-        }
-    },
-    
-    /**
-     * Removes a child node from this node.
-     * @param {Node} node The node to remove
-     * @return {Node} The removed node
-     */
-    removeChild : function(node){
-        var index = this.childNodes.indexOf(node);
-        if(index == -1){
-            return false;
-        }
-        if(this.fireEvent("beforeremove", this.ownerTree, this, node) === false){
-            return false;
-        }
-            
-        // remove it from childNodes collection
-        this.childNodes.splice(index, 1);
-        
-        // update siblings
-        if(node.previousSibling){
-            node.previousSibling.nextSibling = node.nextSibling;
-        }
-        if(node.nextSibling){
-            node.nextSibling.previousSibling = node.previousSibling;
-        }
-        
-        // update child refs
-        if(this.firstChild == node){
-            this.setFirstChild(node.nextSibling);
-        }
-        if(this.lastChild == node){
-            this.setLastChild(node.previousSibling);
-        }
-        
-        node.setOwnerTree(null);
-        // clear any references from the node
-        node.parentNode = null;
-        node.previousSibling = null;
-        node.nextSibling = null;
-        this.fireEvent("remove", this.ownerTree, this, node);
-        return node;
-    },
-    
-    /**
-     * Inserts the first node before the second node in this nodes childNodes collection.
-     * @param {Node} node The node to insert
-     * @param {Node} refNode The node to insert before (if null the node is appended)
-     * @return {Node} The inserted node
-     */
-    insertBefore : function(node, refNode){
-        if(!refNode){ // like standard Dom, refNode can be null for append
-            return this.appendChild(node);
-        }
-        // nothing to do
-        if(node == refNode){
-            return false;
-        }
-        
-        if(this.fireEvent("beforeinsert", this.ownerTree, this, node, refNode) === false){
-            return false;
-        }
-        var index = this.childNodes.indexOf(refNode);
-        var oldParent = node.parentNode;
-        var refIndex = index;
-        
-        // when moving internally, indexes will change after remove
-        if(oldParent == this && this.childNodes.indexOf(node) < index){
-            refIndex--;
-        }
-        
-        // it's a move, make sure we move it cleanly
-        if(oldParent){
-            if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index, refNode) === false){
-                return false;
-            }
-            oldParent.removeChild(node);
-        }
-        if(refIndex == 0){
-            this.setFirstChild(node);
-        }
-        this.childNodes.splice(refIndex, 0, node);
-        node.parentNode = this;
-        var ps = this.childNodes[refIndex-1];
-        if(ps){
-            node.previousSibling = ps;
-            ps.nextSibling = node;
-        }else{
-            node.previousSibling = null;
-        }
-        node.nextSibling = refNode;
-        refNode.previousSibling = node;
-        node.setOwnerTree(this.getOwnerTree());
-        this.fireEvent("insert", this.ownerTree, this, node, refNode);
-        if(oldParent){
-            node.fireEvent("move", this.ownerTree, node, oldParent, this, refIndex, refNode);
-        }
-        return node;
-    },
-
-    /**
-     * Returns the child node at the specified index.
-     * @param {Number} index
-     * @return {Node}
-     */
-    item : function(index){
-        return this.childNodes[index];  
-    },
-    
-    /**
-     * Replaces one child node in this node with another.
-     * @param {Node} newChild The replacement node
-     * @param {Node} oldChild The node to replace
-     * @return {Node} The replaced node
-     */
-    replaceChild : function(newChild, oldChild){
-        this.insertBefore(newChild, oldChild);
-        this.removeChild(oldChild);
-        return oldChild;
-    },
-    
-    /**
-     * Returns the index of a child node
-     * @param {Node} node
-     * @return {Number} The index of the node or -1 if it was not found
-     */
-    indexOf : function(child){
-        return this.childNodes.indexOf(child);  
-    },
-    
-    /**
-     * Returns the tree this node is in.
-     * @return {Tree}
-     */
-    getOwnerTree : function(){
-        // if it doesn't have one, look for one
-        if(!this.ownerTree){
-            var p = this;
-            while(p){
-                if(p.ownerTree){
-                    this.ownerTree = p.ownerTree;
-                    break;
-                }
-                p = p.parentNode;
-            }
-        }
-        return this.ownerTree;
-    },
-    
-    /**
-     * Returns depth of this node (the root node has a depth of 0)
-     * @return {Number}
-     */
-    getDepth : function(){
-        var depth = 0;
-        var p = this;
-        while(p.parentNode){
-            ++depth;
-            p = p.parentNode;
-        }
-        return depth;
-    },
-
-    // private
-    setOwnerTree : function(tree){
-        // if it's move, we need to update everyone
-        if(tree != this.ownerTree){
-            if(this.ownerTree){
-                this.ownerTree.unregisterNode(this);
-            }
-            this.ownerTree = tree;
-            var cs = this.childNodes;
-            for(var i = 0, len = cs.length; i < len; i++) {
-            	cs[i].setOwnerTree(tree);
-            }
-            if(tree){
-                tree.registerNode(this);
-            }
-        }
-    },
-    
-    /**
-     * Returns the path for this node. The path can be used to expand or select this node programmatically.
-     * @param {String} attr (optional) The attr to use for the path (defaults to the node's id)
-     * @return {String} The path
-     */
-    getPath : function(attr){
-        attr = attr || "id";
-        var p = this.parentNode;
-        var b = [this.attributes[attr]];
-        while(p){
-            b.unshift(p.attributes[attr]);
-            p = p.parentNode;
-        }
-        var sep = this.getOwnerTree().pathSeparator;
-        return sep + b.join(sep);
-    },
-    
-    /**
-     * Bubbles up the tree from this node, calling the specified function with each node. The scope (<i>this</i>) of 
-     * function call will be the scope provided or the current node. The arguments to the function
-     * will be the args provided or the current node. If the function returns false at any point, 
-     * the bubble is stopped.
-     * @param {Function} fn The function to call
-     * @param {Object} scope (optional) The scope of the function (defaults to current node)
-     * @param {Array} args (optional) The args to call the function with (default to passing the current node)
-     */
-    bubble : function(fn, scope, args){
-        var p = this;
-        while(p){
-            if(fn.call(scope || p, args || p) === false){
-                break;
-            }
-            p = p.parentNode;
-        }
-    },
-    
-    /**
-     * Cascades down the tree from this node, calling the specified function with each node. The scope (<i>this</i>) of 
-     * function call will be the scope provided or the current node. The arguments to the function
-     * will be the args provided or the current node. If the function returns false at any point, 
-     * the cascade is stopped on that branch.
-     * @param {Function} fn The function to call
-     * @param {Object} scope (optional) The scope of the function (defaults to current node)
-     * @param {Array} args (optional) The args to call the function with (default to passing the current node)
-     */
-    cascade : function(fn, scope, args){
-        if(fn.call(scope || this, args || this) !== false){
-            var cs = this.childNodes;
-            for(var i = 0, len = cs.length; i < len; i++) {
-            	cs[i].cascade(fn, scope, args);
-            }
-        }
-    },
-    
-    /**
-     * Interates the child nodes of this node, calling the specified function with each node. The scope (<i>this</i>) of 
-     * function call will be the scope provided or the current node. The arguments to the function
-     * will be the args provided or the current node. If the function returns false at any point, 
-     * the iteration stops.
-     * @param {Function} fn The function to call
-     * @param {Object} scope (optional) The scope of the function (defaults to current node)
-     * @param {Array} args (optional) The args to call the function with (default to passing the current node)
-     */
-    eachChild : function(fn, scope, args){
-        var cs = this.childNodes;
-        for(var i = 0, len = cs.length; i < len; i++) {
-        	if(fn.call(scope || this, args || cs[i]) === false){
-        	    break;
-        	}
-        }
-    },
-    
-    /**
-     * Finds the first child that has the attribute with the specified value.
-     * @param {String} attribute The attribute name
-     * @param {Mixed} value The value to search for
-     * @return {Node} The found child or null if none was found
-     */
-    findChild : function(attribute, value){
-        var cs = this.childNodes;
-        for(var i = 0, len = cs.length; i < len; i++) {
-        	if(cs[i].attributes[attribute] == value){
-        	    return cs[i];
-        	}
-        }
-        return null;
-    },
-
-    /**
-     * Finds the first child by a custom function. The child matches if the function passed
-     * returns true.
-     * @param {Function} fn
-     * @param {Object} scope (optional)
-     * @return {Node} The found child or null if none was found
-     */
-    findChildBy : function(fn, scope){
-        var cs = this.childNodes;
-        for(var i = 0, len = cs.length; i < len; i++) {
-        	if(fn.call(scope||cs[i], cs[i]) === true){
-        	    return cs[i];
-        	}
-        }
-        return null;
-    },
-
-    /**
-     * Sorts this nodes children using the supplied sort function
-     * @param {Function} fn
-     * @param {Object} scope (optional)
-     */
-    sort : function(fn, scope){
-        var cs = this.childNodes;
-        var len = cs.length;
-        if(len > 0){
-            var sortFn = scope ? function(){fn.apply(scope, arguments);} : fn;
-            cs.sort(sortFn);
-            for(var i = 0; i < len; i++){
-                var n = cs[i];
-                n.previousSibling = cs[i-1];
-                n.nextSibling = cs[i+1];
-                if(i == 0){
-                    this.setFirstChild(n);
-                }
-                if(i == len-1){
-                    this.setLastChild(n);
-                }
-            }
-        }
-    },
-    
-    /**
-     * Returns true if this node is an ancestor (at any point) of the passed node.
-     * @param {Node} node
-     * @return {Boolean}
-     */
-    contains : function(node){
-        return node.isAncestor(this);
-    },
-    
-    /**
-     * Returns true if the passed node is an ancestor (at any point) of this node.
-     * @param {Node} node
-     * @return {Boolean}
-     */
-    isAncestor : function(node){
-        var p = this.parentNode;
-        while(p){
-            if(p == node){
-                return true;
-            }
-            p = p.parentNode;
-        }
-        return false;
-    },
-    
-    toString : function(){
-        return "[Node"+(this.id?" "+this.id:"")+"]";
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TreeDragZone.jss.html b/www/extras/extjs/docs/output/TreeDragZone.jss.html deleted file mode 100644 index 8c0c05ac7..000000000 --- a/www/extras/extjs/docs/output/TreeDragZone.jss.html +++ /dev/null @@ -1,44 +0,0 @@ -TreeDragZone.js

TreeDragZone.js

if(Ext.dd.DragZone){
-Ext.tree.TreeDragZone = function(tree, config){
-    Ext.tree.TreeDragZone.superclass.constructor.call(this, tree.getEl(), config);
-    this.tree = tree;
-};
-
-Ext.extend(Ext.tree.TreeDragZone, Ext.dd.DragZone, {
-    ddGroup : "TreeDD",
-    
-    onBeforeDrag : function(data, e){
-        var n = data.node;
-        return n && n.draggable && !n.disabled;
-    },
-    
-    onInitDrag : function(e){
-        var data = this.dragData;
-        this.tree.getSelectionModel().select(data.node);
-        this.proxy.update("");
-        data.node.ui.appendDDGhost(this.proxy.ghost.dom);
-        this.tree.fireEvent("startdrag", this.tree, data.node, e);
-    },
-    
-    getRepairXY : function(e, data){
-        return data.node.ui.getDDRepairXY();
-    },
-    
-    onEndDrag : function(data, e){
-        this.tree.fireEvent("enddrag", this.tree, data.node, e);
-    },
-    
-    onValidDrop : function(dd, e, id){
-        this.tree.fireEvent("dragdrop", this.tree, this.dragData.node, dd, e);
-        this.hideProxy();
-    },
-    
-    beforeInvalidDrop : function(e, id){
-        // this scrolls the original position back into view
-        var sm = this.tree.getSelectionModel();
-        sm.clearSelections();
-        sm.select(this.dragData.node);
-    }
-});
-}

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TreeDropZone.jss.html b/www/extras/extjs/docs/output/TreeDropZone.jss.html deleted file mode 100644 index fb8ac94fe..000000000 --- a/www/extras/extjs/docs/output/TreeDropZone.jss.html +++ /dev/null @@ -1,235 +0,0 @@ -TreeDropZone.js

TreeDropZone.js

if(Ext.dd.DropZone){
-    
-Ext.tree.TreeDropZone = function(tree, config){
-    this.allowParentInsert = false;
-    this.allowContainerDrop = false;
-    this.appendOnly = false;
-    Ext.tree.TreeDropZone.superclass.constructor.call(this, tree.container, config);
-    this.tree = tree;
-    this.lastInsertClass = "x-tree-no-status";
-    this.dragOverData = {};
-};
-
-Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, {
-    ddGroup : "TreeDD",
-    
-    expandDelay : 1000,
-    
-    expandNode : function(node){
-        if(node.hasChildNodes() && !node.isExpanded()){
-            node.expand(false, null, this.triggerCacheRefresh.createDelegate(this));
-        }
-    },
-    
-    queueExpand : function(node){
-        this.expandProcId = this.expandNode.defer(this.expandDelay, this, [node]);
-    },
-    
-    cancelExpand : function(){
-        if(this.expandProcId){
-            clearTimeout(this.expandProcId);
-            this.expandProcId = false;
-        }
-    },
-    
-    isValidDropPoint : function(n, pt, dd, e, data){
-        if(!n || !data){ return false; }
-        var targetNode = n.node;
-        var dropNode = data.node;
-        // default drop rules
-        if(!(targetNode && targetNode.isTarget && pt)){
-            return false;
-        }
-        if(pt == "append" && targetNode.allowChildren === false){
-            return false;
-        }
-        if((pt == "above" || pt == "below") && (targetNode.parentNode && targetNode.parentNode.allowChildren === false)){
-            return false;
-        }
-        if(dropNode && (targetNode == dropNode || dropNode.contains(targetNode))){
-            return false;
-        }
-        // reuse the object
-        var overEvent = this.dragOverData;
-        overEvent.tree = this.tree;
-        overEvent.target = targetNode;
-        overEvent.data = data;
-        overEvent.point = pt;
-        overEvent.source = dd;
-        overEvent.rawEvent = e;
-        overEvent.dropNode = dropNode;
-        overEvent.cancel = false;  
-        var result = this.tree.fireEvent("nodedragover", overEvent);
-        return overEvent.cancel === false && result !== false;
-    },
-    
-    getDropPoint : function(e, n, dd){
-        var tn = n.node;
-        if(tn.isRoot){
-            return tn.allowChildren !== false ? "append" : false; // always append for root
-        }
-        var dragEl = n.ddel;
-        var t = Ext.lib.Dom.getY(dragEl), b = t + dragEl.offsetHeight;
-        var y = Ext.lib.Event.getPageY(e);
-        var noAppend = tn.allowChildren === false || tn.isLeaf();
-        if(this.appendOnly || tn.parentNode.allowChildren === false){
-            return noAppend ? false : "append";
-        }
-        var noBelow = false;
-        if(!this.allowParentInsert){
-            noBelow = tn.hasChildNodes() && tn.isExpanded();
-        }
-        var q = (b - t) / (noAppend ? 2 : 3);
-        if(y >= t && y < (t + q)){
-            return "above";
-        }else if(!noBelow && (noAppend || y >= b-q && y <= b)){
-            return "below";
-        }else{
-            return "append";
-        }
-    },
-    
-    onNodeEnter : function(n, dd, e, data){
-        this.cancelExpand();
-    },
-    
-    onNodeOver : function(n, dd, e, data){
-        var pt = this.getDropPoint(e, n, dd);
-        var node = n.node;
-        
-        // auto node expand check
-        if(!this.expandProcId && pt == "append" && node.hasChildNodes() && !n.node.isExpanded()){
-            this.queueExpand(node);
-        }else if(pt != "append"){
-            this.cancelExpand();
-        }
-        
-        // set the insert point style on the target node
-        var returnCls = this.dropNotAllowed;
-        if(this.isValidDropPoint(n, pt, dd, e, data)){
-           if(pt){
-               var el = n.ddel;
-               var cls;
-               if(pt == "above"){
-                   returnCls = n.node.isFirst() ? "x-tree-drop-ok-above" : "x-tree-drop-ok-between";
-                   cls = "x-tree-drag-insert-above";
-               }else if(pt == "below"){
-                   returnCls = n.node.isLast() ? "x-tree-drop-ok-below" : "x-tree-drop-ok-between";
-                   cls = "x-tree-drag-insert-below";
-               }else{
-                   returnCls = "x-tree-drop-ok-append";
-                   cls = "x-tree-drag-append";
-               }
-               if(this.lastInsertClass != cls){
-                   Ext.fly(el).replaceClass(this.lastInsertClass, cls);
-                   this.lastInsertClass = cls;
-               }
-           }
-       }
-       return returnCls;
-    },
-    
-    onNodeOut : function(n, dd, e, data){
-        this.cancelExpand();
-        this.removeDropIndicators(n);
-    },
-    
-    onNodeDrop : function(n, dd, e, data){
-        var point = this.getDropPoint(e, n, dd);
-        var targetNode = n.node;
-        targetNode.ui.startDrop();
-        if(!this.isValidDropPoint(n, point, dd, e, data)){
-            targetNode.ui.endDrop();
-            return false;
-        }
-        // first try to find the drop node
-        var dropNode = data.node || (dd.getTreeNode ? dd.getTreeNode(data, targetNode, point, e) : null);
-        var dropEvent = {
-            tree : this.tree,
-            target: targetNode,
-            data: data,
-            point: point,
-            source: dd,
-            rawEvent: e,
-            dropNode: dropNode,
-            cancel: !dropNode   
-        };
-        var retval = this.tree.fireEvent("beforenodedrop", dropEvent);
-        if(retval === false || dropEvent.cancel === true || !dropEvent.dropNode){
-            targetNode.ui.endDrop();
-            return false;
-        }
-        // allow target changing
-        targetNode = dropEvent.target;
-        if(point == "append" && !targetNode.isExpanded()){
-            targetNode.expand(false, null, function(){
-                this.completeDrop(dropEvent);
-            }.createDelegate(this));
-        }else{
-            this.completeDrop(dropEvent);
-        }
-        return true;
-    },
-    
-    completeDrop : function(de){
-        var ns = de.dropNode, p = de.point, t = de.target;
-        if(!(ns instanceof Array)){
-            ns = [ns];
-        }
-        var n;
-        for(var i = 0, len = ns.length; i < len; i++){
-            n = ns[i];
-            if(p == "above"){
-                t.parentNode.insertBefore(n, t);
-            }else if(p == "below"){
-                t.parentNode.insertBefore(n, t.nextSibling);
-            }else{
-                t.appendChild(n);
-            }
-        }
-        n.ui.focus();
-        if(this.tree.hlDrop){
-            n.ui.highlight();
-        }
-        t.ui.endDrop();
-        this.tree.fireEvent("nodedrop", de);
-    },
-    
-    afterNodeMoved : function(dd, data, e, targetNode, dropNode){
-        if(this.tree.hlDrop){
-            dropNode.ui.focus();
-            dropNode.ui.highlight();
-        }
-        this.tree.fireEvent("nodedrop", this.tree, targetNode, data, dd, e);
-    },
-    
-    getTree : function(){
-        return this.tree;
-    },
-    
-    removeDropIndicators : function(n){
-        if(n && n.ddel){
-            var el = n.ddel;
-            Ext.fly(el).removeClass([
-                    "x-tree-drag-insert-above",
-                    "x-tree-drag-insert-below",
-                    "x-tree-drag-append"]);
-            this.lastInsertClass = "_noclass";
-        }
-    },
-    
-    beforeDragDrop : function(target, e, id){
-        this.cancelExpand();
-        return true;
-    },
-    
-    afterRepair : function(data){
-        if(data && Ext.enableFx){
-            data.node.ui.highlight();
-        }
-        this.hideProxy();
-    }    
-});
-
-}

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TreeEditor.jss.html b/www/extras/extjs/docs/output/TreeEditor.jss.html deleted file mode 100644 index 98b2b1297..000000000 --- a/www/extras/extjs/docs/output/TreeEditor.jss.html +++ /dev/null @@ -1,70 +0,0 @@ -TreeEditor.js

TreeEditor.js

Ext.tree.TreeEditor = function(tree, config){
-    config = config || {};
-    // config can either be a prebuilt field, or a field config
-    var field = config.events ? config : new Ext.form.TextField(config);
-    Ext.tree.TreeEditor.superclass.constructor.call(this, field);
-
-    this.tree = tree;
-
-    tree.on('beforeclick', this.beforeNodeClick, this);
-    tree.el.on('mousedown', this.hide, this);
-    this.on('complete', this.updateNode, this);
-    this.on('beforestartedit', this.fitToTree, this);
-    this.on('startedit', this.bindScroll, this, {delay:10});
-    this.on('specialkey', this.onSpecialKey, this);
-};
-
-Ext.extend(Ext.tree.TreeEditor, Ext.Editor, {
-    alignment: "l-l",
-    autoSize: false,
-    hideEl : false,
-    cls: "x-small-editor x-tree-editor",
-    shim:false,
-    shadow:"frame",
-    maxWidth: 250,
-
-    fitToTree : function(ed, el){
-        var td = this.tree.el.dom, nd = el.dom;
-        if(td.scrollLeft >  nd.offsetLeft){ // ensure the node left point is visible
-            td.scrollLeft = nd.offsetLeft;
-        }
-        var w = Math.min(
-                this.maxWidth,
-                (td.clientWidth > 20 ? td.clientWidth : td.offsetWidth) - Math.max(0, nd.offsetLeft-td.scrollLeft) - /*cushion*/5);
-        this.setSize(w, '');
-    },
-
-    triggerEdit : function(node){
-        this.completeEdit();
-        this.editNode = node;
-        this.startEdit(node.ui.textNode, node.text);
-    },
-
-    bindScroll : function(){
-        this.tree.el.on('scroll', this.cancelEdit, this);
-    },
-
-    beforeNodeClick : function(node){
-        if(this.tree.getSelectionModel().isSelected(node)){
-            this.triggerEdit(node);
-            return false;
-        }
-    },
-
-    updateNode : function(ed, value){
-        this.tree.el.un('scroll', this.cancelEdit, this);
-        this.editNode.setText(value);
-    },
-
-    onSpecialKey : function(field, e){
-        var k = e.getKey();
-        if(k == e.ESC){
-            this.cancelEdit();
-            e.stopEvent();
-        }else if(k == e.ENTER && !e.hasModifier()){
-            this.completeEdit();
-            e.stopEvent();
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TreeFilter.jss.html b/www/extras/extjs/docs/output/TreeFilter.jss.html deleted file mode 100644 index 91cb85e69..000000000 --- a/www/extras/extjs/docs/output/TreeFilter.jss.html +++ /dev/null @@ -1,107 +0,0 @@ -TreeFilter.js

TreeFilter.js

/**
- * This doesn't update the indent (lines) or expand collapse icons of the nodes
- */
-Ext.tree.TreeFilter = function(tree, config){
-    this.tree = tree;
-    this.filtered = {};
-    Ext.apply(this, config, {
-        clearBlank:false,
-        reverse:false,
-        autoClear:false,
-        remove:false
-    });
-};
-
-Ext.tree.TreeFilter.prototype = {
-     /**
-     * Filter the data by a specific attribute.
-     * @param {String/RegExp} value Either string that the attribute value 
-     * should start with or a RegExp to test against the attribute
-     * @param {String} attr (optional) The attribute passed in your node's attributes collection. Defaults to "text".
-     * @param {TreeNode} startNode (optional) The node to start the filter at.
-     */
-    filter : function(value, attr, startNode){
-        attr = attr || "text";
-        var f;
-        if(typeof value == "string"){
-            var vlen = value.length;
-            // auto clear empty filter
-            if(vlen == 0 && this.clearBlank){
-                this.clearFilter();
-                return;
-            }
-            value = value.toLowerCase();
-            f = function(n){
-                return n.attributes[attr].substr(0, vlen).toLowerCase() == value;
-            };
-        }else if(value.exec){ // regex?
-            f = function(n){
-                return value.test(n.attributes[attr]);
-            };
-        }else{
-            throw 'Illegal filter type, must be string or regex';
-        }
-        this.filterBy(f, null, startNode);
-	},
-    
-    /**
-     * Filter by a function. The passed function will be called with each 
-     * node in the tree (or from the startNode). If the function returns true, the node is kept 
-     * otherwise it is filtered. If a node is filtered, its children are also filtered.
-     * @param {Function} fn The filter function
-     * @param {Object} scope (optional) The scope of the function (defaults to the current node) 
-     */
-    filterBy : function(fn, scope, startNode){
-        startNode = startNode || this.tree.root;
-        if(this.autoClear){
-            this.clearFilter();
-        }
-        var af = this.filtered, rv = this.reverse;
-        var f = function(n){
-            if(n == startNode){
-                return true;
-            }
-            if(af[n.id]){
-                return false;
-            }
-            var m = fn.call(scope || n, n);
-            if(!m || rv){
-                af[n.id] = n;
-                n.ui.hide();
-                return false;
-            }
-            return true;
-        };
-        startNode.cascade(f);
-        if(this.remove){
-           for(var id in af){
-               if(typeof id != "function"){
-                   var n = af[id];
-                   if(n && n.parentNode){
-                       n.parentNode.removeChild(n);
-                   }
-               }
-           } 
-        }
-    },
-    
-    /**
-     * Clears the current filter. Note: with the "remove" option
-     * set a filter cannot be cleared.
-     */
-    clear : function(){
-        var t = this.tree;
-        var af = this.filtered;
-        for(var id in af){
-            if(typeof id != "function"){
-                var n = af[id];
-                if(n){
-                    n.ui.show();
-                }
-            }
-        }
-        this.filtered = {}; 
-    }
-};
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TreeLoader.jss.html b/www/extras/extjs/docs/output/TreeLoader.jss.html deleted file mode 100644 index c94dfcd6a..000000000 --- a/www/extras/extjs/docs/output/TreeLoader.jss.html +++ /dev/null @@ -1,127 +0,0 @@ -TreeLoader.js

TreeLoader.js

/**
- * @class Ext.tree.TreeLoader
- */
-Ext.tree.TreeLoader = function(config){
-    this.baseParams = {};
-    this.requestMethod = "POST";
-    Ext.apply(this, config);
-    
-    this.addEvents({
-        "beforeload" : true,
-        "load" : true,
-        "loadexception" : true
-    });
-};
-
-Ext.extend(Ext.tree.TreeLoader, Ext.util.Observable, {
-    uiProviders : {},
-    clearOnLoad : true,
-    load : function(node, callback){
-        if(this.clearOnLoad){
-            while(node.firstChild){
-                node.removeChild(node.firstChild);
-            }
-        }
-        if(node.attributes.children){ // preloaded json children
-            var cs = node.attributes.children;
-            for(var i = 0, len = cs.length; i < len; i++){
-                node.appendChild(this.createNode(cs[i]));
-            }
-            if(typeof callback == "function"){
-                callback();
-            }
-        }else if(this.dataUrl){
-            this.requestData(node, callback);
-        }
-    },
-    
-    getParams: function(node){
-        var buf = [], bp = this.baseParams;
-        for(var key in bp){
-            if(typeof bp[key] != "function"){
-                buf.push(encodeURIComponent(key), "=", encodeURIComponent(bp[key]), "&");
-            }
-        }
-        buf.push("node=", encodeURIComponent(node.id));
-        return buf.join("");
-    },
-    
-    requestData : function(node, callback){
-        if(this.fireEvent("beforeload", this, node, callback) !== false){
-            var params = this.getParams(node);
-            var cb = {
-                success: this.handleResponse,
-                failure: this.handleFailure,
-                scope: this,
-        		argument: {callback: callback, node: node}
-            };
-            this.transId = Ext.lib.Ajax.request(this.requestMethod, this.dataUrl, cb, params);
-        }else{
-            // if the load is cancelled, make sure we notify 
-            // the node that we are done
-            if(typeof callback == "function"){
-                callback();
-            }
-        }
-    },
-    
-    isLoading : function(){
-        return this.transId ? true : false;  
-    },
-    
-    abort : function(){
-        if(this.isLoading()){
-            Ext.lib.Ajax.abort(this.transId);
-        }
-    },
-
-    /**
-    * Override this function for custom TreeNode node implementation
-    */
-    createNode : function(attr){
-        if(this.applyLoader !== false){
-            attr.loader = this;
-        }
-        if(typeof attr.uiProvider == 'string'){
-           attr.uiProvider = this.uiProviders[attr.uiProvider] || eval(attr.uiProvider);
-        }
-        return(attr.leaf ?
-                        new Ext.tree.TreeNode(attr) : 
-                        new Ext.tree.AsyncTreeNode(attr));  
-    },
-    
-    processResponse : function(response, node, callback){
-        var json = response.responseText;
-        try {
-            var o = eval("("+json+")");
-	        for(var i = 0, len = o.length; i < len; i++){
-                var n = this.createNode(o[i]);
-                if(n){
-                    node.appendChild(n); 
-                }
-	        }
-	        if(typeof callback == "function"){
-                callback(this, node);
-            }
-        }catch(e){
-            this.handleFailure(response);
-        }
-    },
-    
-    handleResponse : function(response){
-        this.transId = false;
-        var a = response.argument;
-        this.processResponse(response, a.node, a.callback);
-        this.fireEvent("load", this, a.node, response);
-    },
-    
-    handleFailure : function(response){
-        this.transId = false;
-        var a = response.argument;
-        this.fireEvent("loadexception", this, a.node, response);
-        if(typeof a.callback == "function"){
-            a.callback(this, a.node);
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TreeNode.jss.html b/www/extras/extjs/docs/output/TreeNode.jss.html deleted file mode 100644 index 99fe7dc92..000000000 --- a/www/extras/extjs/docs/output/TreeNode.jss.html +++ /dev/null @@ -1,461 +0,0 @@ -TreeNode.js

TreeNode.js

/**
- * @class Ext.tree.TreeNode
- * @extends Ext.data.Node
- * @cfg {String} text The text for this node
- * @cfg {Boolean} expanded true to start the node expanded
- * @cfg {Boolean} allowDrag false to make this node undraggable if DD is on (defaults to true)
- * @cfg {Boolean} allowDrop false if this node cannot be drop on
- * @cfg {Boolean} disabled true to start the node disabled
- * @cfg {String} icon The path to an icon for the node. The preferred way to do this
- * is to use the cls or iconCls attributes and add the icon via a CSS background image.
- * @cfg {String} cls A css class to be added to the node
- * @cfg {String} iconCls A css class to be added to the nodes icon element for applying css background images
- * @cfg {String} href URL of the link used for the node (defaults to #)
- * @cfg {String} hrefTarget target frame for the link
- * @cfg {String} qtip An Ext QuickTip for the node
- * @cfg {Boolean} singleClickExpand True for single click expand on this node
- * @cfg {Function} uiProvider A UI <b>class</b> to use for this node (defaults to Ext.tree.TreeNodeUI)
- * @constructor
- * @param {Object/String} attributes The attributes/config for the node or just a string with the text for the node
- */
-Ext.tree.TreeNode = function(attributes){
-    attributes = attributes || {};
-    if(typeof attributes == "string"){
-        attributes = {text: attributes};
-    }
-    this.childrenRendered = false;
-    this.rendered = false;
-    Ext.tree.TreeNode.superclass.constructor.call(this, attributes);
-    this.expanded = attributes.expanded === true;
-    this.isTarget = attributes.isTarget !== false;
-    this.draggable = attributes.draggable !== false && attributes.allowDrag !== false;
-    this.allowChildren = attributes.allowChildren !== false && attributes.allowDrop !== false;
-
-    /**
-     * Read-only. The text for this node. To change it use setText().
-     * @type String
-     */
-    this.text = attributes.text;
-    /**
-     * True if this node is disabled.
-     * @type Boolean
-     */
-    this.disabled = attributes.disabled === true;
-
-    this.addEvents({
-        /**
-        * @event textchange
-        * Fires when the text for this node is changed
-        * @param {Node} this This node
-        * @param {String} text The new text
-        * @param {String} oldText The old text
-        */
-        "textchange" : true,
-        /**
-        * @event beforeexpand
-        * Fires before this node is expanded, return false to cancel.
-        * @param {Node} this This node
-        * @param {Boolean} deep
-        * @param {Boolean} anim
-        */
-        "beforeexpand" : true,
-        /**
-        * @event beforecollapse
-        * Fires before this node is collapsed, return false to cancel.
-        * @param {Node} this This node
-        * @param {Boolean} deep
-        * @param {Boolean} anim
-        */
-        "beforecollapse" : true,
-        /**
-        * @event expand
-        * Fires when this node is expanded
-        * @param {Node} this This node
-        */
-        "expand" : true,
-        /**
-        * @event disabledchange
-        * Fires when the disabled status of this node changes
-        * @param {Node} this This node
-        * @param {Boolean} disabled
-        */
-        "disabledchange" : true,
-        /**
-        * @event collapse
-        * Fires when this node is collapsed
-        * @param {Node} this This node
-        */
-        "collapse" : true,
-        /**
-        * @event beforeclick
-        * Fires before click processing. Return false to cancel the default action.
-        * @param {Node} this This node
-        * @param {Ext.EventObject} e The event object
-        */
-        "beforeclick":true,
-        /**
-        * @event click
-        * Fires when this node is clicked
-        * @param {Node} this This node
-        * @param {Ext.EventObject} e The event object
-        */
-        "click":true,
-        /**
-        * @event dblclick
-        * Fires when this node is double clicked
-        * @param {Node} this This node
-        * @param {Ext.EventObject} e The event object
-        */
-        "dblclick":true,
-        /**
-        * @event contextmenu
-        * Fires when this node is right clicked
-        * @param {Node} this This node
-        * @param {Ext.EventObject} e The event object
-        */
-        "contextmenu":true,
-        /**
-        * @event beforechildrenrendered
-        * Fires right before the child nodes for this node are rendered
-        * @param {Node} this This node
-        */
-        "beforechildrenrendered":true
-    });
-
-    var uiClass = this.attributes.uiProvider || Ext.tree.TreeNodeUI;
-
-    /**
-     * Read-only. The UI for this node
-     * @type TreeNodeUI
-     */
-    this.ui = new uiClass(this);
-};
-Ext.extend(Ext.tree.TreeNode, Ext.data.Node, {
-    preventHScroll: true,
-
-    /**
-     * Returns true if this node is expanded
-     * @return {Boolean}
-     */
-    isExpanded : function(){
-        return this.expanded;
-    },
-
-    /**
-     * Returns the UI object for this node
-     * @return {TreeNodeUI}
-     */
-    getUI : function(){
-        return this.ui;
-    },
-
-    // private override
-    setFirstChild : function(node){
-        var of = this.firstChild;
-        Ext.tree.TreeNode.superclass.setFirstChild.call(this, node);
-        if(this.childrenRendered && of && node != of){
-            of.renderIndent(true, true);
-        }
-        if(this.rendered){
-            this.renderIndent(true, true);
-        }
-    },
-
-    // private override
-    setLastChild : function(node){
-        var ol = this.lastChild;
-        Ext.tree.TreeNode.superclass.setLastChild.call(this, node);
-        if(this.childrenRendered && ol && node != ol){
-            ol.renderIndent(true, true);
-        }
-        if(this.rendered){
-            this.renderIndent(true, true);
-        }
-    },
-
-    // these methods are overridden to provide lazy rendering support
-    // private override
-    appendChild : function(){
-        var node = Ext.tree.TreeNode.superclass.appendChild.apply(this, arguments);
-        if(node && this.childrenRendered){
-            node.render();
-        }
-        this.ui.updateExpandIcon();
-        return node;
-    },
-
-    // private override
-    removeChild : function(node){
-        this.ownerTree.getSelectionModel().unselect(node);
-        Ext.tree.TreeNode.superclass.removeChild.apply(this, arguments);
-        // if it's been rendered remove dom node
-        if(this.childrenRendered){
-            node.ui.remove();
-        }
-        if(this.childNodes.length < 1){
-            this.collapse(false, false);
-        }else{
-            this.ui.updateExpandIcon();
-        }
-        return node;
-    },
-
-    // private override
-    insertBefore : function(node, refNode){
-        var newNode = Ext.tree.TreeNode.superclass.insertBefore.apply(this, arguments);
-        if(newNode && refNode && this.childrenRendered){
-            node.render();
-        }
-        this.ui.updateExpandIcon();
-        return newNode;
-    },
-
-    /**
-     * Sets the text for this node
-     * @param {String} text
-     */
-    setText : function(text){
-        var oldText = this.text;
-        this.text = text;
-        this.attributes.text = text;
-        if(this.rendered){ // event without subscribing
-            this.ui.onTextChange(this, text, oldText);
-        }
-        this.fireEvent("textchange", this, text, oldText);
-    },
-
-    /**
-     * Triggers selection of this node
-     */
-    select : function(){
-        this.getOwnerTree().getSelectionModel().select(this);
-    },
-
-    /**
-     * Triggers deselection of this node
-     */
-    unselect : function(){
-        this.getOwnerTree().getSelectionModel().unselect(this);
-    },
-
-    /**
-     * Returns true if this node is selected
-     * @return {Boolean}
-     */
-    isSelected : function(){
-        return this.getOwnerTree().getSelectionModel().isSelected(this);
-    },
-
-    /**
-     * Expand this node.
-     * @param {Boolean} deep (optional) True to expand all children as well
-     * @param {Boolean} anim (optional) false to cancel the default animation
-     * @param {Function} callback (optional) A callback to be called when
-     * expanding this node completes (does not wait for deep expand to complete).
-     * Called with 1 parameter, this node.
-     */
-    expand : function(deep, anim, callback){
-        if(!this.expanded){
-            if(this.fireEvent("beforeexpand", this, deep, anim) === false){
-                return;
-            }
-            if(!this.childrenRendered){
-                this.renderChildren();
-            }
-            this.expanded = true;
-            if(!this.isHiddenRoot() && (this.getOwnerTree().animate && anim !== false) || anim){
-                this.ui.animExpand(function(){
-                    this.fireEvent("expand", this);
-                    if(typeof callback == "function"){
-                        callback(this);
-                    }
-                    if(deep === true){
-                        this.expandChildNodes(true);
-                    }
-                }.createDelegate(this));
-                return;
-            }else{
-                this.ui.expand();
-                this.fireEvent("expand", this);
-                if(typeof callback == "function"){
-                    callback(this);
-                }
-            }
-        }else{
-           if(typeof callback == "function"){
-               callback(this);
-           }
-        }
-        if(deep === true){
-            this.expandChildNodes(true);
-        }
-    },
-
-    isHiddenRoot : function(){
-        return this.isRoot && !this.getOwnerTree().rootVisible;
-    },
-
-    /**
-     * Collapse this node.
-     * @param {Boolean} deep (optional) True to collapse all children as well
-     * @param {Boolean} anim (optional) false to cancel the default animation
-     */
-    collapse : function(deep, anim){
-        if(this.expanded && !this.isHiddenRoot()){
-            if(this.fireEvent("beforecollapse", this, deep, anim) === false){
-                return;
-            }
-            this.expanded = false;
-            if((this.getOwnerTree().animate && anim !== false) || anim){
-                this.ui.animCollapse(function(){
-                    this.fireEvent("collapse", this);
-                    if(deep === true){
-                        this.collapseChildNodes(true);
-                    }
-                }.createDelegate(this));
-                return;
-            }else{
-                this.ui.collapse();
-                this.fireEvent("collapse", this);
-            }
-        }
-        if(deep === true){
-            var cs = this.childNodes;
-            for(var i = 0, len = cs.length; i < len; i++) {
-            	cs[i].collapse(true);
-            }
-        }
-    },
-
-    // private
-    delayedExpand : function(delay){
-        if(!this.expandProcId){
-            this.expandProcId = this.expand.defer(delay, this);
-        }
-    },
-
-    // private
-    cancelExpand : function(){
-        if(this.expandProcId){
-            clearTimeout(this.expandProcId);
-        }
-        this.expandProcId = false;
-    },
-
-    /**
-     * Toggles expanded/collapsed state of the node
-     */
-    toggle : function(){
-        if(this.expanded){
-            this.collapse();
-        }else{
-            this.expand();
-        }
-    },
-
-    /**
-     * Ensures all parent nodes are expanded
-     */
-    ensureVisible : function(callback){
-        var tree = this.getOwnerTree();
-        tree.expandPath(this.getPath(), false, function(){
-            tree.getEl().scrollChildIntoView(this.ui.anchor);
-            Ext.callback(callback);
-        }.createDelegate(this));
-    },
-
-    /**
-     * Expand all child nodes
-     * @param {Boolean} deep (optional) true if the child nodes should also expand their child nodes
-     */
-    expandChildNodes : function(deep){
-        var cs = this.childNodes;
-        for(var i = 0, len = cs.length; i < len; i++) {
-        	cs[i].expand(deep);
-        }
-    },
-
-    /**
-     * Collapse all child nodes
-     * @param {Boolean} deep (optional) true if the child nodes should also collapse their child nodes
-     */
-    collapseChildNodes : function(deep){
-        var cs = this.childNodes;
-        for(var i = 0, len = cs.length; i < len; i++) {
-        	cs[i].collapse(deep);
-        }
-    },
-
-    /**
-     * Disables this node
-     */
-    disable : function(){
-        this.disabled = true;
-        this.unselect();
-        if(this.rendered && this.ui.onDisableChange){ // event without subscribing
-            this.ui.onDisableChange(this, true);
-        }
-        this.fireEvent("disabledchange", this, true);
-    },
-
-    /**
-     * Enables this node
-     */
-    enable : function(){
-        this.disabled = false;
-        if(this.rendered && this.ui.onDisableChange){ // event without subscribing
-            this.ui.onDisableChange(this, false);
-        }
-        this.fireEvent("disabledchange", this, false);
-    },
-
-    // private
-    renderChildren : function(suppressEvent){
-        if(suppressEvent !== false){
-            this.fireEvent("beforechildrenrendered", this);
-        }
-        var cs = this.childNodes;
-        for(var i = 0, len = cs.length; i < len; i++){
-            cs[i].render(true);
-        }
-        this.childrenRendered = true;
-    },
-
-    // private
-    sort : function(fn, scope){
-        Ext.tree.TreeNode.superclass.sort.apply(this, arguments);
-        if(this.childrenRendered){
-            var cs = this.childNodes;
-            for(var i = 0, len = cs.length; i < len; i++){
-                cs[i].render(true);
-            }
-        }
-    },
-
-    // private
-    render : function(bulkRender){
-        this.ui.render(bulkRender);
-        if(!this.rendered){
-            this.rendered = true;
-            if(this.expanded){
-                this.expanded = false;
-                this.expand(false, false);
-            }
-        }
-    },
-
-    // private
-    renderIndent : function(deep, refresh){
-        if(refresh){
-            this.ui.childIndent = null;
-        }
-        this.ui.renderIndent();
-        if(deep === true && this.childrenRendered){
-            var cs = this.childNodes;
-            for(var i = 0, len = cs.length; i < len; i++){
-                cs[i].renderIndent(true, refresh);
-            }
-        }
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TreeNodeUI.jss.html b/www/extras/extjs/docs/output/TreeNodeUI.jss.html deleted file mode 100644 index 1a6dc1589..000000000 --- a/www/extras/extjs/docs/output/TreeNodeUI.jss.html +++ /dev/null @@ -1,464 +0,0 @@ -TreeNodeUI.js

TreeNodeUI.js

/**
- * The TreeNode UI implementation is separate from the 
- * tree implementation. Unless you are customizing the tree UI,
- * you should never have to use this directly.
- */
-Ext.tree.TreeNodeUI = function(node){
-    this.node = node;
-    this.rendered = false;
-    this.animating = false;
-    this.emptyIcon = Ext.BLANK_IMAGE_URL;
-};
-
-Ext.tree.TreeNodeUI.prototype = {
-    removeChild : function(node){
-        if(this.rendered){
-            this.ctNode.removeChild(node.ui.getEl());
-        } 
-    },
-    
-    beforeLoad : function(){
-         this.addClass("x-tree-node-loading");
-    },
-    
-    afterLoad : function(){
-         this.removeClass("x-tree-node-loading");
-    },
-    
-    onTextChange : function(node, text, oldText){
-        if(this.rendered){
-            this.textNode.innerHTML = text;
-        }
-    },
-    
-    onDisableChange : function(node, state){
-        this.disabled = state;
-        if(state){
-            this.addClass("x-tree-node-disabled");
-        }else{
-            this.removeClass("x-tree-node-disabled");
-        } 
-    },
-    
-    onSelectedChange : function(state){
-        if(state){
-            this.focus();
-            this.addClass("x-tree-selected");
-        }else{
-            //this.blur();
-            this.removeClass("x-tree-selected");
-        }
-    },
-    
-    onMove : function(tree, node, oldParent, newParent, index, refNode){
-        this.childIndent = null;
-        if(this.rendered){
-            var targetNode = newParent.ui.getContainer();
-            if(!targetNode){//target not rendered
-                this.holder = document.createElement("div");
-                this.holder.appendChild(this.wrap);
-                return;
-            }
-            var insertBefore = refNode ? refNode.ui.getEl() : null;
-            if(insertBefore){
-                targetNode.insertBefore(this.wrap, insertBefore);
-            }else{
-                targetNode.appendChild(this.wrap);
-            }
-            this.node.renderIndent(true);
-        }
-    },
-
-    addClass : function(cls){
-        if(this.elNode){
-            Ext.fly(this.elNode).addClass(cls);
-        }
-    },
-
-    removeClass : function(cls){
-        if(this.elNode){
-            Ext.fly(this.elNode).removeClass(cls);  
-        }
-    },
-
-    remove : function(){
-        if(this.rendered){
-            this.holder = document.createElement("div");
-            this.holder.appendChild(this.wrap);
-        }  
-    },
-    
-    fireEvent : function(){
-        return this.node.fireEvent.apply(this.node, arguments);  
-    },
-    
-    initEvents : function(){
-        this.node.on("move", this.onMove, this);
-        var E = Ext.EventManager;
-        var a = this.anchor;
-        
-        var el = Ext.fly(a);
-        
-        if(Ext.isOpera){ // opera render bug ignores the CSS
-            el.setStyle("text-decoration", "none");
-        }
-        
-        el.on("click", this.onClick, this);
-        el.on("dblclick", this.onDblClick, this);
-        el.on("contextmenu", this.onContextMenu, this);
-        
-        var icon = Ext.fly(this.iconNode);
-        icon.on("click", this.onClick, this);
-        icon.on("dblclick", this.onDblClick, this);
-        icon.on("contextmenu", this.onContextMenu, this);
-        E.on(this.ecNode, "click", this.ecClick, this, true);
-        
-        if(this.node.disabled){
-            this.addClass("x-tree-node-disabled");
-        }
-        if(this.node.hidden){
-            this.addClass("x-tree-node-disabled");
-        }
-        var ot = this.node.getOwnerTree();
-        var dd = ot.enableDD || ot.enableDrag || ot.enableDrop;
-        if(dd && (!this.node.isRoot || ot.rootVisible)){
-            Ext.dd.Registry.register(this.elNode, {
-                node: this.node,
-                handles: [this.iconNode, this.textNode],
-                isHandle: false
-            });
-        }
-    },
-    
-    hide : function(){
-        if(this.rendered){
-            this.wrap.style.display = "none";
-        }  
-    },
-    
-    show : function(){
-        if(this.rendered){
-            this.wrap.style.display = "";
-        } 
-    },
-    
-    onContextMenu : function(e){
-        e.preventDefault();
-        this.focus();
-        this.fireEvent("contextmenu", this.node, e);
-    },
-    
-    onClick : function(e){
-        if(this.dropping){
-            return;
-        }
-        if(this.fireEvent("beforeclick", this.node, e) !== false){
-            if(!this.disabled && this.node.attributes.href){
-                this.fireEvent("click", this.node, e);
-                return;
-            }
-            e.preventDefault();
-            if(this.disabled){
-                return;
-            }
-
-            if(this.node.attributes.singleClickExpand && !this.animating && this.node.hasChildNodes()){
-                this.node.toggle();
-            }
-
-            this.fireEvent("click", this.node, e);
-        }else{
-            e.stopEvent();
-        }
-    },
-    
-    onDblClick : function(e){
-        e.preventDefault();
-        if(this.disabled){
-            return;
-        }
-        if(!this.animating && this.node.hasChildNodes()){
-            this.node.toggle();
-        }
-        this.fireEvent("dblclick", this.node, e);
-    },
-    
-    ecClick : function(e){
-        if(!this.animating && this.node.hasChildNodes()){
-            this.node.toggle();
-        }
-    },
-    
-    startDrop : function(){
-        this.dropping = true;
-    },
-    
-    // delayed drop so the click event doesn't get fired on a drop
-    endDrop : function(){ 
-       setTimeout(function(){
-           this.dropping = false;
-       }.createDelegate(this), 50); 
-    },
-    
-    expand : function(){
-        this.updateExpandIcon();
-        this.ctNode.style.display = "";
-    },
-
-    focus : function(){
-        if(!this.node.preventHScroll){
-            try{this.anchor.focus();
-            }catch(e){}
-        }else if(!Ext.isIE){
-            try{
-                var noscroll = this.node.getOwnerTree().el.dom;
-                var l = noscroll.scrollLeft;
-                this.anchor.focus();
-                noscroll.scrollLeft = l;
-            }catch(e){}
-        }
-    },
-    
-    blur : function(){
-        try{
-            this.anchor.blur();
-        }catch(e){} 
-    },
-    
-    animExpand : function(callback){
-        var ct = Ext.get(this.ctNode);
-        ct.stopFx();
-        if(!this.node.hasChildNodes()){
-            this.updateExpandIcon();
-            this.ctNode.style.display = "";
-            Ext.callback(callback);
-            return;
-        }
-        this.animating = true;
-        this.updateExpandIcon();
-        
-        ct.slideIn('t', {
-           callback : function(){
-               this.animating = false;
-               Ext.callback(callback);
-            },
-            scope: this,
-            duration: this.node.ownerTree.duration || .25
-        });
-    },
-    
-    highlight : function(){
-        var tree = this.node.getOwnerTree();
-        Ext.fly(this.wrap).highlight(
-            tree.hlColor || "C3DAF9",
-            {endColor: tree.hlBaseColor}
-        );
-    },
-    
-    collapse : function(){
-        this.updateExpandIcon();
-        this.ctNode.style.display = "none";
-    },
-    
-    animCollapse : function(callback){
-        var ct = Ext.get(this.ctNode);
-        ct.enableDisplayMode('block');
-        ct.stopFx();
-
-        this.animating = true;
-        this.updateExpandIcon();
-
-        ct.slideOut('t', {
-            callback : function(){
-               this.animating = false;
-               Ext.callback(callback);
-            },
-            scope: this,
-            duration: this.node.ownerTree.duration || .25
-        });
-    },
-    
-    getContainer : function(){
-        return this.ctNode;  
-    },
-    
-    getEl : function(){
-        return this.wrap;  
-    },
-    
-    appendDDGhost : function(ghostNode){
-        ghostNode.appendChild(this.elNode.cloneNode(true));
-    },
-    
-    getDDRepairXY : function(){
-        return Ext.lib.Dom.getXY(this.iconNode);
-    },
-    
-    onRender : function(){
-        this.render();    
-    },
-    
-    render : function(bulkRender){
-        var n = this.node;
-        var targetNode = n.parentNode ? 
-              n.parentNode.ui.getContainer() : n.ownerTree.container.dom;
-        if(!this.rendered){
-            this.rendered = true;
-            var a = n.attributes;
-        
-            // add some indent caching, this helps performance when rendering a large tree
-            this.indentMarkup = "";
-            if(n.parentNode){
-                this.indentMarkup = n.parentNode.ui.getChildIndent();
-            }
-            
-            var buf = ['<li class="x-tree-node"><div class="x-tree-node-el ', n.attributes.cls,'">',
-                '<span class="x-tree-node-indent">',this.indentMarkup,"</span>",
-                '<img src="', this.emptyIcon, '" class="x-tree-ec-icon">',
-                '<img src="', a.icon || this.emptyIcon, '" class="x-tree-node-icon',(a.icon ? " x-tree-node-inline-icon" : ""),(a.iconCls ? " "+a.iconCls : ""),'" unselectable="on">',
-                '<a hidefocus="on" href="',a.href ? a.href : "#",'" tabIndex="1" ',
-                 a.hrefTarget ? ' target="'+a.hrefTarget+'"' : "", '><span unselectable="on">',n.text,"</span></a></div>",
-                '<ul class="x-tree-node-ct" style="display:none;"></ul>',
-                "</li>"];
-                
-            if(bulkRender !== true && n.nextSibling && n.nextSibling.ui.getEl()){
-                this.wrap = Ext.DomHelper.insertHtml("beforeBegin",
-                                    n.nextSibling.ui.getEl(), buf.join(""));
-            }else{
-                this.wrap = Ext.DomHelper.insertHtml("beforeEnd", targetNode, buf.join(""));
-            }
-            this.elNode = this.wrap.childNodes[0];
-            this.ctNode = this.wrap.childNodes[1];
-            var cs = this.elNode.childNodes;
-            this.indentNode = cs[0];
-            this.ecNode = cs[1];
-            this.iconNode = cs[2];
-            this.anchor = cs[3];
-            this.textNode = cs[3].firstChild;
-            if(a.qtip){
-               if(this.textNode.setAttributeNS){
-                   this.textNode.setAttributeNS("ext", "qtip", a.qtip);
-                   if(a.qtipTitle){
-                       this.textNode.setAttributeNS("ext", "qtitle", a.qtipTitle);
-                   }
-               }else{
-                   this.textNode.setAttribute("ext:qtip", a.qtip);
-                   if(a.qtipTitle){
-                       this.textNode.setAttribute("ext:qtitle", a.qtipTitle);
-                   }
-               } 
-            }
-            this.initEvents();
-            if(!this.node.expanded){
-                this.updateExpandIcon();
-            }
-        }else{
-            if(bulkRender === true) {
-                targetNode.appendChild(this.wrap);
-            }
-        }
-    },
-    
-    getAnchor : function(){
-        return this.anchor;
-    },
-    
-    getTextEl : function(){
-        return this.textNode;
-    },
-    
-    getIconEl : function(){
-        return this.iconNode;
-    },
-    
-    updateExpandIcon : function(){
-        if(this.rendered){
-            var n = this.node, c1, c2;
-            //console.log(n.id)
-            var cls = n.isLast() ? "x-tree-elbow-end" : "x-tree-elbow";
-            var hasChild = n.hasChildNodes();
-            if(hasChild){
-                if(n.expanded){
-                    cls += "-minus";
-                    c1 = "x-tree-node-collapsed";
-                    c2 = "x-tree-node-expanded";
-                }else{
-                    cls += "-plus";
-                    c1 = "x-tree-node-expanded";
-                    c2 = "x-tree-node-collapsed";
-                }
-                if(this.wasLeaf){
-                    this.removeClass("x-tree-node-leaf");
-                    this.wasLeaf = false;
-                }
-                if(this.c1 != c1 || this.c2 != c2){
-                    Ext.fly(this.elNode).replaceClass(c1, c2);
-                    this.c1 = c1; this.c2 = c2;
-                }
-            }else{
-                if(!this.wasLeaf){
-                    Ext.fly(this.elNode).replaceClass("x-tree-node-expanded", "x-tree-node-leaf");
-                    this.wasLeaf = true;
-                }
-            }
-            var ecc = "x-tree-ec-icon "+cls;
-            if(this.ecc != ecc){
-                this.ecNode.className = ecc;
-                this.ecc = ecc;
-            }
-        }
-    },
-    
-    getChildIndent : function(){
-        if(!this.childIndent){
-            var buf = [];
-            var p = this.node;
-            while(p){
-                if(!p.isRoot || (p.isRoot && p.ownerTree.rootVisible)){
-                    if(!p.isLast()) {
-                        buf.unshift('<img src="'+this.emptyIcon+'" class="x-tree-elbow-line">');
-                    } else {
-                        buf.unshift('<img src="'+this.emptyIcon+'" class="x-tree-icon">');
-                    }
-                }
-                p = p.parentNode;
-            }
-            this.childIndent = buf.join("");
-        }
-        return this.childIndent;
-    },
-    
-    renderIndent : function(){
-        if(this.rendered){
-            var indent = "";
-            var p = this.node.parentNode;
-            if(p){
-                indent = p.ui.getChildIndent();
-            }
-            if(this.indentMarkup != indent){ // don't rerender if not required
-                this.indentNode.innerHTML = indent;
-                this.indentMarkup = indent;
-            }
-            this.updateExpandIcon();
-        }
-    }
-};
-
-Ext.tree.RootTreeNodeUI = function(){
-    Ext.tree.RootTreeNodeUI.superclass.constructor.apply(this, arguments);
-};
-Ext.extend(Ext.tree.RootTreeNodeUI, Ext.tree.TreeNodeUI, {
-    render : function(){
-        if(!this.rendered){
-            var targetNode = this.node.ownerTree.container.dom;
-            this.node.expanded = true;
-            targetNode.innerHTML = '<div class="x-tree-root-node"></div>';
-            this.wrap = this.ctNode = targetNode.firstChild;
-        }
-    },
-    collapse : function(){
-    },
-    expand : function(){
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TreePanel.jss.html b/www/extras/extjs/docs/output/TreePanel.jss.html deleted file mode 100644 index 4dd8088bb..000000000 --- a/www/extras/extjs/docs/output/TreePanel.jss.html +++ /dev/null @@ -1,383 +0,0 @@ -TreePanel.js

TreePanel.js

/**
- * @class Ext.tree.TreePanel
- * @extends Ext.data.Tree
-
- * @cfg {Boolean} rootVisible false to hide the root node (defaults to true)
- * @cfg {Boolean} lines false to disable tree lines (defaults to true)
- * @cfg {Boolean} enableDD true to enable drag and drop
- * @cfg {Boolean} enableDrag true to enable just drag
- * @cfg {Boolean} enableDrop true to enable just drop
- * @cfg {Object} dragConfig Custom config to pass to the {@link Ext.tree.TreeDragZone} instance
- * @cfg {Object} dropConfig Custom config to pass to the {@link Ext.tree.TreeDropZone} instance
- * @cfg {String} ddGroup The DD group this TreePanel belongs to
- * @cfg {String} ddAppendOnly True if the tree should only allow append drops (use for trees which are sorted)
- * @cfg {Boolean} ddScroll true to enable YUI body scrolling
- * @cfg {Boolean} containerScroll true to register this container with ScrollManager
- * @cfg {Boolean} hlDrop false to disable node highlight on drop (defaults to true)
- * @cfg {String} hlColor The color of the node highlight (defaults to C3DAF9)
- * @cfg {Boolean} animate true to enable animated expand/collapse
- * @cfg {Boolean} singleExpand true if only 1 node per branch may be expanded
- * @cfg {Boolean} selModel A tree selection model to use with this TreePanel (defaults to a {@link Ext.tree.DefaultSelectionModel})
- * @cfg {Boolean} loader A TreeLoader for use with this TreePanel
- * @constructor
- * @param {String/HTMLElement/Element} el The container element
- * @param {Object} config
- */
-Ext.tree.TreePanel = function(el, config){
-   Ext.tree.TreePanel.superclass.constructor.call(this);
-   this.el = Ext.get(el);
-    this.el.addClass('x-tree');
-   /**
-    * Read-only. The id of the container element becomes this TreePanel's id.
-    */
-   this.id = this.el.id;
-   Ext.apply(this, config);
-   this.addEvents({
-        /**
-        * @event beforeload
-        * Fires before a node is loaded, return false to cancel
-        * @param {Node} node The node being loaded
-        */
-        "beforeload" : true,
-        /**
-        * @event load
-        * Fires when a node is loaded
-        * @param {Node} node The node that was loaded
-        */
-        "load" : true,
-        /**
-        * @event textchange
-        * Fires when the text for a node is changed
-        * @param {Node} node The node
-        * @param {String} text The new text
-        * @param {String} oldText The old text
-        */
-        "textchange" : true,
-        /**
-        * @event beforeexpand
-        * Fires before a node is expanded, return false to cancel.
-        * @param {Node} node The node
-        * @param {Boolean} deep
-        * @param {Boolean} anim
-        */
-        "beforeexpand" : true,
-        /**
-        * @event beforecollapse
-        * Fires before a node is collapsed, return false to cancel.
-        * @param {Node} node The node
-        * @param {Boolean} deep
-        * @param {Boolean} anim
-        */
-        "beforecollapse" : true,
-        /**
-        * @event expand
-        * Fires when a node is expanded
-        * @param {Node} node The node
-        */
-        "expand" : true,
-        /**
-        * @event disabledchange
-        * Fires when the disabled status of a node changes
-        * @param {Node} node The node
-        * @param {Boolean} disabled
-        */
-        "disabledchange" : true,
-        /**
-        * @event collapse
-        * Fires when a node is collapsed
-        * @param {Node} node The node
-        */
-        "collapse" : true,
-        /**
-        * @event beforeclick
-        * Fires before click processing on a node. Return false to cancel the default action.
-        * @param {Node} node The node
-        * @param {Ext.EventObject} e The event object
-        */
-        "beforeclick":true,
-        /**
-        * @event click
-        * Fires when a node is clicked
-        * @param {Node} node The node
-        * @param {Ext.EventObject} e The event object
-        */
-        "click":true,
-        /**
-        * @event dblclick
-        * Fires when a node is double clicked
-        * @param {Node} node The node
-        * @param {Ext.EventObject} e The event object
-        */
-        "dblclick":true,
-        /**
-        * @event contextmenu
-        * Fires when a node is right clicked
-        * @param {Node} node The node
-        * @param {Ext.EventObject} e The event object
-        */
-        "contextmenu":true,
-        /**
-        * @event beforechildrenrendered
-        * Fires right before the child nodes for a node are rendered
-        * @param {Node} node The node
-        */
-        "beforechildrenrendered":true,
-       /**
-	     * @event startdrag
-	     * Fires when a node starts being dragged
-	     * @param {Ext.tree.TreePanel} this
-	     * @param {Ext.tree.TreeNode} node
-	     * @param {event} e The raw browser event
-	     */
-	    "startdrag" : true,
-	    /**
-	     * @event enddrag
-	     * Fires when a drag operation is complete
-	     * @param {Ext.tree.TreePanel} this
-	     * @param {Ext.tree.TreeNode} node
-	     * @param {event} e The raw browser event
-	     */
-	    "enddrag" : true,
-	    /**
-	     * @event dragdrop
-	     * Fires when a dragged node is dropped on a valid DD target
-	     * @param {Ext.tree.TreePanel} this
-	     * @param {Ext.tree.TreeNode} node
-	     * @param {DD} dd The dd it was dropped on
-	     * @param {event} e The raw browser event
-	     */
-	    "dragdrop" : true,
-	    /**
-	     * @event beforenodedrop
-	     * Fires when a DD object is dropped on a node in this tree for preprocessing. Return false to cancel the drop. The dropEvent
-	     * passed to handlers has the following properties:<br />
-	     * <ul style="padding:5px;padding-left:16px;">
-	     * <li>tree - The TreePanel</li>
-	     * <li>target - The node being targeted for the drop</li>
-	     * <li>data - The drag data from the drag source</li>
-	     * <li>point - The point of the drop - append, above or below</li>
-	     * <li>source - The drag source</li>
-	     * <li>rawEvent - Raw mouse event</li>
-	     * <li>dropNode - Drop node(s) provided by the source <b>OR</b> you can supply node(s)
-	     * to be inserted by setting them on this object.</li>
-	     * <li>cancel - Set this to true to cancel the drop.</li>
-	     * </ul>
-	     * @param {Object} dropEvent
-	     */
-	    "beforenodedrop" : true,
-	    /**
-	     * @event nodedrop
-	     * Fires after a DD object is dropped on a node in this tree. The dropEvent
-	     * passed to handlers has the following properties:<br />
-	     * <ul style="padding:5px;padding-left:16px;">
-	     * <li>tree - The TreePanel</li>
-	     * <li>target - The node being targeted for the drop</li>
-	     * <li>data - The drag data from the drag source</li>
-	     * <li>point - The point of the drop - append, above or below</li>
-	     * <li>source - The drag source</li>
-	     * <li>rawEvent - Raw mouse event</li>
-	     * <li>dropNode - Dropped node(s).</li>
-	     * </ul>
-	     * @param {Object} dropEvent
-	     */
-	    "nodedrop" : true,
-	     /**
-	     * @event nodedragover
-	     * Fires when a tree node is being targeted for a drag drop, return false to signal drop not allowed. The dragOverEvent
-	     * passed to handlers has the following properties:<br />
-	     * <ul style="padding:5px;padding-left:16px;">
-	     * <li>tree - The TreePanel</li>
-	     * <li>target - The node being targeted for the drop</li>
-	     * <li>data - The drag data from the drag source</li>
-	     * <li>point - The point of the drop - append, above or below</li>
-	     * <li>source - The drag source</li>
-	     * <li>rawEvent - Raw mouse event</li>
-	     * <li>dropNode - Drop node(s) provided by the source.</li>
-	     * <li>cancel - Set this to true to signal drop not allowed.</li>
-	     * </ul>
-	     * @param {Object} dragOverEvent
-	     */
-	    "nodedragover" : true
-   });
-   if(this.singleExpand){
-       this.on("beforeexpand", this.restrictExpand, this);
-   }
-};
-Ext.extend(Ext.tree.TreePanel, Ext.data.Tree, {
-    rootVisible : true,
-    animate: Ext.enableFx,
-    lines : true,
-    enableDD : false,
-    hlDrop : Ext.enableFx,
-
-    // private
-    restrictExpand : function(node){
-        var p = node.parentNode;
-        if(p){
-            if(p.expandedChild && p.expandedChild.parentNode == p){
-                p.expandedChild.collapse();
-            }
-            p.expandedChild = node;
-        }
-    },
-
-    // private override
-    setRootNode : function(node){
-        Ext.tree.TreePanel.superclass.setRootNode.call(this, node);
-        if(!this.rootVisible){
-            node.ui = new Ext.tree.RootTreeNodeUI(node);
-        }
-        return node;
-    },
-
-    /**
-     * Returns the container element for this TreePanel
-     */
-    getEl : function(){
-        return this.el;
-    },
-
-    /**
-     * Returns the default TreeLoader for this TreePanel
-     */
-    getLoader : function(){
-        return this.loader;
-    },
-
-    /**
-     * Expand all nodes
-     */
-    expandAll : function(){
-        this.root.expand(true);
-    },
-
-    /**
-     * Collapse all nodes
-     */
-    collapseAll : function(){
-        this.root.collapse(true);
-    },
-
-    /**
-     * Returns the selection model used by this TreePanel
-     */
-    getSelectionModel : function(){
-        if(!this.selModel){
-            this.selModel = new Ext.tree.DefaultSelectionModel();
-        }
-        return this.selModel;
-    },
-
-    /**
-     * Expands a specified path in this TreePanel. A path can be retrieved from a node with {@link Ext.data.Node#getPath}
-     * @param {String} path
-     * @param {String} attr (optional) The attribute used in the path (see {@link Ext.data.Node#getPath} for more info)
-     * @param {Function} callback (optional) The callback to call when the expand is complete. The callback will be called with
-     * (bSuccess, oLastNode) where bSuccess is if the expand was successful and oLastNode is the last node that was expanded.
-     */
-    expandPath : function(path, attr, callback){
-        attr = attr || "id";
-        var keys = path.split(this.pathSeparator);
-        var curNode = this.root;
-        if(curNode.attributes[attr] != keys[1]){ // invalid root
-            if(callback){
-                callback(false, null);
-            }
-            return;
-        }
-        var index = 1;
-        var f = function(){
-            if(++index == keys.length){
-                if(callback){
-                    callback(true, curNode);
-                }
-                return;
-            }
-            var c = curNode.findChild(attr, keys[index]);
-            if(!c){
-                if(callback){
-                    callback(false, curNode);
-                }
-                return;
-            }
-            curNode = c;
-            c.expand(false, false, f);
-        };
-        curNode.expand(false, false, f);
-    },
-
-    /**
-     * Selects the node in this tree at the specified path. A path can be retrieved from a node with {@link Ext.data.Node#getPath}
-     * @param {String} path
-     * @param {String} attr (optional) The attribute used in the path (see {@link Ext.data.Node#getPath} for more info)
-     * @param {Function} callback (optional) The callback to call when the selection is complete. The callback will be called with
-     * (bSuccess, oSelNode) where bSuccess is if the selection was successful and oSelNode is the selected node.
-     */
-    selectPath : function(path, attr, callback){
-        attr = attr || "id";
-        var keys = path.split(this.pathSeparator);
-        var v = keys.pop();
-        if(keys.length > 0){
-            var f = function(success, node){
-                if(success && node){
-                    var n = node.findChild(attr, v);
-                    if(n){
-                        n.select();
-                        if(callback){
-                            callback(true, n);
-                        }
-                    }
-                }else{
-                    if(callback){
-                        callback(false, n);
-                    }
-                }
-            };
-            this.expandPath(keys.join(this.pathSeparator), attr, f);
-        }else{
-            this.root.select();
-            if(callback){
-                callback(true, this.root);
-            }
-        }
-    },
-
-    /**
-     * Trigger rendering of this TreePanel
-     */
-    render : function(){
-        this.container = this.el.createChild({tag:"ul",
-               cls:"x-tree-root-ct " +
-               (this.lines ? "x-tree-lines" : "x-tree-no-lines")});
-
-        if(this.containerScroll){
-            Ext.dd.ScrollManager.register(this.el);
-        }
-        if((this.enableDD || this.enableDrop) && !this.dropZone){
-           /**
-            * The dropZone used by this tree if drop is enabled
-            * @type Ext.tree.TreeDropZone
-            */
-             this.dropZone = new Ext.tree.TreeDropZone(this, this.dropConfig || {
-               ddGroup: this.ddGroup || "TreeDD", appendOnly: this.ddAppendOnly === true
-           });
-        }
-        if((this.enableDD || this.enableDrag) && !this.dragZone){
-           /**
-            * The dragZone used by this tree if drag is enabled
-            * @type Ext.tree.TreeDragZone
-            */
-            this.dragZone = new Ext.tree.TreeDragZone(this, this.dragConfig || {
-               ddGroup: this.ddGroup || "TreeDD",
-               scroll: this.ddScroll
-           });
-        }
-        this.getSelectionModel().init(this);
-        this.root.render();
-        if(!this.rootVisible){
-            this.root.renderChildren();
-        }
-        return this;
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TreeSelectionModel.jss.html b/www/extras/extjs/docs/output/TreeSelectionModel.jss.html deleted file mode 100644 index 98c9328ba..000000000 --- a/www/extras/extjs/docs/output/TreeSelectionModel.jss.html +++ /dev/null @@ -1,309 +0,0 @@ -TreeSelectionModel.js

TreeSelectionModel.js

/**
- * @class Ext.tree.DefaultSelectionModel
- * @extends Ext.util.Observable
- * The default single selection for a TreePanel.
- */
-Ext.tree.DefaultSelectionModel = function(){
-   this.selNode = null;
-   
-   this.addEvents({
-       /**
-        * @event selectionchange
-        * Fires when the selected node changes
-        * @param {DefaultSelectionModel} this
-        * @param {TreeNode} node the new selection
-        */
-       "selectionchange" : true,
-
-       /**
-        * @event beforeselect
-        * Fires before the selected node changes, return false to cancel the change
-        * @param {DefaultSelectionModel} this
-        * @param {TreeNode} node the new selection
-        * @param {TreeNode} node the old selection
-        */
-       "beforeselect" : true
-   });
-};
-
-Ext.extend(Ext.tree.DefaultSelectionModel, Ext.util.Observable, {
-    init : function(tree){
-        this.tree = tree;
-        tree.el.on("keydown", this.onKeyDown, this);
-        tree.on("click", this.onNodeClick, this);
-    },
-    
-    onNodeClick : function(node, e){
-        this.select(node);
-    },
-    
-    /**
-     * Select a node.
-     * @param {TreeNode} node The node to select
-     * @return {TreeNode} The selected node
-     */
-    select : function(node){
-        var last = this.selNode;
-        if(last != node && this.fireEvent('beforeselect', this, node, last) !== false){
-            if(last){
-                last.ui.onSelectedChange(false);
-            }
-            this.selNode = node;
-            node.ui.onSelectedChange(true);
-            this.fireEvent("selectionchange", this, node, last);
-        }
-        return node;
-    },
-    
-    /**
-     * Deselect a node.
-     * @param {TreeNode} node The node to unselect
-     */
-    unselect : function(node){
-        if(this.selNode == node){
-            this.clearSelections();
-        }    
-    },
-    
-    /**
-     * Clear all selections
-     */
-    clearSelections : function(){
-        var n = this.selNode;
-        if(n){
-            n.ui.onSelectedChange(false);
-            this.selNode = null;
-            this.fireEvent("selectionchange", this, null);
-        }
-        return n;
-    },
-    
-    /**
-     * Get the selected node
-     * @return {TreeNode} The selected node
-     */
-    getSelectedNode : function(){
-        return this.selNode;    
-    },
-    
-    /**
-     * Returns true if the node is selected
-     * @param {TreeNode} node The node to check
-     * @return {Boolean}
-     */
-    isSelected : function(node){
-        return this.selNode == node;  
-    },
-
-    /**
-     * Selects the node above the selected node in the tree, intelligently walking the nodes
-     * @return TreeNode The new selection
-     */
-    selectPrevious : function(){
-        var s = this.selNode || this.lastSelNode;
-        if(!s){
-            return null;
-        }
-        var ps = s.previousSibling;
-        if(ps){
-            if(!ps.isExpanded() || ps.childNodes.length < 1){
-                return this.select(ps);
-            } else{
-                var lc = ps.lastChild;
-                while(lc && lc.isExpanded() && lc.childNodes.length > 0){
-                    lc = lc.lastChild;
-                }
-                return this.select(lc);
-            }
-        } else if(s.parentNode && (this.tree.rootVisible || !s.parentNode.isRoot)){
-            return this.select(s.parentNode);
-        }
-        return null;
-    },
-
-    /**
-     * Selects the node above the selected node in the tree, intelligently walking the nodes
-     * @return TreeNode The new selection
-     */
-    selectNext : function(){
-        var s = this.selNode || this.lastSelNode;
-        if(!s){
-            return null;
-        }
-        if(s.firstChild && s.isExpanded()){
-             return this.select(s.firstChild);
-         }else if(s.nextSibling){
-             return this.select(s.nextSibling);
-         }else if(s.parentNode){
-            var newS = null;
-            s.parentNode.bubble(function(){
-                if(this.nextSibling){
-                    newS = this.getOwnerTree().selModel.select(this.nextSibling);
-                    return false;
-                }
-            });
-            return newS;
-         }
-        return null;
-    },
-
-    onKeyDown : function(e){
-        var s = this.selNode || this.lastSelNode;
-        // undesirable, but required
-        var sm = this;
-        if(!s){
-            return;
-        }
-        var k = e.getKey();
-        switch(k){
-             case e.DOWN:
-                 e.stopEvent();
-                 this.selectNext();
-             break;
-             case e.UP:
-                 e.stopEvent();
-                 this.selectPrevious();
-             break;
-             case e.RIGHT:
-                 e.preventDefault();
-                 if(s.hasChildNodes()){
-                     if(!s.isExpanded()){
-                         s.expand();
-                     }else if(s.firstChild){
-                         this.select(s.firstChild, e);
-                     }
-                 }
-             break;
-             case e.LEFT:
-                 e.preventDefault();
-                 if(s.hasChildNodes() && s.isExpanded()){
-                     s.collapse();
-                 }else if(s.parentNode && (this.tree.rootVisible || s.parentNode != this.tree.getRootNode())){
-                     this.select(s.parentNode, e);
-                 }
-             break;
-        };
-    }
-});
-
-/**
- * @class Ext.tree.MultiSelectionModel
- * @extends Ext.util.Observable
- * Multi selection for a TreePanel.
- */
-Ext.tree.MultiSelectionModel = function(){
-   this.selNodes = [];
-   this.selMap = {};
-   this.addEvents({
-       /**
-        * @event selectionchange
-        * Fires when the selected nodes change
-        * @param {MultiSelectionModel} this
-        * @param {Array} nodes Array of the selected nodes
-        */
-       "selectionchange" : true
-   });
-};
-
-Ext.extend(Ext.tree.MultiSelectionModel, Ext.util.Observable, {
-    init : function(tree){
-        this.tree = tree;
-        tree.el.on("keydown", this.onKeyDown, this);
-        tree.on("click", this.onNodeClick, this);
-    },
-    
-    onNodeClick : function(node, e){
-        this.select(node, e, e.ctrlKey);
-    },
-    
-    /**
-     * Select a node.
-     * @param {TreeNode} node The node to select
-     * @param {EventObject} e (optional) An event associated with the selection
-     * @param {Boolean} keepExisting True to retain existing selections
-     * @return {TreeNode} The selected node
-     */
-    select : function(node, e, keepExisting){
-        if(keepExisting !== true){
-            this.clearSelections(true);
-        }
-        if(this.isSelected(node)){
-            this.lastSelNode = node;
-            return node;
-        }
-        this.selNodes.push(node);
-        this.selMap[node.id] = node;
-        this.lastSelNode = node;
-        node.ui.onSelectedChange(true);
-        this.fireEvent("selectionchange", this, this.selNodes);
-        return node;
-    },
-    
-    /**
-     * Deselect a node.
-     * @param {TreeNode} node The node to unselect
-     */
-    unselect : function(node){
-        if(this.selMap[node.id]){
-            node.ui.onSelectedChange(false);
-            var sn = this.selNodes;
-            var index = -1;
-            if(sn.indexOf){
-                index = sn.indexOf(node);
-            }else{
-                for(var i = 0, len = sn.length; i < len; i++){
-                    if(sn[i] == node){
-                        index = i;
-                        break;
-                    }
-                }
-            }
-            if(index != -1){
-                this.selNodes.splice(index, 1);
-            }
-            delete this.selMap[node.id];
-            this.fireEvent("selectionchange", this, this.selNodes);
-        }
-    },
-    
-    /**
-     * Clear all selections
-     */
-    clearSelections : function(suppressEvent){
-        var sn = this.selNodes;
-        if(sn.length > 0){
-            for(var i = 0, len = sn.length; i < len; i++){
-                sn[i].ui.onSelectedChange(false);
-            }
-            this.selNodes = [];
-            this.selMap = {};
-            if(suppressEvent !== true){
-                this.fireEvent("selectionchange", this, this.selNodes);
-            }
-        }
-    },
-    
-    /**
-     * Returns true if the node is selected
-     * @param {TreeNode} node The node to check
-     * @return {Boolean}
-     */
-    isSelected : function(node){
-        return this.selMap[node.id] ? true : false;  
-    },
-    
-    /**
-     * Returns an array of the selected nodes
-     * @return {Array}
-     */
-    getSelectedNodes : function(){
-        return this.selNodes;    
-    },
-
-    onKeyDown : Ext.tree.DefaultSelectionModel.prototype.onKeyDown,
-
-    selectNext : Ext.tree.DefaultSelectionModel.prototype.selectNext,
-
-    selectPrevious : Ext.tree.DefaultSelectionModel.prototype.selectPrevious
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TreeSorter.jss.html b/www/extras/extjs/docs/output/TreeSorter.jss.html deleted file mode 100644 index 21ffcdee1..000000000 --- a/www/extras/extjs/docs/output/TreeSorter.jss.html +++ /dev/null @@ -1,65 +0,0 @@ -TreeSorter.js

TreeSorter.js

/**
- * @class Ext.tree.TreeSorter
- * Provides sorting of nodes in a TreePanel
- * 
- * @cfg {Boolean} folderSort True to sort leaf nodes under non leaf nodes
- * @cfg {String} property The named attribute on the node to sort by (defaults to text)
- * @cfg {String} dir The direction to sort (asc or desc) (defaults to asc)
- * @cfg {String} leafAttr The attribute used to determine leaf nodes in folder sort (defaults to "leaf")
- * @cfg {Boolean} caseSensitive true for case sensitive sort (defaults to false)
- * @cfg {Function} sortType A custom "casting" function used to convert node values before sorting
- * @constructor
- * @param {TreePanel} tree
- * @param {Object} config
- */
-Ext.tree.TreeSorter = function(tree, config){
-    Ext.apply(this, config);
-    tree.on("beforechildrenrendered", this.doSort, this);
-    tree.on("append", this.updateSort, this);
-    tree.on("insert", this.updateSort, this);
-    
-    var dsc = this.dir && this.dir.toLowerCase() == "desc";
-    var p = this.property || "text";
-    var sortType = this.sortType;
-    var fs = this.folderSort;
-    var cs = this.caseSensitive === true;
-    var leafAttr = this.leafAttr || 'leaf';
-
-    this.sortFn = function(n1, n2){
-        if(fs){
-            if(n1.attributes[leafAttr] && !n2.attributes[leafAttr]){
-                return 1;
-            }
-            if(!n1.attributes[leafAttr] && n2.attributes[leafAttr]){
-                return -1;
-            }
-        }
-    	var v1 = sortType ? sortType(n1) : (cs ? n1[p] : n1[p].toUpperCase());
-    	var v2 = sortType ? sortType(n2) : (cs ? n2[p] : n2[p].toUpperCase());
-    	if(v1 < v2){
-			return dsc ? +1 : -1;
-		}else if(v1 > v2){
-			return dsc ? -1 : +1;
-        }else{
-	    	return 0;
-        }
-    };
-};
-
-Ext.tree.TreeSorter.prototype = {
-    doSort : function(node){
-        node.sort(this.sortFn);
-    },
-    
-    compareNodes : function(n1, n2){
-        
-        return (n1.text.toUpperCase() > n2.text.toUpperCase() ? 1 : -1);
-    },
-    
-    updateSort : function(tree, node){
-        if(node.childrenRendered){
-            this.doSort.defer(1, this, [node]);
-        }
-    }
-};

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/TriggerField.jss.html b/www/extras/extjs/docs/output/TriggerField.jss.html deleted file mode 100644 index f5fc0e6d9..000000000 --- a/www/extras/extjs/docs/output/TriggerField.jss.html +++ /dev/null @@ -1,194 +0,0 @@ -TriggerField.js

TriggerField.js

/**
- * @class Ext.form.TriggerField
- * @extends Ext.form.TextField
- * Provides a convenient wrapper for TextFields that adds a clickable trigger button (looks like a combobox by default).
- * The trigger has no default action, so you must assign a function to implement the trigger click handler by
- * overriding {@link #onTriggerClick}. You can create a TriggerField directly, as it renders exactly like a combobox
- * for which you can provide a custom implementation.  For example:
- * <pre><code>
-var trigger = new Ext.form.TriggerField();
-trigger.onTriggerClick = myTriggerFn;
-trigger.applyTo('my-field');
-</code></pre>
- *
- * However, in general you will most likely want to use TriggerField as the base class for a reusable component.
- * {@link Ext.form.DateField} and {@link Ext.form.ComboBox} are perfect examples of this.
- * @cfg {String} triggerClass An additional CSS class used to style the trigger button.  The trigger will always get the
- * class 'x-form-trigger' by default and triggerClass will be <b>appended</b> if specified.
- * @constructor
- * Create a new TriggerField.
- * @param {Object} config Configuration options (valid {@Ext.form.TextField} config options will also be applied
- * to the base TextField)
- */
-Ext.form.TriggerField = function(config){
-    Ext.form.TriggerField.superclass.constructor.call(this, config);
-    this.mimicing = false;
-    this.on('disable', this.disableWrapper, this);
-    this.on('enable', this.enableWrapper, this);
-};
-
-Ext.extend(Ext.form.TriggerField, Ext.form.TextField,  {
-    /**
-     * @cfg {String/Object} autoCreate A DomHelper element spec, or true for a default element spec (defaults to
-     * {tag: "input", type: "text", size: "16", autocomplete: "off"})
-     */
-
-    // private
-    defaultAutoCreate : {tag: "input", type: "text", size: "16", autocomplete: "off"},
-    /**
-     * @cfg {Boolean} hideTrigger True to hide the trigger element and display only the base text field (defaults to false)
-     */
-    hideTrigger:false,
-
-    /** @cfg {Boolean} grow @hide */
-// holder
-/*** @cfg {Number} growMin @hide */
-// holder
-/*** @cfg {Number} growMax @hide */
-// holder
-/***
-     * @hide 
-     * @method
-     */
-    autoSize: Ext.emptyFn,
-
-    monitorTab : true,
-
-    // private
-    customSize : true,
-
-    // private
-    setSize : function(w, h){
-        if(!this.wrap){
-            this.width = w;
-            this.height = h;
-            return;
-        }
-        if(w){
-            var wrapWidth = w;
-            w = w - this.trigger.getWidth();
-            Ext.form.TriggerField.superclass.setSize.call(this, w, h);
-            this.wrap.setWidth(wrapWidth);
-            if(this.onResize){
-                this.onResize(wrapWidth, h);
-            }
-        }else{
-            Ext.form.TriggerField.superclass.setSize.call(this, w, h);
-            this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth());
-        }
-    },
-
-    // private
-    alignErrorIcon : function(){
-        this.errorIcon.alignTo(this.wrap, 'tl-tr', [2, 0]);
-    },
-
-    // private
-    onRender : function(ct, position){
-        Ext.form.TriggerField.superclass.onRender.call(this, ct, position);
-        this.wrap = this.el.wrap({cls: "x-form-field-wrap"});
-        this.trigger = this.wrap.createChild({
-            tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger "+this.triggerClass});
-        this.trigger.on("click", this.onTriggerClick, this, {preventDefault:true});
-        this.trigger.addClassOnOver('x-form-trigger-over');
-        this.trigger.addClassOnClick('x-form-trigger-click');
-        if(this.hideTrigger){
-            this.trigger.setDisplayed(false);
-        }
-        this.setSize(this.width||'', this.height||'');
-    },
-
-    onDestroy : function(){
-        if(this.trigger){
-            this.trigger.removeAllListeners();
-            this.trigger.remove();
-        }
-        if(this.wrap){
-            this.wrap.remove();
-        }
-        Ext.form.TriggerField.superclass.onDestroy.call(this);
-    },
-
-    // private
-    onFocus : function(){
-        Ext.form.TriggerField.superclass.onFocus.call(this);
-        if(!this.mimicing){
-            this.mimicing = true;
-            Ext.get(Ext.isIE ? document.body : document).on("mousedown", this.mimicBlur, this);
-            if(this.monitorTab){
-                this.el.on("keydown", this.checkTab, this);
-            }
-        }
-    },
-
-    // private
-    checkTab : function(e){
-        if(e.getKey() == e.TAB){
-            this.triggerBlur();
-        }
-    },
-
-    // private
-    onBlur : function(){
-        // do nothing
-    },
-
-    // private
-    mimicBlur : function(e, t){
-        if(!this.wrap.contains(t) && this.validateBlur()){
-            this.triggerBlur();
-        }
-    },
-
-    // private
-    triggerBlur : function(){
-        this.mimicing = false;
-        Ext.get(Ext.isIE ? document.body : document).un("mousedown", this.mimicBlur);
-        if(this.monitorTab){
-            this.el.un("keydown", this.checkTab, this);
-        }
-        Ext.form.TriggerField.superclass.onBlur.call(this);
-    },
-
-    // private
-    // This should be overriden by any subclass that needs to check whether or not the field can be blurred.
-    validateBlur : function(e, t){
-        return true;
-    },
-
-    // private
-    disableWrapper : function(){
-        if(this.wrap){
-            this.wrap.addClass('x-item-disabled');
-        }
-    },
-
-    // private
-    enableWrapper : function(){
-        if(this.wrap){
-            this.wrap.removeClass('x-item-disabled');
-        }
-    },
-
-    // private
-    onShow : function(){
-        if(this.wrap){
-            this.wrap.dom.style.display = '';
-            this.wrap.dom.style.visibility = 'visible';
-        }
-    },
-
-    // private
-    onHide : function(){
-        this.wrap.dom.style.display = 'none';
-    },
-
-    /**
-     * The function that should handle the trigger's click event.  This method does nothing by default until overridden
-     * by a handler implementation.
-     * @method
-     * @param {EventObject} e
-     */
-    onTriggerClick : Ext.emptyFn
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/UpdateManager.jss.html b/www/extras/extjs/docs/output/UpdateManager.jss.html deleted file mode 100644 index 963bec0d7..000000000 --- a/www/extras/extjs/docs/output/UpdateManager.jss.html +++ /dev/null @@ -1,487 +0,0 @@ -UpdateManager.js

UpdateManager.js

/**
- * @class Ext.UpdateManager
- * @extends Ext.util.Observable
- * Provides AJAX-style update for Element object.<br><br>
- * Usage:<br>
- * <pre><code>
- * // Get it from a Ext.Element object
- * var el = Ext.get("foo");
- * var mgr = el.getUpdateManager();
- * mgr.update("http://myserver.com/index.php", "param1=1&amp;param2=2");
- * ...
- * mgr.formUpdate("myFormId", "http://myserver.com/index.php");
- * <br>
- * // or directly (returns the same UpdateManager instance)
- * var mgr = new Ext.UpdateManager("myElementId");
- * mgr.startAutoRefresh(60, "http://myserver.com/index.php");
- * mgr.on("update", myFcnNeedsToKnow);
- * <br>
-   // short handed call directly from the element object
-   Ext.get("foo").load({
-        url: "bar.php",
-        scripts:true, 
-        params: "for=bar",
-        text: "Loading Foo..."
-   });
- * </code></pre>
- * @constructor
- * Create new UpdateManager directly.
- * @param {String/HTMLElement/Ext.Element} el The element to update 
- * @param {Boolean} forceNew (optional) By default the constructor checks to see if the passed element already has an UpdateManager and if it does it returns the same instance. This will skip that check (useful for extending this class).
- */
-Ext.UpdateManager = function(el, forceNew){
-    el = Ext.get(el);
-    if(!forceNew && el.updateManager){
-        return el.updateManager;
-    }
-    /**
-     * The Element object
-     * @type Ext.Element
-     */
-    this.el = el;
-    /**
-     * Cached url to use for refreshes. Overwritten every time update() is called unless "discardUrl" param is set to true.
-     * @type String
-     */
-    this.defaultUrl = null;
-    
-    this.addEvents({
-        /**
-         * @event beforeupdate
-         * Fired before an update is made, return false from your handler and the update is cancelled. 
-         * @param {Ext.Element} el
-         * @param {String/Object/Function} url
-         * @param {String/Object} params
-         */
-        "beforeupdate": true,
-        /**
-         * @event update
-         * Fired after successful update is made. 
-         * @param {Ext.Element} el
-         * @param {Object} oResponseObject The response Object
-         */
-        "update": true,
-        /**
-         * @event failure
-         * Fired on update failure.
-         * @param {Ext.Element} el
-         * @param {Object} oResponseObject The response Object
-         */
-        "failure": true
-    });
-    var d = Ext.UpdateManager.defaults;
-    /**
-     * Blank page URL to use with SSL file uploads (Defaults to Ext.UpdateManager.defaults.sslBlankUrl or "about:blank").
-     * @type String
-     */
-    this.sslBlankUrl = d.sslBlankUrl;
-    /**
-     * Whether to append unique parameter on get request to disable caching (Defaults to Ext.UpdateManager.defaults.disableCaching or false). 
-     * @type Boolean
-     */
-    this.disableCaching = d.disableCaching;
-    /**
-     * Text for loading indicator (Defaults to Ext.UpdateManager.defaults.indicatorText or '&lt;div class="loading-indicator"&gt;Loading...&lt;/div&gt;'). 
-     * @type String
-     */
-    this.indicatorText = d.indicatorText;
-    /**
-     * Whether to show indicatorText when loading (Defaults to Ext.UpdateManager.defaults.showLoadIndicator or true). 
-     * @type String
-     */
-    this.showLoadIndicator = d.showLoadIndicator;
-    /**
-     * Timeout for requests or form posts in seconds (Defaults to Ext.UpdateManager.defaults.timeout or 30 seconds). 
-     * @type Number
-     */
-    this.timeout = d.timeout;
-    
-    /**
-     * True to process scripts in the output (Defaults to Ext.UpdateManager.defaults.loadScripts (false)). 
-     * @type Boolean
-     */
-    this.loadScripts = d.loadScripts;
-    
-    /**
-     * Transaction object of current executing transaction
-     */
-    this.transaction = null;
-    
-    /**
-     * @private
-     */
-    this.autoRefreshProcId = null;
-    /**
-     * Delegate for refresh() prebound to "this", use myUpdater.refreshDelegate.createCallback(arg1, arg2) to bind arguments
-     * @type Function
-     */
-    this.refreshDelegate = this.refresh.createDelegate(this);
-    /**
-     * Delegate for update() prebound to "this", use myUpdater.updateDelegate.createCallback(arg1, arg2) to bind arguments
-     * @type Function
-     */
-    this.updateDelegate = this.update.createDelegate(this);
-    /**
-     * Delegate for formUpdate() prebound to "this", use myUpdater.formUpdateDelegate.createCallback(arg1, arg2) to bind arguments
-     * @type Function
-     */
-    this.formUpdateDelegate = this.formUpdate.createDelegate(this);
-    /**
-     * @private
-     */
-    this.successDelegate = this.processSuccess.createDelegate(this);
-    /**
-     * @private
-     */
-    this.failureDelegate = this.processFailure.createDelegate(this);
-     
-     /**
-      * The renderer for this UpdateManager. Defaults to {@link Ext.UpdateManager.BasicRenderer}. 
-      */
-    this.renderer = new Ext.UpdateManager.BasicRenderer();
-
-    Ext.UpdateManager.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.UpdateManager, Ext.util.Observable, {
-    /**
-     * Get the Element this UpdateManager is bound to
-     * @return {Ext.Element} The element
-     */
-    getEl : function(){
-        return this.el;
-    },
-    /**
-     * Performs an async request, updating this element with the response. If params are specified it uses POST, otherwise it uses GET.
-     * @param {Object/String/Function} url The url for this request or a function to call to get the url or a config object containing any of the following options:
-<pre><code>
-um.update({<br/>
-    url: "your-url.php",<br/>
-    params: {param1: "foo", param2: "bar"}, // or a URL encoded string<br/>
-    callback: yourFunction,<br/>
-    scope: yourObject, //(optional scope)  <br/>
-    discardUrl: false, <br/>
-    nocache: false,<br/>
-    text: "Loading...",<br/>
-    timeout: 30,<br/>
-    scripts: false<br/>
-});   
-</code></pre>
-     * The only required property is url. The optional properties nocache, text and scripts 
-     * are shorthand for disableCaching, indicatorText and loadScripts and are used to set their associated property on this UpdateManager instance.
-     * @param {String/Object} params (optional) The parameters to pass as either a url encoded string "param1=1&amp;param2=2" or an object {param1: 1, param2: 2}
-     * @param {Function} callback (optional) Callback when transaction is complete - called with signature (oElement, bSuccess, oResponse)
-     * @param {Boolean} discardUrl (optional) By default when you execute an update the defaultUrl is changed to the last used url. If true, it will not store the url.
-     */
-    update : function(url, params, callback, discardUrl){
-        if(this.fireEvent("beforeupdate", this.el, url, params) !== false){
-            var method = this.method;
-            if(typeof url == "object"){ // must be config object
-                var cfg = url;
-                url = cfg.url;
-                params = params || cfg.params;
-                callback = callback || cfg.callback;
-                discardUrl = discardUrl || cfg.discardUrl;
-                if(callback && cfg.scope){
-                    callback = callback.createDelegate(cfg.scope);
-                }
-                if(typeof cfg.method != "undefined"){method = cfg.method;};
-                if(typeof cfg.nocache != "undefined"){this.disableCaching = cfg.nocache;};
-                if(typeof cfg.text != "undefined"){this.indicatorText = '<div class="loading-indicator">'+cfg.text+"</div>";};
-                if(typeof cfg.scripts != "undefined"){this.loadScripts = cfg.scripts;};
-                if(typeof cfg.timeout != "undefined"){this.timeout = cfg.timeout;};
-            }
-            this.showLoading();
-            if(!discardUrl){
-                this.defaultUrl = url;
-            }
-            if(typeof url == "function"){
-                url = url.call(this);
-            }
-            if(typeof params == "function"){
-                params = params();
-            }
-            if(params && typeof params != "string"){ // must be object
-                var buf = [];
-                for(var key in params){
-                    if(typeof params[key] != "function"){
-                        buf.push(encodeURIComponent(key), "=", encodeURIComponent(params[key]), "&");
-                    }
-                }
-                delete buf[buf.length-1];
-                params = buf.join("");
-            }
-            var cb = {
-                success: this.successDelegate,
-                failure: this.failureDelegate,
-                timeout: (this.timeout*1000),
-                argument: {"url": url, "form": null, "callback": callback, "params": params}
-            };
-            method = method || (params ? "POST" : "GET");
-            if(method == "GET"){
-                url = this.prepareUrl(url);
-            }
-            this.transaction = Ext.lib.Ajax.request(method, url, cb, params);
-        }
-    },
-    
-    /**
-     * Performs an async form post, updating this element with the response. If the form has the attribute enctype="multipart/form-data", it assumes it's a file upload.
-     * Uses this.sslBlankUrl for SSL file uploads to prevent IE security warning. See YUI docs for more info. 
-     * @param {String/HTMLElement} form The form Id or form element
-     * @param {String} url (optional) The url to pass the form to. If omitted the action attribute on the form will be used.
-     * @param {Boolean} reset (optional) Whether to try to reset the form after the update
-     * @param {Function} callback (optional) Callback when transaction is complete - called with signature (oElement, bSuccess, oResponse)
-     */
-    formUpdate : function(form, url, reset, callback){
-        if(this.fireEvent("beforeupdate", this.el, form, url) !== false){
-            formEl = Ext.getDom(form);
-            if(typeof url == "function"){
-                url = url.call(this);
-            }
-            if(typeof params == "function"){
-                params = params();
-            }
-            url = url || formEl.action;
-            var cb = {
-                success: this.successDelegate,
-                failure: this.failureDelegate,
-                timeout: (this.timeout*1000),
-                argument: {"url": url, "form": formEl, "callback": callback, "reset": reset}
-            };
-            var isUpload = false;
-            var enctype = formEl.getAttribute("enctype");
-            if(enctype && enctype.toLowerCase() == "multipart/form-data"){
-                isUpload = true;
-                cb.upload = this.successDelegate;
-            }
-            this.transaction = Ext.lib.Ajax.formRequest(formEl, url, cb, null, isUpload, this.sslBlankUrl);
-            this.showLoading.defer(1, this);
-        }
-    },
-    
-    /**
-     * Refresh the element with the last used url or defaultUrl. If there is no url, it returns immediately
-     * @param {Function} callback (optional) Callback when transaction is complete - called with signature (oElement, bSuccess)
-     */
-    refresh : function(callback){
-        if(this.defaultUrl == null){
-            return;
-        }
-        this.update(this.defaultUrl, null, callback, true);
-    },
-    
-    /**
-     * Set this element to auto refresh.
-     * @param {Number} interval How often to update (in seconds).
-     * @param {String/Function} url (optional) The url for this request or a function to call to get the url (Defaults to the last used url)
-     * @param {String/Object} params (optional) The parameters to pass as either a url encoded string "&param1=1&param2=2" or as an object {param1: 1, param2: 2}
-     * @param {Function} callback (optional) Callback when transaction is complete - called with signature (oElement, bSuccess)
-     * @param {Boolean} refreshNow (optional) Whether to execute the refresh now, or wait the interval
-     */
-    startAutoRefresh : function(interval, url, params, callback, refreshNow){
-        if(refreshNow){
-            this.update(url || this.defaultUrl, params, callback, true);
-        }
-        if(this.autoRefreshProcId){
-            clearInterval(this.autoRefreshProcId);
-        }
-        this.autoRefreshProcId = setInterval(this.update.createDelegate(this, [url || this.defaultUrl, params, callback, true]), interval*1000);
-    },
-    
-    /**
-     * Stop auto refresh on this element.
-     */
-     stopAutoRefresh : function(){
-        if(this.autoRefreshProcId){
-            clearInterval(this.autoRefreshProcId);
-            delete this.autoRefreshProcId;
-        }
-    },
-
-    isAutoRefreshing : function(){
-       return this.autoRefreshProcId ? true : false;  
-    },
-    /**
-     * Called to update the element to "Loading" state. Override to perform custom action.
-     */
-    showLoading : function(){
-        if(this.showLoadIndicator){
-            this.el.update(this.indicatorText);
-        }
-    },
-    
-    /**
-     * Adds unique parameter to query string if disableCaching = true
-     * @private
-     */
-    prepareUrl : function(url){
-        if(this.disableCaching){
-            var append = "_dc=" + (new Date().getTime());
-            if(url.indexOf("?") !== -1){
-                url += "&" + append;
-            }else{
-                url += "?" + append;
-            }
-        }
-        return url;
-    },
-    
-    /**
-     * @private
-     */
-    processSuccess : function(response){
-        this.transaction = null;
-        if(response.argument.form && response.argument.reset){
-            try{ // put in try/catch since some older FF releases had problems with this
-                response.argument.form.reset();
-            }catch(e){}
-        }
-        if(this.loadScripts){
-            this.renderer.render(this.el, response, this, 
-                this.updateComplete.createDelegate(this, [response]));
-        }else{
-            this.renderer.render(this.el, response, this);
-            this.updateComplete(response);
-        }
-    },
-    
-    updateComplete : function(response){
-        this.fireEvent("update", this.el, response);
-        if(typeof response.argument.callback == "function"){
-            response.argument.callback(this.el, true, response);
-        }
-    },
-    
-    /**
-     * @private
-     */
-    processFailure : function(response){
-        this.transaction = null;
-        this.fireEvent("failure", this.el, response);
-        if(typeof response.argument.callback == "function"){
-            response.argument.callback(this.el, false, response);
-        }
-    },
-    
-    /**
-     * Set the content renderer for this UpdateManager. See {@link Ext.UpdateManager.BasicRenderer#render} for more details.
-     * @param {Object} renderer The object implementing the render() method
-     */
-    setRenderer : function(renderer){
-        this.renderer = renderer;
-    },
-    
-    getRenderer : function(){
-       return this.renderer;  
-    },
-    
-    /**
-     * Set the defaultUrl used for updates
-     * @param {String/Function} defaultUrl The url or a function to call to get the url
-     */
-    setDefaultUrl : function(defaultUrl){
-        this.defaultUrl = defaultUrl;
-    },
-    
-    /**
-     * Aborts the executing transaction
-     */
-    abort : function(){
-        if(this.transaction){
-            Ext.lib.Ajax.abort(this.transaction);
-        }
-    },
-    
-    /**
-     * Returns true if an update is in progress
-     * @return {Boolean}
-     */
-    isUpdating : function(){
-        if(this.transaction){
-            return Ext.lib.Ajax.isCallInProgress(this.transaction);
-        }
-        return false;
-    }
-});
-
-/**
- * @class Ext.UpdateManager.defaults
- * The defaults collection enables customizing the default properties of UpdateManager
- */
-   Ext.UpdateManager.defaults = {
-       /**
-         * Timeout for requests or form posts in seconds (Defaults 30 seconds). 
-         * @type Number
-         */
-         timeout : 30,
-         
-         /**
-         * True to process scripts by default (Defaults to false). 
-         * @type Boolean
-         */
-        loadScripts : false,
-         
-        /**
-        * Blank page URL to use with SSL file uploads (Defaults to "javascript:false").
-        * @type String
-        */
-        sslBlankUrl : (Ext.SSL_SECURE_URL || "javascript:false"),
-        /**
-         * Whether to append unique parameter on get request to disable caching (Defaults to false). 
-         * @type Boolean
-         */
-        disableCaching : false,
-        /**
-         * Whether to show indicatorText when loading (Defaults to true). 
-         * @type Boolean
-         */
-        showLoadIndicator : true,
-        /**
-         * Text for loading indicator (Defaults to '&lt;div class="loading-indicator"&gt;Loading...&lt;/div&gt;'). 
-         * @type String
-         */
-        indicatorText : '<div class="loading-indicator">Loading...</div>'
-   };
-
-/**
- * Static convenience method. This method is deprecated in favor of el.load({url:'foo.php', ...}).
- *Usage:
- * <pre><code>Ext.UpdateManager.updateElement("my-div", "stuff.php");</code></pre>
- * @param {String/HTMLElement/Ext.Element} el The element to update
- * @param {String} url The url
- * @param {String/Object} params (optional) Url encoded param string or an object of name/value pairs
- * @param {Object} options (optional) A config object with any of the UpdateManager properties you want to set - for example: {disableCaching:true, indicatorText: "Loading data..."}
- * @static
- * @deprecated
- * @member Ext.UpdateManager
- */
-Ext.UpdateManager.updateElement = function(el, url, params, options){
-    var um = Ext.get(el, true).getUpdateManager();
-    Ext.apply(um, options);
-    um.update(url, params, options ? options.callback : null);
-};
-// alias for backwards compat
-Ext.UpdateManager.update = Ext.UpdateManager.updateElement;
-/**
- * @class Ext.UpdateManager.BasicRenderer
- * Default Content renderer. Updates the elements innerHTML with the responseText.
- */ 
-Ext.UpdateManager.BasicRenderer = function(){};
-
-Ext.UpdateManager.BasicRenderer.prototype = {
-    /**
-     * This is called when the transaction is completed and it's time to update the element - The BasicRenderer 
-     * updates the elements innerHTML with the responseText - To perform a custom render (i.e. XML or JSON processing), 
-     * create an object with a "render(el, response)" method and pass it to setRenderer on the UpdateManager.
-     * @param {Ext.Element} el The element being rendered
-     * @param {Object} response The YUI Connect response object
-     * @param {UpdateManager} updateManager The calling update manager
-     * @param {Function} callback A callback that will need to be called if loadScripts is true on the UpdateManager
-     */
-     render : function(el, response, updateManager, callback){
-        el.update(response.responseText, updateManager.loadScripts, callback);
-    }
-};
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/VTypes.jss.html b/www/extras/extjs/docs/output/VTypes.jss.html deleted file mode 100644 index 16b2e3392..000000000 --- a/www/extras/extjs/docs/output/VTypes.jss.html +++ /dev/null @@ -1,83 +0,0 @@ -VTypes.js

VTypes.js

/**
- * @class Ext.form.VTypes
- * Overrideable validation definitions. The validations provided are basic and intended to be easily customizable and extended.
- * @singleton
- */
-Ext.form.VTypes = function(){
-    // closure these in so they are only created once.
-    var alpha = /^[a-zA-Z_]+$/;
-    var alphanum = /^[a-zA-Z0-9_]+$/;
-    var email = /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/;
-    var url = /(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;
-
-    // All these messages and functions are configurable
-    return {
-        /**
-         * The function used to validate email addresses
-         * @param {String} value The email address
-         */
-        'email' : function(v){
-            return email.test(v);
-        },
-        /**
-         * The error text to display when the email validation function returns false
-         * @type String
-         */
-        'emailText' : 'This field should be an e-mail address in the format "user@domain.com"',
-        /**
-         * The keystroke filter mask to be applied on email input
-         * @type RegExp
-         */
-        'emailMask' : /[a-z0-9_\.\-@]/i,
-
-        /**
-         * The function used to validate urls
-         * @param {String} value The url
-         */
-        'url' : function(v){
-            return url.test(v);
-        },
-        /**
-         * The error text to display when the url validation function returns false
-         * @type String
-         */
-        'urlText' : 'This field should be a URL in the format "http:/'+'/www.domain.com"',
-        
-        /**
-         * The function used to validate alpha values
-         * @param {String} value The value
-         */
-        'alpha' : function(v){
-            return alpha.test(v);
-        },
-        /**
-         * The error text to display when the alpha validation function returns false
-         * @type String
-         */
-        'alphaText' : 'This field should only contain letters and _',
-        /**
-         * The keystroke filter mask to be applied on alpha input
-         * @type RegExp
-         */
-        'alphaMask' : /[a-z_]/i,
-
-        /**
-         * The function used to validate alphanumeric values
-         * @param {String} value The value
-         */
-        'alphanum' : function(v){
-            return alphanum.test(v);
-        },
-        /**
-         * The error text to display when the alphanumeric validation function returns false
-         * @type String
-         */
-        'alphanumText' : 'This field should only contain letters, numbers and _',
-        /**
-         * The keystroke filter mask to be applied on alphanumeric input
-         * @type RegExp
-         */
-        'alphanumMask' : /[a-z0-9_]/i
-    };
-}();

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/View.jss.html b/www/extras/extjs/docs/output/View.jss.html deleted file mode 100644 index a250acaf0..000000000 --- a/www/extras/extjs/docs/output/View.jss.html +++ /dev/null @@ -1,453 +0,0 @@ -View.js

View.js

/**
- * @class Ext.View
- * @extends Ext.util.Observable
- * Create a "View" for an element based on a data model or UpdateManager and the supplied DomHelper template. 
- * This class also supports single and multi selection modes. <br>
- * Create a data model bound view:
- <pre><code>
- var store = new Ext.data.Store(...);
-
- var view = new Ext.View("my-element",
- '&lt;div id="{0}"&gt;{2} - {1}&lt;/div&gt;', // auto create template
- {
- singleSelect: true,
- selectedClass: "ydataview-selected",
- store: store
- });
-
- // listen for node click?
- view.on("click", function(vw, index, node, e){
- alert('Node "' + node.id + '" at index: ' + index + " was clicked.");
- });
-
- // load XML data
- dataModel.load("foobar.xml");
- </code></pre>
- For an example of creating a JSON/UpdateManager view, see {@link Ext.JsonView}.
- * <br><br>
- * <b>Note: The root of your template must be a single node. Table/row implementations may work but are not supported due to
- * IE"s limited insertion support with tables and Opera"s faulty event bubbling.</b>
- * @constructor
- * Create a new View
- * @param {String/HTMLElement/Element} container The container element where the view is to be rendered.
- * @param {String/DomHelper.Template} tpl The rendering template or a string to create a template with
- * @param {Object} config The config object
- */
-Ext.View = function(container, tpl, config){
-    this.el = Ext.get(container, true);
-    if(typeof tpl == "string"){
-        tpl = new Ext.Template(tpl);
-    }
-    tpl.compile();
-    /**
-     * The template used by this View
-     * @type {Ext.DomHelper.Template}
-     */
-    this.tpl = tpl;
-
-    Ext.apply(this, config);
-
-    /** @private */
-    this.addEvents({
-    /**
-     * @event beforeclick
-     * Fires before a click is processed. Returns false to cancel the default action.
-     * @param {Ext.View} this
-     * @param {Number} index The index of the target node
-     * @param {HTMLElement} node The target node
-     * @param {Ext.EventObject} e The raw event object
-     */
-        "beforeclick" : true,
-    /**
-     * @event click
-     * Fires when a template node is clicked.
-     * @param {Ext.View} this
-     * @param {Number} index The index of the target node
-     * @param {HTMLElement} node The target node
-     * @param {Ext.EventObject} e The raw event object
-     */
-        "click" : true,
-    /**
-     * @event dblclick
-     * Fires when a template node is double clicked.
-     * @param {Ext.View} this
-     * @param {Number} index The index of the target node
-     * @param {HTMLElement} node The target node
-     * @param {Ext.EventObject} e The raw event object
-     */
-        "dblclick" : true,
-    /**
-     * @event contextmenu
-     * Fires when a template node is right clicked.
-     * @param {Ext.View} this
-     * @param {Number} index The index of the target node
-     * @param {HTMLElement} node The target node
-     * @param {Ext.EventObject} e The raw event object
-     */
-        "contextmenu" : true,
-    /**
-     * @event selectionchange
-     * Fires when the selected nodes change.
-     * @param {Ext.View} this
-     * @param {Array} selections Array of the selected nodes
-     */
-        "selectionchange" : true,
-
-    /**
-     * @event beforeselect
-     * Fires before a selection is made. If any handlers return false, the selection is cancelled.
-     * @param {Ext.View} this
-     * @param {HTMLElement} node The node to be selected
-     * @param {Array} selections Array of currently selected nodes
-     */
-        "beforeselect" : true
-    });
-
-    this.el.on({
-        "click": this.onClick,
-        "dblclick": this.onDblClick,
-        "contextmenu": this.onContextMenu,
-        scope:this
-    });
-
-    this.selections = [];
-    this.nodes = [];
-    this.cmp = new Ext.CompositeElementLite([]);
-    if(this.store){
-        this.setStore(this.store, true);
-    }
-    Ext.View.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.View, Ext.util.Observable, {
-    /**
-     * The css class to add to selected nodes
-     * @type {Ext.DomHelper.Template}
-     */
-    selectedClass : "x-view-selected",
-    
-    emptyText : "",
-    /**
-     * Returns the element this view is bound to.
-     * @return {Ext.Element}
-     */
-    getEl : function(){
-        return this.el;
-    },
-
-    /**
-     * Refreshes the view.
-     */
-    refresh : function(){
-        var t = this.tpl;
-        this.clearSelections();
-        this.el.update("");
-        var html = [];
-        var records = this.store.getRange();
-        if(records.length < 1){
-            this.el.update(this.emptyText);
-            return;
-        }
-        for(var i = 0, len = records.length; i < len; i++){
-            var data = this.prepareData(records[i].data, i, records[i]);
-            html[html.length] = t.apply(data);
-        }
-        this.el.update(html.join(""));
-        this.nodes = this.el.dom.childNodes;
-        this.updateIndexes(0);
-    },
-
-    /**
-     * Function to override to reformat the data that is sent to
-     * the template for each node.
-     * @param {Array/Object} data The raw data (array of colData for a data model bound view or
-     * a JSON object for an UpdateManager bound view).
-     */
-    prepareData : function(data){
-        return data;
-    },
-
-    onUpdate : function(ds, record){
-        this.clearSelections();
-        var index = this.store.indexOf(record);
-        var n = this.nodes[index];
-        this.tpl.insertBefore(n, this.prepareData(record.data));
-        n.parentNode.removeChild(n);
-        this.updateIndexes(index, index);
-    },
-
-    onAdd : function(ds, records, index){
-        this.clearSelections();
-        if(this.nodes.length == 0){
-            this.refresh();
-            return;
-        }
-        var n = this.nodes[index];
-        for(var i = 0, len = records.length; i < len; i++){
-            var d = this.prepareData(records[i].data);
-            if(n){
-                this.tpl.insertBefore(n, d);
-            }else{
-                this.tpl.append(this.el, d);
-            }
-        }
-        this.updateIndexes(index);
-    },
-
-    onRemove : function(ds, record, index){
-        this.clearSelections();
-        this.el.dom.removeChild(this.nodes[index]);
-        this.updateIndexes(index);
-    },
-
-    /**
-     * Refresh an individual node.
-     * @param {Number} index
-     */
-    refreshNode : function(index){
-        this.onUpdate(this.store, this.store.getAt(index));
-    },
-
-    updateIndexes : function(startIndex, endIndex){
-        var ns = this.nodes;
-        startIndex = startIndex || 0;
-        endIndex = endIndex || ns.length - 1;
-        for(var i = startIndex; i <= endIndex; i++){
-            ns[i].nodeIndex = i;
-        }
-    },
-
-    /**
-     * Changes the data store this view uses and refresh the view.
-     * @param {Store} store
-     */
-    setStore : function(store, initial){
-        if(!initial && this.store){
-            this.store.un("datachanged", this.refresh);
-            this.store.un("add", this.onAdd);
-            this.store.un("remove", this.onRemove);
-            this.store.un("update", this.onUpdate);
-            this.store.un("clear", this.refresh);
-        }
-        if(store){
-            store.on("datachanged", this.refresh, this);
-            store.on("add", this.onAdd, this);
-            store.on("remove", this.onRemove, this);
-            store.on("update", this.onUpdate, this);
-            store.on("clear", this.refresh, this);
-        }
-        this.store = store;
-        this.refresh();
-    },
-
-    /**
-     * Returns the template node the passed child belongs to or null if it doesn't belong to one.
-     * @param {HTMLElement} node
-     * @return {HTMLElement} The template node
-     */
-    findItemFromChild : function(node){
-        var el = this.el.dom;
-        if(!node || node.parentNode == el){
-		    return node;
-	    }
-	    var p = node.parentNode;
-	    while(p && p != el){
-            if(p.parentNode == el){
-            	return p;
-            }
-            p = p.parentNode;
-        }
-	    return null;
-    },
-
-    /** @ignore */
-    onClick : function(e){
-        var item = this.findItemFromChild(e.getTarget());
-        if(item){
-            var index = this.indexOf(item);
-            if(this.onItemClick(item, index, e) !== false){
-                this.fireEvent("click", this, index, item, e);
-            }
-        }else{
-            this.clearSelections();
-        }
-    },
-
-    /** @ignore */
-    onContextMenu : function(e){
-        var item = this.findItemFromChild(e.getTarget());
-        if(item){
-            this.fireEvent("contextmenu", this, this.indexOf(item), item, e);
-        }
-    },
-
-    /** @ignore */
-    onDblClick : function(e){
-        var item = this.findItemFromChild(e.getTarget());
-        if(item){
-            this.fireEvent("dblclick", this, this.indexOf(item), item, e);
-        }
-    },
-
-    onItemClick : function(item, index, e){
-        if(this.fireEvent("beforeclick", this, index, item, e) === false){
-            return false;
-        }
-        if(this.multiSelect || this.singleSelect){
-            if(this.multiSelect && e.shiftKey && this.lastSelection){
-                this.select(this.getNodes(this.indexOf(this.lastSelection), index), false);
-            }else{
-                this.select(item, this.multiSelect && e.ctrlKey);
-                this.lastSelection = item;
-            }
-            e.preventDefault();
-        }
-        return true;
-    },
-
-    /**
-     * Get the number of selected nodes.
-     * @return {Number}
-     */
-    getSelectionCount : function(){
-        return this.selections.length;
-    },
-
-    /**
-     * Get the currently selected nodes.
-     * @return {Array} An array of HTMLElements
-     */
-    getSelectedNodes : function(){
-        return this.selections;
-    },
-
-    /**
-     * Get the indexes of the selected nodes.
-     * @return {Array}
-     */
-    getSelectedIndexes : function(){
-        var indexes = [], s = this.selections;
-        for(var i = 0, len = s.length; i < len; i++){
-            indexes.push(s[i].nodeIndex);
-        }
-        return indexes;
-    },
-
-    /**
-     * Clear all selections
-     * @param {Boolean} suppressEvent (optional) true to skip firing of the selectionchange event
-     */
-    clearSelections : function(suppressEvent){
-        if(this.nodes && (this.multiSelect || this.singleSelect) && this.selections.length > 0){
-            this.cmp.elements = this.selections;
-            this.cmp.removeClass(this.selectedClass);
-            this.selections = [];
-            if(!suppressEvent){
-                this.fireEvent("selectionchange", this, this.selections);
-            }
-        }
-    },
-
-    /**
-     * Returns true if the passed node is selected
-     * @param {HTMLElement/Number} node The node or node index
-     * @return {Boolean}
-     */
-    isSelected : function(node){
-        var s = this.selections;
-        if(s.length < 1){
-            return false;
-        }
-        node = this.getNode(node);
-        return s.indexOf(node) !== -1;
-    },
-
-    /**
-     * Selects nodes.
-     * @param {Array/HTMLElement/String/Number} nodeInfo An HTMLElement template node, index of a template node, id of a template node or an array of any of those to select
-     * @param {Boolean} keepExisting (optional) true to keep existing selections
-     * @param {Boolean} suppressEvent (optional) true to skip firing of the selectionchange vent
-     */
-    select : function(nodeInfo, keepExisting, suppressEvent){
-        if(nodeInfo instanceof Array){
-            if(!keepExisting){
-                this.clearSelections(true);
-            }
-            for(var i = 0, len = nodeInfo.length; i < len; i++){
-                this.select(nodeInfo[i], true, true);
-            }
-        } else{
-            var node = this.getNode(nodeInfo);
-            if(node && !this.isSelected(node)){
-                if(!keepExisting){
-                    this.clearSelections(true);
-                }
-                if(this.fireEvent("beforeselect", this, node, this.selections) !== false){
-                    Ext.fly(node).addClass(this.selectedClass);
-                    this.selections.push(node);
-                    if(!suppressEvent){
-                        this.fireEvent("selectionchange", this, this.selections);
-                    }
-                }
-            }
-        }
-    },
-
-    /**
-     * Gets a template node.
-     * @param {HTMLElement/String/Number} nodeInfo An HTMLElement template node, index of a template node or the id of a template node
-     * @return {HTMLElement} The node or null if it wasn't found
-     */
-    getNode : function(nodeInfo){
-        if(typeof nodeInfo == "string"){
-            return document.getElementById(nodeInfo);
-        }else if(typeof nodeInfo == "number"){
-            return this.nodes[nodeInfo];
-        }
-        return nodeInfo;
-    },
-
-    /**
-     * Gets a range template nodes.
-     * @param {Number} startIndex
-     * @param {Number} endIndex
-     * @return {Array} An array of nodes
-     */
-    getNodes : function(start, end){
-        var ns = this.nodes;
-        start = start || 0;
-        end = typeof end == "undefined" ? ns.length - 1 : end;
-        var nodes = [];
-        if(start <= end){
-            for(var i = start; i <= end; i++){
-                nodes.push(ns[i]);
-            }
-        } else{
-            for(var i = start; i >= end; i--){
-                nodes.push(ns[i]);
-            }
-        }
-        return nodes;
-    },
-
-    /**
-     * Finds the index of the passed node
-     * @param {HTMLElement/String/Number} nodeInfo An HTMLElement template node, index of a template node or the id of a template node
-     * @return {Number} The index of the node or -1
-     */
-    indexOf : function(node){
-        node = this.getNode(node);
-        if(typeof node.nodeIndex == "number"){
-            return node.nodeIndex;
-        }
-        var ns = this.nodes;
-        for(var i = 0, len = ns.length; i < len; i++){
-            if(ns[i] == node){
-                return i;
-            }
-        }
-        return -1;
-    }
-});
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/Window.jss.html b/www/extras/extjs/docs/output/Window.jss.html deleted file mode 100644 index a7bd9c1e4..000000000 --- a/www/extras/extjs/docs/output/Window.jss.html +++ /dev/null @@ -1,509 +0,0 @@ -Window.js

Window.js


-Ext.Window = function(config){
-    Ext.Window.superclass.constructor.call(this, config);
-};
-
-Ext.extend(Ext.Window, Ext.Panel, {
-    baseCls : 'x-window',
-    frame:true,
-    floating:true,
-    collapsible:true,
-    resizable:true,
-    draggable:true,
-    closable : true,
-    constrain:true,
-
-    minimizable : true,
-    maximizable : true,
-
-    minHeight: 80,
-    minWidth: 200,
-
-    initHidden : true,
-    monitorResize : true,
-
-    //tools:[{id:'minimize'},{id:'maximize'},{id:'restore', hidden:true},{id:'close'}],
-
-    initComponent : function(){
-        Ext.Window.superclass.initComponent.call(this);
-        this.addEvents({
-            resize: true,
-            maximize : true,
-            minimize: true,
-            restore : true
-        });
-    },
-
-    onRender : function(ct, position){
-        Ext.Window.superclass.onRender.call(this, ct, position);
-
-        // this element allows the Window to be focused for keyboard events
-        this.focusEl = this.el.createChild({
-                    tag: "a", href:"#", cls:"x-dlg-focus",
-                    tabIndex:"-1", html: "&#160;"});
-        this.focusEl.swallowEvent('click', true);
-
-        this.proxy = this.el.createProxy("x-window-proxy");
-        this.proxy.enableDisplayMode('block');
-
-        if(this.modal){
-            this.mask = this.container.createChild({cls:"ext-el-mask"});
-            this.mask.enableDisplayMode("block");
-        }
-    },
-
-    initEvents : function(){
-        if(this.animateTarget){
-            this.setAnimateTarget(this.animateTarget);
-        }
-
-        if(this.resizable){
-            this.resizer = new Ext.Resizable(this.el, {
-                minWidth: this.minWidth,
-                minHeight:this.minHeight,
-                handles: this.resizeHandles || "all",
-                pinned: true,
-                resizeElement : this.resizerAction
-            });
-            this.resizer.window = this;
-            this.resizer.on("beforeresize", this.beforeResize, this);
-        }
-
-        if(this.draggable){
-            this.header.addClass("x-window-draggable");
-            this.dd = new Ext.Window.DD(this);
-        }
-        this.initTools();
-
-        this.el.on("mousedown", this.toFront, this);
-        this.manager = this.manager || Ext.WindowMgr;
-        this.manager.register(this);
-        this.hidden = true;
-        if(this.maximized){
-            this.maximized = false;
-            this.maximize();
-        }
-    },
-
-    initTools : function(){
-        if(this.minimizable){
-            this.addTool({
-                id: 'minimize',
-                on: {
-                    'click' : this.onMinimize.createDelegate(this, [])
-                }
-            });
-        }
-        if(this.maximizable){
-            this.addTool({
-                id: 'maximize',
-                on: {
-                    'click' : this.maximize.createDelegate(this, [])
-                }
-            });
-            this.addTool({
-                id: 'restore',
-                on: {
-                    'click' : this.restore.createDelegate(this, [])
-                },
-                hidden:true
-            });
-            this.header.on('dblclick', this.toggleMaximize, this);
-        }
-        if(this.closable){
-            this.addTool({
-                id: 'close',
-                on: {
-                    'click' : this.onClose.createDelegate(this, [])
-                }
-            });
-        }
-    },
-
-    resizerAction : function(){
-        var box = this.proxy.getBox();
-        this.proxy.hide();
-        this.window.handleResize(box);
-        return box;
-    },
-
-    beforeResize : function(){
-        this.resizer.minHeight = Math.max(this.minHeight, this.getFrameHeight() + 40); // 40 is a magic minimum content size?
-        this.resizer.minWidth = Math.max(this.minWidth, this.getFrameWidth() + 40);
-    },
-
-    // private
-    handleResize : function(box){
-        this.updateBox(box);
-        this.focus();
-        this.fireEvent("resize", this, box.width, box.height);
-    },
-
-    /**
-     * Focuses the Window.  If a defaultButton is set, it will receive focus, otherwise the
-     * Window itself will receive focus.
-     */
-    focus : function(){
-        this.focusEl.focus.defer(10, this.focusEl);
-    },
-
-    setAnimateTarget : function(el){
-        el = Ext.get(el);
-        this.animateTarget = el;
-    },
-
-    beforeShow : function(){
-        delete this.el.lastXY;
-        delete this.el.lastLT;
-        if(this.x === undefined){
-            var xy = this.el.getAlignToXY(this.container, 'c-c');
-            var pos = this.el.translatePoints(xy[0], xy[1]);
-            this.x = pos.left;
-            this.y = pos.top;
-        }
-        this.el.setLeftTop(this.x, this.y);
-        this.expand(false);
-
-        if(this.modal){
-            Ext.get(document.body).addClass("x-body-masked");
-            this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true));
-            this.mask.show();
-        }
-    },
-
-    show : function(animateTarget, cb, scope){
-        if(this.hidden === false){
-            this.toFront();
-            return;
-        }
-        if(this.fireEvent("beforeshow", this) === false){
-            return;
-        }
-        if(cb){
-            this.on('show', cb, scope, {single:true});
-        }
-        this.hidden = false;
-        if(animateTarget !== undefined){
-            this.setAnimateTarget(animateTarget);
-        }
-        this.beforeShow();
-        if(this.animateTarget){
-            this.animShow();
-        }else{
-            this.afterShow();
-        }
-    },
-
-    afterShow : function(){
-        this.proxy.hide();
-        this.el.setStyle('display', 'block');
-        this.el.show();
-
-        if(this.monitorResize && this.constrain){
-            Ext.EventManager.onWindowResize(this.onWindowResize, this);
-            this.doConstrain();
-        }
-        if(this.layout){
-            this.doLayout();
-        }
-        this.toFront();
-        this.fireEvent("show", this);
-    },
-
-    // private
-    animShow : function(){
-        this.proxy.show();
-        this.proxy.setBox(this.animateTarget.getBox());
-        var b = this.getBox(false);
-        b.callback = this.afterShow;
-        b.scope = this;
-        b.duration = .25;
-        b.easing = 'easeNone';
-        b.block = true;
-        this.el.setStyle('display', 'none');
-        this.proxy.shift(b);
-    },
-
-
-    hide : function(animateTarget, cb, scope){
-        if(this.hidden || this.fireEvent("beforehide", this) === false){
-            return;
-        }
-        if(cb){
-            this.on('hide', cb, scope, {single:true});
-        }
-        this.hidden = true;
-        if(animateTarget !== undefined){
-            this.setAnimateTarget(animateTarget);
-        }
-        if(this.animateTarget){
-            this.animHide();
-        }else{
-            this.el.hide();
-            this.afterHide();
-        }
-    },
-
-    afterHide : function(){
-        this.proxy.hide();
-        if(this.monitorResize && this.constrain){
-            Ext.EventManager.removeResizeListener(this.onWindowResize, this);
-        }
-        if(this.modal){
-            this.mask.hide();
-            Ext.get(document.body).removeClass("x-body-masked");
-        }
-        this.fireEvent("hide", this);
-    },
-
-    animHide : function(){
-        this.proxy.show();
-        var tb = this.getBox(false);
-        this.proxy.setBox(tb);
-        this.el.hide();
-        var b = this.animateTarget.getBox();
-        b.callback = this.afterHide;
-        b.scope = this;
-        b.duration = .25;
-        b.easing = 'easeNone';
-        b.block = true;
-        this.proxy.shift(b);
-    },
-
-    onWindowResize : function(){
-        if(this.maximized){
-            this.fitContainer();
-        }
-        this.doConstrain();
-    },
-
-    doConstrain : function(){
-        if(this.constrain){
-            var xy = this.el.getConstrainToXY(this.container, true,
-                    {   right:this.el.shadowOffset,
-                        left:this.el.shadowOffset,
-                        bottom:this.el.shadowOffset});
-            if(xy){
-                this.setPosition(xy[0], xy[1]);
-            }
-        }
-    },
-
-    ghost : function(cls){
-        var ghost = this.createGhost(cls);
-        var box = this.getBox(true);
-        ghost.setLeftTop(box.x, box.y);
-        ghost.setWidth(box.width);
-        this.el.hide();
-        this.activeGhost = ghost;
-        return ghost;
-    },
-
-    unghost : function(show, matchPosition){
-        if(show !== false){
-            this.el.show();
-            this.focus();
-        }
-        if(matchPosition !== false){
-            this.setPosition(this.activeGhost.getLeft(true), this.activeGhost.getTop(true));
-        }
-        this.activeGhost.hide();
-        this.activeGhost.remove();
-        delete this.activeGhost;
-    },
-
-    onMinimize : function(){
-        this.fireEvent('minimize', this);
-    },
-
-    onClose : function(){
-        if(this.fireEvent("beforeclose", this) === false){
-            return;
-        }
-        this.hide(null, function(){
-            this.fireEvent('close', this);
-            this.destroy();
-        }, this);
-    },
-
-    maximize : function(){
-        if(!this.maximized){
-            this.expand(false);
-            this.restoreSize = this.getSize();
-            this.restorePos = this.getPosition(true);
-            this.tools.maximize.hide();
-            this.tools.restore.show();
-            this.maximized = true;
-            this.el.disableShadow();
-
-            if(this.dd){
-                this.dd.lock();
-            }
-            if(this.collapsible){
-                this.tools.toggle.hide();
-            }
-            this.el.addClass('x-window-maximized');
-            this.container.addClass('x-window-maximized-ct');
-
-            this.setPosition(0, 0);
-            this.fitContainer();
-            this.fireEvent('maximize', this);
-        }
-    },
-
-    restore : function(){
-        if(this.maximized){
-            this.el.removeClass('x-window-maximized');
-            this.tools.restore.hide();
-            this.tools.maximize.show();
-            this.setPosition(this.restorePos[0], this.restorePos[1]);
-            this.setSize(this.restoreSize.width, this.restoreSize.height);
-            delete this.restorePos;
-            delete this.restoreSize;
-            this.maximized = false;
-            this.el.enableShadow(true);
-
-            if(this.dd){
-                this.dd.unlock();
-            }
-            if(this.collapsible){
-                this.tools.toggle.show();
-            }
-            this.container.removeClass('x-window-maximized-ct');
-
-            this.doConstrain();
-            this.fireEvent('restore', this);
-        }
-    },
-
-    toggleMaximize : function(){
-        this[this.maximized ? 'restore' : 'maximize']();
-    },
-
-    fitContainer : function(){
-        var vs = this.container.getViewSize();
-        this.setSize(vs.width, vs.height);
-    },
-
-    // private
-    // z-index is managed by the WindowManager and may be overwritten at any time
-    setZIndex : function(index){
-        if(this.modal){
-            this.mask.setStyle("z-index", index);
-        }
-        this.el.setZIndex(++index);
-        index += 5;
-
-        if(this.resizer){
-            this.resizer.proxy.setStyle("z-index", ++index);
-        }
-
-        this.lastZIndex = index;
-    },
-
-    /**
-     * Aligns the window to the specified element
-     * @param {String/HTMLElement/Ext.Element} element The element to align to.
-     * @param {String} position The position to align to (see {@link Ext.Element#alignTo} for more details).
-     * @param {Array} offsets (optional) Offset the positioning by [x, y]
-     * @return {Ext.Window} this
-     */
-    alignTo : function(element, position, offsets){
-        var xy = this.el.getAlignToXY(element, position, offsets);
-        this.setPagePosition(xy[0], xy[1]);
-        return this;
-    },
-
-    /**
-     * Anchors this window to another element and realigns it when the window is resized or scrolled.
-     * @param {String/HTMLElement/Ext.Element} element The element to align to.
-     * @param {String} position The position to align to (see {@link Ext.Element#alignTo} for more details)
-     * @param {Array} offsets (optional) Offset the positioning by [x, y]
-     * @param {Boolean/Number} monitorScroll (optional) true to monitor body scroll and reposition. If this parameter
-     * is a number, it is used as the buffer delay (defaults to 50ms).
-     * @return {Ext.Window} this
-     */
-    anchorTo : function(el, alignment, offsets, monitorScroll){
-        var action = function(){
-            this.alignTo(el, alignment, offsets);
-        };
-        Ext.EventManager.onWindowResize(action, this);
-        var tm = typeof monitorScroll;
-        if(tm != 'undefined'){
-            Ext.EventManager.on(window, 'scroll', action, this,
-                {buffer: tm == 'number' ? monitorScroll : 50});
-        }
-        action.call(this);
-        return this;
-    },
-
-    /**
-     * Brings this Window to the front of any other visible Windows
-     * @return {Ext.Window} this
-     */
-    toFront : function(){
-        this.manager.bringToFront(this);
-        this.focus();
-        return this;
-    },
-
-    setActive : function(active){
-        if(active){
-            if(!this.maximized){
-                this.el.enableShadow(true);
-            }
-            this.fireEvent('activate', this);
-        }else{
-            this.el.disableShadow();
-            this.fireEvent('deactivate', this);
-        }
-    },
-
-    /**
-     * Sends this Window to the back (under) of any other visible Windows
-     * @return {Ext.Window} this
-     */
-    toBack : function(){
-        this.manager.sendToBack(this);
-        return this;
-    },
-
-    /**
-     * Centers this Window in the viewport
-     * @return {Ext.Window} this
-     */
-    center : function(){
-        var xy = this.el.getAlignToXY(this.container, 'c-c');
-        this.setPagePosition(xy[0], xy[1]);
-        return this;
-    }
-});
-
-Ext.Window.DD = function(win){
-    this.win = win;
-    Ext.Window.DD.superclass.constructor.call(this, win.el.id, 'WindowDD-'+win.id);
-    this.setHandleElId(win.header.id);
-    this.scroll = false;
-};
-
-Ext.extend(Ext.Window.DD, Ext.dd.DD, {
-    moveOnly:true,
-    startDrag : function(){
-        var w = this.win;
-        this.proxy = w.ghost();
-        if(w.constrain !== false){
-            var so = w.el.shadowOffset;
-            this.constrainTo(w.container, {right: so, left: so, bottom: so});
-        }
-    },
-    b4Drag : Ext.emptyFn,
-
-    onDrag : function(e){
-        this.alignElWithMouse(this.proxy, e.getPageX(), e.getPageY());
-    },
-
-    endDrag : function(e){
-        this.win.unghost();
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/WindowManager.jss.html b/www/extras/extjs/docs/output/WindowManager.jss.html deleted file mode 100644 index 3307ee4dd..000000000 --- a/www/extras/extjs/docs/output/WindowManager.jss.html +++ /dev/null @@ -1,137 +0,0 @@ -WindowManager.js

WindowManager.js

Ext.WindowGroup = function(){
-    var list = {};
-    var accessList = [];
-    var front = null;
-
-    // private
-    var sortWindows = function(d1, d2){
-        return (!d1._lastAccess || d1._lastAccess < d2._lastAccess) ? -1 : 1;
-    };
-
-    // private
-    var orderWindows = function(){
-        accessList.sort(sortWindows);
-        var seed = Ext.DialogManager.zseed;
-        for(var i = 0, len = accessList.length; i < len; i++){
-            var win = accessList[i];
-            if(win && !win.hidden){
-                win.setZIndex(seed + (i*10));
-            }
-        }
-        activateLast();
-    };
-
-    var setActiveWin = function(win){
-        if(win != front){
-            if(front){
-                front.setActive(false);
-            }
-            front = win;
-            if(win){
-                win.setActive(true);
-            }
-        }
-    };
-
-    var activateLast = function(){
-        for(var i = accessList.length-1; i >=0; --i) {
-            if(!accessList[i].hidden){
-                setActiveWin(accessList[i]);
-                return;
-            }
-        }
-        // none to activate
-        setActiveWin(null);
-    };
-
-    return {
-        /**
-         * The starting z-index for windows (defaults to 9000)
-         * @type Number The z-index value
-         */
-        zseed : 9000,
-
-        // private
-        register : function(win){
-            list[win.id] = win;
-            accessList.push(win);
-            win.on('hide', activateLast);
-        },
-
-        // private
-        unregister : function(win){
-            delete list[win.id];
-            win.un('hide', activateLast);
-            accessList.remove(win);
-        },
-
-        /**
-         * Gets a registered Window by id
-         * @param {String/Object} id The id of the Window or a Window
-         * @return {Ext.BasicDialog} this
-         */
-        get : function(id){
-            return typeof id == "object" ? id : list[id];
-        },
-
-        /**
-         * Brings the specified Window to the front
-         * @param {String/Object} win The id of the Window or a Window
-         * @return {Ext.BasicDialog} this
-         */
-        bringToFront : function(win){
-            win = this.get(win);
-            if(win != front){
-                win._lastAccess = new Date().getTime();
-                orderWindows();
-            }
-            return win;
-        },
-
-        /**
-         * Sends the specified Window to the back
-         * @param {String/Object} win The id of the Window or a Window
-         * @return {Ext.BasicDialog} this
-         */
-        sendToBack : function(win){
-            win = this.get(win);
-            win._lastAccess = -(new Date().getTime());
-            orderWindows();
-            return win;
-        },
-
-        /**
-         * Hides all Windows
-         */
-        hideAll : function(){
-            for(var id in list){
-                if(list[id] && typeof list[id] != "function" && list[id].isVisible()){
-                    list[id].hide();
-                }
-            }
-        },
-
-
-
-        getBy : function(fn, scope){
-            var r = [];
-            for(var i = accessList.length-1; i >=0; --i) {
-                var win = accessList[i];
-                if(fn.call(scope||win, win) !== false){
-                    r.push(win);
-                }
-            }
-            return r;
-        }
-    };
-};
-
-
-/**
- * @class Ext.WindowManager
- * @extends Ext.WindowGroup
- * The default global group of windows.
- * @singleton
- */
-Ext.WindowMgr = new Ext.WindowGroup();

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/XmlReader.jss.html b/www/extras/extjs/docs/output/XmlReader.jss.html deleted file mode 100644 index e1170ebfa..000000000 --- a/www/extras/extjs/docs/output/XmlReader.jss.html +++ /dev/null @@ -1,113 +0,0 @@ -XmlReader.js

XmlReader.js

/**
- * @class Ext.data.XmlReader
- * @extends Ext.data.DataReader
- * Data reader class to create an Array of {@link Ext.data.Record} objects from an XML document
- * based on mappings in a provided Ext.data.Record constructor.
- * <p>
- * The code below lists all configuration options.
- * <pre><code>
-var myReader = new Ext.data.XmlReader({
-   record: "row",           // The repeated element which contains record information
-   totalRecords: "results", // The element which contains the number of returned records (optional)
-   id: "id"                 // The element within the record that provides an ID for the record (optional)
-}, myRecordDefinition);
-</code></pre>
- * <p>
- * This would consume an XML file like this:
- * <pre><code>
-&lt;?xml?>
-&lt;dataset>
- &lt;results>2&lt;/results>
- &lt;row>
-   &lt;id>1&lt;/id>
-   &lt;name>Bill&lt;/name>
- &lt;/row>
- &lt;row>
-   &lt;id>2&lt;/id>
-   &lt;name>Ben&lt;/name>
- &lt;/row>
-&lt;/dataset>
-</code></pre>
- * @cfg {String} totalRecords The DomQuery path from which to retrieve the total number of records
- * in the dataset. This is only needed if the whole dataset is not passed in one go, but is being
- * paged from the remote server.
- * @cfg {String} record The DomQuery path to the repeated element which contains record information.
- * @cfg {String} success The DomQuery path to the success attribute used by forms.
- * @cfg {String} id The DomQuery path relative from the record element to the element that contains
- * a record identifier value.
- * @constructor
- * Create a new XmlReader
- * @param {Object} meta Metadata configuration options
- * @param {Mixed} recordType The definition of the data record type to produce.  This can be either a valid
- * Record subclass created with {@link Ext.data.Record#create}, or an array of objects with which to call
- * Ext.data.Record.create.  See the {@link Ext.data.Record} class for more details.
- */
-Ext.data.XmlReader = function(meta, recordType){
-    Ext.data.XmlReader.superclass.constructor.call(this, meta, recordType);
-};
-Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, {
-    /**
-     * This method is only used by a DataProxy which has retrieved data from a remote server.
-	 * @param {Object} response The XHR object which contains the parsed XML document.  The response is expected
-	 * to contain a method called 'responseXML' that returns an XML document object.
-     * @return {Object} records A data block which is used by an {@link Ext.data.Store} as
-     * a cache of Ext.data.Records.
-     */
-    read : function(response){
-        var doc = response.responseXML;
-        if(!doc) {
-            throw {message: "XmlReader.read: XML Document not available"};
-        }
-        return this.readRecords(doc);
-    },
-
-    /**
-     * Create a data block containing Ext.data.Records from an XML document.
-	 * @param {Object} doc A parsed XML document.
-     * @return {Object} records A data block which is used by an {@link Ext.data.Store} as
-     * a cache of Ext.data.Records.
-     */
-    readRecords : function(doc){
-        /**
-         * After any data loads/reads, the raw XML Document is available for further custom processing.
-         * @type XMLDocument
-         */
-        this.xmlData = doc;
-        var root = doc.documentElement || doc;
-    	var q = Ext.DomQuery;
-    	var recordType = this.recordType, fields = recordType.prototype.fields;
-    	var sid = this.meta.id;
-    	var totalRecords = 0, success = true;
-    	if(this.meta.totalRecords){
-    	    totalRecords = q.selectNumber(this.meta.totalRecords, root, 0);
-    	}
-        
-        if(this.meta.success){
-            var sv = q.selectValue(this.meta.success, root, true);
-            success = sv !== false && sv !== 'false';
-    	}
-    	var records = [];
-    	var ns = q.select(this.meta.record, root);
-        for(var i = 0, len = ns.length; i < len; i++) {
-	        var n = ns[i];
-	        var values = {};
-	        var id = sid ? q.selectValue(sid, n) : undefined;
-	        for(var j = 0, jlen = fields.length; j < jlen; j++){
-	            var f = fields.items[j];
-                var v = q.selectValue(f.mapping || f.name, n, f.defaultValue);
-	            v = f.convert(v);
-	            values[f.name] = v;
-	        }
-	        var record = new recordType(values, id);
-	        record.node = n;
-	        records[records.length] = record;
-	    }
-
-	    return {
-	        success : success,
-	        records : records,
-	        totalRecords : totalRecords || records.length
-	    };
-    }
-});

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/debug.jss.html b/www/extras/extjs/docs/output/debug.jss.html deleted file mode 100644 index adeb64413..000000000 --- a/www/extras/extjs/docs/output/debug.jss.html +++ /dev/null @@ -1,727 +0,0 @@ -debug.js

debug.js

/*
- * These functions are only included in -debug files
- *
-*/Ext.debug = {
-    init : function(){
-        var CP = Ext.ContentPanel;
-        var bd = Ext.get(document.body);
-
-        // create the dialog
-        var dlg = new Ext.LayoutDialog('x-debug-browser', {
-            autoCreate:true,
-            width:800,
-            height:450,
-            title: 'Ext Debug Console &amp; Inspector',
-            proxyDrag:true,
-            shadow:true,
-            center:{alwaysShowTabs:true},
-            constraintoviewport:false
-        });
-
-        // prevent dialog events from bubbling
-        dlg.el.swallowEvent('click');
-
-        // build the layout
-        var mainLayout = dlg.getLayout();
-        mainLayout.beginUpdate();
-
-        // create the nested layouts
-        var clayout = mainLayout.add('center',
-            new Ext.debug.InnerLayout('x-debug-console', 400, {
-                title: 'Debug Console'
-            }
-        ));
-
-        var ilayout = mainLayout.add('center',
-            new Ext.debug.InnerLayout('x-debug-inspector', 250, {
-                title: 'DOM Inspector'
-            }
-        ));
-
-        var scriptPanel = clayout.add('east', new CP({
-            autoCreate:{
-                tag: 'div', children: [
-                    {tag: 'div'},
-                    {tag:'textarea'}
-                ]
-            },
-            fitContainer:true,
-            fitToFrame:true,
-            title:'Script Console',
-            autoScroll: Ext.isGecko, // hideous block for firefox missing cursor AND bad sizing textareas
-            setSize : function(w, h){
-                Ext.ContentPanel.prototype.setSize.call(this, w, h);
-                if(Ext.isGecko && Ext.isStrict){
-                    var s = this.adjustForComponents(w, h);
-                    this.resizeEl.setSize(s.width-2, s.height-2);
-                }
-            }
-        }));
-        var sel = scriptPanel.el;
-        var script = sel.child('textarea');
-        scriptPanel.resizeEl = script;
-        var sctb = scriptPanel.toolbar = new Ext.Toolbar(sel.child('div'));
-        sctb.add({
-            text: 'Run',
-            handler: function(){
-                var s = script.dom.value;
-                if(trap.checked){
-                    try{
-                        var rt = eval(s);
-                        Ext.debug.dump(rt === undefined? '(no return)' : rt);
-                    }catch(e){
-                        Ext.debug.log(e.message || e.descript);
-                    }
-                }else{
-                    var rt = eval(s);
-                    Ext.debug.dump(rt === undefined? '(no return)' : rt);
-                }
-            }
-        }, {
-            text: 'Clear',
-            handler: function(){
-                script.dom.value = '';
-                script.dom.focus();
-            }
-        });
-
-        var trap = Ext.DomHelper.append(sctb.el, {tag:'input', type:'checkbox', checked: 'checked'});
-        trap.checked = true;
-        sctb.add('-', trap, 'Trap Errors');
-
-
-        var stylesGrid = new Ext.grid.PropertyGrid(bd.createChild(), {
-            nameText: 'Style',
-            enableCtxMenu: false,
-            enableColumnResize: false
-        });
-
-        var stylePanel = ilayout.add('east', new Ext.GridPanel(stylesGrid,
-            {title: '(No element selected)'}));
-
-        stylesGrid.render();
-
-        // hide the header
-        stylesGrid.getView().mainHd.setDisplayed(false);
-
-        clayout.tbar.add({
-            text: 'Clear',
-            handler: function(){
-                Ext.debug.console.jsonData = [];
-                Ext.debug.console.refresh();
-            }
-        });
-
-        var treeEl = ilayout.main.getEl();
-        // create main inspector toolbar
-        var tb = ilayout.tbar;
-
-        var inspectIgnore, inspecting;
-
-        function inspectListener(e, t){
-            if(!inspectIgnore.contains(e.getPoint())){
-                findNode(t);
-            }
-        }
-
-        function stopInspecting(e, t){
-            if(!inspectIgnore.contains(e.getPoint())){
-                inspect.toggle(false);
-                if(findNode(t) !== false){
-                    e.stopEvent();
-                }
-            }
-        }
-
-        function stopInspectingEsc(e, t){
-            if(e.getKey() == e.ESC){
-                inspect.toggle(false);
-            }
-        }
-
-        var inspect = tb.addButton({
-            text: 'Inspect',
-            enableToggle: true,
-            pressed:false,
-            toggleHandler: function(n, pressed){
-                var d = Ext.get(document);
-                if(pressed){
-                    d.on('mouseover', inspectListener, window, {buffer:50});
-                    d.on('mousedown', stopInspecting);
-                    d.on('keydown', stopInspectingEsc);
-                    inspectIgnore = dlg.el.getRegion();
-                    inspecting = true;
-                }else{
-                    d.un('mouseover', inspectListener);
-                    d.un('mousedown', stopInspecting);
-                    d.on('keydown', stopInspectingEsc);
-                    inspecting = false;
-                    var n = tree.getSelectionModel().getSelectedNode();
-                    if(n && n.htmlNode){
-                        onNodeSelect(tree, n, false);
-                    }
-                }
-            }
-        });
-
-        tb.addSeparator();
-
-        var frameEl = tb.addButton({
-            text: 'Highlight Selection',
-            enableToggle: true,
-            pressed:false,
-            toggleHandler: function(n, pressed){
-                var n = tree.getSelectionModel().getSelectedNode();
-                if(n && n.htmlNode){
-                    n[pressed ? 'frame' : 'unframe']();
-                }
-            }
-        });
-
-        tb.addSeparator();
-
-        var reload = tb.addButton({
-            text: 'Refresh Children',
-            disabled:true,
-            handler: function(){
-                var n = tree.getSelectionModel().getSelectedNode();
-                if(n && n.reload){
-                    n.reload();
-                }
-            }
-        });
-
-        tb.add( '-', {
-            text: 'Collapse All',
-            handler: function(){
-                tree.root.collapse(true);
-            }
-        });
-
-        // perform the main layout
-        mainLayout.endUpdate();
-
-        mainLayout.getRegion('center').showPanel(0);
-
-        stylesGrid.on('propertychange', function(s, name, value){
-            var node = stylesGrid.treeNode;
-            if(styles){
-                node.htmlNode.style[name] = value;
-            }else{
-                node.htmlNode[name] = value;
-            }
-            node.refresh(true);
-        });
-
-        // Create the style toolbar
-        var stb = new Ext.Toolbar(stylesGrid.view.getHeaderPanel(true));
-
-        var swap = stb.addButton({
-            text: 'DOM Attributes',
-            menu: {
-                items: [
-                    new Ext.menu.CheckItem({id:'dom', text:'DOM Attributes', checked: true, group:'xdb-styles'}),
-                    new Ext.menu.CheckItem({id:'styles', text:'CSS Properties', group:'xdb-styles'})
-                ]
-            }
-        });
-
-        swap.menu.on('click', function(){
-            styles = swap.menu.items.get('styles').checked;
-            showAll[styles? 'show' : 'hide']();
-            swap.setText(styles ? 'CSS Properties' : 'DOM Attributes');
-            var n = tree.getSelectionModel().getSelectedNode();
-            if(n){
-                onNodeSelect(tree, n);
-            }
-        });
-        
-        var addStyle = stb.addButton({
-            text: 'Add',
-            disabled: true,
-            handler: function(){
-                Ext.MessageBox.prompt('Add Property', 'Property Name:', function(btn, v){
-                    // store.store is disgusting TODO: clean up the API
-                    var store = stylesGrid.store.store;
-                    if(btn == 'ok' && v && !store.getById(v)){
-                        var r = new Ext.grid.PropertyRecord({name:v, value: ''}, v);
-                        store.add(r);
-                        stylesGrid.startEditing(store.getCount()-1, 1);
-                    }
-                });
-            }
-        });
-
-        var showAll = stb.addButton({
-            text: 'Computed Styles',
-            hidden: true,
-            pressed: false,
-            enableToggle: true,
-            toggleHandler: function(){
-                var n = tree.getSelectionModel().getSelectedNode();
-                if(n){
-                    onNodeSelect(tree, n);
-                }
-            }
-        });
-
-        // tree related stuff
-        var styles = false, hnode;
-        var nonSpace = /^\s*$/;
-        var html = Ext.util.Format.htmlEncode;
-        var ellipsis = Ext.util.Format.ellipsis;
-        var styleRe = /\s?([a-z\-]*)\:([^;]*)(?:[;\s\n\r]*)/gi;
-
-        function findNode(n){
-            if(!n || n.nodeType != 1 || n == document.body || n == document){
-                return false;
-            }
-            var pn = [n], p = n;
-            while((p = p.parentNode) && p.nodeType == 1 && p.tagName.toUpperCase() != 'HTML'){
-                pn.unshift(p);
-            }
-            var cn = hnode;
-            for(var i = 0, len = pn.length; i < len; i++){
-                cn.expand();
-                cn = cn.findChild('htmlNode', pn[i]);
-                if(!cn){ // in this dialog?
-                    return false;
-                }
-            }
-            cn.select();
-            var a = cn.ui.anchor;
-            treeEl.dom.scrollTop = Math.max(0 ,a.offsetTop-10);
-            //treeEl.dom.scrollLeft = Math.max(0 ,a.offsetLeft-10); no likey
-            cn.highlight();
-            return true;
-        }
-
-        function nodeTitle(n){
-            var s = n.tagName;
-            if(n.id){
-                s += '#'+n.id;
-            }else if(n.className){
-                s += '.'+n.className;
-            }
-            return s;
-        }
-
-        function onNodeSelect(t, n, last){
-            if(last && last.unframe){
-                last.unframe();
-            }
-            var props = {};
-            if(n && n.htmlNode){
-                if(frameEl.pressed){
-                    n.frame();
-                }
-                if(inspecting){
-                    return;
-                }
-                addStyle.enable();
-                reload.setDisabled(n.leaf);
-                var dom = n.htmlNode;
-                stylePanel.setTitle(nodeTitle(dom));
-                if(styles && !showAll.pressed){
-                    var s = dom.style ? dom.style.cssText : '';
-                    if(s){
-                        var m;
-                        while ((m = styleRe.exec(s)) != null){
-                            props[m[1].toLowerCase()] = m[2];
-                        }
-                    }
-                }else if(styles){
-                    var cl = Ext.debug.cssList;
-                    var s = dom.style, fly = Ext.fly(dom);
-                    if(s){
-                        for(var i = 0, len = cl.length; i<len; i++){
-                            var st = cl[i];
-                            var v = s[st] || fly.getStyle(st);
-                            if(v != undefined && v !== null && v !== ''){
-                                props[st] = v;
-                            }
-                        }
-                    }
-                }else{
-                    for(var a in dom){
-                        var v = dom[a];
-                        if((isNaN(a+10)) && v != undefined && v !== null && v !== '' && !(Ext.isGecko && a[0] == a[0].toUpperCase())){
-                            props[a] = v;
-                        }
-                    }
-                }
-            }else{
-                if(inspecting){
-                    return;
-                }
-                addStyle.disable();
-                reload.disabled();
-            }
-            stylesGrid.setSource(props);
-            stylesGrid.treeNode = n;
-            stylesGrid.view.fitColumns();
-        }
-
-        // lets build a list of nodes to filter from the tree
-        // this is gonna be nasty
-        var filterIds = '^(?:';
-        var eds = stylesGrid.colModel.editors;
-        for(var edType in eds){
-            filterIds += eds[edType].id +'|';
-        }
-        Ext.each([dlg.shim? dlg.shim.id : 'noshim', dlg.proxyDrag.id], function(id){
-             filterIds += id +'|';
-        });
-        filterIds += dlg.el.id;
-        filterIds += ')$';
-        var filterRe = new RegExp(filterIds);
-
-        var loader = new Ext.tree.TreeLoader();
-        loader.load = function(n, cb){
-            var isBody = n.htmlNode == bd.dom;
-            var cn = n.htmlNode.childNodes;
-            for(var i = 0, c; c = cn[i]; i++){
-                if(isBody && filterRe.test(c.id)){
-                    continue;
-                }
-                if(c.nodeType == 1){
-                    n.appendChild(new Ext.debug.HtmlNode(c));
-                }else if(c.nodeType == 3 && !nonSpace.test(c.nodeValue)){
-                    n.appendChild(new Ext.tree.TreeNode({
-                        text:'<em>' + ellipsis(html(String(c.nodeValue)), 35) + '</em>',
-                        cls: 'x-tree-noicon'
-                    }));
-                }
-            }
-            cb();
-        };
-
-        var tree = new Ext.tree.TreePanel(treeEl, {
-            enableDD:false ,
-            loader: loader,
-            lines:false,
-            rootVisible:false,
-            animate:false,
-            hlColor:'ffff9c'
-        });
-        tree.getSelectionModel().on('selectionchange', onNodeSelect, null, {buffer:250});
-
-        var root = tree.setRootNode(new Ext.tree.TreeNode('Ext'));
-
-        hnode = root.appendChild(new Ext.debug.HtmlNode(
-                document.getElementsByTagName('html')[0]
-        ));
-
-        tree.render();
-
-        Ext.debug.console = new Ext.JsonView(clayout.main.getEl(),
-                '<pre><xmp>> {msg}</xmp></pre>');
-        Ext.debug.console.jsonData = [];
-
-        Ext.debug.dialog = dlg;
-    },
-
-    show : function(){
-        var d = Ext.debug;
-        if(!d.dialog){
-            d.init();
-        }
-        if(!d.dialog.isVisible()){
-            d.dialog.show();
-        }
-    },
-
-    hide : function(){
-        if(Ext.debug.dialog){
-            Ext.debug.dialog.hide();
-        }
-    },
-
-    /**
-     * Debugging function. Prints all arguments to a resizable, movable, scrolling region without
-     * the need to include separate js or css. Double click it to hide it.
-     * @param {Mixed} arg1
-     * @param {Mixed} arg2
-     * @param {Mixed} etc
-     * @method print
-     */
-    log : function(arg1, arg2, etc){
-       Ext.debug.show();
-        var m = "";
-        for(var i = 0, len = arguments.length; i < len; i++){
-            m += (i == 0 ? "" : ", ") + arguments[i];
-        }
-        var cn = Ext.debug.console;
-        cn.jsonData.unshift({msg: m});
-        cn.refresh();
-    },
-
-    /**
-     * Applies the passed C#/DomHelper style format (e.g. "The variable {0} is equal to {1}") before calling Ext.debug.log
-     * @param {String} format
-     * @param {Mixed} arg1
-     * @param {Mixed} arg2
-     * @param {Mixed} etc
-     * @method printf
-     */
-    logf : function(format, arg1, arg2, etc){
-        Ext.debug.log(String.format.apply(String, arguments));
-    },
-
-    /**
-     * Dumps an object to Ext.debug.log
-     * @param {Object} o
-     * @method dump
-     */
-    dump : function(o){
-        if(typeof o == 'string' || typeof o == 'number' || typeof o == 'undefined' || o instanceof Date){
-            Ext.debug.log(o);
-        }else if(!o){
-            Ext.debug.log("null");
-        }else if(typeof o != "object"){
-            Ext.debug.log('Unknown return type');
-        }else if(o instanceof Array){
-            Ext.debug.log('['+o.join(',')+']');
-        }else{
-            var b = ["{\n"];
-            for(var key in o){
-                var to = typeof o[key];
-                if(to != "function" && to != "object"){
-                    b.push(String.format("  {0}: {1},\n", key, o[key]));
-                }
-            }
-            var s = b.join("");
-            if(s.length > 3){
-                s = s.substr(0, s.length-2);
-            }
-            Ext.debug.log(s + "\n}");
-        }
-    },
-
-    _timers : {},
-    /**
-     * Starts a timer.
-     * @param {String} name (optional)
-     * @method timer
-     */
-    time : function(name){
-        name = name || "def";
-        Ext._timers[name] = new Date().getTime();
-    },
-
-    /**
-     * Ends a timer, returns the results (formatted "{1} ms") and optionally prints them to Ext.print()
-     * @param {String} name (optional)
-     * @param {Boolean} printResults (optional) false to stop printing the results to Ext.print
-     * @method timerEnd
-     */
-    timeEnd : function(name, printResults){
-        var t = new Date().getTime();
-        name = name || "def";
-        var v = String.format("{0} ms", t-Ext._timers[name]);
-        Ext._timers[name] = new Date().getTime();
-        if(printResults !== false){
-            Ext.debug.log('Timer ' + (name == "def" ? v : name + ": " + v));
-        }
-        return v;
-    }
-};
-
-// highly unusual class declaration
-Ext.debug.HtmlNode = function(){
-    var html = Ext.util.Format.htmlEncode;
-    var ellipsis = Ext.util.Format.ellipsis;
-    var nonSpace = /^\s*$/;
-
-    var attrs = [
-        {n: 'id', v: 'id'},
-        {n: 'className', v: 'class'},
-        {n: 'name', v: 'name'},
-        {n: 'type', v: 'type'},
-        {n: 'src', v: 'src'},
-        {n: 'href', v: 'href'}
-    ];
-
-    function hasChild(n){
-        for(var i = 0, c; c = n.childNodes[i]; i++){
-            if(c.nodeType == 1){
-                return true;
-            }
-        }
-        return false;
-    }
-
-    function renderNode(n, leaf){
-        var tag = n.tagName.toLowerCase();
-        var s = '&lt;' + tag;
-        for(var i = 0, len = attrs.length; i < len; i++){
-            var a = attrs[i];
-            var v = n[a.n];
-            if(v && !nonSpace.test(v)){
-                s += ' ' + a.v + '=&quot;<i>' + html(v) +'</i>&quot;';
-            }
-        }
-        var style = n.style ? n.style.cssText : '';
-        if(style){
-            s += ' style=&quot;<i>' + html(style.toLowerCase()) +'</i>&quot;';
-        }
-        if(leaf && n.childNodes.length > 0){
-            s+='&gt;<em>' + ellipsis(html(String(n.innerHTML)), 35) + '</em>&lt;/'+tag+'&gt;';
-        }else if(leaf){
-            s += ' /&gt;';
-        }else{
-            s += '&gt;';
-        }
-        return s;
-    }
-
-    var HtmlNode = function(n){
-        var leaf = !hasChild(n);
-        this.htmlNode = n;
-        this.tagName = n.tagName.toLowerCase();
-        var attr = {
-            text : renderNode(n, leaf),
-            leaf : leaf,
-            cls: 'x-tree-noicon'
-        };
-        HtmlNode.superclass.constructor.call(this, attr);
-        this.attributes.htmlNode = n; // for searching
-        if(!leaf){
-            this.on('expand', this.onExpand,  this);
-            this.on('collapse', this.onCollapse,  this);
-        }
-    };
-
-
-    Ext.extend(HtmlNode, Ext.tree.AsyncTreeNode, {
-        cls: 'x-tree-noicon',
-        preventHScroll: true,
-        refresh : function(highlight){
-            var leaf = !hasChild(this.htmlNode);
-            this.setText(renderNode(this.htmlNode, leaf));
-            if(highlight){
-                Ext.fly(this.ui.textNode).highlight();
-            }
-        },
-
-        onExpand : function(){
-            if(!this.closeNode && this.parentNode){
-                this.closeNode = this.parentNode.insertBefore(new Ext.tree.TreeNode({
-                    text:'&lt;/' + this.tagName + '&gt;',
-                    cls: 'x-tree-noicon'
-                }), this.nextSibling);
-            }else if(this.closeNode){
-                this.closeNode.ui.show();
-            }
-        },
-
-        onCollapse : function(){
-            if(this.closeNode){
-                this.closeNode.ui.hide();
-            }
-        },
-
-        render : function(bulkRender){
-            HtmlNode.superclass.render.call(this, bulkRender);
-        },
-
-        highlightNode : function(){
-            //Ext.fly(this.htmlNode).highlight();
-        },
-
-        highlight : function(){
-            //Ext.fly(this.ui.textNode).highlight();
-        },
-
-        frame : function(){
-            this.htmlNode.style.border = '1px solid #0000ff';
-            //this.highlightNode();
-        },
-
-        unframe : function(){
-            //Ext.fly(this.htmlNode).removeClass('x-debug-frame');
-            this.htmlNode.style.border = '';
-        }
-    });
-
-    return HtmlNode;
-}();
-
-// subclass for the standard layout panels
-Ext.debug.InnerLayout = function(id, w, cfg){
-    // console layout
-    var el = Ext.DomHelper.append(document.body, {id:id});
-    var layout = new Ext.BorderLayout(el, {
-        north: {
-            initialSize:28
-        },
-        center: {
-            titlebar: false
-        },
-        east: {
-            split:true,
-            initialSize:w,
-            titlebar:true
-        }
-    });
-    Ext.debug.InnerLayout.superclass.constructor.call(this, layout, cfg);
-
-    layout.beginUpdate();
-
-    var tbPanel = layout.add('north', new Ext.ContentPanel({
-            autoCreate:true, fitToFrame:true}));
-
-    this.main = layout.add('center', new Ext.ContentPanel({
-            autoCreate:true, fitToFrame:true, autoScroll:true}));
-
-    this.tbar = new Ext.Toolbar(tbPanel.el);
-
-    var mtbEl = tbPanel.resizeEl = tbPanel.el.child('div.x-toolbar');
-    mtbEl.setStyle('border-bottom', '0 none');
-
-    layout.endUpdate(true);
-};
-
-Ext.extend(Ext.debug.InnerLayout, Ext.NestedLayoutPanel, {
-    add : function(){
-        return this.layout.add.apply(this.layout, arguments);
-    }
-});
-
-Ext.debug.cssList = ['background-color','border','border-color','border-spacing',
-'border-style','border-top','border-right','border-bottom','border-left','border-top-color',
-'border-right-color','border-bottom-color','border-left-color','border-top-width','border-right-width',
-'border-bottom-width','border-left-width','border-width','bottom','color','font-size','font-size-adjust',
-'font-stretch','font-style','height','left','letter-spacing','line-height','margin','margin-top',
-'margin-right','margin-bottom','margin-left','marker-offset','max-height','max-width','min-height',
-'min-width','orphans','outline','outline-color','outline-style','outline-width','overflow','padding',
-'padding-top','padding-right','padding-bottom','padding-left','quotes','right','size','text-indent',
-'top','width','word-spacing','z-index','opacity','outline-offset'];
-
-if(typeof console == 'undefined'){
-    console = Ext.debug;
-}
-/*
-if(Ext.isSafari || Ext.isIE || Ext.isOpera){
-    window.onerror = function(msg, url, line){
-        Ext.log.apply(Ext, arguments);
-    };
-}*/
-
-// attach shortcut key
-Ext.EventManager.on(window, 'load', function(){
-    Ext.get(document).on('keydown', function(e){
-        if(e.ctrlKey && e.shiftKey && e.getKey() == e.HOME){
-            Ext.debug.show();
-        }
-    });
-});
-
-// backwards compat
-Ext.print = Ext.log = Ext.debug.log;
-Ext.printf = Ext.logf = Ext.debug.logf;
-Ext.dump = Ext.debug.dump;
-Ext.timer = Ext.debug.time;
-Ext.timerEnd = Ext.debug.timeEnd;
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-da.jss.html b/www/extras/extjs/docs/output/ext-lang-da.jss.html deleted file mode 100644 index 8667d6373..000000000 --- a/www/extras/extjs/docs/output/ext-lang-da.jss.html +++ /dev/null @@ -1,169 +0,0 @@ -ext-lang-da.js

ext-lang-da.js

/*
- * Danish translation
- * By JohnF
- * 04-09-2007, 05:28 AM
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Henter...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} markerede rækker";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Luk denne fane";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "Værdien i dette felt er ikke tilladt";
-}
-
-Date.monthNames = [
-   "Januar",
-   "Februar",
-   "Marts",
-   "April",
-   "Maj",
-   "Juni",
-   "Juli",
-   "August",
-   "September",
-   "Oktober",
-   "November",
-   "December"
-];
-
-Date.dayNames = [
-   "Søndag",
-   "Mandag",
-   "Tirsdag",
-   "Onsdag",
-   "Torsdag",
-   "Fredag",
-   "Lørdag"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "OK",
-      cancel : "Fortryd",
-      yes    : "Ja",
-      no     : "Nej"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "d/m/Y");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "I dag",
-      minText           : "Denne dato er før den tidligst tilladte",
-      maxText           : "Denne dato er senere end den senest tilladte",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames        : Date.monthNames,
-      dayNames          : Date.dayNames,      
-      nextText          : 'Næste måned (Ctrl + højre piltast)',
-      prevText          : 'Forrige måned (Ctrl + venstre piltast)',
-      monthYearText     : 'Vælg en måned (Ctrl + op/ned pil for at ændre årstal)',
-      todayTip          : "{0} (mellemrum)",
-      format            : "d/m/y",
-      startDay          : 1
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Side",
-      afterPageText  : "af {0}",
-      firstText      : "Første side",
-      prevText       : "Forrige side",
-      nextText       : "Næste side",
-      lastText       : "Sidste side",
-      refreshText    : "Opfrisk",
-      displayMsg     : "Viser {0} - {1} af {2}",
-      emptyMsg       : 'Der er ingen data at vise'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "Minimum længden for dette felt er {0}",
-      maxLengthText : "Maksimum længden for dette felt er {0}",
-      blankText     : "Dette felt skal udfyldes",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "Mindste-værdien for dette felt er {0}",
-      maxText : "Maksimum-værdien for dette felt er {0}",
-      nanText : "{0} er ikke et tilladt nummer"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Inaktiveret",
-      disabledDatesText : "Inaktiveret",
-      minText           : "Datoen i dette felt skal være efter  {0}",
-      maxText           : "Datoen i dette felt skal være før {0}",
-      invalidText       : "{0} er ikke en tilladt dato - datoer skal angives i formatet {1}",
-      format            : "d/m/y"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "Henter...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Dette felt skal være en email adresse i formatet "navn@domæne.dk"',
-      urlText      : 'Dette felt skal være et link (URL) i formatet "http:/'+'/www.domæne.dk"',
-      alphaText    : 'Dette felt kan kun indeholde bogstaver og "_" (understregning)',
-      alphanumText : 'Dette felt kan kun indeholde bogstaver, tal og "_" (understregning)'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Sortér stigende",
-      sortDescText : "Sortér faldende",
-      lockText     : "LÃ¥s kolonne",
-      unlockText   : "Fjern lås fra kolonne",
-      columnsText  : "Kolonner"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Navn",
-      valueText  : "Værdi",
-      dateFormat : "d/m/Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Træk for at ændre størrelsen.",
-      collapsibleSplitTip : "Træk for at ændre størrelsen. Dobbelt-klik for at skjule."
-   });
-}
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-de.jss.html b/www/extras/extjs/docs/output/ext-lang-de.jss.html deleted file mode 100644 index 7ff09fb88..000000000 --- a/www/extras/extjs/docs/output/ext-lang-de.jss.html +++ /dev/null @@ -1,168 +0,0 @@ -ext-lang-de.js

ext-lang-de.js

/*
- * German translation
- * By schmidetzki and humpdi
- * 04-07-2007
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">übertrage Daten ...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} Zeile(n) ausgewält";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Diesen Tab schließen";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "Der Wert des Feldes ist nicht korrekt";
-}
-
-Date.monthNames = [
-   "Januar",
-   "Februar",
-   "März",
-   "April",
-   "Mai",
-   "Juni",
-   "Juli",
-   "August",
-   "September",
-   "Oktober",
-   "November",
-   "Dezember"
-];
-
-Date.dayNames = [
-   "Sonntag",
-   "Montag",
-   "Dienstag",
-   "Mittwoch",
-   "Donnerstag",
-   "Fritag",
-   "Samstag"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "OK",
-      cancel : "Abbrechen",
-      yes    : "Ja",
-      no     : "Nein"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "d.m.Y");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "Heute",
-      minText           : "Dieses Datum liegt von dem erstmöglichen Datum",
-      maxText           : "Dieses Datum liegt nach dem letztmöglichen Datum",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames	: Date.monthNames,
-      dayNames		: Date.dayNames,
-      nextText          : 'Nächster Monat (Strg/Control + Rechts)',
-      prevText          : 'Vorheriger Monat (Strg/Control + Links)',
-      monthYearText     : 'Monat auswählen (Strg/Control + Hoch/Runter, um ein Jahr auszuwählen)',
-      todayTip          : "Heute ({0}) (Leertaste)",
-      format            : "d.m.Y"
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Seite",
-      afterPageText  : "von {0}",
-      firstText      : "Erste Seite",
-      prevText       : "vorherige Seite",
-      nextText       : "nächste Siete",
-      lastText       : "letzte Seite",
-      refreshText    : "Aktualisieren",
-      displayMsg     : "Anzeige Eintrag {0} - {1} von {2}",
-      emptyMsg       : 'Keine Daten vorhanden'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "Bitte geben Sie mindestens {0} Zeichen ein",
-      maxLengthText : "Bitte geben Sie maximal {0} Zeichen ein",
-      blankText     : "Dieses Feld darf nich leer sein",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "Der Mindestwert für dieses Feld ist {0}",
-      maxText : "Der Maximalwert für dieses Feld ist {0}",
-      nanText : "{0} ist keine Zahl"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "nicht erlaubt",
-      disabledDatesText : "nicht erlaubt",
-      minText           : "Das Datum in diesem Feld muß nach dem {0} liegen",
-      maxText           : "Das Datum in diesem Feld muß vor dem {0} liegen",
-      invalidText       : "{0} ist kein valides Datum - es muß im Format {1} eingegeben werden",
-      format            : "Tag.Monat.Jahr"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "Lade Daten ...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Dieses Feld sollte eine E-Mail-Adresse enthalten. Format: "user@domain.com"',
-      urlText      : 'Dieses Feld sollte eine URL enthalten. Format "http:/'+'/www.domain.com"',
-      alphaText    : 'Dieses Feld darf zur Buchstaben enthalten und _',
-      alphanumText : 'Dieses Feld darf zur Buchstaben und Zahlen enthalten und _'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Aufsteigend sortieren",
-      sortDescText : "Absteigend sortieren",
-      lockText     : "Spalte sperren",
-      unlockText   : "Spalte freigeben (entsperren)",
-      columnsText  : "Spalten"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Name",
-      valueText  : "Wert",
-      dateFormat : "d.m.Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Ziehen, um Größe zu ändern.",
-      collapsibleSplitTip : "Ziehen, um Größe zu ändern. Doppelklick um Panel auszublenden."
-   });
-}
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-en.jss.html b/www/extras/extjs/docs/output/ext-lang-en.jss.html deleted file mode 100644 index 861bee962..000000000 --- a/www/extras/extjs/docs/output/ext-lang-en.jss.html +++ /dev/null @@ -1,172 +0,0 @@ -ext-lang-en.js

ext-lang-en.js

/**
- * List compiled by mystix on the extjs.com forums.
- * Thank you Mystix!
- *
- * English Translations
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Loading...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} selected row(s)";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Close this tab";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "The value in this field is invalid";
-}
-
-if(Ext.LoadMask){
-    Ext.LoadMask.prototype.msg = "Loading...";
-}
-
-Date.monthNames = [
-   "January",
-   "February",
-   "March",
-   "April",
-   "May",
-   "June",
-   "July",
-   "August",
-   "September",
-   "October",
-   "November",
-   "December"
-];
-
-Date.dayNames = [
-   "Sunday",
-   "Monday",
-   "Tuesday",
-   "Wednesday",
-   "Thursday",
-   "Friday",
-   "Saturday"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "OK",
-      cancel : "Cancel",
-      yes    : "Yes",
-      no     : "No"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "m/d/Y");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "Today",
-      minText           : "This date is before the minimum date",
-      maxText           : "This date is after the maximum date",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames	: Date.monthNames,
-      dayNames		: Date.dayNames,
-      nextText          : 'Next Month (Control+Right)',
-      prevText          : 'Previous Month (Control+Left)',
-      monthYearText     : 'Choose a month (Control+Up/Down to move years)',
-      todayTip          : "{0} (Spacebar)",
-      format            : "m/d/y"
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Page",
-      afterPageText  : "of {0}",
-      firstText      : "First Page",
-      prevText       : "Previous Page",
-      nextText       : "Next Page",
-      lastText       : "Last Page",
-      refreshText    : "Refresh",
-      displayMsg     : "Displaying {0} - {1} of {2}",
-      emptyMsg       : 'No data to display'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "The minimum length for this field is {0}",
-      maxLengthText : "The maximum length for this field is {0}",
-      blankText     : "This field is required",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "The minimum value for this field is {0}",
-      maxText : "The maximum value for this field is {0}",
-      nanText : "{0} is not a valid number"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Disabled",
-      disabledDatesText : "Disabled",
-      minText           : "The date in this field must be after {0}",
-      maxText           : "The date in this field must be before {0}",
-      invalidText       : "{0} is not a valid date - it must be in the format {1}",
-      format            : "m/d/y"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "Loading...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'This field should be an e-mail address in the format "user@domain.com"',
-      urlText      : 'This field should be a URL in the format "http:/'+'/www.domain.com"',
-      alphaText    : 'This field should only contain letters and _',
-      alphanumText : 'This field should only contain letters, numbers and _'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Sort Ascending",
-      sortDescText : "Sort Descending",
-      lockText     : "Lock Column",
-      unlockText   : "Unlock Column",
-      columnsText  : "Columns"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Name",
-      valueText  : "Value",
-      dateFormat : "m/j/Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Drag to resize.",
-      collapsibleSplitTip : "Drag to resize. Double click to hide."
-   });
-}

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-fr_CA.jss.html b/www/extras/extjs/docs/output/ext-lang-fr_CA.jss.html deleted file mode 100644 index 97ea5c9a1..000000000 --- a/www/extras/extjs/docs/output/ext-lang-fr_CA.jss.html +++ /dev/null @@ -1,168 +0,0 @@ -ext-lang-fr_CA.js

ext-lang-fr_CA.js

/*
- * France (Canadian) translation
- * By BernardChhun
- * 04-08-2007, 03:07 AM
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">En cours de chargement...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} ligne(s) sélectionné(s)";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Fermer cette onglet";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "La valeur de ce champ est invalide";
-}
-
-Date.monthNames = [
-   "Janvier",
-   "Février",
-   "Mars",
-   "Avril",
-   "Mai",
-   "Juin",
-   "Juillet",
-   "Août",
-   "Septembre",
-   "Octobre",
-   "Novembre",
-   "Décembre"
-];
-
-Date.dayNames = [
-   "Dimanche",
-   "Lundi",
-   "Mardi",
-   "Mercredi",
-   "Jeudi",
-   "Vendredi",
-   "Samedi"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "OK",
-      cancel : "Annuler",
-      yes    : "Oui",
-      no     : "Non"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "d/m/Y");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "Aujourd'hui",
-      minText           : "Cette date est plus petite que la date minimum",
-      maxText           : "Cette date est plus grande que la date maximum",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames	: Date.monthNames,
-      dayNames		: Date.dayNames,
-      nextText          : 'Prochain mois (CTRL+Fléche droite)',
-      prevText          : 'Mois précédent (CTRL+Fléche gauche)',
-      monthYearText     : 'Choissisez un mois (CTRL+Fléche haut ou bas pour changer d\'année.)',
-      todayTip          : "{0} (Barre d'espace)",
-      format            : "d/m/y"
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Page",
-      afterPageText  : "de {0}",
-      firstText      : "Première page",
-      prevText       : "Page précédente",
-      nextText       : "Prochaine page",
-      lastText       : "Dernière page",
-      refreshText    : "Recharger la page",
-      displayMsg     : "Page courante {0} - {1} de {2}",
-      emptyMsg       : 'Aucune donnée à afficher'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "La longueur minimum de ce champ est de {0} caractères",
-      maxLengthText : "La longueur maximum de ce champ est de {0} caractères",
-      blankText     : "Ce champ est obligatoire",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "La valeur minimum de ce champ doit être de {0}",
-      maxText : "La valeur maximum de ce champ doit être de {0}",
-      nanText : "{0} n'est pas un nombre valide"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Désactivé",
-      disabledDatesText : "Désactivé",
-      minText           : "La date de ce champ doit être avant le {0}",
-      maxText           : "La date de ce champ doit être après le {0}",
-      invalidText       : "{0} n'est pas une date valide - il doit être au format suivant: {1}",
-      format            : "d/m/y"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "En cours de chargement...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Ce champ doit contenir un courriel et doit être sous ce format: "usager@domaine.com"',
-      urlText      : 'Ce champ doit contenir une URL sous le format suivant: "http:/'+'/www.domaine.com"',
-      alphaText    : 'Ce champ ne peut contenir que des lettres et le caractère souligné (_)',
-      alphanumText : 'Ce champ ne peut contenir que des caractères alphanumériques ainsi que le caractère souligné (_)'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Tri ascendant",
-      sortDescText : "Tri descendant",
-      lockText     : "Verrouillé la colonne",
-      unlockText   : "Déverrouillé la colonne",
-      columnsText  : "Colonnes"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Propriété",
-      valueText  : "Valeur",
-      dateFormat : "d/m/Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Cliquer et glisser pour redimensionner le panneau.",
-      collapsibleSplitTip : "Cliquer et glisser pour redimensionner le panneau. Double-cliquer pour cacher le panneau."
-   });
-}
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-hr.jss.html b/www/extras/extjs/docs/output/ext-lang-hr.jss.html deleted file mode 100644 index 821902181..000000000 --- a/www/extras/extjs/docs/output/ext-lang-hr.jss.html +++ /dev/null @@ -1,169 +0,0 @@ -ext-lang-hr.js

ext-lang-hr.js

/*
- * Croatian translation
- * By Ylodi (utf8 encoding)
- * 10 April 2007
- */
- 
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">UÄitavanje...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} odabranih redova";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Zatvori ovaj tab";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "Vrijednost u ovom polju je neispravna";
-}
-
-Date.monthNames = [
-   "SijeÄanj",
-   "VeljaÄa",
-   "Ožujak",
-   "Travanj",
-   "Svibanj",
-   "Lipanj",
-   "Srpanj",
-   "Kolovoz",
-   "Rujan",
-   "Listopad",
-   "Studeni",
-   "Prosinac"
-];
-
-Date.dayNames = [
-   "Nedelja",
-   "Ponedeljak",
-   "Utorak",
-   "Srijeda",
-   "ÄŒetvrtak",
-   "Petak",
-   "Subota"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "U redu",
-      cancel : "Odustani",
-      yes    : "Da",
-      no     : "Ne"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "d/m/Y");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "Danas",
-      minText           : "Taj datum je prije najmanjeg datuma",
-      maxText           : "Taj datum je poslije najvećeg datuma",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames	: Date.monthNames,
-      dayNames		: Date.dayNames,
-      nextText          : 'Slijedeći mjesec (Control+Desno)',
-      prevText          : 'Prethodni mjesec (Control+Lijevo)',
-      monthYearText     : 'Odaberite mjesec (Control+Gore/Dolje za promjenu godine)',
-      todayTip          : "{0} (Razmaknica)",
-      format            : "d/m/y",
-      startDay 		 : 1
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Stranica",
-      afterPageText  : "od {0}",
-      firstText      : "Prva stranica",
-      prevText       : "Prethodna stranica",
-      nextText       : "Slijedeća stranica",
-      lastText       : "Zadnja stranica",
-      refreshText    : "Obnovi",
-      displayMsg     : "Prikazujem {0} - {1} od {2}",
-      emptyMsg       : 'Nema podataka za prikaz'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "Minimalna dužina za ovo polje je {0}",
-      maxLengthText : "Maksimalna dužina za ovo polje je {0}",
-      blankText     : "Ovo polje je obavezno",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "Minimalna vrijednost za ovo polje je {0}",
-      maxText : "Maksimalna vrijednost za ovo polje je {0}",
-      nanText : "{0} is not a valid number"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Neaktivno",
-      disabledDatesText : "Neaktivno",
-      minText           : "Datum u ovom polje mora biti poslije {0}",
-      maxText           : "Datum u ovom polju mora biti prije {0}",
-      invalidText       : "{0} nije ispravan datum - mora biti u obliku {1}",
-      format            : "d/m/y"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "UÄitavanje...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Ovo polje treba biti e-mail adresa u obliku "korisnik@domena.com"',
-      urlText      : 'Ovo polje treba biti URL u obliku "http:/'+'/www.domena.com"',
-      alphaText    : 'Ovo polje treba sadržavati samo slova i znak _',
-      alphanumText : 'Ovo polje treba sadržavati samo slova, brojeve i znak _'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Sortiraj rastućim redoslijedom",
-      sortDescText : "Sortiraj padajućim redoslijedom",
-      lockText     : "ZakljuÄaj stupac",
-      unlockText   : "OtkljuÄaj stupac",
-      columnsText  : "Stupci"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Naziv",
-      valueText  : "Vrijednost",
-      dateFormat : "j/m/Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Povuci za promjenu veliÄine.",
-      collapsibleSplitTip : "Povuci za promjenu veliÄine. Dvostruki klik za skrivanje."
-   });
-}
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-hu.jss.html b/www/extras/extjs/docs/output/ext-lang-hu.jss.html deleted file mode 100644 index 587732f61..000000000 --- a/www/extras/extjs/docs/output/ext-lang-hu.jss.html +++ /dev/null @@ -1,174 +0,0 @@ -ext-lang-hu.js

ext-lang-hu.js

/**
- * List compiled by mystix on the extjs.com forums.
- * Thank you Mystix!
- */
-// holder
-/**
- * Hungarian translation
- * By amon (utf-8 encoded)
- * 14 April 2007
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Betöltés...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} kiválasztott sor";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Fül bezárása";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "A mező tartalma érvénytelen";
-}
-
-Date.monthNames = [
-   "Január",
-   "Február",
-   "Március",
-   "Ãprilis",
-   "Május",
-   "Június",
-   "Július",
-   "Augusztus",
-   "Szeptember",
-   "Október",
-   "November",
-   "December"
-];
-
-Date.dayNames = [
-   "Vasárnap",
-   "Hétfő",
-   "Kedd",
-   "Szerda",
-   "Csütörtök",
-   "Péntek",
-   "Szombat"
-];
-   
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "OK",
-      cancel : "Mégsem",
-      yes    : "Igen",
-      no     : "Nem"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "y.m.d");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "Ma",
-      minText           : "Ez a dátum korábbi a megengedettnél",
-      maxText           : "Ez a dátum későbbi a megengedettnél",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames        : Date.monthNames,
-      dayNames          : Date.dayNames,
-      nextText          : 'Következő hónap (Control+Jobbra)',
-      prevText          : 'Előző hónap (Control+Balra)',
-      monthYearText     : 'Hónaőválasztás (Control+Fel/Le: év választás)',
-      todayTip          : "{0} (Szóköz)",
-      format            : "y.m.d",
-      startDay          : 1
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Oldal",
-      afterPageText  : "a {0}-ból/ből",
-      firstText      : "Első oldal",
-      prevText       : "Előző oldal",
-      nextText       : "Következő",
-      lastText       : "Utolsó oldal",
-      refreshText    : "Frissít",
-      displayMsg     : "{0} - {1} a {2}-ból/ből",
-      emptyMsg       : 'Nincs megjeleníthető adat'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "A mező hossza minimum {0}",
-      maxLengthText : "A mező hossza maximum {0}",
-      blankText     : "Kötelező mező",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "A mező minimum értéke {0} lehet",
-      maxText : "A mező maximum értéke {0} lehet",
-      nanText : "{0} nem értelmezhető számként"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Letiltva",
-      disabledDatesText : "Letiltva",
-      minText           : "A dátum későbbi kell legyen {0}-nál/nél",
-      maxText           : "A dátum korábbi kell legyen {0}-nál/nél",
-      invalidText       : "{0} nem valódi dátum - a mező formátuma: {1}",
-      format            : "y.m.d"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "Betöltés...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'A mező tartalma e-mail cím lehet, formátum: "user@domain.com"',
-      urlText      : 'A mező tartalma webcím lehet, formátum: "http:/'+'/www.domain.com"',
-      alphaText    : 'A mező csak betűket (a-z) és aláhúzás (_) karaktert tartalmazhat.',
-      alphanumText : 'A mező csak betűket (a-z), számokat (0-9) és aláhúzás (_) karaktert tartalmazhat'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Növekvő rendezés",
-      sortDescText : "Csökkenő rendezés",
-      lockText     : "Oszlop lezárás",
-      unlockText   : "Oszlop felengedés",
-      columnsText  : "Oszlopok"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Név",
-      valueText  : "Érték",
-      dateFormat : "Y m j"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Húzás: átméretezés",
-      collapsibleSplitTip : "Húzás: átméretezés, duplaklikk: eltüntetés."
-   });
-}
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-it.jss.html b/www/extras/extjs/docs/output/ext-lang-it.jss.html deleted file mode 100644 index d6fca0b96..000000000 --- a/www/extras/extjs/docs/output/ext-lang-it.jss.html +++ /dev/null @@ -1,169 +0,0 @@ -ext-lang-it.js

ext-lang-it.js

/*
- * Italian translation
- * By eric_void
- * 04-10-2007, 11:25 AM
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Caricamento in corso...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} righe selezionate";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Chiudi pannello";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "Valore del campo non valido";
-}
-
-Date.monthNames = [
-   "Gennaio",
-   "Febbraio",
-   "Marzo",
-   "Aprile",
-   "Maggio",
-   "Giugno",
-   "Luglio",
-   "Agosto",
-   "Settembre",
-   "Ottobre",
-   "Novembre",
-   "Dicembre"
-];
-
-Date.dayNames = [
-   "Domenica",
-   "Lunedi",
-   "Martedi",
-   "Mercoledi",
-   "Giovedi",
-   "Venerdi",
-   "Sabato"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "OK",
-      cancel : "Annulla",
-      yes    : "Si",
-      no     : "No"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "d/m/Y");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "Oggi",
-      minText           : "Data precedente alla data minima",
-      maxText           : "Data successiva alla data massima",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames	: Date.monthNames,
-      dayNames		: Date.dayNames,
-      nextText          : 'Mese successivo (Ctrl+Destra)',
-      prevText          : 'Mese precedente (Ctrl+Sinistra)',
-      monthYearText     : 'Scegli un mese (Ctrl+Su/Giu per cambiare anno)',
-      todayTip          : "{0} (Barra spaziatrice)",
-      format            : "d/m/y"
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Pagina",
-      afterPageText  : "di {0}",
-      firstText      : "Prima pagina",
-      prevText       : "Pagina precedente",
-      nextText       : "Pagina successiva",
-      lastText       : "Ultima pagina",
-      refreshText    : "Aggiorna",
-      displayMsg     : "Vista {0} - {1} di {2}",
-      emptyMsg       : 'Nessun dato da mostrare'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "La lunghezza minima del campo risulta {0}",
-      maxLengthText : "La lunghezza massima del campo risulta {0}",
-      blankText     : "Campo obbligatorio",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "Il valore minimo del campo risulta {0}",
-      maxText : "Il valore massimo del campo risulta {0}",
-      nanText : "{0} non &grave; un numero corretto"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Disabilitato",
-      disabledDatesText : "Disabilitato",
-      minText           : "La data del campo deve essere successiva a {0}",
-      maxText           : "La data del campo deve essere precedente a {0}",
-      invalidText       : "{0} non &grave; una data valida. Deve essere nel formato {1}",
-      format            : "d/m/y"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "Caricamento in corso...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Il campo deve essere un indirizzo e-mail nel formato "user@domain.com"',
-      urlText      : 'Il campo deve essere un indirizzo web nel formato "http:/'+'/www.domain.com"',
-      alphaText    : 'Il campo deve contenere solo lettere e _',
-      alphanumText : 'Il campo deve contenere solo lettere, numeri e _'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Ordinamento crescente",
-      sortDescText : "Ordinamento decrescente",
-      lockText     : "Blocca colonna",
-      unlockText   : "Sblocca colonna",
-      columnsText  : "Colonne"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Nome",
-      valueText  : "Valore",
-      dateFormat : "j/m/Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Trascina per cambiare dimensioni.",
-      collapsibleSplitTip : "Trascina per cambiare dimensioni. Doppio click per nascondere."
-   });
-}
-
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-ja.jss.html b/www/extras/extjs/docs/output/ext-lang-ja.jss.html deleted file mode 100644 index 629262657..000000000 --- a/www/extras/extjs/docs/output/ext-lang-ja.jss.html +++ /dev/null @@ -1,154 +0,0 @@ -ext-lang-ja.js

ext-lang-ja.js

/*
- * Japanese translation
- * By tyama
- * 04-08-2007, 05:49 AM
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">読ã¿è¾¼ã¿ä¸­...</div>';
-
-if(Ext.View){
-  Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-  Ext.grid.Grid.prototype.ddText = "{0} è¡Œé¸æŠž";
-}
-
-if(Ext.TabPanelItem){
-  Ext.TabPanelItem.prototype.closeText = "ã“ã®ã‚¿ãƒ–ã‚’é–‰ã˜ã‚‹";
-}
-
-if(Ext.form.Field){
-  Ext.form.Field.prototype.invalidText = "フィールドã®å€¤ãŒä¸æ­£ã§ã™ã€‚";
-}
-
-Date.monthNames = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月','11月','12月'];
-
-Date.dayNames = [
- "æ—¥",
- "月",
- "ç«",
- "æ°´",
- "木",
- "金",
- "土"];
-
-if(Ext.MessageBox){
-  Ext.MessageBox.buttonText = {
-    ok : "OK",
-    cancel : "キャンセル",
-    yes : "ã¯ã„",
-    no : "ã„ã„ãˆ"
-  };
-}
-
-if(Ext.util.Format){
-  Ext.util.Format.date = function(v, format){
-     if(!v) return "";
-     if(!(v instanceof Date)) v = new Date(Date.parse(v));
-     return v.dateFormat(format || "Y/m/d");
-  };
-}
-
-if(Ext.DatePicker){
-  Ext.apply(Ext.DatePicker.prototype, {
-     todayText         : "今日",
-     minText           : "é¸æŠžã—ãŸæ—¥ä»˜ã¯æœ€å°å€¤ä»¥ä¸‹ã§ã™ã€‚",
-     maxText           : "é¸æŠžã—ãŸæ—¥ä»˜ã¯æœ€å¤§å€¤ä»¥ä¸Šã§ã™ã€‚",
-     disabledDaysText  : "",
-     disabledDatesText : "",
-     monthNames	       : Date.monthNames,
-     dayNames	       : Date.dayNames,
-     nextText          : '次月㸠(コントロール+å³)',
-     prevText          : '剿œˆã¸ (コントロール+å·¦)',
-     monthYearText     : 'æœˆé¸æŠž (コントロール+上/下ã§å¹´ç§»å‹•)',
-     todayTip          : "{0} (スペースキー)",
-     format            : "Y/m/d"
-  });
-}
-
-if(Ext.PagingToolbar){
-  Ext.apply(Ext.PagingToolbar.prototype, {
-     beforePageText : "ページ",
-     afterPageText  : "/ {0}",
-     firstText      : "最åˆã®ãƒšãƒ¼ã‚¸",
-     prevText       : "å‰ã®ãƒšãƒ¼ã‚¸",
-     nextText       : "次ã®ãƒšãƒ¼ã‚¸",
-     lastText       : "最後ã®ãƒšãƒ¼ã‚¸",
-     refreshText    : "æ›´æ–°",
-     displayMsg     : "{2} 件中 {0} - {1} を表示",
-     emptyMsg       : '表示ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã›ã‚“。'
-  });
-}
-
-if(Ext.form.TextField){
-  Ext.apply(Ext.form.TextField.prototype, {
-     minLengthText : "ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®æœ€å°å€¤ã¯ {0} ã§ã™ã€‚",
-     maxLengthText : "ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®æœ€å¤§å€¤ã¯ {0} ã§ã™ã€‚",
-     blankText     : "必須項目ã§ã™ã€‚",
-     regexText     : "",
-     emptyText     : null
-  });
-}
-
-if(Ext.form.NumberField){
-  Ext.apply(Ext.form.NumberField.prototype, {
-     minText : "ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®æœ€å°å€¤ã¯ {0} ã§ã™ã€‚",
-     maxText : "ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®æœ€å¤§å€¤ã¯ {0} ã§ã™ã€‚",
-     nanText : "{0} ã¯æ•°å€¤ã§ã¯ã‚りã¾ã›ã‚“。"
-  });
-}
-
-if(Ext.form.DateField){
-  Ext.apply(Ext.form.DateField.prototype, {
-     disabledDaysText  : "無効",
-     disabledDatesText : "無効",
-     minText           : "ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®æ—¥ä»˜ã¯ã€ {0} 以é™ã®æ—¥ä»˜ã«è¨­å®šã—ã¦ãã ã•ã„。",
-     maxText           : "ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®æ—¥ä»˜ã¯ã€ {0} 以å‰ã®æ—¥ä»˜ã«è¨­å®šã—ã¦ãã ã•ã„。",
-     invalidText       : "{0} ã¯é–“é•ã£ãŸæ—¥ä»˜å…¥åŠ›ã§ã™ã€‚ - 入力形å¼ã¯ã€Œ{1}ã€ã§ã™ã€‚",
-     format            : "Y/m/d"
-  });
-}
-
-if(Ext.form.ComboBox){
-  Ext.apply(Ext.form.ComboBox.prototype, {
-     loadingText       : "読ã¿è¾¼ã¿ä¸­...",
-     valueNotFoundText : undefined
-  });
-}
-
-if(Ext.form.VTypes){
-  Ext.apply(Ext.form.VTypes, {
-     emailText    : 'メールアドレスを"user@domain.com"ã®å½¢å¼ã§å…¥åŠ›ã—ã¦ãã ã•ã„。',
-     urlText      : 'URLã‚’"http:/'+'/www.domain.com"ã®å½¢å¼ã§å…¥åŠ›ã—ã¦ãã ã•ã„。',
-     alphaText    : 'åŠè§’英字ã¨"_"ã®ã¿ã§ã™ã€‚',
-     alphanumText : 'åŠè§’英数ã¨"_"ã®ã¿ã§ã™ã€‚'
-  });
-}
-
-if(Ext.grid.GridView){
-  Ext.apply(Ext.grid.GridView.prototype, {
-     sortAscText  : "昇順",
-     sortDescText : "é™é †",
-     lockText     : "カラムロック",
-     unlockText   : "カラムロック解除",
-     columnsText  : "Columns"
-  });
-}
-
-if(Ext.grid.PropertyColumnModel){
-  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-     nameText   : "åç§°",
-     valueText  : "値",
-     dateFormat : "Y/m/d"
-  });
-}
-
-if(Ext.SplitLayoutRegion){
-  Ext.apply(Ext.SplitLayoutRegion.prototype, {
-     splitTip            : "ドラッグã™ã‚‹ã¨ãƒªã‚µã‚¤ã‚ºã§ãã¾ã™ã€‚",
-     collapsibleSplitTip : "ドラッグã§ãƒªã‚µã‚¤ã‚ºã€‚ ダブルクリックã§éš ã™ã€‚"
-  });
-}
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-lv.jss.html b/www/extras/extjs/docs/output/ext-lang-lv.jss.html deleted file mode 100644 index f47044a51..000000000 --- a/www/extras/extjs/docs/output/ext-lang-lv.jss.html +++ /dev/null @@ -1,171 +0,0 @@ -ext-lang-lv.js

ext-lang-lv.js

/**
- * Latvian Translations
- * By salix 17 April 2007
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Notiek ielÄde...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} iezīmētu rindu";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Aizver šo zīmni";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "VÄ“rtÄ«ba Å¡ajÄ laukÄ nav pareiza";
-}
-
-if(Ext.LoadMask){
-    Ext.LoadMask.prototype.msg = "IelÄdÄ“...";
-}
-
-Date.monthNames = [
-   "JanvÄris",
-   "FebruÄris",
-   "Marts",
-   "Aprīlis",
-   "Maijs",
-   "Jūnijs",
-   "Jūlijs",
-   "Augusts",
-   "Septembris",
-   "Oktobris",
-   "Novembris",
-   "Decembris"
-];
-
-Date.dayNames = [
-   "Svētdiena",
-   "Pirmdiena",
-   "Otrdiena",
-   "Trešdiena",
-   "Ceturtdiena",
-   "Piektdiena",
-   "Sestdiena"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "Labi",
-      cancel : "Atcelt",
-      yes    : "JÄ",
-      no     : "NÄ“"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "d.m.Y");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "Å odiena",
-      minText           : "NorÄdÄ«tais datums ir mazÄks par minimÄlo datumu",
-      maxText           : "NorÄdÄ«tais datums ir lielÄks par maksimÄlo datumu",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames	: Date.monthNames,
-      dayNames		: Date.dayNames,
-      nextText          : 'NÄkamais mÄ“nesis (Control+pa labi)',
-      prevText          : 'Iepriekšējais mēnesis (Control+pa kreisi)',
-      monthYearText     : 'MÄ“neÅ¡a izvÄ“le (Control+uz augÅ¡u/uz leju lai pÄrslÄ“gtu gadus)',
-      todayTip          : "{0} (Tukšumzīme)",
-      format            : "d.m.Y",
-      startDay          : 1
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Lapa",
-      afterPageText  : "no {0}",
-      firstText      : "PirmÄ lapa",
-      prevText       : "iepriekšējÄ lapa",
-      nextText       : "NÄkamÄ lapa",
-      lastText       : "PÄ“dÄ“jÄ lapa",
-      refreshText    : "AtsvaidzinÄt",
-      displayMsg     : "RÄda no {0} lÄ«dz {1} ierakstiem, kopÄ {2}",
-      emptyMsg       : 'Nav datu, ko parÄdÄ«t'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "MinimÄlais garums Å¡im laukam ir {0}",
-      maxLengthText : "MaksimÄlais garums Å¡im laukam ir {0}",
-      blankText     : "Å is ir obligÄts lauks",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "MinimÄlais garums Å¡im laukam ir  {0}",
-      maxText : "MaksimÄlais garums Å¡im laukam ir  {0}",
-      nanText : "{0} nav pareizs skaitlis"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Atspējots",
-      disabledDatesText : "Atspējots",
-      minText           : "Datumam Å¡ajÄ laukÄ jÄbÅ«t lielÄkam kÄ {0}",
-      maxText           : "Datumam Å¡ajÄ laukÄ jÄbÅ«t mazÄkam kÄ {0}",
-      invalidText       : "{0} nav pareizs datums - tam jÄbÅ«t Å¡ÄdÄ formÄtÄ: {1}",
-      format            : "d.m.Y"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "IelÄdÄ“...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Å ajÄ laukÄ jÄieraksta e-pasta adrese formÄtÄ "lietotÄs@domÄ“ns.lv"',
-      urlText      : 'Å ajÄ laukÄ jÄieraksta URL formÄtÄ "http:/'+'/www.domÄ“ns.lv"',
-      alphaText    : 'Šis lauks drīkst saturēt tikai burtus un _ zīmi',
-      alphanumText : 'Šis lauks drīkst saturēt tikai burtus, ciparus un _ zīmi'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "KÄrtot pieaugoÅ¡Ä secÄ«bÄ",
-      sortDescText : "KÄrtot dilstoÅ¡Ä secÄ«bÄ",
-      lockText     : "Noslēgt kolonnu",
-      unlockText   : "Atslēgt kolonnu",
-      columnsText  : "Kolonnas"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Nosaukums",
-      valueText  : "Vērtība",
-      dateFormat : "j.m.Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Velc, lai mainītu izmēru.",
-      collapsibleSplitTip : "Velc, lai mainītu izmēru. Dubultklikšķis noslēpj apgabalu."
-   });
-}

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-mk.jss.html b/www/extras/extjs/docs/output/ext-lang-mk.jss.html deleted file mode 100644 index 475226cf8..000000000 --- a/www/extras/extjs/docs/output/ext-lang-mk.jss.html +++ /dev/null @@ -1,171 +0,0 @@ -ext-lang-mk.js

ext-lang-mk.js

/*
- * Macedonia translation
- * By PetarD petar.dimitrijevic@vorteksed.com.mk (utf8 encoding)
- * 23 April 2007
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Вчитувам...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} избрани редици";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Затвори tab";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "ВредноÑта во ова поле е невалидна";
-}
-
-if(Ext.LoadMask){
-    Ext.LoadMask.prototype.msg = "Вчитувам...";
-}
-
-Date.monthNames = [
-   "Јануари",
-   "Февруари",
-   "Март",
-   "Ðприл",
-   "Мај",
-   "Јуни",
-   "Јули",
-   "ÐвгуÑÑ‚",
-   "Септември",
-   "Октомври",
-   "Ðоември",
-   "Декември"
-];
-
-Date.dayNames = [
-   "Ðедела",
-   "Понеделник",
-   "Вторник",
-   "Среда",
-   "Четврток",
-   "Петок",
-   "Сабота"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "Потврди",
-      cancel : "Поништи",
-      yes    : "Да",
-      no     : "Ðе"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "d.m.y");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "ДенеÑка",
-      minText           : "Овој датум е пред најмалиот датум",
-      maxText           : "Овој датум е пред најголемиот датум",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames	: Date.monthNames,
-      dayNames		: Date.dayNames,
-      nextText          : 'Следен меÑец (Control+Стрелка деÑно)',
-      prevText          : 'Претходен меÑец (Control+Стрелка лево)',
-      monthYearText     : 'Изберете меÑец (Control+Стрелка горе/Стрелка деÑно за менување година)',
-      todayTip          : "{0} (Spacebar)",
-      format            : "d.m.y"
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Страница",
-      afterPageText  : "од {0}",
-      firstText      : "Прва Страница",
-      prevText       : "Претходна Страница",
-      nextText       : "Следна Страница",
-      lastText       : "ПоÑледна Страница",
-      refreshText    : "ОÑвежи",
-      displayMsg     : "Прикажувам {0} - {1} од {2}",
-      emptyMsg       : 'Ðема податоци за приказ'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "Минималната должина за ова поле е {0}",
-      maxLengthText : "МакÑималната должина за ова поле е {0}",
-      blankText     : "Податоците во ова поле Ñе потребни",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "Минималната вредноÑÑ‚ за ова поле е {0}",
-      maxText : "МакÑималната вредноÑÑ‚ за ова поле е {0}",
-      nanText : "{0} не е валиден број"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Ðеактивно",
-      disabledDatesText : "Ðеактивно",
-      minText           : "Датумот во ова поле мора да биде пред {0}",
-      maxText           : "Датумот во ова поле мора да биде по {0}",
-      invalidText       : "{0} не е валиден датум - мора да биде во формат {1}",
-      format            : "d.m.y"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "Вчитувам...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Ова поле треба да биде e-mail адреÑа во формат "user@domain.com"',
-      urlText      : 'Ова поле треба да биде URL во формат "http:/'+'/www.domain.com"',
-      alphaText    : 'Ова поле треба да Ñодржи Ñамо букви и _',
-      alphanumText : 'Ова поле треба да Ñодржи Ñамо букви, бројки и _'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Сортирај РаÑтечки",
-      sortDescText : "Сортирај Опаѓачки",
-      lockText     : "Заклучи Колона",
-      unlockText   : "Отклучи колона",
-      columnsText  : "Колони"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Име",
-      valueText  : "ВредноÑÑ‚",
-      dateFormat : "m.d.Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Повлечете за менување на големината.",
-      collapsibleSplitTip : "Повлечете за менување на големината. Дупли клик за криење."
-   });
-}

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-nl.jss.html b/www/extras/extjs/docs/output/ext-lang-nl.jss.html deleted file mode 100644 index a2aa7348e..000000000 --- a/www/extras/extjs/docs/output/ext-lang-nl.jss.html +++ /dev/null @@ -1,179 +0,0 @@ -ext-lang-nl.js

ext-lang-nl.js

/*
- * List compiled by mystix on the extjs.com forums.
- * Thank you Mystix!
- *
- * Dutch Translations
- * by Bas van Oostveen (04 April 2007)
- */
-// holder
-/** Ext Core translations */
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Bezig met laden...</div>';
-
-/* Ext single string translations */
-if(Ext.View){
-    Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-    Ext.grid.Grid.prototype.ddText = "{0} geselecteerde rij(en)";
-}
-
-if(Ext.TabPanelItem){
-    Ext.TabPanelItem.prototype.closeText = "Sluit dit tabblad";
-}
-
-if(Ext.form.Field){
-    Ext.form.Field.prototype.invalidText = "De waarde in dit veld is onjuist";
-}
-
-if(Ext.LoadMask){
-    Ext.LoadMask.prototype.msg = "Bezig met laden...";
-}
-
-/* Javascript month and days translations */
-Date.monthNames = [
-   "Januari",
-   "Februari",
-   "Maart",
-   "April",
-   "Mei",
-   "Juni",
-   "Juli",
-   "Augustus",
-   "September",
-   "Oktober",
-   "November",
-   "December"
-];
-
-Date.dayNames = [
-   "Zondag",
-   "Maandag",
-   "Dinsdag",
-   "Woensdag",
-   "Donderdag",
-   "Vrijdag",
-   "Zaterdag"
-];
-
-/* Ext components translations */
-if(Ext.MessageBox){
-    Ext.MessageBox.buttonText = {
-       ok     : "OK",
-       cancel : "Annuleren",
-       yes    : "Ja",
-       no     : "Nee"
-    };
-}
-
-if(Ext.util.Format){
-    Ext.util.Format.date = function(v, format){
-       if(!v) return "";
-       if(!(v instanceof Date)) v = new Date(Date.parse(v));
-       return v.dateFormat(format || "y/m/d");
-    };
-}
-
-if(Ext.DatePicker){
-    Ext.apply(Ext.DatePicker.prototype, {
-       todayText         : "Vandaag",
-       minText           : "Deze datum is eerder dan de minimum datum",
-       maxText           : "Deze datum is later dan de maximum datum",
-       disabledDaysText  : "",
-       disabledDatesText : "",
-       monthNames	 : Date.monthNames,
-       dayNames		 : Date.dayNames,
-       nextText          : 'Volgende Maand (Control+Rechts)',
-       prevText          : 'Vorige Maand (Control+Links)',
-       monthYearText     : 'Kies een maand (Control+Omhoog/Beneden volgend/vorige jaar)',
-       todayTip          : "{0} (Spatie)",
-       format            : "d/m/y",
-       startDay          : 1
-    });
-}
-
-if(Ext.PagingToolbar){
-    Ext.apply(Ext.PagingToolbar.prototype, {
-       beforePageText : "Pagina",
-       afterPageText  : "van {0}",
-       firstText      : "Eerste Pagina",
-       prevText       : "Vorige Pagina",
-       nextText       : "Volgende Pagina",
-       lastText       : "Laatste Pagina",
-       refreshText    : "Ververs",
-       displayMsg     : "Getoond {0} - {1} of {2}",
-       emptyMsg       : 'Geen gegeven om weer te geven'
-    });
-}
-
-if(Ext.form.TextField){
-    Ext.apply(Ext.form.TextField.prototype, {
-       minLengthText : "De minimale lengte voor dit veld is {0}",
-       maxLengthText : "De maximale lengte voor dit veld is {0}",
-       blankText     : "Dit veld is verplicht",
-       regexText     : "",
-       emptyText     : null
-    });
-}
-
-if(Ext.form.NumberField){
-    Ext.apply(Ext.form.NumberField.prototype, {
-       minText : "De minimale lengte voor dit veld is {0}",
-       maxText : "De maximale lengte voor dit veld is {0}",
-       nanText : "{0} is geen geldig getal"
-    });
-}
-
-if(Ext.form.DateField){
-    Ext.apply(Ext.form.DateField.prototype, {
-       disabledDaysText  : "Uitgeschakeld",
-       disabledDatesText : "Uitgeschakeld",
-       minText           : "De datum in dit veld moet na {0} liggen",
-       maxText           : "De datum in dit veld moet voor {0} liggen",
-       invalidText       : "{0} is geen geldige datum - formaat voor datum is {1}",
-       format            : "d/m/y"
-    });
-}
-
-if(Ext.form.ComboBox){
-    Ext.apply(Ext.form.ComboBox.prototype, {
-       loadingText       : "Bezig met laden...",
-       valueNotFoundText : undefined
-    });
-}
-
-if(Ext.form.VTypes){
-    Ext.apply(Ext.form.VTypes, {
-       emailText    : 'Dit veld moet een e-mail adres in het formaat "gebruiker@domein.nl"',
-       urlText      : 'Dit veld moet een URL zijn in het formaat "http:/'+'/www.domein.nl"',
-       alphaText    : 'Dit veld mag alleen letters en _ bevatten',
-       alphanumText : 'Dit veld mag alleen letters, cijfers en _ bevatten'
-    });
-}
-
-if(Ext.grid.GridView){
-    Ext.apply(Ext.grid.GridView.prototype, {
-       sortAscText  : "Sorteer Oplopend",
-       sortDescText : "Sorteer Aflopend",
-       lockText     : "Kolom Vastzetten",
-       unlockText   : "Kolom Vrijgeven",
-       columnsText  : "Kolommen"
-    });
-}
-
-if(Ext.grid.PropertyColumnModel){
-    Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-       nameText   : "Naam",
-       valueText  : "Waarde",
-       dateFormat : "Y/m/j"
-    });
-}
-
-if(Ext.SplitLayoutRegion){
-    Ext.apply(Ext.SplitLayoutRegion.prototype, {
-       splitTip            : "Sleep om grote aan te passen.",
-       collapsibleSplitTip : "Sleep om grote aan te passen. Dubbel klikken om te verbergen."
-    });
-}
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-no.jss.html b/www/extras/extjs/docs/output/ext-lang-no.jss.html deleted file mode 100644 index 103af84fd..000000000 --- a/www/extras/extjs/docs/output/ext-lang-no.jss.html +++ /dev/null @@ -1,166 +0,0 @@ -ext-lang-no.js

ext-lang-no.js

/*
- * Norwegian translation
- * By grEvenX 16-April-2007
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Laster...</div>';
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} markerte rader";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Lukk denne fanen";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "Verdien i dette felter er ugyldig";
-}
-
-if(Ext.LoadMask){
-    Ext.LoadMask.prototype.msg = "Laster...";
-}
-
-Date.monthNames = [
-   "Januar",
-   "Februar",
-   "Mars",
-   "April",
-   "Mai",
-   "Juni",
-   "Juli",
-   "August",
-   "September",
-   "Oktober",
-   "November",
-   "Desember"
-];
-
-Date.dayNames = [
-   "Søndag",
-   "Mandag",
-   "Tirsdag",
-   "Onsdag",
-   "Torsdag",
-   "Fredag",
-   "Lørdag"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "OK",
-      cancel : "Avbryt",
-      yes    : "Ja",
-      no     : "Nei"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "d/m/Y");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "I dag",
-      minText           : "Denne datoen er tidligere enn den tidligste tillatte",
-      maxText           : "Denne datoen er senere enn den seneste tillatte",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames	: Date.monthNames,
-      dayNames		: Date.dayNames,
-      nextText          : 'Neste måned (Control+Pil Høyre)',
-      prevText          : 'Forrige måned (Control+Pil Venstre)',
-      monthYearText     : 'Velg en måned (Control+Pil Opp/Ned for å skifte år)',
-      todayTip          : "{0} (mellomrom)",
-      format            : "d/m/y"
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Side",
-      afterPageText  : "av {0}",
-      firstText      : "Første side",
-      prevText       : "Forrige side",
-      nextText       : "Neste side",
-      lastText       : "Siste side",
-      refreshText    : "Oppdater",
-      displayMsg     : "Viser {0} - {1} of {2}",
-      emptyMsg       : 'Ingen data å vise'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "Den minste lengden for dette feltet er {0}",
-      maxLengthText : "Den største lengden for dette feltet er {0}",
-      blankText     : "Dette feltet er påkrevd",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "Den minste verdien for dette feltet er {0}",
-      maxText : "Den største verdien for dette feltet er {0}",
-      nanText : "{0} er ikke et gyldig nummer"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Deaktivert",
-      disabledDatesText : "Deaktivert",
-      minText           : "Datoen i dette feltet må være etter {0}",
-      maxText           : "Datoen i dette feltet må være før {0}",
-      invalidText       : "{0} is not a valid date - it must be in the format {1}",
-      format            : "m/d/y"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "Laster...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Dette feltet skal være en epost adresse i formatet "user@domain.com"',
-      urlText      : 'Dette feltet skal være en link (URL) i formatet "http:/'+'/www.domain.com"',
-      alphaText    : 'Dette feltet skal kun inneholde bokstaver og _',
-      alphanumText : 'Dette feltet skal kun inneholde bokstaver, tall og _'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Sorter stigende",
-      sortDescText : "Sorter synkende",
-      lockText     : "LÃ¥s kolonne",
-      unlockText   : "LÃ¥s opp kolonne",
-      columnsText  : "Kolonner"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Navn",
-      valueText  : "Verdi",
-      dateFormat : "d/m/Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Dra for å endre størrelse.",
-      collapsibleSplitTip : "Dra for å endre størrelse, dobbelklikk for å skjule."
-   });
-}

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-pl.jss.html b/www/extras/extjs/docs/output/ext-lang-pl.jss.html deleted file mode 100644 index 37552faaf..000000000 --- a/www/extras/extjs/docs/output/ext-lang-pl.jss.html +++ /dev/null @@ -1,173 +0,0 @@ -ext-lang-pl.js

ext-lang-pl.js

/**
- * Polish Translations
- * By vbert 17-April-2007
- * Encoding: utf-8
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Wczytywanie danych...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} wybrano wiersze(y)";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Zamknij zakładkę";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "Wartość tego pola jest niewłaściwa";
-}
-
-if(Ext.LoadMask){
-    Ext.LoadMask.prototype.msg = "Wczytywanie danych...";
-}
-
-Date.monthNames = [
-    "Styczeń",
-    "Luty",
-    "Marzec",
-    "Kwiecień",
-    "Maj",
-    "Czerwiec",
-    "Lipiec",
-    "Sierpień",
-    "Wrzesień",
-    "Październik",
-    "Listopad",
-    "Grudzień"
-];
-
-Date.dayNames = [
-    "Niedziela",
-    "Poniedziałek",
-    "Wtorek",
-    "Åšroda",
-    "Czwartek",
-    "PiÄ…tek",
-    "Sobota"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "OK",
-      cancel : "Anuluj",
-      yes    : "Tak",
-      no     : "Nie"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "Y-m-d");
-   };
-}
-
-if(Ext.DatePicker){
-	Ext.apply(Ext.DatePicker.prototype, {
-		startDay			: 1,
-		todayText			: "Dzisiaj",
-		minText				: "Data jest wcześniejsza od daty minimalnej",
-		maxText				: "Data jest późniejsza od daty maksymalnej",
-		disabledDaysText	: "",
-		disabledDatesText	: "",
-		monthNames			: Date.monthNames,
-		dayNames			: Date.dayNames,
-		nextText			: "Następny miesiąc (Control+StrzałkaWPrawo)",
-		prevText			: "Poprzedni miesiąc (Control+StrzałkaWLewo)",
-		monthYearText		: "Wybierz miesiąc (Control+Up/Down aby zmienić rok)",
-		todayTip			: "{0} (Spacja)",
-		format				: "Y-m-d"
-	});
-}
-
-if(Ext.PagingToolbar){
-	Ext.apply(Ext.PagingToolbar.prototype, {
-		beforePageText	: "Strona",
-		afterPageText	: "z {0}",
-		firstText		: "Pierwsza strona",
-	    prevText		: "Poprzednia strona",
-		nextText		: "Następna strona",
-	    lastText		: "Ostatnia strona",
-		refreshText		: "Odśwież",
-	    displayMsg		: "Wyświetlono {0} - {1} z {2}",
-		emptyMsg		: "Brak danych do wyświetlenia"
-	});
-}
-
-if(Ext.form.TextField){
-	Ext.apply(Ext.form.TextField.prototype, {
-	    minLengthText	: "Minimalna ilość znaków dla tego pola to {0}",
-		maxLengthText	: "Maksymalna ilość znaków dla tego pola to {0}",
-	    blankText		: "To pole jest wymagane",
-		regexText		: "",
-	    emptyText		: null
-	});
-}
-
-if(Ext.form.NumberField){
-	Ext.apply(Ext.form.NumberField.prototype, {
-	    minText	: "Minimalna wartość dla tego pola to {0}",
-	    maxText	: "Maksymalna wartość dla tego pola to {0}",
-		nanText	: "{0} to nie jest właściwa wartość"
-	});
-}
-
-if(Ext.form.DateField){
-	Ext.apply(Ext.form.DateField.prototype, {
-	    disabledDaysText	: "Wyłączony",
-	    disabledDatesText	: "Wyłączony",
-		minText				: "Data w tym polu musi być późniejsza od {0}",
-	    maxText				: "Data w tym polu musi być wcześniejsza od {0}",
-		invalidText			: "{0} to nie jest prawidłowa data - prawidłowy format daty {1}",
-	    format				: "Y-m-d"
-	});
-}
-
-if(Ext.form.ComboBox){
-	Ext.apply(Ext.form.ComboBox.prototype, {
-		loadingText       : "WczytujÄ™...",
-		valueNotFoundText : undefined
-	});
-}
-
-if(Ext.form.VTypes){
-	Ext.apply(Ext.form.VTypes, {
-	    emailText		: 'To pole wymaga podania adresu e-mail w formacie: "nazwa@domena.pl"',
-	    urlText			: 'To pole wymaga podania adresu strony www w formacie: "http:/'+'/www.domena.pl"',
-		alphaText		: 'To pole wymaga podania tylko liter i _',
-		alphanumText	: 'To pole wymaga podania tylko liter, cyfr i _'
-	});
-}
-
-if(Ext.grid.GridView){
-	Ext.apply(Ext.grid.GridView.prototype, {
-	    sortAscText		: "Sortuj rosnÄ…co",
-	    sortDescText	: "Sortuj malejÄ…co",
-		lockText		: "Zablokuj kolumnÄ™",
-	    unlockText		: "Odblokuj kolumnÄ™",
-		columnsText		: "Kolumny"
-	});
-}
-
-if(Ext.grid.PropertyColumnModel){
-	Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-	    nameText	: "Nazwa",
-	    valueText	: "Wartość",
-		dateFormat	: "Y-m-d"
-	});
-}
-
-if(Ext.SplitLayoutRegion){
-	Ext.apply(Ext.SplitLayoutRegion.prototype, {
-	    splitTip			: "Przeciągnij aby zmienić rozmiar.",
-		collapsibleSplitTip	: "Przeciągnij aby zmienić rozmiar. Kliknij dwukrotnie aby ukryć."
-	});
-}
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-pt_br.jss.html b/www/extras/extjs/docs/output/ext-lang-pt_br.jss.html deleted file mode 100644 index 46b387553..000000000 --- a/www/extras/extjs/docs/output/ext-lang-pt_br.jss.html +++ /dev/null @@ -1,167 +0,0 @@ -ext-lang-pt_br.js

ext-lang-pt_br.js

/*
- * Portuguese/Brazil Translation by Weber Souza
- * 08 April 2007
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Carregando...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} linha(s) selecionada(s)";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Fechar Região";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "O valor para este campo é inválido";
-}
-
-Date.monthNames = [
-   "Janeiro",
-   "Fevereiro",
-   "Março",
-   "Abril",
-   "Maio",
-   "Junho",
-   "Julho",
-   "Agosto",
-   "Setembro",
-   "Outubro",
-   "Novembro",
-   "Dezembro"
-];
-
-Date.dayNames = [
-   "Domingo",
-   "Segunda",
-   "Terça",
-   "Quarta",
-   "Quinta",
-   "Sexta",
-   "Sábado"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "OK",
-      cancel : "Cancelar",
-      yes    : "Sim",
-      no     : "Não"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "m/d/Y");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "Hoje",
-      minText           : "Esta data é anterior a menor data",
-      maxText           : "Esta data é posterior a maior data",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames        : Date.monthNames,
-      dayNames          : Date.dayNames,
-      nextText          : 'Próximo Mês (Control+Direito)',
-      prevText          : 'Previous Month (Control+Esquerdo)',
-      monthYearText     : 'Choose a month (Control+Cima/Baixo para mover entre os anos)',
-      todayTip          : "{0} (Espaço)",
-      format            : "m/d/y"
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Página",
-      afterPageText  : "de {0}",
-      firstText      : "Primeira Página",
-      prevText       : "Página Anterior",
-      nextText       : "Próxima Página",
-      lastText       : "Última Página",
-      refreshText    : "Atualizar Listagem",
-      displayMsg     : "<b>{0} a {1} de {2} registro(s)</b>",
-      emptyMsg       : 'Sem registros para exibir'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "O tamanho mínimo permitido para este campo é {0}",
-      maxLengthText : "O tamanho máximo para este campo é {0}",
-      blankText     : "Este campo é obrigatório, favor preencher.",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "O valor mínimo para este campo é {0}",
-      maxText : "O valor máximo para este campo é {0}",
-      nanText : "{0} não é um número válido"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Desabilitado",
-      disabledDatesText : "Desabilitado",
-      minText           : "A data deste campo deve ser posterior a {0}",
-      maxText           : "A data deste campo deve ser anterior a {0}",
-      invalidText       : "{0} não é uma data válida - deve ser informado no formato {1}",
-      format            : "m/d/y"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "Carregando...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Este campo deve ser um endereço de e-mail válido no formado "usuario@dominio.com"',
-      urlText      : 'Este campo deve ser uma URL no formato "http:/'+'/www.dominio.com"',
-      alphaText    : 'Este campo deve conter apenas letras e _',
-      alphanumText : 'Este campo devve conter apenas letras, números e _'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Ordenar Ascendente",
-      sortDescText : "Ordenar Descendente",
-      lockText     : "Bloquear Coluna",
-      unlockText   : "Desbloquear Coluna",
-      columnsText  : "Colunas"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Nome",
-      valueText  : "Valor",
-      dateFormat : "m/j/Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Arraste para redimencionar.",
-      collapsibleSplitTip : "Arraste para redimencionar. Duplo clique para esconder."
-   });
-}
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-ro.jss.html b/www/extras/extjs/docs/output/ext-lang-ro.jss.html deleted file mode 100644 index d536df4c0..000000000 --- a/www/extras/extjs/docs/output/ext-lang-ro.jss.html +++ /dev/null @@ -1,170 +0,0 @@ -ext-lang-ro.js

ext-lang-ro.js

/**
- * Translation by Lucian Lature 04-24-2007
- * Romanian Translations
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Încărcare...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} rând(uri) selectate";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "ÃŽnchide acest tab";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "Valoarea acestui câmp este invalidă";
-}
-
-if(Ext.LoadMask){
-    Ext.LoadMask.prototype.msg = "Încărcare...";
-}
-
-Date.monthNames = [
-   "Ianuarie",
-   "Februarie",
-   "Martie",
-   "Aprilie",
-   "Mai",
-   "Iunie",
-   "Iulie",
-   "August",
-   "Septembrie",
-   "Octombrie",
-   "Noiembrie",
-   "Decembrie"
-];
-
-Date.dayNames = [
-   "Duminică",
-   "Luni",
-   "Marţi",
-   "Miercuri",
-   "Joi",
-   "Vineri",
-   "Sâmbătă"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "OK",
-      cancel : "Renunţă",
-      yes    : "Da",
-      no     : "Nu"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "d-m-Y");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "Astăzi",
-      minText           : "Această zi este înaintea datei de început",
-      maxText           : "Această zi este după ultimul termen",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames	: Date.monthNames,
-      dayNames		: Date.dayNames,
-      nextText          : 'Următoarea lună (Control+Right)',
-      prevText          : 'Luna anterioară (Control+Left)',
-      monthYearText     : 'Alege o lună (Control+Up/Down pentru a parcurge anii)',
-      todayTip          : "{0} (Spacebar)",
-      format            : "d-m-y"
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Pagina",
-      afterPageText  : "din {0}",
-      firstText      : "Prima pagină",
-      prevText       : "Pagina precedentă",
-      nextText       : "Următoarea pagină",
-      lastText       : "Ultima pagină",
-      refreshText    : "Reîmprospătare",
-      displayMsg     : "Afişează {0} - {1} din {2}",
-      emptyMsg       : 'Nu sunt date de afiÅŸat'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "Lungimea minimă pentru acest câmp este de {0}",
-      maxLengthText : "Lungimea maximă pentru acest câmp este {0}",
-      blankText     : "Acest câmp este obligatoriu",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "Valoarea minimă permisă a acestui câmp este {0}",
-      maxText : "Valaorea maximă permisă a acestui câmp este {0}",
-      nanText : "{0} nu este un număr valid"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Inactiv",
-      disabledDatesText : "Inactiv",
-      minText           : "Data acestui câmp trebuie să fie după {0}",
-      maxText           : "Data acestui câmp trebuie sa fie înainte de {0}",
-      invalidText       : "{0} nu este o dată validă - trebuie să fie în formatul {1}",
-      format            : "d-m-y"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "Încărcare...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Acest câmp trebuie să conţină o adresă de e-mail în formatul "user@domain.com"',
-      urlText      : 'Acest câmp trebuie să conţină o adresă URL în formatul "http:/'+'/www.domain.com"',
-      alphaText    : 'Acest câmp trebuie să conţină doar litere şi _',
-      alphanumText : 'Acest câmp trebuie să conţină doar litere, cifre şi _'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Sortare ascendentă",
-      sortDescText : "Sortare descendentă",
-      lockText     : "Blochează coloana",
-      unlockText   : "Deblochează coloana",
-      columnsText  : "Coloane"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Nume",
-      valueText  : "Valoare",
-      dateFormat : "m/j/Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Trage pentru redimensionare.",
-      collapsibleSplitTip : "Trage pentru redimensionare. Dublu-click pentru ascundere."
-   });
-}

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-ru.jss.html b/www/extras/extjs/docs/output/ext-lang-ru.jss.html deleted file mode 100644 index 6010cca9a..000000000 --- a/www/extras/extjs/docs/output/ext-lang-ru.jss.html +++ /dev/null @@ -1,169 +0,0 @@ -ext-lang-ru.js

ext-lang-ru.js

/*
- * Russian translation
- * By Arikon (utf-8 encoding)
- * 08 April 2007
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Идет загрузка...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} выбранных Ñтрок";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Закрыть Ñту вкладку";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "Значение в Ñтом поле неверное";
-}
-
-Date.monthNames = [
-   "Январь",
-   "Февраль",
-   "Март",
-   "Ðпрель",
-   "Май",
-   "Июнь",
-   "Июль",
-   "ÐвгуÑÑ‚",
-   "СентÑбрь",
-   "ОктÑбрь",
-   "ÐоÑбрь",
-   "Декабрь"
-];
-
-Date.dayNames = [
-   "ВоÑкреÑенье",
-   "Понедельник",
-   "Вторник",
-   "Среда",
-   "Четверг",
-   "ПÑтница",
-   "Суббота"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "OK",
-      cancel : "Отмена",
-      yes    : "Да",
-      no     : "Ðет"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "d.m.Y");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "СегоднÑ",
-      minText           : "Эта дата раньше минимальной даты",
-      maxText           : "Эта дата позже макÑимальной даты",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames        : Date.monthNames,
-      dayNames	        : Date.dayNames,
-      nextText          : 'Следующий меÑÑц (Control+Вправо)',
-      prevText          : 'Предыдущий меÑÑц (Control+Влево)',
-      monthYearText     : 'Выбор меÑÑца (Control+Вверх/Вниз Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° года)',
-      todayTip          : "{0} (Пробел)",
-      format            : "d.m.y",
-      startDay          : 1
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Страница",
-      afterPageText  : "из {0}",
-      firstText      : "ÐŸÐµÑ€Ð²Ð°Ñ Ñтраница",
-      prevText       : "ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ñтраница",
-      nextText       : "Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ñтраница",
-      lastText       : "ПоÑледнÑÑ Ñтраница",
-      refreshText    : "Обновить",
-      displayMsg     : "ОтображаютÑÑ Ð·Ð°Ð¿Ð¸Ñи Ñ {0} по {1}, вÑего {2}",
-      emptyMsg       : 'Ðет данных Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° Ñтого Ð¿Ð¾Ð»Ñ {0}",
-      maxLengthText : "МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° Ñтого Ð¿Ð¾Ð»Ñ {0}",
-      blankText     : "Это поле обÑзательно Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "Значение Ñтого Ð¿Ð¾Ð»Ñ Ð½Ðµ может быть меньше {0}",
-      maxText : "Значение Ñтого Ð¿Ð¾Ð»Ñ Ð½Ðµ может быть больше {0}",
-      nanText : "{0} не ÑвлÑетÑÑ Ñ‡Ð¸Ñлом"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Ðе доÑтупно",
-      disabledDatesText : "Ðе доÑтупно",
-      minText           : "Дата в Ñтом поле должна быть позде {0}",
-      maxText           : "Дата в Ñтом поле должна быть раньше {0}",
-      invalidText       : "{0} не ÑвлÑетÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾Ð¹ датой - дата должна быть указана в формате {1}",
-      format            : "d.m.y"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "Загрузка...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Это поле должно Ñодержать Ð°Ð´Ñ€ÐµÑ Ñлектронной почты в формате "user@domain.com"',
-      urlText      : 'Это поле должно Ñодержать URL в формате "http:/'+'/www.domain.com"',
-      alphaText    : 'Это поле должно Ñодержать только латинÑкие буквы и Ñимвол Ð¿Ð¾Ð´Ñ‡ÐµÑ€ÐºÐ¸Ð²Ð°Ð½Ð¸Ñ "_"',
-      alphanumText : 'Это поле должно Ñодержать только латинÑкие буквы, цифры и Ñимвол Ð¿Ð¾Ð´Ñ‡ÐµÑ€ÐºÐ¸Ð²Ð°Ð½Ð¸Ñ "_"'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Сортировать по возраÑтанию",
-      sortDescText : "Сортировать по убыванию",
-      lockText     : "Закрепить Ñтолбец",
-      unlockText   : "СнÑть закрепление Ñтолбца",
-      columnsText  : "Столбцы"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Ðазвание",
-      valueText  : "Значение",
-      dateFormat : "j.m.Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "ТÑните Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð°.",
-      collapsibleSplitTip : "ТÑните Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð°. Двойной щелчок ÑпрÑчет панель."
-   });
-}
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-sk.jss.html b/www/extras/extjs/docs/output/ext-lang-sk.jss.html deleted file mode 100644 index 1a47c247d..000000000 --- a/www/extras/extjs/docs/output/ext-lang-sk.jss.html +++ /dev/null @@ -1,174 +0,0 @@ -ext-lang-sk.js

ext-lang-sk.js

/**
- * List compiled by mystix on the extjs.com forums.
- * Thank you Mystix!
- */
-// holder
-/**  Translation to Slovak by Michal Thomka
-  *  14 April 2007
-  */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Nahrávam...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} oznaèených riadkov";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Zavrie túto záložku";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "Hodnota v tomto poli je nesprávna";
-}
-
-Date.monthNames = [
-   "Január",
-   "Február",
-   "Marec",
-   "Apríl",
-   "Máj",
-   "Jún",
-   "Júl",
-   "August",
-   "September",
-   "Október",
-   "November",
-   "December"
-];
-
-Date.dayNames = [
-   "Nede¾a",
-   "Pondelok",
-   "Utorok",
-   "Streda",
-   "Štvrtok",
-   "Piatok",
-   "Sobota"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "OK",
-      cancel : "Zruši",
-      yes    : "Áno",
-      no     : "Nie"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "m/d/R");
-   };
-}
-
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "Dnes",
-      minText           : "Tento dátum je menší ako minimálny možný dátum",
-      maxText           : "Tento dátum je väèší ako maximálny možný dátum",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames        : Date.monthNames,
-      dayNames          : Date.dayNames,
-      nextText          : 'Ïalší Mesiac (Control+Doprava)',
-      prevText          : 'Predch. Mesiac (Control+Do¾ava)',
-      monthYearText     : 'Vyberte Mesiac (Control+Hore/Dole pre posun rokov)',
-      todayTip          : "{0} (Medzerník)",
-      format            : "m/d/r"
-   });
-}
-
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Strana",
-      afterPageText  : "z {0}",
-      firstText      : "Prvá Strana",
-      prevText       : "Predch. Strana",
-      nextText       : "Ïalšia Strana",
-      lastText       : "Posledná strana",
-      refreshText    : "Obnovi",
-      displayMsg     : "Zobrazujem {0} - {1} z {2}",
-      emptyMsg       : 'Žiadne dáta'
-   });
-}
-
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "Minimálna dåžka pre toto pole je {0}",
-      maxLengthText : "Maximálna dåžka pre toto pole je {0}",
-      blankText     : "Toto pole je povinné",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "Minimálna hodnota pre toto pole je {0}",
-      maxText : "Maximálna hodnota pre toto pole je {0}",
-      nanText : "{0} je nesprávne èíslo"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Zablokované",
-      disabledDatesText : "Zablokované",
-      minText           : "Dátum v tomto poli musí by až po {0}",
-      maxText           : "Dátum v tomto poli musí by pred {0}",
-      invalidText       : "{0} nie je správny dátum - musí by vo formáte {1}",
-      format            : "m/d/r"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "Nahrávam...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Toto pole musí by e-mailová adresa vo formáte "user@domain.com"',
-      urlText      : 'Toto pole musí by URL vo formáte "http:/'+'/www.domain.com"',
-      alphaText    : 'Toto po¾e može obsahova iba písmená a znak _',
-      alphanumText : 'Toto po¾e može obsahova iba písmená,èísla a znak _'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Zoradi vzostupne",
-      sortDescText : "Zoradi zostupne",
-      lockText     : "Zamknú ståpec",
-      unlockText   : "Odomknú st¾pec",
-      columnsText  : "Ståpce"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Názov",
-      valueText  : "Hodnota",
-      dateFormat : "m/j/Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Potiahnite pre zmenu rozmeru",
-      collapsibleSplitTip : "Potiahnite pre zmenu rozmeru. Dvojklikom schováte."
-   });
-}
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-sp.jss.html b/www/extras/extjs/docs/output/ext-lang-sp.jss.html deleted file mode 100644 index 8278bc639..000000000 --- a/www/extras/extjs/docs/output/ext-lang-sp.jss.html +++ /dev/null @@ -1,167 +0,0 @@ -ext-lang-sp.js

ext-lang-sp.js

/*
- * Español/Latinoamerica Translation by genius551v 04-08-2007
- * Revised by efege, 2007-04-15.
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Cargando...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} fila(s) seleccionada(s)";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Cerrar esta pestaña";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "El valor en este campo es inválido";
-}
-
-Date.monthNames = [
-   "Enero",
-   "Febrero",
-   "Marzo",
-   "Abril",
-   "Mayo",
-   "Junio",
-   "Julio",
-   "Agosto",
-   "Septiembre",
-   "Octubre",
-   "Noviembre",
-   "Diciembre"
-];
-
-Date.dayNames = [
-   "Domingo",
-   "Lunes",
-   "Martes",
-   "Miércoles",
-   "Jueves",
-   "Viernes",
-   "Sábado"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "Aceptar",
-      cancel : "Cancelar",
-      yes    : "Sí",
-      no     : "No"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "d/m/Y");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "Hoy",
-      minText           : "Esta fecha es anterior a la fecha mínima",
-      maxText           : "Esta fecha es posterior a la fecha máxima",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames	: Date.monthNames,
-      dayNames		: Date.dayNames,
-      nextText          : 'Mes Siguiente (Control+Right)',
-      prevText          : 'Mes Anterior (Control+Left)',
-      monthYearText     : 'Seleccione un mes (Control+Up/Down para desplazar el año)',
-      todayTip          : "{0} (Barra espaciadora)",
-      format            : "d/m/Y"
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Página",
-      afterPageText  : "de {0}",
-      firstText      : "Primera página",
-      prevText       : "Página anterior",
-      nextText       : "Página siguiente",
-      lastText       : "Última página",
-      refreshText    : "Actualizar",
-      displayMsg     : "Mostrando {0} - {1} de {2}",
-      emptyMsg       : 'Sin datos para mostrar'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "El tamaño mínimo para este campo es de {0}",
-      maxLengthText : "El tamaño máximo para este campo es de {0}",
-      blankText     : "Este campo es obligatorio",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "El valor mínimo para este campo es de {0}",
-      maxText : "El valor máximo para este campo es de {0}",
-      nanText : "{0} no es un número válido"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Deshabilitado",
-      disabledDatesText : "Deshabilitado",
-      minText           : "La fecha para este campo debe ser posterior a {0}",
-      maxText           : "La fecha para este campo debe ser anterior a {0}",
-      invalidText       : "{0} no es una fecha válida - debe tener el formato {1}",
-      format            : "d/m/Y"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "Cargando...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Este campo debe ser una dirección de correo electrónico con el formato "usuario@dominio.com"',
-      urlText      : 'Este campo debe ser una URL con el formato "http:/'+'/www.dominio.com"',
-      alphaText    : 'Este campo solo debe contener letras y _',
-      alphanumText : 'Este campo solo debe contener letras, números y _'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Ordenar en forma ascendente",
-      sortDescText : "Ordenar en forma descendente",
-      lockText     : "Bloquear Columna",
-      unlockText   : "Desbloquear Columna",
-      columnsText  : "Columnas"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Nombre",
-      valueText  : "Valor",
-      dateFormat : "j/m/Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Arrastre para redimensionar.",
-      collapsibleSplitTip : "Arrastre para redimensionar. Doble clic para ocultar."
-   });
-}
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-sv_se.jss.html b/www/extras/extjs/docs/output/ext-lang-sv_se.jss.html deleted file mode 100644 index af84d9f33..000000000 --- a/www/extras/extjs/docs/output/ext-lang-sv_se.jss.html +++ /dev/null @@ -1,172 +0,0 @@ -ext-lang-sv_se.js

ext-lang-sv_se.js

/**
- * Swedish translation (utf8-encoding)
- * By Erik Andersson, Monator Technologies
- * 24 April 2007
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Laddar...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} markerade rad(er)";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Stäng denna tabb";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "Värdet i detta fält är icke tillåtet";
-}
-
-if(Ext.LoadMask){
-    Ext.LoadMask.prototype.msg = "Laddar...";
-}
-
-Date.monthNames = [
-   "Januari",
-   "Februari",
-   "Mars",
-   "April",
-   "Maj",
-   "Juni",
-   "Juli",
-   "Augusti",
-   "September",
-   "Oktober",
-   "November",
-   "December"
-];
-
-Date.dayNames = [
-   "Söndag",
-   "MÃ¥ndag",
-   "Tisdag",
-   "Onsdag",
-   "Torsdag",
-   "Fredag",
-   "Lördag"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "OK",
-      cancel : "Avbryt",
-      yes    : "Ja",
-      no     : "Nej"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "Y/m/d");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "Idag",
-      minText           : "Detta datum är före det tidigast tillåtna",
-      maxText           : "Detta datum är efter det senast tillåtna",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames	: Date.monthNames,
-      dayNames		: Date.dayNames,
-      nextText          : 'Nästa Månad (Ctrl + höger piltangent)',
-      prevText          : 'Föregående Månad (Ctrl + vänster piltangent)',
-      monthYearText     : 'Välj en månad (Ctrl + Uppåt/Neråt pil för att ändra årtal)',
-      todayTip          : "{0} (Mellanslag)",
-      format            : "y/m/d",
-      startDay          : 1
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Sida",
-      afterPageText  : "av {0}",
-      firstText      : "Första sidan",
-      prevText       : "Föregående sida",
-      nextText       : "Nästa sida",
-      lastText       : "Sista sidan",
-      refreshText    : "Uppdatera",
-      displayMsg     : "Visar {0} - {1} av {2}",
-      emptyMsg       : 'Det finns ingen data att visa'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "Minsta tillåtna längden för detta fält är {0}",
-      maxLengthText : "Största tillåtna längden för detta fält är {0}",
-      blankText     : "Detta fält är obligatoriskt",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "Minsta tillåtna värdet för detta fält är {0}",
-      maxText : "Största tillåtna värdet för detta fält är {0}",
-      nanText : "{0} är inte ett tillåtet nummer"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Inaktiverad",
-      disabledDatesText : "Inaktiverad",
-      minText           : "Datumet i detta fält måste vara efter {0}",
-      maxText           : "Datumet i detta fält måste vara före {0}",
-      invalidText       : "{0} är inte ett tillåtet datum - datum skall anges på formatet {1}",
-      format            : "y/m/d"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "Laddar...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Detta fält skall vara en e-post adress på formatet "user@domain.com"',
-      urlText      : 'Detta fält skall vara en länk (URL) på formatet "http:/'+'/www.domain.com"',
-      alphaText    : 'Detta fält får bara innehålla bokstäver och "_"',
-      alphanumText : 'Detta fält får bara innehålla bokstäver, nummer och "_"'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Sortera stigande",
-      sortDescText : "Sortera fallande",
-      lockText     : "LÃ¥s kolumn",
-      unlockText   : "LÃ¥s upp kolumn",
-      columnsText  : "Kolumner"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Namn",
-      valueText  : "Värde",
-      dateFormat : "Y/m/d"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Drag för att ändra storleken.",
-      collapsibleSplitTip : "Drag för att ändra storleken. Dubbelklicka för att gömma."
-   });
-}

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-tr.jss.html b/www/extras/extjs/docs/output/ext-lang-tr.jss.html deleted file mode 100644 index 2d157c53b..000000000 --- a/www/extras/extjs/docs/output/ext-lang-tr.jss.html +++ /dev/null @@ -1,172 +0,0 @@ -ext-lang-tr.js

ext-lang-tr.js

/**
- * List compiled by mystix on the extjs.com forums.
- * Thank you Mystix!
- */
-// holder
-/***
- * Turkish translation by Hüseyin Tüfekçilerli
- * 04-11-2007, 09:52 AM 
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Yükleniyor...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} seçili satır";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Bu sekmeyi kapat";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "Bu alandaki değer geçersiz";
-}
-
-Date.monthNames = [
-   "Ocak",
-   "Åžubat",
-   "Mart",
-   "Nisan",
-   "Mayıs",
-   "Haziran",
-   "Temmuz",
-   "AÄŸustos",
-   "Eylül",
-   "Ekim",
-   "Kasım",
-   "Aralık"
-];
-
-Date.dayNames = [
-   "Pazar",
-   "Pazartesi",
-   "Salı",
-   "Çarşamba",
-   "PerÅŸembe",
-   "Cuma",
-   "Cumartesi"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "Tamam",
-      cancel : "İptal",
-      yes    : "Evet",
-      no     : "Hayır"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "d/m/Y");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "Bugün",
-      minText           : "Bu tarih minimum tarihten önce",
-      maxText           : "Bu tarih maximum tarihten sonra",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames	: Date.monthNames,
-      dayNames		: Date.dayNames,
-      nextText          : 'Sonraki Ay (Ctrl+SaÄŸ)',
-      prevText          : 'Önceki Ay (Ctrl+Sol)',
-      monthYearText     : 'Bir ay seçin (Yılları değiştirmek için Ctrl+Yukarı/Aşağı)',
-      todayTip          : "{0} (BoÅŸluk)",
-      format            : "d/m/y",
-      startDay          : 1
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Sayfa",
-      afterPageText  : " / {0}",
-      firstText      : "İlk Sayfa",
-      prevText       : "Önceki Sayfa",
-      nextText       : "Sonraki Sayfa",
-      lastText       : "Son Sayfa",
-      refreshText    : "Yenile",
-      displayMsg     : "{2} satırdan {0} - {1} arası gösteriliyor",
-      emptyMsg       : 'Gösterilecek veri yok'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "Bu alan için minimum uzunluk {0}",
-      maxLengthText : "Bu alan için maximum uzunluk {0}",
-      blankText     : "Bu alan gerekli",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "Bu alan için minimum değer {0}",
-      maxText : "Bu alan için maximum değer {0}",
-      nanText : "{0} geçerli bir sayı değil"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Pasif",
-      disabledDatesText : "Pasif",
-      minText           : "Bu alana {0} tarihinden sonraki bir tarih girilmeli",
-      maxText           : "Bu alana {0} tarihinden önceki bir tarih girilmeli",
-      invalidText       : "{0} geçerli bir tarih değil - şu formatta olmalı {1}",
-      format            : "d/m/y"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "Yükleniyor...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Bu alan bir e-mail adresi formatında olmalı "kullanici@alanadi.com"',
-      urlText      : 'Bu alan bir URL formatında olmalı "http:/'+'/www.alanadi.com"',
-      alphaText    : 'Bu alan sadece harf ve _ içermeli',
-      alphanumText : 'Bu alan sadece harf, sayı ve _ içermeli'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Artarak Sırala",
-      sortDescText : "Azalarak Sırala",
-      lockText     : "Sütünu Kilitle",
-      unlockText   : "Sütunun Kilidini Kaldır",
-      columnsText  : "Sütunlar"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "İsim",
-      valueText  : "DeÄŸer",
-      dateFormat : "j/m/Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Boyutlandırmak için sürükleyin.",
-      collapsibleSplitTip : "Boyutlandırmak için sürükleyin. Gizlemek için çift tıklayın."
-   });
-}

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-vn.jss.html b/www/extras/extjs/docs/output/ext-lang-vn.jss.html deleted file mode 100644 index be7948d8c..000000000 --- a/www/extras/extjs/docs/output/ext-lang-vn.jss.html +++ /dev/null @@ -1,173 +0,0 @@ -ext-lang-vn.js

ext-lang-vn.js

/**
- * List compiled by mystix on the extjs.com forums.
- * Thank you Mystix!
- */
-// holder
-/***
- * Vietnamese translation
- * By bpmtri
- * 12-April-2007 04:06PM
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Äang tải...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} dòng được chá»n";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "Äóng thẻ này";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "Giá trị của ô này không hợp lệ.";
-}
-
-Date.monthNames = [
-   "Tháng 1",
-   "Tháng 2",
-   "Tháng 3",
-   "Tháng 4",
-   "Tháng 5",
-   "Tháng 6",
-   "Tháng 7",
-   "Tháng 8",
-   "Tháng 9",
-   "Tháng 10",
-   "Tháng 11",
-   "Tháng 12"
-];
-
-Date.dayNames = [
-   "Chủ nhật",
-   "Thứ hai",
-   "Thứ ba",
-   "Thứ tư",
-   "Thứ năm",
-   "Thứ sáu",
-   "Thứ bảy"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "Äồng ý",
-      cancel : "Há»§y bá»",
-      yes    : "Có",
-      no     : "Không"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "d/m/Y");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "Hôm nay",
-      minText           : "Ngày này nhỠhơn ngày nhỠnhất",
-      maxText           : "Ngày này lớn hơn ngày lớn nhất",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames	: Date.monthNames,
-      dayNames		: Date.dayNames,
-      nextText          : 'Tháng sau (Control+Right)',
-      prevText          : 'Tháng trước (Control+Left)',
-      monthYearText     : 'Chá»n má»™t tháng (Control+Up/Down để thay đổi năm)',
-      todayTip          : "{0} (Spacebar - Phím trắng)",
-      format            : "d/m/y"
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "Trang",
-      afterPageText  : "of {0}",
-      firstText      : "Trang đầu",
-      prevText       : "Trang trước",
-      nextText       : "Trang sau",
-      lastText       : "Trang cuối",
-      refreshText    : "Tải lại",
-      displayMsg     : "Hiển thị {0} - {1} của {2}",
-      emptyMsg       : 'Không có dữ liệu để hiển thị'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "Chiá»u dài tối thiểu cá»§a ô này là {0}",
-      maxLengthText : "Chiá»u dài tối Ä‘a cá»§a ô này là {0}",
-      blankText     : "Ô này cần phải nhập giá trị",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "Giá trị nhỠnhất của ô này là {0}",
-      maxText : "Giá trị lớn nhất của ô này là  {0}",
-      nanText : "{0} hông phải là một số hợp lệ"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "Vô hiệu",
-      disabledDatesText : "Vô hiệu",
-      minText           : "Ngày nhập trong ô này phải sau ngày {0}",
-      maxText           : "Ngày nhập trong ô này phải trước ngày {0}",
-      invalidText       : "{0} không phải là một ngày hợp lệ - phải có dạng {1}",
-      format            : "d/m/y"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "Äang tải...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : 'Giá trị của ô này phải là một địa chỉ email có dạng như "ten@abc.com"',
-      urlText      : 'Giá trị của ô này phải là một địa chỉ web(URL) hợp lệ, có dạng như "http:/'+'/www.domain.com"',
-      alphaText    : 'Ô này chỉ được nhập các kí tự và gạch dưới(_)',
-      alphanumText : 'Ô này chỉ được nhập các kí tự, số và gạch dưới(_)'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "Tăng dần",
-      sortDescText : "Giảm dần",
-      lockText     : "Khóa cột",
-      unlockText   : "BỠkhóa cột",
-      columnsText  : "Các cột"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "Tên",
-      valueText  : "Giá trị",
-      dateFormat : "j/m/Y"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "Kéo giữ chuột để thay đổi kích thước.",
-      collapsibleSplitTip : "Kéo giữ chuột để thay đổi kích thước. Nhấp đúp để ẩn đi."
-   });
-}
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-zh_CN.jss.html b/www/extras/extjs/docs/output/ext-lang-zh_CN.jss.html deleted file mode 100644 index efec25ce0..000000000 --- a/www/extras/extjs/docs/output/ext-lang-zh_CN.jss.html +++ /dev/null @@ -1,168 +0,0 @@ -ext-lang-zh_CN.js

ext-lang-zh_CN.js

/*
- * Simplified Chinese translation
- * By DavidHu
- * 09 April 2007
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">加载中...</div>';
-
-if(Ext.View){
-   Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-   Ext.grid.Grid.prototype.ddText = "{0} 选择行";
-}
-
-if(Ext.TabPanelItem){
-   Ext.TabPanelItem.prototype.closeText = "关闭";
-}
-
-if(Ext.form.Field){
-   Ext.form.Field.prototype.invalidText = "è¾“å…¥å€¼éžæ³•";
-}
-
-Date.monthNames = [
-   "一月",
-   "二月",
-   "三月",
-   "四月",
-   "五月",
-   "六月",
-   "七月",
-   "八月",
-   "乿œˆ",
-   "åæœˆ",
-   "å一月",
-   "å二月"
-];
-
-Date.dayNames = [
-   "周日",
-   "周一",
-   "周二",
-   "周三",
-   "周四",
-   "周五",
-   "周六"
-];
-
-if(Ext.MessageBox){
-   Ext.MessageBox.buttonText = {
-      ok     : "确定",
-      cancel : "å–æ¶ˆ",
-      yes    : "是",
-      no     : "å¦"
-   };
-}
-
-if(Ext.util.Format){
-   Ext.util.Format.date = function(v, format){
-      if(!v) return "";
-      if(!(v instanceof Date)) v = new Date(Date.parse(v));
-      return v.dateFormat(format || "y年m月d日");
-   };
-}
-
-if(Ext.DatePicker){
-   Ext.apply(Ext.DatePicker.prototype, {
-      todayText         : "今天",
-      minText           : "æ—¥æœŸåœ¨æœ€å°æ—¥æœŸä¹‹å‰",
-      maxText           : "日期在最大日期之åŽ",
-      disabledDaysText  : "",
-      disabledDatesText : "",
-      monthNames	: Date.monthNames,
-      dayNames		: Date.dayNames,      
-      nextText          : '下月 (Control+Right)',
-      prevText          : '上月 (Control+Left)',
-      monthYearText     : '选择一个月 (Control+Up/Down æ¥æ”¹å˜å¹´)',
-      todayTip          : "{0} (Spacebar)",
-      format            : "y年m月d日"
-   });
-}
-
-if(Ext.PagingToolbar){
-   Ext.apply(Ext.PagingToolbar.prototype, {
-      beforePageText : "页",
-      afterPageText  : "of {0}",
-      firstText      : "第一页",
-      prevText       : "å‰ä¸€é¡µ",
-      nextText       : "下一页",
-      lastText       : "最åŽé¡µ",
-      refreshText    : "刷新",
-      displayMsg     : "显示 {0} - {1} of {2}",
-      emptyMsg       : '没有数æ®éœ€è¦æ˜¾ç¤º'
-   });
-}
-
-if(Ext.form.TextField){
-   Ext.apply(Ext.form.TextField.prototype, {
-      minLengthText : "该输入项的最å°é•¿åº¦æ˜¯ {0}",
-      maxLengthText : "该输入项的最大长度是 {0}",
-      blankText     : "该输入项为必输项",
-      regexText     : "",
-      emptyText     : null
-   });
-}
-
-if(Ext.form.NumberField){
-   Ext.apply(Ext.form.NumberField.prototype, {
-      minText : "该输入项的最å°å€¼æ˜¯ {0}",
-      maxText : "该输入项的最大值是 {0}",
-      nanText : "{0} 䏿˜¯æœ‰æ•ˆæ•°å€¼"
-   });
-}
-
-if(Ext.form.DateField){
-   Ext.apply(Ext.form.DateField.prototype, {
-      disabledDaysText  : "ç¦ç”¨",
-      disabledDatesText : "ç¦ç”¨",
-      minText           : "该输入项的日期必须在 {0} 之åŽ",
-      maxText           : "该输入项的日期必须在 {0} 之å‰",
-      invalidText       : "{0} 是无效的日期 - å¿…é¡»ç¬¦åˆæ ¼å¼ï¼š {1}",
-      format            : "y年m月d日"
-   });
-}
-
-if(Ext.form.ComboBox){
-   Ext.apply(Ext.form.ComboBox.prototype, {
-      loadingText       : "加载...",
-      valueNotFoundText : undefined
-   });
-}
-
-if(Ext.form.VTypes){
-   Ext.apply(Ext.form.VTypes, {
-      emailText    : '该输入项必须是电å­é‚®ä»¶åœ°å€ï¼Œæ ¼å¼å¦‚: "user@domain.com"',
-      urlText      : '该输入项必须是URL地å€ï¼Œæ ¼å¼å¦‚: "http:/'+'/www.domain.com"',
-      alphaText    : '该输入项åªèƒ½åŒ…å«å­—符和_',
-      alphanumText : '该输入项åªèƒ½åŒ…å«å­—符,æ•°å­—å’Œ_'
-   });
-}
-
-if(Ext.grid.GridView){
-   Ext.apply(Ext.grid.GridView.prototype, {
-      sortAscText  : "æ­£åº",
-      sortDescText : "逆åº",
-      lockText     : "é”列",
-      unlockText   : "è§£é”列",
-      columnsText  : "列"
-   });
-}
-
-if(Ext.grid.PropertyColumnModel){
-   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-      nameText   : "åç§°",
-      valueText  : "值",
-      dateFormat : "y年m月d日"
-   });
-}
-
-if(Ext.SplitLayoutRegion){
-   Ext.apply(Ext.SplitLayoutRegion.prototype, {
-      splitTip            : "æ‹–åŠ¨æ¥æ”¹å˜å°ºå¯¸.",
-      collapsibleSplitTip : "æ‹–åŠ¨æ¥æ”¹å˜å°ºå¯¸. åŒå‡»éšè—."
-   });
-}
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/ext-lang-zh_TW.jss.html b/www/extras/extjs/docs/output/ext-lang-zh_TW.jss.html deleted file mode 100644 index fbcfdeb00..000000000 --- a/www/extras/extjs/docs/output/ext-lang-zh_TW.jss.html +++ /dev/null @@ -1,168 +0,0 @@ -ext-lang-zh_TW.js

ext-lang-zh_TW.js

/*
- * Traditional Chinese translation
- * By hata1234
- * 09 April 2007
- */
-
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">讀å–中...</div>';
-
-if(Ext.View){
-    Ext.View.prototype.emptyText = "";
-}
-
-if(Ext.grid.Grid){
-    Ext.grid.Grid.prototype.ddText = "鏿“‡äº† {0} 行";
-}
-
-if(Ext.TabPanelItem){
-    Ext.TabPanelItem.prototype.closeText = "關閉此標籤";
-}
-
-if(Ext.form.Field){
-    Ext.form.Field.prototype.invalidText = "數值ä¸ç¬¦åˆæ¬„ä½è¦å®š";
-}
-
-Date.monthNames = [
-    "一月",
-    "二月",
-    "三月",
-    "四月",
-    "五月",
-    "六月",
-    "七月",
-    "八月",
-    "乿œˆ",
-    "åæœˆ",
-    "å一月",
-    "å二月"
-];
-
-Date.dayNames = [
-    "æ—¥",
-    "一",
-    "二",
-    "三",
-    "å››",
-    "五",
-    "å…­"
-];
-
-if(Ext.MessageBox){
-    Ext.MessageBox.buttonText = {
-        ok : "確定",
-        cancel : "å–æ¶ˆ",
-        yes : "是",
-        no : "å¦"
-    };
-}
-
-if(Ext.util.Format){
-    Ext.util.Format.date = function(v, format){
-       if(!v) return "";
-       if(!(v instanceof Date)) v = new Date(Date.parse(v));
-       return v.dateFormat(format || "Y/m/d");
-    };
-}
-
-if(Ext.DatePicker){
-    Ext.apply(Ext.DatePicker.prototype, {
-       todayText         : "今天",
-       minText           : "日期必須大於最å°å®¹è¨±æ—¥æœŸ",
-       maxText           : "æ—¥æœŸå¿…é ˆå°æ–¼æœ€å¤§å®¹è¨±æ—¥æœŸ",
-       disabledDaysText  : "",
-       disabledDatesText : "",
-       monthNames	 : Date.monthNames,
-       dayNames		 : Date.dayNames,       
-       nextText          : "下個月 (Ctrl+峿–¹å‘éµ)",
-       prevText          : "上個月 (Ctrl+左方å‘éµ)",
-       monthYearText     : "鏿“‡æœˆä»½ (Ctrl+上/下方å‘éµé¸æ“‡å¹´ä»½)",
-       todayTip          : "{0} (空白éµ)",
-       format            : "y/m/d"
-    });
-}
-
-if(Ext.PagingToolbar){
-    Ext.apply(Ext.PagingToolbar.prototype, {
-       beforePageText : "第",
-       afterPageText  : "é ï¼Œå…±{0}é ",
-       firstText      : "第一é ",
-       prevText       : "上一é ",
-       nextText       : "下一é ",
-       lastText       : "最後é ",
-       refreshText    : "釿–°æ•´ç†",
-       displayMsg     : "顯示{0} - {1}é ,å…±{2}é ",
-       emptyMsg       : '沒有任何資料'
-    });
-}
-
-if(Ext.form.TextField){
-    Ext.apply(Ext.form.TextField.prototype, {
-       minLengthText : "æ­¤æ¬„ä½æœ€å°‘è¦è¼¸å…¥ {0} 個字",
-       maxLengthText : "æ­¤æ¬„ä½æœ€å¤šè¼¸å…¥ {0} 個字",
-       blankText     : "此欄ä½ç‚ºå¿…å¡«",
-       regexText     : "",
-       emptyText     : null
-    });
-}
-
-if(Ext.form.NumberField){
-    Ext.apply(Ext.form.NumberField.prototype, {
-       minText : "此欄ä½ä¹‹æ•¸å€¼å¿…須大於 {0}",
-       maxText : "此欄ä½ä¹‹æ•¸å€¼å¿…é ˆå°æ–¼ {0}",
-       nanText : "{0} 䏿˜¯åˆæ³•的數字"
-    });
-}
-
-if(Ext.form.DateField){
-    Ext.apply(Ext.form.DateField.prototype, {
-       disabledDaysText  : "無法使用",
-       disabledDatesText : "無法使用",
-       minText           : "此欄ä½ä¹‹æ—¥æœŸå¿…須在 {0} 之後",
-       maxText           : "此欄ä½ä¹‹æ—¥æœŸå¿…須在 {0} 之å‰",
-       invalidText       : "{0} 䏿˜¯æ­£ç¢ºçš„æ—¥æœŸæ ¼å¼ - å¿…é ˆåƒæ˜¯ 「 {1} 〠這樣的格å¼",
-       format            : "Y/m/d"
-    });
-}
-
-if(Ext.form.ComboBox){
-    Ext.apply(Ext.form.ComboBox.prototype, {
-       loadingText       : "讀å–中 ...",
-       valueNotFoundText : undefined
-    });
-}
-
-if(Ext.form.VTypes){
-    Ext.apply(Ext.form.VTypes, {
-       emailText    : '此欄ä½å¿…é ˆè¼¸å…¥åƒ "user@domain.com" 之E-Mailæ ¼å¼',
-       urlText      : '此欄ä½å¿…é ˆè¼¸å…¥åƒ "http:/'+'/www.domain.com" ä¹‹ç¶²å€æ ¼å¼',
-       alphaText    : '此欄ä½åƒ…能輸入åŠå½¢è‹±æ–‡å­—æ¯åŠåº•ç·š( _ )符號',
-       alphanumText : '此欄ä½åƒ…能輸入åŠå½¢è‹±æ–‡å­—æ¯ã€æ•¸å­—åŠåº•ç·š( _ )符號'
-    });
-}
-
-if(Ext.grid.GridView){
-    Ext.apply(Ext.grid.GridView.prototype, {
-       sortAscText  : "æ­£å‘æŽ’åº",
-       sortDescText : "å呿ޒåº",
-       lockText     : "鎖定欄ä½",
-       unlockText   : "解開欄ä½éŽ–å®š",
-       columnsText  : "欄ä½"
-    });
-}
-
-if(Ext.grid.PropertyColumnModel){
-    Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
-       nameText   : "å稱",
-       valueText  : "數值",
-       dateFormat : "Y/m/d"
-    });
-}
-
-if(Ext.SplitLayoutRegion){
-    Ext.apply(Ext.SplitLayoutRegion.prototype, {
-       splitTip            : "拖曳縮放大å°.",
-       collapsibleSplitTip : "拖曳縮放大å°. 滑鼠雙擊隱è—."
-    });
-}
-

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/jquery-bridge.jss.html b/www/extras/extjs/docs/output/jquery-bridge.jss.html deleted file mode 100644 index 10aa92f81..000000000 --- a/www/extras/extjs/docs/output/jquery-bridge.jss.html +++ /dev/null @@ -1,391 +0,0 @@ -jquery-bridge.js

jquery-bridge.js

if(typeof jQuery == "undefined"){
-    throw "Unable to load Ext, jQuery not found.";
-}
-
-(function(){
-
-Ext.lib.Dom = {
-    getViewWidth : function(full){
-        // jQuery doesn't report full window size on document query, so max both
-        return full ? Math.max(jQuery(document).width(),jQuery(window).width()) : jQuery(window).width();
-    },
-
-    getViewHeight : function(full){
-        // jQuery doesn't report full window size on document query, so max both
-        return full ? Math.max(jQuery(document).height(),jQuery(window).height()) : jQuery(window).height();
-    },
-
-    isAncestor : function(p, c){
-        p = Ext.getDom(p);
-        c = Ext.getDom(c);
-        if (!p || !c) {return false;}
-
-        if(p.contains && !Ext.isSafari) {
-            return p.contains(c);
-        }else if(p.compareDocumentPosition) {
-            return !!(p.compareDocumentPosition(c) & 16);
-        }else{
-            var parent = c.parentNode;
-            while (parent) {
-                if (parent == p) {
-                    return true;
-                }
-                else if (!parent.tagName || parent.tagName.toUpperCase() == "HTML") {
-                    return false;
-                }
-                parent = parent.parentNode;
-            }
-            return false;
-        }
-    },
-
-    getRegion : function(el){
-        return Ext.lib.Region.getRegion(el);
-    },
-
-    getY : function(el){
-        return jQuery(el).offset({scroll:false}).top;
-    },
-
-    getX : function(el){
-        return jQuery(el).offset({scroll:false}).left;
-    },
-
-    getXY : function(el){
-        var o = jQuery(el).offset({scroll:false});
-        return [o.left,  o.top];
-    },
-
-    setXY : function(el, xy){
-        el = Ext.fly(el, '_setXY');
-        el.position();
-        var pts = el.translatePoints(xy);
-        if(xy[0] !== false){
-            el.dom.style.left = pts.left + "px";
-        }
-        if(xy[1] !== false){
-            el.dom.style.top = pts.top + "px";
-        }
-    },
-
-    setX : function(el, x){
-        this.setXY(el, [x, false]);
-    },
-
-    setY : function(el, y){
-        this.setXY(el, [false, y]);
-    }
-};
-
-Ext.lib.Event = {
-    getPageX : function(e){
-        e = e.browserEvent || e;
-        return e.pageX;
-    },
-
-    getPageY : function(e){
-        e = e.browserEvent || e;
-        return e.pageY;
-    },
-
-    getXY : function(e){
-        e = e.browserEvent || e;
-        return [e.pageX, e.pageY];
-    },
-
-    getTarget : function(e){
-        return e.target;
-    },
-
-    // all Ext events will go through event manager which provides scoping
-    on : function(el, eventName, fn, scope, override){
-        jQuery(el).bind(eventName, fn);
-    },
-
-    un : function(el, eventName, fn){
-        jQuery(el).unbind(eventName, fn);
-    },
-
-    purgeElement : function(el){
-        jQuery(el).unbind();
-    },
-
-    preventDefault : function(e){
-        e = e.browserEvent || e;
-        e.preventDefault();
-    },
-
-    stopPropagation : function(e){
-        e = e.browserEvent || e;
-        e.stopPropagation();
-    },
-
-    stopEvent : function(e){
-        e = e.browserEvent || e;
-        e.preventDefault();
-        e.stopPropagation();
-    },
-
-    onAvailable : function(id, fn, scope){
-        var start = new Date();
-        var f = function(){
-            if(start.getElapsed() > 10000){
-                clearInterval(iid);
-            }
-            var el = document.getElementById(id);
-            if(el){
-                clearInterval(iid);
-                fn.call(scope||window, el);
-            }
-        };
-        var iid = setInterval(f, 50);
-    },
-    
-    resolveTextNode: function(node) {
-        if (node && 3 == node.nodeType) {
-            return node.parentNode;
-        } else {
-            return node;
-        }
-    },
-
-    getRelatedTarget: function(ev) {
-        ev = ev.browserEvent || ev;
-        var t = ev.relatedTarget;
-        if (!t) {
-            if (ev.type == "mouseout") {
-                t = ev.toElement;
-            } else if (ev.type == "mouseover") {
-                t = ev.fromElement;
-            }
-        }
-
-        return this.resolveTextNode(t);
-    }
-};
-
-Ext.lib.Ajax = function(){
-    var createComplete = function(cb){
-         return function(xhr, status){
-            if((status == 'error' || status == 'timeout') && cb.failure){
-                cb.failure.call(cb.scope||window, {
-                    responseText: xhr.responseText,
-                    responseXML : xhr.responseXML,
-                    argument: cb.argument
-                });
-            }else if(cb.success){
-                cb.success.call(cb.scope||window, {
-                    responseText: xhr.responseText,
-                    responseXML : xhr.responseXML,
-                    argument: cb.argument
-                });
-            }
-         };
-    };
-    return {
-        request : function(method, uri, cb, data){
-            jQuery.ajax({
-                type: method,
-                url: uri,
-                data: data,
-                timeout: cb.timeout,
-                complete: createComplete(cb)
-            });
-        },
-
-        formRequest : function(form, uri, cb, data, isUpload, sslUri){
-            jQuery.ajax({
-                type: Ext.getDom(form).method ||'POST',
-                url: uri,
-                data: jQuery(form).formSerialize()+(data?'&'+data:''),
-                timeout: cb.timeout,
-                complete: createComplete(cb)
-            });
-        },
-
-        isCallInProgress : function(trans){
-            return false;
-        },
-
-        abort : function(trans){
-            return false;
-        },
-
-        serializeForm : function(form){
-            return jQuery(form.dom||form).formSerialize();
-        }
-    };
-}();
-
-Ext.lib.Anim = function(){
-    var createAnim = function(cb, scope){
-        var animated = true;
-        return {
-            stop : function(skipToLast){
-                // do nothing
-            },
-
-            isAnimated : function(){
-                return animated;
-            },
-
-            proxyCallback : function(){
-                animated = false;
-                Ext.callback(cb, scope);
-            }
-        };
-    };
-    return {
-        scroll : function(el, args, duration, easing, cb, scope){
-            // scroll anim not supported so just scroll immediately
-            var anim = createAnim(cb, scope);
-            el = Ext.getDom(el);
-            el.scrollLeft = args.scroll.to[0];
-            el.scrollTop = args.scroll.to[1];
-            anim.proxyCallback();
-            return anim;
-        },
-
-        motion : function(el, args, duration, easing, cb, scope){
-            return this.run(el, args, duration, easing, cb, scope);
-        },
-
-        color : function(el, args, duration, easing, cb, scope){
-            // color anim not supported, so execute callback immediately
-            var anim = createAnim(cb, scope);
-            anim.proxyCallback();
-            return anim;
-        },
-
-        run : function(el, args, duration, easing, cb, scope, type){
-            var anim = createAnim(cb, scope);
-            var o = {};
-            for(var k in args){
-                switch(k){   // jquery doesn't support, so convert
-                    case 'points':
-                        var by, pts, e = Ext.fly(el, '_animrun');
-                        e.position();
-                        if(by = args.points.by){
-                            var xy = e.getXY();
-                            pts = e.translatePoints([xy[0]+by[0], xy[1]+by[1]]);
-                        }else{
-                            pts = e.translatePoints(args.points.to);
-                        }
-                        o.left = pts.left;
-                        o.top = pts.top;
-                        if(!parseInt(e.getStyle('left'), 10)){ // auto bug
-                            e.setLeft(0);
-                        }
-                        if(!parseInt(e.getStyle('top'), 10)){
-                            e.setTop(0);
-                        }
-                    break;
-                    case 'width':
-                        o.width = args.width.to;
-                    break;
-                    case 'height':
-                        o.height = args.height.to;
-                    break;
-                    case 'opacity':
-                        o.opacity = args.opacity.to;
-                    break;
-                    default:
-                        o[k] = args[k].to;
-                    break;
-                }
-            }
-            // TODO: find out about easing plug in?
-            jQuery(el).animate(o, duration*1000, undefined, anim.proxyCallback);
-            return anim;
-        }
-    };
-}();
-
-
-Ext.lib.Region = function(t, r, b, l) {
-    this.top = t;
-    this[1] = t;
-    this.right = r;
-    this.bottom = b;
-    this.left = l;
-    this[0] = l;
-};
-
-Ext.lib.Region.prototype = {
-    contains : function(region) {
-        return ( region.left   >= this.left   &&
-                 region.right  <= this.right  &&
-                 region.top    >= this.top    &&
-                 region.bottom <= this.bottom    );
-
-    },
-
-    getArea : function() {
-        return ( (this.bottom - this.top) * (this.right - this.left) );
-    },
-
-    intersect : function(region) {
-        var t = Math.max( this.top,    region.top    );
-        var r = Math.min( this.right,  region.right  );
-        var b = Math.min( this.bottom, region.bottom );
-        var l = Math.max( this.left,   region.left   );
-
-        if (b >= t && r >= l) {
-            return new Ext.lib.Region(t, r, b, l);
-        } else {
-            return null;
-        }
-    },
-    union : function(region) {
-        var t = Math.min( this.top,    region.top    );
-        var r = Math.max( this.right,  region.right  );
-        var b = Math.max( this.bottom, region.bottom );
-        var l = Math.min( this.left,   region.left   );
-
-        return new Ext.lib.Region(t, r, b, l);
-    },
-
-    adjust : function(t, l, b, r){
-        this.top += t;
-        this.left += l;
-        this.right += r;
-        this.bottom += b;
-        return this;
-    }
-};
-
-Ext.lib.Region.getRegion = function(el) {
-    var p = Ext.lib.Dom.getXY(el);
-
-    var t = p[1];
-    var r = p[0] + el.offsetWidth;
-    var b = p[1] + el.offsetHeight;
-    var l = p[0];
-
-    return new Ext.lib.Region(t, r, b, l);
-};
-
-Ext.lib.Point = function(x, y) {
-   if (x instanceof Array) {
-      y = x[1];
-      x = x[0];
-   }
-    this.x = this.right = this.left = this[0] = x;
-    this.y = this.top = this.bottom = this[1] = y;
-};
-
-Ext.lib.Point.prototype = new Ext.lib.Region();
-
-// prevent IE leaks
-if(Ext.isIE){
-    jQuery(window).unload(function(){
-        var p = Function.prototype;
-        delete p.createSequence;
-        delete p.defer;
-        delete p.createDelegate;
-        delete p.createCallback;
-        delete p.createInterceptor;
-    });
-}
-})();

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/prototype-bridge.jss.html b/www/extras/extjs/docs/output/prototype-bridge.jss.html deleted file mode 100644 index 31e77c7a2..000000000 --- a/www/extras/extjs/docs/output/prototype-bridge.jss.html +++ /dev/null @@ -1,499 +0,0 @@ -prototype-bridge.js

prototype-bridge.js

(function(){
-
-var libFlyweight;
-
-Ext.lib.Dom = {
-    getViewWidth : function(full){
-        return full ? this.getDocumentWidth() : this.getViewportWidth();
-    },
-
-    getViewHeight : function(full){
-        return full ? this.getDocumentHeight() : this.getViewportHeight();
-    },
-
-    getDocumentHeight: function() { // missing from prototype?
-        var scrollHeight = (document.compatMode != "CSS1Compat") ? document.body.scrollHeight : document.documentElement.scrollHeight;
-        return Math.max(scrollHeight, this.getViewportHeight());
-    },
-
-    getDocumentWidth: function() { // missing from prototype?
-        var scrollWidth = (document.compatMode != "CSS1Compat") ? document.body.scrollWidth : document.documentElement.scrollWidth;
-        return Math.max(scrollWidth, this.getViewportWidth());
-    },
-
-    getViewportHeight: function() { // missing from prototype?
-        var height = self.innerHeight;
-        var mode = document.compatMode;
-
-        if ( (mode || Ext.isIE) && !Ext.isOpera ) {
-            height = (mode == "CSS1Compat") ?
-                    document.documentElement.clientHeight : // Standards
-                    document.body.clientHeight; // Quirks
-        }
-
-        return height;
-    },
-
-    getViewportWidth: function() { // missing from prototype?
-        var width = self.innerWidth;  // Safari
-        var mode = document.compatMode;
-
-        if (mode || Ext.isIE) { // IE, Gecko, Opera
-            width = (mode == "CSS1Compat") ?
-                    document.documentElement.clientWidth : // Standards
-                    document.body.clientWidth; // Quirks
-        }
-        return width;
-    },
-
-    isAncestor : function(p, c){ // missing from prototype?
-        p = Ext.getDom(p);
-        c = Ext.getDom(c);
-        if (!p || !c) {return false;}
-
-        if(p.contains && !Ext.isSafari) {
-            return p.contains(c);
-        }else if(p.compareDocumentPosition) {
-            return !!(p.compareDocumentPosition(c) & 16);
-        }else{
-            var parent = c.parentNode;
-            while (parent) {
-                if (parent == p) {
-                    return true;
-                }
-                else if (!parent.tagName || parent.tagName.toUpperCase() == "HTML") {
-                    return false;
-                }
-                parent = parent.parentNode;
-            }
-            return false;
-        }
-    },
-
-    getRegion : function(el){
-        return Ext.lib.Region.getRegion(el);
-    },
-
-    getY : function(el){
-        return this.getXY(el)[1];
-    },
-
-    getX : function(el){
-        return this.getXY(el)[0];
-    },
-
-    getXY : function(el){ // this initially used Position.cumulativeOffset but it is not accurate enough
-        var p, pe, b, scroll, bd = document.body;
-        el = Ext.getDom(el);
-
-        if(el.getBoundingClientRect){ // IE
-            b = el.getBoundingClientRect();
-            scroll = fly(document).getScroll();
-            return [b.left + scroll.left, b.top + scroll.top];
-        } else{
-            var x = el.offsetLeft, y = el.offsetTop;
-            p = el.offsetParent;
-
-            // ** flag if a parent is positioned for Safari
-            var hasAbsolute = false;
-
-            if(p != el){
-                while(p){
-                    x += p.offsetLeft;
-                    y += p.offsetTop;
-
-                    // ** flag Safari abs position bug - only check if needed
-                    if(Ext.isSafari && !hasAbsolute && fly(p).getStyle("position") == "absolute"){
-                        hasAbsolute = true;
-                    }
-
-                    // ** Fix gecko borders measurements
-                    // Credit jQuery dimensions plugin for the workaround
-                    if(Ext.isGecko){
-                        pe = fly(p);
-                        var bt = parseInt(pe.getStyle("borderTopWidth"), 10) || 0;
-                        var bl = parseInt(pe.getStyle("borderLeftWidth"), 10) || 0;
-
-                        // add borders to offset
-                        x += bl;
-                        y += bt;
-
-                        // Mozilla removes the border if the parent has overflow property other than visible
-                        if(p != el && pe.getStyle('overflow') != 'visible'){
-                            x += bl;
-                            y += bt;
-                        }
-                    }
-                    p = p.offsetParent;
-                }
-            }
-            // ** safari doubles in some cases, use flag from offsetParent's as well
-            if(Ext.isSafari && (hasAbsolute || fly(el).getStyle("position") == "absolute")){
-                x -= bd.offsetLeft;
-                y -= bd.offsetTop;
-            }
-        }
-
-        p = el.parentNode;
-
-        while(p && p != bd){
-            // ** opera TR has bad scroll values, so filter them jvs
-            if(!Ext.isOpera || (Ext.isOpera && p.tagName != 'TR' && fly(p).getStyle("display") != "inline")){
-                x -= p.scrollLeft;
-                y -= p.scrollTop;
-            }
-            p = p.parentNode;
-        }
-        return [x, y];
-    },
-
-    setXY : function(el, xy){ // this initially used Position.cumulativeOffset but it is not accurate enough
-        el = Ext.fly(el, '_setXY');
-        el.position();
-        var pts = el.translatePoints(xy);
-        if(xy[0] !== false){
-            el.dom.style.left = pts.left + "px";
-        }
-        if(xy[1] !== false){
-            el.dom.style.top = pts.top + "px";
-        }
-    },
-
-    setX : function(el, x){
-        this.setXY(el, [x, false]);
-    },
-
-    setY : function(el, y){
-        this.setXY(el, [false, y]);
-    }
-};
-
-Ext.lib.Event = {
-    getPageX : function(e){
-        return Event.pointerX(e.browserEvent || e);
-    },
-
-    getPageY : function(e){
-        return Event.pointerY(e.browserEvent || e);
-    },
-
-    getXY : function(e){
-        e = e.browserEvent || e;
-        return [Event.pointerX(e), Event.pointerY(e)];
-    },
-
-    getTarget : function(e){
-        return Event.element(e.browserEvent || e);
-    },
-
-    resolveTextNode: function(node) {
-        if (node && 3 == node.nodeType) {
-            return node.parentNode;
-        } else {
-            return node;
-        }
-    },
-
-    getRelatedTarget: function(ev) { // missing from prototype?
-        ev = ev.browserEvent || ev;
-        var t = ev.relatedTarget;
-        if (!t) {
-            if (ev.type == "mouseout") {
-                t = ev.toElement;
-            } else if (ev.type == "mouseover") {
-                t = ev.fromElement;
-            }
-        }
-
-        return this.resolveTextNode(t);
-    },
-
-    on : function(el, eventName, fn){
-        Event.observe(el, eventName, fn, false);
-    },
-
-    un : function(el, eventName, fn){
-        Event.stopObserving(el, eventName, fn, false);
-    },
-
-    purgeElement : function(el){
-        // no equiv?
-    },
-
-    preventDefault : function(e){   // missing from prototype?
-        e = e.browserEvent || e;
-        if(e.preventDefault) {
-            e.preventDefault();
-        } else {
-            e.returnValue = false;
-        }
-    },
-
-    stopPropagation : function(e){   // missing from prototype?
-        e = e.browserEvent || e;
-        if(e.stopPropagation) {
-            e.stopPropagation();
-        } else {
-            e.cancelBubble = true;
-        }
-    },
-
-    stopEvent : function(e){
-        Event.stop(e.browserEvent || e);
-    },
-
-    onAvailable : function(el, fn, scope, override){  // no equiv
-        var start = new Date(), iid;
-        var f = function(){
-            if(start.getElapsed() > 10000){
-                clearInterval(iid);
-            }
-            var el = document.getElementById(id);
-            if(el){
-                clearInterval(iid);
-                fn.call(scope||window, el);
-            }
-        };
-        iid = setInterval(f, 50);
-    }
-};
-
-Ext.lib.Ajax = function(){
-    var createSuccess = function(cb){
-         return cb.success ? function(xhr){
-            cb.success.call(cb.scope||window, {
-                responseText: xhr.responseText,
-                responseXML : xhr.responseXML,
-                argument: cb.argument
-            });
-         } : Ext.emptyFn;
-    };
-    var createFailure = function(cb){
-         return cb.failure ? function(xhr){
-            cb.failure.call(cb.scope||window, {
-                responseText: xhr.responseText,
-                responseXML : xhr.responseXML,
-                argument: cb.argument
-            });
-         } : Ext.emptyFn;
-    };
-    return {
-        request : function(method, uri, cb, data){
-            new Ajax.Request(uri, {
-                method: method,
-                parameters: data || '',
-                timeout: cb.timeout,
-                onSuccess: createSuccess(cb),
-                onFailure: createFailure(cb)
-            });
-        },
-
-        formRequest : function(form, uri, cb, data, isUpload, sslUri){
-            new Ajax.Request(uri, {
-                method: Ext.getDom(form).method ||'POST',
-                parameters: Form.serialize(form)+(data?'&'+data:''),
-                timeout: cb.timeout,
-                onSuccess: createSuccess(cb),
-                onFailure: createFailure(cb)
-            });
-        },
-
-        isCallInProgress : function(trans){
-            return false;
-        },
-
-        abort : function(trans){
-            return false;
-        },
-        
-        serializeForm : function(form){
-            return Form.serialize(form.dom||form, true);
-        }
-    };
-}();
-
-
-Ext.lib.Anim = function(){
-    
-    var easings = {
-        easeOut: function(pos) {
-            return 1-Math.pow(1-pos,2);
-        },
-        easeIn: function(pos) {
-            return 1-Math.pow(1-pos,2);
-        }
-    };
-    var createAnim = function(cb, scope){
-        return {
-            stop : function(skipToLast){
-                this.effect.cancel();
-            },
-
-            isAnimated : function(){
-                return this.effect.state == 'running';
-            },
-
-            proxyCallback : function(){
-                Ext.callback(cb, scope);
-            }
-        };
-    };
-    return {
-        scroll : function(el, args, duration, easing, cb, scope){
-            // not supported so scroll immediately?
-            var anim = createAnim(cb, scope);
-            el = Ext.getDom(el);
-            el.scrollLeft = args.to[0];
-            el.scrollTop = args.to[1];
-            anim.proxyCallback();
-            return anim;
-        },
-
-        motion : function(el, args, duration, easing, cb, scope){
-            return this.run(el, args, duration, easing, cb, scope);
-        },
-
-        color : function(el, args, duration, easing, cb, scope){
-            return this.run(el, args, duration, easing, cb, scope);
-        },
-
-        run : function(el, args, duration, easing, cb, scope, type){
-            var o = {};
-            for(var k in args){
-                switch(k){   // scriptaculous doesn't support, so convert these
-                    case 'points':
-                        var by, pts, e = Ext.fly(el, '_animrun');
-                        e.position();
-                        if(by = args.points.by){
-                            var xy = e.getXY();
-                            pts = e.translatePoints([xy[0]+by[0], xy[1]+by[1]]);
-                        }else{
-                            pts = e.translatePoints(args.points.to);
-                        }
-                        o.left = pts.left+'px';
-                        o.top = pts.top+'px';
-                    break;
-                    case 'width':
-                        o.width = args.width.to+'px';
-                    break;
-                    case 'height':
-                        o.height = args.height.to+'px';
-                    break;
-                    case 'opacity':
-                        o.opacity = String(args.opacity.to);
-                    break;
-                    default:
-                        o[k] = String(args[k].to);
-                    break;
-                }
-            }
-            var anim = createAnim(cb, scope);
-            anim.effect = new Effect.Morph(Ext.id(el), {
-                duration: duration,
-                afterFinish: anim.proxyCallback,
-                transition: easings[easing] || Effect.Transitions.linear,
-                style: o
-            });
-            return anim;
-        }
-    };
-}();
-
-
-// all lib flyweight calls use their own flyweight to prevent collisions with developer flyweights
-function fly(el){
-    if(!libFlyweight){
-        libFlyweight = new Ext.Element.Flyweight();
-    }
-    libFlyweight.dom = el;
-    return libFlyweight;
-}
-    
-Ext.lib.Region = function(t, r, b, l) {
-    this.top = t;
-    this[1] = t;
-    this.right = r;
-    this.bottom = b;
-    this.left = l;
-    this[0] = l;
-};
-
-Ext.lib.Region.prototype = {
-    contains : function(region) {
-        return ( region.left   >= this.left   &&
-                 region.right  <= this.right  &&
-                 region.top    >= this.top    &&
-                 region.bottom <= this.bottom    );
-
-    },
-
-    getArea : function() {
-        return ( (this.bottom - this.top) * (this.right - this.left) );
-    },
-
-    intersect : function(region) {
-        var t = Math.max( this.top,    region.top    );
-        var r = Math.min( this.right,  region.right  );
-        var b = Math.min( this.bottom, region.bottom );
-        var l = Math.max( this.left,   region.left   );
-
-        if (b >= t && r >= l) {
-            return new Ext.lib.Region(t, r, b, l);
-        } else {
-            return null;
-        }
-    },
-    union : function(region) {
-        var t = Math.min( this.top,    region.top    );
-        var r = Math.max( this.right,  region.right  );
-        var b = Math.max( this.bottom, region.bottom );
-        var l = Math.min( this.left,   region.left   );
-
-        return new Ext.lib.Region(t, r, b, l);
-    },
-
-    adjust : function(t, l, b, r){
-        this.top += t;
-        this.left += l;
-        this.right += r;
-        this.bottom += b;
-        return this;
-    }
-};
-
-Ext.lib.Region.getRegion = function(el) {
-    var p = Ext.lib.Dom.getXY(el);
-
-    var t = p[1];
-    var r = p[0] + el.offsetWidth;
-    var b = p[1] + el.offsetHeight;
-    var l = p[0];
-
-    return new Ext.lib.Region(t, r, b, l);
-};
-
-Ext.lib.Point = function(x, y) {
-   if (x instanceof Array) {
-      y = x[1];
-      x = x[0];
-   }
-    this.x = this.right = this.left = this[0] = x;
-    this.y = this.top = this.bottom = this[1] = y;
-};
-
-Ext.lib.Point.prototype = new Ext.lib.Region();
-
-
-// prevent IE leaks
-if(Ext.isIE){
-    Event.observe(window, "unload", function(){
-        var p = Function.prototype;
-        delete p.createSequence;
-        delete p.defer;
-        delete p.createDelegate;
-        delete p.createCallback;
-        delete p.createInterceptor;
-    });
-}
-})();

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/output/yui-bridge.jss.html b/www/extras/extjs/docs/output/yui-bridge.jss.html deleted file mode 100644 index 9ffd32c4e..000000000 --- a/www/extras/extjs/docs/output/yui-bridge.jss.html +++ /dev/null @@ -1,297 +0,0 @@ -yui-bridge.js

yui-bridge.js

if(typeof YAHOO == "undefined"){
-    throw "Unable to load Ext, core YUI utilities (yahoo, dom, event) not found.";
-}
-
-(function(){
-var E = YAHOO.util.Event;
-var D = YAHOO.util.Dom;
-var CN = YAHOO.util.Connect;    
-
-var ES = YAHOO.util.Easing;
-var A = YAHOO.util.Anim;
-var libFlyweight;
-
-Ext.lib.Dom = {
-    getViewWidth : function(full){
-        return full ? D.getDocumentWidth() : D.getViewportWidth();
-    },
-
-    getViewHeight : function(full){
-        return full ? D.getDocumentHeight() : D.getViewportHeight();
-    },
-
-    isAncestor : function(haystack, needle){
-        return D.isAncestor(haystack, needle);
-    },
-
-    getRegion : function(el){
-        return D.getRegion(el);
-    },
-
-    getY : function(el){
-        return this.getXY(el)[1];
-    },
-
-    getX : function(el){
-        return this.getXY(el)[0];
-    },
-
-    // original version based on YahooUI getXY
-    // this version fixes several issues in Safari and FF
-    // and boosts performance by removing the batch overhead, repetitive dom lookups and array index calls
-    getXY : function(el){
-        var p, pe, b, scroll, bd = document.body;
-        el = Ext.getDom(el);
-
-        if(el.getBoundingClientRect){ // IE
-            b = el.getBoundingClientRect();
-            scroll = fly(document).getScroll();
-            return [b.left + scroll.left, b.top + scroll.top];
-        } else{
-            var x = el.offsetLeft, y = el.offsetTop;
-            p = el.offsetParent;
-
-            // ** flag if a parent is positioned for Safari
-            var hasAbsolute = false;
-
-            if(p != el){
-                while(p){
-                    x += p.offsetLeft;
-                    y += p.offsetTop;
-
-                    // ** flag Safari abs position bug - only check if needed
-                    if(Ext.isSafari && !hasAbsolute && fly(p).getStyle("position") == "absolute"){
-                        hasAbsolute = true;
-                    }
-
-                    // ** Fix gecko borders measurements
-                    // Credit jQuery dimensions plugin for the workaround
-                    if(Ext.isGecko){
-                        pe = fly(p);
-                        var bt = parseInt(pe.getStyle("borderTopWidth"), 10) || 0;
-                        var bl = parseInt(pe.getStyle("borderLeftWidth"), 10) || 0;
-
-                        // add borders to offset
-                        x += bl;
-                        y += bt;
-
-                        // Mozilla removes the border if the parent has overflow property other than visible
-                        if(p != el && pe.getStyle('overflow') != 'visible'){
-                            x += bl;
-                            y += bt;
-                        }
-                    }
-                    p = p.offsetParent;
-                }
-            }
-            // ** safari doubles in some cases, use flag from offsetParent's as well
-            if(Ext.isSafari && (hasAbsolute || fly(el).getStyle("position") == "absolute")){
-                x -= bd.offsetLeft;
-                y -= bd.offsetTop;
-            }
-        }
-
-        p = el.parentNode;
-
-        while(p && p != bd){
-            // ** opera TR has bad scroll values, so filter them jvs
-            if(!Ext.isOpera || (Ext.isOpera && p.tagName != 'TR' && fly(p).getStyle("display") != "inline")){
-                x -= p.scrollLeft;
-                y -= p.scrollTop;
-            }
-            p = p.parentNode;
-        }
-        return [x, y];
-    },
-
-    setXY : function(el, xy){
-        el = Ext.fly(el, '_setXY');
-        el.position();
-        var pts = el.translatePoints(xy);
-        if(xy[0] !== false){
-            el.dom.style.left = pts.left + "px";
-        }
-        if(xy[1] !== false){
-            el.dom.style.top = pts.top + "px";
-        }
-    },
-
-    setX : function(el, x){
-        this.setXY(el, [x, false]);
-    },
-
-    setY : function(el, y){
-        this.setXY(el, [false, y]);
-    }
-};
-
-Ext.lib.Event = {
-    getPageX : function(e){
-        return E.getPageX(e.browserEvent || e);
-    },
-
-    getPageY : function(e){
-        return E.getPageY(e.browserEvent || e);
-    },
-
-    getXY : function(e){
-        return E.getXY(e.browserEvent || e);
-    },
-
-    getTarget : function(e){
-        return E.getTarget(e.browserEvent || e);
-    },
-
-    getRelatedTarget : function(e){
-        return E.getRelatedTarget(e.browserEvent || e);
-    },
-
-    on : function(el, eventName, fn, scope, override){
-        E.on(el, eventName, fn, scope, override);
-    },
-
-    un : function(el, eventName, fn){
-        E.removeListener(el, eventName, fn);
-    },
-
-    purgeElement : function(el){
-        E.purgeElement(el);
-    },
-
-    preventDefault : function(e){
-        E.preventDefault(e.browserEvent || e);
-    },
-
-    stopPropagation : function(e){
-        E.stopPropagation(e.browserEvent || e);
-    },
-
-    stopEvent : function(e){
-        E.stopEvent(e.browserEvent || e);
-    },
-
-    onAvailable : function(el, fn, scope, override){
-        return E.onAvailable(el, fn, scope, override);
-    }
-};
-
-Ext.lib.Ajax = {
-    request : function(method, uri, cb, data){
-        return CN.asyncRequest(method, uri, cb, data);
-    },
-
-    formRequest : function(form, uri, cb, data, isUpload, sslUri){
-        CN.setForm(form, isUpload, sslUri);
-        return CN.asyncRequest(Ext.getDom(form).method ||'POST', uri, cb, data);
-    },
-
-    isCallInProgress : function(trans){
-        return CN.isCallInProgress(trans);
-    },
-
-    abort : function(trans){
-        return CN.abort(trans);
-    },
-    
-    serializeForm : function(form){
-        var d = CN.setForm(form.dom || form);
-        CN.resetFormState();
-        return d;
-    }
-};
-
-Ext.lib.Region = YAHOO.util.Region;
-Ext.lib.Point = YAHOO.util.Point;
-
-
-Ext.lib.Anim = {
-    scroll : function(el, args, duration, easing, cb, scope){
-        this.run(el, args, duration, easing, cb, scope, YAHOO.util.Scroll);
-    },
-
-    motion : function(el, args, duration, easing, cb, scope){
-        this.run(el, args, duration, easing, cb, scope, YAHOO.util.Motion);
-    },
-
-    color : function(el, args, duration, easing, cb, scope){
-        this.run(el, args, duration, easing, cb, scope, YAHOO.util.ColorAnim);
-    },
-
-    run : function(el, args, duration, easing, cb, scope, type){
-        type = type || YAHOO.util.Anim;
-        if(typeof easing == "string"){
-            easing = YAHOO.util.Easing[easing];
-        }
-        var anim = new type(el, args, duration, easing);
-        anim.animateX(function(){
-            Ext.callback(cb, scope);
-        });
-        return anim;
-    }
-};
-
-// all lib flyweight calls use their own flyweight to prevent collisions with developer flyweights
-function fly(el){
-    if(!libFlyweight){
-        libFlyweight = new Ext.Element.Flyweight();
-    }
-    libFlyweight.dom = el;
-    return libFlyweight;
-}
-
-// prevent IE leaks
-if(Ext.isIE){
-    YAHOO.util.Event.on(window, "unload", function(){
-        var p = Function.prototype;
-        delete p.createSequence;
-        delete p.defer;
-        delete p.createDelegate;
-        delete p.createCallback;
-        delete p.createInterceptor;
-    });
-}
-
-// various overrides
-
-// add ability for callbacks with animations
-if(YAHOO.util.Anim){
-    YAHOO.util.Anim.prototype.animateX = function(callback, scope){
-        var f = function(){
-            this.onComplete.unsubscribe(f);
-            if(typeof callback == "function"){
-                callback.call(scope || this, this);
-            }
-        };
-        this.onComplete.subscribe(f, this, true);
-        this.animate();
-    };
-}
-
-if(YAHOO.util.DragDrop && Ext.dd.DragDrop){
-    YAHOO.util.DragDrop.defaultPadding = Ext.dd.DragDrop.defaultPadding;
-    YAHOO.util.DragDrop.constrainTo = Ext.dd.DragDrop.constrainTo;
-}
-
-YAHOO.util.Dom.getXY = function(el) {
-    var f = function(el) {
-        return Ext.lib.Dom.getXY(el);
-    };
-    return YAHOO.util.Dom.batch(el, f, YAHOO.util.Dom, true);
-};
-
-
-// workaround for Safari anim duration speed problems
-if(YAHOO.util.AnimMgr){
-    YAHOO.util.AnimMgr.fps = 1000;
-}
-
-YAHOO.util.Region.prototype.adjust = function(t, l, b, r){
-    this.top += t;
-    this.left += l;
-    this.right += r;
-    this.bottom += b;
-    return this;
-};
-
-})();

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.
- \ No newline at end of file diff --git a/www/extras/extjs/docs/resources/block-bg.gif b/www/extras/extjs/docs/resources/block-bg.gif deleted file mode 100644 index f3cf86dae..000000000 Binary files a/www/extras/extjs/docs/resources/block-bg.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/class.gif b/www/extras/extjs/docs/resources/class.gif deleted file mode 100644 index 445769d3f..000000000 Binary files a/www/extras/extjs/docs/resources/class.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/collapse-bg.gif b/www/extras/extjs/docs/resources/collapse-bg.gif deleted file mode 100644 index e6b8da287..000000000 Binary files a/www/extras/extjs/docs/resources/collapse-bg.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/collapser.css b/www/extras/extjs/docs/resources/collapser.css deleted file mode 100644 index d1c7b4681..000000000 --- a/www/extras/extjs/docs/resources/collapser.css +++ /dev/null @@ -1,34 +0,0 @@ -.pkg h3 { - padding-left:34px; - font:normal 11px verdana,helvetica,tahoma,sans-serif; - height:18px; - cursor:pointer; -} -h3.collapser-expanded{ - background: #fff url(pkg-open.gif) no-repeat 0px -1px; -} -h3.collapser-collapsed { - background: #fff url(pkg-closed.gif) no-repeat 0px -1px; -} -.pkg-body{ - margin-left:16px; - font:normal 11px verdana,helvetica,tahoma,sans-serif; -} -#classes a{ - font:normal 11px verdana,helvetica,tahoma,sans-serif; - display:block; - text-decoration:none; - height:18px; - color:black; - background: #fff url(class.gif) no-repeat 16px -1px; - padding-left:34px; - -moz-outline:none; - outline:none; - white-space: nowrap; -} -#classes a:hover{ - text-decoration: underline; -} -#classes a.ex{ - background: #fff url(example.gif) no-repeat 16px -1px; -} \ No newline at end of file diff --git a/www/extras/extjs/docs/resources/docs.css b/www/extras/extjs/docs/resources/docs.css deleted file mode 100644 index 16aae9ee7..000000000 --- a/www/extras/extjs/docs/resources/docs.css +++ /dev/null @@ -1,77 +0,0 @@ -#class .loading-indicator{ - font-size:12px; - height:18px; -} -#docs .x-layout-panel-north{ - border:0px none; - background:#0000aa url(../../resources/images/default/basic-dialog/hd-sprite.gif) repeat-x 0px -83px; - padding-top:3px; - padding-left:3px; -} -#docs .x-layout-collapsed-west{ - background-image: url(collapse-bg.gif); - background-repeat:no-repeat; - background-position:center; -} -#header { - font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; - color:white; -} -.loading-indicator { - font-size:8pt; - background-image:url('../../resources/images/grid/loading.gif'); - background-repeat: no-repeat; - background-position:top left; - padding-left:20px; - height:18px; - text-align:left; -} -a#welcome-link{ - background:#fff url(docs.gif) no-repeat 0px 0px; - padding-left:18px; -} -a#help-forums{ - background:#fff url(forum.gif) no-repeat 16px 0px; - padding-left:34px; - display:block -} -#loading{ - position:absolute; - left:45%; - top:40%; - border:1px solid #6593cf; - padding:2px; - background:#c3daf9; - width:150px; - text-align:center; - z-index:20001; -} -#loading .loading-indicator{ - border:1px solid #a3bad9; - background:white url(block-bg.gif) repeat-x; - color:#003366; - font:bold 13px tahoma,arial,helvetica; - padding:10px; - margin:0; -} -#classes{ - overflow:auto; - padding:5px; -} -#classes a span { - font:normal 11px verdana,helvetica,tahoma,sans-serif; -} -#classes .cls a:hover span { - text-decoration:underline; - color:#003366; -} - -#classes .x-tree-selected a span { - background:#c3daf9; - border:1px dashed #99bbe8; - color:#000; -} -#classes .x-tree-selected a:hover span { - text-decoration:none; - color:#000; -} \ No newline at end of file diff --git a/www/extras/extjs/docs/resources/docs.gif b/www/extras/extjs/docs/resources/docs.gif deleted file mode 100644 index a915dfb5a..000000000 Binary files a/www/extras/extjs/docs/resources/docs.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/docs.js b/www/extras/extjs/docs/resources/docs.js deleted file mode 100644 index 122f2f0a4..000000000 --- a/www/extras/extjs/docs/resources/docs.js +++ /dev/null @@ -1,148 +0,0 @@ -var Docs = function(){ - var layout, center; - - var classClicked = function(e, target){ - Docs.loadDoc(target.href); - }; - - return { - init : function(){ - // initialize state manager, we will use cookies - Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); - - // create the main layout - layout = new Ext.BorderLayout(document.body, { - north: { - split:false, - initialSize: 32, - titlebar: false - }, - west: { - split:true, - initialSize: 250, - minSize: 175, - maxSize: 400, - titlebar: true, - collapsible: true, - animate: true, - useShim:true, - cmargins: {top:2,bottom:2,right:2,left:2} - }, - center: { - titlebar: true, - title: 'View Documentation', - autoScroll:false, - tabPosition: 'top', - closeOnTab: true, - //alwaysShowTabs: true, - resizeTabs: true - } - }); - // tell the layout not to perform layouts until we're done adding everything - layout.beginUpdate(); - layout.add('north', new Ext.ContentPanel('header')); - - layout.add('west', new Ext.ContentPanel('classes', {title: 'Documentation Explorer', fitToFrame:true})); - center = layout.getRegion('center'); - center.add(new Ext.ContentPanel('main', {fitToFrame:true})); - - layout.restoreState(); - layout.endUpdate(); - - var classes = Ext.get('classes'); - if(Docs.classData){ - var tree = new Ext.tree.TreePanel(classes, { - loader: new Ext.tree.TreeLoader(), - rootVisible:false, - animate:false - }); - new Ext.tree.TreeSorter(tree, {folderSort:true,leafAttr:'isClass'}); - var root = new Ext.tree.AsyncTreeNode({ - text:'Ext Docs', - children: [Docs.classData] - }); - tree.setRootNode(root); - - tree.on('click', function(n){ - if(n.isLeaf()){ - Docs.loadDoc('output/'+n.attributes.fullName+'.html'); - } - }); - - tree.render(); - }else{ - classes.on('click', classClicked, null, {delegate: 'a', stopEvent:true}); - classes.select('h3').each(function(el){ - var c = new NavNode(el.dom); - if(!/^\s*(?:API Reference|Examples and Demos)\s*$/.test(el.dom.innerHTML)){ - c.collapse(); - } - }); - } - var page = window.location.href.split('#')[1]; - if(!page){ - page = 'welcome.html'; - } - this.loadDoc(page); - // safari and opera have iframe sizing issue, relayout fixes it - if(Ext.isSafari || Ext.isOpera){ - layout.layout(); - } - - var loading = Ext.get('loading'); - var mask = Ext.get('loading-mask'); - mask.setOpacity(.8); - mask.shift({ - xy:loading.getXY(), - width:loading.getWidth(), - height:loading.getHeight(), - remove:true, - duration:1, - opacity:.3, - easing:'bounceOut', - callback : function(){ - loading.fadeOut({duration:.2,remove:true}); - } - }); - }, - - loadDoc : function(url){ - Ext.get('main').dom.src = url; - } - }; -}(); -Ext.onReady(Docs.init, Docs, true); - -/** - * Simple tree node class based on Collapser and predetermined markup. - */ -var NavNode = function(clickEl, collapseEl){ - this.clickEl = Ext.get(clickEl); - if(!collapseEl){ - collapseEl = this.clickEl.dom.nextSibling; - while(collapseEl.nodeType != 1){ - collapseEl = collapseEl.nextSibling; - } - } - this.collapseEl = Ext.get(collapseEl); - this.clickEl.addClass('collapser-expanded'); - this.clickEl.mon('click', function(){ - this.collapsed === true ? - this.expand() : this.collapse(); - }, this, true); -}; - -NavNode.prototype = { - collapse : function(){ - this.collapsed = true; - this.collapseEl.setDisplayed(false); - this.clickEl.replaceClass('collapser-expanded','collapser-collapsed'); - }, - - expand : function(){ - this.collapseEl.setDisplayed(true); - this.collapsed = false; - this.collapseEl.setStyle('height', ''); - this.clickEl.replaceClass('collapser-collapsed','collapser-expanded'); - } -}; \ No newline at end of file diff --git a/www/extras/extjs/docs/resources/example.gif b/www/extras/extjs/docs/resources/example.gif deleted file mode 100644 index ad599cf2a..000000000 Binary files a/www/extras/extjs/docs/resources/example.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/folder.gif b/www/extras/extjs/docs/resources/folder.gif deleted file mode 100644 index 20644428d..000000000 Binary files a/www/extras/extjs/docs/resources/folder.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/folder_open.gif b/www/extras/extjs/docs/resources/folder_open.gif deleted file mode 100644 index ba4c657d4..000000000 Binary files a/www/extras/extjs/docs/resources/folder_open.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/forum.gif b/www/extras/extjs/docs/resources/forum.gif deleted file mode 100644 index 21d726866..000000000 Binary files a/www/extras/extjs/docs/resources/forum.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/inherited.gif b/www/extras/extjs/docs/resources/inherited.gif deleted file mode 100644 index 63039d95b..000000000 Binary files a/www/extras/extjs/docs/resources/inherited.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/minus.gif b/www/extras/extjs/docs/resources/minus.gif deleted file mode 100644 index 2c6358539..000000000 Binary files a/www/extras/extjs/docs/resources/minus.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/pkg-closed.gif b/www/extras/extjs/docs/resources/pkg-closed.gif deleted file mode 100644 index 71139cb49..000000000 Binary files a/www/extras/extjs/docs/resources/pkg-closed.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/pkg-open.gif b/www/extras/extjs/docs/resources/pkg-open.gif deleted file mode 100644 index ffd18a31a..000000000 Binary files a/www/extras/extjs/docs/resources/pkg-open.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/plus.gif b/www/extras/extjs/docs/resources/plus.gif deleted file mode 100644 index c09f82e4d..000000000 Binary files a/www/extras/extjs/docs/resources/plus.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/print.css b/www/extras/extjs/docs/resources/print.css deleted file mode 100644 index 53ea59728..000000000 --- a/www/extras/extjs/docs/resources/print.css +++ /dev/null @@ -1,206 +0,0 @@ -body { - font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; - color: #000000; - background-color:#FFFFFF; - margin: 0px; - padding: 10px; -} -.body-wrap{ - width:95%; -} -.list {list-style:inside square;margin-bottom:10px;} -.list li{padding:2px;} -body, td, th { - font-size: 13px; -} -code { - font-family: "Lucida Console", "Courier New", Courier, monospace; - font-size: 12px; -} -pre { - font-family: "Lucida Console", "Courier New", Courier, monospace; - font-size: 12px; -} -th { - text-align: left; - font-weight: bold; - vertical-align: bottom; - color:black; - padding:3px; - font-weight:bold; - border:1px solid #cccccc; - border-collapse: collapse; -} -.top-tools{ - display:none; -} -table { - background-color: white; -} -a { - color: #083772; -} -a:link { - color: #083772; - text-decoration: none; -} - -a:visited { - color: #1e4e8f; - text-decoration: none; -} - -a:hover { - text-decoration: underline; - color: #0000CC; -} - -a:active { - text-decoration: none; - color: #1e4e8f; -} - -/* Headings */ -h1, h2, h3, h4, h5, h6 { - font-family: "Trebuchet MS", "Bitstream Vera Sans", verdana, lucida, arial, helvetica, sans-serif; - font-weight: bold; - margin-top: 3px; - margin-bottom: 3px; - letter-spacing: 1px; - width: 90%; -} - -h1 { - font-size: 18px; -} - -h2 { - font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; - font-weight: bold; - font-size: 18px; - padding-top: 20px; - padding-bottom: 5px; -} - -h3 { - font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; - font-weight: bold; - font-size: 16px; -} - -h4 { - font-size: 12px; - color: #666666; -} - -h5 { - font-size: 11px; -} - -.label { - font-weight: bold; - padding-right: 15px; -} -.description{ - margin: 10px 0px; -} -.member-table{ - width:100%; - margin-bottom:10px; -} -.member-table td{ - padding:2px; - vertical-align:top; - padding-right:15px; -} -body .alt{ - background:#f1f1f1; -} -.member-table td.micon{ - width:20px; - padding:0px; - border-left:1px solid #bbbbbb; -} -.member-table td.msource{ - border-right:1px solid #bbbbbb; - width:100px; -} -.mlink{ - font-weight:bold; -} -.member-table td.inherited{ - background-image: url(inherited.gif); - background-position:2px 2px; - background-repeat: no-repeat; -} -.member-table td.mdesc{ - padding-top:0px; -} -.member-table td.micon,.member-table td.mdesc,.member-table td.msource{ - border-bottom:1px solid #bbbbbb; -} -.optional{ - color:#555555; -} - -pre { - background: #F8F8F8; - border: 1px solid #e8e8e8; - border-left-width: 8px; - padding: 0.8em; - margin: 1em ; - margin-right: 0; -} -pre { - font-size: 12px !important; - line-height:14px !important; - padding:5px; - margin-left:0; -} -.detail-wrap{ - border:1px solid #bbbbbb; - border-bottom:0px none; -} -.mdetail-head{ - margin-top:10px; -} -.mdetail{ - padding:7px; - border-bottom:1px solid #bbbbbb; -} -.mdetail h3{ - margin: 5px 0px; - font-size:14px; - color:#083772; -} -.mdetail-desc{ - margin:8px; -} -.mdetail-def{ - font-style: italic; - font-size: 12px; - margin-top:10px; - margin-left:8px; - display:block; -} -.sub-desc{ - margin:5px; - margin-left:16px; -} -.mdetail-params{ - margin-top:10px; -} -.mdetail-params strong{ - font-weight:bold; - display: block; - margin-bottom:3px; -} -.mdetail-params ul{ - list-style: inside; - list-style-type: disc; - margin-left:12px; -} -.mdetail-params li{ - list-style: inside; - list-style-type: disc; -} \ No newline at end of file diff --git a/www/extras/extjs/docs/resources/print.gif b/www/extras/extjs/docs/resources/print.gif deleted file mode 100644 index b8a48ccdf..000000000 Binary files a/www/extras/extjs/docs/resources/print.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/reset.css b/www/extras/extjs/docs/resources/reset.css deleted file mode 100644 index 16180f7f9..000000000 --- a/www/extras/extjs/docs/resources/reset.css +++ /dev/null @@ -1,7 +0,0 @@ -/* -Copyright (c) 2006, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 0.11.0 -*/ -body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';} \ No newline at end of file diff --git a/www/extras/extjs/docs/resources/style.css b/www/extras/extjs/docs/resources/style.css deleted file mode 100644 index 74d198e4f..000000000 --- a/www/extras/extjs/docs/resources/style.css +++ /dev/null @@ -1,216 +0,0 @@ -body { - font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; - color: #000000; - background-color:#FFFFFF; - margin: 0px; - padding: 10px; -} -.body-wrap{ - width:95%; -} -.list {list-style:inside square;margin-bottom:10px;} -.list li{padding:2px;} -body, td, th { - font-size: 13px; -} -code { - font-family: "Lucida Console", "Courier New", Courier, monospace; - font-size: 12px; -} -pre { - font-family: "Lucida Console", "Courier New", Courier, monospace; - font-size: 12px; -} -th { - text-align: left; - font-weight: bold; - vertical-align: bottom; - background:#1e4e8f url(/deploy/yui-ext/resources/images/basic-dialog/hd-sprite.gif) repeat-x 0px -83px; - color:white; - padding:3px; -} -.top-tools{ - float:right; - clear:none; -} -table { - background-color: white; -} -a { - color: #083772; -} -a:link { - color: #083772; - text-decoration: none; -} - -a:visited { - color: #1e4e8f; - text-decoration: none; -} - -a:hover { - text-decoration: underline; - color: #0000CC; -} - -a:active { - text-decoration: none; - color: #1e4e8f; -} - -/* Headings */ -h1, h2, h3, h4, h5, h6 { - font-family: "Trebuchet MS", "Bitstream Vera Sans", verdana, lucida, arial, helvetica, sans-serif; - font-weight: bold; - margin-top: 3px; - margin-bottom: 3px; - letter-spacing: 1px; - width: 90%; -} - -h1 { - font-size: 18px; -} - -h2 { - font-weight: bold; - font-size: 15px; - padding-top: 20px; - padding-bottom: 5px; -} - -h3 { - font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; - font-weight: bold; - font-size: 16px; -} - -h4 { - font-size: 12px; - color: #666666; -} - -h5 { - font-size: 11px; -} - -.label { - font-weight: bold; - padding-right: 15px; -} -.description{ - margin: 10px 0px; -} -.member-table{ - width:100%; - margin-bottom:10px; -} -.member-table td{ - padding:2px; - vertical-align:top; - padding-right:15px; -} -body .alt{ - background:#f1f1f1; -} -.member-table td.micon{ - width:20px; - padding:0px; - border-left:1px solid #bbbbbb; -} -.member-table td.msource{ - border-right:1px solid #bbbbbb; - width:100px; -} -.mlink{ - font-weight:bold; -} -.member-table td.inherited{ - background-image: url(inherited.gif); - background-position:2px 2px; - background-repeat: no-repeat; -} -.member-table td.mdesc{ - padding-top:0px; -} -.member-table td.micon,.member-table td.mdesc,.member-table td.msource{ - border-bottom:1px solid #bbbbbb; -} -.optional{ - color:#555555; -} - -pre { - background: #F8F8F8; - border: 1px solid #e8e8e8; - border-left-width: 8px; - padding: 0.8em; - margin: 1em ; - margin-right: 0; - font-size: 12px; - line-height:14px; - padding:5px; - margin-left:0; -} -.detail-wrap{ - border:1px solid #bbbbbb; - border-bottom:0px none; -} -.mdetail-head{ - margin-top:10px; -} -.mdetail{ - padding:7px; - border-bottom:1px solid #bbbbbb; -} -.mdetail h3{ - margin: 5px 0px; - font-size:14px; - color:#083772; -} -.mdetail-desc{ - margin:8px; -} -.mdetail-def{ - font-style: italic; - font-size: 12px; - margin-top:10px; - margin-left:8px; - display:block; -} -.sub-desc{ - margin:5px; - margin-left:16px; -} -.mdetail-params{ - margin-top:10px; -} -.mdetail-params strong{ - font-weight:bold; - display: block; - margin-bottom:3px; -} -.mdetail-params ul{ - list-style: inside; - list-style-type: disc; - margin-left:12px; -} -.mdetail-params li{ - list-style: inside; - list-style-type: disc; -} -pre.highlighted code{ - font-family:courier,"courier new",monospace; - font-size:12px !important; - color:#000; -} -.highlighted b{ - font-weight: normal; - color: #800080; -} -.highlighted i,.highlighted i b{ - font-weight: normal; - font-style: normal; - color: #999; -} \ No newline at end of file diff --git a/www/extras/extjs/docs/resources/tree-bg.gif b/www/extras/extjs/docs/resources/tree-bg.gif deleted file mode 100644 index 00fac6362..000000000 Binary files a/www/extras/extjs/docs/resources/tree-bg.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/welcome-bg.gif b/www/extras/extjs/docs/resources/welcome-bg.gif deleted file mode 100644 index 24b1ab2a8..000000000 Binary files a/www/extras/extjs/docs/resources/welcome-bg.gif and /dev/null differ diff --git a/www/extras/extjs/docs/resources/welcome.css b/www/extras/extjs/docs/resources/welcome.css deleted file mode 100644 index 5817a185c..000000000 --- a/www/extras/extjs/docs/resources/welcome.css +++ /dev/null @@ -1,61 +0,0 @@ -body{ - background:url(welcome-bg.gif) top left; - font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; - color: #000000; - margin: 0px; - font-size:13px; - padding-bottom:15px; -} -a { - color: #083772; -} -a:link { - color: #083772; - text-decoration: none; -} - -a:visited { - color: #1e4e8f; - text-decoration: none; -} - -a:hover { - text-decoration: underline; - color: #0000CC; -} -.col{ - width:45%; - float:left; - margin-left:10px; -} -.block{ - border:3px solid #B2D0F7; - background:white url(block-bg.gif) repeat-x; - margin-top:10px; -} -.block-title{ - color: #083772; - font-weight: bold; - padding: 4px; - padding-left: 8px; -} -.block-body{ - padding:8px; - padding-top:2px; -} -.block-body b{ - color:#333333; - font-size:11px; -} -.block-body em { - display:block; - margin-top:5px; - font-size:11px; - color:gray; - text-align:right; -} -.list{ - list-style: square; - padding-left:20px; - margin-top:5px; -} \ No newline at end of file diff --git a/www/extras/extjs/docs/welcome.html b/www/extras/extjs/docs/welcome.html deleted file mode 100644 index c3e8d7bd6..000000000 --- a/www/extras/extjs/docs/welcome.html +++ /dev/null @@ -1,64 +0,0 @@ - - - Ext - Welcome - - - - -
-
-

Welcome!

-
- Welcome to the Ext Documentation Center. Click on a class or example in the tree on the left to begin learning about Ext.

- If you need help, it's only a click away: Help Forums.
-
-
-
-

API Reference

-
- The API Reference contains documentation for all the classes and components found in the Ext library. - The most common classes: - - Ext 1.0.1 -
-
-
-
-
-

Examples and Demos

-
- New examples: -
- Other popular examples: -
- Common Problems -
    -
  • To view the HTML source of an example, right click (Mac users control+click) in the body of the - example and select "View Source" or "This Frame"->"View Source".
  • -
  • Some examples take up a lot of screen space. You can right click and "Open in a new tab" or - "Open in a new Window" on the link to an example to see it in a full window.
  • -
-
-
-
- - \ No newline at end of file diff --git a/www/extras/extjs/examples/README.txt b/www/extras/extjs/examples/README.txt deleted file mode 100644 index deffb6350..000000000 --- a/www/extras/extjs/examples/README.txt +++ /dev/null @@ -1,3 +0,0 @@ -The examples can be browsed by opening index.html in the docs folder. - -Some examples use XHR. Those examples will need to be on a webserver to run since XHR can't access the local file system. \ No newline at end of file diff --git a/www/extras/extjs/examples/debug/debug-console.html b/www/extras/extjs/examples/debug/debug-console.html deleted file mode 100644 index caba20d35..000000000 --- a/www/extras/extjs/examples/debug/debug-console.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - -Ext Debug Console - - - - - - - - - - - -

Ext Debug Console

-
-

Included in ext-all-debug.js is the Ext Debug Console. It offers a limited amount of FireBug - functionality cross browser. The most important feature is the "DOM Inspector" and CSS and DOM attribute editing. In any browser where "console" - is not already defined, the Ext console will handle console.log(), time() and other calls. -

-

- Try It
- This page includes ext-all-debug.js and some test markup so you can try it out. Hit control+shift+home to bring up the console or click on the image below. -

- - -

- The full source is available in the "source" directory of the Ext download. -

-
-

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa. Vivamus eget quam. Vivamus tincidunt diam nec urna. Curabitur velit. Quisque dolor magna, ornare sed, elementum porta, luctus in, leo.

-

Donec quis dui. Sed imperdiet. Nunc consequat, est eu sollicitudin gravida, mauris ligula lacinia mauris, eu porta dui nisl in velit. Nam congue, odio id auctor nonummy, augue lectus euismod nunc, in tristique turpis dolor sed urna. Donec sit amet quam eget diam fermentum pharetra. Integer tincidunt arcu ut purus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla blandit malesuada odio. Nam augue. Aenean molestie sapien in mi. Suspendisse tincidunt. Pellentesque tempus dui vitae sapien. Donec aliquam ipsum sit amet pede. Sed scelerisque mi a erat. Curabitur rutrum ullamcorper risus. Maecenas et lorem ut felis dictum viverra. Fusce sem. Donec pharetra nibh sit amet sapien.

-

Aenean ut orci sed ligula consectetuer pretium. Aliquam odio. Nam pellentesque enim. Nam tincidunt condimentum nisi. Maecenas convallis luctus ligula. Donec accumsan ornare risus. Vestibulum id magna a nunc posuere laoreet. Integer iaculis leo vitae nibh. Nam vulputate, mauris vitae luctus pharetra, pede neque bibendum tellus, facilisis commodo diam nisi eget lacus. Duis consectetuer pulvinar nisi. Cras interdum ultricies sem. Nullam tristique. Suspendisse elementum purus eu nisl. Nulla facilisi. Phasellus ultricies ullamcorper lorem. Sed euismod ante vitae lacus. Nam nunc leo, congue vehicula, luctus ac, tempus non, ante. Morbi suscipit purus a nulla. Sed eu diam.

-

Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras imperdiet felis id velit. Ut non quam at sem dictum ullamcorper. Vestibulum pharetra purus sed pede. Aliquam ultrices, nunc in varius mattis, felis justo pretium magna, eget laoreet justo eros id eros. Aliquam elementum diam fringilla nulla. Praesent laoreet sapien vel metus. Cras tempus, sapien condimentum dictum dapibus, lorem augue fringilla orci, ut tincidunt eros nisi eget turpis. Nullam nunc nunc, eleifend et, dictum et, pharetra a, neque. Ut feugiat. Aliquam erat volutpat. Donec pretium odio nec felis. Phasellus sagittis lacus eget sapien. Donec est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

-

Vestibulum semper. Nullam non odio. Aliquam quam. Mauris eu lectus non nunc auctor ullamcorper. Sed tincidunt molestie enim. Phasellus lobortis justo sit amet quam. Duis nulla erat, varius a, cursus in, tempor sollicitudin, mauris. Aliquam mi velit, consectetuer mattis, consequat tristique, pulvinar ac, nisl. Aliquam mattis vehicula elit. Proin quis leo sed tellus scelerisque molestie. Quisque luctus. Integer mattis. Donec id augue sed leo aliquam egestas. Quisque in sem. Donec dictum enim in dolor. Praesent non erat. Nulla ultrices vestibulum quam.

-

Duis hendrerit, est vel lobortis sagittis, tortor erat scelerisque tortor, sed pellentesque sem enim id metus. Maecenas at pede. Nulla velit libero, dictum at, mattis quis, sagittis vel, ante. Phasellus faucibus rutrum dui. Cras mauris elit, bibendum at, feugiat non, porta id, neque. Nulla et felis nec odio mollis vehicula. Donec elementum tincidunt mauris. Duis vel dui. Fusce iaculis enim ac nulla. In risus.

-

Donec gravida. Donec et enim. Morbi sollicitudin, lacus a facilisis pulvinar, odio turpis dapibus elit, in tincidunt turpis felis nec libero. Nam vestibulum tempus ipsum. In hac habitasse platea dictumst. Nulla facilisi. Donec semper ligula. Donec commodo tortor in quam. Etiam massa. Ut tempus ligula eget tellus. Curabitur id velit ut velit varius commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla facilisi. Fusce ornare pellentesque libero. Nunc rhoncus. Suspendisse potenti. Ut consequat, leo eu accumsan vehicula, justo sem lobortis elit, ac sollicitudin ipsum neque nec ante.

-

Aliquam elementum mauris id sem. Vivamus varius, est ut nonummy consectetuer, nulla quam bibendum velit, ac gravida nisi felis sit amet urna. Aliquam nec risus. Maecenas lacinia purus ut velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse sit amet dui vitae lacus fermentum sodales. Donec varius dapibus nisl. Praesent at velit id risus convallis bibendum. Aliquam felis nibh, rutrum nec, blandit non, mattis sit amet, magna. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam varius dignissim nibh. Quisque id orci ac ante hendrerit molestie. Aliquam malesuada enim non neque.

-
- diff --git a/www/extras/extjs/examples/debug/inspector.gif b/www/extras/extjs/examples/debug/inspector.gif deleted file mode 100644 index d02e467fc..000000000 Binary files a/www/extras/extjs/examples/debug/inspector.gif and /dev/null differ diff --git a/www/extras/extjs/examples/dialog/blog.html b/www/extras/extjs/examples/dialog/blog.html deleted file mode 100644 index 72f0b4b08..000000000 --- a/www/extras/extjs/examples/dialog/blog.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - -Comment Dialog Example - - - - - - - - - - - - -
-

Comment Dialog Example

- -

This is a more complex example that shows how to implement a comment dialog similar to the one on my blog. - The dialog retrieves the comments in JSON format and renders them to the "View Comments" tab. The "Post Comment" tab posts the comment - to a file on the server that just returns a dummy response (not what you type in) in JSON format. The reason for the dummy response - is so the example can easily be dropped in whatever your environment is and work.

-

Note that the js is not minified so it is readable. See post.js for the full source code.

-

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa. Vivamus eget quam. Vivamus tincidunt diam nec urna. Curabitur velit. Quisque dolor magna, ornare sed, elementum porta, luctus in, leo.

-

Donec quis dui. Sed imperdiet. Nunc consequat, est eu sollicitudin gravida, mauris ligula lacinia mauris, eu porta dui nisl in velit. Nam congue, odio id auctor nonummy, augue lectus euismod nunc, in tristique turpis dolor sed urna. Donec sit amet quam eget diam fermentum pharetra. Integer tincidunt arcu ut purus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla blandit malesuada odio. Nam augue. Aenean molestie sapien in mi. Suspendisse tincidunt. Pellentesque tempus dui vitae sapien. Donec aliquam ipsum sit amet pede. Sed scelerisque mi a erat. Curabitur rutrum ullamcorper risus. Maecenas et lorem ut felis dictum viverra. Fusce sem. Donec pharetra nibh sit amet sapien.

-

Aenean ut orci sed ligula consectetuer pretium. Aliquam odio. Nam pellentesque enim. Nam tincidunt condimentum nisi. Maecenas convallis luctus ligula. Donec accumsan ornare risus. Vestibulum id magna a nunc posuere laoreet. Integer iaculis leo vitae nibh. Nam vulputate, mauris vitae luctus pharetra, pede neque bibendum tellus, facilisis commodo diam nisi eget lacus. Duis consectetuer pulvinar nisi. Cras interdum ultricies sem. Nullam tristique. Suspendisse elementum purus eu nisl. Nulla facilisi. Phasellus ultricies ullamcorper lorem. Sed euismod ante vitae lacus. Nam nunc leo, congue vehicula, luctus ac, tempus non, ante. Morbi suscipit purus a nulla. Sed eu diam.

-

Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras imperdiet felis id velit. Ut non quam at sem dictum ullamcorper. Vestibulum pharetra purus sed pede. Aliquam ultrices, nunc in varius mattis, felis justo pretium magna, eget laoreet justo eros id eros. Aliquam elementum diam fringilla nulla. Praesent laoreet sapien vel metus. Cras tempus, sapien condimentum dictum dapibus, lorem augue fringilla orci, ut tincidunt eros nisi eget turpis. Nullam nunc nunc, eleifend et, dictum et, pharetra a, neque. Ut feugiat. Aliquam erat volutpat. Donec pretium odio nec felis. Phasellus sagittis lacus eget sapien. Donec est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

-

Vestibulum semper. Nullam non odio. Aliquam quam. Mauris eu lectus non nunc auctor ullamcorper. Sed tincidunt molestie enim. Phasellus lobortis justo sit amet quam. Duis nulla erat, varius a, cursus in, tempor sollicitudin, mauris. Aliquam mi velit, consectetuer mattis, consequat tristique, pulvinar ac, nisl. Aliquam mattis vehicula elit. Proin quis leo sed tellus scelerisque molestie. Quisque luctus. Integer mattis. Donec id augue sed leo aliquam egestas. Quisque in sem. Donec dictum enim in dolor. Praesent non erat. Nulla ultrices vestibulum quam.

-

Duis hendrerit, est vel lobortis sagittis, tortor erat scelerisque tortor, sed pellentesque sem enim id metus. Maecenas at pede. Nulla velit libero, dictum at, mattis quis, sagittis vel, ante. Phasellus faucibus rutrum dui. Cras mauris elit, bibendum at, feugiat non, porta id, neque. Nulla et felis nec odio mollis vehicula. Donec elementum tincidunt mauris. Duis vel dui. Fusce iaculis enim ac nulla. In risus.

-

Donec gravida. Donec et enim. Morbi sollicitudin, lacus a facilisis pulvinar, odio turpis dapibus elit, in tincidunt turpis felis nec libero. Nam vestibulum tempus ipsum. In hac habitasse platea dictumst. Nulla facilisi. Donec semper ligula. Donec commodo tortor in quam. Etiam massa. Ut tempus ligula eget tellus. Curabitur id velit ut velit varius commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla facilisi. Fusce ornare pellentesque libero. Nunc rhoncus. Suspendisse potenti. Ut consequat, leo eu accumsan vehicula, justo sem lobortis elit, ac sollicitudin ipsum neque nec ante.

-

Aliquam elementum mauris id sem. Vivamus varius, est ut nonummy consectetuer, nulla quam bibendum velit, ac gravida nisi felis sit amet urna. Aliquam nec risus. Maecenas lacinia purus ut velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse sit amet dui vitae lacus fermentum sodales. Donec varius dapibus nisl. Praesent at velit id risus convallis bibendum. Aliquam felis nibh, rutrum nec, blandit non, mattis sit amet, magna. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam varius dignissim nibh. Quisque id orci ac ante hendrerit molestie. Aliquam malesuada enim non neque.

-
- - - - - diff --git a/www/extras/extjs/examples/dialog/comments.txt b/www/extras/extjs/examples/dialog/comments.txt deleted file mode 100644 index a758d94b5..000000000 --- a/www/extras/extjs/examples/dialog/comments.txt +++ /dev/null @@ -1,44 +0,0 @@ -{"comments": [{ - id: "1", - author: "Jack Slocum", - link: "http://www.jackslocum.com/", - date: "October 29th, 2006 9:21pm", - text: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa." - },{ - id: "2", - author: "Jack Slocum", - link: "http://www.jackslocum.com/", - date: "October 29th, 2006 9:21pm", - text: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa." - },{ - id: "3", - author: "Jack Slocum", - link: "http://www.jackslocum.com/", - date: "October 29th, 2006 9:21pm", - text: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa." - },{ - id: "4", - author: "Jack Slocum", - link: "http://www.jackslocum.com/", - date: "October 29th, 2006 9:21pm", - text: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa." - },{ - id: "5", - author: "Jack Slocum", - link: "http://www.jackslocum.com/", - date: "October 29th, 2006 9:21pm", - text: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa." - },{ - id: "6", - author: "Jack Slocum", - link: "http://www.jackslocum.com/", - date: "October 29th, 2006 9:21pm", - text: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa." - },{ - id: "7", - author: "Jack Slocum", - link: "http://www.jackslocum.com/", - date: "October 29th, 2006 9:21pm", - text: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa." - } -]} \ No newline at end of file diff --git a/www/extras/extjs/examples/dialog/hello.html b/www/extras/extjs/examples/dialog/hello.html deleted file mode 100644 index 3ae5bfc94..000000000 --- a/www/extras/extjs/examples/dialog/hello.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - -Hello World Dialog Example - - - - - - - - - - - - - - - - - -

Hello World Dialog

-

This example shows how to create a very simple modal BasicDialog with "autoTabs".

-

-

Note that the js is not minified so it is readable. See hellos.js for the full source code.

-Here's snapshot of the code that creates the dialog: -
dialog = new Ext.BasicDialog("hello-dlg", {
-        modal:true,
-        autoTabs:true,
-        width:500,
-        height:300,
-        shadow:true,
-        minWidth:300,
-        minHeight:300
-});
-dialog.addKeyListener(27, dialog.hide, dialog);
-dialog.addButton('Close', dialog.hide, dialog);
-dialog.addButton('Submit', dialog.hide, dialog).disable();
-
- - - - - - diff --git a/www/extras/extjs/examples/dialog/hello.js b/www/extras/extjs/examples/dialog/hello.js deleted file mode 100644 index 7762b85f0..000000000 --- a/www/extras/extjs/examples/dialog/hello.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -// create the HelloWorld application (single instance) -var HelloWorld = function(){ - // everything in this space is private and only accessible in the HelloWorld block - - // define some private variables - var dialog, showBtn; - - // return a public interface - return { - init : function(){ - showBtn = Ext.get('show-dialog-btn'); - // attach to click event - showBtn.on('click', this.showDialog, this); - }, - - showDialog : function(){ - if(!dialog){ // lazy initialize the dialog and only create it once - dialog = new Ext.BasicDialog("hello-dlg", { - autoTabs:true, - width:500, - height:300, - shadow:true, - minWidth:300, - minHeight:250, - proxyDrag: true - }); - dialog.addKeyListener(27, dialog.hide, dialog); - dialog.addButton('Submit', dialog.hide, dialog).disable(); - dialog.addButton('Close', dialog.hide, dialog); - } - dialog.show(showBtn.dom); - } - }; -}(); - -// using onDocumentReady instead of window.onload initializes the application -// when the DOM is ready, without waiting for images and other resources to load -Ext.onReady(HelloWorld.init, HelloWorld, true); \ No newline at end of file diff --git a/www/extras/extjs/examples/dialog/images/comment-bg.gif b/www/extras/extjs/examples/dialog/images/comment-bg.gif deleted file mode 100644 index b1b04161a..000000000 Binary files a/www/extras/extjs/examples/dialog/images/comment-bg.gif and /dev/null differ diff --git a/www/extras/extjs/examples/dialog/images/comment.gif b/www/extras/extjs/examples/dialog/images/comment.gif deleted file mode 100644 index 0c83f6a64..000000000 Binary files a/www/extras/extjs/examples/dialog/images/comment.gif and /dev/null differ diff --git a/www/extras/extjs/examples/dialog/images/warning.gif b/www/extras/extjs/examples/dialog/images/warning.gif deleted file mode 100644 index 806d4bc09..000000000 Binary files a/www/extras/extjs/examples/dialog/images/warning.gif and /dev/null differ diff --git a/www/extras/extjs/examples/dialog/layout.html b/www/extras/extjs/examples/dialog/layout.html deleted file mode 100644 index 8549abddb..000000000 --- a/www/extras/extjs/examples/dialog/layout.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - -Layout Dialog Example - - - - - - - - - - - - -

Layout Dialog Example

-

This example shows how to create a modal dialog with an embedded BorderLayout using LayoutDialog.

-

-

Note that the js is not minified so it is readable. See layout.js for the full source code.

- - - - - diff --git a/www/extras/extjs/examples/dialog/layout.js b/www/extras/extjs/examples/dialog/layout.js deleted file mode 100644 index b8c6334db..000000000 --- a/www/extras/extjs/examples/dialog/layout.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - - -// create the LayoutExample application (single instance) -var LayoutExample = function(){ - // everything in this space is private and only accessible in the HelloWorld block - - // define some private variables - var dialog, showBtn; - - var toggleTheme = function(){ - Ext.get(document.body, true).toggleClass('ytheme-gray'); - }; - // return a public interface - return { - init : function(){ - showBtn = Ext.get('show-dialog-btn'); - // attach to click event - showBtn.on('click', this.showDialog, this); - - }, - - showDialog : function(){ - if(!dialog){ // lazy initialize the dialog and only create it once - dialog = new Ext.LayoutDialog("hello-dlg", { - modal:true, - width:600, - height:400, - shadow:true, - minWidth:300, - minHeight:300, - proxyDrag: true, - west: { - split:true, - initialSize: 150, - minSize: 100, - maxSize: 250, - titlebar: true, - collapsible: true, - animate: true - }, - center: { - autoScroll:true, - tabPosition: 'top', - closeOnTab: true, - alwaysShowTabs: true - } - }); - dialog.addKeyListener(27, dialog.hide, dialog); - dialog.addButton('Submit', dialog.hide, dialog); - dialog.addButton('Close', dialog.hide, dialog); - - var layout = dialog.getLayout(); - layout.beginUpdate(); - layout.add('west', new Ext.ContentPanel('west', {title: 'West'})); - layout.add('center', new Ext.ContentPanel('center', {title: 'The First Tab'})); - // generate some other tabs - layout.add('center', new Ext.ContentPanel(Ext.id(), { - autoCreate:true, title: 'Another Tab', background:true})); - layout.add('center', new Ext.ContentPanel(Ext.id(), { - autoCreate:true, title: 'Third Tab', closable:true, background:true})); - layout.endUpdate(); - } - dialog.show(showBtn.dom); - } - }; -}(); - -// using onDocumentReady instead of window.onload initializes the application -// when the DOM is ready, without waiting for images and other resources to load -Ext.EventManager.onDocumentReady(LayoutExample.init, LayoutExample, true); \ No newline at end of file diff --git a/www/extras/extjs/examples/dialog/msg-box.html b/www/extras/extjs/examples/dialog/msg-box.html deleted file mode 100644 index 87955a00d..000000000 --- a/www/extras/extjs/examples/dialog/msg-box.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -MessageBox - - - - - - - - - - - - -

MessageBox Dialogs

-

The example shows how to use the MessageBox class. Some of the buttons have animations, some are normal.

-

The js is not minified so it is readable. See msg-box.js.

- -

- Confirm
- Standard Yes/No dialog. - -

- -

- Prompt
- Standard prompt dialog. - -

- -

- Multi-line Prompt
- A multi-line prompt dialog. - -

- -

- Yes/No/Cancel
- Standard Yes/No/Cancel dialog. - -

- -

- Progress Dialog
- You can set a progress on a progress MessageBox. - -

- -

- Alert
- Standard alert message dialog. - -

- - diff --git a/www/extras/extjs/examples/dialog/msg-box.js b/www/extras/extjs/examples/dialog/msg-box.js deleted file mode 100644 index e3a728c9a..000000000 --- a/www/extras/extjs/examples/dialog/msg-box.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function(){ - Ext.get('mb1').on('click', function(e){ - Ext.MessageBox.confirm('Confirm', 'Are you sure you want to do that?', showResult); - }); - - Ext.get('mb2').on('click', function(e){ - Ext.MessageBox.prompt('Name', 'Please enter your name:', showResultText); - }); - - Ext.get('mb3').on('click', function(e){ - Ext.MessageBox.show({ - title: 'Address', - msg: 'Please enter your address:', - width:300, - buttons: Ext.MessageBox.OKCANCEL, - multiline: true, - fn: showResultText, - animEl: 'mb3' - }); - }); - - Ext.get('mb4').on('click', function(e){ - Ext.MessageBox.show({ - title:'Save Changes?', - msg: 'Your are closing a tab that has unsaved changes. Would you like to save your changes?', - buttons: Ext.MessageBox.YESNOCANCEL, - fn: showResult, - animEl: 'mb4' - }); - }); - - Ext.get('mb6').on('click', function(){ - Ext.MessageBox.show({ - title: 'Please wait...', - msg: 'Initializing...', - width:240, - progress:true, - closable:false, - animEl: 'mb6' - }); - - // this hideous block creates the bogus progress - var f = function(v){ - return function(){ - if(v == 11){ - Ext.MessageBox.hide(); - }else{ - Ext.MessageBox.updateProgress(v/10, 'Loading item ' + v + ' of 10...'); - } - }; - }; - for(var i = 1; i < 12; i++){ - setTimeout(f(i), i*1000); - } - }); - - Ext.get('mb7').on('click', function(){ - Ext.MessageBox.alert('Status', 'Changes saved successfully.', showResult); - }); - - - function showResult(btn){ - Ext.example.msg('Button Click', 'You clicked the {0} button', btn); - }; - - function showResultText(btn, text){ - Ext.example.msg('Button Click', 'You clicked the {0} button and entered the text "{1}".', btn, text); - }; -}); \ No newline at end of file diff --git a/www/extras/extjs/examples/dialog/post.css b/www/extras/extjs/examples/dialog/post.css deleted file mode 100644 index 46ed27259..000000000 --- a/www/extras/extjs/examples/dialog/post.css +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -body{ - font: normal 9pt verdana,tahoma,arial,helvetica; -} -.post{ - padding:15px; -} -.post h2{ - font:normal 22px times; - margin-bottom:10px; -} -.post p{ - margin-bottom:10px; - line-height:18px; -} - -.loading-indicator { - font-size:8pt; - background-image: url('../../images/grid/loading.gif'); - background-repeat: no-repeat; - background-position: left; - padding-left:20px; - margin:5px; -} - -/** Posting messages */ -.x-dlg-ft{ - position:relative; -} - -#dlg-msg { - position:absolute; - left:0px; - top:0px; - width:40%; -} -.posting-msg{ - display:none; - font:normal 8pt tahoma, arial; - color:black; -} -#post-error-msg{ - color:red; -} -.active-msg{ - display:block; -} - -/** Comment Box (with links) */ -#comment-box{ - float:right; - clear:none; - border:2px solid #aca899; - background-color:#f3f2e7; - padding:10px; - margin:15px; -} -#comment-box li{ - margin:4px; -} -#comment-box a{ - text-decoration:none; -} -#comments-list{ - margin:0px; - padding:0px; -} -/** Comment Post Form */ -#post-tab .inner-tab{ - margin:10px; - margin-top:5px; -} -#comment-form label { - margin:4px; - margin-left:0px; - display:block; - color:#333333; - font:normal 10px arial,helvetica; - line-height:14px; -} -#comment-form .textinput{ - border:1px solid #6593cf; - width:98%; - padding:1px; - margin-bottom:2px; - font:normal 11px tahoma, arial; -} -#comment { - width:480px; - height:205px; - font:normal 11px tahoma, arial; -} - -/** Comment List */ -.commentmetadata { - margin: 0; - display: block; - font-size: 9px; - font-weight:normal; - color:gray; - margin-bottom:10px; - float:right; - clear:none; -} -.cuser{ - float:left; - clear:none; - font:bold 12px tahoma, arial; - padding-left:21px; - background: url(images/comment.gif) no-repeat; -} -.cuser a{ - font:bold 12px tahoma, arial; -} -.cheader{ - height:20px; -} -#comments-list li { - display:block; - background: url(images/comment-bg.gif) repeat-x; - background-position:0px -5px; - padding:15px; - padding-bottom:18px; - font-size:12px; -} \ No newline at end of file diff --git a/www/extras/extjs/examples/dialog/post.js b/www/extras/extjs/examples/dialog/post.js deleted file mode 100644 index ae564b929..000000000 --- a/www/extras/extjs/examples/dialog/post.js +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -var Comments = function(){ - var dialog, postLink, viewLink, txtComment; - var tabs, commentsList, postBtn, renderer; - var wait, error, errorMsg; - var posting = false; - - return { - init : function(){ - // cache some elements for quick access - txtComment = Ext.get('comment'); - commentsList = Ext.get('comments-list'); - postLink = Ext.get('post-comment'); - viewLink = Ext.get('view-comments'); - wait = Ext.get('post-wait'); - error = Ext.get('post-error'); - errorMsg = Ext.get('post-error-msg'); - - this.createDialog(); - - postLink.on('click', function(e){ - e.stopEvent(); - tabs.activate('post-tab'); - dialog.show(postLink); - }); - - viewLink.on('click', function(e){ - e.stopEvent(); - tabs.activate('view-tab'); - dialog.show(viewLink); - }); - }, - - // submit the comment to the server - submitComment : function(){ - postBtn.disable(); - wait.radioClass('active-msg'); - - var commentSuccess = function(o){ - postBtn.enable(); - var data = renderer.parse(o.responseText); - // if we got a comment back - if(data){ - wait.removeClass('active-msg'); - renderer.append(data.comments[0]); - dialog.hide(); - }else{ - error.radioClass('active-msg'); - errorMsg.update(o.responseText); - } - }; - - var commentFailure = function(o){ - postBtn.enable(); - error.radioClass('active-msg'); - errorMsg.update('Unable to connect.'); - }; - - Ext.lib.Ajax.formRequest('comment-form', 'post.php', - {success: commentSuccess, failure: commentFailure}); - }, - - createDialog : function(){ - dialog = new Ext.BasicDialog("comments-dlg", { - autoTabs:true, - width:500, - height:300, - shadow:true, - minWidth:300, - minHeight:300 - }); - dialog.addKeyListener(27, dialog.hide, dialog); - postBtn = dialog.addButton('Post', this.submitComment, this); - dialog.addButton('Close', dialog.hide, dialog); - - - // clear any messages and indicators when the dialog is closed - dialog.on('hide', function(){ - wait.removeClass('active-msg'); - error.removeClass('active-msg'); - txtComment.dom.value = ''; - }); - - // stoe a refeence to the tabs - tabs = dialog.getTabs(); - - // auto fit the comment box to the dialog size - var sizeTextBox = function(){ - txtComment.setSize(dialog.size.width-44, dialog.size.height-264); - }; - sizeTextBox(); - dialog.on('resize', sizeTextBox); - - // hide the post button if not on Post tab - tabs.on('tabchange', function(panel, tab){ - postBtn.setVisible(tab.id == 'post-tab'); - }); - - // set up the comment renderer, all ajax requests for commentsList - // go through this render - renderer = new CommentRenderer(commentsList); - var um = commentsList.getUpdateManager(); - um.setRenderer(renderer); - - // lazy load the comments when the view tab is activated - var commentsLoaded = false; - tabs.getTab('view-tab').on('activate', function(){ - if(!commentsLoaded){ - um.update('comments.txt'); - commentsLoaded = true; - } - }); - } - }; -}(); - -// This class handles rendering JSON into comments -var CommentRenderer = function(list){ - // create a template for each JSON object - var tpl = new Ext.DomHelper.Template( - '
  • ' + - '
    ' + - '
    {author}:
    ' + - '' + - '
    {text}
  • ' - ); - - this.parse = function(json){ - try{ - return eval('(' + json + ')'); - }catch(e){} - return null; - }; - - // public render function for use with UpdateManager - this.render = function(el, response){ - var data = this.parse(response.responseText); - if(!data || !data.comments || data.comments.length < 1){ - el.update('There are no comments for this post.'); - return; - } - // clear loading - el.update(''); - for(var i = 0, len = data.comments.length; i < len; i++){ - this.append(data.comments[i]); - } - }; - - // appends a comment - this.append = function(data){ - tpl.append(list.dom, data); - }; -}; - -Ext.EventManager.onDocumentReady(Comments.init, Comments, true); \ No newline at end of file diff --git a/www/extras/extjs/examples/dialog/post.php b/www/extras/extjs/examples/dialog/post.php deleted file mode 100644 index 7d8a5e295..000000000 --- a/www/extras/extjs/examples/dialog/post.php +++ /dev/null @@ -1,10 +0,0 @@ -{"comments": [{ - id: "10", - author: "Jack Slocum", - link: "http://www.jackslocum.com/", - date: "October 29th, 2006 9:21pm", - text: "New posted comment. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa." - } -]} \ No newline at end of file diff --git a/www/extras/extjs/examples/examples.css b/www/extras/extjs/examples/examples.css deleted file mode 100644 index d3381d984..000000000 --- a/www/extras/extjs/examples/examples.css +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -body { - font-family:verdana,tahoma,helvetica; - padding:20px; - padding-top:32px; - font-size:13px; - background-color:#fff !important; -} -p { - margin-bottom:15px; -} -h1 { - font-size:large; - margin-bottom:20px; -} -.example-info{ - width:150px; - border:1px solid #c3daf9; - border-top:1px solid #DCEAFB; - border-left:1px solid #DCEAFB; - background:#ecf5fe url(info-bg.gif) repeat-x; - font-size:10px; - padding:8px; -} -pre.code{ - background: #F8F8F8; - border: 1px solid #e8e8e8; - padding:10px; - margin:10px; - margin-left:0px; - border-left:5px solid #e8e8e8; - font-size: 12px !important; - line-height:14px !important; -} -.msg .x-box-mc { - font-size:14px; -} -#msg-div { - position:absolute; - left:35%; - top:10px; - width:250px; - z-index:20000; -} diff --git a/www/extras/extjs/examples/examples.js b/www/extras/extjs/examples/examples.js deleted file mode 100644 index 8ddab299e..000000000 --- a/www/extras/extjs/examples/examples.js +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.BLANK_IMAGE_URL = '../../resources/images/default/s.gif'; - -Ext.example = function(){ - var msgCt; - - function createBox(t, s){ - return ['
    ', - '
    ', - '

    ', t, '

    ', s, '
    ', - '
    ', - '
    '].join(''); - } - return { - msg : function(title, format){ - if(!msgCt){ - msgCt = Ext.DomHelper.insertFirst(document.body, {id:'msg-div'}, true); - } - msgCt.alignTo(document, 't-t'); - var s = String.format.apply(String, Array.prototype.slice.call(arguments, 1)); - var m = Ext.DomHelper.append(msgCt, {html:createBox(title, s)}, true); - m.slideIn('t').pause(1).ghost("t", {remove:true}); - }, - - init : function(){ - var s = Ext.get('extlib'), t = Ext.get('exttheme'); - if(!s || !t){ // run locally? - return; - } - var lib = Cookies.get('extlib') || 'yahoo', - theme = Cookies.get('exttheme') || 'aero'; - if(lib){ - s.dom.value = lib; - } - if(theme){ - t.dom.value = theme; - Ext.get(document.body).addClass('x-'+theme); - } - s.on('change', function(){ - Cookies.set('extlib', s.getValue()); - setTimeout(function(){ - window.location.reload(); - }, 250); - }); - - t.on('change', function(){ - Cookies.set('exttheme', t.getValue()); - setTimeout(function(){ - window.location.reload(); - }, 250); - }); - } - }; -}(); - -Ext.onReady(Ext.example.init, Ext.example); - - -// old school cookie functions grabbed off the web -var Cookies = {}; -Cookies.set = function(name, value){ - var argv = arguments; - var argc = arguments.length; - var expires = (argc > 2) ? argv[2] : null; - var path = (argc > 3) ? argv[3] : '/'; - var domain = (argc > 4) ? argv[4] : null; - var secure = (argc > 5) ? argv[5] : false; - document.cookie = name + "=" + escape (value) + - ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + - ((path == null) ? "" : ("; path=" + path)) + - ((domain == null) ? "" : ("; domain=" + domain)) + - ((secure == true) ? "; secure" : ""); -}; - -Cookies.get = function(name){ - var arg = name + "="; - var alen = arg.length; - var clen = document.cookie.length; - var i = 0; - var j = 0; - while(i < clen){ - j = i + alen; - if (document.cookie.substring(i, j) == arg) - return Cookies.getCookieVal(j); - i = document.cookie.indexOf(" ", i) + 1; - if(i == 0) - break; - } - return null; -}; - -Cookies.clear = function(name) { - if(Cookies.get(name)){ - document.cookie = name + "=" + - "; expires=Thu, 01-Jan-70 00:00:01 GMT"; - } -}; - -Cookies.getCookieVal = function(offset){ - var endstr = document.cookie.indexOf(";", offset); - if(endstr == -1){ - endstr = document.cookie.length; - } - return unescape(document.cookie.substring(offset, endstr)); -}; \ No newline at end of file diff --git a/www/extras/extjs/examples/examples.jsb b/www/extras/extjs/examples/examples.jsb deleted file mode 100644 index 6501e9e61..000000000 --- a/www/extras/extjs/examples/examples.jsb +++ /dev/null @@ -1,222 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/www/extras/extjs/examples/form/combos.css b/www/extras/extjs/examples/form/combos.css deleted file mode 100644 index eeafd9168..000000000 --- a/www/extras/extjs/examples/form/combos.css +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.search-item { - font:normal 11px tahoma, arial, helvetica, sans-serif; - padding:3px 10px 3px 10px; - border:1px solid #fff; - border-bottom:1px solid #eeeeee; - white-space:normal; -} -.search-item h3 { - display:block; - font:inherit; - font-weight:bold; -} - -.search-item h3 span { - float: right; - font-weight:normal; - margin:0 0 5px 5px; - width:100px; - display:block; - clear:none; -} \ No newline at end of file diff --git a/www/extras/extjs/examples/form/combos.html b/www/extras/extjs/examples/form/combos.html deleted file mode 100644 index d33a6c011..000000000 --- a/www/extras/extjs/examples/form/combos.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - Combo Boxes - - - - - - - - - - - - - - - -

    Combo Boxes

    -

    The js is not minified so it is readable. See combos.js.

    - -

    -Data Sources
    -The combo box can use any type of Ext.data.Store as it's data source. - This means your data can be XML, JSON, arrays or any other supported format. It can be loaded using Ajax, script tags or be local. - This combo uses local data from a JS array. -

    -
    - -
    -
    // simple array store
    -var store = new Ext.data.SimpleStore({
    -    fields: ['abbr', 'state'],
    -    data : exampleData
    -});
    -var combo = new Ext.form.ComboBox({
    -    store: store,
    -    displayField:'state',
    -    typeAhead: true,
    -    mode: 'local',
    -    triggerAction: 'all',
    -    emptyText:'Select a state...',
    -    selectOnFocus:true
    -});
    -combo.applyTo('local-states');
    -
    -
    -

    -Unobtrusive
    -The combo box can very easily be used to convert existing select elements into auto-completing, filtering combos. -

    -
    -Transformed select:
    -

    -

    -Originally looked like:
    -

    -
    var converted = new Ext.form.ComboBox({
    -    typeAhead: true,
    -    triggerAction: 'all',
    -    transform:'state',
    -    width:135,
    -    forceSelection:true
    -});
    -
    -
    -

    - Grid Editor
    - Click here to see the combo as a grid editor. -

    -
    -

    - Templates and Ajax
    - Click here for a more advanced example. -

    -



    - - diff --git a/www/extras/extjs/examples/form/combos.js b/www/extras/extjs/examples/form/combos.js deleted file mode 100644 index 31a04db2b..000000000 --- a/www/extras/extjs/examples/form/combos.js +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function(){ - // simple array store - var store = new Ext.data.SimpleStore({ - fields: ['abbr', 'state'], - data : Ext.exampledata.states // from states.js - }); - var combo = new Ext.form.ComboBox({ - store: store, - displayField:'state', - typeAhead: true, - mode: 'local', - triggerAction: 'all', - emptyText:'Select a state...', - selectOnFocus:true - }); - combo.applyTo('local-states'); - - - - var converted = new Ext.form.ComboBox({ - typeAhead: true, - triggerAction: 'all', - transform:'state', - width:135, - forceSelection:true - }); -}); \ No newline at end of file diff --git a/www/extras/extjs/examples/form/dynamic.html b/www/extras/extjs/examples/form/dynamic.html deleted file mode 100644 index d1e17bc00..000000000 --- a/www/extras/extjs/examples/form/dynamic.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - -Forms - - - - - - - - - - - - - - -

    Dynamic Forms built with JavaScript

    -

    - These forms do not do anything and have very little validation. They solely demonstrate - how you can use Ext Forms to build and layout forms on the fly. -

    - -

    The js is not minified so it is readable. See dynamic.js.

    - -
    -
    -
    -

    Simple Form

    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -

    Multi-column and labels top

    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -

    Fieldsets, labels right and complex fields

    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -

    Multi-column, nesting and fieldsets

    -
    - -
    -
    -
    -
    -
    - - diff --git a/www/extras/extjs/examples/form/dynamic.js b/www/extras/extjs/examples/form/dynamic.js deleted file mode 100644 index 5fe529fae..000000000 --- a/www/extras/extjs/examples/form/dynamic.js +++ /dev/null @@ -1,285 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function(){ - - Ext.QuickTips.init(); - - // turn on validation errors beside the field globally - Ext.form.Field.prototype.msgTarget = 'side'; - - /* - * ================ Simple form ======================= - */ - var simple = new Ext.form.Form({ - labelWidth: 75, // label settings here cascade unless overridden - url:'save-form.php' - }); - simple.add( - new Ext.form.TextField({ - fieldLabel: 'First Name', - name: 'first', - width:175, - allowBlank:false - }), - - new Ext.form.TextField({ - fieldLabel: 'Last Name', - name: 'last', - width:175 - }), - - new Ext.form.TextField({ - fieldLabel: 'Company', - name: 'company', - width:175 - }), - - new Ext.form.TextField({ - fieldLabel: 'Email', - name: 'email', - vtype:'email', - width:175 - }) - ); - - simple.addButton('Save'); - simple.addButton('Cancel'); - - simple.render('form-ct'); - - - /* - * ================ Form 2 ======================= - */ - var top = new Ext.form.Form({ - labelAlign: 'top' - }); - - top.column( - {width:232}, // precise column sizes or percentages or straight CSS - new Ext.form.TextField({ - fieldLabel: 'First Name', - name: 'first', - width:200 - }), - - new Ext.form.TextField({ - fieldLabel: 'Company', - name: 'company', - width:200 - }) - ); - - top.column( - {width:222, style:'margin-left:10px', clear:true}, // apply custom css, clear:true means it is the last column - new Ext.form.TextField({ - fieldLabel: 'Last Name', - name: 'last', - width:200 - }), - - new Ext.form.TextField({ - fieldLabel: 'Email', - name: 'email', - vtype:'email', - width:200 - }) - ); - - top.addButton('Save'); - top.addButton('Cancel'); - - top.render('form-ct2'); - - - /* - * ================ Form 3 ======================= - */ - var fs = new Ext.form.Form({ - labelAlign: 'right', - labelWidth: 75 - }); - - fs.fieldset( - {legend:'Contact Information'}, - new Ext.form.TextField({ - fieldLabel: 'First Name', - name: 'first', - width:190 - }), - - new Ext.form.TextField({ - fieldLabel: 'Last Name', - name: 'last', - width:190 - }), - - new Ext.form.TextField({ - fieldLabel: 'Company', - name: 'company', - width:190 - }), - - new Ext.form.TextField({ - fieldLabel: 'Email', - name: 'email', - vtype:'email', - width:190 - }), - - new Ext.form.ComboBox({ - fieldLabel: 'State', - hiddenName:'state', - store: new Ext.data.SimpleStore({ - fields: ['abbr', 'state'], - data : Ext.exampledata.states // from states.js - }), - displayField:'state', - typeAhead: true, - mode: 'local', - triggerAction: 'all', - emptyText:'Select a state...', - selectOnFocus:true, - width:190 - }), - - new Ext.form.DateField({ - fieldLabel: 'Date of Birth', - name: 'dob', - width:190, - allowBlank:false - }) - ); - - fs.addButton('Save'); - fs.addButton('Cancel'); - - fs.render('form-ct3'); - - /* - * ================ Form 4 ======================= - */ - var form = new Ext.form.Form({ - labelAlign: 'right', - labelWidth: 75 - }); - - form.column({width:342, labelWidth:75}); // open column, without auto close - form.fieldset( - {legend:'Contact Information'}, - new Ext.form.TextField({ - fieldLabel: 'Full Name', - name: 'fullName', - allowBlank:false, - value: 'Jack Slocum' - }), - - new Ext.form.TextField({ - fieldLabel: 'Job Title', - name: 'title', - value: 'Jr. Developer' - }), - - new Ext.form.TextField({ - fieldLabel: 'Company', - name: 'company', - value: 'Ext JS' - }), - - new Ext.form.TextArea({ - fieldLabel: 'Address', - name: 'address', - grow: true, - preventScrollbars:true, - value: '4 Redbulls Drive' - }) - ); - form.fieldset( - {legend:'Phone Numbers'}, - new Ext.form.TextField({ - fieldLabel: 'Home', - name: 'home', - value: '(888) 555-1212' - }), - - new Ext.form.TextField({ - fieldLabel: 'Business', - name: 'business' - }), - - new Ext.form.TextField({ - fieldLabel: 'Mobile', - name: 'mobile' - }), - - new Ext.form.TextField({ - fieldLabel: 'Fax', - name: 'fax' - }) - ); - form.end(); // closes the last container element (column, layout, fieldset, etc) and moves up 1 level in the stack - - - form.column( - {width:202, style:'margin-left:10px', clear:true} - ); - - form.fieldset( - {id:'photo', legend:'Photo'} - ); - form.end(); - - form.fieldset( - {legend:'Options', hideLabels:true}, - new Ext.form.Checkbox({ - boxLabel:'Ext 1.0 User', - name:'extuser' - }), - new Ext.form.Checkbox({ - boxLabel:'Ext Commercial User', - name:'extcomm' - }), - new Ext.form.Checkbox({ - boxLabel:'Ext Premium Member', - name:'extprem' - }), - new Ext.form.Checkbox({ - boxLabel:'Ext Team Member', - name:'extteam', - checked:true - }) - ); - - form.end(); // close the column - - - form.applyIfToFields({ - width:230 - }); - - form.addButton('Save'); - form.addButton('Cancel'); - - form.render('form-ct4'); - - // The form elements are standard HTML elements. By assigning an id (as we did above) - // we can manipulate them like any other element - var photo = Ext.get('photo'); - var c = photo.createChild({ - tag:'center', - cn: { - tag:'img', - src: 'http://extjs.com/forum/image.php?u=2&dateline=1175747336', - style:'margin-bottom:5px;' - } - }); - new Ext.Button(c, { - text: 'Change Photo' - }); -}); \ No newline at end of file diff --git a/www/extras/extjs/examples/form/forms.css b/www/extras/extjs/examples/form/forms.css deleted file mode 100644 index a2e6a8341..000000000 --- a/www/extras/extjs/examples/form/forms.css +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.calendar .x-menu-item-icon { - background-image:url(../../resources/images/default/shared/calendar.gif); -} - -.search-item { - font:normal 11px tahoma, arial, helvetica, sans-serif; - padding:3px 10px 3px 10px; - border-bottom:1px solid #eeeeee; -} -.search-item h3 { - display:block; - font:inherit; - font-weight:bold; -} - -.search-item h3 span { - float: right; - font-weight:normal; - margin:0 0 5px 5px; - width:100px; - display:block; - clear:none; -} \ No newline at end of file diff --git a/www/extras/extjs/examples/form/forms.html b/www/extras/extjs/examples/form/forms.html deleted file mode 100644 index b68eb5e4d..000000000 --- a/www/extras/extjs/examples/form/forms.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - -Forms - - - - - - - - - - - - - -

    Forms

    -

    The js is not minified so it is readable. See forms.js.

    - -
    -
    -
    -
    -

    Ext Live Forms

    - -
    -
    - ComboBox Fields - -
    - -
    - -
    -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    -
    - -
    - -
    - Component Fields - -
    - -
    - -
    -
    -
    - -
    - Live Validation and key filtering - -
    - -
    - -
    -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    -
    -
    -
    - -
    -
    -
    -
    - - diff --git a/www/extras/extjs/examples/form/forms.js b/www/extras/extjs/examples/form/forms.js deleted file mode 100644 index 476f083b9..000000000 --- a/www/extras/extjs/examples/form/forms.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function(){ - Ext.QuickTips.init(); - - Ext.MessageBox.alert("Warning", "This example is not done and results may vary."); - - // Change field to default to validation message "under" instead of tooltips - Ext.form.Field.prototype.msgTarget = 'under'; - - - var date = new Ext.form.DateField({ - allowBlank:false - }); - - date.applyTo('markup-date'); - - var tranny = new Ext.form.ComboBox({ - typeAhead: true, - triggerAction: 'all', - transform:'light', - width:120, - forceSelection:true - }); - - var required = new Ext.form.TextField({ - allowBlank:false - }); - required.applyTo('required'); - - var alpha = new Ext.form.TextField({ - vtype:'alpha' - }); - alpha.applyTo('alpha'); - - var alpha2 = new Ext.form.TextField({ - vtype:'alpha', - disableKeyFilter:true - }); - alpha2.applyTo('alpha2'); - - var alphanum = new Ext.form.TextField({ - vtype:'alphanum' - }); - alphanum.applyTo('alphanum'); - - var email = new Ext.form.TextField({ - allowBlank:false, - vtype:'email' - }); - email.applyTo('email'); - - var url = new Ext.form.TextField({ - vtype:'url' - }); - url.applyTo('url'); - - var grow = new Ext.form.TextArea({ - width:200, grow:true - }); - grow.applyTo('grow'); - -}); \ No newline at end of file diff --git a/www/extras/extjs/examples/form/forum-search.html b/www/extras/extjs/examples/form/forum-search.html deleted file mode 100644 index 9ac41f295..000000000 --- a/www/extras/extjs/examples/form/forum-search.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - ComboBox - Live Search - - - - - - - - - - - - - - -

    - Combo with Templates and Ajax
    - This is a more advanced example that shows how you can combine paging, Ext.Template and a remote data store - to create a "live search" feature. -

    -

    The js is not minified so it is readable. See forum-search.js.

    - - -
    -
    -
    -

    Search the Ext Forums

    - -
    - Live search requires a minimum of 4 characters. -
    -
    -
    -
    - - - diff --git a/www/extras/extjs/examples/form/forum-search.js b/www/extras/extjs/examples/form/forum-search.js deleted file mode 100644 index 0d37b9e71..000000000 --- a/www/extras/extjs/examples/form/forum-search.js +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function(){ - - Ext.MessageBox.alert("Sorry", "This example is not compatible with the new site, no longer functions and is for reference only"); - - var ds = new Ext.data.Store({ - proxy: new Ext.data.HttpProxy({ - url: '/forum2/topics-remote.php' - }), - reader: new Ext.data.JsonReader({ - root: 'topics', - totalProperty: 'totalCount', - id: 'post_id' - }, [ - {name: 'title', mapping: 'topic_title'}, - {name: 'topicId', mapping: 'topic_id'}, - {name: 'author', mapping: 'author'}, - {name: 'lastPost', mapping: 'post_time', type: 'date', dateFormat: 'timestamp'}, - {name: 'excerpt', mapping: 'post_text'} - ]) - }); - - // Custom rendering Template - var resultTpl = new Ext.Template( - '
    ', - '

    {lastPost:date("M j, Y")}
    by {author}
    {title}

    ', - '{excerpt}', - '
    ' - ); - - var search = new Ext.form.ComboBox({ - store: ds, - displayField:'title', - typeAhead: false, - loadingText: 'Searching...', - width: 570, - pageSize:10, - hideTrigger:true, - tpl: resultTpl, - onSelect: function(record){ // override default onSelect to do redirect - window.location = - String.format('/forum/viewtopic.php?t={0}#{1}', record.data.topicId, record.id); - } - }); - // apply it to the exsting input element - search.applyTo('search'); -}); \ No newline at end of file diff --git a/www/extras/extjs/examples/form/states.js b/www/extras/extjs/examples/form/states.js deleted file mode 100644 index c0f7d55fa..000000000 --- a/www/extras/extjs/examples/form/states.js +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -// some data used in the examples -Ext.namespace('Ext.exampledata'); - -Ext.exampledata.states = [ - ['AL', 'Alabama'], - ['AK', 'Alaska'], - ['AZ', 'Arizona'], - ['AR', 'Arkansas'], - ['CA', 'California'], - ['CO', 'Colorado'], - ['CN', 'Connecticut'], - ['DE', 'Delaware'], - ['DC', 'District of Columbia'], - ['FL', 'Florida'], - ['GA', 'Georgia'], - ['HW', 'Hawaii'], - ['ID', 'Idaho'], - ['IL', 'Illinois'], - ['IN', 'Indiana'], - ['IA', 'Iowa'], - ['KS', 'Kansas'], - ['KY', 'Kentucky'], - ['LA', 'Louisiana'], - ['MA', 'Maine'], - ['MD', 'Maryland'], - ['MS', 'Massachusetts'], - ['MI', 'Michigan'], - ['MN', 'Minnesota'], - ['MS', 'Mississippi'], - ['MO', 'Missouri'], - ['MT', 'Montana'], - ['NE', 'Nebraska'], - ['NV', 'Nevada'], - ['NH', 'New Hampshire'], - ['NJ', 'New Jersey'], - ['NM', 'New Mexico'], - ['NY', 'New York'], - ['NC', 'North Carolina'], - ['ND', 'North Dakota'], - ['OH', 'Ohio'], - ['OK', 'Oklahoma'], - ['OR', 'Oregon'], - ['PA', 'Pennsylvania'], - ['RH', 'Rhode Island'], - ['SC', 'South Carolina'], - ['SD', 'South Dakota'], - ['TE', 'Tennessee'], - ['TX', 'Texas'], - ['UT', 'Utah'], - ['VE', 'Vermont'], - ['VA', 'Virginia'], - ['WA', 'Washington'], - ['WV', 'West Virginia'], - ['WI', 'Wisconsin'], - ['WY', 'Wyoming'] - ]; \ No newline at end of file diff --git a/www/extras/extjs/examples/form/xml-errors.xml b/www/extras/extjs/examples/form/xml-errors.xml deleted file mode 100644 index c778e30bf..000000000 --- a/www/extras/extjs/examples/form/xml-errors.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - first - This is a test validation message from the server - ]]> - - - dob - This is a test validation message from the server - ]]> - - - \ No newline at end of file diff --git a/www/extras/extjs/examples/form/xml-form.html b/www/extras/extjs/examples/form/xml-form.html deleted file mode 100644 index a76c56e18..000000000 --- a/www/extras/extjs/examples/form/xml-form.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -XML Form - - - - - - - - - - - - - - -

    Loading/Saving a Dynamic Form using XML

    -

    - This is a very simple example of using XML for load and submit of data with an Ext dynamic form. -

    -

    - Click "Load" to load the dummy XML data from the server using an XmlReader. -

    -

    - After loading the form, you will be able to hit submit. The submit action will make a post to the server, - and the dummy XML file on the server with test server-side validation failure messages will be sent back. - Those messages will be applied to the appropriate fields in the form. -

    -

    - Note: The built-in JSON support does not require any special readers for mapping. However, If you don't like the Form's built-in JSON format, you could also use a JsonReader for reading data into a form. -

    -

    The js is not minified so it is readable. See xml-form.js.

    - -
    -
    -
    -

    XML Form

    -
    - -
    -
    -
    -
    -
    - - diff --git a/www/extras/extjs/examples/form/xml-form.js b/www/extras/extjs/examples/form/xml-form.js deleted file mode 100644 index cf53172b8..000000000 --- a/www/extras/extjs/examples/form/xml-form.js +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function(){ - - Ext.QuickTips.init(); - - // turn on validation errors beside the field globally - Ext.form.Field.prototype.msgTarget = 'side'; - - var fs = new Ext.form.Form({ - labelAlign: 'right', - labelWidth: 75, - waitMsgTarget: 'box-bd', - - // configure how to read the XML Data - reader : new Ext.data.XmlReader({ - record : 'contact', - success: '@success' - }, [ - {name: 'first', mapping:'name/first'}, // custom mapping - {name: 'last', mapping:'name/last'}, - 'company', 'email', 'state', - {name: 'dob', type:'date', dateFormat:'m/d/Y'} // custom data types - ]), - - // reusable eror reader class defined at the end of this file - errorReader: new Ext.form.XmlErrorReader() - }); - - fs.fieldset( - {legend:'Contact Information'}, - new Ext.form.TextField({ - fieldLabel: 'First Name', - name: 'first', - width:190 - }), - - new Ext.form.TextField({ - fieldLabel: 'Last Name', - name: 'last', - width:190 - }), - - new Ext.form.TextField({ - fieldLabel: 'Company', - name: 'company', - width:190 - }), - - new Ext.form.TextField({ - fieldLabel: 'Email', - name: 'email', - vtype:'email', - width:190 - }), - - new Ext.form.ComboBox({ - fieldLabel: 'State', - hiddenName:'state', - store: new Ext.data.SimpleStore({ - fields: ['abbr', 'state'], - data : Ext.exampledata.states // from states.js - }), - valueField:'abbr', - displayField:'state', - typeAhead: true, - mode: 'local', - triggerAction: 'all', - emptyText:'Select a state...', - selectOnFocus:true, - width:190 - }), - - new Ext.form.DateField({ - fieldLabel: 'Date of Birth', - name: 'dob', - width:190, - allowBlank:false - }) - ); - - // simple button add - fs.addButton('Load', function(){ - fs.load({url:'xml-form.xml', waitMsg:'Loading'}); - }); - - // explicit add - var submit = fs.addButton({ - text: 'Submit', - disabled:true, - handler: function(){ - fs.submit({url:'xml-errors.xml', waitMsg:'Saving Data...'}); - } - }); - - fs.render('form-ct'); - - fs.on({ - actioncomplete: function(form, action){ - if(action.type == 'load'){ - submit.enable(); - } - } - }); - -}); - -// A reusable error reader class for XML forms -Ext.form.XmlErrorReader = function(){ - Ext.form.XmlErrorReader.superclass.constructor.call(this, { - record : 'field', - success: '@success' - }, [ - 'id', 'msg' - ] - ); -}; -Ext.extend(Ext.form.XmlErrorReader, Ext.data.XmlReader); \ No newline at end of file diff --git a/www/extras/extjs/examples/form/xml-form.xml b/www/extras/extjs/examples/form/xml-form.xml deleted file mode 100644 index 9eaa5ee60..000000000 --- a/www/extras/extjs/examples/form/xml-form.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - Jack - Slocum - - Ext JS - support@extjs.com - OH - 04/15/2007 - - \ No newline at end of file diff --git a/www/extras/extjs/examples/grid/array-grid.html b/www/extras/extjs/examples/grid/array-grid.html deleted file mode 100644 index 07587991a..000000000 --- a/www/extras/extjs/examples/grid/array-grid.html +++ /dev/null @@ -1,28 +0,0 @@ - - - -Array Grid Example - - - - - - - - - - - - - - -

    Array Grid Example

    -

    This example shows how to create a grid from Array data. For more details on this example, see the blog post.

    -

    Note that the js is not minified so it is readable. See array-grid.js.

    - - -
    -
    -
    - - diff --git a/www/extras/extjs/examples/grid/array-grid.js b/www/extras/extjs/examples/grid/array-grid.js deleted file mode 100644 index 784f62dd1..000000000 --- a/www/extras/extjs/examples/grid/array-grid.js +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -var Example = { - init : function(){ - // some data yanked off the web - var myData = [ - ['3m Co',71.72,0.02,0.03,'9/1 12:00am'], - ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'], - ['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'], - ['American Express Company',52.55,0.01,0.02,'9/1 12:00am'], - ['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am'], - ['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am'], - ['Boeing Co.',75.43,0.53,0.71,'9/1 12:00am'], - ['Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am'], - ['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am'], - ['E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'9/1 12:00am'], - ['Exxon Mobil Corp',68.1,-0.43,-0.64,'9/1 12:00am'], - ['General Electric Company',34.14,-0.08,-0.23,'9/1 12:00am'], - ['General Motors Corporation',30.27,1.09,3.74,'9/1 12:00am'], - ['Hewlett-Packard Co.',36.53,-0.03,-0.08,'9/1 12:00am'], - ['Honeywell Intl Inc',38.77,0.05,0.13,'9/1 12:00am'], - ['Intel Corporation',19.88,0.31,1.58,'9/1 12:00am'], - ['International Business Machines',81.41,0.44,0.54,'9/1 12:00am'], - ['Johnson & Johnson',64.72,0.06,0.09,'9/1 12:00am'], - ['JP Morgan & Chase & Co',45.73,0.07,0.15,'9/1 12:00am'], - ['McDonald\'s Corporation',36.76,0.86,2.40,'9/1 12:00am'], - ['Merck & Co., Inc.',40.96,0.41,1.01,'9/1 12:00am'], - ['Microsoft Corporation',25.84,0.14,0.54,'9/1 12:00am'], - ['Pfizer Inc',27.96,0.4,1.45,'9/1 12:00am'], - ['The Coca-Cola Company',45.07,0.26,0.58,'9/1 12:00am'], - ['The Home Depot, Inc.',34.64,0.35,1.02,'9/1 12:00am'], - ['The Procter & Gamble Company',61.91,0.01,0.02,'9/1 12:00am'], - ['United Technologies Corporation',63.26,0.55,0.88,'9/1 12:00am'], - ['Verizon Communications',35.57,0.39,1.11,'9/1 12:00am'], - ['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am'], - ['Walt Disney Company (The) (Holding Company)',29.89,0.24,0.81,'9/1 12:00am'] - ]; - - var ds = new Ext.data.Store({ - proxy: new Ext.data.MemoryProxy(myData), - reader: new Ext.data.ArrayReader({}, [ - {name: 'company'}, - {name: 'price', type: 'float'}, - {name: 'change', type: 'float'}, - {name: 'pctChange', type: 'float'}, - {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'} - ]) - }); - ds.load(); - - // example of custom renderer function - function italic(value){ - return '' + value + ''; - } - - // example of custom renderer function - function change(val){ - if(val > 0){ - return '' + val + ''; - }else if(val < 0){ - return '' + val + ''; - } - return val; - } - // example of custom renderer function - function pctChange(val){ - if(val > 0){ - return '' + val + '%'; - }else if(val < 0){ - return '' + val + '%'; - } - return val; - } - - // the DefaultColumnModel expects this blob to define columns. It can be extended to provide - // custom or reusable ColumnModels - var colModel = new Ext.grid.ColumnModel([ - {header: "Company", width: 160, sortable: true, locked:false, dataIndex: 'company'}, - {header: "Price", width: 75, sortable: true, renderer: Ext.util.Format.usMoney, dataIndex: 'price'}, - {id:'change',header: "Change", width: 75, sortable: true, renderer: change, dataIndex: 'change'}, - {header: "% Change", width: 75, sortable: true, renderer: pctChange, dataIndex: 'pctChange'}, - {header: "Last Updated", width: 85, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'} - ]); - - - // create the Grid - var grid = new Ext.grid.Grid('grid-example', { - ds: ds, - cm: colModel, - autoExpandColumn: 'change' - }); - - var layout = Ext.BorderLayout.create({ - center: { - margins:{left:3,top:3,right:3,bottom:3}, - panels: [new Ext.GridPanel(grid)] - } - }, 'grid-panel'); - - grid.render(); - - - grid.getSelectionModel().selectFirstRow(); - } -}; -Ext.onReady(Example.init, Example); \ No newline at end of file diff --git a/www/extras/extjs/examples/grid/custom-grid.html b/www/extras/extjs/examples/grid/custom-grid.html deleted file mode 100644 index 0e90ba9ee..000000000 --- a/www/extras/extjs/examples/grid/custom-grid.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -Customizing the Grid - - - - - - - - - - - - - - -

    Property Grid

    - - -
    - - - diff --git a/www/extras/extjs/examples/grid/custom-grid.js b/www/extras/extjs/examples/grid/custom-grid.js deleted file mode 100644 index 2324b9ff0..000000000 --- a/www/extras/extjs/examples/grid/custom-grid.js +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - diff --git a/www/extras/extjs/examples/grid/details.gif b/www/extras/extjs/examples/grid/details.gif deleted file mode 100644 index add0ef2ac..000000000 Binary files a/www/extras/extjs/examples/grid/details.gif and /dev/null differ diff --git a/www/extras/extjs/examples/grid/edit-grid.html b/www/extras/extjs/examples/grid/edit-grid.html deleted file mode 100644 index 48acaa162..000000000 --- a/www/extras/extjs/examples/grid/edit-grid.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -Editor Grid Example - - - - - - - - - - - - - - -

    Editor Grid Example

    -

    This example shows how to create a grid with inline editing. For more details on this example, see the blog post.

    -

    Note that the js is not minified so it is readable. See edit-grid.js.

    - -

    The data in the grid is loaded from plants.xml.

    - - - - -
    -
    -
    - - diff --git a/www/extras/extjs/examples/grid/edit-grid.js b/www/extras/extjs/examples/grid/edit-grid.js deleted file mode 100644 index 18114af09..000000000 --- a/www/extras/extjs/examples/grid/edit-grid.js +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function(){ - - function formatBoolean(value){ - return value ? 'Yes' : 'No'; - }; - - function formatDate(value){ - return value ? value.dateFormat('M d, Y') : ''; - }; - // shorthand alias - var fm = Ext.form, Ed = Ext.grid.GridEditor; - - // the column model has information about grid columns - // dataIndex maps the column to the specific data field in - // the data store (created below) - var cm = new Ext.grid.ColumnModel([{ - header: "Common Name", - dataIndex: 'common', - width: 220, - editor: new Ed(new fm.TextField({ - allowBlank: false - })) - },{ - header: "Light", - dataIndex: 'light', - width: 130, - editor: new Ed(new Ext.form.ComboBox({ - typeAhead: true, - triggerAction: 'all', - transform:'light', - lazyRender:true - })) - },{ - header: "Price", - dataIndex: 'price', - width: 70, - align: 'right', - renderer: 'usMoney', - editor: new Ed(new fm.NumberField({ - allowBlank: false, - allowNegative: false, - maxValue: 10 - })) - },{ - header: "Available", - dataIndex: 'availDate', - width: 95, - renderer: formatDate, - editor: new Ed(new fm.DateField({ - format: 'm/d/y', - minValue: '01/01/06', - disabledDays: [0, 6], - disabledDaysText: 'Plants are not available on the weekends' - })) - },{ - header: "Indoor?", - dataIndex: 'indoor', - width: 55, - renderer: formatBoolean, - editor: new Ed(new fm.Checkbox()) - }]); - - // by default columns are sortable - cm.defaultSortable = true; - - // this could be inline, but we want to define the Plant record - // type so we can add records dynamically - var Plant = Ext.data.Record.create([ - // the "name" below matches the tag name to read, except "availDate" - // which is mapped to the tag "availability" - {name: 'common', type: 'string'}, - {name: 'botanical', type: 'string'}, - {name: 'light'}, - {name: 'price', type: 'float'}, // automatic date conversions - {name: 'availDate', mapping: 'availability', type: 'date', dateFormat: 'm/d/Y'}, - {name: 'indoor', type: 'bool'} - ]); - - // create the Data Store - var ds = new Ext.data.Store({ - // load using HTTP - proxy: new Ext.data.HttpProxy({url: 'plants.xml'}), - - // the return will be XML, so lets set up a reader - reader: new Ext.data.XmlReader({ - // records will have a "plant" tag - record: 'plant' - }, Plant) - }); - - // create the editor grid - var grid = new Ext.grid.EditorGrid('editor-grid', { - ds: ds, - cm: cm, - //selModel: new Ext.grid.RowSelectionModel(), - enableColLock:false - }); - - var layout = Ext.BorderLayout.create({ - center: { - margins:{left:3,top:3,right:3,bottom:3}, - panels: [new Ext.GridPanel(grid)] - } - }, 'grid-panel'); - - - // render it - grid.render(); - - - var gridHead = grid.getView().getHeaderPanel(true); - var tb = new Ext.Toolbar(gridHead, [{ - text: 'Add Plant', - handler : function(){ - var p = new Plant({ - common: 'New Plant 1', - light: 'Mostly Shade', - price: 0, - availDate: new Date(), - indoor: false - }); - grid.stopEditing(); - ds.insert(0, p); - grid.startEditing(0, 0); - } - }]); - - // trigger the data store load - ds.load(); -}); \ No newline at end of file diff --git a/www/extras/extjs/examples/grid/from-markup.html b/www/extras/extjs/examples/grid/from-markup.html deleted file mode 100644 index 812c6a1c5..000000000 --- a/www/extras/extjs/examples/grid/from-markup.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - -From Markup Grid Example - - - - - - - - - - - -

    From Markup Grid Example

    -

    This example shows how to create a grid with from an existing, unformatted HTML table.

    -

    Note that the js is not minified so it is readable. See from-markup.js.

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameAgeSex
    Barney Rubble32Male
    Fred Flintstone33Male
    Betty Rubble32Female
    Pebbles1Female
    Bamm Bamm2Male
    - - - \ No newline at end of file diff --git a/www/extras/extjs/examples/grid/from-markup.js b/www/extras/extjs/examples/grid/from-markup.js deleted file mode 100644 index b1d623fbc..000000000 --- a/www/extras/extjs/examples/grid/from-markup.js +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function() { - var btn = Ext.get("create-grid"); - btn.on("click", function(){ - btn.dom.disabled = true; - - // create the grid - var grid = new Ext.grid.TableGrid("the-table"); - grid.render(); - - }, false, {single:true}); // run once -}); - -/** - * @class Ext.grid.TableGrid - * @extends Ext.grid.Grid - * A Grid which creates itself from an existing HTML table element. - * @constructor - * @param {String/HTMLElement/Ext.Element} table The table element from which this grid will be created - - * The table MUST have some type of size defined for the grid to fill. The container will be - * automatically set to position relative if it isn't already. - * @param {Object} config A config object that sets properties on this grid and has two additional (optional) - * properties: fields and columns which allow for customizing data fields and columns for this grid. - * @history - * 2007-03-01 Original version by Nige "Animal" White - * 2007-03-10 jvs Slightly refactored to reuse existing classes - */ -Ext.grid.TableGrid = function(table, config) { - config = config || {}; - var cf = config.fields || [], ch = config.columns || []; - table = Ext.get(table); - - var ct = table.insertSibling(); - - var fields = [], cols = []; - var headers = table.query("thead th"); - for (var i = 0, h; h = headers[i]; i++) { - var text = h.innerHTML; - var name = 'tcol-'+i; - - fields.push(Ext.applyIf(cf[i] || {}, { - name: name, - mapping: 'td:nth('+(i+1)+')/@innerHTML' - })); - - cols.push(Ext.applyIf(ch[i] || {}, { - 'header': text, - 'dataIndex': name, - 'width': h.offsetWidth, - 'tooltip': h.title, - 'sortable': true - })); - } - - var ds = new Ext.data.Store({ - reader: new Ext.data.XmlReader({ - record:'tbody tr' - }, fields) - }); - - ds.loadData(table.dom); - - var cm = new Ext.grid.ColumnModel(cols); - - if(config.width || config.height){ - ct.setSize(config.width || 'auto', config.height || 'auto'); - } - if(config.remove !== false){ - table.remove(); - } - - Ext.grid.TableGrid.superclass.constructor.call(this, ct, - Ext.applyIf(config, { - 'ds': ds, - 'cm': cm, - 'sm': new Ext.grid.RowSelectionModel(), - autoHeight:true, - autoWidth:true - } - )); -}; - -Ext.extend(Ext.grid.TableGrid, Ext.grid.Grid); \ No newline at end of file diff --git a/www/extras/extjs/examples/grid/grid-examples.css b/www/extras/extjs/examples/grid/grid-examples.css deleted file mode 100644 index 5f54449d6..000000000 --- a/www/extras/extjs/examples/grid/grid-examples.css +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -#grid-example .x-grid-col-1 { - text-align: right; -} -#grid-example .x-grid-col-2{ - text-align: right; -} -#grid-example .x-grid-col-3 { - text-align: right; -} -#grid-example .x-grid-col-4 { - text-align: right; -} -#grid-example.x-grid-mso{ - border: 1px solid #6593cf; -} -#grid-example.x-grid-vista{ - border: 1px solid #b3bcc0; -} -#xml-grid-example{ - border: 1px solid #cbc7b8; - left: 0; - position: relative; - top: 0; -} -#xml-grid-example.x-grid-mso{ - border: 1px solid #6593cf; -} -#xml-grid-example.x-grid-vista{ - border: 1px solid #b3bcc0; -} -#editor-grid .x-grid-col-2{ - text-align:right; -} -.x-grid-col-topic b { - font-family:tahoma, verdana; - color:#333; - display:block; - padding-left:18px; - line-height:18px; - vertical-align:middle; - background:transparent url(topic.gif) no-repeat left 1px; -} -.x-grid-col-topic b i { - font-weight:normal; - font-style: normal; - color:#000; -} -.details .x-btn-text { - background-image: url(details.gif); -} -.x-resizable-pinned .x-resizable-handle-south{ - background:url(../../resources/images/default/sizer/s-handle-dark.gif); - background-position: top; -} \ No newline at end of file diff --git a/www/extras/extjs/examples/grid/paging.html b/www/extras/extjs/examples/grid/paging.html deleted file mode 100644 index d6831e42b..000000000 --- a/www/extras/extjs/examples/grid/paging.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - -Paging Grid Example - - - - - - - - - - - - - - -

    Paging Grid Example

    -

    This example shows how to create a grid with paging. This grid uses a ScriptTagProxy to fetch cross-domain - remote data (from the Ext forums).

    -

    Note that the js is not minified so it is readable. See paging.js.

    - -
    -
    -
    -

    Ext - Help Forum

    -
    -
    -
    -
    - - - - diff --git a/www/extras/extjs/examples/grid/paging.js b/www/extras/extjs/examples/grid/paging.js deleted file mode 100644 index eb6a40fd2..000000000 --- a/www/extras/extjs/examples/grid/paging.js +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function(){ - - // create the Data Store - var ds = new Ext.data.Store({ - // load using script tags for cross domain, if the data in on the same domain as - // this page, an HttpProxy would be better - proxy: new Ext.data.ScriptTagProxy({ - url: 'http://www.yui-ext.com/forum2/topics-remote.php' - }), - - // create reader that reads the Topic records - reader: new Ext.data.JsonReader({ - root: 'topics', - totalProperty: 'totalCount', - id: 'topic_id' - }, [ - {name: 'title', mapping: 'topic_title'}, - {name: 'author', mapping: 'username'}, - {name: 'totalPosts', mapping: 'topic_replies', type: 'int'}, - {name: 'lastPost', mapping: 'post_time', type: 'date', dateFormat: 'timestamp'}, - {name: 'lastPoster', mapping: 'user2'}, - {name: 'excerpt', mapping: 'post_text'} - ]), - - // turn on remote sorting - remoteSort: true - }); - ds.setDefaultSort('lastPost', 'desc'); - - // pluggable renders - function renderTopic(value, p, record){ - return String.format('{0}{1}', value, record.data['excerpt']); - } - function renderTopicPlain(value){ - return String.format('{0}', value); - } - function renderLast(value, p, r){ - return String.format('{0}
    by {1}', value.dateFormat('M j, Y, g:i a'), r.data['lastPoster']); - } - function renderLastPlain(value){ - return value.dateFormat('M j, Y, g:i a'); - } - - // the column model has information about grid columns - // dataIndex maps the column to the specific data field in - // the data store - var cm = new Ext.grid.ColumnModel([{ - id: 'topic', // id assigned so we can apply custom css (e.g. .x-grid-col-topic b { color:#333 }) - header: "Topic", - dataIndex: 'title', - width: 420, - renderer: renderTopic, - css: 'white-space:normal;' - },{ - header: "Author", - dataIndex: 'author', - width: 100, - hidden: true - },{ - header: "Total Posts", - dataIndex: 'totalPosts', - width: 70, - align: 'right' - },{ - id: 'last', - header: "Last Post", - dataIndex: 'lastPost', - width: 150, - renderer: renderLast - }]); - - // by default columns are sortable - cm.defaultSortable = true; - - // create the editor grid - var grid = new Ext.grid.Grid('topic-grid', { - ds: ds, - cm: cm, - selModel: new Ext.grid.RowSelectionModel({singleSelect:true}), - enableColLock:false, - loadMask: true - }); - - // make the grid resizable, do before render for better performance - var rz = new Ext.Resizable('topic-grid', { - wrap:true, - minHeight:100, - pinned:true, - handles: 's' - }); - rz.on('resize', grid.autoSize, grid); - - // render it - grid.render(); - - var gridFoot = grid.getView().getFooterPanel(true); - - // add a paging toolbar to the grid's footer - var paging = new Ext.PagingToolbar(gridFoot, ds, { - pageSize: 25, - displayInfo: true, - displayMsg: 'Displaying topics {0} - {1} of {2}', - emptyMsg: "No topics to display" - }); - // add the detailed view button - paging.add('-', { - pressed: true, - enableToggle:true, - text: 'Detailed View', - cls: 'x-btn-text-icon details', - toggleHandler: toggleDetails - }); - - // trigger the data store load - ds.load({params:{start:0, limit:25, forumId: 4}}); - - function toggleDetails(btn, pressed){ - cm.getColumnById('topic').renderer = pressed ? renderTopic : renderTopicPlain; - cm.getColumnById('last').renderer = pressed ? renderLast : renderLastPlain; - grid.getView().refresh(); - } -}); diff --git a/www/extras/extjs/examples/grid/plants.xml b/www/extras/extjs/examples/grid/plants.xml deleted file mode 100644 index dfb0ea556..000000000 --- a/www/extras/extjs/examples/grid/plants.xml +++ /dev/null @@ -1,327 +0,0 @@ - - - - Bloodroot - Sanguinaria canadensis - 4 - Mostly Shady - 2.44 - 03/15/2006 - true - - - Columbine - Aquilegia canadensis - 3 - Mostly Shady - 9.37 - 03/06/2006 - true - - - Marsh Marigold - Caltha palustris - 4 - Mostly Sunny - 6.81 - 05/17/2006 - false - - - Cowslip - Caltha palustris - 4 - Mostly Shady - 9.90 - 03/06/2006 - true - - - Dutchman's-Breeches - Dicentra cucullaria - 3 - Mostly Shady - 6.44 - 01/20/2006 - true - - - Ginger, Wild - Asarum canadense - 3 - Mostly Shady - 9.03 - 04/18/2006 - true - - - Hepatica - Hepatica americana - 4 - Mostly Shady - 4.45 - 01/26/2006 - true - - - Liverleaf - Hepatica americana - 4 - Mostly Shady - 3.99 - 01/02/2006 - true - - - Jack-In-The-Pulpit - Arisaema triphyllum - 4 - Mostly Shady - 3.23 - 02/01/2006 - true - - - Mayapple - Podophyllum peltatum - 3 - Mostly Shady - 2.98 - 06/05/2006 - true - - - Phlox, Woodland - Phlox divaricata - 3 - Sun or Shade - 2.80 - 01/22/2006 - false - - - Phlox, Blue - Phlox divaricata - 3 - Sun or Shade - 5.59 - 02/16/2006 - false - - - Spring-Beauty - Claytonia Virginica - 7 - Mostly Shady - 6.59 - 02/01/2006 - true - - - Trillium - Trillium grandiflorum - 5 - Sun or Shade - 3.90 - 04/29/2006 - false - - - Wake Robin - Trillium grandiflorum - 5 - Sun or Shade - 3.20 - 02/21/2006 - false - - - Violet, Dog-Tooth - Erythronium americanum - 4 - Shade - 9.04 - 02/01/2006 - true - - - Trout Lily - Erythronium americanum - 4 - Shade - 6.94 - 03/24/2006 - true - - - Adder's-Tongue - Erythronium americanum - 4 - Shade - 9.58 - 04/13/2006 - true - - - Anemone - Anemone blanda - 6 - Mostly Shady - 8.86 - 12/26/2006 - true - - - Grecian Windflower - Anemone blanda - 6 - Mostly Shady - 9.16 - 07/10/2006 - true - - - Bee Balm - Monarda didyma - 4 - Shade - 4.59 - 05/03/2006 - true - - - Bergamot - Monarda didyma - 4 - Shade - 7.16 - 04/27/2006 - true - - - Black-Eyed Susan - Rudbeckia hirta - Annual - Sunny - 9.80 - 06/18/2006 - false - - - Buttercup - Ranunculus - 4 - Shade - 2.57 - 06/10/2006 - true - - - Crowfoot - Ranunculus - 4 - Shade - 9.34 - 04/03/2006 - true - - - Butterfly Weed - Asclepias tuberosa - Annual - Sunny - 2.78 - 06/30/2006 - false - - - Cinquefoil - Potentilla - Annual - Shade - 7.06 - 05/25/2006 - true - - - Primrose - Oenothera - 3 - 5 - Sunny - 6.56 - 01/30/2006 - false - - - Gentian - Gentiana - 4 - Sun or Shade - 7.81 - 05/18/2006 - false - - - Blue Gentian - Gentiana - 4 - Sun or Shade - 8.56 - 05/02/2006 - false - - - Jacob's Ladder - Polemonium caeruleum - Annual - Shade - 9.26 - 02/21/2006 - true - - - Greek Valerian - Polemonium caeruleum - Annual - Shade - 4.36 - 07/14/2006 - true - - - California Poppy - Eschscholzia californica - Annual - Sunny - 7.89 - 03/27/2006 - false - - - Shooting Star - Dodecatheon - Annual - Mostly Shady - 8.60 - 05/13/2006 - true - - - Snakeroot - Cimicifuga - Annual - Shade - 5.63 - 07/11/2006 - true - - - Cardinal Flower - Lobelia cardinalis - 2 - Shade - 3.02 - 02/22/2006 - true - - \ No newline at end of file diff --git a/www/extras/extjs/examples/grid/sheldon.xml b/www/extras/extjs/examples/grid/sheldon.xml deleted file mode 100644 index 2ab61f036..000000000 --- a/www/extras/extjs/examples/grid/sheldon.xml +++ /dev/null @@ -1,151 +0,0 @@ - - - - -
    -
    - 18CZWZFXKSV8F601AGMF - - - - - - - - - - 1.05041599273682 -
    - - - True - - Sidney Sheldon - Books - - - 203 - 21 - - 0446355453 - - http://www.amazon.com/gp/redirect.html%3FASIN=0446355453%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0446355453%253FSubscriptionId=1A7XKHR5BYD0WPJVQEG2 - - - Sidney Sheldon - Warner Books - Book - Master of the Game - - - - 0446613657 - - http://www.amazon.com/gp/redirect.html%3FASIN=0446613657%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0446613657%253FSubscriptionId=1A7XKHR5BYD0WPJVQEG2 - - - Sidney Sheldon - Warner Books - Book - Are You Afraid of the Dark? - - - - 0446357421 - - http://www.amazon.com/gp/redirect.html%3FASIN=0446357421%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0446357421%253FSubscriptionId=1A7XKHR5BYD0WPJVQEG2 - - - Sidney Sheldon - Warner Books - Book - If Tomorrow Comes - - - - 0446607207 - - http://www.amazon.com/gp/redirect.html%3FASIN=0446607207%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0446607207%253FSubscriptionId=1A7XKHR5BYD0WPJVQEG2 - - - Sidney Sheldon - Warner Vision - Book - Tell Me Your Dreams - - - - 0446357448 - - http://www.amazon.com/gp/redirect.html%3FASIN=0446357448%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0446357448%253FSubscriptionId=1A7XKHR5BYD0WPJVQEG2 - - - Sidney Sheldon - Warner Books - Book - Bloodline - - - - 0446532673 - - http://www.amazon.com/gp/redirect.html%3FASIN=0446532673%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0446532673%253FSubscriptionId=1A7XKHR5BYD0WPJVQEG2 - - - Sidney Sheldon - Warner Books - Book - The Other Side of Me - - - - 0446356573 - - http://www.amazon.com/gp/redirect.html%3FASIN=0446356573%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0446356573%253FSubscriptionId=1A7XKHR5BYD0WPJVQEG2 - - - Sidney Sheldon - Warner Books - Book - A Stranger in the Mirror - - - - 0060198346 - - http://www.amazon.com/gp/redirect.html%3FASIN=0060198346%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0060198346%253FSubscriptionId=1A7XKHR5BYD0WPJVQEG2 - - - Sidney Sheldon - William Morrow & Company - Book - The Sky Is Falling - - - - 0446354732 - - http://www.amazon.com/gp/redirect.html%3FASIN=0446354732%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0446354732%253FSubscriptionId=1A7XKHR5BYD0WPJVQEG2 - - - Sidney Sheldon - Warner Books - Book - Nothing Lasts Forever - - - - 0446341916 - - http://www.amazon.com/gp/redirect.html%3FASIN=0446341916%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0446341916%253FSubscriptionId=1A7XKHR5BYD0WPJVQEG2 - - - Sidney Sheldon - Warner Books - Book - The Naked Face - - - -
    \ No newline at end of file diff --git a/www/extras/extjs/examples/grid/topic.gif b/www/extras/extjs/examples/grid/topic.gif deleted file mode 100644 index abcebe5f1..000000000 Binary files a/www/extras/extjs/examples/grid/topic.gif and /dev/null differ diff --git a/www/extras/extjs/examples/grid/xml-grid.html b/www/extras/extjs/examples/grid/xml-grid.html deleted file mode 100644 index baba69e58..000000000 --- a/www/extras/extjs/examples/grid/xml-grid.html +++ /dev/null @@ -1,31 +0,0 @@ - - - -XML Grid Example - - - - - - - - - - - - - -

    XML Grid Example

    -

    This example shows how to load a grid with XML data. For more details on this example, see the blog post.

    - -

    This grid also uses autoHeight and autoWidth to dynamically size to fit it's data and columns.

    - -

    Note that the js is not minified so it is readable. See xml-grid.js.

    - -

    The data in the grid is loaded from sheldon.xml, which is directly from an Amazon.com search.

    - - -
    - - - diff --git a/www/extras/extjs/examples/grid/xml-grid.js b/www/extras/extjs/examples/grid/xml-grid.js deleted file mode 100644 index 292813d3c..000000000 --- a/www/extras/extjs/examples/grid/xml-grid.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function(){ - - // create the Data Store - var ds = new Ext.data.Store({ - // load using HTTP - proxy: new Ext.data.HttpProxy({url: 'sheldon.xml'}), - - // the return will be XML, so lets set up a reader - reader: new Ext.data.XmlReader({ - // records will have an "Item" tag - record: 'Item', - id: 'ASIN', - totalRecords: '@total' - }, [ - // set up the fields mapping into the xml doc - // The first needs mapping, the others are very basic - {name: 'Author', mapping: 'ItemAttributes > Author'}, - 'Title', 'Manufacturer', 'ProductGroup' - ]) - }); - - var cm = new Ext.grid.ColumnModel([ - {header: "Author", width: 120, dataIndex: 'Author'}, - {header: "Title", width: 180, dataIndex: 'Title'}, - {header: "Manufacturer", width: 115, dataIndex: 'Manufacturer'}, - {header: "Product Group", width: 100, dataIndex: 'ProductGroup'} - ]); - cm.defaultSortable = true; - - // create the grid - var grid = new Ext.grid.Grid('example-grid', { - ds: ds, - cm: cm - }); - grid.render(); - - ds.load(); -}); diff --git a/www/extras/extjs/examples/info-bg.gif b/www/extras/extjs/examples/info-bg.gif deleted file mode 100644 index 362d65bfc..000000000 Binary files a/www/extras/extjs/examples/info-bg.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/complex.html b/www/extras/extjs/examples/layout/complex.html deleted file mode 100644 index fd2e3bcec..000000000 --- a/www/extras/extjs/examples/layout/complex.html +++ /dev/null @@ -1,153 +0,0 @@ - - - Complex Layout - - - - - - - - - - - -
    -
    - Hi. I'm the west panel. -
    -
    - north - generally for menus, toolbars and/or advertisements -
    -
    - The layout manager will automatically create and/or remove the TabPanel component when a region has more than one panel. Close one of my panels and you can see what I mean. -
    -
    -

    Show West Region

    -

    My closable attribute is set to false so you can't close me. The other center panels can be closed.

    -

    The center panel automatically grows to fit the remaining space in the container that isn't taken up by the border regions.

    -
    -

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa. Vivamus eget quam. Vivamus tincidunt diam nec urna. Curabitur velit. Quisque dolor magna, ornare sed, elementum porta, luctus in, leo.

    -

    Donec quis dui. Sed imperdiet. Nunc consequat, est eu sollicitudin gravida, mauris ligula lacinia mauris, eu porta dui nisl in velit. Nam congue, odio id auctor nonummy, augue lectus euismod nunc, in tristique turpis dolor sed urna. Donec sit amet quam eget diam fermentum pharetra. Integer tincidunt arcu ut purus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla blandit malesuada odio. Nam augue. Aenean molestie sapien in mi. Suspendisse tincidunt. Pellentesque tempus dui vitae sapien. Donec aliquam ipsum sit amet pede. Sed scelerisque mi a erat. Curabitur rutrum ullamcorper risus. Maecenas et lorem ut felis dictum viverra. Fusce sem. Donec pharetra nibh sit amet sapien.

    -

    Aenean ut orci sed ligula consectetuer pretium. Aliquam odio. Nam pellentesque enim. Nam tincidunt condimentum nisi. Maecenas convallis luctus ligula. Donec accumsan ornare risus. Vestibulum id magna a nunc posuere laoreet. Integer iaculis leo vitae nibh. Nam vulputate, mauris vitae luctus pharetra, pede neque bibendum tellus, facilisis commodo diam nisi eget lacus. Duis consectetuer pulvinar nisi. Cras interdum ultricies sem. Nullam tristique. Suspendisse elementum purus eu nisl. Nulla facilisi. Phasellus ultricies ullamcorper lorem. Sed euismod ante vitae lacus. Nam nunc leo, congue vehicula, luctus ac, tempus non, ante. Morbi suscipit purus a nulla. Sed eu diam.

    -

    Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras imperdiet felis id velit. Ut non quam at sem dictum ullamcorper. Vestibulum pharetra purus sed pede. Aliquam ultrices, nunc in varius mattis, felis justo pretium magna, eget laoreet justo eros id eros. Aliquam elementum diam fringilla nulla. Praesent laoreet sapien vel metus. Cras tempus, sapien condimentum dictum dapibus, lorem augue fringilla orci, ut tincidunt eros nisi eget turpis. Nullam nunc nunc, eleifend et, dictum et, pharetra a, neque. Ut feugiat. Aliquam erat volutpat. Donec pretium odio nec felis. Phasellus sagittis lacus eget sapien. Donec est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

    -

    Vestibulum semper. Nullam non odio. Aliquam quam. Mauris eu lectus non nunc auctor ullamcorper. Sed tincidunt molestie enim. Phasellus lobortis justo sit amet quam. Duis nulla erat, varius a, cursus in, tempor sollicitudin, mauris. Aliquam mi velit, consectetuer mattis, consequat tristique, pulvinar ac, nisl. Aliquam mattis vehicula elit. Proin quis leo sed tellus scelerisque molestie. Quisque luctus. Integer mattis. Donec id augue sed leo aliquam egestas. Quisque in sem. Donec dictum enim in dolor. Praesent non erat. Nulla ultrices vestibulum quam.

    -

    Duis hendrerit, est vel lobortis sagittis, tortor erat scelerisque tortor, sed pellentesque sem enim id metus. Maecenas at pede. Nulla velit libero, dictum at, mattis quis, sagittis vel, ante. Phasellus faucibus rutrum dui. Cras mauris elit, bibendum at, feugiat non, porta id, neque. Nulla et felis nec odio mollis vehicula. Donec elementum tincidunt mauris. Duis vel dui. Fusce iaculis enim ac nulla. In risus.

    -

    Donec gravida. Donec et enim. Morbi sollicitudin, lacus a facilisis pulvinar, odio turpis dapibus elit, in tincidunt turpis felis nec libero. Nam vestibulum tempus ipsum. In hac habitasse platea dictumst. Nulla facilisi. Donec semper ligula. Donec commodo tortor in quam. Etiam massa. Ut tempus ligula eget tellus. Curabitur id velit ut velit varius commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla facilisi. Fusce ornare pellentesque libero. Nunc rhoncus. Suspendisse potenti. Ut consequat, leo eu accumsan vehicula, justo sem lobortis elit, ac sollicitudin ipsum neque nec ante.

    -

    Aliquam elementum mauris id sem. Vivamus varius, est ut nonummy consectetuer, nulla quam bibendum velit, ac gravida nisi felis sit amet urna. Aliquam nec risus. Maecenas lacinia purus ut velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse sit amet dui vitae lacus fermentum sodales. Donec varius dapibus nisl. Praesent at velit id risus convallis bibendum. Aliquam felis nibh, rutrum nec, blandit non, mattis sit amet, magna. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam varius dignissim nibh. Quisque id orci ac ante hendrerit molestie. Aliquam malesuada enim non neque.

    -
    -
    -

    Done reading me? Close me by clicking the X in the top right corner.

    -

    Vestibulum semper. Nullam non odio. Aliquam quam. Mauris eu lectus non nunc auctor ullamcorper. Sed tincidunt molestie enim. Phasellus lobortis justo sit amet quam. Duis nulla erat, varius a, cursus in, tempor sollicitudin, mauris. Aliquam mi velit, consectetuer mattis, consequat tristique, pulvinar ac, nisl. Aliquam mattis vehicula elit. Proin quis leo sed tellus scelerisque molestie. Quisque luctus. Integer mattis. Donec id augue sed leo aliquam egestas. Quisque in sem. Donec dictum enim in dolor. Praesent non erat. Nulla ultrices vestibulum quam.

    -

    Duis hendrerit, est vel lobortis sagittis, tortor erat scelerisque tortor, sed pellentesque sem enim id metus. Maecenas at pede. Nulla velit libero, dictum at, mattis quis, sagittis vel, ante. Phasellus faucibus rutrum dui. Cras mauris elit, bibendum at, feugiat non, porta id, neque. Nulla et felis nec odio mollis vehicula. Donec elementum tincidunt mauris. Duis vel dui. Fusce iaculis enim ac nulla. In risus.

    -

    Donec gravida. Donec et enim. Morbi sollicitudin, lacus a facilisis pulvinar, odio turpis dapibus elit, in tincidunt turpis felis nec libero. Nam vestibulum tempus ipsum. In hac habitasse platea dictumst. Nulla facilisi. Donec semper ligula. Donec commodo tortor in quam. Etiam massa. Ut tempus ligula eget tellus. Curabitur id velit ut velit varius commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla facilisi. Fusce ornare pellentesque libero. Nunc rhoncus. Suspendisse potenti. Ut consequat, leo eu accumsan vehicula, justo sem lobortis elit, ac sollicitudin ipsum neque nec ante.

    -

    Aliquam elementum mauris id sem. Vivamus varius, est ut nonummy consectetuer, nulla quam bibendum velit, ac gravida nisi felis sit amet urna. Aliquam nec risus. Maecenas lacinia purus ut velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse sit amet dui vitae lacus fermentum sodales. Donec varius dapibus nisl. Praesent at velit id risus convallis bibendum. Aliquam felis nibh, rutrum nec, blandit non, mattis sit amet, magna. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam varius dignissim nibh. Quisque id orci ac ante hendrerit molestie. Aliquam malesuada enim non neque.

    -
    -
    -
    -
    - south - generally for informational stuff, also could be for status bar -
    -
    - - diff --git a/www/extras/extjs/examples/layout/feed-proxy.ashx b/www/extras/extjs/examples/layout/feed-proxy.ashx deleted file mode 100644 index 8211aa13d..000000000 --- a/www/extras/extjs/examples/layout/feed-proxy.ashx +++ /dev/null @@ -1 +0,0 @@ -<%@ WebHandler Language="VB" CodeBehind="feed-proxy.ashx.vb" Class="SendGate.feedproxy1" %> diff --git a/www/extras/extjs/examples/layout/feed-proxy.ashx.vb b/www/extras/extjs/examples/layout/feed-proxy.ashx.vb deleted file mode 100644 index 66e0bae57..000000000 --- a/www/extras/extjs/examples/layout/feed-proxy.ashx.vb +++ /dev/null @@ -1,54 +0,0 @@ -Imports System.Web -Imports System.Web.Services -Imports System -Imports System.IO -Imports System.Net - -Public Class feedproxy1 - Implements System.Web.IHttpHandler - - Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest - - 'Address of URL - 'Dim URL As String = "http://www.jackslocum.com/yui/feed/" - Dim URL As String = context.Request.Form("feed") - 'Only allow http:// prefix - If IsNothing(URL) Then - Exit Sub - End If - If URL.Substring(0, 7) = "http://" Then - Try - 'Dim enc As Encoding = Encoding.GetEncoding("UTF-8") - Dim enc As Encoding = Encoding.GetEncoding("ISO-8859-1") - - Dim request As HttpWebRequest = WebRequest.Create(URL) - Dim response As HttpWebResponse = request.GetResponse() - Dim reader As StreamReader = New StreamReader(response.GetResponseStream(), enc) - Dim str As String '= reader.ReadLine() - Dim reply As String = "" - 'Do While str.Length > 0 And Not reader.EndOfStream - Do While Not reader.EndOfStream - str = reader.ReadLine() - reply &= str & vbCrLf - 'Console.WriteLine(str) - Loop - context.Response.ContentType = "text/xml" - context.Response.ContentEncoding = enc - context.Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)) - context.Response.Cache.SetCacheability(HttpCacheability.Public) - - context.Response.Write(reply) - Catch ex As Exception - End Try - - End If - - End Sub - - ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable - Get - Return False - End Get - End Property - -End Class \ No newline at end of file diff --git a/www/extras/extjs/examples/layout/feed-proxy.php b/www/extras/extjs/examples/layout/feed-proxy.php deleted file mode 100644 index e4654dce4..000000000 --- a/www/extras/extjs/examples/layout/feed-proxy.php +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/www/extras/extjs/examples/layout/feed-viewer.css b/www/extras/extjs/examples/layout/feed-viewer.css deleted file mode 100644 index 8d902ac84..000000000 --- a/www/extras/extjs/examples/layout/feed-viewer.css +++ /dev/null @@ -1,216 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* - * Ext - JS Library 1.0 Alpha 2 - * Copyright(c) 2006-2007, Jack Slocum. - */ - -html, body { - font: normal 9pt tahoma; - margin: 0px; - padding:0px; - border:0px; -} -.x-layout-panel-south{ - background:#c3daf9; - border:0px none; - border-top:1px solid #ddecfe; -} -.x-layout-panel-north, .ytheme-gray .x-layout-panel-north{ - background-image: url(images/header.gif); - background-repeat: repeat-x; - color:#FFF; - font:bold 12px verdana, helvetica; - overflow:hidden; - padding:4px; - border:0px none; - border-bottom:2px solid #c3daf9; -} -.ytheme-gray .x-layout-panel-north{ - border-bottom:2px solid #f3f2e7; -} -.x-layout-panel-hd-text{ - font: bold 11px tahoma,verdana,helvetica; - color:#083772; -} -.ytheme-gray .x-layout-panel-hd-text{ - font: bold 11px tahoma,verdana,helvetica; - color:#333333; -} -#preview-body{ - background:white; -} -#main .x-layout-panel-center{ - border-bottom:1px solid #98c0f4; -} -#preview-body { - padding:10px; - overflow:auto; - line-height: 18px; -} -#preview-body p{ - margin:5px; - margin-bottom:10px; -} -.x-toolbar{ - border:0px none; - background-color:#D8E7FB; - border-bottom:1px solid #c3daf9; - padding-bottom:1px; -} -#preview-tb .view-tab,#preview-tb .view-window,#myfeeds-tb .add-feed{ - background-position: 0px 0px; - background-repeat: no-repeat; - padding-left:18px; - padding-top:1px; - width:auto; - display:block; -} -.add-feed { - background-image: url('images/add-feed.gif'); -} -#myfeeds-body{ - overflow:auto; -} -.view-tab{ - background-image: url('images/new_tab.gif'); -} -.view-window{ - background-image: url('images/new_window.gif'); -} -.feed-list{ - padding:1px; -} -.feed-list a{ - border:1px solid white; - display:block; - -moz-outline:none; - margin-bottom:2px; - text-decoration:none; -} -.feed-list a .body{ - padding:5px 2px 5px 22px; - background-image:url(images/rss.gif); - background-position: 2px 5px; - background-repeat: no-repeat; - font:bold 12px tahoma, verdana, helvetica; - color: #2d5593; - display:block; - -moz-outline:none; -} -.feed-list a .desc{ - font:normal 11px tahoma, verdana, helvetica; - color: #222222; -} -.feed-list a:hover, .feed-list .selected{ - text-decoration: none; - border:1px solid #c3daf9; - background-color:#ddecfe; -} -.feed-list .selected{ - background-image: url('images/post-bg.gif'); - border:1px solid #c3daf9; -} -#feed-grid { - overflow:auto; -} -#add-feed{ - background-image: url('images/post-bg.gif'); - border:2px solid #c3daf9; - position:absolute; - z-index:10006; - font-size:8pt; - width:300px; - padding:5px; - overflow:auto; - left:-1000px; - top:-1000px; -} -#add-feed input{ - font:normal 8pt arial,helvetica; -} -#add-feed .eg{ - display:block; - padding:3px; - color:#1e4e8f; -} -#feed-url{ - width:240px; -} -#add-feed-close{ - position:absolute; - right:2px; - top:2px; - cursor:pointer; -} -#add-feed p{ - height:18px; - display:none; -} -#add-feed p.active-msg{ - display:block; -} - -#status { - font-size:8pt; - background-image: url('../../resources/images/default/grid/loading.gif'); - background-repeat: no-repeat; - background-position: left; - padding-left:20px; - padding-top:3px; - height:18px; -} -#status.done { - background-image: url('../../resources/images/default/grid/loading.gif'); -} -.x-layout-collapsed-west{ - background-image:url(images/myfeeds.gif); - background-repeat:no-repeat; - background-position:center; -} -.x-layout-collapsed-east{ - background-image:url(images/suggested.gif); - background-repeat:no-repeat; - background-position:center; -} -#main .x-layout-collapsed-south{ - background-image:url(images/preview.gif); - background-repeat:no-repeat; - background-position:center; -} - -/** Comment List */ -.item-date { - margin: 0; - display: block; - font-size: 10px; - font-weight:normal; - margin-bottom:3px; -} -.item-title{ - font:bold 11px "sans serif", verdana; - color:#444444; -} -.feed-item { - display:block; - margin:5px; - padding:5px; - font-size:11px; - border:1px solid white; - border-bottom:1px solid #dddddd; - color:#222222; - cursor:pointer; - line-height: 18px; - -moz-user-select: none; - -khtml-user-select:none; -} -.selected-article{ - background:#ecf5fe url('images/post-bg.gif') repeat-x; - border:1px solid #c3daf9; -} \ No newline at end of file diff --git a/www/extras/extjs/examples/layout/feed-viewer.html b/www/extras/extjs/examples/layout/feed-viewer.html deleted file mode 100644 index 192c0da5c..000000000 --- a/www/extras/extjs/examples/layout/feed-viewer.html +++ /dev/null @@ -1,39 +0,0 @@ - - - RSS Feed Viewer 2.0 - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - diff --git a/www/extras/extjs/examples/layout/feed-viewer.js b/www/extras/extjs/examples/layout/feed-viewer.js deleted file mode 100644 index 0897bbb04..000000000 --- a/www/extras/extjs/examples/layout/feed-viewer.js +++ /dev/null @@ -1,341 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -var Viewer = function(){ - // a bunch of private variables accessible by member function - var layout, statusPanel, south, preview, previewBody, feedPanel; - var grid, ds, sm; - var addFeed, currentItem, tpl; - var suggested, feeds; - var sfeeds, myfeeds; - var seed = 0; - - // feed clicks bubble up to this universal handler - var feedClicked = function(e){ - // find the "a" element that was clicked - var a = e.getTarget('a'); - if(a){ - e.preventDefault(); - Viewer.loadFeed(a.href); - Viewer.changeActiveFeed(a.id.substr(5)); - } - }; - - return { - init : function(){ - // initialize state manager, we will use cookies - Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); - - // initialize the add feed overlay and buttons - addFeed = Ext.get('add-feed'); - var addBtn = Ext.get('add-btn'); - addBtn.on('click', this.validateFeed, this); - var closeBtn = Ext.get('add-feed-close'); - closeBtn.on('click', addFeed.hide, addFeed, true); - - // create Elements for the feed and suggested lists - feeds = Ext.get('feeds'), suggested = Ext.get('suggested'); - - // delegate clicks on the lists - feeds.on('click', feedClicked); - suggested.on('click', feedClicked); - - //create feed template - tpl = new Ext.DomHelper.Template('{name}
    {desc}
    '); - - // collection of feeds added by the user - myfeeds = {}; - - // some default feeds - sfeeds = { - 'ajaxian':{id:'ajaxian', name: 'Ajaxian', desc: 'Cleaning up the web with Ajax.', url:'http://feeds.feedburner.com/ajaxian'}, - 'yui':{id:'yui', name: 'YUI Blog', desc: 'News and Articles about Designing and Developing with Yahoo! Libraries.', url:'http://feeds.yuiblog.com/YahooUserInterfaceBlog'}, - 'sports':{id:'sports', name: 'Yahoo! Sports', desc: 'Latest news and information for the world of sports.', url:'http://sports.yahoo.com/top/rss.xml'} - }; - - // go through the suggested feeds and add them to the list - for(var id in sfeeds) { - var f = sfeeds[id]; - tpl.append(suggested.dom, f); - } - - // create the main layout - layout = new Ext.BorderLayout(document.body, { - north: { - split:false, - initialSize: 25, - titlebar: false - }, - west: { - split:true, - initialSize: 200, - minSize: 175, - maxSize: 400, - titlebar: true, - collapsible: true, - animate: true, - autoScroll:false, - useShim:true, - cmargins: {top:0,bottom:2,right:2,left:2} - }, - east: { - split:true, - initialSize: 200, - minSize: 175, - maxSize: 400, - titlebar: true, - collapsible: true, - animate: true, - autoScroll:false, - useShim:true, - collapsed:true, - cmargins: {top:0,bottom:2,right:2,left:2} - }, - south: { - split:false, - initialSize: 22, - titlebar: false, - collapsible: false, - animate: false - }, - center: { - titlebar: false, - autoScroll:false, - tabPosition: 'top', - closeOnTab: true, - alwaysShowTabs: true, - resizeTabs: true - } - }); - // tell the layout not to perform layouts until we're done adding everything - layout.beginUpdate(); - layout.add('north', new Ext.ContentPanel('header')); - - // initialize the statusbar - statusPanel = new Ext.ContentPanel('status'); - south = layout.getRegion('south'); - south.add(statusPanel); - - // create the add feed toolbar - var feedtb = new Ext.Toolbar('myfeeds-tb'); - // They can also be referenced by id in or components - feedtb.add( { - id:'add-feed-btn', - icon: 'images/add-feed.gif', // icons can also be specified inline - cls: 'x-btn-text-icon', - text: 'Add feed', - handler: this.showAddFeed.createDelegate(this), - tooltip: 'Add Feed
    Button with tooltip' - }); - - layout.add('west', new Ext.ContentPanel('feeds', {title: 'My Feeds', fitToFrame:true, toolbar: feedtb, resizeEl:'myfeeds-body'})); - layout.add('east', new Ext.ContentPanel('suggested', {title: 'Suggested Feeds', fitToFrame:true})); - - // the inner layout houses the grid panel and the preview panel - var innerLayout = new Ext.BorderLayout('main', { - south: { - split:true, - initialSize: 250, - minSize: 100, - maxSize: 400, - autoScroll:false, - collapsible:true, - titlebar: true, - animate: true, - cmargins: {top:2,bottom:0,right:0,left:0} - }, - center: { - autoScroll:false, - titlebar:false - } - }); - // add the nested layout - feedPanel = new Ext.NestedLayoutPanel(innerLayout, 'View Feed'); - layout.add('center', feedPanel); - - innerLayout.beginUpdate(); - - var lv = innerLayout.add('center', new Ext.ContentPanel('feed-grid', {title: 'Feed Articles', fitToFrame:true})); - this.createView(lv.getEl()); - - // create the preview panel and toolbar - previewBody = Ext.get('preview-body'); - var tb = new Ext.Toolbar('preview-tb'); - - tb.addButton({text: 'View in New Tab',icon: 'images/new_tab.gif',cls: 'x-btn-text-icon', handler: this.showInTab.createDelegate(this)}); - tb.addSeparator(); - tb.addButton({text: 'View in New Window',icon: 'images/new_window.gif',cls: 'x-btn-text-icon', handler: this.showInWindow.createDelegate(this)}); - - preview = new Ext.ContentPanel('preview', {title: "Preview", fitToFrame:true, toolbar: tb, resizeEl:'preview-body'}); - innerLayout.add('south', preview); - - // restore innerLayout state - innerLayout.restoreState(); - innerLayout.endUpdate(true); - - // restore any state information - layout.restoreState(); - layout.endUpdate(); - - this.loadFeed('http://feeds.feedburner.com/ajaxian'); - this.changeActiveFeed('ajaxian'); - }, - - createView : function(el){ - function reformatDate(feedDate){ - var d = new Date(Date.parse(feedDate)); - return d ? d.dateFormat('D M j, Y, g:i a') : ''; - } - - var reader = new Ext.data.XmlReader({record: 'item'}, - ['title', {name:'pubDate', type:'date'}, 'link', 'description'] - ); - - ds = new Ext.data.Store({ - proxy: new Ext.data.HttpProxy({ - url: 'feed-proxy.php' - }), - reader : reader - }); - - ds.on('load', this.onLoad, this); - - var tpl = new Ext.Template( - '
    ' + - '
    {title}
    ' + - '
    {date}
    ' + - '{desc}
    ' - ); - - var view = new Ext.View(el, tpl, {store: ds, singleSelect:true, selectedClass:'selected-article'}); - view.prepareData = function(data){ - return { - title: data.title, - date: reformatDate(data.pubDate), - desc: data.description.replace(/<\/?[^>]+>/gi, '').ellipse(350) - - }; - }; - view.on('click', this.showPost, this); - view.on('dblclick', this.showFullPost, this); - }, - - onLoad : function(){ - if(ds.getCount() < 1){ - preview.setContent(''); - } - statusPanel.getEl().addClass('done'); - statusPanel.setContent('Done.'); - }, - - loadFeed : function(feed){ - statusPanel.setContent('Loading feed ' + feed + '...'); - statusPanel.getEl().removeClass('done'); - //ds.load({'feed': feed}); - //cgsktca - ds.load({params:{'feed': feed}}); - }, - - showPost : function(view, dataIndex){ - var node = ds.getAt(dataIndex); - var title = node.data.title; - var link = node.data.link; - var desc = node.data.description; - - currentItem = { - index: dataIndex, link: link - }; - preview.setTitle(title.ellipse(80)); - previewBody.update(desc); - }, - - showFullPost : function(view, rowIndex){ - var node = ds.getAt(rowIndex); - var link = node.data.link; - var title = node.data.title; - - if(!title){ - title = 'View Post'; - } - var iframe = Ext.DomHelper.append(document.body, - {tag: 'iframe', frameBorder: 0, src: link}); - var panel = new Ext.ContentPanel(iframe, - {title: title, fitToFrame:true, closable:true}); - layout.add('center', panel); - }, - - showInTab : function(){ - if(currentItem){ - this.showFullPost(grid, currentItem.index); - } - }, - - showInWindow : function(){ - if(currentItem){ - window.open(currentItem.link, 'win'); - } - }, - - changeActiveFeed : function(feedId){ - YAHOO.util.Dom.removeClass(suggested.dom.getElementsByTagName('a'), 'selected'); - YAHOO.util.Dom.removeClass(feeds.dom.getElementsByTagName('a'), 'selected'); - YAHOO.util.Dom.addClass('feed-'+feedId, 'selected'); - var feed = sfeeds[feedId] || myfeeds[feedId]; - feedPanel.setTitle('View Feed (' + feed.name.ellipse(16) + ')'); - }, - - showAddFeed : function(btn){ - Ext.get('feed-url').dom.value = ''; - Ext.get('add-title').radioClass('active-msg'); - var el = Ext.get('myfeeds-tb'); - - addFeed.alignTo('myfeeds-tb', 'tl', [3,3]); - addFeed.show(); - }, - - validateFeed : function(){ - var url = Ext.get('feed-url').dom.value; - Ext.get('loading-feed').radioClass('active-msg'); - var success = function(o){ - try{ - var xml = o.responseXML; - var channel = xml.getElementsByTagName('channel')[0]; - var titleEl = channel.getElementsByTagName('title')[0]; - var descEl = channel.getElementsByTagName('description')[0]; - var name = titleEl.firstChild.nodeValue; - var desc = (descEl.firstChild ? descEl.firstChild.nodeValue : ''); - var id = ++seed; - myfeeds[id] = {id:id, name:name, desc:desc, url:url}; - tpl.append('myfeeds-body', myfeeds[id]); - - addFeed.hide(); - - - ds.loadData(xml); - this.changeActiveFeed(id); - - }catch(e){ - Ext.get('invalid-feed').radioClass('active-msg'); - } - }.createDelegate(this); - var failure = function(o){ - Ext.get('invalid-feed').radioClass('active-msg'); - }; - Ext.lib.Ajax.request('POST', 'feed-proxy.php', {success:success, failure:failure}, 'feed='+encodeURIComponent(url)); - } - }; -}(); -Ext.onReady(Viewer.init, Viewer); - -String.prototype.ellipse = function(maxLength){ - if(this.length > maxLength){ - return this.substr(0, maxLength-3) + '...'; - } - return this; -}; - diff --git a/www/extras/extjs/examples/layout/images/Thumbs.db b/www/extras/extjs/examples/layout/images/Thumbs.db deleted file mode 100644 index 3a8602bf0..000000000 Binary files a/www/extras/extjs/examples/layout/images/Thumbs.db and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/add-feed.gif b/www/extras/extjs/examples/layout/images/add-feed.gif deleted file mode 100644 index 7b47c9ae3..000000000 Binary files a/www/extras/extjs/examples/layout/images/add-feed.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/article.gif b/www/extras/extjs/examples/layout/images/article.gif deleted file mode 100644 index abcebe5f1..000000000 Binary files a/www/extras/extjs/examples/layout/images/article.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/bullet.gif b/www/extras/extjs/examples/layout/images/bullet.gif deleted file mode 100644 index 8b793416c..000000000 Binary files a/www/extras/extjs/examples/layout/images/bullet.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/cancel.gif b/www/extras/extjs/examples/layout/images/cancel.gif deleted file mode 100644 index cb734917b..000000000 Binary files a/www/extras/extjs/examples/layout/images/cancel.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/comment-bg.gif b/www/extras/extjs/examples/layout/images/comment-bg.gif deleted file mode 100644 index b1b04161a..000000000 Binary files a/www/extras/extjs/examples/layout/images/comment-bg.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/feed-item.gif b/www/extras/extjs/examples/layout/images/feed-item.gif deleted file mode 100644 index abcebe5f1..000000000 Binary files a/www/extras/extjs/examples/layout/images/feed-item.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/grid-hrow.gif b/www/extras/extjs/examples/layout/images/grid-hrow.gif deleted file mode 100644 index a263abb03..000000000 Binary files a/www/extras/extjs/examples/layout/images/grid-hrow.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/header-bar.gif b/www/extras/extjs/examples/layout/images/header-bar.gif deleted file mode 100644 index 8ee7a0bd2..000000000 Binary files a/www/extras/extjs/examples/layout/images/header-bar.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/header.gif b/www/extras/extjs/examples/layout/images/header.gif deleted file mode 100644 index 83cc1296e..000000000 Binary files a/www/extras/extjs/examples/layout/images/header.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/myfeeds.gif b/www/extras/extjs/examples/layout/images/myfeeds.gif deleted file mode 100644 index d41d32a91..000000000 Binary files a/www/extras/extjs/examples/layout/images/myfeeds.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/new_tab.gif b/www/extras/extjs/examples/layout/images/new_tab.gif deleted file mode 100644 index 38331fb8c..000000000 Binary files a/www/extras/extjs/examples/layout/images/new_tab.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/new_window.gif b/www/extras/extjs/examples/layout/images/new_window.gif deleted file mode 100644 index f3883546a..000000000 Binary files a/www/extras/extjs/examples/layout/images/new_window.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/post-bg.gif b/www/extras/extjs/examples/layout/images/post-bg.gif deleted file mode 100644 index 362d65bfc..000000000 Binary files a/www/extras/extjs/examples/layout/images/post-bg.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/preview.gif b/www/extras/extjs/examples/layout/images/preview.gif deleted file mode 100644 index 31e34139d..000000000 Binary files a/www/extras/extjs/examples/layout/images/preview.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/rss.gif b/www/extras/extjs/examples/layout/images/rss.gif deleted file mode 100644 index e41d0f764..000000000 Binary files a/www/extras/extjs/examples/layout/images/rss.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/signin.gif b/www/extras/extjs/examples/layout/images/signin.gif deleted file mode 100644 index dfdda0c0e..000000000 Binary files a/www/extras/extjs/examples/layout/images/signin.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/signout.gif b/www/extras/extjs/examples/layout/images/signout.gif deleted file mode 100644 index f4194c174..000000000 Binary files a/www/extras/extjs/examples/layout/images/signout.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/suggested.gif b/www/extras/extjs/examples/layout/images/suggested.gif deleted file mode 100644 index f73b8a75e..000000000 Binary files a/www/extras/extjs/examples/layout/images/suggested.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/tab-close-on.gif b/www/extras/extjs/examples/layout/images/tab-close-on.gif deleted file mode 100644 index eacea39b6..000000000 Binary files a/www/extras/extjs/examples/layout/images/tab-close-on.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/tab-close.gif b/www/extras/extjs/examples/layout/images/tab-close.gif deleted file mode 100644 index 45db61e60..000000000 Binary files a/www/extras/extjs/examples/layout/images/tab-close.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/toolbar.gif b/www/extras/extjs/examples/layout/images/toolbar.gif deleted file mode 100644 index 8280d6623..000000000 Binary files a/www/extras/extjs/examples/layout/images/toolbar.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/wait.gif b/www/extras/extjs/examples/layout/images/wait.gif deleted file mode 100644 index 471c1a4f9..000000000 Binary files a/www/extras/extjs/examples/layout/images/wait.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/images/warning.gif b/www/extras/extjs/examples/layout/images/warning.gif deleted file mode 100644 index 806d4bc09..000000000 Binary files a/www/extras/extjs/examples/layout/images/warning.gif and /dev/null differ diff --git a/www/extras/extjs/examples/layout/nested.html b/www/extras/extjs/examples/layout/nested.html deleted file mode 100644 index e974017b8..000000000 --- a/www/extras/extjs/examples/layout/nested.html +++ /dev/null @@ -1,126 +0,0 @@ - - - Complex Layout - - - - - - - - - - -
    - -
    -
    -

    This layout uses the gray theme. To make a layout use the gray theme, add the class .ytheme-gray to the body or a container element.

    -

    Vestibulum semper. Nullam non odio. Aliquam quam. Mauris eu lectus non nunc auctor ullamcorper. Sed tincidunt molestie enim. Phasellus lobortis justo sit amet quam. Duis nulla erat, varius a, cursus in, tempor sollicitudin, mauris. Aliquam mi velit, consectetuer mattis, consequat tristique, pulvinar ac, nisl. Aliquam mattis vehicula elit. Proin quis leo sed tellus scelerisque molestie. Quisque luctus. Integer mattis. Donec id augue sed leo aliquam egestas. Quisque in sem. Donec dictum enim in dolor. Praesent non erat. Nulla ultrices vestibulum quam.

    -

    Duis hendrerit, est vel lobortis sagittis, tortor erat scelerisque tortor, sed pellentesque sem enim id metus. Maecenas at pede. Nulla velit libero, dictum at, mattis quis, sagittis vel, ante. Phasellus faucibus rutrum dui. Cras mauris elit, bibendum at, feugiat non, porta id, neque. Nulla et felis nec odio mollis vehicula. Donec elementum tincidunt mauris. Duis vel dui. Fusce iaculis enim ac nulla. In risus.

    -

    Donec gravida. Donec et enim. Morbi sollicitudin, lacus a facilisis pulvinar, odio turpis dapibus elit, in tincidunt turpis felis nec libero. Nam vestibulum tempus ipsum. In hac habitasse platea dictumst. Nulla facilisi. Donec semper ligula. Donec commodo tortor in quam. Etiam massa. Ut tempus ligula eget tellus. Curabitur id velit ut velit varius commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla facilisi. Fusce ornare pellentesque libero. Nunc rhoncus. Suspendisse potenti. Ut consequat, leo eu accumsan vehicula, justo sem lobortis elit, ac sollicitudin ipsum neque nec ante.

    -

    Aliquam elementum mauris id sem. Vivamus varius, est ut nonummy consectetuer, nulla quam bibendum velit, ac gravida nisi felis sit amet urna. Aliquam nec risus. Maecenas lacinia purus ut velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse sit amet dui vitae lacus fermentum sodales. Donec varius dapibus nisl. Praesent at velit id risus convallis bibendum. Aliquam felis nibh, rutrum nec, blandit non, mattis sit amet, magna. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam varius dignissim nibh. Quisque id orci ac ante hendrerit molestie. Aliquam malesuada enim non neque.

    -
    -
    -

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa. Vivamus eget quam. Vivamus tincidunt diam nec urna. Curabitur velit. Quisque dolor magna, ornare sed, elementum porta, luctus in, leo.

    -

    Donec quis dui. Sed imperdiet. Nunc consequat, est eu sollicitudin gravida, mauris ligula lacinia mauris, eu porta dui nisl in velit. Nam congue, odio id auctor nonummy, augue lectus euismod nunc, in tristique turpis dolor sed urna. Donec sit amet quam eget diam fermentum pharetra. Integer tincidunt arcu ut purus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla blandit malesuada odio. Nam augue. Aenean molestie sapien in mi. Suspendisse tincidunt. Pellentesque tempus dui vitae sapien. Donec aliquam ipsum sit amet pede. Sed scelerisque mi a erat. Curabitur rutrum ullamcorper risus. Maecenas et lorem ut felis dictum viverra. Fusce sem. Donec pharetra nibh sit amet sapien.

    -

    Aenean ut orci sed ligula consectetuer pretium. Aliquam odio. Nam pellentesque enim. Nam tincidunt condimentum nisi. Maecenas convallis luctus ligula. Donec accumsan ornare risus. Vestibulum id magna a nunc posuere laoreet. Integer iaculis leo vitae nibh. Nam vulputate, mauris vitae luctus pharetra, pede neque bibendum tellus, facilisis commodo diam nisi eget lacus. Duis consectetuer pulvinar nisi. Cras interdum ultricies sem. Nullam tristique. Suspendisse elementum purus eu nisl. Nulla facilisi. Phasellus ultricies ullamcorper lorem. Sed euismod ante vitae lacus. Nam nunc leo, congue vehicula, luctus ac, tempus non, ante. Morbi suscipit purus a nulla. Sed eu diam.

    -
    -
    - - diff --git a/www/extras/extjs/examples/layout/simple.html b/www/extras/extjs/examples/layout/simple.html deleted file mode 100644 index dce8333ad..000000000 --- a/www/extras/extjs/examples/layout/simple.html +++ /dev/null @@ -1,129 +0,0 @@ - - - Simple Layout - - - - - - - - - -
    - - -
    -

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa. Vivamus eget quam. Vivamus tincidunt diam nec urna. Curabitur velit. Quisque dolor magna, ornare sed, elementum porta, luctus in, leo.

    -

    Donec quis dui. Sed imperdiet. Nunc consequat, est eu sollicitudin gravida, mauris ligula lacinia mauris, eu porta dui nisl in velit. Nam congue, odio id auctor nonummy, augue lectus euismod nunc, in tristique turpis dolor sed urna. Donec sit amet quam eget diam fermentum pharetra. Integer tincidunt arcu ut purus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla blandit malesuada odio. Nam augue. Aenean molestie sapien in mi. Suspendisse tincidunt. Pellentesque tempus dui vitae sapien. Donec aliquam ipsum sit amet pede. Sed scelerisque mi a erat. Curabitur rutrum ullamcorper risus. Maecenas et lorem ut felis dictum viverra. Fusce sem. Donec pharetra nibh sit amet sapien.

    -

    Aenean ut orci sed ligula consectetuer pretium. Aliquam odio. Nam pellentesque enim. Nam tincidunt condimentum nisi. Maecenas convallis luctus ligula. Donec accumsan ornare risus. Vestibulum id magna a nunc posuere laoreet. Integer iaculis leo vitae nibh. Nam vulputate, mauris vitae luctus pharetra, pede neque bibendum tellus, facilisis commodo diam nisi eget lacus. Duis consectetuer pulvinar nisi. Cras interdum ultricies sem. Nullam tristique. Suspendisse elementum purus eu nisl. Nulla facilisi. Phasellus ultricies ullamcorper lorem. Sed euismod ante vitae lacus. Nam nunc leo, congue vehicula, luctus ac, tempus non, ante. Morbi suscipit purus a nulla. Sed eu diam.

    -

    Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras imperdiet felis id velit. Ut non quam at sem dictum ullamcorper. Vestibulum pharetra purus sed pede. Aliquam ultrices, nunc in varius mattis, felis justo pretium magna, eget laoreet justo eros id eros. Aliquam elementum diam fringilla nulla. Praesent laoreet sapien vel metus. Cras tempus, sapien condimentum dictum dapibus, lorem augue fringilla orci, ut tincidunt eros nisi eget turpis. Nullam nunc nunc, eleifend et, dictum et, pharetra a, neque. Ut feugiat. Aliquam erat volutpat. Donec pretium odio nec felis. Phasellus sagittis lacus eget sapien. Donec est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

    -

    Vestibulum semper. Nullam non odio. Aliquam quam. Mauris eu lectus non nunc auctor ullamcorper. Sed tincidunt molestie enim. Phasellus lobortis justo sit amet quam. Duis nulla erat, varius a, cursus in, tempor sollicitudin, mauris. Aliquam mi velit, consectetuer mattis, consequat tristique, pulvinar ac, nisl. Aliquam mattis vehicula elit. Proin quis leo sed tellus scelerisque molestie. Quisque luctus. Integer mattis. Donec id augue sed leo aliquam egestas. Quisque in sem. Donec dictum enim in dolor. Praesent non erat. Nulla ultrices vestibulum quam.

    -

    Duis hendrerit, est vel lobortis sagittis, tortor erat scelerisque tortor, sed pellentesque sem enim id metus. Maecenas at pede. Nulla velit libero, dictum at, mattis quis, sagittis vel, ante. Phasellus faucibus rutrum dui. Cras mauris elit, bibendum at, feugiat non, porta id, neque. Nulla et felis nec odio mollis vehicula. Donec elementum tincidunt mauris. Duis vel dui. Fusce iaculis enim ac nulla. In risus.

    -

    Donec gravida. Donec et enim. Morbi sollicitudin, lacus a facilisis pulvinar, odio turpis dapibus elit, in tincidunt turpis felis nec libero. Nam vestibulum tempus ipsum. In hac habitasse platea dictumst. Nulla facilisi. Donec semper ligula. Donec commodo tortor in quam. Etiam massa. Ut tempus ligula eget tellus. Curabitur id velit ut velit varius commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla facilisi. Fusce ornare pellentesque libero. Nunc rhoncus. Suspendisse potenti. Ut consequat, leo eu accumsan vehicula, justo sem lobortis elit, ac sollicitudin ipsum neque nec ante.

    -

    Aliquam elementum mauris id sem. Vivamus varius, est ut nonummy consectetuer, nulla quam bibendum velit, ac gravida nisi felis sit amet urna. Aliquam nec risus. Maecenas lacinia purus ut velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse sit amet dui vitae lacus fermentum sodales. Donec varius dapibus nisl. Praesent at velit id risus convallis bibendum. Aliquam felis nibh, rutrum nec, blandit non, mattis sit amet, magna. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam varius dignissim nibh. Quisque id orci ac ante hendrerit molestie. Aliquam malesuada enim non neque.

    -

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa. Vivamus eget quam. Vivamus tincidunt diam nec urna. Curabitur velit. Quisque dolor magna, ornare sed, elementum porta, luctus in, leo.

    -

    Donec quis dui. Sed imperdiet. Nunc consequat, est eu sollicitudin gravida, mauris ligula lacinia mauris, eu porta dui nisl in velit. Nam congue, odio id auctor nonummy, augue lectus euismod nunc, in tristique turpis dolor sed urna. Donec sit amet quam eget diam fermentum pharetra. Integer tincidunt arcu ut purus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla blandit malesuada odio. Nam augue. Aenean molestie sapien in mi. Suspendisse tincidunt. Pellentesque tempus dui vitae sapien. Donec aliquam ipsum sit amet pede. Sed scelerisque mi a erat. Curabitur rutrum ullamcorper risus. Maecenas et lorem ut felis dictum viverra. Fusce sem. Donec pharetra nibh sit amet sapien.

    -

    Aenean ut orci sed ligula consectetuer pretium. Aliquam odio. Nam pellentesque enim. Nam tincidunt condimentum nisi. Maecenas convallis luctus ligula. Donec accumsan ornare risus. Vestibulum id magna a nunc posuere laoreet. Integer iaculis leo vitae nibh. Nam vulputate, mauris vitae luctus pharetra, pede neque bibendum tellus, facilisis commodo diam nisi eget lacus. Duis consectetuer pulvinar nisi. Cras interdum ultricies sem. Nullam tristique. Suspendisse elementum purus eu nisl. Nulla facilisi. Phasellus ultricies ullamcorper lorem. Sed euismod ante vitae lacus. Nam nunc leo, congue vehicula, luctus ac, tempus non, ante. Morbi suscipit purus a nulla. Sed eu diam.

    -

    Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras imperdiet felis id velit. Ut non quam at sem dictum ullamcorper. Vestibulum pharetra purus sed pede. Aliquam ultrices, nunc in varius mattis, felis justo pretium magna, eget laoreet justo eros id eros. Aliquam elementum diam fringilla nulla. Praesent laoreet sapien vel metus. Cras tempus, sapien condimentum dictum dapibus, lorem augue fringilla orci, ut tincidunt eros nisi eget turpis. Nullam nunc nunc, eleifend et, dictum et, pharetra a, neque. Ut feugiat. Aliquam erat volutpat. Donec pretium odio nec felis. Phasellus sagittis lacus eget sapien. Donec est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

    -

    Vestibulum semper. Nullam non odio. Aliquam quam. Mauris eu lectus non nunc auctor ullamcorper. Sed tincidunt molestie enim. Phasellus lobortis justo sit amet quam. Duis nulla erat, varius a, cursus in, tempor sollicitudin, mauris. Aliquam mi velit, consectetuer mattis, consequat tristique, pulvinar ac, nisl. Aliquam mattis vehicula elit. Proin quis leo sed tellus scelerisque molestie. Quisque luctus. Integer mattis. Donec id augue sed leo aliquam egestas. Quisque in sem. Donec dictum enim in dolor. Praesent non erat. Nulla ultrices vestibulum quam.

    -

    Duis hendrerit, est vel lobortis sagittis, tortor erat scelerisque tortor, sed pellentesque sem enim id metus. Maecenas at pede. Nulla velit libero, dictum at, mattis quis, sagittis vel, ante. Phasellus faucibus rutrum dui. Cras mauris elit, bibendum at, feugiat non, porta id, neque. Nulla et felis nec odio mollis vehicula. Donec elementum tincidunt mauris. Duis vel dui. Fusce iaculis enim ac nulla. In risus.

    -

    Donec gravida. Donec et enim. Morbi sollicitudin, lacus a facilisis pulvinar, odio turpis dapibus elit, in tincidunt turpis felis nec libero. Nam vestibulum tempus ipsum. In hac habitasse platea dictumst. Nulla facilisi. Donec semper ligula. Donec commodo tortor in quam. Etiam massa. Ut tempus ligula eget tellus. Curabitur id velit ut velit varius commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla facilisi. Fusce ornare pellentesque libero. Nunc rhoncus. Suspendisse potenti. Ut consequat, leo eu accumsan vehicula, justo sem lobortis elit, ac sollicitudin ipsum neque nec ante.

    -

    Aliquam elementum mauris id sem. Vivamus varius, est ut nonummy consectetuer, nulla quam bibendum velit, ac gravida nisi felis sit amet urna. Aliquam nec risus. Maecenas lacinia purus ut velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse sit amet dui vitae lacus fermentum sodales. Donec varius dapibus nisl. Praesent at velit id risus convallis bibendum. Aliquam felis nibh, rutrum nec, blandit non, mattis sit amet, magna. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam varius dignissim nibh. Quisque id orci ac ante hendrerit molestie. Aliquam malesuada enim non neque.

    -

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa. Vivamus eget quam. Vivamus tincidunt diam nec urna. Curabitur velit. Quisque dolor magna, ornare sed, elementum porta, luctus in, leo.

    -

    Donec quis dui. Sed imperdiet. Nunc consequat, est eu sollicitudin gravida, mauris ligula lacinia mauris, eu porta dui nisl in velit. Nam congue, odio id auctor nonummy, augue lectus euismod nunc, in tristique turpis dolor sed urna. Donec sit amet quam eget diam fermentum pharetra. Integer tincidunt arcu ut purus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla blandit malesuada odio. Nam augue. Aenean molestie sapien in mi. Suspendisse tincidunt. Pellentesque tempus dui vitae sapien. Donec aliquam ipsum sit amet pede. Sed scelerisque mi a erat. Curabitur rutrum ullamcorper risus. Maecenas et lorem ut felis dictum viverra. Fusce sem. Donec pharetra nibh sit amet sapien.

    -

    Aenean ut orci sed ligula consectetuer pretium. Aliquam odio. Nam pellentesque enim. Nam tincidunt condimentum nisi. Maecenas convallis luctus ligula. Donec accumsan ornare risus. Vestibulum id magna a nunc posuere laoreet. Integer iaculis leo vitae nibh. Nam vulputate, mauris vitae luctus pharetra, pede neque bibendum tellus, facilisis commodo diam nisi eget lacus. Duis consectetuer pulvinar nisi. Cras interdum ultricies sem. Nullam tristique. Suspendisse elementum purus eu nisl. Nulla facilisi. Phasellus ultricies ullamcorper lorem. Sed euismod ante vitae lacus. Nam nunc leo, congue vehicula, luctus ac, tempus non, ante. Morbi suscipit purus a nulla. Sed eu diam.

    -

    Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras imperdiet felis id velit. Ut non quam at sem dictum ullamcorper. Vestibulum pharetra purus sed pede. Aliquam ultrices, nunc in varius mattis, felis justo pretium magna, eget laoreet justo eros id eros. Aliquam elementum diam fringilla nulla. Praesent laoreet sapien vel metus. Cras tempus, sapien condimentum dictum dapibus, lorem augue fringilla orci, ut tincidunt eros nisi eget turpis. Nullam nunc nunc, eleifend et, dictum et, pharetra a, neque. Ut feugiat. Aliquam erat volutpat. Donec pretium odio nec felis. Phasellus sagittis lacus eget sapien. Donec est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

    -

    Vestibulum semper. Nullam non odio. Aliquam quam. Mauris eu lectus non nunc auctor ullamcorper. Sed tincidunt molestie enim. Phasellus lobortis justo sit amet quam. Duis nulla erat, varius a, cursus in, tempor sollicitudin, mauris. Aliquam mi velit, consectetuer mattis, consequat tristique, pulvinar ac, nisl. Aliquam mattis vehicula elit. Proin quis leo sed tellus scelerisque molestie. Quisque luctus. Integer mattis. Donec id augue sed leo aliquam egestas. Quisque in sem. Donec dictum enim in dolor. Praesent non erat. Nulla ultrices vestibulum quam.

    -

    Duis hendrerit, est vel lobortis sagittis, tortor erat scelerisque tortor, sed pellentesque sem enim id metus. Maecenas at pede. Nulla velit libero, dictum at, mattis quis, sagittis vel, ante. Phasellus faucibus rutrum dui. Cras mauris elit, bibendum at, feugiat non, porta id, neque. Nulla et felis nec odio mollis vehicula. Donec elementum tincidunt mauris. Duis vel dui. Fusce iaculis enim ac nulla. In risus.

    -

    Donec gravida. Donec et enim. Morbi sollicitudin, lacus a facilisis pulvinar, odio turpis dapibus elit, in tincidunt turpis felis nec libero. Nam vestibulum tempus ipsum. In hac habitasse platea dictumst. Nulla facilisi. Donec semper ligula. Donec commodo tortor in quam. Etiam massa. Ut tempus ligula eget tellus. Curabitur id velit ut velit varius commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla facilisi. Fusce ornare pellentesque libero. Nunc rhoncus. Suspendisse potenti. Ut consequat, leo eu accumsan vehicula, justo sem lobortis elit, ac sollicitudin ipsum neque nec ante.

    -

    Aliquam elementum mauris id sem. Vivamus varius, est ut nonummy consectetuer, nulla quam bibendum velit, ac gravida nisi felis sit amet urna. Aliquam nec risus. Maecenas lacinia purus ut velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse sit amet dui vitae lacus fermentum sodales. Donec varius dapibus nisl. Praesent at velit id risus convallis bibendum. Aliquam felis nibh, rutrum nec, blandit non, mattis sit amet, magna. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam varius dignissim nibh. Quisque id orci ac ante hendrerit molestie. Aliquam malesuada enim non neque.

    -
    - -
    - - diff --git a/www/extras/extjs/examples/lib.css b/www/extras/extjs/examples/lib.css deleted file mode 100644 index ecc847a3f..000000000 --- a/www/extras/extjs/examples/lib.css +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -#lib-bar { - position:absolute; - top:0; - right:0; - z-index:100; -} -#lib-bar-inner { - padding:4px; -} -#lib-bar * { - font-size:11px; -} \ No newline at end of file diff --git a/www/extras/extjs/examples/locale/create_languages_js.py b/www/extras/extjs/examples/locale/create_languages_js.py deleted file mode 100644 index 1998a8155..000000000 --- a/www/extras/extjs/examples/locale/create_languages_js.py +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env python - -import sys, os, re - -try: - import chardet -except ImportError: - print "You need universal encoding detector for this script" - print " http://chardet.feedparser.org or apt-get install python-chardet" - sys.exit() - -regexp_language = re.compile("\* +(.+) +translation", re.IGNORECASE) -js_template = """/* This file is automaticly generated by create_language_js.py */ - -// some data used in the examples -Ext.namespace('Ext.exampledata'); - -// TODO: complete and sort the list -Ext.exampledata.languages = [ -%s -]; -""" - -def lang_name(file): - language = os.path.basename(file) - m = regexp_language.search(open(file).read(512)) - if m: - language = m.groups()[0] - return language - -def main(): - base_dir = "../../src/locale" - base_file = lambda f: os.path.join(base_dir, f) - try: - locales = os.listdir(base_dir) - except IOError: - print "Cannot find source locale directory: %s ... exiting" % base_dir - sys.exit() - - valid_file = lambda e: e.endswith(".js") and e.startswith("ext-lang-") - char_set = lambda f: chardet.detect(open(f).read())['encoding'] - lang_code = lambda f: f[9:f.rfind(".js")] - info_set = lambda f: (lang_name(base_file(f)), (lang_code(f), char_set(base_file(f)))) - locales = dict(info_set(file) for file in locales if valid_file(file)) - locale_strarray = ',\n'.join(["\t[%r, %r, %r]" % (code, name, charset) \ - for name, (code, charset) in sorted(locales.items())]) - # create languages.js - open("languages.js", "w").write(js_template % locale_strarray) - -if __name__=="__main__": - main() diff --git a/www/extras/extjs/examples/locale/dutch-form.html b/www/extras/extjs/examples/locale/dutch-form.html deleted file mode 100644 index cbe2711fd..000000000 --- a/www/extras/extjs/examples/locale/dutch-form.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - Dutch Form - - - - - - - - - - - - - - - - -

    Localization with Ext

    -

    The js is not minified so it is readable. See dutch-form.js.

    - -

    - This demonstrates a dutch location of Ext using the form component. It includes the localization - file "ext-lang-nl.js" from the source/locale folder of the Ext download. -

    - -
    -
    -
    -

    Persoons Gegevens

    -
    -
    -
    -
    -
    -
    - - diff --git a/www/extras/extjs/examples/locale/dutch-form.js b/www/extras/extjs/examples/locale/dutch-form.js deleted file mode 100644 index d4b8a7f89..000000000 --- a/www/extras/extjs/examples/locale/dutch-form.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function(){ - - Ext.QuickTips.init(); - - // turn on validation errors beside the field globally - Ext.form.Field.prototype.msgTarget = 'side'; - - var fs = new Ext.form.Form({ - labelAlign: 'right', - labelWidth: 95 - }); - - fs.fieldset( - {legend:'Contact Informatie'}, - new Ext.form.TextField({ - fieldLabel: 'Voornaam', - name: 'first', - width:190 - }), - - new Ext.form.TextField({ - fieldLabel: 'Achternaam', - name: 'last', - width:190 - }), - - new Ext.form.TextField({ - fieldLabel: 'Bedrijf', - name: 'company', - width:190 - }), - - new Ext.form.TextField({ - fieldLabel: 'E-mail', - name: 'email', - vtype:'email', - width:190 - }), - - new Ext.form.ComboBox({ - fieldLabel: 'Provincie', - hiddenName: 'state', - store: new Ext.data.SimpleStore({ - fields: ['province'], - data : Ext.exampledata.dutch_provinces // from dutch-provinces.js - }), - displayField: 'province', - typeAhead: true, - mode: 'local', - triggerAction: 'all', - emptyText:'Kies uw provincie...', - selectOnFocus:true, - width:190 - }), - - new Ext.form.DateField({ - fieldLabel: 'Geboorte datum', - name: 'dob', - width:190, - allowBlank:false - }) - ); - - fs.addButton('Opslaan'); - fs.addButton('Annuleren'); - - fs.render('form-ct'); -}); \ No newline at end of file diff --git a/www/extras/extjs/examples/locale/dutch-provinces.js b/www/extras/extjs/examples/locale/dutch-provinces.js deleted file mode 100644 index 09019e327..000000000 --- a/www/extras/extjs/examples/locale/dutch-provinces.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -// some data used in the examples -Ext.namespace('Ext.exampledata'); - -Ext.exampledata.dutch_provinces = [ - ['Drenthe'], - ['Flevoland'], - ['Friesland'], - ['Gelderland'], - ['Groningen'], - ['Limburg'], - ['Noord-Brabant'], - ['Noord-Holland'], - ['Overijsel'], - ['Utrecht'], - ['Zeeland'], - ['Zuid-Holland'] - ]; diff --git a/www/extras/extjs/examples/locale/languages.js b/www/extras/extjs/examples/locale/languages.js deleted file mode 100644 index 568b96134..000000000 --- a/www/extras/extjs/examples/locale/languages.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* This file is automaticly generated by create_language_js.py */ - -// some data used in the examples -Ext.namespace('Ext.exampledata'); - -// TODO: complete and sort the list -Ext.exampledata.languages = [ - ['hr', 'Croatian', 'utf-8'], - ['da', 'Danish', 'utf-8'], - ['nl', 'Dutch', 'ascii'], - ['en', 'English', 'ascii'], - ['fr_CA', 'France (Canadian)', 'UTF-8'], - ['de', 'German', 'ISO-8859-7'], - ['hu', 'Hungarian', 'utf-8'], - ['it', 'Italian', 'ascii'], - ['ja', 'Japanese', 'utf-8'], - ['lv', 'Latvian', 'utf-8'], - ['mk', 'Macedonia', 'utf-8'], - ['no', 'Norwegian', 'utf-8'], - ['pl', 'Polish', 'utf-8'], - ['pt_br', 'Portuguese/Brazil', 'ISO-8859-2'], - ['ro', 'Romanian', 'utf-8'], - ['ru', 'Russian', 'utf-8'], - ['zh_CN', 'Simplified Chinese', 'UTF-8'], - ['sk', 'Slovak', 'windows-1251'], - ['sp', 'Spanish/Latin American', 'utf-8'], - ['sv_se', 'Swedish', 'UTF-8'], - ['zh_TW', 'Traditional Chinese', 'UTF-8'], - ['tr', 'Turkish', 'utf-8'], - ['vn', 'Vietnamese', 'UTF-8'] -]; diff --git a/www/extras/extjs/examples/locale/multi-lang.html b/www/extras/extjs/examples/locale/multi-lang.html deleted file mode 100644 index 3bee7ceb4..000000000 --- a/www/extras/extjs/examples/locale/multi-lang.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - -Multiple Languages - - - - - - - - - - - - - - - -

    Localization with Extjs

    -

    The js is not minified so it is readable. See multi-lang.js.

    - -

    -This demonstrates multiple language with some of the Ext components.
    -Select a language from the combobox below (default is english) and try out the components in different languages. -

    - -
    - Language selector:  - -
    -
    -

    Email Field

    -

    -
    -
    -
    -

    Localized Email Field

    -
    -
    -
    -
    -
    -

    Datepicker

    -
    -
    -
    -
    -

    Localized Datepicker

    -
    -
    -
    -
    -
    -

    Grid

    -
    -
    -
    -
    -

    Localized Grid

    -
    -
    -
    -
    -
    -
    - - diff --git a/www/extras/extjs/examples/locale/multi-lang.js b/www/extras/extjs/examples/locale/multi-lang.js deleted file mode 100644 index eb8f5c3f6..000000000 --- a/www/extras/extjs/examples/locale/multi-lang.js +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* Fix for Opera, which does not seem to include the map function on Array's */ -if(!Array.prototype.map){ - Array.prototype.map = function(fun){ - var len = this.length; - if(typeof fun != "function"){ - throw new TypeError(); - } - var res = new Array(len); - var thisp = arguments[1]; - for(var i = 0; i < len; i++){ - if(i in this){ - res[i] = fun.call(thisp, this[i], i, this); - } - } - return res; - }; -} - -/* Paging Memory Proxy, allows to use paging grid with in memory dataset */ -Ext.data.PagingMemoryProxy = function(data) { - Ext.data.PagingMemoryProxy.superclass.constructor.call(this); - this.data = data; -}; - -Ext.extend(Ext.data.PagingMemoryProxy, Ext.data.MemoryProxy, { - load : function(params, reader, callback, scope, arg) { - params = params || {}; - var result; - try { - result = reader.readRecords(this.data); - }catch(e){ - this.fireEvent("loadexception", this, arg, null, e); - callback.call(scope, null, arg, false); - return; - } - if ( (params.start!==undefined) && (params.limit!==undefined) ) { - result.records = result.records.slice(params.start, params.start+params.limit); - } - callback.call(scope, result, arg, true); - } -}); - -/* multi-lang.js extscript */ -Ext.onReady(function(){ - Ext.QuickTips.init(); - Ext.form.Field.prototype.msgTarget = 'side'; - - /* Language chooser combobox */ - var store = new Ext.data.SimpleStore({ - fields: ['code', 'language', 'charset'], - data : Ext.exampledata.languages // from languages.js - }); - var combo = new Ext.form.ComboBox({ - store: store, - displayField:'language', - typeAhead: true, - mode: 'local', - triggerAction: 'all', - emptyText:'Select a language...', - selectOnFocus:true, - onSelect: function(record) { - window.location.search = Ext.urlEncode({"lang":record.get("code"),"charset":record.get("charset")}); - } - }); - combo.applyTo('languages'); - - // get the selected language code parameter from url (if exists) - var params = Ext.urlDecode(window.location.search.substring(1)); - if (params.lang) { - // check if there's really a language with that language code - record = store.data.find(function(item, key) { - if (item.data.code==params.lang){ - return true; - } - }); - // if language was found in store assign it as current value in combobox - if (record) { - combo.setValue(record.data.language); - } - } - - /* Email field */ - var efield = new Ext.form.Form({ labelWidth: 75 }); - efield.add(new Ext.form.TextField({ - fieldLabel: 'Email', - name: 'email', - vtype: 'email', - width: 175 - })); - efield.render('form-ct'); - - /* Datepicker */ - var efield = new Ext.form.Form({ labelWidth: 75 }); - efield.add(new Ext.form.DateField({ - fieldLabel: 'Date', - name: 'date', - width: 175 - })); - efield.render('form-ct2'); -}); - -Ext.onReady(function(){ - // shorthand alias - var fm = Ext.form, Ed = Ext.grid.GridEditor; - // the column model has information about grid columns - // dataIndex maps the column to the specific data field in - // the data store (created below) - var cm = new Ext.grid.ColumnModel([{ - header: "Months of the year", - dataIndex: 'month', - editor: new Ed(new fm.TextField({ - allowBlank: false - })), - width: 240 - }]); - - // by default columns are sortable - cm.defaultSortable = true; - - var monthArray = Date.monthNames.map(function (e) { return [e]; }); - - // create the Data Store - var ds = new Ext.data.Store({ - proxy: new Ext.data.PagingMemoryProxy(monthArray), - reader: new Ext.data.ArrayReader({}, [ - {name: 'month'} - ]) - }); - - // create the editor grid - var grid = new Ext.grid.EditorGrid('editor-grid', { - ds: ds, - cm: cm, - selModel: new Ext.grid.RowSelectionModel(), - enableColLock:false - }); - - var layout = Ext.BorderLayout.create({ - center: { - margins:{left:3,top:3,right:3,bottom:3}, - panels: [new Ext.GridPanel(grid)] - } - }, 'grid-panel'); - - // render it - grid.render(); - - var gridFoot = grid.getView().getFooterPanel(true); - - // add a paging toolbar to the grid's footer - var paging = new Ext.PagingToolbar(gridFoot, ds, { - pageSize: 6, - displayInfo: false - }); - - // trigger the data store load - ds.load({params:{start:0, limit:6}}); -}); diff --git a/www/extras/extjs/examples/menu/list-items.gif b/www/extras/extjs/examples/menu/list-items.gif deleted file mode 100644 index ecbdfc9df..000000000 Binary files a/www/extras/extjs/examples/menu/list-items.gif and /dev/null differ diff --git a/www/extras/extjs/examples/menu/menu-show.gif b/www/extras/extjs/examples/menu/menu-show.gif deleted file mode 100644 index ebfefffdc..000000000 Binary files a/www/extras/extjs/examples/menu/menu-show.gif and /dev/null differ diff --git a/www/extras/extjs/examples/menu/menus.css b/www/extras/extjs/examples/menu/menus.css deleted file mode 100644 index 66de76fb3..000000000 --- a/www/extras/extjs/examples/menu/menus.css +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -#container { - width:600px; - height:300px; - border:3px solid #c3daf9; -} - -.calendar .x-menu-item-icon { - background-image:url(../../resources/images/default/shared/calendar.gif); -} \ No newline at end of file diff --git a/www/extras/extjs/examples/menu/menus.html b/www/extras/extjs/examples/menu/menus.html deleted file mode 100644 index 7c61eb35b..000000000 --- a/www/extras/extjs/examples/menu/menus.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - -Toolbar with Menus - - - - - - - - - - - - - - - -

    Toolbar with Menus

    -

    The js is not minified so it is readable. See menus.js.

    - -
    -
    -
    - -




    - - diff --git a/www/extras/extjs/examples/menu/menus.js b/www/extras/extjs/examples/menu/menus.js deleted file mode 100644 index bf3154c31..000000000 --- a/www/extras/extjs/examples/menu/menus.js +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function(){ - Ext.QuickTips.init(); - - // Menus can be prebuilt and passed by reference - var dateMenu = new Ext.menu.DateMenu({ - handler : function(dp, date){ - Ext.example.msg('Date Selected', 'You chose {0}.', date.format('M j, Y')); - } - }); - - // Menus can be prebuilt and passed by reference - var colorMenu = new Ext.menu.ColorMenu({ - handler : function(cm, color){ - Ext.example.msg('Color Selected', 'You chose {0}.', color); - } - }); - - var menu = new Ext.menu.Menu({ - id: 'mainMenu', - items: [ - new Ext.menu.CheckItem({ - text: 'I like Ext', - checked: true, - checkHandler: onItemCheck - }), - new Ext.menu.CheckItem({ - text: 'Ext for jQuery', - checked: true, - checkHandler: onItemCheck - }), - new Ext.menu.CheckItem({ - text: 'I donated!', - checked:false, - checkHandler: onItemCheck - }), '-', { - text: 'Radio Options', - menu: { // <-- submenu by nested config object - items: [ - // stick any markup in a menu - 'Choose a Theme', - new Ext.menu.CheckItem({ - text: 'Aero Glass', - checked: true, - group: 'theme', - checkHandler: onItemCheck - }), - new Ext.menu.CheckItem({ - text: 'Vista Black', - group: 'theme', - checkHandler: onItemCheck - }), - new Ext.menu.CheckItem({ - text: 'Gray Theme', - group: 'theme', - checkHandler: onItemCheck - }), - new Ext.menu.CheckItem({ - text: 'Default Theme', - group: 'theme', - checkHandler: onItemCheck - }) - ] - } - },{ - text: 'Choose a Date', - cls: 'calendar', - menu: dateMenu // <-- submenu by reference - },{ - text: 'Choose a Color', - menu: colorMenu // <-- submenu by reference - } - ] - }); - - var tb = new Ext.Toolbar('toolbar'); - tb.add({ - cls: 'x-btn-text-icon bmenu', // icon and text class - text:'Button w/ Menu', - menu: menu // assign menu by instance - }, - new Ext.Toolbar.MenuButton({ - text: 'Split Button', - handler: onButtonClick, - tooltip: {text:'This is a QuickTip with autoHide set to false and a title', title:'Tip Title', autoHide:false}, - cls: 'x-btn-text-icon blist', - // Menus can be built/referenced by using nested menu config objects - menu : {items: [ - {text: 'Bold', handler: onItemClick}, - {text: 'Italic', handler: onItemClick}, - {text: 'Underline', handler: onItemClick}, '-',{ - text: 'Pick a Color', handler: onItemClick, menu: { - items: [ - new Ext.menu.ColorItem({selectHandler:function(cp, color){ - Ext.example.msg('Color Selected', 'You chose {0}.', color); - }}), '-', - {text:'More Colors...', handler:onItemClick} - ] - }}, - {text: 'Extellent!', handler: onItemClick} - ]} - }), '-', { - text: 'Toggle Me', - enableToggle: true, - toggleHandler: onItemToggle, - pressed: true - }); - - menu.addSeparator(); - // Menus have a rich api for - // adding and removing elements dynamically - var item = menu.add({ - text: 'Dynamically added Item' - }); - // items support full Observable API - item.on('click', onItemClick); - - // items can easily be looked up - menu.add({ - text: 'Disabled Item', - id: 'disableMe' // <-- Items can also have an id for easy lookup - // disabled: true <-- allowed but for sake of example we use long way below - }); - // access items by id or index - menu.items.get('disableMe').disable(); - - // They can also be referenced by id in or components - tb.add('-', { - icon: 'list-items.gif', // icons can also be specified inline - cls: 'x-btn-icon', - tooltip: 'Quick Tips
    Icon only button with tooltip' - }, '-'); - - // add a combobox to the toolbar - var store = new Ext.data.SimpleStore({ - fields: ['abbr', 'state'], - data : Ext.exampledata.states // from states.js - }); - var combo = new Ext.form.ComboBox({ - store: store, - displayField:'state', - typeAhead: true, - mode: 'local', - triggerAction: 'all', - emptyText:'Select a state...', - selectOnFocus:true, - width:135 - }); - tb.addField(combo); - - // functions to display feedback - function onButtonClick(btn){ - Ext.example.msg('Button Click','You clicked the "{0}" button.', btn.text); - } - - function onItemClick(item){ - Ext.example.msg('Menu Click', 'You clicked the "{0}" menu item.', item.text); - } - - function onItemCheck(item, checked){ - Ext.example.msg('Item Check', 'You {1} the "{0}" menu item.', item.text, checked ? 'checked' : 'unchecked'); - } - - function onItemToggle(item, pressed){ - Ext.example.msg('Button Toggled', 'Button "{0}" was toggled to {1}.', item.text, pressed); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/examples/resizable/basic.css b/www/extras/extjs/examples/resizable/basic.css deleted file mode 100644 index 7a2640cab..000000000 --- a/www/extras/extjs/examples/resizable/basic.css +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -#basic, #animated { - border:1px solid #c3daf9; - color:#1e4e8f; - font:bold 14px tahoma,verdana,helvetica; - text-align:center; - padding-top:20px; - width:200px; - height:80px; -} -#snap { - border:1px solid #c3daf9; - overflow:hidden; -} -#custom { - cursor:move; -} -#custom-rzwrap{ - z-index: 10000; -} -#custom-rzwrap .x-resizable-handle{ - width:11px; - height:11px; - background:transparent url(../../resources/images/sizer/square.gif) no-repeat; - margin:0px; - line-height:11px; -} -#custom-rzwrap .x-resizable-handle-east, #custom-rzwrap .x-resizable-handle-west{ - top:45%; -} -#custom-rzwrap .x-resizable-handle-north, #custom-rzwrap .x-resizable-handle-south{ - left:45%; -} \ No newline at end of file diff --git a/www/extras/extjs/examples/resizable/basic.html b/www/extras/extjs/examples/resizable/basic.html deleted file mode 100644 index 11a044c78..000000000 --- a/www/extras/extjs/examples/resizable/basic.html +++ /dev/null @@ -1,180 +0,0 @@ - - - -Resizable Examples - - - - - - - - - - - - - -

    Resizable Examples

    -

    These examples show how to apply a floating (default) and pinned Resizable component to a standard element.

    -

    Note that the js is not minified so it is readable. See basic.js for the full source code.

    - -

    - Basic Example
    - This is a basic as you get. To resize the box, position your mouse anywhere near the bottom, - right or border right edge of the box. This example uses the default "floating" handles. -

    -
    Resize Me!
    -
    var basic = new Ext.Resizable('basic', {
    -        width: 200,
    -        height: 100,
    -        minWidth:100,
    -        minHeight:50
    -});
    -
    -

    - Wrapped Elements
    - Some elements such as images and textareas don't allow child elements. In the past, you had - to wrap these elements and set up a Resizable with resize child. As of yui-ext .33 RC2, Resizable will - wrap the element, calculate adjustments for borders/padding and offset the handles for you. All you have to - do is set "wrap:true". The manual way of specifying a "resizeChild" is still supported as well. -

    - Pinned Handles
    - Notice this example has the resize handles "pinned". This is done by setting "pinned:true". -

    - Dynamic Sizing
    - If you don't like the proxy resizing, you can also turn on dynamic sizing. Just set "dynamic:true". -

    -

    - Here's a textarea that is wrapped, has pinned handles and has dynamic sizing turned on. -

    -

    -And look how simple the code is, even my grandma could write it. -
    var dwrapped = new Ext.Resizable('dwrapped', {
    -    wrap:true,
    -    pinned:true,
    -    width:450,
    -    height:150,
    -    minWidth:200,
    -    minHeight: 50,
    -    dynamic: true
    -});
    -
    -

    -Preserve Ratio
    - For some things like images, you will probably want to preserve the ratio of width to height. Just set preserveRatio:true. -

    - -
    var wrapped = new Ext.Resizable('wrapped', {
    -    wrap:true,
    -    pinned:true,
    -    minWidth:50,
    -    minHeight: 50,
    -    preserveRatio: true
    -});
    -
    -

    -Transparent Handles
    - If you just want the element to be resizable without any fancy handles, set transparent to true. -

    - -
    var transparent = new Ext.Resizable('transparent', {
    -    wrap:true,
    -    minWidth:50,
    -    minHeight: 50,
    -    preserveRatio: true,
    -    transparent:true
    -});
    -
    -

    - Customizable Handles
    - Resizable elements are resizable 8 ways. 8 way resizing for a static positioned element will cause the element to be positioned relative and taken out of the document flow. For resizing which adjusts the - x and y of the element, the element should be positioned absolute. You can also control which handles are displayed by setting the "handles" attribute. - The handles are styled using CSS so they can be customized to look however you would like them to. -

    -

    - This image has 8 way resizing, custom handles, is draggable and 8 way preserved ratio (that wasn't easy!).
    - Double click anywhere on the image to hide it when you are done. -

    - -
    -
    var custom = new Ext.Resizable('custom', {
    -    wrap:true,
    -    pinned:true,
    -    minWidth:50,
    -    minHeight: 50,
    -    preserveRatio: true,
    -    dynamic:true,
    -    handles: 'all', // shorthand for 'n s e w ne nw se sw'
    -    draggable:true
    -});
    -
    -

    - Snapping
    - Resizable also supports basic snapping in increments. -

    -
    -
    var snap = new Ext.Resizable('snap', {
    -    pinned:true,
    -    width:250,
    -    height:100,
    -    handles: 'e',
    -    widthIncrement:50,
    -    minWidth: 50,
    -    dynamic: true
    -});
    -
    -Warning: Snapping and preserveRatio conflict and can not be used together. -
    -

    - Animated Transitions
    - Resize operations can also be animated. Animations support configurable easing and duration. - Here's a very basic clone of the first element, but with animation turned on. I used a "backIn" - easing and made it a little slower than default. -

    -
    Animate Me!
    -
    var animated = new Ext.Resizable('animated', {
    -    width: 200,
    -    height: 100,
    -    minWidth:100,
    -    minHeight:50,
    -    animate:true,
    -    easing: 'backIn',
    -    duration:.6
    -});
    -Warning: for obvious reasons animate and dynamic resizing can not be used together. - - diff --git a/www/extras/extjs/examples/resizable/basic.js b/www/extras/extjs/examples/resizable/basic.js deleted file mode 100644 index 654d346c9..000000000 --- a/www/extras/extjs/examples/resizable/basic.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -var ResizableExample = { - init : function(){ - - var basic = new Ext.Resizable('basic', { - width: 200, - height: 100, - minWidth:100, - minHeight:50 - }); - - var animated = new Ext.Resizable('animated', { - width: 200, - pinned: true, - height: 100, - minWidth:100, - minHeight:50, - animate:true, - easing: 'backIn', - duration:.6 - }); - - var wrapped = new Ext.Resizable('wrapped', { - wrap:true, - pinned:true, - minWidth:50, - minHeight: 50, - preserveRatio: true - }); - - var transparent = new Ext.Resizable('transparent', { - wrap:true, - minWidth:50, - minHeight: 50, - preserveRatio: true, - transparent:true - }); - - var custom = new Ext.Resizable('custom', { - wrap:true, - pinned:true, - minWidth:50, - minHeight: 50, - preserveRatio: true, - handles: 'all', - draggable:true, - dynamic:true - }); - var customEl = custom.getEl(); - // move to the body to prevent overlap on my blog - document.body.insertBefore(customEl.dom, document.body.firstChild); - - customEl.on('dblclick', function(){ - customEl.hide(true); - }); - customEl.hide(); - - Ext.get('showMe').on('click', function(){ - customEl.center(); - customEl.show(true); - }); - - var dwrapped = new Ext.Resizable('dwrapped', { - wrap:true, - pinned:true, - width:450, - height:150, - minWidth:200, - minHeight: 50, - dynamic: true - }); - - var snap = new Ext.Resizable('snap', { - pinned:true, - width:250, - height:100, - handles: 'e', - widthIncrement:50, - minWidth: 50, - dynamic: true - }); - } -}; - -Ext.EventManager.onDocumentReady(ResizableExample.init, ResizableExample, true); \ No newline at end of file diff --git a/www/extras/extjs/examples/resizable/sara.jpg b/www/extras/extjs/examples/resizable/sara.jpg deleted file mode 100644 index b0f5e0f89..000000000 Binary files a/www/extras/extjs/examples/resizable/sara.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/resizable/sara_and_zack.jpg b/www/extras/extjs/examples/resizable/sara_and_zack.jpg deleted file mode 100644 index 21a068025..000000000 Binary files a/www/extras/extjs/examples/resizable/sara_and_zack.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/resizable/zack.jpg b/www/extras/extjs/examples/resizable/zack.jpg deleted file mode 100644 index 1358be9c6..000000000 Binary files a/www/extras/extjs/examples/resizable/zack.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/shared/icons/arrow-down.gif b/www/extras/extjs/examples/shared/icons/arrow-down.gif deleted file mode 100644 index 954a505dd..000000000 Binary files a/www/extras/extjs/examples/shared/icons/arrow-down.gif and /dev/null differ diff --git a/www/extras/extjs/examples/shared/icons/arrow-up.gif b/www/extras/extjs/examples/shared/icons/arrow-up.gif deleted file mode 100644 index 63039d95b..000000000 Binary files a/www/extras/extjs/examples/shared/icons/arrow-up.gif and /dev/null differ diff --git a/www/extras/extjs/examples/shared/icons/fam/SILK.txt b/www/extras/extjs/examples/shared/icons/fam/SILK.txt deleted file mode 100644 index 5584ada41..000000000 --- a/www/extras/extjs/examples/shared/icons/fam/SILK.txt +++ /dev/null @@ -1,3 +0,0 @@ -The icons in this folder are direct gif conversions of the fam fam fam silk icons. - -Please see http://www.famfamfam.com/lab/icons/silk/ for more details. \ No newline at end of file diff --git a/www/extras/extjs/examples/shared/icons/fam/add.gif b/www/extras/extjs/examples/shared/icons/fam/add.gif deleted file mode 100644 index 93195256d..000000000 Binary files a/www/extras/extjs/examples/shared/icons/fam/add.gif and /dev/null differ diff --git a/www/extras/extjs/examples/shared/icons/fam/cross.gif b/www/extras/extjs/examples/shared/icons/fam/cross.gif deleted file mode 100644 index 2eb286551..000000000 Binary files a/www/extras/extjs/examples/shared/icons/fam/cross.gif and /dev/null differ diff --git a/www/extras/extjs/examples/shared/icons/fam/delete.gif b/www/extras/extjs/examples/shared/icons/fam/delete.gif deleted file mode 100644 index 5e2a3b143..000000000 Binary files a/www/extras/extjs/examples/shared/icons/fam/delete.gif and /dev/null differ diff --git a/www/extras/extjs/examples/shared/icons/fam/plugin.gif b/www/extras/extjs/examples/shared/icons/fam/plugin.gif deleted file mode 100644 index 209c121c5..000000000 Binary files a/www/extras/extjs/examples/shared/icons/fam/plugin.gif and /dev/null differ diff --git a/www/extras/extjs/examples/shared/icons/fam/plugin_add.gif b/www/extras/extjs/examples/shared/icons/fam/plugin_add.gif deleted file mode 100644 index 5c95312bc..000000000 Binary files a/www/extras/extjs/examples/shared/icons/fam/plugin_add.gif and /dev/null differ diff --git a/www/extras/extjs/examples/shared/icons/save.gif b/www/extras/extjs/examples/shared/icons/save.gif deleted file mode 100644 index 817474951..000000000 Binary files a/www/extras/extjs/examples/shared/icons/save.gif and /dev/null differ diff --git a/www/extras/extjs/examples/tabs/ajax1.htm b/www/extras/extjs/examples/tabs/ajax1.htm deleted file mode 100644 index ff723e806..000000000 --- a/www/extras/extjs/examples/tabs/ajax1.htm +++ /dev/null @@ -1,3 +0,0 @@ -

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

    Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure.

    -

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

    Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure.

    -

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

    Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure.

    diff --git a/www/extras/extjs/examples/tabs/ajax2.htm b/www/extras/extjs/examples/tabs/ajax2.htm deleted file mode 100644 index 8bb27c2b4..000000000 --- a/www/extras/extjs/examples/tabs/ajax2.htm +++ /dev/null @@ -1,7 +0,0 @@ -I'm am content loaded via AJAX. I was set up using the setUrl() method on my Ext.TabPanelItem object: -
    var tab3 = jtabs.addTab('jtabs-3', "Ajax Tab 2");
    -tab3.setUrl('ajax2.htm', null, true);
    -
    -Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure. -Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure. -Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure. diff --git a/www/extras/extjs/examples/tabs/tabs-adv.html b/www/extras/extjs/examples/tabs/tabs-adv.html deleted file mode 100644 index 1c965675e..000000000 --- a/www/extras/extjs/examples/tabs/tabs-adv.html +++ /dev/null @@ -1,35 +0,0 @@ - - - -Tabs Example - - - - - - - - - - - - - -

    Tab Panel Example 2

    -

    Note that the js and css is not minified so it is readable. See tabs-adv.js for the tab creation code -and tabs-example.css for the css.

    - -

    Closable tabs with auto tab resize turned on.



    -
    -
    - Add a new Tab -
    -
    -

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa. Vivamus eget quam. Vivamus tincidunt diam nec urna. Curabitur velit. Quisque dolor magna, ornare sed, elementum porta, luctus in, leo.

    -

    Donec quis dui. Sed imperdiet. Nunc consequat, est eu sollicitudin gravida, mauris ligula lacinia mauris, eu porta dui nisl in velit. Nam congue, odio id auctor nonummy, augue lectus euismod nunc, in tristique turpis dolor sed urna. Donec sit amet quam eget diam fermentum pharetra. Integer tincidunt arcu ut purus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla blandit malesuada odio. Nam augue. Aenean molestie sapien in mi. Suspendisse tincidunt. Pellentesque tempus dui vitae sapien. Donec aliquam ipsum sit amet pede. Sed scelerisque mi a erat. Curabitur rutrum ullamcorper risus. Maecenas et lorem ut felis dictum viverra. Fusce sem. Donec pharetra nibh sit amet sapien.

    -

    Aenean ut orci sed ligula consectetuer pretium. Aliquam odio. Nam pellentesque enim. Nam tincidunt condimentum nisi. Maecenas convallis luctus ligula. Donec accumsan ornare risus. Vestibulum id magna a nunc posuere laoreet. Integer iaculis leo vitae nibh. Nam vulputate, mauris vitae luctus pharetra, pede neque bibendum tellus, facilisis commodo diam nisi eget lacus. Duis consectetuer pulvinar nisi. Cras interdum ultricies sem. Nullam tristique. Suspendisse elementum purus eu nisl. Nulla facilisi. Phasellus ultricies ullamcorper lorem. Sed euismod ante vitae lacus. Nam nunc leo, congue vehicula, luctus ac, tempus non, ante. Morbi suscipit purus a nulla. Sed eu diam.

    -
    -
    -
    - - \ No newline at end of file diff --git a/www/extras/extjs/examples/tabs/tabs-adv.js b/www/extras/extjs/examples/tabs/tabs-adv.js deleted file mode 100644 index 75c56fecc..000000000 --- a/www/extras/extjs/examples/tabs/tabs-adv.js +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function(){ - var tabs = new Ext.TabPanel('tab-panel1', { - resizeTabs:true, // turn on tab resizing - minTabWidth: 20, - preferredTabWidth:150 - }); - - tabs.addTab('root-tab', 'Home Tab'); - tabs.activate(0); - - var content = Ext.getDom('content').innerHTML; // bogus markup for tabs - var index = 0; - Ext.get('add-link').on('click', function(){ - tabs.addTab( - Ext.id(), - 'New Tab ' + (++index), - 'Tab Body ' + index + content, - true - ); - }); -}); \ No newline at end of file diff --git a/www/extras/extjs/examples/tabs/tabs-example.css b/www/extras/extjs/examples/tabs/tabs-example.css deleted file mode 100644 index 1cdd15259..000000000 --- a/www/extras/extjs/examples/tabs/tabs-example.css +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.list {list-style:square;width:500px;padding-left:16px;} -.list li{padding:2px;font-size:8pt;} - -/* hide the tab content while loading */ -.tab-content{display:none;} - -pre { - font-size:11px; -} - -#tabs1 {width:400px;} -#tabs1 .x-tabs-item-body {display:none;padding:10px;} - -#jtabs {width:600px;} -#jtabs .x-tabs-body {height:200px;overflow:auto;} -#jtabs .x-tabs-item-body {display:none;padding:10px;font-size:11px;} - -/* default loading indicator for ajax calls */ -.loading-indicator { - font-size:8pt; - background-image:url('../../resources/images/grid/loading.gif'); - background-repeat: no-repeat; - background-position: left; - padding-left:20px; -} - -#tab-panel1 .x-tabs-body {height:300px;overflow:auto;} -#tab-panel1 .x-tabs-item-body {padding:10px;} \ No newline at end of file diff --git a/www/extras/extjs/examples/tabs/tabs-example.js b/www/extras/extjs/examples/tabs/tabs-example.js deleted file mode 100644 index aafc96579..000000000 --- a/www/extras/extjs/examples/tabs/tabs-example.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -var TabsExample = { - init : function(){ - // basic tabs 1, built from existing content - var tabs = new Ext.TabPanel('tabs1'); - tabs.addTab('script', "View Script"); - tabs.addTab('markup', "View Markup"); - tabs.activate('script'); - - // second tabs built from JS - var jtabs = new Ext.TabPanel('jtabs'); - jtabs.addTab('jtabs-1', "Normal Tab", "My content was added during construction."); - - var tab2 = jtabs.addTab('jtabs-2', "Ajax Tab 1"); - var updater = tab2.getUpdateManager(); - updater.setDefaultUrl('ajax1.htm'); - tab2.on('activate', updater.refresh, updater, true); - - var tab3 = jtabs.addTab('jtabs-3', "Ajax Tab 2"); - tab3.setUrl('ajax2.htm', null, true); - - var tab4 = jtabs.addTab('jtabs-4', "Event Tab"); - tab4.setContent("I am tab 4's content. My content was set with setContent() after I was created. I also have an event listener attached."); - tab4.on('activate', function(){ - alert('Tab 4 was activated.'); - }); - - jtabs.addTab('tabs1-5', "Disabled Tab", "Can't see me cause I'm disabled"); - jtabs.disableTab('tabs1-5'); - - jtabs.activate('jtabs-1'); - } -} -Ext.EventManager.onDocumentReady(TabsExample.init, TabsExample, true); \ No newline at end of file diff --git a/www/extras/extjs/examples/tabs/tabs.html b/www/extras/extjs/examples/tabs/tabs.html deleted file mode 100644 index e112f4d7c..000000000 --- a/www/extras/extjs/examples/tabs/tabs.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - Tabs Example - - - - - - - - - - - - - - - - - - -

    Tab Panel Examples

    -

    Note that the js and css is not minified so it is readable. See tabs-example.js for the tab creation code -and tabs-example.css for the css.

    - -

    Tabs without fixed height that resize to the content. Built from existing markup.


    - -
    -
    - Here's my script: - - -
    -var tabs = new Ext.TabPanel('tabs1');
    -tabs.addTab('script', "View Script");
    -tabs.addTab('markup', "View Markup");
    -tabs.activate('script');
    - - -
    -
    - - -
    -<div id="tabs1">
    -    <div id="script" class="tab-content">
    -        (Content goes here)
    -    </div>
    -    <div id="markup" class="tab-content">
    -        (Content goes here)
    -    </div>
    -</div>
    - - -
    -
    - -
    -

    Tabs with fixed height that scroll the content. Built entirely with javascript.

    -
      -
    • Tab 1 is a normal tab with content passed when adding it.
    • -
    • Tab 2 is loaded via Ajax. It was set up using the standard UpdateManager functionality. It reloads it's content every time it's activated.
    • -
    • Tab 3 is loaded via Ajax too. It was set up using setUrl() a convenience method that will do everything done on tab 2 and also has the ability to set it to load only once.
    • -
    • Tab 4 has an event listener attached.
    • -
    • Tab 5 is disabled.
    • -

    - - -
    -
    - - - \ No newline at end of file diff --git a/www/extras/extjs/examples/tree/Thumbs.db b/www/extras/extjs/examples/tree/Thumbs.db deleted file mode 100644 index e15328218..000000000 Binary files a/www/extras/extjs/examples/tree/Thumbs.db and /dev/null differ diff --git a/www/extras/extjs/examples/tree/album.gif b/www/extras/extjs/examples/tree/album.gif deleted file mode 100644 index bc9ac0feb..000000000 Binary files a/www/extras/extjs/examples/tree/album.gif and /dev/null differ diff --git a/www/extras/extjs/examples/tree/center-bg.gif b/www/extras/extjs/examples/tree/center-bg.gif deleted file mode 100644 index f9b25b30c..000000000 Binary files a/www/extras/extjs/examples/tree/center-bg.gif and /dev/null differ diff --git a/www/extras/extjs/examples/tree/dep-tree.json b/www/extras/extjs/examples/tree/dep-tree.json deleted file mode 100644 index cb83ddcfc..000000000 --- a/www/extras/extjs/examples/tree/dep-tree.json +++ /dev/null @@ -1 +0,0 @@ -[{"text":"Ext Core (Required)","id":"c-1176543742240","options":[],"files":[{"allowDelete":true,"text":"DomHelper.js","id":"source/core/DomHelper.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 4:51 am
    Size: 14 KB","qtipTitle":"DomHelper.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Template.js","id":"source/core/Template.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 4:51 am
    Size: 13 KB","qtipTitle":"Template.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DomQuery.js","id":"source/core/DomQuery.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 4:51 am
    Size: 24 KB","qtipTitle":"DomQuery.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Observable.js","id":"source/util/Observable.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 4:51 am
    Size: 9.4 KB","qtipTitle":"Observable.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"EventManager.js","id":"source/core/EventManager.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 4:51 am
    Size: 24 KB","qtipTitle":"EventManager.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Element.js","id":"source/core/Element.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 4:51 am
    Size: 101 KB","qtipTitle":"Element.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Fx.js","id":"source/core/Fx.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 4:51 am
    Size: 33 KB","qtipTitle":"Fx.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"CompositeElement.js","id":"source/core/CompositeElement.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 4:51 am
    Size: 7.1 KB","qtipTitle":"CompositeElement.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"UpdateManager.js","id":"source/core/UpdateManager.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 4:51 am
    Size: 19 KB","qtipTitle":"UpdateManager.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DelayedTask.js","id":"source/util/DelayedTask.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 4:51 am
    Size: 2 KB","qtipTitle":"DelayedTask.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[]},{"text":"Core - Utilities","id":"c-1176547092092","options":[],"files":[{"allowDelete":true,"text":"ClickRepeater.js","id":"source/util/ClickRepeater.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:31 am
    Size: 4.9 KB","qtipTitle":"ClickRepeater.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"CSS.js","id":"source/util/CSS.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:31 am
    Size: 5 KB","qtipTitle":"CSS.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Format.js","id":"source/util/Format.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:31 am
    Size: 5.4 KB","qtipTitle":"Format.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"JSON.js","id":"source/util/JSON.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:31 am
    Size: 4.3 KB","qtipTitle":"JSON.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"KeyMap.js","id":"source/util/KeyMap.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:31 am
    Size: 5.9 KB","qtipTitle":"KeyMap.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"KeyNav.js","id":"source/util/KeyNav.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:31 am
    Size: 3 KB","qtipTitle":"KeyNav.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"MixedCollection.js","id":"source/util/MixedCollection.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:31 am
    Size: 17 KB","qtipTitle":"MixedCollection.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"TaskMgr.js","id":"source/util/TaskMgr.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:31 am
    Size: 2.3 KB","qtipTitle":"TaskMgr.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"TextMetrics.js","id":"source/util/TextMetrics.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:31 am
    Size: 1.8 KB","qtipTitle":"TextMetrics.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[]},{"text":"Core - Date Parsing and Formatting","id":"c-1176614560128","options":[],"files":[{"allowDelete":true,"expanded":true,"text":"Date.js","id":"source/util/Date.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 11:01 pm
    Size: 23 KB","qtipTitle":"Date.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}}],"dep":[]},{"text":"Core - Layers","id":"c-1176548288067","options":[],"files":[{"allowDelete":true,"text":"Component.js","id":"source/widgets/Component.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 9 KB","qtipTitle":"Component.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Layer.js","id":"source/widgets/Layer.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 9.9 KB","qtipTitle":"Layer.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Shadow.js","id":"source/widgets/Shadow.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 3.4 KB","qtipTitle":"Shadow.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[]},{"text":"Core - Drag and Drop","id":"c-1176548288338","options":[{"text":"Overflow Scrolling Support","cmpId":"c-1176548288338","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176599383444","children":[{"allowDelete":true,"text":"ScrollManager.js","id":"source/dd/ScrollManager.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 5.5 KB","qtipTitle":"ScrollManager.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"files":[{"allowDelete":true,"text":"DDCore.js","id":"source/dd/DDCore.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 95 KB","qtipTitle":"DDCore.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"StatusProxy.js","id":"source/dd/StatusProxy.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 3.1 KB","qtipTitle":"StatusProxy.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Registry.js","id":"source/dd/Registry.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 2.3 KB","qtipTitle":"Registry.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DragSource.js","id":"source/dd/DragSource.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 6.3 KB","qtipTitle":"DragSource.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DropTarget.js","id":"source/dd/DropTarget.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 1.2 KB","qtipTitle":"DropTarget.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DragZone.js","id":"source/dd/DragZone.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 2.6 KB","qtipTitle":"DragZone.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DropZone.js","id":"source/dd/DropZone.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 2.3 KB","qtipTitle":"DropZone.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"Layer.js","id":"source/widgets/Layer.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 9.9 KB","qtipTitle":"Layer.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Shadow.js","id":"source/widgets/Shadow.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 3.4 KB","qtipTitle":"Shadow.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Core - State Management","id":"c-1176681140293","options":[],"files":[{"allowDelete":true,"expanded":true,"text":"State.js","id":"source/state/State.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 9.8 KB","qtipTitle":"State.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}}],"dep":[]},{"text":"Resizable","id":"c-1176548288611","options":[],"files":[{"allowDelete":true,"text":"Resizable.js","id":"source/widgets/Resizable.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 21 KB","qtipTitle":"Resizable.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[]},{"text":"QuickTips - Tooltip Widget","id":"c-1176548289178","options":[],"files":[{"allowDelete":true,"text":"QuickTips.js","id":"source/widgets/QuickTips.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 9.1 KB","qtipTitle":"QuickTips.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"Shadow.js","id":"source/widgets/Shadow.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 3.4 KB","qtipTitle":"Shadow.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Layer.js","id":"source/widgets/Layer.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 9.9 KB","qtipTitle":"Layer.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Button Widget","id":"c-1176548288907","options":[{"text":"Button QuickTips","cmpId":"c-1176548288907","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176590302846","children":[{"allowDelete":true,"text":"QuickTips.js","id":"source/widgets/QuickTips.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 9.1 KB","qtipTitle":"QuickTips.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"files":[{"allowDelete":true,"text":"Button.js","id":"source/widgets/Button.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 13 KB","qtipTitle":"Button.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"MenuButton.js","id":"source/widgets/MenuButton.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 6.3 KB","qtipTitle":"MenuButton.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"TextMetrics.js","id":"source/util/TextMetrics.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 1.8 KB","qtipTitle":"TextMetrics.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Tabs Widget","id":"c-1176590622815","options":[],"files":[{"allowDelete":true,"text":"TabPanel.js","id":"source/widgets/TabPanel.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 25 KB","qtipTitle":"TabPanel.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[]},{"text":"SplitBar Widget","id":"c-1176548289426","options":[],"files":[{"allowDelete":true,"text":"SplitBar.js","id":"source/widgets/SplitBar.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 14 KB","qtipTitle":"SplitBar.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"DDCore.js","id":"source/dd/DDCore.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 95 KB","qtipTitle":"DDCore.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Menu Widget","id":"c-1176548289698","options":[{"text":"Color Palette Item","cmpId":"c-1176548289698","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176600135917","children":[{"allowDelete":true,"text":"ColorPalette.js","id":"source/widgets/ColorPalette.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 4.5 KB","qtipTitle":"ColorPalette.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"text":"Date Picker Item","cmpId":"c-1176548289698","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176600141997","children":[{"allowDelete":true,"text":"DatePicker.js","id":"source/widgets/DatePicker.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 16 KB","qtipTitle":"DatePicker.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"files":[{"allowDelete":true,"text":"Adapter.js","id":"source/widgets/menu/Adapter.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 1.5 KB","qtipTitle":"Adapter.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"BaseItem.js","id":"source/widgets/menu/BaseItem.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 3.7 KB","qtipTitle":"BaseItem.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"CheckItem.js","id":"source/widgets/menu/CheckItem.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 3.7 KB","qtipTitle":"CheckItem.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Item.js","id":"source/widgets/menu/Item.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 3.8 KB","qtipTitle":"Item.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Menu.js","id":"source/widgets/menu/Menu.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 16 KB","qtipTitle":"Menu.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"MenuMgr.js","id":"source/widgets/menu/MenuMgr.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 4.7 KB","qtipTitle":"MenuMgr.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Separator.js","id":"source/widgets/menu/Separator.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 1.2 KB","qtipTitle":"Separator.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"TextItem.js","id":"source/widgets/menu/TextItem.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 1.1 KB","qtipTitle":"TextItem.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"MixedCollection.js","id":"source/util/MixedCollection.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 17 KB","qtipTitle":"MixedCollection.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Shadow.js","id":"source/widgets/Shadow.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 3.4 KB","qtipTitle":"Shadow.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Layer.js","id":"source/widgets/Layer.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 9.9 KB","qtipTitle":"Layer.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Component.js","id":"source/widgets/Component.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 9 KB","qtipTitle":"Component.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"KeyNav.js","id":"source/util/KeyNav.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3 KB","qtipTitle":"KeyNav.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Loading Mask Widget","id":"c-1176682522794","options":[],"files":[{"allowDelete":true,"expanded":true,"text":"LoadMask.js","id":"source/widgets/LoadMask.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 3.1 KB","qtipTitle":"LoadMask.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}}],"dep":[]},{"text":"Date Picker Popup (DateMenu)","id":"c-1176548289970","options":[],"files":[{"allowDelete":true,"text":"DateMenu.js","id":"source/widgets/menu/DateMenu.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 888 B","qtipTitle":"DateMenu.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DatePicker.js","id":"source/widgets/DatePicker.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 16 KB","qtipTitle":"DatePicker.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DateItem.js","id":"source/widgets/menu/DateItem.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 1.1 KB","qtipTitle":"DateItem.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"Date.js","id":"source/util/Date.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 23 KB","qtipTitle":"Date.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Layer.js","id":"source/widgets/Layer.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 9.9 KB","qtipTitle":"Layer.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Shadow.js","id":"source/widgets/Shadow.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 3.4 KB","qtipTitle":"Shadow.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"MenuMgr.js","id":"source/widgets/menu/MenuMgr.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 4.7 KB","qtipTitle":"MenuMgr.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Menu.js","id":"source/widgets/menu/Menu.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 16 KB","qtipTitle":"Menu.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"BaseItem.js","id":"source/widgets/menu/BaseItem.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 3.7 KB","qtipTitle":"BaseItem.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Adapter.js","id":"source/widgets/menu/Adapter.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 1.5 KB","qtipTitle":"Adapter.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Component.js","id":"source/widgets/Component.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 9 KB","qtipTitle":"Component.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"KeyNav.js","id":"source/util/KeyNav.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3 KB","qtipTitle":"KeyNav.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"ClickRepeater.js","id":"source/util/ClickRepeater.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 4.9 KB","qtipTitle":"ClickRepeater.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Color Picker Popup (ColorMenu)","id":"c-1176548290251","options":[],"files":[{"allowDelete":true,"text":"ColorMenu.js","id":"source/widgets/menu/ColorMenu.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 915 B","qtipTitle":"ColorMenu.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"ColorItem.js","id":"source/widgets/menu/ColorItem.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 792 B","qtipTitle":"ColorItem.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"ColorPalette.js","id":"source/widgets/ColorPalette.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 4.5 KB","qtipTitle":"ColorPalette.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"Layer.js","id":"source/widgets/Layer.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 9.9 KB","qtipTitle":"Layer.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Shadow.js","id":"source/widgets/Shadow.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 3.4 KB","qtipTitle":"Shadow.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"MenuMgr.js","id":"source/widgets/menu/MenuMgr.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 4.7 KB","qtipTitle":"MenuMgr.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Menu.js","id":"source/widgets/menu/Menu.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 16 KB","qtipTitle":"Menu.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"BaseItem.js","id":"source/widgets/menu/BaseItem.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 3.7 KB","qtipTitle":"BaseItem.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Adapter.js","id":"source/widgets/menu/Adapter.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 1.5 KB","qtipTitle":"Adapter.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Component.js","id":"source/widgets/Component.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 9 KB","qtipTitle":"Component.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Border Layout Widget","id":"c-1176590622527","options":[{"text":"Preconfigured Outlook Style Layout","cmpId":"c-1176590622527","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176600285242","children":[{"allowDelete":true,"text":"ReaderLayout.js","id":"source/widgets/layout/ReaderLayout.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 2.4 KB","qtipTitle":"ReaderLayout.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"files":[{"allowDelete":true,"text":"BasicLayoutRegion.js","id":"source/widgets/layout/BasicLayoutRegion.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 9.5 KB","qtipTitle":"BasicLayoutRegion.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"BorderLayout.js","id":"source/widgets/layout/BorderLayout.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 11 KB","qtipTitle":"BorderLayout.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"BorderLayoutRegions.js","id":"source/widgets/layout/BorderLayoutRegions.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 6.2 KB","qtipTitle":"BorderLayoutRegions.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"ContentPanels.js","id":"source/widgets/layout/ContentPanels.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 17 KB","qtipTitle":"ContentPanels.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"LayoutManager.js","id":"source/widgets/layout/LayoutManager.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 4.2 KB","qtipTitle":"LayoutManager.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"LayoutRegion.js","id":"source/widgets/layout/LayoutRegion.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 21 KB","qtipTitle":"LayoutRegion.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"LayoutStateManager.js","id":"source/widgets/layout/LayoutStateManager.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 2.3 KB","qtipTitle":"LayoutStateManager.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"SplitLayoutRegion.js","id":"source/widgets/layout/SplitLayoutRegion.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 10 KB","qtipTitle":"SplitLayoutRegion.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"MixedCollection.js","id":"source/util/MixedCollection.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 17 KB","qtipTitle":"MixedCollection.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"SplitBar.js","id":"source/widgets/SplitBar.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 14 KB","qtipTitle":"SplitBar.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DDCore.js","id":"source/dd/DDCore.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 95 KB","qtipTitle":"DDCore.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"TabPanel.js","id":"source/widgets/TabPanel.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 25 KB","qtipTitle":"TabPanel.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Toolbar Widget","id":"c-1176590623103","options":[{"text":"Menu Buttons","cmpId":"c-1176590623103","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176600354384","children":[{"allowDelete":true,"text":"MenuButton.js","id":"source/widgets/MenuButton.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 6.3 KB","qtipTitle":"MenuButton.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"text":"Paging Toolbar","cmpId":"c-1176590623103","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176683220697","children":[{"allowDelete":true,"expanded":true,"text":"PagingToolbar.js","id":"source/widgets/PagingToolbar.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 9.2 KB","qtipTitle":"PagingToolbar.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}}]}],"files":[{"allowDelete":true,"text":"Toolbar.js","id":"source/widgets/Toolbar.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 12 KB","qtipTitle":"Toolbar.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"MixedCollection.js","id":"source/util/MixedCollection.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 17 KB","qtipTitle":"MixedCollection.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Button.js","id":"source/widgets/Button.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 13 KB","qtipTitle":"Button.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"TextMetrics.js","id":"source/util/TextMetrics.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:56 am
    Size: 1.8 KB","qtipTitle":"TextMetrics.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Dialog - Basic Widget","id":"c-1176590621920","options":[{"text":"Dialog Resize Support","cmpId":"c-1176590621920","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176591083447","children":[{"allowDelete":true,"text":"Resizable.js","id":"source/widgets/Resizable.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 21 KB","qtipTitle":"Resizable.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"text":"Dialog Drag and Drop Support","cmpId":"c-1176590621920","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176591106528","children":[{"allowDelete":true,"text":"DDCore.js","id":"source/dd/DDCore.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 95 KB","qtipTitle":"DDCore.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"text":"Tabs Support","cmpId":"c-1176590621920","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176593460681","children":[{"allowDelete":true,"text":"TabPanel.js","id":"source/widgets/TabPanel.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 25 KB","qtipTitle":"TabPanel.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"files":[{"allowDelete":true,"text":"BasicDialog.js","id":"source/widgets/BasicDialog.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 41 KB","qtipTitle":"BasicDialog.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"Shadow.js","id":"source/widgets/Shadow.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 3.4 KB","qtipTitle":"Shadow.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Dialog - MessageBox","id":"c-1176590623375","options":[],"files":[{"allowDelete":true,"text":"MessageBox.js","id":"source/widgets/MessageBox.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 20 KB","qtipTitle":"MessageBox.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"BasicDialog.js","id":"source/widgets/BasicDialog.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 41 KB","qtipTitle":"BasicDialog.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Shadow.js","id":"source/widgets/Shadow.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 3.4 KB","qtipTitle":"Shadow.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Data - Core","id":"c-1176590623903","options":[],"files":[{"allowDelete":true,"text":"Connection.js","id":"source/data/Connection.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 2.6 KB","qtipTitle":"Connection.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DataField.js","id":"source/data/DataField.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3 KB","qtipTitle":"DataField.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DataProxy.js","id":"source/data/DataProxy.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 1.7 KB","qtipTitle":"DataProxy.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DataReader.js","id":"source/data/DataReader.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 379 B","qtipTitle":"DataReader.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Record.js","id":"source/data/Record.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 7.5 KB","qtipTitle":"Record.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"SortTypes.js","id":"source/data/SortTypes.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 2.4 KB","qtipTitle":"SortTypes.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Store.js","id":"source/data/Store.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 20 KB","qtipTitle":"Store.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"HttpProxy.js","id":"source/data/HttpProxy.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3.7 KB","qtipTitle":"HttpProxy.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"ScriptTagProxy.js","id":"source/data/ScriptTagProxy.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 6.2 KB","qtipTitle":"ScriptTagProxy.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"MemoryProxy.js","id":"source/data/MemoryProxy.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 2.1 KB","qtipTitle":"MemoryProxy.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"MixedCollection.js","id":"source/util/MixedCollection.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 17 KB","qtipTitle":"MixedCollection.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Data - JSON Support","id":"c-1176590624144","options":[],"files":[{"allowDelete":true,"text":"JsonReader.js","id":"source/data/JsonReader.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 6 KB","qtipTitle":"JsonReader.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"ArrayReader.js","id":"source/data/ArrayReader.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3.4 KB","qtipTitle":"ArrayReader.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"JSON.js","id":"source/util/JSON.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 4.3 KB","qtipTitle":"JSON.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Connection.js","id":"source/data/Connection.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 2.6 KB","qtipTitle":"Connection.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DataField.js","id":"source/data/DataField.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3 KB","qtipTitle":"DataField.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DataProxy.js","id":"source/data/DataProxy.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 1.7 KB","qtipTitle":"DataProxy.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DataReader.js","id":"source/data/DataReader.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 379 B","qtipTitle":"DataReader.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Record.js","id":"source/data/Record.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 7.5 KB","qtipTitle":"Record.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"SortTypes.js","id":"source/data/SortTypes.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 2.4 KB","qtipTitle":"SortTypes.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Store.js","id":"source/data/Store.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 20 KB","qtipTitle":"Store.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"HttpProxy.js","id":"source/data/HttpProxy.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3.7 KB","qtipTitle":"HttpProxy.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"ScriptTagProxy.js","id":"source/data/ScriptTagProxy.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 6.2 KB","qtipTitle":"ScriptTagProxy.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"MemoryProxy.js","id":"source/data/MemoryProxy.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 2.1 KB","qtipTitle":"MemoryProxy.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"MixedCollection.js","id":"source/util/MixedCollection.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 17 KB","qtipTitle":"MixedCollection.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Data - XML Support","id":"c-1176594563024","options":[],"files":[{"allowDelete":true,"text":"XmlReader.js","id":"source/data/XmlReader.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 4.7 KB","qtipTitle":"XmlReader.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"Connection.js","id":"source/data/Connection.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 2.6 KB","qtipTitle":"Connection.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DataField.js","id":"source/data/DataField.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3 KB","qtipTitle":"DataField.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DataProxy.js","id":"source/data/DataProxy.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 1.7 KB","qtipTitle":"DataProxy.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DataReader.js","id":"source/data/DataReader.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 379 B","qtipTitle":"DataReader.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Record.js","id":"source/data/Record.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 7.5 KB","qtipTitle":"Record.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"SortTypes.js","id":"source/data/SortTypes.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 2.4 KB","qtipTitle":"SortTypes.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Store.js","id":"source/data/Store.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 20 KB","qtipTitle":"Store.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"HttpProxy.js","id":"source/data/HttpProxy.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3.7 KB","qtipTitle":"HttpProxy.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"ScriptTagProxy.js","id":"source/data/ScriptTagProxy.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 6.2 KB","qtipTitle":"ScriptTagProxy.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"MemoryProxy.js","id":"source/data/MemoryProxy.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 2.1 KB","qtipTitle":"MemoryProxy.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"MixedCollection.js","id":"source/util/MixedCollection.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 17 KB","qtipTitle":"MixedCollection.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Data - Simple Store","id":"c-1176594562552","options":[],"files":[{"allowDelete":true,"text":"SimpleStore.js","id":"source/data/SimpleStore.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 976 B","qtipTitle":"SimpleStore.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"JsonReader.js","id":"source/data/JsonReader.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 6 KB","qtipTitle":"JsonReader.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"ArrayReader.js","id":"source/data/ArrayReader.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3.4 KB","qtipTitle":"ArrayReader.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Connection.js","id":"source/data/Connection.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 2.6 KB","qtipTitle":"Connection.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DataField.js","id":"source/data/DataField.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3 KB","qtipTitle":"DataField.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DataReader.js","id":"source/data/DataReader.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 379 B","qtipTitle":"DataReader.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Record.js","id":"source/data/Record.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 7.5 KB","qtipTitle":"Record.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"SortTypes.js","id":"source/data/SortTypes.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 2.4 KB","qtipTitle":"SortTypes.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Store.js","id":"source/data/Store.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 20 KB","qtipTitle":"Store.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"MixedCollection.js","id":"source/util/MixedCollection.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 17 KB","qtipTitle":"MixedCollection.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Views - Data Bound Views","id":"c-1176590623664","options":[{"text":"JSON Support","cmpId":"c-1176590623664","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176594452492","children":[{"allowDelete":true,"expanded":true,"text":"JSON.js","id":"source/util/JSON.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 11:01 pm
    Size: 4.3 KB","qtipTitle":"JSON.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"files":[{"allowDelete":true,"text":"View.js","id":"source/widgets/View.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 24 KB","qtipTitle":"View.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"JsonView.js","id":"source/widgets/JsonView.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 9.9 KB","qtipTitle":"JsonView.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[]},{"text":"Form - Basic Fields","id":"c-1176596007536","options":[{"text":"Custom Validations","cmpId":"c-1176596007536","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176596661900","children":[{"allowDelete":true,"text":"VTypes.js","id":"source/widgets/form/VTypes.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 2.9 KB","qtipTitle":"VTypes.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"files":[{"allowDelete":true,"text":"Field.js","id":"source/widgets/form/Field.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 15 KB","qtipTitle":"Field.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Checkbox.js","id":"source/widgets/form/Checkbox.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3.6 KB","qtipTitle":"Checkbox.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"NumberField.js","id":"source/widgets/form/NumberField.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 4.8 KB","qtipTitle":"NumberField.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Radio.js","id":"source/widgets/form/Radio.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 489 B","qtipTitle":"Radio.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"TextArea.js","id":"source/widgets/form/TextArea.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3.2 KB","qtipTitle":"TextArea.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"TextField.js","id":"source/widgets/form/TextField.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 11 KB","qtipTitle":"TextField.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"Component.js","id":"source/widgets/Component.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 9 KB","qtipTitle":"Component.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Form - ComboBox Widget","id":"c-1176594563568","options":[{"text":"Custom Validations","cmpId":"c-1176594563568","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176596097474","children":[{"allowDelete":true,"text":"VTypes.js","id":"source/widgets/form/VTypes.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 2.9 KB","qtipTitle":"VTypes.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"files":[{"allowDelete":true,"text":"Combo.js","id":"source/widgets/form/Combo.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 28 KB","qtipTitle":"Combo.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"Component.js","id":"source/widgets/Component.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 9 KB","qtipTitle":"Component.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Field.js","id":"source/widgets/form/Field.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 15 KB","qtipTitle":"Field.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"TextField.js","id":"source/widgets/form/TextField.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 11 KB","qtipTitle":"TextField.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"TriggerField.js","id":"source/widgets/form/TriggerField.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 6 KB","qtipTitle":"TriggerField.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"View.js","id":"source/widgets/View.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 24 KB","qtipTitle":"View.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"KeyNav.js","id":"source/util/KeyNav.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3 KB","qtipTitle":"KeyNav.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Form - Date Field","id":"c-1176596008487","options":[],"files":[{"allowDelete":true,"text":"DateField.js","id":"source/widgets/form/DateField.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 9 KB","qtipTitle":"DateField.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"TriggerField.js","id":"source/widgets/form/TriggerField.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 6 KB","qtipTitle":"TriggerField.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Field.js","id":"source/widgets/form/Field.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 15 KB","qtipTitle":"Field.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"TextField.js","id":"source/widgets/form/TextField.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 11 KB","qtipTitle":"TextField.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Component.js","id":"source/widgets/Component.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 9 KB","qtipTitle":"Component.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DateMenu.js","id":"source/widgets/menu/DateMenu.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 888 B","qtipTitle":"DateMenu.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DatePicker.js","id":"source/widgets/DatePicker.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 16 KB","qtipTitle":"DatePicker.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"DateItem.js","id":"source/widgets/menu/DateItem.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 1.1 KB","qtipTitle":"DateItem.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Date.js","id":"source/util/Date.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 23 KB","qtipTitle":"Date.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Layer.js","id":"source/widgets/Layer.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 9.9 KB","qtipTitle":"Layer.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Shadow.js","id":"source/widgets/Shadow.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 3.4 KB","qtipTitle":"Shadow.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"MenuMgr.js","id":"source/widgets/menu/MenuMgr.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 4.7 KB","qtipTitle":"MenuMgr.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Menu.js","id":"source/widgets/menu/Menu.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 16 KB","qtipTitle":"Menu.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"BaseItem.js","id":"source/widgets/menu/BaseItem.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 3.7 KB","qtipTitle":"BaseItem.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Adapter.js","id":"source/widgets/menu/Adapter.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 6:04 pm
    Size: 1.5 KB","qtipTitle":"Adapter.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"KeyNav.js","id":"source/util/KeyNav.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3 KB","qtipTitle":"KeyNav.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"ClickRepeater.js","id":"source/util/ClickRepeater.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 4.9 KB","qtipTitle":"ClickRepeater.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Form - Ajax and Loading Support","id":"c-1176596009103","options":[{"text":"XML Loading Support","cmpId":"c-1176596009103","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176596755855","children":[{"allowDelete":true,"text":"XmlReader.js","id":"source/data/XmlReader.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 4.7 KB","qtipTitle":"XmlReader.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"files":[{"allowDelete":true,"text":"BasicForm.js","id":"source/widgets/form/BasicForm.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 9.9 KB","qtipTitle":"BasicForm.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Action.js","id":"source/widgets/form/Action.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 5.6 KB","qtipTitle":"Action.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[]},{"text":"Form - Dynamic Rendering","id":"c-1176596009599","options":[],"files":[{"allowDelete":true,"text":"Form.js","id":"source/widgets/form/Form.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 7.7 KB","qtipTitle":"Form.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Layout.js","id":"source/widgets/form/Layout.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 4.3 KB","qtipTitle":"Layout.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"BasicForm.js","id":"source/widgets/form/BasicForm.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 9.9 KB","qtipTitle":"BasicForm.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Action.js","id":"source/widgets/form/Action.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 5.6 KB","qtipTitle":"Action.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Form - Floating Editor","id":"c-1176596675069","options":[],"files":[{"allowDelete":true,"text":"Editor.js","id":"source/widgets/Editor.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 4.5 KB","qtipTitle":"Editor.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"Layer.js","id":"source/widgets/Layer.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 9.9 KB","qtipTitle":"Layer.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Shadow.js","id":"source/widgets/Shadow.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3.4 KB","qtipTitle":"Shadow.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Component.js","id":"source/widgets/Component.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 9 KB","qtipTitle":"Component.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Grid - Core","id":"c-1176596674270","options":[{"text":"CellSelectionModel.js","cmpId":"c-1176596674270","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176598193101","children":[{"allowDelete":true,"text":"CellSelectionModel.js","id":"source/widgets/grid/CellSelectionModel.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 6.7 KB","qtipTitle":"CellSelectionModel.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"text":"Drag and Drop Column Reorder","cmpId":"c-1176596674270","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176598971151","children":[{"allowDelete":true,"text":"ColumnDD.js","id":"source/widgets/grid/ColumnDD.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 5.7 KB","qtipTitle":"ColumnDD.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"text":"Column Resizing","cmpId":"c-1176596674270","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176598974743","children":[{"allowDelete":true,"text":"ColumnSplitDD.js","id":"source/widgets/grid/ColumnSplitDD.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 2 KB","qtipTitle":"ColumnSplitDD.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"text":"Drag Grid Rows","cmpId":"c-1176596674270","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176598980335","children":[{"allowDelete":true,"text":"GridDD.js","id":"source/widgets/grid/GridDD.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 1.7 KB","qtipTitle":"GridDD.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"text":"Loading Mask","cmpId":"c-1176596674270","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176682774459","children":[{"allowDelete":true,"expanded":true,"text":"LoadMask.js","id":"source/widgets/LoadMask.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 3.1 KB","qtipTitle":"LoadMask.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}}]},{"text":"Paging Toolbar","cmpId":"c-1176596674270","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176683284876","children":[{"allowDelete":true,"expanded":true,"text":"PagingToolbar.js","id":"source/widgets/PagingToolbar.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 9.2 KB","qtipTitle":"PagingToolbar.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}},{"allowDelete":true,"expanded":true,"text":"Toolbar.js","id":"source/widgets/Toolbar.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 12 KB","qtipTitle":"Toolbar.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}},{"allowDelete":true,"expanded":true,"text":"Button.js","id":"source/widgets/Button.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 14 KB","qtipTitle":"Button.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}},{"allowDelete":true,"expanded":true,"text":"TextMetrics.js","id":"source/util/TextMetrics.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 1.8 KB","qtipTitle":"TextMetrics.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}},{"allowDelete":true,"expanded":true,"text":"MixedCollection.js","id":"source/util/MixedCollection.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 17 KB","qtipTitle":"MixedCollection.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}}]}],"files":[{"allowDelete":true,"text":"AbstractGridView.js","id":"source/widgets/grid/AbstractGridView.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3.1 KB","qtipTitle":"AbstractGridView.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"AbstractSelectionModel.js","id":"source/widgets/grid/AbstractSelectionModel.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 1 KB","qtipTitle":"AbstractSelectionModel.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"RowSelectionModel.js","id":"source/widgets/grid/RowSelectionModel.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 13 KB","qtipTitle":"RowSelectionModel.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Grid.js","id":"source/widgets/grid/Grid.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 18 KB","qtipTitle":"Grid.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"ColumnModel.js","id":"source/widgets/grid/ColumnModel.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 12 KB","qtipTitle":"ColumnModel.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"GridView.js","id":"source/widgets/grid/GridView.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 58 KB","qtipTitle":"GridView.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"expanded":true,"text":"CSS.js","id":"source/util/CSS.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 11:01 pm
    Size: 5 KB","qtipTitle":"CSS.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Grid - Editing Support","id":"c-1176596839124","options":[],"files":[{"allowDelete":true,"text":"GridEditor.js","id":"source/widgets/grid/GridEditor.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 461 B","qtipTitle":"GridEditor.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"EditorGrid.js","id":"source/widgets/grid/EditorGrid.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 6.2 KB","qtipTitle":"EditorGrid.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"Editor.js","id":"source/widgets/Editor.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 4.5 KB","qtipTitle":"Editor.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Layer.js","id":"source/widgets/Layer.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 9.9 KB","qtipTitle":"Layer.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Shadow.js","id":"source/widgets/Shadow.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3.4 KB","qtipTitle":"Shadow.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Component.js","id":"source/widgets/Component.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 9 KB","qtipTitle":"Component.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Grid - Property Grid","id":"c-1176596839827","options":[],"files":[{"allowDelete":true,"text":"PropertyGrid.js","id":"source/widgets/grid/PropertyGrid.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 6.3 KB","qtipTitle":"PropertyGrid.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"GridEditor.js","id":"source/widgets/grid/GridEditor.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 461 B","qtipTitle":"GridEditor.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"EditorGrid.js","id":"source/widgets/grid/EditorGrid.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 6.2 KB","qtipTitle":"EditorGrid.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Editor.js","id":"source/widgets/Editor.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 4.5 KB","qtipTitle":"Editor.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Layer.js","id":"source/widgets/Layer.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 9.9 KB","qtipTitle":"Layer.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Shadow.js","id":"source/widgets/Shadow.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 3.4 KB","qtipTitle":"Shadow.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"Component.js","id":"source/widgets/Component.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 9 KB","qtipTitle":"Component.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Tree - Core","id":"c-1176596840547","options":[{"text":"Sorting Support","cmpId":"c-1176596840547","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176599045969","children":[{"allowDelete":true,"text":"TreeSorter.js","id":"source/widgets/tree/TreeSorter.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 2.3 KB","qtipTitle":"TreeSorter.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"text":"Filtering Support","cmpId":"c-1176596840547","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176599073554","children":[{"allowDelete":true,"text":"TreeFilter.js","id":"source/widgets/tree/TreeFilter.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 3.6 KB","qtipTitle":"TreeFilter.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"text":"Drag and Drop Support","cmpId":"c-1176596840547","iconCls":"folder","type":"fileCt","allowDelete":true,"allowEdit":true,"id":"o-1176599245706","children":[{"allowDelete":true,"text":"TreeDragZone.js","id":"source/widgets/tree/TreeDragZone.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 1.5 KB","qtipTitle":"TreeDragZone.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}},{"allowDelete":true,"text":"TreeDropZone.js","id":"source/widgets/tree/TreeDropZone.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 7.9 KB","qtipTitle":"TreeDropZone.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}}],"loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"files":[{"allowDelete":true,"text":"Tree.js","id":"source/data/Tree.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 7:44 pm
    Size: 25 KB","qtipTitle":"Tree.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"TreePanel.js","id":"source/widgets/tree/TreePanel.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 14 KB","qtipTitle":"TreePanel.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"TreeSelectionModel.js","id":"source/widgets/tree/TreeSelectionModel.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 9.1 KB","qtipTitle":"TreeSelectionModel.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"TreeNode.js","id":"source/widgets/tree/TreeNode.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 15 KB","qtipTitle":"TreeNode.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"TreeNodeUI.js","id":"source/widgets/tree/TreeNodeUI.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 14 KB","qtipTitle":"TreeNodeUI.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[]},{"text":"Tree - Ajax Loading Support","id":"c-1176598286138","options":[],"files":[{"allowDelete":true,"text":"AsyncTreeNode.js","id":"source/widgets/tree/AsyncTreeNode.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 3.5 KB","qtipTitle":"AsyncTreeNode.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}},{"allowDelete":true,"text":"TreeLoader.js","id":"source/widgets/tree/TreeLoader.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 4.1 KB","qtipTitle":"TreeLoader.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}],"dep":[{"allowDelete":true,"text":"JSON.js","id":"source/util/JSON.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 14, 2007, 9:02 pm
    Size: 4.3 KB","qtipTitle":"JSON.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","events":{"beforeload":true,"load":true,"loadexception":true}}}]},{"text":"Tree - Editing Support","id":"c-1176682872198","options":[],"files":[{"allowDelete":true,"expanded":true,"text":"TreeEditor.js","id":"source/widgets/tree/TreeEditor.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 2.2 KB","qtipTitle":"TreeEditor.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}}],"dep":[{"allowDelete":true,"expanded":true,"text":"Editor.js","id":"source/widgets/Editor.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 8.7 KB","qtipTitle":"Editor.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}},{"allowDelete":true,"expanded":true,"text":"Shadow.js","id":"source/widgets/Shadow.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 5 KB","qtipTitle":"Shadow.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}},{"allowDelete":true,"expanded":true,"text":"Layer.js","id":"source/widgets/Layer.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 11 KB","qtipTitle":"Layer.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}},{"allowDelete":true,"expanded":true,"text":"Component.js","id":"source/widgets/Component.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 9 KB","qtipTitle":"Component.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}},{"allowDelete":true,"expanded":true,"text":"Field.js","id":"source/widgets/form/Field.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 15 KB","qtipTitle":"Field.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}},{"allowDelete":true,"expanded":true,"text":"TextField.js","id":"source/widgets/form/TextField.js","leaf":true,"qtip":"Type: JavaScript File
    Last Modified: Apr 15, 2007, 5:18 pm
    Size: 11 KB","qtipTitle":"TextField.js","cls":"file","loader":{"baseParams":{},"requestMethod":"POST","dataUrl":"dependency.php","events":{"beforeload":true,"load":true,"loadexception":true},"transId":false}}]}] \ No newline at end of file diff --git a/www/extras/extjs/examples/tree/dependency.css b/www/extras/extjs/examples/tree/dependency.css deleted file mode 100644 index 606752578..000000000 --- a/www/extras/extjs/examples/tree/dependency.css +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.x-tree-node img.folder, .x-tree-node-collapsed img.folder{ - background-image:url(../../resources/images/default/tree/folder.gif); -} - -.x-tree-node-expanded img.folder { - background-image:url(../../resources/images/default/tree/folder-open.gif); -} - -.x-tree-node .croot{ - background:#c3daf9; -} -.x-tree-node div.cmp{ - background:#eee url(images/cmp-bg.gif) repeat-x; - margin-top:1px; - border-top:1px solid #ddd; - border-bottom:1px solid #ccc; - padding-top:2px; - padding-bottom:1px; -} -.add-cmp .x-btn-text { - background-image:url(../shared/icons/fam/plugin_add.gif); -} - -.add-opt .x-btn-text { - background-image:url(../shared/icons/fam/add.gif); -} - -.remove .x-btn-text, .remove-mi .x-menu-item-icon { - background-image:url(../shared/icons/fam/delete.gif); -} - -.save .x-btn-text { - background-image:url(../shared/icons/save.gif); -} -.expand-all .x-menu-item-icon { - background-image:url(../shared/icons/arrow-down.gif); -} -.collapse-all .x-menu-item-icon { - background-image:url(../shared/icons/arrow-up.gif); -} - -.x-tree-node img.cmp, .menu-cmp .x-menu-item-icon{ - background-image:url(../shared/icons/fam/plugin.gif); -} \ No newline at end of file diff --git a/www/extras/extjs/examples/tree/dependency.html b/www/extras/extjs/examples/tree/dependency.html deleted file mode 100644 index da5403617..000000000 --- a/www/extras/extjs/examples/tree/dependency.html +++ /dev/null @@ -1,33 +0,0 @@ - - - -Ext Dependency Builder - - - - - - - - - - - - - -

    Ext Dependency Builder

    -

    This is a piece of the application we use to build the Ext dependency tree.
    - Key features it demonstrates:
    - * Restrictive drag and drop of nodes from tree to tree
    - * Restrictive reordering of nodes
    - * Loading and saving to/from different structures
    - * Dynamic tree context menu
    - * Inline editing of tree nodes
    - * Custom tree styles with CSS -

    -

    The js is not minified so it is readable. See dependency.js.

    - -
    - - - diff --git a/www/extras/extjs/examples/tree/dependency.js b/www/extras/extjs/examples/tree/dependency.js deleted file mode 100644 index a6573e2e7..000000000 --- a/www/extras/extjs/examples/tree/dependency.js +++ /dev/null @@ -1,436 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function(){ - var xt = Ext.tree; - // seeds for the new node suffix - var cseed = 0, oseed = 0; - - // turn on quick tips - Ext.QuickTips.init(); - - var cview = Ext.DomHelper.append('main-ct', - {cn:[{id:'main-tb'},{id:'cbody'}]} - ); - - - // create the primary toolbar - var tb = new Ext.Toolbar('main-tb'); - tb.add({ - id:'save', - text:'Save', - disabled:true, - handler:save, - cls:'x-btn-text-icon save', - tooltip:'Saves all components to the server' - },'-', { - id:'add', - text:'Component', - handler:addComponent, - cls:'x-btn-text-icon add-cmp', - tooltip:'Add a new Component to the dependency builder' - }, { - id:'option', - text:'Option', - disabled:true, - handler:addOption, - cls:'x-btn-text-icon add-opt', - tooltip:'Add a new optional dependency to the selected component' - },'-',{ - id:'remove', - text:'Remove', - disabled:true, - handler:removeNode, - cls:'x-btn-text-icon remove', - tooltip:'Remove the selected item' - }); - // for enabling and disabling - var btns = tb.items.map; - - - - // create our layout - var layout = new Ext.BorderLayout('main-ct', { - west: { - split:true, - initialSize: 200, - minSize: 175, - maxSize: 400, - titlebar: true, - margins:{left:5,right:0,bottom:5,top:5} - }, - center: { - title:'Components', - margins:{left:0,right:5,bottom:5,top:5} - } - }, 'main-ct'); - - layout.batchAdd({ - west: { - id: 'source-files', - autoCreate:true, - title:'Ext Source Files', - autoScroll:true, - fitToFrame:true - }, - center : { - el: cview, - autoScroll:true, - fitToFrame:true, - toolbar: tb, - resizeEl:'cbody' - } - }); - - - - // this is the source code tree - var stree = new xt.TreePanel('source-files', { - animate:true, - loader: new xt.TreeLoader({dataUrl:'dependency.php'}), - enableDrag:true, - containerScroll: true - }); - - new xt.TreeSorter(stree, {folderSort:true}); - - var sroot = new xt.AsyncTreeNode({ - text: 'Ext JS', - draggable:false, - id:'source' - }); - stree.setRootNode(sroot); - stree.render(); - sroot.expand(false, false); - - - // the component tree - var ctree = new xt.TreePanel('cbody', { - animate:true, - enableDD:true, - containerScroll: true, - lines:false, - rootVisible:false, - loader: new Ext.tree.TreeLoader() - }); - - ctree.el.addKeyListener(Ext.EventObject.DELETE, removeNode); - - var croot = new xt.AsyncTreeNode({ - allowDrag:false, - allowDrop:true, - id:'croot', - text:'Packages and Components', - cls:'croot', - loader:new Ext.tree.TreeLoader({ - dataUrl:'dep-tree.json', - createNode: readNode - }) - }); - ctree.setRootNode(croot); - ctree.render(); - croot.expand(); - - // some functions to determine whether is not the drop is allowed - function hasNode(t, n){ - return (t.attributes.type == 'fileCt' && t.findChild('id', n.id)) || - (t.leaf === true && t.parentNode.findChild('id', n.id)); - }; - - function isSourceCopy(e, n){ - var a = e.target.attributes; - return n.getOwnerTree() == stree && !hasNode(e.target, n) && - ((e.point == 'append' && a.type == 'fileCt') || a.leaf === true); - }; - - function isReorder(e, n){ - return n.parentNode == e.target.parentNode && e.point != 'append'; - }; - - // handle drag over and drag drop - ctree.on('nodedragover', function(e){ - var n = e.dropNode; - return isSourceCopy(e, n) || isReorder(e, n); - }); - - ctree.on('beforenodedrop', function(e){ - var n = e.dropNode; - - // copy node from source tree - if(isSourceCopy(e, n)){ - var copy = new xt.TreeNode( - Ext.apply({allowDelete:true,expanded:true}, n.attributes) - ); - copy.loader = undefined; - if(e.target.attributes.options){ - e.target = createOption(e.target, copy.text); - //return false; - } - e.dropNode = copy; - return true; - } - - return isReorder(e, n); - }); - - ctree.on('contextmenu', prepareCtx); - - // track whether save is allowed - ctree.on('append', trackSave); - ctree.on('remove', trackSave); - ctree.el.swallowEvent('contextmenu', true); - ctree.el.on('keypress', function(e){ - if(e.isNavKeyPress()){ - e.stopEvent(); - } - }); - // when the tree selection changes, enable/disable the toolbar buttons - var sm = ctree.getSelectionModel(); - sm.on('selectionchange', function(){ - var n = sm.getSelectedNode(); - if(!n){ - btns.remove.disable(); - btns.option.disable(); - return; - } - var a = n.attributes; - btns.remove.setDisabled(!a.allowDelete); - btns.option.setDisabled(!a.cmpId); - }); - - - - // create the editor for the component tree - var ge = new xt.TreeEditor(ctree, { - allowBlank:false, - blankText:'A name is required', - selectOnFocus:true - }); - - ge.on('beforestartedit', function(){ - if(!ge.editNode.attributes.allowEdit){ - return false; - } - }); - - - // add component handler - function addComponent(){ - var id = guid('c-'); - var text = 'Component '+(++cseed); - var node = createComponent(id, text); - node.expand(false, false); - node.select(); - node.lastChild.ensureVisible(); - ge.triggerEdit(node); - } - - function createComponent(id, text, cfiles, cdep, coptions){ - var node = new xt.TreeNode({ - text: text, - iconCls:'cmp', - cls:'cmp', - type:'cmp', - id: id, - cmpId:id, - allowDelete:true, - allowEdit:true - }); - croot.appendChild(node); - - var files = new xt.AsyncTreeNode({ - text: 'Files', - allowDrag:false, - allowDrop:true, - iconCls:'folder', - type:'fileCt', - cmpId:id, - allowDelete:false, - children:cfiles||[], - expanded:true - }); - - var dep = new xt.AsyncTreeNode({ - text: 'Dependencies', - allowDrag:false, - allowDrop:true, - iconCls:'folder', - type:'fileCt', - cmpId:id, - allowDelete:false, - children:cdep||[], - expanded:true, - allowCopy:true - }); - - var options = new xt.AsyncTreeNode({ - text: 'Optional Dependencies', - allowDrag:false, - allowDrop:true, - iconCls:'folder', - type:'fileCt', - options:true, - cmpId:id, - allowDelete:false, - children:coptions||[], - expanded:true, - allowCopy:true - }); - - node.appendChild(files); - node.appendChild(dep); - node.appendChild(options); - - return node; - } - - // remove handler - function removeNode(){ - var n = sm.getSelectedNode(); - if(n && n.attributes.allowDelete){ - ctree.getSelectionModel().selectPrevious(); - n.parentNode.removeChild(n); - } - } - - - // add option handler - function addOption(){ - var n = sm.getSelectedNode(); - if(n){ - createOption(n, 'Option'+(++oseed)); - node.select(); - ge.triggerEdit(node); - } - } - - function createOption(n, text){ - var cnode = ctree.getNodeById(n.attributes.cmpId); - - var node = new xt.TreeNode({ - text: text, - cmpId:cnode.id, - iconCls:'folder', - type:'fileCt', - allowDelete:true, - allowEdit:true, - id:guid('o-') - }); - cnode.childNodes[2].appendChild(node); - cnode.childNodes[2].expand(false, false); - - return node; - } - - // semi unique ids across edits - function guid(prefix){ - return prefix+(new Date().getTime()); - } - - - function trackSave(){ - btns.save.setDisabled(!croot.hasChildNodes()); - } - - function storeChildren(cmp, n, name){ - if(n.childrenRendered){ - cmp[name] = []; - n.eachChild(function(f){ - cmp[name].push(f.attributes); - }); - }else{ - cmp[name] = n.attributes.children || []; - } - } - - // save to the server in a format usable in PHP - function save(){ - var ch = []; - croot.eachChild(function(c){ - var cmp = { - text:c.text, - id: c.id, - options:[] - }; - - storeChildren(cmp, c.childNodes[0], 'files'); - storeChildren(cmp, c.childNodes[1], 'dep'); - - var onode = c.childNodes[2]; - if(!onode.childrenRendered){ - cmp.options = onode.attributes.children || []; - }else{ - onode.eachChild(function(o){ - var opt = Ext.apply({}, o.attributes); - storeChildren(opt, o, 'children'); - cmp.options.push(opt); - }); - } - ch.push(cmp); - }); - - layout.el.mask('Sending data to server...', 'x-mask-loading'); - var hide = layout.el.unmask.createDelegate(layout.el); - Ext.lib.Ajax.request( - 'POST', - 'save-dep.php', - {success:hide,failure:hide}, - 'data='+encodeURIComponent(Ext.encode(ch)) - ); - } - - function readNode(o){ - createComponent(o.id, o.text, o.files, o.dep, o.options); - } - - // context menus - - var ctxMenu = new Ext.menu.Menu({ - id:'copyCtx', - items: [{ - id:'expand', - handler:expandAll, - cls:'expand-all', - text:'Expand All' - },{ - id:'collapse', - handler:collapseAll, - cls:'collapse-all', - text:'Collapse All' - },'-',{ - id:'remove', - handler:removeNode, - cls:'remove-mi', - text: 'Remove Item' - }] - }); - - function prepareCtx(node, e){ - node.select(); - ctxMenu.items.get('remove')[node.attributes.allowDelete ? 'enable' : 'disable'](); - ctxMenu.showAt(e.getXY()); - } - - function collapseAll(){ - ctxMenu.hide(); - setTimeout(function(){ - croot.eachChild(function(n){ - n.collapse(false, false); - }); - }, 10); - } - - function expandAll(){ - ctxMenu.hide(); - setTimeout(function(){ - croot.eachChild(function(n){ - n.expand(false, false); - }); - }, 10); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/examples/tree/dependency.php b/www/extras/extjs/examples/tree/dependency.php deleted file mode 100644 index f06076769..000000000 --- a/www/extras/extjs/examples/tree/dependency.php +++ /dev/null @@ -1,46 +0,0 @@ -=$factor;$i++) - $val /= $factor; - $p = strpos($val, "."); - if($p !== false && $p > $digits) $val = round($val); - elseif($p !== false) $val = round($val, $digits-$p); - return round($val, $digits) . " " . $symbols[$i] . $bB; -} - - -$dir = $_REQUEST['lib'] == 'yui' ? '../../../' : '../../'; -$node = $_REQUEST['node']; -if(strpos($node, '..') !== false){ - die('Nice try buddy.'); -} - -$nodes = array(); -$d = dir($dir.$node); -while($f = $d->read()){ - if($f == '.' || $f == '..' || substr($f, 0, 1) == '.')continue; - $lastmod = date('M j, Y, g:i a',filemtime($dir.$node.'/'.$f)); - if(is_dir($dir.$node.'/'.$f)){ - $qtip = 'Type: Folder
    Last Modified: '.$lastmod; - $nodes[] = array('text'=>$f, id=>$node.'/'.$f, qtip=>$qtip, iconCls=>'folder', allowDrag=>false); - }else{ - $size = formatBytes(filesize($dir.$node.'/'.$f), 2); - $qtip = 'Type: JavaScript File
    Last Modified: '.$lastmod.'
    Size: '.$size; - $nodes[] = array('text'=>$f, id=>$node.'/'.$f, leaf=>true, qtip=>$qtip, qtipTitle=>$f, cls=>'file'); - } -} -$d->close(); -echo json_encode($nodes); -?> \ No newline at end of file diff --git a/www/extras/extjs/examples/tree/get-nodes.php b/www/extras/extjs/examples/tree/get-nodes.php deleted file mode 100644 index ab2029c80..000000000 --- a/www/extras/extjs/examples/tree/get-nodes.php +++ /dev/null @@ -1,43 +0,0 @@ -=$factor;$i++) - $val /= $factor; - $p = strpos($val, "."); - if($p !== false && $p > $digits) $val = round($val); - elseif($p !== false) $val = round($val, $digits-$p); - return round($val, $digits) . " " . $symbols[$i] . $bB; -} -$dir = $_REQUEST['lib'] == 'yui' ? '../../../' : '../../'; -$node = $_REQUEST['node']; -if(strpos($node, '..') !== false){ - die('Nice try buddy.'); -} -$nodes = array(); -$d = dir($dir.$node); -while($f = $d->read()){ - if($f == '.' || $f == '..' || substr($f, 0, 1) == '.')continue; - $lastmod = date('M j, Y, g:i a',filemtime($dir.$node.'/'.$f)); - if(is_dir($dir.$node.'/'.$f)){ - $qtip = 'Type: Folder
    Last Modified: '.$lastmod; - $nodes[] = array('text'=>$f, id=>$node.'/'.$f/*, qtip=>$qtip*/, cls=>'folder'); - }else{ - $size = formatBytes(filesize($dir.$node.'/'.$f), 2); - $qtip = 'Type: JavaScript File
    Last Modified: '.$lastmod.'
    Size: '.$size; - $nodes[] = array('text'=>$f, id=>$node.'/'.$f, leaf=>true/*, qtip=>$qtip, qtipTitle=>$f */, cls=>'file'); - } -} -$d->close(); -echo json_encode($nodes); -?> \ No newline at end of file diff --git a/www/extras/extjs/examples/tree/images/cmp-bg.gif b/www/extras/extjs/examples/tree/images/cmp-bg.gif deleted file mode 100644 index 5eb8b88a4..000000000 Binary files a/www/extras/extjs/examples/tree/images/cmp-bg.gif and /dev/null differ diff --git a/www/extras/extjs/examples/tree/images/thumbs/dance_fever.jpg b/www/extras/extjs/examples/tree/images/thumbs/dance_fever.jpg deleted file mode 100644 index 52e708186..000000000 Binary files a/www/extras/extjs/examples/tree/images/thumbs/dance_fever.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/tree/images/thumbs/gangster_zack.jpg b/www/extras/extjs/examples/tree/images/thumbs/gangster_zack.jpg deleted file mode 100644 index f5a9f809c..000000000 Binary files a/www/extras/extjs/examples/tree/images/thumbs/gangster_zack.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/tree/images/thumbs/kids_hug.jpg b/www/extras/extjs/examples/tree/images/thumbs/kids_hug.jpg deleted file mode 100644 index ac3d582bc..000000000 Binary files a/www/extras/extjs/examples/tree/images/thumbs/kids_hug.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/tree/images/thumbs/kids_hug2.jpg b/www/extras/extjs/examples/tree/images/thumbs/kids_hug2.jpg deleted file mode 100644 index 38152f51b..000000000 Binary files a/www/extras/extjs/examples/tree/images/thumbs/kids_hug2.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/tree/images/thumbs/sara_pink.jpg b/www/extras/extjs/examples/tree/images/thumbs/sara_pink.jpg deleted file mode 100644 index a443c04ea..000000000 Binary files a/www/extras/extjs/examples/tree/images/thumbs/sara_pink.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/tree/images/thumbs/sara_pumpkin.jpg b/www/extras/extjs/examples/tree/images/thumbs/sara_pumpkin.jpg deleted file mode 100644 index ce9a90b71..000000000 Binary files a/www/extras/extjs/examples/tree/images/thumbs/sara_pumpkin.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/tree/images/thumbs/sara_smile.jpg b/www/extras/extjs/examples/tree/images/thumbs/sara_smile.jpg deleted file mode 100644 index 08919e25e..000000000 Binary files a/www/extras/extjs/examples/tree/images/thumbs/sara_smile.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/tree/images/thumbs/up_to_something.jpg b/www/extras/extjs/examples/tree/images/thumbs/up_to_something.jpg deleted file mode 100644 index 771ea91f1..000000000 Binary files a/www/extras/extjs/examples/tree/images/thumbs/up_to_something.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/tree/images/thumbs/zack.jpg b/www/extras/extjs/examples/tree/images/thumbs/zack.jpg deleted file mode 100644 index a7ce7bc3a..000000000 Binary files a/www/extras/extjs/examples/tree/images/thumbs/zack.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/tree/images/thumbs/zack_dress.jpg b/www/extras/extjs/examples/tree/images/thumbs/zack_dress.jpg deleted file mode 100644 index b15f55192..000000000 Binary files a/www/extras/extjs/examples/tree/images/thumbs/zack_dress.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/tree/images/thumbs/zack_hat.jpg b/www/extras/extjs/examples/tree/images/thumbs/zack_hat.jpg deleted file mode 100644 index df475ba6e..000000000 Binary files a/www/extras/extjs/examples/tree/images/thumbs/zack_hat.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/tree/images/thumbs/zack_sink.jpg b/www/extras/extjs/examples/tree/images/thumbs/zack_sink.jpg deleted file mode 100644 index 01badd3da..000000000 Binary files a/www/extras/extjs/examples/tree/images/thumbs/zack_sink.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/tree/images/thumbs/zacks_grill.jpg b/www/extras/extjs/examples/tree/images/thumbs/zacks_grill.jpg deleted file mode 100644 index 5ca1ef630..000000000 Binary files a/www/extras/extjs/examples/tree/images/thumbs/zacks_grill.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/tree/organizer.css b/www/extras/extjs/examples/tree/organizer.css deleted file mode 100644 index 511c1c921..000000000 --- a/www/extras/extjs/examples/tree/organizer.css +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -select{ - font-size:11px; -} -.image-tip{ - padding:4px; - height:98px; - white-space:nowrap; -} -.image-tip img { - margin-right:10px; - border:2px solid #083772; -} -.image-tip b{ - color: #083772; - display: block; - margin-bottom: 4px; -} -.image-tip span{ - display: block; - margin-bottom: 5px; - margin-left: 5px; -} -#images{ - background: #fff url(center-bg.gif) repeat-x top left; - font: 11px Arial, Helvetica, sans-serif; - overflow: auto; -} -#images .thumb{ - background: #dddddd; - padding:3px; -} -#images .thumb img{ - border:1px solid white; - height: 60px; - width: 80px; -} -#images .thumb-wrap{ - float: left; - margin: 4px; - margin-right: 0; - padding: 5px; -} -#images .thumb-wrap span{ - display: block; - overflow: hidden; - text-align: center; -} -#images .x-view-selected .thumb{ - background:#8db2e3; -} -#images .loading-indicator { - font-size:8pt; - background-image:url(../../resources/images/default/grid/loading.gif); - background-repeat: no-repeat; - background-position: left; - padding-left:20px; - margin:10px; -} -.x-dd-drag-proxy .multi-proxy .thumb-img{ - height: 20px; - width: 30px; - margin:1px; -} -.x-dd-drag-proxy .thumb-img{ - height: 60px; - width: 80px; -} -.image-node .x-tree-node-icon{ - margin-bottom:1px; - height:15px; -} -.album-node .x-tree-node-icon, .album-btn .x-btn-text{ - background-image:url(album.gif); -} -#layout{ - height:350px; - width:650px; - overflow:hidden; - position:relative; -} -#layout-rzwrap{ - background-color:#deecfd; -} -#folders{ - position:relative; -} \ No newline at end of file diff --git a/www/extras/extjs/examples/tree/organizer.html b/www/extras/extjs/examples/tree/organizer.html deleted file mode 100644 index 8e8ca6e52..000000000 --- a/www/extras/extjs/examples/tree/organizer.html +++ /dev/null @@ -1,31 +0,0 @@ - - - -Organizing Images into Albums - - - - - - - - - - - - - - -

    Organizing Images into Albums

    -

    This example shows demonstrates how you can drop anything into the tree.

    -

    This example also shows how a customized DragZone can be -applied to a JsonView to get automatic lightweight drag and drop of asynchronously loaded data.

    -

    The js is not minified so it is readable. See organizer.js. The multi image drag drop added a little complexity to the code, but hopefully it is still easy to follow. -

    For simplicity, there is no validation on the names you enter in the tree node editor and you can drag the same picture -into an album as many times as you want.

    -

    Hold shift/control to select multiple images in the main images view. You can drag those images into the tree. - -

    -




    - - diff --git a/www/extras/extjs/examples/tree/organizer.js b/www/extras/extjs/examples/tree/organizer.js deleted file mode 100644 index 5ed181656..000000000 --- a/www/extras/extjs/examples/tree/organizer.js +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -var TreeTest = function(){ - // shorthand - var Tree = Ext.tree; - var newIndex = 3; - - return { - init : function(){ - Ext.QuickTips.init(); - var layout = new Ext.BorderLayout('layout', { - west: { - initialSize:200, - split:true, - titlebar:true - }, - center: { - alwaysShowTabs:true, - tabPosition:'top' - } - }); - - var albums = layout.getEl().createChild({tag:'div', id:'albums'}); - var tb = new Ext.Toolbar(albums.createChild({tag:'div'})); - tb.addButton({ - text: 'New Album', - cls: 'x-btn-text-icon album-btn', - handler: function(){ - var node = root.appendChild(new Tree.TreeNode({ - text:'Album ' + (++newIndex), - cls:'album-node', - allowDrag:false - })); - tree.getSelectionModel().select(node); - setTimeout(function(){ - ge.editNode = node; - ge.startEdit(node.ui.textNode); - }, 10); - } - }); - var viewEl = albums.createChild({tag:'div', id:'folders'}); - - var folders = layout.add('west', new Ext.ContentPanel(albums, { - title:'My Albums', - fitToFrame:true, - autoScroll:true, - autoCreate:true, - toolbar: tb, - resizeEl:viewEl - })); - - var images = layout.add('center', new Ext.ContentPanel('images', { - title:'My Images', - fitToFrame:true, - autoScroll:true, - autoCreate:true - })); - var imgBody = images.getEl(); - - var tree = new Tree.TreePanel(viewEl, { - animate:true, - enableDD:true, - containerScroll: true, - ddGroup: 'organizerDD', - rootVisible:false - }); - var root = new Tree.TreeNode({ - text: 'Albums', - allowDrag:false, - allowDrop:false - }); - tree.setRootNode(root); - - root.appendChild( - new Tree.TreeNode({text:'Album 1', cls:'album-node', allowDrag:false}), - new Tree.TreeNode({text:'Album 2', cls:'album-node', allowDrag:false}), - new Tree.TreeNode({text:'Album 3', cls:'album-node', allowDrag:false}) - ); - - tree.render(); - root.expand(); - - // add an inline editor for the nodes - var ge = new Ext.tree.TreeEditor(tree, { - allowBlank:false, - blankText:'A name is required', - selectOnFocus:true - }); - - // create the required templates - var tpl = new Ext.Template( - '
    ' + - '
    ' + - '{shortName}
    ' - ); - - var qtipTpl = new Ext.Template( - '
    '+ - 'Image Name:' + - '{name}' + - 'Size:' + - '{sizeString}
    ' - ); - qtipTpl.compile(); - - // initialize the View - var view = new Ext.JsonView(imgBody, tpl, { - multiSelect: true, - jsonRoot: 'images' - }); - - var lookup = {}; - - view.prepareData = function(data){ - data.shortName = data.name.ellipse(15); - data.sizeString = (Math.round(((data.size*10) / 1024))/10) + " KB"; - //data.dateString = new Date(data.lastmod).format("m/d/Y g:i a"); - data.qtip = new String(qtipTpl.applyTemplate(data)); - lookup[data.name] = data; - return data; - }; - - var dragZone = new ImageDragZone(view, {containerScroll:true, - ddGroup: 'organizerDD'}); - - view.load({ - url: '../view/get-images.php' - }); - - var rz = new Ext.Resizable('layout', { - wrap:true, - pinned:true, - adjustments:[-6,-6], - minWidth:300 - }); - rz.on('resize', function(){ - layout.layout(); - }); - rz.resizeTo(650, 350); - } - }; -}(); - -Ext.EventManager.onDocumentReady(TreeTest.init, TreeTest, true); - -/** - * Create a DragZone instance for our JsonView - */ -ImageDragZone = function(view, config){ - this.view = view; - ImageDragZone.superclass.constructor.call(this, view.getEl(), config); -}; -Ext.extend(ImageDragZone, Ext.dd.DragZone, { - // We don't want to register our image elements, so let's - // override the default registry lookup to fetch the image - // from the event instead - getDragData : function(e){ - e = Ext.EventObject.setEvent(e); - var target = e.getTarget('.thumb-wrap'); - if(target){ - var view = this.view; - if(!view.isSelected(target)){ - view.select(target, e.ctrlKey); - } - var selNodes = view.getSelectedNodes(); - var dragData = { - nodes: selNodes - }; - if(selNodes.length == 1){ - dragData.ddel = target.firstChild.firstChild; // the img element - dragData.single = true; - }else{ - var div = document.createElement('div'); // create the multi element drag "ghost" - div.className = 'multi-proxy'; - for(var i = 0, len = selNodes.length; i < len; i++){ - div.appendChild(selNodes[i].firstChild.firstChild.cloneNode(true)); - if((i+1) % 3 == 0){ - div.appendChild(document.createElement('br')); - } - } - dragData.ddel = div; - dragData.multi = true; - } - return dragData; - } - return false; - }, - - // this method is called by the TreeDropZone after a node drop - // to get the new tree node (there are also other way, but this is easiest) - getTreeNode : function(){ - var treeNodes = []; - var nodeData = this.view.getNodeData(this.dragData.nodes); - for(var i = 0, len = nodeData.length; i < len; i++){ - var data = nodeData[i]; - treeNodes.push(new Ext.tree.TreeNode({ - text: data.name, - icon: data.url, - data: data, - leaf:true, - cls: 'image-node', - qtip: data.qtip - })); - } - return treeNodes; - }, - - // the default action is to "highlight" after a bad drop - // but since an image can't be highlighted, let's frame it - afterRepair:function(){ - for(var i = 0, len = this.dragData.nodes.length; i < len; i++){ - Ext.fly(this.dragData.nodes[i]).frame('#8db2e3', 1); - } - this.dragging = false; - }, - - // override the default repairXY with one offset for the margins and padding - getRepairXY : function(e){ - if(!this.dragData.multi){ - var xy = Ext.Element.fly(this.dragData.ddel).getXY(); - xy[0]+=3;xy[1]+=3; - return xy; - } - return false; - } -}); - -// Utility functions - -String.prototype.ellipse = function(maxLength){ - if(this.length > maxLength){ - return this.substr(0, maxLength-3) + '...'; - } - return this; -}; \ No newline at end of file diff --git a/www/extras/extjs/examples/tree/reorder.html b/www/extras/extjs/examples/tree/reorder.html deleted file mode 100644 index 72403d7e2..000000000 --- a/www/extras/extjs/examples/tree/reorder.html +++ /dev/null @@ -1,27 +0,0 @@ - - - -Reorder TreePanel - - - - - - - - - - - -

    Drag and Drop ordering in a TreePanel

    -

    This example shows basic drag and drop node moving in a tree. In this implementation there are no restrictions and -anything can be dropped anywhere except appending to nodes marked "leaf" (the files).

    -

    Drag along the edge of the tree to trigger auto scrolling while performing a drag and drop.

    -

    In order to demonstrate drag and drop insertion points, sorting was not enabled.

    -

    The data for this tree is asynchronously loaded with a JSON TreeLoader.

    -

    The js is not minified so it is readable. See reorder.js.

    - -
    - - - diff --git a/www/extras/extjs/examples/tree/reorder.js b/www/extras/extjs/examples/tree/reorder.js deleted file mode 100644 index 53186bfb2..000000000 --- a/www/extras/extjs/examples/tree/reorder.js +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function(){ - // shorthand - var Tree = Ext.tree; - - var tree = new Tree.TreePanel('tree-div', { - animate:true, - loader: new Tree.TreeLoader({dataUrl:'get-nodes.php'}), - enableDD:true, - containerScroll: true - }); - - // set the root node - var root = new Tree.AsyncTreeNode({ - text: 'Ext JS', - draggable:false, - id:'source' - }); - tree.setRootNode(root); - - // render the tree - tree.render(); - root.expand(); -}); \ No newline at end of file diff --git a/www/extras/extjs/examples/tree/save-dep.php b/www/extras/extjs/examples/tree/save-dep.php deleted file mode 100644 index d8d4d8f6e..000000000 --- a/www/extras/extjs/examples/tree/save-dep.php +++ /dev/null @@ -1,4 +0,0 @@ - \ No newline at end of file diff --git a/www/extras/extjs/examples/tree/two-trees.html b/www/extras/extjs/examples/tree/two-trees.html deleted file mode 100644 index dd3d34fef..000000000 --- a/www/extras/extjs/examples/tree/two-trees.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -Drag and Drop between 2 TreePanels - - - - - - - - - - - - -

    Drag and Drop betweens two TreePanels

    -

    The TreePanels have a TreeSorter applied in "folderSort" mode.

    -

    Both TreePanels are in "appendOnly" drop mode since they are sorted.

    -

    Drag along the edge of the tree to trigger auto scrolling while performing a drag and drop.

    -

    The data for this tree is asynchronously loaded with a JSON TreeLoader.

    -

    The js is not minified so it is readable. See two-trees.js.

    - -
    -
    - - - diff --git a/www/extras/extjs/examples/tree/two-trees.js b/www/extras/extjs/examples/tree/two-trees.js deleted file mode 100644 index f770d177f..000000000 --- a/www/extras/extjs/examples/tree/two-trees.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -var TreeTest = function(){ - // shorthand - var Tree = Ext.tree; - - return { - init : function(){ - // yui-ext tree - var tree = new Tree.TreePanel('tree', { - animate:true, - loader: new Tree.TreeLoader({dataUrl:'get-nodes.php'}), - enableDD:true, - containerScroll: true, - dropConfig: {appendOnly:true} - }); - - // add a tree sorter in folder mode - new Tree.TreeSorter(tree, {folderSort:true}); - - // set the root node - var root = new Tree.AsyncTreeNode({ - text: 'Ext JS', - draggable:false, // disable root node dragging - id:'source' - }); - tree.setRootNode(root); - - // render the tree - tree.render(); - - root.expand(false, /*no anim*/ false); - - //------------------------------------------------------------- - - // YUI tree - var tree2 = new Tree.TreePanel('tree2', { - animate:true, - //rootVisible: false, - loader: new Ext.tree.TreeLoader({ - dataUrl:'get-nodes.php', - baseParams: {lib:'yui'} // custom http params - }), - containerScroll: true, - enableDD:true, - dropConfig: {appendOnly:true} - }); - - // add a tree sorter in folder mode - new Tree.TreeSorter(tree2, {folderSort:true}); - - // add the root node - var root2 = new Tree.AsyncTreeNode({ - text: 'Yahoo! UI Source', - draggable:false, - id:'yui' - }); - tree2.setRootNode(root2); - tree2.render(); - - root2.expand(false, /*no anim*/ false); - } - }; -}(); - -Ext.EventManager.onDocumentReady(TreeTest.init, TreeTest, true); \ No newline at end of file diff --git a/www/extras/extjs/examples/view/chooser-example.js b/www/extras/extjs/examples/view/chooser-example.js deleted file mode 100644 index 93859830b..000000000 --- a/www/extras/extjs/examples/view/chooser-example.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.onReady(function(){ - var chooser, btn; - - function insertImage(data){ - Ext.DomHelper.append('images', { - tag: 'img', src: data.url, style:'margin:10px;visibility:hidden;' - }, true).show(true); - btn.getEl().focus(); - }; - - function choose(btn){ - if(!chooser){ - chooser = new ImageChooser({ - url:'get-images.php', - width:515, - height:400 - }); - } - chooser.show(btn.getEl(), insertImage); - }; - - btn = new Ext.Button('buttons', { - text: "Insert Image", - handler: choose - }); -}); diff --git a/www/extras/extjs/examples/view/chooser.css b/www/extras/extjs/examples/view/chooser.css deleted file mode 100644 index 4aee1ea3e..000000000 --- a/www/extras/extjs/examples/view/chooser.css +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.details{ - padding: 10px; - text-align: center; -} -.details-info{ - border-top: 1px solid #cccccc; - font: 11px Arial, Helvetica, sans-serif; - margin-top: 5px; - padding-top: 5px; - text-align: left; -} -.details-info b{ - color: #555555; - display: block; - margin-bottom: 4px; -} -.details-info span{ - display: block; - margin-bottom: 5px; - margin-left: 5px; -} -.ychooser-dlg select{ - font-size: 12px; -} -.ychooser-view{ - background: white; - font: 11px Arial, Helvetica, sans-serif; - overflow: auto; -} -.ychooser-view .thumb{ - background: #dddddd; - padding: 3px; -} -.ychooser-view .thumb img{ - height: 60px; - width: 80px; -} -.ychooser-view .thumb-wrap{ - float: left; - margin: 4px; - margin-right: 0; - padding: 5px; -} -.ychooser-view .thumb-wrap span{ - display: block; - overflow: hidden; - text-align: center; -} -.ychooser-view .x-view-selected{ - background: #c3daf9; - border: 2px solid #6593cf; - padding: 3px; -} -.ychooser-view .x-view-selected .thumb{ - background:transparent; -} -.ychooser-view .loading-indicator { - font-size:11px; - background-image:url('../../resources/images/grid/loading.gif'); - background-repeat: no-repeat; - background-position: left; - padding-left:20px; - margin:10px; -} diff --git a/www/extras/extjs/examples/view/chooser.html b/www/extras/extjs/examples/view/chooser.html deleted file mode 100644 index 58353ad6f..000000000 --- a/www/extras/extjs/examples/view/chooser.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - JsonView Example - - - - - - - - - - - - - - -

    JsonView Example

    -

    This example demonstrates how to use some of the advanced features of a JsonView. It also shows how - to use the LayoutDialog and DomHelper.Template classes.

    -
    -
    - - \ No newline at end of file diff --git a/www/extras/extjs/examples/view/chooser.js b/www/extras/extjs/examples/view/chooser.js deleted file mode 100644 index ec36461f3..000000000 --- a/www/extras/extjs/examples/view/chooser.js +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -var ImageChooser = function(config){ - // create the dialog from scratch - var dlg = new Ext.LayoutDialog(config.id || Ext.id(), { - autoCreate : true, - minWidth:400, - minHeight:300, - syncHeightBeforeShow: true, - shadow:true, - fixedcenter:true, - center:{autoScroll:false}, - east:{split:true,initialSize:150,minSize:150,maxSize:250} - }); - dlg.setTitle('Choose an Image'); - dlg.getEl().addClass('ychooser-dlg'); - dlg.addKeyListener(27, dlg.hide, dlg); - - // add some buttons - this.ok = dlg.addButton('OK', this.doCallback, this); - this.ok.disable(); - dlg.setDefaultButton(dlg.addButton('Cancel', dlg.hide, dlg)); - dlg.on('show', this.load, this); - this.dlg = dlg; - var layout = dlg.getLayout(); - - // filter/sorting toolbar - this.tb = new Ext.Toolbar(this.dlg.body.createChild({tag:'div'})); - this.sortSelect = Ext.DomHelper.append(this.dlg.body.dom, { - tag:'select', children: [ - {tag: 'option', value:'name', selected: 'true', html:'Name'}, - {tag: 'option', value:'size', html:'File Size'}, - {tag: 'option', value:'lastmod', html:'Last Modified'} - ] - }, true); - this.sortSelect.on('change', this.sortImages, this, true); - - this.txtFilter = Ext.DomHelper.append(this.dlg.body.dom, { - tag:'input', type:'text', size:'12'}, true); - - this.txtFilter.on('focus', function(){this.dom.select();}); - this.txtFilter.on('keyup', this.filter, this, {buffer:500}); - - this.tb.add('Filter:', this.txtFilter.dom, 'separator', 'Sort By:', this.sortSelect.dom); - - // add the panels to the layout - layout.beginUpdate(); - var vp = layout.add('center', new Ext.ContentPanel(Ext.id(), { - autoCreate : true, - toolbar: this.tb, - fitToFrame:true - })); - var dp = layout.add('east', new Ext.ContentPanel(Ext.id(), { - autoCreate : true, - fitToFrame:true - })); - layout.endUpdate(); - - var bodyEl = vp.getEl(); - bodyEl.appendChild(this.tb.getEl()); - var viewBody = bodyEl.createChild({tag:'div', cls:'ychooser-view'}); - vp.resizeEl = viewBody; - - this.detailEl = dp.getEl(); - - // create the required templates - this.thumbTemplate = new Ext.Template( - '
    ' + - '
    ' + - '{shortName}
    ' - ); - this.thumbTemplate.compile(); - - this.detailsTemplate = new Ext.Template( - '
    ' + - 'Image Name:' + - '{name}' + - 'Size:' + - '{sizeString}' + - 'Last Modified:' + - '{dateString}
    ' - ); - this.detailsTemplate.compile(); - - // initialize the View - this.view = new Ext.JsonView(viewBody, this.thumbTemplate, { - singleSelect: true, - jsonRoot: 'images', - emptyText : '
    No images match the specified filter
    ' - }); - this.view.on('selectionchange', this.showDetails, this, {buffer:100}); - this.view.on('dblclick', this.doCallback, this); - this.view.on('loadexception', this.onLoadException, this); - this.view.on('beforeselect', function(view){ - return view.getCount() > 0; - }); - Ext.apply(this, config, { - width: 540, height: 400 - }); - - var formatSize = function(size){ - if(size < 1024) { - return size + " bytes"; - } else { - return (Math.round(((size*10) / 1024))/10) + " KB"; - } - }; - - // cache data by image name for easy lookup - var lookup = {}; - // make some values pretty for display - this.view.prepareData = function(data){ - data.shortName = data.name.ellipse(15); - data.sizeString = formatSize(data.size); - data.dateString = new Date(data.lastmod).format("m/d/Y g:i a"); - lookup[data.name] = data; - return data; - }; - this.lookup = lookup; - - dlg.resizeTo(this.width, this.height); - this.loaded = false; -}; -ImageChooser.prototype = { - show : function(el, callback){ - this.reset(); - this.dlg.show(el); - this.callback = callback; - }, - - reset : function(){ - this.view.getEl().dom.scrollTop = 0; - this.view.clearFilter(); - this.txtFilter.dom.value = ''; - this.view.select(0); - }, - - load : function(){ - if(!this.loaded){ - this.view.load({url: this.url, params:this.params, callback:this.onLoad.createDelegate(this)}); - } - }, - - onLoadException : function(v,o){ - this.view.getEl().update('
    Error loading images.
    '); - }, - - filter : function(){ - var filter = this.txtFilter.dom.value; - this.view.filter('name', filter); - this.view.select(0); - }, - - onLoad : function(){ - this.loaded = true; - this.view.select(0); - }, - - sortImages : function(){ - var p = this.sortSelect.dom.value; - this.view.sort(p, p != 'name' ? 'desc' : 'asc'); - this.view.select(0); - }, - - showDetails : function(view, nodes){ - var selNode = nodes[0]; - if(selNode && this.view.getCount() > 0){ - this.ok.enable(); - var data = this.lookup[selNode.id]; - this.detailEl.hide(); - this.detailsTemplate.overwrite(this.detailEl, data); - this.detailEl.slideIn('l', {stopFx:true,duration:.2}); - - }else{ - this.ok.disable(); - this.detailEl.update(''); - } - }, - - doCallback : function(){ - var selNode = this.view.getSelectedNodes()[0]; - var callback = this.callback; - var lookup = this.lookup; - this.dlg.hide(function(){ - if(selNode && callback){ - var data = lookup[selNode.id]; - callback(data); - } - }); - } -}; - -String.prototype.ellipse = function(maxLength){ - if(this.length > maxLength){ - return this.substr(0, maxLength-3) + '...'; - } - return this; -}; \ No newline at end of file diff --git a/www/extras/extjs/examples/view/get-images.php b/www/extras/extjs/examples/view/get-images.php deleted file mode 100644 index 208ed83d5..000000000 --- a/www/extras/extjs/examples/view/get-images.php +++ /dev/null @@ -1,15 +0,0 @@ -read()){ - if(!preg_match('/\.(jpg|gif|png)$/', $name)) continue; - $size = filesize($dir.$name); - $lastmod = filemtime($dir.$name)*1000; - $images[] = array('name'=>$name, 'size'=>$size, - 'lastmod'=>$lastmod, 'url'=>$dir.$name); -} -$d->close(); -$o = array('images'=>$images); -echo json_encode($o); -?> \ No newline at end of file diff --git a/www/extras/extjs/examples/view/images/thumbs/dance_fever.jpg b/www/extras/extjs/examples/view/images/thumbs/dance_fever.jpg deleted file mode 100644 index 52e708186..000000000 Binary files a/www/extras/extjs/examples/view/images/thumbs/dance_fever.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/view/images/thumbs/gangster_zack.jpg b/www/extras/extjs/examples/view/images/thumbs/gangster_zack.jpg deleted file mode 100644 index f5a9f809c..000000000 Binary files a/www/extras/extjs/examples/view/images/thumbs/gangster_zack.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/view/images/thumbs/kids_hug.jpg b/www/extras/extjs/examples/view/images/thumbs/kids_hug.jpg deleted file mode 100644 index ac3d582bc..000000000 Binary files a/www/extras/extjs/examples/view/images/thumbs/kids_hug.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/view/images/thumbs/kids_hug2.jpg b/www/extras/extjs/examples/view/images/thumbs/kids_hug2.jpg deleted file mode 100644 index 38152f51b..000000000 Binary files a/www/extras/extjs/examples/view/images/thumbs/kids_hug2.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/view/images/thumbs/sara_pink.jpg b/www/extras/extjs/examples/view/images/thumbs/sara_pink.jpg deleted file mode 100644 index a443c04ea..000000000 Binary files a/www/extras/extjs/examples/view/images/thumbs/sara_pink.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/view/images/thumbs/sara_pumpkin.jpg b/www/extras/extjs/examples/view/images/thumbs/sara_pumpkin.jpg deleted file mode 100644 index ce9a90b71..000000000 Binary files a/www/extras/extjs/examples/view/images/thumbs/sara_pumpkin.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/view/images/thumbs/sara_smile.jpg b/www/extras/extjs/examples/view/images/thumbs/sara_smile.jpg deleted file mode 100644 index 08919e25e..000000000 Binary files a/www/extras/extjs/examples/view/images/thumbs/sara_smile.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/view/images/thumbs/up_to_something.jpg b/www/extras/extjs/examples/view/images/thumbs/up_to_something.jpg deleted file mode 100644 index 771ea91f1..000000000 Binary files a/www/extras/extjs/examples/view/images/thumbs/up_to_something.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/view/images/thumbs/zack.jpg b/www/extras/extjs/examples/view/images/thumbs/zack.jpg deleted file mode 100644 index a7ce7bc3a..000000000 Binary files a/www/extras/extjs/examples/view/images/thumbs/zack.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/view/images/thumbs/zack_dress.jpg b/www/extras/extjs/examples/view/images/thumbs/zack_dress.jpg deleted file mode 100644 index b15f55192..000000000 Binary files a/www/extras/extjs/examples/view/images/thumbs/zack_dress.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/view/images/thumbs/zack_hat.jpg b/www/extras/extjs/examples/view/images/thumbs/zack_hat.jpg deleted file mode 100644 index df475ba6e..000000000 Binary files a/www/extras/extjs/examples/view/images/thumbs/zack_hat.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/view/images/thumbs/zack_sink.jpg b/www/extras/extjs/examples/view/images/thumbs/zack_sink.jpg deleted file mode 100644 index 01badd3da..000000000 Binary files a/www/extras/extjs/examples/view/images/thumbs/zack_sink.jpg and /dev/null differ diff --git a/www/extras/extjs/examples/view/images/thumbs/zacks_grill.jpg b/www/extras/extjs/examples/view/images/thumbs/zacks_grill.jpg deleted file mode 100644 index 5ca1ef630..000000000 Binary files a/www/extras/extjs/examples/view/images/thumbs/zacks_grill.jpg and /dev/null differ diff --git a/www/extras/extjs/ext-all-debug.js b/www/extras/extjs/ext-all-debug.js deleted file mode 100644 index 94a9eeba5..000000000 --- a/www/extras/extjs/ext-all-debug.js +++ /dev/null @@ -1,27927 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - - -Ext.DomHelper = function(){ - var tempTableEl = null; - var emptyTags = /^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i; - - - - var createHtml = function(o){ - if(typeof o == 'string'){ - return o; - } - var b = ""; - if(!o.tag){ - o.tag = "div"; - } - b += "<" + o.tag; - for(var attr in o){ - if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || typeof o[attr] == "function") continue; - if(attr == "style"){ - var s = o["style"]; - if(typeof s == "function"){ - s = s.call(); - } - if(typeof s == "string"){ - b += ' style="' + s + '"'; - }else if(typeof s == "object"){ - b += ' style="'; - for(var key in s){ - if(typeof s[key] != "function"){ - b += key + ":" + s[key] + ";"; - } - } - b += '"'; - } - }else{ - if(attr == "cls"){ - b += ' class="' + o["cls"] + '"'; - }else if(attr == "htmlFor"){ - b += ' for="' + o["htmlFor"] + '"'; - }else{ - b += " " + attr + '="' + o[attr] + '"'; - } - } - } - if(emptyTags.test(o.tag)){ - b += "/>"; - }else{ - b += ">"; - var cn = o.children || o.cn; - if(cn){ - if(cn instanceof Array){ - for(var i = 0, len = cn.length; i < len; i++) { - b += createHtml(cn[i], b); - } - }else{ - b += createHtml(cn, b); - } - } - if(o.html){ - b += o.html; - } - b += ""; - } - return b; - }; - - - - var createDom = function(o, parentNode){ - var el = document.createElement(o.tag); - var useSet = el.setAttribute ? true : false; - for(var attr in o){ - if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || attr == "style" || typeof o[attr] == "function") continue; - if(attr=="cls"){ - el.className = o["cls"]; - }else{ - if(useSet) el.setAttribute(attr, o[attr]); - else el[attr] = o[attr]; - } - } - Ext.DomHelper.applyStyles(el, o.style); - var cn = o.children || o.cn; - if(cn){ - if(cn instanceof Array){ - for(var i = 0, len = cn.length; i < len; i++) { - createDom(cn[i], el); - } - }else{ - createDom(cn, el); - } - } - if(o.html){ - el.innerHTML = o.html; - } - if(parentNode){ - parentNode.appendChild(el); - } - return el; - }; - - var ieTable = function(depth, s, h, e){ - tempTableEl.innerHTML = [s, h, e].join(''); - var i = -1, el = tempTableEl; - while(++i < depth){ - el = el.firstChild; - } - return el; - }; - - - var ts = '', - te = '
    ', - tbs = ts+'', - tbe = ''+te, - trs = tbs + '', - tre = ''+tbe; - - - var insertIntoTable = function(tag, where, el, html){ - if(!tempTableEl){ - tempTableEl = document.createElement('div'); - } - var node; - var before = null; - if(tag == 'td'){ - if(where == 'afterbegin' || where == 'beforeend'){ - return; - } - if(where == 'beforebegin'){ - before = el; - el = el.parentNode; - } else{ - before = el.nextSibling; - el = el.parentNode; - } - node = ieTable(4, trs, html, tre); - } - else if(tag == 'tr'){ - if(where == 'beforebegin'){ - before = el; - el = el.parentNode; - node = ieTable(3, tbs, html, tbe); - } else if(where == 'afterend'){ - before = el.nextSibling; - el = el.parentNode; - node = ieTable(3, tbs, html, tbe); - } else{ - if(where == 'afterbegin'){ - before = el.firstChild; - } - node = ieTable(4, trs, html, tre); - } - } else if(tag == 'tbody'){ - if(where == 'beforebegin'){ - before = el; - el = el.parentNode; - node = ieTable(2, ts, html, te); - } else if(where == 'afterend'){ - before = el.nextSibling; - el = el.parentNode; - node = ieTable(2, ts, html, te); - } else{ - if(where == 'afterbegin'){ - before = el.firstChild; - } - node = ieTable(3, tbs, html, tbe); - } - } else{ - if(where == 'beforebegin' || where == 'afterend'){ - return; - } - if(where == 'afterbegin'){ - before = el.firstChild; - } - node = ieTable(2, ts, html, te); - } - el.insertBefore(node, before); - return node; - }; - - return { - - useDom : false, - - - markup : function(o){ - return createHtml(o); - }, - - - applyStyles : function(el, styles){ - if(styles){ - el = Ext.fly(el); - if(typeof styles == "string"){ - var re = /\s?([a-z\-]*)\:\s?([^;]*);?/gi; - var matches; - while ((matches = re.exec(styles)) != null){ - el.setStyle(matches[1], matches[2]); - } - }else if (typeof styles == "object"){ - for (var style in styles){ - el.setStyle(style, styles[style]); - } - }else if (typeof styles == "function"){ - Ext.DomHelper.applyStyles(el, styles.call()); - } - } - }, - - - insertHtml : function(where, el, html){ - where = where.toLowerCase(); - if(el.insertAdjacentHTML){ - var tag = el.tagName.toLowerCase(); - if(tag == "table" || tag == "tbody" || tag == "tr" || tag == 'td'){ - var rs; - if(rs = insertIntoTable(tag, where, el, html)){ - return rs; - } - } - switch(where){ - case "beforebegin": - el.insertAdjacentHTML(where, html); - return el.previousSibling; - case "afterbegin": - el.insertAdjacentHTML(where, html); - return el.firstChild; - case "beforeend": - el.insertAdjacentHTML(where, html); - return el.lastChild; - case "afterend": - el.insertAdjacentHTML(where, html); - return el.nextSibling; - } - throw 'Illegal insertion point -> "' + where + '"'; - } - var range = el.ownerDocument.createRange(); - var frag; - switch(where){ - case "beforebegin": - range.setStartBefore(el); - frag = range.createContextualFragment(html); - el.parentNode.insertBefore(frag, el); - return el.previousSibling; - case "afterbegin": - if(el.firstChild){ - range.setStartBefore(el.firstChild); - frag = range.createContextualFragment(html); - el.insertBefore(frag, el.firstChild); - return el.firstChild; - }else{ - el.innerHTML = html; - return el.firstChild; - } - case "beforeend": - if(el.lastChild){ - range.setStartAfter(el.lastChild); - frag = range.createContextualFragment(html); - el.appendChild(frag); - return el.lastChild; - }else{ - el.innerHTML = html; - return el.lastChild; - } - case "afterend": - range.setStartAfter(el); - frag = range.createContextualFragment(html); - el.parentNode.insertBefore(frag, el.nextSibling); - return el.nextSibling; - } - throw 'Illegal insertion point -> "' + where + '"'; - }, - - - insertBefore : function(el, o, returnElement){ - return this.doInsert(el, o, returnElement, "beforeBegin"); - }, - - - insertAfter : function(el, o, returnElement){ - return this.doInsert(el, o, returnElement, "afterEnd", "nextSibling"); - }, - - - insertFirst : function(el, o, returnElement){ - return this.doInsert(el, o, returnElement, "afterBegin"); - }, - - - doInsert : function(el, o, returnElement, pos, sibling){ - el = Ext.getDom(el); - var newNode; - if(this.useDom){ - newNode = createDom(o, null); - el.parentNode.insertBefore(newNode, sibling ? el[sibling] : el); - }else{ - var html = createHtml(o); - newNode = this.insertHtml(pos, el, html); - } - return returnElement ? Ext.get(newNode, true) : newNode; - }, - - - append : function(el, o, returnElement){ - el = Ext.getDom(el); - var newNode; - if(this.useDom){ - newNode = createDom(o, null); - el.appendChild(newNode); - }else{ - var html = createHtml(o); - newNode = this.insertHtml("beforeEnd", el, html); - } - return returnElement ? Ext.get(newNode, true) : newNode; - }, - - - overwrite : function(el, o, returnElement){ - el = Ext.getDom(el); - el.innerHTML = createHtml(o); - return returnElement ? Ext.get(el.firstChild, true) : el.firstChild; - }, - - - createTemplate : function(o){ - var html = createHtml(o); - return new Ext.Template(html); - } - }; -}(); - - -Ext.Template = function(html){ - if(html instanceof Array){ - html = html.join(""); - }else if(arguments.length > 1){ - html = Array.prototype.join.call(arguments, ""); - } - - this.html = html; - -}; -Ext.Template.prototype = { - - applyTemplate : function(values){ - if(this.compiled){ - return this.compiled(values); - } - var useF = this.disableFormats !== true; - var fm = Ext.util.Format, tpl = this; - var fn = function(m, name, format, args){ - if(format && useF){ - if(format.substr(0, 5) == "this."){ - return tpl.call(format.substr(5), values[name]); - }else{ - if(args){ - - - - var re = /^\s*['"](.*)["']\s*$/; - args = args.split(','); - for(var i = 0, len = args.length; i < len; i++){ - args[i] = args[i].replace(re, "$1"); - } - args = [values[name]].concat(args); - }else{ - args = [values[name]]; - } - return fm[format].apply(fm, args); - } - }else{ - return values[name] !== undefined ? values[name] : ""; - } - }; - return this.html.replace(this.re, fn); - }, - - - set : function(html, compile){ - this.html = html; - this.compiled = null; - if(compile){ - this.compile(); - } - return this; - }, - - - disableFormats : false, - - - re : /\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g, - - - compile : function(){ - var fm = Ext.util.Format; - var useF = this.disableFormats !== true; - var sep = Ext.isGecko ? "+" : ","; - var fn = function(m, name, format, args){ - if(format && useF){ - args = args ? ',' + args : ""; - if(format.substr(0, 5) != "this."){ - format = "fm." + format + '('; - }else{ - format = 'this.call("'+ format.substr(5) + '", '; - args = ""; - } - }else{ - args= '', format = "(values['" + name + "'] == undefined ? '' : "; - } - return "'"+ sep + format + "values['" + name + "']" + args + ")"+sep+"'"; - }; - var body; - - if(Ext.isGecko){ - body = "this.compiled = function(values){ return '" + - this.html.replace(/(\r\n|\n)/g, '\\n').replace("'", "\\'").replace(this.re, fn) + - "';};"; - }else{ - body = ["this.compiled = function(values){ return ['"]; - body.push(this.html.replace(/(\r\n|\n)/g, '\\n').replace("'", "\\'").replace(this.re, fn)); - body.push("'].join('');};"); - body = body.join(''); - } - eval(body); - return this; - }, - - - call : function(fnName, value){ - return this[fnName](value); - }, - - - insertFirst: function(el, values, returnElement){ - return this.doInsert('afterBegin', el, values, returnElement); - }, - - - insertBefore: function(el, values, returnElement){ - return this.doInsert('beforeBegin', el, values, returnElement); - }, - - - insertAfter : function(el, values, returnElement){ - return this.doInsert('afterEnd', el, values, returnElement); - }, - - - append : function(el, values, returnElement){ - return this.doInsert('beforeEnd', el, values, returnElement); - }, - - doInsert : function(where, el, values, returnEl){ - el = Ext.getDom(el); - var newNode = Ext.DomHelper.insertHtml(where, el, this.applyTemplate(values)); - return returnEl ? Ext.get(newNode, true) : newNode; - }, - - - overwrite : function(el, values, returnElement){ - el = Ext.getDom(el); - el.innerHTML = this.applyTemplate(values); - return returnElement ? Ext.get(el.firstChild, true) : el.firstChild; - } -}; - -Ext.Template.prototype.apply = Ext.Template.prototype.applyTemplate; - - -Ext.DomHelper.Template = Ext.Template; - - -Ext.Template.from = function(el){ - el = Ext.getDom(el); - return new Ext.Template(el.value || el.innerHTML); -}; - - -Ext.MasterTemplate = function(){ - Ext.MasterTemplate.superclass.constructor.apply(this, arguments); - this.originalHtml = this.html; - var st = {}; - var m, re = this.subTemplateRe; - re.lastIndex = 0; - var subIndex = 0; - while(m = re.exec(this.html)){ - var name = m[1], content = m[2]; - st[subIndex] = { - name: name, - index: subIndex, - buffer: [], - tpl : new Ext.Template(content) - }; - if(name){ - st[name] = st[subIndex]; - } - st[subIndex].tpl.compile(); - st[subIndex].tpl.call = this.call.createDelegate(this); - subIndex++; - } - this.subCount = subIndex; - this.subs = st; -}; -Ext.extend(Ext.MasterTemplate, Ext.Template, { - - subTemplateRe : /((?:.|\n)*?)<\/tpl>/gi, - - - add : function(name, values){ - if(arguments.length == 1){ - values = arguments[0]; - name = 0; - } - var s = this.subs[name]; - s.buffer[s.buffer.length] = s.tpl.apply(values); - return this; - }, - - - fill : function(name, values, reset){ - var a = arguments; - if(a.length == 1 || (a.length == 2 && typeof a[1] == "boolean")){ - values = a[0]; - name = 0; - reset = a[1]; - } - if(reset){ - this.reset(); - } - for(var i = 0, len = values.length; i < len; i++){ - this.add(name, values[i]); - } - return this; - }, - - - reset : function(){ - var s = this.subs; - for(var i = 0; i < this.subCount; i++){ - s[i].buffer = []; - } - return this; - }, - - applyTemplate : function(values){ - var s = this.subs; - var replaceIndex = -1; - this.html = this.originalHtml.replace(this.subTemplateRe, function(m, name){ - return s[++replaceIndex].buffer.join(""); - }); - return Ext.MasterTemplate.superclass.applyTemplate.call(this, values); - }, - - apply : function(){ - return this.applyTemplate.apply(this, arguments); - }, - - compile : function(){return this;} -}); - - -Ext.MasterTemplate.prototype.addAll = Ext.MasterTemplate.prototype.fill; - -Ext.MasterTemplate.from = function(el){ - el = Ext.getDom(el); - return new Ext.MasterTemplate(el.value || el.innerHTML); -}; - - -Ext.DomQuery = function(){ - var cache = {}, simpleCache = {}, valueCache = {}; - var nonSpace = /\S/; - var trimRe = /^\s+|\s+$/g; - var tplRe = /\{(\d+)\}/g; - var modeRe = /^(\s?[\/>]\s?|\s|$)/; - var tagTokenRe = /^(#)?([\w-\*]+)/; - - function child(p, index){ - var i = 0; - var n = p.firstChild; - while(n){ - if(n.nodeType == 1){ - if(++i == index){ - return n; - } - } - n = n.nextSibling; - } - return null; - }; - - function next(n){ - while((n = n.nextSibling) && n.nodeType != 1); - return n; - }; - - function prev(n){ - while((n = n.previousSibling) && n.nodeType != 1); - return n; - }; - - function clean(d){ - var n = d.firstChild, ni = -1; - while(n){ - var nx = n.nextSibling; - if(n.nodeType == 3 && !nonSpace.test(n.nodeValue)){ - d.removeChild(n); - }else{ - n.nodeIndex = ++ni; - } - n = nx; - } - return this; - }; - - function byClassName(c, a, v, re, cn){ - if(!v){ - return c; - } - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - cn = ci.className; - if(cn && (' '+cn+' ').indexOf(v) != -1){ - r[r.length] = ci; - } - } - return r; - }; - - function attrValue(n, attr){ - if(!n.tagName && typeof n.length != "undefined"){ - n = n[0]; - } - if(!n){ - return null; - } - if(attr == "for"){ - return n.htmlFor; - } - if(attr == "class" || attr == "className"){ - return n.className; - } - return n.getAttribute(attr) || n[attr]; - - }; - - function getNodes(ns, mode, tagName){ - var result = [], cs; - if(!ns){ - return result; - } - mode = mode ? mode.replace(trimRe, "") : ""; - tagName = tagName || "*"; - if(typeof ns.getElementsByTagName != "undefined"){ - ns = [ns]; - } - if(mode != "/" && mode != ">"){ - for(var i = 0, ni; ni = ns[i]; i++){ - cs = ni.getElementsByTagName(tagName); - for(var j = 0, ci; ci = cs[j]; j++){ - result[result.length] = ci; - } - } - }else{ - for(var i = 0, ni; ni = ns[i]; i++){ - var cn = ni.getElementsByTagName(tagName); - for(var j = 0, cj; cj = cn[j]; j++){ - if(cj.parentNode == ni){ - result[result.length] = cj; - } - } - } - } - return result; - }; - - function concat(a, b){ - if(b.slice){ - return a.concat(b); - } - for(var i = 0, l = b.length; i < l; i++){ - a[a.length] = b[i]; - } - return a; - } - - function byTag(cs, tagName){ - if(cs.tagName || cs == document){ - cs = [cs]; - } - if(!tagName){ - return cs; - } - var r = []; tagName = tagName.toLowerCase(); - for(var i = 0, ci; ci = cs[i]; i++){ - if(ci.nodeType == 1 && ci.tagName.toLowerCase()==tagName){ - r[r.length] = ci; - } - } - return r; - }; - - function byId(cs, attr, id){ - if(cs.tagName || cs == document){ - cs = [cs]; - } - if(!id){ - return cs; - } - var r = []; - for(var i = 0,ci; ci = cs[i]; i++){ - if(ci && ci.id == id){ - r[r.length] = ci; - return r; - } - } - return r; - }; - - function byAttribute(cs, attr, value, op, custom){ - var r = [], st = custom=="{"; - var f = Ext.DomQuery.operators[op]; - for(var i = 0; ci = cs[i]; i++){ - var a; - if(st){ - a = Ext.DomQuery.getStyle(ci, attr); - } - else if(attr == "class" || attr == "className"){ - a = ci.className; - }else if(attr == "for"){ - a = ci.htmlFor; - }else if(attr == "href"){ - a = ci.getAttribute("href", 2); - }else{ - a = ci.getAttribute(attr); - } - if((f && f(a, value)) || (!f && a)){ - r[r.length] = ci; - } - } - return r; - }; - - function byPseudo(cs, name, value){ - return Ext.DomQuery.pseudos[name](cs, value); - }; - - - - - var isIE = window.ActiveXObject ? true : false; - - var key = 30803; - - function nodupIEXml(cs){ - var d = ++key; - cs[0].setAttribute("_nodup", d); - var r = [cs[0]]; - for(var i = 1, len = cs.length; i < len; i++){ - var c = cs[i]; - if(!c.getAttribute("_nodup") != d){ - c.setAttribute("_nodup", d); - r[r.length] = c; - } - } - for(var i = 0, len = cs.length; i < len; i++){ - cs[i].removeAttribute("_nodup"); - } - return r; - } - - function nodup(cs){ - if(!cs){ - return []; - } - var len = cs.length, c, i, r = cs, cj; - if(!len || typeof cs.nodeType != "undefined" || len == 1){ - return cs; - } - if(isIE && typeof cs[0].selectSingleNode != "undefined"){ - return nodupIEXml(cs); - } - var d = ++key; - cs[0]._nodup = d; - for(i = 1; c = cs[i]; i++){ - if(c._nodup != d){ - c._nodup = d; - }else{ - r = []; - for(var j = 0; j < i; j++){ - r[r.length] = cs[j]; - } - for(j = i+1; cj = cs[j]; j++){ - if(cj._nodup != d){ - cj._nodup = d; - r[r.length] = cj; - } - } - return r; - } - } - return r; - } - - function quickDiffIEXml(c1, c2){ - var d = ++key; - for(var i = 0, len = c1.length; i < len; i++){ - c1[i].setAttribute("_qdiff", d); - } - var r = []; - for(var i = 0, len = c2.length; i < len; i++){ - if(c2[i].getAttribute("_qdiff") != d){ - r[r.length] = c2[i]; - } - } - for(var i = 0, len = c1.length; i < len; i++){ - c1[i].removeAttribute("_qdiff"); - } - return r; - } - - function quickDiff(c1, c2){ - var len1 = c1.length; - if(!len1){ - return c2; - } - if(isIE && c1[0].selectSingleNode){ - return quickDiffIEXml(c1, c2); - } - var d = ++key; - for(var i = 0; i < len1; i++){ - c1[i]._qdiff = d; - } - var r = []; - for(var i = 0, len = c2.length; i < len; i++){ - if(c2[i]._qdiff != d){ - r[r.length] = c2[i]; - } - } - return r; - } - - function quickId(ns, mode, root, id){ - if(ns == root){ - var d = root.ownerDocument || root; - return d.getElementById(id); - } - ns = getNodes(ns, mode, "*"); - return byId(ns, null, id); - } - - return { - getStyle : function(el, name){ - return Ext.fly(el).getStyle(name); - }, - - compile : function(path, type){ - - while(path.substr(0, 1)=="/"){ - path = path.substr(1); - } - type = type || "select"; - - var fn = ["var f = function(root){\n var mode; var n = root || document;\n"]; - var q = path, mode, lq; - var tk = Ext.DomQuery.matchers; - var tklen = tk.length; - var mm; - while(q && lq != q){ - lq = q; - var tm = q.match(tagTokenRe); - if(type == "select"){ - if(tm){ - if(tm[1] == "#"){ - fn[fn.length] = 'n = quickId(n, mode, root, "'+tm[2]+'");'; - }else{ - fn[fn.length] = 'n = getNodes(n, mode, "'+tm[2]+'");'; - } - q = q.replace(tm[0], ""); - }else if(q.substr(0, 1) != '@'){ - fn[fn.length] = 'n = getNodes(n, mode, "*");'; - } - }else{ - if(tm){ - if(tm[1] == "#"){ - fn[fn.length] = 'n = byId(n, null, "'+tm[2]+'");'; - }else{ - fn[fn.length] = 'n = byTag(n, "'+tm[2]+'");'; - } - q = q.replace(tm[0], ""); - } - } - while(!(mm = q.match(modeRe))){ - var matched = false; - for(var j = 0; j < tklen; j++){ - var t = tk[j]; - var m = q.match(t.re); - if(m){ - fn[fn.length] = t.select.replace(tplRe, function(x, i){ - return m[i]; - }); - q = q.replace(m[0], ""); - matched = true; - break; - } - } - - if(!matched){ - throw 'Error parsing selector, parsing failed at "' + q + '"'; - } - } - if(mm[1]){ - fn[fn.length] = 'mode="'+mm[1]+'";'; - q = q.replace(mm[1], ""); - } - } - fn[fn.length] = "return nodup(n);\n}"; - eval(fn.join("")); - return f; - }, - - - select : function(path, root, type){ - if(!root || root == document){ - root = document; - } - if(typeof root == "string"){ - root = document.getElementById(root); - } - var paths = path.split(","); - var results = []; - for(var i = 0, len = paths.length; i < len; i++){ - var p = paths[i].replace(trimRe, ""); - if(!cache[p]){ - cache[p] = Ext.DomQuery.compile(p); - if(!cache[p]){ - throw p + " is not a valid selector"; - } - } - var result = cache[p](root); - if(result && result != document){ - results = results.concat(result); - } - } - return results; - }, - - - selectNode : function(path, root){ - return Ext.DomQuery.select(path, root)[0]; - }, - - - selectValue : function(path, root, defaultValue){ - path = path.replace(trimRe, ""); - if(!valueCache[path]){ - valueCache[path] = Ext.DomQuery.compile(path, "select"); - } - var n = valueCache[path](root); - n = n[0] ? n[0] : n; - var v = (n && n.firstChild ? n.firstChild.nodeValue : null); - return (v === null ? defaultValue : v); - }, - - - selectNumber : function(path, root, defaultValue){ - var v = Ext.DomQuery.selectValue(path, root, defaultValue || 0); - return parseFloat(v); - }, - - - is : function(el, ss){ - if(typeof el == "string"){ - el = document.getElementById(el); - } - var isArray = (el instanceof Array); - var result = Ext.DomQuery.filter(isArray ? el : [el], ss); - return isArray ? (result.length == el.length) : (result.length > 0); - }, - - - filter : function(els, ss, nonMatches){ - ss = ss.replace(trimRe, ""); - if(!simpleCache[ss]){ - simpleCache[ss] = Ext.DomQuery.compile(ss, "simple"); - } - var result = simpleCache[ss](els); - return nonMatches ? quickDiff(result, els) : result; - }, - - - matchers : [{ - re: /^\.([\w-]+)/, - select: 'n = byClassName(n, null, " {1} ");' - }, { - re: /^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/, - select: 'n = byPseudo(n, "{1}", "{2}");' - },{ - re: /^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/, - select: 'n = byAttribute(n, "{2}", "{4}", "{3}", "{1}");' - }, { - re: /^#([\w-]+)/, - select: 'n = byId(n, null, "{1}");' - },{ - re: /^@([\w-]+)/, - select: 'return {firstChild:{nodeValue:attrValue(n, "{1}")}};' - } - ], - - - operators : { - "=" : function(a, v){ - return a == v; - }, - "!=" : function(a, v){ - return a != v; - }, - "^=" : function(a, v){ - return a && a.substr(0, v.length) == v; - }, - "$=" : function(a, v){ - return a && a.substr(a.length-v.length) == v; - }, - "*=" : function(a, v){ - return a && a.indexOf(v) !== -1; - }, - "%=" : function(a, v){ - return (a % v) == 0; - } - }, - - - pseudos : { - "first-child" : function(c){ - var r = [], n; - for(var i = 0, ci; ci = n = c[i]; i++){ - while((n = n.previousSibling) && n.nodeType != 1); - if(!n){ - r[r.length] = ci; - } - } - return r; - }, - - "last-child" : function(c){ - var r = []; - for(var i = 0, ci; ci = n = c[i]; i++){ - while((n = n.nextSibling) && n.nodeType != 1); - if(!n){ - r[r.length] = ci; - } - } - return r; - }, - - "nth-child" : function(c, a){ - var r = []; - if(a != "odd" && a != "even"){ - for(var i = 0, ci; ci = c[i]; i++){ - var m = child(ci.parentNode, a); - if(m == ci){ - r[r.length] = m; - } - } - return r; - } - var p; - - for(var i = 0, l = c.length; i < l; i++){ - var cp = c[i].parentNode; - if(cp != p){ - clean(cp); - p = cp; - } - } - - for(var i = 0, ci; ci = c[i]; i++){ - var m = false; - if(a == "odd"){ - m = ((ci.nodeIndex+1) % 2 == 1); - }else if(a == "even"){ - m = ((ci.nodeIndex+1) % 2 == 0); - } - if(m){ - r[r.length] = ci; - } - } - return r; - }, - - "only-child" : function(c){ - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - if(!prev(ci) && !next(ci)){ - r[r.length] = ci; - } - } - return r; - }, - - "empty" : function(c){ - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - var cns = ci.childNodes, j = 0, cn, empty = true; - while(cn = cns[j]){ - ++j; - if(cn.nodeType == 1 || cn.nodeType == 3){ - empty = false; - break; - } - } - if(empty){ - r[r.length] = ci; - } - } - return r; - }, - - "contains" : function(c, v){ - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - if(ci.innerHTML.indexOf(v) !== -1){ - r[r.length] = ci; - } - } - return r; - }, - - "nodeValue" : function(c, v){ - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - if(ci.firstChild && ci.firstChild.nodeValue == v){ - r[r.length] = ci; - } - } - return r; - }, - - "checked" : function(c){ - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - if(ci.checked == true){ - r[r.length] = ci; - } - } - return r; - }, - - "not" : function(c, ss){ - return Ext.DomQuery.filter(c, ss, true); - }, - - "odd" : function(c){ - return this["nth-child"](c, "odd"); - }, - - "even" : function(c){ - return this["nth-child"](c, "even"); - }, - - "nth" : function(c, a){ - return c[a-1] || []; - }, - - "first" : function(c){ - return c[0] || []; - }, - - "last" : function(c){ - return c[c.length-1] || []; - }, - - "has" : function(c, ss){ - var s = Ext.DomQuery.select; - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - if(s(ss, ci).length > 0){ - r[r.length] = ci; - } - } - return r; - }, - - "next" : function(c, ss){ - var is = Ext.DomQuery.is; - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - var n = next(ci); - if(n && is(n, ss)){ - r[r.length] = ci; - } - } - return r; - }, - - "prev" : function(c, ss){ - var is = Ext.DomQuery.is; - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - var n = prev(ci); - if(n && is(n, ss)){ - r[r.length] = ci; - } - } - return r; - } - } - }; -}(); - - -Ext.query = Ext.DomQuery.select; - - - -Ext.util.Observable = function(){ - if(this.listeners){ - this.on(this.listeners); - delete this.listeners; - } -}; -Ext.util.Observable.prototype = { - - fireEvent : function(){ - var ce = this.events[arguments[0].toLowerCase()]; - if(typeof ce == "object"){ - return ce.fire.apply(ce, Array.prototype.slice.call(arguments, 1)); - }else{ - return true; - } - }, - - filterOptRe : /^(?:scope|delay|buffer|single)$/, - - - addListener : function(eventName, fn, scope, o){ - if(typeof eventName == "object"){ - o = eventName; - for(var e in o){ - if(this.filterOptRe.test(e)){ - continue; - } - if(typeof o[e] == "function"){ - this.addListener(e, o[e], o.scope, o); - }else{ - this.addListener(e, o[e].fn, o[e].scope, o[e]); - } - } - return; - } - o = (!o || typeof o == "boolean") ? {} : o; - eventName = eventName.toLowerCase(); - var ce = this.events[eventName] || true; - if(typeof ce == "boolean"){ - ce = new Ext.util.Event(this, eventName); - this.events[eventName] = ce; - } - ce.addListener(fn, scope, o); - }, - - - removeListener : function(eventName, fn, scope){ - var ce = this.events[eventName.toLowerCase()]; - if(typeof ce == "object"){ - ce.removeListener(fn, scope); - } - }, - - - purgeListeners : function(){ - for(var evt in this.events){ - if(typeof this.events[evt] == "object"){ - this.events[evt].clearListeners(); - } - } - }, - - relayEvents : function(o, events){ - var createHandler = function(ename){ - return function(){ - return this.fireEvent.apply(this, Ext.combine(ename, Array.prototype.slice.call(arguments, 0))); - }; - }; - for(var i = 0, len = events.length; i < len; i++){ - var ename = events[i]; - if(!this.events[ename]){ this.events[ename] = true; }; - o.on(ename, createHandler(ename), this); - } - }, - - - addEvents : function(o){ - if(!this.events){ - this.events = {}; - } - Ext.applyIf(this.events, o); - }, - - - hasListener : function(eventName){ - var e = this.events[eventName]; - return typeof e == "object" && e.listeners.length > 0; - } -}; - -Ext.util.Observable.prototype.on = Ext.util.Observable.prototype.addListener; - -Ext.util.Observable.prototype.un = Ext.util.Observable.prototype.removeListener; - - -Ext.util.Observable.capture = function(o, fn, scope){ - o.fireEvent = o.fireEvent.createInterceptor(fn, scope); -}; - - -Ext.util.Observable.releaseCapture = function(o){ - o.fireEvent = Ext.util.Observable.prototype.fireEvent; -}; - -(function(){ - - var createBuffered = function(h, o, scope){ - var task = new Ext.util.DelayedTask(); - return function(){ - task.delay(o.buffer, h, scope, Array.prototype.slice.call(arguments, 0)); - }; - }; - - var createSingle = function(h, e, fn, scope){ - return function(){ - e.removeListener(fn, scope); - return h.apply(scope, arguments); - }; - }; - - var createDelayed = function(h, o, scope){ - return function(){ - var args = Array.prototype.slice.call(arguments, 0); - setTimeout(function(){ - h.apply(scope, args); - }, o.delay || 10); - }; - }; - - Ext.util.Event = function(obj, name){ - this.name = name; - this.obj = obj; - this.listeners = []; - }; - - Ext.util.Event.prototype = { - addListener : function(fn, scope, options){ - var o = options || {}; - scope = scope || this.obj; - if(!this.isListening(fn, scope)){ - var l = {fn: fn, scope: scope, options: o}; - var h = fn; - if(o.delay){ - h = createDelayed(h, o, scope); - } - if(o.single){ - h = createSingle(h, this, fn, scope); - } - if(o.buffer){ - h = createBuffered(h, o, scope); - } - l.fireFn = h; - if(!this.firing){ this.listeners.push(l); - }else{ - this.listeners = this.listeners.slice(0); - this.listeners.push(l); - } - } - }, - - findListener : function(fn, scope){ - scope = scope || this.obj; - var ls = this.listeners; - for(var i = 0, len = ls.length; i < len; i++){ - var l = ls[i]; - if(l.fn == fn && l.scope == scope){ - return i; - } - } - return -1; - }, - - isListening : function(fn, scope){ - return this.findListener(fn, scope) != -1; - }, - - removeListener : function(fn, scope){ - var index; - if((index = this.findListener(fn, scope)) != -1){ - if(!this.firing){ - this.listeners.splice(index, 1); - }else{ - this.listeners = this.listeners.slice(0); - this.listeners.splice(index, 1); - } - return true; - } - return false; - }, - - clearListeners : function(){ - this.listeners = []; - }, - - fire : function(){ - var ls = this.listeners, scope, len = ls.length; - if(len > 0){ - this.firing = true; - var args = Array.prototype.slice.call(arguments, 0); - for(var i = 0; i < len; i++){ - var l = ls[i]; - if(l.fireFn.apply(l.scope, arguments) === false){ - this.firing = false; - return false; - } - } - this.firing = false; - } - return true; - } - }; -})(); - -Ext.EventManager = function(){ - var docReadyEvent, docReadyProcId, docReadyState = false; - var resizeEvent, resizeTask, textEvent, textSize; - var E = Ext.lib.Event; - var D = Ext.lib.Dom; - - - var fireDocReady = function(){ - if(!docReadyState){ - docReadyState = true; - Ext.isReady = true; - if(docReadyProcId){ - clearInterval(docReadyProcId); - } - if(Ext.isGecko || Ext.isOpera) { - document.removeEventListener("DOMContentLoaded", fireDocReady, false); - } - if(docReadyEvent){ - docReadyEvent.fire(); - docReadyEvent.clearListeners(); - } - } - }; - - var initDocReady = function(){ - docReadyEvent = new Ext.util.Event(); - if(Ext.isGecko || Ext.isOpera) { - document.addEventListener("DOMContentLoaded", fireDocReady, false); - }else if(Ext.isIE){ - - document.write(""); - var defer = document.getElementById("ie-deferred-loader"); - defer.onreadystatechange = function(){ - if(this.readyState == "complete"){ - fireDocReady(); - defer.onreadystatechange = null; - defer.parentNode.removeChild(defer); - } - }; - }else if(Ext.isSafari){ - docReadyProcId = setInterval(function(){ - var rs = document.readyState; - if(rs == "complete") { - fireDocReady(); - } - }, 10); - } - - E.on(window, "load", fireDocReady); - }; - - var createBuffered = function(h, o){ - var task = new Ext.util.DelayedTask(h); - return function(e){ - - e = new Ext.EventObjectImpl(e); - task.delay(o.buffer, h, null, [e]); - }; - }; - - var createSingle = function(h, el, ename, fn){ - return function(e){ - Ext.EventManager.removeListener(el, ename, fn); - h(e); - }; - }; - - var createDelayed = function(h, o){ - return function(e){ - - e = new Ext.EventObjectImpl(e); - setTimeout(function(){ - h(e); - }, o.delay || 10); - }; - }; - - var listen = function(element, ename, opt, fn, scope){ - var o = (!opt || typeof opt == "boolean") ? {} : opt; - fn = fn || o.fn; scope = scope || o.scope; - var el = Ext.getDom(element); - if(!el){ - throw "Error listening for \"" + ename + '\". Element "' + element + '" doesn\'t exist.'; - } - var h = function(e){ - e = Ext.EventObject.setEvent(e); - var t; - if(o.delegate){ - t = e.getTarget(o.delegate, el); - if(!t){ - return; - } - }else{ - t = e.target; - } - if(o.stopEvent === true){ - e.stopEvent(); - } - if(o.preventDefault === true){ - e.preventDefault(); - } - if(o.stopPropagation === true){ - e.stopPropagation(); - } - - if(o.normalized === false){ - e = e.browserEvent; - } - - fn.call(scope || el, e, t, o); - }; - if(o.delay){ - h = createDelayed(h, o); - } - if(o.single){ - h = createSingle(h, el, ename, fn); - } - if(o.buffer){ - h = createBuffered(h, o); - } - fn._handlers = fn._handlers || []; - fn._handlers.push([Ext.id(el), ename, h]); - - E.on(el, ename, h); - if(ename == "mousewheel" && el.addEventListener){ - el.addEventListener("DOMMouseScroll", h, false); - E.on(window, 'unload', function(){ - el.removeEventListener("DOMMouseScroll", h, false); - }); - } - if(ename == "mousedown" && el == document){ - Ext.EventManager.stoppedMouseDownEvent.addListener(h); - } - return h; - }; - - var stopListening = function(el, ename, fn){ - var id = Ext.id(el), hds = fn._handlers, hd = fn; - if(hds){ - for(var i = 0, len = hds.length; i < len; i++){ - var h = hds[i]; - if(h[0] == id && h[1] == ename){ - hd = h[2]; - hds.splice(i, 1); - break; - } - } - } - E.un(el, ename, hd); - el = Ext.getDom(el); - if(ename == "mousewheel" && el.addEventListener){ - el.removeEventListener("DOMMouseScroll", hd, false); - } - if(ename == "mousedown" && el == document){ - Ext.EventManager.stoppedMouseDownEvent.removeListener(hd); - } - }; - - var propRe = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized)$/; - var pub = { - - - wrap : function(fn, scope, override){ - return function(e){ - Ext.EventObject.setEvent(e); - fn.call(override ? scope || window : window, Ext.EventObject, scope); - }; - }, - - - addListener : function(element, eventName, fn, scope, options){ - if(typeof eventName == "object"){ - var o = eventName; - for(var e in o){ - if(propRe.test(e)){ - continue; - } - if(typeof o[e] == "function"){ - - listen(element, e, o, o[e], o.scope); - }else{ - - listen(element, e, o[e]); - } - } - return; - } - return listen(element, eventName, options, fn, scope); - }, - - - removeListener : function(element, eventName, fn){ - return stopListening(element, eventName, fn); - }, - - - onDocumentReady : function(fn, scope, options){ - if(docReadyState){ - fn.call(scope || window, scope); - return; - } - if(!docReadyEvent){ - initDocReady(); - } - docReadyEvent.addListener(fn, scope, options); - }, - - - onWindowResize : function(fn, scope, options){ - if(!resizeEvent){ - resizeEvent = new Ext.util.Event(); - resizeTask = new Ext.util.DelayedTask(function(){ - resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); - }); - E.on(window, "resize", function(){ - if(Ext.isIE){ - resizeTask.delay(50); - }else{ - resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); - } - }); - } - resizeEvent.addListener(fn, scope, options); - }, - - - onTextResize : function(fn, scope, options){ - if(!textEvent){ - textEvent = new Ext.util.Event(); - var textEl = new Ext.Element(document.createElement('div')); - textEl.dom.className = 'x-text-resize'; - textEl.dom.innerHTML = 'X'; - textEl.appendTo(document.body); - textSize = textEl.dom.offsetHeight; - setInterval(function(){ - if(textEl.dom.offsetHeight != textSize){ - textEvent.fire(textSize, textSize = textEl.dom.offsetHeight); - } - }, this.textResizeInterval); - } - textEvent.addListener(fn, scope, options); - }, - - - removeResizeListener : function(fn, scope){ - if(resizeEvent){ - resizeEvent.removeListener(fn, scope); - } - }, - - fireResize : function(){ - if(resizeEvent){ - resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); - } - }, - - ieDeferSrc : false, - textResizeInterval : 50 - }; - - pub.on = pub.addListener; - pub.un = pub.removeListener; - - pub.stoppedMouseDownEvent = new Ext.util.Event(); - return pub; -}(); - -Ext.onReady = Ext.EventManager.onDocumentReady; - -Ext.onReady(function(){ - var bd = Ext.get(document.body); - if(!bd){ return; } - var cls = Ext.isIE ? "ext-ie" - : Ext.isGecko ? "ext-gecko" - : Ext.isOpera ? "ext-opera" - : Ext.isSafari ? "ext-safari" : ""; - if(Ext.isBorderBox){ - cls += ' ext-border-box'; - } - if(Ext.isStrict){ - cls += ' ext-strict'; - } - bd.addClass(cls); -}); - -Ext.EventObject = function(){ - - var E = Ext.lib.Event; - - - var safariKeys = { - 63234 : 37, - 63235 : 39, - 63232 : 38, - 63233 : 40, - 63276 : 33, - 63277 : 34, - 63272 : 46, - 63273 : 36, - 63275 : 35 - }; - - - var btnMap = Ext.isIE ? {1:0,4:1,2:2} : - (Ext.isSafari ? {1:0,2:1,3:2} : {0:0,1:1,2:2}); - - Ext.EventObjectImpl = function(e){ - if(e){ - this.setEvent(e.browserEvent || e); - } - }; - Ext.EventObjectImpl.prototype = { - - browserEvent : null, - - button : -1, - - shiftKey : false, - - ctrlKey : false, - - altKey : false, - - - BACKSPACE : 8, - - TAB : 9, - - RETURN : 13, - - ENTER : 13, - - SHIFT : 16, - - CONTROL : 17, - - ESC : 27, - - SPACE : 32, - - PAGEUP : 33, - - PAGEDOWN : 34, - - END : 35, - - HOME : 36, - - LEFT : 37, - - UP : 38, - - RIGHT : 39, - - DOWN : 40, - - DELETE : 46, - - F5 : 116, - - - setEvent : function(e){ - if(e == this || (e && e.browserEvent)){ - return e; - } - this.browserEvent = e; - if(e){ - - this.button = e.button ? btnMap[e.button] : (e.which ? e.which-1 : -1); - this.shiftKey = e.shiftKey; - - this.ctrlKey = e.ctrlKey || e.metaKey; - this.altKey = e.altKey; - - this.keyCode = e.keyCode; - this.charCode = e.charCode; - - this.target = E.getTarget(e); - - this.xy = E.getXY(e); - }else{ - this.button = -1; - this.shiftKey = false; - this.ctrlKey = false; - this.altKey = false; - this.keyCode = 0; - this.charCode =0; - this.target = null; - this.xy = [0, 0]; - } - return this; - }, - - - stopEvent : function(){ - if(this.browserEvent){ - if(this.browserEvent.type == 'mousedown'){ - Ext.EventManager.stoppedMouseDownEvent.fire(this); - } - E.stopEvent(this.browserEvent); - } - }, - - - preventDefault : function(){ - if(this.browserEvent){ - E.preventDefault(this.browserEvent); - } - }, - - - isNavKeyPress : function(){ - var k = this.keyCode; - k = Ext.isSafari ? (safariKeys[k] || k) : k; - return (k >= 33 && k <= 40) || k == this.RETURN || k == this.TAB || k == this.ESC; - }, - - isSpecialKey : function(){ - var k = this.keyCode; - return k == 9 || k == 13 || k == 40 || k == 27 || - (k == 16) || (k == 17) || - (k >= 18 && k <= 20) || - (k >= 33 && k <= 35) || - (k >= 36 && k <= 39) || - (k >= 44 && k <= 45); - }, - - stopPropagation : function(){ - if(this.browserEvent){ - if(this.browserEvent.type == 'mousedown'){ - Ext.EventManager.stoppedMouseDownEvent.fire(this); - } - E.stopPropagation(this.browserEvent); - } - }, - - - getCharCode : function(){ - return this.charCode || this.keyCode; - }, - - - getKey : function(){ - var k = this.keyCode || this.charCode; - return Ext.isSafari ? (safariKeys[k] || k) : k; - }, - - - getPageX : function(){ - return this.xy[0]; - }, - - - getPageY : function(){ - return this.xy[1]; - }, - - - getTime : function(){ - if(this.browserEvent){ - return E.getTime(this.browserEvent); - } - return null; - }, - - - getXY : function(){ - return this.xy; - }, - - - getTarget : function(selector, maxDepth, returnEl){ - return selector ? Ext.fly(this.target).findParent(selector, maxDepth, returnEl) : this.target; - }, - - getRelatedTarget : function(){ - if(this.browserEvent){ - return E.getRelatedTarget(this.browserEvent); - } - return null; - }, - - - getWheelDelta : function(){ - var e = this.browserEvent; - var delta = 0; - if(e.wheelDelta){ - delta = e.wheelDelta/120; - - if(window.opera) delta = -delta; - }else if(e.detail){ - delta = -e.detail/3; - } - return delta; - }, - - - hasModifier : function(){ - return ((this.ctrlKey || this.altKey) || this.shiftKey) ? true : false; - }, - - - within : function(el, related){ - var t = this[related ? "getRelatedTarget" : "getTarget"](); - return t && Ext.fly(el).contains(t); - }, - - getPoint : function(){ - return new Ext.lib.Point(this.xy[0], this.xy[1]); - } - }; - - return new Ext.EventObjectImpl(); -}(); - - - -(function(){ -var D = Ext.lib.Dom; -var E = Ext.lib.Event; -var A = Ext.lib.Anim; - - -var propCache = {}; -var camelRe = /(-[a-z])/gi; -var camelFn = function(m, a){ return a.charAt(1).toUpperCase(); }; -var view = document.defaultView; - -Ext.Element = function(element, forceNew){ - var dom = typeof element == "string" ? - document.getElementById(element) : element; - if(!dom){ - return null; - } - if(!forceNew && Ext.Element.cache[dom.id]){ - return Ext.Element.cache[dom.id]; - } - - this.dom = dom; - - - this.id = dom.id || Ext.id(dom); -}; - -var El = Ext.Element; - -El.prototype = { - - originalDisplay : "", - - visibilityMode : 1, - - defaultUnit : "px", - - setVisibilityMode : function(visMode){ - this.visibilityMode = visMode; - return this; - }, - - enableDisplayMode : function(display){ - this.setVisibilityMode(El.DISPLAY); - if(typeof display != "undefined") this.originalDisplay = display; - return this; - }, - - - findParent : function(simpleSelector, maxDepth, returnEl){ - var p = this.dom, b = document.body, depth = 0, dq = Ext.DomQuery, stopEl; - maxDepth = maxDepth || 50; - if(typeof maxDepth != "number"){ - stopEl = Ext.getDom(maxDepth); - maxDepth = 10; - } - while(p && p.nodeType == 1 && depth < maxDepth && p != b && p != stopEl){ - if(dq.is(p, simpleSelector)){ - return returnEl ? Ext.get(p) : p; - } - depth++; - p = p.parentNode; - } - return null; - }, - - - - findParentNode : function(simpleSelector, maxDepth, returnEl){ - var p = Ext.fly(this.dom.parentNode, '_internal'); - return p ? p.findParent(simpleSelector, maxDepth, returnEl) : null; - }, - - - up : function(simpleSelector, maxDepth){ - return this.findParentNode(simpleSelector, maxDepth, true); - }, - - - - - is : function(simpleSelector){ - return Ext.DomQuery.is(this.dom, simpleSelector); - }, - - - animate : function(args, duration, onComplete, easing, animType){ - this.anim(args, {duration: duration, callback: onComplete, easing: easing}, animType); - return this; - }, - - - anim : function(args, opt, animType, defaultDur, defaultEase, cb){ - animType = animType || 'run'; - opt = opt || {}; - var anim = Ext.lib.Anim[animType]( - this.dom, args, - (opt.duration || defaultDur) || .35, - (opt.easing || defaultEase) || 'easeOut', - function(){ - Ext.callback(cb, this); - Ext.callback(opt.callback, opt.scope || this, [this, opt]); - }, - this - ); - opt.anim = anim; - return anim; - }, - - - preanim : function(a, i){ - return !a[i] ? false : (typeof a[i] == "object" ? a[i]: {duration: a[i+1], callback: a[i+2], easing: a[i+3]}); - }, - - - clean : function(forceReclean){ - if(this.isCleaned && forceReclean !== true){ - return this; - } - var ns = /\S/; - var d = this.dom, n = d.firstChild, ni = -1; - while(n){ - var nx = n.nextSibling; - if(n.nodeType == 3 && !ns.test(n.nodeValue)){ - d.removeChild(n); - }else{ - n.nodeIndex = ++ni; - } - n = nx; - } - this.isCleaned = true; - return this; - }, - - calcOffsetsTo : function(el){ - el = Ext.get(el), d = el.dom; - var restorePos = false; - if(el.getStyle('position') == 'static'){ - el.position('relative'); - restorePos = true; - } - var x = 0, y =0; - var op = this.dom; - while(op && op != d && op.tagName != 'HTML'){ - x+= op.offsetLeft; - y+= op.offsetTop; - op = op.offsetParent; - } - if(restorePos){ - el.position('static'); - } - return [x, y]; - }, - - - scrollIntoView : function(container, hscroll){ - var c = Ext.getDom(container) || document.body; - var el = this.dom; - - var o = this.calcOffsetsTo(c), - l = o[0], - t = o[1], - b = t+el.offsetHeight, - r = l+el.offsetWidth; - - var ch = c.clientHeight; - var ct = parseInt(c.scrollTop, 10); - var cl = parseInt(c.scrollLeft, 10); - var cb = ct + ch; - var cr = cl + c.clientWidth; - - if(t < ct){ - c.scrollTop = t; - }else if(b > cb){ - c.scrollTop = b-ch; - } - - if(hscroll !== false){ - if(l < cl){ - c.scrollLeft = l; - }else if(r > cr){ - c.scrollLeft = r-c.clientWidth; - } - } - return this; - }, - - scrollChildIntoView : function(child){ - Ext.fly(child, '_scrollChildIntoView').scrollIntoView(this); - }, - - - autoHeight : function(animate, duration, onComplete, easing){ - var oldHeight = this.getHeight(); - this.clip(); - this.setHeight(1); - setTimeout(function(){ - var height = parseInt(this.dom.scrollHeight, 10); - if(!animate){ - this.setHeight(height); - this.unclip(); - if(typeof onComplete == "function"){ - onComplete(); - } - }else{ - this.setHeight(oldHeight); - this.setHeight(height, animate, duration, function(){ - this.unclip(); - if(typeof onComplete == "function") onComplete(); - }.createDelegate(this), easing); - } - }.createDelegate(this), 0); - return this; - }, - - - contains : function(el){ - if(!el){return false;} - return D.isAncestor(this.dom, el.dom ? el.dom : el); - }, - - - isVisible : function(deep) { - var vis = !(this.getStyle("visibility") == "hidden" || this.getStyle("display") == "none"); - if(deep !== true || !vis){ - return vis; - } - var p = this.dom.parentNode; - while(p && p.tagName.toLowerCase() != "body"){ - if(!Ext.fly(p, '_isVisible').isVisible()){ - return false; - } - p = p.parentNode; - } - return true; - }, - - - select : function(selector, unique){ - return El.select("#" + Ext.id(this.dom) + " " + selector, unique); - }, - - - query : function(selector, unique){ - return Ext.DomQuery.select("#" + Ext.id(this.dom) + " " + selector); - }, - - - child : function(selector, returnDom){ - var n = Ext.DomQuery.selectNode("#" + Ext.id(this.dom) + " " + selector); - return returnDom ? n : Ext.get(n); - }, - - - down : function(selector, returnDom){ - var n = Ext.DomQuery.selectNode("#" + Ext.id(this.dom) + " > " + selector); - return returnDom ? n : Ext.get(n); - }, - - - initDD : function(group, config, overrides){ - var dd = new Ext.dd.DD(Ext.id(this.dom), group, config); - return Ext.apply(dd, overrides); - }, - - - initDDProxy : function(group, config, overrides){ - var dd = new Ext.dd.DDProxy(Ext.id(this.dom), group, config); - return Ext.apply(dd, overrides); - }, - - - initDDTarget : function(group, config, overrides){ - var dd = new Ext.dd.DDTarget(Ext.id(this.dom), group, config); - return Ext.apply(dd, overrides); - }, - - - setVisible : function(visible, animate){ - if(!animate || !A){ - if(this.visibilityMode == El.DISPLAY){ - this.setDisplayed(visible); - }else{ - this.fixDisplay(); - this.dom.style.visibility = visible ? "visible" : "hidden"; - } - }else{ - - var dom = this.dom; - var visMode = this.visibilityMode; - if(visible){ - this.setOpacity(.01); - this.setVisible(true); - } - this.anim({opacity: { to: (visible?1:0) }}, - this.preanim(arguments, 1), - null, .35, 'easeIn', function(){ - if(!visible){ - if(visMode == El.DISPLAY){ - dom.style.display = "none"; - }else{ - dom.style.visibility = "hidden"; - } - Ext.get(dom).setOpacity(1); - } - }); - } - return this; - }, - - - isDisplayed : function() { - return this.getStyle("display") != "none"; - }, - - - toggle : function(animate){ - this.setVisible(!this.isVisible(), this.preanim(arguments, 0)); - return this; - }, - - - setDisplayed : function(value) { - if(typeof value == "boolean"){ - value = value ? this.originalDisplay : "none"; - } - this.setStyle("display", value); - return this; - }, - - - focus : function() { - try{ - this.dom.focus(); - }catch(e){} - return this; - }, - - - blur : function() { - try{ - this.dom.blur(); - }catch(e){} - return this; - }, - - - addClass : function(className){ - if(className instanceof Array){ - for(var i = 0, len = className.length; i < len; i++) { - this.addClass(className[i]); - } - }else{ - if(className && !this.hasClass(className)){ - this.dom.className = this.dom.className + " " + className; - } - } - return this; - }, - - - radioClass : function(className){ - var siblings = this.dom.parentNode.childNodes; - for(var i = 0; i < siblings.length; i++) { - var s = siblings[i]; - if(s.nodeType == 1){ - Ext.get(s).removeClass(className); - } - } - this.addClass(className); - return this; - }, - - - removeClass : function(className){ - if(!className || !this.dom.className){ - return this; - } - if(className instanceof Array){ - for(var i = 0, len = className.length; i < len; i++) { - this.removeClass(className[i]); - } - }else{ - if(this.hasClass(className)){ - var re = this.classReCache[className]; - if (!re) { - re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)', "g"); - this.classReCache[className] = re; - } - this.dom.className = - this.dom.className.replace(re, " "); - } - } - return this; - }, - - classReCache: {}, - - - toggleClass : function(className){ - if(this.hasClass(className)){ - this.removeClass(className); - }else{ - this.addClass(className); - } - return this; - }, - - - hasClass : function(className){ - return className && (' '+this.dom.className+' ').indexOf(' '+className+' ') != -1; - }, - - - replaceClass : function(oldClassName, newClassName){ - this.removeClass(oldClassName); - this.addClass(newClassName); - return this; - }, - - - getStyles : function(){ - var a = arguments, len = a.length, r = {}; - for(var i = 0; i < len; i++){ - r[a[i]] = this.getStyle(a[i]); - } - return r; - }, - - - getStyle : function(){ - return view && view.getComputedStyle ? - function(prop){ - var el = this.dom, v, cs, camel; - if(prop == 'float'){ - prop = "cssFloat"; - } - if(v = el.style[prop]){ - return v; - } - if(cs = view.getComputedStyle(el, "")){ - if(!(camel = propCache[prop])){ - camel = propCache[prop] = prop.replace(camelRe, camelFn); - } - return cs[camel]; - } - return null; - } : - function(prop){ - var el = this.dom, v, cs, camel; - if(prop == 'opacity'){ - if(typeof el.filter == 'string'){ - var fv = parseFloat(el.filter.match(/alpha\(opacity=(.*)\)/i)[1]); - if(!isNaN(fv)){ - return fv ? fv / 100 : 0; - } - } - return 1; - }else if(prop == 'float'){ - prop = "styleFloat"; - } - if(!(camel = propCache[prop])){ - camel = propCache[prop] = prop.replace(camelRe, camelFn); - } - if(v = el.style[camel]){ - return v; - } - if(cs = el.currentStyle){ - return cs[camel]; - } - return null; - }; - }(), - - - setStyle : function(prop, value){ - if(typeof prop == "string"){ - var camel; - if(!(camel = propCache[prop])){ - camel = propCache[prop] = prop.replace(camelRe, camelFn); - } - if(camel == 'opacity') { - this.setOpacity(value); - }else{ - this.dom.style[camel] = value; - } - }else{ - for(var style in prop){ - if(typeof prop[style] != "function"){ - this.setStyle(style, prop[style]); - } - } - } - return this; - }, - - - applyStyles : function(style){ - Ext.DomHelper.applyStyles(this.dom, style); - return this; - }, - - - getX : function(){ - return D.getX(this.dom); - }, - - - getY : function(){ - return D.getY(this.dom); - }, - - - getXY : function(){ - return D.getXY(this.dom); - }, - - - setX : function(x, animate){ - if(!animate || !A){ - D.setX(this.dom, x); - }else{ - this.setXY([x, this.getY()], this.preanim(arguments, 1)); - } - return this; - }, - - - setY : function(y, animate){ - if(!animate || !A){ - D.setY(this.dom, y); - }else{ - this.setXY([this.getX(), y], this.preanim(arguments, 1)); - } - return this; - }, - - - setLeft : function(left){ - this.setStyle("left", this.addUnits(left)); - return this; - }, - - - setTop : function(top){ - this.setStyle("top", this.addUnits(top)); - return this; - }, - - - setRight : function(right){ - this.setStyle("right", this.addUnits(right)); - return this; - }, - - - setBottom : function(bottom){ - this.setStyle("bottom", this.addUnits(bottom)); - return this; - }, - - - setXY : function(pos, animate){ - if(!animate || !A){ - D.setXY(this.dom, pos); - }else{ - this.anim({points: {to: pos}}, this.preanim(arguments, 1), 'motion'); - } - return this; - }, - - - setLocation : function(x, y, animate){ - this.setXY([x, y], this.preanim(arguments, 2)); - return this; - }, - - - moveTo : function(x, y, animate){ - this.setXY([x, y], this.preanim(arguments, 2)); - return this; - }, - - - getRegion : function(){ - return D.getRegion(this.dom); - }, - - - getHeight : function(contentHeight){ - var h = this.dom.offsetHeight || 0; - return contentHeight !== true ? h : h-this.getBorderWidth("tb")-this.getPadding("tb"); - }, - - - getWidth : function(contentWidth){ - var w = this.dom.offsetWidth || 0; - return contentWidth !== true ? w : w-this.getBorderWidth("lr")-this.getPadding("lr"); - }, - - - getComputedHeight : function(){ - var h = Math.max(this.dom.offsetHeight, this.dom.clientHeight); - if(!h){ - h = parseInt(this.getStyle('height'), 10) || 0; - if(!this.isBorderBox()){ - h += this.getFrameWidth('tb'); - } - } - return h; - }, - - - getComputedWidth : function(){ - var w = Math.max(this.dom.offsetWidth, this.dom.clientWidth); - if(!w){ - w = parseInt(this.getStyle('width'), 10) || 0; - if(!this.isBorderBox()){ - w += this.getFrameWidth('lr'); - } - } - return w; - }, - - - getSize : function(contentSize){ - return {width: this.getWidth(contentSize), height: this.getHeight(contentSize)}; - }, - - getViewSize : function(){ - var d = this.dom, doc = document, aw = 0, ah = 0; - if(d == doc || d == doc.body){ - return {width : D.getViewWidth(), height: D.getViewHeight()}; - }else{ - return { - width : d.clientWidth, - height: d.clientHeight - }; - } - }, - - - getValue : function(asNumber){ - return asNumber ? parseInt(this.dom.value, 10) : this.dom.value; - }, - - - adjustWidth : function(width){ - if(typeof width == "number"){ - if(this.autoBoxAdjust && !this.isBorderBox()){ - width -= (this.getBorderWidth("lr") + this.getPadding("lr")); - } - if(width < 0){ - width = 0; - } - } - return width; - }, - - - adjustHeight : function(height){ - if(typeof height == "number"){ - if(this.autoBoxAdjust && !this.isBorderBox()){ - height -= (this.getBorderWidth("tb") + this.getPadding("tb")); - } - if(height < 0){ - height = 0; - } - } - return height; - }, - - - setWidth : function(width, animate){ - width = this.adjustWidth(width); - if(!animate || !A){ - this.dom.style.width = this.addUnits(width); - }else{ - this.anim({width: {to: width}}, this.preanim(arguments, 1)); - } - return this; - }, - - - setHeight : function(height, animate){ - height = this.adjustHeight(height); - if(!animate || !A){ - this.dom.style.height = this.addUnits(height); - }else{ - this.anim({height: {to: height}}, this.preanim(arguments, 1)); - } - return this; - }, - - - setSize : function(width, height, animate){ - if(typeof width == "object"){ - height = width.height; width = width.width; - } - width = this.adjustWidth(width); height = this.adjustHeight(height); - if(!animate || !A){ - this.dom.style.width = this.addUnits(width); - this.dom.style.height = this.addUnits(height); - }else{ - this.anim({width: {to: width}, height: {to: height}}, this.preanim(arguments, 2)); - } - return this; - }, - - - setBounds : function(x, y, width, height, animate){ - if(!animate || !A){ - this.setSize(width, height); - this.setLocation(x, y); - }else{ - width = this.adjustWidth(width); height = this.adjustHeight(height); - this.anim({points: {to: [x, y]}, width: {to: width}, height: {to: height}}, - this.preanim(arguments, 4), 'motion'); - } - return this; - }, - - - setRegion : function(region, animate){ - this.setBounds(region.left, region.top, region.right-region.left, region.bottom-region.top, this.preanim(arguments, 1)); - return this; - }, - - - addListener : function(eventName, fn, scope, options){ - Ext.EventManager.on(this.dom, eventName, fn, scope || this, options); - }, - - - removeListener : function(eventName, fn){ - Ext.EventManager.removeListener(this.dom, eventName, fn); - return this; - }, - - - removeAllListeners : function(){ - E.purgeElement(this.dom); - return this; - }, - - relayEvent : function(eventName, observable){ - this.on(eventName, function(e){ - observable.fireEvent(eventName, e); - }); - }, - - - setOpacity : function(opacity, animate){ - if(!animate || !A){ - var s = this.dom.style; - if(Ext.isIE){ - s.zoom = 1; - s.filter = (s.filter || '').replace(/alpha\([^\)]*\)/gi,"") + - (opacity == 1 ? "" : "alpha(opacity=" + opacity * 100 + ")"); - }else{ - s.opacity = opacity; - } - }else{ - this.anim({opacity: {to: opacity}}, this.preanim(arguments, 1), null, .35, 'easeIn'); - } - return this; - }, - - - getLeft : function(local){ - if(!local){ - return this.getX(); - }else{ - return parseInt(this.getStyle("left"), 10) || 0; - } - }, - - - getRight : function(local){ - if(!local){ - return this.getX() + this.getWidth(); - }else{ - return (this.getLeft(true) + this.getWidth()) || 0; - } - }, - - - getTop : function(local) { - if(!local){ - return this.getY(); - }else{ - return parseInt(this.getStyle("top"), 10) || 0; - } - }, - - - getBottom : function(local){ - if(!local){ - return this.getY() + this.getHeight(); - }else{ - return (this.getTop(true) + this.getHeight()) || 0; - } - }, - - - position : function(pos, zIndex, x, y){ - if(!pos){ - if(this.getStyle('position') == 'static'){ - this.setStyle('position', 'relative'); - } - }else{ - this.setStyle("position", pos); - } - if(zIndex){ - this.setStyle("z-index", zIndex); - } - if(x !== undefined && y !== undefined){ - this.setXY([x, y]); - }else if(x !== undefined){ - this.setX(x); - }else if(y !== undefined){ - this.setY(y); - } - }, - - - clearPositioning : function(value){ - value = value ||''; - this.setStyle({ - "left": value, - "right": value, - "top": value, - "bottom": value, - "z-index": "", - "position" : "static" - }); - return this; - }, - - - getPositioning : function(){ - var l = this.getStyle("left"); - var t = this.getStyle("top"); - return { - "position" : this.getStyle("position"), - "left" : l, - "right" : l ? "" : this.getStyle("right"), - "top" : t, - "bottom" : t ? "" : this.getStyle("bottom"), - "z-index" : this.getStyle("z-index") - }; - }, - - - getBorderWidth : function(side){ - return this.addStyles(side, El.borders); - }, - - - getPadding : function(side){ - return this.addStyles(side, El.paddings); - }, - - - setPositioning : function(pc){ - this.applyStyles(pc); - if(pc.right == "auto"){ - this.dom.style.right = ""; - } - if(pc.bottom == "auto"){ - this.dom.style.bottom = ""; - } - return this; - }, - - fixDisplay : function(){ - if(this.getStyle("display") == "none"){ - this.setStyle("visibility", "hidden"); - this.setStyle("display", this.originalDisplay); - if(this.getStyle("display") == "none"){ - this.setStyle("display", "block"); - } - } - }, - - - setLeftTop : function(left, top){ - this.dom.style.left = this.addUnits(left); - this.dom.style.top = this.addUnits(top); - return this; - }, - - - move : function(direction, distance, animate){ - var xy = this.getXY(); - direction = direction.toLowerCase(); - switch(direction){ - case "l": - case "left": - this.moveTo(xy[0]-distance, xy[1], this.preanim(arguments, 2)); - break; - case "r": - case "right": - this.moveTo(xy[0]+distance, xy[1], this.preanim(arguments, 2)); - break; - case "t": - case "top": - case "up": - this.moveTo(xy[0], xy[1]-distance, this.preanim(arguments, 2)); - break; - case "b": - case "bottom": - case "down": - this.moveTo(xy[0], xy[1]+distance, this.preanim(arguments, 2)); - break; - } - return this; - }, - - - clip : function(){ - if(!this.isClipped){ - this.isClipped = true; - this.originalClip = { - "o": this.getStyle("overflow"), - "x": this.getStyle("overflow-x"), - "y": this.getStyle("overflow-y") - }; - this.setStyle("overflow", "hidden"); - this.setStyle("overflow-x", "hidden"); - this.setStyle("overflow-y", "hidden"); - } - return this; - }, - - - unclip : function(){ - if(this.isClipped){ - this.isClipped = false; - var o = this.originalClip; - if(o.o){this.setStyle("overflow", o.o);} - if(o.x){this.setStyle("overflow-x", o.x);} - if(o.y){this.setStyle("overflow-y", o.y);} - } - return this; - }, - - - - getAnchorXY : function(anchor, local, s){ - - - - var w, h, vp = false; - if(!s){ - var d = this.dom; - if(d == document.body || d == document){ - vp = true; - w = D.getViewWidth(); h = D.getViewHeight(); - }else{ - w = this.getWidth(); h = this.getHeight(); - } - }else{ - w = s.width; h = s.height; - } - var x = 0, y = 0, r = Math.round; - switch((anchor || "tl").toLowerCase()){ - case "c": - x = r(w*.5); - y = r(h*.5); - break; - case "t": - x = r(w*.5); - y = 0; - break; - case "l": - x = 0; - y = r(h*.5); - break; - case "r": - x = w; - y = r(h*.5); - break; - case "b": - x = r(w*.5); - y = h; - break; - case "tl": - x = 0; - y = 0; - break; - case "bl": - x = 0; - y = h; - break; - case "br": - x = w; - y = h; - break; - case "tr": - x = w; - y = 0; - break; - } - if(local === true){ - return [x, y]; - } - if(vp){ - var sc = this.getScroll(); - return [x + sc.left, y + sc.top]; - } - - var o = this.getXY(); - return [x+o[0], y+o[1]]; - }, - - - getAlignToXY : function(el, p, o){ - el = Ext.get(el), d = this.dom; - if(!el.dom){ - throw "Element.alignTo with an element that doesn't exist"; - } - var c = false; - var p1 = "", p2 = ""; - o = o || [0,0]; - - if(!p){ - p = "tl-bl"; - }else if(p == "?"){ - p = "tl-bl?"; - }else if(p.indexOf("-") == -1){ - p = "tl-" + p; - } - p = p.toLowerCase(); - var m = p.match(/^([a-z]+)-([a-z]+)(\?)?$/); - if(!m){ - throw "Element.alignTo with an invalid alignment " + p; - } - p1 = m[1], p2 = m[2], c = m[3] ? true : false; - - - - var a1 = this.getAnchorXY(p1, true); - var a2 = el.getAnchorXY(p2, false); - var x = a2[0] - a1[0] + o[0]; - var y = a2[1] - a1[1] + o[1]; - if(c){ - - var w = this.getWidth(), h = this.getHeight(), r = el.getRegion(); - - var dw = D.getViewWidth()-5, dh = D.getViewHeight()-5; - - - - - var p1y = p1.charAt(0), p1x = p1.charAt(p1.length-1); - var p2y = p2.charAt(0), p2x = p2.charAt(p2.length-1); - var swapY = ((p1y=="t" && p2y=="b") || (p1y=="b" && p2y=="t")); - var swapX = ((p1x=="r" && p2x=="l") || (p1x=="l" && p2x=="r")); - - var doc = document; - var scrollX = (doc.documentElement.scrollLeft || doc.body.scrollLeft || 0)+5; - var scrollY = (doc.documentElement.scrollTop || doc.body.scrollTop || 0)+5; - - if((x+w) > dw){ - x = swapX ? r.left-w : dw-w; - } - if(x < scrollX){ - x = swapX ? r.right : scrollX; - } - if((y+h) > dh){ - y = swapY ? r.top-h : dh-h; - } - if (y < scrollY){ - y = swapY ? r.bottom : scrollY; - } - } - return [x,y]; - }, - - getConstrainToXY : function(){ - var os = {top:0, left:0, bottom:0, right: 0}; - - return function(el, local, offsets){ - el = Ext.get(el); - offsets = offsets ? Ext.applyIf(offsets, os) : os; - - var vw, vh, vx = 0, vy = 0; - if(el.dom == document.body || el.dom == document){ - vw = Ext.lib.Dom.getViewWidth(); - vh = Ext.lib.Dom.getViewHeight(); - }else{ - vw = el.dom.clientWidth; - vh = el.dom.clientHeight; - if(!local){ - var vxy = el.getXY(); - vx = vxy[0]; - vy = vxy[1]; - } - } - - var s = el.getScroll(); - - vx += offsets.left + s.left; - vy += offsets.top + s.top; - - vw -= offsets.right; - vh -= offsets.bottom; - - var vr = vx+vw; - var vb = vy+vh; - - var xy = !local ? this.getXY() : [this.getLeft(true), this.getTop(true)]; - var x = xy[0], y = xy[1]; - var w = this.dom.offsetWidth, h = this.dom.offsetHeight; - - - var moved = false; - - - if((x + w) > vr){ - x = vr - w; - moved = true; - } - if((y + h) > vb){ - y = vb - h; - moved = true; - } - - if(x < vx){ - x = vx; - moved = true; - } - if(y < vy){ - y = vy; - moved = true; - } - return moved ? [x, y] : false; - }; - }(), - - - alignTo : function(element, position, offsets, animate){ - var xy = this.getAlignToXY(element, position, offsets); - this.setXY(xy, this.preanim(arguments, 3)); - return this; - }, - - - anchorTo : function(el, alignment, offsets, animate, monitorScroll, callback){ - var action = function(){ - this.alignTo(el, alignment, offsets, animate); - Ext.callback(callback, this); - }; - Ext.EventManager.onWindowResize(action, this); - var tm = typeof monitorScroll; - if(tm != 'undefined'){ - Ext.EventManager.on(window, 'scroll', action, this, - {buffer: tm == 'number' ? monitorScroll : 50}); - } - action.call(this); - return this; - }, - - clearOpacity : function(){ - if (window.ActiveXObject) { - this.dom.style.filter = ""; - } else { - this.dom.style.opacity = ""; - this.dom.style["-moz-opacity"] = ""; - this.dom.style["-khtml-opacity"] = ""; - } - return this; - }, - - - hide : function(animate){ - this.setVisible(false, this.preanim(arguments, 0)); - return this; - }, - - - show : function(animate){ - this.setVisible(true, this.preanim(arguments, 0)); - return this; - }, - - - addUnits : function(size){ - return Ext.Element.addUnits(size, this.defaultUnit); - }, - - - beginMeasure : function(){ - var el = this.dom; - if(el.offsetWidth || el.offsetHeight){ - return this; - } - var changed = []; - var p = this.dom, b = document.body; - while((!el.offsetWidth && !el.offsetHeight) && p && p.tagName && p != b){ - var pe = Ext.get(p); - if(pe.getStyle('display') == 'none'){ - changed.push({el: p, visibility: pe.getStyle("visibility")}); - p.style.visibility = "hidden"; - p.style.display = "block"; - } - p = p.parentNode; - } - this._measureChanged = changed; - return this; - - }, - - - endMeasure : function(){ - var changed = this._measureChanged; - if(changed){ - for(var i = 0, len = changed.length; i < len; i++) { - var r = changed[i]; - r.el.style.visibility = r.visibility; - r.el.style.display = "none"; - } - this._measureChanged = null; - } - return this; - }, - - - update : function(html, loadScripts, callback){ - if(typeof html == "undefined"){ - html = ""; - } - if(loadScripts !== true){ - this.dom.innerHTML = html; - if(typeof callback == "function"){ - callback(); - } - return this; - } - var id = Ext.id(); - var dom = this.dom; - - html += ''; - - E.onAvailable(id, function(){ - var hd = document.getElementsByTagName("head")[0]; - var re = /(?:]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig; - var srcRe = /\ssrc=([\'\"])(.*?)\1/i; - var typeRe = /\stype=([\'\"])(.*?)\1/i; - - var match; - while(match = re.exec(html)){ - var attrs = match[1]; - var srcMatch = attrs ? attrs.match(srcRe) : false; - if(srcMatch && srcMatch[2]){ - var s = document.createElement("script"); - s.src = srcMatch[2]; - var typeMatch = attrs.match(typeRe); - if(typeMatch && typeMatch[2]){ - s.type = typeMatch[2]; - } - hd.appendChild(s); - }else if(match[2] && match[2].length > 0){ - eval(match[2]); - } - } - var el = document.getElementById(id); - if(el){el.parentNode.removeChild(el);} - if(typeof callback == "function"){ - callback(); - } - }); - dom.innerHTML = html.replace(/(?:)((\n|\r|.)*?)(?:<\/script>)/ig, ""); - return this; - }, - - - load : function(){ - var um = this.getUpdateManager(); - um.update.apply(um, arguments); - return this; - }, - - - getUpdateManager : function(){ - if(!this.updateManager){ - this.updateManager = new Ext.UpdateManager(this); - } - return this.updateManager; - }, - - - unselectable : function(){ - this.dom.unselectable = "on"; - this.swallowEvent("selectstart", true); - this.applyStyles("-moz-user-select:none;-khtml-user-select:none;"); - this.addClass("x-unselectable"); - return this; - }, - - - getCenterXY : function(){ - return this.getAlignToXY(document, 'c-c'); - }, - - - center : function(centerIn){ - this.alignTo(centerIn || document, 'c-c'); - return this; - }, - - - isBorderBox : function(){ - return noBoxAdjust[this.dom.tagName.toLowerCase()] || Ext.isBorderBox; - }, - - - getBox : function(contentBox, local){ - var xy; - if(!local){ - xy = this.getXY(); - }else{ - var left = parseInt(this.getStyle("left"), 10) || 0; - var top = parseInt(this.getStyle("top"), 10) || 0; - xy = [left, top]; - } - var el = this.dom, w = el.offsetWidth, h = el.offsetHeight, bx; - if(!contentBox){ - bx = {x: xy[0], y: xy[1], 0: xy[0], 1: xy[1], width: w, height: h}; - }else{ - var l = this.getBorderWidth("l")+this.getPadding("l"); - var r = this.getBorderWidth("r")+this.getPadding("r"); - var t = this.getBorderWidth("t")+this.getPadding("t"); - var b = this.getBorderWidth("b")+this.getPadding("b"); - bx = {x: xy[0]+l, y: xy[1]+t, 0: xy[0]+l, 1: xy[1]+t, width: w-(l+r), height: h-(t+b)}; - } - bx.right = bx.x + bx.width; - bx.bottom = bx.y + bx.height; - return bx; - }, - - - getFrameWidth : function(sides){ - return this.getPadding(sides) + this.getBorderWidth(sides); - }, - - - setBox : function(box, adjust, animate){ - var w = box.width, h = box.height; - if((adjust && !this.autoBoxAdjust) && !this.isBorderBox()){ - w -= (this.getBorderWidth("lr") + this.getPadding("lr")); - h -= (this.getBorderWidth("tb") + this.getPadding("tb")); - } - this.setBounds(box.x, box.y, w, h, this.preanim(arguments, 2)); - return this; - }, - - - repaint : function(){ - var dom = this.dom; - this.addClass("x-repaint"); - setTimeout(function(){ - Ext.get(dom).removeClass("x-repaint"); - }, 1); - return this; - }, - - - getMargins : function(side){ - if(!side){ - return { - top: parseInt(this.getStyle("margin-top"), 10) || 0, - left: parseInt(this.getStyle("margin-left"), 10) || 0, - bottom: parseInt(this.getStyle("margin-bottom"), 10) || 0, - right: parseInt(this.getStyle("margin-right"), 10) || 0 - }; - }else{ - return this.addStyles(side, El.margins); - } - }, - - addStyles : function(sides, styles){ - var val = 0; - for(var i = 0, len = sides.length; i < len; i++){ - var w = parseInt(this.getStyle(styles[sides.charAt(i)]), 10); - if(!isNaN(w)) val += w; - } - return val; - }, - - - createProxy : function(config, renderTo, matchBox){ - if(renderTo){ - renderTo = Ext.getDom(renderTo); - }else{ - renderTo = document.body; - } - config = typeof config == "object" ? - config : {tag : "div", cls: config}; - var proxy = Ext.DomHelper.append(renderTo, config, true); - if(matchBox){ - proxy.setBox(this.getBox()); - } - return proxy; - }, - - - mask : function(msg, msgCls){ - if(this.getStyle("position") == "static"){ - this.setStyle("position", "relative"); - } - if(!this._mask){ - this._mask = Ext.DomHelper.append(this.dom, {tag:"div", cls:"ext-el-mask"}, true); - } - this.addClass("x-masked"); - this._mask.setDisplayed(true); - if(typeof msg == 'string'){ - if(!this._maskMsg){ - this._maskMsg = Ext.DomHelper.append(this.dom, {tag:"div", cls:"ext-el-mask-msg", cn:{tag:'div'}}, true); - } - var mm = this._maskMsg; - mm.dom.className = msgCls ? "ext-el-mask-msg " + msgCls : "ext-el-mask-msg"; - mm.dom.firstChild.innerHTML = msg; - mm.setDisplayed(true); - mm.center(this); - } - return this._mask; - }, - - - unmask : function(removeEl){ - if(this._mask){ - if(removeEl === true){ - this._mask.remove(); - delete this._mask; - if(this._maskMsg){ - this._maskMsg.remove(); - delete this._maskMsg; - } - }else{ - this._mask.setDisplayed(false); - if(this._maskMsg){ - this._maskMsg.setDisplayed(false); - } - } - } - this.removeClass("x-masked"); - }, - - - isMasked : function(){ - return this._mask && this._mask.isVisible(); - }, - - - createShim : function(){ - var el = document.createElement('iframe'); - el.frameBorder = 'no'; - el.className = 'ext-shim'; - if(Ext.isIE && Ext.isSecure){ - el.src = Ext.SSL_SECURE_URL; - } - var shim = Ext.get(this.dom.parentNode.insertBefore(el, this.dom)); - shim.autoBoxAdjust = false; - return shim; - }, - - - remove : function(){ - if(this.dom.parentNode){ - this.dom.parentNode.removeChild(this.dom); - } - delete El.cache[this.dom.id]; - }, - - - addClassOnOver : function(className, preventFlicker){ - this.on("mouseover", function(){ - Ext.fly(this, '_internal').addClass(className); - }, this.dom); - var removeFn = function(e){ - if(preventFlicker !== true || !e.within(this, true)){ - Ext.fly(this, '_internal').removeClass(className); - } - }; - this.on("mouseout", removeFn, this.dom); - return this; - }, - - - addClassOnFocus : function(className){ - this.on("focus", function(){ - Ext.fly(this, '_internal').addClass(className); - }, this.dom); - this.on("blur", function(){ - Ext.fly(this, '_internal').removeClass(className); - }, this.dom); - return this; - }, - - addClassOnClick : function(className){ - var dom = this.dom; - this.on("mousedown", function(){ - Ext.fly(dom, '_internal').addClass(className); - var d = Ext.get(document); - var fn = function(){ - Ext.fly(dom, '_internal').removeClass(className); - d.removeListener("mouseup", fn); - }; - d.on("mouseup", fn); - }); - return this; - }, - - - swallowEvent : function(eventName, preventDefault){ - var fn = function(e){ - e.stopPropagation(); - if(preventDefault){ - e.preventDefault(); - } - }; - if(eventName instanceof Array){ - for(var i = 0, len = eventName.length; i < len; i++){ - this.on(eventName[i], fn); - } - return this; - } - this.on(eventName, fn); - return this; - }, - - - fitToParent : function(monitorResize, targetParent){ - var p = Ext.get(targetParent || this.dom.parentNode); - this.setSize(p.getComputedWidth()-p.getFrameWidth('lr'), p.getComputedHeight()-p.getFrameWidth('tb')); - if(monitorResize === true){ - Ext.EventManager.onWindowResize(this.fitToParent.createDelegate(this, [])); - } - return this; - }, - - - getNextSibling : function(){ - var n = this.dom.nextSibling; - while(n && n.nodeType != 1){ - n = n.nextSibling; - } - return n; - }, - - - getPrevSibling : function(){ - var n = this.dom.previousSibling; - while(n && n.nodeType != 1){ - n = n.previousSibling; - } - return n; - }, - - - - appendChild: function(el){ - el = Ext.get(el); - el.appendTo(this); - return this; - }, - - - createChild: function(config, insertBefore, returnDom){ - config = config || {tag:'div'}; - if(insertBefore){ - return Ext.DomHelper.insertBefore(insertBefore, config, returnDom !== true); - } - return Ext.DomHelper[!this.dom.firstChild ? 'overwrite' : 'append'](this.dom, config, returnDom !== true); - }, - - - appendTo: function(el){ - el = Ext.getDom(el); - el.appendChild(this.dom); - return this; - }, - - - insertBefore: function(el){ - el = Ext.getDom(el); - el.parentNode.insertBefore(this.dom, el); - return this; - }, - - - insertAfter: function(el){ - el = Ext.getDom(el); - el.parentNode.insertBefore(this.dom, el.nextSibling); - return this; - }, - - - insertFirst: function(el, returnDom){ - el = el || {}; - if(typeof el == 'object' && !el.nodeType){ - return this.createChild(el, this.dom.firstChild, returnDom); - }else{ - el = Ext.getDom(el); - this.dom.insertBefore(el, this.dom.firstChild); - return !returnDom ? Ext.get(el) : el; - } - }, - - - insertSibling: function(el, where, returnDom){ - where = where ? where.toLowerCase() : 'before'; - el = el || {}; - var rt, refNode = where == 'before' ? this.dom : this.dom.nextSibling; - - if(typeof el == 'object' && !el.nodeType){ - if(where == 'after' && !this.dom.nextSibling){ - rt = Ext.DomHelper.append(this.dom.parentNode, el, !returnDom); - }else{ - rt = Ext.DomHelper[where == 'after' ? 'insertAfter' : 'insertBefore'](this.dom, el, !returnDom); - } - - }else{ - rt = this.dom.parentNode.insertBefore(Ext.getDom(el), - where == 'before' ? this.dom : this.dom.nextSibling); - if(!returnDom){ - rt = Ext.get(rt); - } - } - return rt; - }, - - - wrap: function(config, returnDom){ - if(!config){ - config = {tag: "div"}; - } - var newEl = Ext.DomHelper.insertBefore(this.dom, config, !returnDom); - newEl.dom ? newEl.dom.appendChild(this.dom) : newEl.appendChild(this.dom); - return newEl; - }, - - - replace: function(el){ - el = Ext.get(el); - this.insertBefore(el); - el.remove(); - return this; - }, - - - insertHtml : function(where, html){ - return Ext.DomHelper.insertHtml(where, this.dom, html); - }, - - - set : function(o, useSet){ - var el = this.dom; - useSet = typeof useSet == 'undefined' ? (el.setAttribute ? true : false) : useSet; - for(var attr in o){ - if(attr == "style" || typeof o[attr] == "function") continue; - if(attr=="cls"){ - el.className = o["cls"]; - }else{ - if(useSet) el.setAttribute(attr, o[attr]); - else el[attr] = o[attr]; - } - } - Ext.DomHelper.applyStyles(el, o.style); - return this; - }, - - - addKeyListener : function(key, fn, scope){ - var config; - if(typeof key != "object" || key instanceof Array){ - config = { - key: key, - fn: fn, - scope: scope - }; - }else{ - config = { - key : key.key, - shift : key.shift, - ctrl : key.ctrl, - alt : key.alt, - fn: fn, - scope: scope - }; - } - return new Ext.KeyMap(this, config); - }, - - - addKeyMap : function(config){ - return new Ext.KeyMap(this, config); - }, - - - isScrollable : function(){ - var dom = this.dom; - return dom.scrollHeight > dom.clientHeight || dom.scrollWidth > dom.clientWidth; - }, - - - - scrollTo : function(side, value, animate){ - var prop = side.toLowerCase() == "left" ? "scrollLeft" : "scrollTop"; - if(!animate || !A){ - this.dom[prop] = value; - }else{ - var to = prop == "scrollLeft" ? [value, this.dom.scrollTop] : [this.dom.scrollLeft, value]; - this.anim({scroll: {"to": to}}, this.preanim(arguments, 2), 'scroll'); - } - return this; - }, - - - scroll : function(direction, distance, animate){ - if(!this.isScrollable()){ - return; - } - var el = this.dom; - var l = el.scrollLeft, t = el.scrollTop; - var w = el.scrollWidth, h = el.scrollHeight; - var cw = el.clientWidth, ch = el.clientHeight; - direction = direction.toLowerCase(); - var scrolled = false; - var a = this.preanim(arguments, 2); - switch(direction){ - case "l": - case "left": - if(w - l > cw){ - var v = Math.min(l + distance, w-cw); - this.scrollTo("left", v, a); - scrolled = true; - } - break; - case "r": - case "right": - if(l > 0){ - var v = Math.max(l - distance, 0); - this.scrollTo("left", v, a); - scrolled = true; - } - break; - case "t": - case "top": - case "up": - if(t > 0){ - var v = Math.max(t - distance, 0); - this.scrollTo("top", v, a); - scrolled = true; - } - break; - case "b": - case "bottom": - case "down": - if(h - t > ch){ - var v = Math.min(t + distance, h-ch); - this.scrollTo("top", v, a); - scrolled = true; - } - break; - } - return scrolled; - }, - - - translatePoints : function(x, y){ - if(typeof x == 'object' || x instanceof Array){ - y = x[1]; x = x[0]; - } - var p = this.getStyle('position'); - var o = this.getXY(); - - var l = parseInt(this.getStyle('left'), 10); - var t = parseInt(this.getStyle('top'), 10); - - if(isNaN(l)){ - l = (p == "relative") ? 0 : this.dom.offsetLeft; - } - if(isNaN(t)){ - t = (p == "relative") ? 0 : this.dom.offsetTop; - } - - return {left: (x - o[0] + l), top: (y - o[1] + t)}; - }, - - getScroll : function(){ - var d = this.dom, doc = document; - if(d == doc || d == doc.body){ - var l = window.pageXOffset || doc.documentElement.scrollLeft || doc.body.scrollLeft || 0; - var t = window.pageYOffset || doc.documentElement.scrollTop || doc.body.scrollTop || 0; - return {left: l, top: t}; - }else{ - return {left: d.scrollLeft, top: d.scrollTop}; - } - }, - - - getColor : function(attr, defaultValue, prefix){ - var v = this.getStyle(attr); - if(!v || v == "transparent" || v == "inherit") { - return defaultValue; - } - var color = typeof prefix == "undefined" ? "#" : prefix; - if(v.substr(0, 4) == "rgb("){ - var rvs = v.slice(4, v.length -1).split(","); - for(var i = 0; i < 3; i++){ - var h = parseInt(rvs[i]).toString(16); - if(h < 16){ - h = "0" + h; - } - color += h; - } - } else { - if(v.substr(0, 1) == "#"){ - if(v.length == 4) { - for(var i = 1; i < 4; i++){ - var c = v.charAt(i); - color += c + c; - } - }else if(v.length == 7){ - color += v.substr(1); - } - } - } - return(color.length > 5 ? color.toLowerCase() : defaultValue); - }, - - boxWrap : function(cls){ - cls = cls || 'x-box'; - var el = Ext.get(this.insertHtml('beforeBegin', String.format('
    '+El.boxMarkup+'
    ', cls))); - el.child('.'+cls+'-mc').dom.appendChild(this.dom); - return el; - }, - - getAttributeNS : Ext.isIE ? function(ns, name){ - var d = this.dom; - var type = typeof d[ns+":"+name]; - if(type != 'undefined' && type != 'unknown'){ - return d[ns+":"+name]; - } - return d[name]; - } : function(ns, name){ - var d = this.dom; - return d.getAttributeNS(ns, name) || d.getAttribute(ns+":"+name) || d.getAttribute(name) || d[name]; - } -}; - -var ep = El.prototype; - - -ep.on = ep.addListener; - -ep.mon = ep.addListener; - - -ep.un = ep.removeListener; - - -ep.autoBoxAdjust = true; - -ep.autoDisplayMode = true; - -El.unitPattern = /\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i; - -El.addUnits = function(v, defaultUnit){ - if(v === "" || v == "auto"){ - return v; - } - if(v === undefined){ - return ''; - } - if(typeof v == "number" || !El.unitPattern.test(v)){ - return v + (defaultUnit || 'px'); - } - return v; -}; - - -El.boxMarkup = '
    '; - -El.VISIBILITY = 1; - -El.DISPLAY = 2; - -El.borders = {l: "border-left-width", r: "border-right-width", t: "border-top-width", b: "border-bottom-width"}; -El.paddings = {l: "padding-left", r: "padding-right", t: "padding-top", b: "padding-bottom"}; -El.margins = {l: "margin-left", r: "margin-right", t: "margin-top", b: "margin-bottom"}; - - - - -El.cache = {}; - -var docEl; - - -El.get = function(el){ - var ex, elm, id; - if(!el){ return null; } - if(typeof el == "string"){ - if(!(elm = document.getElementById(el))){ - return null; - } - if(ex = El.cache[el]){ - ex.dom = elm; - }else{ - ex = El.cache[el] = new El(elm); - } - return ex; - }else if(el.tagName){ - if(!(id = el.id)){ - id = Ext.id(el); - } - if(ex = El.cache[id]){ - ex.dom = el; - }else{ - ex = El.cache[id] = new El(el); - } - return ex; - }else if(el instanceof El){ - if(el != docEl){ - el.dom = document.getElementById(el.id) || el.dom; - - El.cache[el.id] = el; - } - return el; - }else if(el.isComposite){ - return el; - }else if(el instanceof Array){ - return El.select(el); - }else if(el == document){ - - if(!docEl){ - var f = function(){}; - f.prototype = El.prototype; - docEl = new f(); - docEl.dom = document; - } - return docEl; - } - return null; -}; - -El.uncache = function(el){ - for(var i = 0, a = arguments, len = a.length; i < len; i++) { - if(a[i]){ - delete El.cache[a[i].id || a[i]]; - } - } -}; - - -El.Flyweight = function(dom){ - this.dom = dom; -}; -El.Flyweight.prototype = El.prototype; - -El._flyweights = {}; - -El.fly = function(el, named){ - named = named || '_global'; - el = Ext.getDom(el); - if(!el){ - return null; - } - if(!El._flyweights[named]){ - El._flyweights[named] = new El.Flyweight(); - } - El._flyweights[named].dom = el; - return El._flyweights[named]; -}; - - -Ext.get = El.get; - -Ext.fly = El.fly; - - -var noBoxAdjust = Ext.isStrict ? { - select:1 -} : { - input:1, select:1, textarea:1 -}; -if(Ext.isIE || Ext.isGecko){ - noBoxAdjust['button'] = 1; -} - - -Ext.EventManager.on(window, 'unload', function(){ - delete El.cache; - delete El._flyweights; -}); -})(); - - - -Ext.enableFx = true; - - -Ext.Fx = { - - slideIn : function(anchor, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - - anchor = anchor || "t"; - - this.fixDisplay(); - - var r = this.getFxRestore(); - var b = this.getBox(); - this.setSize(b); - - var wrap = this.fxWrap(r.pos, o, "hidden"); - - var st = this.dom.style; - st.visibility = "visible"; - st.position = "absolute"; - - var after = function(){ - el.fxUnwrap(wrap, r.pos, o); - st.width = r.width; - st.height = r.height; - el.afterFx(o); - }; - var a, pt = {to: [b.x, b.y]}, bw = {to: b.width}, bh = {to: b.height}; - - switch(anchor.toLowerCase()){ - case "t": - wrap.setSize(b.width, 0); - st.left = st.bottom = "0"; - a = {height: bh}; - break; - case "l": - wrap.setSize(0, b.height); - st.right = st.top = "0"; - a = {width: bw}; - break; - case "r": - wrap.setSize(0, b.height); - wrap.setX(b.right); - st.left = st.top = "0"; - a = {width: bw, points: pt}; - break; - case "b": - wrap.setSize(b.width, 0); - wrap.setY(b.bottom); - st.left = st.top = "0"; - a = {height: bh, points: pt}; - break; - case "tl": - wrap.setSize(0, 0); - st.right = st.bottom = "0"; - a = {width: bw, height: bh}; - break; - case "bl": - wrap.setSize(0, 0); - wrap.setY(b.y+b.height); - st.right = st.top = "0"; - a = {width: bw, height: bh, points: pt}; - break; - case "br": - wrap.setSize(0, 0); - wrap.setXY([b.right, b.bottom]); - st.left = st.top = "0"; - a = {width: bw, height: bh, points: pt}; - break; - case "tr": - wrap.setSize(0, 0); - wrap.setX(b.x+b.width); - st.left = st.bottom = "0"; - a = {width: bw, height: bh, points: pt}; - break; - } - this.dom.style.visibility = "visible"; - wrap.show(); - - arguments.callee.anim = wrap.fxanim(a, - o, - 'motion', - .5, - 'easeOut', after); - }); - return this; - }, - - - slideOut : function(anchor, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - - anchor = anchor || "t"; - - var r = this.getFxRestore(); - - var b = this.getBox(); - this.setSize(b); - - var wrap = this.fxWrap(r.pos, o, "visible"); - - var st = this.dom.style; - st.visibility = "visible"; - st.position = "absolute"; - - wrap.setSize(b); - - var after = function(){ - if(o.useDisplay){ - el.setDisplayed(false); - }else{ - el.hide(); - } - - el.fxUnwrap(wrap, r.pos, o); - - st.width = r.width; - st.height = r.height; - - el.afterFx(o); - }; - - var a, zero = {to: 0}; - switch(anchor.toLowerCase()){ - case "t": - st.left = st.bottom = "0"; - a = {height: zero}; - break; - case "l": - st.right = st.top = "0"; - a = {width: zero}; - break; - case "r": - st.left = st.top = "0"; - a = {width: zero, points: {to:[b.right, b.y]}}; - break; - case "b": - st.left = st.top = "0"; - a = {height: zero, points: {to:[b.x, b.bottom]}}; - break; - case "tl": - st.right = st.bottom = "0"; - a = {width: zero, height: zero}; - break; - case "bl": - st.right = st.top = "0"; - a = {width: zero, height: zero, points: {to:[b.x, b.bottom]}}; - break; - case "br": - st.left = st.top = "0"; - a = {width: zero, height: zero, points: {to:[b.x+b.width, b.bottom]}}; - break; - case "tr": - st.left = st.bottom = "0"; - a = {width: zero, height: zero, points: {to:[b.right, b.y]}}; - break; - } - - arguments.callee.anim = wrap.fxanim(a, - o, - 'motion', - .5, - "easeOut", after); - }); - return this; - }, - - - puff : function(o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - this.clearOpacity(); - this.show(); - - var r = this.getFxRestore(); - var st = this.dom.style; - - var after = function(){ - if(o.useDisplay){ - el.setDisplayed(false); - }else{ - el.hide(); - } - - el.clearOpacity(); - - el.setPositioning(r.pos); - st.width = r.width; - st.height = r.height; - st.fontSize = ''; - el.afterFx(o); - }; - - var width = this.getWidth(); - var height = this.getHeight(); - - arguments.callee.anim = this.fxanim({ - width : {to: this.adjustWidth(width * 2)}, - height : {to: this.adjustHeight(height * 2)}, - points : {by: [-(width * .5), -(height * .5)]}, - opacity : {to: 0}, - fontSize: {to:200, unit: "%"} - }, - o, - 'motion', - .5, - "easeOut", after); - }); - return this; - }, - - - switchOff : function(o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - this.clearOpacity(); - this.clip(); - - var r = this.getFxRestore(); - var st = this.dom.style; - - var after = function(){ - if(o.useDisplay){ - el.setDisplayed(false); - }else{ - el.hide(); - } - - el.clearOpacity(); - el.setPositioning(r.pos); - st.width = r.width; - st.height = r.height; - - el.afterFx(o); - }; - - this.fxanim({opacity:{to:0.3}}, null, null, .1, null, function(){ - this.clearOpacity(); - (function(){ - this.fxanim({ - height:{to:1}, - points:{by:[0, this.getHeight() * .5]} - }, o, 'motion', 0.3, 'easeIn', after); - }).defer(100, this); - }); - }); - return this; - }, - - - highlight : function(color, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - color = color || "ffff9c"; - attr = o.attr || "backgroundColor"; - - this.clearOpacity(); - this.show(); - - var origColor = this.getColor(attr); - var restoreColor = this.dom.style[attr]; - endColor = (o.endColor || origColor) || "ffffff"; - - var after = function(){ - el.dom.style[attr] = restoreColor; - el.afterFx(o); - }; - - var a = {}; - a[attr] = {from: color, to: endColor}; - arguments.callee.anim = this.fxanim(a, - o, - 'color', - 1, - 'easeIn', after); - }); - return this; - }, - - - frame : function(color, count, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - color = color || "#C3DAF9"; - if(color.length == 6){ - color = "#" + color; - } - count = count || 1; - duration = o.duration || 1; - this.show(); - - var b = this.getBox(); - var animFn = function(){ - var proxy = this.createProxy({ - tag:"div", - style:{ - visbility:"hidden", - position:"absolute", - "z-index":"35000", border:"0px solid " + color - } - }); - var scale = Ext.isBorderBox ? 2 : 1; - proxy.animate({ - top:{from:b.y, to:b.y - 20}, - left:{from:b.x, to:b.x - 20}, - borderWidth:{from:0, to:10}, - opacity:{from:1, to:0}, - height:{from:b.height, to:(b.height + (20*scale))}, - width:{from:b.width, to:(b.width + (20*scale))} - }, duration, function(){ - proxy.remove(); - }); - if(--count > 0){ - animFn.defer((duration/2)*1000, this); - }else{ - el.afterFx(o); - } - }; - animFn.call(this); - }); - return this; - }, - - - pause : function(seconds){ - var el = this.getFxEl(); - var o = {}; - - el.queueFx(o, function(){ - setTimeout(function(){ - el.afterFx(o); - }, seconds * 1000); - }); - return this; - }, - - - fadeIn : function(o){ - var el = this.getFxEl(); - o = o || {}; - el.queueFx(o, function(){ - this.setOpacity(0); - this.fixDisplay(); - this.dom.style.visibility = 'visible'; - var to = o.endOpacity || 1; - arguments.callee.anim = this.fxanim({opacity:{to:to}}, - o, null, .5, "easeOut", function(){ - if(to == 1){ - this.clearOpacity(); - } - el.afterFx(o); - }); - }); - return this; - }, - - - fadeOut : function(o){ - var el = this.getFxEl(); - o = o || {}; - el.queueFx(o, function(){ - arguments.callee.anim = this.fxanim({opacity:{to:o.endOpacity || 0}}, - o, null, .5, "easeOut", function(){ - if(this.visibilityMode == Ext.Element.DISPLAY || o.useDisplay){ - this.dom.style.display = "none"; - }else{ - this.dom.style.visibility = "hidden"; - } - this.clearOpacity(); - el.afterFx(o); - }); - }); - return this; - }, - - - scale : function(w, h, o){ - this.shift(Ext.apply({}, o, { - width: w, - height: h - })); - return this; - }, - - - shift : function(o){ - var el = this.getFxEl(); - o = o || {}; - el.queueFx(o, function(){ - var a = {}, w = o.width, h = o.height, x = o.x, y = o.y, op = o.opacity; - if(w !== undefined){ - a.width = {to: this.adjustWidth(w)}; - } - if(h !== undefined){ - a.height = {to: this.adjustHeight(h)}; - } - if(x !== undefined || y !== undefined){ - a.points = {to: [ - x !== undefined ? x : this.getX(), - y !== undefined ? y : this.getY() - ]}; - } - if(op !== undefined){ - a.opacity = {to: op}; - } - if(o.xy !== undefined){ - a.points = {to: o.xy}; - } - arguments.callee.anim = this.fxanim(a, - o, 'motion', .35, "easeOut", function(){ - el.afterFx(o); - }); - }); - return this; - }, - - - ghost : function(anchor, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - anchor = anchor || "b"; - - var r = this.getFxRestore(); - var w = this.getWidth(), - h = this.getHeight(); - - var st = this.dom.style; - - var after = function(){ - if(o.useDisplay){ - el.setDisplayed(false); - }else{ - el.hide(); - } - - el.clearOpacity(); - el.setPositioning(r.pos); - st.width = r.width; - st.height = r.height; - - el.afterFx(o); - }; - - var a = {opacity: {to: 0}, points: {}}, pt = a.points; - switch(anchor.toLowerCase()){ - case "t": - pt.by = [0, -h]; - break; - case "l": - pt.by = [-w, 0]; - break; - case "r": - pt.by = [w, 0]; - break; - case "b": - pt.by = [0, h]; - break; - case "tl": - pt.by = [-w, -h]; - break; - case "bl": - pt.by = [-w, h]; - break; - case "br": - pt.by = [w, h]; - break; - case "tr": - pt.by = [w, -h]; - break; - } - - arguments.callee.anim = this.fxanim(a, - o, - 'motion', - .5, - "easeOut", after); - }); - return this; - }, - - - syncFx : function(){ - this.fxDefaults = Ext.apply(this.fxDefaults || {}, { - block : false, - concurrent : true, - stopFx : false - }); - return this; - }, - - - sequenceFx : function(){ - this.fxDefaults = Ext.apply(this.fxDefaults || {}, { - block : false, - concurrent : false, - stopFx : false - }); - return this; - }, - - - nextFx : function(){ - var ef = this.fxQueue[0]; - if(ef){ - ef.call(this); - } - }, - - - hasActiveFx : function(){ - return this.fxQueue && this.fxQueue[0]; - }, - - - stopFx : function(){ - if(this.hasActiveFx()){ - var cur = this.fxQueue[0]; - if(cur && cur.anim && cur.anim.isAnimated()){ - this.fxQueue = [cur]; cur.anim.stop(true); - } - } - return this; - }, - - - beforeFx : function(o){ - if(this.hasActiveFx() && !o.concurrent){ - if(o.stopFx){ - this.stopFx(); - return true; - } - return false; - } - return true; - }, - - - hasFxBlock : function(){ - var q = this.fxQueue; - return q && q[0] && q[0].block; - }, - - - queueFx : function(o, fn){ - if(!this.fxQueue){ - this.fxQueue = []; - } - if(!this.hasFxBlock()){ - Ext.applyIf(o, this.fxDefaults); - if(!o.concurrent){ - var run = this.beforeFx(o); - fn.block = o.block; - this.fxQueue.push(fn); - if(run){ - this.nextFx(); - } - }else{ - fn.call(this); - } - } - return this; - }, - - - fxWrap : function(pos, o, vis){ - var wrap; - if(!o.wrap || !(wrap = Ext.get(o.wrap))){ - var wrapXY; - if(o.fixPosition){ - wrapXY = this.getXY(); - } - var div = document.createElement("div"); - div.style.visibility = vis; - wrap = Ext.get(this.dom.parentNode.insertBefore(div, this.dom)); - wrap.setPositioning(pos); - if(wrap.getStyle("position") == "static"){ - wrap.position("relative"); - } - this.clearPositioning('auto'); - wrap.clip(); - wrap.dom.appendChild(this.dom); - if(wrapXY){ - wrap.setXY(wrapXY); - } - } - return wrap; - }, - - - fxUnwrap : function(wrap, pos, o){ - this.clearPositioning(); - this.setPositioning(pos); - if(!o.wrap){ - wrap.dom.parentNode.insertBefore(this.dom, wrap.dom); - wrap.remove(); - } - }, - - - getFxRestore : function(){ - var st = this.dom.style; - return {pos: this.getPositioning(), width: st.width, height : st.height}; - }, - - - afterFx : function(o){ - if(o.afterStyle){ - this.applyStyles(o.afterStyle); - } - if(o.afterCls){ - this.addClass(o.afterCls); - } - if(o.remove === true){ - this.remove(); - } - Ext.callback(o.callback, o.scope, [this]); - if(!o.concurrent){ - this.fxQueue.shift(); - this.nextFx(); - } - }, - - - getFxEl : function(){ return Ext.get(this.dom); - }, - - - fxanim : function(args, opt, animType, defaultDur, defaultEase, cb){ - animType = animType || 'run'; - opt = opt || {}; - var anim = Ext.lib.Anim[animType]( - this.dom, args, - (opt.duration || defaultDur) || .35, - (opt.easing || defaultEase) || 'easeOut', - function(){ - Ext.callback(cb, this); - }, - this - ); - opt.anim = anim; - return anim; - } -}; - -Ext.Fx.resize = Ext.Fx.scale; - -Ext.apply(Ext.Element.prototype, Ext.Fx); - - -Ext.CompositeElement = function(els){ - this.elements = []; - this.addElements(els); -}; -Ext.CompositeElement.prototype = { - isComposite: true, - addElements : function(els){ - if(!els) return this; - if(typeof els == "string"){ - els = Ext.Element.selectorFunction(els); - } - var yels = this.elements; - var index = yels.length-1; - for(var i = 0, len = els.length; i < len; i++) { - yels[++index] = Ext.get(els[i], true); - } - return this; - }, - invoke : function(fn, args){ - var els = this.elements; - for(var i = 0, len = els.length; i < len; i++) { - Ext.Element.prototype[fn].apply(els[i], args); - } - return this; - }, - - add : function(els){ - if(typeof els == "string"){ - this.addElements(Ext.Element.selectorFunction(els)); - }else if(els.length !== undefined){ - this.addElements(els); - }else{ - this.addElements([els]); - } - return this; - }, - - each : function(fn, scope){ - var els = this.elements; - for(var i = 0, len = els.length; i < len; i++){ - if(fn.call(scope || els[i], els[i], this, i) === false) { - break; - } - } - return this; - }, - - - item : function(index){ - return this.elements[index]; - } -}; -(function(){ -Ext.CompositeElement.createCall = function(proto, fnName){ - if(!proto[fnName]){ - proto[fnName] = function(){ - return this.invoke(fnName, arguments); - }; - } -}; -for(var fnName in Ext.Element.prototype){ - if(typeof Ext.Element.prototype[fnName] == "function"){ - Ext.CompositeElement.createCall(Ext.CompositeElement.prototype, fnName); - } -}; -})(); - - -Ext.CompositeElementLite = function(els){ - Ext.CompositeElementLite.superclass.constructor.call(this, els); - var flyEl = function(){}; - flyEl.prototype = Ext.Element.prototype; - this.el = new Ext.Element.Flyweight(); -}; -Ext.extend(Ext.CompositeElementLite, Ext.CompositeElement, { - addElements : function(els){ - if(els){ - if(els instanceof Array){ - this.elements = this.elements.concat(els); - }else{ - var yels = this.elements; - var index = yels.length-1; - for(var i = 0, len = els.length; i < len; i++) { - yels[++index] = els[i]; - } - } - } - return this; - }, - invoke : function(fn, args){ - var els = this.elements; - var el = this.el; - for(var i = 0, len = els.length; i < len; i++) { - el.dom = els[i]; - Ext.Element.prototype[fn].apply(el, args); - } - return this; - }, - - item : function(index){ - this.el.dom = this.elements[index]; - return this.el; - }, - - - addListener : function(eventName, handler, scope, opt){ - var els = this.elements; - for(var i = 0, len = els.length; i < len; i++) { - Ext.EventManager.on(els[i], eventName, handler, scope || els[i], opt); - } - return this; - }, - - - each : function(fn, scope){ - var els = this.elements; - var el = this.el; - for(var i = 0, len = els.length; i < len; i++){ - el.dom = els[i]; - if(fn.call(scope || el, el, this, i) === false){ - break; - } - } - return this; - } -}); -Ext.CompositeElementLite.prototype.on = Ext.CompositeElementLite.prototype.addListener; -if(Ext.DomQuery){ - Ext.Element.selectorFunction = Ext.DomQuery.select; -} - -Ext.Element.select = function(selector, unique){ - var els; - if(typeof selector == "string"){ - els = Ext.Element.selectorFunction(selector); - }else if(selector.length !== undefined){ - els = selector; - }else{ - throw "Invalid selector"; - } - if(unique === true){ - return new Ext.CompositeElement(els); - }else{ - return new Ext.CompositeElementLite(els); - } -}; - -Ext.select = Ext.Element.select; - -Ext.UpdateManager = function(el, forceNew){ - el = Ext.get(el); - if(!forceNew && el.updateManager){ - return el.updateManager; - } - - this.el = el; - - this.defaultUrl = null; - - this.addEvents({ - - "beforeupdate": true, - - "update": true, - - "failure": true - }); - var d = Ext.UpdateManager.defaults; - - this.sslBlankUrl = d.sslBlankUrl; - - this.disableCaching = d.disableCaching; - - this.indicatorText = d.indicatorText; - - this.showLoadIndicator = d.showLoadIndicator; - - this.timeout = d.timeout; - - - this.loadScripts = d.loadScripts; - - - this.transaction = null; - - - this.autoRefreshProcId = null; - - this.refreshDelegate = this.refresh.createDelegate(this); - - this.updateDelegate = this.update.createDelegate(this); - - this.formUpdateDelegate = this.formUpdate.createDelegate(this); - - this.successDelegate = this.processSuccess.createDelegate(this); - - this.failureDelegate = this.processFailure.createDelegate(this); - - - this.renderer = new Ext.UpdateManager.BasicRenderer(); - - Ext.UpdateManager.superclass.constructor.call(this); -}; - -Ext.extend(Ext.UpdateManager, Ext.util.Observable, { - - getEl : function(){ - return this.el; - }, - - update : function(url, params, callback, discardUrl){ - if(this.fireEvent("beforeupdate", this.el, url, params) !== false){ - var method = this.method; - if(typeof url == "object"){ - var cfg = url; - url = cfg.url; - params = params || cfg.params; - callback = callback || cfg.callback; - discardUrl = discardUrl || cfg.discardUrl; - if(callback && cfg.scope){ - callback = callback.createDelegate(cfg.scope); - } - if(typeof cfg.method != "undefined"){method = cfg.method;}; - if(typeof cfg.nocache != "undefined"){this.disableCaching = cfg.nocache;}; - if(typeof cfg.text != "undefined"){this.indicatorText = '
    '+cfg.text+"
    ";}; - if(typeof cfg.scripts != "undefined"){this.loadScripts = cfg.scripts;}; - if(typeof cfg.timeout != "undefined"){this.timeout = cfg.timeout;}; - } - this.showLoading(); - if(!discardUrl){ - this.defaultUrl = url; - } - if(typeof url == "function"){ - url = url.call(this); - } - if(typeof params == "function"){ - params = params(); - } - if(params && typeof params != "string"){ - var buf = []; - for(var key in params){ - if(typeof params[key] != "function"){ - buf.push(encodeURIComponent(key), "=", encodeURIComponent(params[key]), "&"); - } - } - delete buf[buf.length-1]; - params = buf.join(""); - } - var cb = { - success: this.successDelegate, - failure: this.failureDelegate, - timeout: (this.timeout*1000), - argument: {"url": url, "form": null, "callback": callback, "params": params} - }; - method = method || (params ? "POST" : "GET"); - if(method == "GET"){ - url = this.prepareUrl(url); - } - this.transaction = Ext.lib.Ajax.request(method, url, cb, params); - } - }, - - - formUpdate : function(form, url, reset, callback){ - if(this.fireEvent("beforeupdate", this.el, form, url) !== false){ - formEl = Ext.getDom(form); - if(typeof url == "function"){ - url = url.call(this); - } - if(typeof params == "function"){ - params = params(); - } - url = url || formEl.action; - var cb = { - success: this.successDelegate, - failure: this.failureDelegate, - timeout: (this.timeout*1000), - argument: {"url": url, "form": formEl, "callback": callback, "reset": reset} - }; - var isUpload = false; - var enctype = formEl.getAttribute("enctype"); - if(enctype && enctype.toLowerCase() == "multipart/form-data"){ - isUpload = true; - cb.upload = this.successDelegate; - } - this.transaction = Ext.lib.Ajax.formRequest(formEl, url, cb, null, isUpload, this.sslBlankUrl); - this.showLoading.defer(1, this); - } - }, - - - refresh : function(callback){ - if(this.defaultUrl == null){ - return; - } - this.update(this.defaultUrl, null, callback, true); - }, - - - startAutoRefresh : function(interval, url, params, callback, refreshNow){ - if(refreshNow){ - this.update(url || this.defaultUrl, params, callback, true); - } - if(this.autoRefreshProcId){ - clearInterval(this.autoRefreshProcId); - } - this.autoRefreshProcId = setInterval(this.update.createDelegate(this, [url || this.defaultUrl, params, callback, true]), interval*1000); - }, - - - stopAutoRefresh : function(){ - if(this.autoRefreshProcId){ - clearInterval(this.autoRefreshProcId); - delete this.autoRefreshProcId; - } - }, - - isAutoRefreshing : function(){ - return this.autoRefreshProcId ? true : false; - }, - - showLoading : function(){ - if(this.showLoadIndicator){ - this.el.update(this.indicatorText); - } - }, - - - prepareUrl : function(url){ - if(this.disableCaching){ - var append = "_dc=" + (new Date().getTime()); - if(url.indexOf("?") !== -1){ - url += "&" + append; - }else{ - url += "?" + append; - } - } - return url; - }, - - - processSuccess : function(response){ - this.transaction = null; - if(response.argument.form && response.argument.reset){ - try{ - response.argument.form.reset(); - }catch(e){} - } - if(this.loadScripts){ - this.renderer.render(this.el, response, this, - this.updateComplete.createDelegate(this, [response])); - }else{ - this.renderer.render(this.el, response, this); - this.updateComplete(response); - } - }, - - updateComplete : function(response){ - this.fireEvent("update", this.el, response); - if(typeof response.argument.callback == "function"){ - response.argument.callback(this.el, true, response); - } - }, - - - processFailure : function(response){ - this.transaction = null; - this.fireEvent("failure", this.el, response); - if(typeof response.argument.callback == "function"){ - response.argument.callback(this.el, false, response); - } - }, - - - setRenderer : function(renderer){ - this.renderer = renderer; - }, - - getRenderer : function(){ - return this.renderer; - }, - - - setDefaultUrl : function(defaultUrl){ - this.defaultUrl = defaultUrl; - }, - - - abort : function(){ - if(this.transaction){ - Ext.lib.Ajax.abort(this.transaction); - } - }, - - - isUpdating : function(){ - if(this.transaction){ - return Ext.lib.Ajax.isCallInProgress(this.transaction); - } - return false; - } -}); - - - Ext.UpdateManager.defaults = { - - timeout : 30, - - - loadScripts : false, - - - sslBlankUrl : (Ext.SSL_SECURE_URL || "javascript:false"), - - disableCaching : false, - - showLoadIndicator : true, - - indicatorText : '
    Loading...
    ' - }; - - -Ext.UpdateManager.updateElement = function(el, url, params, options){ - var um = Ext.get(el, true).getUpdateManager(); - Ext.apply(um, options); - um.update(url, params, options ? options.callback : null); -}; - -Ext.UpdateManager.update = Ext.UpdateManager.updateElement; - -Ext.UpdateManager.BasicRenderer = function(){}; - -Ext.UpdateManager.BasicRenderer.prototype = { - - render : function(el, response, updateManager, callback){ - el.update(response.responseText, updateManager.loadScripts, callback); - } -}; - - - - - - -Date.parseFunctions = {count:0}; - -Date.parseRegexes = []; - -Date.formatFunctions = {count:0}; - - -Date.prototype.dateFormat = function(format) { - if (Date.formatFunctions[format] == null) { - Date.createNewFormat(format); - } - var func = Date.formatFunctions[format]; - return this[func](); -}; - - - -Date.prototype.format = Date.prototype.dateFormat; - - -Date.createNewFormat = function(format) { - var funcName = "format" + Date.formatFunctions.count++; - Date.formatFunctions[format] = funcName; - var code = "Date.prototype." + funcName + " = function(){return "; - var special = false; - var ch = ''; - for (var i = 0; i < format.length; ++i) { - ch = format.charAt(i); - if (!special && ch == "\\") { - special = true; - } - else if (special) { - special = false; - code += "'" + String.escape(ch) + "' + "; - } - else { - code += Date.getFormatCode(ch); - } - } - eval(code.substring(0, code.length - 3) + ";}"); -}; - - -Date.getFormatCode = function(character) { - switch (character) { - case "d": - return "String.leftPad(this.getDate(), 2, '0') + "; - case "D": - return "Date.dayNames[this.getDay()].substring(0, 3) + "; - case "j": - return "this.getDate() + "; - case "l": - return "Date.dayNames[this.getDay()] + "; - case "S": - return "this.getSuffix() + "; - case "w": - return "this.getDay() + "; - case "z": - return "this.getDayOfYear() + "; - case "W": - return "this.getWeekOfYear() + "; - case "F": - return "Date.monthNames[this.getMonth()] + "; - case "m": - return "String.leftPad(this.getMonth() + 1, 2, '0') + "; - case "M": - return "Date.monthNames[this.getMonth()].substring(0, 3) + "; - case "n": - return "(this.getMonth() + 1) + "; - case "t": - return "this.getDaysInMonth() + "; - case "L": - return "(this.isLeapYear() ? 1 : 0) + "; - case "Y": - return "this.getFullYear() + "; - case "y": - return "('' + this.getFullYear()).substring(2, 4) + "; - case "a": - return "(this.getHours() < 12 ? 'am' : 'pm') + "; - case "A": - return "(this.getHours() < 12 ? 'AM' : 'PM') + "; - case "g": - return "((this.getHours() %12) ? this.getHours() % 12 : 12) + "; - case "G": - return "this.getHours() + "; - case "h": - return "String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + "; - case "H": - return "String.leftPad(this.getHours(), 2, '0') + "; - case "i": - return "String.leftPad(this.getMinutes(), 2, '0') + "; - case "s": - return "String.leftPad(this.getSeconds(), 2, '0') + "; - case "O": - return "this.getGMTOffset() + "; - case "T": - return "this.getTimezone() + "; - case "Z": - return "(this.getTimezoneOffset() * -60) + "; - default: - return "'" + String.escape(character) + "' + "; - } -}; - - -Date.parseDate = function(input, format) { - if (Date.parseFunctions[format] == null) { - Date.createParser(format); - } - var func = Date.parseFunctions[format]; - return Date[func](input); -}; - - -Date.createParser = function(format) { - var funcName = "parse" + Date.parseFunctions.count++; - var regexNum = Date.parseRegexes.length; - var currentGroup = 1; - Date.parseFunctions[format] = funcName; - - var code = "Date." + funcName + " = function(input){\n" - + "var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1;\n" - + "var d = new Date();\n" - + "y = d.getFullYear();\n" - + "m = d.getMonth();\n" - + "d = d.getDate();\n" - + "var results = input.match(Date.parseRegexes[" + regexNum + "]);\n" - + "if (results && results.length > 0) {"; - var regex = ""; - - var special = false; - var ch = ''; - for (var i = 0; i < format.length; ++i) { - ch = format.charAt(i); - if (!special && ch == "\\") { - special = true; - } - else if (special) { - special = false; - regex += String.escape(ch); - } - else { - var obj = Date.formatCodeToRegex(ch, currentGroup); - currentGroup += obj.g; - regex += obj.s; - if (obj.g && obj.c) { - code += obj.c; - } - } - } - - code += "if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n" - + "{return new Date(y, m, d, h, i, s);}\n" - + "else if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n" - + "{return new Date(y, m, d, h, i);}\n" - + "else if (y > 0 && m >= 0 && d > 0 && h >= 0)\n" - + "{return new Date(y, m, d, h);}\n" - + "else if (y > 0 && m >= 0 && d > 0)\n" - + "{return new Date(y, m, d);}\n" - + "else if (y > 0 && m >= 0)\n" - + "{return new Date(y, m);}\n" - + "else if (y > 0)\n" - + "{return new Date(y);}\n" - + "}return null;}"; - - Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$"); - eval(code); -}; - - -Date.formatCodeToRegex = function(character, currentGroup) { - switch (character) { - case "D": - return {g:0, - c:null, - s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"}; - case "j": - case "d": - return {g:1, - c:"d = parseInt(results[" + currentGroup + "], 10);\n", - s:"(\\d{1,2})"}; - case "l": - return {g:0, - c:null, - s:"(?:" + Date.dayNames.join("|") + ")"}; - case "S": - return {g:0, - c:null, - s:"(?:st|nd|rd|th)"}; - case "w": - return {g:0, - c:null, - s:"\\d"}; - case "z": - return {g:0, - c:null, - s:"(?:\\d{1,3})"}; - case "W": - return {g:0, - c:null, - s:"(?:\\d{2})"}; - case "F": - return {g:1, - c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "].substring(0, 3)], 10);\n", - s:"(" + Date.monthNames.join("|") + ")"}; - case "M": - return {g:1, - c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "]], 10);\n", - s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"}; - case "n": - case "m": - return {g:1, - c:"m = parseInt(results[" + currentGroup + "], 10) - 1;\n", - s:"(\\d{1,2})"}; - case "t": - return {g:0, - c:null, - s:"\\d{1,2}"}; - case "L": - return {g:0, - c:null, - s:"(?:1|0)"}; - case "Y": - return {g:1, - c:"y = parseInt(results[" + currentGroup + "], 10);\n", - s:"(\\d{4})"}; - case "y": - return {g:1, - c:"var ty = parseInt(results[" + currentGroup + "], 10);\n" - + "y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n", - s:"(\\d{1,2})"}; - case "a": - return {g:1, - c:"if (results[" + currentGroup + "] == 'am') {\n" - + "if (h == 12) { h = 0; }\n" - + "} else { if (h < 12) { h += 12; }}", - s:"(am|pm)"}; - case "A": - return {g:1, - c:"if (results[" + currentGroup + "] == 'AM') {\n" - + "if (h == 12) { h = 0; }\n" - + "} else { if (h < 12) { h += 12; }}", - s:"(AM|PM)"}; - case "g": - case "G": - case "h": - case "H": - return {g:1, - c:"h = parseInt(results[" + currentGroup + "], 10);\n", - s:"(\\d{1,2})"}; - case "i": - return {g:1, - c:"i = parseInt(results[" + currentGroup + "], 10);\n", - s:"(\\d{2})"}; - case "s": - return {g:1, - c:"s = parseInt(results[" + currentGroup + "], 10);\n", - s:"(\\d{2})"}; - case "O": - return {g:0, - c:null, - s:"[+-]\\d{4}"}; - case "T": - return {g:0, - c:null, - s:"[A-Z]{3}"}; - case "Z": - return {g:0, - c:null, - s:"[+-]\\d{1,5}"}; - default: - return {g:0, - c:null, - s:String.escape(character)}; - } -}; - - -Date.prototype.getTimezone = function() { - return this.toString().replace( - /^.*? ([A-Z]{3}) [0-9]{4}.*$/, "$1").replace( - /^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/, "$1$2$3"); -}; - - -Date.prototype.getGMTOffset = function() { - return (this.getTimezoneOffset() > 0 ? "-" : "+") - + String.leftPad(Math.floor(this.getTimezoneOffset() / 60), 2, "0") - + String.leftPad(this.getTimezoneOffset() % 60, 2, "0"); -}; - - -Date.prototype.getDayOfYear = function() { - var num = 0; - Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28; - for (var i = 0; i < this.getMonth(); ++i) { - num += Date.daysInMonth[i]; - } - return num + this.getDate() - 1; -}; - - -Date.prototype.getWeekOfYear = function() { - - var now = this.getDayOfYear() + (4 - this.getDay()); - - var jan1 = new Date(this.getFullYear(), 0, 1); - var then = (7 - jan1.getDay() + 4); - return String.leftPad(((now - then) / 7) + 1, 2, "0"); -}; - - -Date.prototype.isLeapYear = function() { - var year = this.getFullYear(); - return ((year & 3) == 0 && (year % 100 || (year % 400 == 0 && year))); -}; - - -Date.prototype.getFirstDayOfMonth = function() { - var day = (this.getDay() - (this.getDate() - 1)) % 7; - return (day < 0) ? (day + 7) : day; -}; - - -Date.prototype.getLastDayOfMonth = function() { - var day = (this.getDay() + (Date.daysInMonth[this.getMonth()] - this.getDate())) % 7; - return (day < 0) ? (day + 7) : day; -}; - - - -Date.prototype.getFirstDateOfMonth = function() { - return new Date(this.getFullYear(), this.getMonth(), 1); -}; - - -Date.prototype.getLastDateOfMonth = function() { - return new Date(this.getFullYear(), this.getMonth(), this.getDaysInMonth()); -}; - -Date.prototype.getDaysInMonth = function() { - Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28; - return Date.daysInMonth[this.getMonth()]; -}; - - -Date.prototype.getSuffix = function() { - switch (this.getDate()) { - case 1: - case 21: - case 31: - return "st"; - case 2: - case 22: - return "nd"; - case 3: - case 23: - return "rd"; - default: - return "th"; - } -}; - - -Date.daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31]; - - -Date.monthNames = - ["January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December"]; - - -Date.dayNames = - ["Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday"]; - - -Date.y2kYear = 50; - -Date.monthNumbers = { - Jan:0, - Feb:1, - Mar:2, - Apr:3, - May:4, - Jun:5, - Jul:6, - Aug:7, - Sep:8, - Oct:9, - Nov:10, - Dec:11}; - - -Date.prototype.clone = function() { - return new Date(this.getTime()); -}; - - -Date.prototype.clearTime = function(clone){ - if(clone){ - return this.clone().clearTime(); - } - this.setHours(0); - this.setMinutes(0); - this.setSeconds(0); - this.setMilliseconds(0); - return this; -}; - - - -if(Ext.isSafari){ - Date.brokenSetMonth = Date.prototype.setMonth; - Date.prototype.setMonth = function(num){ - if(num <= -1){ - var n = Math.ceil(-num); - var back_year = Math.ceil(n/12); - var month = (n % 12) ? 12 - n % 12 : 0 ; - this.setFullYear(this.getFullYear() - back_year); - return Date.brokenSetMonth.call(this, month); - } else { - return Date.brokenSetMonth.apply(this, arguments); - } - }; -} - - -Date.MILLI = "ms"; - -Date.SECOND = "s"; - -Date.MINUTE = "mi"; - -Date.HOUR = "h"; - -Date.DAY = "d"; - -Date.MONTH = "mo"; - -Date.YEAR = "y"; - - -Date.prototype.add = function(interval, value){ - var d = this.clone(); - if (!interval || value === 0) return d; - switch(interval.toLowerCase()){ - case Date.MILLI: - d.setMilliseconds(this.getMilliseconds() + value); - break; - case Date.SECOND: - d.setSeconds(this.getSeconds() + value); - break; - case Date.MINUTE: - d.setMinutes(this.getMinutes() + value); - break; - case Date.HOUR: - d.setHours(this.getHours() + value); - break; - case Date.DAY: - d.setDate(this.getDate() + value); - break; - case Date.MONTH: - var day = this.getDate(); - if(day > 28){ - day = Math.min(day, this.getFirstDateOfMonth().add('mo', value).getLastDateOfMonth().getDate()); - } - d.setDate(day); - d.setMonth(this.getMonth() + value); - break; - case Date.YEAR: - d.setFullYear(this.getFullYear() + value); - break; - } - return d; -}; - -Ext.util.DelayedTask = function(fn, scope, args){ - var id = null, d, t; - - var call = function(){ - var now = new Date().getTime(); - if(now - t >= d){ - clearInterval(id); - id = null; - fn.apply(scope, args || []); - } - }; - - this.delay = function(delay, newFn, newScope, newArgs){ - if(id && delay != d){ - this.cancel(); - } - d = delay; - t = new Date().getTime(); - fn = newFn || fn; - scope = newScope || scope; - args = newArgs || args; - if(!id){ - id = setInterval(call, d); - } - }; - - - this.cancel = function(){ - if(id){ - clearInterval(id); - id = null; - } - }; -}; -Ext.util.TaskRunner = function(interval){ - interval = interval || 10; - var tasks = [], removeQueue = []; - var id = 0; - var running = false; - - var stopThread = function(){ - running = false; - clearInterval(id); - id = 0; - }; - - var startThread = function(){ - if(!running){ - running = true; - id = setInterval(runTasks, interval); - } - }; - - var removeTask = function(task){ - removeQueue.push(task); - if(task.onStop){ - task.onStop(); - } - }; - - var runTasks = function(){ - if(removeQueue.length > 0){ - for(var i = 0, len = removeQueue.length; i < len; i++){ - tasks.remove(removeQueue[i]); - } - removeQueue = []; - if(tasks.length < 1){ - stopThread(); - return; - } - } - var now = new Date().getTime(); - for(var i = 0, len = tasks.length; i < len; ++i){ - var t = tasks[i]; - var itime = now - t.taskRunTime; - if(t.interval <= itime){ - var rt = t.run.apply(t.scope || t, t.args || [++t.taskRunCount]); - t.taskRunTime = now; - if(rt === false || t.taskRunCount === t.repeat){ - removeTask(t); - return; - } - } - if(t.duration && t.duration <= (now - t.taskStartTime)){ - removeTask(t); - } - } - }; - - - this.start = function(task){ - tasks.push(task); - task.taskStartTime = new Date().getTime(); - task.taskRunTime = 0; - task.taskRunCount = 0; - startThread(); - return task; - }; - - this.stop = function(task){ - removeTask(task); - return task; - }; - - this.stopAll = function(){ - stopThread(); - for(var i = 0, len = tasks.length; i < len; i++){ - if(tasks[i].onStop){ - tasks[i].onStop(); - } - } - tasks = []; - removeQueue = []; - }; -}; - -Ext.TaskMgr = new Ext.util.TaskRunner(); - -Ext.util.MixedCollection = function(allowFunctions, keyFn){ - this.items = []; - this.map = {}; - this.keys = []; - this.length = 0; - this.addEvents({ - - "clear" : true, - - "add" : true, - - "replace" : true, - - "remove" : true, - "sort" : true - }); - this.allowFunctions = allowFunctions === true; - if(keyFn){ - this.getKey = keyFn; - } - Ext.util.MixedCollection.superclass.constructor.call(this); -}; - -Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { - allowFunctions : false, - - - add : function(key, o){ - if(arguments.length == 1){ - o = arguments[0]; - key = this.getKey(o); - } - if(typeof key == "undefined" || key === null){ - this.length++; - this.items.push(o); - this.keys.push(null); - }else{ - var old = this.map[key]; - if(old){ - return this.replace(key, o); - } - this.length++; - this.items.push(o); - this.map[key] = o; - this.keys.push(key); - } - this.fireEvent("add", this.length-1, o, key); - return o; - }, - - - getKey : function(o){ - return o.id; - }, - - - replace : function(key, o){ - if(arguments.length == 1){ - o = arguments[0]; - key = this.getKey(o); - } - var old = this.item(key); - if(typeof key == "undefined" || key === null || typeof old == "undefined"){ - return this.add(key, o); - } - var index = this.indexOfKey(key); - this.items[index] = o; - this.map[key] = o; - this.fireEvent("replace", key, old, o); - return o; - }, - - - addAll : function(objs){ - if(arguments.length > 1 || objs instanceof Array){ - var args = arguments.length > 1 ? arguments : objs; - for(var i = 0, len = args.length; i < len; i++){ - this.add(args[i]); - } - }else{ - for(var key in objs){ - if(this.allowFunctions || typeof objs[key] != "function"){ - this.add(objs[key], key); - } - } - } - }, - - - each : function(fn, scope){ - var items = [].concat(this.items); - for(var i = 0, len = items.length; i < len; i++){ - if(fn.call(scope || items[i], items[i], i, len) === false){ - break; - } - } - }, - - - eachKey : function(fn, scope){ - for(var i = 0, len = this.keys.length; i < len; i++){ - fn.call(scope || window, this.keys[i], this.items[i], i, len); - } - }, - - - find : function(fn, scope){ - for(var i = 0, len = this.items.length; i < len; i++){ - if(fn.call(scope || window, this.items[i], this.keys[i])){ - return this.items[i]; - } - } - return null; - }, - - - insert : function(index, key, o){ - if(arguments.length == 2){ - o = arguments[1]; - key = this.getKey(o); - } - if(index >= this.length){ - return this.add(key, o); - } - this.length++; - this.items.splice(index, 0, o); - if(typeof key != "undefined" && key != null){ - this.map[key] = o; - } - this.keys.splice(index, 0, key); - this.fireEvent("add", index, o, key); - return o; - }, - - - remove : function(o){ - return this.removeAt(this.indexOf(o)); - }, - - - removeAt : function(index){ - if(index < this.length && index >= 0){ - this.length--; - var o = this.items[index]; - this.items.splice(index, 1); - var key = this.keys[index]; - if(typeof key != "undefined"){ - delete this.map[key]; - } - this.keys.splice(index, 1); - this.fireEvent("remove", o, key); - } - }, - - - removeKey : function(key){ - return this.removeAt(this.indexOfKey(key)); - }, - - - getCount : function(){ - return this.length; - }, - - - indexOf : function(o){ - if(!this.items.indexOf){ - for(var i = 0, len = this.items.length; i < len; i++){ - if(this.items[i] == o) return i; - } - return -1; - }else{ - return this.items.indexOf(o); - } - }, - - - indexOfKey : function(key){ - if(!this.keys.indexOf){ - for(var i = 0, len = this.keys.length; i < len; i++){ - if(this.keys[i] == key) return i; - } - return -1; - }else{ - return this.keys.indexOf(key); - } - }, - - - item : function(key){ - var item = typeof this.map[key] != "undefined" ? this.map[key] : this.items[key]; - return typeof item != 'function' || this.allowFunctions ? item : null; - }, - - - itemAt : function(index){ - return this.items[index]; - }, - - - key : function(key){ - return this.map[key]; - }, - - - contains : function(o){ - return this.indexOf(o) != -1; - }, - - - containsKey : function(key){ - return typeof this.map[key] != "undefined"; - }, - - - clear : function(){ - this.length = 0; - this.items = []; - this.keys = []; - this.map = {}; - this.fireEvent("clear"); - }, - - - first : function(){ - return this.items[0]; - }, - - - last : function(){ - return this.items[this.length-1]; - }, - - _sort : function(property, dir, fn){ - var dsc = String(dir).toUpperCase() == "DESC" ? -1 : 1; - fn = fn || function(a, b){ - return a-b; - }; - var c = [], k = this.keys, items = this.items; - for(var i = 0, len = items.length; i < len; i++){ - c[c.length] = {key: k[i], value: items[i], index: i}; - } - c.sort(function(a, b){ - var v = fn(a[property], b[property]) * dsc; - if(v == 0){ - v = (a.index < b.index ? -1 : 1); - } - return v; - }); - for(var i = 0, len = c.length; i < len; i++){ - items[i] = c[i].value; - k[i] = c[i].key; - } - this.fireEvent("sort", this); - }, - - - sort : function(dir, fn){ - this._sort("value", dir, fn); - }, - - - keySort : function(dir, fn){ - this._sort("key", dir, fn || function(a, b){ - return String(a).toUpperCase()-String(b).toUpperCase(); - }); - }, - - - getRange : function(start, end){ - var items = this.items; - if(items.length < 1){ - return []; - } - start = start || 0; - end = Math.min(typeof end == "undefined" ? this.length-1 : end, this.length-1); - var r = []; - if(start <= end){ - for(var i = start; i <= end; i++) { - r[r.length] = items[i]; - } - }else{ - for(var i = start; i >= end; i--) { - r[r.length] = items[i]; - } - } - return r; - }, - - - filter : function(property, value){ - if(!value.exec){ - value = String(value); - if(value.length == 0){ - return this.clone(); - } - value = new RegExp("^" + Ext.escapeRe(value), "i"); - } - return this.filterBy(function(o){ - return o && value.test(o[property]); - }); - }, - - - filterBy : function(fn, scope){ - var r = new Ext.util.MixedCollection(); - r.getKey = this.getKey; - var k = this.keys, it = this.items; - for(var i = 0, len = it.length; i < len; i++){ - if(fn.call(scope||this, it[i], k[i])){ - r.add(k[i], it[i]); - } - } - return r; - }, - - - clone : function(){ - var r = new Ext.util.MixedCollection(); - var k = this.keys, it = this.items; - for(var i = 0, len = it.length; i < len; i++){ - r.add(k[i], it[i]); - } - r.getKey = this.getKey; - return r; - } -}); - -Ext.util.MixedCollection.prototype.get = Ext.util.MixedCollection.prototype.item; - -Ext.util.JSON = new (function(){ - var useHasOwn = {}.hasOwnProperty ? true : false; - - - - - var pad = function(n) { - return n < 10 ? "0" + n : n; - }; - - var m = { - "\b": '\\b', - "\t": '\\t', - "\n": '\\n', - "\f": '\\f', - "\r": '\\r', - '"' : '\\"', - "\\": '\\\\' - }; - - var encodeString = function(s){ - if (/["\\\x00-\x1f]/.test(s)) { - return '"' + s.replace(/([\x00-\x1f\\"])/g, function(a, b) { - var c = m[b]; - if(c){ - return c; - } - c = b.charCodeAt(); - return "\\u00" + - Math.floor(c / 16).toString(16) + - (c % 16).toString(16); - }) + '"'; - } - return '"' + s + '"'; - }; - - var encodeArray = function(o){ - var a = ["["], b, i, l = o.length, v; - for (i = 0; i < l; i += 1) { - v = o[i]; - switch (typeof v) { - case "undefined": - case "function": - case "unknown": - break; - default: - if (b) { - a.push(','); - } - a.push(v === null ? "null" : Ext.util.JSON.encode(v)); - b = true; - } - } - a.push("]"); - return a.join(""); - }; - - var encodeDate = function(o){ - return '"' + o.getFullYear() + "-" + - pad(o.getMonth() + 1) + "-" + - pad(o.getDate()) + "T" + - pad(o.getHours()) + ":" + - pad(o.getMinutes()) + ":" + - pad(o.getSeconds()) + '"'; - }; - - - this.encode = function(o){ - if(typeof o == "undefined" || o === null){ - return "null"; - }else if(o instanceof Array){ - return encodeArray(o); - }else if(o instanceof Date){ - return encodeDate(o); - }else if(typeof o == "string"){ - return encodeString(o); - }else if(typeof o == "number"){ - return isFinite(o) ? String(o) : "null"; - }else if(typeof o == "boolean"){ - return String(o); - }else { - var a = ["{"], b, i, v; - for (i in o) { - if(!useHasOwn || o.hasOwnProperty(i)) { - v = o[i]; - switch (typeof v) { - case "undefined": - case "function": - case "unknown": - break; - default: - if(b){ - a.push(','); - } - a.push(this.encode(i), ":", - v === null ? "null" : this.encode(v)); - b = true; - } - } - } - a.push("}"); - return a.join(""); - } - }; - - - this.decode = function(json){ - return eval("(" + json + ')'); - }; -})(); - -Ext.encode = Ext.util.JSON.encode; - -Ext.decode = Ext.util.JSON.decode; - - -Ext.util.Format = function(){ - var trimRe = /^\s+|\s+$/g; - return { - - ellipsis : function(value, len){ - if(value && value.length > len){ - return value.substr(0, len-3)+"..."; - } - return value; - }, - - - undef : function(value){ - return typeof value != "undefined" ? value : ""; - }, - - - htmlEncode : function(value){ - return !value ? value : String(value).replace(/&/g, "&").replace(/>/g, ">").replace(/ 2){ - var args = Array.prototype.slice.call(arguments, 2); - args.unshift(value); - return eval(fn).apply(window, args); - }else{ - return eval(fn).call(window, value); - } - }, - - - usMoney : function(v){ - v = (Math.round((v-0)*100))/100; - v = (v == Math.floor(v)) ? v + ".00" : ((v*10 == Math.floor(v*10)) ? v + "0" : v); - return "$" + v ; - }, - - - date : function(v, format){ - if(!v){ - return ""; - } - if(!(v instanceof Date)){ - v = new Date(Date.parse(v)); - } - return v.dateFormat(format || "m/d/Y"); - }, - - - dateRenderer : function(format){ - return function(v){ - return Ext.util.Format.date(v, format); - }; - }, - - - stripTagsRE : /<\/?[^>]+>/gi, - - - stripTags : function(v){ - return !v ? v : String(v).replace(this.stripTagsRE, ""); - } - }; -}(); - -Ext.util.CSS = function(){ - var rules = null; - var doc = document; - - var camelRe = /(-[a-z])/gi; - var camelFn = function(m, a){ return a.charAt(1).toUpperCase(); }; - - return { - - createStyleSheet : function(cssText){ - var ss; - if(Ext.isIE){ - ss = doc.createStyleSheet(); - ss.cssText = cssText; - }else{ - var head = doc.getElementsByTagName("head")[0]; - var rules = doc.createElement("style"); - rules.setAttribute("type", "text/css"); - try{ - rules.appendChild(doc.createTextNode(cssText)); - }catch(e){ - rules.cssText = cssText; - } - head.appendChild(rules); - ss = rules.styleSheet ? rules.styleSheet : (rules.sheet || doc.styleSheets[doc.styleSheets.length-1]); - } - this.cacheStyleSheet(ss); - return ss; - }, - - - removeStyleSheet : function(id){ - var existing = doc.getElementById(id); - if(existing){ - existing.parentNode.removeChild(existing); - } - }, - - - swapStyleSheet : function(id, url){ - this.removeStyleSheet(id); - var ss = doc.createElement("link"); - ss.setAttribute("rel", "stylesheet"); - ss.setAttribute("type", "text/css"); - ss.setAttribute("id", id); - ss.setAttribute("href", url); - doc.getElementsByTagName("head")[0].appendChild(ss); - }, - - - refreshCache : function(){ - return this.getRules(true); - }, - - - cacheStyleSheet : function(ss){ - if(!rules){ - rules = {}; - } - try{ - var ssRules = ss.cssRules || ss.rules; - for(var j = ssRules.length-1; j >= 0; --j){ - rules[ssRules[j].selectorText] = ssRules[j]; - } - }catch(e){} - }, - - - getRules : function(refreshCache){ - if(rules == null || refreshCache){ - rules = {}; - var ds = doc.styleSheets; - for(var i =0, len = ds.length; i < len; i++){ - try{ - this.cacheStyleSheet(ds[i]); - }catch(e){} - } - } - return rules; - }, - - - getRule : function(selector, refreshCache){ - var rs = this.getRules(refreshCache); - if(!(selector instanceof Array)){ - return rs[selector]; - } - for(var i = 0; i < selector.length; i++){ - if(rs[selector[i]]){ - return rs[selector[i]]; - } - } - return null; - }, - - - - updateRule : function(selector, property, value){ - if(!(selector instanceof Array)){ - var rule = this.getRule(selector); - if(rule){ - rule.style[property.replace(camelRe, camelFn)] = value; - return true; - } - }else{ - for(var i = 0; i < selector.length; i++){ - if(this.updateRule(selector[i], property, value)){ - return true; - } - } - } - return false; - } - }; -}(); - -Ext.util.ClickRepeater = function(el, config) -{ - this.el = Ext.get(el); - this.el.unselectable(); - - Ext.apply(this, config); - - this.addEvents({ - - "mousedown" : true, - - "click" : true, - - "mouseup" : true - }); - - this.el.on("mousedown", this.handleMouseDown, this); - if(this.preventDefault || this.stopDefault){ - this.el.on("click", function(e){ - if(this.preventDefault){ - e.preventDefault(); - } - if(this.stopDefault){ - e.stopEvent(); - } - }, this); - } - - if(this.handler){ - this.on("click", this.handler, this.scope || this); - } - - Ext.util.ClickRepeater.superclass.constructor.call(this); -}; - -Ext.extend(Ext.util.ClickRepeater, Ext.util.Observable, { - interval : 20, - delay: 250, - preventDefault : true, - stopDefault : false, - timer : 0, - docEl : Ext.get(document), - - handleMouseDown : function(){ - clearTimeout(this.timer); - this.el.blur(); - if(this.pressClass){ - this.el.addClass(this.pressClass); - } - this.mousedownTime = new Date(); - - this.docEl.on("mouseup", this.handleMouseUp, this); - this.el.on("mouseout", this.handleMouseOut, this); - - this.fireEvent("mousedown", this); - this.fireEvent("click", this); - - this.timer = this.click.defer(this.delay || this.interval, this); - }, - - click : function(){ - this.fireEvent("click", this); - this.timer = this.click.defer(this.getInterval(), this); - }, - - getInterval: function(){ - if(!this.accelerate){ - return this.interval; - } - var pressTime = this.mousedownTime.getElapsed(); - if(pressTime < 500){ - return 400; - }else if(pressTime < 1700){ - return 320; - }else if(pressTime < 2600){ - return 250; - }else if(pressTime < 3500){ - return 180; - }else if(pressTime < 4400){ - return 140; - }else if(pressTime < 5300){ - return 80; - }else if(pressTime < 6200){ - return 50; - }else{ - return 10; - } - }, - - handleMouseOut : function(){ - clearTimeout(this.timer); - if(this.pressClass){ - this.el.removeClass(this.pressClass); - } - this.el.on("mouseover", this.handleMouseReturn, this); - }, - - handleMouseReturn : function(){ - this.el.un("mouseover", this.handleMouseReturn); - if(this.pressClass){ - this.el.addClass(this.pressClass); - } - this.click(); - }, - - handleMouseUp : function(){ - clearTimeout(this.timer); - this.el.un("mouseover", this.handleMouseReturn); - this.el.un("mouseout", this.handleMouseOut); - this.docEl.un("mouseup", this.handleMouseUp); - this.el.removeClass(this.pressClass); - this.fireEvent("mouseup", this); - } -}); - -Ext.KeyNav = function(el, config){ - this.el = Ext.get(el); - Ext.apply(this, config); - if(!this.disabled){ - this.disabled = true; - this.enable(); - } -}; - -Ext.KeyNav.prototype = { - disabled : false, - defaultEventAction: "stopEvent", - - prepareEvent : function(e){ - var k = e.getKey(); - var h = this.keyToHandler[k]; - if(Ext.isSafari && h && k >= 37 && k <= 40){ - e.stopEvent(); - } - }, - - relay : function(e){ - var k = e.getKey(); - var h = this.keyToHandler[k]; - if(h && this[h]){ - if(this.doRelay(e, this[h], h) !== true){ - e[this.defaultEventAction](); - } - } - }, - - doRelay : function(e, h, hname){ - return h.call(this.scope || this, e); - }, - - enter : false, - left : false, - right : false, - up : false, - down : false, - tab : false, - esc : false, - pageUp : false, - pageDown : false, - del : false, - home : false, - end : false, - - keyToHandler : { - 37 : "left", - 39 : "right", - 38 : "up", - 40 : "down", - 33 : "pageUp", - 34 : "pageDown", - 46 : "del", - 36 : "home", - 35 : "end", - 13 : "enter", - 27 : "esc", - 9 : "tab" - }, - - - enable: function(){ - if(this.disabled){ - if(Ext.isIE){ - this.el.on("keydown", this.relay, this); - }else{ - this.el.on("keydown", this.prepareEvent, this); - this.el.on("keypress", this.relay, this); - } - this.disabled = false; - } - }, - - - disable: function(){ - if(!this.disabled){ - if(Ext.isIE){ - this.el.un("keydown", this.relay); - }else{ - this.el.un("keydown", this.prepareEvent); - this.el.un("keypress", this.relay); - } - this.disabled = true; - } - } -}; - -Ext.KeyMap = function(el, config, eventName){ - this.el = Ext.get(el); - this.eventName = eventName || "keydown"; - this.bindings = []; - if(config instanceof Array){ - for(var i = 0, len = config.length; i < len; i++){ - this.addBinding(config[i]); - } - }else{ - this.addBinding(config); - } - this.keyDownDelegate = Ext.EventManager.wrap(this.handleKeyDown, this, true); - this.enable(); -}; - -Ext.KeyMap.prototype = { - - stopEvent : false, - - - addBinding : function(config){ - var keyCode = config.key, - shift = config.shift, - ctrl = config.ctrl, - alt = config.alt, - fn = config.fn, - scope = config.scope; - if(typeof keyCode == "string"){ - var ks = []; - var keyString = keyCode.toUpperCase(); - for(var j = 0, len = keyString.length; j < len; j++){ - ks.push(keyString.charCodeAt(j)); - } - keyCode = ks; - } - var keyArray = keyCode instanceof Array; - var handler = function(e){ - if((!shift || e.shiftKey) && (!ctrl || e.ctrlKey) && (!alt || e.altKey)){ - var k = e.getKey(); - if(keyArray){ - for(var i = 0, len = keyCode.length; i < len; i++){ - if(keyCode[i] == k){ - if(this.stopEvent){ - e.stopEvent(); - } - fn.call(scope || window, k, e); - return; - } - } - }else{ - if(k == keyCode){ - if(this.stopEvent){ - e.stopEvent(); - } - fn.call(scope || window, k, e); - } - } - } - }; - this.bindings.push(handler); - }, - - - handleKeyDown : function(e){ - if(this.enabled){ - var b = this.bindings; - for(var i = 0, len = b.length; i < len; i++){ - b[i].call(this, e); - } - } - }, - - - isEnabled : function(){ - return this.enabled; - }, - - - enable: function(){ - if(!this.enabled){ - this.el.on(this.eventName, this.keyDownDelegate); - this.enabled = true; - } - }, - - - disable: function(){ - if(this.enabled){ - this.el.removeListener(this.eventName, this.keyDownDelegate); - this.enabled = false; - } - } -}; - -Ext.util.TextMetrics = function(){ - var shared; - return { - - measure : function(el, text, fixedWidth){ - if(!shared){ - shared = Ext.util.TextMetrics.Instance(el, fixedWidth); - } - shared.bind(el); - shared.setFixedWidth(fixedWidth || 'auto'); - return shared.getSize(text); - }, - - - createInstance : function(el, fixedWidth){ - return Ext.util.TextMetrics.Instance(el, fixedWidth); - } - }; -}(); - -Ext.util.TextMetrics.Instance = function(bindTo, fixedWidth){ - var ml = new Ext.Element(document.createElement('div')); - document.body.appendChild(ml.dom); - ml.position('absolute'); - ml.setLeftTop(-1000, -1000); - ml.hide(); - - if(fixedWidth){ - mi.setWidth(fixedWidth); - } - - var instance = { - - getSize : function(text){ - ml.update(text); - var s = ml.getSize(); - ml.update(''); - return s; - }, - - - bind : function(el){ - ml.setStyle( - Ext.fly(el).getStyles('font-size','font-style', 'font-weight', 'font-family','line-height') - ); - }, - - - setFixedWidth : function(width){ - ml.setWidth(width); - }, - - - getWidth : function(text){ - ml.dom.style.width = 'auto'; - return this.getSize(text).width; - }, - - - getHeight : function(text){ - return this.getSize(text).height; - } - }; - - instance.bind(bindTo); - - return instance; -}; - -Ext.Element.measureText = Ext.util.TextMetrics.measure; - -Ext.state.Provider = function(){ - Ext.state.Provider.superclass.constructor.call(this); - - this.addEvents({ - "statechange": true - }); - this.state = {}; - Ext.state.Provider.superclass.constructor.call(this); -}; -Ext.extend(Ext.state.Provider, Ext.util.Observable, { - - get : function(name, defaultValue){ - return typeof this.state[name] == "undefined" ? - defaultValue : this.state[name]; - }, - - - clear : function(name){ - delete this.state[name]; - this.fireEvent("statechange", this, name, null); - }, - - - set : function(name, value){ - this.state[name] = value; - this.fireEvent("statechange", this, name, value); - }, - - - decodeValue : function(cookie){ - var re = /^(a|n|d|b|s|o)\:(.*)$/; - var matches = re.exec(unescape(cookie)); - if(!matches || !matches[1]) return; - var type = matches[1]; - var v = matches[2]; - switch(type){ - case "n": - return parseFloat(v); - case "d": - return new Date(Date.parse(v)); - case "b": - return (v == "1"); - case "a": - var all = []; - var values = v.split("^"); - for(var i = 0, len = values.length; i < len; i++){ - all.push(this.decodeValue(values[i])); - } - return all; - case "o": - var all = {}; - var values = v.split("^"); - for(var i = 0, len = values.length; i < len; i++){ - var kv = values[i].split("="); - all[kv[0]] = this.decodeValue(kv[1]); - } - return all; - default: - return v; - } - }, - - - encodeValue : function(v){ - var enc; - if(typeof v == "number"){ - enc = "n:" + v; - }else if(typeof v == "boolean"){ - enc = "b:" + (v ? "1" : "0"); - }else if(v instanceof Date){ - enc = "d:" + v.toGMTString(); - }else if(v instanceof Array){ - var flat = ""; - for(var i = 0, len = v.length; i < len; i++){ - flat += this.encodeValue(v[i]); - if(i != len-1) flat += "^"; - } - enc = "a:" + flat; - }else if(typeof v == "object"){ - var flat = ""; - for(var key in v){ - if(typeof v[key] != "function"){ - flat += key + "=" + this.encodeValue(v[key]) + "^"; - } - } - enc = "o:" + flat.substring(0, flat.length-1); - }else{ - enc = "s:" + v; - } - return escape(enc); - } -}); - - -Ext.state.Manager = function(){ - var provider = new Ext.state.Provider(); - - return { - - setProvider : function(stateProvider){ - provider = stateProvider; - }, - - - get : function(key, defaultValue){ - return provider.get(key, defaultValue); - }, - - - set : function(key, value){ - provider.set(key, value); - }, - - - clear : function(key){ - provider.clear(key); - }, - - - getProvider : function(){ - return provider; - } - }; -}(); - - -Ext.state.CookieProvider = function(config){ - Ext.state.CookieProvider.superclass.constructor.call(this); - this.path = "/"; - this.expires = new Date(new Date().getTime()+(1000*60*60*24*7)); - this.domain = null; - this.secure = false; - Ext.apply(this, config); - this.state = this.readCookies(); -}; - -Ext.extend(Ext.state.CookieProvider, Ext.state.Provider, { - - set : function(name, value){ - if(typeof value == "undefined" || value === null){ - this.clear(name); - return; - } - this.setCookie(name, value); - Ext.state.CookieProvider.superclass.set.call(this, name, value); - }, - - - clear : function(name){ - this.clearCookie(name); - Ext.state.CookieProvider.superclass.clear.call(this, name); - }, - - - readCookies : function(){ - var cookies = {}; - var c = document.cookie + ";"; - var re = /\s?(.*?)=(.*?);/g; - var matches; - while((matches = re.exec(c)) != null){ - var name = matches[1]; - var value = matches[2]; - if(name && name.substring(0,3) == "ys-"){ - cookies[name.substr(3)] = this.decodeValue(value); - } - } - return cookies; - }, - - - setCookie : function(name, value){ - document.cookie = "ys-"+ name + "=" + this.encodeValue(value) + - ((this.expires == null) ? "" : ("; expires=" + this.expires.toGMTString())) + - ((this.path == null) ? "" : ("; path=" + this.path)) + - ((this.domain == null) ? "" : ("; domain=" + this.domain)) + - ((this.secure == true) ? "; secure" : ""); - }, - - - clearCookie : function(name){ - document.cookie = "ys-" + name + "=null; expires=Thu, 01-Jan-70 00:00:01 GMT" + - ((this.path == null) ? "" : ("; path=" + this.path)) + - ((this.domain == null) ? "" : ("; domain=" + this.domain)) + - ((this.secure == true) ? "; secure" : ""); - } -}); - - - -(function() { - -var Event=Ext.EventManager; -var Dom=Ext.lib.Dom; - - -Ext.dd.DragDrop = function(id, sGroup, config) { - if (id) { - this.init(id, sGroup, config); - } -}; - -Ext.dd.DragDrop.prototype = { - - - id: null, - - - config: null, - - - dragElId: null, - - - handleElId: null, - - - invalidHandleTypes: null, - - - invalidHandleIds: null, - - - invalidHandleClasses: null, - - - startPageX: 0, - - - startPageY: 0, - - - groups: null, - - - locked: false, - - - lock: function() { this.locked = true; }, - - - unlock: function() { this.locked = false; }, - - - isTarget: true, - - - padding: null, - - - _domRef: null, - - - __ygDragDrop: true, - - - constrainX: false, - - - constrainY: false, - - - minX: 0, - - - maxX: 0, - - - minY: 0, - - - maxY: 0, - - - maintainOffset: false, - - - xTicks: null, - - - yTicks: null, - - - primaryButtonOnly: true, - - - available: false, - - - hasOuterHandles: false, - - - b4StartDrag: function(x, y) { }, - - - startDrag: function(x, y) { }, - - - b4Drag: function(e) { }, - - - onDrag: function(e) { }, - - - onDragEnter: function(e, id) { }, - - - b4DragOver: function(e) { }, - - - onDragOver: function(e, id) { }, - - - b4DragOut: function(e) { }, - - - onDragOut: function(e, id) { }, - - - b4DragDrop: function(e) { }, - - - onDragDrop: function(e, id) { }, - - - onInvalidDrop: function(e) { }, - - - b4EndDrag: function(e) { }, - - - endDrag: function(e) { }, - - - b4MouseDown: function(e) { }, - - - onMouseDown: function(e) { }, - - - onMouseUp: function(e) { }, - - - onAvailable: function () { - }, - - - defaultPadding : {left:0, right:0, top:0, bottom:0}, - - - constrainTo : function(constrainTo, pad, inContent){ - if(typeof pad == "number"){ - pad = {left: pad, right:pad, top:pad, bottom:pad}; - } - pad = pad || this.defaultPadding; - var b = Ext.get(this.getEl()).getBox(); - var ce = Ext.get(constrainTo); - var s = ce.getScroll(); - var c, cd = ce.dom; - if(cd == document.body){ - c = { x: s.left, y: s.top, width: Ext.lib.Dom.getViewWidth(), height: Ext.lib.Dom.getViewHeight()}; - }else{ - xy = ce.getXY(); - c = {x : xy[0]+s.left, y: xy[1]+s.top, width: cd.clientWidth, height: cd.clientHeight}; - } - - - var topSpace = b.y - c.y; - var leftSpace = b.x - c.x; - - this.resetConstraints(); - this.setXConstraint(leftSpace - (pad.left||0), - c.width - leftSpace - b.width - (pad.right||0) - ); - this.setYConstraint(topSpace - (pad.top||0), - c.height - topSpace - b.height - (pad.bottom||0) - ); - }, - - - getEl: function() { - if (!this._domRef) { - this._domRef = Ext.getDom(this.id); - } - - return this._domRef; - }, - - - getDragEl: function() { - return Ext.getDom(this.dragElId); - }, - - - init: function(id, sGroup, config) { - this.initTarget(id, sGroup, config); - Event.on(this.id, "mousedown", this.handleMouseDown, this); - - }, - - - initTarget: function(id, sGroup, config) { - - - this.config = config || {}; - - - this.DDM = Ext.dd.DDM; - - this.groups = {}; - - - - if (typeof id !== "string") { - id = Ext.id(id); - } - - - this.id = id; - - - this.addToGroup((sGroup) ? sGroup : "default"); - - - - this.handleElId = id; - - - this.setDragElId(id); - - - this.invalidHandleTypes = { A: "A" }; - this.invalidHandleIds = {}; - this.invalidHandleClasses = []; - - this.applyConfig(); - - this.handleOnAvailable(); - }, - - - applyConfig: function() { - - - - this.padding = this.config.padding || [0, 0, 0, 0]; - this.isTarget = (this.config.isTarget !== false); - this.maintainOffset = (this.config.maintainOffset); - this.primaryButtonOnly = (this.config.primaryButtonOnly !== false); - - }, - - - handleOnAvailable: function() { - this.available = true; - this.resetConstraints(); - this.onAvailable(); - }, - - - setPadding: function(iTop, iRight, iBot, iLeft) { - - if (!iRight && 0 !== iRight) { - this.padding = [iTop, iTop, iTop, iTop]; - } else if (!iBot && 0 !== iBot) { - this.padding = [iTop, iRight, iTop, iRight]; - } else { - this.padding = [iTop, iRight, iBot, iLeft]; - } - }, - - - setInitPosition: function(diffX, diffY) { - var el = this.getEl(); - - if (!this.DDM.verifyEl(el)) { - return; - } - - var dx = diffX || 0; - var dy = diffY || 0; - - var p = Dom.getXY( el ); - - this.initPageX = p[0] - dx; - this.initPageY = p[1] - dy; - - this.lastPageX = p[0]; - this.lastPageY = p[1]; - - - this.setStartPosition(p); - }, - - - setStartPosition: function(pos) { - var p = pos || Dom.getXY( this.getEl() ); - this.deltaSetXY = null; - - this.startPageX = p[0]; - this.startPageY = p[1]; - }, - - - addToGroup: function(sGroup) { - this.groups[sGroup] = true; - this.DDM.regDragDrop(this, sGroup); - }, - - - removeFromGroup: function(sGroup) { - if (this.groups[sGroup]) { - delete this.groups[sGroup]; - } - - this.DDM.removeDDFromGroup(this, sGroup); - }, - - - setDragElId: function(id) { - this.dragElId = id; - }, - - - setHandleElId: function(id) { - if (typeof id !== "string") { - id = Ext.id(id); - } - this.handleElId = id; - this.DDM.regHandle(this.id, id); - }, - - - setOuterHandleElId: function(id) { - if (typeof id !== "string") { - id = Ext.id(id); - } - Event.on(id, "mousedown", - this.handleMouseDown, this); - this.setHandleElId(id); - - this.hasOuterHandles = true; - }, - - - unreg: function() { - Event.un(this.id, "mousedown", - this.handleMouseDown); - this._domRef = null; - this.DDM._remove(this); - }, - - - isLocked: function() { - return (this.DDM.isLocked() || this.locked); - }, - - - handleMouseDown: function(e, oDD){ - if (this.primaryButtonOnly && e.button != 0) { - return; - } - - if (this.isLocked()) { - return; - } - - this.DDM.refreshCache(this.groups); - - var pt = new Ext.lib.Point(Ext.lib.Event.getPageX(e), Ext.lib.Event.getPageY(e)); - if (!this.hasOuterHandles && !this.DDM.isOverTarget(pt, this) ) { - } else { - if (this.clickValidator(e)) { - - - this.setStartPosition(); - - - this.b4MouseDown(e); - this.onMouseDown(e); - - this.DDM.handleMouseDown(e, this); - - this.DDM.stopEvent(e); - } else { - - - } - } - }, - - clickValidator: function(e) { - var target = Ext.lib.Event.getTarget(e); - return ( this.isValidHandleChild(target) && - (this.id == this.handleElId || - this.DDM.handleWasClicked(target, this.id)) ); - }, - - - addInvalidHandleType: function(tagName) { - var type = tagName.toUpperCase(); - this.invalidHandleTypes[type] = type; - }, - - - addInvalidHandleId: function(id) { - if (typeof id !== "string") { - id = Ext.id(id); - } - this.invalidHandleIds[id] = id; - }, - - - addInvalidHandleClass: function(cssClass) { - this.invalidHandleClasses.push(cssClass); - }, - - - removeInvalidHandleType: function(tagName) { - var type = tagName.toUpperCase(); - - delete this.invalidHandleTypes[type]; - }, - - - removeInvalidHandleId: function(id) { - if (typeof id !== "string") { - id = Ext.id(id); - } - delete this.invalidHandleIds[id]; - }, - - - removeInvalidHandleClass: function(cssClass) { - for (var i=0, len=this.invalidHandleClasses.length; i= this.minX; i = i - iTickSize) { - if (!tickMap[i]) { - this.xTicks[this.xTicks.length] = i; - tickMap[i] = true; - } - } - - for (i = this.initPageX; i <= this.maxX; i = i + iTickSize) { - if (!tickMap[i]) { - this.xTicks[this.xTicks.length] = i; - tickMap[i] = true; - } - } - - this.xTicks.sort(this.DDM.numericSort) ; - }, - - - setYTicks: function(iStartY, iTickSize) { - this.yTicks = []; - this.yTickSize = iTickSize; - - var tickMap = {}; - - for (var i = this.initPageY; i >= this.minY; i = i - iTickSize) { - if (!tickMap[i]) { - this.yTicks[this.yTicks.length] = i; - tickMap[i] = true; - } - } - - for (i = this.initPageY; i <= this.maxY; i = i + iTickSize) { - if (!tickMap[i]) { - this.yTicks[this.yTicks.length] = i; - tickMap[i] = true; - } - } - - this.yTicks.sort(this.DDM.numericSort) ; - }, - - - setXConstraint: function(iLeft, iRight, iTickSize) { - this.leftConstraint = iLeft; - this.rightConstraint = iRight; - - this.minX = this.initPageX - iLeft; - this.maxX = this.initPageX + iRight; - if (iTickSize) { this.setXTicks(this.initPageX, iTickSize); } - - this.constrainX = true; - }, - - - clearConstraints: function() { - this.constrainX = false; - this.constrainY = false; - this.clearTicks(); - }, - - - clearTicks: function() { - this.xTicks = null; - this.yTicks = null; - this.xTickSize = 0; - this.yTickSize = 0; - }, - - - setYConstraint: function(iUp, iDown, iTickSize) { - this.topConstraint = iUp; - this.bottomConstraint = iDown; - - this.minY = this.initPageY - iUp; - this.maxY = this.initPageY + iDown; - if (iTickSize) { this.setYTicks(this.initPageY, iTickSize); } - - this.constrainY = true; - - }, - - - resetConstraints: function() { - - - - if (this.initPageX || this.initPageX === 0) { - - var dx = (this.maintainOffset) ? this.lastPageX - this.initPageX : 0; - var dy = (this.maintainOffset) ? this.lastPageY - this.initPageY : 0; - - this.setInitPosition(dx, dy); - - - } else { - this.setInitPosition(); - } - - if (this.constrainX) { - this.setXConstraint( this.leftConstraint, - this.rightConstraint, - this.xTickSize ); - } - - if (this.constrainY) { - this.setYConstraint( this.topConstraint, - this.bottomConstraint, - this.yTickSize ); - } - }, - - - getTick: function(val, tickArray) { - - if (!tickArray) { - - - return val; - } else if (tickArray[0] >= val) { - - - return tickArray[0]; - } else { - for (var i=0, len=tickArray.length; i= val) { - var diff1 = val - tickArray[i]; - var diff2 = tickArray[next] - val; - return (diff2 > diff1) ? tickArray[i] : tickArray[next]; - } - } - - - - return tickArray[tickArray.length - 1]; - } - }, - - - toString: function() { - return ("DragDrop " + this.id); - } - -}; - -})(); - - - - -if (!Ext.dd.DragDropMgr) { - - -Ext.dd.DragDropMgr = function() { - - var Event = Ext.EventManager; - - return { - - - ids: {}, - - - handleIds: {}, - - - dragCurrent: null, - - - dragOvers: {}, - - - deltaX: 0, - - - deltaY: 0, - - - preventDefault: true, - - - stopPropagation: true, - - - initalized: false, - - - locked: false, - - - init: function() { - this.initialized = true; - }, - - - POINT: 0, - - - INTERSECT: 1, - - - mode: 0, - - - _execOnAll: function(sMethod, args) { - for (var i in this.ids) { - for (var j in this.ids[i]) { - var oDD = this.ids[i][j]; - if (! this.isTypeOfDD(oDD)) { - continue; - } - oDD[sMethod].apply(oDD, args); - } - } - }, - - - _onLoad: function() { - - this.init(); - - - Event.on(document, "mouseup", this.handleMouseUp, this, true); - Event.on(document, "mousemove", this.handleMouseMove, this, true); - Event.on(window, "unload", this._onUnload, this, true); - Event.on(window, "resize", this._onResize, this, true); - - - }, - - - _onResize: function(e) { - this._execOnAll("resetConstraints", []); - }, - - - lock: function() { this.locked = true; }, - - - unlock: function() { this.locked = false; }, - - - isLocked: function() { return this.locked; }, - - - locationCache: {}, - - - useCache: true, - - - clickPixelThresh: 3, - - - clickTimeThresh: 350, - - - dragThreshMet: false, - - - clickTimeout: null, - - - startX: 0, - - - startY: 0, - - - regDragDrop: function(oDD, sGroup) { - if (!this.initialized) { this.init(); } - - if (!this.ids[sGroup]) { - this.ids[sGroup] = {}; - } - this.ids[sGroup][oDD.id] = oDD; - }, - - - removeDDFromGroup: function(oDD, sGroup) { - if (!this.ids[sGroup]) { - this.ids[sGroup] = {}; - } - - var obj = this.ids[sGroup]; - if (obj && obj[oDD.id]) { - delete obj[oDD.id]; - } - }, - - - _remove: function(oDD) { - for (var g in oDD.groups) { - if (g && this.ids[g][oDD.id]) { - delete this.ids[g][oDD.id]; - } - } - delete this.handleIds[oDD.id]; - }, - - - regHandle: function(sDDId, sHandleId) { - if (!this.handleIds[sDDId]) { - this.handleIds[sDDId] = {}; - } - this.handleIds[sDDId][sHandleId] = sHandleId; - }, - - - isDragDrop: function(id) { - return ( this.getDDById(id) ) ? true : false; - }, - - - getRelated: function(p_oDD, bTargetsOnly) { - var oDDs = []; - for (var i in p_oDD.groups) { - for (j in this.ids[i]) { - var dd = this.ids[i][j]; - if (! this.isTypeOfDD(dd)) { - continue; - } - if (!bTargetsOnly || dd.isTarget) { - oDDs[oDDs.length] = dd; - } - } - } - - return oDDs; - }, - - - isLegalTarget: function (oDD, oTargetDD) { - var targets = this.getRelated(oDD, true); - for (var i=0, len=targets.length;i this.clickPixelThresh || - diffY > this.clickPixelThresh) { - this.startDrag(this.startX, this.startY); - } - } - - if (this.dragThreshMet) { - this.dragCurrent.b4Drag(e); - this.dragCurrent.onDrag(e); - if(!this.dragCurrent.moveOnly){ - this.fireEvents(e, false); - } - } - - this.stopEvent(e); - - return true; - }, - - - fireEvents: function(e, isDrop) { - var dc = this.dragCurrent; - - - - if (!dc || dc.isLocked()) { - return; - } - - var x = Ext.lib.Event.getPageX(e); - var y = Ext.lib.Event.getPageY(e); - var pt = new Ext.lib.Point(x,y); - - - var oldOvers = []; - - var outEvts = []; - var overEvts = []; - var dropEvts = []; - var enterEvts = []; - - - - for (var i in this.dragOvers) { - - var ddo = this.dragOvers[i]; - - if (! this.isTypeOfDD(ddo)) { - continue; - } - - if (! this.isOverTarget(pt, ddo, this.mode)) { - outEvts.push( ddo ); - } - - oldOvers[i] = true; - delete this.dragOvers[i]; - } - - for (var sGroup in dc.groups) { - - if ("string" != typeof sGroup) { - continue; - } - - for (i in this.ids[sGroup]) { - var oDD = this.ids[sGroup][i]; - if (! this.isTypeOfDD(oDD)) { - continue; - } - - if (oDD.isTarget && !oDD.isLocked() && oDD != dc) { - if (this.isOverTarget(pt, oDD, this.mode)) { - - if (isDrop) { - dropEvts.push( oDD ); - - } else { - - - if (!oldOvers[oDD.id]) { - enterEvts.push( oDD ); - - } else { - overEvts.push( oDD ); - } - - this.dragOvers[oDD.id] = oDD; - } - } - } - } - } - - if (this.mode) { - if (outEvts.length) { - dc.b4DragOut(e, outEvts); - dc.onDragOut(e, outEvts); - } - - if (enterEvts.length) { - dc.onDragEnter(e, enterEvts); - } - - if (overEvts.length) { - dc.b4DragOver(e, overEvts); - dc.onDragOver(e, overEvts); - } - - if (dropEvts.length) { - dc.b4DragDrop(e, dropEvts); - dc.onDragDrop(e, dropEvts); - } - - } else { - - var len = 0; - for (i=0, len=outEvts.length; i 2000) { - } else { - setTimeout(DDM._addListeners, 10); - if (document && document.body) { - DDM._timeoutCount += 1; - } - } - } - }, - - - handleWasClicked: function(node, id) { - if (this.isHandle(id, node.id)) { - return true; - } else { - - var p = node.parentNode; - - while (p) { - if (this.isHandle(id, p.id)) { - return true; - } else { - p = p.parentNode; - } - } - } - - return false; - } - - }; - -}(); - - -Ext.dd.DDM = Ext.dd.DragDropMgr; -Ext.dd.DDM._addListeners(); - -} - - -Ext.dd.DD = function(id, sGroup, config) { - if (id) { - this.init(id, sGroup, config); - } -}; - -Ext.extend(Ext.dd.DD, Ext.dd.DragDrop, { - - - scroll: true, - - - autoOffset: function(iPageX, iPageY) { - var x = iPageX - this.startPageX; - var y = iPageY - this.startPageY; - this.setDelta(x, y); - }, - - - setDelta: function(iDeltaX, iDeltaY) { - this.deltaX = iDeltaX; - this.deltaY = iDeltaY; - }, - - - setDragElPos: function(iPageX, iPageY) { - - - - var el = this.getDragEl(); - this.alignElWithMouse(el, iPageX, iPageY); - }, - - - alignElWithMouse: function(el, iPageX, iPageY) { - var oCoord = this.getTargetCoord(iPageX, iPageY); - var fly = el.dom ? el : Ext.fly(el); - if (!this.deltaSetXY) { - var aCoord = [oCoord.x, oCoord.y]; - fly.setXY(aCoord); - var newLeft = fly.getLeft(true); - var newTop = fly.getTop(true); - this.deltaSetXY = [ newLeft - oCoord.x, newTop - oCoord.y ]; - } else { - fly.setLeftTop(oCoord.x + this.deltaSetXY[0], oCoord.y + this.deltaSetXY[1]); - } - - this.cachePosition(oCoord.x, oCoord.y); - this.autoScroll(oCoord.x, oCoord.y, el.offsetHeight, el.offsetWidth); - return oCoord; - }, - - - cachePosition: function(iPageX, iPageY) { - if (iPageX) { - this.lastPageX = iPageX; - this.lastPageY = iPageY; - } else { - var aCoord = Ext.lib.Dom.getXY(this.getEl()); - this.lastPageX = aCoord[0]; - this.lastPageY = aCoord[1]; - } - }, - - - autoScroll: function(x, y, h, w) { - - if (this.scroll) { - - var clientH = Ext.lib.Dom.getViewWidth(); - - - var clientW = Ext.lib.Dom.getViewHeight(); - - - var st = this.DDM.getScrollTop(); - - - var sl = this.DDM.getScrollLeft(); - - - var bot = h + y; - - - var right = w + x; - - - - - var toBot = (clientH + st - y - this.deltaY); - - - var toRight = (clientW + sl - x - this.deltaX); - - - - - var thresh = 40; - - - - - var scrAmt = (document.all) ? 80 : 30; - - - - if ( bot > clientH && toBot < thresh ) { - window.scrollTo(sl, st + scrAmt); - } - - - - if ( y < st && st > 0 && y - st < thresh ) { - window.scrollTo(sl, st - scrAmt); - } - - - - if ( right > clientW && toRight < thresh ) { - window.scrollTo(sl + scrAmt, st); - } - - - - if ( x < sl && sl > 0 && x - sl < thresh ) { - window.scrollTo(sl - scrAmt, st); - } - } - }, - - - getTargetCoord: function(iPageX, iPageY) { - - - var x = iPageX - this.deltaX; - var y = iPageY - this.deltaY; - - if (this.constrainX) { - if (x < this.minX) { x = this.minX; } - if (x > this.maxX) { x = this.maxX; } - } - - if (this.constrainY) { - if (y < this.minY) { y = this.minY; } - if (y > this.maxY) { y = this.maxY; } - } - - x = this.getTick(x, this.xTicks); - y = this.getTick(y, this.yTicks); - - - return {x:x, y:y}; - }, - - - applyConfig: function() { - Ext.dd.DD.superclass.applyConfig.call(this); - this.scroll = (this.config.scroll !== false); - }, - - - b4MouseDown: function(e) { - - this.autoOffset(Ext.lib.Event.getPageX(e), - Ext.lib.Event.getPageY(e)); - }, - - - b4Drag: function(e) { - this.setDragElPos(Ext.lib.Event.getPageX(e), - Ext.lib.Event.getPageY(e)); - }, - - toString: function() { - return ("DD " + this.id); - } - - - - - - -}); - -Ext.dd.DDProxy = function(id, sGroup, config) { - if (id) { - this.init(id, sGroup, config); - this.initFrame(); - } -}; - - -Ext.dd.DDProxy.dragElId = "ygddfdiv"; - -Ext.extend(Ext.dd.DDProxy, Ext.dd.DD, { - - - resizeFrame: true, - - - centerFrame: false, - - - createFrame: function() { - var self = this; - var body = document.body; - - if (!body || !body.firstChild) { - setTimeout( function() { self.createFrame(); }, 50 ); - return; - } - - var div = this.getDragEl(); - - if (!div) { - div = document.createElement("div"); - div.id = this.dragElId; - var s = div.style; - - s.position = "absolute"; - s.visibility = "hidden"; - s.cursor = "move"; - s.border = "2px solid #aaa"; - s.zIndex = 999; - - - - - body.insertBefore(div, body.firstChild); - } - }, - - - initFrame: function() { - this.createFrame(); - }, - - applyConfig: function() { - Ext.dd.DDProxy.superclass.applyConfig.call(this); - - this.resizeFrame = (this.config.resizeFrame !== false); - this.centerFrame = (this.config.centerFrame); - this.setDragElId(this.config.dragElId || Ext.dd.DDProxy.dragElId); - }, - - - showFrame: function(iPageX, iPageY) { - var el = this.getEl(); - var dragEl = this.getDragEl(); - var s = dragEl.style; - - this._resizeProxy(); - - if (this.centerFrame) { - this.setDelta( Math.round(parseInt(s.width, 10)/2), - Math.round(parseInt(s.height, 10)/2) ); - } - - this.setDragElPos(iPageX, iPageY); - - Ext.fly(dragEl).show(); - }, - - - _resizeProxy: function() { - if (this.resizeFrame) { - var el = this.getEl(); - Ext.fly(this.getDragEl()).setSize(el.offsetWidth, el.offsetHeight); - } - }, - - - b4MouseDown: function(e) { - var x = Ext.lib.Event.getPageX(e); - var y = Ext.lib.Event.getPageY(e); - this.autoOffset(x, y); - this.setDragElPos(x, y); - }, - - - b4StartDrag: function(x, y) { - - this.showFrame(x, y); - }, - - - b4EndDrag: function(e) { - Ext.fly(this.getDragEl()).hide(); - }, - - - - - endDrag: function(e) { - - var lel = this.getEl(); - var del = this.getDragEl(); - - - del.style.visibility = ""; - - this.beforeMove(); - - - lel.style.visibility = "hidden"; - Ext.dd.DDM.moveToEl(lel, del); - del.style.visibility = "hidden"; - lel.style.visibility = ""; - - this.afterDrag(); - }, - - beforeMove : function(){ - - }, - - afterDrag : function(){ - - }, - - toString: function() { - return ("DDProxy " + this.id); - } - -}); - -Ext.dd.DDTarget = function(id, sGroup, config) { - if (id) { - this.initTarget(id, sGroup, config); - } -}; - - -Ext.extend(Ext.dd.DDTarget, Ext.dd.DragDrop, { - toString: function() { - return ("DDTarget " + this.id); - } -}); - - -Ext.dd.ScrollManager = function(){ - var ddm = Ext.dd.DragDropMgr; - var els = {}; - var dragEl = null; - var proc = {}; - - var onStop = function(e){ - dragEl = null; - clearProc(); - }; - - var triggerRefresh = function(){ - if(ddm.dragCurrent){ - ddm.refreshCache(ddm.dragCurrent.groups); - } - }; - - var doScroll = function(){ - if(ddm.dragCurrent){ - var dds = Ext.dd.ScrollManager; - if(!dds.animate){ - if(proc.el.scroll(proc.dir, dds.increment)){ - triggerRefresh(); - } - }else{ - proc.el.scroll(proc.dir, dds.increment, true, dds.animDuration, triggerRefresh); - } - } - }; - - var clearProc = function(){ - if(proc.id){ - clearInterval(proc.id); - } - proc.id = 0; - proc.el = null; - proc.dir = ""; - }; - - var startProc = function(el, dir){ - clearProc(); - proc.el = el; - proc.dir = dir; - proc.id = setInterval(doScroll, Ext.dd.ScrollManager.frequency); - }; - - var onFire = function(e, isDrop){ - if(isDrop || !ddm.dragCurrent){ return; } - var dds = Ext.dd.ScrollManager; - if(!dragEl || dragEl != ddm.dragCurrent){ - dragEl = ddm.dragCurrent; - - dds.refreshCache(); - } - - var xy = Ext.lib.Event.getXY(e); - var pt = new Ext.lib.Point(xy[0], xy[1]); - for(var id in els){ - var el = els[id], r = el._region; - if(r.contains(pt) && el.isScrollable()){ - if(r.bottom - pt.y <= dds.thresh){ - if(proc.el != el){ - startProc(el, "down"); - } - return; - }else if(r.right - pt.x <= dds.thresh){ - if(proc.el != el){ - startProc(el, "left"); - } - return; - }else if(pt.y - r.top <= dds.thresh){ - if(proc.el != el){ - startProc(el, "up"); - } - return; - }else if(pt.x - r.left <= dds.thresh){ - if(proc.el != el){ - startProc(el, "right"); - } - return; - } - } - } - clearProc(); - }; - - ddm.fireEvents = ddm.fireEvents.createSequence(onFire, ddm); - ddm.stopDrag = ddm.stopDrag.createSequence(onStop, ddm); - - return { - - register : function(el){ - if(el instanceof Array){ - for(var i = 0, len = el.length; i < len; i++) { - this.register(el[i]); - } - }else{ - el = Ext.get(el); - els[el.id] = el; - } - }, - - - unregister : function(el){ - if(el instanceof Array){ - for(var i = 0, len = el.length; i < len; i++) { - this.unregister(el[i]); - } - }else{ - el = Ext.get(el); - delete els[el.id]; - } - }, - - - thresh : 25, - - - increment : 100, - - - frequency : 500, - - - animate: true, - - - animDuration: .4, - - - refreshCache : function(){ - for(var id in els){ - if(typeof els[id] == 'object'){ - els[id]._region = els[id].getRegion(); - } - } - } - }; -}(); - -Ext.dd.Registry = function(){ - var elements = {}; - var handles = {}; - var autoIdSeed = 0; - - var getId = function(el, autogen){ - if(typeof el == "string"){ - return el; - } - var id = el.id; - if(!id && autogen !== false){ - id = "extdd-" + (++autoIdSeed); - el.id = id; - } - return id; - }; - - return { - - register : function(el, data){ - data = data || {}; - if(typeof el == "string"){ - el = document.getElementById(el); - } - data.ddel = el; - elements[getId(el)] = data; - if(data.isHandle !== false){ - handles[data.ddel.id] = data; - } - if(data.handles){ - var hs = data.handles; - for(var i = 0, len = hs.length; i < len; i++){ - handles[getId(hs[i])] = data; - } - } - }, - - - unregister : function(el){ - var id = getId(el, false); - var data = elements[id]; - if(data){ - delete elements[id]; - if(data.handles){ - var hs = data.handles; - for(var i = 0, len = hs.length; i < len; i++){ - delete handles[getId(hs[i], false)]; - } - } - } - }, - - - getHandle : function(id){ - if(typeof id != "string"){ - id = id.id; - } - return handles[id]; - }, - - - getHandleFromEvent : function(e){ - var t = Ext.lib.Event.getTarget(e); - return t ? handles[t.id] : null; - }, - - - getTarget : function(id){ - if(typeof id != "string"){ - id = id.id; - } - return elements[id]; - }, - - - getTargetFromEvent : function(e){ - var t = Ext.lib.Event.getTarget(e); - return t ? elements[t.id] || handles[t.id] : null; - } - }; -}(); - -Ext.dd.StatusProxy = function(config){ - Ext.apply(this, config); - this.id = this.id || Ext.id(); - this.el = new Ext.Layer({ - dh: { - id: this.id, tag: "div", cls: "x-dd-drag-proxy "+this.dropNotAllowed, children: [ - {tag: "div", cls: "x-dd-drop-icon"}, - {tag: "div", cls: "x-dd-drag-ghost"} - ] - }, - shadow: !config || config.shadow !== false - }); - this.ghost = Ext.get(this.el.dom.childNodes[1]); - this.dropStatus = this.dropNotAllowed; -}; - -Ext.dd.StatusProxy.prototype = { - - dropAllowed : "x-dd-drop-ok", - - dropNotAllowed : "x-dd-drop-nodrop", - - - setStatus : function(cssClass){ - cssClass = cssClass || this.dropNotAllowed; - if(this.dropStatus != cssClass){ - this.el.replaceClass(this.dropStatus, cssClass); - this.dropStatus = cssClass; - } - }, - - - reset : function(clearGhost){ - this.el.dom.className = "x-dd-drag-proxy " + this.dropNotAllowed; - this.dropStatus = this.dropNotAllowed; - if(clearGhost){ - this.ghost.update(""); - } - }, - - - update : function(html){ - if(typeof html == "string"){ - this.ghost.update(html); - }else{ - this.ghost.update(""); - html.style.margin = "0"; - this.ghost.dom.appendChild(html); - } - }, - - - getEl : function(){ - return this.el; - }, - - - getGhost : function(){ - return this.ghost; - }, - - - hide : function(clear){ - this.el.hide(); - if(clear){ - this.reset(true); - } - }, - - - stop : function(){ - if(this.anim && this.anim.isAnimated && this.anim.isAnimated()){ - this.anim.stop(); - } - }, - - - show : function(){ - this.el.show(); - }, - - - sync : function(){ - this.el.sync(); - }, - - - repair : function(xy, callback, scope){ - this.callback = callback; - this.scope = scope; - if(xy && this.animRepair !== false){ - this.el.addClass("x-dd-drag-repair"); - this.el.hideUnders(true); - this.anim = this.el.shift({ - duration: this.repairDuration || .5, - easing: 'easeOut', - xy: xy, - stopFx: true, - callback: this.afterRepair, - scope: this - }); - }else{ - this.afterRepair(); - } - }, - - - afterRepair : function(){ - this.hide(true); - if(typeof this.callback == "function"){ - this.callback.call(this.scope || this); - } - this.callback == null; - this.scope == null; - } -}; - -Ext.dd.DragSource = function(el, config){ - this.el = Ext.get(el); - this.dragData = {}; - - Ext.apply(this, config); - - if(!this.proxy){ - this.proxy = new Ext.dd.StatusProxy(); - } - this.el.on("mouseup", this.handleMouseUp); - Ext.dd.DragSource.superclass.constructor.call(this, this.el.dom, this.ddGroup || this.group, - {dragElId : this.proxy.id, resizeFrame: false, isTarget: false, scroll: this.scroll === true}); - - this.dragging = false; -}; - -Ext.extend(Ext.dd.DragSource, Ext.dd.DDProxy, { - - dropAllowed : "x-dd-drop-ok", - - dropNotAllowed : "x-dd-drop-nodrop", - - - getDragData : function(e){ - return this.dragData; - }, - - - onDragEnter : function(e, id){ - var target = Ext.dd.DragDropMgr.getDDById(id); - this.cachedTarget = target; - if(this.beforeDragEnter(target, e, id) !== false){ - if(target.isNotifyTarget){ - var status = target.notifyEnter(this, e, this.dragData); - this.proxy.setStatus(status); - }else{ - this.proxy.setStatus(this.dropAllowed); - } - - if(this.afterDragEnter){ - - this.afterDragEnter(target, e, id); - } - } - }, - - - beforeDragEnter : function(target, e, id){ - return true; - }, - - - alignElWithMouse: function() { - Ext.dd.DragSource.superclass.alignElWithMouse.apply(this, arguments); - this.proxy.sync(); - }, - - - onDragOver : function(e, id){ - var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id); - if(this.beforeDragOver(target, e, id) !== false){ - if(target.isNotifyTarget){ - var status = target.notifyOver(this, e, this.dragData); - this.proxy.setStatus(status); - } - - if(this.afterDragOver){ - - this.afterDragOver(target, e, id); - } - } - }, - - - beforeDragOver : function(target, e, id){ - return true; - }, - - - onDragOut : function(e, id){ - var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id); - if(this.beforeDragOut(target, e, id) !== false){ - if(target.isNotifyTarget){ - target.notifyOut(this, e, this.dragData); - } - this.proxy.reset(); - if(this.afterDragOut){ - - this.afterDragOut(target, e, id); - } - } - this.cachedTarget = null; - }, - - - beforeDragOut : function(target, e, id){ - return true; - }, - - - onDragDrop : function(e, id){ - var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id); - if(this.beforeDragDrop(target, e, id) !== false){ - if(target.isNotifyTarget){ - if(target.notifyDrop(this, e, this.dragData)){ - this.onValidDrop(target, e, id); - }else{ - this.onInvalidDrop(target, e, id); - } - }else{ - this.onValidDrop(target, e, id); - } - - if(this.afterDragDrop){ - - this.afterDragDrop(target, e, id); - } - } - }, - - - beforeDragDrop : function(target, e, id){ - return true; - }, - - - onValidDrop : function(target, e, id){ - this.hideProxy(); - }, - - - getRepairXY : function(e, data){ - return this.el.getXY(); - }, - - - onInvalidDrop : function(target, e, id){ - this.beforeInvalidDrop(target, e, id); - if(this.cachedTarget){ - if(this.cachedTarget.isNotifyTarget){ - this.cachedTarget.notifyOut(this, e, this.dragData); - } - this.cacheTarget = null; - } - this.proxy.repair(this.getRepairXY(e, this.dragData), this.afterRepair, this); - - if(this.afterInvalidDrop){ - - this.afterInvalidDrop(e, id); - } - }, - - - afterRepair : function(){ - if(Ext.enableFx){ - this.el.highlight(this.hlColor || "c3daf9"); - } - this.dragging = false; - }, - - - beforeInvalidDrop : function(target, e, id){ - return true; - }, - - - handleMouseDown : function(e){ - if(this.dragging) { - return; - } - if(Ext.QuickTips){ - Ext.QuickTips.disable(); - } - var data = this.getDragData(e); - if(data && this.onBeforeDrag(data, e) !== false){ - this.dragData = data; - this.proxy.stop(); - Ext.dd.DragSource.superclass.handleMouseDown.apply(this, arguments); - } - }, - - - handleMouseUp : function(e){ - if(Ext.QuickTips){ - Ext.QuickTips.enable(); - } - }, - - - onBeforeDrag : function(data, e){ - return true; - }, - - - onStartDrag : Ext.emptyFn, - - - startDrag : function(x, y){ - this.proxy.reset(); - this.dragging = true; - this.proxy.update(""); - this.onInitDrag(x, y); - this.proxy.show(); - }, - - - onInitDrag : function(x, y){ - var clone = this.el.dom.cloneNode(true); - clone.id = Ext.id(); - this.proxy.update(clone); - this.onStartDrag(x, y); - return true; - }, - - - getProxy : function(){ - return this.proxy; - }, - - - hideProxy : function(){ - this.proxy.hide(); - this.proxy.reset(true); - this.dragging = false; - }, - - - triggerCacheRefresh : function(){ - Ext.dd.DDM.refreshCache(this.groups); - }, - - - b4EndDrag: function(e) { - }, - - - endDrag : function(e){ - this.onEndDrag(this.dragData, e); - }, - - - onEndDrag : function(data, e){ - }, - - - autoOffset : function(x, y) { - this.setDelta(-12, -20); - } -}); - -Ext.dd.DropTarget = function(el, config){ - this.el = Ext.get(el); - - Ext.apply(this, config); - - if(this.containerScroll){ - Ext.dd.ScrollManager.register(this.el); - } - - Ext.dd.DropTarget.superclass.constructor.call(this, this.el.dom, this.ddGroup || this.group, - {isTarget: true}); - -}; - -Ext.extend(Ext.dd.DropTarget, Ext.dd.DDTarget, { - - - dropAllowed : "x-dd-drop-ok", - - dropNotAllowed : "x-dd-drop-nodrop", - - - isTarget : true, - - - isNotifyTarget : true, - - - notifyEnter : function(dd, e, data){ - if(this.overClass){ - this.el.addClass(this.overClass); - } - return this.dropAllowed; - }, - - - notifyOver : function(dd, e, data){ - return this.dropAllowed; - }, - - - notifyOut : function(dd, e, data){ - if(this.overClass){ - this.el.removeClass(this.overClass); - } - }, - - - notifyDrop : function(dd, e, data){ - return false; - } -}); - -Ext.dd.DragZone = function(el, config){ - Ext.dd.DragZone.superclass.constructor.call(this, el, config); - if(this.containerScroll){ - Ext.dd.ScrollManager.register(this.el); - } -}; - -Ext.extend(Ext.dd.DragZone, Ext.dd.DragSource, { - - - - - getDragData : function(e){ - return Ext.dd.Registry.getHandleFromEvent(e); - }, - - - onInitDrag : function(x, y){ - this.proxy.update(this.dragData.ddel.cloneNode(true)); - this.onStartDrag(x, y); - return true; - }, - - - afterRepair : function(){ - if(Ext.enableFx){ - Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor || "c3daf9"); - } - this.dragging = false; - }, - - - getRepairXY : function(e){ - return Ext.Element.fly(this.dragData.ddel).getXY(); - } -}); - -Ext.dd.DropZone = function(el, config){ - Ext.dd.DropZone.superclass.constructor.call(this, el, config); -}; - -Ext.extend(Ext.dd.DropZone, Ext.dd.DropTarget, { - - getTargetFromEvent : function(e){ - return Ext.dd.Registry.getTargetFromEvent(e); - }, - - - onNodeEnter : function(n, dd, e, data){ - - }, - - - onNodeOver : function(n, dd, e, data){ - return this.dropAllowed; - }, - - - onNodeOut : function(n, dd, e, data){ - - }, - - - onNodeDrop : function(n, dd, e, data){ - return false; - }, - - - onContainerOver : function(dd, e, data){ - return this.dropNotAllowed; - }, - - - onContainerDrop : function(dd, e, data){ - return false; - }, - - - notifyEnter : function(dd, e, data){ - return this.dropNotAllowed; - }, - - - notifyOver : function(dd, e, data){ - var n = this.getTargetFromEvent(e); - if(!n){ - if(this.lastOverNode){ - this.onNodeOut(this.lastOverNode, dd, e, data); - this.lastOverNode = null; - } - return this.onContainerOver(dd, e, data); - } - if(this.lastOverNode != n){ - if(this.lastOverNode){ - this.onNodeOut(this.lastOverNode, dd, e, data); - } - this.onNodeEnter(n, dd, e, data); - this.lastOverNode = n; - } - return this.onNodeOver(n, dd, e, data); - }, - - - notifyOut : function(dd, e, data){ - if(this.lastOverNode){ - this.onNodeOut(this.lastOverNode, dd, e, data); - this.lastOverNode = null; - } - }, - - - notifyDrop : function(dd, e, data){ - if(this.lastOverNode){ - this.onNodeOut(this.lastOverNode, dd, e, data); - this.lastOverNode = null; - } - var n = this.getTargetFromEvent(e); - return n ? - this.onNodeDrop(n, dd, e, data) : - this.onContainerDrop(dd, e, data); - }, - - - triggerCacheRefresh : function(){ - Ext.dd.DDM.refreshCache(this.groups); - } -}); - - -Ext.data.SortTypes = { - - none : function(s){ - return s; - }, - - - stripTagsRE : /<\/?[^>]+>/gi, - - - asText : function(s){ - return String(s).replace(this.stripTagsRE, ""); - }, - - - asUCText : function(s){ - return String(s).toUpperCase().replace(this.stripTagsRE, ""); - }, - - - asUCString : function(s) { - return String(s).toUpperCase(); - }, - - - asDate : function(s) { - if(!s){ - return 0; - } - if(s instanceof Date){ - return s.getTime(); - } - return Date.parse(String(s)); - }, - - - asFloat : function(s) { - var val = parseFloat(String(s).replace(/,/g, "")); - if(isNaN(val)) val = 0; - return val; - }, - - - asInt : function(s) { - var val = parseInt(String(s).replace(/,/g, "")); - if(isNaN(val)) val = 0; - return val; - } -}; - -Ext.data.Record = function(data, id){ - this.id = (id || id === 0) ? id : ++Ext.data.Record.AUTO_ID; - this.data = data; -}; - - -Ext.data.Record.create = function(o){ - var f = function(){ - f.superclass.constructor.apply(this, arguments); - }; - Ext.extend(f, Ext.data.Record); - var p = f.prototype; - p.fields = new Ext.util.MixedCollection(false, function(field){ - return field.name; - }); - for(var i = 0, len = o.length; i < len; i++){ - p.fields.add(new Ext.data.Field(o[i])); - } - f.getField = function(name){ - return p.fields.get(name); - }; - return f; -}; - -Ext.data.Record.AUTO_ID = 1000; -Ext.data.Record.EDIT = 'edit'; -Ext.data.Record.REJECT = 'reject'; -Ext.data.Record.COMMIT = 'commit'; - -Ext.data.Record.prototype = { - - dirty : false, - editing : false, - error: null, - modified: null, - - - join : function(store){ - this.store = store; - }, - - - set : function(name, value){ - if(this.data[name] == value){ - return; - } - this.dirty = true; - if(!this.modified){ - this.modified = {}; - } - if(typeof this.modified[name] == 'undefined'){ - this.modified[name] = this.data[name]; - } - this.data[name] = value; - if(!this.editing){ - this.store.afterEdit(this); - } - }, - - - get : function(name){ - return this.data[name]; - }, - - - beginEdit : function(){ - this.editing = true; - this.modified = {}; - }, - - - cancelEdit : function(){ - this.editing = false; - delete this.modified; - }, - - - endEdit : function(){ - this.editing = false; - if(this.dirty && this.store){ - this.store.afterEdit(this); - } - }, - - - reject : function(){ - var m = this.modified; - for(var n in m){ - if(typeof m[n] != "function"){ - this.data[n] = m[n]; - } - } - this.dirty = false; - delete this.modified; - this.editing = false; - if(this.store){ - this.store.afterReject(this); - } - }, - - - commit : function(){ - this.dirty = false; - delete this.modified; - this.editing = false; - if(this.store){ - this.store.afterCommit(this); - } - }, - - - hasError : function(){ - return this.error != null; - }, - - - clearError : function(){ - this.error = null; - } -}; - -Ext.data.Store = function(config){ - this.data = new Ext.util.MixedCollection(false); - this.data.getKey = function(o){ - return o.id; - }; - this.baseParams = {}; - this.paramNames = { - "start" : "start", - "limit" : "limit", - "sort" : "sort", - "dir" : "dir" - }; - Ext.apply(this, config); - - if(this.reader && !this.recordType){ - this.recordType = this.reader.recordType; - } - - this.fields = this.recordType.prototype.fields; - - this.modified = []; - - this.addEvents({ - - datachanged : true, - - add : true, - - remove : true, - - update : true, - - clear : true, - - beforeload : true, - - load : true, - - loadexception : true - }); - - if(this.proxy){ - this.relayEvents(this.proxy, ["loadexception"]); - } - this.sortToggle = {}; - - Ext.data.Store.superclass.constructor.call(this); -}; -Ext.extend(Ext.data.Store, Ext.util.Observable, { - - - - - - remoteSort : false, - - - lastOptions : null, - - - add : function(records){ - records = [].concat(records); - for(var i = 0, len = records.length; i < len; i++){ - records[i].join(this); - } - var index = this.data.length; - this.data.addAll(records); - this.fireEvent("add", this, records, index); - }, - - - remove : function(record){ - var index = this.data.indexOf(record); - this.data.removeAt(index); - this.fireEvent("remove", this, record, index); - }, - - - removeAll : function(){ - this.data.clear(); - this.fireEvent("clear", this); - }, - - - insert : function(index, records){ - records = [].concat(records); - for(var i = 0, len = records.length; i < len; i++){ - this.data.insert(index, records[i]); - records[i].join(this); - } - this.fireEvent("add", this, records, index); - }, - - - indexOf : function(record){ - return this.data.indexOf(record); - }, - - - indexOfId : function(id){ - return this.data.indexOfKey(id); - }, - - - getById : function(id){ - return this.data.key(id); - }, - - - getAt : function(index){ - return this.data.itemAt(index); - }, - - - getRange : function(start, end){ - return this.data.getRange(start, end); - }, - - - storeOptions : function(o){ - o = Ext.apply({}, o); - delete o.callback; - delete o.scope; - this.lastOptions = o; - }, - - - load : function(options){ - options = options || {}; - if(this.fireEvent("beforeload", this, options) !== false){ - this.storeOptions(options); - var p = Ext.apply(options.params || {}, this.baseParams); - if(this.sortInfo && this.remoteSort){ - var pn = this.paramNames; - p[pn["sort"]] = this.sortInfo.field; - p[pn["dir"]] = this.sortInfo.direction; - } - this.proxy.load(p, this.reader, this.loadRecords, this, options); - } - }, - - - reload : function(options){ - this.load(Ext.applyIf(options||{}, this.lastOptions)); - }, - - - - loadRecords : function(o, options, success){ - if(!o || success === false){ - if(success !== false){ - this.fireEvent("load", this, [], options); - } - if(options.callback){ - options.callback.call(options.scope || this, [], options, false); - } - return; - } - var r = o.records, t = o.totalRecords || r.length; - for(var i = 0, len = r.length; i < len; i++){ - r[i].join(this); - } - if(!options || options.add !== true){ - this.data.clear(); - this.data.addAll(r); - this.totalLength = t; - this.applySort(); - this.fireEvent("datachanged", this); - }else{ - this.totalLength = Math.max(t, this.data.length+r.length); - this.data.addAll(r); - } - this.fireEvent("load", this, r, options); - if(options.callback){ - options.callback.call(options.scope || this, r, options, true); - } - }, - - - loadData : function(o, append){ - var r = this.reader.readRecords(o); - this.loadRecords(r, {add: append}, true); - }, - - - getCount : function(){ - return this.data.length || 0; - }, - - - getTotalCount : function(){ - return this.totalLength || 0; - }, - - - getSortState : function(){ - return this.sortInfo; - }, - - - applySort : function(){ - if(this.sortInfo && !this.remoteSort){ - var s = this.sortInfo, f = s.field; - var st = this.fields.get(f).sortType; - var fn = function(r1, r2){ - var v1 = st(r1.data[f]), v2 = st(r2.data[f]); - return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0); - }; - this.data.sort(s.direction, fn); - if(this.snapshot && this.snapshot != this.data){ - this.snapshot.sort(s.direction, fn); - } - } - }, - - - setDefaultSort : function(field, dir){ - this.sortInfo = {field: field, direction: dir ? dir.toUpperCase() : "ASC"}; - }, - - - sort : function(fieldName, dir){ - var f = this.fields.get(fieldName); - if(!dir){ - if(this.sortInfo && this.sortInfo.field == f.name){ - dir = (this.sortToggle[f.name] || "ASC").toggle("ASC", "DESC"); - }else{ - dir = f.sortDir; - } - } - this.sortToggle[f.name] = dir; - this.sortInfo = {field: f.name, direction: dir}; - if(!this.remoteSort){ - this.applySort(); - this.fireEvent("datachanged", this); - }else{ - this.load(this.lastOptions); - } - }, - - - each : function(fn, scope){ - this.data.each(fn, scope); - }, - - - getModifiedRecords : function(){ - return this.modified; - }, - - - filter : function(property, value){ - if(!value.exec){ - value = String(value); - if(value.length == 0){ - return this.clearFilter(); - } - value = new RegExp("^" + Ext.escapeRe(value), "i"); - } - this.filterBy(function(r){ - return value.test(r.data[property]); - }); - }, - - - filterBy : function(fn, scope){ - var data = this.snapshot || this.data; - this.snapshot = data; - this.data = data.filterBy(fn, scope); - this.fireEvent("datachanged", this); - }, - - - clearFilter : function(suppressEvent){ - if(this.snapshot && this.snapshot != this.data){ - this.data = this.snapshot; - delete this.snapshot; - if(suppressEvent !== true){ - this.fireEvent("datachanged", this); - } - } - }, - - - afterEdit : function(record){ - if(this.modified.indexOf(record) == -1){ - this.modified.push(record); - } - this.fireEvent("update", this, record, Ext.data.Record.EDIT); - }, - - - afterReject : function(record){ - this.modified.remove(record); - this.fireEvent("update", this, record, Ext.data.Record.REJECT); - }, - - - afterCommit : function(record){ - this.modified.remove(record); - this.fireEvent("update", this, record, Ext.data.Record.COMMIT); - }, - - - commitChanges : function(){ - var m = this.modified.slice(0); - this.modified = []; - for(var i = 0, len = m.length; i < len; i++){ - m[i].commit(); - } - }, - - - rejectChanges : function(){ - var m = this.modified.slice(0); - this.modified = []; - for(var i = 0, len = m.length; i < len; i++){ - m[i].reject(); - } - } -}); - -Ext.data.SimpleStore = function(config){ - Ext.data.SimpleStore.superclass.constructor.call(this, { - reader: new Ext.data.ArrayReader({ - id: config.id - }, - Ext.data.Record.create(config.fields) - ), - proxy : new Ext.data.MemoryProxy(config.data) - }); - this.load(); -}; -Ext.extend(Ext.data.SimpleStore, Ext.data.Store); - -Ext.data.Connection = function(config){ - Ext.apply(this, config); - this.addEvents({ - "beforerequest" : true, - "requestcomplete" : true, - "requestexception" : true - }); - Ext.data.Connection.superclass.constructor.call(this); -}; - -Ext.extend(Ext.data.Connection, Ext.util.Observable, { - - - - - timeout : 30000, - - - request : function(options){ - if(this.fireEvent("beforerequest", this, options) !== false){ - var p = options.params; - if(typeof p == "object"){ - p = Ext.urlEncode(Ext.apply(options.params, this.extraParams)); - } - var cb = { - success: this.handleResponse, - failure: this.handleFailure, - scope: this, - argument: {options: options}, - timeout : this.timeout - }; - var method = options.method||this.method||(p ? "POST" : "GET"); - var url = options.url || this.url; - if(this.autoAbort !== false){ - this.abort(); - } - if(method == 'GET' && p){ - url += (url.indexOf('?') != -1 ? '&' : '?') + p; - p = ''; - } - this.transId = Ext.lib.Ajax.request(method, url, cb, p); - }else{ - if(typeof options.callback == "function"){ - options.callback.call(options.scope||window, options, null, null); - } - } - }, - - - isLoading : function(){ - return this.transId ? true : false; - }, - - - abort : function(){ - if(this.isLoading()){ - Ext.lib.Ajax.abort(this.transId); - } - }, - - - handleResponse : function(response){ - this.transId = false; - var options = response.argument.options; - this.fireEvent("requestcomplete", this, response, options); - if(typeof options.callback == "function"){ - options.callback.call(options.scope||window, options, true, response); - } - }, - - - handleFailure : function(response, e){ - this.transId = false; - var options = response.argument.options; - this.fireEvent("requestexception", this, response, options, e); - if(typeof options.callback == "function"){ - options.callback.call(options.scope||window, options, false, response); - } - } -}); -Ext.data.Field = function(config){ - if(typeof config == "string"){ - config = {name: config}; - } - Ext.apply(this, config); - - if(!this.type){ - this.type = "auto"; - } - - var st = Ext.data.SortTypes; - - if(typeof this.sortType == "string"){ - this.sortType = st[this.sortType]; - } - - - if(!this.sortType){ - switch(this.type){ - case "string": - this.sortType = st.asUCString; - break; - case "date": - this.sortType = st.asDate; - break; - default: - this.sortType = st.none; - } - } - - - var stripRe = /[\$,%]/g; - - - - if(!this.convert){ - var cv, dateFormat = this.dateFormat; - switch(this.type){ - case "": - case "auto": - case undefined: - cv = function(v){ return v; }; - break; - case "string": - cv = function(v){ return String(v); }; - break; - case "int": - cv = function(v){ - return v !== undefined && v !== null && v !== '' ? - parseInt(String(v).replace(stripRe, ""), 10) : ''; - }; - break; - case "float": - cv = function(v){ - return v !== undefined && v !== null && v !== '' ? - parseFloat(String(v).replace(stripRe, ""), 10) : ''; - }; - break; - case "bool": - case "boolean": - cv = function(v){ return v === true || v === "true" || v == 1; }; - break; - case "date": - cv = function(v){ - if(!v){ - return ''; - } - if(v instanceof Date){ - return v; - } - if(dateFormat){ - if(dateFormat == "timestamp"){ - return new Date(v*1000); - } - return Date.parseDate(v, dateFormat); - } - var parsed = Date.parse(v); - return parsed ? new Date(parsed) : null; - }; - break; - - } - this.convert = cv; - } -}; - -Ext.data.Field.prototype = { - dateFormat: null, - defaultValue: "", - mapping: null, - sortType : null, - sortDir : "ASC" -}; -Ext.data.DataReader = function(meta, recordType){ - this.meta = meta; - this.recordType = recordType instanceof Array ? - Ext.data.Record.create(recordType) : recordType; -}; - -Ext.data.DataReader.prototype = { - -}; - -Ext.data.DataProxy = function(){ - this.addEvents({ - - beforeload : true, - - load : true, - - loadexception : true - }); - Ext.data.DataProxy.superclass.constructor.call(this); -}; - -Ext.extend(Ext.data.DataProxy, Ext.util.Observable); - -Ext.data.MemoryProxy = function(data){ - Ext.data.MemoryProxy.superclass.constructor.call(this); - this.data = data; -}; - -Ext.extend(Ext.data.MemoryProxy, Ext.data.DataProxy, { - - load : function(params, reader, callback, scope, arg){ - params = params || {}; - var result; - try { - result = reader.readRecords(this.data); - }catch(e){ - this.fireEvent("loadexception", this, arg, null, e); - callback.call(scope, null, arg, false); - return; - } - callback.call(scope, result, arg, true); - }, - - - update : function(params, records){ - - } -}); - -Ext.data.HttpProxy = function(conn){ - Ext.data.HttpProxy.superclass.constructor.call(this); - - this.conn = conn.events ? conn : new Ext.data.Connection(conn); -}; - -Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, { - - getConnection : function(){ - return this.conn; - }, - - - load : function(params, reader, callback, scope, arg){ - if(this.fireEvent("beforeload", this, params) !== false){ - this.conn.request({ - params : params || {}, - request: { - callback : callback, - scope : scope, - arg : arg - }, - reader: reader, - callback : this.loadResponse, - scope: this - }); - }else{ - callback.call(scope||this, null, arg, false); - } - }, - - - loadResponse : function(o, success, response){ - if(!success){ - this.fireEvent("loadexception", this, o, response); - o.request.callback.call(o.request.scope, null, o.request.arg, false); - return; - } - var result; - try { - result = o.reader.read(response); - }catch(e){ - this.fireEvent("loadexception", this, o, response, e); - o.request.callback.call(o.request.scope, null, o.request.arg, false); - return; - } - this.fireEvent("load", this, o, o.request.arg); - o.request.callback.call(o.request.scope, result, o.request.arg, true); - }, - - - update : function(dataSet){ - - }, - - - updateResponse : function(dataSet){ - - } -}); - -Ext.data.ScriptTagProxy = function(config){ - Ext.data.ScriptTagProxy.superclass.constructor.call(this); - Ext.apply(this, config); - this.head = document.getElementsByTagName("head")[0]; -}; - -Ext.data.ScriptTagProxy.TRANS_ID = 1000; - -Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { - - timeout : 30000, - - callbackParam : "callback", - - nocache : true, - - - load : function(params, reader, callback, scope, arg){ - if(this.fireEvent("beforeload", this, params) !== false){ - - var p = Ext.urlEncode(Ext.apply(params, this.extraParams)); - - var url = this.url; - url += (url.indexOf("?") != -1 ? "&" : "?") + p; - if(this.nocache){ - url += "&_dc=" + (new Date().getTime()); - } - var transId = ++Ext.data.ScriptTagProxy.TRANS_ID; - var trans = { - id : transId, - cb : "stcCallback"+transId, - scriptId : "stcScript"+transId, - params : params, - arg : arg, - url : url, - callback : callback, - scope : scope, - reader : reader - }; - var conn = this; - - window[trans.cb] = function(o){ - conn.handleResponse(o, trans); - }; - - url += String.format("&{0}={1}", this.callbackParam, trans.cb); - - if(this.autoAbort !== false){ - this.abort(); - } - - trans.timeoutId = this.handleFailure.defer(this.timeout, this, [trans]); - - var script = document.createElement("script"); - script.setAttribute("src", url); - script.setAttribute("type", "text/javascript"); - script.setAttribute("id", trans.scriptId); - this.head.appendChild(script); - - this.trans = trans; - }else{ - callback.call(scope||this, null, arg, false); - } - }, - - - isLoading : function(){ - return this.trans ? true : false; - }, - - - abort : function(){ - if(this.isLoading()){ - this.destroyTrans(this.trans); - } - }, - - - destroyTrans : function(trans, isLoaded){ - this.head.removeChild(document.getElementById(trans.scriptId)); - clearTimeout(trans.timeoutId); - if(isLoaded){ - window[trans.cb] = undefined; - try{ - delete window[trans.cb]; - }catch(e){} - }else{ - - window[trans.cb] = function(){ - window[trans.cb] = undefined; - try{ - delete window[trans.cb]; - }catch(e){} - }; - } - }, - - - handleResponse : function(o, trans){ - this.trans = false; - this.destroyTrans(trans, true); - var result; - try { - result = trans.reader.readRecords(o); - }catch(e){ - this.fireEvent("loadexception", this, o, trans.arg, e); - trans.callback.call(trans.scope||window, null, trans.arg, false); - return; - } - this.fireEvent("load", this, o, trans.arg); - trans.callback.call(trans.scope||window, result, trans.arg, true); - }, - - - handleFailure : function(trans){ - this.trans = false; - this.destroyTrans(trans, false); - this.fireEvent("loadexception", this, null, trans.arg); - trans.callback.call(trans.scope||window, null, trans.arg, false); - } -}); - -Ext.data.JsonReader = function(meta, recordType){ - Ext.data.JsonReader.superclass.constructor.call(this, meta, recordType); -}; -Ext.extend(Ext.data.JsonReader, Ext.data.DataReader, { - - read : function(response){ - var json = response.responseText; - var o = eval("("+json+")"); - if(!o) { - throw {message: "JsonReader.read: Json object not found"}; - } - return this.readRecords(o); - }, - - - simpleAccess: function(obj, subsc) { - return obj[subsc]; - }, - - - getJsonAccessor: function(){ - var re = /[\[\.]/; - return function(expr) { - try { - return(re.test(expr)) - ? new Function("obj", "return obj." + expr) - : function(obj){ - return obj[expr]; - }; - } catch(e){} - return Ext.emptyFn; - }; - }(), - - - readRecords : function(o){ - - this.jsonData = o; - var s = this.meta, Record = this.recordType, - f = Record.prototype.fields, fi = f.items, fl = f.length; - - - if (!this.ef) { - if(s.totalProperty) { - this.getTotal = this.getJsonAccessor(s.totalProperty); - } - if(s.successProperty) { - this.getSuccess = this.getJsonAccessor(s.successProperty); - } - this.getRoot = s.root ? this.getJsonAccessor(s.root) : function(p){return p;}; - if (s.id) { - var g = this.getJsonAccessor(s.id); - this.getId = function(rec) { - var r = g(rec); - return (r === undefined || r === "") ? null : r; - }; - } else { - this.getId = function(){return null;}; - } - this.ef = []; - for(var i = 0; i < fl; i++){ - f = fi[i]; - var map = (f.mapping !== undefined && f.mapping !== null) ? f.mapping : f.name; - this.ef[i] = this.getJsonAccessor(map); - } - } - - var root = this.getRoot(o), c = root.length, totalRecords = c, success = true; - if(s.totalProperty){ - var v = parseInt(this.getTotal(o), 10); - if(!isNaN(v)){ - totalRecords = v; - } - } - if(s.successProperty){ - var v = this.getSuccess(o); - if(v === false || v === 'false'){ - success = false; - } - } - var records = []; - for(var i = 0; i < c; i++){ - var n = root[i]; - var values = {}; - var id = this.getId(n); - for(var j = 0; j < fl; j++){ - f = fi[j]; - var v = this.ef[j](n); - values[f.name] = f.convert((v !== undefined) ? v : f.defaultValue); - } - var record = new Record(values, id); - record.json = n; - records[i] = record; - } - return { - success : success, - records : records, - totalRecords : totalRecords - }; - } -}); - -Ext.data.XmlReader = function(meta, recordType){ - Ext.data.XmlReader.superclass.constructor.call(this, meta, recordType); -}; -Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, { - - read : function(response){ - var doc = response.responseXML; - if(!doc) { - throw {message: "XmlReader.read: XML Document not available"}; - } - return this.readRecords(doc); - }, - - - readRecords : function(doc){ - - this.xmlData = doc; - var root = doc.documentElement || doc; - var q = Ext.DomQuery; - var recordType = this.recordType, fields = recordType.prototype.fields; - var sid = this.meta.id; - var totalRecords = 0, success = true; - if(this.meta.totalRecords){ - totalRecords = q.selectNumber(this.meta.totalRecords, root, 0); - } - - if(this.meta.success){ - var sv = q.selectValue(this.meta.success, root, true); - success = sv !== false && sv !== 'false'; - } - var records = []; - var ns = q.select(this.meta.record, root); - for(var i = 0, len = ns.length; i < len; i++) { - var n = ns[i]; - var values = {}; - var id = sid ? q.selectValue(sid, n) : undefined; - for(var j = 0, jlen = fields.length; j < jlen; j++){ - var f = fields.items[j]; - var v = q.selectValue(f.mapping || f.name, n, f.defaultValue); - v = f.convert(v); - values[f.name] = v; - } - var record = new recordType(values, id); - record.node = n; - records[records.length] = record; - } - - return { - success : success, - records : records, - totalRecords : totalRecords || records.length - }; - } -}); - -Ext.data.ArrayReader = function(meta, recordType){ - Ext.data.ArrayReader.superclass.constructor.call(this, meta, recordType); -}; - -Ext.extend(Ext.data.ArrayReader, Ext.data.JsonReader, { - - readRecords : function(o){ - var sid = this.meta ? this.meta.id : null; - var recordType = this.recordType, fields = recordType.prototype.fields; - var records = []; - var root = o; - for(var i = 0; i < root.length; i++){ - var n = root[i]; - var values = {}; - var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null); - for(var j = 0, jlen = fields.length; j < jlen; j++){ - var f = fields.items[j]; - var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j; - var v = n[k] !== undefined ? n[k] : f.defaultValue; - v = f.convert(v); - values[f.name] = v; - } - var record = new recordType(values, id); - record.json = n; - records[records.length] = record; - } - return { - records : records, - totalRecords : records.length - }; - } -}); - -Ext.data.Tree = function(root){ - this.nodeHash = {}; - - this.root = null; - if(root){ - this.setRootNode(root); - } - this.addEvents({ - - "append" : true, - - "remove" : true, - - "move" : true, - - "insert" : true, - - "beforeappend" : true, - - "beforeremove" : true, - - "beforemove" : true, - - "beforeinsert" : true - }); - - Ext.data.Tree.superclass.constructor.call(this); -}; - -Ext.extend(Ext.data.Tree, Ext.util.Observable, { - pathSeparator: "/", - - - getRootNode : function(){ - return this.root; - }, - - - setRootNode : function(node){ - this.root = node; - node.ownerTree = this; - node.isRoot = true; - this.registerNode(node); - return node; - }, - - - getNodeById : function(id){ - return this.nodeHash[id]; - }, - - registerNode : function(node){ - this.nodeHash[node.id] = node; - }, - - unregisterNode : function(node){ - delete this.nodeHash[node.id]; - }, - - toString : function(){ - return "[Tree"+(this.id?" "+this.id:"")+"]"; - } -}); - - -Ext.data.Node = function(attributes){ - - this.attributes = attributes || {}; - this.leaf = this.attributes.leaf; - - this.id = this.attributes.id; - if(!this.id){ - this.id = Ext.id(null, "ynode-"); - this.attributes.id = this.id; - } - - this.childNodes = []; - if(!this.childNodes.indexOf){ - this.childNodes.indexOf = function(o){ - for(var i = 0, len = this.length; i < len; i++){ - if(this[i] == o) return i; - } - return -1; - }; - } - - this.parentNode = null; - - this.firstChild = null; - - this.lastChild = null; - - this.previousSibling = null; - - this.nextSibling = null; - - this.addEvents({ - - "append" : true, - - "remove" : true, - - "move" : true, - - "insert" : true, - - "beforeappend" : true, - - "beforeremove" : true, - - "beforemove" : true, - - "beforeinsert" : true - }); - this.listeners = this.attributes.listeners; - Ext.data.Node.superclass.constructor.call(this); -}; - -Ext.extend(Ext.data.Node, Ext.util.Observable, { - fireEvent : function(evtName){ - - if(Ext.data.Node.superclass.fireEvent.apply(this, arguments) === false){ - return false; - } - - var ot = this.getOwnerTree(); - if(ot){ - if(ot.fireEvent.apply(this.ownerTree, arguments) === false){ - return false; - } - } - return true; - }, - - - isLeaf : function(){ - return this.leaf === true; - }, - - - setFirstChild : function(node){ - this.firstChild = node; - }, - - - setLastChild : function(node){ - this.lastChild = node; - }, - - - - isLast : function(){ - return (!this.parentNode ? true : this.parentNode.lastChild == this); - }, - - - isFirst : function(){ - return (!this.parentNode ? true : this.parentNode.firstChild == this); - }, - - hasChildNodes : function(){ - return !this.isLeaf() && this.childNodes.length > 0; - }, - - - appendChild : function(node){ - var multi = false; - if(node instanceof Array){ - multi = node; - }else if(arguments.length > 1){ - multi = arguments; - } - - if(multi){ - for(var i = 0, len = multi.length; i < len; i++) { - this.appendChild(multi[i]); - } - }else{ - if(this.fireEvent("beforeappend", this.ownerTree, this, node) === false){ - return false; - } - var index = this.childNodes.length; - var oldParent = node.parentNode; - - if(oldParent){ - if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index) === false){ - return false; - } - oldParent.removeChild(node); - } - index = this.childNodes.length; - if(index == 0){ - this.setFirstChild(node); - } - this.childNodes.push(node); - node.parentNode = this; - var ps = this.childNodes[index-1]; - if(ps){ - node.previousSibling = ps; - ps.nextSibling = node; - }else{ - node.previousSibling = null; - } - node.nextSibling = null; - this.setLastChild(node); - node.setOwnerTree(this.getOwnerTree()); - this.fireEvent("append", this.ownerTree, this, node, index); - if(oldParent){ - node.fireEvent("move", this.ownerTree, node, oldParent, this, index); - } - return node; - } - }, - - - removeChild : function(node){ - var index = this.childNodes.indexOf(node); - if(index == -1){ - return false; - } - if(this.fireEvent("beforeremove", this.ownerTree, this, node) === false){ - return false; - } - - - this.childNodes.splice(index, 1); - - - if(node.previousSibling){ - node.previousSibling.nextSibling = node.nextSibling; - } - if(node.nextSibling){ - node.nextSibling.previousSibling = node.previousSibling; - } - - - if(this.firstChild == node){ - this.setFirstChild(node.nextSibling); - } - if(this.lastChild == node){ - this.setLastChild(node.previousSibling); - } - - node.setOwnerTree(null); - - node.parentNode = null; - node.previousSibling = null; - node.nextSibling = null; - this.fireEvent("remove", this.ownerTree, this, node); - return node; - }, - - - insertBefore : function(node, refNode){ - if(!refNode){ - return this.appendChild(node); - } - - if(node == refNode){ - return false; - } - - if(this.fireEvent("beforeinsert", this.ownerTree, this, node, refNode) === false){ - return false; - } - var index = this.childNodes.indexOf(refNode); - var oldParent = node.parentNode; - var refIndex = index; - - - if(oldParent == this && this.childNodes.indexOf(node) < index){ - refIndex--; - } - - - if(oldParent){ - if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index, refNode) === false){ - return false; - } - oldParent.removeChild(node); - } - if(refIndex == 0){ - this.setFirstChild(node); - } - this.childNodes.splice(refIndex, 0, node); - node.parentNode = this; - var ps = this.childNodes[refIndex-1]; - if(ps){ - node.previousSibling = ps; - ps.nextSibling = node; - }else{ - node.previousSibling = null; - } - node.nextSibling = refNode; - refNode.previousSibling = node; - node.setOwnerTree(this.getOwnerTree()); - this.fireEvent("insert", this.ownerTree, this, node, refNode); - if(oldParent){ - node.fireEvent("move", this.ownerTree, node, oldParent, this, refIndex, refNode); - } - return node; - }, - - - item : function(index){ - return this.childNodes[index]; - }, - - - replaceChild : function(newChild, oldChild){ - this.insertBefore(newChild, oldChild); - this.removeChild(oldChild); - return oldChild; - }, - - - indexOf : function(child){ - return this.childNodes.indexOf(child); - }, - - - getOwnerTree : function(){ - - if(!this.ownerTree){ - var p = this; - while(p){ - if(p.ownerTree){ - this.ownerTree = p.ownerTree; - break; - } - p = p.parentNode; - } - } - return this.ownerTree; - }, - - - getDepth : function(){ - var depth = 0; - var p = this; - while(p.parentNode){ - ++depth; - p = p.parentNode; - } - return depth; - }, - - - setOwnerTree : function(tree){ - - if(tree != this.ownerTree){ - if(this.ownerTree){ - this.ownerTree.unregisterNode(this); - } - this.ownerTree = tree; - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - cs[i].setOwnerTree(tree); - } - if(tree){ - tree.registerNode(this); - } - } - }, - - - getPath : function(attr){ - attr = attr || "id"; - var p = this.parentNode; - var b = [this.attributes[attr]]; - while(p){ - b.unshift(p.attributes[attr]); - p = p.parentNode; - } - var sep = this.getOwnerTree().pathSeparator; - return sep + b.join(sep); - }, - - - bubble : function(fn, scope, args){ - var p = this; - while(p){ - if(fn.call(scope || p, args || p) === false){ - break; - } - p = p.parentNode; - } - }, - - - cascade : function(fn, scope, args){ - if(fn.call(scope || this, args || this) !== false){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - cs[i].cascade(fn, scope, args); - } - } - }, - - - eachChild : function(fn, scope, args){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - if(fn.call(scope || this, args || cs[i]) === false){ - break; - } - } - }, - - - findChild : function(attribute, value){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - if(cs[i].attributes[attribute] == value){ - return cs[i]; - } - } - return null; - }, - - - findChildBy : function(fn, scope){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - if(fn.call(scope||cs[i], cs[i]) === true){ - return cs[i]; - } - } - return null; - }, - - - sort : function(fn, scope){ - var cs = this.childNodes; - var len = cs.length; - if(len > 0){ - var sortFn = scope ? function(){fn.apply(scope, arguments);} : fn; - cs.sort(sortFn); - for(var i = 0; i < len; i++){ - var n = cs[i]; - n.previousSibling = cs[i-1]; - n.nextSibling = cs[i+1]; - if(i == 0){ - this.setFirstChild(n); - } - if(i == len-1){ - this.setLastChild(n); - } - } - } - }, - - - contains : function(node){ - return node.isAncestor(this); - }, - - - isAncestor : function(node){ - var p = this.parentNode; - while(p){ - if(p == node){ - return true; - } - p = p.parentNode; - } - return false; - }, - - toString : function(){ - return "[Node"+(this.id?" "+this.id:"")+"]"; - } -}); - -Ext.ComponentMgr = function(){ - var all = new Ext.util.MixedCollection(); - - return { - register : function(c){ - all.add(c); - }, - - unregister : function(c){ - all.remove(c); - }, - - - get : function(id){ - return all.get(id); - }, - - - onAvailable : function(id, fn, scope){ - all.on("add", function(index, o){ - if(o.id == id){ - fn.call(scope || o, o); - all.un("add", fn, scope); - } - }); - } - }; -}(); - - -Ext.Component = function(config){ - config = config || {}; - if(config.tagName || config.dom || typeof config == "string"){ config = {el: config, id: config.id || config}; - } - this.initialConfig = config; - - Ext.apply(this, config); - this.addEvents({ - - disable : true, - - enable : true, - - beforeshow : true, - - show : true, - - beforehide : true, - - hide : true, - - beforerender : true, - - render : true, - - beforedestroy : true, - - destroy : true - }); - if(!this.id){ - this.id = "ext-comp-" + (++Ext.Component.AUTO_ID); - } - Ext.ComponentMgr.register(this); - Ext.Component.superclass.constructor.call(this); - this.initComponent(); -}; - -Ext.Component.AUTO_ID = 1000; - -Ext.extend(Ext.Component, Ext.util.Observable, { - - hidden : false, - - disabled : false, - - disabledClass : "x-item-disabled", - - rendered : false, - - allowDomMove: true, - - ctype : "Ext.Component", - - actionMode : "el", - - getActionEl : function(){ - return this[this.actionMode]; - }, - - initComponent : Ext.emptyFn, - - render : function(container, position){ - if(!this.rendered && this.fireEvent("beforerender", this) !== false){ - if(!container && this.el){ - this.el = Ext.get(this.el); - container = this.el.dom.parentNode; - this.allowDomMove = false; - } - this.container = Ext.get(container); - this.rendered = true; - if(position !== undefined){ - if(typeof position == 'number'){ - position = this.container.dom.childNodes[position]; - }else{ - position = Ext.getDom(position); - } - } - this.onRender(this.container, position || null); - if(this.cls){ - this.el.addClass(this.cls); - delete this.cls; - } - if(this.style){ - this.el.applyStyles(this.style); - delete this.style; - } - this.fireEvent("render", this); - this.afterRender(this.container); - if(this.hidden){ - this.hide(); - } - if(this.disabled){ - this.disable(); - } - } - return this; - }, - - onRender : function(ct, position){ - if(this.el){ - this.el = Ext.get(this.el); - if(this.allowDomMove !== false){ - ct.dom.insertBefore(this.el.dom, position); - } - } - }, - - getAutoCreate : function(){ - var cfg = typeof this.autoCreate == "object" ? - this.autoCreate : Ext.apply({}, this.defaultAutoCreate); - if(this.id && !cfg.id){ - cfg.id = this.id; - } - return cfg; - }, - - afterRender : Ext.emptyFn, - - destroy : function(){ - if(this.fireEvent("beforedestroy", this) !== false){ - this.purgeListeners(); - this.beforeDestroy(); - if(this.rendered){ - this.el.removeAllListeners(); - this.el.remove(); - if(this.actionMode == "container"){ - this.container.remove(); - } - } - this.onDestroy(); - Ext.ComponentMgr.unregister(this); - this.fireEvent("destroy", this); - } - }, - - beforeDestroy : function(){ - - }, - - onDestroy : function(){ - - }, - - - getEl : function(){ - return this.el; - }, - - - getId : function(){ - return this.id; - }, - - - focus : function(selectText){ - if(this.rendered){ - this.el.focus(); - if(selectText === true){ - this.el.dom.select(); - } - } - return this; - }, - - blur : function(){ - if(this.rendered){ - this.el.blur(); - } - return this; - }, - - - disable : function(){ - if(this.rendered){ - this.onDisable(); - } - this.disabled = true; - this.fireEvent("disable", this); - return this; - }, - - onDisable : function(){ - this.getActionEl().addClass(this.disabledClass); - this.el.dom.disabled = true; - }, - - - enable : function(){ - if(this.rendered){ - this.onEnable(); - } - this.disabled = false; - this.fireEvent("enable", this); - return this; - }, - - onEnable : function(){ - this.getActionEl().removeClass(this.disabledClass); - this.el.dom.disabled = false; - }, - - - setDisabled : function(disabled){ - this[disabled ? "disable" : "enable"](); - }, - - - show: function(){ - if(this.fireEvent("beforeshow", this) !== false){ - this.hidden = false; - if(this.rendered){ - this.onShow(); - } - this.fireEvent("show", this); - } - return this; - }, - - onShow : function(){ - var st = this.getActionEl().dom.style; - st.display = ""; - st.visibility = "visible"; - }, - - - hide: function(){ - if(this.fireEvent("beforehide", this) !== false){ - this.hidden = true; - if(this.rendered){ - this.onHide(); - } - this.fireEvent("hide", this); - } - return this; - }, - - onHide : function(){ - this.getActionEl().dom.style.display = "none"; - }, - - - setVisible: function(visible){ - if(visible) { - this.show(); - }else{ - this.hide(); - } - return this; - }, - - - isVisible : function(){ - return this.getActionEl().isVisible(); - }, - - cloneConfig : function(overrides){ - overrides = overrides || {}; - var id = overrides.id || Ext.id(); - var cfg = Ext.applyIf(overrides, this.initialConfig); - cfg.id = id; return new this.__extcls(cfg); - } -}); - -(function(){ -Ext.Layer = function(config, existingEl){ - config = config || {}; - var dh = Ext.DomHelper; - var cp = config.parentEl, pel = cp ? Ext.getDom(cp) : document.body; - if(existingEl){ - this.dom = Ext.getDom(existingEl); - } - if(!this.dom){ - var o = config.dh || {tag: "div", cls: "x-layer"}; - this.dom = dh.append(pel, o); - } - if(config.cls){ - this.addClass(config.cls); - } - this.constrain = config.constrain !== false; - this.visibilityMode = Ext.Element.VISIBILITY; - if(config.id){ - this.id = this.dom.id = config.id; - }else{ - this.id = Ext.id(this.dom); - } - this.zindex = config.zindex || this.getZIndex(); - this.position("absolute", this.zindex); - if(config.shadow){ - this.shadowOffset = config.shadowOffset || 4; - this.shadow = new Ext.Shadow({ - offset : this.shadowOffset, - mode : config.shadow - }); - }else{ - this.shadowOffset = 0; - } - this.useShim = config.shim !== false && Ext.useShims; - this.useDisplay = config.useDisplay; - this.hide(); -}; - -var supr = Ext.Element.prototype; - - -var shims = []; - -Ext.extend(Ext.Layer, Ext.Element, { - - getZIndex : function(){ - return this.zindex || parseInt(this.getStyle("z-index"), 10) || 11000; - }, - - getShim : function(){ - if(!this.useShim){ - return null; - } - if(this.shim){ - return this.shim; - } - var shim = shims.shift(); - if(!shim){ - shim = this.createShim(); - shim.enableDisplayMode('block'); - shim.dom.style.display = 'none'; - shim.dom.style.visibility = 'visible'; - } - var pn = this.dom.parentNode; - if(shim.dom.parentNode != pn){ - pn.insertBefore(shim.dom, this.dom); - } - shim.setStyle('z-index', this.getZIndex()-2); - this.shim = shim; - return shim; - }, - - hideShim : function(){ - if(this.shim){ - this.shim.setDisplayed(false); - shims.push(this.shim); - delete this.shim; - } - }, - - disableShadow : function(){ - if(this.shadow){ - this.shadowDisabled = true; - this.shadow.hide(); - this.lastShadowOffset = this.shadowOffset; - this.shadowOffset = 0; - } - }, - - enableShadow : function(show){ - if(this.shadow){ - this.shadowDisabled = false; - this.shadowOffset = this.lastShadowOffset; - delete this.lastShadowOffset; - if(show){ - this.sync(true); - } - } - }, - - - - - sync : function(doShow){ - var sw = this.shadow; - if(!this.updating && this.isVisible() && (sw || this.useShim)){ - var sh = this.getShim(); - - var w = this.getWidth(), - h = this.getHeight(); - - var l = this.getLeft(true), - t = this.getTop(true); - - if(sw && !this.shadowDisabled){ - if(doShow && !sw.isVisible()){ - sw.show(this); - }else{ - sw.realign(l, t, w, h); - } - if(sh){ - if(doShow){ - sh.show(); - } - - var a = sw.adjusts, s = sh.dom.style; - s.left = (Math.min(l, l+a.l))+"px"; - s.top = (Math.min(t, t+a.t))+"px"; - s.width = (w+a.w)+"px"; - s.height = (h+a.h)+"px"; - } - }else if(sh){ - if(doShow){ - sh.show(); - } - sh.setSize(w, h); - sh.setLeftTop(l, t); - } - - } - }, - - - destroy : function(){ - this.hideShim(); - if(this.shadow){ - this.shadow.hide(); - } - this.removeAllListeners(); - var pn = this.dom.parentNode; - if(pn){ - pn.removeChild(this.dom); - } - Ext.Element.uncache(this.id); - }, - - remove : function(){ - this.destroy(); - }, - - - beginUpdate : function(){ - this.updating = true; - }, - - - endUpdate : function(){ - this.updating = false; - this.sync(true); - }, - - - hideUnders : function(negOffset){ - if(this.shadow){ - this.shadow.hide(); - } - this.hideShim(); - }, - - - constrainXY : function(){ - if(this.constrain){ - var vw = Ext.lib.Dom.getViewWidth(), - vh = Ext.lib.Dom.getViewHeight(); - var s = Ext.get(document).getScroll(); - - var xy = this.getXY(); - var x = xy[0], y = xy[1]; - var w = this.dom.offsetWidth+this.shadowOffset, h = this.dom.offsetHeight+this.shadowOffset; - - var moved = false; - - if((x + w) > vw+s.left){ - x = vw - w - this.shadowOffset; - moved = true; - } - if((y + h) > vh+s.top){ - y = vh - h - this.shadowOffset; - moved = true; - } - - if(x < s.left){ - x = s.left; - moved = true; - } - if(y < s.top){ - y = s.top; - moved = true; - } - if(moved){ - if(this.avoidY){ - var ay = this.avoidY; - if(y <= ay && (y+h) >= ay){ - y = ay-h-5; - } - } - xy = [x, y]; - this.storeXY(xy); - supr.setXY.call(this, xy); - this.sync(); - } - } - }, - - isVisible : function(){ - return this.visible; - }, - - - showAction : function(){ - this.visible = true; - if(this.useDisplay === true){ - this.setDisplayed(""); - }else if(this.lastXY){ - supr.setXY.call(this, this.lastXY); - }else if(this.lastLT){ - supr.setLeftTop.call(this, this.lastLT[0], this.lastLT[1]); - } - }, - - - hideAction : function(){ - this.visible = false; - if(this.useDisplay === true){ - this.setDisplayed(false); - }else{ - this.setLeftTop(-10000,-10000); - } - }, - - - setVisible : function(v, a, d, c, e){ - if(v){ - this.showAction(); - } - if(a && v){ - var cb = function(){ - this.sync(true); - if(c){ - c(); - } - }.createDelegate(this); - supr.setVisible.call(this, true, true, d, cb, e); - }else{ - if(!v){ - this.hideUnders(true); - } - var cb = c; - if(a){ - cb = function(){ - this.hideAction(); - if(c){ - c(); - } - }.createDelegate(this); - } - supr.setVisible.call(this, v, a, d, cb, e); - if(v){ - this.sync(true); - }else if(!a){ - this.hideAction(); - } - } - }, - - storeXY : function(xy){ - delete this.lastLT; - this.lastXY = xy; - }, - - storeLeftTop : function(left, top){ - delete this.lastXY; - this.lastLT = [left, top]; - }, - - - beforeFx : function(){ - this.beforeAction(); - return Ext.Layer.superclass.beforeFx.apply(this, arguments); - }, - - - afterFx : function(){ - Ext.Layer.superclass.afterFx.apply(this, arguments); - this.sync(this.isVisible()); - }, - - - beforeAction : function(){ - if(!this.updating && this.shadow){ - this.shadow.hide(); - } - }, - - - setLeft : function(left){ - this.storeLeftTop(left, this.getTop(true)); - supr.setLeft.apply(this, arguments); - this.sync(); - }, - - setTop : function(top){ - this.storeLeftTop(this.getLeft(true), top); - supr.setTop.apply(this, arguments); - this.sync(); - }, - - setLeftTop : function(left, top){ - this.storeLeftTop(left, top); - supr.setLeftTop.apply(this, arguments); - this.sync(); - }, - - setXY : function(xy, a, d, c, e){ - this.fixDisplay(); - this.beforeAction(); - this.storeXY(xy); - var cb = this.createCB(c); - supr.setXY.call(this, xy, a, d, cb, e); - if(!a){ - cb(); - } - }, - - - createCB : function(c){ - var el = this; - return function(){ - el.constrainXY(); - el.sync(true); - if(c){ - c(); - } - }; - }, - - - setX : function(x, a, d, c, e){ - this.setXY([x, this.getY()], a, d, c, e); - }, - - - setY : function(y, a, d, c, e){ - this.setXY([this.getX(), y], a, d, c, e); - }, - - - setSize : function(w, h, a, d, c, e){ - this.beforeAction(); - var cb = this.createCB(c); - supr.setSize.call(this, w, h, a, d, cb, e); - if(!a){ - cb(); - } - }, - - - setWidth : function(w, a, d, c, e){ - this.beforeAction(); - var cb = this.createCB(c); - supr.setWidth.call(this, w, a, d, cb, e); - if(!a){ - cb(); - } - }, - - - setHeight : function(h, a, d, c, e){ - this.beforeAction(); - var cb = this.createCB(c); - supr.setHeight.call(this, h, a, d, cb, e); - if(!a){ - cb(); - } - }, - - - setBounds : function(x, y, w, h, a, d, c, e){ - this.beforeAction(); - var cb = this.createCB(c); - if(!a){ - this.storeXY([x, y]); - supr.setXY.call(this, [x, y]); - supr.setSize.call(this, w, h, a, d, cb, e); - cb(); - }else{ - supr.setBounds.call(this, x, y, w, h, a, d, cb, e); - } - return this; - }, - - - setZIndex : function(zindex){ - this.zindex = zindex; - this.setStyle("z-index", zindex + 2); - if(this.shadow){ - this.shadow.setZIndex(zindex + 1); - } - if(this.shim){ - this.shim.setStyle("z-index", zindex); - } - } -}); -})(); - -Ext.Shadow = function(config){ - Ext.apply(this, config); - if(typeof this.mode != "string"){ - this.mode = this.defaultMode; - } - var o = this.offset, a = {h: 0}; - switch(this.mode.toLowerCase()){ - case "drop": - a.w = 0; - a.l = a.t = o; - break; - case "sides": - a.w = (o*2); - a.l = -o; - a.t = o; - break; - case "frame": - a.w = a.h = (o*2); - a.l = a.t = -o; - break; - }; - this.adjusts = a; -}; - -Ext.Shadow.prototype = { - - - offset: 4, - - defaultMode: "drop", - - - show : function(target){ - target = Ext.get(target); - if(!this.el){ - this.el = Ext.Shadow.Pool.pull(); - if(this.el.dom.nextSibling != target.dom){ - this.el.insertBefore(target); - } - } - this.el.setStyle("z-index", this.zIndex || parseInt(target.getStyle("z-index"), 10)-1); - if(Ext.isIE){ - this.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius="+this.offset+")"; - } - this.realign( - target.getLeft(true), - target.getTop(true), - target.getWidth(), - target.getHeight() - ); - this.el.dom.style.display = "block"; - }, - - - isVisible : function(){ - return this.el ? true : false; - }, - - - realign : function(l, t, w, h){ - if(!this.el){ - return; - } - var a = this.adjusts, d = this.el.dom, s = d.style; - var iea = 0; - if(Ext.isIE){ - iea = -(this.offset); - } - s.left = (l+a.l+iea)+"px"; - s.top = (t+a.t+iea)+"px"; - var sw = (w+a.w), sh = (h+a.h), sws = sw +"px", shs = sh + "px"; - if(s.width != sws || s.height != shs){ - s.width = sws; - s.height = shs; - if(!Ext.isIE){ - var cn = d.childNodes; - var sww = Math.max(0, (sw-12))+"px"; - cn[0].childNodes[1].style.width = sww; - cn[1].childNodes[1].style.width = sww; - cn[2].childNodes[1].style.width = sww; - cn[1].style.height = Math.max(0, (sh-12))+"px"; - } - } - }, - - - hide : function(){ - if(this.el){ - this.el.dom.style.display = "none"; - Ext.Shadow.Pool.push(this.el); - delete this.el; - } - }, - - - setZIndex : function(z){ - this.zIndex = z; - if(this.el){ - this.el.setStyle("z-index", z); - } - } -}; - -Ext.Shadow.Pool = function(){ - var p = []; - var markup = Ext.isIE ? - '
    ' : - '
    '; - return { - pull : function(){ - var sh = p.shift(); - if(!sh){ - sh = Ext.get(Ext.DomHelper.insertHtml("beforeBegin", document.body.firstChild, markup)); - sh.autoBoxAdjust = false; - } - return sh; - }, - - push : function(sh){ - p.push(sh); - } - }; -}(); -Ext.BoxComponent = function(config){ - Ext.BoxComponent.superclass.constructor.call(this, config); - this.addEvents({ - resize : true, - move : true - }); -}; - -Ext.extend(Ext.BoxComponent, Ext.Component, { - boxReady : false, - deferHeight: false, - - setSize : function(w, h){ - if(typeof w == 'object'){ - h = w.height; - w = w.width; - } - if(!this.boxReady){ - this.width = w; - this.height = h; - return; - } - - if(this.lastSize && this.lastSize.width == w && this.lastSize.height == h){ - return; - } - this.lastSize = {width: w, height: h}; - - var adj = this.adjustSize(w, h); - var aw = adj.width, ah = adj.height; - if(aw !== undefined || ah !== undefined){ var rz = this.getResizeEl(); - if(!this.deferHeight && aw !== undefined && ah !== undefined){ - rz.setSize(aw, ah); - }else if(!this.deferHeight && ah !== undefined){ - rz.setHeight(ah); - }else if(aw !== undefined){ - rz.setWidth(aw); - } - this.onResize(aw, ah, w, h); - this.fireEvent('resize', this, aw, ah, w, h); - } - return this; - }, - - getSize : function(){ - return this.el.getSize(); - }, - - getPosition : function(local){ - if(local === true){ - return [this.el.getLeft(true), this.el.getTop(true)]; - } - return this.xy || this.el.getXY(); - }, - - getBox : function(local){ - var s = this.el.getSize(); - if(local){ - s.x = this.el.getLeft(true); - s.y = this.el.getTop(true); - }else{ - var xy = this.xy || this.el.getXY(); - s.x = xy[0]; - s.y = xy[1]; - } - return s; - }, - - updateBox : function(box){ - this.setSize(box.width, box.height); - this.setPagePosition(box.x, box.y); - }, - - getResizeEl : function(){ - return this.resizeEl || this.el; - }, - - setPosition : function(x, y){ - this.x = x; - this.y = y; - if(!this.boxReady){ - return; - } - var adj = this.adjustPosition(x, y); - var ax = adj.x, ay = adj.y; - - if(ax !== undefined || ay !== undefined){ - if(ax !== undefined && ay !== undefined){ - this.el.setLeftTop(ax, ay); - }else if(ax !== undefined){ - this.el.setLeft(ax); - }else if(ay !== undefined){ - this.el.setTop(ay); - } - this.onPosition(ax, ay); - this.fireEvent('move', this, ax, ay); - } - return this; - }, - - setPagePosition : function(x, y){ - this.pageX = x; - this.pageY = y; - if(!this.boxReady){ - return; - } - if(x === undefined || y === undefined){ return; - } - var p = this.el.translatePoints(x, y); - this.setPosition(p.left, p.top); - return this; - }, - - onRender : function(ct, position){ - Ext.BoxComponent.superclass.onRender.call(this, ct, position); - if(this.resizeEl){ - this.resizeEl = Ext.get(this.resizeEl); - } - }, - - afterRender : function(){ - Ext.BoxComponent.superclass.afterRender.call(this); - this.boxReady = true; - this.setSize(this.width, this.height); - if(this.x || this.y){ - this.setPosition(this.x, this.y); - } - if(this.pageX || this.pageY){ - this.setPagePosition(this.pageX, this.pageY); - } - }, - - syncSize : function(){ - this.setSize(this.el.getWidth(), this.el.getHeight()); - }, - - onResize : function(adjWidth, adjHeight, rawWidth, rawHeight){ - - }, - - onPosition : function(x, y){ - - }, - - adjustSize : function(w, h){ - if(this.autoWidth){ - w = 'auto'; - } - if(this.autoHeight){ - h = 'auto'; - } - return {width : w, height: h}; - }, - - adjustPosition : function(x, y){ - return {x : x, y: y}; - } -}); - -Ext.View = function(container, tpl, config){ - this.el = Ext.get(container, true); - if(typeof tpl == "string"){ - tpl = new Ext.Template(tpl); - } - tpl.compile(); - - this.tpl = tpl; - - Ext.apply(this, config); - - - this.addEvents({ - - "beforeclick" : true, - - "click" : true, - - "dblclick" : true, - - "contextmenu" : true, - - "selectionchange" : true, - - - "beforeselect" : true - }); - - this.el.on({ - "click": this.onClick, - "dblclick": this.onDblClick, - "contextmenu": this.onContextMenu, - scope:this - }); - - this.selections = []; - this.nodes = []; - this.cmp = new Ext.CompositeElementLite([]); - if(this.store){ - this.setStore(this.store, true); - } - Ext.View.superclass.constructor.call(this); -}; - -Ext.extend(Ext.View, Ext.util.Observable, { - - selectedClass : "x-view-selected", - - emptyText : "", - - getEl : function(){ - return this.el; - }, - - - refresh : function(){ - var t = this.tpl; - this.clearSelections(); - this.el.update(""); - var html = []; - var records = this.store.getRange(); - if(records.length < 1){ - this.el.update(this.emptyText); - return; - } - for(var i = 0, len = records.length; i < len; i++){ - var data = this.prepareData(records[i].data, i, records[i]); - html[html.length] = t.apply(data); - } - this.el.update(html.join("")); - this.nodes = this.el.dom.childNodes; - this.updateIndexes(0); - }, - - - prepareData : function(data){ - return data; - }, - - onUpdate : function(ds, record){ - this.clearSelections(); - var index = this.store.indexOf(record); - var n = this.nodes[index]; - this.tpl.insertBefore(n, this.prepareData(record.data)); - n.parentNode.removeChild(n); - this.updateIndexes(index, index); - }, - - onAdd : function(ds, records, index){ - this.clearSelections(); - if(this.nodes.length == 0){ - this.refresh(); - return; - } - var n = this.nodes[index]; - for(var i = 0, len = records.length; i < len; i++){ - var d = this.prepareData(records[i].data); - if(n){ - this.tpl.insertBefore(n, d); - }else{ - this.tpl.append(this.el, d); - } - } - this.updateIndexes(index); - }, - - onRemove : function(ds, record, index){ - this.clearSelections(); - this.el.dom.removeChild(this.nodes[index]); - this.updateIndexes(index); - }, - - - refreshNode : function(index){ - this.onUpdate(this.store, this.store.getAt(index)); - }, - - updateIndexes : function(startIndex, endIndex){ - var ns = this.nodes; - startIndex = startIndex || 0; - endIndex = endIndex || ns.length - 1; - for(var i = startIndex; i <= endIndex; i++){ - ns[i].nodeIndex = i; - } - }, - - - setStore : function(store, initial){ - if(!initial && this.store){ - this.store.un("datachanged", this.refresh); - this.store.un("add", this.onAdd); - this.store.un("remove", this.onRemove); - this.store.un("update", this.onUpdate); - this.store.un("clear", this.refresh); - } - if(store){ - store.on("datachanged", this.refresh, this); - store.on("add", this.onAdd, this); - store.on("remove", this.onRemove, this); - store.on("update", this.onUpdate, this); - store.on("clear", this.refresh, this); - } - this.store = store; - this.refresh(); - }, - - - findItemFromChild : function(node){ - var el = this.el.dom; - if(!node || node.parentNode == el){ - return node; - } - var p = node.parentNode; - while(p && p != el){ - if(p.parentNode == el){ - return p; - } - p = p.parentNode; - } - return null; - }, - - - onClick : function(e){ - var item = this.findItemFromChild(e.getTarget()); - if(item){ - var index = this.indexOf(item); - if(this.onItemClick(item, index, e) !== false){ - this.fireEvent("click", this, index, item, e); - } - }else{ - this.clearSelections(); - } - }, - - - onContextMenu : function(e){ - var item = this.findItemFromChild(e.getTarget()); - if(item){ - this.fireEvent("contextmenu", this, this.indexOf(item), item, e); - } - }, - - - onDblClick : function(e){ - var item = this.findItemFromChild(e.getTarget()); - if(item){ - this.fireEvent("dblclick", this, this.indexOf(item), item, e); - } - }, - - onItemClick : function(item, index, e){ - if(this.fireEvent("beforeclick", this, index, item, e) === false){ - return false; - } - if(this.multiSelect || this.singleSelect){ - if(this.multiSelect && e.shiftKey && this.lastSelection){ - this.select(this.getNodes(this.indexOf(this.lastSelection), index), false); - }else{ - this.select(item, this.multiSelect && e.ctrlKey); - this.lastSelection = item; - } - e.preventDefault(); - } - return true; - }, - - - getSelectionCount : function(){ - return this.selections.length; - }, - - - getSelectedNodes : function(){ - return this.selections; - }, - - - getSelectedIndexes : function(){ - var indexes = [], s = this.selections; - for(var i = 0, len = s.length; i < len; i++){ - indexes.push(s[i].nodeIndex); - } - return indexes; - }, - - - clearSelections : function(suppressEvent){ - if(this.nodes && (this.multiSelect || this.singleSelect) && this.selections.length > 0){ - this.cmp.elements = this.selections; - this.cmp.removeClass(this.selectedClass); - this.selections = []; - if(!suppressEvent){ - this.fireEvent("selectionchange", this, this.selections); - } - } - }, - - - isSelected : function(node){ - var s = this.selections; - if(s.length < 1){ - return false; - } - node = this.getNode(node); - return s.indexOf(node) !== -1; - }, - - - select : function(nodeInfo, keepExisting, suppressEvent){ - if(nodeInfo instanceof Array){ - if(!keepExisting){ - this.clearSelections(true); - } - for(var i = 0, len = nodeInfo.length; i < len; i++){ - this.select(nodeInfo[i], true, true); - } - } else{ - var node = this.getNode(nodeInfo); - if(node && !this.isSelected(node)){ - if(!keepExisting){ - this.clearSelections(true); - } - if(this.fireEvent("beforeselect", this, node, this.selections) !== false){ - Ext.fly(node).addClass(this.selectedClass); - this.selections.push(node); - if(!suppressEvent){ - this.fireEvent("selectionchange", this, this.selections); - } - } - } - } - }, - - - getNode : function(nodeInfo){ - if(typeof nodeInfo == "string"){ - return document.getElementById(nodeInfo); - }else if(typeof nodeInfo == "number"){ - return this.nodes[nodeInfo]; - } - return nodeInfo; - }, - - - getNodes : function(start, end){ - var ns = this.nodes; - start = start || 0; - end = typeof end == "undefined" ? ns.length - 1 : end; - var nodes = []; - if(start <= end){ - for(var i = start; i <= end; i++){ - nodes.push(ns[i]); - } - } else{ - for(var i = start; i >= end; i--){ - nodes.push(ns[i]); - } - } - return nodes; - }, - - - indexOf : function(node){ - node = this.getNode(node); - if(typeof node.nodeIndex == "number"){ - return node.nodeIndex; - } - var ns = this.nodes; - for(var i = 0, len = ns.length; i < len; i++){ - if(ns[i] == node){ - return i; - } - } - return -1; - } -}); - - -Ext.JsonView = function(container, tpl, config){ - Ext.JsonView.superclass.constructor.call(this, container, tpl, config); - - var um = this.el.getUpdateManager(); - um.setRenderer(this); - um.on("update", this.onLoad, this); - um.on("failure", this.onLoadException, this); - - - - - this.addEvents({ - 'beforerender' : true, - 'load' : true, - 'loadexception' : true - }); -}; -Ext.extend(Ext.JsonView, Ext.View, { - - jsonRoot : "", - - - refresh : function(){ - this.clearSelections(); - this.el.update(""); - var html = []; - var o = this.jsonData; - if(o && o.length > 0){ - for(var i = 0, len = o.length; i < len; i++){ - var data = this.prepareData(o[i], i, o); - html[html.length] = this.tpl.apply(data); - } - }else{ - html.push(this.emptyText); - } - this.el.update(html.join("")); - this.nodes = this.el.dom.childNodes; - this.updateIndexes(0); - }, - - - load : function(){ - var um = this.el.getUpdateManager(); - um.update.apply(um, arguments); - }, - - render : function(el, response){ - this.clearSelections(); - this.el.update(""); - var o; - try{ - o = Ext.util.JSON.decode(response.responseText); - if(this.jsonRoot){ - o = eval("o." + this.jsonRoot); - } - } catch(e){ - } - - this.jsonData = o; - this.beforeRender(); - this.refresh(); - }, - - - getCount : function(){ - return this.jsonData ? this.jsonData.length : 0; - }, - - - getNodeData : function(node){ - if(node instanceof Array){ - var data = []; - for(var i = 0, len = node.length; i < len; i++){ - data.push(this.getNodeData(node[i])); - } - return data; - } - return this.jsonData[this.indexOf(node)] || null; - }, - - beforeRender : function(){ - this.snapshot = this.jsonData; - if(this.sortInfo){ - this.sort.apply(this, this.sortInfo); - } - this.fireEvent("beforerender", this, this.jsonData); - }, - - onLoad : function(el, o){ - this.fireEvent("load", this, this.jsonData, o); - }, - - onLoadException : function(el, o){ - this.fireEvent("loadexception", this, o); - }, - - - filter : function(property, value){ - if(this.jsonData){ - var data = []; - var ss = this.snapshot; - if(typeof value == "string"){ - var vlen = value.length; - if(vlen == 0){ - this.clearFilter(); - return; - } - value = value.toLowerCase(); - for(var i = 0, len = ss.length; i < len; i++){ - var o = ss[i]; - if(o[property].substr(0, vlen).toLowerCase() == value){ - data.push(o); - } - } - } else if(value.exec){ - for(var i = 0, len = ss.length; i < len; i++){ - var o = ss[i]; - if(value.test(o[property])){ - data.push(o); - } - } - } else{ - return; - } - this.jsonData = data; - this.refresh(); - } - }, - - - filterBy : function(fn, scope){ - if(this.jsonData){ - var data = []; - var ss = this.snapshot; - for(var i = 0, len = ss.length; i < len; i++){ - var o = ss[i]; - if(fn.call(scope || this, o)){ - data.push(o); - } - } - this.jsonData = data; - this.refresh(); - } - }, - - - clearFilter : function(){ - if(this.snapshot && this.jsonData != this.snapshot){ - this.jsonData = this.snapshot; - this.refresh(); - } - }, - - - - sort : function(property, dir, sortType){ - this.sortInfo = Array.prototype.slice.call(arguments, 0); - if(this.jsonData){ - var p = property; - var dsc = dir && dir.toLowerCase() == "desc"; - var f = function(o1, o2){ - var v1 = sortType ? sortType(o1[p]) : o1[p]; - var v2 = sortType ? sortType(o2[p]) : o2[p]; - ; - if(v1 < v2){ - return dsc ? +1 : -1; - } else if(v1 > v2){ - return dsc ? -1 : +1; - } else{ - return 0; - } - }; - this.jsonData.sort(f); - this.refresh(); - if(this.jsonData != this.snapshot){ - this.snapshot.sort(f); - } - } - } -}); - -Ext.ColorPalette = function(config){ - Ext.ColorPalette.superclass.constructor.call(this, config); - this.addEvents({ - - select: true - }); - - if(this.handler){ - this.on("select", this.handler, this.scope, true); - } -}; -Ext.extend(Ext.ColorPalette, Ext.Component, { - - itemCls : "x-color-palette", - - value : null, - - ctype: "Ext.ColorPalette", - - - colors : [ - "000000", "993300", "333300", "003300", "003366", "000080", "333399", "333333", - "800000", "FF6600", "808000", "008000", "008080", "0000FF", "666699", "808080", - "FF0000", "FF9900", "99CC00", "339966", "33CCCC", "3366FF", "800080", "969696", - "FF00FF", "FFCC00", "FFFF00", "00FF00", "00FFFF", "00CCFF", "993366", "C0C0C0", - "FF99CC", "FFCC99", "FFFF99", "CCFFCC", "CCFFFF", "99CCFF", "CC99FF", "FFFFFF" - ], - - onRender : function(container, position){ - var t = new Ext.MasterTemplate( - ' ' - ); - var c = this.colors; - for(var i = 0, len = c.length; i < len; i++){ - t.add([c[i]]); - } - var el = document.createElement("div"); - el.className = this.itemCls; - t.overwrite(el); - container.dom.insertBefore(el, position); - this.el = Ext.get(el); - this.el.on("click", this.handleClick, this, {delegate: "a"}); - }, - - afterRender : function(){ - Ext.ColorPalette.superclass.afterRender.call(this); - if(this.value){ - var s = this.value; - this.value = null; - this.select(s); - } - }, - - handleClick : function(e, t){ - e.preventDefault(); - if(!this.disabled){ - var c = t.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1]; - this.select(c.toUpperCase()); - } - }, - - - select : function(color){ - color = color.replace("#", ""); - if(color != this.value){ - var el = this.el; - if(this.value){ - el.child("a.color-"+this.value).removeClass("x-color-palette-sel"); - } - el.child("a.color-"+color).addClass("x-color-palette-sel"); - this.value = color; - this.fireEvent("select", this, color); - } - } -}); - -Ext.DatePicker = function(config){ - Ext.DatePicker.superclass.constructor.call(this, config); - - this.value = config && config.value ? - config.value.clearTime() : new Date().clearTime(); - - this.addEvents({ - - select: true - }); - - if(this.handler){ - this.on("select", this.handler, this.scope || this); - } - - if(!this.disabledDatesRE && this.disabledDates){ - var dd = this.disabledDates; - var re = "(?:"; - for(var i = 0; i < dd.length; i++){ - re += dd[i]; - if(i != dd.length-1) re += "|"; - } - this.disabledDatesRE = new RegExp(re + ")"); - } -}; - -Ext.extend(Ext.DatePicker, Ext.Component, { - - todayText : "Today", - - todayTip : "{0} (Spacebar)", - - minDate : null, - - maxDate : null, - - minText : "This date is before the minimum date", - - maxText : "This date is after the maximum date", - - format : "m/d/y", - - disabledDays : null, - - disabledDaysText : "", - - disabledDatesRE : null, - - disabledDatesText : "", - - constrainToViewport : true, - - monthNames : Date.monthNames, - - dayNames : Date.dayNames, - - nextText: 'Next Month (Control+Right)', - - prevText: 'Previous Month (Control+Left)', - - monthYearText: 'Choose a month (Control+Up/Down to move years)', - - startDay : 0, - - - setValue : function(value){ - var old = this.value; - this.value = value.clearTime(true); - if(this.el){ - this.update(this.value); - } - }, - - - getValue : function(){ - return this.value; - }, - - - focus : function(){ - if(this.el){ - this.update(this.activeDate); - } - }, - - - onRender : function(container, position){ - var m = [ - '', - '', - '
      
    ']; - var dn = this.dayNames; - for(var i = 0; i < 7; i++){ - var d = this.startDay+i; - if(d > 6){ - d = d-7; - } - m.push(""); - } - m[m.length] = ""; - for(var i = 0; i < 42; i++) { - if(i % 7 == 0 && i != 0){ - m[m.length] = ""; - } - m[m.length] = ''; - } - m[m.length] = '
    ", dn[d].substr(0,1), "
    '; - - var el = document.createElement("div"); - el.className = "x-date-picker"; - el.innerHTML = m.join(""); - - container.dom.insertBefore(el, position); - - this.el = Ext.get(el); - new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"), {handler: this.showPrevMonth, scope: this}); - new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"), {handler: this.showNextMonth, scope: this}); - - this.el.on("mousewheel", this.handleMouseWheel, this); - - - var kn = new Ext.KeyNav(this.el, { - "left" : function(e){ - e.ctrlKey ? - this.showPrevMonth() : - this.update(this.activeDate.add("d", -1)); - }, - - "right" : function(e){ - e.ctrlKey ? - this.showNextMonth() : - this.update(this.activeDate.add("d", 1)); - }, - - "up" : function(e){ - e.ctrlKey ? - this.showNextYear() : - this.update(this.activeDate.add("d", -7)); - }, - - "down" : function(e){ - e.ctrlKey ? - this.showPrevYear() : - this.update(this.activeDate.add("d", 7)); - }, - - "pageUp" : function(e){ - this.showNextMonth(); - }, - - "pageDown" : function(e){ - this.showPrevMonth(); - }, - - "enter" : function(e){ - e.stopPropagation(); - return true; - }, - - scope : this - }); - - this.el.on("click", this.handleDateClick, this, {delegate: "a.x-date-date"}); - - this.el.addKeyListener(Ext.EventObject.SPACE, this.selectToday, this); - - this.el.unselectable(); - - this.cells = this.el.select("table.x-date-inner tbody td"); - this.textNodes = this.el.query("table.x-date-inner tbody span"); - - var mmenu = new Ext.menu.Menu({ - plain:true, - cls: "x-date-mmenu", - allowOtherMenus : true - }); - - var menuGroup = Ext.id()+"months"; - for(var i = 0; i < 12; i++){ - mmenu.add(new Ext.menu.CheckItem({ - id: "mm-"+i, - text: this.monthNames[i], - group:menuGroup, - month: i - })); - } - - mmenu.on({ - "beforeshow" : function(){ - mmenu.items.get("mm-"+(this.activeDate || this.value).getMonth()).setChecked(true); - }, - "itemclick" : function(item){ - var d = (this.activeDate || this.value).clone(); - d.setMonth(item.month); - this.update(d); - }, - "show" : function(m){ - this.visibleRegion = m.el.getRegion().adjust(2, 2, -2, -2); - }, - "mouseout" : function(m, e){ - if(!this.visibleRegion.contains(e.getPoint())){ - m.hide(); - } - }, - scope: this - }); - - this.mbtn = new Ext.Button(this.el.child("td.x-date-middle", true), { - menu: mmenu, - text: " ", - menuAlign: "c-c?", - tooltip: this.monthYearText - }); - - var today = (new Date()).dateFormat(this.format); - var todayBtn = new Ext.Button(this.el.child("td.x-date-bottom", true), { - text: String.format(this.todayText, today), - tooltip: String.format(this.todayTip, today), - handler: this.selectToday, - scope: this - }); - - if(Ext.isIE){ - this.el.repaint(); - } - this.update(this.value); - }, - - - showPrevMonth : function(e){ - this.update(this.activeDate.add("mo", -1)); - }, - - - showNextMonth : function(e){ - this.update(this.activeDate.add("mo", 1)); - }, - - - showPrevYear : function(){ - this.update(this.activeDate.add("y", -1)); - }, - - - showNextYear : function(){ - this.update(this.activeDate.add("y", 1)); - }, - - - handleMouseWheel : function(e){ - var delta = e.getWheelDelta(); - if(delta > 0){ - this.showPrevMonth(); - e.stopEvent(); - } else if(delta < 0){ - this.showNextMonth(); - e.stopEvent(); - } - }, - - - handleDateClick : function(e, t){ - e.stopEvent(); - if(t.dateValue && !Ext.fly(t.parentNode).hasClass("x-date-disabled")){ - this.setValue(new Date(t.dateValue)); - this.fireEvent("select", this, this.value); - } - }, - - - selectToday : function(){ - this.setValue(new Date().clearTime()); - this.fireEvent("select", this, this.value); - }, - - - update : function(date){ - var vd = this.activeDate; - this.activeDate = date; - - if(vd && this.el){ - var t = date.getTime(); - if(vd.getMonth() == date.getMonth() && vd.getFullYear() == date.getFullYear()){ - this.cells.removeClass("x-date-selected"); - this.cells.each(function(c){ - if(c.dom.firstChild.dateValue == t){ - c.addClass("x-date-selected"); - setTimeout(function(){ - try{c.dom.firstChild.focus();}catch(e){} - }, 50); - return false; - } - }); - return; - } - } - var days = date.getDaysInMonth(); - var firstOfMonth = date.getFirstDateOfMonth(); - var startingPos = firstOfMonth.getDay()-this.startDay; - - if(startingPos <= this.startDay){ - startingPos += 7; - } - - var pm = date.add("mo", -1); - var prevStart = pm.getDaysInMonth()-startingPos; - - var cells = this.cells.elements; - var textEls = this.textNodes; - days += startingPos; - - - var day = 86400000; - var d = (new Date(pm.getFullYear(), pm.getMonth(), prevStart)).clearTime(); - var today = new Date().clearTime().getTime(); - var sel = date.clearTime().getTime(); - var min = this.minDate ? this.minDate.clearTime() : Number.NEGATIVE_INFINITY; - var max = this.maxDate ? this.maxDate.clearTime() : Number.POSITIVE_INFINITY; - var ddMatch = this.disabledDatesRE; - var ddText = this.disabledDatesText; - var ddays = this.disabledDays ? this.disabledDays.join("") : false; - var ddaysText = this.disabledDaysText; - var format = this.format; - - var setCellClass = function(cal, cell){ - cell.title = ""; - var t = d.getTime(); - cell.firstChild.dateValue = t; - if(t == today){ - cell.className += " x-date-today"; - cell.title = cal.todayText; - } - if(t == sel){ - cell.className += " x-date-selected"; - setTimeout(function(){ - try{cell.firstChild.focus();}catch(e){} - }, 50); - } - - if(t < min) { - cell.className = " x-date-disabled"; - cell.title = cal.minText; - return; - } - if(t > max) { - cell.className = " x-date-disabled"; - cell.title = cal.maxText; - return; - } - if(ddays){ - if(ddays.indexOf(d.getDay()) != -1){ - cell.title = ddaysText; - cell.className = " x-date-disabled"; - } - } - if(ddMatch && format){ - var fvalue = d.dateFormat(format); - if(ddMatch.test(fvalue)){ - cell.title = ddText.replace("%0", fvalue); - cell.className = " x-date-disabled"; - } - } - }; - - var i = 0; - for(; i < startingPos; i++) { - textEls[i].innerHTML = (++prevStart); - d.setDate(d.getDate()+1); - cells[i].className = "x-date-prevday"; - setCellClass(this, cells[i]); - } - for(; i < days; i++){ - intDay = i - startingPos + 1; - textEls[i].innerHTML = (intDay); - d.setDate(d.getDate()+1); - cells[i].className = "x-date-active"; - setCellClass(this, cells[i]); - } - var extraDays = 0; - for(; i < 42; i++) { - textEls[i].innerHTML = (++extraDays); - d.setDate(d.getDate()+1); - cells[i].className = "x-date-nextday"; - setCellClass(this, cells[i]); - } - - this.mbtn.setText(this.monthNames[date.getMonth()] + " " + date.getFullYear()); - - if(!this.internalRender){ - var main = this.el.dom.firstChild; - var w = main.offsetWidth; - this.el.setWidth(w + this.el.getBorderWidth("lr")); - Ext.fly(main).setWidth(w); - this.internalRender = true; - - - - if(Ext.isOpera && !this.secondPass){ - main.rows[0].cells[1].style.width = (w - (main.rows[0].cells[0].offsetWidth+main.rows[0].cells[2].offsetWidth)) + "px"; - this.secondPass = true; - this.update.defer(10, this, [date]); - } - } - } -}); - -Ext.TabPanel = function(container, config){ - - this.el = Ext.get(container, true); - if(config){ - if(typeof config == "boolean"){ - this.tabPosition = config ? "bottom" : "top"; - }else{ - Ext.apply(this, config); - } - } - if(this.tabPosition == "bottom"){ - this.bodyEl = Ext.get(this.createBody(this.el.dom)); - this.el.addClass("x-tabs-bottom"); - } - this.stripWrap = Ext.get(this.createStrip(this.el.dom), true); - this.stripEl = Ext.get(this.createStripList(this.stripWrap.dom), true); - this.stripBody = Ext.get(this.stripWrap.dom.firstChild.firstChild, true); - if(Ext.isIE){ - Ext.fly(this.stripWrap.dom.firstChild).setStyle("overflow-x", "hidden"); - } - if(this.tabPosition != "bottom"){ - - this.bodyEl = Ext.get(this.createBody(this.el.dom)); - this.el.addClass("x-tabs-top"); - } - this.items = []; - - this.bodyEl.setStyle("position", "relative"); - - this.active = null; - this.activateDelegate = this.activate.createDelegate(this); - - this.addEvents({ - - "tabchange": true, - - "beforetabchange" : true - }); - - Ext.EventManager.onWindowResize(this.onResize, this); - this.cpad = this.el.getPadding("lr"); - this.hiddenCount = 0; - - Ext.TabPanel.superclass.constructor.call(this); -}; - -Ext.extend(Ext.TabPanel, Ext.util.Observable, { - - tabPosition : "top", - currentTabWidth : 0, - - minTabWidth : 40, - - maxTabWidth : 250, - - preferredTabWidth : 175, - - resizeTabs : false, - - monitorResize : true, - - - addTab : function(id, text, content, closable){ - var item = new Ext.TabPanelItem(this, id, text, closable); - this.addTabItem(item); - if(content){ - item.setContent(content); - } - return item; - }, - - - getTab : function(id){ - return this.items[id]; - }, - - - hideTab : function(id){ - var t = this.items[id]; - if(!t.isHidden()){ - t.setHidden(true); - this.hiddenCount++; - this.autoSizeTabs(); - } - }, - - - unhideTab : function(id){ - var t = this.items[id]; - if(t.isHidden()){ - t.setHidden(false); - this.hiddenCount--; - this.autoSizeTabs(); - } - }, - - - addTabItem : function(item){ - this.items[item.id] = item; - this.items.push(item); - if(this.resizeTabs){ - item.setWidth(this.currentTabWidth || this.preferredTabWidth); - this.autoSizeTabs(); - }else{ - item.autoSize(); - } - }, - - - removeTab : function(id){ - var items = this.items; - var tab = items[id]; - if(!tab) return; - var index = items.indexOf(tab); - if(this.active == tab && items.length > 1){ - var newTab = this.getNextAvailable(index); - if(newTab)newTab.activate(); - } - this.stripEl.dom.removeChild(tab.pnode.dom); - if(tab.bodyEl.dom.parentNode == this.bodyEl.dom){ - this.bodyEl.dom.removeChild(tab.bodyEl.dom); - } - items.splice(index, 1); - delete this.items[tab.id]; - tab.fireEvent("close", tab); - tab.purgeListeners(); - this.autoSizeTabs(); - }, - - getNextAvailable : function(start){ - var items = this.items; - var index = start; - - - while(index < items.length){ - var item = items[++index]; - if(item && !item.isHidden()){ - return item; - } - } - - index = start; - while(index >= 0){ - var item = items[--index]; - if(item && !item.isHidden()){ - return item; - } - } - return null; - }, - - - disableTab : function(id){ - var tab = this.items[id]; - if(tab && this.active != tab){ - tab.disable(); - } - }, - - - enableTab : function(id){ - var tab = this.items[id]; - tab.enable(); - }, - - - activate : function(id){ - var tab = this.items[id]; - if(!tab){ - return null; - } - if(tab == this.active){ - return tab; - } - var e = {}; - this.fireEvent("beforetabchange", this, e, tab); - if(e.cancel !== true && !tab.disabled){ - if(this.active){ - this.active.hide(); - } - this.active = this.items[id]; - this.active.show(); - this.fireEvent("tabchange", this, this.active); - } - return tab; - }, - - - getActiveTab : function(){ - return this.active; - }, - - - syncHeight : function(targetHeight){ - var height = (targetHeight || this.el.getHeight())-this.el.getBorderWidth("tb")-this.el.getPadding("tb"); - var bm = this.bodyEl.getMargins(); - var newHeight = height-(this.stripWrap.getHeight()||0)-(bm.top+bm.bottom); - this.bodyEl.setHeight(newHeight); - return newHeight; - }, - - onResize : function(){ - if(this.monitorResize){ - this.autoSizeTabs(); - } - }, - - - beginUpdate : function(){ - this.updating = true; - }, - - - endUpdate : function(){ - this.updating = false; - this.autoSizeTabs(); - }, - - - autoSizeTabs : function(){ - var count = this.items.length; - var vcount = count - this.hiddenCount; - if(!this.resizeTabs || count < 1 || vcount < 1 || this.updating) return; - var w = Math.max(this.el.getWidth() - this.cpad, 10); - var availWidth = Math.floor(w / vcount); - var b = this.stripBody; - if(b.getWidth() > w){ - var tabs = this.items; - this.setTabWidth(Math.max(availWidth, this.minTabWidth)-2); - if(availWidth < this.minTabWidth){ - - } - }else{ - if(this.currentTabWidth < this.preferredTabWidth){ - this.setTabWidth(Math.min(availWidth, this.preferredTabWidth)-2); - } - } - }, - - - getCount : function(){ - return this.items.length; - }, - - - setTabWidth : function(width){ - this.currentTabWidth = width; - for(var i = 0, len = this.items.length; i < len; i++) { - if(!this.items[i].isHidden())this.items[i].setWidth(width); - } - }, - - - destroy : function(removeEl){ - Ext.EventManager.removeResizeListener(this.onResize, this); - for(var i = 0, len = this.items.length; i < len; i++){ - this.items[i].purgeListeners(); - } - if(removeEl === true){ - this.el.update(""); - this.el.remove(); - } - } -}); - - -Ext.TabPanelItem = function(tabPanel, id, text, closable){ - - this.tabPanel = tabPanel; - - this.id = id; - - this.disabled = false; - - this.text = text; - - this.loaded = false; - this.closable = closable; - - - this.bodyEl = Ext.get(tabPanel.createItemBody(tabPanel.bodyEl.dom, id)); - this.bodyEl.setVisibilityMode(Ext.Element.VISIBILITY); - this.bodyEl.setStyle("display", "block"); - this.bodyEl.setStyle("zoom", "1"); - this.hideAction(); - - var els = tabPanel.createStripElements(tabPanel.stripEl.dom, text, closable); - - this.el = Ext.get(els.el, true); - this.inner = Ext.get(els.inner, true); - this.textEl = Ext.get(this.el.dom.firstChild.firstChild.firstChild, true); - this.pnode = Ext.get(els.el.parentNode, true); - this.el.on("mousedown", this.onTabMouseDown, this); - this.el.on("click", this.onTabClick, this); - - if(closable){ - var c = Ext.get(els.close, true); - c.dom.title = this.closeText; - c.addClassOnOver("close-over"); - c.on("click", this.closeClick, this); - } - - this.addEvents({ - - "activate": true, - - "beforeclose": true, - - "close": true, - - "deactivate" : true - }); - this.hidden = false; - - Ext.TabPanelItem.superclass.constructor.call(this); -}; - -Ext.extend(Ext.TabPanelItem, Ext.util.Observable, { - purgeListeners : function(){ - Ext.util.Observable.prototype.purgeListeners.call(this); - this.el.removeAllListeners(); - }, - - show : function(){ - this.pnode.addClass("on"); - this.showAction(); - if(Ext.isOpera){ - this.tabPanel.stripWrap.repaint(); - } - this.fireEvent("activate", this.tabPanel, this); - }, - - - isActive : function(){ - return this.tabPanel.getActiveTab() == this; - }, - - - hide : function(){ - this.pnode.removeClass("on"); - this.hideAction(); - this.fireEvent("deactivate", this.tabPanel, this); - }, - - hideAction : function(){ - this.bodyEl.hide(); - this.bodyEl.setStyle("position", "absolute"); - this.bodyEl.setLeft("-20000px"); - this.bodyEl.setTop("-20000px"); - }, - - showAction : function(){ - this.bodyEl.setStyle("position", "relative"); - this.bodyEl.setTop(""); - this.bodyEl.setLeft(""); - this.bodyEl.show(); - }, - - - setTooltip : function(text){ - if(Ext.QuickTips && Ext.QuickTips.isEnabled()){ - this.textEl.dom.qtip = text; - this.textEl.dom.removeAttribute('title'); - }else{ - this.textEl.dom.title = text; - } - }, - - onTabClick : function(e){ - e.preventDefault(); - this.tabPanel.activate(this.id); - }, - - onTabMouseDown : function(e){ - e.preventDefault(); - this.tabPanel.activate(this.id); - }, - - getWidth : function(){ - return this.inner.getWidth(); - }, - - setWidth : function(width){ - var iwidth = width - this.pnode.getPadding("lr"); - this.inner.setWidth(iwidth); - this.textEl.setWidth(iwidth-this.inner.getPadding("lr")); - this.pnode.setWidth(width); - }, - - setHidden : function(hidden){ - this.hidden = hidden; - this.pnode.setStyle("display", hidden ? "none" : ""); - }, - - - isHidden : function(){ - return this.hidden; - }, - - - getText : function(){ - return this.text; - }, - - autoSize : function(){ - - this.textEl.setWidth(1); - this.setWidth(this.textEl.dom.scrollWidth+this.pnode.getPadding("lr")+this.inner.getPadding("lr")); - - }, - - - setText : function(text){ - this.text = text; - this.textEl.update(text); - this.setTooltip(text); - if(!this.tabPanel.resizeTabs){ - this.autoSize(); - } - }, - - activate : function(){ - this.tabPanel.activate(this.id); - }, - - - disable : function(){ - if(this.tabPanel.active != this){ - this.disabled = true; - this.pnode.addClass("disabled"); - } - }, - - - enable : function(){ - this.disabled = false; - this.pnode.removeClass("disabled"); - }, - - - setContent : function(content, loadScripts){ - this.bodyEl.update(content, loadScripts); - }, - - - getUpdateManager : function(){ - return this.bodyEl.getUpdateManager(); - }, - - - setUrl : function(url, params, loadOnce){ - if(this.refreshDelegate){ - this.un('activate', this.refreshDelegate); - } - this.refreshDelegate = this._handleRefresh.createDelegate(this, [url, params, loadOnce]); - this.on("activate", this.refreshDelegate); - return this.bodyEl.getUpdateManager(); - }, - - - _handleRefresh : function(url, params, loadOnce){ - if(!loadOnce || !this.loaded){ - var updater = this.bodyEl.getUpdateManager(); - updater.update(url, params, this._setLoaded.createDelegate(this)); - } - }, - - - refresh : function(){ - if(this.refreshDelegate){ - this.loaded = false; - this.refreshDelegate(); - } - }, - - - _setLoaded : function(){ - this.loaded = true; - }, - - - closeClick : function(e){ - var o = {}; - e.stopEvent(); - this.fireEvent("beforeclose", this, o); - if(o.cancel !== true){ - this.tabPanel.removeTab(this.id); - } - }, - - closeText : "Close this tab" -}); - - -Ext.TabPanel.prototype.createStrip = function(container){ - var strip = document.createElement("div"); - strip.className = "x-tabs-wrap"; - container.appendChild(strip); - return strip; -}; - -Ext.TabPanel.prototype.createStripList = function(strip){ - - strip.innerHTML = '
    '; - return strip.firstChild.firstChild.firstChild.firstChild; -}; - -Ext.TabPanel.prototype.createBody = function(container){ - var body = document.createElement("div"); - Ext.id(body, "tab-body"); - Ext.fly(body).addClass("x-tabs-body"); - container.appendChild(body); - return body; -}; - -Ext.TabPanel.prototype.createItemBody = function(bodyEl, id){ - var body = Ext.getDom(id); - if(!body){ - body = document.createElement("div"); - body.id = id; - } - Ext.fly(body).addClass("x-tabs-item-body"); - bodyEl.insertBefore(body, bodyEl.firstChild); - return body; -}; - -Ext.TabPanel.prototype.createStripElements = function(stripEl, text, closable){ - var td = document.createElement("td"); - stripEl.appendChild(td); - if(closable){ - td.className = "x-tabs-closable"; - if(!this.closeTpl){ - this.closeTpl = new Ext.Template( - '' + - '{text}' + - '
     
    ' - ); - } - var el = this.closeTpl.overwrite(td, {"text": text}); - var close = el.getElementsByTagName("div")[0]; - var inner = el.getElementsByTagName("em")[0]; - return {"el": el, "close": close, "inner": inner}; - } else { - if(!this.tabTpl){ - this.tabTpl = new Ext.Template( - '' + - '{text}' - ); - } - var el = this.tabTpl.overwrite(td, {"text": text}); - var inner = el.getElementsByTagName("em")[0]; - return {"el": el, "inner": inner}; - } -}; - -Ext.Button = function(renderTo, config){ - Ext.apply(this, config); - this.addEvents({ - - "click" : true, - - "toggle" : true, - - 'mouseover' : true, - - 'mouseout': true - }); - if(this.menu){ - this.menu = Ext.menu.MenuMgr.get(this.menu); - } - if(renderTo){ - this.render(renderTo); - } - Ext.Button.superclass.constructor.call(this); -}; - -Ext.extend(Ext.Button, Ext.util.Observable, { - - hidden : false, - - disabled : false, - - pressed : false, - - - enableToggle: false, - - menu : undefined, - - menuAlign : "tl-bl?", - - - menuClassTarget: 'tr', - - clickEvent : 'click', - handleMouseEvents : true, - - - tooltipType : 'qtip', - - - render : function(renderTo){ - var btn; - if(this.hideParent){ - this.parentEl = Ext.get(renderTo); - } - if(!this.dhconfig){ - if(!this.template){ - if(!Ext.Button.buttonTemplate){ - - Ext.Button.buttonTemplate = new Ext.Template( - '', - '', - "
      
    "); - } - this.template = Ext.Button.buttonTemplate; - } - btn = this.template.append(renderTo, [this.text || ' '], true); - var btnEl = btn.child("button:first"); - btnEl.on('focus', this.onFocus, this); - btnEl.on('blur', this.onBlur, this); - if(this.cls){ - btn.addClass(this.cls); - } - if(this.icon){ - btnEl.setStyle('background-image', 'url(' +this.icon +')'); - } - if(this.tooltip){ - if(typeof this.tooltip == 'object'){ - Ext.QuickTips.tips(Ext.apply({ - target: btnEl.id - }, this.tooltip)); - } else { - btnEl.dom[this.tooltipType] = this.tooltip; - } - } - }else{ - btn = Ext.DomHelper.append(Ext.get(renderTo).dom, this.dhconfig, true); - } - this.el = btn; - if(this.id){ - this.el.dom.id = this.el.id = this.id; - } - if(this.menu){ - this.el.child(this.menuClassTarget).addClass("x-btn-with-menu"); - this.menu.on("show", this.onMenuShow, this); - this.menu.on("hide", this.onMenuHide, this); - } - btn.addClass("x-btn"); - if(Ext.isIE && !Ext.isIE7){ - this.autoWidth.defer(1, this); - }else{ - this.autoWidth(); - } - if(this.handleMouseEvents){ - btn.on("mouseover", this.onMouseOver, this); - btn.on("mouseout", this.onMouseOut, this); - btn.on("mousedown", this.onMouseDown, this); - } - btn.on(this.clickEvent, this.onClick, this); - - if(this.hidden){ - this.hide(); - } - if(this.disabled){ - this.disable(); - } - Ext.ButtonToggleMgr.register(this); - if(this.pressed){ - this.el.addClass("x-btn-pressed"); - } - if(this.repeat){ - var repeater = new Ext.util.ClickRepeater(btn, - typeof this.repeat == "object" ? this.repeat : {} - ); - repeater.on("click", this.onClick, this); - } - }, - - getEl : function(){ - return this.el; - }, - - - destroy : function(){ - Ext.ButtonToggleMgr.unregister(this); - this.el.removeAllListeners(); - this.purgeListeners(); - this.el.remove(); - }, - - - autoWidth : function(){ - if(this.el){ - this.el.setWidth("auto"); - if(Ext.isIE7 && Ext.isStrict){ - var ib = this.el.child('button'); - if(ib && ib.getWidth() > 20){ - ib.clip(); - ib.setWidth(Ext.util.TextMetrics.measure(ib, this.text).width+ib.getFrameWidth('lr')); - } - } - if(this.minWidth){ - if(this.hidden){ - this.el.beginMeasure(); - } - if(this.el.getWidth() < this.minWidth){ - this.el.setWidth(this.minWidth); - } - if(this.hidden){ - this.el.endMeasure(); - } - } - } - }, - - - setHandler : function(handler, scope){ - this.handler = handler; - this.scope = scope; - }, - - - setText : function(text){ - this.text = text; - if(this.el){ - this.el.child("td.x-btn-center button.x-btn-text").update(text); - } - this.autoWidth(); - }, - - - getText : function(){ - return this.text; - }, - - - show: function(){ - this.hidden = false; - if(this.el){ - this[this.hideParent? 'parentEl' : 'el'].setStyle("display", ""); - } - }, - - - hide: function(){ - this.hidden = true; - if(this.el){ - this[this.hideParent? 'parentEl' : 'el'].setStyle("display", "none"); - } - }, - - - setVisible: function(visible){ - if(visible) { - this.show(); - }else{ - this.hide(); - } - }, - - - toggle : function(state){ - state = state === undefined ? !this.pressed : state; - if(state != this.pressed){ - if(state){ - this.el.addClass("x-btn-pressed"); - this.pressed = true; - this.fireEvent("toggle", this, true); - }else{ - this.el.removeClass("x-btn-pressed"); - this.pressed = false; - this.fireEvent("toggle", this, false); - } - if(this.toggleHandler){ - this.toggleHandler.call(this.scope || this, this, state); - } - } - }, - - - focus : function(){ - this.el.child('button:first').focus(); - }, - - - disable : function(){ - if(this.el){ - this.el.addClass("x-btn-disabled"); - } - this.disabled = true; - }, - - - enable : function(){ - if(this.el){ - this.el.removeClass("x-btn-disabled"); - } - this.disabled = false; - }, - - - setDisabled : function(v){ - this[v !== true ? "enable" : "disable"](); - }, - - - onClick : function(e){ - if(e){ - e.preventDefault(); - } - if(!this.disabled){ - if(this.enableToggle){ - this.toggle(); - } - if(this.menu && !this.menu.isVisible()){ - this.menu.show(this.el, this.menuAlign); - } - this.fireEvent("click", this, e); - if(this.handler){ - this.el.removeClass("x-btn-over"); - this.handler.call(this.scope || this, this, e); - } - } - }, - - onMouseOver : function(e){ - if(!this.disabled){ - this.el.addClass("x-btn-over"); - this.fireEvent('mouseover', this, e); - } - }, - - onMouseOut : function(e){ - if(!e.within(this.el, true)){ - this.el.removeClass("x-btn-over"); - this.fireEvent('mouseout', this, e); - } - }, - - onFocus : function(e){ - if(!this.disabled){ - this.el.addClass("x-btn-focus"); - } - }, - - onBlur : function(e){ - this.el.removeClass("x-btn-focus"); - }, - - onMouseDown : function(){ - if(!this.disabled){ - this.el.addClass("x-btn-click"); - Ext.get(document).on('mouseup', this.onMouseUp, this); - } - }, - - onMouseUp : function(){ - this.el.removeClass("x-btn-click"); - Ext.get(document).un('mouseup', this.onMouseUp, this); - }, - - onMenuShow : function(e){ - this.el.addClass("x-btn-menu-active"); - }, - - onMenuHide : function(e){ - this.el.removeClass("x-btn-menu-active"); - } -}); - - -Ext.ButtonToggleMgr = function(){ - var groups = {}; - - function toggleGroup(btn, state){ - if(state){ - var g = groups[btn.toggleGroup]; - for(var i = 0, l = g.length; i < l; i++){ - if(g[i] != btn){ - g[i].toggle(false); - } - } - } - } - - return { - register : function(btn){ - if(!btn.toggleGroup){ - return; - } - var g = groups[btn.toggleGroup]; - if(!g){ - g = groups[btn.toggleGroup] = []; - } - g.push(btn); - btn.on("toggle", toggleGroup); - }, - - unregister : function(btn){ - if(!btn.toggleGroup){ - return; - } - var g = groups[btn.toggleGroup]; - if(g){ - g.remove(btn); - btn.un("toggle", toggleGroup); - } - } - }; -}(); - -Ext.MenuButton = function(renderTo, config){ - Ext.MenuButton.superclass.constructor.call(this, renderTo, config); - - this.addEvents({"arrowclick":true}); -}; - -Ext.extend(Ext.MenuButton, Ext.Button, { - render : function(renderTo){ - - var tpl = new Ext.Template( - '
    ', - '', - '', - "
     
    ", - '', - '', - "
     
    " - ); - var btn = tpl.append(renderTo, [this.text], true); - if(this.cls){ - btn.addClass(this.cls); - } - if(this.icon){ - btn.child("button").setStyle('background-image', 'url(' +this.icon +')'); - } - this.el = btn; - this.autoWidth(); - if(this.handleMouseEvents){ - btn.on("mouseover", this.onMouseOver, this); - btn.on("mouseout", this.onMouseOut, this); - btn.on("mousedown", this.onMouseDown, this); - btn.on("mouseup", this.onMouseUp, this); - } - btn.on(this.clickEvent, this.onClick, this); - if(this.tooltip){ - var btnEl = btn.child("button:first"); - if(typeof this.tooltip == 'object'){ - Ext.QuickTips.tips(Ext.apply({ - target: btnEl.id - }, this.tooltip)); - } else { - btnEl.dom[this.tooltipType] = this.tooltip; - } - } - if(this.arrowTooltip){ - var btnEl = btn.child("button:nth(2)"); - btnEl.dom[this.tooltipType] = this.arrowTooltip; - } - if(this.hidden){ - this.hide(); - } - if(this.disabled){ - this.disable(); - } - if(this.menu){ - this.menu.on("show", this.onMenuShow, this); - this.menu.on("hide", this.onMenuHide, this); - } - }, - - - autoWidth : function(){ - if(this.el){ - var tbl = this.el.child("table:first"); - var tbl2 = this.el.child("table:last"); - this.el.setWidth("auto"); - tbl.setWidth("auto"); - if(Ext.isIE7 && Ext.isStrict){ - var ib = this.el.child('button:first'); - if(ib && ib.getWidth() > 20){ - ib.clip(); - ib.setWidth(Ext.util.TextMetrics.measure(ib, this.text).width+ib.getFrameWidth('lr')); - } - } - if(this.minWidth){ - if(this.hidden){ - this.el.beginMeasure(); - } - if((tbl.getWidth()+tbl2.getWidth()) < this.minWidth){ - tbl.setWidth(this.minWidth-tbl2.getWidth()); - } - if(this.hidden){ - this.el.endMeasure(); - } - } - this.el.setWidth(tbl.getWidth()+tbl2.getWidth()); - } - }, - - setHandler : function(handler, scope){ - this.handler = handler; - this.scope = scope; - }, - - - setArrowHandler : function(handler, scope){ - this.arrowHandler = handler; - this.scope = scope; - }, - - - focus : function(){ - if(this.el){ - this.el.child("a:first").focus(); - } - }, - - - onClick : function(e){ - e.preventDefault(); - if(!this.disabled){ - if(e.getTarget(".x-btn-menu-arrow-wrap")){ - if(this.menu && !this.menu.isVisible()){ - this.menu.show(this.el, this.menuAlign); - } - this.fireEvent("arrowclick", this, e); - if(this.arrowHandler){ - this.arrowHandler.call(this.scope || this, this, e); - } - }else{ - this.fireEvent("click", this, e); - if(this.handler){ - this.handler.call(this.scope || this, this, e); - } - } - } - }, - - onMouseDown : function(e){ - if(!this.disabled){ - Ext.fly(e.getTarget("table")).addClass("x-btn-click"); - } - }, - - onMouseUp : function(e){ - Ext.fly(e.getTarget("table")).removeClass("x-btn-click"); - } -}); - - Ext.Toolbar = function(container, buttons, config){ - if(container instanceof Array){ - buttons = container; - config = buttons; - container = null; - } - Ext.apply(this, config); - this.buttons = buttons; - if(container){ - this.render(container); - } -}; - -Ext.Toolbar.prototype = { - - render : function(ct){ - this.el = Ext.get(ct); - if(this.cls){ - this.el.addClass(this.cls); - } - - this.el.update('
    '); - this.tr = this.el.child("tr", true); - var autoId = 0; - this.items = new Ext.util.MixedCollection(false, function(o){ - return o.id || ("item" + (++autoId)); - }); - if(this.buttons){ - this.add.apply(this, this.buttons); - delete this.buttons; - } - }, - - - add : function(){ - var a = arguments, l = a.length; - for(var i = 0; i < l; i++){ - var el = a[i]; - if(el.applyTo){ - this.addField(el); - }else if(el.render){ - this.addItem(el); - }else if(typeof el == "string"){ - if(el == "separator" || el == "-"){ - this.addSeparator(); - }else if(el == " "){ - this.addSpacer(); - }else{ - this.addText(el); - } - }else if(el.tagName){ - this.addElement(el); - }else if(typeof el == "object"){ - this.addButton(el); - } - } - }, - - - getEl : function(){ - return this.el; - }, - - - addSeparator : function(){ - return this.addItem(new Ext.Toolbar.Separator()); - }, - - - addSpacer : function(){ - return this.addItem(new Ext.Toolbar.Spacer()); - }, - - - addElement : function(el){ - return this.addItem(new Ext.Toolbar.Item(el)); - }, - - - addItem : function(item){ - var td = this.nextBlock(); - item.render(td); - this.items.add(item); - return item; - }, - - - addButton : function(config){ - if(config instanceof Array){ - var buttons = []; - for(var i = 0, len = config.length; i < len; i++) { - buttons.push(this.addButton(config[i])); - } - return buttons; - } - var b = config; - if(!(config instanceof Ext.Toolbar.Button)){ - b = new Ext.Toolbar.Button(config); - } - var td = this.nextBlock(); - b.render(td); - this.items.add(b); - return b; - }, - - - addText : function(text){ - return this.addItem(new Ext.Toolbar.TextItem(text)); - }, - - - insertButton : function(index, item){ - if(item instanceof Array){ - var buttons = []; - for(var i = 0, len = item.length; i < len; i++) { - buttons.push(this.insertButton(index + i, item[i])); - } - return buttons; - } - if (!(item instanceof Ext.Toolbar.Button)){ - item = new Ext.Toolbar.Button(item); - } - var td = document.createElement("td"); - this.tr.insertBefore(td, this.tr.childNodes[index]); - item.render(td); - this.items.insert(index, item); - return item; - }, - - - addDom : function(config, returnEl){ - var td = this.nextBlock(); - Ext.DomHelper.overwrite(td, config); - var ti = new Ext.Toolbar.Item(td.firstChild); - ti.render(td); - this.items.add(ti); - return ti; - }, - - - addField : function(field){ - var td = this.nextBlock(); - field.render(td); - var ti = new Ext.Toolbar.Item(td.firstChild); - ti.render(td); - this.items.add(ti); - return ti; - }, - - - nextBlock : function(){ - var td = document.createElement("td"); - this.tr.appendChild(td); - return td; - } -}; - - -Ext.Toolbar.Item = function(el){ - this.el = Ext.getDom(el); - this.id = Ext.id(this.el); - this.hidden = false; -}; - -Ext.Toolbar.Item.prototype = { - - - getEl : function(){ - return this.el; - }, - - - render : function(td){ - this.td = td; - td.appendChild(this.el); - }, - - - destroy : function(){ - this.td.parentNode.removeChild(this.td); - }, - - - show: function(){ - this.hidden = false; - this.td.style.display = ""; - }, - - - hide: function(){ - this.hidden = true; - this.td.style.display = "none"; - }, - - - setVisible: function(visible){ - if(visible) { - this.show(); - }else{ - this.hide(); - } - }, - - - focus : function(){ - Ext.fly(this.el).focus(); - }, - - - disable : function(){ - Ext.fly(this.td).addClass("x-item-disabled"); - this.disabled = true; - this.el.disabled = true; - }, - - - enable : function(){ - Ext.fly(this.td).removeClass("x-item-disabled"); - this.disabled = false; - this.el.disabled = false; - } -}; - - - -Ext.Toolbar.Separator = function(){ - var s = document.createElement("span"); - s.className = "ytb-sep"; - Ext.Toolbar.Separator.superclass.constructor.call(this, s); -}; -Ext.extend(Ext.Toolbar.Separator, Ext.Toolbar.Item); - - -Ext.Toolbar.Spacer = function(){ - var s = document.createElement("div"); - s.className = "ytb-spacer"; - Ext.Toolbar.Separator.superclass.constructor.call(this, s); -}; -Ext.extend(Ext.Toolbar.Spacer, Ext.Toolbar.Item); - - -Ext.Toolbar.TextItem = function(text){ - var s = document.createElement("span"); - s.className = "ytb-text"; - s.innerHTML = text; - Ext.Toolbar.TextItem.superclass.constructor.call(this, s); -}; -Ext.extend(Ext.Toolbar.TextItem, Ext.Toolbar.Item); - - -Ext.Toolbar.Button = function(config){ - Ext.Toolbar.Button.superclass.constructor.call(this, null, config); -}; -Ext.extend(Ext.Toolbar.Button, Ext.Button, { - render : function(td){ - this.td = td; - Ext.Toolbar.Button.superclass.render.call(this, td); - }, - - - destroy : function(){ - Ext.Toolbar.Button.superclass.destroy.call(this); - this.td.parentNode.removeChild(this.td); - }, - - - show: function(){ - this.hidden = false; - this.td.style.display = ""; - }, - - - hide: function(){ - this.hidden = true; - this.td.style.display = "none"; - }, - - - disable : function(){ - Ext.fly(this.td).addClass("x-item-disabled"); - this.disabled = true; - }, - - - enable : function(){ - Ext.fly(this.td).removeClass("x-item-disabled"); - this.disabled = false; - } -}); - -Ext.ToolbarButton = Ext.Toolbar.Button; - - -Ext.Toolbar.MenuButton = function(config){ - Ext.Toolbar.MenuButton.superclass.constructor.call(this, null, config); -}; -Ext.extend(Ext.Toolbar.MenuButton, Ext.MenuButton, { - render : function(td){ - this.td = td; - Ext.Toolbar.MenuButton.superclass.render.call(this, td); - }, - - - destroy : function(){ - Ext.Toolbar.MenuButton.superclass.destroy.call(this); - this.td.parentNode.removeChild(this.td); - }, - - - show: function(){ - this.hidden = false; - this.td.style.display = ""; - }, - - - hide: function(){ - this.hidden = true; - this.td.style.display = "none"; - } -}); - - - -Ext.PagingToolbar = function(el, ds, config){ - Ext.PagingToolbar.superclass.constructor.call(this, el, null, config); - this.ds = ds; - this.cursor = 0; - this.renderButtons(this.el); - this.bind(ds); -}; - -Ext.extend(Ext.PagingToolbar, Ext.Toolbar, { - - pageSize: 20, - - displayMsg : 'Displaying {0} - {1} of {2}', - - emptyMsg : 'No data to display', - - beforePageText : "Page", - - afterPageText : "of {0}", - - firstText : "First Page", - - prevText : "Previous Page", - - nextText : "Next Page", - - lastText : "Last Page", - - refreshText : "Refresh", - - renderButtons : function(el){ - this.first = this.addButton({ - tooltip: this.firstText, - cls: "x-btn-icon x-grid-page-first", - disabled: true, - handler: this.onClick.createDelegate(this, ["first"]) - }); - this.prev = this.addButton({ - tooltip: this.prevText, - cls: "x-btn-icon x-grid-page-prev", - disabled: true, - handler: this.onClick.createDelegate(this, ["prev"]) - }); - this.addSeparator(); - this.add(this.beforePageText); - this.field = Ext.get(this.addDom({ - tag: "input", - type: "text", - size: "3", - value: "1", - cls: "x-grid-page-number" - }).el); - this.field.on("keydown", this.onPagingKeydown, this); - this.field.on("focus", function(){this.dom.select();}); - this.afterTextEl = this.addText(String.format(this.afterPageText, 1)); - this.field.setHeight(18); - this.addSeparator(); - this.next = this.addButton({ - tooltip: this.nextText, - cls: "x-btn-icon x-grid-page-next", - disabled: true, - handler: this.onClick.createDelegate(this, ["next"]) - }); - this.last = this.addButton({ - tooltip: this.lastText, - cls: "x-btn-icon x-grid-page-last", - disabled: true, - handler: this.onClick.createDelegate(this, ["last"]) - }); - this.addSeparator(); - this.loading = this.addButton({ - tooltip: this.refreshText, - cls: "x-btn-icon x-grid-loading", - disabled: true, - handler: this.onClick.createDelegate(this, ["refresh"]) - }); - - if(this.displayInfo){ - this.displayEl = this.el.createChild({cls:'x-paging-info'}); - } - }, - - updateInfo : function(){ - if(this.displayEl){ - var count = this.ds.getCount(); - var msg = count == 0 ? - this.emptyMsg : - String.format( - this.displayMsg, - this.cursor+1, this.cursor+count, this.ds.getTotalCount() - ); - this.displayEl.update(msg); - } - }, - - onLoad : function(ds, r, o){ - this.cursor = o.params ? o.params.start : 0; - var d = this.getPageData(), ap = d.activePage, ps = d.pages; - - this.afterTextEl.el.innerHTML = String.format(this.afterPageText, d.pages); - this.field.dom.value = ap; - this.first.setDisabled(ap == 1); - this.prev.setDisabled(ap == 1); - this.next.setDisabled(ap == ps); - this.last.setDisabled(ap == ps); - this.loading.enable(); - this.updateInfo(); - }, - - getPageData : function(){ - var total = this.ds.getTotalCount(); - return { - total : total, - activePage : Math.ceil((this.cursor+this.pageSize)/this.pageSize), - pages : total < this.pageSize ? 1 : Math.ceil(total/this.pageSize) - }; - }, - - onLoadError : function(){ - this.loading.enable(); - }, - - onPagingKeydown : function(e){ - var k = e.getKey(); - var d = this.getPageData(); - if(k == e.RETURN){ - var v = this.field.dom.value, pageNum; - if(!v || isNaN(pageNum = parseInt(v, 10))){ - this.field.dom.value = d.activePage; - return; - } - pageNum = Math.min(Math.max(1, pageNum), d.pages) - 1; - this.ds.load({params:{start: pageNum * this.pageSize, limit: this.pageSize}}); - e.stopEvent(); - } - else if(k == e.HOME || (k == e.UP && e.ctrlKey) || (k == e.PAGEUP && e.ctrlKey) || (k == e.RIGHT && e.ctrlKey) || k == e.END || (k == e.DOWN && e.ctrlKey) || (k == e.LEFT && e.ctrlKey) || (k == e.PAGEDOWN && e.ctrlKey)) - { - var pageNum = (k == e.HOME || (k == e.DOWN && e.ctrlKey) || (k == e.LEFT && e.ctrlKey) || (k == e.PAGEDOWN && e.ctrlKey)) ? 1 : d.pages; - this.field.dom.value = pageNum; - this.ds.load({params:{start: (pageNum - 1) * this.pageSize, limit: this.pageSize}}); - e.stopEvent(); - } - else if(k == e.UP || k == e.RIGHT || k == e.PAGEUP || k == e.DOWN || k == e.LEFT || k == e.PAGEDOWN) - { - var v = this.field.dom.value, pageNum; - var increment = (e.shiftKey) ? 10 : 1; - if(k == e.DOWN || k == e.LEFT || k == e.PAGEDOWN) - increment *= -1; - if(!v || isNaN(pageNum = parseInt(v, 10))) { - this.field.dom.value = d.activePage; - return; - } - else if(parseInt(v, 10) + increment >= 1 & parseInt(v, 10) + increment <= d.pages) - { - this.field.dom.value = parseInt(v, 10) + increment; - pageNum = Math.min(Math.max(1, pageNum + increment), d.pages) - 1; - this.ds.load({params:{start: pageNum * this.pageSize, limit: this.pageSize}}); - } - e.stopEvent(); - } - }, - - beforeLoad : function(){ - if(this.loading){ - this.loading.disable(); - } - }, - - onClick : function(which){ - var ds = this.ds; - switch(which){ - case "first": - ds.load({params:{start: 0, limit: this.pageSize}}); - break; - case "prev": - ds.load({params:{start: Math.max(0, this.cursor-this.pageSize), limit: this.pageSize}}); - break; - case "next": - ds.load({params:{start: this.cursor+this.pageSize, limit: this.pageSize}}); - break; - case "last": - var total = ds.getTotalCount(); - var extra = total % this.pageSize; - var lastStart = extra ? (total - extra) : total-this.pageSize; - ds.load({params:{start: lastStart, limit: this.pageSize}}); - break; - case "refresh": - ds.load({params:{start: this.cursor, limit: this.pageSize}}); - break; - } - }, - - - unbind : function(ds){ - ds.un("beforeload", this.beforeLoad, this); - ds.un("load", this.onLoad, this); - ds.un("loadexception", this.onLoadError, this); - }, - - - bind : function(ds){ - ds.on("beforeload", this.beforeLoad, this); - ds.on("load", this.onLoad, this); - ds.on("loadexception", this.onLoadError, this); - } -}); - Ext.Resizable = function(el, config){ this.el = Ext.get(el); if(config && config.wrap){ config.resizeChild = this.el; this.el = this.el.wrap(typeof config.wrap == "object" ? config.wrap : {cls:"xresizable-wrap"}); this.el.id = this.el.dom.id = config.resizeChild.id + "-rzwrap"; this.el.setStyle("overflow", "hidden"); this.el.setPositioning(config.resizeChild.getPositioning()); config.resizeChild.clearPositioning(); if(!config.width || !config.height){ var csize = config.resizeChild.getSize(); this.el.setSize(csize.width, csize.height); } if(config.pinned && !config.adjustments){ config.adjustments = "auto"; } } this.proxy = this.el.createProxy({tag: "div", cls: "x-resizable-proxy", id: this.el.id + "-rzproxy"}); this.proxy.unselectable(); this.proxy.enableDisplayMode('block'); Ext.apply(this, config); if(this.pinned){ this.disableTrackOver = true; this.el.addClass("x-resizable-pinned"); } var position = this.el.getStyle("position"); if(position != "absolute" && position != "fixed"){ this.el.setStyle("position", "relative"); } if(!this.handles){ this.handles = 's,e,se'; if(this.multiDirectional){ this.handles += ',n,w'; } } if(this.handles == "all"){ this.handles = "n s e w ne nw se sw"; } var hs = this.handles.split(/\s*?[,;]\s*?| /); var ps = Ext.Resizable.positions; for(var i = 0, len = hs.length; i < len; i++){ if(hs[i] && ps[hs[i]]){ var pos = ps[hs[i]]; this[pos] = new Ext.Resizable.Handle(this, pos, this.disableTrackOver, this.transparent); } } this.corner = this.southeast; if(this.handles.indexOf("n") != -1 || this.handles.indexOf("w") != -1){ this.updateBox = true; } this.activeHandle = null; if(this.resizeChild){ if(typeof this.resizeChild == "boolean"){ this.resizeChild = Ext.get(this.el.dom.firstChild, true); }else{ this.resizeChild = Ext.get(this.resizeChild, true); } } if(this.adjustments == "auto"){ var rc = this.resizeChild; var hw = this.west, he = this.east, hn = this.north, hs = this.south; if(rc && (hw || hn)){ rc.position("relative"); rc.setLeft(hw ? hw.el.getWidth() : 0); rc.setTop(hn ? hn.el.getHeight() : 0); } this.adjustments = [ (he ? -he.el.getWidth() : 0) + (hw ? -hw.el.getWidth() : 0), (hn ? -hn.el.getHeight() : 0) + (hs ? -hs.el.getHeight() : 0) -1 ]; } if(this.draggable){ this.dd = this.dynamic ? this.el.initDD(null) : this.el.initDDProxy(null, {dragElId: this.proxy.id}); this.dd.setHandleElId(this.resizeChild ? this.resizeChild.id : this.el.id); } this.addEvents({ "beforeresize" : true, "resize" : true }); if(this.width !== null && this.height !== null){ this.resizeTo(this.width, this.height); }else{ this.updateChildSize(); } if(Ext.isIE){ this.el.dom.style.zoom = 1; } Ext.Resizable.superclass.constructor.call(this); }; Ext.extend(Ext.Resizable, Ext.util.Observable, { resizeChild : false, adjustments : [0, 0], minWidth : 5, minHeight : 5, maxWidth : 10000, maxHeight : 10000, enabled : true, animate : false, duration : .35, dynamic : false, handles : false, multiDirectional : false, disableTrackOver : false, easing : 'easeOutStrong', widthIncrement : 0, heightIncrement : 0, pinned : false, width : null, height : null, preserveRatio : false, transparent: false, minX: 0, minY: 0, draggable: false, resizeTo : function(width, height){ this.el.setSize(width, height); this.updateChildSize(); this.fireEvent("resize", this, width, height, null); }, startSizing : function(e, handle){ this.fireEvent("beforeresize", this, e); if(this.enabled){ if(!this.overlay){ this.overlay = this.el.createProxy({tag: "div", cls: "x-resizable-overlay", html: " "}); this.overlay.unselectable(); this.overlay.enableDisplayMode("block"); this.overlay.on("mousemove", this.onMouseMove, this); this.overlay.on("mouseup", this.onMouseUp, this); } this.overlay.setStyle("cursor", handle.el.getStyle("cursor")); this.resizing = true; this.startBox = this.el.getBox(); this.startPoint = e.getXY(); this.offsets = [(this.startBox.x + this.startBox.width) - this.startPoint[0], (this.startBox.y + this.startBox.height) - this.startPoint[1]]; this.overlay.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); this.overlay.show(); this.proxy.setStyle('visibility', 'hidden'); this.proxy.show(); this.proxy.setBox(this.startBox); if(!this.dynamic){ this.proxy.setStyle('visibility', 'visible'); } } }, onMouseDown : function(handle, e){ if(this.enabled){ e.stopEvent(); this.activeHandle = handle; this.startSizing(e, handle); } }, onMouseUp : function(e){ var size = this.resizeElement(); this.resizing = false; this.handleOut(); this.overlay.hide(); this.fireEvent("resize", this, size.width, size.height, e); }, updateChildSize : function(){ if(this.resizeChild){ var el = this.el; var child = this.resizeChild; var adj = this.adjustments; if(el.dom.offsetWidth){ var b = el.getSize(true); child.setSize(b.width+adj[0], b.height+adj[1]); } if(Ext.isIE){ setTimeout(function(){ if(el.dom.offsetWidth){ var b = el.getSize(true); child.setSize(b.width+adj[0], b.height+adj[1]); } }, 10); } } }, snap : function(value, inc, min){ if(!inc || !value) return value; var newValue = value; var m = value % inc; if(m > 0){ if(m > (inc/2)){ newValue = value + (inc-m); }else{ newValue = value - m; } } return Math.max(min, newValue); }, resizeElement : function(){ var box = this.proxy.getBox(); if(this.updateBox){ this.el.setBox(box, false, this.animate, this.duration, null, this.easing); }else{ this.el.setSize(box.width, box.height, this.animate, this.duration, null, this.easing); } this.updateChildSize(); this.proxy.hide(); return box; }, constrain : function(v, diff, m, mx){ if(v - diff < m){ diff = v - m; }else if(v - diff > mx){ diff = mx - v; } return diff; }, onMouseMove : function(e){ if(this.enabled){ try{ var curSize = this.curSize || this.startBox; var x = this.startBox.x, y = this.startBox.y; var ox = x, oy = y; var w = curSize.width, h = curSize.height; var ow = w, oh = h; var mw = this.minWidth, mh = this.minHeight; var mxw = this.maxWidth, mxh = this.maxHeight; var wi = this.widthIncrement; var hi = this.heightIncrement; var eventXY = e.getXY(); var diffX = -(this.startPoint[0] - Math.max(this.minX, eventXY[0])); var diffY = -(this.startPoint[1] - Math.max(this.minY, eventXY[1])); var pos = this.activeHandle.position; switch(pos){ case "east": w += diffX; w = Math.min(Math.max(mw, w), mxw); break; case "south": h += diffY; h = Math.min(Math.max(mh, h), mxh); break; case "southeast": w += diffX; h += diffY; w = Math.min(Math.max(mw, w), mxw); h = Math.min(Math.max(mh, h), mxh); break; case "north": diffY = this.constrain(h, diffY, mh, mxh); y += diffY; h -= diffY; break; case "west": diffX = this.constrain(w, diffX, mw, mxw); x += diffX; w -= diffX; break; case "northeast": w += diffX; w = Math.min(Math.max(mw, w), mxw); diffY = this.constrain(h, diffY, mh, mxh); y += diffY; h -= diffY; break; case "northwest": diffX = this.constrain(w, diffX, mw, mxw); diffY = this.constrain(h, diffY, mh, mxh); y += diffY; h -= diffY; x += diffX; w -= diffX; break; case "southwest": diffX = this.constrain(w, diffX, mw, mxw); h += diffY; h = Math.min(Math.max(mh, h), mxh); x += diffX; w -= diffX; break; } var sw = this.snap(w, wi, mw); var sh = this.snap(h, hi, mh); if(sw != w || sh != h){ switch(pos){ case "northeast": y -= sh - h; break; case "north": y -= sh - h; break; case "southwest": x -= sw - w; break; case "west": x -= sw - w; break; case "northwest": x -= sw - w; y -= sh - h; break; } w = sw; h = sh; } if(this.preserveRatio){ switch(pos){ case "southeast": case "east": h = oh * (w/ow); h = Math.min(Math.max(mh, h), mxh); w = ow * (h/oh); break; case "south": w = ow * (h/oh); w = Math.min(Math.max(mw, w), mxw); h = oh * (w/ow); break; case "northeast": w = ow * (h/oh); w = Math.min(Math.max(mw, w), mxw); h = oh * (w/ow); break; case "north": var tw = w; w = ow * (h/oh); w = Math.min(Math.max(mw, w), mxw); h = oh * (w/ow); x += (tw - w) / 2; break; case "southwest": h = oh * (w/ow); h = Math.min(Math.max(mh, h), mxh); var tw = w; w = ow * (h/oh); x += tw - w; break; case "west": var th = h; h = oh * (w/ow); h = Math.min(Math.max(mh, h), mxh); y += (th - h) / 2; var tw = w; w = ow * (h/oh); x += tw - w; break; case "northwest": var tw = w; var th = h; h = oh * (w/ow); h = Math.min(Math.max(mh, h), mxh); w = ow * (h/oh); y += th - h; x += tw - w; break; } } this.proxy.setBounds(x, y, w, h); if(this.dynamic){ this.resizeElement(); } }catch(e){} } }, handleOver : function(){ if(this.enabled){ this.el.addClass("x-resizable-over"); } }, handleOut : function(){ if(!this.resizing){ this.el.removeClass("x-resizable-over"); } }, getEl : function(){ return this.el; }, getResizeChild : function(){ return this.resizeChild; }, destroy : function(removeEl){ this.proxy.remove(); this.overlay.removeAllListeners(); this.overlay.remove(); var ps = Ext.Resizable.positions; for(var k in ps){ if(typeof ps[k] != "function" && this[ps[k]]){ var h = this[ps[k]]; h.el.removeAllListeners(); h.el.remove(); } } if(removeEl){ this.el.update(""); this.el.remove(); } } }); Ext.Resizable.positions = { n: "north", s: "south", e: "east", w: "west", se: "southeast", sw: "southwest", nw: "northwest", ne: "northeast" }; Ext.Resizable.Handle = function(rz, pos, disableTrackOver, transparent){ if(!this.tpl){ var tpl = Ext.DomHelper.createTemplate( {tag: "div", cls: "x-resizable-handle x-resizable-handle-{0}"} ); tpl.compile(); Ext.Resizable.Handle.prototype.tpl = tpl; } this.position = pos; this.rz = rz; this.el = this.tpl.append(rz.el.dom, [this.position], true); this.el.unselectable(); if(transparent){ this.el.setOpacity(0); } this.el.on("mousedown", this.onMouseDown, this); if(!disableTrackOver){ this.el.on("mouseover", this.onMouseOver, this); this.el.on("mouseout", this.onMouseOut, this); } }; Ext.Resizable.Handle.prototype = { afterResize : function(rz){ }, onMouseDown : function(e){ this.rz.onMouseDown(this, e); }, onMouseOver : function(e){ this.rz.handleOver(this, e); }, onMouseOut : function(e){ this.rz.handleOut(this, e); } }; - -Ext.SplitBar = function(dragElement, resizingElement, orientation, placement, existingProxy){ - - - this.el = Ext.get(dragElement, true); - this.el.dom.unselectable = "on"; - - this.resizingEl = Ext.get(resizingElement, true); - - - this.orientation = orientation || Ext.SplitBar.HORIZONTAL; - - - this.minSize = 0; - - - this.maxSize = 2000; - - - this.animate = false; - - - this.useShim = false; - - - this.shim = null; - - if(!existingProxy){ - - this.proxy = Ext.SplitBar.createProxy(this.orientation); - }else{ - this.proxy = Ext.get(existingProxy).dom; - } - - this.dd = new Ext.dd.DDProxy(this.el.dom.id, "XSplitBars", {dragElId : this.proxy.id}); - - - this.dd.b4StartDrag = this.onStartProxyDrag.createDelegate(this); - - - this.dd.endDrag = this.onEndProxyDrag.createDelegate(this); - - - this.dragSpecs = {}; - - - this.adapter = new Ext.SplitBar.BasicLayoutAdapter(); - this.adapter.init(this); - - if(this.orientation == Ext.SplitBar.HORIZONTAL){ - - this.placement = placement || (this.el.getX() > this.resizingEl.getX() ? Ext.SplitBar.LEFT : Ext.SplitBar.RIGHT); - this.el.addClass("x-splitbar-h"); - }else{ - - this.placement = placement || (this.el.getY() > this.resizingEl.getY() ? Ext.SplitBar.TOP : Ext.SplitBar.BOTTOM); - this.el.addClass("x-splitbar-v"); - } - - this.addEvents({ - - "resize" : true, - - "moved" : true, - - "beforeresize" : true, - - "beforeapply" : true - }); - - Ext.SplitBar.superclass.constructor.call(this); -}; - -Ext.extend(Ext.SplitBar, Ext.util.Observable, { - onStartProxyDrag : function(x, y){ - this.fireEvent("beforeresize", this); - if(!this.overlay){ - var o = Ext.DomHelper.insertFirst(document.body, {cls: "x-drag-overlay", html: " "}, true); - o.unselectable(); - o.enableDisplayMode("block"); - - Ext.SplitBar.prototype.overlay = o; - } - this.overlay.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); - this.overlay.show(); - Ext.get(this.proxy).setDisplayed("block"); - var size = this.adapter.getElementSize(this); - this.activeMinSize = this.getMinimumSize();; - this.activeMaxSize = this.getMaximumSize();; - var c1 = size - this.activeMinSize; - var c2 = Math.max(this.activeMaxSize - size, 0); - if(this.orientation == Ext.SplitBar.HORIZONTAL){ - this.dd.resetConstraints(); - this.dd.setXConstraint( - this.placement == Ext.SplitBar.LEFT ? c1 : c2, - this.placement == Ext.SplitBar.LEFT ? c2 : c1 - ); - this.dd.setYConstraint(0, 0); - }else{ - this.dd.resetConstraints(); - this.dd.setXConstraint(0, 0); - this.dd.setYConstraint( - this.placement == Ext.SplitBar.TOP ? c1 : c2, - this.placement == Ext.SplitBar.TOP ? c2 : c1 - ); - } - this.dragSpecs.startSize = size; - this.dragSpecs.startPoint = [x, y]; - Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd, x, y); - }, - - - onEndProxyDrag : function(e){ - Ext.get(this.proxy).setDisplayed(false); - var endPoint = Ext.lib.Event.getXY(e); - if(this.overlay){ - this.overlay.hide(); - } - var newSize; - if(this.orientation == Ext.SplitBar.HORIZONTAL){ - newSize = this.dragSpecs.startSize + - (this.placement == Ext.SplitBar.LEFT ? - endPoint[0] - this.dragSpecs.startPoint[0] : - this.dragSpecs.startPoint[0] - endPoint[0] - ); - }else{ - newSize = this.dragSpecs.startSize + - (this.placement == Ext.SplitBar.TOP ? - endPoint[1] - this.dragSpecs.startPoint[1] : - this.dragSpecs.startPoint[1] - endPoint[1] - ); - } - newSize = Math.min(Math.max(newSize, this.activeMinSize), this.activeMaxSize); - if(newSize != this.dragSpecs.startSize){ - if(this.fireEvent('beforeapply', this, newSize) !== false){ - this.adapter.setElementSize(this, newSize); - this.fireEvent("moved", this, newSize); - this.fireEvent("resize", this, newSize); - } - } - }, - - - getAdapter : function(){ - return this.adapter; - }, - - - setAdapter : function(adapter){ - this.adapter = adapter; - this.adapter.init(this); - }, - - - getMinimumSize : function(){ - return this.minSize; - }, - - - setMinimumSize : function(minSize){ - this.minSize = minSize; - }, - - - getMaximumSize : function(){ - return this.maxSize; - }, - - - setMaximumSize : function(maxSize){ - this.maxSize = maxSize; - }, - - - setCurrentSize : function(size){ - var oldAnimate = this.animate; - this.animate = false; - this.adapter.setElementSize(this, size); - this.animate = oldAnimate; - }, - - - destroy : function(removeEl){ - if(this.shim){ - this.shim.remove(); - } - this.dd.unreg(); - this.proxy.parentNode.removeChild(this.proxy); - if(removeEl){ - this.el.remove(); - } - } -}); - - -Ext.SplitBar.createProxy = function(dir){ - var proxy = new Ext.Element(document.createElement("div")); - proxy.unselectable(); - var cls = 'x-splitbar-proxy'; - proxy.addClass(cls + ' ' + (dir == Ext.SplitBar.HORIZONTAL ? cls +'-h' : cls + '-v')); - document.body.appendChild(proxy.dom); - return proxy.dom; -}; - - -Ext.SplitBar.BasicLayoutAdapter = function(){ -}; - -Ext.SplitBar.BasicLayoutAdapter.prototype = { - - init : function(s){ - - }, - - getElementSize : function(s){ - if(s.orientation == Ext.SplitBar.HORIZONTAL){ - return s.resizingEl.getWidth(); - }else{ - return s.resizingEl.getHeight(); - } - }, - - - setElementSize : function(s, newSize, onComplete){ - if(s.orientation == Ext.SplitBar.HORIZONTAL){ - if(!s.animate){ - s.resizingEl.setWidth(newSize); - if(onComplete){ - onComplete(s, newSize); - } - }else{ - s.resizingEl.setWidth(newSize, true, .1, onComplete, 'easeOut'); - } - }else{ - - if(!s.animate){ - s.resizingEl.setHeight(newSize); - if(onComplete){ - onComplete(s, newSize); - } - }else{ - s.resizingEl.setHeight(newSize, true, .1, onComplete, 'easeOut'); - } - } - } -}; - - -Ext.SplitBar.AbsoluteLayoutAdapter = function(container){ - this.basic = new Ext.SplitBar.BasicLayoutAdapter(); - this.container = Ext.get(container); -}; - -Ext.SplitBar.AbsoluteLayoutAdapter.prototype = { - init : function(s){ - this.basic.init(s); - }, - - getElementSize : function(s){ - return this.basic.getElementSize(s); - }, - - setElementSize : function(s, newSize, onComplete){ - this.basic.setElementSize(s, newSize, this.moveSplitter.createDelegate(this, [s])); - }, - - moveSplitter : function(s){ - var yes = Ext.SplitBar; - switch(s.placement){ - case yes.LEFT: - s.el.setX(s.resizingEl.getRight()); - break; - case yes.RIGHT: - s.el.setStyle("right", (this.container.getWidth() - s.resizingEl.getLeft()) + "px"); - break; - case yes.TOP: - s.el.setY(s.resizingEl.getBottom()); - break; - case yes.BOTTOM: - s.el.setY(s.resizingEl.getTop() - s.el.getHeight()); - break; - } - } -}; - - -Ext.SplitBar.VERTICAL = 1; - - -Ext.SplitBar.HORIZONTAL = 2; - - -Ext.SplitBar.LEFT = 1; - - -Ext.SplitBar.RIGHT = 2; - - -Ext.SplitBar.TOP = 3; - - -Ext.SplitBar.BOTTOM = 4; - - -Ext.Editor = function(field, config){ - Ext.Editor.superclass.constructor.call(this, config); - this.field = field; - this.addEvents({ - - "beforestartedit" : true, - - "startedit" : true, - - "beforecomplete" : true, - - "complete" : true, - - "specialkey" : true - }); -}; - -Ext.extend(Ext.Editor, Ext.Component, { - - - - - value : "", - - alignment: "c-c?", - - shadow : "frame", - - updateEl : false, - - onRender : function(ct, position){ - this.el = new Ext.Layer({ - shadow: this.shadow, - cls: "x-editor", - parentEl : ct, - shim : this.shim, - shadowOffset:3, - id: this.id - }); - this.el.setStyle("overflow", Ext.isGecko ? "auto" : "hidden"); - this.field.render(this.el); - if(Ext.isGecko){ - this.field.el.dom.setAttribute('autocomplete', 'off'); - } - this.field.show(); - this.field.on("blur", this.onBlur, this); - this.relayEvents(this.field, ["specialkey"]); - if(this.field.grow){ - this.field.on("autosize", this.el.sync, this.el, {delay:1}); - } - }, - - startEdit : function(el, value){ - if(this.editing){ - this.completeEdit(); - } - this.boundEl = Ext.get(el); - var v = value !== undefined ? value : this.boundEl.dom.innerHTML; - if(!this.rendered){ - this.render(this.parentEl || document.body); - } - if(this.fireEvent("beforestartedit", this, this.boundEl, v) === false){ - return; - } - this.startValue = v; - this.field.setValue(v); - if(this.autoSize){ - var sz = this.boundEl.getSize(); - switch(this.autoSize){ - case "width": - this.setSize(sz.width, ""); - break; - case "height": - this.setSize("", sz.height); - break; - default: - this.setSize(sz.width, sz.height); - } - } - this.el.alignTo(this.boundEl, this.alignment); - this.editing = true; - if(Ext.QuickTips){ - Ext.QuickTips.disable(); - } - this.show(); - }, - - - setSize : function(w, h){ - this.field.setSize(w, h); - if(this.el){ - this.el.sync(); - } - }, - - - realign : function(){ - this.el.alignTo(this.boundEl, this.alignment); - }, - - - completeEdit : function(remainVisible){ - if(!this.editing){ - return; - } - var v = this.getValue(); - if(this.revertInvalid !== false && !this.field.isValid()){ - v = this.startValue; - this.cancelEdit(true); - } - if(String(v) == String(this.startValue) && this.ignoreNoChange){ - this.editing = false; - this.hide(); - return; - } - if(this.fireEvent("beforecomplete", this, v, this.startValue) !== false){ - this.editing = false; - if(this.updateEl && this.boundEl){ - this.boundEl.update(v); - } - if(remainVisible !== true){ - this.hide(); - } - this.fireEvent("complete", this, v, this.startValue); - } - }, - - onShow : function(){ - this.el.show(); - if(this.hideEl !== false){ - this.boundEl.hide(); - } - this.field.show(); - this.field.focus(); - this.fireEvent("startedit", this.boundEl, this.startValue); - }, - - - cancelEdit : function(remainVisible){ - if(this.editing){ - this.setValue(this.startValue); - if(remainVisible !== true){ - this.hide(); - } - } - }, - - onBlur : function(){ - if(this.allowBlur !== true && this.editing){ - this.completeEdit(); - } - }, - - onHide : function(){ - if(this.editing){ - this.completeEdit(); - return; - } - this.field.blur(); - if(this.field.collapse){ - this.field.collapse(); - } - this.el.hide(); - if(this.hideEl !== false){ - this.boundEl.show(); - } - if(Ext.QuickTips){ - Ext.QuickTips.enable(); - } - }, - - - setValue : function(v){ - this.field.setValue(v); - }, - - - getValue : function(){ - return this.field.getValue(); - } -}); - -Ext.BasicDialog = function(el, config){ - this.el = Ext.get(el); - var dh = Ext.DomHelper; - if(!this.el && config && config.autoCreate){ - if(typeof config.autoCreate == "object"){ - if(!config.autoCreate.id){ - config.autoCreate.id = el; - } - this.el = dh.append(document.body, - config.autoCreate, true); - }else{ - this.el = dh.append(document.body, - {tag: "div", id: el, style:'visibility:hidden;'}, true); - } - } - el = this.el; - el.setDisplayed(true); - el.hide = this.hideAction; - this.id = el.id; - el.addClass("x-dlg"); - - Ext.apply(this, config); - - this.proxy = el.createProxy("x-dlg-proxy"); - this.proxy.hide = this.hideAction; - this.proxy.setOpacity(.5); - this.proxy.hide(); - - if(config.width){ - el.setWidth(config.width); - } - if(config.height){ - el.setHeight(config.height); - } - this.size = el.getSize(); - if(typeof config.x != "undefined" && typeof config.y != "undefined"){ - this.xy = [config.x,config.y]; - }else{ - this.xy = el.getCenterXY(true); - } - - this.header = el.child("/.x-dlg-hd"); - - this.body = el.child("/.x-dlg-bd"); - - this.footer = el.child("/.x-dlg-ft"); - - if(!this.header){ - this.header = el.createChild({tag: "div", cls:"x-dlg-hd", html: " "}, this.body ? this.body.dom : null); - } - if(!this.body){ - this.body = el.createChild({tag: "div", cls:"x-dlg-bd"}); - } - - this.header.unselectable(); - if(this.title){ - this.header.update(this.title); - } - - this.focusEl = el.createChild({tag: "a", href:"#", cls:"x-dlg-focus", tabIndex:"-1"}); - this.focusEl.swallowEvent("click", true); - - this.header.wrap({cls:"x-dlg-hd-right"}).wrap({cls:"x-dlg-hd-left"}, true); - - - this.bwrap = this.body.wrap({tag: "div", cls:"x-dlg-dlg-body"}); - if(this.footer){ - this.bwrap.dom.appendChild(this.footer.dom); - } - - this.bg = this.el.createChild({ - tag: "div", cls:"x-dlg-bg", - html: '
     
    ' - }); - this.centerBg = this.bg.child("div.x-dlg-bg-center"); - - - if(this.autoScroll !== false && !this.autoTabs){ - this.body.setStyle("overflow", "auto"); - } - - this.toolbox = this.el.createChild({cls: "x-dlg-toolbox"}); - - if(this.closable !== false){ - this.el.addClass("x-dlg-closable"); - this.close = this.toolbox.createChild({cls:"x-dlg-close"}); - this.close.on("click", this.closeClick, this); - this.close.addClassOnOver("x-dlg-close-over"); - } - if(this.collapsible !== false){ - this.collapseBtn = this.toolbox.createChild({cls:"x-dlg-collapse"}); - this.collapseBtn.on("click", this.collapseClick, this); - this.collapseBtn.addClassOnOver("x-dlg-collapse-over"); - this.header.on("dblclick", this.collapseClick, this); - } - if(this.resizable !== false){ - this.el.addClass("x-dlg-resizable"); - this.resizer = new Ext.Resizable(el, { - minWidth: this.minWidth || 80, - minHeight:this.minHeight || 80, - handles: this.resizeHandles || "all", - pinned: true - }); - this.resizer.on("beforeresize", this.beforeResize, this); - this.resizer.on("resize", this.onResize, this); - } - if(this.draggable !== false){ - el.addClass("x-dlg-draggable"); - if (!this.proxyDrag) { - var dd = new Ext.dd.DD(el.dom.id, "WindowDrag"); - } - else { - var dd = new Ext.dd.DDProxy(el.dom.id, "WindowDrag", {dragElId: this.proxy.id}); - } - dd.setHandleElId(this.header.id); - dd.endDrag = this.endMove.createDelegate(this); - dd.startDrag = this.startMove.createDelegate(this); - dd.onDrag = this.onDrag.createDelegate(this); - dd.scroll = false; - this.dd = dd; - } - if(this.modal){ - this.mask = dh.append(document.body, {tag: "div", cls:"x-dlg-mask"}, true); - this.mask.enableDisplayMode("block"); - this.mask.hide(); - this.el.addClass("x-dlg-modal"); - } - if(this.shadow){ - this.shadow = new Ext.Shadow({ - mode : typeof this.shadow == "string" ? this.shadow : "sides", - offset : this.shadowOffset - }); - }else{ - this.shadowOffset = 0; - } - if(Ext.useShims && this.shim !== false){ - this.shim = this.el.createShim(); - this.shim.hide = this.hideAction; - this.shim.hide(); - }else{ - this.shim = false; - } - if(this.autoTabs){ - this.initTabs(); - } - this.addEvents({ - - "keydown" : true, - - "move" : true, - - "resize" : true, - - "beforehide" : true, - - "hide" : true, - - "beforeshow" : true, - - "show" : true - }); - el.on("keydown", this.onKeyDown, this); - el.on("mousedown", this.toFront, this); - Ext.EventManager.onWindowResize(this.adjustViewport, this, true); - this.el.hide(); - Ext.DialogManager.register(this); - Ext.BasicDialog.superclass.constructor.call(this); -}; - -Ext.extend(Ext.BasicDialog, Ext.util.Observable, { - shadowOffset: 5, - minHeight: 80, - minWidth: 200, - minButtonWidth: 75, - defaultButton: null, - buttonAlign: "right", - tabTag: 'div', - firstShow: true, - - - setTitle : function(text){ - this.header.update(text); - return this; - }, - - - closeClick : function(){ - this.hide(); - }, - - - collapseClick : function(){ - this[this.collapsed ? "expand" : "collapse"](); - }, - - - collapse : function(){ - if(!this.collapsed){ - this.collapsed = true; - this.el.addClass("x-dlg-collapsed"); - this.restoreHeight = this.el.getHeight(); - this.resizeTo(this.el.getWidth(), this.header.getHeight()); - } - }, - - - expand : function(){ - if(this.collapsed){ - this.collapsed = false; - this.el.removeClass("x-dlg-collapsed"); - this.resizeTo(this.el.getWidth(), this.restoreHeight); - } - }, - - - initTabs : function(){ - var tabs = this.getTabs(); - while(tabs.getTab(0)){ - tabs.removeTab(0); - } - this.el.select(this.tabTag+'.x-dlg-tab').each(function(el){ - var dom = el.dom; - tabs.addTab(Ext.id(dom), dom.title); - dom.title = ""; - }); - tabs.activate(0); - return tabs; - }, - - - beforeResize : function(){ - this.resizer.minHeight = Math.max(this.minHeight, this.getHeaderFooterHeight(true)+40); - }, - - - onResize : function(){ - this.refreshSize(); - this.syncBodyHeight(); - this.adjustAssets(); - this.focus(); - this.fireEvent("resize", this, this.size.width, this.size.height); - }, - - - onKeyDown : function(e){ - if(this.isVisible()){ - this.fireEvent("keydown", this, e); - } - }, - - - resizeTo : function(width, height){ - this.el.setSize(width, height); - this.size = {width: width, height: height}; - this.syncBodyHeight(); - if(this.fixedcenter){ - this.center(); - } - if(this.isVisible()){ - this.constrainXY(); - this.adjustAssets(); - } - this.fireEvent("resize", this, width, height); - return this; - }, - - - - setContentSize : function(w, h){ - h += this.getHeaderFooterHeight() + this.body.getMargins("tb"); - w += this.body.getMargins("lr") + this.bwrap.getMargins("lr") + this.centerBg.getPadding("lr"); - - h += this.body.getPadding("tb") + this.bwrap.getBorderWidth("tb") + this.body.getBorderWidth("tb") + this.el.getBorderWidth("tb"); - w += this.body.getPadding("lr") + this.bwrap.getBorderWidth("lr") + this.body.getBorderWidth("lr") + this.bwrap.getPadding("lr") + this.el.getBorderWidth("lr"); - - if(this.tabs){ - h += this.tabs.stripWrap.getHeight() + this.tabs.bodyEl.getMargins("tb") + this.tabs.bodyEl.getPadding("tb"); - w += this.tabs.bodyEl.getMargins("lr") + this.tabs.bodyEl.getPadding("lr"); - } - this.resizeTo(w, h); - return this; - }, - - - addKeyListener : function(key, fn, scope){ - var keyCode, shift, ctrl, alt; - if(typeof key == "object" && !(key instanceof Array)){ - keyCode = key["key"]; - shift = key["shift"]; - ctrl = key["ctrl"]; - alt = key["alt"]; - }else{ - keyCode = key; - } - var handler = function(dlg, e){ - if((!shift || e.shiftKey) && (!ctrl || e.ctrlKey) && (!alt || e.altKey)){ - var k = e.getKey(); - if(keyCode instanceof Array){ - for(var i = 0, len = keyCode.length; i < len; i++){ - if(keyCode[i] == k){ - fn.call(scope || window, dlg, k, e); - return; - } - } - }else{ - if(k == keyCode){ - fn.call(scope || window, dlg, k, e); - } - } - } - }; - this.on("keydown", handler); - return this; - }, - - - getTabs : function(){ - if(!this.tabs){ - this.el.addClass("x-dlg-auto-tabs"); - this.body.addClass(this.tabPosition == "bottom" ? "x-tabs-bottom" : "x-tabs-top"); - this.tabs = new Ext.TabPanel(this.body.dom, this.tabPosition == "bottom"); - } - return this.tabs; - }, - - - addButton : function(config, handler, scope){ - var dh = Ext.DomHelper; - if(!this.footer){ - this.footer = dh.append(this.bwrap, {tag: "div", cls:"x-dlg-ft"}, true); - } - if(!this.btnContainer){ - var tb = this.footer.createChild({ - tag:"div", - cls:"x-dlg-btns x-dlg-btns-"+this.buttonAlign, - html:'
    ' - }, null, true); - this.btnContainer = tb.firstChild.firstChild.firstChild; - } - var bconfig = { - handler: handler, - scope: scope, - minWidth: this.minButtonWidth, - hideParent:true - }; - if(typeof config == "string"){ - bconfig.text = config; - }else{ - if(config.tag){ - bconfig.dhconfig = config; - }else{ - Ext.apply(bconfig, config); - } - } - var btn = new Ext.Button( - this.btnContainer.appendChild(document.createElement("td")), - bconfig - ); - this.syncBodyHeight(); - if(!this.buttons){ - - this.buttons = []; - } - this.buttons.push(btn); - return btn; - }, - - - setDefaultButton : function(btn){ - this.defaultButton = btn; - return this; - }, - - - getHeaderFooterHeight : function(safe){ - var height = 0; - if(this.header){ - height += this.header.getHeight(); - } - if(this.footer){ - var fm = this.footer.getMargins(); - height += (this.footer.getHeight()+fm.top+fm.bottom); - } - height += this.bwrap.getPadding("tb")+this.bwrap.getBorderWidth("tb"); - height += this.centerBg.getPadding("tb"); - return height; - }, - - - syncBodyHeight : function(){ - var bd = this.body, cb = this.centerBg, bw = this.bwrap; - var height = this.size.height - this.getHeaderFooterHeight(false); - bd.setHeight(height-bd.getMargins("tb")); - var hh = this.header.getHeight(); - var h = this.size.height-hh; - cb.setHeight(h); - bw.setLeftTop(cb.getPadding("l"), hh+cb.getPadding("t")); - bw.setHeight(h-cb.getPadding("tb")); - bw.setWidth(this.el.getWidth(true)-cb.getPadding("lr")); - bd.setWidth(bw.getWidth(true)); - if(this.tabs){ - this.tabs.syncHeight(); - if(Ext.isIE){ - this.tabs.el.repaint(); - } - } - }, - - - restoreState : function(){ - var box = Ext.state.Manager.get(this.stateId || (this.el.id + "-state")); - if(box && box.width){ - this.xy = [box.x, box.y]; - this.resizeTo(box.width, box.height); - } - return this; - }, - - - beforeShow : function(){ - this.expand(); - if(this.fixedcenter){ - this.xy = this.el.getCenterXY(true); - } - if(this.modal){ - Ext.get(document.body).addClass("x-body-masked"); - this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); - this.mask.show(); - } - this.constrainXY(); - }, - - - animShow : function(){ - var b = Ext.get(this.animateTarget, true).getBox(); - this.proxy.setSize(b.width, b.height); - this.proxy.setLocation(b.x, b.y); - this.proxy.show(); - this.proxy.setBounds(this.xy[0], this.xy[1], this.size.width, this.size.height, - true, .35, this.showEl.createDelegate(this)); - }, - - - show : function(animateTarget){ - if (this.fireEvent("beforeshow", this) === false){ - return; - } - if(this.syncHeightBeforeShow){ - this.syncBodyHeight(); - }else if(this.firstShow){ - this.firstShow = false; - this.syncBodyHeight(); - } - this.animateTarget = animateTarget || this.animateTarget; - if(!this.el.isVisible()){ - this.beforeShow(); - if(this.animateTarget){ - this.animShow(); - }else{ - this.showEl(); - } - } - return this; - }, - - - showEl : function(){ - this.proxy.hide(); - this.el.setXY(this.xy); - this.el.show(); - this.adjustAssets(true); - this.toFront(); - this.focus(); - - if(Ext.isIE){ - this.el.repaint(); - } - this.fireEvent("show", this); - }, - - - focus : function(){ - if(this.defaultButton){ - this.defaultButton.focus(); - }else{ - this.focusEl.focus(); - } - }, - - - constrainXY : function(){ - if(this.constraintoviewport !== false){ - if(!this.viewSize){ - if(this.container){ - var s = this.container.getSize(); - this.viewSize = [s.width, s.height]; - }else{ - this.viewSize = [Ext.lib.Dom.getViewWidth(),Ext.lib.Dom.getViewHeight()]; - } - } - var s = Ext.get(this.container||document).getScroll(); - - var x = this.xy[0], y = this.xy[1]; - var w = this.size.width, h = this.size.height; - var vw = this.viewSize[0], vh = this.viewSize[1]; - - var moved = false; - - if(x + w > vw+s.left){ - x = vw - w; - moved = true; - } - if(y + h > vh+s.top){ - y = vh - h; - moved = true; - } - - if(x < s.left){ - x = s.left; - moved = true; - } - if(y < s.top){ - y = s.top; - moved = true; - } - if(moved){ - - this.xy = [x, y]; - if(this.isVisible()){ - this.el.setLocation(x, y); - this.adjustAssets(); - } - } - } - }, - - - onDrag : function(){ - if(!this.proxyDrag){ - this.xy = this.el.getXY(); - this.adjustAssets(); - } - }, - - - adjustAssets : function(doShow){ - var x = this.xy[0], y = this.xy[1]; - var w = this.size.width, h = this.size.height; - if(doShow === true){ - if(this.shadow){ - this.shadow.show(this.el); - } - if(this.shim){ - this.shim.show(); - } - } - if(this.shadow && this.shadow.isVisible()){ - this.shadow.show(this.el); - } - if(this.shim && this.shim.isVisible()){ - this.shim.setBounds(x, y, w, h); - } - }, - - - adjustViewport : function(w, h){ - if(!w || !h){ - w = Ext.lib.Dom.getViewWidth(); - h = Ext.lib.Dom.getViewHeight(); - } - - this.viewSize = [w, h]; - if(this.modal && this.mask.isVisible()){ - this.mask.setSize(w, h); - this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); - } - if(this.isVisible()){ - this.constrainXY(); - } - }, - - - destroy : function(removeEl){ - if(this.isVisible()){ - this.animateTarget = null; - this.hide(); - } - Ext.EventManager.removeResizeListener(this.adjustViewport, this); - if(this.tabs){ - this.tabs.destroy(removeEl); - } - Ext.destroy( - this.shim, - this.proxy, - this.resizer, - this.close, - this.mask - ); - if(this.dd){ - this.dd.unreg(); - } - if(this.buttons){ - for(var i = 0, len = this.buttons.length; i < len; i++){ - this.buttons[i].destroy(); - } - } - this.el.removeAllListeners(); - if(removeEl === true){ - this.el.update(""); - this.el.remove(); - } - Ext.DialogManager.unregister(this); - }, - - - startMove : function(){ - if(this.proxyDrag){ - this.proxy.show(); - } - if(this.constraintoviewport !== false){ - this.dd.constrainTo(document.body, {right: this.shadowOffset, bottom: this.shadowOffset}); - } - }, - - - endMove : function(){ - if(!this.proxyDrag){ - Ext.dd.DD.prototype.endDrag.apply(this.dd, arguments); - }else{ - Ext.dd.DDProxy.prototype.endDrag.apply(this.dd, arguments); - this.proxy.hide(); - } - this.refreshSize(); - this.adjustAssets(); - this.focus(); - this.fireEvent("move", this, this.xy[0], this.xy[1]); - }, - - - toFront : function(){ - Ext.DialogManager.bringToFront(this); - return this; - }, - - - toBack : function(){ - Ext.DialogManager.sendToBack(this); - return this; - }, - - - center : function(){ - var xy = this.el.getCenterXY(true); - this.moveTo(xy[0], xy[1]); - return this; - }, - - - moveTo : function(x, y){ - this.xy = [x,y]; - if(this.isVisible()){ - this.el.setXY(this.xy); - this.adjustAssets(); - } - return this; - }, - - - alignTo : function(element, position, offsets){ - this.xy = this.el.getAlignToXY(element, position, offsets); - if(this.isVisible()){ - this.el.setXY(this.xy); - this.adjustAssets(); - } - return this; - }, - - - anchorTo : function(el, alignment, offsets, monitorScroll){ - var action = function(){ - this.alignTo(el, alignment, offsets); - }; - Ext.EventManager.onWindowResize(action, this); - var tm = typeof monitorScroll; - if(tm != 'undefined'){ - Ext.EventManager.on(window, 'scroll', action, this, - {buffer: tm == 'number' ? monitorScroll : 50}); - } - action.call(this); - return this; - }, - - - isVisible : function(){ - return this.el.isVisible(); - }, - - - animHide : function(callback){ - var b = Ext.get(this.animateTarget).getBox(); - this.proxy.show(); - this.proxy.setBounds(this.xy[0], this.xy[1], this.size.width, this.size.height); - this.el.hide(); - this.proxy.setBounds(b.x, b.y, b.width, b.height, true, .35, - this.hideEl.createDelegate(this, [callback])); - }, - - - hide : function(callback){ - if (this.fireEvent("beforehide", this) === false){ - return; - } - if(this.shadow){ - this.shadow.hide(); - } - if(this.shim) { - this.shim.hide(); - } - if(this.animateTarget){ - this.animHide(callback); - }else{ - this.el.hide(); - this.hideEl(callback); - } - return this; - }, - - - hideEl : function(callback){ - this.proxy.hide(); - if(this.modal){ - this.mask.hide(); - Ext.get(document.body).removeClass("x-body-masked"); - } - this.fireEvent("hide", this); - if(typeof callback == "function"){ - callback(); - } - }, - - - hideAction : function(){ - this.setLeft("-10000px"); - this.setTop("-10000px"); - this.setStyle("visibility", "hidden"); - }, - - - refreshSize : function(){ - this.size = this.el.getSize(); - this.xy = this.el.getXY(); - Ext.state.Manager.set(this.stateId || this.el.id + "-state", this.el.getBox()); - }, - - - - setZIndex : function(index){ - if(this.modal){ - this.mask.setStyle("z-index", index); - } - if(this.shim){ - this.shim.setStyle("z-index", ++index); - } - if(this.shadow){ - this.shadow.setZIndex(++index); - } - this.el.setStyle("z-index", ++index); - if(this.proxy){ - this.proxy.setStyle("z-index", ++index); - } - if(this.resizer){ - this.resizer.proxy.setStyle("z-index", ++index); - } - - this.lastZIndex = index; - }, - - - getEl : function(){ - return this.el; - } -}); - - -Ext.DialogManager = function(){ - var list = {}; - var accessList = []; - var front = null; - - - var sortDialogs = function(d1, d2){ - return (!d1._lastAccess || d1._lastAccess < d2._lastAccess) ? -1 : 1; - }; - - - var orderDialogs = function(){ - accessList.sort(sortDialogs); - var seed = Ext.DialogManager.zseed; - for(var i = 0, len = accessList.length; i < len; i++){ - var dlg = accessList[i]; - if(dlg){ - dlg.setZIndex(seed + (i*10)); - } - } - }; - - return { - - zseed : 9000, - - - register : function(dlg){ - list[dlg.id] = dlg; - accessList.push(dlg); - }, - - - unregister : function(dlg){ - delete list[dlg.id]; - if(!accessList.indexOf){ - for(var i = 0, len = accessList.length; i < len; i++){ - if(accessList[i] == dlg){ - accessList.splice(i, 1); - return; - } - } - }else{ - var i = accessList.indexOf(dlg); - if(i != -1){ - accessList.splice(i, 1); - } - } - }, - - - get : function(id){ - return typeof id == "object" ? id : list[id]; - }, - - - bringToFront : function(dlg){ - dlg = this.get(dlg); - if(dlg != front){ - front = dlg; - dlg._lastAccess = new Date().getTime(); - orderDialogs(); - } - return dlg; - }, - - - sendToBack : function(dlg){ - dlg = this.get(dlg); - dlg._lastAccess = -(new Date().getTime()); - orderDialogs(); - return dlg; - }, - - - hideAll : function(){ - for(var id in list){ - if(list[id] && typeof list[id] != "function" && list[id].isVisible()){ - list[id].hide(); - } - } - } - }; -}(); - - -Ext.LayoutDialog = function(el, config){ - config.autoTabs = false; - Ext.LayoutDialog.superclass.constructor.call(this, el, config); - this.body.setStyle({overflow:"hidden", position:"relative"}); - this.layout = new Ext.BorderLayout(this.body.dom, config); - this.layout.monitorWindowResize = false; - this.el.addClass("x-dlg-auto-layout"); - - this.center = Ext.BasicDialog.prototype.center; - this.on("show", this.layout.layout, this.layout, true); -}; -Ext.extend(Ext.LayoutDialog, Ext.BasicDialog, { - - endUpdate : function(){ - this.layout.endUpdate(); - }, - - - beginUpdate : function(){ - this.layout.beginUpdate(); - }, - - - getLayout : function(){ - return this.layout; - }, - - showEl : function(){ - Ext.LayoutDialog.superclass.showEl.apply(this, arguments); - if(Ext.isIE7){ - this.layout.layout(); - } - }, - - - - syncBodyHeight : function(){ - Ext.LayoutDialog.superclass.syncBodyHeight.call(this); - if(this.layout){this.layout.layout();} - } -}); - -Ext.MessageBox = function(){ - var dlg, opt, mask, waitTimer; - var bodyEl, msgEl, textboxEl, textareaEl, progressEl, pp; - var buttons, activeTextEl, bwidth; - - - var handleButton = function(button){ - dlg.hide(); - Ext.callback(opt.fn, opt.scope||window, [button, activeTextEl.dom.value], 1); - }; - - - var handleHide = function(){ - if(opt && opt.cls){ - dlg.el.removeClass(opt.cls); - } - if(waitTimer){ - Ext.TaskMgr.stop(waitTimer); - waitTimer = null; - } - }; - - - var updateButtons = function(b){ - var width = 0; - if(!b){ - buttons["ok"].hide(); - buttons["cancel"].hide(); - buttons["yes"].hide(); - buttons["no"].hide(); - dlg.footer.dom.style.display = 'none'; - return width; - } - dlg.footer.dom.style.display = ''; - for(var k in buttons){ - if(typeof buttons[k] != "function"){ - if(b[k]){ - buttons[k].show(); - buttons[k].setText(typeof b[k] == "string" ? b[k] : Ext.MessageBox.buttonText[k]); - width += buttons[k].el.getWidth()+15; - }else{ - buttons[k].hide(); - } - } - } - return width; - }; - - - var handleEsc = function(d, k, e){ - if(opt && opt.closable !== false){ - dlg.hide(); - } - if(e){ - e.stopEvent(); - } - }; - - return { - - getDialog : function(){ - if(!dlg){ - dlg = new Ext.BasicDialog("x-msg-box", { - autoCreate : true, - shadow: true, - draggable: true, - resizable:false, - constraintoviewport:false, - fixedcenter:true, - collapsible : false, - shim:true, - modal: true, - width:400, height:100, - buttonAlign:"center", - closeClick : function(){ - if(opt && opt.buttons && opt.buttons.no && !opt.buttons.cancel){ - handleButton("no"); - }else{ - handleButton("cancel"); - } - } - }); - dlg.on("hide", handleHide); - mask = dlg.mask; - dlg.addKeyListener(27, handleEsc); - buttons = {}; - var bt = this.buttonText; - buttons["ok"] = dlg.addButton(bt["ok"], handleButton.createCallback("ok")); - buttons["yes"] = dlg.addButton(bt["yes"], handleButton.createCallback("yes")); - buttons["no"] = dlg.addButton(bt["no"], handleButton.createCallback("no")); - buttons["cancel"] = dlg.addButton(bt["cancel"], handleButton.createCallback("cancel")); - bodyEl = dlg.body.createChild({ - tag:"div", - html:'
     
    ' - }); - msgEl = bodyEl.dom.firstChild; - textboxEl = Ext.get(bodyEl.dom.childNodes[2]); - textboxEl.enableDisplayMode(); - textboxEl.addKeyListener([10,13], function(){ - if(dlg.isVisible() && opt && opt.buttons){ - if(opt.buttons.ok){ - handleButton("ok"); - }else if(opt.buttons.yes){ - handleButton("yes"); - } - } - }); - textareaEl = Ext.get(bodyEl.dom.childNodes[3]); - textareaEl.enableDisplayMode(); - progressEl = Ext.get(bodyEl.dom.childNodes[4]); - progressEl.enableDisplayMode(); - var pf = progressEl.dom.firstChild; - pp = Ext.get(pf.firstChild); - pp.setHeight(pf.offsetHeight); - } - return dlg; - }, - - - updateText : function(text){ - if(!dlg.isVisible() && !opt.width){ - dlg.resizeTo(this.maxWidth, 100); - } - msgEl.innerHTML = text || ' '; - var w = Math.max(Math.min(opt.width || msgEl.offsetWidth, this.maxWidth), - Math.max(opt.minWidth || this.minWidth, bwidth)); - if(opt.prompt){ - activeTextEl.setWidth(w); - } - if(dlg.isVisible()){ - dlg.fixedcenter = false; - } - dlg.setContentSize(w, bodyEl.getHeight()); - if(dlg.isVisible()){ - dlg.fixedcenter = true; - } - return this; - }, - - - updateProgress : function(value, text){ - if(text){ - this.updateText(text); - } - pp.setWidth(Math.floor(value*progressEl.dom.firstChild.offsetWidth)); - return this; - }, - - - isVisible : function(){ - return dlg && dlg.isVisible(); - }, - - - hide : function(){ - if(this.isVisible()){ - dlg.hide(); - } - }, - - - show : function(options){ - if(this.isVisible()){ - this.hide(); - } - var d = this.getDialog(); - opt = options; - d.setTitle(opt.title || " "); - d.close.setDisplayed(opt.closable !== false); - activeTextEl = textboxEl; - opt.prompt = opt.prompt || (opt.multiline ? true : false); - if(opt.prompt){ - if(opt.multiline){ - textboxEl.hide(); - textareaEl.show(); - textareaEl.setHeight(typeof opt.multiline == "number" ? - opt.multiline : this.defaultTextHeight); - activeTextEl = textareaEl; - }else{ - textboxEl.show(); - textareaEl.hide(); - } - }else{ - textboxEl.hide(); - textareaEl.hide(); - } - progressEl.setDisplayed(opt.progress === true); - this.updateProgress(0); - activeTextEl.dom.value = opt.value || ""; - if(opt.prompt){ - dlg.setDefaultButton(activeTextEl); - }else{ - var bs = opt.buttons; - var db = null; - if(bs && bs.ok){ - db = buttons["ok"]; - }else if(bs && bs.yes){ - db = buttons["yes"]; - } - dlg.setDefaultButton(db); - } - bwidth = updateButtons(opt.buttons); - this.updateText(opt.msg); - if(opt.cls){ - d.el.addClass(opt.cls); - } - d.proxyDrag = opt.proxyDrag === true; - d.modal = opt.modal !== false; - d.mask = opt.modal !== false ? mask : false; - if(!d.isVisible()){ - - document.body.appendChild(dlg.el.dom); - d.animateTarget = null; - d.show(options.animEl); - } - return this; - }, - - - progress : function(title, msg){ - this.show({ - title : title, - msg : msg, - buttons: false, - progress:true, - closable:false, - minWidth: this.minProgressWidth - }); - return this; - }, - - - alert : function(title, msg, fn, scope){ - this.show({ - title : title, - msg : msg, - buttons: this.OK, - fn: fn, - scope : scope - }); - return this; - }, - - - wait : function(msg, title){ - this.show({ - title : title, - msg : msg, - buttons: false, - closable:false, - progress:true, - modal:true, - width:300, - wait:true - }); - waitTimer = Ext.TaskMgr.start({ - run: function(i){ - Ext.MessageBox.updateProgress(((((i+20)%20)+1)*5)*.01); - }, - interval: 1000 - }); - return this; - }, - - - confirm : function(title, msg, fn, scope){ - this.show({ - title : title, - msg : msg, - buttons: this.YESNO, - fn: fn, - scope : scope - }); - return this; - }, - - - prompt : function(title, msg, fn, scope, multiline){ - this.show({ - title : title, - msg : msg, - buttons: this.OKCANCEL, - fn: fn, - minWidth:250, - scope : scope, - prompt:true, - multiline: multiline - }); - return this; - }, - - - OK : {ok:true}, - - YESNO : {yes:true, no:true}, - - OKCANCEL : {ok:true, cancel:true}, - - YESNOCANCEL : {yes:true, no:true, cancel:true}, - - - defaultTextHeight : 75, - - maxWidth : 600, - - minWidth : 100, - - minProgressWidth : 250, - - buttonText : { - ok : "OK", - cancel : "Cancel", - yes : "Yes", - no : "No" - } - }; -}(); - - -Ext.Msg = Ext.MessageBox; - -Ext.QuickTips = function(){ - var el, tipBody, tipBodyText, tipTitle, tm, cfg, close, tagEls = {}, esc, removeCls = null, bdLeft, bdRight; - var ce, bd, xy, dd; - var visible = false, disabled = true, inited = false; - var showProc = 1, hideProc = 1, dismissProc = 1, locks = []; - - var onOver = function(e){ - if(disabled){ - return; - } - var t = e.getTarget(); - if(!t || t.nodeType !== 1 || t == document || t == document.body){ - return; - } - if(ce && t == ce.el){ - clearTimeout(hideProc); - return; - } - if(t && tagEls[t.id]){ - tagEls[t.id].el = t; - showProc = show.defer(tm.showDelay, tm, [tagEls[t.id]]); - return; - } - var ttp, et = Ext.fly(t); - var ns = cfg.namespace; - if(tm.interceptTitles && t.title){ - ttp = t.title; - t.qtip = ttp; - t.removeAttribute("title"); - e.preventDefault(); - }else{ - ttp = t.qtip || et.getAttributeNS(ns, cfg.attribute); - } - if(ttp){ - showProc = show.defer(tm.showDelay, tm, [{ - el: t, - text: ttp, - width: et.getAttributeNS(ns, cfg.width), - autoHide: et.getAttributeNS(ns, cfg.hide) != "user", - title: et.getAttributeNS(ns, cfg.title), - cls: et.getAttributeNS(ns, cfg.cls) - }]); - } - }; - - var onOut = function(e){ - clearTimeout(showProc); - var t = e.getTarget(); - if(t && ce && ce.el == t && (tm.autoHide && ce.autoHide !== false)){ - hideProc = setTimeout(hide, tm.hideDelay); - } - }; - - var onMove = function(e){ - if(disabled){ - return; - } - xy = e.getXY(); - xy[1] += 18; - if(tm.trackMouse && ce){ - el.setXY(xy); - } - }; - - var onDown = function(e){ - clearTimeout(showProc); - clearTimeout(hideProc); - if(!e.within(el)){ - if(tm.hideOnClick){ - hide(); - tm.disable(); - } - } - }; - - var onUp = function(e){ - tm.enable(); - }; - - var getPad = function(){ - return bdLeft.getPadding('l')+bdRight.getPadding('r'); - }; - - var show = function(o){ - if(disabled){ - return; - } - clearTimeout(dismissProc); - ce = o; - if(removeCls){ - el.removeClass(removeCls); - removeCls = null; - } - if(ce.cls){ - el.addClass(ce.cls); - removeCls = ce.cls; - } - if(ce.title){ - tipTitle.update(ce.title); - tipTitle.show(); - }else{ - tipTitle.update(''); - tipTitle.hide(); - } - el.dom.style.width = tm.maxWidth+'px'; - - tipBodyText.update(o.text); - var p = getPad(), w = ce.width; - if(!w){ - var td = tipBodyText.dom; - var aw = Math.max(td.offsetWidth, td.clientWidth, td.scrollWidth); - if(aw > tm.maxWidth){ - w = tm.maxWidth; - }else if(aw < tm.minWidth){ - w = tm.minWidth; - }else{ - w = aw; - } - } - - el.setWidth(parseInt(w, 10) + p); - if(!ce.autoHide){ - close.setDisplayed(true); - if(dd){ - dd.unlock(); - } - }else{ - close.setDisplayed(false); - if(dd){ - dd.lock(); - } - } - if(xy){ - el.avoidY = xy[1]-18; - el.setXY(xy); - } - if(tm.animate){ - el.setOpacity(.1); - el.setStyle("visibility", "visible"); - el.fadeIn({callback: afterShow}); - }else{ - afterShow(); - } - }; - - var afterShow = function(){ - if(ce){ - el.show(); - esc.enable(); - if(tm.autoDismiss && ce.autoHide !== false){ - dismissProc = setTimeout(hide, tm.autoDismissDelay); - } - } - }; - - var hide = function(noanim){ - clearTimeout(dismissProc); - clearTimeout(hideProc); - ce = null; - if(el.isVisible()){ - esc.disable(); - if(noanim !== true && tm.animate){ - el.fadeOut({callback: afterHide}); - }else{ - afterHide(); - } - } - }; - - var afterHide = function(){ - el.hide(); - if(removeCls){ - el.removeClass(removeCls); - removeCls = null; - } - }; - - return { - - minWidth : 40, - - maxWidth : 300, - - interceptTitles : false, - - trackMouse : false, - - hideOnClick : true, - - showDelay : 500, - - hideDelay : 200, - - autoHide : true, - - autoDismiss : true, - - autoDismissDelay : 5000, - - animate : false, - - - init : function(){ - tm = Ext.QuickTips; - cfg = tm.tagConfig; - if(!inited){ - el = new Ext.Layer({cls:"x-tip", shadow:"drop", shim: true, constrain:true, shadowOffset:3}); - el.fxDefaults = {stopFx: true}; - - el.update('

    '); - tipTitle = el.child('h3'); - tipTitle.enableDisplayMode("block"); - tipBody = el.child('div.x-tip-bd'); - tipBodyText = el.child('div.x-tip-bd-inner'); - bdLeft = el.child('div.x-tip-bd-left'); - bdRight = el.child('div.x-tip-bd-right'); - close = el.child('div.x-tip-close'); - close.enableDisplayMode("block"); - close.on("click", hide); - d = Ext.get(document); - d.on("mousedown", onDown); - d.on("mouseup", onUp); - d.on("mouseover", onOver); - d.on("mouseout", onOut); - d.on("mousemove", onMove); - esc = d.addKeyListener(27, hide); - esc.disable(); - if(Ext.dd.DD){ - dd = el.initDD("default", null, { - onDrag : function(){ - el.sync(); - } - }); - dd.setHandleElId(tipTitle.id); - dd.lock(); - } - inited = true; - } - this.enable(); - }, - - - register : function(config){ - var cs = config instanceof Array ? config : arguments; - for(var i = 0, len = cs.length; i < len; i++) { - var c = cs[i]; - var target = c.target; - if(target){ - if(target instanceof Array){ - for(var j = 0, jlen = target.length; j < jlen; j++){ - tagEls[target[j]] = c; - } - }else{ - tagEls[typeof target == 'string' ? target : Ext.id(target.id)] = c; - } - } - } - }, - - - unregister : function(el){ - delete tagEls[Ext.id(el)]; - }, - - - enable : function(){ - if(inited){ - locks.pop(); - if(locks.length < 1){ - disabled = false; - } - } - }, - - - disable : function(){ - disabled = true; - clearTimeout(showProc); - clearTimeout(hideProc); - clearTimeout(dismissProc); - if(ce){ - hide(true); - } - locks.push(1); - }, - - - isEnabled : function(){ - return !disabled; - }, - - - tagConfig : { - namespace : "ext", - attribute : "qtip", - width : "width", - target : "target", - title : "qtitle", - hide : "hide", - cls : "qclass" - } - }; -}(); - - -Ext.QuickTips.tips = Ext.QuickTips.register; - -Ext.tree.TreePanel = function(el, config){ - Ext.tree.TreePanel.superclass.constructor.call(this); - this.el = Ext.get(el); - this.el.addClass('x-tree'); - - this.id = this.el.id; - Ext.apply(this, config); - this.addEvents({ - - "beforeload" : true, - - "load" : true, - - "textchange" : true, - - "beforeexpand" : true, - - "beforecollapse" : true, - - "expand" : true, - - "disabledchange" : true, - - "collapse" : true, - - "beforeclick":true, - - "click":true, - - "dblclick":true, - - "contextmenu":true, - - "beforechildrenrendered":true, - - "startdrag" : true, - - "enddrag" : true, - - "dragdrop" : true, - - "beforenodedrop" : true, - - "nodedrop" : true, - - "nodedragover" : true - }); - if(this.singleExpand){ - this.on("beforeexpand", this.restrictExpand, this); - } -}; -Ext.extend(Ext.tree.TreePanel, Ext.data.Tree, { - rootVisible : true, - animate: Ext.enableFx, - lines : true, - enableDD : false, - hlDrop : Ext.enableFx, - - - restrictExpand : function(node){ - var p = node.parentNode; - if(p){ - if(p.expandedChild && p.expandedChild.parentNode == p){ - p.expandedChild.collapse(); - } - p.expandedChild = node; - } - }, - - - setRootNode : function(node){ - Ext.tree.TreePanel.superclass.setRootNode.call(this, node); - if(!this.rootVisible){ - node.ui = new Ext.tree.RootTreeNodeUI(node); - } - return node; - }, - - - getEl : function(){ - return this.el; - }, - - - getLoader : function(){ - return this.loader; - }, - - - expandAll : function(){ - this.root.expand(true); - }, - - - collapseAll : function(){ - this.root.collapse(true); - }, - - - getSelectionModel : function(){ - if(!this.selModel){ - this.selModel = new Ext.tree.DefaultSelectionModel(); - } - return this.selModel; - }, - - - expandPath : function(path, attr, callback){ - attr = attr || "id"; - var keys = path.split(this.pathSeparator); - var curNode = this.root; - if(curNode.attributes[attr] != keys[1]){ - if(callback){ - callback(false, null); - } - return; - } - var index = 1; - var f = function(){ - if(++index == keys.length){ - if(callback){ - callback(true, curNode); - } - return; - } - var c = curNode.findChild(attr, keys[index]); - if(!c){ - if(callback){ - callback(false, curNode); - } - return; - } - curNode = c; - c.expand(false, false, f); - }; - curNode.expand(false, false, f); - }, - - - selectPath : function(path, attr, callback){ - attr = attr || "id"; - var keys = path.split(this.pathSeparator); - var v = keys.pop(); - if(keys.length > 0){ - var f = function(success, node){ - if(success && node){ - var n = node.findChild(attr, v); - if(n){ - n.select(); - if(callback){ - callback(true, n); - } - } - }else{ - if(callback){ - callback(false, n); - } - } - }; - this.expandPath(keys.join(this.pathSeparator), attr, f); - }else{ - this.root.select(); - if(callback){ - callback(true, this.root); - } - } - }, - - - render : function(){ - this.container = this.el.createChild({tag:"ul", - cls:"x-tree-root-ct " + - (this.lines ? "x-tree-lines" : "x-tree-no-lines")}); - - if(this.containerScroll){ - Ext.dd.ScrollManager.register(this.el); - } - if((this.enableDD || this.enableDrop) && !this.dropZone){ - - this.dropZone = new Ext.tree.TreeDropZone(this, this.dropConfig || { - ddGroup: this.ddGroup || "TreeDD", appendOnly: this.ddAppendOnly === true - }); - } - if((this.enableDD || this.enableDrag) && !this.dragZone){ - - this.dragZone = new Ext.tree.TreeDragZone(this, this.dragConfig || { - ddGroup: this.ddGroup || "TreeDD", - scroll: this.ddScroll - }); - } - this.getSelectionModel().init(this); - this.root.render(); - if(!this.rootVisible){ - this.root.renderChildren(); - } - return this; - } -}); - -Ext.tree.DefaultSelectionModel = function(){ - this.selNode = null; - - this.addEvents({ - - "selectionchange" : true, - - - "beforeselect" : true - }); -}; - -Ext.extend(Ext.tree.DefaultSelectionModel, Ext.util.Observable, { - init : function(tree){ - this.tree = tree; - tree.el.on("keydown", this.onKeyDown, this); - tree.on("click", this.onNodeClick, this); - }, - - onNodeClick : function(node, e){ - this.select(node); - }, - - - select : function(node){ - var last = this.selNode; - if(last != node && this.fireEvent('beforeselect', this, node, last) !== false){ - if(last){ - last.ui.onSelectedChange(false); - } - this.selNode = node; - node.ui.onSelectedChange(true); - this.fireEvent("selectionchange", this, node, last); - } - return node; - }, - - - unselect : function(node){ - if(this.selNode == node){ - this.clearSelections(); - } - }, - - - clearSelections : function(){ - var n = this.selNode; - if(n){ - n.ui.onSelectedChange(false); - this.selNode = null; - this.fireEvent("selectionchange", this, null); - } - return n; - }, - - - getSelectedNode : function(){ - return this.selNode; - }, - - - isSelected : function(node){ - return this.selNode == node; - }, - - - selectPrevious : function(){ - var s = this.selNode || this.lastSelNode; - if(!s){ - return null; - } - var ps = s.previousSibling; - if(ps){ - if(!ps.isExpanded() || ps.childNodes.length < 1){ - return this.select(ps); - } else{ - var lc = ps.lastChild; - while(lc && lc.isExpanded() && lc.childNodes.length > 0){ - lc = lc.lastChild; - } - return this.select(lc); - } - } else if(s.parentNode && (this.tree.rootVisible || !s.parentNode.isRoot)){ - return this.select(s.parentNode); - } - return null; - }, - - - selectNext : function(){ - var s = this.selNode || this.lastSelNode; - if(!s){ - return null; - } - if(s.firstChild && s.isExpanded()){ - return this.select(s.firstChild); - }else if(s.nextSibling){ - return this.select(s.nextSibling); - }else if(s.parentNode){ - var newS = null; - s.parentNode.bubble(function(){ - if(this.nextSibling){ - newS = this.getOwnerTree().selModel.select(this.nextSibling); - return false; - } - }); - return newS; - } - return null; - }, - - onKeyDown : function(e){ - var s = this.selNode || this.lastSelNode; - - var sm = this; - if(!s){ - return; - } - var k = e.getKey(); - switch(k){ - case e.DOWN: - e.stopEvent(); - this.selectNext(); - break; - case e.UP: - e.stopEvent(); - this.selectPrevious(); - break; - case e.RIGHT: - e.preventDefault(); - if(s.hasChildNodes()){ - if(!s.isExpanded()){ - s.expand(); - }else if(s.firstChild){ - this.select(s.firstChild, e); - } - } - break; - case e.LEFT: - e.preventDefault(); - if(s.hasChildNodes() && s.isExpanded()){ - s.collapse(); - }else if(s.parentNode && (this.tree.rootVisible || s.parentNode != this.tree.getRootNode())){ - this.select(s.parentNode, e); - } - break; - }; - } -}); - - -Ext.tree.MultiSelectionModel = function(){ - this.selNodes = []; - this.selMap = {}; - this.addEvents({ - - "selectionchange" : true - }); -}; - -Ext.extend(Ext.tree.MultiSelectionModel, Ext.util.Observable, { - init : function(tree){ - this.tree = tree; - tree.el.on("keydown", this.onKeyDown, this); - tree.on("click", this.onNodeClick, this); - }, - - onNodeClick : function(node, e){ - this.select(node, e, e.ctrlKey); - }, - - - select : function(node, e, keepExisting){ - if(keepExisting !== true){ - this.clearSelections(true); - } - if(this.isSelected(node)){ - this.lastSelNode = node; - return node; - } - this.selNodes.push(node); - this.selMap[node.id] = node; - this.lastSelNode = node; - node.ui.onSelectedChange(true); - this.fireEvent("selectionchange", this, this.selNodes); - return node; - }, - - - unselect : function(node){ - if(this.selMap[node.id]){ - node.ui.onSelectedChange(false); - var sn = this.selNodes; - var index = -1; - if(sn.indexOf){ - index = sn.indexOf(node); - }else{ - for(var i = 0, len = sn.length; i < len; i++){ - if(sn[i] == node){ - index = i; - break; - } - } - } - if(index != -1){ - this.selNodes.splice(index, 1); - } - delete this.selMap[node.id]; - this.fireEvent("selectionchange", this, this.selNodes); - } - }, - - - clearSelections : function(suppressEvent){ - var sn = this.selNodes; - if(sn.length > 0){ - for(var i = 0, len = sn.length; i < len; i++){ - sn[i].ui.onSelectedChange(false); - } - this.selNodes = []; - this.selMap = {}; - if(suppressEvent !== true){ - this.fireEvent("selectionchange", this, this.selNodes); - } - } - }, - - - isSelected : function(node){ - return this.selMap[node.id] ? true : false; - }, - - - getSelectedNodes : function(){ - return this.selNodes; - }, - - onKeyDown : Ext.tree.DefaultSelectionModel.prototype.onKeyDown, - - selectNext : Ext.tree.DefaultSelectionModel.prototype.selectNext, - - selectPrevious : Ext.tree.DefaultSelectionModel.prototype.selectPrevious -}); - -Ext.tree.TreeNode = function(attributes){ - attributes = attributes || {}; - if(typeof attributes == "string"){ - attributes = {text: attributes}; - } - this.childrenRendered = false; - this.rendered = false; - Ext.tree.TreeNode.superclass.constructor.call(this, attributes); - this.expanded = attributes.expanded === true; - this.isTarget = attributes.isTarget !== false; - this.draggable = attributes.draggable !== false && attributes.allowDrag !== false; - this.allowChildren = attributes.allowChildren !== false && attributes.allowDrop !== false; - - - this.text = attributes.text; - - this.disabled = attributes.disabled === true; - - this.addEvents({ - - "textchange" : true, - - "beforeexpand" : true, - - "beforecollapse" : true, - - "expand" : true, - - "disabledchange" : true, - - "collapse" : true, - - "beforeclick":true, - - "click":true, - - "dblclick":true, - - "contextmenu":true, - - "beforechildrenrendered":true - }); - - var uiClass = this.attributes.uiProvider || Ext.tree.TreeNodeUI; - - - this.ui = new uiClass(this); -}; -Ext.extend(Ext.tree.TreeNode, Ext.data.Node, { - preventHScroll: true, - - - isExpanded : function(){ - return this.expanded; - }, - - - getUI : function(){ - return this.ui; - }, - - - setFirstChild : function(node){ - var of = this.firstChild; - Ext.tree.TreeNode.superclass.setFirstChild.call(this, node); - if(this.childrenRendered && of && node != of){ - of.renderIndent(true, true); - } - if(this.rendered){ - this.renderIndent(true, true); - } - }, - - - setLastChild : function(node){ - var ol = this.lastChild; - Ext.tree.TreeNode.superclass.setLastChild.call(this, node); - if(this.childrenRendered && ol && node != ol){ - ol.renderIndent(true, true); - } - if(this.rendered){ - this.renderIndent(true, true); - } - }, - - - - appendChild : function(){ - var node = Ext.tree.TreeNode.superclass.appendChild.apply(this, arguments); - if(node && this.childrenRendered){ - node.render(); - } - this.ui.updateExpandIcon(); - return node; - }, - - - removeChild : function(node){ - this.ownerTree.getSelectionModel().unselect(node); - Ext.tree.TreeNode.superclass.removeChild.apply(this, arguments); - - if(this.childrenRendered){ - node.ui.remove(); - } - if(this.childNodes.length < 1){ - this.collapse(false, false); - }else{ - this.ui.updateExpandIcon(); - } - return node; - }, - - - insertBefore : function(node, refNode){ - var newNode = Ext.tree.TreeNode.superclass.insertBefore.apply(this, arguments); - if(newNode && refNode && this.childrenRendered){ - node.render(); - } - this.ui.updateExpandIcon(); - return newNode; - }, - - - setText : function(text){ - var oldText = this.text; - this.text = text; - this.attributes.text = text; - if(this.rendered){ - this.ui.onTextChange(this, text, oldText); - } - this.fireEvent("textchange", this, text, oldText); - }, - - - select : function(){ - this.getOwnerTree().getSelectionModel().select(this); - }, - - - unselect : function(){ - this.getOwnerTree().getSelectionModel().unselect(this); - }, - - - isSelected : function(){ - return this.getOwnerTree().getSelectionModel().isSelected(this); - }, - - - expand : function(deep, anim, callback){ - if(!this.expanded){ - if(this.fireEvent("beforeexpand", this, deep, anim) === false){ - return; - } - if(!this.childrenRendered){ - this.renderChildren(); - } - this.expanded = true; - if(!this.isHiddenRoot() && (this.getOwnerTree().animate && anim !== false) || anim){ - this.ui.animExpand(function(){ - this.fireEvent("expand", this); - if(typeof callback == "function"){ - callback(this); - } - if(deep === true){ - this.expandChildNodes(true); - } - }.createDelegate(this)); - return; - }else{ - this.ui.expand(); - this.fireEvent("expand", this); - if(typeof callback == "function"){ - callback(this); - } - } - }else{ - if(typeof callback == "function"){ - callback(this); - } - } - if(deep === true){ - this.expandChildNodes(true); - } - }, - - isHiddenRoot : function(){ - return this.isRoot && !this.getOwnerTree().rootVisible; - }, - - - collapse : function(deep, anim){ - if(this.expanded && !this.isHiddenRoot()){ - if(this.fireEvent("beforecollapse", this, deep, anim) === false){ - return; - } - this.expanded = false; - if((this.getOwnerTree().animate && anim !== false) || anim){ - this.ui.animCollapse(function(){ - this.fireEvent("collapse", this); - if(deep === true){ - this.collapseChildNodes(true); - } - }.createDelegate(this)); - return; - }else{ - this.ui.collapse(); - this.fireEvent("collapse", this); - } - } - if(deep === true){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - cs[i].collapse(true); - } - } - }, - - - delayedExpand : function(delay){ - if(!this.expandProcId){ - this.expandProcId = this.expand.defer(delay, this); - } - }, - - - cancelExpand : function(){ - if(this.expandProcId){ - clearTimeout(this.expandProcId); - } - this.expandProcId = false; - }, - - - toggle : function(){ - if(this.expanded){ - this.collapse(); - }else{ - this.expand(); - } - }, - - - ensureVisible : function(callback){ - var tree = this.getOwnerTree(); - tree.expandPath(this.getPath(), false, function(){ - tree.getEl().scrollChildIntoView(this.ui.anchor); - Ext.callback(callback); - }.createDelegate(this)); - }, - - - expandChildNodes : function(deep){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - cs[i].expand(deep); - } - }, - - - collapseChildNodes : function(deep){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - cs[i].collapse(deep); - } - }, - - - disable : function(){ - this.disabled = true; - this.unselect(); - if(this.rendered && this.ui.onDisableChange){ - this.ui.onDisableChange(this, true); - } - this.fireEvent("disabledchange", this, true); - }, - - - enable : function(){ - this.disabled = false; - if(this.rendered && this.ui.onDisableChange){ - this.ui.onDisableChange(this, false); - } - this.fireEvent("disabledchange", this, false); - }, - - - renderChildren : function(suppressEvent){ - if(suppressEvent !== false){ - this.fireEvent("beforechildrenrendered", this); - } - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++){ - cs[i].render(true); - } - this.childrenRendered = true; - }, - - - sort : function(fn, scope){ - Ext.tree.TreeNode.superclass.sort.apply(this, arguments); - if(this.childrenRendered){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++){ - cs[i].render(true); - } - } - }, - - - render : function(bulkRender){ - this.ui.render(bulkRender); - if(!this.rendered){ - this.rendered = true; - if(this.expanded){ - this.expanded = false; - this.expand(false, false); - } - } - }, - - - renderIndent : function(deep, refresh){ - if(refresh){ - this.ui.childIndent = null; - } - this.ui.renderIndent(); - if(deep === true && this.childrenRendered){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++){ - cs[i].renderIndent(true, refresh); - } - } - } -}); - - Ext.tree.AsyncTreeNode = function(config){ - this.loaded = false; - this.loading = false; - Ext.tree.AsyncTreeNode.superclass.constructor.apply(this, arguments); - - this.addEvents({'beforeload':true, 'load': true}); - - -}; -Ext.extend(Ext.tree.AsyncTreeNode, Ext.tree.TreeNode, { - expand : function(deep, anim, callback){ - if(this.loading){ - var timer; - var f = function(){ - if(!this.loading){ - clearInterval(timer); - this.expand(deep, anim, callback); - } - }.createDelegate(this); - timer = setInterval(f, 200); - return; - } - if(!this.loaded){ - if(this.fireEvent("beforeload", this) === false){ - return; - } - this.loading = true; - this.ui.beforeLoad(this); - var loader = this.loader || this.attributes.loader || this.getOwnerTree().getLoader(); - if(loader){ - loader.load(this, this.loadComplete.createDelegate(this, [deep, anim, callback])); - return; - } - } - Ext.tree.AsyncTreeNode.superclass.expand.call(this, deep, anim, callback); - }, - - - isLoading : function(){ - return this.loading; - }, - - loadComplete : function(deep, anim, callback){ - this.loading = false; - this.loaded = true; - this.ui.afterLoad(this); - this.fireEvent("load", this); - this.expand(deep, anim, callback); - }, - - - isLoaded : function(){ - return this.loaded; - }, - - hasChildNodes : function(){ - if(!this.isLeaf() && !this.loaded){ - return true; - }else{ - return Ext.tree.AsyncTreeNode.superclass.hasChildNodes.call(this); - } - }, - - - reload : function(callback){ - this.collapse(false, false); - while(this.firstChild){ - this.removeChild(this.firstChild); - } - this.childrenRendered = false; - this.loaded = false; - if(this.isHiddenRoot()){ - this.expanded = false; - } - this.expand(false, false, callback); - } -}); - -Ext.tree.TreeNodeUI = function(node){ - this.node = node; - this.rendered = false; - this.animating = false; - this.emptyIcon = Ext.BLANK_IMAGE_URL; -}; - -Ext.tree.TreeNodeUI.prototype = { - removeChild : function(node){ - if(this.rendered){ - this.ctNode.removeChild(node.ui.getEl()); - } - }, - - beforeLoad : function(){ - this.addClass("x-tree-node-loading"); - }, - - afterLoad : function(){ - this.removeClass("x-tree-node-loading"); - }, - - onTextChange : function(node, text, oldText){ - if(this.rendered){ - this.textNode.innerHTML = text; - } - }, - - onDisableChange : function(node, state){ - this.disabled = state; - if(state){ - this.addClass("x-tree-node-disabled"); - }else{ - this.removeClass("x-tree-node-disabled"); - } - }, - - onSelectedChange : function(state){ - if(state){ - this.focus(); - this.addClass("x-tree-selected"); - }else{ - - this.removeClass("x-tree-selected"); - } - }, - - onMove : function(tree, node, oldParent, newParent, index, refNode){ - this.childIndent = null; - if(this.rendered){ - var targetNode = newParent.ui.getContainer(); - if(!targetNode){ - this.holder = document.createElement("div"); - this.holder.appendChild(this.wrap); - return; - } - var insertBefore = refNode ? refNode.ui.getEl() : null; - if(insertBefore){ - targetNode.insertBefore(this.wrap, insertBefore); - }else{ - targetNode.appendChild(this.wrap); - } - this.node.renderIndent(true); - } - }, - - addClass : function(cls){ - if(this.elNode){ - Ext.fly(this.elNode).addClass(cls); - } - }, - - removeClass : function(cls){ - if(this.elNode){ - Ext.fly(this.elNode).removeClass(cls); - } - }, - - remove : function(){ - if(this.rendered){ - this.holder = document.createElement("div"); - this.holder.appendChild(this.wrap); - } - }, - - fireEvent : function(){ - return this.node.fireEvent.apply(this.node, arguments); - }, - - initEvents : function(){ - this.node.on("move", this.onMove, this); - var E = Ext.EventManager; - var a = this.anchor; - - var el = Ext.fly(a); - - if(Ext.isOpera){ - el.setStyle("text-decoration", "none"); - } - - el.on("click", this.onClick, this); - el.on("dblclick", this.onDblClick, this); - el.on("contextmenu", this.onContextMenu, this); - - var icon = Ext.fly(this.iconNode); - icon.on("click", this.onClick, this); - icon.on("dblclick", this.onDblClick, this); - icon.on("contextmenu", this.onContextMenu, this); - E.on(this.ecNode, "click", this.ecClick, this, true); - - if(this.node.disabled){ - this.addClass("x-tree-node-disabled"); - } - if(this.node.hidden){ - this.addClass("x-tree-node-disabled"); - } - var ot = this.node.getOwnerTree(); - var dd = ot.enableDD || ot.enableDrag || ot.enableDrop; - if(dd && (!this.node.isRoot || ot.rootVisible)){ - Ext.dd.Registry.register(this.elNode, { - node: this.node, - handles: [this.iconNode, this.textNode], - isHandle: false - }); - } - }, - - hide : function(){ - if(this.rendered){ - this.wrap.style.display = "none"; - } - }, - - show : function(){ - if(this.rendered){ - this.wrap.style.display = ""; - } - }, - - onContextMenu : function(e){ - e.preventDefault(); - this.focus(); - this.fireEvent("contextmenu", this.node, e); - }, - - onClick : function(e){ - if(this.dropping){ - return; - } - if(this.fireEvent("beforeclick", this.node, e) !== false){ - if(!this.disabled && this.node.attributes.href){ - this.fireEvent("click", this.node, e); - return; - } - e.preventDefault(); - if(this.disabled){ - return; - } - - if(this.node.attributes.singleClickExpand && !this.animating && this.node.hasChildNodes()){ - this.node.toggle(); - } - - this.fireEvent("click", this.node, e); - }else{ - e.stopEvent(); - } - }, - - onDblClick : function(e){ - e.preventDefault(); - if(this.disabled){ - return; - } - if(!this.animating && this.node.hasChildNodes()){ - this.node.toggle(); - } - this.fireEvent("dblclick", this.node, e); - }, - - ecClick : function(e){ - if(!this.animating && this.node.hasChildNodes()){ - this.node.toggle(); - } - }, - - startDrop : function(){ - this.dropping = true; - }, - - - endDrop : function(){ - setTimeout(function(){ - this.dropping = false; - }.createDelegate(this), 50); - }, - - expand : function(){ - this.updateExpandIcon(); - this.ctNode.style.display = ""; - }, - - focus : function(){ - if(!this.node.preventHScroll){ - try{this.anchor.focus(); - }catch(e){} - }else if(!Ext.isIE){ - try{ - var noscroll = this.node.getOwnerTree().el.dom; - var l = noscroll.scrollLeft; - this.anchor.focus(); - noscroll.scrollLeft = l; - }catch(e){} - } - }, - - blur : function(){ - try{ - this.anchor.blur(); - }catch(e){} - }, - - animExpand : function(callback){ - var ct = Ext.get(this.ctNode); - ct.stopFx(); - if(!this.node.hasChildNodes()){ - this.updateExpandIcon(); - this.ctNode.style.display = ""; - Ext.callback(callback); - return; - } - this.animating = true; - this.updateExpandIcon(); - - ct.slideIn('t', { - callback : function(){ - this.animating = false; - Ext.callback(callback); - }, - scope: this, - duration: this.node.ownerTree.duration || .25 - }); - }, - - highlight : function(){ - var tree = this.node.getOwnerTree(); - Ext.fly(this.wrap).highlight( - tree.hlColor || "C3DAF9", - {endColor: tree.hlBaseColor} - ); - }, - - collapse : function(){ - this.updateExpandIcon(); - this.ctNode.style.display = "none"; - }, - - animCollapse : function(callback){ - var ct = Ext.get(this.ctNode); - ct.enableDisplayMode('block'); - ct.stopFx(); - - this.animating = true; - this.updateExpandIcon(); - - ct.slideOut('t', { - callback : function(){ - this.animating = false; - Ext.callback(callback); - }, - scope: this, - duration: this.node.ownerTree.duration || .25 - }); - }, - - getContainer : function(){ - return this.ctNode; - }, - - getEl : function(){ - return this.wrap; - }, - - appendDDGhost : function(ghostNode){ - ghostNode.appendChild(this.elNode.cloneNode(true)); - }, - - getDDRepairXY : function(){ - return Ext.lib.Dom.getXY(this.iconNode); - }, - - onRender : function(){ - this.render(); - }, - - render : function(bulkRender){ - var n = this.node; - var targetNode = n.parentNode ? - n.parentNode.ui.getContainer() : n.ownerTree.container.dom; - if(!this.rendered){ - this.rendered = true; - var a = n.attributes; - - - this.indentMarkup = ""; - if(n.parentNode){ - this.indentMarkup = n.parentNode.ui.getChildIndent(); - } - - var buf = ['
  • ', - '',this.indentMarkup,"", - '', - '', - '',n.text,"
    ", - '', - "
  • "]; - - if(bulkRender !== true && n.nextSibling && n.nextSibling.ui.getEl()){ - this.wrap = Ext.DomHelper.insertHtml("beforeBegin", - n.nextSibling.ui.getEl(), buf.join("")); - }else{ - this.wrap = Ext.DomHelper.insertHtml("beforeEnd", targetNode, buf.join("")); - } - this.elNode = this.wrap.childNodes[0]; - this.ctNode = this.wrap.childNodes[1]; - var cs = this.elNode.childNodes; - this.indentNode = cs[0]; - this.ecNode = cs[1]; - this.iconNode = cs[2]; - this.anchor = cs[3]; - this.textNode = cs[3].firstChild; - if(a.qtip){ - if(this.textNode.setAttributeNS){ - this.textNode.setAttributeNS("ext", "qtip", a.qtip); - if(a.qtipTitle){ - this.textNode.setAttributeNS("ext", "qtitle", a.qtipTitle); - } - }else{ - this.textNode.setAttribute("ext:qtip", a.qtip); - if(a.qtipTitle){ - this.textNode.setAttribute("ext:qtitle", a.qtipTitle); - } - } - } - this.initEvents(); - if(!this.node.expanded){ - this.updateExpandIcon(); - } - }else{ - if(bulkRender === true) { - targetNode.appendChild(this.wrap); - } - } - }, - - getAnchor : function(){ - return this.anchor; - }, - - getTextEl : function(){ - return this.textNode; - }, - - getIconEl : function(){ - return this.iconNode; - }, - - updateExpandIcon : function(){ - if(this.rendered){ - var n = this.node, c1, c2; - - var cls = n.isLast() ? "x-tree-elbow-end" : "x-tree-elbow"; - var hasChild = n.hasChildNodes(); - if(hasChild){ - if(n.expanded){ - cls += "-minus"; - c1 = "x-tree-node-collapsed"; - c2 = "x-tree-node-expanded"; - }else{ - cls += "-plus"; - c1 = "x-tree-node-expanded"; - c2 = "x-tree-node-collapsed"; - } - if(this.wasLeaf){ - this.removeClass("x-tree-node-leaf"); - this.wasLeaf = false; - } - if(this.c1 != c1 || this.c2 != c2){ - Ext.fly(this.elNode).replaceClass(c1, c2); - this.c1 = c1; this.c2 = c2; - } - }else{ - if(!this.wasLeaf){ - Ext.fly(this.elNode).replaceClass("x-tree-node-expanded", "x-tree-node-leaf"); - this.wasLeaf = true; - } - } - var ecc = "x-tree-ec-icon "+cls; - if(this.ecc != ecc){ - this.ecNode.className = ecc; - this.ecc = ecc; - } - } - }, - - getChildIndent : function(){ - if(!this.childIndent){ - var buf = []; - var p = this.node; - while(p){ - if(!p.isRoot || (p.isRoot && p.ownerTree.rootVisible)){ - if(!p.isLast()) { - buf.unshift(''); - } else { - buf.unshift(''); - } - } - p = p.parentNode; - } - this.childIndent = buf.join(""); - } - return this.childIndent; - }, - - renderIndent : function(){ - if(this.rendered){ - var indent = ""; - var p = this.node.parentNode; - if(p){ - indent = p.ui.getChildIndent(); - } - if(this.indentMarkup != indent){ - this.indentNode.innerHTML = indent; - this.indentMarkup = indent; - } - this.updateExpandIcon(); - } - } -}; - -Ext.tree.RootTreeNodeUI = function(){ - Ext.tree.RootTreeNodeUI.superclass.constructor.apply(this, arguments); -}; -Ext.extend(Ext.tree.RootTreeNodeUI, Ext.tree.TreeNodeUI, { - render : function(){ - if(!this.rendered){ - var targetNode = this.node.ownerTree.container.dom; - this.node.expanded = true; - targetNode.innerHTML = '
    '; - this.wrap = this.ctNode = targetNode.firstChild; - } - }, - collapse : function(){ - }, - expand : function(){ - } -}); - -Ext.tree.TreeLoader = function(config){ - this.baseParams = {}; - this.requestMethod = "POST"; - Ext.apply(this, config); - - this.addEvents({ - "beforeload" : true, - "load" : true, - "loadexception" : true - }); -}; - -Ext.extend(Ext.tree.TreeLoader, Ext.util.Observable, { - uiProviders : {}, - clearOnLoad : true, - load : function(node, callback){ - if(this.clearOnLoad){ - while(node.firstChild){ - node.removeChild(node.firstChild); - } - } - if(node.attributes.children){ - var cs = node.attributes.children; - for(var i = 0, len = cs.length; i < len; i++){ - node.appendChild(this.createNode(cs[i])); - } - if(typeof callback == "function"){ - callback(); - } - }else if(this.dataUrl){ - this.requestData(node, callback); - } - }, - - getParams: function(node){ - var buf = [], bp = this.baseParams; - for(var key in bp){ - if(typeof bp[key] != "function"){ - buf.push(encodeURIComponent(key), "=", encodeURIComponent(bp[key]), "&"); - } - } - buf.push("node=", encodeURIComponent(node.id)); - return buf.join(""); - }, - - requestData : function(node, callback){ - if(this.fireEvent("beforeload", this, node, callback) !== false){ - var params = this.getParams(node); - var cb = { - success: this.handleResponse, - failure: this.handleFailure, - scope: this, - argument: {callback: callback, node: node} - }; - this.transId = Ext.lib.Ajax.request(this.requestMethod, this.dataUrl, cb, params); - }else{ - - - if(typeof callback == "function"){ - callback(); - } - } - }, - - isLoading : function(){ - return this.transId ? true : false; - }, - - abort : function(){ - if(this.isLoading()){ - Ext.lib.Ajax.abort(this.transId); - } - }, - - - createNode : function(attr){ - if(this.applyLoader !== false){ - attr.loader = this; - } - if(typeof attr.uiProvider == 'string'){ - attr.uiProvider = this.uiProviders[attr.uiProvider] || eval(attr.uiProvider); - } - return(attr.leaf ? - new Ext.tree.TreeNode(attr) : - new Ext.tree.AsyncTreeNode(attr)); - }, - - processResponse : function(response, node, callback){ - var json = response.responseText; - try { - var o = eval("("+json+")"); - for(var i = 0, len = o.length; i < len; i++){ - var n = this.createNode(o[i]); - if(n){ - node.appendChild(n); - } - } - if(typeof callback == "function"){ - callback(this, node); - } - }catch(e){ - this.handleFailure(response); - } - }, - - handleResponse : function(response){ - this.transId = false; - var a = response.argument; - this.processResponse(response, a.node, a.callback); - this.fireEvent("load", this, a.node, response); - }, - - handleFailure : function(response){ - this.transId = false; - var a = response.argument; - this.fireEvent("loadexception", this, a.node, response); - if(typeof a.callback == "function"){ - a.callback(this, a.node); - } - } -}); - -Ext.tree.TreeFilter = function(tree, config){ - this.tree = tree; - this.filtered = {}; - Ext.apply(this, config, { - clearBlank:false, - reverse:false, - autoClear:false, - remove:false - }); -}; - -Ext.tree.TreeFilter.prototype = { - - filter : function(value, attr, startNode){ - attr = attr || "text"; - var f; - if(typeof value == "string"){ - var vlen = value.length; - - if(vlen == 0 && this.clearBlank){ - this.clearFilter(); - return; - } - value = value.toLowerCase(); - f = function(n){ - return n.attributes[attr].substr(0, vlen).toLowerCase() == value; - }; - }else if(value.exec){ - f = function(n){ - return value.test(n.attributes[attr]); - }; - }else{ - throw 'Illegal filter type, must be string or regex'; - } - this.filterBy(f, null, startNode); - }, - - - filterBy : function(fn, scope, startNode){ - startNode = startNode || this.tree.root; - if(this.autoClear){ - this.clearFilter(); - } - var af = this.filtered, rv = this.reverse; - var f = function(n){ - if(n == startNode){ - return true; - } - if(af[n.id]){ - return false; - } - var m = fn.call(scope || n, n); - if(!m || rv){ - af[n.id] = n; - n.ui.hide(); - return false; - } - return true; - }; - startNode.cascade(f); - if(this.remove){ - for(var id in af){ - if(typeof id != "function"){ - var n = af[id]; - if(n && n.parentNode){ - n.parentNode.removeChild(n); - } - } - } - } - }, - - - clear : function(){ - var t = this.tree; - var af = this.filtered; - for(var id in af){ - if(typeof id != "function"){ - var n = af[id]; - if(n){ - n.ui.show(); - } - } - } - this.filtered = {}; - } -}; - - -Ext.tree.TreeSorter = function(tree, config){ - Ext.apply(this, config); - tree.on("beforechildrenrendered", this.doSort, this); - tree.on("append", this.updateSort, this); - tree.on("insert", this.updateSort, this); - - var dsc = this.dir && this.dir.toLowerCase() == "desc"; - var p = this.property || "text"; - var sortType = this.sortType; - var fs = this.folderSort; - var cs = this.caseSensitive === true; - var leafAttr = this.leafAttr || 'leaf'; - - this.sortFn = function(n1, n2){ - if(fs){ - if(n1.attributes[leafAttr] && !n2.attributes[leafAttr]){ - return 1; - } - if(!n1.attributes[leafAttr] && n2.attributes[leafAttr]){ - return -1; - } - } - var v1 = sortType ? sortType(n1) : (cs ? n1[p] : n1[p].toUpperCase()); - var v2 = sortType ? sortType(n2) : (cs ? n2[p] : n2[p].toUpperCase()); - if(v1 < v2){ - return dsc ? +1 : -1; - }else if(v1 > v2){ - return dsc ? -1 : +1; - }else{ - return 0; - } - }; -}; - -Ext.tree.TreeSorter.prototype = { - doSort : function(node){ - node.sort(this.sortFn); - }, - - compareNodes : function(n1, n2){ - - return (n1.text.toUpperCase() > n2.text.toUpperCase() ? 1 : -1); - }, - - updateSort : function(tree, node){ - if(node.childrenRendered){ - this.doSort.defer(1, this, [node]); - } - } -}; -if(Ext.dd.DropZone){ - -Ext.tree.TreeDropZone = function(tree, config){ - this.allowParentInsert = false; - this.allowContainerDrop = false; - this.appendOnly = false; - Ext.tree.TreeDropZone.superclass.constructor.call(this, tree.container, config); - this.tree = tree; - this.lastInsertClass = "x-tree-no-status"; - this.dragOverData = {}; -}; - -Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { - ddGroup : "TreeDD", - - expandDelay : 1000, - - expandNode : function(node){ - if(node.hasChildNodes() && !node.isExpanded()){ - node.expand(false, null, this.triggerCacheRefresh.createDelegate(this)); - } - }, - - queueExpand : function(node){ - this.expandProcId = this.expandNode.defer(this.expandDelay, this, [node]); - }, - - cancelExpand : function(){ - if(this.expandProcId){ - clearTimeout(this.expandProcId); - this.expandProcId = false; - } - }, - - isValidDropPoint : function(n, pt, dd, e, data){ - if(!n || !data){ return false; } - var targetNode = n.node; - var dropNode = data.node; - - if(!(targetNode && targetNode.isTarget && pt)){ - return false; - } - if(pt == "append" && targetNode.allowChildren === false){ - return false; - } - if((pt == "above" || pt == "below") && (targetNode.parentNode && targetNode.parentNode.allowChildren === false)){ - return false; - } - if(dropNode && (targetNode == dropNode || dropNode.contains(targetNode))){ - return false; - } - - var overEvent = this.dragOverData; - overEvent.tree = this.tree; - overEvent.target = targetNode; - overEvent.data = data; - overEvent.point = pt; - overEvent.source = dd; - overEvent.rawEvent = e; - overEvent.dropNode = dropNode; - overEvent.cancel = false; - var result = this.tree.fireEvent("nodedragover", overEvent); - return overEvent.cancel === false && result !== false; - }, - - getDropPoint : function(e, n, dd){ - var tn = n.node; - if(tn.isRoot){ - return tn.allowChildren !== false ? "append" : false; - } - var dragEl = n.ddel; - var t = Ext.lib.Dom.getY(dragEl), b = t + dragEl.offsetHeight; - var y = Ext.lib.Event.getPageY(e); - var noAppend = tn.allowChildren === false || tn.isLeaf(); - if(this.appendOnly || tn.parentNode.allowChildren === false){ - return noAppend ? false : "append"; - } - var noBelow = false; - if(!this.allowParentInsert){ - noBelow = tn.hasChildNodes() && tn.isExpanded(); - } - var q = (b - t) / (noAppend ? 2 : 3); - if(y >= t && y < (t + q)){ - return "above"; - }else if(!noBelow && (noAppend || y >= b-q && y <= b)){ - return "below"; - }else{ - return "append"; - } - }, - - onNodeEnter : function(n, dd, e, data){ - this.cancelExpand(); - }, - - onNodeOver : function(n, dd, e, data){ - var pt = this.getDropPoint(e, n, dd); - var node = n.node; - - - if(!this.expandProcId && pt == "append" && node.hasChildNodes() && !n.node.isExpanded()){ - this.queueExpand(node); - }else if(pt != "append"){ - this.cancelExpand(); - } - - - var returnCls = this.dropNotAllowed; - if(this.isValidDropPoint(n, pt, dd, e, data)){ - if(pt){ - var el = n.ddel; - var cls; - if(pt == "above"){ - returnCls = n.node.isFirst() ? "x-tree-drop-ok-above" : "x-tree-drop-ok-between"; - cls = "x-tree-drag-insert-above"; - }else if(pt == "below"){ - returnCls = n.node.isLast() ? "x-tree-drop-ok-below" : "x-tree-drop-ok-between"; - cls = "x-tree-drag-insert-below"; - }else{ - returnCls = "x-tree-drop-ok-append"; - cls = "x-tree-drag-append"; - } - if(this.lastInsertClass != cls){ - Ext.fly(el).replaceClass(this.lastInsertClass, cls); - this.lastInsertClass = cls; - } - } - } - return returnCls; - }, - - onNodeOut : function(n, dd, e, data){ - this.cancelExpand(); - this.removeDropIndicators(n); - }, - - onNodeDrop : function(n, dd, e, data){ - var point = this.getDropPoint(e, n, dd); - var targetNode = n.node; - targetNode.ui.startDrop(); - if(!this.isValidDropPoint(n, point, dd, e, data)){ - targetNode.ui.endDrop(); - return false; - } - - var dropNode = data.node || (dd.getTreeNode ? dd.getTreeNode(data, targetNode, point, e) : null); - var dropEvent = { - tree : this.tree, - target: targetNode, - data: data, - point: point, - source: dd, - rawEvent: e, - dropNode: dropNode, - cancel: !dropNode - }; - var retval = this.tree.fireEvent("beforenodedrop", dropEvent); - if(retval === false || dropEvent.cancel === true || !dropEvent.dropNode){ - targetNode.ui.endDrop(); - return false; - } - - targetNode = dropEvent.target; - if(point == "append" && !targetNode.isExpanded()){ - targetNode.expand(false, null, function(){ - this.completeDrop(dropEvent); - }.createDelegate(this)); - }else{ - this.completeDrop(dropEvent); - } - return true; - }, - - completeDrop : function(de){ - var ns = de.dropNode, p = de.point, t = de.target; - if(!(ns instanceof Array)){ - ns = [ns]; - } - var n; - for(var i = 0, len = ns.length; i < len; i++){ - n = ns[i]; - if(p == "above"){ - t.parentNode.insertBefore(n, t); - }else if(p == "below"){ - t.parentNode.insertBefore(n, t.nextSibling); - }else{ - t.appendChild(n); - } - } - n.ui.focus(); - if(this.tree.hlDrop){ - n.ui.highlight(); - } - t.ui.endDrop(); - this.tree.fireEvent("nodedrop", de); - }, - - afterNodeMoved : function(dd, data, e, targetNode, dropNode){ - if(this.tree.hlDrop){ - dropNode.ui.focus(); - dropNode.ui.highlight(); - } - this.tree.fireEvent("nodedrop", this.tree, targetNode, data, dd, e); - }, - - getTree : function(){ - return this.tree; - }, - - removeDropIndicators : function(n){ - if(n && n.ddel){ - var el = n.ddel; - Ext.fly(el).removeClass([ - "x-tree-drag-insert-above", - "x-tree-drag-insert-below", - "x-tree-drag-append"]); - this.lastInsertClass = "_noclass"; - } - }, - - beforeDragDrop : function(target, e, id){ - this.cancelExpand(); - return true; - }, - - afterRepair : function(data){ - if(data && Ext.enableFx){ - data.node.ui.highlight(); - } - this.hideProxy(); - } -}); - -} -if(Ext.dd.DragZone){ -Ext.tree.TreeDragZone = function(tree, config){ - Ext.tree.TreeDragZone.superclass.constructor.call(this, tree.getEl(), config); - this.tree = tree; -}; - -Ext.extend(Ext.tree.TreeDragZone, Ext.dd.DragZone, { - ddGroup : "TreeDD", - - onBeforeDrag : function(data, e){ - var n = data.node; - return n && n.draggable && !n.disabled; - }, - - onInitDrag : function(e){ - var data = this.dragData; - this.tree.getSelectionModel().select(data.node); - this.proxy.update(""); - data.node.ui.appendDDGhost(this.proxy.ghost.dom); - this.tree.fireEvent("startdrag", this.tree, data.node, e); - }, - - getRepairXY : function(e, data){ - return data.node.ui.getDDRepairXY(); - }, - - onEndDrag : function(data, e){ - this.tree.fireEvent("enddrag", this.tree, data.node, e); - }, - - onValidDrop : function(dd, e, id){ - this.tree.fireEvent("dragdrop", this.tree, this.dragData.node, dd, e); - this.hideProxy(); - }, - - beforeInvalidDrop : function(e, id){ - - var sm = this.tree.getSelectionModel(); - sm.clearSelections(); - sm.select(this.dragData.node); - } -}); -} -Ext.tree.TreeEditor = function(tree, config){ - config = config || {}; - var field = config.events ? config : new Ext.form.TextField(config); - Ext.tree.TreeEditor.superclass.constructor.call(this, field); - - this.tree = tree; - - tree.on('beforeclick', this.beforeNodeClick, this); - tree.el.on('mousedown', this.hide, this); - this.on('complete', this.updateNode, this); - this.on('beforestartedit', this.fitToTree, this); - this.on('startedit', this.bindScroll, this, {delay:10}); - this.on('specialkey', this.onSpecialKey, this); -}; - -Ext.extend(Ext.tree.TreeEditor, Ext.Editor, { - alignment: "l-l", - autoSize: false, - hideEl : false, - cls: "x-small-editor x-tree-editor", - shim:false, - shadow:"frame", - maxWidth: 250, - - fitToTree : function(ed, el){ - var td = this.tree.el.dom, nd = el.dom; - if(td.scrollLeft > nd.offsetLeft){ td.scrollLeft = nd.offsetLeft; - } - var w = Math.min( - this.maxWidth, - (td.clientWidth > 20 ? td.clientWidth : td.offsetWidth) - Math.max(0, nd.offsetLeft-td.scrollLeft) - 5); - this.setSize(w, ''); - }, - - triggerEdit : function(node){ - this.completeEdit(); - this.editNode = node; - this.startEdit(node.ui.textNode, node.text); - }, - - bindScroll : function(){ - this.tree.el.on('scroll', this.cancelEdit, this); - }, - - beforeNodeClick : function(node){ - if(this.tree.getSelectionModel().isSelected(node)){ - this.triggerEdit(node); - return false; - } - }, - - updateNode : function(ed, value){ - this.tree.el.un('scroll', this.cancelEdit, this); - this.editNode.setText(value); - }, - - onSpecialKey : function(field, e){ - var k = e.getKey(); - if(k == e.ESC){ - this.cancelEdit(); - e.stopEvent(); - }else if(k == e.ENTER && !e.hasModifier()){ - this.completeEdit(); - e.stopEvent(); - } - } -}); - -Ext.menu.Menu = function(config){ - Ext.apply(this, config); - this.id = this.id || Ext.id(); - this.addEvents({ - - beforeshow : true, - - beforehide : true, - - show : true, - - hide : true, - - click : true, - - mouseover : true, - - mouseout : true, - - itemclick: true - }); - Ext.menu.MenuMgr.register(this); - var mis = this.items; - this.items = new Ext.util.MixedCollection(); - if(mis){ - this.add.apply(this, mis); - } -}; - -Ext.extend(Ext.menu.Menu, Ext.util.Observable, { - - minWidth : 120, - - shadow : "sides", - - subMenuAlign : "tl-tr?", - - defaultAlign : "tl-bl?", - - allowOtherMenus : false, - - render : function(){ - if(this.el){ - return; - } - var el = this.el = new Ext.Layer({ - cls: "x-menu", - shadow:this.shadow, - constrain: false, - parentEl: this.parentEl || document.body, - zindex:15000 - }); - - this.keyNav = new Ext.menu.MenuNav(this); - - if(this.plain){ - el.addClass("x-menu-plain"); - } - if(this.cls){ - el.addClass(this.cls); - } - this.focusEl = el.createChild({ - tag: "a", cls: "x-menu-focus", href: "#", onclick: "return false;", tabIndex:"-1" - }); - var ul = el.createChild({tag: "ul", cls: "x-menu-list"}); - ul.on("click", this.onClick, this); - ul.on("mouseover", this.onMouseOver, this); - ul.on("mouseout", this.onMouseOut, this); - this.items.each(function(item){ - var li = document.createElement("li"); - li.className = "x-menu-list-item"; - ul.dom.appendChild(li); - item.render(li, this); - }, this); - this.ul = ul; - this.autoWidth(); - }, - - autoWidth : function(){ - var el = this.el, ul = this.ul; - if(!el){ - return; - } - var w = this.width; - if(w){ - el.setWidth(w); - }else if(Ext.isIE){ - el.setWidth(this.minWidth); - var t = el.dom.offsetWidth; el.setWidth(ul.getWidth()+el.getFrameWidth("lr")); - } - }, - - delayAutoWidth : function(){ - if(this.rendered){ - if(!this.awTask){ - this.awTask = new Ext.util.DelayedTask(this.autoWidth, this); - } - this.awTask.delay(20); - } - }, - - findTargetItem : function(e){ - var t = e.getTarget(".x-menu-list-item", this.ul, true); - if(t && t.menuItemId){ - return this.items.get(t.menuItemId); - } - }, - - onClick : function(e){ - var t; - if(t = this.findTargetItem(e)){ - t.onClick(e); - this.fireEvent("click", this, t, e); - } - }, - - setActiveItem : function(item, autoExpand){ - if(item != this.activeItem){ - if(this.activeItem){ - this.activeItem.deactivate(); - } - this.activeItem = item; - item.activate(autoExpand); - }else if(autoExpand){ - item.expandMenu(); - } - }, - - tryActivate : function(start, step){ - var items = this.items; - for(var i = start, len = items.length; i >= 0 && i < len; i+= step){ - var item = items.get(i); - if(!item.disabled && item.canActivate){ - this.setActiveItem(item, false); - return item; - } - } - return false; - }, - - onMouseOver : function(e){ - var t; - if(t = this.findTargetItem(e)){ - if(t.canActivate && !t.disabled){ - this.setActiveItem(t, true); - } - } - this.fireEvent("mouseover", this, e, t); - }, - - onMouseOut : function(e){ - var t; - if(t = this.findTargetItem(e)){ - if(t == this.activeItem && t.shouldDeactivate(e)){ - this.activeItem.deactivate(); - delete this.activeItem; - } - } - this.fireEvent("mouseout", this, e, t); - }, - - - isVisible : function(){ - return this.el && this.el.isVisible(); - }, - - - show : function(el, pos, parentMenu){ - this.parentMenu = parentMenu; - if(!this.el){ - this.render(); - } - this.fireEvent("beforeshow", this); - this.showAt(this.el.getAlignToXY(el, pos || this.defaultAlign), parentMenu, false); - }, - - - showAt : function(xy, parentMenu, _fireBefore){ - this.parentMenu = parentMenu; - if(!this.el){ - this.render(); - } - if(_fireBefore !== false){ - this.fireEvent("beforeshow", this); - } - this.el.setXY(xy); - this.el.show(); - this.focusEl.focus.defer(50, this.focusEl); - this.fireEvent("show", this); - }, - - - hide : function(deep){ - if(this.el && this.isVisible()){ - this.fireEvent("beforehide", this); - if(this.activeItem){ - this.activeItem.deactivate(); - this.activeItem = null; - } - this.el.hide(); - this.fireEvent("hide", this); - } - if(deep === true && this.parentMenu){ - this.parentMenu.hide(true); - } - }, - - - add : function(){ - var a = arguments, l = a.length, item; - for(var i = 0; i < l; i++){ - var el = a[i]; - if(el.render){ item = this.addItem(el); - }else if(typeof el == "string"){ if(el == "separator" || el == "-"){ - item = this.addSeparator(); - }else{ - item = this.addText(el); - } - }else if(el.tagName || el.el){ item = this.addElement(el); - }else if(typeof el == "object"){ item = this.addMenuItem(el); - } - } - return item; - }, - - - getEl : function(){ - if(!this.el){ - this.render(); - } - return this.el; - }, - - - addSeparator : function(){ - return this.addItem(new Ext.menu.Separator()); - }, - - - addElement : function(el){ - return this.addItem(new Ext.menu.BaseItem(el)); - }, - - - addItem : function(item){ - this.items.add(item); - if(this.ul){ - var li = document.createElement("li"); - li.className = "x-menu-list-item"; - this.ul.dom.appendChild(li); - item.render(li, this); - this.delayAutoWidth(); - } - return item; - }, - - - addMenuItem : function(config){ - if(!(config instanceof Ext.menu.Item)){ - config = new Ext.menu.Item(config); - } - return this.addItem(config); - }, - - - addText : function(text){ - return this.addItem(new Ext.menu.TextItem(text)); - }, - - - insert : function(index, item){ - this.items.insert(index, item); - if(this.ul){ - var li = document.createElement("li"); - li.className = "x-menu-list-item"; - this.ul.dom.insertBefore(li, this.ul.dom.childNodes[index]); - item.render(li, this); - this.delayAutoWidth(); - } - return item; - }, - - - remove : function(item){ - this.items.removeKey(item.id); - item.destroy(); - }, - - - removeAll : function(){ - var f; - while(f = this.items.first()){ - this.remove(f); - } - } -}); - -Ext.menu.MenuNav = function(menu){ - Ext.menu.MenuNav.superclass.constructor.call(this, menu.el); - this.scope = this.menu = menu; -}; - -Ext.extend(Ext.menu.MenuNav, Ext.KeyNav, { - doRelay : function(e, h){ - var k = e.getKey(); - if(!this.menu.activeItem && e.isNavKeyPress() && k != e.SPACE && k != e.RETURN){ - this.menu.tryActivate(0, 1); - return false; - } - return h.call(this.scope || this, e, this.menu); - }, - - up : function(e, m){ - if(!m.tryActivate(m.items.indexOf(m.activeItem)-1, -1)){ - m.tryActivate(m.items.length-1, -1); - } - }, - - down : function(e, m){ - if(!m.tryActivate(m.items.indexOf(m.activeItem)+1, 1)){ - m.tryActivate(0, 1); - } - }, - - right : function(e, m){ - if(m.activeItem){ - m.activeItem.expandMenu(true); - } - }, - - left : function(e, m){ - m.hide(); - if(m.parentMenu && m.parentMenu.activeItem){ - m.parentMenu.activeItem.activate(); - } - }, - - enter : function(e, m){ - if(m.activeItem){ - e.stopPropagation(); - m.activeItem.onClick(e); - m.fireEvent("click", this, m.activeItem); - return true; - } - } -}); - -Ext.menu.MenuMgr = function(){ - var menus, active, groups = {}, attached = false, lastShow = new Date(); - - function init(){ - menus = {}, active = new Ext.util.MixedCollection(); - Ext.get(document).addKeyListener(27, function(){ - if(active.length > 0){ - hideAll(); - } - }); - } - - function hideAll(){ - if(active.length > 0){ - var c = active.clone(); - c.each(function(m){ - m.hide(); - }); - } - } - - function onHide(m){ - active.remove(m); - if(active.length < 1){ - Ext.get(document).un("mousedown", onMouseDown); - attached = false; - } - } - - function onShow(m){ - var last = active.last(); - lastShow = new Date(); - active.add(m); - if(!attached){ - Ext.get(document).on("mousedown", onMouseDown); - attached = true; - } - if(m.parentMenu){ - m.getEl().setZIndex(parseInt(m.parentMenu.getEl().getStyle("z-index"), 10) + 3); - m.parentMenu.activeChild = m; - }else if(last && last.isVisible()){ - m.getEl().setZIndex(parseInt(last.getEl().getStyle("z-index"), 10) + 3); - } - } - - function onBeforeHide(m){ - if(m.activeChild){ - m.activeChild.hide(); - } - if(m.autoHideTimer){ - clearTimeout(m.autoHideTimer); - delete m.autoHideTimer; - } - } - - function onBeforeShow(m){ - var pm = m.parentMenu; - if(!pm && !m.allowOtherMenus){ - hideAll(); - }else if(pm && pm.activeChild){ - pm.activeChild.hide(); - } - } - - function onMouseDown(e){ - if(lastShow.getElapsed() > 50 && active.length > 0 && !e.getTarget(".x-menu")){ - hideAll(); - } - } - - function onBeforeCheck(mi, state){ - if(state){ - var g = groups[mi.group]; - for(var i = 0, l = g.length; i < l; i++){ - if(g[i] != mi){ - g[i].setChecked(false); - } - } - } - } - - return { - - - hideAll : function(){ - hideAll(); - }, - - register : function(menu){ - if(!menus){ - init(); - } - menus[menu.id] = menu; - menu.on("beforehide", onBeforeHide); - menu.on("hide", onHide); - menu.on("beforeshow", onBeforeShow); - menu.on("show", onShow); - var g = menu.group; - if(g && menu.events["checkchange"]){ - if(!groups[g]){ - groups[g] = []; - } - groups[g].push(menu); - menu.on("checkchange", onCheck); - } - }, - - - get : function(menu){ - if(typeof menu == "string"){ return menus[menu]; - }else if(menu.events){ return menu; - }else{ return new Ext.menu.Menu(menu); - } - }, - - unregister : function(menu){ - delete menus[menu.id]; - menu.un("beforehide", onBeforeHide); - menu.un("hide", onHide); - menu.un("beforeshow", onBeforeShow); - menu.un("show", onShow); - var g = menu.group; - if(g && menu.events["checkchange"]){ - groups[g].remove(menu); - menu.un("checkchange", onCheck); - } - }, - - registerCheckable : function(menuItem){ - var g = menuItem.group; - if(g){ - if(!groups[g]){ - groups[g] = []; - } - groups[g].push(menuItem); - menuItem.on("beforecheckchange", onBeforeCheck); - } - }, - - unregisterCheckable : function(menuItem){ - var g = menuItem.group; - if(g){ - groups[g].remove(menuItem); - menuItem.un("beforecheckchange", onBeforeCheck); - } - } - }; -}(); - - -Ext.menu.BaseItem = function(config){ - Ext.menu.BaseItem.superclass.constructor.call(this, config); - - this.addEvents({ - - click: true, - - activate : true, - - deactivate : true - }); - - if(this.handler){ - this.on("click", this.handler, this.scope, true); - } -}; - -Ext.extend(Ext.menu.BaseItem, Ext.Component, { - - - canActivate : false, - - activeClass : "x-menu-item-active", - - hideOnClick : true, - - hideDelay : 100, - - ctype: "Ext.menu.BaseItem", - - actionMode : "container", - - render : function(container, parentMenu){ - this.parentMenu = parentMenu; - Ext.menu.BaseItem.superclass.render.call(this, container); - this.container.menuItemId = this.id; - }, - - onRender : function(container, position){ - this.el = Ext.get(this.el); - container.dom.appendChild(this.el.dom); - }, - - onClick : function(e){ - if(!this.disabled && this.fireEvent("click", this, e) !== false - && this.parentMenu.fireEvent("itemclick", this, e) !== false){ - this.handleClick(e); - }else{ - e.stopEvent(); - } - }, - - activate : function(){ - if(this.disabled){ - return false; - } - var li = this.container; - li.addClass(this.activeClass); - this.region = li.getRegion().adjust(2, 2, -2, -2); - this.fireEvent("activate", this); - return true; - }, - - deactivate : function(){ - this.container.removeClass(this.activeClass); - this.fireEvent("deactivate", this); - }, - - shouldDeactivate : function(e){ - return !this.region || !this.region.contains(e.getPoint()); - }, - - handleClick : function(e){ - if(this.hideOnClick){ - this.parentMenu.hide.defer(this.hideDelay, this.parentMenu, [true]); - } - }, - - expandMenu : function(autoActivate){ - }, - - hideMenu : function(){ - } -}); - -Ext.menu.TextItem = function(text){ - this.text = text; - Ext.menu.TextItem.superclass.constructor.call(this); -}; - -Ext.extend(Ext.menu.TextItem, Ext.menu.BaseItem, { - - hideOnClick : false, - - itemCls : "x-menu-text", - - onRender : function(){ - var s = document.createElement("span"); - s.className = this.itemCls; - s.innerHTML = this.text; - this.el = s; - Ext.menu.TextItem.superclass.onRender.apply(this, arguments); - } -}); - -Ext.menu.Separator = function(config){ - Ext.menu.Separator.superclass.constructor.call(this, config); -}; - -Ext.extend(Ext.menu.Separator, Ext.menu.BaseItem, { - - itemCls : "x-menu-sep", - - hideOnClick : false, - - onRender : function(li){ - var s = document.createElement("span"); - s.className = this.itemCls; - s.innerHTML = " "; - this.el = s; - li.addClass("x-menu-sep-li"); - Ext.menu.Separator.superclass.onRender.apply(this, arguments); - } -}); - -Ext.menu.Item = function(config){ - Ext.menu.Item.superclass.constructor.call(this, config); - if(this.menu){ - this.menu = Ext.menu.MenuMgr.get(this.menu); - } -}; -Ext.extend(Ext.menu.Item, Ext.menu.BaseItem, { - - - itemCls : "x-menu-item", - - canActivate : true, - - ctype: "Ext.menu.Item", - - onRender : function(container, position){ - var el = document.createElement("a"); - el.hideFocus = true; - el.unselectable = "on"; - el.href = this.href || "#"; - if(this.hrefTarget){ - el.target = this.hrefTarget; - } - el.className = this.itemCls + (this.menu ? " x-menu-item-arrow" : "") + (this.cls ? " " + this.cls : ""); - el.innerHTML = String.format( - '{1}', - this.icon || Ext.BLANK_IMAGE_URL, this.text); - this.el = el; - Ext.menu.Item.superclass.onRender.call(this, container, position); - }, - - - setText : function(text){ - this.text = text; - if(this.rendered){ - this.el.update(String.format( - '{1}', - this.icon || Ext.BLANK_IMAGE_URL, this.text)); - this.parentMenu.autoWidth(); - } - }, - - handleClick : function(e){ - if(!this.href){ e.stopEvent(); - } - Ext.menu.Item.superclass.handleClick.apply(this, arguments); - }, - - activate : function(autoExpand){ - if(Ext.menu.Item.superclass.activate.apply(this, arguments)){ - this.focus(); - if(autoExpand){ - this.expandMenu(); - } - } - return true; - }, - - shouldDeactivate : function(e){ - if(Ext.menu.Item.superclass.shouldDeactivate.call(this, e)){ - if(this.menu && this.menu.isVisible()){ - return !this.menu.getEl().getRegion().contains(e.getPoint()); - } - return true; - } - return false; - }, - - deactivate : function(){ - Ext.menu.Item.superclass.deactivate.apply(this, arguments); - this.hideMenu(); - }, - - expandMenu : function(autoActivate){ - if(!this.disabled && this.menu){ - if(!this.menu.isVisible()){ - this.menu.show(this.container, this.parentMenu.subMenuAlign || "tl-tr?", this.parentMenu); - } - if(autoActivate){ - this.menu.tryActivate(0, 1); - } - } - }, - - hideMenu : function(){ - if(this.menu && this.menu.isVisible()){ - this.menu.hide(); - } - } -}); - -Ext.menu.CheckItem = function(config){ - Ext.menu.CheckItem.superclass.constructor.call(this, config); - this.addEvents({ - - "beforecheckchange" : true, - - "checkchange" : true - }); - if(this.checkHandler){ - this.on('checkchange', this.checkHandler, this.scope); - } -}; -Ext.extend(Ext.menu.CheckItem, Ext.menu.Item, { - - - itemCls : "x-menu-item x-menu-check-item", - - groupClass : "x-menu-group-item", - - - checked: false, - - ctype: "Ext.menu.CheckItem", - - onRender : function(c){ - Ext.menu.CheckItem.superclass.onRender.apply(this, arguments); - if(this.group){ - this.el.addClass(this.groupClass); - } - Ext.menu.MenuMgr.registerCheckable(this); - if(this.checked){ - this.checked = false; - this.setChecked(true, true); - } - }, - - destroy : function(){ - if(this.rendered){ - Ext.menu.MenuMgr.unregisterCheckable(this); - } - Ext.menu.CheckItem.superclass.destroy.apply(this, arguments); - }, - - - setChecked : function(state, suppressEvent){ - if(this.checked != state && this.fireEvent("beforecheckchange", this, state) !== false){ - if(this.container){ - this.container[state ? "addClass" : "removeClass"]("x-menu-item-checked"); - } - this.checked = state; - if(suppressEvent !== true){ - this.fireEvent("checkchange", this, state); - } - } - }, - - handleClick : function(e){ - if(!this.disabled && !(this.checked && this.group)){ this.setChecked(!this.checked); - } - Ext.menu.CheckItem.superclass.handleClick.apply(this, arguments); - } -}); - -Ext.menu.Adapter = function(component, config){ - Ext.menu.Adapter.superclass.constructor.call(this, config); - this.component = component; -}; -Ext.extend(Ext.menu.Adapter, Ext.menu.BaseItem, { - canActivate : true, - - onRender : function(container, position){ - this.component.render(container); - this.el = this.component.getEl(); - }, - - activate : function(){ - if(this.disabled){ - return false; - } - this.component.focus(); - this.fireEvent("activate", this); - return true; - }, - - deactivate : function(){ - this.fireEvent("deactivate", this); - }, - - disable : function(){ - this.component.disable(); - Ext.menu.Adapter.superclass.disable.call(this); - }, - - enable : function(){ - this.component.enable(); - Ext.menu.Adapter.superclass.enable.call(this); - } -}); - -Ext.menu.DateItem = function(config){ - Ext.menu.DateItem.superclass.constructor.call(this, new Ext.DatePicker(config), config); - - this.picker = this.component; - this.addEvents({select: true}); - - this.picker.on("render", function(picker){ - picker.getEl().swallowEvent("click"); - picker.container.addClass("x-menu-date-item"); - }); - - this.picker.on("select", this.onSelect, this); -}; - -Ext.extend(Ext.menu.DateItem, Ext.menu.Adapter, { - onSelect : function(picker, date){ - this.fireEvent("select", this, date, picker); - Ext.menu.DateItem.superclass.handleClick.call(this); - } -}); - -Ext.menu.ColorItem = function(config){ - Ext.menu.ColorItem.superclass.constructor.call(this, new Ext.ColorPalette(config), config); - - this.palette = this.component; - this.relayEvents(this.palette, ["select"]); - if(this.selectHandler){ - this.on('select', this.selectHandler, this.scope); - } -}; -Ext.extend(Ext.menu.ColorItem, Ext.menu.Adapter); - -Ext.menu.DateMenu = function(config){ - Ext.menu.DateMenu.superclass.constructor.call(this, config); - this.plain = true; - var di = new Ext.menu.DateItem(config); - this.add(di); - - this.picker = di.picker; - - this.relayEvents(di, ["select"]); -}; -Ext.extend(Ext.menu.DateMenu, Ext.menu.Menu); - -Ext.menu.ColorMenu = function(config){ - Ext.menu.ColorMenu.superclass.constructor.call(this, config); - this.plain = true; - var ci = new Ext.menu.ColorItem(config); - this.add(ci); - - this.palette = ci.palette; - - this.relayEvents(ci, ["select"]); -}; -Ext.extend(Ext.menu.ColorMenu, Ext.menu.Menu); - -Ext.form.Field = function(config){ - Ext.form.Field.superclass.constructor.call(this, config); - this.addEvents({ - - focus : true, - - blur : true, - - specialkey : true, - - change : true, - - invalid : true, - - valid : true - }); -}; - -Ext.extend(Ext.form.Field, Ext.Component, { - - invalidClass : "x-form-invalid", - - invalidText : "The value in this field is invalid", - - focusClass : "x-form-focus", - - validationEvent : "keyup", - - validateOnBlur : true, - - validationDelay : 250, - - defaultAutoCreate : {tag: "input", type: "text", size: "20", autocomplete: "off"}, - - fieldClass: "x-form-field", - - msgTarget: 'qtip', - - msgFx : 'normal', - - - inputType : undefined, - - isFormField : true, - - hasFocus : false, - - - value : undefined, - - - - getName: function(){ - return this.rendered && this.el.dom.name ? this.el.dom.name : (this.hiddenName || ''); - }, - - - applyTo : function(target){ - this.target = target; - this.el = Ext.get(target); - this.render(this.el.dom.parentNode); - return this; - }, - - onRender : function(ct, position){ - if(this.el){ - this.el = Ext.get(this.el); - if(!this.target){ - ct.dom.appendChild(this.el.dom); - } - }else { - var cfg = this.getAutoCreate(); - if(!cfg.name){ - cfg.name = this.name || this.id; - } - if(this.inputType){ - cfg.type = this.inputType; - } - if(this.tabIndex !== undefined){ - cfg.tabIndex = this.tabIndex; - } - this.el = ct.createChild(cfg, position); - } - var type = this.el.dom.type; - if(type){ - if(type == 'password'){ - type = 'text'; - } - this.el.addClass('x-form-'+type); - } - if(!this.customSize && (this.width || this.height)){ - this.setSize(this.width || "", this.height || ""); - } - if(this.readOnly){ - this.el.dom.readOnly = true; - } - - this.el.addClass([this.fieldClass, this.cls]); - this.initValue(); - }, - - initValue : function(){ - if(this.value !== undefined){ - this.setValue(this.value); - }else if(this.el.dom.value.length > 0){ - this.setValue(this.el.dom.value); - } - }, - - afterRender : function(){ - Ext.form.Field.superclass.afterRender.call(this); - this.initEvents(); - }, - - fireKey : function(e){ - if(e.isNavKeyPress()){ - this.fireEvent("specialkey", this, e); - } - }, - - - reset : function(){ - this.setValue(this.originalValue); - this.clearInvalid(); - }, - - initEvents : function(){ - this.el.on(Ext.isIE ? "keydown" : "keypress", this.fireKey, this); - this.el.on("focus", this.onFocus, this); - this.el.on("blur", this.onBlur, this); - - this.originalValue = this.getValue(); - }, - - onFocus : function(){ - if(!Ext.isOpera){ this.el.addClass(this.focusClass); - } - this.hasFocus = true; - this.startValue = this.getValue(); - this.fireEvent("focus", this); - }, - - onBlur : function(){ - this.el.removeClass(this.focusClass); - this.hasFocus = false; - if(this.validationEvent !== false && this.validateOnBlur && this.validationEvent != "blur"){ - this.validate(); - } - var v = this.getValue(); - if(v != this.startValue){ - this.fireEvent('change', this, v, this.startValue); - } - this.fireEvent("blur", this); - }, - - - setSize : function(w, h){ - if(!this.rendered || !this.el){ - this.width = w; - this.height = h; - return; - } - if(w){ - w = this.adjustWidth(this.el.dom.tagName, w); - this.el.setWidth(w); - } - if(h){ - this.el.setHeight(h); - } - var h = this.el.dom.offsetHeight; }, - - - isValid : function(preventMark){ - if(this.disabled){ - return true; - } - var restore = this.preventMark; - this.preventMark = preventMark === true; - var v = this.validateValue(this.getRawValue()); - this.preventMark = restore; - return v; - }, - - - validate : function(){ - if(this.disabled || this.validateValue(this.getRawValue())){ - this.clearInvalid(); - return true; - } - return false; - }, - - validateValue : function(value){ - return true; - }, - - - markInvalid : function(msg){ - if(!this.rendered || this.preventMark){ return; - } - this.el.addClass(this.invalidClass); - msg = msg || this.invalidText; - switch(this.msgTarget){ - case 'qtip': - this.el.dom.qtip = msg; - this.el.dom.qclass = 'x-form-invalid-tip'; - break; - case 'title': - this.el.dom.title = msg; - break; - case 'under': - if(!this.errorEl){ - var elp = this.el.findParent('.x-form-element', 5, true); - this.errorEl = elp.createChild({cls:'x-form-invalid-msg'}); - this.errorEl.setWidth(elp.getWidth(true)-20); - } - this.errorEl.update(msg); - Ext.form.Field.msgFx[this.msgFx].show(this.errorEl, this); - break; - case 'side': - if(!this.errorIcon){ - var elp = this.el.findParent('.x-form-element', 5, true); - this.errorIcon = elp.createChild({cls:'x-form-invalid-icon'}); - } - this.alignErrorIcon(); - this.errorIcon.dom.qtip = msg; - this.errorIcon.dom.qclass = 'x-form-invalid-tip'; - this.errorIcon.show(); - break; - default: - var t = Ext.getDom(this.msgTarget); - t.innerHTML = msg; - t.style.display = this.msgDisplay; - break; - } - this.fireEvent('invalid', this, msg); - }, - - alignErrorIcon : function(){ - this.errorIcon.alignTo(this.el, 'tl-tr', [2, 0]); - }, - - - clearInvalid : function(){ - if(!this.rendered || this.preventMark){ return; - } - this.el.removeClass(this.invalidClass); - switch(this.msgTarget){ - case 'qtip': - this.el.dom.qtip = ''; - break; - case 'title': - this.el.dom.title = ''; - break; - case 'under': - if(this.errorEl){ - Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl, this); - } - break; - case 'side': - if(this.errorIcon){ - this.errorIcon.dom.qtip = ''; - this.errorIcon.hide(); - } - break; - default: - var t = Ext.getDom(this.msgTarget); - t.innerHTML = ''; - t.style.display = 'none'; - break; - } - this.fireEvent('valid', this); - }, - - - getRawValue : function(){ - return this.el.getValue(); - }, - - - getValue : function(){ - var v = this.el.getValue(); - if(v == this.emptyText || v === undefined){ - v = ''; - } - return v; - }, - - - setRawValue : function(v){ - return this.el.dom.value = v; - }, - - - setValue : function(v){ - this.value = v; - if(this.rendered){ - this.el.dom.value = v; - this.validate(); - } - }, - - adjustWidth : function(tag, w){ - tag = tag.toLowerCase(); - if(typeof w == 'number' && Ext.isStrict && !Ext.isSafari){ - if(Ext.isIE && (tag == 'input' || tag == 'textarea')){ - if(tag == 'input'){ - return w + 2; - } - if(tag = 'textarea'){ - return w-2; - } - }else if(Ext.isGecko && tag == 'textarea'){ - return w-6; - }else if(Ext.isOpera){ - if(tag == 'input'){ - return w + 2; - } - if(tag = 'textarea'){ - return w-2; - } - } - } - return w; - } -}); - - -Ext.form.Field.msgFx = { - normal : { - show: function(msgEl, f){ - msgEl.setDisplayed('block'); - }, - - hide : function(msgEl, f){ - msgEl.setDisplayed(false).update(''); - } - }, - - slide : { - show: function(msgEl, f){ - msgEl.slideIn('t', {stopFx:true}); - }, - - hide : function(msgEl, f){ - msgEl.slideOut('t', {stopFx:true,useDisplay:true}); - } - }, - - slideRight : { - show: function(msgEl, f){ - msgEl.fixDisplay(); - msgEl.alignTo(f.el, 'tl-tr'); - msgEl.slideIn('l', {stopFx:true}); - }, - - hide : function(msgEl, f){ - msgEl.slideOut('l', {stopFx:true,useDisplay:true}); - } - } -}; - - -Ext.form.TextField = function(config){ - Ext.form.TextField.superclass.constructor.call(this, config); - this.addEvents({ - - autosize : true - }); -}; - -Ext.extend(Ext.form.TextField, Ext.form.Field, { - - grow : false, - - growMin : 30, - - growMax : 800, - - vtype : null, - - maskRe : null, - - disableKeyFilter : false, - - allowBlank : true, - - minLength : 0, - - maxLength : Number.MAX_VALUE, - - minLengthText : "The minimum length for this field is {0}", - - maxLengthText : "The maximum length for this field is {0}", - - selectOnFocus : false, - - blankText : "This field is required", - - validator : null, - - regex : null, - - regexText : "", - - emptyText : null, - - emptyClass : 'x-form-empty-field', - - initEvents : function(){ - Ext.form.TextField.superclass.initEvents.call(this); - if(this.validationEvent == 'keyup'){ - this.validationTask = new Ext.util.DelayedTask(this.validate, this); - this.el.on('keyup', this.filterValidation, this); - } - else if(this.validationEvent !== false){ - this.el.on(this.validationEvent, this.validate, this, {buffer: this.validationDelay}); - } - if(this.selectOnFocus || this.emptyText){ - this.on("focus", this.preFocus, this); - if(this.emptyText){ - this.on('blur', this.postBlur, this); - this.applyEmptyText(); - } - } - if(this.maskRe || (this.vtype && this.disableKeyFilter !== true && (this.maskRe = Ext.form.VTypes[this.vtype+'Mask']))){ - this.el.on("keypress", this.filterKeys, this); - } - if(this.grow){ - this.el.on("keyup", this.onKeyUp, this, {buffer:50}); - this.el.on("click", this.autoSize, this); - } - }, - - filterValidation : function(e){ - if(!e.isNavKeyPress()){ - this.validationTask.delay(this.validationDelay); - } - }, - - onKeyUp : function(e){ - if(!e.isNavKeyPress()){ - this.autoSize(); - } - }, - - - reset : function(){ - Ext.form.TextField.superclass.reset.call(this); - this.applyEmptyText(); - }, - - applyEmptyText : function(){ - if(this.rendered && this.emptyText && this.getRawValue().length < 1){ - this.setRawValue(this.emptyText); - this.el.addClass(this.emptyClass); - } - }, - - preFocus : function(){ - if(this.emptyText){ - if(this.getRawValue() == this.emptyText){ - this.setRawValue(''); - } - this.el.removeClass(this.emptyClass); - } - if(this.selectOnFocus){ - this.el.dom.select(); - } - }, - - postBlur : function(){ - this.applyEmptyText(); - }, - - filterKeys : function(e){ - var k = e.getKey(); - if(!Ext.isIE && (e.isNavKeyPress() || k == e.BACKSPACE || (k == e.DELETE && e.button == -1))){ - return; - } - var c = e.getCharCode(); - if(!this.maskRe.test(String.fromCharCode(c) || '')){ - e.stopEvent(); - } - }, - - setValue : function(v){ - if(this.emptyText && v !== undefined && v !== null && v !== ''){ - this.el.removeClass(this.emptyClass); - } - Ext.form.TextField.superclass.setValue.apply(this, arguments); - }, - - - validateValue : function(value){ - if(value.length < 1 || value === this.emptyText){ if(this.allowBlank){ - this.clearInvalid(); - return true; - }else{ - this.markInvalid(this.blankText); - return false; - } - } - if(value.length < this.minLength){ - this.markInvalid(String.format(this.minLengthText, this.minLength)); - return false; - } - if(value.length > this.maxLength){ - this.markInvalid(String.format(this.maxLengthText, this.maxLength)); - return false; - } - if(this.vtype){ - var vt = Ext.form.VTypes; - if(!vt[this.vtype](value)){ - this.markInvalid(this.vtypeText || vt[this.vtype +'Text']); - return false; - } - } - if(typeof this.validator == "function"){ - var msg = this.validator(value); - if(msg !== true){ - this.markInvalid(msg); - return false; - } - } - if(this.regex && !this.regex.test(value)){ - this.markInvalid(this.regexText); - return false; - } - return true; - }, - - - selectText : function(start, end){ - var v = this.getRawValue(); - if(v.length > 0){ - start = start === undefined ? 0 : start; - end = end === undefined ? v.length : end; - var d = this.el.dom; - if(d.setSelectionRange){ - d.setSelectionRange(start, end); - }else if(d.createTextRange){ - var range = d.createTextRange(); - range.moveStart("character", start); - range.moveEnd("character", v.length-end); - range.select(); - } - } - }, - - - autoSize : function(){ - if(!this.grow || !this.rendered){ - return; - } - if(!this.metrics){ - this.metrics = Ext.util.TextMetrics.createInstance(this.el); - } - var el = this.el; - var v = el.dom.value + " "; - var w = Math.min(this.growMax, Math.max(this.metrics.getWidth(v) + 10, this.growMin)); - this.el.setWidth(w); - this.fireEvent("autosize", this, w); - } -}); - -Ext.form.TriggerField = function(config){ - Ext.form.TriggerField.superclass.constructor.call(this, config); - this.mimicing = false; - this.on('disable', this.disableWrapper, this); - this.on('enable', this.enableWrapper, this); -}; - -Ext.extend(Ext.form.TriggerField, Ext.form.TextField, { - - - defaultAutoCreate : {tag: "input", type: "text", size: "16", autocomplete: "off"}, - - hideTrigger:false, - - - - - - - autoSize: Ext.emptyFn, - - monitorTab : true, - - customSize : true, - - setSize : function(w, h){ - if(!this.wrap){ - this.width = w; - this.height = h; - return; - } - if(w){ - var wrapWidth = w; - w = w - this.trigger.getWidth(); - Ext.form.TriggerField.superclass.setSize.call(this, w, h); - this.wrap.setWidth(wrapWidth); - if(this.onResize){ - this.onResize(wrapWidth, h); - } - }else{ - Ext.form.TriggerField.superclass.setSize.call(this, w, h); - this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth()); - } - }, - - alignErrorIcon : function(){ - this.errorIcon.alignTo(this.wrap, 'tl-tr', [2, 0]); - }, - - onRender : function(ct, position){ - Ext.form.TriggerField.superclass.onRender.call(this, ct, position); - this.wrap = this.el.wrap({cls: "x-form-field-wrap"}); - this.trigger = this.wrap.createChild({ - tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger "+this.triggerClass}); - this.trigger.on("click", this.onTriggerClick, this, {preventDefault:true}); - this.trigger.addClassOnOver('x-form-trigger-over'); - this.trigger.addClassOnClick('x-form-trigger-click'); - if(this.hideTrigger){ - this.trigger.setDisplayed(false); - } - this.setSize(this.width||'', this.height||''); - }, - - onDestroy : function(){ - if(this.trigger){ - this.trigger.removeAllListeners(); - this.trigger.remove(); - } - if(this.wrap){ - this.wrap.remove(); - } - Ext.form.TriggerField.superclass.onDestroy.call(this); - }, - - onFocus : function(){ - Ext.form.TriggerField.superclass.onFocus.call(this); - if(!this.mimicing){ - this.mimicing = true; - Ext.get(Ext.isIE ? document.body : document).on("mousedown", this.mimicBlur, this); - if(this.monitorTab){ - this.el.on("keydown", this.checkTab, this); - } - } - }, - - checkTab : function(e){ - if(e.getKey() == e.TAB){ - this.triggerBlur(); - } - }, - - onBlur : function(){ - }, - - mimicBlur : function(e, t){ - if(!this.wrap.contains(t) && this.validateBlur()){ - this.triggerBlur(); - } - }, - - triggerBlur : function(){ - this.mimicing = false; - Ext.get(Ext.isIE ? document.body : document).un("mousedown", this.mimicBlur); - if(this.monitorTab){ - this.el.un("keydown", this.checkTab, this); - } - Ext.form.TriggerField.superclass.onBlur.call(this); - }, - - validateBlur : function(e, t){ - return true; - }, - - disableWrapper : function(){ - if(this.wrap){ - this.wrap.addClass('x-item-disabled'); - } - }, - - enableWrapper : function(){ - if(this.wrap){ - this.wrap.removeClass('x-item-disabled'); - } - }, - - onShow : function(){ - if(this.wrap){ - this.wrap.dom.style.display = ''; - this.wrap.dom.style.visibility = 'visible'; - } - }, - - onHide : function(){ - this.wrap.dom.style.display = 'none'; - }, - - - onTriggerClick : Ext.emptyFn -}); - -Ext.form.TextArea = function(config){ - Ext.form.TextArea.superclass.constructor.call(this, config); - if(this.minHeight !== undefined){ - this.growMin = this.minHeight; - } - if(this.maxHeight !== undefined){ - this.growMax = this.maxHeight; - } -}; - -Ext.extend(Ext.form.TextArea, Ext.form.TextField, { - - growMin : 60, - - growMax: 1000, - - preventScrollbars: false, - - onRender : function(ct, position){ - if(!this.el){ - this.defaultAutoCreate = { - tag: "textarea", - style:"width:300px;height:60px;", - autocomplete: "off" - }; - } - Ext.form.TextArea.superclass.onRender.call(this, ct, position); - if(this.grow){ - this.textSizeEl = Ext.DomHelper.append(document.body, { - tag: "pre", cls: "x-form-grow-sizer" - }); - if(this.preventScrollbars){ - this.el.setStyle("overflow", "hidden"); - } - this.el.setHeight(this.growMin); - } - }, - - onKeyUp : function(e){ - if(!e.isNavKeyPress() || e.getKey() == e.ENTER){ - this.autoSize(); - } - }, - - - autoSize : function(){ - if(!this.grow || !this.textSizeEl){ - return; - } - var el = this.el; - var v = el.dom.value; - var ts = this.textSizeEl; - Ext.fly(ts).setWidth(this.el.getWidth()); - if(v.length < 1){ - v = "  "; - }else{ - v += " \n "; - } - if(Ext.isIE){ - v = v.replace(/\n/g, '
    '); - } - ts.innerHTML = v; - var h = Math.min(this.growMax, Math.max(ts.offsetHeight, this.growMin)); - if(h != this.lastHeight){ - this.lastHeight = h; - this.el.setHeight(h); - this.fireEvent("autosize", this, h); - } - }, - - setValue : function(v){ - Ext.form.TextArea.superclass.setValue.call(this, v); - this.autoSize(); - } -}); - -Ext.form.NumberField = function(config){ - Ext.form.NumberField.superclass.constructor.call(this, config); -}; - -Ext.extend(Ext.form.NumberField, Ext.form.TextField, { - - fieldClass: "x-form-field x-form-num-field", - - allowDecimals : true, - - decimalSeparator : ".", - - decimalPrecision : 2, - - allowNegative : true, - - minValue : Number.NEGATIVE_INFINITY, - - maxValue : Number.MAX_VALUE, - - minText : "The minimum value for this field is {0}", - - maxText : "The maximum value for this field is {0}", - - nanText : "{0} is not a valid number", - - initEvents : function(){ - Ext.form.NumberField.superclass.initEvents.call(this); - var allowed = "0123456789"; - if(this.allowDecimals){ - allowed += this.decimalSeparator; - } - if(this.allowNegative){ - allowed += "-"; - } - var keyPress = function(e){ - var k = e.getKey(); - if(!Ext.isIE && (e.isNavKeyPress() || k == e.BACKSPACE || (k == e.DELETE && e.button == -1))){ - return; - } - var c = e.getCharCode(); - if(allowed.indexOf(String.fromCharCode(c)) === -1){ - e.stopEvent(); - } - }; - this.el.on("keypress", keyPress, this); - }, - - validateValue : function(value){ - if(!Ext.form.NumberField.superclass.validateValue.call(this, value)){ - return false; - } - if(value.length < 1){ return true; - } - value = String(value).replace(this.decimalSeparator, "."); - if(isNaN(value)){ - this.markInvalid(String.format(this.nanText, value)); - return false; - } - var num = this.parseValue(value); - if(num < this.minValue){ - this.markInvalid(String.format(this.minText, this.minValue)); - return false; - } - if(num > this.maxValue){ - this.markInvalid(String.format(this.maxText, this.maxValue)); - return false; - } - return true; - }, - - parseValue : function(value){ - return parseFloat(String(value).replace(this.decimalSeparator, ".")); - }, - - fixPrecision : function(value){ - if(!this.allowDecimals || this.decimalPrecision == -1 || isNaN(value) || value == 0 || !value){ - return value; - } - var scale = Math.pow(10, this.decimalPrecision+1); - var fixed = this.decimalPrecisionFcn(value * scale); - fixed = this.decimalPrecisionFcn(fixed/10); - return fixed / (scale/10); - }, - - decimalPrecisionFcn : function(v){ - return Math.floor(v); - } -}); - -Ext.form.DateField = function(config){ - Ext.form.DateField.superclass.constructor.call(this, config); - if(typeof this.minValue == "string") this.minValue = this.parseDate(this.minValue); - if(typeof this.maxValue == "string") this.maxValue = this.parseDate(this.maxValue); - this.ddMatch = null; - if(this.disabledDates){ - var dd = this.disabledDates; - var re = "(?:"; - for(var i = 0; i < dd.length; i++){ - re += dd[i]; - if(i != dd.length-1) re += "|"; - } - this.ddMatch = new RegExp(re + ")"); - } -}; - -Ext.extend(Ext.form.DateField, Ext.form.TriggerField, { - - format : "m/d/y", - - disabledDays : null, - - disabledDaysText : "Disabled", - - disabledDates : null, - - disabledDatesText : "Disabled", - - minValue : null, - - maxValue : null, - - minText : "The date in this field must be after {0}", - - maxText : "The date in this field must be before {0}", - - invalidText : "{0} is not a valid date - it must be in the format {1}", - - triggerClass : 'x-form-date-trigger', - - - defaultAutoCreate : {tag: "input", type: "text", size: "10", autocomplete: "off"}, - - validateValue : function(value){ - value = this.formatDate(value); - if(!Ext.form.DateField.superclass.validateValue.call(this, value)){ - return false; - } - if(value.length < 1){ return true; - } - var svalue = value; - value = this.parseDate(value); - if(!value){ - this.markInvalid(String.format(this.invalidText, svalue, this.format)); - return false; - } - var time = value.getTime(); - if(this.minValue && time < this.minValue.getTime()){ - this.markInvalid(String.format(this.minText, this.formatDate(this.minValue))); - return false; - } - if(this.maxValue && time > this.maxValue.getTime()){ - this.markInvalid(String.format(this.maxText, this.formatDate(this.maxValue))); - return false; - } - if(this.disabledDays){ - var day = value.getDay(); - for(var i = 0; i < this.disabledDays.length; i++) { - if(day === this.disabledDays[i]){ - this.markInvalid(this.disabledDaysText); - return false; - } - } - } - var fvalue = this.formatDate(value); - if(this.ddMatch && this.ddMatch.test(fvalue)){ - this.markInvalid(String.format(this.disabledDatesText, fvalue)); - return false; - } - return true; - }, - - validateBlur : function(){ - return !this.menu || !this.menu.isVisible(); - }, - - - getValue : function(){ - return this.parseDate(Ext.form.DateField.superclass.getValue.call(this)) || ""; - }, - - - setValue : function(date){ - Ext.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(date))); - }, - - parseDate : function(value){ - return (!value || value instanceof Date) ? - value : Date.parseDate(value, this.format); - }, - - formatDate : function(date){ - return (!date || !(date instanceof Date)) ? - date : date.dateFormat(this.format); - }, - - menuListeners : { - select: function(m, d){ - this.setValue(d); - }, - show : function(){ this.onFocus(); - }, - hide : function(){ - this.focus(); - var ml = this.menuListeners; - this.menu.un("select", ml.select, this); - this.menu.un("show", ml.show, this); - this.menu.un("hide", ml.hide, this); - } - }, - - onTriggerClick : function(){ - if(this.disabled){ - return; - } - if(this.menu == null){ - this.menu = new Ext.menu.DateMenu(); - } - Ext.apply(this.menu.picker, { - minDate : this.minValue, - maxDate : this.maxValue, - disabledDatesRE : this.ddMatch, - disabledDatesText : this.disabledDatesText, - disabledDays : this.disabledDays, - disabledDaysText : this.disabledDaysText, - format : this.format, - minText : String.format(this.minText, this.formatDate(this.minValue)), - maxText : String.format(this.maxText, this.formatDate(this.maxValue)) - }); - this.menu.on(Ext.apply({}, this.menuListeners, { - scope:this - })); - this.menu.picker.setValue(this.getValue() || new Date()); - this.menu.show(this.el, "tl-bl?"); - } -}); - -Ext.form.ComboBox = function(config){ - Ext.form.ComboBox.superclass.constructor.call(this, config); - this.addEvents({ - - 'expand' : true, - - 'collapse' : true, - - 'beforeselect' : true, - - 'select' : true, - - 'beforequery': true - }); - if(this.transform){ - var s = Ext.getDom(this.transform); - if(!this.hiddenName){ - this.hiddenName = s.name; - } - if(!this.store){ - this.mode = 'local'; - var d = [], opts = s.options; - for(var i = 0, len = opts.length;i < len; i++){ - var o = opts[i]; - var value = (Ext.isIE ? o.getAttributeNode('value').specified : o.hasAttribute('value')) ? o.value : o.text; - if(o.selected) { - this.value = value; - } - d.push([value, o.text]); - } - this.store = new Ext.data.SimpleStore({ - 'id': 0, - fields: ['value', 'text'], - data : d - }); - this.valueField = 'value'; - this.displayField = 'text'; - } - s.name = Ext.id(); if(!this.lazyRender){ - this.target = true; - this.el = Ext.DomHelper.insertBefore(s, this.autoCreate || this.defaultAutoCreate); - s.parentNode.removeChild(s); this.render(this.el.parentNode); - }else{ - s.parentNode.removeChild(s); } - - } - this.selectedIndex = -1; - if(this.mode == 'local'){ - if(config.queryDelay === undefined){ - this.queryDelay = 10; - } - if(config.minChars === undefined){ - this.minChars = 0; - } - } -}; - -Ext.extend(Ext.form.ComboBox, Ext.form.TriggerField, { - - - - - defaultAutoCreate : {tag: "input", type: "text", size: "24", autocomplete: "off"}, - - listWidth: undefined, - - displayField: undefined, - - valueField: undefined, - - hiddenName: undefined, - - listClass: '', - - selectedClass: 'x-combo-selected', - - triggerClass : 'x-form-arrow-trigger', - - shadow:'sides', - - listAlign: 'tl-bl?', - - maxHeight: 300, - - triggerAction: 'query', - - minChars : 4, - - typeAhead: false, - - queryDelay: 500, - - pageSize: 0, - - selectOnFocus:false, - - queryParam: 'query', - - loadingText: 'Loading...', - - resizable: false, - - handleHeight : 8, - - editable: true, - - allQuery: '', - - mode: 'remote', - - minListWidth : 70, - - forceSelection:false, - - typeAheadDelay : 250, - - valueNotFoundText : undefined, - - onRender : function(ct, position){ - Ext.form.ComboBox.superclass.onRender.call(this, ct, position); - if(this.hiddenName){ - this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id: this.hiddenName}, - 'before', true); - this.hiddenField.value = - this.hiddenValue !== undefined ? this.hiddenValue : - this.value !== undefined ? this.value : ''; - - this.el.dom.removeAttribute('name'); - } - if(Ext.isGecko){ - this.el.dom.setAttribute('autocomplete', 'off'); - } - - var cls = 'x-combo-list'; - - this.list = new Ext.Layer({ - shadow: this.shadow, cls: [cls, this.listClass].join(' '), constrain:false - }); - - this.list.setWidth(this.listWidth || Math.max(this.wrap.getWidth(), this.minListWidth)); - this.list.swallowEvent('mousewheel'); - this.assetHeight = 0; - - if(this.title){ - this.header = this.list.createChild({cls:cls+'-hd', html: this.title}); - this.assetHeight += this.header.getHeight(); - } - - this.innerList = this.list.createChild({cls:cls+'-inner'}); - this.innerList.on('mouseover', this.onViewOver, this); - this.innerList.on('mousemove', this.onViewMove, this); - - if(this.pageSize){ - this.footer = this.list.createChild({cls:cls+'-ft'}); - this.pageTb = new Ext.PagingToolbar(this.footer, this.store, - {pageSize: this.pageSize}); - this.assetHeight += this.footer.getHeight(); - } - - if(!this.tpl){ - this.tpl = '
    {' + this.displayField + '}
    '; - } - - this.view = new Ext.View(this.innerList, this.tpl, { - singleSelect:true, store: this.store, selectedClass: this.selectedClass - }); - - this.view.on('click', this.onViewClick, this); - - this.store.on('beforeload', this.onBeforeLoad, this); - this.store.on('load', this.onLoad, this); - this.store.on('loadexception', this.collapse, this); - - if(this.resizable){ - this.resizer = new Ext.Resizable(this.list, { - pinned:true, handles:'se' - }); - this.resizer.on('resize', function(r, w, h){ - this.maxHeight = h-this.handleHeight-this.list.getFrameWidth('tb')-this.assetHeight; - this.listWidth = w; - this.restrictHeight(); - }, this); - this[this.pageSize?'footer':'innerList'].setStyle('margin-bottom', this.handleHeight+'px'); - } - if(!this.editable){ - this.editable = true; - this.setEditable(false); - } - }, - - initEvents : function(){ - Ext.form.ComboBox.superclass.initEvents.call(this); - - this.keyNav = new Ext.KeyNav(this.el, { - "up" : function(e){ - this.inKeyMode = true; - this.selectPrev(); - }, - - "down" : function(e){ - if(!this.isExpanded()){ - this.onTriggerClick(); - }else{ - this.inKeyMode = true; - this.selectNext(); - } - }, - - "enter" : function(e){ - this.onViewClick(); - }, - - "esc" : function(e){ - this.collapse(); - }, - - "tab" : function(e){ - this.onViewClick(false); - return true; - }, - - scope : this, - - doRelay : function(foo, bar, hname){ - if(hname == 'down' || this.scope.isExpanded()){ - return Ext.KeyNav.prototype.doRelay.apply(this, arguments); - } - return true; - } - }); - this.queryDelay = Math.max(this.queryDelay || 10, - this.mode == 'local' ? 10 : 250); - this.dqTask = new Ext.util.DelayedTask(this.initQuery, this); - if(this.typeAhead){ - this.taTask = new Ext.util.DelayedTask(this.onTypeAhead, this); - } - if(this.editable !== false){ - this.el.on("keyup", this.onKeyUp, this); - } - if(this.forceSelection){ - this.on('blur', this.doForce, this); - } - }, - - onDestroy : function(){ - if(this.view){ - this.view.setStore(null); - this.view.el.removeAllListeners(); - this.view.el.remove(); - this.view.purgeListeners(); - } - if(this.list){ - this.list.destroy(); - } - if(this.store){ - this.store.un('beforeload', this.onBeforeLoad, this); - this.store.un('load', this.onLoad, this); - this.store.un('loadexception', this.collapse, this); - } - Ext.form.ComboBox.superclass.onDestroy.call(this); - }, - - fireKey : function(e){ - if(e.isNavKeyPress() && !this.list.isVisible()){ - this.fireEvent("specialkey", this, e); - } - }, - - onResize: function(w, h){ - if(this.list && this.listWidth === undefined){ - this.list.setWidth(Math.max(w, this.minListWidth)); - } - }, - - - setEditable : function(value){ - if(value == this.editable){ - return; - } - this.editable = value; - if(!value){ - this.el.dom.setAttribute('readOnly', true); - this.el.on('mousedown', this.onTriggerClick, this); - this.el.addClass('x-combo-noedit'); - }else{ - this.el.dom.setAttribute('readOnly', false); - this.el.un('mousedown', this.onTriggerClick, this); - this.el.removeClass('x-combo-noedit'); - } - }, - - onBeforeLoad : function(){ - if(!this.hasFocus){ - return; - } - this.innerList.update(this.loadingText ? - '
    '+this.loadingText+'
    ' : ''); - this.restrictHeight(); - this.selectedIndex = -1; - }, - - onLoad : function(){ - if(!this.hasFocus){ - return; - } - if(this.store.getCount() > 0){ - this.expand(); - this.restrictHeight(); - if(this.lastQuery == this.allQuery){ - if(this.editable){ - this.el.dom.select(); - } - if(!this.selectByValue(this.value, true)){ - this.select(0, true); - } - }else{ - this.selectNext(); - if(this.typeAhead && this.lastKey != Ext.EventObject.BACKSPACE && this.lastKey != Ext.EventObject.DELETE){ - this.taTask.delay(this.typeAheadDelay); - } - } - }else{ - this.onEmptyResults(); - } - }, - - onTypeAhead : function(){ - if(this.store.getCount() > 0){ - var r = this.store.getAt(0); - var newValue = r.data[this.displayField]; - var len = newValue.length; - var selStart = this.getRawValue().length; - if(selStart != len){ - this.setRawValue(newValue); - this.selectText(selStart, newValue.length); - } - } - }, - - onSelect : function(record, index){ - if(this.fireEvent('beforeselect', this, record, index) !== false){ - this.setValue(record.data[this.valueField || this.displayField]); - this.collapse(); - this.fireEvent('select', this, record, index); - } - }, - - - getValue : function(){ - if(this.valueField){ - return typeof this.value != 'undefined' ? this.value : ''; - }else{ - return Ext.form.ComboBox.superclass.getValue.call(this); - } - }, - - - clearValue : function(){ - if(this.hiddenField){ - this.hiddenField.value = ''; - } - this.setRawValue(''); - this.lastSelectionText = ''; - }, - - - setValue : function(v){ - var text = v; - if(this.valueField){ - var r = this.findRecord(this.valueField, v); - if(r){ - text = r.data[this.displayField]; - }else if(this.valueNotFoundText){ - text = this.valueNotFoundText; - } - } - this.lastSelectionText = text; - if(this.hiddenField){ - this.hiddenField.value = v; - } - Ext.form.ComboBox.superclass.setValue.call(this, text); - this.value = v; - }, - - findRecord : function(prop, value){ - var record; - if(this.store.getCount() > 0){ - this.store.each(function(r){ - if(r.data[prop] == value){ - record = r; - return false; - } - }); - } - return record; - }, - - onViewMove : function(e, t){ - this.inKeyMode = false; - }, - - onViewOver : function(e, t){ - if(this.inKeyMode){ return; - } - var item = this.view.findItemFromChild(t); - if(item){ - var index = this.view.indexOf(item); - this.select(index, false); - } - }, - - onViewClick : function(doFocus){ - var index = this.view.getSelectedIndexes()[0]; - var r = this.store.getAt(index); - if(r){ - this.onSelect(r, index); - } - if(doFocus !== false){ - this.el.focus(); - } - }, - - restrictHeight : function(){ - this.innerList.dom.style.height = ''; - var inner = this.innerList.dom; - var h = Math.max(inner.clientHeight, inner.offsetHeight, inner.scrollHeight); - this.innerList.setHeight(h < this.maxHeight ? 'auto' : this.maxHeight); - this.list.beginUpdate(); - this.list.setHeight(this.innerList.getHeight()+this.list.getFrameWidth('tb')+(this.resizable?this.handleHeight:0)+this.assetHeight); - this.list.alignTo(this.el, this.listAlign); - this.list.endUpdate(); - }, - - onEmptyResults : function(){ - this.collapse(); - }, - - - isExpanded : function(){ - return this.list.isVisible(); - }, - - - selectByValue : function(v, scrollIntoView){ - if(v !== undefined && v !== null){ - var r = this.findRecord(this.valueField || this.displayField, v); - if(r){ - this.select(this.store.indexOf(r), scrollIntoView); - return true; - } - } - return false; - }, - - - select : function(index, scrollIntoView){ - this.selectedIndex = index; - this.view.select(index); - if(scrollIntoView !== false){ - var el = this.view.getNode(index); - if(el){ - this.innerList.scrollChildIntoView(el); - } - } - }, - - - selectNext : function(){ - var ct = this.store.getCount(); - if(ct > 0){ - if(this.selectedIndex == -1){ - this.select(0); - }else if(this.selectedIndex < ct-1){ - this.select(this.selectedIndex+1); - } - } - }, - - - selectPrev : function(){ - var ct = this.store.getCount(); - if(ct > 0){ - if(this.selectedIndex == -1){ - this.select(0); - }else if(this.selectedIndex != 0){ - this.select(this.selectedIndex-1); - } - } - }, - - onKeyUp : function(e){ - if(this.editable !== false && !e.isSpecialKey()){ - this.lastKey = e.getKey(); - this.dqTask.delay(this.queryDelay); - } - }, - - validateBlur : function(){ - return !this.list || !this.list.isVisible(); - }, - - initQuery : function(){ - this.doQuery(this.getRawValue()); - }, - - doForce : function(){ - if(this.el.dom.value.length > 0){ - this.el.dom.value = - this.lastSelectionText === undefined ? '' : this.lastSelectionText; - this.applyEmptyText(); - } - }, - - - doQuery : function(q, forceAll){ - if(q === undefined || q === null){ - q = ''; - } - var qe = { - query: q, - forceAll: forceAll, - combo: this, - cancel:false - }; - if(this.fireEvent('beforequery', qe)===false || qe.cancel){ - return false; - } - q = qe.query; - forceAll = qe.forceAll; - if(forceAll === true || (q.length >= this.minChars)){ - if(this.lastQuery != q){ - this.lastQuery = q; - if(this.mode == 'local'){ - this.selectedIndex = -1; - if(forceAll){ - this.store.clearFilter(); - }else{ - this.store.filter(this.displayField, q); - } - this.onLoad(); - }else{ - this.store.baseParams[this.queryParam] = q; - this.store.load({ - params: this.getParams(q) - }); - this.expand(); - } - }else{ - this.selectedIndex = -1; - this.onLoad(); - } - } - }, - - getParams : function(q){ - var p = {}; - if(this.pageSize){ - p.start = 0; - p.limit = this.pageSize; - } - return p; - }, - - - collapse : function(){ - if(!this.isExpanded()){ - return; - } - this.list.hide(); - Ext.get(document).un('mousedown', this.collapseIf, this); - this.fireEvent('collapse', this); - }, - - collapseIf : function(e){ - if(!e.within(this.wrap) && !e.within(this.list)){ - this.collapse(); - } - }, - - - expand : function(){ - if(this.isExpanded() || !this.hasFocus){ - return; - } - this.list.alignTo(this.el, this.listAlign); - this.list.show(); - Ext.get(document).on('mousedown', this.collapseIf, this); - this.fireEvent('expand', this); - }, - - onTriggerClick : function(){ - if(this.disabled){ - return; - } - if(this.isExpanded()){ - this.collapse(); - this.el.focus(); - }else{ - this.hasFocus = true; - this.doQuery(this.triggerAction == 'all' ? - this.doQuery(this.allQuery, true) : this.doQuery(this.getRawValue())); - this.el.focus(); - } - } -}); - -Ext.form.Checkbox = function(config){ - Ext.form.Checkbox.superclass.constructor.call(this, config); - this.addEvents({ - - check : true - }); -}; - -Ext.extend(Ext.form.Checkbox, Ext.form.Field, { - - focusClass : "x-form-check-focus", - - fieldClass: "x-form-field", - - checked: false, - - defaultAutoCreate : { tag: "input", type: 'checkbox', autocomplete: "off"}, - - boxLabel : undefined, - - - setSize : function(w, h){ - if(!this.wrap){ - this.width = w; - this.height = h; - return; - } - this.wrap.setSize(w, h); - if(!this.boxLabel){ - this.el.alignTo(this.wrap, 'c-c'); - } - }, - - initEvents : function(){ - Ext.form.Checkbox.superclass.initEvents.call(this); - this.el.on("click", this.onClick, this); - this.el.on("change", this.onClick, this); - }, - - - onRender : function(ct, position){ - Ext.form.Checkbox.superclass.onRender.call(this, ct, position); - if(this.inputValue !== undefined){ - this.el.dom.value = this.inputValue; - } - this.wrap = this.el.wrap({cls: "x-form-check-wrap"}); - if(this.boxLabel){ - this.wrap.createChild({tag: 'label', htmlFor: this.el.id, cls: 'x-form-cb-label', html: this.boxLabel}); - } - if(this.checked){ - this.setValue(true); - } - }, - - initValue : Ext.emptyFn, - - - getValue : function(){ - if(this.rendered){ - return this.el.dom.checked; - } - return false; - }, - - onClick : function(){ - if(this.el.dom.checked != this.checked){ - this.setValue(this.el.dom.checked); - } - }, - - - setValue : function(v){ - this.checked = (v === true || v === 'true' || v == '1'); - if(this.el && this.el.dom){ - this.el.dom.checked = this.checked; - } - this.fireEvent("check", this, this.checked); - } -}); - -Ext.form.Radio = function(){ - Ext.form.Radio.superclass.constructor.apply(this, arguments); -}; -Ext.extend(Ext.form.Radio, Ext.form.Checkbox, { - inputType: 'radio' -}); - -Ext.form.BasicForm = function(el, config){ - Ext.apply(this, config); - - this.items = new Ext.util.MixedCollection(false, function(o){ - return o.id || (o.id = Ext.id()); - }); - this.addEvents({ - - beforeaction: true, - - actionfailed : true, - - actioncomplete : true - }); - if(el){ - this.initEl(el); - } - Ext.form.BasicForm.superclass.constructor.call(this); -}; - -Ext.extend(Ext.form.BasicForm, Ext.util.Observable, { - - - - - - - - timeout: 30, - - activeAction : null, - - - waitMsgTarget : undefined, - - initEl : function(el){ - this.el = Ext.get(el); - this.id = this.el.id || Ext.id(); - this.el.on('submit', this.onSubmit, this); - this.el.addClass('x-form'); - }, - - onSubmit : function(e){ - e.stopEvent(); - }, - - - isValid : function(){ - var valid = true; - this.items.each(function(f){ - if(!f.validate()){ - valid = false; - } - }); - return valid; - }, - - - doAction : function(action, options){ - if(typeof action == 'string'){ - action = new Ext.form.Action.ACTION_TYPES[action](this, options); - } - if(this.fireEvent('beforeaction', this, action) !== false){ - this.beforeAction(action); - action.run.defer(100, action); - } - }, - - - submit : function(options){ - this.doAction('submit', options); - }, - - - load : function(options){ - this.doAction('load', options); - }, - - - updateRecord : function(record){ - record.beginEdit(); - var fs = record.fields; - fs.each(function(f){ - var field = this.findField(f.name); - if(field){ - record.set(f.name, field.getValue()); - } - }, this); - record.endEdit(); - }, - - beforeAction : function(action){ - var o = action.options; - if(o.waitMsg){ - if(this.waitMsgTarget === true){ - this.el.mask(o.waitMsg, 'x-mask-loading'); - }else if(this.waitMsgTarget){ - this.waitMsgTarget = Ext.get(this.waitMsgTarget); - this.waitMsgTarget.mask(o.waitMsg, 'x-mask-loading'); - }else{ - Ext.MessageBox.wait(o.waitMsg, o.waitTitle || this.waitTitle || 'Please Wait...'); - } - } - }, - - afterAction : function(action, success){ - this.activeAction = null; - var o = action.options; - if(o.waitMsg){ - if(this.waitMsgTarget === true){ - this.el.unmask(); - }else if(this.waitMsgTarget){ - this.waitMsgTarget.unmask(); - }else{ - Ext.MessageBox.updateProgress(1); - Ext.MessageBox.hide(); - } - } - if(success){ - if(o.reset){ - this.reset(); - } - Ext.callback(o.success, o.scope, [this, action]); - this.fireEvent('actioncomplete', this, action); - }else{ - Ext.callback(o.failure, o.scope, [this, action]); - this.fireEvent('actionfailed', this, action); - } - }, - - - findField : function(id){ - var field = this.items.get(id); - if(!field){ - this.items.each(function(f){ - if(f.isFormField && (f.dataIndex == id || f.id == id || f.getName() == id)){ - field = f; - return false; - } - }); - } - return field || null; - }, - - - - markInvalid : function(errors){ - if(errors instanceof Array){ - for(var i = 0, len = errors.length; i < len; i++){ - var fieldError = errors[i]; - var f = this.findField(fieldError.id); - if(f){ - f.markInvalid(fieldError.msg); - } - } - }else{ - var field, id; - for(id in errors){ - if(typeof errors[id] != 'function' && (field = this.findField(id))){ - field.markInvalid(errors[id]); - } - } - } - }, - - - setValues : function(values){ - if(values instanceof Array){ for(var i = 0, len = values.length; i < len; i++){ - var v = values[i]; - var f = this.findField(v.id); - if(f){ - f.setValue(v.value); - } - } - }else{ var field, id; - for(id in values){ - if(typeof values[id] != 'function' && (field = this.findField(id))){ - field.setValue(values[id]); - } - } - } - }, - - - getValues : function(asString){ - var fs = Ext.lib.Ajax.serializeForm(this.el.dom); - if(asString === true){ - return fs; - } - return Ext.urlDecode(fs); - }, - - - clearInvalid : function(){ - this.items.each(function(f){ - f.clearInvalid(); - }); - }, - - - reset : function(){ - this.items.each(function(f){ - f.reset(); - }); - }, - - - add : function(){ - this.items.addAll(Array.prototype.slice.call(arguments, 0)); - }, - - - - remove : function(field){ - this.items.remove(field); - }, - - - render : function(){ - this.items.each(function(f){ - if(f.isFormField && !f.rendered && document.getElementById(f.id)){ f.applyTo(f.id); - } - }); - }, - - - applyToFields : function(o){ - this.items.each(function(f){ - Ext.apply(f, o); - }); - }, - - - applyIfToFields : function(o){ - this.items.each(function(f){ - Ext.applyIf(f, o); - }); - } -}); - -Ext.BasicForm = Ext.form.BasicForm; - -Ext.form.Form = function(config){ - Ext.form.Form.superclass.constructor.call(this, null, config); - this.url = this.url || this.action; - if(!this.root){ - this.root = new Ext.form.Layout(Ext.applyIf({ - id: Ext.id() - }, config)); - } - this.active = this.root; - - this.buttons = []; - this.addEvents({ - - clientvalidation: true - }); -}; - -Ext.extend(Ext.form.Form, Ext.form.BasicForm, { - - - - buttonAlign:'center', - - - minButtonWidth:75, - - - labelAlign:'left', - - - monitorValid : false, - - - monitorPoll : 200, - - - column : function(c){ - var col = new Ext.form.Column(c); - this.start(col); - if(arguments.length > 1){ this.add.apply(this, Array.prototype.slice.call(arguments, 1)); - this.end(); - } - return col; - }, - - - fieldset : function(c){ - var fs = new Ext.form.FieldSet(c); - this.start(fs); - if(arguments.length > 1){ this.add.apply(this, Array.prototype.slice.call(arguments, 1)); - this.end(); - } - return fs; - }, - - - container : function(c){ - var l = new Ext.form.Layout(c); - this.start(l); - if(arguments.length > 1){ this.add.apply(this, Array.prototype.slice.call(arguments, 1)); - this.end(); - } - return l; - }, - - - start : function(c){ - Ext.applyIf(c, {'labelAlign': this.active.labelAlign, 'labelWidth': this.active.labelWidth, 'itemCls': this.active.itemCls}); - this.active.stack.push(c); - c.ownerCt = this.active; - this.active = c; - return this; - }, - - - end : function(){ - if(this.active == this.root){ - return this; - } - this.active = this.active.ownerCt; - return this; - }, - - - add : function(){ - this.active.stack.push.apply(this.active.stack, arguments); - var r = []; - for(var i = 0, a = arguments, len = a.length; i < len; i++) { - if(a[i].isFormField){ - r.push(a[i]); - } - } - if(r.length > 0){ - Ext.form.Form.superclass.add.apply(this, r); - } - return this; - }, - - - render : function(ct){ - ct = Ext.get(ct); - var o = this.autoCreate || { - tag: 'form', - method : this.method || 'POST', - id : this.id || Ext.id() - }; - this.initEl(ct.createChild(o)); - - this.root.render(this.el); - - this.items.each(function(f){ - f.render('x-form-el-'+f.id); - }); - - if(this.buttons.length > 0){ - var tb = this.el.createChild({cls:'x-form-btns-ct', cn: { - cls:"x-form-btns x-form-btns-"+this.buttonAlign, - html:'
    ' - }}, null, true); - var tr = tb.getElementsByTagName('tr')[0]; - for(var i = 0, len = this.buttons.length; i < len; i++) { - var b = this.buttons[i]; - var td = document.createElement('td'); - td.className = 'x-form-btn-td'; - b.render(tr.appendChild(td)); - } - } - if(this.monitorValid){ this.startMonitoring(); - } - return this; - }, - - - addButton : function(config, handler, scope){ - var bc = { - handler: handler, - scope: scope, - minWidth: this.minButtonWidth, - hideParent:true - }; - if(typeof config == "string"){ - bc.text = config; - }else{ - Ext.apply(bc, config); - } - var btn = new Ext.Button(null, bc); - this.buttons.push(btn); - return btn; - }, - - - startMonitoring : function(){ - if(!this.bound){ - this.bound = true; - Ext.TaskMgr.start({ - run : this.bindHandler, - interval : this.monitorPoll || 200, - scope: this - }); - } - }, - - - stopMonitoring : function(){ - this.bound = false; - }, - - bindHandler : function(){ - if(!this.bound){ - return false; } - var valid = true; - this.items.each(function(f){ - if(!f.isValid(true)){ - valid = false; - return false; - } - }); - for(var i = 0, len = this.buttons.length; i < len; i++){ - var btn = this.buttons[i]; - if(btn.formBind === true && btn.disabled === valid){ - btn.setDisabled(!valid); - } - } - this.fireEvent('clientvalidation', this, valid); - } -}); - - -Ext.Form = Ext.form.Form; - - -Ext.form.Action = function(form, options){ - this.form = form; - this.options = options || {}; -}; - -Ext.form.Action.CLIENT_INVALID = 'client'; -Ext.form.Action.SERVER_INVALID = 'server'; -Ext.form.Action.CONNECT_FAILURE = 'connect'; -Ext.form.Action.LOAD_FAILURE = 'load'; - -Ext.form.Action.prototype = { - type : 'default', - failureType : undefined, - response : undefined, - result : undefined, - - run : function(options){ - - }, - - success : function(response){ - - }, - - handleResponse : function(response){ - - }, - - failure : function(response){ - this.response = response; - this.failureType = Ext.form.Action.CONNECT_FAILURE; - this.form.afterAction(this, false); - }, - - processResponse : function(response){ - this.response = response; - if(!response.responseText){ - return true; - } - this.result = this.handleResponse(response); - return this.result; - }, - - getUrl : function(appendParams){ - var url = this.options.url || this.form.url || this.form.el.dom.action; - if(appendParams){ - var p = this.getParams(); - if(p){ - url += (url.indexOf('?') != -1 ? '&' : '?') + p; - } - } - return url; - }, - - getMethod : function(){ - return (this.options.method || this.form.method || this.form.el.dom.method || 'POST').toUpperCase(); - }, - - getParams : function(){ - var bp = this.form.baseParams; - var p = this.options.params; - if(p){ - if(typeof p == "object"){ - p = Ext.urlEncode(Ext.applyIf(p, bp)); - }else if(typeof p == 'string' && bp){ - p += '&' + Ext.urlEncode(bp); - } - }else if(bp){ - p = Ext.urlEncode(bp); - } - return p; - }, - - createCallback : function(){ - return { - success: this.success, - failure: this.failure, - scope: this, - timeout: (this.form.timeout*1000), - upload: this.form.fileUpload ? this.success : undefined - }; - } -}; - -Ext.form.Action.Submit = function(form, options){ - Ext.form.Action.Submit.superclass.constructor.call(this, form, options); -}; - -Ext.extend(Ext.form.Action.Submit, Ext.form.Action, { - type : 'submit', - - run : function(){ - var o = this.options; - var isPost = this.getMethod() == 'POST'; - if(o.clientValidation === false || this.form.isValid()){ - Ext.lib.Ajax.formRequest( - this.form.el.dom, - this.getUrl(!isPost), - this.createCallback(), - isPost ? this.getParams() : null, this.form.fileUpload, Ext.SSL_SECURE_URL); - - }else if (o.clientValidation !== false){ this.failureType = Ext.form.Action.CLIENT_INVALID; - this.form.afterAction(this, false); - } - }, - - success : function(response){ - var result = this.processResponse(response); - if(result === true || result.success){ - this.form.afterAction(this, true); - return; - } - if(result.errors){ - this.form.markInvalid(result.errors); - this.failureType = Ext.form.Action.SERVER_INVALID; - } - this.form.afterAction(this, false); - }, - - handleResponse : function(response){ - if(this.form.errorReader){ - var rs = this.form.errorReader.read(response); - var errors = []; - if(rs.records){ - for(var i = 0, len = rs.records.length; i < len; i++) { - var r = rs.records[i]; - errors[i] = r.data; - } - } - if(errors.length < 1){ - errors = null; - } - return { - success : rs.success, - errors : errors - }; - } - return Ext.decode(response.responseText); - } -}); - - -Ext.form.Action.Load = function(form, options){ - Ext.form.Action.Load.superclass.constructor.call(this, form, options); - this.reader = this.form.reader; -}; - -Ext.extend(Ext.form.Action.Load, Ext.form.Action, { - type : 'load', - - run : function(){ - Ext.lib.Ajax.request( - this.getMethod(), - this.getUrl(false), - this.createCallback(), - this.getParams()); - }, - - success : function(response){ - var result = this.processResponse(response); - if(result === true || !result.success || !result.data){ - this.failureType = Ext.form.Action.LOAD_FAILURE; - this.form.afterAction(this, false); - return; - } - this.form.clearInvalid(); - this.form.setValues(result.data); - this.form.afterAction(this, true); - }, - - handleResponse : function(response){ - if(this.form.reader){ - var rs = this.form.reader.read(response); - var data = rs.records && rs.records[0] ? rs.records[0].data : null; - return { - success : rs.success, - data : data - }; - } - return Ext.decode(response.responseText); - } -}); - -Ext.form.Action.ACTION_TYPES = { - 'load' : Ext.form.Action.Load, - 'submit' : Ext.form.Action.Submit -}; - - -Ext.form.Layout = function(config){ - Ext.form.Layout.superclass.constructor.call(this, config); - this.stack = []; -}; - -Ext.extend(Ext.form.Layout, Ext.Component, { - - - - - - clear : true, - - labelSeparator : ':', - - hideLabels : false, - - defaultAutoCreate : {tag: 'div', cls: 'x-form-ct'}, - - onRender : function(ct, position){ - if(this.el){ this.el = Ext.get(this.el); - }else { var cfg = this.getAutoCreate(); - this.el = ct.createChild(cfg, position); - } - if(this.style){ - this.el.applyStyles(this.style); - } - if(this.labelAlign){ - this.el.addClass('x-form-label-'+this.labelAlign); - } - if(this.hideLabels){ - this.labelStyle = "display:none"; - this.elementStyle = "padding-left:0;"; - }else{ - if(typeof this.labelWidth == 'number'){ - this.labelStyle = "width:"+this.labelWidth+"px;"; - this.elementStyle = "padding-left:"+((this.labelWidth+(typeof this.labelPad == 'number' ? this.labelPad : 5))+'px')+";"; - } - if(this.labelAlign == 'top'){ - this.labelStyle = "width:auto;"; - this.elementStyle = "padding-left:0;"; - } - } - var stack = this.stack; - var slen = stack.length; - if(slen > 0){ - if(!this.fieldTpl){ - var t = new Ext.Template( - '
    ', - '', - '
    ', - '
    ', - '
    ' - ); - t.disableFormats = true; - t.compile(); - Ext.form.Layout.prototype.fieldTpl = t; - } - for(var i = 0; i < slen; i++) { - if(stack[i].isFormField){ - this.renderField(stack[i]); - }else{ - this.renderComponent(stack[i]); - } - } - } - if(this.clear){ - this.el.createChild({cls:'x-form-clear'}); - } - }, - - renderField : function(f){ - this.fieldTpl.append(this.el, [ - f.id, f.fieldLabel, - f.labelStyle||this.labelStyle||'', - this.elementStyle||'', - typeof f.labelSeparator == 'undefined' ? this.labelSeparator : f.labelSeparator, - f.itemCls||this.itemCls||'' - ]); - }, - - renderComponent : function(c){ - c.render(this.el); - } -}); - - -Ext.form.Column = function(config){ - Ext.form.Column.superclass.constructor.call(this, config); -}; - -Ext.extend(Ext.form.Column, Ext.form.Layout, { - - - - defaultAutoCreate : {tag: 'div', cls: 'x-form-ct x-form-column'}, - - onRender : function(ct, position){ - Ext.form.Column.superclass.onRender.call(this, ct, position); - if(this.width){ - this.el.setWidth(this.width); - } - } -}); - - -Ext.form.FieldSet = function(config){ - Ext.form.FieldSet.superclass.constructor.call(this, config); -}; - -Ext.extend(Ext.form.FieldSet, Ext.form.Layout, { - - - - defaultAutoCreate : {tag: 'fieldset', cn: {tag:'legend'}}, - - onRender : function(ct, position){ - Ext.form.FieldSet.superclass.onRender.call(this, ct, position); - if(this.legend){ - this.setLegend(this.legend); - } - }, - - setLegend : function(text){ - if(this.rendered){ - this.el.child('legend').update(text); - } - } -}); - -Ext.form.VTypes = function(){ - var alpha = /^[a-zA-Z_]+$/; - var alphanum = /^[a-zA-Z0-9_]+$/; - var email = /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/; - var url = /(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i; - - return { - - 'email' : function(v){ - return email.test(v); - }, - - 'emailText' : 'This field should be an e-mail address in the format "user@domain.com"', - - 'emailMask' : /[a-z0-9_\.\-@]/i, - - - 'url' : function(v){ - return url.test(v); - }, - - 'urlText' : 'This field should be a URL in the format "http:/'+'/www.domain.com"', - - - 'alpha' : function(v){ - return alpha.test(v); - }, - - 'alphaText' : 'This field should only contain letters and _', - - 'alphaMask' : /[a-z_]/i, - - - 'alphanum' : function(v){ - return alphanum.test(v); - }, - - 'alphanumText' : 'This field should only contain letters, numbers and _', - - 'alphanumMask' : /[a-z0-9_]/i - }; -}(); - -Ext.LayoutManager = function(container, config){ - Ext.LayoutManager.superclass.constructor.call(this); - this.el = Ext.get(container); - - if(this.el.dom == document.body && Ext.isIE && !config.allowScroll){ - document.body.scroll = "no"; - }else if(this.el.dom != document.body && this.el.getStyle('position') == 'static'){ - this.el.position('relative'); - } - this.id = this.el.id; - this.el.addClass("x-layout-container"); - - this.monitorWindowResize = true; - this.regions = {}; - this.addEvents({ - - "layout" : true, - - "regionresized" : true, - - "regioncollapsed" : true, - - "regionexpanded" : true - }); - this.updating = false; - Ext.EventManager.onWindowResize(this.onWindowResize, this, true); -}; - -Ext.extend(Ext.LayoutManager, Ext.util.Observable, { - - isUpdating : function(){ - return this.updating; - }, - - - beginUpdate : function(){ - this.updating = true; - }, - - - endUpdate : function(noLayout){ - this.updating = false; - if(!noLayout){ - this.layout(); - } - }, - - layout: function(){ - - }, - - onRegionResized : function(region, newSize){ - this.fireEvent("regionresized", region, newSize); - this.layout(); - }, - - onRegionCollapsed : function(region){ - this.fireEvent("regioncollapsed", region); - }, - - onRegionExpanded : function(region){ - this.fireEvent("regionexpanded", region); - }, - - - getViewSize : function(){ - var size; - if(this.el.dom != document.body){ - size = this.el.getSize(); - }else{ - size = {width: Ext.lib.Dom.getViewWidth(), height: Ext.lib.Dom.getViewHeight()}; - } - size.width -= this.el.getBorderWidth("lr")-this.el.getPadding("lr"); - size.height -= this.el.getBorderWidth("tb")-this.el.getPadding("tb"); - return size; - }, - - - getEl : function(){ - return this.el; - }, - - - getRegion : function(target){ - return this.regions[target.toLowerCase()]; - }, - - onWindowResize : function(){ - if(this.monitorWindowResize){ - this.layout(); - } - } -}); - -Ext.BorderLayout = function(container, config){ - config = config || {}; - Ext.BorderLayout.superclass.constructor.call(this, container, config); - this.factory = config.factory || Ext.BorderLayout.RegionFactory; - for(var i = 0, len = this.factory.validRegions.length; i < len; i++) { - var target = this.factory.validRegions[i]; - if(config[target]){ - this.addRegion(target, config[target]); - } - } -}; - -Ext.extend(Ext.BorderLayout, Ext.LayoutManager, { - - addRegion : function(target, config){ - if(!this.regions[target]){ - var r = this.factory.create(target, this, config); - this.bindRegion(target, r); - } - return this.regions[target]; - }, - - - bindRegion : function(name, r){ - this.regions[name] = r; - r.on("visibilitychange", this.layout, this); - r.on("paneladded", this.layout, this); - r.on("panelremoved", this.layout, this); - r.on("invalidated", this.layout, this); - r.on("resized", this.onRegionResized, this); - r.on("collapsed", this.onRegionCollapsed, this); - r.on("expanded", this.onRegionExpanded, this); - }, - - - layout : function(){ - if(this.updating) return; - var size = this.getViewSize(); - var w = size.width, h = size.height; - var centerW = w, centerH = h, centerY = 0, centerX = 0; - - - var rs = this.regions; - var n = rs["north"], s = rs["south"], west = rs["west"], e = rs["east"], c = rs["center"]; - - - - if(n && n.isVisible()){ - var b = n.getBox(); - var m = n.getMargins(); - b.width = w - (m.left+m.right); - b.x = m.left; - b.y = m.top; - centerY = b.height + b.y + m.bottom; - centerH -= centerY; - n.updateBox(this.safeBox(b)); - } - if(s && s.isVisible()){ - var b = s.getBox(); - var m = s.getMargins(); - b.width = w - (m.left+m.right); - b.x = m.left; - var totalHeight = (b.height + m.top + m.bottom); - b.y = h - totalHeight + m.top; - centerH -= totalHeight; - s.updateBox(this.safeBox(b)); - } - if(west && west.isVisible()){ - var b = west.getBox(); - var m = west.getMargins(); - b.height = centerH - (m.top+m.bottom); - b.x = m.left; - b.y = centerY + m.top; - var totalWidth = (b.width + m.left + m.right); - centerX += totalWidth; - centerW -= totalWidth; - west.updateBox(this.safeBox(b)); - } - if(e && e.isVisible()){ - var b = e.getBox(); - var m = e.getMargins(); - b.height = centerH - (m.top+m.bottom); - var totalWidth = (b.width + m.left + m.right); - b.x = w - totalWidth + m.left; - b.y = centerY + m.top; - centerW -= totalWidth; - e.updateBox(this.safeBox(b)); - } - if(c){ - var m = c.getMargins(); - var centerBox = { - x: centerX + m.left, - y: centerY + m.top, - width: centerW - (m.left+m.right), - height: centerH - (m.top+m.bottom) - }; - - - - c.updateBox(this.safeBox(centerBox)); - } - this.el.repaint(); - this.fireEvent("layout", this); - }, - - safeBox : function(box){ - box.width = Math.max(0, box.width); - box.height = Math.max(0, box.height); - return box; - }, - - - add : function(target, panel){ - target = target.toLowerCase(); - return this.regions[target].add(panel); - }, - - - remove : function(target, panel){ - target = target.toLowerCase(); - return this.regions[target].remove(panel); - }, - - - findPanel : function(panelId){ - var rs = this.regions; - for(var target in rs){ - if(typeof rs[target] != "function"){ - var p = rs[target].getPanel(panelId); - if(p){ - return p; - } - } - } - return null; - }, - - - showPanel : function(panelId) { - var rs = this.regions; - for(var target in rs){ - var r = rs[target]; - if(typeof r != "function"){ - if(r.hasPanel(panelId)){ - return r.showPanel(panelId); - } - } - } - return null; - }, - - - restoreState : function(provider){ - if(!provider){ - provider = Ext.state.Manager; - } - var sm = new Ext.LayoutStateManager(); - sm.init(this, provider); - }, - - - batchAdd : function(regions){ - this.beginUpdate(); - for(var rname in regions){ - var lr = this.regions[rname]; - if(lr){ - this.addTypedPanels(lr, regions[rname]); - } - } - this.endUpdate(); - }, - - - addTypedPanels : function(lr, ps){ - if(typeof ps == 'string'){ - lr.add(new Ext.ContentPanel(ps)); - } - else if(ps instanceof Array){ - for(var i =0, len = ps.length; i < len; i++){ - this.addTypedPanels(lr, ps[i]); - } - } - else if(!ps.events){ - var el = ps.el; - delete ps.el; - lr.add(new Ext.ContentPanel(el || Ext.id(), ps)); - } - else { - lr.add(ps); - } - } -}); - -Ext.BorderLayout.create = function(config, targetEl){ - var layout = new Ext.BorderLayout(targetEl || document.body, config); - layout.beginUpdate(); - var regions = Ext.BorderLayout.RegionFactory.validRegions; - for(var j = 0, jlen = regions.length; j < jlen; j++){ - var lr = regions[j]; - if(layout.regions[lr] && config[lr].panels){ - var r = layout.regions[lr]; - var ps = config[lr].panels; - layout.addTypedPanels(r, ps); - } - } - layout.endUpdate(); - return layout; -}; - -Ext.BorderLayout.RegionFactory = { - validRegions : ["north","south","east","west","center"], - - create : function(target, mgr, config){ - target = target.toLowerCase(); - if(config.lightweight || config.basic){ - return new Ext.BasicLayoutRegion(mgr, config, target); - } - switch(target){ - case "north": - return new Ext.NorthLayoutRegion(mgr, config); - case "south": - return new Ext.SouthLayoutRegion(mgr, config); - case "east": - return new Ext.EastLayoutRegion(mgr, config); - case "west": - return new Ext.WestLayoutRegion(mgr, config); - case "center": - return new Ext.CenterLayoutRegion(mgr, config); - } - throw 'Layout region "'+target+'" not supported.'; - } -}; - -Ext.BasicLayoutRegion = function(mgr, config, pos, skipConfig){ - this.mgr = mgr; - this.position = pos; - this.events = { - - "beforeremove" : true, - - "invalidated" : true, - - "visibilitychange" : true, - - "paneladded" : true, - - "panelremoved" : true, - - "collapsed" : true, - - "expanded" : true, - - "slideshow" : true, - - "slidehide" : true, - - "panelactivated" : true, - - "resized" : true - }; - - this.panels = new Ext.util.MixedCollection(); - this.panels.getKey = this.getPanelId.createDelegate(this); - this.box = null; - this.activePanel = null; - if(skipConfig !== true){ - this.applyConfig(config); - } -}; - -Ext.extend(Ext.BasicLayoutRegion, Ext.util.Observable, { - getPanelId : function(p){ - return p.getId(); - }, - - applyConfig : function(config){ - this.margins = config.margins || this.margins || {top: 0, left: 0, right:0, bottom: 0}; - this.config = config; - }, - - - resizeTo : function(newSize){ - var el = this.el ? this.el : - (this.activePanel ? this.activePanel.getEl() : null); - if(el){ - switch(this.position){ - case "east": - case "west": - el.setWidth(newSize); - this.fireEvent("resized", this, newSize); - break; - case "north": - case "south": - el.setHeight(newSize); - this.fireEvent("resized", this, newSize); - break; - } - } - }, - - getBox : function(){ - return this.activePanel ? this.activePanel.getEl().getBox(false, true) : null; - }, - - getMargins : function(){ - return this.margins; - }, - - updateBox : function(box){ - this.box = box; - var el = this.activePanel.getEl(); - el.dom.style.left = box.x + "px"; - el.dom.style.top = box.y + "px"; - this.activePanel.setSize(box.width, box.height); - }, - - - getEl : function(){ - return this.activePanel; - }, - - - isVisible : function(){ - return this.activePanel ? true : false; - }, - - setActivePanel : function(panel){ - panel = this.getPanel(panel); - if(this.activePanel && this.activePanel != panel){ - this.activePanel.setActiveState(false); - this.activePanel.getEl().setLeftTop(-10000,-10000); - } - this.activePanel = panel; - panel.setActiveState(true); - if(this.box){ - panel.setSize(this.box.width, this.box.height); - } - this.fireEvent("panelactivated", this, panel); - this.fireEvent("invalidated"); - }, - - - showPanel : function(panel){ - if(panel = this.getPanel(panel)){ - this.setActivePanel(panel); - } - return panel; - }, - - - getActivePanel : function(){ - return this.activePanel; - }, - - - add : function(panel){ - if(arguments.length > 1){ - for(var i = 0, len = arguments.length; i < len; i++) { - this.add(arguments[i]); - } - return null; - } - if(this.hasPanel(panel)){ - this.showPanel(panel); - return panel; - } - var el = panel.getEl(); - if(el.dom.parentNode != this.mgr.el.dom){ - this.mgr.el.dom.appendChild(el.dom); - } - if(panel.setRegion){ - panel.setRegion(this); - } - this.panels.add(panel); - el.setStyle("position", "absolute"); - if(!panel.background){ - this.setActivePanel(panel); - if(this.config.initialSize && this.panels.getCount()==1){ - this.resizeTo(this.config.initialSize); - } - } - this.fireEvent("paneladded", this, panel); - return panel; - }, - - - hasPanel : function(panel){ - if(typeof panel == "object"){ - panel = panel.getId(); - } - return this.getPanel(panel) ? true : false; - }, - - - remove : function(panel, preservePanel){ - panel = this.getPanel(panel); - if(!panel){ - return null; - } - var e = {}; - this.fireEvent("beforeremove", this, panel, e); - if(e.cancel === true){ - return null; - } - var panelId = panel.getId(); - this.panels.removeKey(panelId); - return panel; - }, - - - getPanel : function(id){ - if(typeof id == "object"){ - return id; - } - return this.panels.get(id); - }, - - - getPosition: function(){ - return this.position; - } -}); - -Ext.LayoutRegion = function(mgr, config, pos){ - Ext.LayoutRegion.superclass.constructor.call(this, mgr, config, pos, true); - var dh = Ext.DomHelper; - - this.el = dh.append(mgr.el.dom, {tag: "div", cls: "x-layout-panel x-layout-panel-" + this.position}, true); - - - this.titleEl = dh.append(this.el.dom, {tag: "div", unselectable: "on", cls: "x-unselectable x-layout-panel-hd x-layout-title-"+this.position, children:[ - {tag: "span", cls: "x-unselectable x-layout-panel-hd-text", unselectable: "on", html: " "}, - {tag: "div", cls: "x-unselectable x-layout-panel-hd-tools", unselectable: "on"} - ]}, true); - this.titleEl.enableDisplayMode(); - - this.titleTextEl = this.titleEl.dom.firstChild; - this.tools = Ext.get(this.titleEl.dom.childNodes[1], true); - this.closeBtn = this.createTool(this.tools.dom, "x-layout-close"); - this.closeBtn.enableDisplayMode(); - this.closeBtn.on("click", this.closeClicked, this); - this.closeBtn.hide(); - - this.createBody(config); - this.visible = true; - this.collapsed = false; - - if(config.hideWhenEmpty){ - this.hide(); - this.on("paneladded", this.validateVisibility, this); - this.on("panelremoved", this.validateVisibility, this); - } - this.applyConfig(config); -}; - -Ext.extend(Ext.LayoutRegion, Ext.BasicLayoutRegion, { - - createBody : function(){ - - this.bodyEl = this.el.createChild({tag: "div", cls: "x-layout-panel-body"}); - }, - - applyConfig : function(c){ - if(c.collapsible && this.position != "center" && !this.collapsedEl){ - var dh = Ext.DomHelper; - if(c.titlebar !== false){ - this.collapseBtn = this.createTool(this.tools.dom, "x-layout-collapse-"+this.position); - this.collapseBtn.on("click", this.collapse, this); - this.collapseBtn.enableDisplayMode(); - - if(c.showPin === true || this.showPin){ - this.stickBtn = this.createTool(this.tools.dom, "x-layout-stick"); - this.stickBtn.enableDisplayMode(); - this.stickBtn.on("click", this.expand, this); - this.stickBtn.hide(); - } - } - - this.collapsedEl = dh.append(this.mgr.el.dom, {cls: "x-layout-collapsed x-layout-collapsed-"+this.position, children:[ - {cls: "x-layout-collapsed-tools", children:[{cls: "x-layout-ctools-inner"}]} - ]}, true); - if(c.floatable !== false){ - this.collapsedEl.addClassOnOver("x-layout-collapsed-over"); - this.collapsedEl.on("click", this.collapseClick, this); - } - - if(c.collapsedTitle && (this.position == "north" || this.position== "south")) { - this.collapsedTitleTextEl = dh.append(this.collapsedEl.dom, {tag: "div", cls: "x-unselectable x-layout-panel-hd-text", - id: "message", unselectable: "on", style:{"float":"left"}}); - this.collapsedTitleTextEl.innerHTML = c.collapsedTitle; - } - this.expandBtn = this.createTool(this.collapsedEl.dom.firstChild.firstChild, "x-layout-expand-"+this.position); - this.expandBtn.on("click", this.expand, this); - } - if(this.collapseBtn){ - this.collapseBtn.setVisible(c.collapsible == true); - } - this.cmargins = c.cmargins || this.cmargins || - (this.position == "west" || this.position == "east" ? - {top: 0, left: 2, right:2, bottom: 0} : - {top: 2, left: 0, right:0, bottom: 2}); - this.margins = c.margins || this.margins || {top: 0, left: 0, right:0, bottom: 0}; - this.bottomTabs = c.tabPosition != "top"; - this.autoScroll = c.autoScroll || false; - if(this.autoScroll){ - this.bodyEl.setStyle("overflow", "auto"); - }else{ - this.bodyEl.setStyle("overflow", "hidden"); - } - - if((!c.titlebar && !c.title) || c.titlebar === false){ - this.titleEl.hide(); - }else{ - this.titleEl.show(); - if(c.title){ - this.titleTextEl.innerHTML = c.title; - } - } - - this.duration = c.duration || .30; - this.slideDuration = c.slideDuration || .45; - this.config = c; - if(c.collapsed){ - this.collapse(true); - } - if(c.hidden){ - this.hide(); - } - }, - - isVisible : function(){ - return this.visible; - }, - - - setCollapsedTitle : function(title){ - title = title || " "; - if(this.collapsedTitleTextEl){ - this.collapsedTitleTextEl.innerHTML = title; - } - }, - - getBox : function(){ - var b; - if(!this.collapsed){ - b = this.el.getBox(false, true); - }else{ - b = this.collapsedEl.getBox(false, true); - } - return b; - }, - - getMargins : function(){ - return this.collapsed ? this.cmargins : this.margins; - }, - - highlight : function(){ - this.el.addClass("x-layout-panel-dragover"); - }, - - unhighlight : function(){ - this.el.removeClass("x-layout-panel-dragover"); - }, - - updateBox : function(box){ - this.box = box; - if(!this.collapsed){ - this.el.dom.style.left = box.x + "px"; - this.el.dom.style.top = box.y + "px"; - this.updateBody(box.width, box.height); - }else{ - this.collapsedEl.dom.style.left = box.x + "px"; - this.collapsedEl.dom.style.top = box.y + "px"; - this.collapsedEl.setSize(box.width, box.height); - } - if(this.tabs){ - this.tabs.autoSizeTabs(); - } - }, - - updateBody : function(w, h){ - if(w !== null){ - this.el.setWidth(w); - w -= this.el.getBorderWidth("rl"); - if(this.config.adjustments){ - w += this.config.adjustments[0]; - } - } - if(h !== null){ - this.el.setHeight(h); - h = this.titleEl && this.titleEl.isDisplayed() ? h - (this.titleEl.getHeight()||0) : h; - h -= this.el.getBorderWidth("tb"); - if(this.config.adjustments){ - h += this.config.adjustments[1]; - } - this.bodyEl.setHeight(h); - if(this.tabs){ - h = this.tabs.syncHeight(h); - } - } - if(this.panelSize){ - w = w !== null ? w : this.panelSize.width; - h = h !== null ? h : this.panelSize.height; - } - if(this.activePanel){ - var el = this.activePanel.getEl(); - w = w !== null ? w : el.getWidth(); - h = h !== null ? h : el.getHeight(); - this.panelSize = {width: w, height: h}; - this.activePanel.setSize(w, h); - } - if(Ext.isIE && this.tabs){ - this.tabs.el.repaint(); - } - }, - - - getEl : function(){ - return this.el; - }, - - - hide : function(){ - if(!this.collapsed){ - this.el.dom.style.left = "-2000px"; - this.el.hide(); - }else{ - this.collapsedEl.dom.style.left = "-2000px"; - this.collapsedEl.hide(); - } - this.visible = false; - this.fireEvent("visibilitychange", this, false); - }, - - - show : function(){ - if(!this.collapsed){ - this.el.show(); - }else{ - this.collapsedEl.show(); - } - this.visible = true; - this.fireEvent("visibilitychange", this, true); - }, - - closeClicked : function(){ - if(this.activePanel){ - this.remove(this.activePanel); - } - }, - - collapseClick : function(e){ - if(this.isSlid){ - e.stopPropagation(); - this.slideIn(); - }else{ - e.stopPropagation(); - this.slideOut(); - } - }, - - - collapse : function(skipAnim){ - if(this.collapsed) return; - this.collapsed = true; - if(this.split){ - this.split.el.hide(); - } - if(this.config.animate && skipAnim !== true){ - this.fireEvent("invalidated", this); - this.animateCollapse(); - }else{ - this.el.setLocation(-20000,-20000); - this.el.hide(); - this.collapsedEl.show(); - this.fireEvent("collapsed", this); - this.fireEvent("invalidated", this); - } - }, - - animateCollapse : function(){ - - }, - - - expand : function(e, skipAnim){ - if(e) e.stopPropagation(); - if(!this.collapsed || this.el.hasActiveFx()) return; - if(this.isSlid){ - this.afterSlideIn(); - skipAnim = true; - } - this.collapsed = false; - if(this.config.animate && skipAnim !== true){ - this.animateExpand(); - }else{ - this.el.show(); - if(this.split){ - this.split.el.show(); - } - this.collapsedEl.setLocation(-2000,-2000); - this.collapsedEl.hide(); - this.fireEvent("invalidated", this); - this.fireEvent("expanded", this); - } - }, - - animateExpand : function(){ - - }, - - initTabs : function(){ - this.bodyEl.setStyle("overflow", "hidden"); - var ts = new Ext.TabPanel(this.bodyEl.dom, { - tabPosition: this.bottomTabs ? 'bottom' : 'top', - disableTooltips: this.config.disableTabTips - }); - if(this.config.hideTabs){ - ts.stripWrap.setDisplayed(false); - } - this.tabs = ts; - ts.resizeTabs = this.config.resizeTabs === true; - ts.minTabWidth = this.config.minTabWidth || 40; - ts.maxTabWidth = this.config.maxTabWidth || 250; - ts.preferredTabWidth = this.config.preferredTabWidth || 150; - ts.monitorResize = false; - ts.bodyEl.setStyle("overflow", this.config.autoScroll ? "auto" : "hidden"); - ts.bodyEl.addClass('x-layout-tabs-body'); - this.panels.each(this.initPanelAsTab, this); - }, - - initPanelAsTab : function(panel){ - var ti = this.tabs.addTab(panel.getEl().id, panel.getTitle(), null, - this.config.closeOnTab && panel.isClosable()); - if(panel.tabTip !== undefined){ - ti.setTooltip(panel.tabTip); - } - ti.on("activate", function(){ - this.setActivePanel(panel); - }, this); - if(this.config.closeOnTab){ - ti.on("beforeclose", function(t, e){ - e.cancel = true; - this.remove(panel); - }, this); - } - return ti; - }, - - updatePanelTitle : function(panel, title){ - if(this.activePanel == panel){ - this.updateTitle(title); - } - if(this.tabs){ - var ti = this.tabs.getTab(panel.getEl().id); - ti.setText(title); - if(panel.tabTip !== undefined){ - ti.setTooltip(panel.tabTip); - } - } - }, - - updateTitle : function(title){ - if(this.titleTextEl && !this.config.title){ - this.titleTextEl.innerHTML = (typeof title != "undefined" && title.length > 0 ? title : " "); - } - }, - - setActivePanel : function(panel){ - panel = this.getPanel(panel); - if(this.activePanel && this.activePanel != panel){ - this.activePanel.setActiveState(false); - } - this.activePanel = panel; - panel.setActiveState(true); - if(this.panelSize){ - panel.setSize(this.panelSize.width, this.panelSize.height); - } - if(this.closeBtn){ - this.closeBtn.setVisible(!this.config.closeOnTab && !this.isSlid && panel.isClosable()); - } - this.updateTitle(panel.getTitle()); - if(this.tabs){ - this.fireEvent("invalidated", this); - } - this.fireEvent("panelactivated", this, panel); - }, - - - showPanel : function(panel){ - if(panel = this.getPanel(panel)){ - if(this.tabs){ - var tab = this.tabs.getTab(panel.getEl().id); - if(tab.isHidden()){ - this.tabs.unhideTab(tab.id); - } - tab.activate(); - }else{ - this.setActivePanel(panel); - } - } - return panel; - }, - - - getActivePanel : function(){ - return this.activePanel; - }, - - validateVisibility : function(){ - if(this.panels.getCount() < 1){ - this.updateTitle(" "); - this.closeBtn.hide(); - this.hide(); - }else{ - if(!this.isVisible()){ - this.show(); - } - } - }, - - - add : function(panel){ - if(arguments.length > 1){ - for(var i = 0, len = arguments.length; i < len; i++) { - this.add(arguments[i]); - } - return null; - } - if(this.hasPanel(panel)){ - this.showPanel(panel); - return panel; - } - panel.setRegion(this); - this.panels.add(panel); - if(this.panels.getCount() == 1 && !this.config.alwaysShowTabs){ - this.bodyEl.dom.appendChild(panel.getEl().dom); - if(panel.background !== true){ - this.setActivePanel(panel); - } - this.fireEvent("paneladded", this, panel); - return panel; - } - if(!this.tabs){ - this.initTabs(); - }else{ - this.initPanelAsTab(panel); - } - if(panel.background !== true){ - this.tabs.activate(panel.getEl().id); - } - this.fireEvent("paneladded", this, panel); - return panel; - }, - - - hidePanel : function(panel){ - if(this.tabs && (panel = this.getPanel(panel))){ - this.tabs.hideTab(panel.getEl().id); - } - }, - - - unhidePanel : function(panel){ - if(this.tabs && (panel = this.getPanel(panel))){ - this.tabs.unhideTab(panel.getEl().id); - } - }, - - clearPanels : function(){ - while(this.panels.getCount() > 0){ - this.remove(this.panels.first()); - } - }, - - - remove : function(panel, preservePanel){ - panel = this.getPanel(panel); - if(!panel){ - return null; - } - var e = {}; - this.fireEvent("beforeremove", this, panel, e); - if(e.cancel === true){ - return null; - } - preservePanel = (typeof preservePanel != "undefined" ? preservePanel : (this.config.preservePanels === true || panel.preserve === true)); - var panelId = panel.getId(); - this.panels.removeKey(panelId); - if(preservePanel){ - document.body.appendChild(panel.getEl().dom); - } - if(this.tabs){ - this.tabs.removeTab(panel.getEl().id); - }else if (!preservePanel){ - this.bodyEl.dom.removeChild(panel.getEl().dom); - } - if(this.panels.getCount() == 1 && this.tabs && !this.config.alwaysShowTabs){ - var p = this.panels.first(); - var tempEl = document.createElement("div"); - tempEl.appendChild(p.getEl().dom); - this.bodyEl.update(""); - this.bodyEl.dom.appendChild(p.getEl().dom); - tempEl = null; - this.updateTitle(p.getTitle()); - this.tabs = null; - this.bodyEl.setStyle("overflow", this.config.autoScroll ? "auto" : "hidden"); - this.setActivePanel(p); - } - panel.setRegion(null); - if(this.activePanel == panel){ - this.activePanel = null; - } - if(this.config.autoDestroy !== false && preservePanel !== true){ - try{panel.destroy();}catch(e){} - } - this.fireEvent("panelremoved", this, panel); - return panel; - }, - - - getTabs : function(){ - return this.tabs; - }, - - createTool : function(parentEl, className){ - var btn = Ext.DomHelper.append(parentEl, {tag: "div", cls: "x-layout-tools-button", - children: [{tag: "div", cls: "x-layout-tools-button-inner " + className, html: " "}]}, true); - btn.addClassOnOver("x-layout-tools-button-over"); - return btn; - } -}); - -Ext.SplitLayoutRegion = function(mgr, config, pos, cursor){ - this.cursor = cursor; - Ext.SplitLayoutRegion.superclass.constructor.call(this, mgr, config, pos); -}; - -Ext.extend(Ext.SplitLayoutRegion, Ext.LayoutRegion, { - splitTip : "Drag to resize.", - collapsibleSplitTip : "Drag to resize. Double click to hide.", - useSplitTips : false, - - applyConfig : function(config){ - Ext.SplitLayoutRegion.superclass.applyConfig.call(this, config); - if(config.split){ - if(!this.split){ - var splitEl = Ext.DomHelper.append(this.mgr.el.dom, - {tag: "div", id: this.el.id + "-split", cls: "x-layout-split x-layout-split-"+this.position, html: " "}); - - this.split = new Ext.SplitBar(splitEl, this.el, this.orientation); - this.split.on("moved", this.onSplitMove, this); - this.split.useShim = config.useShim === true; - this.split.getMaximumSize = this[this.position == 'north' || this.position == 'south' ? 'getVMaxSize' : 'getHMaxSize'].createDelegate(this); - if(this.useSplitTips){ - this.split.el.dom.title = config.collapsible ? this.collapsibleSplitTip : this.splitTip; - } - if(config.collapsible){ - this.split.el.on("dblclick", this.collapse, this); - } - } - if(typeof config.minSize != "undefined"){ - this.split.minSize = config.minSize; - } - if(typeof config.maxSize != "undefined"){ - this.split.maxSize = config.maxSize; - } - if(config.hideWhenEmpty || config.hidden){ - this.hideSplitter(); - } - } - }, - - getHMaxSize : function(){ - var cmax = this.config.maxSize || 10000; - var center = this.mgr.getRegion("center"); - return Math.min(cmax, (this.el.getWidth()+center.getEl().getWidth())-center.getMinWidth()); - }, - - getVMaxSize : function(){ - var cmax = this.config.maxSize || 10000; - var center = this.mgr.getRegion("center"); - return Math.min(cmax, (this.el.getHeight()+center.getEl().getHeight())-center.getMinHeight()); - }, - - onSplitMove : function(split, newSize){ - this.fireEvent("resized", this, newSize); - }, - - - getSplitBar : function(){ - return this.split; - }, - - hide : function(){ - this.hideSplitter(); - Ext.SplitLayoutRegion.superclass.hide.call(this); - }, - - hideSplitter : function(){ - if(this.split){ - this.split.el.setLocation(-2000,-2000); - this.split.el.hide(); - } - }, - - show : function(){ - if(this.split){ - this.split.el.show(); - } - Ext.SplitLayoutRegion.superclass.show.call(this); - }, - - beforeSlide: function(){ - if(Ext.isGecko){ - this.bodyEl.clip(); - if(this.tabs) this.tabs.bodyEl.clip(); - if(this.activePanel){ - this.activePanel.getEl().clip(); - - if(this.activePanel.beforeSlide){ - this.activePanel.beforeSlide(); - } - } - } - }, - - afterSlide : function(){ - if(Ext.isGecko){ - this.bodyEl.unclip(); - if(this.tabs) this.tabs.bodyEl.unclip(); - if(this.activePanel){ - this.activePanel.getEl().unclip(); - if(this.activePanel.afterSlide){ - this.activePanel.afterSlide(); - } - } - } - }, - - initAutoHide : function(){ - if(this.autoHide !== false){ - if(!this.autoHideHd){ - var st = new Ext.util.DelayedTask(this.slideIn, this); - this.autoHideHd = { - "mouseout": function(e){ - if(!e.within(this.el, true)){ - st.delay(500); - } - }, - "mouseover" : function(e){ - st.cancel(); - }, - scope : this - }; - } - this.el.on(this.autoHideHd); - } - }, - - clearAutoHide : function(){ - if(this.autoHide !== false){ - this.el.un("mouseout", this.autoHideHd.mouseout); - this.el.un("mouseover", this.autoHideHd.mouseover); - } - }, - - clearMonitor : function(){ - Ext.get(document).un("click", this.slideInIf, this); - }, - - - slideOut : function(){ - if(this.isSlid || this.el.hasActiveFx()){ - return; - } - this.isSlid = true; - if(this.collapseBtn){ - this.collapseBtn.hide(); - } - this.closeBtnState = this.closeBtn.getStyle('display'); - this.closeBtn.hide(); - if(this.stickBtn){ - this.stickBtn.show(); - } - this.el.show(); - this.el.alignTo(this.collapsedEl, this.getCollapseAnchor()); - this.beforeSlide(); - this.el.setStyle("z-index", 20000); - this.el.slideIn(this.getSlideAnchor(), { - callback: function(){ - this.afterSlide(); - this.initAutoHide(); - Ext.get(document).on("click", this.slideInIf, this); - this.fireEvent("slideshow", this); - }, - scope: this, - block: true - }); - }, - - afterSlideIn : function(){ - this.clearAutoHide(); - this.isSlid = false; - this.clearMonitor(); - this.el.setStyle("z-index", ""); - if(this.collapseBtn){ - this.collapseBtn.show(); - } - this.closeBtn.setStyle('display', this.closeBtnState); - if(this.stickBtn){ - this.stickBtn.hide(); - } - this.fireEvent("slidehide", this); - }, - - slideIn : function(cb){ - if(!this.isSlid || this.el.hasActiveFx()){ - Ext.callback(cb); - return; - } - this.isSlid = false; - this.beforeSlide(); - this.el.slideOut(this.getSlideAnchor(), { - callback: function(){ - this.el.setLeftTop(-10000, -10000); - this.afterSlide(); - this.afterSlideIn(); - Ext.callback(cb); - }, - scope: this, - block: true - }); - }, - - slideInIf : function(e){ - if(!e.within(this.el)){ - this.slideIn(); - } - }, - - animateCollapse : function(){ - this.beforeSlide(); - this.el.setStyle("z-index", 20000); - var anchor = this.getSlideAnchor(); - this.el.slideOut(anchor, { - callback : function(){ - this.el.setStyle("z-index", ""); - this.collapsedEl.slideIn(anchor, {duration:.3}); - this.afterSlide(); - this.el.setLocation(-10000,-10000); - this.el.hide(); - this.fireEvent("collapsed", this); - }, - scope: this, - block: true - }); - }, - - animateExpand : function(){ - this.beforeSlide(); - this.el.alignTo(this.collapsedEl, this.getCollapseAnchor(), this.getExpandAdj()); - this.el.setStyle("z-index", 20000); - this.collapsedEl.hide({ - duration:.1 - }); - this.el.slideIn(this.getSlideAnchor(), { - callback : function(){ - this.el.setStyle("z-index", ""); - this.afterSlide(); - if(this.split){ - this.split.el.show(); - } - this.fireEvent("invalidated", this); - this.fireEvent("expanded", this); - }, - scope: this, - block: true - }); - }, - - anchors : { - "west" : "left", - "east" : "right", - "north" : "top", - "south" : "bottom" - }, - - sanchors : { - "west" : "l", - "east" : "r", - "north" : "t", - "south" : "b" - }, - - canchors : { - "west" : "tl-tr", - "east" : "tr-tl", - "north" : "tl-bl", - "south" : "bl-tl" - }, - - getAnchor : function(){ - return this.anchors[this.position]; - }, - - getCollapseAnchor : function(){ - return this.canchors[this.position]; - }, - - getSlideAnchor : function(){ - return this.sanchors[this.position]; - }, - - getAlignAdj : function(){ - var cm = this.cmargins; - switch(this.position){ - case "west": - return [0, 0]; - break; - case "east": - return [0, 0]; - break; - case "north": - return [0, 0]; - break; - case "south": - return [0, 0]; - break; - } - }, - - getExpandAdj : function(){ - var c = this.collapsedEl, cm = this.cmargins; - switch(this.position){ - case "west": - return [-(cm.right+c.getWidth()+cm.left), 0]; - break; - case "east": - return [cm.right+c.getWidth()+cm.left, 0]; - break; - case "north": - return [0, -(cm.top+cm.bottom+c.getHeight())]; - break; - case "south": - return [0, cm.top+cm.bottom+c.getHeight()]; - break; - } - } -}); - -Ext.CenterLayoutRegion = function(mgr, config){ - Ext.CenterLayoutRegion.superclass.constructor.call(this, mgr, config, "center"); - this.visible = true; - this.minWidth = config.minWidth || 20; - this.minHeight = config.minHeight || 20; -}; - -Ext.extend(Ext.CenterLayoutRegion, Ext.LayoutRegion, { - hide : function(){ - - }, - - show : function(){ - - }, - - getMinWidth: function(){ - return this.minWidth; - }, - - getMinHeight: function(){ - return this.minHeight; - } -}); - - -Ext.NorthLayoutRegion = function(mgr, config){ - Ext.NorthLayoutRegion.superclass.constructor.call(this, mgr, config, "north", "n-resize"); - if(this.split){ - this.split.placement = Ext.SplitBar.TOP; - this.split.orientation = Ext.SplitBar.VERTICAL; - this.split.el.addClass("x-layout-split-v"); - } - var size = config.initialSize || config.height; - if(typeof size != "undefined"){ - this.el.setHeight(size); - } -}; -Ext.extend(Ext.NorthLayoutRegion, Ext.SplitLayoutRegion, { - orientation: Ext.SplitBar.VERTICAL, - getBox : function(){ - if(this.collapsed){ - return this.collapsedEl.getBox(); - } - var box = this.el.getBox(); - if(this.split){ - box.height += this.split.el.getHeight(); - } - return box; - }, - - updateBox : function(box){ - if(this.split && !this.collapsed){ - box.height -= this.split.el.getHeight(); - this.split.el.setLeft(box.x); - this.split.el.setTop(box.y+box.height); - this.split.el.setWidth(box.width); - } - if(this.collapsed){ - this.updateBody(box.width, null); - } - Ext.NorthLayoutRegion.superclass.updateBox.call(this, box); - } -}); - -Ext.SouthLayoutRegion = function(mgr, config){ - Ext.SouthLayoutRegion.superclass.constructor.call(this, mgr, config, "south", "s-resize"); - if(this.split){ - this.split.placement = Ext.SplitBar.BOTTOM; - this.split.orientation = Ext.SplitBar.VERTICAL; - this.split.el.addClass("x-layout-split-v"); - } - var size = config.initialSize || config.height; - if(typeof size != "undefined"){ - this.el.setHeight(size); - } -}; -Ext.extend(Ext.SouthLayoutRegion, Ext.SplitLayoutRegion, { - orientation: Ext.SplitBar.VERTICAL, - getBox : function(){ - if(this.collapsed){ - return this.collapsedEl.getBox(); - } - var box = this.el.getBox(); - if(this.split){ - var sh = this.split.el.getHeight(); - box.height += sh; - box.y -= sh; - } - return box; - }, - - updateBox : function(box){ - if(this.split && !this.collapsed){ - var sh = this.split.el.getHeight(); - box.height -= sh; - box.y += sh; - this.split.el.setLeft(box.x); - this.split.el.setTop(box.y-sh); - this.split.el.setWidth(box.width); - } - if(this.collapsed){ - this.updateBody(box.width, null); - } - Ext.SouthLayoutRegion.superclass.updateBox.call(this, box); - } -}); - -Ext.EastLayoutRegion = function(mgr, config){ - Ext.EastLayoutRegion.superclass.constructor.call(this, mgr, config, "east", "e-resize"); - if(this.split){ - this.split.placement = Ext.SplitBar.RIGHT; - this.split.orientation = Ext.SplitBar.HORIZONTAL; - this.split.el.addClass("x-layout-split-h"); - } - var size = config.initialSize || config.width; - if(typeof size != "undefined"){ - this.el.setWidth(size); - } -}; -Ext.extend(Ext.EastLayoutRegion, Ext.SplitLayoutRegion, { - orientation: Ext.SplitBar.HORIZONTAL, - getBox : function(){ - if(this.collapsed){ - return this.collapsedEl.getBox(); - } - var box = this.el.getBox(); - if(this.split){ - var sw = this.split.el.getWidth(); - box.width += sw; - box.x -= sw; - } - return box; - }, - - updateBox : function(box){ - if(this.split && !this.collapsed){ - var sw = this.split.el.getWidth(); - box.width -= sw; - this.split.el.setLeft(box.x); - this.split.el.setTop(box.y); - this.split.el.setHeight(box.height); - box.x += sw; - } - if(this.collapsed){ - this.updateBody(null, box.height); - } - Ext.EastLayoutRegion.superclass.updateBox.call(this, box); - } -}); - -Ext.WestLayoutRegion = function(mgr, config){ - Ext.WestLayoutRegion.superclass.constructor.call(this, mgr, config, "west", "w-resize"); - if(this.split){ - this.split.placement = Ext.SplitBar.LEFT; - this.split.orientation = Ext.SplitBar.HORIZONTAL; - this.split.el.addClass("x-layout-split-h"); - } - var size = config.initialSize || config.width; - if(typeof size != "undefined"){ - this.el.setWidth(size); - } -}; -Ext.extend(Ext.WestLayoutRegion, Ext.SplitLayoutRegion, { - orientation: Ext.SplitBar.HORIZONTAL, - getBox : function(){ - if(this.collapsed){ - return this.collapsedEl.getBox(); - } - var box = this.el.getBox(); - if(this.split){ - box.width += this.split.el.getWidth(); - } - return box; - }, - - updateBox : function(box){ - if(this.split && !this.collapsed){ - var sw = this.split.el.getWidth(); - box.width -= sw; - this.split.el.setLeft(box.x+box.width); - this.split.el.setTop(box.y); - this.split.el.setHeight(box.height); - } - if(this.collapsed){ - this.updateBody(null, box.height); - } - Ext.WestLayoutRegion.superclass.updateBox.call(this, box); - } -}); - - -Ext.LayoutStateManager = function(layout){ - - this.state = { - north: {}, - south: {}, - east: {}, - west: {} - }; -}; - -Ext.LayoutStateManager.prototype = { - init : function(layout, provider){ - this.provider = provider; - var state = provider.get(layout.id+"-layout-state"); - if(state){ - var wasUpdating = layout.isUpdating(); - if(!wasUpdating){ - layout.beginUpdate(); - } - for(var key in state){ - if(typeof state[key] != "function"){ - var rstate = state[key]; - var r = layout.getRegion(key); - if(r && rstate){ - if(rstate.size){ - r.resizeTo(rstate.size); - } - if(rstate.collapsed == true){ - r.collapse(true); - }else{ - r.expand(null, true); - } - } - } - } - if(!wasUpdating){ - layout.endUpdate(); - } - this.state = state; - } - this.layout = layout; - layout.on("regionresized", this.onRegionResized, this); - layout.on("regioncollapsed", this.onRegionCollapsed, this); - layout.on("regionexpanded", this.onRegionExpanded, this); - }, - - storeState : function(){ - this.provider.set(this.layout.id+"-layout-state", this.state); - }, - - onRegionResized : function(region, newSize){ - this.state[region.getPosition()].size = newSize; - this.storeState(); - }, - - onRegionCollapsed : function(region){ - this.state[region.getPosition()].collapsed = true; - this.storeState(); - }, - - onRegionExpanded : function(region){ - this.state[region.getPosition()].collapsed = false; - this.storeState(); - } -}; - -Ext.ContentPanel = function(el, config, content){ - Ext.ContentPanel.superclass.constructor.call(this); - if(el.autoCreate){ - config = el; - el = Ext.id(); - } - this.el = Ext.get(el); - if(!this.el && config && config.autoCreate){ - if(typeof config.autoCreate == "object"){ - if(!config.autoCreate.id){ - config.autoCreate.id = config.id||el; - } - this.el = Ext.DomHelper.append(document.body, - config.autoCreate, true); - }else{ - this.el = Ext.DomHelper.append(document.body, - {tag: "div", cls: "x-layout-inactive-content", id: config.id||el}, true); - } - } - this.closable = false; - this.loaded = false; - this.active = false; - if(typeof config == "string"){ - this.title = config; - }else{ - Ext.apply(this, config); - } - if(this.resizeEl){ - this.resizeEl = Ext.get(this.resizeEl, true); - }else{ - this.resizeEl = this.el; - } - this.addEvents({ - - "activate" : true, - - "deactivate" : true, - - - "resize" : true - }); - if(this.autoScroll){ - this.resizeEl.setStyle("overflow", "auto"); - } - content = content || this.content; - if(content){ - this.setContent(content); - } - if(config && config.url){ - this.setUrl(this.url, this.params, this.loadOnce); - } -}; - -Ext.extend(Ext.ContentPanel, Ext.util.Observable, { - tabTip:'', - setRegion : function(region){ - this.region = region; - if(region){ - this.el.replaceClass("x-layout-inactive-content", "x-layout-active-content"); - }else{ - this.el.replaceClass("x-layout-active-content", "x-layout-inactive-content"); - } - }, - - - getToolbar : function(){ - return this.toolbar; - }, - - setActiveState : function(active){ - this.active = active; - if(!active){ - this.fireEvent("deactivate", this); - }else{ - this.fireEvent("activate", this); - } - }, - - setContent : function(content, loadScripts){ - this.el.update(content, loadScripts); - }, - - ignoreResize : function(w, h){ - if(this.lastSize && this.lastSize.width == w && this.lastSize.height == h){ - return true; - }else{ - this.lastSize = {width: w, height: h}; - return false; - } - }, - - getUpdateManager : function(){ - return this.el.getUpdateManager(); - }, - - load : function(){ - var um = this.el.getUpdateManager(); - um.update.apply(um, arguments); - return this; - }, - - - - setUrl : function(url, params, loadOnce){ - if(this.refreshDelegate){ - this.removeListener("activate", this.refreshDelegate); - } - this.refreshDelegate = this._handleRefresh.createDelegate(this, [url, params, loadOnce]); - this.on("activate", this._handleRefresh.createDelegate(this, [url, params, loadOnce])); - return this.el.getUpdateManager(); - }, - - _handleRefresh : function(url, params, loadOnce){ - if(!loadOnce || !this.loaded){ - var updater = this.el.getUpdateManager(); - updater.update(url, params, this._setLoaded.createDelegate(this)); - } - }, - - _setLoaded : function(){ - this.loaded = true; - }, - - - getId : function(){ - return this.el.id; - }, - - - getEl : function(){ - return this.el; - }, - - adjustForComponents : function(width, height){ - if(this.resizeEl != this.el){ - width -= this.el.getFrameWidth('lr'); - height -= this.el.getFrameWidth('tb'); - } - if(this.toolbar){ - var te = this.toolbar.getEl(); - height -= te.getHeight(); - te.setWidth(width); - } - if(this.adjustments){ - width += this.adjustments[0]; - height += this.adjustments[1]; - } - return {"width": width, "height": height}; - }, - - setSize : function(width, height){ - if(this.fitToFrame && !this.ignoreResize(width, height)){ - if(this.fitContainer && this.resizeEl != this.el){ - this.el.setSize(width, height); - } - var size = this.adjustForComponents(width, height); - this.resizeEl.setSize(this.autoWidth ? "auto" : size.width, this.autoHeight ? "auto" : size.height); - this.fireEvent('resize', this, size.width, size.height); - } - }, - - - getTitle : function(){ - return this.title; - }, - - - setTitle : function(title){ - this.title = title; - if(this.region){ - this.region.updatePanelTitle(this, title); - } - }, - - - isClosable : function(){ - return this.closable; - }, - - beforeSlide : function(){ - this.el.clip(); - this.resizeEl.clip(); - }, - - afterSlide : function(){ - this.el.unclip(); - this.resizeEl.unclip(); - }, - - - refresh : function(){ - if(this.refreshDelegate){ - this.loaded = false; - this.refreshDelegate(); - } - }, - - - destroy : function(){ - this.el.removeAllListeners(); - var tempEl = document.createElement("span"); - tempEl.appendChild(this.el.dom); - tempEl.innerHTML = ""; - this.el.remove(); - this.el = null; - } -}); - - -Ext.GridPanel = function(grid, config){ - this.wrapper = Ext.DomHelper.append(document.body, - {tag: "div", cls: "x-layout-grid-wrapper x-layout-inactive-content"}, true); - this.wrapper.dom.appendChild(grid.container.dom); - Ext.GridPanel.superclass.constructor.call(this, this.wrapper, config); - if(this.toolbar){ - this.toolbar.el.insertBefore(this.wrapper.dom.firstChild); - } - grid.monitorWindowResize = false; - grid.autoHeight = false; - grid.autoWidth = false; - this.grid = grid; - this.grid.container.replaceClass("x-layout-inactive-content", "x-layout-component-panel"); -}; - -Ext.extend(Ext.GridPanel, Ext.ContentPanel, { - getId : function(){ - return this.grid.id; - }, - - - getGrid : function(){ - return this.grid; - }, - - setSize : function(width, height){ - if(!this.ignoreResize(width, height)){ - var grid = this.grid; - var size = this.adjustForComponents(width, height); - grid.container.setSize(size.width, size.height); - grid.autoSize(); - } - }, - - beforeSlide : function(){ - this.grid.getView().scroller.clip(); - }, - - afterSlide : function(){ - this.grid.getView().scroller.unclip(); - }, - - destroy : function(){ - this.grid.destroy(); - delete this.grid; - Ext.GridPanel.superclass.destroy.call(this); - } -}); - - - -Ext.NestedLayoutPanel = function(layout, config){ - Ext.NestedLayoutPanel.superclass.constructor.call(this, layout.getEl(), config); - layout.monitorWindowResize = false; - this.layout = layout; - this.layout.getEl().addClass("x-layout-nested-layout"); -}; - -Ext.extend(Ext.NestedLayoutPanel, Ext.ContentPanel, { - - setSize : function(width, height){ - if(!this.ignoreResize(width, height)){ - var size = this.adjustForComponents(width, height); - var el = this.layout.getEl(); - el.setSize(size.width, size.height); - var touch = el.dom.offsetWidth; - this.layout.layout(); - - if(Ext.isIE && !this.initialized){ - this.initialized = true; - this.layout.layout(); - } - } - }, - - - getLayout : function(){ - return this.layout; - } -}); - -Ext.ScrollPanel = function(el, config, content){ - config = config || {}; - config.fitToFrame = true; - Ext.ScrollPanel.superclass.constructor.call(this, el, config, content); - - this.el.dom.style.overflow = "hidden"; - var wrap = this.el.wrap({cls: "x-scroller x-layout-inactive-content"}); - this.el.removeClass("x-layout-inactive-content"); - this.el.on("mousewheel", this.onWheel, this); - - var up = wrap.createChild({cls: "x-scroller-up", html: " "}, this.el.dom); - var down = wrap.createChild({cls: "x-scroller-down", html: " "}); - up.unselectable(); down.unselectable(); - up.on("click", this.scrollUp, this); - down.on("click", this.scrollDown, this); - up.addClassOnOver("x-scroller-btn-over"); - down.addClassOnOver("x-scroller-btn-over"); - up.addClassOnClick("x-scroller-btn-click"); - down.addClassOnClick("x-scroller-btn-click"); - this.adjustments = [0, -(up.getHeight() + down.getHeight())]; - - this.resizeEl = this.el; - this.el = wrap; this.up = up; this.down = down; -}; - -Ext.extend(Ext.ScrollPanel, Ext.ContentPanel, { - increment : 100, - wheelIncrement : 5, - scrollUp : function(){ - this.resizeEl.scroll("up", this.increment, {callback: this.afterScroll, scope: this}); - }, - - scrollDown : function(){ - this.resizeEl.scroll("down", this.increment, {callback: this.afterScroll, scope: this}); - }, - - afterScroll : function(){ - var el = this.resizeEl; - var t = el.dom.scrollTop, h = el.dom.scrollHeight, ch = el.dom.clientHeight; - this.up[t == 0 ? "addClass" : "removeClass"]("x-scroller-btn-disabled"); - this.down[h - t <= ch ? "addClass" : "removeClass"]("x-scroller-btn-disabled"); - }, - - setSize : function(){ - Ext.ScrollPanel.superclass.setSize.apply(this, arguments); - this.afterScroll(); - }, - - onWheel : function(e){ - var d = e.getWheelDelta(); - this.resizeEl.dom.scrollTop -= (d*this.wheelIncrement); - this.afterScroll(); - e.stopEvent(); - }, - - setContent : function(content, loadScripts){ - this.resizeEl.update(content, loadScripts); - } - -}); - -Ext.ReaderLayout = function(config, renderTo){ - var c = config || {size:{}}; - Ext.ReaderLayout.superclass.constructor.call(this, renderTo || document.body, { - north: c.north !== false ? Ext.apply({ - split:false, - initialSize: 32, - titlebar: false - }, c.north) : false, - west: c.west !== false ? Ext.apply({ - split:true, - initialSize: 200, - minSize: 175, - maxSize: 400, - titlebar: true, - collapsible: true, - animate: true, - margins:{left:5,right:0,bottom:5,top:5}, - cmargins:{left:5,right:5,bottom:5,top:5} - }, c.west) : false, - east: c.east !== false ? Ext.apply({ - split:true, - initialSize: 200, - minSize: 175, - maxSize: 400, - titlebar: true, - collapsible: true, - animate: true, - margins:{left:0,right:5,bottom:5,top:5}, - cmargins:{left:5,right:5,bottom:5,top:5} - }, c.east) : false, - center: Ext.apply({ - tabPosition: 'top', - autoScroll:false, - closeOnTab: true, - titlebar:false, - margins:{left:c.west!==false ? 0 : 5,right:c.east!==false ? 0 : 5,bottom:5,top:2} - }, c.center) - }); - - this.el.addClass('x-reader'); - - this.beginUpdate(); - - var inner = new Ext.BorderLayout(Ext.get(document.body).createChild(), { - south: c.preview !== false ? Ext.apply({ - split:true, - initialSize: 200, - minSize: 100, - autoScroll:true, - collapsible:true, - titlebar: true, - cmargins:{top:5,left:0, right:0, bottom:0} - }, c.preview) : false, - center: Ext.apply({ - autoScroll:false, - titlebar:false, - minHeight:200 - }, c.listView) - }); - this.add('center', new Ext.NestedLayoutPanel(inner, - Ext.apply({title: c.mainTitle || '',tabTip:''},c.innerPanelCfg))); - - this.endUpdate(); - - this.regions.preview = inner.getRegion('south'); - this.regions.listView = inner.getRegion('center'); -}; - -Ext.extend(Ext.ReaderLayout, Ext.BorderLayout); - -Ext.grid.Grid = function(container, config){ - - this.container = Ext.get(container); - this.container.update(""); - this.container.setStyle("overflow", "hidden"); - this.container.addClass('x-grid-container'); - - this.id = this.container.id; - - Ext.apply(this, config); - - if(this.ds){ - this.dataSource = this.ds; - delete this.ds; - } - if(this.cm){ - this.colModel = this.cm; - delete this.cm; - } - if(this.sm){ - this.selModel = this.sm; - delete this.sm; - } - - if(this.width){ - this.container.setWidth(this.width); - } - - if(this.height){ - this.container.setHeight(this.height); - } - - this.addEvents({ - - - "click" : true, - - "dblclick" : true, - - "contextmenu" : true, - - "mousedown" : true, - - "mouseup" : true, - - "mouseover" : true, - - "mouseout" : true, - - "keypress" : true, - - "keydown" : true, - - - - - "cellclick" : true, - - "celldblclick" : true, - - "rowclick" : true, - - "rowdblclick" : true, - - "headerclick" : true, - - "headerdblclick" : true, - - "rowcontextmenu" : true, - - "cellcontextmenu" : true, - - "headercontextmenu" : true, - - "bodyscroll" : true, - - "columnresize" : true, - - "columnmove" : true, - - "startdrag" : true, - - "enddrag" : true, - - "dragdrop" : true, - - "dragover" : true, - - "dragenter" : true, - - "dragout" : true - }); - - Ext.grid.Grid.superclass.constructor.call(this); -}; -Ext.extend(Ext.grid.Grid, Ext.util.Observable, { - - minColumnWidth : 25, - - - autoSizeColumns : false, - - - autoSizeHeaders : true, - - - monitorWindowResize : true, - - - maxRowsToMeasure : 0, - - - trackMouseOver : true, - - - enableDragDrop : false, - - - enableColumnMove : true, - - - enableColumnHide : true, - - - enableRowHeightSync : false, - - - stripeRows : true, - - - autoHeight : false, - - - autoExpandColumn : false, - - - autoExpandMin : 50, - - - autoExpandMax : 1000, - - - view : null, - - - allowTextSelectionPattern : /INPUT|TEXTAREA|SELECT/i, - - - loadMask : false, - - - rendered : false, - - - - render : function(){ - var c = this.container; - - if((!c.dom.offsetHeight || c.dom.offsetHeight < 20) || c.getStyle("height") == "auto"){ - this.autoHeight = true; - } - var view = this.getView(); - view.init(this); - - c.on("click", this.onClick, this); - c.on("dblclick", this.onDblClick, this); - c.on("contextmenu", this.onContextMenu, this); - c.on("keydown", this.onKeyDown, this); - - this.relayEvents(c, ["mousedown","mouseup","mouseover","mouseout","keypress"]); - - this.getSelectionModel().init(this); - - view.render(); - - if(this.loadMask){ - this.loadMask = new Ext.LoadMask(this.container, - Ext.apply({store:this.dataSource}, this.loadMask)); - } - this.rendered = true; - return this; - }, - - reconfigure : function(dataSource, colModel){ - if(this.loadMask){ - this.loadMask.destroy(); - this.loadMask = new Ext.LoadMask(this.container, - Ext.apply({store:dataSource}, this.loadMask)); - } - this.view.bind(dataSource, colModel); - this.dataSource = dataSource; - this.colModel = colModel; - this.view.refresh(true); - }, - - onKeyDown : function(e){ - this.fireEvent("keydown", e); - }, - - - destroy : function(removeEl, keepListeners){ - if(this.loadMask){ - this.loadMask.destroy(); - } - var c = this.container; - c.removeAllListeners(); - this.view.destroy(); - this.colModel.purgeListeners(); - if(!keepListeners){ - this.purgeListeners(); - } - c.update(""); - if(removeEl === true){ - c.remove(); - } - }, - - - processEvent : function(name, e){ - this.fireEvent(name, e); - var t = e.getTarget(); - var v = this.view; - var header = v.findHeaderIndex(t); - if(header !== false){ - this.fireEvent("header" + name, this, header, e); - }else{ - var row = v.findRowIndex(t); - var cell = v.findCellIndex(t); - if(row !== false){ - this.fireEvent("row" + name, this, row, e); - if(cell !== false){ - this.fireEvent("cell" + name, this, row, cell, e); - } - } - } - }, - - - onClick : function(e){ - this.processEvent("click", e); - }, - - - onContextMenu : function(e, t){ - this.processEvent("contextmenu", e); - }, - - - onDblClick : function(e){ - this.processEvent("dblclick", e); - }, - - walkCells : function(row, col, step, fn, scope){ - var cm = this.colModel, clen = cm.getColumnCount(); - var ds = this.dataSource, rlen = ds.getCount(), first = true; - if(step < 0){ - if(col < 0){ - row--; - first = false; - } - while(row >= 0){ - if(!first){ - col = clen-1; - } - first = false; - while(col >= 0){ - if(fn.call(scope || this, row, col, cm) === true){ - return [row, col]; - } - col--; - } - row--; - } - } else { - if(col >= clen){ - row++; - first = false; - } - while(row < rlen){ - if(!first){ - col = 0; - } - first = false; - while(col < clen){ - if(fn.call(scope || this, row, col, cm) === true){ - return [row, col]; - } - col++; - } - row++; - } - } - return null; - }, - - getSelections : function(){ - return this.selModel.getSelections(); - }, - - - autoSize : function(){ - if(this.rendered){ - this.view.layout(); - if(this.view.adjustForScroll){ - this.view.adjustForScroll(); - } - } - }, - - - stopEditing : function(){}, - - - getSelectionModel : function(){ - if(!this.selModel){ - this.selModel = new Ext.grid.RowSelectionModel(); - } - return this.selModel; - }, - - - getDataSource : function(){ - return this.dataSource; - }, - - - getColumnModel : function(){ - return this.colModel; - }, - - - getView : function(){ - if(!this.view){ - this.view = new Ext.grid.GridView(); - } - return this.view; - }, - - getDragDropText : function(){ - var count = this.selModel.getCount(); - return String.format(this.ddText, count, count == 1 ? '' : 's'); - } -}); - -Ext.grid.Grid.prototype.ddText = "{0} selected row{1}"; -Ext.grid.AbstractGridView = function(){ - this.grid = null; - - this.events = { - "beforerowremoved" : true, - "beforerowsinserted" : true, - "beforerefresh" : true, - "rowremoved" : true, - "rowsinserted" : true, - "rowupdated" : true, - "refresh" : true - }; - Ext.grid.AbstractGridView.superclass.constructor.call(this); -}; - -Ext.extend(Ext.grid.AbstractGridView, Ext.util.Observable, { - rowClass : "x-grid-row", - cellClass : "x-grid-cell", - tdClass : "x-grid-td", - hdClass : "x-grid-hd", - splitClass : "x-grid-hd-split", - - init: function(grid){ - this.grid = grid; - var cid = this.grid.container.id; - this.colSelector = "#" + cid + " ." + this.cellClass + "-"; - this.tdSelector = "#" + cid + " ." + this.tdClass + "-"; - this.hdSelector = "#" + cid + " ." + this.hdClass + "-"; - this.splitSelector = "#" + cid + " ." + this.splitClass + "-"; - }, - - getColumnRenderers : function(){ - var renderers = []; - var cm = this.grid.colModel; - var colCount = cm.getColumnCount(); - for(var i = 0; i < colCount; i++){ - renderers[i] = cm.getRenderer(i); - } - return renderers; - }, - - getColumnIds : function(){ - var ids = []; - var cm = this.grid.colModel; - var colCount = cm.getColumnCount(); - for(var i = 0; i < colCount; i++){ - ids[i] = cm.getColumnId(i); - } - return ids; - }, - - getDataIndexes : function(){ - if(!this.indexMap){ - this.indexMap = this.buildIndexMap(); - } - return this.indexMap.colToData; - }, - - getColumnIndexByDataIndex : function(dataIndex){ - if(!this.indexMap){ - this.indexMap = this.buildIndexMap(); - } - return this.indexMap.dataToCol[dataIndex]; - }, - - - setCSSStyle : function(colIndex, name, value){ - var selector = "#" + this.grid.id + " .x-grid-col-" + colIndex; - Ext.util.CSS.updateRule(selector, name, value); - }, - - generateRules : function(cm){ - var ruleBuf = []; - for(var i = 0, len = cm.getColumnCount(); i < len; i++){ - var cid = cm.getColumnId(i); - ruleBuf.push(this.colSelector, cid, " {\n", cm.config[i].css, "}\n", - this.tdSelector, cid, " {\n}\n", - this.hdSelector, cid, " {\n}\n", - this.splitSelector, cid, " {\n}\n"); - } - return Ext.util.CSS.createStyleSheet(ruleBuf.join("")); - } -}); - - -Ext.grid.GridView = function(config){ - Ext.grid.GridView.superclass.constructor.call(this); - this.el = null; - - Ext.apply(this, config); -}; - -Ext.extend(Ext.grid.GridView, Ext.grid.AbstractGridView, { - - - rowClass : "x-grid-row", - - cellClass : "x-grid-col", - - tdClass : "x-grid-td", - - hdClass : "x-grid-hd", - - splitClass : "x-grid-split", - - sortClasses : ["sort-asc", "sort-desc"], - - enableMoveAnim : false, - - hlColor: "C3DAF9", - - dh : Ext.DomHelper, - - fly : Ext.Element.fly, - - css : Ext.util.CSS, - - borderWidth: 1, - - splitOffset: 3, - - scrollIncrement : 22, - - cellRE: /(?:.*?)x-grid-(?:hd|cell|csplit)-(?:[\d]+)-([\d]+)(?:.*?)/, - - findRE: /\s?(?:x-grid-hd|x-grid-col|x-grid-csplit)\s/, - - bind : function(ds, cm){ - if(this.ds){ - this.ds.un("load", this.onLoad, this); - this.ds.un("datachanged", this.onDataChange); - this.ds.un("add", this.onAdd); - this.ds.un("remove", this.onRemove); - this.ds.un("update", this.onUpdate); - this.ds.un("clear", this.onClear); - } - if(ds){ - ds.on("load", this.onLoad, this); - ds.on("datachanged", this.onDataChange, this); - ds.on("add", this.onAdd, this); - ds.on("remove", this.onRemove, this); - ds.on("update", this.onUpdate, this); - ds.on("clear", this.onClear, this); - } - this.ds = ds; - - if(this.cm){ - this.cm.un("widthchange", this.onColWidthChange, this); - this.cm.un("headerchange", this.onHeaderChange, this); - this.cm.un("hiddenchange", this.onHiddenChange, this); - this.cm.un("columnmoved", this.onColumnMove, this); - this.cm.un("columnlockchange", this.onColumnLock, this); - } - if(cm){ - this.generateRules(cm); - cm.on("widthchange", this.onColWidthChange, this); - cm.on("headerchange", this.onHeaderChange, this); - cm.on("hiddenchange", this.onHiddenChange, this); - cm.on("columnmoved", this.onColumnMove, this); - cm.on("columnlockchange", this.onColumnLock, this); - } - this.cm = cm; - }, - - init: function(grid){ - Ext.grid.GridView.superclass.init.call(this, grid); - - this.bind(grid.dataSource, grid.colModel); - - grid.on("headerclick", this.handleHeaderClick, this); - - if(grid.trackMouseOver){ - grid.on("mouseover", this.onRowOver, this); - grid.on("mouseout", this.onRowOut, this); - } - grid.cancelTextSelection = function(){}; - this.gridId = grid.id; - - var tpls = this.templates || {}; - - if(!tpls.master){ - tpls.master = new Ext.Template( - '
    ', - '
    ', - '
    ', - '
    ', - '
    {lockedHeader}
    ', - '
    {lockedBody}
    ', - "
    ", - '
    ', - '
    {header}
    ', - '
    {body}
    ', - "
    ", - '
    ', - '', - '
     
    ', - "
    " - ); - tpls.master.disableformats = true; - } - - if(!tpls.header){ - tpls.header = new Ext.Template( - '', - '{cells}', - "
    {splits}" - ); - tpls.header.disableformats = true; - } - tpls.header.compile(); - - if(!tpls.hcell){ - tpls.hcell = new Ext.Template( - '
    ', - '
    {value}
    ', - "
    " - ); - tpls.hcell.disableFormats = true; - } - tpls.hcell.compile(); - - if(!tpls.hsplit){ - tpls.hsplit = new Ext.Template('
     
    '); - tpls.hsplit.disableFormats = true; - } - tpls.hsplit.compile(); - - if(!tpls.body){ - tpls.body = new Ext.Template( - '', - "{rows}", - "
    " - ); - tpls.body.disableFormats = true; - } - tpls.body.compile(); - - if(!tpls.row){ - tpls.row = new Ext.Template('{cells}'); - tpls.row.disableFormats = true; - } - tpls.row.compile(); - - if(!tpls.cell){ - tpls.cell = new Ext.Template( - '', - '
    {value}
    ', - "" - ); - tpls.cell.disableFormats = true; - } - tpls.cell.compile(); - - this.templates = tpls; - }, - - - onColWidthChange : function(){ - this.updateColumns.apply(this, arguments); - }, - onHeaderChange : function(){ - this.updateHeaders.apply(this, arguments); - }, - onHiddenChange : function(){ - this.handleHiddenChange.apply(this, arguments); - }, - onColumnMove : function(){ - this.handleColumnMove.apply(this, arguments); - }, - onColumnLock : function(){ - this.handleLockChange.apply(this, arguments); - }, - - onDataChange : function(){ - this.refresh(); - this.updateHeaderSortState(); - }, - - onClear : function(){ - this.refresh(); - }, - - onUpdate : function(ds, record){ - this.refreshRow(record); - }, - - refreshRow : function(record){ - var ds = this.ds, index; - if(typeof record == 'number'){ - index = record; - record = ds.getAt(index); - }else{ - index = ds.indexOf(record); - } - var rows = this.getRowComposite(index); - var cls = []; - this.insertRows(ds, index, index, true); - this.onRemove(ds, record, index+1, true); - this.syncRowHeights(index, index); - this.layout(); - this.fireEvent("rowupdated", this, index, record); - }, - - onAdd : function(ds, records, index){ - this.insertRows(ds, index, index + (records.length-1)); - }, - - onRemove : function(ds, record, index, isUpdate){ - if(isUpdate !== true){ - this.fireEvent("beforerowremoved", this, index, record); - } - var bt = this.getBodyTable(), lt = this.getLockedTable(); - if(bt.rows[index]){ - bt.firstChild.removeChild(bt.rows[index]); - } - if(lt.rows[index]){ - lt.firstChild.removeChild(lt.rows[index]); - } - if(isUpdate !== true){ - this.stripeRows(index); - this.syncRowHeights(index, index); - this.layout(); - this.fireEvent("rowremoved", this, index, record); - } - }, - - onLoad : function(){ - this.scrollToTop(); - }, - - - scrollToTop : function(){ - if(this.scroller){ - this.scroller.dom.scrollTop = 0; - this.syncScroll(); - } - }, - - - getHeaderPanel : function(doShow){ - if(doShow){ - this.headerPanel.show(); - } - return this.headerPanel; - }, - - - getFooterPanel : function(doShow){ - if(doShow){ - this.footerPanel.show(); - } - return this.footerPanel; - }, - - initElements : function(){ - var E = Ext.Element; - var el = this.grid.container.dom.firstChild; - var cs = el.childNodes; - - this.el = new E(el); - this.headerPanel = new E(el.firstChild); - this.headerPanel.enableDisplayMode("block"); - - this.scroller = new E(cs[1]); - this.scrollSizer = new E(this.scroller.dom.firstChild); - - this.lockedWrap = new E(cs[2]); - this.lockedHd = new E(this.lockedWrap.dom.firstChild); - this.lockedBody = new E(this.lockedWrap.dom.childNodes[1]); - - this.mainWrap = new E(cs[3]); - this.mainHd = new E(this.mainWrap.dom.firstChild); - this.mainBody = new E(this.mainWrap.dom.childNodes[1]); - - this.footerPanel = new E(cs[4]); - this.footerPanel.enableDisplayMode("block"); - - this.focusEl = new E(cs[5]); - this.focusEl.swallowEvent("click", true); - this.resizeProxy = new E(cs[6]); - - this.headerSelector = String.format( - '#{0} td.x-grid-hd, #{1} td.x-grid-hd', - this.lockedHd.id, this.mainHd.id - ); - - this.splitterSelector = String.format( - '#{0} div.x-grid-split, #{1} div.x-grid-split', - this.lockedHd.id, this.mainHd.id - ); - }, - - getHeaderCell : function(index){ - return Ext.DomQuery.select(this.headerSelector)[index]; - }, - - getHeaderCellMeasure : function(index){ - return this.getHeaderCell(index).firstChild; - }, - - getHeaderCellText : function(index){ - return this.getHeaderCell(index).firstChild.firstChild; - }, - - getLockedTable : function(){ - return this.lockedBody.dom.firstChild; - }, - - getBodyTable : function(){ - return this.mainBody.dom.firstChild; - }, - - getLockedRow : function(index){ - return this.getLockedTable().rows[index]; - }, - - getRow : function(index){ - return this.getBodyTable().rows[index]; - }, - - getRowComposite : function(index){ - if(!this.rowEl){ - this.rowEl = new Ext.CompositeElementLite(); - } - var els = [], lrow, mrow; - if(lrow = this.getLockedRow(index)){ - els.push(lrow); - } - if(mrow = this.getRow(index)){ - els.push(mrow); - } - this.rowEl.elements = els; - return this.rowEl; - }, - - getCell : function(rowIndex, colIndex){ - var locked = this.cm.getLockedCount(); - var source; - if(colIndex < locked){ - source = this.lockedBody.dom.firstChild; - }else{ - source = this.mainBody.dom.firstChild; - colIndex -= locked; - } - return source.rows[rowIndex].childNodes[colIndex]; - }, - - getCellText : function(rowIndex, colIndex){ - return this.getCell(rowIndex, colIndex).firstChild.firstChild; - }, - - getCellBox : function(cell){ - var b = this.fly(cell).getBox(); - if(Ext.isOpera){ - b.y = cell.offsetTop + this.mainBody.getY(); - } - return b; - }, - - getCellIndex : function(cell){ - var id = String(cell.className).match(this.cellRE); - if(id){ - return parseInt(id[1], 10); - } - return 0; - }, - - findHeaderIndex : function(n){ - var r = Ext.fly(n).findParent("td." + this.hdClass, 6); - return r ? this.getCellIndex(r) : false; - }, - - findHeaderCell : function(n){ - var r = Ext.fly(n).findParent("td." + this.hdClass, 6); - return r ? r : false; - }, - - findRowIndex : function(n){ - if(!n){ - return false; - } - var r = Ext.fly(n).findParent("tr." + this.rowClass, 6); - return r ? r.rowIndex : false; - }, - - findCellIndex : function(node){ - var stop = this.el.dom; - while(node && node != stop){ - if(this.findRE.test(node.className)){ - return this.getCellIndex(node); - } - node = node.parentNode; - } - return false; - }, - - getColumnId : function(index){ - return this.cm.getColumnId(index); - }, - - getSplitters : function(){ - if(this.splitterSelector){ - return Ext.DomQuery.select(this.splitterSelector); - }else{ - return null; - } - }, - - getSplitter : function(index){ - return this.getSplitters()[index]; - }, - - onRowOver : function(e, t){ - var row; - if((row = this.findRowIndex(t)) !== false){ - this.getRowComposite(row).addClass("x-grid-row-over"); - } - }, - - onRowOut : function(e, t){ - var row; - if((row = this.findRowIndex(t)) !== false && row !== this.findRowIndex(e.getRelatedTarget())){ - this.getRowComposite(row).removeClass("x-grid-row-over"); - } - }, - - renderHeaders : function(){ - var cm = this.cm; - var ct = this.templates.hcell, ht = this.templates.header, st = this.templates.hsplit; - var cb = [], lb = [], sb = [], lsb = [], p = {}; - for(var i = 0, len = cm.getColumnCount(); i < len; i++){ - p.cellId = "x-grid-hd-0-" + i; - p.splitId = "x-grid-csplit-0-" + i; - p.id = cm.getColumnId(i); - p.title = cm.getColumnTooltip(i) || ""; - p.value = cm.getColumnHeader(i) || ""; - p.style = (this.grid.enableColumnResize === false || !cm.isResizable(i) || cm.isFixed(i)) ? 'cursor:default' : ''; - if(!cm.isLocked(i)){ - cb[cb.length] = ct.apply(p); - sb[sb.length] = st.apply(p); - }else{ - lb[lb.length] = ct.apply(p); - lsb[lsb.length] = st.apply(p); - } - } - return [ht.apply({cells: lb.join(""), splits:lsb.join("")}), - ht.apply({cells: cb.join(""), splits:sb.join("")})]; - }, - - updateHeaders : function(){ - var html = this.renderHeaders(); - this.lockedHd.update(html[0]); - this.mainHd.update(html[1]); - }, - - - focusRow : function(row){ - var x = this.scroller.dom.scrollLeft; - this.focusCell(row, 0, false); - this.scroller.dom.scrollLeft = x; - }, - - - focusCell : function(row, col, hscroll){ - var el = this.ensureVisible(row, col, hscroll); - this.focusEl.alignTo(el, "tl-tl"); - if(Ext.isGecko){ - this.focusEl.focus(); - }else{ - this.focusEl.focus.defer(1, this.focusEl); - } - }, - - - ensureVisible : function(row, col, hscroll){ - if(typeof row != "number"){ - row = row.rowIndex; - } - if(row < 0 && row >= this.ds.getCount()){ - return; - } - col = (col !== undefined ? col : 0); - var cm = this.grid.colModel; - while(cm.isHidden(col)){ - col++; - } - - var el = this.getCell(row, col); - if(!el){ - return; - } - var c = this.scroller.dom; - - var ctop = parseInt(el.offsetTop, 10); - var cleft = parseInt(el.offsetLeft, 10); - var cbot = ctop + el.offsetHeight; - var cright = cleft + el.offsetWidth; - - var ch = c.clientHeight - this.mainHd.dom.offsetHeight; - var stop = parseInt(c.scrollTop, 10); - var sleft = parseInt(c.scrollLeft, 10); - var sbot = stop + ch; - var sright = sleft + c.clientWidth; - - if(ctop < stop){ - c.scrollTop = ctop; - }else if(cbot > sbot){ - c.scrollTop = cbot-ch; - } - - if(hscroll !== false){ - if(cleft < sleft){ - c.scrollLeft = cleft; - }else if(cright > sright){ - c.scrollLeft = cright-c.clientWidth; - } - } - return el; - }, - - updateColumns : function(){ - this.grid.stopEditing(); - var cm = this.grid.colModel, colIds = this.getColumnIds(); - - var pos = 0; - for(var i = 0, len = cm.getColumnCount(); i < len; i++){ - - var w = cm.getColumnWidth(i); - this.css.updateRule(this.colSelector+colIds[i], "width", (w - this.borderWidth) + "px"); - this.css.updateRule(this.hdSelector+colIds[i], "width", (w - this.borderWidth) + "px"); - } - this.updateSplitters(); - }, - - updateSplitters : function(){ - var cm = this.cm, s = this.getSplitters(); - if(s){ - var pos = 0, locked = true; - for(var i = 0, len = cm.getColumnCount(); i < len; i++){ - if(cm.isHidden(i)) continue; - var w = cm.getColumnWidth(i); - if(!cm.isLocked(i) && locked){ - pos = 0; - locked = false; - } - pos += w; - s[i].style.left = (pos-this.splitOffset) + "px"; - } - } - }, - - handleHiddenChange : function(colModel, colIndex, hidden){ - if(hidden){ - this.hideColumn(colIndex); - }else{ - this.unhideColumn(colIndex); - } - }, - - hideColumn : function(colIndex){ - var cid = this.getColumnId(colIndex); - this.css.updateRule(this.tdSelector+cid, "display", "none"); - this.css.updateRule(this.splitSelector+cid, "display", "none"); - if(Ext.isSafari){ - this.updateHeaders(); - } - this.updateSplitters(); - this.layout(); - }, - - unhideColumn : function(colIndex){ - var cid = this.getColumnId(colIndex); - this.css.updateRule(this.tdSelector+cid, "display", ""); - this.css.updateRule(this.splitSelector+cid, "display", ""); - - if(Ext.isSafari){ - this.updateHeaders(); - } - this.updateSplitters(); - this.layout(); - }, - - insertRows : function(dm, firstRow, lastRow, isUpdate){ - if(firstRow == 0 && lastRow == dm.getCount()-1){ - this.refresh(); - }else{ - if(!isUpdate){ - this.fireEvent("beforerowsinserted", this, firstRow, lastRow); - } - var s = this.getScrollState(); - var markup = this.renderRows(firstRow, lastRow); - this.bufferRows(markup[0], this.getLockedTable(), firstRow); - this.bufferRows(markup[1], this.getBodyTable(), firstRow); - this.restoreScroll(s); - if(!isUpdate){ - this.fireEvent("rowsinserted", this, firstRow, lastRow); - this.syncRowHeights(firstRow, lastRow); - this.stripeRows(firstRow); - this.layout(); - } - } - }, - - bufferRows : function(markup, target, index){ - var before = null, trows = target.rows, tbody = target.tBodies[0]; - if(index < trows.length){ - before = trows[index]; - } - var b = document.createElement("div"); - b.innerHTML = ""+markup+"
    "; - var rows = b.firstChild.rows; - for(var i = 0, len = rows.length; i < len; i++){ - if(before){ - tbody.insertBefore(rows[0], before); - }else{ - tbody.appendChild(rows[0]); - } - } - b.innerHTML = ""; - b = null; - }, - - deleteRows : function(dm, firstRow, lastRow){ - if(dm.getRowCount()<1){ - this.fireEvent("beforerefresh", this); - this.mainBody.update(""); - this.lockedBody.update(""); - this.fireEvent("refresh", this); - }else{ - this.fireEvent("beforerowsdeleted", this, firstRow, lastRow); - var bt = this.getBodyTable(); - var tbody = bt.firstChild; - var rows = bt.rows; - for(var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++){ - tbody.removeChild(rows[firstRow]); - } - this.stripeRows(firstRow); - this.fireEvent("rowsdeleted", this, firstRow, lastRow); - } - }, - - updateRows : function(dataSource, firstRow, lastRow){ - var s = this.getScrollState(); - this.refresh(); - this.restoreScroll(s); - }, - - handleSort : function(dataSource, sortColumnIndex, sortDir, noRefresh){ - if(!noRefresh){ - this.refresh(); - } - this.updateHeaderSortState(); - }, - - getScrollState : function(){ - var sb = this.scroller.dom; - return {left: sb.scrollLeft, top: sb.scrollTop}; - }, - - stripeRows : function(startRow){ - if(!this.grid.stripeRows || this.ds.getCount() < 1){ - return; - } - startRow = startRow || 0; - var rows = this.getBodyTable().rows; - var lrows = this.getLockedTable().rows; - var cls = ' x-grid-row-alt '; - for(var i = startRow, len = rows.length; i < len; i++){ - var row = rows[i], lrow = lrows[i]; - var isAlt = ((i+1) % 2 == 0); - var hasAlt = (' '+row.className + ' ').indexOf(cls) != -1; - if(isAlt == hasAlt){ - continue; - } - if(isAlt){ - row.className += " x-grid-row-alt"; - }else{ - row.className = row.className.replace("x-grid-row-alt", ""); - } - if(lrow){ - lrow.className = row.className; - } - } - }, - - restoreScroll : function(state){ - var sb = this.scroller.dom; - sb.scrollLeft = state.left; - sb.scrollTop = state.top; - this.syncScroll(); - }, - - syncScroll : function(){ - var sb = this.scroller.dom; - var sh = this.mainHd.dom; - var bs = this.mainBody.dom; - var lv = this.lockedBody.dom; - sh.scrollLeft = bs.scrollLeft = sb.scrollLeft; - lv.scrollTop = bs.scrollTop = sb.scrollTop; - }, - - handleScroll : function(e){ - this.syncScroll(); - var sb = this.scroller.dom; - this.grid.fireEvent("bodyscroll", sb.scrollLeft, sb.scrollTop); - e.stopEvent(); - }, - - handleWheel : function(e){ - var d = e.getWheelDelta(); - this.scroller.dom.scrollTop -= d*22; - - this.lockedBody.dom.scrollTop = this.mainBody.dom.scrollTop = this.scroller.dom.scrollTop; - e.stopEvent(); - }, - - renderRows : function(startRow, endRow){ - - var g = this.grid, cm = g.colModel, ds = g.dataSource, stripe = g.stripeRows; - var colCount = cm.getColumnCount(); - - if(ds.getCount() < 1){ - return ["", ""]; - } - - - var cs = []; - for(var i = 0; i < colCount; i++){ - var name = cm.getDataIndex(i); - cs[i] = { - name : typeof name == 'undefined' ? ds.fields.get(i).name : name, - renderer : cm.getRenderer(i), - id : cm.getColumnId(i), - locked : cm.isLocked(i) - }; - } - - startRow = startRow || 0; - endRow = typeof endRow == "undefined"? ds.getCount()-1 : endRow; - - - var rs = ds.getRange(startRow, endRow); - - return this.doRender(cs, rs, ds, startRow, colCount, stripe); - }, - - - - - doRender : Ext.isGecko ? - function(cs, rs, ds, startRow, colCount, stripe){ - var ts = this.templates, ct = ts.cell, rt = ts.row; - - var buf = "", lbuf = "", cb, lcb, c, p = {}, rp = {}, r; - for(var j = 0, len = rs.length; j < len; j++){ - r = rs[j], cb = "", lcb = "", rowIndex = (j+startRow); - for(var i = 0; i < colCount; i++){ - c = cs[i]; - p.cellId = "x-grid-cell-" + rowIndex + "-" + i; - p.id = c.id; - p.css = p.attr = ""; - p.value = c.renderer(r.data[c.name], p, r, rowIndex, i, ds); - if(p.value == undefined || p.value === "") p.value = " "; - if(r.dirty && typeof r.modified[c.name] !== 'undefined'){ - p.css += p.css ? ' x-grid-dirty-cell' : 'x-grid-dirty-cell'; - } - var markup = ct.apply(p); - if(!c.locked){ - cb+= markup; - }else{ - lcb+= markup; - } - } - var alt = []; - if(stripe && ((rowIndex+1) % 2 == 0)){ - alt[0] = "x-grid-row-alt"; - } - if(r.dirty){ - alt[1] = " x-grid-dirty-row"; - } - rp.cells = lcb; - if(this.getRowClass){ - alt[2] = this.getRowClass(r, rowIndex); - } - rp.alt = alt.join(" "); - lbuf+= rt.apply(rp); - rp.cells = cb; - buf+= rt.apply(rp); - } - return [lbuf, buf]; - } : - function(cs, rs, ds, startRow, colCount, stripe){ - var ts = this.templates, ct = ts.cell, rt = ts.row; - - var buf = [], lbuf = [], cb, lcb, c, p = {}, rp = {}, r; - for(var j = 0, len = rs.length; j < len; j++){ - r = rs[j], cb = [], lcb = [], rowIndex = (j+startRow); - for(var i = 0; i < colCount; i++){ - c = cs[i]; - p.cellId = "x-grid-cell-" + rowIndex + "-" + i; - p.id = c.id; - p.css = p.attr = ""; - p.value = c.renderer(r.data[c.name], p, r, rowIndex, i, ds); - if(p.value == undefined || p.value === "") p.value = " "; - if(r.dirty && typeof r.modified[c.name] !== 'undefined'){ - p.css += p.css ? ' x-grid-dirty-cell' : 'x-grid-dirty-cell'; - } - var markup = ct.apply(p); - if(!c.locked){ - cb[cb.length] = markup; - }else{ - lcb[lcb.length] = markup; - } - } - var alt = []; - if(stripe && ((rowIndex+1) % 2 == 0)){ - alt[0] = "x-grid-row-alt"; - } - if(r.dirty){ - alt[1] = " x-grid-dirty-row"; - } - rp.cells = lcb; - if(this.getRowClass){ - alt[2] = this.getRowClass(r, rowIndex); - } - rp.alt = alt.join(" "); - rp.cells = lcb.join(""); - lbuf[lbuf.length] = rt.apply(rp); - rp.cells = cb.join(""); - buf[buf.length] = rt.apply(rp); - } - return [lbuf.join(""), buf.join("")]; - }, - - renderBody : function(){ - var markup = this.renderRows(); - var bt = this.templates.body; - return [bt.apply({rows: markup[0]}), bt.apply({rows: markup[1]})]; - }, - - - refresh : function(headersToo){ - this.fireEvent("beforerefresh", this); - this.grid.stopEditing(); - var result = this.renderBody(); - this.lockedBody.update(result[0]); - this.mainBody.update(result[1]); - if(headersToo === true){ - this.updateHeaders(); - this.updateColumns(); - this.updateSplitters(); - this.updateHeaderSortState(); - } - this.syncRowHeights(); - this.layout(); - this.fireEvent("refresh", this); - }, - - handleColumnMove : function(cm, oldIndex, newIndex){ - this.indexMap = null; - var s = this.getScrollState(); - this.refresh(true); - this.restoreScroll(s); - this.afterMove(newIndex); - }, - - afterMove : function(colIndex){ - if(this.enableMoveAnim && Ext.enableFx){ - this.fly(this.getHeaderCell(colIndex).firstChild).highlight(this.hlColor); - } - }, - - updateCell : function(dm, rowIndex, dataIndex){ - var colIndex = this.getColumnIndexByDataIndex(dataIndex); - if(typeof colIndex == "undefined"){ - return; - } - var cm = this.grid.colModel; - var cell = this.getCell(rowIndex, colIndex); - var cellText = this.getCellText(rowIndex, colIndex); - - var p = { - cellId : "x-grid-cell-" + rowIndex + "-" + colIndex, - id : cm.getColumnId(colIndex), - css: colIndex == cm.getColumnCount()-1 ? "x-grid-col-last" : "" - }; - var renderer = cm.getRenderer(colIndex); - var val = renderer(dm.getValueAt(rowIndex, dataIndex), p, rowIndex, colIndex, dm); - if(typeof val == "undefined" || val === "") val = " "; - cellText.innerHTML = val; - cell.className = this.cellClass + " " + p.cellId + " " + p.css; - this.syncRowHeights(rowIndex, rowIndex); - }, - - calcColumnWidth : function(colIndex, maxRowsToMeasure){ - var maxWidth = 0; - if(this.grid.autoSizeHeaders){ - var h = this.getHeaderCellMeasure(colIndex); - maxWidth = Math.max(maxWidth, h.scrollWidth); - } - var tb, index; - if(this.cm.isLocked(colIndex)){ - tb = this.getLockedTable(); - index = colIndex; - }else{ - tb = this.getBodyTable(); - index = colIndex - this.cm.getLockedCount(); - } - if(tb && tb.rows){ - var rows = tb.rows; - var stopIndex = Math.min(maxRowsToMeasure || rows.length, rows.length); - for(var i = 0; i < stopIndex; i++){ - var cell = rows[i].childNodes[index].firstChild; - maxWidth = Math.max(maxWidth, cell.scrollWidth); - } - } - return maxWidth + 5; - }, - - autoSizeColumn : function(colIndex, forceMinSize, suppressEvent){ - if(this.cm.isHidden(colIndex)){ - return; - } - if(forceMinSize){ - var cid = this.cm.getColumnId(colIndex); - this.css.updateRule(this.colSelector + cid, "width", this.grid.minColumnWidth + "px"); - if(this.grid.autoSizeHeaders){ - this.css.updateRule(this.hdSelector + cid, "width", this.grid.minColumnWidth + "px"); - } - } - var newWidth = this.calcColumnWidth(colIndex); - this.cm.setColumnWidth(colIndex, - Math.max(this.grid.minColumnWidth, newWidth), suppressEvent); - if(!suppressEvent){ - this.grid.fireEvent("columnresize", colIndex, newWidth); - } - }, - - - autoSizeColumns : function(){ - var cm = this.grid.colModel; - var colCount = cm.getColumnCount(); - for(var i = 0; i < colCount; i++){ - this.autoSizeColumn(i, true, true); - } - if(cm.getTotalWidth() < this.scroller.dom.clientWidth){ - this.fitColumns(); - }else{ - this.updateColumns(); - this.layout(); - } - }, - - - fitColumns : function(reserveScrollSpace){ - var cm = this.grid.colModel; - var colCount = cm.getColumnCount(); - var cols = []; - var width = 0; - var i, w; - for (i = 0; i < colCount; i++){ - if(!cm.isHidden(i) && !cm.isFixed(i)){ - w = cm.getColumnWidth(i); - cols.push(i); - cols.push(w); - width += w; - } - } - var avail = Math.min(this.scroller.dom.clientWidth, this.el.getWidth()); - if(reserveScrollSpace){ - avail -= 17; - } - var frac = (avail - cm.getTotalWidth())/width; - while (cols.length){ - w = cols.pop(); - i = cols.pop(); - cm.setColumnWidth(i, Math.floor(w + w*frac), true); - } - this.updateColumns(); - this.layout(); - }, - - onRowSelect : function(rowIndex){ - var row = this.getRowComposite(rowIndex); - row.addClass("x-grid-row-selected"); - }, - - onRowDeselect : function(rowIndex){ - var row = this.getRowComposite(rowIndex); - row.removeClass("x-grid-row-selected"); - }, - - onCellSelect : function(row, col){ - var cell = this.getCell(row, col); - if(cell){ - Ext.fly(cell).addClass("x-grid-cell-selected"); - } - }, - - onCellDeselect : function(row, col){ - var cell = this.getCell(row, col); - if(cell){ - Ext.fly(cell).removeClass("x-grid-cell-selected"); - } - }, - - updateHeaderSortState : function(){ - var state = this.ds.getSortState(); - if(!state){ - return; - } - this.sortState = state; - var sortColumn = this.cm.findColumnIndex(state.field); - if(sortColumn != -1){ - var sortDir = state.direction; - var sc = this.sortClasses; - var hds = this.el.select(this.headerSelector).removeClass(sc); - hds.item(sortColumn).addClass(sc[sortDir == "DESC" ? 1 : 0]); - } - }, - - handleHeaderClick : function(g, index){ - if(this.headersDisabled){ - return; - } - var dm = g.dataSource, cm = g.colModel; - if(!cm.isSortable(index)){ - return; - } - g.stopEditing(); - dm.sort(cm.getDataIndex(index)); - }, - - - destroy : function(){ - if(this.colMenu){ - this.colMenu.removeAll(); - Ext.menu.MenuMgr.unregister(this.colMenu); - this.colMenu.getEl().remove(); - delete this.colMenu; - } - if(this.hmenu){ - this.hmenu.removeAll(); - Ext.menu.MenuMgr.unregister(this.hmenu); - this.hmenu.getEl().remove(); - delete this.hmenu; - } - if(this.grid.enableColumnMove){ - var dds = Ext.dd.DDM.ids['gridHeader' + this.grid.container.id]; - if(dds){ - for(var dd in dds){ - if(!dds[dd].config.isTarget && dds[dd].dragElId){ - var elid = dds[dd].dragElId; - dds[dd].unreg(); - Ext.get(elid).remove(); - } else if(dds[dd].config.isTarget){ - dds[dd].proxyTop.remove(); - dds[dd].proxyBottom.remove(); - dds[dd].unreg(); - } - if(Ext.dd.DDM.locationCache[dd]){ - delete Ext.dd.DDM.locationCache[dd]; - } - } - delete Ext.dd.DDM.ids['gridHeader' + this.grid.container.id]; - } - } - - this.bind(null, null); - Ext.EventManager.removeResizeListener(this.onWindowResize, this); - }, - - handleLockChange : function(){ - this.refresh(true); - }, - - onDenyColumnLock : function(){ - - }, - - onDenyColumnHide : function(){ - - }, - - handleHdMenuClick : function(item){ - var index = this.hdCtxIndex; - var cm = this.cm, ds = this.ds; - switch(item.id){ - case "asc": - ds.sort(cm.getDataIndex(index), "ASC"); - break; - case "desc": - ds.sort(cm.getDataIndex(index), "DESC"); - break; - case "lock": - var lc = cm.getLockedCount(); - if(cm.getColumnCount(true) <= lc+1){ - this.onDenyColumnLock(); - return; - } - if(lc != index){ - cm.setLocked(index, true, true); - cm.moveColumn(index, lc); - this.grid.fireEvent("columnmove", index, lc); - }else{ - cm.setLocked(index, true); - } - break; - case "unlock": - var lc = cm.getLockedCount(); - if((lc-1) != index){ - cm.setLocked(index, false, true); - cm.moveColumn(index, lc-1); - this.grid.fireEvent("columnmove", index, lc-1); - }else{ - cm.setLocked(index, false); - } - break; - default: - index = cm.getIndexById(item.id.substr(4)); - if(index != -1){ - if(item.checked && cm.getColumnCount(true) <= 1){ - this.onDenyColumnHide(); - return false; - } - cm.setHidden(index, item.checked); - } - } - return true; - }, - - beforeColMenuShow : function(){ - var cm = this.cm, colCount = cm.getColumnCount(); - this.colMenu.removeAll(); - for(var i = 0; i < colCount; i++){ - this.colMenu.add(new Ext.menu.CheckItem({ - id: "col-"+cm.getColumnId(i), - text: cm.getColumnHeader(i), - checked: !cm.isHidden(i), - hideOnClick:false - })); - } - }, - - handleHdCtx : function(g, index, e){ - e.stopEvent(); - var hd = this.getHeaderCell(index); - this.hdCtxIndex = index; - var ms = this.hmenu.items, cm = this.cm; - ms.get("asc").setDisabled(!cm.isSortable(index)); - ms.get("desc").setDisabled(!cm.isSortable(index)); - if(this.grid.enableColLock !== false){ - ms.get("lock").setDisabled(cm.isLocked(index)); - ms.get("unlock").setDisabled(!cm.isLocked(index)); - } - this.hmenu.show(hd, "tl-bl"); - }, - - handleHdOver : function(e){ - var hd = this.findHeaderCell(e.getTarget()); - if(hd && !this.headersDisabled){ - if(this.grid.colModel.isSortable(this.getCellIndex(hd))){ - this.fly(hd).addClass("x-grid-hd-over"); - } - } - }, - - handleHdOut : function(e){ - var hd = this.findHeaderCell(e.getTarget()); - if(hd){ - this.fly(hd).removeClass("x-grid-hd-over"); - } - }, - - handleSplitDblClick : function(e, t){ - var i = this.getCellIndex(t); - if(this.grid.enableColumnResize !== false && this.cm.isResizable(i) && !this.cm.isFixed(i)){ - this.autoSizeColumn(i, true); - this.layout(); - } - }, - - render : function(){ - - var cm = this.cm; - var colCount = cm.getColumnCount(); - - if(this.grid.monitorWindowResize === true){ - Ext.EventManager.onWindowResize(this.onWindowResize, this, true); - } - var header = this.renderHeaders(); - var body = this.templates.body.apply({rows:""}); - var html = this.templates.master.apply({ - lockedBody: body, - body: body, - lockedHeader: header[0], - header: header[1] - }); - - this.updateColumns(); - - this.grid.container.dom.innerHTML = html; - - this.initElements(); - - this.scroller.on("scroll", this.handleScroll, this); - this.lockedBody.on("mousewheel", this.handleWheel, this); - this.mainBody.on("mousewheel", this.handleWheel, this); - - this.mainHd.on("mouseover", this.handleHdOver, this); - this.mainHd.on("mouseout", this.handleHdOut, this); - this.mainHd.on("dblclick", this.handleSplitDblClick, this, - {delegate: "."+this.splitClass}); - - this.lockedHd.on("mouseover", this.handleHdOver, this); - this.lockedHd.on("mouseout", this.handleHdOut, this); - this.lockedHd.on("dblclick", this.handleSplitDblClick, this, - {delegate: "."+this.splitClass}); - - if(this.grid.enableColumnResize !== false && Ext.grid.SplitDragZone){ - new Ext.grid.SplitDragZone(this.grid, this.lockedHd.dom, this.mainHd.dom); - } - - this.updateSplitters(); - - if(this.grid.enableColumnMove && Ext.grid.HeaderDragZone){ - new Ext.grid.HeaderDragZone(this.grid, this.lockedHd.dom, this.mainHd.dom); - new Ext.grid.HeaderDropZone(this.grid, this.lockedHd.dom, this.mainHd.dom); - } - - if(this.grid.enableCtxMenu !== false && Ext.menu.Menu){ - this.hmenu = new Ext.menu.Menu({id: this.grid.id + "-hctx"}); - this.hmenu.add( - {id:"asc", text: this.sortAscText, cls: "xg-hmenu-sort-asc"}, - {id:"desc", text: this.sortDescText, cls: "xg-hmenu-sort-desc"} - ); - if(this.grid.enableColLock !== false){ - this.hmenu.add('-', - {id:"lock", text: this.lockText, cls: "xg-hmenu-lock"}, - {id:"unlock", text: this.unlockText, cls: "xg-hmenu-unlock"} - ); - } - if(this.grid.enableColumnHide !== false){ - - this.colMenu = new Ext.menu.Menu({id:this.grid.id + "-hcols-menu"}); - this.colMenu.on("beforeshow", this.beforeColMenuShow, this); - this.colMenu.on("itemclick", this.handleHdMenuClick, this); - - this.hmenu.add('-', - {id:"columns", text: this.columnsText, menu: this.colMenu} - ); - } - this.hmenu.on("itemclick", this.handleHdMenuClick, this); - - this.grid.on("headercontextmenu", this.handleHdCtx, this); - } - - if((this.grid.enableDragDrop || this.grid.enableDrag) && Ext.grid.GridDragZone){ - this.dd = new Ext.grid.GridDragZone(this.grid, { - ddGroup : this.grid.ddGroup || 'GridDD' - }); - } - for(var i = 0; i < colCount; i++){ - if(cm.isHidden(i)){ - this.hideColumn(i); - } - if(cm.config[i].align){ - this.css.updateRule(this.colSelector + i, "textAlign", cm.config[i].align); - this.css.updateRule(this.hdSelector + i, "textAlign", cm.config[i].align); - } - } - - this.updateHeaderSortState(); - - this.beforeInitialResize(); - this.layout(true); - - - this.renderPhase2.defer(1, this); - }, - - renderPhase2 : function(){ - - this.refresh(); - if(this.grid.autoSizeColumns){ - this.autoSizeColumns(); - } - }, - - beforeInitialResize : function(){ - - }, - - onColumnSplitterMoved : function(i, w){ - this.userResized = true; - var cm = this.grid.colModel; - cm.setColumnWidth(i, w, true); - var cid = cm.getColumnId(i); - this.css.updateRule(this.colSelector + cid, "width", (w-this.borderWidth) + "px"); - this.css.updateRule(this.hdSelector + cid, "width", (w-this.borderWidth) + "px"); - this.updateSplitters(); - this.layout(); - this.grid.fireEvent("columnresize", i, w); - }, - - syncRowHeights : function(startIndex, endIndex){ - if(this.grid.enableRowHeightSync === true && this.cm.getLockedCount() > 0){ - startIndex = startIndex || 0; - var mrows = this.getBodyTable().rows; - var lrows = this.getLockedTable().rows; - var len = mrows.length-1; - endIndex = Math.min(endIndex || len, len); - for(var i = startIndex; i <= endIndex; i++){ - var m = mrows[i], l = lrows[i]; - var h = Math.max(m.offsetHeight, l.offsetHeight); - m.style.height = l.style.height = h + "px"; - } - } - }, - - layout : function(initialRender, is2ndPass){ - var g = this.grid; - var auto = g.autoHeight; - var scrollOffset = 16; - var c = g.container, cm = this.cm, - expandCol = g.autoExpandColumn, - gv = this; - - - if(!c.dom.offsetWidth){ - if(initialRender){ - this.lockedWrap.show(); - this.mainWrap.show(); - } - return; - } - - var hasLock = this.cm.isLocked(0); - - var tbh = this.headerPanel.getHeight(); - var bbh = this.footerPanel.getHeight(); - - if(auto){ - var ch = this.getBodyTable().offsetHeight + tbh + bbh + this.mainHd.getHeight(); - var newHeight = ch + c.getBorderWidth("tb"); - if(g.maxHeight){ - newHeight = Math.min(g.maxHeight, newHeight); - } - c.setHeight(newHeight); - } - - if(g.autoWidth){ - c.setWidth(cm.getTotalWidth()+c.getBorderWidth('lr')); - } - - var s = this.scroller; - - var csize = c.getSize(true); - - this.el.setSize(csize.width, csize.height); - - this.headerPanel.setWidth(csize.width); - this.footerPanel.setWidth(csize.width); - - var hdHeight = this.mainHd.getHeight(); - var vw = csize.width; - var vh = csize.height - (tbh + bbh); - - s.setSize(vw, vh); - - var bt = this.getBodyTable(); - var ltWidth = hasLock ? - Math.max(this.getLockedTable().offsetWidth, this.lockedHd.dom.firstChild.offsetWidth) : 0; - - var scrollHeight = bt.offsetHeight; - var scrollWidth = ltWidth + bt.offsetWidth; - var vscroll = false, hscroll = false; - - this.scrollSizer.setSize(scrollWidth, scrollHeight+hdHeight); - - var lw = this.lockedWrap, mw = this.mainWrap; - var lb = this.lockedBody, mb = this.mainBody; - - setTimeout(function(){ - var t = s.dom.offsetTop; - var w = s.dom.clientWidth, - h = s.dom.clientHeight; - - lw.setTop(t); - lw.setSize(ltWidth, h); - - mw.setLeftTop(ltWidth, t); - mw.setSize(w-ltWidth, h); - - lb.setHeight(h-hdHeight); - mb.setHeight(h-hdHeight); - - if(is2ndPass !== true && !gv.userResized && expandCol){ - - var ci = cm.getIndexById(expandCol); - var tw = cm.getTotalWidth(false); - var currentWidth = cm.getColumnWidth(ci); - var cw = Math.min(Math.max(((w-tw)+currentWidth-2)-(w <= s.dom.offsetWidth ? 0 : 18), g.autoExpandMin), g.autoExpandMax); - if(currentWidth != cw){ - cm.setColumnWidth(ci, cw, true); - gv.css.updateRule(gv.colSelector+expandCol, "width", (cw - gv.borderWidth) + "px"); - gv.css.updateRule(gv.hdSelector+expandCol, "width", (cw - gv.borderWidth) + "px"); - gv.updateSplitters(); - gv.layout(false, true); - } - } - - if(initialRender){ - lw.show(); - mw.show(); - } - - }, 10); - }, - - onWindowResize : function(){ - if(!this.grid.monitorWindowResize || this.grid.autoHeight){ - return; - } - this.layout(); - }, - - appendFooter : function(parentEl){ - return null; - }, - - sortAscText : "Sort Ascending", - sortDescText : "Sort Descending", - lockText : "Lock Column", - unlockText : "Unlock Column", - columnsText : "Columns" -}); - - -Ext.grid.HeaderDragZone = function(grid, hd, hd2){ - this.grid = grid; - this.view = grid.getView(); - this.ddGroup = "gridHeader" + this.grid.container.id; - Ext.grid.HeaderDragZone.superclass.constructor.call(this, hd); - if(hd2){ - this.setHandleElId(Ext.id(hd)); - this.setOuterHandleElId(Ext.id(hd2)); - } - this.scroll = false; -}; -Ext.extend(Ext.grid.HeaderDragZone, Ext.dd.DragZone, { - maxDragWidth: 120, - getDragData : function(e){ - var t = Ext.lib.Event.getTarget(e); - var h = this.view.findHeaderCell(t); - if(h){ - return {ddel: h.firstChild, header:h}; - } - return false; - }, - - onInitDrag : function(e){ - this.view.headersDisabled = true; - var clone = this.dragData.ddel.cloneNode(true); - clone.style.width = Math.min(this.dragData.header.offsetWidth,this.maxDragWidth) + "px"; - this.proxy.update(clone); - return true; - }, - - afterValidDrop : function(){ - var v = this.view; - setTimeout(function(){ - v.headersDisabled = false; - }, 50); - }, - - afterInvalidDrop : function(){ - var v = this.view; - setTimeout(function(){ - v.headersDisabled = false; - }, 50); - } -}); - - - -Ext.grid.HeaderDropZone = function(grid, hd, hd2){ - this.grid = grid; - this.view = grid.getView(); - - this.proxyTop = Ext.DomHelper.append(document.body, { - tag:"div", cls:"col-move-top", html:" " - }, true); - this.proxyBottom = Ext.DomHelper.append(document.body, { - tag:"div", cls:"col-move-bottom", html:" " - }, true); - this.proxyTop.hide = this.proxyBottom.hide = function(){ - this.setLeftTop(-100,-100); - this.setStyle("visibility", "hidden"); - }; - this.ddGroup = "gridHeader" + this.grid.container.id; - - - Ext.grid.HeaderDropZone.superclass.constructor.call(this, grid.container.dom); -}; -Ext.extend(Ext.grid.HeaderDropZone, Ext.dd.DropZone, { - proxyOffsets : [-4, -9], - fly: Ext.Element.fly, - - getTargetFromEvent : function(e){ - var t = Ext.lib.Event.getTarget(e); - var cindex = this.view.findCellIndex(t); - if(cindex !== false){ - return this.view.getHeaderCell(cindex); - } - }, - - nextVisible : function(h){ - var v = this.view, cm = this.grid.colModel; - h = h.nextSibling; - while(h){ - if(!cm.isHidden(v.getCellIndex(h))){ - return h; - } - h = h.nextSibling; - } - return null; - }, - - prevVisible : function(h){ - var v = this.view, cm = this.grid.colModel; - h = h.prevSibling; - while(h){ - if(!cm.isHidden(v.getCellIndex(h))){ - return h; - } - h = h.prevSibling; - } - return null; - }, - - positionIndicator : function(h, n, e){ - var x = Ext.lib.Event.getPageX(e); - var r = Ext.lib.Dom.getRegion(n.firstChild); - var px, pt, py = r.top + this.proxyOffsets[1]; - if((r.right - x) <= (r.right-r.left)/2){ - px = r.right+this.view.borderWidth; - pt = "after"; - }else{ - px = r.left; - pt = "before"; - } - var oldIndex = this.view.getCellIndex(h); - var newIndex = this.view.getCellIndex(n); - var locked = this.grid.colModel.isLocked(newIndex); - if(pt == "after"){ - newIndex++; - } - if(oldIndex < newIndex){ - newIndex--; - } - if(oldIndex == newIndex && (locked == this.grid.colModel.isLocked(oldIndex))){ - return false; - } - px += this.proxyOffsets[0]; - this.proxyTop.setLeftTop(px, py); - this.proxyTop.show(); - if(!this.bottomOffset){ - this.bottomOffset = this.view.mainHd.getHeight(); - } - this.proxyBottom.setLeftTop(px, py+this.proxyTop.dom.offsetHeight+this.bottomOffset); - this.proxyBottom.show(); - return pt; - }, - - onNodeEnter : function(n, dd, e, data){ - if(data.header != n){ - this.positionIndicator(data.header, n, e); - } - }, - - onNodeOver : function(n, dd, e, data){ - var result = false; - if(data.header != n){ - result = this.positionIndicator(data.header, n, e); - } - if(!result){ - this.proxyTop.hide(); - this.proxyBottom.hide(); - } - return result ? this.dropAllowed : this.dropNotAllowed; - }, - - onNodeOut : function(n, dd, e, data){ - this.proxyTop.hide(); - this.proxyBottom.hide(); - }, - - onNodeDrop : function(n, dd, e, data){ - var h = data.header; - if(h != n){ - var cm = this.grid.colModel; - var x = Ext.lib.Event.getPageX(e); - var r = Ext.lib.Dom.getRegion(n.firstChild); - var pt = (r.right - x) <= ((r.right-r.left)/2) ? "after" : "before"; - var oldIndex = this.view.getCellIndex(h); - var newIndex = this.view.getCellIndex(n); - var locked = cm.isLocked(newIndex); - if(pt == "after"){ - newIndex++; - } - if(oldIndex < newIndex){ - newIndex--; - } - if(oldIndex == newIndex && (locked == cm.isLocked(oldIndex))){ - return false; - } - cm.setLocked(oldIndex, locked, true); - cm.moveColumn(oldIndex, newIndex); - this.grid.fireEvent("columnmove", oldIndex, newIndex); - return true; - } - return false; - } -}); -Ext.grid.SplitDragZone = function(grid, hd, hd2){ - this.grid = grid; - this.view = grid.getView(); - this.proxy = this.view.resizeProxy; - Ext.grid.SplitDragZone.superclass.constructor.call(this, hd, - "gridSplitters" + this.grid.container.id, { - dragElId : Ext.id(this.proxy.dom), resizeFrame:false - }); - this.setHandleElId(Ext.id(hd)); - this.setOuterHandleElId(Ext.id(hd2)); - this.scroll = false; -}; -Ext.extend(Ext.grid.SplitDragZone, Ext.dd.DDProxy, { - fly: Ext.Element.fly, - - b4StartDrag : function(x, y){ - this.view.headersDisabled = true; - this.proxy.setHeight(this.view.mainWrap.getHeight()); - var w = this.cm.getColumnWidth(this.cellIndex); - var minw = Math.max(w-this.grid.minColumnWidth, 0); - this.resetConstraints(); - this.setXConstraint(minw, 1000); - this.setYConstraint(0, 0); - this.minX = x - minw; - this.maxX = x + 1000; - this.startPos = x; - Ext.dd.DDProxy.prototype.b4StartDrag.call(this, x, y); - }, - - - handleMouseDown : function(e){ - ev = Ext.EventObject.setEvent(e); - var t = this.fly(ev.getTarget()); - if(t.hasClass("x-grid-split")){ - this.cellIndex = this.view.getCellIndex(t.dom); - this.split = t.dom; - this.cm = this.grid.colModel; - if(this.cm.isResizable(this.cellIndex) && !this.cm.isFixed(this.cellIndex)){ - Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this, arguments); - } - } - }, - - endDrag : function(e){ - this.view.headersDisabled = false; - var endX = Math.max(this.minX, Ext.lib.Event.getPageX(e)); - var diff = endX - this.startPos; - this.view.onColumnSplitterMoved(this.cellIndex, this.cm.getColumnWidth(this.cellIndex)+diff); - }, - - autoOffset : function(){ - this.setDelta(0,0); - } -}); -Ext.grid.GridDragZone = function(grid, config){ - this.view = grid.getView(); - Ext.grid.GridDragZone.superclass.constructor.call(this, this.view.lockedBody.dom, config); - this.setHandleElId(Ext.id(this.view.lockedBody.dom)); - this.setOuterHandleElId(Ext.id(this.view.mainBody.dom)); - this.scroll = false; - this.grid = grid; - this.ddel = document.createElement('div'); - this.ddel.className = 'x-grid-dd-wrap'; -}; - -Ext.extend(Ext.grid.GridDragZone, Ext.dd.DragZone, { - ddGroup : "GridDD", - - getDragData : function(e){ - var t = Ext.lib.Event.getTarget(e); - var rowIndex = this.view.findRowIndex(t); - if(rowIndex !== false){ - var sm = this.grid.selModel; - if(!sm.isSelected(rowIndex) || e.hasModifier()){ - sm.handleMouseDown(e, t); - } - return {grid: this.grid, ddel: this.ddel, rowIndex: rowIndex, selections:sm.getSelections()}; - } - return false; - }, - - onInitDrag : function(e){ - var data = this.dragData; - this.ddel.innerHTML = this.grid.getDragDropText(); - this.proxy.update(this.ddel); - }, - - afterRepair : function(){ - this.dragging = false; - }, - - getRepairXY : function(e, data){ - return false; - }, - - onEndDrag : function(data, e){ - }, - - onValidDrop : function(dd, e, id){ - this.hideProxy(); - }, - - beforeInvalidDrop : function(e, id){ - - } -}); - -Ext.grid.ColumnModel = function(config){ - Ext.grid.ColumnModel.superclass.constructor.call(this); - - this.config = config; - this.lookup = {}; - - - - - for(var i = 0, len = config.length; i < len; i++){ - if(typeof config[i].dataIndex == "undefined"){ - config[i].dataIndex = i; - } - if(typeof config[i].renderer == "string"){ - config[i].renderer = Ext.util.Format[config[i].renderer]; - } - if(typeof config[i].id == "undefined"){ - config[i].id = i; - } - this.lookup[config[i].id] = config[i]; - } - - - this.defaultWidth = 100; - - - this.defaultSortable = false; - - this.addEvents({ - - "widthchange": true, - - "headerchange": true, - - "hiddenchange": true, - - "columnmoved" : true, - - "columnlockchange" : true - }); - Ext.grid.ColumnModel.superclass.constructor.call(this); -}; -Ext.extend(Ext.grid.ColumnModel, Ext.util.Observable, { - - - - - - - - - - getColumnId : function(index){ - return this.config[index].id; - }, - - getColumnById : function(id){ - return this.lookup[id]; - }, - - getIndexById : function(id){ - for(var i = 0, len = this.config.length; i < len; i++){ - if(this.config[i].id == id){ - return i; - } - } - return -1; - }, - - moveColumn : function(oldIndex, newIndex){ - var c = this.config[oldIndex]; - this.config.splice(oldIndex, 1); - this.config.splice(newIndex, 0, c); - this.dataMap = null; - this.fireEvent("columnmoved", this, oldIndex, newIndex); - }, - - isLocked : function(colIndex){ - return this.config[colIndex].locked === true; - }, - - setLocked : function(colIndex, value, suppressEvent){ - if(this.isLocked(colIndex) == value){ - return; - } - this.config[colIndex].locked = value; - if(!suppressEvent){ - this.fireEvent("columnlockchange", this, colIndex, value); - } - }, - - getTotalLockedWidth : function(){ - var totalWidth = 0; - for(var i = 0; i < this.config.length; i++){ - if(this.isLocked(i) && !this.isHidden(i)){ - this.totalWidth += this.getColumnWidth(i); - } - } - return totalWidth; - }, - - getLockedCount : function(){ - for(var i = 0, len = this.config.length; i < len; i++){ - if(!this.isLocked(i)){ - return i; - } - } - }, - - - getColumnCount : function(visibleOnly){ - if(visibleOnly == true){ - var c = 0; - for(var i = 0, len = this.config.length; i < len; i++){ - if(!this.isHidden(i)){ - c++; - } - } - return c; - } - return this.config.length; - }, - - - isSortable : function(col){ - if(typeof this.config[col].sortable == "undefined"){ - return this.defaultSortable; - } - return this.config[col].sortable; - }, - - - getRenderer : function(col){ - if(!this.config[col].renderer){ - return Ext.grid.ColumnModel.defaultRenderer; - } - return this.config[col].renderer; - }, - - - setRenderer : function(col, fn){ - this.config[col].renderer = fn; - }, - - - getColumnWidth : function(col){ - return this.config[col].width || this.defaultWidth; - }, - - - setColumnWidth : function(col, width, suppressEvent){ - this.config[col].width = width; - this.totalWidth = null; - if(!suppressEvent){ - this.fireEvent("widthchange", this, col, width); - } - }, - - - getTotalWidth : function(includeHidden){ - if(!this.totalWidth){ - this.totalWidth = 0; - for(var i = 0, len = this.config.length; i < len; i++){ - if(includeHidden || !this.isHidden(i)){ - this.totalWidth += this.getColumnWidth(i); - } - } - } - return this.totalWidth; - }, - - - getColumnHeader : function(col){ - return this.config[col].header; - }, - - - setColumnHeader : function(col, header){ - this.config[col].header = header; - this.fireEvent("headerchange", this, col, header); - }, - - - getColumnTooltip : function(col){ - return this.config[col].tooltip; - }, - - setColumnTooltip : function(col, tooltip){ - this.config[col].tooltip = tooltip; - }, - - - getDataIndex : function(col){ - return this.config[col].dataIndex; - }, - - - setDataIndex : function(col, dataIndex){ - this.config[col].dataIndex = dataIndex; - }, - - findColumnIndex : function(dataIndex){ - var c = this.config; - for(var i = 0, len = c.length; i < len; i++){ - if(c[i].dataIndex == dataIndex){ - return i; - } - } - return -1; - }, - - - isCellEditable : function(colIndex, rowIndex){ - return (this.config[colIndex].editable || (typeof this.config[colIndex].editable == "undefined" && this.config[colIndex].editor)) ? true : false; - }, - - - getCellEditor : function(colIndex, rowIndex){ - return this.config[colIndex].editor; - }, - - - setEditable : function(col, editable){ - this.config[col].editable = editable; - }, - - - - isHidden : function(colIndex){ - return this.config[colIndex].hidden; - }, - - - - isFixed : function(colIndex){ - return this.config[colIndex].fixed; - }, - - - isResizable : function(colIndex){ - return this.config[colIndex].resizable !== false; - }, - - setHidden : function(colIndex, hidden){ - this.config[colIndex].hidden = hidden; - this.totalWidth = null; - this.fireEvent("hiddenchange", this, colIndex, hidden); - }, - - - setEditor : function(col, editor){ - this.config[col].editor = editor; - } -}); - -Ext.grid.ColumnModel.defaultRenderer = function(value){ - if(typeof value == "string" && value.length < 1){ - return " "; - } - return value; -}; - - -Ext.grid.DefaultColumnModel = Ext.grid.ColumnModel; - - -Ext.grid.AbstractSelectionModel = function(){ - this.locked = false; - Ext.grid.AbstractSelectionModel.superclass.constructor.call(this); -}; - -Ext.extend(Ext.grid.AbstractSelectionModel, Ext.util.Observable, { - - init : function(grid){ - this.grid = grid; - this.initEvents(); - }, - - - lock : function(){ - this.locked = true; - }, - - - unlock : function(){ - this.locked = false; - }, - - - isLocked : function(){ - return this.locked; - } -}); - -Ext.grid.RowSelectionModel = function(config){ - Ext.apply(this, config); - this.selections = new Ext.util.MixedCollection(false, function(o){ - return o.id; - }); - - this.last = false; - this.lastActive = false; - - this.addEvents({ - - "selectionchange" : true, - - "beforerowselect" : true, - - "rowselect" : true, - - "rowdeselect" : true - }); - - this.locked = false; -}; - -Ext.extend(Ext.grid.RowSelectionModel, Ext.grid.AbstractSelectionModel, { - - singleSelect : false, - - - initEvents : function(){ - - if(!this.grid.enableDragDrop && !this.grid.enableDrag){ - this.grid.on("mousedown", this.handleMouseDown, this); - } - - this.rowNav = new Ext.KeyNav(this.grid.container, { - "up" : function(e){ - if(!e.shiftKey){ - this.selectPrevious(e.shiftKey); - }else if(this.last !== false && this.lastActive !== false){ - var last = this.last; - this.selectRange(this.last, this.lastActive-1); - this.grid.getView().focusRow(this.lastActive); - if(last !== false){ - this.last = last; - } - }else{ - this.selectFirstRow(); - } - }, - "down" : function(e){ - if(!e.shiftKey){ - this.selectNext(e.shiftKey); - }else if(this.last !== false && this.lastActive !== false){ - var last = this.last; - this.selectRange(this.last, this.lastActive+1); - this.grid.getView().focusRow(this.lastActive); - if(last !== false){ - this.last = last; - } - }else{ - this.selectFirstRow(); - } - }, - scope: this - }); - - var view = this.grid.view; - view.on("refresh", this.onRefresh, this); - view.on("rowupdated", this.onRowUpdated, this); - view.on("rowremoved", this.onRemove, this); - }, - - - onRefresh : function(){ - var ds = this.grid.dataSource, i, v = this.grid.view; - var s = this.selections; - s.each(function(r){ - if((i = ds.indexOfId(r.id)) != -1){ - v.onRowSelect(i); - }else{ - s.remove(r); - } - }); - }, - - - onRemove : function(v, index, r){ - this.selections.remove(r); - }, - - - onRowUpdated : function(v, index, r){ - if(this.isSelected(r)){ - v.onRowSelect(index); - } - }, - - - selectRecords : function(records, keepExisting){ - if(!keepExisting){ - this.clearSelections(); - } - var ds = this.grid.dataSource; - for(var i = 0, len = records.length; i < len; i++){ - this.selectRow(ds.indexOf(records[i]), true); - } - }, - - - getCount : function(){ - return this.selections.length; - }, - - - selectFirstRow : function(){ - this.selectRow(0); - }, - - - selectLastRow : function(keepExisting){ - this.selectRow(this.grid.dataSource.getCount() - 1, keepExisting); - }, - - - selectNext : function(keepExisting){ - if(this.last !== false && (this.last+1) < this.grid.dataSource.getCount()){ - this.selectRow(this.last+1, keepExisting); - this.grid.getView().focusRow(this.last); - } - }, - - - selectPrevious : function(keepExisting){ - if(this.last){ - this.selectRow(this.last-1, keepExisting); - this.grid.getView().focusRow(this.last); - } - }, - - - getSelections : function(){ - return [].concat(this.selections.items); - }, - - - getSelected : function(){ - return this.selections.itemAt(0); - }, - - - - clearSelections : function(fast){ - if(this.locked) return; - if(fast !== true){ - var ds = this.grid.dataSource; - var s = this.selections; - s.each(function(r){ - this.deselectRow(ds.indexOfId(r.id)); - }, this); - s.clear(); - }else{ - this.selections.clear(); - } - this.last = false; - }, - - - - selectAll : function(){ - if(this.locked) return; - this.selections.clear(); - for(var i = 0, len = this.grid.dataSource.getCount(); i < len; i++){ - this.selectRow(i, true); - } - }, - - - hasSelection : function(){ - return this.selections.length > 0; - }, - - - isSelected : function(index){ - var r = typeof index == "number" ? this.grid.dataSource.getAt(index) : index; - return (r && this.selections.key(r.id) ? true : false); - }, - - - isIdSelected : function(id){ - return (this.selections.key(id) ? true : false); - }, - - - handleMouseDown : function(e, t){ - var view = this.grid.getView(), rowIndex; - if(this.isLocked() || (rowIndex = view.findRowIndex(t)) === false){ - return; - }; - if(e.shiftKey && this.last !== false){ - var last = this.last; - this.selectRange(last, rowIndex, e.ctrlKey); - this.last = last; - view.focusRow(rowIndex); - }else{ - var isSelected = this.isSelected(rowIndex); - if(e.button != 0 && isSelected){ - view.focusRow(rowIndex); - }else if(e.ctrlKey && isSelected){ - this.deselectRow(rowIndex); - }else{ - this.selectRow(rowIndex, e.button == 0 && (e.ctrlKey || e.shiftKey)); - view.focusRow(rowIndex); - } - } - }, - - - selectRows : function(rows, keepExisting){ - if(!keepExisting){ - this.clearSelections(); - } - for(var i = 0, len = rows.length; i < len; i++){ - this.selectRow(rows[i], true); - } - }, - - - selectRange : function(startRow, endRow, keepExisting){ - if(this.locked) return; - if(!keepExisting){ - this.clearSelections(); - } - if(startRow <= endRow){ - for(var i = startRow; i <= endRow; i++){ - this.selectRow(i, true); - } - }else{ - for(var i = startRow; i >= endRow; i--){ - this.selectRow(i, true); - } - } - }, - - - deselectRange : function(startRow, endRow, preventViewNotify){ - if(this.locked) return; - for(var i = startRow; i <= endRow; i++){ - this.deselectRow(i, preventViewNotify); - } - }, - - - selectRow : function(index, keepExisting, preventViewNotify){ - if(this.locked || (index < 0 || index >= this.grid.dataSource.getCount())) return; - if(this.fireEvent("beforerowselect", this, index, keepExisting) !== false){ - if(!keepExisting || this.singleSelect){ - this.clearSelections(); - } - var r = this.grid.dataSource.getAt(index); - this.selections.add(r); - this.last = this.lastActive = index; - if(!preventViewNotify){ - this.grid.getView().onRowSelect(index); - } - this.fireEvent("rowselect", this, index, r); - this.fireEvent("selectionchange", this); - } - }, - - - deselectRow : function(index, preventViewNotify){ - if(this.locked) return; - if(this.last == index){ - this.last = false; - } - if(this.lastActive == index){ - this.lastActive = false; - } - var r = this.grid.dataSource.getAt(index); - this.selections.remove(r); - if(!preventViewNotify){ - this.grid.getView().onRowDeselect(index); - } - this.fireEvent("rowdeselect", this, index); - this.fireEvent("selectionchange", this); - }, - - - restoreLast : function(){ - if(this._last){ - this.last = this._last; - } - }, - - - acceptsNav : function(row, col, cm){ - return !cm.isHidden(col) && cm.isCellEditable(col, row); - }, - - - onEditorKey : function(field, e){ - var k = e.getKey(), newCell, g = this.grid, ed = g.activeEditor; - if(k == e.TAB){ - ed.completeEdit(); - if(e.shiftKey){ - newCell = g.walkCells(ed.row, ed.col-1, -1, this.acceptsNav, this); - }else{ - newCell = g.walkCells(ed.row, ed.col+1, 1, this.acceptsNav, this); - } - e.stopEvent(); - }else if(k == e.ENTER && !e.ctrlKey){ - ed.completeEdit(); - if(e.shiftKey){ - newCell = g.walkCells(ed.row-1, ed.col, -1, this.acceptsNav, this); - }else{ - newCell = g.walkCells(ed.row+1, ed.col, 1, this.acceptsNav, this); - } - e.stopEvent(); - }else if(k == e.ESC){ - ed.cancelEdit(); - } - if(newCell){ - g.startEditing(newCell[0], newCell[1]); - } - } -}); - -Ext.grid.CellSelectionModel = function(config){ - Ext.apply(this, config); - - this.selection = null; - - this.addEvents({ - - "beforecellselect" : true, - - "cellselect" : true, - - "selectionchange" : true - }); -}; - -Ext.extend(Ext.grid.CellSelectionModel, Ext.grid.AbstractSelectionModel, { - - - initEvents : function(){ - this.grid.on("mousedown", this.handleMouseDown, this); - this.grid.container.on(Ext.isIE ? "keydown" : "keypress", this.handleKeyDown, this); - var view = this.grid.view; - view.on("refresh", this.onViewChange, this); - view.on("rowupdated", this.onRowUpdated, this); - view.on("beforerowremoved", this.clearSelections, this); - view.on("beforerowsinserted", this.clearSelections, this); - if(this.grid.isEditor){ - this.grid.on("beforeedit", this.beforeEdit, this); - } - }, - - beforeEdit : function(e){ - this.select(e.row, e.column, false, true, e.record); - }, - - onRowUpdated : function(v, index, r){ - if(this.selection && this.selection.record == r){ - v.onCellSelect(index, this.selection.cell[1]); - } - }, - - onViewChange : function(){ - this.clearSelections(true); - }, - - getSelectedCell : function(){ - return this.selection ? this.selection.cell : null; - }, - - - clearSelections : function(preventNotify){ - var s = this.selection; - if(s){ - if(preventNotify !== true){ - this.grid.view.onCellDeselect(s.cell[0], s.cell[1]); - } - this.selection = null; - this.fireEvent("selectionchange", this, null); - } - }, - - - hasSelection : function(){ - return this.selection ? true : false; - }, - - - handleMouseDown : function(e, t){ - var v = this.grid.getView(); - if(this.isLocked()){ - return; - }; - var row = v.findRowIndex(t); - var cell = v.findCellIndex(t); - if(row !== false && cell !== false){ - this.select(row, cell); - } - }, - - - select : function(rowIndex, colIndex, preventViewNotify, preventFocus, r){ - if(this.fireEvent("beforecellselect", this, rowIndex, colIndex) !== false){ - this.clearSelections(); - r = r || this.grid.dataSource.getAt(rowIndex); - this.selection = { - record : r, - cell : [rowIndex, colIndex] - }; - if(!preventViewNotify){ - var v = this.grid.getView(); - v.onCellSelect(rowIndex, colIndex); - if(preventFocus !== true){ - v.focusCell(rowIndex, colIndex); - } - } - this.fireEvent("cellselect", this, rowIndex, colIndex); - this.fireEvent("selectionchange", this, this.selection); - } - }, - - isSelectable : function(rowIndex, colIndex, cm){ - return !cm.isHidden(colIndex); - }, - - - handleKeyDown : function(e){ - if(!e.isNavKeyPress()){ - return; - } - var g = this.grid, s = this.selection; - if(!s){ - e.stopEvent(); - var cell = g.walkCells(0, 0, 1, this.isSelectable, this); - if(cell){ - this.select(cell[0], cell[1]); - } - return; - } - var sm = this; - var walk = function(row, col, step){ - return g.walkCells(row, col, step, sm.isSelectable, sm); - }; - var k = e.getKey(), r = s.cell[0], c = s.cell[1]; - var newCell; - - switch(k){ - case e.TAB: - if(e.shiftKey){ - newCell = walk(r, c-1, -1); - }else{ - newCell = walk(r, c+1, 1); - } - break; - case e.DOWN: - newCell = walk(r+1, c, 1); - break; - case e.UP: - newCell = walk(r-1, c, -1); - break; - case e.RIGHT: - newCell = walk(r, c+1, 1); - break; - case e.LEFT: - newCell = walk(r, c-1, -1); - break; - case e.ENTER: - if(g.isEditor && !g.editing){ - g.startEditing(r, c); - e.stopEvent(); - return; - } - break; - }; - if(newCell){ - this.select(newCell[0], newCell[1]); - e.stopEvent(); - } - }, - - acceptsNav : function(row, col, cm){ - return !cm.isHidden(col) && cm.isCellEditable(col, row); - }, - - onEditorKey : function(field, e){ - var k = e.getKey(), newCell, g = this.grid, ed = g.activeEditor; - if(k == e.TAB){ - if(e.shiftKey){ - newCell = g.walkCells(ed.row, ed.col-1, -1, this.acceptsNav, this); - }else{ - newCell = g.walkCells(ed.row, ed.col+1, 1, this.acceptsNav, this); - } - e.stopEvent(); - }else if(k == e.ENTER && !e.ctrlKey){ - ed.completeEdit(); - e.stopEvent(); - }else if(k == e.ESC){ - ed.cancelEdit(); - } - if(newCell){ - g.startEditing(newCell[0], newCell[1]); - } - } -}); - -Ext.grid.EditorGrid = function(container, config){ - Ext.grid.EditorGrid.superclass.constructor.call(this, container, config); - this.container.addClass("xedit-grid"); - - if(!this.selModel){ - this.selModel = new Ext.grid.CellSelectionModel(); - } - - this.activeEditor = null; - - this.addEvents({ - - "beforeedit" : true, - - "afteredit" : true, - - "validateedit" : true - }); - this.on("bodyscroll", this.stopEditing, this); - this.on(this.clicksToEdit == 1 ? "cellclick" : "celldblclick", this.onCellDblClick, this); -}; - -Ext.extend(Ext.grid.EditorGrid, Ext.grid.Grid, { - isEditor : true, - clicksToEdit: 2, - trackMouseOver: false, - - onCellDblClick : function(g, row, col){ - this.startEditing(row, col); - }, - - onEditComplete : function(ed, value, startValue){ - this.editing = false; - this.activeEditor = null; - ed.un("specialkey", this.selModel.onEditorKey, this.selModel); - if(String(value) != String(startValue)){ - var r = ed.record; - var field = this.colModel.getDataIndex(ed.col); - var e = { - grid: this, - record: r, - field: field, - originalValue: startValue, - value: value, - row: ed.row, - column: ed.col, - cancel:false - }; - if(this.fireEvent("validateedit", e) !== false && !e.cancel){ - r.set(field, e.value); - delete e.cancel; - this.fireEvent("afteredit", e); - } - } - this.view.focusCell(ed.row, ed.col); - }, - - - startEditing : function(row, col){ - this.stopEditing(); - if(this.colModel.isCellEditable(col, row)){ - this.view.focusCell(row, col); - var r = this.dataSource.getAt(row); - var field = this.colModel.getDataIndex(col); - var e = { - grid: this, - record: r, - field: field, - value: r.data[field], - row: row, - column: col, - cancel:false - }; - if(this.fireEvent("beforeedit", e) !== false && !e.cancel){ - this.editing = true; - (function(){ - var ed = this.colModel.getCellEditor(col, row); - ed.row = row; - ed.col = col; - ed.record = r; - ed.on("complete", this.onEditComplete, this, {single: true}); - ed.on("specialkey", this.selModel.onEditorKey, this.selModel); - this.activeEditor = ed; - var v = r.data[field]; - ed.startEdit(this.view.getCell(row, col), v); - }).defer(50, this); - } - } - }, - - - stopEditing : function(){ - if(this.activeEditor){ - this.activeEditor.completeEdit(); - } - this.activeEditor = null; - } -}); -Ext.grid.GridEditor = function(field, config){ - Ext.grid.GridEditor.superclass.constructor.call(this, field, config); - field.monitorTab = false; -}; - -Ext.extend(Ext.grid.GridEditor, Ext.Editor, { - alignment: "tl-tl", - autoSize: "width", - hideEl : false, - cls: "x-small-editor x-grid-editor", - shim:false, - shadow:"frame" -}); -Ext.grid.PropertyRecord = Ext.data.Record.create([ - {name:'name',type:'string'}, 'value' -]); - -Ext.grid.PropertyStore = function(grid, source){ - this.grid = grid; - this.store = new Ext.data.Store({ - recordType : Ext.grid.PropertyRecord - }); - this.store.on('update', this.onUpdate, this); - if(source){ - this.setSource(source); - } - Ext.grid.PropertyStore.superclass.constructor.call(this); -}; -Ext.extend(Ext.grid.PropertyStore, Ext.util.Observable, { - setSource : function(o){ - this.source = o; - this.store.removeAll(); - var data = []; - for(var k in o){ - if(this.isEditableValue(o[k])){ - data.push(new Ext.grid.PropertyRecord({name: k, value: o[k]}, k)); - } - } - this.store.loadRecords({records: data}, {}, true); - }, - - onUpdate : function(ds, record, type){ - if(type == Ext.data.Record.EDIT){ - var v = record.data['value']; - var oldValue = record.modified['value']; - if(this.grid.fireEvent('beforepropertychange', this.source, record.id, v, oldValue) !== false){ - this.source[record.id] = v; - record.commit(); - this.grid.fireEvent('propertychange', this.source, record.id, v, oldValue); - }else{ - record.reject(); - } - } - }, - - getProperty : function(row){ - return this.store.getAt(row); - }, - - isEditableValue: function(val){ - if(val && val instanceof Date){ - return true; - }else if(typeof val == 'object' || typeof val == 'function'){ - return false; - } - return true; - }, - - setValue : function(prop, value){ - this.source[prop] = value; - this.store.getById(prop).set('value', value); - }, - - getSource : function(){ - return this.source; - } -}); - -Ext.grid.PropertyColumnModel = function(grid, store){ - this.grid = grid; - var g = Ext.grid; - g.PropertyColumnModel.superclass.constructor.call(this, [ - {header: this.nameText, sortable: true, dataIndex:'name', id: 'name'}, - {header: this.valueText, resizable:false, dataIndex: 'value', id: 'value'} - ]); - this.store = store; - this.bselect = Ext.DomHelper.append(document.body, { - tag: 'select', style:'display:none', cls: 'x-grid-editor', children: [ - {tag: 'option', value: 'true', html: 'true'}, - {tag: 'option', value: 'false', html: 'false'} - ] - }); - Ext.id(this.bselect); - var f = Ext.form; - this.editors = { - 'date' : new g.GridEditor(new f.DateField({selectOnFocus:true})), - 'string' : new g.GridEditor(new f.TextField({selectOnFocus:true})), - 'number' : new g.GridEditor(new f.NumberField({selectOnFocus:true, style:'text-align:left;'})), - 'boolean' : new g.GridEditor(new f.Field({el:this.beselect,selectOnFocus:true})) - }; - this.renderCellDelegate = this.renderCell.createDelegate(this); - this.renderPropDelegate = this.renderProp.createDelegate(this); -}; - -Ext.extend(Ext.grid.PropertyColumnModel, Ext.grid.ColumnModel, { - nameText : 'Name', - valueText : 'Value', - dateFormat : 'm/j/Y', - renderDate : function(dateVal){ - return dateVal.dateFormat(this.dateFormat); - }, - - renderBool : function(bVal){ - return bVal ? 'true' : 'false'; - }, - - isCellEditable : function(colIndex, rowIndex){ - return colIndex == 1; - }, - - getRenderer : function(col){ - return col == 1 ? - this.renderCellDelegate : this.renderPropDelegate; - }, - - renderProp : function(v){ - return this.getPropertyName(v); - }, - - renderCell : function(val){ - var rv = val; - if(val instanceof Date){ - rv = this.renderDate(val); - }else if(typeof val == 'boolean'){ - rv = this.renderBool(val); - } - return Ext.util.Format.htmlEncode(rv); - }, - - getPropertyName : function(name){ - var pn = this.grid.propertyNames; - return pn && pn[name] ? pn[name] : name; - }, - - getCellEditor : function(colIndex, rowIndex){ - var p = this.store.getProperty(rowIndex); - var n = p.data['name'], val = p.data['value']; - if(this.grid.customEditors[n]){ - return this.grid.customEditors[n]; - } - if(val instanceof Date){ - return this.editors['date']; - }else if(typeof val == 'number'){ - return this.editors['number']; - }else if(typeof val == 'boolean'){ - return this.editors['boolean']; - }else{ - return this.editors['string']; - } - } -}); - -Ext.grid.PropertyGrid = function(container, config){ - config = config || {}; - var store = new Ext.grid.PropertyStore(this); - this.store = store; - var cm = new Ext.grid.PropertyColumnModel(this, store); - store.store.sort('name', 'ASC'); - Ext.grid.PropertyGrid.superclass.constructor.call(this, container, Ext.apply({ - ds: store.store, - cm: cm, - enableColLock:false, - enableColumnMove:false, - stripeRows:false, - trackMouseOver: false, - clicksToEdit:1 - }, config)); - this.container.addClass('x-props-grid'); - this.lastEditRow = null; - this.on('columnresize', this.onColumnResize, this); - this.addEvents({ - beforepropertychange: true, - propertychange: true - }); - this.customEditors = this.customEditors || {}; -}; -Ext.extend(Ext.grid.PropertyGrid, Ext.grid.EditorGrid, { - render : function(){ - Ext.grid.PropertyGrid.superclass.render.call(this); - this.autoSize.defer(100, this); - }, - - autoSize : function(){ - Ext.grid.PropertyGrid.superclass.autoSize.call(this); - if(this.view){ - this.view.fitColumns(); - } - }, - - onColumnResize : function(){ - this.colModel.setColumnWidth(1, this.container.getWidth(true)-this.colModel.getColumnWidth(0)); - this.autoSize(); - }, - - setSource : function(source){ - this.store.setSource(source); - }, - - getSource : function(){ - return this.store.getSource(); - } -}); - -Ext.LoadMask = function(el, config){ - this.el = Ext.get(el); - Ext.apply(this, config); - if(this.store){ - this.store.on('beforeload', this.onBeforeLoad, this); - this.store.on('load', this.onLoad, this); - this.store.on('loadexception', this.onLoad, this); - this.removeMask = false; - }else{ - var um = this.el.getUpdateManager(); - um.showLoadIndicator = false; um.on('beforeupdate', this.onBeforeLoad, this); - um.on('update', this.onLoad, this); - um.on('failure', this.onLoad, this); - this.removeMask = true; - } -}; - -Ext.LoadMask.prototype = { - - - msg : 'Loading...', - - msgCls : 'x-mask-loading', - - - disabled: false, - - - disable : function(){ - this.disabled = true; - }, - - - enable : function(){ - this.disabled = false; - }, - - onLoad : function(){ - this.el.unmask(this.removeMask); - }, - - onBeforeLoad : function(){ - if(!this.disabled){ - this.el.mask(this.msg, this.msgCls); - } - }, - - destroy : function(){ - if(this.store){ - this.store.un('beforeload', this.onBeforeLoad, this); - this.store.un('load', this.onLoad, this); - this.store.un('loadexception', this.onLoad, this); - }else{ - var um = this.el.getUpdateManager(); - um.un('beforeupdate', this.onBeforeLoad, this); - um.un('update', this.onLoad, this); - um.un('failure', this.onLoad, this); - } - } -}; -Ext.debug = { - init : function(){ - var CP = Ext.ContentPanel; - var bd = Ext.get(document.body); - - var dlg = new Ext.LayoutDialog('x-debug-browser', { - autoCreate:true, - width:800, - height:450, - title: 'Ext Debug Console & Inspector', - proxyDrag:true, - shadow:true, - center:{alwaysShowTabs:true}, - constraintoviewport:false - }); - - dlg.el.swallowEvent('click'); - - var mainLayout = dlg.getLayout(); - mainLayout.beginUpdate(); - - var clayout = mainLayout.add('center', - new Ext.debug.InnerLayout('x-debug-console', 400, { - title: 'Debug Console' - } - )); - - var ilayout = mainLayout.add('center', - new Ext.debug.InnerLayout('x-debug-inspector', 250, { - title: 'DOM Inspector' - } - )); - - var scriptPanel = clayout.add('east', new CP({ - autoCreate:{ - tag: 'div', children: [ - {tag: 'div'}, - {tag:'textarea'} - ] - }, - fitContainer:true, - fitToFrame:true, - title:'Script Console', - autoScroll: Ext.isGecko, setSize : function(w, h){ - Ext.ContentPanel.prototype.setSize.call(this, w, h); - if(Ext.isGecko && Ext.isStrict){ - var s = this.adjustForComponents(w, h); - this.resizeEl.setSize(s.width-2, s.height-2); - } - } - })); - var sel = scriptPanel.el; - var script = sel.child('textarea'); - scriptPanel.resizeEl = script; - var sctb = scriptPanel.toolbar = new Ext.Toolbar(sel.child('div')); - sctb.add({ - text: 'Run', - handler: function(){ - var s = script.dom.value; - if(trap.checked){ - try{ - var rt = eval(s); - Ext.debug.dump(rt === undefined? '(no return)' : rt); - }catch(e){ - Ext.debug.log(e.message || e.descript); - } - }else{ - var rt = eval(s); - Ext.debug.dump(rt === undefined? '(no return)' : rt); - } - } - }, { - text: 'Clear', - handler: function(){ - script.dom.value = ''; - script.dom.focus(); - } - }); - - var trap = Ext.DomHelper.append(sctb.el, {tag:'input', type:'checkbox', checked: 'checked'}); - trap.checked = true; - sctb.add('-', trap, 'Trap Errors'); - - - var stylesGrid = new Ext.grid.PropertyGrid(bd.createChild(), { - nameText: 'Style', - enableCtxMenu: false, - enableColumnResize: false - }); - - var stylePanel = ilayout.add('east', new Ext.GridPanel(stylesGrid, - {title: '(No element selected)'})); - - stylesGrid.render(); - - stylesGrid.getView().mainHd.setDisplayed(false); - - clayout.tbar.add({ - text: 'Clear', - handler: function(){ - Ext.debug.console.jsonData = []; - Ext.debug.console.refresh(); - } - }); - - var treeEl = ilayout.main.getEl(); - var tb = ilayout.tbar; - - var inspectIgnore, inspecting; - - function inspectListener(e, t){ - if(!inspectIgnore.contains(e.getPoint())){ - findNode(t); - } - } - - function stopInspecting(e, t){ - if(!inspectIgnore.contains(e.getPoint())){ - inspect.toggle(false); - if(findNode(t) !== false){ - e.stopEvent(); - } - } - } - - function stopInspectingEsc(e, t){ - if(e.getKey() == e.ESC){ - inspect.toggle(false); - } - } - - var inspect = tb.addButton({ - text: 'Inspect', - enableToggle: true, - pressed:false, - toggleHandler: function(n, pressed){ - var d = Ext.get(document); - if(pressed){ - d.on('mouseover', inspectListener, window, {buffer:50}); - d.on('mousedown', stopInspecting); - d.on('keydown', stopInspectingEsc); - inspectIgnore = dlg.el.getRegion(); - inspecting = true; - }else{ - d.un('mouseover', inspectListener); - d.un('mousedown', stopInspecting); - d.on('keydown', stopInspectingEsc); - inspecting = false; - var n = tree.getSelectionModel().getSelectedNode(); - if(n && n.htmlNode){ - onNodeSelect(tree, n, false); - } - } - } - }); - - tb.addSeparator(); - - var frameEl = tb.addButton({ - text: 'Highlight Selection', - enableToggle: true, - pressed:false, - toggleHandler: function(n, pressed){ - var n = tree.getSelectionModel().getSelectedNode(); - if(n && n.htmlNode){ - n[pressed ? 'frame' : 'unframe'](); - } - } - }); - - tb.addSeparator(); - - var reload = tb.addButton({ - text: 'Refresh Children', - disabled:true, - handler: function(){ - var n = tree.getSelectionModel().getSelectedNode(); - if(n && n.reload){ - n.reload(); - } - } - }); - - tb.add( '-', { - text: 'Collapse All', - handler: function(){ - tree.root.collapse(true); - } - }); - - mainLayout.endUpdate(); - - mainLayout.getRegion('center').showPanel(0); - - stylesGrid.on('propertychange', function(s, name, value){ - var node = stylesGrid.treeNode; - if(styles){ - node.htmlNode.style[name] = value; - }else{ - node.htmlNode[name] = value; - } - node.refresh(true); - }); - - var stb = new Ext.Toolbar(stylesGrid.view.getHeaderPanel(true)); - - var swap = stb.addButton({ - text: 'DOM Attributes', - menu: { - items: [ - new Ext.menu.CheckItem({id:'dom', text:'DOM Attributes', checked: true, group:'xdb-styles'}), - new Ext.menu.CheckItem({id:'styles', text:'CSS Properties', group:'xdb-styles'}) - ] - } - }); - - swap.menu.on('click', function(){ - styles = swap.menu.items.get('styles').checked; - showAll[styles? 'show' : 'hide'](); - swap.setText(styles ? 'CSS Properties' : 'DOM Attributes'); - var n = tree.getSelectionModel().getSelectedNode(); - if(n){ - onNodeSelect(tree, n); - } - }); - - var addStyle = stb.addButton({ - text: 'Add', - disabled: true, - handler: function(){ - Ext.MessageBox.prompt('Add Property', 'Property Name:', function(btn, v){ - var store = stylesGrid.store.store; - if(btn == 'ok' && v && !store.getById(v)){ - var r = new Ext.grid.PropertyRecord({name:v, value: ''}, v); - store.add(r); - stylesGrid.startEditing(store.getCount()-1, 1); - } - }); - } - }); - - var showAll = stb.addButton({ - text: 'Computed Styles', - hidden: true, - pressed: false, - enableToggle: true, - toggleHandler: function(){ - var n = tree.getSelectionModel().getSelectedNode(); - if(n){ - onNodeSelect(tree, n); - } - } - }); - - var styles = false, hnode; - var nonSpace = /^\s*$/; - var html = Ext.util.Format.htmlEncode; - var ellipsis = Ext.util.Format.ellipsis; - var styleRe = /\s?([a-z\-]*)\:([^;]*)(?:[;\s\n\r]*)/gi; - - function findNode(n){ - if(!n || n.nodeType != 1 || n == document.body || n == document){ - return false; - } - var pn = [n], p = n; - while((p = p.parentNode) && p.nodeType == 1 && p.tagName.toUpperCase() != 'HTML'){ - pn.unshift(p); - } - var cn = hnode; - for(var i = 0, len = pn.length; i < len; i++){ - cn.expand(); - cn = cn.findChild('htmlNode', pn[i]); - if(!cn){ return false; - } - } - cn.select(); - var a = cn.ui.anchor; - treeEl.dom.scrollTop = Math.max(0 ,a.offsetTop-10); - cn.highlight(); - return true; - } - - function nodeTitle(n){ - var s = n.tagName; - if(n.id){ - s += '#'+n.id; - }else if(n.className){ - s += '.'+n.className; - } - return s; - } - - function onNodeSelect(t, n, last){ - if(last && last.unframe){ - last.unframe(); - } - var props = {}; - if(n && n.htmlNode){ - if(frameEl.pressed){ - n.frame(); - } - if(inspecting){ - return; - } - addStyle.enable(); - reload.setDisabled(n.leaf); - var dom = n.htmlNode; - stylePanel.setTitle(nodeTitle(dom)); - if(styles && !showAll.pressed){ - var s = dom.style ? dom.style.cssText : ''; - if(s){ - var m; - while ((m = styleRe.exec(s)) != null){ - props[m[1].toLowerCase()] = m[2]; - } - } - }else if(styles){ - var cl = Ext.debug.cssList; - var s = dom.style, fly = Ext.fly(dom); - if(s){ - for(var i = 0, len = cl.length; i' + ellipsis(html(String(c.nodeValue)), 35) + '', - cls: 'x-tree-noicon' - })); - } - } - cb(); - }; - - var tree = new Ext.tree.TreePanel(treeEl, { - enableDD:false , - loader: loader, - lines:false, - rootVisible:false, - animate:false, - hlColor:'ffff9c' - }); - tree.getSelectionModel().on('selectionchange', onNodeSelect, null, {buffer:250}); - - var root = tree.setRootNode(new Ext.tree.TreeNode('Ext')); - - hnode = root.appendChild(new Ext.debug.HtmlNode( - document.getElementsByTagName('html')[0] - )); - - tree.render(); - - Ext.debug.console = new Ext.JsonView(clayout.main.getEl(), - '
    > {msg}
    '); - Ext.debug.console.jsonData = []; - - Ext.debug.dialog = dlg; - }, - - show : function(){ - var d = Ext.debug; - if(!d.dialog){ - d.init(); - } - if(!d.dialog.isVisible()){ - d.dialog.show(); - } - }, - - hide : function(){ - if(Ext.debug.dialog){ - Ext.debug.dialog.hide(); - } - }, - - - log : function(arg1, arg2, etc){ - Ext.debug.show(); - var m = ""; - for(var i = 0, len = arguments.length; i < len; i++){ - m += (i == 0 ? "" : ", ") + arguments[i]; - } - var cn = Ext.debug.console; - cn.jsonData.unshift({msg: m}); - cn.refresh(); - }, - - - logf : function(format, arg1, arg2, etc){ - Ext.debug.log(String.format.apply(String, arguments)); - }, - - - dump : function(o){ - if(typeof o == 'string' || typeof o == 'number' || typeof o == 'undefined' || o instanceof Date){ - Ext.debug.log(o); - }else if(!o){ - Ext.debug.log("null"); - }else if(typeof o != "object"){ - Ext.debug.log('Unknown return type'); - }else if(o instanceof Array){ - Ext.debug.log('['+o.join(',')+']'); - }else{ - var b = ["{\n"]; - for(var key in o){ - var to = typeof o[key]; - if(to != "function" && to != "object"){ - b.push(String.format(" {0}: {1},\n", key, o[key])); - } - } - var s = b.join(""); - if(s.length > 3){ - s = s.substr(0, s.length-2); - } - Ext.debug.log(s + "\n}"); - } - }, - - _timers : {}, - - time : function(name){ - name = name || "def"; - Ext._timers[name] = new Date().getTime(); - }, - - - timeEnd : function(name, printResults){ - var t = new Date().getTime(); - name = name || "def"; - var v = String.format("{0} ms", t-Ext._timers[name]); - Ext._timers[name] = new Date().getTime(); - if(printResults !== false){ - Ext.debug.log('Timer ' + (name == "def" ? v : name + ": " + v)); - } - return v; - } -}; - -Ext.debug.HtmlNode = function(){ - var html = Ext.util.Format.htmlEncode; - var ellipsis = Ext.util.Format.ellipsis; - var nonSpace = /^\s*$/; - - var attrs = [ - {n: 'id', v: 'id'}, - {n: 'className', v: 'class'}, - {n: 'name', v: 'name'}, - {n: 'type', v: 'type'}, - {n: 'src', v: 'src'}, - {n: 'href', v: 'href'} - ]; - - function hasChild(n){ - for(var i = 0, c; c = n.childNodes[i]; i++){ - if(c.nodeType == 1){ - return true; - } - } - return false; - } - - function renderNode(n, leaf){ - var tag = n.tagName.toLowerCase(); - var s = '<' + tag; - for(var i = 0, len = attrs.length; i < len; i++){ - var a = attrs[i]; - var v = n[a.n]; - if(v && !nonSpace.test(v)){ - s += ' ' + a.v + '="' + html(v) +'"'; - } - } - var style = n.style ? n.style.cssText : ''; - if(style){ - s += ' style="' + html(style.toLowerCase()) +'"'; - } - if(leaf && n.childNodes.length > 0){ - s+='>' + ellipsis(html(String(n.innerHTML)), 35) + '</'+tag+'>'; - }else if(leaf){ - s += ' />'; - }else{ - s += '>'; - } - return s; - } - - var HtmlNode = function(n){ - var leaf = !hasChild(n); - this.htmlNode = n; - this.tagName = n.tagName.toLowerCase(); - var attr = { - text : renderNode(n, leaf), - leaf : leaf, - cls: 'x-tree-noicon' - }; - HtmlNode.superclass.constructor.call(this, attr); - this.attributes.htmlNode = n; if(!leaf){ - this.on('expand', this.onExpand, this); - this.on('collapse', this.onCollapse, this); - } - }; - - - Ext.extend(HtmlNode, Ext.tree.AsyncTreeNode, { - cls: 'x-tree-noicon', - preventHScroll: true, - refresh : function(highlight){ - var leaf = !hasChild(this.htmlNode); - this.setText(renderNode(this.htmlNode, leaf)); - if(highlight){ - Ext.fly(this.ui.textNode).highlight(); - } - }, - - onExpand : function(){ - if(!this.closeNode && this.parentNode){ - this.closeNode = this.parentNode.insertBefore(new Ext.tree.TreeNode({ - text:'</' + this.tagName + '>', - cls: 'x-tree-noicon' - }), this.nextSibling); - }else if(this.closeNode){ - this.closeNode.ui.show(); - } - }, - - onCollapse : function(){ - if(this.closeNode){ - this.closeNode.ui.hide(); - } - }, - - render : function(bulkRender){ - HtmlNode.superclass.render.call(this, bulkRender); - }, - - highlightNode : function(){ - }, - - highlight : function(){ - }, - - frame : function(){ - this.htmlNode.style.border = '1px solid #0000ff'; - }, - - unframe : function(){ - this.htmlNode.style.border = ''; - } - }); - - return HtmlNode; -}(); - -Ext.debug.InnerLayout = function(id, w, cfg){ - var el = Ext.DomHelper.append(document.body, {id:id}); - var layout = new Ext.BorderLayout(el, { - north: { - initialSize:28 - }, - center: { - titlebar: false - }, - east: { - split:true, - initialSize:w, - titlebar:true - } - }); - Ext.debug.InnerLayout.superclass.constructor.call(this, layout, cfg); - - layout.beginUpdate(); - - var tbPanel = layout.add('north', new Ext.ContentPanel({ - autoCreate:true, fitToFrame:true})); - - this.main = layout.add('center', new Ext.ContentPanel({ - autoCreate:true, fitToFrame:true, autoScroll:true})); - - this.tbar = new Ext.Toolbar(tbPanel.el); - - var mtbEl = tbPanel.resizeEl = tbPanel.el.child('div.x-toolbar'); - mtbEl.setStyle('border-bottom', '0 none'); - - layout.endUpdate(true); -}; - -Ext.extend(Ext.debug.InnerLayout, Ext.NestedLayoutPanel, { - add : function(){ - return this.layout.add.apply(this.layout, arguments); - } -}); - -Ext.debug.cssList = ['background-color','border','border-color','border-spacing', -'border-style','border-top','border-right','border-bottom','border-left','border-top-color', -'border-right-color','border-bottom-color','border-left-color','border-top-width','border-right-width', -'border-bottom-width','border-left-width','border-width','bottom','color','font-size','font-size-adjust', -'font-stretch','font-style','height','left','letter-spacing','line-height','margin','margin-top', -'margin-right','margin-bottom','margin-left','marker-offset','max-height','max-width','min-height', -'min-width','orphans','outline','outline-color','outline-style','outline-width','overflow','padding', -'padding-top','padding-right','padding-bottom','padding-left','quotes','right','size','text-indent', -'top','width','word-spacing','z-index','opacity','outline-offset']; - -if(typeof console == 'undefined'){ - console = Ext.debug; -} - - -Ext.EventManager.on(window, 'load', function(){ - Ext.get(document).on('keydown', function(e){ - if(e.ctrlKey && e.shiftKey && e.getKey() == e.HOME){ - Ext.debug.show(); - } - }); -}); - -Ext.print = Ext.log = Ext.debug.log; -Ext.printf = Ext.logf = Ext.debug.logf; -Ext.dump = Ext.debug.dump; -Ext.timer = Ext.debug.time; -Ext.timerEnd = Ext.debug.timeEnd; - diff --git a/www/extras/extjs/ext-all.js b/www/extras/extjs/ext-all.js deleted file mode 100644 index f877f0296..000000000 --- a/www/extras/extjs/ext-all.js +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.DomHelper=function(){var _1=null;var _2=/^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i;var _3=function(o){if(typeof o=="string"){return o;}var b="";if(!o.tag){o.tag="div";}b+="<"+o.tag;for(var _6 in o){if(_6=="tag"||_6=="children"||_6=="cn"||_6=="html"||typeof o[_6]=="function"){continue;}if(_6=="style"){var s=o["style"];if(typeof s=="function"){s=s.call();}if(typeof s=="string"){b+=" style=\""+s+"\"";}else{if(typeof s=="object"){b+=" style=\"";for(var _8 in s){if(typeof s[_8]!="function"){b+=_8+":"+s[_8]+";";}}b+="\"";}}}else{if(_6=="cls"){b+=" class=\""+o["cls"]+"\"";}else{if(_6=="htmlFor"){b+=" for=\""+o["htmlFor"]+"\"";}else{b+=" "+_6+"=\""+o[_6]+"\"";}}}}if(_2.test(o.tag)){b+="/>";}else{b+=">";var cn=o.children||o.cn;if(cn){if(cn instanceof Array){for(var i=0,_b=cn.length;i<_b;i++){b+=_3(cn[i],b);}}else{b+=_3(cn,b);}}if(o.html){b+=o.html;}b+="";}return b;};var _c=function(o,_e){var el=document.createElement(o.tag);var _10=el.setAttribute?true:false;for(var _11 in o){if(_11=="tag"||_11=="children"||_11=="cn"||_11=="html"||_11=="style"||typeof o[_11]=="function"){continue;}if(_11=="cls"){el.className=o["cls"];}else{if(_10){el.setAttribute(_11,o[_11]);}else{el[_11]=o[_11];}}}Ext.DomHelper.applyStyles(el,o.style);var cn=o.children||o.cn;if(cn){if(cn instanceof Array){for(var i=0,len=cn.length;i",tbe=""+te,trs=tbs+"",tre=""+tbe;var _22=function(tag,_24,el,_26){if(!_1){_1=document.createElement("div");}var _27;var _28=null;if(tag=="td"){if(_24=="afterbegin"||_24=="beforeend"){return;}if(_24=="beforebegin"){_28=el;el=el.parentNode;}else{_28=el.nextSibling;el=el.parentNode;}_27=_15(4,trs,_26,tre);}else{if(tag=="tr"){if(_24=="beforebegin"){_28=el;el=el.parentNode;_27=_15(3,tbs,_26,tbe);}else{if(_24=="afterend"){_28=el.nextSibling;el=el.parentNode;_27=_15(3,tbs,_26,tbe);}else{if(_24=="afterbegin"){_28=el.firstChild;}_27=_15(4,trs,_26,tre);}}}else{if(tag=="tbody"){if(_24=="beforebegin"){_28=el;el=el.parentNode;_27=_15(2,ts,_26,te);}else{if(_24=="afterend"){_28=el.nextSibling;el=el.parentNode;_27=_15(2,ts,_26,te);}else{if(_24=="afterbegin"){_28=el.firstChild;}_27=_15(3,tbs,_26,tbe);}}}else{if(_24=="beforebegin"||_24=="afterend"){return;}if(_24=="afterbegin"){_28=el.firstChild;}_27=_15(2,ts,_26,te);}}}el.insertBefore(_27,_28);return _27;};return {useDom:false,markup:function(o){return _3(o);},applyStyles:function(el,_2b){if(_2b){el=Ext.fly(el);if(typeof _2b=="string"){var re=/\s?([a-z\-]*)\:\s?([^;]*);?/gi;var _2d;while((_2d=re.exec(_2b))!=null){el.setStyle(_2d[1],_2d[2]);}}else{if(typeof _2b=="object"){for(var _2e in _2b){el.setStyle(_2e,_2b[_2e]);}}else{if(typeof _2b=="function"){Ext.DomHelper.applyStyles(el,_2b.call());}}}}},insertHtml:function(_2f,el,_31){_2f=_2f.toLowerCase();if(el.insertAdjacentHTML){var tag=el.tagName.toLowerCase();if(tag=="table"||tag=="tbody"||tag=="tr"||tag=="td"){var rs;if(rs=_22(tag,_2f,el,_31)){return rs;}}switch(_2f){case "beforebegin":el.insertAdjacentHTML(_2f,_31);return el.previousSibling;case "afterbegin":el.insertAdjacentHTML(_2f,_31);return el.firstChild;case "beforeend":el.insertAdjacentHTML(_2f,_31);return el.lastChild;case "afterend":el.insertAdjacentHTML(_2f,_31);return el.nextSibling;}throw "Illegal insertion point -> \""+_2f+"\"";}var _34=el.ownerDocument.createRange();var _35;switch(_2f){case "beforebegin":_34.setStartBefore(el);_35=_34.createContextualFragment(_31);el.parentNode.insertBefore(_35,el);return el.previousSibling;case "afterbegin":if(el.firstChild){_34.setStartBefore(el.firstChild);_35=_34.createContextualFragment(_31);el.insertBefore(_35,el.firstChild);return el.firstChild;}else{el.innerHTML=_31;return el.firstChild;}case "beforeend":if(el.lastChild){_34.setStartAfter(el.lastChild);_35=_34.createContextualFragment(_31);el.appendChild(_35);return el.lastChild;}else{el.innerHTML=_31;return el.lastChild;}case "afterend":_34.setStartAfter(el);_35=_34.createContextualFragment(_31);el.parentNode.insertBefore(_35,el.nextSibling);return el.nextSibling;}throw "Illegal insertion point -> \""+_2f+"\"";},insertBefore:function(el,o,_38){return this.doInsert(el,o,_38,"beforeBegin");},insertAfter:function(el,o,_3b){return this.doInsert(el,o,_3b,"afterEnd","nextSibling");},insertFirst:function(el,o,_3e){return this.doInsert(el,o,_3e,"afterBegin");},doInsert:function(el,o,_41,pos,_43){el=Ext.getDom(el);var _44;if(this.useDom){_44=_c(o,null);el.parentNode.insertBefore(_44,_43?el[_43]:el);}else{var _45=_3(o);_44=this.insertHtml(pos,el,_45);}return _41?Ext.get(_44,true):_44;},append:function(el,o,_48){el=Ext.getDom(el);var _49;if(this.useDom){_49=_c(o,null);el.appendChild(_49);}else{var _4a=_3(o);_49=this.insertHtml("beforeEnd",el,_4a);}return _48?Ext.get(_49,true):_49;},overwrite:function(el,o,_4d){el=Ext.getDom(el);el.innerHTML=_3(o);return _4d?Ext.get(el.firstChild,true):el.firstChild;},createTemplate:function(o){var _4f=_3(o);return new Ext.Template(_4f);}};}(); - -Ext.Template=function(_1){if(_1 instanceof Array){_1=_1.join("");}else{if(arguments.length>1){_1=Array.prototype.join.call(arguments,"");}}this.html=_1;};Ext.Template.prototype={applyTemplate:function(_2){if(this.compiled){return this.compiled(_2);}var _3=this.disableFormats!==true;var fm=Ext.util.Format,_5=this;var fn=function(m,_8,_9,_a){if(_9&&_3){if(_9.substr(0,5)=="this."){return _5.call(_9.substr(5),_2[_8]);}else{if(_a){var re=/^\s*['"](.*)["']\s*$/;_a=_a.split(",");for(var i=0,_d=_a.length;i<_d;i++){_a[i]=_a[i].replace(re,"$1");}_a=[_2[_8]].concat(_a);}else{_a=[_2[_8]];}return fm[_9].apply(fm,_a);}}else{return _2[_8]!==undefined?_2[_8]:"";}};return this.html.replace(this.re,fn);},set:function(_e,_f){this.html=_e;this.compiled=null;if(_f){this.compile();}return this;},disableFormats:false,re:/\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,compile:function(){var fm=Ext.util.Format;var _11=this.disableFormats!==true;var sep=Ext.isGecko?"+":",";var fn=function(m,_15,_16,_17){if(_16&&_11){_17=_17?","+_17:"";if(_16.substr(0,5)!="this."){_16="fm."+_16+"(";}else{_16="this.call(\""+_16.substr(5)+"\", ";_17="";}}else{_17="",_16="(values['"+_15+"'] == undefined ? '' : ";}return "'"+sep+_16+"values['"+_15+"']"+_17+")"+sep+"'";};var _18;if(Ext.isGecko){_18="this.compiled = function(values){ return '"+this.html.replace(/(\r\n|\n)/g,"\\n").replace("'","\\'").replace(this.re,fn)+"';};";}else{_18=["this.compiled = function(values){ return ['"];_18.push(this.html.replace(/(\r\n|\n)/g,"\\n").replace("'","\\'").replace(this.re,fn));_18.push("'].join('');};");_18=_18.join("");}eval(_18);return this;},call:function(_19,_1a){return this[_19](_1a);},insertFirst:function(el,_1c,_1d){return this.doInsert("afterBegin",el,_1c,_1d);},insertBefore:function(el,_1f,_20){return this.doInsert("beforeBegin",el,_1f,_20);},insertAfter:function(el,_22,_23){return this.doInsert("afterEnd",el,_22,_23);},append:function(el,_25,_26){return this.doInsert("beforeEnd",el,_25,_26);},doInsert:function(_27,el,_29,_2a){el=Ext.getDom(el);var _2b=Ext.DomHelper.insertHtml(_27,el,this.applyTemplate(_29));return _2a?Ext.get(_2b,true):_2b;},overwrite:function(el,_2d,_2e){el=Ext.getDom(el);el.innerHTML=this.applyTemplate(_2d);return _2e?Ext.get(el.firstChild,true):el.firstChild;}};Ext.Template.prototype.apply=Ext.Template.prototype.applyTemplate;Ext.DomHelper.Template=Ext.Template;Ext.Template.from=function(el){el=Ext.getDom(el);return new Ext.Template(el.value||el.innerHTML);};Ext.MasterTemplate=function(){Ext.MasterTemplate.superclass.constructor.apply(this,arguments);this.originalHtml=this.html;var st={};var m,re=this.subTemplateRe;re.lastIndex=0;var _33=0;while(m=re.exec(this.html)){var _34=m[1],_35=m[2];st[_33]={name:_34,index:_33,buffer:[],tpl:new Ext.Template(_35)};if(_34){st[_34]=st[_33];}st[_33].tpl.compile();st[_33].tpl.call=this.call.createDelegate(this);_33++;}this.subCount=_33;this.subs=st;};Ext.extend(Ext.MasterTemplate,Ext.Template,{subTemplateRe:/((?:.|\n)*?)<\/tpl>/gi,add:function(_36,_37){if(arguments.length==1){_37=arguments[0];_36=0;}var s=this.subs[_36];s.buffer[s.buffer.length]=s.tpl.apply(_37);return this;},fill:function(_39,_3a,_3b){var a=arguments;if(a.length==1||(a.length==2&&typeof a[1]=="boolean")){_3a=a[0];_39=0;_3b=a[1];}if(_3b){this.reset();}for(var i=0,len=_3a.length;i]\s?|\s|$)/;var _8=/^(#)?([\w-\*]+)/;function child(p,_a){var i=0;var n=p.firstChild;while(n){if(n.nodeType==1){if(++i==_a){return n;}}n=n.nextSibling;}return null;}function next(n){while((n=n.nextSibling)&&n.nodeType!=1){}return n;}function prev(n){while((n=n.previousSibling)&&n.nodeType!=1){}return n;}function clean(d){var n=d.firstChild,ni=-1;while(n){var nx=n.nextSibling;if(n.nodeType==3&&!_4.test(n.nodeValue)){d.removeChild(n);}else{n.nodeIndex=++ni;}n=nx;}return this;}function byClassName(c,a,v,re,cn){if(!v){return c;}var r=[];for(var i=0,ci;ci=c[i];i++){cn=ci.className;if(cn&&(" "+cn+" ").indexOf(v)!=-1){r[r.length]=ci;}}return r;}function attrValue(n,_1c){if(!n.tagName&&typeof n.length!="undefined"){n=n[0];}if(!n){return null;}if(_1c=="for"){return n.htmlFor;}if(_1c=="class"||_1c=="className"){return n.className;}return n.getAttribute(_1c)||n[_1c];}function getNodes(ns,_1e,_1f){var _20=[],cs;if(!ns){return _20;}_1e=_1e?_1e.replace(_5,""):"";_1f=_1f||"*";if(typeof ns.getElementsByTagName!="undefined"){ns=[ns];}if(_1e!="/"&&_1e!=">"){for(var i=0,ni;ni=ns[i];i++){cs=ni.getElementsByTagName(_1f);for(var j=0,ci;ci=cs[j];j++){_20[_20.length]=ci;}}}else{for(var i=0,ni;ni=ns[i];i++){var cn=ni.getElementsByTagName(_1f);for(var j=0,cj;cj=cn[j];j++){if(cj.parentNode==ni){_20[_20.length]=cj;}}}}return _20;}function concat(a,b){if(b.slice){return a.concat(b);}for(var i=0,l=b.length;i0);},filter:function(els,ss,_92){ss=ss.replace(_5,"");if(!_2[ss]){_2[ss]=Ext.DomQuery.compile(ss,"simple");}var _93=_2[ss](els);return _92?quickDiff(_93,els):_93;},matchers:[{re:/^\.([\w-]+)/,select:"n = byClassName(n, null, \" {1} \");"},{re:/^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,select:"n = byPseudo(n, \"{1}\", \"{2}\");"},{re:/^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/,select:"n = byAttribute(n, \"{2}\", \"{4}\", \"{3}\", \"{1}\");"},{re:/^#([\w-]+)/,select:"n = byId(n, null, \"{1}\");"},{re:/^@([\w-]+)/,select:"return {firstChild:{nodeValue:attrValue(n, \"{1}\")}};"}],operators:{"=":function(a,v){return a==v;},"!=":function(a,v){return a!=v;},"^=":function(a,v){return a&&a.substr(0,v.length)==v;},"$=":function(a,v){return a&&a.substr(a.length-v.length)==v;},"*=":function(a,v){return a&&a.indexOf(v)!==-1;},"%=":function(a,v){return (a%v)==0;}},pseudos:{"first-child":function(c){var r=[],n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.previousSibling)&&n.nodeType!=1){}if(!n){r[r.length]=ci;}}return r;},"last-child":function(c){var r=[];for(var i=0,ci;ci=n=c[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(!n){r[r.length]=ci;}}return r;},"nth-child":function(c,a){var r=[];if(a!="odd"&&a!="even"){for(var i=0,ci;ci=c[i];i++){var m=child(ci.parentNode,a);if(m==ci){r[r.length]=m;}}return r;}var p;for(var i=0,l=c.length;i0){r[r.length]=ci;}}return r;},"next":function(c,ss){var is=Ext.DomQuery.is;var r=[];for(var i=0,ci;ci=c[i];i++){var n=next(ci);if(n&&is(n,ss)){r[r.length]=ci;}}return r;},"prev":function(c,ss){var is=Ext.DomQuery.is;var r=[];for(var i=0,ci;ci=c[i];i++){var n=prev(ci);if(n&&is(n,ss)){r[r.length]=ci;}}return r;}}};}();Ext.query=Ext.DomQuery.select; - -Ext.util.Observable=function(){if(this.listeners){this.on(this.listeners);delete this.listeners;}};Ext.util.Observable.prototype={fireEvent:function(){var ce=this.events[arguments[0].toLowerCase()];if(typeof ce=="object"){return ce.fire.apply(ce,Array.prototype.slice.call(arguments,1));}else{return true;}},filterOptRe:/^(?:scope|delay|buffer|single)$/,addListener:function(_2,fn,_4,o){if(typeof _2=="object"){o=_2;for(var e in o){if(this.filterOptRe.test(e)){continue;}if(typeof o[e]=="function"){this.addListener(e,o[e],o.scope,o);}else{this.addListener(e,o[e].fn,o[e].scope,o[e]);}}return;}o=(!o||typeof o=="boolean")?{}:o;_2=_2.toLowerCase();var ce=this.events[_2]||true;if(typeof ce=="boolean"){ce=new Ext.util.Event(this,_2);this.events[_2]=ce;}ce.addListener(fn,_4,o);},removeListener:function(_8,fn,_a){var ce=this.events[_8.toLowerCase()];if(typeof ce=="object"){ce.removeListener(fn,_a);}},purgeListeners:function(){for(var _c in this.events){if(typeof this.events[_c]=="object"){this.events[_c].clearListeners();}}},relayEvents:function(o,_e){var _f=function(_10){return function(){return this.fireEvent.apply(this,Ext.combine(_10,Array.prototype.slice.call(arguments,0)));};};for(var i=0,len=_e.length;i0;}};Ext.util.Observable.prototype.on=Ext.util.Observable.prototype.addListener;Ext.util.Observable.prototype.un=Ext.util.Observable.prototype.removeListener;Ext.util.Observable.capture=function(o,fn,_19){o.fireEvent=o.fireEvent.createInterceptor(fn,_19);};Ext.util.Observable.releaseCapture=function(o){o.fireEvent=Ext.util.Observable.prototype.fireEvent;};(function(){var _1b=function(h,o,_1e){var _1f=new Ext.util.DelayedTask();return function(){_1f.delay(o.buffer,h,_1e,Array.prototype.slice.call(arguments,0));};};var _20=function(h,e,fn,_24){return function(){e.removeListener(fn,_24);return h.apply(_24,arguments);};};var _25=function(h,o,_28){return function(){var _29=Array.prototype.slice.call(arguments,0);setTimeout(function(){h.apply(_28,_29);},o.delay||10);};};Ext.util.Event=function(obj,_2b){this.name=_2b;this.obj=obj;this.listeners=[];};Ext.util.Event.prototype={addListener:function(fn,_2d,_2e){var o=_2e||{};_2d=_2d||this.obj;if(!this.isListening(fn,_2d)){var l={fn:fn,scope:_2d,options:o};var h=fn;if(o.delay){h=_25(h,o,_2d);}if(o.single){h=_20(h,this,fn,_2d);}if(o.buffer){h=_1b(h,o,_2d);}l.fireFn=h;if(!this.firing){this.listeners.push(l);}else{this.listeners=this.listeners.slice(0);this.listeners.push(l);}}},findListener:function(fn,_33){_33=_33||this.obj;var ls=this.listeners;for(var i=0,len=ls.length;i0){this.firing=true;var _40=Array.prototype.slice.call(arguments,0);for(var i=0;i");var _c=document.getElementById("ie-deferred-loader");_c.onreadystatechange=function(){if(this.readyState=="complete"){_a();_c.onreadystatechange=null;_c.parentNode.removeChild(_c);}};}else{if(Ext.isSafari){_2=setInterval(function(){var rs=document.readyState;if(rs=="complete"){_a();}},10);}}}E.on(window,"load",_a);};var _e=function(h,o){var _11=new Ext.util.DelayedTask(h);return function(e){e=new Ext.EventObjectImpl(e);_11.delay(o.buffer,h,null,[e]);};};var _13=function(h,el,_16,fn){return function(e){Ext.EventManager.removeListener(el,_16,fn);h(e);};};var _19=function(h,o){return function(e){e=new Ext.EventObjectImpl(e);setTimeout(function(){h(e);},o.delay||10);};};var _1d=function(_1e,_1f,opt,fn,_22){var o=(!opt||typeof opt=="boolean")?{}:opt;fn=fn||o.fn;_22=_22||o.scope;var el=Ext.getDom(_1e);if(!el){throw "Error listening for \""+_1f+"\". Element \""+_1e+"\" doesn't exist.";}var h=function(e){e=Ext.EventObject.setEvent(e);var t;if(o.delegate){t=e.getTarget(o.delegate,el);if(!t){return;}}else{t=e.target;}if(o.stopEvent===true){e.stopEvent();}if(o.preventDefault===true){e.preventDefault();}if(o.stopPropagation===true){e.stopPropagation();}if(o.normalized===false){e=e.browserEvent;}fn.call(_22||el,e,t,o);};if(o.delay){h=_19(h,o);}if(o.single){h=_13(h,el,_1f,fn);}if(o.buffer){h=_e(h,o);}fn._handlers=fn._handlers||[];fn._handlers.push([Ext.id(el),_1f,h]);E.on(el,_1f,h);if(_1f=="mousewheel"&&el.addEventListener){el.addEventListener("DOMMouseScroll",h,false);E.on(window,"unload",function(){el.removeEventListener("DOMMouseScroll",h,false);});}if(_1f=="mousedown"&&el==document){Ext.EventManager.stoppedMouseDownEvent.addListener(h);}return h;};var _28=function(el,_2a,fn){var id=Ext.id(el),hds=fn._handlers,hd=fn;if(hds){for(var i=0,len=hds.length;i=33&&k<=40)||k==this.RETURN||k==this.TAB||k==this.ESC;},isSpecialKey:function(){var k=this.keyCode;return k==9||k==13||k==40||k==27||(k==16)||(k==17)||(k>=18&&k<=20)||(k>=33&&k<=35)||(k>=36&&k<=39)||(k>=44&&k<=45);},stopPropagation:function(){if(this.browserEvent){if(this.browserEvent.type=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.fire(this);}E.stopPropagation(this.browserEvent);}},getCharCode:function(){return this.charCode||this.keyCode;},getKey:function(){var k=this.keyCode||this.charCode;return Ext.isSafari?(_51[k]||k):k;},getPageX:function(){return this.xy[0];},getPageY:function(){return this.xy[1];},getTime:function(){if(this.browserEvent){return E.getTime(this.browserEvent);}return null;},getXY:function(){return this.xy;},getTarget:function(_58,_59,_5a){return _58?Ext.fly(this.target).findParent(_58,_59,_5a):this.target;},getRelatedTarget:function(){if(this.browserEvent){return E.getRelatedTarget(this.browserEvent);}return null;},getWheelDelta:function(){var e=this.browserEvent;var _5c=0;if(e.wheelDelta){_5c=e.wheelDelta/120;if(window.opera){_5c=-_5c;}}else{if(e.detail){_5c=-e.detail/3;}}return _5c;},hasModifier:function(){return ((this.ctrlKey||this.altKey)||this.shiftKey)?true:false;},within:function(el,_5e){var t=this[_5e?"getRelatedTarget":"getTarget"]();return t&&Ext.fly(el).contains(t);},getPoint:function(){return new Ext.lib.Point(this.xy[0],this.xy[1]);}};return new Ext.EventObjectImpl();}(); - -(function(){var D=Ext.lib.Dom;var E=Ext.lib.Event;var A=Ext.lib.Anim;var _4={};var _5=/(-[a-z])/gi;var _6=function(m,a){return a.charAt(1).toUpperCase();};var _9=document.defaultView;Ext.Element=function(_a,_b){var _c=typeof _a=="string"?document.getElementById(_a):_a;if(!_c){return null;}if(!_b&&Ext.Element.cache[_c.id]){return Ext.Element.cache[_c.id];}this.dom=_c;this.id=_c.id||Ext.id(_c);};var El=Ext.Element;El.prototype={originalDisplay:"",visibilityMode:1,defaultUnit:"px",setVisibilityMode:function(_e){this.visibilityMode=_e;return this;},enableDisplayMode:function(_f){this.setVisibilityMode(El.DISPLAY);if(typeof _f!="undefined"){this.originalDisplay=_f;}return this;},findParent:function(_10,_11,_12){var p=this.dom,b=document.body,_15=0,dq=Ext.DomQuery,_17;_11=_11||50;if(typeof _11!="number"){_17=Ext.getDom(_11);_11=10;}while(p&&p.nodeType==1&&_15<_11&&p!=b&&p!=_17){if(dq.is(p,_10)){return _12?Ext.get(p):p;}_15++;p=p.parentNode;}return null;},findParentNode:function(_18,_19,_1a){var p=Ext.fly(this.dom.parentNode,"_internal");return p?p.findParent(_18,_19,_1a):null;},up:function(_1c,_1d){return this.findParentNode(_1c,_1d,true);},is:function(_1e){return Ext.DomQuery.is(this.dom,_1e);},animate:function(_1f,_20,_21,_22,_23){this.anim(_1f,{duration:_20,callback:_21,easing:_22},_23);return this;},anim:function(_24,opt,_26,_27,_28,cb){_26=_26||"run";opt=opt||{};var _2a=Ext.lib.Anim[_26](this.dom,_24,(opt.duration||_27)||0.35,(opt.easing||_28)||"easeOut",function(){Ext.callback(cb,this);Ext.callback(opt.callback,opt.scope||this,[this,opt]);},this);opt.anim=_2a;return _2a;},preanim:function(a,i){return !a[i]?false:(typeof a[i]=="object"?a[i]:{duration:a[i+1],callback:a[i+2],easing:a[i+3]});},clean:function(_2d){if(this.isCleaned&&_2d!==true){return this;}var ns=/\S/;var d=this.dom,n=d.firstChild,ni=-1;while(n){var nx=n.nextSibling;if(n.nodeType==3&&!ns.test(n.nodeValue)){d.removeChild(n);}else{n.nodeIndex=++ni;}n=nx;}this.isCleaned=true;return this;},calcOffsetsTo:function(el){el=Ext.get(el),d=el.dom;var _34=false;if(el.getStyle("position")=="static"){el.position("relative");_34=true;}var x=0,y=0;var op=this.dom;while(op&&op!=d&&op.tagName!="HTML"){x+=op.offsetLeft;y+=op.offsetTop;op=op.offsetParent;}if(_34){el.position("static");}return [x,y];},scrollIntoView:function(_38,_39){var c=Ext.getDom(_38)||document.body;var el=this.dom;var o=this.calcOffsetsTo(c),l=o[0],t=o[1],b=t+el.offsetHeight,r=l+el.offsetWidth;var ch=c.clientHeight;var ct=parseInt(c.scrollTop,10);var cl=parseInt(c.scrollLeft,10);var cb=ct+ch;var cr=cl+c.clientWidth;if(tcb){c.scrollTop=b-ch;}}if(_39!==false){if(lcr){c.scrollLeft=r-c.clientWidth;}}}return this;},scrollChildIntoView:function(_46){Ext.fly(_46,"_scrollChildIntoView").scrollIntoView(this);},autoHeight:function(_47,_48,_49,_4a){var _4b=this.getHeight();this.clip();this.setHeight(1);setTimeout(function(){var _4c=parseInt(this.dom.scrollHeight,10);if(!_47){this.setHeight(_4c);this.unclip();if(typeof _49=="function"){_49();}}else{this.setHeight(_4b);this.setHeight(_4c,_47,_48,function(){this.unclip();if(typeof _49=="function"){_49();}}.createDelegate(this),_4a);}}.createDelegate(this),0);return this;},contains:function(el){if(!el){return false;}return D.isAncestor(this.dom,el.dom?el.dom:el);},isVisible:function(_4e){var vis=!(this.getStyle("visibility")=="hidden"||this.getStyle("display")=="none");if(_4e!==true||!vis){return vis;}var p=this.dom.parentNode;while(p&&p.tagName.toLowerCase()!="body"){if(!Ext.fly(p,"_isVisible").isVisible()){return false;}p=p.parentNode;}return true;},select:function(_51,_52){return El.select("#"+Ext.id(this.dom)+" "+_51,_52);},query:function(_53,_54){return Ext.DomQuery.select("#"+Ext.id(this.dom)+" "+_53);},child:function(_55,_56){var n=Ext.DomQuery.selectNode("#"+Ext.id(this.dom)+" "+_55);return _56?n:Ext.get(n);},down:function(_58,_59){var n=Ext.DomQuery.selectNode("#"+Ext.id(this.dom)+" > "+_58);return _59?n:Ext.get(n);},initDD:function(_5b,_5c,_5d){var dd=new Ext.dd.DD(Ext.id(this.dom),_5b,_5c);return Ext.apply(dd,_5d);},initDDProxy:function(_5f,_60,_61){var dd=new Ext.dd.DDProxy(Ext.id(this.dom),_5f,_60);return Ext.apply(dd,_61);},initDDTarget:function(_63,_64,_65){var dd=new Ext.dd.DDTarget(Ext.id(this.dom),_63,_64);return Ext.apply(dd,_65);},setVisible:function(_67,_68){if(!_68||!A){if(this.visibilityMode==El.DISPLAY){this.setDisplayed(_67);}else{this.fixDisplay();this.dom.style.visibility=_67?"visible":"hidden";}}else{var dom=this.dom;var _6a=this.visibilityMode;if(_67){this.setOpacity(0.01);this.setVisible(true);}this.anim({opacity:{to:(_67?1:0)}},this.preanim(arguments,1),null,0.35,"easeIn",function(){if(!_67){if(_6a==El.DISPLAY){dom.style.display="none";}else{dom.style.visibility="hidden";}Ext.get(dom).setOpacity(1);}});}return this;},isDisplayed:function(){return this.getStyle("display")!="none";},toggle:function(_6b){this.setVisible(!this.isVisible(),this.preanim(arguments,0));return this;},setDisplayed:function(_6c){if(typeof _6c=="boolean"){_6c=_6c?this.originalDisplay:"none";}this.setStyle("display",_6c);return this;},focus:function(){try{this.dom.focus();}catch(e){}return this;},blur:function(){try{this.dom.blur();}catch(e){}return this;},addClass:function(_6d){if(_6d instanceof Array){for(var i=0,len=_6d.length;idw){x=_fe?r.left-w:dw-w;}if(x<_100){x=_fe?r.right:_100;}if((y+h)>dh){y=_fd?r.top-h:dh-h;}if(y<_101){y=_fd?r.bottom:_101;}}return [x,y];},getConstrainToXY:function(){var os={top:0,left:0,bottom:0,right:0};return function(el,_104,_105){el=Ext.get(el);_105=_105?Ext.applyIf(_105,os):os;var vw,vh,vx=0,vy=0;if(el.dom==document.body||el.dom==document){vw=Ext.lib.Dom.getViewWidth();vh=Ext.lib.Dom.getViewHeight();}else{vw=el.dom.clientWidth;vh=el.dom.clientHeight;if(!_104){var vxy=el.getXY();vx=vxy[0];vy=vxy[1];}}var s=el.getScroll();vx+=_105.left+s.left;vy+=_105.top+s.top;vw-=_105.right;vh-=_105.bottom;var vr=vx+vw;var vb=vy+vh;var xy=!_104?this.getXY():[this.getLeft(true),this.getTop(true)];var x=xy[0],y=xy[1];var w=this.dom.offsetWidth,h=this.dom.offsetHeight;var _113=false;if((x+w)>vr){x=vr-w;_113=true;}if((y+h)>vb){y=vb-h;_113=true;}if(x";E.onAvailable(id,function(){var hd=document.getElementsByTagName("head")[0];var re=/(?:]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig;var _134=/\ssrc=([\'\"])(.*?)\1/i;var _135=/\stype=([\'\"])(.*?)\1/i;var _136;while(_136=re.exec(html)){var _137=_136[1];var _138=_137?_137.match(_134):false;if(_138&&_138[2]){var s=document.createElement("script");s.src=_138[2];var _13a=_137.match(_135);if(_13a&&_13a[2]){s.type=_13a[2];}hd.appendChild(s);}else{if(_136[2]&&_136[2].length>0){eval(_136[2]);}}}var el=document.getElementById(id);if(el){el.parentNode.removeChild(el);}if(typeof _12f=="function"){_12f();}});dom.innerHTML=html.replace(/(?:)((\n|\r|.)*?)(?:<\/script>)/ig,"");return this;},load:function(){var um=this.getUpdateManager();um.update.apply(um,arguments);return this;},getUpdateManager:function(){if(!this.updateManager){this.updateManager=new Ext.UpdateManager(this);}return this.updateManager;},unselectable:function(){this.dom.unselectable="on";this.swallowEvent("selectstart",true);this.applyStyles("-moz-user-select:none;-khtml-user-select:none;");this.addClass("x-unselectable");return this;},getCenterXY:function(){return this.getAlignToXY(document,"c-c");},center:function(_13d){this.alignTo(_13d||document,"c-c");return this;},isBorderBox:function(){return _13e[this.dom.tagName.toLowerCase()]||Ext.isBorderBox;},getBox:function(_13f,_140){var xy;if(!_140){xy=this.getXY();}else{var left=parseInt(this.getStyle("left"),10)||0;var top=parseInt(this.getStyle("top"),10)||0;xy=[left,top];}var el=this.dom,w=el.offsetWidth,h=el.offsetHeight,bx;if(!_13f){bx={x:xy[0],y:xy[1],0:xy[0],1:xy[1],width:w,height:h};}else{var l=this.getBorderWidth("l")+this.getPadding("l");var r=this.getBorderWidth("r")+this.getPadding("r");var t=this.getBorderWidth("t")+this.getPadding("t");var b=this.getBorderWidth("b")+this.getPadding("b");bx={x:xy[0]+l,y:xy[1]+t,0:xy[0]+l,1:xy[1]+t,width:w-(l+r),height:h-(t+b)};}bx.right=bx.x+bx.width;bx.bottom=bx.y+bx.height;return bx;},getFrameWidth:function(_14c){return this.getPadding(_14c)+this.getBorderWidth(_14c);},setBox:function(box,_14e,_14f){var w=box.width,h=box.height;if((_14e&&!this.autoBoxAdjust)&&!this.isBorderBox()){w-=(this.getBorderWidth("lr")+this.getPadding("lr"));h-=(this.getBorderWidth("tb")+this.getPadding("tb"));}this.setBounds(box.x,box.y,w,h,this.preanim(arguments,2));return this;},repaint:function(){var dom=this.dom;this.addClass("x-repaint");setTimeout(function(){Ext.get(dom).removeClass("x-repaint");},1);return this;},getMargins:function(side){if(!side){return {top:parseInt(this.getStyle("margin-top"),10)||0,left:parseInt(this.getStyle("margin-left"),10)||0,bottom:parseInt(this.getStyle("margin-bottom"),10)||0,right:parseInt(this.getStyle("margin-right"),10)||0};}else{return this.addStyles(side,El.margins);}},addStyles:function(_154,_155){var val=0;for(var i=0,len=_154.length;idom.clientHeight||dom.scrollWidth>dom.clientWidth;},scrollTo:function(side,_197,_198){var prop=side.toLowerCase()=="left"?"scrollLeft":"scrollTop";if(!_198||!A){this.dom[prop]=_197;}else{var to=prop=="scrollLeft"?[_197,this.dom.scrollTop]:[this.dom.scrollLeft,_197];this.anim({scroll:{"to":to}},this.preanim(arguments,2),"scroll");}return this;},scroll:function(_19b,_19c,_19d){if(!this.isScrollable()){return;}var el=this.dom;var l=el.scrollLeft,t=el.scrollTop;var w=el.scrollWidth,h=el.scrollHeight;var cw=el.clientWidth,ch=el.clientHeight;_19b=_19b.toLowerCase();var _1a5=false;var a=this.preanim(arguments,2);switch(_19b){case "l":case "left":if(w-l>cw){var v=Math.min(l+_19c,w-cw);this.scrollTo("left",v,a);_1a5=true;}break;case "r":case "right":if(l>0){var v=Math.max(l-_19c,0);this.scrollTo("left",v,a);_1a5=true;}break;case "t":case "top":case "up":if(t>0){var v=Math.max(t-_19c,0);this.scrollTo("top",v,a);_1a5=true;}break;case "b":case "bottom":case "down":if(h-t>ch){var v=Math.min(t+_19c,h-ch);this.scrollTo("top",v,a);_1a5=true;}break;}return _1a5;},translatePoints:function(x,y){if(typeof x=="object"||x instanceof Array){y=x[1];x=x[0];}var p=this.getStyle("position");var o=this.getXY();var l=parseInt(this.getStyle("left"),10);var t=parseInt(this.getStyle("top"),10);if(isNaN(l)){l=(p=="relative")?0:this.dom.offsetLeft;}if(isNaN(t)){t=(p=="relative")?0:this.dom.offsetTop;}return {left:(x-o[0]+l),top:(y-o[1]+t)};},getScroll:function(){var d=this.dom,doc=document;if(d==doc||d==doc.body){var l=window.pageXOffset||doc.documentElement.scrollLeft||doc.body.scrollLeft||0;var t=window.pageYOffset||doc.documentElement.scrollTop||doc.body.scrollTop||0;return {left:l,top:t};}else{return {left:d.scrollLeft,top:d.scrollTop};}},getColor:function(attr,_1b3,_1b4){var v=this.getStyle(attr);if(!v||v=="transparent"||v=="inherit"){return _1b3;}var _1b6=typeof _1b4=="undefined"?"#":_1b4;if(v.substr(0,4)=="rgb("){var rvs=v.slice(4,v.length-1).split(",");for(var i=0;i<3;i++){var h=parseInt(rvs[i]).toString(16);if(h<16){h="0"+h;}_1b6+=h;}}else{if(v.substr(0,1)=="#"){if(v.length==4){for(var i=1;i<4;i++){var c=v.charAt(i);_1b6+=c+c;}}else{if(v.length==7){_1b6+=v.substr(1);}}}}return (_1b6.length>5?_1b6.toLowerCase():_1b3);},boxWrap:function(cls){cls=cls||"x-box";var el=Ext.get(this.insertHtml("beforeBegin",String.format("
    "+El.boxMarkup+"
    ",cls)));el.child("."+cls+"-mc").dom.appendChild(this.dom);return el;},getAttributeNS:Ext.isIE?function(ns,name){var d=this.dom;var type=typeof d[ns+":"+name];if(type!="undefined"&&type!="unknown"){return d[ns+":"+name];}return d[name];}:function(ns,name){var d=this.dom;return d.getAttributeNS(ns,name)||d.getAttribute(ns+":"+name)||d.getAttribute(name)||d[name];}};var ep=El.prototype;ep.on=ep.addListener;ep.mon=ep.addListener;ep.un=ep.removeListener;ep.autoBoxAdjust=true;ep.autoDisplayMode=true;El.unitPattern=/\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i;El.addUnits=function(v,_1c6){if(v===""||v=="auto"){return v;}if(v===undefined){return "";}if(typeof v=="number"||!El.unitPattern.test(v)){return v+(_1c6||"px");}return v;};El.boxMarkup="
    ";El.VISIBILITY=1;El.DISPLAY=2;El.borders={l:"border-left-width",r:"border-right-width",t:"border-top-width",b:"border-bottom-width"};El.paddings={l:"padding-left",r:"padding-right",t:"padding-top",b:"padding-bottom"};El.margins={l:"margin-left",r:"margin-right",t:"margin-top",b:"margin-bottom"};El.cache={};var _1c7;El.get=function(el){var ex,elm,id;if(!el){return null;}if(typeof el=="string"){if(!(elm=document.getElementById(el))){return null;}if(ex=El.cache[el]){ex.dom=elm;}else{ex=El.cache[el]=new El(elm);}return ex;}else{if(el.tagName){if(!(id=el.id)){id=Ext.id(el);}if(ex=El.cache[id]){ex.dom=el;}else{ex=El.cache[id]=new El(el);}return ex;}else{if(el instanceof El){if(el!=_1c7){el.dom=document.getElementById(el.id)||el.dom;El.cache[el.id]=el;}return el;}else{if(el.isComposite){return el;}else{if(el instanceof Array){return El.select(el);}else{if(el==document){if(!_1c7){var f=function(){};f.prototype=El.prototype;_1c7=new f();_1c7.dom=document;}return _1c7;}}}}}}return null;};El.uncache=function(el){for(var i=0,a=arguments,len=a.length;i0){_2f.defer((duration/2)*1000,this);}else{el.afterFx(o);}};_2f.call(this);});return this;},pause:function(_32){var el=this.getFxEl();var o={};el.queueFx(o,function(){setTimeout(function(){el.afterFx(o);},_32*1000);});return this;},fadeIn:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){this.setOpacity(0);this.fixDisplay();this.dom.style.visibility="visible";var to=o.endOpacity||1;arguments.callee.anim=this.fxanim({opacity:{to:to}},o,null,0.5,"easeOut",function(){if(to==1){this.clearOpacity();}el.afterFx(o);});});return this;},fadeOut:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){arguments.callee.anim=this.fxanim({opacity:{to:o.endOpacity||0}},o,null,0.5,"easeOut",function(){if(this.visibilityMode==Ext.Element.DISPLAY||o.useDisplay){this.dom.style.display="none";}else{this.dom.style.visibility="hidden";}this.clearOpacity();el.afterFx(o);});});return this;},scale:function(w,h,o){this.shift(Ext.apply({},o,{width:w,height:h}));return this;},shift:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){var a={},w=o.width,h=o.height,x=o.x,y=o.y,op=o.opacity;if(w!==undefined){a.width={to:this.adjustWidth(w)};}if(h!==undefined){a.height={to:this.adjustHeight(h)};}if(x!==undefined||y!==undefined){a.points={to:[x!==undefined?x:this.getX(),y!==undefined?y:this.getY()]};}if(op!==undefined){a.opacity={to:op};}if(o.xy!==undefined){a.points={to:o.xy};}arguments.callee.anim=this.fxanim(a,o,"motion",0.35,"easeOut",function(){el.afterFx(o);});});return this;},ghost:function(_45,o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){_45=_45||"b";var r=this.getFxRestore();var w=this.getWidth(),h=this.getHeight();var st=this.dom.style;var _4c=function(){if(o.useDisplay){el.setDisplayed(false);}else{el.hide();}el.clearOpacity();el.setPositioning(r.pos);st.width=r.width;st.height=r.height;el.afterFx(o);};var a={opacity:{to:0},points:{}},pt=a.points;switch(_45.toLowerCase()){case "t":pt.by=[0,-h];break;case "l":pt.by=[-w,0];break;case "r":pt.by=[w,0];break;case "b":pt.by=[0,h];break;case "tl":pt.by=[-w,-h];break;case "bl":pt.by=[-w,h];break;case "br":pt.by=[w,h];break;case "tr":pt.by=[w,-h];break;}arguments.callee.anim=this.fxanim(a,o,"motion",0.5,"easeOut",_4c);});return this;},syncFx:function(){this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:false,concurrent:true,stopFx:false});return this;},sequenceFx:function(){this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:false,concurrent:false,stopFx:false});return this;},nextFx:function(){var ef=this.fxQueue[0];if(ef){ef.call(this);}},hasActiveFx:function(){return this.fxQueue&&this.fxQueue[0];},stopFx:function(){if(this.hasActiveFx()){var cur=this.fxQueue[0];if(cur&&cur.anim&&cur.anim.isAnimated()){this.fxQueue=[cur];cur.anim.stop(true);}}return this;},beforeFx:function(o){if(this.hasActiveFx()&&!o.concurrent){if(o.stopFx){this.stopFx();return true;}return false;}return true;},hasFxBlock:function(){var q=this.fxQueue;return q&&q[0]&&q[0].block;},queueFx:function(o,fn){if(!this.fxQueue){this.fxQueue=[];}if(!this.hasFxBlock()){Ext.applyIf(o,this.fxDefaults);if(!o.concurrent){var run=this.beforeFx(o);fn.block=o.block;this.fxQueue.push(fn);if(run){this.nextFx();}}else{fn.call(this);}}return this;},fxWrap:function(pos,o,vis){var _59;if(!o.wrap||!(_59=Ext.get(o.wrap))){var _5a;if(o.fixPosition){_5a=this.getXY();}var div=document.createElement("div");div.style.visibility=vis;_59=Ext.get(this.dom.parentNode.insertBefore(div,this.dom));_59.setPositioning(pos);if(_59.getStyle("position")=="static"){_59.position("relative");}this.clearPositioning("auto");_59.clip();_59.dom.appendChild(this.dom);if(_5a){_59.setXY(_5a);}}return _59;},fxUnwrap:function(_5c,pos,o){this.clearPositioning();this.setPositioning(pos);if(!o.wrap){_5c.dom.parentNode.insertBefore(this.dom,_5c.dom);_5c.remove();}},getFxRestore:function(){var st=this.dom.style;return {pos:this.getPositioning(),width:st.width,height:st.height};},afterFx:function(o){if(o.afterStyle){this.applyStyles(o.afterStyle);}if(o.afterCls){this.addClass(o.afterCls);}if(o.remove===true){this.remove();}Ext.callback(o.callback,o.scope,[this]);if(!o.concurrent){this.fxQueue.shift();this.nextFx();}},getFxEl:function(){return Ext.get(this.dom);},fxanim:function(_61,opt,_63,_64,_65,cb){_63=_63||"run";opt=opt||{};var _67=Ext.lib.Anim[_63](this.dom,_61,(opt.duration||_64)||0.35,(opt.easing||_65)||"easeOut",function(){Ext.callback(cb,this);},this);opt.anim=_67;return _67;}};Ext.Fx.resize=Ext.Fx.scale;Ext.apply(Ext.Element.prototype,Ext.Fx); - -Ext.CompositeElement=function(_1){this.elements=[];this.addElements(_1);};Ext.CompositeElement.prototype={isComposite:true,addElements:function(_2){if(!_2){return this;}if(typeof _2=="string"){_2=Ext.Element.selectorFunction(_2);}var _3=this.elements;var _4=_3.length-1;for(var i=0,_6=_2.length;i<_6;i++){_3[++_4]=Ext.get(_2[i],true);}return this;},invoke:function(fn,_8){var _9=this.elements;for(var i=0,_b=_9.length;i<_b;i++){Ext.Element.prototype[fn].apply(_9[i],_8);}return this;},add:function(_c){if(typeof _c=="string"){this.addElements(Ext.Element.selectorFunction(_c));}else{if(_c.length!==undefined){this.addElements(_c);}else{this.addElements([_c]);}}return this;},each:function(fn,_e){var _f=this.elements;for(var i=0,len=_f.length;i"+_9.text+"";}if(typeof _9.scripts!="undefined"){this.loadScripts=_9.scripts;}if(typeof _9.timeout!="undefined"){this.timeout=_9.timeout;}}this.showLoading();if(!_7){this.defaultUrl=_4;}if(typeof _4=="function"){_4=_4.call(this);}if(typeof _5=="function"){_5=_5();}if(_5&&typeof _5!="string"){var _a=[];for(var _b in _5){if(typeof _5[_b]!="function"){_a.push(encodeURIComponent(_b),"=",encodeURIComponent(_5[_b]),"&");}}delete _a[_a.length-1];_5=_a.join("");}var cb={success:this.successDelegate,failure:this.failureDelegate,timeout:(this.timeout*1000),argument:{"url":_4,"form":null,"callback":_6,"params":_5}};_8=_8||(_5?"POST":"GET");if(_8=="GET"){_4=this.prepareUrl(_4);}this.transaction=Ext.lib.Ajax.request(_8,_4,cb,_5);}},formUpdate:function(_d,_e,_f,_10){if(this.fireEvent("beforeupdate",this.el,_d,_e)!==false){formEl=Ext.getDom(_d);if(typeof _e=="function"){_e=_e.call(this);}if(typeof params=="function"){params=params();}_e=_e||formEl.action;var cb={success:this.successDelegate,failure:this.failureDelegate,timeout:(this.timeout*1000),argument:{"url":_e,"form":formEl,"callback":_10,"reset":_f}};var _12=false;var _13=formEl.getAttribute("enctype");if(_13&&_13.toLowerCase()=="multipart/form-data"){_12=true;cb.upload=this.successDelegate;}this.transaction=Ext.lib.Ajax.formRequest(formEl,_e,cb,null,_12,this.sslBlankUrl);this.showLoading.defer(1,this);}},refresh:function(_14){if(this.defaultUrl==null){return;}this.update(this.defaultUrl,null,_14,true);},startAutoRefresh:function(_15,url,_17,_18,_19){if(_19){this.update(url||this.defaultUrl,_17,_18,true);}if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);}this.autoRefreshProcId=setInterval(this.update.createDelegate(this,[url||this.defaultUrl,_17,_18,true]),_15*1000);},stopAutoRefresh:function(){if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);delete this.autoRefreshProcId;}},isAutoRefreshing:function(){return this.autoRefreshProcId?true:false;},showLoading:function(){if(this.showLoadIndicator){this.el.update(this.indicatorText);}},prepareUrl:function(url){if(this.disableCaching){var _1b="_dc="+(new Date().getTime());if(url.indexOf("?")!==-1){url+="&"+_1b;}else{url+="?"+_1b;}}return url;},processSuccess:function(_1c){this.transaction=null;if(_1c.argument.form&&_1c.argument.reset){try{_1c.argument.form.reset();}catch(e){}}if(this.loadScripts){this.renderer.render(this.el,_1c,this,this.updateComplete.createDelegate(this,[_1c]));}else{this.renderer.render(this.el,_1c,this);this.updateComplete(_1c);}},updateComplete:function(_1d){this.fireEvent("update",this.el,_1d);if(typeof _1d.argument.callback=="function"){_1d.argument.callback(this.el,true,_1d);}},processFailure:function(_1e){this.transaction=null;this.fireEvent("failure",this.el,_1e);if(typeof _1e.argument.callback=="function"){_1e.argument.callback(this.el,false,_1e);}},setRenderer:function(_1f){this.renderer=_1f;},getRenderer:function(){return this.renderer;},setDefaultUrl:function(_20){this.defaultUrl=_20;},abort:function(){if(this.transaction){Ext.lib.Ajax.abort(this.transaction);}},isUpdating:function(){if(this.transaction){return Ext.lib.Ajax.isCallInProgress(this.transaction);}return false;}});Ext.UpdateManager.defaults={timeout:30,loadScripts:false,sslBlankUrl:(Ext.SSL_SECURE_URL||"javascript:false"),disableCaching:false,showLoadIndicator:true,indicatorText:"
    Loading...
    "};Ext.UpdateManager.updateElement=function(el,url,_23,_24){var um=Ext.get(el,true).getUpdateManager();Ext.apply(um,_24);um.update(url,_23,_24?_24.callback:null);};Ext.UpdateManager.update=Ext.UpdateManager.updateElement;Ext.UpdateManager.BasicRenderer=function(){};Ext.UpdateManager.BasicRenderer.prototype={render:function(el,_27,_28,_29){el.update(_27.responseText,_28.loadScripts,_29);}}; - -Date.parseFunctions={count:0};Date.parseRegexes=[];Date.formatFunctions={count:0};Date.prototype.dateFormat=function(_1){if(Date.formatFunctions[_1]==null){Date.createNewFormat(_1);}var _2=Date.formatFunctions[_1];return this[_2]();};Date.prototype.format=Date.prototype.dateFormat;Date.createNewFormat=function(_3){var _4="format"+Date.formatFunctions.count++;Date.formatFunctions[_3]=_4;var _5="Date.prototype."+_4+" = function(){return ";var _6=false;var ch="";for(var i=0;i<_3.length;++i){ch=_3.charAt(i);if(!_6&&ch=="\\"){_6=true;}else{if(_6){_6=false;_5+="'"+String.escape(ch)+"' + ";}else{_5+=Date.getFormatCode(ch);}}}eval(_5.substring(0,_5.length-3)+";}");};Date.getFormatCode=function(_9){switch(_9){case "d":return "String.leftPad(this.getDate(), 2, '0') + ";case "D":return "Date.dayNames[this.getDay()].substring(0, 3) + ";case "j":return "this.getDate() + ";case "l":return "Date.dayNames[this.getDay()] + ";case "S":return "this.getSuffix() + ";case "w":return "this.getDay() + ";case "z":return "this.getDayOfYear() + ";case "W":return "this.getWeekOfYear() + ";case "F":return "Date.monthNames[this.getMonth()] + ";case "m":return "String.leftPad(this.getMonth() + 1, 2, '0') + ";case "M":return "Date.monthNames[this.getMonth()].substring(0, 3) + ";case "n":return "(this.getMonth() + 1) + ";case "t":return "this.getDaysInMonth() + ";case "L":return "(this.isLeapYear() ? 1 : 0) + ";case "Y":return "this.getFullYear() + ";case "y":return "('' + this.getFullYear()).substring(2, 4) + ";case "a":return "(this.getHours() < 12 ? 'am' : 'pm') + ";case "A":return "(this.getHours() < 12 ? 'AM' : 'PM') + ";case "g":return "((this.getHours() %12) ? this.getHours() % 12 : 12) + ";case "G":return "this.getHours() + ";case "h":return "String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";case "H":return "String.leftPad(this.getHours(), 2, '0') + ";case "i":return "String.leftPad(this.getMinutes(), 2, '0') + ";case "s":return "String.leftPad(this.getSeconds(), 2, '0') + ";case "O":return "this.getGMTOffset() + ";case "T":return "this.getTimezone() + ";case "Z":return "(this.getTimezoneOffset() * -60) + ";default:return "'"+String.escape(_9)+"' + ";}};Date.parseDate=function(_a,_b){if(Date.parseFunctions[_b]==null){Date.createParser(_b);}var _c=Date.parseFunctions[_b];return Date[_c](_a);};Date.createParser=function(_d){var _e="parse"+Date.parseFunctions.count++;var _f=Date.parseRegexes.length;var _10=1;Date.parseFunctions[_d]=_e;var _11="Date."+_e+" = function(input){\n"+"var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1;\n"+"var d = new Date();\n"+"y = d.getFullYear();\n"+"m = d.getMonth();\n"+"d = d.getDate();\n"+"var results = input.match(Date.parseRegexes["+_f+"]);\n"+"if (results && results.length > 0) {";var _12="";var _13=false;var ch="";for(var i=0;i<_d.length;++i){ch=_d.charAt(i);if(!_13&&ch=="\\"){_13=true;}else{if(_13){_13=false;_12+=String.escape(ch);}else{var obj=Date.formatCodeToRegex(ch,_10);_10+=obj.g;_12+=obj.s;if(obj.g&&obj.c){_11+=obj.c;}}}}_11+="if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n"+"{return new Date(y, m, d, h, i, s);}\n"+"else if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n"+"{return new Date(y, m, d, h, i);}\n"+"else if (y > 0 && m >= 0 && d > 0 && h >= 0)\n"+"{return new Date(y, m, d, h);}\n"+"else if (y > 0 && m >= 0 && d > 0)\n"+"{return new Date(y, m, d);}\n"+"else if (y > 0 && m >= 0)\n"+"{return new Date(y, m);}\n"+"else if (y > 0)\n"+"{return new Date(y);}\n"+"}return null;}";Date.parseRegexes[_f]=new RegExp("^"+_12+"$");eval(_11);};Date.formatCodeToRegex=function(_17,_18){switch(_17){case "D":return {g:0,c:null,s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};case "j":case "d":return {g:1,c:"d = parseInt(results["+_18+"], 10);\n",s:"(\\d{1,2})"};case "l":return {g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"};case "S":return {g:0,c:null,s:"(?:st|nd|rd|th)"};case "w":return {g:0,c:null,s:"\\d"};case "z":return {g:0,c:null,s:"(?:\\d{1,3})"};case "W":return {g:0,c:null,s:"(?:\\d{2})"};case "F":return {g:1,c:"m = parseInt(Date.monthNumbers[results["+_18+"].substring(0, 3)], 10);\n",s:"("+Date.monthNames.join("|")+")"};case "M":return {g:1,c:"m = parseInt(Date.monthNumbers[results["+_18+"]], 10);\n",s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};case "n":case "m":return {g:1,c:"m = parseInt(results["+_18+"], 10) - 1;\n",s:"(\\d{1,2})"};case "t":return {g:0,c:null,s:"\\d{1,2}"};case "L":return {g:0,c:null,s:"(?:1|0)"};case "Y":return {g:1,c:"y = parseInt(results["+_18+"], 10);\n",s:"(\\d{4})"};case "y":return {g:1,c:"var ty = parseInt(results["+_18+"], 10);\n"+"y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"};case "a":return {g:1,c:"if (results["+_18+"] == 'am') {\n"+"if (h == 12) { h = 0; }\n"+"} else { if (h < 12) { h += 12; }}",s:"(am|pm)"};case "A":return {g:1,c:"if (results["+_18+"] == 'AM') {\n"+"if (h == 12) { h = 0; }\n"+"} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"};case "g":case "G":case "h":case "H":return {g:1,c:"h = parseInt(results["+_18+"], 10);\n",s:"(\\d{1,2})"};case "i":return {g:1,c:"i = parseInt(results["+_18+"], 10);\n",s:"(\\d{2})"};case "s":return {g:1,c:"s = parseInt(results["+_18+"], 10);\n",s:"(\\d{2})"};case "O":return {g:0,c:null,s:"[+-]\\d{4}"};case "T":return {g:0,c:null,s:"[A-Z]{3}"};case "Z":return {g:0,c:null,s:"[+-]\\d{1,5}"};default:return {g:0,c:null,s:String.escape(_17)};}};Date.prototype.getTimezone=function(){return this.toString().replace(/^.*? ([A-Z]{3}) [0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3");};Date.prototype.getGMTOffset=function(){return (this.getTimezoneOffset()>0?"-":"+")+String.leftPad(Math.floor(this.getTimezoneOffset()/60),2,"0")+String.leftPad(this.getTimezoneOffset()%60,2,"0");};Date.prototype.getDayOfYear=function(){var num=0;Date.daysInMonth[1]=this.isLeapYear()?29:28;for(var i=0;i28){day=Math.min(day,this.getFirstDateOfMonth().add("mo",_27).getLastDateOfMonth().getDate());}d.setDate(day);d.setMonth(this.getMonth()+_27);break;case Date.YEAR:d.setFullYear(this.getFullYear()+_27);break;}return d;}; - -Ext.util.DelayedTask=function(fn,_2,_3){var id=null,d,t;var _7=function(){var _8=new Date().getTime();if(_8-t>=d){clearInterval(id);id=null;fn.apply(_2,_3||[]);}};this.delay=function(_9,_a,_b,_c){if(id&&_9!=d){this.cancel();}d=_9;t=new Date().getTime();fn=_a||fn;_2=_b||_2;_3=_c||_3;if(!id){id=setInterval(_7,d);}};this.cancel=function(){if(id){clearInterval(id);id=null;}};}; - -Ext.util.TaskRunner=function(_1){_1=_1||10;var _2=[],_3=[];var id=0;var _5=false;var _6=function(){_5=false;clearInterval(id);id=0;};var _7=function(){if(!_5){_5=true;id=setInterval(_8,_1);}};var _9=function(_a){_3.push(_a);if(_a.onStop){_a.onStop();}};var _8=function(){if(_3.length>0){for(var i=0,_c=_3.length;i<_c;i++){_2.remove(_3[i]);}_3=[];if(_2.length<1){_6();return;}}var _d=new Date().getTime();for(var i=0,_c=_2.length;i<_c;++i){var t=_2[i];var _f=_d-t.taskRunTime;if(t.interval<=_f){var rt=t.run.apply(t.scope||t,t.args||[++t.taskRunCount]);t.taskRunTime=_d;if(rt===false||t.taskRunCount===t.repeat){_9(t);return;}}if(t.duration&&t.duration<=(_d-t.taskStartTime)){_9(t);}}};this.start=function(_11){_2.push(_11);_11.taskStartTime=new Date().getTime();_11.taskRunTime=0;_11.taskRunCount=0;_7();return _11;};this.stop=function(_12){_9(_12);return _12;};this.stopAll=function(){_6();for(var i=0,len=_2.length;i1||_b instanceof Array){var _c=arguments.length>1?arguments:_b;for(var i=0,_e=_c.length;i<_e;i++){this.add(_c[i]);}}else{for(var _f in _b){if(this.allowFunctions||typeof _b[_f]!="function"){this.add(_b[_f],_f);}}}},each:function(fn,_11){var _12=[].concat(this.items);for(var i=0,len=_12.length;i=this.length){return this.add(key,o);}this.length++;this.items.splice(_1d,0,o);if(typeof key!="undefined"&&key!=null){this.map[key]=o;}this.keys.splice(_1d,0,key);this.fireEvent("add",_1d,o,key);return o;},remove:function(o){return this.removeAt(this.indexOf(o));},removeAt:function(_21){if(_21=0){this.length--;var o=this.items[_21];this.items.splice(_21,1);var key=this.keys[_21];if(typeof key!="undefined"){delete this.map[key];}this.keys.splice(_21,1);this.fireEvent("remove",o,key);}},removeKey:function(key){return this.removeAt(this.indexOfKey(key));},getCount:function(){return this.length;},indexOf:function(o){if(!this.items.indexOf){for(var i=0,len=this.items.length;i=end;i--){r[r.length]=_47[i];}}return r;},filter:function(_4a,_4b){if(!_4b.exec){_4b=String(_4b);if(_4b.length==0){return this.clone();}_4b=new RegExp("^"+Ext.escapeRe(_4b),"i");}return this.filterBy(function(o){return o&&_4b.test(o[_4a]);});},filterBy:function(fn,_4e){var r=new Ext.util.MixedCollection();r.getKey=this.getKey;var k=this.keys,it=this.items;for(var i=0,len=it.length;i_3){return _2.substr(0,_3-3)+"...";}return _2;},undef:function(_4){return typeof _4!="undefined"?_4:"";},htmlEncode:function(_5){return !_5?_5:String(_5).replace(/&/g,"&").replace(/>/g,">").replace(/2){var _f=Array.prototype.slice.call(arguments,2);_f.unshift(_d);return eval(fn).apply(window,_f);}else{return eval(fn).call(window,_d);}},usMoney:function(v){v=(Math.round((v-0)*100))/100;v=(v==Math.floor(v))?v+".00":((v*10==Math.floor(v*10))?v+"0":v);return "$"+v;},date:function(v,_12){if(!v){return "";}if(!(v instanceof Date)){v=new Date(Date.parse(v));}return v.dateFormat(_12||"m/d/Y");},dateRenderer:function(_13){return function(v){return Ext.util.Format.date(v,_13);};},stripTagsRE:/<\/?[^>]+>/gi,stripTags:function(v){return !v?v:String(v).replace(this.stripTagsRE,"");}};}(); - -Ext.util.CSS=function(){var _1=null;var _2=document;var _3=/(-[a-z])/gi;var _4=function(m,a){return a.charAt(1).toUpperCase();};return {createStyleSheet:function(_7){var ss;if(Ext.isIE){ss=_2.createStyleSheet();ss.cssText=_7;}else{var _9=_2.getElementsByTagName("head")[0];var _a=_2.createElement("style");_a.setAttribute("type","text/css");try{_a.appendChild(_2.createTextNode(_7));}catch(e){_a.cssText=_7;}_9.appendChild(_a);ss=_a.styleSheet?_a.styleSheet:(_a.sheet||_2.styleSheets[_2.styleSheets.length-1]);}this.cacheStyleSheet(ss);return ss;},removeStyleSheet:function(id){var _c=_2.getElementById(id);if(_c){_c.parentNode.removeChild(_c);}},swapStyleSheet:function(id,_e){this.removeStyleSheet(id);var ss=_2.createElement("link");ss.setAttribute("rel","stylesheet");ss.setAttribute("type","text/css");ss.setAttribute("id",id);ss.setAttribute("href",_e);_2.getElementsByTagName("head")[0].appendChild(ss);},refreshCache:function(){return this.getRules(true);},cacheStyleSheet:function(ss){if(!_1){_1={};}try{var _11=ss.cssRules||ss.rules;for(var j=_11.length-1;j>=0;--j){_1[_11[j].selectorText]=_11[j];}}catch(e){}},getRules:function(_13){if(_1==null||_13){_1={};var ds=_2.styleSheets;for(var i=0,len=ds.length;i=37&&k<=40){e.stopEvent();}},relay:function(e){var k=e.getKey();var h=this.keyToHandler[k];if(h&&this[h]){if(this.doRelay(e,this[h],h)!==true){e[this.defaultEventAction]();}}},doRelay:function(e,h,_b){return h.call(this.scope||this,e);},enter:false,left:false,right:false,up:false,down:false,tab:false,esc:false,pageUp:false,pageDown:false,del:false,home:false,end:false,keyToHandler:{37:"left",39:"right",38:"up",40:"down",33:"pageUp",34:"pageDown",46:"del",36:"home",35:"end",13:"enter",27:"esc",9:"tab"},enable:function(){if(this.disabled){if(Ext.isIE){this.el.on("keydown",this.relay,this);}else{this.el.on("keydown",this.prepareEvent,this);this.el.on("keypress",this.relay,this);}this.disabled=false;}},disable:function(){if(!this.disabled){if(Ext.isIE){this.el.un("keydown",this.relay);}else{this.el.un("keydown",this.prepareEvent);this.el.un("keypress",this.relay);}this.disabled=true;}}}; - -Ext.KeyMap=function(el,_2,_3){this.el=Ext.get(el);this.eventName=_3||"keydown";this.bindings=[];if(_2 instanceof Array){for(var i=0,_5=_2.length;i<_5;i++){this.addBinding(_2[i]);}}else{this.addBinding(_2);}this.keyDownDelegate=Ext.EventManager.wrap(this.handleKeyDown,this,true);this.enable();};Ext.KeyMap.prototype={stopEvent:false,addBinding:function(_6){var _7=_6.key,_8=_6.shift,_9=_6.ctrl,_a=_6.alt,fn=_6.fn,_c=_6.scope;if(typeof _7=="string"){var ks=[];var _e=_7.toUpperCase();for(var j=0,len=_e.length;j=this.minX;i=i-_53){if(!_54[i]){this.xTicks[this.xTicks.length]=i;_54[i]=true;}}for(i=this.initPageX;i<=this.maxX;i=i+_53){if(!_54[i]){this.xTicks[this.xTicks.length]=i;_54[i]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(_56,_57){this.yTicks=[];this.yTickSize=_57;var _58={};for(var i=this.initPageY;i>=this.minY;i=i-_57){if(!_58[i]){this.yTicks[this.yTicks.length]=i;_58[i]=true;}}for(i=this.initPageY;i<=this.maxY;i=i+_57){if(!_58[i]){this.yTicks[this.yTicks.length]=i;_58[i]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(_5a,_5b,_5c){this.leftConstraint=_5a;this.rightConstraint=_5b;this.minX=this.initPageX-_5a;this.maxX=this.initPageX+_5b;if(_5c){this.setXTicks(this.initPageX,_5c);}this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(iUp,_5e,_5f){this.topConstraint=iUp;this.bottomConstraint=_5e;this.minY=this.initPageY-iUp;this.maxY=this.initPageY+_5e;if(_5f){this.setYTicks(this.initPageY,_5f);}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var dx=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var dy=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(dx,dy);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(val,_63){if(!_63){return val;}else{if(_63[0]>=val){return _63[0];}else{for(var i=0,len=_63.length;i=val){var _67=val-_63[i];var _68=_63[_66]-val;return (_68>_67)?_63[i]:_63[_66];}}return _63[_63.length-1];}}},toString:function(){return ("DragDrop "+this.id);}};})();if(!Ext.dd.DragDropMgr){Ext.dd.DragDropMgr=function(){var _69=Ext.EventManager;return {ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initalized:false,locked:false,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,mode:0,_execOnAll:function(_6a,_6b){for(var i in this.ids){for(var j in this.ids[i]){var oDD=this.ids[i][j];if(!this.isTypeOfDD(oDD)){continue;}oDD[_6a].apply(oDD,_6b);}}},_onLoad:function(){this.init();_69.on(document,"mouseup",this.handleMouseUp,this,true);_69.on(document,"mousemove",this.handleMouseMove,this,true);_69.on(window,"unload",this._onUnload,this,true);_69.on(window,"resize",this._onResize,this,true);},_onResize:function(e){this._execOnAll("resetConstraints",[]);},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:350,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(oDD,_71){if(!this.initialized){this.init();}if(!this.ids[_71]){this.ids[_71]={};}this.ids[_71][oDD.id]=oDD;},removeDDFromGroup:function(oDD,_73){if(!this.ids[_73]){this.ids[_73]={};}var obj=this.ids[_73];if(obj&&obj[oDD.id]){delete obj[oDD.id];}},_remove:function(oDD){for(var g in oDD.groups){if(g&&this.ids[g][oDD.id]){delete this.ids[g][oDD.id];}}delete this.handleIds[oDD.id];},regHandle:function(_77,_78){if(!this.handleIds[_77]){this.handleIds[_77]={};}this.handleIds[_77][_78]=_78;},isDragDrop:function(id){return (this.getDDById(id))?true:false;},getRelated:function(_7a,_7b){var _7c=[];for(var i in _7a.groups){for(j in this.ids[i]){var dd=this.ids[i][j];if(!this.isTypeOfDD(dd)){continue;}if(!_7b||dd.isTarget){_7c[_7c.length]=dd;}}}return _7c;},isLegalTarget:function(oDD,_80){var _81=this.getRelated(oDD,true);for(var i=0,len=_81.length;ithis.clickPixelThresh||_94>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){this.dragCurrent.b4Drag(e);this.dragCurrent.onDrag(e);if(!this.dragCurrent.moveOnly){this.fireEvents(e,false);}}this.stopEvent(e);return true;},fireEvents:function(e,_96){var dc=this.dragCurrent;if(!dc||dc.isLocked()){return;}var x=Ext.lib.Event.getPageX(e);var y=Ext.lib.Event.getPageY(e);var pt=new Ext.lib.Point(x,y);var _9b=[];var _9c=[];var _9d=[];var _9e=[];var _9f=[];for(var i in this.dragOvers){var ddo=this.dragOvers[i];if(!this.isTypeOfDD(ddo)){continue;}if(!this.isOverTarget(pt,ddo,this.mode)){_9c.push(ddo);}_9b[i]=true;delete this.dragOvers[i];}for(var _a2 in dc.groups){if("string"!=typeof _a2){continue;}for(i in this.ids[_a2]){var oDD=this.ids[_a2][i];if(!this.isTypeOfDD(oDD)){continue;}if(oDD.isTarget&&!oDD.isLocked()&&oDD!=dc){if(this.isOverTarget(pt,oDD,this.mode)){if(_96){_9e.push(oDD);}else{if(!_9b[oDD.id]){_9f.push(oDD);}else{_9d.push(oDD);}this.dragOvers[oDD.id]=oDD;}}}}}if(this.mode){if(_9c.length){dc.b4DragOut(e,_9c);dc.onDragOut(e,_9c);}if(_9f.length){dc.onDragEnter(e,_9f);}if(_9d.length){dc.b4DragOver(e,_9d);dc.onDragOver(e,_9d);}if(_9e.length){dc.b4DragDrop(e,_9e);dc.onDragDrop(e,_9e);}}else{var len=0;for(i=0,len=_9c.length;i2000){}else{setTimeout(DDM._addListeners,10);if(document&&document.body){DDM._timeoutCount+=1;}}}},handleWasClicked:function(_df,id){if(this.isHandle(id,_df.id)){return true;}else{var p=_df.parentNode;while(p){if(this.isHandle(id,p.id)){return true;}else{p=p.parentNode;}}}return false;}};}();Ext.dd.DDM=Ext.dd.DragDropMgr;Ext.dd.DDM._addListeners();}Ext.dd.DD=function(id,_e3,_e4){if(id){this.init(id,_e3,_e4);}};Ext.extend(Ext.dd.DD,Ext.dd.DragDrop,{scroll:true,autoOffset:function(_e5,_e6){var x=_e5-this.startPageX;var y=_e6-this.startPageY;this.setDelta(x,y);},setDelta:function(_e9,_ea){this.deltaX=_e9;this.deltaY=_ea;},setDragElPos:function(_eb,_ec){var el=this.getDragEl();this.alignElWithMouse(el,_eb,_ec);},alignElWithMouse:function(el,_ef,_f0){var _f1=this.getTargetCoord(_ef,_f0);var fly=el.dom?el:Ext.fly(el);if(!this.deltaSetXY){var _f3=[_f1.x,_f1.y];fly.setXY(_f3);var _f4=fly.getLeft(true);var _f5=fly.getTop(true);this.deltaSetXY=[_f4-_f1.x,_f5-_f1.y];}else{fly.setLeftTop(_f1.x+this.deltaSetXY[0],_f1.y+this.deltaSetXY[1]);}this.cachePosition(_f1.x,_f1.y);this.autoScroll(_f1.x,_f1.y,el.offsetHeight,el.offsetWidth);return _f1;},cachePosition:function(_f6,_f7){if(_f6){this.lastPageX=_f6;this.lastPageY=_f7;}else{var _f8=Ext.lib.Dom.getXY(this.getEl());this.lastPageX=_f8[0];this.lastPageY=_f8[1];}},autoScroll:function(x,y,h,w){if(this.scroll){var _fd=Ext.lib.Dom.getViewWidth();var _fe=Ext.lib.Dom.getViewHeight();var st=this.DDM.getScrollTop();var sl=this.DDM.getScrollLeft();var bot=h+y;var _102=w+x;var _103=(_fd+st-y-this.deltaY);var _104=(_fe+sl-x-this.deltaX);var _105=40;var _106=(document.all)?80:30;if(bot>_fd&&_103<_105){window.scrollTo(sl,st+_106);}if(y0&&y-st<_105){window.scrollTo(sl,st-_106);}if(_102>_fe&&_104<_105){window.scrollTo(sl+_106,st);}if(x0&&x-sl<_105){window.scrollTo(sl-_106,st);}}},getTargetCoord:function(_107,_108){var x=_107-this.deltaX;var y=_108-this.deltaY;if(this.constrainX){if(xthis.maxX){x=this.maxX;}}if(this.constrainY){if(ythis.maxY){y=this.maxY;}}x=this.getTick(x,this.xTicks);y=this.getTick(y,this.yTicks);return {x:x,y:y};},applyConfig:function(){Ext.dd.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);},b4MouseDown:function(e){this.autoOffset(Ext.lib.Event.getPageX(e),Ext.lib.Event.getPageY(e));},b4Drag:function(e){this.setDragElPos(Ext.lib.Event.getPageX(e),Ext.lib.Event.getPageY(e));},toString:function(){return ("DD "+this.id);}});Ext.dd.DDProxy=function(id,_10e,_10f){if(id){this.init(id,_10e,_10f);this.initFrame();}};Ext.dd.DDProxy.dragElId="ygddfdiv";Ext.extend(Ext.dd.DDProxy,Ext.dd.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var self=this;var body=document.body;if(!body||!body.firstChild){setTimeout(function(){self.createFrame();},50);return;}var div=this.getDragEl();if(!div){div=document.createElement("div");div.id=this.dragElId;var s=div.style;s.position="absolute";s.visibility="hidden";s.cursor="move";s.border="2px solid #aaa";s.zIndex=999;body.insertBefore(div,body.firstChild);}},initFrame:function(){this.createFrame();},applyConfig:function(){Ext.dd.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||Ext.dd.DDProxy.dragElId);},showFrame:function(_114,_115){var el=this.getEl();var _117=this.getDragEl();var s=_117.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(s.width,10)/2),Math.round(parseInt(s.height,10)/2));}this.setDragElPos(_114,_115);Ext.fly(_117).show();},_resizeProxy:function(){if(this.resizeFrame){var el=this.getEl();Ext.fly(this.getDragEl()).setSize(el.offsetWidth,el.offsetHeight);}},b4MouseDown:function(e){var x=Ext.lib.Event.getPageX(e);var y=Ext.lib.Event.getPageY(e);this.autoOffset(x,y);this.setDragElPos(x,y);},b4StartDrag:function(x,y){this.showFrame(x,y);},b4EndDrag:function(e){Ext.fly(this.getDragEl()).hide();},endDrag:function(e){var lel=this.getEl();var del=this.getDragEl();del.style.visibility="";this.beforeMove();lel.style.visibility="hidden";Ext.dd.DDM.moveToEl(lel,del);del.style.visibility="hidden";lel.style.visibility="";this.afterDrag();},beforeMove:function(){},afterDrag:function(){},toString:function(){return ("DDProxy "+this.id);}});Ext.dd.DDTarget=function(id,_124,_125){if(id){this.initTarget(id,_124,_125);}};Ext.extend(Ext.dd.DDTarget,Ext.dd.DragDrop,{toString:function(){return ("DDTarget "+this.id);}}); - -Ext.dd.ScrollManager=function(){var _1=Ext.dd.DragDropMgr;var _2={};var _3=null;var _4={};var _5=function(e){_3=null;_7();};var _8=function(){if(_1.dragCurrent){_1.refreshCache(_1.dragCurrent.groups);}};var _9=function(){if(_1.dragCurrent){var _a=Ext.dd.ScrollManager;if(!_a.animate){if(_4.el.scroll(_4.dir,_a.increment)){_8();}}else{_4.el.scroll(_4.dir,_a.increment,true,_a.animDuration,_8);}}};var _7=function(){if(_4.id){clearInterval(_4.id);}_4.id=0;_4.el=null;_4.dir="";};var _b=function(el,_d){_7();_4.el=el;_4.dir=_d;_4.id=setInterval(_9,Ext.dd.ScrollManager.frequency);};var _e=function(e,_10){if(_10||!_1.dragCurrent){return;}var dds=Ext.dd.ScrollManager;if(!_3||_3!=_1.dragCurrent){_3=_1.dragCurrent;dds.refreshCache();}var xy=Ext.lib.Event.getXY(e);var pt=new Ext.lib.Point(xy[0],xy[1]);for(var id in _2){var el=_2[id],r=el._region;if(r.contains(pt)&&el.isScrollable()){if(r.bottom-pt.y<=dds.thresh){if(_4.el!=el){_b(el,"down");}return;}else{if(r.right-pt.x<=dds.thresh){if(_4.el!=el){_b(el,"left");}return;}else{if(pt.y-r.top<=dds.thresh){if(_4.el!=el){_b(el,"up");}return;}else{if(pt.x-r.left<=dds.thresh){if(_4.el!=el){_b(el,"right");}return;}}}}}}_7();};_1.fireEvents=_1.fireEvents.createSequence(_e,_1);_1.stopDrag=_1.stopDrag.createSequence(_5,_1);return {register:function(el){if(el instanceof Array){for(var i=0,len=el.length;i]+>/gi,asText:function(s){return String(s).replace(this.stripTagsRE,"");},asUCText:function(s){return String(s).toUpperCase().replace(this.stripTagsRE,"");},asUCString:function(s){return String(s).toUpperCase();},asDate:function(s){if(!s){return 0;}if(s instanceof Date){return s.getTime();}return Date.parse(String(s));},asFloat:function(s){var _7=parseFloat(String(s).replace(/,/g,""));if(isNaN(_7)){_7=0;}return _7;},asInt:function(s){var _9=parseInt(String(s).replace(/,/g,""));if(isNaN(_9)){_9=0;}return _9;}}; - -Ext.data.Record=function(_1,id){this.id=(id||id===0)?id:++Ext.data.Record.AUTO_ID;this.data=_1;};Ext.data.Record.create=function(o){var f=function(){f.superclass.constructor.apply(this,arguments);};Ext.extend(f,Ext.data.Record);var p=f.prototype;p.fields=new Ext.util.MixedCollection(false,function(_6){return _6.name;});for(var i=0,_8=o.length;i<_8;i++){p.fields.add(new Ext.data.Field(o[i]));}f.getField=function(_9){return p.fields.get(_9);};return f;};Ext.data.Record.AUTO_ID=1000;Ext.data.Record.EDIT="edit";Ext.data.Record.REJECT="reject";Ext.data.Record.COMMIT="commit";Ext.data.Record.prototype={dirty:false,editing:false,error:null,modified:null,join:function(_a){this.store=_a;},set:function(_b,_c){if(this.data[_b]==_c){return;}this.dirty=true;if(!this.modified){this.modified={};}if(typeof this.modified[_b]=="undefined"){this.modified[_b]=this.data[_b];}this.data[_b]=_c;if(!this.editing){this.store.afterEdit(this);}},get:function(_d){return this.data[_d];},beginEdit:function(){this.editing=true;this.modified={};},cancelEdit:function(){this.editing=false;delete this.modified;},endEdit:function(){this.editing=false;if(this.dirty&&this.store){this.store.afterEdit(this);}},reject:function(){var m=this.modified;for(var n in m){if(typeof m[n]!="function"){this.data[n]=m[n];}}this.dirty=false;delete this.modified;this.editing=false;if(this.store){this.store.afterReject(this);}},commit:function(){this.dirty=false;delete this.modified;this.editing=false;if(this.store){this.store.afterCommit(this);}},hasError:function(){return this.error!=null;},clearError:function(){this.error=null;}}; - -Ext.data.Store=function(_1){this.data=new Ext.util.MixedCollection(false);this.data.getKey=function(o){return o.id;};this.baseParams={};this.paramNames={"start":"start","limit":"limit","sort":"sort","dir":"dir"};Ext.apply(this,_1);if(this.reader&&!this.recordType){this.recordType=this.reader.recordType;}this.fields=this.recordType.prototype.fields;this.modified=[];this.addEvents({datachanged:true,add:true,remove:true,update:true,clear:true,beforeload:true,load:true,loadexception:true});if(this.proxy){this.relayEvents(this.proxy,["loadexception"]);}this.sortToggle={};Ext.data.Store.superclass.constructor.call(this);};Ext.extend(Ext.data.Store,Ext.util.Observable,{remoteSort:false,lastOptions:null,add:function(_3){_3=[].concat(_3);for(var i=0,_5=_3.length;i<_5;i++){_3[i].join(this);}var _6=this.data.length;this.data.addAll(_3);this.fireEvent("add",this,_3,_6);},remove:function(_7){var _8=this.data.indexOf(_7);this.data.removeAt(_8);this.fireEvent("remove",this,_7,_8);},removeAll:function(){this.data.clear();this.fireEvent("clear",this);},insert:function(_9,_a){_a=[].concat(_a);for(var i=0,_c=_a.length;i<_c;i++){this.data.insert(_9,_a[i]);_a[i].join(this);}this.fireEvent("add",this,_a,_9);},indexOf:function(_d){return this.data.indexOf(_d);},indexOfId:function(id){return this.data.indexOfKey(id);},getById:function(id){return this.data.key(id);},getAt:function(_10){return this.data.itemAt(_10);},getRange:function(_11,end){return this.data.getRange(_11,end);},storeOptions:function(o){o=Ext.apply({},o);delete o.callback;delete o.scope;this.lastOptions=o;},load:function(_14){_14=_14||{};if(this.fireEvent("beforeload",this,_14)!==false){this.storeOptions(_14);var p=Ext.apply(_14.params||{},this.baseParams);if(this.sortInfo&&this.remoteSort){var pn=this.paramNames;p[pn["sort"]]=this.sortInfo.field;p[pn["dir"]]=this.sortInfo.direction;}this.proxy.load(p,this.reader,this.loadRecords,this,_14);}},reload:function(_17){this.load(Ext.applyIf(_17||{},this.lastOptions));},loadRecords:function(o,_19,_1a){if(!o||_1a===false){if(_1a!==false){this.fireEvent("load",this,[],_19);}if(_19.callback){_19.callback.call(_19.scope||this,[],_19,false);}return;}var r=o.records,t=o.totalRecords||r.length;for(var i=0,len=r.length;iv2?1:(v10;},appendChild:function(_e){var _f=false;if(_e instanceof Array){_f=_e;}else{if(arguments.length>1){_f=arguments;}}if(_f){for(var i=0,len=_f.length;i0){var _4a=_47?function(){fn.apply(_47,arguments);}:fn;cs.sort(_4a);for(var i=0;ivw+s.left){x=vw-w-this.shadowOffset;_1f=true;}if((y+h)>vh+s.top){y=vh-h-this.shadowOffset;_1f=true;}if(x=ay){y=ay-h-5;}}xy=[x,y];this.storeXY(xy);_7.setXY.call(this,xy);this.sync();}}},isVisible:function(){return this.visible;},showAction:function(){this.visible=true;if(this.useDisplay===true){this.setDisplayed("");}else{if(this.lastXY){_7.setXY.call(this,this.lastXY);}else{if(this.lastLT){_7.setLeftTop.call(this,this.lastLT[0],this.lastLT[1]);}}}},hideAction:function(){this.visible=false;if(this.useDisplay===true){this.setDisplayed(false);}else{this.setLeftTop(-10000,-10000);}},setVisible:function(v,a,d,c,e){if(v){this.showAction();}if(a&&v){var cb=function(){this.sync(true);if(c){c();}}.createDelegate(this);_7.setVisible.call(this,true,true,d,cb,e);}else{if(!v){this.hideUnders(true);}var cb=c;if(a){cb=function(){this.hideAction();if(c){c();}}.createDelegate(this);}_7.setVisible.call(this,v,a,d,cb,e);if(v){this.sync(true);}else{if(!a){this.hideAction();}}}},storeXY:function(xy){delete this.lastLT;this.lastXY=xy;},storeLeftTop:function(_28,top){delete this.lastXY;this.lastLT=[_28,top];},beforeFx:function(){this.beforeAction();return Ext.Layer.superclass.beforeFx.apply(this,arguments);},afterFx:function(){Ext.Layer.superclass.afterFx.apply(this,arguments);this.sync(this.isVisible());},beforeAction:function(){if(!this.updating&&this.shadow){this.shadow.hide();}},setLeft:function(_2a){this.storeLeftTop(_2a,this.getTop(true));_7.setLeft.apply(this,arguments);this.sync();},setTop:function(top){this.storeLeftTop(this.getLeft(true),top);_7.setTop.apply(this,arguments);this.sync();},setLeftTop:function(_2c,top){this.storeLeftTop(_2c,top);_7.setLeftTop.apply(this,arguments);this.sync();},setXY:function(xy,a,d,c,e){this.fixDisplay();this.beforeAction();this.storeXY(xy);var cb=this.createCB(c);_7.setXY.call(this,xy,a,d,cb,e);if(!a){cb();}},createCB:function(c){var el=this;return function(){el.constrainXY();el.sync(true);if(c){c();}};},setX:function(x,a,d,c,e){this.setXY([x,this.getY()],a,d,c,e);},setY:function(y,a,d,c,e){this.setXY([this.getX(),y],a,d,c,e);},setSize:function(w,h,a,d,c,e){this.beforeAction();var cb=this.createCB(c);_7.setSize.call(this,w,h,a,d,cb,e);if(!a){cb();}},setWidth:function(w,a,d,c,e){this.beforeAction();var cb=this.createCB(c);_7.setWidth.call(this,w,a,d,cb,e);if(!a){cb();}},setHeight:function(h,a,d,c,e){this.beforeAction();var cb=this.createCB(c);_7.setHeight.call(this,h,a,d,cb,e);if(!a){cb();}},setBounds:function(x,y,w,h,a,d,c,e){this.beforeAction();var cb=this.createCB(c);if(!a){this.storeXY([x,y]);_7.setXY.call(this,[x,y]);_7.setSize.call(this,w,h,a,d,cb,e);cb();}else{_7.setBounds.call(this,x,y,w,h,a,d,cb,e);}return this;},setZIndex:function(_5c){this.zindex=_5c;this.setStyle("z-index",_5c+2);if(this.shadow){this.shadow.setZIndex(_5c+1);}if(this.shim){this.shim.setStyle("z-index",_5c);}}});})(); - -Ext.Shadow=function(_1){Ext.apply(this,_1);if(typeof this.mode!="string"){this.mode=this.defaultMode;}var o=this.offset,a={h:0};switch(this.mode.toLowerCase()){case "drop":a.w=0;a.l=a.t=o;break;case "sides":a.w=(o*2);a.l=-o;a.t=o;break;case "frame":a.w=a.h=(o*2);a.l=a.t=-o;break;}this.adjusts=a;};Ext.Shadow.prototype={offset:4,defaultMode:"drop",show:function(_4){_4=Ext.get(_4);if(!this.el){this.el=Ext.Shadow.Pool.pull();if(this.el.dom.nextSibling!=_4.dom){this.el.insertBefore(_4);}}this.el.setStyle("z-index",this.zIndex||parseInt(_4.getStyle("z-index"),10)-1);if(Ext.isIE){this.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius="+this.offset+")";}this.realign(_4.getLeft(true),_4.getTop(true),_4.getWidth(),_4.getHeight());this.el.dom.style.display="block";},isVisible:function(){return this.el?true:false;},realign:function(l,t,w,h){if(!this.el){return;}var a=this.adjusts,d=this.el.dom,s=d.style;var _c=0;if(Ext.isIE){_c=-(this.offset);}s.left=(l+a.l+_c)+"px";s.top=(t+a.t+_c)+"px";var sw=(w+a.w),sh=(h+a.h),_f=sw+"px",shs=sh+"px";if(s.width!=_f||s.height!=shs){s.width=_f;s.height=shs;if(!Ext.isIE){var cn=d.childNodes;var sww=Math.max(0,(sw-12))+"px";cn[0].childNodes[1].style.width=sww;cn[1].childNodes[1].style.width=sww;cn[2].childNodes[1].style.width=sww;cn[1].style.height=Math.max(0,(sh-12))+"px";}}},hide:function(){if(this.el){this.el.dom.style.display="none";Ext.Shadow.Pool.push(this.el);delete this.el;}},setZIndex:function(z){this.zIndex=z;if(this.el){this.el.setStyle("z-index",z);}}};Ext.Shadow.Pool=function(){var p=[];var _15=Ext.isIE?"
    ":"
    ";return {pull:function(){var sh=p.shift();if(!sh){sh=Ext.get(Ext.DomHelper.insertHtml("beforeBegin",document.body.firstChild,_15));sh.autoBoxAdjust=false;}return sh;},push:function(sh){p.push(sh);}};}(); - -Ext.BoxComponent=function(_1){Ext.BoxComponent.superclass.constructor.call(this,_1);this.addEvents({resize:true,move:true});};Ext.extend(Ext.BoxComponent,Ext.Component,{boxReady:false,deferHeight:false,setSize:function(w,h){if(typeof w=="object"){h=w.height;w=w.width;}if(!this.boxReady){this.width=w;this.height=h;return;}if(this.lastSize&&this.lastSize.width==w&&this.lastSize.height==h){return;}this.lastSize={width:w,height:h};var _4=this.adjustSize(w,h);var aw=_4.width,ah=_4.height;if(aw!==undefined||ah!==undefined){var rz=this.getResizeEl();if(!this.deferHeight&&aw!==undefined&&ah!==undefined){rz.setSize(aw,ah);}else{if(!this.deferHeight&&ah!==undefined){rz.setHeight(ah);}else{if(aw!==undefined){rz.setWidth(aw);}}}this.onResize(aw,ah,w,h);this.fireEvent("resize",this,aw,ah,w,h);}return this;},getSize:function(){return this.el.getSize();},getPosition:function(_8){if(_8===true){return [this.el.getLeft(true),this.el.getTop(true)];}return this.xy||this.el.getXY();},getBox:function(_9){var s=this.el.getSize();if(_9){s.x=this.el.getLeft(true);s.y=this.el.getTop(true);}else{var xy=this.xy||this.el.getXY();s.x=xy[0];s.y=xy[1];}return s;},updateBox:function(_c){this.setSize(_c.width,_c.height);this.setPagePosition(_c.x,_c.y);},getResizeEl:function(){return this.resizeEl||this.el;},setPosition:function(x,y){this.x=x;this.y=y;if(!this.boxReady){return;}var _f=this.adjustPosition(x,y);var ax=_f.x,ay=_f.y;if(ax!==undefined||ay!==undefined){if(ax!==undefined&&ay!==undefined){this.el.setLeftTop(ax,ay);}else{if(ax!==undefined){this.el.setLeft(ax);}else{if(ay!==undefined){this.el.setTop(ay);}}}this.onPosition(ax,ay);this.fireEvent("move",this,ax,ay);}return this;},setPagePosition:function(x,y){this.pageX=x;this.pageY=y;if(!this.boxReady){return;}if(x===undefined||y===undefined){return;}var p=this.el.translatePoints(x,y);this.setPosition(p.left,p.top);return this;},onRender:function(ct,_16){Ext.BoxComponent.superclass.onRender.call(this,ct,_16);if(this.resizeEl){this.resizeEl=Ext.get(this.resizeEl);}},afterRender:function(){Ext.BoxComponent.superclass.afterRender.call(this);this.boxReady=true;this.setSize(this.width,this.height);if(this.x||this.y){this.setPosition(this.x,this.y);}if(this.pageX||this.pageY){this.setPagePosition(this.pageX,this.pageY);}},syncSize:function(){this.setSize(this.el.getWidth(),this.el.getHeight());},onResize:function(_17,_18,_19,_1a){},onPosition:function(x,y){},adjustSize:function(w,h){if(this.autoWidth){w="auto";}if(this.autoHeight){h="auto";}return {width:w,height:h};},adjustPosition:function(x,y){return {x:x,y:y};}}); - -Ext.View=function(_1,_2,_3){this.el=Ext.get(_1,true);if(typeof _2=="string"){_2=new Ext.Template(_2);}_2.compile();this.tpl=_2;Ext.apply(this,_3);this.addEvents({"beforeclick":true,"click":true,"dblclick":true,"contextmenu":true,"selectionchange":true,"beforeselect":true});this.el.on({"click":this.onClick,"dblclick":this.onDblClick,"contextmenu":this.onContextMenu,scope:this});this.selections=[];this.nodes=[];this.cmp=new Ext.CompositeElementLite([]);if(this.store){this.setStore(this.store,true);}Ext.View.superclass.constructor.call(this);};Ext.extend(Ext.View,Ext.util.Observable,{selectedClass:"x-view-selected",emptyText:"",getEl:function(){return this.el;},refresh:function(){var t=this.tpl;this.clearSelections();this.el.update("");var _5=[];var _6=this.store.getRange();if(_6.length<1){this.el.update(this.emptyText);return;}for(var i=0,_8=_6.length;i<_8;i++){var _9=this.prepareData(_6[i].data,i,_6[i]);_5[_5.length]=t.apply(_9);}this.el.update(_5.join(""));this.nodes=this.el.dom.childNodes;this.updateIndexes(0);},prepareData:function(_a){return _a;},onUpdate:function(ds,_c){this.clearSelections();var _d=this.store.indexOf(_c);var n=this.nodes[_d];this.tpl.insertBefore(n,this.prepareData(_c.data));n.parentNode.removeChild(n);this.updateIndexes(_d,_d);},onAdd:function(ds,_10,_11){this.clearSelections();if(this.nodes.length==0){this.refresh();return;}var n=this.nodes[_11];for(var i=0,len=_10.length;i0){this.cmp.elements=this.selections;this.cmp.removeClass(this.selectedClass);this.selections=[];if(!_31){this.fireEvent("selectionchange",this,this.selections);}}},isSelected:function(_32){var s=this.selections;if(s.length<1){return false;}_32=this.getNode(_32);return s.indexOf(_32)!==-1;},select:function(_34,_35,_36){if(_34 instanceof Array){if(!_35){this.clearSelections(true);}for(var i=0,len=_34.length;i=end;i--){_3e.push(ns[i]);}}return _3e;},indexOf:function(_40){_40=this.getNode(_40);if(typeof _40.nodeIndex=="number"){return _40.nodeIndex;}var ns=this.nodes;for(var i=0,len=ns.length;i0){for(var i=0,_8=o.length;i<_8;i++){var _9=this.prepareData(o[i],i,o);_5[_5.length]=this.tpl.apply(_9);}}else{_5.push(this.emptyText);}this.el.update(_5.join(""));this.nodes=this.el.dom.childNodes;this.updateIndexes(0);},load:function(){var um=this.el.getUpdateManager();um.update.apply(um,arguments);},render:function(el,_c){this.clearSelections();this.el.update("");var o;try{o=Ext.util.JSON.decode(_c.responseText);if(this.jsonRoot){o=eval("o."+this.jsonRoot);}}catch(e){}this.jsonData=o;this.beforeRender();this.refresh();},getCount:function(){return this.jsonData?this.jsonData.length:0;},getNodeData:function(_e){if(_e instanceof Array){var _f=[];for(var i=0,len=_e.length;iv2){return dsc?-1:+1;}else{return 0;}}};this.jsonData.sort(f);this.refresh();if(this.jsonData!=this.snapshot){this.snapshot.sort(f);}}}}); - -Ext.ColorPalette=function(_1){Ext.ColorPalette.superclass.constructor.call(this,_1);this.addEvents({select:true});if(this.handler){this.on("select",this.handler,this.scope,true);}};Ext.extend(Ext.ColorPalette,Ext.Component,{itemCls:"x-color-palette",value:null,ctype:"Ext.ColorPalette",colors:["000000","993300","333300","003300","003366","000080","333399","333333","800000","FF6600","808000","008000","008080","0000FF","666699","808080","FF0000","FF9900","99CC00","339966","33CCCC","3366FF","800080","969696","FF00FF","FFCC00","FFFF00","00FF00","00FFFF","00CCFF","993366","C0C0C0","FF99CC","FFCC99","FFFF99","CCFFCC","CCFFFF","99CCFF","CC99FF","FFFFFF"],onRender:function(_2,_3){var t=new Ext.MasterTemplate(" ");var c=this.colors;for(var i=0,_7=c.length;i<_7;i++){t.add([c[i]]);}var el=document.createElement("div");el.className=this.itemCls;t.overwrite(el);_2.dom.insertBefore(el,_3);this.el=Ext.get(el);this.el.on("click",this.handleClick,this,{delegate:"a"});},afterRender:function(){Ext.ColorPalette.superclass.afterRender.call(this);if(this.value){var s=this.value;this.value=null;this.select(s);}},handleClick:function(e,t){e.preventDefault();if(!this.disabled){var c=t.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1];this.select(c.toUpperCase());}},select:function(_d){_d=_d.replace("#","");if(_d!=this.value){var el=this.el;if(this.value){el.child("a.color-"+this.value).removeClass("x-color-palette-sel");}el.child("a.color-"+_d).addClass("x-color-palette-sel");this.value=_d;this.fireEvent("select",this,_d);}}}); - -Ext.DatePicker=function(_1){Ext.DatePicker.superclass.constructor.call(this,_1);this.value=_1&&_1.value?_1.value.clearTime():new Date().clearTime();this.addEvents({select:true});if(this.handler){this.on("select",this.handler,this.scope||this);}if(!this.disabledDatesRE&&this.disabledDates){var dd=this.disabledDates;var re="(?:";for(var i=0;i","  ",""];var dn=this.dayNames;for(var i=0;i<7;i++){var d=this.startDay+i;if(d>6){d=d-7;}m.push("");}m[m.length]="";for(var i=0;i<42;i++){if(i%7==0&&i!=0){m[m.length]="";}m[m.length]="";}m[m.length]="
    ",dn[d].substr(0,1),"
    ";var el=document.createElement("div");el.className="x-date-picker";el.innerHTML=m.join("");_7.dom.insertBefore(el,_8);this.el=Ext.get(el);new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"),{handler:this.showPrevMonth,scope:this});new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"),{handler:this.showNextMonth,scope:this});this.el.on("mousewheel",this.handleMouseWheel,this);var kn=new Ext.KeyNav(this.el,{"left":function(e){e.ctrlKey?this.showPrevMonth():this.update(this.activeDate.add("d",-1));},"right":function(e){e.ctrlKey?this.showNextMonth():this.update(this.activeDate.add("d",1));},"up":function(e){e.ctrlKey?this.showNextYear():this.update(this.activeDate.add("d",-7));},"down":function(e){e.ctrlKey?this.showPrevYear():this.update(this.activeDate.add("d",7));},"pageUp":function(e){this.showNextMonth();},"pageDown":function(e){this.showPrevMonth();},"enter":function(e){e.stopPropagation();return true;},scope:this});this.el.on("click",this.handleDateClick,this,{delegate:"a.x-date-date"});this.el.addKeyListener(Ext.EventObject.SPACE,this.selectToday,this);this.el.unselectable();this.cells=this.el.select("table.x-date-inner tbody td");this.textNodes=this.el.query("table.x-date-inner tbody span");var _16=new Ext.menu.Menu({plain:true,cls:"x-date-mmenu",allowOtherMenus:true});var _17=Ext.id()+"months";for(var i=0;i<12;i++){_16.add(new Ext.menu.CheckItem({id:"mm-"+i,text:this.monthNames[i],group:_17,month:i}));}_16.on({"beforeshow":function(){_16.items.get("mm-"+(this.activeDate||this.value).getMonth()).setChecked(true);},"itemclick":function(_18){var d=(this.activeDate||this.value).clone();d.setMonth(_18.month);this.update(d);},"show":function(m){this.visibleRegion=m.el.getRegion().adjust(2,2,-2,-2);},"mouseout":function(m,e){if(!this.visibleRegion.contains(e.getPoint())){m.hide();}},scope:this});this.mbtn=new Ext.Button(this.el.child("td.x-date-middle",true),{menu:_16,text:" ",menuAlign:"c-c?",tooltip:this.monthYearText});var _1d=(new Date()).dateFormat(this.format);var _1e=new Ext.Button(this.el.child("td.x-date-bottom",true),{text:String.format(this.todayText,_1d),tooltip:String.format(this.todayTip,_1d),handler:this.selectToday,scope:this});if(Ext.isIE){this.el.repaint();}this.update(this.value);},showPrevMonth:function(e){this.update(this.activeDate.add("mo",-1));},showNextMonth:function(e){this.update(this.activeDate.add("mo",1));},showPrevYear:function(){this.update(this.activeDate.add("y",-1));},showNextYear:function(){this.update(this.activeDate.add("y",1));},handleMouseWheel:function(e){var _22=e.getWheelDelta();if(_22>0){this.showPrevMonth();e.stopEvent();}else{if(_22<0){this.showNextMonth();e.stopEvent();}}},handleDateClick:function(e,t){e.stopEvent();if(t.dateValue&&!Ext.fly(t.parentNode).hasClass("x-date-disabled")){this.setValue(new Date(t.dateValue));this.fireEvent("select",this,this.value);}},selectToday:function(){this.setValue(new Date().clearTime());this.fireEvent("select",this,this.value);},update:function(_25){var vd=this.activeDate;this.activeDate=_25;if(vd&&this.el){var t=_25.getTime();if(vd.getMonth()==_25.getMonth()&&vd.getFullYear()==_25.getFullYear()){this.cells.removeClass("x-date-selected");this.cells.each(function(c){if(c.dom.firstChild.dateValue==t){c.addClass("x-date-selected");setTimeout(function(){try{c.dom.firstChild.focus();}catch(e){}},50);return false;}});return;}}var _29=_25.getDaysInMonth();var _2a=_25.getFirstDateOfMonth();var _2b=_2a.getDay()-this.startDay;if(_2b<=this.startDay){_2b+=7;}var pm=_25.add("mo",-1);var _2d=pm.getDaysInMonth()-_2b;var _2e=this.cells.elements;var _2f=this.textNodes;_29+=_2b;var day=86400000;var d=(new Date(pm.getFullYear(),pm.getMonth(),_2d)).clearTime();var _32=new Date().clearTime().getTime();var sel=_25.clearTime().getTime();var min=this.minDate?this.minDate.clearTime():Number.NEGATIVE_INFINITY;var max=this.maxDate?this.maxDate.clearTime():Number.POSITIVE_INFINITY;var _36=this.disabledDatesRE;var _37=this.disabledDatesText;var _38=this.disabledDays?this.disabledDays.join(""):false;var _39=this.disabledDaysText;var _3a=this.format;var _3b=function(cal,_3d){_3d.title="";var t=d.getTime();_3d.firstChild.dateValue=t;if(t==_32){_3d.className+=" x-date-today";_3d.title=cal.todayText;}if(t==sel){_3d.className+=" x-date-selected";setTimeout(function(){try{_3d.firstChild.focus();}catch(e){}},50);}if(tmax){_3d.className=" x-date-disabled";_3d.title=cal.maxText;return;}if(_38){if(_38.indexOf(d.getDay())!=-1){_3d.title=_39;_3d.className=" x-date-disabled";}}if(_36&&_3a){var _3f=d.dateFormat(_3a);if(_36.test(_3f)){_3d.title=_37.replace("%0",_3f);_3d.className=" x-date-disabled";}}};var i=0;for(;i<_2b;i++){_2f[i].innerHTML=(++_2d);d.setDate(d.getDate()+1);_2e[i].className="x-date-prevday";_3b(this,_2e[i]);}for(;i<_29;i++){intDay=i-_2b+1;_2f[i].innerHTML=(intDay);d.setDate(d.getDate()+1);_2e[i].className="x-date-active";_3b(this,_2e[i]);}var _41=0;for(;i<42;i++){_2f[i].innerHTML=(++_41);d.setDate(d.getDate()+1);_2e[i].className="x-date-nextday";_3b(this,_2e[i]);}this.mbtn.setText(this.monthNames[_25.getMonth()]+" "+_25.getFullYear());if(!this.internalRender){var _42=this.el.dom.firstChild;var w=_42.offsetWidth;this.el.setWidth(w+this.el.getBorderWidth("lr"));Ext.fly(_42).setWidth(w);this.internalRender=true;if(Ext.isOpera&&!this.secondPass){_42.rows[0].cells[1].style.width=(w-(_42.rows[0].cells[0].offsetWidth+_42.rows[0].cells[2].offsetWidth))+"px";this.secondPass=true;this.update.defer(10,this,[_25]);}}}}); - -Ext.TabPanel=function(_1,_2){this.el=Ext.get(_1,true);if(_2){if(typeof _2=="boolean"){this.tabPosition=_2?"bottom":"top";}else{Ext.apply(this,_2);}}if(this.tabPosition=="bottom"){this.bodyEl=Ext.get(this.createBody(this.el.dom));this.el.addClass("x-tabs-bottom");}this.stripWrap=Ext.get(this.createStrip(this.el.dom),true);this.stripEl=Ext.get(this.createStripList(this.stripWrap.dom),true);this.stripBody=Ext.get(this.stripWrap.dom.firstChild.firstChild,true);if(Ext.isIE){Ext.fly(this.stripWrap.dom.firstChild).setStyle("overflow-x","hidden");}if(this.tabPosition!="bottom"){this.bodyEl=Ext.get(this.createBody(this.el.dom));this.el.addClass("x-tabs-top");}this.items=[];this.bodyEl.setStyle("position","relative");this.active=null;this.activateDelegate=this.activate.createDelegate(this);this.addEvents({"tabchange":true,"beforetabchange":true});Ext.EventManager.onWindowResize(this.onResize,this);this.cpad=this.el.getPadding("lr");this.hiddenCount=0;Ext.TabPanel.superclass.constructor.call(this);};Ext.extend(Ext.TabPanel,Ext.util.Observable,{tabPosition:"top",currentTabWidth:0,minTabWidth:40,maxTabWidth:250,preferredTabWidth:175,resizeTabs:false,monitorResize:true,addTab:function(id,_4,_5,_6){var _7=new Ext.TabPanelItem(this,id,_4,_6);this.addTabItem(_7);if(_5){_7.setContent(_5);}return _7;},getTab:function(id){return this.items[id];},hideTab:function(id){var t=this.items[id];if(!t.isHidden()){t.setHidden(true);this.hiddenCount++;this.autoSizeTabs();}},unhideTab:function(id){var t=this.items[id];if(t.isHidden()){t.setHidden(false);this.hiddenCount--;this.autoSizeTabs();}},addTabItem:function(_d){this.items[_d.id]=_d;this.items.push(_d);if(this.resizeTabs){_d.setWidth(this.currentTabWidth||this.preferredTabWidth);this.autoSizeTabs();}else{_d.autoSize();}},removeTab:function(id){var _f=this.items;var tab=_f[id];if(!tab){return;}var _11=_f.indexOf(tab);if(this.active==tab&&_f.length>1){var _12=this.getNextAvailable(_11);if(_12){_12.activate();}}this.stripEl.dom.removeChild(tab.pnode.dom);if(tab.bodyEl.dom.parentNode==this.bodyEl.dom){this.bodyEl.dom.removeChild(tab.bodyEl.dom);}_f.splice(_11,1);delete this.items[tab.id];tab.fireEvent("close",tab);tab.purgeListeners();this.autoSizeTabs();},getNextAvailable:function(_13){var _14=this.items;var _15=_13;while(_15<_14.length){var _16=_14[++_15];if(_16&&!_16.isHidden()){return _16;}}_15=_13;while(_15>=0){var _16=_14[--_15];if(_16&&!_16.isHidden()){return _16;}}return null;},disableTab:function(id){var tab=this.items[id];if(tab&&this.active!=tab){tab.disable();}},enableTab:function(id){var tab=this.items[id];tab.enable();},activate:function(id){var tab=this.items[id];if(!tab){return null;}if(tab==this.active){return tab;}var e={};this.fireEvent("beforetabchange",this,e,tab);if(e.cancel!==true&&!tab.disabled){if(this.active){this.active.hide();}this.active=this.items[id];this.active.show();this.fireEvent("tabchange",this,this.active);}return tab;},getActiveTab:function(){return this.active;},syncHeight:function(_1e){var _1f=(_1e||this.el.getHeight())-this.el.getBorderWidth("tb")-this.el.getPadding("tb");var bm=this.bodyEl.getMargins();var _21=_1f-(this.stripWrap.getHeight()||0)-(bm.top+bm.bottom);this.bodyEl.setHeight(_21);return _21;},onResize:function(){if(this.monitorResize){this.autoSizeTabs();}},beginUpdate:function(){this.updating=true;},endUpdate:function(){this.updating=false;this.autoSizeTabs();},autoSizeTabs:function(){var _22=this.items.length;var _23=_22-this.hiddenCount;if(!this.resizeTabs||_22<1||_23<1||this.updating){return;}var w=Math.max(this.el.getWidth()-this.cpad,10);var _25=Math.floor(w/_23);var b=this.stripBody;if(b.getWidth()>w){var _27=this.items;this.setTabWidth(Math.max(_25,this.minTabWidth)-2);if(_25
    ";return _48.firstChild.firstChild.firstChild.firstChild;};Ext.TabPanel.prototype.createBody=function(_49){var _4a=document.createElement("div");Ext.id(_4a,"tab-body");Ext.fly(_4a).addClass("x-tabs-body");_49.appendChild(_4a);return _4a;};Ext.TabPanel.prototype.createItemBody=function(_4b,id){var _4d=Ext.getDom(id);if(!_4d){_4d=document.createElement("div");_4d.id=id;}Ext.fly(_4d).addClass("x-tabs-item-body");_4b.insertBefore(_4d,_4b.firstChild);return _4d;};Ext.TabPanel.prototype.createStripElements=function(_4e,_4f,_50){var td=document.createElement("td");_4e.appendChild(td);if(_50){td.className="x-tabs-closable";if(!this.closeTpl){this.closeTpl=new Ext.Template(""+"{text}"+"
     
    ");}var el=this.closeTpl.overwrite(td,{"text":_4f});var _53=el.getElementsByTagName("div")[0];var _54=el.getElementsByTagName("em")[0];return {"el":el,"close":_53,"inner":_54};}else{if(!this.tabTpl){this.tabTpl=new Ext.Template(""+"{text}");}var el=this.tabTpl.overwrite(td,{"text":_4f});var _54=el.getElementsByTagName("em")[0];return {"el":el,"inner":_54};}}; - -Ext.Button=function(_1,_2){Ext.apply(this,_2);this.addEvents({"click":true,"toggle":true,"mouseover":true,"mouseout":true});if(this.menu){this.menu=Ext.menu.MenuMgr.get(this.menu);}if(_1){this.render(_1);}Ext.Button.superclass.constructor.call(this);};Ext.extend(Ext.Button,Ext.util.Observable,{hidden:false,disabled:false,pressed:false,enableToggle:false,menu:undefined,menuAlign:"tl-bl?",menuClassTarget:"tr",clickEvent:"click",handleMouseEvents:true,tooltipType:"qtip",render:function(_3){var _4;if(this.hideParent){this.parentEl=Ext.get(_3);}if(!this.dhconfig){if(!this.template){if(!Ext.Button.buttonTemplate){Ext.Button.buttonTemplate=new Ext.Template("","","
      
    ");}this.template=Ext.Button.buttonTemplate;}_4=this.template.append(_3,[this.text||" "],true);var _5=_4.child("button:first");_5.on("focus",this.onFocus,this);_5.on("blur",this.onBlur,this);if(this.cls){_4.addClass(this.cls);}if(this.icon){_5.setStyle("background-image","url("+this.icon+")");}if(this.tooltip){if(typeof this.tooltip=="object"){Ext.QuickTips.tips(Ext.apply({target:_5.id},this.tooltip));}else{_5.dom[this.tooltipType]=this.tooltip;}}}else{_4=Ext.DomHelper.append(Ext.get(_3).dom,this.dhconfig,true);}this.el=_4;if(this.id){this.el.dom.id=this.el.id=this.id;}if(this.menu){this.el.child(this.menuClassTarget).addClass("x-btn-with-menu");this.menu.on("show",this.onMenuShow,this);this.menu.on("hide",this.onMenuHide,this);}_4.addClass("x-btn");if(Ext.isIE&&!Ext.isIE7){this.autoWidth.defer(1,this);}else{this.autoWidth();}if(this.handleMouseEvents){_4.on("mouseover",this.onMouseOver,this);_4.on("mouseout",this.onMouseOut,this);_4.on("mousedown",this.onMouseDown,this);}_4.on(this.clickEvent,this.onClick,this);if(this.hidden){this.hide();}if(this.disabled){this.disable();}Ext.ButtonToggleMgr.register(this);if(this.pressed){this.el.addClass("x-btn-pressed");}if(this.repeat){var _6=new Ext.util.ClickRepeater(_4,typeof this.repeat=="object"?this.repeat:{});_6.on("click",this.onClick,this);}},getEl:function(){return this.el;},destroy:function(){Ext.ButtonToggleMgr.unregister(this);this.el.removeAllListeners();this.purgeListeners();this.el.remove();},autoWidth:function(){if(this.el){this.el.setWidth("auto");if(Ext.isIE7&&Ext.isStrict){var ib=this.el.child("button");if(ib&&ib.getWidth()>20){ib.clip();ib.setWidth(Ext.util.TextMetrics.measure(ib,this.text).width+ib.getFrameWidth("lr"));}}if(this.minWidth){if(this.hidden){this.el.beginMeasure();}if(this.el.getWidth()","","","
     
    ","","","
     
    ");var _5=_4.append(_3,[this.text],true);if(this.cls){_5.addClass(this.cls);}if(this.icon){_5.child("button").setStyle("background-image","url("+this.icon+")");}this.el=_5;this.autoWidth();if(this.handleMouseEvents){_5.on("mouseover",this.onMouseOver,this);_5.on("mouseout",this.onMouseOut,this);_5.on("mousedown",this.onMouseDown,this);_5.on("mouseup",this.onMouseUp,this);}_5.on(this.clickEvent,this.onClick,this);if(this.tooltip){var _6=_5.child("button:first");if(typeof this.tooltip=="object"){Ext.QuickTips.tips(Ext.apply({target:_6.id},this.tooltip));}else{_6.dom[this.tooltipType]=this.tooltip;}}if(this.arrowTooltip){var _6=_5.child("button:nth(2)");_6.dom[this.tooltipType]=this.arrowTooltip;}if(this.hidden){this.hide();}if(this.disabled){this.disable();}if(this.menu){this.menu.on("show",this.onMenuShow,this);this.menu.on("hide",this.onMenuHide,this);}},autoWidth:function(){if(this.el){var _7=this.el.child("table:first");var _8=this.el.child("table:last");this.el.setWidth("auto");_7.setWidth("auto");if(Ext.isIE7&&Ext.isStrict){var ib=this.el.child("button:first");if(ib&&ib.getWidth()>20){ib.clip();ib.setWidth(Ext.util.TextMetrics.measure(ib,this.text).width+ib.getFrameWidth("lr"));}}if(this.minWidth){if(this.hidden){this.el.beginMeasure();}if((_7.getWidth()+_8.getWidth())
    ");this.tr=this.el.child("tr",true);var _5=0;this.items=new Ext.util.MixedCollection(false,function(o){return o.id||("item"+(++_5));});if(this.buttons){this.add.apply(this,this.buttons);delete this.buttons;}},add:function(){var a=arguments,l=a.length;for(var i=0;i=1&parseInt(v,10)+_13<=d.pages){this.field.dom.value=parseInt(v,10)+_13;_12=Math.min(Math.max(1,_12+_13),d.pages)-1;this.ds.load({params:{start:_12*this.pageSize,limit:this.pageSize}});}}e.stopEvent();}}}},beforeLoad:function(){if(this.loading){this.loading.disable();}},onClick:function(_14){var ds=this.ds;switch(_14){case "first":ds.load({params:{start:0,limit:this.pageSize}});break;case "prev":ds.load({params:{start:Math.max(0,this.cursor-this.pageSize),limit:this.pageSize}});break;case "next":ds.load({params:{start:this.cursor+this.pageSize,limit:this.pageSize}});break;case "last":var _16=ds.getTotalCount();var _17=_16%this.pageSize;var _18=_17?(_16-_17):_16-this.pageSize;ds.load({params:{start:_18,limit:this.pageSize}});break;case "refresh":ds.load({params:{start:this.cursor,limit:this.pageSize}});break;}},unbind:function(ds){ds.un("beforeload",this.beforeLoad,this);ds.un("load",this.onLoad,this);ds.un("loadexception",this.onLoadError,this);},bind:function(ds){ds.on("beforeload",this.beforeLoad,this);ds.on("load",this.onLoad,this);ds.on("loadexception",this.onLoadError,this);}}); - -Ext.Resizable=function(el,_2){this.el=Ext.get(el);if(_2&&_2.wrap){_2.resizeChild=this.el;this.el=this.el.wrap(typeof _2.wrap=="object"?_2.wrap:{cls:"xresizable-wrap"});this.el.id=this.el.dom.id=_2.resizeChild.id+"-rzwrap";this.el.setStyle("overflow","hidden");this.el.setPositioning(_2.resizeChild.getPositioning());_2.resizeChild.clearPositioning();if(!_2.width||!_2.height){var _3=_2.resizeChild.getSize();this.el.setSize(_3.width,_3.height);}if(_2.pinned&&!_2.adjustments){_2.adjustments="auto";}}this.proxy=this.el.createProxy({tag:"div",cls:"x-resizable-proxy",id:this.el.id+"-rzproxy"});this.proxy.unselectable();this.proxy.enableDisplayMode("block");Ext.apply(this,_2);if(this.pinned){this.disableTrackOver=true;this.el.addClass("x-resizable-pinned");}var _4=this.el.getStyle("position");if(_4!="absolute"&&_4!="fixed"){this.el.setStyle("position","relative");}if(!this.handles){this.handles="s,e,se";if(this.multiDirectional){this.handles+=",n,w";}}if(this.handles=="all"){this.handles="n s e w ne nw se sw";}var hs=this.handles.split(/\s*?[,;]\s*?| /);var ps=Ext.Resizable.positions;for(var i=0,_8=hs.length;i<_8;i++){if(hs[i]&&ps[hs[i]]){var _9=ps[hs[i]];this[_9]=new Ext.Resizable.Handle(this,_9,this.disableTrackOver,this.transparent);}}this.corner=this.southeast;if(this.handles.indexOf("n")!=-1||this.handles.indexOf("w")!=-1){this.updateBox=true;}this.activeHandle=null;if(this.resizeChild){if(typeof this.resizeChild=="boolean"){this.resizeChild=Ext.get(this.el.dom.firstChild,true);}else{this.resizeChild=Ext.get(this.resizeChild,true);}}if(this.adjustments=="auto"){var rc=this.resizeChild;var hw=this.west,he=this.east,hn=this.north,hs=this.south;if(rc&&(hw||hn)){rc.position("relative");rc.setLeft(hw?hw.el.getWidth():0);rc.setTop(hn?hn.el.getHeight():0);}this.adjustments=[(he?-he.el.getWidth():0)+(hw?-hw.el.getWidth():0),(hn?-hn.el.getHeight():0)+(hs?-hs.el.getHeight():0)-1];}if(this.draggable){this.dd=this.dynamic?this.el.initDD(null):this.el.initDDProxy(null,{dragElId:this.proxy.id});this.dd.setHandleElId(this.resizeChild?this.resizeChild.id:this.el.id);}this.addEvents({"beforeresize":true,"resize":true});if(this.width!==null&&this.height!==null){this.resizeTo(this.width,this.height);}else{this.updateChildSize();}if(Ext.isIE){this.el.dom.style.zoom=1;}Ext.Resizable.superclass.constructor.call(this);};Ext.extend(Ext.Resizable,Ext.util.Observable,{resizeChild:false,adjustments:[0,0],minWidth:5,minHeight:5,maxWidth:10000,maxHeight:10000,enabled:true,animate:false,duration:0.35,dynamic:false,handles:false,multiDirectional:false,disableTrackOver:false,easing:"easeOutStrong",widthIncrement:0,heightIncrement:0,pinned:false,width:null,height:null,preserveRatio:false,transparent:false,minX:0,minY:0,draggable:false,resizeTo:function(_e,_f){this.el.setSize(_e,_f);this.updateChildSize();this.fireEvent("resize",this,_e,_f,null);},startSizing:function(e,_11){this.fireEvent("beforeresize",this,e);if(this.enabled){if(!this.overlay){this.overlay=this.el.createProxy({tag:"div",cls:"x-resizable-overlay",html:" "});this.overlay.unselectable();this.overlay.enableDisplayMode("block");this.overlay.on("mousemove",this.onMouseMove,this);this.overlay.on("mouseup",this.onMouseUp,this);}this.overlay.setStyle("cursor",_11.el.getStyle("cursor"));this.resizing=true;this.startBox=this.el.getBox();this.startPoint=e.getXY();this.offsets=[(this.startBox.x+this.startBox.width)-this.startPoint[0],(this.startBox.y+this.startBox.height)-this.startPoint[1]];this.overlay.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.overlay.show();this.proxy.setStyle("visibility","hidden");this.proxy.show();this.proxy.setBox(this.startBox);if(!this.dynamic){this.proxy.setStyle("visibility","visible");}}},onMouseDown:function(_12,e){if(this.enabled){e.stopEvent();this.activeHandle=_12;this.startSizing(e,_12);}},onMouseUp:function(e){var _15=this.resizeElement();this.resizing=false;this.handleOut();this.overlay.hide();this.fireEvent("resize",this,_15.width,_15.height,e);},updateChildSize:function(){if(this.resizeChild){var el=this.el;var _17=this.resizeChild;var adj=this.adjustments;if(el.dom.offsetWidth){var b=el.getSize(true);_17.setSize(b.width+adj[0],b.height+adj[1]);}if(Ext.isIE){setTimeout(function(){if(el.dom.offsetWidth){var b=el.getSize(true);_17.setSize(b.width+adj[0],b.height+adj[1]);}},10);}}},snap:function(_1b,inc,min){if(!inc||!_1b){return _1b;}var _1e=_1b;var m=_1b%inc;if(m>0){if(m>(inc/2)){_1e=_1b+(inc-m);}else{_1e=_1b-m;}}return Math.max(min,_1e);},resizeElement:function(){var box=this.proxy.getBox();if(this.updateBox){this.el.setBox(box,false,this.animate,this.duration,null,this.easing);}else{this.el.setSize(box.width,box.height,this.animate,this.duration,null,this.easing);}this.updateChildSize();this.proxy.hide();return box;},constrain:function(v,_22,m,mx){if(v-_22mx){_22=mx-v;}}return _22;},onMouseMove:function(e){if(this.enabled){try{var _26=this.curSize||this.startBox;var x=this.startBox.x,y=this.startBox.y;var ox=x,oy=y;var w=_26.width,h=_26.height;var ow=w,oh=h;var mw=this.minWidth,mh=this.minHeight;var mxw=this.maxWidth,mxh=this.maxHeight;var wi=this.widthIncrement;var hi=this.heightIncrement;var _35=e.getXY();var _36=-(this.startPoint[0]-Math.max(this.minX,_35[0]));var _37=-(this.startPoint[1]-Math.max(this.minY,_35[1]));var pos=this.activeHandle.position;switch(pos){case "east":w+=_36;w=Math.min(Math.max(mw,w),mxw);break;case "south":h+=_37;h=Math.min(Math.max(mh,h),mxh);break;case "southeast":w+=_36;h+=_37;w=Math.min(Math.max(mw,w),mxw);h=Math.min(Math.max(mh,h),mxh);break;case "north":_37=this.constrain(h,_37,mh,mxh);y+=_37;h-=_37;break;case "west":_36=this.constrain(w,_36,mw,mxw);x+=_36;w-=_36;break;case "northeast":w+=_36;w=Math.min(Math.max(mw,w),mxw);_37=this.constrain(h,_37,mh,mxh);y+=_37;h-=_37;break;case "northwest":_36=this.constrain(w,_36,mw,mxw);_37=this.constrain(h,_37,mh,mxh);y+=_37;h-=_37;x+=_36;w-=_36;break;case "southwest":_36=this.constrain(w,_36,mw,mxw);h+=_37;h=Math.min(Math.max(mh,h),mxh);x+=_36;w-=_36;break;}var sw=this.snap(w,wi,mw);var sh=this.snap(h,hi,mh);if(sw!=w||sh!=h){switch(pos){case "northeast":y-=sh-h;break;case "north":y-=sh-h;break;case "southwest":x-=sw-w;break;case "west":x-=sw-w;break;case "northwest":x-=sw-w;y-=sh-h;break;}w=sw;h=sh;}if(this.preserveRatio){switch(pos){case "southeast":case "east":h=oh*(w/ow);h=Math.min(Math.max(mh,h),mxh);w=ow*(h/oh);break;case "south":w=ow*(h/oh);w=Math.min(Math.max(mw,w),mxw);h=oh*(w/ow);break;case "northeast":w=ow*(h/oh);w=Math.min(Math.max(mw,w),mxw);h=oh*(w/ow);break;case "north":var tw=w;w=ow*(h/oh);w=Math.min(Math.max(mw,w),mxw);h=oh*(w/ow);x+=(tw-w)/2;break;case "southwest":h=oh*(w/ow);h=Math.min(Math.max(mh,h),mxh);var tw=w;w=ow*(h/oh);x+=tw-w;break;case "west":var th=h;h=oh*(w/ow);h=Math.min(Math.max(mh,h),mxh);y+=(th-h)/2;var tw=w;w=ow*(h/oh);x+=tw-w;break;case "northwest":var tw=w;var th=h;h=oh*(w/ow);h=Math.min(Math.max(mh,h),mxh);w=ow*(h/oh);y+=th-h;x+=tw-w;break;}}this.proxy.setBounds(x,y,w,h);if(this.dynamic){this.resizeElement();}}catch(e){}}},handleOver:function(){if(this.enabled){this.el.addClass("x-resizable-over");}},handleOut:function(){if(!this.resizing){this.el.removeClass("x-resizable-over");}},getEl:function(){return this.el;},getResizeChild:function(){return this.resizeChild;},destroy:function(_3d){this.proxy.remove();this.overlay.removeAllListeners();this.overlay.remove();var ps=Ext.Resizable.positions;for(var k in ps){if(typeof ps[k]!="function"&&this[ps[k]]){var h=this[ps[k]];h.el.removeAllListeners();h.el.remove();}}if(_3d){this.el.update("");this.el.remove();}}});Ext.Resizable.positions={n:"north",s:"south",e:"east",w:"west",se:"southeast",sw:"southwest",nw:"northwest",ne:"northeast"};Ext.Resizable.Handle=function(rz,pos,_43,_44){if(!this.tpl){var tpl=Ext.DomHelper.createTemplate({tag:"div",cls:"x-resizable-handle x-resizable-handle-{0}"});tpl.compile();Ext.Resizable.Handle.prototype.tpl=tpl;}this.position=pos;this.rz=rz;this.el=this.tpl.append(rz.el.dom,[this.position],true);this.el.unselectable();if(_44){this.el.setOpacity(0);}this.el.on("mousedown",this.onMouseDown,this);if(!_43){this.el.on("mouseover",this.onMouseOver,this);this.el.on("mouseout",this.onMouseOut,this);}};Ext.Resizable.Handle.prototype={afterResize:function(rz){},onMouseDown:function(e){this.rz.onMouseDown(this,e);},onMouseOver:function(e){this.rz.handleOver(this,e);},onMouseOut:function(e){this.rz.handleOut(this,e);}}; - -Ext.SplitBar=function(_1,_2,_3,_4,_5){this.el=Ext.get(_1,true);this.el.dom.unselectable="on";this.resizingEl=Ext.get(_2,true);this.orientation=_3||Ext.SplitBar.HORIZONTAL;this.minSize=0;this.maxSize=2000;this.animate=false;this.useShim=false;this.shim=null;if(!_5){this.proxy=Ext.SplitBar.createProxy(this.orientation);}else{this.proxy=Ext.get(_5).dom;}this.dd=new Ext.dd.DDProxy(this.el.dom.id,"XSplitBars",{dragElId:this.proxy.id});this.dd.b4StartDrag=this.onStartProxyDrag.createDelegate(this);this.dd.endDrag=this.onEndProxyDrag.createDelegate(this);this.dragSpecs={};this.adapter=new Ext.SplitBar.BasicLayoutAdapter();this.adapter.init(this);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.placement=_4||(this.el.getX()>this.resizingEl.getX()?Ext.SplitBar.LEFT:Ext.SplitBar.RIGHT);this.el.addClass("x-splitbar-h");}else{this.placement=_4||(this.el.getY()>this.resizingEl.getY()?Ext.SplitBar.TOP:Ext.SplitBar.BOTTOM);this.el.addClass("x-splitbar-v");}this.addEvents({"resize":true,"moved":true,"beforeresize":true,"beforeapply":true});Ext.SplitBar.superclass.constructor.call(this);};Ext.extend(Ext.SplitBar,Ext.util.Observable,{onStartProxyDrag:function(x,y){this.fireEvent("beforeresize",this);if(!this.overlay){var o=Ext.DomHelper.insertFirst(document.body,{cls:"x-drag-overlay",html:" "},true);o.unselectable();o.enableDisplayMode("block");Ext.SplitBar.prototype.overlay=o;}this.overlay.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.overlay.show();Ext.get(this.proxy).setDisplayed("block");var _9=this.adapter.getElementSize(this);this.activeMinSize=this.getMinimumSize();this.activeMaxSize=this.getMaximumSize();var c1=_9-this.activeMinSize;var c2=Math.max(this.activeMaxSize-_9,0);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.dd.resetConstraints();this.dd.setXConstraint(this.placement==Ext.SplitBar.LEFT?c1:c2,this.placement==Ext.SplitBar.LEFT?c2:c1);this.dd.setYConstraint(0,0);}else{this.dd.resetConstraints();this.dd.setXConstraint(0,0);this.dd.setYConstraint(this.placement==Ext.SplitBar.TOP?c1:c2,this.placement==Ext.SplitBar.TOP?c2:c1);}this.dragSpecs.startSize=_9;this.dragSpecs.startPoint=[x,y];Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd,x,y);},onEndProxyDrag:function(e){Ext.get(this.proxy).setDisplayed(false);var _d=Ext.lib.Event.getXY(e);if(this.overlay){this.overlay.hide();}var _e;if(this.orientation==Ext.SplitBar.HORIZONTAL){_e=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.LEFT?_d[0]-this.dragSpecs.startPoint[0]:this.dragSpecs.startPoint[0]-_d[0]);}else{_e=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.TOP?_d[1]-this.dragSpecs.startPoint[1]:this.dragSpecs.startPoint[1]-_d[1]);}_e=Math.min(Math.max(_e,this.activeMinSize),this.activeMaxSize);if(_e!=this.dragSpecs.startSize){if(this.fireEvent("beforeapply",this,_e)!==false){this.adapter.setElementSize(this,_e);this.fireEvent("moved",this,_e);this.fireEvent("resize",this,_e);}}},getAdapter:function(){return this.adapter;},setAdapter:function(_f){this.adapter=_f;this.adapter.init(this);},getMinimumSize:function(){return this.minSize;},setMinimumSize:function(_10){this.minSize=_10;},getMaximumSize:function(){return this.maxSize;},setMaximumSize:function(_11){this.maxSize=_11;},setCurrentSize:function(_12){var _13=this.animate;this.animate=false;this.adapter.setElementSize(this,_12);this.animate=_13;},destroy:function(_14){if(this.shim){this.shim.remove();}this.dd.unreg();this.proxy.parentNode.removeChild(this.proxy);if(_14){this.el.remove();}}});Ext.SplitBar.createProxy=function(dir){var _16=new Ext.Element(document.createElement("div"));_16.unselectable();var cls="x-splitbar-proxy";_16.addClass(cls+" "+(dir==Ext.SplitBar.HORIZONTAL?cls+"-h":cls+"-v"));document.body.appendChild(_16.dom);return _16.dom;};Ext.SplitBar.BasicLayoutAdapter=function(){};Ext.SplitBar.BasicLayoutAdapter.prototype={init:function(s){},getElementSize:function(s){if(s.orientation==Ext.SplitBar.HORIZONTAL){return s.resizingEl.getWidth();}else{return s.resizingEl.getHeight();}},setElementSize:function(s,_1b,_1c){if(s.orientation==Ext.SplitBar.HORIZONTAL){if(!s.animate){s.resizingEl.setWidth(_1b);if(_1c){_1c(s,_1b);}}else{s.resizingEl.setWidth(_1b,true,0.1,_1c,"easeOut");}}else{if(!s.animate){s.resizingEl.setHeight(_1b);if(_1c){_1c(s,_1b);}}else{s.resizingEl.setHeight(_1b,true,0.1,_1c,"easeOut");}}}};Ext.SplitBar.AbsoluteLayoutAdapter=function(_1d){this.basic=new Ext.SplitBar.BasicLayoutAdapter();this.container=Ext.get(_1d);};Ext.SplitBar.AbsoluteLayoutAdapter.prototype={init:function(s){this.basic.init(s);},getElementSize:function(s){return this.basic.getElementSize(s);},setElementSize:function(s,_21,_22){this.basic.setElementSize(s,_21,this.moveSplitter.createDelegate(this,[s]));},moveSplitter:function(s){var yes=Ext.SplitBar;switch(s.placement){case yes.LEFT:s.el.setX(s.resizingEl.getRight());break;case yes.RIGHT:s.el.setStyle("right",(this.container.getWidth()-s.resizingEl.getLeft())+"px");break;case yes.TOP:s.el.setY(s.resizingEl.getBottom());break;case yes.BOTTOM:s.el.setY(s.resizingEl.getTop()-s.el.getHeight());break;}}};Ext.SplitBar.VERTICAL=1;Ext.SplitBar.HORIZONTAL=2;Ext.SplitBar.LEFT=1;Ext.SplitBar.RIGHT=2;Ext.SplitBar.TOP=3;Ext.SplitBar.BOTTOM=4; - -Ext.Editor=function(_1,_2){Ext.Editor.superclass.constructor.call(this,_2);this.field=_1;this.addEvents({"beforestartedit":true,"startedit":true,"beforecomplete":true,"complete":true,"specialkey":true});};Ext.extend(Ext.Editor,Ext.Component,{value:"",alignment:"c-c?",shadow:"frame",updateEl:false,onRender:function(ct,_4){this.el=new Ext.Layer({shadow:this.shadow,cls:"x-editor",parentEl:ct,shim:this.shim,shadowOffset:3,id:this.id});this.el.setStyle("overflow",Ext.isGecko?"auto":"hidden");this.field.render(this.el);if(Ext.isGecko){this.field.el.dom.setAttribute("autocomplete","off");}this.field.show();this.field.on("blur",this.onBlur,this);this.relayEvents(this.field,["specialkey"]);if(this.field.grow){this.field.on("autosize",this.el.sync,this.el,{delay:1});}},startEdit:function(el,_6){if(this.editing){this.completeEdit();}this.boundEl=Ext.get(el);var v=_6!==undefined?_6:this.boundEl.dom.innerHTML;if(!this.rendered){this.render(this.parentEl||document.body);}if(this.fireEvent("beforestartedit",this,this.boundEl,v)===false){return;}this.startValue=v;this.field.setValue(v);if(this.autoSize){var sz=this.boundEl.getSize();switch(this.autoSize){case "width":this.setSize(sz.width,"");break;case "height":this.setSize("",sz.height);break;default:this.setSize(sz.width,sz.height);}}this.el.alignTo(this.boundEl,this.alignment);this.editing=true;if(Ext.QuickTips){Ext.QuickTips.disable();}this.show();},setSize:function(w,h){this.field.setSize(w,h);if(this.el){this.el.sync();}},realign:function(){this.el.alignTo(this.boundEl,this.alignment);},completeEdit:function(_b){if(!this.editing){return;}var v=this.getValue();if(this.revertInvalid!==false&&!this.field.isValid()){v=this.startValue;this.cancelEdit(true);}if(String(v)==String(this.startValue)&&this.ignoreNoChange){this.editing=false;this.hide();return;}if(this.fireEvent("beforecomplete",this,v,this.startValue)!==false){this.editing=false;if(this.updateEl&&this.boundEl){this.boundEl.update(v);}if(_b!==true){this.hide();}this.fireEvent("complete",this,v,this.startValue);}},onShow:function(){this.el.show();if(this.hideEl!==false){this.boundEl.hide();}this.field.show();this.field.focus();this.fireEvent("startedit",this.boundEl,this.startValue);},cancelEdit:function(_d){if(this.editing){this.setValue(this.startValue);if(_d!==true){this.hide();}}},onBlur:function(){if(this.allowBlur!==true&&this.editing){this.completeEdit();}},onHide:function(){if(this.editing){this.completeEdit();return;}this.field.blur();if(this.field.collapse){this.field.collapse();}this.el.hide();if(this.hideEl!==false){this.boundEl.show();}if(Ext.QuickTips){Ext.QuickTips.enable();}},setValue:function(v){this.field.setValue(v);},getValue:function(){return this.field.getValue();}}); - -Ext.BasicDialog=function(el,_2){this.el=Ext.get(el);var dh=Ext.DomHelper;if(!this.el&&_2&&_2.autoCreate){if(typeof _2.autoCreate=="object"){if(!_2.autoCreate.id){_2.autoCreate.id=el;}this.el=dh.append(document.body,_2.autoCreate,true);}else{this.el=dh.append(document.body,{tag:"div",id:el,style:"visibility:hidden;"},true);}}el=this.el;el.setDisplayed(true);el.hide=this.hideAction;this.id=el.id;el.addClass("x-dlg");Ext.apply(this,_2);this.proxy=el.createProxy("x-dlg-proxy");this.proxy.hide=this.hideAction;this.proxy.setOpacity(0.5);this.proxy.hide();if(_2.width){el.setWidth(_2.width);}if(_2.height){el.setHeight(_2.height);}this.size=el.getSize();if(typeof _2.x!="undefined"&&typeof _2.y!="undefined"){this.xy=[_2.x,_2.y];}else{this.xy=el.getCenterXY(true);}this.header=el.child("/.x-dlg-hd");this.body=el.child("/.x-dlg-bd");this.footer=el.child("/.x-dlg-ft");if(!this.header){this.header=el.createChild({tag:"div",cls:"x-dlg-hd",html:" "},this.body?this.body.dom:null);}if(!this.body){this.body=el.createChild({tag:"div",cls:"x-dlg-bd"});}this.header.unselectable();if(this.title){this.header.update(this.title);}this.focusEl=el.createChild({tag:"a",href:"#",cls:"x-dlg-focus",tabIndex:"-1"});this.focusEl.swallowEvent("click",true);this.header.wrap({cls:"x-dlg-hd-right"}).wrap({cls:"x-dlg-hd-left"},true);this.bwrap=this.body.wrap({tag:"div",cls:"x-dlg-dlg-body"});if(this.footer){this.bwrap.dom.appendChild(this.footer.dom);}this.bg=this.el.createChild({tag:"div",cls:"x-dlg-bg",html:"
     
    "});this.centerBg=this.bg.child("div.x-dlg-bg-center");if(this.autoScroll!==false&&!this.autoTabs){this.body.setStyle("overflow","auto");}this.toolbox=this.el.createChild({cls:"x-dlg-toolbox"});if(this.closable!==false){this.el.addClass("x-dlg-closable");this.close=this.toolbox.createChild({cls:"x-dlg-close"});this.close.on("click",this.closeClick,this);this.close.addClassOnOver("x-dlg-close-over");}if(this.collapsible!==false){this.collapseBtn=this.toolbox.createChild({cls:"x-dlg-collapse"});this.collapseBtn.on("click",this.collapseClick,this);this.collapseBtn.addClassOnOver("x-dlg-collapse-over");this.header.on("dblclick",this.collapseClick,this);}if(this.resizable!==false){this.el.addClass("x-dlg-resizable");this.resizer=new Ext.Resizable(el,{minWidth:this.minWidth||80,minHeight:this.minHeight||80,handles:this.resizeHandles||"all",pinned:true});this.resizer.on("beforeresize",this.beforeResize,this);this.resizer.on("resize",this.onResize,this);}if(this.draggable!==false){el.addClass("x-dlg-draggable");if(!this.proxyDrag){var dd=new Ext.dd.DD(el.dom.id,"WindowDrag");}else{var dd=new Ext.dd.DDProxy(el.dom.id,"WindowDrag",{dragElId:this.proxy.id});}dd.setHandleElId(this.header.id);dd.endDrag=this.endMove.createDelegate(this);dd.startDrag=this.startMove.createDelegate(this);dd.onDrag=this.onDrag.createDelegate(this);dd.scroll=false;this.dd=dd;}if(this.modal){this.mask=dh.append(document.body,{tag:"div",cls:"x-dlg-mask"},true);this.mask.enableDisplayMode("block");this.mask.hide();this.el.addClass("x-dlg-modal");}if(this.shadow){this.shadow=new Ext.Shadow({mode:typeof this.shadow=="string"?this.shadow:"sides",offset:this.shadowOffset});}else{this.shadowOffset=0;}if(Ext.useShims&&this.shim!==false){this.shim=this.el.createShim();this.shim.hide=this.hideAction;this.shim.hide();}else{this.shim=false;}if(this.autoTabs){this.initTabs();}this.addEvents({"keydown":true,"move":true,"resize":true,"beforehide":true,"hide":true,"beforeshow":true,"show":true});el.on("keydown",this.onKeyDown,this);el.on("mousedown",this.toFront,this);Ext.EventManager.onWindowResize(this.adjustViewport,this,true);this.el.hide();Ext.DialogManager.register(this);Ext.BasicDialog.superclass.constructor.call(this);};Ext.extend(Ext.BasicDialog,Ext.util.Observable,{shadowOffset:5,minHeight:80,minWidth:200,minButtonWidth:75,defaultButton:null,buttonAlign:"right",tabTag:"div",firstShow:true,setTitle:function(_5){this.header.update(_5);return this;},closeClick:function(){this.hide();},collapseClick:function(){this[this.collapsed?"expand":"collapse"]();},collapse:function(){if(!this.collapsed){this.collapsed=true;this.el.addClass("x-dlg-collapsed");this.restoreHeight=this.el.getHeight();this.resizeTo(this.el.getWidth(),this.header.getHeight());}},expand:function(){if(this.collapsed){this.collapsed=false;this.el.removeClass("x-dlg-collapsed");this.resizeTo(this.el.getWidth(),this.restoreHeight);}},initTabs:function(){var _6=this.getTabs();while(_6.getTab(0)){_6.removeTab(0);}this.el.select(this.tabTag+".x-dlg-tab").each(function(el){var _8=el.dom;_6.addTab(Ext.id(_8),_8.title);_8.title="";});_6.activate(0);return _6;},beforeResize:function(){this.resizer.minHeight=Math.max(this.minHeight,this.getHeaderFooterHeight(true)+40);},onResize:function(){this.refreshSize();this.syncBodyHeight();this.adjustAssets();this.focus();this.fireEvent("resize",this,this.size.width,this.size.height);},onKeyDown:function(e){if(this.isVisible()){this.fireEvent("keydown",this,e);}},resizeTo:function(_a,_b){this.el.setSize(_a,_b);this.size={width:_a,height:_b};this.syncBodyHeight();if(this.fixedcenter){this.center();}if(this.isVisible()){this.constrainXY();this.adjustAssets();}this.fireEvent("resize",this,_a,_b);return this;},setContentSize:function(w,h){h+=this.getHeaderFooterHeight()+this.body.getMargins("tb");w+=this.body.getMargins("lr")+this.bwrap.getMargins("lr")+this.centerBg.getPadding("lr");h+=this.body.getPadding("tb")+this.bwrap.getBorderWidth("tb")+this.body.getBorderWidth("tb")+this.el.getBorderWidth("tb");w+=this.body.getPadding("lr")+this.bwrap.getBorderWidth("lr")+this.body.getBorderWidth("lr")+this.bwrap.getPadding("lr")+this.el.getBorderWidth("lr");if(this.tabs){h+=this.tabs.stripWrap.getHeight()+this.tabs.bodyEl.getMargins("tb")+this.tabs.bodyEl.getPadding("tb");w+=this.tabs.bodyEl.getMargins("lr")+this.tabs.bodyEl.getPadding("lr");}this.resizeTo(w,h);return this;},addKeyListener:function(_e,fn,_10){var _11,_12,_13,alt;if(typeof _e=="object"&&!(_e instanceof Array)){_11=_e["key"];_12=_e["shift"];_13=_e["ctrl"];alt=_e["alt"];}else{_11=_e;}var _15=function(dlg,e){if((!_12||e.shiftKey)&&(!_13||e.ctrlKey)&&(!alt||e.altKey)){var k=e.getKey();if(_11 instanceof Array){for(var i=0,len=_11.length;i
    "},null,true);this.btnContainer=tb.firstChild.firstChild.firstChild;}var _20={handler:_1c,scope:_1d,minWidth:this.minButtonWidth,hideParent:true};if(typeof _1b=="string"){_20.text=_1b;}else{if(_1b.tag){_20.dhconfig=_1b;}else{Ext.apply(_20,_1b);}}var btn=new Ext.Button(this.btnContainer.appendChild(document.createElement("td")),_20);this.syncBodyHeight();if(!this.buttons){this.buttons=[];}this.buttons.push(btn);return btn;},setDefaultButton:function(btn){this.defaultButton=btn;return this;},getHeaderFooterHeight:function(_23){var _24=0;if(this.header){_24+=this.header.getHeight();}if(this.footer){var fm=this.footer.getMargins();_24+=(this.footer.getHeight()+fm.top+fm.bottom);}_24+=this.bwrap.getPadding("tb")+this.bwrap.getBorderWidth("tb");_24+=this.centerBg.getPadding("tb");return _24;},syncBodyHeight:function(){var bd=this.body,cb=this.centerBg,bw=this.bwrap;var _29=this.size.height-this.getHeaderFooterHeight(false);bd.setHeight(_29-bd.getMargins("tb"));var hh=this.header.getHeight();var h=this.size.height-hh;cb.setHeight(h);bw.setLeftTop(cb.getPadding("l"),hh+cb.getPadding("t"));bw.setHeight(h-cb.getPadding("tb"));bw.setWidth(this.el.getWidth(true)-cb.getPadding("lr"));bd.setWidth(bw.getWidth(true));if(this.tabs){this.tabs.syncHeight();if(Ext.isIE){this.tabs.el.repaint();}}},restoreState:function(){var box=Ext.state.Manager.get(this.stateId||(this.el.id+"-state"));if(box&&box.width){this.xy=[box.x,box.y];this.resizeTo(box.width,box.height);}return this;},beforeShow:function(){this.expand();if(this.fixedcenter){this.xy=this.el.getCenterXY(true);}if(this.modal){Ext.get(document.body).addClass("x-body-masked");this.mask.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.mask.show();}this.constrainXY();},animShow:function(){var b=Ext.get(this.animateTarget,true).getBox();this.proxy.setSize(b.width,b.height);this.proxy.setLocation(b.x,b.y);this.proxy.show();this.proxy.setBounds(this.xy[0],this.xy[1],this.size.width,this.size.height,true,0.35,this.showEl.createDelegate(this));},show:function(_2e){if(this.fireEvent("beforeshow",this)===false){return;}if(this.syncHeightBeforeShow){this.syncBodyHeight();}else{if(this.firstShow){this.firstShow=false;this.syncBodyHeight();}}this.animateTarget=_2e||this.animateTarget;if(!this.el.isVisible()){this.beforeShow();if(this.animateTarget){this.animShow();}else{this.showEl();}}return this;},showEl:function(){this.proxy.hide();this.el.setXY(this.xy);this.el.show();this.adjustAssets(true);this.toFront();this.focus();if(Ext.isIE){this.el.repaint();}this.fireEvent("show",this);},focus:function(){if(this.defaultButton){this.defaultButton.focus();}else{this.focusEl.focus();}},constrainXY:function(){if(this.constraintoviewport!==false){if(!this.viewSize){if(this.container){var s=this.container.getSize();this.viewSize=[s.width,s.height];}else{this.viewSize=[Ext.lib.Dom.getViewWidth(),Ext.lib.Dom.getViewHeight()];}}var s=Ext.get(this.container||document).getScroll();var x=this.xy[0],y=this.xy[1];var w=this.size.width,h=this.size.height;var vw=this.viewSize[0],vh=this.viewSize[1];var _36=false;if(x+w>vw+s.left){x=vw-w;_36=true;}if(y+h>vh+s.top){y=vh-h;_36=true;}if(x
     
    "});_6=_5.dom.firstChild;_7=Ext.get(_5.dom.childNodes[2]);_7.enableDisplayMode();_7.addKeyListener([10,13],function(){if(_1.isVisible()&&_2&&_2.buttons){if(_2.buttons.ok){_e("ok");}else{if(_2.buttons.yes){_e("yes");}}}});_8=Ext.get(_5.dom.childNodes[3]);_8.enableDisplayMode();_9=Ext.get(_5.dom.childNodes[4]);_9.enableDisplayMode();var pf=_9.dom.firstChild;pp=Ext.get(pf.firstChild);pp.setHeight(pf.offsetHeight);}return _1;},updateText:function(_1b){if(!_1.isVisible()&&!_2.width){_1.resizeTo(this.maxWidth,100);}_6.innerHTML=_1b||" ";var w=Math.max(Math.min(_2.width||_6.offsetWidth,this.maxWidth),Math.max(_2.minWidth||this.minWidth,_d));if(_2.prompt){_c.setWidth(w);}if(_1.isVisible()){_1.fixedcenter=false;}_1.setContentSize(w,_5.getHeight());if(_1.isVisible()){_1.fixedcenter=true;}return this;},updateProgress:function(_1d,_1e){if(_1e){this.updateText(_1e);}pp.setWidth(Math.floor(_1d*_9.dom.firstChild.offsetWidth));return this;},isVisible:function(){return _1&&_1.isVisible();},hide:function(){if(this.isVisible()){_1.hide();}},show:function(_1f){if(this.isVisible()){this.hide();}var d=this.getDialog();_2=_1f;d.setTitle(_2.title||" ");d.close.setDisplayed(_2.closable!==false);_c=_7;_2.prompt=_2.prompt||(_2.multiline?true:false);if(_2.prompt){if(_2.multiline){_7.hide();_8.show();_8.setHeight(typeof _2.multiline=="number"?_2.multiline:this.defaultTextHeight);_c=_8;}else{_7.show();_8.hide();}}else{_7.hide();_8.hide();}_9.setDisplayed(_2.progress===true);this.updateProgress(0);_c.dom.value=_2.value||"";if(_2.prompt){_1.setDefaultButton(_c);}else{var bs=_2.buttons;var db=null;if(bs&&bs.ok){db=_b["ok"];}else{if(bs&&bs.yes){db=_b["yes"];}}_1.setDefaultButton(db);}_d=_11(_2.buttons);this.updateText(_2.msg);if(_2.cls){d.el.addClass(_2.cls);}d.proxyDrag=_2.proxyDrag===true;d.modal=_2.modal!==false;d.mask=_2.modal!==false?_3:false;if(!d.isVisible()){document.body.appendChild(_1.el.dom);d.animateTarget=null;d.show(_1f.animEl);}return this;},progress:function(_23,msg){this.show({title:_23,msg:msg,buttons:false,progress:true,closable:false,minWidth:this.minProgressWidth});return this;},alert:function(_25,msg,fn,_28){this.show({title:_25,msg:msg,buttons:this.OK,fn:fn,scope:_28});return this;},wait:function(msg,_2a){this.show({title:_2a,msg:msg,buttons:false,closable:false,progress:true,modal:true,width:300,wait:true});_4=Ext.TaskMgr.start({run:function(i){Ext.MessageBox.updateProgress(((((i+20)%20)+1)*5)*0.01);},interval:1000});return this;},confirm:function(_2c,msg,fn,_2f){this.show({title:_2c,msg:msg,buttons:this.YESNO,fn:fn,scope:_2f});return this;},prompt:function(_30,msg,fn,_33,_34){this.show({title:_30,msg:msg,buttons:this.OKCANCEL,fn:fn,minWidth:250,scope:_33,prompt:true,multiline:_34});return this;},OK:{ok:true},YESNO:{yes:true,no:true},OKCANCEL:{ok:true,cancel:true},YESNOCANCEL:{yes:true,no:true,cancel:true},defaultTextHeight:75,maxWidth:600,minWidth:100,minProgressWidth:250,buttonText:{ok:"OK",cancel:"Cancel",yes:"Yes",no:"No"}};}();Ext.Msg=Ext.MessageBox; - -Ext.QuickTips=function(){var el,_2,_3,_4,tm,_6,_7,_8={},_9,_a=null,_b,_c;var ce,bd,xy,dd;var _11=false,_12=true,_13=false;var _14=1,_15=1,_16=1,_17=[];var _18=function(e){if(_12){return;}var t=e.getTarget();if(!t||t.nodeType!==1||t==document||t==document.body){return;}if(ce&&t==ce.el){clearTimeout(_15);return;}if(t&&_8[t.id]){_8[t.id].el=t;_14=_1b.defer(tm.showDelay,tm,[_8[t.id]]);return;}var ttp,et=Ext.fly(t);var ns=_6.namespace;if(tm.interceptTitles&&t.title){ttp=t.title;t.qtip=ttp;t.removeAttribute("title");e.preventDefault();}else{ttp=t.qtip||et.getAttributeNS(ns,_6.attribute);}if(ttp){_14=_1b.defer(tm.showDelay,tm,[{el:t,text:ttp,width:et.getAttributeNS(ns,_6.width),autoHide:et.getAttributeNS(ns,_6.hide)!="user",title:et.getAttributeNS(ns,_6.title),cls:et.getAttributeNS(ns,_6.cls)}]);}};var _1f=function(e){clearTimeout(_14);var t=e.getTarget();if(t&&ce&&ce.el==t&&(tm.autoHide&&ce.autoHide!==false)){_15=setTimeout(_22,tm.hideDelay);}};var _23=function(e){if(_12){return;}xy=e.getXY();xy[1]+=18;if(tm.trackMouse&&ce){el.setXY(xy);}};var _25=function(e){clearTimeout(_14);clearTimeout(_15);if(!e.within(el)){if(tm.hideOnClick){_22();tm.disable();}}};var _27=function(e){tm.enable();};var _29=function(){return _b.getPadding("l")+_c.getPadding("r");};var _1b=function(o){if(_12){return;}clearTimeout(_16);ce=o;if(_a){el.removeClass(_a);_a=null;}if(ce.cls){el.addClass(ce.cls);_a=ce.cls;}if(ce.title){_4.update(ce.title);_4.show();}else{_4.update("");_4.hide();}el.dom.style.width=tm.maxWidth+"px";_3.update(o.text);var p=_29(),w=ce.width;if(!w){var td=_3.dom;var aw=Math.max(td.offsetWidth,td.clientWidth,td.scrollWidth);if(aw>tm.maxWidth){w=tm.maxWidth;}else{if(aw

    ");_4=el.child("h3");_4.enableDisplayMode("block");_2=el.child("div.x-tip-bd");_3=el.child("div.x-tip-bd-inner");_b=el.child("div.x-tip-bd-left");_c=el.child("div.x-tip-bd-right");_7=el.child("div.x-tip-close");_7.enableDisplayMode("block");_7.on("click",_22);d=Ext.get(document);d.on("mousedown",_25);d.on("mouseup",_27);d.on("mouseover",_18);d.on("mouseout",_1f);d.on("mousemove",_23);_9=d.addKeyListener(27,_22);_9.disable();if(Ext.dd.DD){dd=el.initDD("default",null,{onDrag:function(){el.sync();}});dd.setHandleElId(_4.id);dd.lock();}_13=true;}this.enable();},register:function(_32){var cs=_32 instanceof Array?_32:arguments;for(var i=0,len=cs.length;i0){var f=function(_14,_15){if(_14&&_15){var n=_15.findChild(_f,v);if(n){n.select();if(_10){_10(true,n);}}}else{if(_10){_10(false,n);}}};this.expandPath(_11.join(this.pathSeparator),_f,f);}else{this.root.select();if(_10){_10(true,this.root);}}},render:function(){this.container=this.el.createChild({tag:"ul",cls:"x-tree-root-ct "+(this.lines?"x-tree-lines":"x-tree-no-lines")});if(this.containerScroll){Ext.dd.ScrollManager.register(this.el);}if((this.enableDD||this.enableDrop)&&!this.dropZone){this.dropZone=new Ext.tree.TreeDropZone(this,this.dropConfig||{ddGroup:this.ddGroup||"TreeDD",appendOnly:this.ddAppendOnly===true});}if((this.enableDD||this.enableDrag)&&!this.dragZone){this.dragZone=new Ext.tree.TreeDragZone(this,this.dragConfig||{ddGroup:this.ddGroup||"TreeDD",scroll:this.ddScroll});}this.getSelectionModel().init(this);this.root.render();if(!this.rootVisible){this.root.renderChildren();}return this;}}); - -Ext.tree.DefaultSelectionModel=function(){this.selNode=null;this.addEvents({"selectionchange":true,"beforeselect":true});};Ext.extend(Ext.tree.DefaultSelectionModel,Ext.util.Observable,{init:function(_1){this.tree=_1;_1.el.on("keydown",this.onKeyDown,this);_1.on("click",this.onNodeClick,this);},onNodeClick:function(_2,e){this.select(_2);},select:function(_4){var _5=this.selNode;if(_5!=_4&&this.fireEvent("beforeselect",this,_4,_5)!==false){if(_5){_5.ui.onSelectedChange(false);}this.selNode=_4;_4.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,_4,_5);}return _4;},unselect:function(_6){if(this.selNode==_6){this.clearSelections();}},clearSelections:function(){var n=this.selNode;if(n){n.ui.onSelectedChange(false);this.selNode=null;this.fireEvent("selectionchange",this,null);}return n;},getSelectedNode:function(){return this.selNode;},isSelected:function(_8){return this.selNode==_8;},selectPrevious:function(){var s=this.selNode||this.lastSelNode;if(!s){return null;}var ps=s.previousSibling;if(ps){if(!ps.isExpanded()||ps.childNodes.length<1){return this.select(ps);}else{var lc=ps.lastChild;while(lc&&lc.isExpanded()&&lc.childNodes.length>0){lc=lc.lastChild;}return this.select(lc);}}else{if(s.parentNode&&(this.tree.rootVisible||!s.parentNode.isRoot)){return this.select(s.parentNode);}}return null;},selectNext:function(){var s=this.selNode||this.lastSelNode;if(!s){return null;}if(s.firstChild&&s.isExpanded()){return this.select(s.firstChild);}else{if(s.nextSibling){return this.select(s.nextSibling);}else{if(s.parentNode){var _d=null;s.parentNode.bubble(function(){if(this.nextSibling){_d=this.getOwnerTree().selModel.select(this.nextSibling);return false;}});return _d;}}}return null;},onKeyDown:function(e){var s=this.selNode||this.lastSelNode;var sm=this;if(!s){return;}var k=e.getKey();switch(k){case e.DOWN:e.stopEvent();this.selectNext();break;case e.UP:e.stopEvent();this.selectPrevious();break;case e.RIGHT:e.preventDefault();if(s.hasChildNodes()){if(!s.isExpanded()){s.expand();}else{if(s.firstChild){this.select(s.firstChild,e);}}}break;case e.LEFT:e.preventDefault();if(s.hasChildNodes()&&s.isExpanded()){s.collapse();}else{if(s.parentNode&&(this.tree.rootVisible||s.parentNode!=this.tree.getRootNode())){this.select(s.parentNode,e);}}break;}}});Ext.tree.MultiSelectionModel=function(){this.selNodes=[];this.selMap={};this.addEvents({"selectionchange":true});};Ext.extend(Ext.tree.MultiSelectionModel,Ext.util.Observable,{init:function(_12){this.tree=_12;_12.el.on("keydown",this.onKeyDown,this);_12.on("click",this.onNodeClick,this);},onNodeClick:function(_13,e){this.select(_13,e,e.ctrlKey);},select:function(_15,e,_17){if(_17!==true){this.clearSelections(true);}if(this.isSelected(_15)){this.lastSelNode=_15;return _15;}this.selNodes.push(_15);this.selMap[_15.id]=_15;this.lastSelNode=_15;_15.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,this.selNodes);return _15;},unselect:function(_18){if(this.selMap[_18.id]){_18.ui.onSelectedChange(false);var sn=this.selNodes;var _1a=-1;if(sn.indexOf){_1a=sn.indexOf(_18);}else{for(var i=0,len=sn.length;i0){for(var i=0,len=sn.length;i
    ","",this.indentMarkup,"","","","",n.text,"
    ","
      ",""];if(_25!==true&&n.nextSibling&&n.nextSibling.ui.getEl()){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",n.nextSibling.ui.getEl(),buf.join(""));}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",_27,buf.join(""));}this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var cs=this.elNode.childNodes;this.indentNode=cs[0];this.ecNode=cs[1];this.iconNode=cs[2];this.anchor=cs[3];this.textNode=cs[3].firstChild;if(a.qtip){if(this.textNode.setAttributeNS){this.textNode.setAttributeNS("ext","qtip",a.qtip);if(a.qtipTitle){this.textNode.setAttributeNS("ext","qtitle",a.qtipTitle);}}else{this.textNode.setAttribute("ext:qtip",a.qtip);if(a.qtipTitle){this.textNode.setAttribute("ext:qtitle",a.qtipTitle);}}}this.initEvents();if(!this.node.expanded){this.updateExpandIcon();}}else{if(_25===true){_27.appendChild(this.wrap);}}},getAnchor:function(){return this.anchor;},getTextEl:function(){return this.textNode;},getIconEl:function(){return this.iconNode;},updateExpandIcon:function(){if(this.rendered){var n=this.node,c1,c2;var cls=n.isLast()?"x-tree-elbow-end":"x-tree-elbow";var _2f=n.hasChildNodes();if(_2f){if(n.expanded){cls+="-minus";c1="x-tree-node-collapsed";c2="x-tree-node-expanded";}else{cls+="-plus";c1="x-tree-node-expanded";c2="x-tree-node-collapsed";}if(this.wasLeaf){this.removeClass("x-tree-node-leaf");this.wasLeaf=false;}if(this.c1!=c1||this.c2!=c2){Ext.fly(this.elNode).replaceClass(c1,c2);this.c1=c1;this.c2=c2;}}else{if(!this.wasLeaf){Ext.fly(this.elNode).replaceClass("x-tree-node-expanded","x-tree-node-leaf");this.wasLeaf=true;}}var ecc="x-tree-ec-icon "+cls;if(this.ecc!=ecc){this.ecNode.className=ecc;this.ecc=ecc;}}},getChildIndent:function(){if(!this.childIndent){var buf=[];var p=this.node;while(p){if(!p.isRoot||(p.isRoot&&p.ownerTree.rootVisible)){if(!p.isLast()){buf.unshift("");}else{buf.unshift("");}}p=p.parentNode;}this.childIndent=buf.join("");}return this.childIndent;},renderIndent:function(){if(this.rendered){var _33="";var p=this.node.parentNode;if(p){_33=p.ui.getChildIndent();}if(this.indentMarkup!=_33){this.indentNode.innerHTML=_33;this.indentMarkup=_33;}this.updateExpandIcon();}}};Ext.tree.RootTreeNodeUI=function(){Ext.tree.RootTreeNodeUI.superclass.constructor.apply(this,arguments);};Ext.extend(Ext.tree.RootTreeNodeUI,Ext.tree.TreeNodeUI,{render:function(){if(!this.rendered){var _35=this.node.ownerTree.container.dom;this.node.expanded=true;_35.innerHTML="
      ";this.wrap=this.ctNode=_35.firstChild;}},collapse:function(){},expand:function(){}}); - -Ext.tree.TreeLoader=function(_1){this.baseParams={};this.requestMethod="POST";Ext.apply(this,_1);this.addEvents({"beforeload":true,"load":true,"loadexception":true});};Ext.extend(Ext.tree.TreeLoader,Ext.util.Observable,{uiProviders:{},clearOnLoad:true,load:function(_2,_3){if(this.clearOnLoad){while(_2.firstChild){_2.removeChild(_2.firstChild);}}if(_2.attributes.children){var cs=_2.attributes.children;for(var i=0,_6=cs.length;i<_6;i++){_2.appendChild(this.createNode(cs[i]));}if(typeof _3=="function"){_3();}}else{if(this.dataUrl){this.requestData(_2,_3);}}},getParams:function(_7){var _8=[],bp=this.baseParams;for(var _a in bp){if(typeof bp[_a]!="function"){_8.push(encodeURIComponent(_a),"=",encodeURIComponent(bp[_a]),"&");}}_8.push("node=",encodeURIComponent(_7.id));return _8.join("");},requestData:function(_b,_c){if(this.fireEvent("beforeload",this,_b,_c)!==false){var _d=this.getParams(_b);var cb={success:this.handleResponse,failure:this.handleFailure,scope:this,argument:{callback:_c,node:_b}};this.transId=Ext.lib.Ajax.request(this.requestMethod,this.dataUrl,cb,_d);}else{if(typeof _c=="function"){_c();}}},isLoading:function(){return this.transId?true:false;},abort:function(){if(this.isLoading()){Ext.lib.Ajax.abort(this.transId);}},createNode:function(_f){if(this.applyLoader!==false){_f.loader=this;}if(typeof _f.uiProvider=="string"){_f.uiProvider=this.uiProviders[_f.uiProvider]||eval(_f.uiProvider);}return (_f.leaf?new Ext.tree.TreeNode(_f):new Ext.tree.AsyncTreeNode(_f));},processResponse:function(_10,_11,_12){var _13=_10.responseText;try{var o=eval("("+_13+")");for(var i=0,len=o.length;iv2){return _3?-1:+1;}else{return 0;}}};};Ext.tree.TreeSorter.prototype={doSort:function(_d){_d.sort(this.sortFn);},compareNodes:function(n1,n2){return (n1.text.toUpperCase()>n2.text.toUpperCase()?1:-1);},updateSort:function(_10,_11){if(_11.childrenRendered){this.doSort.defer(1,this,[_11]);}}}; - -if(Ext.dd.DropZone){Ext.tree.TreeDropZone=function(_1,_2){this.allowParentInsert=false;this.allowContainerDrop=false;this.appendOnly=false;Ext.tree.TreeDropZone.superclass.constructor.call(this,_1.container,_2);this.tree=_1;this.lastInsertClass="x-tree-no-status";this.dragOverData={};};Ext.extend(Ext.tree.TreeDropZone,Ext.dd.DropZone,{ddGroup:"TreeDD",expandDelay:1000,expandNode:function(_3){if(_3.hasChildNodes()&&!_3.isExpanded()){_3.expand(false,null,this.triggerCacheRefresh.createDelegate(this));}},queueExpand:function(_4){this.expandProcId=this.expandNode.defer(this.expandDelay,this,[_4]);},cancelExpand:function(){if(this.expandProcId){clearTimeout(this.expandProcId);this.expandProcId=false;}},isValidDropPoint:function(n,pt,dd,e,_9){if(!n||!_9){return false;}var _a=n.node;var _b=_9.node;if(!(_a&&_a.isTarget&&pt)){return false;}if(pt=="append"&&_a.allowChildren===false){return false;}if((pt=="above"||pt=="below")&&(_a.parentNode&&_a.parentNode.allowChildren===false)){return false;}if(_b&&(_a==_b||_b.contains(_a))){return false;}var _c=this.dragOverData;_c.tree=this.tree;_c.target=_a;_c.data=_9;_c.point=pt;_c.source=dd;_c.rawEvent=e;_c.dropNode=_b;_c.cancel=false;var _d=this.tree.fireEvent("nodedragover",_c);return _c.cancel===false&&_d!==false;},getDropPoint:function(e,n,dd){var tn=n.node;if(tn.isRoot){return tn.allowChildren!==false?"append":false;}var _12=n.ddel;var t=Ext.lib.Dom.getY(_12),b=t+_12.offsetHeight;var y=Ext.lib.Event.getPageY(e);var _16=tn.allowChildren===false||tn.isLeaf();if(this.appendOnly||tn.parentNode.allowChildren===false){return _16?false:"append";}var _17=false;if(!this.allowParentInsert){_17=tn.hasChildNodes()&&tn.isExpanded();}var q=(b-t)/(_16?2:3);if(y>=t&&y<(t+q)){return "above";}else{if(!_17&&(_16||y>=b-q&&y<=b)){return "below";}else{return "append";}}},onNodeEnter:function(n,dd,e,_1c){this.cancelExpand();},onNodeOver:function(n,dd,e,_20){var pt=this.getDropPoint(e,n,dd);var _22=n.node;if(!this.expandProcId&&pt=="append"&&_22.hasChildNodes()&&!n.node.isExpanded()){this.queueExpand(_22);}else{if(pt!="append"){this.cancelExpand();}}var _23=this.dropNotAllowed;if(this.isValidDropPoint(n,pt,dd,e,_20)){if(pt){var el=n.ddel;var cls;if(pt=="above"){_23=n.node.isFirst()?"x-tree-drop-ok-above":"x-tree-drop-ok-between";cls="x-tree-drag-insert-above";}else{if(pt=="below"){_23=n.node.isLast()?"x-tree-drop-ok-below":"x-tree-drop-ok-between";cls="x-tree-drag-insert-below";}else{_23="x-tree-drop-ok-append";cls="x-tree-drag-append";}}if(this.lastInsertClass!=cls){Ext.fly(el).replaceClass(this.lastInsertClass,cls);this.lastInsertClass=cls;}}}return _23;},onNodeOut:function(n,dd,e,_29){this.cancelExpand();this.removeDropIndicators(n);},onNodeDrop:function(n,dd,e,_2d){var _2e=this.getDropPoint(e,n,dd);var _2f=n.node;_2f.ui.startDrop();if(!this.isValidDropPoint(n,_2e,dd,e,_2d)){_2f.ui.endDrop();return false;}var _30=_2d.node||(dd.getTreeNode?dd.getTreeNode(_2d,_2f,_2e,e):null);var _31={tree:this.tree,target:_2f,data:_2d,point:_2e,source:dd,rawEvent:e,dropNode:_30,cancel:!_30};var _32=this.tree.fireEvent("beforenodedrop",_31);if(_32===false||_31.cancel===true||!_31.dropNode){_2f.ui.endDrop();return false;}_2f=_31.target;if(_2e=="append"&&!_2f.isExpanded()){_2f.expand(false,null,function(){this.completeDrop(_31);}.createDelegate(this));}else{this.completeDrop(_31);}return true;},completeDrop:function(de){var ns=de.dropNode,p=de.point,t=de.target;if(!(ns instanceof Array)){ns=[ns];}var n;for(var i=0,len=ns.length;ind.offsetLeft){td.scrollLeft=nd.offsetLeft;}var w=Math.min(this.maxWidth,(td.clientWidth>20?td.clientWidth:td.offsetWidth)-Math.max(0,nd.offsetLeft-td.scrollLeft)-5);this.setSize(w,"");},triggerEdit:function(_9){this.completeEdit();this.editNode=_9;this.startEdit(_9.ui.textNode,_9.text);},bindScroll:function(){this.tree.el.on("scroll",this.cancelEdit,this);},beforeNodeClick:function(_a){if(this.tree.getSelectionModel().isSelected(_a)){this.triggerEdit(_a);return false;}},updateNode:function(ed,_c){this.tree.el.un("scroll",this.cancelEdit,this);this.editNode.setText(_c);},onSpecialKey:function(_d,e){var k=e.getKey();if(k==e.ESC){this.cancelEdit();e.stopEvent();}else{if(k==e.ENTER&&!e.hasModifier()){this.completeEdit();e.stopEvent();}}}}); - -Ext.menu.Menu=function(_1){Ext.apply(this,_1);this.id=this.id||Ext.id();this.addEvents({beforeshow:true,beforehide:true,show:true,hide:true,click:true,mouseover:true,mouseout:true,itemclick:true});Ext.menu.MenuMgr.register(this);var _2=this.items;this.items=new Ext.util.MixedCollection();if(_2){this.add.apply(this,_2);}};Ext.extend(Ext.menu.Menu,Ext.util.Observable,{minWidth:120,shadow:"sides",subMenuAlign:"tl-tr?",defaultAlign:"tl-bl?",allowOtherMenus:false,render:function(){if(this.el){return;}var el=this.el=new Ext.Layer({cls:"x-menu",shadow:this.shadow,constrain:false,parentEl:this.parentEl||document.body,zindex:15000});this.keyNav=new Ext.menu.MenuNav(this);if(this.plain){el.addClass("x-menu-plain");}if(this.cls){el.addClass(this.cls);}this.focusEl=el.createChild({tag:"a",cls:"x-menu-focus",href:"#",onclick:"return false;",tabIndex:"-1"});var ul=el.createChild({tag:"ul",cls:"x-menu-list"});ul.on("click",this.onClick,this);ul.on("mouseover",this.onMouseOver,this);ul.on("mouseout",this.onMouseOut,this);this.items.each(function(_5){var li=document.createElement("li");li.className="x-menu-list-item";ul.dom.appendChild(li);_5.render(li,this);},this);this.ul=ul;this.autoWidth();},autoWidth:function(){var el=this.el,ul=this.ul;if(!el){return;}var w=this.width;if(w){el.setWidth(w);}else{if(Ext.isIE){el.setWidth(this.minWidth);var t=el.dom.offsetWidth;el.setWidth(ul.getWidth()+el.getFrameWidth("lr"));}}},delayAutoWidth:function(){if(this.rendered){if(!this.awTask){this.awTask=new Ext.util.DelayedTask(this.autoWidth,this);}this.awTask.delay(20);}},findTargetItem:function(e){var t=e.getTarget(".x-menu-list-item",this.ul,true);if(t&&t.menuItemId){return this.items.get(t.menuItemId);}},onClick:function(e){var t;if(t=this.findTargetItem(e)){t.onClick(e);this.fireEvent("click",this,t,e);}},setActiveItem:function(_f,_10){if(_f!=this.activeItem){if(this.activeItem){this.activeItem.deactivate();}this.activeItem=_f;_f.activate(_10);}else{if(_10){_f.expandMenu();}}},tryActivate:function(_11,_12){var _13=this.items;for(var i=_11,len=_13.length;i>=0&&i0){hideAll();}});}function hideAll(){if(_2.length>0){var c=_2.clone();c.each(function(m){m.hide();});}}function onHide(m){_2.remove(m);if(_2.length<1){Ext.get(document).un("mousedown",onMouseDown);_4=false;}}function onShow(m){var _a=_2.last();_5=new Date();_2.add(m);if(!_4){Ext.get(document).on("mousedown",onMouseDown);_4=true;}if(m.parentMenu){m.getEl().setZIndex(parseInt(m.parentMenu.getEl().getStyle("z-index"),10)+3);m.parentMenu.activeChild=m;}else{if(_a&&_a.isVisible()){m.getEl().setZIndex(parseInt(_a.getEl().getStyle("z-index"),10)+3);}}}function onBeforeHide(m){if(m.activeChild){m.activeChild.hide();}if(m.autoHideTimer){clearTimeout(m.autoHideTimer);delete m.autoHideTimer;}}function onBeforeShow(m){var pm=m.parentMenu;if(!pm&&!m.allowOtherMenus){hideAll();}else{if(pm&&pm.activeChild){pm.activeChild.hide();}}}function onMouseDown(e){if(_5.getElapsed()>50&&_2.length>0&&!e.getTarget(".x-menu")){hideAll();}}function onBeforeCheck(mi,_10){if(_10){var g=_3[mi.group];for(var i=0,l=g.length;i{1}",this.icon||Ext.BLANK_IMAGE_URL,this.text);this.el=el;Ext.menu.Item.superclass.onRender.call(this,_2,_3);},setText:function(_5){this.text=_5;if(this.rendered){this.el.update(String.format("{1}",this.icon||Ext.BLANK_IMAGE_URL,this.text));this.parentMenu.autoWidth();}},handleClick:function(e){if(!this.href){e.stopEvent();}Ext.menu.Item.superclass.handleClick.apply(this,arguments);},activate:function(_7){if(Ext.menu.Item.superclass.activate.apply(this,arguments)){this.focus();if(_7){this.expandMenu();}}return true;},shouldDeactivate:function(e){if(Ext.menu.Item.superclass.shouldDeactivate.call(this,e)){if(this.menu&&this.menu.isVisible()){return !this.menu.getEl().getRegion().contains(e.getPoint());}return true;}return false;},deactivate:function(){Ext.menu.Item.superclass.deactivate.apply(this,arguments);this.hideMenu();},expandMenu:function(_9){if(!this.disabled&&this.menu){if(!this.menu.isVisible()){this.menu.show(this.container,this.parentMenu.subMenuAlign||"tl-tr?",this.parentMenu);}if(_9){this.menu.tryActivate(0,1);}}},hideMenu:function(){if(this.menu&&this.menu.isVisible()){this.menu.hide();}}}); - -Ext.menu.CheckItem=function(_1){Ext.menu.CheckItem.superclass.constructor.call(this,_1);this.addEvents({"beforecheckchange":true,"checkchange":true});if(this.checkHandler){this.on("checkchange",this.checkHandler,this.scope);}};Ext.extend(Ext.menu.CheckItem,Ext.menu.Item,{itemCls:"x-menu-item x-menu-check-item",groupClass:"x-menu-group-item",checked:false,ctype:"Ext.menu.CheckItem",onRender:function(c){Ext.menu.CheckItem.superclass.onRender.apply(this,arguments);if(this.group){this.el.addClass(this.groupClass);}Ext.menu.MenuMgr.registerCheckable(this);if(this.checked){this.checked=false;this.setChecked(true,true);}},destroy:function(){if(this.rendered){Ext.menu.MenuMgr.unregisterCheckable(this);}Ext.menu.CheckItem.superclass.destroy.apply(this,arguments);},setChecked:function(_3,_4){if(this.checked!=_3&&this.fireEvent("beforecheckchange",this,_3)!==false){if(this.container){this.container[_3?"addClass":"removeClass"]("x-menu-item-checked");}this.checked=_3;if(_4!==true){this.fireEvent("checkchange",this,_3);}}},handleClick:function(e){if(!this.disabled&&!(this.checked&&this.group)){this.setChecked(!this.checked);}Ext.menu.CheckItem.superclass.handleClick.apply(this,arguments);}}); - -Ext.menu.Adapter=function(_1,_2){Ext.menu.Adapter.superclass.constructor.call(this,_2);this.component=_1;};Ext.extend(Ext.menu.Adapter,Ext.menu.BaseItem,{canActivate:true,onRender:function(_3,_4){this.component.render(_3);this.el=this.component.getEl();},activate:function(){if(this.disabled){return false;}this.component.focus();this.fireEvent("activate",this);return true;},deactivate:function(){this.fireEvent("deactivate",this);},disable:function(){this.component.disable();Ext.menu.Adapter.superclass.disable.call(this);},enable:function(){this.component.enable();Ext.menu.Adapter.superclass.enable.call(this);}}); - -Ext.menu.DateItem=function(_1){Ext.menu.DateItem.superclass.constructor.call(this,new Ext.DatePicker(_1),_1);this.picker=this.component;this.addEvents({select:true});this.picker.on("render",function(_2){_2.getEl().swallowEvent("click");_2.container.addClass("x-menu-date-item");});this.picker.on("select",this.onSelect,this);};Ext.extend(Ext.menu.DateItem,Ext.menu.Adapter,{onSelect:function(_3,_4){this.fireEvent("select",this,_4,_3);Ext.menu.DateItem.superclass.handleClick.call(this);}}); - -Ext.menu.ColorItem=function(_1){Ext.menu.ColorItem.superclass.constructor.call(this,new Ext.ColorPalette(_1),_1);this.palette=this.component;this.relayEvents(this.palette,["select"]);if(this.selectHandler){this.on("select",this.selectHandler,this.scope);}};Ext.extend(Ext.menu.ColorItem,Ext.menu.Adapter); - -Ext.menu.DateMenu=function(_1){Ext.menu.DateMenu.superclass.constructor.call(this,_1);this.plain=true;var di=new Ext.menu.DateItem(_1);this.add(di);this.picker=di.picker;this.relayEvents(di,["select"]);};Ext.extend(Ext.menu.DateMenu,Ext.menu.Menu); - -Ext.menu.ColorMenu=function(_1){Ext.menu.ColorMenu.superclass.constructor.call(this,_1);this.plain=true;var ci=new Ext.menu.ColorItem(_1);this.add(ci);this.palette=ci.palette;this.relayEvents(ci,["select"]);};Ext.extend(Ext.menu.ColorMenu,Ext.menu.Menu); - -Ext.form.Field=function(_1){Ext.form.Field.superclass.constructor.call(this,_1);this.addEvents({focus:true,blur:true,specialkey:true,change:true,invalid:true,valid:true});};Ext.extend(Ext.form.Field,Ext.Component,{invalidClass:"x-form-invalid",invalidText:"The value in this field is invalid",focusClass:"x-form-focus",validationEvent:"keyup",validateOnBlur:true,validationDelay:250,defaultAutoCreate:{tag:"input",type:"text",size:"20",autocomplete:"off"},fieldClass:"x-form-field",msgTarget:"qtip",msgFx:"normal",inputType:undefined,isFormField:true,hasFocus:false,value:undefined,getName:function(){return this.rendered&&this.el.dom.name?this.el.dom.name:(this.hiddenName||"");},applyTo:function(_2){this.target=_2;this.el=Ext.get(_2);this.render(this.el.dom.parentNode);return this;},onRender:function(ct,_4){if(this.el){this.el=Ext.get(this.el);if(!this.target){ct.dom.appendChild(this.el.dom);}}else{var _5=this.getAutoCreate();if(!_5.name){_5.name=this.name||this.id;}if(this.inputType){_5.type=this.inputType;}if(this.tabIndex!==undefined){_5.tabIndex=this.tabIndex;}this.el=ct.createChild(_5,_4);}var _6=this.el.dom.type;if(_6){if(_6=="password"){_6="text";}this.el.addClass("x-form-"+_6);}if(!this.customSize&&(this.width||this.height)){this.setSize(this.width||"",this.height||"");}if(this.readOnly){this.el.dom.readOnly=true;}this.el.addClass([this.fieldClass,this.cls]);this.initValue();},initValue:function(){if(this.value!==undefined){this.setValue(this.value);}else{if(this.el.dom.value.length>0){this.setValue(this.el.dom.value);}}},afterRender:function(){Ext.form.Field.superclass.afterRender.call(this);this.initEvents();},fireKey:function(e){if(e.isNavKeyPress()){this.fireEvent("specialkey",this,e);}},reset:function(){this.setValue(this.originalValue);this.clearInvalid();},initEvents:function(){this.el.on(Ext.isIE?"keydown":"keypress",this.fireKey,this);this.el.on("focus",this.onFocus,this);this.el.on("blur",this.onBlur,this);this.originalValue=this.getValue();},onFocus:function(){if(!Ext.isOpera){this.el.addClass(this.focusClass);}this.hasFocus=true;this.startValue=this.getValue();this.fireEvent("focus",this);},onBlur:function(){this.el.removeClass(this.focusClass);this.hasFocus=false;if(this.validationEvent!==false&&this.validateOnBlur&&this.validationEvent!="blur"){this.validate();}var v=this.getValue();if(v!=this.startValue){this.fireEvent("change",this,v,this.startValue);}this.fireEvent("blur",this);},setSize:function(w,h){if(!this.rendered||!this.el){this.width=w;this.height=h;return;}if(w){w=this.adjustWidth(this.el.dom.tagName,w);this.el.setWidth(w);}if(h){this.el.setHeight(h);}var h=this.el.dom.offsetHeight;},isValid:function(_b){if(this.disabled){return true;}var _c=this.preventMark;this.preventMark=_b===true;var v=this.validateValue(this.getRawValue());this.preventMark=_c;return v;},validate:function(){if(this.disabled||this.validateValue(this.getRawValue())){this.clearInvalid();return true;}return false;},validateValue:function(_e){return true;},markInvalid:function(_f){if(!this.rendered||this.preventMark){return;}this.el.addClass(this.invalidClass);_f=_f||this.invalidText;switch(this.msgTarget){case "qtip":this.el.dom.qtip=_f;this.el.dom.qclass="x-form-invalid-tip";break;case "title":this.el.dom.title=_f;break;case "under":if(!this.errorEl){var elp=this.el.findParent(".x-form-element",5,true);this.errorEl=elp.createChild({cls:"x-form-invalid-msg"});this.errorEl.setWidth(elp.getWidth(true)-20);}this.errorEl.update(_f);Ext.form.Field.msgFx[this.msgFx].show(this.errorEl,this);break;case "side":if(!this.errorIcon){var elp=this.el.findParent(".x-form-element",5,true);this.errorIcon=elp.createChild({cls:"x-form-invalid-icon"});}this.alignErrorIcon();this.errorIcon.dom.qtip=_f;this.errorIcon.dom.qclass="x-form-invalid-tip";this.errorIcon.show();break;default:var t=Ext.getDom(this.msgTarget);t.innerHTML=_f;t.style.display=this.msgDisplay;break;}this.fireEvent("invalid",this,_f);},alignErrorIcon:function(){this.errorIcon.alignTo(this.el,"tl-tr",[2,0]);},clearInvalid:function(){if(!this.rendered||this.preventMark){return;}this.el.removeClass(this.invalidClass);switch(this.msgTarget){case "qtip":this.el.dom.qtip="";break;case "title":this.el.dom.title="";break;case "under":if(this.errorEl){Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl,this);}break;case "side":if(this.errorIcon){this.errorIcon.dom.qtip="";this.errorIcon.hide();}break;default:var t=Ext.getDom(this.msgTarget);t.innerHTML="";t.style.display="none";break;}this.fireEvent("valid",this);},getRawValue:function(){return this.el.getValue();},getValue:function(){var v=this.el.getValue();if(v==this.emptyText||v===undefined){v="";}return v;},setRawValue:function(v){return this.el.dom.value=v;},setValue:function(v){this.value=v;if(this.rendered){this.el.dom.value=v;this.validate();}},adjustWidth:function(tag,w){tag=tag.toLowerCase();if(typeof w=="number"&&Ext.isStrict&&!Ext.isSafari){if(Ext.isIE&&(tag=="input"||tag=="textarea")){if(tag=="input"){return w+2;}if(tag="textarea"){return w-2;}}else{if(Ext.isGecko&&tag=="textarea"){return w-6;}else{if(Ext.isOpera){if(tag=="input"){return w+2;}if(tag="textarea"){return w-2;}}}}}return w;}});Ext.form.Field.msgFx={normal:{show:function(_18,f){_18.setDisplayed("block");},hide:function(_1a,f){_1a.setDisplayed(false).update("");}},slide:{show:function(_1c,f){_1c.slideIn("t",{stopFx:true});},hide:function(_1e,f){_1e.slideOut("t",{stopFx:true,useDisplay:true});}},slideRight:{show:function(_20,f){_20.fixDisplay();_20.alignTo(f.el,"tl-tr");_20.slideIn("l",{stopFx:true});},hide:function(_22,f){_22.slideOut("l",{stopFx:true,useDisplay:true});}}}; - -Ext.form.TextField=function(_1){Ext.form.TextField.superclass.constructor.call(this,_1);this.addEvents({autosize:true});};Ext.extend(Ext.form.TextField,Ext.form.Field,{grow:false,growMin:30,growMax:800,vtype:null,maskRe:null,disableKeyFilter:false,allowBlank:true,minLength:0,maxLength:Number.MAX_VALUE,minLengthText:"The minimum length for this field is {0}",maxLengthText:"The maximum length for this field is {0}",selectOnFocus:false,blankText:"This field is required",validator:null,regex:null,regexText:"",emptyText:null,emptyClass:"x-form-empty-field",initEvents:function(){Ext.form.TextField.superclass.initEvents.call(this);if(this.validationEvent=="keyup"){this.validationTask=new Ext.util.DelayedTask(this.validate,this);this.el.on("keyup",this.filterValidation,this);}else{if(this.validationEvent!==false){this.el.on(this.validationEvent,this.validate,this,{buffer:this.validationDelay});}}if(this.selectOnFocus||this.emptyText){this.on("focus",this.preFocus,this);if(this.emptyText){this.on("blur",this.postBlur,this);this.applyEmptyText();}}if(this.maskRe||(this.vtype&&this.disableKeyFilter!==true&&(this.maskRe=Ext.form.VTypes[this.vtype+"Mask"]))){this.el.on("keypress",this.filterKeys,this);}if(this.grow){this.el.on("keyup",this.onKeyUp,this,{buffer:50});this.el.on("click",this.autoSize,this);}},filterValidation:function(e){if(!e.isNavKeyPress()){this.validationTask.delay(this.validationDelay);}},onKeyUp:function(e){if(!e.isNavKeyPress()){this.autoSize();}},reset:function(){Ext.form.TextField.superclass.reset.call(this);this.applyEmptyText();},applyEmptyText:function(){if(this.rendered&&this.emptyText&&this.getRawValue().length<1){this.setRawValue(this.emptyText);this.el.addClass(this.emptyClass);}},preFocus:function(){if(this.emptyText){if(this.getRawValue()==this.emptyText){this.setRawValue("");}this.el.removeClass(this.emptyClass);}if(this.selectOnFocus){this.el.dom.select();}},postBlur:function(){this.applyEmptyText();},filterKeys:function(e){var k=e.getKey();if(!Ext.isIE&&(e.isNavKeyPress()||k==e.BACKSPACE||(k==e.DELETE&&e.button==-1))){return;}var c=e.getCharCode();if(!this.maskRe.test(String.fromCharCode(c)||"")){e.stopEvent();}},setValue:function(v){if(this.emptyText&&v!==undefined&&v!==null&&v!==""){this.el.removeClass(this.emptyClass);}Ext.form.TextField.superclass.setValue.apply(this,arguments);},validateValue:function(_8){if(_8.length<1||_8===this.emptyText){if(this.allowBlank){this.clearInvalid();return true;}else{this.markInvalid(this.blankText);return false;}}if(_8.lengththis.maxLength){this.markInvalid(String.format(this.maxLengthText,this.maxLength));return false;}if(this.vtype){var vt=Ext.form.VTypes;if(!vt[this.vtype](_8)){this.markInvalid(this.vtypeText||vt[this.vtype+"Text"]);return false;}}if(typeof this.validator=="function"){var _a=this.validator(_8);if(_a!==true){this.markInvalid(_a);return false;}}if(this.regex&&!this.regex.test(_8)){this.markInvalid(this.regexText);return false;}return true;},selectText:function(_b,_c){var v=this.getRawValue();if(v.length>0){_b=_b===undefined?0:_b;_c=_c===undefined?v.length:_c;var d=this.el.dom;if(d.setSelectionRange){d.setSelectionRange(_b,_c);}else{if(d.createTextRange){var _f=d.createTextRange();_f.moveStart("character",_b);_f.moveEnd("character",v.length-_c);_f.select();}}}},autoSize:function(){if(!this.grow||!this.rendered){return;}if(!this.metrics){this.metrics=Ext.util.TextMetrics.createInstance(this.el);}var el=this.el;var v=el.dom.value+" ";var w=Math.min(this.growMax,Math.max(this.metrics.getWidth(v)+10,this.growMin));this.el.setWidth(w);this.fireEvent("autosize",this,w);}}); - -Ext.form.TriggerField=function(_1){Ext.form.TriggerField.superclass.constructor.call(this,_1);this.mimicing=false;this.on("disable",this.disableWrapper,this);this.on("enable",this.enableWrapper,this);};Ext.extend(Ext.form.TriggerField,Ext.form.TextField,{defaultAutoCreate:{tag:"input",type:"text",size:"16",autocomplete:"off"},hideTrigger:false,autoSize:Ext.emptyFn,monitorTab:true,customSize:true,setSize:function(w,h){if(!this.wrap){this.width=w;this.height=h;return;}if(w){var _4=w;w=w-this.trigger.getWidth();Ext.form.TriggerField.superclass.setSize.call(this,w,h);this.wrap.setWidth(_4);if(this.onResize){this.onResize(_4,h);}}else{Ext.form.TriggerField.superclass.setSize.call(this,w,h);this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth());}},alignErrorIcon:function(){this.errorIcon.alignTo(this.wrap,"tl-tr",[2,0]);},onRender:function(ct,_6){Ext.form.TriggerField.superclass.onRender.call(this,ct,_6);this.wrap=this.el.wrap({cls:"x-form-field-wrap"});this.trigger=this.wrap.createChild({tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.triggerClass});this.trigger.on("click",this.onTriggerClick,this,{preventDefault:true});this.trigger.addClassOnOver("x-form-trigger-over");this.trigger.addClassOnClick("x-form-trigger-click");if(this.hideTrigger){this.trigger.setDisplayed(false);}this.setSize(this.width||"",this.height||"");},onDestroy:function(){if(this.trigger){this.trigger.removeAllListeners();this.trigger.remove();}if(this.wrap){this.wrap.remove();}Ext.form.TriggerField.superclass.onDestroy.call(this);},onFocus:function(){Ext.form.TriggerField.superclass.onFocus.call(this);if(!this.mimicing){this.mimicing=true;Ext.get(Ext.isIE?document.body:document).on("mousedown",this.mimicBlur,this);if(this.monitorTab){this.el.on("keydown",this.checkTab,this);}}},checkTab:function(e){if(e.getKey()==e.TAB){this.triggerBlur();}},onBlur:function(){},mimicBlur:function(e,t){if(!this.wrap.contains(t)&&this.validateBlur()){this.triggerBlur();}},triggerBlur:function(){this.mimicing=false;Ext.get(Ext.isIE?document.body:document).un("mousedown",this.mimicBlur);if(this.monitorTab){this.el.un("keydown",this.checkTab,this);}Ext.form.TriggerField.superclass.onBlur.call(this);},validateBlur:function(e,t){return true;},disableWrapper:function(){if(this.wrap){this.wrap.addClass("x-item-disabled");}},enableWrapper:function(){if(this.wrap){this.wrap.removeClass("x-item-disabled");}},onShow:function(){if(this.wrap){this.wrap.dom.style.display="";this.wrap.dom.style.visibility="visible";}},onHide:function(){this.wrap.dom.style.display="none";},onTriggerClick:Ext.emptyFn}); - -Ext.form.TextArea=function(_1){Ext.form.TextArea.superclass.constructor.call(this,_1);if(this.minHeight!==undefined){this.growMin=this.minHeight;}if(this.maxHeight!==undefined){this.growMax=this.maxHeight;}};Ext.extend(Ext.form.TextArea,Ext.form.TextField,{growMin:60,growMax:1000,preventScrollbars:false,onRender:function(ct,_3){if(!this.el){this.defaultAutoCreate={tag:"textarea",style:"width:300px;height:60px;",autocomplete:"off"};}Ext.form.TextArea.superclass.onRender.call(this,ct,_3);if(this.grow){this.textSizeEl=Ext.DomHelper.append(document.body,{tag:"pre",cls:"x-form-grow-sizer"});if(this.preventScrollbars){this.el.setStyle("overflow","hidden");}this.el.setHeight(this.growMin);}},onKeyUp:function(e){if(!e.isNavKeyPress()||e.getKey()==e.ENTER){this.autoSize();}},autoSize:function(){if(!this.grow||!this.textSizeEl){return;}var el=this.el;var v=el.dom.value;var ts=this.textSizeEl;Ext.fly(ts).setWidth(this.el.getWidth());if(v.length<1){v="  ";}else{v+=" \n ";}if(Ext.isIE){v=v.replace(/\n/g,"
      ");}ts.innerHTML=v;var h=Math.min(this.growMax,Math.max(ts.offsetHeight,this.growMin));if(h!=this.lastHeight){this.lastHeight=h;this.el.setHeight(h);this.fireEvent("autosize",this,h);}},setValue:function(v){Ext.form.TextArea.superclass.setValue.call(this,v);this.autoSize();}}); - -Ext.form.NumberField=function(_1){Ext.form.NumberField.superclass.constructor.call(this,_1);};Ext.extend(Ext.form.NumberField,Ext.form.TextField,{fieldClass:"x-form-field x-form-num-field",allowDecimals:true,decimalSeparator:".",decimalPrecision:2,allowNegative:true,minValue:Number.NEGATIVE_INFINITY,maxValue:Number.MAX_VALUE,minText:"The minimum value for this field is {0}",maxText:"The maximum value for this field is {0}",nanText:"{0} is not a valid number",initEvents:function(){Ext.form.NumberField.superclass.initEvents.call(this);var _2="0123456789";if(this.allowDecimals){_2+=this.decimalSeparator;}if(this.allowNegative){_2+="-";}var _3=function(e){var k=e.getKey();if(!Ext.isIE&&(e.isNavKeyPress()||k==e.BACKSPACE||(k==e.DELETE&&e.button==-1))){return;}var c=e.getCharCode();if(_2.indexOf(String.fromCharCode(c))===-1){e.stopEvent();}};this.el.on("keypress",_3,this);},validateValue:function(_7){if(!Ext.form.NumberField.superclass.validateValue.call(this,_7)){return false;}if(_7.length<1){return true;}_7=String(_7).replace(this.decimalSeparator,".");if(isNaN(_7)){this.markInvalid(String.format(this.nanText,_7));return false;}var _8=this.parseValue(_7);if(_8this.maxValue){this.markInvalid(String.format(this.maxText,this.maxValue));return false;}return true;},parseValue:function(_9){return parseFloat(String(_9).replace(this.decimalSeparator,"."));},fixPrecision:function(_a){if(!this.allowDecimals||this.decimalPrecision==-1||isNaN(_a)||_a==0||!_a){return _a;}var _b=Math.pow(10,this.decimalPrecision+1);var _c=this.decimalPrecisionFcn(_a*_b);_c=this.decimalPrecisionFcn(_c/10);return _c/(_b/10);},decimalPrecisionFcn:function(v){return Math.floor(v);}}); - -Ext.form.DateField=function(_1){Ext.form.DateField.superclass.constructor.call(this,_1);if(typeof this.minValue=="string"){this.minValue=this.parseDate(this.minValue);}if(typeof this.maxValue=="string"){this.maxValue=this.parseDate(this.maxValue);}this.ddMatch=null;if(this.disabledDates){var dd=this.disabledDates;var re="(?:";for(var i=0;ithis.maxValue.getTime()){this.markInvalid(String.format(this.maxText,this.formatDate(this.maxValue)));return false;}if(this.disabledDays){var _8=_5.getDay();for(var i=0;i{"+this.displayField+"}";}this.view=new Ext.View(this.innerList,this.tpl,{singleSelect:true,store:this.store,selectedClass:this.selectedClass});this.view.on("click",this.onViewClick,this);this.store.on("beforeload",this.onBeforeLoad,this);this.store.on("load",this.onLoad,this);this.store.on("loadexception",this.collapse,this);if(this.resizable){this.resizer=new Ext.Resizable(this.list,{pinned:true,handles:"se"});this.resizer.on("resize",function(r,w,h){this.maxHeight=h-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight;this.listWidth=w;this.restrictHeight();},this);this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px");}if(!this.editable){this.editable=true;this.setEditable(false);}},initEvents:function(){Ext.form.ComboBox.superclass.initEvents.call(this);this.keyNav=new Ext.KeyNav(this.el,{"up":function(e){this.inKeyMode=true;this.selectPrev();},"down":function(e){if(!this.isExpanded()){this.onTriggerClick();}else{this.inKeyMode=true;this.selectNext();}},"enter":function(e){this.onViewClick();},"esc":function(e){this.collapse();},"tab":function(e){this.onViewClick(false);return true;},scope:this,doRelay:function(foo,bar,_16){if(_16=="down"||this.scope.isExpanded()){return Ext.KeyNav.prototype.doRelay.apply(this,arguments);}return true;}});this.queryDelay=Math.max(this.queryDelay||10,this.mode=="local"?10:250);this.dqTask=new Ext.util.DelayedTask(this.initQuery,this);if(this.typeAhead){this.taTask=new Ext.util.DelayedTask(this.onTypeAhead,this);}if(this.editable!==false){this.el.on("keyup",this.onKeyUp,this);}if(this.forceSelection){this.on("blur",this.doForce,this);}},onDestroy:function(){if(this.view){this.view.setStore(null);this.view.el.removeAllListeners();this.view.el.remove();this.view.purgeListeners();}if(this.list){this.list.destroy();}if(this.store){this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("loadexception",this.collapse,this);}Ext.form.ComboBox.superclass.onDestroy.call(this);},fireKey:function(e){if(e.isNavKeyPress()&&!this.list.isVisible()){this.fireEvent("specialkey",this,e);}},onResize:function(w,h){if(this.list&&this.listWidth===undefined){this.list.setWidth(Math.max(w,this.minListWidth));}},setEditable:function(_1a){if(_1a==this.editable){return;}this.editable=_1a;if(!_1a){this.el.dom.setAttribute("readOnly",true);this.el.on("mousedown",this.onTriggerClick,this);this.el.addClass("x-combo-noedit");}else{this.el.dom.setAttribute("readOnly",false);this.el.un("mousedown",this.onTriggerClick,this);this.el.removeClass("x-combo-noedit");}},onBeforeLoad:function(){if(!this.hasFocus){return;}this.innerList.update(this.loadingText?"
      "+this.loadingText+"
      ":"");this.restrictHeight();this.selectedIndex=-1;},onLoad:function(){if(!this.hasFocus){return;}if(this.store.getCount()>0){this.expand();this.restrictHeight();if(this.lastQuery==this.allQuery){if(this.editable){this.el.dom.select();}if(!this.selectByValue(this.value,true)){this.select(0,true);}}else{this.selectNext();if(this.typeAhead&&this.lastKey!=Ext.EventObject.BACKSPACE&&this.lastKey!=Ext.EventObject.DELETE){this.taTask.delay(this.typeAheadDelay);}}}else{this.onEmptyResults();}},onTypeAhead:function(){if(this.store.getCount()>0){var r=this.store.getAt(0);var _1c=r.data[this.displayField];var len=_1c.length;var _1e=this.getRawValue().length;if(_1e!=len){this.setRawValue(_1c);this.selectText(_1e,_1c.length);}}},onSelect:function(_1f,_20){if(this.fireEvent("beforeselect",this,_1f,_20)!==false){this.setValue(_1f.data[this.valueField||this.displayField]);this.collapse();this.fireEvent("select",this,_1f,_20);}},getValue:function(){if(this.valueField){return typeof this.value!="undefined"?this.value:"";}else{return Ext.form.ComboBox.superclass.getValue.call(this);}},clearValue:function(){if(this.hiddenField){this.hiddenField.value="";}this.setRawValue("");this.lastSelectionText="";},setValue:function(v){var _22=v;if(this.valueField){var r=this.findRecord(this.valueField,v);if(r){_22=r.data[this.displayField];}else{if(this.valueNotFoundText){_22=this.valueNotFoundText;}}}this.lastSelectionText=_22;if(this.hiddenField){this.hiddenField.value=v;}Ext.form.ComboBox.superclass.setValue.call(this,_22);this.value=v;},findRecord:function(_24,_25){var _26;if(this.store.getCount()>0){this.store.each(function(r){if(r.data[_24]==_25){_26=r;return false;}});}return _26;},onViewMove:function(e,t){this.inKeyMode=false;},onViewOver:function(e,t){if(this.inKeyMode){return;}var _2c=this.view.findItemFromChild(t);if(_2c){var _2d=this.view.indexOf(_2c);this.select(_2d,false);}},onViewClick:function(_2e){var _2f=this.view.getSelectedIndexes()[0];var r=this.store.getAt(_2f);if(r){this.onSelect(r,_2f);}if(_2e!==false){this.el.focus();}},restrictHeight:function(){this.innerList.dom.style.height="";var _31=this.innerList.dom;var h=Math.max(_31.clientHeight,_31.offsetHeight,_31.scrollHeight);this.innerList.setHeight(h0){if(this.selectedIndex==-1){this.select(0);}else{if(this.selectedIndex0){if(this.selectedIndex==-1){this.select(0);}else{if(this.selectedIndex!=0){this.select(this.selectedIndex-1);}}}},onKeyUp:function(e){if(this.editable!==false&&!e.isSpecialKey()){this.lastKey=e.getKey();this.dqTask.delay(this.queryDelay);}},validateBlur:function(){return !this.list||!this.list.isVisible();},initQuery:function(){this.doQuery(this.getRawValue());},doForce:function(){if(this.el.dom.value.length>0){this.el.dom.value=this.lastSelectionText===undefined?"":this.lastSelectionText;this.applyEmptyText();}},doQuery:function(q,_3d){if(q===undefined||q===null){q="";}var qe={query:q,forceAll:_3d,combo:this,cancel:false};if(this.fireEvent("beforequery",qe)===false||qe.cancel){return false;}q=qe.query;_3d=qe.forceAll;if(_3d===true||(q.length>=this.minChars)){if(this.lastQuery!=q){this.lastQuery=q;if(this.mode=="local"){this.selectedIndex=-1;if(_3d){this.store.clearFilter();}else{this.store.filter(this.displayField,q);}this.onLoad();}else{this.store.baseParams[this.queryParam]=q;this.store.load({params:this.getParams(q)});this.expand();}}else{this.selectedIndex=-1;this.onLoad();}}},getParams:function(q){var p={};if(this.pageSize){p.start=0;p.limit=this.pageSize;}return p;},collapse:function(){if(!this.isExpanded()){return;}this.list.hide();Ext.get(document).un("mousedown",this.collapseIf,this);this.fireEvent("collapse",this);},collapseIf:function(e){if(!e.within(this.wrap)&&!e.within(this.list)){this.collapse();}},expand:function(){if(this.isExpanded()||!this.hasFocus){return;}this.list.alignTo(this.el,this.listAlign);this.list.show();Ext.get(document).on("mousedown",this.collapseIf,this);this.fireEvent("expand",this);},onTriggerClick:function(){if(this.disabled){return;}if(this.isExpanded()){this.collapse();this.el.focus();}else{this.hasFocus=true;this.doQuery(this.triggerAction=="all"?this.doQuery(this.allQuery,true):this.doQuery(this.getRawValue()));this.el.focus();}}}); - -Ext.form.Checkbox=function(_1){Ext.form.Checkbox.superclass.constructor.call(this,_1);this.addEvents({check:true});};Ext.extend(Ext.form.Checkbox,Ext.form.Field,{focusClass:"x-form-check-focus",fieldClass:"x-form-field",checked:false,defaultAutoCreate:{tag:"input",type:"checkbox",autocomplete:"off"},boxLabel:undefined,setSize:function(w,h){if(!this.wrap){this.width=w;this.height=h;return;}this.wrap.setSize(w,h);if(!this.boxLabel){this.el.alignTo(this.wrap,"c-c");}},initEvents:function(){Ext.form.Checkbox.superclass.initEvents.call(this);this.el.on("click",this.onClick,this);this.el.on("change",this.onClick,this);},onRender:function(ct,_5){Ext.form.Checkbox.superclass.onRender.call(this,ct,_5);if(this.inputValue!==undefined){this.el.dom.value=this.inputValue;}this.wrap=this.el.wrap({cls:"x-form-check-wrap"});if(this.boxLabel){this.wrap.createChild({tag:"label",htmlFor:this.el.id,cls:"x-form-cb-label",html:this.boxLabel});}if(this.checked){this.setValue(true);}},initValue:Ext.emptyFn,getValue:function(){if(this.rendered){return this.el.dom.checked;}return false;},onClick:function(){if(this.el.dom.checked!=this.checked){this.setValue(this.el.dom.checked);}},setValue:function(v){this.checked=(v===true||v==="true"||v=="1");if(this.el&&this.el.dom){this.el.dom.checked=this.checked;}this.fireEvent("check",this,this.checked);}}); - -Ext.form.Radio=function(){Ext.form.Radio.superclass.constructor.apply(this,arguments);};Ext.extend(Ext.form.Radio,Ext.form.Checkbox,{inputType:"radio"}); - -Ext.form.BasicForm=function(el,_2){Ext.apply(this,_2);this.items=new Ext.util.MixedCollection(false,function(o){return o.id||(o.id=Ext.id());});this.addEvents({beforeaction:true,actionfailed:true,actioncomplete:true});if(el){this.initEl(el);}Ext.form.BasicForm.superclass.constructor.call(this);};Ext.extend(Ext.form.BasicForm,Ext.util.Observable,{timeout:30,activeAction:null,waitMsgTarget:undefined,initEl:function(el){this.el=Ext.get(el);this.id=this.el.id||Ext.id();this.el.on("submit",this.onSubmit,this);this.el.addClass("x-form");},onSubmit:function(e){e.stopEvent();},isValid:function(){var _6=true;this.items.each(function(f){if(!f.validate()){_6=false;}});return _6;},doAction:function(_8,_9){if(typeof _8=="string"){_8=new Ext.form.Action.ACTION_TYPES[_8](this,_9);}if(this.fireEvent("beforeaction",this,_8)!==false){this.beforeAction(_8);_8.run.defer(100,_8);}},submit:function(_a){this.doAction("submit",_a);},load:function(_b){this.doAction("load",_b);},updateRecord:function(_c){_c.beginEdit();var fs=_c.fields;fs.each(function(f){var _f=this.findField(f.name);if(_f){_c.set(f.name,_f.getValue());}},this);_c.endEdit();},beforeAction:function(_10){var o=_10.options;if(o.waitMsg){if(this.waitMsgTarget===true){this.el.mask(o.waitMsg,"x-mask-loading");}else{if(this.waitMsgTarget){this.waitMsgTarget=Ext.get(this.waitMsgTarget);this.waitMsgTarget.mask(o.waitMsg,"x-mask-loading");}else{Ext.MessageBox.wait(o.waitMsg,o.waitTitle||this.waitTitle||"Please Wait...");}}}},afterAction:function(_12,_13){this.activeAction=null;var o=_12.options;if(o.waitMsg){if(this.waitMsgTarget===true){this.el.unmask();}else{if(this.waitMsgTarget){this.waitMsgTarget.unmask();}else{Ext.MessageBox.updateProgress(1);Ext.MessageBox.hide();}}}if(_13){if(o.reset){this.reset();}Ext.callback(o.success,o.scope,[this,_12]);this.fireEvent("actioncomplete",this,_12);}else{Ext.callback(o.failure,o.scope,[this,_12]);this.fireEvent("actionfailed",this,_12);}},findField:function(id){var _16=this.items.get(id);if(!_16){this.items.each(function(f){if(f.isFormField&&(f.dataIndex==id||f.id==id||f.getName()==id)){_16=f;return false;}});}return _16||null;},markInvalid:function(_18){if(_18 instanceof Array){for(var i=0,len=_18.length;i1){this.add.apply(this,Array.prototype.slice.call(arguments,1));this.end();}return _3;},fieldset:function(c){var fs=new Ext.form.FieldSet(c);this.start(fs);if(arguments.length>1){this.add.apply(this,Array.prototype.slice.call(arguments,1));this.end();}return fs;},container:function(c){var l=new Ext.form.Layout(c);this.start(l);if(arguments.length>1){this.add.apply(this,Array.prototype.slice.call(arguments,1));this.end();}return l;},start:function(c){Ext.applyIf(c,{"labelAlign":this.active.labelAlign,"labelWidth":this.active.labelWidth,"itemCls":this.active.itemCls});this.active.stack.push(c);c.ownerCt=this.active;this.active=c;return this;},end:function(){if(this.active==this.root){return this;}this.active=this.active.ownerCt;return this;},add:function(){this.active.stack.push.apply(this.active.stack,arguments);var r=[];for(var i=0,a=arguments,_c=a.length;i<_c;i++){if(a[i].isFormField){r.push(a[i]);}}if(r.length>0){Ext.form.Form.superclass.add.apply(this,r);}return this;},render:function(ct){ct=Ext.get(ct);var o=this.autoCreate||{tag:"form",method:this.method||"POST",id:this.id||Ext.id()};this.initEl(ct.createChild(o));this.root.render(this.el);this.items.each(function(f){f.render("x-form-el-"+f.id);});if(this.buttons.length>0){var tb=this.el.createChild({cls:"x-form-btns-ct",cn:{cls:"x-form-btns x-form-btns-"+this.buttonAlign,html:"
      "}},null,true);var tr=tb.getElementsByTagName("tr")[0];for(var i=0,len=this.buttons.length;i0){if(!this.fieldTpl){var t=new Ext.Template("
      ","","
      ","
      ","
      ");t.disableFormats=true;t.compile();Ext.form.Layout.prototype.fieldTpl=t;}for(var i=0;i<_6;i++){if(_5[i].isFormField){this.renderField(_5[i]);}else{this.renderComponent(_5[i]);}}}if(this.clear){this.el.createChild({cls:"x-form-clear"});}},renderField:function(f){this.fieldTpl.append(this.el,[f.id,f.fieldLabel,f.labelStyle||this.labelStyle||"",this.elementStyle||"",typeof f.labelSeparator=="undefined"?this.labelSeparator:f.labelSeparator,f.itemCls||this.itemCls||""]);},renderComponent:function(c){c.render(this.el);}});Ext.form.Column=function(_b){Ext.form.Column.superclass.constructor.call(this,_b);};Ext.extend(Ext.form.Column,Ext.form.Layout,{defaultAutoCreate:{tag:"div",cls:"x-form-ct x-form-column"},onRender:function(ct,_d){Ext.form.Column.superclass.onRender.call(this,ct,_d);if(this.width){this.el.setWidth(this.width);}}});Ext.form.FieldSet=function(_e){Ext.form.FieldSet.superclass.constructor.call(this,_e);};Ext.extend(Ext.form.FieldSet,Ext.form.Layout,{defaultAutoCreate:{tag:"fieldset",cn:{tag:"legend"}},onRender:function(ct,_10){Ext.form.FieldSet.superclass.onRender.call(this,ct,_10);if(this.legend){this.setLegend(this.legend);}},setLegend:function(_11){if(this.rendered){this.el.child("legend").update(_11);}}}); - -Ext.form.VTypes=function(){var _1=/^[a-zA-Z_]+$/;var _2=/^[a-zA-Z0-9_]+$/;var _3=/^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/;var _4=/(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;return {"email":function(v){return _3.test(v);},"emailText":"This field should be an e-mail address in the format \"user@domain.com\"","emailMask":/[a-z0-9_\.\-@]/i,"url":function(v){return _4.test(v);},"urlText":"This field should be a URL in the format \"http:/"+"/www.domain.com\"","alpha":function(v){return _1.test(v);},"alphaText":"This field should only contain letters and _","alphaMask":/[a-z_]/i,"alphanum":function(v){return _2.test(v);},"alphanumText":"This field should only contain letters, numbers and _","alphanumMask":/[a-z0-9_]/i};}(); - -Ext.LayoutManager=function(_1,_2){Ext.LayoutManager.superclass.constructor.call(this);this.el=Ext.get(_1);if(this.el.dom==document.body&&Ext.isIE&&!_2.allowScroll){document.body.scroll="no";}else{if(this.el.dom!=document.body&&this.el.getStyle("position")=="static"){this.el.position("relative");}}this.id=this.el.id;this.el.addClass("x-layout-container");this.monitorWindowResize=true;this.regions={};this.addEvents({"layout":true,"regionresized":true,"regioncollapsed":true,"regionexpanded":true});this.updating=false;Ext.EventManager.onWindowResize(this.onWindowResize,this,true);};Ext.extend(Ext.LayoutManager,Ext.util.Observable,{isUpdating:function(){return this.updating;},beginUpdate:function(){this.updating=true;},endUpdate:function(_3){this.updating=false;if(!_3){this.layout();}},layout:function(){},onRegionResized:function(_4,_5){this.fireEvent("regionresized",_4,_5);this.layout();},onRegionCollapsed:function(_6){this.fireEvent("regioncollapsed",_6);},onRegionExpanded:function(_7){this.fireEvent("regionexpanded",_7);},getViewSize:function(){var _8;if(this.el.dom!=document.body){_8=this.el.getSize();}else{_8={width:Ext.lib.Dom.getViewWidth(),height:Ext.lib.Dom.getViewHeight()};}_8.width-=this.el.getBorderWidth("lr")-this.el.getPadding("lr");_8.height-=this.el.getBorderWidth("tb")-this.el.getPadding("tb");return _8;},getEl:function(){return this.el;},getRegion:function(_9){return this.regions[_9.toLowerCase()];},onWindowResize:function(){if(this.monitorWindowResize){this.layout();}}}); - -Ext.BorderLayout=function(_1,_2){_2=_2||{};Ext.BorderLayout.superclass.constructor.call(this,_1,_2);this.factory=_2.factory||Ext.BorderLayout.RegionFactory;for(var i=0,_4=this.factory.validRegions.length;i<_4;i++){var _5=this.factory.validRegions[i];if(_2[_5]){this.addRegion(_5,_2[_5]);}}};Ext.extend(Ext.BorderLayout,Ext.LayoutManager,{addRegion:function(_6,_7){if(!this.regions[_6]){var r=this.factory.create(_6,this,_7);this.bindRegion(_6,r);}return this.regions[_6];},bindRegion:function(_9,r){this.regions[_9]=r;r.on("visibilitychange",this.layout,this);r.on("paneladded",this.layout,this);r.on("panelremoved",this.layout,this);r.on("invalidated",this.layout,this);r.on("resized",this.onRegionResized,this);r.on("collapsed",this.onRegionCollapsed,this);r.on("expanded",this.onRegionExpanded,this);},layout:function(){if(this.updating){return;}var _b=this.getViewSize();var w=_b.width,h=_b.height;var _e=w,_f=h,_10=0,_11=0;var rs=this.regions;var n=rs["north"],s=rs["south"],_15=rs["west"],e=rs["east"],c=rs["center"];if(n&&n.isVisible()){var b=n.getBox();var m=n.getMargins();b.width=w-(m.left+m.right);b.x=m.left;b.y=m.top;_10=b.height+b.y+m.bottom;_f-=_10;n.updateBox(this.safeBox(b));}if(s&&s.isVisible()){var b=s.getBox();var m=s.getMargins();b.width=w-(m.left+m.right);b.x=m.left;var _1a=(b.height+m.top+m.bottom);b.y=h-_1a+m.top;_f-=_1a;s.updateBox(this.safeBox(b));}if(_15&&_15.isVisible()){var b=_15.getBox();var m=_15.getMargins();b.height=_f-(m.top+m.bottom);b.x=m.left;b.y=_10+m.top;var _1b=(b.width+m.left+m.right);_11+=_1b;_e-=_1b;_15.updateBox(this.safeBox(b));}if(e&&e.isVisible()){var b=e.getBox();var m=e.getMargins();b.height=_f-(m.top+m.bottom);var _1b=(b.width+m.left+m.right);b.x=w-_1b+m.left;b.y=_10+m.top;_e-=_1b;e.updateBox(this.safeBox(b));}if(c){var m=c.getMargins();var _1c={x:_11+m.left,y:_10+m.top,width:_e-(m.left+m.right),height:_f-(m.top+m.bottom)};c.updateBox(this.safeBox(_1c));}this.el.repaint();this.fireEvent("layout",this);},safeBox:function(box){box.width=Math.max(0,box.width);box.height=Math.max(0,box.height);return box;},add:function(_1e,_1f){_1e=_1e.toLowerCase();return this.regions[_1e].add(_1f);},remove:function(_20,_21){_20=_20.toLowerCase();return this.regions[_20].remove(_21);},findPanel:function(_22){var rs=this.regions;for(var _24 in rs){if(typeof rs[_24]!="function"){var p=rs[_24].getPanel(_22);if(p){return p;}}}return null;},showPanel:function(_26){var rs=this.regions;for(var _28 in rs){var r=rs[_28];if(typeof r!="function"){if(r.hasPanel(_26)){return r.showPanel(_26);}}}return null;},restoreState:function(_2a){if(!_2a){_2a=Ext.state.Manager;}var sm=new Ext.LayoutStateManager();sm.init(this,_2a);},batchAdd:function(_2c){this.beginUpdate();for(var _2d in _2c){var lr=this.regions[_2d];if(lr){this.addTypedPanels(lr,_2c[_2d]);}}this.endUpdate();},addTypedPanels:function(lr,ps){if(typeof ps=="string"){lr.add(new Ext.ContentPanel(ps));}else{if(ps instanceof Array){for(var i=0,len=ps.length;i1){for(var i=0,_f=arguments.length;i<_f;i++){this.add(arguments[i]);}return null;}if(this.hasPanel(_d)){this.showPanel(_d);return _d;}var el=_d.getEl();if(el.dom.parentNode!=this.mgr.el.dom){this.mgr.el.dom.appendChild(el.dom);}if(_d.setRegion){_d.setRegion(this);}this.panels.add(_d);el.setStyle("position","absolute");if(!_d.background){this.setActivePanel(_d);if(this.config.initialSize&&this.panels.getCount()==1){this.resizeTo(this.config.initialSize);}}this.fireEvent("paneladded",this,_d);return _d;},hasPanel:function(_11){if(typeof _11=="object"){_11=_11.getId();}return this.getPanel(_11)?true:false;},remove:function(_12,_13){_12=this.getPanel(_12);if(!_12){return null;}var e={};this.fireEvent("beforeremove",this,_12,e);if(e.cancel===true){return null;}var _15=_12.getId();this.panels.removeKey(_15);return _12;},getPanel:function(id){if(typeof id=="object"){return id;}return this.panels.get(id);},getPosition:function(){return this.position;}}); - -Ext.LayoutRegion=function(_1,_2,_3){Ext.LayoutRegion.superclass.constructor.call(this,_1,_2,_3,true);var dh=Ext.DomHelper;this.el=dh.append(_1.el.dom,{tag:"div",cls:"x-layout-panel x-layout-panel-"+this.position},true);this.titleEl=dh.append(this.el.dom,{tag:"div",unselectable:"on",cls:"x-unselectable x-layout-panel-hd x-layout-title-"+this.position,children:[{tag:"span",cls:"x-unselectable x-layout-panel-hd-text",unselectable:"on",html:" "},{tag:"div",cls:"x-unselectable x-layout-panel-hd-tools",unselectable:"on"}]},true);this.titleEl.enableDisplayMode();this.titleTextEl=this.titleEl.dom.firstChild;this.tools=Ext.get(this.titleEl.dom.childNodes[1],true);this.closeBtn=this.createTool(this.tools.dom,"x-layout-close");this.closeBtn.enableDisplayMode();this.closeBtn.on("click",this.closeClicked,this);this.closeBtn.hide();this.createBody(_2);this.visible=true;this.collapsed=false;if(_2.hideWhenEmpty){this.hide();this.on("paneladded",this.validateVisibility,this);this.on("panelremoved",this.validateVisibility,this);}this.applyConfig(_2);};Ext.extend(Ext.LayoutRegion,Ext.BasicLayoutRegion,{createBody:function(){this.bodyEl=this.el.createChild({tag:"div",cls:"x-layout-panel-body"});},applyConfig:function(c){if(c.collapsible&&this.position!="center"&&!this.collapsedEl){var dh=Ext.DomHelper;if(c.titlebar!==false){this.collapseBtn=this.createTool(this.tools.dom,"x-layout-collapse-"+this.position);this.collapseBtn.on("click",this.collapse,this);this.collapseBtn.enableDisplayMode();if(c.showPin===true||this.showPin){this.stickBtn=this.createTool(this.tools.dom,"x-layout-stick");this.stickBtn.enableDisplayMode();this.stickBtn.on("click",this.expand,this);this.stickBtn.hide();}}this.collapsedEl=dh.append(this.mgr.el.dom,{cls:"x-layout-collapsed x-layout-collapsed-"+this.position,children:[{cls:"x-layout-collapsed-tools",children:[{cls:"x-layout-ctools-inner"}]}]},true);if(c.floatable!==false){this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this.collapseClick,this);}if(c.collapsedTitle&&(this.position=="north"||this.position=="south")){this.collapsedTitleTextEl=dh.append(this.collapsedEl.dom,{tag:"div",cls:"x-unselectable x-layout-panel-hd-text",id:"message",unselectable:"on",style:{"float":"left"}});this.collapsedTitleTextEl.innerHTML=c.collapsedTitle;}this.expandBtn=this.createTool(this.collapsedEl.dom.firstChild.firstChild,"x-layout-expand-"+this.position);this.expandBtn.on("click",this.expand,this);}if(this.collapseBtn){this.collapseBtn.setVisible(c.collapsible==true);}this.cmargins=c.cmargins||this.cmargins||(this.position=="west"||this.position=="east"?{top:0,left:2,right:2,bottom:0}:{top:2,left:0,right:0,bottom:2});this.margins=c.margins||this.margins||{top:0,left:0,right:0,bottom:0};this.bottomTabs=c.tabPosition!="top";this.autoScroll=c.autoScroll||false;if(this.autoScroll){this.bodyEl.setStyle("overflow","auto");}else{this.bodyEl.setStyle("overflow","hidden");}if((!c.titlebar&&!c.title)||c.titlebar===false){this.titleEl.hide();}else{this.titleEl.show();if(c.title){this.titleTextEl.innerHTML=c.title;}}this.duration=c.duration||0.3;this.slideDuration=c.slideDuration||0.45;this.config=c;if(c.collapsed){this.collapse(true);}if(c.hidden){this.hide();}},isVisible:function(){return this.visible;},setCollapsedTitle:function(_7){_7=_7||" ";if(this.collapsedTitleTextEl){this.collapsedTitleTextEl.innerHTML=_7;}},getBox:function(){var b;if(!this.collapsed){b=this.el.getBox(false,true);}else{b=this.collapsedEl.getBox(false,true);}return b;},getMargins:function(){return this.collapsed?this.cmargins:this.margins;},highlight:function(){this.el.addClass("x-layout-panel-dragover");},unhighlight:function(){this.el.removeClass("x-layout-panel-dragover");},updateBox:function(_9){this.box=_9;if(!this.collapsed){this.el.dom.style.left=_9.x+"px";this.el.dom.style.top=_9.y+"px";this.updateBody(_9.width,_9.height);}else{this.collapsedEl.dom.style.left=_9.x+"px";this.collapsedEl.dom.style.top=_9.y+"px";this.collapsedEl.setSize(_9.width,_9.height);}if(this.tabs){this.tabs.autoSizeTabs();}},updateBody:function(w,h){if(w!==null){this.el.setWidth(w);w-=this.el.getBorderWidth("rl");if(this.config.adjustments){w+=this.config.adjustments[0];}}if(h!==null){this.el.setHeight(h);h=this.titleEl&&this.titleEl.isDisplayed()?h-(this.titleEl.getHeight()||0):h;h-=this.el.getBorderWidth("tb");if(this.config.adjustments){h+=this.config.adjustments[1];}this.bodyEl.setHeight(h);if(this.tabs){h=this.tabs.syncHeight(h);}}if(this.panelSize){w=w!==null?w:this.panelSize.width;h=h!==null?h:this.panelSize.height;}if(this.activePanel){var el=this.activePanel.getEl();w=w!==null?w:el.getWidth();h=h!==null?h:el.getHeight();this.panelSize={width:w,height:h};this.activePanel.setSize(w,h);}if(Ext.isIE&&this.tabs){this.tabs.el.repaint();}},getEl:function(){return this.el;},hide:function(){if(!this.collapsed){this.el.dom.style.left="-2000px";this.el.hide();}else{this.collapsedEl.dom.style.left="-2000px";this.collapsedEl.hide();}this.visible=false;this.fireEvent("visibilitychange",this,false);},show:function(){if(!this.collapsed){this.el.show();}else{this.collapsedEl.show();}this.visible=true;this.fireEvent("visibilitychange",this,true);},closeClicked:function(){if(this.activePanel){this.remove(this.activePanel);}},collapseClick:function(e){if(this.isSlid){e.stopPropagation();this.slideIn();}else{e.stopPropagation();this.slideOut();}},collapse:function(_e){if(this.collapsed){return;}this.collapsed=true;if(this.split){this.split.el.hide();}if(this.config.animate&&_e!==true){this.fireEvent("invalidated",this);this.animateCollapse();}else{this.el.setLocation(-20000,-20000);this.el.hide();this.collapsedEl.show();this.fireEvent("collapsed",this);this.fireEvent("invalidated",this);}},animateCollapse:function(){},expand:function(e,_10){if(e){e.stopPropagation();}if(!this.collapsed||this.el.hasActiveFx()){return;}if(this.isSlid){this.afterSlideIn();_10=true;}this.collapsed=false;if(this.config.animate&&_10!==true){this.animateExpand();}else{this.el.show();if(this.split){this.split.el.show();}this.collapsedEl.setLocation(-2000,-2000);this.collapsedEl.hide();this.fireEvent("invalidated",this);this.fireEvent("expanded",this);}},animateExpand:function(){},initTabs:function(){this.bodyEl.setStyle("overflow","hidden");var ts=new Ext.TabPanel(this.bodyEl.dom,{tabPosition:this.bottomTabs?"bottom":"top",disableTooltips:this.config.disableTabTips});if(this.config.hideTabs){ts.stripWrap.setDisplayed(false);}this.tabs=ts;ts.resizeTabs=this.config.resizeTabs===true;ts.minTabWidth=this.config.minTabWidth||40;ts.maxTabWidth=this.config.maxTabWidth||250;ts.preferredTabWidth=this.config.preferredTabWidth||150;ts.monitorResize=false;ts.bodyEl.setStyle("overflow",this.config.autoScroll?"auto":"hidden");ts.bodyEl.addClass("x-layout-tabs-body");this.panels.each(this.initPanelAsTab,this);},initPanelAsTab:function(_12){var ti=this.tabs.addTab(_12.getEl().id,_12.getTitle(),null,this.config.closeOnTab&&_12.isClosable());if(_12.tabTip!==undefined){ti.setTooltip(_12.tabTip);}ti.on("activate",function(){this.setActivePanel(_12);},this);if(this.config.closeOnTab){ti.on("beforeclose",function(t,e){e.cancel=true;this.remove(_12);},this);}return ti;},updatePanelTitle:function(_16,_17){if(this.activePanel==_16){this.updateTitle(_17);}if(this.tabs){var ti=this.tabs.getTab(_16.getEl().id);ti.setText(_17);if(_16.tabTip!==undefined){ti.setTooltip(_16.tabTip);}}},updateTitle:function(_19){if(this.titleTextEl&&!this.config.title){this.titleTextEl.innerHTML=(typeof _19!="undefined"&&_19.length>0?_19:" ");}},setActivePanel:function(_1a){_1a=this.getPanel(_1a);if(this.activePanel&&this.activePanel!=_1a){this.activePanel.setActiveState(false);}this.activePanel=_1a;_1a.setActiveState(true);if(this.panelSize){_1a.setSize(this.panelSize.width,this.panelSize.height);}if(this.closeBtn){this.closeBtn.setVisible(!this.config.closeOnTab&&!this.isSlid&&_1a.isClosable());}this.updateTitle(_1a.getTitle());if(this.tabs){this.fireEvent("invalidated",this);}this.fireEvent("panelactivated",this,_1a);},showPanel:function(_1b){if(_1b=this.getPanel(_1b)){if(this.tabs){var tab=this.tabs.getTab(_1b.getEl().id);if(tab.isHidden()){this.tabs.unhideTab(tab.id);}tab.activate();}else{this.setActivePanel(_1b);}}return _1b;},getActivePanel:function(){return this.activePanel;},validateVisibility:function(){if(this.panels.getCount()<1){this.updateTitle(" ");this.closeBtn.hide();this.hide();}else{if(!this.isVisible()){this.show();}}},add:function(_1d){if(arguments.length>1){for(var i=0,len=arguments.length;i0){this.remove(this.panels.first());}},remove:function(_22,_23){_22=this.getPanel(_22);if(!_22){return null;}var e={};this.fireEvent("beforeremove",this,_22,e);if(e.cancel===true){return null;}_23=(typeof _23!="undefined"?_23:(this.config.preservePanels===true||_22.preserve===true));var _25=_22.getId();this.panels.removeKey(_25);if(_23){document.body.appendChild(_22.getEl().dom);}if(this.tabs){this.tabs.removeTab(_22.getEl().id);}else{if(!_23){this.bodyEl.dom.removeChild(_22.getEl().dom);}}if(this.panels.getCount()==1&&this.tabs&&!this.config.alwaysShowTabs){var p=this.panels.first();var _27=document.createElement("div");_27.appendChild(p.getEl().dom);this.bodyEl.update("");this.bodyEl.dom.appendChild(p.getEl().dom);_27=null;this.updateTitle(p.getTitle());this.tabs=null;this.bodyEl.setStyle("overflow",this.config.autoScroll?"auto":"hidden");this.setActivePanel(p);}_22.setRegion(null);if(this.activePanel==_22){this.activePanel=null;}if(this.config.autoDestroy!==false&&_23!==true){try{_22.destroy();}catch(e){}}this.fireEvent("panelremoved",this,_22);return _22;},getTabs:function(){return this.tabs;},createTool:function(_28,_29){var btn=Ext.DomHelper.append(_28,{tag:"div",cls:"x-layout-tools-button",children:[{tag:"div",cls:"x-layout-tools-button-inner "+_29,html:" "}]},true);btn.addClassOnOver("x-layout-tools-button-over");return btn;}}); - -Ext.SplitLayoutRegion=function(_1,_2,_3,_4){this.cursor=_4;Ext.SplitLayoutRegion.superclass.constructor.call(this,_1,_2,_3);};Ext.extend(Ext.SplitLayoutRegion,Ext.LayoutRegion,{splitTip:"Drag to resize.",collapsibleSplitTip:"Drag to resize. Double click to hide.",useSplitTips:false,applyConfig:function(_5){Ext.SplitLayoutRegion.superclass.applyConfig.call(this,_5);if(_5.split){if(!this.split){var _6=Ext.DomHelper.append(this.mgr.el.dom,{tag:"div",id:this.el.id+"-split",cls:"x-layout-split x-layout-split-"+this.position,html:" "});this.split=new Ext.SplitBar(_6,this.el,this.orientation);this.split.on("moved",this.onSplitMove,this);this.split.useShim=_5.useShim===true;this.split.getMaximumSize=this[this.position=="north"||this.position=="south"?"getVMaxSize":"getHMaxSize"].createDelegate(this);if(this.useSplitTips){this.split.el.dom.title=_5.collapsible?this.collapsibleSplitTip:this.splitTip;}if(_5.collapsible){this.split.el.on("dblclick",this.collapse,this);}}if(typeof _5.minSize!="undefined"){this.split.minSize=_5.minSize;}if(typeof _5.maxSize!="undefined"){this.split.maxSize=_5.maxSize;}if(_5.hideWhenEmpty||_5.hidden){this.hideSplitter();}}},getHMaxSize:function(){var _7=this.config.maxSize||10000;var _8=this.mgr.getRegion("center");return Math.min(_7,(this.el.getWidth()+_8.getEl().getWidth())-_8.getMinWidth());},getVMaxSize:function(){var _9=this.config.maxSize||10000;var _a=this.mgr.getRegion("center");return Math.min(_9,(this.el.getHeight()+_a.getEl().getHeight())-_a.getMinHeight());},onSplitMove:function(_b,_c){this.fireEvent("resized",this,_c);},getSplitBar:function(){return this.split;},hide:function(){this.hideSplitter();Ext.SplitLayoutRegion.superclass.hide.call(this);},hideSplitter:function(){if(this.split){this.split.el.setLocation(-2000,-2000);this.split.el.hide();}},show:function(){if(this.split){this.split.el.show();}Ext.SplitLayoutRegion.superclass.show.call(this);},beforeSlide:function(){if(Ext.isGecko){this.bodyEl.clip();if(this.tabs){this.tabs.bodyEl.clip();}if(this.activePanel){this.activePanel.getEl().clip();if(this.activePanel.beforeSlide){this.activePanel.beforeSlide();}}}},afterSlide:function(){if(Ext.isGecko){this.bodyEl.unclip();if(this.tabs){this.tabs.bodyEl.unclip();}if(this.activePanel){this.activePanel.getEl().unclip();if(this.activePanel.afterSlide){this.activePanel.afterSlide();}}}},initAutoHide:function(){if(this.autoHide!==false){if(!this.autoHideHd){var st=new Ext.util.DelayedTask(this.slideIn,this);this.autoHideHd={"mouseout":function(e){if(!e.within(this.el,true)){st.delay(500);}},"mouseover":function(e){st.cancel();},scope:this};}this.el.on(this.autoHideHd);}},clearAutoHide:function(){if(this.autoHide!==false){this.el.un("mouseout",this.autoHideHd.mouseout);this.el.un("mouseover",this.autoHideHd.mouseover);}},clearMonitor:function(){Ext.get(document).un("click",this.slideInIf,this);},slideOut:function(){if(this.isSlid||this.el.hasActiveFx()){return;}this.isSlid=true;if(this.collapseBtn){this.collapseBtn.hide();}this.closeBtnState=this.closeBtn.getStyle("display");this.closeBtn.hide();if(this.stickBtn){this.stickBtn.show();}this.el.show();this.el.alignTo(this.collapsedEl,this.getCollapseAnchor());this.beforeSlide();this.el.setStyle("z-index",20000);this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.afterSlide();this.initAutoHide();Ext.get(document).on("click",this.slideInIf,this);this.fireEvent("slideshow",this);},scope:this,block:true});},afterSlideIn:function(){this.clearAutoHide();this.isSlid=false;this.clearMonitor();this.el.setStyle("z-index","");if(this.collapseBtn){this.collapseBtn.show();}this.closeBtn.setStyle("display",this.closeBtnState);if(this.stickBtn){this.stickBtn.hide();}this.fireEvent("slidehide",this);},slideIn:function(cb){if(!this.isSlid||this.el.hasActiveFx()){Ext.callback(cb);return;}this.isSlid=false;this.beforeSlide();this.el.slideOut(this.getSlideAnchor(),{callback:function(){this.el.setLeftTop(-10000,-10000);this.afterSlide();this.afterSlideIn();Ext.callback(cb);},scope:this,block:true});},slideInIf:function(e){if(!e.within(this.el)){this.slideIn();}},animateCollapse:function(){this.beforeSlide();this.el.setStyle("z-index",20000);var _12=this.getSlideAnchor();this.el.slideOut(_12,{callback:function(){this.el.setStyle("z-index","");this.collapsedEl.slideIn(_12,{duration:0.3});this.afterSlide();this.el.setLocation(-10000,-10000);this.el.hide();this.fireEvent("collapsed",this);},scope:this,block:true});},animateExpand:function(){this.beforeSlide();this.el.alignTo(this.collapsedEl,this.getCollapseAnchor(),this.getExpandAdj());this.el.setStyle("z-index",20000);this.collapsedEl.hide({duration:0.1});this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.el.setStyle("z-index","");this.afterSlide();if(this.split){this.split.el.show();}this.fireEvent("invalidated",this);this.fireEvent("expanded",this);},scope:this,block:true});},anchors:{"west":"left","east":"right","north":"top","south":"bottom"},sanchors:{"west":"l","east":"r","north":"t","south":"b"},canchors:{"west":"tl-tr","east":"tr-tl","north":"tl-bl","south":"bl-tl"},getAnchor:function(){return this.anchors[this.position];},getCollapseAnchor:function(){return this.canchors[this.position];},getSlideAnchor:function(){return this.sanchors[this.position];},getAlignAdj:function(){var cm=this.cmargins;switch(this.position){case "west":return [0,0];break;case "east":return [0,0];break;case "north":return [0,0];break;case "south":return [0,0];break;}},getExpandAdj:function(){var c=this.collapsedEl,cm=this.cmargins;switch(this.position){case "west":return [-(cm.right+c.getWidth()+cm.left),0];break;case "east":return [cm.right+c.getWidth()+cm.left,0];break;case "north":return [0,-(cm.top+cm.bottom+c.getHeight())];break;case "south":return [0,cm.top+cm.bottom+c.getHeight()];break;}}}); - -Ext.CenterLayoutRegion=function(_1,_2){Ext.CenterLayoutRegion.superclass.constructor.call(this,_1,_2,"center");this.visible=true;this.minWidth=_2.minWidth||20;this.minHeight=_2.minHeight||20;};Ext.extend(Ext.CenterLayoutRegion,Ext.LayoutRegion,{hide:function(){},show:function(){},getMinWidth:function(){return this.minWidth;},getMinHeight:function(){return this.minHeight;}});Ext.NorthLayoutRegion=function(_3,_4){Ext.NorthLayoutRegion.superclass.constructor.call(this,_3,_4,"north","n-resize");if(this.split){this.split.placement=Ext.SplitBar.TOP;this.split.orientation=Ext.SplitBar.VERTICAL;this.split.el.addClass("x-layout-split-v");}var _5=_4.initialSize||_4.height;if(typeof _5!="undefined"){this.el.setHeight(_5);}};Ext.extend(Ext.NorthLayoutRegion,Ext.SplitLayoutRegion,{orientation:Ext.SplitBar.VERTICAL,getBox:function(){if(this.collapsed){return this.collapsedEl.getBox();}var _6=this.el.getBox();if(this.split){_6.height+=this.split.el.getHeight();}return _6;},updateBox:function(_7){if(this.split&&!this.collapsed){_7.height-=this.split.el.getHeight();this.split.el.setLeft(_7.x);this.split.el.setTop(_7.y+_7.height);this.split.el.setWidth(_7.width);}if(this.collapsed){this.updateBody(_7.width,null);}Ext.NorthLayoutRegion.superclass.updateBox.call(this,_7);}});Ext.SouthLayoutRegion=function(_8,_9){Ext.SouthLayoutRegion.superclass.constructor.call(this,_8,_9,"south","s-resize");if(this.split){this.split.placement=Ext.SplitBar.BOTTOM;this.split.orientation=Ext.SplitBar.VERTICAL;this.split.el.addClass("x-layout-split-v");}var _a=_9.initialSize||_9.height;if(typeof _a!="undefined"){this.el.setHeight(_a);}};Ext.extend(Ext.SouthLayoutRegion,Ext.SplitLayoutRegion,{orientation:Ext.SplitBar.VERTICAL,getBox:function(){if(this.collapsed){return this.collapsedEl.getBox();}var _b=this.el.getBox();if(this.split){var sh=this.split.el.getHeight();_b.height+=sh;_b.y-=sh;}return _b;},updateBox:function(_d){if(this.split&&!this.collapsed){var sh=this.split.el.getHeight();_d.height-=sh;_d.y+=sh;this.split.el.setLeft(_d.x);this.split.el.setTop(_d.y-sh);this.split.el.setWidth(_d.width);}if(this.collapsed){this.updateBody(_d.width,null);}Ext.SouthLayoutRegion.superclass.updateBox.call(this,_d);}});Ext.EastLayoutRegion=function(_f,_10){Ext.EastLayoutRegion.superclass.constructor.call(this,_f,_10,"east","e-resize");if(this.split){this.split.placement=Ext.SplitBar.RIGHT;this.split.orientation=Ext.SplitBar.HORIZONTAL;this.split.el.addClass("x-layout-split-h");}var _11=_10.initialSize||_10.width;if(typeof _11!="undefined"){this.el.setWidth(_11);}};Ext.extend(Ext.EastLayoutRegion,Ext.SplitLayoutRegion,{orientation:Ext.SplitBar.HORIZONTAL,getBox:function(){if(this.collapsed){return this.collapsedEl.getBox();}var box=this.el.getBox();if(this.split){var sw=this.split.el.getWidth();box.width+=sw;box.x-=sw;}return box;},updateBox:function(box){if(this.split&&!this.collapsed){var sw=this.split.el.getWidth();box.width-=sw;this.split.el.setLeft(box.x);this.split.el.setTop(box.y);this.split.el.setHeight(box.height);box.x+=sw;}if(this.collapsed){this.updateBody(null,box.height);}Ext.EastLayoutRegion.superclass.updateBox.call(this,box);}});Ext.WestLayoutRegion=function(mgr,_17){Ext.WestLayoutRegion.superclass.constructor.call(this,mgr,_17,"west","w-resize");if(this.split){this.split.placement=Ext.SplitBar.LEFT;this.split.orientation=Ext.SplitBar.HORIZONTAL;this.split.el.addClass("x-layout-split-h");}var _18=_17.initialSize||_17.width;if(typeof _18!="undefined"){this.el.setWidth(_18);}};Ext.extend(Ext.WestLayoutRegion,Ext.SplitLayoutRegion,{orientation:Ext.SplitBar.HORIZONTAL,getBox:function(){if(this.collapsed){return this.collapsedEl.getBox();}var box=this.el.getBox();if(this.split){box.width+=this.split.el.getWidth();}return box;},updateBox:function(box){if(this.split&&!this.collapsed){var sw=this.split.el.getWidth();box.width-=sw;this.split.el.setLeft(box.x+box.width);this.split.el.setTop(box.y);this.split.el.setHeight(box.height);}if(this.collapsed){this.updateBody(null,box.height);}Ext.WestLayoutRegion.superclass.updateBox.call(this,box);}}); - -Ext.LayoutStateManager=function(_1){this.state={north:{},south:{},east:{},west:{}};};Ext.LayoutStateManager.prototype={init:function(_2,_3){this.provider=_3;var _4=_3.get(_2.id+"-layout-state");if(_4){var _5=_2.isUpdating();if(!_5){_2.beginUpdate();}for(var _6 in _4){if(typeof _4[_6]!="function"){var _7=_4[_6];var r=_2.getRegion(_6);if(r&&_7){if(_7.size){r.resizeTo(_7.size);}if(_7.collapsed==true){r.collapse(true);}else{r.expand(null,true);}}}}if(!_5){_2.endUpdate();}this.state=_4;}this.layout=_2;_2.on("regionresized",this.onRegionResized,this);_2.on("regioncollapsed",this.onRegionCollapsed,this);_2.on("regionexpanded",this.onRegionExpanded,this);},storeState:function(){this.provider.set(this.layout.id+"-layout-state",this.state);},onRegionResized:function(_9,_a){this.state[_9.getPosition()].size=_a;this.storeState();},onRegionCollapsed:function(_b){this.state[_b.getPosition()].collapsed=true;this.storeState();},onRegionExpanded:function(_c){this.state[_c.getPosition()].collapsed=false;this.storeState();}}; - -Ext.ContentPanel=function(el,_2,_3){Ext.ContentPanel.superclass.constructor.call(this);if(el.autoCreate){_2=el;el=Ext.id();}this.el=Ext.get(el);if(!this.el&&_2&&_2.autoCreate){if(typeof _2.autoCreate=="object"){if(!_2.autoCreate.id){_2.autoCreate.id=_2.id||el;}this.el=Ext.DomHelper.append(document.body,_2.autoCreate,true);}else{this.el=Ext.DomHelper.append(document.body,{tag:"div",cls:"x-layout-inactive-content",id:_2.id||el},true);}}this.closable=false;this.loaded=false;this.active=false;if(typeof _2=="string"){this.title=_2;}else{Ext.apply(this,_2);}if(this.resizeEl){this.resizeEl=Ext.get(this.resizeEl,true);}else{this.resizeEl=this.el;}this.addEvents({"activate":true,"deactivate":true,"resize":true});if(this.autoScroll){this.resizeEl.setStyle("overflow","auto");}_3=_3||this.content;if(_3){this.setContent(_3);}if(_2&&_2.url){this.setUrl(this.url,this.params,this.loadOnce);}};Ext.extend(Ext.ContentPanel,Ext.util.Observable,{tabTip:"",setRegion:function(_4){this.region=_4;if(_4){this.el.replaceClass("x-layout-inactive-content","x-layout-active-content");}else{this.el.replaceClass("x-layout-active-content","x-layout-inactive-content");}},getToolbar:function(){return this.toolbar;},setActiveState:function(_5){this.active=_5;if(!_5){this.fireEvent("deactivate",this);}else{this.fireEvent("activate",this);}},setContent:function(_6,_7){this.el.update(_6,_7);},ignoreResize:function(w,h){if(this.lastSize&&this.lastSize.width==w&&this.lastSize.height==h){return true;}else{this.lastSize={width:w,height:h};return false;}},getUpdateManager:function(){return this.el.getUpdateManager();},load:function(){var um=this.el.getUpdateManager();um.update.apply(um,arguments);return this;},setUrl:function(_b,_c,_d){if(this.refreshDelegate){this.removeListener("activate",this.refreshDelegate);}this.refreshDelegate=this._handleRefresh.createDelegate(this,[_b,_c,_d]);this.on("activate",this._handleRefresh.createDelegate(this,[_b,_c,_d]));return this.el.getUpdateManager();},_handleRefresh:function(_e,_f,_10){if(!_10||!this.loaded){var _11=this.el.getUpdateManager();_11.update(_e,_f,this._setLoaded.createDelegate(this));}},_setLoaded:function(){this.loaded=true;},getId:function(){return this.el.id;},getEl:function(){return this.el;},adjustForComponents:function(_12,_13){if(this.resizeEl!=this.el){_12-=this.el.getFrameWidth("lr");_13-=this.el.getFrameWidth("tb");}if(this.toolbar){var te=this.toolbar.getEl();_13-=te.getHeight();te.setWidth(_12);}if(this.adjustments){_12+=this.adjustments[0];_13+=this.adjustments[1];}return {"width":_12,"height":_13};},setSize:function(_15,_16){if(this.fitToFrame&&!this.ignoreResize(_15,_16)){if(this.fitContainer&&this.resizeEl!=this.el){this.el.setSize(_15,_16);}var _17=this.adjustForComponents(_15,_16);this.resizeEl.setSize(this.autoWidth?"auto":_17.width,this.autoHeight?"auto":_17.height);this.fireEvent("resize",this,_17.width,_17.height);}},getTitle:function(){return this.title;},setTitle:function(_18){this.title=_18;if(this.region){this.region.updatePanelTitle(this,_18);}},isClosable:function(){return this.closable;},beforeSlide:function(){this.el.clip();this.resizeEl.clip();},afterSlide:function(){this.el.unclip();this.resizeEl.unclip();},refresh:function(){if(this.refreshDelegate){this.loaded=false;this.refreshDelegate();}},destroy:function(){this.el.removeAllListeners();var _19=document.createElement("span");_19.appendChild(this.el.dom);_19.innerHTML="";this.el.remove();this.el=null;}});Ext.GridPanel=function(_1a,_1b){this.wrapper=Ext.DomHelper.append(document.body,{tag:"div",cls:"x-layout-grid-wrapper x-layout-inactive-content"},true);this.wrapper.dom.appendChild(_1a.container.dom);Ext.GridPanel.superclass.constructor.call(this,this.wrapper,_1b);if(this.toolbar){this.toolbar.el.insertBefore(this.wrapper.dom.firstChild);}_1a.monitorWindowResize=false;_1a.autoHeight=false;_1a.autoWidth=false;this.grid=_1a;this.grid.container.replaceClass("x-layout-inactive-content","x-layout-component-panel");};Ext.extend(Ext.GridPanel,Ext.ContentPanel,{getId:function(){return this.grid.id;},getGrid:function(){return this.grid;},setSize:function(_1c,_1d){if(!this.ignoreResize(_1c,_1d)){var _1e=this.grid;var _1f=this.adjustForComponents(_1c,_1d);_1e.container.setSize(_1f.width,_1f.height);_1e.autoSize();}},beforeSlide:function(){this.grid.getView().scroller.clip();},afterSlide:function(){this.grid.getView().scroller.unclip();},destroy:function(){this.grid.destroy();delete this.grid;Ext.GridPanel.superclass.destroy.call(this);}});Ext.NestedLayoutPanel=function(_20,_21){Ext.NestedLayoutPanel.superclass.constructor.call(this,_20.getEl(),_21);_20.monitorWindowResize=false;this.layout=_20;this.layout.getEl().addClass("x-layout-nested-layout");};Ext.extend(Ext.NestedLayoutPanel,Ext.ContentPanel,{setSize:function(_22,_23){if(!this.ignoreResize(_22,_23)){var _24=this.adjustForComponents(_22,_23);var el=this.layout.getEl();el.setSize(_24.width,_24.height);var _26=el.dom.offsetWidth;this.layout.layout();if(Ext.isIE&&!this.initialized){this.initialized=true;this.layout.layout();}}},getLayout:function(){return this.layout;}});Ext.ScrollPanel=function(el,_28,_29){_28=_28||{};_28.fitToFrame=true;Ext.ScrollPanel.superclass.constructor.call(this,el,_28,_29);this.el.dom.style.overflow="hidden";var _2a=this.el.wrap({cls:"x-scroller x-layout-inactive-content"});this.el.removeClass("x-layout-inactive-content");this.el.on("mousewheel",this.onWheel,this);var up=_2a.createChild({cls:"x-scroller-up",html:" "},this.el.dom);var _2c=_2a.createChild({cls:"x-scroller-down",html:" "});up.unselectable();_2c.unselectable();up.on("click",this.scrollUp,this);_2c.on("click",this.scrollDown,this);up.addClassOnOver("x-scroller-btn-over");_2c.addClassOnOver("x-scroller-btn-over");up.addClassOnClick("x-scroller-btn-click");_2c.addClassOnClick("x-scroller-btn-click");this.adjustments=[0,-(up.getHeight()+_2c.getHeight())];this.resizeEl=this.el;this.el=_2a;this.up=up;this.down=_2c;};Ext.extend(Ext.ScrollPanel,Ext.ContentPanel,{increment:100,wheelIncrement:5,scrollUp:function(){this.resizeEl.scroll("up",this.increment,{callback:this.afterScroll,scope:this});},scrollDown:function(){this.resizeEl.scroll("down",this.increment,{callback:this.afterScroll,scope:this});},afterScroll:function(){var el=this.resizeEl;var t=el.dom.scrollTop,h=el.dom.scrollHeight,ch=el.dom.clientHeight;this.up[t==0?"addClass":"removeClass"]("x-scroller-btn-disabled");this.down[h-t<=ch?"addClass":"removeClass"]("x-scroller-btn-disabled");},setSize:function(){Ext.ScrollPanel.superclass.setSize.apply(this,arguments);this.afterScroll();},onWheel:function(e){var d=e.getWheelDelta();this.resizeEl.dom.scrollTop-=(d*this.wheelIncrement);this.afterScroll();e.stopEvent();},setContent:function(_33,_34){this.resizeEl.update(_33,_34);}}); - -Ext.ReaderLayout=function(_1,_2){var c=_1||{size:{}};Ext.ReaderLayout.superclass.constructor.call(this,_2||document.body,{north:c.north!==false?Ext.apply({split:false,initialSize:32,titlebar:false},c.north):false,west:c.west!==false?Ext.apply({split:true,initialSize:200,minSize:175,maxSize:400,titlebar:true,collapsible:true,animate:true,margins:{left:5,right:0,bottom:5,top:5},cmargins:{left:5,right:5,bottom:5,top:5}},c.west):false,east:c.east!==false?Ext.apply({split:true,initialSize:200,minSize:175,maxSize:400,titlebar:true,collapsible:true,animate:true,margins:{left:0,right:5,bottom:5,top:5},cmargins:{left:5,right:5,bottom:5,top:5}},c.east):false,center:Ext.apply({tabPosition:"top",autoScroll:false,closeOnTab:true,titlebar:false,margins:{left:c.west!==false?0:5,right:c.east!==false?0:5,bottom:5,top:2}},c.center)});this.el.addClass("x-reader");this.beginUpdate();var _4=new Ext.BorderLayout(Ext.get(document.body).createChild(),{south:c.preview!==false?Ext.apply({split:true,initialSize:200,minSize:100,autoScroll:true,collapsible:true,titlebar:true,cmargins:{top:5,left:0,right:0,bottom:0}},c.preview):false,center:Ext.apply({autoScroll:false,titlebar:false,minHeight:200},c.listView)});this.add("center",new Ext.NestedLayoutPanel(_4,Ext.apply({title:c.mainTitle||"",tabTip:""},c.innerPanelCfg)));this.endUpdate();this.regions.preview=_4.getRegion("south");this.regions.listView=_4.getRegion("center");};Ext.extend(Ext.ReaderLayout,Ext.BorderLayout); - -Ext.grid.Grid=function(_1,_2){this.container=Ext.get(_1);this.container.update("");this.container.setStyle("overflow","hidden");this.container.addClass("x-grid-container");this.id=this.container.id;Ext.apply(this,_2);if(this.ds){this.dataSource=this.ds;delete this.ds;}if(this.cm){this.colModel=this.cm;delete this.cm;}if(this.sm){this.selModel=this.sm;delete this.sm;}if(this.width){this.container.setWidth(this.width);}if(this.height){this.container.setHeight(this.height);}this.addEvents({"click":true,"dblclick":true,"contextmenu":true,"mousedown":true,"mouseup":true,"mouseover":true,"mouseout":true,"keypress":true,"keydown":true,"cellclick":true,"celldblclick":true,"rowclick":true,"rowdblclick":true,"headerclick":true,"headerdblclick":true,"rowcontextmenu":true,"cellcontextmenu":true,"headercontextmenu":true,"bodyscroll":true,"columnresize":true,"columnmove":true,"startdrag":true,"enddrag":true,"dragdrop":true,"dragover":true,"dragenter":true,"dragout":true});Ext.grid.Grid.superclass.constructor.call(this);};Ext.extend(Ext.grid.Grid,Ext.util.Observable,{minColumnWidth:25,autoSizeColumns:false,autoSizeHeaders:true,monitorWindowResize:true,maxRowsToMeasure:0,trackMouseOver:true,enableDragDrop:false,enableColumnMove:true,enableColumnHide:true,enableRowHeightSync:false,stripeRows:true,autoHeight:false,autoExpandColumn:false,autoExpandMin:50,autoExpandMax:1000,view:null,allowTextSelectionPattern:/INPUT|TEXTAREA|SELECT/i,loadMask:false,rendered:false,render:function(){var c=this.container;if((!c.dom.offsetHeight||c.dom.offsetHeight<20)||c.getStyle("height")=="auto"){this.autoHeight=true;}var _4=this.getView();_4.init(this);c.on("click",this.onClick,this);c.on("dblclick",this.onDblClick,this);c.on("contextmenu",this.onContextMenu,this);c.on("keydown",this.onKeyDown,this);this.relayEvents(c,["mousedown","mouseup","mouseover","mouseout","keypress"]);this.getSelectionModel().init(this);_4.render();if(this.loadMask){this.loadMask=new Ext.LoadMask(this.container,Ext.apply({store:this.dataSource},this.loadMask));}this.rendered=true;return this;},reconfigure:function(_5,_6){if(this.loadMask){this.loadMask.destroy();this.loadMask=new Ext.LoadMask(this.container,Ext.apply({store:_5},this.loadMask));}this.view.bind(_5,_6);this.dataSource=_5;this.colModel=_6;this.view.refresh(true);},onKeyDown:function(e){this.fireEvent("keydown",e);},destroy:function(_8,_9){if(this.loadMask){this.loadMask.destroy();}var c=this.container;c.removeAllListeners();this.view.destroy();this.colModel.purgeListeners();if(!_9){this.purgeListeners();}c.update("");if(_8===true){c.remove();}},processEvent:function(_b,e){this.fireEvent(_b,e);var t=e.getTarget();var v=this.view;var _f=v.findHeaderIndex(t);if(_f!==false){this.fireEvent("header"+_b,this,_f,e);}else{var row=v.findRowIndex(t);var _11=v.findCellIndex(t);if(row!==false){this.fireEvent("row"+_b,this,row,e);if(_11!==false){this.fireEvent("cell"+_b,this,row,_11,e);}}}},onClick:function(e){this.processEvent("click",e);},onContextMenu:function(e,t){this.processEvent("contextmenu",e);},onDblClick:function(e){this.processEvent("dblclick",e);},walkCells:function(row,col,_18,fn,_1a){var cm=this.colModel,_1c=cm.getColumnCount();var ds=this.dataSource,_1e=ds.getCount(),_1f=true;if(_18<0){if(col<0){row--;_1f=false;}while(row>=0){if(!_1f){col=_1c-1;}_1f=false;while(col>=0){if(fn.call(_1a||this,row,col,cm)===true){return [row,col];}col--;}row--;}}else{if(col>=_1c){row++;_1f=false;}while(row<_1e){if(!_1f){col=0;}_1f=false;while(col<_1c){if(fn.call(_1a||this,row,col,cm)===true){return [row,col];}col++;}row++;}}return null;},getSelections:function(){return this.selModel.getSelections();},autoSize:function(){if(this.rendered){this.view.layout();if(this.view.adjustForScroll){this.view.adjustForScroll();}}},stopEditing:function(){},getSelectionModel:function(){if(!this.selModel){this.selModel=new Ext.grid.RowSelectionModel();}return this.selModel;},getDataSource:function(){return this.dataSource;},getColumnModel:function(){return this.colModel;},getView:function(){if(!this.view){this.view=new Ext.grid.GridView();}return this.view;},getDragDropText:function(){var _20=this.selModel.getCount();return String.format(this.ddText,_20,_20==1?"":"s");}});Ext.grid.Grid.prototype.ddText="{0} selected row{1}"; - -Ext.grid.AbstractGridView=function(){this.grid=null;this.events={"beforerowremoved":true,"beforerowsinserted":true,"beforerefresh":true,"rowremoved":true,"rowsinserted":true,"rowupdated":true,"refresh":true};Ext.grid.AbstractGridView.superclass.constructor.call(this);};Ext.extend(Ext.grid.AbstractGridView,Ext.util.Observable,{rowClass:"x-grid-row",cellClass:"x-grid-cell",tdClass:"x-grid-td",hdClass:"x-grid-hd",splitClass:"x-grid-hd-split",init:function(_1){this.grid=_1;var _2=this.grid.container.id;this.colSelector="#"+_2+" ."+this.cellClass+"-";this.tdSelector="#"+_2+" ."+this.tdClass+"-";this.hdSelector="#"+_2+" ."+this.hdClass+"-";this.splitSelector="#"+_2+" ."+this.splitClass+"-";},getColumnRenderers:function(){var _3=[];var cm=this.grid.colModel;var _5=cm.getColumnCount();for(var i=0;i<_5;i++){_3[i]=cm.getRenderer(i);}return _3;},getColumnIds:function(){var _7=[];var cm=this.grid.colModel;var _9=cm.getColumnCount();for(var i=0;i<_9;i++){_7[i]=cm.getColumnId(i);}return _7;},getDataIndexes:function(){if(!this.indexMap){this.indexMap=this.buildIndexMap();}return this.indexMap.colToData;},getColumnIndexByDataIndex:function(_b){if(!this.indexMap){this.indexMap=this.buildIndexMap();}return this.indexMap.dataToCol[_b];},setCSSStyle:function(_c,_d,_e){var _f="#"+this.grid.id+" .x-grid-col-"+_c;Ext.util.CSS.updateRule(_f,_d,_e);},generateRules:function(cm){var _11=[];for(var i=0,len=cm.getColumnCount();i","
      ","
      ","
      ","
      {lockedHeader}
      ","
      {lockedBody}
      ","
      ","
      ","
      {header}
      ","
      {body}
      ","
      ","
      ","","
       
      ","");_5.master.disableformats=true;}if(!_5.header){_5.header=new Ext.Template("","{cells}","
      {splits}");_5.header.disableformats=true;}_5.header.compile();if(!_5.hcell){_5.hcell=new Ext.Template("
      ","
      {value}
      ","
      ");_5.hcell.disableFormats=true;}_5.hcell.compile();if(!_5.hsplit){_5.hsplit=new Ext.Template("
       
      ");_5.hsplit.disableFormats=true;}_5.hsplit.compile();if(!_5.body){_5.body=new Ext.Template("","{rows}","
      ");_5.body.disableFormats=true;}_5.body.compile();if(!_5.row){_5.row=new Ext.Template("{cells}");_5.row.disableFormats=true;}_5.row.compile();if(!_5.cell){_5.cell=new Ext.Template("","
      {value}
      ","");_5.cell.disableFormats=true;}_5.cell.compile();this.templates=_5;},onColWidthChange:function(){this.updateColumns.apply(this,arguments);},onHeaderChange:function(){this.updateHeaders.apply(this,arguments);},onHiddenChange:function(){this.handleHiddenChange.apply(this,arguments);},onColumnMove:function(){this.handleColumnMove.apply(this,arguments);},onColumnLock:function(){this.handleLockChange.apply(this,arguments);},onDataChange:function(){this.refresh();this.updateHeaderSortState();},onClear:function(){this.refresh();},onUpdate:function(ds,_7){this.refreshRow(_7);},refreshRow:function(_8){var ds=this.ds,_a;if(typeof _8=="number"){_a=_8;_8=ds.getAt(_a);}else{_a=ds.indexOf(_8);}var _b=this.getRowComposite(_a);var _c=[];this.insertRows(ds,_a,_a,true);this.onRemove(ds,_8,_a+1,true);this.syncRowHeights(_a,_a);this.layout();this.fireEvent("rowupdated",this,_a,_8);},onAdd:function(ds,_e,_f){this.insertRows(ds,_f,_f+(_e.length-1));},onRemove:function(ds,_11,_12,_13){if(_13!==true){this.fireEvent("beforerowremoved",this,_12,_11);}var bt=this.getBodyTable(),lt=this.getLockedTable();if(bt.rows[_12]){bt.firstChild.removeChild(bt.rows[_12]);}if(lt.rows[_12]){lt.firstChild.removeChild(lt.rows[_12]);}if(_13!==true){this.stripeRows(_12);this.syncRowHeights(_12,_12);this.layout();this.fireEvent("rowremoved",this,_12,_11);}},onLoad:function(){this.scrollToTop();},scrollToTop:function(){if(this.scroller){this.scroller.dom.scrollTop=0;this.syncScroll();}},getHeaderPanel:function(_16){if(_16){this.headerPanel.show();}return this.headerPanel;},getFooterPanel:function(_17){if(_17){this.footerPanel.show();}return this.footerPanel;},initElements:function(){var E=Ext.Element;var el=this.grid.container.dom.firstChild;var cs=el.childNodes;this.el=new E(el);this.headerPanel=new E(el.firstChild);this.headerPanel.enableDisplayMode("block");this.scroller=new E(cs[1]);this.scrollSizer=new E(this.scroller.dom.firstChild);this.lockedWrap=new E(cs[2]);this.lockedHd=new E(this.lockedWrap.dom.firstChild);this.lockedBody=new E(this.lockedWrap.dom.childNodes[1]);this.mainWrap=new E(cs[3]);this.mainHd=new E(this.mainWrap.dom.firstChild);this.mainBody=new E(this.mainWrap.dom.childNodes[1]);this.footerPanel=new E(cs[4]);this.footerPanel.enableDisplayMode("block");this.focusEl=new E(cs[5]);this.focusEl.swallowEvent("click",true);this.resizeProxy=new E(cs[6]);this.headerSelector=String.format("#{0} td.x-grid-hd, #{1} td.x-grid-hd",this.lockedHd.id,this.mainHd.id);this.splitterSelector=String.format("#{0} div.x-grid-split, #{1} div.x-grid-split",this.lockedHd.id,this.mainHd.id);},getHeaderCell:function(_1b){return Ext.DomQuery.select(this.headerSelector)[_1b];},getHeaderCellMeasure:function(_1c){return this.getHeaderCell(_1c).firstChild;},getHeaderCellText:function(_1d){return this.getHeaderCell(_1d).firstChild.firstChild;},getLockedTable:function(){return this.lockedBody.dom.firstChild;},getBodyTable:function(){return this.mainBody.dom.firstChild;},getLockedRow:function(_1e){return this.getLockedTable().rows[_1e];},getRow:function(_1f){return this.getBodyTable().rows[_1f];},getRowComposite:function(_20){if(!this.rowEl){this.rowEl=new Ext.CompositeElementLite();}var els=[],_22,_23;if(_22=this.getLockedRow(_20)){els.push(_22);}if(_23=this.getRow(_20)){els.push(_23);}this.rowEl.elements=els;return this.rowEl;},getCell:function(_24,_25){var _26=this.cm.getLockedCount();var _27;if(_25<_26){_27=this.lockedBody.dom.firstChild;}else{_27=this.mainBody.dom.firstChild;_25-=_26;}return _27.rows[_24].childNodes[_25];},getCellText:function(_28,_29){return this.getCell(_28,_29).firstChild.firstChild;},getCellBox:function(_2a){var b=this.fly(_2a).getBox();if(Ext.isOpera){b.y=_2a.offsetTop+this.mainBody.getY();}return b;},getCellIndex:function(_2c){var id=String(_2c.className).match(this.cellRE);if(id){return parseInt(id[1],10);}return 0;},findHeaderIndex:function(n){var r=Ext.fly(n).findParent("td."+this.hdClass,6);return r?this.getCellIndex(r):false;},findHeaderCell:function(n){var r=Ext.fly(n).findParent("td."+this.hdClass,6);return r?r:false;},findRowIndex:function(n){if(!n){return false;}var r=Ext.fly(n).findParent("tr."+this.rowClass,6);return r?r.rowIndex:false;},findCellIndex:function(_34){var _35=this.el.dom;while(_34&&_34!=_35){if(this.findRE.test(_34.className)){return this.getCellIndex(_34);}_34=_34.parentNode;}return false;},getColumnId:function(_36){return this.cm.getColumnId(_36);},getSplitters:function(){if(this.splitterSelector){return Ext.DomQuery.select(this.splitterSelector);}else{return null;}},getSplitter:function(_37){return this.getSplitters()[_37];},onRowOver:function(e,t){var row;if((row=this.findRowIndex(t))!==false){this.getRowComposite(row).addClass("x-grid-row-over");}},onRowOut:function(e,t){var row;if((row=this.findRowIndex(t))!==false&&row!==this.findRowIndex(e.getRelatedTarget())){this.getRowComposite(row).removeClass("x-grid-row-over");}},renderHeaders:function(){var cm=this.cm;var ct=this.templates.hcell,ht=this.templates.header,st=this.templates.hsplit;var cb=[],lb=[],sb=[],lsb=[],p={};for(var i=0,len=cm.getColumnCount();i=this.ds.getCount()){return;}col=(col!==undefined?col:0);var cm=this.grid.colModel;while(cm.isHidden(col)){col++;}var el=this.getCell(row,col);if(!el){return;}var c=this.scroller.dom;var _56=parseInt(el.offsetTop,10);var _57=parseInt(el.offsetLeft,10);var _58=_56+el.offsetHeight;var _59=_57+el.offsetWidth;var ch=c.clientHeight-this.mainHd.dom.offsetHeight;var _5b=parseInt(c.scrollTop,10);var _5c=parseInt(c.scrollLeft,10);var _5d=_5b+ch;var _5e=_5c+c.clientWidth;if(_56<_5b){c.scrollTop=_56;}else{if(_58>_5d){c.scrollTop=_58-ch;}}if(_52!==false){if(_57<_5c){c.scrollLeft=_57;}else{if(_59>_5e){c.scrollLeft=_59-c.clientWidth;}}}return el;},updateColumns:function(){this.grid.stopEditing();var cm=this.grid.colModel,_60=this.getColumnIds();var pos=0;for(var i=0,len=cm.getColumnCount();i"+_79+"";var _80=b.firstChild.rows;for(var i=0,len=_80.length;i0){_141=_141||0;var _143=this.getBodyTable().rows;var _144=this.getLockedTable().rows;var len=_143.length-1;_142=Math.min(_142||len,len);for(var i=_141;i<=_142;i++){var m=_143[i],l=_144[i];var h=Math.max(m.offsetHeight,l.offsetHeight);m.style.height=l.style.height=h+"px";}}},layout:function(_14a,_14b){var g=this.grid;var auto=g.autoHeight;var _14e=16;var c=g.container,cm=this.cm,_151=g.autoExpandColumn,gv=this;if(!c.dom.offsetWidth){if(_14a){this.lockedWrap.show();this.mainWrap.show();}return;}var _153=this.cm.isLocked(0);var tbh=this.headerPanel.getHeight();var bbh=this.footerPanel.getHeight();if(auto){var ch=this.getBodyTable().offsetHeight+tbh+bbh+this.mainHd.getHeight();var _157=ch+c.getBorderWidth("tb");if(g.maxHeight){_157=Math.min(g.maxHeight,_157);}c.setHeight(_157);}if(g.autoWidth){c.setWidth(cm.getTotalWidth()+c.getBorderWidth("lr"));}var s=this.scroller;var _159=c.getSize(true);this.el.setSize(_159.width,_159.height);this.headerPanel.setWidth(_159.width);this.footerPanel.setWidth(_159.width);var _15a=this.mainHd.getHeight();var vw=_159.width;var vh=_159.height-(tbh+bbh);s.setSize(vw,vh);var bt=this.getBodyTable();var _15e=_153?Math.max(this.getLockedTable().offsetWidth,this.lockedHd.dom.firstChild.offsetWidth):0;var _15f=bt.offsetHeight;var _160=_15e+bt.offsetWidth;var _161=false,_162=false;this.scrollSizer.setSize(_160,_15f+_15a);var lw=this.lockedWrap,mw=this.mainWrap;var lb=this.lockedBody,mb=this.mainBody;setTimeout(function(){var t=s.dom.offsetTop;var w=s.dom.clientWidth,h=s.dom.clientHeight;lw.setTop(t);lw.setSize(_15e,h);mw.setLeftTop(_15e,t);mw.setSize(w-_15e,h);lb.setHeight(h-_15a);mb.setHeight(h-_15a);if(_14b!==true&&!gv.userResized&&_151){var ci=cm.getIndexById(_151);var tw=cm.getTotalWidth(false);var _16c=cm.getColumnWidth(ci);var cw=Math.min(Math.max(((w-tw)+_16c-2)-(w<=s.dom.offsetWidth?0:18),g.autoExpandMin),g.autoExpandMax);if(_16c!=cw){cm.setColumnWidth(ci,cw,true);gv.css.updateRule(gv.colSelector+_151,"width",(cw-gv.borderWidth)+"px");gv.css.updateRule(gv.hdSelector+_151,"width",(cw-gv.borderWidth)+"px");gv.updateSplitters();gv.layout(false,true);}}if(_14a){lw.show();mw.show();}},10);},onWindowResize:function(){if(!this.grid.monitorWindowResize||this.grid.autoHeight){return;}this.layout();},appendFooter:function(_16e){return null;},sortAscText:"Sort Ascending",sortDescText:"Sort Descending",lockText:"Lock Column",unlockText:"Unlock Column",columnsText:"Columns"}); - -Ext.grid.HeaderDragZone=function(_1,hd,_3){this.grid=_1;this.view=_1.getView();this.ddGroup="gridHeader"+this.grid.container.id;Ext.grid.HeaderDragZone.superclass.constructor.call(this,hd);if(_3){this.setHandleElId(Ext.id(hd));this.setOuterHandleElId(Ext.id(_3));}this.scroll=false;};Ext.extend(Ext.grid.HeaderDragZone,Ext.dd.DragZone,{maxDragWidth:120,getDragData:function(e){var t=Ext.lib.Event.getTarget(e);var h=this.view.findHeaderCell(t);if(h){return {ddel:h.firstChild,header:h};}return false;},onInitDrag:function(e){this.view.headersDisabled=true;var _8=this.dragData.ddel.cloneNode(true);_8.style.width=Math.min(this.dragData.header.offsetWidth,this.maxDragWidth)+"px";this.proxy.update(_8);return true;},afterValidDrop:function(){var v=this.view;setTimeout(function(){v.headersDisabled=false;},50);},afterInvalidDrop:function(){var v=this.view;setTimeout(function(){v.headersDisabled=false;},50);}});Ext.grid.HeaderDropZone=function(_b,hd,_d){this.grid=_b;this.view=_b.getView();this.proxyTop=Ext.DomHelper.append(document.body,{tag:"div",cls:"col-move-top",html:" "},true);this.proxyBottom=Ext.DomHelper.append(document.body,{tag:"div",cls:"col-move-bottom",html:" "},true);this.proxyTop.hide=this.proxyBottom.hide=function(){this.setLeftTop(-100,-100);this.setStyle("visibility","hidden");};this.ddGroup="gridHeader"+this.grid.container.id;Ext.grid.HeaderDropZone.superclass.constructor.call(this,_b.container.dom);};Ext.extend(Ext.grid.HeaderDropZone,Ext.dd.DropZone,{proxyOffsets:[-4,-9],fly:Ext.Element.fly,getTargetFromEvent:function(e){var t=Ext.lib.Event.getTarget(e);var _10=this.view.findCellIndex(t);if(_10!==false){return this.view.getHeaderCell(_10);}},nextVisible:function(h){var v=this.view,cm=this.grid.colModel;h=h.nextSibling;while(h){if(!cm.isHidden(v.getCellIndex(h))){return h;}h=h.nextSibling;}return null;},prevVisible:function(h){var v=this.view,cm=this.grid.colModel;h=h.prevSibling;while(h){if(!cm.isHidden(v.getCellIndex(h))){return h;}h=h.prevSibling;}return null;},positionIndicator:function(h,n,e){var x=Ext.lib.Event.getPageX(e);var r=Ext.lib.Dom.getRegion(n.firstChild);var px,pt,py=r.top+this.proxyOffsets[1];if((r.right-x)<=(r.right-r.left)/2){px=r.right+this.view.borderWidth;pt="after";}else{px=r.left;pt="before";}var _1f=this.view.getCellIndex(h);var _20=this.view.getCellIndex(n);var _21=this.grid.colModel.isLocked(_20);if(pt=="after"){_20++;}if(_1f<_20){_20--;}if(_1f==_20&&(_21==this.grid.colModel.isLocked(_1f))){return false;}px+=this.proxyOffsets[0];this.proxyTop.setLeftTop(px,py);this.proxyTop.show();if(!this.bottomOffset){this.bottomOffset=this.view.mainHd.getHeight();}this.proxyBottom.setLeftTop(px,py+this.proxyTop.dom.offsetHeight+this.bottomOffset);this.proxyBottom.show();return pt;},onNodeEnter:function(n,dd,e,_25){if(_25.header!=n){this.positionIndicator(_25.header,n,e);}},onNodeOver:function(n,dd,e,_29){var _2a=false;if(_29.header!=n){_2a=this.positionIndicator(_29.header,n,e);}if(!_2a){this.proxyTop.hide();this.proxyBottom.hide();}return _2a?this.dropAllowed:this.dropNotAllowed;},onNodeOut:function(n,dd,e,_2e){this.proxyTop.hide();this.proxyBottom.hide();},onNodeDrop:function(n,dd,e,_32){var h=_32.header;if(h!=n){var cm=this.grid.colModel;var x=Ext.lib.Event.getPageX(e);var r=Ext.lib.Dom.getRegion(n.firstChild);var pt=(r.right-x)<=((r.right-r.left)/2)?"after":"before";var _38=this.view.getCellIndex(h);var _39=this.view.getCellIndex(n);var _3a=cm.isLocked(_39);if(pt=="after"){_39++;}if(_38<_39){_39--;}if(_38==_39&&(_3a==cm.isLocked(_38))){return false;}cm.setLocked(_38,_3a,true);cm.moveColumn(_38,_39);this.grid.fireEvent("columnmove",_38,_39);return true;}return false;}}); - -Ext.grid.SplitDragZone=function(_1,hd,_3){this.grid=_1;this.view=_1.getView();this.proxy=this.view.resizeProxy;Ext.grid.SplitDragZone.superclass.constructor.call(this,hd,"gridSplitters"+this.grid.container.id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.setHandleElId(Ext.id(hd));this.setOuterHandleElId(Ext.id(_3));this.scroll=false;};Ext.extend(Ext.grid.SplitDragZone,Ext.dd.DDProxy,{fly:Ext.Element.fly,b4StartDrag:function(x,y){this.view.headersDisabled=true;this.proxy.setHeight(this.view.mainWrap.getHeight());var w=this.cm.getColumnWidth(this.cellIndex);var _7=Math.max(w-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(_7,1000);this.setYConstraint(0,0);this.minX=x-_7;this.maxX=x+1000;this.startPos=x;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,x,y);},handleMouseDown:function(e){ev=Ext.EventObject.setEvent(e);var t=this.fly(ev.getTarget());if(t.hasClass("x-grid-split")){this.cellIndex=this.view.getCellIndex(t.dom);this.split=t.dom;this.cm=this.grid.colModel;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex)){Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this,arguments);}}},endDrag:function(e){this.view.headersDisabled=false;var _b=Math.max(this.minX,Ext.lib.Event.getPageX(e));var _c=_b-this.startPos;this.view.onColumnSplitterMoved(this.cellIndex,this.cm.getColumnWidth(this.cellIndex)+_c);},autoOffset:function(){this.setDelta(0,0);}}); - -Ext.grid.GridDragZone=function(_1,_2){this.view=_1.getView();Ext.grid.GridDragZone.superclass.constructor.call(this,this.view.lockedBody.dom,_2);this.setHandleElId(Ext.id(this.view.lockedBody.dom));this.setOuterHandleElId(Ext.id(this.view.mainBody.dom));this.scroll=false;this.grid=_1;this.ddel=document.createElement("div");this.ddel.className="x-grid-dd-wrap";};Ext.extend(Ext.grid.GridDragZone,Ext.dd.DragZone,{ddGroup:"GridDD",getDragData:function(e){var t=Ext.lib.Event.getTarget(e);var _5=this.view.findRowIndex(t);if(_5!==false){var sm=this.grid.selModel;if(!sm.isSelected(_5)||e.hasModifier()){sm.handleMouseDown(e,t);}return {grid:this.grid,ddel:this.ddel,rowIndex:_5,selections:sm.getSelections()};}return false;},onInitDrag:function(e){var _8=this.dragData;this.ddel.innerHTML=this.grid.getDragDropText();this.proxy.update(this.ddel);},afterRepair:function(){this.dragging=false;},getRepairXY:function(e,_a){return false;},onEndDrag:function(_b,e){},onValidDrop:function(dd,e,id){this.hideProxy();},beforeInvalidDrop:function(e,id){}}); - -Ext.grid.ColumnModel=function(_1){Ext.grid.ColumnModel.superclass.constructor.call(this);this.config=_1;this.lookup={};for(var i=0,_3=_1.length;i<_3;i++){if(typeof _1[i].dataIndex=="undefined"){_1[i].dataIndex=i;}if(typeof _1[i].renderer=="string"){_1[i].renderer=Ext.util.Format[_1[i].renderer];}if(typeof _1[i].id=="undefined"){_1[i].id=i;}this.lookup[_1[i].id]=_1[i];}this.defaultWidth=100;this.defaultSortable=false;this.addEvents({"widthchange":true,"headerchange":true,"hiddenchange":true,"columnmoved":true,"columnlockchange":true});Ext.grid.ColumnModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.ColumnModel,Ext.util.Observable,{getColumnId:function(_4){return this.config[_4].id;},getColumnById:function(id){return this.lookup[id];},getIndexById:function(id){for(var i=0,_8=this.config.length;i<_8;i++){if(this.config[i].id==id){return i;}}return -1;},moveColumn:function(_9,_a){var c=this.config[_9];this.config.splice(_9,1);this.config.splice(_a,0,c);this.dataMap=null;this.fireEvent("columnmoved",this,_9,_a);},isLocked:function(_c){return this.config[_c].locked===true;},setLocked:function(_d,_e,_f){if(this.isLocked(_d)==_e){return;}this.config[_d].locked=_e;if(!_f){this.fireEvent("columnlockchange",this,_d,_e);}},getTotalLockedWidth:function(){var _10=0;for(var i=0;i0;},isSelected:function(_21){var r=typeof _21=="number"?this.grid.dataSource.getAt(_21):_21;return (r&&this.selections.key(r.id)?true:false);},isIdSelected:function(id){return (this.selections.key(id)?true:false);},handleMouseDown:function(e,t){var _26=this.grid.getView(),_27;if(this.isLocked()||(_27=_26.findRowIndex(t))===false){return;}if(e.shiftKey&&this.last!==false){var _28=this.last;this.selectRange(_28,_27,e.ctrlKey);this.last=_28;_26.focusRow(_27);}else{var _29=this.isSelected(_27);if(e.button!=0&&_29){_26.focusRow(_27);}else{if(e.ctrlKey&&_29){this.deselectRow(_27);}else{this.selectRow(_27,e.button==0&&(e.ctrlKey||e.shiftKey));_26.focusRow(_27);}}}},selectRows:function(_2a,_2b){if(!_2b){this.clearSelections();}for(var i=0,len=_2a.length;i=_2f;i--){this.selectRow(i,true);}}},deselectRange:function(_32,_33,_34){if(this.locked){return;}for(var i=_32;i<=_33;i++){this.deselectRow(i,_34);}},selectRow:function(_36,_37,_38){if(this.locked||(_36<0||_36>=this.grid.dataSource.getCount())){return;}if(this.fireEvent("beforerowselect",this,_36,_37)!==false){if(!_37||this.singleSelect){this.clearSelections();}var r=this.grid.dataSource.getAt(_36);this.selections.add(r);this.last=this.lastActive=_36;if(!_38){this.grid.getView().onRowSelect(_36);}this.fireEvent("rowselect",this,_36,r);this.fireEvent("selectionchange",this);}},deselectRow:function(_3a,_3b){if(this.locked){return;}if(this.last==_3a){this.last=false;}if(this.lastActive==_3a){this.lastActive=false;}var r=this.grid.dataSource.getAt(_3a);this.selections.remove(r);if(!_3b){this.grid.getView().onRowDeselect(_3a);}this.fireEvent("rowdeselect",this,_3a);this.fireEvent("selectionchange",this);},restoreLast:function(){if(this._last){this.last=this._last;}},acceptsNav:function(row,col,cm){return !cm.isHidden(col)&&cm.isCellEditable(col,row);},onEditorKey:function(_40,e){var k=e.getKey(),_43,g=this.grid,ed=g.activeEditor;if(k==e.TAB){ed.completeEdit();if(e.shiftKey){_43=g.walkCells(ed.row,ed.col-1,-1,this.acceptsNav,this);}else{_43=g.walkCells(ed.row,ed.col+1,1,this.acceptsNav,this);}e.stopEvent();}else{if(k==e.ENTER&&!e.ctrlKey){ed.completeEdit();if(e.shiftKey){_43=g.walkCells(ed.row-1,ed.col,-1,this.acceptsNav,this);}else{_43=g.walkCells(ed.row+1,ed.col,1,this.acceptsNav,this);}e.stopEvent();}else{if(k==e.ESC){ed.cancelEdit();}}}if(_43){g.startEditing(_43[0],_43[1]);}}}); - -Ext.grid.CellSelectionModel=function(_1){Ext.apply(this,_1);this.selection=null;this.addEvents({"beforecellselect":true,"cellselect":true,"selectionchange":true});};Ext.extend(Ext.grid.CellSelectionModel,Ext.grid.AbstractSelectionModel,{initEvents:function(){this.grid.on("mousedown",this.handleMouseDown,this);this.grid.container.on(Ext.isIE?"keydown":"keypress",this.handleKeyDown,this);var _2=this.grid.view;_2.on("refresh",this.onViewChange,this);_2.on("rowupdated",this.onRowUpdated,this);_2.on("beforerowremoved",this.clearSelections,this);_2.on("beforerowsinserted",this.clearSelections,this);if(this.grid.isEditor){this.grid.on("beforeedit",this.beforeEdit,this);}},beforeEdit:function(e){this.select(e.row,e.column,false,true,e.record);},onRowUpdated:function(v,_5,r){if(this.selection&&this.selection.record==r){v.onCellSelect(_5,this.selection.cell[1]);}},onViewChange:function(){this.clearSelections(true);},getSelectedCell:function(){return this.selection?this.selection.cell:null;},clearSelections:function(_7){var s=this.selection;if(s){if(_7!==true){this.grid.view.onCellDeselect(s.cell[0],s.cell[1]);}this.selection=null;this.fireEvent("selectionchange",this,null);}},hasSelection:function(){return this.selection?true:false;},handleMouseDown:function(e,t){var v=this.grid.getView();if(this.isLocked()){return;}var _c=v.findRowIndex(t);var _d=v.findCellIndex(t);if(_c!==false&&_d!==false){this.select(_c,_d);}},select:function(_e,_f,_10,_11,r){if(this.fireEvent("beforecellselect",this,_e,_f)!==false){this.clearSelections();r=r||this.grid.dataSource.getAt(_e);this.selection={record:r,cell:[_e,_f]};if(!_10){var v=this.grid.getView();v.onCellSelect(_e,_f);if(_11!==true){v.focusCell(_e,_f);}}this.fireEvent("cellselect",this,_e,_f);this.fireEvent("selectionchange",this,this.selection);}},isSelectable:function(_14,_15,cm){return !cm.isHidden(_15);},handleKeyDown:function(e){if(!e.isNavKeyPress()){return;}var g=this.grid,s=this.selection;if(!s){e.stopEvent();var _1a=g.walkCells(0,0,1,this.isSelectable,this);if(_1a){this.select(_1a[0],_1a[1]);}return;}var sm=this;var _1c=function(row,col,_1f){return g.walkCells(row,col,_1f,sm.isSelectable,sm);};var k=e.getKey(),r=s.cell[0],c=s.cell[1];var _23;switch(k){case e.TAB:if(e.shiftKey){_23=_1c(r,c-1,-1);}else{_23=_1c(r,c+1,1);}break;case e.DOWN:_23=_1c(r+1,c,1);break;case e.UP:_23=_1c(r-1,c,-1);break;case e.RIGHT:_23=_1c(r,c+1,1);break;case e.LEFT:_23=_1c(r,c-1,-1);break;case e.ENTER:if(g.isEditor&&!g.editing){g.startEditing(r,c);e.stopEvent();return;}break;}if(_23){this.select(_23[0],_23[1]);e.stopEvent();}},acceptsNav:function(row,col,cm){return !cm.isHidden(col)&&cm.isCellEditable(col,row);},onEditorKey:function(_27,e){var k=e.getKey(),_2a,g=this.grid,ed=g.activeEditor;if(k==e.TAB){if(e.shiftKey){_2a=g.walkCells(ed.row,ed.col-1,-1,this.acceptsNav,this);}else{_2a=g.walkCells(ed.row,ed.col+1,1,this.acceptsNav,this);}e.stopEvent();}else{if(k==e.ENTER&&!e.ctrlKey){ed.completeEdit();e.stopEvent();}else{if(k==e.ESC){ed.cancelEdit();}}}if(_2a){g.startEditing(_2a[0],_2a[1]);}}}); - -Ext.grid.EditorGrid=function(_1,_2){Ext.grid.EditorGrid.superclass.constructor.call(this,_1,_2);this.container.addClass("xedit-grid");if(!this.selModel){this.selModel=new Ext.grid.CellSelectionModel();}this.activeEditor=null;this.addEvents({"beforeedit":true,"afteredit":true,"validateedit":true});this.on("bodyscroll",this.stopEditing,this);this.on(this.clicksToEdit==1?"cellclick":"celldblclick",this.onCellDblClick,this);};Ext.extend(Ext.grid.EditorGrid,Ext.grid.Grid,{isEditor:true,clicksToEdit:2,trackMouseOver:false,onCellDblClick:function(g,_4,_5){this.startEditing(_4,_5);},onEditComplete:function(ed,_7,_8){this.editing=false;this.activeEditor=null;ed.un("specialkey",this.selModel.onEditorKey,this.selModel);if(String(_7)!=String(_8)){var r=ed.record;var _a=this.colModel.getDataIndex(ed.col);var e={grid:this,record:r,field:_a,originalValue:_8,value:_7,row:ed.row,column:ed.col,cancel:false};if(this.fireEvent("validateedit",e)!==false&&!e.cancel){r.set(_a,e.value);delete e.cancel;this.fireEvent("afteredit",e);}}this.view.focusCell(ed.row,ed.col);},startEditing:function(_c,_d){this.stopEditing();if(this.colModel.isCellEditable(_d,_c)){this.view.focusCell(_c,_d);var r=this.dataSource.getAt(_c);var _f=this.colModel.getDataIndex(_d);var e={grid:this,record:r,field:_f,value:r.data[_f],row:_c,column:_d,cancel:false};if(this.fireEvent("beforeedit",e)!==false&&!e.cancel){this.editing=true;(function(){var ed=this.colModel.getCellEditor(_d,_c);ed.row=_c;ed.col=_d;ed.record=r;ed.on("complete",this.onEditComplete,this,{single:true});ed.on("specialkey",this.selModel.onEditorKey,this.selModel);this.activeEditor=ed;var v=r.data[_f];ed.startEdit(this.view.getCell(_c,_d),v);}).defer(50,this);}}},stopEditing:function(){if(this.activeEditor){this.activeEditor.completeEdit();}this.activeEditor=null;}}); - -Ext.grid.GridEditor=function(_1,_2){Ext.grid.GridEditor.superclass.constructor.call(this,_1,_2);_1.monitorTab=false;};Ext.extend(Ext.grid.GridEditor,Ext.Editor,{alignment:"tl-tl",autoSize:"width",hideEl:false,cls:"x-small-editor x-grid-editor",shim:false,shadow:"frame"}); - -Ext.grid.PropertyRecord=Ext.data.Record.create([{name:"name",type:"string"},"value"]);Ext.grid.PropertyStore=function(_1,_2){this.grid=_1;this.store=new Ext.data.Store({recordType:Ext.grid.PropertyRecord});this.store.on("update",this.onUpdate,this);if(_2){this.setSource(_2);}Ext.grid.PropertyStore.superclass.constructor.call(this);};Ext.extend(Ext.grid.PropertyStore,Ext.util.Observable,{setSource:function(o){this.source=o;this.store.removeAll();var _4=[];for(var k in o){if(this.isEditableValue(o[k])){_4.push(new Ext.grid.PropertyRecord({name:k,value:o[k]},k));}}this.store.loadRecords({records:_4},{},true);},onUpdate:function(ds,_7,_8){if(_8==Ext.data.Record.EDIT){var v=_7.data["value"];var _a=_7.modified["value"];if(this.grid.fireEvent("beforepropertychange",this.source,_7.id,v,_a)!==false){this.source[_7.id]=v;_7.commit();this.grid.fireEvent("propertychange",this.source,_7.id,v,_a);}else{_7.reject();}}},getProperty:function(_b){return this.store.getAt(_b);},isEditableValue:function(_c){if(_c&&_c instanceof Date){return true;}else{if(typeof _c=="object"||typeof _c=="function"){return false;}}return true;},setValue:function(_d,_e){this.source[_d]=_e;this.store.getById(_d).set("value",_e);},getSource:function(){return this.source;}});Ext.grid.PropertyColumnModel=function(_f,_10){this.grid=_f;var g=Ext.grid;g.PropertyColumnModel.superclass.constructor.call(this,[{header:this.nameText,sortable:true,dataIndex:"name",id:"name"},{header:this.valueText,resizable:false,dataIndex:"value",id:"value"}]);this.store=_10;this.bselect=Ext.DomHelper.append(document.body,{tag:"select",style:"display:none",cls:"x-grid-editor",children:[{tag:"option",value:"true",html:"true"},{tag:"option",value:"false",html:"false"}]});Ext.id(this.bselect);var f=Ext.form;this.editors={"date":new g.GridEditor(new f.DateField({selectOnFocus:true})),"string":new g.GridEditor(new f.TextField({selectOnFocus:true})),"number":new g.GridEditor(new f.NumberField({selectOnFocus:true,style:"text-align:left;"})),"boolean":new g.GridEditor(new f.Field({el:this.beselect,selectOnFocus:true}))};this.renderCellDelegate=this.renderCell.createDelegate(this);this.renderPropDelegate=this.renderProp.createDelegate(this);};Ext.extend(Ext.grid.PropertyColumnModel,Ext.grid.ColumnModel,{nameText:"Name",valueText:"Value",dateFormat:"m/j/Y",renderDate:function(_13){return _13.dateFormat(this.dateFormat);},renderBool:function(_14){return _14?"true":"false";},isCellEditable:function(_15,_16){return _15==1;},getRenderer:function(col){return col==1?this.renderCellDelegate:this.renderPropDelegate;},renderProp:function(v){return this.getPropertyName(v);},renderCell:function(val){var rv=val;if(val instanceof Date){rv=this.renderDate(val);}else{if(typeof val=="boolean"){rv=this.renderBool(val);}}return Ext.util.Format.htmlEncode(rv);},getPropertyName:function(_1b){var pn=this.grid.propertyNames;return pn&&pn[_1b]?pn[_1b]:_1b;},getCellEditor:function(_1d,_1e){var p=this.store.getProperty(_1e);var n=p.data["name"],val=p.data["value"];if(this.grid.customEditors[n]){return this.grid.customEditors[n];}if(val instanceof Date){return this.editors["date"];}else{if(typeof val=="number"){return this.editors["number"];}else{if(typeof val=="boolean"){return this.editors["boolean"];}else{return this.editors["string"];}}}}});Ext.grid.PropertyGrid=function(_22,_23){_23=_23||{};var _24=new Ext.grid.PropertyStore(this);this.store=_24;var cm=new Ext.grid.PropertyColumnModel(this,_24);_24.store.sort("name","ASC");Ext.grid.PropertyGrid.superclass.constructor.call(this,_22,Ext.apply({ds:_24.store,cm:cm,enableColLock:false,enableColumnMove:false,stripeRows:false,trackMouseOver:false,clicksToEdit:1},_23));this.container.addClass("x-props-grid");this.lastEditRow=null;this.on("columnresize",this.onColumnResize,this);this.addEvents({beforepropertychange:true,propertychange:true});this.customEditors=this.customEditors||{};};Ext.extend(Ext.grid.PropertyGrid,Ext.grid.EditorGrid,{render:function(){Ext.grid.PropertyGrid.superclass.render.call(this);this.autoSize.defer(100,this);},autoSize:function(){Ext.grid.PropertyGrid.superclass.autoSize.call(this);if(this.view){this.view.fitColumns();}},onColumnResize:function(){this.colModel.setColumnWidth(1,this.container.getWidth(true)-this.colModel.getColumnWidth(0));this.autoSize();},setSource:function(_26){this.store.setSource(_26);},getSource:function(){return this.store.getSource();}}); - -Ext.LoadMask=function(el,_2){this.el=Ext.get(el);Ext.apply(this,_2);if(this.store){this.store.on("beforeload",this.onBeforeLoad,this);this.store.on("load",this.onLoad,this);this.store.on("loadexception",this.onLoad,this);this.removeMask=false;}else{var um=this.el.getUpdateManager();um.showLoadIndicator=false;um.on("beforeupdate",this.onBeforeLoad,this);um.on("update",this.onLoad,this);um.on("failure",this.onLoad,this);this.removeMask=true;}};Ext.LoadMask.prototype={msg:"Loading...",msgCls:"x-mask-loading",disabled:false,disable:function(){this.disabled=true;},enable:function(){this.disabled=false;},onLoad:function(){this.el.unmask(this.removeMask);},onBeforeLoad:function(){if(!this.disabled){this.el.mask(this.msg,this.msgCls);}},destroy:function(){if(this.store){this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("loadexception",this.onLoad,this);}else{var um=this.el.getUpdateManager();um.un("beforeupdate",this.onBeforeLoad,this);um.un("update",this.onLoad,this);um.un("failure",this.onLoad,this);}}}; - -Ext.debug={init:function(){var CP=Ext.ContentPanel;var bd=Ext.get(document.body);var _3=new Ext.LayoutDialog("x-debug-browser",{autoCreate:true,width:800,height:450,title:"Ext Debug Console & Inspector",proxyDrag:true,shadow:true,center:{alwaysShowTabs:true},constraintoviewport:false});_3.el.swallowEvent("click");var _4=_3.getLayout();_4.beginUpdate();var _5=_4.add("center",new Ext.debug.InnerLayout("x-debug-console",400,{title:"Debug Console"}));var _6=_4.add("center",new Ext.debug.InnerLayout("x-debug-inspector",250,{title:"DOM Inspector"}));var _7=_5.add("east",new CP({autoCreate:{tag:"div",children:[{tag:"div"},{tag:"textarea"}]},fitContainer:true,fitToFrame:true,title:"Script Console",autoScroll:Ext.isGecko,setSize:function(w,h){Ext.ContentPanel.prototype.setSize.call(this,w,h);if(Ext.isGecko&&Ext.isStrict){var s=this.adjustForComponents(w,h);this.resizeEl.setSize(s.width-2,s.height-2);}}}));var _b=_7.el;var _c=_b.child("textarea");_7.resizeEl=_c;var _d=_7.toolbar=new Ext.Toolbar(_b.child("div"));_d.add({text:"Run",handler:function(){var s=_c.dom.value;if(_f.checked){try{var rt=eval(s);Ext.debug.dump(rt===undefined?"(no return)":rt);}catch(e){Ext.debug.log(e.message||e.descript);}}else{var rt=eval(s);Ext.debug.dump(rt===undefined?"(no return)":rt);}}},{text:"Clear",handler:function(){_c.dom.value="";_c.dom.focus();}});var _f=Ext.DomHelper.append(_d.el,{tag:"input",type:"checkbox",checked:"checked"});_f.checked=true;_d.add("-",_f,"Trap Errors");var _11=new Ext.grid.PropertyGrid(bd.createChild(),{nameText:"Style",enableCtxMenu:false,enableColumnResize:false});var _12=_6.add("east",new Ext.GridPanel(_11,{title:"(No element selected)"}));_11.render();_11.getView().mainHd.setDisplayed(false);_5.tbar.add({text:"Clear",handler:function(){Ext.debug.console.jsonData=[];Ext.debug.console.refresh();}});var _13=_6.main.getEl();var tb=_6.tbar;var _15,_16;function inspectListener(e,t){if(!_15.contains(e.getPoint())){findNode(t);}}function stopInspecting(e,t){if(!_15.contains(e.getPoint())){_1b.toggle(false);if(findNode(t)!==false){e.stopEvent();}}}function stopInspectingEsc(e,t){if(e.getKey()==e.ESC){_1b.toggle(false);}}var _1b=tb.addButton({text:"Inspect",enableToggle:true,pressed:false,toggleHandler:function(n,_1f){var d=Ext.get(document);if(_1f){d.on("mouseover",inspectListener,window,{buffer:50});d.on("mousedown",stopInspecting);d.on("keydown",stopInspectingEsc);_15=_3.el.getRegion();_16=true;}else{d.un("mouseover",inspectListener);d.un("mousedown",stopInspecting);d.on("keydown",stopInspectingEsc);_16=false;var n=_21.getSelectionModel().getSelectedNode();if(n&&n.htmlNode){onNodeSelect(_21,n,false);}}}});tb.addSeparator();var _22=tb.addButton({text:"Highlight Selection",enableToggle:true,pressed:false,toggleHandler:function(n,_24){var n=_21.getSelectionModel().getSelectedNode();if(n&&n.htmlNode){n[_24?"frame":"unframe"]();}}});tb.addSeparator();var _25=tb.addButton({text:"Refresh Children",disabled:true,handler:function(){var n=_21.getSelectionModel().getSelectedNode();if(n&&n.reload){n.reload();}}});tb.add("-",{text:"Collapse All",handler:function(){_21.root.collapse(true);}});_4.endUpdate();_4.getRegion("center").showPanel(0);_11.on("propertychange",function(s,_28,_29){var _2a=_11.treeNode;if(_2b){_2a.htmlNode.style[_28]=_29;}else{_2a.htmlNode[_28]=_29;}_2a.refresh(true);});var stb=new Ext.Toolbar(_11.view.getHeaderPanel(true));var _2d=stb.addButton({text:"DOM Attributes",menu:{items:[new Ext.menu.CheckItem({id:"dom",text:"DOM Attributes",checked:true,group:"xdb-styles"}),new Ext.menu.CheckItem({id:"styles",text:"CSS Properties",group:"xdb-styles"})]}});_2d.menu.on("click",function(){_2b=_2d.menu.items.get("styles").checked;_2e[_2b?"show":"hide"]();_2d.setText(_2b?"CSS Properties":"DOM Attributes");var n=_21.getSelectionModel().getSelectedNode();if(n){onNodeSelect(_21,n);}});var _30=stb.addButton({text:"Add",disabled:true,handler:function(){Ext.MessageBox.prompt("Add Property","Property Name:",function(btn,v){var _33=_11.store.store;if(btn=="ok"&&v&&!_33.getById(v)){var r=new Ext.grid.PropertyRecord({name:v,value:""},v);_33.add(r);_11.startEditing(_33.getCount()-1,1);}});}});var _2e=stb.addButton({text:"Computed Styles",hidden:true,pressed:false,enableToggle:true,toggleHandler:function(){var n=_21.getSelectionModel().getSelectedNode();if(n){onNodeSelect(_21,n);}}});var _2b=false,_36;var _37=/^\s*$/;var _38=Ext.util.Format.htmlEncode;var _39=Ext.util.Format.ellipsis;var _3a=/\s?([a-z\-]*)\:([^;]*)(?:[;\s\n\r]*)/gi;function findNode(n){if(!n||n.nodeType!=1||n==document.body||n==document){return false;}var pn=[n],p=n;while((p=p.parentNode)&&p.nodeType==1&&p.tagName.toUpperCase()!="HTML"){pn.unshift(p);}var cn=_36;for(var i=0,len=pn.length;i"+_39(_38(String(c.nodeValue)),35)+"",cls:"x-tree-noicon"}));}}}cb();};var _21=new Ext.tree.TreePanel(_13,{enableDD:false,loader:_57,lines:false,rootVisible:false,animate:false,hlColor:"ffff9c"});_21.getSelectionModel().on("selectionchange",onNodeSelect,null,{buffer:250});var _5e=_21.setRootNode(new Ext.tree.TreeNode("Ext"));_36=_5e.appendChild(new Ext.debug.HtmlNode(document.getElementsByTagName("html")[0]));_21.render();Ext.debug.console=new Ext.JsonView(_5.main.getEl(),"
      > {msg}
      ");Ext.debug.console.jsonData=[];Ext.debug.dialog=_3;},show:function(){var d=Ext.debug;if(!d.dialog){d.init();}if(!d.dialog.isVisible()){d.dialog.show();}},hide:function(){if(Ext.debug.dialog){Ext.debug.dialog.hide();}},log:function(_60,_61,etc){Ext.debug.show();var m="";for(var i=0,len=arguments.length;i3){s=s.substr(0,s.length-2);}Ext.debug.log(s+"\n}");}}}}},_timers:{},time:function(_70){_70=_70||"def";Ext._timers[_70]=new Date().getTime();},timeEnd:function(_71,_72){var t=new Date().getTime();_71=_71||"def";var v=String.format("{0} ms",t-Ext._timers[_71]);Ext._timers[_71]=new Date().getTime();if(_72!==false){Ext.debug.log("Timer "+(_71=="def"?v:_71+": "+v));}return v;}};Ext.debug.HtmlNode=function(){var _75=Ext.util.Format.htmlEncode;var _76=Ext.util.Format.ellipsis;var _77=/^\s*$/;var _78=[{n:"id",v:"id"},{n:"className",v:"class"},{n:"name",v:"name"},{n:"type",v:"type"},{n:"src",v:"src"},{n:"href",v:"href"}];function hasChild(n){for(var i=0,c;c=n.childNodes[i];i++){if(c.nodeType==1){return true;}}return false;}function renderNode(n,_7d){var tag=n.tagName.toLowerCase();var s="<"+tag;for(var i=0,len=_78.length;i"+_75(v)+""";}}var _84=n.style?n.style.cssText:"";if(_84){s+=" style=""+_75(_84.toLowerCase())+""";}if(_7d&&n.childNodes.length>0){s+=">"+_76(_75(String(n.innerHTML)),35)+"</"+tag+">";}else{if(_7d){s+=" />";}else{s+=">";}}return s;}var _85=function(n){var _87=!hasChild(n);this.htmlNode=n;this.tagName=n.tagName.toLowerCase();var _88={text:renderNode(n,_87),leaf:_87,cls:"x-tree-noicon"};_85.superclass.constructor.call(this,_88);this.attributes.htmlNode=n;if(!_87){this.on("expand",this.onExpand,this);this.on("collapse",this.onCollapse,this);}};Ext.extend(_85,Ext.tree.AsyncTreeNode,{cls:"x-tree-noicon",preventHScroll:true,refresh:function(_89){var _8a=!hasChild(this.htmlNode);this.setText(renderNode(this.htmlNode,_8a));if(_89){Ext.fly(this.ui.textNode).highlight();}},onExpand:function(){if(!this.closeNode&&this.parentNode){this.closeNode=this.parentNode.insertBefore(new Ext.tree.TreeNode({text:"</"+this.tagName+">",cls:"x-tree-noicon"}),this.nextSibling);}else{if(this.closeNode){this.closeNode.ui.show();}}},onCollapse:function(){if(this.closeNode){this.closeNode.ui.hide();}},render:function(_8b){_85.superclass.render.call(this,_8b);},highlightNode:function(){},highlight:function(){},frame:function(){this.htmlNode.style.border="1px solid #0000ff";},unframe:function(){this.htmlNode.style.border="";}});return _85;}();Ext.debug.InnerLayout=function(id,w,cfg){var el=Ext.DomHelper.append(document.body,{id:id});var _90=new Ext.BorderLayout(el,{north:{initialSize:28},center:{titlebar:false},east:{split:true,initialSize:w,titlebar:true}});Ext.debug.InnerLayout.superclass.constructor.call(this,_90,cfg);_90.beginUpdate();var _91=_90.add("north",new Ext.ContentPanel({autoCreate:true,fitToFrame:true}));this.main=_90.add("center",new Ext.ContentPanel({autoCreate:true,fitToFrame:true,autoScroll:true}));this.tbar=new Ext.Toolbar(_91.el);var _92=_91.resizeEl=_91.el.child("div.x-toolbar");_92.setStyle("border-bottom","0 none");_90.endUpdate(true);};Ext.extend(Ext.debug.InnerLayout,Ext.NestedLayoutPanel,{add:function(){return this.layout.add.apply(this.layout,arguments);}});Ext.debug.cssList=["background-color","border","border-color","border-spacing","border-style","border-top","border-right","border-bottom","border-left","border-top-color","border-right-color","border-bottom-color","border-left-color","border-top-width","border-right-width","border-bottom-width","border-left-width","border-width","bottom","color","font-size","font-size-adjust","font-stretch","font-style","height","left","letter-spacing","line-height","margin","margin-top","margin-right","margin-bottom","margin-left","marker-offset","max-height","max-width","min-height","min-width","orphans","outline","outline-color","outline-style","outline-width","overflow","padding","padding-top","padding-right","padding-bottom","padding-left","quotes","right","size","text-indent","top","width","word-spacing","z-index","opacity","outline-offset"];if(typeof console=="undefined"){console=Ext.debug;}Ext.EventManager.on(window,"load",function(){Ext.get(document).on("keydown",function(e){if(e.ctrlKey&&e.shiftKey&&e.getKey()==e.HOME){Ext.debug.show();}});});Ext.print=Ext.log=Ext.debug.log;Ext.printf=Ext.logf=Ext.debug.logf;Ext.dump=Ext.debug.dump;Ext.timer=Ext.debug.time;Ext.timerEnd=Ext.debug.timeEnd; - diff --git a/www/extras/extjs/ext-back-compat.js b/www/extras/extjs/ext-back-compat.js deleted file mode 100644 index ae056d937..000000000 --- a/www/extras/extjs/ext-back-compat.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -YAHOO.ext=Ext;YAHOO.extendX=Ext.extend;YAHOO.namespaceX=Ext.namespace;Ext.Strict=Ext.isStrict;Ext.util.Config={};Ext.util.Config.apply=Ext.apply;Ext.util.Browser=Ext;YAHOO.override=Ext.override;YAHOO.util.CustomEvent.prototype.fireDirect=function(){var _1=this.subscribers.length;for(var i=0;i<_1;++i){var s=this.subscribers[i];if(s){var _4=(s.override)?s.obj:this.scope;if(s.fn.apply(_4,arguments)===false){return false;}}}return true;};Ext.apply(Ext.util.Observable.prototype,{delayedListener:function(_5,fn,_7,_8){return this.addListener(_5,fn,{scope:_7,delay:_8||10});},bufferedListener:function(_9,fn,_b,_c){return this.addListener(_9,fn,{scope:_b,buffer:_c||250});}});Ext.apply(Ext.Element.prototype,{getChildrenByTagName:function(_d){var _e=this.dom.getElementsByTagName(_d);var _f=_e.length;var ce=new Array(_f);for(var i=0;i<_f;++i){ce[i]=El.get(_e[i],true);}return ce;},getChildrenByClassName:function(_12,_13){var _14=D.getElementsByClassName(_12,_13,this.dom);var len=_14.length;var ce=new Array(len);for(var i=0;i0){_53.defer((_4f/2)*1000,this);}else{if(typeof _51=="function"){_51();}}};_53.call(this);};this.addAsyncCall(_50,0,null,this);return this;}});})();Ext.Actor.Action=function(_56,_57,_58){this.actor=_56;this.method=_57;this.args=_58;};Ext.Actor.Action.prototype={play:function(_59){this.method.apply(this.actor||window,this.args);_59();}};Ext.Actor.AsyncAction=function(_5a,_5b,_5c,_5d){Ext.Actor.AsyncAction.superclass.constructor.call(this,_5a,_5b,_5c);this.onIndex=_5d;this.originalCallback=this.args[_5d];};Ext.extend(Ext.Actor.AsyncAction,Ext.Actor.Action,{play:function(_5e){var _5f=this.originalCallback?this.originalCallback.createSequence(_5e):_5e;this.args[this.onIndex]=_5f;this.method.apply(this.actor,this.args);}});Ext.Actor.PauseAction=function(_60){this.seconds=_60;};Ext.Actor.PauseAction.prototype={play:function(_61){setTimeout(_61,this.seconds*1000);}}; - -Ext.Animator=function(){this.actors=[];this.playlist=new Ext.Animator.AnimSequence();this.captureDelegate=this.capture.createDelegate(this);this.playDelegate=this.play.createDelegate(this);this.syncing=false;this.stopping=false;this.playing=false;for(var i=0;i=this.sequences.length&&this.onComplete){this.onComplete();}},stop:function(){for(var i=0;i"; - } - return b; - }; - - - - var createDom = function(o, parentNode){ - var el = document.createElement(o.tag); - var useSet = el.setAttribute ? true : false; - for(var attr in o){ - if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || attr == "style" || typeof o[attr] == "function") continue; - if(attr=="cls"){ - el.className = o["cls"]; - }else{ - if(useSet) el.setAttribute(attr, o[attr]); - else el[attr] = o[attr]; - } - } - Ext.DomHelper.applyStyles(el, o.style); - var cn = o.children || o.cn; - if(cn){ - if(cn instanceof Array){ - for(var i = 0, len = cn.length; i < len; i++) { - createDom(cn[i], el); - } - }else{ - createDom(cn, el); - } - } - if(o.html){ - el.innerHTML = o.html; - } - if(parentNode){ - parentNode.appendChild(el); - } - return el; - }; - - var ieTable = function(depth, s, h, e){ - tempTableEl.innerHTML = [s, h, e].join(''); - var i = -1, el = tempTableEl; - while(++i < depth){ - el = el.firstChild; - } - return el; - }; - - - var ts = '', - te = '
      ', - tbs = ts+'', - tbe = ''+te, - trs = tbs + '', - tre = ''+tbe; - - - var insertIntoTable = function(tag, where, el, html){ - if(!tempTableEl){ - tempTableEl = document.createElement('div'); - } - var node; - var before = null; - if(tag == 'td'){ - if(where == 'afterbegin' || where == 'beforeend'){ - return; - } - if(where == 'beforebegin'){ - before = el; - el = el.parentNode; - } else{ - before = el.nextSibling; - el = el.parentNode; - } - node = ieTable(4, trs, html, tre); - } - else if(tag == 'tr'){ - if(where == 'beforebegin'){ - before = el; - el = el.parentNode; - node = ieTable(3, tbs, html, tbe); - } else if(where == 'afterend'){ - before = el.nextSibling; - el = el.parentNode; - node = ieTable(3, tbs, html, tbe); - } else{ - if(where == 'afterbegin'){ - before = el.firstChild; - } - node = ieTable(4, trs, html, tre); - } - } else if(tag == 'tbody'){ - if(where == 'beforebegin'){ - before = el; - el = el.parentNode; - node = ieTable(2, ts, html, te); - } else if(where == 'afterend'){ - before = el.nextSibling; - el = el.parentNode; - node = ieTable(2, ts, html, te); - } else{ - if(where == 'afterbegin'){ - before = el.firstChild; - } - node = ieTable(3, tbs, html, tbe); - } - } else{ - if(where == 'beforebegin' || where == 'afterend'){ - return; - } - if(where == 'afterbegin'){ - before = el.firstChild; - } - node = ieTable(2, ts, html, te); - } - el.insertBefore(node, before); - return node; - }; - - return { - - useDom : false, - - - markup : function(o){ - return createHtml(o); - }, - - - applyStyles : function(el, styles){ - if(styles){ - el = Ext.fly(el); - if(typeof styles == "string"){ - var re = /\s?([a-z\-]*)\:\s?([^;]*);?/gi; - var matches; - while ((matches = re.exec(styles)) != null){ - el.setStyle(matches[1], matches[2]); - } - }else if (typeof styles == "object"){ - for (var style in styles){ - el.setStyle(style, styles[style]); - } - }else if (typeof styles == "function"){ - Ext.DomHelper.applyStyles(el, styles.call()); - } - } - }, - - - insertHtml : function(where, el, html){ - where = where.toLowerCase(); - if(el.insertAdjacentHTML){ - var tag = el.tagName.toLowerCase(); - if(tag == "table" || tag == "tbody" || tag == "tr" || tag == 'td'){ - var rs; - if(rs = insertIntoTable(tag, where, el, html)){ - return rs; - } - } - switch(where){ - case "beforebegin": - el.insertAdjacentHTML(where, html); - return el.previousSibling; - case "afterbegin": - el.insertAdjacentHTML(where, html); - return el.firstChild; - case "beforeend": - el.insertAdjacentHTML(where, html); - return el.lastChild; - case "afterend": - el.insertAdjacentHTML(where, html); - return el.nextSibling; - } - throw 'Illegal insertion point -> "' + where + '"'; - } - var range = el.ownerDocument.createRange(); - var frag; - switch(where){ - case "beforebegin": - range.setStartBefore(el); - frag = range.createContextualFragment(html); - el.parentNode.insertBefore(frag, el); - return el.previousSibling; - case "afterbegin": - if(el.firstChild){ - range.setStartBefore(el.firstChild); - frag = range.createContextualFragment(html); - el.insertBefore(frag, el.firstChild); - return el.firstChild; - }else{ - el.innerHTML = html; - return el.firstChild; - } - case "beforeend": - if(el.lastChild){ - range.setStartAfter(el.lastChild); - frag = range.createContextualFragment(html); - el.appendChild(frag); - return el.lastChild; - }else{ - el.innerHTML = html; - return el.lastChild; - } - case "afterend": - range.setStartAfter(el); - frag = range.createContextualFragment(html); - el.parentNode.insertBefore(frag, el.nextSibling); - return el.nextSibling; - } - throw 'Illegal insertion point -> "' + where + '"'; - }, - - - insertBefore : function(el, o, returnElement){ - return this.doInsert(el, o, returnElement, "beforeBegin"); - }, - - - insertAfter : function(el, o, returnElement){ - return this.doInsert(el, o, returnElement, "afterEnd", "nextSibling"); - }, - - - insertFirst : function(el, o, returnElement){ - return this.doInsert(el, o, returnElement, "afterBegin"); - }, - - - doInsert : function(el, o, returnElement, pos, sibling){ - el = Ext.getDom(el); - var newNode; - if(this.useDom){ - newNode = createDom(o, null); - el.parentNode.insertBefore(newNode, sibling ? el[sibling] : el); - }else{ - var html = createHtml(o); - newNode = this.insertHtml(pos, el, html); - } - return returnElement ? Ext.get(newNode, true) : newNode; - }, - - - append : function(el, o, returnElement){ - el = Ext.getDom(el); - var newNode; - if(this.useDom){ - newNode = createDom(o, null); - el.appendChild(newNode); - }else{ - var html = createHtml(o); - newNode = this.insertHtml("beforeEnd", el, html); - } - return returnElement ? Ext.get(newNode, true) : newNode; - }, - - - overwrite : function(el, o, returnElement){ - el = Ext.getDom(el); - el.innerHTML = createHtml(o); - return returnElement ? Ext.get(el.firstChild, true) : el.firstChild; - }, - - - createTemplate : function(o){ - var html = createHtml(o); - return new Ext.Template(html); - } - }; -}(); - - -Ext.Template = function(html){ - if(html instanceof Array){ - html = html.join(""); - }else if(arguments.length > 1){ - html = Array.prototype.join.call(arguments, ""); - } - - this.html = html; - -}; -Ext.Template.prototype = { - - applyTemplate : function(values){ - if(this.compiled){ - return this.compiled(values); - } - var useF = this.disableFormats !== true; - var fm = Ext.util.Format, tpl = this; - var fn = function(m, name, format, args){ - if(format && useF){ - if(format.substr(0, 5) == "this."){ - return tpl.call(format.substr(5), values[name]); - }else{ - if(args){ - - - - var re = /^\s*['"](.*)["']\s*$/; - args = args.split(','); - for(var i = 0, len = args.length; i < len; i++){ - args[i] = args[i].replace(re, "$1"); - } - args = [values[name]].concat(args); - }else{ - args = [values[name]]; - } - return fm[format].apply(fm, args); - } - }else{ - return values[name] !== undefined ? values[name] : ""; - } - }; - return this.html.replace(this.re, fn); - }, - - - set : function(html, compile){ - this.html = html; - this.compiled = null; - if(compile){ - this.compile(); - } - return this; - }, - - - disableFormats : false, - - - re : /\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g, - - - compile : function(){ - var fm = Ext.util.Format; - var useF = this.disableFormats !== true; - var sep = Ext.isGecko ? "+" : ","; - var fn = function(m, name, format, args){ - if(format && useF){ - args = args ? ',' + args : ""; - if(format.substr(0, 5) != "this."){ - format = "fm." + format + '('; - }else{ - format = 'this.call("'+ format.substr(5) + '", '; - args = ""; - } - }else{ - args= '', format = "(values['" + name + "'] == undefined ? '' : "; - } - return "'"+ sep + format + "values['" + name + "']" + args + ")"+sep+"'"; - }; - var body; - - if(Ext.isGecko){ - body = "this.compiled = function(values){ return '" + - this.html.replace(/(\r\n|\n)/g, '\\n').replace("'", "\\'").replace(this.re, fn) + - "';};"; - }else{ - body = ["this.compiled = function(values){ return ['"]; - body.push(this.html.replace(/(\r\n|\n)/g, '\\n').replace("'", "\\'").replace(this.re, fn)); - body.push("'].join('');};"); - body = body.join(''); - } - eval(body); - return this; - }, - - - call : function(fnName, value){ - return this[fnName](value); - }, - - - insertFirst: function(el, values, returnElement){ - return this.doInsert('afterBegin', el, values, returnElement); - }, - - - insertBefore: function(el, values, returnElement){ - return this.doInsert('beforeBegin', el, values, returnElement); - }, - - - insertAfter : function(el, values, returnElement){ - return this.doInsert('afterEnd', el, values, returnElement); - }, - - - append : function(el, values, returnElement){ - return this.doInsert('beforeEnd', el, values, returnElement); - }, - - doInsert : function(where, el, values, returnEl){ - el = Ext.getDom(el); - var newNode = Ext.DomHelper.insertHtml(where, el, this.applyTemplate(values)); - return returnEl ? Ext.get(newNode, true) : newNode; - }, - - - overwrite : function(el, values, returnElement){ - el = Ext.getDom(el); - el.innerHTML = this.applyTemplate(values); - return returnElement ? Ext.get(el.firstChild, true) : el.firstChild; - } -}; - -Ext.Template.prototype.apply = Ext.Template.prototype.applyTemplate; - - -Ext.DomHelper.Template = Ext.Template; - - -Ext.Template.from = function(el){ - el = Ext.getDom(el); - return new Ext.Template(el.value || el.innerHTML); -}; - - -Ext.MasterTemplate = function(){ - Ext.MasterTemplate.superclass.constructor.apply(this, arguments); - this.originalHtml = this.html; - var st = {}; - var m, re = this.subTemplateRe; - re.lastIndex = 0; - var subIndex = 0; - while(m = re.exec(this.html)){ - var name = m[1], content = m[2]; - st[subIndex] = { - name: name, - index: subIndex, - buffer: [], - tpl : new Ext.Template(content) - }; - if(name){ - st[name] = st[subIndex]; - } - st[subIndex].tpl.compile(); - st[subIndex].tpl.call = this.call.createDelegate(this); - subIndex++; - } - this.subCount = subIndex; - this.subs = st; -}; -Ext.extend(Ext.MasterTemplate, Ext.Template, { - - subTemplateRe : /((?:.|\n)*?)<\/tpl>/gi, - - - add : function(name, values){ - if(arguments.length == 1){ - values = arguments[0]; - name = 0; - } - var s = this.subs[name]; - s.buffer[s.buffer.length] = s.tpl.apply(values); - return this; - }, - - - fill : function(name, values, reset){ - var a = arguments; - if(a.length == 1 || (a.length == 2 && typeof a[1] == "boolean")){ - values = a[0]; - name = 0; - reset = a[1]; - } - if(reset){ - this.reset(); - } - for(var i = 0, len = values.length; i < len; i++){ - this.add(name, values[i]); - } - return this; - }, - - - reset : function(){ - var s = this.subs; - for(var i = 0; i < this.subCount; i++){ - s[i].buffer = []; - } - return this; - }, - - applyTemplate : function(values){ - var s = this.subs; - var replaceIndex = -1; - this.html = this.originalHtml.replace(this.subTemplateRe, function(m, name){ - return s[++replaceIndex].buffer.join(""); - }); - return Ext.MasterTemplate.superclass.applyTemplate.call(this, values); - }, - - apply : function(){ - return this.applyTemplate.apply(this, arguments); - }, - - compile : function(){return this;} -}); - - -Ext.MasterTemplate.prototype.addAll = Ext.MasterTemplate.prototype.fill; - -Ext.MasterTemplate.from = function(el){ - el = Ext.getDom(el); - return new Ext.MasterTemplate(el.value || el.innerHTML); -}; - - -Ext.DomQuery = function(){ - var cache = {}, simpleCache = {}, valueCache = {}; - var nonSpace = /\S/; - var trimRe = /^\s+|\s+$/g; - var tplRe = /\{(\d+)\}/g; - var modeRe = /^(\s?[\/>]\s?|\s|$)/; - var tagTokenRe = /^(#)?([\w-\*]+)/; - - function child(p, index){ - var i = 0; - var n = p.firstChild; - while(n){ - if(n.nodeType == 1){ - if(++i == index){ - return n; - } - } - n = n.nextSibling; - } - return null; - }; - - function next(n){ - while((n = n.nextSibling) && n.nodeType != 1); - return n; - }; - - function prev(n){ - while((n = n.previousSibling) && n.nodeType != 1); - return n; - }; - - function clean(d){ - var n = d.firstChild, ni = -1; - while(n){ - var nx = n.nextSibling; - if(n.nodeType == 3 && !nonSpace.test(n.nodeValue)){ - d.removeChild(n); - }else{ - n.nodeIndex = ++ni; - } - n = nx; - } - return this; - }; - - function byClassName(c, a, v, re, cn){ - if(!v){ - return c; - } - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - cn = ci.className; - if(cn && (' '+cn+' ').indexOf(v) != -1){ - r[r.length] = ci; - } - } - return r; - }; - - function attrValue(n, attr){ - if(!n.tagName && typeof n.length != "undefined"){ - n = n[0]; - } - if(!n){ - return null; - } - if(attr == "for"){ - return n.htmlFor; - } - if(attr == "class" || attr == "className"){ - return n.className; - } - return n.getAttribute(attr) || n[attr]; - - }; - - function getNodes(ns, mode, tagName){ - var result = [], cs; - if(!ns){ - return result; - } - mode = mode ? mode.replace(trimRe, "") : ""; - tagName = tagName || "*"; - if(typeof ns.getElementsByTagName != "undefined"){ - ns = [ns]; - } - if(mode != "/" && mode != ">"){ - for(var i = 0, ni; ni = ns[i]; i++){ - cs = ni.getElementsByTagName(tagName); - for(var j = 0, ci; ci = cs[j]; j++){ - result[result.length] = ci; - } - } - }else{ - for(var i = 0, ni; ni = ns[i]; i++){ - var cn = ni.getElementsByTagName(tagName); - for(var j = 0, cj; cj = cn[j]; j++){ - if(cj.parentNode == ni){ - result[result.length] = cj; - } - } - } - } - return result; - }; - - function concat(a, b){ - if(b.slice){ - return a.concat(b); - } - for(var i = 0, l = b.length; i < l; i++){ - a[a.length] = b[i]; - } - return a; - } - - function byTag(cs, tagName){ - if(cs.tagName || cs == document){ - cs = [cs]; - } - if(!tagName){ - return cs; - } - var r = []; tagName = tagName.toLowerCase(); - for(var i = 0, ci; ci = cs[i]; i++){ - if(ci.nodeType == 1 && ci.tagName.toLowerCase()==tagName){ - r[r.length] = ci; - } - } - return r; - }; - - function byId(cs, attr, id){ - if(cs.tagName || cs == document){ - cs = [cs]; - } - if(!id){ - return cs; - } - var r = []; - for(var i = 0,ci; ci = cs[i]; i++){ - if(ci && ci.id == id){ - r[r.length] = ci; - return r; - } - } - return r; - }; - - function byAttribute(cs, attr, value, op, custom){ - var r = [], st = custom=="{"; - var f = Ext.DomQuery.operators[op]; - for(var i = 0; ci = cs[i]; i++){ - var a; - if(st){ - a = Ext.DomQuery.getStyle(ci, attr); - } - else if(attr == "class" || attr == "className"){ - a = ci.className; - }else if(attr == "for"){ - a = ci.htmlFor; - }else if(attr == "href"){ - a = ci.getAttribute("href", 2); - }else{ - a = ci.getAttribute(attr); - } - if((f && f(a, value)) || (!f && a)){ - r[r.length] = ci; - } - } - return r; - }; - - function byPseudo(cs, name, value){ - return Ext.DomQuery.pseudos[name](cs, value); - }; - - - - - var isIE = window.ActiveXObject ? true : false; - - var key = 30803; - - function nodupIEXml(cs){ - var d = ++key; - cs[0].setAttribute("_nodup", d); - var r = [cs[0]]; - for(var i = 1, len = cs.length; i < len; i++){ - var c = cs[i]; - if(!c.getAttribute("_nodup") != d){ - c.setAttribute("_nodup", d); - r[r.length] = c; - } - } - for(var i = 0, len = cs.length; i < len; i++){ - cs[i].removeAttribute("_nodup"); - } - return r; - } - - function nodup(cs){ - if(!cs){ - return []; - } - var len = cs.length, c, i, r = cs, cj; - if(!len || typeof cs.nodeType != "undefined" || len == 1){ - return cs; - } - if(isIE && typeof cs[0].selectSingleNode != "undefined"){ - return nodupIEXml(cs); - } - var d = ++key; - cs[0]._nodup = d; - for(i = 1; c = cs[i]; i++){ - if(c._nodup != d){ - c._nodup = d; - }else{ - r = []; - for(var j = 0; j < i; j++){ - r[r.length] = cs[j]; - } - for(j = i+1; cj = cs[j]; j++){ - if(cj._nodup != d){ - cj._nodup = d; - r[r.length] = cj; - } - } - return r; - } - } - return r; - } - - function quickDiffIEXml(c1, c2){ - var d = ++key; - for(var i = 0, len = c1.length; i < len; i++){ - c1[i].setAttribute("_qdiff", d); - } - var r = []; - for(var i = 0, len = c2.length; i < len; i++){ - if(c2[i].getAttribute("_qdiff") != d){ - r[r.length] = c2[i]; - } - } - for(var i = 0, len = c1.length; i < len; i++){ - c1[i].removeAttribute("_qdiff"); - } - return r; - } - - function quickDiff(c1, c2){ - var len1 = c1.length; - if(!len1){ - return c2; - } - if(isIE && c1[0].selectSingleNode){ - return quickDiffIEXml(c1, c2); - } - var d = ++key; - for(var i = 0; i < len1; i++){ - c1[i]._qdiff = d; - } - var r = []; - for(var i = 0, len = c2.length; i < len; i++){ - if(c2[i]._qdiff != d){ - r[r.length] = c2[i]; - } - } - return r; - } - - function quickId(ns, mode, root, id){ - if(ns == root){ - var d = root.ownerDocument || root; - return d.getElementById(id); - } - ns = getNodes(ns, mode, "*"); - return byId(ns, null, id); - } - - return { - getStyle : function(el, name){ - return Ext.fly(el).getStyle(name); - }, - - compile : function(path, type){ - - while(path.substr(0, 1)=="/"){ - path = path.substr(1); - } - type = type || "select"; - - var fn = ["var f = function(root){\n var mode; var n = root || document;\n"]; - var q = path, mode, lq; - var tk = Ext.DomQuery.matchers; - var tklen = tk.length; - var mm; - while(q && lq != q){ - lq = q; - var tm = q.match(tagTokenRe); - if(type == "select"){ - if(tm){ - if(tm[1] == "#"){ - fn[fn.length] = 'n = quickId(n, mode, root, "'+tm[2]+'");'; - }else{ - fn[fn.length] = 'n = getNodes(n, mode, "'+tm[2]+'");'; - } - q = q.replace(tm[0], ""); - }else if(q.substr(0, 1) != '@'){ - fn[fn.length] = 'n = getNodes(n, mode, "*");'; - } - }else{ - if(tm){ - if(tm[1] == "#"){ - fn[fn.length] = 'n = byId(n, null, "'+tm[2]+'");'; - }else{ - fn[fn.length] = 'n = byTag(n, "'+tm[2]+'");'; - } - q = q.replace(tm[0], ""); - } - } - while(!(mm = q.match(modeRe))){ - var matched = false; - for(var j = 0; j < tklen; j++){ - var t = tk[j]; - var m = q.match(t.re); - if(m){ - fn[fn.length] = t.select.replace(tplRe, function(x, i){ - return m[i]; - }); - q = q.replace(m[0], ""); - matched = true; - break; - } - } - - if(!matched){ - throw 'Error parsing selector, parsing failed at "' + q + '"'; - } - } - if(mm[1]){ - fn[fn.length] = 'mode="'+mm[1]+'";'; - q = q.replace(mm[1], ""); - } - } - fn[fn.length] = "return nodup(n);\n}"; - eval(fn.join("")); - return f; - }, - - - select : function(path, root, type){ - if(!root || root == document){ - root = document; - } - if(typeof root == "string"){ - root = document.getElementById(root); - } - var paths = path.split(","); - var results = []; - for(var i = 0, len = paths.length; i < len; i++){ - var p = paths[i].replace(trimRe, ""); - if(!cache[p]){ - cache[p] = Ext.DomQuery.compile(p); - if(!cache[p]){ - throw p + " is not a valid selector"; - } - } - var result = cache[p](root); - if(result && result != document){ - results = results.concat(result); - } - } - return results; - }, - - - selectNode : function(path, root){ - return Ext.DomQuery.select(path, root)[0]; - }, - - - selectValue : function(path, root, defaultValue){ - path = path.replace(trimRe, ""); - if(!valueCache[path]){ - valueCache[path] = Ext.DomQuery.compile(path, "select"); - } - var n = valueCache[path](root); - n = n[0] ? n[0] : n; - var v = (n && n.firstChild ? n.firstChild.nodeValue : null); - return (v === null ? defaultValue : v); - }, - - - selectNumber : function(path, root, defaultValue){ - var v = Ext.DomQuery.selectValue(path, root, defaultValue || 0); - return parseFloat(v); - }, - - - is : function(el, ss){ - if(typeof el == "string"){ - el = document.getElementById(el); - } - var isArray = (el instanceof Array); - var result = Ext.DomQuery.filter(isArray ? el : [el], ss); - return isArray ? (result.length == el.length) : (result.length > 0); - }, - - - filter : function(els, ss, nonMatches){ - ss = ss.replace(trimRe, ""); - if(!simpleCache[ss]){ - simpleCache[ss] = Ext.DomQuery.compile(ss, "simple"); - } - var result = simpleCache[ss](els); - return nonMatches ? quickDiff(result, els) : result; - }, - - - matchers : [{ - re: /^\.([\w-]+)/, - select: 'n = byClassName(n, null, " {1} ");' - }, { - re: /^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/, - select: 'n = byPseudo(n, "{1}", "{2}");' - },{ - re: /^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/, - select: 'n = byAttribute(n, "{2}", "{4}", "{3}", "{1}");' - }, { - re: /^#([\w-]+)/, - select: 'n = byId(n, null, "{1}");' - },{ - re: /^@([\w-]+)/, - select: 'return {firstChild:{nodeValue:attrValue(n, "{1}")}};' - } - ], - - - operators : { - "=" : function(a, v){ - return a == v; - }, - "!=" : function(a, v){ - return a != v; - }, - "^=" : function(a, v){ - return a && a.substr(0, v.length) == v; - }, - "$=" : function(a, v){ - return a && a.substr(a.length-v.length) == v; - }, - "*=" : function(a, v){ - return a && a.indexOf(v) !== -1; - }, - "%=" : function(a, v){ - return (a % v) == 0; - } - }, - - - pseudos : { - "first-child" : function(c){ - var r = [], n; - for(var i = 0, ci; ci = n = c[i]; i++){ - while((n = n.previousSibling) && n.nodeType != 1); - if(!n){ - r[r.length] = ci; - } - } - return r; - }, - - "last-child" : function(c){ - var r = []; - for(var i = 0, ci; ci = n = c[i]; i++){ - while((n = n.nextSibling) && n.nodeType != 1); - if(!n){ - r[r.length] = ci; - } - } - return r; - }, - - "nth-child" : function(c, a){ - var r = []; - if(a != "odd" && a != "even"){ - for(var i = 0, ci; ci = c[i]; i++){ - var m = child(ci.parentNode, a); - if(m == ci){ - r[r.length] = m; - } - } - return r; - } - var p; - - for(var i = 0, l = c.length; i < l; i++){ - var cp = c[i].parentNode; - if(cp != p){ - clean(cp); - p = cp; - } - } - - for(var i = 0, ci; ci = c[i]; i++){ - var m = false; - if(a == "odd"){ - m = ((ci.nodeIndex+1) % 2 == 1); - }else if(a == "even"){ - m = ((ci.nodeIndex+1) % 2 == 0); - } - if(m){ - r[r.length] = ci; - } - } - return r; - }, - - "only-child" : function(c){ - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - if(!prev(ci) && !next(ci)){ - r[r.length] = ci; - } - } - return r; - }, - - "empty" : function(c){ - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - var cns = ci.childNodes, j = 0, cn, empty = true; - while(cn = cns[j]){ - ++j; - if(cn.nodeType == 1 || cn.nodeType == 3){ - empty = false; - break; - } - } - if(empty){ - r[r.length] = ci; - } - } - return r; - }, - - "contains" : function(c, v){ - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - if(ci.innerHTML.indexOf(v) !== -1){ - r[r.length] = ci; - } - } - return r; - }, - - "nodeValue" : function(c, v){ - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - if(ci.firstChild && ci.firstChild.nodeValue == v){ - r[r.length] = ci; - } - } - return r; - }, - - "checked" : function(c){ - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - if(ci.checked == true){ - r[r.length] = ci; - } - } - return r; - }, - - "not" : function(c, ss){ - return Ext.DomQuery.filter(c, ss, true); - }, - - "odd" : function(c){ - return this["nth-child"](c, "odd"); - }, - - "even" : function(c){ - return this["nth-child"](c, "even"); - }, - - "nth" : function(c, a){ - return c[a-1] || []; - }, - - "first" : function(c){ - return c[0] || []; - }, - - "last" : function(c){ - return c[c.length-1] || []; - }, - - "has" : function(c, ss){ - var s = Ext.DomQuery.select; - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - if(s(ss, ci).length > 0){ - r[r.length] = ci; - } - } - return r; - }, - - "next" : function(c, ss){ - var is = Ext.DomQuery.is; - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - var n = next(ci); - if(n && is(n, ss)){ - r[r.length] = ci; - } - } - return r; - }, - - "prev" : function(c, ss){ - var is = Ext.DomQuery.is; - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - var n = prev(ci); - if(n && is(n, ss)){ - r[r.length] = ci; - } - } - return r; - } - } - }; -}(); - - -Ext.query = Ext.DomQuery.select; - - - -Ext.util.Observable = function(){ - if(this.listeners){ - this.on(this.listeners); - delete this.listeners; - } -}; -Ext.util.Observable.prototype = { - - fireEvent : function(){ - var ce = this.events[arguments[0].toLowerCase()]; - if(typeof ce == "object"){ - return ce.fire.apply(ce, Array.prototype.slice.call(arguments, 1)); - }else{ - return true; - } - }, - - filterOptRe : /^(?:scope|delay|buffer|single)$/, - - - addListener : function(eventName, fn, scope, o){ - if(typeof eventName == "object"){ - o = eventName; - for(var e in o){ - if(this.filterOptRe.test(e)){ - continue; - } - if(typeof o[e] == "function"){ - this.addListener(e, o[e], o.scope, o); - }else{ - this.addListener(e, o[e].fn, o[e].scope, o[e]); - } - } - return; - } - o = (!o || typeof o == "boolean") ? {} : o; - eventName = eventName.toLowerCase(); - var ce = this.events[eventName] || true; - if(typeof ce == "boolean"){ - ce = new Ext.util.Event(this, eventName); - this.events[eventName] = ce; - } - ce.addListener(fn, scope, o); - }, - - - removeListener : function(eventName, fn, scope){ - var ce = this.events[eventName.toLowerCase()]; - if(typeof ce == "object"){ - ce.removeListener(fn, scope); - } - }, - - - purgeListeners : function(){ - for(var evt in this.events){ - if(typeof this.events[evt] == "object"){ - this.events[evt].clearListeners(); - } - } - }, - - relayEvents : function(o, events){ - var createHandler = function(ename){ - return function(){ - return this.fireEvent.apply(this, Ext.combine(ename, Array.prototype.slice.call(arguments, 0))); - }; - }; - for(var i = 0, len = events.length; i < len; i++){ - var ename = events[i]; - if(!this.events[ename]){ this.events[ename] = true; }; - o.on(ename, createHandler(ename), this); - } - }, - - - addEvents : function(o){ - if(!this.events){ - this.events = {}; - } - Ext.applyIf(this.events, o); - }, - - - hasListener : function(eventName){ - var e = this.events[eventName]; - return typeof e == "object" && e.listeners.length > 0; - } -}; - -Ext.util.Observable.prototype.on = Ext.util.Observable.prototype.addListener; - -Ext.util.Observable.prototype.un = Ext.util.Observable.prototype.removeListener; - - -Ext.util.Observable.capture = function(o, fn, scope){ - o.fireEvent = o.fireEvent.createInterceptor(fn, scope); -}; - - -Ext.util.Observable.releaseCapture = function(o){ - o.fireEvent = Ext.util.Observable.prototype.fireEvent; -}; - -(function(){ - - var createBuffered = function(h, o, scope){ - var task = new Ext.util.DelayedTask(); - return function(){ - task.delay(o.buffer, h, scope, Array.prototype.slice.call(arguments, 0)); - }; - }; - - var createSingle = function(h, e, fn, scope){ - return function(){ - e.removeListener(fn, scope); - return h.apply(scope, arguments); - }; - }; - - var createDelayed = function(h, o, scope){ - return function(){ - var args = Array.prototype.slice.call(arguments, 0); - setTimeout(function(){ - h.apply(scope, args); - }, o.delay || 10); - }; - }; - - Ext.util.Event = function(obj, name){ - this.name = name; - this.obj = obj; - this.listeners = []; - }; - - Ext.util.Event.prototype = { - addListener : function(fn, scope, options){ - var o = options || {}; - scope = scope || this.obj; - if(!this.isListening(fn, scope)){ - var l = {fn: fn, scope: scope, options: o}; - var h = fn; - if(o.delay){ - h = createDelayed(h, o, scope); - } - if(o.single){ - h = createSingle(h, this, fn, scope); - } - if(o.buffer){ - h = createBuffered(h, o, scope); - } - l.fireFn = h; - if(!this.firing){ this.listeners.push(l); - }else{ - this.listeners = this.listeners.slice(0); - this.listeners.push(l); - } - } - }, - - findListener : function(fn, scope){ - scope = scope || this.obj; - var ls = this.listeners; - for(var i = 0, len = ls.length; i < len; i++){ - var l = ls[i]; - if(l.fn == fn && l.scope == scope){ - return i; - } - } - return -1; - }, - - isListening : function(fn, scope){ - return this.findListener(fn, scope) != -1; - }, - - removeListener : function(fn, scope){ - var index; - if((index = this.findListener(fn, scope)) != -1){ - if(!this.firing){ - this.listeners.splice(index, 1); - }else{ - this.listeners = this.listeners.slice(0); - this.listeners.splice(index, 1); - } - return true; - } - return false; - }, - - clearListeners : function(){ - this.listeners = []; - }, - - fire : function(){ - var ls = this.listeners, scope, len = ls.length; - if(len > 0){ - this.firing = true; - var args = Array.prototype.slice.call(arguments, 0); - for(var i = 0; i < len; i++){ - var l = ls[i]; - if(l.fireFn.apply(l.scope, arguments) === false){ - this.firing = false; - return false; - } - } - this.firing = false; - } - return true; - } - }; -})(); - -Ext.EventManager = function(){ - var docReadyEvent, docReadyProcId, docReadyState = false; - var resizeEvent, resizeTask, textEvent, textSize; - var E = Ext.lib.Event; - var D = Ext.lib.Dom; - - - var fireDocReady = function(){ - if(!docReadyState){ - docReadyState = true; - Ext.isReady = true; - if(docReadyProcId){ - clearInterval(docReadyProcId); - } - if(Ext.isGecko || Ext.isOpera) { - document.removeEventListener("DOMContentLoaded", fireDocReady, false); - } - if(docReadyEvent){ - docReadyEvent.fire(); - docReadyEvent.clearListeners(); - } - } - }; - - var initDocReady = function(){ - docReadyEvent = new Ext.util.Event(); - if(Ext.isGecko || Ext.isOpera) { - document.addEventListener("DOMContentLoaded", fireDocReady, false); - }else if(Ext.isIE){ - - document.write(""); - var defer = document.getElementById("ie-deferred-loader"); - defer.onreadystatechange = function(){ - if(this.readyState == "complete"){ - fireDocReady(); - defer.onreadystatechange = null; - defer.parentNode.removeChild(defer); - } - }; - }else if(Ext.isSafari){ - docReadyProcId = setInterval(function(){ - var rs = document.readyState; - if(rs == "complete") { - fireDocReady(); - } - }, 10); - } - - E.on(window, "load", fireDocReady); - }; - - var createBuffered = function(h, o){ - var task = new Ext.util.DelayedTask(h); - return function(e){ - - e = new Ext.EventObjectImpl(e); - task.delay(o.buffer, h, null, [e]); - }; - }; - - var createSingle = function(h, el, ename, fn){ - return function(e){ - Ext.EventManager.removeListener(el, ename, fn); - h(e); - }; - }; - - var createDelayed = function(h, o){ - return function(e){ - - e = new Ext.EventObjectImpl(e); - setTimeout(function(){ - h(e); - }, o.delay || 10); - }; - }; - - var listen = function(element, ename, opt, fn, scope){ - var o = (!opt || typeof opt == "boolean") ? {} : opt; - fn = fn || o.fn; scope = scope || o.scope; - var el = Ext.getDom(element); - if(!el){ - throw "Error listening for \"" + ename + '\". Element "' + element + '" doesn\'t exist.'; - } - var h = function(e){ - e = Ext.EventObject.setEvent(e); - var t; - if(o.delegate){ - t = e.getTarget(o.delegate, el); - if(!t){ - return; - } - }else{ - t = e.target; - } - if(o.stopEvent === true){ - e.stopEvent(); - } - if(o.preventDefault === true){ - e.preventDefault(); - } - if(o.stopPropagation === true){ - e.stopPropagation(); - } - - if(o.normalized === false){ - e = e.browserEvent; - } - - fn.call(scope || el, e, t, o); - }; - if(o.delay){ - h = createDelayed(h, o); - } - if(o.single){ - h = createSingle(h, el, ename, fn); - } - if(o.buffer){ - h = createBuffered(h, o); - } - fn._handlers = fn._handlers || []; - fn._handlers.push([Ext.id(el), ename, h]); - - E.on(el, ename, h); - if(ename == "mousewheel" && el.addEventListener){ - el.addEventListener("DOMMouseScroll", h, false); - E.on(window, 'unload', function(){ - el.removeEventListener("DOMMouseScroll", h, false); - }); - } - if(ename == "mousedown" && el == document){ - Ext.EventManager.stoppedMouseDownEvent.addListener(h); - } - return h; - }; - - var stopListening = function(el, ename, fn){ - var id = Ext.id(el), hds = fn._handlers, hd = fn; - if(hds){ - for(var i = 0, len = hds.length; i < len; i++){ - var h = hds[i]; - if(h[0] == id && h[1] == ename){ - hd = h[2]; - hds.splice(i, 1); - break; - } - } - } - E.un(el, ename, hd); - el = Ext.getDom(el); - if(ename == "mousewheel" && el.addEventListener){ - el.removeEventListener("DOMMouseScroll", hd, false); - } - if(ename == "mousedown" && el == document){ - Ext.EventManager.stoppedMouseDownEvent.removeListener(hd); - } - }; - - var propRe = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized)$/; - var pub = { - - - wrap : function(fn, scope, override){ - return function(e){ - Ext.EventObject.setEvent(e); - fn.call(override ? scope || window : window, Ext.EventObject, scope); - }; - }, - - - addListener : function(element, eventName, fn, scope, options){ - if(typeof eventName == "object"){ - var o = eventName; - for(var e in o){ - if(propRe.test(e)){ - continue; - } - if(typeof o[e] == "function"){ - - listen(element, e, o, o[e], o.scope); - }else{ - - listen(element, e, o[e]); - } - } - return; - } - return listen(element, eventName, options, fn, scope); - }, - - - removeListener : function(element, eventName, fn){ - return stopListening(element, eventName, fn); - }, - - - onDocumentReady : function(fn, scope, options){ - if(docReadyState){ - fn.call(scope || window, scope); - return; - } - if(!docReadyEvent){ - initDocReady(); - } - docReadyEvent.addListener(fn, scope, options); - }, - - - onWindowResize : function(fn, scope, options){ - if(!resizeEvent){ - resizeEvent = new Ext.util.Event(); - resizeTask = new Ext.util.DelayedTask(function(){ - resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); - }); - E.on(window, "resize", function(){ - if(Ext.isIE){ - resizeTask.delay(50); - }else{ - resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); - } - }); - } - resizeEvent.addListener(fn, scope, options); - }, - - - onTextResize : function(fn, scope, options){ - if(!textEvent){ - textEvent = new Ext.util.Event(); - var textEl = new Ext.Element(document.createElement('div')); - textEl.dom.className = 'x-text-resize'; - textEl.dom.innerHTML = 'X'; - textEl.appendTo(document.body); - textSize = textEl.dom.offsetHeight; - setInterval(function(){ - if(textEl.dom.offsetHeight != textSize){ - textEvent.fire(textSize, textSize = textEl.dom.offsetHeight); - } - }, this.textResizeInterval); - } - textEvent.addListener(fn, scope, options); - }, - - - removeResizeListener : function(fn, scope){ - if(resizeEvent){ - resizeEvent.removeListener(fn, scope); - } - }, - - fireResize : function(){ - if(resizeEvent){ - resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); - } - }, - - ieDeferSrc : false, - textResizeInterval : 50 - }; - - pub.on = pub.addListener; - pub.un = pub.removeListener; - - pub.stoppedMouseDownEvent = new Ext.util.Event(); - return pub; -}(); - -Ext.onReady = Ext.EventManager.onDocumentReady; - -Ext.onReady(function(){ - var bd = Ext.get(document.body); - if(!bd){ return; } - var cls = Ext.isIE ? "ext-ie" - : Ext.isGecko ? "ext-gecko" - : Ext.isOpera ? "ext-opera" - : Ext.isSafari ? "ext-safari" : ""; - if(Ext.isBorderBox){ - cls += ' ext-border-box'; - } - if(Ext.isStrict){ - cls += ' ext-strict'; - } - bd.addClass(cls); -}); - -Ext.EventObject = function(){ - - var E = Ext.lib.Event; - - - var safariKeys = { - 63234 : 37, - 63235 : 39, - 63232 : 38, - 63233 : 40, - 63276 : 33, - 63277 : 34, - 63272 : 46, - 63273 : 36, - 63275 : 35 - }; - - - var btnMap = Ext.isIE ? {1:0,4:1,2:2} : - (Ext.isSafari ? {1:0,2:1,3:2} : {0:0,1:1,2:2}); - - Ext.EventObjectImpl = function(e){ - if(e){ - this.setEvent(e.browserEvent || e); - } - }; - Ext.EventObjectImpl.prototype = { - - browserEvent : null, - - button : -1, - - shiftKey : false, - - ctrlKey : false, - - altKey : false, - - - BACKSPACE : 8, - - TAB : 9, - - RETURN : 13, - - ENTER : 13, - - SHIFT : 16, - - CONTROL : 17, - - ESC : 27, - - SPACE : 32, - - PAGEUP : 33, - - PAGEDOWN : 34, - - END : 35, - - HOME : 36, - - LEFT : 37, - - UP : 38, - - RIGHT : 39, - - DOWN : 40, - - DELETE : 46, - - F5 : 116, - - - setEvent : function(e){ - if(e == this || (e && e.browserEvent)){ - return e; - } - this.browserEvent = e; - if(e){ - - this.button = e.button ? btnMap[e.button] : (e.which ? e.which-1 : -1); - this.shiftKey = e.shiftKey; - - this.ctrlKey = e.ctrlKey || e.metaKey; - this.altKey = e.altKey; - - this.keyCode = e.keyCode; - this.charCode = e.charCode; - - this.target = E.getTarget(e); - - this.xy = E.getXY(e); - }else{ - this.button = -1; - this.shiftKey = false; - this.ctrlKey = false; - this.altKey = false; - this.keyCode = 0; - this.charCode =0; - this.target = null; - this.xy = [0, 0]; - } - return this; - }, - - - stopEvent : function(){ - if(this.browserEvent){ - if(this.browserEvent.type == 'mousedown'){ - Ext.EventManager.stoppedMouseDownEvent.fire(this); - } - E.stopEvent(this.browserEvent); - } - }, - - - preventDefault : function(){ - if(this.browserEvent){ - E.preventDefault(this.browserEvent); - } - }, - - - isNavKeyPress : function(){ - var k = this.keyCode; - k = Ext.isSafari ? (safariKeys[k] || k) : k; - return (k >= 33 && k <= 40) || k == this.RETURN || k == this.TAB || k == this.ESC; - }, - - isSpecialKey : function(){ - var k = this.keyCode; - return k == 9 || k == 13 || k == 40 || k == 27 || - (k == 16) || (k == 17) || - (k >= 18 && k <= 20) || - (k >= 33 && k <= 35) || - (k >= 36 && k <= 39) || - (k >= 44 && k <= 45); - }, - - stopPropagation : function(){ - if(this.browserEvent){ - if(this.browserEvent.type == 'mousedown'){ - Ext.EventManager.stoppedMouseDownEvent.fire(this); - } - E.stopPropagation(this.browserEvent); - } - }, - - - getCharCode : function(){ - return this.charCode || this.keyCode; - }, - - - getKey : function(){ - var k = this.keyCode || this.charCode; - return Ext.isSafari ? (safariKeys[k] || k) : k; - }, - - - getPageX : function(){ - return this.xy[0]; - }, - - - getPageY : function(){ - return this.xy[1]; - }, - - - getTime : function(){ - if(this.browserEvent){ - return E.getTime(this.browserEvent); - } - return null; - }, - - - getXY : function(){ - return this.xy; - }, - - - getTarget : function(selector, maxDepth, returnEl){ - return selector ? Ext.fly(this.target).findParent(selector, maxDepth, returnEl) : this.target; - }, - - getRelatedTarget : function(){ - if(this.browserEvent){ - return E.getRelatedTarget(this.browserEvent); - } - return null; - }, - - - getWheelDelta : function(){ - var e = this.browserEvent; - var delta = 0; - if(e.wheelDelta){ - delta = e.wheelDelta/120; - - if(window.opera) delta = -delta; - }else if(e.detail){ - delta = -e.detail/3; - } - return delta; - }, - - - hasModifier : function(){ - return ((this.ctrlKey || this.altKey) || this.shiftKey) ? true : false; - }, - - - within : function(el, related){ - var t = this[related ? "getRelatedTarget" : "getTarget"](); - return t && Ext.fly(el).contains(t); - }, - - getPoint : function(){ - return new Ext.lib.Point(this.xy[0], this.xy[1]); - } - }; - - return new Ext.EventObjectImpl(); -}(); - - - -(function(){ -var D = Ext.lib.Dom; -var E = Ext.lib.Event; -var A = Ext.lib.Anim; - - -var propCache = {}; -var camelRe = /(-[a-z])/gi; -var camelFn = function(m, a){ return a.charAt(1).toUpperCase(); }; -var view = document.defaultView; - -Ext.Element = function(element, forceNew){ - var dom = typeof element == "string" ? - document.getElementById(element) : element; - if(!dom){ - return null; - } - if(!forceNew && Ext.Element.cache[dom.id]){ - return Ext.Element.cache[dom.id]; - } - - this.dom = dom; - - - this.id = dom.id || Ext.id(dom); -}; - -var El = Ext.Element; - -El.prototype = { - - originalDisplay : "", - - visibilityMode : 1, - - defaultUnit : "px", - - setVisibilityMode : function(visMode){ - this.visibilityMode = visMode; - return this; - }, - - enableDisplayMode : function(display){ - this.setVisibilityMode(El.DISPLAY); - if(typeof display != "undefined") this.originalDisplay = display; - return this; - }, - - - findParent : function(simpleSelector, maxDepth, returnEl){ - var p = this.dom, b = document.body, depth = 0, dq = Ext.DomQuery, stopEl; - maxDepth = maxDepth || 50; - if(typeof maxDepth != "number"){ - stopEl = Ext.getDom(maxDepth); - maxDepth = 10; - } - while(p && p.nodeType == 1 && depth < maxDepth && p != b && p != stopEl){ - if(dq.is(p, simpleSelector)){ - return returnEl ? Ext.get(p) : p; - } - depth++; - p = p.parentNode; - } - return null; - }, - - - - findParentNode : function(simpleSelector, maxDepth, returnEl){ - var p = Ext.fly(this.dom.parentNode, '_internal'); - return p ? p.findParent(simpleSelector, maxDepth, returnEl) : null; - }, - - - up : function(simpleSelector, maxDepth){ - return this.findParentNode(simpleSelector, maxDepth, true); - }, - - - - - is : function(simpleSelector){ - return Ext.DomQuery.is(this.dom, simpleSelector); - }, - - - animate : function(args, duration, onComplete, easing, animType){ - this.anim(args, {duration: duration, callback: onComplete, easing: easing}, animType); - return this; - }, - - - anim : function(args, opt, animType, defaultDur, defaultEase, cb){ - animType = animType || 'run'; - opt = opt || {}; - var anim = Ext.lib.Anim[animType]( - this.dom, args, - (opt.duration || defaultDur) || .35, - (opt.easing || defaultEase) || 'easeOut', - function(){ - Ext.callback(cb, this); - Ext.callback(opt.callback, opt.scope || this, [this, opt]); - }, - this - ); - opt.anim = anim; - return anim; - }, - - - preanim : function(a, i){ - return !a[i] ? false : (typeof a[i] == "object" ? a[i]: {duration: a[i+1], callback: a[i+2], easing: a[i+3]}); - }, - - - clean : function(forceReclean){ - if(this.isCleaned && forceReclean !== true){ - return this; - } - var ns = /\S/; - var d = this.dom, n = d.firstChild, ni = -1; - while(n){ - var nx = n.nextSibling; - if(n.nodeType == 3 && !ns.test(n.nodeValue)){ - d.removeChild(n); - }else{ - n.nodeIndex = ++ni; - } - n = nx; - } - this.isCleaned = true; - return this; - }, - - calcOffsetsTo : function(el){ - el = Ext.get(el), d = el.dom; - var restorePos = false; - if(el.getStyle('position') == 'static'){ - el.position('relative'); - restorePos = true; - } - var x = 0, y =0; - var op = this.dom; - while(op && op != d && op.tagName != 'HTML'){ - x+= op.offsetLeft; - y+= op.offsetTop; - op = op.offsetParent; - } - if(restorePos){ - el.position('static'); - } - return [x, y]; - }, - - - scrollIntoView : function(container, hscroll){ - var c = Ext.getDom(container) || document.body; - var el = this.dom; - - var o = this.calcOffsetsTo(c), - l = o[0], - t = o[1], - b = t+el.offsetHeight, - r = l+el.offsetWidth; - - var ch = c.clientHeight; - var ct = parseInt(c.scrollTop, 10); - var cl = parseInt(c.scrollLeft, 10); - var cb = ct + ch; - var cr = cl + c.clientWidth; - - if(t < ct){ - c.scrollTop = t; - }else if(b > cb){ - c.scrollTop = b-ch; - } - - if(hscroll !== false){ - if(l < cl){ - c.scrollLeft = l; - }else if(r > cr){ - c.scrollLeft = r-c.clientWidth; - } - } - return this; - }, - - scrollChildIntoView : function(child){ - Ext.fly(child, '_scrollChildIntoView').scrollIntoView(this); - }, - - - autoHeight : function(animate, duration, onComplete, easing){ - var oldHeight = this.getHeight(); - this.clip(); - this.setHeight(1); - setTimeout(function(){ - var height = parseInt(this.dom.scrollHeight, 10); - if(!animate){ - this.setHeight(height); - this.unclip(); - if(typeof onComplete == "function"){ - onComplete(); - } - }else{ - this.setHeight(oldHeight); - this.setHeight(height, animate, duration, function(){ - this.unclip(); - if(typeof onComplete == "function") onComplete(); - }.createDelegate(this), easing); - } - }.createDelegate(this), 0); - return this; - }, - - - contains : function(el){ - if(!el){return false;} - return D.isAncestor(this.dom, el.dom ? el.dom : el); - }, - - - isVisible : function(deep) { - var vis = !(this.getStyle("visibility") == "hidden" || this.getStyle("display") == "none"); - if(deep !== true || !vis){ - return vis; - } - var p = this.dom.parentNode; - while(p && p.tagName.toLowerCase() != "body"){ - if(!Ext.fly(p, '_isVisible').isVisible()){ - return false; - } - p = p.parentNode; - } - return true; - }, - - - select : function(selector, unique){ - return El.select("#" + Ext.id(this.dom) + " " + selector, unique); - }, - - - query : function(selector, unique){ - return Ext.DomQuery.select("#" + Ext.id(this.dom) + " " + selector); - }, - - - child : function(selector, returnDom){ - var n = Ext.DomQuery.selectNode("#" + Ext.id(this.dom) + " " + selector); - return returnDom ? n : Ext.get(n); - }, - - - down : function(selector, returnDom){ - var n = Ext.DomQuery.selectNode("#" + Ext.id(this.dom) + " > " + selector); - return returnDom ? n : Ext.get(n); - }, - - - initDD : function(group, config, overrides){ - var dd = new Ext.dd.DD(Ext.id(this.dom), group, config); - return Ext.apply(dd, overrides); - }, - - - initDDProxy : function(group, config, overrides){ - var dd = new Ext.dd.DDProxy(Ext.id(this.dom), group, config); - return Ext.apply(dd, overrides); - }, - - - initDDTarget : function(group, config, overrides){ - var dd = new Ext.dd.DDTarget(Ext.id(this.dom), group, config); - return Ext.apply(dd, overrides); - }, - - - setVisible : function(visible, animate){ - if(!animate || !A){ - if(this.visibilityMode == El.DISPLAY){ - this.setDisplayed(visible); - }else{ - this.fixDisplay(); - this.dom.style.visibility = visible ? "visible" : "hidden"; - } - }else{ - - var dom = this.dom; - var visMode = this.visibilityMode; - if(visible){ - this.setOpacity(.01); - this.setVisible(true); - } - this.anim({opacity: { to: (visible?1:0) }}, - this.preanim(arguments, 1), - null, .35, 'easeIn', function(){ - if(!visible){ - if(visMode == El.DISPLAY){ - dom.style.display = "none"; - }else{ - dom.style.visibility = "hidden"; - } - Ext.get(dom).setOpacity(1); - } - }); - } - return this; - }, - - - isDisplayed : function() { - return this.getStyle("display") != "none"; - }, - - - toggle : function(animate){ - this.setVisible(!this.isVisible(), this.preanim(arguments, 0)); - return this; - }, - - - setDisplayed : function(value) { - if(typeof value == "boolean"){ - value = value ? this.originalDisplay : "none"; - } - this.setStyle("display", value); - return this; - }, - - - focus : function() { - try{ - this.dom.focus(); - }catch(e){} - return this; - }, - - - blur : function() { - try{ - this.dom.blur(); - }catch(e){} - return this; - }, - - - addClass : function(className){ - if(className instanceof Array){ - for(var i = 0, len = className.length; i < len; i++) { - this.addClass(className[i]); - } - }else{ - if(className && !this.hasClass(className)){ - this.dom.className = this.dom.className + " " + className; - } - } - return this; - }, - - - radioClass : function(className){ - var siblings = this.dom.parentNode.childNodes; - for(var i = 0; i < siblings.length; i++) { - var s = siblings[i]; - if(s.nodeType == 1){ - Ext.get(s).removeClass(className); - } - } - this.addClass(className); - return this; - }, - - - removeClass : function(className){ - if(!className || !this.dom.className){ - return this; - } - if(className instanceof Array){ - for(var i = 0, len = className.length; i < len; i++) { - this.removeClass(className[i]); - } - }else{ - if(this.hasClass(className)){ - var re = this.classReCache[className]; - if (!re) { - re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)', "g"); - this.classReCache[className] = re; - } - this.dom.className = - this.dom.className.replace(re, " "); - } - } - return this; - }, - - classReCache: {}, - - - toggleClass : function(className){ - if(this.hasClass(className)){ - this.removeClass(className); - }else{ - this.addClass(className); - } - return this; - }, - - - hasClass : function(className){ - return className && (' '+this.dom.className+' ').indexOf(' '+className+' ') != -1; - }, - - - replaceClass : function(oldClassName, newClassName){ - this.removeClass(oldClassName); - this.addClass(newClassName); - return this; - }, - - - getStyles : function(){ - var a = arguments, len = a.length, r = {}; - for(var i = 0; i < len; i++){ - r[a[i]] = this.getStyle(a[i]); - } - return r; - }, - - - getStyle : function(){ - return view && view.getComputedStyle ? - function(prop){ - var el = this.dom, v, cs, camel; - if(prop == 'float'){ - prop = "cssFloat"; - } - if(v = el.style[prop]){ - return v; - } - if(cs = view.getComputedStyle(el, "")){ - if(!(camel = propCache[prop])){ - camel = propCache[prop] = prop.replace(camelRe, camelFn); - } - return cs[camel]; - } - return null; - } : - function(prop){ - var el = this.dom, v, cs, camel; - if(prop == 'opacity'){ - if(typeof el.filter == 'string'){ - var fv = parseFloat(el.filter.match(/alpha\(opacity=(.*)\)/i)[1]); - if(!isNaN(fv)){ - return fv ? fv / 100 : 0; - } - } - return 1; - }else if(prop == 'float'){ - prop = "styleFloat"; - } - if(!(camel = propCache[prop])){ - camel = propCache[prop] = prop.replace(camelRe, camelFn); - } - if(v = el.style[camel]){ - return v; - } - if(cs = el.currentStyle){ - return cs[camel]; - } - return null; - }; - }(), - - - setStyle : function(prop, value){ - if(typeof prop == "string"){ - var camel; - if(!(camel = propCache[prop])){ - camel = propCache[prop] = prop.replace(camelRe, camelFn); - } - if(camel == 'opacity') { - this.setOpacity(value); - }else{ - this.dom.style[camel] = value; - } - }else{ - for(var style in prop){ - if(typeof prop[style] != "function"){ - this.setStyle(style, prop[style]); - } - } - } - return this; - }, - - - applyStyles : function(style){ - Ext.DomHelper.applyStyles(this.dom, style); - return this; - }, - - - getX : function(){ - return D.getX(this.dom); - }, - - - getY : function(){ - return D.getY(this.dom); - }, - - - getXY : function(){ - return D.getXY(this.dom); - }, - - - setX : function(x, animate){ - if(!animate || !A){ - D.setX(this.dom, x); - }else{ - this.setXY([x, this.getY()], this.preanim(arguments, 1)); - } - return this; - }, - - - setY : function(y, animate){ - if(!animate || !A){ - D.setY(this.dom, y); - }else{ - this.setXY([this.getX(), y], this.preanim(arguments, 1)); - } - return this; - }, - - - setLeft : function(left){ - this.setStyle("left", this.addUnits(left)); - return this; - }, - - - setTop : function(top){ - this.setStyle("top", this.addUnits(top)); - return this; - }, - - - setRight : function(right){ - this.setStyle("right", this.addUnits(right)); - return this; - }, - - - setBottom : function(bottom){ - this.setStyle("bottom", this.addUnits(bottom)); - return this; - }, - - - setXY : function(pos, animate){ - if(!animate || !A){ - D.setXY(this.dom, pos); - }else{ - this.anim({points: {to: pos}}, this.preanim(arguments, 1), 'motion'); - } - return this; - }, - - - setLocation : function(x, y, animate){ - this.setXY([x, y], this.preanim(arguments, 2)); - return this; - }, - - - moveTo : function(x, y, animate){ - this.setXY([x, y], this.preanim(arguments, 2)); - return this; - }, - - - getRegion : function(){ - return D.getRegion(this.dom); - }, - - - getHeight : function(contentHeight){ - var h = this.dom.offsetHeight || 0; - return contentHeight !== true ? h : h-this.getBorderWidth("tb")-this.getPadding("tb"); - }, - - - getWidth : function(contentWidth){ - var w = this.dom.offsetWidth || 0; - return contentWidth !== true ? w : w-this.getBorderWidth("lr")-this.getPadding("lr"); - }, - - - getComputedHeight : function(){ - var h = Math.max(this.dom.offsetHeight, this.dom.clientHeight); - if(!h){ - h = parseInt(this.getStyle('height'), 10) || 0; - if(!this.isBorderBox()){ - h += this.getFrameWidth('tb'); - } - } - return h; - }, - - - getComputedWidth : function(){ - var w = Math.max(this.dom.offsetWidth, this.dom.clientWidth); - if(!w){ - w = parseInt(this.getStyle('width'), 10) || 0; - if(!this.isBorderBox()){ - w += this.getFrameWidth('lr'); - } - } - return w; - }, - - - getSize : function(contentSize){ - return {width: this.getWidth(contentSize), height: this.getHeight(contentSize)}; - }, - - getViewSize : function(){ - var d = this.dom, doc = document, aw = 0, ah = 0; - if(d == doc || d == doc.body){ - return {width : D.getViewWidth(), height: D.getViewHeight()}; - }else{ - return { - width : d.clientWidth, - height: d.clientHeight - }; - } - }, - - - getValue : function(asNumber){ - return asNumber ? parseInt(this.dom.value, 10) : this.dom.value; - }, - - - adjustWidth : function(width){ - if(typeof width == "number"){ - if(this.autoBoxAdjust && !this.isBorderBox()){ - width -= (this.getBorderWidth("lr") + this.getPadding("lr")); - } - if(width < 0){ - width = 0; - } - } - return width; - }, - - - adjustHeight : function(height){ - if(typeof height == "number"){ - if(this.autoBoxAdjust && !this.isBorderBox()){ - height -= (this.getBorderWidth("tb") + this.getPadding("tb")); - } - if(height < 0){ - height = 0; - } - } - return height; - }, - - - setWidth : function(width, animate){ - width = this.adjustWidth(width); - if(!animate || !A){ - this.dom.style.width = this.addUnits(width); - }else{ - this.anim({width: {to: width}}, this.preanim(arguments, 1)); - } - return this; - }, - - - setHeight : function(height, animate){ - height = this.adjustHeight(height); - if(!animate || !A){ - this.dom.style.height = this.addUnits(height); - }else{ - this.anim({height: {to: height}}, this.preanim(arguments, 1)); - } - return this; - }, - - - setSize : function(width, height, animate){ - if(typeof width == "object"){ - height = width.height; width = width.width; - } - width = this.adjustWidth(width); height = this.adjustHeight(height); - if(!animate || !A){ - this.dom.style.width = this.addUnits(width); - this.dom.style.height = this.addUnits(height); - }else{ - this.anim({width: {to: width}, height: {to: height}}, this.preanim(arguments, 2)); - } - return this; - }, - - - setBounds : function(x, y, width, height, animate){ - if(!animate || !A){ - this.setSize(width, height); - this.setLocation(x, y); - }else{ - width = this.adjustWidth(width); height = this.adjustHeight(height); - this.anim({points: {to: [x, y]}, width: {to: width}, height: {to: height}}, - this.preanim(arguments, 4), 'motion'); - } - return this; - }, - - - setRegion : function(region, animate){ - this.setBounds(region.left, region.top, region.right-region.left, region.bottom-region.top, this.preanim(arguments, 1)); - return this; - }, - - - addListener : function(eventName, fn, scope, options){ - Ext.EventManager.on(this.dom, eventName, fn, scope || this, options); - }, - - - removeListener : function(eventName, fn){ - Ext.EventManager.removeListener(this.dom, eventName, fn); - return this; - }, - - - removeAllListeners : function(){ - E.purgeElement(this.dom); - return this; - }, - - relayEvent : function(eventName, observable){ - this.on(eventName, function(e){ - observable.fireEvent(eventName, e); - }); - }, - - - setOpacity : function(opacity, animate){ - if(!animate || !A){ - var s = this.dom.style; - if(Ext.isIE){ - s.zoom = 1; - s.filter = (s.filter || '').replace(/alpha\([^\)]*\)/gi,"") + - (opacity == 1 ? "" : "alpha(opacity=" + opacity * 100 + ")"); - }else{ - s.opacity = opacity; - } - }else{ - this.anim({opacity: {to: opacity}}, this.preanim(arguments, 1), null, .35, 'easeIn'); - } - return this; - }, - - - getLeft : function(local){ - if(!local){ - return this.getX(); - }else{ - return parseInt(this.getStyle("left"), 10) || 0; - } - }, - - - getRight : function(local){ - if(!local){ - return this.getX() + this.getWidth(); - }else{ - return (this.getLeft(true) + this.getWidth()) || 0; - } - }, - - - getTop : function(local) { - if(!local){ - return this.getY(); - }else{ - return parseInt(this.getStyle("top"), 10) || 0; - } - }, - - - getBottom : function(local){ - if(!local){ - return this.getY() + this.getHeight(); - }else{ - return (this.getTop(true) + this.getHeight()) || 0; - } - }, - - - position : function(pos, zIndex, x, y){ - if(!pos){ - if(this.getStyle('position') == 'static'){ - this.setStyle('position', 'relative'); - } - }else{ - this.setStyle("position", pos); - } - if(zIndex){ - this.setStyle("z-index", zIndex); - } - if(x !== undefined && y !== undefined){ - this.setXY([x, y]); - }else if(x !== undefined){ - this.setX(x); - }else if(y !== undefined){ - this.setY(y); - } - }, - - - clearPositioning : function(value){ - value = value ||''; - this.setStyle({ - "left": value, - "right": value, - "top": value, - "bottom": value, - "z-index": "", - "position" : "static" - }); - return this; - }, - - - getPositioning : function(){ - var l = this.getStyle("left"); - var t = this.getStyle("top"); - return { - "position" : this.getStyle("position"), - "left" : l, - "right" : l ? "" : this.getStyle("right"), - "top" : t, - "bottom" : t ? "" : this.getStyle("bottom"), - "z-index" : this.getStyle("z-index") - }; - }, - - - getBorderWidth : function(side){ - return this.addStyles(side, El.borders); - }, - - - getPadding : function(side){ - return this.addStyles(side, El.paddings); - }, - - - setPositioning : function(pc){ - this.applyStyles(pc); - if(pc.right == "auto"){ - this.dom.style.right = ""; - } - if(pc.bottom == "auto"){ - this.dom.style.bottom = ""; - } - return this; - }, - - fixDisplay : function(){ - if(this.getStyle("display") == "none"){ - this.setStyle("visibility", "hidden"); - this.setStyle("display", this.originalDisplay); - if(this.getStyle("display") == "none"){ - this.setStyle("display", "block"); - } - } - }, - - - setLeftTop : function(left, top){ - this.dom.style.left = this.addUnits(left); - this.dom.style.top = this.addUnits(top); - return this; - }, - - - move : function(direction, distance, animate){ - var xy = this.getXY(); - direction = direction.toLowerCase(); - switch(direction){ - case "l": - case "left": - this.moveTo(xy[0]-distance, xy[1], this.preanim(arguments, 2)); - break; - case "r": - case "right": - this.moveTo(xy[0]+distance, xy[1], this.preanim(arguments, 2)); - break; - case "t": - case "top": - case "up": - this.moveTo(xy[0], xy[1]-distance, this.preanim(arguments, 2)); - break; - case "b": - case "bottom": - case "down": - this.moveTo(xy[0], xy[1]+distance, this.preanim(arguments, 2)); - break; - } - return this; - }, - - - clip : function(){ - if(!this.isClipped){ - this.isClipped = true; - this.originalClip = { - "o": this.getStyle("overflow"), - "x": this.getStyle("overflow-x"), - "y": this.getStyle("overflow-y") - }; - this.setStyle("overflow", "hidden"); - this.setStyle("overflow-x", "hidden"); - this.setStyle("overflow-y", "hidden"); - } - return this; - }, - - - unclip : function(){ - if(this.isClipped){ - this.isClipped = false; - var o = this.originalClip; - if(o.o){this.setStyle("overflow", o.o);} - if(o.x){this.setStyle("overflow-x", o.x);} - if(o.y){this.setStyle("overflow-y", o.y);} - } - return this; - }, - - - - getAnchorXY : function(anchor, local, s){ - - - - var w, h, vp = false; - if(!s){ - var d = this.dom; - if(d == document.body || d == document){ - vp = true; - w = D.getViewWidth(); h = D.getViewHeight(); - }else{ - w = this.getWidth(); h = this.getHeight(); - } - }else{ - w = s.width; h = s.height; - } - var x = 0, y = 0, r = Math.round; - switch((anchor || "tl").toLowerCase()){ - case "c": - x = r(w*.5); - y = r(h*.5); - break; - case "t": - x = r(w*.5); - y = 0; - break; - case "l": - x = 0; - y = r(h*.5); - break; - case "r": - x = w; - y = r(h*.5); - break; - case "b": - x = r(w*.5); - y = h; - break; - case "tl": - x = 0; - y = 0; - break; - case "bl": - x = 0; - y = h; - break; - case "br": - x = w; - y = h; - break; - case "tr": - x = w; - y = 0; - break; - } - if(local === true){ - return [x, y]; - } - if(vp){ - var sc = this.getScroll(); - return [x + sc.left, y + sc.top]; - } - - var o = this.getXY(); - return [x+o[0], y+o[1]]; - }, - - - getAlignToXY : function(el, p, o){ - el = Ext.get(el), d = this.dom; - if(!el.dom){ - throw "Element.alignTo with an element that doesn't exist"; - } - var c = false; - var p1 = "", p2 = ""; - o = o || [0,0]; - - if(!p){ - p = "tl-bl"; - }else if(p == "?"){ - p = "tl-bl?"; - }else if(p.indexOf("-") == -1){ - p = "tl-" + p; - } - p = p.toLowerCase(); - var m = p.match(/^([a-z]+)-([a-z]+)(\?)?$/); - if(!m){ - throw "Element.alignTo with an invalid alignment " + p; - } - p1 = m[1], p2 = m[2], c = m[3] ? true : false; - - - - var a1 = this.getAnchorXY(p1, true); - var a2 = el.getAnchorXY(p2, false); - var x = a2[0] - a1[0] + o[0]; - var y = a2[1] - a1[1] + o[1]; - if(c){ - - var w = this.getWidth(), h = this.getHeight(), r = el.getRegion(); - - var dw = D.getViewWidth()-5, dh = D.getViewHeight()-5; - - - - - var p1y = p1.charAt(0), p1x = p1.charAt(p1.length-1); - var p2y = p2.charAt(0), p2x = p2.charAt(p2.length-1); - var swapY = ((p1y=="t" && p2y=="b") || (p1y=="b" && p2y=="t")); - var swapX = ((p1x=="r" && p2x=="l") || (p1x=="l" && p2x=="r")); - - var doc = document; - var scrollX = (doc.documentElement.scrollLeft || doc.body.scrollLeft || 0)+5; - var scrollY = (doc.documentElement.scrollTop || doc.body.scrollTop || 0)+5; - - if((x+w) > dw){ - x = swapX ? r.left-w : dw-w; - } - if(x < scrollX){ - x = swapX ? r.right : scrollX; - } - if((y+h) > dh){ - y = swapY ? r.top-h : dh-h; - } - if (y < scrollY){ - y = swapY ? r.bottom : scrollY; - } - } - return [x,y]; - }, - - getConstrainToXY : function(){ - var os = {top:0, left:0, bottom:0, right: 0}; - - return function(el, local, offsets){ - el = Ext.get(el); - offsets = offsets ? Ext.applyIf(offsets, os) : os; - - var vw, vh, vx = 0, vy = 0; - if(el.dom == document.body || el.dom == document){ - vw = Ext.lib.Dom.getViewWidth(); - vh = Ext.lib.Dom.getViewHeight(); - }else{ - vw = el.dom.clientWidth; - vh = el.dom.clientHeight; - if(!local){ - var vxy = el.getXY(); - vx = vxy[0]; - vy = vxy[1]; - } - } - - var s = el.getScroll(); - - vx += offsets.left + s.left; - vy += offsets.top + s.top; - - vw -= offsets.right; - vh -= offsets.bottom; - - var vr = vx+vw; - var vb = vy+vh; - - var xy = !local ? this.getXY() : [this.getLeft(true), this.getTop(true)]; - var x = xy[0], y = xy[1]; - var w = this.dom.offsetWidth, h = this.dom.offsetHeight; - - - var moved = false; - - - if((x + w) > vr){ - x = vr - w; - moved = true; - } - if((y + h) > vb){ - y = vb - h; - moved = true; - } - - if(x < vx){ - x = vx; - moved = true; - } - if(y < vy){ - y = vy; - moved = true; - } - return moved ? [x, y] : false; - }; - }(), - - - alignTo : function(element, position, offsets, animate){ - var xy = this.getAlignToXY(element, position, offsets); - this.setXY(xy, this.preanim(arguments, 3)); - return this; - }, - - - anchorTo : function(el, alignment, offsets, animate, monitorScroll, callback){ - var action = function(){ - this.alignTo(el, alignment, offsets, animate); - Ext.callback(callback, this); - }; - Ext.EventManager.onWindowResize(action, this); - var tm = typeof monitorScroll; - if(tm != 'undefined'){ - Ext.EventManager.on(window, 'scroll', action, this, - {buffer: tm == 'number' ? monitorScroll : 50}); - } - action.call(this); - return this; - }, - - clearOpacity : function(){ - if (window.ActiveXObject) { - this.dom.style.filter = ""; - } else { - this.dom.style.opacity = ""; - this.dom.style["-moz-opacity"] = ""; - this.dom.style["-khtml-opacity"] = ""; - } - return this; - }, - - - hide : function(animate){ - this.setVisible(false, this.preanim(arguments, 0)); - return this; - }, - - - show : function(animate){ - this.setVisible(true, this.preanim(arguments, 0)); - return this; - }, - - - addUnits : function(size){ - return Ext.Element.addUnits(size, this.defaultUnit); - }, - - - beginMeasure : function(){ - var el = this.dom; - if(el.offsetWidth || el.offsetHeight){ - return this; - } - var changed = []; - var p = this.dom, b = document.body; - while((!el.offsetWidth && !el.offsetHeight) && p && p.tagName && p != b){ - var pe = Ext.get(p); - if(pe.getStyle('display') == 'none'){ - changed.push({el: p, visibility: pe.getStyle("visibility")}); - p.style.visibility = "hidden"; - p.style.display = "block"; - } - p = p.parentNode; - } - this._measureChanged = changed; - return this; - - }, - - - endMeasure : function(){ - var changed = this._measureChanged; - if(changed){ - for(var i = 0, len = changed.length; i < len; i++) { - var r = changed[i]; - r.el.style.visibility = r.visibility; - r.el.style.display = "none"; - } - this._measureChanged = null; - } - return this; - }, - - - update : function(html, loadScripts, callback){ - if(typeof html == "undefined"){ - html = ""; - } - if(loadScripts !== true){ - this.dom.innerHTML = html; - if(typeof callback == "function"){ - callback(); - } - return this; - } - var id = Ext.id(); - var dom = this.dom; - - html += ''; - - E.onAvailable(id, function(){ - var hd = document.getElementsByTagName("head")[0]; - var re = /(?:]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig; - var srcRe = /\ssrc=([\'\"])(.*?)\1/i; - var typeRe = /\stype=([\'\"])(.*?)\1/i; - - var match; - while(match = re.exec(html)){ - var attrs = match[1]; - var srcMatch = attrs ? attrs.match(srcRe) : false; - if(srcMatch && srcMatch[2]){ - var s = document.createElement("script"); - s.src = srcMatch[2]; - var typeMatch = attrs.match(typeRe); - if(typeMatch && typeMatch[2]){ - s.type = typeMatch[2]; - } - hd.appendChild(s); - }else if(match[2] && match[2].length > 0){ - eval(match[2]); - } - } - var el = document.getElementById(id); - if(el){el.parentNode.removeChild(el);} - if(typeof callback == "function"){ - callback(); - } - }); - dom.innerHTML = html.replace(/(?:)((\n|\r|.)*?)(?:<\/script>)/ig, ""); - return this; - }, - - - load : function(){ - var um = this.getUpdateManager(); - um.update.apply(um, arguments); - return this; - }, - - - getUpdateManager : function(){ - if(!this.updateManager){ - this.updateManager = new Ext.UpdateManager(this); - } - return this.updateManager; - }, - - - unselectable : function(){ - this.dom.unselectable = "on"; - this.swallowEvent("selectstart", true); - this.applyStyles("-moz-user-select:none;-khtml-user-select:none;"); - this.addClass("x-unselectable"); - return this; - }, - - - getCenterXY : function(){ - return this.getAlignToXY(document, 'c-c'); - }, - - - center : function(centerIn){ - this.alignTo(centerIn || document, 'c-c'); - return this; - }, - - - isBorderBox : function(){ - return noBoxAdjust[this.dom.tagName.toLowerCase()] || Ext.isBorderBox; - }, - - - getBox : function(contentBox, local){ - var xy; - if(!local){ - xy = this.getXY(); - }else{ - var left = parseInt(this.getStyle("left"), 10) || 0; - var top = parseInt(this.getStyle("top"), 10) || 0; - xy = [left, top]; - } - var el = this.dom, w = el.offsetWidth, h = el.offsetHeight, bx; - if(!contentBox){ - bx = {x: xy[0], y: xy[1], 0: xy[0], 1: xy[1], width: w, height: h}; - }else{ - var l = this.getBorderWidth("l")+this.getPadding("l"); - var r = this.getBorderWidth("r")+this.getPadding("r"); - var t = this.getBorderWidth("t")+this.getPadding("t"); - var b = this.getBorderWidth("b")+this.getPadding("b"); - bx = {x: xy[0]+l, y: xy[1]+t, 0: xy[0]+l, 1: xy[1]+t, width: w-(l+r), height: h-(t+b)}; - } - bx.right = bx.x + bx.width; - bx.bottom = bx.y + bx.height; - return bx; - }, - - - getFrameWidth : function(sides){ - return this.getPadding(sides) + this.getBorderWidth(sides); - }, - - - setBox : function(box, adjust, animate){ - var w = box.width, h = box.height; - if((adjust && !this.autoBoxAdjust) && !this.isBorderBox()){ - w -= (this.getBorderWidth("lr") + this.getPadding("lr")); - h -= (this.getBorderWidth("tb") + this.getPadding("tb")); - } - this.setBounds(box.x, box.y, w, h, this.preanim(arguments, 2)); - return this; - }, - - - repaint : function(){ - var dom = this.dom; - this.addClass("x-repaint"); - setTimeout(function(){ - Ext.get(dom).removeClass("x-repaint"); - }, 1); - return this; - }, - - - getMargins : function(side){ - if(!side){ - return { - top: parseInt(this.getStyle("margin-top"), 10) || 0, - left: parseInt(this.getStyle("margin-left"), 10) || 0, - bottom: parseInt(this.getStyle("margin-bottom"), 10) || 0, - right: parseInt(this.getStyle("margin-right"), 10) || 0 - }; - }else{ - return this.addStyles(side, El.margins); - } - }, - - addStyles : function(sides, styles){ - var val = 0; - for(var i = 0, len = sides.length; i < len; i++){ - var w = parseInt(this.getStyle(styles[sides.charAt(i)]), 10); - if(!isNaN(w)) val += w; - } - return val; - }, - - - createProxy : function(config, renderTo, matchBox){ - if(renderTo){ - renderTo = Ext.getDom(renderTo); - }else{ - renderTo = document.body; - } - config = typeof config == "object" ? - config : {tag : "div", cls: config}; - var proxy = Ext.DomHelper.append(renderTo, config, true); - if(matchBox){ - proxy.setBox(this.getBox()); - } - return proxy; - }, - - - mask : function(msg, msgCls){ - if(this.getStyle("position") == "static"){ - this.setStyle("position", "relative"); - } - if(!this._mask){ - this._mask = Ext.DomHelper.append(this.dom, {tag:"div", cls:"ext-el-mask"}, true); - } - this.addClass("x-masked"); - this._mask.setDisplayed(true); - if(typeof msg == 'string'){ - if(!this._maskMsg){ - this._maskMsg = Ext.DomHelper.append(this.dom, {tag:"div", cls:"ext-el-mask-msg", cn:{tag:'div'}}, true); - } - var mm = this._maskMsg; - mm.dom.className = msgCls ? "ext-el-mask-msg " + msgCls : "ext-el-mask-msg"; - mm.dom.firstChild.innerHTML = msg; - mm.setDisplayed(true); - mm.center(this); - } - return this._mask; - }, - - - unmask : function(removeEl){ - if(this._mask){ - if(removeEl === true){ - this._mask.remove(); - delete this._mask; - if(this._maskMsg){ - this._maskMsg.remove(); - delete this._maskMsg; - } - }else{ - this._mask.setDisplayed(false); - if(this._maskMsg){ - this._maskMsg.setDisplayed(false); - } - } - } - this.removeClass("x-masked"); - }, - - - isMasked : function(){ - return this._mask && this._mask.isVisible(); - }, - - - createShim : function(){ - var el = document.createElement('iframe'); - el.frameBorder = 'no'; - el.className = 'ext-shim'; - if(Ext.isIE && Ext.isSecure){ - el.src = Ext.SSL_SECURE_URL; - } - var shim = Ext.get(this.dom.parentNode.insertBefore(el, this.dom)); - shim.autoBoxAdjust = false; - return shim; - }, - - - remove : function(){ - if(this.dom.parentNode){ - this.dom.parentNode.removeChild(this.dom); - } - delete El.cache[this.dom.id]; - }, - - - addClassOnOver : function(className, preventFlicker){ - this.on("mouseover", function(){ - Ext.fly(this, '_internal').addClass(className); - }, this.dom); - var removeFn = function(e){ - if(preventFlicker !== true || !e.within(this, true)){ - Ext.fly(this, '_internal').removeClass(className); - } - }; - this.on("mouseout", removeFn, this.dom); - return this; - }, - - - addClassOnFocus : function(className){ - this.on("focus", function(){ - Ext.fly(this, '_internal').addClass(className); - }, this.dom); - this.on("blur", function(){ - Ext.fly(this, '_internal').removeClass(className); - }, this.dom); - return this; - }, - - addClassOnClick : function(className){ - var dom = this.dom; - this.on("mousedown", function(){ - Ext.fly(dom, '_internal').addClass(className); - var d = Ext.get(document); - var fn = function(){ - Ext.fly(dom, '_internal').removeClass(className); - d.removeListener("mouseup", fn); - }; - d.on("mouseup", fn); - }); - return this; - }, - - - swallowEvent : function(eventName, preventDefault){ - var fn = function(e){ - e.stopPropagation(); - if(preventDefault){ - e.preventDefault(); - } - }; - if(eventName instanceof Array){ - for(var i = 0, len = eventName.length; i < len; i++){ - this.on(eventName[i], fn); - } - return this; - } - this.on(eventName, fn); - return this; - }, - - - fitToParent : function(monitorResize, targetParent){ - var p = Ext.get(targetParent || this.dom.parentNode); - this.setSize(p.getComputedWidth()-p.getFrameWidth('lr'), p.getComputedHeight()-p.getFrameWidth('tb')); - if(monitorResize === true){ - Ext.EventManager.onWindowResize(this.fitToParent.createDelegate(this, [])); - } - return this; - }, - - - getNextSibling : function(){ - var n = this.dom.nextSibling; - while(n && n.nodeType != 1){ - n = n.nextSibling; - } - return n; - }, - - - getPrevSibling : function(){ - var n = this.dom.previousSibling; - while(n && n.nodeType != 1){ - n = n.previousSibling; - } - return n; - }, - - - - appendChild: function(el){ - el = Ext.get(el); - el.appendTo(this); - return this; - }, - - - createChild: function(config, insertBefore, returnDom){ - config = config || {tag:'div'}; - if(insertBefore){ - return Ext.DomHelper.insertBefore(insertBefore, config, returnDom !== true); - } - return Ext.DomHelper[!this.dom.firstChild ? 'overwrite' : 'append'](this.dom, config, returnDom !== true); - }, - - - appendTo: function(el){ - el = Ext.getDom(el); - el.appendChild(this.dom); - return this; - }, - - - insertBefore: function(el){ - el = Ext.getDom(el); - el.parentNode.insertBefore(this.dom, el); - return this; - }, - - - insertAfter: function(el){ - el = Ext.getDom(el); - el.parentNode.insertBefore(this.dom, el.nextSibling); - return this; - }, - - - insertFirst: function(el, returnDom){ - el = el || {}; - if(typeof el == 'object' && !el.nodeType){ - return this.createChild(el, this.dom.firstChild, returnDom); - }else{ - el = Ext.getDom(el); - this.dom.insertBefore(el, this.dom.firstChild); - return !returnDom ? Ext.get(el) : el; - } - }, - - - insertSibling: function(el, where, returnDom){ - where = where ? where.toLowerCase() : 'before'; - el = el || {}; - var rt, refNode = where == 'before' ? this.dom : this.dom.nextSibling; - - if(typeof el == 'object' && !el.nodeType){ - if(where == 'after' && !this.dom.nextSibling){ - rt = Ext.DomHelper.append(this.dom.parentNode, el, !returnDom); - }else{ - rt = Ext.DomHelper[where == 'after' ? 'insertAfter' : 'insertBefore'](this.dom, el, !returnDom); - } - - }else{ - rt = this.dom.parentNode.insertBefore(Ext.getDom(el), - where == 'before' ? this.dom : this.dom.nextSibling); - if(!returnDom){ - rt = Ext.get(rt); - } - } - return rt; - }, - - - wrap: function(config, returnDom){ - if(!config){ - config = {tag: "div"}; - } - var newEl = Ext.DomHelper.insertBefore(this.dom, config, !returnDom); - newEl.dom ? newEl.dom.appendChild(this.dom) : newEl.appendChild(this.dom); - return newEl; - }, - - - replace: function(el){ - el = Ext.get(el); - this.insertBefore(el); - el.remove(); - return this; - }, - - - insertHtml : function(where, html){ - return Ext.DomHelper.insertHtml(where, this.dom, html); - }, - - - set : function(o, useSet){ - var el = this.dom; - useSet = typeof useSet == 'undefined' ? (el.setAttribute ? true : false) : useSet; - for(var attr in o){ - if(attr == "style" || typeof o[attr] == "function") continue; - if(attr=="cls"){ - el.className = o["cls"]; - }else{ - if(useSet) el.setAttribute(attr, o[attr]); - else el[attr] = o[attr]; - } - } - Ext.DomHelper.applyStyles(el, o.style); - return this; - }, - - - addKeyListener : function(key, fn, scope){ - var config; - if(typeof key != "object" || key instanceof Array){ - config = { - key: key, - fn: fn, - scope: scope - }; - }else{ - config = { - key : key.key, - shift : key.shift, - ctrl : key.ctrl, - alt : key.alt, - fn: fn, - scope: scope - }; - } - return new Ext.KeyMap(this, config); - }, - - - addKeyMap : function(config){ - return new Ext.KeyMap(this, config); - }, - - - isScrollable : function(){ - var dom = this.dom; - return dom.scrollHeight > dom.clientHeight || dom.scrollWidth > dom.clientWidth; - }, - - - - scrollTo : function(side, value, animate){ - var prop = side.toLowerCase() == "left" ? "scrollLeft" : "scrollTop"; - if(!animate || !A){ - this.dom[prop] = value; - }else{ - var to = prop == "scrollLeft" ? [value, this.dom.scrollTop] : [this.dom.scrollLeft, value]; - this.anim({scroll: {"to": to}}, this.preanim(arguments, 2), 'scroll'); - } - return this; - }, - - - scroll : function(direction, distance, animate){ - if(!this.isScrollable()){ - return; - } - var el = this.dom; - var l = el.scrollLeft, t = el.scrollTop; - var w = el.scrollWidth, h = el.scrollHeight; - var cw = el.clientWidth, ch = el.clientHeight; - direction = direction.toLowerCase(); - var scrolled = false; - var a = this.preanim(arguments, 2); - switch(direction){ - case "l": - case "left": - if(w - l > cw){ - var v = Math.min(l + distance, w-cw); - this.scrollTo("left", v, a); - scrolled = true; - } - break; - case "r": - case "right": - if(l > 0){ - var v = Math.max(l - distance, 0); - this.scrollTo("left", v, a); - scrolled = true; - } - break; - case "t": - case "top": - case "up": - if(t > 0){ - var v = Math.max(t - distance, 0); - this.scrollTo("top", v, a); - scrolled = true; - } - break; - case "b": - case "bottom": - case "down": - if(h - t > ch){ - var v = Math.min(t + distance, h-ch); - this.scrollTo("top", v, a); - scrolled = true; - } - break; - } - return scrolled; - }, - - - translatePoints : function(x, y){ - if(typeof x == 'object' || x instanceof Array){ - y = x[1]; x = x[0]; - } - var p = this.getStyle('position'); - var o = this.getXY(); - - var l = parseInt(this.getStyle('left'), 10); - var t = parseInt(this.getStyle('top'), 10); - - if(isNaN(l)){ - l = (p == "relative") ? 0 : this.dom.offsetLeft; - } - if(isNaN(t)){ - t = (p == "relative") ? 0 : this.dom.offsetTop; - } - - return {left: (x - o[0] + l), top: (y - o[1] + t)}; - }, - - getScroll : function(){ - var d = this.dom, doc = document; - if(d == doc || d == doc.body){ - var l = window.pageXOffset || doc.documentElement.scrollLeft || doc.body.scrollLeft || 0; - var t = window.pageYOffset || doc.documentElement.scrollTop || doc.body.scrollTop || 0; - return {left: l, top: t}; - }else{ - return {left: d.scrollLeft, top: d.scrollTop}; - } - }, - - - getColor : function(attr, defaultValue, prefix){ - var v = this.getStyle(attr); - if(!v || v == "transparent" || v == "inherit") { - return defaultValue; - } - var color = typeof prefix == "undefined" ? "#" : prefix; - if(v.substr(0, 4) == "rgb("){ - var rvs = v.slice(4, v.length -1).split(","); - for(var i = 0; i < 3; i++){ - var h = parseInt(rvs[i]).toString(16); - if(h < 16){ - h = "0" + h; - } - color += h; - } - } else { - if(v.substr(0, 1) == "#"){ - if(v.length == 4) { - for(var i = 1; i < 4; i++){ - var c = v.charAt(i); - color += c + c; - } - }else if(v.length == 7){ - color += v.substr(1); - } - } - } - return(color.length > 5 ? color.toLowerCase() : defaultValue); - }, - - boxWrap : function(cls){ - cls = cls || 'x-box'; - var el = Ext.get(this.insertHtml('beforeBegin', String.format('
      '+El.boxMarkup+'
      ', cls))); - el.child('.'+cls+'-mc').dom.appendChild(this.dom); - return el; - }, - - getAttributeNS : Ext.isIE ? function(ns, name){ - var d = this.dom; - var type = typeof d[ns+":"+name]; - if(type != 'undefined' && type != 'unknown'){ - return d[ns+":"+name]; - } - return d[name]; - } : function(ns, name){ - var d = this.dom; - return d.getAttributeNS(ns, name) || d.getAttribute(ns+":"+name) || d.getAttribute(name) || d[name]; - } -}; - -var ep = El.prototype; - - -ep.on = ep.addListener; - -ep.mon = ep.addListener; - - -ep.un = ep.removeListener; - - -ep.autoBoxAdjust = true; - -ep.autoDisplayMode = true; - -El.unitPattern = /\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i; - -El.addUnits = function(v, defaultUnit){ - if(v === "" || v == "auto"){ - return v; - } - if(v === undefined){ - return ''; - } - if(typeof v == "number" || !El.unitPattern.test(v)){ - return v + (defaultUnit || 'px'); - } - return v; -}; - - -El.boxMarkup = '
      '; - -El.VISIBILITY = 1; - -El.DISPLAY = 2; - -El.borders = {l: "border-left-width", r: "border-right-width", t: "border-top-width", b: "border-bottom-width"}; -El.paddings = {l: "padding-left", r: "padding-right", t: "padding-top", b: "padding-bottom"}; -El.margins = {l: "margin-left", r: "margin-right", t: "margin-top", b: "margin-bottom"}; - - - - -El.cache = {}; - -var docEl; - - -El.get = function(el){ - var ex, elm, id; - if(!el){ return null; } - if(typeof el == "string"){ - if(!(elm = document.getElementById(el))){ - return null; - } - if(ex = El.cache[el]){ - ex.dom = elm; - }else{ - ex = El.cache[el] = new El(elm); - } - return ex; - }else if(el.tagName){ - if(!(id = el.id)){ - id = Ext.id(el); - } - if(ex = El.cache[id]){ - ex.dom = el; - }else{ - ex = El.cache[id] = new El(el); - } - return ex; - }else if(el instanceof El){ - if(el != docEl){ - el.dom = document.getElementById(el.id) || el.dom; - - El.cache[el.id] = el; - } - return el; - }else if(el.isComposite){ - return el; - }else if(el instanceof Array){ - return El.select(el); - }else if(el == document){ - - if(!docEl){ - var f = function(){}; - f.prototype = El.prototype; - docEl = new f(); - docEl.dom = document; - } - return docEl; - } - return null; -}; - -El.uncache = function(el){ - for(var i = 0, a = arguments, len = a.length; i < len; i++) { - if(a[i]){ - delete El.cache[a[i].id || a[i]]; - } - } -}; - - -El.Flyweight = function(dom){ - this.dom = dom; -}; -El.Flyweight.prototype = El.prototype; - -El._flyweights = {}; - -El.fly = function(el, named){ - named = named || '_global'; - el = Ext.getDom(el); - if(!el){ - return null; - } - if(!El._flyweights[named]){ - El._flyweights[named] = new El.Flyweight(); - } - El._flyweights[named].dom = el; - return El._flyweights[named]; -}; - - -Ext.get = El.get; - -Ext.fly = El.fly; - - -var noBoxAdjust = Ext.isStrict ? { - select:1 -} : { - input:1, select:1, textarea:1 -}; -if(Ext.isIE || Ext.isGecko){ - noBoxAdjust['button'] = 1; -} - - -Ext.EventManager.on(window, 'unload', function(){ - delete El.cache; - delete El._flyweights; -}); -})(); - - - -Ext.enableFx = true; - - -Ext.Fx = { - - slideIn : function(anchor, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - - anchor = anchor || "t"; - - this.fixDisplay(); - - var r = this.getFxRestore(); - var b = this.getBox(); - this.setSize(b); - - var wrap = this.fxWrap(r.pos, o, "hidden"); - - var st = this.dom.style; - st.visibility = "visible"; - st.position = "absolute"; - - var after = function(){ - el.fxUnwrap(wrap, r.pos, o); - st.width = r.width; - st.height = r.height; - el.afterFx(o); - }; - var a, pt = {to: [b.x, b.y]}, bw = {to: b.width}, bh = {to: b.height}; - - switch(anchor.toLowerCase()){ - case "t": - wrap.setSize(b.width, 0); - st.left = st.bottom = "0"; - a = {height: bh}; - break; - case "l": - wrap.setSize(0, b.height); - st.right = st.top = "0"; - a = {width: bw}; - break; - case "r": - wrap.setSize(0, b.height); - wrap.setX(b.right); - st.left = st.top = "0"; - a = {width: bw, points: pt}; - break; - case "b": - wrap.setSize(b.width, 0); - wrap.setY(b.bottom); - st.left = st.top = "0"; - a = {height: bh, points: pt}; - break; - case "tl": - wrap.setSize(0, 0); - st.right = st.bottom = "0"; - a = {width: bw, height: bh}; - break; - case "bl": - wrap.setSize(0, 0); - wrap.setY(b.y+b.height); - st.right = st.top = "0"; - a = {width: bw, height: bh, points: pt}; - break; - case "br": - wrap.setSize(0, 0); - wrap.setXY([b.right, b.bottom]); - st.left = st.top = "0"; - a = {width: bw, height: bh, points: pt}; - break; - case "tr": - wrap.setSize(0, 0); - wrap.setX(b.x+b.width); - st.left = st.bottom = "0"; - a = {width: bw, height: bh, points: pt}; - break; - } - this.dom.style.visibility = "visible"; - wrap.show(); - - arguments.callee.anim = wrap.fxanim(a, - o, - 'motion', - .5, - 'easeOut', after); - }); - return this; - }, - - - slideOut : function(anchor, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - - anchor = anchor || "t"; - - var r = this.getFxRestore(); - - var b = this.getBox(); - this.setSize(b); - - var wrap = this.fxWrap(r.pos, o, "visible"); - - var st = this.dom.style; - st.visibility = "visible"; - st.position = "absolute"; - - wrap.setSize(b); - - var after = function(){ - if(o.useDisplay){ - el.setDisplayed(false); - }else{ - el.hide(); - } - - el.fxUnwrap(wrap, r.pos, o); - - st.width = r.width; - st.height = r.height; - - el.afterFx(o); - }; - - var a, zero = {to: 0}; - switch(anchor.toLowerCase()){ - case "t": - st.left = st.bottom = "0"; - a = {height: zero}; - break; - case "l": - st.right = st.top = "0"; - a = {width: zero}; - break; - case "r": - st.left = st.top = "0"; - a = {width: zero, points: {to:[b.right, b.y]}}; - break; - case "b": - st.left = st.top = "0"; - a = {height: zero, points: {to:[b.x, b.bottom]}}; - break; - case "tl": - st.right = st.bottom = "0"; - a = {width: zero, height: zero}; - break; - case "bl": - st.right = st.top = "0"; - a = {width: zero, height: zero, points: {to:[b.x, b.bottom]}}; - break; - case "br": - st.left = st.top = "0"; - a = {width: zero, height: zero, points: {to:[b.x+b.width, b.bottom]}}; - break; - case "tr": - st.left = st.bottom = "0"; - a = {width: zero, height: zero, points: {to:[b.right, b.y]}}; - break; - } - - arguments.callee.anim = wrap.fxanim(a, - o, - 'motion', - .5, - "easeOut", after); - }); - return this; - }, - - - puff : function(o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - this.clearOpacity(); - this.show(); - - var r = this.getFxRestore(); - var st = this.dom.style; - - var after = function(){ - if(o.useDisplay){ - el.setDisplayed(false); - }else{ - el.hide(); - } - - el.clearOpacity(); - - el.setPositioning(r.pos); - st.width = r.width; - st.height = r.height; - st.fontSize = ''; - el.afterFx(o); - }; - - var width = this.getWidth(); - var height = this.getHeight(); - - arguments.callee.anim = this.fxanim({ - width : {to: this.adjustWidth(width * 2)}, - height : {to: this.adjustHeight(height * 2)}, - points : {by: [-(width * .5), -(height * .5)]}, - opacity : {to: 0}, - fontSize: {to:200, unit: "%"} - }, - o, - 'motion', - .5, - "easeOut", after); - }); - return this; - }, - - - switchOff : function(o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - this.clearOpacity(); - this.clip(); - - var r = this.getFxRestore(); - var st = this.dom.style; - - var after = function(){ - if(o.useDisplay){ - el.setDisplayed(false); - }else{ - el.hide(); - } - - el.clearOpacity(); - el.setPositioning(r.pos); - st.width = r.width; - st.height = r.height; - - el.afterFx(o); - }; - - this.fxanim({opacity:{to:0.3}}, null, null, .1, null, function(){ - this.clearOpacity(); - (function(){ - this.fxanim({ - height:{to:1}, - points:{by:[0, this.getHeight() * .5]} - }, o, 'motion', 0.3, 'easeIn', after); - }).defer(100, this); - }); - }); - return this; - }, - - - highlight : function(color, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - color = color || "ffff9c"; - attr = o.attr || "backgroundColor"; - - this.clearOpacity(); - this.show(); - - var origColor = this.getColor(attr); - var restoreColor = this.dom.style[attr]; - endColor = (o.endColor || origColor) || "ffffff"; - - var after = function(){ - el.dom.style[attr] = restoreColor; - el.afterFx(o); - }; - - var a = {}; - a[attr] = {from: color, to: endColor}; - arguments.callee.anim = this.fxanim(a, - o, - 'color', - 1, - 'easeIn', after); - }); - return this; - }, - - - frame : function(color, count, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - color = color || "#C3DAF9"; - if(color.length == 6){ - color = "#" + color; - } - count = count || 1; - duration = o.duration || 1; - this.show(); - - var b = this.getBox(); - var animFn = function(){ - var proxy = this.createProxy({ - tag:"div", - style:{ - visbility:"hidden", - position:"absolute", - "z-index":"35000", border:"0px solid " + color - } - }); - var scale = Ext.isBorderBox ? 2 : 1; - proxy.animate({ - top:{from:b.y, to:b.y - 20}, - left:{from:b.x, to:b.x - 20}, - borderWidth:{from:0, to:10}, - opacity:{from:1, to:0}, - height:{from:b.height, to:(b.height + (20*scale))}, - width:{from:b.width, to:(b.width + (20*scale))} - }, duration, function(){ - proxy.remove(); - }); - if(--count > 0){ - animFn.defer((duration/2)*1000, this); - }else{ - el.afterFx(o); - } - }; - animFn.call(this); - }); - return this; - }, - - - pause : function(seconds){ - var el = this.getFxEl(); - var o = {}; - - el.queueFx(o, function(){ - setTimeout(function(){ - el.afterFx(o); - }, seconds * 1000); - }); - return this; - }, - - - fadeIn : function(o){ - var el = this.getFxEl(); - o = o || {}; - el.queueFx(o, function(){ - this.setOpacity(0); - this.fixDisplay(); - this.dom.style.visibility = 'visible'; - var to = o.endOpacity || 1; - arguments.callee.anim = this.fxanim({opacity:{to:to}}, - o, null, .5, "easeOut", function(){ - if(to == 1){ - this.clearOpacity(); - } - el.afterFx(o); - }); - }); - return this; - }, - - - fadeOut : function(o){ - var el = this.getFxEl(); - o = o || {}; - el.queueFx(o, function(){ - arguments.callee.anim = this.fxanim({opacity:{to:o.endOpacity || 0}}, - o, null, .5, "easeOut", function(){ - if(this.visibilityMode == Ext.Element.DISPLAY || o.useDisplay){ - this.dom.style.display = "none"; - }else{ - this.dom.style.visibility = "hidden"; - } - this.clearOpacity(); - el.afterFx(o); - }); - }); - return this; - }, - - - scale : function(w, h, o){ - this.shift(Ext.apply({}, o, { - width: w, - height: h - })); - return this; - }, - - - shift : function(o){ - var el = this.getFxEl(); - o = o || {}; - el.queueFx(o, function(){ - var a = {}, w = o.width, h = o.height, x = o.x, y = o.y, op = o.opacity; - if(w !== undefined){ - a.width = {to: this.adjustWidth(w)}; - } - if(h !== undefined){ - a.height = {to: this.adjustHeight(h)}; - } - if(x !== undefined || y !== undefined){ - a.points = {to: [ - x !== undefined ? x : this.getX(), - y !== undefined ? y : this.getY() - ]}; - } - if(op !== undefined){ - a.opacity = {to: op}; - } - if(o.xy !== undefined){ - a.points = {to: o.xy}; - } - arguments.callee.anim = this.fxanim(a, - o, 'motion', .35, "easeOut", function(){ - el.afterFx(o); - }); - }); - return this; - }, - - - ghost : function(anchor, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - anchor = anchor || "b"; - - var r = this.getFxRestore(); - var w = this.getWidth(), - h = this.getHeight(); - - var st = this.dom.style; - - var after = function(){ - if(o.useDisplay){ - el.setDisplayed(false); - }else{ - el.hide(); - } - - el.clearOpacity(); - el.setPositioning(r.pos); - st.width = r.width; - st.height = r.height; - - el.afterFx(o); - }; - - var a = {opacity: {to: 0}, points: {}}, pt = a.points; - switch(anchor.toLowerCase()){ - case "t": - pt.by = [0, -h]; - break; - case "l": - pt.by = [-w, 0]; - break; - case "r": - pt.by = [w, 0]; - break; - case "b": - pt.by = [0, h]; - break; - case "tl": - pt.by = [-w, -h]; - break; - case "bl": - pt.by = [-w, h]; - break; - case "br": - pt.by = [w, h]; - break; - case "tr": - pt.by = [w, -h]; - break; - } - - arguments.callee.anim = this.fxanim(a, - o, - 'motion', - .5, - "easeOut", after); - }); - return this; - }, - - - syncFx : function(){ - this.fxDefaults = Ext.apply(this.fxDefaults || {}, { - block : false, - concurrent : true, - stopFx : false - }); - return this; - }, - - - sequenceFx : function(){ - this.fxDefaults = Ext.apply(this.fxDefaults || {}, { - block : false, - concurrent : false, - stopFx : false - }); - return this; - }, - - - nextFx : function(){ - var ef = this.fxQueue[0]; - if(ef){ - ef.call(this); - } - }, - - - hasActiveFx : function(){ - return this.fxQueue && this.fxQueue[0]; - }, - - - stopFx : function(){ - if(this.hasActiveFx()){ - var cur = this.fxQueue[0]; - if(cur && cur.anim && cur.anim.isAnimated()){ - this.fxQueue = [cur]; cur.anim.stop(true); - } - } - return this; - }, - - - beforeFx : function(o){ - if(this.hasActiveFx() && !o.concurrent){ - if(o.stopFx){ - this.stopFx(); - return true; - } - return false; - } - return true; - }, - - - hasFxBlock : function(){ - var q = this.fxQueue; - return q && q[0] && q[0].block; - }, - - - queueFx : function(o, fn){ - if(!this.fxQueue){ - this.fxQueue = []; - } - if(!this.hasFxBlock()){ - Ext.applyIf(o, this.fxDefaults); - if(!o.concurrent){ - var run = this.beforeFx(o); - fn.block = o.block; - this.fxQueue.push(fn); - if(run){ - this.nextFx(); - } - }else{ - fn.call(this); - } - } - return this; - }, - - - fxWrap : function(pos, o, vis){ - var wrap; - if(!o.wrap || !(wrap = Ext.get(o.wrap))){ - var wrapXY; - if(o.fixPosition){ - wrapXY = this.getXY(); - } - var div = document.createElement("div"); - div.style.visibility = vis; - wrap = Ext.get(this.dom.parentNode.insertBefore(div, this.dom)); - wrap.setPositioning(pos); - if(wrap.getStyle("position") == "static"){ - wrap.position("relative"); - } - this.clearPositioning('auto'); - wrap.clip(); - wrap.dom.appendChild(this.dom); - if(wrapXY){ - wrap.setXY(wrapXY); - } - } - return wrap; - }, - - - fxUnwrap : function(wrap, pos, o){ - this.clearPositioning(); - this.setPositioning(pos); - if(!o.wrap){ - wrap.dom.parentNode.insertBefore(this.dom, wrap.dom); - wrap.remove(); - } - }, - - - getFxRestore : function(){ - var st = this.dom.style; - return {pos: this.getPositioning(), width: st.width, height : st.height}; - }, - - - afterFx : function(o){ - if(o.afterStyle){ - this.applyStyles(o.afterStyle); - } - if(o.afterCls){ - this.addClass(o.afterCls); - } - if(o.remove === true){ - this.remove(); - } - Ext.callback(o.callback, o.scope, [this]); - if(!o.concurrent){ - this.fxQueue.shift(); - this.nextFx(); - } - }, - - - getFxEl : function(){ return Ext.get(this.dom); - }, - - - fxanim : function(args, opt, animType, defaultDur, defaultEase, cb){ - animType = animType || 'run'; - opt = opt || {}; - var anim = Ext.lib.Anim[animType]( - this.dom, args, - (opt.duration || defaultDur) || .35, - (opt.easing || defaultEase) || 'easeOut', - function(){ - Ext.callback(cb, this); - }, - this - ); - opt.anim = anim; - return anim; - } -}; - -Ext.Fx.resize = Ext.Fx.scale; - -Ext.apply(Ext.Element.prototype, Ext.Fx); - - -Ext.CompositeElement = function(els){ - this.elements = []; - this.addElements(els); -}; -Ext.CompositeElement.prototype = { - isComposite: true, - addElements : function(els){ - if(!els) return this; - if(typeof els == "string"){ - els = Ext.Element.selectorFunction(els); - } - var yels = this.elements; - var index = yels.length-1; - for(var i = 0, len = els.length; i < len; i++) { - yels[++index] = Ext.get(els[i], true); - } - return this; - }, - invoke : function(fn, args){ - var els = this.elements; - for(var i = 0, len = els.length; i < len; i++) { - Ext.Element.prototype[fn].apply(els[i], args); - } - return this; - }, - - add : function(els){ - if(typeof els == "string"){ - this.addElements(Ext.Element.selectorFunction(els)); - }else if(els.length !== undefined){ - this.addElements(els); - }else{ - this.addElements([els]); - } - return this; - }, - - each : function(fn, scope){ - var els = this.elements; - for(var i = 0, len = els.length; i < len; i++){ - if(fn.call(scope || els[i], els[i], this, i) === false) { - break; - } - } - return this; - }, - - - item : function(index){ - return this.elements[index]; - } -}; -(function(){ -Ext.CompositeElement.createCall = function(proto, fnName){ - if(!proto[fnName]){ - proto[fnName] = function(){ - return this.invoke(fnName, arguments); - }; - } -}; -for(var fnName in Ext.Element.prototype){ - if(typeof Ext.Element.prototype[fnName] == "function"){ - Ext.CompositeElement.createCall(Ext.CompositeElement.prototype, fnName); - } -}; -})(); - - -Ext.CompositeElementLite = function(els){ - Ext.CompositeElementLite.superclass.constructor.call(this, els); - var flyEl = function(){}; - flyEl.prototype = Ext.Element.prototype; - this.el = new Ext.Element.Flyweight(); -}; -Ext.extend(Ext.CompositeElementLite, Ext.CompositeElement, { - addElements : function(els){ - if(els){ - if(els instanceof Array){ - this.elements = this.elements.concat(els); - }else{ - var yels = this.elements; - var index = yels.length-1; - for(var i = 0, len = els.length; i < len; i++) { - yels[++index] = els[i]; - } - } - } - return this; - }, - invoke : function(fn, args){ - var els = this.elements; - var el = this.el; - for(var i = 0, len = els.length; i < len; i++) { - el.dom = els[i]; - Ext.Element.prototype[fn].apply(el, args); - } - return this; - }, - - item : function(index){ - this.el.dom = this.elements[index]; - return this.el; - }, - - - addListener : function(eventName, handler, scope, opt){ - var els = this.elements; - for(var i = 0, len = els.length; i < len; i++) { - Ext.EventManager.on(els[i], eventName, handler, scope || els[i], opt); - } - return this; - }, - - - each : function(fn, scope){ - var els = this.elements; - var el = this.el; - for(var i = 0, len = els.length; i < len; i++){ - el.dom = els[i]; - if(fn.call(scope || el, el, this, i) === false){ - break; - } - } - return this; - } -}); -Ext.CompositeElementLite.prototype.on = Ext.CompositeElementLite.prototype.addListener; -if(Ext.DomQuery){ - Ext.Element.selectorFunction = Ext.DomQuery.select; -} - -Ext.Element.select = function(selector, unique){ - var els; - if(typeof selector == "string"){ - els = Ext.Element.selectorFunction(selector); - }else if(selector.length !== undefined){ - els = selector; - }else{ - throw "Invalid selector"; - } - if(unique === true){ - return new Ext.CompositeElement(els); - }else{ - return new Ext.CompositeElementLite(els); - } -}; - -Ext.select = Ext.Element.select; - -Ext.UpdateManager = function(el, forceNew){ - el = Ext.get(el); - if(!forceNew && el.updateManager){ - return el.updateManager; - } - - this.el = el; - - this.defaultUrl = null; - - this.addEvents({ - - "beforeupdate": true, - - "update": true, - - "failure": true - }); - var d = Ext.UpdateManager.defaults; - - this.sslBlankUrl = d.sslBlankUrl; - - this.disableCaching = d.disableCaching; - - this.indicatorText = d.indicatorText; - - this.showLoadIndicator = d.showLoadIndicator; - - this.timeout = d.timeout; - - - this.loadScripts = d.loadScripts; - - - this.transaction = null; - - - this.autoRefreshProcId = null; - - this.refreshDelegate = this.refresh.createDelegate(this); - - this.updateDelegate = this.update.createDelegate(this); - - this.formUpdateDelegate = this.formUpdate.createDelegate(this); - - this.successDelegate = this.processSuccess.createDelegate(this); - - this.failureDelegate = this.processFailure.createDelegate(this); - - - this.renderer = new Ext.UpdateManager.BasicRenderer(); - - Ext.UpdateManager.superclass.constructor.call(this); -}; - -Ext.extend(Ext.UpdateManager, Ext.util.Observable, { - - getEl : function(){ - return this.el; - }, - - update : function(url, params, callback, discardUrl){ - if(this.fireEvent("beforeupdate", this.el, url, params) !== false){ - var method = this.method; - if(typeof url == "object"){ - var cfg = url; - url = cfg.url; - params = params || cfg.params; - callback = callback || cfg.callback; - discardUrl = discardUrl || cfg.discardUrl; - if(callback && cfg.scope){ - callback = callback.createDelegate(cfg.scope); - } - if(typeof cfg.method != "undefined"){method = cfg.method;}; - if(typeof cfg.nocache != "undefined"){this.disableCaching = cfg.nocache;}; - if(typeof cfg.text != "undefined"){this.indicatorText = '
      '+cfg.text+"
      ";}; - if(typeof cfg.scripts != "undefined"){this.loadScripts = cfg.scripts;}; - if(typeof cfg.timeout != "undefined"){this.timeout = cfg.timeout;}; - } - this.showLoading(); - if(!discardUrl){ - this.defaultUrl = url; - } - if(typeof url == "function"){ - url = url.call(this); - } - if(typeof params == "function"){ - params = params(); - } - if(params && typeof params != "string"){ - var buf = []; - for(var key in params){ - if(typeof params[key] != "function"){ - buf.push(encodeURIComponent(key), "=", encodeURIComponent(params[key]), "&"); - } - } - delete buf[buf.length-1]; - params = buf.join(""); - } - var cb = { - success: this.successDelegate, - failure: this.failureDelegate, - timeout: (this.timeout*1000), - argument: {"url": url, "form": null, "callback": callback, "params": params} - }; - method = method || (params ? "POST" : "GET"); - if(method == "GET"){ - url = this.prepareUrl(url); - } - this.transaction = Ext.lib.Ajax.request(method, url, cb, params); - } - }, - - - formUpdate : function(form, url, reset, callback){ - if(this.fireEvent("beforeupdate", this.el, form, url) !== false){ - formEl = Ext.getDom(form); - if(typeof url == "function"){ - url = url.call(this); - } - if(typeof params == "function"){ - params = params(); - } - url = url || formEl.action; - var cb = { - success: this.successDelegate, - failure: this.failureDelegate, - timeout: (this.timeout*1000), - argument: {"url": url, "form": formEl, "callback": callback, "reset": reset} - }; - var isUpload = false; - var enctype = formEl.getAttribute("enctype"); - if(enctype && enctype.toLowerCase() == "multipart/form-data"){ - isUpload = true; - cb.upload = this.successDelegate; - } - this.transaction = Ext.lib.Ajax.formRequest(formEl, url, cb, null, isUpload, this.sslBlankUrl); - this.showLoading.defer(1, this); - } - }, - - - refresh : function(callback){ - if(this.defaultUrl == null){ - return; - } - this.update(this.defaultUrl, null, callback, true); - }, - - - startAutoRefresh : function(interval, url, params, callback, refreshNow){ - if(refreshNow){ - this.update(url || this.defaultUrl, params, callback, true); - } - if(this.autoRefreshProcId){ - clearInterval(this.autoRefreshProcId); - } - this.autoRefreshProcId = setInterval(this.update.createDelegate(this, [url || this.defaultUrl, params, callback, true]), interval*1000); - }, - - - stopAutoRefresh : function(){ - if(this.autoRefreshProcId){ - clearInterval(this.autoRefreshProcId); - delete this.autoRefreshProcId; - } - }, - - isAutoRefreshing : function(){ - return this.autoRefreshProcId ? true : false; - }, - - showLoading : function(){ - if(this.showLoadIndicator){ - this.el.update(this.indicatorText); - } - }, - - - prepareUrl : function(url){ - if(this.disableCaching){ - var append = "_dc=" + (new Date().getTime()); - if(url.indexOf("?") !== -1){ - url += "&" + append; - }else{ - url += "?" + append; - } - } - return url; - }, - - - processSuccess : function(response){ - this.transaction = null; - if(response.argument.form && response.argument.reset){ - try{ - response.argument.form.reset(); - }catch(e){} - } - if(this.loadScripts){ - this.renderer.render(this.el, response, this, - this.updateComplete.createDelegate(this, [response])); - }else{ - this.renderer.render(this.el, response, this); - this.updateComplete(response); - } - }, - - updateComplete : function(response){ - this.fireEvent("update", this.el, response); - if(typeof response.argument.callback == "function"){ - response.argument.callback(this.el, true, response); - } - }, - - - processFailure : function(response){ - this.transaction = null; - this.fireEvent("failure", this.el, response); - if(typeof response.argument.callback == "function"){ - response.argument.callback(this.el, false, response); - } - }, - - - setRenderer : function(renderer){ - this.renderer = renderer; - }, - - getRenderer : function(){ - return this.renderer; - }, - - - setDefaultUrl : function(defaultUrl){ - this.defaultUrl = defaultUrl; - }, - - - abort : function(){ - if(this.transaction){ - Ext.lib.Ajax.abort(this.transaction); - } - }, - - - isUpdating : function(){ - if(this.transaction){ - return Ext.lib.Ajax.isCallInProgress(this.transaction); - } - return false; - } -}); - - - Ext.UpdateManager.defaults = { - - timeout : 30, - - - loadScripts : false, - - - sslBlankUrl : (Ext.SSL_SECURE_URL || "javascript:false"), - - disableCaching : false, - - showLoadIndicator : true, - - indicatorText : '
      Loading...
      ' - }; - - -Ext.UpdateManager.updateElement = function(el, url, params, options){ - var um = Ext.get(el, true).getUpdateManager(); - Ext.apply(um, options); - um.update(url, params, options ? options.callback : null); -}; - -Ext.UpdateManager.update = Ext.UpdateManager.updateElement; - -Ext.UpdateManager.BasicRenderer = function(){}; - -Ext.UpdateManager.BasicRenderer.prototype = { - - render : function(el, response, updateManager, callback){ - el.update(response.responseText, updateManager.loadScripts, callback); - } -}; - - -Ext.util.DelayedTask = function(fn, scope, args){ - var id = null, d, t; - - var call = function(){ - var now = new Date().getTime(); - if(now - t >= d){ - clearInterval(id); - id = null; - fn.apply(scope, args || []); - } - }; - - this.delay = function(delay, newFn, newScope, newArgs){ - if(id && delay != d){ - this.cancel(); - } - d = delay; - t = new Date().getTime(); - fn = newFn || fn; - scope = newScope || scope; - args = newArgs || args; - if(!id){ - id = setInterval(call, d); - } - }; - - - this.cancel = function(){ - if(id){ - clearInterval(id); - id = null; - } - }; -}; diff --git a/www/extras/extjs/ext-core.js b/www/extras/extjs/ext-core.js deleted file mode 100644 index 5d0436a76..000000000 --- a/www/extras/extjs/ext-core.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.DomHelper=function(){var _1=null;var _2=/^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i;var _3=function(o){if(typeof o=="string"){return o;}var b="";if(!o.tag){o.tag="div";}b+="<"+o.tag;for(var _6 in o){if(_6=="tag"||_6=="children"||_6=="cn"||_6=="html"||typeof o[_6]=="function"){continue;}if(_6=="style"){var s=o["style"];if(typeof s=="function"){s=s.call();}if(typeof s=="string"){b+=" style=\""+s+"\"";}else{if(typeof s=="object"){b+=" style=\"";for(var _8 in s){if(typeof s[_8]!="function"){b+=_8+":"+s[_8]+";";}}b+="\"";}}}else{if(_6=="cls"){b+=" class=\""+o["cls"]+"\"";}else{if(_6=="htmlFor"){b+=" for=\""+o["htmlFor"]+"\"";}else{b+=" "+_6+"=\""+o[_6]+"\"";}}}}if(_2.test(o.tag)){b+="/>";}else{b+=">";var cn=o.children||o.cn;if(cn){if(cn instanceof Array){for(var i=0,_b=cn.length;i<_b;i++){b+=_3(cn[i],b);}}else{b+=_3(cn,b);}}if(o.html){b+=o.html;}b+="";}return b;};var _c=function(o,_e){var el=document.createElement(o.tag);var _10=el.setAttribute?true:false;for(var _11 in o){if(_11=="tag"||_11=="children"||_11=="cn"||_11=="html"||_11=="style"||typeof o[_11]=="function"){continue;}if(_11=="cls"){el.className=o["cls"];}else{if(_10){el.setAttribute(_11,o[_11]);}else{el[_11]=o[_11];}}}Ext.DomHelper.applyStyles(el,o.style);var cn=o.children||o.cn;if(cn){if(cn instanceof Array){for(var i=0,len=cn.length;i",tbe=""+te,trs=tbs+"",tre=""+tbe;var _22=function(tag,_24,el,_26){if(!_1){_1=document.createElement("div");}var _27;var _28=null;if(tag=="td"){if(_24=="afterbegin"||_24=="beforeend"){return;}if(_24=="beforebegin"){_28=el;el=el.parentNode;}else{_28=el.nextSibling;el=el.parentNode;}_27=_15(4,trs,_26,tre);}else{if(tag=="tr"){if(_24=="beforebegin"){_28=el;el=el.parentNode;_27=_15(3,tbs,_26,tbe);}else{if(_24=="afterend"){_28=el.nextSibling;el=el.parentNode;_27=_15(3,tbs,_26,tbe);}else{if(_24=="afterbegin"){_28=el.firstChild;}_27=_15(4,trs,_26,tre);}}}else{if(tag=="tbody"){if(_24=="beforebegin"){_28=el;el=el.parentNode;_27=_15(2,ts,_26,te);}else{if(_24=="afterend"){_28=el.nextSibling;el=el.parentNode;_27=_15(2,ts,_26,te);}else{if(_24=="afterbegin"){_28=el.firstChild;}_27=_15(3,tbs,_26,tbe);}}}else{if(_24=="beforebegin"||_24=="afterend"){return;}if(_24=="afterbegin"){_28=el.firstChild;}_27=_15(2,ts,_26,te);}}}el.insertBefore(_27,_28);return _27;};return {useDom:false,markup:function(o){return _3(o);},applyStyles:function(el,_2b){if(_2b){el=Ext.fly(el);if(typeof _2b=="string"){var re=/\s?([a-z\-]*)\:\s?([^;]*);?/gi;var _2d;while((_2d=re.exec(_2b))!=null){el.setStyle(_2d[1],_2d[2]);}}else{if(typeof _2b=="object"){for(var _2e in _2b){el.setStyle(_2e,_2b[_2e]);}}else{if(typeof _2b=="function"){Ext.DomHelper.applyStyles(el,_2b.call());}}}}},insertHtml:function(_2f,el,_31){_2f=_2f.toLowerCase();if(el.insertAdjacentHTML){var tag=el.tagName.toLowerCase();if(tag=="table"||tag=="tbody"||tag=="tr"||tag=="td"){var rs;if(rs=_22(tag,_2f,el,_31)){return rs;}}switch(_2f){case "beforebegin":el.insertAdjacentHTML(_2f,_31);return el.previousSibling;case "afterbegin":el.insertAdjacentHTML(_2f,_31);return el.firstChild;case "beforeend":el.insertAdjacentHTML(_2f,_31);return el.lastChild;case "afterend":el.insertAdjacentHTML(_2f,_31);return el.nextSibling;}throw "Illegal insertion point -> \""+_2f+"\"";}var _34=el.ownerDocument.createRange();var _35;switch(_2f){case "beforebegin":_34.setStartBefore(el);_35=_34.createContextualFragment(_31);el.parentNode.insertBefore(_35,el);return el.previousSibling;case "afterbegin":if(el.firstChild){_34.setStartBefore(el.firstChild);_35=_34.createContextualFragment(_31);el.insertBefore(_35,el.firstChild);return el.firstChild;}else{el.innerHTML=_31;return el.firstChild;}case "beforeend":if(el.lastChild){_34.setStartAfter(el.lastChild);_35=_34.createContextualFragment(_31);el.appendChild(_35);return el.lastChild;}else{el.innerHTML=_31;return el.lastChild;}case "afterend":_34.setStartAfter(el);_35=_34.createContextualFragment(_31);el.parentNode.insertBefore(_35,el.nextSibling);return el.nextSibling;}throw "Illegal insertion point -> \""+_2f+"\"";},insertBefore:function(el,o,_38){return this.doInsert(el,o,_38,"beforeBegin");},insertAfter:function(el,o,_3b){return this.doInsert(el,o,_3b,"afterEnd","nextSibling");},insertFirst:function(el,o,_3e){return this.doInsert(el,o,_3e,"afterBegin");},doInsert:function(el,o,_41,pos,_43){el=Ext.getDom(el);var _44;if(this.useDom){_44=_c(o,null);el.parentNode.insertBefore(_44,_43?el[_43]:el);}else{var _45=_3(o);_44=this.insertHtml(pos,el,_45);}return _41?Ext.get(_44,true):_44;},append:function(el,o,_48){el=Ext.getDom(el);var _49;if(this.useDom){_49=_c(o,null);el.appendChild(_49);}else{var _4a=_3(o);_49=this.insertHtml("beforeEnd",el,_4a);}return _48?Ext.get(_49,true):_49;},overwrite:function(el,o,_4d){el=Ext.getDom(el);el.innerHTML=_3(o);return _4d?Ext.get(el.firstChild,true):el.firstChild;},createTemplate:function(o){var _4f=_3(o);return new Ext.Template(_4f);}};}(); - -Ext.Template=function(_1){if(_1 instanceof Array){_1=_1.join("");}else{if(arguments.length>1){_1=Array.prototype.join.call(arguments,"");}}this.html=_1;};Ext.Template.prototype={applyTemplate:function(_2){if(this.compiled){return this.compiled(_2);}var _3=this.disableFormats!==true;var fm=Ext.util.Format,_5=this;var fn=function(m,_8,_9,_a){if(_9&&_3){if(_9.substr(0,5)=="this."){return _5.call(_9.substr(5),_2[_8]);}else{if(_a){var re=/^\s*['"](.*)["']\s*$/;_a=_a.split(",");for(var i=0,_d=_a.length;i<_d;i++){_a[i]=_a[i].replace(re,"$1");}_a=[_2[_8]].concat(_a);}else{_a=[_2[_8]];}return fm[_9].apply(fm,_a);}}else{return _2[_8]!==undefined?_2[_8]:"";}};return this.html.replace(this.re,fn);},set:function(_e,_f){this.html=_e;this.compiled=null;if(_f){this.compile();}return this;},disableFormats:false,re:/\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,compile:function(){var fm=Ext.util.Format;var _11=this.disableFormats!==true;var sep=Ext.isGecko?"+":",";var fn=function(m,_15,_16,_17){if(_16&&_11){_17=_17?","+_17:"";if(_16.substr(0,5)!="this."){_16="fm."+_16+"(";}else{_16="this.call(\""+_16.substr(5)+"\", ";_17="";}}else{_17="",_16="(values['"+_15+"'] == undefined ? '' : ";}return "'"+sep+_16+"values['"+_15+"']"+_17+")"+sep+"'";};var _18;if(Ext.isGecko){_18="this.compiled = function(values){ return '"+this.html.replace(/(\r\n|\n)/g,"\\n").replace("'","\\'").replace(this.re,fn)+"';};";}else{_18=["this.compiled = function(values){ return ['"];_18.push(this.html.replace(/(\r\n|\n)/g,"\\n").replace("'","\\'").replace(this.re,fn));_18.push("'].join('');};");_18=_18.join("");}eval(_18);return this;},call:function(_19,_1a){return this[_19](_1a);},insertFirst:function(el,_1c,_1d){return this.doInsert("afterBegin",el,_1c,_1d);},insertBefore:function(el,_1f,_20){return this.doInsert("beforeBegin",el,_1f,_20);},insertAfter:function(el,_22,_23){return this.doInsert("afterEnd",el,_22,_23);},append:function(el,_25,_26){return this.doInsert("beforeEnd",el,_25,_26);},doInsert:function(_27,el,_29,_2a){el=Ext.getDom(el);var _2b=Ext.DomHelper.insertHtml(_27,el,this.applyTemplate(_29));return _2a?Ext.get(_2b,true):_2b;},overwrite:function(el,_2d,_2e){el=Ext.getDom(el);el.innerHTML=this.applyTemplate(_2d);return _2e?Ext.get(el.firstChild,true):el.firstChild;}};Ext.Template.prototype.apply=Ext.Template.prototype.applyTemplate;Ext.DomHelper.Template=Ext.Template;Ext.Template.from=function(el){el=Ext.getDom(el);return new Ext.Template(el.value||el.innerHTML);};Ext.MasterTemplate=function(){Ext.MasterTemplate.superclass.constructor.apply(this,arguments);this.originalHtml=this.html;var st={};var m,re=this.subTemplateRe;re.lastIndex=0;var _33=0;while(m=re.exec(this.html)){var _34=m[1],_35=m[2];st[_33]={name:_34,index:_33,buffer:[],tpl:new Ext.Template(_35)};if(_34){st[_34]=st[_33];}st[_33].tpl.compile();st[_33].tpl.call=this.call.createDelegate(this);_33++;}this.subCount=_33;this.subs=st;};Ext.extend(Ext.MasterTemplate,Ext.Template,{subTemplateRe:/((?:.|\n)*?)<\/tpl>/gi,add:function(_36,_37){if(arguments.length==1){_37=arguments[0];_36=0;}var s=this.subs[_36];s.buffer[s.buffer.length]=s.tpl.apply(_37);return this;},fill:function(_39,_3a,_3b){var a=arguments;if(a.length==1||(a.length==2&&typeof a[1]=="boolean")){_3a=a[0];_39=0;_3b=a[1];}if(_3b){this.reset();}for(var i=0,len=_3a.length;i]\s?|\s|$)/;var _8=/^(#)?([\w-\*]+)/;function child(p,_a){var i=0;var n=p.firstChild;while(n){if(n.nodeType==1){if(++i==_a){return n;}}n=n.nextSibling;}return null;}function next(n){while((n=n.nextSibling)&&n.nodeType!=1){}return n;}function prev(n){while((n=n.previousSibling)&&n.nodeType!=1){}return n;}function clean(d){var n=d.firstChild,ni=-1;while(n){var nx=n.nextSibling;if(n.nodeType==3&&!_4.test(n.nodeValue)){d.removeChild(n);}else{n.nodeIndex=++ni;}n=nx;}return this;}function byClassName(c,a,v,re,cn){if(!v){return c;}var r=[];for(var i=0,ci;ci=c[i];i++){cn=ci.className;if(cn&&(" "+cn+" ").indexOf(v)!=-1){r[r.length]=ci;}}return r;}function attrValue(n,_1c){if(!n.tagName&&typeof n.length!="undefined"){n=n[0];}if(!n){return null;}if(_1c=="for"){return n.htmlFor;}if(_1c=="class"||_1c=="className"){return n.className;}return n.getAttribute(_1c)||n[_1c];}function getNodes(ns,_1e,_1f){var _20=[],cs;if(!ns){return _20;}_1e=_1e?_1e.replace(_5,""):"";_1f=_1f||"*";if(typeof ns.getElementsByTagName!="undefined"){ns=[ns];}if(_1e!="/"&&_1e!=">"){for(var i=0,ni;ni=ns[i];i++){cs=ni.getElementsByTagName(_1f);for(var j=0,ci;ci=cs[j];j++){_20[_20.length]=ci;}}}else{for(var i=0,ni;ni=ns[i];i++){var cn=ni.getElementsByTagName(_1f);for(var j=0,cj;cj=cn[j];j++){if(cj.parentNode==ni){_20[_20.length]=cj;}}}}return _20;}function concat(a,b){if(b.slice){return a.concat(b);}for(var i=0,l=b.length;i0);},filter:function(els,ss,_92){ss=ss.replace(_5,"");if(!_2[ss]){_2[ss]=Ext.DomQuery.compile(ss,"simple");}var _93=_2[ss](els);return _92?quickDiff(_93,els):_93;},matchers:[{re:/^\.([\w-]+)/,select:"n = byClassName(n, null, \" {1} \");"},{re:/^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,select:"n = byPseudo(n, \"{1}\", \"{2}\");"},{re:/^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/,select:"n = byAttribute(n, \"{2}\", \"{4}\", \"{3}\", \"{1}\");"},{re:/^#([\w-]+)/,select:"n = byId(n, null, \"{1}\");"},{re:/^@([\w-]+)/,select:"return {firstChild:{nodeValue:attrValue(n, \"{1}\")}};"}],operators:{"=":function(a,v){return a==v;},"!=":function(a,v){return a!=v;},"^=":function(a,v){return a&&a.substr(0,v.length)==v;},"$=":function(a,v){return a&&a.substr(a.length-v.length)==v;},"*=":function(a,v){return a&&a.indexOf(v)!==-1;},"%=":function(a,v){return (a%v)==0;}},pseudos:{"first-child":function(c){var r=[],n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.previousSibling)&&n.nodeType!=1){}if(!n){r[r.length]=ci;}}return r;},"last-child":function(c){var r=[];for(var i=0,ci;ci=n=c[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(!n){r[r.length]=ci;}}return r;},"nth-child":function(c,a){var r=[];if(a!="odd"&&a!="even"){for(var i=0,ci;ci=c[i];i++){var m=child(ci.parentNode,a);if(m==ci){r[r.length]=m;}}return r;}var p;for(var i=0,l=c.length;i0){r[r.length]=ci;}}return r;},"next":function(c,ss){var is=Ext.DomQuery.is;var r=[];for(var i=0,ci;ci=c[i];i++){var n=next(ci);if(n&&is(n,ss)){r[r.length]=ci;}}return r;},"prev":function(c,ss){var is=Ext.DomQuery.is;var r=[];for(var i=0,ci;ci=c[i];i++){var n=prev(ci);if(n&&is(n,ss)){r[r.length]=ci;}}return r;}}};}();Ext.query=Ext.DomQuery.select; - -Ext.util.Observable=function(){if(this.listeners){this.on(this.listeners);delete this.listeners;}};Ext.util.Observable.prototype={fireEvent:function(){var ce=this.events[arguments[0].toLowerCase()];if(typeof ce=="object"){return ce.fire.apply(ce,Array.prototype.slice.call(arguments,1));}else{return true;}},filterOptRe:/^(?:scope|delay|buffer|single)$/,addListener:function(_2,fn,_4,o){if(typeof _2=="object"){o=_2;for(var e in o){if(this.filterOptRe.test(e)){continue;}if(typeof o[e]=="function"){this.addListener(e,o[e],o.scope,o);}else{this.addListener(e,o[e].fn,o[e].scope,o[e]);}}return;}o=(!o||typeof o=="boolean")?{}:o;_2=_2.toLowerCase();var ce=this.events[_2]||true;if(typeof ce=="boolean"){ce=new Ext.util.Event(this,_2);this.events[_2]=ce;}ce.addListener(fn,_4,o);},removeListener:function(_8,fn,_a){var ce=this.events[_8.toLowerCase()];if(typeof ce=="object"){ce.removeListener(fn,_a);}},purgeListeners:function(){for(var _c in this.events){if(typeof this.events[_c]=="object"){this.events[_c].clearListeners();}}},relayEvents:function(o,_e){var _f=function(_10){return function(){return this.fireEvent.apply(this,Ext.combine(_10,Array.prototype.slice.call(arguments,0)));};};for(var i=0,len=_e.length;i0;}};Ext.util.Observable.prototype.on=Ext.util.Observable.prototype.addListener;Ext.util.Observable.prototype.un=Ext.util.Observable.prototype.removeListener;Ext.util.Observable.capture=function(o,fn,_19){o.fireEvent=o.fireEvent.createInterceptor(fn,_19);};Ext.util.Observable.releaseCapture=function(o){o.fireEvent=Ext.util.Observable.prototype.fireEvent;};(function(){var _1b=function(h,o,_1e){var _1f=new Ext.util.DelayedTask();return function(){_1f.delay(o.buffer,h,_1e,Array.prototype.slice.call(arguments,0));};};var _20=function(h,e,fn,_24){return function(){e.removeListener(fn,_24);return h.apply(_24,arguments);};};var _25=function(h,o,_28){return function(){var _29=Array.prototype.slice.call(arguments,0);setTimeout(function(){h.apply(_28,_29);},o.delay||10);};};Ext.util.Event=function(obj,_2b){this.name=_2b;this.obj=obj;this.listeners=[];};Ext.util.Event.prototype={addListener:function(fn,_2d,_2e){var o=_2e||{};_2d=_2d||this.obj;if(!this.isListening(fn,_2d)){var l={fn:fn,scope:_2d,options:o};var h=fn;if(o.delay){h=_25(h,o,_2d);}if(o.single){h=_20(h,this,fn,_2d);}if(o.buffer){h=_1b(h,o,_2d);}l.fireFn=h;if(!this.firing){this.listeners.push(l);}else{this.listeners=this.listeners.slice(0);this.listeners.push(l);}}},findListener:function(fn,_33){_33=_33||this.obj;var ls=this.listeners;for(var i=0,len=ls.length;i0){this.firing=true;var _40=Array.prototype.slice.call(arguments,0);for(var i=0;i");var _c=document.getElementById("ie-deferred-loader");_c.onreadystatechange=function(){if(this.readyState=="complete"){_a();_c.onreadystatechange=null;_c.parentNode.removeChild(_c);}};}else{if(Ext.isSafari){_2=setInterval(function(){var rs=document.readyState;if(rs=="complete"){_a();}},10);}}}E.on(window,"load",_a);};var _e=function(h,o){var _11=new Ext.util.DelayedTask(h);return function(e){e=new Ext.EventObjectImpl(e);_11.delay(o.buffer,h,null,[e]);};};var _13=function(h,el,_16,fn){return function(e){Ext.EventManager.removeListener(el,_16,fn);h(e);};};var _19=function(h,o){return function(e){e=new Ext.EventObjectImpl(e);setTimeout(function(){h(e);},o.delay||10);};};var _1d=function(_1e,_1f,opt,fn,_22){var o=(!opt||typeof opt=="boolean")?{}:opt;fn=fn||o.fn;_22=_22||o.scope;var el=Ext.getDom(_1e);if(!el){throw "Error listening for \""+_1f+"\". Element \""+_1e+"\" doesn't exist.";}var h=function(e){e=Ext.EventObject.setEvent(e);var t;if(o.delegate){t=e.getTarget(o.delegate,el);if(!t){return;}}else{t=e.target;}if(o.stopEvent===true){e.stopEvent();}if(o.preventDefault===true){e.preventDefault();}if(o.stopPropagation===true){e.stopPropagation();}if(o.normalized===false){e=e.browserEvent;}fn.call(_22||el,e,t,o);};if(o.delay){h=_19(h,o);}if(o.single){h=_13(h,el,_1f,fn);}if(o.buffer){h=_e(h,o);}fn._handlers=fn._handlers||[];fn._handlers.push([Ext.id(el),_1f,h]);E.on(el,_1f,h);if(_1f=="mousewheel"&&el.addEventListener){el.addEventListener("DOMMouseScroll",h,false);E.on(window,"unload",function(){el.removeEventListener("DOMMouseScroll",h,false);});}if(_1f=="mousedown"&&el==document){Ext.EventManager.stoppedMouseDownEvent.addListener(h);}return h;};var _28=function(el,_2a,fn){var id=Ext.id(el),hds=fn._handlers,hd=fn;if(hds){for(var i=0,len=hds.length;i=33&&k<=40)||k==this.RETURN||k==this.TAB||k==this.ESC;},isSpecialKey:function(){var k=this.keyCode;return k==9||k==13||k==40||k==27||(k==16)||(k==17)||(k>=18&&k<=20)||(k>=33&&k<=35)||(k>=36&&k<=39)||(k>=44&&k<=45);},stopPropagation:function(){if(this.browserEvent){if(this.browserEvent.type=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.fire(this);}E.stopPropagation(this.browserEvent);}},getCharCode:function(){return this.charCode||this.keyCode;},getKey:function(){var k=this.keyCode||this.charCode;return Ext.isSafari?(_51[k]||k):k;},getPageX:function(){return this.xy[0];},getPageY:function(){return this.xy[1];},getTime:function(){if(this.browserEvent){return E.getTime(this.browserEvent);}return null;},getXY:function(){return this.xy;},getTarget:function(_58,_59,_5a){return _58?Ext.fly(this.target).findParent(_58,_59,_5a):this.target;},getRelatedTarget:function(){if(this.browserEvent){return E.getRelatedTarget(this.browserEvent);}return null;},getWheelDelta:function(){var e=this.browserEvent;var _5c=0;if(e.wheelDelta){_5c=e.wheelDelta/120;if(window.opera){_5c=-_5c;}}else{if(e.detail){_5c=-e.detail/3;}}return _5c;},hasModifier:function(){return ((this.ctrlKey||this.altKey)||this.shiftKey)?true:false;},within:function(el,_5e){var t=this[_5e?"getRelatedTarget":"getTarget"]();return t&&Ext.fly(el).contains(t);},getPoint:function(){return new Ext.lib.Point(this.xy[0],this.xy[1]);}};return new Ext.EventObjectImpl();}(); - -(function(){var D=Ext.lib.Dom;var E=Ext.lib.Event;var A=Ext.lib.Anim;var _4={};var _5=/(-[a-z])/gi;var _6=function(m,a){return a.charAt(1).toUpperCase();};var _9=document.defaultView;Ext.Element=function(_a,_b){var _c=typeof _a=="string"?document.getElementById(_a):_a;if(!_c){return null;}if(!_b&&Ext.Element.cache[_c.id]){return Ext.Element.cache[_c.id];}this.dom=_c;this.id=_c.id||Ext.id(_c);};var El=Ext.Element;El.prototype={originalDisplay:"",visibilityMode:1,defaultUnit:"px",setVisibilityMode:function(_e){this.visibilityMode=_e;return this;},enableDisplayMode:function(_f){this.setVisibilityMode(El.DISPLAY);if(typeof _f!="undefined"){this.originalDisplay=_f;}return this;},findParent:function(_10,_11,_12){var p=this.dom,b=document.body,_15=0,dq=Ext.DomQuery,_17;_11=_11||50;if(typeof _11!="number"){_17=Ext.getDom(_11);_11=10;}while(p&&p.nodeType==1&&_15<_11&&p!=b&&p!=_17){if(dq.is(p,_10)){return _12?Ext.get(p):p;}_15++;p=p.parentNode;}return null;},findParentNode:function(_18,_19,_1a){var p=Ext.fly(this.dom.parentNode,"_internal");return p?p.findParent(_18,_19,_1a):null;},up:function(_1c,_1d){return this.findParentNode(_1c,_1d,true);},is:function(_1e){return Ext.DomQuery.is(this.dom,_1e);},animate:function(_1f,_20,_21,_22,_23){this.anim(_1f,{duration:_20,callback:_21,easing:_22},_23);return this;},anim:function(_24,opt,_26,_27,_28,cb){_26=_26||"run";opt=opt||{};var _2a=Ext.lib.Anim[_26](this.dom,_24,(opt.duration||_27)||0.35,(opt.easing||_28)||"easeOut",function(){Ext.callback(cb,this);Ext.callback(opt.callback,opt.scope||this,[this,opt]);},this);opt.anim=_2a;return _2a;},preanim:function(a,i){return !a[i]?false:(typeof a[i]=="object"?a[i]:{duration:a[i+1],callback:a[i+2],easing:a[i+3]});},clean:function(_2d){if(this.isCleaned&&_2d!==true){return this;}var ns=/\S/;var d=this.dom,n=d.firstChild,ni=-1;while(n){var nx=n.nextSibling;if(n.nodeType==3&&!ns.test(n.nodeValue)){d.removeChild(n);}else{n.nodeIndex=++ni;}n=nx;}this.isCleaned=true;return this;},calcOffsetsTo:function(el){el=Ext.get(el),d=el.dom;var _34=false;if(el.getStyle("position")=="static"){el.position("relative");_34=true;}var x=0,y=0;var op=this.dom;while(op&&op!=d&&op.tagName!="HTML"){x+=op.offsetLeft;y+=op.offsetTop;op=op.offsetParent;}if(_34){el.position("static");}return [x,y];},scrollIntoView:function(_38,_39){var c=Ext.getDom(_38)||document.body;var el=this.dom;var o=this.calcOffsetsTo(c),l=o[0],t=o[1],b=t+el.offsetHeight,r=l+el.offsetWidth;var ch=c.clientHeight;var ct=parseInt(c.scrollTop,10);var cl=parseInt(c.scrollLeft,10);var cb=ct+ch;var cr=cl+c.clientWidth;if(tcb){c.scrollTop=b-ch;}}if(_39!==false){if(lcr){c.scrollLeft=r-c.clientWidth;}}}return this;},scrollChildIntoView:function(_46){Ext.fly(_46,"_scrollChildIntoView").scrollIntoView(this);},autoHeight:function(_47,_48,_49,_4a){var _4b=this.getHeight();this.clip();this.setHeight(1);setTimeout(function(){var _4c=parseInt(this.dom.scrollHeight,10);if(!_47){this.setHeight(_4c);this.unclip();if(typeof _49=="function"){_49();}}else{this.setHeight(_4b);this.setHeight(_4c,_47,_48,function(){this.unclip();if(typeof _49=="function"){_49();}}.createDelegate(this),_4a);}}.createDelegate(this),0);return this;},contains:function(el){if(!el){return false;}return D.isAncestor(this.dom,el.dom?el.dom:el);},isVisible:function(_4e){var vis=!(this.getStyle("visibility")=="hidden"||this.getStyle("display")=="none");if(_4e!==true||!vis){return vis;}var p=this.dom.parentNode;while(p&&p.tagName.toLowerCase()!="body"){if(!Ext.fly(p,"_isVisible").isVisible()){return false;}p=p.parentNode;}return true;},select:function(_51,_52){return El.select("#"+Ext.id(this.dom)+" "+_51,_52);},query:function(_53,_54){return Ext.DomQuery.select("#"+Ext.id(this.dom)+" "+_53);},child:function(_55,_56){var n=Ext.DomQuery.selectNode("#"+Ext.id(this.dom)+" "+_55);return _56?n:Ext.get(n);},down:function(_58,_59){var n=Ext.DomQuery.selectNode("#"+Ext.id(this.dom)+" > "+_58);return _59?n:Ext.get(n);},initDD:function(_5b,_5c,_5d){var dd=new Ext.dd.DD(Ext.id(this.dom),_5b,_5c);return Ext.apply(dd,_5d);},initDDProxy:function(_5f,_60,_61){var dd=new Ext.dd.DDProxy(Ext.id(this.dom),_5f,_60);return Ext.apply(dd,_61);},initDDTarget:function(_63,_64,_65){var dd=new Ext.dd.DDTarget(Ext.id(this.dom),_63,_64);return Ext.apply(dd,_65);},setVisible:function(_67,_68){if(!_68||!A){if(this.visibilityMode==El.DISPLAY){this.setDisplayed(_67);}else{this.fixDisplay();this.dom.style.visibility=_67?"visible":"hidden";}}else{var dom=this.dom;var _6a=this.visibilityMode;if(_67){this.setOpacity(0.01);this.setVisible(true);}this.anim({opacity:{to:(_67?1:0)}},this.preanim(arguments,1),null,0.35,"easeIn",function(){if(!_67){if(_6a==El.DISPLAY){dom.style.display="none";}else{dom.style.visibility="hidden";}Ext.get(dom).setOpacity(1);}});}return this;},isDisplayed:function(){return this.getStyle("display")!="none";},toggle:function(_6b){this.setVisible(!this.isVisible(),this.preanim(arguments,0));return this;},setDisplayed:function(_6c){if(typeof _6c=="boolean"){_6c=_6c?this.originalDisplay:"none";}this.setStyle("display",_6c);return this;},focus:function(){try{this.dom.focus();}catch(e){}return this;},blur:function(){try{this.dom.blur();}catch(e){}return this;},addClass:function(_6d){if(_6d instanceof Array){for(var i=0,len=_6d.length;idw){x=_fe?r.left-w:dw-w;}if(x<_100){x=_fe?r.right:_100;}if((y+h)>dh){y=_fd?r.top-h:dh-h;}if(y<_101){y=_fd?r.bottom:_101;}}return [x,y];},getConstrainToXY:function(){var os={top:0,left:0,bottom:0,right:0};return function(el,_104,_105){el=Ext.get(el);_105=_105?Ext.applyIf(_105,os):os;var vw,vh,vx=0,vy=0;if(el.dom==document.body||el.dom==document){vw=Ext.lib.Dom.getViewWidth();vh=Ext.lib.Dom.getViewHeight();}else{vw=el.dom.clientWidth;vh=el.dom.clientHeight;if(!_104){var vxy=el.getXY();vx=vxy[0];vy=vxy[1];}}var s=el.getScroll();vx+=_105.left+s.left;vy+=_105.top+s.top;vw-=_105.right;vh-=_105.bottom;var vr=vx+vw;var vb=vy+vh;var xy=!_104?this.getXY():[this.getLeft(true),this.getTop(true)];var x=xy[0],y=xy[1];var w=this.dom.offsetWidth,h=this.dom.offsetHeight;var _113=false;if((x+w)>vr){x=vr-w;_113=true;}if((y+h)>vb){y=vb-h;_113=true;}if(x";E.onAvailable(id,function(){var hd=document.getElementsByTagName("head")[0];var re=/(?:]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig;var _134=/\ssrc=([\'\"])(.*?)\1/i;var _135=/\stype=([\'\"])(.*?)\1/i;var _136;while(_136=re.exec(html)){var _137=_136[1];var _138=_137?_137.match(_134):false;if(_138&&_138[2]){var s=document.createElement("script");s.src=_138[2];var _13a=_137.match(_135);if(_13a&&_13a[2]){s.type=_13a[2];}hd.appendChild(s);}else{if(_136[2]&&_136[2].length>0){eval(_136[2]);}}}var el=document.getElementById(id);if(el){el.parentNode.removeChild(el);}if(typeof _12f=="function"){_12f();}});dom.innerHTML=html.replace(/(?:)((\n|\r|.)*?)(?:<\/script>)/ig,"");return this;},load:function(){var um=this.getUpdateManager();um.update.apply(um,arguments);return this;},getUpdateManager:function(){if(!this.updateManager){this.updateManager=new Ext.UpdateManager(this);}return this.updateManager;},unselectable:function(){this.dom.unselectable="on";this.swallowEvent("selectstart",true);this.applyStyles("-moz-user-select:none;-khtml-user-select:none;");this.addClass("x-unselectable");return this;},getCenterXY:function(){return this.getAlignToXY(document,"c-c");},center:function(_13d){this.alignTo(_13d||document,"c-c");return this;},isBorderBox:function(){return _13e[this.dom.tagName.toLowerCase()]||Ext.isBorderBox;},getBox:function(_13f,_140){var xy;if(!_140){xy=this.getXY();}else{var left=parseInt(this.getStyle("left"),10)||0;var top=parseInt(this.getStyle("top"),10)||0;xy=[left,top];}var el=this.dom,w=el.offsetWidth,h=el.offsetHeight,bx;if(!_13f){bx={x:xy[0],y:xy[1],0:xy[0],1:xy[1],width:w,height:h};}else{var l=this.getBorderWidth("l")+this.getPadding("l");var r=this.getBorderWidth("r")+this.getPadding("r");var t=this.getBorderWidth("t")+this.getPadding("t");var b=this.getBorderWidth("b")+this.getPadding("b");bx={x:xy[0]+l,y:xy[1]+t,0:xy[0]+l,1:xy[1]+t,width:w-(l+r),height:h-(t+b)};}bx.right=bx.x+bx.width;bx.bottom=bx.y+bx.height;return bx;},getFrameWidth:function(_14c){return this.getPadding(_14c)+this.getBorderWidth(_14c);},setBox:function(box,_14e,_14f){var w=box.width,h=box.height;if((_14e&&!this.autoBoxAdjust)&&!this.isBorderBox()){w-=(this.getBorderWidth("lr")+this.getPadding("lr"));h-=(this.getBorderWidth("tb")+this.getPadding("tb"));}this.setBounds(box.x,box.y,w,h,this.preanim(arguments,2));return this;},repaint:function(){var dom=this.dom;this.addClass("x-repaint");setTimeout(function(){Ext.get(dom).removeClass("x-repaint");},1);return this;},getMargins:function(side){if(!side){return {top:parseInt(this.getStyle("margin-top"),10)||0,left:parseInt(this.getStyle("margin-left"),10)||0,bottom:parseInt(this.getStyle("margin-bottom"),10)||0,right:parseInt(this.getStyle("margin-right"),10)||0};}else{return this.addStyles(side,El.margins);}},addStyles:function(_154,_155){var val=0;for(var i=0,len=_154.length;idom.clientHeight||dom.scrollWidth>dom.clientWidth;},scrollTo:function(side,_197,_198){var prop=side.toLowerCase()=="left"?"scrollLeft":"scrollTop";if(!_198||!A){this.dom[prop]=_197;}else{var to=prop=="scrollLeft"?[_197,this.dom.scrollTop]:[this.dom.scrollLeft,_197];this.anim({scroll:{"to":to}},this.preanim(arguments,2),"scroll");}return this;},scroll:function(_19b,_19c,_19d){if(!this.isScrollable()){return;}var el=this.dom;var l=el.scrollLeft,t=el.scrollTop;var w=el.scrollWidth,h=el.scrollHeight;var cw=el.clientWidth,ch=el.clientHeight;_19b=_19b.toLowerCase();var _1a5=false;var a=this.preanim(arguments,2);switch(_19b){case "l":case "left":if(w-l>cw){var v=Math.min(l+_19c,w-cw);this.scrollTo("left",v,a);_1a5=true;}break;case "r":case "right":if(l>0){var v=Math.max(l-_19c,0);this.scrollTo("left",v,a);_1a5=true;}break;case "t":case "top":case "up":if(t>0){var v=Math.max(t-_19c,0);this.scrollTo("top",v,a);_1a5=true;}break;case "b":case "bottom":case "down":if(h-t>ch){var v=Math.min(t+_19c,h-ch);this.scrollTo("top",v,a);_1a5=true;}break;}return _1a5;},translatePoints:function(x,y){if(typeof x=="object"||x instanceof Array){y=x[1];x=x[0];}var p=this.getStyle("position");var o=this.getXY();var l=parseInt(this.getStyle("left"),10);var t=parseInt(this.getStyle("top"),10);if(isNaN(l)){l=(p=="relative")?0:this.dom.offsetLeft;}if(isNaN(t)){t=(p=="relative")?0:this.dom.offsetTop;}return {left:(x-o[0]+l),top:(y-o[1]+t)};},getScroll:function(){var d=this.dom,doc=document;if(d==doc||d==doc.body){var l=window.pageXOffset||doc.documentElement.scrollLeft||doc.body.scrollLeft||0;var t=window.pageYOffset||doc.documentElement.scrollTop||doc.body.scrollTop||0;return {left:l,top:t};}else{return {left:d.scrollLeft,top:d.scrollTop};}},getColor:function(attr,_1b3,_1b4){var v=this.getStyle(attr);if(!v||v=="transparent"||v=="inherit"){return _1b3;}var _1b6=typeof _1b4=="undefined"?"#":_1b4;if(v.substr(0,4)=="rgb("){var rvs=v.slice(4,v.length-1).split(",");for(var i=0;i<3;i++){var h=parseInt(rvs[i]).toString(16);if(h<16){h="0"+h;}_1b6+=h;}}else{if(v.substr(0,1)=="#"){if(v.length==4){for(var i=1;i<4;i++){var c=v.charAt(i);_1b6+=c+c;}}else{if(v.length==7){_1b6+=v.substr(1);}}}}return (_1b6.length>5?_1b6.toLowerCase():_1b3);},boxWrap:function(cls){cls=cls||"x-box";var el=Ext.get(this.insertHtml("beforeBegin",String.format("
      "+El.boxMarkup+"
      ",cls)));el.child("."+cls+"-mc").dom.appendChild(this.dom);return el;},getAttributeNS:Ext.isIE?function(ns,name){var d=this.dom;var type=typeof d[ns+":"+name];if(type!="undefined"&&type!="unknown"){return d[ns+":"+name];}return d[name];}:function(ns,name){var d=this.dom;return d.getAttributeNS(ns,name)||d.getAttribute(ns+":"+name)||d.getAttribute(name)||d[name];}};var ep=El.prototype;ep.on=ep.addListener;ep.mon=ep.addListener;ep.un=ep.removeListener;ep.autoBoxAdjust=true;ep.autoDisplayMode=true;El.unitPattern=/\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i;El.addUnits=function(v,_1c6){if(v===""||v=="auto"){return v;}if(v===undefined){return "";}if(typeof v=="number"||!El.unitPattern.test(v)){return v+(_1c6||"px");}return v;};El.boxMarkup="
      ";El.VISIBILITY=1;El.DISPLAY=2;El.borders={l:"border-left-width",r:"border-right-width",t:"border-top-width",b:"border-bottom-width"};El.paddings={l:"padding-left",r:"padding-right",t:"padding-top",b:"padding-bottom"};El.margins={l:"margin-left",r:"margin-right",t:"margin-top",b:"margin-bottom"};El.cache={};var _1c7;El.get=function(el){var ex,elm,id;if(!el){return null;}if(typeof el=="string"){if(!(elm=document.getElementById(el))){return null;}if(ex=El.cache[el]){ex.dom=elm;}else{ex=El.cache[el]=new El(elm);}return ex;}else{if(el.tagName){if(!(id=el.id)){id=Ext.id(el);}if(ex=El.cache[id]){ex.dom=el;}else{ex=El.cache[id]=new El(el);}return ex;}else{if(el instanceof El){if(el!=_1c7){el.dom=document.getElementById(el.id)||el.dom;El.cache[el.id]=el;}return el;}else{if(el.isComposite){return el;}else{if(el instanceof Array){return El.select(el);}else{if(el==document){if(!_1c7){var f=function(){};f.prototype=El.prototype;_1c7=new f();_1c7.dom=document;}return _1c7;}}}}}}return null;};El.uncache=function(el){for(var i=0,a=arguments,len=a.length;i0){_2f.defer((duration/2)*1000,this);}else{el.afterFx(o);}};_2f.call(this);});return this;},pause:function(_32){var el=this.getFxEl();var o={};el.queueFx(o,function(){setTimeout(function(){el.afterFx(o);},_32*1000);});return this;},fadeIn:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){this.setOpacity(0);this.fixDisplay();this.dom.style.visibility="visible";var to=o.endOpacity||1;arguments.callee.anim=this.fxanim({opacity:{to:to}},o,null,0.5,"easeOut",function(){if(to==1){this.clearOpacity();}el.afterFx(o);});});return this;},fadeOut:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){arguments.callee.anim=this.fxanim({opacity:{to:o.endOpacity||0}},o,null,0.5,"easeOut",function(){if(this.visibilityMode==Ext.Element.DISPLAY||o.useDisplay){this.dom.style.display="none";}else{this.dom.style.visibility="hidden";}this.clearOpacity();el.afterFx(o);});});return this;},scale:function(w,h,o){this.shift(Ext.apply({},o,{width:w,height:h}));return this;},shift:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){var a={},w=o.width,h=o.height,x=o.x,y=o.y,op=o.opacity;if(w!==undefined){a.width={to:this.adjustWidth(w)};}if(h!==undefined){a.height={to:this.adjustHeight(h)};}if(x!==undefined||y!==undefined){a.points={to:[x!==undefined?x:this.getX(),y!==undefined?y:this.getY()]};}if(op!==undefined){a.opacity={to:op};}if(o.xy!==undefined){a.points={to:o.xy};}arguments.callee.anim=this.fxanim(a,o,"motion",0.35,"easeOut",function(){el.afterFx(o);});});return this;},ghost:function(_45,o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){_45=_45||"b";var r=this.getFxRestore();var w=this.getWidth(),h=this.getHeight();var st=this.dom.style;var _4c=function(){if(o.useDisplay){el.setDisplayed(false);}else{el.hide();}el.clearOpacity();el.setPositioning(r.pos);st.width=r.width;st.height=r.height;el.afterFx(o);};var a={opacity:{to:0},points:{}},pt=a.points;switch(_45.toLowerCase()){case "t":pt.by=[0,-h];break;case "l":pt.by=[-w,0];break;case "r":pt.by=[w,0];break;case "b":pt.by=[0,h];break;case "tl":pt.by=[-w,-h];break;case "bl":pt.by=[-w,h];break;case "br":pt.by=[w,h];break;case "tr":pt.by=[w,-h];break;}arguments.callee.anim=this.fxanim(a,o,"motion",0.5,"easeOut",_4c);});return this;},syncFx:function(){this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:false,concurrent:true,stopFx:false});return this;},sequenceFx:function(){this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:false,concurrent:false,stopFx:false});return this;},nextFx:function(){var ef=this.fxQueue[0];if(ef){ef.call(this);}},hasActiveFx:function(){return this.fxQueue&&this.fxQueue[0];},stopFx:function(){if(this.hasActiveFx()){var cur=this.fxQueue[0];if(cur&&cur.anim&&cur.anim.isAnimated()){this.fxQueue=[cur];cur.anim.stop(true);}}return this;},beforeFx:function(o){if(this.hasActiveFx()&&!o.concurrent){if(o.stopFx){this.stopFx();return true;}return false;}return true;},hasFxBlock:function(){var q=this.fxQueue;return q&&q[0]&&q[0].block;},queueFx:function(o,fn){if(!this.fxQueue){this.fxQueue=[];}if(!this.hasFxBlock()){Ext.applyIf(o,this.fxDefaults);if(!o.concurrent){var run=this.beforeFx(o);fn.block=o.block;this.fxQueue.push(fn);if(run){this.nextFx();}}else{fn.call(this);}}return this;},fxWrap:function(pos,o,vis){var _59;if(!o.wrap||!(_59=Ext.get(o.wrap))){var _5a;if(o.fixPosition){_5a=this.getXY();}var div=document.createElement("div");div.style.visibility=vis;_59=Ext.get(this.dom.parentNode.insertBefore(div,this.dom));_59.setPositioning(pos);if(_59.getStyle("position")=="static"){_59.position("relative");}this.clearPositioning("auto");_59.clip();_59.dom.appendChild(this.dom);if(_5a){_59.setXY(_5a);}}return _59;},fxUnwrap:function(_5c,pos,o){this.clearPositioning();this.setPositioning(pos);if(!o.wrap){_5c.dom.parentNode.insertBefore(this.dom,_5c.dom);_5c.remove();}},getFxRestore:function(){var st=this.dom.style;return {pos:this.getPositioning(),width:st.width,height:st.height};},afterFx:function(o){if(o.afterStyle){this.applyStyles(o.afterStyle);}if(o.afterCls){this.addClass(o.afterCls);}if(o.remove===true){this.remove();}Ext.callback(o.callback,o.scope,[this]);if(!o.concurrent){this.fxQueue.shift();this.nextFx();}},getFxEl:function(){return Ext.get(this.dom);},fxanim:function(_61,opt,_63,_64,_65,cb){_63=_63||"run";opt=opt||{};var _67=Ext.lib.Anim[_63](this.dom,_61,(opt.duration||_64)||0.35,(opt.easing||_65)||"easeOut",function(){Ext.callback(cb,this);},this);opt.anim=_67;return _67;}};Ext.Fx.resize=Ext.Fx.scale;Ext.apply(Ext.Element.prototype,Ext.Fx); - -Ext.CompositeElement=function(_1){this.elements=[];this.addElements(_1);};Ext.CompositeElement.prototype={isComposite:true,addElements:function(_2){if(!_2){return this;}if(typeof _2=="string"){_2=Ext.Element.selectorFunction(_2);}var _3=this.elements;var _4=_3.length-1;for(var i=0,_6=_2.length;i<_6;i++){_3[++_4]=Ext.get(_2[i],true);}return this;},invoke:function(fn,_8){var _9=this.elements;for(var i=0,_b=_9.length;i<_b;i++){Ext.Element.prototype[fn].apply(_9[i],_8);}return this;},add:function(_c){if(typeof _c=="string"){this.addElements(Ext.Element.selectorFunction(_c));}else{if(_c.length!==undefined){this.addElements(_c);}else{this.addElements([_c]);}}return this;},each:function(fn,_e){var _f=this.elements;for(var i=0,len=_f.length;i"+_9.text+"";}if(typeof _9.scripts!="undefined"){this.loadScripts=_9.scripts;}if(typeof _9.timeout!="undefined"){this.timeout=_9.timeout;}}this.showLoading();if(!_7){this.defaultUrl=_4;}if(typeof _4=="function"){_4=_4.call(this);}if(typeof _5=="function"){_5=_5();}if(_5&&typeof _5!="string"){var _a=[];for(var _b in _5){if(typeof _5[_b]!="function"){_a.push(encodeURIComponent(_b),"=",encodeURIComponent(_5[_b]),"&");}}delete _a[_a.length-1];_5=_a.join("");}var cb={success:this.successDelegate,failure:this.failureDelegate,timeout:(this.timeout*1000),argument:{"url":_4,"form":null,"callback":_6,"params":_5}};_8=_8||(_5?"POST":"GET");if(_8=="GET"){_4=this.prepareUrl(_4);}this.transaction=Ext.lib.Ajax.request(_8,_4,cb,_5);}},formUpdate:function(_d,_e,_f,_10){if(this.fireEvent("beforeupdate",this.el,_d,_e)!==false){formEl=Ext.getDom(_d);if(typeof _e=="function"){_e=_e.call(this);}if(typeof params=="function"){params=params();}_e=_e||formEl.action;var cb={success:this.successDelegate,failure:this.failureDelegate,timeout:(this.timeout*1000),argument:{"url":_e,"form":formEl,"callback":_10,"reset":_f}};var _12=false;var _13=formEl.getAttribute("enctype");if(_13&&_13.toLowerCase()=="multipart/form-data"){_12=true;cb.upload=this.successDelegate;}this.transaction=Ext.lib.Ajax.formRequest(formEl,_e,cb,null,_12,this.sslBlankUrl);this.showLoading.defer(1,this);}},refresh:function(_14){if(this.defaultUrl==null){return;}this.update(this.defaultUrl,null,_14,true);},startAutoRefresh:function(_15,url,_17,_18,_19){if(_19){this.update(url||this.defaultUrl,_17,_18,true);}if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);}this.autoRefreshProcId=setInterval(this.update.createDelegate(this,[url||this.defaultUrl,_17,_18,true]),_15*1000);},stopAutoRefresh:function(){if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);delete this.autoRefreshProcId;}},isAutoRefreshing:function(){return this.autoRefreshProcId?true:false;},showLoading:function(){if(this.showLoadIndicator){this.el.update(this.indicatorText);}},prepareUrl:function(url){if(this.disableCaching){var _1b="_dc="+(new Date().getTime());if(url.indexOf("?")!==-1){url+="&"+_1b;}else{url+="?"+_1b;}}return url;},processSuccess:function(_1c){this.transaction=null;if(_1c.argument.form&&_1c.argument.reset){try{_1c.argument.form.reset();}catch(e){}}if(this.loadScripts){this.renderer.render(this.el,_1c,this,this.updateComplete.createDelegate(this,[_1c]));}else{this.renderer.render(this.el,_1c,this);this.updateComplete(_1c);}},updateComplete:function(_1d){this.fireEvent("update",this.el,_1d);if(typeof _1d.argument.callback=="function"){_1d.argument.callback(this.el,true,_1d);}},processFailure:function(_1e){this.transaction=null;this.fireEvent("failure",this.el,_1e);if(typeof _1e.argument.callback=="function"){_1e.argument.callback(this.el,false,_1e);}},setRenderer:function(_1f){this.renderer=_1f;},getRenderer:function(){return this.renderer;},setDefaultUrl:function(_20){this.defaultUrl=_20;},abort:function(){if(this.transaction){Ext.lib.Ajax.abort(this.transaction);}},isUpdating:function(){if(this.transaction){return Ext.lib.Ajax.isCallInProgress(this.transaction);}return false;}});Ext.UpdateManager.defaults={timeout:30,loadScripts:false,sslBlankUrl:(Ext.SSL_SECURE_URL||"javascript:false"),disableCaching:false,showLoadIndicator:true,indicatorText:"
      Loading...
      "};Ext.UpdateManager.updateElement=function(el,url,_23,_24){var um=Ext.get(el,true).getUpdateManager();Ext.apply(um,_24);um.update(url,_23,_24?_24.callback:null);};Ext.UpdateManager.update=Ext.UpdateManager.updateElement;Ext.UpdateManager.BasicRenderer=function(){};Ext.UpdateManager.BasicRenderer.prototype={render:function(el,_27,_28,_29){el.update(_27.responseText,_28.loadScripts,_29);}}; - -Ext.util.DelayedTask=function(fn,_2,_3){var id=null,d,t;var _7=function(){var _8=new Date().getTime();if(_8-t>=d){clearInterval(id);id=null;fn.apply(_2,_3||[]);}};this.delay=function(_9,_a,_b,_c){if(id&&_9!=d){this.cancel();}d=_9;t=new Date().getTime();fn=_a||fn;_2=_b||_2;_3=_c||_3;if(!id){id=setInterval(_7,d);}};this.cancel=function(){if(id){clearInterval(id);id=null;}};}; - diff --git a/www/extras/extjs/package/button/button-debug.js b/www/extras/extjs/package/button/button-debug.js deleted file mode 100644 index 1f5e4c2e9..000000000 --- a/www/extras/extjs/package/button/button-debug.js +++ /dev/null @@ -1,365 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - - -Ext.Button = function(renderTo, config){ - Ext.apply(this, config); - this.addEvents({ - - "click" : true, - - "toggle" : true, - - 'mouseover' : true, - - 'mouseout': true - }); - if(this.menu){ - this.menu = Ext.menu.MenuMgr.get(this.menu); - } - if(renderTo){ - this.render(renderTo); - } - Ext.Button.superclass.constructor.call(this); -}; - -Ext.extend(Ext.Button, Ext.util.Observable, { - - hidden : false, - - disabled : false, - - pressed : false, - - - enableToggle: false, - - menu : undefined, - - menuAlign : "tl-bl?", - - - menuClassTarget: 'tr', - - clickEvent : 'click', - handleMouseEvents : true, - - - tooltipType : 'qtip', - - - render : function(renderTo){ - var btn; - if(this.hideParent){ - this.parentEl = Ext.get(renderTo); - } - if(!this.dhconfig){ - if(!this.template){ - if(!Ext.Button.buttonTemplate){ - - Ext.Button.buttonTemplate = new Ext.Template( - '', - '', - "
        
      "); - } - this.template = Ext.Button.buttonTemplate; - } - btn = this.template.append(renderTo, [this.text || ' '], true); - var btnEl = btn.child("button:first"); - btnEl.on('focus', this.onFocus, this); - btnEl.on('blur', this.onBlur, this); - if(this.cls){ - btn.addClass(this.cls); - } - if(this.icon){ - btnEl.setStyle('background-image', 'url(' +this.icon +')'); - } - if(this.tooltip){ - if(typeof this.tooltip == 'object'){ - Ext.QuickTips.tips(Ext.apply({ - target: btnEl.id - }, this.tooltip)); - } else { - btnEl.dom[this.tooltipType] = this.tooltip; - } - } - }else{ - btn = Ext.DomHelper.append(Ext.get(renderTo).dom, this.dhconfig, true); - } - this.el = btn; - if(this.id){ - this.el.dom.id = this.el.id = this.id; - } - if(this.menu){ - this.el.child(this.menuClassTarget).addClass("x-btn-with-menu"); - this.menu.on("show", this.onMenuShow, this); - this.menu.on("hide", this.onMenuHide, this); - } - btn.addClass("x-btn"); - if(Ext.isIE && !Ext.isIE7){ - this.autoWidth.defer(1, this); - }else{ - this.autoWidth(); - } - if(this.handleMouseEvents){ - btn.on("mouseover", this.onMouseOver, this); - btn.on("mouseout", this.onMouseOut, this); - btn.on("mousedown", this.onMouseDown, this); - } - btn.on(this.clickEvent, this.onClick, this); - - if(this.hidden){ - this.hide(); - } - if(this.disabled){ - this.disable(); - } - Ext.ButtonToggleMgr.register(this); - if(this.pressed){ - this.el.addClass("x-btn-pressed"); - } - if(this.repeat){ - var repeater = new Ext.util.ClickRepeater(btn, - typeof this.repeat == "object" ? this.repeat : {} - ); - repeater.on("click", this.onClick, this); - } - }, - - getEl : function(){ - return this.el; - }, - - - destroy : function(){ - Ext.ButtonToggleMgr.unregister(this); - this.el.removeAllListeners(); - this.purgeListeners(); - this.el.remove(); - }, - - - autoWidth : function(){ - if(this.el){ - this.el.setWidth("auto"); - if(Ext.isIE7 && Ext.isStrict){ - var ib = this.el.child('button'); - if(ib && ib.getWidth() > 20){ - ib.clip(); - ib.setWidth(Ext.util.TextMetrics.measure(ib, this.text).width+ib.getFrameWidth('lr')); - } - } - if(this.minWidth){ - if(this.hidden){ - this.el.beginMeasure(); - } - if(this.el.getWidth() < this.minWidth){ - this.el.setWidth(this.minWidth); - } - if(this.hidden){ - this.el.endMeasure(); - } - } - } - }, - - - setHandler : function(handler, scope){ - this.handler = handler; - this.scope = scope; - }, - - - setText : function(text){ - this.text = text; - if(this.el){ - this.el.child("td.x-btn-center button.x-btn-text").update(text); - } - this.autoWidth(); - }, - - - getText : function(){ - return this.text; - }, - - - show: function(){ - this.hidden = false; - if(this.el){ - this[this.hideParent? 'parentEl' : 'el'].setStyle("display", ""); - } - }, - - - hide: function(){ - this.hidden = true; - if(this.el){ - this[this.hideParent? 'parentEl' : 'el'].setStyle("display", "none"); - } - }, - - - setVisible: function(visible){ - if(visible) { - this.show(); - }else{ - this.hide(); - } - }, - - - toggle : function(state){ - state = state === undefined ? !this.pressed : state; - if(state != this.pressed){ - if(state){ - this.el.addClass("x-btn-pressed"); - this.pressed = true; - this.fireEvent("toggle", this, true); - }else{ - this.el.removeClass("x-btn-pressed"); - this.pressed = false; - this.fireEvent("toggle", this, false); - } - if(this.toggleHandler){ - this.toggleHandler.call(this.scope || this, this, state); - } - } - }, - - - focus : function(){ - this.el.child('button:first').focus(); - }, - - - disable : function(){ - if(this.el){ - this.el.addClass("x-btn-disabled"); - } - this.disabled = true; - }, - - - enable : function(){ - if(this.el){ - this.el.removeClass("x-btn-disabled"); - } - this.disabled = false; - }, - - - setDisabled : function(v){ - this[v !== true ? "enable" : "disable"](); - }, - - - onClick : function(e){ - if(e){ - e.preventDefault(); - } - if(!this.disabled){ - if(this.enableToggle){ - this.toggle(); - } - if(this.menu && !this.menu.isVisible()){ - this.menu.show(this.el, this.menuAlign); - } - this.fireEvent("click", this, e); - if(this.handler){ - this.el.removeClass("x-btn-over"); - this.handler.call(this.scope || this, this, e); - } - } - }, - - onMouseOver : function(e){ - if(!this.disabled){ - this.el.addClass("x-btn-over"); - this.fireEvent('mouseover', this, e); - } - }, - - onMouseOut : function(e){ - if(!e.within(this.el, true)){ - this.el.removeClass("x-btn-over"); - this.fireEvent('mouseout', this, e); - } - }, - - onFocus : function(e){ - if(!this.disabled){ - this.el.addClass("x-btn-focus"); - } - }, - - onBlur : function(e){ - this.el.removeClass("x-btn-focus"); - }, - - onMouseDown : function(){ - if(!this.disabled){ - this.el.addClass("x-btn-click"); - Ext.get(document).on('mouseup', this.onMouseUp, this); - } - }, - - onMouseUp : function(){ - this.el.removeClass("x-btn-click"); - Ext.get(document).un('mouseup', this.onMouseUp, this); - }, - - onMenuShow : function(e){ - this.el.addClass("x-btn-menu-active"); - }, - - onMenuHide : function(e){ - this.el.removeClass("x-btn-menu-active"); - } -}); - - -Ext.ButtonToggleMgr = function(){ - var groups = {}; - - function toggleGroup(btn, state){ - if(state){ - var g = groups[btn.toggleGroup]; - for(var i = 0, l = g.length; i < l; i++){ - if(g[i] != btn){ - g[i].toggle(false); - } - } - } - } - - return { - register : function(btn){ - if(!btn.toggleGroup){ - return; - } - var g = groups[btn.toggleGroup]; - if(!g){ - g = groups[btn.toggleGroup] = []; - } - g.push(btn); - btn.on("toggle", toggleGroup); - }, - - unregister : function(btn){ - if(!btn.toggleGroup){ - return; - } - var g = groups[btn.toggleGroup]; - if(g){ - g.remove(btn); - btn.un("toggle", toggleGroup); - } - } - }; -}(); diff --git a/www/extras/extjs/package/button/button.js b/www/extras/extjs/package/button/button.js deleted file mode 100644 index 1d5cd714d..000000000 --- a/www/extras/extjs/package/button/button.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.Button=function(_1,_2){Ext.apply(this,_2);this.addEvents({"click":true,"toggle":true,"mouseover":true,"mouseout":true});if(this.menu){this.menu=Ext.menu.MenuMgr.get(this.menu);}if(_1){this.render(_1);}Ext.Button.superclass.constructor.call(this);};Ext.extend(Ext.Button,Ext.util.Observable,{hidden:false,disabled:false,pressed:false,enableToggle:false,menu:undefined,menuAlign:"tl-bl?",menuClassTarget:"tr",clickEvent:"click",handleMouseEvents:true,tooltipType:"qtip",render:function(_3){var _4;if(this.hideParent){this.parentEl=Ext.get(_3);}if(!this.dhconfig){if(!this.template){if(!Ext.Button.buttonTemplate){Ext.Button.buttonTemplate=new Ext.Template("","","
        
      ");}this.template=Ext.Button.buttonTemplate;}_4=this.template.append(_3,[this.text||" "],true);var _5=_4.child("button:first");_5.on("focus",this.onFocus,this);_5.on("blur",this.onBlur,this);if(this.cls){_4.addClass(this.cls);}if(this.icon){_5.setStyle("background-image","url("+this.icon+")");}if(this.tooltip){if(typeof this.tooltip=="object"){Ext.QuickTips.tips(Ext.apply({target:_5.id},this.tooltip));}else{_5.dom[this.tooltipType]=this.tooltip;}}}else{_4=Ext.DomHelper.append(Ext.get(_3).dom,this.dhconfig,true);}this.el=_4;if(this.id){this.el.dom.id=this.el.id=this.id;}if(this.menu){this.el.child(this.menuClassTarget).addClass("x-btn-with-menu");this.menu.on("show",this.onMenuShow,this);this.menu.on("hide",this.onMenuHide,this);}_4.addClass("x-btn");if(Ext.isIE&&!Ext.isIE7){this.autoWidth.defer(1,this);}else{this.autoWidth();}if(this.handleMouseEvents){_4.on("mouseover",this.onMouseOver,this);_4.on("mouseout",this.onMouseOut,this);_4.on("mousedown",this.onMouseDown,this);}_4.on(this.clickEvent,this.onClick,this);if(this.hidden){this.hide();}if(this.disabled){this.disable();}Ext.ButtonToggleMgr.register(this);if(this.pressed){this.el.addClass("x-btn-pressed");}if(this.repeat){var _6=new Ext.util.ClickRepeater(_4,typeof this.repeat=="object"?this.repeat:{});_6.on("click",this.onClick,this);}},getEl:function(){return this.el;},destroy:function(){Ext.ButtonToggleMgr.unregister(this);this.el.removeAllListeners();this.purgeListeners();this.el.remove();},autoWidth:function(){if(this.el){this.el.setWidth("auto");if(Ext.isIE7&&Ext.isStrict){var ib=this.el.child("button");if(ib&&ib.getWidth()>20){ib.clip();ib.setWidth(Ext.util.TextMetrics.measure(ib,this.text).width+ib.getFrameWidth("lr"));}}if(this.minWidth){if(this.hidden){this.el.beginMeasure();}if(this.el.getWidth() ");var c=this.colors;for(var i=0,_7=c.length;i<_7;i++){t.add([c[i]]);}var el=document.createElement("div");el.className=this.itemCls;t.overwrite(el);_2.dom.insertBefore(el,_3);this.el=Ext.get(el);this.el.on("click",this.handleClick,this,{delegate:"a"});},afterRender:function(){Ext.ColorPalette.superclass.afterRender.call(this);if(this.value){var s=this.value;this.value=null;this.select(s);}},handleClick:function(e,t){e.preventDefault();if(!this.disabled){var c=t.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1];this.select(c.toUpperCase());}},select:function(_d){_d=_d.replace("#","");if(_d!=this.value){var el=this.el;if(this.value){el.child("a.color-"+this.value).removeClass("x-color-palette-sel");}el.child("a.color-"+_d).addClass("x-color-palette-sel");this.value=_d;this.fireEvent("select",this,_d);}}}); - diff --git a/www/extras/extjs/package/data/data.js b/www/extras/extjs/package/data/data.js deleted file mode 100644 index ac668dc1f..000000000 --- a/www/extras/extjs/package/data/data.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.data.SortTypes={none:function(s){return s;},stripTagsRE:/<\/?[^>]+>/gi,asText:function(s){return String(s).replace(this.stripTagsRE,"");},asUCText:function(s){return String(s).toUpperCase().replace(this.stripTagsRE,"");},asUCString:function(s){return String(s).toUpperCase();},asDate:function(s){if(!s){return 0;}if(s instanceof Date){return s.getTime();}return Date.parse(String(s));},asFloat:function(s){var _7=parseFloat(String(s).replace(/,/g,""));if(isNaN(_7)){_7=0;}return _7;},asInt:function(s){var _9=parseInt(String(s).replace(/,/g,""));if(isNaN(_9)){_9=0;}return _9;}}; - -Ext.data.Record=function(_1,id){this.id=(id||id===0)?id:++Ext.data.Record.AUTO_ID;this.data=_1;};Ext.data.Record.create=function(o){var f=function(){f.superclass.constructor.apply(this,arguments);};Ext.extend(f,Ext.data.Record);var p=f.prototype;p.fields=new Ext.util.MixedCollection(false,function(_6){return _6.name;});for(var i=0,_8=o.length;i<_8;i++){p.fields.add(new Ext.data.Field(o[i]));}f.getField=function(_9){return p.fields.get(_9);};return f;};Ext.data.Record.AUTO_ID=1000;Ext.data.Record.EDIT="edit";Ext.data.Record.REJECT="reject";Ext.data.Record.COMMIT="commit";Ext.data.Record.prototype={dirty:false,editing:false,error:null,modified:null,join:function(_a){this.store=_a;},set:function(_b,_c){if(this.data[_b]==_c){return;}this.dirty=true;if(!this.modified){this.modified={};}if(typeof this.modified[_b]=="undefined"){this.modified[_b]=this.data[_b];}this.data[_b]=_c;if(!this.editing){this.store.afterEdit(this);}},get:function(_d){return this.data[_d];},beginEdit:function(){this.editing=true;this.modified={};},cancelEdit:function(){this.editing=false;delete this.modified;},endEdit:function(){this.editing=false;if(this.dirty&&this.store){this.store.afterEdit(this);}},reject:function(){var m=this.modified;for(var n in m){if(typeof m[n]!="function"){this.data[n]=m[n];}}this.dirty=false;delete this.modified;this.editing=false;if(this.store){this.store.afterReject(this);}},commit:function(){this.dirty=false;delete this.modified;this.editing=false;if(this.store){this.store.afterCommit(this);}},hasError:function(){return this.error!=null;},clearError:function(){this.error=null;}}; - -Ext.data.Store=function(_1){this.data=new Ext.util.MixedCollection(false);this.data.getKey=function(o){return o.id;};this.baseParams={};this.paramNames={"start":"start","limit":"limit","sort":"sort","dir":"dir"};Ext.apply(this,_1);if(this.reader&&!this.recordType){this.recordType=this.reader.recordType;}this.fields=this.recordType.prototype.fields;this.modified=[];this.addEvents({datachanged:true,add:true,remove:true,update:true,clear:true,beforeload:true,load:true,loadexception:true});if(this.proxy){this.relayEvents(this.proxy,["loadexception"]);}this.sortToggle={};Ext.data.Store.superclass.constructor.call(this);};Ext.extend(Ext.data.Store,Ext.util.Observable,{remoteSort:false,lastOptions:null,add:function(_3){_3=[].concat(_3);for(var i=0,_5=_3.length;i<_5;i++){_3[i].join(this);}var _6=this.data.length;this.data.addAll(_3);this.fireEvent("add",this,_3,_6);},remove:function(_7){var _8=this.data.indexOf(_7);this.data.removeAt(_8);this.fireEvent("remove",this,_7,_8);},removeAll:function(){this.data.clear();this.fireEvent("clear",this);},insert:function(_9,_a){_a=[].concat(_a);for(var i=0,_c=_a.length;i<_c;i++){this.data.insert(_9,_a[i]);_a[i].join(this);}this.fireEvent("add",this,_a,_9);},indexOf:function(_d){return this.data.indexOf(_d);},indexOfId:function(id){return this.data.indexOfKey(id);},getById:function(id){return this.data.key(id);},getAt:function(_10){return this.data.itemAt(_10);},getRange:function(_11,end){return this.data.getRange(_11,end);},storeOptions:function(o){o=Ext.apply({},o);delete o.callback;delete o.scope;this.lastOptions=o;},load:function(_14){_14=_14||{};if(this.fireEvent("beforeload",this,_14)!==false){this.storeOptions(_14);var p=Ext.apply(_14.params||{},this.baseParams);if(this.sortInfo&&this.remoteSort){var pn=this.paramNames;p[pn["sort"]]=this.sortInfo.field;p[pn["dir"]]=this.sortInfo.direction;}this.proxy.load(p,this.reader,this.loadRecords,this,_14);}},reload:function(_17){this.load(Ext.applyIf(_17||{},this.lastOptions));},loadRecords:function(o,_19,_1a){if(!o||_1a===false){if(_1a!==false){this.fireEvent("load",this,[],_19);}if(_19.callback){_19.callback.call(_19.scope||this,[],_19,false);}return;}var r=o.records,t=o.totalRecords||r.length;for(var i=0,len=r.length;iv2?1:(v1 0) {";var _12="";var _13=false;var ch="";for(var i=0;i<_d.length;++i){ch=_d.charAt(i);if(!_13&&ch=="\\"){_13=true;}else{if(_13){_13=false;_12+=String.escape(ch);}else{var obj=Date.formatCodeToRegex(ch,_10);_10+=obj.g;_12+=obj.s;if(obj.g&&obj.c){_11+=obj.c;}}}}_11+="if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n"+"{return new Date(y, m, d, h, i, s);}\n"+"else if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n"+"{return new Date(y, m, d, h, i);}\n"+"else if (y > 0 && m >= 0 && d > 0 && h >= 0)\n"+"{return new Date(y, m, d, h);}\n"+"else if (y > 0 && m >= 0 && d > 0)\n"+"{return new Date(y, m, d);}\n"+"else if (y > 0 && m >= 0)\n"+"{return new Date(y, m);}\n"+"else if (y > 0)\n"+"{return new Date(y);}\n"+"}return null;}";Date.parseRegexes[_f]=new RegExp("^"+_12+"$");eval(_11);};Date.formatCodeToRegex=function(_17,_18){switch(_17){case "D":return {g:0,c:null,s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};case "j":case "d":return {g:1,c:"d = parseInt(results["+_18+"], 10);\n",s:"(\\d{1,2})"};case "l":return {g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"};case "S":return {g:0,c:null,s:"(?:st|nd|rd|th)"};case "w":return {g:0,c:null,s:"\\d"};case "z":return {g:0,c:null,s:"(?:\\d{1,3})"};case "W":return {g:0,c:null,s:"(?:\\d{2})"};case "F":return {g:1,c:"m = parseInt(Date.monthNumbers[results["+_18+"].substring(0, 3)], 10);\n",s:"("+Date.monthNames.join("|")+")"};case "M":return {g:1,c:"m = parseInt(Date.monthNumbers[results["+_18+"]], 10);\n",s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};case "n":case "m":return {g:1,c:"m = parseInt(results["+_18+"], 10) - 1;\n",s:"(\\d{1,2})"};case "t":return {g:0,c:null,s:"\\d{1,2}"};case "L":return {g:0,c:null,s:"(?:1|0)"};case "Y":return {g:1,c:"y = parseInt(results["+_18+"], 10);\n",s:"(\\d{4})"};case "y":return {g:1,c:"var ty = parseInt(results["+_18+"], 10);\n"+"y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"};case "a":return {g:1,c:"if (results["+_18+"] == 'am') {\n"+"if (h == 12) { h = 0; }\n"+"} else { if (h < 12) { h += 12; }}",s:"(am|pm)"};case "A":return {g:1,c:"if (results["+_18+"] == 'AM') {\n"+"if (h == 12) { h = 0; }\n"+"} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"};case "g":case "G":case "h":case "H":return {g:1,c:"h = parseInt(results["+_18+"], 10);\n",s:"(\\d{1,2})"};case "i":return {g:1,c:"i = parseInt(results["+_18+"], 10);\n",s:"(\\d{2})"};case "s":return {g:1,c:"s = parseInt(results["+_18+"], 10);\n",s:"(\\d{2})"};case "O":return {g:0,c:null,s:"[+-]\\d{4}"};case "T":return {g:0,c:null,s:"[A-Z]{3}"};case "Z":return {g:0,c:null,s:"[+-]\\d{1,5}"};default:return {g:0,c:null,s:String.escape(_17)};}};Date.prototype.getTimezone=function(){return this.toString().replace(/^.*? ([A-Z]{3}) [0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3");};Date.prototype.getGMTOffset=function(){return (this.getTimezoneOffset()>0?"-":"+")+String.leftPad(Math.floor(this.getTimezoneOffset()/60),2,"0")+String.leftPad(this.getTimezoneOffset()%60,2,"0");};Date.prototype.getDayOfYear=function(){var num=0;Date.daysInMonth[1]=this.isLeapYear()?29:28;for(var i=0;i28){day=Math.min(day,this.getFirstDateOfMonth().add("mo",_27).getLastDateOfMonth().getDate());}d.setDate(day);d.setMonth(this.getMonth()+_27);break;case Date.YEAR:d.setFullYear(this.getFullYear()+_27);break;}return d;}; - diff --git a/www/extras/extjs/package/datepicker/datepicker.js b/www/extras/extjs/package/datepicker/datepicker.js deleted file mode 100644 index ca09d0dd6..000000000 --- a/www/extras/extjs/package/datepicker/datepicker.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.DatePicker=function(_1){Ext.DatePicker.superclass.constructor.call(this,_1);this.value=_1&&_1.value?_1.value.clearTime():new Date().clearTime();this.addEvents({select:true});if(this.handler){this.on("select",this.handler,this.scope||this);}if(!this.disabledDatesRE&&this.disabledDates){var dd=this.disabledDates;var re="(?:";for(var i=0;i","  ",""];var dn=this.dayNames;for(var i=0;i<7;i++){var d=this.startDay+i;if(d>6){d=d-7;}m.push("");}m[m.length]="";for(var i=0;i<42;i++){if(i%7==0&&i!=0){m[m.length]="";}m[m.length]="";}m[m.length]="
      ",dn[d].substr(0,1),"
      ";var el=document.createElement("div");el.className="x-date-picker";el.innerHTML=m.join("");_7.dom.insertBefore(el,_8);this.el=Ext.get(el);new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"),{handler:this.showPrevMonth,scope:this});new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"),{handler:this.showNextMonth,scope:this});this.el.on("mousewheel",this.handleMouseWheel,this);var kn=new Ext.KeyNav(this.el,{"left":function(e){e.ctrlKey?this.showPrevMonth():this.update(this.activeDate.add("d",-1));},"right":function(e){e.ctrlKey?this.showNextMonth():this.update(this.activeDate.add("d",1));},"up":function(e){e.ctrlKey?this.showNextYear():this.update(this.activeDate.add("d",-7));},"down":function(e){e.ctrlKey?this.showPrevYear():this.update(this.activeDate.add("d",7));},"pageUp":function(e){this.showNextMonth();},"pageDown":function(e){this.showPrevMonth();},"enter":function(e){e.stopPropagation();return true;},scope:this});this.el.on("click",this.handleDateClick,this,{delegate:"a.x-date-date"});this.el.addKeyListener(Ext.EventObject.SPACE,this.selectToday,this);this.el.unselectable();this.cells=this.el.select("table.x-date-inner tbody td");this.textNodes=this.el.query("table.x-date-inner tbody span");var _16=new Ext.menu.Menu({plain:true,cls:"x-date-mmenu",allowOtherMenus:true});var _17=Ext.id()+"months";for(var i=0;i<12;i++){_16.add(new Ext.menu.CheckItem({id:"mm-"+i,text:this.monthNames[i],group:_17,month:i}));}_16.on({"beforeshow":function(){_16.items.get("mm-"+(this.activeDate||this.value).getMonth()).setChecked(true);},"itemclick":function(_18){var d=(this.activeDate||this.value).clone();d.setMonth(_18.month);this.update(d);},"show":function(m){this.visibleRegion=m.el.getRegion().adjust(2,2,-2,-2);},"mouseout":function(m,e){if(!this.visibleRegion.contains(e.getPoint())){m.hide();}},scope:this});this.mbtn=new Ext.Button(this.el.child("td.x-date-middle",true),{menu:_16,text:" ",menuAlign:"c-c?",tooltip:this.monthYearText});var _1d=(new Date()).dateFormat(this.format);var _1e=new Ext.Button(this.el.child("td.x-date-bottom",true),{text:String.format(this.todayText,_1d),tooltip:String.format(this.todayTip,_1d),handler:this.selectToday,scope:this});if(Ext.isIE){this.el.repaint();}this.update(this.value);},showPrevMonth:function(e){this.update(this.activeDate.add("mo",-1));},showNextMonth:function(e){this.update(this.activeDate.add("mo",1));},showPrevYear:function(){this.update(this.activeDate.add("y",-1));},showNextYear:function(){this.update(this.activeDate.add("y",1));},handleMouseWheel:function(e){var _22=e.getWheelDelta();if(_22>0){this.showPrevMonth();e.stopEvent();}else{if(_22<0){this.showNextMonth();e.stopEvent();}}},handleDateClick:function(e,t){e.stopEvent();if(t.dateValue&&!Ext.fly(t.parentNode).hasClass("x-date-disabled")){this.setValue(new Date(t.dateValue));this.fireEvent("select",this,this.value);}},selectToday:function(){this.setValue(new Date().clearTime());this.fireEvent("select",this,this.value);},update:function(_25){var vd=this.activeDate;this.activeDate=_25;if(vd&&this.el){var t=_25.getTime();if(vd.getMonth()==_25.getMonth()&&vd.getFullYear()==_25.getFullYear()){this.cells.removeClass("x-date-selected");this.cells.each(function(c){if(c.dom.firstChild.dateValue==t){c.addClass("x-date-selected");setTimeout(function(){try{c.dom.firstChild.focus();}catch(e){}},50);return false;}});return;}}var _29=_25.getDaysInMonth();var _2a=_25.getFirstDateOfMonth();var _2b=_2a.getDay()-this.startDay;if(_2b<=this.startDay){_2b+=7;}var pm=_25.add("mo",-1);var _2d=pm.getDaysInMonth()-_2b;var _2e=this.cells.elements;var _2f=this.textNodes;_29+=_2b;var day=86400000;var d=(new Date(pm.getFullYear(),pm.getMonth(),_2d)).clearTime();var _32=new Date().clearTime().getTime();var sel=_25.clearTime().getTime();var min=this.minDate?this.minDate.clearTime():Number.NEGATIVE_INFINITY;var max=this.maxDate?this.maxDate.clearTime():Number.POSITIVE_INFINITY;var _36=this.disabledDatesRE;var _37=this.disabledDatesText;var _38=this.disabledDays?this.disabledDays.join(""):false;var _39=this.disabledDaysText;var _3a=this.format;var _3b=function(cal,_3d){_3d.title="";var t=d.getTime();_3d.firstChild.dateValue=t;if(t==_32){_3d.className+=" x-date-today";_3d.title=cal.todayText;}if(t==sel){_3d.className+=" x-date-selected";setTimeout(function(){try{_3d.firstChild.focus();}catch(e){}},50);}if(tmax){_3d.className=" x-date-disabled";_3d.title=cal.maxText;return;}if(_38){if(_38.indexOf(d.getDay())!=-1){_3d.title=_39;_3d.className=" x-date-disabled";}}if(_36&&_3a){var _3f=d.dateFormat(_3a);if(_36.test(_3f)){_3d.title=_37.replace("%0",_3f);_3d.className=" x-date-disabled";}}};var i=0;for(;i<_2b;i++){_2f[i].innerHTML=(++_2d);d.setDate(d.getDate()+1);_2e[i].className="x-date-prevday";_3b(this,_2e[i]);}for(;i<_29;i++){intDay=i-_2b+1;_2f[i].innerHTML=(intDay);d.setDate(d.getDate()+1);_2e[i].className="x-date-active";_3b(this,_2e[i]);}var _41=0;for(;i<42;i++){_2f[i].innerHTML=(++_41);d.setDate(d.getDate()+1);_2e[i].className="x-date-nextday";_3b(this,_2e[i]);}this.mbtn.setText(this.monthNames[_25.getMonth()]+" "+_25.getFullYear());if(!this.internalRender){var _42=this.el.dom.firstChild;var w=_42.offsetWidth;this.el.setWidth(w+this.el.getBorderWidth("lr"));Ext.fly(_42).setWidth(w);this.internalRender=true;if(Ext.isOpera&&!this.secondPass){_42.rows[0].cells[1].style.width=(w-(_42.rows[0].cells[0].offsetWidth+_42.rows[0].cells[2].offsetWidth))+"px";this.secondPass=true;this.update.defer(10,this,[_25]);}}}}); - diff --git a/www/extras/extjs/package/dialog/dialogs-debug.js b/www/extras/extjs/package/dialog/dialogs-debug.js deleted file mode 100644 index a2e1181a7..000000000 --- a/www/extras/extjs/package/dialog/dialogs-debug.js +++ /dev/null @@ -1,1241 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - - -Ext.BasicDialog = function(el, config){ - this.el = Ext.get(el); - var dh = Ext.DomHelper; - if(!this.el && config && config.autoCreate){ - if(typeof config.autoCreate == "object"){ - if(!config.autoCreate.id){ - config.autoCreate.id = el; - } - this.el = dh.append(document.body, - config.autoCreate, true); - }else{ - this.el = dh.append(document.body, - {tag: "div", id: el, style:'visibility:hidden;'}, true); - } - } - el = this.el; - el.setDisplayed(true); - el.hide = this.hideAction; - this.id = el.id; - el.addClass("x-dlg"); - - Ext.apply(this, config); - - this.proxy = el.createProxy("x-dlg-proxy"); - this.proxy.hide = this.hideAction; - this.proxy.setOpacity(.5); - this.proxy.hide(); - - if(config.width){ - el.setWidth(config.width); - } - if(config.height){ - el.setHeight(config.height); - } - this.size = el.getSize(); - if(typeof config.x != "undefined" && typeof config.y != "undefined"){ - this.xy = [config.x,config.y]; - }else{ - this.xy = el.getCenterXY(true); - } - - this.header = el.child("/.x-dlg-hd"); - - this.body = el.child("/.x-dlg-bd"); - - this.footer = el.child("/.x-dlg-ft"); - - if(!this.header){ - this.header = el.createChild({tag: "div", cls:"x-dlg-hd", html: " "}, this.body ? this.body.dom : null); - } - if(!this.body){ - this.body = el.createChild({tag: "div", cls:"x-dlg-bd"}); - } - - this.header.unselectable(); - if(this.title){ - this.header.update(this.title); - } - - this.focusEl = el.createChild({tag: "a", href:"#", cls:"x-dlg-focus", tabIndex:"-1"}); - this.focusEl.swallowEvent("click", true); - - this.header.wrap({cls:"x-dlg-hd-right"}).wrap({cls:"x-dlg-hd-left"}, true); - - - this.bwrap = this.body.wrap({tag: "div", cls:"x-dlg-dlg-body"}); - if(this.footer){ - this.bwrap.dom.appendChild(this.footer.dom); - } - - this.bg = this.el.createChild({ - tag: "div", cls:"x-dlg-bg", - html: '
       
      ' - }); - this.centerBg = this.bg.child("div.x-dlg-bg-center"); - - - if(this.autoScroll !== false && !this.autoTabs){ - this.body.setStyle("overflow", "auto"); - } - - this.toolbox = this.el.createChild({cls: "x-dlg-toolbox"}); - - if(this.closable !== false){ - this.el.addClass("x-dlg-closable"); - this.close = this.toolbox.createChild({cls:"x-dlg-close"}); - this.close.on("click", this.closeClick, this); - this.close.addClassOnOver("x-dlg-close-over"); - } - if(this.collapsible !== false){ - this.collapseBtn = this.toolbox.createChild({cls:"x-dlg-collapse"}); - this.collapseBtn.on("click", this.collapseClick, this); - this.collapseBtn.addClassOnOver("x-dlg-collapse-over"); - this.header.on("dblclick", this.collapseClick, this); - } - if(this.resizable !== false){ - this.el.addClass("x-dlg-resizable"); - this.resizer = new Ext.Resizable(el, { - minWidth: this.minWidth || 80, - minHeight:this.minHeight || 80, - handles: this.resizeHandles || "all", - pinned: true - }); - this.resizer.on("beforeresize", this.beforeResize, this); - this.resizer.on("resize", this.onResize, this); - } - if(this.draggable !== false){ - el.addClass("x-dlg-draggable"); - if (!this.proxyDrag) { - var dd = new Ext.dd.DD(el.dom.id, "WindowDrag"); - } - else { - var dd = new Ext.dd.DDProxy(el.dom.id, "WindowDrag", {dragElId: this.proxy.id}); - } - dd.setHandleElId(this.header.id); - dd.endDrag = this.endMove.createDelegate(this); - dd.startDrag = this.startMove.createDelegate(this); - dd.onDrag = this.onDrag.createDelegate(this); - dd.scroll = false; - this.dd = dd; - } - if(this.modal){ - this.mask = dh.append(document.body, {tag: "div", cls:"x-dlg-mask"}, true); - this.mask.enableDisplayMode("block"); - this.mask.hide(); - this.el.addClass("x-dlg-modal"); - } - if(this.shadow){ - this.shadow = new Ext.Shadow({ - mode : typeof this.shadow == "string" ? this.shadow : "sides", - offset : this.shadowOffset - }); - }else{ - this.shadowOffset = 0; - } - if(Ext.useShims && this.shim !== false){ - this.shim = this.el.createShim(); - this.shim.hide = this.hideAction; - this.shim.hide(); - }else{ - this.shim = false; - } - if(this.autoTabs){ - this.initTabs(); - } - this.addEvents({ - - "keydown" : true, - - "move" : true, - - "resize" : true, - - "beforehide" : true, - - "hide" : true, - - "beforeshow" : true, - - "show" : true - }); - el.on("keydown", this.onKeyDown, this); - el.on("mousedown", this.toFront, this); - Ext.EventManager.onWindowResize(this.adjustViewport, this, true); - this.el.hide(); - Ext.DialogManager.register(this); - Ext.BasicDialog.superclass.constructor.call(this); -}; - -Ext.extend(Ext.BasicDialog, Ext.util.Observable, { - shadowOffset: 5, - minHeight: 80, - minWidth: 200, - minButtonWidth: 75, - defaultButton: null, - buttonAlign: "right", - tabTag: 'div', - firstShow: true, - - - setTitle : function(text){ - this.header.update(text); - return this; - }, - - - closeClick : function(){ - this.hide(); - }, - - - collapseClick : function(){ - this[this.collapsed ? "expand" : "collapse"](); - }, - - - collapse : function(){ - if(!this.collapsed){ - this.collapsed = true; - this.el.addClass("x-dlg-collapsed"); - this.restoreHeight = this.el.getHeight(); - this.resizeTo(this.el.getWidth(), this.header.getHeight()); - } - }, - - - expand : function(){ - if(this.collapsed){ - this.collapsed = false; - this.el.removeClass("x-dlg-collapsed"); - this.resizeTo(this.el.getWidth(), this.restoreHeight); - } - }, - - - initTabs : function(){ - var tabs = this.getTabs(); - while(tabs.getTab(0)){ - tabs.removeTab(0); - } - this.el.select(this.tabTag+'.x-dlg-tab').each(function(el){ - var dom = el.dom; - tabs.addTab(Ext.id(dom), dom.title); - dom.title = ""; - }); - tabs.activate(0); - return tabs; - }, - - - beforeResize : function(){ - this.resizer.minHeight = Math.max(this.minHeight, this.getHeaderFooterHeight(true)+40); - }, - - - onResize : function(){ - this.refreshSize(); - this.syncBodyHeight(); - this.adjustAssets(); - this.focus(); - this.fireEvent("resize", this, this.size.width, this.size.height); - }, - - - onKeyDown : function(e){ - if(this.isVisible()){ - this.fireEvent("keydown", this, e); - } - }, - - - resizeTo : function(width, height){ - this.el.setSize(width, height); - this.size = {width: width, height: height}; - this.syncBodyHeight(); - if(this.fixedcenter){ - this.center(); - } - if(this.isVisible()){ - this.constrainXY(); - this.adjustAssets(); - } - this.fireEvent("resize", this, width, height); - return this; - }, - - - - setContentSize : function(w, h){ - h += this.getHeaderFooterHeight() + this.body.getMargins("tb"); - w += this.body.getMargins("lr") + this.bwrap.getMargins("lr") + this.centerBg.getPadding("lr"); - - h += this.body.getPadding("tb") + this.bwrap.getBorderWidth("tb") + this.body.getBorderWidth("tb") + this.el.getBorderWidth("tb"); - w += this.body.getPadding("lr") + this.bwrap.getBorderWidth("lr") + this.body.getBorderWidth("lr") + this.bwrap.getPadding("lr") + this.el.getBorderWidth("lr"); - - if(this.tabs){ - h += this.tabs.stripWrap.getHeight() + this.tabs.bodyEl.getMargins("tb") + this.tabs.bodyEl.getPadding("tb"); - w += this.tabs.bodyEl.getMargins("lr") + this.tabs.bodyEl.getPadding("lr"); - } - this.resizeTo(w, h); - return this; - }, - - - addKeyListener : function(key, fn, scope){ - var keyCode, shift, ctrl, alt; - if(typeof key == "object" && !(key instanceof Array)){ - keyCode = key["key"]; - shift = key["shift"]; - ctrl = key["ctrl"]; - alt = key["alt"]; - }else{ - keyCode = key; - } - var handler = function(dlg, e){ - if((!shift || e.shiftKey) && (!ctrl || e.ctrlKey) && (!alt || e.altKey)){ - var k = e.getKey(); - if(keyCode instanceof Array){ - for(var i = 0, len = keyCode.length; i < len; i++){ - if(keyCode[i] == k){ - fn.call(scope || window, dlg, k, e); - return; - } - } - }else{ - if(k == keyCode){ - fn.call(scope || window, dlg, k, e); - } - } - } - }; - this.on("keydown", handler); - return this; - }, - - - getTabs : function(){ - if(!this.tabs){ - this.el.addClass("x-dlg-auto-tabs"); - this.body.addClass(this.tabPosition == "bottom" ? "x-tabs-bottom" : "x-tabs-top"); - this.tabs = new Ext.TabPanel(this.body.dom, this.tabPosition == "bottom"); - } - return this.tabs; - }, - - - addButton : function(config, handler, scope){ - var dh = Ext.DomHelper; - if(!this.footer){ - this.footer = dh.append(this.bwrap, {tag: "div", cls:"x-dlg-ft"}, true); - } - if(!this.btnContainer){ - var tb = this.footer.createChild({ - tag:"div", - cls:"x-dlg-btns x-dlg-btns-"+this.buttonAlign, - html:'
      ' - }, null, true); - this.btnContainer = tb.firstChild.firstChild.firstChild; - } - var bconfig = { - handler: handler, - scope: scope, - minWidth: this.minButtonWidth, - hideParent:true - }; - if(typeof config == "string"){ - bconfig.text = config; - }else{ - if(config.tag){ - bconfig.dhconfig = config; - }else{ - Ext.apply(bconfig, config); - } - } - var btn = new Ext.Button( - this.btnContainer.appendChild(document.createElement("td")), - bconfig - ); - this.syncBodyHeight(); - if(!this.buttons){ - - this.buttons = []; - } - this.buttons.push(btn); - return btn; - }, - - - setDefaultButton : function(btn){ - this.defaultButton = btn; - return this; - }, - - - getHeaderFooterHeight : function(safe){ - var height = 0; - if(this.header){ - height += this.header.getHeight(); - } - if(this.footer){ - var fm = this.footer.getMargins(); - height += (this.footer.getHeight()+fm.top+fm.bottom); - } - height += this.bwrap.getPadding("tb")+this.bwrap.getBorderWidth("tb"); - height += this.centerBg.getPadding("tb"); - return height; - }, - - - syncBodyHeight : function(){ - var bd = this.body, cb = this.centerBg, bw = this.bwrap; - var height = this.size.height - this.getHeaderFooterHeight(false); - bd.setHeight(height-bd.getMargins("tb")); - var hh = this.header.getHeight(); - var h = this.size.height-hh; - cb.setHeight(h); - bw.setLeftTop(cb.getPadding("l"), hh+cb.getPadding("t")); - bw.setHeight(h-cb.getPadding("tb")); - bw.setWidth(this.el.getWidth(true)-cb.getPadding("lr")); - bd.setWidth(bw.getWidth(true)); - if(this.tabs){ - this.tabs.syncHeight(); - if(Ext.isIE){ - this.tabs.el.repaint(); - } - } - }, - - - restoreState : function(){ - var box = Ext.state.Manager.get(this.stateId || (this.el.id + "-state")); - if(box && box.width){ - this.xy = [box.x, box.y]; - this.resizeTo(box.width, box.height); - } - return this; - }, - - - beforeShow : function(){ - this.expand(); - if(this.fixedcenter){ - this.xy = this.el.getCenterXY(true); - } - if(this.modal){ - Ext.get(document.body).addClass("x-body-masked"); - this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); - this.mask.show(); - } - this.constrainXY(); - }, - - - animShow : function(){ - var b = Ext.get(this.animateTarget, true).getBox(); - this.proxy.setSize(b.width, b.height); - this.proxy.setLocation(b.x, b.y); - this.proxy.show(); - this.proxy.setBounds(this.xy[0], this.xy[1], this.size.width, this.size.height, - true, .35, this.showEl.createDelegate(this)); - }, - - - show : function(animateTarget){ - if (this.fireEvent("beforeshow", this) === false){ - return; - } - if(this.syncHeightBeforeShow){ - this.syncBodyHeight(); - }else if(this.firstShow){ - this.firstShow = false; - this.syncBodyHeight(); - } - this.animateTarget = animateTarget || this.animateTarget; - if(!this.el.isVisible()){ - this.beforeShow(); - if(this.animateTarget){ - this.animShow(); - }else{ - this.showEl(); - } - } - return this; - }, - - - showEl : function(){ - this.proxy.hide(); - this.el.setXY(this.xy); - this.el.show(); - this.adjustAssets(true); - this.toFront(); - this.focus(); - - if(Ext.isIE){ - this.el.repaint(); - } - this.fireEvent("show", this); - }, - - - focus : function(){ - if(this.defaultButton){ - this.defaultButton.focus(); - }else{ - this.focusEl.focus(); - } - }, - - - constrainXY : function(){ - if(this.constraintoviewport !== false){ - if(!this.viewSize){ - if(this.container){ - var s = this.container.getSize(); - this.viewSize = [s.width, s.height]; - }else{ - this.viewSize = [Ext.lib.Dom.getViewWidth(),Ext.lib.Dom.getViewHeight()]; - } - } - var s = Ext.get(this.container||document).getScroll(); - - var x = this.xy[0], y = this.xy[1]; - var w = this.size.width, h = this.size.height; - var vw = this.viewSize[0], vh = this.viewSize[1]; - - var moved = false; - - if(x + w > vw+s.left){ - x = vw - w; - moved = true; - } - if(y + h > vh+s.top){ - y = vh - h; - moved = true; - } - - if(x < s.left){ - x = s.left; - moved = true; - } - if(y < s.top){ - y = s.top; - moved = true; - } - if(moved){ - - this.xy = [x, y]; - if(this.isVisible()){ - this.el.setLocation(x, y); - this.adjustAssets(); - } - } - } - }, - - - onDrag : function(){ - if(!this.proxyDrag){ - this.xy = this.el.getXY(); - this.adjustAssets(); - } - }, - - - adjustAssets : function(doShow){ - var x = this.xy[0], y = this.xy[1]; - var w = this.size.width, h = this.size.height; - if(doShow === true){ - if(this.shadow){ - this.shadow.show(this.el); - } - if(this.shim){ - this.shim.show(); - } - } - if(this.shadow && this.shadow.isVisible()){ - this.shadow.show(this.el); - } - if(this.shim && this.shim.isVisible()){ - this.shim.setBounds(x, y, w, h); - } - }, - - - adjustViewport : function(w, h){ - if(!w || !h){ - w = Ext.lib.Dom.getViewWidth(); - h = Ext.lib.Dom.getViewHeight(); - } - - this.viewSize = [w, h]; - if(this.modal && this.mask.isVisible()){ - this.mask.setSize(w, h); - this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); - } - if(this.isVisible()){ - this.constrainXY(); - } - }, - - - destroy : function(removeEl){ - if(this.isVisible()){ - this.animateTarget = null; - this.hide(); - } - Ext.EventManager.removeResizeListener(this.adjustViewport, this); - if(this.tabs){ - this.tabs.destroy(removeEl); - } - Ext.destroy( - this.shim, - this.proxy, - this.resizer, - this.close, - this.mask - ); - if(this.dd){ - this.dd.unreg(); - } - if(this.buttons){ - for(var i = 0, len = this.buttons.length; i < len; i++){ - this.buttons[i].destroy(); - } - } - this.el.removeAllListeners(); - if(removeEl === true){ - this.el.update(""); - this.el.remove(); - } - Ext.DialogManager.unregister(this); - }, - - - startMove : function(){ - if(this.proxyDrag){ - this.proxy.show(); - } - if(this.constraintoviewport !== false){ - this.dd.constrainTo(document.body, {right: this.shadowOffset, bottom: this.shadowOffset}); - } - }, - - - endMove : function(){ - if(!this.proxyDrag){ - Ext.dd.DD.prototype.endDrag.apply(this.dd, arguments); - }else{ - Ext.dd.DDProxy.prototype.endDrag.apply(this.dd, arguments); - this.proxy.hide(); - } - this.refreshSize(); - this.adjustAssets(); - this.focus(); - this.fireEvent("move", this, this.xy[0], this.xy[1]); - }, - - - toFront : function(){ - Ext.DialogManager.bringToFront(this); - return this; - }, - - - toBack : function(){ - Ext.DialogManager.sendToBack(this); - return this; - }, - - - center : function(){ - var xy = this.el.getCenterXY(true); - this.moveTo(xy[0], xy[1]); - return this; - }, - - - moveTo : function(x, y){ - this.xy = [x,y]; - if(this.isVisible()){ - this.el.setXY(this.xy); - this.adjustAssets(); - } - return this; - }, - - - alignTo : function(element, position, offsets){ - this.xy = this.el.getAlignToXY(element, position, offsets); - if(this.isVisible()){ - this.el.setXY(this.xy); - this.adjustAssets(); - } - return this; - }, - - - anchorTo : function(el, alignment, offsets, monitorScroll){ - var action = function(){ - this.alignTo(el, alignment, offsets); - }; - Ext.EventManager.onWindowResize(action, this); - var tm = typeof monitorScroll; - if(tm != 'undefined'){ - Ext.EventManager.on(window, 'scroll', action, this, - {buffer: tm == 'number' ? monitorScroll : 50}); - } - action.call(this); - return this; - }, - - - isVisible : function(){ - return this.el.isVisible(); - }, - - - animHide : function(callback){ - var b = Ext.get(this.animateTarget).getBox(); - this.proxy.show(); - this.proxy.setBounds(this.xy[0], this.xy[1], this.size.width, this.size.height); - this.el.hide(); - this.proxy.setBounds(b.x, b.y, b.width, b.height, true, .35, - this.hideEl.createDelegate(this, [callback])); - }, - - - hide : function(callback){ - if (this.fireEvent("beforehide", this) === false){ - return; - } - if(this.shadow){ - this.shadow.hide(); - } - if(this.shim) { - this.shim.hide(); - } - if(this.animateTarget){ - this.animHide(callback); - }else{ - this.el.hide(); - this.hideEl(callback); - } - return this; - }, - - - hideEl : function(callback){ - this.proxy.hide(); - if(this.modal){ - this.mask.hide(); - Ext.get(document.body).removeClass("x-body-masked"); - } - this.fireEvent("hide", this); - if(typeof callback == "function"){ - callback(); - } - }, - - - hideAction : function(){ - this.setLeft("-10000px"); - this.setTop("-10000px"); - this.setStyle("visibility", "hidden"); - }, - - - refreshSize : function(){ - this.size = this.el.getSize(); - this.xy = this.el.getXY(); - Ext.state.Manager.set(this.stateId || this.el.id + "-state", this.el.getBox()); - }, - - - - setZIndex : function(index){ - if(this.modal){ - this.mask.setStyle("z-index", index); - } - if(this.shim){ - this.shim.setStyle("z-index", ++index); - } - if(this.shadow){ - this.shadow.setZIndex(++index); - } - this.el.setStyle("z-index", ++index); - if(this.proxy){ - this.proxy.setStyle("z-index", ++index); - } - if(this.resizer){ - this.resizer.proxy.setStyle("z-index", ++index); - } - - this.lastZIndex = index; - }, - - - getEl : function(){ - return this.el; - } -}); - - -Ext.DialogManager = function(){ - var list = {}; - var accessList = []; - var front = null; - - - var sortDialogs = function(d1, d2){ - return (!d1._lastAccess || d1._lastAccess < d2._lastAccess) ? -1 : 1; - }; - - - var orderDialogs = function(){ - accessList.sort(sortDialogs); - var seed = Ext.DialogManager.zseed; - for(var i = 0, len = accessList.length; i < len; i++){ - var dlg = accessList[i]; - if(dlg){ - dlg.setZIndex(seed + (i*10)); - } - } - }; - - return { - - zseed : 9000, - - - register : function(dlg){ - list[dlg.id] = dlg; - accessList.push(dlg); - }, - - - unregister : function(dlg){ - delete list[dlg.id]; - if(!accessList.indexOf){ - for(var i = 0, len = accessList.length; i < len; i++){ - if(accessList[i] == dlg){ - accessList.splice(i, 1); - return; - } - } - }else{ - var i = accessList.indexOf(dlg); - if(i != -1){ - accessList.splice(i, 1); - } - } - }, - - - get : function(id){ - return typeof id == "object" ? id : list[id]; - }, - - - bringToFront : function(dlg){ - dlg = this.get(dlg); - if(dlg != front){ - front = dlg; - dlg._lastAccess = new Date().getTime(); - orderDialogs(); - } - return dlg; - }, - - - sendToBack : function(dlg){ - dlg = this.get(dlg); - dlg._lastAccess = -(new Date().getTime()); - orderDialogs(); - return dlg; - }, - - - hideAll : function(){ - for(var id in list){ - if(list[id] && typeof list[id] != "function" && list[id].isVisible()){ - list[id].hide(); - } - } - } - }; -}(); - - -Ext.LayoutDialog = function(el, config){ - config.autoTabs = false; - Ext.LayoutDialog.superclass.constructor.call(this, el, config); - this.body.setStyle({overflow:"hidden", position:"relative"}); - this.layout = new Ext.BorderLayout(this.body.dom, config); - this.layout.monitorWindowResize = false; - this.el.addClass("x-dlg-auto-layout"); - - this.center = Ext.BasicDialog.prototype.center; - this.on("show", this.layout.layout, this.layout, true); -}; -Ext.extend(Ext.LayoutDialog, Ext.BasicDialog, { - - endUpdate : function(){ - this.layout.endUpdate(); - }, - - - beginUpdate : function(){ - this.layout.beginUpdate(); - }, - - - getLayout : function(){ - return this.layout; - }, - - showEl : function(){ - Ext.LayoutDialog.superclass.showEl.apply(this, arguments); - if(Ext.isIE7){ - this.layout.layout(); - } - }, - - - - syncBodyHeight : function(){ - Ext.LayoutDialog.superclass.syncBodyHeight.call(this); - if(this.layout){this.layout.layout();} - } -}); - -Ext.MessageBox = function(){ - var dlg, opt, mask, waitTimer; - var bodyEl, msgEl, textboxEl, textareaEl, progressEl, pp; - var buttons, activeTextEl, bwidth; - - - var handleButton = function(button){ - dlg.hide(); - Ext.callback(opt.fn, opt.scope||window, [button, activeTextEl.dom.value], 1); - }; - - - var handleHide = function(){ - if(opt && opt.cls){ - dlg.el.removeClass(opt.cls); - } - if(waitTimer){ - Ext.TaskMgr.stop(waitTimer); - waitTimer = null; - } - }; - - - var updateButtons = function(b){ - var width = 0; - if(!b){ - buttons["ok"].hide(); - buttons["cancel"].hide(); - buttons["yes"].hide(); - buttons["no"].hide(); - dlg.footer.dom.style.display = 'none'; - return width; - } - dlg.footer.dom.style.display = ''; - for(var k in buttons){ - if(typeof buttons[k] != "function"){ - if(b[k]){ - buttons[k].show(); - buttons[k].setText(typeof b[k] == "string" ? b[k] : Ext.MessageBox.buttonText[k]); - width += buttons[k].el.getWidth()+15; - }else{ - buttons[k].hide(); - } - } - } - return width; - }; - - - var handleEsc = function(d, k, e){ - if(opt && opt.closable !== false){ - dlg.hide(); - } - if(e){ - e.stopEvent(); - } - }; - - return { - - getDialog : function(){ - if(!dlg){ - dlg = new Ext.BasicDialog("x-msg-box", { - autoCreate : true, - shadow: true, - draggable: true, - resizable:false, - constraintoviewport:false, - fixedcenter:true, - collapsible : false, - shim:true, - modal: true, - width:400, height:100, - buttonAlign:"center", - closeClick : function(){ - if(opt && opt.buttons && opt.buttons.no && !opt.buttons.cancel){ - handleButton("no"); - }else{ - handleButton("cancel"); - } - } - }); - dlg.on("hide", handleHide); - mask = dlg.mask; - dlg.addKeyListener(27, handleEsc); - buttons = {}; - var bt = this.buttonText; - buttons["ok"] = dlg.addButton(bt["ok"], handleButton.createCallback("ok")); - buttons["yes"] = dlg.addButton(bt["yes"], handleButton.createCallback("yes")); - buttons["no"] = dlg.addButton(bt["no"], handleButton.createCallback("no")); - buttons["cancel"] = dlg.addButton(bt["cancel"], handleButton.createCallback("cancel")); - bodyEl = dlg.body.createChild({ - tag:"div", - html:'
       
      ' - }); - msgEl = bodyEl.dom.firstChild; - textboxEl = Ext.get(bodyEl.dom.childNodes[2]); - textboxEl.enableDisplayMode(); - textboxEl.addKeyListener([10,13], function(){ - if(dlg.isVisible() && opt && opt.buttons){ - if(opt.buttons.ok){ - handleButton("ok"); - }else if(opt.buttons.yes){ - handleButton("yes"); - } - } - }); - textareaEl = Ext.get(bodyEl.dom.childNodes[3]); - textareaEl.enableDisplayMode(); - progressEl = Ext.get(bodyEl.dom.childNodes[4]); - progressEl.enableDisplayMode(); - var pf = progressEl.dom.firstChild; - pp = Ext.get(pf.firstChild); - pp.setHeight(pf.offsetHeight); - } - return dlg; - }, - - - updateText : function(text){ - if(!dlg.isVisible() && !opt.width){ - dlg.resizeTo(this.maxWidth, 100); - } - msgEl.innerHTML = text || ' '; - var w = Math.max(Math.min(opt.width || msgEl.offsetWidth, this.maxWidth), - Math.max(opt.minWidth || this.minWidth, bwidth)); - if(opt.prompt){ - activeTextEl.setWidth(w); - } - if(dlg.isVisible()){ - dlg.fixedcenter = false; - } - dlg.setContentSize(w, bodyEl.getHeight()); - if(dlg.isVisible()){ - dlg.fixedcenter = true; - } - return this; - }, - - - updateProgress : function(value, text){ - if(text){ - this.updateText(text); - } - pp.setWidth(Math.floor(value*progressEl.dom.firstChild.offsetWidth)); - return this; - }, - - - isVisible : function(){ - return dlg && dlg.isVisible(); - }, - - - hide : function(){ - if(this.isVisible()){ - dlg.hide(); - } - }, - - - show : function(options){ - if(this.isVisible()){ - this.hide(); - } - var d = this.getDialog(); - opt = options; - d.setTitle(opt.title || " "); - d.close.setDisplayed(opt.closable !== false); - activeTextEl = textboxEl; - opt.prompt = opt.prompt || (opt.multiline ? true : false); - if(opt.prompt){ - if(opt.multiline){ - textboxEl.hide(); - textareaEl.show(); - textareaEl.setHeight(typeof opt.multiline == "number" ? - opt.multiline : this.defaultTextHeight); - activeTextEl = textareaEl; - }else{ - textboxEl.show(); - textareaEl.hide(); - } - }else{ - textboxEl.hide(); - textareaEl.hide(); - } - progressEl.setDisplayed(opt.progress === true); - this.updateProgress(0); - activeTextEl.dom.value = opt.value || ""; - if(opt.prompt){ - dlg.setDefaultButton(activeTextEl); - }else{ - var bs = opt.buttons; - var db = null; - if(bs && bs.ok){ - db = buttons["ok"]; - }else if(bs && bs.yes){ - db = buttons["yes"]; - } - dlg.setDefaultButton(db); - } - bwidth = updateButtons(opt.buttons); - this.updateText(opt.msg); - if(opt.cls){ - d.el.addClass(opt.cls); - } - d.proxyDrag = opt.proxyDrag === true; - d.modal = opt.modal !== false; - d.mask = opt.modal !== false ? mask : false; - if(!d.isVisible()){ - - document.body.appendChild(dlg.el.dom); - d.animateTarget = null; - d.show(options.animEl); - } - return this; - }, - - - progress : function(title, msg){ - this.show({ - title : title, - msg : msg, - buttons: false, - progress:true, - closable:false, - minWidth: this.minProgressWidth - }); - return this; - }, - - - alert : function(title, msg, fn, scope){ - this.show({ - title : title, - msg : msg, - buttons: this.OK, - fn: fn, - scope : scope - }); - return this; - }, - - - wait : function(msg, title){ - this.show({ - title : title, - msg : msg, - buttons: false, - closable:false, - progress:true, - modal:true, - width:300, - wait:true - }); - waitTimer = Ext.TaskMgr.start({ - run: function(i){ - Ext.MessageBox.updateProgress(((((i+20)%20)+1)*5)*.01); - }, - interval: 1000 - }); - return this; - }, - - - confirm : function(title, msg, fn, scope){ - this.show({ - title : title, - msg : msg, - buttons: this.YESNO, - fn: fn, - scope : scope - }); - return this; - }, - - - prompt : function(title, msg, fn, scope, multiline){ - this.show({ - title : title, - msg : msg, - buttons: this.OKCANCEL, - fn: fn, - minWidth:250, - scope : scope, - prompt:true, - multiline: multiline - }); - return this; - }, - - - OK : {ok:true}, - - YESNO : {yes:true, no:true}, - - OKCANCEL : {ok:true, cancel:true}, - - YESNOCANCEL : {yes:true, no:true, cancel:true}, - - - defaultTextHeight : 75, - - maxWidth : 600, - - minWidth : 100, - - minProgressWidth : 250, - - buttonText : { - ok : "OK", - cancel : "Cancel", - yes : "Yes", - no : "No" - } - }; -}(); - - -Ext.Msg = Ext.MessageBox; diff --git a/www/extras/extjs/package/dialog/dialogs.js b/www/extras/extjs/package/dialog/dialogs.js deleted file mode 100644 index d75e016f9..000000000 --- a/www/extras/extjs/package/dialog/dialogs.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.BasicDialog=function(el,_2){this.el=Ext.get(el);var dh=Ext.DomHelper;if(!this.el&&_2&&_2.autoCreate){if(typeof _2.autoCreate=="object"){if(!_2.autoCreate.id){_2.autoCreate.id=el;}this.el=dh.append(document.body,_2.autoCreate,true);}else{this.el=dh.append(document.body,{tag:"div",id:el,style:"visibility:hidden;"},true);}}el=this.el;el.setDisplayed(true);el.hide=this.hideAction;this.id=el.id;el.addClass("x-dlg");Ext.apply(this,_2);this.proxy=el.createProxy("x-dlg-proxy");this.proxy.hide=this.hideAction;this.proxy.setOpacity(0.5);this.proxy.hide();if(_2.width){el.setWidth(_2.width);}if(_2.height){el.setHeight(_2.height);}this.size=el.getSize();if(typeof _2.x!="undefined"&&typeof _2.y!="undefined"){this.xy=[_2.x,_2.y];}else{this.xy=el.getCenterXY(true);}this.header=el.child("/.x-dlg-hd");this.body=el.child("/.x-dlg-bd");this.footer=el.child("/.x-dlg-ft");if(!this.header){this.header=el.createChild({tag:"div",cls:"x-dlg-hd",html:" "},this.body?this.body.dom:null);}if(!this.body){this.body=el.createChild({tag:"div",cls:"x-dlg-bd"});}this.header.unselectable();if(this.title){this.header.update(this.title);}this.focusEl=el.createChild({tag:"a",href:"#",cls:"x-dlg-focus",tabIndex:"-1"});this.focusEl.swallowEvent("click",true);this.header.wrap({cls:"x-dlg-hd-right"}).wrap({cls:"x-dlg-hd-left"},true);this.bwrap=this.body.wrap({tag:"div",cls:"x-dlg-dlg-body"});if(this.footer){this.bwrap.dom.appendChild(this.footer.dom);}this.bg=this.el.createChild({tag:"div",cls:"x-dlg-bg",html:"
       
      "});this.centerBg=this.bg.child("div.x-dlg-bg-center");if(this.autoScroll!==false&&!this.autoTabs){this.body.setStyle("overflow","auto");}this.toolbox=this.el.createChild({cls:"x-dlg-toolbox"});if(this.closable!==false){this.el.addClass("x-dlg-closable");this.close=this.toolbox.createChild({cls:"x-dlg-close"});this.close.on("click",this.closeClick,this);this.close.addClassOnOver("x-dlg-close-over");}if(this.collapsible!==false){this.collapseBtn=this.toolbox.createChild({cls:"x-dlg-collapse"});this.collapseBtn.on("click",this.collapseClick,this);this.collapseBtn.addClassOnOver("x-dlg-collapse-over");this.header.on("dblclick",this.collapseClick,this);}if(this.resizable!==false){this.el.addClass("x-dlg-resizable");this.resizer=new Ext.Resizable(el,{minWidth:this.minWidth||80,minHeight:this.minHeight||80,handles:this.resizeHandles||"all",pinned:true});this.resizer.on("beforeresize",this.beforeResize,this);this.resizer.on("resize",this.onResize,this);}if(this.draggable!==false){el.addClass("x-dlg-draggable");if(!this.proxyDrag){var dd=new Ext.dd.DD(el.dom.id,"WindowDrag");}else{var dd=new Ext.dd.DDProxy(el.dom.id,"WindowDrag",{dragElId:this.proxy.id});}dd.setHandleElId(this.header.id);dd.endDrag=this.endMove.createDelegate(this);dd.startDrag=this.startMove.createDelegate(this);dd.onDrag=this.onDrag.createDelegate(this);dd.scroll=false;this.dd=dd;}if(this.modal){this.mask=dh.append(document.body,{tag:"div",cls:"x-dlg-mask"},true);this.mask.enableDisplayMode("block");this.mask.hide();this.el.addClass("x-dlg-modal");}if(this.shadow){this.shadow=new Ext.Shadow({mode:typeof this.shadow=="string"?this.shadow:"sides",offset:this.shadowOffset});}else{this.shadowOffset=0;}if(Ext.useShims&&this.shim!==false){this.shim=this.el.createShim();this.shim.hide=this.hideAction;this.shim.hide();}else{this.shim=false;}if(this.autoTabs){this.initTabs();}this.addEvents({"keydown":true,"move":true,"resize":true,"beforehide":true,"hide":true,"beforeshow":true,"show":true});el.on("keydown",this.onKeyDown,this);el.on("mousedown",this.toFront,this);Ext.EventManager.onWindowResize(this.adjustViewport,this,true);this.el.hide();Ext.DialogManager.register(this);Ext.BasicDialog.superclass.constructor.call(this);};Ext.extend(Ext.BasicDialog,Ext.util.Observable,{shadowOffset:5,minHeight:80,minWidth:200,minButtonWidth:75,defaultButton:null,buttonAlign:"right",tabTag:"div",firstShow:true,setTitle:function(_5){this.header.update(_5);return this;},closeClick:function(){this.hide();},collapseClick:function(){this[this.collapsed?"expand":"collapse"]();},collapse:function(){if(!this.collapsed){this.collapsed=true;this.el.addClass("x-dlg-collapsed");this.restoreHeight=this.el.getHeight();this.resizeTo(this.el.getWidth(),this.header.getHeight());}},expand:function(){if(this.collapsed){this.collapsed=false;this.el.removeClass("x-dlg-collapsed");this.resizeTo(this.el.getWidth(),this.restoreHeight);}},initTabs:function(){var _6=this.getTabs();while(_6.getTab(0)){_6.removeTab(0);}this.el.select(this.tabTag+".x-dlg-tab").each(function(el){var _8=el.dom;_6.addTab(Ext.id(_8),_8.title);_8.title="";});_6.activate(0);return _6;},beforeResize:function(){this.resizer.minHeight=Math.max(this.minHeight,this.getHeaderFooterHeight(true)+40);},onResize:function(){this.refreshSize();this.syncBodyHeight();this.adjustAssets();this.focus();this.fireEvent("resize",this,this.size.width,this.size.height);},onKeyDown:function(e){if(this.isVisible()){this.fireEvent("keydown",this,e);}},resizeTo:function(_a,_b){this.el.setSize(_a,_b);this.size={width:_a,height:_b};this.syncBodyHeight();if(this.fixedcenter){this.center();}if(this.isVisible()){this.constrainXY();this.adjustAssets();}this.fireEvent("resize",this,_a,_b);return this;},setContentSize:function(w,h){h+=this.getHeaderFooterHeight()+this.body.getMargins("tb");w+=this.body.getMargins("lr")+this.bwrap.getMargins("lr")+this.centerBg.getPadding("lr");h+=this.body.getPadding("tb")+this.bwrap.getBorderWidth("tb")+this.body.getBorderWidth("tb")+this.el.getBorderWidth("tb");w+=this.body.getPadding("lr")+this.bwrap.getBorderWidth("lr")+this.body.getBorderWidth("lr")+this.bwrap.getPadding("lr")+this.el.getBorderWidth("lr");if(this.tabs){h+=this.tabs.stripWrap.getHeight()+this.tabs.bodyEl.getMargins("tb")+this.tabs.bodyEl.getPadding("tb");w+=this.tabs.bodyEl.getMargins("lr")+this.tabs.bodyEl.getPadding("lr");}this.resizeTo(w,h);return this;},addKeyListener:function(_e,fn,_10){var _11,_12,_13,alt;if(typeof _e=="object"&&!(_e instanceof Array)){_11=_e["key"];_12=_e["shift"];_13=_e["ctrl"];alt=_e["alt"];}else{_11=_e;}var _15=function(dlg,e){if((!_12||e.shiftKey)&&(!_13||e.ctrlKey)&&(!alt||e.altKey)){var k=e.getKey();if(_11 instanceof Array){for(var i=0,len=_11.length;i
      "},null,true);this.btnContainer=tb.firstChild.firstChild.firstChild;}var _20={handler:_1c,scope:_1d,minWidth:this.minButtonWidth,hideParent:true};if(typeof _1b=="string"){_20.text=_1b;}else{if(_1b.tag){_20.dhconfig=_1b;}else{Ext.apply(_20,_1b);}}var btn=new Ext.Button(this.btnContainer.appendChild(document.createElement("td")),_20);this.syncBodyHeight();if(!this.buttons){this.buttons=[];}this.buttons.push(btn);return btn;},setDefaultButton:function(btn){this.defaultButton=btn;return this;},getHeaderFooterHeight:function(_23){var _24=0;if(this.header){_24+=this.header.getHeight();}if(this.footer){var fm=this.footer.getMargins();_24+=(this.footer.getHeight()+fm.top+fm.bottom);}_24+=this.bwrap.getPadding("tb")+this.bwrap.getBorderWidth("tb");_24+=this.centerBg.getPadding("tb");return _24;},syncBodyHeight:function(){var bd=this.body,cb=this.centerBg,bw=this.bwrap;var _29=this.size.height-this.getHeaderFooterHeight(false);bd.setHeight(_29-bd.getMargins("tb"));var hh=this.header.getHeight();var h=this.size.height-hh;cb.setHeight(h);bw.setLeftTop(cb.getPadding("l"),hh+cb.getPadding("t"));bw.setHeight(h-cb.getPadding("tb"));bw.setWidth(this.el.getWidth(true)-cb.getPadding("lr"));bd.setWidth(bw.getWidth(true));if(this.tabs){this.tabs.syncHeight();if(Ext.isIE){this.tabs.el.repaint();}}},restoreState:function(){var box=Ext.state.Manager.get(this.stateId||(this.el.id+"-state"));if(box&&box.width){this.xy=[box.x,box.y];this.resizeTo(box.width,box.height);}return this;},beforeShow:function(){this.expand();if(this.fixedcenter){this.xy=this.el.getCenterXY(true);}if(this.modal){Ext.get(document.body).addClass("x-body-masked");this.mask.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.mask.show();}this.constrainXY();},animShow:function(){var b=Ext.get(this.animateTarget,true).getBox();this.proxy.setSize(b.width,b.height);this.proxy.setLocation(b.x,b.y);this.proxy.show();this.proxy.setBounds(this.xy[0],this.xy[1],this.size.width,this.size.height,true,0.35,this.showEl.createDelegate(this));},show:function(_2e){if(this.fireEvent("beforeshow",this)===false){return;}if(this.syncHeightBeforeShow){this.syncBodyHeight();}else{if(this.firstShow){this.firstShow=false;this.syncBodyHeight();}}this.animateTarget=_2e||this.animateTarget;if(!this.el.isVisible()){this.beforeShow();if(this.animateTarget){this.animShow();}else{this.showEl();}}return this;},showEl:function(){this.proxy.hide();this.el.setXY(this.xy);this.el.show();this.adjustAssets(true);this.toFront();this.focus();if(Ext.isIE){this.el.repaint();}this.fireEvent("show",this);},focus:function(){if(this.defaultButton){this.defaultButton.focus();}else{this.focusEl.focus();}},constrainXY:function(){if(this.constraintoviewport!==false){if(!this.viewSize){if(this.container){var s=this.container.getSize();this.viewSize=[s.width,s.height];}else{this.viewSize=[Ext.lib.Dom.getViewWidth(),Ext.lib.Dom.getViewHeight()];}}var s=Ext.get(this.container||document).getScroll();var x=this.xy[0],y=this.xy[1];var w=this.size.width,h=this.size.height;var vw=this.viewSize[0],vh=this.viewSize[1];var _36=false;if(x+w>vw+s.left){x=vw-w;_36=true;}if(y+h>vh+s.top){y=vh-h;_36=true;}if(x
       
      "});_6=_5.dom.firstChild;_7=Ext.get(_5.dom.childNodes[2]);_7.enableDisplayMode();_7.addKeyListener([10,13],function(){if(_1.isVisible()&&_2&&_2.buttons){if(_2.buttons.ok){_e("ok");}else{if(_2.buttons.yes){_e("yes");}}}});_8=Ext.get(_5.dom.childNodes[3]);_8.enableDisplayMode();_9=Ext.get(_5.dom.childNodes[4]);_9.enableDisplayMode();var pf=_9.dom.firstChild;pp=Ext.get(pf.firstChild);pp.setHeight(pf.offsetHeight);}return _1;},updateText:function(_1b){if(!_1.isVisible()&&!_2.width){_1.resizeTo(this.maxWidth,100);}_6.innerHTML=_1b||" ";var w=Math.max(Math.min(_2.width||_6.offsetWidth,this.maxWidth),Math.max(_2.minWidth||this.minWidth,_d));if(_2.prompt){_c.setWidth(w);}if(_1.isVisible()){_1.fixedcenter=false;}_1.setContentSize(w,_5.getHeight());if(_1.isVisible()){_1.fixedcenter=true;}return this;},updateProgress:function(_1d,_1e){if(_1e){this.updateText(_1e);}pp.setWidth(Math.floor(_1d*_9.dom.firstChild.offsetWidth));return this;},isVisible:function(){return _1&&_1.isVisible();},hide:function(){if(this.isVisible()){_1.hide();}},show:function(_1f){if(this.isVisible()){this.hide();}var d=this.getDialog();_2=_1f;d.setTitle(_2.title||" ");d.close.setDisplayed(_2.closable!==false);_c=_7;_2.prompt=_2.prompt||(_2.multiline?true:false);if(_2.prompt){if(_2.multiline){_7.hide();_8.show();_8.setHeight(typeof _2.multiline=="number"?_2.multiline:this.defaultTextHeight);_c=_8;}else{_7.show();_8.hide();}}else{_7.hide();_8.hide();}_9.setDisplayed(_2.progress===true);this.updateProgress(0);_c.dom.value=_2.value||"";if(_2.prompt){_1.setDefaultButton(_c);}else{var bs=_2.buttons;var db=null;if(bs&&bs.ok){db=_b["ok"];}else{if(bs&&bs.yes){db=_b["yes"];}}_1.setDefaultButton(db);}_d=_11(_2.buttons);this.updateText(_2.msg);if(_2.cls){d.el.addClass(_2.cls);}d.proxyDrag=_2.proxyDrag===true;d.modal=_2.modal!==false;d.mask=_2.modal!==false?_3:false;if(!d.isVisible()){document.body.appendChild(_1.el.dom);d.animateTarget=null;d.show(_1f.animEl);}return this;},progress:function(_23,msg){this.show({title:_23,msg:msg,buttons:false,progress:true,closable:false,minWidth:this.minProgressWidth});return this;},alert:function(_25,msg,fn,_28){this.show({title:_25,msg:msg,buttons:this.OK,fn:fn,scope:_28});return this;},wait:function(msg,_2a){this.show({title:_2a,msg:msg,buttons:false,closable:false,progress:true,modal:true,width:300,wait:true});_4=Ext.TaskMgr.start({run:function(i){Ext.MessageBox.updateProgress(((((i+20)%20)+1)*5)*0.01);},interval:1000});return this;},confirm:function(_2c,msg,fn,_2f){this.show({title:_2c,msg:msg,buttons:this.YESNO,fn:fn,scope:_2f});return this;},prompt:function(_30,msg,fn,_33,_34){this.show({title:_30,msg:msg,buttons:this.OKCANCEL,fn:fn,minWidth:250,scope:_33,prompt:true,multiline:_34});return this;},OK:{ok:true},YESNO:{yes:true,no:true},OKCANCEL:{ok:true,cancel:true},YESNOCANCEL:{yes:true,no:true,cancel:true},defaultTextHeight:75,maxWidth:600,minWidth:100,minProgressWidth:250,buttonText:{ok:"OK",cancel:"Cancel",yes:"Yes",no:"No"}};}();Ext.Msg=Ext.MessageBox; - diff --git a/www/extras/extjs/package/dragdrop/dragdrop.js b/www/extras/extjs/package/dragdrop/dragdrop.js deleted file mode 100644 index 4c3b9f96b..000000000 --- a/www/extras/extjs/package/dragdrop/dragdrop.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -(function(){var _1=Ext.EventManager;var _2=Ext.lib.Dom;Ext.dd.DragDrop=function(id,_4,_5){if(id){this.init(id,_4,_5);}};Ext.dd.DragDrop.prototype={id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,b4StartDrag:function(x,y){},startDrag:function(x,y){},b4Drag:function(e){},onDrag:function(e){},onDragEnter:function(e,id){},b4DragOver:function(e){},onDragOver:function(e,id){},b4DragOut:function(e){},onDragOut:function(e,id){},b4DragDrop:function(e){},onDragDrop:function(e,id){},onInvalidDrop:function(e){},b4EndDrag:function(e){},endDrag:function(e){},b4MouseDown:function(e){},onMouseDown:function(e){},onMouseUp:function(e){},onAvailable:function(){},defaultPadding:{left:0,right:0,top:0,bottom:0},constrainTo:function(_1d,pad,_1f){if(typeof pad=="number"){pad={left:pad,right:pad,top:pad,bottom:pad};}pad=pad||this.defaultPadding;var b=Ext.get(this.getEl()).getBox();var ce=Ext.get(_1d);var s=ce.getScroll();var c,cd=ce.dom;if(cd==document.body){c={x:s.left,y:s.top,width:Ext.lib.Dom.getViewWidth(),height:Ext.lib.Dom.getViewHeight()};}else{xy=ce.getXY();c={x:xy[0]+s.left,y:xy[1]+s.top,width:cd.clientWidth,height:cd.clientHeight};}var _25=b.y-c.y;var _26=b.x-c.x;this.resetConstraints();this.setXConstraint(_26-(pad.left||0),c.width-_26-b.width-(pad.right||0));this.setYConstraint(_25-(pad.top||0),c.height-_25-b.height-(pad.bottom||0));},getEl:function(){if(!this._domRef){this._domRef=Ext.getDom(this.id);}return this._domRef;},getDragEl:function(){return Ext.getDom(this.dragElId);},init:function(id,_28,_29){this.initTarget(id,_28,_29);_1.on(this.id,"mousedown",this.handleMouseDown,this);},initTarget:function(id,_2b,_2c){this.config=_2c||{};this.DDM=Ext.dd.DDM;this.groups={};if(typeof id!=="string"){id=Ext.id(id);}this.id=id;this.addToGroup((_2b)?_2b:"default");this.handleElId=id;this.setDragElId(id);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();this.handleOnAvailable();},applyConfig:function(){this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(_2d,_2e,_2f,_30){if(!_2e&&0!==_2e){this.padding=[_2d,_2d,_2d,_2d];}else{if(!_2f&&0!==_2f){this.padding=[_2d,_2e,_2d,_2e];}else{this.padding=[_2d,_2e,_2f,_30];}}},setInitPosition:function(_31,_32){var el=this.getEl();if(!this.DDM.verifyEl(el)){return;}var dx=_31||0;var dy=_32||0;var p=_2.getXY(el);this.initPageX=p[0]-dx;this.initPageY=p[1]-dy;this.lastPageX=p[0];this.lastPageY=p[1];this.setStartPosition(p);},setStartPosition:function(pos){var p=pos||_2.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=p[0];this.startPageY=p[1];},addToGroup:function(_39){this.groups[_39]=true;this.DDM.regDragDrop(this,_39);},removeFromGroup:function(_3a){if(this.groups[_3a]){delete this.groups[_3a];}this.DDM.removeDDFromGroup(this,_3a);},setDragElId:function(id){this.dragElId=id;},setHandleElId:function(id){if(typeof id!=="string"){id=Ext.id(id);}this.handleElId=id;this.DDM.regHandle(this.id,id);},setOuterHandleElId:function(id){if(typeof id!=="string"){id=Ext.id(id);}_1.on(id,"mousedown",this.handleMouseDown,this);this.setHandleElId(id);this.hasOuterHandles=true;},unreg:function(){_1.un(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return (this.DDM.isLocked()||this.locked);},handleMouseDown:function(e,oDD){if(this.primaryButtonOnly&&e.button!=0){return;}if(this.isLocked()){return;}this.DDM.refreshCache(this.groups);var pt=new Ext.lib.Point(Ext.lib.Event.getPageX(e),Ext.lib.Event.getPageY(e));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(pt,this)){}else{if(this.clickValidator(e)){this.setStartPosition();this.b4MouseDown(e);this.onMouseDown(e);this.DDM.handleMouseDown(e,this);this.DDM.stopEvent(e);}else{}}},clickValidator:function(e){var _42=Ext.lib.Event.getTarget(e);return (this.isValidHandleChild(_42)&&(this.id==this.handleElId||this.DDM.handleWasClicked(_42,this.id)));},addInvalidHandleType:function(_43){var _44=_43.toUpperCase();this.invalidHandleTypes[_44]=_44;},addInvalidHandleId:function(id){if(typeof id!=="string"){id=Ext.id(id);}this.invalidHandleIds[id]=id;},addInvalidHandleClass:function(_46){this.invalidHandleClasses.push(_46);},removeInvalidHandleType:function(_47){var _48=_47.toUpperCase();delete this.invalidHandleTypes[_48];},removeInvalidHandleId:function(id){if(typeof id!=="string"){id=Ext.id(id);}delete this.invalidHandleIds[id];},removeInvalidHandleClass:function(_4a){for(var i=0,len=this.invalidHandleClasses.length;i=this.minX;i=i-_53){if(!_54[i]){this.xTicks[this.xTicks.length]=i;_54[i]=true;}}for(i=this.initPageX;i<=this.maxX;i=i+_53){if(!_54[i]){this.xTicks[this.xTicks.length]=i;_54[i]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(_56,_57){this.yTicks=[];this.yTickSize=_57;var _58={};for(var i=this.initPageY;i>=this.minY;i=i-_57){if(!_58[i]){this.yTicks[this.yTicks.length]=i;_58[i]=true;}}for(i=this.initPageY;i<=this.maxY;i=i+_57){if(!_58[i]){this.yTicks[this.yTicks.length]=i;_58[i]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(_5a,_5b,_5c){this.leftConstraint=_5a;this.rightConstraint=_5b;this.minX=this.initPageX-_5a;this.maxX=this.initPageX+_5b;if(_5c){this.setXTicks(this.initPageX,_5c);}this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(iUp,_5e,_5f){this.topConstraint=iUp;this.bottomConstraint=_5e;this.minY=this.initPageY-iUp;this.maxY=this.initPageY+_5e;if(_5f){this.setYTicks(this.initPageY,_5f);}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var dx=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var dy=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(dx,dy);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(val,_63){if(!_63){return val;}else{if(_63[0]>=val){return _63[0];}else{for(var i=0,len=_63.length;i=val){var _67=val-_63[i];var _68=_63[_66]-val;return (_68>_67)?_63[i]:_63[_66];}}return _63[_63.length-1];}}},toString:function(){return ("DragDrop "+this.id);}};})();if(!Ext.dd.DragDropMgr){Ext.dd.DragDropMgr=function(){var _69=Ext.EventManager;return {ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initalized:false,locked:false,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,mode:0,_execOnAll:function(_6a,_6b){for(var i in this.ids){for(var j in this.ids[i]){var oDD=this.ids[i][j];if(!this.isTypeOfDD(oDD)){continue;}oDD[_6a].apply(oDD,_6b);}}},_onLoad:function(){this.init();_69.on(document,"mouseup",this.handleMouseUp,this,true);_69.on(document,"mousemove",this.handleMouseMove,this,true);_69.on(window,"unload",this._onUnload,this,true);_69.on(window,"resize",this._onResize,this,true);},_onResize:function(e){this._execOnAll("resetConstraints",[]);},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:350,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(oDD,_71){if(!this.initialized){this.init();}if(!this.ids[_71]){this.ids[_71]={};}this.ids[_71][oDD.id]=oDD;},removeDDFromGroup:function(oDD,_73){if(!this.ids[_73]){this.ids[_73]={};}var obj=this.ids[_73];if(obj&&obj[oDD.id]){delete obj[oDD.id];}},_remove:function(oDD){for(var g in oDD.groups){if(g&&this.ids[g][oDD.id]){delete this.ids[g][oDD.id];}}delete this.handleIds[oDD.id];},regHandle:function(_77,_78){if(!this.handleIds[_77]){this.handleIds[_77]={};}this.handleIds[_77][_78]=_78;},isDragDrop:function(id){return (this.getDDById(id))?true:false;},getRelated:function(_7a,_7b){var _7c=[];for(var i in _7a.groups){for(j in this.ids[i]){var dd=this.ids[i][j];if(!this.isTypeOfDD(dd)){continue;}if(!_7b||dd.isTarget){_7c[_7c.length]=dd;}}}return _7c;},isLegalTarget:function(oDD,_80){var _81=this.getRelated(oDD,true);for(var i=0,len=_81.length;ithis.clickPixelThresh||_94>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){this.dragCurrent.b4Drag(e);this.dragCurrent.onDrag(e);if(!this.dragCurrent.moveOnly){this.fireEvents(e,false);}}this.stopEvent(e);return true;},fireEvents:function(e,_96){var dc=this.dragCurrent;if(!dc||dc.isLocked()){return;}var x=Ext.lib.Event.getPageX(e);var y=Ext.lib.Event.getPageY(e);var pt=new Ext.lib.Point(x,y);var _9b=[];var _9c=[];var _9d=[];var _9e=[];var _9f=[];for(var i in this.dragOvers){var ddo=this.dragOvers[i];if(!this.isTypeOfDD(ddo)){continue;}if(!this.isOverTarget(pt,ddo,this.mode)){_9c.push(ddo);}_9b[i]=true;delete this.dragOvers[i];}for(var _a2 in dc.groups){if("string"!=typeof _a2){continue;}for(i in this.ids[_a2]){var oDD=this.ids[_a2][i];if(!this.isTypeOfDD(oDD)){continue;}if(oDD.isTarget&&!oDD.isLocked()&&oDD!=dc){if(this.isOverTarget(pt,oDD,this.mode)){if(_96){_9e.push(oDD);}else{if(!_9b[oDD.id]){_9f.push(oDD);}else{_9d.push(oDD);}this.dragOvers[oDD.id]=oDD;}}}}}if(this.mode){if(_9c.length){dc.b4DragOut(e,_9c);dc.onDragOut(e,_9c);}if(_9f.length){dc.onDragEnter(e,_9f);}if(_9d.length){dc.b4DragOver(e,_9d);dc.onDragOver(e,_9d);}if(_9e.length){dc.b4DragDrop(e,_9e);dc.onDragDrop(e,_9e);}}else{var len=0;for(i=0,len=_9c.length;i2000){}else{setTimeout(DDM._addListeners,10);if(document&&document.body){DDM._timeoutCount+=1;}}}},handleWasClicked:function(_df,id){if(this.isHandle(id,_df.id)){return true;}else{var p=_df.parentNode;while(p){if(this.isHandle(id,p.id)){return true;}else{p=p.parentNode;}}}return false;}};}();Ext.dd.DDM=Ext.dd.DragDropMgr;Ext.dd.DDM._addListeners();}Ext.dd.DD=function(id,_e3,_e4){if(id){this.init(id,_e3,_e4);}};Ext.extend(Ext.dd.DD,Ext.dd.DragDrop,{scroll:true,autoOffset:function(_e5,_e6){var x=_e5-this.startPageX;var y=_e6-this.startPageY;this.setDelta(x,y);},setDelta:function(_e9,_ea){this.deltaX=_e9;this.deltaY=_ea;},setDragElPos:function(_eb,_ec){var el=this.getDragEl();this.alignElWithMouse(el,_eb,_ec);},alignElWithMouse:function(el,_ef,_f0){var _f1=this.getTargetCoord(_ef,_f0);var fly=el.dom?el:Ext.fly(el);if(!this.deltaSetXY){var _f3=[_f1.x,_f1.y];fly.setXY(_f3);var _f4=fly.getLeft(true);var _f5=fly.getTop(true);this.deltaSetXY=[_f4-_f1.x,_f5-_f1.y];}else{fly.setLeftTop(_f1.x+this.deltaSetXY[0],_f1.y+this.deltaSetXY[1]);}this.cachePosition(_f1.x,_f1.y);this.autoScroll(_f1.x,_f1.y,el.offsetHeight,el.offsetWidth);return _f1;},cachePosition:function(_f6,_f7){if(_f6){this.lastPageX=_f6;this.lastPageY=_f7;}else{var _f8=Ext.lib.Dom.getXY(this.getEl());this.lastPageX=_f8[0];this.lastPageY=_f8[1];}},autoScroll:function(x,y,h,w){if(this.scroll){var _fd=Ext.lib.Dom.getViewWidth();var _fe=Ext.lib.Dom.getViewHeight();var st=this.DDM.getScrollTop();var sl=this.DDM.getScrollLeft();var bot=h+y;var _102=w+x;var _103=(_fd+st-y-this.deltaY);var _104=(_fe+sl-x-this.deltaX);var _105=40;var _106=(document.all)?80:30;if(bot>_fd&&_103<_105){window.scrollTo(sl,st+_106);}if(y0&&y-st<_105){window.scrollTo(sl,st-_106);}if(_102>_fe&&_104<_105){window.scrollTo(sl+_106,st);}if(x0&&x-sl<_105){window.scrollTo(sl-_106,st);}}},getTargetCoord:function(_107,_108){var x=_107-this.deltaX;var y=_108-this.deltaY;if(this.constrainX){if(xthis.maxX){x=this.maxX;}}if(this.constrainY){if(ythis.maxY){y=this.maxY;}}x=this.getTick(x,this.xTicks);y=this.getTick(y,this.yTicks);return {x:x,y:y};},applyConfig:function(){Ext.dd.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);},b4MouseDown:function(e){this.autoOffset(Ext.lib.Event.getPageX(e),Ext.lib.Event.getPageY(e));},b4Drag:function(e){this.setDragElPos(Ext.lib.Event.getPageX(e),Ext.lib.Event.getPageY(e));},toString:function(){return ("DD "+this.id);}});Ext.dd.DDProxy=function(id,_10e,_10f){if(id){this.init(id,_10e,_10f);this.initFrame();}};Ext.dd.DDProxy.dragElId="ygddfdiv";Ext.extend(Ext.dd.DDProxy,Ext.dd.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var self=this;var body=document.body;if(!body||!body.firstChild){setTimeout(function(){self.createFrame();},50);return;}var div=this.getDragEl();if(!div){div=document.createElement("div");div.id=this.dragElId;var s=div.style;s.position="absolute";s.visibility="hidden";s.cursor="move";s.border="2px solid #aaa";s.zIndex=999;body.insertBefore(div,body.firstChild);}},initFrame:function(){this.createFrame();},applyConfig:function(){Ext.dd.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||Ext.dd.DDProxy.dragElId);},showFrame:function(_114,_115){var el=this.getEl();var _117=this.getDragEl();var s=_117.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(s.width,10)/2),Math.round(parseInt(s.height,10)/2));}this.setDragElPos(_114,_115);Ext.fly(_117).show();},_resizeProxy:function(){if(this.resizeFrame){var el=this.getEl();Ext.fly(this.getDragEl()).setSize(el.offsetWidth,el.offsetHeight);}},b4MouseDown:function(e){var x=Ext.lib.Event.getPageX(e);var y=Ext.lib.Event.getPageY(e);this.autoOffset(x,y);this.setDragElPos(x,y);},b4StartDrag:function(x,y){this.showFrame(x,y);},b4EndDrag:function(e){Ext.fly(this.getDragEl()).hide();},endDrag:function(e){var lel=this.getEl();var del=this.getDragEl();del.style.visibility="";this.beforeMove();lel.style.visibility="hidden";Ext.dd.DDM.moveToEl(lel,del);del.style.visibility="hidden";lel.style.visibility="";this.afterDrag();},beforeMove:function(){},afterDrag:function(){},toString:function(){return ("DDProxy "+this.id);}});Ext.dd.DDTarget=function(id,_124,_125){if(id){this.initTarget(id,_124,_125);}};Ext.extend(Ext.dd.DDTarget,Ext.dd.DragDrop,{toString:function(){return ("DDTarget "+this.id);}}); - -Ext.dd.ScrollManager=function(){var _1=Ext.dd.DragDropMgr;var _2={};var _3=null;var _4={};var _5=function(e){_3=null;_7();};var _8=function(){if(_1.dragCurrent){_1.refreshCache(_1.dragCurrent.groups);}};var _9=function(){if(_1.dragCurrent){var _a=Ext.dd.ScrollManager;if(!_a.animate){if(_4.el.scroll(_4.dir,_a.increment)){_8();}}else{_4.el.scroll(_4.dir,_a.increment,true,_a.animDuration,_8);}}};var _7=function(){if(_4.id){clearInterval(_4.id);}_4.id=0;_4.el=null;_4.dir="";};var _b=function(el,_d){_7();_4.el=el;_4.dir=_d;_4.id=setInterval(_9,Ext.dd.ScrollManager.frequency);};var _e=function(e,_10){if(_10||!_1.dragCurrent){return;}var dds=Ext.dd.ScrollManager;if(!_3||_3!=_1.dragCurrent){_3=_1.dragCurrent;dds.refreshCache();}var xy=Ext.lib.Event.getXY(e);var pt=new Ext.lib.Point(xy[0],xy[1]);for(var id in _2){var el=_2[id],r=el._region;if(r.contains(pt)&&el.isScrollable()){if(r.bottom-pt.y<=dds.thresh){if(_4.el!=el){_b(el,"down");}return;}else{if(r.right-pt.x<=dds.thresh){if(_4.el!=el){_b(el,"left");}return;}else{if(pt.y-r.top<=dds.thresh){if(_4.el!=el){_b(el,"up");}return;}else{if(pt.x-r.left<=dds.thresh){if(_4.el!=el){_b(el,"right");}return;}}}}}}_7();};_1.fireEvents=_1.fireEvents.createSequence(_e,_1);_1.stopDrag=_1.stopDrag.createSequence(_5,_1);return {register:function(el){if(el instanceof Array){for(var i=0,len=el.length;i 0){ - this.setValue(this.el.dom.value); - } - }, - - afterRender : function(){ - Ext.form.Field.superclass.afterRender.call(this); - this.initEvents(); - }, - - fireKey : function(e){ - if(e.isNavKeyPress()){ - this.fireEvent("specialkey", this, e); - } - }, - - - reset : function(){ - this.setValue(this.originalValue); - this.clearInvalid(); - }, - - initEvents : function(){ - this.el.on(Ext.isIE ? "keydown" : "keypress", this.fireKey, this); - this.el.on("focus", this.onFocus, this); - this.el.on("blur", this.onBlur, this); - - this.originalValue = this.getValue(); - }, - - onFocus : function(){ - if(!Ext.isOpera){ this.el.addClass(this.focusClass); - } - this.hasFocus = true; - this.startValue = this.getValue(); - this.fireEvent("focus", this); - }, - - onBlur : function(){ - this.el.removeClass(this.focusClass); - this.hasFocus = false; - if(this.validationEvent !== false && this.validateOnBlur && this.validationEvent != "blur"){ - this.validate(); - } - var v = this.getValue(); - if(v != this.startValue){ - this.fireEvent('change', this, v, this.startValue); - } - this.fireEvent("blur", this); - }, - - - setSize : function(w, h){ - if(!this.rendered || !this.el){ - this.width = w; - this.height = h; - return; - } - if(w){ - w = this.adjustWidth(this.el.dom.tagName, w); - this.el.setWidth(w); - } - if(h){ - this.el.setHeight(h); - } - var h = this.el.dom.offsetHeight; }, - - - isValid : function(preventMark){ - if(this.disabled){ - return true; - } - var restore = this.preventMark; - this.preventMark = preventMark === true; - var v = this.validateValue(this.getRawValue()); - this.preventMark = restore; - return v; - }, - - - validate : function(){ - if(this.disabled || this.validateValue(this.getRawValue())){ - this.clearInvalid(); - return true; - } - return false; - }, - - validateValue : function(value){ - return true; - }, - - - markInvalid : function(msg){ - if(!this.rendered || this.preventMark){ return; - } - this.el.addClass(this.invalidClass); - msg = msg || this.invalidText; - switch(this.msgTarget){ - case 'qtip': - this.el.dom.qtip = msg; - this.el.dom.qclass = 'x-form-invalid-tip'; - break; - case 'title': - this.el.dom.title = msg; - break; - case 'under': - if(!this.errorEl){ - var elp = this.el.findParent('.x-form-element', 5, true); - this.errorEl = elp.createChild({cls:'x-form-invalid-msg'}); - this.errorEl.setWidth(elp.getWidth(true)-20); - } - this.errorEl.update(msg); - Ext.form.Field.msgFx[this.msgFx].show(this.errorEl, this); - break; - case 'side': - if(!this.errorIcon){ - var elp = this.el.findParent('.x-form-element', 5, true); - this.errorIcon = elp.createChild({cls:'x-form-invalid-icon'}); - } - this.alignErrorIcon(); - this.errorIcon.dom.qtip = msg; - this.errorIcon.dom.qclass = 'x-form-invalid-tip'; - this.errorIcon.show(); - break; - default: - var t = Ext.getDom(this.msgTarget); - t.innerHTML = msg; - t.style.display = this.msgDisplay; - break; - } - this.fireEvent('invalid', this, msg); - }, - - alignErrorIcon : function(){ - this.errorIcon.alignTo(this.el, 'tl-tr', [2, 0]); - }, - - - clearInvalid : function(){ - if(!this.rendered || this.preventMark){ return; - } - this.el.removeClass(this.invalidClass); - switch(this.msgTarget){ - case 'qtip': - this.el.dom.qtip = ''; - break; - case 'title': - this.el.dom.title = ''; - break; - case 'under': - if(this.errorEl){ - Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl, this); - } - break; - case 'side': - if(this.errorIcon){ - this.errorIcon.dom.qtip = ''; - this.errorIcon.hide(); - } - break; - default: - var t = Ext.getDom(this.msgTarget); - t.innerHTML = ''; - t.style.display = 'none'; - break; - } - this.fireEvent('valid', this); - }, - - - getRawValue : function(){ - return this.el.getValue(); - }, - - - getValue : function(){ - var v = this.el.getValue(); - if(v == this.emptyText || v === undefined){ - v = ''; - } - return v; - }, - - - setRawValue : function(v){ - return this.el.dom.value = v; - }, - - - setValue : function(v){ - this.value = v; - if(this.rendered){ - this.el.dom.value = v; - this.validate(); - } - }, - - adjustWidth : function(tag, w){ - tag = tag.toLowerCase(); - if(typeof w == 'number' && Ext.isStrict && !Ext.isSafari){ - if(Ext.isIE && (tag == 'input' || tag == 'textarea')){ - if(tag == 'input'){ - return w + 2; - } - if(tag = 'textarea'){ - return w-2; - } - }else if(Ext.isGecko && tag == 'textarea'){ - return w-6; - }else if(Ext.isOpera){ - if(tag == 'input'){ - return w + 2; - } - if(tag = 'textarea'){ - return w-2; - } - } - } - return w; - } -}); - - -Ext.form.Field.msgFx = { - normal : { - show: function(msgEl, f){ - msgEl.setDisplayed('block'); - }, - - hide : function(msgEl, f){ - msgEl.setDisplayed(false).update(''); - } - }, - - slide : { - show: function(msgEl, f){ - msgEl.slideIn('t', {stopFx:true}); - }, - - hide : function(msgEl, f){ - msgEl.slideOut('t', {stopFx:true,useDisplay:true}); - } - }, - - slideRight : { - show: function(msgEl, f){ - msgEl.fixDisplay(); - msgEl.alignTo(f.el, 'tl-tr'); - msgEl.slideIn('l', {stopFx:true}); - }, - - hide : function(msgEl, f){ - msgEl.slideOut('l', {stopFx:true,useDisplay:true}); - } - } -}; - - -Ext.form.TextField = function(config){ - Ext.form.TextField.superclass.constructor.call(this, config); - this.addEvents({ - - autosize : true - }); -}; - -Ext.extend(Ext.form.TextField, Ext.form.Field, { - - grow : false, - - growMin : 30, - - growMax : 800, - - vtype : null, - - maskRe : null, - - disableKeyFilter : false, - - allowBlank : true, - - minLength : 0, - - maxLength : Number.MAX_VALUE, - - minLengthText : "The minimum length for this field is {0}", - - maxLengthText : "The maximum length for this field is {0}", - - selectOnFocus : false, - - blankText : "This field is required", - - validator : null, - - regex : null, - - regexText : "", - - emptyText : null, - - emptyClass : 'x-form-empty-field', - - initEvents : function(){ - Ext.form.TextField.superclass.initEvents.call(this); - if(this.validationEvent == 'keyup'){ - this.validationTask = new Ext.util.DelayedTask(this.validate, this); - this.el.on('keyup', this.filterValidation, this); - } - else if(this.validationEvent !== false){ - this.el.on(this.validationEvent, this.validate, this, {buffer: this.validationDelay}); - } - if(this.selectOnFocus || this.emptyText){ - this.on("focus", this.preFocus, this); - if(this.emptyText){ - this.on('blur', this.postBlur, this); - this.applyEmptyText(); - } - } - if(this.maskRe || (this.vtype && this.disableKeyFilter !== true && (this.maskRe = Ext.form.VTypes[this.vtype+'Mask']))){ - this.el.on("keypress", this.filterKeys, this); - } - if(this.grow){ - this.el.on("keyup", this.onKeyUp, this, {buffer:50}); - this.el.on("click", this.autoSize, this); - } - }, - - filterValidation : function(e){ - if(!e.isNavKeyPress()){ - this.validationTask.delay(this.validationDelay); - } - }, - - onKeyUp : function(e){ - if(!e.isNavKeyPress()){ - this.autoSize(); - } - }, - - - reset : function(){ - Ext.form.TextField.superclass.reset.call(this); - this.applyEmptyText(); - }, - - applyEmptyText : function(){ - if(this.rendered && this.emptyText && this.getRawValue().length < 1){ - this.setRawValue(this.emptyText); - this.el.addClass(this.emptyClass); - } - }, - - preFocus : function(){ - if(this.emptyText){ - if(this.getRawValue() == this.emptyText){ - this.setRawValue(''); - } - this.el.removeClass(this.emptyClass); - } - if(this.selectOnFocus){ - this.el.dom.select(); - } - }, - - postBlur : function(){ - this.applyEmptyText(); - }, - - filterKeys : function(e){ - var k = e.getKey(); - if(!Ext.isIE && (e.isNavKeyPress() || k == e.BACKSPACE || (k == e.DELETE && e.button == -1))){ - return; - } - var c = e.getCharCode(); - if(!this.maskRe.test(String.fromCharCode(c) || '')){ - e.stopEvent(); - } - }, - - setValue : function(v){ - if(this.emptyText && v !== undefined && v !== null && v !== ''){ - this.el.removeClass(this.emptyClass); - } - Ext.form.TextField.superclass.setValue.apply(this, arguments); - }, - - - validateValue : function(value){ - if(value.length < 1 || value === this.emptyText){ if(this.allowBlank){ - this.clearInvalid(); - return true; - }else{ - this.markInvalid(this.blankText); - return false; - } - } - if(value.length < this.minLength){ - this.markInvalid(String.format(this.minLengthText, this.minLength)); - return false; - } - if(value.length > this.maxLength){ - this.markInvalid(String.format(this.maxLengthText, this.maxLength)); - return false; - } - if(this.vtype){ - var vt = Ext.form.VTypes; - if(!vt[this.vtype](value)){ - this.markInvalid(this.vtypeText || vt[this.vtype +'Text']); - return false; - } - } - if(typeof this.validator == "function"){ - var msg = this.validator(value); - if(msg !== true){ - this.markInvalid(msg); - return false; - } - } - if(this.regex && !this.regex.test(value)){ - this.markInvalid(this.regexText); - return false; - } - return true; - }, - - - selectText : function(start, end){ - var v = this.getRawValue(); - if(v.length > 0){ - start = start === undefined ? 0 : start; - end = end === undefined ? v.length : end; - var d = this.el.dom; - if(d.setSelectionRange){ - d.setSelectionRange(start, end); - }else if(d.createTextRange){ - var range = d.createTextRange(); - range.moveStart("character", start); - range.moveEnd("character", v.length-end); - range.select(); - } - } - }, - - - autoSize : function(){ - if(!this.grow || !this.rendered){ - return; - } - if(!this.metrics){ - this.metrics = Ext.util.TextMetrics.createInstance(this.el); - } - var el = this.el; - var v = el.dom.value + " "; - var w = Math.min(this.growMax, Math.max(this.metrics.getWidth(v) + 10, this.growMin)); - this.el.setWidth(w); - this.fireEvent("autosize", this, w); - } -}); - -Ext.form.TriggerField = function(config){ - Ext.form.TriggerField.superclass.constructor.call(this, config); - this.mimicing = false; - this.on('disable', this.disableWrapper, this); - this.on('enable', this.enableWrapper, this); -}; - -Ext.extend(Ext.form.TriggerField, Ext.form.TextField, { - - - defaultAutoCreate : {tag: "input", type: "text", size: "16", autocomplete: "off"}, - - hideTrigger:false, - - - - - - - autoSize: Ext.emptyFn, - - monitorTab : true, - - customSize : true, - - setSize : function(w, h){ - if(!this.wrap){ - this.width = w; - this.height = h; - return; - } - if(w){ - var wrapWidth = w; - w = w - this.trigger.getWidth(); - Ext.form.TriggerField.superclass.setSize.call(this, w, h); - this.wrap.setWidth(wrapWidth); - if(this.onResize){ - this.onResize(wrapWidth, h); - } - }else{ - Ext.form.TriggerField.superclass.setSize.call(this, w, h); - this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth()); - } - }, - - alignErrorIcon : function(){ - this.errorIcon.alignTo(this.wrap, 'tl-tr', [2, 0]); - }, - - onRender : function(ct, position){ - Ext.form.TriggerField.superclass.onRender.call(this, ct, position); - this.wrap = this.el.wrap({cls: "x-form-field-wrap"}); - this.trigger = this.wrap.createChild({ - tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger "+this.triggerClass}); - this.trigger.on("click", this.onTriggerClick, this, {preventDefault:true}); - this.trigger.addClassOnOver('x-form-trigger-over'); - this.trigger.addClassOnClick('x-form-trigger-click'); - if(this.hideTrigger){ - this.trigger.setDisplayed(false); - } - this.setSize(this.width||'', this.height||''); - }, - - onDestroy : function(){ - if(this.trigger){ - this.trigger.removeAllListeners(); - this.trigger.remove(); - } - if(this.wrap){ - this.wrap.remove(); - } - Ext.form.TriggerField.superclass.onDestroy.call(this); - }, - - onFocus : function(){ - Ext.form.TriggerField.superclass.onFocus.call(this); - if(!this.mimicing){ - this.mimicing = true; - Ext.get(Ext.isIE ? document.body : document).on("mousedown", this.mimicBlur, this); - if(this.monitorTab){ - this.el.on("keydown", this.checkTab, this); - } - } - }, - - checkTab : function(e){ - if(e.getKey() == e.TAB){ - this.triggerBlur(); - } - }, - - onBlur : function(){ - }, - - mimicBlur : function(e, t){ - if(!this.wrap.contains(t) && this.validateBlur()){ - this.triggerBlur(); - } - }, - - triggerBlur : function(){ - this.mimicing = false; - Ext.get(Ext.isIE ? document.body : document).un("mousedown", this.mimicBlur); - if(this.monitorTab){ - this.el.un("keydown", this.checkTab, this); - } - Ext.form.TriggerField.superclass.onBlur.call(this); - }, - - validateBlur : function(e, t){ - return true; - }, - - disableWrapper : function(){ - if(this.wrap){ - this.wrap.addClass('x-item-disabled'); - } - }, - - enableWrapper : function(){ - if(this.wrap){ - this.wrap.removeClass('x-item-disabled'); - } - }, - - onShow : function(){ - if(this.wrap){ - this.wrap.dom.style.display = ''; - this.wrap.dom.style.visibility = 'visible'; - } - }, - - onHide : function(){ - this.wrap.dom.style.display = 'none'; - }, - - - onTriggerClick : Ext.emptyFn -}); - -Ext.form.TextArea = function(config){ - Ext.form.TextArea.superclass.constructor.call(this, config); - if(this.minHeight !== undefined){ - this.growMin = this.minHeight; - } - if(this.maxHeight !== undefined){ - this.growMax = this.maxHeight; - } -}; - -Ext.extend(Ext.form.TextArea, Ext.form.TextField, { - - growMin : 60, - - growMax: 1000, - - preventScrollbars: false, - - onRender : function(ct, position){ - if(!this.el){ - this.defaultAutoCreate = { - tag: "textarea", - style:"width:300px;height:60px;", - autocomplete: "off" - }; - } - Ext.form.TextArea.superclass.onRender.call(this, ct, position); - if(this.grow){ - this.textSizeEl = Ext.DomHelper.append(document.body, { - tag: "pre", cls: "x-form-grow-sizer" - }); - if(this.preventScrollbars){ - this.el.setStyle("overflow", "hidden"); - } - this.el.setHeight(this.growMin); - } - }, - - onKeyUp : function(e){ - if(!e.isNavKeyPress() || e.getKey() == e.ENTER){ - this.autoSize(); - } - }, - - - autoSize : function(){ - if(!this.grow || !this.textSizeEl){ - return; - } - var el = this.el; - var v = el.dom.value; - var ts = this.textSizeEl; - Ext.fly(ts).setWidth(this.el.getWidth()); - if(v.length < 1){ - v = "  "; - }else{ - v += " \n "; - } - if(Ext.isIE){ - v = v.replace(/\n/g, '
      '); - } - ts.innerHTML = v; - var h = Math.min(this.growMax, Math.max(ts.offsetHeight, this.growMin)); - if(h != this.lastHeight){ - this.lastHeight = h; - this.el.setHeight(h); - this.fireEvent("autosize", this, h); - } - }, - - setValue : function(v){ - Ext.form.TextArea.superclass.setValue.call(this, v); - this.autoSize(); - } -}); - -Ext.form.NumberField = function(config){ - Ext.form.NumberField.superclass.constructor.call(this, config); -}; - -Ext.extend(Ext.form.NumberField, Ext.form.TextField, { - - fieldClass: "x-form-field x-form-num-field", - - allowDecimals : true, - - decimalSeparator : ".", - - decimalPrecision : 2, - - allowNegative : true, - - minValue : Number.NEGATIVE_INFINITY, - - maxValue : Number.MAX_VALUE, - - minText : "The minimum value for this field is {0}", - - maxText : "The maximum value for this field is {0}", - - nanText : "{0} is not a valid number", - - initEvents : function(){ - Ext.form.NumberField.superclass.initEvents.call(this); - var allowed = "0123456789"; - if(this.allowDecimals){ - allowed += this.decimalSeparator; - } - if(this.allowNegative){ - allowed += "-"; - } - var keyPress = function(e){ - var k = e.getKey(); - if(!Ext.isIE && (e.isNavKeyPress() || k == e.BACKSPACE || (k == e.DELETE && e.button == -1))){ - return; - } - var c = e.getCharCode(); - if(allowed.indexOf(String.fromCharCode(c)) === -1){ - e.stopEvent(); - } - }; - this.el.on("keypress", keyPress, this); - }, - - validateValue : function(value){ - if(!Ext.form.NumberField.superclass.validateValue.call(this, value)){ - return false; - } - if(value.length < 1){ return true; - } - value = String(value).replace(this.decimalSeparator, "."); - if(isNaN(value)){ - this.markInvalid(String.format(this.nanText, value)); - return false; - } - var num = this.parseValue(value); - if(num < this.minValue){ - this.markInvalid(String.format(this.minText, this.minValue)); - return false; - } - if(num > this.maxValue){ - this.markInvalid(String.format(this.maxText, this.maxValue)); - return false; - } - return true; - }, - - parseValue : function(value){ - return parseFloat(String(value).replace(this.decimalSeparator, ".")); - }, - - fixPrecision : function(value){ - if(!this.allowDecimals || this.decimalPrecision == -1 || isNaN(value) || value == 0 || !value){ - return value; - } - var scale = Math.pow(10, this.decimalPrecision+1); - var fixed = this.decimalPrecisionFcn(value * scale); - fixed = this.decimalPrecisionFcn(fixed/10); - return fixed / (scale/10); - }, - - decimalPrecisionFcn : function(v){ - return Math.floor(v); - } -}); - -Ext.form.DateField = function(config){ - Ext.form.DateField.superclass.constructor.call(this, config); - if(typeof this.minValue == "string") this.minValue = this.parseDate(this.minValue); - if(typeof this.maxValue == "string") this.maxValue = this.parseDate(this.maxValue); - this.ddMatch = null; - if(this.disabledDates){ - var dd = this.disabledDates; - var re = "(?:"; - for(var i = 0; i < dd.length; i++){ - re += dd[i]; - if(i != dd.length-1) re += "|"; - } - this.ddMatch = new RegExp(re + ")"); - } -}; - -Ext.extend(Ext.form.DateField, Ext.form.TriggerField, { - - format : "m/d/y", - - disabledDays : null, - - disabledDaysText : "Disabled", - - disabledDates : null, - - disabledDatesText : "Disabled", - - minValue : null, - - maxValue : null, - - minText : "The date in this field must be after {0}", - - maxText : "The date in this field must be before {0}", - - invalidText : "{0} is not a valid date - it must be in the format {1}", - - triggerClass : 'x-form-date-trigger', - - - defaultAutoCreate : {tag: "input", type: "text", size: "10", autocomplete: "off"}, - - validateValue : function(value){ - value = this.formatDate(value); - if(!Ext.form.DateField.superclass.validateValue.call(this, value)){ - return false; - } - if(value.length < 1){ return true; - } - var svalue = value; - value = this.parseDate(value); - if(!value){ - this.markInvalid(String.format(this.invalidText, svalue, this.format)); - return false; - } - var time = value.getTime(); - if(this.minValue && time < this.minValue.getTime()){ - this.markInvalid(String.format(this.minText, this.formatDate(this.minValue))); - return false; - } - if(this.maxValue && time > this.maxValue.getTime()){ - this.markInvalid(String.format(this.maxText, this.formatDate(this.maxValue))); - return false; - } - if(this.disabledDays){ - var day = value.getDay(); - for(var i = 0; i < this.disabledDays.length; i++) { - if(day === this.disabledDays[i]){ - this.markInvalid(this.disabledDaysText); - return false; - } - } - } - var fvalue = this.formatDate(value); - if(this.ddMatch && this.ddMatch.test(fvalue)){ - this.markInvalid(String.format(this.disabledDatesText, fvalue)); - return false; - } - return true; - }, - - validateBlur : function(){ - return !this.menu || !this.menu.isVisible(); - }, - - - getValue : function(){ - return this.parseDate(Ext.form.DateField.superclass.getValue.call(this)) || ""; - }, - - - setValue : function(date){ - Ext.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(date))); - }, - - parseDate : function(value){ - return (!value || value instanceof Date) ? - value : Date.parseDate(value, this.format); - }, - - formatDate : function(date){ - return (!date || !(date instanceof Date)) ? - date : date.dateFormat(this.format); - }, - - menuListeners : { - select: function(m, d){ - this.setValue(d); - }, - show : function(){ this.onFocus(); - }, - hide : function(){ - this.focus(); - var ml = this.menuListeners; - this.menu.un("select", ml.select, this); - this.menu.un("show", ml.show, this); - this.menu.un("hide", ml.hide, this); - } - }, - - onTriggerClick : function(){ - if(this.disabled){ - return; - } - if(this.menu == null){ - this.menu = new Ext.menu.DateMenu(); - } - Ext.apply(this.menu.picker, { - minDate : this.minValue, - maxDate : this.maxValue, - disabledDatesRE : this.ddMatch, - disabledDatesText : this.disabledDatesText, - disabledDays : this.disabledDays, - disabledDaysText : this.disabledDaysText, - format : this.format, - minText : String.format(this.minText, this.formatDate(this.minValue)), - maxText : String.format(this.maxText, this.formatDate(this.maxValue)) - }); - this.menu.on(Ext.apply({}, this.menuListeners, { - scope:this - })); - this.menu.picker.setValue(this.getValue() || new Date()); - this.menu.show(this.el, "tl-bl?"); - } -}); - -Ext.form.Checkbox = function(config){ - Ext.form.Checkbox.superclass.constructor.call(this, config); - this.addEvents({ - - check : true - }); -}; - -Ext.extend(Ext.form.Checkbox, Ext.form.Field, { - - focusClass : "x-form-check-focus", - - fieldClass: "x-form-field", - - checked: false, - - defaultAutoCreate : { tag: "input", type: 'checkbox', autocomplete: "off"}, - - boxLabel : undefined, - - - setSize : function(w, h){ - if(!this.wrap){ - this.width = w; - this.height = h; - return; - } - this.wrap.setSize(w, h); - if(!this.boxLabel){ - this.el.alignTo(this.wrap, 'c-c'); - } - }, - - initEvents : function(){ - Ext.form.Checkbox.superclass.initEvents.call(this); - this.el.on("click", this.onClick, this); - this.el.on("change", this.onClick, this); - }, - - - onRender : function(ct, position){ - Ext.form.Checkbox.superclass.onRender.call(this, ct, position); - if(this.inputValue !== undefined){ - this.el.dom.value = this.inputValue; - } - this.wrap = this.el.wrap({cls: "x-form-check-wrap"}); - if(this.boxLabel){ - this.wrap.createChild({tag: 'label', htmlFor: this.el.id, cls: 'x-form-cb-label', html: this.boxLabel}); - } - if(this.checked){ - this.setValue(true); - } - }, - - initValue : Ext.emptyFn, - - - getValue : function(){ - if(this.rendered){ - return this.el.dom.checked; - } - return false; - }, - - onClick : function(){ - if(this.el.dom.checked != this.checked){ - this.setValue(this.el.dom.checked); - } - }, - - - setValue : function(v){ - this.checked = (v === true || v === 'true' || v == '1'); - if(this.el && this.el.dom){ - this.el.dom.checked = this.checked; - } - this.fireEvent("check", this, this.checked); - } -}); - -Ext.form.Radio = function(){ - Ext.form.Radio.superclass.constructor.apply(this, arguments); -}; -Ext.extend(Ext.form.Radio, Ext.form.Checkbox, { - inputType: 'radio' -}); - -Ext.form.ComboBox = function(config){ - Ext.form.ComboBox.superclass.constructor.call(this, config); - this.addEvents({ - - 'expand' : true, - - 'collapse' : true, - - 'beforeselect' : true, - - 'select' : true, - - 'beforequery': true - }); - if(this.transform){ - var s = Ext.getDom(this.transform); - if(!this.hiddenName){ - this.hiddenName = s.name; - } - if(!this.store){ - this.mode = 'local'; - var d = [], opts = s.options; - for(var i = 0, len = opts.length;i < len; i++){ - var o = opts[i]; - var value = (Ext.isIE ? o.getAttributeNode('value').specified : o.hasAttribute('value')) ? o.value : o.text; - if(o.selected) { - this.value = value; - } - d.push([value, o.text]); - } - this.store = new Ext.data.SimpleStore({ - 'id': 0, - fields: ['value', 'text'], - data : d - }); - this.valueField = 'value'; - this.displayField = 'text'; - } - s.name = Ext.id(); if(!this.lazyRender){ - this.target = true; - this.el = Ext.DomHelper.insertBefore(s, this.autoCreate || this.defaultAutoCreate); - s.parentNode.removeChild(s); this.render(this.el.parentNode); - }else{ - s.parentNode.removeChild(s); } - - } - this.selectedIndex = -1; - if(this.mode == 'local'){ - if(config.queryDelay === undefined){ - this.queryDelay = 10; - } - if(config.minChars === undefined){ - this.minChars = 0; - } - } -}; - -Ext.extend(Ext.form.ComboBox, Ext.form.TriggerField, { - - - - - defaultAutoCreate : {tag: "input", type: "text", size: "24", autocomplete: "off"}, - - listWidth: undefined, - - displayField: undefined, - - valueField: undefined, - - hiddenName: undefined, - - listClass: '', - - selectedClass: 'x-combo-selected', - - triggerClass : 'x-form-arrow-trigger', - - shadow:'sides', - - listAlign: 'tl-bl?', - - maxHeight: 300, - - triggerAction: 'query', - - minChars : 4, - - typeAhead: false, - - queryDelay: 500, - - pageSize: 0, - - selectOnFocus:false, - - queryParam: 'query', - - loadingText: 'Loading...', - - resizable: false, - - handleHeight : 8, - - editable: true, - - allQuery: '', - - mode: 'remote', - - minListWidth : 70, - - forceSelection:false, - - typeAheadDelay : 250, - - valueNotFoundText : undefined, - - onRender : function(ct, position){ - Ext.form.ComboBox.superclass.onRender.call(this, ct, position); - if(this.hiddenName){ - this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id: this.hiddenName}, - 'before', true); - this.hiddenField.value = - this.hiddenValue !== undefined ? this.hiddenValue : - this.value !== undefined ? this.value : ''; - - this.el.dom.removeAttribute('name'); - } - if(Ext.isGecko){ - this.el.dom.setAttribute('autocomplete', 'off'); - } - - var cls = 'x-combo-list'; - - this.list = new Ext.Layer({ - shadow: this.shadow, cls: [cls, this.listClass].join(' '), constrain:false - }); - - this.list.setWidth(this.listWidth || Math.max(this.wrap.getWidth(), this.minListWidth)); - this.list.swallowEvent('mousewheel'); - this.assetHeight = 0; - - if(this.title){ - this.header = this.list.createChild({cls:cls+'-hd', html: this.title}); - this.assetHeight += this.header.getHeight(); - } - - this.innerList = this.list.createChild({cls:cls+'-inner'}); - this.innerList.on('mouseover', this.onViewOver, this); - this.innerList.on('mousemove', this.onViewMove, this); - - if(this.pageSize){ - this.footer = this.list.createChild({cls:cls+'-ft'}); - this.pageTb = new Ext.PagingToolbar(this.footer, this.store, - {pageSize: this.pageSize}); - this.assetHeight += this.footer.getHeight(); - } - - if(!this.tpl){ - this.tpl = '
      {' + this.displayField + '}
      '; - } - - this.view = new Ext.View(this.innerList, this.tpl, { - singleSelect:true, store: this.store, selectedClass: this.selectedClass - }); - - this.view.on('click', this.onViewClick, this); - - this.store.on('beforeload', this.onBeforeLoad, this); - this.store.on('load', this.onLoad, this); - this.store.on('loadexception', this.collapse, this); - - if(this.resizable){ - this.resizer = new Ext.Resizable(this.list, { - pinned:true, handles:'se' - }); - this.resizer.on('resize', function(r, w, h){ - this.maxHeight = h-this.handleHeight-this.list.getFrameWidth('tb')-this.assetHeight; - this.listWidth = w; - this.restrictHeight(); - }, this); - this[this.pageSize?'footer':'innerList'].setStyle('margin-bottom', this.handleHeight+'px'); - } - if(!this.editable){ - this.editable = true; - this.setEditable(false); - } - }, - - initEvents : function(){ - Ext.form.ComboBox.superclass.initEvents.call(this); - - this.keyNav = new Ext.KeyNav(this.el, { - "up" : function(e){ - this.inKeyMode = true; - this.selectPrev(); - }, - - "down" : function(e){ - if(!this.isExpanded()){ - this.onTriggerClick(); - }else{ - this.inKeyMode = true; - this.selectNext(); - } - }, - - "enter" : function(e){ - this.onViewClick(); - }, - - "esc" : function(e){ - this.collapse(); - }, - - "tab" : function(e){ - this.onViewClick(false); - return true; - }, - - scope : this, - - doRelay : function(foo, bar, hname){ - if(hname == 'down' || this.scope.isExpanded()){ - return Ext.KeyNav.prototype.doRelay.apply(this, arguments); - } - return true; - } - }); - this.queryDelay = Math.max(this.queryDelay || 10, - this.mode == 'local' ? 10 : 250); - this.dqTask = new Ext.util.DelayedTask(this.initQuery, this); - if(this.typeAhead){ - this.taTask = new Ext.util.DelayedTask(this.onTypeAhead, this); - } - if(this.editable !== false){ - this.el.on("keyup", this.onKeyUp, this); - } - if(this.forceSelection){ - this.on('blur', this.doForce, this); - } - }, - - onDestroy : function(){ - if(this.view){ - this.view.setStore(null); - this.view.el.removeAllListeners(); - this.view.el.remove(); - this.view.purgeListeners(); - } - if(this.list){ - this.list.destroy(); - } - if(this.store){ - this.store.un('beforeload', this.onBeforeLoad, this); - this.store.un('load', this.onLoad, this); - this.store.un('loadexception', this.collapse, this); - } - Ext.form.ComboBox.superclass.onDestroy.call(this); - }, - - fireKey : function(e){ - if(e.isNavKeyPress() && !this.list.isVisible()){ - this.fireEvent("specialkey", this, e); - } - }, - - onResize: function(w, h){ - if(this.list && this.listWidth === undefined){ - this.list.setWidth(Math.max(w, this.minListWidth)); - } - }, - - - setEditable : function(value){ - if(value == this.editable){ - return; - } - this.editable = value; - if(!value){ - this.el.dom.setAttribute('readOnly', true); - this.el.on('mousedown', this.onTriggerClick, this); - this.el.addClass('x-combo-noedit'); - }else{ - this.el.dom.setAttribute('readOnly', false); - this.el.un('mousedown', this.onTriggerClick, this); - this.el.removeClass('x-combo-noedit'); - } - }, - - onBeforeLoad : function(){ - if(!this.hasFocus){ - return; - } - this.innerList.update(this.loadingText ? - '
      '+this.loadingText+'
      ' : ''); - this.restrictHeight(); - this.selectedIndex = -1; - }, - - onLoad : function(){ - if(!this.hasFocus){ - return; - } - if(this.store.getCount() > 0){ - this.expand(); - this.restrictHeight(); - if(this.lastQuery == this.allQuery){ - if(this.editable){ - this.el.dom.select(); - } - if(!this.selectByValue(this.value, true)){ - this.select(0, true); - } - }else{ - this.selectNext(); - if(this.typeAhead && this.lastKey != Ext.EventObject.BACKSPACE && this.lastKey != Ext.EventObject.DELETE){ - this.taTask.delay(this.typeAheadDelay); - } - } - }else{ - this.onEmptyResults(); - } - }, - - onTypeAhead : function(){ - if(this.store.getCount() > 0){ - var r = this.store.getAt(0); - var newValue = r.data[this.displayField]; - var len = newValue.length; - var selStart = this.getRawValue().length; - if(selStart != len){ - this.setRawValue(newValue); - this.selectText(selStart, newValue.length); - } - } - }, - - onSelect : function(record, index){ - if(this.fireEvent('beforeselect', this, record, index) !== false){ - this.setValue(record.data[this.valueField || this.displayField]); - this.collapse(); - this.fireEvent('select', this, record, index); - } - }, - - - getValue : function(){ - if(this.valueField){ - return typeof this.value != 'undefined' ? this.value : ''; - }else{ - return Ext.form.ComboBox.superclass.getValue.call(this); - } - }, - - - clearValue : function(){ - if(this.hiddenField){ - this.hiddenField.value = ''; - } - this.setRawValue(''); - this.lastSelectionText = ''; - }, - - - setValue : function(v){ - var text = v; - if(this.valueField){ - var r = this.findRecord(this.valueField, v); - if(r){ - text = r.data[this.displayField]; - }else if(this.valueNotFoundText){ - text = this.valueNotFoundText; - } - } - this.lastSelectionText = text; - if(this.hiddenField){ - this.hiddenField.value = v; - } - Ext.form.ComboBox.superclass.setValue.call(this, text); - this.value = v; - }, - - findRecord : function(prop, value){ - var record; - if(this.store.getCount() > 0){ - this.store.each(function(r){ - if(r.data[prop] == value){ - record = r; - return false; - } - }); - } - return record; - }, - - onViewMove : function(e, t){ - this.inKeyMode = false; - }, - - onViewOver : function(e, t){ - if(this.inKeyMode){ return; - } - var item = this.view.findItemFromChild(t); - if(item){ - var index = this.view.indexOf(item); - this.select(index, false); - } - }, - - onViewClick : function(doFocus){ - var index = this.view.getSelectedIndexes()[0]; - var r = this.store.getAt(index); - if(r){ - this.onSelect(r, index); - } - if(doFocus !== false){ - this.el.focus(); - } - }, - - restrictHeight : function(){ - this.innerList.dom.style.height = ''; - var inner = this.innerList.dom; - var h = Math.max(inner.clientHeight, inner.offsetHeight, inner.scrollHeight); - this.innerList.setHeight(h < this.maxHeight ? 'auto' : this.maxHeight); - this.list.beginUpdate(); - this.list.setHeight(this.innerList.getHeight()+this.list.getFrameWidth('tb')+(this.resizable?this.handleHeight:0)+this.assetHeight); - this.list.alignTo(this.el, this.listAlign); - this.list.endUpdate(); - }, - - onEmptyResults : function(){ - this.collapse(); - }, - - - isExpanded : function(){ - return this.list.isVisible(); - }, - - - selectByValue : function(v, scrollIntoView){ - if(v !== undefined && v !== null){ - var r = this.findRecord(this.valueField || this.displayField, v); - if(r){ - this.select(this.store.indexOf(r), scrollIntoView); - return true; - } - } - return false; - }, - - - select : function(index, scrollIntoView){ - this.selectedIndex = index; - this.view.select(index); - if(scrollIntoView !== false){ - var el = this.view.getNode(index); - if(el){ - this.innerList.scrollChildIntoView(el); - } - } - }, - - - selectNext : function(){ - var ct = this.store.getCount(); - if(ct > 0){ - if(this.selectedIndex == -1){ - this.select(0); - }else if(this.selectedIndex < ct-1){ - this.select(this.selectedIndex+1); - } - } - }, - - - selectPrev : function(){ - var ct = this.store.getCount(); - if(ct > 0){ - if(this.selectedIndex == -1){ - this.select(0); - }else if(this.selectedIndex != 0){ - this.select(this.selectedIndex-1); - } - } - }, - - onKeyUp : function(e){ - if(this.editable !== false && !e.isSpecialKey()){ - this.lastKey = e.getKey(); - this.dqTask.delay(this.queryDelay); - } - }, - - validateBlur : function(){ - return !this.list || !this.list.isVisible(); - }, - - initQuery : function(){ - this.doQuery(this.getRawValue()); - }, - - doForce : function(){ - if(this.el.dom.value.length > 0){ - this.el.dom.value = - this.lastSelectionText === undefined ? '' : this.lastSelectionText; - this.applyEmptyText(); - } - }, - - - doQuery : function(q, forceAll){ - if(q === undefined || q === null){ - q = ''; - } - var qe = { - query: q, - forceAll: forceAll, - combo: this, - cancel:false - }; - if(this.fireEvent('beforequery', qe)===false || qe.cancel){ - return false; - } - q = qe.query; - forceAll = qe.forceAll; - if(forceAll === true || (q.length >= this.minChars)){ - if(this.lastQuery != q){ - this.lastQuery = q; - if(this.mode == 'local'){ - this.selectedIndex = -1; - if(forceAll){ - this.store.clearFilter(); - }else{ - this.store.filter(this.displayField, q); - } - this.onLoad(); - }else{ - this.store.baseParams[this.queryParam] = q; - this.store.load({ - params: this.getParams(q) - }); - this.expand(); - } - }else{ - this.selectedIndex = -1; - this.onLoad(); - } - } - }, - - getParams : function(q){ - var p = {}; - if(this.pageSize){ - p.start = 0; - p.limit = this.pageSize; - } - return p; - }, - - - collapse : function(){ - if(!this.isExpanded()){ - return; - } - this.list.hide(); - Ext.get(document).un('mousedown', this.collapseIf, this); - this.fireEvent('collapse', this); - }, - - collapseIf : function(e){ - if(!e.within(this.wrap) && !e.within(this.list)){ - this.collapse(); - } - }, - - - expand : function(){ - if(this.isExpanded() || !this.hasFocus){ - return; - } - this.list.alignTo(this.el, this.listAlign); - this.list.show(); - Ext.get(document).on('mousedown', this.collapseIf, this); - this.fireEvent('expand', this); - }, - - onTriggerClick : function(){ - if(this.disabled){ - return; - } - if(this.isExpanded()){ - this.collapse(); - this.el.focus(); - }else{ - this.hasFocus = true; - this.doQuery(this.triggerAction == 'all' ? - this.doQuery(this.allQuery, true) : this.doQuery(this.getRawValue())); - this.el.focus(); - } - } -}); - -Ext.Editor = function(field, config){ - Ext.Editor.superclass.constructor.call(this, config); - this.field = field; - this.addEvents({ - - "beforestartedit" : true, - - "startedit" : true, - - "beforecomplete" : true, - - "complete" : true, - - "specialkey" : true - }); -}; - -Ext.extend(Ext.Editor, Ext.Component, { - - - - - value : "", - - alignment: "c-c?", - - shadow : "frame", - - updateEl : false, - - onRender : function(ct, position){ - this.el = new Ext.Layer({ - shadow: this.shadow, - cls: "x-editor", - parentEl : ct, - shim : this.shim, - shadowOffset:3, - id: this.id - }); - this.el.setStyle("overflow", Ext.isGecko ? "auto" : "hidden"); - this.field.render(this.el); - if(Ext.isGecko){ - this.field.el.dom.setAttribute('autocomplete', 'off'); - } - this.field.show(); - this.field.on("blur", this.onBlur, this); - this.relayEvents(this.field, ["specialkey"]); - if(this.field.grow){ - this.field.on("autosize", this.el.sync, this.el, {delay:1}); - } - }, - - startEdit : function(el, value){ - if(this.editing){ - this.completeEdit(); - } - this.boundEl = Ext.get(el); - var v = value !== undefined ? value : this.boundEl.dom.innerHTML; - if(!this.rendered){ - this.render(this.parentEl || document.body); - } - if(this.fireEvent("beforestartedit", this, this.boundEl, v) === false){ - return; - } - this.startValue = v; - this.field.setValue(v); - if(this.autoSize){ - var sz = this.boundEl.getSize(); - switch(this.autoSize){ - case "width": - this.setSize(sz.width, ""); - break; - case "height": - this.setSize("", sz.height); - break; - default: - this.setSize(sz.width, sz.height); - } - } - this.el.alignTo(this.boundEl, this.alignment); - this.editing = true; - if(Ext.QuickTips){ - Ext.QuickTips.disable(); - } - this.show(); - }, - - - setSize : function(w, h){ - this.field.setSize(w, h); - if(this.el){ - this.el.sync(); - } - }, - - - realign : function(){ - this.el.alignTo(this.boundEl, this.alignment); - }, - - - completeEdit : function(remainVisible){ - if(!this.editing){ - return; - } - var v = this.getValue(); - if(this.revertInvalid !== false && !this.field.isValid()){ - v = this.startValue; - this.cancelEdit(true); - } - if(String(v) == String(this.startValue) && this.ignoreNoChange){ - this.editing = false; - this.hide(); - return; - } - if(this.fireEvent("beforecomplete", this, v, this.startValue) !== false){ - this.editing = false; - if(this.updateEl && this.boundEl){ - this.boundEl.update(v); - } - if(remainVisible !== true){ - this.hide(); - } - this.fireEvent("complete", this, v, this.startValue); - } - }, - - onShow : function(){ - this.el.show(); - if(this.hideEl !== false){ - this.boundEl.hide(); - } - this.field.show(); - this.field.focus(); - this.fireEvent("startedit", this.boundEl, this.startValue); - }, - - - cancelEdit : function(remainVisible){ - if(this.editing){ - this.setValue(this.startValue); - if(remainVisible !== true){ - this.hide(); - } - } - }, - - onBlur : function(){ - if(this.allowBlur !== true && this.editing){ - this.completeEdit(); - } - }, - - onHide : function(){ - if(this.editing){ - this.completeEdit(); - return; - } - this.field.blur(); - if(this.field.collapse){ - this.field.collapse(); - } - this.el.hide(); - if(this.hideEl !== false){ - this.boundEl.show(); - } - if(Ext.QuickTips){ - Ext.QuickTips.enable(); - } - }, - - - setValue : function(v){ - this.field.setValue(v); - }, - - - getValue : function(){ - return this.field.getValue(); - } -}); - -Ext.form.BasicForm = function(el, config){ - Ext.apply(this, config); - - this.items = new Ext.util.MixedCollection(false, function(o){ - return o.id || (o.id = Ext.id()); - }); - this.addEvents({ - - beforeaction: true, - - actionfailed : true, - - actioncomplete : true - }); - if(el){ - this.initEl(el); - } - Ext.form.BasicForm.superclass.constructor.call(this); -}; - -Ext.extend(Ext.form.BasicForm, Ext.util.Observable, { - - - - - - - - timeout: 30, - - activeAction : null, - - - waitMsgTarget : undefined, - - initEl : function(el){ - this.el = Ext.get(el); - this.id = this.el.id || Ext.id(); - this.el.on('submit', this.onSubmit, this); - this.el.addClass('x-form'); - }, - - onSubmit : function(e){ - e.stopEvent(); - }, - - - isValid : function(){ - var valid = true; - this.items.each(function(f){ - if(!f.validate()){ - valid = false; - } - }); - return valid; - }, - - - doAction : function(action, options){ - if(typeof action == 'string'){ - action = new Ext.form.Action.ACTION_TYPES[action](this, options); - } - if(this.fireEvent('beforeaction', this, action) !== false){ - this.beforeAction(action); - action.run.defer(100, action); - } - }, - - - submit : function(options){ - this.doAction('submit', options); - }, - - - load : function(options){ - this.doAction('load', options); - }, - - - updateRecord : function(record){ - record.beginEdit(); - var fs = record.fields; - fs.each(function(f){ - var field = this.findField(f.name); - if(field){ - record.set(f.name, field.getValue()); - } - }, this); - record.endEdit(); - }, - - beforeAction : function(action){ - var o = action.options; - if(o.waitMsg){ - if(this.waitMsgTarget === true){ - this.el.mask(o.waitMsg, 'x-mask-loading'); - }else if(this.waitMsgTarget){ - this.waitMsgTarget = Ext.get(this.waitMsgTarget); - this.waitMsgTarget.mask(o.waitMsg, 'x-mask-loading'); - }else{ - Ext.MessageBox.wait(o.waitMsg, o.waitTitle || this.waitTitle || 'Please Wait...'); - } - } - }, - - afterAction : function(action, success){ - this.activeAction = null; - var o = action.options; - if(o.waitMsg){ - if(this.waitMsgTarget === true){ - this.el.unmask(); - }else if(this.waitMsgTarget){ - this.waitMsgTarget.unmask(); - }else{ - Ext.MessageBox.updateProgress(1); - Ext.MessageBox.hide(); - } - } - if(success){ - if(o.reset){ - this.reset(); - } - Ext.callback(o.success, o.scope, [this, action]); - this.fireEvent('actioncomplete', this, action); - }else{ - Ext.callback(o.failure, o.scope, [this, action]); - this.fireEvent('actionfailed', this, action); - } - }, - - - findField : function(id){ - var field = this.items.get(id); - if(!field){ - this.items.each(function(f){ - if(f.isFormField && (f.dataIndex == id || f.id == id || f.getName() == id)){ - field = f; - return false; - } - }); - } - return field || null; - }, - - - - markInvalid : function(errors){ - if(errors instanceof Array){ - for(var i = 0, len = errors.length; i < len; i++){ - var fieldError = errors[i]; - var f = this.findField(fieldError.id); - if(f){ - f.markInvalid(fieldError.msg); - } - } - }else{ - var field, id; - for(id in errors){ - if(typeof errors[id] != 'function' && (field = this.findField(id))){ - field.markInvalid(errors[id]); - } - } - } - }, - - - setValues : function(values){ - if(values instanceof Array){ for(var i = 0, len = values.length; i < len; i++){ - var v = values[i]; - var f = this.findField(v.id); - if(f){ - f.setValue(v.value); - } - } - }else{ var field, id; - for(id in values){ - if(typeof values[id] != 'function' && (field = this.findField(id))){ - field.setValue(values[id]); - } - } - } - }, - - - getValues : function(asString){ - var fs = Ext.lib.Ajax.serializeForm(this.el.dom); - if(asString === true){ - return fs; - } - return Ext.urlDecode(fs); - }, - - - clearInvalid : function(){ - this.items.each(function(f){ - f.clearInvalid(); - }); - }, - - - reset : function(){ - this.items.each(function(f){ - f.reset(); - }); - }, - - - add : function(){ - this.items.addAll(Array.prototype.slice.call(arguments, 0)); - }, - - - - remove : function(field){ - this.items.remove(field); - }, - - - render : function(){ - this.items.each(function(f){ - if(f.isFormField && !f.rendered && document.getElementById(f.id)){ f.applyTo(f.id); - } - }); - }, - - - applyToFields : function(o){ - this.items.each(function(f){ - Ext.apply(f, o); - }); - }, - - - applyIfToFields : function(o){ - this.items.each(function(f){ - Ext.applyIf(f, o); - }); - } -}); - -Ext.BasicForm = Ext.form.BasicForm; - -Ext.form.Form = function(config){ - Ext.form.Form.superclass.constructor.call(this, null, config); - this.url = this.url || this.action; - if(!this.root){ - this.root = new Ext.form.Layout(Ext.applyIf({ - id: Ext.id() - }, config)); - } - this.active = this.root; - - this.buttons = []; - this.addEvents({ - - clientvalidation: true - }); -}; - -Ext.extend(Ext.form.Form, Ext.form.BasicForm, { - - - - buttonAlign:'center', - - - minButtonWidth:75, - - - labelAlign:'left', - - - monitorValid : false, - - - monitorPoll : 200, - - - column : function(c){ - var col = new Ext.form.Column(c); - this.start(col); - if(arguments.length > 1){ this.add.apply(this, Array.prototype.slice.call(arguments, 1)); - this.end(); - } - return col; - }, - - - fieldset : function(c){ - var fs = new Ext.form.FieldSet(c); - this.start(fs); - if(arguments.length > 1){ this.add.apply(this, Array.prototype.slice.call(arguments, 1)); - this.end(); - } - return fs; - }, - - - container : function(c){ - var l = new Ext.form.Layout(c); - this.start(l); - if(arguments.length > 1){ this.add.apply(this, Array.prototype.slice.call(arguments, 1)); - this.end(); - } - return l; - }, - - - start : function(c){ - Ext.applyIf(c, {'labelAlign': this.active.labelAlign, 'labelWidth': this.active.labelWidth, 'itemCls': this.active.itemCls}); - this.active.stack.push(c); - c.ownerCt = this.active; - this.active = c; - return this; - }, - - - end : function(){ - if(this.active == this.root){ - return this; - } - this.active = this.active.ownerCt; - return this; - }, - - - add : function(){ - this.active.stack.push.apply(this.active.stack, arguments); - var r = []; - for(var i = 0, a = arguments, len = a.length; i < len; i++) { - if(a[i].isFormField){ - r.push(a[i]); - } - } - if(r.length > 0){ - Ext.form.Form.superclass.add.apply(this, r); - } - return this; - }, - - - render : function(ct){ - ct = Ext.get(ct); - var o = this.autoCreate || { - tag: 'form', - method : this.method || 'POST', - id : this.id || Ext.id() - }; - this.initEl(ct.createChild(o)); - - this.root.render(this.el); - - this.items.each(function(f){ - f.render('x-form-el-'+f.id); - }); - - if(this.buttons.length > 0){ - var tb = this.el.createChild({cls:'x-form-btns-ct', cn: { - cls:"x-form-btns x-form-btns-"+this.buttonAlign, - html:'
      ' - }}, null, true); - var tr = tb.getElementsByTagName('tr')[0]; - for(var i = 0, len = this.buttons.length; i < len; i++) { - var b = this.buttons[i]; - var td = document.createElement('td'); - td.className = 'x-form-btn-td'; - b.render(tr.appendChild(td)); - } - } - if(this.monitorValid){ this.startMonitoring(); - } - return this; - }, - - - addButton : function(config, handler, scope){ - var bc = { - handler: handler, - scope: scope, - minWidth: this.minButtonWidth, - hideParent:true - }; - if(typeof config == "string"){ - bc.text = config; - }else{ - Ext.apply(bc, config); - } - var btn = new Ext.Button(null, bc); - this.buttons.push(btn); - return btn; - }, - - - startMonitoring : function(){ - if(!this.bound){ - this.bound = true; - Ext.TaskMgr.start({ - run : this.bindHandler, - interval : this.monitorPoll || 200, - scope: this - }); - } - }, - - - stopMonitoring : function(){ - this.bound = false; - }, - - bindHandler : function(){ - if(!this.bound){ - return false; } - var valid = true; - this.items.each(function(f){ - if(!f.isValid(true)){ - valid = false; - return false; - } - }); - for(var i = 0, len = this.buttons.length; i < len; i++){ - var btn = this.buttons[i]; - if(btn.formBind === true && btn.disabled === valid){ - btn.setDisabled(!valid); - } - } - this.fireEvent('clientvalidation', this, valid); - } -}); - - -Ext.Form = Ext.form.Form; - - -Ext.form.Action = function(form, options){ - this.form = form; - this.options = options || {}; -}; - -Ext.form.Action.CLIENT_INVALID = 'client'; -Ext.form.Action.SERVER_INVALID = 'server'; -Ext.form.Action.CONNECT_FAILURE = 'connect'; -Ext.form.Action.LOAD_FAILURE = 'load'; - -Ext.form.Action.prototype = { - type : 'default', - failureType : undefined, - response : undefined, - result : undefined, - - run : function(options){ - - }, - - success : function(response){ - - }, - - handleResponse : function(response){ - - }, - - failure : function(response){ - this.response = response; - this.failureType = Ext.form.Action.CONNECT_FAILURE; - this.form.afterAction(this, false); - }, - - processResponse : function(response){ - this.response = response; - if(!response.responseText){ - return true; - } - this.result = this.handleResponse(response); - return this.result; - }, - - getUrl : function(appendParams){ - var url = this.options.url || this.form.url || this.form.el.dom.action; - if(appendParams){ - var p = this.getParams(); - if(p){ - url += (url.indexOf('?') != -1 ? '&' : '?') + p; - } - } - return url; - }, - - getMethod : function(){ - return (this.options.method || this.form.method || this.form.el.dom.method || 'POST').toUpperCase(); - }, - - getParams : function(){ - var bp = this.form.baseParams; - var p = this.options.params; - if(p){ - if(typeof p == "object"){ - p = Ext.urlEncode(Ext.applyIf(p, bp)); - }else if(typeof p == 'string' && bp){ - p += '&' + Ext.urlEncode(bp); - } - }else if(bp){ - p = Ext.urlEncode(bp); - } - return p; - }, - - createCallback : function(){ - return { - success: this.success, - failure: this.failure, - scope: this, - timeout: (this.form.timeout*1000), - upload: this.form.fileUpload ? this.success : undefined - }; - } -}; - -Ext.form.Action.Submit = function(form, options){ - Ext.form.Action.Submit.superclass.constructor.call(this, form, options); -}; - -Ext.extend(Ext.form.Action.Submit, Ext.form.Action, { - type : 'submit', - - run : function(){ - var o = this.options; - var isPost = this.getMethod() == 'POST'; - if(o.clientValidation === false || this.form.isValid()){ - Ext.lib.Ajax.formRequest( - this.form.el.dom, - this.getUrl(!isPost), - this.createCallback(), - isPost ? this.getParams() : null, this.form.fileUpload, Ext.SSL_SECURE_URL); - - }else if (o.clientValidation !== false){ this.failureType = Ext.form.Action.CLIENT_INVALID; - this.form.afterAction(this, false); - } - }, - - success : function(response){ - var result = this.processResponse(response); - if(result === true || result.success){ - this.form.afterAction(this, true); - return; - } - if(result.errors){ - this.form.markInvalid(result.errors); - this.failureType = Ext.form.Action.SERVER_INVALID; - } - this.form.afterAction(this, false); - }, - - handleResponse : function(response){ - if(this.form.errorReader){ - var rs = this.form.errorReader.read(response); - var errors = []; - if(rs.records){ - for(var i = 0, len = rs.records.length; i < len; i++) { - var r = rs.records[i]; - errors[i] = r.data; - } - } - if(errors.length < 1){ - errors = null; - } - return { - success : rs.success, - errors : errors - }; - } - return Ext.decode(response.responseText); - } -}); - - -Ext.form.Action.Load = function(form, options){ - Ext.form.Action.Load.superclass.constructor.call(this, form, options); - this.reader = this.form.reader; -}; - -Ext.extend(Ext.form.Action.Load, Ext.form.Action, { - type : 'load', - - run : function(){ - Ext.lib.Ajax.request( - this.getMethod(), - this.getUrl(false), - this.createCallback(), - this.getParams()); - }, - - success : function(response){ - var result = this.processResponse(response); - if(result === true || !result.success || !result.data){ - this.failureType = Ext.form.Action.LOAD_FAILURE; - this.form.afterAction(this, false); - return; - } - this.form.clearInvalid(); - this.form.setValues(result.data); - this.form.afterAction(this, true); - }, - - handleResponse : function(response){ - if(this.form.reader){ - var rs = this.form.reader.read(response); - var data = rs.records && rs.records[0] ? rs.records[0].data : null; - return { - success : rs.success, - data : data - }; - } - return Ext.decode(response.responseText); - } -}); - -Ext.form.Action.ACTION_TYPES = { - 'load' : Ext.form.Action.Load, - 'submit' : Ext.form.Action.Submit -}; - - -Ext.form.Layout = function(config){ - Ext.form.Layout.superclass.constructor.call(this, config); - this.stack = []; -}; - -Ext.extend(Ext.form.Layout, Ext.Component, { - - - - - - clear : true, - - labelSeparator : ':', - - hideLabels : false, - - defaultAutoCreate : {tag: 'div', cls: 'x-form-ct'}, - - onRender : function(ct, position){ - if(this.el){ this.el = Ext.get(this.el); - }else { var cfg = this.getAutoCreate(); - this.el = ct.createChild(cfg, position); - } - if(this.style){ - this.el.applyStyles(this.style); - } - if(this.labelAlign){ - this.el.addClass('x-form-label-'+this.labelAlign); - } - if(this.hideLabels){ - this.labelStyle = "display:none"; - this.elementStyle = "padding-left:0;"; - }else{ - if(typeof this.labelWidth == 'number'){ - this.labelStyle = "width:"+this.labelWidth+"px;"; - this.elementStyle = "padding-left:"+((this.labelWidth+(typeof this.labelPad == 'number' ? this.labelPad : 5))+'px')+";"; - } - if(this.labelAlign == 'top'){ - this.labelStyle = "width:auto;"; - this.elementStyle = "padding-left:0;"; - } - } - var stack = this.stack; - var slen = stack.length; - if(slen > 0){ - if(!this.fieldTpl){ - var t = new Ext.Template( - '
      ', - '', - '
      ', - '
      ', - '
      ' - ); - t.disableFormats = true; - t.compile(); - Ext.form.Layout.prototype.fieldTpl = t; - } - for(var i = 0; i < slen; i++) { - if(stack[i].isFormField){ - this.renderField(stack[i]); - }else{ - this.renderComponent(stack[i]); - } - } - } - if(this.clear){ - this.el.createChild({cls:'x-form-clear'}); - } - }, - - renderField : function(f){ - this.fieldTpl.append(this.el, [ - f.id, f.fieldLabel, - f.labelStyle||this.labelStyle||'', - this.elementStyle||'', - typeof f.labelSeparator == 'undefined' ? this.labelSeparator : f.labelSeparator, - f.itemCls||this.itemCls||'' - ]); - }, - - renderComponent : function(c){ - c.render(this.el); - } -}); - - -Ext.form.Column = function(config){ - Ext.form.Column.superclass.constructor.call(this, config); -}; - -Ext.extend(Ext.form.Column, Ext.form.Layout, { - - - - defaultAutoCreate : {tag: 'div', cls: 'x-form-ct x-form-column'}, - - onRender : function(ct, position){ - Ext.form.Column.superclass.onRender.call(this, ct, position); - if(this.width){ - this.el.setWidth(this.width); - } - } -}); - - -Ext.form.FieldSet = function(config){ - Ext.form.FieldSet.superclass.constructor.call(this, config); -}; - -Ext.extend(Ext.form.FieldSet, Ext.form.Layout, { - - - - defaultAutoCreate : {tag: 'fieldset', cn: {tag:'legend'}}, - - onRender : function(ct, position){ - Ext.form.FieldSet.superclass.onRender.call(this, ct, position); - if(this.legend){ - this.setLegend(this.legend); - } - }, - - setLegend : function(text){ - if(this.rendered){ - this.el.child('legend').update(text); - } - } -}); - -Ext.form.VTypes = function(){ - var alpha = /^[a-zA-Z_]+$/; - var alphanum = /^[a-zA-Z0-9_]+$/; - var email = /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/; - var url = /(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i; - - return { - - 'email' : function(v){ - return email.test(v); - }, - - 'emailText' : 'This field should be an e-mail address in the format "user@domain.com"', - - 'emailMask' : /[a-z0-9_\.\-@]/i, - - - 'url' : function(v){ - return url.test(v); - }, - - 'urlText' : 'This field should be a URL in the format "http:/'+'/www.domain.com"', - - - 'alpha' : function(v){ - return alpha.test(v); - }, - - 'alphaText' : 'This field should only contain letters and _', - - 'alphaMask' : /[a-z_]/i, - - - 'alphanum' : function(v){ - return alphanum.test(v); - }, - - 'alphanumText' : 'This field should only contain letters, numbers and _', - - 'alphanumMask' : /[a-z0-9_]/i - }; -}(); diff --git a/www/extras/extjs/package/form/form.js b/www/extras/extjs/package/form/form.js deleted file mode 100644 index f65cdeec2..000000000 --- a/www/extras/extjs/package/form/form.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.form.Field=function(_1){Ext.form.Field.superclass.constructor.call(this,_1);this.addEvents({focus:true,blur:true,specialkey:true,change:true,invalid:true,valid:true});};Ext.extend(Ext.form.Field,Ext.Component,{invalidClass:"x-form-invalid",invalidText:"The value in this field is invalid",focusClass:"x-form-focus",validationEvent:"keyup",validateOnBlur:true,validationDelay:250,defaultAutoCreate:{tag:"input",type:"text",size:"20",autocomplete:"off"},fieldClass:"x-form-field",msgTarget:"qtip",msgFx:"normal",inputType:undefined,isFormField:true,hasFocus:false,value:undefined,getName:function(){return this.rendered&&this.el.dom.name?this.el.dom.name:(this.hiddenName||"");},applyTo:function(_2){this.target=_2;this.el=Ext.get(_2);this.render(this.el.dom.parentNode);return this;},onRender:function(ct,_4){if(this.el){this.el=Ext.get(this.el);if(!this.target){ct.dom.appendChild(this.el.dom);}}else{var _5=this.getAutoCreate();if(!_5.name){_5.name=this.name||this.id;}if(this.inputType){_5.type=this.inputType;}if(this.tabIndex!==undefined){_5.tabIndex=this.tabIndex;}this.el=ct.createChild(_5,_4);}var _6=this.el.dom.type;if(_6){if(_6=="password"){_6="text";}this.el.addClass("x-form-"+_6);}if(!this.customSize&&(this.width||this.height)){this.setSize(this.width||"",this.height||"");}if(this.readOnly){this.el.dom.readOnly=true;}this.el.addClass([this.fieldClass,this.cls]);this.initValue();},initValue:function(){if(this.value!==undefined){this.setValue(this.value);}else{if(this.el.dom.value.length>0){this.setValue(this.el.dom.value);}}},afterRender:function(){Ext.form.Field.superclass.afterRender.call(this);this.initEvents();},fireKey:function(e){if(e.isNavKeyPress()){this.fireEvent("specialkey",this,e);}},reset:function(){this.setValue(this.originalValue);this.clearInvalid();},initEvents:function(){this.el.on(Ext.isIE?"keydown":"keypress",this.fireKey,this);this.el.on("focus",this.onFocus,this);this.el.on("blur",this.onBlur,this);this.originalValue=this.getValue();},onFocus:function(){if(!Ext.isOpera){this.el.addClass(this.focusClass);}this.hasFocus=true;this.startValue=this.getValue();this.fireEvent("focus",this);},onBlur:function(){this.el.removeClass(this.focusClass);this.hasFocus=false;if(this.validationEvent!==false&&this.validateOnBlur&&this.validationEvent!="blur"){this.validate();}var v=this.getValue();if(v!=this.startValue){this.fireEvent("change",this,v,this.startValue);}this.fireEvent("blur",this);},setSize:function(w,h){if(!this.rendered||!this.el){this.width=w;this.height=h;return;}if(w){w=this.adjustWidth(this.el.dom.tagName,w);this.el.setWidth(w);}if(h){this.el.setHeight(h);}var h=this.el.dom.offsetHeight;},isValid:function(_b){if(this.disabled){return true;}var _c=this.preventMark;this.preventMark=_b===true;var v=this.validateValue(this.getRawValue());this.preventMark=_c;return v;},validate:function(){if(this.disabled||this.validateValue(this.getRawValue())){this.clearInvalid();return true;}return false;},validateValue:function(_e){return true;},markInvalid:function(_f){if(!this.rendered||this.preventMark){return;}this.el.addClass(this.invalidClass);_f=_f||this.invalidText;switch(this.msgTarget){case "qtip":this.el.dom.qtip=_f;this.el.dom.qclass="x-form-invalid-tip";break;case "title":this.el.dom.title=_f;break;case "under":if(!this.errorEl){var elp=this.el.findParent(".x-form-element",5,true);this.errorEl=elp.createChild({cls:"x-form-invalid-msg"});this.errorEl.setWidth(elp.getWidth(true)-20);}this.errorEl.update(_f);Ext.form.Field.msgFx[this.msgFx].show(this.errorEl,this);break;case "side":if(!this.errorIcon){var elp=this.el.findParent(".x-form-element",5,true);this.errorIcon=elp.createChild({cls:"x-form-invalid-icon"});}this.alignErrorIcon();this.errorIcon.dom.qtip=_f;this.errorIcon.dom.qclass="x-form-invalid-tip";this.errorIcon.show();break;default:var t=Ext.getDom(this.msgTarget);t.innerHTML=_f;t.style.display=this.msgDisplay;break;}this.fireEvent("invalid",this,_f);},alignErrorIcon:function(){this.errorIcon.alignTo(this.el,"tl-tr",[2,0]);},clearInvalid:function(){if(!this.rendered||this.preventMark){return;}this.el.removeClass(this.invalidClass);switch(this.msgTarget){case "qtip":this.el.dom.qtip="";break;case "title":this.el.dom.title="";break;case "under":if(this.errorEl){Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl,this);}break;case "side":if(this.errorIcon){this.errorIcon.dom.qtip="";this.errorIcon.hide();}break;default:var t=Ext.getDom(this.msgTarget);t.innerHTML="";t.style.display="none";break;}this.fireEvent("valid",this);},getRawValue:function(){return this.el.getValue();},getValue:function(){var v=this.el.getValue();if(v==this.emptyText||v===undefined){v="";}return v;},setRawValue:function(v){return this.el.dom.value=v;},setValue:function(v){this.value=v;if(this.rendered){this.el.dom.value=v;this.validate();}},adjustWidth:function(tag,w){tag=tag.toLowerCase();if(typeof w=="number"&&Ext.isStrict&&!Ext.isSafari){if(Ext.isIE&&(tag=="input"||tag=="textarea")){if(tag=="input"){return w+2;}if(tag="textarea"){return w-2;}}else{if(Ext.isGecko&&tag=="textarea"){return w-6;}else{if(Ext.isOpera){if(tag=="input"){return w+2;}if(tag="textarea"){return w-2;}}}}}return w;}});Ext.form.Field.msgFx={normal:{show:function(_18,f){_18.setDisplayed("block");},hide:function(_1a,f){_1a.setDisplayed(false).update("");}},slide:{show:function(_1c,f){_1c.slideIn("t",{stopFx:true});},hide:function(_1e,f){_1e.slideOut("t",{stopFx:true,useDisplay:true});}},slideRight:{show:function(_20,f){_20.fixDisplay();_20.alignTo(f.el,"tl-tr");_20.slideIn("l",{stopFx:true});},hide:function(_22,f){_22.slideOut("l",{stopFx:true,useDisplay:true});}}}; - -Ext.form.TextField=function(_1){Ext.form.TextField.superclass.constructor.call(this,_1);this.addEvents({autosize:true});};Ext.extend(Ext.form.TextField,Ext.form.Field,{grow:false,growMin:30,growMax:800,vtype:null,maskRe:null,disableKeyFilter:false,allowBlank:true,minLength:0,maxLength:Number.MAX_VALUE,minLengthText:"The minimum length for this field is {0}",maxLengthText:"The maximum length for this field is {0}",selectOnFocus:false,blankText:"This field is required",validator:null,regex:null,regexText:"",emptyText:null,emptyClass:"x-form-empty-field",initEvents:function(){Ext.form.TextField.superclass.initEvents.call(this);if(this.validationEvent=="keyup"){this.validationTask=new Ext.util.DelayedTask(this.validate,this);this.el.on("keyup",this.filterValidation,this);}else{if(this.validationEvent!==false){this.el.on(this.validationEvent,this.validate,this,{buffer:this.validationDelay});}}if(this.selectOnFocus||this.emptyText){this.on("focus",this.preFocus,this);if(this.emptyText){this.on("blur",this.postBlur,this);this.applyEmptyText();}}if(this.maskRe||(this.vtype&&this.disableKeyFilter!==true&&(this.maskRe=Ext.form.VTypes[this.vtype+"Mask"]))){this.el.on("keypress",this.filterKeys,this);}if(this.grow){this.el.on("keyup",this.onKeyUp,this,{buffer:50});this.el.on("click",this.autoSize,this);}},filterValidation:function(e){if(!e.isNavKeyPress()){this.validationTask.delay(this.validationDelay);}},onKeyUp:function(e){if(!e.isNavKeyPress()){this.autoSize();}},reset:function(){Ext.form.TextField.superclass.reset.call(this);this.applyEmptyText();},applyEmptyText:function(){if(this.rendered&&this.emptyText&&this.getRawValue().length<1){this.setRawValue(this.emptyText);this.el.addClass(this.emptyClass);}},preFocus:function(){if(this.emptyText){if(this.getRawValue()==this.emptyText){this.setRawValue("");}this.el.removeClass(this.emptyClass);}if(this.selectOnFocus){this.el.dom.select();}},postBlur:function(){this.applyEmptyText();},filterKeys:function(e){var k=e.getKey();if(!Ext.isIE&&(e.isNavKeyPress()||k==e.BACKSPACE||(k==e.DELETE&&e.button==-1))){return;}var c=e.getCharCode();if(!this.maskRe.test(String.fromCharCode(c)||"")){e.stopEvent();}},setValue:function(v){if(this.emptyText&&v!==undefined&&v!==null&&v!==""){this.el.removeClass(this.emptyClass);}Ext.form.TextField.superclass.setValue.apply(this,arguments);},validateValue:function(_8){if(_8.length<1||_8===this.emptyText){if(this.allowBlank){this.clearInvalid();return true;}else{this.markInvalid(this.blankText);return false;}}if(_8.lengththis.maxLength){this.markInvalid(String.format(this.maxLengthText,this.maxLength));return false;}if(this.vtype){var vt=Ext.form.VTypes;if(!vt[this.vtype](_8)){this.markInvalid(this.vtypeText||vt[this.vtype+"Text"]);return false;}}if(typeof this.validator=="function"){var _a=this.validator(_8);if(_a!==true){this.markInvalid(_a);return false;}}if(this.regex&&!this.regex.test(_8)){this.markInvalid(this.regexText);return false;}return true;},selectText:function(_b,_c){var v=this.getRawValue();if(v.length>0){_b=_b===undefined?0:_b;_c=_c===undefined?v.length:_c;var d=this.el.dom;if(d.setSelectionRange){d.setSelectionRange(_b,_c);}else{if(d.createTextRange){var _f=d.createTextRange();_f.moveStart("character",_b);_f.moveEnd("character",v.length-_c);_f.select();}}}},autoSize:function(){if(!this.grow||!this.rendered){return;}if(!this.metrics){this.metrics=Ext.util.TextMetrics.createInstance(this.el);}var el=this.el;var v=el.dom.value+" ";var w=Math.min(this.growMax,Math.max(this.metrics.getWidth(v)+10,this.growMin));this.el.setWidth(w);this.fireEvent("autosize",this,w);}}); - -Ext.form.TriggerField=function(_1){Ext.form.TriggerField.superclass.constructor.call(this,_1);this.mimicing=false;this.on("disable",this.disableWrapper,this);this.on("enable",this.enableWrapper,this);};Ext.extend(Ext.form.TriggerField,Ext.form.TextField,{defaultAutoCreate:{tag:"input",type:"text",size:"16",autocomplete:"off"},hideTrigger:false,autoSize:Ext.emptyFn,monitorTab:true,customSize:true,setSize:function(w,h){if(!this.wrap){this.width=w;this.height=h;return;}if(w){var _4=w;w=w-this.trigger.getWidth();Ext.form.TriggerField.superclass.setSize.call(this,w,h);this.wrap.setWidth(_4);if(this.onResize){this.onResize(_4,h);}}else{Ext.form.TriggerField.superclass.setSize.call(this,w,h);this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth());}},alignErrorIcon:function(){this.errorIcon.alignTo(this.wrap,"tl-tr",[2,0]);},onRender:function(ct,_6){Ext.form.TriggerField.superclass.onRender.call(this,ct,_6);this.wrap=this.el.wrap({cls:"x-form-field-wrap"});this.trigger=this.wrap.createChild({tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.triggerClass});this.trigger.on("click",this.onTriggerClick,this,{preventDefault:true});this.trigger.addClassOnOver("x-form-trigger-over");this.trigger.addClassOnClick("x-form-trigger-click");if(this.hideTrigger){this.trigger.setDisplayed(false);}this.setSize(this.width||"",this.height||"");},onDestroy:function(){if(this.trigger){this.trigger.removeAllListeners();this.trigger.remove();}if(this.wrap){this.wrap.remove();}Ext.form.TriggerField.superclass.onDestroy.call(this);},onFocus:function(){Ext.form.TriggerField.superclass.onFocus.call(this);if(!this.mimicing){this.mimicing=true;Ext.get(Ext.isIE?document.body:document).on("mousedown",this.mimicBlur,this);if(this.monitorTab){this.el.on("keydown",this.checkTab,this);}}},checkTab:function(e){if(e.getKey()==e.TAB){this.triggerBlur();}},onBlur:function(){},mimicBlur:function(e,t){if(!this.wrap.contains(t)&&this.validateBlur()){this.triggerBlur();}},triggerBlur:function(){this.mimicing=false;Ext.get(Ext.isIE?document.body:document).un("mousedown",this.mimicBlur);if(this.monitorTab){this.el.un("keydown",this.checkTab,this);}Ext.form.TriggerField.superclass.onBlur.call(this);},validateBlur:function(e,t){return true;},disableWrapper:function(){if(this.wrap){this.wrap.addClass("x-item-disabled");}},enableWrapper:function(){if(this.wrap){this.wrap.removeClass("x-item-disabled");}},onShow:function(){if(this.wrap){this.wrap.dom.style.display="";this.wrap.dom.style.visibility="visible";}},onHide:function(){this.wrap.dom.style.display="none";},onTriggerClick:Ext.emptyFn}); - -Ext.form.TextArea=function(_1){Ext.form.TextArea.superclass.constructor.call(this,_1);if(this.minHeight!==undefined){this.growMin=this.minHeight;}if(this.maxHeight!==undefined){this.growMax=this.maxHeight;}};Ext.extend(Ext.form.TextArea,Ext.form.TextField,{growMin:60,growMax:1000,preventScrollbars:false,onRender:function(ct,_3){if(!this.el){this.defaultAutoCreate={tag:"textarea",style:"width:300px;height:60px;",autocomplete:"off"};}Ext.form.TextArea.superclass.onRender.call(this,ct,_3);if(this.grow){this.textSizeEl=Ext.DomHelper.append(document.body,{tag:"pre",cls:"x-form-grow-sizer"});if(this.preventScrollbars){this.el.setStyle("overflow","hidden");}this.el.setHeight(this.growMin);}},onKeyUp:function(e){if(!e.isNavKeyPress()||e.getKey()==e.ENTER){this.autoSize();}},autoSize:function(){if(!this.grow||!this.textSizeEl){return;}var el=this.el;var v=el.dom.value;var ts=this.textSizeEl;Ext.fly(ts).setWidth(this.el.getWidth());if(v.length<1){v="  ";}else{v+=" \n ";}if(Ext.isIE){v=v.replace(/\n/g,"
      ");}ts.innerHTML=v;var h=Math.min(this.growMax,Math.max(ts.offsetHeight,this.growMin));if(h!=this.lastHeight){this.lastHeight=h;this.el.setHeight(h);this.fireEvent("autosize",this,h);}},setValue:function(v){Ext.form.TextArea.superclass.setValue.call(this,v);this.autoSize();}}); - -Ext.form.NumberField=function(_1){Ext.form.NumberField.superclass.constructor.call(this,_1);};Ext.extend(Ext.form.NumberField,Ext.form.TextField,{fieldClass:"x-form-field x-form-num-field",allowDecimals:true,decimalSeparator:".",decimalPrecision:2,allowNegative:true,minValue:Number.NEGATIVE_INFINITY,maxValue:Number.MAX_VALUE,minText:"The minimum value for this field is {0}",maxText:"The maximum value for this field is {0}",nanText:"{0} is not a valid number",initEvents:function(){Ext.form.NumberField.superclass.initEvents.call(this);var _2="0123456789";if(this.allowDecimals){_2+=this.decimalSeparator;}if(this.allowNegative){_2+="-";}var _3=function(e){var k=e.getKey();if(!Ext.isIE&&(e.isNavKeyPress()||k==e.BACKSPACE||(k==e.DELETE&&e.button==-1))){return;}var c=e.getCharCode();if(_2.indexOf(String.fromCharCode(c))===-1){e.stopEvent();}};this.el.on("keypress",_3,this);},validateValue:function(_7){if(!Ext.form.NumberField.superclass.validateValue.call(this,_7)){return false;}if(_7.length<1){return true;}_7=String(_7).replace(this.decimalSeparator,".");if(isNaN(_7)){this.markInvalid(String.format(this.nanText,_7));return false;}var _8=this.parseValue(_7);if(_8this.maxValue){this.markInvalid(String.format(this.maxText,this.maxValue));return false;}return true;},parseValue:function(_9){return parseFloat(String(_9).replace(this.decimalSeparator,"."));},fixPrecision:function(_a){if(!this.allowDecimals||this.decimalPrecision==-1||isNaN(_a)||_a==0||!_a){return _a;}var _b=Math.pow(10,this.decimalPrecision+1);var _c=this.decimalPrecisionFcn(_a*_b);_c=this.decimalPrecisionFcn(_c/10);return _c/(_b/10);},decimalPrecisionFcn:function(v){return Math.floor(v);}}); - -Ext.form.DateField=function(_1){Ext.form.DateField.superclass.constructor.call(this,_1);if(typeof this.minValue=="string"){this.minValue=this.parseDate(this.minValue);}if(typeof this.maxValue=="string"){this.maxValue=this.parseDate(this.maxValue);}this.ddMatch=null;if(this.disabledDates){var dd=this.disabledDates;var re="(?:";for(var i=0;ithis.maxValue.getTime()){this.markInvalid(String.format(this.maxText,this.formatDate(this.maxValue)));return false;}if(this.disabledDays){var _8=_5.getDay();for(var i=0;i{"+this.displayField+"}";}this.view=new Ext.View(this.innerList,this.tpl,{singleSelect:true,store:this.store,selectedClass:this.selectedClass});this.view.on("click",this.onViewClick,this);this.store.on("beforeload",this.onBeforeLoad,this);this.store.on("load",this.onLoad,this);this.store.on("loadexception",this.collapse,this);if(this.resizable){this.resizer=new Ext.Resizable(this.list,{pinned:true,handles:"se"});this.resizer.on("resize",function(r,w,h){this.maxHeight=h-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight;this.listWidth=w;this.restrictHeight();},this);this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px");}if(!this.editable){this.editable=true;this.setEditable(false);}},initEvents:function(){Ext.form.ComboBox.superclass.initEvents.call(this);this.keyNav=new Ext.KeyNav(this.el,{"up":function(e){this.inKeyMode=true;this.selectPrev();},"down":function(e){if(!this.isExpanded()){this.onTriggerClick();}else{this.inKeyMode=true;this.selectNext();}},"enter":function(e){this.onViewClick();},"esc":function(e){this.collapse();},"tab":function(e){this.onViewClick(false);return true;},scope:this,doRelay:function(foo,bar,_16){if(_16=="down"||this.scope.isExpanded()){return Ext.KeyNav.prototype.doRelay.apply(this,arguments);}return true;}});this.queryDelay=Math.max(this.queryDelay||10,this.mode=="local"?10:250);this.dqTask=new Ext.util.DelayedTask(this.initQuery,this);if(this.typeAhead){this.taTask=new Ext.util.DelayedTask(this.onTypeAhead,this);}if(this.editable!==false){this.el.on("keyup",this.onKeyUp,this);}if(this.forceSelection){this.on("blur",this.doForce,this);}},onDestroy:function(){if(this.view){this.view.setStore(null);this.view.el.removeAllListeners();this.view.el.remove();this.view.purgeListeners();}if(this.list){this.list.destroy();}if(this.store){this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("loadexception",this.collapse,this);}Ext.form.ComboBox.superclass.onDestroy.call(this);},fireKey:function(e){if(e.isNavKeyPress()&&!this.list.isVisible()){this.fireEvent("specialkey",this,e);}},onResize:function(w,h){if(this.list&&this.listWidth===undefined){this.list.setWidth(Math.max(w,this.minListWidth));}},setEditable:function(_1a){if(_1a==this.editable){return;}this.editable=_1a;if(!_1a){this.el.dom.setAttribute("readOnly",true);this.el.on("mousedown",this.onTriggerClick,this);this.el.addClass("x-combo-noedit");}else{this.el.dom.setAttribute("readOnly",false);this.el.un("mousedown",this.onTriggerClick,this);this.el.removeClass("x-combo-noedit");}},onBeforeLoad:function(){if(!this.hasFocus){return;}this.innerList.update(this.loadingText?"
      "+this.loadingText+"
      ":"");this.restrictHeight();this.selectedIndex=-1;},onLoad:function(){if(!this.hasFocus){return;}if(this.store.getCount()>0){this.expand();this.restrictHeight();if(this.lastQuery==this.allQuery){if(this.editable){this.el.dom.select();}if(!this.selectByValue(this.value,true)){this.select(0,true);}}else{this.selectNext();if(this.typeAhead&&this.lastKey!=Ext.EventObject.BACKSPACE&&this.lastKey!=Ext.EventObject.DELETE){this.taTask.delay(this.typeAheadDelay);}}}else{this.onEmptyResults();}},onTypeAhead:function(){if(this.store.getCount()>0){var r=this.store.getAt(0);var _1c=r.data[this.displayField];var len=_1c.length;var _1e=this.getRawValue().length;if(_1e!=len){this.setRawValue(_1c);this.selectText(_1e,_1c.length);}}},onSelect:function(_1f,_20){if(this.fireEvent("beforeselect",this,_1f,_20)!==false){this.setValue(_1f.data[this.valueField||this.displayField]);this.collapse();this.fireEvent("select",this,_1f,_20);}},getValue:function(){if(this.valueField){return typeof this.value!="undefined"?this.value:"";}else{return Ext.form.ComboBox.superclass.getValue.call(this);}},clearValue:function(){if(this.hiddenField){this.hiddenField.value="";}this.setRawValue("");this.lastSelectionText="";},setValue:function(v){var _22=v;if(this.valueField){var r=this.findRecord(this.valueField,v);if(r){_22=r.data[this.displayField];}else{if(this.valueNotFoundText){_22=this.valueNotFoundText;}}}this.lastSelectionText=_22;if(this.hiddenField){this.hiddenField.value=v;}Ext.form.ComboBox.superclass.setValue.call(this,_22);this.value=v;},findRecord:function(_24,_25){var _26;if(this.store.getCount()>0){this.store.each(function(r){if(r.data[_24]==_25){_26=r;return false;}});}return _26;},onViewMove:function(e,t){this.inKeyMode=false;},onViewOver:function(e,t){if(this.inKeyMode){return;}var _2c=this.view.findItemFromChild(t);if(_2c){var _2d=this.view.indexOf(_2c);this.select(_2d,false);}},onViewClick:function(_2e){var _2f=this.view.getSelectedIndexes()[0];var r=this.store.getAt(_2f);if(r){this.onSelect(r,_2f);}if(_2e!==false){this.el.focus();}},restrictHeight:function(){this.innerList.dom.style.height="";var _31=this.innerList.dom;var h=Math.max(_31.clientHeight,_31.offsetHeight,_31.scrollHeight);this.innerList.setHeight(h0){if(this.selectedIndex==-1){this.select(0);}else{if(this.selectedIndex0){if(this.selectedIndex==-1){this.select(0);}else{if(this.selectedIndex!=0){this.select(this.selectedIndex-1);}}}},onKeyUp:function(e){if(this.editable!==false&&!e.isSpecialKey()){this.lastKey=e.getKey();this.dqTask.delay(this.queryDelay);}},validateBlur:function(){return !this.list||!this.list.isVisible();},initQuery:function(){this.doQuery(this.getRawValue());},doForce:function(){if(this.el.dom.value.length>0){this.el.dom.value=this.lastSelectionText===undefined?"":this.lastSelectionText;this.applyEmptyText();}},doQuery:function(q,_3d){if(q===undefined||q===null){q="";}var qe={query:q,forceAll:_3d,combo:this,cancel:false};if(this.fireEvent("beforequery",qe)===false||qe.cancel){return false;}q=qe.query;_3d=qe.forceAll;if(_3d===true||(q.length>=this.minChars)){if(this.lastQuery!=q){this.lastQuery=q;if(this.mode=="local"){this.selectedIndex=-1;if(_3d){this.store.clearFilter();}else{this.store.filter(this.displayField,q);}this.onLoad();}else{this.store.baseParams[this.queryParam]=q;this.store.load({params:this.getParams(q)});this.expand();}}else{this.selectedIndex=-1;this.onLoad();}}},getParams:function(q){var p={};if(this.pageSize){p.start=0;p.limit=this.pageSize;}return p;},collapse:function(){if(!this.isExpanded()){return;}this.list.hide();Ext.get(document).un("mousedown",this.collapseIf,this);this.fireEvent("collapse",this);},collapseIf:function(e){if(!e.within(this.wrap)&&!e.within(this.list)){this.collapse();}},expand:function(){if(this.isExpanded()||!this.hasFocus){return;}this.list.alignTo(this.el,this.listAlign);this.list.show();Ext.get(document).on("mousedown",this.collapseIf,this);this.fireEvent("expand",this);},onTriggerClick:function(){if(this.disabled){return;}if(this.isExpanded()){this.collapse();this.el.focus();}else{this.hasFocus=true;this.doQuery(this.triggerAction=="all"?this.doQuery(this.allQuery,true):this.doQuery(this.getRawValue()));this.el.focus();}}}); - -Ext.Editor=function(_1,_2){Ext.Editor.superclass.constructor.call(this,_2);this.field=_1;this.addEvents({"beforestartedit":true,"startedit":true,"beforecomplete":true,"complete":true,"specialkey":true});};Ext.extend(Ext.Editor,Ext.Component,{value:"",alignment:"c-c?",shadow:"frame",updateEl:false,onRender:function(ct,_4){this.el=new Ext.Layer({shadow:this.shadow,cls:"x-editor",parentEl:ct,shim:this.shim,shadowOffset:3,id:this.id});this.el.setStyle("overflow",Ext.isGecko?"auto":"hidden");this.field.render(this.el);if(Ext.isGecko){this.field.el.dom.setAttribute("autocomplete","off");}this.field.show();this.field.on("blur",this.onBlur,this);this.relayEvents(this.field,["specialkey"]);if(this.field.grow){this.field.on("autosize",this.el.sync,this.el,{delay:1});}},startEdit:function(el,_6){if(this.editing){this.completeEdit();}this.boundEl=Ext.get(el);var v=_6!==undefined?_6:this.boundEl.dom.innerHTML;if(!this.rendered){this.render(this.parentEl||document.body);}if(this.fireEvent("beforestartedit",this,this.boundEl,v)===false){return;}this.startValue=v;this.field.setValue(v);if(this.autoSize){var sz=this.boundEl.getSize();switch(this.autoSize){case "width":this.setSize(sz.width,"");break;case "height":this.setSize("",sz.height);break;default:this.setSize(sz.width,sz.height);}}this.el.alignTo(this.boundEl,this.alignment);this.editing=true;if(Ext.QuickTips){Ext.QuickTips.disable();}this.show();},setSize:function(w,h){this.field.setSize(w,h);if(this.el){this.el.sync();}},realign:function(){this.el.alignTo(this.boundEl,this.alignment);},completeEdit:function(_b){if(!this.editing){return;}var v=this.getValue();if(this.revertInvalid!==false&&!this.field.isValid()){v=this.startValue;this.cancelEdit(true);}if(String(v)==String(this.startValue)&&this.ignoreNoChange){this.editing=false;this.hide();return;}if(this.fireEvent("beforecomplete",this,v,this.startValue)!==false){this.editing=false;if(this.updateEl&&this.boundEl){this.boundEl.update(v);}if(_b!==true){this.hide();}this.fireEvent("complete",this,v,this.startValue);}},onShow:function(){this.el.show();if(this.hideEl!==false){this.boundEl.hide();}this.field.show();this.field.focus();this.fireEvent("startedit",this.boundEl,this.startValue);},cancelEdit:function(_d){if(this.editing){this.setValue(this.startValue);if(_d!==true){this.hide();}}},onBlur:function(){if(this.allowBlur!==true&&this.editing){this.completeEdit();}},onHide:function(){if(this.editing){this.completeEdit();return;}this.field.blur();if(this.field.collapse){this.field.collapse();}this.el.hide();if(this.hideEl!==false){this.boundEl.show();}if(Ext.QuickTips){Ext.QuickTips.enable();}},setValue:function(v){this.field.setValue(v);},getValue:function(){return this.field.getValue();}}); - -Ext.form.BasicForm=function(el,_2){Ext.apply(this,_2);this.items=new Ext.util.MixedCollection(false,function(o){return o.id||(o.id=Ext.id());});this.addEvents({beforeaction:true,actionfailed:true,actioncomplete:true});if(el){this.initEl(el);}Ext.form.BasicForm.superclass.constructor.call(this);};Ext.extend(Ext.form.BasicForm,Ext.util.Observable,{timeout:30,activeAction:null,waitMsgTarget:undefined,initEl:function(el){this.el=Ext.get(el);this.id=this.el.id||Ext.id();this.el.on("submit",this.onSubmit,this);this.el.addClass("x-form");},onSubmit:function(e){e.stopEvent();},isValid:function(){var _6=true;this.items.each(function(f){if(!f.validate()){_6=false;}});return _6;},doAction:function(_8,_9){if(typeof _8=="string"){_8=new Ext.form.Action.ACTION_TYPES[_8](this,_9);}if(this.fireEvent("beforeaction",this,_8)!==false){this.beforeAction(_8);_8.run.defer(100,_8);}},submit:function(_a){this.doAction("submit",_a);},load:function(_b){this.doAction("load",_b);},updateRecord:function(_c){_c.beginEdit();var fs=_c.fields;fs.each(function(f){var _f=this.findField(f.name);if(_f){_c.set(f.name,_f.getValue());}},this);_c.endEdit();},beforeAction:function(_10){var o=_10.options;if(o.waitMsg){if(this.waitMsgTarget===true){this.el.mask(o.waitMsg,"x-mask-loading");}else{if(this.waitMsgTarget){this.waitMsgTarget=Ext.get(this.waitMsgTarget);this.waitMsgTarget.mask(o.waitMsg,"x-mask-loading");}else{Ext.MessageBox.wait(o.waitMsg,o.waitTitle||this.waitTitle||"Please Wait...");}}}},afterAction:function(_12,_13){this.activeAction=null;var o=_12.options;if(o.waitMsg){if(this.waitMsgTarget===true){this.el.unmask();}else{if(this.waitMsgTarget){this.waitMsgTarget.unmask();}else{Ext.MessageBox.updateProgress(1);Ext.MessageBox.hide();}}}if(_13){if(o.reset){this.reset();}Ext.callback(o.success,o.scope,[this,_12]);this.fireEvent("actioncomplete",this,_12);}else{Ext.callback(o.failure,o.scope,[this,_12]);this.fireEvent("actionfailed",this,_12);}},findField:function(id){var _16=this.items.get(id);if(!_16){this.items.each(function(f){if(f.isFormField&&(f.dataIndex==id||f.id==id||f.getName()==id)){_16=f;return false;}});}return _16||null;},markInvalid:function(_18){if(_18 instanceof Array){for(var i=0,len=_18.length;i1){this.add.apply(this,Array.prototype.slice.call(arguments,1));this.end();}return _3;},fieldset:function(c){var fs=new Ext.form.FieldSet(c);this.start(fs);if(arguments.length>1){this.add.apply(this,Array.prototype.slice.call(arguments,1));this.end();}return fs;},container:function(c){var l=new Ext.form.Layout(c);this.start(l);if(arguments.length>1){this.add.apply(this,Array.prototype.slice.call(arguments,1));this.end();}return l;},start:function(c){Ext.applyIf(c,{"labelAlign":this.active.labelAlign,"labelWidth":this.active.labelWidth,"itemCls":this.active.itemCls});this.active.stack.push(c);c.ownerCt=this.active;this.active=c;return this;},end:function(){if(this.active==this.root){return this;}this.active=this.active.ownerCt;return this;},add:function(){this.active.stack.push.apply(this.active.stack,arguments);var r=[];for(var i=0,a=arguments,_c=a.length;i<_c;i++){if(a[i].isFormField){r.push(a[i]);}}if(r.length>0){Ext.form.Form.superclass.add.apply(this,r);}return this;},render:function(ct){ct=Ext.get(ct);var o=this.autoCreate||{tag:"form",method:this.method||"POST",id:this.id||Ext.id()};this.initEl(ct.createChild(o));this.root.render(this.el);this.items.each(function(f){f.render("x-form-el-"+f.id);});if(this.buttons.length>0){var tb=this.el.createChild({cls:"x-form-btns-ct",cn:{cls:"x-form-btns x-form-btns-"+this.buttonAlign,html:"
      "}},null,true);var tr=tb.getElementsByTagName("tr")[0];for(var i=0,len=this.buttons.length;i0){if(!this.fieldTpl){var t=new Ext.Template("
      ","","
      ","
      ","
      ");t.disableFormats=true;t.compile();Ext.form.Layout.prototype.fieldTpl=t;}for(var i=0;i<_6;i++){if(_5[i].isFormField){this.renderField(_5[i]);}else{this.renderComponent(_5[i]);}}}if(this.clear){this.el.createChild({cls:"x-form-clear"});}},renderField:function(f){this.fieldTpl.append(this.el,[f.id,f.fieldLabel,f.labelStyle||this.labelStyle||"",this.elementStyle||"",typeof f.labelSeparator=="undefined"?this.labelSeparator:f.labelSeparator,f.itemCls||this.itemCls||""]);},renderComponent:function(c){c.render(this.el);}});Ext.form.Column=function(_b){Ext.form.Column.superclass.constructor.call(this,_b);};Ext.extend(Ext.form.Column,Ext.form.Layout,{defaultAutoCreate:{tag:"div",cls:"x-form-ct x-form-column"},onRender:function(ct,_d){Ext.form.Column.superclass.onRender.call(this,ct,_d);if(this.width){this.el.setWidth(this.width);}}});Ext.form.FieldSet=function(_e){Ext.form.FieldSet.superclass.constructor.call(this,_e);};Ext.extend(Ext.form.FieldSet,Ext.form.Layout,{defaultAutoCreate:{tag:"fieldset",cn:{tag:"legend"}},onRender:function(ct,_10){Ext.form.FieldSet.superclass.onRender.call(this,ct,_10);if(this.legend){this.setLegend(this.legend);}},setLegend:function(_11){if(this.rendered){this.el.child("legend").update(_11);}}}); - -Ext.form.VTypes=function(){var _1=/^[a-zA-Z_]+$/;var _2=/^[a-zA-Z0-9_]+$/;var _3=/^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/;var _4=/(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;return {"email":function(v){return _3.test(v);},"emailText":"This field should be an e-mail address in the format \"user@domain.com\"","emailMask":/[a-z0-9_\.\-@]/i,"url":function(v){return _4.test(v);},"urlText":"This field should be a URL in the format \"http:/"+"/www.domain.com\"","alpha":function(v){return _1.test(v);},"alphaText":"This field should only contain letters and _","alphaMask":/[a-z_]/i,"alphanum":function(v){return _2.test(v);},"alphanumText":"This field should only contain letters, numbers and _","alphanumMask":/[a-z0-9_]/i};}(); - diff --git a/www/extras/extjs/package/grid/edit-grid-debug.js b/www/extras/extjs/package/grid/edit-grid-debug.js deleted file mode 100644 index a7a7bb829..000000000 --- a/www/extras/extjs/package/grid/edit-grid-debug.js +++ /dev/null @@ -1,319 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - - -Ext.grid.EditorGrid = function(container, config){ - Ext.grid.EditorGrid.superclass.constructor.call(this, container, config); - this.container.addClass("xedit-grid"); - - if(!this.selModel){ - this.selModel = new Ext.grid.CellSelectionModel(); - } - - this.activeEditor = null; - - this.addEvents({ - - "beforeedit" : true, - - "afteredit" : true, - - "validateedit" : true - }); - this.on("bodyscroll", this.stopEditing, this); - this.on(this.clicksToEdit == 1 ? "cellclick" : "celldblclick", this.onCellDblClick, this); -}; - -Ext.extend(Ext.grid.EditorGrid, Ext.grid.Grid, { - isEditor : true, - clicksToEdit: 2, - trackMouseOver: false, - - onCellDblClick : function(g, row, col){ - this.startEditing(row, col); - }, - - onEditComplete : function(ed, value, startValue){ - this.editing = false; - this.activeEditor = null; - ed.un("specialkey", this.selModel.onEditorKey, this.selModel); - if(String(value) != String(startValue)){ - var r = ed.record; - var field = this.colModel.getDataIndex(ed.col); - var e = { - grid: this, - record: r, - field: field, - originalValue: startValue, - value: value, - row: ed.row, - column: ed.col, - cancel:false - }; - if(this.fireEvent("validateedit", e) !== false && !e.cancel){ - r.set(field, e.value); - delete e.cancel; - this.fireEvent("afteredit", e); - } - } - this.view.focusCell(ed.row, ed.col); - }, - - - startEditing : function(row, col){ - this.stopEditing(); - if(this.colModel.isCellEditable(col, row)){ - this.view.focusCell(row, col); - var r = this.dataSource.getAt(row); - var field = this.colModel.getDataIndex(col); - var e = { - grid: this, - record: r, - field: field, - value: r.data[field], - row: row, - column: col, - cancel:false - }; - if(this.fireEvent("beforeedit", e) !== false && !e.cancel){ - this.editing = true; - (function(){ - var ed = this.colModel.getCellEditor(col, row); - ed.row = row; - ed.col = col; - ed.record = r; - ed.on("complete", this.onEditComplete, this, {single: true}); - ed.on("specialkey", this.selModel.onEditorKey, this.selModel); - this.activeEditor = ed; - var v = r.data[field]; - ed.startEdit(this.view.getCell(row, col), v); - }).defer(50, this); - } - } - }, - - - stopEditing : function(){ - if(this.activeEditor){ - this.activeEditor.completeEdit(); - } - this.activeEditor = null; - } -}); -Ext.grid.GridEditor = function(field, config){ - Ext.grid.GridEditor.superclass.constructor.call(this, field, config); - field.monitorTab = false; -}; - -Ext.extend(Ext.grid.GridEditor, Ext.Editor, { - alignment: "tl-tl", - autoSize: "width", - hideEl : false, - cls: "x-small-editor x-grid-editor", - shim:false, - shadow:"frame" -}); -Ext.grid.PropertyRecord = Ext.data.Record.create([ - {name:'name',type:'string'}, 'value' -]); - -Ext.grid.PropertyStore = function(grid, source){ - this.grid = grid; - this.store = new Ext.data.Store({ - recordType : Ext.grid.PropertyRecord - }); - this.store.on('update', this.onUpdate, this); - if(source){ - this.setSource(source); - } - Ext.grid.PropertyStore.superclass.constructor.call(this); -}; -Ext.extend(Ext.grid.PropertyStore, Ext.util.Observable, { - setSource : function(o){ - this.source = o; - this.store.removeAll(); - var data = []; - for(var k in o){ - if(this.isEditableValue(o[k])){ - data.push(new Ext.grid.PropertyRecord({name: k, value: o[k]}, k)); - } - } - this.store.loadRecords({records: data}, {}, true); - }, - - onUpdate : function(ds, record, type){ - if(type == Ext.data.Record.EDIT){ - var v = record.data['value']; - var oldValue = record.modified['value']; - if(this.grid.fireEvent('beforepropertychange', this.source, record.id, v, oldValue) !== false){ - this.source[record.id] = v; - record.commit(); - this.grid.fireEvent('propertychange', this.source, record.id, v, oldValue); - }else{ - record.reject(); - } - } - }, - - getProperty : function(row){ - return this.store.getAt(row); - }, - - isEditableValue: function(val){ - if(val && val instanceof Date){ - return true; - }else if(typeof val == 'object' || typeof val == 'function'){ - return false; - } - return true; - }, - - setValue : function(prop, value){ - this.source[prop] = value; - this.store.getById(prop).set('value', value); - }, - - getSource : function(){ - return this.source; - } -}); - -Ext.grid.PropertyColumnModel = function(grid, store){ - this.grid = grid; - var g = Ext.grid; - g.PropertyColumnModel.superclass.constructor.call(this, [ - {header: this.nameText, sortable: true, dataIndex:'name', id: 'name'}, - {header: this.valueText, resizable:false, dataIndex: 'value', id: 'value'} - ]); - this.store = store; - this.bselect = Ext.DomHelper.append(document.body, { - tag: 'select', style:'display:none', cls: 'x-grid-editor', children: [ - {tag: 'option', value: 'true', html: 'true'}, - {tag: 'option', value: 'false', html: 'false'} - ] - }); - Ext.id(this.bselect); - var f = Ext.form; - this.editors = { - 'date' : new g.GridEditor(new f.DateField({selectOnFocus:true})), - 'string' : new g.GridEditor(new f.TextField({selectOnFocus:true})), - 'number' : new g.GridEditor(new f.NumberField({selectOnFocus:true, style:'text-align:left;'})), - 'boolean' : new g.GridEditor(new f.Field({el:this.beselect,selectOnFocus:true})) - }; - this.renderCellDelegate = this.renderCell.createDelegate(this); - this.renderPropDelegate = this.renderProp.createDelegate(this); -}; - -Ext.extend(Ext.grid.PropertyColumnModel, Ext.grid.ColumnModel, { - nameText : 'Name', - valueText : 'Value', - dateFormat : 'm/j/Y', - renderDate : function(dateVal){ - return dateVal.dateFormat(this.dateFormat); - }, - - renderBool : function(bVal){ - return bVal ? 'true' : 'false'; - }, - - isCellEditable : function(colIndex, rowIndex){ - return colIndex == 1; - }, - - getRenderer : function(col){ - return col == 1 ? - this.renderCellDelegate : this.renderPropDelegate; - }, - - renderProp : function(v){ - return this.getPropertyName(v); - }, - - renderCell : function(val){ - var rv = val; - if(val instanceof Date){ - rv = this.renderDate(val); - }else if(typeof val == 'boolean'){ - rv = this.renderBool(val); - } - return Ext.util.Format.htmlEncode(rv); - }, - - getPropertyName : function(name){ - var pn = this.grid.propertyNames; - return pn && pn[name] ? pn[name] : name; - }, - - getCellEditor : function(colIndex, rowIndex){ - var p = this.store.getProperty(rowIndex); - var n = p.data['name'], val = p.data['value']; - if(this.grid.customEditors[n]){ - return this.grid.customEditors[n]; - } - if(val instanceof Date){ - return this.editors['date']; - }else if(typeof val == 'number'){ - return this.editors['number']; - }else if(typeof val == 'boolean'){ - return this.editors['boolean']; - }else{ - return this.editors['string']; - } - } -}); - -Ext.grid.PropertyGrid = function(container, config){ - config = config || {}; - var store = new Ext.grid.PropertyStore(this); - this.store = store; - var cm = new Ext.grid.PropertyColumnModel(this, store); - store.store.sort('name', 'ASC'); - Ext.grid.PropertyGrid.superclass.constructor.call(this, container, Ext.apply({ - ds: store.store, - cm: cm, - enableColLock:false, - enableColumnMove:false, - stripeRows:false, - trackMouseOver: false, - clicksToEdit:1 - }, config)); - this.container.addClass('x-props-grid'); - this.lastEditRow = null; - this.on('columnresize', this.onColumnResize, this); - this.addEvents({ - beforepropertychange: true, - propertychange: true - }); - this.customEditors = this.customEditors || {}; -}; -Ext.extend(Ext.grid.PropertyGrid, Ext.grid.EditorGrid, { - render : function(){ - Ext.grid.PropertyGrid.superclass.render.call(this); - this.autoSize.defer(100, this); - }, - - autoSize : function(){ - Ext.grid.PropertyGrid.superclass.autoSize.call(this); - if(this.view){ - this.view.fitColumns(); - } - }, - - onColumnResize : function(){ - this.colModel.setColumnWidth(1, this.container.getWidth(true)-this.colModel.getColumnWidth(0)); - this.autoSize(); - }, - - setSource : function(source){ - this.store.setSource(source); - }, - - getSource : function(){ - return this.store.getSource(); - } -}); diff --git a/www/extras/extjs/package/grid/edit-grid.js b/www/extras/extjs/package/grid/edit-grid.js deleted file mode 100644 index 455b9b885..000000000 --- a/www/extras/extjs/package/grid/edit-grid.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.grid.EditorGrid=function(_1,_2){Ext.grid.EditorGrid.superclass.constructor.call(this,_1,_2);this.container.addClass("xedit-grid");if(!this.selModel){this.selModel=new Ext.grid.CellSelectionModel();}this.activeEditor=null;this.addEvents({"beforeedit":true,"afteredit":true,"validateedit":true});this.on("bodyscroll",this.stopEditing,this);this.on(this.clicksToEdit==1?"cellclick":"celldblclick",this.onCellDblClick,this);};Ext.extend(Ext.grid.EditorGrid,Ext.grid.Grid,{isEditor:true,clicksToEdit:2,trackMouseOver:false,onCellDblClick:function(g,_4,_5){this.startEditing(_4,_5);},onEditComplete:function(ed,_7,_8){this.editing=false;this.activeEditor=null;ed.un("specialkey",this.selModel.onEditorKey,this.selModel);if(String(_7)!=String(_8)){var r=ed.record;var _a=this.colModel.getDataIndex(ed.col);var e={grid:this,record:r,field:_a,originalValue:_8,value:_7,row:ed.row,column:ed.col,cancel:false};if(this.fireEvent("validateedit",e)!==false&&!e.cancel){r.set(_a,e.value);delete e.cancel;this.fireEvent("afteredit",e);}}this.view.focusCell(ed.row,ed.col);},startEditing:function(_c,_d){this.stopEditing();if(this.colModel.isCellEditable(_d,_c)){this.view.focusCell(_c,_d);var r=this.dataSource.getAt(_c);var _f=this.colModel.getDataIndex(_d);var e={grid:this,record:r,field:_f,value:r.data[_f],row:_c,column:_d,cancel:false};if(this.fireEvent("beforeedit",e)!==false&&!e.cancel){this.editing=true;(function(){var ed=this.colModel.getCellEditor(_d,_c);ed.row=_c;ed.col=_d;ed.record=r;ed.on("complete",this.onEditComplete,this,{single:true});ed.on("specialkey",this.selModel.onEditorKey,this.selModel);this.activeEditor=ed;var v=r.data[_f];ed.startEdit(this.view.getCell(_c,_d),v);}).defer(50,this);}}},stopEditing:function(){if(this.activeEditor){this.activeEditor.completeEdit();}this.activeEditor=null;}}); - -Ext.grid.GridEditor=function(_1,_2){Ext.grid.GridEditor.superclass.constructor.call(this,_1,_2);_1.monitorTab=false;};Ext.extend(Ext.grid.GridEditor,Ext.Editor,{alignment:"tl-tl",autoSize:"width",hideEl:false,cls:"x-small-editor x-grid-editor",shim:false,shadow:"frame"}); - -Ext.grid.PropertyRecord=Ext.data.Record.create([{name:"name",type:"string"},"value"]);Ext.grid.PropertyStore=function(_1,_2){this.grid=_1;this.store=new Ext.data.Store({recordType:Ext.grid.PropertyRecord});this.store.on("update",this.onUpdate,this);if(_2){this.setSource(_2);}Ext.grid.PropertyStore.superclass.constructor.call(this);};Ext.extend(Ext.grid.PropertyStore,Ext.util.Observable,{setSource:function(o){this.source=o;this.store.removeAll();var _4=[];for(var k in o){if(this.isEditableValue(o[k])){_4.push(new Ext.grid.PropertyRecord({name:k,value:o[k]},k));}}this.store.loadRecords({records:_4},{},true);},onUpdate:function(ds,_7,_8){if(_8==Ext.data.Record.EDIT){var v=_7.data["value"];var _a=_7.modified["value"];if(this.grid.fireEvent("beforepropertychange",this.source,_7.id,v,_a)!==false){this.source[_7.id]=v;_7.commit();this.grid.fireEvent("propertychange",this.source,_7.id,v,_a);}else{_7.reject();}}},getProperty:function(_b){return this.store.getAt(_b);},isEditableValue:function(_c){if(_c&&_c instanceof Date){return true;}else{if(typeof _c=="object"||typeof _c=="function"){return false;}}return true;},setValue:function(_d,_e){this.source[_d]=_e;this.store.getById(_d).set("value",_e);},getSource:function(){return this.source;}});Ext.grid.PropertyColumnModel=function(_f,_10){this.grid=_f;var g=Ext.grid;g.PropertyColumnModel.superclass.constructor.call(this,[{header:this.nameText,sortable:true,dataIndex:"name",id:"name"},{header:this.valueText,resizable:false,dataIndex:"value",id:"value"}]);this.store=_10;this.bselect=Ext.DomHelper.append(document.body,{tag:"select",style:"display:none",cls:"x-grid-editor",children:[{tag:"option",value:"true",html:"true"},{tag:"option",value:"false",html:"false"}]});Ext.id(this.bselect);var f=Ext.form;this.editors={"date":new g.GridEditor(new f.DateField({selectOnFocus:true})),"string":new g.GridEditor(new f.TextField({selectOnFocus:true})),"number":new g.GridEditor(new f.NumberField({selectOnFocus:true,style:"text-align:left;"})),"boolean":new g.GridEditor(new f.Field({el:this.beselect,selectOnFocus:true}))};this.renderCellDelegate=this.renderCell.createDelegate(this);this.renderPropDelegate=this.renderProp.createDelegate(this);};Ext.extend(Ext.grid.PropertyColumnModel,Ext.grid.ColumnModel,{nameText:"Name",valueText:"Value",dateFormat:"m/j/Y",renderDate:function(_13){return _13.dateFormat(this.dateFormat);},renderBool:function(_14){return _14?"true":"false";},isCellEditable:function(_15,_16){return _15==1;},getRenderer:function(col){return col==1?this.renderCellDelegate:this.renderPropDelegate;},renderProp:function(v){return this.getPropertyName(v);},renderCell:function(val){var rv=val;if(val instanceof Date){rv=this.renderDate(val);}else{if(typeof val=="boolean"){rv=this.renderBool(val);}}return Ext.util.Format.htmlEncode(rv);},getPropertyName:function(_1b){var pn=this.grid.propertyNames;return pn&&pn[_1b]?pn[_1b]:_1b;},getCellEditor:function(_1d,_1e){var p=this.store.getProperty(_1e);var n=p.data["name"],val=p.data["value"];if(this.grid.customEditors[n]){return this.grid.customEditors[n];}if(val instanceof Date){return this.editors["date"];}else{if(typeof val=="number"){return this.editors["number"];}else{if(typeof val=="boolean"){return this.editors["boolean"];}else{return this.editors["string"];}}}}});Ext.grid.PropertyGrid=function(_22,_23){_23=_23||{};var _24=new Ext.grid.PropertyStore(this);this.store=_24;var cm=new Ext.grid.PropertyColumnModel(this,_24);_24.store.sort("name","ASC");Ext.grid.PropertyGrid.superclass.constructor.call(this,_22,Ext.apply({ds:_24.store,cm:cm,enableColLock:false,enableColumnMove:false,stripeRows:false,trackMouseOver:false,clicksToEdit:1},_23));this.container.addClass("x-props-grid");this.lastEditRow=null;this.on("columnresize",this.onColumnResize,this);this.addEvents({beforepropertychange:true,propertychange:true});this.customEditors=this.customEditors||{};};Ext.extend(Ext.grid.PropertyGrid,Ext.grid.EditorGrid,{render:function(){Ext.grid.PropertyGrid.superclass.render.call(this);this.autoSize.defer(100,this);},autoSize:function(){Ext.grid.PropertyGrid.superclass.autoSize.call(this);if(this.view){this.view.fitColumns();}},onColumnResize:function(){this.colModel.setColumnWidth(1,this.container.getWidth(true)-this.colModel.getColumnWidth(0));this.autoSize();},setSource:function(_26){this.store.setSource(_26);},getSource:function(){return this.store.getSource();}}); - diff --git a/www/extras/extjs/package/grid/grid.js b/www/extras/extjs/package/grid/grid.js deleted file mode 100644 index 5a921fafb..000000000 --- a/www/extras/extjs/package/grid/grid.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.grid.Grid=function(_1,_2){this.container=Ext.get(_1);this.container.update("");this.container.setStyle("overflow","hidden");this.container.addClass("x-grid-container");this.id=this.container.id;Ext.apply(this,_2);if(this.ds){this.dataSource=this.ds;delete this.ds;}if(this.cm){this.colModel=this.cm;delete this.cm;}if(this.sm){this.selModel=this.sm;delete this.sm;}if(this.width){this.container.setWidth(this.width);}if(this.height){this.container.setHeight(this.height);}this.addEvents({"click":true,"dblclick":true,"contextmenu":true,"mousedown":true,"mouseup":true,"mouseover":true,"mouseout":true,"keypress":true,"keydown":true,"cellclick":true,"celldblclick":true,"rowclick":true,"rowdblclick":true,"headerclick":true,"headerdblclick":true,"rowcontextmenu":true,"cellcontextmenu":true,"headercontextmenu":true,"bodyscroll":true,"columnresize":true,"columnmove":true,"startdrag":true,"enddrag":true,"dragdrop":true,"dragover":true,"dragenter":true,"dragout":true});Ext.grid.Grid.superclass.constructor.call(this);};Ext.extend(Ext.grid.Grid,Ext.util.Observable,{minColumnWidth:25,autoSizeColumns:false,autoSizeHeaders:true,monitorWindowResize:true,maxRowsToMeasure:0,trackMouseOver:true,enableDragDrop:false,enableColumnMove:true,enableColumnHide:true,enableRowHeightSync:false,stripeRows:true,autoHeight:false,autoExpandColumn:false,autoExpandMin:50,autoExpandMax:1000,view:null,allowTextSelectionPattern:/INPUT|TEXTAREA|SELECT/i,loadMask:false,rendered:false,render:function(){var c=this.container;if((!c.dom.offsetHeight||c.dom.offsetHeight<20)||c.getStyle("height")=="auto"){this.autoHeight=true;}var _4=this.getView();_4.init(this);c.on("click",this.onClick,this);c.on("dblclick",this.onDblClick,this);c.on("contextmenu",this.onContextMenu,this);c.on("keydown",this.onKeyDown,this);this.relayEvents(c,["mousedown","mouseup","mouseover","mouseout","keypress"]);this.getSelectionModel().init(this);_4.render();if(this.loadMask){this.loadMask=new Ext.LoadMask(this.container,Ext.apply({store:this.dataSource},this.loadMask));}this.rendered=true;return this;},reconfigure:function(_5,_6){if(this.loadMask){this.loadMask.destroy();this.loadMask=new Ext.LoadMask(this.container,Ext.apply({store:_5},this.loadMask));}this.view.bind(_5,_6);this.dataSource=_5;this.colModel=_6;this.view.refresh(true);},onKeyDown:function(e){this.fireEvent("keydown",e);},destroy:function(_8,_9){if(this.loadMask){this.loadMask.destroy();}var c=this.container;c.removeAllListeners();this.view.destroy();this.colModel.purgeListeners();if(!_9){this.purgeListeners();}c.update("");if(_8===true){c.remove();}},processEvent:function(_b,e){this.fireEvent(_b,e);var t=e.getTarget();var v=this.view;var _f=v.findHeaderIndex(t);if(_f!==false){this.fireEvent("header"+_b,this,_f,e);}else{var row=v.findRowIndex(t);var _11=v.findCellIndex(t);if(row!==false){this.fireEvent("row"+_b,this,row,e);if(_11!==false){this.fireEvent("cell"+_b,this,row,_11,e);}}}},onClick:function(e){this.processEvent("click",e);},onContextMenu:function(e,t){this.processEvent("contextmenu",e);},onDblClick:function(e){this.processEvent("dblclick",e);},walkCells:function(row,col,_18,fn,_1a){var cm=this.colModel,_1c=cm.getColumnCount();var ds=this.dataSource,_1e=ds.getCount(),_1f=true;if(_18<0){if(col<0){row--;_1f=false;}while(row>=0){if(!_1f){col=_1c-1;}_1f=false;while(col>=0){if(fn.call(_1a||this,row,col,cm)===true){return [row,col];}col--;}row--;}}else{if(col>=_1c){row++;_1f=false;}while(row<_1e){if(!_1f){col=0;}_1f=false;while(col<_1c){if(fn.call(_1a||this,row,col,cm)===true){return [row,col];}col++;}row++;}}return null;},getSelections:function(){return this.selModel.getSelections();},autoSize:function(){if(this.rendered){this.view.layout();if(this.view.adjustForScroll){this.view.adjustForScroll();}}},stopEditing:function(){},getSelectionModel:function(){if(!this.selModel){this.selModel=new Ext.grid.RowSelectionModel();}return this.selModel;},getDataSource:function(){return this.dataSource;},getColumnModel:function(){return this.colModel;},getView:function(){if(!this.view){this.view=new Ext.grid.GridView();}return this.view;},getDragDropText:function(){var _20=this.selModel.getCount();return String.format(this.ddText,_20,_20==1?"":"s");}});Ext.grid.Grid.prototype.ddText="{0} selected row{1}"; - -Ext.grid.AbstractGridView=function(){this.grid=null;this.events={"beforerowremoved":true,"beforerowsinserted":true,"beforerefresh":true,"rowremoved":true,"rowsinserted":true,"rowupdated":true,"refresh":true};Ext.grid.AbstractGridView.superclass.constructor.call(this);};Ext.extend(Ext.grid.AbstractGridView,Ext.util.Observable,{rowClass:"x-grid-row",cellClass:"x-grid-cell",tdClass:"x-grid-td",hdClass:"x-grid-hd",splitClass:"x-grid-hd-split",init:function(_1){this.grid=_1;var _2=this.grid.container.id;this.colSelector="#"+_2+" ."+this.cellClass+"-";this.tdSelector="#"+_2+" ."+this.tdClass+"-";this.hdSelector="#"+_2+" ."+this.hdClass+"-";this.splitSelector="#"+_2+" ."+this.splitClass+"-";},getColumnRenderers:function(){var _3=[];var cm=this.grid.colModel;var _5=cm.getColumnCount();for(var i=0;i<_5;i++){_3[i]=cm.getRenderer(i);}return _3;},getColumnIds:function(){var _7=[];var cm=this.grid.colModel;var _9=cm.getColumnCount();for(var i=0;i<_9;i++){_7[i]=cm.getColumnId(i);}return _7;},getDataIndexes:function(){if(!this.indexMap){this.indexMap=this.buildIndexMap();}return this.indexMap.colToData;},getColumnIndexByDataIndex:function(_b){if(!this.indexMap){this.indexMap=this.buildIndexMap();}return this.indexMap.dataToCol[_b];},setCSSStyle:function(_c,_d,_e){var _f="#"+this.grid.id+" .x-grid-col-"+_c;Ext.util.CSS.updateRule(_f,_d,_e);},generateRules:function(cm){var _11=[];for(var i=0,len=cm.getColumnCount();i","
      ","
      ","
      ","
      {lockedHeader}
      ","
      {lockedBody}
      ","
      ","
      ","
      {header}
      ","
      {body}
      ","
      ","
      ","","
       
      ","");_5.master.disableformats=true;}if(!_5.header){_5.header=new Ext.Template("","{cells}","
      {splits}");_5.header.disableformats=true;}_5.header.compile();if(!_5.hcell){_5.hcell=new Ext.Template("
      ","
      {value}
      ","
      ");_5.hcell.disableFormats=true;}_5.hcell.compile();if(!_5.hsplit){_5.hsplit=new Ext.Template("
       
      ");_5.hsplit.disableFormats=true;}_5.hsplit.compile();if(!_5.body){_5.body=new Ext.Template("","{rows}","
      ");_5.body.disableFormats=true;}_5.body.compile();if(!_5.row){_5.row=new Ext.Template("{cells}");_5.row.disableFormats=true;}_5.row.compile();if(!_5.cell){_5.cell=new Ext.Template("","
      {value}
      ","");_5.cell.disableFormats=true;}_5.cell.compile();this.templates=_5;},onColWidthChange:function(){this.updateColumns.apply(this,arguments);},onHeaderChange:function(){this.updateHeaders.apply(this,arguments);},onHiddenChange:function(){this.handleHiddenChange.apply(this,arguments);},onColumnMove:function(){this.handleColumnMove.apply(this,arguments);},onColumnLock:function(){this.handleLockChange.apply(this,arguments);},onDataChange:function(){this.refresh();this.updateHeaderSortState();},onClear:function(){this.refresh();},onUpdate:function(ds,_7){this.refreshRow(_7);},refreshRow:function(_8){var ds=this.ds,_a;if(typeof _8=="number"){_a=_8;_8=ds.getAt(_a);}else{_a=ds.indexOf(_8);}var _b=this.getRowComposite(_a);var _c=[];this.insertRows(ds,_a,_a,true);this.onRemove(ds,_8,_a+1,true);this.syncRowHeights(_a,_a);this.layout();this.fireEvent("rowupdated",this,_a,_8);},onAdd:function(ds,_e,_f){this.insertRows(ds,_f,_f+(_e.length-1));},onRemove:function(ds,_11,_12,_13){if(_13!==true){this.fireEvent("beforerowremoved",this,_12,_11);}var bt=this.getBodyTable(),lt=this.getLockedTable();if(bt.rows[_12]){bt.firstChild.removeChild(bt.rows[_12]);}if(lt.rows[_12]){lt.firstChild.removeChild(lt.rows[_12]);}if(_13!==true){this.stripeRows(_12);this.syncRowHeights(_12,_12);this.layout();this.fireEvent("rowremoved",this,_12,_11);}},onLoad:function(){this.scrollToTop();},scrollToTop:function(){if(this.scroller){this.scroller.dom.scrollTop=0;this.syncScroll();}},getHeaderPanel:function(_16){if(_16){this.headerPanel.show();}return this.headerPanel;},getFooterPanel:function(_17){if(_17){this.footerPanel.show();}return this.footerPanel;},initElements:function(){var E=Ext.Element;var el=this.grid.container.dom.firstChild;var cs=el.childNodes;this.el=new E(el);this.headerPanel=new E(el.firstChild);this.headerPanel.enableDisplayMode("block");this.scroller=new E(cs[1]);this.scrollSizer=new E(this.scroller.dom.firstChild);this.lockedWrap=new E(cs[2]);this.lockedHd=new E(this.lockedWrap.dom.firstChild);this.lockedBody=new E(this.lockedWrap.dom.childNodes[1]);this.mainWrap=new E(cs[3]);this.mainHd=new E(this.mainWrap.dom.firstChild);this.mainBody=new E(this.mainWrap.dom.childNodes[1]);this.footerPanel=new E(cs[4]);this.footerPanel.enableDisplayMode("block");this.focusEl=new E(cs[5]);this.focusEl.swallowEvent("click",true);this.resizeProxy=new E(cs[6]);this.headerSelector=String.format("#{0} td.x-grid-hd, #{1} td.x-grid-hd",this.lockedHd.id,this.mainHd.id);this.splitterSelector=String.format("#{0} div.x-grid-split, #{1} div.x-grid-split",this.lockedHd.id,this.mainHd.id);},getHeaderCell:function(_1b){return Ext.DomQuery.select(this.headerSelector)[_1b];},getHeaderCellMeasure:function(_1c){return this.getHeaderCell(_1c).firstChild;},getHeaderCellText:function(_1d){return this.getHeaderCell(_1d).firstChild.firstChild;},getLockedTable:function(){return this.lockedBody.dom.firstChild;},getBodyTable:function(){return this.mainBody.dom.firstChild;},getLockedRow:function(_1e){return this.getLockedTable().rows[_1e];},getRow:function(_1f){return this.getBodyTable().rows[_1f];},getRowComposite:function(_20){if(!this.rowEl){this.rowEl=new Ext.CompositeElementLite();}var els=[],_22,_23;if(_22=this.getLockedRow(_20)){els.push(_22);}if(_23=this.getRow(_20)){els.push(_23);}this.rowEl.elements=els;return this.rowEl;},getCell:function(_24,_25){var _26=this.cm.getLockedCount();var _27;if(_25<_26){_27=this.lockedBody.dom.firstChild;}else{_27=this.mainBody.dom.firstChild;_25-=_26;}return _27.rows[_24].childNodes[_25];},getCellText:function(_28,_29){return this.getCell(_28,_29).firstChild.firstChild;},getCellBox:function(_2a){var b=this.fly(_2a).getBox();if(Ext.isOpera){b.y=_2a.offsetTop+this.mainBody.getY();}return b;},getCellIndex:function(_2c){var id=String(_2c.className).match(this.cellRE);if(id){return parseInt(id[1],10);}return 0;},findHeaderIndex:function(n){var r=Ext.fly(n).findParent("td."+this.hdClass,6);return r?this.getCellIndex(r):false;},findHeaderCell:function(n){var r=Ext.fly(n).findParent("td."+this.hdClass,6);return r?r:false;},findRowIndex:function(n){if(!n){return false;}var r=Ext.fly(n).findParent("tr."+this.rowClass,6);return r?r.rowIndex:false;},findCellIndex:function(_34){var _35=this.el.dom;while(_34&&_34!=_35){if(this.findRE.test(_34.className)){return this.getCellIndex(_34);}_34=_34.parentNode;}return false;},getColumnId:function(_36){return this.cm.getColumnId(_36);},getSplitters:function(){if(this.splitterSelector){return Ext.DomQuery.select(this.splitterSelector);}else{return null;}},getSplitter:function(_37){return this.getSplitters()[_37];},onRowOver:function(e,t){var row;if((row=this.findRowIndex(t))!==false){this.getRowComposite(row).addClass("x-grid-row-over");}},onRowOut:function(e,t){var row;if((row=this.findRowIndex(t))!==false&&row!==this.findRowIndex(e.getRelatedTarget())){this.getRowComposite(row).removeClass("x-grid-row-over");}},renderHeaders:function(){var cm=this.cm;var ct=this.templates.hcell,ht=this.templates.header,st=this.templates.hsplit;var cb=[],lb=[],sb=[],lsb=[],p={};for(var i=0,len=cm.getColumnCount();i=this.ds.getCount()){return;}col=(col!==undefined?col:0);var cm=this.grid.colModel;while(cm.isHidden(col)){col++;}var el=this.getCell(row,col);if(!el){return;}var c=this.scroller.dom;var _56=parseInt(el.offsetTop,10);var _57=parseInt(el.offsetLeft,10);var _58=_56+el.offsetHeight;var _59=_57+el.offsetWidth;var ch=c.clientHeight-this.mainHd.dom.offsetHeight;var _5b=parseInt(c.scrollTop,10);var _5c=parseInt(c.scrollLeft,10);var _5d=_5b+ch;var _5e=_5c+c.clientWidth;if(_56<_5b){c.scrollTop=_56;}else{if(_58>_5d){c.scrollTop=_58-ch;}}if(_52!==false){if(_57<_5c){c.scrollLeft=_57;}else{if(_59>_5e){c.scrollLeft=_59-c.clientWidth;}}}return el;},updateColumns:function(){this.grid.stopEditing();var cm=this.grid.colModel,_60=this.getColumnIds();var pos=0;for(var i=0,len=cm.getColumnCount();i"+_79+"";var _80=b.firstChild.rows;for(var i=0,len=_80.length;i0){_141=_141||0;var _143=this.getBodyTable().rows;var _144=this.getLockedTable().rows;var len=_143.length-1;_142=Math.min(_142||len,len);for(var i=_141;i<=_142;i++){var m=_143[i],l=_144[i];var h=Math.max(m.offsetHeight,l.offsetHeight);m.style.height=l.style.height=h+"px";}}},layout:function(_14a,_14b){var g=this.grid;var auto=g.autoHeight;var _14e=16;var c=g.container,cm=this.cm,_151=g.autoExpandColumn,gv=this;if(!c.dom.offsetWidth){if(_14a){this.lockedWrap.show();this.mainWrap.show();}return;}var _153=this.cm.isLocked(0);var tbh=this.headerPanel.getHeight();var bbh=this.footerPanel.getHeight();if(auto){var ch=this.getBodyTable().offsetHeight+tbh+bbh+this.mainHd.getHeight();var _157=ch+c.getBorderWidth("tb");if(g.maxHeight){_157=Math.min(g.maxHeight,_157);}c.setHeight(_157);}if(g.autoWidth){c.setWidth(cm.getTotalWidth()+c.getBorderWidth("lr"));}var s=this.scroller;var _159=c.getSize(true);this.el.setSize(_159.width,_159.height);this.headerPanel.setWidth(_159.width);this.footerPanel.setWidth(_159.width);var _15a=this.mainHd.getHeight();var vw=_159.width;var vh=_159.height-(tbh+bbh);s.setSize(vw,vh);var bt=this.getBodyTable();var _15e=_153?Math.max(this.getLockedTable().offsetWidth,this.lockedHd.dom.firstChild.offsetWidth):0;var _15f=bt.offsetHeight;var _160=_15e+bt.offsetWidth;var _161=false,_162=false;this.scrollSizer.setSize(_160,_15f+_15a);var lw=this.lockedWrap,mw=this.mainWrap;var lb=this.lockedBody,mb=this.mainBody;setTimeout(function(){var t=s.dom.offsetTop;var w=s.dom.clientWidth,h=s.dom.clientHeight;lw.setTop(t);lw.setSize(_15e,h);mw.setLeftTop(_15e,t);mw.setSize(w-_15e,h);lb.setHeight(h-_15a);mb.setHeight(h-_15a);if(_14b!==true&&!gv.userResized&&_151){var ci=cm.getIndexById(_151);var tw=cm.getTotalWidth(false);var _16c=cm.getColumnWidth(ci);var cw=Math.min(Math.max(((w-tw)+_16c-2)-(w<=s.dom.offsetWidth?0:18),g.autoExpandMin),g.autoExpandMax);if(_16c!=cw){cm.setColumnWidth(ci,cw,true);gv.css.updateRule(gv.colSelector+_151,"width",(cw-gv.borderWidth)+"px");gv.css.updateRule(gv.hdSelector+_151,"width",(cw-gv.borderWidth)+"px");gv.updateSplitters();gv.layout(false,true);}}if(_14a){lw.show();mw.show();}},10);},onWindowResize:function(){if(!this.grid.monitorWindowResize||this.grid.autoHeight){return;}this.layout();},appendFooter:function(_16e){return null;},sortAscText:"Sort Ascending",sortDescText:"Sort Descending",lockText:"Lock Column",unlockText:"Unlock Column",columnsText:"Columns"}); - -Ext.grid.ColumnModel=function(_1){Ext.grid.ColumnModel.superclass.constructor.call(this);this.config=_1;this.lookup={};for(var i=0,_3=_1.length;i<_3;i++){if(typeof _1[i].dataIndex=="undefined"){_1[i].dataIndex=i;}if(typeof _1[i].renderer=="string"){_1[i].renderer=Ext.util.Format[_1[i].renderer];}if(typeof _1[i].id=="undefined"){_1[i].id=i;}this.lookup[_1[i].id]=_1[i];}this.defaultWidth=100;this.defaultSortable=false;this.addEvents({"widthchange":true,"headerchange":true,"hiddenchange":true,"columnmoved":true,"columnlockchange":true});Ext.grid.ColumnModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.ColumnModel,Ext.util.Observable,{getColumnId:function(_4){return this.config[_4].id;},getColumnById:function(id){return this.lookup[id];},getIndexById:function(id){for(var i=0,_8=this.config.length;i<_8;i++){if(this.config[i].id==id){return i;}}return -1;},moveColumn:function(_9,_a){var c=this.config[_9];this.config.splice(_9,1);this.config.splice(_a,0,c);this.dataMap=null;this.fireEvent("columnmoved",this,_9,_a);},isLocked:function(_c){return this.config[_c].locked===true;},setLocked:function(_d,_e,_f){if(this.isLocked(_d)==_e){return;}this.config[_d].locked=_e;if(!_f){this.fireEvent("columnlockchange",this,_d,_e);}},getTotalLockedWidth:function(){var _10=0;for(var i=0;i0;},isSelected:function(_21){var r=typeof _21=="number"?this.grid.dataSource.getAt(_21):_21;return (r&&this.selections.key(r.id)?true:false);},isIdSelected:function(id){return (this.selections.key(id)?true:false);},handleMouseDown:function(e,t){var _26=this.grid.getView(),_27;if(this.isLocked()||(_27=_26.findRowIndex(t))===false){return;}if(e.shiftKey&&this.last!==false){var _28=this.last;this.selectRange(_28,_27,e.ctrlKey);this.last=_28;_26.focusRow(_27);}else{var _29=this.isSelected(_27);if(e.button!=0&&_29){_26.focusRow(_27);}else{if(e.ctrlKey&&_29){this.deselectRow(_27);}else{this.selectRow(_27,e.button==0&&(e.ctrlKey||e.shiftKey));_26.focusRow(_27);}}}},selectRows:function(_2a,_2b){if(!_2b){this.clearSelections();}for(var i=0,len=_2a.length;i=_2f;i--){this.selectRow(i,true);}}},deselectRange:function(_32,_33,_34){if(this.locked){return;}for(var i=_32;i<=_33;i++){this.deselectRow(i,_34);}},selectRow:function(_36,_37,_38){if(this.locked||(_36<0||_36>=this.grid.dataSource.getCount())){return;}if(this.fireEvent("beforerowselect",this,_36,_37)!==false){if(!_37||this.singleSelect){this.clearSelections();}var r=this.grid.dataSource.getAt(_36);this.selections.add(r);this.last=this.lastActive=_36;if(!_38){this.grid.getView().onRowSelect(_36);}this.fireEvent("rowselect",this,_36,r);this.fireEvent("selectionchange",this);}},deselectRow:function(_3a,_3b){if(this.locked){return;}if(this.last==_3a){this.last=false;}if(this.lastActive==_3a){this.lastActive=false;}var r=this.grid.dataSource.getAt(_3a);this.selections.remove(r);if(!_3b){this.grid.getView().onRowDeselect(_3a);}this.fireEvent("rowdeselect",this,_3a);this.fireEvent("selectionchange",this);},restoreLast:function(){if(this._last){this.last=this._last;}},acceptsNav:function(row,col,cm){return !cm.isHidden(col)&&cm.isCellEditable(col,row);},onEditorKey:function(_40,e){var k=e.getKey(),_43,g=this.grid,ed=g.activeEditor;if(k==e.TAB){ed.completeEdit();if(e.shiftKey){_43=g.walkCells(ed.row,ed.col-1,-1,this.acceptsNav,this);}else{_43=g.walkCells(ed.row,ed.col+1,1,this.acceptsNav,this);}e.stopEvent();}else{if(k==e.ENTER&&!e.ctrlKey){ed.completeEdit();if(e.shiftKey){_43=g.walkCells(ed.row-1,ed.col,-1,this.acceptsNav,this);}else{_43=g.walkCells(ed.row+1,ed.col,1,this.acceptsNav,this);}e.stopEvent();}else{if(k==e.ESC){ed.cancelEdit();}}}if(_43){g.startEditing(_43[0],_43[1]);}}}); - -Ext.grid.CellSelectionModel=function(_1){Ext.apply(this,_1);this.selection=null;this.addEvents({"beforecellselect":true,"cellselect":true,"selectionchange":true});};Ext.extend(Ext.grid.CellSelectionModel,Ext.grid.AbstractSelectionModel,{initEvents:function(){this.grid.on("mousedown",this.handleMouseDown,this);this.grid.container.on(Ext.isIE?"keydown":"keypress",this.handleKeyDown,this);var _2=this.grid.view;_2.on("refresh",this.onViewChange,this);_2.on("rowupdated",this.onRowUpdated,this);_2.on("beforerowremoved",this.clearSelections,this);_2.on("beforerowsinserted",this.clearSelections,this);if(this.grid.isEditor){this.grid.on("beforeedit",this.beforeEdit,this);}},beforeEdit:function(e){this.select(e.row,e.column,false,true,e.record);},onRowUpdated:function(v,_5,r){if(this.selection&&this.selection.record==r){v.onCellSelect(_5,this.selection.cell[1]);}},onViewChange:function(){this.clearSelections(true);},getSelectedCell:function(){return this.selection?this.selection.cell:null;},clearSelections:function(_7){var s=this.selection;if(s){if(_7!==true){this.grid.view.onCellDeselect(s.cell[0],s.cell[1]);}this.selection=null;this.fireEvent("selectionchange",this,null);}},hasSelection:function(){return this.selection?true:false;},handleMouseDown:function(e,t){var v=this.grid.getView();if(this.isLocked()){return;}var _c=v.findRowIndex(t);var _d=v.findCellIndex(t);if(_c!==false&&_d!==false){this.select(_c,_d);}},select:function(_e,_f,_10,_11,r){if(this.fireEvent("beforecellselect",this,_e,_f)!==false){this.clearSelections();r=r||this.grid.dataSource.getAt(_e);this.selection={record:r,cell:[_e,_f]};if(!_10){var v=this.grid.getView();v.onCellSelect(_e,_f);if(_11!==true){v.focusCell(_e,_f);}}this.fireEvent("cellselect",this,_e,_f);this.fireEvent("selectionchange",this,this.selection);}},isSelectable:function(_14,_15,cm){return !cm.isHidden(_15);},handleKeyDown:function(e){if(!e.isNavKeyPress()){return;}var g=this.grid,s=this.selection;if(!s){e.stopEvent();var _1a=g.walkCells(0,0,1,this.isSelectable,this);if(_1a){this.select(_1a[0],_1a[1]);}return;}var sm=this;var _1c=function(row,col,_1f){return g.walkCells(row,col,_1f,sm.isSelectable,sm);};var k=e.getKey(),r=s.cell[0],c=s.cell[1];var _23;switch(k){case e.TAB:if(e.shiftKey){_23=_1c(r,c-1,-1);}else{_23=_1c(r,c+1,1);}break;case e.DOWN:_23=_1c(r+1,c,1);break;case e.UP:_23=_1c(r-1,c,-1);break;case e.RIGHT:_23=_1c(r,c+1,1);break;case e.LEFT:_23=_1c(r,c-1,-1);break;case e.ENTER:if(g.isEditor&&!g.editing){g.startEditing(r,c);e.stopEvent();return;}break;}if(_23){this.select(_23[0],_23[1]);e.stopEvent();}},acceptsNav:function(row,col,cm){return !cm.isHidden(col)&&cm.isCellEditable(col,row);},onEditorKey:function(_27,e){var k=e.getKey(),_2a,g=this.grid,ed=g.activeEditor;if(k==e.TAB){if(e.shiftKey){_2a=g.walkCells(ed.row,ed.col-1,-1,this.acceptsNav,this);}else{_2a=g.walkCells(ed.row,ed.col+1,1,this.acceptsNav,this);}e.stopEvent();}else{if(k==e.ENTER&&!e.ctrlKey){ed.completeEdit();e.stopEvent();}else{if(k==e.ESC){ed.cancelEdit();}}}if(_2a){g.startEditing(_2a[0],_2a[1]);}}}); - -Ext.grid.HeaderDragZone=function(_1,hd,_3){this.grid=_1;this.view=_1.getView();this.ddGroup="gridHeader"+this.grid.container.id;Ext.grid.HeaderDragZone.superclass.constructor.call(this,hd);if(_3){this.setHandleElId(Ext.id(hd));this.setOuterHandleElId(Ext.id(_3));}this.scroll=false;};Ext.extend(Ext.grid.HeaderDragZone,Ext.dd.DragZone,{maxDragWidth:120,getDragData:function(e){var t=Ext.lib.Event.getTarget(e);var h=this.view.findHeaderCell(t);if(h){return {ddel:h.firstChild,header:h};}return false;},onInitDrag:function(e){this.view.headersDisabled=true;var _8=this.dragData.ddel.cloneNode(true);_8.style.width=Math.min(this.dragData.header.offsetWidth,this.maxDragWidth)+"px";this.proxy.update(_8);return true;},afterValidDrop:function(){var v=this.view;setTimeout(function(){v.headersDisabled=false;},50);},afterInvalidDrop:function(){var v=this.view;setTimeout(function(){v.headersDisabled=false;},50);}});Ext.grid.HeaderDropZone=function(_b,hd,_d){this.grid=_b;this.view=_b.getView();this.proxyTop=Ext.DomHelper.append(document.body,{tag:"div",cls:"col-move-top",html:" "},true);this.proxyBottom=Ext.DomHelper.append(document.body,{tag:"div",cls:"col-move-bottom",html:" "},true);this.proxyTop.hide=this.proxyBottom.hide=function(){this.setLeftTop(-100,-100);this.setStyle("visibility","hidden");};this.ddGroup="gridHeader"+this.grid.container.id;Ext.grid.HeaderDropZone.superclass.constructor.call(this,_b.container.dom);};Ext.extend(Ext.grid.HeaderDropZone,Ext.dd.DropZone,{proxyOffsets:[-4,-9],fly:Ext.Element.fly,getTargetFromEvent:function(e){var t=Ext.lib.Event.getTarget(e);var _10=this.view.findCellIndex(t);if(_10!==false){return this.view.getHeaderCell(_10);}},nextVisible:function(h){var v=this.view,cm=this.grid.colModel;h=h.nextSibling;while(h){if(!cm.isHidden(v.getCellIndex(h))){return h;}h=h.nextSibling;}return null;},prevVisible:function(h){var v=this.view,cm=this.grid.colModel;h=h.prevSibling;while(h){if(!cm.isHidden(v.getCellIndex(h))){return h;}h=h.prevSibling;}return null;},positionIndicator:function(h,n,e){var x=Ext.lib.Event.getPageX(e);var r=Ext.lib.Dom.getRegion(n.firstChild);var px,pt,py=r.top+this.proxyOffsets[1];if((r.right-x)<=(r.right-r.left)/2){px=r.right+this.view.borderWidth;pt="after";}else{px=r.left;pt="before";}var _1f=this.view.getCellIndex(h);var _20=this.view.getCellIndex(n);var _21=this.grid.colModel.isLocked(_20);if(pt=="after"){_20++;}if(_1f<_20){_20--;}if(_1f==_20&&(_21==this.grid.colModel.isLocked(_1f))){return false;}px+=this.proxyOffsets[0];this.proxyTop.setLeftTop(px,py);this.proxyTop.show();if(!this.bottomOffset){this.bottomOffset=this.view.mainHd.getHeight();}this.proxyBottom.setLeftTop(px,py+this.proxyTop.dom.offsetHeight+this.bottomOffset);this.proxyBottom.show();return pt;},onNodeEnter:function(n,dd,e,_25){if(_25.header!=n){this.positionIndicator(_25.header,n,e);}},onNodeOver:function(n,dd,e,_29){var _2a=false;if(_29.header!=n){_2a=this.positionIndicator(_29.header,n,e);}if(!_2a){this.proxyTop.hide();this.proxyBottom.hide();}return _2a?this.dropAllowed:this.dropNotAllowed;},onNodeOut:function(n,dd,e,_2e){this.proxyTop.hide();this.proxyBottom.hide();},onNodeDrop:function(n,dd,e,_32){var h=_32.header;if(h!=n){var cm=this.grid.colModel;var x=Ext.lib.Event.getPageX(e);var r=Ext.lib.Dom.getRegion(n.firstChild);var pt=(r.right-x)<=((r.right-r.left)/2)?"after":"before";var _38=this.view.getCellIndex(h);var _39=this.view.getCellIndex(n);var _3a=cm.isLocked(_39);if(pt=="after"){_39++;}if(_38<_39){_39--;}if(_38==_39&&(_3a==cm.isLocked(_38))){return false;}cm.setLocked(_38,_3a,true);cm.moveColumn(_38,_39);this.grid.fireEvent("columnmove",_38,_39);return true;}return false;}}); - -Ext.grid.SplitDragZone=function(_1,hd,_3){this.grid=_1;this.view=_1.getView();this.proxy=this.view.resizeProxy;Ext.grid.SplitDragZone.superclass.constructor.call(this,hd,"gridSplitters"+this.grid.container.id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.setHandleElId(Ext.id(hd));this.setOuterHandleElId(Ext.id(_3));this.scroll=false;};Ext.extend(Ext.grid.SplitDragZone,Ext.dd.DDProxy,{fly:Ext.Element.fly,b4StartDrag:function(x,y){this.view.headersDisabled=true;this.proxy.setHeight(this.view.mainWrap.getHeight());var w=this.cm.getColumnWidth(this.cellIndex);var _7=Math.max(w-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(_7,1000);this.setYConstraint(0,0);this.minX=x-_7;this.maxX=x+1000;this.startPos=x;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,x,y);},handleMouseDown:function(e){ev=Ext.EventObject.setEvent(e);var t=this.fly(ev.getTarget());if(t.hasClass("x-grid-split")){this.cellIndex=this.view.getCellIndex(t.dom);this.split=t.dom;this.cm=this.grid.colModel;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex)){Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this,arguments);}}},endDrag:function(e){this.view.headersDisabled=false;var _b=Math.max(this.minX,Ext.lib.Event.getPageX(e));var _c=_b-this.startPos;this.view.onColumnSplitterMoved(this.cellIndex,this.cm.getColumnWidth(this.cellIndex)+_c);},autoOffset:function(){this.setDelta(0,0);}}); - -Ext.grid.GridDragZone=function(_1,_2){this.view=_1.getView();Ext.grid.GridDragZone.superclass.constructor.call(this,this.view.lockedBody.dom,_2);this.setHandleElId(Ext.id(this.view.lockedBody.dom));this.setOuterHandleElId(Ext.id(this.view.mainBody.dom));this.scroll=false;this.grid=_1;this.ddel=document.createElement("div");this.ddel.className="x-grid-dd-wrap";};Ext.extend(Ext.grid.GridDragZone,Ext.dd.DragZone,{ddGroup:"GridDD",getDragData:function(e){var t=Ext.lib.Event.getTarget(e);var _5=this.view.findRowIndex(t);if(_5!==false){var sm=this.grid.selModel;if(!sm.isSelected(_5)||e.hasModifier()){sm.handleMouseDown(e,t);}return {grid:this.grid,ddel:this.ddel,rowIndex:_5,selections:sm.getSelections()};}return false;},onInitDrag:function(e){var _8=this.dragData;this.ddel.innerHTML=this.grid.getDragDropText();this.proxy.update(this.ddel);},afterRepair:function(){this.dragging=false;},getRepairXY:function(e,_a){return false;},onEndDrag:function(_b,e){},onValidDrop:function(dd,e,id){this.hideProxy();},beforeInvalidDrop:function(e,id){}}); - diff --git a/www/extras/extjs/package/layout/layout-debug.js b/www/extras/extjs/package/layout/layout-debug.js deleted file mode 100644 index 249aa8b4e..000000000 --- a/www/extras/extjs/package/layout/layout-debug.js +++ /dev/null @@ -1,2032 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - - -Ext.LayoutManager = function(container, config){ - Ext.LayoutManager.superclass.constructor.call(this); - this.el = Ext.get(container); - - if(this.el.dom == document.body && Ext.isIE && !config.allowScroll){ - document.body.scroll = "no"; - }else if(this.el.dom != document.body && this.el.getStyle('position') == 'static'){ - this.el.position('relative'); - } - this.id = this.el.id; - this.el.addClass("x-layout-container"); - - this.monitorWindowResize = true; - this.regions = {}; - this.addEvents({ - - "layout" : true, - - "regionresized" : true, - - "regioncollapsed" : true, - - "regionexpanded" : true - }); - this.updating = false; - Ext.EventManager.onWindowResize(this.onWindowResize, this, true); -}; - -Ext.extend(Ext.LayoutManager, Ext.util.Observable, { - - isUpdating : function(){ - return this.updating; - }, - - - beginUpdate : function(){ - this.updating = true; - }, - - - endUpdate : function(noLayout){ - this.updating = false; - if(!noLayout){ - this.layout(); - } - }, - - layout: function(){ - - }, - - onRegionResized : function(region, newSize){ - this.fireEvent("regionresized", region, newSize); - this.layout(); - }, - - onRegionCollapsed : function(region){ - this.fireEvent("regioncollapsed", region); - }, - - onRegionExpanded : function(region){ - this.fireEvent("regionexpanded", region); - }, - - - getViewSize : function(){ - var size; - if(this.el.dom != document.body){ - size = this.el.getSize(); - }else{ - size = {width: Ext.lib.Dom.getViewWidth(), height: Ext.lib.Dom.getViewHeight()}; - } - size.width -= this.el.getBorderWidth("lr")-this.el.getPadding("lr"); - size.height -= this.el.getBorderWidth("tb")-this.el.getPadding("tb"); - return size; - }, - - - getEl : function(){ - return this.el; - }, - - - getRegion : function(target){ - return this.regions[target.toLowerCase()]; - }, - - onWindowResize : function(){ - if(this.monitorWindowResize){ - this.layout(); - } - } -}); - -Ext.BorderLayout = function(container, config){ - config = config || {}; - Ext.BorderLayout.superclass.constructor.call(this, container, config); - this.factory = config.factory || Ext.BorderLayout.RegionFactory; - for(var i = 0, len = this.factory.validRegions.length; i < len; i++) { - var target = this.factory.validRegions[i]; - if(config[target]){ - this.addRegion(target, config[target]); - } - } -}; - -Ext.extend(Ext.BorderLayout, Ext.LayoutManager, { - - addRegion : function(target, config){ - if(!this.regions[target]){ - var r = this.factory.create(target, this, config); - this.bindRegion(target, r); - } - return this.regions[target]; - }, - - - bindRegion : function(name, r){ - this.regions[name] = r; - r.on("visibilitychange", this.layout, this); - r.on("paneladded", this.layout, this); - r.on("panelremoved", this.layout, this); - r.on("invalidated", this.layout, this); - r.on("resized", this.onRegionResized, this); - r.on("collapsed", this.onRegionCollapsed, this); - r.on("expanded", this.onRegionExpanded, this); - }, - - - layout : function(){ - if(this.updating) return; - var size = this.getViewSize(); - var w = size.width, h = size.height; - var centerW = w, centerH = h, centerY = 0, centerX = 0; - - - var rs = this.regions; - var n = rs["north"], s = rs["south"], west = rs["west"], e = rs["east"], c = rs["center"]; - - - - if(n && n.isVisible()){ - var b = n.getBox(); - var m = n.getMargins(); - b.width = w - (m.left+m.right); - b.x = m.left; - b.y = m.top; - centerY = b.height + b.y + m.bottom; - centerH -= centerY; - n.updateBox(this.safeBox(b)); - } - if(s && s.isVisible()){ - var b = s.getBox(); - var m = s.getMargins(); - b.width = w - (m.left+m.right); - b.x = m.left; - var totalHeight = (b.height + m.top + m.bottom); - b.y = h - totalHeight + m.top; - centerH -= totalHeight; - s.updateBox(this.safeBox(b)); - } - if(west && west.isVisible()){ - var b = west.getBox(); - var m = west.getMargins(); - b.height = centerH - (m.top+m.bottom); - b.x = m.left; - b.y = centerY + m.top; - var totalWidth = (b.width + m.left + m.right); - centerX += totalWidth; - centerW -= totalWidth; - west.updateBox(this.safeBox(b)); - } - if(e && e.isVisible()){ - var b = e.getBox(); - var m = e.getMargins(); - b.height = centerH - (m.top+m.bottom); - var totalWidth = (b.width + m.left + m.right); - b.x = w - totalWidth + m.left; - b.y = centerY + m.top; - centerW -= totalWidth; - e.updateBox(this.safeBox(b)); - } - if(c){ - var m = c.getMargins(); - var centerBox = { - x: centerX + m.left, - y: centerY + m.top, - width: centerW - (m.left+m.right), - height: centerH - (m.top+m.bottom) - }; - - - - c.updateBox(this.safeBox(centerBox)); - } - this.el.repaint(); - this.fireEvent("layout", this); - }, - - safeBox : function(box){ - box.width = Math.max(0, box.width); - box.height = Math.max(0, box.height); - return box; - }, - - - add : function(target, panel){ - target = target.toLowerCase(); - return this.regions[target].add(panel); - }, - - - remove : function(target, panel){ - target = target.toLowerCase(); - return this.regions[target].remove(panel); - }, - - - findPanel : function(panelId){ - var rs = this.regions; - for(var target in rs){ - if(typeof rs[target] != "function"){ - var p = rs[target].getPanel(panelId); - if(p){ - return p; - } - } - } - return null; - }, - - - showPanel : function(panelId) { - var rs = this.regions; - for(var target in rs){ - var r = rs[target]; - if(typeof r != "function"){ - if(r.hasPanel(panelId)){ - return r.showPanel(panelId); - } - } - } - return null; - }, - - - restoreState : function(provider){ - if(!provider){ - provider = Ext.state.Manager; - } - var sm = new Ext.LayoutStateManager(); - sm.init(this, provider); - }, - - - batchAdd : function(regions){ - this.beginUpdate(); - for(var rname in regions){ - var lr = this.regions[rname]; - if(lr){ - this.addTypedPanels(lr, regions[rname]); - } - } - this.endUpdate(); - }, - - - addTypedPanels : function(lr, ps){ - if(typeof ps == 'string'){ - lr.add(new Ext.ContentPanel(ps)); - } - else if(ps instanceof Array){ - for(var i =0, len = ps.length; i < len; i++){ - this.addTypedPanels(lr, ps[i]); - } - } - else if(!ps.events){ - var el = ps.el; - delete ps.el; - lr.add(new Ext.ContentPanel(el || Ext.id(), ps)); - } - else { - lr.add(ps); - } - } -}); - -Ext.BorderLayout.create = function(config, targetEl){ - var layout = new Ext.BorderLayout(targetEl || document.body, config); - layout.beginUpdate(); - var regions = Ext.BorderLayout.RegionFactory.validRegions; - for(var j = 0, jlen = regions.length; j < jlen; j++){ - var lr = regions[j]; - if(layout.regions[lr] && config[lr].panels){ - var r = layout.regions[lr]; - var ps = config[lr].panels; - layout.addTypedPanels(r, ps); - } - } - layout.endUpdate(); - return layout; -}; - -Ext.BorderLayout.RegionFactory = { - validRegions : ["north","south","east","west","center"], - - create : function(target, mgr, config){ - target = target.toLowerCase(); - if(config.lightweight || config.basic){ - return new Ext.BasicLayoutRegion(mgr, config, target); - } - switch(target){ - case "north": - return new Ext.NorthLayoutRegion(mgr, config); - case "south": - return new Ext.SouthLayoutRegion(mgr, config); - case "east": - return new Ext.EastLayoutRegion(mgr, config); - case "west": - return new Ext.WestLayoutRegion(mgr, config); - case "center": - return new Ext.CenterLayoutRegion(mgr, config); - } - throw 'Layout region "'+target+'" not supported.'; - } -}; - -Ext.BasicLayoutRegion = function(mgr, config, pos, skipConfig){ - this.mgr = mgr; - this.position = pos; - this.events = { - - "beforeremove" : true, - - "invalidated" : true, - - "visibilitychange" : true, - - "paneladded" : true, - - "panelremoved" : true, - - "collapsed" : true, - - "expanded" : true, - - "slideshow" : true, - - "slidehide" : true, - - "panelactivated" : true, - - "resized" : true - }; - - this.panels = new Ext.util.MixedCollection(); - this.panels.getKey = this.getPanelId.createDelegate(this); - this.box = null; - this.activePanel = null; - if(skipConfig !== true){ - this.applyConfig(config); - } -}; - -Ext.extend(Ext.BasicLayoutRegion, Ext.util.Observable, { - getPanelId : function(p){ - return p.getId(); - }, - - applyConfig : function(config){ - this.margins = config.margins || this.margins || {top: 0, left: 0, right:0, bottom: 0}; - this.config = config; - }, - - - resizeTo : function(newSize){ - var el = this.el ? this.el : - (this.activePanel ? this.activePanel.getEl() : null); - if(el){ - switch(this.position){ - case "east": - case "west": - el.setWidth(newSize); - this.fireEvent("resized", this, newSize); - break; - case "north": - case "south": - el.setHeight(newSize); - this.fireEvent("resized", this, newSize); - break; - } - } - }, - - getBox : function(){ - return this.activePanel ? this.activePanel.getEl().getBox(false, true) : null; - }, - - getMargins : function(){ - return this.margins; - }, - - updateBox : function(box){ - this.box = box; - var el = this.activePanel.getEl(); - el.dom.style.left = box.x + "px"; - el.dom.style.top = box.y + "px"; - this.activePanel.setSize(box.width, box.height); - }, - - - getEl : function(){ - return this.activePanel; - }, - - - isVisible : function(){ - return this.activePanel ? true : false; - }, - - setActivePanel : function(panel){ - panel = this.getPanel(panel); - if(this.activePanel && this.activePanel != panel){ - this.activePanel.setActiveState(false); - this.activePanel.getEl().setLeftTop(-10000,-10000); - } - this.activePanel = panel; - panel.setActiveState(true); - if(this.box){ - panel.setSize(this.box.width, this.box.height); - } - this.fireEvent("panelactivated", this, panel); - this.fireEvent("invalidated"); - }, - - - showPanel : function(panel){ - if(panel = this.getPanel(panel)){ - this.setActivePanel(panel); - } - return panel; - }, - - - getActivePanel : function(){ - return this.activePanel; - }, - - - add : function(panel){ - if(arguments.length > 1){ - for(var i = 0, len = arguments.length; i < len; i++) { - this.add(arguments[i]); - } - return null; - } - if(this.hasPanel(panel)){ - this.showPanel(panel); - return panel; - } - var el = panel.getEl(); - if(el.dom.parentNode != this.mgr.el.dom){ - this.mgr.el.dom.appendChild(el.dom); - } - if(panel.setRegion){ - panel.setRegion(this); - } - this.panels.add(panel); - el.setStyle("position", "absolute"); - if(!panel.background){ - this.setActivePanel(panel); - if(this.config.initialSize && this.panels.getCount()==1){ - this.resizeTo(this.config.initialSize); - } - } - this.fireEvent("paneladded", this, panel); - return panel; - }, - - - hasPanel : function(panel){ - if(typeof panel == "object"){ - panel = panel.getId(); - } - return this.getPanel(panel) ? true : false; - }, - - - remove : function(panel, preservePanel){ - panel = this.getPanel(panel); - if(!panel){ - return null; - } - var e = {}; - this.fireEvent("beforeremove", this, panel, e); - if(e.cancel === true){ - return null; - } - var panelId = panel.getId(); - this.panels.removeKey(panelId); - return panel; - }, - - - getPanel : function(id){ - if(typeof id == "object"){ - return id; - } - return this.panels.get(id); - }, - - - getPosition: function(){ - return this.position; - } -}); - -Ext.LayoutRegion = function(mgr, config, pos){ - Ext.LayoutRegion.superclass.constructor.call(this, mgr, config, pos, true); - var dh = Ext.DomHelper; - - this.el = dh.append(mgr.el.dom, {tag: "div", cls: "x-layout-panel x-layout-panel-" + this.position}, true); - - - this.titleEl = dh.append(this.el.dom, {tag: "div", unselectable: "on", cls: "x-unselectable x-layout-panel-hd x-layout-title-"+this.position, children:[ - {tag: "span", cls: "x-unselectable x-layout-panel-hd-text", unselectable: "on", html: " "}, - {tag: "div", cls: "x-unselectable x-layout-panel-hd-tools", unselectable: "on"} - ]}, true); - this.titleEl.enableDisplayMode(); - - this.titleTextEl = this.titleEl.dom.firstChild; - this.tools = Ext.get(this.titleEl.dom.childNodes[1], true); - this.closeBtn = this.createTool(this.tools.dom, "x-layout-close"); - this.closeBtn.enableDisplayMode(); - this.closeBtn.on("click", this.closeClicked, this); - this.closeBtn.hide(); - - this.createBody(config); - this.visible = true; - this.collapsed = false; - - if(config.hideWhenEmpty){ - this.hide(); - this.on("paneladded", this.validateVisibility, this); - this.on("panelremoved", this.validateVisibility, this); - } - this.applyConfig(config); -}; - -Ext.extend(Ext.LayoutRegion, Ext.BasicLayoutRegion, { - - createBody : function(){ - - this.bodyEl = this.el.createChild({tag: "div", cls: "x-layout-panel-body"}); - }, - - applyConfig : function(c){ - if(c.collapsible && this.position != "center" && !this.collapsedEl){ - var dh = Ext.DomHelper; - if(c.titlebar !== false){ - this.collapseBtn = this.createTool(this.tools.dom, "x-layout-collapse-"+this.position); - this.collapseBtn.on("click", this.collapse, this); - this.collapseBtn.enableDisplayMode(); - - if(c.showPin === true || this.showPin){ - this.stickBtn = this.createTool(this.tools.dom, "x-layout-stick"); - this.stickBtn.enableDisplayMode(); - this.stickBtn.on("click", this.expand, this); - this.stickBtn.hide(); - } - } - - this.collapsedEl = dh.append(this.mgr.el.dom, {cls: "x-layout-collapsed x-layout-collapsed-"+this.position, children:[ - {cls: "x-layout-collapsed-tools", children:[{cls: "x-layout-ctools-inner"}]} - ]}, true); - if(c.floatable !== false){ - this.collapsedEl.addClassOnOver("x-layout-collapsed-over"); - this.collapsedEl.on("click", this.collapseClick, this); - } - - if(c.collapsedTitle && (this.position == "north" || this.position== "south")) { - this.collapsedTitleTextEl = dh.append(this.collapsedEl.dom, {tag: "div", cls: "x-unselectable x-layout-panel-hd-text", - id: "message", unselectable: "on", style:{"float":"left"}}); - this.collapsedTitleTextEl.innerHTML = c.collapsedTitle; - } - this.expandBtn = this.createTool(this.collapsedEl.dom.firstChild.firstChild, "x-layout-expand-"+this.position); - this.expandBtn.on("click", this.expand, this); - } - if(this.collapseBtn){ - this.collapseBtn.setVisible(c.collapsible == true); - } - this.cmargins = c.cmargins || this.cmargins || - (this.position == "west" || this.position == "east" ? - {top: 0, left: 2, right:2, bottom: 0} : - {top: 2, left: 0, right:0, bottom: 2}); - this.margins = c.margins || this.margins || {top: 0, left: 0, right:0, bottom: 0}; - this.bottomTabs = c.tabPosition != "top"; - this.autoScroll = c.autoScroll || false; - if(this.autoScroll){ - this.bodyEl.setStyle("overflow", "auto"); - }else{ - this.bodyEl.setStyle("overflow", "hidden"); - } - - if((!c.titlebar && !c.title) || c.titlebar === false){ - this.titleEl.hide(); - }else{ - this.titleEl.show(); - if(c.title){ - this.titleTextEl.innerHTML = c.title; - } - } - - this.duration = c.duration || .30; - this.slideDuration = c.slideDuration || .45; - this.config = c; - if(c.collapsed){ - this.collapse(true); - } - if(c.hidden){ - this.hide(); - } - }, - - isVisible : function(){ - return this.visible; - }, - - - setCollapsedTitle : function(title){ - title = title || " "; - if(this.collapsedTitleTextEl){ - this.collapsedTitleTextEl.innerHTML = title; - } - }, - - getBox : function(){ - var b; - if(!this.collapsed){ - b = this.el.getBox(false, true); - }else{ - b = this.collapsedEl.getBox(false, true); - } - return b; - }, - - getMargins : function(){ - return this.collapsed ? this.cmargins : this.margins; - }, - - highlight : function(){ - this.el.addClass("x-layout-panel-dragover"); - }, - - unhighlight : function(){ - this.el.removeClass("x-layout-panel-dragover"); - }, - - updateBox : function(box){ - this.box = box; - if(!this.collapsed){ - this.el.dom.style.left = box.x + "px"; - this.el.dom.style.top = box.y + "px"; - this.updateBody(box.width, box.height); - }else{ - this.collapsedEl.dom.style.left = box.x + "px"; - this.collapsedEl.dom.style.top = box.y + "px"; - this.collapsedEl.setSize(box.width, box.height); - } - if(this.tabs){ - this.tabs.autoSizeTabs(); - } - }, - - updateBody : function(w, h){ - if(w !== null){ - this.el.setWidth(w); - w -= this.el.getBorderWidth("rl"); - if(this.config.adjustments){ - w += this.config.adjustments[0]; - } - } - if(h !== null){ - this.el.setHeight(h); - h = this.titleEl && this.titleEl.isDisplayed() ? h - (this.titleEl.getHeight()||0) : h; - h -= this.el.getBorderWidth("tb"); - if(this.config.adjustments){ - h += this.config.adjustments[1]; - } - this.bodyEl.setHeight(h); - if(this.tabs){ - h = this.tabs.syncHeight(h); - } - } - if(this.panelSize){ - w = w !== null ? w : this.panelSize.width; - h = h !== null ? h : this.panelSize.height; - } - if(this.activePanel){ - var el = this.activePanel.getEl(); - w = w !== null ? w : el.getWidth(); - h = h !== null ? h : el.getHeight(); - this.panelSize = {width: w, height: h}; - this.activePanel.setSize(w, h); - } - if(Ext.isIE && this.tabs){ - this.tabs.el.repaint(); - } - }, - - - getEl : function(){ - return this.el; - }, - - - hide : function(){ - if(!this.collapsed){ - this.el.dom.style.left = "-2000px"; - this.el.hide(); - }else{ - this.collapsedEl.dom.style.left = "-2000px"; - this.collapsedEl.hide(); - } - this.visible = false; - this.fireEvent("visibilitychange", this, false); - }, - - - show : function(){ - if(!this.collapsed){ - this.el.show(); - }else{ - this.collapsedEl.show(); - } - this.visible = true; - this.fireEvent("visibilitychange", this, true); - }, - - closeClicked : function(){ - if(this.activePanel){ - this.remove(this.activePanel); - } - }, - - collapseClick : function(e){ - if(this.isSlid){ - e.stopPropagation(); - this.slideIn(); - }else{ - e.stopPropagation(); - this.slideOut(); - } - }, - - - collapse : function(skipAnim){ - if(this.collapsed) return; - this.collapsed = true; - if(this.split){ - this.split.el.hide(); - } - if(this.config.animate && skipAnim !== true){ - this.fireEvent("invalidated", this); - this.animateCollapse(); - }else{ - this.el.setLocation(-20000,-20000); - this.el.hide(); - this.collapsedEl.show(); - this.fireEvent("collapsed", this); - this.fireEvent("invalidated", this); - } - }, - - animateCollapse : function(){ - - }, - - - expand : function(e, skipAnim){ - if(e) e.stopPropagation(); - if(!this.collapsed || this.el.hasActiveFx()) return; - if(this.isSlid){ - this.afterSlideIn(); - skipAnim = true; - } - this.collapsed = false; - if(this.config.animate && skipAnim !== true){ - this.animateExpand(); - }else{ - this.el.show(); - if(this.split){ - this.split.el.show(); - } - this.collapsedEl.setLocation(-2000,-2000); - this.collapsedEl.hide(); - this.fireEvent("invalidated", this); - this.fireEvent("expanded", this); - } - }, - - animateExpand : function(){ - - }, - - initTabs : function(){ - this.bodyEl.setStyle("overflow", "hidden"); - var ts = new Ext.TabPanel(this.bodyEl.dom, { - tabPosition: this.bottomTabs ? 'bottom' : 'top', - disableTooltips: this.config.disableTabTips - }); - if(this.config.hideTabs){ - ts.stripWrap.setDisplayed(false); - } - this.tabs = ts; - ts.resizeTabs = this.config.resizeTabs === true; - ts.minTabWidth = this.config.minTabWidth || 40; - ts.maxTabWidth = this.config.maxTabWidth || 250; - ts.preferredTabWidth = this.config.preferredTabWidth || 150; - ts.monitorResize = false; - ts.bodyEl.setStyle("overflow", this.config.autoScroll ? "auto" : "hidden"); - ts.bodyEl.addClass('x-layout-tabs-body'); - this.panels.each(this.initPanelAsTab, this); - }, - - initPanelAsTab : function(panel){ - var ti = this.tabs.addTab(panel.getEl().id, panel.getTitle(), null, - this.config.closeOnTab && panel.isClosable()); - if(panel.tabTip !== undefined){ - ti.setTooltip(panel.tabTip); - } - ti.on("activate", function(){ - this.setActivePanel(panel); - }, this); - if(this.config.closeOnTab){ - ti.on("beforeclose", function(t, e){ - e.cancel = true; - this.remove(panel); - }, this); - } - return ti; - }, - - updatePanelTitle : function(panel, title){ - if(this.activePanel == panel){ - this.updateTitle(title); - } - if(this.tabs){ - var ti = this.tabs.getTab(panel.getEl().id); - ti.setText(title); - if(panel.tabTip !== undefined){ - ti.setTooltip(panel.tabTip); - } - } - }, - - updateTitle : function(title){ - if(this.titleTextEl && !this.config.title){ - this.titleTextEl.innerHTML = (typeof title != "undefined" && title.length > 0 ? title : " "); - } - }, - - setActivePanel : function(panel){ - panel = this.getPanel(panel); - if(this.activePanel && this.activePanel != panel){ - this.activePanel.setActiveState(false); - } - this.activePanel = panel; - panel.setActiveState(true); - if(this.panelSize){ - panel.setSize(this.panelSize.width, this.panelSize.height); - } - if(this.closeBtn){ - this.closeBtn.setVisible(!this.config.closeOnTab && !this.isSlid && panel.isClosable()); - } - this.updateTitle(panel.getTitle()); - if(this.tabs){ - this.fireEvent("invalidated", this); - } - this.fireEvent("panelactivated", this, panel); - }, - - - showPanel : function(panel){ - if(panel = this.getPanel(panel)){ - if(this.tabs){ - var tab = this.tabs.getTab(panel.getEl().id); - if(tab.isHidden()){ - this.tabs.unhideTab(tab.id); - } - tab.activate(); - }else{ - this.setActivePanel(panel); - } - } - return panel; - }, - - - getActivePanel : function(){ - return this.activePanel; - }, - - validateVisibility : function(){ - if(this.panels.getCount() < 1){ - this.updateTitle(" "); - this.closeBtn.hide(); - this.hide(); - }else{ - if(!this.isVisible()){ - this.show(); - } - } - }, - - - add : function(panel){ - if(arguments.length > 1){ - for(var i = 0, len = arguments.length; i < len; i++) { - this.add(arguments[i]); - } - return null; - } - if(this.hasPanel(panel)){ - this.showPanel(panel); - return panel; - } - panel.setRegion(this); - this.panels.add(panel); - if(this.panels.getCount() == 1 && !this.config.alwaysShowTabs){ - this.bodyEl.dom.appendChild(panel.getEl().dom); - if(panel.background !== true){ - this.setActivePanel(panel); - } - this.fireEvent("paneladded", this, panel); - return panel; - } - if(!this.tabs){ - this.initTabs(); - }else{ - this.initPanelAsTab(panel); - } - if(panel.background !== true){ - this.tabs.activate(panel.getEl().id); - } - this.fireEvent("paneladded", this, panel); - return panel; - }, - - - hidePanel : function(panel){ - if(this.tabs && (panel = this.getPanel(panel))){ - this.tabs.hideTab(panel.getEl().id); - } - }, - - - unhidePanel : function(panel){ - if(this.tabs && (panel = this.getPanel(panel))){ - this.tabs.unhideTab(panel.getEl().id); - } - }, - - clearPanels : function(){ - while(this.panels.getCount() > 0){ - this.remove(this.panels.first()); - } - }, - - - remove : function(panel, preservePanel){ - panel = this.getPanel(panel); - if(!panel){ - return null; - } - var e = {}; - this.fireEvent("beforeremove", this, panel, e); - if(e.cancel === true){ - return null; - } - preservePanel = (typeof preservePanel != "undefined" ? preservePanel : (this.config.preservePanels === true || panel.preserve === true)); - var panelId = panel.getId(); - this.panels.removeKey(panelId); - if(preservePanel){ - document.body.appendChild(panel.getEl().dom); - } - if(this.tabs){ - this.tabs.removeTab(panel.getEl().id); - }else if (!preservePanel){ - this.bodyEl.dom.removeChild(panel.getEl().dom); - } - if(this.panels.getCount() == 1 && this.tabs && !this.config.alwaysShowTabs){ - var p = this.panels.first(); - var tempEl = document.createElement("div"); - tempEl.appendChild(p.getEl().dom); - this.bodyEl.update(""); - this.bodyEl.dom.appendChild(p.getEl().dom); - tempEl = null; - this.updateTitle(p.getTitle()); - this.tabs = null; - this.bodyEl.setStyle("overflow", this.config.autoScroll ? "auto" : "hidden"); - this.setActivePanel(p); - } - panel.setRegion(null); - if(this.activePanel == panel){ - this.activePanel = null; - } - if(this.config.autoDestroy !== false && preservePanel !== true){ - try{panel.destroy();}catch(e){} - } - this.fireEvent("panelremoved", this, panel); - return panel; - }, - - - getTabs : function(){ - return this.tabs; - }, - - createTool : function(parentEl, className){ - var btn = Ext.DomHelper.append(parentEl, {tag: "div", cls: "x-layout-tools-button", - children: [{tag: "div", cls: "x-layout-tools-button-inner " + className, html: " "}]}, true); - btn.addClassOnOver("x-layout-tools-button-over"); - return btn; - } -}); - -Ext.SplitLayoutRegion = function(mgr, config, pos, cursor){ - this.cursor = cursor; - Ext.SplitLayoutRegion.superclass.constructor.call(this, mgr, config, pos); -}; - -Ext.extend(Ext.SplitLayoutRegion, Ext.LayoutRegion, { - splitTip : "Drag to resize.", - collapsibleSplitTip : "Drag to resize. Double click to hide.", - useSplitTips : false, - - applyConfig : function(config){ - Ext.SplitLayoutRegion.superclass.applyConfig.call(this, config); - if(config.split){ - if(!this.split){ - var splitEl = Ext.DomHelper.append(this.mgr.el.dom, - {tag: "div", id: this.el.id + "-split", cls: "x-layout-split x-layout-split-"+this.position, html: " "}); - - this.split = new Ext.SplitBar(splitEl, this.el, this.orientation); - this.split.on("moved", this.onSplitMove, this); - this.split.useShim = config.useShim === true; - this.split.getMaximumSize = this[this.position == 'north' || this.position == 'south' ? 'getVMaxSize' : 'getHMaxSize'].createDelegate(this); - if(this.useSplitTips){ - this.split.el.dom.title = config.collapsible ? this.collapsibleSplitTip : this.splitTip; - } - if(config.collapsible){ - this.split.el.on("dblclick", this.collapse, this); - } - } - if(typeof config.minSize != "undefined"){ - this.split.minSize = config.minSize; - } - if(typeof config.maxSize != "undefined"){ - this.split.maxSize = config.maxSize; - } - if(config.hideWhenEmpty || config.hidden){ - this.hideSplitter(); - } - } - }, - - getHMaxSize : function(){ - var cmax = this.config.maxSize || 10000; - var center = this.mgr.getRegion("center"); - return Math.min(cmax, (this.el.getWidth()+center.getEl().getWidth())-center.getMinWidth()); - }, - - getVMaxSize : function(){ - var cmax = this.config.maxSize || 10000; - var center = this.mgr.getRegion("center"); - return Math.min(cmax, (this.el.getHeight()+center.getEl().getHeight())-center.getMinHeight()); - }, - - onSplitMove : function(split, newSize){ - this.fireEvent("resized", this, newSize); - }, - - - getSplitBar : function(){ - return this.split; - }, - - hide : function(){ - this.hideSplitter(); - Ext.SplitLayoutRegion.superclass.hide.call(this); - }, - - hideSplitter : function(){ - if(this.split){ - this.split.el.setLocation(-2000,-2000); - this.split.el.hide(); - } - }, - - show : function(){ - if(this.split){ - this.split.el.show(); - } - Ext.SplitLayoutRegion.superclass.show.call(this); - }, - - beforeSlide: function(){ - if(Ext.isGecko){ - this.bodyEl.clip(); - if(this.tabs) this.tabs.bodyEl.clip(); - if(this.activePanel){ - this.activePanel.getEl().clip(); - - if(this.activePanel.beforeSlide){ - this.activePanel.beforeSlide(); - } - } - } - }, - - afterSlide : function(){ - if(Ext.isGecko){ - this.bodyEl.unclip(); - if(this.tabs) this.tabs.bodyEl.unclip(); - if(this.activePanel){ - this.activePanel.getEl().unclip(); - if(this.activePanel.afterSlide){ - this.activePanel.afterSlide(); - } - } - } - }, - - initAutoHide : function(){ - if(this.autoHide !== false){ - if(!this.autoHideHd){ - var st = new Ext.util.DelayedTask(this.slideIn, this); - this.autoHideHd = { - "mouseout": function(e){ - if(!e.within(this.el, true)){ - st.delay(500); - } - }, - "mouseover" : function(e){ - st.cancel(); - }, - scope : this - }; - } - this.el.on(this.autoHideHd); - } - }, - - clearAutoHide : function(){ - if(this.autoHide !== false){ - this.el.un("mouseout", this.autoHideHd.mouseout); - this.el.un("mouseover", this.autoHideHd.mouseover); - } - }, - - clearMonitor : function(){ - Ext.get(document).un("click", this.slideInIf, this); - }, - - - slideOut : function(){ - if(this.isSlid || this.el.hasActiveFx()){ - return; - } - this.isSlid = true; - if(this.collapseBtn){ - this.collapseBtn.hide(); - } - this.closeBtnState = this.closeBtn.getStyle('display'); - this.closeBtn.hide(); - if(this.stickBtn){ - this.stickBtn.show(); - } - this.el.show(); - this.el.alignTo(this.collapsedEl, this.getCollapseAnchor()); - this.beforeSlide(); - this.el.setStyle("z-index", 20000); - this.el.slideIn(this.getSlideAnchor(), { - callback: function(){ - this.afterSlide(); - this.initAutoHide(); - Ext.get(document).on("click", this.slideInIf, this); - this.fireEvent("slideshow", this); - }, - scope: this, - block: true - }); - }, - - afterSlideIn : function(){ - this.clearAutoHide(); - this.isSlid = false; - this.clearMonitor(); - this.el.setStyle("z-index", ""); - if(this.collapseBtn){ - this.collapseBtn.show(); - } - this.closeBtn.setStyle('display', this.closeBtnState); - if(this.stickBtn){ - this.stickBtn.hide(); - } - this.fireEvent("slidehide", this); - }, - - slideIn : function(cb){ - if(!this.isSlid || this.el.hasActiveFx()){ - Ext.callback(cb); - return; - } - this.isSlid = false; - this.beforeSlide(); - this.el.slideOut(this.getSlideAnchor(), { - callback: function(){ - this.el.setLeftTop(-10000, -10000); - this.afterSlide(); - this.afterSlideIn(); - Ext.callback(cb); - }, - scope: this, - block: true - }); - }, - - slideInIf : function(e){ - if(!e.within(this.el)){ - this.slideIn(); - } - }, - - animateCollapse : function(){ - this.beforeSlide(); - this.el.setStyle("z-index", 20000); - var anchor = this.getSlideAnchor(); - this.el.slideOut(anchor, { - callback : function(){ - this.el.setStyle("z-index", ""); - this.collapsedEl.slideIn(anchor, {duration:.3}); - this.afterSlide(); - this.el.setLocation(-10000,-10000); - this.el.hide(); - this.fireEvent("collapsed", this); - }, - scope: this, - block: true - }); - }, - - animateExpand : function(){ - this.beforeSlide(); - this.el.alignTo(this.collapsedEl, this.getCollapseAnchor(), this.getExpandAdj()); - this.el.setStyle("z-index", 20000); - this.collapsedEl.hide({ - duration:.1 - }); - this.el.slideIn(this.getSlideAnchor(), { - callback : function(){ - this.el.setStyle("z-index", ""); - this.afterSlide(); - if(this.split){ - this.split.el.show(); - } - this.fireEvent("invalidated", this); - this.fireEvent("expanded", this); - }, - scope: this, - block: true - }); - }, - - anchors : { - "west" : "left", - "east" : "right", - "north" : "top", - "south" : "bottom" - }, - - sanchors : { - "west" : "l", - "east" : "r", - "north" : "t", - "south" : "b" - }, - - canchors : { - "west" : "tl-tr", - "east" : "tr-tl", - "north" : "tl-bl", - "south" : "bl-tl" - }, - - getAnchor : function(){ - return this.anchors[this.position]; - }, - - getCollapseAnchor : function(){ - return this.canchors[this.position]; - }, - - getSlideAnchor : function(){ - return this.sanchors[this.position]; - }, - - getAlignAdj : function(){ - var cm = this.cmargins; - switch(this.position){ - case "west": - return [0, 0]; - break; - case "east": - return [0, 0]; - break; - case "north": - return [0, 0]; - break; - case "south": - return [0, 0]; - break; - } - }, - - getExpandAdj : function(){ - var c = this.collapsedEl, cm = this.cmargins; - switch(this.position){ - case "west": - return [-(cm.right+c.getWidth()+cm.left), 0]; - break; - case "east": - return [cm.right+c.getWidth()+cm.left, 0]; - break; - case "north": - return [0, -(cm.top+cm.bottom+c.getHeight())]; - break; - case "south": - return [0, cm.top+cm.bottom+c.getHeight()]; - break; - } - } -}); - -Ext.CenterLayoutRegion = function(mgr, config){ - Ext.CenterLayoutRegion.superclass.constructor.call(this, mgr, config, "center"); - this.visible = true; - this.minWidth = config.minWidth || 20; - this.minHeight = config.minHeight || 20; -}; - -Ext.extend(Ext.CenterLayoutRegion, Ext.LayoutRegion, { - hide : function(){ - - }, - - show : function(){ - - }, - - getMinWidth: function(){ - return this.minWidth; - }, - - getMinHeight: function(){ - return this.minHeight; - } -}); - - -Ext.NorthLayoutRegion = function(mgr, config){ - Ext.NorthLayoutRegion.superclass.constructor.call(this, mgr, config, "north", "n-resize"); - if(this.split){ - this.split.placement = Ext.SplitBar.TOP; - this.split.orientation = Ext.SplitBar.VERTICAL; - this.split.el.addClass("x-layout-split-v"); - } - var size = config.initialSize || config.height; - if(typeof size != "undefined"){ - this.el.setHeight(size); - } -}; -Ext.extend(Ext.NorthLayoutRegion, Ext.SplitLayoutRegion, { - orientation: Ext.SplitBar.VERTICAL, - getBox : function(){ - if(this.collapsed){ - return this.collapsedEl.getBox(); - } - var box = this.el.getBox(); - if(this.split){ - box.height += this.split.el.getHeight(); - } - return box; - }, - - updateBox : function(box){ - if(this.split && !this.collapsed){ - box.height -= this.split.el.getHeight(); - this.split.el.setLeft(box.x); - this.split.el.setTop(box.y+box.height); - this.split.el.setWidth(box.width); - } - if(this.collapsed){ - this.updateBody(box.width, null); - } - Ext.NorthLayoutRegion.superclass.updateBox.call(this, box); - } -}); - -Ext.SouthLayoutRegion = function(mgr, config){ - Ext.SouthLayoutRegion.superclass.constructor.call(this, mgr, config, "south", "s-resize"); - if(this.split){ - this.split.placement = Ext.SplitBar.BOTTOM; - this.split.orientation = Ext.SplitBar.VERTICAL; - this.split.el.addClass("x-layout-split-v"); - } - var size = config.initialSize || config.height; - if(typeof size != "undefined"){ - this.el.setHeight(size); - } -}; -Ext.extend(Ext.SouthLayoutRegion, Ext.SplitLayoutRegion, { - orientation: Ext.SplitBar.VERTICAL, - getBox : function(){ - if(this.collapsed){ - return this.collapsedEl.getBox(); - } - var box = this.el.getBox(); - if(this.split){ - var sh = this.split.el.getHeight(); - box.height += sh; - box.y -= sh; - } - return box; - }, - - updateBox : function(box){ - if(this.split && !this.collapsed){ - var sh = this.split.el.getHeight(); - box.height -= sh; - box.y += sh; - this.split.el.setLeft(box.x); - this.split.el.setTop(box.y-sh); - this.split.el.setWidth(box.width); - } - if(this.collapsed){ - this.updateBody(box.width, null); - } - Ext.SouthLayoutRegion.superclass.updateBox.call(this, box); - } -}); - -Ext.EastLayoutRegion = function(mgr, config){ - Ext.EastLayoutRegion.superclass.constructor.call(this, mgr, config, "east", "e-resize"); - if(this.split){ - this.split.placement = Ext.SplitBar.RIGHT; - this.split.orientation = Ext.SplitBar.HORIZONTAL; - this.split.el.addClass("x-layout-split-h"); - } - var size = config.initialSize || config.width; - if(typeof size != "undefined"){ - this.el.setWidth(size); - } -}; -Ext.extend(Ext.EastLayoutRegion, Ext.SplitLayoutRegion, { - orientation: Ext.SplitBar.HORIZONTAL, - getBox : function(){ - if(this.collapsed){ - return this.collapsedEl.getBox(); - } - var box = this.el.getBox(); - if(this.split){ - var sw = this.split.el.getWidth(); - box.width += sw; - box.x -= sw; - } - return box; - }, - - updateBox : function(box){ - if(this.split && !this.collapsed){ - var sw = this.split.el.getWidth(); - box.width -= sw; - this.split.el.setLeft(box.x); - this.split.el.setTop(box.y); - this.split.el.setHeight(box.height); - box.x += sw; - } - if(this.collapsed){ - this.updateBody(null, box.height); - } - Ext.EastLayoutRegion.superclass.updateBox.call(this, box); - } -}); - -Ext.WestLayoutRegion = function(mgr, config){ - Ext.WestLayoutRegion.superclass.constructor.call(this, mgr, config, "west", "w-resize"); - if(this.split){ - this.split.placement = Ext.SplitBar.LEFT; - this.split.orientation = Ext.SplitBar.HORIZONTAL; - this.split.el.addClass("x-layout-split-h"); - } - var size = config.initialSize || config.width; - if(typeof size != "undefined"){ - this.el.setWidth(size); - } -}; -Ext.extend(Ext.WestLayoutRegion, Ext.SplitLayoutRegion, { - orientation: Ext.SplitBar.HORIZONTAL, - getBox : function(){ - if(this.collapsed){ - return this.collapsedEl.getBox(); - } - var box = this.el.getBox(); - if(this.split){ - box.width += this.split.el.getWidth(); - } - return box; - }, - - updateBox : function(box){ - if(this.split && !this.collapsed){ - var sw = this.split.el.getWidth(); - box.width -= sw; - this.split.el.setLeft(box.x+box.width); - this.split.el.setTop(box.y); - this.split.el.setHeight(box.height); - } - if(this.collapsed){ - this.updateBody(null, box.height); - } - Ext.WestLayoutRegion.superclass.updateBox.call(this, box); - } -}); - - -Ext.LayoutStateManager = function(layout){ - - this.state = { - north: {}, - south: {}, - east: {}, - west: {} - }; -}; - -Ext.LayoutStateManager.prototype = { - init : function(layout, provider){ - this.provider = provider; - var state = provider.get(layout.id+"-layout-state"); - if(state){ - var wasUpdating = layout.isUpdating(); - if(!wasUpdating){ - layout.beginUpdate(); - } - for(var key in state){ - if(typeof state[key] != "function"){ - var rstate = state[key]; - var r = layout.getRegion(key); - if(r && rstate){ - if(rstate.size){ - r.resizeTo(rstate.size); - } - if(rstate.collapsed == true){ - r.collapse(true); - }else{ - r.expand(null, true); - } - } - } - } - if(!wasUpdating){ - layout.endUpdate(); - } - this.state = state; - } - this.layout = layout; - layout.on("regionresized", this.onRegionResized, this); - layout.on("regioncollapsed", this.onRegionCollapsed, this); - layout.on("regionexpanded", this.onRegionExpanded, this); - }, - - storeState : function(){ - this.provider.set(this.layout.id+"-layout-state", this.state); - }, - - onRegionResized : function(region, newSize){ - this.state[region.getPosition()].size = newSize; - this.storeState(); - }, - - onRegionCollapsed : function(region){ - this.state[region.getPosition()].collapsed = true; - this.storeState(); - }, - - onRegionExpanded : function(region){ - this.state[region.getPosition()].collapsed = false; - this.storeState(); - } -}; - -Ext.ContentPanel = function(el, config, content){ - Ext.ContentPanel.superclass.constructor.call(this); - if(el.autoCreate){ - config = el; - el = Ext.id(); - } - this.el = Ext.get(el); - if(!this.el && config && config.autoCreate){ - if(typeof config.autoCreate == "object"){ - if(!config.autoCreate.id){ - config.autoCreate.id = config.id||el; - } - this.el = Ext.DomHelper.append(document.body, - config.autoCreate, true); - }else{ - this.el = Ext.DomHelper.append(document.body, - {tag: "div", cls: "x-layout-inactive-content", id: config.id||el}, true); - } - } - this.closable = false; - this.loaded = false; - this.active = false; - if(typeof config == "string"){ - this.title = config; - }else{ - Ext.apply(this, config); - } - if(this.resizeEl){ - this.resizeEl = Ext.get(this.resizeEl, true); - }else{ - this.resizeEl = this.el; - } - this.addEvents({ - - "activate" : true, - - "deactivate" : true, - - - "resize" : true - }); - if(this.autoScroll){ - this.resizeEl.setStyle("overflow", "auto"); - } - content = content || this.content; - if(content){ - this.setContent(content); - } - if(config && config.url){ - this.setUrl(this.url, this.params, this.loadOnce); - } -}; - -Ext.extend(Ext.ContentPanel, Ext.util.Observable, { - tabTip:'', - setRegion : function(region){ - this.region = region; - if(region){ - this.el.replaceClass("x-layout-inactive-content", "x-layout-active-content"); - }else{ - this.el.replaceClass("x-layout-active-content", "x-layout-inactive-content"); - } - }, - - - getToolbar : function(){ - return this.toolbar; - }, - - setActiveState : function(active){ - this.active = active; - if(!active){ - this.fireEvent("deactivate", this); - }else{ - this.fireEvent("activate", this); - } - }, - - setContent : function(content, loadScripts){ - this.el.update(content, loadScripts); - }, - - ignoreResize : function(w, h){ - if(this.lastSize && this.lastSize.width == w && this.lastSize.height == h){ - return true; - }else{ - this.lastSize = {width: w, height: h}; - return false; - } - }, - - getUpdateManager : function(){ - return this.el.getUpdateManager(); - }, - - load : function(){ - var um = this.el.getUpdateManager(); - um.update.apply(um, arguments); - return this; - }, - - - - setUrl : function(url, params, loadOnce){ - if(this.refreshDelegate){ - this.removeListener("activate", this.refreshDelegate); - } - this.refreshDelegate = this._handleRefresh.createDelegate(this, [url, params, loadOnce]); - this.on("activate", this._handleRefresh.createDelegate(this, [url, params, loadOnce])); - return this.el.getUpdateManager(); - }, - - _handleRefresh : function(url, params, loadOnce){ - if(!loadOnce || !this.loaded){ - var updater = this.el.getUpdateManager(); - updater.update(url, params, this._setLoaded.createDelegate(this)); - } - }, - - _setLoaded : function(){ - this.loaded = true; - }, - - - getId : function(){ - return this.el.id; - }, - - - getEl : function(){ - return this.el; - }, - - adjustForComponents : function(width, height){ - if(this.resizeEl != this.el){ - width -= this.el.getFrameWidth('lr'); - height -= this.el.getFrameWidth('tb'); - } - if(this.toolbar){ - var te = this.toolbar.getEl(); - height -= te.getHeight(); - te.setWidth(width); - } - if(this.adjustments){ - width += this.adjustments[0]; - height += this.adjustments[1]; - } - return {"width": width, "height": height}; - }, - - setSize : function(width, height){ - if(this.fitToFrame && !this.ignoreResize(width, height)){ - if(this.fitContainer && this.resizeEl != this.el){ - this.el.setSize(width, height); - } - var size = this.adjustForComponents(width, height); - this.resizeEl.setSize(this.autoWidth ? "auto" : size.width, this.autoHeight ? "auto" : size.height); - this.fireEvent('resize', this, size.width, size.height); - } - }, - - - getTitle : function(){ - return this.title; - }, - - - setTitle : function(title){ - this.title = title; - if(this.region){ - this.region.updatePanelTitle(this, title); - } - }, - - - isClosable : function(){ - return this.closable; - }, - - beforeSlide : function(){ - this.el.clip(); - this.resizeEl.clip(); - }, - - afterSlide : function(){ - this.el.unclip(); - this.resizeEl.unclip(); - }, - - - refresh : function(){ - if(this.refreshDelegate){ - this.loaded = false; - this.refreshDelegate(); - } - }, - - - destroy : function(){ - this.el.removeAllListeners(); - var tempEl = document.createElement("span"); - tempEl.appendChild(this.el.dom); - tempEl.innerHTML = ""; - this.el.remove(); - this.el = null; - } -}); - - -Ext.GridPanel = function(grid, config){ - this.wrapper = Ext.DomHelper.append(document.body, - {tag: "div", cls: "x-layout-grid-wrapper x-layout-inactive-content"}, true); - this.wrapper.dom.appendChild(grid.container.dom); - Ext.GridPanel.superclass.constructor.call(this, this.wrapper, config); - if(this.toolbar){ - this.toolbar.el.insertBefore(this.wrapper.dom.firstChild); - } - grid.monitorWindowResize = false; - grid.autoHeight = false; - grid.autoWidth = false; - this.grid = grid; - this.grid.container.replaceClass("x-layout-inactive-content", "x-layout-component-panel"); -}; - -Ext.extend(Ext.GridPanel, Ext.ContentPanel, { - getId : function(){ - return this.grid.id; - }, - - - getGrid : function(){ - return this.grid; - }, - - setSize : function(width, height){ - if(!this.ignoreResize(width, height)){ - var grid = this.grid; - var size = this.adjustForComponents(width, height); - grid.container.setSize(size.width, size.height); - grid.autoSize(); - } - }, - - beforeSlide : function(){ - this.grid.getView().scroller.clip(); - }, - - afterSlide : function(){ - this.grid.getView().scroller.unclip(); - }, - - destroy : function(){ - this.grid.destroy(); - delete this.grid; - Ext.GridPanel.superclass.destroy.call(this); - } -}); - - - -Ext.NestedLayoutPanel = function(layout, config){ - Ext.NestedLayoutPanel.superclass.constructor.call(this, layout.getEl(), config); - layout.monitorWindowResize = false; - this.layout = layout; - this.layout.getEl().addClass("x-layout-nested-layout"); -}; - -Ext.extend(Ext.NestedLayoutPanel, Ext.ContentPanel, { - - setSize : function(width, height){ - if(!this.ignoreResize(width, height)){ - var size = this.adjustForComponents(width, height); - var el = this.layout.getEl(); - el.setSize(size.width, size.height); - var touch = el.dom.offsetWidth; - this.layout.layout(); - - if(Ext.isIE && !this.initialized){ - this.initialized = true; - this.layout.layout(); - } - } - }, - - - getLayout : function(){ - return this.layout; - } -}); - -Ext.ScrollPanel = function(el, config, content){ - config = config || {}; - config.fitToFrame = true; - Ext.ScrollPanel.superclass.constructor.call(this, el, config, content); - - this.el.dom.style.overflow = "hidden"; - var wrap = this.el.wrap({cls: "x-scroller x-layout-inactive-content"}); - this.el.removeClass("x-layout-inactive-content"); - this.el.on("mousewheel", this.onWheel, this); - - var up = wrap.createChild({cls: "x-scroller-up", html: " "}, this.el.dom); - var down = wrap.createChild({cls: "x-scroller-down", html: " "}); - up.unselectable(); down.unselectable(); - up.on("click", this.scrollUp, this); - down.on("click", this.scrollDown, this); - up.addClassOnOver("x-scroller-btn-over"); - down.addClassOnOver("x-scroller-btn-over"); - up.addClassOnClick("x-scroller-btn-click"); - down.addClassOnClick("x-scroller-btn-click"); - this.adjustments = [0, -(up.getHeight() + down.getHeight())]; - - this.resizeEl = this.el; - this.el = wrap; this.up = up; this.down = down; -}; - -Ext.extend(Ext.ScrollPanel, Ext.ContentPanel, { - increment : 100, - wheelIncrement : 5, - scrollUp : function(){ - this.resizeEl.scroll("up", this.increment, {callback: this.afterScroll, scope: this}); - }, - - scrollDown : function(){ - this.resizeEl.scroll("down", this.increment, {callback: this.afterScroll, scope: this}); - }, - - afterScroll : function(){ - var el = this.resizeEl; - var t = el.dom.scrollTop, h = el.dom.scrollHeight, ch = el.dom.clientHeight; - this.up[t == 0 ? "addClass" : "removeClass"]("x-scroller-btn-disabled"); - this.down[h - t <= ch ? "addClass" : "removeClass"]("x-scroller-btn-disabled"); - }, - - setSize : function(){ - Ext.ScrollPanel.superclass.setSize.apply(this, arguments); - this.afterScroll(); - }, - - onWheel : function(e){ - var d = e.getWheelDelta(); - this.resizeEl.dom.scrollTop -= (d*this.wheelIncrement); - this.afterScroll(); - e.stopEvent(); - }, - - setContent : function(content, loadScripts){ - this.resizeEl.update(content, loadScripts); - } - -}); - -Ext.ReaderLayout = function(config, renderTo){ - var c = config || {size:{}}; - Ext.ReaderLayout.superclass.constructor.call(this, renderTo || document.body, { - north: c.north !== false ? Ext.apply({ - split:false, - initialSize: 32, - titlebar: false - }, c.north) : false, - west: c.west !== false ? Ext.apply({ - split:true, - initialSize: 200, - minSize: 175, - maxSize: 400, - titlebar: true, - collapsible: true, - animate: true, - margins:{left:5,right:0,bottom:5,top:5}, - cmargins:{left:5,right:5,bottom:5,top:5} - }, c.west) : false, - east: c.east !== false ? Ext.apply({ - split:true, - initialSize: 200, - minSize: 175, - maxSize: 400, - titlebar: true, - collapsible: true, - animate: true, - margins:{left:0,right:5,bottom:5,top:5}, - cmargins:{left:5,right:5,bottom:5,top:5} - }, c.east) : false, - center: Ext.apply({ - tabPosition: 'top', - autoScroll:false, - closeOnTab: true, - titlebar:false, - margins:{left:c.west!==false ? 0 : 5,right:c.east!==false ? 0 : 5,bottom:5,top:2} - }, c.center) - }); - - this.el.addClass('x-reader'); - - this.beginUpdate(); - - var inner = new Ext.BorderLayout(Ext.get(document.body).createChild(), { - south: c.preview !== false ? Ext.apply({ - split:true, - initialSize: 200, - minSize: 100, - autoScroll:true, - collapsible:true, - titlebar: true, - cmargins:{top:5,left:0, right:0, bottom:0} - }, c.preview) : false, - center: Ext.apply({ - autoScroll:false, - titlebar:false, - minHeight:200 - }, c.listView) - }); - this.add('center', new Ext.NestedLayoutPanel(inner, - Ext.apply({title: c.mainTitle || '',tabTip:''},c.innerPanelCfg))); - - this.endUpdate(); - - this.regions.preview = inner.getRegion('south'); - this.regions.listView = inner.getRegion('center'); -}; - -Ext.extend(Ext.ReaderLayout, Ext.BorderLayout); diff --git a/www/extras/extjs/package/layout/layout.js b/www/extras/extjs/package/layout/layout.js deleted file mode 100644 index cff9f0ddb..000000000 --- a/www/extras/extjs/package/layout/layout.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.LayoutManager=function(_1,_2){Ext.LayoutManager.superclass.constructor.call(this);this.el=Ext.get(_1);if(this.el.dom==document.body&&Ext.isIE&&!_2.allowScroll){document.body.scroll="no";}else{if(this.el.dom!=document.body&&this.el.getStyle("position")=="static"){this.el.position("relative");}}this.id=this.el.id;this.el.addClass("x-layout-container");this.monitorWindowResize=true;this.regions={};this.addEvents({"layout":true,"regionresized":true,"regioncollapsed":true,"regionexpanded":true});this.updating=false;Ext.EventManager.onWindowResize(this.onWindowResize,this,true);};Ext.extend(Ext.LayoutManager,Ext.util.Observable,{isUpdating:function(){return this.updating;},beginUpdate:function(){this.updating=true;},endUpdate:function(_3){this.updating=false;if(!_3){this.layout();}},layout:function(){},onRegionResized:function(_4,_5){this.fireEvent("regionresized",_4,_5);this.layout();},onRegionCollapsed:function(_6){this.fireEvent("regioncollapsed",_6);},onRegionExpanded:function(_7){this.fireEvent("regionexpanded",_7);},getViewSize:function(){var _8;if(this.el.dom!=document.body){_8=this.el.getSize();}else{_8={width:Ext.lib.Dom.getViewWidth(),height:Ext.lib.Dom.getViewHeight()};}_8.width-=this.el.getBorderWidth("lr")-this.el.getPadding("lr");_8.height-=this.el.getBorderWidth("tb")-this.el.getPadding("tb");return _8;},getEl:function(){return this.el;},getRegion:function(_9){return this.regions[_9.toLowerCase()];},onWindowResize:function(){if(this.monitorWindowResize){this.layout();}}}); - -Ext.BorderLayout=function(_1,_2){_2=_2||{};Ext.BorderLayout.superclass.constructor.call(this,_1,_2);this.factory=_2.factory||Ext.BorderLayout.RegionFactory;for(var i=0,_4=this.factory.validRegions.length;i<_4;i++){var _5=this.factory.validRegions[i];if(_2[_5]){this.addRegion(_5,_2[_5]);}}};Ext.extend(Ext.BorderLayout,Ext.LayoutManager,{addRegion:function(_6,_7){if(!this.regions[_6]){var r=this.factory.create(_6,this,_7);this.bindRegion(_6,r);}return this.regions[_6];},bindRegion:function(_9,r){this.regions[_9]=r;r.on("visibilitychange",this.layout,this);r.on("paneladded",this.layout,this);r.on("panelremoved",this.layout,this);r.on("invalidated",this.layout,this);r.on("resized",this.onRegionResized,this);r.on("collapsed",this.onRegionCollapsed,this);r.on("expanded",this.onRegionExpanded,this);},layout:function(){if(this.updating){return;}var _b=this.getViewSize();var w=_b.width,h=_b.height;var _e=w,_f=h,_10=0,_11=0;var rs=this.regions;var n=rs["north"],s=rs["south"],_15=rs["west"],e=rs["east"],c=rs["center"];if(n&&n.isVisible()){var b=n.getBox();var m=n.getMargins();b.width=w-(m.left+m.right);b.x=m.left;b.y=m.top;_10=b.height+b.y+m.bottom;_f-=_10;n.updateBox(this.safeBox(b));}if(s&&s.isVisible()){var b=s.getBox();var m=s.getMargins();b.width=w-(m.left+m.right);b.x=m.left;var _1a=(b.height+m.top+m.bottom);b.y=h-_1a+m.top;_f-=_1a;s.updateBox(this.safeBox(b));}if(_15&&_15.isVisible()){var b=_15.getBox();var m=_15.getMargins();b.height=_f-(m.top+m.bottom);b.x=m.left;b.y=_10+m.top;var _1b=(b.width+m.left+m.right);_11+=_1b;_e-=_1b;_15.updateBox(this.safeBox(b));}if(e&&e.isVisible()){var b=e.getBox();var m=e.getMargins();b.height=_f-(m.top+m.bottom);var _1b=(b.width+m.left+m.right);b.x=w-_1b+m.left;b.y=_10+m.top;_e-=_1b;e.updateBox(this.safeBox(b));}if(c){var m=c.getMargins();var _1c={x:_11+m.left,y:_10+m.top,width:_e-(m.left+m.right),height:_f-(m.top+m.bottom)};c.updateBox(this.safeBox(_1c));}this.el.repaint();this.fireEvent("layout",this);},safeBox:function(box){box.width=Math.max(0,box.width);box.height=Math.max(0,box.height);return box;},add:function(_1e,_1f){_1e=_1e.toLowerCase();return this.regions[_1e].add(_1f);},remove:function(_20,_21){_20=_20.toLowerCase();return this.regions[_20].remove(_21);},findPanel:function(_22){var rs=this.regions;for(var _24 in rs){if(typeof rs[_24]!="function"){var p=rs[_24].getPanel(_22);if(p){return p;}}}return null;},showPanel:function(_26){var rs=this.regions;for(var _28 in rs){var r=rs[_28];if(typeof r!="function"){if(r.hasPanel(_26)){return r.showPanel(_26);}}}return null;},restoreState:function(_2a){if(!_2a){_2a=Ext.state.Manager;}var sm=new Ext.LayoutStateManager();sm.init(this,_2a);},batchAdd:function(_2c){this.beginUpdate();for(var _2d in _2c){var lr=this.regions[_2d];if(lr){this.addTypedPanels(lr,_2c[_2d]);}}this.endUpdate();},addTypedPanels:function(lr,ps){if(typeof ps=="string"){lr.add(new Ext.ContentPanel(ps));}else{if(ps instanceof Array){for(var i=0,len=ps.length;i1){for(var i=0,_f=arguments.length;i<_f;i++){this.add(arguments[i]);}return null;}if(this.hasPanel(_d)){this.showPanel(_d);return _d;}var el=_d.getEl();if(el.dom.parentNode!=this.mgr.el.dom){this.mgr.el.dom.appendChild(el.dom);}if(_d.setRegion){_d.setRegion(this);}this.panels.add(_d);el.setStyle("position","absolute");if(!_d.background){this.setActivePanel(_d);if(this.config.initialSize&&this.panels.getCount()==1){this.resizeTo(this.config.initialSize);}}this.fireEvent("paneladded",this,_d);return _d;},hasPanel:function(_11){if(typeof _11=="object"){_11=_11.getId();}return this.getPanel(_11)?true:false;},remove:function(_12,_13){_12=this.getPanel(_12);if(!_12){return null;}var e={};this.fireEvent("beforeremove",this,_12,e);if(e.cancel===true){return null;}var _15=_12.getId();this.panels.removeKey(_15);return _12;},getPanel:function(id){if(typeof id=="object"){return id;}return this.panels.get(id);},getPosition:function(){return this.position;}}); - -Ext.LayoutRegion=function(_1,_2,_3){Ext.LayoutRegion.superclass.constructor.call(this,_1,_2,_3,true);var dh=Ext.DomHelper;this.el=dh.append(_1.el.dom,{tag:"div",cls:"x-layout-panel x-layout-panel-"+this.position},true);this.titleEl=dh.append(this.el.dom,{tag:"div",unselectable:"on",cls:"x-unselectable x-layout-panel-hd x-layout-title-"+this.position,children:[{tag:"span",cls:"x-unselectable x-layout-panel-hd-text",unselectable:"on",html:" "},{tag:"div",cls:"x-unselectable x-layout-panel-hd-tools",unselectable:"on"}]},true);this.titleEl.enableDisplayMode();this.titleTextEl=this.titleEl.dom.firstChild;this.tools=Ext.get(this.titleEl.dom.childNodes[1],true);this.closeBtn=this.createTool(this.tools.dom,"x-layout-close");this.closeBtn.enableDisplayMode();this.closeBtn.on("click",this.closeClicked,this);this.closeBtn.hide();this.createBody(_2);this.visible=true;this.collapsed=false;if(_2.hideWhenEmpty){this.hide();this.on("paneladded",this.validateVisibility,this);this.on("panelremoved",this.validateVisibility,this);}this.applyConfig(_2);};Ext.extend(Ext.LayoutRegion,Ext.BasicLayoutRegion,{createBody:function(){this.bodyEl=this.el.createChild({tag:"div",cls:"x-layout-panel-body"});},applyConfig:function(c){if(c.collapsible&&this.position!="center"&&!this.collapsedEl){var dh=Ext.DomHelper;if(c.titlebar!==false){this.collapseBtn=this.createTool(this.tools.dom,"x-layout-collapse-"+this.position);this.collapseBtn.on("click",this.collapse,this);this.collapseBtn.enableDisplayMode();if(c.showPin===true||this.showPin){this.stickBtn=this.createTool(this.tools.dom,"x-layout-stick");this.stickBtn.enableDisplayMode();this.stickBtn.on("click",this.expand,this);this.stickBtn.hide();}}this.collapsedEl=dh.append(this.mgr.el.dom,{cls:"x-layout-collapsed x-layout-collapsed-"+this.position,children:[{cls:"x-layout-collapsed-tools",children:[{cls:"x-layout-ctools-inner"}]}]},true);if(c.floatable!==false){this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this.collapseClick,this);}if(c.collapsedTitle&&(this.position=="north"||this.position=="south")){this.collapsedTitleTextEl=dh.append(this.collapsedEl.dom,{tag:"div",cls:"x-unselectable x-layout-panel-hd-text",id:"message",unselectable:"on",style:{"float":"left"}});this.collapsedTitleTextEl.innerHTML=c.collapsedTitle;}this.expandBtn=this.createTool(this.collapsedEl.dom.firstChild.firstChild,"x-layout-expand-"+this.position);this.expandBtn.on("click",this.expand,this);}if(this.collapseBtn){this.collapseBtn.setVisible(c.collapsible==true);}this.cmargins=c.cmargins||this.cmargins||(this.position=="west"||this.position=="east"?{top:0,left:2,right:2,bottom:0}:{top:2,left:0,right:0,bottom:2});this.margins=c.margins||this.margins||{top:0,left:0,right:0,bottom:0};this.bottomTabs=c.tabPosition!="top";this.autoScroll=c.autoScroll||false;if(this.autoScroll){this.bodyEl.setStyle("overflow","auto");}else{this.bodyEl.setStyle("overflow","hidden");}if((!c.titlebar&&!c.title)||c.titlebar===false){this.titleEl.hide();}else{this.titleEl.show();if(c.title){this.titleTextEl.innerHTML=c.title;}}this.duration=c.duration||0.3;this.slideDuration=c.slideDuration||0.45;this.config=c;if(c.collapsed){this.collapse(true);}if(c.hidden){this.hide();}},isVisible:function(){return this.visible;},setCollapsedTitle:function(_7){_7=_7||" ";if(this.collapsedTitleTextEl){this.collapsedTitleTextEl.innerHTML=_7;}},getBox:function(){var b;if(!this.collapsed){b=this.el.getBox(false,true);}else{b=this.collapsedEl.getBox(false,true);}return b;},getMargins:function(){return this.collapsed?this.cmargins:this.margins;},highlight:function(){this.el.addClass("x-layout-panel-dragover");},unhighlight:function(){this.el.removeClass("x-layout-panel-dragover");},updateBox:function(_9){this.box=_9;if(!this.collapsed){this.el.dom.style.left=_9.x+"px";this.el.dom.style.top=_9.y+"px";this.updateBody(_9.width,_9.height);}else{this.collapsedEl.dom.style.left=_9.x+"px";this.collapsedEl.dom.style.top=_9.y+"px";this.collapsedEl.setSize(_9.width,_9.height);}if(this.tabs){this.tabs.autoSizeTabs();}},updateBody:function(w,h){if(w!==null){this.el.setWidth(w);w-=this.el.getBorderWidth("rl");if(this.config.adjustments){w+=this.config.adjustments[0];}}if(h!==null){this.el.setHeight(h);h=this.titleEl&&this.titleEl.isDisplayed()?h-(this.titleEl.getHeight()||0):h;h-=this.el.getBorderWidth("tb");if(this.config.adjustments){h+=this.config.adjustments[1];}this.bodyEl.setHeight(h);if(this.tabs){h=this.tabs.syncHeight(h);}}if(this.panelSize){w=w!==null?w:this.panelSize.width;h=h!==null?h:this.panelSize.height;}if(this.activePanel){var el=this.activePanel.getEl();w=w!==null?w:el.getWidth();h=h!==null?h:el.getHeight();this.panelSize={width:w,height:h};this.activePanel.setSize(w,h);}if(Ext.isIE&&this.tabs){this.tabs.el.repaint();}},getEl:function(){return this.el;},hide:function(){if(!this.collapsed){this.el.dom.style.left="-2000px";this.el.hide();}else{this.collapsedEl.dom.style.left="-2000px";this.collapsedEl.hide();}this.visible=false;this.fireEvent("visibilitychange",this,false);},show:function(){if(!this.collapsed){this.el.show();}else{this.collapsedEl.show();}this.visible=true;this.fireEvent("visibilitychange",this,true);},closeClicked:function(){if(this.activePanel){this.remove(this.activePanel);}},collapseClick:function(e){if(this.isSlid){e.stopPropagation();this.slideIn();}else{e.stopPropagation();this.slideOut();}},collapse:function(_e){if(this.collapsed){return;}this.collapsed=true;if(this.split){this.split.el.hide();}if(this.config.animate&&_e!==true){this.fireEvent("invalidated",this);this.animateCollapse();}else{this.el.setLocation(-20000,-20000);this.el.hide();this.collapsedEl.show();this.fireEvent("collapsed",this);this.fireEvent("invalidated",this);}},animateCollapse:function(){},expand:function(e,_10){if(e){e.stopPropagation();}if(!this.collapsed||this.el.hasActiveFx()){return;}if(this.isSlid){this.afterSlideIn();_10=true;}this.collapsed=false;if(this.config.animate&&_10!==true){this.animateExpand();}else{this.el.show();if(this.split){this.split.el.show();}this.collapsedEl.setLocation(-2000,-2000);this.collapsedEl.hide();this.fireEvent("invalidated",this);this.fireEvent("expanded",this);}},animateExpand:function(){},initTabs:function(){this.bodyEl.setStyle("overflow","hidden");var ts=new Ext.TabPanel(this.bodyEl.dom,{tabPosition:this.bottomTabs?"bottom":"top",disableTooltips:this.config.disableTabTips});if(this.config.hideTabs){ts.stripWrap.setDisplayed(false);}this.tabs=ts;ts.resizeTabs=this.config.resizeTabs===true;ts.minTabWidth=this.config.minTabWidth||40;ts.maxTabWidth=this.config.maxTabWidth||250;ts.preferredTabWidth=this.config.preferredTabWidth||150;ts.monitorResize=false;ts.bodyEl.setStyle("overflow",this.config.autoScroll?"auto":"hidden");ts.bodyEl.addClass("x-layout-tabs-body");this.panels.each(this.initPanelAsTab,this);},initPanelAsTab:function(_12){var ti=this.tabs.addTab(_12.getEl().id,_12.getTitle(),null,this.config.closeOnTab&&_12.isClosable());if(_12.tabTip!==undefined){ti.setTooltip(_12.tabTip);}ti.on("activate",function(){this.setActivePanel(_12);},this);if(this.config.closeOnTab){ti.on("beforeclose",function(t,e){e.cancel=true;this.remove(_12);},this);}return ti;},updatePanelTitle:function(_16,_17){if(this.activePanel==_16){this.updateTitle(_17);}if(this.tabs){var ti=this.tabs.getTab(_16.getEl().id);ti.setText(_17);if(_16.tabTip!==undefined){ti.setTooltip(_16.tabTip);}}},updateTitle:function(_19){if(this.titleTextEl&&!this.config.title){this.titleTextEl.innerHTML=(typeof _19!="undefined"&&_19.length>0?_19:" ");}},setActivePanel:function(_1a){_1a=this.getPanel(_1a);if(this.activePanel&&this.activePanel!=_1a){this.activePanel.setActiveState(false);}this.activePanel=_1a;_1a.setActiveState(true);if(this.panelSize){_1a.setSize(this.panelSize.width,this.panelSize.height);}if(this.closeBtn){this.closeBtn.setVisible(!this.config.closeOnTab&&!this.isSlid&&_1a.isClosable());}this.updateTitle(_1a.getTitle());if(this.tabs){this.fireEvent("invalidated",this);}this.fireEvent("panelactivated",this,_1a);},showPanel:function(_1b){if(_1b=this.getPanel(_1b)){if(this.tabs){var tab=this.tabs.getTab(_1b.getEl().id);if(tab.isHidden()){this.tabs.unhideTab(tab.id);}tab.activate();}else{this.setActivePanel(_1b);}}return _1b;},getActivePanel:function(){return this.activePanel;},validateVisibility:function(){if(this.panels.getCount()<1){this.updateTitle(" ");this.closeBtn.hide();this.hide();}else{if(!this.isVisible()){this.show();}}},add:function(_1d){if(arguments.length>1){for(var i=0,len=arguments.length;i0){this.remove(this.panels.first());}},remove:function(_22,_23){_22=this.getPanel(_22);if(!_22){return null;}var e={};this.fireEvent("beforeremove",this,_22,e);if(e.cancel===true){return null;}_23=(typeof _23!="undefined"?_23:(this.config.preservePanels===true||_22.preserve===true));var _25=_22.getId();this.panels.removeKey(_25);if(_23){document.body.appendChild(_22.getEl().dom);}if(this.tabs){this.tabs.removeTab(_22.getEl().id);}else{if(!_23){this.bodyEl.dom.removeChild(_22.getEl().dom);}}if(this.panels.getCount()==1&&this.tabs&&!this.config.alwaysShowTabs){var p=this.panels.first();var _27=document.createElement("div");_27.appendChild(p.getEl().dom);this.bodyEl.update("");this.bodyEl.dom.appendChild(p.getEl().dom);_27=null;this.updateTitle(p.getTitle());this.tabs=null;this.bodyEl.setStyle("overflow",this.config.autoScroll?"auto":"hidden");this.setActivePanel(p);}_22.setRegion(null);if(this.activePanel==_22){this.activePanel=null;}if(this.config.autoDestroy!==false&&_23!==true){try{_22.destroy();}catch(e){}}this.fireEvent("panelremoved",this,_22);return _22;},getTabs:function(){return this.tabs;},createTool:function(_28,_29){var btn=Ext.DomHelper.append(_28,{tag:"div",cls:"x-layout-tools-button",children:[{tag:"div",cls:"x-layout-tools-button-inner "+_29,html:" "}]},true);btn.addClassOnOver("x-layout-tools-button-over");return btn;}}); - -Ext.SplitLayoutRegion=function(_1,_2,_3,_4){this.cursor=_4;Ext.SplitLayoutRegion.superclass.constructor.call(this,_1,_2,_3);};Ext.extend(Ext.SplitLayoutRegion,Ext.LayoutRegion,{splitTip:"Drag to resize.",collapsibleSplitTip:"Drag to resize. Double click to hide.",useSplitTips:false,applyConfig:function(_5){Ext.SplitLayoutRegion.superclass.applyConfig.call(this,_5);if(_5.split){if(!this.split){var _6=Ext.DomHelper.append(this.mgr.el.dom,{tag:"div",id:this.el.id+"-split",cls:"x-layout-split x-layout-split-"+this.position,html:" "});this.split=new Ext.SplitBar(_6,this.el,this.orientation);this.split.on("moved",this.onSplitMove,this);this.split.useShim=_5.useShim===true;this.split.getMaximumSize=this[this.position=="north"||this.position=="south"?"getVMaxSize":"getHMaxSize"].createDelegate(this);if(this.useSplitTips){this.split.el.dom.title=_5.collapsible?this.collapsibleSplitTip:this.splitTip;}if(_5.collapsible){this.split.el.on("dblclick",this.collapse,this);}}if(typeof _5.minSize!="undefined"){this.split.minSize=_5.minSize;}if(typeof _5.maxSize!="undefined"){this.split.maxSize=_5.maxSize;}if(_5.hideWhenEmpty||_5.hidden){this.hideSplitter();}}},getHMaxSize:function(){var _7=this.config.maxSize||10000;var _8=this.mgr.getRegion("center");return Math.min(_7,(this.el.getWidth()+_8.getEl().getWidth())-_8.getMinWidth());},getVMaxSize:function(){var _9=this.config.maxSize||10000;var _a=this.mgr.getRegion("center");return Math.min(_9,(this.el.getHeight()+_a.getEl().getHeight())-_a.getMinHeight());},onSplitMove:function(_b,_c){this.fireEvent("resized",this,_c);},getSplitBar:function(){return this.split;},hide:function(){this.hideSplitter();Ext.SplitLayoutRegion.superclass.hide.call(this);},hideSplitter:function(){if(this.split){this.split.el.setLocation(-2000,-2000);this.split.el.hide();}},show:function(){if(this.split){this.split.el.show();}Ext.SplitLayoutRegion.superclass.show.call(this);},beforeSlide:function(){if(Ext.isGecko){this.bodyEl.clip();if(this.tabs){this.tabs.bodyEl.clip();}if(this.activePanel){this.activePanel.getEl().clip();if(this.activePanel.beforeSlide){this.activePanel.beforeSlide();}}}},afterSlide:function(){if(Ext.isGecko){this.bodyEl.unclip();if(this.tabs){this.tabs.bodyEl.unclip();}if(this.activePanel){this.activePanel.getEl().unclip();if(this.activePanel.afterSlide){this.activePanel.afterSlide();}}}},initAutoHide:function(){if(this.autoHide!==false){if(!this.autoHideHd){var st=new Ext.util.DelayedTask(this.slideIn,this);this.autoHideHd={"mouseout":function(e){if(!e.within(this.el,true)){st.delay(500);}},"mouseover":function(e){st.cancel();},scope:this};}this.el.on(this.autoHideHd);}},clearAutoHide:function(){if(this.autoHide!==false){this.el.un("mouseout",this.autoHideHd.mouseout);this.el.un("mouseover",this.autoHideHd.mouseover);}},clearMonitor:function(){Ext.get(document).un("click",this.slideInIf,this);},slideOut:function(){if(this.isSlid||this.el.hasActiveFx()){return;}this.isSlid=true;if(this.collapseBtn){this.collapseBtn.hide();}this.closeBtnState=this.closeBtn.getStyle("display");this.closeBtn.hide();if(this.stickBtn){this.stickBtn.show();}this.el.show();this.el.alignTo(this.collapsedEl,this.getCollapseAnchor());this.beforeSlide();this.el.setStyle("z-index",20000);this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.afterSlide();this.initAutoHide();Ext.get(document).on("click",this.slideInIf,this);this.fireEvent("slideshow",this);},scope:this,block:true});},afterSlideIn:function(){this.clearAutoHide();this.isSlid=false;this.clearMonitor();this.el.setStyle("z-index","");if(this.collapseBtn){this.collapseBtn.show();}this.closeBtn.setStyle("display",this.closeBtnState);if(this.stickBtn){this.stickBtn.hide();}this.fireEvent("slidehide",this);},slideIn:function(cb){if(!this.isSlid||this.el.hasActiveFx()){Ext.callback(cb);return;}this.isSlid=false;this.beforeSlide();this.el.slideOut(this.getSlideAnchor(),{callback:function(){this.el.setLeftTop(-10000,-10000);this.afterSlide();this.afterSlideIn();Ext.callback(cb);},scope:this,block:true});},slideInIf:function(e){if(!e.within(this.el)){this.slideIn();}},animateCollapse:function(){this.beforeSlide();this.el.setStyle("z-index",20000);var _12=this.getSlideAnchor();this.el.slideOut(_12,{callback:function(){this.el.setStyle("z-index","");this.collapsedEl.slideIn(_12,{duration:0.3});this.afterSlide();this.el.setLocation(-10000,-10000);this.el.hide();this.fireEvent("collapsed",this);},scope:this,block:true});},animateExpand:function(){this.beforeSlide();this.el.alignTo(this.collapsedEl,this.getCollapseAnchor(),this.getExpandAdj());this.el.setStyle("z-index",20000);this.collapsedEl.hide({duration:0.1});this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.el.setStyle("z-index","");this.afterSlide();if(this.split){this.split.el.show();}this.fireEvent("invalidated",this);this.fireEvent("expanded",this);},scope:this,block:true});},anchors:{"west":"left","east":"right","north":"top","south":"bottom"},sanchors:{"west":"l","east":"r","north":"t","south":"b"},canchors:{"west":"tl-tr","east":"tr-tl","north":"tl-bl","south":"bl-tl"},getAnchor:function(){return this.anchors[this.position];},getCollapseAnchor:function(){return this.canchors[this.position];},getSlideAnchor:function(){return this.sanchors[this.position];},getAlignAdj:function(){var cm=this.cmargins;switch(this.position){case "west":return [0,0];break;case "east":return [0,0];break;case "north":return [0,0];break;case "south":return [0,0];break;}},getExpandAdj:function(){var c=this.collapsedEl,cm=this.cmargins;switch(this.position){case "west":return [-(cm.right+c.getWidth()+cm.left),0];break;case "east":return [cm.right+c.getWidth()+cm.left,0];break;case "north":return [0,-(cm.top+cm.bottom+c.getHeight())];break;case "south":return [0,cm.top+cm.bottom+c.getHeight()];break;}}}); - -Ext.CenterLayoutRegion=function(_1,_2){Ext.CenterLayoutRegion.superclass.constructor.call(this,_1,_2,"center");this.visible=true;this.minWidth=_2.minWidth||20;this.minHeight=_2.minHeight||20;};Ext.extend(Ext.CenterLayoutRegion,Ext.LayoutRegion,{hide:function(){},show:function(){},getMinWidth:function(){return this.minWidth;},getMinHeight:function(){return this.minHeight;}});Ext.NorthLayoutRegion=function(_3,_4){Ext.NorthLayoutRegion.superclass.constructor.call(this,_3,_4,"north","n-resize");if(this.split){this.split.placement=Ext.SplitBar.TOP;this.split.orientation=Ext.SplitBar.VERTICAL;this.split.el.addClass("x-layout-split-v");}var _5=_4.initialSize||_4.height;if(typeof _5!="undefined"){this.el.setHeight(_5);}};Ext.extend(Ext.NorthLayoutRegion,Ext.SplitLayoutRegion,{orientation:Ext.SplitBar.VERTICAL,getBox:function(){if(this.collapsed){return this.collapsedEl.getBox();}var _6=this.el.getBox();if(this.split){_6.height+=this.split.el.getHeight();}return _6;},updateBox:function(_7){if(this.split&&!this.collapsed){_7.height-=this.split.el.getHeight();this.split.el.setLeft(_7.x);this.split.el.setTop(_7.y+_7.height);this.split.el.setWidth(_7.width);}if(this.collapsed){this.updateBody(_7.width,null);}Ext.NorthLayoutRegion.superclass.updateBox.call(this,_7);}});Ext.SouthLayoutRegion=function(_8,_9){Ext.SouthLayoutRegion.superclass.constructor.call(this,_8,_9,"south","s-resize");if(this.split){this.split.placement=Ext.SplitBar.BOTTOM;this.split.orientation=Ext.SplitBar.VERTICAL;this.split.el.addClass("x-layout-split-v");}var _a=_9.initialSize||_9.height;if(typeof _a!="undefined"){this.el.setHeight(_a);}};Ext.extend(Ext.SouthLayoutRegion,Ext.SplitLayoutRegion,{orientation:Ext.SplitBar.VERTICAL,getBox:function(){if(this.collapsed){return this.collapsedEl.getBox();}var _b=this.el.getBox();if(this.split){var sh=this.split.el.getHeight();_b.height+=sh;_b.y-=sh;}return _b;},updateBox:function(_d){if(this.split&&!this.collapsed){var sh=this.split.el.getHeight();_d.height-=sh;_d.y+=sh;this.split.el.setLeft(_d.x);this.split.el.setTop(_d.y-sh);this.split.el.setWidth(_d.width);}if(this.collapsed){this.updateBody(_d.width,null);}Ext.SouthLayoutRegion.superclass.updateBox.call(this,_d);}});Ext.EastLayoutRegion=function(_f,_10){Ext.EastLayoutRegion.superclass.constructor.call(this,_f,_10,"east","e-resize");if(this.split){this.split.placement=Ext.SplitBar.RIGHT;this.split.orientation=Ext.SplitBar.HORIZONTAL;this.split.el.addClass("x-layout-split-h");}var _11=_10.initialSize||_10.width;if(typeof _11!="undefined"){this.el.setWidth(_11);}};Ext.extend(Ext.EastLayoutRegion,Ext.SplitLayoutRegion,{orientation:Ext.SplitBar.HORIZONTAL,getBox:function(){if(this.collapsed){return this.collapsedEl.getBox();}var box=this.el.getBox();if(this.split){var sw=this.split.el.getWidth();box.width+=sw;box.x-=sw;}return box;},updateBox:function(box){if(this.split&&!this.collapsed){var sw=this.split.el.getWidth();box.width-=sw;this.split.el.setLeft(box.x);this.split.el.setTop(box.y);this.split.el.setHeight(box.height);box.x+=sw;}if(this.collapsed){this.updateBody(null,box.height);}Ext.EastLayoutRegion.superclass.updateBox.call(this,box);}});Ext.WestLayoutRegion=function(mgr,_17){Ext.WestLayoutRegion.superclass.constructor.call(this,mgr,_17,"west","w-resize");if(this.split){this.split.placement=Ext.SplitBar.LEFT;this.split.orientation=Ext.SplitBar.HORIZONTAL;this.split.el.addClass("x-layout-split-h");}var _18=_17.initialSize||_17.width;if(typeof _18!="undefined"){this.el.setWidth(_18);}};Ext.extend(Ext.WestLayoutRegion,Ext.SplitLayoutRegion,{orientation:Ext.SplitBar.HORIZONTAL,getBox:function(){if(this.collapsed){return this.collapsedEl.getBox();}var box=this.el.getBox();if(this.split){box.width+=this.split.el.getWidth();}return box;},updateBox:function(box){if(this.split&&!this.collapsed){var sw=this.split.el.getWidth();box.width-=sw;this.split.el.setLeft(box.x+box.width);this.split.el.setTop(box.y);this.split.el.setHeight(box.height);}if(this.collapsed){this.updateBody(null,box.height);}Ext.WestLayoutRegion.superclass.updateBox.call(this,box);}}); - -Ext.LayoutStateManager=function(_1){this.state={north:{},south:{},east:{},west:{}};};Ext.LayoutStateManager.prototype={init:function(_2,_3){this.provider=_3;var _4=_3.get(_2.id+"-layout-state");if(_4){var _5=_2.isUpdating();if(!_5){_2.beginUpdate();}for(var _6 in _4){if(typeof _4[_6]!="function"){var _7=_4[_6];var r=_2.getRegion(_6);if(r&&_7){if(_7.size){r.resizeTo(_7.size);}if(_7.collapsed==true){r.collapse(true);}else{r.expand(null,true);}}}}if(!_5){_2.endUpdate();}this.state=_4;}this.layout=_2;_2.on("regionresized",this.onRegionResized,this);_2.on("regioncollapsed",this.onRegionCollapsed,this);_2.on("regionexpanded",this.onRegionExpanded,this);},storeState:function(){this.provider.set(this.layout.id+"-layout-state",this.state);},onRegionResized:function(_9,_a){this.state[_9.getPosition()].size=_a;this.storeState();},onRegionCollapsed:function(_b){this.state[_b.getPosition()].collapsed=true;this.storeState();},onRegionExpanded:function(_c){this.state[_c.getPosition()].collapsed=false;this.storeState();}}; - -Ext.ContentPanel=function(el,_2,_3){Ext.ContentPanel.superclass.constructor.call(this);if(el.autoCreate){_2=el;el=Ext.id();}this.el=Ext.get(el);if(!this.el&&_2&&_2.autoCreate){if(typeof _2.autoCreate=="object"){if(!_2.autoCreate.id){_2.autoCreate.id=_2.id||el;}this.el=Ext.DomHelper.append(document.body,_2.autoCreate,true);}else{this.el=Ext.DomHelper.append(document.body,{tag:"div",cls:"x-layout-inactive-content",id:_2.id||el},true);}}this.closable=false;this.loaded=false;this.active=false;if(typeof _2=="string"){this.title=_2;}else{Ext.apply(this,_2);}if(this.resizeEl){this.resizeEl=Ext.get(this.resizeEl,true);}else{this.resizeEl=this.el;}this.addEvents({"activate":true,"deactivate":true,"resize":true});if(this.autoScroll){this.resizeEl.setStyle("overflow","auto");}_3=_3||this.content;if(_3){this.setContent(_3);}if(_2&&_2.url){this.setUrl(this.url,this.params,this.loadOnce);}};Ext.extend(Ext.ContentPanel,Ext.util.Observable,{tabTip:"",setRegion:function(_4){this.region=_4;if(_4){this.el.replaceClass("x-layout-inactive-content","x-layout-active-content");}else{this.el.replaceClass("x-layout-active-content","x-layout-inactive-content");}},getToolbar:function(){return this.toolbar;},setActiveState:function(_5){this.active=_5;if(!_5){this.fireEvent("deactivate",this);}else{this.fireEvent("activate",this);}},setContent:function(_6,_7){this.el.update(_6,_7);},ignoreResize:function(w,h){if(this.lastSize&&this.lastSize.width==w&&this.lastSize.height==h){return true;}else{this.lastSize={width:w,height:h};return false;}},getUpdateManager:function(){return this.el.getUpdateManager();},load:function(){var um=this.el.getUpdateManager();um.update.apply(um,arguments);return this;},setUrl:function(_b,_c,_d){if(this.refreshDelegate){this.removeListener("activate",this.refreshDelegate);}this.refreshDelegate=this._handleRefresh.createDelegate(this,[_b,_c,_d]);this.on("activate",this._handleRefresh.createDelegate(this,[_b,_c,_d]));return this.el.getUpdateManager();},_handleRefresh:function(_e,_f,_10){if(!_10||!this.loaded){var _11=this.el.getUpdateManager();_11.update(_e,_f,this._setLoaded.createDelegate(this));}},_setLoaded:function(){this.loaded=true;},getId:function(){return this.el.id;},getEl:function(){return this.el;},adjustForComponents:function(_12,_13){if(this.resizeEl!=this.el){_12-=this.el.getFrameWidth("lr");_13-=this.el.getFrameWidth("tb");}if(this.toolbar){var te=this.toolbar.getEl();_13-=te.getHeight();te.setWidth(_12);}if(this.adjustments){_12+=this.adjustments[0];_13+=this.adjustments[1];}return {"width":_12,"height":_13};},setSize:function(_15,_16){if(this.fitToFrame&&!this.ignoreResize(_15,_16)){if(this.fitContainer&&this.resizeEl!=this.el){this.el.setSize(_15,_16);}var _17=this.adjustForComponents(_15,_16);this.resizeEl.setSize(this.autoWidth?"auto":_17.width,this.autoHeight?"auto":_17.height);this.fireEvent("resize",this,_17.width,_17.height);}},getTitle:function(){return this.title;},setTitle:function(_18){this.title=_18;if(this.region){this.region.updatePanelTitle(this,_18);}},isClosable:function(){return this.closable;},beforeSlide:function(){this.el.clip();this.resizeEl.clip();},afterSlide:function(){this.el.unclip();this.resizeEl.unclip();},refresh:function(){if(this.refreshDelegate){this.loaded=false;this.refreshDelegate();}},destroy:function(){this.el.removeAllListeners();var _19=document.createElement("span");_19.appendChild(this.el.dom);_19.innerHTML="";this.el.remove();this.el=null;}});Ext.GridPanel=function(_1a,_1b){this.wrapper=Ext.DomHelper.append(document.body,{tag:"div",cls:"x-layout-grid-wrapper x-layout-inactive-content"},true);this.wrapper.dom.appendChild(_1a.container.dom);Ext.GridPanel.superclass.constructor.call(this,this.wrapper,_1b);if(this.toolbar){this.toolbar.el.insertBefore(this.wrapper.dom.firstChild);}_1a.monitorWindowResize=false;_1a.autoHeight=false;_1a.autoWidth=false;this.grid=_1a;this.grid.container.replaceClass("x-layout-inactive-content","x-layout-component-panel");};Ext.extend(Ext.GridPanel,Ext.ContentPanel,{getId:function(){return this.grid.id;},getGrid:function(){return this.grid;},setSize:function(_1c,_1d){if(!this.ignoreResize(_1c,_1d)){var _1e=this.grid;var _1f=this.adjustForComponents(_1c,_1d);_1e.container.setSize(_1f.width,_1f.height);_1e.autoSize();}},beforeSlide:function(){this.grid.getView().scroller.clip();},afterSlide:function(){this.grid.getView().scroller.unclip();},destroy:function(){this.grid.destroy();delete this.grid;Ext.GridPanel.superclass.destroy.call(this);}});Ext.NestedLayoutPanel=function(_20,_21){Ext.NestedLayoutPanel.superclass.constructor.call(this,_20.getEl(),_21);_20.monitorWindowResize=false;this.layout=_20;this.layout.getEl().addClass("x-layout-nested-layout");};Ext.extend(Ext.NestedLayoutPanel,Ext.ContentPanel,{setSize:function(_22,_23){if(!this.ignoreResize(_22,_23)){var _24=this.adjustForComponents(_22,_23);var el=this.layout.getEl();el.setSize(_24.width,_24.height);var _26=el.dom.offsetWidth;this.layout.layout();if(Ext.isIE&&!this.initialized){this.initialized=true;this.layout.layout();}}},getLayout:function(){return this.layout;}});Ext.ScrollPanel=function(el,_28,_29){_28=_28||{};_28.fitToFrame=true;Ext.ScrollPanel.superclass.constructor.call(this,el,_28,_29);this.el.dom.style.overflow="hidden";var _2a=this.el.wrap({cls:"x-scroller x-layout-inactive-content"});this.el.removeClass("x-layout-inactive-content");this.el.on("mousewheel",this.onWheel,this);var up=_2a.createChild({cls:"x-scroller-up",html:" "},this.el.dom);var _2c=_2a.createChild({cls:"x-scroller-down",html:" "});up.unselectable();_2c.unselectable();up.on("click",this.scrollUp,this);_2c.on("click",this.scrollDown,this);up.addClassOnOver("x-scroller-btn-over");_2c.addClassOnOver("x-scroller-btn-over");up.addClassOnClick("x-scroller-btn-click");_2c.addClassOnClick("x-scroller-btn-click");this.adjustments=[0,-(up.getHeight()+_2c.getHeight())];this.resizeEl=this.el;this.el=_2a;this.up=up;this.down=_2c;};Ext.extend(Ext.ScrollPanel,Ext.ContentPanel,{increment:100,wheelIncrement:5,scrollUp:function(){this.resizeEl.scroll("up",this.increment,{callback:this.afterScroll,scope:this});},scrollDown:function(){this.resizeEl.scroll("down",this.increment,{callback:this.afterScroll,scope:this});},afterScroll:function(){var el=this.resizeEl;var t=el.dom.scrollTop,h=el.dom.scrollHeight,ch=el.dom.clientHeight;this.up[t==0?"addClass":"removeClass"]("x-scroller-btn-disabled");this.down[h-t<=ch?"addClass":"removeClass"]("x-scroller-btn-disabled");},setSize:function(){Ext.ScrollPanel.superclass.setSize.apply(this,arguments);this.afterScroll();},onWheel:function(e){var d=e.getWheelDelta();this.resizeEl.dom.scrollTop-=(d*this.wheelIncrement);this.afterScroll();e.stopEvent();},setContent:function(_33,_34){this.resizeEl.update(_33,_34);}}); - -Ext.ReaderLayout=function(_1,_2){var c=_1||{size:{}};Ext.ReaderLayout.superclass.constructor.call(this,_2||document.body,{north:c.north!==false?Ext.apply({split:false,initialSize:32,titlebar:false},c.north):false,west:c.west!==false?Ext.apply({split:true,initialSize:200,minSize:175,maxSize:400,titlebar:true,collapsible:true,animate:true,margins:{left:5,right:0,bottom:5,top:5},cmargins:{left:5,right:5,bottom:5,top:5}},c.west):false,east:c.east!==false?Ext.apply({split:true,initialSize:200,minSize:175,maxSize:400,titlebar:true,collapsible:true,animate:true,margins:{left:0,right:5,bottom:5,top:5},cmargins:{left:5,right:5,bottom:5,top:5}},c.east):false,center:Ext.apply({tabPosition:"top",autoScroll:false,closeOnTab:true,titlebar:false,margins:{left:c.west!==false?0:5,right:c.east!==false?0:5,bottom:5,top:2}},c.center)});this.el.addClass("x-reader");this.beginUpdate();var _4=new Ext.BorderLayout(Ext.get(document.body).createChild(),{south:c.preview!==false?Ext.apply({split:true,initialSize:200,minSize:100,autoScroll:true,collapsible:true,titlebar:true,cmargins:{top:5,left:0,right:0,bottom:0}},c.preview):false,center:Ext.apply({autoScroll:false,titlebar:false,minHeight:200},c.listView)});this.add("center",new Ext.NestedLayoutPanel(_4,Ext.apply({title:c.mainTitle||"",tabTip:""},c.innerPanelCfg)));this.endUpdate();this.regions.preview=_4.getRegion("south");this.regions.listView=_4.getRegion("center");};Ext.extend(Ext.ReaderLayout,Ext.BorderLayout); - diff --git a/www/extras/extjs/package/menu/menus.js b/www/extras/extjs/package/menu/menus.js deleted file mode 100644 index bf4ed2ae4..000000000 --- a/www/extras/extjs/package/menu/menus.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.menu.Menu=function(_1){Ext.apply(this,_1);this.id=this.id||Ext.id();this.addEvents({beforeshow:true,beforehide:true,show:true,hide:true,click:true,mouseover:true,mouseout:true,itemclick:true});Ext.menu.MenuMgr.register(this);var _2=this.items;this.items=new Ext.util.MixedCollection();if(_2){this.add.apply(this,_2);}};Ext.extend(Ext.menu.Menu,Ext.util.Observable,{minWidth:120,shadow:"sides",subMenuAlign:"tl-tr?",defaultAlign:"tl-bl?",allowOtherMenus:false,render:function(){if(this.el){return;}var el=this.el=new Ext.Layer({cls:"x-menu",shadow:this.shadow,constrain:false,parentEl:this.parentEl||document.body,zindex:15000});this.keyNav=new Ext.menu.MenuNav(this);if(this.plain){el.addClass("x-menu-plain");}if(this.cls){el.addClass(this.cls);}this.focusEl=el.createChild({tag:"a",cls:"x-menu-focus",href:"#",onclick:"return false;",tabIndex:"-1"});var ul=el.createChild({tag:"ul",cls:"x-menu-list"});ul.on("click",this.onClick,this);ul.on("mouseover",this.onMouseOver,this);ul.on("mouseout",this.onMouseOut,this);this.items.each(function(_5){var li=document.createElement("li");li.className="x-menu-list-item";ul.dom.appendChild(li);_5.render(li,this);},this);this.ul=ul;this.autoWidth();},autoWidth:function(){var el=this.el,ul=this.ul;if(!el){return;}var w=this.width;if(w){el.setWidth(w);}else{if(Ext.isIE){el.setWidth(this.minWidth);var t=el.dom.offsetWidth;el.setWidth(ul.getWidth()+el.getFrameWidth("lr"));}}},delayAutoWidth:function(){if(this.rendered){if(!this.awTask){this.awTask=new Ext.util.DelayedTask(this.autoWidth,this);}this.awTask.delay(20);}},findTargetItem:function(e){var t=e.getTarget(".x-menu-list-item",this.ul,true);if(t&&t.menuItemId){return this.items.get(t.menuItemId);}},onClick:function(e){var t;if(t=this.findTargetItem(e)){t.onClick(e);this.fireEvent("click",this,t,e);}},setActiveItem:function(_f,_10){if(_f!=this.activeItem){if(this.activeItem){this.activeItem.deactivate();}this.activeItem=_f;_f.activate(_10);}else{if(_10){_f.expandMenu();}}},tryActivate:function(_11,_12){var _13=this.items;for(var i=_11,len=_13.length;i>=0&&i0){hideAll();}});}function hideAll(){if(_2.length>0){var c=_2.clone();c.each(function(m){m.hide();});}}function onHide(m){_2.remove(m);if(_2.length<1){Ext.get(document).un("mousedown",onMouseDown);_4=false;}}function onShow(m){var _a=_2.last();_5=new Date();_2.add(m);if(!_4){Ext.get(document).on("mousedown",onMouseDown);_4=true;}if(m.parentMenu){m.getEl().setZIndex(parseInt(m.parentMenu.getEl().getStyle("z-index"),10)+3);m.parentMenu.activeChild=m;}else{if(_a&&_a.isVisible()){m.getEl().setZIndex(parseInt(_a.getEl().getStyle("z-index"),10)+3);}}}function onBeforeHide(m){if(m.activeChild){m.activeChild.hide();}if(m.autoHideTimer){clearTimeout(m.autoHideTimer);delete m.autoHideTimer;}}function onBeforeShow(m){var pm=m.parentMenu;if(!pm&&!m.allowOtherMenus){hideAll();}else{if(pm&&pm.activeChild){pm.activeChild.hide();}}}function onMouseDown(e){if(_5.getElapsed()>50&&_2.length>0&&!e.getTarget(".x-menu")){hideAll();}}function onBeforeCheck(mi,_10){if(_10){var g=_3[mi.group];for(var i=0,l=g.length;i{1}",this.icon||Ext.BLANK_IMAGE_URL,this.text);this.el=el;Ext.menu.Item.superclass.onRender.call(this,_2,_3);},setText:function(_5){this.text=_5;if(this.rendered){this.el.update(String.format("{1}",this.icon||Ext.BLANK_IMAGE_URL,this.text));this.parentMenu.autoWidth();}},handleClick:function(e){if(!this.href){e.stopEvent();}Ext.menu.Item.superclass.handleClick.apply(this,arguments);},activate:function(_7){if(Ext.menu.Item.superclass.activate.apply(this,arguments)){this.focus();if(_7){this.expandMenu();}}return true;},shouldDeactivate:function(e){if(Ext.menu.Item.superclass.shouldDeactivate.call(this,e)){if(this.menu&&this.menu.isVisible()){return !this.menu.getEl().getRegion().contains(e.getPoint());}return true;}return false;},deactivate:function(){Ext.menu.Item.superclass.deactivate.apply(this,arguments);this.hideMenu();},expandMenu:function(_9){if(!this.disabled&&this.menu){if(!this.menu.isVisible()){this.menu.show(this.container,this.parentMenu.subMenuAlign||"tl-tr?",this.parentMenu);}if(_9){this.menu.tryActivate(0,1);}}},hideMenu:function(){if(this.menu&&this.menu.isVisible()){this.menu.hide();}}}); - -Ext.menu.CheckItem=function(_1){Ext.menu.CheckItem.superclass.constructor.call(this,_1);this.addEvents({"beforecheckchange":true,"checkchange":true});if(this.checkHandler){this.on("checkchange",this.checkHandler,this.scope);}};Ext.extend(Ext.menu.CheckItem,Ext.menu.Item,{itemCls:"x-menu-item x-menu-check-item",groupClass:"x-menu-group-item",checked:false,ctype:"Ext.menu.CheckItem",onRender:function(c){Ext.menu.CheckItem.superclass.onRender.apply(this,arguments);if(this.group){this.el.addClass(this.groupClass);}Ext.menu.MenuMgr.registerCheckable(this);if(this.checked){this.checked=false;this.setChecked(true,true);}},destroy:function(){if(this.rendered){Ext.menu.MenuMgr.unregisterCheckable(this);}Ext.menu.CheckItem.superclass.destroy.apply(this,arguments);},setChecked:function(_3,_4){if(this.checked!=_3&&this.fireEvent("beforecheckchange",this,_3)!==false){if(this.container){this.container[_3?"addClass":"removeClass"]("x-menu-item-checked");}this.checked=_3;if(_4!==true){this.fireEvent("checkchange",this,_3);}}},handleClick:function(e){if(!this.disabled&&!(this.checked&&this.group)){this.setChecked(!this.checked);}Ext.menu.CheckItem.superclass.handleClick.apply(this,arguments);}}); - -Ext.menu.Adapter=function(_1,_2){Ext.menu.Adapter.superclass.constructor.call(this,_2);this.component=_1;};Ext.extend(Ext.menu.Adapter,Ext.menu.BaseItem,{canActivate:true,onRender:function(_3,_4){this.component.render(_3);this.el=this.component.getEl();},activate:function(){if(this.disabled){return false;}this.component.focus();this.fireEvent("activate",this);return true;},deactivate:function(){this.fireEvent("deactivate",this);},disable:function(){this.component.disable();Ext.menu.Adapter.superclass.disable.call(this);},enable:function(){this.component.enable();Ext.menu.Adapter.superclass.enable.call(this);}}); - -Ext.menu.DateItem=function(_1){Ext.menu.DateItem.superclass.constructor.call(this,new Ext.DatePicker(_1),_1);this.picker=this.component;this.addEvents({select:true});this.picker.on("render",function(_2){_2.getEl().swallowEvent("click");_2.container.addClass("x-menu-date-item");});this.picker.on("select",this.onSelect,this);};Ext.extend(Ext.menu.DateItem,Ext.menu.Adapter,{onSelect:function(_3,_4){this.fireEvent("select",this,_4,_3);Ext.menu.DateItem.superclass.handleClick.call(this);}}); - -Ext.menu.ColorItem=function(_1){Ext.menu.ColorItem.superclass.constructor.call(this,new Ext.ColorPalette(_1),_1);this.palette=this.component;this.relayEvents(this.palette,["select"]);if(this.selectHandler){this.on("select",this.selectHandler,this.scope);}};Ext.extend(Ext.menu.ColorItem,Ext.menu.Adapter); - -Ext.menu.DateMenu=function(_1){Ext.menu.DateMenu.superclass.constructor.call(this,_1);this.plain=true;var di=new Ext.menu.DateItem(_1);this.add(di);this.picker=di.picker;this.relayEvents(di,["select"]);};Ext.extend(Ext.menu.DateMenu,Ext.menu.Menu); - -Ext.menu.ColorMenu=function(_1){Ext.menu.ColorMenu.superclass.constructor.call(this,_1);this.plain=true;var ci=new Ext.menu.ColorItem(_1);this.add(ci);this.palette=ci.palette;this.relayEvents(ci,["select"]);};Ext.extend(Ext.menu.ColorMenu,Ext.menu.Menu); - diff --git a/www/extras/extjs/package/qtips/qtips.js b/www/extras/extjs/package/qtips/qtips.js deleted file mode 100644 index dde35ef6c..000000000 --- a/www/extras/extjs/package/qtips/qtips.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.QuickTips=function(){var el,_2,_3,_4,tm,_6,_7,_8={},_9,_a=null,_b,_c;var ce,bd,xy,dd;var _11=false,_12=true,_13=false;var _14=1,_15=1,_16=1,_17=[];var _18=function(e){if(_12){return;}var t=e.getTarget();if(!t||t.nodeType!==1||t==document||t==document.body){return;}if(ce&&t==ce.el){clearTimeout(_15);return;}if(t&&_8[t.id]){_8[t.id].el=t;_14=_1b.defer(tm.showDelay,tm,[_8[t.id]]);return;}var ttp,et=Ext.fly(t);var ns=_6.namespace;if(tm.interceptTitles&&t.title){ttp=t.title;t.qtip=ttp;t.removeAttribute("title");e.preventDefault();}else{ttp=t.qtip||et.getAttributeNS(ns,_6.attribute);}if(ttp){_14=_1b.defer(tm.showDelay,tm,[{el:t,text:ttp,width:et.getAttributeNS(ns,_6.width),autoHide:et.getAttributeNS(ns,_6.hide)!="user",title:et.getAttributeNS(ns,_6.title),cls:et.getAttributeNS(ns,_6.cls)}]);}};var _1f=function(e){clearTimeout(_14);var t=e.getTarget();if(t&&ce&&ce.el==t&&(tm.autoHide&&ce.autoHide!==false)){_15=setTimeout(_22,tm.hideDelay);}};var _23=function(e){if(_12){return;}xy=e.getXY();xy[1]+=18;if(tm.trackMouse&&ce){el.setXY(xy);}};var _25=function(e){clearTimeout(_14);clearTimeout(_15);if(!e.within(el)){if(tm.hideOnClick){_22();tm.disable();}}};var _27=function(e){tm.enable();};var _29=function(){return _b.getPadding("l")+_c.getPadding("r");};var _1b=function(o){if(_12){return;}clearTimeout(_16);ce=o;if(_a){el.removeClass(_a);_a=null;}if(ce.cls){el.addClass(ce.cls);_a=ce.cls;}if(ce.title){_4.update(ce.title);_4.show();}else{_4.update("");_4.hide();}el.dom.style.width=tm.maxWidth+"px";_3.update(o.text);var p=_29(),w=ce.width;if(!w){var td=_3.dom;var aw=Math.max(td.offsetWidth,td.clientWidth,td.scrollWidth);if(aw>tm.maxWidth){w=tm.maxWidth;}else{if(aw

      ");_4=el.child("h3");_4.enableDisplayMode("block");_2=el.child("div.x-tip-bd");_3=el.child("div.x-tip-bd-inner");_b=el.child("div.x-tip-bd-left");_c=el.child("div.x-tip-bd-right");_7=el.child("div.x-tip-close");_7.enableDisplayMode("block");_7.on("click",_22);d=Ext.get(document);d.on("mousedown",_25);d.on("mouseup",_27);d.on("mouseover",_18);d.on("mouseout",_1f);d.on("mousemove",_23);_9=d.addKeyListener(27,_22);_9.disable();if(Ext.dd.DD){dd=el.initDD("default",null,{onDrag:function(){el.sync();}});dd.setHandleElId(_4.id);dd.lock();}_13=true;}this.enable();},register:function(_32){var cs=_32 instanceof Array?_32:arguments;for(var i=0,len=cs.length;i0){if(m>(inc/2)){_1e=_1b+(inc-m);}else{_1e=_1b-m;}}return Math.max(min,_1e);},resizeElement:function(){var box=this.proxy.getBox();if(this.updateBox){this.el.setBox(box,false,this.animate,this.duration,null,this.easing);}else{this.el.setSize(box.width,box.height,this.animate,this.duration,null,this.easing);}this.updateChildSize();this.proxy.hide();return box;},constrain:function(v,_22,m,mx){if(v-_22mx){_22=mx-v;}}return _22;},onMouseMove:function(e){if(this.enabled){try{var _26=this.curSize||this.startBox;var x=this.startBox.x,y=this.startBox.y;var ox=x,oy=y;var w=_26.width,h=_26.height;var ow=w,oh=h;var mw=this.minWidth,mh=this.minHeight;var mxw=this.maxWidth,mxh=this.maxHeight;var wi=this.widthIncrement;var hi=this.heightIncrement;var _35=e.getXY();var _36=-(this.startPoint[0]-Math.max(this.minX,_35[0]));var _37=-(this.startPoint[1]-Math.max(this.minY,_35[1]));var pos=this.activeHandle.position;switch(pos){case "east":w+=_36;w=Math.min(Math.max(mw,w),mxw);break;case "south":h+=_37;h=Math.min(Math.max(mh,h),mxh);break;case "southeast":w+=_36;h+=_37;w=Math.min(Math.max(mw,w),mxw);h=Math.min(Math.max(mh,h),mxh);break;case "north":_37=this.constrain(h,_37,mh,mxh);y+=_37;h-=_37;break;case "west":_36=this.constrain(w,_36,mw,mxw);x+=_36;w-=_36;break;case "northeast":w+=_36;w=Math.min(Math.max(mw,w),mxw);_37=this.constrain(h,_37,mh,mxh);y+=_37;h-=_37;break;case "northwest":_36=this.constrain(w,_36,mw,mxw);_37=this.constrain(h,_37,mh,mxh);y+=_37;h-=_37;x+=_36;w-=_36;break;case "southwest":_36=this.constrain(w,_36,mw,mxw);h+=_37;h=Math.min(Math.max(mh,h),mxh);x+=_36;w-=_36;break;}var sw=this.snap(w,wi,mw);var sh=this.snap(h,hi,mh);if(sw!=w||sh!=h){switch(pos){case "northeast":y-=sh-h;break;case "north":y-=sh-h;break;case "southwest":x-=sw-w;break;case "west":x-=sw-w;break;case "northwest":x-=sw-w;y-=sh-h;break;}w=sw;h=sh;}if(this.preserveRatio){switch(pos){case "southeast":case "east":h=oh*(w/ow);h=Math.min(Math.max(mh,h),mxh);w=ow*(h/oh);break;case "south":w=ow*(h/oh);w=Math.min(Math.max(mw,w),mxw);h=oh*(w/ow);break;case "northeast":w=ow*(h/oh);w=Math.min(Math.max(mw,w),mxw);h=oh*(w/ow);break;case "north":var tw=w;w=ow*(h/oh);w=Math.min(Math.max(mw,w),mxw);h=oh*(w/ow);x+=(tw-w)/2;break;case "southwest":h=oh*(w/ow);h=Math.min(Math.max(mh,h),mxh);var tw=w;w=ow*(h/oh);x+=tw-w;break;case "west":var th=h;h=oh*(w/ow);h=Math.min(Math.max(mh,h),mxh);y+=(th-h)/2;var tw=w;w=ow*(h/oh);x+=tw-w;break;case "northwest":var tw=w;var th=h;h=oh*(w/ow);h=Math.min(Math.max(mh,h),mxh);w=ow*(h/oh);y+=th-h;x+=tw-w;break;}}this.proxy.setBounds(x,y,w,h);if(this.dynamic){this.resizeElement();}}catch(e){}}},handleOver:function(){if(this.enabled){this.el.addClass("x-resizable-over");}},handleOut:function(){if(!this.resizing){this.el.removeClass("x-resizable-over");}},getEl:function(){return this.el;},getResizeChild:function(){return this.resizeChild;},destroy:function(_3d){this.proxy.remove();this.overlay.removeAllListeners();this.overlay.remove();var ps=Ext.Resizable.positions;for(var k in ps){if(typeof ps[k]!="function"&&this[ps[k]]){var h=this[ps[k]];h.el.removeAllListeners();h.el.remove();}}if(_3d){this.el.update("");this.el.remove();}}});Ext.Resizable.positions={n:"north",s:"south",e:"east",w:"west",se:"southeast",sw:"southwest",nw:"northwest",ne:"northeast"};Ext.Resizable.Handle=function(rz,pos,_43,_44){if(!this.tpl){var tpl=Ext.DomHelper.createTemplate({tag:"div",cls:"x-resizable-handle x-resizable-handle-{0}"});tpl.compile();Ext.Resizable.Handle.prototype.tpl=tpl;}this.position=pos;this.rz=rz;this.el=this.tpl.append(rz.el.dom,[this.position],true);this.el.unselectable();if(_44){this.el.setOpacity(0);}this.el.on("mousedown",this.onMouseDown,this);if(!_43){this.el.on("mouseover",this.onMouseOver,this);this.el.on("mouseout",this.onMouseOut,this);}};Ext.Resizable.Handle.prototype={afterResize:function(rz){},onMouseDown:function(e){this.rz.onMouseDown(this,e);},onMouseOver:function(e){this.rz.handleOver(this,e);},onMouseOut:function(e){this.rz.handleOut(this,e);}}; - diff --git a/www/extras/extjs/package/splitbar.js b/www/extras/extjs/package/splitbar.js deleted file mode 100644 index e2ebaa8ce..000000000 --- a/www/extras/extjs/package/splitbar.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.SplitBar=function(_1,_2,_3,_4,_5){this.el=Ext.get(_1,true);this.el.dom.unselectable="on";this.resizingEl=Ext.get(_2,true);this.orientation=_3||Ext.SplitBar.HORIZONTAL;this.minSize=0;this.maxSize=2000;this.animate=false;this.useShim=false;this.shim=null;if(!_5){this.proxy=Ext.SplitBar.createProxy(this.orientation);}else{this.proxy=Ext.get(_5).dom;}this.dd=new Ext.dd.DDProxy(this.el.dom.id,"XSplitBars",{dragElId:this.proxy.id});this.dd.b4StartDrag=this.onStartProxyDrag.createDelegate(this);this.dd.endDrag=this.onEndProxyDrag.createDelegate(this);this.dragSpecs={};this.adapter=new Ext.SplitBar.BasicLayoutAdapter();this.adapter.init(this);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.placement=_4||(this.el.getX()>this.resizingEl.getX()?Ext.SplitBar.LEFT:Ext.SplitBar.RIGHT);this.el.addClass("x-splitbar-h");}else{this.placement=_4||(this.el.getY()>this.resizingEl.getY()?Ext.SplitBar.TOP:Ext.SplitBar.BOTTOM);this.el.addClass("x-splitbar-v");}this.addEvents({"resize":true,"moved":true,"beforeresize":true,"beforeapply":true});Ext.SplitBar.superclass.constructor.call(this);};Ext.extend(Ext.SplitBar,Ext.util.Observable,{onStartProxyDrag:function(x,y){this.fireEvent("beforeresize",this);if(!this.overlay){var o=Ext.DomHelper.insertFirst(document.body,{cls:"x-drag-overlay",html:" "},true);o.unselectable();o.enableDisplayMode("block");Ext.SplitBar.prototype.overlay=o;}this.overlay.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.overlay.show();Ext.get(this.proxy).setDisplayed("block");var _9=this.adapter.getElementSize(this);this.activeMinSize=this.getMinimumSize();this.activeMaxSize=this.getMaximumSize();var c1=_9-this.activeMinSize;var c2=Math.max(this.activeMaxSize-_9,0);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.dd.resetConstraints();this.dd.setXConstraint(this.placement==Ext.SplitBar.LEFT?c1:c2,this.placement==Ext.SplitBar.LEFT?c2:c1);this.dd.setYConstraint(0,0);}else{this.dd.resetConstraints();this.dd.setXConstraint(0,0);this.dd.setYConstraint(this.placement==Ext.SplitBar.TOP?c1:c2,this.placement==Ext.SplitBar.TOP?c2:c1);}this.dragSpecs.startSize=_9;this.dragSpecs.startPoint=[x,y];Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd,x,y);},onEndProxyDrag:function(e){Ext.get(this.proxy).setDisplayed(false);var _d=Ext.lib.Event.getXY(e);if(this.overlay){this.overlay.hide();}var _e;if(this.orientation==Ext.SplitBar.HORIZONTAL){_e=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.LEFT?_d[0]-this.dragSpecs.startPoint[0]:this.dragSpecs.startPoint[0]-_d[0]);}else{_e=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.TOP?_d[1]-this.dragSpecs.startPoint[1]:this.dragSpecs.startPoint[1]-_d[1]);}_e=Math.min(Math.max(_e,this.activeMinSize),this.activeMaxSize);if(_e!=this.dragSpecs.startSize){if(this.fireEvent("beforeapply",this,_e)!==false){this.adapter.setElementSize(this,_e);this.fireEvent("moved",this,_e);this.fireEvent("resize",this,_e);}}},getAdapter:function(){return this.adapter;},setAdapter:function(_f){this.adapter=_f;this.adapter.init(this);},getMinimumSize:function(){return this.minSize;},setMinimumSize:function(_10){this.minSize=_10;},getMaximumSize:function(){return this.maxSize;},setMaximumSize:function(_11){this.maxSize=_11;},setCurrentSize:function(_12){var _13=this.animate;this.animate=false;this.adapter.setElementSize(this,_12);this.animate=_13;},destroy:function(_14){if(this.shim){this.shim.remove();}this.dd.unreg();this.proxy.parentNode.removeChild(this.proxy);if(_14){this.el.remove();}}});Ext.SplitBar.createProxy=function(dir){var _16=new Ext.Element(document.createElement("div"));_16.unselectable();var cls="x-splitbar-proxy";_16.addClass(cls+" "+(dir==Ext.SplitBar.HORIZONTAL?cls+"-h":cls+"-v"));document.body.appendChild(_16.dom);return _16.dom;};Ext.SplitBar.BasicLayoutAdapter=function(){};Ext.SplitBar.BasicLayoutAdapter.prototype={init:function(s){},getElementSize:function(s){if(s.orientation==Ext.SplitBar.HORIZONTAL){return s.resizingEl.getWidth();}else{return s.resizingEl.getHeight();}},setElementSize:function(s,_1b,_1c){if(s.orientation==Ext.SplitBar.HORIZONTAL){if(!s.animate){s.resizingEl.setWidth(_1b);if(_1c){_1c(s,_1b);}}else{s.resizingEl.setWidth(_1b,true,0.1,_1c,"easeOut");}}else{if(!s.animate){s.resizingEl.setHeight(_1b);if(_1c){_1c(s,_1b);}}else{s.resizingEl.setHeight(_1b,true,0.1,_1c,"easeOut");}}}};Ext.SplitBar.AbsoluteLayoutAdapter=function(_1d){this.basic=new Ext.SplitBar.BasicLayoutAdapter();this.container=Ext.get(_1d);};Ext.SplitBar.AbsoluteLayoutAdapter.prototype={init:function(s){this.basic.init(s);},getElementSize:function(s){return this.basic.getElementSize(s);},setElementSize:function(s,_21,_22){this.basic.setElementSize(s,_21,this.moveSplitter.createDelegate(this,[s]));},moveSplitter:function(s){var yes=Ext.SplitBar;switch(s.placement){case yes.LEFT:s.el.setX(s.resizingEl.getRight());break;case yes.RIGHT:s.el.setStyle("right",(this.container.getWidth()-s.resizingEl.getLeft())+"px");break;case yes.TOP:s.el.setY(s.resizingEl.getBottom());break;case yes.BOTTOM:s.el.setY(s.resizingEl.getTop()-s.el.getHeight());break;}}};Ext.SplitBar.VERTICAL=1;Ext.SplitBar.HORIZONTAL=2;Ext.SplitBar.LEFT=1;Ext.SplitBar.RIGHT=2;Ext.SplitBar.TOP=3;Ext.SplitBar.BOTTOM=4; - diff --git a/www/extras/extjs/package/tabs/tabs.js b/www/extras/extjs/package/tabs/tabs.js deleted file mode 100644 index cc50392b1..000000000 --- a/www/extras/extjs/package/tabs/tabs.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.TabPanel=function(_1,_2){this.el=Ext.get(_1,true);if(_2){if(typeof _2=="boolean"){this.tabPosition=_2?"bottom":"top";}else{Ext.apply(this,_2);}}if(this.tabPosition=="bottom"){this.bodyEl=Ext.get(this.createBody(this.el.dom));this.el.addClass("x-tabs-bottom");}this.stripWrap=Ext.get(this.createStrip(this.el.dom),true);this.stripEl=Ext.get(this.createStripList(this.stripWrap.dom),true);this.stripBody=Ext.get(this.stripWrap.dom.firstChild.firstChild,true);if(Ext.isIE){Ext.fly(this.stripWrap.dom.firstChild).setStyle("overflow-x","hidden");}if(this.tabPosition!="bottom"){this.bodyEl=Ext.get(this.createBody(this.el.dom));this.el.addClass("x-tabs-top");}this.items=[];this.bodyEl.setStyle("position","relative");this.active=null;this.activateDelegate=this.activate.createDelegate(this);this.addEvents({"tabchange":true,"beforetabchange":true});Ext.EventManager.onWindowResize(this.onResize,this);this.cpad=this.el.getPadding("lr");this.hiddenCount=0;Ext.TabPanel.superclass.constructor.call(this);};Ext.extend(Ext.TabPanel,Ext.util.Observable,{tabPosition:"top",currentTabWidth:0,minTabWidth:40,maxTabWidth:250,preferredTabWidth:175,resizeTabs:false,monitorResize:true,addTab:function(id,_4,_5,_6){var _7=new Ext.TabPanelItem(this,id,_4,_6);this.addTabItem(_7);if(_5){_7.setContent(_5);}return _7;},getTab:function(id){return this.items[id];},hideTab:function(id){var t=this.items[id];if(!t.isHidden()){t.setHidden(true);this.hiddenCount++;this.autoSizeTabs();}},unhideTab:function(id){var t=this.items[id];if(t.isHidden()){t.setHidden(false);this.hiddenCount--;this.autoSizeTabs();}},addTabItem:function(_d){this.items[_d.id]=_d;this.items.push(_d);if(this.resizeTabs){_d.setWidth(this.currentTabWidth||this.preferredTabWidth);this.autoSizeTabs();}else{_d.autoSize();}},removeTab:function(id){var _f=this.items;var tab=_f[id];if(!tab){return;}var _11=_f.indexOf(tab);if(this.active==tab&&_f.length>1){var _12=this.getNextAvailable(_11);if(_12){_12.activate();}}this.stripEl.dom.removeChild(tab.pnode.dom);if(tab.bodyEl.dom.parentNode==this.bodyEl.dom){this.bodyEl.dom.removeChild(tab.bodyEl.dom);}_f.splice(_11,1);delete this.items[tab.id];tab.fireEvent("close",tab);tab.purgeListeners();this.autoSizeTabs();},getNextAvailable:function(_13){var _14=this.items;var _15=_13;while(_15<_14.length){var _16=_14[++_15];if(_16&&!_16.isHidden()){return _16;}}_15=_13;while(_15>=0){var _16=_14[--_15];if(_16&&!_16.isHidden()){return _16;}}return null;},disableTab:function(id){var tab=this.items[id];if(tab&&this.active!=tab){tab.disable();}},enableTab:function(id){var tab=this.items[id];tab.enable();},activate:function(id){var tab=this.items[id];if(!tab){return null;}if(tab==this.active){return tab;}var e={};this.fireEvent("beforetabchange",this,e,tab);if(e.cancel!==true&&!tab.disabled){if(this.active){this.active.hide();}this.active=this.items[id];this.active.show();this.fireEvent("tabchange",this,this.active);}return tab;},getActiveTab:function(){return this.active;},syncHeight:function(_1e){var _1f=(_1e||this.el.getHeight())-this.el.getBorderWidth("tb")-this.el.getPadding("tb");var bm=this.bodyEl.getMargins();var _21=_1f-(this.stripWrap.getHeight()||0)-(bm.top+bm.bottom);this.bodyEl.setHeight(_21);return _21;},onResize:function(){if(this.monitorResize){this.autoSizeTabs();}},beginUpdate:function(){this.updating=true;},endUpdate:function(){this.updating=false;this.autoSizeTabs();},autoSizeTabs:function(){var _22=this.items.length;var _23=_22-this.hiddenCount;if(!this.resizeTabs||_22<1||_23<1||this.updating){return;}var w=Math.max(this.el.getWidth()-this.cpad,10);var _25=Math.floor(w/_23);var b=this.stripBody;if(b.getWidth()>w){var _27=this.items;this.setTabWidth(Math.max(_25,this.minTabWidth)-2);if(_25
      ";return _48.firstChild.firstChild.firstChild.firstChild;};Ext.TabPanel.prototype.createBody=function(_49){var _4a=document.createElement("div");Ext.id(_4a,"tab-body");Ext.fly(_4a).addClass("x-tabs-body");_49.appendChild(_4a);return _4a;};Ext.TabPanel.prototype.createItemBody=function(_4b,id){var _4d=Ext.getDom(id);if(!_4d){_4d=document.createElement("div");_4d.id=id;}Ext.fly(_4d).addClass("x-tabs-item-body");_4b.insertBefore(_4d,_4b.firstChild);return _4d;};Ext.TabPanel.prototype.createStripElements=function(_4e,_4f,_50){var td=document.createElement("td");_4e.appendChild(td);if(_50){td.className="x-tabs-closable";if(!this.closeTpl){this.closeTpl=new Ext.Template(""+"{text}"+"
       
      ");}var el=this.closeTpl.overwrite(td,{"text":_4f});var _53=el.getElementsByTagName("div")[0];var _54=el.getElementsByTagName("em")[0];return {"el":el,"close":_53,"inner":_54};}else{if(!this.tabTpl){this.tabTpl=new Ext.Template(""+"{text}");}var el=this.tabTpl.overwrite(td,{"text":_4f});var _54=el.getElementsByTagName("em")[0];return {"el":el,"inner":_54};}}; - diff --git a/www/extras/extjs/package/toolbar/toolbar.js b/www/extras/extjs/package/toolbar/toolbar.js deleted file mode 100644 index 9ed664f30..000000000 --- a/www/extras/extjs/package/toolbar/toolbar.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.Toolbar=function(_1,_2,_3){if(_1 instanceof Array){_2=_1;_3=_2;_1=null;}Ext.apply(this,_3);this.buttons=_2;if(_1){this.render(_1);}};Ext.Toolbar.prototype={render:function(ct){this.el=Ext.get(ct);if(this.cls){this.el.addClass(this.cls);}this.el.update("
      ");this.tr=this.el.child("tr",true);var _5=0;this.items=new Ext.util.MixedCollection(false,function(o){return o.id||("item"+(++_5));});if(this.buttons){this.add.apply(this,this.buttons);delete this.buttons;}},add:function(){var a=arguments,l=a.length;for(var i=0;i=1&parseInt(v,10)+_13<=d.pages){this.field.dom.value=parseInt(v,10)+_13;_12=Math.min(Math.max(1,_12+_13),d.pages)-1;this.ds.load({params:{start:_12*this.pageSize,limit:this.pageSize}});}}e.stopEvent();}}}},beforeLoad:function(){if(this.loading){this.loading.disable();}},onClick:function(_14){var ds=this.ds;switch(_14){case "first":ds.load({params:{start:0,limit:this.pageSize}});break;case "prev":ds.load({params:{start:Math.max(0,this.cursor-this.pageSize),limit:this.pageSize}});break;case "next":ds.load({params:{start:this.cursor+this.pageSize,limit:this.pageSize}});break;case "last":var _16=ds.getTotalCount();var _17=_16%this.pageSize;var _18=_17?(_16-_17):_16-this.pageSize;ds.load({params:{start:_18,limit:this.pageSize}});break;case "refresh":ds.load({params:{start:this.cursor,limit:this.pageSize}});break;}},unbind:function(ds){ds.un("beforeload",this.beforeLoad,this);ds.un("load",this.onLoad,this);ds.un("loadexception",this.onLoadError,this);},bind:function(ds){ds.on("beforeload",this.beforeLoad,this);ds.on("load",this.onLoad,this);ds.on("loadexception",this.onLoadError,this);}}); - diff --git a/www/extras/extjs/package/tree/tree.js b/www/extras/extjs/package/tree/tree.js deleted file mode 100644 index 895e6ac39..000000000 --- a/www/extras/extjs/package/tree/tree.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.data.Tree=function(_1){this.nodeHash={};this.root=null;if(_1){this.setRootNode(_1);}this.addEvents({"append":true,"remove":true,"move":true,"insert":true,"beforeappend":true,"beforeremove":true,"beforemove":true,"beforeinsert":true});Ext.data.Tree.superclass.constructor.call(this);};Ext.extend(Ext.data.Tree,Ext.util.Observable,{pathSeparator:"/",getRootNode:function(){return this.root;},setRootNode:function(_2){this.root=_2;_2.ownerTree=this;_2.isRoot=true;this.registerNode(_2);return _2;},getNodeById:function(id){return this.nodeHash[id];},registerNode:function(_4){this.nodeHash[_4.id]=_4;},unregisterNode:function(_5){delete this.nodeHash[_5.id];},toString:function(){return "[Tree"+(this.id?" "+this.id:"")+"]";}});Ext.data.Node=function(_6){this.attributes=_6||{};this.leaf=this.attributes.leaf;this.id=this.attributes.id;if(!this.id){this.id=Ext.id(null,"ynode-");this.attributes.id=this.id;}this.childNodes=[];if(!this.childNodes.indexOf){this.childNodes.indexOf=function(o){for(var i=0,_9=this.length;i<_9;i++){if(this[i]==o){return i;}}return -1;};}this.parentNode=null;this.firstChild=null;this.lastChild=null;this.previousSibling=null;this.nextSibling=null;this.addEvents({"append":true,"remove":true,"move":true,"insert":true,"beforeappend":true,"beforeremove":true,"beforemove":true,"beforeinsert":true});this.listeners=this.attributes.listeners;Ext.data.Node.superclass.constructor.call(this);};Ext.extend(Ext.data.Node,Ext.util.Observable,{fireEvent:function(_a){if(Ext.data.Node.superclass.fireEvent.apply(this,arguments)===false){return false;}var ot=this.getOwnerTree();if(ot){if(ot.fireEvent.apply(this.ownerTree,arguments)===false){return false;}}return true;},isLeaf:function(){return this.leaf===true;},setFirstChild:function(_c){this.firstChild=_c;},setLastChild:function(_d){this.lastChild=_d;},isLast:function(){return (!this.parentNode?true:this.parentNode.lastChild==this);},isFirst:function(){return (!this.parentNode?true:this.parentNode.firstChild==this);},hasChildNodes:function(){return !this.isLeaf()&&this.childNodes.length>0;},appendChild:function(_e){var _f=false;if(_e instanceof Array){_f=_e;}else{if(arguments.length>1){_f=arguments;}}if(_f){for(var i=0,len=_f.length;i0){var _4a=_47?function(){fn.apply(_47,arguments);}:fn;cs.sort(_4a);for(var i=0;i0){var f=function(_14,_15){if(_14&&_15){var n=_15.findChild(_f,v);if(n){n.select();if(_10){_10(true,n);}}}else{if(_10){_10(false,n);}}};this.expandPath(_11.join(this.pathSeparator),_f,f);}else{this.root.select();if(_10){_10(true,this.root);}}},render:function(){this.container=this.el.createChild({tag:"ul",cls:"x-tree-root-ct "+(this.lines?"x-tree-lines":"x-tree-no-lines")});if(this.containerScroll){Ext.dd.ScrollManager.register(this.el);}if((this.enableDD||this.enableDrop)&&!this.dropZone){this.dropZone=new Ext.tree.TreeDropZone(this,this.dropConfig||{ddGroup:this.ddGroup||"TreeDD",appendOnly:this.ddAppendOnly===true});}if((this.enableDD||this.enableDrag)&&!this.dragZone){this.dragZone=new Ext.tree.TreeDragZone(this,this.dragConfig||{ddGroup:this.ddGroup||"TreeDD",scroll:this.ddScroll});}this.getSelectionModel().init(this);this.root.render();if(!this.rootVisible){this.root.renderChildren();}return this;}}); - -Ext.tree.DefaultSelectionModel=function(){this.selNode=null;this.addEvents({"selectionchange":true,"beforeselect":true});};Ext.extend(Ext.tree.DefaultSelectionModel,Ext.util.Observable,{init:function(_1){this.tree=_1;_1.el.on("keydown",this.onKeyDown,this);_1.on("click",this.onNodeClick,this);},onNodeClick:function(_2,e){this.select(_2);},select:function(_4){var _5=this.selNode;if(_5!=_4&&this.fireEvent("beforeselect",this,_4,_5)!==false){if(_5){_5.ui.onSelectedChange(false);}this.selNode=_4;_4.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,_4,_5);}return _4;},unselect:function(_6){if(this.selNode==_6){this.clearSelections();}},clearSelections:function(){var n=this.selNode;if(n){n.ui.onSelectedChange(false);this.selNode=null;this.fireEvent("selectionchange",this,null);}return n;},getSelectedNode:function(){return this.selNode;},isSelected:function(_8){return this.selNode==_8;},selectPrevious:function(){var s=this.selNode||this.lastSelNode;if(!s){return null;}var ps=s.previousSibling;if(ps){if(!ps.isExpanded()||ps.childNodes.length<1){return this.select(ps);}else{var lc=ps.lastChild;while(lc&&lc.isExpanded()&&lc.childNodes.length>0){lc=lc.lastChild;}return this.select(lc);}}else{if(s.parentNode&&(this.tree.rootVisible||!s.parentNode.isRoot)){return this.select(s.parentNode);}}return null;},selectNext:function(){var s=this.selNode||this.lastSelNode;if(!s){return null;}if(s.firstChild&&s.isExpanded()){return this.select(s.firstChild);}else{if(s.nextSibling){return this.select(s.nextSibling);}else{if(s.parentNode){var _d=null;s.parentNode.bubble(function(){if(this.nextSibling){_d=this.getOwnerTree().selModel.select(this.nextSibling);return false;}});return _d;}}}return null;},onKeyDown:function(e){var s=this.selNode||this.lastSelNode;var sm=this;if(!s){return;}var k=e.getKey();switch(k){case e.DOWN:e.stopEvent();this.selectNext();break;case e.UP:e.stopEvent();this.selectPrevious();break;case e.RIGHT:e.preventDefault();if(s.hasChildNodes()){if(!s.isExpanded()){s.expand();}else{if(s.firstChild){this.select(s.firstChild,e);}}}break;case e.LEFT:e.preventDefault();if(s.hasChildNodes()&&s.isExpanded()){s.collapse();}else{if(s.parentNode&&(this.tree.rootVisible||s.parentNode!=this.tree.getRootNode())){this.select(s.parentNode,e);}}break;}}});Ext.tree.MultiSelectionModel=function(){this.selNodes=[];this.selMap={};this.addEvents({"selectionchange":true});};Ext.extend(Ext.tree.MultiSelectionModel,Ext.util.Observable,{init:function(_12){this.tree=_12;_12.el.on("keydown",this.onKeyDown,this);_12.on("click",this.onNodeClick,this);},onNodeClick:function(_13,e){this.select(_13,e,e.ctrlKey);},select:function(_15,e,_17){if(_17!==true){this.clearSelections(true);}if(this.isSelected(_15)){this.lastSelNode=_15;return _15;}this.selNodes.push(_15);this.selMap[_15.id]=_15;this.lastSelNode=_15;_15.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,this.selNodes);return _15;},unselect:function(_18){if(this.selMap[_18.id]){_18.ui.onSelectedChange(false);var sn=this.selNodes;var _1a=-1;if(sn.indexOf){_1a=sn.indexOf(_18);}else{for(var i=0,len=sn.length;i0){for(var i=0,len=sn.length;i
      ","",this.indentMarkup,"","","","",n.text,"
      ","
        ",""];if(_25!==true&&n.nextSibling&&n.nextSibling.ui.getEl()){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",n.nextSibling.ui.getEl(),buf.join(""));}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",_27,buf.join(""));}this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var cs=this.elNode.childNodes;this.indentNode=cs[0];this.ecNode=cs[1];this.iconNode=cs[2];this.anchor=cs[3];this.textNode=cs[3].firstChild;if(a.qtip){if(this.textNode.setAttributeNS){this.textNode.setAttributeNS("ext","qtip",a.qtip);if(a.qtipTitle){this.textNode.setAttributeNS("ext","qtitle",a.qtipTitle);}}else{this.textNode.setAttribute("ext:qtip",a.qtip);if(a.qtipTitle){this.textNode.setAttribute("ext:qtitle",a.qtipTitle);}}}this.initEvents();if(!this.node.expanded){this.updateExpandIcon();}}else{if(_25===true){_27.appendChild(this.wrap);}}},getAnchor:function(){return this.anchor;},getTextEl:function(){return this.textNode;},getIconEl:function(){return this.iconNode;},updateExpandIcon:function(){if(this.rendered){var n=this.node,c1,c2;var cls=n.isLast()?"x-tree-elbow-end":"x-tree-elbow";var _2f=n.hasChildNodes();if(_2f){if(n.expanded){cls+="-minus";c1="x-tree-node-collapsed";c2="x-tree-node-expanded";}else{cls+="-plus";c1="x-tree-node-expanded";c2="x-tree-node-collapsed";}if(this.wasLeaf){this.removeClass("x-tree-node-leaf");this.wasLeaf=false;}if(this.c1!=c1||this.c2!=c2){Ext.fly(this.elNode).replaceClass(c1,c2);this.c1=c1;this.c2=c2;}}else{if(!this.wasLeaf){Ext.fly(this.elNode).replaceClass("x-tree-node-expanded","x-tree-node-leaf");this.wasLeaf=true;}}var ecc="x-tree-ec-icon "+cls;if(this.ecc!=ecc){this.ecNode.className=ecc;this.ecc=ecc;}}},getChildIndent:function(){if(!this.childIndent){var buf=[];var p=this.node;while(p){if(!p.isRoot||(p.isRoot&&p.ownerTree.rootVisible)){if(!p.isLast()){buf.unshift("");}else{buf.unshift("");}}p=p.parentNode;}this.childIndent=buf.join("");}return this.childIndent;},renderIndent:function(){if(this.rendered){var _33="";var p=this.node.parentNode;if(p){_33=p.ui.getChildIndent();}if(this.indentMarkup!=_33){this.indentNode.innerHTML=_33;this.indentMarkup=_33;}this.updateExpandIcon();}}};Ext.tree.RootTreeNodeUI=function(){Ext.tree.RootTreeNodeUI.superclass.constructor.apply(this,arguments);};Ext.extend(Ext.tree.RootTreeNodeUI,Ext.tree.TreeNodeUI,{render:function(){if(!this.rendered){var _35=this.node.ownerTree.container.dom;this.node.expanded=true;_35.innerHTML="
        ";this.wrap=this.ctNode=_35.firstChild;}},collapse:function(){},expand:function(){}}); - -Ext.tree.TreeLoader=function(_1){this.baseParams={};this.requestMethod="POST";Ext.apply(this,_1);this.addEvents({"beforeload":true,"load":true,"loadexception":true});};Ext.extend(Ext.tree.TreeLoader,Ext.util.Observable,{uiProviders:{},clearOnLoad:true,load:function(_2,_3){if(this.clearOnLoad){while(_2.firstChild){_2.removeChild(_2.firstChild);}}if(_2.attributes.children){var cs=_2.attributes.children;for(var i=0,_6=cs.length;i<_6;i++){_2.appendChild(this.createNode(cs[i]));}if(typeof _3=="function"){_3();}}else{if(this.dataUrl){this.requestData(_2,_3);}}},getParams:function(_7){var _8=[],bp=this.baseParams;for(var _a in bp){if(typeof bp[_a]!="function"){_8.push(encodeURIComponent(_a),"=",encodeURIComponent(bp[_a]),"&");}}_8.push("node=",encodeURIComponent(_7.id));return _8.join("");},requestData:function(_b,_c){if(this.fireEvent("beforeload",this,_b,_c)!==false){var _d=this.getParams(_b);var cb={success:this.handleResponse,failure:this.handleFailure,scope:this,argument:{callback:_c,node:_b}};this.transId=Ext.lib.Ajax.request(this.requestMethod,this.dataUrl,cb,_d);}else{if(typeof _c=="function"){_c();}}},isLoading:function(){return this.transId?true:false;},abort:function(){if(this.isLoading()){Ext.lib.Ajax.abort(this.transId);}},createNode:function(_f){if(this.applyLoader!==false){_f.loader=this;}if(typeof _f.uiProvider=="string"){_f.uiProvider=this.uiProviders[_f.uiProvider]||eval(_f.uiProvider);}return (_f.leaf?new Ext.tree.TreeNode(_f):new Ext.tree.AsyncTreeNode(_f));},processResponse:function(_10,_11,_12){var _13=_10.responseText;try{var o=eval("("+_13+")");for(var i=0,len=o.length;iv2){return _3?-1:+1;}else{return 0;}}};};Ext.tree.TreeSorter.prototype={doSort:function(_d){_d.sort(this.sortFn);},compareNodes:function(n1,n2){return (n1.text.toUpperCase()>n2.text.toUpperCase()?1:-1);},updateSort:function(_10,_11){if(_11.childrenRendered){this.doSort.defer(1,this,[_11]);}}}; - -if(Ext.dd.DropZone){Ext.tree.TreeDropZone=function(_1,_2){this.allowParentInsert=false;this.allowContainerDrop=false;this.appendOnly=false;Ext.tree.TreeDropZone.superclass.constructor.call(this,_1.container,_2);this.tree=_1;this.lastInsertClass="x-tree-no-status";this.dragOverData={};};Ext.extend(Ext.tree.TreeDropZone,Ext.dd.DropZone,{ddGroup:"TreeDD",expandDelay:1000,expandNode:function(_3){if(_3.hasChildNodes()&&!_3.isExpanded()){_3.expand(false,null,this.triggerCacheRefresh.createDelegate(this));}},queueExpand:function(_4){this.expandProcId=this.expandNode.defer(this.expandDelay,this,[_4]);},cancelExpand:function(){if(this.expandProcId){clearTimeout(this.expandProcId);this.expandProcId=false;}},isValidDropPoint:function(n,pt,dd,e,_9){if(!n||!_9){return false;}var _a=n.node;var _b=_9.node;if(!(_a&&_a.isTarget&&pt)){return false;}if(pt=="append"&&_a.allowChildren===false){return false;}if((pt=="above"||pt=="below")&&(_a.parentNode&&_a.parentNode.allowChildren===false)){return false;}if(_b&&(_a==_b||_b.contains(_a))){return false;}var _c=this.dragOverData;_c.tree=this.tree;_c.target=_a;_c.data=_9;_c.point=pt;_c.source=dd;_c.rawEvent=e;_c.dropNode=_b;_c.cancel=false;var _d=this.tree.fireEvent("nodedragover",_c);return _c.cancel===false&&_d!==false;},getDropPoint:function(e,n,dd){var tn=n.node;if(tn.isRoot){return tn.allowChildren!==false?"append":false;}var _12=n.ddel;var t=Ext.lib.Dom.getY(_12),b=t+_12.offsetHeight;var y=Ext.lib.Event.getPageY(e);var _16=tn.allowChildren===false||tn.isLeaf();if(this.appendOnly||tn.parentNode.allowChildren===false){return _16?false:"append";}var _17=false;if(!this.allowParentInsert){_17=tn.hasChildNodes()&&tn.isExpanded();}var q=(b-t)/(_16?2:3);if(y>=t&&y<(t+q)){return "above";}else{if(!_17&&(_16||y>=b-q&&y<=b)){return "below";}else{return "append";}}},onNodeEnter:function(n,dd,e,_1c){this.cancelExpand();},onNodeOver:function(n,dd,e,_20){var pt=this.getDropPoint(e,n,dd);var _22=n.node;if(!this.expandProcId&&pt=="append"&&_22.hasChildNodes()&&!n.node.isExpanded()){this.queueExpand(_22);}else{if(pt!="append"){this.cancelExpand();}}var _23=this.dropNotAllowed;if(this.isValidDropPoint(n,pt,dd,e,_20)){if(pt){var el=n.ddel;var cls;if(pt=="above"){_23=n.node.isFirst()?"x-tree-drop-ok-above":"x-tree-drop-ok-between";cls="x-tree-drag-insert-above";}else{if(pt=="below"){_23=n.node.isLast()?"x-tree-drop-ok-below":"x-tree-drop-ok-between";cls="x-tree-drag-insert-below";}else{_23="x-tree-drop-ok-append";cls="x-tree-drag-append";}}if(this.lastInsertClass!=cls){Ext.fly(el).replaceClass(this.lastInsertClass,cls);this.lastInsertClass=cls;}}}return _23;},onNodeOut:function(n,dd,e,_29){this.cancelExpand();this.removeDropIndicators(n);},onNodeDrop:function(n,dd,e,_2d){var _2e=this.getDropPoint(e,n,dd);var _2f=n.node;_2f.ui.startDrop();if(!this.isValidDropPoint(n,_2e,dd,e,_2d)){_2f.ui.endDrop();return false;}var _30=_2d.node||(dd.getTreeNode?dd.getTreeNode(_2d,_2f,_2e,e):null);var _31={tree:this.tree,target:_2f,data:_2d,point:_2e,source:dd,rawEvent:e,dropNode:_30,cancel:!_30};var _32=this.tree.fireEvent("beforenodedrop",_31);if(_32===false||_31.cancel===true||!_31.dropNode){_2f.ui.endDrop();return false;}_2f=_31.target;if(_2e=="append"&&!_2f.isExpanded()){_2f.expand(false,null,function(){this.completeDrop(_31);}.createDelegate(this));}else{this.completeDrop(_31);}return true;},completeDrop:function(de){var ns=de.dropNode,p=de.point,t=de.target;if(!(ns instanceof Array)){ns=[ns];}var n;for(var i=0,len=ns.length;ind.offsetLeft){td.scrollLeft=nd.offsetLeft;}var w=Math.min(this.maxWidth,(td.clientWidth>20?td.clientWidth:td.offsetWidth)-Math.max(0,nd.offsetLeft-td.scrollLeft)-5);this.setSize(w,"");},triggerEdit:function(_9){this.completeEdit();this.editNode=_9;this.startEdit(_9.ui.textNode,_9.text);},bindScroll:function(){this.tree.el.on("scroll",this.cancelEdit,this);},beforeNodeClick:function(_a){if(this.tree.getSelectionModel().isSelected(_a)){this.triggerEdit(_a);return false;}},updateNode:function(ed,_c){this.tree.el.un("scroll",this.cancelEdit,this);this.editNode.setText(_c);},onSpecialKey:function(_d,e){var k=e.getKey();if(k==e.ESC){this.cancelEdit();e.stopEvent();}else{if(k==e.ENTER&&!e.hasModifier()){this.completeEdit();e.stopEvent();}}}}); - diff --git a/www/extras/extjs/package/util.js b/www/extras/extjs/package/util.js deleted file mode 100644 index db9358533..000000000 --- a/www/extras/extjs/package/util.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.util.DelayedTask=function(fn,_2,_3){var id=null,d,t;var _7=function(){var _8=new Date().getTime();if(_8-t>=d){clearInterval(id);id=null;fn.apply(_2,_3||[]);}};this.delay=function(_9,_a,_b,_c){if(id&&_9!=d){this.cancel();}d=_9;t=new Date().getTime();fn=_a||fn;_2=_b||_2;_3=_c||_3;if(!id){id=setInterval(_7,d);}};this.cancel=function(){if(id){clearInterval(id);id=null;}};}; - -Ext.util.MixedCollection=function(_1,_2){this.items=[];this.map={};this.keys=[];this.length=0;this.addEvents({"clear":true,"add":true,"replace":true,"remove":true,"sort":true});this.allowFunctions=_1===true;if(_2){this.getKey=_2;}Ext.util.MixedCollection.superclass.constructor.call(this);};Ext.extend(Ext.util.MixedCollection,Ext.util.Observable,{allowFunctions:false,add:function(_3,o){if(arguments.length==1){o=arguments[0];_3=this.getKey(o);}if(typeof _3=="undefined"||_3===null){this.length++;this.items.push(o);this.keys.push(null);}else{var _5=this.map[_3];if(_5){return this.replace(_3,o);}this.length++;this.items.push(o);this.map[_3]=o;this.keys.push(_3);}this.fireEvent("add",this.length-1,o,_3);return o;},getKey:function(o){return o.id;},replace:function(_7,o){if(arguments.length==1){o=arguments[0];_7=this.getKey(o);}var _9=this.item(_7);if(typeof _7=="undefined"||_7===null||typeof _9=="undefined"){return this.add(_7,o);}var _a=this.indexOfKey(_7);this.items[_a]=o;this.map[_7]=o;this.fireEvent("replace",_7,_9,o);return o;},addAll:function(_b){if(arguments.length>1||_b instanceof Array){var _c=arguments.length>1?arguments:_b;for(var i=0,_e=_c.length;i<_e;i++){this.add(_c[i]);}}else{for(var _f in _b){if(this.allowFunctions||typeof _b[_f]!="function"){this.add(_b[_f],_f);}}}},each:function(fn,_11){var _12=[].concat(this.items);for(var i=0,len=_12.length;i=this.length){return this.add(key,o);}this.length++;this.items.splice(_1d,0,o);if(typeof key!="undefined"&&key!=null){this.map[key]=o;}this.keys.splice(_1d,0,key);this.fireEvent("add",_1d,o,key);return o;},remove:function(o){return this.removeAt(this.indexOf(o));},removeAt:function(_21){if(_21=0){this.length--;var o=this.items[_21];this.items.splice(_21,1);var key=this.keys[_21];if(typeof key!="undefined"){delete this.map[key];}this.keys.splice(_21,1);this.fireEvent("remove",o,key);}},removeKey:function(key){return this.removeAt(this.indexOfKey(key));},getCount:function(){return this.length;},indexOf:function(o){if(!this.items.indexOf){for(var i=0,len=this.items.length;i=end;i--){r[r.length]=_47[i];}}return r;},filter:function(_4a,_4b){if(!_4b.exec){_4b=String(_4b);if(_4b.length==0){return this.clone();}_4b=new RegExp("^"+Ext.escapeRe(_4b),"i");}return this.filterBy(function(o){return o&&_4b.test(o[_4a]);});},filterBy:function(fn,_4e){var r=new Ext.util.MixedCollection();r.getKey=this.getKey;var k=this.keys,it=this.items;for(var i=0,len=it.length;i_3){return _2.substr(0,_3-3)+"...";}return _2;},undef:function(_4){return typeof _4!="undefined"?_4:"";},htmlEncode:function(_5){return !_5?_5:String(_5).replace(/&/g,"&").replace(/>/g,">").replace(/2){var _f=Array.prototype.slice.call(arguments,2);_f.unshift(_d);return eval(fn).apply(window,_f);}else{return eval(fn).call(window,_d);}},usMoney:function(v){v=(Math.round((v-0)*100))/100;v=(v==Math.floor(v))?v+".00":((v*10==Math.floor(v*10))?v+"0":v);return "$"+v;},date:function(v,_12){if(!v){return "";}if(!(v instanceof Date)){v=new Date(Date.parse(v));}return v.dateFormat(_12||"m/d/Y");},dateRenderer:function(_13){return function(v){return Ext.util.Format.date(v,_13);};},stripTagsRE:/<\/?[^>]+>/gi,stripTags:function(v){return !v?v:String(v).replace(this.stripTagsRE,"");}};}(); - -Ext.util.CSS=function(){var _1=null;var _2=document;var _3=/(-[a-z])/gi;var _4=function(m,a){return a.charAt(1).toUpperCase();};return {createStyleSheet:function(_7){var ss;if(Ext.isIE){ss=_2.createStyleSheet();ss.cssText=_7;}else{var _9=_2.getElementsByTagName("head")[0];var _a=_2.createElement("style");_a.setAttribute("type","text/css");try{_a.appendChild(_2.createTextNode(_7));}catch(e){_a.cssText=_7;}_9.appendChild(_a);ss=_a.styleSheet?_a.styleSheet:(_a.sheet||_2.styleSheets[_2.styleSheets.length-1]);}this.cacheStyleSheet(ss);return ss;},removeStyleSheet:function(id){var _c=_2.getElementById(id);if(_c){_c.parentNode.removeChild(_c);}},swapStyleSheet:function(id,_e){this.removeStyleSheet(id);var ss=_2.createElement("link");ss.setAttribute("rel","stylesheet");ss.setAttribute("type","text/css");ss.setAttribute("id",id);ss.setAttribute("href",_e);_2.getElementsByTagName("head")[0].appendChild(ss);},refreshCache:function(){return this.getRules(true);},cacheStyleSheet:function(ss){if(!_1){_1={};}try{var _11=ss.cssRules||ss.rules;for(var j=_11.length-1;j>=0;--j){_1[_11[j].selectorText]=_11[j];}}catch(e){}},getRules:function(_13){if(_1==null||_13){_1={};var ds=_2.styleSheets;for(var i=0,len=ds.length;i=37&&k<=40){e.stopEvent();}},relay:function(e){var k=e.getKey();var h=this.keyToHandler[k];if(h&&this[h]){if(this.doRelay(e,this[h],h)!==true){e[this.defaultEventAction]();}}},doRelay:function(e,h,_b){return h.call(this.scope||this,e);},enter:false,left:false,right:false,up:false,down:false,tab:false,esc:false,pageUp:false,pageDown:false,del:false,home:false,end:false,keyToHandler:{37:"left",39:"right",38:"up",40:"down",33:"pageUp",34:"pageDown",46:"del",36:"home",35:"end",13:"enter",27:"esc",9:"tab"},enable:function(){if(this.disabled){if(Ext.isIE){this.el.on("keydown",this.relay,this);}else{this.el.on("keydown",this.prepareEvent,this);this.el.on("keypress",this.relay,this);}this.disabled=false;}},disable:function(){if(!this.disabled){if(Ext.isIE){this.el.un("keydown",this.relay);}else{this.el.un("keydown",this.prepareEvent);this.el.un("keypress",this.relay);}this.disabled=true;}}}; - -Ext.KeyMap=function(el,_2,_3){this.el=Ext.get(el);this.eventName=_3||"keydown";this.bindings=[];if(_2 instanceof Array){for(var i=0,_5=_2.length;i<_5;i++){this.addBinding(_2[i]);}}else{this.addBinding(_2);}this.keyDownDelegate=Ext.EventManager.wrap(this.handleKeyDown,this,true);this.enable();};Ext.KeyMap.prototype={stopEvent:false,addBinding:function(_6){var _7=_6.key,_8=_6.shift,_9=_6.ctrl,_a=_6.alt,fn=_6.fn,_c=_6.scope;if(typeof _7=="string"){var ks=[];var _e=_7.toUpperCase();for(var j=0,len=_e.length;jvw+s.left){x=vw-w-this.shadowOffset;_1f=true;}if((y+h)>vh+s.top){y=vh-h-this.shadowOffset;_1f=true;}if(x=ay){y=ay-h-5;}}xy=[x,y];this.storeXY(xy);_7.setXY.call(this,xy);this.sync();}}},isVisible:function(){return this.visible;},showAction:function(){this.visible=true;if(this.useDisplay===true){this.setDisplayed("");}else{if(this.lastXY){_7.setXY.call(this,this.lastXY);}else{if(this.lastLT){_7.setLeftTop.call(this,this.lastLT[0],this.lastLT[1]);}}}},hideAction:function(){this.visible=false;if(this.useDisplay===true){this.setDisplayed(false);}else{this.setLeftTop(-10000,-10000);}},setVisible:function(v,a,d,c,e){if(v){this.showAction();}if(a&&v){var cb=function(){this.sync(true);if(c){c();}}.createDelegate(this);_7.setVisible.call(this,true,true,d,cb,e);}else{if(!v){this.hideUnders(true);}var cb=c;if(a){cb=function(){this.hideAction();if(c){c();}}.createDelegate(this);}_7.setVisible.call(this,v,a,d,cb,e);if(v){this.sync(true);}else{if(!a){this.hideAction();}}}},storeXY:function(xy){delete this.lastLT;this.lastXY=xy;},storeLeftTop:function(_28,top){delete this.lastXY;this.lastLT=[_28,top];},beforeFx:function(){this.beforeAction();return Ext.Layer.superclass.beforeFx.apply(this,arguments);},afterFx:function(){Ext.Layer.superclass.afterFx.apply(this,arguments);this.sync(this.isVisible());},beforeAction:function(){if(!this.updating&&this.shadow){this.shadow.hide();}},setLeft:function(_2a){this.storeLeftTop(_2a,this.getTop(true));_7.setLeft.apply(this,arguments);this.sync();},setTop:function(top){this.storeLeftTop(this.getLeft(true),top);_7.setTop.apply(this,arguments);this.sync();},setLeftTop:function(_2c,top){this.storeLeftTop(_2c,top);_7.setLeftTop.apply(this,arguments);this.sync();},setXY:function(xy,a,d,c,e){this.fixDisplay();this.beforeAction();this.storeXY(xy);var cb=this.createCB(c);_7.setXY.call(this,xy,a,d,cb,e);if(!a){cb();}},createCB:function(c){var el=this;return function(){el.constrainXY();el.sync(true);if(c){c();}};},setX:function(x,a,d,c,e){this.setXY([x,this.getY()],a,d,c,e);},setY:function(y,a,d,c,e){this.setXY([this.getX(),y],a,d,c,e);},setSize:function(w,h,a,d,c,e){this.beforeAction();var cb=this.createCB(c);_7.setSize.call(this,w,h,a,d,cb,e);if(!a){cb();}},setWidth:function(w,a,d,c,e){this.beforeAction();var cb=this.createCB(c);_7.setWidth.call(this,w,a,d,cb,e);if(!a){cb();}},setHeight:function(h,a,d,c,e){this.beforeAction();var cb=this.createCB(c);_7.setHeight.call(this,h,a,d,cb,e);if(!a){cb();}},setBounds:function(x,y,w,h,a,d,c,e){this.beforeAction();var cb=this.createCB(c);if(!a){this.storeXY([x,y]);_7.setXY.call(this,[x,y]);_7.setSize.call(this,w,h,a,d,cb,e);cb();}else{_7.setBounds.call(this,x,y,w,h,a,d,cb,e);}return this;},setZIndex:function(_5c){this.zindex=_5c;this.setStyle("z-index",_5c+2);if(this.shadow){this.shadow.setZIndex(_5c+1);}if(this.shim){this.shim.setStyle("z-index",_5c);}}});})(); - -Ext.Shadow=function(_1){Ext.apply(this,_1);if(typeof this.mode!="string"){this.mode=this.defaultMode;}var o=this.offset,a={h:0};switch(this.mode.toLowerCase()){case "drop":a.w=0;a.l=a.t=o;break;case "sides":a.w=(o*2);a.l=-o;a.t=o;break;case "frame":a.w=a.h=(o*2);a.l=a.t=-o;break;}this.adjusts=a;};Ext.Shadow.prototype={offset:4,defaultMode:"drop",show:function(_4){_4=Ext.get(_4);if(!this.el){this.el=Ext.Shadow.Pool.pull();if(this.el.dom.nextSibling!=_4.dom){this.el.insertBefore(_4);}}this.el.setStyle("z-index",this.zIndex||parseInt(_4.getStyle("z-index"),10)-1);if(Ext.isIE){this.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius="+this.offset+")";}this.realign(_4.getLeft(true),_4.getTop(true),_4.getWidth(),_4.getHeight());this.el.dom.style.display="block";},isVisible:function(){return this.el?true:false;},realign:function(l,t,w,h){if(!this.el){return;}var a=this.adjusts,d=this.el.dom,s=d.style;var _c=0;if(Ext.isIE){_c=-(this.offset);}s.left=(l+a.l+_c)+"px";s.top=(t+a.t+_c)+"px";var sw=(w+a.w),sh=(h+a.h),_f=sw+"px",shs=sh+"px";if(s.width!=_f||s.height!=shs){s.width=_f;s.height=shs;if(!Ext.isIE){var cn=d.childNodes;var sww=Math.max(0,(sw-12))+"px";cn[0].childNodes[1].style.width=sww;cn[1].childNodes[1].style.width=sww;cn[2].childNodes[1].style.width=sww;cn[1].style.height=Math.max(0,(sh-12))+"px";}}},hide:function(){if(this.el){this.el.dom.style.display="none";Ext.Shadow.Pool.push(this.el);delete this.el;}},setZIndex:function(z){this.zIndex=z;if(this.el){this.el.setStyle("z-index",z);}}};Ext.Shadow.Pool=function(){var p=[];var _15=Ext.isIE?"
        ":"
        ";return {pull:function(){var sh=p.shift();if(!sh){sh=Ext.get(Ext.DomHelper.insertHtml("beforeBegin",document.body.firstChild,_15));sh.autoBoxAdjust=false;}return sh;},push:function(sh){p.push(sh);}};}(); - diff --git a/www/extras/extjs/resources/css/README.txt b/www/extras/extjs/resources/css/README.txt deleted file mode 100644 index e476a5a72..000000000 --- a/www/extras/extjs/resources/css/README.txt +++ /dev/null @@ -1,3 +0,0 @@ -2006-11-21 jvs: -ext-all.css contains all of the other css files combined and stripped of comments (except themes). - diff --git a/www/extras/extjs/resources/css/basic-dialog.css b/www/extras/extjs/resources/css/basic-dialog.css deleted file mode 100644 index 446773bd9..000000000 --- a/www/extras/extjs/resources/css/basic-dialog.css +++ /dev/null @@ -1,286 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.x-dlg-proxy { - background-image: url(../images/default/gradient-bg.gif); - background-color:#c3daf9; - border:1px solid #6593cf; - z-index:10001; - overflow:hidden; - position:absolute; - left:0;top:0; -} -.x-dlg-shadow{ - background:#aaaaaa; - position:absolute; - left:0;top:0; -} -.x-dlg-focus{ - -moz-outline:0 none; - outline:0 none; - width:0; - height:0; - overflow:hidden; - position:absolute; - top:0; - left:0; -} -.x-dlg-mask{ - z-index:10000; - display:none; - position:absolute; - top:0; - left:0; - -moz-opacity: 0.5; - opacity:.50; - filter: alpha(opacity=50); - background-color:#CCC; -} -body.x-body-masked select { - visibility:hidden; -} -body.x-body-masked .x-dlg select { - visibility:visible; -} -.x-dlg{ - z-index:10001; - overflow:hidden; - position:absolute; - left:300;top:0; -} -.x-dlg .x-dlg-hd { - background: url(../images/default/basic-dialog/hd-sprite.gif) repeat-x 0 -82px; - background-color:navy; - color:#FFF; - font:bold 12px "sans serif", tahoma, verdana, helvetica; - overflow:hidden; - padding:5px; - white-space: nowrap; -} -.x-dlg .x-dlg-hd-left { - background: url(../images/default/basic-dialog/hd-sprite.gif) no-repeat 0 -41px; - padding-left:3px; - margin:0; -} -.x-dlg .x-dlg-hd-right { - background: url(../images/default/basic-dialog/hd-sprite.gif) no-repeat right 0; - padding-right:3px; -} -.x-dlg .x-dlg-dlg-body{ - background:url(../images/default/layout/gradient-bg.gif); - border:1px solid #6593cf; - border-top:0 none; - padding:10px; - position:absolute; - top:24px;left:0; - z-index:1; - overflow:hidden; -} -.x-dlg-collapsed .x-resizable-handle{ - display:none; -} -.x-dlg .x-dlg-bd{ - overflow:hidden; -} -.x-dlg .x-dlg-ft{ - overflow:hidden; - padding:5px; - padding-bottom:0; -} - -.x-dlg .x-tabs-body{ - background:white; - overflow:auto; -} -.x-dlg .x-tabs-top .x-tabs-body{ - border:1px solid #6593cf; - border-top:0 none; -} -.x-dlg .x-tabs-bottom .x-tabs-body{ - border:1px solid #6593cf; - border-bottom:0 none; -} -.x-dlg .x-layout-container .x-tabs-body{ - border:0 none; -} -.x-dlg .inner-tab{ - margin:5px; -} -.x-dlg .x-dlg-ft .x-btn{ - margin-right:5px; - float:right; - clear:none; -} -.x-dlg .x-dlg-ft .x-dlg-btns td { - border:0; - padding:0; -} -.x-dlg .x-dlg-ft .x-dlg-btns-right table{ - float:right; - clear:none; -} -.x-dlg .x-dlg-ft .x-dlg-btns-left table{ - float:left; - clear:none; -} -.x-dlg .x-dlg-ft .x-dlg-btns-center{ - text-align:center; /*ie*/ -} -.x-dlg .x-dlg-ft .x-dlg-btns-center table{ - margin:0 auto; /*everyone else*/ -} - - -.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-focus .x-btn-left{ - background-position:0 -147px; -} -.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-focus .x-btn-right{ - background-position:0 -168px; -} -.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-focus .x-btn-center{ - background-position:0 -189px; -} - -.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-click .x-btn-center{ - background-position:0 -126px; -} -.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-click .x-btn-right{ - background-position:0 -84px; -} -.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-click .x-btn-left{ - background-position:0 -63px; -} - -.x-dlg-draggable .x-dlg-hd{ - cursor:move; -} -.x-dlg-closable .x-dlg-hd{ - padding-right:22px; -} -.x-dlg-toolbox { - position:absolute; - top:4px; - right:4px; - z-index:6; - width:40px; - cursor:default; - height:15px; - background:transparent; -} -.x-dlg .x-dlg-close, .x-dlg .x-dlg-collapse { - float:right; - height:15px; - width:15px; - margin:0; - margin-left:2px; - padding:0; - line-height:1px; - font-size:1px; - background-repeat:no-repeat; - cursor:pointer; - visibility:inherit; -} -.x-dlg .x-dlg-close { - background-image:url(../images/default/basic-dialog/close.gif); -} -.x-dlg .x-dlg-collapse { - background-image:url(../images/default/basic-dialog/collapse.gif); -} -.x-dlg-collapsed .x-dlg-collapse { - background-image:url(../images/default/basic-dialog/expand.gif); -} -.x-dlg .x-dlg-close-over, .x-dlg .x-dlg-collapse-over { - -} -.x-dlg div.x-resizable-handle-east{ - background-image:url(../images/default/basic-dialog/e-handle.gif); - border:0; - background-position:right; - margin-right:0; -} -.x-dlg div.x-resizable-handle-south{ - background-image:url(../images/default/sizer/s-handle-dark.gif); - border:0; - height:6px; -} -.x-dlg div.x-resizable-handle-west{ - background-image:url(../images/default/basic-dialog/e-handle.gif); - border:0; - background-position:1px; -} -.x-dlg div.x-resizable-handle-north{ - background-image:url(../images/default/s.gif); - border:0; -} -.x-dlg div.x-resizable-handle-northeast, .ytheme-gray .x-dlg div.x-resizable-handle-northeast{ - background-image:url(../images/default/s.gif); - border:0; -} -.x-dlg div.x-resizable-handle-northwest, .ytheme-gray .x-dlg div.x-resizable-handle-northwest{ - background-image:url(../images/default/s.gif); - border:0; -} -.x-dlg div.x-resizable-handle-southeast{ - background-image:url(../images/default/basic-dialog/se-handle.gif); - background-position: bottom right; - width:8px; - height:8px; - border:0; -} -.x-dlg div.x-resizable-handle-southwest{ - background-image:url(../images/default/sizer/sw-handle-dark.gif); - background-position: top right; - margin-left:1px; - margin-bottom:1px; - border:0; -} - -#x-msg-box .x-dlg-ft .x-btn{ - float:none; - clear:none; - margin:0 3px; -} - -#x-msg-box .x-dlg-bd { - padding:5px; - overflow:hidden !important; - font:normal 13px verdana,tahoma,sans-serif; -} -#x-msg-box .ext-mb-input { - margin-top:4px; - width:95%; -} -#x-msg-box .ext-mb-textarea { - margin-top:4px; - font:normal 13px verdana,tahoma,sans-serif; -} -#x-msg-box .ext-mb-progress-wrap { - margin-top:4px; - border:1px solid #6593cf; -} -#x-msg-box .ext-mb-progress { - height:18px; - background: #e0e8f3 url(../images/default/qtip/bg.gif) repeat-x; -} -#x-msg-box .ext-mb-progress-bar { - height:18px; - overflow:hidden; - width:0; - background:#8BB8F3; - border-top:1px solid #B2D0F7; - border-bottom:1px solid #65A1EF; - border-right:1px solid #65A1EF; -} - -#x-msg-box .x-msg-box-wait { - background: transparent url(../images/default/grid/loading.gif) no-repeat left; - display:block; - width:300px; - padding-left:18px; - line-height:18px; -} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/box.css b/www/extras/extjs/resources/css/box.css deleted file mode 100644 index baa65fb12..000000000 --- a/www/extras/extjs/resources/css/box.css +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* - Creates rounded, raised boxes like on the Ext website - the markup isn't pretty: -
        -
        -
        -

        YOUR TITLE HERE (optional)

        -
        YOUR CONTENT HERE
        -
        -
        -
        - */ - -.x-box-tl { - background: transparent url(../images/default/box/corners.gif) no-repeat 0 0; - zoom:1; -} - -.x-box-tc { - height: 8px; - background: transparent url(../images/default/box/tb.gif) repeat-x 0 0; - overflow: hidden; -} - -.x-box-tr { - background: transparent url(../images/default/box/corners.gif) no-repeat right -8px; -} - -.x-box-ml { - background: transparent url(../images/default/box/l.gif) repeat-y 0; - padding-left: 4px; - overflow: hidden; - zoom:1; -} - -.x-box-mc { - background: #eee url(../images/default/box/tb.gif) repeat-x 0 -16px; - padding: 4px 10px; - font-family: "Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif; - color: #393939; - font-size: 12px; -} - -.x-box-mc h3 { - font-size: 14px; - font-weight: bold; - margin: 0 0 4 0; - zoom:1; -} - -.x-box-mr { - background: transparent url(../images/default/box/r.gif) repeat-y right; - padding-right: 4px; - overflow: hidden; -} - -.x-box-bl { - background: transparent url(../images/default/box/corners.gif) no-repeat 0 -16px; - zoom:1; -} - -.x-box-bc { - background: transparent url(../images/default/box/tb.gif) repeat-x 0 -8px; - height: 8px; - overflow: hidden; -} - -.x-box-br { - background: transparent url(../images/default/box/corners.gif) no-repeat right -24px; -} - -.x-box-tl, .x-box-bl { - padding-left: 8px; - overflow: hidden; -} - -.x-box-tr, .x-box-br { - padding-right: 8px; - overflow: hidden; -} - -.x-box-blue .x-box-bl, .x-box-blue .x-box-br, .x-box-blue .x-box-tl, .x-box-blue .x-box-tr { - background-image: url(../images/default/box/corners-blue.gif); -} - -.x-box-blue .x-box-bc, .x-box-blue .x-box-mc, .x-box-blue .x-box-tc { - background-image: url(../images/default/box/tb-blue.gif); -} - -.x-box-blue .x-box-mc { - background-color: #c3daf9; -} - -.x-box-blue .x-box-mc h3 { - color: #17385b; -} - -.x-box-blue .x-box-ml { - background-image: url(../images/default/box/l-blue.gif); -} - -.x-box-blue .x-box-mr { - background-image: url(../images/default/box/r-blue.gif); -} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/button.css b/www/extras/extjs/resources/css/button.css deleted file mode 100644 index 0c1740737..000000000 --- a/www/extras/extjs/resources/css/button.css +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.x-btn{ - font:normal 11px tahoma, verdana, helvetica; - cursor:pointer; - white-space: nowrap; -} -.x-btn button{ - border:0 none; - background:transparent; - font:normal 11px tahoma,verdana,helvetica; - padding-left:3px; - padding-right:3px; - cursor:pointer; - margin:0; - overflow:visible; - width:auto; - -moz-outline:0 none; - outline:0 none; -} -* html .ext-ie .x-btn button { - width:1px; -} -.ext-gecko .x-btn button { - padding-left:0; - padding-right:0; -} -.ext-ie .x-btn button { - padding-top:2px; -} -/* - Predefined css class for buttons with only icon. Add this class (x-btn-icon) and a class with a background-image - to your button for a button with just an icon. - e.g. - .my-class .x-btn-text { background-image: url(foo.gif); } - */ - -.x-btn-icon .x-btn-center .x-btn-text{ - background-position: center; - background-repeat: no-repeat; - height: 16px; - width: 16px; - cursor:pointer; - white-space: nowrap; - padding:0; -} -.x-btn-icon .x-btn-center{ - padding:1px; -} -.x-btn em { - font-style:normal; - font-weight:normal; -} -/* - Button class for icon and text. Add this class (x-btn-text-icon) and a class with a background-image - to your button for both text and icon. -*/ - -.x-btn-text-icon .x-btn-center .x-btn-text{ - background-position: 0 2px; - background-repeat: no-repeat; - padding-left:18px; - padding-top:3px; - padding-bottom:3px; - padding-right:0; -} - -.x-btn-left, .x-btn-right{ - font-size:1px; - line-height:1px; -} -.x-btn-left{ - width:3px; - height:21px; - background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 0; -} -.x-btn-right{ - width:3px; - height:21px; - background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 -21px; -} -.x-btn-left i, .x-btn-right i{ - display:block; - width:3px; - overflow:hidden; - font-size:1px; - line-height:1px; -} -.x-btn-center{ - background:url(../images/default/basic-dialog/btn-sprite.gif) repeat-x 0 -42px; - vertical-align: middle; - text-align:center; - padding:0 5px; - cursor:pointer; - white-space:nowrap; -} -.x-btn-over .x-btn-left{ - background-position:0 -63px; -} -.x-btn-over .x-btn-right{ - background-position:0 -84px; -} -.x-btn-over .x-btn-center{ - background-position:0 -105px; -} -.x-btn-click .x-btn-center, .x-btn-menu-active .x-btn-center{ - background-position:0 -126px; -} -.x-btn-disabled *{ - color:gray !important; - cursor:default !important; -} -.x-btn-menu-text-wrap .x-btn-center { - padding:0 3px; -} -.ext-gecko .x-btn-menu-text-wrap .x-btn-center { - padding:0 1px; -} -.x-btn-menu-arrow-wrap .x-btn-center { - padding:0; -} -.x-btn-menu-arrow-wrap .x-btn-center button { - width:12px !important; - height:21px; - padding:0 !important; - display:block; - background:transparent url(../images/default/basic-dialog/btn-arrow.gif) no-repeat left 3px; -} -.x-btn-with-menu .x-btn-center { - padding-right:2px !important; -} -.x-btn-with-menu .x-btn-center em { - display:block; - background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 0; - padding-right:10px; -} - -.x-btn-text-icon .x-btn-with-menu .x-btn-center em { - display:block; - background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 3px; - padding-right:10px; -} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/combo.css b/www/extras/extjs/resources/css/combo.css deleted file mode 100644 index 47ff92116..000000000 --- a/www/extras/extjs/resources/css/combo.css +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.x-combo-list { - border:1px solid #98c0f4; - background:#ddecfe; - zoom:1; - overflow:hidden; -} -.x-combo-list-inner { - overflow:auto; - background:white; - position:relative; /* for calculating scroll offsets */ -} -.x-combo-list-hd { - font:bold 11px tahoma, arial, helvetica, sans-serif; - color:#15428b; - background-image: url(../images/default/layout/panel-title-light-bg.gif); - border-bottom:1px solid #98c0f4; - padding:3px; -} -.x-resizable-pinned .x-combo-list-inner { - border-bottom:1px solid #98c0f4; -} -.x-combo-list-item { - font:normal 12px tahoma, arial, helvetica, sans-serif; - padding:2px; - border:1px solid #fff; - zoom:1; - white-space: nowrap; - overflow:hidden; - text-overflow: ellipsis; -} -.x-combo-list .x-combo-selected{ - background-color: #c3daf9 !important; - cursor:pointer; - border:1px solid #336699; -} -.x-combo-noedit{ - cursor:pointer; -} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/core.css b/www/extras/extjs/resources/css/core.css deleted file mode 100644 index e97a61de9..000000000 --- a/www/extras/extjs/resources/css/core.css +++ /dev/null @@ -1,290 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.ext-el-mask { - z-index: 20000; - position: absolute; - top: 0; - left: 0; - -moz-opacity: 0.5; - opacity: .50; - filter: alpha(opacity=50); - background-color: #CCC; - width: 100%; - height: 100%; - zoom: 1; -} -.ext-el-mask-msg { - z-index: 20001; - position: absolute; - top: 0; - left: 0; - border:1px solid #6593cf; - background: #c3daf9 url(../images/default/box/tb-blue.gif) repeat-x 0 -16px; - padding:2px; -} -.ext-el-mask-msg div { - padding:5px 10px 5px 10px; - background: #eee; - border:1px solid #a3bad9; - color:#333; - font:normal 12px tahoma, arial, helvetica, sans-serif; - cursor:wait; -} - -.ext-shim { - position:absolute; - visibility:hidden; - left:0; - top:0; - overflow:hidden; -} -.ext-ie .ext-shim { - filter: alpha(opacity=0); -} - -.x-mask-loading div { - padding:5px 10px 5px 25px; - background: #eee url( '../images/default/grid/loading.gif' ) no-repeat 5px 5px; - line-height: 16px; -} - -/* class for hiding elements without using display:none */ -.x-hidden { - position:absolute; - left:-2000px; - top:-2000px; - visibility:hidden; -} - -.x-masked { - overflow: hidden !important; -} - -.x-masked select, .x-masked object, .x-masked embed { - visibility: hidden; -} - -.x-layer { - visibility: hidden; -} - -.x-unselectable, .x-unselectable * { - -moz-user-select: none; - -khtml-user-select: none; -} - -.x-repaint { - zoom: 1; - background-color: transparent; - -moz-outline: none; -} - -.x-item-disabled { - color: gray; - cursor: default; - opacity: .6; - -moz-opacity: .6; - filter: alpha(opacity=60); -} - -.x-item-disabled * { - color: gray; - cursor: default !important; -} - -.x-splitbar-proxy { - position: absolute; - visibility: hidden; - z-index: 20001; - background: #aaa; - zoom: 1; - line-height: 1px; - font-size: 1px; - overflow: hidden; -} - -.x-splitbar-h, .x-splitbar-proxy-h { - cursor: e-resize; - cursor: col-resize; -} - -.x-splitbar-v, .x-splitbar-proxy-v { - cursor: s-resize; - cursor: row-resize; -} - -.x-color-palette { - width: 150px; - height: 92px; -} - -.x-color-palette a { - border: 1px solid #fff; - float: left; - padding: 2px; - text-decoration: none; - -moz-outline: 0 none; - outline: 0 none; -} - -.x-color-palette a:hover, .x-color-palette a.x-color-palette-sel { - border: 1px solid #8BB8F3; - background: #deecfd; -} - -.x-color-palette em { - display: block; - border: 1px solid #ACA899; -} - -.x-color-palette em span { - cursor: pointer; - display: block; - height: 10px; - line-height: 10px; - width: 10px; -} - -.x-ie-shadow { - display: none; - position: absolute; - overflow: hidden; - left:0; - top:0; - background:#999; - zoom:1; -} - -.x-shadow { - display: none; - position: absolute; - overflow: hidden; - left:0; - top:0; -} - -.x-shadow * { - overflow: hidden; -} - -.x-shadow * { - padding: 0; - border: 0; - margin: 0; - clear: none; - zoom: 1; -} - -/* top bottom */ -.x-shadow .xstc, .x-shadow .xsbc { - height: 6px; - float: left; -} - -/* corners */ -.x-shadow .xstl, .x-shadow .xstr, .x-shadow .xsbl, .x-shadow .xsbr { - width: 6px; - height: 6px; - float: left; -} - -/* sides */ -.x-shadow .xsc { - width: 100%; -} - -.x-shadow .xsml, .x-shadow .xsmr { - width: 6px; - float: left; - height: 100%; -} - -.x-shadow .xsmc { - float: left; - height: 100%; - background: transparent url( ../images/default/shadow-c.png ); -} - -.x-shadow .xst, .x-shadow .xsb { - height: 6px; - overflow: hidden; - width: 100%; -} - -.x-shadow .xsml { - background: transparent url( ../images/default/shadow-lr.png ) repeat-y 0 0; -} - -.x-shadow .xsmr { - background: transparent url( ../images/default/shadow-lr.png ) repeat-y -6px 0; -} - -.x-shadow .xstl { - background: transparent url( ../images/default/shadow.png ) no-repeat 0 0; -} - -.x-shadow .xstc { - background: transparent url( ../images/default/shadow.png ) repeat-x 0 -30px; -} - -.x-shadow .xstr { - background: transparent url( ../images/default/shadow.png ) repeat-x 0 -18px; -} - -.x-shadow .xsbl { - background: transparent url( ../images/default/shadow.png ) no-repeat 0 -12px; -} - -.x-shadow .xsbc { - background: transparent url( ../images/default/shadow.png ) repeat-x 0 -36px; -} - -.x-shadow .xsbr { - background: transparent url( ../images/default/shadow.png ) repeat-x 0 -6px; -} - -.loading-indicator { - font-size: 11px; - background-image: url( '../images/default/grid/loading.gif' ); - background-repeat: no-repeat; - background-position: left; - padding-left: 20px; - line-height: 16px; - margin: 3px; -} - -.x-text-resize { - position: absolute; - left: -1000px; - top: -1000px; - visibility: hidden; - zoom: 1; -} - -.x-drag-overlay { - width: 100%; - height: 100%; - display: none; - position: absolute; - left: 0; - top: 0; - background: white; - z-index: 20000; - -moz-opacity: 0; - opacity: 0; - filter: alpha(opacity=0); -} - -.x-clear { - clear:both; - height:0; - overflow:hidden; - line-height:0; - font-size:0; -} diff --git a/www/extras/extjs/resources/css/date-picker.css b/www/extras/extjs/resources/css/date-picker.css deleted file mode 100644 index 061776824..000000000 --- a/www/extras/extjs/resources/css/date-picker.css +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.x-date-picker { - border: 1px solid #1b376c; - border-top:0 none; - background:#fff; -} -.x-date-picker a { - -moz-outline:0 none; - outline:0 none; -} -.x-date-inner, .x-date-inner td, .x-date-inner th{ - border-collapse:separate; -} -.x-date-middle,.x-date-left,.x-date-right { - background: url(../images/default/basic-dialog/hd-sprite.gif) repeat-x 0 -83px; - color:#FFF; - font:bold 11px "sans serif", tahoma, verdana, helvetica; - overflow:hidden; -} - -.x-date-middle .x-btn-left,.x-date-middle .x-btn-center,.x-date-middle .x-btn-right{ - background:transparent !important; - vertical-align:middle; -} -.x-date-middle .x-btn .x-btn-text { - color:#fff; -} -.x-date-middle .x-btn-with-menu .x-btn-center em { - background:transparent url(../images/default/toolbar/btn-arrow-light.gif) no-repeat right 0; -} -.x-date-right, .x-date-left { - width:18px; -} -.x-date-right{ - text-align:right; -} -.x-date-middle { - padding-top:2px;padding-bottom:2px; -} -.x-date-right a, .x-date-left a{ - display:block; - width:16px; - height:16px; - background-position: center; - background-repeat: no-repeat; - cursor:pointer; - -moz-opacity: 0.6; - opacity:.6; - filter: alpha(opacity=60); -} -.x-date-right a:hover, .x-date-left a:hover{ - -moz-opacity: 1; - opacity:1; - filter: alpha(opacity=100); -} -.x-date-right a { - background-image: url(../images/default/shared/right-btn.gif); - margin-right:2px; -} -.x-date-left a{ - background-image: url(../images/default/shared/left-btn.gif); - margin-left:2px; -} -table.x-date-inner { - width:100%; - table-layout:fixed; -} -.x-date-inner th { - width:25px; -} -.x-date-inner th { - background: #c3daf9; - text-align:right !important; - border-bottom: 1px solid #a3bad9; - font:normal 10px arial, helvetica,tahoma,sans-serif; - color:#233d6d; - cursor:default; - padding:0; - border-collapse:separate; -} -.x-date-inner th span { - display:block; - padding:2px; - padding-right:7px; -} -.x-date-inner td { - border: 1px solid #fff; - text-align:right; - padding:0; -} -.x-date-inner a { - padding:2px 5px; - display:block; - font:normal 11px arial, helvetica,tahoma,sans-serif; - text-decoration:none; - color:black; - text-align:right; - zoom:1; -} -.x-date-inner .x-date-active{ - cursor:pointer; - color:black; -} -.x-date-inner .x-date-selected a{ - background: #ddecfe; - border: 1px solid #a3bad9; - padding:1px 4px; -} -.x-date-inner .x-date-today a{ - border: 1px solid darkred; - padding:1px 4px; -} -.x-date-inner .x-date-selected span{ - font-weight:bold; -} -.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a { - color:#aaaaaa; -} -.x-date-bottom { - padding:4px; - border-top: 1px solid #a3bad9; - background: #c3daf9; -} - -.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{ - text-decoration:none; - color:black; - background: #ddecfe; -} - -.x-date-inner .x-date-disabled a { - cursor:default; - background:#eeeeee; - color:#bbbbbb; -} -.x-date-mmenu{ - background:#eeeeee !important; -} -.x-date-mmenu .x-menu-item { - font-size:10px; - padding:1px 24px 1px 4px; - white-space: nowrap; - color:#000; -} -.x-date-mmenu .x-menu-item .x-menu-item-icon { - width:10px;height:10px;margin-right:5px; - background-position:center -4px !important; -} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/dd.css b/www/extras/extjs/resources/css/dd.css deleted file mode 100644 index a93209c7a..000000000 --- a/www/extras/extjs/resources/css/dd.css +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.x-dd-drag-proxy{ - position:absolute; - left:0;top:0; - visibility:hidden; - z-index:15000; -} -.x-dd-drag-ghost{ - color: black; - font: normal 11px arial, helvetica, sans-serif; - -moz-opacity: 0.85; - opacity:.85; - filter: alpha(opacity=85); - border-top:1px solid #dddddd; - border-left:1px solid #dddddd; - border-right:1px solid #bbbbbb; - border-bottom:1px solid #bbbbbb; - padding:3px; - padding-left:20px; - background-color:white; - white-space:nowrap; -} -.x-dd-drag-repair .x-dd-drag-ghost{ - -moz-opacity: 0.4; - opacity:.4; - filter: alpha(opacity=40); - border:0 none; - padding:0; - background-color:transparent; -} -.x-dd-drag-repair .x-dd-drop-icon{ - visibility:hidden; -} -.x-dd-drop-icon{ - position:absolute; - top:3px; - left:3px; - display:block; - width:16px; - height:16px; - background-color:transparent; - background-position: center; - background-repeat: no-repeat; - z-index:1; -} -.x-dd-drop-nodrop .x-dd-drop-icon{ - background-image: url(../images/default/dd/drop-no.gif); -} -.x-dd-drop-ok .x-dd-drop-icon{ - background-image: url(../images/default/dd/drop-yes.gif); -} -.x-dd-drop-ok-add .x-dd-drop-icon{ - background-image: url(../images/default/dd/drop-add.gif); -} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/debug.css b/www/extras/extjs/resources/css/debug.css deleted file mode 100644 index 6500b7245..000000000 --- a/www/extras/extjs/resources/css/debug.css +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -#x-debug-browser .x-tree .x-tree-node a span { - color:#222297; - font-size:12px; - padding-top:2px; - font-family:"courier","courier new"; - line-height:18px; -} -#x-debug-browser .x-tree a i { - color:#FF4545; - font-style:normal; -} -#x-debug-browser .x-tree a em { - color:#999; -} -#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{ - background:#c3daf9; -} -#x-debug-browser pre, .x-debug-browser pre xmp { - font:normal 11px tahoma, arial, helvetica, sans-serif !important; - white-space: -moz-pre-wrap; - white-space: -pre-wrap; - white-space: -o-pre-wrap; - word-wrap: break-word; -} -#x-debug-browser pre { - display:block; - padding:5px !important; - border-bottom:1px solid #eeeeee !important; -} -#x-debug-browser pre xmp { - padding:0 !important; - margin:0 !important; -} -#x-debug-console .x-layout-panel-center, #x-debug-inspector .x-layout-panel-center { - border-right:1px solid #98c0f4; -} -#x-debug-console textarea { - border: 0 none; - font-size:12px; - font-family:"courier","courier new"; - padding-top:4px; - padding-left:4px; -} -.x-debug-frame { - background:#eeeeee; - border:1px dashed #aaaaaa; -} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/ext-all.css b/www/extras/extjs/resources/css/ext-all.css deleted file mode 100644 index 83810b2cc..000000000 --- a/www/extras/extjs/resources/css/ext-all.css +++ /dev/null @@ -1,3168 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/*html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}img,body,html{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul - * {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';}*/ -.ext-el-mask { - z-index: 20000; - position: absolute; - top: 0; - left: 0; - -moz-opacity: 0.5; - opacity: .50; - filter: alpha(opacity=50); - background-color: #CCC; - width: 100%; - height: 100%; - zoom: 1; -} -.ext-el-mask-msg { - z-index: 20001; - position: absolute; - top: 0; - left: 0; - border:1px solid #6593cf; - background: #c3daf9 url(../images/default/box/tb-blue.gif) repeat-x 0 -16px; - padding:2px; -} -.ext-el-mask-msg div { - padding:5px 10px 5px 10px; - background: #eee; - border:1px solid #a3bad9; - color:#333; - font:normal 12px tahoma, arial, helvetica, sans-serif; - cursor:wait; -} - -.ext-shim { - position:absolute; - visibility:hidden; - left:0; - top:0; - overflow:hidden; -} -.ext-ie .ext-shim { - filter: alpha(opacity=0); -} - -.x-mask-loading div { - padding:5px 10px 5px 25px; - background: #eee url( '../images/default/grid/loading.gif' ) no-repeat 5px 5px; - line-height: 16px; -} - - -.x-hidden { - position:absolute; - left:-2000px; - top:-2000px; - visibility:hidden; -} - -.x-masked { - overflow: hidden !important; -} - -.x-masked select, .x-masked object, .x-masked embed { - visibility: hidden; -} - -.x-layer { - visibility: hidden; -} - -.x-unselectable, .x-unselectable * { - -moz-user-select: none; - -khtml-user-select: none; -} - -.x-repaint { - zoom: 1; - background-color: transparent; - -moz-outline: none; -} - -.x-item-disabled { - color: gray; - cursor: default; - opacity: .6; - -moz-opacity: .6; - filter: alpha(opacity=60); -} - -.x-item-disabled * { - color: gray; - cursor: default !important; -} - -.x-splitbar-proxy { - position: absolute; - visibility: hidden; - z-index: 20001; - background: #aaa; - zoom: 1; - line-height: 1px; - font-size: 1px; - overflow: hidden; -} - -.x-splitbar-h, .x-splitbar-proxy-h { - cursor: e-resize; - cursor: col-resize; -} - -.x-splitbar-v, .x-splitbar-proxy-v { - cursor: s-resize; - cursor: row-resize; -} - -.x-color-palette { - width: 150px; - height: 92px; -} - -.x-color-palette a { - border: 1px solid #fff; - float: left; - padding: 2px; - text-decoration: none; - -moz-outline: 0 none; - outline: 0 none; -} - -.x-color-palette a:hover, .x-color-palette a.x-color-palette-sel { - border: 1px solid #8BB8F3; - background: #deecfd; -} - -.x-color-palette em { - display: block; - border: 1px solid #ACA899; -} - -.x-color-palette em span { - cursor: pointer; - display: block; - height: 10px; - line-height: 10px; - width: 10px; -} - -.x-ie-shadow { - display: none; - position: absolute; - overflow: hidden; - left:0; - top:0; - background:#999; - zoom:1; -} - -.x-shadow { - display: none; - position: absolute; - overflow: hidden; - left:0; - top:0; -} - -.x-shadow * { - overflow: hidden; -} - -.x-shadow * { - padding: 0; - border: 0; - margin: 0; - clear: none; - zoom: 1; -} - - -.x-shadow .xstc, .x-shadow .xsbc { - height: 6px; - float: left; -} - - -.x-shadow .xstl, .x-shadow .xstr, .x-shadow .xsbl, .x-shadow .xsbr { - width: 6px; - height: 6px; - float: left; -} - - -.x-shadow .xsc { - width: 100%; -} - -.x-shadow .xsml, .x-shadow .xsmr { - width: 6px; - float: left; - height: 100%; -} - -.x-shadow .xsmc { - float: left; - height: 100%; - background: transparent url( ../images/default/shadow-c.png ); -} - -.x-shadow .xst, .x-shadow .xsb { - height: 6px; - overflow: hidden; - width: 100%; -} - -.x-shadow .xsml { - background: transparent url( ../images/default/shadow-lr.png ) repeat-y 0 0; -} - -.x-shadow .xsmr { - background: transparent url( ../images/default/shadow-lr.png ) repeat-y -6px 0; -} - -.x-shadow .xstl { - background: transparent url( ../images/default/shadow.png ) no-repeat 0 0; -} - -.x-shadow .xstc { - background: transparent url( ../images/default/shadow.png ) repeat-x 0 -30px; -} - -.x-shadow .xstr { - background: transparent url( ../images/default/shadow.png ) repeat-x 0 -18px; -} - -.x-shadow .xsbl { - background: transparent url( ../images/default/shadow.png ) no-repeat 0 -12px; -} - -.x-shadow .xsbc { - background: transparent url( ../images/default/shadow.png ) repeat-x 0 -36px; -} - -.x-shadow .xsbr { - background: transparent url( ../images/default/shadow.png ) repeat-x 0 -6px; -} - -.loading-indicator { - font-size: 11px; - background-image: url( '../images/default/grid/loading.gif' ); - background-repeat: no-repeat; - background-position: left; - padding-left: 20px; - line-height: 16px; - margin: 3px; -} - -.x-text-resize { - position: absolute; - left: -1000px; - top: -1000px; - visibility: hidden; - zoom: 1; -} - -.x-drag-overlay { - width: 100%; - height: 100%; - display: none; - position: absolute; - left: 0; - top: 0; - background: white; - z-index: 20000; - -moz-opacity: 0; - opacity: 0; - filter: alpha(opacity=0); -} - -.x-clear { - clear:both; - height:0; - overflow:hidden; - line-height:0; - font-size:0; -} - -.x-tabs-wrap { - border-bottom:1px solid #6593cf; - padding-top:2px; -} -.x-tabs-strip-wrap{ - width:100%; -} -.x-tabs-wrap table{ - position:relative; - top:0; left:0; -} -.x-tabs-strip td{ - padding:0; - padding-left:2px; -} -.x-tabs-strip a, .x-tabs-strip span, .x-tabs-strip em { - display:block; -} -.x-tabs-strip a { - text-decoration:none !important; - -moz-outline: none; - outline: none; - cursor:pointer; -} -.x-tabs-strip .x-tabs-text { - font:bold 11px tahoma,arial,helvetica; - color:#666; - overflow:hidden; - white-space: nowrap; - cursor:pointer; - text-overflow: ellipsis; -} -.x-tabs-strip .on .x-tabs-text { - cursor:default; - color:#083772; -} -.x-tabs-strip .disabled .x-tabs-text { - cursor:default; - color:#aaaaaa; -} -.x-tabs-strip .x-tabs-inner { - padding:4px 10px; -} - -.x-tabs-strip .on .x-tabs-right { - background: url(../images/default/tabs/tab-sprite.gif) no-repeat right 0; -} -.x-tabs-strip .on .x-tabs-left { - background: url(../images/default/tabs/tab-sprite.gif) no-repeat 0 -100px; -} -.x-tabs-strip .x-tabs-right { - background: url(../images/default/tabs/tab-sprite.gif) no-repeat right -50px; -} -.x-tabs-strip .x-tabs-left { - background: url(../images/default/tabs/tab-sprite.gif) no-repeat 0 -150px; -} - -.x-tabs-strip a { - position:relative; - top:1px; left:0; -} -.x-tabs-strip .on a { - position:relative; -} -.x-tabs-strip .on .x-tabs-inner { - padding-bottom:5px; -} - -.x-tabs-strip .x-tabs-closable .x-tabs-inner{ - padding-right:22px; - position:relative; -} -.x-tabs-strip .x-tabs-closable .close-icon{ - line-height: 1px; - font-size:1px; - background-image:url(../images/default/layout/tab-close.gif); - display:block; - position:absolute; - right:5px;top:4px; - width:11px;height:11px; - cursor:pointer; -} -.x-tabs-strip .on .close-icon{ - background-image:url(../images/default/layout/tab-close-on.gif); -} -.x-tabs-strip .x-tabs-closable .close-over{ - background-image:url(../images/default/layout/tab-close-on.gif); -} -.x-tabs-body { - border:1px solid #6593cf; - border-top:0 none; -} -.x-tabs-bottom .x-tabs-wrap { - border-top:1px solid #6593cf; - border-bottom:0 none; - padding-top:0; - padding-bottom:2px; -} -.x-tabs-bottom .x-tabs-strip .x-tabs-right { - background: url(../images/default/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom left; -} -.x-tabs-bottom .x-tabs-strip .x-tabs-left { - background: url(../images/default/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom right; -} -.x-tabs-bottom .x-tabs-strip .on .x-tabs-right { - background: url(../images/default/tabs/tab-btm-right-bg.gif) no-repeat bottom left; -} -.x-tabs-bottom .x-tabs-strip .on .x-tabs-left { - background: url(../images/default/tabs/tab-btm-left-bg.gif) no-repeat bottom right; -} -.x-tabs-bottom .x-tabs-strip a { - position:relative; - top:0; left:0; -} -.x-tabs-bottom .x-tabs-strip .on a { - margin-top:-1px; -} -.x-tabs-bottom .x-tabs-strip .on .x-tabs-inner { - padding-top:5px; -} - -.x-tabs-bottom .x-tabs-body { - border:1px solid #6593cf; - border-bottom:0 none; -} - - - -.x-form-field{ - margin: 0 0 0 0; - font:normal 12px tahoma, arial, helvetica, sans-serif; -} - - -.x-form-text, textarea.x-form-field{ - padding: 1px 3px; - background:#fff url(../images/default/form/text-bg.gif) repeat-x 0 0; - border: 1px solid #B5B8C8; -} -.x-form-text { - height:22px; - line-height:18px; - vertical-align:middle; -} -.ext-ie .x-form-text { - margin-top:-1px; - margin-bottom:-1px; - height:22px; - line-height:18px; -} -.ext-strict .x-form-text { - height:18px; -} -.ext-safari .x-form-text { - height:20px; -} -.ext-gecko .x-form-text { - padding-top:2px; - padding-bottom:0; -} - - -.x-form-select-one { - height:20px; - line-height:18px; - vertical-align:middle; - background-color:#fff; - border: 1px solid #B5B8C8; -} - - - - - - - - - - - - - - - - -.x-form-field-wrap { - position:relative; - zoom:1; - white-space: nowrap; -} - -.x-editor .x-form-check-wrap { - background:#fff; -} -.x-form-field-wrap .x-form-trigger{ - width:17px; - height:21px; - border:0; - background:transparent url(../images/default/form/trigger.gif) no-repeat 0 0; - cursor:pointer; - border-bottom: 1px solid #B5B8C8; - position:absolute; - top:0; -} -.ext-safari .x-form-field-wrap .x-form-trigger{ - height:19px; -} -.x-form-field-wrap .x-form-trigger-over{ - background-position:-17px 0; -} -.x-form-field-wrap .x-form-trigger-click{ - background-position:-34px 0; -} -.x-item-disabled .x-form-trigger-over{ - background-position:0 0 !important; -} -.x-item-disabled .x-form-trigger-click{ - background-position:0 0 !important; -} -.x-form-field-wrap .x-form-date-trigger{ - background:transparent url(../images/default/form/date-trigger.gif) no-repeat 0 0; - cursor:pointer; -} -.ext-safari .x-form-field-wrap .x-form-date-trigger{ - right:0; -} - - -.x-form-focus{ - border: 1px solid #7eadd9; -} - - -.x-form-invalid, textarea.x-form-invalid{ - background:#fff url(../images/default/grid/invalid_line.gif) repeat-x bottom; - border: 1px solid #dd7870; -} -.ext-safari .x-form-invalid{ - background-color:#ffeeee; - border: 1px solid #ff7870; -} - - - -.x-editor { - visibility:hidden; - padding:0; - margin:0; -} -.x-form-check-wrap { - line-height:18px; -} -.ext-ie .x-form-check-wrap input { - width:15px; - height:15px; -} -.x-editor .x-form-check-wrap { - padding:3px; -} -.x-editor .x-form-checkbox { - height:13px; - border: 0 none; -} - -.x-form-grow-sizer { - font:normal 12px tahoma, arial, helvetica, sans-serif; - left: -10000px; - padding: 8px 3px; - position: absolute; - visibility:hidden; - top: -10000px; - white-space: pre-wrap; - white-space: -moz-pre-wrap; - white-space: -pre-wrap; - white-space: -o-pre-wrap; - word-wrap: break-word; - zoom:1; -} - - - -.x-form-item { - font:normal 12px tahoma, arial, helvetica, sans-serif; - display:block; - margin-bottom:4px; -} - -.x-form-item label { - display:block; - float:left; - width:100px; - padding:3px; - padding-left:0; - clear:left; -} - -.x-form-element { - padding-left:105px; - position:relative; -} - -.x-form-invalid-msg { - color:#ee0000; - padding:2px; - padding-left:18px; - font:normal 11px tahoma, arial, helvetica, sans-serif; - background: transparent url(../images/default/shared/warning.gif) no-repeat 0 2px; - line-height:16px; - width:200px; -} - -.x-form-label-right label { - text-align:right; -} - -.x-form-label-top .x-form-item label { - width:auto; - float:none; - clear:none; - display:inline; - margin-bottom:4px; -} -.x-form-label-top .x-form-element { - padding-left:0; - padding-top:4px; -} -.x-form-label-top .x-form-item { - padding-bottom:4px; -} -.x-form fieldset { - border:1px solid #B5B8C8; - padding:10px 10px 5px 10px; - margin-bottom:10px; -} -.x-form fieldset legend { - font:bold 11px tahoma, arial, helvetica, sans-serif; - color:#15428b; -} -.ext-ie .x-form fieldset legend { - margin-bottom:10px; -} -.ext-ie .x-form fieldset { - padding-top: 0; -} -.x-form-empty-field { - color:gray; -} - -.x-small-editor .x-form-field { - font:normal 11px arial, tahoma, helvetica, sans-serif; -} -.x-small-editor .x-form-text { - height:20px; - line-height:16px; - vertical-align:middle; -} -.ext-ie .x-small-editor .x-form-text { - margin-top:-1px !important; - margin-bottom:-1px !important; - height:20px !important; - line-height:16px !important; -} -.ext-strict .x-small-editor .x-form-text { - height:16px !important; -} -.ext-safari .x-small-editor .x-form-field { - - font:normal 12px arial, tahoma, helvetica, sans-serif; -} -.ext-ie .x-small-editor .x-form-text { - height:20px; - line-height:16px; -} -.ext-border-box .x-small-editor .x-form-text { - height:20px; -} - -.x-small-editor .x-form-select-one { - height:20px; - line-height:16px; - vertical-align:middle; -} -.x-small-editor .x-form-num-field { - text-align:right; -} -.x-small-editor .x-form-field-wrap .x-form-trigger{ - height:19px; -} - - -.x-form-clear { - clear:both; - height:0; - overflow:hidden; - line-height:0; - font-size:0; -} -.x-form-clear-left { - clear:left; - height:0; - overflow:hidden; - line-height:0; - font-size:0; -} - -.x-form-cb-label { - width:'auto' !important; - float:none !important; - clear:none !important; - display:inline !important; - margin-left:4px; -} - -.x-form-column { - float:left; - padding:0; - margin:0; - width:48%; - overflow:hidden; - zoom:1; -} - - -.x-form .x-form-btns-ct .x-btn{ - float:right; - clear:none; -} -.x-form .x-form-btns-ct .x-form-btns td { - border:0; - padding:0; -} -.x-form .x-form-btns-ct .x-form-btns-right table{ - float:right; - clear:none; -} -.x-form .x-form-btns-ct .x-form-btns-left table{ - float:left; - clear:none; -} -.x-form .x-form-btns-ct .x-form-btns-center{ - text-align:center; -} -.x-form .x-form-btns-ct .x-form-btns-center table{ - margin:0 auto; -} -.x-form .x-form-btns-ct table td.x-form-btn-td{ - padding:3px; -} - -.x-form .x-form-btns-ct .x-btn-focus .x-btn-left{ - background-position:0 -147px; -} -.x-form .x-form-btns-ct .x-btn-focus .x-btn-right{ - background-position:0 -168px; -} -.x-form .x-form-btns-ct .x-btn-focus .x-btn-center{ - background-position:0 -189px; -} - -.x-form .x-form-btns-ct .x-btn-click .x-btn-center{ - background-position:0 -126px; -} -.x-form .x-form-btns-ct .x-btn-click .x-btn-right{ - background-position:0 -84px; -} -.x-form .x-form-btns-ct .x-btn-click .x-btn-left{ - background-position:0 -63px; -} -.x-form-invalid-icon { - width:16px; - height:18px; - visibility:hidden; - position:absolute; - left:0; - top:0; - display:block; - background:transparent url(../images/default/form/exclamation.gif) no-repeat 0 2px; -} -.x-btn{ - font:normal 11px tahoma, verdana, helvetica; - cursor:pointer; - white-space: nowrap; -} -.x-btn button{ - border:0 none; - background:transparent; - font:normal 11px tahoma,verdana,helvetica; - padding-left:3px; - padding-right:3px; - cursor:pointer; - margin:0; - overflow:visible; - width:auto; - -moz-outline:0 none; - outline:0 none; -} -* html .ext-ie .x-btn button { - width:1px; -} -.ext-gecko .x-btn button { - padding-left:0; - padding-right:0; -} -.ext-ie .x-btn button { - padding-top:2px; -} - - -.x-btn-icon .x-btn-center .x-btn-text{ - background-position: center; - background-repeat: no-repeat; - height: 16px; - width: 16px; - cursor:pointer; - white-space: nowrap; - padding:0; -} -.x-btn-icon .x-btn-center{ - padding:1px; -} -.x-btn em { - font-style:normal; - font-weight:normal; -} - - -.x-btn-text-icon .x-btn-center .x-btn-text{ - background-position: 0 2px; - background-repeat: no-repeat; - padding-left:18px; - padding-top:3px; - padding-bottom:3px; - padding-right:0; -} - -.x-btn-left, .x-btn-right{ - font-size:1px; - line-height:1px; -} -.x-btn-left{ - width:3px; - height:21px; - background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 0; -} -.x-btn-right{ - width:3px; - height:21px; - background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 -21px; -} -.x-btn-left i, .x-btn-right i{ - display:block; - width:3px; - overflow:hidden; - font-size:1px; - line-height:1px; -} -.x-btn-center{ - background:url(../images/default/basic-dialog/btn-sprite.gif) repeat-x 0 -42px; - vertical-align: middle; - text-align:center; - padding:0 5px; - cursor:pointer; - white-space:nowrap; -} -.x-btn-over .x-btn-left{ - background-position:0 -63px; -} -.x-btn-over .x-btn-right{ - background-position:0 -84px; -} -.x-btn-over .x-btn-center{ - background-position:0 -105px; -} -.x-btn-click .x-btn-center, .x-btn-menu-active .x-btn-center{ - background-position:0 -126px; -} -.x-btn-disabled *{ - color:gray !important; - cursor:default !important; -} -.x-btn-menu-text-wrap .x-btn-center { - padding:0 3px; -} -.ext-gecko .x-btn-menu-text-wrap .x-btn-center { - padding:0 1px; -} -.x-btn-menu-arrow-wrap .x-btn-center { - padding:0; -} -.x-btn-menu-arrow-wrap .x-btn-center button { - width:12px !important; - height:21px; - padding:0 !important; - display:block; - background:transparent url(../images/default/basic-dialog/btn-arrow.gif) no-repeat left 3px; -} -.x-btn-with-menu .x-btn-center { - padding-right:2px !important; -} -.x-btn-with-menu .x-btn-center em { - display:block; - background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 0; - padding-right:10px; -} - -.x-btn-text-icon .x-btn-with-menu .x-btn-center em { - display:block; - background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 3px; - padding-right:10px; -} -.x-toolbar{ - border: 1px solid; - border-color:#eaf0f7 #eaf0f7 #a9bfd3 #eaf0f7; - display: block; - padding:2px; - background:#d0def0 url(../images/default/layout/panel-title-light-bg.gif) repeat-x; -} -.x-toolbar td { - vertical-align:middle; -} -.mso .x-toolbar, .x-grid-mso .x-toolbar{ - border: 0 none; - background: url(../images/default/grid/mso-hd.gif); -} -.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{ - white-space: nowrap; - font:normal 11px tahoma, arial, helvetica, sans-serif; -} -.x-toolbar .x-item-disabled { - color:gray; - cursor:default; - opacity:.6; - -moz-opacity:.6; - filter:alpha(opacity=60); -} -.x-toolbar .x-item-disabled * { - color:gray; - cursor:default; -} -.x-toolbar .x-btn-left{ - background:none; -} -.x-toolbar .x-btn-right{ - background:none; -} -.x-toolbar .x-btn-center{ - background:none; - padding:0 0; -} -.x-toolbar .x-btn-menu-text-wrap .x-btn-center button{ - padding-right:2px; -} -.ext-gecko .x-toolbar .x-btn-menu-text-wrap .x-btn-center button{ - padding-right:0; -} -.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{ - padding:0 2px; -} -.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { - width:12px; - background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat 0 3px; -} -.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { - width:12px; - background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat 0 3px; -} -.x-toolbar .x-btn-over .x-btn-menu-arrow-wrap .x-btn-center button { - background-position: 0 -47px; -} -.x-toolbar .x-btn-over .x-btn-left{ - background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 0; -} -.x-toolbar .x-btn-over .x-btn-right{ - background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -21px; -} -.x-toolbar .x-btn-over .x-btn-center{ - background:url(../images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -42px; -} - -.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ - background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -63px; -} -.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ - background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -84px; -} -.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ - background:url(../images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -105px; -} - -.x-toolbar .ytb-text{ - padding:2px; -} -.x-toolbar .ytb-sep { - background-image: url(../images/default/grid/grid-split.gif); - background-position: center; - background-repeat: no-repeat; - display: block; - font-size: 1px; - height: 16px; - width:4px; - overflow: hidden; - cursor:default; - margin: 0 2px 0; - border:0; -} -.x-toolbar .ytb-spacer { - width:2px; -} -.mso .x-toolbar .ytb-sep, .x-grid-mso .x-toolbar .ytb-sep{ - background-image: url(../images/default/grid/grid-blue-split.gif); -} - - -.ext-ie .x-toolbar .x-form-field-wrap { - padding-bottom:1px; -} -.ext-ie .x-toolbar .x-form-field-wrap .x-form-trigger { - top:1px; -} - - - -.x-grid-page-number{ - width:24px; - height:14px; -} -.x-grid-page-first .x-btn-text{ - background-image: url(../images/default/grid/page-first.gif); -} -.x-grid-loading .x-btn-text{ - background-image: url(../images/default/grid/done.gif); -} -.x-grid-page-last .x-btn-text{ - background-image: url(../images/default/grid/page-last.gif); -} -.x-grid-page-next .x-btn-text{ - background-image: url(../images/default/grid/page-next.gif); -} -.x-grid-page-prev .x-btn-text{ - background-image: url(../images/default/grid/page-prev.gif); -} -.x-item-disabled .x-grid-loading .x-btn-text{ - background-image: url(../images/default/grid/loading.gif); -} -.x-item-disabled .x-grid-page-first .x-btn-text{ - background-image: url(../images/default/grid/page-first-disabled.gif); -} -.x-item-disabled .x-grid-page-last .x-btn-text{ - background-image: url(../images/default/grid/page-last-disabled.gif); -} -.x-item-disabled .x-grid-page-next .x-btn-text{ - background-image: url(../images/default/grid/page-next-disabled.gif); -} -.x-item-disabled .x-grid-page-prev .x-btn-text{ - background-image: url(../images/default/grid/page-prev-disabled.gif); -} -.x-paging-info { - position:absolute; - top:8px; - right: 8px; - color:#15428b; -} - -.x-resizable-handle { - position:absolute; - z-index:100; - - font-size:1px; - line-height:6px; - overflow:hidden; - background:white; - filter:alpha(opacity=0); - opacity:0; - zoom:1; -} -.x-resizable-handle-east{ - width:6px; - cursor:e-resize; - right:0; - top:0; - height:100%; -} -.ext-ie .x-resizable-handle-east { - margin-right:-1px; -} -.x-resizable-handle-south{ - width:100%; - cursor:s-resize; - left:0; - bottom:0; - height:6px; -} -.ext-ie .x-resizable-handle-south { - margin-bottom:-1px; -} -.x-resizable-handle-west{ - width:6px; - cursor:w-resize; - left:0; - top:0; - height:100%; -} -.x-resizable-handle-north{ - width:100%; - cursor:n-resize; - left:0; - top:0; - height:6px; -} -.x-resizable-handle-southeast{ - width:6px; - cursor:se-resize; - right:0; - bottom:0; - height:6px; - z-index:101; -} -.x-resizable-handle-northwest{ - width:6px; - cursor:nw-resize; - left:0; - top:0; - height:6px; - z-index:101; -} -.x-resizable-handle-northeast{ - width:6px; - cursor:ne-resize; - right:0; - top:0; - height:6px; - z-index:101; -} -.x-resizable-handle-southwest{ - width:6px; - cursor:sw-resize; - left:0; - bottom:0; - height:6px; - z-index:101; -} -.x-resizable-over .x-resizable-handle, .x-resizable-pinned .x-resizable-handle{ - filter:alpha(opacity=100); - opacity:1; -} -.x-resizable-over .x-resizable-handle-east, .x-resizable-pinned .x-resizable-handle-east{ - background:url(../images/default/sizer/e-handle.gif); - background-position: left; -} -.x-resizable-over .x-resizable-handle-west, .x-resizable-pinned .x-resizable-handle-west{ - background:url(../images/default/sizer/e-handle.gif); - background-position: left; -} -.x-resizable-over .x-resizable-handle-south, .x-resizable-pinned .x-resizable-handle-south{ - background:url(../images/default/sizer/s-handle.gif); - background-position: top; -} -.x-resizable-over .x-resizable-handle-north, .x-resizable-pinned .x-resizable-handle-north{ - background:url(../images/default/sizer/s-handle.gif); - background-position: top; -} -.x-resizable-over .x-resizable-handle-southeast, .x-resizable-pinned .x-resizable-handle-southeast{ - background:url(../images/default/sizer/se-handle.gif); - background-position: top left; -} -.x-resizable-over .x-resizable-handle-northwest, .x-resizable-pinned .x-resizable-handle-northwest{ - background:url(../images/default/sizer/nw-handle.gif); - background-position:bottom right; -} -.x-resizable-over .x-resizable-handle-northeast, .x-resizable-pinned .x-resizable-handle-northeast{ - background:url(../images/default/sizer/ne-handle.gif); - background-position: bottom left; -} -.x-resizable-over .x-resizable-handle-southwest, .x-resizable-pinned .x-resizable-handle-southwest{ - background:url(../images/default/sizer/sw-handle.gif); - background-position: top right; -} -.x-resizable-proxy{ - border: 1px dashed #6593cf; - position:absolute; - overflow:hidden; - display:none; - left:0;top:0; - z-index:50000; -} -.x-resizable-overlay{ - width:100%; - height:100%; - display:none; - position:absolute; - left:0; - top:0; - background:white; - z-index:200000; - -moz-opacity: 0; - opacity:0; - filter: alpha(opacity=0); -} - - -.x-grid { - position:relative; - overflow:hidden; - background-color:#fff; -} -.x-grid-scroller { - overflow:auto; -} -.x-grid-viewport, .x-grid-locked{ - position:absolute; - left:0; top: 0; - z-index:2; - overflow:hidden; - visibility:hidden; -} -.x-grid-cell-inner, .x-grid-hd-inner{ - overflow:hidden; - -o-text-overflow: ellipsis; - text-overflow: ellipsis; -} -.x-grid-hd-row td, .x-grid-row td{ - font:normal 11px arial, tahoma, helvetica, sans-serif; - line-height:13px; - white-space: nowrap; - vertical-align: top; - -moz-outline: none; - -moz-user-focus: normal; -} -.x-grid-hd-row td { - line-height:14px; -} -.x-grid-col { - border-right: 1px solid #ebebeb; - border-bottom: 1px solid #ebebeb; -} - - -.x-grid-locked .x-grid-body td { - background-color: #FBFDFF; - border-right: 1px solid #deecfd; - border-bottom: 1px solid #deecfd !important; -} -.x-grid-locked .x-grid-body td .x-grid-cell-inner { - border-top:0 none; -} -.x-grid-locked .x-grid-row-alt td{ - background-color: #F5FAFE; -} - -.x-grid-locked .x-grid-header table{ - border-right:1px solid transparent; -} -.x-grid-locked .x-grid-body table{ - border-right:1px solid #c3daf9; -} - -.x-grid-locked .x-grid-body td .x-grid-cell-inner { - -} -.x-grid-row { - cursor: default; -} -.x-grid-row-alt{ - background-color:#f1f1f1; -} -.x-grid-row-over td{ - background-color:#d9e8fb; -} -.x-grid-resize-proxy { - width:3px; - background-color:#cccccc; - cursor: e-resize; - cursor: col-resize; - position:absolute; - top:0; - height:100px; - overflow:hidden; - visibility:hidden; - border:0 none; - z-index:7; -} -.x-grid-focus { - position:absolute; - top:0; - -moz-outline:0 none; - outline:0 none; - -moz-user-select: normal; - -khtml-user-select: normal; -} - - -.x-grid-header{ - background: #ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x; - overflow:hidden; - position:relative; - cursor:default; - width:100%; -} -.x-grid-hd-row{ - height:22px; -} -.x-grid-hd { - padding-right:1px; -} -.x-grid-hd-over .x-grid-hd-inner { - border-bottom: 1px solid #c3daf9; -} -.x-grid-hd-over .x-grid-hd-text { - background: #fafafa url(../images/default/grid/grid-hrow.gif) repeat-x 0 1px; - padding-bottom:1px; - border-bottom: 1px solid #b3cae9; -} -.x-grid-sort-icon{ - background-repeat: no-repeat; - display: none; - height: 4px; - width: 13px; - margin-left:3px; - vertical-align: middle; -} -.x-grid-header .sort-asc .x-grid-sort-icon { - background-image: url(../images/default/grid/sort_asc.gif); - display: inline; -} -.x-grid-header .sort-desc .x-grid-sort-icon { - background-image: url(../images/default/grid/sort_desc.gif); - display: inline; -} - - -.x-grid-body { - overflow:hidden; - position:relative; - width:100%; - zoom:1; -} - -.x-grid-cell-text,.x-grid-hd-text { - display: block; - padding: 3px 5px 3px 5px; - -moz-user-select: none; - -khtml-user-select: none; - color:black; -} -.x-grid-hd-text { - padding-top:4px; -} -.x-grid-split { - background-image: url(../images/default/grid/grid-split.gif); - background-position: center; - background-repeat: no-repeat; - cursor: e-resize; - cursor: col-resize; - display: block; - font-size: 1px; - height: 16px; - overflow: hidden; - position: absolute; - top: 2px; - width: 6px; - z-index: 3; -} - -.x-grid-hd-text { - color:#15428b; -} - -.x-dd-drag-proxy .x-grid-hd-inner{ - background: #ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x; - height:22px; - width:120px; -} - -.col-move-top, .col-move-bottom{ - width:9px; - height:9px; - position:absolute; - top:0; - line-height:1px; - font-size:1px; - overflow:hidden; - visibility:hidden; - z-index:20000; -} -.col-move-top{ - background:transparent url(../images/default/grid/col-move-top.gif) no-repeat left top; -} -.col-move-bottom{ - background:transparent url(../images/default/grid/col-move-bottom.gif) no-repeat left top; -} - - -.x-grid-row-selected td, .x-grid-locked .x-grid-row-selected td{ - background-color: #316ac5 !important; - color: white; -} -.x-grid-row-selected span, .x-grid-row-selected b, .x-grid-row-selected div, .x-grid-row-selected strong, .x-grid-row-selected i{ - color: white !important; -} -.x-grid-row-selected .x-grid-cell-text{ - color: white; -} -.x-grid-cell-selected{ - background-color: #316ac5 !important; - color: white; -} -.x-grid-cell-selected span{ - color: white !important; -} -.x-grid-cell-selected .x-grid-cell-text{ - color: white; -} - -.x-grid-locked td.x-grid-row-marker, .x-grid-locked .x-grid-row-selected td.x-grid-row-marker{ - background: #ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x 0 bottom !important; - vertical-align:middle !important; - color:black; - padding:0; - border-top:1px solid white; - border-bottom:none !important; - border-right:1px solid #6fa0df !important; - text-align:center; -} -.x-grid-locked td.x-grid-row-marker div, .x-grid-locked .x-grid-row-selected td.x-grid-row-marker div{ - padding:0 4px; - color:#15428b !important; - text-align:center; -} - - -.x-grid-dirty-cell { - background: transparent url(../images/default/grid/dirty.gif) no-repeat 0 0; -} - - -.x-grid-topbar, .x-grid-bottombar{ - font:normal 11px arial, tahoma, helvetica, sans-serif; - overflow:hidden; - display:none; - zoom:1; - position:relative; -} -.x-grid-topbar .x-toolbar{ - border-right:0 none; -} -.x-grid-bottombar .x-toolbar{ - border-right:0 none; - border-bottom:0 none; - border-top:1px solid #a9bfd3; -} - -.x-props-grid .x-grid-cell-selected .x-grid-cell-text{ - background-color: #316ac5 !important; -} -.x-props-grid .x-grid-col-value .x-grid-cell-text{ - background-color: white; -} -.x-props-grid .x-grid-col-name{ - background-color: #c3daf9; -} -.x-props-grid .x-grid-col-name .x-grid-cell-text{ - background-color: white; - margin-left:10px; -} -.x-props-grid .x-grid-split-value { - visibility:hidden; -} - - -.xg-hmenu-sort-asc .x-menu-item-icon{ - background-image: url(../images/default/grid/hmenu-asc.gif); -} -.xg-hmenu-sort-desc .x-menu-item-icon{ - background-image: url(../images/default/grid/hmenu-desc.gif); -} -.xg-hmenu-lock .x-menu-item-icon{ - background-image: url(../images/default/grid/hmenu-lock.gif); -} -.xg-hmenu-unlock .x-menu-item-icon{ - background-image: url(../images/default/grid/hmenu-unlock.gif); -} - - -.x-dd-drag-ghost .x-grid-dd-wrap { - padding:1px 3px 3px 1px; -} -.x-layout-container{ - width:100%; - height:100%; - overflow:hidden; - background-color:#c3daf9; -} -.x-layout-container .x-layout-tabs-body{ - border:0 none; -} -.x-layout-collapsed{ - position:absolute; - left:-10000px; - top:-10000px; - visibility:hidden; - background-color:#c3daf9; - width:20px; - height:20px; - overflow:hidden; - border:1px solid #98c0f4; - z-index:20; -} -.ext-border-box .x-layout-collapsed{ - width:22px; - height:22px; -} -.x-layout-collapsed-over{ - cursor:pointer; - background-color:#d9e8fb; -} -.x-layout-collapsed-west .x-layout-collapsed-tools, .x-layout-collapsed-east .x-layout-collapsed-tools{ - position:absolute; - top:0; - left:0; - width:20px; - height:20px; -} -.x-layout-collapsed-north .x-layout-collapsed-tools, .x-layout-collapsed-south .x-layout-collapsed-tools{ - position:absolute; - top:0; - right:0; - width:20px; - height:20px; -} -.x-layout-collapsed .x-layout-tools-button{ - margin:0; -} -.x-layout-collapsed .x-layout-tools-button-inner{ - width:16px; - height:16px; -} -.x-layout-inactive-content{ - position:absolute; - left:-10000px; - top:-10000px; - visibility:hidden; -} -.x-layout-active-content{ - visibility:visible; -} -.x-layout-panel{ - position:absolute;border:1px solid #98c0f4;overflow:hidden;background-color:white; -} -.x-layout-panel-east, .x-layout-panel-west { - z-index:10; -} -.x-layout-panel-north, .x-layout-panel-south { - z-index:11; -} -.x-layout-collapsed-north, .x-layout-collapsed-south, .x-layout-collapsed-east, .x-layout-collapsed-west { - z-index:12; -} -.x-layout-panel-body{ - overflow:hidden; -} -.x-layout-grid-wrapper{ - -} -.x-layout-split{ - position:absolute; - height:5px; - width:5px; - line-height:1px; - font-size:1px; - z-index:3; - background-color:#c3daf9; -} -.x-layout-panel-hd{ - background-image: url(../images/default/layout/panel-title-light-bg.gif); - color: black; - border-bottom:1px solid #98c0f4; - position:relative; -} -.x-layout-panel-hd-text{ - font:normal 11px tahoma, verdana, helvetica; - padding: 4px; - padding-left: 4px; - display:block; - white-space:nowrap; -} -.x-layout-panel-hd-tools{ - position:absolute; - right:0; - top:0; - text-align:right; - padding-top:2px; - padding-right:2px; - width:60px; -} -.x-layout-tools-button{ - z-index:6; - padding:2px; - cursor:pointer; - float:right; -} -.x-layout-tools-button-over{ - padding:1px; - border:1px solid #98c0f4; - background-color:white; -} -.x-layout-tools-button-inner{ - height:12px; - width:12px; - line-height:1px; - font-size:1px; - background-repeat:no-repeat; - background-position:center; -} -.x-layout-close{ - background-image:url(../images/default/layout/panel-close.gif); -} -.x-layout-stick{ - background-image:url(../images/default/layout/stick.gif); -} -.x-layout-collapse-west,.x-layout-expand-east{ - background-image:url(../images/default/layout/collapse.gif); -} -.x-layout-expand-west,.x-layout-collapse-east{ - background-image:url(../images/default/layout/expand.gif); -} -.x-layout-collapse-north,.x-layout-expand-south{ - background-image:url(../images/default/layout/ns-collapse.gif); -} -.x-layout-expand-north,.x-layout-collapse-south{ - background-image:url(../images/default/layout/ns-expand.gif); -} -.x-layout-split-h{ - background-image:url(../images/default/sizer/e-handle.gif); - background-position: left; -} -.x-layout-split-v{ - background-image:url(../images/default/sizer/s-handle.gif); - background-position: top; -} -.x-layout-panel .x-tabs-wrap{ - background:url(../images/default/layout/gradient-bg.gif); -} -.x-layout-panel .x-tabs-body { - background-color:white; - overflow:auto;height:100%; -} -.x-layout-component-panel, .x-layout-nested-layout { - position:relative; - padding:0; - overflow:hidden; - width:200px; - height:200px; -} -.x-layout-nested-layout .x-layout-panel { - border:0 none; -} -.x-layout-nested-layout .x-layout-panel-north { - border-bottom:1px solid #98c0f4; -} -.x-layout-nested-layout .x-layout-panel-south { - border-top:1px solid #98c0f4; -} -.x-layout-nested-layout .x-layout-panel-east { - border-left:1px solid #98c0f4; -} -.x-layout-nested-layout .x-layout-panel-west { - border-right:1px solid #98c0f4; -} - -.x-layout-panel-dragover { - border: 2px solid #6593cf; -} -.x-layout-panel-proxy { - background-image: url(../images/default/layout/gradient-bg.gif); - background-color:#c3daf9; - border:1px dashed #6593cf; - z-index:10001; - overflow:hidden; - position:absolute; - left:0;top:0; -} -.x-layout-slider { - z-index:15; - overflow:hidden; - position:absolute; -} - -.x-scroller-up, .x-scroller-down { - background-color:#c3daf9; - border: 1px solid #6593cf; - border-top-color: #fff; - border-left-color: #fff; - border-right:0 none; - cursor:pointer; - overflow:hidden; - line-height:16px; -} -.x-scroller-down { - border-bottom: 0 none; - border-top: 1px solid #6593cf; -} -.x-scroller-btn-over { - background-color: #d9e8f8; -} -.x-scroller-btn-click { - background-color: #AECEF7; -} -.x-scroller-btn-disabled { - cursor:default; - background-color: #c3daf9; - -moz-opacity: 0.3; - opacity:.30; - filter: alpha(opacity=30); -} - - - -.x-reader .x-layout-panel-north { - border:0 none; -} -.x-reader .x-layout-panel-center{ - border:0 none; -} -.x-reader .x-layout-nested-layout .x-layout-panel-center{ - border:1px solid #99bbe8; - border-top:0 none; -} -.x-reader .x-layout-nested-layout .x-layout-panel-south{ - border:1px solid #99bbe8; -} -.x-dlg-proxy { - background-image: url(../images/default/gradient-bg.gif); - background-color:#c3daf9; - border:1px solid #6593cf; - z-index:10001; - overflow:hidden; - position:absolute; - left:0;top:0; -} -.x-dlg-shadow{ - background:#aaaaaa; - position:absolute; - left:0;top:0; -} -.x-dlg-focus{ - -moz-outline:0 none; - outline:0 none; - width:0; - height:0; - overflow:hidden; - position:absolute; - top:0; - left:0; -} -.x-dlg-mask{ - z-index:10000; - display:none; - position:absolute; - top:0; - left:0; - -moz-opacity: 0.5; - opacity:.50; - filter: alpha(opacity=50); - background-color:#CCC; -} -body.x-body-masked select { - visibility:hidden; -} -body.x-body-masked .x-dlg select { - visibility:visible; -} -.x-dlg{ - z-index:10001; - overflow:hidden; - position:absolute; - left:300;top:0; -} -.x-dlg .x-dlg-hd { - background: url(../images/default/basic-dialog/hd-sprite.gif) repeat-x 0 -82px; - background-color:navy; - color:#FFF; - font:bold 12px "sans serif", tahoma, verdana, helvetica; - overflow:hidden; - padding:5px; - white-space: nowrap; -} -.x-dlg .x-dlg-hd-left { - background: url(../images/default/basic-dialog/hd-sprite.gif) no-repeat 0 -41px; - padding-left:3px; - margin:0; -} -.x-dlg .x-dlg-hd-right { - background: url(../images/default/basic-dialog/hd-sprite.gif) no-repeat right 0; - padding-right:3px; -} -.x-dlg .x-dlg-dlg-body{ - background:url(../images/default/layout/gradient-bg.gif); - border:1px solid #6593cf; - border-top:0 none; - padding:10px; - position:absolute; - top:24px;left:0; - z-index:1; - overflow:hidden; -} -.x-dlg-collapsed .x-resizable-handle{ - display:none; -} -.x-dlg .x-dlg-bd{ - overflow:hidden; -} -.x-dlg .x-dlg-ft{ - overflow:hidden; - padding:5px; - padding-bottom:0; -} - -.x-dlg .x-tabs-body{ - background:white; - overflow:auto; -} -.x-dlg .x-tabs-top .x-tabs-body{ - border:1px solid #6593cf; - border-top:0 none; -} -.x-dlg .x-tabs-bottom .x-tabs-body{ - border:1px solid #6593cf; - border-bottom:0 none; -} -.x-dlg .x-layout-container .x-tabs-body{ - border:0 none; -} -.x-dlg .inner-tab{ - margin:5px; -} -.x-dlg .x-dlg-ft .x-btn{ - margin-right:5px; - float:right; - clear:none; -} -.x-dlg .x-dlg-ft .x-dlg-btns td { - border:0; - padding:0; -} -.x-dlg .x-dlg-ft .x-dlg-btns-right table{ - float:right; - clear:none; -} -.x-dlg .x-dlg-ft .x-dlg-btns-left table{ - float:left; - clear:none; -} -.x-dlg .x-dlg-ft .x-dlg-btns-center{ - text-align:center; -} -.x-dlg .x-dlg-ft .x-dlg-btns-center table{ - margin:0 auto; -} - - -.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-focus .x-btn-left{ - background-position:0 -147px; -} -.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-focus .x-btn-right{ - background-position:0 -168px; -} -.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-focus .x-btn-center{ - background-position:0 -189px; -} - -.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-click .x-btn-center{ - background-position:0 -126px; -} -.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-click .x-btn-right{ - background-position:0 -84px; -} -.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-click .x-btn-left{ - background-position:0 -63px; -} - -.x-dlg-draggable .x-dlg-hd{ - cursor:move; -} -.x-dlg-closable .x-dlg-hd{ - padding-right:22px; -} -.x-dlg-toolbox { - position:absolute; - top:4px; - right:4px; - z-index:6; - width:40px; - cursor:default; - height:15px; - background:transparent; -} -.x-dlg .x-dlg-close, .x-dlg .x-dlg-collapse { - float:right; - height:15px; - width:15px; - margin:0; - margin-left:2px; - padding:0; - line-height:1px; - font-size:1px; - background-repeat:no-repeat; - cursor:pointer; - visibility:inherit; -} -.x-dlg .x-dlg-close { - background-image:url(../images/default/basic-dialog/close.gif); -} -.x-dlg .x-dlg-collapse { - background-image:url(../images/default/basic-dialog/collapse.gif); -} -.x-dlg-collapsed .x-dlg-collapse { - background-image:url(../images/default/basic-dialog/expand.gif); -} -.x-dlg .x-dlg-close-over, .x-dlg .x-dlg-collapse-over { - -} -.x-dlg div.x-resizable-handle-east{ - background-image:url(../images/default/basic-dialog/e-handle.gif); - border:0; - background-position:right; - margin-right:0; -} -.x-dlg div.x-resizable-handle-south{ - background-image:url(../images/default/sizer/s-handle-dark.gif); - border:0; - height:6px; -} -.x-dlg div.x-resizable-handle-west{ - background-image:url(../images/default/basic-dialog/e-handle.gif); - border:0; - background-position:1px; -} -.x-dlg div.x-resizable-handle-north{ - background-image:url(../images/default/s.gif); - border:0; -} -.x-dlg div.x-resizable-handle-northeast, .ytheme-gray .x-dlg div.x-resizable-handle-northeast{ - background-image:url(../images/default/s.gif); - border:0; -} -.x-dlg div.x-resizable-handle-northwest, .ytheme-gray .x-dlg div.x-resizable-handle-northwest{ - background-image:url(../images/default/s.gif); - border:0; -} -.x-dlg div.x-resizable-handle-southeast{ - background-image:url(../images/default/basic-dialog/se-handle.gif); - background-position: bottom right; - width:8px; - height:8px; - border:0; -} -.x-dlg div.x-resizable-handle-southwest{ - background-image:url(../images/default/sizer/sw-handle-dark.gif); - background-position: top right; - margin-left:1px; - margin-bottom:1px; - border:0; -} - -#x-msg-box .x-dlg-ft .x-btn{ - float:none; - clear:none; - margin:0 3px; -} - -#x-msg-box .x-dlg-bd { - padding:5px; - overflow:hidden !important; - font:normal 13px verdana,tahoma,sans-serif; -} -#x-msg-box .ext-mb-input { - margin-top:4px; - width:95%; -} -#x-msg-box .ext-mb-textarea { - margin-top:4px; - font:normal 13px verdana,tahoma,sans-serif; -} -#x-msg-box .ext-mb-progress-wrap { - margin-top:4px; - border:1px solid #6593cf; -} -#x-msg-box .ext-mb-progress { - height:18px; - background: #e0e8f3 url(../images/default/qtip/bg.gif) repeat-x; -} -#x-msg-box .ext-mb-progress-bar { - height:18px; - overflow:hidden; - width:0; - background:#8BB8F3; - border-top:1px solid #B2D0F7; - border-bottom:1px solid #65A1EF; - border-right:1px solid #65A1EF; -} - -#x-msg-box .x-msg-box-wait { - background: transparent url(../images/default/grid/loading.gif) no-repeat left; - display:block; - width:300px; - padding-left:18px; - line-height:18px; -} -.x-dd-drag-proxy{ - position:absolute; - left:0;top:0; - visibility:hidden; - z-index:15000; -} -.x-dd-drag-ghost{ - color: black; - font: normal 11px arial, helvetica, sans-serif; - -moz-opacity: 0.85; - opacity:.85; - filter: alpha(opacity=85); - border-top:1px solid #dddddd; - border-left:1px solid #dddddd; - border-right:1px solid #bbbbbb; - border-bottom:1px solid #bbbbbb; - padding:3px; - padding-left:20px; - background-color:white; - white-space:nowrap; -} -.x-dd-drag-repair .x-dd-drag-ghost{ - -moz-opacity: 0.4; - opacity:.4; - filter: alpha(opacity=40); - border:0 none; - padding:0; - background-color:transparent; -} -.x-dd-drag-repair .x-dd-drop-icon{ - visibility:hidden; -} -.x-dd-drop-icon{ - position:absolute; - top:3px; - left:3px; - display:block; - width:16px; - height:16px; - background-color:transparent; - background-position: center; - background-repeat: no-repeat; - z-index:1; -} -.x-dd-drop-nodrop .x-dd-drop-icon{ - background-image: url(../images/default/dd/drop-no.gif); -} -.x-dd-drop-ok .x-dd-drop-icon{ - background-image: url(../images/default/dd/drop-yes.gif); -} -.x-dd-drop-ok-add .x-dd-drop-icon{ - background-image: url(../images/default/dd/drop-add.gif); -} -.x-tree-icon, .x-tree-ec-icon, .x-tree-elbow-line, .x-tree-elbow, .x-tree-elbow-end, .x-tree-elbow-plus, .x-tree-elbow-minus, .x-tree-elbow-end-plus, .x-tree-elbow-end-minus{ - border: 0 none; - height: 18px; - margin: 0; - padding: 0; - vertical-align: middle; - width: 16px; - background-repeat: no-repeat; -} -.x-tree-node-collapsed .x-tree-node-icon, .x-tree-node-expanded .x-tree-node-icon, .x-tree-node-leaf .x-tree-node-icon{ - border: 0 none; - height: 18px; - margin: 0; - padding: 0; - vertical-align: middle; - width: 16px; - background-position:center; - background-repeat: no-repeat; -} - - -.x-tree-node-collapsed .x-tree-node-icon{ - background-image:url(../images/default/tree/folder.gif); -} -.x-tree-node-expanded .x-tree-node-icon{ - background-image:url(../images/default/tree/folder-open.gif); -} -.x-tree-node-leaf .x-tree-node-icon{ - background-image:url(../images/default/tree/leaf.gif); -} - -.x-tree-noicon .x-tree-node-icon{ - width:0; height:0; -} - -.x-tree-node-loading .x-tree-node-icon{ - background-image:url(../images/default/tree/loading.gif) !important; -} -.x-tree-node-loading a span{ - font-style: italic; - color:#444444; -} - - -.x-tree-lines .x-tree-elbow{ - background-image:url(../images/default/tree/elbow.gif); -} -.x-tree-lines .x-tree-elbow-plus{ - background-image:url(../images/default/tree/elbow-plus.gif); -} -.x-tree-lines .x-tree-elbow-minus{ - background-image:url(../images/default/tree/elbow-minus.gif); -} -.x-tree-lines .x-tree-elbow-end{ - background-image:url(../images/default/tree/elbow-end.gif); -} -.x-tree-lines .x-tree-elbow-end-plus{ - background-image:url(../images/default/tree/elbow-end-plus.gif); -} -.x-tree-lines .x-tree-elbow-end-minus{ - background-image:url(../images/default/tree/elbow-end-minus.gif); -} -.x-tree-lines .x-tree-elbow-line{ - background-image:url(../images/default/tree/elbow-line.gif); -} - - -.x-tree-no-lines .x-tree-elbow{ - background:transparent; -} -.x-tree-no-lines .x-tree-elbow-plus{ - background-image:url(../images/default/tree/elbow-plus-nl.gif); -} -.x-tree-no-lines .x-tree-elbow-minus{ - background-image:url(../images/default/tree/elbow-minus-nl.gif); -} -.x-tree-no-lines .x-tree-elbow-end{ - background:transparent; -} -.x-tree-no-lines .x-tree-elbow-end-plus{ - background-image:url(../images/default/tree/elbow-end-plus-nl.gif); -} -.x-tree-no-lines .x-tree-elbow-end-minus{ - background-image:url(../images/default/tree/elbow-end-minus-nl.gif); -} -.x-tree-no-lines .x-tree-elbow-line{ - background:transparent; -} - -.x-tree-elbow-plus, .x-tree-elbow-minus, .x-tree-elbow-end-plus, .x-tree-elbow-end-minus{ - cursor:pointer; -} -.ext-ie ul.x-tree-node-ct{ - font-size:0; - line-height:0; -} -.x-tree-node{ - color: black; - font: normal 11px arial, tahoma, helvetica, sans-serif; - white-space: nowrap; -} -.x-tree-node a, .x-dd-drag-ghost a{ - text-decoration:none; - color:black; - -khtml-user-select:none; - -moz-user-select:none; - -kthml-user-focus:normal; - -moz-user-focus:normal; - -moz-outline: 0 none; - outline:0 none; -} -.x-tree-node a span, .x-dd-drag-ghost a span{ - text-decoration:none; - color:black; - padding:1px 3px 1px 2px; -} -.x-tree-node .x-tree-node-disabled a span{ - color:gray !important; -} -.x-tree-node .x-tree-node-disabled .x-tree-node-icon{ - -moz-opacity: 0.5; - opacity:.5; - filter: alpha(opacity=50); -} -.x-tree-node .x-tree-node-inline-icon{ - background:transparent; -} -.x-tree-node a:hover, .x-dd-drag-ghost a:hover{ - text-decoration:none; -} -.x-tree-node div.x-tree-drag-insert-below{ - border-bottom:1px dotted #3366cc; -} -.x-tree-node div.x-tree-drag-insert-above{ - border-top:1px dotted #3366cc; -} -.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below{ - border-bottom:0 none; -} -.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above{ - border-top:0 none; -} -.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{ - border-bottom:2px solid #3366cc; -} -.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{ - border-top:2px solid #3366cc; -} -.x-tree-node .x-tree-drag-append a span{ - background:#dddddd; - border:1px dotted gray; -} -.x-tree-node .x-tree-selected a span{ - background:#3366cc; - color:white; -} -.x-dd-drag-ghost .x-tree-node-indent, .x-dd-drag-ghost .x-tree-ec-icon{ - display:none !important; -} -.x-tree-drop-ok-append .x-dd-drop-icon{ - background-image: url(../images/default/tree/drop-add.gif); -} -.x-tree-drop-ok-above .x-dd-drop-icon{ - background-image: url(../images/default/tree/drop-over.gif); -} -.x-tree-drop-ok-below .x-dd-drop-icon{ - background-image: url(../images/default/tree/drop-under.gif); -} -.x-tree-drop-ok-between .x-dd-drop-icon{ - background-image: url(../images/default/tree/drop-between.gif); -} - -.x-tip{ - position: absolute; - top: 0; - left:0; - visibility: hidden; - z-index: 20000; - border:0 none; -} -.x-tip .x-tip-close{ - background-image: url(../images/default/qtip/close.gif); - height: 15px; - float:right; - width: 15px; - margin:0 0 2px 2px; - cursor:pointer; - display:none; -} -.x-tip .x-tip-top { - background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -12px; - height:6px; - overflow:hidden; -} -.x-tip .x-tip-top-left { - background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 0; - padding-left:6px; - zoom:1; -} -.x-tip .x-tip-top-right { - background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right 0; - padding-right:6px; - zoom:1; -} -.x-tip .x-tip-ft { - background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -18px; - height:6px; - overflow:hidden; -} -.x-tip .x-tip-ft-left { - background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -6px; - padding-left:6px; - zoom:1; -} -.x-tip .x-tip-ft-right { - background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right -6px; - padding-right:6px; - zoom:1; -} -.x-tip .x-tip-bd { - border:0 none; - font: normal 11px tahoma,arial,helvetica,sans-serif; -} -.x-tip .x-tip-bd-left { - background: #fff url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -24px; - padding-left:6px; - zoom:1; -} -.x-tip .x-tip-bd-right { - background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right -24px; - padding-right:6px; - zoom:1; -} - -.x-tip h3 { - font: bold 12px tahoma,arial,helvetica,sans-serif; - margin:0; - padding:2px 2px; - color:#222; -} -.x-tip .x-tip-bd-inner { - margin:0 !important; - line-height:14px; - color:#222; - padding:0; - float:left; -} - - -.x-form-invalid-tip { -} - -.x-form-invalid-tip .x-tip-top { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-top-left { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-top-right { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-ft { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-ft-left { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-ft-right { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-bd-left { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-bd-right { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-bd .x-tip-bd-inner { - padding-left:24px; - background:transparent url(../images/default/form/exclamation.gif) no-repeat 2px 2px; -} -.x-form-invalid-tip .x-tip-bd-inner { - padding:2px; -} -.x-date-picker { - border: 1px solid #1b376c; - border-top:0 none; - background:#fff; -} -.x-date-picker a { - -moz-outline:0 none; - outline:0 none; -} -.x-date-inner, .x-date-inner td, .x-date-inner th{ - border-collapse:separate; -} -.x-date-middle,.x-date-left,.x-date-right { - background: url(../images/default/basic-dialog/hd-sprite.gif) repeat-x 0 -83px; - color:#FFF; - font:bold 11px "sans serif", tahoma, verdana, helvetica; - overflow:hidden; -} - -.x-date-middle .x-btn-left,.x-date-middle .x-btn-center,.x-date-middle .x-btn-right{ - background:transparent !important; - vertical-align:middle; -} -.x-date-middle .x-btn .x-btn-text { - color:#fff; -} -.x-date-middle .x-btn-with-menu .x-btn-center em { - background:transparent url(../images/default/toolbar/btn-arrow-light.gif) no-repeat right 0; -} -.x-date-right, .x-date-left { - width:18px; -} -.x-date-right{ - text-align:right; -} -.x-date-middle { - padding-top:2px;padding-bottom:2px; -} -.x-date-right a, .x-date-left a{ - display:block; - width:16px; - height:16px; - background-position: center; - background-repeat: no-repeat; - cursor:pointer; - -moz-opacity: 0.6; - opacity:.6; - filter: alpha(opacity=60); -} -.x-date-right a:hover, .x-date-left a:hover{ - -moz-opacity: 1; - opacity:1; - filter: alpha(opacity=100); -} -.x-date-right a { - background-image: url(../images/default/shared/right-btn.gif); - margin-right:2px; -} -.x-date-left a{ - background-image: url(../images/default/shared/left-btn.gif); - margin-left:2px; -} -table.x-date-inner { - width:100%; - table-layout:fixed; -} -.x-date-inner th { - width:25px; -} -.x-date-inner th { - background: #c3daf9; - text-align:right !important; - border-bottom: 1px solid #a3bad9; - font:normal 10px arial, helvetica,tahoma,sans-serif; - color:#233d6d; - cursor:default; - padding:0; - border-collapse:separate; -} -.x-date-inner th span { - display:block; - padding:2px; - padding-right:7px; -} -.x-date-inner td { - border: 1px solid #fff; - text-align:right; - padding:0; -} -.x-date-inner a { - padding:2px 5px; - display:block; - font:normal 11px arial, helvetica,tahoma,sans-serif; - text-decoration:none; - color:black; - text-align:right; - zoom:1; -} -.x-date-inner .x-date-active{ - cursor:pointer; - color:black; -} -.x-date-inner .x-date-selected a{ - background: #ddecfe; - border: 1px solid #a3bad9; - padding:1px 4px; -} -.x-date-inner .x-date-today a{ - border: 1px solid darkred; - padding:1px 4px; -} -.x-date-inner .x-date-selected span{ - font-weight:bold; -} -.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a { - color:#aaaaaa; -} -.x-date-bottom { - padding:4px; - border-top: 1px solid #a3bad9; - background: #c3daf9; -} - -.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{ - text-decoration:none; - color:black; - background: #ddecfe; -} - -.x-date-inner .x-date-disabled a { - cursor:default; - background:#eeeeee; - color:#bbbbbb; -} -.x-date-mmenu{ - background:#eeeeee !important; -} -.x-date-mmenu .x-menu-item { - font-size:10px; - padding:1px 24px 1px 4px; - white-space: nowrap; - color:#000; -} -.x-date-mmenu .x-menu-item .x-menu-item-icon { - width:10px;height:10px;margin-right:5px; - background-position:center -4px !important; -} -.x-menu { - border:1px solid; - border-color: #a3bad9 #8BB8F3 #8BB8F3 #a3bad9; - z-index: 15000; - background: #fff url(../images/default/menu/menu.gif) repeat-y; -} -.ext-ie .x-menu { - zoom:1; - overflow:hidden; -} -.x-menu-list{ - border:1px solid #fff; -} -.x-menu li{ - line-height:100%; -} -.x-menu li.x-menu-sep-li{ - font-size:1px; - line-height:1px; -} -.x-menu-list-item{ - font:normal 11px "Segoe UI",tahoma,"Lucida Sans Unicode",arial, sans-serif; - white-space: nowrap; - -moz-user-select: none; - -khtml-user-select: none; - display:block; - padding:1px; -} -.x-menu-item-arrow{ - background:transparent url(../images/default/menu/menu-parent.gif) no-repeat right; -} -.x-menu-sep { - display:block; - font-size:1px; - background:#c3daf9; - margin: 3px 3px 3px 32px; - height:1px; -} -.x-menu-focus { - position:absolute; - left:0; - top:-5px; - width:0; - height:0; - line-height:1px; -} -.x-menu-item { - display:block; - line-height:14px; - padding:3px 21px 3px 3px; - white-space: nowrap; - text-decoration:none; - color:#233d6d; - -moz-outline: 0 none; - outline: 0 none; - cursor:pointer; -} -.x-menu-item-active { - color:#233d6d; - background:#c3daf9; - border:1px solid #8BB8F3; - padding:0; -} -.x-menu-item-icon { - border: 0 none; - height: 16px; - padding: 0; - vertical-align: middle; - width: 16px; - margin: 0 11px 0 0; - background-position:center; -} - -.x-menu-check-item .x-menu-item-icon{ - background: transparent url(../images/default/menu/unchecked.gif) no-repeat center; -} - -.x-menu-item-checked .x-menu-item-icon{ - background-image:url(../images/default/menu/checked.gif); -} -.x-menu-group-item .x-menu-item-icon{ - background: transparent; -} - -.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{ - background: transparent url(../images/default/menu/group-checked.gif) no-repeat center; -} - -.x-menu-plain { - background:#fff; -} -.x-menu-date-item{ - padding:0; -} - -.x-menu .x-color-palette, .x-menu .x-date-picker{ - margin-left:32px; - margin-right:4px; -} -.x-menu .x-date-picker{ - border:1px solid #a3bad9; - margin-top:2px; - margin-bottom:2px; -} -.x-menu-plain .x-color-palette, .x-menu-plain .x-date-picker{ - margin:0; - border:0 none; -} - - - -.x-box-tl { - background: transparent url(../images/default/box/corners.gif) no-repeat 0 0; - zoom:1; -} - -.x-box-tc { - height: 8px; - background: transparent url(../images/default/box/tb.gif) repeat-x 0 0; - overflow: hidden; -} - -.x-box-tr { - background: transparent url(../images/default/box/corners.gif) no-repeat right -8px; -} - -.x-box-ml { - background: transparent url(../images/default/box/l.gif) repeat-y 0; - padding-left: 4px; - overflow: hidden; - zoom:1; -} - -.x-box-mc { - background: #eee url(../images/default/box/tb.gif) repeat-x 0 -16px; - padding: 4px 10px; - font-family: "Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif; - color: #393939; - font-size: 12px; -} - -.x-box-mc h3 { - font-size: 14px; - font-weight: bold; - margin: 0 0 4 0; - zoom:1; -} - -.x-box-mr { - background: transparent url(../images/default/box/r.gif) repeat-y right; - padding-right: 4px; - overflow: hidden; -} - -.x-box-bl { - background: transparent url(../images/default/box/corners.gif) no-repeat 0 -16px; - zoom:1; -} - -.x-box-bc { - background: transparent url(../images/default/box/tb.gif) repeat-x 0 -8px; - height: 8px; - overflow: hidden; -} - -.x-box-br { - background: transparent url(../images/default/box/corners.gif) no-repeat right -24px; -} - -.x-box-tl, .x-box-bl { - padding-left: 8px; - overflow: hidden; -} - -.x-box-tr, .x-box-br { - padding-right: 8px; - overflow: hidden; -} - -.x-box-blue .x-box-bl, .x-box-blue .x-box-br, .x-box-blue .x-box-tl, .x-box-blue .x-box-tr { - background-image: url(../images/default/box/corners-blue.gif); -} - -.x-box-blue .x-box-bc, .x-box-blue .x-box-mc, .x-box-blue .x-box-tc { - background-image: url(../images/default/box/tb-blue.gif); -} - -.x-box-blue .x-box-mc { - background-color: #c3daf9; -} - -.x-box-blue .x-box-mc h3 { - color: #17385b; -} - -.x-box-blue .x-box-ml { - background-image: url(../images/default/box/l-blue.gif); -} - -.x-box-blue .x-box-mr { - background-image: url(../images/default/box/r-blue.gif); -} -#x-debug-browser .x-tree .x-tree-node a span { - color:#222297; - font-size:12px; - padding-top:2px; - font-family:"courier","courier new"; - line-height:18px; -} -#x-debug-browser .x-tree a i { - color:#FF4545; - font-style:normal; -} -#x-debug-browser .x-tree a em { - color:#999; -} -#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{ - background:#c3daf9; -} -#x-debug-browser pre, .x-debug-browser pre xmp { - font:normal 11px tahoma, arial, helvetica, sans-serif !important; - white-space: -moz-pre-wrap; - white-space: -pre-wrap; - white-space: -o-pre-wrap; - word-wrap: break-word; -} -#x-debug-browser pre { - display:block; - padding:5px !important; - border-bottom:1px solid #eeeeee !important; -} -#x-debug-browser pre xmp { - padding:0 !important; - margin:0 !important; -} -#x-debug-console .x-layout-panel-center, #x-debug-inspector .x-layout-panel-center { - border-right:1px solid #98c0f4; -} -#x-debug-console textarea { - border: 0 none; - font-size:12px; - font-family:"courier","courier new"; - padding-top:4px; - padding-left:4px; -} -.x-debug-frame { - background:#eeeeee; - border:1px dashed #aaaaaa; -} -.x-combo-list { - border:1px solid #98c0f4; - background:#ddecfe; - zoom:1; - overflow:hidden; -} -.x-combo-list-inner { - overflow:auto; - background:white; - position:relative; -} -.x-combo-list-hd { - font:bold 11px tahoma, arial, helvetica, sans-serif; - color:#15428b; - background-image: url(../images/default/layout/panel-title-light-bg.gif); - border-bottom:1px solid #98c0f4; - padding:3px; -} -.x-resizable-pinned .x-combo-list-inner { - border-bottom:1px solid #98c0f4; -} -.x-combo-list-item { - font:normal 12px tahoma, arial, helvetica, sans-serif; - padding:2px; - border:1px solid #fff; - zoom:1; - white-space: nowrap; - overflow:hidden; - text-overflow: ellipsis; -} -.x-combo-list .x-combo-selected{ - background-color: #c3daf9 !important; - cursor:pointer; - border:1px solid #336699; -} -.x-combo-noedit{ - cursor:pointer; -} -.x-panel-header { - overflow:hidden; - zoom:1; - color:#15428b; - font:bold 11px tahoma,arial,verdana,sans-serif; - padding:5px 3px 4px 5px; - border:1px solid #99bbe8; - background: transparent url(../images/default/panel/white-top-bottom.gif) repeat-x 0 -1px; -} - -.x-panel-body { - border:1px solid #99bbe8; - border-top:0 none; - overflow:hidden; - background:white; -} -.x-panel-body-noheader { - border-top:1px solid #99bbe8; -} - -.x-panel-header { - overflow:hidden; - zoom:1; -} -.x-panel-tl .x-panel-header { - color:#15428b; - font:bold 11px tahoma,arial,verdana,sans-serif; - padding:5px 0 4px 0; - border:0 none; - background:transparent; -} -.x-panel-icon { - padding-left:18px !important; - background-repeat:no-repeat; - background-position:0 3px; - zoom:1; -} -.x-panel-tc { - background: transparent url(../images/default/panel/white-top-bottom.gif) repeat-x 0 0; - overflow:hidden; -} -.x-panel-tl { - background: transparent url(../images/default/panel/white-corners-sprite.gif) no-repeat 0 0; - padding-left:6px; - zoom:1; - border-bottom:1px solid #99bbe8; -} -.x-panel-tr { - background: transparent url(../images/default/panel/white-corners-sprite.gif) no-repeat right 0; - padding-right:6px; -} -.x-panel-bc { - background: transparent url(../images/default/panel/white-top-bottom.gif) repeat-x 0 bottom; - zoom:1; -} -.x-panel-bc .x-panel-footer { - padding-bottom:6px; - zoom:1; -} -.x-panel-bl { - background: transparent url(../images/default/panel/white-corners-sprite.gif) no-repeat 0 bottom; - padding-left:6px; - zoom:1; -} -.x-panel-br { - background: transparent url(../images/default/panel/white-corners-sprite.gif) no-repeat right bottom; - padding-right:6px; - zoom:1; -} -.x-panel-mc { - border:0 none; - padding:0; - margin:0; - font: normal 11px tahoma,arial,helvetica,sans-serif; - background:white; -} -.x-panel-mc .x-panel-body { - background:transparent; - border:0 none; -} -.x-panel-ml { - background: #fff url(../images/default/panel/white-left-right.gif) repeat-y 0 0; - padding-left:6px; - zoom:1; -} -.x-panel-mr { - background: transparent url(../images/default/panel/white-left-right.gif) repeat-y right 0; - padding-right:6px; - zoom:1; -} -.x-panel-blue .x-panel-tl, .x-panel-blue .x-panel-tr, .x-panel-blue .x-panel-bl, .x-panel-blue .x-panel-br { - background-image:url(../images/default/panel/corners-sprite.gif); -} -.x-panel-blue .x-panel-tc, .x-panel-blue .x-panel-bc { - background-image:url(../images/default/panel/top-bottom.gif); -} -.x-panel-blue .x-panel-ml, .x-panel-blue .x-panel-mr { - background-image:url(../images/default/panel/left-right.gif); -} -.x-panel-blue .x-panel-mc{ - padding-top:6px; - background:#dfe8f6; -} -.x-panel-bwrap { - overflow:hidden; -} -.x-panel-body { - overflow:hidden; -} - -.x-panel-collapsed .x-resizable-handle{ - display:none; -} - -.x-tool { - overflow:hidden; - width:15px; - height:15px; - float:right; - cursor:pointer; - background:transparent url(../images/default/panel/tool-sprites.gif) no-repeat; - margin-left:2px; -} - -.x-tool-toggle { - background-position:0 -60px; -} -.x-tool-toggle-over { - background-position:-15px -60px; -} -.x-panel-collapsed .x-tool-toggle { - background-position:0 -75px; -} -.x-panel-collapsed .x-tool-toggle-over { - background-position:-15px -75px; -} - -.x-tool-close { - background-position:0 -0; -} -.x-tool-close-over { - background-position:-15px 0; -} - -.x-tool-minimize { - background-position:0 -15px; -} -.x-tool-minimize-over { - background-position:-15px -15px; -} - -.x-tool-maximize { - background-position:0 -30px; -} -.x-tool-maximize-over { - background-position:-15px -30px; -} - -.x-tool-restore { - background-position:0 -45px; -} -.x-tool-restore-over { - background-position:-15px -45px; -} - -.x-tool-gear { - background-position:0 -90px; -} -.x-tool-gear-over { - background-position:-15px -90px; -} - -.x-panel-ghost { - background:#cbddf3; - z-index:12000; - overflow:hidden; - position:absolute; - left:0;top:0; - opacity:.65; - -moz-opacity:.65; - filter:alpha(opacity=65); -} - -.x-panel-ghost ul { - margin:0; - padding:0; - overflow:hidden; - font-size:0; - line-height:0; - border:1px solid #84a0c4; - border-top:0 none; - display:block; -} - -.x-panel-ghost * { - cursor:move !important; -} - - - - -.x-panel-btns-ct { - padding:5px; -} - -.x-panel-btns-ct .x-btn{ - float:right; - clear:none; -} -.x-panel-btns-ct .x-panel-btns td { - border:0; - padding:0; -} -.x-panel-btns-ct .x-panel-btns-right table{ - float:right; - clear:none; -} -.x-panel-btns-ct .x-panel-btns-left table{ - float:left; - clear:none; -} -.x-panel-btns-ct .x-panel-btns-center{ - text-align:center; -} -.x-panel-btns-ct .x-panel-btns-center table{ - margin:0 auto; -} -.x-panel-btns-ct table td.x-panel-btn-td{ - padding:3px; -} - -.x-panel-btns-ct .x-btn-focus .x-btn-left{ - background-position:0 -147px; -} -.x-panel-btns-ct .x-btn-focus .x-btn-right{ - background-position:0 -168px; -} -.x-panel-btns-ct .x-btn-focus .x-btn-center{ - background-position:0 -189px; -} - -.x-panel-btns-ct .x-btn-click .x-btn-center{ - background-position:0 -126px; -} -.x-panel-btns-ct .x-btn-click .x-btn-right{ - background-position:0 -84px; -} -.x-panel-btns-ct .x-btn-click .x-btn-left{ - background-position:0 -63px; -} - -.x-window .x-resizable-handle { - opacity:0; - -moz-opacity:0; - filter:alpha(opacity=0); -} - -.x-window-proxy { - background:#C7DFFC; - border:1px solid #99bbe8; - z-index:12000; - overflow:hidden; - position:absolute; - left:0;top:0; - display:none; - opacity:.5; - -moz-opacity:.5; - filter:alpha(opacity=50); -} - -.x-window-header { - overflow:hidden; - zoom:1; -} -.x-window-bwrap { - z-index:1; - position:relative; - zoom:1; -} -.x-window-tl .x-window-header { - color:#15428b; - font:bold 11px tahoma,arial,verdana,sans-serif; - padding:5px 0 4px 0; -} -.x-window-header-text { - cursor:pointer; -} -.x-window-tc { - background: transparent url(../images/default/window/top-bottom.png) repeat-x 0 0; - overflow:hidden; - zoom:1; -} -.x-window-tl { - background: transparent url(../images/default/window/left-corners.png) no-repeat 0 0; - padding-left:6px; - zoom:1; - z-index:1; - position:relative; -} -.x-window-tr { - background: transparent url(../images/default/window/right-corners.png) no-repeat right 0; - padding-right:6px; -} -.x-window-bc { - background: transparent url(../images/default/window/top-bottom.png) repeat-x 0 bottom; - zoom:1; -} -.x-window-bc .x-window-footer { - padding-bottom:6px; - zoom:1; - font-size:0; - line-height:0; -} -.x-window-bl { - background: transparent url(../images/default/window/left-corners.png) no-repeat 0 bottom; - padding-left:6px; - zoom:1; -} -.x-window-br { - background: transparent url(../images/default/window/right-corners.png) no-repeat right bottom; - padding-right:6px; - zoom:1; -} -.x-window-mc { - border:0 none; - padding:0; - margin:0; - font: normal 11px tahoma,arial,helvetica,sans-serif; - background:#dfe8f6; -} -.x-window-ml { - background: transparent url(../images/default/window/left-right.png) repeat-y 0 0; - padding-left:6px; - zoom:1; -} -.x-window-mr { - background: transparent url(../images/default/window/left-right.png) repeat-y right 0; - padding-right:6px; - zoom:1; -} -.x-window-mc { - border:1px solid #99bbe8; -} -.x-window-body { - overflow:hidden; -} -.x-window-bwrap { - overflow:hidden; -} -.x-window-maximized .x-window-bl, .x-window-maximized .x-window-br, - .x-window-maximized .x-window-ml, .x-window-maximized .x-window-mr, - .x-window-maximized .x-window-tl, .x-window-maximized .x-window-tr { - padding:0; -} -.x-window-maximized .x-window-footer { - padding-bottom:0; -} -.x-window-maximized .x-window-tc { - padding-left:3px; - padding-right:3px; -} -.x-window-maximized .x-window-mc { - border-left:0 none; - border-right:0 none; -} -.x-window-tbar .x-toolbar, .x-window-bbar .x-toolbar { - border-left:0 none; - border-right: 0 none; -} -.x-window-bbar .x-toolbar { - border-top:1px solid #99bbe8; - border-bottom:0 none; -} -.x-window-draggable, .x-window-draggable .x-window-header-text { - cursor:move; -} -.x-window-maximized .x-window-draggable, .x-window-maximized .x-window-draggable .x-window-header-text { - cursor:default; -} -.x-window-body { - background:transparent; -} -.x-panel-ghost .x-window-tl { - border-bottom:1px solid #99bbe8; -} -.x-panel-collapsed .x-window-tl { - border-bottom:1px solid #84a0c4; -} -.x-window-maximized-ct { - overflow:hidden; -} -.x-window-maximized .x-resizable-handle { - display:none; -} -.x-window-sizing-ghost ul { - border:0 none !important; -} diff --git a/www/extras/extjs/resources/css/form.css b/www/extras/extjs/resources/css/form.css deleted file mode 100644 index c10f8dcdd..000000000 --- a/www/extras/extjs/resources/css/form.css +++ /dev/null @@ -1,359 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* all fields */ -.x-form-field{ - margin: 0 0 0 0; - font:normal 12px tahoma, arial, helvetica, sans-serif; -} - -/* ---- text fields ---- */ -.x-form-text, textarea.x-form-field{ - padding: 1px 3px; - background:#fff url(../images/default/form/text-bg.gif) repeat-x 0 0; - border: 1px solid #B5B8C8; -} -.x-form-text { - height:22px; - line-height:18px; - vertical-align:middle; -} -.ext-ie .x-form-text { - margin-top:-1px; /* ie bogus margin bug */ - margin-bottom:-1px; - height:22px; /* ie quirks */ - line-height:18px; -} -.ext-strict .x-form-text { - height:18px; -} -.ext-safari .x-form-text { - height:20px; /* safari always same size */ -} -.ext-gecko .x-form-text { - padding-top:2px; /* FF won't center the text vertically */ - padding-bottom:0; -} -/* select boxes */ - -.x-form-select-one { - height:20px; - line-height:18px; - vertical-align:middle; - background-color:#fff; /* opera */ - border: 1px solid #B5B8C8; -} - -/* multi select boxes */ - -/* --- TODO --- */ - -/* checkboxes */ - -/* --- TODO --- */ - -/* radios */ - -/* --- TODO --- */ - - -/* wrapped fields and triggers */ - -.x-form-field-wrap { - position:relative; - zoom:1; - white-space: nowrap; -} - -.x-editor .x-form-check-wrap { - background:#fff; -} -.x-form-field-wrap .x-form-trigger{ - width:17px; - height:21px; - border:0; - background:transparent url(../images/default/form/trigger.gif) no-repeat 0 0; - cursor:pointer; - border-bottom: 1px solid #B5B8C8; - position:absolute; - top:0; -} -.ext-safari .x-form-field-wrap .x-form-trigger{ - height:19px; /* safari doesn't allow height adjustments to the fields, so adjust trigger */ -} -.x-form-field-wrap .x-form-trigger-over{ - background-position:-17px 0; -} -.x-form-field-wrap .x-form-trigger-click{ - background-position:-34px 0; -} -.x-item-disabled .x-form-trigger-over{ - background-position:0 0 !important; -} -.x-item-disabled .x-form-trigger-click{ - background-position:0 0 !important; -} -.x-form-field-wrap .x-form-date-trigger{ - background:transparent url(../images/default/form/date-trigger.gif) no-repeat 0 0; - cursor:pointer; -} -.ext-safari .x-form-field-wrap .x-form-date-trigger{ - right:0; -} - -/* field focus style */ -.x-form-focus{ - border: 1px solid #7eadd9; -} - -/* invalid fields */ -.x-form-invalid, textarea.x-form-invalid{ - background:#fff url(../images/default/grid/invalid_line.gif) repeat-x bottom; - border: 1px solid #dd7870; -} -.ext-safari .x-form-invalid{ - background-color:#ffeeee; - border: 1px solid #ff7870; -} - -/* editors */ - -.x-editor { - visibility:hidden; - padding:0; - margin:0; -} -.x-form-check-wrap { - line-height:18px; -} -.ext-ie .x-form-check-wrap input { - width:15px; - height:15px; -} -.x-editor .x-form-check-wrap { - padding:3px; -} -.x-editor .x-form-checkbox { - height:13px; - border: 0 none; -} -/* If you override the default field font above, you would need to change this font as well */ -.x-form-grow-sizer { - font:normal 12px tahoma, arial, helvetica, sans-serif; - left: -10000px; - padding: 8px 3px; - position: absolute; - visibility:hidden; - top: -10000px; - white-space: pre-wrap; - white-space: -moz-pre-wrap; - white-space: -pre-wrap; - white-space: -o-pre-wrap; - word-wrap: break-word; - zoom:1; -} - -/* This CSS is not final and is subject to change - jvs 03/07/07 */ - -.x-form-item { - font:normal 12px tahoma, arial, helvetica, sans-serif; - display:block; - margin-bottom:4px; -} - -.x-form-item label { - display:block; - float:left; - width:100px; - padding:3px; - padding-left:0; - clear:left; -} - -.x-form-element { - padding-left:105px; - position:relative; -} - -.x-form-invalid-msg { - color:#ee0000; - padding:2px; - padding-left:18px; - font:normal 11px tahoma, arial, helvetica, sans-serif; - background: transparent url(../images/default/shared/warning.gif) no-repeat 0 2px; - line-height:16px; - width:200px; -} - -.x-form-label-right label { - text-align:right; -} - -.x-form-label-top .x-form-item label { - width:auto; - float:none; - clear:none; - display:inline; - margin-bottom:4px; -} -.x-form-label-top .x-form-element { - padding-left:0; - padding-top:4px; -} -.x-form-label-top .x-form-item { - padding-bottom:4px; -} -.x-form fieldset { - border:1px solid #B5B8C8; - padding:10px 10px 5px 10px; - margin-bottom:10px; -} -.x-form fieldset legend { - font:bold 11px tahoma, arial, helvetica, sans-serif; - color:#15428b; -} -.ext-ie .x-form fieldset legend { - margin-bottom:10px; -} -.ext-ie .x-form fieldset { - padding-top: 0; -} -.x-form-empty-field { - color:gray; -} -/* Editor small font for grid, toolbar and tree */ -.x-small-editor .x-form-field { - font:normal 11px arial, tahoma, helvetica, sans-serif; -} -.x-small-editor .x-form-text { - height:20px; - line-height:16px; - vertical-align:middle; -} -.ext-ie .x-small-editor .x-form-text { - margin-top:-1px !important; /* ie bogus margin bug */ - margin-bottom:-1px !important; - height:20px !important; /* ie quirks */ - line-height:16px !important; -} -.ext-strict .x-small-editor .x-form-text { - height:16px !important; -} -.ext-safari .x-small-editor .x-form-field { - /* safari text field will not size so needs bigger font */ - font:normal 12px arial, tahoma, helvetica, sans-serif; -} -.ext-ie .x-small-editor .x-form-text { - height:20px; - line-height:16px; -} -.ext-border-box .x-small-editor .x-form-text { - height:20px; -} - -.x-small-editor .x-form-select-one { - height:20px; - line-height:16px; - vertical-align:middle; -} -.x-small-editor .x-form-num-field { - text-align:right; -} -.x-small-editor .x-form-field-wrap .x-form-trigger{ - height:19px; -} - - -.x-form-clear { - clear:both; - height:0; - overflow:hidden; - line-height:0; - font-size:0; -} -.x-form-clear-left { - clear:left; - height:0; - overflow:hidden; - line-height:0; - font-size:0; -} - -.x-form-cb-label { - width:'auto' !important; - float:none !important; - clear:none !important; - display:inline !important; - margin-left:4px; -} - -.x-form-column { - float:left; - padding:0; - margin:0; - width:48%; - overflow:hidden; - zoom:1; -} - -/* buttons */ -.x-form .x-form-btns-ct .x-btn{ - float:right; - clear:none; -} -.x-form .x-form-btns-ct .x-form-btns td { - border:0; - padding:0; -} -.x-form .x-form-btns-ct .x-form-btns-right table{ - float:right; - clear:none; -} -.x-form .x-form-btns-ct .x-form-btns-left table{ - float:left; - clear:none; -} -.x-form .x-form-btns-ct .x-form-btns-center{ - text-align:center; /*ie*/ -} -.x-form .x-form-btns-ct .x-form-btns-center table{ - margin:0 auto; /*everyone else*/ -} -.x-form .x-form-btns-ct table td.x-form-btn-td{ - padding:3px; -} - -.x-form .x-form-btns-ct .x-btn-focus .x-btn-left{ - background-position:0 -147px; -} -.x-form .x-form-btns-ct .x-btn-focus .x-btn-right{ - background-position:0 -168px; -} -.x-form .x-form-btns-ct .x-btn-focus .x-btn-center{ - background-position:0 -189px; -} - -.x-form .x-form-btns-ct .x-btn-click .x-btn-center{ - background-position:0 -126px; -} -.x-form .x-form-btns-ct .x-btn-click .x-btn-right{ - background-position:0 -84px; -} -.x-form .x-form-btns-ct .x-btn-click .x-btn-left{ - background-position:0 -63px; -} -.x-form-invalid-icon { - width:16px; - height:18px; - visibility:hidden; - position:absolute; - left:0; - top:0; - display:block; - background:transparent url(../images/default/form/exclamation.gif) no-repeat 0 2px; -} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/grid.css b/www/extras/extjs/resources/css/grid.css deleted file mode 100644 index 2f730a24e..000000000 --- a/www/extras/extjs/resources/css/grid.css +++ /dev/null @@ -1,295 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* Grid2 styles */ -.x-grid { - position:relative; - overflow:hidden; - background-color:#fff; -} -.x-grid-scroller { - overflow:auto; -} -.x-grid-viewport, .x-grid-locked{ - position:absolute; - left:0; top: 0; - z-index:2; - overflow:hidden; - visibility:hidden; -} -.x-grid-cell-inner, .x-grid-hd-inner{ - overflow:hidden; - -o-text-overflow: ellipsis; - text-overflow: ellipsis; -} -.x-grid-hd-row td, .x-grid-row td{ - font:normal 11px arial, tahoma, helvetica, sans-serif; - line-height:13px; - white-space: nowrap; - vertical-align: top; - -moz-outline: none; - -moz-user-focus: normal; -} -.x-grid-hd-row td { - line-height:14px; -} -.x-grid-col { - border-right: 1px solid #ebebeb; - border-bottom: 1px solid #ebebeb; -} -/* Locked styles */ - -.x-grid-locked .x-grid-body td { - background-color: #FBFDFF; - border-right: 1px solid #deecfd; - border-bottom: 1px solid #deecfd !important; -} -.x-grid-locked .x-grid-body td .x-grid-cell-inner { - border-top:0 none; -} -.x-grid-locked .x-grid-row-alt td{ - background-color: #F5FAFE; -} - -.x-grid-locked .x-grid-header table{ - border-right:1px solid transparent; -} -.x-grid-locked .x-grid-body table{ - border-right:1px solid #c3daf9; -} - -.x-grid-locked .x-grid-body td .x-grid-cell-inner { - -} -.x-grid-row { - cursor: default; -} -.x-grid-row-alt{ - background-color:#f1f1f1; -} -.x-grid-row-over td{ - background-color:#d9e8fb; -} -.x-grid-resize-proxy { - width:3px; - background-color:#cccccc; - cursor: e-resize; - cursor: col-resize; - position:absolute; - top:0; - height:100px; - overflow:hidden; - visibility:hidden; - border:0 none; - z-index:7; -} -.x-grid-focus { - position:absolute; - top:0; - -moz-outline:0 none; - outline:0 none; - -moz-user-select: normal; - -khtml-user-select: normal; -} - -/* header styles */ -.x-grid-header{ - background: #ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x; - overflow:hidden; - position:relative; - cursor:default; - width:100%; -} -.x-grid-hd-row{ - height:22px; -} -.x-grid-hd { - padding-right:1px; -} -.x-grid-hd-over .x-grid-hd-inner { - border-bottom: 1px solid #c3daf9; -} -.x-grid-hd-over .x-grid-hd-text { - background: #fafafa url(../images/default/grid/grid-hrow.gif) repeat-x 0 1px; - padding-bottom:1px; - border-bottom: 1px solid #b3cae9; -} -.x-grid-sort-icon{ - background-repeat: no-repeat; - display: none; - height: 4px; - width: 13px; - margin-left:3px; - vertical-align: middle; -} -.x-grid-header .sort-asc .x-grid-sort-icon { - background-image: url(../images/default/grid/sort_asc.gif); - display: inline; -} -.x-grid-header .sort-desc .x-grid-sort-icon { - background-image: url(../images/default/grid/sort_desc.gif); - display: inline; -} - -/* Body Styles */ -.x-grid-body { - overflow:hidden; - position:relative; - width:100%; - zoom:1; -} - -.x-grid-cell-text,.x-grid-hd-text { - display: block; - padding: 3px 5px 3px 5px; - -moz-user-select: none; - -khtml-user-select: none; - color:black; -} -.x-grid-hd-text { - padding-top:4px; -} -.x-grid-split { - background-image: url(../images/default/grid/grid-split.gif); - background-position: center; - background-repeat: no-repeat; - cursor: e-resize; - cursor: col-resize; - display: block; - font-size: 1px; - height: 16px; - overflow: hidden; - position: absolute; - top: 2px; - width: 6px; - z-index: 3; -} - -.x-grid-hd-text { - color:#15428b; -} -/* Column Reorder DD */ -.x-dd-drag-proxy .x-grid-hd-inner{ - background: #ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x; - height:22px; - width:120px; -} - -.col-move-top, .col-move-bottom{ - width:9px; - height:9px; - position:absolute; - top:0; - line-height:1px; - font-size:1px; - overflow:hidden; - visibility:hidden; - z-index:20000; -} -.col-move-top{ - background:transparent url(../images/default/grid/col-move-top.gif) no-repeat left top; -} -.col-move-bottom{ - background:transparent url(../images/default/grid/col-move-bottom.gif) no-repeat left top; -} - -/* Selection Styles */ -.x-grid-row-selected td, .x-grid-locked .x-grid-row-selected td{ - background-color: #316ac5 !important; - color: white; -} -.x-grid-row-selected span, .x-grid-row-selected b, .x-grid-row-selected div, .x-grid-row-selected strong, .x-grid-row-selected i{ - color: white !important; -} -.x-grid-row-selected .x-grid-cell-text{ - color: white; -} -.x-grid-cell-selected{ - background-color: #316ac5 !important; - color: white; -} -.x-grid-cell-selected span{ - color: white !important; -} -.x-grid-cell-selected .x-grid-cell-text{ - color: white; -} - -.x-grid-locked td.x-grid-row-marker, .x-grid-locked .x-grid-row-selected td.x-grid-row-marker{ - background: #ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x 0 bottom !important; - vertical-align:middle !important; - color:black; - padding:0; - border-top:1px solid white; - border-bottom:none !important; - border-right:1px solid #6fa0df !important; - text-align:center; -} -.x-grid-locked td.x-grid-row-marker div, .x-grid-locked .x-grid-row-selected td.x-grid-row-marker div{ - padding:0 4px; - color:#15428b !important; - text-align:center; -} - -/* dirty cells */ -.x-grid-dirty-cell { - background: transparent url(../images/default/grid/dirty.gif) no-repeat 0 0; -} - -/* Grid Toolbars */ -.x-grid-topbar, .x-grid-bottombar{ - font:normal 11px arial, tahoma, helvetica, sans-serif; - overflow:hidden; - display:none; - zoom:1; - position:relative; -} -.x-grid-topbar .x-toolbar{ - border-right:0 none; -} -.x-grid-bottombar .x-toolbar{ - border-right:0 none; - border-bottom:0 none; - border-top:1px solid #a9bfd3; -} -/* Props Grid Styles */ -.x-props-grid .x-grid-cell-selected .x-grid-cell-text{ - background-color: #316ac5 !important; -} -.x-props-grid .x-grid-col-value .x-grid-cell-text{ - background-color: white; -} -.x-props-grid .x-grid-col-name{ - background-color: #c3daf9; -} -.x-props-grid .x-grid-col-name .x-grid-cell-text{ - background-color: white; - margin-left:10px; -} -.x-props-grid .x-grid-split-value { - visibility:hidden; -} - -/* header menu */ -.xg-hmenu-sort-asc .x-menu-item-icon{ - background-image: url(../images/default/grid/hmenu-asc.gif); -} -.xg-hmenu-sort-desc .x-menu-item-icon{ - background-image: url(../images/default/grid/hmenu-desc.gif); -} -.xg-hmenu-lock .x-menu-item-icon{ - background-image: url(../images/default/grid/hmenu-lock.gif); -} -.xg-hmenu-unlock .x-menu-item-icon{ - background-image: url(../images/default/grid/hmenu-unlock.gif); -} - -/* dd */ -.x-dd-drag-ghost .x-grid-dd-wrap { - padding:1px 3px 3px 1px; -} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/layout.css b/www/extras/extjs/resources/css/layout.css deleted file mode 100644 index 188e8fa17..000000000 --- a/www/extras/extjs/resources/css/layout.css +++ /dev/null @@ -1,252 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.x-layout-container{ - width:100%; - height:100%; - overflow:hidden; - background-color:#c3daf9; -} -.x-layout-container .x-layout-tabs-body{ - border:0 none; -} -.x-layout-collapsed{ - position:absolute; - left:-10000px; - top:-10000px; - visibility:hidden; - background-color:#c3daf9; - width:20px; - height:20px; - overflow:hidden; - border:1px solid #98c0f4; - z-index:20; -} -.ext-border-box .x-layout-collapsed{ - width:22px; - height:22px; -} -.x-layout-collapsed-over{ - cursor:pointer; - background-color:#d9e8fb; -} -.x-layout-collapsed-west .x-layout-collapsed-tools, .x-layout-collapsed-east .x-layout-collapsed-tools{ - position:absolute; - top:0; - left:0; - width:20px; - height:20px; -} -.x-layout-collapsed-north .x-layout-collapsed-tools, .x-layout-collapsed-south .x-layout-collapsed-tools{ - position:absolute; - top:0; - right:0; - width:20px; - height:20px; -} -.x-layout-collapsed .x-layout-tools-button{ - margin:0; -} -.x-layout-collapsed .x-layout-tools-button-inner{ - width:16px; - height:16px; -} -.x-layout-inactive-content{ - position:absolute; - left:-10000px; - top:-10000px; - visibility:hidden; -} -.x-layout-active-content{ - visibility:visible; -} -.x-layout-panel{ - position:absolute;border:1px solid #98c0f4;overflow:hidden;background-color:white; -} -.x-layout-panel-east, .x-layout-panel-west { - z-index:10; -} -.x-layout-panel-north, .x-layout-panel-south { - z-index:11; -} -.x-layout-collapsed-north, .x-layout-collapsed-south, .x-layout-collapsed-east, .x-layout-collapsed-west { - z-index:12; -} -.x-layout-panel-body{ - overflow:hidden; -} -.x-layout-grid-wrapper{ - -} -.x-layout-split{ - position:absolute; - height:5px; - width:5px; - line-height:1px; - font-size:1px; - z-index:3; - background-color:#c3daf9; -} -.x-layout-panel-hd{ - background-image: url(../images/default/layout/panel-title-light-bg.gif); - color: black; - border-bottom:1px solid #98c0f4; - position:relative; -} -.x-layout-panel-hd-text{ - font:normal 11px tahoma, verdana, helvetica; - padding: 4px; - padding-left: 4px; - display:block; - white-space:nowrap; -} -.x-layout-panel-hd-tools{ - position:absolute; - right:0; - top:0; - text-align:right; - padding-top:2px; - padding-right:2px; - width:60px; -} -.x-layout-tools-button{ - z-index:6; - padding:2px; - cursor:pointer; - float:right; -} -.x-layout-tools-button-over{ - padding:1px; - border:1px solid #98c0f4; - background-color:white; -} -.x-layout-tools-button-inner{ - height:12px; - width:12px; - line-height:1px; - font-size:1px; - background-repeat:no-repeat; - background-position:center; -} -.x-layout-close{ - background-image:url(../images/default/layout/panel-close.gif); -} -.x-layout-stick{ - background-image:url(../images/default/layout/stick.gif); -} -.x-layout-collapse-west,.x-layout-expand-east{ - background-image:url(../images/default/layout/collapse.gif); -} -.x-layout-expand-west,.x-layout-collapse-east{ - background-image:url(../images/default/layout/expand.gif); -} -.x-layout-collapse-north,.x-layout-expand-south{ - background-image:url(../images/default/layout/ns-collapse.gif); -} -.x-layout-expand-north,.x-layout-collapse-south{ - background-image:url(../images/default/layout/ns-expand.gif); -} -.x-layout-split-h{ - background-image:url(../images/default/sizer/e-handle.gif); - background-position: left; -} -.x-layout-split-v{ - background-image:url(../images/default/sizer/s-handle.gif); - background-position: top; -} -.x-layout-panel .x-tabs-wrap{ - background:url(../images/default/layout/gradient-bg.gif); -} -.x-layout-panel .x-tabs-body { - background-color:white; - overflow:auto;height:100%; -} -.x-layout-component-panel, .x-layout-nested-layout { - position:relative; - padding:0; - overflow:hidden; - width:200px; - height:200px; -} -.x-layout-nested-layout .x-layout-panel { - border:0 none; -} -.x-layout-nested-layout .x-layout-panel-north { - border-bottom:1px solid #98c0f4; -} -.x-layout-nested-layout .x-layout-panel-south { - border-top:1px solid #98c0f4; -} -.x-layout-nested-layout .x-layout-panel-east { - border-left:1px solid #98c0f4; -} -.x-layout-nested-layout .x-layout-panel-west { - border-right:1px solid #98c0f4; -} - -.x-layout-panel-dragover { - border: 2px solid #6593cf; -} -.x-layout-panel-proxy { - background-image: url(../images/default/layout/gradient-bg.gif); - background-color:#c3daf9; - border:1px dashed #6593cf; - z-index:10001; - overflow:hidden; - position:absolute; - left:0;top:0; -} -.x-layout-slider { - z-index:15; - overflow:hidden; - position:absolute; -} - -.x-scroller-up, .x-scroller-down { - background-color:#c3daf9; - border: 1px solid #6593cf; - border-top-color: #fff; - border-left-color: #fff; - border-right:0 none; - cursor:pointer; - overflow:hidden; - line-height:16px; -} -.x-scroller-down { - border-bottom: 0 none; - border-top: 1px solid #6593cf; -} -.x-scroller-btn-over { - background-color: #d9e8f8; -} -.x-scroller-btn-click { - background-color: #AECEF7; -} -.x-scroller-btn-disabled { - cursor:default; - background-color: #c3daf9; - -moz-opacity: 0.3; - opacity:.30; - filter: alpha(opacity=30); -} - -/* Reader Layout */ - -.x-reader .x-layout-panel-north { - border:0 none; -} -.x-reader .x-layout-panel-center{ - border:0 none; -} -.x-reader .x-layout-nested-layout .x-layout-panel-center{ - border:1px solid #99bbe8; - border-top:0 none; -} -.x-reader .x-layout-nested-layout .x-layout-panel-south{ - border:1px solid #99bbe8; -} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/menu.css b/www/extras/extjs/resources/css/menu.css deleted file mode 100644 index 71adf7382..000000000 --- a/www/extras/extjs/resources/css/menu.css +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.x-menu { - border:1px solid; - border-color: #a3bad9 #8BB8F3 #8BB8F3 #a3bad9; - z-index: 15000; - background: #fff url(../images/default/menu/menu.gif) repeat-y; -} -.ext-ie .x-menu { - zoom:1; - overflow:hidden; -} -.x-menu-list{ - border:1px solid #fff; -} -.x-menu li{ - line-height:100%; -} -.x-menu li.x-menu-sep-li{ - font-size:1px; - line-height:1px; -} -.x-menu-list-item{ - font:normal 11px "Segoe UI",tahoma,"Lucida Sans Unicode",arial, sans-serif; - white-space: nowrap; - -moz-user-select: none; - -khtml-user-select: none; - display:block; - padding:1px; -} -.x-menu-item-arrow{ - background:transparent url(../images/default/menu/menu-parent.gif) no-repeat right; -} -.x-menu-sep { - display:block; - font-size:1px; - background:#c3daf9; - margin: 3px 3px 3px 32px; - height:1px; -} -.x-menu-focus { - position:absolute; - left:0; - top:-5px; - width:0; - height:0; - line-height:1px; -} -.x-menu-item { - display:block; - line-height:14px; - padding:3px 21px 3px 3px; - white-space: nowrap; - text-decoration:none; - color:#233d6d; - -moz-outline: 0 none; - outline: 0 none; - cursor:pointer; -} -.x-menu-item-active { - color:#233d6d; - background:#c3daf9; - border:1px solid #8BB8F3; - padding:0; -} -.x-menu-item-icon { - border: 0 none; - height: 16px; - padding: 0; - vertical-align: middle; - width: 16px; - margin: 0 11px 0 0; - background-position:center; -} - -.x-menu-check-item .x-menu-item-icon{ - background: transparent url(../images/default/menu/unchecked.gif) no-repeat center; -} - -.x-menu-item-checked .x-menu-item-icon{ - background-image:url(../images/default/menu/checked.gif); -} -.x-menu-group-item .x-menu-item-icon{ - background: transparent; -} - -.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{ - background: transparent url(../images/default/menu/group-checked.gif) no-repeat center; -} - -.x-menu-plain { - background:#fff; -} -.x-menu-date-item{ - padding:0; -} - -.x-menu .x-color-palette, .x-menu .x-date-picker{ - margin-left:32px; - margin-right:4px; -} -.x-menu .x-date-picker{ - border:1px solid #a3bad9; - margin-top:2px; - margin-bottom:2px; -} -.x-menu-plain .x-color-palette, .x-menu-plain .x-date-picker{ - margin:0; - border:0 none; -} diff --git a/www/extras/extjs/resources/css/panel.css b/www/extras/extjs/resources/css/panel.css deleted file mode 100644 index 778ce82d4..000000000 --- a/www/extras/extjs/resources/css/panel.css +++ /dev/null @@ -1,258 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.x-panel-header { - overflow:hidden; - zoom:1; - color:#15428b; - font:bold 11px tahoma,arial,verdana,sans-serif; - padding:5px 3px 4px 5px; - border:1px solid #99bbe8; - background: transparent url(../images/default/panel/white-top-bottom.gif) repeat-x 0 -1px; -} - -.x-panel-body { - border:1px solid #99bbe8; - border-top:0 none; - overflow:hidden; - background:white; -} -.x-panel-body-noheader { - border-top:1px solid #99bbe8; -} - -.x-panel-header { - overflow:hidden; - zoom:1; -} -.x-panel-tl .x-panel-header { - color:#15428b; - font:bold 11px tahoma,arial,verdana,sans-serif; - padding:5px 0 4px 0; - border:0 none; - background:transparent; -} -.x-panel-icon { - padding-left:18px !important; - background-repeat:no-repeat; - background-position:0 3px; - zoom:1; -} -.x-panel-tc { - background: transparent url(../images/default/panel/white-top-bottom.gif) repeat-x 0 0; - overflow:hidden; -} -.x-panel-tl { - background: transparent url(../images/default/panel/white-corners-sprite.gif) no-repeat 0 0; - padding-left:6px; - zoom:1; - border-bottom:1px solid #99bbe8; -} -.x-panel-tr { - background: transparent url(../images/default/panel/white-corners-sprite.gif) no-repeat right 0; - padding-right:6px; -} -.x-panel-bc { - background: transparent url(../images/default/panel/white-top-bottom.gif) repeat-x 0 bottom; - zoom:1; -} -.x-panel-bc .x-panel-footer { - padding-bottom:6px; - zoom:1; -} -.x-panel-bl { - background: transparent url(../images/default/panel/white-corners-sprite.gif) no-repeat 0 bottom; - padding-left:6px; - zoom:1; -} -.x-panel-br { - background: transparent url(../images/default/panel/white-corners-sprite.gif) no-repeat right bottom; - padding-right:6px; - zoom:1; -} -.x-panel-mc { - border:0 none; - padding:0; - margin:0; - font: normal 11px tahoma,arial,helvetica,sans-serif; - background:white; -} -.x-panel-mc .x-panel-body { - background:transparent; - border:0 none; -} -.x-panel-ml { - background: #fff url(../images/default/panel/white-left-right.gif) repeat-y 0 0; - padding-left:6px; - zoom:1; -} -.x-panel-mr { - background: transparent url(../images/default/panel/white-left-right.gif) repeat-y right 0; - padding-right:6px; - zoom:1; -} -.x-panel-blue .x-panel-tl, .x-panel-blue .x-panel-tr, .x-panel-blue .x-panel-bl, .x-panel-blue .x-panel-br { - background-image:url(../images/default/panel/corners-sprite.gif); -} -.x-panel-blue .x-panel-tc, .x-panel-blue .x-panel-bc { - background-image:url(../images/default/panel/top-bottom.gif); -} -.x-panel-blue .x-panel-ml, .x-panel-blue .x-panel-mr { - background-image:url(../images/default/panel/left-right.gif); -} -.x-panel-blue .x-panel-mc{ - padding-top:6px; - background:#dfe8f6; -} -.x-panel-bwrap { - overflow:hidden; -} -.x-panel-body { - overflow:hidden; -} - -.x-panel-collapsed .x-resizable-handle{ - display:none; -} - -.x-tool { - overflow:hidden; - width:15px; - height:15px; - float:right; - cursor:pointer; - background:transparent url(../images/default/panel/tool-sprites.gif) no-repeat; - margin-left:2px; -} - -.x-tool-toggle { - background-position:0 -60px; -} -.x-tool-toggle-over { - background-position:-15px -60px; -} -.x-panel-collapsed .x-tool-toggle { - background-position:0 -75px; -} -.x-panel-collapsed .x-tool-toggle-over { - background-position:-15px -75px; -} - -.x-tool-close { - background-position:0 -0; -} -.x-tool-close-over { - background-position:-15px 0; -} - -.x-tool-minimize { - background-position:0 -15px; -} -.x-tool-minimize-over { - background-position:-15px -15px; -} - -.x-tool-maximize { - background-position:0 -30px; -} -.x-tool-maximize-over { - background-position:-15px -30px; -} - -.x-tool-restore { - background-position:0 -45px; -} -.x-tool-restore-over { - background-position:-15px -45px; -} - -.x-tool-gear { - background-position:0 -90px; -} -.x-tool-gear-over { - background-position:-15px -90px; -} - -.x-panel-ghost { - background:#cbddf3; - z-index:12000; - overflow:hidden; - position:absolute; - left:0;top:0; - opacity:.65; - -moz-opacity:.65; - filter:alpha(opacity=65); -} - -.x-panel-ghost ul { - margin:0; - padding:0; - overflow:hidden; - font-size:0; - line-height:0; - border:1px solid #84a0c4; - border-top:0 none; - display:block; -} - -.x-panel-ghost * { - cursor:move !important; -} - - -/* Buttons */ - -.x-panel-btns-ct { - padding:5px; -} - -.x-panel-btns-ct .x-btn{ - float:right; - clear:none; -} -.x-panel-btns-ct .x-panel-btns td { - border:0; - padding:0; -} -.x-panel-btns-ct .x-panel-btns-right table{ - float:right; - clear:none; -} -.x-panel-btns-ct .x-panel-btns-left table{ - float:left; - clear:none; -} -.x-panel-btns-ct .x-panel-btns-center{ - text-align:center; /*ie*/ -} -.x-panel-btns-ct .x-panel-btns-center table{ - margin:0 auto; /*everyone else*/ -} -.x-panel-btns-ct table td.x-panel-btn-td{ - padding:3px; -} - -.x-panel-btns-ct .x-btn-focus .x-btn-left{ - background-position:0 -147px; -} -.x-panel-btns-ct .x-btn-focus .x-btn-right{ - background-position:0 -168px; -} -.x-panel-btns-ct .x-btn-focus .x-btn-center{ - background-position:0 -189px; -} - -.x-panel-btns-ct .x-btn-click .x-btn-center{ - background-position:0 -126px; -} -.x-panel-btns-ct .x-btn-click .x-btn-right{ - background-position:0 -84px; -} -.x-panel-btns-ct .x-btn-click .x-btn-left{ - background-position:0 -63px; -} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/qtips.css b/www/extras/extjs/resources/css/qtips.css deleted file mode 100644 index 93b975d0b..000000000 --- a/www/extras/extjs/resources/css/qtips.css +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.x-tip{ - position: absolute; - top: 0; - left:0; - visibility: hidden; - z-index: 20000; - border:0 none; -} -.x-tip .x-tip-close{ - background-image: url(../images/default/qtip/close.gif); - height: 15px; - float:right; - width: 15px; - margin:0 0 2px 2px; - cursor:pointer; - display:none; -} -.x-tip .x-tip-top { - background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -12px; - height:6px; - overflow:hidden; -} -.x-tip .x-tip-top-left { - background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 0; - padding-left:6px; - zoom:1; -} -.x-tip .x-tip-top-right { - background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right 0; - padding-right:6px; - zoom:1; -} -.x-tip .x-tip-ft { - background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -18px; - height:6px; - overflow:hidden; -} -.x-tip .x-tip-ft-left { - background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -6px; - padding-left:6px; - zoom:1; -} -.x-tip .x-tip-ft-right { - background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right -6px; - padding-right:6px; - zoom:1; -} -.x-tip .x-tip-bd { - border:0 none; - font: normal 11px tahoma,arial,helvetica,sans-serif; -} -.x-tip .x-tip-bd-left { - background: #fff url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -24px; - padding-left:6px; - zoom:1; -} -.x-tip .x-tip-bd-right { - background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right -24px; - padding-right:6px; - zoom:1; -} - -.x-tip h3 { - font: bold 12px tahoma,arial,helvetica,sans-serif; - margin:0; - padding:2px 2px; - color:#222; -} -.x-tip .x-tip-bd-inner { - margin:0 !important; - line-height:14px; - color:#222; - padding:0; - float:left; -} - - -.x-form-invalid-tip { -} - -.x-form-invalid-tip .x-tip-top { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-top-left { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-top-right { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-ft { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-ft-left { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-ft-right { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-bd-left { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-bd-right { - background-image: url(../images/default/form/error-tip-corners.gif); -} -.x-form-invalid-tip .x-tip-bd .x-tip-bd-inner { - padding-left:24px; - background:transparent url(../images/default/form/exclamation.gif) no-repeat 2px 2px; -} -.x-form-invalid-tip .x-tip-bd-inner { - padding:2px; -} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/reset-min.css b/www/extras/extjs/resources/css/reset-min.css deleted file mode 100644 index c0c3e7995..000000000 --- a/www/extras/extjs/resources/css/reset-min.css +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}img,body,html{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/resizable.css b/www/extras/extjs/resources/css/resizable.css deleted file mode 100644 index 0a560b115..000000000 --- a/www/extras/extjs/resources/css/resizable.css +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.x-resizable-handle { - position:absolute; - z-index:100; - /* ie needs these */ - font-size:1px; - line-height:6px; - overflow:hidden; - background:white; - filter:alpha(opacity=0); - opacity:0; - zoom:1; -} -.x-resizable-handle-east{ - width:6px; - cursor:e-resize; - right:0; - top:0; - height:100%; -} -.ext-ie .x-resizable-handle-east { - margin-right:-1px; /*IE rounding error*/ -} -.x-resizable-handle-south{ - width:100%; - cursor:s-resize; - left:0; - bottom:0; - height:6px; -} -.ext-ie .x-resizable-handle-south { - margin-bottom:-1px; /*IE rounding error*/ -} -.x-resizable-handle-west{ - width:6px; - cursor:w-resize; - left:0; - top:0; - height:100%; -} -.x-resizable-handle-north{ - width:100%; - cursor:n-resize; - left:0; - top:0; - height:6px; -} -.x-resizable-handle-southeast{ - width:6px; - cursor:se-resize; - right:0; - bottom:0; - height:6px; - z-index:101; -} -.x-resizable-handle-northwest{ - width:6px; - cursor:nw-resize; - left:0; - top:0; - height:6px; - z-index:101; -} -.x-resizable-handle-northeast{ - width:6px; - cursor:ne-resize; - right:0; - top:0; - height:6px; - z-index:101; -} -.x-resizable-handle-southwest{ - width:6px; - cursor:sw-resize; - left:0; - bottom:0; - height:6px; - z-index:101; -} -.x-resizable-over .x-resizable-handle, .x-resizable-pinned .x-resizable-handle{ - filter:alpha(opacity=100); - opacity:1; -} -.x-resizable-over .x-resizable-handle-east, .x-resizable-pinned .x-resizable-handle-east{ - background:url(../images/default/sizer/e-handle.gif); - background-position: left; -} -.x-resizable-over .x-resizable-handle-west, .x-resizable-pinned .x-resizable-handle-west{ - background:url(../images/default/sizer/e-handle.gif); - background-position: left; -} -.x-resizable-over .x-resizable-handle-south, .x-resizable-pinned .x-resizable-handle-south{ - background:url(../images/default/sizer/s-handle.gif); - background-position: top; -} -.x-resizable-over .x-resizable-handle-north, .x-resizable-pinned .x-resizable-handle-north{ - background:url(../images/default/sizer/s-handle.gif); - background-position: top; -} -.x-resizable-over .x-resizable-handle-southeast, .x-resizable-pinned .x-resizable-handle-southeast{ - background:url(../images/default/sizer/se-handle.gif); - background-position: top left; -} -.x-resizable-over .x-resizable-handle-northwest, .x-resizable-pinned .x-resizable-handle-northwest{ - background:url(../images/default/sizer/nw-handle.gif); - background-position:bottom right; -} -.x-resizable-over .x-resizable-handle-northeast, .x-resizable-pinned .x-resizable-handle-northeast{ - background:url(../images/default/sizer/ne-handle.gif); - background-position: bottom left; -} -.x-resizable-over .x-resizable-handle-southwest, .x-resizable-pinned .x-resizable-handle-southwest{ - background:url(../images/default/sizer/sw-handle.gif); - background-position: top right; -} -.x-resizable-proxy{ - border: 1px dashed #6593cf; - position:absolute; - overflow:hidden; - display:none; - left:0;top:0; - z-index:50000; -} -.x-resizable-overlay{ - width:100%; - height:100%; - display:none; - position:absolute; - left:0; - top:0; - background:white; - z-index:200000; - -moz-opacity: 0; - opacity:0; - filter: alpha(opacity=0); -} diff --git a/www/extras/extjs/resources/css/tabs.css b/www/extras/extjs/resources/css/tabs.css deleted file mode 100644 index 480b03520..000000000 --- a/www/extras/extjs/resources/css/tabs.css +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.x-tabs-wrap { - border-bottom:1px solid #6593cf; - padding-top:2px; -} -.x-tabs-strip-wrap{ - width:100%; -} -.x-tabs-wrap table{ - position:relative; - top:0; left:0; -} -.x-tabs-strip td{ - padding:0; - padding-left:2px; -} -.x-tabs-strip a, .x-tabs-strip span, .x-tabs-strip em { - display:block; -} -.x-tabs-strip a { - text-decoration:none !important; - -moz-outline: none; - outline: none; - cursor:pointer; -} -.x-tabs-strip .x-tabs-text { - font:bold 11px tahoma,arial,helvetica; - color:#666; - overflow:hidden; - white-space: nowrap; - cursor:pointer; - text-overflow: ellipsis; -} -.x-tabs-strip .on .x-tabs-text { - cursor:default; - color:#083772; -} -.x-tabs-strip .disabled .x-tabs-text { - cursor:default; - color:#aaaaaa; -} -.x-tabs-strip .x-tabs-inner { - padding:4px 10px; -} - -.x-tabs-strip .on .x-tabs-right { - background: url(../images/default/tabs/tab-sprite.gif) no-repeat right 0; -} -.x-tabs-strip .on .x-tabs-left { - background: url(../images/default/tabs/tab-sprite.gif) no-repeat 0 -100px; -} -.x-tabs-strip .x-tabs-right { - background: url(../images/default/tabs/tab-sprite.gif) no-repeat right -50px; -} -.x-tabs-strip .x-tabs-left { - background: url(../images/default/tabs/tab-sprite.gif) no-repeat 0 -150px; -} - -.x-tabs-strip a { - position:relative; - top:1px; left:0; -} -.x-tabs-strip .on a { - position:relative; -} -.x-tabs-strip .on .x-tabs-inner { - padding-bottom:5px; -} -/** closable tabs */ -.x-tabs-strip .x-tabs-closable .x-tabs-inner{ - padding-right:22px; - position:relative; -} -.x-tabs-strip .x-tabs-closable .close-icon{ - line-height: 1px; - font-size:1px; - background-image:url(../images/default/layout/tab-close.gif); - display:block; - position:absolute; - right:5px;top:4px; - width:11px;height:11px; - cursor:pointer; -} -.x-tabs-strip .on .close-icon{ - background-image:url(../images/default/layout/tab-close-on.gif); -} -.x-tabs-strip .x-tabs-closable .close-over{ - background-image:url(../images/default/layout/tab-close-on.gif); -} -.x-tabs-body { - border:1px solid #6593cf; - border-top:0 none; -} -.x-tabs-bottom .x-tabs-wrap { - border-top:1px solid #6593cf; - border-bottom:0 none; - padding-top:0; - padding-bottom:2px; -} -.x-tabs-bottom .x-tabs-strip .x-tabs-right { - background: url(../images/default/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom left; -} -.x-tabs-bottom .x-tabs-strip .x-tabs-left { - background: url(../images/default/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom right; -} -.x-tabs-bottom .x-tabs-strip .on .x-tabs-right { - background: url(../images/default/tabs/tab-btm-right-bg.gif) no-repeat bottom left; -} -.x-tabs-bottom .x-tabs-strip .on .x-tabs-left { - background: url(../images/default/tabs/tab-btm-left-bg.gif) no-repeat bottom right; -} -.x-tabs-bottom .x-tabs-strip a { - position:relative; - top:0; left:0; -} -.x-tabs-bottom .x-tabs-strip .on a { - margin-top:-1px; -} -.x-tabs-bottom .x-tabs-strip .on .x-tabs-inner { - padding-top:5px; -} - -.x-tabs-bottom .x-tabs-body { - border:1px solid #6593cf; - border-bottom:0 none; -} - diff --git a/www/extras/extjs/resources/css/toolbar.css b/www/extras/extjs/resources/css/toolbar.css deleted file mode 100644 index 88ff9d122..000000000 --- a/www/extras/extjs/resources/css/toolbar.css +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.x-toolbar{ - border: 1px solid; - border-color:#eaf0f7 #eaf0f7 #a9bfd3 #eaf0f7; - display: block; - padding:2px; - background:#d0def0 url(../images/default/layout/panel-title-light-bg.gif) repeat-x; -} -.x-toolbar td { - vertical-align:middle; -} -.mso .x-toolbar, .x-grid-mso .x-toolbar{ - border: 0 none; - background: url(../images/default/grid/mso-hd.gif); -} -.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{ - white-space: nowrap; - font:normal 11px tahoma, arial, helvetica, sans-serif; -} -.x-toolbar .x-item-disabled { - color:gray; - cursor:default; - opacity:.6; - -moz-opacity:.6; - filter:alpha(opacity=60); -} -.x-toolbar .x-item-disabled * { - color:gray; - cursor:default; -} -.x-toolbar .x-btn-left{ - background:none; -} -.x-toolbar .x-btn-right{ - background:none; -} -.x-toolbar .x-btn-center{ - background:none; - padding:0 0; -} -.x-toolbar .x-btn-menu-text-wrap .x-btn-center button{ - padding-right:2px; -} -.ext-gecko .x-toolbar .x-btn-menu-text-wrap .x-btn-center button{ - padding-right:0; -} -.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{ - padding:0 2px; -} -.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { - width:12px; - background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat 0 3px; -} -.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { - width:12px; - background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat 0 3px; -} -.x-toolbar .x-btn-over .x-btn-menu-arrow-wrap .x-btn-center button { - background-position: 0 -47px; -} -.x-toolbar .x-btn-over .x-btn-left{ - background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 0; -} -.x-toolbar .x-btn-over .x-btn-right{ - background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -21px; -} -.x-toolbar .x-btn-over .x-btn-center{ - background:url(../images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -42px; -} - -.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ - background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -63px; -} -.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ - background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -84px; -} -.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ - background:url(../images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -105px; -} - -.x-toolbar .ytb-text{ - padding:2px; -} -.x-toolbar .ytb-sep { - background-image: url(../images/default/grid/grid-split.gif); - background-position: center; - background-repeat: no-repeat; - display: block; - font-size: 1px; - height: 16px; - width:4px; - overflow: hidden; - cursor:default; - margin: 0 2px 0; - border:0; -} -.x-toolbar .ytb-spacer { - width:2px; -} -.mso .x-toolbar .ytb-sep, .x-grid-mso .x-toolbar .ytb-sep{ - background-image: url(../images/default/grid/grid-blue-split.gif); -} - -/* IE refuses to respect the negative margins in the toolbar */ -.ext-ie .x-toolbar .x-form-field-wrap { - padding-bottom:1px; -} -.ext-ie .x-toolbar .x-form-field-wrap .x-form-trigger { - top:1px; -} - -/* Paging Toolbar */ - -.x-grid-page-number{ - width:24px; - height:14px; -} -.x-grid-page-first .x-btn-text{ - background-image: url(../images/default/grid/page-first.gif); -} -.x-grid-loading .x-btn-text{ - background-image: url(../images/default/grid/done.gif); -} -.x-grid-page-last .x-btn-text{ - background-image: url(../images/default/grid/page-last.gif); -} -.x-grid-page-next .x-btn-text{ - background-image: url(../images/default/grid/page-next.gif); -} -.x-grid-page-prev .x-btn-text{ - background-image: url(../images/default/grid/page-prev.gif); -} -.x-item-disabled .x-grid-loading .x-btn-text{ - background-image: url(../images/default/grid/loading.gif); -} -.x-item-disabled .x-grid-page-first .x-btn-text{ - background-image: url(../images/default/grid/page-first-disabled.gif); -} -.x-item-disabled .x-grid-page-last .x-btn-text{ - background-image: url(../images/default/grid/page-last-disabled.gif); -} -.x-item-disabled .x-grid-page-next .x-btn-text{ - background-image: url(../images/default/grid/page-next-disabled.gif); -} -.x-item-disabled .x-grid-page-prev .x-btn-text{ - background-image: url(../images/default/grid/page-prev-disabled.gif); -} -.x-paging-info { - position:absolute; - top:8px; - right: 8px; - color:#15428b; -} diff --git a/www/extras/extjs/resources/css/tree.css b/www/extras/extjs/resources/css/tree.css deleted file mode 100644 index 8f33f07db..000000000 --- a/www/extras/extjs/resources/css/tree.css +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.x-tree-icon, .x-tree-ec-icon, .x-tree-elbow-line, .x-tree-elbow, .x-tree-elbow-end, .x-tree-elbow-plus, .x-tree-elbow-minus, .x-tree-elbow-end-plus, .x-tree-elbow-end-minus{ - border: 0 none; - height: 18px; - margin: 0; - padding: 0; - vertical-align: middle; - width: 16px; - background-repeat: no-repeat; -} -.x-tree-node-collapsed .x-tree-node-icon, .x-tree-node-expanded .x-tree-node-icon, .x-tree-node-leaf .x-tree-node-icon{ - border: 0 none; - height: 18px; - margin: 0; - padding: 0; - vertical-align: middle; - width: 16px; - background-position:center; - background-repeat: no-repeat; -} - -/* some default icons for leaf/folder */ -.x-tree-node-collapsed .x-tree-node-icon{ - background-image:url(../images/default/tree/folder.gif); -} -.x-tree-node-expanded .x-tree-node-icon{ - background-image:url(../images/default/tree/folder-open.gif); -} -.x-tree-node-leaf .x-tree-node-icon{ - background-image:url(../images/default/tree/leaf.gif); -} - -.x-tree-noicon .x-tree-node-icon{ - width:0; height:0; -} -/* loading icon */ -.x-tree-node-loading .x-tree-node-icon{ - background-image:url(../images/default/tree/loading.gif) !important; -} -.x-tree-node-loading a span{ - font-style: italic; - color:#444444; -} - -/* Line styles */ -.x-tree-lines .x-tree-elbow{ - background-image:url(../images/default/tree/elbow.gif); -} -.x-tree-lines .x-tree-elbow-plus{ - background-image:url(../images/default/tree/elbow-plus.gif); -} -.x-tree-lines .x-tree-elbow-minus{ - background-image:url(../images/default/tree/elbow-minus.gif); -} -.x-tree-lines .x-tree-elbow-end{ - background-image:url(../images/default/tree/elbow-end.gif); -} -.x-tree-lines .x-tree-elbow-end-plus{ - background-image:url(../images/default/tree/elbow-end-plus.gif); -} -.x-tree-lines .x-tree-elbow-end-minus{ - background-image:url(../images/default/tree/elbow-end-minus.gif); -} -.x-tree-lines .x-tree-elbow-line{ - background-image:url(../images/default/tree/elbow-line.gif); -} - -/* No line styles */ -.x-tree-no-lines .x-tree-elbow{ - background:transparent; -} -.x-tree-no-lines .x-tree-elbow-plus{ - background-image:url(../images/default/tree/elbow-plus-nl.gif); -} -.x-tree-no-lines .x-tree-elbow-minus{ - background-image:url(../images/default/tree/elbow-minus-nl.gif); -} -.x-tree-no-lines .x-tree-elbow-end{ - background:transparent; -} -.x-tree-no-lines .x-tree-elbow-end-plus{ - background-image:url(../images/default/tree/elbow-end-plus-nl.gif); -} -.x-tree-no-lines .x-tree-elbow-end-minus{ - background-image:url(../images/default/tree/elbow-end-minus-nl.gif); -} -.x-tree-no-lines .x-tree-elbow-line{ - background:transparent; -} - -.x-tree-elbow-plus, .x-tree-elbow-minus, .x-tree-elbow-end-plus, .x-tree-elbow-end-minus{ - cursor:pointer; -} -.ext-ie ul.x-tree-node-ct{ - font-size:0; - line-height:0; -} -.x-tree-node{ - color: black; - font: normal 11px arial, tahoma, helvetica, sans-serif; - white-space: nowrap; -} -.x-tree-node a, .x-dd-drag-ghost a{ - text-decoration:none; - color:black; - -khtml-user-select:none; - -moz-user-select:none; - -kthml-user-focus:normal; - -moz-user-focus:normal; - -moz-outline: 0 none; - outline:0 none; -} -.x-tree-node a span, .x-dd-drag-ghost a span{ - text-decoration:none; - color:black; - padding:1px 3px 1px 2px; -} -.x-tree-node .x-tree-node-disabled a span{ - color:gray !important; -} -.x-tree-node .x-tree-node-disabled .x-tree-node-icon{ - -moz-opacity: 0.5; - opacity:.5; - filter: alpha(opacity=50); -} -.x-tree-node .x-tree-node-inline-icon{ - background:transparent; -} -.x-tree-node a:hover, .x-dd-drag-ghost a:hover{ - text-decoration:none; -} -.x-tree-node div.x-tree-drag-insert-below{ - border-bottom:1px dotted #3366cc; -} -.x-tree-node div.x-tree-drag-insert-above{ - border-top:1px dotted #3366cc; -} -.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below{ - border-bottom:0 none; -} -.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above{ - border-top:0 none; -} -.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{ - border-bottom:2px solid #3366cc; -} -.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{ - border-top:2px solid #3366cc; -} -.x-tree-node .x-tree-drag-append a span{ - background:#dddddd; - border:1px dotted gray; -} -.x-tree-node .x-tree-selected a span{ - background:#3366cc; - color:white; -} -.x-dd-drag-ghost .x-tree-node-indent, .x-dd-drag-ghost .x-tree-ec-icon{ - display:none !important; -} -.x-tree-drop-ok-append .x-dd-drop-icon{ - background-image: url(../images/default/tree/drop-add.gif); -} -.x-tree-drop-ok-above .x-dd-drop-icon{ - background-image: url(../images/default/tree/drop-over.gif); -} -.x-tree-drop-ok-below .x-dd-drop-icon{ - background-image: url(../images/default/tree/drop-under.gif); -} -.x-tree-drop-ok-between .x-dd-drop-icon{ - background-image: url(../images/default/tree/drop-between.gif); -} diff --git a/www/extras/extjs/resources/css/window.css b/www/extras/extjs/resources/css/window.css deleted file mode 100644 index 4f5bec43b..000000000 --- a/www/extras/extjs/resources/css/window.css +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - - -.x-window .x-resizable-handle { - opacity:0; - -moz-opacity:0; - filter:alpha(opacity=0); -} - -.x-window-proxy { - background:#C7DFFC; - border:1px solid #99bbe8; - z-index:12000; - overflow:hidden; - position:absolute; - left:0;top:0; - display:none; - opacity:.5; - -moz-opacity:.5; - filter:alpha(opacity=50); -} - -.x-window-header { - overflow:hidden; - zoom:1; -} -.x-window-bwrap { - z-index:1; - position:relative; - zoom:1; -} -.x-window-tl .x-window-header { - color:#15428b; - font:bold 11px tahoma,arial,verdana,sans-serif; - padding:5px 0 4px 0; -} -.x-window-header-text { - cursor:pointer; -} -.x-window-tc { - background: transparent url(../images/default/window/top-bottom.png) repeat-x 0 0; - overflow:hidden; - zoom:1; -} -.x-window-tl { - background: transparent url(../images/default/window/left-corners.png) no-repeat 0 0; - padding-left:6px; - zoom:1; - z-index:1; - position:relative; -} -.x-window-tr { - background: transparent url(../images/default/window/right-corners.png) no-repeat right 0; - padding-right:6px; -} -.x-window-bc { - background: transparent url(../images/default/window/top-bottom.png) repeat-x 0 bottom; - zoom:1; -} -.x-window-bc .x-window-footer { - padding-bottom:6px; - zoom:1; - font-size:0; - line-height:0; -} -.x-window-bl { - background: transparent url(../images/default/window/left-corners.png) no-repeat 0 bottom; - padding-left:6px; - zoom:1; -} -.x-window-br { - background: transparent url(../images/default/window/right-corners.png) no-repeat right bottom; - padding-right:6px; - zoom:1; -} -.x-window-mc { - border:0 none; - padding:0; - margin:0; - font: normal 11px tahoma,arial,helvetica,sans-serif; - background:#dfe8f6; -} -.x-window-ml { - background: transparent url(../images/default/window/left-right.png) repeat-y 0 0; - padding-left:6px; - zoom:1; -} -.x-window-mr { - background: transparent url(../images/default/window/left-right.png) repeat-y right 0; - padding-right:6px; - zoom:1; -} -.x-window-mc { - border:1px solid #99bbe8; -} -.x-window-body { - overflow:hidden; -} -.x-window-bwrap { - overflow:hidden; -} -.x-window-maximized .x-window-bl, .x-window-maximized .x-window-br, - .x-window-maximized .x-window-ml, .x-window-maximized .x-window-mr, - .x-window-maximized .x-window-tl, .x-window-maximized .x-window-tr { - padding:0; -} -.x-window-maximized .x-window-footer { - padding-bottom:0; -} -.x-window-maximized .x-window-tc { - padding-left:3px; - padding-right:3px; -} -.x-window-maximized .x-window-mc { - border-left:0 none; - border-right:0 none; -} -.x-window-tbar .x-toolbar, .x-window-bbar .x-toolbar { - border-left:0 none; - border-right: 0 none; -} -.x-window-bbar .x-toolbar { - border-top:1px solid #99bbe8; - border-bottom:0 none; -} -.x-window-draggable, .x-window-draggable .x-window-header-text { - cursor:move; -} -.x-window-maximized .x-window-draggable, .x-window-maximized .x-window-draggable .x-window-header-text { - cursor:default; -} -.x-window-body { - background:transparent; -} -.x-panel-ghost .x-window-tl { - border-bottom:1px solid #99bbe8; -} -.x-panel-collapsed .x-window-tl { - border-bottom:1px solid #84a0c4; -} -.x-window-maximized-ct { - overflow:hidden; -} -.x-window-maximized .x-resizable-handle { - display:none; -} -.x-window-sizing-ghost ul { - border:0 none !important; -} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/ytheme-aero.css b/www/extras/extjs/resources/css/ytheme-aero.css deleted file mode 100644 index ad3fa9c87..000000000 --- a/www/extras/extjs/resources/css/ytheme-aero.css +++ /dev/null @@ -1,581 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* menus */ -.x-menu { - border:1px solid; - border-color: #96b9e6 #8BB8F3 #8BB8F3 #96b9e6; - z-index: 15000; - zoom:1; - background:#c3daf9; - padding:2px; - -} -.x-menu-list{ - background: #fafafa; - border:1px solid #fff; - border-color:#a3bad9; -} -.x-menu-item-icon { - margin-right:8px; -} -.x-menu-sep { - margin-left:3px; -} -.x-menu-item-active { - color:#233d6d; - background:#c3daf9; - border:1px solid #fff; - padding:0; -} - -.x-date-mmenu .x-menu-list{ - padding:0; -} -.x-date-mmenu .x-menu-list{ - border:0 none; -} - -.x-menu .x-color-palette, .x-menu .x-date-picker{ - margin-left:26px; -} -.x-menu-plain .x-color-palette, .x-menu-plain .x-date-picker{ - margin:0; - border:0 none; -} -/** -* Tabs -*/ -.x-tabs-wrap, .x-layout-panel .x-tabs-top .x-tabs-wrap { - background:#deecfd; - border:1px solid #8db2e3; - padding-bottom:2px; - padding-top:0; -} -.x-tabs-strip-wrap{ - padding-top:1px; - background:#cedff5 url(../images/aero/tabs/tab-strip-bg.gif) repeat-x bottom; - border-bottom:1px solid #8db2e3; -} -.x-tabs-strip .x-tabs-text { - color:#15428b; - font:bold 11px tahoma,arial,verdana,sans-serif; -} -.x-tabs-strip .on .x-tabs-text { - cursor:default; - color:#15428b; -} -.x-tabs-top .x-tabs-strip .on .x-tabs-right { - background: url(../images/aero/tabs/tab-sprite.gif) no-repeat right 0; -} -.x-tabs-top .x-tabs-strip .on .x-tabs-left,.x-tabs-top .x-tabs-strip .on a:hover .x-tabs-left{ - background: url(../images/aero/tabs/tab-sprite.gif) no-repeat 0 -100px; -} -.x-tabs-top .x-tabs-strip .x-tabs-right { - background:transparent url(../images/aero/tabs/tab-sprite.gif) no-repeat right -50px; -} -.x-tabs-top .x-tabs-strip .x-tabs-left { - background:transparent url(../images/aero/tabs/tab-sprite.gif) no-repeat 0 -150px; -} -.x-tabs-top .x-tabs-body { - border:1px solid #8db2e3; - border-top:0 none; -} -.x-tabs-bottom .x-tabs-wrap, .x-layout-panel .x-tabs-bottom .x-tabs-wrap { - background:#deecfd; - border:1px solid #8db2e3; - padding-top:2px; - padding-bottom:0; -} -.x-tabs-bottom .x-tabs-strip-wrap{ - padding-top:0; - padding-bottom:1px; - background:#cedff5 url(../images/aero/tabs/tab-strip-btm-bg.gif) repeat-x top; - border-top:1px solid #8db2e3; - border-bottom:0 none; -} -.x-tabs-bottom .x-tabs-strip .x-tabs-right { - background:transparent url(../images/aero/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right; -} -.x-tabs-bottom .x-tabs-strip .x-tabs-left { - background:transparent url(../images/aero/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left; -} -.x-tabs-bottom .x-tabs-strip .on .x-tabs-right,.x-tabs-bottom .x-tabs-strip .on a:hover { - background: url(../images/aero/tabs/tab-btm-right-bg.gif) no-repeat bottom left; -} -.x-tabs-bottom .x-tabs-strip .on .x-tabs-left,.x-tabs-bottom .x-tabs-strip .on a:hover .x-tabs-left { - background: url(../images/aero/tabs/tab-btm-left-bg.gif) no-repeat bottom right; -} -.x-tabs-bottom .x-tabs-body { - border:1px solid #8db2e3; - border-bottom:0 none; -} -/* -* Basic-Dialog -*/ -.x-dlg-proxy { - background:#C7DFFC; - border:1px solid #A5CCF9; -} -.x-dlg-shadow{ - background:#cccccc; - opacity:.3; - -moz-opacity:.3; - filter: alpha(opacity=30); -} -.x-dlg { - background:transparent; -} -.x-dlg .x-dlg-hd { - background: url(../images/aero/basic-dialog/hd-sprite.gif) repeat-x 0 -82px; - background-color:#aabaca; - color:#15428b; - zoom:1; - padding-top:7px; -} -.x-dlg .x-dlg-hd-left { - opacity:.85; - -moz-opacity:.85; - filter:alpha(opacity=80); - background: url(../images/aero/basic-dialog/hd-sprite.gif) no-repeat 0 -41px; - zoom:1; -} -.x-dlg-modal .x-dlg-hd-left { - opacity:.75; - -moz-opacity:.75; - filter:alpha(opacity=70); -} - -.x-dlg .x-dlg-hd-right { - background: url(../images/aero/basic-dialog/hd-sprite.gif) no-repeat right 0; - zoom:1; -} -.x-dlg .x-dlg-dlg-body{ - padding:0 0 0; - position:absolute; - top:24px;left:0; - z-index:1; - border:0 none; - background:transparent; -} -.x-dlg .x-dlg-bd{ - background:#fff; - border:1px solid #96b9e6; -} -.x-dlg .x-dlg-ft{ - border:0 none; - background:transparent; - padding-bottom:8px; -} -.x-dlg .x-dlg-bg{ - filter:alpha(opacity=80); - opacity:.85; - -moz-opacity:.85; - zoom:1; -} -.x-dlg-modal .x-dlg-bg { - opacity:.75; - -moz-opacity:.75; - filter:alpha(opacity=70); -} -.x-dlg .x-dlg-bg-center { - padding: 2px 7px 7px 7px; - background:transparent url(../images/aero/basic-dialog/bg-center.gif) repeat-x bottom; - zoom:1; -} -.x-dlg .x-dlg-bg-left{ - padding-left:7px; - background:transparent url(../images/aero/basic-dialog/bg-left.gif) no-repeat bottom left; - zoom:1; -} -.x-dlg .x-dlg-bg-right{ - padding-right:7px; - background:transparent url(../images/aero/basic-dialog/bg-right.gif) no-repeat bottom right; - zoom:1; -} -.x-dlg-auto-tabs .x-dlg-dlg-body, .x-dlg-auto-layout .x-dlg-dlg-body{ - background:transparent; - border:0 none; -} -.x-dlg-auto-tabs .x-dlg-bd, .x-dlg-auto-layout .x-dlg-bd{ - background:#fff; - border:1px solid #e9f3f5; -} -.x-dlg-auto-tabs .x-tabs-top .x-tabs-body,.x-dlg-auto-tabs .x-tabs-bottom .x-tabs-body{ - border-color:#8db2e3; -} -.x-dlg-auto-tabs .x-tabs-top .x-tabs-wrap,.x-dlg-auto-tabs .x-tabs-bottom .x-tabs-wrap{ - border-color:#8db2e3; -} -.x-dlg .x-dlg-toolbox { - width:50px; - height:20px; - right:5px; - top:5px; -} -.x-dlg .x-dlg-close, .x-dlg .x-dlg-collapse { - width:21px; - height:20px; - margin:0; -} -.x-dlg .x-dlg-close { - background-image:url(../images/aero/basic-dialog/aero-close.gif); -} -.x-dlg .x-dlg-collapse { - background-image:url(../images/aero/basic-dialog/collapse.gif); -} -.x-dlg-collapsed { - border-bottom:1px solid #96b9e6; -} -.x-dlg .x-dlg-close-over { - background-image:url(../images/aero/basic-dialog/aero-close-over.gif); -} -.x-dlg .x-dlg-collapse-over { - background-image:url(../images/aero/basic-dialog/collapse-over.gif); -} -.x-dlg-collapsed .x-dlg-collapse { - background-image:url(../images/aero/basic-dialog/expand.gif); -} -.x-dlg-collapsed .x-dlg-collapse-over { - background-image:url(../images/aero/basic-dialog/expand-over.gif); -} -.x-dlg div.x-resizable-handle-east{ - background-image:url(../images/aero/s.gif); - border:0 none; -} -.x-dlg div.x-resizable-handle-south{ - background-image:url(../images/aero/s.gif); - border:0 none; -} -.x-dlg div.x-resizable-handle-west{ - background-image:url(../images/aero/s.gif); - border:0 none; -} -.x-dlg div.x-resizable-handle-southeast{ - background-image:url(../images/aero/basic-dialog/se-handle.gif); - background-position: bottom right; - width:9px; - height:9px; - border:0; - right:2px; - bottom:2px; -} -.x-dlg div.x-resizable-handle-southwest{ - background-image:url(../images/aero/s.gif); - background-position: top right; - margin-left:1px; - margin-bottom:1px; - border:0; -} -.x-dlg div.x-resizable-handle-north{ - background-image:url(../images/aero/s.gif); - border:0 none; -} - -#x-msg-box .x-dlg-bd{ - background:#CFE0F5; - border:0 none; -} -body.x-masked #x-msg-box .x-dlg-bd, body.x-body-masked #x-msg-box .x-dlg-bd{ - background:#c4d2e3; - border:0 none; -} -/* BorderLayout */ - -.x-layout-container{ - background:#deecfd; -} -.x-layout-collapsed{ - background-color:#deecfd; - border:1px solid #99bbe8; -} -.x-layout-collapsed-over{ - background-color:#F5F9FE; -} -.x-layout-panel{ - border:1px solid #99bbe8; -} -.x-layout-nested-layout .x-layout-panel { - border:0 none; -} -.x-layout-split{ - background-color:#deecfd; -} -.x-layout-panel-hd{ - background: #ebeadb url(../images/aero/grid/grid-hrow.gif) repeat-x; - border-bottom:1px solid #99bbe8; -} -.x-layout-panel-hd-text { - color:#15428b; - font:bold 11px tahoma,arial,verdana,sans-serif; -} - -.x-layout-split-h{ - background:#deecfd; -} -.x-layout-split-v{ - background:#deecfd; -} -.x-layout-panel .x-tabs-top .x-tabs-wrap{ - border:0 none; - border-bottom:1px solid #8db2e3; -} -.x-layout-panel .x-tabs-bottom .x-tabs-wrap{ - border:0 none; - border-top:1px solid #8db2e3; -} - -.x-layout-nested-layout .x-layout-panel-north { - border-bottom:1px solid #99bbe8; -} -.x-layout-nested-layout .x-layout-panel-south { - border-top:1px solid #99bbe8; -} -.x-layout-nested-layout .x-layout-panel-east { - border-left:1px solid #99bbe8; -} -.x-layout-nested-layout .x-layout-panel-west { - border-right:1px solid #99bbe8; -} -.x-layout-panel-dragover { - border: 2px solid #99bbe8; -} -.x-layout-panel-proxy { - background-image: url(../images/aero/layout/gradient-bg.gif); - background-color:#f3f2e7; - border:1px dashed #99bbe8; -} - -.x-layout-container .x-layout-tabs-body{ - border:0 none; -} -/** Resizable */ - -.x-resizable-proxy{ - border: 1px dashed #3b5a82; -} - -/* grid */ -.x-grid-hd-text { - color:#15428b; - font-weight:bold; -} -.x-grid-locked .x-grid-body td { - background: #FBFDFF; - border-right: 1px solid #deecfd; - border-bottom: 1px solid #deecfd !important; -} -.x-grid-locked .x-grid-body td .x-grid-cell-inner { - border-top:0 none; -} -.x-grid-locked .x-grid-row-alt td{ - background: #F5FAFE; -} -.x-grid-locked .x-grid-row-selected td{ - color: #fff !important; - background-color: #316ac5 !important; -} -.x-grid-hd{ - border-bottom:0; - background:none; -} -.x-grid-hd-row{ - height:auto; -} -.x-grid-hd-over { - border-bottom:0 none; -} -.x-grid-hd-over .x-grid-hd-body{ - background:none; - border-bottom:0 none; -} -.x-grid-hd-over .x-grid-hd-body{ - background-color: transparent; - border-bottom:0; -} -.x-grid-split { - background-image: url(../images/aero/grid/grid-blue-split.gif); -} -.x-grid-header{ - background: url(../images/aero/grid/grid-hrow.gif); - border:0 none; - border-bottom:1px solid #6f99cf; -} -.x-grid-row-alt{ - background-color: #f5f5f5; -} -.x-grid-row-over td, .x-grid-locked .x-grid-row-over td{ - background-color:#d9e8fb; -} -.x-grid-col { - border-right: 1px solid #eee; - border-bottom: 1px solid #eee; -} -.x-grid-header .x-grid-hd-inner { - padding-bottom: 1px; -} -.x-grid-header .x-grid-hd-text { - padding-bottom: 3px; -} -.x-grid-hd-over .x-grid-hd-inner { - border-bottom: 1px solid #316ac5; - padding-bottom: 0; -} -.x-grid-hd-over .x-grid-hd-text { - background: #d5e4f5; - border-bottom: 1px solid #fff; - padding-bottom: 2px; -} -.x-grid-header .sort-asc .x-grid-hd-inner, .x-grid-header .sort-desc .x-grid-hd-inner { - border-bottom: 1px solid #316ac5; - padding-bottom: 0; -} -.x-grid-header .sort-asc .x-grid-hd-text, .x-grid-header .sort-desc .x-grid-hd-text { - border-bottom: 0 none; - padding-bottom: 3px; -} -.x-grid-header .sort-asc .x-grid-sort-icon { - background-image: url(../images/aero/grid/sort_asc.gif); -} -.x-grid-header .sort-desc .x-grid-sort-icon { - background-image: url(../images/aero/grid/sort_desc.gif); -} -.x-dd-drag-proxy .x-grid-hd-inner{ - background: #ebeadb url(../images/aero/grid/grid-hrow.gif) repeat-x; - height:22px; - width:120px; -} - - -.x-grid-locked td.x-grid-row-marker, .x-grid-locked .x-grid-row-selected td.x-grid-row-marker{ - background: #ebeadb url(../images/aero/grid/grid-hrow.gif) repeat-x 0 0 !important; - vertical-align:middle !important; - color:black; - padding:0; - border-top:1px solid white; - border-bottom:1px solid #6f99cf !important; - border-right:1px solid #6f99cf !important; - text-align:center; -} -.x-grid-locked td.x-grid-row-marker div, .x-grid-locked .x-grid-row-selected td.x-grid-row-marker div{ - padding:0 4px; - color:#15428b !important; - text-align:center; -} - -/** Toolbar */ -.x-toolbar{ - padding:2px 2px 2px 2px; - background:#d0def0 url(../images/default/toolbar/tb-bg.gif) repeat-x; -} - -.x-toolbar .ytb-sep{ - background-image: url(../images/aero/grid/grid-blue-split.gif); -} - -.x-toolbar .x-btn-over .x-btn-left{ - background:url(../images/aero/toolbar/tb-btn-sprite.gif) no-repeat 0 0; -} -.x-toolbar .x-btn-over .x-btn-right{ - background:url(../images/aero/toolbar/tb-btn-sprite.gif) no-repeat 0 -21px; -} -.x-toolbar .x-btn-over .x-btn-center{ - background:url(../images/aero/toolbar/tb-btn-sprite.gif) repeat-x 0 -42px; -} - -.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ - background:url(../images/aero/toolbar/tb-btn-sprite.gif) no-repeat 0 -63px; -} -.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ - background:url(../images/aero/toolbar/tb-btn-sprite.gif) no-repeat 0 -84px; -} -.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ - background:url(../images/aero/toolbar/tb-btn-sprite.gif) repeat-x 0 -105px; -} - - - - -/*************** TABS 2 *****************/ - - -/** -* Tabs -*/ -.x-tab-panel-header, .x-tab-panel-footer { - background:#deecfd; - border:1px solid #8db2e3; -} -.x-tab-panel-header { - background:#deecfd; - border:1px solid #8db2e3; - padding-bottom:2px; -} -.x-tab-panel-footer { - background:#deecfd; - border:1px solid #8db2e3; - padding-top:2px; -} - -.x-tab-strip-top{ - padding-top:1px; - background:#cedff5 url(../images/aero/tabs/tab-strip-bg.gif) repeat-x bottom; - border-bottom:1px solid #8db2e3; -} -.x-tab-strip-bottom{ - padding-bottom:1px; - background:#cedff5 url(../images/aero/tabs/tab-strip-btm-bg.gif) repeat-x top; - border-top:1px solid #8db2e3; - border-bottom:0 none; -} - -.x-tab-strip .x-tab-strip-text { - color:#15428b; - font:bold 11px tahoma,arial,verdana,sans-serif; -} -.x-tab-strip .x-tab-strip-active .x-tab-text { - cursor:default; - color:#15428b; -} - -.x-tab-strip-top .x-tab-strip-active .x-tab-right { - background: url(../images/aero/tabs/tab-sprite.gif) no-repeat right 0; -} -.x-tab-strip-top .x-tab-strip-active .x-tab-left { - background: url(../images/aero/tabs/tab-sprite.gif) no-repeat 0 -100px; -} -.x-tab-strip-top .x-tab-right { - background: url(../images/aero/tabs/tab-sprite.gif) no-repeat right -50px; -} -.x-tab-strip-top .x-tab-left { - background: url(../images/aero/tabs/tab-sprite.gif) no-repeat 0 -150px; -} - - -.x-tab-strip-bottom .x-tab-right { - background: url(../images/aero/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom left; -} -.x-tab-strip-bottom .x-tab-left { - background: url(../images/aero/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom right; -} -.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { - background: url(../images/aero/tabs/tab-btm-right-bg.gif) no-repeat bottom left; -} -.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { - background: url(../images/aero/tabs/tab-btm-left-bg.gif) no-repeat bottom right; -} - -.x-tab-panel-body-top { - border:1px solid #8db2e3; - border-top:0 none; -} - -.x-tab-panel-body-bottom { - border:1px solid #8db2e3; - border-bottom:0 none; -} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/ytheme-gray.css b/www/extras/extjs/resources/css/ytheme-gray.css deleted file mode 100644 index 4268693c2..000000000 --- a/www/extras/extjs/resources/css/ytheme-gray.css +++ /dev/null @@ -1,438 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - - -.ext-el-mask-msg { - border:1px solid #aaa; - background: #ddd url(../images/default/box/tb.gif) repeat-x 0 -16px; -} -.ext-el-mask-msg div { - border:1px solid #ccc; -} - -/* - Menu - */ -.x-menu { - border-color: #999 #999 #999 #999; - background-image:url(../images/gray/menu/menu.gif); -} -.x-menu-item-arrow{ - background-image:url(../images/gray/menu/menu-parent.gif); -} -.x-menu-item { - color:#222; -} -.x-menu-item-active { - background:#ddd; - border:1px solid #aaa; -} -.x-menu-sep { - background:#aaa; -} - -/* grid */ -.x-grid-header{ - background: #ebeadb url(../images/gray/grid/grid-hrow.gif) repeat-x; - overflow:hidden; - position:relative; - cursor:default; - width:100%; -} -.x-grid-hd-row{ - height:22px; -} -.x-grid-hd { - padding-right:1px; -} -.x-grid-hd-over .x-grid-hd-inner { - border-bottom: 1px solid #fcc247; -} -.x-grid-hd-over .x-grid-hd-text { - background: #faf9f4; - padding-bottom:1px; - border-bottom: 1px solid #f9a900; -} - -.x-grid-hd-text { - color:#000000; -} - -.x-grid-col { - border-right: 1px solid #f1efe2; - border-bottom: 1px solid #f1efe2; -} -.x-grid-row-alt{ - background:#fcfaf6; -} -.x-grid-row-over td{ - background:#f1f1f1; -} - - -.x-grid-locked .x-grid-body td { - background: #f0efe4; - border-right: 1px solid #D6D2C2; - border-bottom: 1px solid #D6D2C2 !important; -} - -.x-grid-locked .x-grid-header table{ - border-right:1px solid transparent; -} -.x-grid-locked .x-grid-body table{ - border-right:1px solid #c6c2b2; -} - -.x-grid-bottombar .x-toolbar{ - border-right:0 none; - border-bottom:0 none; - border-top:1px solid #f1efe2; -} - -.x-props-grid .x-grid-col-name{ - background-color: #f1efe2; -} - - - -.x-grid-locked td.x-grid-row-marker, .x-grid-locked .x-grid-row-selected td.x-grid-row-marker{ - background: #ebeadb url(../images/gray/grid/grid-hrow.gif) repeat-x 0 bottom !important; - vertical-align:middle !important; - color:black; - padding:0; - border-top:1px solid white; - border-bottom:none !important; - border-right:1px solid #d6d2c2 !important; - text-align:center; -} -.x-grid-locked td.x-grid-row-marker div, .x-grid-locked .x-grid-row-selected td.x-grid-row-marker div{ - padding:0 4px; - color:black !important; - text-align:center; -} - -/** -* Basic-Dialog -*/ -.x-dlg-proxy { - background-image: url(../images/gray/layout/gradient-bg.gif); - background-color:#EAE8D5; - border:1px solid #b3b6b0; -} -.x-dlg-shadow{ - background:#aaaaaa; -} -.x-dlg-proxy .tabset{ - background:url(../images/gray/layout/gradient-bg.gif); -} -.x-dlg .x-dlg-hd { - background: url(../images/gray/basic-dialog/hd-sprite.gif) repeat-x 0 -82px; - background-color:#333333; -} -.x-dlg .x-dlg-hd-left { - background: url(../images/gray/basic-dialog/hd-sprite.gif) no-repeat 0 -41px; -} -.x-dlg .x-dlg-hd-right { - background: url(../images/gray/basic-dialog/hd-sprite.gif) no-repeat right 0; -} -.x-dlg .x-dlg-dlg-body{ - background:#efefec; - border:1px solid #b3b6b0; - border-top:0 none; -} -.x-dlg .x-tabs-top .x-tabs-body{ - border:1px solid #b3b6b0; - border-top:0 none; -} -.x-dlg .x-tabs-bottom .x-tabs-body{ - border:1px solid #b3b6b0; - border-bottom:0 none; -} -.x-dlg .x-layout-container .x-tabs-body{ - border:0 none; -} -.x-dlg .x-dlg-close { - background-image:url(../images/gray/basic-dialog/close.gif); -} -.x-dlg .x-dlg-collapse { - background-image:url(../images/gray/basic-dialog/collapse.gif); -} -.x-dlg-collapsed .x-dlg-collapse { - background-image:url(../images/gray/basic-dialog/expand.gif); -} -.x-dlg div.x-resizable-handle-east{ - background-image:url(../images/gray/basic-dialog/e-handle.gif); - border:0 none; -} -.x-dlg div.x-resizable-handle-south{ - background-image:url(../images/gray/basic-dialog/s-handle.gif); - border:0 none; -} -.x-dlg div.x-resizable-handle-west{ - background-image:url(../images/gray/basic-dialog/e-handle.gif); - border:0 none; -} -.x-dlg div.x-resizable-handle-southeast{ - background-image:url(../images/gray/basic-dialog/se-handle.gif); - background-position: bottom right; - width:8px; - height:8px; - border:0; -} -.x-dlg div.x-resizable-handle-southwest{ - background-image:url(../images/gray/sizer/sw-handle-dark.gif); - background-position: top right; - margin-left:1px; - margin-bottom:1px; - border:0; -} -.x-dlg div.x-resizable-handle-north{ - background-image:url(../images/gray/s.gif); - border:0 none; -} - -/** -* Tabs -*/ -.x-tabs-wrap { - border-bottom:1px solid #aca899; -} -.x-tabs-strip .on .x-tabs-text { - cursor:default; - color:#333333; -} -.x-tabs-top .x-tabs-strip .on .x-tabs-right { - background: url(../images/gray/tabs/tab-sprite.gif) no-repeat right 0; -} -.x-tabs-top .x-tabs-strip .on .x-tabs-left { - background: url(../images/gray/tabs/tab-sprite.gif) no-repeat 0px -100px; -} -.x-tabs-top .x-tabs-strip .x-tabs-right { - background: url(../images/gray/tabs/tab-sprite.gif) no-repeat right -50px; -} -.x-tabs-top .x-tabs-strip .x-tabs-left { - background: url(../images/gray/tabs/tab-sprite.gif) no-repeat 0px -150px; -} -.x-tabs-strip .x-tabs-closable .close-icon{ - background-image:url(../images/gray/layout/tab-close.gif); -} -.x-tabs-strip .on .close-icon{ - background-image:url(../images/gray/layout/tab-close-on.gif); -} -.x-tabs-strip .x-tabs-closable .close-over{ - background-image:url(../images/gray/layout/tab-close-on.gif); -} -.x-tabs-body { - border:1px solid #aca899; - border-top:0 none; -} -.x-tabs-bottom .x-tabs-wrap { - border-bottom:0 none; - padding-top:0; - border-top:1px solid #aca899; -} -.x-tabs-bottom .x-tabs-strip .x-tabs-right { - background: url(../images/gray/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom left; -} -.x-tabs-bottom .x-tabs-strip .x-tabs-left { - background: url(../images/gray/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom right; -} -.x-tabs-bottom .x-tabs-strip .on .x-tabs-right { - background: url(../images/gray/tabs/tab-btm-right-bg.gif) no-repeat bottom left; -} -.x-tabs-bottom .x-tabs-strip .on .x-tabs-left { - background: url(../images/gray/tabs/tab-btm-left-bg.gif) no-repeat bottom right; -} - -.x-tabs-bottom .x-tabs-body { - border:1px solid #aca899; - border-bottom:0 none; -} - -.x-layout-container .x-layout-tabs-body{ - border:0 none; -} -/* QuickTips */ - -.x-tip .x-tip-top { - background-image: url(../images/gray/qtip/tip-sprite.gif); -} -.x-tip .x-tip-top-left { - background-image: url(../images/gray/qtip/tip-sprite.gif); -} -.x-tip .x-tip-top-right { - background-image: url(../images/gray/qtip/tip-sprite.gif); -} -.x-tip .x-tip-ft { - background-image: url(../images/gray/qtip/tip-sprite.gif); -} -.x-tip .x-tip-ft-left { - background-image: url(../images/gray/qtip/tip-sprite.gif); -} -.x-tip .x-tip-ft-right { - background-image: url(../images/gray/qtip/tip-sprite.gif); -} -.x-tip .x-tip-bd-left { - background-image: url(../images/gray/qtip/tip-sprite.gif); -} -.x-tip .x-tip-bd-right { - background-image: url(../images/gray/qtip/tip-sprite.gif); -} - -/* BorderLayout */ - -.x-layout-container{ - background-color:#f3f2e7; -} -.x-layout-collapsed{ - background-color:#f3f2e7; - border:1px solid #aca899; -} -.x-layout-collapsed-over{ - background-color:#fbfbef; -} -.x-layout-panel{ - border:1px solid #aca899; -} -.x-layout-nested-layout .x-layout-panel { - border:0 none; -} -.x-layout-split{ - background-color:#f3f2e7; -} -.x-layout-panel-hd{ - background-image: url(../images/gray/layout/panel-title-light-bg.gif); - border-bottom:1px solid #aca899; -} -.x-layout-tools-button-over{ - border:1px solid #aca899; -} -.x-layout-close{ - background-image:url(../images/gray/layout/panel-close.gif); -} -.x-layout-stick{ - background-image:url(../images/gray/layout/stick.gif); -} -.x-layout-collapse-west,.x-layout-expand-east{ - background-image:url(../images/gray/layout/collapse.gif); -} -.x-layout-expand-west,.x-layout-collapse-east{ - background-image:url(../images/gray/layout/expand.gif); -} -.x-layout-collapse-north,.x-layout-expand-south{ - background-image:url(../images/gray/layout/ns-collapse.gif); -} -.x-layout-expand-north,.x-layout-collapse-south{ - background-image:url(../images/gray/layout/ns-expand.gif); -} -.x-layout-split-h{ - background-image:url(../images/gray/sizer/e-handle-dark.gif); -} -.x-layout-split-v{ - background-image:url(../images/gray/sizer/s-handle-dark.gif); -} -.x-layout-panel .x-tabs-wrap{ - background:url(../images/gray/layout/gradient-bg.gif); -} -.x-layout-nested-layout .x-layout-panel-north { - border-bottom:1px solid #aca899; -} -.x-layout-nested-layout .x-layout-panel-south { - border-top:1px solid #aca899; -} -.x-layout-nested-layout .x-layout-panel-east { - border-left:1px solid #aca899; -} -.x-layout-nested-layout .x-layout-panel-west { - border-right:1px solid #aca899; -} -.x-layout-panel-dragover { - border: 2px solid #aca899; -} -.x-layout-panel-proxy { - background-image: url(../images/gray/layout/gradient-bg.gif); - background-color:#f3f2e7; - border:1px dashed #aca899; -} -/** Resizable */ - -.x-resizable-over .x-resizable-handle-east, .x-resizable-pinned .x-resizable-handle-east{ - background:url(../images/gray/sizer/e-handle.gif); - background-position: left; -} -.x-resizable-over .x-resizable-handle-east, .x-resizable-pinned .x-resizable-handle-west{ - background:url(../images/gray/sizer/e-handle.gif); - background-position: left; -} -.x-resizable-over .x-resizable-handle-south, .x-resizable-pinned .x-resizable-handle-south{ - background:url(../images/gray/sizer/s-handle.gif); - background-position: top; -} -.x-resizable-over .x-resizable-handle-south, .x-resizable-pinned .x-resizable-handle-north{ - background:url(../images/gray/sizer/s-handle.gif); - background-position: top; -} -.x-resizable-over .x-resizable-handle-southeast, .x-resizable-pinned .x-resizable-handle-southeast{ - background:url(../images/gray/sizer/se-handle.gif); - background-position: top left; -} -.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{ - background:url(../images/gray/sizer/nw-handle.gif); - background-position:bottom right; -} -.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{ - background:url(../images/gray/sizer/ne-handle.gif); - background-position: bottom left; -} -.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{ - background:url(../images/gray/sizer/sw-handle.gif); - background-position: top right; -} -.x-resizable-proxy{ - border: 1px dashed #615e55; -} - -/** Toolbar */ -.x-toolbar{ - border:0 none; - background: #efefe3 url(../images/gray/toolbar/gray-bg.gif) repeat-x; - padding:3px; -} -.x-toolbar .x-btn-over .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ - background:url(../images/gray/toolbar/tb-btn-sprite.gif) no-repeat 0 0; -} -.x-toolbar .x-btn-over .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ - background:url(../images/gray/toolbar/tb-btn-sprite.gif) no-repeat 0 -21px; -} -.x-toolbar .x-btn-over .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ - background:url(../images/gray/toolbar/tb-btn-sprite.gif) repeat-x 0 -42px; -} -.x-toolbar .x-btn-over .x-btn-menu-arrow-wrap .x-btn-center button { - background-position: 0 -47px; -} -.x-paging-info { - color:#222222; -} - -/* combo box */ -.x-combo-list { - border:1px solid #999; - background:#dddddd; -} -.x-combo-list-hd { - color:#222; - background-image: url(../images/gray/layout/panel-title-light-bg.gif); - border-bottom:1px solid #aca899; -} -.x-resizable-pinned .x-combo-list-inner { - border-bottom:1px solid #aaa; -} -.x-combo-list .x-combo-selected{ - background:#ddd !important; - border:1px solid #aaa; -} \ No newline at end of file diff --git a/www/extras/extjs/resources/css/ytheme-vista.css b/www/extras/extjs/resources/css/ytheme-vista.css deleted file mode 100644 index c9b5e590e..000000000 --- a/www/extras/extjs/resources/css/ytheme-vista.css +++ /dev/null @@ -1,511 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -.ext-el-mask-msg { - border:1px solid #aaa; - background: #ddd url(../images/default/box/tb.gif) repeat-x 0 -16px; -} -.ext-el-mask-msg div { - border:1px solid #ccc; -} -/* - Menu - */ -.x-menu { - border-color: #999 #999 #999 #999; - background-image:url(../images/gray/menu/menu.gif); -} -.x-menu-item-arrow{ - background-image:url(../images/gray/menu/menu-parent.gif); -} -.x-menu-item { - color:#222; -} -.x-menu-item-active { - background:#ddd; - border:1px solid #aaa; -} -.x-menu-sep { - background:#aaa; -} -/** -* Tabs -*/ -.x-tabs-wrap { - background:#4f4f4f; - border-bottom:1px solid #b3b6b0; -} -.x-tabs-strip .x-tabs-text { - color:white; - font-weight:normal; -} -.x-tabs-strip .on .x-tabs-text { - cursor:default; - color:#333333; -} -.x-tabs-top .x-tabs-strip a.x-tabs-right { - background:transparent url(../images/vista/tabs/tab-sprite.gif) no-repeat right -50px; -} -.x-tabs-top .x-tabs-strip a .x-tabs-left{ - background:transparent url(../images/vista/tabs/tab-sprite.gif) no-repeat 0px -150px; -} -.x-tabs-top .x-tabs-strip .on .x-tabs-right { - background: url(../images/vista/tabs/tab-sprite.gif) no-repeat right 0; -} -.x-tabs-top .x-tabs-strip .on .x-tabs-left{ - background: url(../images/vista/tabs/tab-sprite.gif) no-repeat 0px -100px; -} -.x-tabs-strip .x-tabs-closable .close-icon{ - background-image:url(../images/vista/layout/tab-close.gif); -} -.x-tabs-strip .on .close-icon{ - background-image:url(../images/vista/layout/tab-close-on.gif); -} -.x-tabs-strip .x-tabs-closable .close-over{ - background-image:url(../images/vista/layout/tab-close-on.gif); -} -.x-tabs-body { - border:1px solid #b3b6b0; - border-top:0 none; -} - -.x-tabs-bottom .x-tabs-strip { - background:#4f4f4f; -} -.x-tabs-bottom .x-tabs-strip a.x-tabs-right { - background:transparent url(../images/vista/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right; -} -.x-tabs-bottom .x-tabs-strip a .x-tabs-left{ - background:transparent url(../images/vista/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left; -} -.x-tabs-bottom .x-tabs-wrap { - border-bottom:0 none; - padding-top:0; - border-top:1px solid #b3b6b0; -} -.x-tabs-bottom .x-tabs-strip .on .x-tabs-right { - background: url(../images/vista/tabs/tab-btm-right-bg.gif) no-repeat bottom left; -} -.x-tabs-bottom .x-tabs-strip .on .x-tabs-left { - background: url(../images/vista/tabs/tab-btm-left-bg.gif) no-repeat bottom right; -} - -.x-tabs-bottom .x-tabs-body { - border:1px solid #b3b6b0; - border-bottom:0 none; -} -/** -* Basic-Dialog -*/ -.x-dlg-proxy { - background:#d3d6d0; - border:2px solid #b3b6b0; -} -.x-dlg-shadow{ - background:#cccccc; - opacity:.3; - -moz-opacity:.3; - filter: alpha(opacity=30); -} -.x-dlg .x-dlg-hd { - background: url(../images/vista/basic-dialog/hd-sprite.gif) repeat-x 0 -82px; - background-color:#333333; - zoom:1; -} -.x-dlg .x-dlg-hd-left { - opacity:.95;-moz-opacity:.95;filter:alpha(opacity=90); - background: url(../images/vista/basic-dialog/hd-sprite.gif) no-repeat 0 -41px; - zoom:1; -} -.x-dlg .x-dlg-hd-right { - background: url(../images/vista/basic-dialog/hd-sprite.gif) no-repeat right 0; - zoom:1; -} -.x-dlg .x-dlg-dlg-body{ - background:#fff; - border:0 none; - border-top:0 none; - padding:0 0px 0px; - position:absolute; - top:24px;left:0; - z-index:1; -} -.x-dlg-auto-tabs .x-dlg-dlg-body{ - background:transparent; -} -.x-dlg-auto-tabs .x-tabs-top .x-tabs-wrap{ - background:transparent; -} -.x-dlg .x-dlg-ft{ - border-top:1px solid #b3b6b0; - background:#F0F0F0; - padding-bottom:8px; -} -.x-dlg .x-dlg-bg{ - opacity:.90;-moz-opacity:.90;filter:alpha(opacity=85); - zoom:1; -} -.x-dlg .x-dlg-bg-left,.x-dlg .x-dlg-bg-center,.x-dlg .x-dlg-bg-right{ -} -.x-dlg .x-dlg-bg-center { - padding: 0px 4px 4px 4px; - background:transparent url(../images/vista/basic-dialog/bg-center.gif) repeat-x bottom; - zoom:1; -} -.x-dlg .x-dlg-bg-left{ - padding-left:4px; - background:transparent url(../images/vista/basic-dialog/bg-left.gif) no-repeat bottom left; - zoom:1; -} -.x-dlg .x-dlg-bg-right{ - padding-right:4px; - background:transparent url(../images/vista/basic-dialog/bg-right.gif) no-repeat bottom right; - zoom:1; -} -.x-dlg .x-tabs-top .x-tabs-body{ - border:0 none; -} -.x-dlg .x-tabs-bottom .x-tabs-body{ - border:1px solid #b3b6b0; - border-bottom:0 none; -} -.x-dlg .x-layout-container .x-tabs-body{ - border:0 none; -} -.x-dlg .x-dlg-close { - background-image:url(../images/vista/basic-dialog/close.gif); -} -.x-dlg .x-dlg-collapse { - background-image:url(../images/vista/basic-dialog/collapse.gif); -} -.x-dlg-collapsed .x-dlg-collapse { - background-image:url(../images/vista/basic-dialog/expand.gif); -} -.x-dlg div.x-resizable-handle-east{ - background-image:url(../images/vista/s.gif); - border:0 none; -} -.x-dlg div.x-resizable-handle-south{ - background-image:url(../images/vista/s.gif); - border:0 none; -} -.x-dlg div.x-resizable-handle-west{ - background-image:url(../images/vista/s.gif); - border:0 none; -} -.x-dlg div.x-resizable-handle-southeast{ - background-image:url(../images/vista/s.gif); - background-position: bottom right; - width:8px; - height:8px; - border:0; -} -.x-dlg div.x-resizable-handle-southwest{ - background-image:url(../images/vista/s.gif); - background-position: top right; - margin-left:1px; - margin-bottom:1px; - border:0; -} -.x-dlg div.x-resizable-handle-north{ - background-image:url(../images/vista/s.gif); - border:0 none; -} - -/* QuickTips */ - -.x-tip .x-tip-top { - background-image: url(../images/vista/qtip/tip-sprite.gif); -} -.x-tip .x-tip-top-left { - background-image: url(../images/vista/qtip/tip-sprite.gif); -} -.x-tip .x-tip-top-right { - background-image: url(../images/vista/qtip/tip-sprite.gif); -} -.x-tip .x-tip-ft { - background-image: url(../images/vista/qtip/tip-sprite.gif); -} -.x-tip .x-tip-ft-left { - background-image: url(../images/vista/qtip/tip-sprite.gif); -} -.x-tip .x-tip-ft-right { - background-image: url(../images/vista/qtip/tip-sprite.gif); -} -.x-tip .x-tip-bd-left { - background-image: url(../images/vista/qtip/tip-sprite.gif); -} -.x-tip .x-tip-bd-right { - background-image: url(../images/vista/qtip/tip-sprite.gif); -} - -.x-tip .x-tip-bd-inner { - padding:2px; -} - -/* BorderLayout */ -.x-layout-container{ - background:#4f4f4f; -} -.x-layout-collapsed{ - background-color:#9f9f9f; - border:1px solid #4c535c; -} -.x-layout-collapsed-over{ - background-color:#bfbfbf; -} -.x-layout-panel{ - border:1px solid #4c535c; -} -.x-layout-nested-layout .x-layout-panel { - border:0 none; -} -.x-layout-split{ - background-color:#f3f2e7; -} -.x-layout-panel-hd{ - background-image: url(../images/vista/layout/panel-title-bg.gif); - border-bottom:1px solid #b5bac1; - color:white; -} -.x-layout-panel-hd-text{ - color:white; -} -.x-layout-tools-button-over{ - border:1px solid #4c535c; - background:#9f9f9f url(../images/vista/layout/panel-title-bg.gif) repeat-x; -} -.x-layout-close{ - background-image:url(../images/vista/layout/tab-close.gif); -} - -.x-layout-stick{ - background-image:url(../images/vista/layout/stick.gif); -} -.x-layout-collapse-west,.x-layout-expand-east{ - background-image:url(../images/vista/layout/collapse.gif); -} -.x-layout-expand-west,.x-layout-collapse-east{ - background-image:url(../images/vista/layout/expand.gif); -} -.x-layout-collapse-north,.x-layout-expand-south{ - background-image:url(../images/vista/layout/ns-collapse.gif); -} -.x-layout-expand-north,.x-layout-collapse-south{ - background-image:url(../images/vista/layout/ns-expand.gif); -} -.x-layout-split-h{ - background:#9f9f9f; -} -.x-layout-split-v{ - background:#9f9f9f; -} -.x-layout-panel .x-tabs-wrap{ - background:#4f4f4f; -} -.x-layout-nested-layout .x-layout-panel-north { - border-bottom:1px solid #4c535c; -} -.x-layout-nested-layout .x-layout-panel-south { - border-top:1px solid #4c535c; -} -.x-layout-nested-layout .x-layout-panel-east { - border-left:1px solid #4c535c; -} -.x-layout-nested-layout .x-layout-panel-west { - border-right:1px solid #4c535c; -} -.x-layout-panel-dragover { - border: 2px solid #4c535c; -} -.x-layout-panel-proxy { - background-image: url(../images/vista/layout/gradient-bg.gif); - background-color:#f3f2e7; - border:1px dashed #4c535c; -} - -.x-layout-container .x-layout-tabs-body{ - border:0 none; -} -/** Resizable */ - -.x-resizable-over .x-resizable-handle-east, .x-resizable-pinned .x-resizable-handle-east{ - background:url(../images/vista/sizer/e-handle.gif); - background-position: left; -} -.x-resizable-over .x-resizable-handle-east, .x-resizable-pinned .x-resizable-handle-west{ - background:url(../images/vista/sizer/e-handle.gif); - background-position: left; -} -.x-resizable-over .x-resizable-handle-south, .x-resizable-pinned .x-resizable-handle-south{ - background:url(../images/vista/sizer/s-handle.gif); - background-position: top; -} -.x-resizable-over .x-resizable-handle-south, .x-resizable-pinned .x-resizable-handle-north{ - background:url(../images/vista/sizer/s-handle.gif); - background-position: top; -} -.x-resizable-over .x-resizable-handle-southeast, .x-resizable-pinned .x-resizable-handle-southeast{ - background:url(../images/vista/sizer/se-handle.gif); - background-position: top left; -} -.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{ - background:url(../images/vista/sizer/nw-handle.gif); - background-position:bottom right; -} -.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{ - background:url(../images/vista/sizer/ne-handle.gif); - background-position: bottom left; -} -.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{ - background:url(../images/vista/sizer/sw-handle.gif); - background-position: top right; -} -.x-resizable-proxy{ - border: 1px dashed #615e55; -} - -/** Toolbar */ -.x-toolbar{ - border:0 none; - background: #efefe3 url(../images/vista/toolbar/gray-bg.gif) repeat-x; - padding:3px; -} -.x-toolbar .ytb-button-over{ - border:1px solid transparent; - border-bottom:1px solid #bbbbbb; - border-top:1px solid #eeeeee; - background:#9f9f9f url(../images/vista/grid/grid-vista-hd.gif) repeat-x; -} - -.x-paging-info { - color:#000; -} -/* grid */ -.x-grid-topbar .x-toolbar{ - border:0; - border-bottom:1px solid #555; -} -.x-grid-bottombar .x-toolbar{ - border:0; - border-top:1px solid #555; -} -.x-grid-locked .x-grid-body td { - background: #fafafa; - border-right: 1px solid #e1e1e1; - border-bottom: 1px solid #e1e1e1 !important; -} -.x-grid-locked .x-grid-body td .x-grid-cell-inner { - border-top:0 none; -} -.x-grid-locked .x-grid-row-alt td{ - background: #f1f1f1; -} -.x-grid-locked .x-grid-row-selected td{ - color: #fff !important; - background-color: #316ac5 !important; -} -.x-grid-hd{ - border-bottom:0; - background:none; -} -.x-grid-hd-row{ - height:auto; -} -.x-grid-split { - background-image: url(../images/vista/grid/grid-split.gif); -} -.x-grid-header{ - background: url(../images/vista/grid/grid-vista-hd.gif); - border:0 none; - border-bottom:1px solid #555; -} -.x-grid-row-alt{ - background-color: #f5f5f5; -} -.x-grid-row-over td{ - background-color:#eeeeee; -} -.x-grid-col { - border-right: 1px solid #eee; - border-bottom: 1px solid #eee; -} -.x-grid-header .x-grid-hd-inner { - padding-bottom: 1px; -} -.x-grid-header .x-grid-hd-text { - padding-bottom: 3px; - color:#333333; -} -.x-grid-hd-over .x-grid-hd-inner { - border-bottom: 1px solid #555; - padding-bottom: 0; -} -.x-grid-hd-over .x-grid-hd-text { - background-color: #fafafa; - border-bottom: 1px solid #555; - padding-bottom: 2px; -} -.x-grid-header .sort-asc .x-grid-hd-inner, .x-grid-header .sort-desc .x-grid-hd-inner { - border-bottom: 1px solid #555; - padding-bottom: 0; -} -.x-grid-header .sort-asc .x-grid-hd-text, .x-grid-header .sort-desc .x-grid-hd-text { - border-bottom: 1px solid #3b5a82; - padding-bottom: 2px; -} -.x-dd-drag-proxy .x-grid-hd-inner{ - background: url(../images/vista/grid/grid-vista-hd.gif) repeat-x; - height:22px; - width:120px; -} -.x-props-grid .x-grid-col-name{ - background-color: #eee; -} -/* toolbar */ -.x-toolbar .ytb-sep{ - background-image: url(../images/vista/grid/grid-split.gif); -} - -.x-toolbar .x-btn-over .x-btn-left{ - background:url(../images/vista/toolbar/tb-btn-sprite.gif) no-repeat 0 0px; -} -.x-toolbar .x-btn-over .x-btn-right{ - background:url(../images/vista/toolbar/tb-btn-sprite.gif) no-repeat 0 -21px; -} -.x-toolbar .x-btn-over .x-btn-center{ - background:url(../images/vista/toolbar/tb-btn-sprite.gif) repeat-x 0 -42px; -} - -.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ - background:url(../images/vista/toolbar/tb-btn-sprite.gif) no-repeat 0 -63px; -} -.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ - background:url(../images/vista/toolbar/tb-btn-sprite.gif) no-repeat 0 -84px; -} -.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ - background:url(../images/vista/toolbar/tb-btn-sprite.gif) repeat-x 0 -105px; -} - -/* combo box */ -.x-combo-list { - border:1px solid #999; - background:#dddddd; -} -.x-combo-list-hd { - background-image: url(../images/vista/layout/panel-title-bg.gif); - border-bottom:1px solid #b5bac1; - color:white; -} -.x-resizable-pinned .x-combo-list-inner { - border-bottom:1px solid #aaa; -} -.x-combo-list .x-combo-selected{ - background:#ddd !important; - border:1px solid #aaa; -} \ No newline at end of file diff --git a/www/extras/extjs/resources/images/aero/basic-dialog/aero-close-over.gif b/www/extras/extjs/resources/images/aero/basic-dialog/aero-close-over.gif deleted file mode 100644 index 9ed8d815f..000000000 Binary files a/www/extras/extjs/resources/images/aero/basic-dialog/aero-close-over.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/basic-dialog/aero-close.gif b/www/extras/extjs/resources/images/aero/basic-dialog/aero-close.gif deleted file mode 100644 index c61d29f20..000000000 Binary files a/www/extras/extjs/resources/images/aero/basic-dialog/aero-close.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/basic-dialog/bg-center.gif b/www/extras/extjs/resources/images/aero/basic-dialog/bg-center.gif deleted file mode 100644 index 7de443ff5..000000000 Binary files a/www/extras/extjs/resources/images/aero/basic-dialog/bg-center.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/basic-dialog/bg-left.gif b/www/extras/extjs/resources/images/aero/basic-dialog/bg-left.gif deleted file mode 100644 index 7b9b048c2..000000000 Binary files a/www/extras/extjs/resources/images/aero/basic-dialog/bg-left.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/basic-dialog/bg-right.gif b/www/extras/extjs/resources/images/aero/basic-dialog/bg-right.gif deleted file mode 100644 index c605caeeb..000000000 Binary files a/www/extras/extjs/resources/images/aero/basic-dialog/bg-right.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/basic-dialog/close.gif b/www/extras/extjs/resources/images/aero/basic-dialog/close.gif deleted file mode 100644 index 4278db983..000000000 Binary files a/www/extras/extjs/resources/images/aero/basic-dialog/close.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/basic-dialog/collapse-over.gif b/www/extras/extjs/resources/images/aero/basic-dialog/collapse-over.gif deleted file mode 100644 index ac8dec984..000000000 Binary files a/www/extras/extjs/resources/images/aero/basic-dialog/collapse-over.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/basic-dialog/collapse.gif b/www/extras/extjs/resources/images/aero/basic-dialog/collapse.gif deleted file mode 100644 index d7a3b369b..000000000 Binary files a/www/extras/extjs/resources/images/aero/basic-dialog/collapse.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/basic-dialog/e-handle.gif b/www/extras/extjs/resources/images/aero/basic-dialog/e-handle.gif deleted file mode 100644 index 48877e748..000000000 Binary files a/www/extras/extjs/resources/images/aero/basic-dialog/e-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/basic-dialog/expand-over.gif b/www/extras/extjs/resources/images/aero/basic-dialog/expand-over.gif deleted file mode 100644 index 96a6be88c..000000000 Binary files a/www/extras/extjs/resources/images/aero/basic-dialog/expand-over.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/basic-dialog/expand.gif b/www/extras/extjs/resources/images/aero/basic-dialog/expand.gif deleted file mode 100644 index ebeef99b6..000000000 Binary files a/www/extras/extjs/resources/images/aero/basic-dialog/expand.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/basic-dialog/hd-sprite.gif b/www/extras/extjs/resources/images/aero/basic-dialog/hd-sprite.gif deleted file mode 100644 index adf0d2daf..000000000 Binary files a/www/extras/extjs/resources/images/aero/basic-dialog/hd-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/basic-dialog/s-handle.gif b/www/extras/extjs/resources/images/aero/basic-dialog/s-handle.gif deleted file mode 100644 index c13c9cdc0..000000000 Binary files a/www/extras/extjs/resources/images/aero/basic-dialog/s-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/basic-dialog/se-handle.gif b/www/extras/extjs/resources/images/aero/basic-dialog/se-handle.gif deleted file mode 100644 index 743ab0aff..000000000 Binary files a/www/extras/extjs/resources/images/aero/basic-dialog/se-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/basic-dialog/w-handle.gif b/www/extras/extjs/resources/images/aero/basic-dialog/w-handle.gif deleted file mode 100644 index d59eafc20..000000000 Binary files a/www/extras/extjs/resources/images/aero/basic-dialog/w-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/gradient-bg.gif b/www/extras/extjs/resources/images/aero/gradient-bg.gif deleted file mode 100644 index 8134e4994..000000000 Binary files a/www/extras/extjs/resources/images/aero/gradient-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/grid/grid-blue-split.gif b/www/extras/extjs/resources/images/aero/grid/grid-blue-split.gif deleted file mode 100644 index 5286f58f6..000000000 Binary files a/www/extras/extjs/resources/images/aero/grid/grid-blue-split.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/grid/grid-hrow.gif b/www/extras/extjs/resources/images/aero/grid/grid-hrow.gif deleted file mode 100644 index ac2654983..000000000 Binary files a/www/extras/extjs/resources/images/aero/grid/grid-hrow.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/grid/grid-split.gif b/www/extras/extjs/resources/images/aero/grid/grid-split.gif deleted file mode 100644 index 8f07dc120..000000000 Binary files a/www/extras/extjs/resources/images/aero/grid/grid-split.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/grid/grid-vista-hd.gif b/www/extras/extjs/resources/images/aero/grid/grid-vista-hd.gif deleted file mode 100644 index d0972638e..000000000 Binary files a/www/extras/extjs/resources/images/aero/grid/grid-vista-hd.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/grid/pspbrwse.jbf b/www/extras/extjs/resources/images/aero/grid/pspbrwse.jbf deleted file mode 100644 index cefa4ea34..000000000 Binary files a/www/extras/extjs/resources/images/aero/grid/pspbrwse.jbf and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/grid/sort-col-bg.gif b/www/extras/extjs/resources/images/aero/grid/sort-col-bg.gif deleted file mode 100644 index 76c0bd4de..000000000 Binary files a/www/extras/extjs/resources/images/aero/grid/sort-col-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/grid/sort_asc.gif b/www/extras/extjs/resources/images/aero/grid/sort_asc.gif deleted file mode 100644 index 67a2a4c66..000000000 Binary files a/www/extras/extjs/resources/images/aero/grid/sort_asc.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/grid/sort_desc.gif b/www/extras/extjs/resources/images/aero/grid/sort_desc.gif deleted file mode 100644 index 34db47c3b..000000000 Binary files a/www/extras/extjs/resources/images/aero/grid/sort_desc.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/layout/collapse.gif b/www/extras/extjs/resources/images/aero/layout/collapse.gif deleted file mode 100644 index cbd6e081c..000000000 Binary files a/www/extras/extjs/resources/images/aero/layout/collapse.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/layout/expand.gif b/www/extras/extjs/resources/images/aero/layout/expand.gif deleted file mode 100644 index 8103c0dd7..000000000 Binary files a/www/extras/extjs/resources/images/aero/layout/expand.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/layout/gradient-bg.gif b/www/extras/extjs/resources/images/aero/layout/gradient-bg.gif deleted file mode 100644 index d311e7de6..000000000 Binary files a/www/extras/extjs/resources/images/aero/layout/gradient-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/layout/ns-collapse.gif b/www/extras/extjs/resources/images/aero/layout/ns-collapse.gif deleted file mode 100644 index f2ad235da..000000000 Binary files a/www/extras/extjs/resources/images/aero/layout/ns-collapse.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/layout/ns-expand.gif b/www/extras/extjs/resources/images/aero/layout/ns-expand.gif deleted file mode 100644 index 0817ec66f..000000000 Binary files a/www/extras/extjs/resources/images/aero/layout/ns-expand.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/layout/panel-close.gif b/www/extras/extjs/resources/images/aero/layout/panel-close.gif deleted file mode 100644 index 4e96481a1..000000000 Binary files a/www/extras/extjs/resources/images/aero/layout/panel-close.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/layout/panel-title-bg.gif b/www/extras/extjs/resources/images/aero/layout/panel-title-bg.gif deleted file mode 100644 index 89eb514b5..000000000 Binary files a/www/extras/extjs/resources/images/aero/layout/panel-title-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/layout/panel-title-light-bg.gif b/www/extras/extjs/resources/images/aero/layout/panel-title-light-bg.gif deleted file mode 100644 index f4c44ce09..000000000 Binary files a/www/extras/extjs/resources/images/aero/layout/panel-title-light-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/layout/tab-close-on.gif b/www/extras/extjs/resources/images/aero/layout/tab-close-on.gif deleted file mode 100644 index 556e905b1..000000000 Binary files a/www/extras/extjs/resources/images/aero/layout/tab-close-on.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/layout/tab-close.gif b/www/extras/extjs/resources/images/aero/layout/tab-close.gif deleted file mode 100644 index 0a6f01987..000000000 Binary files a/www/extras/extjs/resources/images/aero/layout/tab-close.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/qtip/bg.gif b/www/extras/extjs/resources/images/aero/qtip/bg.gif deleted file mode 100644 index 5c0e8c92a..000000000 Binary files a/www/extras/extjs/resources/images/aero/qtip/bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/s.gif b/www/extras/extjs/resources/images/aero/s.gif deleted file mode 100644 index 1d11fa9ad..000000000 Binary files a/www/extras/extjs/resources/images/aero/s.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/sizer/e-handle-dark.gif b/www/extras/extjs/resources/images/aero/sizer/e-handle-dark.gif deleted file mode 100644 index eac9662ea..000000000 Binary files a/www/extras/extjs/resources/images/aero/sizer/e-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/sizer/e-handle.gif b/www/extras/extjs/resources/images/aero/sizer/e-handle.gif deleted file mode 100644 index f2c9f5382..000000000 Binary files a/www/extras/extjs/resources/images/aero/sizer/e-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/sizer/ne-handle-dark.gif b/www/extras/extjs/resources/images/aero/sizer/ne-handle-dark.gif deleted file mode 100644 index c9c041c45..000000000 Binary files a/www/extras/extjs/resources/images/aero/sizer/ne-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/sizer/ne-handle.gif b/www/extras/extjs/resources/images/aero/sizer/ne-handle.gif deleted file mode 100644 index 942ae8253..000000000 Binary files a/www/extras/extjs/resources/images/aero/sizer/ne-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/sizer/nw-handle-dark.gif b/www/extras/extjs/resources/images/aero/sizer/nw-handle-dark.gif deleted file mode 100644 index 23fced98b..000000000 Binary files a/www/extras/extjs/resources/images/aero/sizer/nw-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/sizer/nw-handle.gif b/www/extras/extjs/resources/images/aero/sizer/nw-handle.gif deleted file mode 100644 index d39b0c38d..000000000 Binary files a/www/extras/extjs/resources/images/aero/sizer/nw-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/sizer/s-handle-dark.gif b/www/extras/extjs/resources/images/aero/sizer/s-handle-dark.gif deleted file mode 100644 index ddc2e18ce..000000000 Binary files a/www/extras/extjs/resources/images/aero/sizer/s-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/sizer/s-handle.gif b/www/extras/extjs/resources/images/aero/sizer/s-handle.gif deleted file mode 100644 index 827c3330a..000000000 Binary files a/www/extras/extjs/resources/images/aero/sizer/s-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/sizer/se-handle-dark.gif b/www/extras/extjs/resources/images/aero/sizer/se-handle-dark.gif deleted file mode 100644 index 1a678e67f..000000000 Binary files a/www/extras/extjs/resources/images/aero/sizer/se-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/sizer/se-handle.gif b/www/extras/extjs/resources/images/aero/sizer/se-handle.gif deleted file mode 100644 index 69b5a9ed5..000000000 Binary files a/www/extras/extjs/resources/images/aero/sizer/se-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/sizer/sw-handle-dark.gif b/www/extras/extjs/resources/images/aero/sizer/sw-handle-dark.gif deleted file mode 100644 index 937102c6b..000000000 Binary files a/www/extras/extjs/resources/images/aero/sizer/sw-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/sizer/sw-handle.gif b/www/extras/extjs/resources/images/aero/sizer/sw-handle.gif deleted file mode 100644 index b9e2f563a..000000000 Binary files a/www/extras/extjs/resources/images/aero/sizer/sw-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/tabs/tab-btm-inactive-left-bg.gif b/www/extras/extjs/resources/images/aero/tabs/tab-btm-inactive-left-bg.gif deleted file mode 100644 index d057f6ccc..000000000 Binary files a/www/extras/extjs/resources/images/aero/tabs/tab-btm-inactive-left-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/tabs/tab-btm-inactive-right-bg.gif b/www/extras/extjs/resources/images/aero/tabs/tab-btm-inactive-right-bg.gif deleted file mode 100644 index 94deb8802..000000000 Binary files a/www/extras/extjs/resources/images/aero/tabs/tab-btm-inactive-right-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/tabs/tab-btm-left-bg.gif b/www/extras/extjs/resources/images/aero/tabs/tab-btm-left-bg.gif deleted file mode 100644 index ac5492876..000000000 Binary files a/www/extras/extjs/resources/images/aero/tabs/tab-btm-left-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/tabs/tab-btm-right-bg.gif b/www/extras/extjs/resources/images/aero/tabs/tab-btm-right-bg.gif deleted file mode 100644 index 622812a91..000000000 Binary files a/www/extras/extjs/resources/images/aero/tabs/tab-btm-right-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/tabs/tab-sprite.gif b/www/extras/extjs/resources/images/aero/tabs/tab-sprite.gif deleted file mode 100644 index 79211e493..000000000 Binary files a/www/extras/extjs/resources/images/aero/tabs/tab-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/tabs/tab-strip-bg.gif b/www/extras/extjs/resources/images/aero/tabs/tab-strip-bg.gif deleted file mode 100644 index 287d3162f..000000000 Binary files a/www/extras/extjs/resources/images/aero/tabs/tab-strip-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/tabs/tab-strip-bg.png b/www/extras/extjs/resources/images/aero/tabs/tab-strip-bg.png deleted file mode 100644 index fa8ab3f46..000000000 Binary files a/www/extras/extjs/resources/images/aero/tabs/tab-strip-bg.png and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/tabs/tab-strip-btm-bg.gif b/www/extras/extjs/resources/images/aero/tabs/tab-strip-btm-bg.gif deleted file mode 100644 index 5eaba1eaa..000000000 Binary files a/www/extras/extjs/resources/images/aero/tabs/tab-strip-btm-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/toolbar/bg.gif b/www/extras/extjs/resources/images/aero/toolbar/bg.gif deleted file mode 100644 index 03cf427a2..000000000 Binary files a/www/extras/extjs/resources/images/aero/toolbar/bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/aero/toolbar/tb-btn-sprite.gif b/www/extras/extjs/resources/images/aero/toolbar/tb-btn-sprite.gif deleted file mode 100644 index 19bbef3c6..000000000 Binary files a/www/extras/extjs/resources/images/aero/toolbar/tb-btn-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/basic-dialog/btn-arrow.gif b/www/extras/extjs/resources/images/default/basic-dialog/btn-arrow.gif deleted file mode 100644 index f90d5df44..000000000 Binary files a/www/extras/extjs/resources/images/default/basic-dialog/btn-arrow.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/basic-dialog/btn-sprite.gif b/www/extras/extjs/resources/images/default/basic-dialog/btn-sprite.gif deleted file mode 100644 index 8527cbc0c..000000000 Binary files a/www/extras/extjs/resources/images/default/basic-dialog/btn-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/basic-dialog/close.gif b/www/extras/extjs/resources/images/default/basic-dialog/close.gif deleted file mode 100644 index 988ee82ca..000000000 Binary files a/www/extras/extjs/resources/images/default/basic-dialog/close.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/basic-dialog/collapse.gif b/www/extras/extjs/resources/images/default/basic-dialog/collapse.gif deleted file mode 100644 index 13ff5deb7..000000000 Binary files a/www/extras/extjs/resources/images/default/basic-dialog/collapse.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/basic-dialog/e-handle.gif b/www/extras/extjs/resources/images/default/basic-dialog/e-handle.gif deleted file mode 100644 index dde28262e..000000000 Binary files a/www/extras/extjs/resources/images/default/basic-dialog/e-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/basic-dialog/expand.gif b/www/extras/extjs/resources/images/default/basic-dialog/expand.gif deleted file mode 100644 index 4b423f06b..000000000 Binary files a/www/extras/extjs/resources/images/default/basic-dialog/expand.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/basic-dialog/hd-sprite.gif b/www/extras/extjs/resources/images/default/basic-dialog/hd-sprite.gif deleted file mode 100644 index 42da1ea1a..000000000 Binary files a/www/extras/extjs/resources/images/default/basic-dialog/hd-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/basic-dialog/progress.gif b/www/extras/extjs/resources/images/default/basic-dialog/progress.gif deleted file mode 100644 index 0c3a53714..000000000 Binary files a/www/extras/extjs/resources/images/default/basic-dialog/progress.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/basic-dialog/progress2.gif b/www/extras/extjs/resources/images/default/basic-dialog/progress2.gif deleted file mode 100644 index 0b3fcd264..000000000 Binary files a/www/extras/extjs/resources/images/default/basic-dialog/progress2.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/basic-dialog/s-handle.gif b/www/extras/extjs/resources/images/default/basic-dialog/s-handle.gif deleted file mode 100644 index c17db0970..000000000 Binary files a/www/extras/extjs/resources/images/default/basic-dialog/s-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/basic-dialog/se-handle.gif b/www/extras/extjs/resources/images/default/basic-dialog/se-handle.gif deleted file mode 100644 index f730f6043..000000000 Binary files a/www/extras/extjs/resources/images/default/basic-dialog/se-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/box/corners-blue.gif b/www/extras/extjs/resources/images/default/box/corners-blue.gif deleted file mode 100644 index fa419b50a..000000000 Binary files a/www/extras/extjs/resources/images/default/box/corners-blue.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/box/corners.gif b/www/extras/extjs/resources/images/default/box/corners.gif deleted file mode 100644 index 8aa8cae5c..000000000 Binary files a/www/extras/extjs/resources/images/default/box/corners.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/box/l-blue.gif b/www/extras/extjs/resources/images/default/box/l-blue.gif deleted file mode 100644 index 5ed7f0043..000000000 Binary files a/www/extras/extjs/resources/images/default/box/l-blue.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/box/l.gif b/www/extras/extjs/resources/images/default/box/l.gif deleted file mode 100644 index 0160f97fe..000000000 Binary files a/www/extras/extjs/resources/images/default/box/l.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/box/r-blue.gif b/www/extras/extjs/resources/images/default/box/r-blue.gif deleted file mode 100644 index 3ea5cae3b..000000000 Binary files a/www/extras/extjs/resources/images/default/box/r-blue.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/box/r.gif b/www/extras/extjs/resources/images/default/box/r.gif deleted file mode 100644 index 34237f629..000000000 Binary files a/www/extras/extjs/resources/images/default/box/r.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/box/tb-blue.gif b/www/extras/extjs/resources/images/default/box/tb-blue.gif deleted file mode 100644 index 562fecca8..000000000 Binary files a/www/extras/extjs/resources/images/default/box/tb-blue.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/box/tb.gif b/www/extras/extjs/resources/images/default/box/tb.gif deleted file mode 100644 index 435889bff..000000000 Binary files a/www/extras/extjs/resources/images/default/box/tb.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/dd/drop-add.gif b/www/extras/extjs/resources/images/default/dd/drop-add.gif deleted file mode 100644 index b22cd1448..000000000 Binary files a/www/extras/extjs/resources/images/default/dd/drop-add.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/dd/drop-no.gif b/www/extras/extjs/resources/images/default/dd/drop-no.gif deleted file mode 100644 index 08d083355..000000000 Binary files a/www/extras/extjs/resources/images/default/dd/drop-no.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/dd/drop-yes.gif b/www/extras/extjs/resources/images/default/dd/drop-yes.gif deleted file mode 100644 index 8aacb307e..000000000 Binary files a/www/extras/extjs/resources/images/default/dd/drop-yes.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/form/date-trigger.gif b/www/extras/extjs/resources/images/default/form/date-trigger.gif deleted file mode 100644 index a2acb7ff6..000000000 Binary files a/www/extras/extjs/resources/images/default/form/date-trigger.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/form/error-tip-corners.gif b/www/extras/extjs/resources/images/default/form/error-tip-corners.gif deleted file mode 100644 index 6ea4c3838..000000000 Binary files a/www/extras/extjs/resources/images/default/form/error-tip-corners.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/form/exclamation.gif b/www/extras/extjs/resources/images/default/form/exclamation.gif deleted file mode 100644 index fabf616f7..000000000 Binary files a/www/extras/extjs/resources/images/default/form/exclamation.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/form/text-bg.gif b/www/extras/extjs/resources/images/default/form/text-bg.gif deleted file mode 100644 index 4179607cc..000000000 Binary files a/www/extras/extjs/resources/images/default/form/text-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/form/trigger.gif b/www/extras/extjs/resources/images/default/form/trigger.gif deleted file mode 100644 index 3623bf8b9..000000000 Binary files a/www/extras/extjs/resources/images/default/form/trigger.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/gradient-bg.gif b/www/extras/extjs/resources/images/default/gradient-bg.gif deleted file mode 100644 index 8134e4994..000000000 Binary files a/www/extras/extjs/resources/images/default/gradient-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/Thumbs.db b/www/extras/extjs/resources/images/default/grid/Thumbs.db deleted file mode 100644 index 46df4e9df..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/Thumbs.db and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/arrow-left-white.gif b/www/extras/extjs/resources/images/default/grid/arrow-left-white.gif deleted file mode 100644 index 63088f56e..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/arrow-left-white.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/arrow-right-white.gif b/www/extras/extjs/resources/images/default/grid/arrow-right-white.gif deleted file mode 100644 index e9e067890..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/arrow-right-white.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/col-move-bottom.gif b/www/extras/extjs/resources/images/default/grid/col-move-bottom.gif deleted file mode 100644 index cc1e473ec..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/col-move-bottom.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/col-move-top.gif b/www/extras/extjs/resources/images/default/grid/col-move-top.gif deleted file mode 100644 index 58ff32cc8..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/col-move-top.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/dirty.gif b/www/extras/extjs/resources/images/default/grid/dirty.gif deleted file mode 100644 index 4f217a479..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/dirty.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/done.gif b/www/extras/extjs/resources/images/default/grid/done.gif deleted file mode 100644 index a937cb22c..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/done.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/drop-no.gif b/www/extras/extjs/resources/images/default/grid/drop-no.gif deleted file mode 100644 index 31a332bf7..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/drop-no.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/drop-yes.gif b/www/extras/extjs/resources/images/default/grid/drop-yes.gif deleted file mode 100644 index 926010e17..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/drop-yes.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/footer-bg.gif b/www/extras/extjs/resources/images/default/grid/footer-bg.gif deleted file mode 100644 index 126120f71..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/footer-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/grid-blue-hd.gif b/www/extras/extjs/resources/images/default/grid/grid-blue-hd.gif deleted file mode 100644 index 862094e68..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/grid-blue-hd.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/grid-blue-split.gif b/www/extras/extjs/resources/images/default/grid/grid-blue-split.gif deleted file mode 100644 index 5286f58f6..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/grid-blue-split.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/grid-hrow.gif b/www/extras/extjs/resources/images/default/grid/grid-hrow.gif deleted file mode 100644 index 637410420..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/grid-hrow.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/grid-loading.gif b/www/extras/extjs/resources/images/default/grid/grid-loading.gif deleted file mode 100644 index d112c5401..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/grid-loading.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/grid-split.gif b/www/extras/extjs/resources/images/default/grid/grid-split.gif deleted file mode 100644 index c76a16e95..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/grid-split.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/grid-vista-hd.gif b/www/extras/extjs/resources/images/default/grid/grid-vista-hd.gif deleted file mode 100644 index d0972638e..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/grid-vista-hd.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/hd-pop.gif b/www/extras/extjs/resources/images/default/grid/hd-pop.gif deleted file mode 100644 index eb8ba7967..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/hd-pop.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/hmenu-asc.gif b/www/extras/extjs/resources/images/default/grid/hmenu-asc.gif deleted file mode 100644 index 8917e0eee..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/hmenu-asc.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/hmenu-desc.gif b/www/extras/extjs/resources/images/default/grid/hmenu-desc.gif deleted file mode 100644 index f26b7c2fc..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/hmenu-desc.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/hmenu-lock.gif b/www/extras/extjs/resources/images/default/grid/hmenu-lock.gif deleted file mode 100644 index 159612610..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/hmenu-lock.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/hmenu-lock.png b/www/extras/extjs/resources/images/default/grid/hmenu-lock.png deleted file mode 100644 index 8b81e7ff2..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/hmenu-lock.png and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/hmenu-unlock.gif b/www/extras/extjs/resources/images/default/grid/hmenu-unlock.gif deleted file mode 100644 index af59cf92a..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/hmenu-unlock.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/hmenu-unlock.png b/www/extras/extjs/resources/images/default/grid/hmenu-unlock.png deleted file mode 100644 index 9dd5df34b..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/hmenu-unlock.png and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/invalid_line.gif b/www/extras/extjs/resources/images/default/grid/invalid_line.gif deleted file mode 100644 index fb7e0f34d..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/invalid_line.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/loading.gif b/www/extras/extjs/resources/images/default/grid/loading.gif deleted file mode 100644 index e846e1d6c..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/loading.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/mso-hd.gif b/www/extras/extjs/resources/images/default/grid/mso-hd.gif deleted file mode 100644 index 669f3cf08..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/mso-hd.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/nowait.gif b/www/extras/extjs/resources/images/default/grid/nowait.gif deleted file mode 100644 index 4c5862cd5..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/nowait.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/page-first-disabled.gif b/www/extras/extjs/resources/images/default/grid/page-first-disabled.gif deleted file mode 100644 index 1e02c419f..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/page-first-disabled.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/page-first.gif b/www/extras/extjs/resources/images/default/grid/page-first.gif deleted file mode 100644 index d84f41a91..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/page-first.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/page-last-disabled.gif b/www/extras/extjs/resources/images/default/grid/page-last-disabled.gif deleted file mode 100644 index 869706777..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/page-last-disabled.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/page-last.gif b/www/extras/extjs/resources/images/default/grid/page-last.gif deleted file mode 100644 index 3df5c2ba5..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/page-last.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/page-next-disabled.gif b/www/extras/extjs/resources/images/default/grid/page-next-disabled.gif deleted file mode 100644 index 90a7756f6..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/page-next-disabled.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/page-next.gif b/www/extras/extjs/resources/images/default/grid/page-next.gif deleted file mode 100644 index 960163530..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/page-next.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/page-prev-disabled.gif b/www/extras/extjs/resources/images/default/grid/page-prev-disabled.gif deleted file mode 100644 index 37154d624..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/page-prev-disabled.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/page-prev.gif b/www/extras/extjs/resources/images/default/grid/page-prev.gif deleted file mode 100644 index eb70cf8f6..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/page-prev.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/pick-button.gif b/www/extras/extjs/resources/images/default/grid/pick-button.gif deleted file mode 100644 index 6957924a8..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/pick-button.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/refresh.gif b/www/extras/extjs/resources/images/default/grid/refresh.gif deleted file mode 100644 index 254203b52..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/refresh.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/sort_asc.gif b/www/extras/extjs/resources/images/default/grid/sort_asc.gif deleted file mode 100644 index e12e0b6f8..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/sort_asc.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/sort_desc.gif b/www/extras/extjs/resources/images/default/grid/sort_desc.gif deleted file mode 100644 index b9a69c64e..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/sort_desc.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/grid/wait.gif b/www/extras/extjs/resources/images/default/grid/wait.gif deleted file mode 100644 index 471c1a4f9..000000000 Binary files a/www/extras/extjs/resources/images/default/grid/wait.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/layout/collapse.gif b/www/extras/extjs/resources/images/default/layout/collapse.gif deleted file mode 100644 index d87b0a9dd..000000000 Binary files a/www/extras/extjs/resources/images/default/layout/collapse.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/layout/expand.gif b/www/extras/extjs/resources/images/default/layout/expand.gif deleted file mode 100644 index 7b6e1c1ef..000000000 Binary files a/www/extras/extjs/resources/images/default/layout/expand.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/layout/gradient-bg.gif b/www/extras/extjs/resources/images/default/layout/gradient-bg.gif deleted file mode 100644 index 8134e4994..000000000 Binary files a/www/extras/extjs/resources/images/default/layout/gradient-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/layout/ns-collapse.gif b/www/extras/extjs/resources/images/default/layout/ns-collapse.gif deleted file mode 100644 index df2a77e9c..000000000 Binary files a/www/extras/extjs/resources/images/default/layout/ns-collapse.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/layout/ns-expand.gif b/www/extras/extjs/resources/images/default/layout/ns-expand.gif deleted file mode 100644 index 77ab9dad2..000000000 Binary files a/www/extras/extjs/resources/images/default/layout/ns-expand.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/layout/panel-close.gif b/www/extras/extjs/resources/images/default/layout/panel-close.gif deleted file mode 100644 index 2bdd62399..000000000 Binary files a/www/extras/extjs/resources/images/default/layout/panel-close.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/layout/panel-title-bg.gif b/www/extras/extjs/resources/images/default/layout/panel-title-bg.gif deleted file mode 100644 index d1daef54c..000000000 Binary files a/www/extras/extjs/resources/images/default/layout/panel-title-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/layout/panel-title-light-bg.gif b/www/extras/extjs/resources/images/default/layout/panel-title-light-bg.gif deleted file mode 100644 index 8c2c83d82..000000000 Binary files a/www/extras/extjs/resources/images/default/layout/panel-title-light-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/layout/stick.gif b/www/extras/extjs/resources/images/default/layout/stick.gif deleted file mode 100644 index 5a1e8ba19..000000000 Binary files a/www/extras/extjs/resources/images/default/layout/stick.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/layout/stuck.gif b/www/extras/extjs/resources/images/default/layout/stuck.gif deleted file mode 100644 index 0a8de4db9..000000000 Binary files a/www/extras/extjs/resources/images/default/layout/stuck.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/layout/tab-close-on.gif b/www/extras/extjs/resources/images/default/layout/tab-close-on.gif deleted file mode 100644 index eacea39b6..000000000 Binary files a/www/extras/extjs/resources/images/default/layout/tab-close-on.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/layout/tab-close.gif b/www/extras/extjs/resources/images/default/layout/tab-close.gif deleted file mode 100644 index 45db61e60..000000000 Binary files a/www/extras/extjs/resources/images/default/layout/tab-close.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/menu/checked.gif b/www/extras/extjs/resources/images/default/menu/checked.gif deleted file mode 100644 index 091268bfe..000000000 Binary files a/www/extras/extjs/resources/images/default/menu/checked.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/menu/group-checked.gif b/www/extras/extjs/resources/images/default/menu/group-checked.gif deleted file mode 100644 index d30b3e5a8..000000000 Binary files a/www/extras/extjs/resources/images/default/menu/group-checked.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/menu/menu-parent.gif b/www/extras/extjs/resources/images/default/menu/menu-parent.gif deleted file mode 100644 index 1e375622f..000000000 Binary files a/www/extras/extjs/resources/images/default/menu/menu-parent.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/menu/menu.gif b/www/extras/extjs/resources/images/default/menu/menu.gif deleted file mode 100644 index e3d7dfaac..000000000 Binary files a/www/extras/extjs/resources/images/default/menu/menu.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/menu/unchecked.gif b/www/extras/extjs/resources/images/default/menu/unchecked.gif deleted file mode 100644 index 70ba3c49e..000000000 Binary files a/www/extras/extjs/resources/images/default/menu/unchecked.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/qtip/bg.gif b/www/extras/extjs/resources/images/default/qtip/bg.gif deleted file mode 100644 index 43488afdb..000000000 Binary files a/www/extras/extjs/resources/images/default/qtip/bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/qtip/close.gif b/www/extras/extjs/resources/images/default/qtip/close.gif deleted file mode 100644 index 69ab915e4..000000000 Binary files a/www/extras/extjs/resources/images/default/qtip/close.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/qtip/tip-sprite.gif b/www/extras/extjs/resources/images/default/qtip/tip-sprite.gif deleted file mode 100644 index 36a5e1df2..000000000 Binary files a/www/extras/extjs/resources/images/default/qtip/tip-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/s.gif b/www/extras/extjs/resources/images/default/s.gif deleted file mode 100644 index 1d11fa9ad..000000000 Binary files a/www/extras/extjs/resources/images/default/s.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/shadow-c.png b/www/extras/extjs/resources/images/default/shadow-c.png deleted file mode 100644 index ffc42bd29..000000000 Binary files a/www/extras/extjs/resources/images/default/shadow-c.png and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/shadow-lr.png b/www/extras/extjs/resources/images/default/shadow-lr.png deleted file mode 100644 index bb88b6f2b..000000000 Binary files a/www/extras/extjs/resources/images/default/shadow-lr.png and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/shadow.png b/www/extras/extjs/resources/images/default/shadow.png deleted file mode 100644 index 75c0eba3e..000000000 Binary files a/www/extras/extjs/resources/images/default/shadow.png and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/shared/calendar.gif b/www/extras/extjs/resources/images/default/shared/calendar.gif deleted file mode 100644 index 133cf232b..000000000 Binary files a/www/extras/extjs/resources/images/default/shared/calendar.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/shared/left-btn.gif b/www/extras/extjs/resources/images/default/shared/left-btn.gif deleted file mode 100644 index a0ddd9ee8..000000000 Binary files a/www/extras/extjs/resources/images/default/shared/left-btn.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/shared/right-btn.gif b/www/extras/extjs/resources/images/default/shared/right-btn.gif deleted file mode 100644 index dee63e211..000000000 Binary files a/www/extras/extjs/resources/images/default/shared/right-btn.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/shared/warning.gif b/www/extras/extjs/resources/images/default/shared/warning.gif deleted file mode 100644 index 806d4bc09..000000000 Binary files a/www/extras/extjs/resources/images/default/shared/warning.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/sizer/e-handle-dark.gif b/www/extras/extjs/resources/images/default/sizer/e-handle-dark.gif deleted file mode 100644 index b5486c1a9..000000000 Binary files a/www/extras/extjs/resources/images/default/sizer/e-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/sizer/e-handle.gif b/www/extras/extjs/resources/images/default/sizer/e-handle.gif deleted file mode 100644 index 00ba83500..000000000 Binary files a/www/extras/extjs/resources/images/default/sizer/e-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/sizer/ne-handle-dark.gif b/www/extras/extjs/resources/images/default/sizer/ne-handle-dark.gif deleted file mode 100644 index 04e5ecf7d..000000000 Binary files a/www/extras/extjs/resources/images/default/sizer/ne-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/sizer/ne-handle.gif b/www/extras/extjs/resources/images/default/sizer/ne-handle.gif deleted file mode 100644 index 09405c7ac..000000000 Binary files a/www/extras/extjs/resources/images/default/sizer/ne-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/sizer/nw-handle-dark.gif b/www/extras/extjs/resources/images/default/sizer/nw-handle-dark.gif deleted file mode 100644 index 6e49d6967..000000000 Binary files a/www/extras/extjs/resources/images/default/sizer/nw-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/sizer/nw-handle.gif b/www/extras/extjs/resources/images/default/sizer/nw-handle.gif deleted file mode 100644 index 2fcea8a92..000000000 Binary files a/www/extras/extjs/resources/images/default/sizer/nw-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/sizer/s-handle-dark.gif b/www/extras/extjs/resources/images/default/sizer/s-handle-dark.gif deleted file mode 100644 index 4eb5f0fcc..000000000 Binary files a/www/extras/extjs/resources/images/default/sizer/s-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/sizer/s-handle.gif b/www/extras/extjs/resources/images/default/sizer/s-handle.gif deleted file mode 100644 index bf069c243..000000000 Binary files a/www/extras/extjs/resources/images/default/sizer/s-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/sizer/se-handle-dark.gif b/www/extras/extjs/resources/images/default/sizer/se-handle-dark.gif deleted file mode 100644 index c4c108786..000000000 Binary files a/www/extras/extjs/resources/images/default/sizer/se-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/sizer/se-handle.gif b/www/extras/extjs/resources/images/default/sizer/se-handle.gif deleted file mode 100644 index 972055e7b..000000000 Binary files a/www/extras/extjs/resources/images/default/sizer/se-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/sizer/square.gif b/www/extras/extjs/resources/images/default/sizer/square.gif deleted file mode 100644 index 14ce6f725..000000000 Binary files a/www/extras/extjs/resources/images/default/sizer/square.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/sizer/sw-handle-dark.gif b/www/extras/extjs/resources/images/default/sizer/sw-handle-dark.gif deleted file mode 100644 index 77224b0c0..000000000 Binary files a/www/extras/extjs/resources/images/default/sizer/sw-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/sizer/sw-handle.gif b/www/extras/extjs/resources/images/default/sizer/sw-handle.gif deleted file mode 100644 index 3ca0ed96d..000000000 Binary files a/www/extras/extjs/resources/images/default/sizer/sw-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tabs/tab-btm-inactive-left-bg.gif b/www/extras/extjs/resources/images/default/tabs/tab-btm-inactive-left-bg.gif deleted file mode 100644 index 6c1d8f413..000000000 Binary files a/www/extras/extjs/resources/images/default/tabs/tab-btm-inactive-left-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tabs/tab-btm-inactive-right-bg.gif b/www/extras/extjs/resources/images/default/tabs/tab-btm-inactive-right-bg.gif deleted file mode 100644 index 768b0e0b4..000000000 Binary files a/www/extras/extjs/resources/images/default/tabs/tab-btm-inactive-right-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tabs/tab-btm-left-bg.gif b/www/extras/extjs/resources/images/default/tabs/tab-btm-left-bg.gif deleted file mode 100644 index e36ad2015..000000000 Binary files a/www/extras/extjs/resources/images/default/tabs/tab-btm-left-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tabs/tab-btm-right-bg.gif b/www/extras/extjs/resources/images/default/tabs/tab-btm-right-bg.gif deleted file mode 100644 index b538273da..000000000 Binary files a/www/extras/extjs/resources/images/default/tabs/tab-btm-right-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tabs/tab-sprite.gif b/www/extras/extjs/resources/images/default/tabs/tab-sprite.gif deleted file mode 100644 index ac89148b6..000000000 Binary files a/www/extras/extjs/resources/images/default/tabs/tab-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/toolbar/btn-arrow-light.gif b/www/extras/extjs/resources/images/default/toolbar/btn-arrow-light.gif deleted file mode 100644 index b0e24b55e..000000000 Binary files a/www/extras/extjs/resources/images/default/toolbar/btn-arrow-light.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/toolbar/btn-arrow.gif b/www/extras/extjs/resources/images/default/toolbar/btn-arrow.gif deleted file mode 100644 index 8acb4608d..000000000 Binary files a/www/extras/extjs/resources/images/default/toolbar/btn-arrow.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/toolbar/btn-over-bg.gif b/www/extras/extjs/resources/images/default/toolbar/btn-over-bg.gif deleted file mode 100644 index ee2dd9860..000000000 Binary files a/www/extras/extjs/resources/images/default/toolbar/btn-over-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/toolbar/gray-bg.gif b/www/extras/extjs/resources/images/default/toolbar/gray-bg.gif deleted file mode 100644 index bd49438f3..000000000 Binary files a/www/extras/extjs/resources/images/default/toolbar/gray-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/toolbar/tb-bg.gif b/www/extras/extjs/resources/images/default/toolbar/tb-bg.gif deleted file mode 100644 index 4969e4efe..000000000 Binary files a/www/extras/extjs/resources/images/default/toolbar/tb-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/toolbar/tb-btn-sprite.gif b/www/extras/extjs/resources/images/default/toolbar/tb-btn-sprite.gif deleted file mode 100644 index c33b81f5b..000000000 Binary files a/www/extras/extjs/resources/images/default/toolbar/tb-btn-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/drop-add.gif b/www/extras/extjs/resources/images/default/tree/drop-add.gif deleted file mode 100644 index b22cd1448..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/drop-add.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/drop-between.gif b/www/extras/extjs/resources/images/default/tree/drop-between.gif deleted file mode 100644 index 5c6c09d98..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/drop-between.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/drop-no.gif b/www/extras/extjs/resources/images/default/tree/drop-no.gif deleted file mode 100644 index 9d9c6a9ce..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/drop-no.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/drop-over.gif b/www/extras/extjs/resources/images/default/tree/drop-over.gif deleted file mode 100644 index 30d1ca710..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/drop-over.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/drop-under.gif b/www/extras/extjs/resources/images/default/tree/drop-under.gif deleted file mode 100644 index 85f66b1e5..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/drop-under.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/drop-yes.gif b/www/extras/extjs/resources/images/default/tree/drop-yes.gif deleted file mode 100644 index 8aacb307e..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/drop-yes.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/elbow-end-minus-nl.gif b/www/extras/extjs/resources/images/default/tree/elbow-end-minus-nl.gif deleted file mode 100644 index 928779e92..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/elbow-end-minus-nl.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/elbow-end-minus.gif b/www/extras/extjs/resources/images/default/tree/elbow-end-minus.gif deleted file mode 100644 index 9a8d727d7..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/elbow-end-minus.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/elbow-end-plus-nl.gif b/www/extras/extjs/resources/images/default/tree/elbow-end-plus-nl.gif deleted file mode 100644 index 9f7f69880..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/elbow-end-plus-nl.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/elbow-end-plus.gif b/www/extras/extjs/resources/images/default/tree/elbow-end-plus.gif deleted file mode 100644 index 5943a01bc..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/elbow-end-plus.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/elbow-end.gif b/www/extras/extjs/resources/images/default/tree/elbow-end.gif deleted file mode 100644 index f24ddee79..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/elbow-end.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/elbow-line.gif b/www/extras/extjs/resources/images/default/tree/elbow-line.gif deleted file mode 100644 index 75e6da4f8..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/elbow-line.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/elbow-minus-nl.gif b/www/extras/extjs/resources/images/default/tree/elbow-minus-nl.gif deleted file mode 100644 index 928779e92..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/elbow-minus-nl.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/elbow-minus.gif b/www/extras/extjs/resources/images/default/tree/elbow-minus.gif deleted file mode 100644 index 97dcc7110..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/elbow-minus.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/elbow-plus-nl.gif b/www/extras/extjs/resources/images/default/tree/elbow-plus-nl.gif deleted file mode 100644 index 9f7f69880..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/elbow-plus-nl.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/elbow-plus.gif b/www/extras/extjs/resources/images/default/tree/elbow-plus.gif deleted file mode 100644 index 698de4793..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/elbow-plus.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/elbow.gif b/www/extras/extjs/resources/images/default/tree/elbow.gif deleted file mode 100644 index b8f420838..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/elbow.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/folder-open.gif b/www/extras/extjs/resources/images/default/tree/folder-open.gif deleted file mode 100644 index 56ba737bc..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/folder-open.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/folder.gif b/www/extras/extjs/resources/images/default/tree/folder.gif deleted file mode 100644 index 20412f7c1..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/folder.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/leaf.gif b/www/extras/extjs/resources/images/default/tree/leaf.gif deleted file mode 100644 index 445769d3f..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/leaf.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/loading.gif b/www/extras/extjs/resources/images/default/tree/loading.gif deleted file mode 100644 index e846e1d6c..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/loading.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/default/tree/s.gif b/www/extras/extjs/resources/images/default/tree/s.gif deleted file mode 100644 index 1d11fa9ad..000000000 Binary files a/www/extras/extjs/resources/images/default/tree/s.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/basic-dialog/close.gif b/www/extras/extjs/resources/images/gray/basic-dialog/close.gif deleted file mode 100644 index 116234711..000000000 Binary files a/www/extras/extjs/resources/images/gray/basic-dialog/close.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/basic-dialog/collapse.gif b/www/extras/extjs/resources/images/gray/basic-dialog/collapse.gif deleted file mode 100644 index 25eb1b3f6..000000000 Binary files a/www/extras/extjs/resources/images/gray/basic-dialog/collapse.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/basic-dialog/dlg-bg.gif b/www/extras/extjs/resources/images/gray/basic-dialog/dlg-bg.gif deleted file mode 100644 index 1a466633d..000000000 Binary files a/www/extras/extjs/resources/images/gray/basic-dialog/dlg-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/basic-dialog/e-handle.gif b/www/extras/extjs/resources/images/gray/basic-dialog/e-handle.gif deleted file mode 100644 index 48877e748..000000000 Binary files a/www/extras/extjs/resources/images/gray/basic-dialog/e-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/basic-dialog/expand.gif b/www/extras/extjs/resources/images/gray/basic-dialog/expand.gif deleted file mode 100644 index 3f41ed152..000000000 Binary files a/www/extras/extjs/resources/images/gray/basic-dialog/expand.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/basic-dialog/hd-sprite.gif b/www/extras/extjs/resources/images/gray/basic-dialog/hd-sprite.gif deleted file mode 100644 index 2f84f7330..000000000 Binary files a/www/extras/extjs/resources/images/gray/basic-dialog/hd-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/basic-dialog/s-handle.gif b/www/extras/extjs/resources/images/gray/basic-dialog/s-handle.gif deleted file mode 100644 index c13c9cdc0..000000000 Binary files a/www/extras/extjs/resources/images/gray/basic-dialog/s-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/basic-dialog/se-handle.gif b/www/extras/extjs/resources/images/gray/basic-dialog/se-handle.gif deleted file mode 100644 index c4e38a2f4..000000000 Binary files a/www/extras/extjs/resources/images/gray/basic-dialog/se-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/gradient-bg.gif b/www/extras/extjs/resources/images/gray/gradient-bg.gif deleted file mode 100644 index 8134e4994..000000000 Binary files a/www/extras/extjs/resources/images/gray/gradient-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/grid/grid-hrow.gif b/www/extras/extjs/resources/images/gray/grid/grid-hrow.gif deleted file mode 100644 index a263abb03..000000000 Binary files a/www/extras/extjs/resources/images/gray/grid/grid-hrow.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/layout/collapse.gif b/www/extras/extjs/resources/images/gray/layout/collapse.gif deleted file mode 100644 index 6273b43df..000000000 Binary files a/www/extras/extjs/resources/images/gray/layout/collapse.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/layout/expand.gif b/www/extras/extjs/resources/images/gray/layout/expand.gif deleted file mode 100644 index 2bcf242ce..000000000 Binary files a/www/extras/extjs/resources/images/gray/layout/expand.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/layout/gradient-bg.gif b/www/extras/extjs/resources/images/gray/layout/gradient-bg.gif deleted file mode 100644 index d311e7de6..000000000 Binary files a/www/extras/extjs/resources/images/gray/layout/gradient-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/layout/ns-collapse.gif b/www/extras/extjs/resources/images/gray/layout/ns-collapse.gif deleted file mode 100644 index c567131a0..000000000 Binary files a/www/extras/extjs/resources/images/gray/layout/ns-collapse.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/layout/ns-expand.gif b/www/extras/extjs/resources/images/gray/layout/ns-expand.gif deleted file mode 100644 index bf967e748..000000000 Binary files a/www/extras/extjs/resources/images/gray/layout/ns-expand.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/layout/panel-close.gif b/www/extras/extjs/resources/images/gray/layout/panel-close.gif deleted file mode 100644 index 4e96481a1..000000000 Binary files a/www/extras/extjs/resources/images/gray/layout/panel-close.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/layout/panel-title-bg.gif b/www/extras/extjs/resources/images/gray/layout/panel-title-bg.gif deleted file mode 100644 index d1daef54c..000000000 Binary files a/www/extras/extjs/resources/images/gray/layout/panel-title-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/layout/panel-title-light-bg.gif b/www/extras/extjs/resources/images/gray/layout/panel-title-light-bg.gif deleted file mode 100644 index a9187e347..000000000 Binary files a/www/extras/extjs/resources/images/gray/layout/panel-title-light-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/layout/stick.gif b/www/extras/extjs/resources/images/gray/layout/stick.gif deleted file mode 100644 index afcc2bf0a..000000000 Binary files a/www/extras/extjs/resources/images/gray/layout/stick.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/layout/tab-close-on.gif b/www/extras/extjs/resources/images/gray/layout/tab-close-on.gif deleted file mode 100644 index 556e905b1..000000000 Binary files a/www/extras/extjs/resources/images/gray/layout/tab-close-on.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/layout/tab-close.gif b/www/extras/extjs/resources/images/gray/layout/tab-close.gif deleted file mode 100644 index 45db61e60..000000000 Binary files a/www/extras/extjs/resources/images/gray/layout/tab-close.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/menu/checked.gif b/www/extras/extjs/resources/images/gray/menu/checked.gif deleted file mode 100644 index 091268bfe..000000000 Binary files a/www/extras/extjs/resources/images/gray/menu/checked.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/menu/group-checked.gif b/www/extras/extjs/resources/images/gray/menu/group-checked.gif deleted file mode 100644 index d30b3e5a8..000000000 Binary files a/www/extras/extjs/resources/images/gray/menu/group-checked.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/menu/menu-parent.gif b/www/extras/extjs/resources/images/gray/menu/menu-parent.gif deleted file mode 100644 index 7e1378a80..000000000 Binary files a/www/extras/extjs/resources/images/gray/menu/menu-parent.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/menu/menu.gif b/www/extras/extjs/resources/images/gray/menu/menu.gif deleted file mode 100644 index 3e12a1d80..000000000 Binary files a/www/extras/extjs/resources/images/gray/menu/menu.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/menu/unchecked.gif b/www/extras/extjs/resources/images/gray/menu/unchecked.gif deleted file mode 100644 index 70ba3c49e..000000000 Binary files a/www/extras/extjs/resources/images/gray/menu/unchecked.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/qtip/bg.gif b/www/extras/extjs/resources/images/gray/qtip/bg.gif deleted file mode 100644 index 5c0e8c92a..000000000 Binary files a/www/extras/extjs/resources/images/gray/qtip/bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/qtip/tip-sprite.gif b/www/extras/extjs/resources/images/gray/qtip/tip-sprite.gif deleted file mode 100644 index 82cae7571..000000000 Binary files a/www/extras/extjs/resources/images/gray/qtip/tip-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/s.gif b/www/extras/extjs/resources/images/gray/s.gif deleted file mode 100644 index 1d11fa9ad..000000000 Binary files a/www/extras/extjs/resources/images/gray/s.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/sizer/e-handle-dark.gif b/www/extras/extjs/resources/images/gray/sizer/e-handle-dark.gif deleted file mode 100644 index eac9662ea..000000000 Binary files a/www/extras/extjs/resources/images/gray/sizer/e-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/sizer/e-handle.gif b/www/extras/extjs/resources/images/gray/sizer/e-handle.gif deleted file mode 100644 index f2c9f5382..000000000 Binary files a/www/extras/extjs/resources/images/gray/sizer/e-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/sizer/ne-handle-dark.gif b/www/extras/extjs/resources/images/gray/sizer/ne-handle-dark.gif deleted file mode 100644 index c9c041c45..000000000 Binary files a/www/extras/extjs/resources/images/gray/sizer/ne-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/sizer/ne-handle.gif b/www/extras/extjs/resources/images/gray/sizer/ne-handle.gif deleted file mode 100644 index 942ae8253..000000000 Binary files a/www/extras/extjs/resources/images/gray/sizer/ne-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/sizer/nw-handle-dark.gif b/www/extras/extjs/resources/images/gray/sizer/nw-handle-dark.gif deleted file mode 100644 index 23fced98b..000000000 Binary files a/www/extras/extjs/resources/images/gray/sizer/nw-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/sizer/nw-handle.gif b/www/extras/extjs/resources/images/gray/sizer/nw-handle.gif deleted file mode 100644 index d39b0c38d..000000000 Binary files a/www/extras/extjs/resources/images/gray/sizer/nw-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/sizer/s-handle-dark.gif b/www/extras/extjs/resources/images/gray/sizer/s-handle-dark.gif deleted file mode 100644 index ddc2e18ce..000000000 Binary files a/www/extras/extjs/resources/images/gray/sizer/s-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/sizer/s-handle.gif b/www/extras/extjs/resources/images/gray/sizer/s-handle.gif deleted file mode 100644 index 827c3330a..000000000 Binary files a/www/extras/extjs/resources/images/gray/sizer/s-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/sizer/se-handle-dark.gif b/www/extras/extjs/resources/images/gray/sizer/se-handle-dark.gif deleted file mode 100644 index 1a678e67f..000000000 Binary files a/www/extras/extjs/resources/images/gray/sizer/se-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/sizer/se-handle.gif b/www/extras/extjs/resources/images/gray/sizer/se-handle.gif deleted file mode 100644 index 69b5a9ed5..000000000 Binary files a/www/extras/extjs/resources/images/gray/sizer/se-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/sizer/sw-handle-dark.gif b/www/extras/extjs/resources/images/gray/sizer/sw-handle-dark.gif deleted file mode 100644 index 937102c6b..000000000 Binary files a/www/extras/extjs/resources/images/gray/sizer/sw-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/sizer/sw-handle.gif b/www/extras/extjs/resources/images/gray/sizer/sw-handle.gif deleted file mode 100644 index b9e2f563a..000000000 Binary files a/www/extras/extjs/resources/images/gray/sizer/sw-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/tabs/tab-btm-inactive-left-bg.gif b/www/extras/extjs/resources/images/gray/tabs/tab-btm-inactive-left-bg.gif deleted file mode 100644 index c8f7aca92..000000000 Binary files a/www/extras/extjs/resources/images/gray/tabs/tab-btm-inactive-left-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/tabs/tab-btm-inactive-right-bg.gif b/www/extras/extjs/resources/images/gray/tabs/tab-btm-inactive-right-bg.gif deleted file mode 100644 index b3f3dcbc0..000000000 Binary files a/www/extras/extjs/resources/images/gray/tabs/tab-btm-inactive-right-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/tabs/tab-btm-left-bg.gif b/www/extras/extjs/resources/images/gray/tabs/tab-btm-left-bg.gif deleted file mode 100644 index ae47e170c..000000000 Binary files a/www/extras/extjs/resources/images/gray/tabs/tab-btm-left-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/tabs/tab-btm-right-bg.gif b/www/extras/extjs/resources/images/gray/tabs/tab-btm-right-bg.gif deleted file mode 100644 index bd70cbcde..000000000 Binary files a/www/extras/extjs/resources/images/gray/tabs/tab-btm-right-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/tabs/tab-sprite.gif b/www/extras/extjs/resources/images/gray/tabs/tab-sprite.gif deleted file mode 100644 index db15aee56..000000000 Binary files a/www/extras/extjs/resources/images/gray/tabs/tab-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/toolbar/gray-bg.gif b/www/extras/extjs/resources/images/gray/toolbar/gray-bg.gif deleted file mode 100644 index bd49438f3..000000000 Binary files a/www/extras/extjs/resources/images/gray/toolbar/gray-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/gray/toolbar/tb-btn-sprite.gif b/www/extras/extjs/resources/images/gray/toolbar/tb-btn-sprite.gif deleted file mode 100644 index bd56f88ec..000000000 Binary files a/www/extras/extjs/resources/images/gray/toolbar/tb-btn-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/basic-dialog/bg-center.gif b/www/extras/extjs/resources/images/vista/basic-dialog/bg-center.gif deleted file mode 100644 index 7bf4a4b41..000000000 Binary files a/www/extras/extjs/resources/images/vista/basic-dialog/bg-center.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/basic-dialog/bg-left.gif b/www/extras/extjs/resources/images/vista/basic-dialog/bg-left.gif deleted file mode 100644 index 94b1dafc7..000000000 Binary files a/www/extras/extjs/resources/images/vista/basic-dialog/bg-left.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/basic-dialog/bg-right.gif b/www/extras/extjs/resources/images/vista/basic-dialog/bg-right.gif deleted file mode 100644 index 6dadaf683..000000000 Binary files a/www/extras/extjs/resources/images/vista/basic-dialog/bg-right.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/basic-dialog/close.gif b/www/extras/extjs/resources/images/vista/basic-dialog/close.gif deleted file mode 100644 index 4278db983..000000000 Binary files a/www/extras/extjs/resources/images/vista/basic-dialog/close.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/basic-dialog/collapse.gif b/www/extras/extjs/resources/images/vista/basic-dialog/collapse.gif deleted file mode 100644 index b07e297e5..000000000 Binary files a/www/extras/extjs/resources/images/vista/basic-dialog/collapse.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/basic-dialog/dlg-bg.gif b/www/extras/extjs/resources/images/vista/basic-dialog/dlg-bg.gif deleted file mode 100644 index 1a466633d..000000000 Binary files a/www/extras/extjs/resources/images/vista/basic-dialog/dlg-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/basic-dialog/e-handle.gif b/www/extras/extjs/resources/images/vista/basic-dialog/e-handle.gif deleted file mode 100644 index 48877e748..000000000 Binary files a/www/extras/extjs/resources/images/vista/basic-dialog/e-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/basic-dialog/expand.gif b/www/extras/extjs/resources/images/vista/basic-dialog/expand.gif deleted file mode 100644 index 5b4b0d1e9..000000000 Binary files a/www/extras/extjs/resources/images/vista/basic-dialog/expand.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/basic-dialog/hd-sprite.gif b/www/extras/extjs/resources/images/vista/basic-dialog/hd-sprite.gif deleted file mode 100644 index 3c2dd632d..000000000 Binary files a/www/extras/extjs/resources/images/vista/basic-dialog/hd-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/basic-dialog/s-handle.gif b/www/extras/extjs/resources/images/vista/basic-dialog/s-handle.gif deleted file mode 100644 index c13c9cdc0..000000000 Binary files a/www/extras/extjs/resources/images/vista/basic-dialog/s-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/basic-dialog/se-handle.gif b/www/extras/extjs/resources/images/vista/basic-dialog/se-handle.gif deleted file mode 100644 index c4e38a2f4..000000000 Binary files a/www/extras/extjs/resources/images/vista/basic-dialog/se-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/basic-dialog/w-handle.gif b/www/extras/extjs/resources/images/vista/basic-dialog/w-handle.gif deleted file mode 100644 index d59eafc20..000000000 Binary files a/www/extras/extjs/resources/images/vista/basic-dialog/w-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/gradient-bg.gif b/www/extras/extjs/resources/images/vista/gradient-bg.gif deleted file mode 100644 index 8134e4994..000000000 Binary files a/www/extras/extjs/resources/images/vista/gradient-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/grid/grid-split.gif b/www/extras/extjs/resources/images/vista/grid/grid-split.gif deleted file mode 100644 index c76a16e95..000000000 Binary files a/www/extras/extjs/resources/images/vista/grid/grid-split.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/grid/grid-vista-hd.gif b/www/extras/extjs/resources/images/vista/grid/grid-vista-hd.gif deleted file mode 100644 index d0972638e..000000000 Binary files a/www/extras/extjs/resources/images/vista/grid/grid-vista-hd.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/layout/collapse.gif b/www/extras/extjs/resources/images/vista/layout/collapse.gif deleted file mode 100644 index cbd6e081c..000000000 Binary files a/www/extras/extjs/resources/images/vista/layout/collapse.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/layout/expand.gif b/www/extras/extjs/resources/images/vista/layout/expand.gif deleted file mode 100644 index 8103c0dd7..000000000 Binary files a/www/extras/extjs/resources/images/vista/layout/expand.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/layout/gradient-bg.gif b/www/extras/extjs/resources/images/vista/layout/gradient-bg.gif deleted file mode 100644 index d311e7de6..000000000 Binary files a/www/extras/extjs/resources/images/vista/layout/gradient-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/layout/ns-collapse.gif b/www/extras/extjs/resources/images/vista/layout/ns-collapse.gif deleted file mode 100644 index f2ad235da..000000000 Binary files a/www/extras/extjs/resources/images/vista/layout/ns-collapse.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/layout/ns-expand.gif b/www/extras/extjs/resources/images/vista/layout/ns-expand.gif deleted file mode 100644 index 0817ec66f..000000000 Binary files a/www/extras/extjs/resources/images/vista/layout/ns-expand.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/layout/panel-close.gif b/www/extras/extjs/resources/images/vista/layout/panel-close.gif deleted file mode 100644 index 4e96481a1..000000000 Binary files a/www/extras/extjs/resources/images/vista/layout/panel-close.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/layout/panel-title-bg.gif b/www/extras/extjs/resources/images/vista/layout/panel-title-bg.gif deleted file mode 100644 index 681f517a3..000000000 Binary files a/www/extras/extjs/resources/images/vista/layout/panel-title-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/layout/panel-title-light-bg.gif b/www/extras/extjs/resources/images/vista/layout/panel-title-light-bg.gif deleted file mode 100644 index 23d8288b0..000000000 Binary files a/www/extras/extjs/resources/images/vista/layout/panel-title-light-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/layout/stick.gif b/www/extras/extjs/resources/images/vista/layout/stick.gif deleted file mode 100644 index 7db68eec9..000000000 Binary files a/www/extras/extjs/resources/images/vista/layout/stick.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/layout/tab-close-on.gif b/www/extras/extjs/resources/images/vista/layout/tab-close-on.gif deleted file mode 100644 index 556e905b1..000000000 Binary files a/www/extras/extjs/resources/images/vista/layout/tab-close-on.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/layout/tab-close.gif b/www/extras/extjs/resources/images/vista/layout/tab-close.gif deleted file mode 100644 index 0a6f01987..000000000 Binary files a/www/extras/extjs/resources/images/vista/layout/tab-close.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/qtip/bg.gif b/www/extras/extjs/resources/images/vista/qtip/bg.gif deleted file mode 100644 index 5c0e8c92a..000000000 Binary files a/www/extras/extjs/resources/images/vista/qtip/bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/qtip/tip-sprite.gif b/www/extras/extjs/resources/images/vista/qtip/tip-sprite.gif deleted file mode 100644 index a1862865d..000000000 Binary files a/www/extras/extjs/resources/images/vista/qtip/tip-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/s.gif b/www/extras/extjs/resources/images/vista/s.gif deleted file mode 100644 index 1d11fa9ad..000000000 Binary files a/www/extras/extjs/resources/images/vista/s.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/sizer/e-handle-dark.gif b/www/extras/extjs/resources/images/vista/sizer/e-handle-dark.gif deleted file mode 100644 index eac9662ea..000000000 Binary files a/www/extras/extjs/resources/images/vista/sizer/e-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/sizer/e-handle.gif b/www/extras/extjs/resources/images/vista/sizer/e-handle.gif deleted file mode 100644 index f2c9f5382..000000000 Binary files a/www/extras/extjs/resources/images/vista/sizer/e-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/sizer/ne-handle-dark.gif b/www/extras/extjs/resources/images/vista/sizer/ne-handle-dark.gif deleted file mode 100644 index c9c041c45..000000000 Binary files a/www/extras/extjs/resources/images/vista/sizer/ne-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/sizer/ne-handle.gif b/www/extras/extjs/resources/images/vista/sizer/ne-handle.gif deleted file mode 100644 index 942ae8253..000000000 Binary files a/www/extras/extjs/resources/images/vista/sizer/ne-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/sizer/nw-handle-dark.gif b/www/extras/extjs/resources/images/vista/sizer/nw-handle-dark.gif deleted file mode 100644 index 23fced98b..000000000 Binary files a/www/extras/extjs/resources/images/vista/sizer/nw-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/sizer/nw-handle.gif b/www/extras/extjs/resources/images/vista/sizer/nw-handle.gif deleted file mode 100644 index d39b0c38d..000000000 Binary files a/www/extras/extjs/resources/images/vista/sizer/nw-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/sizer/s-handle-dark.gif b/www/extras/extjs/resources/images/vista/sizer/s-handle-dark.gif deleted file mode 100644 index ddc2e18ce..000000000 Binary files a/www/extras/extjs/resources/images/vista/sizer/s-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/sizer/s-handle.gif b/www/extras/extjs/resources/images/vista/sizer/s-handle.gif deleted file mode 100644 index 827c3330a..000000000 Binary files a/www/extras/extjs/resources/images/vista/sizer/s-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/sizer/se-handle-dark.gif b/www/extras/extjs/resources/images/vista/sizer/se-handle-dark.gif deleted file mode 100644 index 1a678e67f..000000000 Binary files a/www/extras/extjs/resources/images/vista/sizer/se-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/sizer/se-handle.gif b/www/extras/extjs/resources/images/vista/sizer/se-handle.gif deleted file mode 100644 index 69b5a9ed5..000000000 Binary files a/www/extras/extjs/resources/images/vista/sizer/se-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/sizer/sw-handle-dark.gif b/www/extras/extjs/resources/images/vista/sizer/sw-handle-dark.gif deleted file mode 100644 index 937102c6b..000000000 Binary files a/www/extras/extjs/resources/images/vista/sizer/sw-handle-dark.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/sizer/sw-handle.gif b/www/extras/extjs/resources/images/vista/sizer/sw-handle.gif deleted file mode 100644 index b9e2f563a..000000000 Binary files a/www/extras/extjs/resources/images/vista/sizer/sw-handle.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/tabs/tab-btm-inactive-left-bg.gif b/www/extras/extjs/resources/images/vista/tabs/tab-btm-inactive-left-bg.gif deleted file mode 100644 index 667beeb32..000000000 Binary files a/www/extras/extjs/resources/images/vista/tabs/tab-btm-inactive-left-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/tabs/tab-btm-inactive-right-bg.gif b/www/extras/extjs/resources/images/vista/tabs/tab-btm-inactive-right-bg.gif deleted file mode 100644 index 6c4e0a45f..000000000 Binary files a/www/extras/extjs/resources/images/vista/tabs/tab-btm-inactive-right-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/tabs/tab-btm-left-bg.gif b/www/extras/extjs/resources/images/vista/tabs/tab-btm-left-bg.gif deleted file mode 100644 index 1d81e54e1..000000000 Binary files a/www/extras/extjs/resources/images/vista/tabs/tab-btm-left-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/tabs/tab-btm-right-bg.gif b/www/extras/extjs/resources/images/vista/tabs/tab-btm-right-bg.gif deleted file mode 100644 index 47d005002..000000000 Binary files a/www/extras/extjs/resources/images/vista/tabs/tab-btm-right-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/tabs/tab-sprite.gif b/www/extras/extjs/resources/images/vista/tabs/tab-sprite.gif deleted file mode 100644 index a16eedb82..000000000 Binary files a/www/extras/extjs/resources/images/vista/tabs/tab-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/toolbar/gray-bg.gif b/www/extras/extjs/resources/images/vista/toolbar/gray-bg.gif deleted file mode 100644 index 9af15c262..000000000 Binary files a/www/extras/extjs/resources/images/vista/toolbar/gray-bg.gif and /dev/null differ diff --git a/www/extras/extjs/resources/images/vista/toolbar/tb-btn-sprite.gif b/www/extras/extjs/resources/images/vista/toolbar/tb-btn-sprite.gif deleted file mode 100644 index f21b0d612..000000000 Binary files a/www/extras/extjs/resources/images/vista/toolbar/tb-btn-sprite.gif and /dev/null differ diff --git a/www/extras/extjs/resources/license.txt b/www/extras/extjs/resources/license.txt deleted file mode 100644 index d026b4fdc..000000000 --- a/www/extras/extjs/resources/license.txt +++ /dev/null @@ -1,25 +0,0 @@ -Ext JS - JavaScript Library -Copyright (c) 2006-2007, Ext JS, LLC -All rights reserved. -licensing@extjs.com - -The CSS and Graphics ("Assets") distributed with Ext are licensed for use ONLY -with their associated Ext JavaScript component ("Component"). Use of the Assets in -any way that does not also include the Component is prohibited without explicit -permission from Ext JS, LLC. Deriving images and CSS from the Assets in an effort -to bypass this license is also prohibited. - --- - -The JavaScript code distributed with Ext (the "Software") is licensed under the -Lesser GNU (LGPL) open source license version 2.1. - -http://www.gnu.org/licenses/lgpl.html - -If you are using this library for commercial purposes, we encourage you to purchase -a commercial license. Please visit http://extjs.com/license for more details. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. \ No newline at end of file diff --git a/www/extras/extjs/resources/raw-images/shadow.psd b/www/extras/extjs/resources/raw-images/shadow.psd deleted file mode 100644 index 0cab09447..000000000 Binary files a/www/extras/extjs/resources/raw-images/shadow.psd and /dev/null differ diff --git a/www/extras/extjs/resources/resources.jsb b/www/extras/extjs/resources/resources.jsb deleted file mode 100644 index 0d7d32517..000000000 --- a/www/extras/extjs/resources/resources.jsb +++ /dev/null @@ -1,522 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/www/extras/extjs/source/adapter/jquery-bridge.js b/www/extras/extjs/source/adapter/jquery-bridge.js deleted file mode 100644 index fc43cb833..000000000 --- a/www/extras/extjs/source/adapter/jquery-bridge.js +++ /dev/null @@ -1,398 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -if(typeof jQuery == "undefined"){ - throw "Unable to load Ext, jQuery not found."; -} - -(function(){ - -Ext.lib.Dom = { - getViewWidth : function(full){ - // jQuery doesn't report full window size on document query, so max both - return full ? Math.max(jQuery(document).width(),jQuery(window).width()) : jQuery(window).width(); - }, - - getViewHeight : function(full){ - // jQuery doesn't report full window size on document query, so max both - return full ? Math.max(jQuery(document).height(),jQuery(window).height()) : jQuery(window).height(); - }, - - isAncestor : function(p, c){ - p = Ext.getDom(p); - c = Ext.getDom(c); - if (!p || !c) {return false;} - - if(p.contains && !Ext.isSafari) { - return p.contains(c); - }else if(p.compareDocumentPosition) { - return !!(p.compareDocumentPosition(c) & 16); - }else{ - var parent = c.parentNode; - while (parent) { - if (parent == p) { - return true; - } - else if (!parent.tagName || parent.tagName.toUpperCase() == "HTML") { - return false; - } - parent = parent.parentNode; - } - return false; - } - }, - - getRegion : function(el){ - return Ext.lib.Region.getRegion(el); - }, - - getY : function(el){ - return jQuery(el).offset({scroll:false}).top; - }, - - getX : function(el){ - return jQuery(el).offset({scroll:false}).left; - }, - - getXY : function(el){ - var o = jQuery(el).offset({scroll:false}); - return [o.left, o.top]; - }, - - setXY : function(el, xy){ - el = Ext.fly(el, '_setXY'); - el.position(); - var pts = el.translatePoints(xy); - if(xy[0] !== false){ - el.dom.style.left = pts.left + "px"; - } - if(xy[1] !== false){ - el.dom.style.top = pts.top + "px"; - } - }, - - setX : function(el, x){ - this.setXY(el, [x, false]); - }, - - setY : function(el, y){ - this.setXY(el, [false, y]); - } -}; - -Ext.lib.Event = { - getPageX : function(e){ - e = e.browserEvent || e; - return e.pageX; - }, - - getPageY : function(e){ - e = e.browserEvent || e; - return e.pageY; - }, - - getXY : function(e){ - e = e.browserEvent || e; - return [e.pageX, e.pageY]; - }, - - getTarget : function(e){ - return e.target; - }, - - // all Ext events will go through event manager which provides scoping - on : function(el, eventName, fn, scope, override){ - jQuery(el).bind(eventName, fn); - }, - - un : function(el, eventName, fn){ - jQuery(el).unbind(eventName, fn); - }, - - purgeElement : function(el){ - jQuery(el).unbind(); - }, - - preventDefault : function(e){ - e = e.browserEvent || e; - e.preventDefault(); - }, - - stopPropagation : function(e){ - e = e.browserEvent || e; - e.stopPropagation(); - }, - - stopEvent : function(e){ - e = e.browserEvent || e; - e.preventDefault(); - e.stopPropagation(); - }, - - onAvailable : function(id, fn, scope){ - var start = new Date(); - var f = function(){ - if(start.getElapsed() > 10000){ - clearInterval(iid); - } - var el = document.getElementById(id); - if(el){ - clearInterval(iid); - fn.call(scope||window, el); - } - }; - var iid = setInterval(f, 50); - }, - - resolveTextNode: function(node) { - if (node && 3 == node.nodeType) { - return node.parentNode; - } else { - return node; - } - }, - - getRelatedTarget: function(ev) { - ev = ev.browserEvent || ev; - var t = ev.relatedTarget; - if (!t) { - if (ev.type == "mouseout") { - t = ev.toElement; - } else if (ev.type == "mouseover") { - t = ev.fromElement; - } - } - - return this.resolveTextNode(t); - } -}; - -Ext.lib.Ajax = function(){ - var createComplete = function(cb){ - return function(xhr, status){ - if((status == 'error' || status == 'timeout') && cb.failure){ - cb.failure.call(cb.scope||window, { - responseText: xhr.responseText, - responseXML : xhr.responseXML, - argument: cb.argument - }); - }else if(cb.success){ - cb.success.call(cb.scope||window, { - responseText: xhr.responseText, - responseXML : xhr.responseXML, - argument: cb.argument - }); - } - }; - }; - return { - request : function(method, uri, cb, data){ - jQuery.ajax({ - type: method, - url: uri, - data: data, - timeout: cb.timeout, - complete: createComplete(cb) - }); - }, - - formRequest : function(form, uri, cb, data, isUpload, sslUri){ - jQuery.ajax({ - type: Ext.getDom(form).method ||'POST', - url: uri, - data: jQuery(form).formSerialize()+(data?'&'+data:''), - timeout: cb.timeout, - complete: createComplete(cb) - }); - }, - - isCallInProgress : function(trans){ - return false; - }, - - abort : function(trans){ - return false; - }, - - serializeForm : function(form){ - return jQuery(form.dom||form).formSerialize(); - } - }; -}(); - -Ext.lib.Anim = function(){ - var createAnim = function(cb, scope){ - var animated = true; - return { - stop : function(skipToLast){ - // do nothing - }, - - isAnimated : function(){ - return animated; - }, - - proxyCallback : function(){ - animated = false; - Ext.callback(cb, scope); - } - }; - }; - return { - scroll : function(el, args, duration, easing, cb, scope){ - // scroll anim not supported so just scroll immediately - var anim = createAnim(cb, scope); - el = Ext.getDom(el); - el.scrollLeft = args.scroll.to[0]; - el.scrollTop = args.scroll.to[1]; - anim.proxyCallback(); - return anim; - }, - - motion : function(el, args, duration, easing, cb, scope){ - return this.run(el, args, duration, easing, cb, scope); - }, - - color : function(el, args, duration, easing, cb, scope){ - // color anim not supported, so execute callback immediately - var anim = createAnim(cb, scope); - anim.proxyCallback(); - return anim; - }, - - run : function(el, args, duration, easing, cb, scope, type){ - var anim = createAnim(cb, scope); - var o = {}; - for(var k in args){ - switch(k){ // jquery doesn't support, so convert - case 'points': - var by, pts, e = Ext.fly(el, '_animrun'); - e.position(); - if(by = args.points.by){ - var xy = e.getXY(); - pts = e.translatePoints([xy[0]+by[0], xy[1]+by[1]]); - }else{ - pts = e.translatePoints(args.points.to); - } - o.left = pts.left; - o.top = pts.top; - if(!parseInt(e.getStyle('left'), 10)){ // auto bug - e.setLeft(0); - } - if(!parseInt(e.getStyle('top'), 10)){ - e.setTop(0); - } - break; - case 'width': - o.width = args.width.to; - break; - case 'height': - o.height = args.height.to; - break; - case 'opacity': - o.opacity = args.opacity.to; - break; - default: - o[k] = args[k].to; - break; - } - } - // TODO: find out about easing plug in? - jQuery(el).animate(o, duration*1000, undefined, anim.proxyCallback); - return anim; - } - }; -}(); - - -Ext.lib.Region = function(t, r, b, l) { - this.top = t; - this[1] = t; - this.right = r; - this.bottom = b; - this.left = l; - this[0] = l; -}; - -Ext.lib.Region.prototype = { - contains : function(region) { - return ( region.left >= this.left && - region.right <= this.right && - region.top >= this.top && - region.bottom <= this.bottom ); - - }, - - getArea : function() { - return ( (this.bottom - this.top) * (this.right - this.left) ); - }, - - intersect : function(region) { - var t = Math.max( this.top, region.top ); - var r = Math.min( this.right, region.right ); - var b = Math.min( this.bottom, region.bottom ); - var l = Math.max( this.left, region.left ); - - if (b >= t && r >= l) { - return new Ext.lib.Region(t, r, b, l); - } else { - return null; - } - }, - union : function(region) { - var t = Math.min( this.top, region.top ); - var r = Math.max( this.right, region.right ); - var b = Math.max( this.bottom, region.bottom ); - var l = Math.min( this.left, region.left ); - - return new Ext.lib.Region(t, r, b, l); - }, - - adjust : function(t, l, b, r){ - this.top += t; - this.left += l; - this.right += r; - this.bottom += b; - return this; - } -}; - -Ext.lib.Region.getRegion = function(el) { - var p = Ext.lib.Dom.getXY(el); - - var t = p[1]; - var r = p[0] + el.offsetWidth; - var b = p[1] + el.offsetHeight; - var l = p[0]; - - return new Ext.lib.Region(t, r, b, l); -}; - -Ext.lib.Point = function(x, y) { - if (x instanceof Array) { - y = x[1]; - x = x[0]; - } - this.x = this.right = this.left = this[0] = x; - this.y = this.top = this.bottom = this[1] = y; -}; - -Ext.lib.Point.prototype = new Ext.lib.Region(); - -// prevent IE leaks -if(Ext.isIE){ - jQuery(window).unload(function(){ - var p = Function.prototype; - delete p.createSequence; - delete p.defer; - delete p.createDelegate; - delete p.createCallback; - delete p.createInterceptor; - }); -} -})(); \ No newline at end of file diff --git a/www/extras/extjs/source/adapter/prototype-bridge.js b/www/extras/extjs/source/adapter/prototype-bridge.js deleted file mode 100644 index 744772bae..000000000 --- a/www/extras/extjs/source/adapter/prototype-bridge.js +++ /dev/null @@ -1,506 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -(function(){ - -var libFlyweight; - -Ext.lib.Dom = { - getViewWidth : function(full){ - return full ? this.getDocumentWidth() : this.getViewportWidth(); - }, - - getViewHeight : function(full){ - return full ? this.getDocumentHeight() : this.getViewportHeight(); - }, - - getDocumentHeight: function() { // missing from prototype? - var scrollHeight = (document.compatMode != "CSS1Compat") ? document.body.scrollHeight : document.documentElement.scrollHeight; - return Math.max(scrollHeight, this.getViewportHeight()); - }, - - getDocumentWidth: function() { // missing from prototype? - var scrollWidth = (document.compatMode != "CSS1Compat") ? document.body.scrollWidth : document.documentElement.scrollWidth; - return Math.max(scrollWidth, this.getViewportWidth()); - }, - - getViewportHeight: function() { // missing from prototype? - var height = self.innerHeight; - var mode = document.compatMode; - - if ( (mode || Ext.isIE) && !Ext.isOpera ) { - height = (mode == "CSS1Compat") ? - document.documentElement.clientHeight : // Standards - document.body.clientHeight; // Quirks - } - - return height; - }, - - getViewportWidth: function() { // missing from prototype? - var width = self.innerWidth; // Safari - var mode = document.compatMode; - - if (mode || Ext.isIE) { // IE, Gecko, Opera - width = (mode == "CSS1Compat") ? - document.documentElement.clientWidth : // Standards - document.body.clientWidth; // Quirks - } - return width; - }, - - isAncestor : function(p, c){ // missing from prototype? - p = Ext.getDom(p); - c = Ext.getDom(c); - if (!p || !c) {return false;} - - if(p.contains && !Ext.isSafari) { - return p.contains(c); - }else if(p.compareDocumentPosition) { - return !!(p.compareDocumentPosition(c) & 16); - }else{ - var parent = c.parentNode; - while (parent) { - if (parent == p) { - return true; - } - else if (!parent.tagName || parent.tagName.toUpperCase() == "HTML") { - return false; - } - parent = parent.parentNode; - } - return false; - } - }, - - getRegion : function(el){ - return Ext.lib.Region.getRegion(el); - }, - - getY : function(el){ - return this.getXY(el)[1]; - }, - - getX : function(el){ - return this.getXY(el)[0]; - }, - - getXY : function(el){ // this initially used Position.cumulativeOffset but it is not accurate enough - var p, pe, b, scroll, bd = document.body; - el = Ext.getDom(el); - - if(el.getBoundingClientRect){ // IE - b = el.getBoundingClientRect(); - scroll = fly(document).getScroll(); - return [b.left + scroll.left, b.top + scroll.top]; - } else{ - var x = el.offsetLeft, y = el.offsetTop; - p = el.offsetParent; - - // ** flag if a parent is positioned for Safari - var hasAbsolute = false; - - if(p != el){ - while(p){ - x += p.offsetLeft; - y += p.offsetTop; - - // ** flag Safari abs position bug - only check if needed - if(Ext.isSafari && !hasAbsolute && fly(p).getStyle("position") == "absolute"){ - hasAbsolute = true; - } - - // ** Fix gecko borders measurements - // Credit jQuery dimensions plugin for the workaround - if(Ext.isGecko){ - pe = fly(p); - var bt = parseInt(pe.getStyle("borderTopWidth"), 10) || 0; - var bl = parseInt(pe.getStyle("borderLeftWidth"), 10) || 0; - - // add borders to offset - x += bl; - y += bt; - - // Mozilla removes the border if the parent has overflow property other than visible - if(p != el && pe.getStyle('overflow') != 'visible'){ - x += bl; - y += bt; - } - } - p = p.offsetParent; - } - } - // ** safari doubles in some cases, use flag from offsetParent's as well - if(Ext.isSafari && (hasAbsolute || fly(el).getStyle("position") == "absolute")){ - x -= bd.offsetLeft; - y -= bd.offsetTop; - } - } - - p = el.parentNode; - - while(p && p != bd){ - // ** opera TR has bad scroll values, so filter them jvs - if(!Ext.isOpera || (Ext.isOpera && p.tagName != 'TR' && fly(p).getStyle("display") != "inline")){ - x -= p.scrollLeft; - y -= p.scrollTop; - } - p = p.parentNode; - } - return [x, y]; - }, - - setXY : function(el, xy){ // this initially used Position.cumulativeOffset but it is not accurate enough - el = Ext.fly(el, '_setXY'); - el.position(); - var pts = el.translatePoints(xy); - if(xy[0] !== false){ - el.dom.style.left = pts.left + "px"; - } - if(xy[1] !== false){ - el.dom.style.top = pts.top + "px"; - } - }, - - setX : function(el, x){ - this.setXY(el, [x, false]); - }, - - setY : function(el, y){ - this.setXY(el, [false, y]); - } -}; - -Ext.lib.Event = { - getPageX : function(e){ - return Event.pointerX(e.browserEvent || e); - }, - - getPageY : function(e){ - return Event.pointerY(e.browserEvent || e); - }, - - getXY : function(e){ - e = e.browserEvent || e; - return [Event.pointerX(e), Event.pointerY(e)]; - }, - - getTarget : function(e){ - return Event.element(e.browserEvent || e); - }, - - resolveTextNode: function(node) { - if (node && 3 == node.nodeType) { - return node.parentNode; - } else { - return node; - } - }, - - getRelatedTarget: function(ev) { // missing from prototype? - ev = ev.browserEvent || ev; - var t = ev.relatedTarget; - if (!t) { - if (ev.type == "mouseout") { - t = ev.toElement; - } else if (ev.type == "mouseover") { - t = ev.fromElement; - } - } - - return this.resolveTextNode(t); - }, - - on : function(el, eventName, fn){ - Event.observe(el, eventName, fn, false); - }, - - un : function(el, eventName, fn){ - Event.stopObserving(el, eventName, fn, false); - }, - - purgeElement : function(el){ - // no equiv? - }, - - preventDefault : function(e){ // missing from prototype? - e = e.browserEvent || e; - if(e.preventDefault) { - e.preventDefault(); - } else { - e.returnValue = false; - } - }, - - stopPropagation : function(e){ // missing from prototype? - e = e.browserEvent || e; - if(e.stopPropagation) { - e.stopPropagation(); - } else { - e.cancelBubble = true; - } - }, - - stopEvent : function(e){ - Event.stop(e.browserEvent || e); - }, - - onAvailable : function(el, fn, scope, override){ // no equiv - var start = new Date(), iid; - var f = function(){ - if(start.getElapsed() > 10000){ - clearInterval(iid); - } - var el = document.getElementById(id); - if(el){ - clearInterval(iid); - fn.call(scope||window, el); - } - }; - iid = setInterval(f, 50); - } -}; - -Ext.lib.Ajax = function(){ - var createSuccess = function(cb){ - return cb.success ? function(xhr){ - cb.success.call(cb.scope||window, { - responseText: xhr.responseText, - responseXML : xhr.responseXML, - argument: cb.argument - }); - } : Ext.emptyFn; - }; - var createFailure = function(cb){ - return cb.failure ? function(xhr){ - cb.failure.call(cb.scope||window, { - responseText: xhr.responseText, - responseXML : xhr.responseXML, - argument: cb.argument - }); - } : Ext.emptyFn; - }; - return { - request : function(method, uri, cb, data){ - new Ajax.Request(uri, { - method: method, - parameters: data || '', - timeout: cb.timeout, - onSuccess: createSuccess(cb), - onFailure: createFailure(cb) - }); - }, - - formRequest : function(form, uri, cb, data, isUpload, sslUri){ - new Ajax.Request(uri, { - method: Ext.getDom(form).method ||'POST', - parameters: Form.serialize(form)+(data?'&'+data:''), - timeout: cb.timeout, - onSuccess: createSuccess(cb), - onFailure: createFailure(cb) - }); - }, - - isCallInProgress : function(trans){ - return false; - }, - - abort : function(trans){ - return false; - }, - - serializeForm : function(form){ - return Form.serialize(form.dom||form, true); - } - }; -}(); - - -Ext.lib.Anim = function(){ - - var easings = { - easeOut: function(pos) { - return 1-Math.pow(1-pos,2); - }, - easeIn: function(pos) { - return 1-Math.pow(1-pos,2); - } - }; - var createAnim = function(cb, scope){ - return { - stop : function(skipToLast){ - this.effect.cancel(); - }, - - isAnimated : function(){ - return this.effect.state == 'running'; - }, - - proxyCallback : function(){ - Ext.callback(cb, scope); - } - }; - }; - return { - scroll : function(el, args, duration, easing, cb, scope){ - // not supported so scroll immediately? - var anim = createAnim(cb, scope); - el = Ext.getDom(el); - el.scrollLeft = args.to[0]; - el.scrollTop = args.to[1]; - anim.proxyCallback(); - return anim; - }, - - motion : function(el, args, duration, easing, cb, scope){ - return this.run(el, args, duration, easing, cb, scope); - }, - - color : function(el, args, duration, easing, cb, scope){ - return this.run(el, args, duration, easing, cb, scope); - }, - - run : function(el, args, duration, easing, cb, scope, type){ - var o = {}; - for(var k in args){ - switch(k){ // scriptaculous doesn't support, so convert these - case 'points': - var by, pts, e = Ext.fly(el, '_animrun'); - e.position(); - if(by = args.points.by){ - var xy = e.getXY(); - pts = e.translatePoints([xy[0]+by[0], xy[1]+by[1]]); - }else{ - pts = e.translatePoints(args.points.to); - } - o.left = pts.left+'px'; - o.top = pts.top+'px'; - break; - case 'width': - o.width = args.width.to+'px'; - break; - case 'height': - o.height = args.height.to+'px'; - break; - case 'opacity': - o.opacity = String(args.opacity.to); - break; - default: - o[k] = String(args[k].to); - break; - } - } - var anim = createAnim(cb, scope); - anim.effect = new Effect.Morph(Ext.id(el), { - duration: duration, - afterFinish: anim.proxyCallback, - transition: easings[easing] || Effect.Transitions.linear, - style: o - }); - return anim; - } - }; -}(); - - -// all lib flyweight calls use their own flyweight to prevent collisions with developer flyweights -function fly(el){ - if(!libFlyweight){ - libFlyweight = new Ext.Element.Flyweight(); - } - libFlyweight.dom = el; - return libFlyweight; -} - -Ext.lib.Region = function(t, r, b, l) { - this.top = t; - this[1] = t; - this.right = r; - this.bottom = b; - this.left = l; - this[0] = l; -}; - -Ext.lib.Region.prototype = { - contains : function(region) { - return ( region.left >= this.left && - region.right <= this.right && - region.top >= this.top && - region.bottom <= this.bottom ); - - }, - - getArea : function() { - return ( (this.bottom - this.top) * (this.right - this.left) ); - }, - - intersect : function(region) { - var t = Math.max( this.top, region.top ); - var r = Math.min( this.right, region.right ); - var b = Math.min( this.bottom, region.bottom ); - var l = Math.max( this.left, region.left ); - - if (b >= t && r >= l) { - return new Ext.lib.Region(t, r, b, l); - } else { - return null; - } - }, - union : function(region) { - var t = Math.min( this.top, region.top ); - var r = Math.max( this.right, region.right ); - var b = Math.max( this.bottom, region.bottom ); - var l = Math.min( this.left, region.left ); - - return new Ext.lib.Region(t, r, b, l); - }, - - adjust : function(t, l, b, r){ - this.top += t; - this.left += l; - this.right += r; - this.bottom += b; - return this; - } -}; - -Ext.lib.Region.getRegion = function(el) { - var p = Ext.lib.Dom.getXY(el); - - var t = p[1]; - var r = p[0] + el.offsetWidth; - var b = p[1] + el.offsetHeight; - var l = p[0]; - - return new Ext.lib.Region(t, r, b, l); -}; - -Ext.lib.Point = function(x, y) { - if (x instanceof Array) { - y = x[1]; - x = x[0]; - } - this.x = this.right = this.left = this[0] = x; - this.y = this.top = this.bottom = this[1] = y; -}; - -Ext.lib.Point.prototype = new Ext.lib.Region(); - - -// prevent IE leaks -if(Ext.isIE){ - Event.observe(window, "unload", function(){ - var p = Function.prototype; - delete p.createSequence; - delete p.defer; - delete p.createDelegate; - delete p.createCallback; - delete p.createInterceptor; - }); -} -})(); \ No newline at end of file diff --git a/www/extras/extjs/source/adapter/yui-bridge.js b/www/extras/extjs/source/adapter/yui-bridge.js deleted file mode 100644 index 30ea8013b..000000000 --- a/www/extras/extjs/source/adapter/yui-bridge.js +++ /dev/null @@ -1,304 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -if(typeof YAHOO == "undefined"){ - throw "Unable to load Ext, core YUI utilities (yahoo, dom, event) not found."; -} - -(function(){ -var E = YAHOO.util.Event; -var D = YAHOO.util.Dom; -var CN = YAHOO.util.Connect; - -var ES = YAHOO.util.Easing; -var A = YAHOO.util.Anim; -var libFlyweight; - -Ext.lib.Dom = { - getViewWidth : function(full){ - return full ? D.getDocumentWidth() : D.getViewportWidth(); - }, - - getViewHeight : function(full){ - return full ? D.getDocumentHeight() : D.getViewportHeight(); - }, - - isAncestor : function(haystack, needle){ - return D.isAncestor(haystack, needle); - }, - - getRegion : function(el){ - return D.getRegion(el); - }, - - getY : function(el){ - return this.getXY(el)[1]; - }, - - getX : function(el){ - return this.getXY(el)[0]; - }, - - // original version based on YahooUI getXY - // this version fixes several issues in Safari and FF - // and boosts performance by removing the batch overhead, repetitive dom lookups and array index calls - getXY : function(el){ - var p, pe, b, scroll, bd = document.body; - el = Ext.getDom(el); - - if(el.getBoundingClientRect){ // IE - b = el.getBoundingClientRect(); - scroll = fly(document).getScroll(); - return [b.left + scroll.left, b.top + scroll.top]; - } else{ - var x = el.offsetLeft, y = el.offsetTop; - p = el.offsetParent; - - // ** flag if a parent is positioned for Safari - var hasAbsolute = false; - - if(p != el){ - while(p){ - x += p.offsetLeft; - y += p.offsetTop; - - // ** flag Safari abs position bug - only check if needed - if(Ext.isSafari && !hasAbsolute && fly(p).getStyle("position") == "absolute"){ - hasAbsolute = true; - } - - // ** Fix gecko borders measurements - // Credit jQuery dimensions plugin for the workaround - if(Ext.isGecko){ - pe = fly(p); - var bt = parseInt(pe.getStyle("borderTopWidth"), 10) || 0; - var bl = parseInt(pe.getStyle("borderLeftWidth"), 10) || 0; - - // add borders to offset - x += bl; - y += bt; - - // Mozilla removes the border if the parent has overflow property other than visible - if(p != el && pe.getStyle('overflow') != 'visible'){ - x += bl; - y += bt; - } - } - p = p.offsetParent; - } - } - // ** safari doubles in some cases, use flag from offsetParent's as well - if(Ext.isSafari && (hasAbsolute || fly(el).getStyle("position") == "absolute")){ - x -= bd.offsetLeft; - y -= bd.offsetTop; - } - } - - p = el.parentNode; - - while(p && p != bd){ - // ** opera TR has bad scroll values, so filter them jvs - if(!Ext.isOpera || (Ext.isOpera && p.tagName != 'TR' && fly(p).getStyle("display") != "inline")){ - x -= p.scrollLeft; - y -= p.scrollTop; - } - p = p.parentNode; - } - return [x, y]; - }, - - setXY : function(el, xy){ - el = Ext.fly(el, '_setXY'); - el.position(); - var pts = el.translatePoints(xy); - if(xy[0] !== false){ - el.dom.style.left = pts.left + "px"; - } - if(xy[1] !== false){ - el.dom.style.top = pts.top + "px"; - } - }, - - setX : function(el, x){ - this.setXY(el, [x, false]); - }, - - setY : function(el, y){ - this.setXY(el, [false, y]); - } -}; - -Ext.lib.Event = { - getPageX : function(e){ - return E.getPageX(e.browserEvent || e); - }, - - getPageY : function(e){ - return E.getPageY(e.browserEvent || e); - }, - - getXY : function(e){ - return E.getXY(e.browserEvent || e); - }, - - getTarget : function(e){ - return E.getTarget(e.browserEvent || e); - }, - - getRelatedTarget : function(e){ - return E.getRelatedTarget(e.browserEvent || e); - }, - - on : function(el, eventName, fn, scope, override){ - E.on(el, eventName, fn, scope, override); - }, - - un : function(el, eventName, fn){ - E.removeListener(el, eventName, fn); - }, - - purgeElement : function(el){ - E.purgeElement(el); - }, - - preventDefault : function(e){ - E.preventDefault(e.browserEvent || e); - }, - - stopPropagation : function(e){ - E.stopPropagation(e.browserEvent || e); - }, - - stopEvent : function(e){ - E.stopEvent(e.browserEvent || e); - }, - - onAvailable : function(el, fn, scope, override){ - return E.onAvailable(el, fn, scope, override); - } -}; - -Ext.lib.Ajax = { - request : function(method, uri, cb, data){ - return CN.asyncRequest(method, uri, cb, data); - }, - - formRequest : function(form, uri, cb, data, isUpload, sslUri){ - CN.setForm(form, isUpload, sslUri); - return CN.asyncRequest(Ext.getDom(form).method ||'POST', uri, cb, data); - }, - - isCallInProgress : function(trans){ - return CN.isCallInProgress(trans); - }, - - abort : function(trans){ - return CN.abort(trans); - }, - - serializeForm : function(form){ - var d = CN.setForm(form.dom || form); - CN.resetFormState(); - return d; - } -}; - -Ext.lib.Region = YAHOO.util.Region; -Ext.lib.Point = YAHOO.util.Point; - - -Ext.lib.Anim = { - scroll : function(el, args, duration, easing, cb, scope){ - this.run(el, args, duration, easing, cb, scope, YAHOO.util.Scroll); - }, - - motion : function(el, args, duration, easing, cb, scope){ - this.run(el, args, duration, easing, cb, scope, YAHOO.util.Motion); - }, - - color : function(el, args, duration, easing, cb, scope){ - this.run(el, args, duration, easing, cb, scope, YAHOO.util.ColorAnim); - }, - - run : function(el, args, duration, easing, cb, scope, type){ - type = type || YAHOO.util.Anim; - if(typeof easing == "string"){ - easing = YAHOO.util.Easing[easing]; - } - var anim = new type(el, args, duration, easing); - anim.animateX(function(){ - Ext.callback(cb, scope); - }); - return anim; - } -}; - -// all lib flyweight calls use their own flyweight to prevent collisions with developer flyweights -function fly(el){ - if(!libFlyweight){ - libFlyweight = new Ext.Element.Flyweight(); - } - libFlyweight.dom = el; - return libFlyweight; -} - -// prevent IE leaks -if(Ext.isIE){ - YAHOO.util.Event.on(window, "unload", function(){ - var p = Function.prototype; - delete p.createSequence; - delete p.defer; - delete p.createDelegate; - delete p.createCallback; - delete p.createInterceptor; - }); -} - -// various overrides - -// add ability for callbacks with animations -if(YAHOO.util.Anim){ - YAHOO.util.Anim.prototype.animateX = function(callback, scope){ - var f = function(){ - this.onComplete.unsubscribe(f); - if(typeof callback == "function"){ - callback.call(scope || this, this); - } - }; - this.onComplete.subscribe(f, this, true); - this.animate(); - }; -} - -if(YAHOO.util.DragDrop && Ext.dd.DragDrop){ - YAHOO.util.DragDrop.defaultPadding = Ext.dd.DragDrop.defaultPadding; - YAHOO.util.DragDrop.constrainTo = Ext.dd.DragDrop.constrainTo; -} - -YAHOO.util.Dom.getXY = function(el) { - var f = function(el) { - return Ext.lib.Dom.getXY(el); - }; - return YAHOO.util.Dom.batch(el, f, YAHOO.util.Dom, true); -}; - - -// workaround for Safari anim duration speed problems -if(YAHOO.util.AnimMgr){ - YAHOO.util.AnimMgr.fps = 1000; -} - -YAHOO.util.Region.prototype.adjust = function(t, l, b, r){ - this.top += t; - this.left += l; - this.right += r; - this.bottom += b; - return this; -}; - -})(); \ No newline at end of file diff --git a/www/extras/extjs/source/core/CompositeElement.js b/www/extras/extjs/source/core/CompositeElement.js deleted file mode 100644 index cf0e28e39..000000000 --- a/www/extras/extjs/source/core/CompositeElement.js +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.CompositeElement - * Standard composite class. Creates a Ext.Element for every element in the collection. - *

        - * NOTE: Although they are not listed, this class supports all of the set/update methods of Ext.Element. All Ext.Element - * actions will be performed on all the elements in this collection. - *

        - * All methods return this and can be chained. -
        
        - var els = getEls("#some-el div.some-class");
        - // or
        - var els = Ext.Element.select("#some-el div.some-class");
        - els.setWidth(100); // all elements become 100 width
        - els.hide(true); // all elements fade out and hide
        - // or
        - els.setWidth(100).hide(true);
        - 
        - */ -Ext.CompositeElement = function(els){ - this.elements = []; - this.addElements(els); -}; -Ext.CompositeElement.prototype = { - isComposite: true, - addElements : function(els){ - if(!els) return this; - if(typeof els == "string"){ - els = Ext.Element.selectorFunction(els); - } - var yels = this.elements; - var index = yels.length-1; - for(var i = 0, len = els.length; i < len; i++) { - yels[++index] = Ext.get(els[i], true); - } - return this; - }, - invoke : function(fn, args){ - var els = this.elements; - for(var i = 0, len = els.length; i < len; i++) { - Ext.Element.prototype[fn].apply(els[i], args); - } - return this; - }, - /** - * Adds elements to this composite. - * @param {String/Array} els A string CSS selector, an array of elements or an element - * @return {CompositeElement} this - */ - add : function(els){ - if(typeof els == "string"){ - this.addElements(Ext.Element.selectorFunction(els)); - }else if(els.length !== undefined){ - this.addElements(els); - }else{ - this.addElements([els]); - } - return this; - }, - /** - * Calls the passed function passing (el, this, index) for each element in this composite. - * @param {Function} fn The function to call - * @param {Object} scope (optional) The this object (defaults to the element) - * @return {CompositeElement} this - */ - each : function(fn, scope){ - var els = this.elements; - for(var i = 0, len = els.length; i < len; i++){ - if(fn.call(scope || els[i], els[i], this, i) === false) { - break; - } - } - return this; - }, - - /** - * Returns the Element object at the specified index - * @param {Number} index - * @return {Ext.Element} - */ - item : function(index){ - return this.elements[index]; - } -}; -(function(){ -Ext.CompositeElement.createCall = function(proto, fnName){ - if(!proto[fnName]){ - proto[fnName] = function(){ - return this.invoke(fnName, arguments); - }; - } -}; -for(var fnName in Ext.Element.prototype){ - if(typeof Ext.Element.prototype[fnName] == "function"){ - Ext.CompositeElement.createCall(Ext.CompositeElement.prototype, fnName); - } -}; -})(); - -/** - * @class Ext.CompositeElementLite - * @extends Ext.CompositeElement - * Flyweight composite class. Reuses the same Ext.Element for element operations. - *

        - * NOTE: Although they are not listed, this class supports all of the set/update methods of Ext.Element. All Ext.Element - * actions will be performed on all the elements in this collection. - */ -Ext.CompositeElementLite = function(els){ - Ext.CompositeElementLite.superclass.constructor.call(this, els); - var flyEl = function(){}; - flyEl.prototype = Ext.Element.prototype; - this.el = new Ext.Element.Flyweight(); -}; -Ext.extend(Ext.CompositeElementLite, Ext.CompositeElement, { - addElements : function(els){ - if(els){ - if(els instanceof Array){ - this.elements = this.elements.concat(els); - }else{ - var yels = this.elements; - var index = yels.length-1; - for(var i = 0, len = els.length; i < len; i++) { - yels[++index] = els[i]; - } - } - } - return this; - }, - invoke : function(fn, args){ - var els = this.elements; - var el = this.el; - for(var i = 0, len = els.length; i < len; i++) { - el.dom = els[i]; - Ext.Element.prototype[fn].apply(el, args); - } - return this; - }, - /** - * Returns a flyweight Element of the dom element object at the specified index - * @param {Number} index - * @return {Ext.Element} - */ - item : function(index){ - this.el.dom = this.elements[index]; - return this.el; - }, - - // fixes scope with flyweight - addListener : function(eventName, handler, scope, opt){ - var els = this.elements; - for(var i = 0, len = els.length; i < len; i++) { - Ext.EventManager.on(els[i], eventName, handler, scope || els[i], opt); - } - return this; - }, - - /** - * Calls the passed function passing (el, this, index) for each element in this composite. The element - * passed is the flyweight (shared) Ext.Element instance, so if you require a - * a reference to the dom node, use el.dom. - * @param {Function} fn The function to call - * @param {Object} scope (optional) The this object (defaults to the element) - * @return {CompositeElement} this - */ - each : function(fn, scope){ - var els = this.elements; - var el = this.el; - for(var i = 0, len = els.length; i < len; i++){ - el.dom = els[i]; - if(fn.call(scope || el, el, this, i) === false){ - break; - } - } - return this; - } -}); -Ext.CompositeElementLite.prototype.on = Ext.CompositeElementLite.prototype.addListener; -if(Ext.DomQuery){ - Ext.Element.selectorFunction = Ext.DomQuery.select; -} - -Ext.Element.select = function(selector, unique){ - var els; - if(typeof selector == "string"){ - els = Ext.Element.selectorFunction(selector); - }else if(selector.length !== undefined){ - els = selector; - }else{ - throw "Invalid selector"; - } - if(unique === true){ - return new Ext.CompositeElement(els); - }else{ - return new Ext.CompositeElementLite(els); - } -}; -/** - * Selects elements based on the passed CSS selector to enable working on them as 1. - * @param {String/Array} selector The CSS selector or an array of elements - * @param {Boolean} unique (optional) true to create a unique Ext.Element for each element (defaults to a shared flyweight object) - * @return {CompositeElementLite/CompositeElement} - * @member Ext - * @method select - */ -Ext.select = Ext.Element.select; \ No newline at end of file diff --git a/www/extras/extjs/source/core/DomHelper.js b/www/extras/extjs/source/core/DomHelper.js deleted file mode 100644 index 79fde0ed5..000000000 --- a/www/extras/extjs/source/core/DomHelper.js +++ /dev/null @@ -1,395 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.DomHelper - * Utility class for working with DOM and/or Templates. It transparently supports using HTML fragments or DOM. - * For more information see this blog post with examples. - * @singleton - */ -Ext.DomHelper = function(){ - var tempTableEl = null; - var emptyTags = /^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i; - - // build as innerHTML where available - /** @ignore */ - var createHtml = function(o){ - if(typeof o == 'string'){ - return o; - } - var b = ""; - if(!o.tag){ - o.tag = "div"; - } - b += "<" + o.tag; - for(var attr in o){ - if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || typeof o[attr] == "function") continue; - if(attr == "style"){ - var s = o["style"]; - if(typeof s == "function"){ - s = s.call(); - } - if(typeof s == "string"){ - b += ' style="' + s + '"'; - }else if(typeof s == "object"){ - b += ' style="'; - for(var key in s){ - if(typeof s[key] != "function"){ - b += key + ":" + s[key] + ";"; - } - } - b += '"'; - } - }else{ - if(attr == "cls"){ - b += ' class="' + o["cls"] + '"'; - }else if(attr == "htmlFor"){ - b += ' for="' + o["htmlFor"] + '"'; - }else{ - b += " " + attr + '="' + o[attr] + '"'; - } - } - } - if(emptyTags.test(o.tag)){ - b += "/>"; - }else{ - b += ">"; - var cn = o.children || o.cn; - if(cn){ - if(cn instanceof Array){ - for(var i = 0, len = cn.length; i < len; i++) { - b += createHtml(cn[i], b); - } - }else{ - b += createHtml(cn, b); - } - } - if(o.html){ - b += o.html; - } - b += ""; - } - return b; - }; - - // build as dom - /** @ignore */ - var createDom = function(o, parentNode){ - var el = document.createElement(o.tag); - var useSet = el.setAttribute ? true : false; // In IE some elements don't have setAttribute - for(var attr in o){ - if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || attr == "style" || typeof o[attr] == "function") continue; - if(attr=="cls"){ - el.className = o["cls"]; - }else{ - if(useSet) el.setAttribute(attr, o[attr]); - else el[attr] = o[attr]; - } - } - Ext.DomHelper.applyStyles(el, o.style); - var cn = o.children || o.cn; - if(cn){ - if(cn instanceof Array){ - for(var i = 0, len = cn.length; i < len; i++) { - createDom(cn[i], el); - } - }else{ - createDom(cn, el); - } - } - if(o.html){ - el.innerHTML = o.html; - } - if(parentNode){ - parentNode.appendChild(el); - } - return el; - }; - - var ieTable = function(depth, s, h, e){ - tempTableEl.innerHTML = [s, h, e].join(''); - var i = -1, el = tempTableEl; - while(++i < depth){ - el = el.firstChild; - } - return el; - }; - - // kill repeat to save bytes - var ts = '', - te = '
        ', - tbs = ts+'', - tbe = ''+te, - trs = tbs + '', - tre = ''+tbe; - - /** - * @ignore - * Nasty code for IE's broken table implementation - */ - var insertIntoTable = function(tag, where, el, html){ - if(!tempTableEl){ - tempTableEl = document.createElement('div'); - } - var node; - var before = null; - if(tag == 'td'){ - if(where == 'afterbegin' || where == 'beforeend'){ // INTO a TD - return; - } - if(where == 'beforebegin'){ - before = el; - el = el.parentNode; - } else{ - before = el.nextSibling; - el = el.parentNode; - } - node = ieTable(4, trs, html, tre); - } - else if(tag == 'tr'){ - if(where == 'beforebegin'){ - before = el; - el = el.parentNode; - node = ieTable(3, tbs, html, tbe); - } else if(where == 'afterend'){ - before = el.nextSibling; - el = el.parentNode; - node = ieTable(3, tbs, html, tbe); - } else{ // INTO a TR - if(where == 'afterbegin'){ - before = el.firstChild; - } - node = ieTable(4, trs, html, tre); - } - } else if(tag == 'tbody'){ - if(where == 'beforebegin'){ - before = el; - el = el.parentNode; - node = ieTable(2, ts, html, te); - } else if(where == 'afterend'){ - before = el.nextSibling; - el = el.parentNode; - node = ieTable(2, ts, html, te); - } else{ - if(where == 'afterbegin'){ - before = el.firstChild; - } - node = ieTable(3, tbs, html, tbe); - } - } else{ // TABLE - if(where == 'beforebegin' || where == 'afterend'){ // OUTSIDE the table - return; - } - if(where == 'afterbegin'){ - before = el.firstChild; - } - node = ieTable(2, ts, html, te); - } - el.insertBefore(node, before); - return node; - }; - - return { - /** True to force the use of DOM instead of html fragments @type Boolean */ - useDom : false, - - /** - * Returns the markup for the passed Element(s) config - * @param {Object} o The Dom object spec (and children) - * @return {String} - */ - markup : function(o){ - return createHtml(o); - }, - - /** - * Applies a style specification to an element - * @param {String/HTMLElement} el The element to apply styles to - * @param {String/Object/Function} styles A style specification string eg "width:100px", or object in the form {width:"100px"}, or - * a function which returns such a specification. - */ - applyStyles : function(el, styles){ - if(styles){ - el = Ext.fly(el); - if(typeof styles == "string"){ - var re = /\s?([a-z\-]*)\:\s?([^;]*);?/gi; - var matches; - while ((matches = re.exec(styles)) != null){ - el.setStyle(matches[1], matches[2]); - } - }else if (typeof styles == "object"){ - for (var style in styles){ - el.setStyle(style, styles[style]); - } - }else if (typeof styles == "function"){ - Ext.DomHelper.applyStyles(el, styles.call()); - } - } - }, - - /** - * Inserts an HTML fragment into the Dom - * @param {String} where Where to insert the html in relation to el - beforeBegin, afterBegin, beforeEnd, afterEnd. - * @param {HTMLElement} el The context element - * @param {String} html The HTML fragmenet - * @return {HTMLElement} The new node - */ - insertHtml : function(where, el, html){ - where = where.toLowerCase(); - if(el.insertAdjacentHTML){ - var tag = el.tagName.toLowerCase(); - if(tag == "table" || tag == "tbody" || tag == "tr" || tag == 'td'){ - var rs; - if(rs = insertIntoTable(tag, where, el, html)){ - return rs; - } - } - switch(where){ - case "beforebegin": - el.insertAdjacentHTML(where, html); - return el.previousSibling; - case "afterbegin": - el.insertAdjacentHTML(where, html); - return el.firstChild; - case "beforeend": - el.insertAdjacentHTML(where, html); - return el.lastChild; - case "afterend": - el.insertAdjacentHTML(where, html); - return el.nextSibling; - } - throw 'Illegal insertion point -> "' + where + '"'; - } - var range = el.ownerDocument.createRange(); - var frag; - switch(where){ - case "beforebegin": - range.setStartBefore(el); - frag = range.createContextualFragment(html); - el.parentNode.insertBefore(frag, el); - return el.previousSibling; - case "afterbegin": - if(el.firstChild){ - range.setStartBefore(el.firstChild); - frag = range.createContextualFragment(html); - el.insertBefore(frag, el.firstChild); - return el.firstChild; - }else{ - el.innerHTML = html; - return el.firstChild; - } - case "beforeend": - if(el.lastChild){ - range.setStartAfter(el.lastChild); - frag = range.createContextualFragment(html); - el.appendChild(frag); - return el.lastChild; - }else{ - el.innerHTML = html; - return el.lastChild; - } - case "afterend": - range.setStartAfter(el); - frag = range.createContextualFragment(html); - el.parentNode.insertBefore(frag, el.nextSibling); - return el.nextSibling; - } - throw 'Illegal insertion point -> "' + where + '"'; - }, - - /** - * Creates new Dom element(s) and inserts them before el - * @param {String/HTMLElement/Element} el The context element - * @param {Object} o The Dom object spec (and children) - * @param {Boolean} returnElement (optional) true to return a Ext.Element - * @return {HTMLElement} The new node - */ - insertBefore : function(el, o, returnElement){ - return this.doInsert(el, o, returnElement, "beforeBegin"); - }, - - /** - * Creates new Dom element(s) and inserts them after el - * @param {String/HTMLElement/Element} el The context element - * @param {Object} o The Dom object spec (and children) - * @param {Boolean} returnElement (optional) true to return a Ext.Element - * @return {HTMLElement} The new node - */ - insertAfter : function(el, o, returnElement){ - return this.doInsert(el, o, returnElement, "afterEnd", "nextSibling"); - }, - - /** - * Creates new Dom element(s) and inserts them as the first child of el - * @param {String/HTMLElement/Element} el The context element - * @param {Object} o The Dom object spec (and children) - * @param {Boolean} returnElement (optional) true to return a Ext.Element - * @return {HTMLElement} The new node - */ - insertFirst : function(el, o, returnElement){ - return this.doInsert(el, o, returnElement, "afterBegin"); - }, - - // private - doInsert : function(el, o, returnElement, pos, sibling){ - el = Ext.getDom(el); - var newNode; - if(this.useDom){ - newNode = createDom(o, null); - el.parentNode.insertBefore(newNode, sibling ? el[sibling] : el); - }else{ - var html = createHtml(o); - newNode = this.insertHtml(pos, el, html); - } - return returnElement ? Ext.get(newNode, true) : newNode; - }, - - /** - * Creates new Dom element(s) and appends them to el - * @param {String/HTMLElement/Element} el The context element - * @param {Object} o The Dom object spec (and children) - * @param {Boolean} returnElement (optional) true to return a Ext.Element - * @return {HTMLElement} The new node - */ - append : function(el, o, returnElement){ - el = Ext.getDom(el); - var newNode; - if(this.useDom){ - newNode = createDom(o, null); - el.appendChild(newNode); - }else{ - var html = createHtml(o); - newNode = this.insertHtml("beforeEnd", el, html); - } - return returnElement ? Ext.get(newNode, true) : newNode; - }, - - /** - * Creates new Dom element(s) and overwrites the contents of el with them - * @param {String/HTMLElement/Element} el The context element - * @param {Object} o The Dom object spec (and children) - * @param {Boolean} returnElement (optional) true to return a Ext.Element - * @return {HTMLElement} The new node - */ - overwrite : function(el, o, returnElement){ - el = Ext.getDom(el); - el.innerHTML = createHtml(o); - return returnElement ? Ext.get(el.firstChild, true) : el.firstChild; - }, - - /** - * Creates a new Ext.DomHelper.Template from the Dom object spec - * @param {Object} o The Dom object spec (and children) - * @return {Ext.DomHelper.Template} The new template - */ - createTemplate : function(o){ - var html = createHtml(o); - return new Ext.Template(html); - } - }; -}(); diff --git a/www/extras/extjs/source/core/DomQuery.js b/www/extras/extjs/source/core/DomQuery.js deleted file mode 100644 index 5b9068df1..000000000 --- a/www/extras/extjs/source/core/DomQuery.js +++ /dev/null @@ -1,715 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* - * This is code is also distributed under MIT license for use - * with jQuery and prototype JavaScript libraries. - */ -/** - * @class Ext.DomQuery - * Provides high performance selector/xpath processing by compiling queries into reusable functions. - * New pseudo classes and matchers can be plugged. It works on HTML and XML documents (if a content node is passed in). - * @singleton - */ -Ext.DomQuery = function(){ - var cache = {}, simpleCache = {}, valueCache = {}; - var nonSpace = /\S/; - var trimRe = /^\s+|\s+$/g; - var tplRe = /\{(\d+)\}/g; - var modeRe = /^(\s?[\/>]\s?|\s|$)/; - var tagTokenRe = /^(#)?([\w-\*]+)/; - - function child(p, index){ - var i = 0; - var n = p.firstChild; - while(n){ - if(n.nodeType == 1){ - if(++i == index){ - return n; - } - } - n = n.nextSibling; - } - return null; - }; - - function next(n){ - while((n = n.nextSibling) && n.nodeType != 1); - return n; - }; - - function prev(n){ - while((n = n.previousSibling) && n.nodeType != 1); - return n; - }; - - function clean(d){ - var n = d.firstChild, ni = -1; - while(n){ - var nx = n.nextSibling; - if(n.nodeType == 3 && !nonSpace.test(n.nodeValue)){ - d.removeChild(n); - }else{ - n.nodeIndex = ++ni; - } - n = nx; - } - return this; - }; - - function byClassName(c, a, v, re, cn){ - if(!v){ - return c; - } - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - cn = ci.className; - if(cn && (' '+cn+' ').indexOf(v) != -1){ - r[r.length] = ci; - } - } - return r; - }; - - function attrValue(n, attr){ - if(!n.tagName && typeof n.length != "undefined"){ - n = n[0]; - } - if(!n){ - return null; - } - if(attr == "for"){ - return n.htmlFor; - } - if(attr == "class" || attr == "className"){ - return n.className; - } - return n.getAttribute(attr) || n[attr]; - - }; - - function getNodes(ns, mode, tagName){ - var result = [], cs; - if(!ns){ - return result; - } - mode = mode ? mode.replace(trimRe, "") : ""; - tagName = tagName || "*"; - if(typeof ns.getElementsByTagName != "undefined"){ - ns = [ns]; - } - if(mode != "/" && mode != ">"){ - for(var i = 0, ni; ni = ns[i]; i++){ - cs = ni.getElementsByTagName(tagName); - for(var j = 0, ci; ci = cs[j]; j++){ - result[result.length] = ci; - } - } - }else{ - for(var i = 0, ni; ni = ns[i]; i++){ - var cn = ni.getElementsByTagName(tagName); - for(var j = 0, cj; cj = cn[j]; j++){ - if(cj.parentNode == ni){ - result[result.length] = cj; - } - } - } - } - return result; - }; - - function concat(a, b){ - if(b.slice){ - return a.concat(b); - } - for(var i = 0, l = b.length; i < l; i++){ - a[a.length] = b[i]; - } - return a; - } - - function byTag(cs, tagName){ - if(cs.tagName || cs == document){ - cs = [cs]; - } - if(!tagName){ - return cs; - } - var r = []; tagName = tagName.toLowerCase(); - for(var i = 0, ci; ci = cs[i]; i++){ - if(ci.nodeType == 1 && ci.tagName.toLowerCase()==tagName){ - r[r.length] = ci; - } - } - return r; - }; - - function byId(cs, attr, id){ - if(cs.tagName || cs == document){ - cs = [cs]; - } - if(!id){ - return cs; - } - var r = []; - for(var i = 0,ci; ci = cs[i]; i++){ - if(ci && ci.id == id){ - r[r.length] = ci; - return r; - } - } - return r; - }; - - function byAttribute(cs, attr, value, op, custom){ - var r = [], st = custom=="{"; - var f = Ext.DomQuery.operators[op]; - for(var i = 0; ci = cs[i]; i++){ - var a; - if(st){ - a = Ext.DomQuery.getStyle(ci, attr); - } - else if(attr == "class" || attr == "className"){ - a = ci.className; - }else if(attr == "for"){ - a = ci.htmlFor; - }else if(attr == "href"){ - a = ci.getAttribute("href", 2); - }else{ - a = ci.getAttribute(attr); - } - if((f && f(a, value)) || (!f && a)){ - r[r.length] = ci; - } - } - return r; - }; - - function byPseudo(cs, name, value){ - return Ext.DomQuery.pseudos[name](cs, value); - }; - - // This is for IE MSXML which does not support expandos. - // IE runs the same speed using setAttribute, however FF slows way down - // and Safari completely fails so they need to continue to use expandos. - var isIE = window.ActiveXObject ? true : false; - - var key = 30803; - - function nodupIEXml(cs){ - var d = ++key; - cs[0].setAttribute("_nodup", d); - var r = [cs[0]]; - for(var i = 1, len = cs.length; i < len; i++){ - var c = cs[i]; - if(!c.getAttribute("_nodup") != d){ - c.setAttribute("_nodup", d); - r[r.length] = c; - } - } - for(var i = 0, len = cs.length; i < len; i++){ - cs[i].removeAttribute("_nodup"); - } - return r; - } - - function nodup(cs){ - if(!cs){ - return []; - } - var len = cs.length, c, i, r = cs, cj; - if(!len || typeof cs.nodeType != "undefined" || len == 1){ - return cs; - } - if(isIE && typeof cs[0].selectSingleNode != "undefined"){ - return nodupIEXml(cs); - } - var d = ++key; - cs[0]._nodup = d; - for(i = 1; c = cs[i]; i++){ - if(c._nodup != d){ - c._nodup = d; - }else{ - r = []; - for(var j = 0; j < i; j++){ - r[r.length] = cs[j]; - } - for(j = i+1; cj = cs[j]; j++){ - if(cj._nodup != d){ - cj._nodup = d; - r[r.length] = cj; - } - } - return r; - } - } - return r; - } - - function quickDiffIEXml(c1, c2){ - var d = ++key; - for(var i = 0, len = c1.length; i < len; i++){ - c1[i].setAttribute("_qdiff", d); - } - var r = []; - for(var i = 0, len = c2.length; i < len; i++){ - if(c2[i].getAttribute("_qdiff") != d){ - r[r.length] = c2[i]; - } - } - for(var i = 0, len = c1.length; i < len; i++){ - c1[i].removeAttribute("_qdiff"); - } - return r; - } - - function quickDiff(c1, c2){ - var len1 = c1.length; - if(!len1){ - return c2; - } - if(isIE && c1[0].selectSingleNode){ - return quickDiffIEXml(c1, c2); - } - var d = ++key; - for(var i = 0; i < len1; i++){ - c1[i]._qdiff = d; - } - var r = []; - for(var i = 0, len = c2.length; i < len; i++){ - if(c2[i]._qdiff != d){ - r[r.length] = c2[i]; - } - } - return r; - } - - function quickId(ns, mode, root, id){ - if(ns == root){ - var d = root.ownerDocument || root; - return d.getElementById(id); - } - ns = getNodes(ns, mode, "*"); - return byId(ns, null, id); - } - - return { - getStyle : function(el, name){ - return Ext.fly(el).getStyle(name); - }, - /** - * Compiles a selector/xpath query into a reusable function. The returned function - * takes one parameter "root" (optional), which is the context node from where the query should start. - * @param {String} selector The selector/xpath query - * @param {String} type (optional) Either "select" (the default) or "simple" for a simple selector match - * @return {Function} - */ - compile : function(path, type){ - // strip leading slashes - while(path.substr(0, 1)=="/"){ - path = path.substr(1); - } - type = type || "select"; - - var fn = ["var f = function(root){\n var mode; var n = root || document;\n"]; - var q = path, mode, lq; - var tk = Ext.DomQuery.matchers; - var tklen = tk.length; - var mm; - while(q && lq != q){ - lq = q; - var tm = q.match(tagTokenRe); - if(type == "select"){ - if(tm){ - if(tm[1] == "#"){ - fn[fn.length] = 'n = quickId(n, mode, root, "'+tm[2]+'");'; - }else{ - fn[fn.length] = 'n = getNodes(n, mode, "'+tm[2]+'");'; - } - q = q.replace(tm[0], ""); - }else if(q.substr(0, 1) != '@'){ - fn[fn.length] = 'n = getNodes(n, mode, "*");'; - } - }else{ - if(tm){ - if(tm[1] == "#"){ - fn[fn.length] = 'n = byId(n, null, "'+tm[2]+'");'; - }else{ - fn[fn.length] = 'n = byTag(n, "'+tm[2]+'");'; - } - q = q.replace(tm[0], ""); - } - } - while(!(mm = q.match(modeRe))){ - var matched = false; - for(var j = 0; j < tklen; j++){ - var t = tk[j]; - var m = q.match(t.re); - if(m){ - fn[fn.length] = t.select.replace(tplRe, function(x, i){ - return m[i]; - }); - q = q.replace(m[0], ""); - matched = true; - break; - } - } - // prevent infinite loop on bad selector - if(!matched){ - throw 'Error parsing selector, parsing failed at "' + q + '"'; - } - } - if(mm[1]){ - fn[fn.length] = 'mode="'+mm[1]+'";'; - q = q.replace(mm[1], ""); - } - } - fn[fn.length] = "return nodup(n);\n}"; - eval(fn.join("")); - return f; - }, - - /** - * Selects a group of elements. - * @param {String} selector The selector/xpath query - * @param {Node} root (optional) The start of the query (defaults to document). - * @return {Array} - */ - select : function(path, root, type){ - if(!root || root == document){ - root = document; - } - if(typeof root == "string"){ - root = document.getElementById(root); - } - var paths = path.split(","); - var results = []; - for(var i = 0, len = paths.length; i < len; i++){ - var p = paths[i].replace(trimRe, ""); - if(!cache[p]){ - cache[p] = Ext.DomQuery.compile(p); - if(!cache[p]){ - throw p + " is not a valid selector"; - } - } - var result = cache[p](root); - if(result && result != document){ - results = results.concat(result); - } - } - return results; - }, - - /** - * Selects a single element. - * @param {String} selector The selector/xpath query - * @param {Node} root (optional) The start of the query (defaults to document). - * @return {Element} - */ - selectNode : function(path, root){ - return Ext.DomQuery.select(path, root)[0]; - }, - - /** - * Selects the value of a node, optionally replacing null with the defaultValue. - * @param {String} selector The selector/xpath query - * @param {Node} root (optional) The start of the query (defaults to document). - * @param {String} defaultValue - */ - selectValue : function(path, root, defaultValue){ - path = path.replace(trimRe, ""); - if(!valueCache[path]){ - valueCache[path] = Ext.DomQuery.compile(path, "select"); - } - var n = valueCache[path](root); - n = n[0] ? n[0] : n; - var v = (n && n.firstChild ? n.firstChild.nodeValue : null); - return (v === null ? defaultValue : v); - }, - - /** - * Selects the value of a node, parsing integers and floats. - * @param {String} selector The selector/xpath query - * @param {Node} root (optional) The start of the query (defaults to document). - * @param {Number} defaultValue - * @return {Number} - */ - selectNumber : function(path, root, defaultValue){ - var v = Ext.DomQuery.selectValue(path, root, defaultValue || 0); - return parseFloat(v); - }, - - /** - * Returns true if the passed element(s) match the passed simple selector (e.g. div.some-class or span:first-child) - * @param {String/HTMLElement/Array} el An element id, element or array of elements - * @param {String} selector The simple selector to test - * @return {Boolean} - */ - is : function(el, ss){ - if(typeof el == "string"){ - el = document.getElementById(el); - } - var isArray = (el instanceof Array); - var result = Ext.DomQuery.filter(isArray ? el : [el], ss); - return isArray ? (result.length == el.length) : (result.length > 0); - }, - - /** - * Filters an array of elements to only include matches of a simple selector (e.g. div.some-class or span:first-child) - * @param {Array} el An array of elements to filter - * @param {String} selector The simple selector to test - * @param {Boolean} nonMatches If true, it returns the elements that DON'T match - * the selector instead of the ones that match - * @return {Array} - */ - filter : function(els, ss, nonMatches){ - ss = ss.replace(trimRe, ""); - if(!simpleCache[ss]){ - simpleCache[ss] = Ext.DomQuery.compile(ss, "simple"); - } - var result = simpleCache[ss](els); - return nonMatches ? quickDiff(result, els) : result; - }, - - /** - * Collection of matching regular expressions and code snippets. - */ - matchers : [{ - re: /^\.([\w-]+)/, - select: 'n = byClassName(n, null, " {1} ");' - }, { - re: /^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/, - select: 'n = byPseudo(n, "{1}", "{2}");' - },{ - re: /^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/, - select: 'n = byAttribute(n, "{2}", "{4}", "{3}", "{1}");' - }, { - re: /^#([\w-]+)/, - select: 'n = byId(n, null, "{1}");' - },{ - re: /^@([\w-]+)/, - select: 'return {firstChild:{nodeValue:attrValue(n, "{1}")}};' - } - ], - - /** - * Collection of operator comparison functions. The default operators are =, !=, ^=, $=, *= and %=. - * New operators can be added as long as the match the format c= where c is any character other than space, > <. - */ - operators : { - "=" : function(a, v){ - return a == v; - }, - "!=" : function(a, v){ - return a != v; - }, - "^=" : function(a, v){ - return a && a.substr(0, v.length) == v; - }, - "$=" : function(a, v){ - return a && a.substr(a.length-v.length) == v; - }, - "*=" : function(a, v){ - return a && a.indexOf(v) !== -1; - }, - "%=" : function(a, v){ - return (a % v) == 0; - } - }, - - /** - * Collection of "pseudo class" processors. Each processor is passed the current nodeset (array) - * and the argument (if any) supplied in the selector. - */ - pseudos : { - "first-child" : function(c){ - var r = [], n; - for(var i = 0, ci; ci = n = c[i]; i++){ - while((n = n.previousSibling) && n.nodeType != 1); - if(!n){ - r[r.length] = ci; - } - } - return r; - }, - - "last-child" : function(c){ - var r = []; - for(var i = 0, ci; ci = n = c[i]; i++){ - while((n = n.nextSibling) && n.nodeType != 1); - if(!n){ - r[r.length] = ci; - } - } - return r; - }, - - "nth-child" : function(c, a){ - var r = []; - if(a != "odd" && a != "even"){ - for(var i = 0, ci; ci = c[i]; i++){ - var m = child(ci.parentNode, a); - if(m == ci){ - r[r.length] = m; - } - } - return r; - } - var p; - // first let's clean up the parent nodes - for(var i = 0, l = c.length; i < l; i++){ - var cp = c[i].parentNode; - if(cp != p){ - clean(cp); - p = cp; - } - } - // then lets see if we match - for(var i = 0, ci; ci = c[i]; i++){ - var m = false; - if(a == "odd"){ - m = ((ci.nodeIndex+1) % 2 == 1); - }else if(a == "even"){ - m = ((ci.nodeIndex+1) % 2 == 0); - } - if(m){ - r[r.length] = ci; - } - } - return r; - }, - - "only-child" : function(c){ - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - if(!prev(ci) && !next(ci)){ - r[r.length] = ci; - } - } - return r; - }, - - "empty" : function(c){ - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - var cns = ci.childNodes, j = 0, cn, empty = true; - while(cn = cns[j]){ - ++j; - if(cn.nodeType == 1 || cn.nodeType == 3){ - empty = false; - break; - } - } - if(empty){ - r[r.length] = ci; - } - } - return r; - }, - - "contains" : function(c, v){ - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - if(ci.innerHTML.indexOf(v) !== -1){ - r[r.length] = ci; - } - } - return r; - }, - - "nodeValue" : function(c, v){ - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - if(ci.firstChild && ci.firstChild.nodeValue == v){ - r[r.length] = ci; - } - } - return r; - }, - - "checked" : function(c){ - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - if(ci.checked == true){ - r[r.length] = ci; - } - } - return r; - }, - - "not" : function(c, ss){ - return Ext.DomQuery.filter(c, ss, true); - }, - - "odd" : function(c){ - return this["nth-child"](c, "odd"); - }, - - "even" : function(c){ - return this["nth-child"](c, "even"); - }, - - "nth" : function(c, a){ - return c[a-1] || []; - }, - - "first" : function(c){ - return c[0] || []; - }, - - "last" : function(c){ - return c[c.length-1] || []; - }, - - "has" : function(c, ss){ - var s = Ext.DomQuery.select; - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - if(s(ss, ci).length > 0){ - r[r.length] = ci; - } - } - return r; - }, - - "next" : function(c, ss){ - var is = Ext.DomQuery.is; - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - var n = next(ci); - if(n && is(n, ss)){ - r[r.length] = ci; - } - } - return r; - }, - - "prev" : function(c, ss){ - var is = Ext.DomQuery.is; - var r = []; - for(var i = 0, ci; ci = c[i]; i++){ - var n = prev(ci); - if(n && is(n, ss)){ - r[r.length] = ci; - } - } - return r; - } - } - }; -}(); - -/** - * Selects an array of DOM nodes by CSS/XPath selector. Shorthand of {@link Ext.DomQuery#select} - * @param {String} path The selector/xpath query - * @param {Node} root (optional) The start of the query (defaults to document). - * @return {Array} - * @member Ext - * @method query - */ -Ext.query = Ext.DomQuery.select; diff --git a/www/extras/extjs/source/core/Element.js b/www/extras/extjs/source/core/Element.js deleted file mode 100644 index 67408dd1e..000000000 --- a/www/extras/extjs/source/core/Element.js +++ /dev/null @@ -1,2806 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.Element - * Represents an Element in the DOM.

        - * Usage:
        -
        
        -var el = Ext.get("my-div");
        -
        -// or with getEl
        -var el = getEl("my-div");
        -
        -// or with a DOM element
        -var el = Ext.get(myDivElement);
        -
        - * Using Ext.get() or getEl() instead of calling the constructor directly ensures you get the same object - * each call instead of constructing a new one.

        - * Animations
        - * Many of the functions for manipulating an element have an optional "animate" parameter. The animate parameter - * should either be a boolean (true) or an object literal with animation options. The animation options are: -
        -Option    Default   Description
        ---------- --------  ---------------------------------------------
        -duration  .35       The duration of the animation in seconds
        -easing    easeOut   The YUI easing method
        -callback  none      A function to execute when the anim completes
        -scope     this      The scope (this) of the callback function
        -
        -* Also, the Anim object being used for the animation will be set on your options object as "anim", which allows you to stop or -* manipulate the animation. Here's an example: -
        
        -var el = Ext.get("my-div");
        -
        -// no animation
        -el.setWidth(100);
        -
        -// default animation
        -el.setWidth(100, true);
        -
        -// animation with some options set
        -el.setWidth(100, {
        -    duration: 1, 
        -    callback: this.foo, 
        -    scope: this
        -});
        -
        -// using the "anim" property to get the Anim object
        -var opt = {
        -    duration: 1, 
        -    callback: this.foo, 
        -    scope: this
        -};
        -el.setWidth(100, opt);
        -...
        -if(opt.anim.isAnimated()){
        -    opt.anim.stop();
        -}
        -
        -* Composite (Collections of) Elements
        - * For working with collections of Elements, see Ext.CompositeElement - * @constructor Create a new Element directly. - * @param {String/HTMLElement} element - * @param {Boolean} forceNew (optional) By default the constructor checks to see if there is already an instance of this element in the cache and if there is it returns the same instance. This will skip that check (useful for extending this class). - */ -(function(){ -var D = Ext.lib.Dom; -var E = Ext.lib.Event; -var A = Ext.lib.Anim; - -// local style camelizing for speed -var propCache = {}; -var camelRe = /(-[a-z])/gi; -var camelFn = function(m, a){ return a.charAt(1).toUpperCase(); }; -var view = document.defaultView; - -Ext.Element = function(element, forceNew){ - var dom = typeof element == "string" ? - document.getElementById(element) : element; - if(!dom){ // invalid id/element - return null; - } - if(!forceNew && Ext.Element.cache[dom.id]){ // element object already exists - return Ext.Element.cache[dom.id]; - } - /** - * The DOM element - * @type HTMLElement - */ - this.dom = dom; - - /** - * The DOM element ID - * @type String - */ - this.id = dom.id || Ext.id(dom); -}; - -var El = Ext.Element; - -El.prototype = { - /** - * The element's default display mode @type String - */ - originalDisplay : "", - - visibilityMode : 1, - /** - * The default unit to append to CSS values where a unit isn't provided (Defaults to px). - * @type String - */ - defaultUnit : "px", - /** - * Sets the elements visibility mode. When setVisible() is called it - * will use this to determine whether to set the visibility or the display property. - * @param visMode Element.VISIBILITY or Element.DISPLAY - * @return {Ext.Element} this - */ - setVisibilityMode : function(visMode){ - this.visibilityMode = visMode; - return this; - }, - /** - * Convenience method for setVisibilityMode(Element.DISPLAY) - * @param {String} display (optional) What to set display to when visible - * @return {Ext.Element} this - */ - enableDisplayMode : function(display){ - this.setVisibilityMode(El.DISPLAY); - if(typeof display != "undefined") this.originalDisplay = display; - return this; - }, - - /** - * Looks at this node and then at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:first-child) - * @param {String} ss The simple selector to test - * @param {Number/String/HTMLElement/Element} maxDepth (optional) The max depth to - search as a number or element (defaults to 10 || document.body) - * @param {Boolean} returnEl (optional) True to return a Ext.Element object instead of DOM node - * @return {HTMLElement} - */ - findParent : function(simpleSelector, maxDepth, returnEl){ - var p = this.dom, b = document.body, depth = 0, dq = Ext.DomQuery, stopEl; - maxDepth = maxDepth || 50; - if(typeof maxDepth != "number"){ - stopEl = Ext.getDom(maxDepth); - maxDepth = 10; - } - while(p && p.nodeType == 1 && depth < maxDepth && p != b && p != stopEl){ - if(dq.is(p, simpleSelector)){ - return returnEl ? Ext.get(p) : p; - } - depth++; - p = p.parentNode; - } - return null; - }, - - - /** - * Looks at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:first-child) - * @param {String} ss The simple selector to test - * @param {Number/String/HTMLElement/Element} maxDepth (optional) The max depth to - search as a number or element (defaults to 10 || document.body) - * @param {Boolean} returnEl (optional) True to return a Ext.Element object instead of DOM node - * @return {HTMLElement} - */ - findParentNode : function(simpleSelector, maxDepth, returnEl){ - var p = Ext.fly(this.dom.parentNode, '_internal'); - return p ? p.findParent(simpleSelector, maxDepth, returnEl) : null; - }, - - /** - * Walks up the dom looking for a parent node that matches the passed simple selector (e.g. div.some-class or span:first-child). - * This is a shortcut for findParentNode() that always returns an Ext.Element. - * @param {String} ss The simple selector to test - * @param {Number/String/HTMLElement/Element} maxDepth (optional) The max depth to - search as a number or element (defaults to 10 || document.body) - * @return {Ext.Element} - */ - up : function(simpleSelector, maxDepth){ - return this.findParentNode(simpleSelector, maxDepth, true); - }, - - - - /** - * Returns true if this element matches the passed simple selector (e.g. div.some-class or span:first-child) - * @param {String} ss The simple selector to test - * @return {Boolean} - */ - is : function(simpleSelector){ - return Ext.DomQuery.is(this.dom, simpleSelector); - }, - - /** - * Perform animation on this element. - * @param {Object} args The YUI animation control args - * @param {Float} duration (optional) How long the animation lasts. (Defaults to .35 seconds) - * @param {Function} onComplete (optional) Function to call when animation completes. - * @param {String} easing (optional) Easing method to use. (Defaults to 'easeOut') - * @param {String} animType (optional) 'run' is the default. Can be 'color', 'motion', or 'scroll' - * @return {Ext.Element} this - */ - animate : function(args, duration, onComplete, easing, animType){ - this.anim(args, {duration: duration, callback: onComplete, easing: easing}, animType); - return this; - }, - - /* - * @private Internal animation call - */ - anim : function(args, opt, animType, defaultDur, defaultEase, cb){ - animType = animType || 'run'; - opt = opt || {}; - var anim = Ext.lib.Anim[animType]( - this.dom, args, - (opt.duration || defaultDur) || .35, - (opt.easing || defaultEase) || 'easeOut', - function(){ - Ext.callback(cb, this); - Ext.callback(opt.callback, opt.scope || this, [this, opt]); - }, - this - ); - opt.anim = anim; - return anim; - }, - - // private legacy anim prep - preanim : function(a, i){ - return !a[i] ? false : (typeof a[i] == "object" ? a[i]: {duration: a[i+1], callback: a[i+2], easing: a[i+3]}); - }, - - /** - * Removes worthless text nodes - * @param {Boolean} forceReclean (optional) By default the element - * keeps track if it has been cleaned already so - * you can call this over and over. However, if you update the element and - * need to force a reclean, you can pass true. - */ - clean : function(forceReclean){ - if(this.isCleaned && forceReclean !== true){ - return this; - } - var ns = /\S/; - var d = this.dom, n = d.firstChild, ni = -1; - while(n){ - var nx = n.nextSibling; - if(n.nodeType == 3 && !ns.test(n.nodeValue)){ - d.removeChild(n); - }else{ - n.nodeIndex = ++ni; - } - n = nx; - } - this.isCleaned = true; - return this; - }, - - calcOffsetsTo : function(el){ - el = Ext.get(el), d = el.dom; - var restorePos = false; - if(el.getStyle('position') == 'static'){ - el.position('relative'); - restorePos = true; - } - var x = 0, y =0; - var op = this.dom; - while(op && op != d && op.tagName != 'HTML'){ - x+= op.offsetLeft; - y+= op.offsetTop; - op = op.offsetParent; - } - if(restorePos){ - el.position('static'); - } - return [x, y]; - }, - - /** - * Scrolls this element into view within the passed container. - * @param {String/HTMLElement/Element} container (optional) The container element to scroll (defaults to document.body) - * @param {Boolean} hscroll (optional) false to disable horizontal scroll - * @return {Ext.Element} this - */ - scrollIntoView : function(container, hscroll){ - var c = Ext.getDom(container) || document.body; - var el = this.dom; - - var o = this.calcOffsetsTo(c), - l = o[0], - t = o[1], - b = t+el.offsetHeight, - r = l+el.offsetWidth; - - var ch = c.clientHeight; - var ct = parseInt(c.scrollTop, 10); - var cl = parseInt(c.scrollLeft, 10); - var cb = ct + ch; - var cr = cl + c.clientWidth; - - if(t < ct){ - c.scrollTop = t; - }else if(b > cb){ - c.scrollTop = b-ch; - } - - if(hscroll !== false){ - if(l < cl){ - c.scrollLeft = l; - }else if(r > cr){ - c.scrollLeft = r-c.clientWidth; - } - } - return this; - }, - - scrollChildIntoView : function(child){ - Ext.fly(child, '_scrollChildIntoView').scrollIntoView(this); - }, - - /** - * Measures the elements content height and updates height to match. Note, this function uses setTimeout and - * the new height may not be available immediately. - * @param {Boolean} animate (optional) Animate the transition (Default is false) - * @param {Float} duration (optional) Length of the animation. (Defaults to .35 seconds) - * @param {Function} onComplete (optional) Function to call when animation completes. - * @param {String} easing (optional) Easing method to use. - * @return {Ext.Element} this - */ - autoHeight : function(animate, duration, onComplete, easing){ - var oldHeight = this.getHeight(); - this.clip(); - this.setHeight(1); // force clipping - setTimeout(function(){ - var height = parseInt(this.dom.scrollHeight, 10); // parseInt for Safari - if(!animate){ - this.setHeight(height); - this.unclip(); - if(typeof onComplete == "function"){ - onComplete(); - } - }else{ - this.setHeight(oldHeight); // restore original height - this.setHeight(height, animate, duration, function(){ - this.unclip(); - if(typeof onComplete == "function") onComplete(); - }.createDelegate(this), easing); - } - }.createDelegate(this), 0); - return this; - }, - - /** - * Returns true if this element is an ancestor of the passed element - * @param {HTMLElement/String} el - * @return {Boolean} - */ - contains : function(el){ - if(!el){return false;} - return D.isAncestor(this.dom, el.dom ? el.dom : el); - }, - - /** - * Checks whether the element is currently visible using both visibility and display properties. - * @param {Boolean} deep True to walk the dom and see if parent elements are hidden. - * @return {Boolean} true if the element is currently visible - */ - isVisible : function(deep) { - var vis = !(this.getStyle("visibility") == "hidden" || this.getStyle("display") == "none"); - if(deep !== true || !vis){ - return vis; - } - var p = this.dom.parentNode; - while(p && p.tagName.toLowerCase() != "body"){ - if(!Ext.fly(p, '_isVisible').isVisible()){ - return false; - } - p = p.parentNode; - } - return true; - }, - - /** - * Creates a CompositeElement for child nodes based on the passed CSS selector (the selector should not contain an id) - * @param {String} selector The CSS selector - * @param {Boolean} unique true to create a unique Ext.Element for each child (defaults to a shared flyweight object) - * @return {CompositeElement/CompositeElementLite} The composite element - */ - select : function(selector, unique){ - return El.select("#" + Ext.id(this.dom) + " " + selector, unique); - }, - - /** - * Selects child nodes based on the passed CSS selector (the selector should not contain an id) - * @param {String} selector The CSS selector - * @return {Array} An array of the matched nodes - */ - query : function(selector, unique){ - return Ext.DomQuery.select("#" + Ext.id(this.dom) + " " + selector); - }, - - /** - * Selects a single child based on the passed CSS selector (the selector should not contain an id) - * @param {String} selector The CSS selector - * @param {Boolean} returnDom true to return the DOM node instead of Ext.Element - * @return {Element} The element - */ - child : function(selector, returnDom){ - var n = Ext.DomQuery.selectNode("#" + Ext.id(this.dom) + " " + selector); - return returnDom ? n : Ext.get(n); - }, - - /** - * Selects a single *direct* child based on the passed CSS selector (the selector should not contain an id) - * @param {String} selector The CSS selector - * @param {Boolean} returnDom true to return the DOM node instead of Ext.Element - * @return {Element} The element - */ - down : function(selector, returnDom){ - var n = Ext.DomQuery.selectNode("#" + Ext.id(this.dom) + " > " + selector); - return returnDom ? n : Ext.get(n); - }, - - /** - * Initializes a Ext.dd.DD object for this element. - * @param {String} group The group the DD object is member of - * @param {Object} config The DD config object - * @param {Object} overrides An object containing methods to override/implement on the DD object - * @return {Ext.dd.DD} The DD object - */ - initDD : function(group, config, overrides){ - var dd = new Ext.dd.DD(Ext.id(this.dom), group, config); - return Ext.apply(dd, overrides); - }, - - /** - * Initializes a Ext.dd.DDProxy object for this element. - * @param {String} group The group the DDProxy object is member of - * @param {Object} config The DDProxy config object - * @param {Object} overrides An object containing methods to override/implement on the DDProxy object - * @return {Ext.dd.DDProxy} The DDProxy object - */ - initDDProxy : function(group, config, overrides){ - var dd = new Ext.dd.DDProxy(Ext.id(this.dom), group, config); - return Ext.apply(dd, overrides); - }, - - /** - * Initializes a Ext.dd.DDTarget object for this element. - * @param {String} group The group the DDTarget object is member of - * @param {Object} config The DDTarget config object - * @param {Object} overrides An object containing methods to override/implement on the DDTarget object - * @return {Ext.dd.DDTarget} The DDTarget object - */ - initDDTarget : function(group, config, overrides){ - var dd = new Ext.dd.DDTarget(Ext.id(this.dom), group, config); - return Ext.apply(dd, overrides); - }, - - /** - * Sets the visibility of the element (see details). If the visibilityMode is set to Element.DISPLAY, it will use - * the display property to hide the element, otherwise it uses visibility. The default is to hide and show using the visibility property. - * @param {Boolean} visible Whether the element is visible - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - setVisible : function(visible, animate){ - if(!animate || !A){ - if(this.visibilityMode == El.DISPLAY){ - this.setDisplayed(visible); - }else{ - this.fixDisplay(); - this.dom.style.visibility = visible ? "visible" : "hidden"; - } - }else{ - // closure for composites - var dom = this.dom; - var visMode = this.visibilityMode; - if(visible){ - this.setOpacity(.01); - this.setVisible(true); - } - this.anim({opacity: { to: (visible?1:0) }}, - this.preanim(arguments, 1), - null, .35, 'easeIn', function(){ - if(!visible){ - if(visMode == El.DISPLAY){ - dom.style.display = "none"; - }else{ - dom.style.visibility = "hidden"; - } - Ext.get(dom).setOpacity(1); - } - }); - } - return this; - }, - - /** - * Returns true if display is not "none" - * @return {Boolean} - */ - isDisplayed : function() { - return this.getStyle("display") != "none"; - }, - - /** - * Toggles the elements visibility or display, depending on visibility mode. - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - toggle : function(animate){ - this.setVisible(!this.isVisible(), this.preanim(arguments, 0)); - return this; - }, - - /** - * Sets the css display. Uses originalDisplay if value is a boolean true. - * @param {Boolean} value Boolean to display the element using its default display or a string to set the display directly - * @return {Ext.Element} this - */ - setDisplayed : function(value) { - if(typeof value == "boolean"){ - value = value ? this.originalDisplay : "none"; - } - this.setStyle("display", value); - return this; - }, - - /** - * Tries to focus the element. Any exceptions are caught. - * @return {Ext.Element} this - */ - focus : function() { - try{ - this.dom.focus(); - }catch(e){} - return this; - }, - - /** - * Tries to blur the element. Any exceptions are caught. - * @return {Ext.Element} this - */ - blur : function() { - try{ - this.dom.blur(); - }catch(e){} - return this; - }, - - /** - * Add a CSS class to the element. - * @param {String/Array} className The CSS class to add or an array of classes - * @return {Ext.Element} this - */ - addClass : function(className){ - if(className instanceof Array){ - for(var i = 0, len = className.length; i < len; i++) { - this.addClass(className[i]); - } - }else{ - if(className && !this.hasClass(className)){ - this.dom.className = this.dom.className + " " + className; - } - } - return this; - }, - - /** - * Adds the passed className to this element and removes the class from all siblings - * @param {String} className The className to add - * @return {Ext.Element} this - */ - radioClass : function(className){ - var siblings = this.dom.parentNode.childNodes; - for(var i = 0; i < siblings.length; i++) { - var s = siblings[i]; - if(s.nodeType == 1){ - Ext.get(s).removeClass(className); - } - } - this.addClass(className); - return this; - }, - - /** - * Removes a CSS class from the element. - * @param {String/Array} className The CSS class to remove or an array of classes - * @return {Ext.Element} this - */ - removeClass : function(className){ - if(!className || !this.dom.className){ - return this; - } - if(className instanceof Array){ - for(var i = 0, len = className.length; i < len; i++) { - this.removeClass(className[i]); - } - }else{ - if(this.hasClass(className)){ - var re = this.classReCache[className]; - if (!re) { - re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)', "g"); - this.classReCache[className] = re; - } - this.dom.className = - this.dom.className.replace(re, " "); - } - } - return this; - }, - - classReCache: {}, - - /** - * Toggles (adds or removes) the passed class. - * @param {String} className - * @return {Ext.Element} this - */ - toggleClass : function(className){ - if(this.hasClass(className)){ - this.removeClass(className); - }else{ - this.addClass(className); - } - return this; - }, - - /** - * Checks if a CSS class is in use by the element. - * @param {String} className The CSS class to check - * @return {Boolean} true or false - */ - hasClass : function(className){ - return className && (' '+this.dom.className+' ').indexOf(' '+className+' ') != -1; - }, - - /** - * Replaces a CSS class on the element with another. - * @param {String} oldClassName The CSS class to replace - * @param {String} newClassName The replacement CSS class - * @return {Ext.Element} this - */ - replaceClass : function(oldClassName, newClassName){ - this.removeClass(oldClassName); - this.addClass(newClassName); - return this; - }, - - /** - * Get an object with properties matching the styles requested. - * e.g. el.getStyles('color', 'font-size', 'width') might return - * {'color': '#FFFFFF', 'font-size': '13px', 'width': '100px'}. - * @param {String} style1 - * @param {String} style2 - * @param {String} etc - * @return Object - */ - getStyles : function(){ - var a = arguments, len = a.length, r = {}; - for(var i = 0; i < len; i++){ - r[a[i]] = this.getStyle(a[i]); - } - return r; - }, - - /** - * Normalizes currentStyle and computedStyle. This is not YUI getStyle, it is an optimised version. - * @param {String} property The style property whose value is returned. - * @return {String} The current value of the style property for this element. - */ - getStyle : function(){ - return view && view.getComputedStyle ? - function(prop){ - var el = this.dom, v, cs, camel; - if(prop == 'float'){ - prop = "cssFloat"; - } - if(v = el.style[prop]){ - return v; - } - if(cs = view.getComputedStyle(el, "")){ - if(!(camel = propCache[prop])){ - camel = propCache[prop] = prop.replace(camelRe, camelFn); - } - return cs[camel]; - } - return null; - } : - function(prop){ - var el = this.dom, v, cs, camel; - if(prop == 'opacity'){ - if(typeof el.filter == 'string'){ - var fv = parseFloat(el.filter.match(/alpha\(opacity=(.*)\)/i)[1]); - if(!isNaN(fv)){ - return fv ? fv / 100 : 0; - } - } - return 1; - }else if(prop == 'float'){ - prop = "styleFloat"; - } - if(!(camel = propCache[prop])){ - camel = propCache[prop] = prop.replace(camelRe, camelFn); - } - if(v = el.style[camel]){ - return v; - } - if(cs = el.currentStyle){ - return cs[camel]; - } - return null; - }; - }(), - - /** - * Wrapper for setting style properties, also takes single object parameter of multiple styles - * @param {String/Object} property The style property to be set or an object of multiple styles. - * @param {String} val (optional) The value to apply to the given property or null if an object was passed. - * @return {Ext.Element} this - */ - setStyle : function(prop, value){ - if(typeof prop == "string"){ - var camel; - if(!(camel = propCache[prop])){ - camel = propCache[prop] = prop.replace(camelRe, camelFn); - } - if(camel == 'opacity') { - this.setOpacity(value); - }else{ - this.dom.style[camel] = value; - } - }else{ - for(var style in prop){ - if(typeof prop[style] != "function"){ - this.setStyle(style, prop[style]); - } - } - } - return this; - }, - - /** - * More flexible version of {@link #setStyle} for setting style properties. - * @param {String/Object/Function} styles A style specification string eg "width:100px", or object in the form {width:"100px"}, or - * a function which returns such a specification. - * @return {Ext.Element} this - */ - applyStyles : function(style){ - Ext.DomHelper.applyStyles(this.dom, style); - return this; - }, - - /** - * Gets the current X position of the element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - @return {Number} The X position of the element - */ - getX : function(){ - return D.getX(this.dom); - }, - - /** - * Gets the current Y position of the element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - @return {Number} The Y position of the element - */ - getY : function(){ - return D.getY(this.dom); - }, - - /** - * Gets the current position of the element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - @return {Array} The XY position of the element - */ - getXY : function(){ - return D.getXY(this.dom); - }, - - /** - * Sets the X position of the element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - @param {Number} The X position of the element - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - setX : function(x, animate){ - if(!animate || !A){ - D.setX(this.dom, x); - }else{ - this.setXY([x, this.getY()], this.preanim(arguments, 1)); - } - return this; - }, - - /** - * Sets the Y position of the element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - @param {Number} The Y position of the element - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - setY : function(y, animate){ - if(!animate || !A){ - D.setY(this.dom, y); - }else{ - this.setXY([this.getX(), y], this.preanim(arguments, 1)); - } - return this; - }, - - /** - * Set the element's left position directly using CSS style (instead of setX()) - * @param {String} left The left CSS property value - * @return {Ext.Element} this - */ - setLeft : function(left){ - this.setStyle("left", this.addUnits(left)); - return this; - }, - - /** - * Set the element's top position directly using CSS style (instead of setY()) - * @param {String} top The top CSS property value - * @return {Ext.Element} this - */ - setTop : function(top){ - this.setStyle("top", this.addUnits(top)); - return this; - }, - - /** - * Set the element's css right style - * @param {String} right The right CSS property value - * @return {Ext.Element} this - */ - setRight : function(right){ - this.setStyle("right", this.addUnits(right)); - return this; - }, - - /** - * Set the element's css bottom style - * @param {String} bottom The bottom CSS property value - * @return {Ext.Element} this - */ - setBottom : function(bottom){ - this.setStyle("bottom", this.addUnits(bottom)); - return this; - }, - - /** - * Set the position of the element in page coordinates, regardless of how the element is positioned. - * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - * @param {Array} pos Contains X & Y [x, y] values for new position (coordinates are page-based) - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - setXY : function(pos, animate){ - if(!animate || !A){ - D.setXY(this.dom, pos); - }else{ - this.anim({points: {to: pos}}, this.preanim(arguments, 1), 'motion'); - } - return this; - }, - - /** - * Set the position of the element in page coordinates, regardless of how the element is positioned. - * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - * @param {Number} x X value for new position (coordinates are page-based) - * @param {Number} y Y value for new position (coordinates are page-based) - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - setLocation : function(x, y, animate){ - this.setXY([x, y], this.preanim(arguments, 2)); - return this; - }, - - /** - * Set the position of the element in page coordinates, regardless of how the element is positioned. - * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - * @param {Number} x X value for new position (coordinates are page-based) - * @param {Number} y Y value for new position (coordinates are page-based) - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - moveTo : function(x, y, animate){ - this.setXY([x, y], this.preanim(arguments, 2)); - return this; - }, - - /** - * Returns the region of the given element. - * The element must be part of the DOM tree to have a region (display:none or elements not appended return false). - * @return {Region} A Ext.lib.Region containing "top, left, bottom, right" member data. - */ - getRegion : function(){ - return D.getRegion(this.dom); - }, - - /** - * Returns the offset height of the element - * @param {Boolean} contentHeight (optional) true to get the height minus borders and padding - * @return {Number} The element's height - */ - getHeight : function(contentHeight){ - var h = this.dom.offsetHeight || 0; - return contentHeight !== true ? h : h-this.getBorderWidth("tb")-this.getPadding("tb"); - }, - - /** - * Returns the offset width of the element - * @param {Boolean} contentWidth (optional) true to get the width minus borders and padding - * @return {Number} The element's width - */ - getWidth : function(contentWidth){ - var w = this.dom.offsetWidth || 0; - return contentWidth !== true ? w : w-this.getBorderWidth("lr")-this.getPadding("lr"); - }, - - /** - * Returns either the offsetHeight or the height of this element based on CSS height adjusted by padding or borders - * when needed to simulate offsetHeight when offsets aren't available. This may not work on display:none elements - * if a height has not been set using CSS. - * @return {Number} - */ - getComputedHeight : function(){ - var h = Math.max(this.dom.offsetHeight, this.dom.clientHeight); - if(!h){ - h = parseInt(this.getStyle('height'), 10) || 0; - if(!this.isBorderBox()){ - h += this.getFrameWidth('tb'); - } - } - return h; - }, - - /** - * Returns either the offsetWidth or the width of this element based on CSS width adjusted by padding or borders - * when needed to simulate offsetWidth when offsets aren't available. This may not work on display:none elements - * if a width has not been set using CSS. - * @return {Number} - */ - getComputedWidth : function(){ - var w = Math.max(this.dom.offsetWidth, this.dom.clientWidth); - if(!w){ - w = parseInt(this.getStyle('width'), 10) || 0; - if(!this.isBorderBox()){ - w += this.getFrameWidth('lr'); - } - } - return w; - }, - - /** - * Returns the size of the element - * @param {Boolean} contentSize (optional) true to get the width/size minus borders and padding - * @return {Object} An object containing the element's size {width: (element width), height: (element height)} - */ - getSize : function(contentSize){ - return {width: this.getWidth(contentSize), height: this.getHeight(contentSize)}; - }, - - getViewSize : function(){ - var d = this.dom, doc = document, aw = 0, ah = 0; - if(d == doc || d == doc.body){ - return {width : D.getViewWidth(), height: D.getViewHeight()}; - }else{ - return { - width : d.clientWidth, - height: d.clientHeight - }; - } - }, - - /** - * Returns the value of the "value" attribute - * @param {Boolean} asNumber true to parse the value as a number - * @return {String/Number} - */ - getValue : function(asNumber){ - return asNumber ? parseInt(this.dom.value, 10) : this.dom.value; - }, - - /** @private */ - adjustWidth : function(width){ - if(typeof width == "number"){ - if(this.autoBoxAdjust && !this.isBorderBox()){ - width -= (this.getBorderWidth("lr") + this.getPadding("lr")); - } - if(width < 0){ - width = 0; - } - } - return width; - }, - - /** @private */ - adjustHeight : function(height){ - if(typeof height == "number"){ - if(this.autoBoxAdjust && !this.isBorderBox()){ - height -= (this.getBorderWidth("tb") + this.getPadding("tb")); - } - if(height < 0){ - height = 0; - } - } - return height; - }, - - /** - * Set the width of the element - * @param {Number} width The new width - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - setWidth : function(width, animate){ - width = this.adjustWidth(width); - if(!animate || !A){ - this.dom.style.width = this.addUnits(width); - }else{ - this.anim({width: {to: width}}, this.preanim(arguments, 1)); - } - return this; - }, - - /** - * Set the height of the element - * @param {Number} height The new height - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - setHeight : function(height, animate){ - height = this.adjustHeight(height); - if(!animate || !A){ - this.dom.style.height = this.addUnits(height); - }else{ - this.anim({height: {to: height}}, this.preanim(arguments, 1)); - } - return this; - }, - - /** - * Set the size of the element. If animation is true, both width an height will be animated concurrently. - * @param {Number} width The new width - * @param {Number} height The new height - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - setSize : function(width, height, animate){ - if(typeof width == "object"){ // in case of object from getSize() - height = width.height; width = width.width; - } - width = this.adjustWidth(width); height = this.adjustHeight(height); - if(!animate || !A){ - this.dom.style.width = this.addUnits(width); - this.dom.style.height = this.addUnits(height); - }else{ - this.anim({width: {to: width}, height: {to: height}}, this.preanim(arguments, 2)); - } - return this; - }, - - /** - * Sets the element's position and size in one shot. If animation is true then width, height, x and y will be animated concurrently. - * @param {Number} x X value for new position (coordinates are page-based) - * @param {Number} y Y value for new position (coordinates are page-based) - * @param {Number} width The new width - * @param {Number} height The new height - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - setBounds : function(x, y, width, height, animate){ - if(!animate || !A){ - this.setSize(width, height); - this.setLocation(x, y); - }else{ - width = this.adjustWidth(width); height = this.adjustHeight(height); - this.anim({points: {to: [x, y]}, width: {to: width}, height: {to: height}}, - this.preanim(arguments, 4), 'motion'); - } - return this; - }, - - /** - * Sets the element's position and size the the specified region. If animation is true then width, height, x and y will be animated concurrently. - * @param {Ext.lib.Region} region The region to fill - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - setRegion : function(region, animate){ - this.setBounds(region.left, region.top, region.right-region.left, region.bottom-region.top, this.preanim(arguments, 1)); - return this; - }, - - /** - * Appends an event handler - * - * @param {String} eventName The type of event to append - * @param {Function} fn The method the event invokes - * @param {Object} scope (optional) The scope (this object) of the fn - * @param {Object} options (optional)An object with standard EventManager options - */ - addListener : function(eventName, fn, scope, options){ - Ext.EventManager.on(this.dom, eventName, fn, scope || this, options); - }, - - /** - * Removes an event handler from this element - * @param {String} eventName the type of event to remove - * @param {Function} fn the method the event invokes - * @return {Ext.Element} this - */ - removeListener : function(eventName, fn){ - Ext.EventManager.removeListener(this.dom, eventName, fn); - return this; - }, - - /** - * Removes all previous added listeners from this element - * @return {Ext.Element} this - */ - removeAllListeners : function(){ - E.purgeElement(this.dom); - return this; - }, - - relayEvent : function(eventName, observable){ - this.on(eventName, function(e){ - observable.fireEvent(eventName, e); - }); - }, - - /** - * Set the opacity of the element - * @param {Float} opacity The new opacity. 0 = transparent, .5 = 50% visibile, 1 = fully visible, etc - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - setOpacity : function(opacity, animate){ - if(!animate || !A){ - var s = this.dom.style; - if(Ext.isIE){ - s.zoom = 1; - s.filter = (s.filter || '').replace(/alpha\([^\)]*\)/gi,"") + - (opacity == 1 ? "" : "alpha(opacity=" + opacity * 100 + ")"); - }else{ - s.opacity = opacity; - } - }else{ - this.anim({opacity: {to: opacity}}, this.preanim(arguments, 1), null, .35, 'easeIn'); - } - return this; - }, - - /** - * Gets the left X coordinate - * @param {Boolean} local True to get the local css position instead of page coordinate - * @return {Number} - */ - getLeft : function(local){ - if(!local){ - return this.getX(); - }else{ - return parseInt(this.getStyle("left"), 10) || 0; - } - }, - - /** - * Gets the right X coordinate of the element (element X position + element width) - * @param {Boolean} local True to get the local css position instead of page coordinate - * @return {Number} - */ - getRight : function(local){ - if(!local){ - return this.getX() + this.getWidth(); - }else{ - return (this.getLeft(true) + this.getWidth()) || 0; - } - }, - - /** - * Gets the top Y coordinate - * @param {Boolean} local True to get the local css position instead of page coordinate - * @return {Number} - */ - getTop : function(local) { - if(!local){ - return this.getY(); - }else{ - return parseInt(this.getStyle("top"), 10) || 0; - } - }, - - /** - * Gets the bottom Y coordinate of the element (element Y position + element height) - * @param {Boolean} local True to get the local css position instead of page coordinate - * @return {Number} - */ - getBottom : function(local){ - if(!local){ - return this.getY() + this.getHeight(); - }else{ - return (this.getTop(true) + this.getHeight()) || 0; - } - }, - - /** - * Initializes positioning on this element. If a desired position is not passed, it will make the - * the element positioned relative IF it is not already positioned. - * @param {String} pos (optional) Positioning to use "relative", "absolute" or "fixed" - * @param {Number} zIndex (optional) The zIndex to apply - * @param {Number} x (optional) Set the page X position - * @param {Number} y (optional) Set the page Y position - */ - position : function(pos, zIndex, x, y){ - if(!pos){ - if(this.getStyle('position') == 'static'){ - this.setStyle('position', 'relative'); - } - }else{ - this.setStyle("position", pos); - } - if(zIndex){ - this.setStyle("z-index", zIndex); - } - if(x !== undefined && y !== undefined){ - this.setXY([x, y]); - }else if(x !== undefined){ - this.setX(x); - }else if(y !== undefined){ - this.setY(y); - } - }, - - /** - * Clear positioning back to the default when the document was loaded - * @param {String} value (optional) The value to use for the left,right,top,bottom, defaults to '' (empty string). You could use 'auto'. - * @return {Ext.Element} this - */ - clearPositioning : function(value){ - value = value ||''; - this.setStyle({ - "left": value, - "right": value, - "top": value, - "bottom": value, - "z-index": "", - "position" : "static" - }); - return this; - }, - - /** - * Gets an object with all CSS positioning properties. Useful along with setPostioning to get - * snapshot before performing an update and then restoring the element. - * @return {Object} - */ - getPositioning : function(){ - var l = this.getStyle("left"); - var t = this.getStyle("top"); - return { - "position" : this.getStyle("position"), - "left" : l, - "right" : l ? "" : this.getStyle("right"), - "top" : t, - "bottom" : t ? "" : this.getStyle("bottom"), - "z-index" : this.getStyle("z-index") - }; - }, - - /** - * Gets the width of the border(s) for the specified side(s) - * @param {String} side Can be t, l, r, b or any combination of those to add multiple values. For example, - * passing lr would get the border (l)eft width + the border (r)ight width. - * @return {Number} The width of the sides passed added together - */ - getBorderWidth : function(side){ - return this.addStyles(side, El.borders); - }, - - /** - * Gets the width of the padding(s) for the specified side(s) - * @param {String} side Can be t, l, r, b or any combination of those to add multiple values. For example, - * passing lr would get the padding (l)eft + the padding (r)ight. - * @return {Number} The padding of the sides passed added together - */ - getPadding : function(side){ - return this.addStyles(side, El.paddings); - }, - - /** - * Set positioning with an object returned by getPositioning(). - * @param {Object} posCfg - * @return {Ext.Element} this - */ - setPositioning : function(pc){ - this.applyStyles(pc); - if(pc.right == "auto"){ - this.dom.style.right = ""; - } - if(pc.bottom == "auto"){ - this.dom.style.bottom = ""; - } - return this; - }, - - fixDisplay : function(){ - if(this.getStyle("display") == "none"){ - this.setStyle("visibility", "hidden"); - this.setStyle("display", this.originalDisplay); // first try reverting to default - if(this.getStyle("display") == "none"){ // if that fails, default to block - this.setStyle("display", "block"); - } - } - }, - - /** - * Quick set left and top adding default units - * @return {Ext.Element} this - */ - setLeftTop : function(left, top){ - this.dom.style.left = this.addUnits(left); - this.dom.style.top = this.addUnits(top); - return this; - }, - - /** - * Move this element relative to its current position. - * @param {String} direction Possible values are: "l","left" - "r","right" - "t","top","up" - "b","bottom","down". - * @param {Number} distance How far to move the element in pixels - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - move : function(direction, distance, animate){ - var xy = this.getXY(); - direction = direction.toLowerCase(); - switch(direction){ - case "l": - case "left": - this.moveTo(xy[0]-distance, xy[1], this.preanim(arguments, 2)); - break; - case "r": - case "right": - this.moveTo(xy[0]+distance, xy[1], this.preanim(arguments, 2)); - break; - case "t": - case "top": - case "up": - this.moveTo(xy[0], xy[1]-distance, this.preanim(arguments, 2)); - break; - case "b": - case "bottom": - case "down": - this.moveTo(xy[0], xy[1]+distance, this.preanim(arguments, 2)); - break; - } - return this; - }, - - /** - * Store the current overflow setting and clip overflow on the element - use {@link #unclip} to remove - * @return {Ext.Element} this - */ - clip : function(){ - if(!this.isClipped){ - this.isClipped = true; - this.originalClip = { - "o": this.getStyle("overflow"), - "x": this.getStyle("overflow-x"), - "y": this.getStyle("overflow-y") - }; - this.setStyle("overflow", "hidden"); - this.setStyle("overflow-x", "hidden"); - this.setStyle("overflow-y", "hidden"); - } - return this; - }, - - /** - * Return clipping (overflow) to original clipping before clip() was called - * @return {Ext.Element} this - */ - unclip : function(){ - if(this.isClipped){ - this.isClipped = false; - var o = this.originalClip; - if(o.o){this.setStyle("overflow", o.o);} - if(o.x){this.setStyle("overflow-x", o.x);} - if(o.y){this.setStyle("overflow-y", o.y);} - } - return this; - }, - - - /** - * Gets the x,y coordinates specified by the anchor position on the element. - * @param {String} anchor (optional) The specified anchor position (defaults to "c"). See {@link #alignTo} for details on supported anchor positions. - * @param {Object} size (optional) An object containing the size to use for calculating anchor position - * {width: (target width), height: (target height)} (defaults to the element's current size) - * @param {Boolean} local (optional) True to get the local (element top/left-relative) anchor position instead of page coordinates - * @return {Array} [x, y] An array containing the element's x and y coordinates - */ - getAnchorXY : function(anchor, local, s){ - //Passing a different size is useful for pre-calculating anchors, - //especially for anchored animations that change the el size. - - var w, h, vp = false; - if(!s){ - var d = this.dom; - if(d == document.body || d == document){ - vp = true; - w = D.getViewWidth(); h = D.getViewHeight(); - }else{ - w = this.getWidth(); h = this.getHeight(); - } - }else{ - w = s.width; h = s.height; - } - var x = 0, y = 0, r = Math.round; - switch((anchor || "tl").toLowerCase()){ - case "c": - x = r(w*.5); - y = r(h*.5); - break; - case "t": - x = r(w*.5); - y = 0; - break; - case "l": - x = 0; - y = r(h*.5); - break; - case "r": - x = w; - y = r(h*.5); - break; - case "b": - x = r(w*.5); - y = h; - break; - case "tl": - x = 0; - y = 0; - break; - case "bl": - x = 0; - y = h; - break; - case "br": - x = w; - y = h; - break; - case "tr": - x = w; - y = 0; - break; - } - if(local === true){ - return [x, y]; - } - if(vp){ - var sc = this.getScroll(); - return [x + sc.left, y + sc.top]; - } - //Add the element's offset xy - var o = this.getXY(); - return [x+o[0], y+o[1]]; - }, - - /** - * Gets the x,y coordinates to align this element with another element. See {@link #alignTo} for more info on the - * supported position values. - * @param {String/HTMLElement/Ext.Element} element The element to align to. - * @param {String} position The position to align to. - * @param {Array} offsets (optional) Offset the positioning by [x, y] - * @return {Array} [x, y] - */ - getAlignToXY : function(el, p, o){ - el = Ext.get(el), d = this.dom; - if(!el.dom){ - throw "Element.alignTo with an element that doesn't exist"; - } - var c = false; //constrain to viewport - var p1 = "", p2 = ""; - o = o || [0,0]; - - if(!p){ - p = "tl-bl"; - }else if(p == "?"){ - p = "tl-bl?"; - }else if(p.indexOf("-") == -1){ - p = "tl-" + p; - } - p = p.toLowerCase(); - var m = p.match(/^([a-z]+)-([a-z]+)(\?)?$/); - if(!m){ - throw "Element.alignTo with an invalid alignment " + p; - } - p1 = m[1], p2 = m[2], c = m[3] ? true : false; - - //Subtract the aligned el"s internal xy from the target"s offset xy - //plus custom offset to get the aligned el's new offset xy - var a1 = this.getAnchorXY(p1, true); - var a2 = el.getAnchorXY(p2, false); - var x = a2[0] - a1[0] + o[0]; - var y = a2[1] - a1[1] + o[1]; - if(c){ - //constrain the aligned el to viewport if necessary - var w = this.getWidth(), h = this.getHeight(), r = el.getRegion(); - // 5px of margin for ie - var dw = D.getViewWidth()-5, dh = D.getViewHeight()-5; - - //If we are at a viewport boundary and the aligned el is anchored on a target border that is - //perpendicular to the vp border, allow the aligned el to slide on that border, - //otherwise swap the aligned el to the opposite border of the target. - var p1y = p1.charAt(0), p1x = p1.charAt(p1.length-1); - var p2y = p2.charAt(0), p2x = p2.charAt(p2.length-1); - var swapY = ((p1y=="t" && p2y=="b") || (p1y=="b" && p2y=="t")); - var swapX = ((p1x=="r" && p2x=="l") || (p1x=="l" && p2x=="r")); - - var doc = document; - var scrollX = (doc.documentElement.scrollLeft || doc.body.scrollLeft || 0)+5; - var scrollY = (doc.documentElement.scrollTop || doc.body.scrollTop || 0)+5; - - if((x+w) > dw){ - x = swapX ? r.left-w : dw-w; - } - if(x < scrollX){ - x = swapX ? r.right : scrollX; - } - if((y+h) > dh){ - y = swapY ? r.top-h : dh-h; - } - if (y < scrollY){ - y = swapY ? r.bottom : scrollY; - } - } - return [x,y]; - }, - - getConstrainToXY : function(){ - var os = {top:0, left:0, bottom:0, right: 0}; - - return function(el, local, offsets){ - el = Ext.get(el); - offsets = offsets ? Ext.applyIf(offsets, os) : os; - - var vw, vh, vx = 0, vy = 0; - if(el.dom == document.body || el.dom == document){ - vw = Ext.lib.Dom.getViewWidth(); - vh = Ext.lib.Dom.getViewHeight(); - }else{ - vw = el.dom.clientWidth; - vh = el.dom.clientHeight; - if(!local){ - var vxy = el.getXY(); - vx = vxy[0]; - vy = vxy[1]; - } - } - - var s = el.getScroll(); - - vx += offsets.left + s.left; - vy += offsets.top + s.top; - - vw -= offsets.right; - vh -= offsets.bottom; - - var vr = vx+vw; - var vb = vy+vh; - - var xy = !local ? this.getXY() : [this.getLeft(true), this.getTop(true)]; - var x = xy[0], y = xy[1]; - var w = this.dom.offsetWidth, h = this.dom.offsetHeight; - - // only move it if it needs it - var moved = false; - - // first validate right/bottom - if((x + w) > vr){ - x = vr - w; - moved = true; - } - if((y + h) > vb){ - y = vb - h; - moved = true; - } - // then make sure top/left isn't negative - if(x < vx){ - x = vx; - moved = true; - } - if(y < vy){ - y = vy; - moved = true; - } - return moved ? [x, y] : false; - }; - }(), - - /** - * Aligns this element with another element relative to the specified anchor points. If the other element is the - * document it aligns it to the viewport. - * The position parameter is optional, and can be specified in any one of the following formats: - *
          - *
        • Blank: Defaults to aligning the element"s top-left corner to the target"s bottom-left corner ("tl-bl").
        • - *
        • One anchor (deprecated): The passed anchor position is used as the target element's anchor point. - * The element being aligned will position its top-left corner (tl) to that point. This method has been - * deprecated in favor of the newer two anchor syntax below.
        • - *
        • Two anchors: If two values from the table below are passed separated by a dash, the first value is used as the - * element"s anchor point, and the second value is used as the target"s anchor point.
        • - *
        - * In addition to the anchor points, the position parameter also supports the "?" character. If "?" is passed at the end of - * the position string, the element will attempt to align as specified, but the position will be adjusted to constrain to - * the viewport if necessary. Note that the element being aligned might be swapped to align to a different position than - * that specified in order to enforce the viewport constraints. - * Following are all of the supported anchor positions: -
        -Value  Description
        ------  -----------------------------
        -tl     The top left corner (default)
        -t      The center of the top edge
        -tr     The top right corner
        -l      The center of the left edge
        -c      In the center of the element
        -r      The center of the right edge
        -bl     The bottom left corner
        -b      The center of the bottom edge
        -br     The bottom right corner
        -
        -Example Usage: -
        
        -// align el to other-el using the default positioning ("tl-bl", non-constrained)
        -el.alignTo("other-el");
        -
        -// align the top left corner of el with the top right corner of other-el (constrained to viewport)
        -el.alignTo("other-el", "tr?");
        -
        -// align the bottom right corner of el with the center left edge of other-el
        -el.alignTo("other-el", "br-l?");
        -
        -// align the center of el with the bottom left corner of other-el and
        -// adjust the x position by -6 pixels (and the y position by 0)
        -el.alignTo("other-el", "c-bl", [-6, 0]);
        -
        - * @param {String/HTMLElement/Ext.Element} element The element to align to. - * @param {String} position The position to align to. - * @param {Array} offsets (optional) Offset the positioning by [x, y] - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - alignTo : function(element, position, offsets, animate){ - var xy = this.getAlignToXY(element, position, offsets); - this.setXY(xy, this.preanim(arguments, 3)); - return this; - }, - - /** - * Anchors an element to another element and realigns it when the window is resized. - * @param {String/HTMLElement/Ext.Element} element The element to align to. - * @param {String} position The position to align to. - * @param {Array} offsets (optional) Offset the positioning by [x, y] - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @param {Boolean/Number} monitorScroll (optional) true to monitor body scroll and reposition. If this parameter - * is a number, it is used as the buffer delay (defaults to 50ms). - * @param - */ - anchorTo : function(el, alignment, offsets, animate, monitorScroll, callback){ - var action = function(){ - this.alignTo(el, alignment, offsets, animate); - Ext.callback(callback, this); - }; - Ext.EventManager.onWindowResize(action, this); - var tm = typeof monitorScroll; - if(tm != 'undefined'){ - Ext.EventManager.on(window, 'scroll', action, this, - {buffer: tm == 'number' ? monitorScroll : 50}); - } - action.call(this); // align immediately - return this; - }, - /** - * Clears any opacity settings from this element. Required in some cases for IE. - * @return {Ext.Element} this - */ - clearOpacity : function(){ - if (window.ActiveXObject) { - this.dom.style.filter = ""; - } else { - this.dom.style.opacity = ""; - this.dom.style["-moz-opacity"] = ""; - this.dom.style["-khtml-opacity"] = ""; - } - return this; - }, - - /** - * Hide this element - Uses display mode to determine whether to use "display" or "visibility". See {@link #setVisible}. - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - hide : function(animate){ - this.setVisible(false, this.preanim(arguments, 0)); - return this; - }, - - /** - * Show this element - Uses display mode to determine whether to use "display" or "visibility". See {@link #setVisible}. - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - show : function(animate){ - this.setVisible(true, this.preanim(arguments, 0)); - return this; - }, - - /** - * @private Test if size has a unit, otherwise appends the default - */ - addUnits : function(size){ - return Ext.Element.addUnits(size, this.defaultUnit); - }, - - /** - * Temporarily enables offsets (width,height,x,y) for an element with display:none, use endMeasure() when done. - * @return {Ext.Element} this - */ - beginMeasure : function(){ - var el = this.dom; - if(el.offsetWidth || el.offsetHeight){ - return this; // offsets work already - } - var changed = []; - var p = this.dom, b = document.body; // start with this element - while((!el.offsetWidth && !el.offsetHeight) && p && p.tagName && p != b){ - var pe = Ext.get(p); - if(pe.getStyle('display') == 'none'){ - changed.push({el: p, visibility: pe.getStyle("visibility")}); - p.style.visibility = "hidden"; - p.style.display = "block"; - } - p = p.parentNode; - } - this._measureChanged = changed; - return this; - - }, - - /** - * Restores displays to before beginMeasure was called - * @return {Ext.Element} this - */ - endMeasure : function(){ - var changed = this._measureChanged; - if(changed){ - for(var i = 0, len = changed.length; i < len; i++) { - var r = changed[i]; - r.el.style.visibility = r.visibility; - r.el.style.display = "none"; - } - this._measureChanged = null; - } - return this; - }, - - /** - * Update the innerHTML of this element, optionally searching for and processing scripts - * @param {String} html The new HTML - * @param {Boolean} loadScripts (optional) true to look for and process scripts - * @param {Function} callback For async script loading you can be noticed when the update completes - * @return {Ext.Element} this - */ - update : function(html, loadScripts, callback){ - if(typeof html == "undefined"){ - html = ""; - } - if(loadScripts !== true){ - this.dom.innerHTML = html; - if(typeof callback == "function"){ - callback(); - } - return this; - } - var id = Ext.id(); - var dom = this.dom; - - html += ''; - - E.onAvailable(id, function(){ - var hd = document.getElementsByTagName("head")[0]; - var re = /(?:]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig; - var srcRe = /\ssrc=([\'\"])(.*?)\1/i; - var typeRe = /\stype=([\'\"])(.*?)\1/i; - - var match; - while(match = re.exec(html)){ - var attrs = match[1]; - var srcMatch = attrs ? attrs.match(srcRe) : false; - if(srcMatch && srcMatch[2]){ - var s = document.createElement("script"); - s.src = srcMatch[2]; - var typeMatch = attrs.match(typeRe); - if(typeMatch && typeMatch[2]){ - s.type = typeMatch[2]; - } - hd.appendChild(s); - }else if(match[2] && match[2].length > 0){ - eval(match[2]); - } - } - var el = document.getElementById(id); - if(el){el.parentNode.removeChild(el);} - if(typeof callback == "function"){ - callback(); - } - }); - dom.innerHTML = html.replace(/(?:)((\n|\r|.)*?)(?:<\/script>)/ig, ""); - return this; - }, - - /** - * Direct access to the UpdateManager update() method (takes the same parameters). - * @param {String/Function} url The url for this request or a function to call to get the url - * @param {String/Object} params (optional) The parameters to pass as either a url encoded string "param1=1&param2=2" or an object {param1: 1, param2: 2} - * @param {Function} callback (optional) Callback when transaction is complete - called with signature (oElement, bSuccess) - * @param {Boolean} discardUrl (optional) By default when you execute an update the defaultUrl is changed to the last used url. If true, it will not store the url. - * @return {Ext.Element} this - */ - load : function(){ - var um = this.getUpdateManager(); - um.update.apply(um, arguments); - return this; - }, - - /** - * Gets this elements UpdateManager - * @return {Ext.UpdateManager} The UpdateManager - */ - getUpdateManager : function(){ - if(!this.updateManager){ - this.updateManager = new Ext.UpdateManager(this); - } - return this.updateManager; - }, - - /** - * Disables text selection for this element (normalized across browsers) - * @return {Ext.Element} this - */ - unselectable : function(){ - this.dom.unselectable = "on"; - this.swallowEvent("selectstart", true); - this.applyStyles("-moz-user-select:none;-khtml-user-select:none;"); - this.addClass("x-unselectable"); - return this; - }, - - /** - * Calculates the x, y to center this element on the screen - * @return {Array} The x, y values [x, y] - */ - getCenterXY : function(){ - return this.getAlignToXY(document, 'c-c'); - }, - - /** - * Centers the Element in either the viewport, or another Element. - * @param {String/HTMLElement/Ext.Element} centerIn (optional) The element in which to center the element. - */ - center : function(centerIn){ - this.alignTo(centerIn || document, 'c-c'); - return this; - }, - - /** - * Tests various css rules/browsers to determine if this element uses a border box - * @return {Boolean} - */ - isBorderBox : function(){ - return noBoxAdjust[this.dom.tagName.toLowerCase()] || Ext.isBorderBox; - }, - - /** - * Return a box {x, y, width, height} that can be used to set another elements - * size/location to match this element. - * @param {Boolean} contentBox (optional) If true a box for the content of the element is returned. - * @param {Boolean} local (optional) If true the element's left and top are returned instead of page x/y. - * @return {Object} - */ - getBox : function(contentBox, local){ - var xy; - if(!local){ - xy = this.getXY(); - }else{ - var left = parseInt(this.getStyle("left"), 10) || 0; - var top = parseInt(this.getStyle("top"), 10) || 0; - xy = [left, top]; - } - var el = this.dom, w = el.offsetWidth, h = el.offsetHeight, bx; - if(!contentBox){ - bx = {x: xy[0], y: xy[1], 0: xy[0], 1: xy[1], width: w, height: h}; - }else{ - var l = this.getBorderWidth("l")+this.getPadding("l"); - var r = this.getBorderWidth("r")+this.getPadding("r"); - var t = this.getBorderWidth("t")+this.getPadding("t"); - var b = this.getBorderWidth("b")+this.getPadding("b"); - bx = {x: xy[0]+l, y: xy[1]+t, 0: xy[0]+l, 1: xy[1]+t, width: w-(l+r), height: h-(t+b)}; - } - bx.right = bx.x + bx.width; - bx.bottom = bx.y + bx.height; - return bx; - }, - - /** - * Returns the sum width of the padding and borders for the passed "sides". See getBorderWidth() - for more information about the sides. - * @param {String} sides - * @return {Number} - */ - getFrameWidth : function(sides){ - return this.getPadding(sides) + this.getBorderWidth(sides); - }, - - /** - * Sets the element's box. Use getBox() on another element to get a box obj. If animate is true then width, height, x and y will be animated concurrently. - * @param {Object} box The box to fill {x, y, width, height} - * @param {Boolean} adjust (optional) Whether to adjust for box-model issues automatically - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Ext.Element} this - */ - setBox : function(box, adjust, animate){ - var w = box.width, h = box.height; - if((adjust && !this.autoBoxAdjust) && !this.isBorderBox()){ - w -= (this.getBorderWidth("lr") + this.getPadding("lr")); - h -= (this.getBorderWidth("tb") + this.getPadding("tb")); - } - this.setBounds(box.x, box.y, w, h, this.preanim(arguments, 2)); - return this; - }, - - /** - * Forces the browser to repaint this element - * @return {Ext.Element} this - */ - repaint : function(){ - var dom = this.dom; - this.addClass("x-repaint"); - setTimeout(function(){ - Ext.get(dom).removeClass("x-repaint"); - }, 1); - return this; - }, - - /** - * Returns an object with properties top, left, right and bottom representing the margins of this element unless sides is passed, - * then it returns the calculated width of the sides (see getPadding) - * @param {String} sides (optional) Any combination of l, r, t, b to get the sum of those sides - * @return {Object/Number} - */ - getMargins : function(side){ - if(!side){ - return { - top: parseInt(this.getStyle("margin-top"), 10) || 0, - left: parseInt(this.getStyle("margin-left"), 10) || 0, - bottom: parseInt(this.getStyle("margin-bottom"), 10) || 0, - right: parseInt(this.getStyle("margin-right"), 10) || 0 - }; - }else{ - return this.addStyles(side, El.margins); - } - }, - - addStyles : function(sides, styles){ - var val = 0; - for(var i = 0, len = sides.length; i < len; i++){ - var w = parseInt(this.getStyle(styles[sides.charAt(i)]), 10); - if(!isNaN(w)) val += w; - } - return val; - }, - - /** - * Creates a proxy element of this element - * @param {String/Object} config The class name of the proxy element or a DomHelper config object - * @param {String/HTMLElement} renderTo (optional) The element or element id to render the proxy to (defaults to document.body) - * @param {Boolean} matchBox (optional) True to align and size the proxy to this element now (defaults to false) - * @return {Ext.Element} The new proxy element - */ - createProxy : function(config, renderTo, matchBox){ - if(renderTo){ - renderTo = Ext.getDom(renderTo); - }else{ - renderTo = document.body; - } - config = typeof config == "object" ? - config : {tag : "div", cls: config}; - var proxy = Ext.DomHelper.append(renderTo, config, true); - if(matchBox){ - proxy.setBox(this.getBox()); - } - return proxy; - }, - - /** - * Puts a mask over this element to disable user interaction. Requires core.css. - * This method can only be applied to elements which accept child nodes. - * @param {String} msg (optional) A message to display in the mask - * @param {String} msgCls (optional) A css class to apply to the msg element - * @return {Element} The message element - */ - mask : function(msg, msgCls){ - if(this.getStyle("position") == "static"){ - this.setStyle("position", "relative"); - } - if(!this._mask){ - this._mask = Ext.DomHelper.append(this.dom, {tag:"div", cls:"ext-el-mask"}, true); - } - this.addClass("x-masked"); - this._mask.setDisplayed(true); - if(typeof msg == 'string'){ - if(!this._maskMsg){ - this._maskMsg = Ext.DomHelper.append(this.dom, {tag:"div", cls:"ext-el-mask-msg", cn:{tag:'div'}}, true); - } - var mm = this._maskMsg; - mm.dom.className = msgCls ? "ext-el-mask-msg " + msgCls : "ext-el-mask-msg"; - mm.dom.firstChild.innerHTML = msg; - mm.setDisplayed(true); - mm.center(this); - } - return this._mask; - }, - - /** - * Removes a previously applied mask. If removeEl is true the mask overlay is destroyed, otherwise - * it is cached for reuse. - */ - unmask : function(removeEl){ - if(this._mask){ - if(removeEl === true){ - this._mask.remove(); - delete this._mask; - if(this._maskMsg){ - this._maskMsg.remove(); - delete this._maskMsg; - } - }else{ - this._mask.setDisplayed(false); - if(this._maskMsg){ - this._maskMsg.setDisplayed(false); - } - } - } - this.removeClass("x-masked"); - }, - - /** - * Returns true if this element is masked - * @return {Boolean} - */ - isMasked : function(){ - return this._mask && this._mask.isVisible(); - }, - - /** - * Creates an iframe shim for this element to keep selects and other windowed objects from - * showing through. - * @return {Ext.Element} The new shim element - */ - createShim : function(){ - var el = document.createElement('iframe'); - el.frameBorder = 'no'; - el.className = 'ext-shim'; - if(Ext.isIE && Ext.isSecure){ - el.src = Ext.SSL_SECURE_URL; - } - var shim = Ext.get(this.dom.parentNode.insertBefore(el, this.dom)); - shim.autoBoxAdjust = false; - return shim; - }, - - /** - * Removes this element from the DOM and deletes it from the cache - */ - remove : function(){ - if(this.dom.parentNode){ - this.dom.parentNode.removeChild(this.dom); - } - delete El.cache[this.dom.id]; - }, - - /** - * Sets up event handlers to add and remove a css class when the mouse is over this element - * @param {String} className - * @param {Boolean} preventFlicker (optional) If set to true, it prevents flickering by filtering - * mouseout events for children elements - * @return {Ext.Element} this - */ - addClassOnOver : function(className, preventFlicker){ - this.on("mouseover", function(){ - Ext.fly(this, '_internal').addClass(className); - }, this.dom); - var removeFn = function(e){ - if(preventFlicker !== true || !e.within(this, true)){ - Ext.fly(this, '_internal').removeClass(className); - } - }; - this.on("mouseout", removeFn, this.dom); - return this; - }, - - /** - * Sets up event handlers to add and remove a css class when this element has the focus - * @param {String} className - * @return {Ext.Element} this - */ - addClassOnFocus : function(className){ - this.on("focus", function(){ - Ext.fly(this, '_internal').addClass(className); - }, this.dom); - this.on("blur", function(){ - Ext.fly(this, '_internal').removeClass(className); - }, this.dom); - return this; - }, - /** - * Sets up event handlers to add and remove a css class when the mouse is down and then up on this element (a click effect) - * @param {String} className - * @return {Ext.Element} this - */ - addClassOnClick : function(className){ - var dom = this.dom; - this.on("mousedown", function(){ - Ext.fly(dom, '_internal').addClass(className); - var d = Ext.get(document); - var fn = function(){ - Ext.fly(dom, '_internal').removeClass(className); - d.removeListener("mouseup", fn); - }; - d.on("mouseup", fn); - }); - return this; - }, - - /** - * Stops the specified event from bubbling and optionally prevents the default action - * @param {String} eventName - * @param {Boolean} preventDefault (optional) true to prevent the default action too - * @return {Ext.Element} this - */ - swallowEvent : function(eventName, preventDefault){ - var fn = function(e){ - e.stopPropagation(); - if(preventDefault){ - e.preventDefault(); - } - }; - if(eventName instanceof Array){ - for(var i = 0, len = eventName.length; i < len; i++){ - this.on(eventName[i], fn); - } - return this; - } - this.on(eventName, fn); - return this; - }, - - /** - * Sizes this element to its parent element's dimensions performing - * neccessary box adjustments. - * @param {Boolean} monitorResize (optional) If true maintains the fit when the browser window is resized. - * @param {String/HTMLElment/Element} targetParent (optional) The target parent, default to the parentNode. - * @return {Ext.Element} this - */ - fitToParent : function(monitorResize, targetParent){ - var p = Ext.get(targetParent || this.dom.parentNode); - this.setSize(p.getComputedWidth()-p.getFrameWidth('lr'), p.getComputedHeight()-p.getFrameWidth('tb')); - if(monitorResize === true){ - Ext.EventManager.onWindowResize(this.fitToParent.createDelegate(this, [])); - } - return this; - }, - - /** - * Gets the next sibling, skipping text nodes - * @return {HTMLElement} The next sibling or null - */ - getNextSibling : function(){ - var n = this.dom.nextSibling; - while(n && n.nodeType != 1){ - n = n.nextSibling; - } - return n; - }, - - /** - * Gets the previous sibling, skipping text nodes - * @return {HTMLElement} The previous sibling or null - */ - getPrevSibling : function(){ - var n = this.dom.previousSibling; - while(n && n.nodeType != 1){ - n = n.previousSibling; - } - return n; - }, - - - /** - * Appends the passed element(s) to this element - * @param {String/HTMLElement/Array/Element/CompositeElement} el - * @return {Ext.Element} this - */ - appendChild: function(el){ - el = Ext.get(el); - el.appendTo(this); - return this; - }, - - /** - * Creates the passed DomHelper config and appends it to this element or optionally inserts it before the passed child element. - * @param {Object} config DomHelper element config object - * @param {HTMLElement} insertBefore (optional) a child element of this element - * @param {Boolean} returnDom (optional) true to return the dom node instead of creating an Element - * @return {Ext.Element} The new child element - */ - createChild: function(config, insertBefore, returnDom){ - config = config || {tag:'div'}; - if(insertBefore){ - return Ext.DomHelper.insertBefore(insertBefore, config, returnDom !== true); - } - return Ext.DomHelper[!this.dom.firstChild ? 'overwrite' : 'append'](this.dom, config, returnDom !== true); - }, - - /** - * Appends this element to the passed element - * @param {String/HTMLElement/Element} el The new parent element - * @return {Ext.Element} this - */ - appendTo: function(el){ - el = Ext.getDom(el); - el.appendChild(this.dom); - return this; - }, - - /** - * Inserts this element before the passed element in the DOM - * @param {String/HTMLElement/Element} el The element to insert before - * @return {Ext.Element} this - */ - insertBefore: function(el){ - el = Ext.getDom(el); - el.parentNode.insertBefore(this.dom, el); - return this; - }, - - /** - * Inserts this element after the passed element in the DOM - * @param {String/HTMLElement/Element} el The element to insert after - * @return {Ext.Element} this - */ - insertAfter: function(el){ - el = Ext.getDom(el); - el.parentNode.insertBefore(this.dom, el.nextSibling); - return this; - }, - - /** - * Inserts (or creates) an element (or DomHelper config) as the first child of the this element - * @param {String/HTMLElement/Element/Object} el The id or element to insert or a DomHelper config to create and insert - * @return {Ext.Element} The new child - */ - insertFirst: function(el, returnDom){ - el = el || {}; - if(typeof el == 'object' && !el.nodeType){ // dh config - return this.createChild(el, this.dom.firstChild, returnDom); - }else{ - el = Ext.getDom(el); - this.dom.insertBefore(el, this.dom.firstChild); - return !returnDom ? Ext.get(el) : el; - } - }, - - /** - * Inserts (or creates) the passed element (or DomHelper config) as a sibling of this element - * @param {String/HTMLElement/Element/Object} el The id or element to insert or a DomHelper config to create and insert - * @param {String} where (optional) 'before' or 'after' defaults to before - * @param {Boolean} returnDom (optional) True to return the raw DOM element instead of Ext.Element - * @return {Ext.Element} the inserted Element - */ - insertSibling: function(el, where, returnDom){ - where = where ? where.toLowerCase() : 'before'; - el = el || {}; - var rt, refNode = where == 'before' ? this.dom : this.dom.nextSibling; - - if(typeof el == 'object' && !el.nodeType){ // dh config - if(where == 'after' && !this.dom.nextSibling){ - rt = Ext.DomHelper.append(this.dom.parentNode, el, !returnDom); - }else{ - rt = Ext.DomHelper[where == 'after' ? 'insertAfter' : 'insertBefore'](this.dom, el, !returnDom); - } - - }else{ - rt = this.dom.parentNode.insertBefore(Ext.getDom(el), - where == 'before' ? this.dom : this.dom.nextSibling); - if(!returnDom){ - rt = Ext.get(rt); - } - } - return rt; - }, - - /** - * Creates and wraps this element with another element - * @param {Object} config (optional) DomHelper element config object for the wrapper element or null for an empty div - * @param {Boolean} returnDom (optional) True to return the raw DOM element instead of Ext.Element - * @return {/HTMLElementElement} The newly created wrapper element - */ - wrap: function(config, returnDom){ - if(!config){ - config = {tag: "div"}; - } - var newEl = Ext.DomHelper.insertBefore(this.dom, config, !returnDom); - newEl.dom ? newEl.dom.appendChild(this.dom) : newEl.appendChild(this.dom); - return newEl; - }, - - /** - * Replaces the passed element with this element - * @param {String/HTMLElement/Element} el The element to replace - * @return {Ext.Element} this - */ - replace: function(el){ - el = Ext.get(el); - this.insertBefore(el); - el.remove(); - return this; - }, - - /** - * Inserts an html fragment into this element - * @param {String} where Where to insert the html in relation to the this element - beforeBegin, afterBegin, beforeEnd, afterEnd. - * @param {String} html The HTML fragment - * @return {HTMLElement} The inserted node (or nearest related if more than 1 inserted) - */ - insertHtml : function(where, html){ - return Ext.DomHelper.insertHtml(where, this.dom, html); - }, - - /** - * Sets the passed attributes as attributes of this element (a style attribute can be a string, object or function) - * @param {Object} o The object with the attributes - * @param {Boolean} useSet (optional) false to override the default setAttribute to use expandos. - * @return {Ext.Element} this - */ - set : function(o, useSet){ - var el = this.dom; - useSet = typeof useSet == 'undefined' ? (el.setAttribute ? true : false) : useSet; - for(var attr in o){ - if(attr == "style" || typeof o[attr] == "function") continue; - if(attr=="cls"){ - el.className = o["cls"]; - }else{ - if(useSet) el.setAttribute(attr, o[attr]); - else el[attr] = o[attr]; - } - } - Ext.DomHelper.applyStyles(el, o.style); - return this; - }, - - /** - * Convenience method for constructing a KeyMap - * @param {Number/Array/Object/String} key Either a string with the keys to listen for, the numeric key code, array of key codes or an object with the following options: - * {key: (number or array), shift: (true/false), ctrl: (true/false), alt: (true/false)} - * @param {Function} fn The function to call - * @param {Object} scope (optional) The scope of the function - * @return {Ext.KeyMap} The KeyMap created - */ - addKeyListener : function(key, fn, scope){ - var config; - if(typeof key != "object" || key instanceof Array){ - config = { - key: key, - fn: fn, - scope: scope - }; - }else{ - config = { - key : key.key, - shift : key.shift, - ctrl : key.ctrl, - alt : key.alt, - fn: fn, - scope: scope - }; - } - return new Ext.KeyMap(this, config); - }, - - /** - * Creates a KeyMap for this element - * @param {Object} config The KeyMap config. See {@link Ext.KeyMap} for more details - * @return {Ext.KeyMap} The KeyMap created - */ - addKeyMap : function(config){ - return new Ext.KeyMap(this, config); - }, - - /** - * Returns true if this element is scrollable. - * @return {Boolean} - */ - isScrollable : function(){ - var dom = this.dom; - return dom.scrollHeight > dom.clientHeight || dom.scrollWidth > dom.clientWidth; - }, - - /** - * Scrolls this element the specified scroll point. It does NOT do bounds checking so if you scroll to a weird value it will try to do it. For auto bounds checking, use scroll(). - * @param {String} side Either "left" for scrollLeft values or "top" for scrollTop values. - * @param {Number} value The new scroll value - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Element} this - */ - - scrollTo : function(side, value, animate){ - var prop = side.toLowerCase() == "left" ? "scrollLeft" : "scrollTop"; - if(!animate || !A){ - this.dom[prop] = value; - }else{ - var to = prop == "scrollLeft" ? [value, this.dom.scrollTop] : [this.dom.scrollLeft, value]; - this.anim({scroll: {"to": to}}, this.preanim(arguments, 2), 'scroll'); - } - return this; - }, - - /** - * Scrolls this element the specified direction. Does bounds checking to make sure the scroll is - * within this elements scrollable range. - * @param {String} direction Possible values are: "l","left" - "r","right" - "t","top","up" - "b","bottom","down". - * @param {Number} distance How far to scroll the element in pixels - * @param {Boolean/Object} animate (optional) true for the default animation or a standard Element animation config object - * @return {Boolean} Returns true if a scroll was triggered or false if the element - * was scrolled as far as it could go. - */ - scroll : function(direction, distance, animate){ - if(!this.isScrollable()){ - return; - } - var el = this.dom; - var l = el.scrollLeft, t = el.scrollTop; - var w = el.scrollWidth, h = el.scrollHeight; - var cw = el.clientWidth, ch = el.clientHeight; - direction = direction.toLowerCase(); - var scrolled = false; - var a = this.preanim(arguments, 2); - switch(direction){ - case "l": - case "left": - if(w - l > cw){ - var v = Math.min(l + distance, w-cw); - this.scrollTo("left", v, a); - scrolled = true; - } - break; - case "r": - case "right": - if(l > 0){ - var v = Math.max(l - distance, 0); - this.scrollTo("left", v, a); - scrolled = true; - } - break; - case "t": - case "top": - case "up": - if(t > 0){ - var v = Math.max(t - distance, 0); - this.scrollTo("top", v, a); - scrolled = true; - } - break; - case "b": - case "bottom": - case "down": - if(h - t > ch){ - var v = Math.min(t + distance, h-ch); - this.scrollTo("top", v, a); - scrolled = true; - } - break; - } - return scrolled; - }, - - /** - * Translates the passed page coordinates into left/top css values for this element - * @param {Number/Array} x The page x or an array containing [x, y] - * @param {Number} y The page y - * @param {Object} An object with left and top properties. e.g. {left: (value), top: (value)} - */ - translatePoints : function(x, y){ - if(typeof x == 'object' || x instanceof Array){ - y = x[1]; x = x[0]; - } - var p = this.getStyle('position'); - var o = this.getXY(); - - var l = parseInt(this.getStyle('left'), 10); - var t = parseInt(this.getStyle('top'), 10); - - if(isNaN(l)){ - l = (p == "relative") ? 0 : this.dom.offsetLeft; - } - if(isNaN(t)){ - t = (p == "relative") ? 0 : this.dom.offsetTop; - } - - return {left: (x - o[0] + l), top: (y - o[1] + t)}; - }, - - getScroll : function(){ - var d = this.dom, doc = document; - if(d == doc || d == doc.body){ - var l = window.pageXOffset || doc.documentElement.scrollLeft || doc.body.scrollLeft || 0; - var t = window.pageYOffset || doc.documentElement.scrollTop || doc.body.scrollTop || 0; - return {left: l, top: t}; - }else{ - return {left: d.scrollLeft, top: d.scrollTop}; - } - }, - - /** - * Return the CSS color for the specified CSS attribute. rgb, 3 digit (like #fff) and valid values - * are convert to standard 6 digit hex color. - * @param {String} attr The css attribute - * @param {String} defaultValue The default value to use when a valid color isn't found - * @param {String} prefix (optional) defaults to #. Use an empty string when working with - * YUI color anims. - */ - getColor : function(attr, defaultValue, prefix){ - var v = this.getStyle(attr); - if(!v || v == "transparent" || v == "inherit") { - return defaultValue; - } - var color = typeof prefix == "undefined" ? "#" : prefix; - if(v.substr(0, 4) == "rgb("){ - var rvs = v.slice(4, v.length -1).split(","); - for(var i = 0; i < 3; i++){ - var h = parseInt(rvs[i]).toString(16); - if(h < 16){ - h = "0" + h; - } - color += h; - } - } else { - if(v.substr(0, 1) == "#"){ - if(v.length == 4) { - for(var i = 1; i < 4; i++){ - var c = v.charAt(i); - color += c + c; - } - }else if(v.length == 7){ - color += v.substr(1); - } - } - } - return(color.length > 5 ? color.toLowerCase() : defaultValue); - }, - - boxWrap : function(cls){ - cls = cls || 'x-box'; - var el = Ext.get(this.insertHtml('beforeBegin', String.format('
        '+El.boxMarkup+'
        ', cls))); - el.child('.'+cls+'-mc').dom.appendChild(this.dom); - return el; - }, - - getAttributeNS : Ext.isIE ? function(ns, name){ - var d = this.dom; - var type = typeof d[ns+":"+name]; - if(type != 'undefined' && type != 'unknown'){ - return d[ns+":"+name]; - } - return d[name]; - } : function(ns, name){ - var d = this.dom; - return d.getAttributeNS(ns, name) || d.getAttribute(ns+":"+name) || d.getAttribute(name) || d[name]; - } -}; - -var ep = El.prototype; - -/** - * Appends an event handler (Shorthand for addListener) - * @param {String} eventName The type of event to append - * @param {Function} fn The method the event invokes - * @param {Object} scope (optional) The scope (this object) of the fn - * @param {Object} options (optional)An object with standard EventManager options - * @method - */ -ep.on = ep.addListener; - // backwards compat -ep.mon = ep.addListener; - -/** - * Removes an event handler from this element (shorthand for removeListener) - * @param {String} eventName the type of event to remove - * @param {Function} fn the method the event invokes - * @return {Ext.Element} this - * @method - */ -ep.un = ep.removeListener; - -/** - * true to automatically adjust width and height settings for box-model issues (default to true) - */ -ep.autoBoxAdjust = true; -/** - * true to automatically detect display mode and use display instead of visibility with show()/hide() (defaults to false). - * To enable this globally:
        Ext.Element.prototype.autoDisplayMode = true;
        - */ -ep.autoDisplayMode = true; - -El.unitPattern = /\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i; - -El.addUnits = function(v, defaultUnit){ - if(v === "" || v == "auto"){ - return v; - } - if(v === undefined){ - return ''; - } - if(typeof v == "number" || !El.unitPattern.test(v)){ - return v + (defaultUnit || 'px'); - } - return v; -}; - -// special markup used throughout Ext when box wrapping elements -El.boxMarkup = '
        '; -/** - * Visibility mode constant - Use visibility to hide element - * @static - * @type Number - */ -El.VISIBILITY = 1; -/** - * Visibility mode constant - Use display to hide element - * @static - * @type Number - */ -El.DISPLAY = 2; - -El.borders = {l: "border-left-width", r: "border-right-width", t: "border-top-width", b: "border-bottom-width"}; -El.paddings = {l: "padding-left", r: "padding-right", t: "padding-top", b: "padding-bottom"}; -El.margins = {l: "margin-left", r: "margin-right", t: "margin-top", b: "margin-bottom"}; - - - -/** - * @private - */ -El.cache = {}; - -var docEl; - -/** - * Static method to retrieve Element objects. Uses simple caching to consistently return the same object. - * Automatically fixes if an object was recreated with the same id via AJAX or DOM. - * @param {String/HTMLElement/Element} el The id of the node, a DOM Node or an existing Element. - * @return {Element} The Element object - * @static - */ -El.get = function(el){ - var ex, elm, id; - if(!el){ return null; } - if(typeof el == "string"){ // element id - if(!(elm = document.getElementById(el))){ - return null; - } - if(ex = El.cache[el]){ - ex.dom = elm; - }else{ - ex = El.cache[el] = new El(elm); - } - return ex; - }else if(el.tagName){ // dom element - if(!(id = el.id)){ - id = Ext.id(el); - } - if(ex = El.cache[id]){ - ex.dom = el; - }else{ - ex = El.cache[id] = new El(el); - } - return ex; - }else if(el instanceof El){ - if(el != docEl){ - el.dom = document.getElementById(el.id) || el.dom; // refresh dom element in case no longer valid, - // catch case where it hasn't been appended - El.cache[el.id] = el; // in case it was created directly with Element(), let's cache it - } - return el; - }else if(el.isComposite){ - return el; - }else if(el instanceof Array){ - return El.select(el); - }else if(el == document){ - // create a bogus element object representing the document object - if(!docEl){ - var f = function(){}; - f.prototype = El.prototype; - docEl = new f(); - docEl.dom = document; - } - return docEl; - } - return null; -}; - -El.uncache = function(el){ - for(var i = 0, a = arguments, len = a.length; i < len; i++) { - if(a[i]){ - delete El.cache[a[i].id || a[i]]; - } - } -}; - -// dom is optional -El.Flyweight = function(dom){ - this.dom = dom; -}; -El.Flyweight.prototype = El.prototype; - -El._flyweights = {}; -/** - * Gets the globally shared flyweight Element, with the passed node as the active element. Do not store a reference to this element - - * the dom node can be overwritten by other code. - * @param {String/HTMLElement} el The dom node or id - * @param {String} named (optional) Allows for creation of named reusable flyweights to - * prevent conflicts (e.g. internally Ext uses "_internal") - * @static - * @return {Element} The shared Element object - */ -El.fly = function(el, named){ - named = named || '_global'; - el = Ext.getDom(el); - if(!el){ - return null; - } - if(!El._flyweights[named]){ - El._flyweights[named] = new El.Flyweight(); - } - El._flyweights[named].dom = el; - return El._flyweights[named]; -}; - -/** - * Static method to retrieve Element objects. Uses simple caching to consistently return the same object. - * Automatically fixes if an object was recreated with the same id via AJAX or DOM. - * Shorthand of {@link Ext.Element#get} - * @param {String/HTMLElement/Element} el The id of the node, a DOM Node or an existing Element. - * @return {Element} The Element object - * @member Ext - * @method get - */ -Ext.get = El.get; -/** - * Gets the globally shared flyweight Element, with the passed node as the active element. Do not store a reference to this element - - * the dom node can be overwritten by other code. - * Shorthand of {@link Ext.Element#fly} - * @param {String/HTMLElement} el The dom node or id - * @param {String} named (optional) Allows for creation of named reusable flyweights to - * prevent conflicts (e.g. internally Ext uses "_internal") - * @static - * @return {Element} The shared Element object - * @member Ext - * @method fly - */ -Ext.fly = El.fly; - -// speedy lookup for elements never to box adjust -var noBoxAdjust = Ext.isStrict ? { - select:1 -} : { - input:1, select:1, textarea:1 -}; -if(Ext.isIE || Ext.isGecko){ - noBoxAdjust['button'] = 1; -} - - -Ext.EventManager.on(window, 'unload', function(){ - delete El.cache; - delete El._flyweights; -}); -})(); - diff --git a/www/extras/extjs/source/core/EventManager.js b/www/extras/extjs/source/core/EventManager.js deleted file mode 100644 index df92fd66b..000000000 --- a/www/extras/extjs/source/core/EventManager.js +++ /dev/null @@ -1,662 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.EventManager - * Registers event handlers that want to receive a normalized EventObject instead of the standard browser event and provides - * several useful events directly. - * See {@link Ext.EventObject} for more details on normalized event objects. - * @singleton - */ -Ext.EventManager = function(){ - var docReadyEvent, docReadyProcId, docReadyState = false; - var resizeEvent, resizeTask, textEvent, textSize; - var E = Ext.lib.Event; - var D = Ext.lib.Dom; - - - var fireDocReady = function(){ - if(!docReadyState){ - docReadyState = true; - Ext.isReady = true; - if(docReadyProcId){ - clearInterval(docReadyProcId); - } - if(Ext.isGecko || Ext.isOpera) { - document.removeEventListener("DOMContentLoaded", fireDocReady, false); - } - if(docReadyEvent){ - docReadyEvent.fire(); - docReadyEvent.clearListeners(); - } - } - }; - - var initDocReady = function(){ - docReadyEvent = new Ext.util.Event(); - if(Ext.isGecko || Ext.isOpera) { - document.addEventListener("DOMContentLoaded", fireDocReady, false); - }else if(Ext.isIE){ - // inspired by http://www.thefutureoftheweb.com/blog/2006/6/adddomloadevent - document.write(""); - var defer = document.getElementById("ie-deferred-loader"); - defer.onreadystatechange = function(){ - if(this.readyState == "complete"){ - fireDocReady(); - defer.onreadystatechange = null; - defer.parentNode.removeChild(defer); - } - }; - }else if(Ext.isSafari){ - docReadyProcId = setInterval(function(){ - var rs = document.readyState; - if(rs == "complete") { - fireDocReady(); - } - }, 10); - } - // no matter what, make sure it fires on load - E.on(window, "load", fireDocReady); - }; - - var createBuffered = function(h, o){ - var task = new Ext.util.DelayedTask(h); - return function(e){ - // create new event object impl so new events don't wipe out properties - e = new Ext.EventObjectImpl(e); - task.delay(o.buffer, h, null, [e]); - }; - }; - - var createSingle = function(h, el, ename, fn){ - return function(e){ - Ext.EventManager.removeListener(el, ename, fn); - h(e); - }; - }; - - var createDelayed = function(h, o){ - return function(e){ - // create new event object impl so new events don't wipe out properties - e = new Ext.EventObjectImpl(e); - setTimeout(function(){ - h(e); - }, o.delay || 10); - }; - }; - - var listen = function(element, ename, opt, fn, scope){ - var o = (!opt || typeof opt == "boolean") ? {} : opt; - fn = fn || o.fn; scope = scope || o.scope; - var el = Ext.getDom(element); - if(!el){ - throw "Error listening for \"" + ename + '\". Element "' + element + '" doesn\'t exist.'; - } - var h = function(e){ - e = Ext.EventObject.setEvent(e); - var t; - if(o.delegate){ - t = e.getTarget(o.delegate, el); - if(!t){ - return; - } - }else{ - t = e.target; - } - if(o.stopEvent === true){ - e.stopEvent(); - } - if(o.preventDefault === true){ - e.preventDefault(); - } - if(o.stopPropagation === true){ - e.stopPropagation(); - } - - if(o.normalized === false){ - e = e.browserEvent; - } - - fn.call(scope || el, e, t, o); - }; - if(o.delay){ - h = createDelayed(h, o); - } - if(o.single){ - h = createSingle(h, el, ename, fn); - } - if(o.buffer){ - h = createBuffered(h, o); - } - fn._handlers = fn._handlers || []; - fn._handlers.push([Ext.id(el), ename, h]); - - E.on(el, ename, h); - if(ename == "mousewheel" && el.addEventListener){ // workaround for jQuery - el.addEventListener("DOMMouseScroll", h, false); - E.on(window, 'unload', function(){ - el.removeEventListener("DOMMouseScroll", h, false); - }); - } - if(ename == "mousedown" && el == document){ // fix stopped mousedowns on the document - Ext.EventManager.stoppedMouseDownEvent.addListener(h); - } - return h; - }; - - var stopListening = function(el, ename, fn){ - var id = Ext.id(el), hds = fn._handlers, hd = fn; - if(hds){ - for(var i = 0, len = hds.length; i < len; i++){ - var h = hds[i]; - if(h[0] == id && h[1] == ename){ - hd = h[2]; - hds.splice(i, 1); - break; - } - } - } - E.un(el, ename, hd); - el = Ext.getDom(el); - if(ename == "mousewheel" && el.addEventListener){ - el.removeEventListener("DOMMouseScroll", hd, false); - } - if(ename == "mousedown" && el == document){ // fix stopped mousedowns on the document - Ext.EventManager.stoppedMouseDownEvent.removeListener(hd); - } - }; - - var propRe = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized)$/; - var pub = { - - /** - * This is no longer needed and is deprecated. Places a simple wrapper around an event handler to override the browser event - * object with a Ext.EventObject - * @param {Function} fn The method the event invokes - * @param {Object} scope An object that becomes the scope of the handler - * @param {boolean} override If true, the obj passed in becomes - * the execution scope of the listener - * @return {Function} The wrapped function - * @deprecated - */ - wrap : function(fn, scope, override){ - return function(e){ - Ext.EventObject.setEvent(e); - fn.call(override ? scope || window : window, Ext.EventObject, scope); - }; - }, - - /** - * Appends an event handler - * - * @param {String/HTMLElement} element The html element or id to assign the - * event to - * @param {String} eventName The type of event to append - * @param {Function} fn The method the event invokes - * @param {Object} options An object with standard EventManager options - */ - addListener : function(element, eventName, fn, scope, options){ - if(typeof eventName == "object"){ - var o = eventName; - for(var e in o){ - if(propRe.test(e)){ - continue; - } - if(typeof o[e] == "function"){ - // shared options - listen(element, e, o, o[e], o.scope); - }else{ - // individual options - listen(element, e, o[e]); - } - } - return; - } - return listen(element, eventName, options, fn, scope); - }, - - /** - * Removes an event handler - * - * @param {String/HTMLElement} element The id or html element to remove the - * event from - * @param {String} eventName The type of event - * @param {Function} fn - * @return {Boolean} True if a listener was actually removed - */ - removeListener : function(element, eventName, fn){ - return stopListening(element, eventName, fn); - }, - - /** - * Fires when the document is ready (before onload and before images are loaded). Can be - * accessed shorthanded Ext.onReady(). - * @param {Function} fn The method the event invokes - * @param {Object} scope An object that becomes the scope of the handler - * @param {boolean} options - */ - onDocumentReady : function(fn, scope, options){ - if(docReadyState){ // if it already fired - fn.call(scope || window, scope); - return; - } - if(!docReadyEvent){ - initDocReady(); - } - docReadyEvent.addListener(fn, scope, options); - }, - - /** - * Fires when the window is resized and provides resize event buffering (50 milliseconds), passes new viewport width and height to handlers. - * @param {Function} fn The method the event invokes - * @param {Object} scope An object that becomes the scope of the handler - * @param {boolean} options - */ - onWindowResize : function(fn, scope, options){ - if(!resizeEvent){ - resizeEvent = new Ext.util.Event(); - resizeTask = new Ext.util.DelayedTask(function(){ - resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); - }); - E.on(window, "resize", function(){ - if(Ext.isIE){ - resizeTask.delay(50); - }else{ - resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); - } - }); - } - resizeEvent.addListener(fn, scope, options); - }, - - /** - * Fires when the user changes the active text size. Handler gets called with 2 params, the old size and the new size. - * @param {Function} fn The method the event invokes - * @param {Object} scope An object that becomes the scope of the handler - * @param {boolean} options - */ - onTextResize : function(fn, scope, options){ - if(!textEvent){ - textEvent = new Ext.util.Event(); - var textEl = new Ext.Element(document.createElement('div')); - textEl.dom.className = 'x-text-resize'; - textEl.dom.innerHTML = 'X'; - textEl.appendTo(document.body); - textSize = textEl.dom.offsetHeight; - setInterval(function(){ - if(textEl.dom.offsetHeight != textSize){ - textEvent.fire(textSize, textSize = textEl.dom.offsetHeight); - } - }, this.textResizeInterval); - } - textEvent.addListener(fn, scope, options); - }, - - /** - * Removes the passed window resize listener. - * @param {Function} fn The method the event invokes - * @param {Object} scope The scope of handler - */ - removeResizeListener : function(fn, scope){ - if(resizeEvent){ - resizeEvent.removeListener(fn, scope); - } - }, - - fireResize : function(){ - if(resizeEvent){ - resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); - } - }, - /** - * Url used for onDocumentReady with using SSL (defaults to Ext.SSL_SECURE_URL) - */ - ieDeferSrc : false, - textResizeInterval : 50 - }; - /** - * Appends an event handler (shorthand for addListener) - * - * @param {String/HTMLElement} element The html element or id to assign the - * event to - * @param {String} eventName The type of event to append - * @param {Function} fn The method the event invokes - * @param {Object} scope An arbitrary object that will be - * passed as a parameter to the handler - * @param {boolean} override If true, the obj passed in becomes - * the execution scope of the listener - * @return {Function} The wrapper function created (to be used to remove the listener if necessary) - * @method - */ - pub.on = pub.addListener; - pub.un = pub.removeListener; - - pub.stoppedMouseDownEvent = new Ext.util.Event(); - return pub; -}(); -/** - * Fires when the document is ready (before onload and before images are loaded). Shorthand of {@link Ext.EventManager#onDocumentReady}. - * @param {Function} fn The method the event invokes - * @param {Object} scope An object that becomes the scope of the handler - * @param {boolean} override If true, the obj passed in becomes - * the execution scope of the listener - * @member Ext - * @method onReady - */ -Ext.onReady = Ext.EventManager.onDocumentReady; - -Ext.onReady(function(){ - var bd = Ext.get(document.body); - if(!bd){ return; } - var cls = Ext.isIE ? "ext-ie" - : Ext.isGecko ? "ext-gecko" - : Ext.isOpera ? "ext-opera" - : Ext.isSafari ? "ext-safari" : ""; - if(Ext.isBorderBox){ - cls += ' ext-border-box'; - } - if(Ext.isStrict){ - cls += ' ext-strict'; - } - bd.addClass(cls); -}); -/** - * @class Ext.EventObject - * EventObject exposes the Yahoo! UI Event functionality directly on the object - * passed to your event handler. It exists mostly for convenience. It also fixes the annoying null checks automatically to cleanup your code - * Example: - *
        
        - function handleClick(e){ // e is not a standard event object, it is a Ext.EventObject
        -    e.preventDefault();
        -    var target = e.getTarget();
        -    ...
        - }
        - var myDiv = Ext.get("myDiv");
        - myDiv.on("click", handleClick);
        - //or
        - Ext.EventManager.on("myDiv", 'click', handleClick);
        - Ext.EventManager.addListener("myDiv", 'click', handleClick);
        - 
        - * @singleton - */ -Ext.EventObject = function(){ - - var E = Ext.lib.Event; - - // safari keypress events for special keys return bad keycodes - var safariKeys = { - 63234 : 37, // left - 63235 : 39, // right - 63232 : 38, // up - 63233 : 40, // down - 63276 : 33, // page up - 63277 : 34, // page down - 63272 : 46, // delete - 63273 : 36, // home - 63275 : 35 // end - }; - - // normalize button clicks - var btnMap = Ext.isIE ? {1:0,4:1,2:2} : - (Ext.isSafari ? {1:0,2:1,3:2} : {0:0,1:1,2:2}); - - Ext.EventObjectImpl = function(e){ - if(e){ - this.setEvent(e.browserEvent || e); - } - }; - Ext.EventObjectImpl.prototype = { - /** The normal browser event */ - browserEvent : null, - /** The button pressed in a mouse event */ - button : -1, - /** True if the shift key was down during the event */ - shiftKey : false, - /** True if the control key was down during the event */ - ctrlKey : false, - /** True if the alt key was down during the event */ - altKey : false, - - /** Key constant @type Number */ - BACKSPACE : 8, - /** Key constant @type Number */ - TAB : 9, - /** Key constant @type Number */ - RETURN : 13, - /** Key constant @type Number */ - ENTER : 13, - /** Key constant @type Number */ - SHIFT : 16, - /** Key constant @type Number */ - CONTROL : 17, - /** Key constant @type Number */ - ESC : 27, - /** Key constant @type Number */ - SPACE : 32, - /** Key constant @type Number */ - PAGEUP : 33, - /** Key constant @type Number */ - PAGEDOWN : 34, - /** Key constant @type Number */ - END : 35, - /** Key constant @type Number */ - HOME : 36, - /** Key constant @type Number */ - LEFT : 37, - /** Key constant @type Number */ - UP : 38, - /** Key constant @type Number */ - RIGHT : 39, - /** Key constant @type Number */ - DOWN : 40, - /** Key constant @type Number */ - DELETE : 46, - /** Key constant @type Number */ - F5 : 116, - - /** @private */ - setEvent : function(e){ - if(e == this || (e && e.browserEvent)){ // already wrapped - return e; - } - this.browserEvent = e; - if(e){ - // normalize buttons - this.button = e.button ? btnMap[e.button] : (e.which ? e.which-1 : -1); - this.shiftKey = e.shiftKey; - // mac metaKey behaves like ctrlKey - this.ctrlKey = e.ctrlKey || e.metaKey; - this.altKey = e.altKey; - // in getKey these will be normalized for the mac - this.keyCode = e.keyCode; - this.charCode = e.charCode; - // cache the target for the delayed and or buffered events - this.target = E.getTarget(e); - // same for XY - this.xy = E.getXY(e); - }else{ - this.button = -1; - this.shiftKey = false; - this.ctrlKey = false; - this.altKey = false; - this.keyCode = 0; - this.charCode =0; - this.target = null; - this.xy = [0, 0]; - } - return this; - }, - - /** - * Stop the event (preventDefault and stopPropagation) - */ - stopEvent : function(){ - if(this.browserEvent){ - if(this.browserEvent.type == 'mousedown'){ - Ext.EventManager.stoppedMouseDownEvent.fire(this); - } - E.stopEvent(this.browserEvent); - } - }, - - /** - * Prevents the browsers default handling of the event. - */ - preventDefault : function(){ - if(this.browserEvent){ - E.preventDefault(this.browserEvent); - } - }, - - /** @private */ - isNavKeyPress : function(){ - var k = this.keyCode; - k = Ext.isSafari ? (safariKeys[k] || k) : k; - return (k >= 33 && k <= 40) || k == this.RETURN || k == this.TAB || k == this.ESC; - }, - - isSpecialKey : function(){ - var k = this.keyCode; - return k == 9 || k == 13 || k == 40 || k == 27 || - (k == 16) || (k == 17) || - (k >= 18 && k <= 20) || - (k >= 33 && k <= 35) || - (k >= 36 && k <= 39) || - (k >= 44 && k <= 45); - }, - /** - * Cancels bubbling of the event. - */ - stopPropagation : function(){ - if(this.browserEvent){ - if(this.browserEvent.type == 'mousedown'){ - Ext.EventManager.stoppedMouseDownEvent.fire(this); - } - E.stopPropagation(this.browserEvent); - } - }, - - /** - * Gets the key code for the event. - * @return {Number} - */ - getCharCode : function(){ - return this.charCode || this.keyCode; - }, - - /** - * Returns a normalized keyCode for the event. - * @return {Number} The key code - */ - getKey : function(){ - var k = this.keyCode || this.charCode; - return Ext.isSafari ? (safariKeys[k] || k) : k; - }, - - /** - * Gets the x coordinate of the event. - * @return {Number} - */ - getPageX : function(){ - return this.xy[0]; - }, - - /** - * Gets the y coordinate of the event. - * @return {Number} - */ - getPageY : function(){ - return this.xy[1]; - }, - - /** - * Gets the time of the event. - * @return {Number} - */ - getTime : function(){ - if(this.browserEvent){ - return E.getTime(this.browserEvent); - } - return null; - }, - - /** - * Gets the page coordinates of the event. - * @return {Array} The xy values like [x, y] - */ - getXY : function(){ - return this.xy; - }, - - /** - * Gets the target for the event. - * @param {String} selector (optional) A simple selector to filter the target or look for an ancestor of the target - * @param {Number/String/HTMLElement/Element} maxDepth (optional) The max depth to - search as a number or element (defaults to 10 || document.body) - * @param {Boolean} returnEl (optional) True to return a Ext.Element object instead of DOM node - * @return {HTMLelement} - */ - getTarget : function(selector, maxDepth, returnEl){ - return selector ? Ext.fly(this.target).findParent(selector, maxDepth, returnEl) : this.target; - }, - /** - * Gets the related target. - * @return {HTMLElement} - */ - getRelatedTarget : function(){ - if(this.browserEvent){ - return E.getRelatedTarget(this.browserEvent); - } - return null; - }, - - /** - * Normalizes mouse wheel delta across browsers - * @return {Number} The delta - */ - getWheelDelta : function(){ - var e = this.browserEvent; - var delta = 0; - if(e.wheelDelta){ /* IE/Opera. */ - delta = e.wheelDelta/120; - /* In Opera 9, delta differs in sign as compared to IE. */ - if(window.opera) delta = -delta; - }else if(e.detail){ /* Mozilla case. */ - delta = -e.detail/3; - } - return delta; - }, - - /** - * Returns true if the control, meta, shift or alt key was pressed during this event. - * @return {Boolean} - */ - hasModifier : function(){ - return ((this.ctrlKey || this.altKey) || this.shiftKey) ? true : false; - }, - - /** - * Returns true if the target of this event equals el or is a child of el - * @param {String/HTMLElement/Element} el - * @param {Boolean} related (optional) true to test if the related target is within el instead of the target - * @return {Boolean} - */ - within : function(el, related){ - var t = this[related ? "getRelatedTarget" : "getTarget"](); - return t && Ext.fly(el).contains(t); - }, - - getPoint : function(){ - return new Ext.lib.Point(this.xy[0], this.xy[1]); - } - }; - - return new Ext.EventObjectImpl(); -}(); - - \ No newline at end of file diff --git a/www/extras/extjs/source/core/Ext.js b/www/extras/extjs/source/core/Ext.js deleted file mode 100644 index cc7d77db5..000000000 --- a/www/extras/extjs/source/core/Ext.js +++ /dev/null @@ -1,594 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - - -Ext = {}; - -// for old browsers -window["undefined"] = window["undefined"]; - -/** - * @class Ext - * Ext core utilties and functions - * @singleton - */ - -/** - * Copies all the properties of config to obj. - * @param {Object} obj The receiver of the properties - * @param {Object} config The source of the properties - * @param {Object} defaults A different object that will also be applied for default values - * @return {Object} returns obj - * @member Ext apply - */ -Ext.apply = function(o, c, defaults){ - if(defaults){ - // no "this" reference for friendly out of scope calls - Ext.apply(o, defaults); - } - if(o && c && typeof c == 'object'){ - for(var p in c){ - o[p] = c[p]; - } - } - return o; -}; - -(function(){ - var idSeed = 0; - var ua = navigator.userAgent.toLowerCase(); - - var isStrict = document.compatMode == "CSS1Compat", - isOpera = ua.indexOf("opera") > -1, - isSafari = (/webkit|khtml/).test(ua), - isIE = ua.indexOf("msie") > -1, - isIE7 = ua.indexOf("msie 7") > -1, - isGecko = !isSafari && ua.indexOf("gecko") > -1, - isBorderBox = isIE && !isStrict, - isWindows = (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1), - isMac = (ua.indexOf("macintosh") != -1 || ua.indexOf("mac os x") != -1), - isSecure = window.location.href.toLowerCase().indexOf("https") === 0; - - // remove css image flicker - if(isIE && !isIE7){ - try{ - document.execCommand("BackgroundImageCache", false, true); - }catch(e){} - } - - Ext.apply(Ext, { - /** - * True if the browser is in strict mode - * @type Boolean - */ - isStrict : isStrict, - /** - * True if the page is running over SSL - * @type Boolean - */ - isSecure : isSecure, - /** - * True when the document is fully initialized and ready for action - * @type Boolean - */ - isReady : false, - /** - * URL to a blank file used by Ext when in secure mode for iframe src and onReady src to prevent - * the IE insecure content warning (defaults to javascript:false). - * @type String - */ - SSL_SECURE_URL : "javascript:false", - - /** - * URL to a 1x1 transparent gif image used by Ext to create inline icons with CSS background images. (Defaults to - * "http://extjs.com/s.gif" and you should change this to a URL on your server). - * @type String - */ - BLANK_IMAGE_URL : "http:/"+"/extjs.com/s.gif", - - emptyFn : function(){}, - - /** - * Copies all the properties of config to obj if they don't already exist. - * @param {Object} obj The receiver of the properties - * @param {Object} config The source of the properties - * @return {Object} returns obj - */ - applyIf : function(o, c){ - if(o && c){ - for(var p in c){ - if(typeof o[p] == "undefined"){ o[p] = c[p]; } - } - } - return o; - }, - - /** - * Applies event listeners to elements by selectors when the document is ready. - * The event name is specified with an @ suffix. -
        
        -Ext.addBehaviors({
        -   // add a listener for click on all anchors in element with id foo
        -   '#foo a@click' : function(e, t){
        -       // do something
        -   },
        -
        -   // add the same listener to multiple selectors (separated by comma BEFORE the @)
        -   '#foo a, #bar span.some-class@mouseover' : function(){
        -       // do something
        -   }
        -});
        -
        - * @param {Object} obj The list of behaviors to apply - */ - addBehaviors : function(o){ - if(!Ext.isReady){ - Ext.onReady(function(){ - Ext.addBehaviors(o); - }); - return; - } - var cache = {}; // simple cache for applying multiple behaviors to same selector does query multiple times - for(var b in o){ - var parts = b.split('@'); - if(parts[1]){ // for Object prototype breakers - var s = parts[0]; - if(!cache[s]){ - cache[s] = Ext.select(s); - } - cache[s].on(parts[1], o[b]); - } - } - cache = null; - }, - - /** - * Generates unique ids. If the element already has an id, it is unchanged - * @param {String/HTMLElement/Element} el (optional) The element to generate an id for - * @param {String} prefix (optional) Id prefix (defaults "ext-gen") - */ - id : function(el, prefix){ - prefix = prefix || "ext-gen"; - el = Ext.getDom(el); - var id = prefix + (++idSeed); - return el ? (el.id ? el.id : (el.id = id)) : id; - }, - - /** - * Extends one class with another class and optionally overrides members with the passed literal. This class - * also adds the function "override()" to the class that can be used to override - * members on an instance. - * @param {Object} subclass The class inheriting the functionality - * @param {Object} superclass The class being extended - * @param {Object} overrides (optional) A literal with members - * @method extend - */ - extend : function(){ - // inline overrides - var io = function(o){ - for(var m in o){ - this[m] = o[m]; - } - }; - return function(sb, sp, overrides){ - if(typeof sp == 'object'){ - overrides = sp; - sp = sb; - sb = function(){sp.apply(this, arguments);}; - } - var F = function(){}, sbp, spp = sp.prototype; - F.prototype = spp; - sbp = sb.prototype = new F(); - sbp.constructor=sb; - sb.superclass=spp; - if(spp.constructor == Object.prototype.constructor){ - spp.constructor=sp; - } - sb.override = function(o){ - Ext.override(sb, o); - }; - sbp.override = io; - sbp.__extcls = sb; - Ext.override(sb, overrides); - return sb; - }; - }(), - - override : function(origclass, overrides){ - if(overrides){ - var p = origclass.prototype; - for(var method in overrides){ - p[method] = overrides[method]; - } - } - }, - /** - * Creates namespaces but does not assume YAHOO is the root. - * @param {String} namespace1 - * @param {String} namespace2 - * @param {String} etc - * @method namespace - */ - namespace : function(){ - var a=arguments, o=null, i, j, d, rt; - for (i=0; imyFunction.createCallback(myarg, myarg2)
        - * Will create a function that is bound to those 2 args. - * @return {Function} The new function - */ - createCallback : function(/*args...*/){ - // make args available, in function below - var args = arguments; - var method = this; - return function() { - return method.apply(window, args); - }; - }, - - /** - * Creates a delegate (callback) that sets the scope to obj. - * Call directly on any function. Example: this.myFunction.createDelegate(this) - * Will create a function that is automatically scoped to this. - * @param {Object} obj (optional) The object for which the scope is set - * @param {Array} args (optional) Overrides arguments for the call. (Defaults to the arguments passed by the caller) - * @param {Boolean/Number} appendArgs (optional) if True args are appended to call args instead of overriding, - * if a number the args are inserted at the specified position - * @return {Function} The new function - */ - createDelegate : function(obj, args, appendArgs){ - var method = this; - return function() { - var callArgs = args || arguments; - if(appendArgs === true){ - callArgs = Array.prototype.slice.call(arguments, 0); - callArgs = callArgs.concat(args); - }else if(typeof appendArgs == "number"){ - callArgs = Array.prototype.slice.call(arguments, 0); // copy arguments first - var applyArgs = [appendArgs, 0].concat(args); // create method call params - Array.prototype.splice.apply(callArgs, applyArgs); // splice them in - } - return method.apply(obj || window, callArgs); - }; - }, - - /** - * Calls this function after the number of millseconds specified. - * @param {Number} millis The number of milliseconds for the setTimeout call (if 0 the function is executed immediately) - * @param {Object} obj (optional) The object for which the scope is set - * @param {Array} args (optional) Overrides arguments for the call. (Defaults to the arguments passed by the caller) - * @param {Boolean/Number} appendArgs (optional) if True args are appended to call args instead of overriding, - * if a number the args are inserted at the specified position - * @return {Number} The timeout id that can be used with clearTimeout - */ - defer : function(millis, obj, args, appendArgs){ - var fn = this.createDelegate(obj, args, appendArgs); - if(millis){ - return setTimeout(fn, millis); - } - fn(); - return 0; - }, - /** - * Create a combined function call sequence of the original function + the passed function. - * The resulting function returns the results of the original function. - * The passed fcn is called with the parameters of the original function - * @param {Function} fcn The function to sequence - * @param {Object} scope (optional) The scope of the passed fcn (Defaults to scope of original function or window) - * @return {Function} The new function - */ - createSequence : function(fcn, scope){ - if(typeof fcn != "function"){ - return this; - } - var method = this; - return function() { - var retval = method.apply(this || window, arguments); - fcn.apply(scope || this || window, arguments); - return retval; - }; - }, - - /** - * Creates an interceptor function. The passed fcn is called before the original one. If it returns false, the original one is not called. - * The resulting function returns the results of the original function. - * The passed fcn is called with the parameters of the original function. - * @addon - * @param {Function} fcn The function to call before the original - * @param {Object} scope (optional) The scope of the passed fcn (Defaults to scope of original function or window) - * @return {Function} The new function - */ - createInterceptor : function(fcn, scope){ - if(typeof fcn != "function"){ - return this; - } - var method = this; - return function() { - fcn.target = this; - fcn.method = method; - if(fcn.apply(scope || this || window, arguments) === false){ - return; - } - return method.apply(this || window, arguments); - }; - } -}); - -Ext.applyIf(String, { - - /* - * Escapes the passed string for ' and \ - * @param {String} str - * @return {String} - */ - escape : function(string) { - return string.replace(/('|\\)/g, "\\$1"); - }, - - leftPad : function (val, size, ch) { - var result = new String(val); - if (ch == null) { - ch = " "; - } - while (result.length < size) { - result = ch + result; - } - return result; - }, - - format : function(format){ - var args = Array.prototype.slice.call(arguments, 1); - return format.replace(/\{(\d+)\}/g, function(m, i){ - return args[i]; - }); - } -}); - -String.prototype.toggle = function(value, other){ - return this == value ? other : value; -}; - -Ext.applyIf(Number.prototype, { - constrain : function(min, max){ - return Math.min(Math.max(this, min), max); - } -}); - -Ext.applyIf(Array.prototype, { - indexOf : function(o){ - for (var i = 0, len = this.length; i < len; i++){ - if(this[i] == o) return i; - } - return -1; - }, - - remove : function(o){ - var index = this.indexOf(o); - if(index != -1){ - this.splice(index, 1); - } - } -}); - -/** - Returns the number of milliseconds between this date and date - @param {Date} date (optional) Defaults to now - @return {Number} The diff in milliseconds - @member Date getElapsed - */ -Date.prototype.getElapsed = function(date) { - return Math.abs((date || new Date()).getTime()-this.getTime()); -}; diff --git a/www/extras/extjs/source/core/Fx.js b/www/extras/extjs/source/core/Fx.js deleted file mode 100644 index c715bcf39..000000000 --- a/www/extras/extjs/source/core/Fx.js +++ /dev/null @@ -1,1000 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - - -//Notifies Element that fx methods are available -Ext.enableFx = true; - -/** - * @class Ext.Fx - *

        A class to provide basic animation and visual effects support. Note: This class is automatically applied - * to the {@link Ext.Element} interface when included, so all effects calls should be performed via Element. - * Conversely, since the effects are not actually defined in Element, Ext.Fx must be included in order for the - * Element effects to work.


        - * - *

        It is important to note that although the Fx methods and many non-Fx Element methods support "method chaining" in that - * they return the Element object itself as the method return value, it is not always possible to mix the two in a single - * method chain. The Fx methods use an internal effects queue so that each effect can be properly timed and sequenced. - * Non-Fx methods, on the other hand, have no such internal queueing and will always execute immediately. For this reason, - * while it may be possible to mix certain Fx and non-Fx method calls in a single chain, it may not always provide the - * expected results and should be done with care.


        - * - *

        Motion effects support 8-way anchoring, meaning that you can choose one of 8 different anchor points on the Element - * that will serve as either the start or end point of the animation. Following are all of the supported anchor positions:

        -
        -Value  Description
        ------  -----------------------------
        -tl     The top left corner
        -t      The center of the top edge
        -tr     The top right corner
        -l      The center of the left edge
        -r      The center of the right edge
        -bl     The bottom left corner
        -b      The center of the bottom edge
        -br     The bottom right corner
        -
        - * Although some Fx methods accept specific custom config parameters, the ones shown in the Config Options section - * below are common options that can be passed to any Fx method. - * @cfg {Function} callback A function called when the effect is finished - * @cfg {Object} scope The scope of the effect function - * @cfg {String} easing A valid Easing value for the effect - * @cfg {String} afterCls A css class to apply after the effect - * @cfg {Number} duration The length of time (in seconds) that the effect should last - * @cfg {Boolean} remove Whether the Element should be removed from the DOM and destroyed after the effect finishes - * @cfg {Boolean} useDisplay Whether to use the display style attribute instead of visibility when hiding Elements (only applies to - * effects that end with the element being visually hidden, ignored otherwise) - * @cfg {String/Object/Function} afterStyle A style specification string eg "width:100px", or object in the form {width:"100px"}, or - * a function which returns such a specification that will be applied to the Element after the effect finishes - * @cfg {Boolean} block Whether the effect should block other effects from queueing while it runs - * @cfg {Boolean} concurrent Whether to allow subsequently-queued effects to run at the same time as the current effect, or to ensure that they run in sequence - * @cfg {Boolean} stopFx Whether subsequent effects should be stopped and removed after the current effect finishes - */ -Ext.Fx = { - /** - * Slides the element into view. An anchor point can be optionally passed to set the point of - * origin for the slide effect. This function automatically handles wrapping the element with - * a fixed-size container if needed. See the Fx class overview for valid anchor point options. - * Usage: - *
        
        -// default: slide the element in from the top
        -el.slideIn();
        -
        -// custom: slide the element in from the right with a 2-second duration
        -el.slideIn('r', { duration: 2 });
        -
        -// common config options shown with default values
        -el.slideIn('t', {
        - easing: 'easeOut',
        - duration: .5
        -}); -
        - * @param {String} anchor (optional) One of the valid Fx anchor positions (defaults to top: 't') - * @param {Object} options (optional) Object literal with any of the Fx config options - * @return {Element} The Element - */ - slideIn : function(anchor, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - - anchor = anchor || "t"; - - // fix display to visibility - this.fixDisplay(); - - // restore values after effect - var r = this.getFxRestore(); - var b = this.getBox(); - // fixed size for slide - this.setSize(b); - - // wrap if needed - var wrap = this.fxWrap(r.pos, o, "hidden"); - - var st = this.dom.style; - st.visibility = "visible"; - st.position = "absolute"; - - // clear out temp styles after slide and unwrap - var after = function(){ - el.fxUnwrap(wrap, r.pos, o); - st.width = r.width; - st.height = r.height; - el.afterFx(o); - }; - // time to calc the positions - var a, pt = {to: [b.x, b.y]}, bw = {to: b.width}, bh = {to: b.height}; - - switch(anchor.toLowerCase()){ - case "t": - wrap.setSize(b.width, 0); - st.left = st.bottom = "0"; - a = {height: bh}; - break; - case "l": - wrap.setSize(0, b.height); - st.right = st.top = "0"; - a = {width: bw}; - break; - case "r": - wrap.setSize(0, b.height); - wrap.setX(b.right); - st.left = st.top = "0"; - a = {width: bw, points: pt}; - break; - case "b": - wrap.setSize(b.width, 0); - wrap.setY(b.bottom); - st.left = st.top = "0"; - a = {height: bh, points: pt}; - break; - case "tl": - wrap.setSize(0, 0); - st.right = st.bottom = "0"; - a = {width: bw, height: bh}; - break; - case "bl": - wrap.setSize(0, 0); - wrap.setY(b.y+b.height); - st.right = st.top = "0"; - a = {width: bw, height: bh, points: pt}; - break; - case "br": - wrap.setSize(0, 0); - wrap.setXY([b.right, b.bottom]); - st.left = st.top = "0"; - a = {width: bw, height: bh, points: pt}; - break; - case "tr": - wrap.setSize(0, 0); - wrap.setX(b.x+b.width); - st.left = st.bottom = "0"; - a = {width: bw, height: bh, points: pt}; - break; - } - this.dom.style.visibility = "visible"; - wrap.show(); - - arguments.callee.anim = wrap.fxanim(a, - o, - 'motion', - .5, - 'easeOut', after); - }); - return this; - }, - - /** - * Slides the element out of view. An anchor point can be optionally passed to set the end point - * for the slide effect. When the effect is completed, the element will be hidden (visibility = - * 'hidden') but block elements will still take up space in the document. The element must be removed - * from the DOM using the 'remove' config option if desired. This function automatically handles - * wrapping the element with a fixed-size container if needed. See the Fx class overview for valid anchor point options. - * Usage: - *
        
        -// default: slide the element out to the top
        -el.slideOut();
        -
        -// custom: slide the element out to the right with a 2-second duration
        -el.slideOut('r', { duration: 2 });
        -
        -// common config options shown with default values
        -el.slideOut('t', {
        - easing: 'easeOut',
        - duration: .5,
        - remove: false,
        - useDisplay: false -}); -
        - * @param {String} anchor (optional) One of the valid Fx anchor positions (defaults to top: 't') - * @param {Object} options (optional) Object literal with any of the Fx config options - * @return {Element} The Element - */ - slideOut : function(anchor, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - - anchor = anchor || "t"; - - // restore values after effect - var r = this.getFxRestore(); - - var b = this.getBox(); - // fixed size for slide - this.setSize(b); - - // wrap if needed - var wrap = this.fxWrap(r.pos, o, "visible"); - - var st = this.dom.style; - st.visibility = "visible"; - st.position = "absolute"; - - wrap.setSize(b); - - var after = function(){ - if(o.useDisplay){ - el.setDisplayed(false); - }else{ - el.hide(); - } - - el.fxUnwrap(wrap, r.pos, o); - - st.width = r.width; - st.height = r.height; - - el.afterFx(o); - }; - - var a, zero = {to: 0}; - switch(anchor.toLowerCase()){ - case "t": - st.left = st.bottom = "0"; - a = {height: zero}; - break; - case "l": - st.right = st.top = "0"; - a = {width: zero}; - break; - case "r": - st.left = st.top = "0"; - a = {width: zero, points: {to:[b.right, b.y]}}; - break; - case "b": - st.left = st.top = "0"; - a = {height: zero, points: {to:[b.x, b.bottom]}}; - break; - case "tl": - st.right = st.bottom = "0"; - a = {width: zero, height: zero}; - break; - case "bl": - st.right = st.top = "0"; - a = {width: zero, height: zero, points: {to:[b.x, b.bottom]}}; - break; - case "br": - st.left = st.top = "0"; - a = {width: zero, height: zero, points: {to:[b.x+b.width, b.bottom]}}; - break; - case "tr": - st.left = st.bottom = "0"; - a = {width: zero, height: zero, points: {to:[b.right, b.y]}}; - break; - } - - arguments.callee.anim = wrap.fxanim(a, - o, - 'motion', - .5, - "easeOut", after); - }); - return this; - }, - - /** - * Fades the element out while slowly expanding it in all directions. When the effect is completed, the - * element will be hidden (visibility = 'hidden') but block elements will still take up space in the document. - * The element must be removed from the DOM using the 'remove' config option if desired. - * Usage: - *
        
        -// default
        -el.puff();
        -
        -// common config options shown with default values
        -el.puff({
        - easing: 'easeOut',
        - duration: .5,
        - remove: false,
        - useDisplay: false -}); -
        - * @param {Object} options (optional) Object literal with any of the Fx config options - * @return {Element} The Element - */ - puff : function(o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - this.clearOpacity(); - this.show(); - - // restore values after effect - var r = this.getFxRestore(); - var st = this.dom.style; - - var after = function(){ - if(o.useDisplay){ - el.setDisplayed(false); - }else{ - el.hide(); - } - - el.clearOpacity(); - - el.setPositioning(r.pos); - st.width = r.width; - st.height = r.height; - st.fontSize = ''; - el.afterFx(o); - }; - - var width = this.getWidth(); - var height = this.getHeight(); - - arguments.callee.anim = this.fxanim({ - width : {to: this.adjustWidth(width * 2)}, - height : {to: this.adjustHeight(height * 2)}, - points : {by: [-(width * .5), -(height * .5)]}, - opacity : {to: 0}, - fontSize: {to:200, unit: "%"} - }, - o, - 'motion', - .5, - "easeOut", after); - }); - return this; - }, - - /** - * Blinks the element as if it was clicked and then collapses on its center (similar to switching off a television). - * When the effect is completed, the element will be hidden (visibility = 'hidden') but block elements will still - * take up space in the document. The element must be removed from the using the 'remove' config option if desired. - * Usage: - *
        
        -// default
        -el.switchOff();
        -
        -// all config options shown with default values
        -el.switchOff({
        - easing: 'easeIn',
        - duration: .3,
        - remove: false,
        - useDisplay: false -}); -
        - * @param {Object} options (optional) Object literal with any of the Fx config options - * @return {Element} The Element - */ - switchOff : function(o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - this.clearOpacity(); - this.clip(); - - // restore values after effect - var r = this.getFxRestore(); - var st = this.dom.style; - - var after = function(){ - if(o.useDisplay){ - el.setDisplayed(false); - }else{ - el.hide(); - } - - el.clearOpacity(); - el.setPositioning(r.pos); - st.width = r.width; - st.height = r.height; - - el.afterFx(o); - }; - - this.fxanim({opacity:{to:0.3}}, null, null, .1, null, function(){ - this.clearOpacity(); - (function(){ - this.fxanim({ - height:{to:1}, - points:{by:[0, this.getHeight() * .5]} - }, o, 'motion', 0.3, 'easeIn', after); - }).defer(100, this); - }); - }); - return this; - }, - - /** - * Highlights the Element by setting a color (applies to the background-color by default, but can be - * changed using the "attr" config option) and then fading back to the original color. If no original - * color is available, you should provide the "endColor" config option which will be cleared after the animation. - * Usage: -
        
        -// default: highlight background to yellow
        -el.highlight();
        -
        -// custom: highlight foreground text to blue for 2 seconds
        -el.highlight("0000ff", { attr: 'color', duration: 2 });
        -
        -// common config options shown with default values
        -el.highlight("ffff9c", {
        - attr: "background-color", //can be any valid css attribute that supports a color value
        - endColor: (current color) or "ffffff",
        - easing: 'easeIn',
        - duration: 1
        -}); -
        - * @param {String} color (optional) The highlight color. Should be a 6 char hex color without the leading # (defaults to yellow: 'ffff9c') - * @param {Object} options (optional) Object literal with any of the Fx config options - * @return {Element} The Element - */ - highlight : function(color, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - color = color || "ffff9c"; - attr = o.attr || "backgroundColor"; - - this.clearOpacity(); - this.show(); - - var origColor = this.getColor(attr); - var restoreColor = this.dom.style[attr]; - endColor = (o.endColor || origColor) || "ffffff"; - - var after = function(){ - el.dom.style[attr] = restoreColor; - el.afterFx(o); - }; - - var a = {}; - a[attr] = {from: color, to: endColor}; - arguments.callee.anim = this.fxanim(a, - o, - 'color', - 1, - 'easeIn', after); - }); - return this; - }, - - /** - * Shows a ripple of exploding, attenuating borders to draw attention to an Element. - * Usage: -
        
        -// default: a single light blue ripple
        -el.frame();
        -
        -// custom: 3 red ripples lasting 3 seconds total
        -el.frame("ff0000", 3, { duration: 3 });
        -
        -// common config options shown with default values
        -el.frame("C3DAF9", 1, {
        - duration: 1 //duration of entire animation (not each individual ripple)
        - // Note: Easing is not configurable and will be ignored if included -}); -
        - * @param {String} color (optional) The color of the border. Should be a 6 char hex color without the leading # (defaults to light blue: 'C3DAF9'). - * @param {Number} count (optional) The number of ripples to display (defaults to 1) - * @param {Object} options (optional) Object literal with any of the Fx config options - * @return {Element} The Element - */ - frame : function(color, count, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - color = color || "#C3DAF9"; - if(color.length == 6){ - color = "#" + color; - } - count = count || 1; - duration = o.duration || 1; - this.show(); - - var b = this.getBox(); - var animFn = function(){ - var proxy = this.createProxy({ - tag:"div", - style:{ - visbility:"hidden", - position:"absolute", - "z-index":"35000", // yee haw - border:"0px solid " + color - } - }); - var scale = Ext.isBorderBox ? 2 : 1; - proxy.animate({ - top:{from:b.y, to:b.y - 20}, - left:{from:b.x, to:b.x - 20}, - borderWidth:{from:0, to:10}, - opacity:{from:1, to:0}, - height:{from:b.height, to:(b.height + (20*scale))}, - width:{from:b.width, to:(b.width + (20*scale))} - }, duration, function(){ - proxy.remove(); - }); - if(--count > 0){ - animFn.defer((duration/2)*1000, this); - }else{ - el.afterFx(o); - } - }; - animFn.call(this); - }); - return this; - }, - - /** - * Creates a pause before any subsequent queued effects begin. If there are - * no effects queued after the pause it will have no affect. - * Usage: -
        
        -el.pause(1);
        -
        - * @param {Number} seconds The length of time to pause (in seconds) - * @return {Element} The Element - */ - pause : function(seconds){ - var el = this.getFxEl(); - var o = {}; - - el.queueFx(o, function(){ - setTimeout(function(){ - el.afterFx(o); - }, seconds * 1000); - }); - return this; - }, - - /** - * Fade an element in (from transparent to opaque). The ending opacity can be specified - * using the "endOpacity" config option. - * Usage: -
        
        -// default: fade in from opactiy 0 to 100%
        -el.fadeIn();
        -
        -// custom: fade in from opcaity 0 to 75% over 2 seconds
        -el.fadeIn({ endOpacity: .75, duration: 2});
        -
        -// common config options shown with default values
        -el.fadeIn({
        - endOpacity: 1, //can be any value between 0 and 1 (e.g. .5)
        - easing: 'easeOut',
        - duration: .5
        -}); -
        - * @param {Object} options (optional) Object literal with any of the Fx config options - * @return {Element} The Element - */ - fadeIn : function(o){ - var el = this.getFxEl(); - o = o || {}; - el.queueFx(o, function(){ - this.setOpacity(0); - this.fixDisplay(); - this.dom.style.visibility = 'visible'; - var to = o.endOpacity || 1; - arguments.callee.anim = this.fxanim({opacity:{to:to}}, - o, null, .5, "easeOut", function(){ - if(to == 1){ - this.clearOpacity(); - } - el.afterFx(o); - }); - }); - return this; - }, - - /** - * Fade an element out (from opaque to transparent). The ending opacity can be specified - * using the "endOpacity" config option. - * Usage: -
        
        -// default: fade out from the element's current opacity to 0
        -el.fadeOut();
        -
        -// custom: fade out from the element's current opacity to 25% over 2 seconds
        -el.fadeOut({ endOpacity: .25, duration: 2});
        -
        -// common config options shown with default values
        -el.fadeOut({
        - endOpacity: 0, //can be any value between 0 and 1 (e.g. .5)
        - easing: 'easeOut',
        - duration: .5
        - remove: false,
        - useDisplay: false -}); -
        - * @param {Object} options (optional) Object literal with any of the Fx config options - * @return {Element} The Element - */ - fadeOut : function(o){ - var el = this.getFxEl(); - o = o || {}; - el.queueFx(o, function(){ - arguments.callee.anim = this.fxanim({opacity:{to:o.endOpacity || 0}}, - o, null, .5, "easeOut", function(){ - if(this.visibilityMode == Ext.Element.DISPLAY || o.useDisplay){ - this.dom.style.display = "none"; - }else{ - this.dom.style.visibility = "hidden"; - } - this.clearOpacity(); - el.afterFx(o); - }); - }); - return this; - }, - - /** - * Animates the transition of an element's dimensions from a starting height/width - * to an ending height/width. - * Usage: -
        
        -// change height and width to 100x100 pixels
        -el.scale(100, 100);
        -
        -// common config options shown with default values.  The height and width will default to
        -// the element's existing values if passed as null.
        -el.scale(
        -	[element's width],
        - [element's height], {
        - easing: 'easeOut',
        - duration: .35
        -}); -
        - * @param {Number} width The new width (pass null to keep the original width) - * @param {Number} height The new height (pass null to keep the original height) - * @param {Object} options (optional) Object literal with any of the Fx config options - * @return {Element} The Element - */ - scale : function(w, h, o){ - this.shift(Ext.apply({}, o, { - width: w, - height: h - })); - return this; - }, - - /** - * Animates the transition of any combination of an element's dimensions, xy position and/or opacity. - * Any of these properties not specified in the config object will not be changed. This effect - * requires that at least one new dimension, position or opacity setting must be passed in on - * the config object in order for the function to have any affect. - * Usage: -
        
        -// slide the element horizontally to x position 200 while changing the height and opacity
        -el.shift({ x: 200, height: 50, opacity: .8 });
        -
        -// common config options shown with default values.
        -el.shift({
        -	width: [element's width],
        - height: [element's height],
        - x: [element's x position],
        - y: [element's y position],
        - opacity: [element's opacity],
        - easing: 'easeOut',
        - duration: .35
        -}); -
        - * @param {Object} options Object literal with any of the Fx config options - * @return {Element} The Element - */ - shift : function(o){ - var el = this.getFxEl(); - o = o || {}; - el.queueFx(o, function(){ - var a = {}, w = o.width, h = o.height, x = o.x, y = o.y, op = o.opacity; - if(w !== undefined){ - a.width = {to: this.adjustWidth(w)}; - } - if(h !== undefined){ - a.height = {to: this.adjustHeight(h)}; - } - if(x !== undefined || y !== undefined){ - a.points = {to: [ - x !== undefined ? x : this.getX(), - y !== undefined ? y : this.getY() - ]}; - } - if(op !== undefined){ - a.opacity = {to: op}; - } - if(o.xy !== undefined){ - a.points = {to: o.xy}; - } - arguments.callee.anim = this.fxanim(a, - o, 'motion', .35, "easeOut", function(){ - el.afterFx(o); - }); - }); - return this; - }, - - /** - * Slides the element while fading it out of view. An anchor point can be optionally passed to set the - * ending point of the effect. - * Usage: - *
        
        -// default: slide the element downward while fading out
        -el.ghost();
        -
        -// custom: slide the element out to the right with a 2-second duration
        -el.ghost('r', { duration: 2 });
        -
        -// common config options shown with default values
        -el.ghost('b', {
        - easing: 'easeOut',
        - duration: .5
        - remove: false,
        - useDisplay: false -}); -
        - * @param {String} anchor (optional) One of the valid Fx anchor positions (defaults to bottom: 'b') - * @param {Object} options (optional) Object literal with any of the Fx config options - * @return {Element} The Element - */ - ghost : function(anchor, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - anchor = anchor || "b"; - - // restore values after effect - var r = this.getFxRestore(); - var w = this.getWidth(), - h = this.getHeight(); - - var st = this.dom.style; - - var after = function(){ - if(o.useDisplay){ - el.setDisplayed(false); - }else{ - el.hide(); - } - - el.clearOpacity(); - el.setPositioning(r.pos); - st.width = r.width; - st.height = r.height; - - el.afterFx(o); - }; - - var a = {opacity: {to: 0}, points: {}}, pt = a.points; - switch(anchor.toLowerCase()){ - case "t": - pt.by = [0, -h]; - break; - case "l": - pt.by = [-w, 0]; - break; - case "r": - pt.by = [w, 0]; - break; - case "b": - pt.by = [0, h]; - break; - case "tl": - pt.by = [-w, -h]; - break; - case "bl": - pt.by = [-w, h]; - break; - case "br": - pt.by = [w, h]; - break; - case "tr": - pt.by = [w, -h]; - break; - } - - arguments.callee.anim = this.fxanim(a, - o, - 'motion', - .5, - "easeOut", after); - }); - return this; - }, - - /** - * Ensures that all effects queued after syncFx is called on the element are - * run concurrently. This is the opposite of {@link #sequenceFx}. - * @return {Element} The Element - */ - syncFx : function(){ - this.fxDefaults = Ext.apply(this.fxDefaults || {}, { - block : false, - concurrent : true, - stopFx : false - }); - return this; - }, - - /** - * Ensures that all effects queued after sequenceFx is called on the element are - * run in sequence. This is the opposite of {@link #syncFx}. - * @return {Element} The Element - */ - sequenceFx : function(){ - this.fxDefaults = Ext.apply(this.fxDefaults || {}, { - block : false, - concurrent : false, - stopFx : false - }); - return this; - }, - - /* @private */ - nextFx : function(){ - var ef = this.fxQueue[0]; - if(ef){ - ef.call(this); - } - }, - - /** - * Returns true if the element has any effects actively running or queued, else returns false. - * @return {Boolean} True if element has active effects, else false - */ - hasActiveFx : function(){ - return this.fxQueue && this.fxQueue[0]; - }, - - /** - * Stops any running effects and clears the element's internal effects queue if it contains - * any additional effects that haven't started yet. - * @return {Element} The Element - */ - stopFx : function(){ - if(this.hasActiveFx()){ - var cur = this.fxQueue[0]; - if(cur && cur.anim && cur.anim.isAnimated()){ - this.fxQueue = [cur]; // clear out others - cur.anim.stop(true); - } - } - return this; - }, - - /* @private */ - beforeFx : function(o){ - if(this.hasActiveFx() && !o.concurrent){ - if(o.stopFx){ - this.stopFx(); - return true; - } - return false; - } - return true; - }, - - /** - * Returns true if the element is currently blocking so that no other effect can be queued - * until this effect is finished, else returns false if blocking is not set. This is commonly - * used to ensure that an effect initiated by a user action runs to completion prior to the - * same effect being restarted (e.g., firing only one effect even if the user clicks several times). - * @return {Boolean} True if blocking, else false - */ - hasFxBlock : function(){ - var q = this.fxQueue; - return q && q[0] && q[0].block; - }, - - /* @private */ - queueFx : function(o, fn){ - if(!this.fxQueue){ - this.fxQueue = []; - } - if(!this.hasFxBlock()){ - Ext.applyIf(o, this.fxDefaults); - if(!o.concurrent){ - var run = this.beforeFx(o); - fn.block = o.block; - this.fxQueue.push(fn); - if(run){ - this.nextFx(); - } - }else{ - fn.call(this); - } - } - return this; - }, - - /* @private */ - fxWrap : function(pos, o, vis){ - var wrap; - if(!o.wrap || !(wrap = Ext.get(o.wrap))){ - var wrapXY; - if(o.fixPosition){ - wrapXY = this.getXY(); - } - var div = document.createElement("div"); - div.style.visibility = vis; - wrap = Ext.get(this.dom.parentNode.insertBefore(div, this.dom)); - wrap.setPositioning(pos); - if(wrap.getStyle("position") == "static"){ - wrap.position("relative"); - } - this.clearPositioning('auto'); - wrap.clip(); - wrap.dom.appendChild(this.dom); - if(wrapXY){ - wrap.setXY(wrapXY); - } - } - return wrap; - }, - - /* @private */ - fxUnwrap : function(wrap, pos, o){ - this.clearPositioning(); - this.setPositioning(pos); - if(!o.wrap){ - wrap.dom.parentNode.insertBefore(this.dom, wrap.dom); - wrap.remove(); - } - }, - - /* @private */ - getFxRestore : function(){ - var st = this.dom.style; - return {pos: this.getPositioning(), width: st.width, height : st.height}; - }, - - /* @private */ - afterFx : function(o){ - if(o.afterStyle){ - this.applyStyles(o.afterStyle); - } - if(o.afterCls){ - this.addClass(o.afterCls); - } - if(o.remove === true){ - this.remove(); - } - Ext.callback(o.callback, o.scope, [this]); - if(!o.concurrent){ - this.fxQueue.shift(); - this.nextFx(); - } - }, - - /* @private */ - getFxEl : function(){ // support for composite element fx - return Ext.get(this.dom); - }, - - /* @private */ - fxanim : function(args, opt, animType, defaultDur, defaultEase, cb){ - animType = animType || 'run'; - opt = opt || {}; - var anim = Ext.lib.Anim[animType]( - this.dom, args, - (opt.duration || defaultDur) || .35, - (opt.easing || defaultEase) || 'easeOut', - function(){ - Ext.callback(cb, this); - }, - this - ); - opt.anim = anim; - return anim; - } -}; - -// backwords compat -Ext.Fx.resize = Ext.Fx.scale; - -//When included, Ext.Fx is automatically applied to Element so that all basic -//effects are available directly via the Element API -Ext.apply(Ext.Element.prototype, Ext.Fx); diff --git a/www/extras/extjs/source/core/Template.js b/www/extras/extjs/source/core/Template.js deleted file mode 100644 index a3710b3b7..000000000 --- a/www/extras/extjs/source/core/Template.js +++ /dev/null @@ -1,364 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** -* @class Ext.Template -* Represents an HTML fragment template. Templates can be precompiled for greater performance. -* For a list of available format functions, see {@link Ext.util.Format}. -
        
        -var t = new Ext.Template(
        -	'<div name="{id}">',
        -		'<span class="{cls}">{name:trim} {value:ellipsis(10)}</span>',
        -	'</div>'
        -);
        -t.append('some-element', {id: 'myid', name: 'foo', value: 'bar'});
        -
        -* For more information see this blog post with examples. -*
        -* @constructor -* @param {String/Array} html The HTML fragment or an array of fragments to join('') or multiple arguments to join('') -*/ -Ext.Template = function(html){ - if(html instanceof Array){ - html = html.join(""); - }else if(arguments.length > 1){ - html = Array.prototype.join.call(arguments, ""); - } - /**@private*/ - this.html = html; - -}; -Ext.Template.prototype = { - /** - * Returns an HTML fragment of this template with the specified values applied - * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'}) - * @return {String} - */ - applyTemplate : function(values){ - if(this.compiled){ - return this.compiled(values); - } - var useF = this.disableFormats !== true; - var fm = Ext.util.Format, tpl = this; - var fn = function(m, name, format, args){ - if(format && useF){ - if(format.substr(0, 5) == "this."){ - return tpl.call(format.substr(5), values[name]); - }else{ - if(args){ - // quoted values are required for strings in compiled templates, - // but for non compiled we need to strip them - // quoted reversed for jsmin - var re = /^\s*['"](.*)["']\s*$/; - args = args.split(','); - for(var i = 0, len = args.length; i < len; i++){ - args[i] = args[i].replace(re, "$1"); - } - args = [values[name]].concat(args); - }else{ - args = [values[name]]; - } - return fm[format].apply(fm, args); - } - }else{ - return values[name] !== undefined ? values[name] : ""; - } - }; - return this.html.replace(this.re, fn); - }, - - /** - * Sets the html used as the template and optionally compiles it - * @param {String} html - * @param {Boolean} compile (optional) - * @return {Template} this - */ - set : function(html, compile){ - this.html = html; - this.compiled = null; - if(compile){ - this.compile(); - } - return this; - }, - - /** - * True to disable format functions (default to false) - * @type Boolean - */ - disableFormats : false, - - /** - * The regular expression used to match template variables - * @type RegExp - * @property - */ - re : /\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g, - - /** - * Compiles the template into an internal function, eliminating the RegEx overhead - */ - compile : function(){ - var fm = Ext.util.Format; - var useF = this.disableFormats !== true; - var sep = Ext.isGecko ? "+" : ","; - var fn = function(m, name, format, args){ - if(format && useF){ - args = args ? ',' + args : ""; - if(format.substr(0, 5) != "this."){ - format = "fm." + format + '('; - }else{ - format = 'this.call("'+ format.substr(5) + '", '; - args = ""; - } - }else{ - args= '', format = "(values['" + name + "'] == undefined ? '' : "; - } - return "'"+ sep + format + "values['" + name + "']" + args + ")"+sep+"'"; - }; - var body; - // branched to use + in gecko and [].join() in others - if(Ext.isGecko){ - body = "this.compiled = function(values){ return '" + - this.html.replace(/(\r\n|\n)/g, '\\n').replace("'", "\\'").replace(this.re, fn) + - "';};"; - }else{ - body = ["this.compiled = function(values){ return ['"]; - body.push(this.html.replace(/(\r\n|\n)/g, '\\n').replace("'", "\\'").replace(this.re, fn)); - body.push("'].join('');};"); - body = body.join(''); - } - eval(body); - return this; - }, - - // private function used to call members - call : function(fnName, value){ - return this[fnName](value); - }, - - /** - * Applies the supplied values to the template and inserts the new node(s) as the first child of el - * @param {String/HTMLElement/Element} el The context element - * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'}) - * @param {Boolean} returnElement (optional) true to return a Ext.Element - * @return {HTMLElement} The new node - */ - insertFirst: function(el, values, returnElement){ - return this.doInsert('afterBegin', el, values, returnElement); - }, - - /** - * Applies the supplied values to the template and inserts the new node(s) before el - * @param {String/HTMLElement/Element} el The context element - * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'}) - * @param {Boolean} returnElement (optional) true to return a Ext.Element - * @return {HTMLElement} The new node - */ - insertBefore: function(el, values, returnElement){ - return this.doInsert('beforeBegin', el, values, returnElement); - }, - - /** - * Applies the supplied values to the template and inserts the new node(s) after el - * @param {String/HTMLElement/Element} el The context element - * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'}) - * @param {Boolean} returnElement (optional) true to return a Ext.Element - * @return {HTMLElement} The new node - */ - insertAfter : function(el, values, returnElement){ - return this.doInsert('afterEnd', el, values, returnElement); - }, - - /** - * Applies the supplied values to the template and append the new node(s) to el - * @param {String/HTMLElement/Element} el The context element - * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'}) - * @param {Boolean} returnElement (optional) true to return a Ext.Element - * @return {HTMLElement} The new node - */ - append : function(el, values, returnElement){ - return this.doInsert('beforeEnd', el, values, returnElement); - }, - - doInsert : function(where, el, values, returnEl){ - el = Ext.getDom(el); - var newNode = Ext.DomHelper.insertHtml(where, el, this.applyTemplate(values)); - return returnEl ? Ext.get(newNode, true) : newNode; - }, - - /** - * Applies the supplied values to the template and overwrites the content of el with the new node(s) - * @param {String/HTMLElement/Element} el The context element - * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'}) - * @param {Boolean} returnElement (optional) true to return a Ext.Element - * @return {HTMLElement} The new node - */ - overwrite : function(el, values, returnElement){ - el = Ext.getDom(el); - el.innerHTML = this.applyTemplate(values); - return returnElement ? Ext.get(el.firstChild, true) : el.firstChild; - } -}; -/** - * Alias for applyTemplate - * @method - */ -Ext.Template.prototype.apply = Ext.Template.prototype.applyTemplate; - -// backwards compat -Ext.DomHelper.Template = Ext.Template; - -/** - * Creates a template from the passed element's value (display:none textarea, preferred) or innerHTML - * @param {String/HTMLElement} el - * @static - */ -Ext.Template.from = function(el){ - el = Ext.getDom(el); - return new Ext.Template(el.value || el.innerHTML); -}; - -/** - * @class Ext.MasterTemplate - * @extends Ext.Template - * Provides a template that can have child templates. The syntax is: -
        
        -var t = new Ext.MasterTemplate(
        -	'<select name="{name}">',
        -		'<tpl name="options"><option value="{value:trim}">{text:ellipsis(10)}</option></tpl>',
        -	'</select>'
        -);
        -t.add('options', {value: 'foo', text: 'bar'});
        -// or you can add multiple child elements in one shot
        -t.addAll('options', [
        -    {value: 'foo', text: 'bar'},
        -    {value: 'foo2', text: 'bar2'},
        -    {value: 'foo3', text: 'bar3'}
        -]);
        -// then append, applying the master template values
        -t.append('my-form', {name: 'my-select'});
        -
        -* A name attribute for the child template is not required if you have only one child -* template or you want to refer to them by index. - */ -Ext.MasterTemplate = function(){ - Ext.MasterTemplate.superclass.constructor.apply(this, arguments); - this.originalHtml = this.html; - var st = {}; - var m, re = this.subTemplateRe; - re.lastIndex = 0; - var subIndex = 0; - while(m = re.exec(this.html)){ - var name = m[1], content = m[2]; - st[subIndex] = { - name: name, - index: subIndex, - buffer: [], - tpl : new Ext.Template(content) - }; - if(name){ - st[name] = st[subIndex]; - } - st[subIndex].tpl.compile(); - st[subIndex].tpl.call = this.call.createDelegate(this); - subIndex++; - } - this.subCount = subIndex; - this.subs = st; -}; -Ext.extend(Ext.MasterTemplate, Ext.Template, { - /** - * The regular expression used to match sub templates - * @type RegExp - * @property - */ - subTemplateRe : /((?:.|\n)*?)<\/tpl>/gi, - - /** - * Applies the passed values to a child template. - * @param {String/Number} name (optional) The name or index of the child template - * @param {Array/Object} values The values to be applied to the template - * @return {MasterTemplate} this - */ - add : function(name, values){ - if(arguments.length == 1){ - values = arguments[0]; - name = 0; - } - var s = this.subs[name]; - s.buffer[s.buffer.length] = s.tpl.apply(values); - return this; - }, - - /** - * Applies all the passed values to a child template. - * @param {String/Number} name (optional) The name or index of the child template - * @param {Array} values The values to be applied to the template, this should be an array of objects. - * @param {Boolean} reset (optional) True to reset the template first - * @return {MasterTemplate} this - */ - fill : function(name, values, reset){ - var a = arguments; - if(a.length == 1 || (a.length == 2 && typeof a[1] == "boolean")){ - values = a[0]; - name = 0; - reset = a[1]; - } - if(reset){ - this.reset(); - } - for(var i = 0, len = values.length; i < len; i++){ - this.add(name, values[i]); - } - return this; - }, - - /** - * Resets the template for reuse - * @return {MasterTemplate} this - */ - reset : function(){ - var s = this.subs; - for(var i = 0; i < this.subCount; i++){ - s[i].buffer = []; - } - return this; - }, - - applyTemplate : function(values){ - var s = this.subs; - var replaceIndex = -1; - this.html = this.originalHtml.replace(this.subTemplateRe, function(m, name){ - return s[++replaceIndex].buffer.join(""); - }); - return Ext.MasterTemplate.superclass.applyTemplate.call(this, values); - }, - - apply : function(){ - return this.applyTemplate.apply(this, arguments); - }, - - compile : function(){return this;} -}); - -/** - * Alias for fill(). - * @method - */ -Ext.MasterTemplate.prototype.addAll = Ext.MasterTemplate.prototype.fill; - /** - * Creates a template from the passed element's value (display:none textarea, preferred) or innerHTML. e.g. - * var tpl = Ext.MasterTemplate.from('element-id'); - * @param {String/HTMLElement} el - * @static - */ -Ext.MasterTemplate.from = function(el){ - el = Ext.getDom(el); - return new Ext.MasterTemplate(el.value || el.innerHTML); -}; \ No newline at end of file diff --git a/www/extras/extjs/source/core/UpdateManager.js b/www/extras/extjs/source/core/UpdateManager.js deleted file mode 100644 index 44f9150e5..000000000 --- a/www/extras/extjs/source/core/UpdateManager.js +++ /dev/null @@ -1,493 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.UpdateManager - * @extends Ext.util.Observable - * Provides AJAX-style update for Element object.

        - * Usage:
        - *
        
        - * // Get it from a Ext.Element object
        - * var el = Ext.get("foo");
        - * var mgr = el.getUpdateManager();
        - * mgr.update("http://myserver.com/index.php", "param1=1&param2=2");
        - * ...
        - * mgr.formUpdate("myFormId", "http://myserver.com/index.php");
        - * 
        - * // or directly (returns the same UpdateManager instance) - * var mgr = new Ext.UpdateManager("myElementId"); - * mgr.startAutoRefresh(60, "http://myserver.com/index.php"); - * mgr.on("update", myFcnNeedsToKnow); - *
        - // short handed call directly from the element object - Ext.get("foo").load({ - url: "bar.php", - scripts:true, - params: "for=bar", - text: "Loading Foo..." - }); - *
        - * @constructor - * Create new UpdateManager directly. - * @param {String/HTMLElement/Ext.Element} el The element to update - * @param {Boolean} forceNew (optional) By default the constructor checks to see if the passed element already has an UpdateManager and if it does it returns the same instance. This will skip that check (useful for extending this class). - */ -Ext.UpdateManager = function(el, forceNew){ - el = Ext.get(el); - if(!forceNew && el.updateManager){ - return el.updateManager; - } - /** - * The Element object - * @type Ext.Element - */ - this.el = el; - /** - * Cached url to use for refreshes. Overwritten every time update() is called unless "discardUrl" param is set to true. - * @type String - */ - this.defaultUrl = null; - - this.addEvents({ - /** - * @event beforeupdate - * Fired before an update is made, return false from your handler and the update is cancelled. - * @param {Ext.Element} el - * @param {String/Object/Function} url - * @param {String/Object} params - */ - "beforeupdate": true, - /** - * @event update - * Fired after successful update is made. - * @param {Ext.Element} el - * @param {Object} oResponseObject The response Object - */ - "update": true, - /** - * @event failure - * Fired on update failure. - * @param {Ext.Element} el - * @param {Object} oResponseObject The response Object - */ - "failure": true - }); - var d = Ext.UpdateManager.defaults; - /** - * Blank page URL to use with SSL file uploads (Defaults to Ext.UpdateManager.defaults.sslBlankUrl or "about:blank"). - * @type String - */ - this.sslBlankUrl = d.sslBlankUrl; - /** - * Whether to append unique parameter on get request to disable caching (Defaults to Ext.UpdateManager.defaults.disableCaching or false). - * @type Boolean - */ - this.disableCaching = d.disableCaching; - /** - * Text for loading indicator (Defaults to Ext.UpdateManager.defaults.indicatorText or '<div class="loading-indicator">Loading...</div>'). - * @type String - */ - this.indicatorText = d.indicatorText; - /** - * Whether to show indicatorText when loading (Defaults to Ext.UpdateManager.defaults.showLoadIndicator or true). - * @type String - */ - this.showLoadIndicator = d.showLoadIndicator; - /** - * Timeout for requests or form posts in seconds (Defaults to Ext.UpdateManager.defaults.timeout or 30 seconds). - * @type Number - */ - this.timeout = d.timeout; - - /** - * True to process scripts in the output (Defaults to Ext.UpdateManager.defaults.loadScripts (false)). - * @type Boolean - */ - this.loadScripts = d.loadScripts; - - /** - * Transaction object of current executing transaction - */ - this.transaction = null; - - /** - * @private - */ - this.autoRefreshProcId = null; - /** - * Delegate for refresh() prebound to "this", use myUpdater.refreshDelegate.createCallback(arg1, arg2) to bind arguments - * @type Function - */ - this.refreshDelegate = this.refresh.createDelegate(this); - /** - * Delegate for update() prebound to "this", use myUpdater.updateDelegate.createCallback(arg1, arg2) to bind arguments - * @type Function - */ - this.updateDelegate = this.update.createDelegate(this); - /** - * Delegate for formUpdate() prebound to "this", use myUpdater.formUpdateDelegate.createCallback(arg1, arg2) to bind arguments - * @type Function - */ - this.formUpdateDelegate = this.formUpdate.createDelegate(this); - /** - * @private - */ - this.successDelegate = this.processSuccess.createDelegate(this); - /** - * @private - */ - this.failureDelegate = this.processFailure.createDelegate(this); - - /** - * The renderer for this UpdateManager. Defaults to {@link Ext.UpdateManager.BasicRenderer}. - */ - this.renderer = new Ext.UpdateManager.BasicRenderer(); - - Ext.UpdateManager.superclass.constructor.call(this); -}; - -Ext.extend(Ext.UpdateManager, Ext.util.Observable, { - /** - * Get the Element this UpdateManager is bound to - * @return {Ext.Element} The element - */ - getEl : function(){ - return this.el; - }, - /** - * Performs an async request, updating this element with the response. If params are specified it uses POST, otherwise it uses GET. - * @param {Object/String/Function} url The url for this request or a function to call to get the url or a config object containing any of the following options: -
        
        -um.update({
        - url: "your-url.php",
        - params: {param1: "foo", param2: "bar"}, // or a URL encoded string
        - callback: yourFunction,
        - scope: yourObject, //(optional scope)
        - discardUrl: false,
        - nocache: false,
        - text: "Loading...",
        - timeout: 30,
        - scripts: false
        -}); -
        - * The only required property is url. The optional properties nocache, text and scripts - * are shorthand for disableCaching, indicatorText and loadScripts and are used to set their associated property on this UpdateManager instance. - * @param {String/Object} params (optional) The parameters to pass as either a url encoded string "param1=1&param2=2" or an object {param1: 1, param2: 2} - * @param {Function} callback (optional) Callback when transaction is complete - called with signature (oElement, bSuccess, oResponse) - * @param {Boolean} discardUrl (optional) By default when you execute an update the defaultUrl is changed to the last used url. If true, it will not store the url. - */ - update : function(url, params, callback, discardUrl){ - if(this.fireEvent("beforeupdate", this.el, url, params) !== false){ - var method = this.method; - if(typeof url == "object"){ // must be config object - var cfg = url; - url = cfg.url; - params = params || cfg.params; - callback = callback || cfg.callback; - discardUrl = discardUrl || cfg.discardUrl; - if(callback && cfg.scope){ - callback = callback.createDelegate(cfg.scope); - } - if(typeof cfg.method != "undefined"){method = cfg.method;}; - if(typeof cfg.nocache != "undefined"){this.disableCaching = cfg.nocache;}; - if(typeof cfg.text != "undefined"){this.indicatorText = '
        '+cfg.text+"
        ";}; - if(typeof cfg.scripts != "undefined"){this.loadScripts = cfg.scripts;}; - if(typeof cfg.timeout != "undefined"){this.timeout = cfg.timeout;}; - } - this.showLoading(); - if(!discardUrl){ - this.defaultUrl = url; - } - if(typeof url == "function"){ - url = url.call(this); - } - if(typeof params == "function"){ - params = params(); - } - if(params && typeof params != "string"){ // must be object - var buf = []; - for(var key in params){ - if(typeof params[key] != "function"){ - buf.push(encodeURIComponent(key), "=", encodeURIComponent(params[key]), "&"); - } - } - delete buf[buf.length-1]; - params = buf.join(""); - } - var cb = { - success: this.successDelegate, - failure: this.failureDelegate, - timeout: (this.timeout*1000), - argument: {"url": url, "form": null, "callback": callback, "params": params} - }; - method = method || (params ? "POST" : "GET"); - if(method == "GET"){ - url = this.prepareUrl(url); - } - this.transaction = Ext.lib.Ajax.request(method, url, cb, params); - } - }, - - /** - * Performs an async form post, updating this element with the response. If the form has the attribute enctype="multipart/form-data", it assumes it's a file upload. - * Uses this.sslBlankUrl for SSL file uploads to prevent IE security warning. See YUI docs for more info. - * @param {String/HTMLElement} form The form Id or form element - * @param {String} url (optional) The url to pass the form to. If omitted the action attribute on the form will be used. - * @param {Boolean} reset (optional) Whether to try to reset the form after the update - * @param {Function} callback (optional) Callback when transaction is complete - called with signature (oElement, bSuccess, oResponse) - */ - formUpdate : function(form, url, reset, callback){ - if(this.fireEvent("beforeupdate", this.el, form, url) !== false){ - formEl = Ext.getDom(form); - if(typeof url == "function"){ - url = url.call(this); - } - if(typeof params == "function"){ - params = params(); - } - url = url || formEl.action; - var cb = { - success: this.successDelegate, - failure: this.failureDelegate, - timeout: (this.timeout*1000), - argument: {"url": url, "form": formEl, "callback": callback, "reset": reset} - }; - var isUpload = false; - var enctype = formEl.getAttribute("enctype"); - if(enctype && enctype.toLowerCase() == "multipart/form-data"){ - isUpload = true; - cb.upload = this.successDelegate; - } - this.transaction = Ext.lib.Ajax.formRequest(formEl, url, cb, null, isUpload, this.sslBlankUrl); - this.showLoading.defer(1, this); - } - }, - - /** - * Refresh the element with the last used url or defaultUrl. If there is no url, it returns immediately - * @param {Function} callback (optional) Callback when transaction is complete - called with signature (oElement, bSuccess) - */ - refresh : function(callback){ - if(this.defaultUrl == null){ - return; - } - this.update(this.defaultUrl, null, callback, true); - }, - - /** - * Set this element to auto refresh. - * @param {Number} interval How often to update (in seconds). - * @param {String/Function} url (optional) The url for this request or a function to call to get the url (Defaults to the last used url) - * @param {String/Object} params (optional) The parameters to pass as either a url encoded string "¶m1=1¶m2=2" or as an object {param1: 1, param2: 2} - * @param {Function} callback (optional) Callback when transaction is complete - called with signature (oElement, bSuccess) - * @param {Boolean} refreshNow (optional) Whether to execute the refresh now, or wait the interval - */ - startAutoRefresh : function(interval, url, params, callback, refreshNow){ - if(refreshNow){ - this.update(url || this.defaultUrl, params, callback, true); - } - if(this.autoRefreshProcId){ - clearInterval(this.autoRefreshProcId); - } - this.autoRefreshProcId = setInterval(this.update.createDelegate(this, [url || this.defaultUrl, params, callback, true]), interval*1000); - }, - - /** - * Stop auto refresh on this element. - */ - stopAutoRefresh : function(){ - if(this.autoRefreshProcId){ - clearInterval(this.autoRefreshProcId); - delete this.autoRefreshProcId; - } - }, - - isAutoRefreshing : function(){ - return this.autoRefreshProcId ? true : false; - }, - /** - * Called to update the element to "Loading" state. Override to perform custom action. - */ - showLoading : function(){ - if(this.showLoadIndicator){ - this.el.update(this.indicatorText); - } - }, - - /** - * Adds unique parameter to query string if disableCaching = true - * @private - */ - prepareUrl : function(url){ - if(this.disableCaching){ - var append = "_dc=" + (new Date().getTime()); - if(url.indexOf("?") !== -1){ - url += "&" + append; - }else{ - url += "?" + append; - } - } - return url; - }, - - /** - * @private - */ - processSuccess : function(response){ - this.transaction = null; - if(response.argument.form && response.argument.reset){ - try{ // put in try/catch since some older FF releases had problems with this - response.argument.form.reset(); - }catch(e){} - } - if(this.loadScripts){ - this.renderer.render(this.el, response, this, - this.updateComplete.createDelegate(this, [response])); - }else{ - this.renderer.render(this.el, response, this); - this.updateComplete(response); - } - }, - - updateComplete : function(response){ - this.fireEvent("update", this.el, response); - if(typeof response.argument.callback == "function"){ - response.argument.callback(this.el, true, response); - } - }, - - /** - * @private - */ - processFailure : function(response){ - this.transaction = null; - this.fireEvent("failure", this.el, response); - if(typeof response.argument.callback == "function"){ - response.argument.callback(this.el, false, response); - } - }, - - /** - * Set the content renderer for this UpdateManager. See {@link Ext.UpdateManager.BasicRenderer#render} for more details. - * @param {Object} renderer The object implementing the render() method - */ - setRenderer : function(renderer){ - this.renderer = renderer; - }, - - getRenderer : function(){ - return this.renderer; - }, - - /** - * Set the defaultUrl used for updates - * @param {String/Function} defaultUrl The url or a function to call to get the url - */ - setDefaultUrl : function(defaultUrl){ - this.defaultUrl = defaultUrl; - }, - - /** - * Aborts the executing transaction - */ - abort : function(){ - if(this.transaction){ - Ext.lib.Ajax.abort(this.transaction); - } - }, - - /** - * Returns true if an update is in progress - * @return {Boolean} - */ - isUpdating : function(){ - if(this.transaction){ - return Ext.lib.Ajax.isCallInProgress(this.transaction); - } - return false; - } -}); - -/** - * @class Ext.UpdateManager.defaults - * The defaults collection enables customizing the default properties of UpdateManager - */ - Ext.UpdateManager.defaults = { - /** - * Timeout for requests or form posts in seconds (Defaults 30 seconds). - * @type Number - */ - timeout : 30, - - /** - * True to process scripts by default (Defaults to false). - * @type Boolean - */ - loadScripts : false, - - /** - * Blank page URL to use with SSL file uploads (Defaults to "javascript:false"). - * @type String - */ - sslBlankUrl : (Ext.SSL_SECURE_URL || "javascript:false"), - /** - * Whether to append unique parameter on get request to disable caching (Defaults to false). - * @type Boolean - */ - disableCaching : false, - /** - * Whether to show indicatorText when loading (Defaults to true). - * @type Boolean - */ - showLoadIndicator : true, - /** - * Text for loading indicator (Defaults to '<div class="loading-indicator">Loading...</div>'). - * @type String - */ - indicatorText : '
        Loading...
        ' - }; - -/** - * Static convenience method. This method is deprecated in favor of el.load({url:'foo.php', ...}). - *Usage: - *
        Ext.UpdateManager.updateElement("my-div", "stuff.php");
        - * @param {String/HTMLElement/Ext.Element} el The element to update - * @param {String} url The url - * @param {String/Object} params (optional) Url encoded param string or an object of name/value pairs - * @param {Object} options (optional) A config object with any of the UpdateManager properties you want to set - for example: {disableCaching:true, indicatorText: "Loading data..."} - * @static - * @deprecated - * @member Ext.UpdateManager - */ -Ext.UpdateManager.updateElement = function(el, url, params, options){ - var um = Ext.get(el, true).getUpdateManager(); - Ext.apply(um, options); - um.update(url, params, options ? options.callback : null); -}; -// alias for backwards compat -Ext.UpdateManager.update = Ext.UpdateManager.updateElement; -/** - * @class Ext.UpdateManager.BasicRenderer - * Default Content renderer. Updates the elements innerHTML with the responseText. - */ -Ext.UpdateManager.BasicRenderer = function(){}; - -Ext.UpdateManager.BasicRenderer.prototype = { - /** - * This is called when the transaction is completed and it's time to update the element - The BasicRenderer - * updates the elements innerHTML with the responseText - To perform a custom render (i.e. XML or JSON processing), - * create an object with a "render(el, response)" method and pass it to setRenderer on the UpdateManager. - * @param {Ext.Element} el The element being rendered - * @param {Object} response The YUI Connect response object - * @param {UpdateManager} updateManager The calling update manager - * @param {Function} callback A callback that will need to be called if loadScripts is true on the UpdateManager - */ - render : function(el, response, updateManager, callback){ - el.update(response.responseText, updateManager.loadScripts, callback); - } -}; diff --git a/www/extras/extjs/source/data/ArrayReader.js b/www/extras/extjs/source/data/ArrayReader.js deleted file mode 100644 index b1f7fb362..000000000 --- a/www/extras/extjs/source/data/ArrayReader.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.data.ArrayReader - * @extends Ext.data.DataReader - * Data reader class to create an Array of Ext.data.Record objects from an Array. - * Each element of that Array represents a row of data fields. The - * fields are pulled into a Record object using as a subscript, the mapping property - * of the field definition if it exists, or the field's ordinal position in the definition. - *

        - * The code below lists all configuration options. - *

        
        -   var RecordDef = Ext.data.Record.create([
        -       {name: 'name', mapping: 1},
        -       {name: 'occupation', mapping: 2},
        -   ]);
        -   var myReader = new Ext.data.ArrayReader({
        -       id: 0                     // The subscript within row Array that provides an ID for the Record (optional)
        -   }, RecordDef);
        -  
        - *

        - * This would consume an Array like this: - *

        
        -   [ [1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist'] ]
        -  
        - * @cfg {String} totalProperty Name of the property from which to retrieve the total number of records - * in the dataset. This is only needed if the whole dataset is not passed in one go, but is being - * paged from the remote server. - * @cfg {String} id (optional) The subscript within row Array that provides an ID for the Record - * @constructor - * Create a new JsonReader - * @param {Object} meta Metadata configuration options. - * @param {Array/Ext.data.Record constructor} recordType Either an Array of field definition objects, - * or an {@link Ext.data.Record} object created using {@link Ext.data.Record#create}. - */ -Ext.data.ArrayReader = function(meta, recordType){ - Ext.data.ArrayReader.superclass.constructor.call(this, meta, recordType); -}; - -Ext.extend(Ext.data.ArrayReader, Ext.data.JsonReader, { - /** - * Create a data block containing Ext.data.Records from an XML document. - * @param {Object} o An object which contains an Array of row objects in the property specified - * in the config as 'root, and optionally a property, specified in the config as 'totalProperty' - * which contains the total size of the dataset. - * @return {Object} data A data block which is used by an Ext.data.Store object as - * a cache of Ext.data.Records. - */ - readRecords : function(o){ - var sid = this.meta ? this.meta.id : null; - var recordType = this.recordType, fields = recordType.prototype.fields; - var records = []; - var root = o; - for(var i = 0; i < root.length; i++){ - var n = root[i]; - var values = {}; - var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null); - for(var j = 0, jlen = fields.length; j < jlen; j++){ - var f = fields.items[j]; - var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j; - var v = n[k] !== undefined ? n[k] : f.defaultValue; - v = f.convert(v); - values[f.name] = v; - } - var record = new recordType(values, id); - record.json = n; - records[records.length] = record; - } - return { - records : records, - totalRecords : records.length - }; - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/data/Connection.js b/www/extras/extjs/source/data/Connection.js deleted file mode 100644 index e737ee20b..000000000 --- a/www/extras/extjs/source/data/Connection.js +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.data.Connection - * The class encapsulates a connection to the page's originating domain, allowing requests to be made - * either to a configured URL, or to a URL specified at request time. - *

        - * Requests made by this class are asynchronous, and will return immediately, and no data from - * the server will be available. To process the returned data, us a callback in the request options - * object. - * @constructor - * @param config {Object} a configuration object. - */ -Ext.data.Connection = function(config){ - Ext.apply(this, config); - this.addEvents({ - "beforerequest" : true, - "requestcomplete" : true, - "requestexception" : true - }); - Ext.data.Connection.superclass.constructor.call(this); -}; - -Ext.extend(Ext.data.Connection, Ext.util.Observable, { - /** - * @cfg url {String} (Optional) The default URL to be used for requests to the server. - */ - /** - * @cfg extraParams {Object} (Optional) An object containing properties which are used as - * extra parameters to each request made by this object. - */ - /** - * @cfg method {String} (Optional) The default HTTP method to be used for requests. - */ - /** - * @cfg timeout {Number} (Optional) The timeout in milliseconds to be used for requests. Defaults - * to 30000. - */ - timeout : 30000, - - /** - * Sends an HTTP request to a remote server. - * @param {Object} options. An object which may contain the following properties:

          - *
        • url {String} (Optional) The URL to which to send the request. Defaults to configured URL
        • - *
        • params {Object} (Optional) An object containing properties which are used as extra parameters to the request
        • - *
        • method {String} (Optional) The HTTP method to use for the request. Defaults to the configured method, or - * if no method was configured, "GET" if no parameters are being sent, and "POST" if parameters are being sent.
        • - *
        • callback {Function} (Optional) The function to be called upon receipt of the HTTP response. - * The callback is passed the following parameters:
            - *
          • options {Object} The parameter to the request call.
          • - *
          • success {Boolean} True if the request succeeded.
          • - *
          • resopnse {Object} The XMLHttpRequest object containing the response data.
          • - *
        • - *
        • scope {Object} (Optional) The scope in which to execute the callback: The "this" object - * for the callback function. Defaults to the browser window.
        • - *
        - */ - request : function(options){ - if(this.fireEvent("beforerequest", this, options) !== false){ - var p = options.params; - if(typeof p == "object"){ - p = Ext.urlEncode(Ext.apply(options.params, this.extraParams)); - } - var cb = { - success: this.handleResponse, - failure: this.handleFailure, - scope: this, - argument: {options: options}, - timeout : this.timeout - }; - var method = options.method||this.method||(p ? "POST" : "GET"); - var url = options.url || this.url; - if(this.autoAbort !== false){ - this.abort(); - } - if(method == 'GET' && p){ - url += (url.indexOf('?') != -1 ? '&' : '?') + p; - p = ''; - } - this.transId = Ext.lib.Ajax.request(method, url, cb, p); - }else{ - if(typeof options.callback == "function"){ - options.callback.call(options.scope||window, options, null, null); - } - } - }, - - /** - * Determine whether this object has a request outstanding. - * @return {Boolean} True if there is an outstanding request. - */ - isLoading : function(){ - return this.transId ? true : false; - }, - - /** - * Aborts any outstanding request. - */ - abort : function(){ - if(this.isLoading()){ - Ext.lib.Ajax.abort(this.transId); - } - }, - - // private - handleResponse : function(response){ - this.transId = false; - var options = response.argument.options; - this.fireEvent("requestcomplete", this, response, options); - if(typeof options.callback == "function"){ - options.callback.call(options.scope||window, options, true, response); - } - }, - - // private - handleFailure : function(response, e){ - this.transId = false; - var options = response.argument.options; - this.fireEvent("requestexception", this, response, options, e); - if(typeof options.callback == "function"){ - options.callback.call(options.scope||window, options, false, response); - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/data/DataField.js b/www/extras/extjs/source/data/DataField.js deleted file mode 100644 index fceba93e7..000000000 --- a/www/extras/extjs/source/data/DataField.js +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.data.Field = function(config){ - if(typeof config == "string"){ - config = {name: config}; - } - Ext.apply(this, config); - - if(!this.type){ - this.type = "auto"; - } - - var st = Ext.data.SortTypes; - // named sortTypes are supported, here we look them up - if(typeof this.sortType == "string"){ - this.sortType = st[this.sortType]; - } - - // set default sortType for strings and dates - if(!this.sortType){ - switch(this.type){ - case "string": - this.sortType = st.asUCString; - break; - case "date": - this.sortType = st.asDate; - break; - default: - this.sortType = st.none; - } - } - - // define once - var stripRe = /[\$,%]/g; - - // prebuilt conversion function for this field, instead of - // switching every time we're reading a value - if(!this.convert){ - var cv, dateFormat = this.dateFormat; - switch(this.type){ - case "": - case "auto": - case undefined: - cv = function(v){ return v; }; - break; - case "string": - cv = function(v){ return String(v); }; - break; - case "int": - cv = function(v){ - return v !== undefined && v !== null && v !== '' ? - parseInt(String(v).replace(stripRe, ""), 10) : ''; - }; - break; - case "float": - cv = function(v){ - return v !== undefined && v !== null && v !== '' ? - parseFloat(String(v).replace(stripRe, ""), 10) : ''; - }; - break; - case "bool": - case "boolean": - cv = function(v){ return v === true || v === "true" || v == 1; }; - break; - case "date": - cv = function(v){ - if(!v){ - return ''; - } - if(v instanceof Date){ - return v; - } - if(dateFormat){ - if(dateFormat == "timestamp"){ - return new Date(v*1000); - } - return Date.parseDate(v, dateFormat); - } - var parsed = Date.parse(v); - return parsed ? new Date(parsed) : null; - }; - break; - - } - this.convert = cv; - } -}; - -Ext.data.Field.prototype = { - dateFormat: null, - defaultValue: "", - mapping: null, - sortType : null, - sortDir : "ASC" -}; \ No newline at end of file diff --git a/www/extras/extjs/source/data/DataProxy.js b/www/extras/extjs/source/data/DataProxy.js deleted file mode 100644 index dfced9382..000000000 --- a/www/extras/extjs/source/data/DataProxy.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.data.DataProxy - * This class is an abstract base class for implementations which provide retrieval of - * unformatted data objects. - *

        - * DataProxy implementations are usually used in conjunction with an implementation of Ext.data.DataReader - * (of the approriate type which knows how to parse the data object) to provide a block of Records - * to an Ext.data.Store. - *

        - * Custom implementations must implement the load method as described in - * {@link Ext.data.HttpProxy#load}. - */ -Ext.data.DataProxy = function(){ - this.addEvents({ - /** - * @event beforeload - * Fires before a network request is made to retrieve a data object. - * @param {Object} params The params parameter to the load function. - */ - beforeload : true, - /** - * @event load - * Fires before the load method's callback is called. - * @param {Object} o The data object. - * @param {Object} arg The callback argument object passed to the load function. - */ - load : true, - /** - * @event loadexception - * Fires if an Exception occurs during data retrieval. - * @param {Object} o The data object. - * @param {Object} arg The callback argument object passed to the load function. - * @param {Object} e The Exception. - */ - loadexception : true - }); - Ext.data.DataProxy.superclass.constructor.call(this); -}; - -Ext.extend(Ext.data.DataProxy, Ext.util.Observable); \ No newline at end of file diff --git a/www/extras/extjs/source/data/DataReader.js b/www/extras/extjs/source/data/DataReader.js deleted file mode 100644 index 515cdf542..000000000 --- a/www/extras/extjs/source/data/DataReader.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.data.DataReader = function(meta, recordType){ - this.meta = meta; - this.recordType = recordType instanceof Array ? - Ext.data.Record.create(recordType) : recordType; -}; - -Ext.data.DataReader.prototype = { - -}; \ No newline at end of file diff --git a/www/extras/extjs/source/data/HttpProxy.js b/www/extras/extjs/source/data/HttpProxy.js deleted file mode 100644 index 84becb117..000000000 --- a/www/extras/extjs/source/data/HttpProxy.js +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.data.HttpProxy - * An implementation of Ext.data.DataProxy that reads a data object from an Ext.data.Connection object - * configured to reference a certain URL. - *

        - * Note that this class cannot be used to retrieve data from a domain other than the domain - * from which the running page was served. - *

        - * For cross-domain access to remote data, use an Ext.data.ScriptTagProxy. - * - *

        - * Be aware that to enable the browser to parse an XML document, the server must set - * the Content-Type header to "text/xml". - * @constructor - * @param {Object} conn An Ext.data.Connection object referencing the URL from which the data object - * is to be read, or a configuration object for an Ext.data.Connection. - */ -Ext.data.HttpProxy = function(conn){ - Ext.data.HttpProxy.superclass.constructor.call(this); - // is conn a conn config or a real conn? - this.conn = conn.events ? conn : new Ext.data.Connection(conn); -}; - -Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, { - // private - getConnection : function(){ - return this.conn; - }, - - /** - * Load data from the configured Ext.data.Connection, read the data object into - * a block of Ext.data.Records using the passed Ext.data.DataReader implementation, and - * process that block using the passed callback. - * @param {Object} params An object containing properties which are to be used as HTTP parameters - * for the request to the remote server. - * @param {Ext.data.DataReader) reader The Reader object which converts the data - * object into a block of Ext.data.Records. - * @param {Function} callback The function into which to pass the block of Ext.data.Records. - * The function must be passed

          - *
        • The Record block object
        • - *
        • The "arg" argument from the load function
        • - *
        • A boolean success indicator
        • - *
        - * @param {Object} scope The scope in which to call the callback - * @param {Object} arg An optional argument which is passed to the callback as its second parameter. - */ - load : function(params, reader, callback, scope, arg){ - if(this.fireEvent("beforeload", this, params) !== false){ - this.conn.request({ - params : params || {}, - request: { - callback : callback, - scope : scope, - arg : arg - }, - reader: reader, - callback : this.loadResponse, - scope: this - }); - }else{ - callback.call(scope||this, null, arg, false); - } - }, - - // private - loadResponse : function(o, success, response){ - if(!success){ - this.fireEvent("loadexception", this, o, response); - o.request.callback.call(o.request.scope, null, o.request.arg, false); - return; - } - var result; - try { - result = o.reader.read(response); - }catch(e){ - this.fireEvent("loadexception", this, o, response, e); - o.request.callback.call(o.request.scope, null, o.request.arg, false); - return; - } - this.fireEvent("load", this, o, o.request.arg); - o.request.callback.call(o.request.scope, result, o.request.arg, true); - }, - - // private - update : function(dataSet){ - - }, - - // private - updateResponse : function(dataSet){ - - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/data/JsonReader.js b/www/extras/extjs/source/data/JsonReader.js deleted file mode 100644 index 3d6101dda..000000000 --- a/www/extras/extjs/source/data/JsonReader.js +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.data.JsonReader - * @extends Ext.data.DataReader - * Data reader class to create an Array of Ext.data.Record objects from a JSON response - * based on mappings in a provided Ext.data.Record constructor. - *

        - * The code below lists all configuration options. - *

        
        -   var RecordDef = Ext.data.Record.create([
        -       {name: 'name', mapping: 'name'},     // "mapping" property not needed if it's the same as "name"
        -       {name: 'occupation'},                // This field will use "occupation" as the mapping.
        -   ]);
        -   var myReader = new Ext.data.JsonReader({
        -       totalProperty: "results",    // The property which contains the number of returned records (optional)
        -       root: "rows",                // The property which contains an Array of record objects
        -       id: "id"                     // The property within the record object that provides an ID for the record (optional)
        -   }, RecordDef);
        -  
        - *

        - * This would consume a JSON file like this: - *

        
        -   { 'results': 2, 'rows': [
        -     { 'id': 1, 'name': 'Bill', occupation: 'Gardener' },
        -     { 'id': 2, 'name': 'Ben', occupation: 'Horticulturalist' } ]
        -   }
        -  
        - * @cfg {String} totalProperty Name of the property from which to retrieve the total number of records - * in the dataset. This is only needed if the whole dataset is not passed in one go, but is being - * paged from the remote server. - * @cfg {String} successProperty Name of the property from which to retrieve the success attribute used by forms. - * @cfg {String} root name of the property which contains the Array of row objects. - * @cfg {String} id Name of the property within a row object that contains a record identifier value. - * @constructor - * Create a new JsonReader - * @param {Object} meta Metadata configuration options - * @param {Object[]/Ext.data.Record constructor} recordType The record definition of the data record to produce. - */ -Ext.data.JsonReader = function(meta, recordType){ - Ext.data.JsonReader.superclass.constructor.call(this, meta, recordType); -}; -Ext.extend(Ext.data.JsonReader, Ext.data.DataReader, { - /** - * This method is only used by a DataProxy which has retrieved data from a remote server. - * @param {Object} response The XHR object which contains the JSON data in its responseText. - * @return {Object} data A data block which is used by an Ext.data.Store object as - * a cache of Ext.data.Records. - */ - read : function(response){ - var json = response.responseText; - var o = eval("("+json+")"); - if(!o) { - throw {message: "JsonReader.read: Json object not found"}; - } - return this.readRecords(o); - }, - - /** - * @ignore - */ - simpleAccess: function(obj, subsc) { - return obj[subsc]; - }, - - /** - * @ignore - */ - getJsonAccessor: function(){ - var re = /[\[\.]/; - return function(expr) { - try { - return(re.test(expr)) - ? new Function("obj", "return obj." + expr) - : function(obj){ - return obj[expr]; - }; - } catch(e){} - return Ext.emptyFn; - }; - }(), - - /** - * Create a data block containing Ext.data.Records from an XML document. - * @param {Object} o An object which contains an Array of row objects in the property specified - * in the config as 'root, and optionally a property, specified in the config as 'totalProperty' - * which contains the total size of the dataset. - * @return {Object} data A data block which is used by an Ext.data.Store object as - * a cache of Ext.data.Records. - */ - readRecords : function(o){ - /** - * After any data loads, the raw JSON data is available for further custom processing. - * @type Object - */ - this.jsonData = o; - var s = this.meta, Record = this.recordType, - f = Record.prototype.fields, fi = f.items, fl = f.length; - -// Generate extraction functions for the totalProperty, the root, the id, and for each field - if (!this.ef) { - if(s.totalProperty) { - this.getTotal = this.getJsonAccessor(s.totalProperty); - } - if(s.successProperty) { - this.getSuccess = this.getJsonAccessor(s.successProperty); - } - this.getRoot = s.root ? this.getJsonAccessor(s.root) : function(p){return p;}; - if (s.id) { - var g = this.getJsonAccessor(s.id); - this.getId = function(rec) { - var r = g(rec); - return (r === undefined || r === "") ? null : r; - }; - } else { - this.getId = function(){return null;}; - } - this.ef = []; - for(var i = 0; i < fl; i++){ - f = fi[i]; - var map = (f.mapping !== undefined && f.mapping !== null) ? f.mapping : f.name; - this.ef[i] = this.getJsonAccessor(map); - } - } - - var root = this.getRoot(o), c = root.length, totalRecords = c, success = true; - if(s.totalProperty){ - var v = parseInt(this.getTotal(o), 10); - if(!isNaN(v)){ - totalRecords = v; - } - } - if(s.successProperty){ - var v = this.getSuccess(o); - if(v === false || v === 'false'){ - success = false; - } - } - var records = []; - for(var i = 0; i < c; i++){ - var n = root[i]; - var values = {}; - var id = this.getId(n); - for(var j = 0; j < fl; j++){ - f = fi[j]; - var v = this.ef[j](n); - values[f.name] = f.convert((v !== undefined) ? v : f.defaultValue); - } - var record = new Record(values, id); - record.json = n; - records[i] = record; - } - return { - success : success, - records : records, - totalRecords : totalRecords - }; - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/data/MemoryProxy.js b/www/extras/extjs/source/data/MemoryProxy.js deleted file mode 100644 index a47fe351c..000000000 --- a/www/extras/extjs/source/data/MemoryProxy.js +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.data.MemoryProxy - * An implementation of Ext.data.DataProxy that simply passes the data specified in its constructor - * to the Reader when its load method is called. - * @constructor - * @param {Object} data The data object which the Reader uses to construct a block of Ext.data.Records. - */ -Ext.data.MemoryProxy = function(data){ - Ext.data.MemoryProxy.superclass.constructor.call(this); - this.data = data; -}; - -Ext.extend(Ext.data.MemoryProxy, Ext.data.DataProxy, { - /** - * Load data from the requested source (in this case an in-memory - * data object passed to the constructor), read the data object into - * a block of Ext.data.Records using the passed Ext.data.DataReader implementation, and - * process that block using the passed callback. - * @param {Object} params This parameter is not used by the MemoryProxy class. - * @param {Ext.data.DataReader) reader The Reader object which converts the data - * object into a block of Ext.data.Records. - * @param {Function} callback The function into which to pass the block of Ext.data.records. - * The function must be passed
          - *
        • The Record block object
        • - *
        • The "arg" argument from the load function
        • - *
        • A boolean success indicator
        • - *
        - * @param {Object} scope The scope in which to call the callback - * @param {Object} arg An optional argument which is passed to the callback as its second parameter. - */ - load : function(params, reader, callback, scope, arg){ - params = params || {}; - var result; - try { - result = reader.readRecords(this.data); - }catch(e){ - this.fireEvent("loadexception", this, arg, null, e); - callback.call(scope, null, arg, false); - return; - } - callback.call(scope, result, arg, true); - }, - - // private - update : function(params, records){ - - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/data/Record.js b/www/extras/extjs/source/data/Record.js deleted file mode 100644 index a7c6078da..000000000 --- a/www/extras/extjs/source/data/Record.js +++ /dev/null @@ -1,216 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** -* @class Ext.data.Record - * Instances of this class encapsulate both record definition information, and record - * value information for use in {@link Ext.data.Store} objects, or any code which needs - * to access Records cached in an {@link Ext.data.Store} object. - *

        - * Constructors for this class are generated by passing an Array of field definition objects to {@link #create} - * and instances are usually only created by {@link Ext.data.Reader} objects when processing unformatted data - * objects. - *

        - * Record objects generated by this constructor inherit all the methods of Ext.data.Record listed below. - * @constructor - * This constructor should not be used to create Record objects. Instead, use the constructor generated by - * {@link #create}. The parameters are the same. - * @param data {Array} An associative Array of data values keyed by the field name. - * @param id (Optional) The id of the record. This id should be unique, and is used by the - * @link Ext.data.Store} object which owns the Record to index its collection of Records. If - * not specified an integer id is generated. - */ -Ext.data.Record = function(data, id){ - this.id = (id || id === 0) ? id : ++Ext.data.Record.AUTO_ID; - this.data = data; -}; - -/** - * Generate a constructor for a specific record layout. - * @param {Array} o An Array of field definition objects which specify field names, and optionally, - * data types, and a mapping for an {@link Ext.data.Reader} to extract the field's value from a data object. - * Each field definition object may contain the following properties:

          - *
        • name {String} The name by which the field is referenced within the Record. This is referenced by, - * for example the dataIndex property in column definition objects passed to {@link Ext.grid.ColumnModel}
        • - *
        • mapping {String} (Optional) A path specification for use by the {@link Ext.data.Reader} implementation - * that is creating the Record to access the data value from the data object. If an {@link Ext.data.JsonReader} - * is being used, then this is a string containing the javascript expression to reference the data relative to - * the record item's root. If an {@link Ext.data.XmlReader} is being used, this is an {@link Ext.DomQuery} path - * to the data item relative to the record element. If the mapping expression is the same as the field name, - * this may be omitted.
        • - *
        • type {String} (Optional) The data type for conversion to displayable value. Possible values are - *
          • auto (Default, implies no conversion)
          • - *
          • string
          • - *
          • int
          • - *
          • float
          • - *
          • boolean
          • - *
          • date
        • - *
        • sortType {Mixed} (Optional) A member of {@link Ext.data.SortTypes}.
        • - *
        • sortDir {String} (Optional) Initial direction to sort. "ASC" or "DESC"
        • - *
        • convert {Function} (Optional) A function which accepts a data value and returns it formatted for display.
        • - *
        • dateFormat {String} (Optional) A format String for the Date.parseDate function.
        • - *
        - *
        usage:
        
        -    var TopicRecord = Ext.data.Record.create(
        -        {name: 'title', mapping: 'topic_title'},
        -        {name: 'author', mapping: 'username'},
        -        {name: 'totalPosts', mapping: 'topic_replies', type: 'int'},
        -        {name: 'lastPost', mapping: 'post_time', type: 'date'},
        -        {name: 'lastPoster', mapping: 'user2'},
        -        {name: 'excerpt', mapping: 'post_text'}
        -    );
        -    
        -    var myNewRecord = new TopicRecord({
        -        title: 'Do my job please',
        -        author: 'noobie',
        -        totalPosts: 1,
        -        lastPost: new Date(),
        -        lastPoster: 'Animal',
        -        excerpt: 'No way dude!'
        -    });
        -    myStore.add(myNewRecord);
        -
        - */ -Ext.data.Record.create = function(o){ - var f = function(){ - f.superclass.constructor.apply(this, arguments); - }; - Ext.extend(f, Ext.data.Record); - var p = f.prototype; - p.fields = new Ext.util.MixedCollection(false, function(field){ - return field.name; - }); - for(var i = 0, len = o.length; i < len; i++){ - p.fields.add(new Ext.data.Field(o[i])); - } - f.getField = function(name){ - return p.fields.get(name); - }; - return f; -}; - -Ext.data.Record.AUTO_ID = 1000; -Ext.data.Record.EDIT = 'edit'; -Ext.data.Record.REJECT = 'reject'; -Ext.data.Record.COMMIT = 'commit'; - -Ext.data.Record.prototype = { - /** - * Readonly flag - true if this record has been modified. - * @type Boolean - */ - dirty : false, - editing : false, - error: null, - modified: null, - - // private - join : function(store){ - this.store = store; - }, - - /** - * Set the named field to the specified value. - * @param name {String} The name of the field to set. - * @param value {Object} The value to set the field to. - */ - set : function(name, value){ - if(this.data[name] == value){ - return; - } - this.dirty = true; - if(!this.modified){ - this.modified = {}; - } - if(typeof this.modified[name] == 'undefined'){ - this.modified[name] = this.data[name]; - } - this.data[name] = value; - if(!this.editing){ - this.store.afterEdit(this); - } - }, - - /** - * Get the value of the named field. - * @param name {String} The name of the field to get the value of. - * @return {Object} The value of the field. - */ - get : function(name){ - return this.data[name]; - }, - - // private - beginEdit : function(){ - this.editing = true; - this.modified = {}; - }, - - // private - cancelEdit : function(){ - this.editing = false; - delete this.modified; - }, - - // private - endEdit : function(){ - this.editing = false; - if(this.dirty && this.store){ - this.store.afterEdit(this); - } - }, - - /** - * Usually called by the {@link Ext.data.Store} which owns the Record. - * Rejects all changes made to the Record since either creation, or the last commit operation. - * Modified fields are reverted to their original values. - *

        - * Developers should subscribe to the {@link Ext.data.Store#update} event to have their code notified - * of reject operations. - */ - reject : function(){ - var m = this.modified; - for(var n in m){ - if(typeof m[n] != "function"){ - this.data[n] = m[n]; - } - } - this.dirty = false; - delete this.modified; - this.editing = false; - if(this.store){ - this.store.afterReject(this); - } - }, - - /** - * Usually called by the {@link Ext.data.Store} which owns the Record. - * Commits all changes made to the Record since either creation, or the last commit operation. - *

        - * Developers should subscribe to the {@link Ext.data.Store#update} event to have their code notified - * of commit operations. - */ - commit : function(){ - this.dirty = false; - delete this.modified; - this.editing = false; - if(this.store){ - this.store.afterCommit(this); - } - }, - - // private - hasError : function(){ - return this.error != null; - }, - - // private - clearError : function(){ - this.error = null; - } -}; \ No newline at end of file diff --git a/www/extras/extjs/source/data/ScriptTagProxy.js b/www/extras/extjs/source/data/ScriptTagProxy.js deleted file mode 100644 index a8da9a5eb..000000000 --- a/www/extras/extjs/source/data/ScriptTagProxy.js +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.data.ScriptTagProxy - * An implementation of Ext.data.DataProxy that reads a data object from a URL which may be in a domain - * other than the originating domain of the running page. - *

        - * Note that this class must be used to retrieve data from a domain other than the domain - * from which the running page was served. - * - * @cfg {String} url The url from which to request the data object. - * @constructor - * @param {Object} conn A configuration object. - */ -Ext.data.ScriptTagProxy = function(config){ - Ext.data.ScriptTagProxy.superclass.constructor.call(this); - Ext.apply(this, config); - this.head = document.getElementsByTagName("head")[0]; -}; - -Ext.data.ScriptTagProxy.TRANS_ID = 1000; - -Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { - /** - * @cfg {Number} timeout (Optional) The number of milliseconds to wait for a response. Defaults to 30 seconds. - */ - timeout : 30000, - /** - * @cfg {String} callbackParam (Optional) The name of the parameter to pass to the server which tells - * the server the name of the callback function set up by the load call to process the returned data object. - * Defaults to "callback".

        The server-side processing must read this parameter value, and generate - * javascript output which calls this named function passing the data object as its only parameter. - */ - callbackParam : "callback", - /** - * @cfg nocache {Boolean} (Optional) Defaults to true. Disable cacheing by adding a unique parameter - * name to the request. - */ - nocache : true, - - /** - * Load data from the configured URL, read the data object into - * a block of Ext.data.Records using the passed Ext.data.DataReader implementation, and - * process that block using the passed callback. - * @param {Object} params An object containing properties which are to be used as HTTP parameters - * for the request to the remote server. - * @param {Ext.data.DataReader} reader The Reader object which converts the data - * object into a block of Ext.data.Records. - * @param {Function} callback The function into which to pass the block of Ext.data.Records. - * The function must be passed

          - *
        • The Record block object
        • - *
        • The "arg" argument from the load function
        • - *
        • A boolean success indicator
        • - *
        - * @param {Object} scope The scope in which to call the callback - * @param {Object} arg An optional argument which is passed to the callback as its second parameter. - */ - load : function(params, reader, callback, scope, arg){ - if(this.fireEvent("beforeload", this, params) !== false){ - - var p = Ext.urlEncode(Ext.apply(params, this.extraParams)); - - var url = this.url; - url += (url.indexOf("?") != -1 ? "&" : "?") + p; - if(this.nocache){ - url += "&_dc=" + (new Date().getTime()); - } - var transId = ++Ext.data.ScriptTagProxy.TRANS_ID; - var trans = { - id : transId, - cb : "stcCallback"+transId, - scriptId : "stcScript"+transId, - params : params, - arg : arg, - url : url, - callback : callback, - scope : scope, - reader : reader - }; - var conn = this; - - window[trans.cb] = function(o){ - conn.handleResponse(o, trans); - }; - - url += String.format("&{0}={1}", this.callbackParam, trans.cb); - - if(this.autoAbort !== false){ - this.abort(); - } - - trans.timeoutId = this.handleFailure.defer(this.timeout, this, [trans]); - - var script = document.createElement("script"); - script.setAttribute("src", url); - script.setAttribute("type", "text/javascript"); - script.setAttribute("id", trans.scriptId); - this.head.appendChild(script); - - this.trans = trans; - }else{ - callback.call(scope||this, null, arg, false); - } - }, - - // private - isLoading : function(){ - return this.trans ? true : false; - }, - - /** - * Abort the current server request. - */ - abort : function(){ - if(this.isLoading()){ - this.destroyTrans(this.trans); - } - }, - - // private - destroyTrans : function(trans, isLoaded){ - this.head.removeChild(document.getElementById(trans.scriptId)); - clearTimeout(trans.timeoutId); - if(isLoaded){ - window[trans.cb] = undefined; - try{ - delete window[trans.cb]; - }catch(e){} - }else{ - // if hasn't been loaded, wait for load to remove it to prevent script error - window[trans.cb] = function(){ - window[trans.cb] = undefined; - try{ - delete window[trans.cb]; - }catch(e){} - }; - } - }, - - // private - handleResponse : function(o, trans){ - this.trans = false; - this.destroyTrans(trans, true); - var result; - try { - result = trans.reader.readRecords(o); - }catch(e){ - this.fireEvent("loadexception", this, o, trans.arg, e); - trans.callback.call(trans.scope||window, null, trans.arg, false); - return; - } - this.fireEvent("load", this, o, trans.arg); - trans.callback.call(trans.scope||window, result, trans.arg, true); - }, - - // private - handleFailure : function(trans){ - this.trans = false; - this.destroyTrans(trans, false); - this.fireEvent("loadexception", this, null, trans.arg); - trans.callback.call(trans.scope||window, null, trans.arg, false); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/data/SimpleStore.js b/www/extras/extjs/source/data/SimpleStore.js deleted file mode 100644 index 19170d667..000000000 --- a/www/extras/extjs/source/data/SimpleStore.js +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.data.SimpleStore - * @extends Ext.data.Store - * Smaller help class to make creating Stores from Array data easier. - * @cfg {Number} id The index in the array that be used for record ids. Leave blank to auto generate ids. - * @cfg {Array} fields An standard field array consisting of string name or object literal field definitions - * @cfg {Array} data The multi-dimensional array of data - * @constructor - * @param {Object} config - */ -Ext.data.SimpleStore = function(config){ - Ext.data.SimpleStore.superclass.constructor.call(this, { - reader: new Ext.data.ArrayReader({ - id: config.id - }, - Ext.data.Record.create(config.fields) - ), - proxy : new Ext.data.MemoryProxy(config.data) - }); - this.load(); -}; -Ext.extend(Ext.data.SimpleStore, Ext.data.Store); \ No newline at end of file diff --git a/www/extras/extjs/source/data/SortTypes.js b/www/extras/extjs/source/data/SortTypes.js deleted file mode 100644 index 8dd1a1fe2..000000000 --- a/www/extras/extjs/source/data/SortTypes.js +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - - -/** - * @class Ext.data.SortTypes - * @singleton - * Defines the default sorting (casting?) comparison functions used when sorting data. - */ -Ext.data.SortTypes = { - /** - * Default sort that does nothing - * @param {Mixed} s The value being converted - * @return {Mixed} The comparison value - */ - none : function(s){ - return s; - }, - - /** - * The regular expression used to strip tags - * @type {RegExp} - * @property - */ - stripTagsRE : /<\/?[^>]+>/gi, - - /** - * Strips all HTML tags to sort on text only - * @param {Mixed} s The value being converted - * @return {String} The comparison value - */ - asText : function(s){ - return String(s).replace(this.stripTagsRE, ""); - }, - - /** - * Strips all HTML tags to sort on text only - Case insensitive - * @param {Mixed} s The value being converted - * @return {String} The comparison value - */ - asUCText : function(s){ - return String(s).toUpperCase().replace(this.stripTagsRE, ""); - }, - - /** - * Case insensitive string - * @param {Mixed} s The value being converted - * @return {String} The comparison value - */ - asUCString : function(s) { - return String(s).toUpperCase(); - }, - - /** - * Date sorting - * @param {Mixed} s The value being converted - * @return {Number} The comparison value - */ - asDate : function(s) { - if(!s){ - return 0; - } - if(s instanceof Date){ - return s.getTime(); - } - return Date.parse(String(s)); - }, - - /** - * Float sorting - * @param {Mixed} s The value being converted - * @return {Float} The comparison value - */ - asFloat : function(s) { - var val = parseFloat(String(s).replace(/,/g, "")); - if(isNaN(val)) val = 0; - return val; - }, - - /** - * Integer sorting - * @param {Mixed} s The value being converted - * @return {Number} The comparison value - */ - asInt : function(s) { - var val = parseInt(String(s).replace(/,/g, "")); - if(isNaN(val)) val = 0; - return val; - } -}; \ No newline at end of file diff --git a/www/extras/extjs/source/data/Store.js b/www/extras/extjs/source/data/Store.js deleted file mode 100644 index ffcb4a7b3..000000000 --- a/www/extras/extjs/source/data/Store.js +++ /dev/null @@ -1,526 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.data.Store - * @extends Ext.util.Observable - * The Store class encapsulates a client side cache of {@link Ext.data.Record} objects which provide input data - * for widgets such as the Ext.grid.Grid, or the Ext.form.ComboBox. - * A Store object uses an implementation of {@link Ext.data.DataProxy} to access a data object unless you call loadData() directly and pass in your data. The Store object - * has no knowledge of the format of the data returned by the Proxy. - * The Store object uses its configured implementation of Ext.data.DataReader to create Ext.data.Record - * instances from the data object. These records are cached and made available through accessor functions. - * @constructor - * Creates a new Store - * @param {Object} config A config object containing the objects needed for the Store to access data, - * and read the data into Records. - */ -Ext.data.Store = function(config){ - this.data = new Ext.util.MixedCollection(false); - this.data.getKey = function(o){ - return o.id; - }; - this.baseParams = {}; - this.paramNames = { - "start" : "start", - "limit" : "limit", - "sort" : "sort", - "dir" : "dir" - }; - Ext.apply(this, config); - - if(this.reader && !this.recordType){ // reader passed - this.recordType = this.reader.recordType; - } - - this.fields = this.recordType.prototype.fields; - - this.modified = []; - - this.addEvents({ - /** - * @event datachanged - * Fires when the data cache has changed, and a widget which is using this Store - * as a Record cache should refresh its view. - * @param {Store} this - */ - datachanged : true, - /** - * @event add - * Fires when Records have been added to the Store - * @param {Store} this - * @param {Ext.data.Record[]} records The array of Records added - * @param {Number} index The index at which the record(s) were added - */ - add : true, - /** - * @event remove - * Fires when Records have been removed from the Store - * @param {Store} this - * @param {Ext.data.Record} record The Record that was removed - * @param {Number} index The index at which the record was removed - */ - remove : true, - /** - * @event update - * Fires when Records have been updated - * @param {Store} this - * @param {Ext.data.Record} record The Record that was updated - * @param {String} operation The update operation being performed. Value may be one of: - *
        
        - Ext.data.Record.EDIT
        - Ext.data.Record.REJECT
        - Ext.data.Record.COMMIT
        -         * 
        - */ - update : true, - /** - * @event clear - * Fires when the data cache has been cleared. - * @param {Store} this - */ - clear : true, - /** - * @event beforeload - * Fires before a request is made for a new data object. If the beforeload handler returns false - * the load action will be canceled. - * @param {Store} this - * @param {Object} options The loading options that were specified (see {@link #load} for details) - */ - beforeload : true, - /** - * @event load - * Fires after a new set of Records has been loaded. - * @param {Store} this - * @param {Ext.data.Record[]} records The Records that were loaded - * @param {Object} options The loading options that were specified (see {@link #load} for details) - */ - load : true, - /** - * @event loadexception - * Fires if an exception occurs in the Proxy during loading. - * Called with the signature of the Proxy's "loadexception" event. - */ - loadexception : true - }); - - if(this.proxy){ - this.relayEvents(this.proxy, ["loadexception"]); - } - this.sortToggle = {}; - - Ext.data.Store.superclass.constructor.call(this); -}; -Ext.extend(Ext.data.Store, Ext.util.Observable, { - /** - * @cfg {Ext.data.DataProxy} proxy The Proxy object which provides access to a data object. - */ - /** - * @cfg {Ext.data.Reader} reader The Reader object which processes the data object and returns - * an Array of Ext.data.record objects which are cached keyed by their id property. - */ - /** - * @cfg {Object} baseParams An object containing properties which are to be sent as parameters - * on any HTTP request - */ - /** - * @cfg {Object} sortInfo A config object in the format: {field: "fieldName", direction: "ASC|DESC"} - */ - /** - * @cfg {boolean} remoteSort True if sorting is to be handled by requesting the Proxy to provide a refreshed - * version of the data object in sorted order, as opposed to sorting the Record cache in place (defaults to false). - */ - remoteSort : false, - - // private - lastOptions : null, - - /** - * Add Records to the Store and fires the add event. - * @param {Ext.data.Record[]} records An Array of Ext.data.Record objects to add to the cache. - */ - add : function(records){ - records = [].concat(records); - for(var i = 0, len = records.length; i < len; i++){ - records[i].join(this); - } - var index = this.data.length; - this.data.addAll(records); - this.fireEvent("add", this, records, index); - }, - - /** - * Remove a Record from the Store and fires the remove event. - * @param {Ext.data.Record} record Th Ext.data.Record object to remove from the cache. - */ - remove : function(record){ - var index = this.data.indexOf(record); - this.data.removeAt(index); - this.fireEvent("remove", this, record, index); - }, - - /** - * Remove all Records from the Store and fires the clear event. - */ - removeAll : function(){ - this.data.clear(); - this.fireEvent("clear", this); - }, - - /** - * Inserts Records to the Store at the given index and fires the add event. - * @param {Number} index The start index at which to insert the passed Records. - * @param {Ext.data.Record[]} records An Array of Ext.data.Record objects to add to the cache. - */ - insert : function(index, records){ - records = [].concat(records); - for(var i = 0, len = records.length; i < len; i++){ - this.data.insert(index, records[i]); - records[i].join(this); - } - this.fireEvent("add", this, records, index); - }, - - /** - * Get the index within the cache of the passed Record. - * @param {Ext.data.Record[]} records An Array of Ext.data.Record objects to add to the cache. - * @return {Number} The index of the passed Record. Returns -1 if not found. - */ - indexOf : function(record){ - return this.data.indexOf(record); - }, - - /** - * Get the index within the cache of the Record with the passed id. - * @param {String} id The id of the Record to find. - * @return {Number} The index of the Record. Returns -1 if not found. - */ - indexOfId : function(id){ - return this.data.indexOfKey(id); - }, - - /** - * Get the Record with the specified id. - * @param {String} id The id of the Record to find. - * @return {Ext.data.Record} The Record with the passed id. Returns undefined if not found. - */ - getById : function(id){ - return this.data.key(id); - }, - - /** - * Get the Record at the specified index. - * @param {String} index The index of the Record to find. - * @return {Ext.data.Record} The Record at the passed index. Returns undefined if not found. - */ - getAt : function(index){ - return this.data.itemAt(index); - }, - - /** - * Returns a range of Records between specified indices. - * @param {Number} startIndex (optional) The starting index (defaults to 0) - * @param {Number} endIndex (optional) The ending index (defaults to the last Record in the Store) - * @return {Ext.data.Record[]} An array of Records - */ - getRange : function(start, end){ - return this.data.getRange(start, end); - }, - - // private - storeOptions : function(o){ - o = Ext.apply({}, o); - delete o.callback; - delete o.scope; - this.lastOptions = o; - }, - - /** - * Loads the Record cache from the configured Proxy using the configured Reader. - *

        - * If using remote paging, then the first load call must specify the start - * and limit properties in the options.params property to establish the initial - * position within the dataset, and the number of Records to cache on each read from the Proxy. - *

        - * It is important to note that for remote data sources, loading is asynchronous, - * and this call will return before the new data has been loaded. Perform any post-processing - * in a callback function, or in a "load" event handler. - *

        - * @param {Object} options An object containing properties which control loading options: - *

        
        - params {Object} An object containing properties to pass as HTTP parameters to a remote data source.
        - callback {Function} A function to be called after the Records have been loaded. The callback is
        - passed the following arguments:
        -   r : Ext.data.Record[]
        -   options: Options object from the load call
        -   success: Boolean success indicator
        - scope {Object} Scope with which to call the callback (defaults to the Store object)
        - append {Boolean} indicator to append loaded records rather than replace the current cache.
        - * 
        - */ - load : function(options){ - options = options || {}; - if(this.fireEvent("beforeload", this, options) !== false){ - this.storeOptions(options); - var p = Ext.apply(options.params || {}, this.baseParams); - if(this.sortInfo && this.remoteSort){ - var pn = this.paramNames; - p[pn["sort"]] = this.sortInfo.field; - p[pn["dir"]] = this.sortInfo.direction; - } - this.proxy.load(p, this.reader, this.loadRecords, this, options); - } - }, - - /** - * Reloads the Record cache from the configured Proxy using the configured Reader and - * the options from the last load operation performed. - * @param {Object} options (optional) An object containing properties which may override the options - * used in the last load operation. See {@link #load} for details (defaults to null, in which case - * the most recently used options are reused). - */ - reload : function(options){ - this.load(Ext.applyIf(options||{}, this.lastOptions)); - }, - - // private - // Called as a callback by the Reader during a load operation. - loadRecords : function(o, options, success){ - if(!o || success === false){ - if(success !== false){ - this.fireEvent("load", this, [], options); - } - if(options.callback){ - options.callback.call(options.scope || this, [], options, false); - } - return; - } - var r = o.records, t = o.totalRecords || r.length; - for(var i = 0, len = r.length; i < len; i++){ - r[i].join(this); - } - if(!options || options.add !== true){ - this.data.clear(); - this.data.addAll(r); - this.totalLength = t; - this.applySort(); - this.fireEvent("datachanged", this); - }else{ - this.totalLength = Math.max(t, this.data.length+r.length); - this.data.addAll(r); - } - this.fireEvent("load", this, r, options); - if(options.callback){ - options.callback.call(options.scope || this, r, options, true); - } - }, - - /** - * Loads data from a passed data block. A Reader which understands the format of the data - * must have been configured in the constructor. - * @param {Object} data The data block from which to read the Records. The format of the data expected - * is dependent on the type of Reader that is configured and should correspond to that Reader's readRecords parameter. - * @param {Boolean} append (Optional) True to append the new Records rather than replace the existing cache. - */ - loadData : function(o, append){ - var r = this.reader.readRecords(o); - this.loadRecords(r, {add: append}, true); - }, - - /** - * Gets the number of cached records. - *

        - * If using paging, this may not be the total size of the dataset. If the data object - * used by the Reader contains the dataset size, then the getTotalCount() function returns - * the data set size - */ - getCount : function(){ - return this.data.length || 0; - }, - - /** - * Gets the total number of records in the dataset. - *

        - * If using paging, for this to be accurate, the data object used by the Reader must contain - * the dataset size - */ - getTotalCount : function(){ - return this.totalLength || 0; - }, - - /** - * Returns the sort state of the Store as an object with two properties: - *

        
        - field {String} The name of the field by which the Records are sorted
        - direction {String} The sort order, "ASC" or "DESC"
        -     * 
        - */ - getSortState : function(){ - return this.sortInfo; - }, - - // private - applySort : function(){ - if(this.sortInfo && !this.remoteSort){ - var s = this.sortInfo, f = s.field; - var st = this.fields.get(f).sortType; - var fn = function(r1, r2){ - var v1 = st(r1.data[f]), v2 = st(r2.data[f]); - return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0); - }; - this.data.sort(s.direction, fn); - if(this.snapshot && this.snapshot != this.data){ - this.snapshot.sort(s.direction, fn); - } - } - }, - - /** - * Sets the default sort column and order to be used by the next load operation. - * @param {String} fieldName The name of the field to sort by. - * @param {String} dir (optional) The sort order, "ASC" or "DESC" (defaults to "ASC") - */ - setDefaultSort : function(field, dir){ - this.sortInfo = {field: field, direction: dir ? dir.toUpperCase() : "ASC"}; - }, - - /** - * Sort the Records. - * If remote sorting is used, the sort is performed on the server, and the cache is - * reloaded. If local sorting is used, the cache is sorted internally. - * @param {String} fieldName The name of the field to sort by. - * @param {String} dir (optional) The sort order, "ASC" or "DESC" (defaults to "ASC") - */ - sort : function(fieldName, dir){ - var f = this.fields.get(fieldName); - if(!dir){ - if(this.sortInfo && this.sortInfo.field == f.name){ // toggle sort dir - dir = (this.sortToggle[f.name] || "ASC").toggle("ASC", "DESC"); - }else{ - dir = f.sortDir; - } - } - this.sortToggle[f.name] = dir; - this.sortInfo = {field: f.name, direction: dir}; - if(!this.remoteSort){ - this.applySort(); - this.fireEvent("datachanged", this); - }else{ - this.load(this.lastOptions); - } - }, - - /** - * Calls the specified function for each of the Records in the cache. - * @param {Function} fn The function to call. The Record is passed as the first parameter. - * Returning false aborts and exits the iteration. - * @param {Object} scope (optional) The scope in which to call the function (defaults to the Record). - */ - each : function(fn, scope){ - this.data.each(fn, scope); - }, - - /** - * Get all records modified since the last load, or since the last commit. - * @return {Ext.data.Record[]} An array of Records containing outstanding modifications. - */ - getModifiedRecords : function(){ - return this.modified; - }, - - /** - * Filter the records by a specified property. - * @param {String} field A field on your records - * @param {String/RegExp} value Either a string that the field - * should start with or a RegExp to test against the field - * @return {Boolean} True if the filter matched at least one record, else false - */ - filter : function(property, value){ - if(!value.exec){ // not a regex - value = String(value); - if(value.length == 0){ - return this.clearFilter(); - } - value = new RegExp("^" + Ext.escapeRe(value), "i"); - } - this.filterBy(function(r){ - return value.test(r.data[property]); - }); - }, - - /** - * Filter by a function. The specified function will be called with each - * record in this data source. If the function returns true the record is included, - * otherwise it is filtered. - * @param {Function} fn The function to be called, it will receive 2 args (record, id) - * @param {Object} scope (optional) The scope of the function (defaults to this) - */ - filterBy : function(fn, scope){ - var data = this.snapshot || this.data; - this.snapshot = data; - this.data = data.filterBy(fn, scope); - this.fireEvent("datachanged", this); - }, - - /** - * Revert to a view of the Record cache with no filtering applied. - * @param {Boolean} suppressEvent If true the filter is cleared silently without notifying listeners - */ - clearFilter : function(suppressEvent){ - if(this.snapshot && this.snapshot != this.data){ - this.data = this.snapshot; - delete this.snapshot; - if(suppressEvent !== true){ - this.fireEvent("datachanged", this); - } - } - }, - - // private - afterEdit : function(record){ - if(this.modified.indexOf(record) == -1){ - this.modified.push(record); - } - this.fireEvent("update", this, record, Ext.data.Record.EDIT); - }, - - // private - afterReject : function(record){ - this.modified.remove(record); - this.fireEvent("update", this, record, Ext.data.Record.REJECT); - }, - - // private - afterCommit : function(record){ - this.modified.remove(record); - this.fireEvent("update", this, record, Ext.data.Record.COMMIT); - }, - - /** - * Commit all Records with outstanding changes. To handle updates for changes, subscribe to the - * Store's "update" event, and perform updating when the third parameter is Ext.data.Record.COMMIT. - */ - commitChanges : function(){ - var m = this.modified.slice(0); - this.modified = []; - for(var i = 0, len = m.length; i < len; i++){ - m[i].commit(); - } - }, - - /** - * Cancel outstanding changes on all changed records. - */ - rejectChanges : function(){ - var m = this.modified.slice(0); - this.modified = []; - for(var i = 0, len = m.length; i < len; i++){ - m[i].reject(); - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/data/Tree.js b/www/extras/extjs/source/data/Tree.js deleted file mode 100644 index 38cd88a78..000000000 --- a/www/extras/extjs/source/data/Tree.js +++ /dev/null @@ -1,729 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.data.Tree - * @extends Ext.util.Observable - * Represents a tree data structure and bubbles all the events for its nodes. The nodes - * in the tree have most standard DOM functionality. - * @constructor - * @param {Node} root (optional) The root node - */ -Ext.data.Tree = function(root){ - this.nodeHash = {}; - /** - * The root node for this tree - * @type Node - */ - this.root = null; - if(root){ - this.setRootNode(root); - } - this.addEvents({ - /** - * @event append - * Fires when a new child node is appended to a node in this tree. - * @param {Tree} tree The owner tree - * @param {Node} parent The parent node - * @param {Node} node The newly appended node - * @param {Number} index The index of the newly appended node - */ - "append" : true, - /** - * @event remove - * Fires when a child node is removed from a node in this tree. - * @param {Tree} tree The owner tree - * @param {Node} parent The parent node - * @param {Node} node The child node removed - */ - "remove" : true, - /** - * @event move - * Fires when a node is moved to a new location in the tree - * @param {Tree} tree The owner tree - * @param {Node} node The node moved - * @param {Node} oldParent The old parent of this node - * @param {Node} newParent The new parent of this node - * @param {Number} index The index it was moved to - */ - "move" : true, - /** - * @event insert - * Fires when a new child node is inserted in a node in this tree. - * @param {Tree} tree The owner tree - * @param {Node} parent The parent node - * @param {Node} node The child node inserted - * @param {Node} refNode The child node the node was inserted before - */ - "insert" : true, - /** - * @event beforeappend - * Fires before a new child is appended to a node in this tree, return false to cancel the append. - * @param {Tree} tree The owner tree - * @param {Node} parent The parent node - * @param {Node} node The child node to be appended - */ - "beforeappend" : true, - /** - * @event beforeremove - * Fires before a child is removed from a node in this tree, return false to cancel the remove. - * @param {Tree} tree The owner tree - * @param {Node} parent The parent node - * @param {Node} node The child node to be removed - */ - "beforeremove" : true, - /** - * @event beforemove - * Fires before a node is moved to a new location in the tree. Return false to cancel the move. - * @param {Tree} tree The owner tree - * @param {Node} node The node being moved - * @param {Node} oldParent The parent of the node - * @param {Node} newParent The new parent the node is moving to - * @param {Number} index The index it is being moved to - */ - "beforemove" : true, - /** - * @event beforeinsert - * Fires before a new child is inserted in a node in this tree, return false to cancel the insert. - * @param {Tree} tree The owner tree - * @param {Node} parent The parent node - * @param {Node} node The child node to be inserted - * @param {Node} refNode The child node the node is being inserted before - */ - "beforeinsert" : true - }); - - Ext.data.Tree.superclass.constructor.call(this); -}; - -Ext.extend(Ext.data.Tree, Ext.util.Observable, { - pathSeparator: "/", - - /** - * Returns this root node for this tree - * @return {Node} - */ - getRootNode : function(){ - return this.root; - }, - - /** - * Sets the root node for this tree - * @param {Node} node - * @return {Node} - */ - setRootNode : function(node){ - this.root = node; - node.ownerTree = this; - node.isRoot = true; - this.registerNode(node); - return node; - }, - - /** - * Gets a node in this tree by its id - * @param {String} id - * @return {Node} - */ - getNodeById : function(id){ - return this.nodeHash[id]; - }, - - registerNode : function(node){ - this.nodeHash[node.id] = node; - }, - - unregisterNode : function(node){ - delete this.nodeHash[node.id]; - }, - - toString : function(){ - return "[Tree"+(this.id?" "+this.id:"")+"]"; - } -}); - -/** - * @class Ext.data.Node - * @extends Ext.util.Observable - * @cfg {Boolean} leaf true if this node is a leaf and does not have children - * @cfg {String} id The id for this node. If one is not specified, one is generated. - * @constructor - * @param {Object} attributes The attributes/config for the node - */ -Ext.data.Node = function(attributes){ - /** - * The attributes supplied for the node. You can use this property to access any custom attributes you supplied. - * @type {Object} - */ - this.attributes = attributes || {}; - this.leaf = this.attributes.leaf; - /** - * The node id. @type String - */ - this.id = this.attributes.id; - if(!this.id){ - this.id = Ext.id(null, "ynode-"); - this.attributes.id = this.id; - } - /** - * All child nodes of this node. @type Array - */ - this.childNodes = []; - if(!this.childNodes.indexOf){ // indexOf is a must - this.childNodes.indexOf = function(o){ - for(var i = 0, len = this.length; i < len; i++){ - if(this[i] == o) return i; - } - return -1; - }; - } - /** - * The parent node for this node. @type Node - */ - this.parentNode = null; - /** - * The first direct child node of this node, or null if this node has no child nodes. @type Node - */ - this.firstChild = null; - /** - * The last direct child node of this node, or null if this node has no child nodes. @type Node - */ - this.lastChild = null; - /** - * The node immediately preceding this node in the tree, or null if there is no sibling node. @type Node - */ - this.previousSibling = null; - /** - * The node immediately following this node in the tree, or null if there is no sibling node. @type Node - */ - this.nextSibling = null; - - this.addEvents({ - /** - * @event append - * Fires when a new child node is appended - * @param {Tree} tree The owner tree - * @param {Node} this This node - * @param {Node} node The newly appended node - * @param {Number} index The index of the newly appended node - */ - "append" : true, - /** - * @event remove - * Fires when a child node is removed - * @param {Tree} tree The owner tree - * @param {Node} this This node - * @param {Node} node The removed node - */ - "remove" : true, - /** - * @event move - * Fires when this node is moved to a new location in the tree - * @param {Tree} tree The owner tree - * @param {Node} this This node - * @param {Node} oldParent The old parent of this node - * @param {Node} newParent The new parent of this node - * @param {Number} index The index it was moved to - */ - "move" : true, - /** - * @event insert - * Fires when a new child node is inserted. - * @param {Tree} tree The owner tree - * @param {Node} this This node - * @param {Node} node The child node inserted - * @param {Node} refNode The child node the node was inserted before - */ - "insert" : true, - /** - * @event beforeappend - * Fires before a new child is appended, return false to cancel the append. - * @param {Tree} tree The owner tree - * @param {Node} this This node - * @param {Node} node The child node to be appended - */ - "beforeappend" : true, - /** - * @event beforeremove - * Fires before a child is removed, return false to cancel the remove. - * @param {Tree} tree The owner tree - * @param {Node} this This node - * @param {Node} node The child node to be removed - */ - "beforeremove" : true, - /** - * @event beforemove - * Fires before this node is moved to a new location in the tree. Return false to cancel the move. - * @param {Tree} tree The owner tree - * @param {Node} this This node - * @param {Node} oldParent The parent of this node - * @param {Node} newParent The new parent this node is moving to - * @param {Number} index The index it is being moved to - */ - "beforemove" : true, - /** - * @event beforeinsert - * Fires before a new child is inserted, return false to cancel the insert. - * @param {Tree} tree The owner tree - * @param {Node} this This node - * @param {Node} node The child node to be inserted - * @param {Node} refNode The child node the node is being inserted before - */ - "beforeinsert" : true - }); - this.listeners = this.attributes.listeners; - Ext.data.Node.superclass.constructor.call(this); -}; - -Ext.extend(Ext.data.Node, Ext.util.Observable, { - fireEvent : function(evtName){ - // first do standard event for this node - if(Ext.data.Node.superclass.fireEvent.apply(this, arguments) === false){ - return false; - } - // then bubble it up to the tree if the event wasn't cancelled - var ot = this.getOwnerTree(); - if(ot){ - if(ot.fireEvent.apply(this.ownerTree, arguments) === false){ - return false; - } - } - return true; - }, - - /** - * Returns true if this node is a leaf - * @return {Boolean} - */ - isLeaf : function(){ - return this.leaf === true; - }, - - // private - setFirstChild : function(node){ - this.firstChild = node; - }, - - //private - setLastChild : function(node){ - this.lastChild = node; - }, - - - /** - * Returns true if this node is the last child of its parent - * @return {Boolean} - */ - isLast : function(){ - return (!this.parentNode ? true : this.parentNode.lastChild == this); - }, - - /** - * Returns true if this node is the first child of its parent - * @return {Boolean} - */ - isFirst : function(){ - return (!this.parentNode ? true : this.parentNode.firstChild == this); - }, - - hasChildNodes : function(){ - return !this.isLeaf() && this.childNodes.length > 0; - }, - - /** - * Insert node(s) as the last child node of this node. - * @param {Node/Array} node The node or Array of nodes to append - * @return {Node} The appended node if single append, or null if an array was passed - */ - appendChild : function(node){ - var multi = false; - if(node instanceof Array){ - multi = node; - }else if(arguments.length > 1){ - multi = arguments; - } - // if passed an array or multiple args do them one by one - if(multi){ - for(var i = 0, len = multi.length; i < len; i++) { - this.appendChild(multi[i]); - } - }else{ - if(this.fireEvent("beforeappend", this.ownerTree, this, node) === false){ - return false; - } - var index = this.childNodes.length; - var oldParent = node.parentNode; - // it's a move, make sure we move it cleanly - if(oldParent){ - if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index) === false){ - return false; - } - oldParent.removeChild(node); - } - index = this.childNodes.length; - if(index == 0){ - this.setFirstChild(node); - } - this.childNodes.push(node); - node.parentNode = this; - var ps = this.childNodes[index-1]; - if(ps){ - node.previousSibling = ps; - ps.nextSibling = node; - }else{ - node.previousSibling = null; - } - node.nextSibling = null; - this.setLastChild(node); - node.setOwnerTree(this.getOwnerTree()); - this.fireEvent("append", this.ownerTree, this, node, index); - if(oldParent){ - node.fireEvent("move", this.ownerTree, node, oldParent, this, index); - } - return node; - } - }, - - /** - * Removes a child node from this node. - * @param {Node} node The node to remove - * @return {Node} The removed node - */ - removeChild : function(node){ - var index = this.childNodes.indexOf(node); - if(index == -1){ - return false; - } - if(this.fireEvent("beforeremove", this.ownerTree, this, node) === false){ - return false; - } - - // remove it from childNodes collection - this.childNodes.splice(index, 1); - - // update siblings - if(node.previousSibling){ - node.previousSibling.nextSibling = node.nextSibling; - } - if(node.nextSibling){ - node.nextSibling.previousSibling = node.previousSibling; - } - - // update child refs - if(this.firstChild == node){ - this.setFirstChild(node.nextSibling); - } - if(this.lastChild == node){ - this.setLastChild(node.previousSibling); - } - - node.setOwnerTree(null); - // clear any references from the node - node.parentNode = null; - node.previousSibling = null; - node.nextSibling = null; - this.fireEvent("remove", this.ownerTree, this, node); - return node; - }, - - /** - * Inserts the first node before the second node in this nodes childNodes collection. - * @param {Node} node The node to insert - * @param {Node} refNode The node to insert before (if null the node is appended) - * @return {Node} The inserted node - */ - insertBefore : function(node, refNode){ - if(!refNode){ // like standard Dom, refNode can be null for append - return this.appendChild(node); - } - // nothing to do - if(node == refNode){ - return false; - } - - if(this.fireEvent("beforeinsert", this.ownerTree, this, node, refNode) === false){ - return false; - } - var index = this.childNodes.indexOf(refNode); - var oldParent = node.parentNode; - var refIndex = index; - - // when moving internally, indexes will change after remove - if(oldParent == this && this.childNodes.indexOf(node) < index){ - refIndex--; - } - - // it's a move, make sure we move it cleanly - if(oldParent){ - if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index, refNode) === false){ - return false; - } - oldParent.removeChild(node); - } - if(refIndex == 0){ - this.setFirstChild(node); - } - this.childNodes.splice(refIndex, 0, node); - node.parentNode = this; - var ps = this.childNodes[refIndex-1]; - if(ps){ - node.previousSibling = ps; - ps.nextSibling = node; - }else{ - node.previousSibling = null; - } - node.nextSibling = refNode; - refNode.previousSibling = node; - node.setOwnerTree(this.getOwnerTree()); - this.fireEvent("insert", this.ownerTree, this, node, refNode); - if(oldParent){ - node.fireEvent("move", this.ownerTree, node, oldParent, this, refIndex, refNode); - } - return node; - }, - - /** - * Returns the child node at the specified index. - * @param {Number} index - * @return {Node} - */ - item : function(index){ - return this.childNodes[index]; - }, - - /** - * Replaces one child node in this node with another. - * @param {Node} newChild The replacement node - * @param {Node} oldChild The node to replace - * @return {Node} The replaced node - */ - replaceChild : function(newChild, oldChild){ - this.insertBefore(newChild, oldChild); - this.removeChild(oldChild); - return oldChild; - }, - - /** - * Returns the index of a child node - * @param {Node} node - * @return {Number} The index of the node or -1 if it was not found - */ - indexOf : function(child){ - return this.childNodes.indexOf(child); - }, - - /** - * Returns the tree this node is in. - * @return {Tree} - */ - getOwnerTree : function(){ - // if it doesn't have one, look for one - if(!this.ownerTree){ - var p = this; - while(p){ - if(p.ownerTree){ - this.ownerTree = p.ownerTree; - break; - } - p = p.parentNode; - } - } - return this.ownerTree; - }, - - /** - * Returns depth of this node (the root node has a depth of 0) - * @return {Number} - */ - getDepth : function(){ - var depth = 0; - var p = this; - while(p.parentNode){ - ++depth; - p = p.parentNode; - } - return depth; - }, - - // private - setOwnerTree : function(tree){ - // if it's move, we need to update everyone - if(tree != this.ownerTree){ - if(this.ownerTree){ - this.ownerTree.unregisterNode(this); - } - this.ownerTree = tree; - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - cs[i].setOwnerTree(tree); - } - if(tree){ - tree.registerNode(this); - } - } - }, - - /** - * Returns the path for this node. The path can be used to expand or select this node programmatically. - * @param {String} attr (optional) The attr to use for the path (defaults to the node's id) - * @return {String} The path - */ - getPath : function(attr){ - attr = attr || "id"; - var p = this.parentNode; - var b = [this.attributes[attr]]; - while(p){ - b.unshift(p.attributes[attr]); - p = p.parentNode; - } - var sep = this.getOwnerTree().pathSeparator; - return sep + b.join(sep); - }, - - /** - * Bubbles up the tree from this node, calling the specified function with each node. The scope (this) of - * function call will be the scope provided or the current node. The arguments to the function - * will be the args provided or the current node. If the function returns false at any point, - * the bubble is stopped. - * @param {Function} fn The function to call - * @param {Object} scope (optional) The scope of the function (defaults to current node) - * @param {Array} args (optional) The args to call the function with (default to passing the current node) - */ - bubble : function(fn, scope, args){ - var p = this; - while(p){ - if(fn.call(scope || p, args || p) === false){ - break; - } - p = p.parentNode; - } - }, - - /** - * Cascades down the tree from this node, calling the specified function with each node. The scope (this) of - * function call will be the scope provided or the current node. The arguments to the function - * will be the args provided or the current node. If the function returns false at any point, - * the cascade is stopped on that branch. - * @param {Function} fn The function to call - * @param {Object} scope (optional) The scope of the function (defaults to current node) - * @param {Array} args (optional) The args to call the function with (default to passing the current node) - */ - cascade : function(fn, scope, args){ - if(fn.call(scope || this, args || this) !== false){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - cs[i].cascade(fn, scope, args); - } - } - }, - - /** - * Interates the child nodes of this node, calling the specified function with each node. The scope (this) of - * function call will be the scope provided or the current node. The arguments to the function - * will be the args provided or the current node. If the function returns false at any point, - * the iteration stops. - * @param {Function} fn The function to call - * @param {Object} scope (optional) The scope of the function (defaults to current node) - * @param {Array} args (optional) The args to call the function with (default to passing the current node) - */ - eachChild : function(fn, scope, args){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - if(fn.call(scope || this, args || cs[i]) === false){ - break; - } - } - }, - - /** - * Finds the first child that has the attribute with the specified value. - * @param {String} attribute The attribute name - * @param {Mixed} value The value to search for - * @return {Node} The found child or null if none was found - */ - findChild : function(attribute, value){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - if(cs[i].attributes[attribute] == value){ - return cs[i]; - } - } - return null; - }, - - /** - * Finds the first child by a custom function. The child matches if the function passed - * returns true. - * @param {Function} fn - * @param {Object} scope (optional) - * @return {Node} The found child or null if none was found - */ - findChildBy : function(fn, scope){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - if(fn.call(scope||cs[i], cs[i]) === true){ - return cs[i]; - } - } - return null; - }, - - /** - * Sorts this nodes children using the supplied sort function - * @param {Function} fn - * @param {Object} scope (optional) - */ - sort : function(fn, scope){ - var cs = this.childNodes; - var len = cs.length; - if(len > 0){ - var sortFn = scope ? function(){fn.apply(scope, arguments);} : fn; - cs.sort(sortFn); - for(var i = 0; i < len; i++){ - var n = cs[i]; - n.previousSibling = cs[i-1]; - n.nextSibling = cs[i+1]; - if(i == 0){ - this.setFirstChild(n); - } - if(i == len-1){ - this.setLastChild(n); - } - } - } - }, - - /** - * Returns true if this node is an ancestor (at any point) of the passed node. - * @param {Node} node - * @return {Boolean} - */ - contains : function(node){ - return node.isAncestor(this); - }, - - /** - * Returns true if the passed node is an ancestor (at any point) of this node. - * @param {Node} node - * @return {Boolean} - */ - isAncestor : function(node){ - var p = this.parentNode; - while(p){ - if(p == node){ - return true; - } - p = p.parentNode; - } - return false; - }, - - toString : function(){ - return "[Node"+(this.id?" "+this.id:"")+"]"; - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/data/XmlReader.js b/www/extras/extjs/source/data/XmlReader.js deleted file mode 100644 index db4030bd3..000000000 --- a/www/extras/extjs/source/data/XmlReader.js +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.data.XmlReader - * @extends Ext.data.DataReader - * Data reader class to create an Array of {@link Ext.data.Record} objects from an XML document - * based on mappings in a provided Ext.data.Record constructor. - *

        - * The code below lists all configuration options. - *

        
        -var myReader = new Ext.data.XmlReader({
        -   record: "row",           // The repeated element which contains record information
        -   totalRecords: "results", // The element which contains the number of returned records (optional)
        -   id: "id"                 // The element within the record that provides an ID for the record (optional)
        -}, myRecordDefinition);
        -
        - *

        - * This would consume an XML file like this: - *

        
        -<?xml?>
        -<dataset>
        - <results>2</results>
        - <row>
        -   <id>1</id>
        -   <name>Bill</name>
        - </row>
        - <row>
        -   <id>2</id>
        -   <name>Ben</name>
        - </row>
        -</dataset>
        -
        - * @cfg {String} totalRecords The DomQuery path from which to retrieve the total number of records - * in the dataset. This is only needed if the whole dataset is not passed in one go, but is being - * paged from the remote server. - * @cfg {String} record The DomQuery path to the repeated element which contains record information. - * @cfg {String} success The DomQuery path to the success attribute used by forms. - * @cfg {String} id The DomQuery path relative from the record element to the element that contains - * a record identifier value. - * @constructor - * Create a new XmlReader - * @param {Object} meta Metadata configuration options - * @param {Mixed} recordType The definition of the data record type to produce. This can be either a valid - * Record subclass created with {@link Ext.data.Record#create}, or an array of objects with which to call - * Ext.data.Record.create. See the {@link Ext.data.Record} class for more details. - */ -Ext.data.XmlReader = function(meta, recordType){ - Ext.data.XmlReader.superclass.constructor.call(this, meta, recordType); -}; -Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, { - /** - * This method is only used by a DataProxy which has retrieved data from a remote server. - * @param {Object} response The XHR object which contains the parsed XML document. The response is expected - * to contain a method called 'responseXML' that returns an XML document object. - * @return {Object} records A data block which is used by an {@link Ext.data.Store} as - * a cache of Ext.data.Records. - */ - read : function(response){ - var doc = response.responseXML; - if(!doc) { - throw {message: "XmlReader.read: XML Document not available"}; - } - return this.readRecords(doc); - }, - - /** - * Create a data block containing Ext.data.Records from an XML document. - * @param {Object} doc A parsed XML document. - * @return {Object} records A data block which is used by an {@link Ext.data.Store} as - * a cache of Ext.data.Records. - */ - readRecords : function(doc){ - /** - * After any data loads/reads, the raw XML Document is available for further custom processing. - * @type XMLDocument - */ - this.xmlData = doc; - var root = doc.documentElement || doc; - var q = Ext.DomQuery; - var recordType = this.recordType, fields = recordType.prototype.fields; - var sid = this.meta.id; - var totalRecords = 0, success = true; - if(this.meta.totalRecords){ - totalRecords = q.selectNumber(this.meta.totalRecords, root, 0); - } - - if(this.meta.success){ - var sv = q.selectValue(this.meta.success, root, true); - success = sv !== false && sv !== 'false'; - } - var records = []; - var ns = q.select(this.meta.record, root); - for(var i = 0, len = ns.length; i < len; i++) { - var n = ns[i]; - var values = {}; - var id = sid ? q.selectValue(sid, n) : undefined; - for(var j = 0, jlen = fields.length; j < jlen; j++){ - var f = fields.items[j]; - var v = q.selectValue(f.mapping || f.name, n, f.defaultValue); - v = f.convert(v); - values[f.name] = v; - } - var record = new recordType(values, id); - record.node = n; - records[records.length] = record; - } - - return { - success : success, - records : records, - totalRecords : totalRecords || records.length - }; - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/dd/DDCore.js b/www/extras/extjs/source/dd/DDCore.js deleted file mode 100644 index e5b0d522c..000000000 --- a/www/extras/extjs/source/dd/DDCore.js +++ /dev/null @@ -1,2953 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* - * These classes are derivatives of the similarly named classes in the YUI Library. - * The original license: - * Copyright (c) 2006, Yahoo! Inc. All rights reserved. - * Code licensed under the BSD License: - * http://developer.yahoo.net/yui/license.txt - */ - -(function() { - -var Event=Ext.EventManager; -var Dom=Ext.lib.Dom; - -/** - * @class Ext.dd.DragDrop - * Defines the interface and base operation of items that that can be - * dragged or can be drop targets. It was designed to be extended, overriding - * the event handlers for startDrag, onDrag, onDragOver and onDragOut. - * Up to three html elements can be associated with a DragDrop instance: - *
          - *
        • linked element: the element that is passed into the constructor. - * This is the element which defines the boundaries for interaction with - * other DragDrop objects.
        • - *
        • handle element(s): The drag operation only occurs if the element that - * was clicked matches a handle element. By default this is the linked - * element, but there are times that you will want only a portion of the - * linked element to initiate the drag operation, and the setHandleElId() - * method provides a way to define this.
        • - *
        • drag element: this represents the element that would be moved along - * with the cursor during a drag operation. By default, this is the linked - * element itself as in {@link Ext.dd.DD}. setDragElId() lets you define - * a separate element that would be moved, as in {@link Ext.dd.DDProxy}. - *
        • - *
        - * This class should not be instantiated until the onload event to ensure that - * the associated elements are available. - * The following would define a DragDrop obj that would interact with any - * other DragDrop obj in the "group1" group: - *
        - *  dd = new Ext.dd.DragDrop("div1", "group1");
        - * 
        - * Since none of the event handlers have been implemented, nothing would - * actually happen if you were to run the code above. Normally you would - * override this class or one of the default implementations, but you can - * also override the methods you want on an instance of the class... - *
        - *  dd.onDragDrop = function(e, id) {
        - *    alert("dd was dropped on " + id);
        - *  }
        - * 
        - * @constructor - * @param {String} id of the element that is linked to this instance - * @param {String} sGroup the group of related DragDrop objects - * @param {object} config an object containing configurable attributes - * Valid properties for DragDrop: - * padding, isTarget, maintainOffset, primaryButtonOnly - */ -Ext.dd.DragDrop = function(id, sGroup, config) { - if (id) { - this.init(id, sGroup, config); - } -}; - -Ext.dd.DragDrop.prototype = { - - /** - * The id of the element associated with this object. This is what we - * refer to as the "linked element" because the size and position of - * this element is used to determine when the drag and drop objects have - * interacted. - * @property id - * @type String - */ - id: null, - - /** - * Configuration attributes passed into the constructor - * @property config - * @type object - */ - config: null, - - /** - * The id of the element that will be dragged. By default this is same - * as the linked element , but could be changed to another element. Ex: - * Ext.dd.DDProxy - * @property dragElId - * @type String - * @private - */ - dragElId: null, - - /** - * the id of the element that initiates the drag operation. By default - * this is the linked element, but could be changed to be a child of this - * element. This lets us do things like only starting the drag when the - * header element within the linked html element is clicked. - * @property handleElId - * @type String - * @private - */ - handleElId: null, - - /** - * An associative array of HTML tags that will be ignored if clicked. - * @property invalidHandleTypes - * @type {string: string} - */ - invalidHandleTypes: null, - - /** - * An associative array of ids for elements that will be ignored if clicked - * @property invalidHandleIds - * @type {string: string} - */ - invalidHandleIds: null, - - /** - * An indexted array of css class names for elements that will be ignored - * if clicked. - * @property invalidHandleClasses - * @type string[] - */ - invalidHandleClasses: null, - - /** - * The linked element's absolute X position at the time the drag was - * started - * @property startPageX - * @type int - * @private - */ - startPageX: 0, - - /** - * The linked element's absolute X position at the time the drag was - * started - * @property startPageY - * @type int - * @private - */ - startPageY: 0, - - /** - * The group defines a logical collection of DragDrop objects that are - * related. Instances only get events when interacting with other - * DragDrop object in the same group. This lets us define multiple - * groups using a single DragDrop subclass if we want. - * @property groups - * @type {string: string} - */ - groups: null, - - /** - * Individual drag/drop instances can be locked. This will prevent - * onmousedown start drag. - * @property locked - * @type boolean - * @private - */ - locked: false, - - /** - * Lock this instance - * @method lock - */ - lock: function() { this.locked = true; }, - - /** - * Unlock this instace - * @method unlock - */ - unlock: function() { this.locked = false; }, - - /** - * By default, all insances can be a drop target. This can be disabled by - * setting isTarget to false. - * @method isTarget - * @type boolean - */ - isTarget: true, - - /** - * The padding configured for this drag and drop object for calculating - * the drop zone intersection with this object. - * @method padding - * @type int[] - */ - padding: null, - - /** - * Cached reference to the linked element - * @property _domRef - * @private - */ - _domRef: null, - - /** - * Internal typeof flag - * @property __ygDragDrop - * @private - */ - __ygDragDrop: true, - - /** - * Set to true when horizontal contraints are applied - * @property constrainX - * @type boolean - * @private - */ - constrainX: false, - - /** - * Set to true when vertical contraints are applied - * @property constrainY - * @type boolean - * @private - */ - constrainY: false, - - /** - * The left constraint - * @property minX - * @type int - * @private - */ - minX: 0, - - /** - * The right constraint - * @property maxX - * @type int - * @private - */ - maxX: 0, - - /** - * The up constraint - * @property minY - * @type int - * @type int - * @private - */ - minY: 0, - - /** - * The down constraint - * @property maxY - * @type int - * @private - */ - maxY: 0, - - /** - * Maintain offsets when we resetconstraints. Set to true when you want - * the position of the element relative to its parent to stay the same - * when the page changes - * - * @property maintainOffset - * @type boolean - */ - maintainOffset: false, - - /** - * Array of pixel locations the element will snap to if we specified a - * horizontal graduation/interval. This array is generated automatically - * when you define a tick interval. - * @property xTicks - * @type int[] - */ - xTicks: null, - - /** - * Array of pixel locations the element will snap to if we specified a - * vertical graduation/interval. This array is generated automatically - * when you define a tick interval. - * @property yTicks - * @type int[] - */ - yTicks: null, - - /** - * By default the drag and drop instance will only respond to the primary - * button click (left button for a right-handed mouse). Set to true to - * allow drag and drop to start with any mouse click that is propogated - * by the browser - * @property primaryButtonOnly - * @type boolean - */ - primaryButtonOnly: true, - - /** - * The availabe property is false until the linked dom element is accessible. - * @property available - * @type boolean - */ - available: false, - - /** - * By default, drags can only be initiated if the mousedown occurs in the - * region the linked element is. This is done in part to work around a - * bug in some browsers that mis-report the mousedown if the previous - * mouseup happened outside of the window. This property is set to true - * if outer handles are defined. - * - * @property hasOuterHandles - * @type boolean - * @default false - */ - hasOuterHandles: false, - - /** - * Code that executes immediately before the startDrag event - * @method b4StartDrag - * @private - */ - b4StartDrag: function(x, y) { }, - - /** - * Abstract method called after a drag/drop object is clicked - * and the drag or mousedown time thresholds have beeen met. - * @method startDrag - * @param {int} X click location - * @param {int} Y click location - */ - startDrag: function(x, y) { /* override this */ }, - - /** - * Code that executes immediately before the onDrag event - * @method b4Drag - * @private - */ - b4Drag: function(e) { }, - - /** - * Abstract method called during the onMouseMove event while dragging an - * object. - * @method onDrag - * @param {Event} e the mousemove event - */ - onDrag: function(e) { /* override this */ }, - - /** - * Abstract method called when this element fist begins hovering over - * another DragDrop obj - * @method onDragEnter - * @param {Event} e the mousemove event - * @param {String|DragDrop[]} id In POINT mode, the element - * id this is hovering over. In INTERSECT mode, an array of one or more - * dragdrop items being hovered over. - */ - onDragEnter: function(e, id) { /* override this */ }, - - /** - * Code that executes immediately before the onDragOver event - * @method b4DragOver - * @private - */ - b4DragOver: function(e) { }, - - /** - * Abstract method called when this element is hovering over another - * DragDrop obj - * @method onDragOver - * @param {Event} e the mousemove event - * @param {String|DragDrop[]} id In POINT mode, the element - * id this is hovering over. In INTERSECT mode, an array of dd items - * being hovered over. - */ - onDragOver: function(e, id) { /* override this */ }, - - /** - * Code that executes immediately before the onDragOut event - * @method b4DragOut - * @private - */ - b4DragOut: function(e) { }, - - /** - * Abstract method called when we are no longer hovering over an element - * @method onDragOut - * @param {Event} e the mousemove event - * @param {String|DragDrop[]} id In POINT mode, the element - * id this was hovering over. In INTERSECT mode, an array of dd items - * that the mouse is no longer over. - */ - onDragOut: function(e, id) { /* override this */ }, - - /** - * Code that executes immediately before the onDragDrop event - * @method b4DragDrop - * @private - */ - b4DragDrop: function(e) { }, - - /** - * Abstract method called when this item is dropped on another DragDrop - * obj - * @method onDragDrop - * @param {Event} e the mouseup event - * @param {String|DragDrop[]} id In POINT mode, the element - * id this was dropped on. In INTERSECT mode, an array of dd items this - * was dropped on. - */ - onDragDrop: function(e, id) { /* override this */ }, - - /** - * Abstract method called when this item is dropped on an area with no - * drop target - * @method onInvalidDrop - * @param {Event} e the mouseup event - */ - onInvalidDrop: function(e) { /* override this */ }, - - /** - * Code that executes immediately before the endDrag event - * @method b4EndDrag - * @private - */ - b4EndDrag: function(e) { }, - - /** - * Fired when we are done dragging the object - * @method endDrag - * @param {Event} e the mouseup event - */ - endDrag: function(e) { /* override this */ }, - - /** - * Code executed immediately before the onMouseDown event - * @method b4MouseDown - * @param {Event} e the mousedown event - * @private - */ - b4MouseDown: function(e) { }, - - /** - * Event handler that fires when a drag/drop obj gets a mousedown - * @method onMouseDown - * @param {Event} e the mousedown event - */ - onMouseDown: function(e) { /* override this */ }, - - /** - * Event handler that fires when a drag/drop obj gets a mouseup - * @method onMouseUp - * @param {Event} e the mouseup event - */ - onMouseUp: function(e) { /* override this */ }, - - /** - * Override the onAvailable method to do what is needed after the initial - * position was determined. - * @method onAvailable - */ - onAvailable: function () { - }, - - /* - * Provides default constraint padding to "constrainTo" elements (defaults to {left: 0, right:0, top:0, bottom:0}). - * @type Object - */ - defaultPadding : {left:0, right:0, top:0, bottom:0}, - - /* - * Initializes the drag drop object's constraints to restrict movement to a certain element. - * - * Usage: -
        
        - var dd = new Ext.dd.DDProxy("dragDiv1", "proxytest",
        -                { dragElId: "existingProxyDiv" });
        - dd.startDrag = function(){
        -     this.constrainTo("parent-id");
        - };
        - 
        - * Or you can initalize it using the {@link Ext.Element} object: -
        
        - Ext.get("dragDiv1").initDDProxy("proxytest", {dragElId: "existingProxyDiv"}, {
        -     startDrag : function(){
        -         this.constrainTo("parent-id");
        -     }
        - });
        - 
        - * @param {String/HTMLElement/Element} constrainTo The element to constrain to. - * @param {Object/Number} pad (optional) Pad provides a way to specify "padding" of the constraints, - * and can be either a number for symmetrical padding (4 would be equal to {left:4, right:4, top:4, bottom:4}) or - * an object containing the sides to pad. For example: {right:10, bottom:10} - * @param {Boolean} inContent (optional) Constrain the draggable in the content box of the element (inside padding and borders) - */ - constrainTo : function(constrainTo, pad, inContent){ - if(typeof pad == "number"){ - pad = {left: pad, right:pad, top:pad, bottom:pad}; - } - pad = pad || this.defaultPadding; - var b = Ext.get(this.getEl()).getBox(); - var ce = Ext.get(constrainTo); - var s = ce.getScroll(); - var c, cd = ce.dom; - if(cd == document.body){ - c = { x: s.left, y: s.top, width: Ext.lib.Dom.getViewWidth(), height: Ext.lib.Dom.getViewHeight()}; - }else{ - xy = ce.getXY(); - c = {x : xy[0]+s.left, y: xy[1]+s.top, width: cd.clientWidth, height: cd.clientHeight}; - } - - - var topSpace = b.y - c.y; - var leftSpace = b.x - c.x; - - this.resetConstraints(); - this.setXConstraint(leftSpace - (pad.left||0), // left - c.width - leftSpace - b.width - (pad.right||0) //right - ); - this.setYConstraint(topSpace - (pad.top||0), //top - c.height - topSpace - b.height - (pad.bottom||0) //bottom - ); - }, - - /** - * Returns a reference to the linked element - * @method getEl - * @return {HTMLElement} the html element - */ - getEl: function() { - if (!this._domRef) { - this._domRef = Ext.getDom(this.id); - } - - return this._domRef; - }, - - /** - * Returns a reference to the actual element to drag. By default this is - * the same as the html element, but it can be assigned to another - * element. An example of this can be found in Ext.dd.DDProxy - * @method getDragEl - * @return {HTMLElement} the html element - */ - getDragEl: function() { - return Ext.getDom(this.dragElId); - }, - - /** - * Sets up the DragDrop object. Must be called in the constructor of any - * Ext.dd.DragDrop subclass - * @method init - * @param id the id of the linked element - * @param {String} sGroup the group of related items - * @param {object} config configuration attributes - */ - init: function(id, sGroup, config) { - this.initTarget(id, sGroup, config); - Event.on(this.id, "mousedown", this.handleMouseDown, this); - // Event.on(this.id, "selectstart", Event.preventDefault); - }, - - /** - * Initializes Targeting functionality only... the object does not - * get a mousedown handler. - * @method initTarget - * @param id the id of the linked element - * @param {String} sGroup the group of related items - * @param {object} config configuration attributes - */ - initTarget: function(id, sGroup, config) { - - // configuration attributes - this.config = config || {}; - - // create a local reference to the drag and drop manager - this.DDM = Ext.dd.DDM; - // initialize the groups array - this.groups = {}; - - // assume that we have an element reference instead of an id if the - // parameter is not a string - if (typeof id !== "string") { - id = Ext.id(id); - } - - // set the id - this.id = id; - - // add to an interaction group - this.addToGroup((sGroup) ? sGroup : "default"); - - // We don't want to register this as the handle with the manager - // so we just set the id rather than calling the setter. - this.handleElId = id; - - // the linked element is the element that gets dragged by default - this.setDragElId(id); - - // by default, clicked anchors will not start drag operations. - this.invalidHandleTypes = { A: "A" }; - this.invalidHandleIds = {}; - this.invalidHandleClasses = []; - - this.applyConfig(); - - this.handleOnAvailable(); - }, - - /** - * Applies the configuration parameters that were passed into the constructor. - * This is supposed to happen at each level through the inheritance chain. So - * a DDProxy implentation will execute apply config on DDProxy, DD, and - * DragDrop in order to get all of the parameters that are available in - * each object. - * @method applyConfig - */ - applyConfig: function() { - - // configurable properties: - // padding, isTarget, maintainOffset, primaryButtonOnly - this.padding = this.config.padding || [0, 0, 0, 0]; - this.isTarget = (this.config.isTarget !== false); - this.maintainOffset = (this.config.maintainOffset); - this.primaryButtonOnly = (this.config.primaryButtonOnly !== false); - - }, - - /** - * Executed when the linked element is available - * @method handleOnAvailable - * @private - */ - handleOnAvailable: function() { - this.available = true; - this.resetConstraints(); - this.onAvailable(); - }, - - /** - * Configures the padding for the target zone in px. Effectively expands - * (or reduces) the virtual object size for targeting calculations. - * Supports css-style shorthand; if only one parameter is passed, all sides - * will have that padding, and if only two are passed, the top and bottom - * will have the first param, the left and right the second. - * @method setPadding - * @param {int} iTop Top pad - * @param {int} iRight Right pad - * @param {int} iBot Bot pad - * @param {int} iLeft Left pad - */ - setPadding: function(iTop, iRight, iBot, iLeft) { - // this.padding = [iLeft, iRight, iTop, iBot]; - if (!iRight && 0 !== iRight) { - this.padding = [iTop, iTop, iTop, iTop]; - } else if (!iBot && 0 !== iBot) { - this.padding = [iTop, iRight, iTop, iRight]; - } else { - this.padding = [iTop, iRight, iBot, iLeft]; - } - }, - - /** - * Stores the initial placement of the linked element. - * @method setInitialPosition - * @param {int} diffX the X offset, default 0 - * @param {int} diffY the Y offset, default 0 - */ - setInitPosition: function(diffX, diffY) { - var el = this.getEl(); - - if (!this.DDM.verifyEl(el)) { - return; - } - - var dx = diffX || 0; - var dy = diffY || 0; - - var p = Dom.getXY( el ); - - this.initPageX = p[0] - dx; - this.initPageY = p[1] - dy; - - this.lastPageX = p[0]; - this.lastPageY = p[1]; - - - this.setStartPosition(p); - }, - - /** - * Sets the start position of the element. This is set when the obj - * is initialized, the reset when a drag is started. - * @method setStartPosition - * @param pos current position (from previous lookup) - * @private - */ - setStartPosition: function(pos) { - var p = pos || Dom.getXY( this.getEl() ); - this.deltaSetXY = null; - - this.startPageX = p[0]; - this.startPageY = p[1]; - }, - - /** - * Add this instance to a group of related drag/drop objects. All - * instances belong to at least one group, and can belong to as many - * groups as needed. - * @method addToGroup - * @param sGroup {string} the name of the group - */ - addToGroup: function(sGroup) { - this.groups[sGroup] = true; - this.DDM.regDragDrop(this, sGroup); - }, - - /** - * Remove's this instance from the supplied interaction group - * @method removeFromGroup - * @param {string} sGroup The group to drop - */ - removeFromGroup: function(sGroup) { - if (this.groups[sGroup]) { - delete this.groups[sGroup]; - } - - this.DDM.removeDDFromGroup(this, sGroup); - }, - - /** - * Allows you to specify that an element other than the linked element - * will be moved with the cursor during a drag - * @method setDragElId - * @param id {string} the id of the element that will be used to initiate the drag - */ - setDragElId: function(id) { - this.dragElId = id; - }, - - /** - * Allows you to specify a child of the linked element that should be - * used to initiate the drag operation. An example of this would be if - * you have a content div with text and links. Clicking anywhere in the - * content area would normally start the drag operation. Use this method - * to specify that an element inside of the content div is the element - * that starts the drag operation. - * @method setHandleElId - * @param id {string} the id of the element that will be used to - * initiate the drag. - */ - setHandleElId: function(id) { - if (typeof id !== "string") { - id = Ext.id(id); - } - this.handleElId = id; - this.DDM.regHandle(this.id, id); - }, - - /** - * Allows you to set an element outside of the linked element as a drag - * handle - * @method setOuterHandleElId - * @param id the id of the element that will be used to initiate the drag - */ - setOuterHandleElId: function(id) { - if (typeof id !== "string") { - id = Ext.id(id); - } - Event.on(id, "mousedown", - this.handleMouseDown, this); - this.setHandleElId(id); - - this.hasOuterHandles = true; - }, - - /** - * Remove all drag and drop hooks for this element - * @method unreg - */ - unreg: function() { - Event.un(this.id, "mousedown", - this.handleMouseDown); - this._domRef = null; - this.DDM._remove(this); - }, - - /** - * Returns true if this instance is locked, or the drag drop mgr is locked - * (meaning that all drag/drop is disabled on the page.) - * @method isLocked - * @return {boolean} true if this obj or all drag/drop is locked, else - * false - */ - isLocked: function() { - return (this.DDM.isLocked() || this.locked); - }, - - /** - * Fired when this object is clicked - * @method handleMouseDown - * @param {Event} e - * @param {Ext.dd.DragDrop} oDD the clicked dd object (this dd obj) - * @private - */ - handleMouseDown: function(e, oDD){ - if (this.primaryButtonOnly && e.button != 0) { - return; - } - - if (this.isLocked()) { - return; - } - - this.DDM.refreshCache(this.groups); - - var pt = new Ext.lib.Point(Ext.lib.Event.getPageX(e), Ext.lib.Event.getPageY(e)); - if (!this.hasOuterHandles && !this.DDM.isOverTarget(pt, this) ) { - } else { - if (this.clickValidator(e)) { - - // set the initial element position - this.setStartPosition(); - - - this.b4MouseDown(e); - this.onMouseDown(e); - - this.DDM.handleMouseDown(e, this); - - this.DDM.stopEvent(e); - } else { - - - } - } - }, - - clickValidator: function(e) { - var target = Ext.lib.Event.getTarget(e); - return ( this.isValidHandleChild(target) && - (this.id == this.handleElId || - this.DDM.handleWasClicked(target, this.id)) ); - }, - - /** - * Allows you to specify a tag name that should not start a drag operation - * when clicked. This is designed to facilitate embedding links within a - * drag handle that do something other than start the drag. - * @method addInvalidHandleType - * @param {string} tagName the type of element to exclude - */ - addInvalidHandleType: function(tagName) { - var type = tagName.toUpperCase(); - this.invalidHandleTypes[type] = type; - }, - - /** - * Lets you to specify an element id for a child of a drag handle - * that should not initiate a drag - * @method addInvalidHandleId - * @param {string} id the element id of the element you wish to ignore - */ - addInvalidHandleId: function(id) { - if (typeof id !== "string") { - id = Ext.id(id); - } - this.invalidHandleIds[id] = id; - }, - - /** - * Lets you specify a css class of elements that will not initiate a drag - * @method addInvalidHandleClass - * @param {string} cssClass the class of the elements you wish to ignore - */ - addInvalidHandleClass: function(cssClass) { - this.invalidHandleClasses.push(cssClass); - }, - - /** - * Unsets an excluded tag name set by addInvalidHandleType - * @method removeInvalidHandleType - * @param {string} tagName the type of element to unexclude - */ - removeInvalidHandleType: function(tagName) { - var type = tagName.toUpperCase(); - // this.invalidHandleTypes[type] = null; - delete this.invalidHandleTypes[type]; - }, - - /** - * Unsets an invalid handle id - * @method removeInvalidHandleId - * @param {string} id the id of the element to re-enable - */ - removeInvalidHandleId: function(id) { - if (typeof id !== "string") { - id = Ext.id(id); - } - delete this.invalidHandleIds[id]; - }, - - /** - * Unsets an invalid css class - * @method removeInvalidHandleClass - * @param {string} cssClass the class of the element(s) you wish to - * re-enable - */ - removeInvalidHandleClass: function(cssClass) { - for (var i=0, len=this.invalidHandleClasses.length; i= this.minX; i = i - iTickSize) { - if (!tickMap[i]) { - this.xTicks[this.xTicks.length] = i; - tickMap[i] = true; - } - } - - for (i = this.initPageX; i <= this.maxX; i = i + iTickSize) { - if (!tickMap[i]) { - this.xTicks[this.xTicks.length] = i; - tickMap[i] = true; - } - } - - this.xTicks.sort(this.DDM.numericSort) ; - }, - - /** - * Create the array of vertical tick marks if an interval was specified in - * setYConstraint(). - * @method setYTicks - * @private - */ - setYTicks: function(iStartY, iTickSize) { - this.yTicks = []; - this.yTickSize = iTickSize; - - var tickMap = {}; - - for (var i = this.initPageY; i >= this.minY; i = i - iTickSize) { - if (!tickMap[i]) { - this.yTicks[this.yTicks.length] = i; - tickMap[i] = true; - } - } - - for (i = this.initPageY; i <= this.maxY; i = i + iTickSize) { - if (!tickMap[i]) { - this.yTicks[this.yTicks.length] = i; - tickMap[i] = true; - } - } - - this.yTicks.sort(this.DDM.numericSort) ; - }, - - /** - * By default, the element can be dragged any place on the screen. Use - * this method to limit the horizontal travel of the element. Pass in - * 0,0 for the parameters if you want to lock the drag to the y axis. - * @method setXConstraint - * @param {int} iLeft the number of pixels the element can move to the left - * @param {int} iRight the number of pixels the element can move to the - * right - * @param {int} iTickSize optional parameter for specifying that the - * element - * should move iTickSize pixels at a time. - */ - setXConstraint: function(iLeft, iRight, iTickSize) { - this.leftConstraint = iLeft; - this.rightConstraint = iRight; - - this.minX = this.initPageX - iLeft; - this.maxX = this.initPageX + iRight; - if (iTickSize) { this.setXTicks(this.initPageX, iTickSize); } - - this.constrainX = true; - }, - - /** - * Clears any constraints applied to this instance. Also clears ticks - * since they can't exist independent of a constraint at this time. - * @method clearConstraints - */ - clearConstraints: function() { - this.constrainX = false; - this.constrainY = false; - this.clearTicks(); - }, - - /** - * Clears any tick interval defined for this instance - * @method clearTicks - */ - clearTicks: function() { - this.xTicks = null; - this.yTicks = null; - this.xTickSize = 0; - this.yTickSize = 0; - }, - - /** - * By default, the element can be dragged any place on the screen. Set - * this to limit the vertical travel of the element. Pass in 0,0 for the - * parameters if you want to lock the drag to the x axis. - * @method setYConstraint - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize optional parameter for specifying that the - * element should move iTickSize pixels at a time. - */ - setYConstraint: function(iUp, iDown, iTickSize) { - this.topConstraint = iUp; - this.bottomConstraint = iDown; - - this.minY = this.initPageY - iUp; - this.maxY = this.initPageY + iDown; - if (iTickSize) { this.setYTicks(this.initPageY, iTickSize); } - - this.constrainY = true; - - }, - - /** - * resetConstraints must be called if you manually reposition a dd element. - * @method resetConstraints - * @param {boolean} maintainOffset - */ - resetConstraints: function() { - - - // Maintain offsets if necessary - if (this.initPageX || this.initPageX === 0) { - // figure out how much this thing has moved - var dx = (this.maintainOffset) ? this.lastPageX - this.initPageX : 0; - var dy = (this.maintainOffset) ? this.lastPageY - this.initPageY : 0; - - this.setInitPosition(dx, dy); - - // This is the first time we have detected the element's position - } else { - this.setInitPosition(); - } - - if (this.constrainX) { - this.setXConstraint( this.leftConstraint, - this.rightConstraint, - this.xTickSize ); - } - - if (this.constrainY) { - this.setYConstraint( this.topConstraint, - this.bottomConstraint, - this.yTickSize ); - } - }, - - /** - * Normally the drag element is moved pixel by pixel, but we can specify - * that it move a number of pixels at a time. This method resolves the - * location when we have it set up like this. - * @method getTick - * @param {int} val where we want to place the object - * @param {int[]} tickArray sorted array of valid points - * @return {int} the closest tick - * @private - */ - getTick: function(val, tickArray) { - - if (!tickArray) { - // If tick interval is not defined, it is effectively 1 pixel, - // so we return the value passed to us. - return val; - } else if (tickArray[0] >= val) { - // The value is lower than the first tick, so we return the first - // tick. - return tickArray[0]; - } else { - for (var i=0, len=tickArray.length; i= val) { - var diff1 = val - tickArray[i]; - var diff2 = tickArray[next] - val; - return (diff2 > diff1) ? tickArray[i] : tickArray[next]; - } - } - - // The value is larger than the last tick, so we return the last - // tick. - return tickArray[tickArray.length - 1]; - } - }, - - /** - * toString method - * @method toString - * @return {string} string representation of the dd obj - */ - toString: function() { - return ("DragDrop " + this.id); - } - -}; - -})(); -/** - * The drag and drop utility provides a framework for building drag and drop - * applications. In addition to enabling drag and drop for specific elements, - * the drag and drop elements are tracked by the manager class, and the - * interactions between the various elements are tracked during the drag and - * the implementing code is notified about these important moments. - */ - -// Only load the library once. Rewriting the manager class would orphan -// existing drag and drop instances. -if (!Ext.dd.DragDropMgr) { - -/** - * @class Ext.dd.DragDropMgr - * DragDropMgr is a singleton that tracks the element interaction for - * all DragDrop items in the window. Generally, you will not call - * this class directly, but it does have helper methods that could - * be useful in your DragDrop implementations. - * @singleton - */ -Ext.dd.DragDropMgr = function() { - - var Event = Ext.EventManager; - - return { - - /** - * Two dimensional Array of registered DragDrop objects. The first - * dimension is the DragDrop item group, the second the DragDrop - * object. - * @property ids - * @type {string: string} - * @private - * @static - */ - ids: {}, - - /** - * Array of element ids defined as drag handles. Used to determine - * if the element that generated the mousedown event is actually the - * handle and not the html element itself. - * @property handleIds - * @type {string: string} - * @private - * @static - */ - handleIds: {}, - - /** - * the DragDrop object that is currently being dragged - * @property dragCurrent - * @type DragDrop - * @private - * @static - **/ - dragCurrent: null, - - /** - * the DragDrop object(s) that are being hovered over - * @property dragOvers - * @type Array - * @private - * @static - */ - dragOvers: {}, - - /** - * the X distance between the cursor and the object being dragged - * @property deltaX - * @type int - * @private - * @static - */ - deltaX: 0, - - /** - * the Y distance between the cursor and the object being dragged - * @property deltaY - * @type int - * @private - * @static - */ - deltaY: 0, - - /** - * Flag to determine if we should prevent the default behavior of the - * events we define. By default this is true, but this can be set to - * false if you need the default behavior (not recommended) - * @property preventDefault - * @type boolean - * @static - */ - preventDefault: true, - - /** - * Flag to determine if we should stop the propagation of the events - * we generate. This is true by default but you may want to set it to - * false if the html element contains other features that require the - * mouse click. - * @property stopPropagation - * @type boolean - * @static - */ - stopPropagation: true, - - /** - * Internal flag that is set to true when drag and drop has been - * intialized - * @property initialized - * @private - * @static - */ - initalized: false, - - /** - * All drag and drop can be disabled. - * @property locked - * @private - * @static - */ - locked: false, - - /** - * Called the first time an element is registered. - * @method init - * @private - * @static - */ - init: function() { - this.initialized = true; - }, - - /** - * In point mode, drag and drop interaction is defined by the - * location of the cursor during the drag/drop - * @property POINT - * @type int - * @static - */ - POINT: 0, - - /** - * In intersect mode, drag and drop interactio nis defined by the - * overlap of two or more drag and drop objects. - * @property INTERSECT - * @type int - * @static - */ - INTERSECT: 1, - - /** - * The current drag and drop mode. Default: POINT - * @property mode - * @type int - * @static - */ - mode: 0, - - /** - * Runs method on all drag and drop objects - * @method _execOnAll - * @private - * @static - */ - _execOnAll: function(sMethod, args) { - for (var i in this.ids) { - for (var j in this.ids[i]) { - var oDD = this.ids[i][j]; - if (! this.isTypeOfDD(oDD)) { - continue; - } - oDD[sMethod].apply(oDD, args); - } - } - }, - - /** - * Drag and drop initialization. Sets up the global event handlers - * @method _onLoad - * @private - * @static - */ - _onLoad: function() { - - this.init(); - - - Event.on(document, "mouseup", this.handleMouseUp, this, true); - Event.on(document, "mousemove", this.handleMouseMove, this, true); - Event.on(window, "unload", this._onUnload, this, true); - Event.on(window, "resize", this._onResize, this, true); - // Event.on(window, "mouseout", this._test); - - }, - - /** - * Reset constraints on all drag and drop objs - * @method _onResize - * @private - * @static - */ - _onResize: function(e) { - this._execOnAll("resetConstraints", []); - }, - - /** - * Lock all drag and drop functionality - * @method lock - * @static - */ - lock: function() { this.locked = true; }, - - /** - * Unlock all drag and drop functionality - * @method unlock - * @static - */ - unlock: function() { this.locked = false; }, - - /** - * Is drag and drop locked? - * @method isLocked - * @return {boolean} True if drag and drop is locked, false otherwise. - * @static - */ - isLocked: function() { return this.locked; }, - - /** - * Location cache that is set for all drag drop objects when a drag is - * initiated, cleared when the drag is finished. - * @property locationCache - * @private - * @static - */ - locationCache: {}, - - /** - * Set useCache to false if you want to force object the lookup of each - * drag and drop linked element constantly during a drag. - * @property useCache - * @type boolean - * @static - */ - useCache: true, - - /** - * The number of pixels that the mouse needs to move after the - * mousedown before the drag is initiated. Default=3; - * @property clickPixelThresh - * @type int - * @static - */ - clickPixelThresh: 3, - - /** - * The number of milliseconds after the mousedown event to initiate the - * drag if we don't get a mouseup event. Default=1000 - * @property clickTimeThresh - * @type int - * @static - */ - clickTimeThresh: 350, - - /** - * Flag that indicates that either the drag pixel threshold or the - * mousdown time threshold has been met - * @property dragThreshMet - * @type boolean - * @private - * @static - */ - dragThreshMet: false, - - /** - * Timeout used for the click time threshold - * @property clickTimeout - * @type Object - * @private - * @static - */ - clickTimeout: null, - - /** - * The X position of the mousedown event stored for later use when a - * drag threshold is met. - * @property startX - * @type int - * @private - * @static - */ - startX: 0, - - /** - * The Y position of the mousedown event stored for later use when a - * drag threshold is met. - * @property startY - * @type int - * @private - * @static - */ - startY: 0, - - /** - * Each DragDrop instance must be registered with the DragDropMgr. - * This is executed in DragDrop.init() - * @method regDragDrop - * @param {DragDrop} oDD the DragDrop object to register - * @param {String} sGroup the name of the group this element belongs to - * @static - */ - regDragDrop: function(oDD, sGroup) { - if (!this.initialized) { this.init(); } - - if (!this.ids[sGroup]) { - this.ids[sGroup] = {}; - } - this.ids[sGroup][oDD.id] = oDD; - }, - - /** - * Removes the supplied dd instance from the supplied group. Executed - * by DragDrop.removeFromGroup, so don't call this function directly. - * @method removeDDFromGroup - * @private - * @static - */ - removeDDFromGroup: function(oDD, sGroup) { - if (!this.ids[sGroup]) { - this.ids[sGroup] = {}; - } - - var obj = this.ids[sGroup]; - if (obj && obj[oDD.id]) { - delete obj[oDD.id]; - } - }, - - /** - * Unregisters a drag and drop item. This is executed in - * DragDrop.unreg, use that method instead of calling this directly. - * @method _remove - * @private - * @static - */ - _remove: function(oDD) { - for (var g in oDD.groups) { - if (g && this.ids[g][oDD.id]) { - delete this.ids[g][oDD.id]; - } - } - delete this.handleIds[oDD.id]; - }, - - /** - * Each DragDrop handle element must be registered. This is done - * automatically when executing DragDrop.setHandleElId() - * @method regHandle - * @param {String} sDDId the DragDrop id this element is a handle for - * @param {String} sHandleId the id of the element that is the drag - * handle - * @static - */ - regHandle: function(sDDId, sHandleId) { - if (!this.handleIds[sDDId]) { - this.handleIds[sDDId] = {}; - } - this.handleIds[sDDId][sHandleId] = sHandleId; - }, - - /** - * Utility function to determine if a given element has been - * registered as a drag drop item. - * @method isDragDrop - * @param {String} id the element id to check - * @return {boolean} true if this element is a DragDrop item, - * false otherwise - * @static - */ - isDragDrop: function(id) { - return ( this.getDDById(id) ) ? true : false; - }, - - /** - * Returns the drag and drop instances that are in all groups the - * passed in instance belongs to. - * @method getRelated - * @param {DragDrop} p_oDD the obj to get related data for - * @param {boolean} bTargetsOnly if true, only return targetable objs - * @return {DragDrop[]} the related instances - * @static - */ - getRelated: function(p_oDD, bTargetsOnly) { - var oDDs = []; - for (var i in p_oDD.groups) { - for (j in this.ids[i]) { - var dd = this.ids[i][j]; - if (! this.isTypeOfDD(dd)) { - continue; - } - if (!bTargetsOnly || dd.isTarget) { - oDDs[oDDs.length] = dd; - } - } - } - - return oDDs; - }, - - /** - * Returns true if the specified dd target is a legal target for - * the specifice drag obj - * @method isLegalTarget - * @param {DragDrop} the drag obj - * @param {DragDrop} the target - * @return {boolean} true if the target is a legal target for the - * dd obj - * @static - */ - isLegalTarget: function (oDD, oTargetDD) { - var targets = this.getRelated(oDD, true); - for (var i=0, len=targets.length;i this.clickPixelThresh || - diffY > this.clickPixelThresh) { - this.startDrag(this.startX, this.startY); - } - } - - if (this.dragThreshMet) { - this.dragCurrent.b4Drag(e); - this.dragCurrent.onDrag(e); - if(!this.dragCurrent.moveOnly){ - this.fireEvents(e, false); - } - } - - this.stopEvent(e); - - return true; - }, - - /** - * Iterates over all of the DragDrop elements to find ones we are - * hovering over or dropping on - * @method fireEvents - * @param {Event} e the event - * @param {boolean} isDrop is this a drop op or a mouseover op? - * @private - * @static - */ - fireEvents: function(e, isDrop) { - var dc = this.dragCurrent; - - // If the user did the mouse up outside of the window, we could - // get here even though we have ended the drag. - if (!dc || dc.isLocked()) { - return; - } - - var x = Ext.lib.Event.getPageX(e); - var y = Ext.lib.Event.getPageY(e); - var pt = new Ext.lib.Point(x,y); - - // cache the previous dragOver array - var oldOvers = []; - - var outEvts = []; - var overEvts = []; - var dropEvts = []; - var enterEvts = []; - - // Check to see if the object(s) we were hovering over is no longer - // being hovered over so we can fire the onDragOut event - for (var i in this.dragOvers) { - - var ddo = this.dragOvers[i]; - - if (! this.isTypeOfDD(ddo)) { - continue; - } - - if (! this.isOverTarget(pt, ddo, this.mode)) { - outEvts.push( ddo ); - } - - oldOvers[i] = true; - delete this.dragOvers[i]; - } - - for (var sGroup in dc.groups) { - - if ("string" != typeof sGroup) { - continue; - } - - for (i in this.ids[sGroup]) { - var oDD = this.ids[sGroup][i]; - if (! this.isTypeOfDD(oDD)) { - continue; - } - - if (oDD.isTarget && !oDD.isLocked() && oDD != dc) { - if (this.isOverTarget(pt, oDD, this.mode)) { - // look for drop interactions - if (isDrop) { - dropEvts.push( oDD ); - // look for drag enter and drag over interactions - } else { - - // initial drag over: dragEnter fires - if (!oldOvers[oDD.id]) { - enterEvts.push( oDD ); - // subsequent drag overs: dragOver fires - } else { - overEvts.push( oDD ); - } - - this.dragOvers[oDD.id] = oDD; - } - } - } - } - } - - if (this.mode) { - if (outEvts.length) { - dc.b4DragOut(e, outEvts); - dc.onDragOut(e, outEvts); - } - - if (enterEvts.length) { - dc.onDragEnter(e, enterEvts); - } - - if (overEvts.length) { - dc.b4DragOver(e, overEvts); - dc.onDragOver(e, overEvts); - } - - if (dropEvts.length) { - dc.b4DragDrop(e, dropEvts); - dc.onDragDrop(e, dropEvts); - } - - } else { - // fire dragout events - var len = 0; - for (i=0, len=outEvts.length; i - * Ext.dd.DragDropMgr.refreshCache(ddinstance.groups); - * - * Alternatively: - * - * Ext.dd.DragDropMgr.refreshCache({group1:true, group2:true}); - * - * @TODO this really should be an indexed array. Alternatively this - * method could accept both. - * @method refreshCache - * @param {Object} groups an associative array of groups to refresh - * @static - */ - refreshCache: function(groups) { - for (var sGroup in groups) { - if ("string" != typeof sGroup) { - continue; - } - for (var i in this.ids[sGroup]) { - var oDD = this.ids[sGroup][i]; - - if (this.isTypeOfDD(oDD)) { - // if (this.isTypeOfDD(oDD) && oDD.isTarget) { - var loc = this.getLocation(oDD); - if (loc) { - this.locationCache[oDD.id] = loc; - } else { - delete this.locationCache[oDD.id]; - // this will unregister the drag and drop object if - // the element is not in a usable state - // oDD.unreg(); - } - } - } - } - }, - - /** - * This checks to make sure an element exists and is in the DOM. The - * main purpose is to handle cases where innerHTML is used to remove - * drag and drop objects from the DOM. IE provides an 'unspecified - * error' when trying to access the offsetParent of such an element - * @method verifyEl - * @param {HTMLElement} el the element to check - * @return {boolean} true if the element looks usable - * @static - */ - verifyEl: function(el) { - try { - if (el) { - var parent = el.offsetParent; - if (parent) { - return true; - } - } - } catch(e) { - } - - return false; - }, - - /** - * Returns a Region object containing the drag and drop element's position - * and size, including the padding configured for it - * @method getLocation - * @param {DragDrop} oDD the drag and drop object to get the - * location for - * @return {Ext.lib.Region} a Region object representing the total area - * the element occupies, including any padding - * the instance is configured for. - * @static - */ - getLocation: function(oDD) { - if (! this.isTypeOfDD(oDD)) { - return null; - } - - var el = oDD.getEl(), pos, x1, x2, y1, y2, t, r, b, l; - - try { - pos= Ext.lib.Dom.getXY(el); - } catch (e) { } - - if (!pos) { - return null; - } - - x1 = pos[0]; - x2 = x1 + el.offsetWidth; - y1 = pos[1]; - y2 = y1 + el.offsetHeight; - - t = y1 - oDD.padding[0]; - r = x2 + oDD.padding[1]; - b = y2 + oDD.padding[2]; - l = x1 - oDD.padding[3]; - - return new Ext.lib.Region( t, r, b, l ); - }, - - /** - * Checks the cursor location to see if it over the target - * @method isOverTarget - * @param {Ext.lib.Point} pt The point to evaluate - * @param {DragDrop} oTarget the DragDrop object we are inspecting - * @return {boolean} true if the mouse is over the target - * @private - * @static - */ - isOverTarget: function(pt, oTarget, intersect) { - // use cache if available - var loc = this.locationCache[oTarget.id]; - if (!loc || !this.useCache) { - loc = this.getLocation(oTarget); - this.locationCache[oTarget.id] = loc; - - } - - if (!loc) { - return false; - } - - oTarget.cursorIsOver = loc.contains( pt ); - - // DragDrop is using this as a sanity check for the initial mousedown - // in this case we are done. In POINT mode, if the drag obj has no - // contraints, we are also done. Otherwise we need to evaluate the - // location of the target as related to the actual location of the - // dragged element. - var dc = this.dragCurrent; - if (!dc || !dc.getTargetCoord || - (!intersect && !dc.constrainX && !dc.constrainY)) { - return oTarget.cursorIsOver; - } - - oTarget.overlap = null; - - // Get the current location of the drag element, this is the - // location of the mouse event less the delta that represents - // where the original mousedown happened on the element. We - // need to consider constraints and ticks as well. - var pos = dc.getTargetCoord(pt.x, pt.y); - - var el = dc.getDragEl(); - var curRegion = new Ext.lib.Region( pos.y, - pos.x + el.offsetWidth, - pos.y + el.offsetHeight, - pos.x ); - - var overlap = curRegion.intersect(loc); - - if (overlap) { - oTarget.overlap = overlap; - return (intersect) ? true : oTarget.cursorIsOver; - } else { - return false; - } - }, - - /** - * unload event handler - * @method _onUnload - * @private - * @static - */ - _onUnload: function(e, me) { - Ext.dd.DragDropMgr.unregAll(); - }, - - /** - * Cleans up the drag and drop events and objects. - * @method unregAll - * @private - * @static - */ - unregAll: function() { - - if (this.dragCurrent) { - this.stopDrag(); - this.dragCurrent = null; - } - - this._execOnAll("unreg", []); - - for (i in this.elementCache) { - delete this.elementCache[i]; - } - - this.elementCache = {}; - this.ids = {}; - }, - - /** - * A cache of DOM elements - * @property elementCache - * @private - * @static - */ - elementCache: {}, - - /** - * Get the wrapper for the DOM element specified - * @method getElWrapper - * @param {String} id the id of the element to get - * @return {Ext.dd.DDM.ElementWrapper} the wrapped element - * @private - * @deprecated This wrapper isn't that useful - * @static - */ - getElWrapper: function(id) { - var oWrapper = this.elementCache[id]; - if (!oWrapper || !oWrapper.el) { - oWrapper = this.elementCache[id] = - new this.ElementWrapper(Ext.getDom(id)); - } - return oWrapper; - }, - - /** - * Returns the actual DOM element - * @method getElement - * @param {String} id the id of the elment to get - * @return {Object} The element - * @deprecated use Ext.lib.Ext.getDom instead - * @static - */ - getElement: function(id) { - return Ext.getDom(id); - }, - - /** - * Returns the style property for the DOM element (i.e., - * document.getElById(id).style) - * @method getCss - * @param {String} id the id of the elment to get - * @return {Object} The style property of the element - * @deprecated use Ext.lib.Dom instead - * @static - */ - getCss: function(id) { - var el = Ext.getDom(id); - return (el) ? el.style : null; - }, - - /** - * Inner class for cached elements - * @class DragDropMgr.ElementWrapper - * @for DragDropMgr - * @private - * @deprecated - */ - ElementWrapper: function(el) { - /** - * The element - * @property el - */ - this.el = el || null; - /** - * The element id - * @property id - */ - this.id = this.el && el.id; - /** - * A reference to the style property - * @property css - */ - this.css = this.el && el.style; - }, - - /** - * Returns the X position of an html element - * @method getPosX - * @param el the element for which to get the position - * @return {int} the X coordinate - * @for DragDropMgr - * @deprecated use Ext.lib.Dom.getX instead - * @static - */ - getPosX: function(el) { - return Ext.lib.Dom.getX(el); - }, - - /** - * Returns the Y position of an html element - * @method getPosY - * @param el the element for which to get the position - * @return {int} the Y coordinate - * @deprecated use Ext.lib.Dom.getY instead - * @static - */ - getPosY: function(el) { - return Ext.lib.Dom.getY(el); - }, - - /** - * Swap two nodes. In IE, we use the native method, for others we - * emulate the IE behavior - * @method swapNode - * @param n1 the first node to swap - * @param n2 the other node to swap - * @static - */ - swapNode: function(n1, n2) { - if (n1.swapNode) { - n1.swapNode(n2); - } else { - var p = n2.parentNode; - var s = n2.nextSibling; - - if (s == n1) { - p.insertBefore(n1, n2); - } else if (n2 == n1.nextSibling) { - p.insertBefore(n2, n1); - } else { - n1.parentNode.replaceChild(n2, n1); - p.insertBefore(n1, s); - } - } - }, - - /** - * Returns the current scroll position - * @method getScroll - * @private - * @static - */ - getScroll: function () { - var t, l, dde=document.documentElement, db=document.body; - if (dde && (dde.scrollTop || dde.scrollLeft)) { - t = dde.scrollTop; - l = dde.scrollLeft; - } else if (db) { - t = db.scrollTop; - l = db.scrollLeft; - } else { - - } - return { top: t, left: l }; - }, - - /** - * Returns the specified element style property - * @method getStyle - * @param {HTMLElement} el the element - * @param {string} styleProp the style property - * @return {string} The value of the style property - * @deprecated use Ext.lib.Dom.getStyle - * @static - */ - getStyle: function(el, styleProp) { - return Ext.fly(el).getStyle(styleProp); - }, - - /** - * Gets the scrollTop - * @method getScrollTop - * @return {int} the document's scrollTop - * @static - */ - getScrollTop: function () { return this.getScroll().top; }, - - /** - * Gets the scrollLeft - * @method getScrollLeft - * @return {int} the document's scrollTop - * @static - */ - getScrollLeft: function () { return this.getScroll().left; }, - - /** - * Sets the x/y position of an element to the location of the - * target element. - * @method moveToEl - * @param {HTMLElement} moveEl The element to move - * @param {HTMLElement} targetEl The position reference element - * @static - */ - moveToEl: function (moveEl, targetEl) { - var aCoord = Ext.lib.Dom.getXY(targetEl); - Ext.lib.Dom.setXY(moveEl, aCoord); - }, - - /** - * Numeric array sort function - * @method numericSort - * @static - */ - numericSort: function(a, b) { return (a - b); }, - - /** - * Internal counter - * @property _timeoutCount - * @private - * @static - */ - _timeoutCount: 0, - - /** - * Trying to make the load order less important. Without this we get - * an error if this file is loaded before the Event Utility. - * @method _addListeners - * @private - * @static - */ - _addListeners: function() { - var DDM = Ext.dd.DDM; - if ( Ext.lib.Event && document ) { - DDM._onLoad(); - } else { - if (DDM._timeoutCount > 2000) { - } else { - setTimeout(DDM._addListeners, 10); - if (document && document.body) { - DDM._timeoutCount += 1; - } - } - } - }, - - /** - * Recursively searches the immediate parent and all child nodes for - * the handle element in order to determine wheter or not it was - * clicked. - * @method handleWasClicked - * @param node the html element to inspect - * @static - */ - handleWasClicked: function(node, id) { - if (this.isHandle(id, node.id)) { - return true; - } else { - // check to see if this is a text node child of the one we want - var p = node.parentNode; - - while (p) { - if (this.isHandle(id, p.id)) { - return true; - } else { - p = p.parentNode; - } - } - } - - return false; - } - - }; - -}(); - -// shorter alias, save a few bytes -Ext.dd.DDM = Ext.dd.DragDropMgr; -Ext.dd.DDM._addListeners(); - -} - -/** - * @class Ext.dd.DD - * A DragDrop implementation where the linked element follows the - * mouse cursor during a drag. - * @extends Ext.dd.DragDrop - * @constructor - * @param {String} id the id of the linked element - * @param {String} sGroup the group of related DragDrop items - * @param {object} config an object containing configurable attributes - * Valid properties for DD: - * scroll - */ -Ext.dd.DD = function(id, sGroup, config) { - if (id) { - this.init(id, sGroup, config); - } -}; - -Ext.extend(Ext.dd.DD, Ext.dd.DragDrop, { - - /** - * When set to true, the utility automatically tries to scroll the browser - * window wehn a drag and drop element is dragged near the viewport boundary. - * Defaults to true. - * @property scroll - * @type boolean - */ - scroll: true, - - /** - * Sets the pointer offset to the distance between the linked element's top - * left corner and the location the element was clicked - * @method autoOffset - * @param {int} iPageX the X coordinate of the click - * @param {int} iPageY the Y coordinate of the click - */ - autoOffset: function(iPageX, iPageY) { - var x = iPageX - this.startPageX; - var y = iPageY - this.startPageY; - this.setDelta(x, y); - }, - - /** - * Sets the pointer offset. You can call this directly to force the - * offset to be in a particular location (e.g., pass in 0,0 to set it - * to the center of the object) - * @method setDelta - * @param {int} iDeltaX the distance from the left - * @param {int} iDeltaY the distance from the top - */ - setDelta: function(iDeltaX, iDeltaY) { - this.deltaX = iDeltaX; - this.deltaY = iDeltaY; - }, - - /** - * Sets the drag element to the location of the mousedown or click event, - * maintaining the cursor location relative to the location on the element - * that was clicked. Override this if you want to place the element in a - * location other than where the cursor is. - * @method setDragElPos - * @param {int} iPageX the X coordinate of the mousedown or drag event - * @param {int} iPageY the Y coordinate of the mousedown or drag event - */ - setDragElPos: function(iPageX, iPageY) { - // the first time we do this, we are going to check to make sure - // the element has css positioning - - var el = this.getDragEl(); - this.alignElWithMouse(el, iPageX, iPageY); - }, - - /** - * Sets the element to the location of the mousedown or click event, - * maintaining the cursor location relative to the location on the element - * that was clicked. Override this if you want to place the element in a - * location other than where the cursor is. - * @method alignElWithMouse - * @param {HTMLElement} el the element to move - * @param {int} iPageX the X coordinate of the mousedown or drag event - * @param {int} iPageY the Y coordinate of the mousedown or drag event - */ - alignElWithMouse: function(el, iPageX, iPageY) { - var oCoord = this.getTargetCoord(iPageX, iPageY); - var fly = el.dom ? el : Ext.fly(el); - if (!this.deltaSetXY) { - var aCoord = [oCoord.x, oCoord.y]; - fly.setXY(aCoord); - var newLeft = fly.getLeft(true); - var newTop = fly.getTop(true); - this.deltaSetXY = [ newLeft - oCoord.x, newTop - oCoord.y ]; - } else { - fly.setLeftTop(oCoord.x + this.deltaSetXY[0], oCoord.y + this.deltaSetXY[1]); - } - - this.cachePosition(oCoord.x, oCoord.y); - this.autoScroll(oCoord.x, oCoord.y, el.offsetHeight, el.offsetWidth); - return oCoord; - }, - - /** - * Saves the most recent position so that we can reset the constraints and - * tick marks on-demand. We need to know this so that we can calculate the - * number of pixels the element is offset from its original position. - * @method cachePosition - * @param iPageX the current x position (optional, this just makes it so we - * don't have to look it up again) - * @param iPageY the current y position (optional, this just makes it so we - * don't have to look it up again) - */ - cachePosition: function(iPageX, iPageY) { - if (iPageX) { - this.lastPageX = iPageX; - this.lastPageY = iPageY; - } else { - var aCoord = Ext.lib.Dom.getXY(this.getEl()); - this.lastPageX = aCoord[0]; - this.lastPageY = aCoord[1]; - } - }, - - /** - * Auto-scroll the window if the dragged object has been moved beyond the - * visible window boundary. - * @method autoScroll - * @param {int} x the drag element's x position - * @param {int} y the drag element's y position - * @param {int} h the height of the drag element - * @param {int} w the width of the drag element - * @private - */ - autoScroll: function(x, y, h, w) { - - if (this.scroll) { - // The client height - var clientH = Ext.lib.Dom.getViewWidth(); - - // The client width - var clientW = Ext.lib.Dom.getViewHeight(); - - // The amt scrolled down - var st = this.DDM.getScrollTop(); - - // The amt scrolled right - var sl = this.DDM.getScrollLeft(); - - // Location of the bottom of the element - var bot = h + y; - - // Location of the right of the element - var right = w + x; - - // The distance from the cursor to the bottom of the visible area, - // adjusted so that we don't scroll if the cursor is beyond the - // element drag constraints - var toBot = (clientH + st - y - this.deltaY); - - // The distance from the cursor to the right of the visible area - var toRight = (clientW + sl - x - this.deltaX); - - - // How close to the edge the cursor must be before we scroll - // var thresh = (document.all) ? 100 : 40; - var thresh = 40; - - // How many pixels to scroll per autoscroll op. This helps to reduce - // clunky scrolling. IE is more sensitive about this ... it needs this - // value to be higher. - var scrAmt = (document.all) ? 80 : 30; - - // Scroll down if we are near the bottom of the visible page and the - // obj extends below the crease - if ( bot > clientH && toBot < thresh ) { - window.scrollTo(sl, st + scrAmt); - } - - // Scroll up if the window is scrolled down and the top of the object - // goes above the top border - if ( y < st && st > 0 && y - st < thresh ) { - window.scrollTo(sl, st - scrAmt); - } - - // Scroll right if the obj is beyond the right border and the cursor is - // near the border. - if ( right > clientW && toRight < thresh ) { - window.scrollTo(sl + scrAmt, st); - } - - // Scroll left if the window has been scrolled to the right and the obj - // extends past the left border - if ( x < sl && sl > 0 && x - sl < thresh ) { - window.scrollTo(sl - scrAmt, st); - } - } - }, - - /** - * Finds the location the element should be placed if we want to move - * it to where the mouse location less the click offset would place us. - * @method getTargetCoord - * @param {int} iPageX the X coordinate of the click - * @param {int} iPageY the Y coordinate of the click - * @return an object that contains the coordinates (Object.x and Object.y) - * @private - */ - getTargetCoord: function(iPageX, iPageY) { - - - var x = iPageX - this.deltaX; - var y = iPageY - this.deltaY; - - if (this.constrainX) { - if (x < this.minX) { x = this.minX; } - if (x > this.maxX) { x = this.maxX; } - } - - if (this.constrainY) { - if (y < this.minY) { y = this.minY; } - if (y > this.maxY) { y = this.maxY; } - } - - x = this.getTick(x, this.xTicks); - y = this.getTick(y, this.yTicks); - - - return {x:x, y:y}; - }, - - /* - * Sets up config options specific to this class. Overrides - * Ext.dd.DragDrop, but all versions of this method through the - * inheritance chain are called - */ - applyConfig: function() { - Ext.dd.DD.superclass.applyConfig.call(this); - this.scroll = (this.config.scroll !== false); - }, - - /* - * Event that fires prior to the onMouseDown event. Overrides - * Ext.dd.DragDrop. - */ - b4MouseDown: function(e) { - // this.resetConstraints(); - this.autoOffset(Ext.lib.Event.getPageX(e), - Ext.lib.Event.getPageY(e)); - }, - - /* - * Event that fires prior to the onDrag event. Overrides - * Ext.dd.DragDrop. - */ - b4Drag: function(e) { - this.setDragElPos(Ext.lib.Event.getPageX(e), - Ext.lib.Event.getPageY(e)); - }, - - toString: function() { - return ("DD " + this.id); - } - - ////////////////////////////////////////////////////////////////////////// - // Debugging ygDragDrop events that can be overridden - ////////////////////////////////////////////////////////////////////////// - /* - startDrag: function(x, y) { - }, - - onDrag: function(e) { - }, - - onDragEnter: function(e, id) { - }, - - onDragOver: function(e, id) { - }, - - onDragOut: function(e, id) { - }, - - onDragDrop: function(e, id) { - }, - - endDrag: function(e) { - } - - */ - -}); -/** - * @class Ext.dd.DDProxy - * A DragDrop implementation that inserts an empty, bordered div into - * the document that follows the cursor during drag operations. At the time of - * the click, the frame div is resized to the dimensions of the linked html - * element, and moved to the exact location of the linked element. - * - * References to the "frame" element refer to the single proxy element that - * was created to be dragged in place of all DDProxy elements on the - * page. - * - * @extends Ext.dd.DD - * @constructor - * @param {String} id the id of the linked html element - * @param {String} sGroup the group of related DragDrop objects - * @param {object} config an object containing configurable attributes - * Valid properties for DDProxy in addition to those in DragDrop: - * resizeFrame, centerFrame, dragElId - */ -Ext.dd.DDProxy = function(id, sGroup, config) { - if (id) { - this.init(id, sGroup, config); - this.initFrame(); - } -}; - -/** - * The default drag frame div id - * @property Ext.dd.DDProxy.dragElId - * @type String - * @static - */ -Ext.dd.DDProxy.dragElId = "ygddfdiv"; - -Ext.extend(Ext.dd.DDProxy, Ext.dd.DD, { - - /** - * By default we resize the drag frame to be the same size as the element - * we want to drag (this is to get the frame effect). We can turn it off - * if we want a different behavior. - * @property resizeFrame - * @type boolean - */ - resizeFrame: true, - - /** - * By default the frame is positioned exactly where the drag element is, so - * we use the cursor offset provided by Ext.dd.DD. Another option that works only if - * you do not have constraints on the obj is to have the drag frame centered - * around the cursor. Set centerFrame to true for this effect. - * @property centerFrame - * @type boolean - */ - centerFrame: false, - - /** - * Creates the proxy element if it does not yet exist - * @method createFrame - */ - createFrame: function() { - var self = this; - var body = document.body; - - if (!body || !body.firstChild) { - setTimeout( function() { self.createFrame(); }, 50 ); - return; - } - - var div = this.getDragEl(); - - if (!div) { - div = document.createElement("div"); - div.id = this.dragElId; - var s = div.style; - - s.position = "absolute"; - s.visibility = "hidden"; - s.cursor = "move"; - s.border = "2px solid #aaa"; - s.zIndex = 999; - - // appendChild can blow up IE if invoked prior to the window load event - // while rendering a table. It is possible there are other scenarios - // that would cause this to happen as well. - body.insertBefore(div, body.firstChild); - } - }, - - /** - * Initialization for the drag frame element. Must be called in the - * constructor of all subclasses - * @method initFrame - */ - initFrame: function() { - this.createFrame(); - }, - - applyConfig: function() { - Ext.dd.DDProxy.superclass.applyConfig.call(this); - - this.resizeFrame = (this.config.resizeFrame !== false); - this.centerFrame = (this.config.centerFrame); - this.setDragElId(this.config.dragElId || Ext.dd.DDProxy.dragElId); - }, - - /** - * Resizes the drag frame to the dimensions of the clicked object, positions - * it over the object, and finally displays it - * @method showFrame - * @param {int} iPageX X click position - * @param {int} iPageY Y click position - * @private - */ - showFrame: function(iPageX, iPageY) { - var el = this.getEl(); - var dragEl = this.getDragEl(); - var s = dragEl.style; - - this._resizeProxy(); - - if (this.centerFrame) { - this.setDelta( Math.round(parseInt(s.width, 10)/2), - Math.round(parseInt(s.height, 10)/2) ); - } - - this.setDragElPos(iPageX, iPageY); - - Ext.fly(dragEl).show(); - }, - - /** - * The proxy is automatically resized to the dimensions of the linked - * element when a drag is initiated, unless resizeFrame is set to false - * @method _resizeProxy - * @private - */ - _resizeProxy: function() { - if (this.resizeFrame) { - var el = this.getEl(); - Ext.fly(this.getDragEl()).setSize(el.offsetWidth, el.offsetHeight); - } - }, - - // overrides Ext.dd.DragDrop - b4MouseDown: function(e) { - var x = Ext.lib.Event.getPageX(e); - var y = Ext.lib.Event.getPageY(e); - this.autoOffset(x, y); - this.setDragElPos(x, y); - }, - - // overrides Ext.dd.DragDrop - b4StartDrag: function(x, y) { - // show the drag frame - this.showFrame(x, y); - }, - - // overrides Ext.dd.DragDrop - b4EndDrag: function(e) { - Ext.fly(this.getDragEl()).hide(); - }, - - // overrides Ext.dd.DragDrop - // By default we try to move the element to the last location of the frame. - // This is so that the default behavior mirrors that of Ext.dd.DD. - endDrag: function(e) { - - var lel = this.getEl(); - var del = this.getDragEl(); - - // Show the drag frame briefly so we can get its position - del.style.visibility = ""; - - this.beforeMove(); - // Hide the linked element before the move to get around a Safari - // rendering bug. - lel.style.visibility = "hidden"; - Ext.dd.DDM.moveToEl(lel, del); - del.style.visibility = "hidden"; - lel.style.visibility = ""; - - this.afterDrag(); - }, - - beforeMove : function(){ - - }, - - afterDrag : function(){ - - }, - - toString: function() { - return ("DDProxy " + this.id); - } - -}); -/** - * @class Ext.dd.DDTarget - * A DragDrop implementation that does not move, but can be a drop - * target. You would get the same result by simply omitting implementation - * for the event callbacks, but this way we reduce the processing cost of the - * event listener and the callbacks. - * @extends Ext.dd.DragDrop - * @constructor - * @param {String} id the id of the element that is a drop target - * @param {String} sGroup the group of related DragDrop objects - * @param {object} config an object containing configurable attributes - * Valid properties for DDTarget in addition to those in - * DragDrop: - * none - */ -Ext.dd.DDTarget = function(id, sGroup, config) { - if (id) { - this.initTarget(id, sGroup, config); - } -}; - -// Ext.dd.DDTarget.prototype = new Ext.dd.DragDrop(); -Ext.extend(Ext.dd.DDTarget, Ext.dd.DragDrop, { - toString: function() { - return ("DDTarget " + this.id); - } -}); diff --git a/www/extras/extjs/source/dd/DragSource.js b/www/extras/extjs/source/dd/DragSource.js deleted file mode 100644 index 93316b968..000000000 --- a/www/extras/extjs/source/dd/DragSource.js +++ /dev/null @@ -1,359 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.dd.DragSource - * @extends Ext.dd.DDProxy - * A simple class that provides the basic implementation needed to make any element draggable. - * @constructor - * @param {String/HTMLElement/Element} el The container element - * @param {Object} config - */ -Ext.dd.DragSource = function(el, config){ - this.el = Ext.get(el); - this.dragData = {}; - - Ext.apply(this, config); - - if(!this.proxy){ - this.proxy = new Ext.dd.StatusProxy(); - } - this.el.on("mouseup", this.handleMouseUp); - Ext.dd.DragSource.superclass.constructor.call(this, this.el.dom, this.ddGroup || this.group, - {dragElId : this.proxy.id, resizeFrame: false, isTarget: false, scroll: this.scroll === true}); - - this.dragging = false; -}; - -Ext.extend(Ext.dd.DragSource, Ext.dd.DDProxy, { - /** - * @cfg {String} dropAllowed - * The CSS class returned to the drag source when drop is allowed (defaults to "x-dd-drop-ok"). - */ - dropAllowed : "x-dd-drop-ok", - /** - * @cfg {String} dropNotAllowed - * The CSS class returned to the drag source when drop is not allowed (defaults to "x-dd-drop-nodrop"). - */ - dropNotAllowed : "x-dd-drop-nodrop", - - /** - * Returns the data object associated with this drag source - * @return {Object} data An object containing arbitrary data - */ - getDragData : function(e){ - return this.dragData; - }, - - // private - onDragEnter : function(e, id){ - var target = Ext.dd.DragDropMgr.getDDById(id); - this.cachedTarget = target; - if(this.beforeDragEnter(target, e, id) !== false){ - if(target.isNotifyTarget){ - var status = target.notifyEnter(this, e, this.dragData); - this.proxy.setStatus(status); - }else{ - this.proxy.setStatus(this.dropAllowed); - } - - if(this.afterDragEnter){ - /** - * An empty function by default, but provided so that you can perform a custom action - * when the dragged item enters the drop target by providing an implementation. - * @param {Ext.dd.DragDrop} target The drop target - * @param {Event} e The event object - * @param {String} id The id of the dragged element - * @method afterDragEnter - */ - this.afterDragEnter(target, e, id); - } - } - }, - - /** - * An empty function by default, but provided so that you can perform a custom action - * before the dragged item enters the drop target and optionally cancel the onDragEnter. - * @param {Ext.dd.DragDrop} target The drop target - * @param {Event} e The event object - * @param {String} id The id of the dragged element - * @return {Boolean} isValid True if the drag event is valid, else false to cancel - */ - beforeDragEnter : function(target, e, id){ - return true; - }, - - // private - alignElWithMouse: function() { - Ext.dd.DragSource.superclass.alignElWithMouse.apply(this, arguments); - this.proxy.sync(); - }, - - // private - onDragOver : function(e, id){ - var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id); - if(this.beforeDragOver(target, e, id) !== false){ - if(target.isNotifyTarget){ - var status = target.notifyOver(this, e, this.dragData); - this.proxy.setStatus(status); - } - - if(this.afterDragOver){ - /** - * An empty function by default, but provided so that you can perform a custom action - * while the dragged item is over the drop target by providing an implementation. - * @param {Ext.dd.DragDrop} target The drop target - * @param {Event} e The event object - * @param {String} id The id of the dragged element - * @method afterDragOver - */ - this.afterDragOver(target, e, id); - } - } - }, - - /** - * An empty function by default, but provided so that you can perform a custom action - * while the dragged item is over the drop target and optionally cancel the onDragOver. - * @param {Ext.dd.DragDrop} target The drop target - * @param {Event} e The event object - * @param {String} id The id of the dragged element - * @return {Boolean} isValid True if the drag event is valid, else false to cancel - */ - beforeDragOver : function(target, e, id){ - return true; - }, - - // private - onDragOut : function(e, id){ - var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id); - if(this.beforeDragOut(target, e, id) !== false){ - if(target.isNotifyTarget){ - target.notifyOut(this, e, this.dragData); - } - this.proxy.reset(); - if(this.afterDragOut){ - /** - * An empty function by default, but provided so that you can perform a custom action - * after the dragged item is dragged out of the target without dropping. - * @param {Ext.dd.DragDrop} target The drop target - * @param {Event} e The event object - * @param {String} id The id of the dragged element - * @method afterDragOut - */ - this.afterDragOut(target, e, id); - } - } - this.cachedTarget = null; - }, - - /** - * An empty function by default, but provided so that you can perform a custom action before the dragged - * item is dragged out of the target without dropping, and optionally cancel the onDragOut. - * @param {Ext.dd.DragDrop} target The drop target - * @param {Event} e The event object - * @param {String} id The id of the dragged element - * @return {Boolean} isValid True if the drag event is valid, else false to cancel - */ - beforeDragOut : function(target, e, id){ - return true; - }, - - // private - onDragDrop : function(e, id){ - var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id); - if(this.beforeDragDrop(target, e, id) !== false){ - if(target.isNotifyTarget){ - if(target.notifyDrop(this, e, this.dragData)){ // valid drop? - this.onValidDrop(target, e, id); - }else{ - this.onInvalidDrop(target, e, id); - } - }else{ - this.onValidDrop(target, e, id); - } - - if(this.afterDragDrop){ - /** - * An empty function by default, but provided so that you can perform a custom action - * after a valid drag drop has occurred by providing an implementation. - * @param {Ext.dd.DragDrop} target The drop target - * @param {Event} e The event object - * @param {String} id The id of the dropped element - * @method afterDragDrop - */ - this.afterDragDrop(target, e, id); - } - } - }, - - /** - * An empty function by default, but provided so that you can perform a custom action before the dragged - * item is dropped onto the target and optionally cancel the onDragDrop. - * @param {Ext.dd.DragDrop} target The drop target - * @param {Event} e The event object - * @param {String} id The id of the dragged element - * @return {Boolean} isValid True if the drag drop event is valid, else false to cancel - */ - beforeDragDrop : function(target, e, id){ - return true; - }, - - // private - onValidDrop : function(target, e, id){ - this.hideProxy(); - }, - - // private - getRepairXY : function(e, data){ - return this.el.getXY(); - }, - - // private - onInvalidDrop : function(target, e, id){ - this.beforeInvalidDrop(target, e, id); - if(this.cachedTarget){ - if(this.cachedTarget.isNotifyTarget){ - this.cachedTarget.notifyOut(this, e, this.dragData); - } - this.cacheTarget = null; - } - this.proxy.repair(this.getRepairXY(e, this.dragData), this.afterRepair, this); - - if(this.afterInvalidDrop){ - /** - * An empty function by default, but provided so that you can perform a custom action - * after an invalid drop has occurred by providing an implementation. - * @param {Event} e The event object - * @param {String} id The id of the dropped element - * @method afterInvalidDrop - */ - this.afterInvalidDrop(e, id); - } - }, - - // private - afterRepair : function(){ - if(Ext.enableFx){ - this.el.highlight(this.hlColor || "c3daf9"); - } - this.dragging = false; - }, - - /** - * An empty function by default, but provided so that you can perform a custom action after an invalid - * drop has occurred. - * @param {Ext.dd.DragDrop} target The drop target - * @param {Event} e The event object - * @param {String} id The id of the dragged element - * @return {Boolean} isValid True if the invalid drop should proceed, else false to cancel - */ - beforeInvalidDrop : function(target, e, id){ - return true; - }, - - // private - handleMouseDown : function(e){ - if(this.dragging) { - return; - } - if(Ext.QuickTips){ - Ext.QuickTips.disable(); - } - var data = this.getDragData(e); - if(data && this.onBeforeDrag(data, e) !== false){ - this.dragData = data; - this.proxy.stop(); - Ext.dd.DragSource.superclass.handleMouseDown.apply(this, arguments); - } - }, - - // private - handleMouseUp : function(e){ - if(Ext.QuickTips){ - Ext.QuickTips.enable(); - } - }, - - /** - * An empty function by default, but provided so that you can perform a custom action before the initial - * drag event begins and optionally cancel it. - * @param {Object} data An object containing arbitrary data to be shared with drop targets - * @param {Event} e The event object - * @return {Boolean} isValid True if the drag event is valid, else false to cancel - */ - onBeforeDrag : function(data, e){ - return true; - }, - - /** - * An empty function by default, but provided so that you can perform a custom action once the initial - * drag event has begun. The drag cannot be canceled from this function. - * @param {Number} x The x position of the click on the dragged object - * @param {Number} y The y position of the click on the dragged object - */ - onStartDrag : Ext.emptyFn, - - // private - YUI override - startDrag : function(x, y){ - this.proxy.reset(); - this.dragging = true; - this.proxy.update(""); - this.onInitDrag(x, y); - this.proxy.show(); - }, - - // private - onInitDrag : function(x, y){ - var clone = this.el.dom.cloneNode(true); - clone.id = Ext.id(); // prevent duplicate ids - this.proxy.update(clone); - this.onStartDrag(x, y); - return true; - }, - - /** - * Returns the drag source's underlying {@link Ext.dd.StatusProxy} - * @return {Ext.dd.StatusProxy} proxy The StatusProxy - */ - getProxy : function(){ - return this.proxy; - }, - - /** - * Hides the drag source's {@link Ext.dd.StatusProxy} - */ - hideProxy : function(){ - this.proxy.hide(); - this.proxy.reset(true); - this.dragging = false; - }, - - // private - triggerCacheRefresh : function(){ - Ext.dd.DDM.refreshCache(this.groups); - }, - - // private - override to prevent hiding - b4EndDrag: function(e) { - }, - - // private - override to prevent moving - endDrag : function(e){ - this.onEndDrag(this.dragData, e); - }, - - // private - onEndDrag : function(data, e){ - }, - - // private - pin to cursor - autoOffset : function(x, y) { - this.setDelta(-12, -20); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/dd/DragZone.js b/www/extras/extjs/source/dd/DragZone.js deleted file mode 100644 index 64cec46fd..000000000 --- a/www/extras/extjs/source/dd/DragZone.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.dd.DragZone - * @extends Ext.dd.DragSource - * This class provides a container DD instance that proxies for multiple child node sources.
        - * By default, this class requires that draggable child nodes are registered with {@link Ext.dd.Registry}. - * @constructor - * @param {String/HTMLElement/Element} el The container element - * @param {Object} config - */ -Ext.dd.DragZone = function(el, config){ - Ext.dd.DragZone.superclass.constructor.call(this, el, config); - if(this.containerScroll){ - Ext.dd.ScrollManager.register(this.el); - } -}; - -Ext.extend(Ext.dd.DragZone, Ext.dd.DragSource, { - /** - * @cfg {Boolean} containerScroll True to register this container with the Scrollmanager - * for auto scrolling during drag operations. - */ - /** - * @cfg {String} hlColor The color to use when visually highlighting the drag source in the afterRepair - * method after a failed drop (defaults to "c3daf9" - light blue) - */ - - /** - * Called when a mousedown occurs in this container. Looks in {@link Ext.dd.Registry} - * for a valid target to drag based on the mouse down. Override this method - * to provide your own lookup logic (e.g. finding a child by class name). Make sure your returned - * object has a "ddel" attribute (with an HTML Element) for other functions to work. - * @param {EventObject} e The mouse down event - * @return {Object} The dragData - */ - getDragData : function(e){ - return Ext.dd.Registry.getHandleFromEvent(e); - }, - - /** - * Called once drag threshold has been reached to initialize the proxy element. By default, it clones the - * this.dragData.ddel - * @param {Number} x The x position of the click on the dragged object - * @param {Number} y The y position of the click on the dragged object - * @return {Boolean} true to continue the drag, false to cancel - */ - onInitDrag : function(x, y){ - this.proxy.update(this.dragData.ddel.cloneNode(true)); - this.onStartDrag(x, y); - return true; - }, - - /** - * Called after a repair of an invalid drop. By default, highlights this.dragData.ddel - */ - afterRepair : function(){ - if(Ext.enableFx){ - Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor || "c3daf9"); - } - this.dragging = false; - }, - - /** - * Called before a repair of an invalid drop to get the XY to animate to. By default returns - * the XY of this.dragData.ddel - * @param {EventObject} e The mouse up event - * @return {Array} The xy location (e.g. [100, 200]) - */ - getRepairXY : function(e){ - return Ext.Element.fly(this.dragData.ddel).getXY(); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/dd/DropTarget.js b/www/extras/extjs/source/dd/DropTarget.js deleted file mode 100644 index 9d5368dd9..000000000 --- a/www/extras/extjs/source/dd/DropTarget.js +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.dd.DropTarget - * @extends Ext.dd.DDTarget - * A simple class that provides the basic implementation needed to make any element a drop target that can have - * draggable items dropped onto it. The drop has no effect until an implementation of notifyDrop is provided. - * @constructor - * @param {String/HTMLElement/Element} el The container element - * @param {Object} config - */ -Ext.dd.DropTarget = function(el, config){ - this.el = Ext.get(el); - - Ext.apply(this, config); - - if(this.containerScroll){ - Ext.dd.ScrollManager.register(this.el); - } - - Ext.dd.DropTarget.superclass.constructor.call(this, this.el.dom, this.ddGroup || this.group, - {isTarget: true}); - -}; - -Ext.extend(Ext.dd.DropTarget, Ext.dd.DDTarget, { - /** - * @cfg {String} overClass - * The CSS class applied to the drop target element while the drag source is over it (defaults to ""). - */ - /** - * @cfg {String} dropAllowed - * The CSS class returned to the drag source when drop is allowed (defaults to "x-dd-drop-ok"). - */ - dropAllowed : "x-dd-drop-ok", - /** - * @cfg {String} dropNotAllowed - * The CSS class returned to the drag source when drop is not allowed (defaults to "x-dd-drop-nodrop"). - */ - dropNotAllowed : "x-dd-drop-nodrop", - - // private - isTarget : true, - - // private - isNotifyTarget : true, - - /** - * The function a {@link Ext.dd.DragSource} calls once to notify this drop target that the source is now over the - * target. This default implementation adds the CSS class specified by overClass (if any) to the drop element - * and returns the dropAllowed config value. This method should be overridden if drop validation is required. - * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop target - * @param {Event} e The event - * @param {Object} data An object containing arbitrary data supplied by the drag source - * @return {String} status The CSS class that communicates the drop status back to the source so that the - * underlying {@link Ext.dd.StatusProxy} can be updated - */ - notifyEnter : function(dd, e, data){ - if(this.overClass){ - this.el.addClass(this.overClass); - } - return this.dropAllowed; - }, - - /** - * The function a {@link Ext.dd.DragSource} calls continuously while it is being dragged over the target. - * This method will be called on every mouse movement while the drag source is over the drop target. - * This default implementation simply returns the dropAllowed config value. - * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop target - * @param {Event} e The event - * @param {Object} data An object containing arbitrary data supplied by the drag source - * @return {String} status The CSS class that communicates the drop status back to the source so that the - * underlying {@link Ext.dd.StatusProxy} can be updated - */ - notifyOver : function(dd, e, data){ - return this.dropAllowed; - }, - - /** - * The function a {@link Ext.dd.DragSource} calls once to notify this drop target that the source has been dragged - * out of the target without dropping. This default implementation simply removes the CSS class specified by - * overClass (if any) from the drop element. - * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop target - * @param {Event} e The event - * @param {Object} data An object containing arbitrary data supplied by the drag source - */ - notifyOut : function(dd, e, data){ - if(this.overClass){ - this.el.removeClass(this.overClass); - } - }, - - /** - * The function a {@link Ext.dd.DragSource} calls once to notify this drop target that the dragged item has - * been dropped on it. This method has no default implementation and returns false, so you must provide an - * implementation that does something to process the drop event and returns true so that the drag source's - * repair action does not run. - * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop target - * @param {Event} e The event - * @param {Object} data An object containing arbitrary data supplied by the drag source - * @return {Boolean} True if the drop was valid, else false - */ - notifyDrop : function(dd, e, data){ - return false; - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/dd/DropZone.js b/www/extras/extjs/source/dd/DropZone.js deleted file mode 100644 index 6dee68bb4..000000000 --- a/www/extras/extjs/source/dd/DropZone.js +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.dd.DropZone - * @extends Ext.dd.DropTarget - * This class provides a container DD instance that proxies for multiple child node targets.
        - * By default, this class requires that child nodes accepting drop are registered with {@link Ext.dd.Registry}. - * @constructor - * @param {String/HTMLElement/Element} el The container element - * @param {Object} config - */ -Ext.dd.DropZone = function(el, config){ - Ext.dd.DropZone.superclass.constructor.call(this, el, config); -}; - -Ext.extend(Ext.dd.DropZone, Ext.dd.DropTarget, { - /** - * Returns a custom data object associated with the DOM node that is the target of the event. By default - * this looks up the event target in the {@link Ext.dd.Registry}, although you can override this method to - * provide your own custom lookup. - * @param {Event} e The event - * @return {Object} data The custom data - */ - getTargetFromEvent : function(e){ - return Ext.dd.Registry.getTargetFromEvent(e); - }, - - /** - * Called internally when the DropZone determines that a {@link Ext.dd.DragSource} has entered a drop node - * that it has registered. This method has no default implementation and should be overridden to provide - * node-specific processing if necessary. - * @param {Object} nodeData The custom data associated with the drop node (this is the same value returned from - * {@link #getTargetFromEvent} for this node) - * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone - * @param {Event} e The event - * @param {Object} data An object containing arbitrary data supplied by the drag source - */ - onNodeEnter : function(n, dd, e, data){ - - }, - - /** - * Called internally while the DropZone determines that a {@link Ext.dd.DragSource} is over a drop node - * that it has registered. The default implementation returns this.dropNotAllowed, so it should be - * overridden to provide the proper feedback. - * @param {Object} nodeData The custom data associated with the drop node (this is the same value returned from - * {@link #getTargetFromEvent} for this node) - * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone - * @param {Event} e The event - * @param {Object} data An object containing arbitrary data supplied by the drag source - * @return {String} status The CSS class that communicates the drop status back to the source so that the - * underlying {@link Ext.dd.StatusProxy} can be updated - */ - onNodeOver : function(n, dd, e, data){ - return this.dropAllowed; - }, - - /** - * Called internally when the DropZone determines that a {@link Ext.dd.DragSource} has been dragged out of - * the drop node without dropping. This method has no default implementation and should be overridden to provide - * node-specific processing if necessary. - * @param {Object} nodeData The custom data associated with the drop node (this is the same value returned from - * {@link #getTargetFromEvent} for this node) - * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone - * @param {Event} e The event - * @param {Object} data An object containing arbitrary data supplied by the drag source - */ - onNodeOut : function(n, dd, e, data){ - - }, - - /** - * Called internally when the DropZone determines that a {@link Ext.dd.DragSource} has been dropped onto - * the drop node. The default implementation returns false, so it should be overridden to provide the - * appropriate processing of the drop event and return true so that the drag source's repair action does not run. - * @param {Object} nodeData The custom data associated with the drop node (this is the same value returned from - * {@link #getTargetFromEvent} for this node) - * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone - * @param {Event} e The event - * @param {Object} data An object containing arbitrary data supplied by the drag source - * @return {Boolean} True if the drop was valid, else false - */ - onNodeDrop : function(n, dd, e, data){ - return false; - }, - - /** - * Called internally while the DropZone determines that a {@link Ext.dd.DragSource} is being dragged over it, - * but not over any of its registered drop nodes. The default implementation returns this.dropNotAllowed, so - * it should be overridden to provide the proper feedback if necessary. - * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone - * @param {Event} e The event - * @param {Object} data An object containing arbitrary data supplied by the drag source - * @return {String} status The CSS class that communicates the drop status back to the source so that the - * underlying {@link Ext.dd.StatusProxy} can be updated - */ - onContainerOver : function(dd, e, data){ - return this.dropNotAllowed; - }, - - /** - * Called internally when the DropZone determines that a {@link Ext.dd.DragSource} has been dropped on it, - * but not on any of its registered drop nodes. The default implementation returns false, so it should be - * overridden to provide the appropriate processing of the drop event if you need the drop zone itself to - * be able to accept drops. It should return true when valid so that the drag source's repair action does not run. - * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone - * @param {Event} e The event - * @param {Object} data An object containing arbitrary data supplied by the drag source - * @return {Boolean} True if the drop was valid, else false - */ - onContainerDrop : function(dd, e, data){ - return false; - }, - - /** - * The function a {@link Ext.dd.DragSource} calls once to notify this drop zone that the source is now over - * the zone. The default implementation returns this.dropNotAllowed and expects that only registered drop - * nodes can process drag drop operations, so if you need the drop zone itself to be able to process drops - * you should override this method and provide a custom implementation. - * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone - * @param {Event} e The event - * @param {Object} data An object containing arbitrary data supplied by the drag source - * @return {String} status The CSS class that communicates the drop status back to the source so that the - * underlying {@link Ext.dd.StatusProxy} can be updated - */ - notifyEnter : function(dd, e, data){ - return this.dropNotAllowed; - }, - - /** - * The function a {@link Ext.dd.DragSource} calls continuously while it is being dragged over the drop zone. - * This method will be called on every mouse movement while the drag source is over the drop zone. - * It will call {@link #onNodeOver} while the drag source is over a registered node, and will also automatically - * delegate to the appropriate node-specific methods as necessary when the drag source enters and exits - * registered nodes ({@link #onNodeEnter}, {@link #onNodeOut}). If the drag source is not currently over a - * registered node, it will call {@link #onContainerOver}. - * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone - * @param {Event} e The event - * @param {Object} data An object containing arbitrary data supplied by the drag source - * @return {String} status The CSS class that communicates the drop status back to the source so that the - * underlying {@link Ext.dd.StatusProxy} can be updated - */ - notifyOver : function(dd, e, data){ - var n = this.getTargetFromEvent(e); - if(!n){ // not over valid drop target - if(this.lastOverNode){ - this.onNodeOut(this.lastOverNode, dd, e, data); - this.lastOverNode = null; - } - return this.onContainerOver(dd, e, data); - } - if(this.lastOverNode != n){ - if(this.lastOverNode){ - this.onNodeOut(this.lastOverNode, dd, e, data); - } - this.onNodeEnter(n, dd, e, data); - this.lastOverNode = n; - } - return this.onNodeOver(n, dd, e, data); - }, - - /** - * The function a {@link Ext.dd.DragSource} calls once to notify this drop zone that the source has been dragged - * out of the zone without dropping. If the drag source is currently over a registered node, the notification - * will be delegated to {@link #onNodeOut} for node-specific handling, otherwise it will be ignored. - * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop target - * @param {Event} e The event - * @param {Object} data An object containing arbitrary data supplied by the drag zone - */ - notifyOut : function(dd, e, data){ - if(this.lastOverNode){ - this.onNodeOut(this.lastOverNode, dd, e, data); - this.lastOverNode = null; - } - }, - - /** - * The function a {@link Ext.dd.DragSource} calls once to notify this drop zone that the dragged item has - * been dropped on it. The drag zone will look up the target node based on the event passed in, and if there - * is a node registered for that event, it will delegate to {@link #onNodeDrop} for node-specific handling, - * otherwise it will call {@link #onContainerDrop}. - * @param {Ext.dd.DragSource} source The drag source that was dragged over this drop zone - * @param {Event} e The event - * @param {Object} data An object containing arbitrary data supplied by the drag source - * @return {Boolean} True if the drop was valid, else false - */ - notifyDrop : function(dd, e, data){ - if(this.lastOverNode){ - this.onNodeOut(this.lastOverNode, dd, e, data); - this.lastOverNode = null; - } - var n = this.getTargetFromEvent(e); - return n ? - this.onNodeDrop(n, dd, e, data) : - this.onContainerDrop(dd, e, data); - }, - - // private - triggerCacheRefresh : function(){ - Ext.dd.DDM.refreshCache(this.groups); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/dd/Registry.js b/www/extras/extjs/source/dd/Registry.js deleted file mode 100644 index 158c0c13c..000000000 --- a/www/extras/extjs/source/dd/Registry.js +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.dd.Registry - * Provides easy access to all drag drop components that are registered on a page. Items can be retrieved either - * directly by DOM node id, or by passing in the drag drop event that occurred and looking up the event target. - * @singleton - */ -Ext.dd.Registry = function(){ - var elements = {}; - var handles = {}; - var autoIdSeed = 0; - - var getId = function(el, autogen){ - if(typeof el == "string"){ - return el; - } - var id = el.id; - if(!id && autogen !== false){ - id = "extdd-" + (++autoIdSeed); - el.id = id; - } - return id; - }; - - return { - /** - * Resgister a drag drop element - * @param {String/HTMLElement) element The id or DOM node to register - * @param {Object} data (optional) An custom data object that will be passed between the elements that are involved - * in drag drop operations. You can populate this object with any arbitrary properties that your own code - * knows how to interpret, plus there are some specific properties known to the Registry that should be - * populated in the data object (if applicable): - *
        -Value      Description
        ---------- ------------------------------------------
        -handles Array of DOM nodes that trigger dragging
        - for the element being registered
        -isHandle True if the element passed in triggers
        - dragging itself, else false -
        - */ - register : function(el, data){ - data = data || {}; - if(typeof el == "string"){ - el = document.getElementById(el); - } - data.ddel = el; - elements[getId(el)] = data; - if(data.isHandle !== false){ - handles[data.ddel.id] = data; - } - if(data.handles){ - var hs = data.handles; - for(var i = 0, len = hs.length; i < len; i++){ - handles[getId(hs[i])] = data; - } - } - }, - - /** - * Unregister a drag drop element - * @param {String/HTMLElement) element The id or DOM node to unregister - */ - unregister : function(el){ - var id = getId(el, false); - var data = elements[id]; - if(data){ - delete elements[id]; - if(data.handles){ - var hs = data.handles; - for(var i = 0, len = hs.length; i < len; i++){ - delete handles[getId(hs[i], false)]; - } - } - } - }, - - /** - * Returns the handle registered for a DOM Node by id - * @param {String/HTMLElement} id The DOM node or id to look up - * @return {Object} handle The custom handle data - */ - getHandle : function(id){ - if(typeof id != "string"){ // must be element? - id = id.id; - } - return handles[id]; - }, - - /** - * Returns the handle that is registered for the DOM node that is the target of the event - * @param {Event} e The event - * @return {Object} handle The custom handle data - */ - getHandleFromEvent : function(e){ - var t = Ext.lib.Event.getTarget(e); - return t ? handles[t.id] : null; - }, - - /** - * Returns a custom data object that is registered for a DOM node by id - * @param {String/HTMLElement} id The DOM node or id to look up - * @return {Object} data The custom data - */ - getTarget : function(id){ - if(typeof id != "string"){ // must be element? - id = id.id; - } - return elements[id]; - }, - - /** - * Returns a custom data object that is registered for the DOM node that is the target of the event - * @param {Event} e The event - * @return {Object} data The custom data - */ - getTargetFromEvent : function(e){ - var t = Ext.lib.Event.getTarget(e); - return t ? elements[t.id] || handles[t.id] : null; - } - }; -}(); \ No newline at end of file diff --git a/www/extras/extjs/source/dd/ScrollManager.js b/www/extras/extjs/source/dd/ScrollManager.js deleted file mode 100644 index 05eb587ae..000000000 --- a/www/extras/extjs/source/dd/ScrollManager.js +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.dd.ScrollManager - * Provides automatic scrolling of overflow regions in the page during drag operations.

        - * Note: This class uses "Point Mode" and is untested in "Intersect Mode". - * @singleton - */ -Ext.dd.ScrollManager = function(){ - var ddm = Ext.dd.DragDropMgr; - var els = {}; - var dragEl = null; - var proc = {}; - - var onStop = function(e){ - dragEl = null; - clearProc(); - }; - - var triggerRefresh = function(){ - if(ddm.dragCurrent){ - ddm.refreshCache(ddm.dragCurrent.groups); - } - }; - - var doScroll = function(){ - if(ddm.dragCurrent){ - var dds = Ext.dd.ScrollManager; - if(!dds.animate){ - if(proc.el.scroll(proc.dir, dds.increment)){ - triggerRefresh(); - } - }else{ - proc.el.scroll(proc.dir, dds.increment, true, dds.animDuration, triggerRefresh); - } - } - }; - - var clearProc = function(){ - if(proc.id){ - clearInterval(proc.id); - } - proc.id = 0; - proc.el = null; - proc.dir = ""; - }; - - var startProc = function(el, dir){ - clearProc(); - proc.el = el; - proc.dir = dir; - proc.id = setInterval(doScroll, Ext.dd.ScrollManager.frequency); - }; - - var onFire = function(e, isDrop){ - if(isDrop || !ddm.dragCurrent){ return; } - var dds = Ext.dd.ScrollManager; - if(!dragEl || dragEl != ddm.dragCurrent){ - dragEl = ddm.dragCurrent; - // refresh regions on drag start - dds.refreshCache(); - } - - var xy = Ext.lib.Event.getXY(e); - var pt = new Ext.lib.Point(xy[0], xy[1]); - for(var id in els){ - var el = els[id], r = el._region; - if(r.contains(pt) && el.isScrollable()){ - if(r.bottom - pt.y <= dds.thresh){ - if(proc.el != el){ - startProc(el, "down"); - } - return; - }else if(r.right - pt.x <= dds.thresh){ - if(proc.el != el){ - startProc(el, "left"); - } - return; - }else if(pt.y - r.top <= dds.thresh){ - if(proc.el != el){ - startProc(el, "up"); - } - return; - }else if(pt.x - r.left <= dds.thresh){ - if(proc.el != el){ - startProc(el, "right"); - } - return; - } - } - } - clearProc(); - }; - - ddm.fireEvents = ddm.fireEvents.createSequence(onFire, ddm); - ddm.stopDrag = ddm.stopDrag.createSequence(onStop, ddm); - - return { - /** - * Registers new overflow element(s) to auto scroll - * @param {String/HTMLElement/Element/Array} el The id of or the element to be scrolled or an array of either - */ - register : function(el){ - if(el instanceof Array){ - for(var i = 0, len = el.length; i < len; i++) { - this.register(el[i]); - } - }else{ - el = Ext.get(el); - els[el.id] = el; - } - }, - - /** - * Unregisters overflow element(s) so they are no longer scrolled - * @param {String/HTMLElement/Element/Array} el The id of or the element to be removed or an array of either - */ - unregister : function(el){ - if(el instanceof Array){ - for(var i = 0, len = el.length; i < len; i++) { - this.unregister(el[i]); - } - }else{ - el = Ext.get(el); - delete els[el.id]; - } - }, - - /** - * The number of pixels from the edge of a container the pointer needs to be to - * trigger scrolling (defaults to 25) - * @type Number - */ - thresh : 25, - - /** - * The number of pixels to scroll in each scroll increment (defaults to 50) - * @type Number - */ - increment : 100, - - /** - * The frequency of scrolls in milliseconds (defaults to 500) - * @type Number - */ - frequency : 500, - - /** - * True to animate the scroll (defaults to true) - * @type Boolean - */ - animate: true, - - /** - * The animation duration in seconds - - * MUST BE less than Ext.dd.ScrollManager.frequency! (defaults to .4) - * @type Number - */ - animDuration: .4, - - /** - * Manually trigger a cache refresh. - */ - refreshCache : function(){ - for(var id in els){ - if(typeof els[id] == 'object'){ // for people extending the object prototype - els[id]._region = els[id].getRegion(); - } - } - } - }; -}(); \ No newline at end of file diff --git a/www/extras/extjs/source/dd/StatusProxy.js b/www/extras/extjs/source/dd/StatusProxy.js deleted file mode 100644 index 71d6d5241..000000000 --- a/www/extras/extjs/source/dd/StatusProxy.js +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.dd.StatusProxy - * A specialized drag proxy that supports a drop status icon, {@link Ext.Layer} styles and auto-repair. This is the - * default drag proxy used by all Ext.dd components. - * @constructor - * @param {Object} config - */ -Ext.dd.StatusProxy = function(config){ - Ext.apply(this, config); - this.id = this.id || Ext.id(); - this.el = new Ext.Layer({ - dh: { - id: this.id, tag: "div", cls: "x-dd-drag-proxy "+this.dropNotAllowed, children: [ - {tag: "div", cls: "x-dd-drop-icon"}, - {tag: "div", cls: "x-dd-drag-ghost"} - ] - }, - shadow: !config || config.shadow !== false - }); - this.ghost = Ext.get(this.el.dom.childNodes[1]); - this.dropStatus = this.dropNotAllowed; -}; - -Ext.dd.StatusProxy.prototype = { - /** - * @cfg {String} dropAllowed - * The CSS class to apply to the status element when drop is allowed (defaults to "x-dd-drop-ok"). - */ - dropAllowed : "x-dd-drop-ok", - /** - * @cfg {String} dropNotAllowed - * The CSS class to apply to the status element when drop is not allowed (defaults to "x-dd-drop-nodrop"). - */ - dropNotAllowed : "x-dd-drop-nodrop", - - /** - * Updates the proxy's visual element to indicate the status of whether or not drop is allowed - * over the current target element. - * @param {String} cssClass The css class for the new drop status indicator image - */ - setStatus : function(cssClass){ - cssClass = cssClass || this.dropNotAllowed; - if(this.dropStatus != cssClass){ - this.el.replaceClass(this.dropStatus, cssClass); - this.dropStatus = cssClass; - } - }, - - /** - * Resets the status indicator to the default dropNotAllowed value - * @param {Boolean} clearGhost True to also remove all content from the ghost, false to preserve it - */ - reset : function(clearGhost){ - this.el.dom.className = "x-dd-drag-proxy " + this.dropNotAllowed; - this.dropStatus = this.dropNotAllowed; - if(clearGhost){ - this.ghost.update(""); - } - }, - - /** - * Updates the contents of the ghost element - * @param {String} html The html that will replace the current innerHTML of the ghost element - */ - update : function(html){ - if(typeof html == "string"){ - this.ghost.update(html); - }else{ - this.ghost.update(""); - html.style.margin = "0"; - this.ghost.dom.appendChild(html); - } - }, - - /** - * Returns the underlying proxy {@link Ext.Layer} - * @return {Ext.Layer} el - */ - getEl : function(){ - return this.el; - }, - - /** - * Returns the ghost element - * @return {Ext.Element} el - */ - getGhost : function(){ - return this.ghost; - }, - - /** - * Hides the proxy - * @param {Boolean} clear True to reset the status and clear the ghost contents, false to preserve them - */ - hide : function(clear){ - this.el.hide(); - if(clear){ - this.reset(true); - } - }, - - /** - * Stops the repair animation if it's currently running - */ - stop : function(){ - if(this.anim && this.anim.isAnimated && this.anim.isAnimated()){ - this.anim.stop(); - } - }, - - /** - * Displays this proxy - */ - show : function(){ - this.el.show(); - }, - - /** - * Force the Layer to sync its shadow and shim positions to the element - */ - sync : function(){ - this.el.sync(); - }, - - /** - * Causes the proxy to return to its position of origin via an animation. Should be called after an - * invalid drop operation by the item being dragged. - * @param {Array} xy The XY position of the element ([x, y]) - * @param {Function} callback The function to call after the repair is complete - * @param {Object} scope The scope in which to execute the callback - */ - repair : function(xy, callback, scope){ - this.callback = callback; - this.scope = scope; - if(xy && this.animRepair !== false){ - this.el.addClass("x-dd-drag-repair"); - this.el.hideUnders(true); - this.anim = this.el.shift({ - duration: this.repairDuration || .5, - easing: 'easeOut', - xy: xy, - stopFx: true, - callback: this.afterRepair, - scope: this - }); - }else{ - this.afterRepair(); - } - }, - - // private - afterRepair : function(){ - this.hide(true); - if(typeof this.callback == "function"){ - this.callback.call(this.scope || this); - } - this.callback == null; - this.scope == null; - } -}; \ No newline at end of file diff --git a/www/extras/extjs/source/debug.js b/www/extras/extjs/source/debug.js deleted file mode 100644 index 6339f548c..000000000 --- a/www/extras/extjs/source/debug.js +++ /dev/null @@ -1,733 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* - * These functions are only included in -debug files - * -*/Ext.debug = { - init : function(){ - var CP = Ext.ContentPanel; - var bd = Ext.get(document.body); - - // create the dialog - var dlg = new Ext.LayoutDialog('x-debug-browser', { - autoCreate:true, - width:800, - height:450, - title: 'Ext Debug Console & Inspector', - proxyDrag:true, - shadow:true, - center:{alwaysShowTabs:true}, - constraintoviewport:false - }); - - // prevent dialog events from bubbling - dlg.el.swallowEvent('click'); - - // build the layout - var mainLayout = dlg.getLayout(); - mainLayout.beginUpdate(); - - // create the nested layouts - var clayout = mainLayout.add('center', - new Ext.debug.InnerLayout('x-debug-console', 400, { - title: 'Debug Console' - } - )); - - var ilayout = mainLayout.add('center', - new Ext.debug.InnerLayout('x-debug-inspector', 250, { - title: 'DOM Inspector' - } - )); - - var scriptPanel = clayout.add('east', new CP({ - autoCreate:{ - tag: 'div', children: [ - {tag: 'div'}, - {tag:'textarea'} - ] - }, - fitContainer:true, - fitToFrame:true, - title:'Script Console', - autoScroll: Ext.isGecko, // hideous block for firefox missing cursor AND bad sizing textareas - setSize : function(w, h){ - Ext.ContentPanel.prototype.setSize.call(this, w, h); - if(Ext.isGecko && Ext.isStrict){ - var s = this.adjustForComponents(w, h); - this.resizeEl.setSize(s.width-2, s.height-2); - } - } - })); - var sel = scriptPanel.el; - var script = sel.child('textarea'); - scriptPanel.resizeEl = script; - var sctb = scriptPanel.toolbar = new Ext.Toolbar(sel.child('div')); - sctb.add({ - text: 'Run', - handler: function(){ - var s = script.dom.value; - if(trap.checked){ - try{ - var rt = eval(s); - Ext.debug.dump(rt === undefined? '(no return)' : rt); - }catch(e){ - Ext.debug.log(e.message || e.descript); - } - }else{ - var rt = eval(s); - Ext.debug.dump(rt === undefined? '(no return)' : rt); - } - } - }, { - text: 'Clear', - handler: function(){ - script.dom.value = ''; - script.dom.focus(); - } - }); - - var trap = Ext.DomHelper.append(sctb.el, {tag:'input', type:'checkbox', checked: 'checked'}); - trap.checked = true; - sctb.add('-', trap, 'Trap Errors'); - - - var stylesGrid = new Ext.grid.PropertyGrid(bd.createChild(), { - nameText: 'Style', - enableCtxMenu: false, - enableColumnResize: false - }); - - var stylePanel = ilayout.add('east', new Ext.GridPanel(stylesGrid, - {title: '(No element selected)'})); - - stylesGrid.render(); - - // hide the header - stylesGrid.getView().mainHd.setDisplayed(false); - - clayout.tbar.add({ - text: 'Clear', - handler: function(){ - Ext.debug.console.jsonData = []; - Ext.debug.console.refresh(); - } - }); - - var treeEl = ilayout.main.getEl(); - // create main inspector toolbar - var tb = ilayout.tbar; - - var inspectIgnore, inspecting; - - function inspectListener(e, t){ - if(!inspectIgnore.contains(e.getPoint())){ - findNode(t); - } - } - - function stopInspecting(e, t){ - if(!inspectIgnore.contains(e.getPoint())){ - inspect.toggle(false); - if(findNode(t) !== false){ - e.stopEvent(); - } - } - } - - function stopInspectingEsc(e, t){ - if(e.getKey() == e.ESC){ - inspect.toggle(false); - } - } - - var inspect = tb.addButton({ - text: 'Inspect', - enableToggle: true, - pressed:false, - toggleHandler: function(n, pressed){ - var d = Ext.get(document); - if(pressed){ - d.on('mouseover', inspectListener, window, {buffer:50}); - d.on('mousedown', stopInspecting); - d.on('keydown', stopInspectingEsc); - inspectIgnore = dlg.el.getRegion(); - inspecting = true; - }else{ - d.un('mouseover', inspectListener); - d.un('mousedown', stopInspecting); - d.on('keydown', stopInspectingEsc); - inspecting = false; - var n = tree.getSelectionModel().getSelectedNode(); - if(n && n.htmlNode){ - onNodeSelect(tree, n, false); - } - } - } - }); - - tb.addSeparator(); - - var frameEl = tb.addButton({ - text: 'Highlight Selection', - enableToggle: true, - pressed:false, - toggleHandler: function(n, pressed){ - var n = tree.getSelectionModel().getSelectedNode(); - if(n && n.htmlNode){ - n[pressed ? 'frame' : 'unframe'](); - } - } - }); - - tb.addSeparator(); - - var reload = tb.addButton({ - text: 'Refresh Children', - disabled:true, - handler: function(){ - var n = tree.getSelectionModel().getSelectedNode(); - if(n && n.reload){ - n.reload(); - } - } - }); - - tb.add( '-', { - text: 'Collapse All', - handler: function(){ - tree.root.collapse(true); - } - }); - - // perform the main layout - mainLayout.endUpdate(); - - mainLayout.getRegion('center').showPanel(0); - - stylesGrid.on('propertychange', function(s, name, value){ - var node = stylesGrid.treeNode; - if(styles){ - node.htmlNode.style[name] = value; - }else{ - node.htmlNode[name] = value; - } - node.refresh(true); - }); - - // Create the style toolbar - var stb = new Ext.Toolbar(stylesGrid.view.getHeaderPanel(true)); - - var swap = stb.addButton({ - text: 'DOM Attributes', - menu: { - items: [ - new Ext.menu.CheckItem({id:'dom', text:'DOM Attributes', checked: true, group:'xdb-styles'}), - new Ext.menu.CheckItem({id:'styles', text:'CSS Properties', group:'xdb-styles'}) - ] - } - }); - - swap.menu.on('click', function(){ - styles = swap.menu.items.get('styles').checked; - showAll[styles? 'show' : 'hide'](); - swap.setText(styles ? 'CSS Properties' : 'DOM Attributes'); - var n = tree.getSelectionModel().getSelectedNode(); - if(n){ - onNodeSelect(tree, n); - } - }); - - var addStyle = stb.addButton({ - text: 'Add', - disabled: true, - handler: function(){ - Ext.MessageBox.prompt('Add Property', 'Property Name:', function(btn, v){ - // store.store is disgusting TODO: clean up the API - var store = stylesGrid.store.store; - if(btn == 'ok' && v && !store.getById(v)){ - var r = new Ext.grid.PropertyRecord({name:v, value: ''}, v); - store.add(r); - stylesGrid.startEditing(store.getCount()-1, 1); - } - }); - } - }); - - var showAll = stb.addButton({ - text: 'Computed Styles', - hidden: true, - pressed: false, - enableToggle: true, - toggleHandler: function(){ - var n = tree.getSelectionModel().getSelectedNode(); - if(n){ - onNodeSelect(tree, n); - } - } - }); - - // tree related stuff - var styles = false, hnode; - var nonSpace = /^\s*$/; - var html = Ext.util.Format.htmlEncode; - var ellipsis = Ext.util.Format.ellipsis; - var styleRe = /\s?([a-z\-]*)\:([^;]*)(?:[;\s\n\r]*)/gi; - - function findNode(n){ - if(!n || n.nodeType != 1 || n == document.body || n == document){ - return false; - } - var pn = [n], p = n; - while((p = p.parentNode) && p.nodeType == 1 && p.tagName.toUpperCase() != 'HTML'){ - pn.unshift(p); - } - var cn = hnode; - for(var i = 0, len = pn.length; i < len; i++){ - cn.expand(); - cn = cn.findChild('htmlNode', pn[i]); - if(!cn){ // in this dialog? - return false; - } - } - cn.select(); - var a = cn.ui.anchor; - treeEl.dom.scrollTop = Math.max(0 ,a.offsetTop-10); - //treeEl.dom.scrollLeft = Math.max(0 ,a.offsetLeft-10); no likey - cn.highlight(); - return true; - } - - function nodeTitle(n){ - var s = n.tagName; - if(n.id){ - s += '#'+n.id; - }else if(n.className){ - s += '.'+n.className; - } - return s; - } - - function onNodeSelect(t, n, last){ - if(last && last.unframe){ - last.unframe(); - } - var props = {}; - if(n && n.htmlNode){ - if(frameEl.pressed){ - n.frame(); - } - if(inspecting){ - return; - } - addStyle.enable(); - reload.setDisabled(n.leaf); - var dom = n.htmlNode; - stylePanel.setTitle(nodeTitle(dom)); - if(styles && !showAll.pressed){ - var s = dom.style ? dom.style.cssText : ''; - if(s){ - var m; - while ((m = styleRe.exec(s)) != null){ - props[m[1].toLowerCase()] = m[2]; - } - } - }else if(styles){ - var cl = Ext.debug.cssList; - var s = dom.style, fly = Ext.fly(dom); - if(s){ - for(var i = 0, len = cl.length; i' + ellipsis(html(String(c.nodeValue)), 35) + '', - cls: 'x-tree-noicon' - })); - } - } - cb(); - }; - - var tree = new Ext.tree.TreePanel(treeEl, { - enableDD:false , - loader: loader, - lines:false, - rootVisible:false, - animate:false, - hlColor:'ffff9c' - }); - tree.getSelectionModel().on('selectionchange', onNodeSelect, null, {buffer:250}); - - var root = tree.setRootNode(new Ext.tree.TreeNode('Ext')); - - hnode = root.appendChild(new Ext.debug.HtmlNode( - document.getElementsByTagName('html')[0] - )); - - tree.render(); - - Ext.debug.console = new Ext.JsonView(clayout.main.getEl(), - '
        > {msg}
        '); - Ext.debug.console.jsonData = []; - - Ext.debug.dialog = dlg; - }, - - show : function(){ - var d = Ext.debug; - if(!d.dialog){ - d.init(); - } - if(!d.dialog.isVisible()){ - d.dialog.show(); - } - }, - - hide : function(){ - if(Ext.debug.dialog){ - Ext.debug.dialog.hide(); - } - }, - - /** - * Debugging function. Prints all arguments to a resizable, movable, scrolling region without - * the need to include separate js or css. Double click it to hide it. - * @param {Mixed} arg1 - * @param {Mixed} arg2 - * @param {Mixed} etc - * @method print - */ - log : function(arg1, arg2, etc){ - Ext.debug.show(); - var m = ""; - for(var i = 0, len = arguments.length; i < len; i++){ - m += (i == 0 ? "" : ", ") + arguments[i]; - } - var cn = Ext.debug.console; - cn.jsonData.unshift({msg: m}); - cn.refresh(); - }, - - /** - * Applies the passed C#/DomHelper style format (e.g. "The variable {0} is equal to {1}") before calling Ext.debug.log - * @param {String} format - * @param {Mixed} arg1 - * @param {Mixed} arg2 - * @param {Mixed} etc - * @method printf - */ - logf : function(format, arg1, arg2, etc){ - Ext.debug.log(String.format.apply(String, arguments)); - }, - - /** - * Dumps an object to Ext.debug.log - * @param {Object} o - * @method dump - */ - dump : function(o){ - if(typeof o == 'string' || typeof o == 'number' || typeof o == 'undefined' || o instanceof Date){ - Ext.debug.log(o); - }else if(!o){ - Ext.debug.log("null"); - }else if(typeof o != "object"){ - Ext.debug.log('Unknown return type'); - }else if(o instanceof Array){ - Ext.debug.log('['+o.join(',')+']'); - }else{ - var b = ["{\n"]; - for(var key in o){ - var to = typeof o[key]; - if(to != "function" && to != "object"){ - b.push(String.format(" {0}: {1},\n", key, o[key])); - } - } - var s = b.join(""); - if(s.length > 3){ - s = s.substr(0, s.length-2); - } - Ext.debug.log(s + "\n}"); - } - }, - - _timers : {}, - /** - * Starts a timer. - * @param {String} name (optional) - * @method timer - */ - time : function(name){ - name = name || "def"; - Ext._timers[name] = new Date().getTime(); - }, - - /** - * Ends a timer, returns the results (formatted "{1} ms") and optionally prints them to Ext.print() - * @param {String} name (optional) - * @param {Boolean} printResults (optional) false to stop printing the results to Ext.print - * @method timerEnd - */ - timeEnd : function(name, printResults){ - var t = new Date().getTime(); - name = name || "def"; - var v = String.format("{0} ms", t-Ext._timers[name]); - Ext._timers[name] = new Date().getTime(); - if(printResults !== false){ - Ext.debug.log('Timer ' + (name == "def" ? v : name + ": " + v)); - } - return v; - } -}; - -// highly unusual class declaration -Ext.debug.HtmlNode = function(){ - var html = Ext.util.Format.htmlEncode; - var ellipsis = Ext.util.Format.ellipsis; - var nonSpace = /^\s*$/; - - var attrs = [ - {n: 'id', v: 'id'}, - {n: 'className', v: 'class'}, - {n: 'name', v: 'name'}, - {n: 'type', v: 'type'}, - {n: 'src', v: 'src'}, - {n: 'href', v: 'href'} - ]; - - function hasChild(n){ - for(var i = 0, c; c = n.childNodes[i]; i++){ - if(c.nodeType == 1){ - return true; - } - } - return false; - } - - function renderNode(n, leaf){ - var tag = n.tagName.toLowerCase(); - var s = '<' + tag; - for(var i = 0, len = attrs.length; i < len; i++){ - var a = attrs[i]; - var v = n[a.n]; - if(v && !nonSpace.test(v)){ - s += ' ' + a.v + '="' + html(v) +'"'; - } - } - var style = n.style ? n.style.cssText : ''; - if(style){ - s += ' style="' + html(style.toLowerCase()) +'"'; - } - if(leaf && n.childNodes.length > 0){ - s+='>' + ellipsis(html(String(n.innerHTML)), 35) + '</'+tag+'>'; - }else if(leaf){ - s += ' />'; - }else{ - s += '>'; - } - return s; - } - - var HtmlNode = function(n){ - var leaf = !hasChild(n); - this.htmlNode = n; - this.tagName = n.tagName.toLowerCase(); - var attr = { - text : renderNode(n, leaf), - leaf : leaf, - cls: 'x-tree-noicon' - }; - HtmlNode.superclass.constructor.call(this, attr); - this.attributes.htmlNode = n; // for searching - if(!leaf){ - this.on('expand', this.onExpand, this); - this.on('collapse', this.onCollapse, this); - } - }; - - - Ext.extend(HtmlNode, Ext.tree.AsyncTreeNode, { - cls: 'x-tree-noicon', - preventHScroll: true, - refresh : function(highlight){ - var leaf = !hasChild(this.htmlNode); - this.setText(renderNode(this.htmlNode, leaf)); - if(highlight){ - Ext.fly(this.ui.textNode).highlight(); - } - }, - - onExpand : function(){ - if(!this.closeNode && this.parentNode){ - this.closeNode = this.parentNode.insertBefore(new Ext.tree.TreeNode({ - text:'</' + this.tagName + '>', - cls: 'x-tree-noicon' - }), this.nextSibling); - }else if(this.closeNode){ - this.closeNode.ui.show(); - } - }, - - onCollapse : function(){ - if(this.closeNode){ - this.closeNode.ui.hide(); - } - }, - - render : function(bulkRender){ - HtmlNode.superclass.render.call(this, bulkRender); - }, - - highlightNode : function(){ - //Ext.fly(this.htmlNode).highlight(); - }, - - highlight : function(){ - //Ext.fly(this.ui.textNode).highlight(); - }, - - frame : function(){ - this.htmlNode.style.border = '1px solid #0000ff'; - //this.highlightNode(); - }, - - unframe : function(){ - //Ext.fly(this.htmlNode).removeClass('x-debug-frame'); - this.htmlNode.style.border = ''; - } - }); - - return HtmlNode; -}(); - -// subclass for the standard layout panels -Ext.debug.InnerLayout = function(id, w, cfg){ - // console layout - var el = Ext.DomHelper.append(document.body, {id:id}); - var layout = new Ext.BorderLayout(el, { - north: { - initialSize:28 - }, - center: { - titlebar: false - }, - east: { - split:true, - initialSize:w, - titlebar:true - } - }); - Ext.debug.InnerLayout.superclass.constructor.call(this, layout, cfg); - - layout.beginUpdate(); - - var tbPanel = layout.add('north', new Ext.ContentPanel({ - autoCreate:true, fitToFrame:true})); - - this.main = layout.add('center', new Ext.ContentPanel({ - autoCreate:true, fitToFrame:true, autoScroll:true})); - - this.tbar = new Ext.Toolbar(tbPanel.el); - - var mtbEl = tbPanel.resizeEl = tbPanel.el.child('div.x-toolbar'); - mtbEl.setStyle('border-bottom', '0 none'); - - layout.endUpdate(true); -}; - -Ext.extend(Ext.debug.InnerLayout, Ext.NestedLayoutPanel, { - add : function(){ - return this.layout.add.apply(this.layout, arguments); - } -}); - -Ext.debug.cssList = ['background-color','border','border-color','border-spacing', -'border-style','border-top','border-right','border-bottom','border-left','border-top-color', -'border-right-color','border-bottom-color','border-left-color','border-top-width','border-right-width', -'border-bottom-width','border-left-width','border-width','bottom','color','font-size','font-size-adjust', -'font-stretch','font-style','height','left','letter-spacing','line-height','margin','margin-top', -'margin-right','margin-bottom','margin-left','marker-offset','max-height','max-width','min-height', -'min-width','orphans','outline','outline-color','outline-style','outline-width','overflow','padding', -'padding-top','padding-right','padding-bottom','padding-left','quotes','right','size','text-indent', -'top','width','word-spacing','z-index','opacity','outline-offset']; - -if(typeof console == 'undefined'){ - console = Ext.debug; -} -/* -if(Ext.isSafari || Ext.isIE || Ext.isOpera){ - window.onerror = function(msg, url, line){ - Ext.log.apply(Ext, arguments); - }; -}*/ - -// attach shortcut key -Ext.EventManager.on(window, 'load', function(){ - Ext.get(document).on('keydown', function(e){ - if(e.ctrlKey && e.shiftKey && e.getKey() == e.HOME){ - Ext.debug.show(); - } - }); -}); - -// backwards compat -Ext.print = Ext.log = Ext.debug.log; -Ext.printf = Ext.logf = Ext.debug.logf; -Ext.dump = Ext.debug.dump; -Ext.timer = Ext.debug.time; -Ext.timerEnd = Ext.debug.timeEnd; diff --git a/www/extras/extjs/source/ext.jsb b/www/extras/extjs/source/ext.jsb deleted file mode 100644 index 7e88bdff1..000000000 --- a/www/extras/extjs/source/ext.jsb +++ /dev/null @@ -1,592 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/www/extras/extjs/source/legacy/Actor.js b/www/extras/extjs/source/legacy/Actor.js deleted file mode 100644 index c075d8b91..000000000 --- a/www/extras/extjs/source/legacy/Actor.js +++ /dev/null @@ -1,697 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - - -/** - * @class Ext.Actor - * Provides support for syncing and chaining of Element Yahoo! UI based animation and some common effects. Actors support "self-play" without an Animator.

        - * Note: Along with the animation methods defined below, this class inherits and captures all of the "set" or animation methods of {@link Ext.Element}. "get" methods are not captured and execute immediately. - *

        Usage:
        - *
        
        - * var actor = new Ext.Actor("myElementId");
        - * actor.startCapture(true);
        - * actor.moveTo(100, 100, true);
        - * actor.squish();
        - * actor.play();
        - * 
        - * // or to start capturing immediately, with no Animator (the null second param) - *
        - * var actor = new Ext.Actor("myElementId", null, true); - * actor.moveTo(100, 100, true); - * actor.squish(); - * actor.play(); - *
        - * @extends Ext.Element - * @requires Ext.Element - * @requires YAHOO.util.Dom - * @requires YAHOO.util.Event - * @requires YAHOO.util.CustomEvent - * @requires YAHOO.util.Anim - * @requires YAHOO.util.ColorAnim - * @requires YAHOO.util.Motion - * @className Ext.Actor - * @constructor - * Create new Actor. - * @param {String/HTMLElement} el The dom element or element id - * @param {Ext.Animator} animator (optional) The Animator that will capture this Actor's actions - * @param {Boolean} selfCapture (optional) Whether this actor should capture its own actions to support self playback without an animator (defaults to false) - */ -Ext.Actor = function(element, animator, selfCapture){ - this.el = Ext.get(element); // cache el object for playback - Ext.Actor.superclass.constructor.call(this, this.el.dom, true); - this.onCapture = new Ext.util.Event(); - if(animator){ - /** - * The animator used to sync this actor with other actors - * @member Ext.Actor - */ - animator.addActor(this); - } - /** - * Whether this actor is currently capturing - * @member Ext.Actor - */ - this.capturing = selfCapture; - this.playlist = selfCapture ? new Ext.Animator.AnimSequence() : null; -}; - -(function(){ - -/** @ignore */ -var qa = function(method, animParam, onParam){ - return function(){ - if(!this.capturing){ - return method.apply(this, arguments); - } - var args = Array.prototype.slice.call(arguments, 0); - if(args[animParam] === true){ - return this.capture(new Ext.Actor.AsyncAction(this, method, args, onParam)); - }else{ - return this.capture(new Ext.Actor.Action(this, method, args)); - } - }; -}; - -/** @ignore */ -var q = function(method){ - return function(){ - if(!this.capturing){ - return method.apply(this, arguments); - } - var args = Array.prototype.slice.call(arguments, 0); - return this.capture(new Ext.Actor.Action(this, method, args)); - }; -}; - -var spr = Ext.Element.prototype; - -Ext.extend(Ext.Actor, Ext.Element, { - - /** - * Captures an action for this actor. Generally called internally but can be called directly. - * @param {Ext.Actor.Action} action - */ - capture : function(action){ - if(this.playlist != null){ - this.playlist.add(action); - } - this.onCapture.fire(this, action); - return this; - }, - // basic - setVisibilityMode : q(spr.setVisibilityMode), - enableDisplayMode : q(spr.enableDisplayMode), - focus : q(spr.focus), - addClass : q(spr.addClass), - removeClass : q(spr.removeClass), - replaceClass : q(spr.replaceClass), - setStyle : q(spr.setStyle), - setLeft : q(spr.setLeft), - setTop : q(spr.setTop), - clearPositioning : q(spr.clearPositioning), - setPositioning : q(spr.setPositioning), - clip : q(spr.clip), - unclip : q(spr.unclip), - clearOpacity : q(spr.clearOpacity), - update : q(spr.update), - remove : q(spr.remove), - fitToParent : q(spr.fitToParent), - appendChild : q(spr.appendChild), - createChild : q(spr.createChild), - appendTo : q(spr.appendTo), - insertBefore : q(spr.insertBefore), - insertAfter : q(spr.insertAfter), - wrap : q(spr.wrap), - replace : q(spr.replace), - insertHtml : q(spr.insertHtml), - set : q(spr.set), - // anims - setVisible : qa(spr.setVisible, 1, 3), - toggle : qa(spr.toggle, 0, 2), - setXY : qa(spr.setXY, 1, 3), - setLocation : qa(spr.setLocation, 2, 4), - setWidth : qa(spr.setWidth, 1, 3), - setHeight : qa(spr.setHeight, 1, 3), - setSize : qa(spr.setSize, 2, 4), - setBounds : qa(spr.setBounds, 4, 6), - setOpacity : qa(spr.setOpacity, 1, 3), - moveTo : qa(spr.moveTo, 2, 4), - move : qa(spr.move, 2, 4), - alignTo : qa(spr.alignTo, 3, 5), - hide : qa(spr.hide, 0, 2), - show : qa(spr.show, 0, 2), - setBox : qa(spr.setBox, 2, 4), - autoHeight : qa(spr.autoHeight, 0, 2), - setX : qa(spr.setX, 1, 3), - setY : qa(spr.setY, 1, 3), - - load : function(){ - if(!this.capturing){ - return spr.load.apply(this, arguments); - } - var args = Array.prototype.slice.call(arguments, 0); - return this.capture(new Ext.Actor.AsyncAction(this, spr.load, - args, 2)); - }, - - animate : function(args, duration, onComplete, easing, animType){ - if(!this.capturing){ - return spr.animate.apply(this, arguments); - } - return this.capture(new Ext.Actor.AsyncAction(this, spr.animate, - [args, duration, onComplete, easing, animType], 2)); - }, - - /** - * Start self capturing calls on this Actor. All subsequent calls are captured and executed when play() is called. - */ - startCapture : function(){ - this.capturing = true; - this.playlist = new Ext.Animator.AnimSequence(); - }, - - /** - * Stop self capturing calls on this Actor. - */ - stopCapture : function(){ - this.capturing = false; - }, - - /** - * Clears any calls that have been self captured. - */ - clear : function(){ - this.playlist = new Ext.Animator.AnimSequence(); - }, - - /** - * Starts playback of self captured calls. - * @param {Function} oncomplete (optional) Callback to execute when playback has completed - */ - play : function(oncomplete){ - this.capturing = false; - if(this.playlist){ - this.playlist.play(oncomplete); - } - }, - /** - * Stops the sequence if this actor is being used without an animator - */ - stop : function(){ - if(this.playlist.isPlaying()){ - this.playlist.stop(); - } - }, - /** - * Returns true if this actor is animated and not part of an animator - * @return {Boolean} - */ - isPlaying : function(){ - return this.playlist.isPlaying(); - }, - /** - * Capture a function call. - * @param {Function} fcn The function to call - * @param {Array} args (optional) The arguments to call the function with - * @param {Object} scope (optional) The scope of the function - */ - addCall : function(fcn, args, scope){ - if(!this.capturing){ - fcn.apply(scope || this, args || []); - }else{ - this.capture(new Ext.Actor.Action(scope, fcn, args || [])); - } - }, - - /** - * Capture an async function call. - * @param {Function} fcn The function to call - * @param {Number} callbackIndex The index of the callback parameter on the passed function. A CALLBACK IS REQUIRED. - * @param {Array} args The arguments to call the function with - * @param {Object} scope (optional) The scope of the function - */ - addAsyncCall : function(fcn, callbackIndex, args, scope){ - if(!this.capturing){ - fcn.apply(scope || this, args || []); - }else{ - this.capture(new Ext.Actor.AsyncAction(scope, fcn, args || [], callbackIndex)); - } - }, - - /** - * Capture a pause (in seconds). - * @param {Number} seconds The seconds to pause - */ - pause : function(seconds){ - this.capture(new Ext.Actor.PauseAction(seconds)); - }, - - /** - * Shake this element from side to side - */ - shake : function(){ - this.move("left", 20, true, .05); - this.move("right", 40, true, .05); - this.move("left", 40, true, .05); - this.move("right", 20, true, .05); - }, - - /** - * Bounce this element from up and down - */ - bounce : function(){ - this.move("up", 20, true, .05); - this.move("down", 40, true, .05); - this.move("up", 40, true, .05); - this.move("down", 20, true, .05); - }, - - /** - * Show the element using a "blinds" effect - * @param {String} anchor The part of the element that it should appear to exapand from. - The short/long options currently are t/top, l/left - * @param {Number} newSize (optional) The size to animate to. (Default to current size) - * @param {Float} duration (optional) How long the effect lasts (in seconds) - * @param {Function} easing (optional) YAHOO.util.Easing method to use. (Defaults to YAHOO.util.Easing.easeOut) - */ - blindShow : function(anchor, newSize, duration, easing){ - var size = this.getSize(); - this.clip(); - anchor = anchor.toLowerCase(); - switch(anchor){ - case "t": - case "top": - this.setHeight(1); - this.setVisible(true); - this.setHeight(newSize || size.height, true, duration || .5, null, easing || YAHOO.util.Easing.easeOut); - break; - case "l": - case "left": - this.setWidth(1); - this.setVisible(true); - this.setWidth(newSize || size.width, true, duration || .5, null, easing || YAHOO.util.Easing.easeOut); - break; - } - this.unclip(); - return size; - }, - - /** - * Hide the element using a "blinds" effect - * @param {String} anchor The part of the element that it should appear to collapse to. - The short/long options are t/top, l/left, b/bottom, r/right. - * @param {Float} duration (optional) How long the effect lasts (in seconds) - * @param {Function} easing (optional) YAHOO.util.Easing method to use. (Defaults to YAHOO.util.Easing.easeIn) - */ - blindHide : function(anchor, duration, easing){ - var size = this.getSize(); - this.clip(); - anchor = anchor.toLowerCase(); - switch(anchor){ - case "t": - case "top": - this.setSize(size.width, 1, true, duration || .5, null, easing || YAHOO.util.Easing.easeIn); - this.setVisible(false); - break; - case "l": - case "left": - this.setSize(1, size.height, true, duration || .5, null, easing || YAHOO.util.Easing.easeIn); - this.setVisible(false); - break; - case "r": - case "right": - this.animate({width: {to: 1}, points: {by: [size.width, 0]}}, - duration || .5, null, YAHOO.util.Easing.easeIn, YAHOO.util.Motion); - this.setVisible(false); - break; - case "b": - case "bottom": - this.animate({height: {to: 1}, points: {by: [0, size.height]}}, - duration || .5, null, YAHOO.util.Easing.easeIn, YAHOO.util.Motion); - this.setVisible(false); - break; - } - return size; - }, - - /** - * Show the element using a "slide in" effect - In order for this effect to work the element MUST have a child element container that can be "slid" otherwise a blindShow effect is rendered. - * @param {String} anchor The part of the element that it should appear to slide from. - The short/long options currently are t/top, l/left - * @param {Number} newSize (optional) The size to animate to. (Default to current size) - * @param {Float} duration (optional) How long the effect lasts (in seconds) - * @param {Function} easing (optional) YAHOO.util.Easing method to use. (Defaults to YAHOO.util.Easing.easeOuth) - */ - slideShow : function(anchor, newSize, duration, easing, clearPositioning){ - var size = this.getSize(); - this.clip(); - var firstChild = this.dom.firstChild; - if(!firstChild || (firstChild.nodeName && "#TEXT" == firstChild.nodeName.toUpperCase())) { // can't do a slide with only a textnode - this.blindShow(anchor, newSize, duration, easing); - return; - } - var child = Ext.get(firstChild, true); - var pos = child.getPositioning(); - this.addCall(child.position, ["absolute"], child); - this.setVisible(true); - anchor = anchor.toLowerCase(); - switch(anchor){ - case "t": - case "top": - this.addCall(child.setStyle, ["right", ""], child); - this.addCall(child.setStyle, ["top", ""], child); - this.addCall(child.setStyle, ["left", "0px"], child); - this.addCall(child.setStyle, ["bottom", "0px"], child); - this.setHeight(1); - this.setHeight(newSize || size.height, true, duration || .5, null, easing || YAHOO.util.Easing.easeOut); - break; - case "l": - case "left": - this.addCall(child.setStyle, ["left", ""], child); - this.addCall(child.setStyle, ["bottom", ""], child); - this.addCall(child.setStyle, ["right", "0px"], child); - this.addCall(child.setStyle, ["top", "0px"], child); - this.setWidth(1); - this.setWidth(newSize || size.width, true, duration || .5, null, easing || YAHOO.util.Easing.easeOut); - break; - case "r": - case "right": - this.addCall(child.setStyle, ["left", "0px"], child); - this.addCall(child.setStyle, ["top", "0px"], child); - this.addCall(child.setStyle, ["right", ""], child); - this.addCall(child.setStyle, ["bottom", ""], child); - this.setWidth(1); - this.setWidth(newSize || size.width, true, duration || .5, null, easing || YAHOO.util.Easing.easeOut); - break; - case "b": - case "bottom": - this.addCall(child.setStyle, ["right", ""], child); - this.addCall(child.setStyle, ["top", "0px"], child); - this.addCall(child.setStyle, ["left", "0px"], child); - this.addCall(child.setStyle, ["bottom", ""], child); - this.setHeight(1); - this.setHeight(newSize || size.height, true, duration || .5, null, easing || YAHOO.util.Easing.easeOut); - break; - } - if(clearPositioning !== false){ - this.addCall(child.setPositioning, [pos], child); - } - this.unclip(); - return size; - }, - - /** - * Hide the element using a "slide in" effect - In order for this effect to work the element MUST have a child element container that can be "slid" otherwise a blindHide effect is rendered. - * @param {String} anchor The part of the element that it should appear to slide to. - The short/long options are t/top, l/left, b/bottom, r/right. - * @param {Float} duration (optional) How long the effect lasts (in seconds) - * @param {Function} easing (optional) YAHOO.util.Easing method to use. (Defaults to YAHOO.util.Easing.easeIn) - */ - slideHide : function(anchor, duration, easing){ - var size = this.getSize(); - this.clip(); - var firstChild = this.dom.firstChild; - if(!firstChild || (firstChild.nodeName && "#TEXT" == firstChild.nodeName.toUpperCase())) { // can't do a slide with only a textnode - this.blindHide(anchor, duration, easing); - return; - } - var child = Ext.get(firstChild, true); - var pos = child.getPositioning(); - this.addCall(child.position, ["absolute"], child); - anchor = anchor.toLowerCase(); - switch(anchor){ - case "t": - case "top": - this.addCall(child.setStyle, ["right", ""], child); - this.addCall(child.setStyle, ["top", ""], child); - this.addCall(child.setStyle, ["left", "0px"], child); - this.addCall(child.setStyle, ["bottom", "0px"], child); - this.setSize(size.width, 1, true, duration || .5, null, easing || YAHOO.util.Easing.easeIn); - this.setVisible(false); - break; - case "l": - case "left": - this.addCall(child.setStyle, ["left", ""], child); - this.addCall(child.setStyle, ["bottom", ""], child); - this.addCall(child.setStyle, ["right", "0px"], child); - this.addCall(child.setStyle, ["top", "0px"], child); - this.setSize(1, size.height, true, duration || .5, null, easing || YAHOO.util.Easing.easeIn); - this.setVisible(false); - break; - case "r": - case "right": - this.addCall(child.setStyle, ["right", ""], child); - this.addCall(child.setStyle, ["bottom", ""], child); - this.addCall(child.setStyle, ["left", "0px"], child); - this.addCall(child.setStyle, ["top", "0px"], child); - this.setSize(1, size.height, true, duration || .5, null, easing || YAHOO.util.Easing.easeIn); - this.setVisible(false); - break; - case "b": - case "bottom": - this.addCall(child.setStyle, ["right", ""], child); - this.addCall(child.setStyle, ["top", "0px"], child); - this.addCall(child.setStyle, ["left", "0px"], child); - this.addCall(child.setStyle, ["bottom", ""], child); - this.setSize(size.width, 1, true, duration || .5, null, easing || YAHOO.util.Easing.easeIn); - this.setVisible(false); - break; - } - this.addCall(child.setPositioning, [pos], child); - return size; - }, - - /** - * Hide the element by "squishing" it into the corner - * @param {Float} duration (optional) How long the effect lasts (in seconds) - */ - squish : function(duration){ - var size = this.getSize(); - this.clip(); - this.setSize(1, 1, true, duration || .5); - this.setVisible(false); - return size; - }, - - /** - * Fade an element in - * @param {Float} duration (optional) How long the effect lasts (in seconds) - */ - appear : function(duration){ - this.setVisible(true, true, duration); - return this; - }, - - /** - * Fade an element out - * @param {Float} duration (optional) How long the effect lasts (in seconds) - */ - fade : function(duration){ - this.setVisible(false, true, duration); - return this; - }, - - /** - * Blink the element as if it was clicked and then collapse on its center - * @param {Float} duration (optional) How long the effect lasts (in seconds) - */ - switchOff : function(duration){ - this.clip(); - this.setOpacity(0.3, true, 0.1); - this.clearOpacity(); - this.setVisible(true); - this.pause(0.1); - this.animate({height:{to:1}, points:{by:[0, this.getHeight() / 2]}}, duration || 0.3, null, YAHOO.util.Easing.easeIn, YAHOO.util.Motion); - this.setVisible(false); - return this; - }, - - /** - * Fade the element in and out the specified amount of times - * @param {Number} count (optional) How many times to pulse (Defaults to 3) - * @param {Float} duration (optional) How long the effect lasts (in seconds) - */ - pulsate : function(count, duration){ - count = count || 3; - for(var i = 0; i < count; i++){ - this.toggle(true, duration || .25); - this.toggle(true, duration || .25); - } - return this; - }, - - /** - * Fade the element as it is falling from its current position - * @param {Float} duration (optional) How long the effect lasts (in seconds) - */ - dropOut : function(duration){ - this.animate({opacity: {to: 0}, points: {by: [0, this.getHeight()]}}, - duration || .5, null, YAHOO.util.Easing.easeIn, YAHOO.util.Motion); - this.setVisible(false); - return this; - }, - - /** - * Hide the element in a way that it appears as if it is flying off the screen - * @param {String} anchor The part of the page that the element should appear to move to. - The short/long options are t/top, l/left, b/bottom, r/right, tl/top-left, - tr/top-right, bl/bottom-left or br/bottom-right. - * @param {Float} duration (optional) How long the effect lasts (in seconds) - * @param {Function} easing (optional) YAHOO.util.Easing method to use. (Defaults to YAHOO.util.Easing.easeIn) - */ - moveOut : function(anchor, duration, easing){ - var Y = YAHOO.util; - var vw = Y.Dom.getViewportWidth(); - var vh = Y.Dom.getViewportHeight(); - var cpoints = this.getCenterXY(); - var centerX = cpoints[0]; - var centerY = cpoints[1]; - anchor = anchor.toLowerCase(); - var p; - switch(anchor){ - case "t": - case "top": - p = [centerX, -this.getHeight()]; - break; - case "l": - case "left": - p = [-this.getWidth(), centerY]; - break; - case "r": - case "right": - p = [vw+this.getWidth(), centerY]; - break; - case "b": - case "bottom": - p = [centerX, vh+this.getHeight()]; - break; - case "tl": - case "top-left": - p = [-this.getWidth(), -this.getHeight()]; - break; - case "bl": - case "bottom-left": - p = [-this.getWidth(), vh+this.getHeight()]; - break; - case "br": - case "bottom-right": - p = [vw+this.getWidth(), vh+this.getHeight()]; - break; - case "tr": - case "top-right": - p = [vw+this.getWidth(), -this.getHeight()]; - break; - } - this.moveTo(p[0], p[1], true, duration || .35, null, easing || Y.Easing.easeIn); - this.setVisible(false); - return this; - }, - - /** - * Show the element in a way that it appears as if it is flying onto the screen - * @param {String} anchor The part of the page that the element should appear to move from. - The short/long options are t/top, l/left, b/bottom, r/right, tl/top-left, - tr/top-right, bl/bottom-left or br/bottom-right. - * @param {Array} to (optional) Array of x and y position to move to like [x, y] (Defaults to center screen) - * @param {Float} duration (optional) How long the effect lasts (in seconds) - * @param {Function} easing (optional) YAHOO.util.Easing method to use. (Defaults to YAHOO.util.Easing.easeOut) - */ - moveIn : function(anchor, to, duration, easing){ - to = to || this.getCenterXY(); - this.moveOut(anchor, .01); - this.setVisible(true); - this.setXY(to, true, duration || .35, null, easing || YAHOO.util.Easing.easeOut); - return this; - }, - /** - * Show a ripple of exploding, attenuating borders to draw attention to an Element. - * @param {Number} color (optional) The color of the border. - * @param {Number} count (optional) How many ripples. - * @param {Float} duration (optional) How long each ripple takes to expire - */ - frame : function(color, count, duration){ - color = color || "red"; - count = count || 3; - duration = duration || .5; - var frameFn = function(callback){ - var box = this.getBox(); - var animFn = function(){ - var proxy = this.createProxy({ - tag:"div", - style:{ - visbility:"hidden", - position:"absolute", - "z-index":"35000", // yee haw - border:"0px solid " + color - } - }); - var scale = proxy.isBorderBox() ? 2 : 1; - proxy.animate({ - top:{from:box.y, to:box.y - 20}, - left:{from:box.x, to:box.x - 20}, - borderWidth:{from:0, to:10}, - opacity:{from:1, to:0}, - height:{from:box.height, to:(box.height + (20*scale))}, - width:{from:box.width, to:(box.width + (20*scale))} - }, duration, function(){ - proxy.remove(); - }); - if(--count > 0){ - animFn.defer((duration/2)*1000, this); - }else{ - if(typeof callback == "function"){ - callback(); - } - } - } - animFn.call(this); - } - this.addAsyncCall(frameFn, 0, null, this); - return this; - } -}); - -})(); - -Ext.Actor.Action = function(actor, method, args){ - this.actor = actor; - this.method = method; - this.args = args; - } - -Ext.Actor.Action.prototype = { - play : function(onComplete){ - this.method.apply(this.actor || window, this.args); - onComplete(); - } -}; - - -Ext.Actor.AsyncAction = function(actor, method, args, onIndex){ - Ext.Actor.AsyncAction.superclass.constructor.call(this, actor, method, args); - this.onIndex = onIndex; - this.originalCallback = this.args[onIndex]; -} -Ext.extend(Ext.Actor.AsyncAction, Ext.Actor.Action, { - play : function(onComplete){ - var callbackArg = this.originalCallback ? - this.originalCallback.createSequence(onComplete) : onComplete; - this.args[this.onIndex] = callbackArg; - this.method.apply(this.actor, this.args); - } -}); - - -Ext.Actor.PauseAction = function(seconds){ - this.seconds = seconds; -}; -Ext.Actor.PauseAction.prototype = { - play : function(onComplete){ - setTimeout(onComplete, this.seconds * 1000); - } -}; \ No newline at end of file diff --git a/www/extras/extjs/source/legacy/Animator.js b/www/extras/extjs/source/legacy/Animator.js deleted file mode 100644 index 5535a8009..000000000 --- a/www/extras/extjs/source/legacy/Animator.js +++ /dev/null @@ -1,483 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.Animator - * Provides support for syncing animations for multiple {@link Ext.Actor}s.

        -*

        This example can be seen in action here -* by clicking on "Click here and I will point it out" at the end of the first paragraph.
        - *
        
        -var animator = new Ext.Animator();
        -var cursor = new Ext.Actor("cursor-img", animator);
        -var click = new Ext.Actor("click-img", animator);
        -var resize = new Ext.Actor("resize-img", animator);
        -
        -// start capturing
        -animator.startCapture();
        -
        -// these animations will be run in sequence
        -cursor.show();
        -cursor.moveTo(500,400);
        -cursor.moveTo(20, Ext.get("navbar").getY()+10, true, .75);
        -click.show();
        -click.alignTo(cursor, "tl", [-4, -4]);
        -
        -// Add an async function call, pass callback to argument 1
        -animator.addAsyncCall(Blog.navbar.undockDelegate, 1);
        -
        -// pause .5 seconds
        -animator.pause(.5);
        -
        -// again, these animations will be run in sequence
        -click.hide(true, .7);
        -cursor.alignTo("splitter", "tr", [0, +100], true, 1);
        -resize.alignTo("splitter", "tr", [-12, +100]);
        -
        -// start sync block: these animations will run at the same time
        -animator.beginSync();
        -cursor.hide();
        -resize.show();
        -animator.endSync();
        -
        -// play the captured animation sequences, call myCallback when done
        -animator.play(myCallback);
        - * 
        - * @requires Ext.Element - * @requires YAHOO.util.Dom - * @requires YAHOO.util.Event - * @requires YAHOO.util.CustomEvent - * @requires YAHOO.util.Anim - * @requires YAHOO.util.ColorAnim - * @requires YAHOO.util.Motion - * @constructor - * @param {String/HTMLElement} el The dom element or element id - * @param {Ext.Animator} animator (optional) The Animator that will capture this Actor's actions - * @param {Boolean} selfCapture (optional) Whether this actor should capture its own actions to support self playback without an animator (defaults to false) - */ - Ext.Animator = function(/*Actors...*/){ - this.actors = []; - this.playlist = new Ext.Animator.AnimSequence(); - this.captureDelegate = this.capture.createDelegate(this); - this.playDelegate = this.play.createDelegate(this); - this.syncing = false; - this.stopping = false; - this.playing = false; - for(var i = 0; i < arguments.length; i++){ - this.addActor(arguments[i]); - } - }; - - Ext.Animator.prototype = { - - capture : function(actor, action){ - if(this.syncing){ - if(!this.syncMap[actor.id]){ - this.syncMap[actor.id] = new Ext.Animator.AnimSequence(); - } - this.syncMap[actor.id].add(action); - }else{ - this.playlist.add(action); - } - }, - - /** - * Add an actor. The actor is also set to capturing = true. - * @param {Ext.Actor} actor - */ - addActor : function(actor){ - actor.onCapture.addListener(this.captureDelegate); - this.actors.push(actor); - }, - - - /** - * Start capturing actions on the added actors. - * @param {Boolean} clearPlaylist Whether to also create a new playlist - */ - startCapture : function(clearPlaylist){ - for(var i = 0; i < this.actors.length; i++){ - var a = this.actors[i]; - if(!this.isCapturing(a)){ - a.onCapture.addListener(this.captureDelegate); - } - a.capturing = true; - } - if(clearPlaylist){ - this.playlist = new Ext.Animator.AnimSequence(); - } - }, - - /** - * Checks whether this animator is listening to a specific actor. - * @param {Ext.Actor} actor - */ - isCapturing : function(actor){ - return actor.onCapture.isListening(this.captureDelegate); - }, - - /** - * Stop capturing on all added actors. - */ - stopCapture : function(){ - for(var i = 0; i < this.actors.length; i++){ - var a = this.actors[i]; - a.onCapture.removeListener(this.captureDelegate); - a.capturing = false; - } - }, - - /** - * Start a multi-actor sync block. By default all animations are run in sequence. While in the sync block - * each actor's own animations will still be sequenced, but all actors will animate at the same time. - */ - beginSync : function(){ - this.syncing = true; - this.syncMap = {}; - }, - - /** - * End the multi-actor sync block - */ - endSync : function(){ - this.syncing = false; - var composite = new Ext.Animator.CompositeSequence(); - for(key in this.syncMap){ - if(typeof this.syncMap[key] != "function"){ - composite.add(this.syncMap[key]); - } - } - this.playlist.add(composite); - this.syncMap = null; - }, - - /** - * Starts playback of the playlist, also stops any capturing. To start capturing again call {@link #startCapture}. - * @param {Function} oncomplete (optional) Callback to execute when playback has completed - */ - play : function(oncomplete){ - if(this.playing) return; // can't play the same animation twice at once - this.stopCapture(); - this.playlist.play(oncomplete); - }, - - /** - * Stop at the next available stopping point - */ - stop : function(){ - this.playlist.stop(); - }, - - /** - * Check if this animator is currently playing - */ - isPlaying : function(){ - return this.playlist.isPlaying(); - }, - /** - * Clear the playlist - */ - clear : function(){ - this.playlist = new Ext.Animator.AnimSequence(); - }, - - /** - * Add a function call to the playlist. - * @param {Function} fcn The function to call - * @param {Array} args The arguments to call the function with - * @param {Object} scope (optional) The scope of the function - */ - addCall : function(fcn, args, scope){ - this.playlist.add(new Ext.Actor.Action(scope, fcn, args || [])); - }, - - /** - * Add an async function call to the playlist. - * @param {Function} fcn The function to call - * @param {Number} callbackIndex The index of the callback parameter on the passed function. A CALLBACK IS REQUIRED. - * @param {Array} args The arguments to call the function with - * @param {Object} scope (optional) The scope of the function - */ - addAsyncCall : function(fcn, callbackIndex, args, scope){ - this.playlist.add(new Ext.Actor.AsyncAction(scope, fcn, args || [], callbackIndex)); - }, - - /** - * Add a pause to the playlist (in seconds) - * @param {Number} seconds The number of seconds to pause. - */ - pause : function(seconds){ - this.playlist.add(new Ext.Actor.PauseAction(seconds)); - } - - }; -/** - * Static function to build a AnimatorComposite from a css selector (requires Ext.Element.selectorFunction be defined) - * @param {String/Array} selector The css selector or an array of nodes to animate - * @method @static - */ -Ext.Animator.select = function(selector){ - var els; - if(typeof selector == "string"){ - els = Ext.Element.selectorFunction(selector); - }else if(selector instanceof Array){ - els = selector; - }else{ - throw "Invalid selector"; - } - return new Ext.AnimatorComposite(els); -}; -//var getActors = Ext.Animator.select; -Ext.actors = Ext.Animator.select; - -/** - * @class Ext.AnimatorComposite - * Composite class with synchronized animations. This is the class returned by getActors(selector) or Ext.Animator.select(). - */ -Ext.AnimatorComposite = function(els){ - this.animator = new Ext.Animator(); - this.addElements(els); - this.syncAnims = true; -}; -Ext.AnimatorComposite.prototype = { - isComposite: true, - /** - * Adds elements to this composite. - * @param {Array} els An array of elements to add - * @return {AnimatorComposite} this - */ - addElements : function(els){ - if(!els) return this; - var anim = this.animator; - for(var i = 0, len = els.length; i < len; i++) { - anim.addActor(new Ext.Actor(els[i])); - } - anim.startCapture(); - return this; - }, - /** - * Operations called after sequence() will be performed one by one on each element in this composite. - * @return {AnimatorComposite} this - */ - sequence : function(){ - this.syncAnims = false; - return this; - }, - /** - * Operations called after sync() will be performed at the same time on each element in this composite. - * @return {AnimatorComposite} this - */ - sync : function(){ - this.syncAnims = true; - return this; - }, - invoke : function(fn, args){ - var els = this.animator.actors; - if(this.syncAnims) this.animator.beginSync(); - for(var i = 0, len = els.length; i < len; i++) { - Ext.Actor.prototype[fn].apply(els[i], args); - } - if(this.syncAnims) this.animator.endSync(); - return this; - }, - /** - * Play the actions queued in this composite. - * @param {Function} callback (optional) callback is called when all animations have compelted - * @return {AnimatorComposite} this - */ - play : function(callback){ - this.animator.play(callback); - return this; - }, - /** - * Clear all actions in the queue. - * @param {Function} callback (optional) callback is called when all animations have compelted - * @return {AnimatorComposite} this - */ - reset : function(callback){ - this.animator.startCapture(true); - return this; - }, - /** - * Add a pause - * @param {Number} seconds - * @return {AnimatorComposite} this - */ - pause : function(seconds){ - this.animator.pause(seconds); - return this; - }, - /** - * Get the Ext.Animator that controls the animations for this composite. - * @return {Ext.Animator} - */ - getAnimator : function(){ - return this.animator; - }, - /** - * Calls the passed function passing (el, this, index) for each element in this composite. - * @param {Function} fn The function to call - * @param {Object} scope (optional) The this object (defaults to the element) - * @return {AnimatorComposite} this - */ - each : function(fn, scope){ - var els = this.animator.actors; - if(this.syncAnims) this.animator.beginSync(); - for(var i = 0, len = els.length; i < len; i++){ - fn.call(scope || els[i], els[i], this, i); - } - if(this.syncAnims) this.animator.endSync(); - return this; - }, - /** - * Add a function call to the playlist. - * @param {Function} fcn The function to call - * @param {Array} args (optional) The arguments to call the function with - * @param {Object} scope (optional) The scope of the function - * @return {AnimatorComposite} this - */ - addCall : function(fcn, args, scope){ - this.animator.addCall(fcn, args, scope); - return this; - }, - /** - * Add an async function call to the playlist. - * @param {Function} fcn The function to call - * @param {Number} callbackIndex The index of the callback parameter on the passed function. A CALLBACK IS REQUIRED. - * @param {Array} args (optional) The arguments to call the function with - * @param {Object} scope (optional) The scope of the function - * @return {AnimatorComposite} this - */ - addAsyncCall : function(fcn, callbackIndex, args, scope){ - this.animator.addAsyncCall(fcn, callbackIndex, args, scope); - return this; - } -}; -for(var fnName in Ext.Actor.prototype){ - if(typeof Ext.Actor.prototype[fnName] == "function"){ - Ext.CompositeElement.createCall(Ext.AnimatorComposite.prototype, fnName); - } -} - - -Ext.Animator.AnimSequence = function(){ - this.actions = []; - this.nextDelegate = this.next.createDelegate(this); - this.playDelegate = this.play.createDelegate(this); - this.oncomplete = null; - this.playing = false; - this.stopping = false; - this.actionIndex = -1; - }; - - Ext.Animator.AnimSequence.prototype = { - - add : function(action){ - this.actions.push(action); - }, - - next : function(){ - if(this.stopping){ - this.playing = false; - if(this.oncomplete){ - this.oncomplete(this, false); - } - return; - } - var nextAction = this.actions[++this.actionIndex]; - if(nextAction){ - nextAction.play(this.nextDelegate); - }else{ - this.playing = false; - if(this.oncomplete){ - this.oncomplete(this, true); - } - } - }, - - play : function(oncomplete){ - if(this.playing) return; // can't play the same sequence twice at once - this.oncomplete = oncomplete; - this.stopping = false; - this.playing = true; - this.actionIndex = -1; - this.next(); - }, - - stop : function(){ - this.stopping = true; - }, - - isPlaying : function(){ - return this.playing; - }, - - clear : function(){ - this.actions = []; - }, - - addCall : function(fcn, args, scope){ - this.actions.push(new Ext.Actor.Action(scope, fcn, args || [])); - }, - - addAsyncCall : function(fcn, callbackIndex, args, scope){ - this.actions.push(new Ext.Actor.AsyncAction(scope, fcn, args || [], callbackIndex)); - }, - - pause : function(seconds){ - this.actions.push(new Ext.Actor.PauseAction(seconds)); - } - - }; - -Ext.Animator.CompositeSequence = function(){ - this.sequences = []; - this.completed = 0; - this.trackDelegate = this.trackCompletion.createDelegate(this); -}; - -Ext.Animator.CompositeSequence.prototype = { - add : function(sequence){ - this.sequences.push(sequence); - }, - - play : function(onComplete){ - this.completed = 0; - if(this.sequences.length < 1){ - if(onComplete)onComplete(); - return; - } - this.onComplete = onComplete; - for(var i = 0; i < this.sequences.length; i++){ - this.sequences[i].play(this.trackDelegate); - } - }, - - trackCompletion : function(){ - ++this.completed; - if(this.completed >= this.sequences.length && this.onComplete){ - this.onComplete(); - } - }, - - stop : function(){ - for(var i = 0; i < this.sequences.length; i++){ - this.sequences[i].stop(); - } - }, - - isPlaying : function(){ - for(var i = 0; i < this.sequences.length; i++){ - if(this.sequences[i].isPlaying()){ - return true; - } - } - return false; - } -}; - - diff --git a/www/extras/extjs/source/legacy/InlineEditor.js b/www/extras/extjs/source/legacy/InlineEditor.js deleted file mode 100644 index 9ce0b19fc..000000000 --- a/www/extras/extjs/source/legacy/InlineEditor.js +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.InlineEditor = function(config, existingEl){ - Ext.apply(this, config); - var dh = Ext.DomHelper; - this.wrap = dh.append(this.container || document.body, { - tag:"div", - cls:"yinline-editor-wrap" - }, true); - - this.textSizeEl = dh.append(document.body, { - tag: "div", - cls: "yinline-editor-sizer " + (this.cls || "") - }); - if(Ext.isSafari){ // extra padding for safari's textboxes - this.textSizeEl.style.padding = "4px"; - this.textSizeEl.style["padding-right"] = "10px"; - } - - if(!Ext.isGecko){ // no one else needs FireFox cursor fix - this.wrap.setStyle("overflow", "hidden"); - } - - if(existingEl){ - this.el = Ext.get(existingEl); - } - if(!this.el){ - this.id = this.id || Ext.id(); - if(!this.multiline){ - this.el = this.wrap.createChild({ - tag: "input", - name: this.name || this.id, - id: this.id, - type: this.type || "text", - autocomplete: "off", - value: this.value || "", - cls: "yinline-editor " + (this.cls || ""), - maxlength: this.maxLength || "" - }); - }else{ - this.el = this.wrap.createChild({ - tag: "textarea", - name: this.name || this.id, - id: this.id, - html: this.value || "", - cls: "yinline-editor yinline-editor-multiline " + (this.cls || ""), - wrap: "none" - }); - } - }else{ - this.wrap.dom.appendChild(this.el.dom); - } - this.el.addKeyMap([{ - key: [10, 13], - fn: this.onEnter, - scope: this - },{ - key: 27, - fn: this.onEsc, - scope: this - }]); - this.el.on("keyup", this.onKeyUp, this); - this.el.on("blur", this.onBlur, this); - this.el.swallowEvent("keydown"); - this.events = { - "startedit" : true, - "beforecomplete" : true, - "complete" : true - }; - this.editing = false; - this.autoSizeTask = new Ext.util.DelayedTask(this.autoSize, this); -}; - -Ext.extend(Ext.InlineEditor, Ext.util.Observable, { - onEnter : function(k, e){ - if(this.multiline && (e.ctrlKey || e.shiftKey)){ - return; - } - this.completeEdit(); - e.stopEvent(); - }, - - onEsc : function(){ - if(this.ignoreNoChange){ - this.revert(true); - }else{ - this.revert(false); - this.completeEdit(); - } - }, - - onBlur : function(){ - if(this.editing && this.completeOnBlur !== false){ - this.completeEdit(); - } - }, - - startEdit : function(el, value){ - this.boundEl = Ext.getDom(el); - if(this.hideEl !== false){ - this.boundEl.style.visibility = "hidden"; - } - var v = value || this.boundEl.innerHTML; - this.startValue = v; - this.setValue(v); - this.moveTo(Ext.lib.Dom.getXY(this.boundEl)); - this.editing = true; - if(Ext.QuickTips){ - Ext.QuickTips.disable(); - } - this.show.defer(10, this); - }, - - onKeyUp : function(e){ - var k = e.getKey(); - if(this.editing && (k < 33 || k > 40) && k != 27){ - this.autoSizeTask.delay(50); - } - }, - - completeEdit : function(){ - var v = this.getValue(); - if(this.revertBlank !== false && v.length < 1){ - v = this.startValue; - this.revert(); - } - if(v == this.startValue && this.ignoreNoChange){ - this.hide(); - } - if(this.fireEvent("beforecomplete", this, v, this.startValue) !== false){ - if(this.updateEl !== false && this.boundEl){ - this.boundEl.innerHTML = v; - } - this.hide(); - this.fireEvent("complete", this, v, this.startValue); - } - }, - - revert : function(hide){ - this.setValue(this.startValue); - if(hide){ - this.hide(); - } - }, - - show : function(){ - this.autoSize(); - this.wrap.show(); - this.el.focus(); - if(this.selectOnEdit !== false){ - this.el.dom.select(); - } - }, - - hide : function(){ - this.editing = false; - this.wrap.hide(); - this.wrap.setLeftTop(-10000,-10000); - this.el.blur(); - if(this.hideEl !== false){ - this.boundEl.style.visibility = "visible"; - } - if(Ext.QuickTips){ - Ext.QuickTips.enable(); - } - }, - - setValue : function(v){ - this.el.dom.value = v; - }, - - getValue : function(){ - return this.el.dom.value; - }, - - autoSize : function(){ - var el = this.el; - var wrap = this.wrap; - var v = el.dom.value; - var ts = this.textSizeEl; - if(v.length < 1){ - ts.innerHTML = "  "; - }else{ - v = v.replace(/[<> ]/g, " "); - if(this.multiline){ - v = v.replace(/\n/g, "
         "); - } - ts.innerHTML = v; - } - var ww = wrap.dom.offsetWidth; - var wh = wrap.dom.offsetHeight; - var w = ts.offsetWidth; - var h = ts.offsetHeight; - // lots of magic numbers in this block - wtf? - // the logic is to prevent the scrollbars from flashing - // in firefox. Updates the correct element first - // so there's never overflow. - if(ww > w+4){ - el.setWidth(w+4); - wrap.setWidth(w+8); - }else{ - wrap.setWidth(w+8); - el.setWidth(w+4); - } - if(wh > h+4){ - el.setHeight(h); - wrap.setHeight(h+4); - }else{ - wrap.setHeight(h+4); - el.setHeight(h); - } - }, - - moveTo : function(xy){ - this.wrap.setXY(xy); - } -}); diff --git a/www/extras/extjs/source/legacy/compat.js b/www/extras/extjs/source/legacy/compat.js deleted file mode 100644 index 0c7d7015d..000000000 --- a/www/extras/extjs/source/legacy/compat.js +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - - -// backwards compat -YAHOO.ext = Ext; - -YAHOO.extendX = Ext.extend; -YAHOO.namespaceX = Ext.namespace; - -Ext.Strict = Ext.isStrict; - -Ext.util.Config = {}; -Ext.util.Config.apply = Ext.apply; - -// this is nasty -Ext.util.Browser = Ext; - -// removed -YAHOO.override = Ext.override; - - - /* - * Enable custom handler signature and event cancelling. Using fireDirect() instead of fire() calls the subscribed event handlers - * with the exact parameters passed to fireDirect, instead of the usual (eventType, args[], obj). IMO this is more intuitive - * and promotes cleaner code. Also, if an event handler returns false, it is returned by fireDirect and no other handlers will be called.
        - * Example:

        
        - * if(beforeUpdateEvent.fireDirect(myArg, myArg2) !== false){
        - *     // do update
        - * }
        - */ -YAHOO.util.CustomEvent.prototype.fireDirect = function(){ - var len=this.subscribers.length; - for (var i=0; i{0} a {1} de {2} registro(s)", - emptyMsg : 'Sem registros para exibir' - }); -} - -if(Ext.form.TextField){ - Ext.apply(Ext.form.TextField.prototype, { - minLengthText : "O tamanho mnimo permitido para este campo {0}", - maxLengthText : "O tamanho mximo para este campo {0}", - blankText : "Este campo obrigatrio, favor preencher.", - regexText : "", - emptyText : null - }); -} - -if(Ext.form.NumberField){ - Ext.apply(Ext.form.NumberField.prototype, { - minText : "O valor mnimo para este campo {0}", - maxText : "O valor mximo para este campo {0}", - nanText : "{0} no um nmero vlido" - }); -} - -if(Ext.form.DateField){ - Ext.apply(Ext.form.DateField.prototype, { - disabledDaysText : "Desabilitado", - disabledDatesText : "Desabilitado", - minText : "A data deste campo deve ser posterior a {0}", - maxText : "A data deste campo deve ser anterior a {0}", - invalidText : "{0} no uma data vlida - deve ser informado no formato {1}", - format : "m/d/y" - }); -} - -if(Ext.form.ComboBox){ - Ext.apply(Ext.form.ComboBox.prototype, { - loadingText : "Carregando...", - valueNotFoundText : undefined - }); -} - -if(Ext.form.VTypes){ - Ext.apply(Ext.form.VTypes, { - emailText : 'Este campo deve ser um endereo de e-mail vlido no formado "usuario@dominio.com"', - urlText : 'Este campo deve ser uma URL no formato "http:/'+'/www.dominio.com"', - alphaText : 'Este campo deve conter apenas letras e _', - alphanumText : 'Este campo devve conter apenas letras, nmeros e _' - }); -} - -if(Ext.grid.GridView){ - Ext.apply(Ext.grid.GridView.prototype, { - sortAscText : "Ordenar Ascendente", - sortDescText : "Ordenar Descendente", - lockText : "Bloquear Coluna", - unlockText : "Desbloquear Coluna", - columnsText : "Colunas" - }); -} - -if(Ext.grid.PropertyColumnModel){ - Ext.apply(Ext.grid.PropertyColumnModel.prototype, { - nameText : "Nome", - valueText : "Valor", - dateFormat : "m/j/Y" - }); -} - -if(Ext.SplitLayoutRegion){ - Ext.apply(Ext.SplitLayoutRegion.prototype, { - splitTip : "Arraste para redimencionar.", - collapsibleSplitTip : "Arraste para redimencionar. Duplo clique para esconder." - }); -} diff --git a/www/extras/extjs/source/locale/ext-lang-ro.js b/www/extras/extjs/source/locale/ext-lang-ro.js deleted file mode 100644 index fef4b9647..000000000 --- a/www/extras/extjs/source/locale/ext-lang-ro.js +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * Translation by Lucian Lature 04-24-2007 - * Romanian Translations - */ - -Ext.UpdateManager.defaults.indicatorText = '
        Încărcare...
        '; - -if(Ext.View){ - Ext.View.prototype.emptyText = ""; -} - -if(Ext.grid.Grid){ - Ext.grid.Grid.prototype.ddText = "{0} rând(uri) selectate"; -} - -if(Ext.TabPanelItem){ - Ext.TabPanelItem.prototype.closeText = "Închide acest tab"; -} - -if(Ext.form.Field){ - Ext.form.Field.prototype.invalidText = "Valoarea acestui câmp este invalidă"; -} - -if(Ext.LoadMask){ - Ext.LoadMask.prototype.msg = "Încărcare..."; -} - -Date.monthNames = [ - "Ianuarie", - "Februarie", - "Martie", - "Aprilie", - "Mai", - "Iunie", - "Iulie", - "August", - "Septembrie", - "Octombrie", - "Noiembrie", - "Decembrie" -]; - -Date.dayNames = [ - "Duminică", - "Luni", - "Marţi", - "Miercuri", - "Joi", - "Vineri", - "Sâmbătă" -]; - -if(Ext.MessageBox){ - Ext.MessageBox.buttonText = { - ok : "OK", - cancel : "Renunţă", - yes : "Da", - no : "Nu" - }; -} - -if(Ext.util.Format){ - Ext.util.Format.date = function(v, format){ - if(!v) return ""; - if(!(v instanceof Date)) v = new Date(Date.parse(v)); - return v.dateFormat(format || "d-m-Y"); - }; -} - -if(Ext.DatePicker){ - Ext.apply(Ext.DatePicker.prototype, { - todayText : "Astăzi", - minText : "Această zi este înaintea datei de început", - maxText : "Această zi este după ultimul termen", - disabledDaysText : "", - disabledDatesText : "", - monthNames : Date.monthNames, - dayNames : Date.dayNames, - nextText : 'Următoarea lună (Control+Right)', - prevText : 'Luna anterioară (Control+Left)', - monthYearText : 'Alege o lună (Control+Up/Down pentru a parcurge anii)', - todayTip : "{0} (Spacebar)", - format : "d-m-y" - }); -} - -if(Ext.PagingToolbar){ - Ext.apply(Ext.PagingToolbar.prototype, { - beforePageText : "Pagina", - afterPageText : "din {0}", - firstText : "Prima pagină", - prevText : "Pagina precedentă", - nextText : "Următoarea pagină", - lastText : "Ultima pagină", - refreshText : "Reîmprospătare", - displayMsg : "Afişează {0} - {1} din {2}", - emptyMsg : 'Nu sunt date de afişat' - }); -} - -if(Ext.form.TextField){ - Ext.apply(Ext.form.TextField.prototype, { - minLengthText : "Lungimea minimă pentru acest câmp este de {0}", - maxLengthText : "Lungimea maximă pentru acest câmp este {0}", - blankText : "Acest câmp este obligatoriu", - regexText : "", - emptyText : null - }); -} - -if(Ext.form.NumberField){ - Ext.apply(Ext.form.NumberField.prototype, { - minText : "Valoarea minimă permisă a acestui câmp este {0}", - maxText : "Valaorea maximă permisă a acestui câmp este {0}", - nanText : "{0} nu este un număr valid" - }); -} - -if(Ext.form.DateField){ - Ext.apply(Ext.form.DateField.prototype, { - disabledDaysText : "Inactiv", - disabledDatesText : "Inactiv", - minText : "Data acestui câmp trebuie să fie după {0}", - maxText : "Data acestui câmp trebuie sa fie înainte de {0}", - invalidText : "{0} nu este o dată validă - trebuie să fie în formatul {1}", - format : "d-m-y" - }); -} - -if(Ext.form.ComboBox){ - Ext.apply(Ext.form.ComboBox.prototype, { - loadingText : "Încărcare...", - valueNotFoundText : undefined - }); -} - -if(Ext.form.VTypes){ - Ext.apply(Ext.form.VTypes, { - emailText : 'Acest câmp trebuie să conţină o adresă de e-mail în formatul "user@domain.com"', - urlText : 'Acest câmp trebuie să conţină o adresă URL în formatul "http:/'+'/www.domain.com"', - alphaText : 'Acest câmp trebuie să conţină doar litere şi _', - alphanumText : 'Acest câmp trebuie să conţină doar litere, cifre şi _' - }); -} - -if(Ext.grid.GridView){ - Ext.apply(Ext.grid.GridView.prototype, { - sortAscText : "Sortare ascendentă", - sortDescText : "Sortare descendentă", - lockText : "Blochează coloana", - unlockText : "Deblochează coloana", - columnsText : "Coloane" - }); -} - -if(Ext.grid.PropertyColumnModel){ - Ext.apply(Ext.grid.PropertyColumnModel.prototype, { - nameText : "Nume", - valueText : "Valoare", - dateFormat : "m/j/Y" - }); -} - -if(Ext.SplitLayoutRegion){ - Ext.apply(Ext.SplitLayoutRegion.prototype, { - splitTip : "Trage pentru redimensionare.", - collapsibleSplitTip : "Trage pentru redimensionare. Dublu-click pentru ascundere." - }); -} \ No newline at end of file diff --git a/www/extras/extjs/source/locale/ext-lang-ru.js b/www/extras/extjs/source/locale/ext-lang-ru.js deleted file mode 100644 index 8d5da9c77..000000000 --- a/www/extras/extjs/source/locale/ext-lang-ru.js +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* - * Russian translation - * By Arikon (utf-8 encoding) - * 08 April 2007 - */ - -Ext.UpdateManager.defaults.indicatorText = '
        Идет загрузка...
        '; - -if(Ext.View){ - Ext.View.prototype.emptyText = ""; -} - -if(Ext.grid.Grid){ - Ext.grid.Grid.prototype.ddText = "{0} выбранных Ñтрок"; -} - -if(Ext.TabPanelItem){ - Ext.TabPanelItem.prototype.closeText = "Закрыть Ñту вкладку"; -} - -if(Ext.form.Field){ - Ext.form.Field.prototype.invalidText = "Значение в Ñтом поле неверное"; -} - -Date.monthNames = [ - "Январь", - "Февраль", - "Март", - "Ðпрель", - "Май", - "Июнь", - "Июль", - "ÐвгуÑÑ‚", - "СентÑбрь", - "ОктÑбрь", - "ÐоÑбрь", - "Декабрь" -]; - -Date.dayNames = [ - "ВоÑкреÑенье", - "Понедельник", - "Вторник", - "Среда", - "Четверг", - "ПÑтница", - "Суббота" -]; - -if(Ext.MessageBox){ - Ext.MessageBox.buttonText = { - ok : "OK", - cancel : "Отмена", - yes : "Да", - no : "Ðет" - }; -} - -if(Ext.util.Format){ - Ext.util.Format.date = function(v, format){ - if(!v) return ""; - if(!(v instanceof Date)) v = new Date(Date.parse(v)); - return v.dateFormat(format || "d.m.Y"); - }; -} - -if(Ext.DatePicker){ - Ext.apply(Ext.DatePicker.prototype, { - todayText : "СегоднÑ", - minText : "Эта дата раньше минимальной даты", - maxText : "Эта дата позже макÑимальной даты", - disabledDaysText : "", - disabledDatesText : "", - monthNames : Date.monthNames, - dayNames : Date.dayNames, - nextText : 'Следующий меÑÑц (Control+Вправо)', - prevText : 'Предыдущий меÑÑц (Control+Влево)', - monthYearText : 'Выбор меÑÑца (Control+Вверх/Вниз Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° года)', - todayTip : "{0} (Пробел)", - format : "d.m.y", - startDay : 1 - }); -} - -if(Ext.PagingToolbar){ - Ext.apply(Ext.PagingToolbar.prototype, { - beforePageText : "Страница", - afterPageText : "из {0}", - firstText : "ÐŸÐµÑ€Ð²Ð°Ñ Ñтраница", - prevText : "ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ñтраница", - nextText : "Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ñтраница", - lastText : "ПоÑледнÑÑ Ñтраница", - refreshText : "Обновить", - displayMsg : "ОтображаютÑÑ Ð·Ð°Ð¿Ð¸Ñи Ñ {0} по {1}, вÑего {2}", - emptyMsg : 'Ðет данных Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ' - }); -} - -if(Ext.form.TextField){ - Ext.apply(Ext.form.TextField.prototype, { - minLengthText : "ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° Ñтого Ð¿Ð¾Ð»Ñ {0}", - maxLengthText : "МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° Ñтого Ð¿Ð¾Ð»Ñ {0}", - blankText : "Это поле обÑзательно Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ", - regexText : "", - emptyText : null - }); -} - -if(Ext.form.NumberField){ - Ext.apply(Ext.form.NumberField.prototype, { - minText : "Значение Ñтого Ð¿Ð¾Ð»Ñ Ð½Ðµ может быть меньше {0}", - maxText : "Значение Ñтого Ð¿Ð¾Ð»Ñ Ð½Ðµ может быть больше {0}", - nanText : "{0} не ÑвлÑетÑÑ Ñ‡Ð¸Ñлом" - }); -} - -if(Ext.form.DateField){ - Ext.apply(Ext.form.DateField.prototype, { - disabledDaysText : "Ðе доÑтупно", - disabledDatesText : "Ðе доÑтупно", - minText : "Дата в Ñтом поле должна быть позде {0}", - maxText : "Дата в Ñтом поле должна быть раньше {0}", - invalidText : "{0} не ÑвлÑетÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾Ð¹ датой - дата должна быть указана в формате {1}", - format : "d.m.y" - }); -} - -if(Ext.form.ComboBox){ - Ext.apply(Ext.form.ComboBox.prototype, { - loadingText : "Загрузка...", - valueNotFoundText : undefined - }); -} - -if(Ext.form.VTypes){ - Ext.apply(Ext.form.VTypes, { - emailText : 'Это поле должно Ñодержать Ð°Ð´Ñ€ÐµÑ Ñлектронной почты в формате "user@domain.com"', - urlText : 'Это поле должно Ñодержать URL в формате "http:/'+'/www.domain.com"', - alphaText : 'Это поле должно Ñодержать только латинÑкие буквы и Ñимвол Ð¿Ð¾Ð´Ñ‡ÐµÑ€ÐºÐ¸Ð²Ð°Ð½Ð¸Ñ "_"', - alphanumText : 'Это поле должно Ñодержать только латинÑкие буквы, цифры и Ñимвол Ð¿Ð¾Ð´Ñ‡ÐµÑ€ÐºÐ¸Ð²Ð°Ð½Ð¸Ñ "_"' - }); -} - -if(Ext.grid.GridView){ - Ext.apply(Ext.grid.GridView.prototype, { - sortAscText : "Сортировать по возраÑтанию", - sortDescText : "Сортировать по убыванию", - lockText : "Закрепить Ñтолбец", - unlockText : "СнÑть закрепление Ñтолбца", - columnsText : "Столбцы" - }); -} - -if(Ext.grid.PropertyColumnModel){ - Ext.apply(Ext.grid.PropertyColumnModel.prototype, { - nameText : "Ðазвание", - valueText : "Значение", - dateFormat : "j.m.Y" - }); -} - -if(Ext.SplitLayoutRegion){ - Ext.apply(Ext.SplitLayoutRegion.prototype, { - splitTip : "ТÑните Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð°.", - collapsibleSplitTip : "ТÑните Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð°. Двойной щелчок ÑпрÑчет панель." - }); -} diff --git a/www/extras/extjs/source/locale/ext-lang-sk.js b/www/extras/extjs/source/locale/ext-lang-sk.js deleted file mode 100644 index 0dc482744..000000000 --- a/www/extras/extjs/source/locale/ext-lang-sk.js +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * List compiled by mystix on the extjs.com forums. - * Thank you Mystix! - */ - - /* Translation to Slovak by Michal Thomka - * 14 April 2007 - */ - -Ext.UpdateManager.defaults.indicatorText = '
        Nahrvam...
        '; - -if(Ext.View){ - Ext.View.prototype.emptyText = ""; -} - -if(Ext.grid.Grid){ - Ext.grid.Grid.prototype.ddText = "{0} oznaench riadkov"; -} - -if(Ext.TabPanelItem){ - Ext.TabPanelItem.prototype.closeText = "Zavrie tto zloku"; -} - -if(Ext.form.Field){ - Ext.form.Field.prototype.invalidText = "Hodnota v tomto poli je nesprvna"; -} - -Date.monthNames = [ - "Janur", - "Februr", - "Marec", - "Aprl", - "Mj", - "Jn", - "Jl", - "August", - "September", - "Oktber", - "November", - "December" -]; - -Date.dayNames = [ - "Nedea", - "Pondelok", - "Utorok", - "Streda", - "tvrtok", - "Piatok", - "Sobota" -]; - -if(Ext.MessageBox){ - Ext.MessageBox.buttonText = { - ok : "OK", - cancel : "Zrui", - yes : "no", - no : "Nie" - }; -} - -if(Ext.util.Format){ - Ext.util.Format.date = function(v, format){ - if(!v) return ""; - if(!(v instanceof Date)) v = new Date(Date.parse(v)); - return v.dateFormat(format || "m/d/R"); - }; -} - - -if(Ext.DatePicker){ - Ext.apply(Ext.DatePicker.prototype, { - todayText : "Dnes", - minText : "Tento dtum je men ako minimlny mon dtum", - maxText : "Tento dtum je v ako maximlny mon dtum", - disabledDaysText : "", - disabledDatesText : "", - monthNames : Date.monthNames, - dayNames : Date.dayNames, - nextText : 'al Mesiac (Control+Doprava)', - prevText : 'Predch. Mesiac (Control+Doava)', - monthYearText : 'Vyberte Mesiac (Control+Hore/Dole pre posun rokov)', - todayTip : "{0} (Medzernk)", - format : "m/d/r" - }); -} - - -if(Ext.PagingToolbar){ - Ext.apply(Ext.PagingToolbar.prototype, { - beforePageText : "Strana", - afterPageText : "z {0}", - firstText : "Prv Strana", - prevText : "Predch. Strana", - nextText : "alia Strana", - lastText : "Posledn strana", - refreshText : "Obnovi", - displayMsg : "Zobrazujem {0} - {1} z {2}", - emptyMsg : 'iadne dta' - }); -} - - -if(Ext.form.TextField){ - Ext.apply(Ext.form.TextField.prototype, { - minLengthText : "Minimlna dka pre toto pole je {0}", - maxLengthText : "Maximlna dka pre toto pole je {0}", - blankText : "Toto pole je povinn", - regexText : "", - emptyText : null - }); -} - -if(Ext.form.NumberField){ - Ext.apply(Ext.form.NumberField.prototype, { - minText : "Minimlna hodnota pre toto pole je {0}", - maxText : "Maximlna hodnota pre toto pole je {0}", - nanText : "{0} je nesprvne slo" - }); -} - -if(Ext.form.DateField){ - Ext.apply(Ext.form.DateField.prototype, { - disabledDaysText : "Zablokovan", - disabledDatesText : "Zablokovan", - minText : "Dtum v tomto poli mus by a po {0}", - maxText : "Dtum v tomto poli mus by pred {0}", - invalidText : "{0} nie je sprvny dtum - mus by vo formte {1}", - format : "m/d/r" - }); -} - -if(Ext.form.ComboBox){ - Ext.apply(Ext.form.ComboBox.prototype, { - loadingText : "Nahrvam...", - valueNotFoundText : undefined - }); -} - -if(Ext.form.VTypes){ - Ext.apply(Ext.form.VTypes, { - emailText : 'Toto pole mus by e-mailov adresa vo formte "user@domain.com"', - urlText : 'Toto pole mus by URL vo formte "http:/'+'/www.domain.com"', - alphaText : 'Toto poe moe obsahova iba psmen a znak _', - alphanumText : 'Toto poe moe obsahova iba psmen,sla a znak _' - }); -} - -if(Ext.grid.GridView){ - Ext.apply(Ext.grid.GridView.prototype, { - sortAscText : "Zoradi vzostupne", - sortDescText : "Zoradi zostupne", - lockText : "Zamkn stpec", - unlockText : "Odomkn stpec", - columnsText : "Stpce" - }); -} - -if(Ext.grid.PropertyColumnModel){ - Ext.apply(Ext.grid.PropertyColumnModel.prototype, { - nameText : "Nzov", - valueText : "Hodnota", - dateFormat : "m/j/Y" - }); -} - -if(Ext.SplitLayoutRegion){ - Ext.apply(Ext.SplitLayoutRegion.prototype, { - splitTip : "Potiahnite pre zmenu rozmeru", - collapsibleSplitTip : "Potiahnite pre zmenu rozmeru. Dvojklikom schovte." - }); -} diff --git a/www/extras/extjs/source/locale/ext-lang-sp.js b/www/extras/extjs/source/locale/ext-lang-sp.js deleted file mode 100644 index f7ebfcba4..000000000 --- a/www/extras/extjs/source/locale/ext-lang-sp.js +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* - * Español/Latinoamerica Translation by genius551v 04-08-2007 - * Revised by efege, 2007-04-15. - */ - -Ext.UpdateManager.defaults.indicatorText = '
        Cargando...
        '; - -if(Ext.View){ - Ext.View.prototype.emptyText = ""; -} - -if(Ext.grid.Grid){ - Ext.grid.Grid.prototype.ddText = "{0} fila(s) seleccionada(s)"; -} - -if(Ext.TabPanelItem){ - Ext.TabPanelItem.prototype.closeText = "Cerrar esta pestaña"; -} - -if(Ext.form.Field){ - Ext.form.Field.prototype.invalidText = "El valor en este campo es inválido"; -} - -Date.monthNames = [ - "Enero", - "Febrero", - "Marzo", - "Abril", - "Mayo", - "Junio", - "Julio", - "Agosto", - "Septiembre", - "Octubre", - "Noviembre", - "Diciembre" -]; - -Date.dayNames = [ - "Domingo", - "Lunes", - "Martes", - "Miércoles", - "Jueves", - "Viernes", - "Sábado" -]; - -if(Ext.MessageBox){ - Ext.MessageBox.buttonText = { - ok : "Aceptar", - cancel : "Cancelar", - yes : "Sí", - no : "No" - }; -} - -if(Ext.util.Format){ - Ext.util.Format.date = function(v, format){ - if(!v) return ""; - if(!(v instanceof Date)) v = new Date(Date.parse(v)); - return v.dateFormat(format || "d/m/Y"); - }; -} - -if(Ext.DatePicker){ - Ext.apply(Ext.DatePicker.prototype, { - todayText : "Hoy", - minText : "Esta fecha es anterior a la fecha mínima", - maxText : "Esta fecha es posterior a la fecha máxima", - disabledDaysText : "", - disabledDatesText : "", - monthNames : Date.monthNames, - dayNames : Date.dayNames, - nextText : 'Mes Siguiente (Control+Right)', - prevText : 'Mes Anterior (Control+Left)', - monthYearText : 'Seleccione un mes (Control+Up/Down para desplazar el año)', - todayTip : "{0} (Barra espaciadora)", - format : "d/m/Y" - }); -} - -if(Ext.PagingToolbar){ - Ext.apply(Ext.PagingToolbar.prototype, { - beforePageText : "Página", - afterPageText : "de {0}", - firstText : "Primera página", - prevText : "Página anterior", - nextText : "Página siguiente", - lastText : "Última página", - refreshText : "Actualizar", - displayMsg : "Mostrando {0} - {1} de {2}", - emptyMsg : 'Sin datos para mostrar' - }); -} - -if(Ext.form.TextField){ - Ext.apply(Ext.form.TextField.prototype, { - minLengthText : "El tamaño mínimo para este campo es de {0}", - maxLengthText : "El tamaño máximo para este campo es de {0}", - blankText : "Este campo es obligatorio", - regexText : "", - emptyText : null - }); -} - -if(Ext.form.NumberField){ - Ext.apply(Ext.form.NumberField.prototype, { - minText : "El valor mínimo para este campo es de {0}", - maxText : "El valor máximo para este campo es de {0}", - nanText : "{0} no es un número válido" - }); -} - -if(Ext.form.DateField){ - Ext.apply(Ext.form.DateField.prototype, { - disabledDaysText : "Deshabilitado", - disabledDatesText : "Deshabilitado", - minText : "La fecha para este campo debe ser posterior a {0}", - maxText : "La fecha para este campo debe ser anterior a {0}", - invalidText : "{0} no es una fecha válida - debe tener el formato {1}", - format : "d/m/Y" - }); -} - -if(Ext.form.ComboBox){ - Ext.apply(Ext.form.ComboBox.prototype, { - loadingText : "Cargando...", - valueNotFoundText : undefined - }); -} - -if(Ext.form.VTypes){ - Ext.apply(Ext.form.VTypes, { - emailText : 'Este campo debe ser una dirección de correo electrónico con el formato "usuario@dominio.com"', - urlText : 'Este campo debe ser una URL con el formato "http:/'+'/www.dominio.com"', - alphaText : 'Este campo solo debe contener letras y _', - alphanumText : 'Este campo solo debe contener letras, números y _' - }); -} - -if(Ext.grid.GridView){ - Ext.apply(Ext.grid.GridView.prototype, { - sortAscText : "Ordenar en forma ascendente", - sortDescText : "Ordenar en forma descendente", - lockText : "Bloquear Columna", - unlockText : "Desbloquear Columna", - columnsText : "Columnas" - }); -} - -if(Ext.grid.PropertyColumnModel){ - Ext.apply(Ext.grid.PropertyColumnModel.prototype, { - nameText : "Nombre", - valueText : "Valor", - dateFormat : "j/m/Y" - }); -} - -if(Ext.SplitLayoutRegion){ - Ext.apply(Ext.SplitLayoutRegion.prototype, { - splitTip : "Arrastre para redimensionar.", - collapsibleSplitTip : "Arrastre para redimensionar. Doble clic para ocultar." - }); -} diff --git a/www/extras/extjs/source/locale/ext-lang-sv_se.js b/www/extras/extjs/source/locale/ext-lang-sv_se.js deleted file mode 100644 index 6b35c5635..000000000 --- a/www/extras/extjs/source/locale/ext-lang-sv_se.js +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * Swedish translation (utf8-encoding) - * By Erik Andersson, Monator Technologies - * 24 April 2007 - */ - -Ext.UpdateManager.defaults.indicatorText = '
        Laddar...
        '; - -if(Ext.View){ - Ext.View.prototype.emptyText = ""; -} - -if(Ext.grid.Grid){ - Ext.grid.Grid.prototype.ddText = "{0} markerade rad(er)"; -} - -if(Ext.TabPanelItem){ - Ext.TabPanelItem.prototype.closeText = "Stäng denna tabb"; -} - -if(Ext.form.Field){ - Ext.form.Field.prototype.invalidText = "Värdet i detta fält är icke tillåtet"; -} - -if(Ext.LoadMask){ - Ext.LoadMask.prototype.msg = "Laddar..."; -} - -Date.monthNames = [ - "Januari", - "Februari", - "Mars", - "April", - "Maj", - "Juni", - "Juli", - "Augusti", - "September", - "Oktober", - "November", - "December" -]; - -Date.dayNames = [ - "Söndag", - "Måndag", - "Tisdag", - "Onsdag", - "Torsdag", - "Fredag", - "Lördag" -]; - -if(Ext.MessageBox){ - Ext.MessageBox.buttonText = { - ok : "OK", - cancel : "Avbryt", - yes : "Ja", - no : "Nej" - }; -} - -if(Ext.util.Format){ - Ext.util.Format.date = function(v, format){ - if(!v) return ""; - if(!(v instanceof Date)) v = new Date(Date.parse(v)); - return v.dateFormat(format || "Y/m/d"); - }; -} - -if(Ext.DatePicker){ - Ext.apply(Ext.DatePicker.prototype, { - todayText : "Idag", - minText : "Detta datum är före det tidigast tillåtna", - maxText : "Detta datum är efter det senast tillåtna", - disabledDaysText : "", - disabledDatesText : "", - monthNames : Date.monthNames, - dayNames : Date.dayNames, - nextText : 'Nästa Månad (Ctrl + höger piltangent)', - prevText : 'Föregående Månad (Ctrl + vänster piltangent)', - monthYearText : 'Välj en månad (Ctrl + Uppåt/Neråt pil för att ändra årtal)', - todayTip : "{0} (Mellanslag)", - format : "y/m/d", - startDay : 1 - }); -} - -if(Ext.PagingToolbar){ - Ext.apply(Ext.PagingToolbar.prototype, { - beforePageText : "Sida", - afterPageText : "av {0}", - firstText : "Första sidan", - prevText : "Föregående sida", - nextText : "Nästa sida", - lastText : "Sista sidan", - refreshText : "Uppdatera", - displayMsg : "Visar {0} - {1} av {2}", - emptyMsg : 'Det finns ingen data att visa' - }); -} - -if(Ext.form.TextField){ - Ext.apply(Ext.form.TextField.prototype, { - minLengthText : "Minsta tillåtna längden för detta fält är {0}", - maxLengthText : "Största tillåtna längden för detta fält är {0}", - blankText : "Detta fält är obligatoriskt", - regexText : "", - emptyText : null - }); -} - -if(Ext.form.NumberField){ - Ext.apply(Ext.form.NumberField.prototype, { - minText : "Minsta tillåtna värdet för detta fält är {0}", - maxText : "Största tillåtna värdet för detta fält är {0}", - nanText : "{0} är inte ett tillåtet nummer" - }); -} - -if(Ext.form.DateField){ - Ext.apply(Ext.form.DateField.prototype, { - disabledDaysText : "Inaktiverad", - disabledDatesText : "Inaktiverad", - minText : "Datumet i detta fält måste vara efter {0}", - maxText : "Datumet i detta fält måste vara före {0}", - invalidText : "{0} är inte ett tillåtet datum - datum skall anges på formatet {1}", - format : "y/m/d" - }); -} - -if(Ext.form.ComboBox){ - Ext.apply(Ext.form.ComboBox.prototype, { - loadingText : "Laddar...", - valueNotFoundText : undefined - }); -} - -if(Ext.form.VTypes){ - Ext.apply(Ext.form.VTypes, { - emailText : 'Detta fält skall vara en e-post adress på formatet "user@domain.com"', - urlText : 'Detta fält skall vara en länk (URL) på formatet "http:/'+'/www.domain.com"', - alphaText : 'Detta fält får bara innehålla bokstäver och "_"', - alphanumText : 'Detta fält får bara innehålla bokstäver, nummer och "_"' - }); -} - -if(Ext.grid.GridView){ - Ext.apply(Ext.grid.GridView.prototype, { - sortAscText : "Sortera stigande", - sortDescText : "Sortera fallande", - lockText : "Lås kolumn", - unlockText : "Lås upp kolumn", - columnsText : "Kolumner" - }); -} - -if(Ext.grid.PropertyColumnModel){ - Ext.apply(Ext.grid.PropertyColumnModel.prototype, { - nameText : "Namn", - valueText : "Värde", - dateFormat : "Y/m/d" - }); -} - -if(Ext.SplitLayoutRegion){ - Ext.apply(Ext.SplitLayoutRegion.prototype, { - splitTip : "Drag för att ändra storleken.", - collapsibleSplitTip : "Drag för att ändra storleken. Dubbelklicka för att gömma." - }); -} \ No newline at end of file diff --git a/www/extras/extjs/source/locale/ext-lang-tr.js b/www/extras/extjs/source/locale/ext-lang-tr.js deleted file mode 100644 index b335c8945..000000000 --- a/www/extras/extjs/source/locale/ext-lang-tr.js +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * List compiled by mystix on the extjs.com forums. - * Thank you Mystix! - */ - -/** - * Turkish translation by Hüseyin Tüfekçilerli - * 04-11-2007, 09:52 AM - */ - -Ext.UpdateManager.defaults.indicatorText = '
        Yükleniyor...
        '; - -if(Ext.View){ - Ext.View.prototype.emptyText = ""; -} - -if(Ext.grid.Grid){ - Ext.grid.Grid.prototype.ddText = "{0} seçili satır"; -} - -if(Ext.TabPanelItem){ - Ext.TabPanelItem.prototype.closeText = "Bu sekmeyi kapat"; -} - -if(Ext.form.Field){ - Ext.form.Field.prototype.invalidText = "Bu alandaki değer geçersiz"; -} - -Date.monthNames = [ - "Ocak", - "Şubat", - "Mart", - "Nisan", - "Mayıs", - "Haziran", - "Temmuz", - "Ağustos", - "Eylül", - "Ekim", - "Kasım", - "Aralık" -]; - -Date.dayNames = [ - "Pazar", - "Pazartesi", - "Salı", - "Çarşamba", - "Perşembe", - "Cuma", - "Cumartesi" -]; - -if(Ext.MessageBox){ - Ext.MessageBox.buttonText = { - ok : "Tamam", - cancel : "İptal", - yes : "Evet", - no : "Hayır" - }; -} - -if(Ext.util.Format){ - Ext.util.Format.date = function(v, format){ - if(!v) return ""; - if(!(v instanceof Date)) v = new Date(Date.parse(v)); - return v.dateFormat(format || "d/m/Y"); - }; -} - -if(Ext.DatePicker){ - Ext.apply(Ext.DatePicker.prototype, { - todayText : "Bugün", - minText : "Bu tarih minimum tarihten önce", - maxText : "Bu tarih maximum tarihten sonra", - disabledDaysText : "", - disabledDatesText : "", - monthNames : Date.monthNames, - dayNames : Date.dayNames, - nextText : 'Sonraki Ay (Ctrl+Sağ)', - prevText : 'Önceki Ay (Ctrl+Sol)', - monthYearText : 'Bir ay seçin (Yılları değiştirmek için Ctrl+Yukarı/Aşağı)', - todayTip : "{0} (Boşluk)", - format : "d/m/y", - startDay : 1 - }); -} - -if(Ext.PagingToolbar){ - Ext.apply(Ext.PagingToolbar.prototype, { - beforePageText : "Sayfa", - afterPageText : " / {0}", - firstText : "İlk Sayfa", - prevText : "Önceki Sayfa", - nextText : "Sonraki Sayfa", - lastText : "Son Sayfa", - refreshText : "Yenile", - displayMsg : "{2} satırdan {0} - {1} arası gösteriliyor", - emptyMsg : 'Gösterilecek veri yok' - }); -} - -if(Ext.form.TextField){ - Ext.apply(Ext.form.TextField.prototype, { - minLengthText : "Bu alan için minimum uzunluk {0}", - maxLengthText : "Bu alan için maximum uzunluk {0}", - blankText : "Bu alan gerekli", - regexText : "", - emptyText : null - }); -} - -if(Ext.form.NumberField){ - Ext.apply(Ext.form.NumberField.prototype, { - minText : "Bu alan için minimum değer {0}", - maxText : "Bu alan için maximum değer {0}", - nanText : "{0} geçerli bir sayı değil" - }); -} - -if(Ext.form.DateField){ - Ext.apply(Ext.form.DateField.prototype, { - disabledDaysText : "Pasif", - disabledDatesText : "Pasif", - minText : "Bu alana {0} tarihinden sonraki bir tarih girilmeli", - maxText : "Bu alana {0} tarihinden önceki bir tarih girilmeli", - invalidText : "{0} geçerli bir tarih değil - şu formatta olmalı {1}", - format : "d/m/y" - }); -} - -if(Ext.form.ComboBox){ - Ext.apply(Ext.form.ComboBox.prototype, { - loadingText : "Yükleniyor...", - valueNotFoundText : undefined - }); -} - -if(Ext.form.VTypes){ - Ext.apply(Ext.form.VTypes, { - emailText : 'Bu alan bir e-mail adresi formatında olmalı "kullanici@alanadi.com"', - urlText : 'Bu alan bir URL formatında olmalı "http:/'+'/www.alanadi.com"', - alphaText : 'Bu alan sadece harf ve _ içermeli', - alphanumText : 'Bu alan sadece harf, sayı ve _ içermeli' - }); -} - -if(Ext.grid.GridView){ - Ext.apply(Ext.grid.GridView.prototype, { - sortAscText : "Artarak Sırala", - sortDescText : "Azalarak Sırala", - lockText : "Sütünu Kilitle", - unlockText : "Sütunun Kilidini Kaldır", - columnsText : "Sütunlar" - }); -} - -if(Ext.grid.PropertyColumnModel){ - Ext.apply(Ext.grid.PropertyColumnModel.prototype, { - nameText : "İsim", - valueText : "Değer", - dateFormat : "j/m/Y" - }); -} - -if(Ext.SplitLayoutRegion){ - Ext.apply(Ext.SplitLayoutRegion.prototype, { - splitTip : "Boyutlandırmak için sürükleyin.", - collapsibleSplitTip : "Boyutlandırmak için sürükleyin. Gizlemek için çift tıklayın." - }); -} \ No newline at end of file diff --git a/www/extras/extjs/source/locale/ext-lang-vn.js b/www/extras/extjs/source/locale/ext-lang-vn.js deleted file mode 100644 index 66ddddda2..000000000 --- a/www/extras/extjs/source/locale/ext-lang-vn.js +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * List compiled by mystix on the extjs.com forums. - * Thank you Mystix! - */ - -/** - * Vietnamese translation - * By bpmtri - * 12-April-2007 04:06PM - */ - -Ext.UpdateManager.defaults.indicatorText = '
        Äang tải...
        '; - -if(Ext.View){ - Ext.View.prototype.emptyText = ""; -} - -if(Ext.grid.Grid){ - Ext.grid.Grid.prototype.ddText = "{0} dòng được chá»n"; -} - -if(Ext.TabPanelItem){ - Ext.TabPanelItem.prototype.closeText = "Äóng thẻ này"; -} - -if(Ext.form.Field){ - Ext.form.Field.prototype.invalidText = "Giá trị cá»§a ô này không hợp lệ."; -} - -Date.monthNames = [ - "Tháng 1", - "Tháng 2", - "Tháng 3", - "Tháng 4", - "Tháng 5", - "Tháng 6", - "Tháng 7", - "Tháng 8", - "Tháng 9", - "Tháng 10", - "Tháng 11", - "Tháng 12" -]; - -Date.dayNames = [ - "Chá»§ nhật", - "Thứ hai", - "Thứ ba", - "Thứ tư", - "Thứ năm", - "Thứ sáu", - "Thứ bảy" -]; - -if(Ext.MessageBox){ - Ext.MessageBox.buttonText = { - ok : "Äồng ý", - cancel : "Há»§y bá»", - yes : "Có", - no : "Không" - }; -} - -if(Ext.util.Format){ - Ext.util.Format.date = function(v, format){ - if(!v) return ""; - if(!(v instanceof Date)) v = new Date(Date.parse(v)); - return v.dateFormat(format || "d/m/Y"); - }; -} - -if(Ext.DatePicker){ - Ext.apply(Ext.DatePicker.prototype, { - todayText : "Hôm nay", - minText : "Ngày này nhá» hÆ¡n ngày nhá» nhất", - maxText : "Ngày này lá»›n hÆ¡n ngày lá»›n nhất", - disabledDaysText : "", - disabledDatesText : "", - monthNames : Date.monthNames, - dayNames : Date.dayNames, - nextText : 'Tháng sau (Control+Right)', - prevText : 'Tháng trước (Control+Left)', - monthYearText : 'Chá»n má»™t tháng (Control+Up/Down để thay đổi năm)', - todayTip : "{0} (Spacebar - Phím trắng)", - format : "d/m/y" - }); -} - -if(Ext.PagingToolbar){ - Ext.apply(Ext.PagingToolbar.prototype, { - beforePageText : "Trang", - afterPageText : "of {0}", - firstText : "Trang đầu", - prevText : "Trang trước", - nextText : "Trang sau", - lastText : "Trang cuối", - refreshText : "Tải lại", - displayMsg : "Hiển thị {0} - {1} cá»§a {2}", - emptyMsg : 'Không có dữ liệu để hiển thị' - }); -} - -if(Ext.form.TextField){ - Ext.apply(Ext.form.TextField.prototype, { - minLengthText : "Chiá»u dài tối thiểu cá»§a ô này là {0}", - maxLengthText : "Chiá»u dài tối Ä‘a cá»§a ô này là {0}", - blankText : "Ô này cần phải nhập giá trị", - regexText : "", - emptyText : null - }); -} - -if(Ext.form.NumberField){ - Ext.apply(Ext.form.NumberField.prototype, { - minText : "Giá trị nhá» nhất cá»§a ô này là {0}", - maxText : "Giá trị lá»›n nhất cá»§a ô này là {0}", - nanText : "{0} hông phải là má»™t số hợp lệ" - }); -} - -if(Ext.form.DateField){ - Ext.apply(Ext.form.DateField.prototype, { - disabledDaysText : "Vô hiệu", - disabledDatesText : "Vô hiệu", - minText : "Ngày nhập trong ô này phải sau ngày {0}", - maxText : "Ngày nhập trong ô này phải trước ngày {0}", - invalidText : "{0} không phải là má»™t ngày hợp lệ - phải có dạng {1}", - format : "d/m/y" - }); -} - -if(Ext.form.ComboBox){ - Ext.apply(Ext.form.ComboBox.prototype, { - loadingText : "Äang tải...", - valueNotFoundText : undefined - }); -} - -if(Ext.form.VTypes){ - Ext.apply(Ext.form.VTypes, { - emailText : 'Giá trị cá»§a ô này phải là má»™t địa chỉ email có dạng như "ten@abc.com"', - urlText : 'Giá trị cá»§a ô này phải là má»™t địa chỉ web(URL) hợp lệ, có dạng như "http:/'+'/www.domain.com"', - alphaText : 'Ô này chỉ được nhập các kí tá»± và gạch dưới(_)', - alphanumText : 'Ô này chỉ được nhập các kí tá»±, số và gạch dưới(_)' - }); -} - -if(Ext.grid.GridView){ - Ext.apply(Ext.grid.GridView.prototype, { - sortAscText : "Tăng dần", - sortDescText : "Giảm dần", - lockText : "Khóa cá»™t", - unlockText : "Bá» khóa cá»™t", - columnsText : "Các cá»™t" - }); -} - -if(Ext.grid.PropertyColumnModel){ - Ext.apply(Ext.grid.PropertyColumnModel.prototype, { - nameText : "Tên", - valueText : "Giá trị", - dateFormat : "j/m/Y" - }); -} - -if(Ext.SplitLayoutRegion){ - Ext.apply(Ext.SplitLayoutRegion.prototype, { - splitTip : "Kéo giữ chuá»™t để thay đổi kích thước.", - collapsibleSplitTip : "Kéo giữ chuá»™t để thay đổi kích thước. Nhấp đúp để ẩn Ä‘i." - }); -} diff --git a/www/extras/extjs/source/locale/ext-lang-zh_CN.js b/www/extras/extjs/source/locale/ext-lang-zh_CN.js deleted file mode 100644 index a55e468b9..000000000 --- a/www/extras/extjs/source/locale/ext-lang-zh_CN.js +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* - * Simplified Chinese translation - * By DavidHu - * 09 April 2007 - */ - -Ext.UpdateManager.defaults.indicatorText = '
        加载中...
        '; - -if(Ext.View){ - Ext.View.prototype.emptyText = ""; -} - -if(Ext.grid.Grid){ - Ext.grid.Grid.prototype.ddText = "{0} 选择行"; -} - -if(Ext.TabPanelItem){ - Ext.TabPanelItem.prototype.closeText = "关闭"; -} - -if(Ext.form.Field){ - Ext.form.Field.prototype.invalidText = "è¾“å…¥å€¼éžæ³•"; -} - -Date.monthNames = [ - "一月", - "二月", - "三月", - "四月", - "五月", - "六月", - "七月", - "八月", - "乿œˆ", - "åæœˆ", - "å一月", - "å二月" -]; - -Date.dayNames = [ - "周日", - "周一", - "周二", - "周三", - "周四", - "周五", - "周六" -]; - -if(Ext.MessageBox){ - Ext.MessageBox.buttonText = { - ok : "确定", - cancel : "å–æ¶ˆ", - yes : "是", - no : "å¦" - }; -} - -if(Ext.util.Format){ - Ext.util.Format.date = function(v, format){ - if(!v) return ""; - if(!(v instanceof Date)) v = new Date(Date.parse(v)); - return v.dateFormat(format || "yå¹´m月dæ—¥"); - }; -} - -if(Ext.DatePicker){ - Ext.apply(Ext.DatePicker.prototype, { - todayText : "今天", - minText : "æ—¥æœŸåœ¨æœ€å°æ—¥æœŸä¹‹å‰", - maxText : "日期在最大日期之åŽ", - disabledDaysText : "", - disabledDatesText : "", - monthNames : Date.monthNames, - dayNames : Date.dayNames, - nextText : '下月 (Control+Right)', - prevText : '上月 (Control+Left)', - monthYearText : '选择一个月 (Control+Up/Down æ¥æ”¹å˜å¹´)', - todayTip : "{0} (Spacebar)", - format : "yå¹´m月dæ—¥" - }); -} - -if(Ext.PagingToolbar){ - Ext.apply(Ext.PagingToolbar.prototype, { - beforePageText : "页", - afterPageText : "of {0}", - firstText : "第一页", - prevText : "å‰ä¸€é¡µ", - nextText : "下一页", - lastText : "最åŽé¡µ", - refreshText : "刷新", - displayMsg : "显示 {0} - {1} of {2}", - emptyMsg : '没有数æ®éœ€è¦æ˜¾ç¤º' - }); -} - -if(Ext.form.TextField){ - Ext.apply(Ext.form.TextField.prototype, { - minLengthText : "该输入项的最å°é•¿åº¦æ˜¯ {0}", - maxLengthText : "该输入项的最大长度是 {0}", - blankText : "该输入项为必输项", - regexText : "", - emptyText : null - }); -} - -if(Ext.form.NumberField){ - Ext.apply(Ext.form.NumberField.prototype, { - minText : "该输入项的最å°å€¼æ˜¯ {0}", - maxText : "该输入项的最大值是 {0}", - nanText : "{0} 䏿˜¯æœ‰æ•ˆæ•°å€¼" - }); -} - -if(Ext.form.DateField){ - Ext.apply(Ext.form.DateField.prototype, { - disabledDaysText : "ç¦ç”¨", - disabledDatesText : "ç¦ç”¨", - minText : "该输入项的日期必须在 {0} 之åŽ", - maxText : "该输入项的日期必须在 {0} 之å‰", - invalidText : "{0} 是无效的日期 - å¿…é¡»ç¬¦åˆæ ¼å¼ï¼š {1}", - format : "yå¹´m月dæ—¥" - }); -} - -if(Ext.form.ComboBox){ - Ext.apply(Ext.form.ComboBox.prototype, { - loadingText : "加载...", - valueNotFoundText : undefined - }); -} - -if(Ext.form.VTypes){ - Ext.apply(Ext.form.VTypes, { - emailText : '该输入项必须是电å­é‚®ä»¶åœ°å€ï¼Œæ ¼å¼å¦‚: "user@domain.com"', - urlText : '该输入项必须是URL地å€ï¼Œæ ¼å¼å¦‚: "http:/'+'/www.domain.com"', - alphaText : '该输入项åªèƒ½åŒ…å«å­—符和_', - alphanumText : '该输入项åªèƒ½åŒ…å«å­—符,æ•°å­—å’Œ_' - }); -} - -if(Ext.grid.GridView){ - Ext.apply(Ext.grid.GridView.prototype, { - sortAscText : "æ­£åº", - sortDescText : "逆åº", - lockText : "é”列", - unlockText : "è§£é”列", - columnsText : "列" - }); -} - -if(Ext.grid.PropertyColumnModel){ - Ext.apply(Ext.grid.PropertyColumnModel.prototype, { - nameText : "åç§°", - valueText : "值", - dateFormat : "yå¹´m月dæ—¥" - }); -} - -if(Ext.SplitLayoutRegion){ - Ext.apply(Ext.SplitLayoutRegion.prototype, { - splitTip : "æ‹–åŠ¨æ¥æ”¹å˜å°ºå¯¸.", - collapsibleSplitTip : "æ‹–åŠ¨æ¥æ”¹å˜å°ºå¯¸. åŒå‡»éšè—." - }); -} diff --git a/www/extras/extjs/source/locale/ext-lang-zh_TW.js b/www/extras/extjs/source/locale/ext-lang-zh_TW.js deleted file mode 100644 index 66c348ed1..000000000 --- a/www/extras/extjs/source/locale/ext-lang-zh_TW.js +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* - * Traditional Chinese translation - * By hata1234 - * 09 April 2007 - */ - -Ext.UpdateManager.defaults.indicatorText = '
        讀å–中...
        '; - -if(Ext.View){ - Ext.View.prototype.emptyText = ""; -} - -if(Ext.grid.Grid){ - Ext.grid.Grid.prototype.ddText = "鏿“‡äº† {0} 行"; -} - -if(Ext.TabPanelItem){ - Ext.TabPanelItem.prototype.closeText = "關閉此標籤"; -} - -if(Ext.form.Field){ - Ext.form.Field.prototype.invalidText = "數值ä¸ç¬¦åˆæ¬„ä½è¦å®š"; -} - -Date.monthNames = [ - "一月", - "二月", - "三月", - "四月", - "五月", - "六月", - "七月", - "八月", - "乿œˆ", - "åæœˆ", - "å一月", - "å二月" -]; - -Date.dayNames = [ - "æ—¥", - "一", - "二", - "三", - "å››", - "五", - "å…­" -]; - -if(Ext.MessageBox){ - Ext.MessageBox.buttonText = { - ok : "確定", - cancel : "å–æ¶ˆ", - yes : "是", - no : "å¦" - }; -} - -if(Ext.util.Format){ - Ext.util.Format.date = function(v, format){ - if(!v) return ""; - if(!(v instanceof Date)) v = new Date(Date.parse(v)); - return v.dateFormat(format || "Y/m/d"); - }; -} - -if(Ext.DatePicker){ - Ext.apply(Ext.DatePicker.prototype, { - todayText : "今天", - minText : "日期必須大於最å°å®¹è¨±æ—¥æœŸ", - maxText : "æ—¥æœŸå¿…é ˆå°æ–¼æœ€å¤§å®¹è¨±æ—¥æœŸ", - disabledDaysText : "", - disabledDatesText : "", - monthNames : Date.monthNames, - dayNames : Date.dayNames, - nextText : "下個月 (Ctrl+峿–¹å‘éµ)", - prevText : "上個月 (Ctrl+左方å‘éµ)", - monthYearText : "鏿“‡æœˆä»½ (Ctrl+上/下方å‘éµé¸æ“‡å¹´ä»½)", - todayTip : "{0} (空白éµ)", - format : "y/m/d" - }); -} - -if(Ext.PagingToolbar){ - Ext.apply(Ext.PagingToolbar.prototype, { - beforePageText : "第", - afterPageText : "é ï¼Œå…±{0}é ", - firstText : "第一é ", - prevText : "上一é ", - nextText : "下一é ", - lastText : "最後é ", - refreshText : "釿–°æ•´ç†", - displayMsg : "顯示{0} - {1}é ,å…±{2}é ", - emptyMsg : '沒有任何資料' - }); -} - -if(Ext.form.TextField){ - Ext.apply(Ext.form.TextField.prototype, { - minLengthText : "æ­¤æ¬„ä½æœ€å°‘è¦è¼¸å…¥ {0} 個字", - maxLengthText : "æ­¤æ¬„ä½æœ€å¤šè¼¸å…¥ {0} 個字", - blankText : "此欄ä½ç‚ºå¿…å¡«", - regexText : "", - emptyText : null - }); -} - -if(Ext.form.NumberField){ - Ext.apply(Ext.form.NumberField.prototype, { - minText : "此欄ä½ä¹‹æ•¸å€¼å¿…須大於 {0}", - maxText : "此欄ä½ä¹‹æ•¸å€¼å¿…é ˆå°æ–¼ {0}", - nanText : "{0} 䏿˜¯åˆæ³•的數字" - }); -} - -if(Ext.form.DateField){ - Ext.apply(Ext.form.DateField.prototype, { - disabledDaysText : "無法使用", - disabledDatesText : "無法使用", - minText : "此欄ä½ä¹‹æ—¥æœŸå¿…須在 {0} 之後", - maxText : "此欄ä½ä¹‹æ—¥æœŸå¿…須在 {0} 之å‰", - invalidText : "{0} 䏿˜¯æ­£ç¢ºçš„æ—¥æœŸæ ¼å¼ - å¿…é ˆåƒæ˜¯ 「 {1} 〠這樣的格å¼", - format : "Y/m/d" - }); -} - -if(Ext.form.ComboBox){ - Ext.apply(Ext.form.ComboBox.prototype, { - loadingText : "讀å–中 ...", - valueNotFoundText : undefined - }); -} - -if(Ext.form.VTypes){ - Ext.apply(Ext.form.VTypes, { - emailText : '此欄ä½å¿…é ˆè¼¸å…¥åƒ "user@domain.com" 之E-Mailæ ¼å¼', - urlText : '此欄ä½å¿…é ˆè¼¸å…¥åƒ "http:/'+'/www.domain.com" ä¹‹ç¶²å€æ ¼å¼', - alphaText : '此欄ä½åƒ…能輸入åŠå½¢è‹±æ–‡å­—æ¯åŠåº•ç·š( _ )符號', - alphanumText : '此欄ä½åƒ…能輸入åŠå½¢è‹±æ–‡å­—æ¯ã€æ•¸å­—åŠåº•ç·š( _ )符號' - }); -} - -if(Ext.grid.GridView){ - Ext.apply(Ext.grid.GridView.prototype, { - sortAscText : "æ­£å‘æŽ’åº", - sortDescText : "å呿ޒåº", - lockText : "鎖定欄ä½", - unlockText : "解開欄ä½éŽ–å®š", - columnsText : "欄ä½" - }); -} - -if(Ext.grid.PropertyColumnModel){ - Ext.apply(Ext.grid.PropertyColumnModel.prototype, { - nameText : "å稱", - valueText : "數值", - dateFormat : "Y/m/d" - }); -} - -if(Ext.SplitLayoutRegion){ - Ext.apply(Ext.SplitLayoutRegion.prototype, { - splitTip : "拖曳縮放大å°.", - collapsibleSplitTip : "拖曳縮放大å°. 滑鼠雙擊隱è—." - }); -} diff --git a/www/extras/extjs/source/state/State.js b/www/extras/extjs/source/state/State.js deleted file mode 100644 index bff1866dd..000000000 --- a/www/extras/extjs/source/state/State.js +++ /dev/null @@ -1,285 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.state.Provider - * Abstract base class for state provider implementations. This class provides methods - * for encoding and decoding typed variables including dates and defines the - * Provider interface. - */ -Ext.state.Provider = function(){ - Ext.state.Provider.superclass.constructor.call(this); - /** - * @event statechange - * Fires when a state change occurs. - * @param {Provider} this This state provider - * @param {String} key The state key which was changed - * @param {String} value The encoded value for the state - */ - this.addEvents({ - "statechange": true - }); - this.state = {}; - Ext.state.Provider.superclass.constructor.call(this); -}; -Ext.extend(Ext.state.Provider, Ext.util.Observable, { - /** - * Returns the current value for a key - * @param {String} name The key name - * @param {Mixed} defaultValue A default value to return if the key's value is not found - * @return {Mixed} The state data - */ - get : function(name, defaultValue){ - return typeof this.state[name] == "undefined" ? - defaultValue : this.state[name]; - }, - - /** - * Clears a value from the state - * @param {String} name The key name - */ - clear : function(name){ - delete this.state[name]; - this.fireEvent("statechange", this, name, null); - }, - - /** - * Sets the value for a key - * @param {String} name The key name - * @param {Mixed} value The value to set - */ - set : function(name, value){ - this.state[name] = value; - this.fireEvent("statechange", this, name, value); - }, - - /** - * Decodes a string previously encoded with {@link #encodeValue}. - * @param {String} value The value to decode - * @return {Mixed} The decoded value - */ - decodeValue : function(cookie){ - var re = /^(a|n|d|b|s|o)\:(.*)$/; - var matches = re.exec(unescape(cookie)); - if(!matches || !matches[1]) return; // non state cookie - var type = matches[1]; - var v = matches[2]; - switch(type){ - case "n": - return parseFloat(v); - case "d": - return new Date(Date.parse(v)); - case "b": - return (v == "1"); - case "a": - var all = []; - var values = v.split("^"); - for(var i = 0, len = values.length; i < len; i++){ - all.push(this.decodeValue(values[i])); - } - return all; - case "o": - var all = {}; - var values = v.split("^"); - for(var i = 0, len = values.length; i < len; i++){ - var kv = values[i].split("="); - all[kv[0]] = this.decodeValue(kv[1]); - } - return all; - default: - return v; - } - }, - - /** - * Encodes a value including type information. Decode with {@link #decodeValue}. - * @param {Mixed} value The value to encode - * @return {String} The encoded value - */ - encodeValue : function(v){ - var enc; - if(typeof v == "number"){ - enc = "n:" + v; - }else if(typeof v == "boolean"){ - enc = "b:" + (v ? "1" : "0"); - }else if(v instanceof Date){ - enc = "d:" + v.toGMTString(); - }else if(v instanceof Array){ - var flat = ""; - for(var i = 0, len = v.length; i < len; i++){ - flat += this.encodeValue(v[i]); - if(i != len-1) flat += "^"; - } - enc = "a:" + flat; - }else if(typeof v == "object"){ - var flat = ""; - for(var key in v){ - if(typeof v[key] != "function"){ - flat += key + "=" + this.encodeValue(v[key]) + "^"; - } - } - enc = "o:" + flat.substring(0, flat.length-1); - }else{ - enc = "s:" + v; - } - return escape(enc); - } -}); - -/** - * @class Ext.state.Manager - * This is the global state manager. By default all components that are "state aware" check this class - * for state information if you don't pass them a custom state provider. In order for this class - * to be useful, it must be initialized with a provider when your application initializes. -
        
        -// in your initialization function
        -init : function(){
        -   Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
        -   ...
        -   // supposed you have a {@link Ext.BorderLayout}
        -   var layout = new Ext.BorderLayout(...);
        -   layout.restoreState();
        -   // or a {Ext.BasicDialog}
        -   var dialog = new Ext.BasicDialog(...);
        -   dialog.restoreState();
        - 
        - * @singleton - */ -Ext.state.Manager = function(){ - var provider = new Ext.state.Provider(); - - return { - /** - * Configures the default state provider for your application - * @param {Provider} stateProvider The state provider to set - */ - setProvider : function(stateProvider){ - provider = stateProvider; - }, - - /** - * Returns the current value for a key - * @param {String} name The key name - * @param {Mixed} defaultValue The default value to return if the key lookup does not match - * @return {Mixed} The state data - */ - get : function(key, defaultValue){ - return provider.get(key, defaultValue); - }, - - /** - * Sets the value for a key - * @param {String} name The key name - * @param {Mixed} value The state data - */ - set : function(key, value){ - provider.set(key, value); - }, - - /** - * Clears a value from the state - * @param {String} name The key name - */ - clear : function(key){ - provider.clear(key); - }, - - /** - * Gets the currently configured state provider - * @return {Provider} The state provider - */ - getProvider : function(){ - return provider; - } - }; -}(); - -/** - * @class Ext.state.CookieProvider - * @extends Ext.state.Provider - * The default Provider implementation which saves state via cookies. - *
        Usage: -
        
        -   var cp = new Ext.state.CookieProvider({
        -       path: "/cgi-bin/",
        -       expires: new Date(new Date().getTime()+(1000*60*60*24*30)); //30 days
        -       domain: "extjs.com"
        -   })
        -   Ext.state.Manager.setProvider(cp);
        - 
        - * @cfg {String} path The path for which the cookie is active (defaults to root '/' which makes it active for all pages in the site) - * @cfg {Date} expires The cookie expiration date (defaults to 7 days from now) - * @cfg {String} domain The domain to save the cookie for. Note that you cannot specify a different domain than - * your page is on, but you can specify a sub-domain, or simply the domain itself like 'extjs.com' to include - * all sub-domains if you need to access cookies across different sub-domains (defaults to null which uses the same - * domain the page is running on including the 'www' like 'www.extjs.com') - * @cfg {Boolean} secure True if the site is using SSL (defaults to false) - * @constructor - * Create a new CookieProvider - * @param {Object} config The configuration object - */ -Ext.state.CookieProvider = function(config){ - Ext.state.CookieProvider.superclass.constructor.call(this); - this.path = "/"; - this.expires = new Date(new Date().getTime()+(1000*60*60*24*7)); //7 days - this.domain = null; - this.secure = false; - Ext.apply(this, config); - this.state = this.readCookies(); -}; - -Ext.extend(Ext.state.CookieProvider, Ext.state.Provider, { - // private - set : function(name, value){ - if(typeof value == "undefined" || value === null){ - this.clear(name); - return; - } - this.setCookie(name, value); - Ext.state.CookieProvider.superclass.set.call(this, name, value); - }, - - // private - clear : function(name){ - this.clearCookie(name); - Ext.state.CookieProvider.superclass.clear.call(this, name); - }, - - // private - readCookies : function(){ - var cookies = {}; - var c = document.cookie + ";"; - var re = /\s?(.*?)=(.*?);/g; - var matches; - while((matches = re.exec(c)) != null){ - var name = matches[1]; - var value = matches[2]; - if(name && name.substring(0,3) == "ys-"){ - cookies[name.substr(3)] = this.decodeValue(value); - } - } - return cookies; - }, - - // private - setCookie : function(name, value){ - document.cookie = "ys-"+ name + "=" + this.encodeValue(value) + - ((this.expires == null) ? "" : ("; expires=" + this.expires.toGMTString())) + - ((this.path == null) ? "" : ("; path=" + this.path)) + - ((this.domain == null) ? "" : ("; domain=" + this.domain)) + - ((this.secure == true) ? "; secure" : ""); - }, - - // private - clearCookie : function(name){ - document.cookie = "ys-" + name + "=null; expires=Thu, 01-Jan-70 00:00:01 GMT" + - ((this.path == null) ? "" : ("; path=" + this.path)) + - ((this.domain == null) ? "" : ("; domain=" + this.domain)) + - ((this.secure == true) ? "; secure" : ""); - } -}); diff --git a/www/extras/extjs/source/util/CSS.js b/www/extras/extjs/source/util/CSS.js deleted file mode 100644 index c5cdf009e..000000000 --- a/www/extras/extjs/source/util/CSS.js +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.util.CSS - * Utility class for manipulating CSS rules - * @singleton - */ -Ext.util.CSS = function(){ - var rules = null; - var doc = document; - - var camelRe = /(-[a-z])/gi; - var camelFn = function(m, a){ return a.charAt(1).toUpperCase(); }; - - return { - /** - * Very simple dynamic creation of stylesheets from a text blob of rules. The text will wrapped in a style - * tag and appended to the HEAD of the document. - * @param {String} cssText The text containing the css rules - * @return {StyleSheet} - */ - createStyleSheet : function(cssText){ - var ss; - if(Ext.isIE){ - ss = doc.createStyleSheet(); - ss.cssText = cssText; - }else{ - var head = doc.getElementsByTagName("head")[0]; - var rules = doc.createElement("style"); - rules.setAttribute("type", "text/css"); - try{ - rules.appendChild(doc.createTextNode(cssText)); - }catch(e){ - rules.cssText = cssText; - } - head.appendChild(rules); - ss = rules.styleSheet ? rules.styleSheet : (rules.sheet || doc.styleSheets[doc.styleSheets.length-1]); - } - this.cacheStyleSheet(ss); - return ss; - }, - - /** - * Removes a style or link tag by id - * @param {String} id The id of the tag - */ - removeStyleSheet : function(id){ - var existing = doc.getElementById(id); - if(existing){ - existing.parentNode.removeChild(existing); - } - }, - - /** - * Dynamically swaps an existing stylesheet reference for a new one - * @param {String} id The id of an existing link tag to remove - * @param {String} url The href of the new stylesheet to include - */ - swapStyleSheet : function(id, url){ - this.removeStyleSheet(id); - var ss = doc.createElement("link"); - ss.setAttribute("rel", "stylesheet"); - ss.setAttribute("type", "text/css"); - ss.setAttribute("id", id); - ss.setAttribute("href", url); - doc.getElementsByTagName("head")[0].appendChild(ss); - }, - - /** - * Refresh the rule cache if you have dynamically added stylesheets - * @return {Object} An object (hash) of rules indexed by selector - */ - refreshCache : function(){ - return this.getRules(true); - }, - - // private - cacheStyleSheet : function(ss){ - if(!rules){ - rules = {}; - } - try{// try catch for cross domain access issue - var ssRules = ss.cssRules || ss.rules; - for(var j = ssRules.length-1; j >= 0; --j){ - rules[ssRules[j].selectorText] = ssRules[j]; - } - }catch(e){} - }, - - /** - * Gets all css rules for the document - * @param {Boolean} refreshCache true to refresh the internal cache - * @return {Object} An object (hash) of rules indexed by selector - */ - getRules : function(refreshCache){ - if(rules == null || refreshCache){ - rules = {}; - var ds = doc.styleSheets; - for(var i =0, len = ds.length; i < len; i++){ - try{ - this.cacheStyleSheet(ds[i]); - }catch(e){} - } - } - return rules; - }, - - /** - * Gets an an individual CSS rule by selector(s) - * @param {String/Array} selector The CSS selector or an array of selectors to try. The first selector that is found is returned. - * @param {Boolean} refreshCache true to refresh the internal cache if you have recently updated any rules or added styles dynamically - * @return {CSSRule} The CSS rule or null if one is not found - */ - getRule : function(selector, refreshCache){ - var rs = this.getRules(refreshCache); - if(!(selector instanceof Array)){ - return rs[selector]; - } - for(var i = 0; i < selector.length; i++){ - if(rs[selector[i]]){ - return rs[selector[i]]; - } - } - return null; - }, - - - /** - * Updates a rule property - * @param {String/Array} selector If it's an array it tries each selector until it finds one. Stops immediately once one is found. - * @param {String} property The css property - * @param {String} value The new value for the property - * @return {Boolean} true If a rule was found and updated - */ - updateRule : function(selector, property, value){ - if(!(selector instanceof Array)){ - var rule = this.getRule(selector); - if(rule){ - rule.style[property.replace(camelRe, camelFn)] = value; - return true; - } - }else{ - for(var i = 0; i < selector.length; i++){ - if(this.updateRule(selector[i], property, value)){ - return true; - } - } - } - return false; - } - }; -}(); \ No newline at end of file diff --git a/www/extras/extjs/source/util/ClickRepeater.js b/www/extras/extjs/source/util/ClickRepeater.js deleted file mode 100644 index 48114f738..000000000 --- a/www/extras/extjs/source/util/ClickRepeater.js +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - @class Ext.util.ClickRepeater - @extends Ext.util.Observable - - A wrapper class which can be applied to any element. Fires a "click" event while the - mouse is pressed. The interval between firings may be specified in the config but - defaults to 10 milliseconds. - - Optionally, a CSS class may be applied to the element during the time it is pressed. - - @cfg {String/HTMLElement/Element} el The element to act as a button. - @cfg {Number} delay The initial delay before the repeating event begins firing. - Similar to an autorepeat key delay. - @cfg {Number} interval The interval between firings of the "click" event. Default 10 ms. - @cfg {String} pressClass A CSS class name to be applied to the element while pressed. - @cfg {Boolean} accelerate True if autorepeating should start slowly and accelerate. - "interval" and "delay" are ignored. "immediate" is honored. - @cfg {Boolean} preventDefault True to prevent the default click event - @cfg {Boolean} stopDefault True to stop the default click event - - @history - 2007-02-02 jvs Original code contributed by Nige "Animal" White - 2007-02-02 jvs Renamed to ClickRepeater - 2007-02-03 jvs Modifications for FF Mac and Safari - - @constructor - @param {String/HTMLElement/Element} el The element to listen on - @param {Object} config - */ -Ext.util.ClickRepeater = function(el, config) -{ - this.el = Ext.get(el); - this.el.unselectable(); - - Ext.apply(this, config); - - this.addEvents({ - /** - * @event mousedown - * Fires when the mouse button is depressed. - * @param {Ext.util.ClickRepeater} this - */ - "mousedown" : true, - /** - * @event click - * Fires on a specified interval during the time the element is pressed. - * @param {Ext.util.ClickRepeater} this - */ - "click" : true, - /** - * @event mouseup - * Fires when the mouse key is released. - * @param {Ext.util.ClickRepeater} this - */ - "mouseup" : true - }); - - this.el.on("mousedown", this.handleMouseDown, this); - if(this.preventDefault || this.stopDefault){ - this.el.on("click", function(e){ - if(this.preventDefault){ - e.preventDefault(); - } - if(this.stopDefault){ - e.stopEvent(); - } - }, this); - } - - // allow inline handler - if(this.handler){ - this.on("click", this.handler, this.scope || this); - } - - Ext.util.ClickRepeater.superclass.constructor.call(this); -}; - -Ext.extend(Ext.util.ClickRepeater, Ext.util.Observable, { - interval : 20, - delay: 250, - preventDefault : true, - stopDefault : false, - timer : 0, - docEl : Ext.get(document), - - // private - handleMouseDown : function(){ - clearTimeout(this.timer); - this.el.blur(); - if(this.pressClass){ - this.el.addClass(this.pressClass); - } - this.mousedownTime = new Date(); - - this.docEl.on("mouseup", this.handleMouseUp, this); - this.el.on("mouseout", this.handleMouseOut, this); - - this.fireEvent("mousedown", this); - this.fireEvent("click", this); - - this.timer = this.click.defer(this.delay || this.interval, this); - }, - - // private - click : function(){ - this.fireEvent("click", this); - this.timer = this.click.defer(this.getInterval(), this); - }, - - // private - getInterval: function(){ - if(!this.accelerate){ - return this.interval; - } - var pressTime = this.mousedownTime.getElapsed(); - if(pressTime < 500){ - return 400; - }else if(pressTime < 1700){ - return 320; - }else if(pressTime < 2600){ - return 250; - }else if(pressTime < 3500){ - return 180; - }else if(pressTime < 4400){ - return 140; - }else if(pressTime < 5300){ - return 80; - }else if(pressTime < 6200){ - return 50; - }else{ - return 10; - } - }, - - // private - handleMouseOut : function(){ - clearTimeout(this.timer); - if(this.pressClass){ - this.el.removeClass(this.pressClass); - } - this.el.on("mouseover", this.handleMouseReturn, this); - }, - - // private - handleMouseReturn : function(){ - this.el.un("mouseover", this.handleMouseReturn); - if(this.pressClass){ - this.el.addClass(this.pressClass); - } - this.click(); - }, - - // private - handleMouseUp : function(){ - clearTimeout(this.timer); - this.el.un("mouseover", this.handleMouseReturn); - this.el.un("mouseout", this.handleMouseOut); - this.docEl.un("mouseup", this.handleMouseUp); - this.el.removeClass(this.pressClass); - this.fireEvent("mouseup", this); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/util/Date.js b/www/extras/extjs/source/util/Date.js deleted file mode 100644 index 01f5c9d1a..000000000 --- a/www/extras/extjs/source/util/Date.js +++ /dev/null @@ -1,711 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Date - * - * The date parsing and format syntax is a subset of - * PHP's date() function, and the formats that are - * supported will provide results equivalent to their PHP versions. - * - * Following is the list of all currently supported formats: - *
        -Sample date:
        -'Wed Jan 10 2007 15:05:01 GMT-0600 (Central Standard Time)'
        -
        -Format  Output      Description
        -------  ----------  --------------------------------------------------------------
        -  d      10         Day of the month, 2 digits with leading zeros
        -  D      Wed        A textual representation of a day, three letters
        -  j      10         Day of the month without leading zeros
        -  l      Wednesday  A full textual representation of the day of the week
        -  S      th         English ordinal day of month suffix, 2 chars (use with j)
        -  w      3          Numeric representation of the day of the week
        -  z      9          The julian date, or day of the year (0-365)
        -  W      01         ISO-8601 2-digit week number of year, weeks starting on Monday (00-52)
        -  F      January    A full textual representation of the month
        -  m      01         Numeric representation of a month, with leading zeros
        -  M      Jan        Month name abbreviation, three letters
        -  n      1          Numeric representation of a month, without leading zeros
        -  t      31         Number of days in the given month
        -  L      0          Whether it's a leap year (1 if it is a leap year, else 0)
        -  Y      2007       A full numeric representation of a year, 4 digits
        -  y      07         A two digit representation of a year
        -  a      pm         Lowercase Ante meridiem and Post meridiem	
        -  A      PM         Uppercase Ante meridiem and Post meridiem
        -  g      3          12-hour format of an hour without leading zeros
        -  G      15         24-hour format of an hour without leading zeros
        -  h      03         12-hour format of an hour with leading zeros
        -  H      15         24-hour format of an hour with leading zeros
        -  i      05         Minutes with leading zeros
        -  s      01         Seconds, with leading zeros
        -  O      -0600      Difference to Greenwich time (GMT) in hours
        -  T      CST        Timezone setting of the machine running the code
        -  Z      -21600     Timezone offset in seconds (negative if west of UTC, positive if east)
        -
        - * - * Example usage (note that you must escape format specifiers with '\\' to render them as character literals): - *
        
        -var dt = new Date('1/10/2007 03:05:01 PM GMT-0600');
        -document.write(dt.format('Y-m-d'));                         //2007-01-10
        -document.write(dt.format('F j, Y, g:i a'));                 //January 10, 2007, 3:05 pm
        -document.write(dt.format('l, \\t\\he dS of F Y h:i:s A'));  //Wednesday, the 10th of January 2007 03:05:01 PM
        - 
        - * - * Here are some standard date/time patterns that you might find helpful. They - * are not part of the source of Date.js, but to use them you can simply copy this - * block of code into any script that is included after Date.js and they will also become - * globally available on the Date object. Feel free to add or remove patterns as needed in your code. - *
        
        -Date.patterns = {
        -    ISO8601Long:"Y-m-d H:i:s",
        -    ISO8601Short:"Y-m-d",
        -    ShortDate: "n/j/Y",
        -    LongDate: "l, F d, Y",
        -    FullDateTime: "l, F d, Y g:i:s A",
        -    MonthDay: "F d",
        -    ShortTime: "g:i A",
        -    LongTime: "g:i:s A",
        -    SortableDateTime: "Y-m-d\\TH:i:s",
        -    UniversalSortableDateTime: "Y-m-d H:i:sO",
        -    YearMonth: "F, Y"
        -};
        -
        - * - * Example usage: - *
        
        -var dt = new Date();
        -document.write(dt.format(Date.patterns.ShortDate));
        - 
        - */ - -/* - * Most of the date-formatting functions below are the excellent work of Baron Schwartz. - * They generate precompiled functions from date formats instead of parsing and - * processing the pattern every time you format a date. These functions are available - * on every Date object (any javascript function). - * - * The original article and download are here: - * http://www.xaprb.com/blog/2005/12/12/javascript-closures-for-runtime-efficiency/ - * - */ - -// private -Date.parseFunctions = {count:0}; -// private -Date.parseRegexes = []; -// private -Date.formatFunctions = {count:0}; - -// private -Date.prototype.dateFormat = function(format) { - if (Date.formatFunctions[format] == null) { - Date.createNewFormat(format); - } - var func = Date.formatFunctions[format]; - return this[func](); -}; - - -/** - * Formats a date given the supplied format string - * @param {String} format The format string - * @return {String} The formatted date - * @method - */ -Date.prototype.format = Date.prototype.dateFormat; - -// private -Date.createNewFormat = function(format) { - var funcName = "format" + Date.formatFunctions.count++; - Date.formatFunctions[format] = funcName; - var code = "Date.prototype." + funcName + " = function(){return "; - var special = false; - var ch = ''; - for (var i = 0; i < format.length; ++i) { - ch = format.charAt(i); - if (!special && ch == "\\") { - special = true; - } - else if (special) { - special = false; - code += "'" + String.escape(ch) + "' + "; - } - else { - code += Date.getFormatCode(ch); - } - } - eval(code.substring(0, code.length - 3) + ";}"); -}; - -// private -Date.getFormatCode = function(character) { - switch (character) { - case "d": - return "String.leftPad(this.getDate(), 2, '0') + "; - case "D": - return "Date.dayNames[this.getDay()].substring(0, 3) + "; - case "j": - return "this.getDate() + "; - case "l": - return "Date.dayNames[this.getDay()] + "; - case "S": - return "this.getSuffix() + "; - case "w": - return "this.getDay() + "; - case "z": - return "this.getDayOfYear() + "; - case "W": - return "this.getWeekOfYear() + "; - case "F": - return "Date.monthNames[this.getMonth()] + "; - case "m": - return "String.leftPad(this.getMonth() + 1, 2, '0') + "; - case "M": - return "Date.monthNames[this.getMonth()].substring(0, 3) + "; - case "n": - return "(this.getMonth() + 1) + "; - case "t": - return "this.getDaysInMonth() + "; - case "L": - return "(this.isLeapYear() ? 1 : 0) + "; - case "Y": - return "this.getFullYear() + "; - case "y": - return "('' + this.getFullYear()).substring(2, 4) + "; - case "a": - return "(this.getHours() < 12 ? 'am' : 'pm') + "; - case "A": - return "(this.getHours() < 12 ? 'AM' : 'PM') + "; - case "g": - return "((this.getHours() %12) ? this.getHours() % 12 : 12) + "; - case "G": - return "this.getHours() + "; - case "h": - return "String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + "; - case "H": - return "String.leftPad(this.getHours(), 2, '0') + "; - case "i": - return "String.leftPad(this.getMinutes(), 2, '0') + "; - case "s": - return "String.leftPad(this.getSeconds(), 2, '0') + "; - case "O": - return "this.getGMTOffset() + "; - case "T": - return "this.getTimezone() + "; - case "Z": - return "(this.getTimezoneOffset() * -60) + "; - default: - return "'" + String.escape(character) + "' + "; - } -}; - -/** - * Parses the passed string using the specified format. Example Usage: -
        
        -var date = Date.parseDate('2006-12-25', 'Y-m-d');
        -
        - * @param {String} input The unparsed date as a string - * @param {String} format The format the date is in - * @return {Date} The parsed date - * @static - */ -Date.parseDate = function(input, format) { - if (Date.parseFunctions[format] == null) { - Date.createParser(format); - } - var func = Date.parseFunctions[format]; - return Date[func](input); -}; - -// private -Date.createParser = function(format) { - var funcName = "parse" + Date.parseFunctions.count++; - var regexNum = Date.parseRegexes.length; - var currentGroup = 1; - Date.parseFunctions[format] = funcName; - - var code = "Date." + funcName + " = function(input){\n" - + "var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1;\n" - + "var d = new Date();\n" - + "y = d.getFullYear();\n" - + "m = d.getMonth();\n" - + "d = d.getDate();\n" - + "var results = input.match(Date.parseRegexes[" + regexNum + "]);\n" - + "if (results && results.length > 0) {"; - var regex = ""; - - var special = false; - var ch = ''; - for (var i = 0; i < format.length; ++i) { - ch = format.charAt(i); - if (!special && ch == "\\") { - special = true; - } - else if (special) { - special = false; - regex += String.escape(ch); - } - else { - var obj = Date.formatCodeToRegex(ch, currentGroup); - currentGroup += obj.g; - regex += obj.s; - if (obj.g && obj.c) { - code += obj.c; - } - } - } - - code += "if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n" - + "{return new Date(y, m, d, h, i, s);}\n" - + "else if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n" - + "{return new Date(y, m, d, h, i);}\n" - + "else if (y > 0 && m >= 0 && d > 0 && h >= 0)\n" - + "{return new Date(y, m, d, h);}\n" - + "else if (y > 0 && m >= 0 && d > 0)\n" - + "{return new Date(y, m, d);}\n" - + "else if (y > 0 && m >= 0)\n" - + "{return new Date(y, m);}\n" - + "else if (y > 0)\n" - + "{return new Date(y);}\n" - + "}return null;}"; - - Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$"); - eval(code); -}; - -// private -Date.formatCodeToRegex = function(character, currentGroup) { - switch (character) { - case "D": - return {g:0, - c:null, - s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"}; - case "j": - case "d": - return {g:1, - c:"d = parseInt(results[" + currentGroup + "], 10);\n", - s:"(\\d{1,2})"}; - case "l": - return {g:0, - c:null, - s:"(?:" + Date.dayNames.join("|") + ")"}; - case "S": - return {g:0, - c:null, - s:"(?:st|nd|rd|th)"}; - case "w": - return {g:0, - c:null, - s:"\\d"}; - case "z": - return {g:0, - c:null, - s:"(?:\\d{1,3})"}; - case "W": - return {g:0, - c:null, - s:"(?:\\d{2})"}; - case "F": - return {g:1, - c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "].substring(0, 3)], 10);\n", - s:"(" + Date.monthNames.join("|") + ")"}; - case "M": - return {g:1, - c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "]], 10);\n", - s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"}; - case "n": - case "m": - return {g:1, - c:"m = parseInt(results[" + currentGroup + "], 10) - 1;\n", - s:"(\\d{1,2})"}; - case "t": - return {g:0, - c:null, - s:"\\d{1,2}"}; - case "L": - return {g:0, - c:null, - s:"(?:1|0)"}; - case "Y": - return {g:1, - c:"y = parseInt(results[" + currentGroup + "], 10);\n", - s:"(\\d{4})"}; - case "y": - return {g:1, - c:"var ty = parseInt(results[" + currentGroup + "], 10);\n" - + "y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n", - s:"(\\d{1,2})"}; - case "a": - return {g:1, - c:"if (results[" + currentGroup + "] == 'am') {\n" - + "if (h == 12) { h = 0; }\n" - + "} else { if (h < 12) { h += 12; }}", - s:"(am|pm)"}; - case "A": - return {g:1, - c:"if (results[" + currentGroup + "] == 'AM') {\n" - + "if (h == 12) { h = 0; }\n" - + "} else { if (h < 12) { h += 12; }}", - s:"(AM|PM)"}; - case "g": - case "G": - case "h": - case "H": - return {g:1, - c:"h = parseInt(results[" + currentGroup + "], 10);\n", - s:"(\\d{1,2})"}; - case "i": - return {g:1, - c:"i = parseInt(results[" + currentGroup + "], 10);\n", - s:"(\\d{2})"}; - case "s": - return {g:1, - c:"s = parseInt(results[" + currentGroup + "], 10);\n", - s:"(\\d{2})"}; - case "O": - return {g:0, - c:null, - s:"[+-]\\d{4}"}; - case "T": - return {g:0, - c:null, - s:"[A-Z]{3}"}; - case "Z": - return {g:0, - c:null, - s:"[+-]\\d{1,5}"}; - default: - return {g:0, - c:null, - s:String.escape(character)}; - } -}; - -/** - * Get the timezone abbreviation of the current date (equivalent to the format specifier 'T'). - * @return {String} The abbreviated timezone name (e.g. 'CST') - */ -Date.prototype.getTimezone = function() { - return this.toString().replace( - /^.*? ([A-Z]{3}) [0-9]{4}.*$/, "$1").replace( - /^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/, "$1$2$3"); -}; - -/** - * Get the offset from GMT of the current date (equivalent to the format specifier 'O'). - * @return {String} The 4-character offset string prefixed with + or - (e.g. '-0600') - */ -Date.prototype.getGMTOffset = function() { - return (this.getTimezoneOffset() > 0 ? "-" : "+") - + String.leftPad(Math.floor(this.getTimezoneOffset() / 60), 2, "0") - + String.leftPad(this.getTimezoneOffset() % 60, 2, "0"); -}; - -/** - * Get the numeric day number of the year, adjusted for leap year. - * @return {Number} 0 through 365 (366 in leap years) - */ -Date.prototype.getDayOfYear = function() { - var num = 0; - Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28; - for (var i = 0; i < this.getMonth(); ++i) { - num += Date.daysInMonth[i]; - } - return num + this.getDate() - 1; -}; - -/** - * Get the string representation of the numeric week number of the year - * (equivalent to the format specifier 'W'). - * @return {String} '00' through '52' - */ -Date.prototype.getWeekOfYear = function() { - // Skip to Thursday of this week - var now = this.getDayOfYear() + (4 - this.getDay()); - // Find the first Thursday of the year - var jan1 = new Date(this.getFullYear(), 0, 1); - var then = (7 - jan1.getDay() + 4); - return String.leftPad(((now - then) / 7) + 1, 2, "0"); -}; - -/** - * Whether or not the current date is in a leap year. - * @return {Boolean} True if the current date is in a leap year, else false - */ -Date.prototype.isLeapYear = function() { - var year = this.getFullYear(); - return ((year & 3) == 0 && (year % 100 || (year % 400 == 0 && year))); -}; - -/** - * Get the first day of the current month, adjusted for leap year. The returned value - * is the numeric day index within the week (0-6) which can be used in conjunction with - * the {@link #monthNames} array to retrieve the textual day name. - * Example: - *
        
        -var dt = new Date('1/10/2007');
        -document.write(Date.dayNames[dt.getFirstDayOfMonth()]); //output: 'Monday'
        -
        - * @return {Number} The day number (0-6) - */ -Date.prototype.getFirstDayOfMonth = function() { - var day = (this.getDay() - (this.getDate() - 1)) % 7; - return (day < 0) ? (day + 7) : day; -}; - -/** - * Get the last day of the current month, adjusted for leap year. The returned value - * is the numeric day index within the week (0-6) which can be used in conjunction with - * the {@link #monthNames} array to retrieve the textual day name. - * Example: - *
        
        -var dt = new Date('1/10/2007');
        -document.write(Date.dayNames[dt.getLastDayOfMonth()]); //output: 'Wednesday'
        -
        - * @return {Number} The day number (0-6) - */ -Date.prototype.getLastDayOfMonth = function() { - var day = (this.getDay() + (Date.daysInMonth[this.getMonth()] - this.getDate())) % 7; - return (day < 0) ? (day + 7) : day; -}; - - -/** - * Get a Date of the first day of this date's month - * @return {Date} - */ -Date.prototype.getFirstDateOfMonth = function() { - return new Date(this.getFullYear(), this.getMonth(), 1); -}; - -/** - * Get a Date of the late day of this date's month - * @return {Date} - */ -Date.prototype.getLastDateOfMonth = function() { - return new Date(this.getFullYear(), this.getMonth(), this.getDaysInMonth()); -}; -/** - * Get the number of days in the current month, adjusted for leap year. - * @return {Number} The number of days in the month - */ -Date.prototype.getDaysInMonth = function() { - Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28; - return Date.daysInMonth[this.getMonth()]; -}; - -/** - * Get the English ordinal suffix of the current day (equivalent to the format specifier 'S'). - * @return {String} 'st, 'nd', 'rd' or 'th' - */ -Date.prototype.getSuffix = function() { - switch (this.getDate()) { - case 1: - case 21: - case 31: - return "st"; - case 2: - case 22: - return "nd"; - case 3: - case 23: - return "rd"; - default: - return "th"; - } -}; - -// private -Date.daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31]; - -/** - * An array of textual month names. - * Override these values for international dates, for example... - * Date.monthNames = ['JanInYourLang', 'FebInYourLang', ...]; - * @type Array - * @static - */ -Date.monthNames = - ["January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December"]; - -/** - * An array of textual day names. - * Override these values for international dates, for example... - * Date.dayNames = ['SundayInYourLang', 'MondayInYourLang', ...]; - * @type Array - * @static - */ -Date.dayNames = - ["Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday"]; - -// private -Date.y2kYear = 50; -// private -Date.monthNumbers = { - Jan:0, - Feb:1, - Mar:2, - Apr:3, - May:4, - Jun:5, - Jul:6, - Aug:7, - Sep:8, - Oct:9, - Nov:10, - Dec:11}; - -/** - * Creates and returns a new Date instance with the exact same date value as the called instance. - * Dates are copied and passed by reference, so if a copied date variable is modified later, the original - * variable will also be changed. When the intention is to create a new variable that will not - * modify the original instance, you should create a clone. - * - * Example of correctly cloning a date: - *
        
        -//wrong way:
        -var orig = new Date('10/1/2006');
        -var copy = orig;
        -copy.setDate(5);
        -document.write(orig);  //returns 'Thu Oct 05 2006'!
        -
        -//correct way:
        -var orig = new Date('10/1/2006');
        -var copy = orig.clone();
        -copy.setDate(5);
        -document.write(orig);  //returns 'Thu Oct 01 2006'
        -
        - * @return {Date} The new Date instance - */ -Date.prototype.clone = function() { - return new Date(this.getTime()); -}; - -/** - * Clears any time information from this date - @param {Boolean} clone true to create a clone of this date, clear the time and return it - @return {Date} this or the clone - */ -Date.prototype.clearTime = function(clone){ - if(clone){ - return this.clone().clearTime(); - } - this.setHours(0); - this.setMinutes(0); - this.setSeconds(0); - this.setMilliseconds(0); - return this; -}; - -// private -// safari setMonth is broken -if(Ext.isSafari){ - Date.brokenSetMonth = Date.prototype.setMonth; - Date.prototype.setMonth = function(num){ - if(num <= -1){ - var n = Math.ceil(-num); - var back_year = Math.ceil(n/12); - var month = (n % 12) ? 12 - n % 12 : 0 ; - this.setFullYear(this.getFullYear() - back_year); - return Date.brokenSetMonth.call(this, month); - } else { - return Date.brokenSetMonth.apply(this, arguments); - } - }; -} - -/** Date interval constant @static @type String */ -Date.MILLI = "ms"; -/** Date interval constant @static @type String */ -Date.SECOND = "s"; -/** Date interval constant @static @type String */ -Date.MINUTE = "mi"; -/** Date interval constant @static @type String */ -Date.HOUR = "h"; -/** Date interval constant @static @type String */ -Date.DAY = "d"; -/** Date interval constant @static @type String */ -Date.MONTH = "mo"; -/** Date interval constant @static @type String */ -Date.YEAR = "y"; - -/** - * Provides a convenient method of performing basic date arithmetic. This method - * does not modify the Date instance being called - it creates and returns - * a new Date instance containing the resulting date value. - * - * Examples: - *
        
        -//Basic usage:
        -var dt = new Date('10/29/2006').add(Date.DAY, 5);
        -document.write(dt); //returns 'Fri Oct 06 2006 00:00:00'
        -
        -//Negative values will subtract correctly:
        -var dt2 = new Date('10/1/2006').add(Date.DAY, -5);
        -document.write(dt2); //returns 'Tue Sep 26 2006 00:00:00'
        -
        -//You can even chain several calls together in one line!
        -var dt3 = new Date('10/1/2006').add(Date.DAY, 5).add(Date.HOUR, 8).add(Date.MINUTE, -30);
        -document.write(dt3); //returns 'Fri Oct 06 2006 07:30:00'
        - 
        - * - * @param {String} interval A valid date interval enum value - * @param {Number} value The amount to add to the current date - * @return {Date} The new Date instance - */ -Date.prototype.add = function(interval, value){ - var d = this.clone(); - if (!interval || value === 0) return d; - switch(interval.toLowerCase()){ - case Date.MILLI: - d.setMilliseconds(this.getMilliseconds() + value); - break; - case Date.SECOND: - d.setSeconds(this.getSeconds() + value); - break; - case Date.MINUTE: - d.setMinutes(this.getMinutes() + value); - break; - case Date.HOUR: - d.setHours(this.getHours() + value); - break; - case Date.DAY: - d.setDate(this.getDate() + value); - break; - case Date.MONTH: - var day = this.getDate(); - if(day > 28){ - day = Math.min(day, this.getFirstDateOfMonth().add('mo', value).getLastDateOfMonth().getDate()); - } - d.setDate(day); - d.setMonth(this.getMonth() + value); - break; - case Date.YEAR: - d.setFullYear(this.getFullYear() + value); - break; - } - return d; -}; \ No newline at end of file diff --git a/www/extras/extjs/source/util/DelayedTask.js b/www/extras/extjs/source/util/DelayedTask.js deleted file mode 100644 index 8b5ac1e75..000000000 --- a/www/extras/extjs/source/util/DelayedTask.js +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.util.DelayedTask - * Provides a convenient method of performing setTimeout where a new - * timeout cancels the old timeout. An example would be performing validation on a keypress. - * You can use this class to buffer - * the keypress events for a certain number of milliseconds, and perform only if they stop - * for that amount of time. - * @constructor The parameters to this constructor serve as defaults and are not required. - * @param {Function} fn (optional) The default function to timeout - * @param {Object} scope (optional) The default scope of that timeout - * @param {Array} args (optional) The default Array of arguments - */ -Ext.util.DelayedTask = function(fn, scope, args){ - var id = null, d, t; - - var call = function(){ - var now = new Date().getTime(); - if(now - t >= d){ - clearInterval(id); - id = null; - fn.apply(scope, args || []); - } - }; - /** - * Cancels any pending timeout and queues a new one - * @param {Number} delay The milliseconds to delay - * @param {Function} newFn (optional) Overrides function passed to constructor - * @param {Object} newScope (optional) Overrides scope passed to constructor - * @param {Array} newArgs (optional) Overrides args passed to constructor - */ - this.delay = function(delay, newFn, newScope, newArgs){ - if(id && delay != d){ - this.cancel(); - } - d = delay; - t = new Date().getTime(); - fn = newFn || fn; - scope = newScope || scope; - args = newArgs || args; - if(!id){ - id = setInterval(call, d); - } - }; - - /** - * Cancel the last queued timeout - */ - this.cancel = function(){ - if(id){ - clearInterval(id); - id = null; - } - }; -}; \ No newline at end of file diff --git a/www/extras/extjs/source/util/Format.js b/www/extras/extjs/source/util/Format.js deleted file mode 100644 index 20a293095..000000000 --- a/www/extras/extjs/source/util/Format.js +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.util.Format - * Reusable data formatting functions - * @singleton - */ -Ext.util.Format = function(){ - var trimRe = /^\s+|\s+$/g; - return { - /** - * Truncate a string and add an ellipsis ('...') to the end if it exceeds the specified length - * @param {String} value The string to truncate - * @param {Number} length The maximum length to allow before truncating - * @return {String} The converted text - */ - ellipsis : function(value, len){ - if(value && value.length > len){ - return value.substr(0, len-3)+"..."; - } - return value; - }, - - /** - * Checks a reference and converts it to empty string if it is undefined - * @param {Mixed} value Reference to check - * @return {Mixed} Empty string if converted, otherwise the original value - */ - undef : function(value){ - return typeof value != "undefined" ? value : ""; - }, - - /** - * Convert certain characters (&, <, >, and ') to their HTML character equivalents for literal display in web pages. - * @param {String} value The string to encode - * @return {String} The encoded text - */ - htmlEncode : function(value){ - return !value ? value : String(value).replace(/&/g, "&").replace(/>/g, ">").replace(/ 2){ - var args = Array.prototype.slice.call(arguments, 2); - args.unshift(value); - return eval(fn).apply(window, args); - }else{ - return eval(fn).call(window, value); - } - }, - - /** - * Format a number as US currency - * @param {Number/String} value The numeric value to format - * @return {String} The formatted currency string - */ - usMoney : function(v){ - v = (Math.round((v-0)*100))/100; - v = (v == Math.floor(v)) ? v + ".00" : ((v*10 == Math.floor(v*10)) ? v + "0" : v); - return "$" + v ; - }, - - /** - * Parse a value into a formatted date using the specified format pattern. - * @param {Mixed} value The value to format - * @param {String} format (optional) Any valid date format string (defaults to 'm/d/Y') - * @return {String} The formatted date string - */ - date : function(v, format){ - if(!v){ - return ""; - } - if(!(v instanceof Date)){ - v = new Date(Date.parse(v)); - } - return v.dateFormat(format || "m/d/Y"); - }, - - /** - * Returns a date rendering function that can be reused to apply a date format multiple times efficiently - * @param {String} format Any valid date format string - * @return {Function} The date formatting function - */ - dateRenderer : function(format){ - return function(v){ - return Ext.util.Format.date(v, format); - }; - }, - - // private - stripTagsRE : /<\/?[^>]+>/gi, - - /** - * Strips all HTML tags - * @param {Mixed} value The text from which to strip tags - * @return {String} The stripped text - */ - stripTags : function(v){ - return !v ? v : String(v).replace(this.stripTagsRE, ""); - } - }; -}(); \ No newline at end of file diff --git a/www/extras/extjs/source/util/JSON.js b/www/extras/extjs/source/util/JSON.js deleted file mode 100644 index f58da1a02..000000000 --- a/www/extras/extjs/source/util/JSON.js +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.util.JSON - * Modified version of Douglas Crockford"s json.js that doesn"t - * mess with the Object prototype - * http://www.json.org/js.html - * @singleton - */ -Ext.util.JSON = new (function(){ - var useHasOwn = {}.hasOwnProperty ? true : false; - - // crashes Safari in some instances - //var validRE = /^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/; - - var pad = function(n) { - return n < 10 ? "0" + n : n; - }; - - var m = { - "\b": '\\b', - "\t": '\\t', - "\n": '\\n', - "\f": '\\f', - "\r": '\\r', - '"' : '\\"', - "\\": '\\\\' - }; - - var encodeString = function(s){ - if (/["\\\x00-\x1f]/.test(s)) { - return '"' + s.replace(/([\x00-\x1f\\"])/g, function(a, b) { - var c = m[b]; - if(c){ - return c; - } - c = b.charCodeAt(); - return "\\u00" + - Math.floor(c / 16).toString(16) + - (c % 16).toString(16); - }) + '"'; - } - return '"' + s + '"'; - }; - - var encodeArray = function(o){ - var a = ["["], b, i, l = o.length, v; - for (i = 0; i < l; i += 1) { - v = o[i]; - switch (typeof v) { - case "undefined": - case "function": - case "unknown": - break; - default: - if (b) { - a.push(','); - } - a.push(v === null ? "null" : Ext.util.JSON.encode(v)); - b = true; - } - } - a.push("]"); - return a.join(""); - }; - - var encodeDate = function(o){ - return '"' + o.getFullYear() + "-" + - pad(o.getMonth() + 1) + "-" + - pad(o.getDate()) + "T" + - pad(o.getHours()) + ":" + - pad(o.getMinutes()) + ":" + - pad(o.getSeconds()) + '"'; - }; - - /** - * Encodes an Object, Array or other value - * @param {Mixed} o The variable to encode - * @return {String} The JSON string - */ - this.encode = function(o){ - if(typeof o == "undefined" || o === null){ - return "null"; - }else if(o instanceof Array){ - return encodeArray(o); - }else if(o instanceof Date){ - return encodeDate(o); - }else if(typeof o == "string"){ - return encodeString(o); - }else if(typeof o == "number"){ - return isFinite(o) ? String(o) : "null"; - }else if(typeof o == "boolean"){ - return String(o); - }else { - var a = ["{"], b, i, v; - for (i in o) { - if(!useHasOwn || o.hasOwnProperty(i)) { - v = o[i]; - switch (typeof v) { - case "undefined": - case "function": - case "unknown": - break; - default: - if(b){ - a.push(','); - } - a.push(this.encode(i), ":", - v === null ? "null" : this.encode(v)); - b = true; - } - } - } - a.push("}"); - return a.join(""); - } - }; - - /** - * Decodes (parses) a JSON string to an object. If the JSON is invalid, this function throws a SyntaxError. - * @param {String} json The JSON string - * @return {Object} The resulting object - */ - this.decode = function(json){ - return eval("(" + json + ')'); - }; -})(); -/** - * Shorthand for {@link Ext.util.JSON#encode} - * @member Ext encode - * @method */ -Ext.encode = Ext.util.JSON.encode; -/** - * Shorthand for {@link Ext.util.JSON#decode} - * @member Ext decode - * @method */ -Ext.decode = Ext.util.JSON.decode; diff --git a/www/extras/extjs/source/util/KeyMap.js b/www/extras/extjs/source/util/KeyMap.js deleted file mode 100644 index 6dddf3a23..000000000 --- a/www/extras/extjs/source/util/KeyMap.js +++ /dev/null @@ -1,189 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.KeyMap - * Handles mapping keys to actions for an element. One key map can be used for multiple actions. - * The constructor accepts the same config object as defined by {@link #addBinding}. - * If you bind a callback function to a KeyMap, anytime the KeyMap handles an expected key - * combination it will call the function with this signature (if the match is a multi-key - * combination the callback will still be called only once): (String key, Ext.EventObject e) - * A KeyMap can also handle a string representation of keys.
        - * Usage: -
        
        - // map one key by key code
        - var map = new Ext.KeyMap("my-element", {
        -     key: 13, // or Ext.EventObject.ENTER
        -     fn: myHandler,
        -     scope: myObject
        - });
        - 
        - // map multiple keys to one action by string
        - var map = new Ext.KeyMap("my-element", {
        -     key: "a\r\n\t",
        -     fn: myHandler,
        -     scope: myObject
        - });
        - 
        - // map multiple keys to multiple actions by strings and array of codes
        - var map = new Ext.KeyMap("my-element", [
        -    {
        -        key: [10,13],
        -        fn: function(){ alert("Return was pressed"); }
        -    }, {
        -        key: "abc",
        -        fn: function(){ alert('a, b or c was pressed'); }
        -    }, {
        -        key: "\t",
        -        ctrl:true,
        -        shift:true,
        -        fn: function(){ alert('Control + shift + tab was pressed.'); }
        -    }
        -]);
        -
        - * Note: A KepMap starts enabled - * @constructor - * @param {String/HTMLElement/Ext.Element} el The element to bind to - * @param {Object} config The config - * @param {String} eventName (optional) The event to bind to (defaults to "keydown") - */ -Ext.KeyMap = function(el, config, eventName){ - this.el = Ext.get(el); - this.eventName = eventName || "keydown"; - this.bindings = []; - if(config instanceof Array){ - for(var i = 0, len = config.length; i < len; i++){ - this.addBinding(config[i]); - } - }else{ - this.addBinding(config); - } - this.keyDownDelegate = Ext.EventManager.wrap(this.handleKeyDown, this, true); - this.enable(); -}; - -Ext.KeyMap.prototype = { - /** - * True to stop the event from bubbling and prevent the default browser action if the - * key was handled by the KeyMap (defaults to false) - * @type Boolean - */ - stopEvent : false, - - /** - * Add a new binding to this KeyMap. The following config object properties are supported: - *
        -Property    Type             Description
        -----------  ---------------  ----------------------------------------------------------------------
        -key         String/Array     A single keycode or an array of keycodes to handle
        -shift       Boolean          True to handle key only when shift is pressed (defaults to false)
        -ctrl        Boolean          True to handle key only when ctrl is pressed (defaults to false)
        -alt         Boolean          True to handle key only when alt is pressed (defaults to false)
        -fn          Function         The function to call when KeyMap finds the expected key combination
        -scope       Object           The scope of the callback function
        -
        - * - * Usage: - *
        
        -// Create a KeyMap
        -var map = new Ext.KeyMap(document, {
        -    key: Ext.EventObject.ENTER,
        -    fn: handleKey,
        -    scope: this
        -});
        -
        -//Add a new binding to the existing KeyMap later
        -map.addBinding({
        -    key: 'abc',
        -    shift: true,
        -    fn: handleKey,
        -    scope: this
        -});
        -
        - * @param {Object} config A single KeyMap config - */ - addBinding : function(config){ - var keyCode = config.key, - shift = config.shift, - ctrl = config.ctrl, - alt = config.alt, - fn = config.fn, - scope = config.scope; - if(typeof keyCode == "string"){ - var ks = []; - var keyString = keyCode.toUpperCase(); - for(var j = 0, len = keyString.length; j < len; j++){ - ks.push(keyString.charCodeAt(j)); - } - keyCode = ks; - } - var keyArray = keyCode instanceof Array; - var handler = function(e){ - if((!shift || e.shiftKey) && (!ctrl || e.ctrlKey) && (!alt || e.altKey)){ - var k = e.getKey(); - if(keyArray){ - for(var i = 0, len = keyCode.length; i < len; i++){ - if(keyCode[i] == k){ - if(this.stopEvent){ - e.stopEvent(); - } - fn.call(scope || window, k, e); - return; - } - } - }else{ - if(k == keyCode){ - if(this.stopEvent){ - e.stopEvent(); - } - fn.call(scope || window, k, e); - } - } - } - }; - this.bindings.push(handler); - }, - - // private - handleKeyDown : function(e){ - if(this.enabled){ //just in case - var b = this.bindings; - for(var i = 0, len = b.length; i < len; i++){ - b[i].call(this, e); - } - } - }, - - /** - * Returns true if this KepMap is enabled - * @return {Boolean} - */ - isEnabled : function(){ - return this.enabled; - }, - - /** - * Enable this KeyMap - */ - enable: function(){ - if(!this.enabled){ - this.el.on(this.eventName, this.keyDownDelegate); - this.enabled = true; - } - }, - - /** - * Disable this KeyMap - */ - disable: function(){ - if(this.enabled){ - this.el.removeListener(this.eventName, this.keyDownDelegate); - this.enabled = false; - } - } -}; \ No newline at end of file diff --git a/www/extras/extjs/source/util/KeyNav.js b/www/extras/extjs/source/util/KeyNav.js deleted file mode 100644 index c83a02a54..000000000 --- a/www/extras/extjs/source/util/KeyNav.js +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.KeyNav - * Provides a convenient wrapper for normalized keyboard navigation. KeyNav allows you to bind - * navigation keys to function calls that will get called when the keys are pressed. - *
        Usage: -
        
        -var nav = new Ext.KeyNav("my-element", {
        -    "left" : function(e){
        -        this.moveLeft(e.ctrlKey);
        -    },
        -    "right" : function(e){
        -        this.moveRight(e.ctrlKey);
        -    },
        -    "enter" : function(e){
        -        this.save();
        -    },
        -    scope : this
        -});
        -
        - * @constructor - * @param {String/HTMLElement/Ext.Element} el The element to bind to - * @param {Object} config The config - */ -Ext.KeyNav = function(el, config){ - this.el = Ext.get(el); - Ext.apply(this, config); - if(!this.disabled){ - this.disabled = true; - this.enable(); - } -}; - -Ext.KeyNav.prototype = { - disabled : false, - defaultEventAction: "stopEvent", - - prepareEvent : function(e){ - var k = e.getKey(); - var h = this.keyToHandler[k]; - //if(h && this[h]){ - // e.stopPropagation(); - //} - if(Ext.isSafari && h && k >= 37 && k <= 40){ - e.stopEvent(); - } - }, - - relay : function(e){ - var k = e.getKey(); - var h = this.keyToHandler[k]; - if(h && this[h]){ - if(this.doRelay(e, this[h], h) !== true){ - e[this.defaultEventAction](); - } - } - }, - - doRelay : function(e, h, hname){ - return h.call(this.scope || this, e); - }, - - // possible handlers - enter : false, - left : false, - right : false, - up : false, - down : false, - tab : false, - esc : false, - pageUp : false, - pageDown : false, - del : false, - home : false, - end : false, - - // quick lookup hash - keyToHandler : { - 37 : "left", - 39 : "right", - 38 : "up", - 40 : "down", - 33 : "pageUp", - 34 : "pageDown", - 46 : "del", - 36 : "home", - 35 : "end", - 13 : "enter", - 27 : "esc", - 9 : "tab" - }, - - /** - * Enable this KeyNav - */ - enable: function(){ - if(this.disabled){ - // ie won't do special keys on keypress, no one else will repeat keys with keydown - // the EventObject will normalize Safari automatically - if(Ext.isIE){ - this.el.on("keydown", this.relay, this); - }else{ - this.el.on("keydown", this.prepareEvent, this); - this.el.on("keypress", this.relay, this); - } - this.disabled = false; - } - }, - - /** - * Disable this KeyNav - */ - disable: function(){ - if(!this.disabled){ - if(Ext.isIE){ - this.el.un("keydown", this.relay); - }else{ - this.el.un("keydown", this.prepareEvent); - this.el.un("keypress", this.relay); - } - this.disabled = true; - } - } -}; \ No newline at end of file diff --git a/www/extras/extjs/source/util/MixedCollection.js b/www/extras/extjs/source/util/MixedCollection.js deleted file mode 100644 index 779c1240f..000000000 --- a/www/extras/extjs/source/util/MixedCollection.js +++ /dev/null @@ -1,510 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.util.MixedCollection - * @extends Ext.util.Observable - * A Collection class that maintains both numeric indexes and keys and exposes events. - * @constructor - * @param {Boolean} allowFunctions True if the addAll function should add function references to the - * collection (defaults to false) - * @param {Function} keyFn A function that can accept an item of the type(s) stored in this MixedCollection - * and return the key value for that item. This is used when available to look up the key on items that - * were passed without an explicit key parameter to a MixedCollection method. Passing this parameter is - * equivalent to providing an implementation for the {@link #getKey} method. - */ -Ext.util.MixedCollection = function(allowFunctions, keyFn){ - this.items = []; - this.map = {}; - this.keys = []; - this.length = 0; - this.addEvents({ - /** - * @event clear - * Fires when the collection is cleared. - */ - "clear" : true, - /** - * @event add - * Fires when an item is added to the collection. - * @param {Number} index The index at which the item was added. - * @param {Object} o The item added. - * @param {String} key The key associated with the added item. - */ - "add" : true, - /** - * @event replace - * Fires when an item is replaced in the collection. - * @param {String} key he key associated with the new added. - * @param {Object} old The item being replaced. - * @param {Object} new The new item. - */ - "replace" : true, - /** - * @event remove - * Fires when an item is removed from the collection. - * @param {Object} o The item being removed. - * @param {String} key (optional) The key associated with the removed item. - */ - "remove" : true, - "sort" : true - }); - this.allowFunctions = allowFunctions === true; - if(keyFn){ - this.getKey = keyFn; - } - Ext.util.MixedCollection.superclass.constructor.call(this); -}; - -Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { - allowFunctions : false, - -/** - * Adds an item to the collection. - * @param {String} key The key to associate with the item - * @param {Object} o The item to add. - * @return {Object} The item added. - */ - add : function(key, o){ - if(arguments.length == 1){ - o = arguments[0]; - key = this.getKey(o); - } - if(typeof key == "undefined" || key === null){ - this.length++; - this.items.push(o); - this.keys.push(null); - }else{ - var old = this.map[key]; - if(old){ - return this.replace(key, o); - } - this.length++; - this.items.push(o); - this.map[key] = o; - this.keys.push(key); - } - this.fireEvent("add", this.length-1, o, key); - return o; - }, - -/** - * MixedCollection has a generic way to fetch keys if you implement getKey. -
        
        -    // normal way
        -    var mc = new Ext.util.MixedCollection();
        -    mc.add(someEl.dom.id, someEl);
        -    mc.add(otherEl.dom.id, otherEl);
        -    //and so on
        -    
        -    // using getKey
        -    var mc = new Ext.util.MixedCollection();
        -    mc.getKey = function(el){
        -       return el.dom.id;
        -    }
        -    mc.add(someEl);
        -    mc.add(otherEl);
        -    // etc
        -    
        - * @param o {Object} The item for which to find the key.
        - * @return {Object} The key for the passed item.
        - */
        -    getKey : function(o){
        -         return o.id; 
        -    },
        -   
        -/**
        - * Replaces an item in the collection.
        - * @param {String} key The key associated with the item to replace, or the item to replace.
        - * @param o {Object} o (optional) If the first parameter passed was a key, the item to associate with that key.
        - * @return {Object}  The new item.
        - */
        -    replace : function(key, o){
        -        if(arguments.length == 1){
        -            o = arguments[0];
        -            key = this.getKey(o);
        -        }
        -        var old = this.item(key);
        -        if(typeof key == "undefined" || key === null || typeof old == "undefined"){
        -             return this.add(key, o);
        -        }
        -        var index = this.indexOfKey(key);
        -        this.items[index] = o;
        -        this.map[key] = o;
        -        this.fireEvent("replace", key, old, o);
        -        return o;
        -    },
        -   
        -/**
        - * Adds all elements of an Array or an Object to the collection.
        - * @param {Object/Array} objs An Object containing properties which will be added to the collection, or
        - * an Array of values, each of which are added to the collection.
        - */
        -    addAll : function(objs){
        -        if(arguments.length > 1 || objs instanceof Array){
        -            var args = arguments.length > 1 ? arguments : objs;
        -            for(var i = 0, len = args.length; i < len; i++){
        -                this.add(args[i]);
        -            }
        -        }else{
        -            for(var key in objs){
        -                if(this.allowFunctions || typeof objs[key] != "function"){
        -                    this.add(objs[key], key);
        -                }
        -            }
        -        }
        -    },
        -   
        -/**
        - * Executes the specified function once for every item in the collection, passing each
        - * item as the first and only parameter. returning false from the function will stop the iteration.
        - * @param {Function} fn The function to execute for each item.
        - * @param {Object} scope (optional) The scope in which to execute the function.
        - */
        -    each : function(fn, scope){
        -        var items = [].concat(this.items); // each safe for removal
        -        for(var i = 0, len = items.length; i < len; i++){
        -            if(fn.call(scope || items[i], items[i], i, len) === false){
        -                break;
        -            }
        -        }
        -    },
        -   
        -/**
        - * Executes the specified function once for every key in the collection, passing each
        - * key, and its associated item as the first two parameters.
        - * @param {Function} fn The function to execute for each item.
        - * @param {Object} scope (optional) The scope in which to execute the function.
        - */
        -    eachKey : function(fn, scope){
        -        for(var i = 0, len = this.keys.length; i < len; i++){
        -            fn.call(scope || window, this.keys[i], this.items[i], i, len);
        -        }
        -    },
        -   
        -/**
        - * Returns the first item in the collection which elicits a true return value from the
        - * passed selection function.
        - * @param {Function} fn The selection function to execute for each item.
        - * @param {Object} scope (optional) The scope in which to execute the function.
        - * @return {Object} The first item in the collection which returned true from the selection function.
        - */
        -    find : function(fn, scope){
        -        for(var i = 0, len = this.items.length; i < len; i++){
        -            if(fn.call(scope || window, this.items[i], this.keys[i])){
        -                return this.items[i];
        -            }
        -        }
        -        return null;
        -    },
        -   
        -/**
        - * Inserts an item at the specified index in the collection.
        - * @param {Number} index The index to insert the item at.
        - * @param {String} key The key to associate with the new item, or the item itself.
        - * @param {Object} o  (optional) If the second parameter was a key, the new item.
        - * @return {Object} The item inserted.
        - */
        -    insert : function(index, key, o){
        -        if(arguments.length == 2){
        -            o = arguments[1];
        -            key = this.getKey(o);
        -        }
        -        if(index >= this.length){
        -            return this.add(key, o);
        -        }
        -        this.length++;
        -        this.items.splice(index, 0, o);
        -        if(typeof key != "undefined" && key != null){
        -            this.map[key] = o;
        -        }
        -        this.keys.splice(index, 0, key);
        -        this.fireEvent("add", index, o, key);
        -        return o;
        -    },
        -   
        -/**
        - * Removed an item from the collection.
        - * @param {Object} o The item to remove.
        - * @return {Object} The item removed.
        - */
        -    remove : function(o){
        -        return this.removeAt(this.indexOf(o));
        -    },
        -   
        -/**
        - * Remove an item from a specified index in the collection.
        - * @param {Number} index The index within the collection of the item to remove.
        - */
        -    removeAt : function(index){
        -        if(index < this.length && index >= 0){
        -            this.length--;
        -            var o = this.items[index];
        -            this.items.splice(index, 1);
        -            var key = this.keys[index];
        -            if(typeof key != "undefined"){
        -                delete this.map[key];
        -            }
        -            this.keys.splice(index, 1);
        -            this.fireEvent("remove", o, key);
        -        }
        -    },
        -   
        -/**
        - * Removed an item associated with the passed key fom the collection.
        - * @param {String} key The key of the item to remove.
        - */
        -    removeKey : function(key){
        -        return this.removeAt(this.indexOfKey(key));
        -    },
        -   
        -/**
        - * Returns the number of items in the collection.
        - * @return {Number} the number of items in the collection.
        - */
        -    getCount : function(){
        -        return this.length; 
        -    },
        -   
        -/**
        - * Returns index within the collection of the passed Object.
        - * @param {Object} o The item to find the index of.
        - * @return {Number} index of the item.
        - */
        -    indexOf : function(o){
        -        if(!this.items.indexOf){
        -            for(var i = 0, len = this.items.length; i < len; i++){
        -                if(this.items[i] == o) return i;
        -            }
        -            return -1;
        -        }else{
        -            return this.items.indexOf(o);
        -        }
        -    },
        -   
        -/**
        - * Returns index within the collection of the passed key.
        - * @param {String} key The key to find the index of.
        - * @return {Number} index of the key.
        - */
        -    indexOfKey : function(key){
        -        if(!this.keys.indexOf){
        -            for(var i = 0, len = this.keys.length; i < len; i++){
        -                if(this.keys[i] == key) return i;
        -            }
        -            return -1;
        -        }else{
        -            return this.keys.indexOf(key);
        -        }
        -    },
        -   
        -/**
        - * Returns the item associated with the passed key OR index. Key has priority over index.
        - * @param {String/Number} key The key or index of the item.
        - * @return {Object} The item associated with the passed key.
        - */
        -    item : function(key){
        -        var item = typeof this.map[key] != "undefined" ? this.map[key] : this.items[key];
        -        return typeof item != 'function' || this.allowFunctions ? item : null; // for prototype!
        -    },
        -    
        -/**
        - * Returns the item at the specified index.
        - * @param {Number} index The index of the item.
        - * @return {Object}
        - */
        -    itemAt : function(index){
        -        return this.items[index];
        -    },
        -    
        -/**
        - * Returns the item associated with the passed key.
        - * @param {String/Number} key The key of the item.
        - * @return {Object} The item associated with the passed key.
        - */
        -    key : function(key){
        -        return this.map[key];
        -    },
        -   
        -/**
        - * Returns true if the collection contains the passed Object as an item.
        - * @param {Object} o  The Object to look for in the collection.
        - * @return {Boolean} True if the collection contains the Object as an item.
        - */
        -    contains : function(o){
        -        return this.indexOf(o) != -1;
        -    },
        -   
        -/**
        - * Returns true if the collection contains the passed Object as a key.
        - * @param {String} key The key to look for in the collection.
        - * @return {Boolean} True if the collection contains the Object as a key.
        - */
        -    containsKey : function(key){
        -        return typeof this.map[key] != "undefined";
        -    },
        -   
        -/**
        - * Removes all items from the collection.
        - */
        -    clear : function(){
        -        this.length = 0;
        -        this.items = [];
        -        this.keys = [];
        -        this.map = {};
        -        this.fireEvent("clear");
        -    },
        -   
        -/**
        - * Returns the first item in the collection.
        - * @return {Object} the first item in the collection..
        - */
        -    first : function(){
        -        return this.items[0]; 
        -    },
        -   
        -/**
        - * Returns the last item in the collection.
        - * @return {Object} the last item in the collection..
        - */
        -    last : function(){
        -        return this.items[this.length-1];   
        -    },
        -    
        -    _sort : function(property, dir, fn){
        -        var dsc = String(dir).toUpperCase() == "DESC" ? -1 : 1;
        -        fn = fn || function(a, b){
        -            return a-b;
        -        };
        -        var c = [], k = this.keys, items = this.items;
        -        for(var i = 0, len = items.length; i < len; i++){
        -            c[c.length] = {key: k[i], value: items[i], index: i};
        -        }
        -        c.sort(function(a, b){
        -            var v = fn(a[property], b[property]) * dsc;
        -            if(v == 0){
        -                v = (a.index < b.index ? -1 : 1);
        -            }
        -            return v;
        -        });
        -        for(var i = 0, len = c.length; i < len; i++){
        -            items[i] = c[i].value;
        -            k[i] = c[i].key;
        -        }
        -        this.fireEvent("sort", this);
        -    },
        -    
        -    /**
        -     * Sorts this collection with the passed comparison function
        -     * @param {String} direction (optional) "ASC" or "DESC"
        -     * @param {Function} fn (optional) comparison function
        -     */
        -    sort : function(dir, fn){
        -        this._sort("value", dir, fn);
        -    },
        -    
        -    /**
        -     * Sorts this collection by keys
        -     * @param {String} direction (optional) "ASC" or "DESC"
        -     * @param {Function} fn (optional) a comparison function (defaults to case insensitive string)
        -     */
        -    keySort : function(dir, fn){
        -        this._sort("key", dir, fn || function(a, b){
        -            return String(a).toUpperCase()-String(b).toUpperCase();
        -        });
        -    },
        -    
        -    /**
        -     * Returns a range of items in this collection
        -     * @param {Number} startIndex (optional) defaults to 0
        -     * @param {Number} endIndex (optional) default to the last item
        -     * @return {Array} An array of items
        -     */
        -    getRange : function(start, end){
        -        var items = this.items;
        -        if(items.length < 1){
        -            return [];
        -        }
        -        start = start || 0;
        -        end = Math.min(typeof end == "undefined" ? this.length-1 : end, this.length-1);
        -        var r = [];
        -        if(start <= end){
        -            for(var i = start; i <= end; i++) {
        -        	    r[r.length] = items[i];
        -            }
        -        }else{
        -            for(var i = start; i >= end; i--) {
        -        	    r[r.length] = items[i];
        -            }
        -        }
        -        return r;
        -    },
        -        
        -    /**
        -     * Filter the objects in this collection by a specific property. 
        -     * Returns a new collection that has been filtered.
        -     * @param {String} property A property on your objects
        -     * @param {String/RegExp} value Either string that the property values 
        -     * should start with or a RegExp to test against the property
        -     * @return {MixedCollection} The new filtered collection
        -     */
        -    filter : function(property, value){
        -        if(!value.exec){ // not a regex
        -            value = String(value);
        -            if(value.length == 0){
        -                return this.clone();
        -            }
        -            value = new RegExp("^" + Ext.escapeRe(value), "i");
        -        }
        -        return this.filterBy(function(o){
        -            return o && value.test(o[property]);
        -        });
        -	},
        -    
        -    /**
        -     * Filter by a function. * Returns a new collection that has been filtered.
        -     * The passed function will be called with each 
        -     * object in the collection. If the function returns true, the value is included 
        -     * otherwise it is filtered.
        -     * @param {Function} fn The function to be called, it will receive the args o (the object), k (the key)
        -     * @param {Object} scope (optional) The scope of the function (defaults to this) 
        -     * @return {MixedCollection} The new filtered collection
        -     */
        -    filterBy : function(fn, scope){
        -        var r = new Ext.util.MixedCollection();
        -        r.getKey = this.getKey;
        -        var k = this.keys, it = this.items;
        -        for(var i = 0, len = it.length; i < len; i++){
        -            if(fn.call(scope||this, it[i], k[i])){
        -				r.add(k[i], it[i]);
        -			}
        -        }
        -        return r;
        -    },
        -    
        -    /**
        -     * Creates a duplicate of this collection
        -     * @return {MixedCollection}
        -     */
        -    clone : function(){
        -        var r = new Ext.util.MixedCollection();
        -        var k = this.keys, it = this.items;
        -        for(var i = 0, len = it.length; i < len; i++){
        -            r.add(k[i], it[i]);
        -        }
        -        r.getKey = this.getKey;
        -        return r;
        -    }
        -});
        -/**
        - * Returns the item associated with the passed key or index.
        - * @method
        - * @param {String/Number} key The key or index of the item.
        - * @return {Object} The item associated with the passed key.
        - */
        -Ext.util.MixedCollection.prototype.get = Ext.util.MixedCollection.prototype.item;
        \ No newline at end of file
        diff --git a/www/extras/extjs/source/util/Observable.js b/www/extras/extjs/source/util/Observable.js
        deleted file mode 100644
        index a8ee859f6..000000000
        --- a/www/extras/extjs/source/util/Observable.js
        +++ /dev/null
        @@ -1,348 +0,0 @@
        -/*
        - * Ext JS Library 1.0.1
        - * Copyright(c) 2006-2007, Ext JS, LLC.
        - * licensing@extjs.com
        - * 
        - * http://www.extjs.com/license
        - */
        -
        -
        -/**
        - * @class Ext.util.Observable
        - * Abstract base class that provides a common interface for publishing events. Subclasses are expected to
        - * to have a property "events" with all the events defined.
        - * For example: - *
        
        - Employee = function(name){
        -    this.name = name;
        -    this.events = {
        -        "fired" : true,
        -        "quit" : true
        -    }
        - }
        - Ext.extend(Employee, Ext.util.Observable);
        -
        - */ -Ext.util.Observable = function(){ - if(this.listeners){ - this.on(this.listeners); - delete this.listeners; - } -}; -Ext.util.Observable.prototype = { - /** - * Fires the specified event with the passed parameters (minus the event name). - * @param {String} eventName - * @param {Object...} args Variable number of parameters are passed to handlers - * @return {Boolean} returns false if any of the handlers return false otherwise it returns true - */ - fireEvent : function(){ - var ce = this.events[arguments[0].toLowerCase()]; - if(typeof ce == "object"){ - return ce.fire.apply(ce, Array.prototype.slice.call(arguments, 1)); - }else{ - return true; - } - }, - - // private - filterOptRe : /^(?:scope|delay|buffer|single)$/, - - /** - * Appends an event handler to this component - * @param {String} eventName The type of event to listen for - * @param {Function} handler The method the event invokes - * @param {Object} scope (optional) The scope in which to execute the handler - * function. The handler function's "this" context. - * @param {Object} options (optional) An object containing handler configuration - * properties. This may contain any of the following properties:
          - *
        • scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
        • - *
        • delegate {String} A simple selector to filter the target or look for a descendant of the target
        • - *
        • stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
        • - *
        • preventDefault {Boolean} True to prevent the default action
        • - *
        • stopPropagation {Boolean} True to prevent event propagation
        • - *
        • normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
        • - *
        • delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
        • - *
        • single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
        • - *
        • buffer {Number} Causes the handler to be scheduled to run in an {@link Ext.util.DelayedTask} delayed - * by the specified number of milliseconds. If the event fires again within that time, the original - * handler is not invoked, but the new handler is scheduled in its place.
        • - *
        - *

        - * Combining Options
        - * Using the options argument, it is possible to combine different types of listeners:
        - *
        - * A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

        - * Code: - *
        el.on('click', this.onClick, this, {
        -     * 	single: true,
        -     * 	delay: 100,
        -     * 	stopEvent : true,
        -     *  forumId: 4
        -     * });
        - *

        - * The method also allows for a single argument to be passed which is a config object containing properties - * which specify multiple handlers. - *

        - * Attaching multiple handlers in 1 call
        - * Code: - *

        el.on({
        -     * 	'click' : {
        -     *     	fn: this.onClick
        -     * 		scope: this,
        -     * 		delay: 100
        -     *     }, 
        -     * 	'mouseover' : {
        -     *     	fn: this.onMouseOver
        -     * 		scope: this
        -     *     },
        -     * 	'mouseout' : {
        -     *     	fn: this.onMouseOut
        -     * 		scope: this
        -     *     }
        -     * });
        - *

        - * Or a shorthand syntax:
        - * Code: - *

        el.on({
        -     * 	'click' : this.onClick,
        -     * 	'mouseover' : this.onMouseOver,
        -     * 	'mouseout' : this.onMouseOut
        -     * 	scope: this
        -     * });
        - */ - addListener : function(eventName, fn, scope, o){ - if(typeof eventName == "object"){ - o = eventName; - for(var e in o){ - if(this.filterOptRe.test(e)){ - continue; - } - if(typeof o[e] == "function"){ - // shared options - this.addListener(e, o[e], o.scope, o); - }else{ - // individual options - this.addListener(e, o[e].fn, o[e].scope, o[e]); - } - } - return; - } - o = (!o || typeof o == "boolean") ? {} : o; - eventName = eventName.toLowerCase(); - var ce = this.events[eventName] || true; - if(typeof ce == "boolean"){ - ce = new Ext.util.Event(this, eventName); - this.events[eventName] = ce; - } - ce.addListener(fn, scope, o); - }, - - /** - * Removes a listener - * @param {String} eventName The type of event to listen for - * @param {Function} handler The handler to remove - * @param {Object} scope (optional) The scope (this object) for the handler - */ - removeListener : function(eventName, fn, scope){ - var ce = this.events[eventName.toLowerCase()]; - if(typeof ce == "object"){ - ce.removeListener(fn, scope); - } - }, - - /** - * Removes all listeners for this object - */ - purgeListeners : function(){ - for(var evt in this.events){ - if(typeof this.events[evt] == "object"){ - this.events[evt].clearListeners(); - } - } - }, - - relayEvents : function(o, events){ - var createHandler = function(ename){ - return function(){ - return this.fireEvent.apply(this, Ext.combine(ename, Array.prototype.slice.call(arguments, 0))); - }; - }; - for(var i = 0, len = events.length; i < len; i++){ - var ename = events[i]; - if(!this.events[ename]){ this.events[ename] = true; }; - o.on(ename, createHandler(ename), this); - } - }, - - /** - * Copies any events from the passed object onto this object if they do not already exist. The passed object - * must also inherit from Observable for this method to have any effect. - * @param {Object} object The object from which to copy events - */ - addEvents : function(o){ - if(!this.events){ - this.events = {}; - } - Ext.applyIf(this.events, o); - }, - - /** - * Checks to see if this object is currently listening for a specified event - * @param {String} eventName The name of the event to check for - * @return {Boolean} True if the event is being listened for, else false - */ - hasListener : function(eventName){ - var e = this.events[eventName]; - return typeof e == "object" && e.listeners.length > 0; - } -}; -/** - * Appends an event handler to this element (shorthand for addListener) - * @param {String} eventName The type of event to listen for - * @param {Function} handler The method the event invokes - * @param {Object} options (optional) - * @method - */ -Ext.util.Observable.prototype.on = Ext.util.Observable.prototype.addListener; -/** - * Removes a listener (shorthand for removeListener) - * @param {String} eventName The type of event to listen for - * @param {Function} handler The handler to remove - * @param {Object} scope (optional) The scope (this object) for the handler - * @method - */ -Ext.util.Observable.prototype.un = Ext.util.Observable.prototype.removeListener; - -/** - * Starts capture on the specified Observable. All events will be passed - * to the supplied function with the event name + standard signature of the event - * before the event is fired. If the supplied function returns false, - * the event will not fire. - * @param {Observable} o The Observable to capture - * @param {Function} fn The function to call - * @param {Object} scope (optional) The scope (this object) for the fn - * @static - */ -Ext.util.Observable.capture = function(o, fn, scope){ - o.fireEvent = o.fireEvent.createInterceptor(fn, scope); -}; - -/** - * Removes all added captures from the Observable. - * @param {Observable} o The Observable to release - * @static - */ -Ext.util.Observable.releaseCapture = function(o){ - o.fireEvent = Ext.util.Observable.prototype.fireEvent; -}; - -(function(){ - - var createBuffered = function(h, o, scope){ - var task = new Ext.util.DelayedTask(); - return function(){ - task.delay(o.buffer, h, scope, Array.prototype.slice.call(arguments, 0)); - }; - }; - - var createSingle = function(h, e, fn, scope){ - return function(){ - e.removeListener(fn, scope); - return h.apply(scope, arguments); - }; - }; - - var createDelayed = function(h, o, scope){ - return function(){ - var args = Array.prototype.slice.call(arguments, 0); - setTimeout(function(){ - h.apply(scope, args); - }, o.delay || 10); - }; - }; - - Ext.util.Event = function(obj, name){ - this.name = name; - this.obj = obj; - this.listeners = []; - }; - - Ext.util.Event.prototype = { - addListener : function(fn, scope, options){ - var o = options || {}; - scope = scope || this.obj; - if(!this.isListening(fn, scope)){ - var l = {fn: fn, scope: scope, options: o}; - var h = fn; - if(o.delay){ - h = createDelayed(h, o, scope); - } - if(o.single){ - h = createSingle(h, this, fn, scope); - } - if(o.buffer){ - h = createBuffered(h, o, scope); - } - l.fireFn = h; - if(!this.firing){ // if we are currently firing this event, don't disturb the listener loop - this.listeners.push(l); - }else{ - this.listeners = this.listeners.slice(0); - this.listeners.push(l); - } - } - }, - - findListener : function(fn, scope){ - scope = scope || this.obj; - var ls = this.listeners; - for(var i = 0, len = ls.length; i < len; i++){ - var l = ls[i]; - if(l.fn == fn && l.scope == scope){ - return i; - } - } - return -1; - }, - - isListening : function(fn, scope){ - return this.findListener(fn, scope) != -1; - }, - - removeListener : function(fn, scope){ - var index; - if((index = this.findListener(fn, scope)) != -1){ - if(!this.firing){ - this.listeners.splice(index, 1); - }else{ - this.listeners = this.listeners.slice(0); - this.listeners.splice(index, 1); - } - return true; - } - return false; - }, - - clearListeners : function(){ - this.listeners = []; - }, - - fire : function(){ - var ls = this.listeners, scope, len = ls.length; - if(len > 0){ - this.firing = true; - var args = Array.prototype.slice.call(arguments, 0); - for(var i = 0; i < len; i++){ - var l = ls[i]; - if(l.fireFn.apply(l.scope, arguments) === false){ - this.firing = false; - return false; - } - } - this.firing = false; - } - return true; - } - }; -})(); \ No newline at end of file diff --git a/www/extras/extjs/source/util/TaskMgr.js b/www/extras/extjs/source/util/TaskMgr.js deleted file mode 100644 index 6e762a795..000000000 --- a/www/extras/extjs/source/util/TaskMgr.js +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.util.TaskRunner = function(interval){ - interval = interval || 10; - var tasks = [], removeQueue = []; - var id = 0; - var running = false; - - var stopThread = function(){ - running = false; - clearInterval(id); - id = 0; - }; - - var startThread = function(){ - if(!running){ - running = true; - id = setInterval(runTasks, interval); - } - }; - - var removeTask = function(task){ - removeQueue.push(task); - if(task.onStop){ - task.onStop(); - } - }; - - var runTasks = function(){ - if(removeQueue.length > 0){ - for(var i = 0, len = removeQueue.length; i < len; i++){ - tasks.remove(removeQueue[i]); - } - removeQueue = []; - if(tasks.length < 1){ - stopThread(); - return; - } - } - var now = new Date().getTime(); - for(var i = 0, len = tasks.length; i < len; ++i){ - var t = tasks[i]; - var itime = now - t.taskRunTime; - if(t.interval <= itime){ - var rt = t.run.apply(t.scope || t, t.args || [++t.taskRunCount]); - t.taskRunTime = now; - if(rt === false || t.taskRunCount === t.repeat){ - removeTask(t); - return; - } - } - if(t.duration && t.duration <= (now - t.taskStartTime)){ - removeTask(t); - } - } - }; - - /** - * Queues a new task. - * @param {Object} task - */ - this.start = function(task){ - tasks.push(task); - task.taskStartTime = new Date().getTime(); - task.taskRunTime = 0; - task.taskRunCount = 0; - startThread(); - return task; - }; - - this.stop = function(task){ - removeTask(task); - return task; - }; - - this.stopAll = function(){ - stopThread(); - for(var i = 0, len = tasks.length; i < len; i++){ - if(tasks[i].onStop){ - tasks[i].onStop(); - } - } - tasks = []; - removeQueue = []; - }; -}; - -Ext.TaskMgr = new Ext.util.TaskRunner(); \ No newline at end of file diff --git a/www/extras/extjs/source/util/TextMetrics.js b/www/extras/extjs/source/util/TextMetrics.js deleted file mode 100644 index 752c00966..000000000 --- a/www/extras/extjs/source/util/TextMetrics.js +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.util.TextMetrics - * Provides precise pixel measurements for blocks of text so that you can determine exactly how high and - * wide, in pixels, a given block of text will be. - * @singleton - */ -Ext.util.TextMetrics = function(){ - var shared; - return { - /** - * Measures the size of the specified text - * @param {String/HTMLElement} el The element, dom node or id from which to copy existing CSS styles - * that can affect the size of the rendered text - * @param {String} text The text to measure - * @param {Number} fixedWidth (optional) If the text will be multiline, you have to set a fixed width - * in order to accurately measure the text height - * @return {Object} An object containing the text's size {width: (width), height: (height)} - */ - measure : function(el, text, fixedWidth){ - if(!shared){ - shared = Ext.util.TextMetrics.Instance(el, fixedWidth); - } - shared.bind(el); - shared.setFixedWidth(fixedWidth || 'auto'); - return shared.getSize(text); - }, - - /** - * Return a unique TextMetrics instance that can be bound directly to an element and reused. This reduces - * the overhead of multiple calls to initialize the style properties on each measurement. - * @param {String/HTMLElement} el The element, dom node or id that the instance will be bound to - * @param {Number} fixedWidth (optional) If the text will be multiline, you have to set a fixed width - * in order to accurately measure the text height - * @return {Ext.util.TextMetrics.Instance} instance The new instance - */ - createInstance : function(el, fixedWidth){ - return Ext.util.TextMetrics.Instance(el, fixedWidth); - } - }; -}(); - -Ext.util.TextMetrics.Instance = function(bindTo, fixedWidth){ - var ml = new Ext.Element(document.createElement('div')); - document.body.appendChild(ml.dom); - ml.position('absolute'); - ml.setLeftTop(-1000, -1000); - ml.hide(); - - if(fixedWidth){ - mi.setWidth(fixedWidth); - } - - var instance = { - /** - * Returns the size of the specified text based on the internal element's style and width properties - * @param {String} text The text to measure - * @return {Object} An object containing the text's size {width: (width), height: (height)} - */ - getSize : function(text){ - ml.update(text); - var s = ml.getSize(); - ml.update(''); - return s; - }, - - /** - * Binds this TextMetrics instance to an element from which to copy existing CSS styles - * that can affect the size of the rendered text - * @param {String/HTMLElement} el The element, dom node or id - */ - bind : function(el){ - ml.setStyle( - Ext.fly(el).getStyles('font-size','font-style', 'font-weight', 'font-family','line-height') - ); - }, - - /** - * Sets a fixed width on the internal measurement element. If the text will be multiline, you have - * to set a fixed width in order to accurately measure the text height. - * @param {Number} width The width to set on the element - */ - setFixedWidth : function(width){ - ml.setWidth(width); - }, - - /** - * Returns the measured width of the specified text - * @param {String} text The text to measure - * @return {Number} width The width in pixels - */ - getWidth : function(text){ - ml.dom.style.width = 'auto'; - return this.getSize(text).width; - }, - - /** - * Returns the measured height of the specified text. For multiline text, be sure to call - * {@link #setFixedWidth} if necessary. - * @param {String} text The text to measure - * @return {Number} height The height in pixels - */ - getHeight : function(text){ - return this.getSize(text).height; - } - }; - - instance.bind(bindTo); - - return instance; -}; - -// backwards compat -Ext.Element.measureText = Ext.util.TextMetrics.measure; \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/BasicDialog.js b/www/extras/extjs/source/widgets/BasicDialog.js deleted file mode 100644 index 9f7ad8328..000000000 --- a/www/extras/extjs/source/widgets/BasicDialog.js +++ /dev/null @@ -1,1193 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.BasicDialog - * @extends Ext.util.Observable - * Lightweight Dialog Class. The code below shows the creation of a typical dialog using existing HTML markup: - *
        
        -    var dlg = new Ext.BasicDialog("my-dlg", {
        -        height: 200,
        -        width: 300,
        -        minHeight: 100,
        -        minWidth: 150,
        -        modal: true,
        -        proxyDrag: true,
        -        shadow: true
        -    });
        -    dlg.addKeyListener(27, dlg.hide, dlg); // ESC can also close the dialog
        -    dlg.addButton('OK', dlg.hide, dlg);    // Could call a save function instead of hiding
        -    dlg.addButton('Cancel', dlg.hide, dlg);
        -    dlg.show();
        -  
        - A Dialog should always be a direct child of the body element. - * @cfg {Boolean/DomHelper} autoCreate True to auto create from scratch, or using a DomHelper Object (defaults to false) - * @cfg {String} title Default text to display in the title bar (defaults to null) - * @cfg {Number} width Width of the dialog in pixels (can also be set via CSS). Determined by browser if unspecified. - * @cfg {Number} height Height of the dialog in pixels (can also be set via CSS). Determined by browser if unspecified. - * @cfg {Number} x The default top page coordinate of the dialog (defaults to center screen) - * @cfg {Number} y The default left page coordinate of the dialog (defaults to center screen) - * @cfg {String/Element} animateTarget Id or element from which the dialog should animate while opening - * (defaults to null with no animation) - * @cfg {Boolean} resizable False to disable manual dialog resizing (defaults to true) - * @cfg {String} resizeHandles Which resize handles to display - see the {@link Ext.Resizable} handles config - * property for valid values (defaults to 'all') - * @cfg {Number} minHeight The minimum allowable height for a resizable dialog (defaults to 80) - * @cfg {Number} minWidth The minimum allowable width for a resizable dialog (defaults to 200) - * @cfg {Boolean} modal True to show the dialog modally, preventing user interaction with the rest of the page (defaults to false) - * @cfg {Boolean} autoScroll True to allow the dialog body contents to overflow and display scrollbars (defaults to false) - * @cfg {Boolean} closable False to remove the built-in top-right corner close button (defaults to true) - * @cfg {Boolean} collapsible False to remove the built-in top-right corner collapse button (defaults to true) - * @cfg {Boolean} constraintoviewport True to keep the dialog constrained within the visible viewport boundaries (defaults to true) - * @cfg {Boolean} syncHeightBeforeShow True to cause the dimensions to be recalculated before the dialog is shown (defaults to false) - * @cfg {Boolean} draggable False to disable dragging of the dialog within the viewport (defaults to true) - * @cfg {Boolean} autoTabs If true, all elements with class 'x-dlg-tab' will get automatically converted to tabs (defaults to false) - * @cfg {String} tabTag The tag name of tab elements, used when autoTabs = true (defaults to 'div') - * @cfg {Boolean} proxyDrag True to drag a lightweight proxy element rather than the dialog itself, used when - * draggable = true (defaults to false) - * @cfg {Boolean} fixedcenter True to ensure that anytime the dialog is shown or resized it gets centered (defaults to false) - * @cfg {Boolean/String} shadow True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right - * shadow (defaults to false) - * @cfg {Number} shadowOffset The number of pixels to offset the shadow if displayed (defaults to 5) - * @cfg {String} buttonAlign Valid values are "left," "center" and "right" (defaults to "right") - * @cfg {Number} minButtonWidth Minimum width of all dialog buttons (defaults to 75) - * @cfg {Boolean} shim True to create an iframe shim that prevents selects from showing through (defaults to false) - * @constructor - * Create a new BasicDialog. - * @param {String/HTMLElement/Ext.Element} el The container element or DOM node, or its id - * @param {Object} config Configuration options - */ -Ext.BasicDialog = function(el, config){ - this.el = Ext.get(el); - var dh = Ext.DomHelper; - if(!this.el && config && config.autoCreate){ - if(typeof config.autoCreate == "object"){ - if(!config.autoCreate.id){ - config.autoCreate.id = el; - } - this.el = dh.append(document.body, - config.autoCreate, true); - }else{ - this.el = dh.append(document.body, - {tag: "div", id: el, style:'visibility:hidden;'}, true); - } - } - el = this.el; - el.setDisplayed(true); - el.hide = this.hideAction; - this.id = el.id; - el.addClass("x-dlg"); - - Ext.apply(this, config); - - this.proxy = el.createProxy("x-dlg-proxy"); - this.proxy.hide = this.hideAction; - this.proxy.setOpacity(.5); - this.proxy.hide(); - - if(config.width){ - el.setWidth(config.width); - } - if(config.height){ - el.setHeight(config.height); - } - this.size = el.getSize(); - if(typeof config.x != "undefined" && typeof config.y != "undefined"){ - this.xy = [config.x,config.y]; - }else{ - this.xy = el.getCenterXY(true); - } - /** The header element @type Ext.Element */ - this.header = el.child("/.x-dlg-hd"); - /** The body element @type Ext.Element */ - this.body = el.child("/.x-dlg-bd"); - /** The footer element @type Ext.Element */ - this.footer = el.child("/.x-dlg-ft"); - - if(!this.header){ - this.header = el.createChild({tag: "div", cls:"x-dlg-hd", html: " "}, this.body ? this.body.dom : null); - } - if(!this.body){ - this.body = el.createChild({tag: "div", cls:"x-dlg-bd"}); - } - - this.header.unselectable(); - if(this.title){ - this.header.update(this.title); - } - // this element allows the dialog to be focused for keyboard event - this.focusEl = el.createChild({tag: "a", href:"#", cls:"x-dlg-focus", tabIndex:"-1"}); - this.focusEl.swallowEvent("click", true); - - this.header.wrap({cls:"x-dlg-hd-right"}).wrap({cls:"x-dlg-hd-left"}, true); - - // wrap the body and footer for special rendering - this.bwrap = this.body.wrap({tag: "div", cls:"x-dlg-dlg-body"}); - if(this.footer){ - this.bwrap.dom.appendChild(this.footer.dom); - } - - this.bg = this.el.createChild({ - tag: "div", cls:"x-dlg-bg", - html: '
         
        ' - }); - this.centerBg = this.bg.child("div.x-dlg-bg-center"); - - - if(this.autoScroll !== false && !this.autoTabs){ - this.body.setStyle("overflow", "auto"); - } - - this.toolbox = this.el.createChild({cls: "x-dlg-toolbox"}); - - if(this.closable !== false){ - this.el.addClass("x-dlg-closable"); - this.close = this.toolbox.createChild({cls:"x-dlg-close"}); - this.close.on("click", this.closeClick, this); - this.close.addClassOnOver("x-dlg-close-over"); - } - if(this.collapsible !== false){ - this.collapseBtn = this.toolbox.createChild({cls:"x-dlg-collapse"}); - this.collapseBtn.on("click", this.collapseClick, this); - this.collapseBtn.addClassOnOver("x-dlg-collapse-over"); - this.header.on("dblclick", this.collapseClick, this); - } - if(this.resizable !== false){ - this.el.addClass("x-dlg-resizable"); - this.resizer = new Ext.Resizable(el, { - minWidth: this.minWidth || 80, - minHeight:this.minHeight || 80, - handles: this.resizeHandles || "all", - pinned: true - }); - this.resizer.on("beforeresize", this.beforeResize, this); - this.resizer.on("resize", this.onResize, this); - } - if(this.draggable !== false){ - el.addClass("x-dlg-draggable"); - if (!this.proxyDrag) { - var dd = new Ext.dd.DD(el.dom.id, "WindowDrag"); - } - else { - var dd = new Ext.dd.DDProxy(el.dom.id, "WindowDrag", {dragElId: this.proxy.id}); - } - dd.setHandleElId(this.header.id); - dd.endDrag = this.endMove.createDelegate(this); - dd.startDrag = this.startMove.createDelegate(this); - dd.onDrag = this.onDrag.createDelegate(this); - dd.scroll = false; - this.dd = dd; - } - if(this.modal){ - this.mask = dh.append(document.body, {tag: "div", cls:"x-dlg-mask"}, true); - this.mask.enableDisplayMode("block"); - this.mask.hide(); - this.el.addClass("x-dlg-modal"); - } - if(this.shadow){ - this.shadow = new Ext.Shadow({ - mode : typeof this.shadow == "string" ? this.shadow : "sides", - offset : this.shadowOffset - }); - }else{ - this.shadowOffset = 0; - } - if(Ext.useShims && this.shim !== false){ - this.shim = this.el.createShim(); - this.shim.hide = this.hideAction; - this.shim.hide(); - }else{ - this.shim = false; - } - if(this.autoTabs){ - this.initTabs(); - } - this.addEvents({ - /** - * @event keydown - * Fires when a key is pressed - * @param {Ext.BasicDialog} this - * @param {Ext.EventObject} e - */ - "keydown" : true, - /** - * @event move - * Fires when this dialog is moved by the user. - * @param {Ext.BasicDialog} this - * @param {Number} x The new page X - * @param {Number} y The new page Y - */ - "move" : true, - /** - * @event resize - * Fires when this dialog is resized by the user. - * @param {Ext.BasicDialog} this - * @param {Number} width The new width - * @param {Number} height The new height - */ - "resize" : true, - /** - * @event beforehide - * Fires before this dialog is hidden. - * @param {Ext.BasicDialog} this - */ - "beforehide" : true, - /** - * @event hide - * Fires when this dialog is hidden. - * @param {Ext.BasicDialog} this - */ - "hide" : true, - /** - * @event beforeshow - * Fires before this dialog is shown. - * @param {Ext.BasicDialog} this - */ - "beforeshow" : true, - /** - * @event show - * Fires when this dialog is shown. - * @param {Ext.BasicDialog} this - */ - "show" : true - }); - el.on("keydown", this.onKeyDown, this); - el.on("mousedown", this.toFront, this); - Ext.EventManager.onWindowResize(this.adjustViewport, this, true); - this.el.hide(); - Ext.DialogManager.register(this); - Ext.BasicDialog.superclass.constructor.call(this); -}; - -Ext.extend(Ext.BasicDialog, Ext.util.Observable, { - shadowOffset: 5, - minHeight: 80, - minWidth: 200, - minButtonWidth: 75, - defaultButton: null, - buttonAlign: "right", - tabTag: 'div', - firstShow: true, - - /** - * Sets the dialog title text - * @param {String} text The title text to display - * @return {Ext.BasicDialog} this - */ - setTitle : function(text){ - this.header.update(text); - return this; - }, - - // private - closeClick : function(){ - this.hide(); - }, - - // private - collapseClick : function(){ - this[this.collapsed ? "expand" : "collapse"](); - }, - - /** - * Collapses the dialog to its minimized state (only the title bar is visible). - * Equivalent to the user clicking the collapse dialog button. - */ - collapse : function(){ - if(!this.collapsed){ - this.collapsed = true; - this.el.addClass("x-dlg-collapsed"); - this.restoreHeight = this.el.getHeight(); - this.resizeTo(this.el.getWidth(), this.header.getHeight()); - } - }, - - /** - * Expands a collapsed dialog back to its normal state. Equivalent to the user - * clicking the expand dialog button. - */ - expand : function(){ - if(this.collapsed){ - this.collapsed = false; - this.el.removeClass("x-dlg-collapsed"); - this.resizeTo(this.el.getWidth(), this.restoreHeight); - } - }, - - /** - * Reinitializes the tabs component, clearing out old tabs and finding new ones. - * @return {Ext.TabPanel} The tabs component - */ - initTabs : function(){ - var tabs = this.getTabs(); - while(tabs.getTab(0)){ - tabs.removeTab(0); - } - this.el.select(this.tabTag+'.x-dlg-tab').each(function(el){ - var dom = el.dom; - tabs.addTab(Ext.id(dom), dom.title); - dom.title = ""; - }); - tabs.activate(0); - return tabs; - }, - - // private - beforeResize : function(){ - this.resizer.minHeight = Math.max(this.minHeight, this.getHeaderFooterHeight(true)+40); - }, - - // private - onResize : function(){ - this.refreshSize(); - this.syncBodyHeight(); - this.adjustAssets(); - this.focus(); - this.fireEvent("resize", this, this.size.width, this.size.height); - }, - - // private - onKeyDown : function(e){ - if(this.isVisible()){ - this.fireEvent("keydown", this, e); - } - }, - - /** - * Resizes the dialog. - * @param {Number} width - * @param {Number} height - * @return {Ext.BasicDialog} this - */ - resizeTo : function(width, height){ - this.el.setSize(width, height); - this.size = {width: width, height: height}; - this.syncBodyHeight(); - if(this.fixedcenter){ - this.center(); - } - if(this.isVisible()){ - this.constrainXY(); - this.adjustAssets(); - } - this.fireEvent("resize", this, width, height); - return this; - }, - - - /** - * Resizes the dialog to fit the specified content size. - * @param {Number} width - * @param {Number} height - * @return {Ext.BasicDialog} this - */ - setContentSize : function(w, h){ - h += this.getHeaderFooterHeight() + this.body.getMargins("tb"); - w += this.body.getMargins("lr") + this.bwrap.getMargins("lr") + this.centerBg.getPadding("lr"); - //if(!this.el.isBorderBox()){ - h += this.body.getPadding("tb") + this.bwrap.getBorderWidth("tb") + this.body.getBorderWidth("tb") + this.el.getBorderWidth("tb"); - w += this.body.getPadding("lr") + this.bwrap.getBorderWidth("lr") + this.body.getBorderWidth("lr") + this.bwrap.getPadding("lr") + this.el.getBorderWidth("lr"); - //} - if(this.tabs){ - h += this.tabs.stripWrap.getHeight() + this.tabs.bodyEl.getMargins("tb") + this.tabs.bodyEl.getPadding("tb"); - w += this.tabs.bodyEl.getMargins("lr") + this.tabs.bodyEl.getPadding("lr"); - } - this.resizeTo(w, h); - return this; - }, - - /** - * Adds a key listener for when this dialog is displayed. This allows you to hook in a function that will be - * executed in response to a particular key being pressed while the dialog is active. - * @param {Number/Array/Object} key Either the numeric key code, array of key codes or an object with the following options: - * {key: (number or array), shift: (true/false), ctrl: (true/false), alt: (true/false)} - * @param {Function} fn The function to call - * @param {Object} scope (optional) The scope of the function - * @return {Ext.BasicDialog} this - */ - addKeyListener : function(key, fn, scope){ - var keyCode, shift, ctrl, alt; - if(typeof key == "object" && !(key instanceof Array)){ - keyCode = key["key"]; - shift = key["shift"]; - ctrl = key["ctrl"]; - alt = key["alt"]; - }else{ - keyCode = key; - } - var handler = function(dlg, e){ - if((!shift || e.shiftKey) && (!ctrl || e.ctrlKey) && (!alt || e.altKey)){ - var k = e.getKey(); - if(keyCode instanceof Array){ - for(var i = 0, len = keyCode.length; i < len; i++){ - if(keyCode[i] == k){ - fn.call(scope || window, dlg, k, e); - return; - } - } - }else{ - if(k == keyCode){ - fn.call(scope || window, dlg, k, e); - } - } - } - }; - this.on("keydown", handler); - return this; - }, - - /** - * Returns the TabPanel component (creates it if it doesn't exist). - * Note: If you wish to simply check for the existence of tabs without creating them, - * check for a null 'tabs' property. - * @return {Ext.TabPanel} The tabs component - */ - getTabs : function(){ - if(!this.tabs){ - this.el.addClass("x-dlg-auto-tabs"); - this.body.addClass(this.tabPosition == "bottom" ? "x-tabs-bottom" : "x-tabs-top"); - this.tabs = new Ext.TabPanel(this.body.dom, this.tabPosition == "bottom"); - } - return this.tabs; - }, - - /** - * Adds a button to the footer section of the dialog. - * @param {String/Object} config A string becomes the button text, an object can either be a Button config - * object or a valid Ext.DomHelper element config - * @param {Function} handler The function called when the button is clicked - * @param {Object} scope (optional) The scope of the handler function - * @return {Ext.Button} this - */ - addButton : function(config, handler, scope){ - var dh = Ext.DomHelper; - if(!this.footer){ - this.footer = dh.append(this.bwrap, {tag: "div", cls:"x-dlg-ft"}, true); - } - if(!this.btnContainer){ - var tb = this.footer.createChild({ - tag:"div", - cls:"x-dlg-btns x-dlg-btns-"+this.buttonAlign, - html:'
        ' - }, null, true); - this.btnContainer = tb.firstChild.firstChild.firstChild; - } - var bconfig = { - handler: handler, - scope: scope, - minWidth: this.minButtonWidth, - hideParent:true - }; - if(typeof config == "string"){ - bconfig.text = config; - }else{ - if(config.tag){ - bconfig.dhconfig = config; - }else{ - Ext.apply(bconfig, config); - } - } - var btn = new Ext.Button( - this.btnContainer.appendChild(document.createElement("td")), - bconfig - ); - this.syncBodyHeight(); - if(!this.buttons){ - /** - * Array of all the buttons that have been added to this dialog via addButton - * @type Array - */ - this.buttons = []; - } - this.buttons.push(btn); - return btn; - }, - - /** - * Sets the default button to be focused when the dialog is displayed. - * @param {Ext.BasicDialog.Button} btn The button object returned by {@link #addButton} - * @return {Ext.BasicDialog} this - */ - setDefaultButton : function(btn){ - this.defaultButton = btn; - return this; - }, - - // private - getHeaderFooterHeight : function(safe){ - var height = 0; - if(this.header){ - height += this.header.getHeight(); - } - if(this.footer){ - var fm = this.footer.getMargins(); - height += (this.footer.getHeight()+fm.top+fm.bottom); - } - height += this.bwrap.getPadding("tb")+this.bwrap.getBorderWidth("tb"); - height += this.centerBg.getPadding("tb"); - return height; - }, - - // private - syncBodyHeight : function(){ - var bd = this.body, cb = this.centerBg, bw = this.bwrap; - var height = this.size.height - this.getHeaderFooterHeight(false); - bd.setHeight(height-bd.getMargins("tb")); - var hh = this.header.getHeight(); - var h = this.size.height-hh; - cb.setHeight(h); - bw.setLeftTop(cb.getPadding("l"), hh+cb.getPadding("t")); - bw.setHeight(h-cb.getPadding("tb")); - bw.setWidth(this.el.getWidth(true)-cb.getPadding("lr")); - bd.setWidth(bw.getWidth(true)); - if(this.tabs){ - this.tabs.syncHeight(); - if(Ext.isIE){ - this.tabs.el.repaint(); - } - } - }, - - /** - * Restores the previous state of the dialog if Ext.state is configured. - * @return {Ext.BasicDialog} this - */ - restoreState : function(){ - var box = Ext.state.Manager.get(this.stateId || (this.el.id + "-state")); - if(box && box.width){ - this.xy = [box.x, box.y]; - this.resizeTo(box.width, box.height); - } - return this; - }, - - // private - beforeShow : function(){ - this.expand(); - if(this.fixedcenter){ - this.xy = this.el.getCenterXY(true); - } - if(this.modal){ - Ext.get(document.body).addClass("x-body-masked"); - this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); - this.mask.show(); - } - this.constrainXY(); - }, - - // private - animShow : function(){ - var b = Ext.get(this.animateTarget, true).getBox(); - this.proxy.setSize(b.width, b.height); - this.proxy.setLocation(b.x, b.y); - this.proxy.show(); - this.proxy.setBounds(this.xy[0], this.xy[1], this.size.width, this.size.height, - true, .35, this.showEl.createDelegate(this)); - }, - - /** - * Shows the dialog. - * @param {String/HTMLElement/Ext.Element} animateTarget (optional) Reset the animation target - * @return {Ext.BasicDialog} this - */ - show : function(animateTarget){ - if (this.fireEvent("beforeshow", this) === false){ - return; - } - if(this.syncHeightBeforeShow){ - this.syncBodyHeight(); - }else if(this.firstShow){ - this.firstShow = false; - this.syncBodyHeight(); // sync the height on the first show instead of in the constructor - } - this.animateTarget = animateTarget || this.animateTarget; - if(!this.el.isVisible()){ - this.beforeShow(); - if(this.animateTarget){ - this.animShow(); - }else{ - this.showEl(); - } - } - return this; - }, - - // private - showEl : function(){ - this.proxy.hide(); - this.el.setXY(this.xy); - this.el.show(); - this.adjustAssets(true); - this.toFront(); - this.focus(); - // IE peekaboo bug - fix found by Dave Fenwick - if(Ext.isIE){ - this.el.repaint(); - } - this.fireEvent("show", this); - }, - - /** - * Focuses the dialog. If a defaultButton is set, it will receive focus, otherwise the - * dialog itself will receive focus. - */ - focus : function(){ - if(this.defaultButton){ - this.defaultButton.focus(); - }else{ - this.focusEl.focus(); - } - }, - - // private - constrainXY : function(){ - if(this.constraintoviewport !== false){ - if(!this.viewSize){ - if(this.container){ - var s = this.container.getSize(); - this.viewSize = [s.width, s.height]; - }else{ - this.viewSize = [Ext.lib.Dom.getViewWidth(),Ext.lib.Dom.getViewHeight()]; - } - } - var s = Ext.get(this.container||document).getScroll(); - - var x = this.xy[0], y = this.xy[1]; - var w = this.size.width, h = this.size.height; - var vw = this.viewSize[0], vh = this.viewSize[1]; - // only move it if it needs it - var moved = false; - // first validate right/bottom - if(x + w > vw+s.left){ - x = vw - w; - moved = true; - } - if(y + h > vh+s.top){ - y = vh - h; - moved = true; - } - // then make sure top/left isn't negative - if(x < s.left){ - x = s.left; - moved = true; - } - if(y < s.top){ - y = s.top; - moved = true; - } - if(moved){ - // cache xy - this.xy = [x, y]; - if(this.isVisible()){ - this.el.setLocation(x, y); - this.adjustAssets(); - } - } - } - }, - - // private - onDrag : function(){ - if(!this.proxyDrag){ - this.xy = this.el.getXY(); - this.adjustAssets(); - } - }, - - // private - adjustAssets : function(doShow){ - var x = this.xy[0], y = this.xy[1]; - var w = this.size.width, h = this.size.height; - if(doShow === true){ - if(this.shadow){ - this.shadow.show(this.el); - } - if(this.shim){ - this.shim.show(); - } - } - if(this.shadow && this.shadow.isVisible()){ - this.shadow.show(this.el); - } - if(this.shim && this.shim.isVisible()){ - this.shim.setBounds(x, y, w, h); - } - }, - - // private - adjustViewport : function(w, h){ - if(!w || !h){ - w = Ext.lib.Dom.getViewWidth(); - h = Ext.lib.Dom.getViewHeight(); - } - // cache the size - this.viewSize = [w, h]; - if(this.modal && this.mask.isVisible()){ - this.mask.setSize(w, h); // first make sure the mask isn't causing overflow - this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); - } - if(this.isVisible()){ - this.constrainXY(); - } - }, - - /** - * Destroys this dialog and all its supporting elements (including any tabs, shim, - * shadow, proxy, mask, etc.) Also removes all event listeners. - * @param {Boolean} removeEl (optional) true to remove the element from the DOM - */ - destroy : function(removeEl){ - if(this.isVisible()){ - this.animateTarget = null; - this.hide(); - } - Ext.EventManager.removeResizeListener(this.adjustViewport, this); - if(this.tabs){ - this.tabs.destroy(removeEl); - } - Ext.destroy( - this.shim, - this.proxy, - this.resizer, - this.close, - this.mask - ); - if(this.dd){ - this.dd.unreg(); - } - if(this.buttons){ - for(var i = 0, len = this.buttons.length; i < len; i++){ - this.buttons[i].destroy(); - } - } - this.el.removeAllListeners(); - if(removeEl === true){ - this.el.update(""); - this.el.remove(); - } - Ext.DialogManager.unregister(this); - }, - - // private - startMove : function(){ - if(this.proxyDrag){ - this.proxy.show(); - } - if(this.constraintoviewport !== false){ - this.dd.constrainTo(document.body, {right: this.shadowOffset, bottom: this.shadowOffset}); - } - }, - - // private - endMove : function(){ - if(!this.proxyDrag){ - Ext.dd.DD.prototype.endDrag.apply(this.dd, arguments); - }else{ - Ext.dd.DDProxy.prototype.endDrag.apply(this.dd, arguments); - this.proxy.hide(); - } - this.refreshSize(); - this.adjustAssets(); - this.focus(); - this.fireEvent("move", this, this.xy[0], this.xy[1]); - }, - - /** - * Brings this dialog to the front of any other visible dialogs - * @return {Ext.BasicDialog} this - */ - toFront : function(){ - Ext.DialogManager.bringToFront(this); - return this; - }, - - /** - * Sends this dialog to the back (under) of any other visible dialogs - * @return {Ext.BasicDialog} this - */ - toBack : function(){ - Ext.DialogManager.sendToBack(this); - return this; - }, - - /** - * Centers this dialog in the viewport - * @return {Ext.BasicDialog} this - */ - center : function(){ - var xy = this.el.getCenterXY(true); - this.moveTo(xy[0], xy[1]); - return this; - }, - - /** - * Moves the dialog's top-left corner to the specified point - * @param {Number} x - * @param {Number} y - * @return {Ext.BasicDialog} this - */ - moveTo : function(x, y){ - this.xy = [x,y]; - if(this.isVisible()){ - this.el.setXY(this.xy); - this.adjustAssets(); - } - return this; - }, - - /** - * Aligns the dialog to the specified element - * @param {String/HTMLElement/Ext.Element} element The element to align to. - * @param {String} position The position to align to (see {@link Ext.Element#alignTo} for more details). - * @param {Array} offsets (optional) Offset the positioning by [x, y] - * @return {Ext.BasicDialog} this - */ - alignTo : function(element, position, offsets){ - this.xy = this.el.getAlignToXY(element, position, offsets); - if(this.isVisible()){ - this.el.setXY(this.xy); - this.adjustAssets(); - } - return this; - }, - - /** - * Anchors an element to another element and realigns it when the window is resized. - * @param {String/HTMLElement/Ext.Element} element The element to align to. - * @param {String} position The position to align to (see {@link Ext.Element#alignTo} for more details) - * @param {Array} offsets (optional) Offset the positioning by [x, y] - * @param {Boolean/Number} monitorScroll (optional) true to monitor body scroll and reposition. If this parameter - * is a number, it is used as the buffer delay (defaults to 50ms). - * @return {Ext.BasicDialog} this - */ - anchorTo : function(el, alignment, offsets, monitorScroll){ - var action = function(){ - this.alignTo(el, alignment, offsets); - }; - Ext.EventManager.onWindowResize(action, this); - var tm = typeof monitorScroll; - if(tm != 'undefined'){ - Ext.EventManager.on(window, 'scroll', action, this, - {buffer: tm == 'number' ? monitorScroll : 50}); - } - action.call(this); - return this; - }, - - /** - * Returns true if the dialog is visible - * @return {Boolean} - */ - isVisible : function(){ - return this.el.isVisible(); - }, - - // private - animHide : function(callback){ - var b = Ext.get(this.animateTarget).getBox(); - this.proxy.show(); - this.proxy.setBounds(this.xy[0], this.xy[1], this.size.width, this.size.height); - this.el.hide(); - this.proxy.setBounds(b.x, b.y, b.width, b.height, true, .35, - this.hideEl.createDelegate(this, [callback])); - }, - - /** - * Hides the dialog. - * @param {Function} callback (optional) Function to call when the dialog is hidden - * @return {Ext.BasicDialog} this - */ - hide : function(callback){ - if (this.fireEvent("beforehide", this) === false){ - return; - } - if(this.shadow){ - this.shadow.hide(); - } - if(this.shim) { - this.shim.hide(); - } - if(this.animateTarget){ - this.animHide(callback); - }else{ - this.el.hide(); - this.hideEl(callback); - } - return this; - }, - - // private - hideEl : function(callback){ - this.proxy.hide(); - if(this.modal){ - this.mask.hide(); - Ext.get(document.body).removeClass("x-body-masked"); - } - this.fireEvent("hide", this); - if(typeof callback == "function"){ - callback(); - } - }, - - // private - hideAction : function(){ - this.setLeft("-10000px"); - this.setTop("-10000px"); - this.setStyle("visibility", "hidden"); - }, - - // private - refreshSize : function(){ - this.size = this.el.getSize(); - this.xy = this.el.getXY(); - Ext.state.Manager.set(this.stateId || this.el.id + "-state", this.el.getBox()); - }, - - // private - // z-index is managed by the DialogManager and may be overwritten at any time - setZIndex : function(index){ - if(this.modal){ - this.mask.setStyle("z-index", index); - } - if(this.shim){ - this.shim.setStyle("z-index", ++index); - } - if(this.shadow){ - this.shadow.setZIndex(++index); - } - this.el.setStyle("z-index", ++index); - if(this.proxy){ - this.proxy.setStyle("z-index", ++index); - } - if(this.resizer){ - this.resizer.proxy.setStyle("z-index", ++index); - } - - this.lastZIndex = index; - }, - - /** - * Returns the element for this dialog - * @return {Ext.Element} The underlying dialog Element - */ - getEl : function(){ - return this.el; - } -}); - -/** - * @class Ext.DialogManager - * Provides global access to BasicDialogs that have been created and - * support for z-indexing (layering) multiple open dialogs. - */ -Ext.DialogManager = function(){ - var list = {}; - var accessList = []; - var front = null; - - // private - var sortDialogs = function(d1, d2){ - return (!d1._lastAccess || d1._lastAccess < d2._lastAccess) ? -1 : 1; - }; - - // private - var orderDialogs = function(){ - accessList.sort(sortDialogs); - var seed = Ext.DialogManager.zseed; - for(var i = 0, len = accessList.length; i < len; i++){ - var dlg = accessList[i]; - if(dlg){ - dlg.setZIndex(seed + (i*10)); - } - } - }; - - return { - /** - * The starting z-index for BasicDialogs (defaults to 9000) - * @type Number The z-index value - */ - zseed : 9000, - - // private - register : function(dlg){ - list[dlg.id] = dlg; - accessList.push(dlg); - }, - - // private - unregister : function(dlg){ - delete list[dlg.id]; - if(!accessList.indexOf){ - for(var i = 0, len = accessList.length; i < len; i++){ - if(accessList[i] == dlg){ - accessList.splice(i, 1); - return; - } - } - }else{ - var i = accessList.indexOf(dlg); - if(i != -1){ - accessList.splice(i, 1); - } - } - }, - - /** - * Gets a registered dialog by id - * @param {String/Object} id The id of the dialog or a dialog - * @return {Ext.BasicDialog} this - */ - get : function(id){ - return typeof id == "object" ? id : list[id]; - }, - - /** - * Brings the specified dialog to the front - * @param {String/Object} dlg The id of the dialog or a dialog - * @return {Ext.BasicDialog} this - */ - bringToFront : function(dlg){ - dlg = this.get(dlg); - if(dlg != front){ - front = dlg; - dlg._lastAccess = new Date().getTime(); - orderDialogs(); - } - return dlg; - }, - - /** - * Sends the specified dialog to the back - * @param {String/Object} dlg The id of the dialog or a dialog - * @return {Ext.BasicDialog} this - */ - sendToBack : function(dlg){ - dlg = this.get(dlg); - dlg._lastAccess = -(new Date().getTime()); - orderDialogs(); - return dlg; - }, - - /** - * Hides all dialogs - */ - hideAll : function(){ - for(var id in list){ - if(list[id] && typeof list[id] != "function" && list[id].isVisible()){ - list[id].hide(); - } - } - } - }; -}(); - -/** - * @class Ext.LayoutDialog - * @extends Ext.BasicDialog - * Dialog which provides adjustments for working with a layout in a Dialog. - * Add your neccessary layout config options to the dialogs config.
        - * Example Usage (including a nested layout): - *
            if(!dialog){
        -    dialog = new Ext.LayoutDialog("download-dlg", {
        -            modal: true,
        -            width:600,
        -            height:450,
        -            shadow:true,
        -            minWidth:500,
        -            minHeight:350,
        -            autoTabs:true,
        -            proxyDrag:true,
        -            // layout config merges with the dialog config
        -            center:{
        -                tabPosition: "top",
        -                alwaysShowTabs: true
        -            }
        -    });
        -    dialog.addKeyListener(27, dialog.hide, dialog);
        -    dialog.setDefaultButton(dialog.addButton("Close", dialog.hide, dialog));
        -    dialog.addButton("Build It!", this.getDownload, this);
        -
        -    // we can even add nested layouts
        -    var innerLayout = new Ext.BorderLayout("dl-inner", {
        -        east: {
        -            initialSize: 200,
        -            autoScroll:true,
        -            split:true
        -        },
        -        center: {
        -            autoScroll:true
        -        }
        -    });
        -    innerLayout.beginUpdate();
        -    innerLayout.add("east", new Ext.ContentPanel("dl-details"));
        -    innerLayout.add("center", new Ext.ContentPanel("selection-panel"));
        -    innerLayout.endUpdate(true);
        -
        -    var layout = dialog.getLayout();
        -    layout.beginUpdate();
        -    layout.add("center", new Ext.ContentPanel("standard-panel",
        -                        {title: "Download the Source", fitToFrame:true}));
        -    layout.add("center", new Ext.NestedLayoutPanel(innerLayout,
        -               {title: "Build your own ext.js"}));
        -    layout.getRegion("center").showPanel(sp);
        -    layout.endUpdate();
        - * @constructor - * @param {String/HTMLElement/Ext.Element} el The id of or container element - * @param {Object} config configuration options - */ -Ext.LayoutDialog = function(el, config){ - config.autoTabs = false; - Ext.LayoutDialog.superclass.constructor.call(this, el, config); - this.body.setStyle({overflow:"hidden", position:"relative"}); - this.layout = new Ext.BorderLayout(this.body.dom, config); - this.layout.monitorWindowResize = false; - this.el.addClass("x-dlg-auto-layout"); - // fix case when center region overwrites center function - this.center = Ext.BasicDialog.prototype.center; - this.on("show", this.layout.layout, this.layout, true); -}; -Ext.extend(Ext.LayoutDialog, Ext.BasicDialog, { - /** - * Ends update of the layout and resets display to none. Use standard beginUpdate/endUpdate on the layout. - * @deprecated - */ - endUpdate : function(){ - this.layout.endUpdate(); - }, - - /** - * Begins an update of the layout and sets display to block and visibility to hidden. Use standard beginUpdate/endUpdate on the layout. - * @deprecated - */ - beginUpdate : function(){ - this.layout.beginUpdate(); - }, - - /** - * Get the BorderLayout for this dialog - * @return {Ext.BorderLayout} - */ - getLayout : function(){ - return this.layout; - }, - - showEl : function(){ - Ext.LayoutDialog.superclass.showEl.apply(this, arguments); - if(Ext.isIE7){ - this.layout.layout(); - } - }, - - // private - // Use the syncHeightBeforeShow config option to control this automatically - syncBodyHeight : function(){ - Ext.LayoutDialog.superclass.syncBodyHeight.call(this); - if(this.layout){this.layout.layout();} - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/BoxComponent.js b/www/extras/extjs/source/widgets/BoxComponent.js deleted file mode 100644 index f1e2a4667..000000000 --- a/www/extras/extjs/source/widgets/BoxComponent.js +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.BoxComponent = function(config){ - Ext.BoxComponent.superclass.constructor.call(this, config); - this.addEvents({ - resize : true, - move : true - }); -}; - -Ext.extend(Ext.BoxComponent, Ext.Component, { - boxReady : false, - // private, used to defer height settings to subclasses - deferHeight: false, - - setSize : function(w, h){ - // support for standard size objects - if(typeof w == 'object'){ - h = w.height; - w = w.width; - } - // not rendered - if(!this.boxReady){ - this.width = w; - this.height = h; - return; - } - - // prevent recalcs when not needed - if(this.lastSize && this.lastSize.width == w && this.lastSize.height == h){ - return; - } - this.lastSize = {width: w, height: h}; - - var adj = this.adjustSize(w, h); - var aw = adj.width, ah = adj.height; - if(aw !== undefined || ah !== undefined){ // this code is nasty but performs better with floaters - var rz = this.getResizeEl(); - if(!this.deferHeight && aw !== undefined && ah !== undefined){ - rz.setSize(aw, ah); - }else if(!this.deferHeight && ah !== undefined){ - rz.setHeight(ah); - }else if(aw !== undefined){ - rz.setWidth(aw); - } - this.onResize(aw, ah, w, h); - this.fireEvent('resize', this, aw, ah, w, h); - } - return this; - }, - - getSize : function(){ - return this.el.getSize(); - }, - - getPosition : function(local){ - if(local === true){ - return [this.el.getLeft(true), this.el.getTop(true)]; - } - return this.xy || this.el.getXY(); - }, - - getBox : function(local){ - var s = this.el.getSize(); - if(local){ - s.x = this.el.getLeft(true); - s.y = this.el.getTop(true); - }else{ - var xy = this.xy || this.el.getXY(); - s.x = xy[0]; - s.y = xy[1]; - } - return s; - }, - - updateBox : function(box){ - this.setSize(box.width, box.height); - this.setPagePosition(box.x, box.y); - }, - - getResizeEl : function(){ - return this.resizeEl || this.el; - }, - - setPosition : function(x, y){ - this.x = x; - this.y = y; - if(!this.boxReady){ - return; - } - var adj = this.adjustPosition(x, y); - var ax = adj.x, ay = adj.y; - - if(ax !== undefined || ay !== undefined){ - if(ax !== undefined && ay !== undefined){ - this.el.setLeftTop(ax, ay); - }else if(ax !== undefined){ - this.el.setLeft(ax); - }else if(ay !== undefined){ - this.el.setTop(ay); - } - this.onPosition(ax, ay); - this.fireEvent('move', this, ax, ay); - } - return this; - }, - - setPagePosition : function(x, y){ - this.pageX = x; - this.pageY = y; - if(!this.boxReady){ - return; - } - if(x === undefined || y === undefined){ // cannot translate undefined points - return; - } - var p = this.el.translatePoints(x, y); - this.setPosition(p.left, p.top); - return this; - }, - - onRender : function(ct, position){ - Ext.BoxComponent.superclass.onRender.call(this, ct, position); - if(this.resizeEl){ - this.resizeEl = Ext.get(this.resizeEl); - } - }, - - afterRender : function(){ - Ext.BoxComponent.superclass.afterRender.call(this); - this.boxReady = true; - this.setSize(this.width, this.height); - if(this.x || this.y){ - this.setPosition(this.x, this.y); - } - if(this.pageX || this.pageY){ - this.setPagePosition(this.pageX, this.pageY); - } - }, - - syncSize : function(){ - this.setSize(this.el.getWidth(), this.el.getHeight()); - }, - - onResize : function(adjWidth, adjHeight, rawWidth, rawHeight){ - - }, - - onPosition : function(x, y){ - - }, - - adjustSize : function(w, h){ - if(this.autoWidth){ - w = 'auto'; - } - if(this.autoHeight){ - h = 'auto'; - } - return {width : w, height: h}; - }, - - adjustPosition : function(x, y){ - return {x : x, y: y}; - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/Button.js b/www/extras/extjs/source/widgets/Button.js deleted file mode 100644 index ccb311a70..000000000 --- a/www/extras/extjs/source/widgets/Button.js +++ /dev/null @@ -1,462 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.Button - * @extends Ext.util.Observable - * Simple Button class - * @cfg {String} text The button text - * @cfg {String} icon The path to an image to display in the button (the image will be set as the background-image - * CSS property of the button by default, so if you want a mixed icon/text button, set cls:"x-btn-text-icon") - * @cfg {Function} handler A function called when the button is clicked (can be used instead of click event) - * @cfg {Object} scope The scope of the handler - * @cfg {Number} minWidth The minimum width for this button (used to give a set of buttons a common width) - * @cfg {String/Object} tooltip The tooltip for the button - can be a string or QuickTips config object - * @cfg {Boolean} hidden True to start hidden (defaults to false) - * @cfg {Boolean} disabled True to start disabled (defaults to false) - * @cfg {Boolean} pressed True to start pressed (only if enableToggle = true) - * @cfg {String} toggleGroup The group this toggle button is a member of (only 1 per group can be pressed, only - * applies if enableToggle = true) - * @cfg {Boolean/Object} repeat True to repeat fire the click event while the mouse is down. This can also be - an {@link Ext.util.ClickRepeater} config object (defaults to false). - * @constructor - * Create a new button - * @param {String/HTMLElement/Element} renderTo The element to append the button to - * @param {Object} config The config object - */ -Ext.Button = function(renderTo, config){ - Ext.apply(this, config); - this.addEvents({ - /** - * @event click - * Fires when this button is clicked - * @param {Button} this - * @param {EventObject} e The click event - */ - "click" : true, - /** - * @event toggle - * Fires when the "pressed" state of this button changes (only if enableToggle = true) - * @param {Button} this - * @param {Boolean} pressed - */ - "toggle" : true, - /** - * @event mouseover - * Fires when the mouse hovers over the button - * @param {Button} this - * @param {Event} e The event object - */ - 'mouseover' : true, - /** - * @event mouseout - * Fires when the mouse exits the button - * @param {Button} this - * @param {Event} e The event object - */ - 'mouseout': true - }); - if(this.menu){ - this.menu = Ext.menu.MenuMgr.get(this.menu); - } - if(renderTo){ - this.render(renderTo); - } - Ext.Button.superclass.constructor.call(this); -}; - -Ext.extend(Ext.Button, Ext.util.Observable, { - /** - * Read-only. True if this button is hidden - * @type Boolean - */ - hidden : false, - /** - * Read-only. True if this button is disabled - * @type Boolean - */ - disabled : false, - /** - * Read-only. True if this button is pressed (only if enableToggle = true) - * @type Boolean - */ - pressed : false, - - /** - * @cfg {Boolean} enableToggle - * True to enable pressed/not pressed toggling (defaults to false) - */ - enableToggle: false, - /** - * @cfg {Mixed} menu - * Standard menu attribute consisting of a reference to a menu object, a menu id or a menu config blob - */ - menu : undefined, - /** - * @cfg {String} menuAlign - * The position to align the menu to (see {@link Ext.Element#alignTo} for more details, defaults to 'tl-bl?'). - */ - menuAlign : "tl-bl?", - - // private - menuClassTarget: 'tr', - - clickEvent : 'click', - handleMouseEvents : true, - - /** - * @cfg {String} tooltipType - * The type of tooltip to use. Either "qtip" for QuickTips or "title" for title attribute. - */ - tooltipType : 'qtip', - - // private - render : function(renderTo){ - var btn; - if(this.hideParent){ - this.parentEl = Ext.get(renderTo); - } - if(!this.dhconfig){ - if(!this.template){ - if(!Ext.Button.buttonTemplate){ - // hideous table template - Ext.Button.buttonTemplate = new Ext.Template( - '', - '', - "
          
        "); - } - this.template = Ext.Button.buttonTemplate; - } - btn = this.template.append(renderTo, [this.text || ' '], true); - var btnEl = btn.child("button:first"); - btnEl.on('focus', this.onFocus, this); - btnEl.on('blur', this.onBlur, this); - if(this.cls){ - btn.addClass(this.cls); - } - if(this.icon){ - btnEl.setStyle('background-image', 'url(' +this.icon +')'); - } - if(this.tooltip){ - if(typeof this.tooltip == 'object'){ - Ext.QuickTips.tips(Ext.apply({ - target: btnEl.id - }, this.tooltip)); - } else { - btnEl.dom[this.tooltipType] = this.tooltip; - } - } - }else{ - btn = Ext.DomHelper.append(Ext.get(renderTo).dom, this.dhconfig, true); - } - this.el = btn; - if(this.id){ - this.el.dom.id = this.el.id = this.id; - } - if(this.menu){ - this.el.child(this.menuClassTarget).addClass("x-btn-with-menu"); - this.menu.on("show", this.onMenuShow, this); - this.menu.on("hide", this.onMenuHide, this); - } - btn.addClass("x-btn"); - if(Ext.isIE && !Ext.isIE7){ - this.autoWidth.defer(1, this); - }else{ - this.autoWidth(); - } - if(this.handleMouseEvents){ - btn.on("mouseover", this.onMouseOver, this); - btn.on("mouseout", this.onMouseOut, this); - btn.on("mousedown", this.onMouseDown, this); - } - btn.on(this.clickEvent, this.onClick, this); - //btn.on("mouseup", this.onMouseUp, this); - if(this.hidden){ - this.hide(); - } - if(this.disabled){ - this.disable(); - } - Ext.ButtonToggleMgr.register(this); - if(this.pressed){ - this.el.addClass("x-btn-pressed"); - } - if(this.repeat){ - var repeater = new Ext.util.ClickRepeater(btn, - typeof this.repeat == "object" ? this.repeat : {} - ); - repeater.on("click", this.onClick, this); - } - }, - /** - * Returns the button's underlying element - * @return {Ext.Element} The element - */ - getEl : function(){ - return this.el; - }, - - /** - * Destroys this Button and removes any listeners. - */ - destroy : function(){ - Ext.ButtonToggleMgr.unregister(this); - this.el.removeAllListeners(); - this.purgeListeners(); - this.el.remove(); - }, - - // private - autoWidth : function(){ - if(this.el){ - this.el.setWidth("auto"); - if(Ext.isIE7 && Ext.isStrict){ - var ib = this.el.child('button'); - if(ib && ib.getWidth() > 20){ - ib.clip(); - ib.setWidth(Ext.util.TextMetrics.measure(ib, this.text).width+ib.getFrameWidth('lr')); - } - } - if(this.minWidth){ - if(this.hidden){ - this.el.beginMeasure(); - } - if(this.el.getWidth() < this.minWidth){ - this.el.setWidth(this.minWidth); - } - if(this.hidden){ - this.el.endMeasure(); - } - } - } - }, - - /** - * Assigns this button's click handler - * @param {Function} handler The function to call when the button is clicked - * @param {Object} scope (optional) Scope for the function passed in - */ - setHandler : function(handler, scope){ - this.handler = handler; - this.scope = scope; - }, - - /** - * Sets this button's text - * @param {String} text The button text - */ - setText : function(text){ - this.text = text; - if(this.el){ - this.el.child("td.x-btn-center button.x-btn-text").update(text); - } - this.autoWidth(); - }, - - /** - * Gets the text for this button - * @return {String} The button text - */ - getText : function(){ - return this.text; - }, - - /** - * Show this button - */ - show: function(){ - this.hidden = false; - if(this.el){ - this[this.hideParent? 'parentEl' : 'el'].setStyle("display", ""); - } - }, - - /** - * Hide this button - */ - hide: function(){ - this.hidden = true; - if(this.el){ - this[this.hideParent? 'parentEl' : 'el'].setStyle("display", "none"); - } - }, - - /** - * Convenience function for boolean show/hide - * @param {Boolean} visible True to show, false to hide - */ - setVisible: function(visible){ - if(visible) { - this.show(); - }else{ - this.hide(); - } - }, - - /** - * If a state it passed, it becomes the pressed state otherwise the current state is toggled. - * @param {Boolean} state (optional) Force a particular state - */ - toggle : function(state){ - state = state === undefined ? !this.pressed : state; - if(state != this.pressed){ - if(state){ - this.el.addClass("x-btn-pressed"); - this.pressed = true; - this.fireEvent("toggle", this, true); - }else{ - this.el.removeClass("x-btn-pressed"); - this.pressed = false; - this.fireEvent("toggle", this, false); - } - if(this.toggleHandler){ - this.toggleHandler.call(this.scope || this, this, state); - } - } - }, - - /** - * Focus the button - */ - focus : function(){ - this.el.child('button:first').focus(); - }, - - /** - * Disable this button - */ - disable : function(){ - if(this.el){ - this.el.addClass("x-btn-disabled"); - } - this.disabled = true; - }, - - /** - * Enable this button - */ - enable : function(){ - if(this.el){ - this.el.removeClass("x-btn-disabled"); - } - this.disabled = false; - }, - - /** - * Convenience function for boolean enable/disable - * @param {Boolean} enabled True to enable, false to disable - */ - setDisabled : function(v){ - this[v !== true ? "enable" : "disable"](); - }, - - // private - onClick : function(e){ - if(e){ - e.preventDefault(); - } - if(!this.disabled){ - if(this.enableToggle){ - this.toggle(); - } - if(this.menu && !this.menu.isVisible()){ - this.menu.show(this.el, this.menuAlign); - } - this.fireEvent("click", this, e); - if(this.handler){ - this.el.removeClass("x-btn-over"); - this.handler.call(this.scope || this, this, e); - } - } - }, - // private - onMouseOver : function(e){ - if(!this.disabled){ - this.el.addClass("x-btn-over"); - this.fireEvent('mouseover', this, e); - } - }, - // private - onMouseOut : function(e){ - if(!e.within(this.el, true)){ - this.el.removeClass("x-btn-over"); - this.fireEvent('mouseout', this, e); - } - }, - // private - onFocus : function(e){ - if(!this.disabled){ - this.el.addClass("x-btn-focus"); - } - }, - // private - onBlur : function(e){ - this.el.removeClass("x-btn-focus"); - }, - // private - onMouseDown : function(){ - if(!this.disabled){ - this.el.addClass("x-btn-click"); - Ext.get(document).on('mouseup', this.onMouseUp, this); - } - }, - // private - onMouseUp : function(){ - this.el.removeClass("x-btn-click"); - Ext.get(document).un('mouseup', this.onMouseUp, this); - }, - // private - onMenuShow : function(e){ - this.el.addClass("x-btn-menu-active"); - }, - // private - onMenuHide : function(e){ - this.el.removeClass("x-btn-menu-active"); - } -}); - -// Private utility class used by Button -Ext.ButtonToggleMgr = function(){ - var groups = {}; - - function toggleGroup(btn, state){ - if(state){ - var g = groups[btn.toggleGroup]; - for(var i = 0, l = g.length; i < l; i++){ - if(g[i] != btn){ - g[i].toggle(false); - } - } - } - } - - return { - register : function(btn){ - if(!btn.toggleGroup){ - return; - } - var g = groups[btn.toggleGroup]; - if(!g){ - g = groups[btn.toggleGroup] = []; - } - g.push(btn); - btn.on("toggle", toggleGroup); - }, - - unregister : function(btn){ - if(!btn.toggleGroup){ - return; - } - var g = groups[btn.toggleGroup]; - if(g){ - g.remove(btn); - btn.un("toggle", toggleGroup); - } - } - }; -}(); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/ColorPalette.js b/www/extras/extjs/source/widgets/ColorPalette.js deleted file mode 100644 index 75ed0eece..000000000 --- a/www/extras/extjs/source/widgets/ColorPalette.js +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.ColorPalette - * @extends Ext.Component - * Simple color palette class for choosing colors. The palette can be rendered to any container.
        - * Here's an example of typical usage: - *
        
        -var cp = new Ext.ColorPalette({value:'993300'});  // initial selected color
        -cp.render('my-div');
        -
        -cp.on('select', function(palette, selColor){
        -    // do something with selColor
        -});
        -
        - * @constructor - * Create a new ColorPalette - * @param {Object} config The config object - */ -Ext.ColorPalette = function(config){ - Ext.ColorPalette.superclass.constructor.call(this, config); - this.addEvents({ - /** - * @event select - * Fires when a color is selected - * @param {ColorPalette} this - * @param {String} color The 6-digit color hex code (without the # symbol) - */ - select: true - }); - - if(this.handler){ - this.on("select", this.handler, this.scope, true); - } -}; -Ext.extend(Ext.ColorPalette, Ext.Component, { - /** - * @cfg {String} itemCls - * The CSS class to apply to the containing element (defaults to "x-color-palette") - */ - itemCls : "x-color-palette", - /** - * @cfg {String} value - * The initial color to highlight (should be a valid 6-digit color hex code without the # symbol). Note that - * the hex codes are case-sensitive. - */ - value : null, - - // private - ctype: "Ext.ColorPalette", - - /** - *

        An array of 6-digit color hex code strings (without the # symbol). This array can contain any number - * of colors, and each hex code should be unique. The width of the palette is controlled via CSS by adjusting - * the width property of the 'x-color-palette' class (or assigning a custom class), so you can balance the number - * of colors with the width setting until the box is symmetrical.

        - *

        You can override individual colors if needed:

        - *
        
        -var cp = new Ext.ColorPalette();
        -cp.colors[0] = "FF0000";  // change the first box to red
        -
        - -Or you can provide a custom array of your own for complete control: -
        
        -var cp = new Ext.ColorPalette();
        -cp.colors = ["000000", "993300", "333300"];
        -
        - * @type Array - */ - colors : [ - "000000", "993300", "333300", "003300", "003366", "000080", "333399", "333333", - "800000", "FF6600", "808000", "008000", "008080", "0000FF", "666699", "808080", - "FF0000", "FF9900", "99CC00", "339966", "33CCCC", "3366FF", "800080", "969696", - "FF00FF", "FFCC00", "FFFF00", "00FF00", "00FFFF", "00CCFF", "993366", "C0C0C0", - "FF99CC", "FFCC99", "FFFF99", "CCFFCC", "CCFFFF", "99CCFF", "CC99FF", "FFFFFF" - ], - - // private - onRender : function(container, position){ - var t = new Ext.MasterTemplate( - ' ' - ); - var c = this.colors; - for(var i = 0, len = c.length; i < len; i++){ - t.add([c[i]]); - } - var el = document.createElement("div"); - el.className = this.itemCls; - t.overwrite(el); - container.dom.insertBefore(el, position); - this.el = Ext.get(el); - this.el.on("click", this.handleClick, this, {delegate: "a"}); - }, - - // private - afterRender : function(){ - Ext.ColorPalette.superclass.afterRender.call(this); - if(this.value){ - var s = this.value; - this.value = null; - this.select(s); - } - }, - - // private - handleClick : function(e, t){ - e.preventDefault(); - if(!this.disabled){ - var c = t.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1]; - this.select(c.toUpperCase()); - } - }, - - /** - * Selects the specified color in the palette (fires the select event) - * @param {String} color A valid 6-digit color hex code (# will be stripped if included) - */ - select : function(color){ - color = color.replace("#", ""); - if(color != this.value){ - var el = this.el; - if(this.value){ - el.child("a.color-"+this.value).removeClass("x-color-palette-sel"); - } - el.child("a.color-"+color).addClass("x-color-palette-sel"); - this.value = color; - this.fireEvent("select", this, color); - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/Component.js b/www/extras/extjs/source/widgets/Component.js deleted file mode 100644 index 5026cfe65..000000000 --- a/www/extras/extjs/source/widgets/Component.js +++ /dev/null @@ -1,413 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.ComponentMgr - * Provides a common registry of all components on a page so that they can be easily accessed by component id. - * @singleton - */ -Ext.ComponentMgr = function(){ - var all = new Ext.util.MixedCollection(); - - return { - // private - register : function(c){ - all.add(c); - }, - - // private - unregister : function(c){ - all.remove(c); - }, - - /** - * Returns a component by id - * @param {String} id The component id - */ - get : function(id){ - return all.get(id); - }, - - /** - * Registers a function that will be called when a specified component is added to ComponentMgr - * @param {String} id The component id - * @param {Funtction} fn The callback function - * @param {Object} scope The scope of the callback - */ - onAvailable : function(id, fn, scope){ - all.on("add", function(index, o){ - if(o.id == id){ - fn.call(scope || o, o); - all.un("add", fn, scope); - } - }); - } - }; -}(); - -/** - * @class Ext.Component - * @extends Ext.util.Observable - * Base class for all Ext form controls that provides a common set of events and functionality shared by all components. - * @constructor - * @param {Ext.Element/String/Object} config The configuration options. If an element is passed, it is set as the internal - * element and its id used as the component id. If a string is passed, it is assumed to be the id of an existing element - * and is used as the component id. Otherwise, it is assumed to be a standard config object and is applied to the component. - */ -Ext.Component = function(config){ - config = config || {}; - if(config.tagName || config.dom || typeof config == "string"){ // element object - config = {el: config, id: config.id || config}; - } - this.initialConfig = config; - - Ext.apply(this, config); - this.addEvents({ - /** - * @event disable - * Fires after the component is disabled - * @param {Ext.Component} this - */ - disable : true, - /** - * @event enable - * Fires after the component is enabled - * @param {Ext.Component} this - */ - enable : true, - /** - * @event beforeshow - * Fires before the component is shown - * @param {Ext.Component} this - */ - beforeshow : true, - /** - * @event show - * Fires after the component is shown - * @param {Ext.Component} this - */ - show : true, - /** - * @event beforehide - * Fires before the component is hidden - * @param {Ext.Component} this - */ - beforehide : true, - /** - * @event hide - * Fires after the component is hidden - * @param {Ext.Component} this - */ - hide : true, - /** - * @event beforerender - * Fires before the component is rendered - * @param {Ext.Component} this - */ - beforerender : true, - /** - * @event render - * Fires after the component is rendered - * @param {Ext.Component} this - */ - render : true, - /** - * @event beforedestroy - * Fires before the component is destroyed - * @param {Ext.Component} this - */ - beforedestroy : true, - /** - * @event destroy - * Fires after the component is destroyed - * @param {Ext.Component} this - */ - destroy : true - }); - if(!this.id){ - this.id = "ext-comp-" + (++Ext.Component.AUTO_ID); - } - Ext.ComponentMgr.register(this); - Ext.Component.superclass.constructor.call(this); - this.initComponent(); -}; - -// private -Ext.Component.AUTO_ID = 1000; - -Ext.extend(Ext.Component, Ext.util.Observable, { - /** - * true if this component is hidden. Read-only. - */ - hidden : false, - /** - * true if this component is disabled. Read-only. - */ - disabled : false, - /** - * CSS class added to the component when it is disabled. - */ - disabledClass : "x-item-disabled", - /** - * true if this component has been rendered. Read-only. - */ - rendered : false, - - allowDomMove: true, - - // private - ctype : "Ext.Component", - - // private - actionMode : "el", - - // private - getActionEl : function(){ - return this[this.actionMode]; - }, - - initComponent : Ext.emptyFn, - /** - * If this is a lazy rendering component, render it to its container element - * @param {String/HTMLElement/Element} container (optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off. - */ - render : function(container, position){ - if(!this.rendered && this.fireEvent("beforerender", this) !== false){ - if(!container && this.el){ - this.el = Ext.get(this.el); - container = this.el.dom.parentNode; - this.allowDomMove = false; - } - this.container = Ext.get(container); - this.rendered = true; - if(position !== undefined){ - if(typeof position == 'number'){ - position = this.container.dom.childNodes[position]; - }else{ - position = Ext.getDom(position); - } - } - this.onRender(this.container, position || null); - if(this.cls){ - this.el.addClass(this.cls); - delete this.cls; - } - if(this.style){ - this.el.applyStyles(this.style); - delete this.style; - } - this.fireEvent("render", this); - this.afterRender(this.container); - if(this.hidden){ - this.hide(); - } - if(this.disabled){ - this.disable(); - } - } - return this; - }, - - // private - // default function is not really useful - onRender : function(ct, position){ - if(this.el){ - this.el = Ext.get(this.el); - if(this.allowDomMove !== false){ - ct.dom.insertBefore(this.el.dom, position); - } - } - }, - - // private - getAutoCreate : function(){ - var cfg = typeof this.autoCreate == "object" ? - this.autoCreate : Ext.apply({}, this.defaultAutoCreate); - if(this.id && !cfg.id){ - cfg.id = this.id; - } - return cfg; - }, - - // private - afterRender : Ext.emptyFn, - - // private - destroy : function(){ - if(this.fireEvent("beforedestroy", this) !== false){ - this.purgeListeners(); - this.beforeDestroy(); - if(this.rendered){ - this.el.removeAllListeners(); - this.el.remove(); - if(this.actionMode == "container"){ - this.container.remove(); - } - } - this.onDestroy(); - Ext.ComponentMgr.unregister(this); - this.fireEvent("destroy", this); - } - }, - - beforeDestroy : function(){ - - }, - - onDestroy : function(){ - - }, - - /** - * Returns the underlying {@link Ext.Element} - * @return {Ext.Element} The element - */ - getEl : function(){ - return this.el; - }, - - /** - * Returns the id of this component - * @return {String} - */ - getId : function(){ - return this.id; - }, - - /** - * Try to focus this component - * @param {Boolean} selectText True to also select the text in this component (if applicable) - */ - focus : function(selectText){ - if(this.rendered){ - this.el.focus(); - if(selectText === true){ - this.el.dom.select(); - } - } - return this; - }, - - // private - blur : function(){ - if(this.rendered){ - this.el.blur(); - } - return this; - }, - - /** - * Disable this component - */ - disable : function(){ - if(this.rendered){ - this.onDisable(); - } - this.disabled = true; - this.fireEvent("disable", this); - return this; - }, - - onDisable : function(){ - this.getActionEl().addClass(this.disabledClass); - this.el.dom.disabled = true; - }, - - /** - * Enable this component - */ - enable : function(){ - if(this.rendered){ - this.onEnable(); - } - this.disabled = false; - this.fireEvent("enable", this); - return this; - }, - - onEnable : function(){ - this.getActionEl().removeClass(this.disabledClass); - this.el.dom.disabled = false; - }, - - /** - * Convenience function for setting disabled/enabled by boolean - * @param {Boolean} disabled - */ - setDisabled : function(disabled){ - this[disabled ? "disable" : "enable"](); - }, - - /** - * Show this component - */ - show: function(){ - if(this.fireEvent("beforeshow", this) !== false){ - this.hidden = false; - if(this.rendered){ - this.onShow(); - } - this.fireEvent("show", this); - } - return this; - }, - - // private - onShow : function(){ - var st = this.getActionEl().dom.style; - st.display = ""; - st.visibility = "visible"; - }, - - /** - * Hide this component - */ - hide: function(){ - if(this.fireEvent("beforehide", this) !== false){ - this.hidden = true; - if(this.rendered){ - this.onHide(); - } - this.fireEvent("hide", this); - } - return this; - }, - - // private - onHide : function(){ - this.getActionEl().dom.style.display = "none"; - }, - - /** - * Convenience function to hide or show this component by boolean - * @param {Boolean} visible True to show, false to hide - */ - setVisible: function(visible){ - if(visible) { - this.show(); - }else{ - this.hide(); - } - return this; - }, - - /** - * Returns true if this component is visible - */ - isVisible : function(){ - return this.getActionEl().isVisible(); - }, - - cloneConfig : function(overrides){ - overrides = overrides || {}; - var id = overrides.id || Ext.id(); - var cfg = Ext.applyIf(overrides, this.initialConfig); - cfg.id = id; // prevent dup id - return new this.__extcls(cfg); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/DatePicker.js b/www/extras/extjs/source/widgets/DatePicker.js deleted file mode 100644 index 3b509a07c..000000000 --- a/www/extras/extjs/source/widgets/DatePicker.js +++ /dev/null @@ -1,487 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.DatePicker - * @extends Ext.Component - * Simple date picker class. - * @constructor - * Create a new DatePicker - * @param {Object} config The config object - */ -Ext.DatePicker = function(config){ - Ext.DatePicker.superclass.constructor.call(this, config); - - this.value = config && config.value ? - config.value.clearTime() : new Date().clearTime(); - - this.addEvents({ - /** - * @event select - * Fires when a date is selected - * @param {DatePicker} this - * @param {Date} date The selected date - */ - select: true - }); - - if(this.handler){ - this.on("select", this.handler, this.scope || this); - } - // build the disabledDatesRE - if(!this.disabledDatesRE && this.disabledDates){ - var dd = this.disabledDates; - var re = "(?:"; - for(var i = 0; i < dd.length; i++){ - re += dd[i]; - if(i != dd.length-1) re += "|"; - } - this.disabledDatesRE = new RegExp(re + ")"); - } -}; - -Ext.extend(Ext.DatePicker, Ext.Component, { - /** - * @cfg {String} todayText - * The text to display on the button that selects the current date (defaults to "Today") - */ - todayText : "Today", - /** - * @cfg {String} todayTip - * The tooltip to display for the button that selects the current date (defaults to "{current date} (Spacebar)") - */ - todayTip : "{0} (Spacebar)", - /** - * @cfg {Date} minDate - * Minimum allowable date (JavaScript date object, defaults to null) - */ - minDate : null, - /** - * @cfg {Date} maxDate - * Maximum allowable date (JavaScript date object, defaults to null) - */ - maxDate : null, - /** - * @cfg {String} minText - * The error text to display if the minDate validation fails (defaults to "This date is before the minimum date") - */ - minText : "This date is before the minimum date", - /** - * @cfg {String} maxText - * The error text to display if the maxDate validation fails (defaults to "This date is after the maximum date") - */ - maxText : "This date is after the maximum date", - /** - * @cfg {String} format - * The default date format string which can be overriden for localization support. The format must be - * valid according to {@link Date#parseDate} (defaults to 'm/d/y'). - */ - format : "m/d/y", - /** - * @cfg {Array} disabledDays - * An array of days to disable, 0-based. For example, [0, 6] disables Sunday and Saturday (defaults to null). - */ - disabledDays : null, - /** - * @cfg {String} disabledDaysText - * The tooltip to display when the date falls on a disabled day (defaults to "") - */ - disabledDaysText : "", - /** - * @cfg {RegExp} disabledDatesRE - * JavaScript regular expression used to disable a pattern of dates (defaults to null) - */ - disabledDatesRE : null, - /** - * @cfg {String} disabledDatesText - * The tooltip text to display when the date falls on a disabled date (defaults to "") - */ - disabledDatesText : "", - /** - * @cfg {Boolean} constrainToViewport - * True to constrain the date picker to the viewport (defaults to true) - */ - constrainToViewport : true, - /** - * @cfg {Array} monthNames - * An array of textual month names which can be overriden for localization support (defaults to Date.monthNames) - */ - monthNames : Date.monthNames, - /** - * @cfg {Array} dayNames - * An array of textual day names which can be overriden for localization support (defaults to Date.dayNames) - */ - dayNames : Date.dayNames, - /** - * @cfg {String} nextText - * The next month navigation button tooltip (defaults to 'Next Month (Control+Right)') - */ - nextText: 'Next Month (Control+Right)', - /** - * @cfg {String} prevText - * The previous month navigation button tooltip (defaults to 'Previous Month (Control+Left)') - */ - prevText: 'Previous Month (Control+Left)', - /** - * @cfg {String} monthYearText - * The header month selector tooltip (defaults to 'Choose a month (Control+Up/Down to move years)') - */ - monthYearText: 'Choose a month (Control+Up/Down to move years)', - /** - * @cfg {Number} startDay - * Day index at which the week should begin, 0-based (defaults to 0, which is Sunday) - */ - startDay : 0, - - /** - * Sets the value of the date field - * @param {Date} value The date to set - */ - setValue : function(value){ - var old = this.value; - this.value = value.clearTime(true); - if(this.el){ - this.update(this.value); - } - }, - - /** - * Gets the current selected value of the date field - * @return {Date} The selected date - */ - getValue : function(){ - return this.value; - }, - - // private - focus : function(){ - if(this.el){ - this.update(this.activeDate); - } - }, - - // private - onRender : function(container, position){ - var m = [ - '', - '', - '
          
        ']; - var dn = this.dayNames; - for(var i = 0; i < 7; i++){ - var d = this.startDay+i; - if(d > 6){ - d = d-7; - } - m.push(""); - } - m[m.length] = ""; - for(var i = 0; i < 42; i++) { - if(i % 7 == 0 && i != 0){ - m[m.length] = ""; - } - m[m.length] = ''; - } - m[m.length] = '
        ", dn[d].substr(0,1), "
        '; - - var el = document.createElement("div"); - el.className = "x-date-picker"; - el.innerHTML = m.join(""); - - container.dom.insertBefore(el, position); - - this.el = Ext.get(el); - new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"), {handler: this.showPrevMonth, scope: this}); - new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"), {handler: this.showNextMonth, scope: this}); - - this.el.on("mousewheel", this.handleMouseWheel, this); - - - var kn = new Ext.KeyNav(this.el, { - "left" : function(e){ - e.ctrlKey ? - this.showPrevMonth() : - this.update(this.activeDate.add("d", -1)); - }, - - "right" : function(e){ - e.ctrlKey ? - this.showNextMonth() : - this.update(this.activeDate.add("d", 1)); - }, - - "up" : function(e){ - e.ctrlKey ? - this.showNextYear() : - this.update(this.activeDate.add("d", -7)); - }, - - "down" : function(e){ - e.ctrlKey ? - this.showPrevYear() : - this.update(this.activeDate.add("d", 7)); - }, - - "pageUp" : function(e){ - this.showNextMonth(); - }, - - "pageDown" : function(e){ - this.showPrevMonth(); - }, - - "enter" : function(e){ - e.stopPropagation(); - return true; - }, - - scope : this - }); - - this.el.on("click", this.handleDateClick, this, {delegate: "a.x-date-date"}); - - this.el.addKeyListener(Ext.EventObject.SPACE, this.selectToday, this); - - this.el.unselectable(); - - this.cells = this.el.select("table.x-date-inner tbody td"); - this.textNodes = this.el.query("table.x-date-inner tbody span"); - - var mmenu = new Ext.menu.Menu({ - plain:true, - cls: "x-date-mmenu", - allowOtherMenus : true - }); - - var menuGroup = Ext.id()+"months"; - for(var i = 0; i < 12; i++){ - mmenu.add(new Ext.menu.CheckItem({ - id: "mm-"+i, - text: this.monthNames[i], - group:menuGroup, - month: i - })); - } - - mmenu.on({ - "beforeshow" : function(){ - mmenu.items.get("mm-"+(this.activeDate || this.value).getMonth()).setChecked(true); - }, - "itemclick" : function(item){ - var d = (this.activeDate || this.value).clone(); - d.setMonth(item.month); - this.update(d); - }, - "show" : function(m){ - this.visibleRegion = m.el.getRegion().adjust(2, 2, -2, -2); - }, - "mouseout" : function(m, e){ - if(!this.visibleRegion.contains(e.getPoint())){ - m.hide(); - } - }, - scope: this - }); - - this.mbtn = new Ext.Button(this.el.child("td.x-date-middle", true), { - menu: mmenu, - text: " ", - menuAlign: "c-c?", - tooltip: this.monthYearText - }); - - var today = (new Date()).dateFormat(this.format); - var todayBtn = new Ext.Button(this.el.child("td.x-date-bottom", true), { - text: String.format(this.todayText, today), - tooltip: String.format(this.todayTip, today), - handler: this.selectToday, - scope: this - }); - - if(Ext.isIE){ - this.el.repaint(); - } - this.update(this.value); - }, - - // private - showPrevMonth : function(e){ - this.update(this.activeDate.add("mo", -1)); - }, - - // private - showNextMonth : function(e){ - this.update(this.activeDate.add("mo", 1)); - }, - - // private - showPrevYear : function(){ - this.update(this.activeDate.add("y", -1)); - }, - - // private - showNextYear : function(){ - this.update(this.activeDate.add("y", 1)); - }, - - // private - handleMouseWheel : function(e){ - var delta = e.getWheelDelta(); - if(delta > 0){ - this.showPrevMonth(); - e.stopEvent(); - } else if(delta < 0){ - this.showNextMonth(); - e.stopEvent(); - } - }, - - // private - handleDateClick : function(e, t){ - e.stopEvent(); - if(t.dateValue && !Ext.fly(t.parentNode).hasClass("x-date-disabled")){ - this.setValue(new Date(t.dateValue)); - this.fireEvent("select", this, this.value); - } - }, - - // private - selectToday : function(){ - this.setValue(new Date().clearTime()); - this.fireEvent("select", this, this.value); - }, - - // private - update : function(date){ - var vd = this.activeDate; - this.activeDate = date; - - if(vd && this.el){ - var t = date.getTime(); - if(vd.getMonth() == date.getMonth() && vd.getFullYear() == date.getFullYear()){ - this.cells.removeClass("x-date-selected"); - this.cells.each(function(c){ - if(c.dom.firstChild.dateValue == t){ - c.addClass("x-date-selected"); - setTimeout(function(){ - try{c.dom.firstChild.focus();}catch(e){} - }, 50); - return false; - } - }); - return; - } - } - var days = date.getDaysInMonth(); - var firstOfMonth = date.getFirstDateOfMonth(); - var startingPos = firstOfMonth.getDay()-this.startDay; - - if(startingPos <= this.startDay){ - startingPos += 7; - } - - var pm = date.add("mo", -1); - var prevStart = pm.getDaysInMonth()-startingPos; - - var cells = this.cells.elements; - var textEls = this.textNodes; - days += startingPos; - - // convert everything to numbers so it's fast - var day = 86400000; - var d = (new Date(pm.getFullYear(), pm.getMonth(), prevStart)).clearTime(); - var today = new Date().clearTime().getTime(); - var sel = date.clearTime().getTime(); - var min = this.minDate ? this.minDate.clearTime() : Number.NEGATIVE_INFINITY; - var max = this.maxDate ? this.maxDate.clearTime() : Number.POSITIVE_INFINITY; - var ddMatch = this.disabledDatesRE; - var ddText = this.disabledDatesText; - var ddays = this.disabledDays ? this.disabledDays.join("") : false; - var ddaysText = this.disabledDaysText; - var format = this.format; - - var setCellClass = function(cal, cell){ - cell.title = ""; - var t = d.getTime(); - cell.firstChild.dateValue = t; - if(t == today){ - cell.className += " x-date-today"; - cell.title = cal.todayText; - } - if(t == sel){ - cell.className += " x-date-selected"; - setTimeout(function(){ - try{cell.firstChild.focus();}catch(e){} - }, 50); - } - // disabling - if(t < min) { - cell.className = " x-date-disabled"; - cell.title = cal.minText; - return; - } - if(t > max) { - cell.className = " x-date-disabled"; - cell.title = cal.maxText; - return; - } - if(ddays){ - if(ddays.indexOf(d.getDay()) != -1){ - cell.title = ddaysText; - cell.className = " x-date-disabled"; - } - } - if(ddMatch && format){ - var fvalue = d.dateFormat(format); - if(ddMatch.test(fvalue)){ - cell.title = ddText.replace("%0", fvalue); - cell.className = " x-date-disabled"; - } - } - }; - - var i = 0; - for(; i < startingPos; i++) { - textEls[i].innerHTML = (++prevStart); - d.setDate(d.getDate()+1); - cells[i].className = "x-date-prevday"; - setCellClass(this, cells[i]); - } - for(; i < days; i++){ - intDay = i - startingPos + 1; - textEls[i].innerHTML = (intDay); - d.setDate(d.getDate()+1); - cells[i].className = "x-date-active"; - setCellClass(this, cells[i]); - } - var extraDays = 0; - for(; i < 42; i++) { - textEls[i].innerHTML = (++extraDays); - d.setDate(d.getDate()+1); - cells[i].className = "x-date-nextday"; - setCellClass(this, cells[i]); - } - - this.mbtn.setText(this.monthNames[date.getMonth()] + " " + date.getFullYear()); - - if(!this.internalRender){ - var main = this.el.dom.firstChild; - var w = main.offsetWidth; - this.el.setWidth(w + this.el.getBorderWidth("lr")); - Ext.fly(main).setWidth(w); - this.internalRender = true; - // opera does not respect the auto grow header center column - // then, after it gets a width opera refuses to recalculate - // without a second pass - if(Ext.isOpera && !this.secondPass){ - main.rows[0].cells[1].style.width = (w - (main.rows[0].cells[0].offsetWidth+main.rows[0].cells[2].offsetWidth)) + "px"; - this.secondPass = true; - this.update.defer(10, this, [date]); - } - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/Editor.js b/www/extras/extjs/source/widgets/Editor.js deleted file mode 100644 index b698c9613..000000000 --- a/www/extras/extjs/source/widgets/Editor.js +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.Editor - * @extends Ext.Component - * A base editor field that handles displaying/hiding on demand and has some built-in sizing and event handling logic. - * @constructor - * Create a new Editor - * @param {Object} config The config object - */ -Ext.Editor = function(field, config){ - Ext.Editor.superclass.constructor.call(this, config); - this.field = field; - this.addEvents({ - /** - * @event beforestartedit - * Fires when editing is initiated, but before the value changes. Editing can be canceled by returning - * false from the handler of this event. - * @param {Editor} this - * @param {Ext.Element} boundEl The underlying element bound to this editor - * @param {Mixed} value The field value being set - */ - "beforestartedit" : true, - /** - * @event startedit - * Fires when this editor is displayed - * @param {Ext.Element} boundEl The underlying element bound to this editor - * @param {Mixed} value The starting field value - */ - "startedit" : true, - /** - * @event beforecomplete - * Fires after a change has been made to the field, but before the change is reflected in the underlying - * field. Saving the change to the field can be canceled by returning false from the handler of this event. - * Note that if the value has not changed and ignoreNoChange = true, the editing will still end but this - * event will not fire since no edit actually occurred. - * @param {Editor} this - * @param {Mixed} value The current field value - * @param {Mixed} startValue The original field value - */ - "beforecomplete" : true, - /** - * @event complete - * Fires after editing is complete and any changed value has been written to the underlying field. - * @param {Editor} this - * @param {Mixed} value The current field value - * @param {Mixed} startValue The original field value - */ - "complete" : true, - /** - * @event specialkey - * Fires when special key is pressed - */ - "specialkey" : true - }); -}; - -Ext.extend(Ext.Editor, Ext.Component, { - /** - * @cfg {Boolean/String} autosize - * True for the editor to automatically adopt the size of the underlying field, "width" to adopt the width only, - * or "height" to adopt the height only (defaults to false) - */ - /** - * @cfg {Boolean} revertInvalid - * True to automatically revert the field value and cancel the edit when the user completes an edit and the field - * validation fails (defaults to true) - */ - /** - * @cfg {Boolean} ignoreNoChange - * True to skip the the edit completion process (no save, no events fired) if the user completes an edit and - * the value has not changed (defaults to false). Applies only to string values - edits for other data types - * will never be ignored. - */ - /** - * @cfg {Mixed} value - * The data value of the underlying field (defaults to "") - */ - value : "", - /** - * @cfg {String} alignment - * The position to align to (see {@link Ext.Element#alignTo} for more details, defaults to "c-c?"). - */ - alignment: "c-c?", - /** - * @cfg {Boolean/String} shadow "sides" for sides/bottom only, "frame" for 4-way shadow, and "drop" - * for bottom-right shadow (defaults to "frame") - */ - shadow : "frame", - - // private - updateEl : false, - - // private - onRender : function(ct, position){ - this.el = new Ext.Layer({ - shadow: this.shadow, - cls: "x-editor", - parentEl : ct, - shim : this.shim, - shadowOffset:3, - id: this.id - }); - this.el.setStyle("overflow", Ext.isGecko ? "auto" : "hidden"); - this.field.render(this.el); - if(Ext.isGecko){ - this.field.el.dom.setAttribute('autocomplete', 'off'); - } - this.field.show(); - this.field.on("blur", this.onBlur, this); - this.relayEvents(this.field, ["specialkey"]); - if(this.field.grow){ - this.field.on("autosize", this.el.sync, this.el, {delay:1}); - } - }, - - // private - startEdit : function(el, value){ - if(this.editing){ - this.completeEdit(); - } - this.boundEl = Ext.get(el); - var v = value !== undefined ? value : this.boundEl.dom.innerHTML; - if(!this.rendered){ - this.render(this.parentEl || document.body); - } - if(this.fireEvent("beforestartedit", this, this.boundEl, v) === false){ - return; - } - this.startValue = v; - this.field.setValue(v); - if(this.autoSize){ - var sz = this.boundEl.getSize(); - switch(this.autoSize){ - case "width": - this.setSize(sz.width, ""); - break; - case "height": - this.setSize("", sz.height); - break; - default: - this.setSize(sz.width, sz.height); - } - } - this.el.alignTo(this.boundEl, this.alignment); - this.editing = true; - if(Ext.QuickTips){ - Ext.QuickTips.disable(); - } - this.show(); - }, - - /** - * Sets the height and width of this editor - * @param {Number} width The new width - * @param {Number} height The new height - */ - setSize : function(w, h){ - this.field.setSize(w, h); - if(this.el){ - this.el.sync(); - } - }, - - /** - * Realigns the editor to the bound field based on the current alignment config value. - */ - realign : function(){ - this.el.alignTo(this.boundEl, this.alignment); - }, - - /** - * Ends the editing process, persist the changed value to the underlying field and hides the editor. - * @param {Boolean} remainVisible Override the default behavior and keep the editor visible after edit (defaults to false) - */ - completeEdit : function(remainVisible){ - if(!this.editing){ - return; - } - var v = this.getValue(); - if(this.revertInvalid !== false && !this.field.isValid()){ - v = this.startValue; - this.cancelEdit(true); - } - if(String(v) == String(this.startValue) && this.ignoreNoChange){ - this.editing = false; - this.hide(); - return; - } - if(this.fireEvent("beforecomplete", this, v, this.startValue) !== false){ - this.editing = false; - if(this.updateEl && this.boundEl){ - this.boundEl.update(v); - } - if(remainVisible !== true){ - this.hide(); - } - this.fireEvent("complete", this, v, this.startValue); - } - }, - - // private - onShow : function(){ - this.el.show(); - if(this.hideEl !== false){ - this.boundEl.hide(); - } - this.field.show(); - this.field.focus(); - this.fireEvent("startedit", this.boundEl, this.startValue); - }, - - /** - * Cancels the editing process and hides the editor without persisting any changes. The field value will be - * reverted to the original starting value. - * @param {Boolean} remainVisible Override the default behavior and keep the editor visible after - * cancel (defaults to false) - */ - cancelEdit : function(remainVisible){ - if(this.editing){ - this.setValue(this.startValue); - if(remainVisible !== true){ - this.hide(); - } - } - }, - - // private - onBlur : function(){ - if(this.allowBlur !== true && this.editing){ - this.completeEdit(); - } - }, - - // private - onHide : function(){ - if(this.editing){ - this.completeEdit(); - return; - } - this.field.blur(); - if(this.field.collapse){ - this.field.collapse(); - } - this.el.hide(); - if(this.hideEl !== false){ - this.boundEl.show(); - } - if(Ext.QuickTips){ - Ext.QuickTips.enable(); - } - }, - - /** - * Sets the data value of the editor - * @param {Mixed} value Any valid value supported by the underlying field - */ - setValue : function(v){ - this.field.setValue(v); - }, - - /** - * Gets the data value of the editor - * @return {Mixed} value The data value - */ - getValue : function(){ - return this.field.getValue(); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/JsonView.js b/www/extras/extjs/source/widgets/JsonView.js deleted file mode 100644 index 3442c0d97..000000000 --- a/www/extras/extjs/source/widgets/JsonView.js +++ /dev/null @@ -1,300 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.JsonView - * @extends Ext.View - * Shortcut class to create a JSON + UpdateManager template view. Usage: -
        
        - var view = new Ext.JsonView("my-element",
        - '<div id="{id}">{foo} - {bar}</div>', // auto create template
        - { multiSelect: true, jsonRoot: "data" });
        -
        - // listen for node click?
        - view.on("click", function(vw, index, node, e){
        - alert('Node "' + node.id + '" at index: ' + index + " was clicked.");
        - });
        -
        - // direct load of JSON data
        - view.load("foobar.php");
        -
        -
        - // Example from my blog list
        - var tpl = new Ext.Template(
        - '<div class="entry">' +
        - '<a class="entry-title" href="{link}">{title}</a>' +
        - "<h4>{date} by {author} | {comments} Comments</h4>{description}" +
        - "</div><hr />"
        - );
        -
        - var moreView = new Ext.JsonView("entry-list", tpl, {
        - jsonRoot: "posts"
        - });
        - moreView.on("beforerender", this.sortEntries, this);
        - moreView.load({
        - url:"/blog/get-posts.php",
        - params: "allposts=true",
        - text:"Loading Blog Entries..."
        - });
        - 
        - * @constructor - * Create a new JsonView - * @param {String/HTMLElement/Element} container The container element where the view is to be rendered. - * @param {Template} tpl The rendering template - * @param {Object} config The config object - */ -Ext.JsonView = function(container, tpl, config){ - Ext.JsonView.superclass.constructor.call(this, container, tpl, config); - - var um = this.el.getUpdateManager(); - um.setRenderer(this); - um.on("update", this.onLoad, this); - um.on("failure", this.onLoadException, this); - - /** - * @event beforerender - * Fires before rendering of the downloaded json data. - * @param {Ext.View} this - * @param {Object} data The json data loaded - */ - /** - * @event load - * Fires when data is loaded. - * @param {Ext.View} this - * @param {Object} data The json data loaded - * @param {Object} response The raw Connect response object - */ - /** - * @event loadexception - * Fires when loading fails. - * @param {Ext.View} this - * @param {Object} response The raw Connect response object - */ - this.addEvents({ - 'beforerender' : true, - 'load' : true, - 'loadexception' : true - }); -}; -Ext.extend(Ext.JsonView, Ext.View, { - /** - * The root property in the loaded json object that contains the data - * @type {String} - */ - jsonRoot : "", - - /** - * Refreshes the view. - */ - refresh : function(){ - this.clearSelections(); - this.el.update(""); - var html = []; - var o = this.jsonData; - if(o && o.length > 0){ - for(var i = 0, len = o.length; i < len; i++){ - var data = this.prepareData(o[i], i, o); - html[html.length] = this.tpl.apply(data); - } - }else{ - html.push(this.emptyText); - } - this.el.update(html.join("")); - this.nodes = this.el.dom.childNodes; - this.updateIndexes(0); - }, - - /** - * Performs an async request, loading the JSON from the response. If params are specified it uses POST, otherwise it uses GET. - * @param {Object/String/Function} url The url for this request or a function to call to get the url or a config object containing any of the following options: -
        
        -     view.load({
        -     url: "your-url.php",
        - params: {param1: "foo", param2: "bar"}, // or a URL encoded string
        - callback: yourFunction,
        - scope: yourObject, //(optional scope)
        - discardUrl: false,
        - nocache: false,
        - text: "Loading...",
        - timeout: 30,
        - scripts: false
        - }); -
        - * The only required property is url. The optional properties nocache, text and scripts - * are shorthand for disableCaching, indicatorText and loadScripts and are used to set their associated property on this UpdateManager instance. - * @param {String/Object} params (optional) The parameters to pass as either a url encoded string "param1=1&param2=2" or an object {param1: 1, param2: 2} - * @param {Function} callback (optional) Callback when transaction is complete - called with signature (oElement, bSuccess) - * @param {Boolean} discardUrl (optional) By default when you execute an update the defaultUrl is changed to the last used url. If true, it will not store the url. - */ - load : function(){ - var um = this.el.getUpdateManager(); - um.update.apply(um, arguments); - }, - - render : function(el, response){ - this.clearSelections(); - this.el.update(""); - var o; - try{ - o = Ext.util.JSON.decode(response.responseText); - if(this.jsonRoot){ - o = eval("o." + this.jsonRoot); - } - } catch(e){ - } - /** - * The current json data or null - */ - this.jsonData = o; - this.beforeRender(); - this.refresh(); - }, - -/** - * Get the number of records in the current JSON dataset - * @return {Number} - */ - getCount : function(){ - return this.jsonData ? this.jsonData.length : 0; - }, - -/** - * Returns the JSON object for the specified node(s) - * @param {HTMLElement/Array} node The node or an array of nodes - * @return {Object/Array} If you pass in an array, you get an array back, otherwise - * you get the JSON object for the node - */ - getNodeData : function(node){ - if(node instanceof Array){ - var data = []; - for(var i = 0, len = node.length; i < len; i++){ - data.push(this.getNodeData(node[i])); - } - return data; - } - return this.jsonData[this.indexOf(node)] || null; - }, - - beforeRender : function(){ - this.snapshot = this.jsonData; - if(this.sortInfo){ - this.sort.apply(this, this.sortInfo); - } - this.fireEvent("beforerender", this, this.jsonData); - }, - - onLoad : function(el, o){ - this.fireEvent("load", this, this.jsonData, o); - }, - - onLoadException : function(el, o){ - this.fireEvent("loadexception", this, o); - }, - -/** - * Filter the data by a specific property. - * @param {String} property A property on your JSON objects - * @param {String/RegExp} value Either string that the property values - * should start with or a RegExp to test against the property - */ - filter : function(property, value){ - if(this.jsonData){ - var data = []; - var ss = this.snapshot; - if(typeof value == "string"){ - var vlen = value.length; - if(vlen == 0){ - this.clearFilter(); - return; - } - value = value.toLowerCase(); - for(var i = 0, len = ss.length; i < len; i++){ - var o = ss[i]; - if(o[property].substr(0, vlen).toLowerCase() == value){ - data.push(o); - } - } - } else if(value.exec){ // regex? - for(var i = 0, len = ss.length; i < len; i++){ - var o = ss[i]; - if(value.test(o[property])){ - data.push(o); - } - } - } else{ - return; - } - this.jsonData = data; - this.refresh(); - } - }, - -/** - * Filter by a function. The passed function will be called with each - * object in the current dataset. If the function returns true, the value is kept - * otherwise it is filtered. - * @param {Function} fn - * @param {Object} scope (optional) The scope of the function (defaults to this JsonView) - */ - filterBy : function(fn, scope){ - if(this.jsonData){ - var data = []; - var ss = this.snapshot; - for(var i = 0, len = ss.length; i < len; i++){ - var o = ss[i]; - if(fn.call(scope || this, o)){ - data.push(o); - } - } - this.jsonData = data; - this.refresh(); - } - }, - -/** - * Clears the current filter. - */ - clearFilter : function(){ - if(this.snapshot && this.jsonData != this.snapshot){ - this.jsonData = this.snapshot; - this.refresh(); - } - }, - - -/** - * Sorts the data for this view and refreshes it. - * @param {String} property A property on your JSON objects to sort on - * @param {String} direction (optional) desc or asc (defaults to asc) - * @param {Function} sortType (optional) A function to call to convert the data to a sortable value. - */ - sort : function(property, dir, sortType){ - this.sortInfo = Array.prototype.slice.call(arguments, 0); - if(this.jsonData){ - var p = property; - var dsc = dir && dir.toLowerCase() == "desc"; - var f = function(o1, o2){ - var v1 = sortType ? sortType(o1[p]) : o1[p]; - var v2 = sortType ? sortType(o2[p]) : o2[p]; - ; - if(v1 < v2){ - return dsc ? +1 : -1; - } else if(v1 > v2){ - return dsc ? -1 : +1; - } else{ - return 0; - } - }; - this.jsonData.sort(f); - this.refresh(); - if(this.jsonData != this.snapshot){ - this.snapshot.sort(f); - } - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/Layer.js b/www/extras/extjs/source/widgets/Layer.js deleted file mode 100644 index b139a3caa..000000000 --- a/www/extras/extjs/source/widgets/Layer.js +++ /dev/null @@ -1,455 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.Layer - * @extends Ext.Element - * An extended Element object that supports a shadow and shim, constrain to viewport and - * automatic maintaining of shadow/shim positions. - * @cfg {Boolean} shim False to disable the iframe shim in browsers which need one (defaults to true) - * @cfg {String/Boolean} shadow True to create a shadow element with default class "x-layer-shadow" or - * you can pass a string with a css class name. False turns off the shadow. - * @cfg {Object} dh DomHelper object config to create element with (defaults to {tag: "div", cls: "x-layer"}). - * @cfg {Boolean} constrain False to disable constrain to viewport (defaults to true) - * @cfg {String} cls CSS class to add to the element - * @cfg {Number} zindex Starting z-index (defaults to 11000!) - * @cfg {Number} shadowOffset Number of pixels to offset the shadow (defaults to 3) - * @constructor - * @param {Object} config - * @param {String/HTMLElement} existingEl (optional) Uses an existing dom element. If the element is not found it creates it. - */ -(function(){ -Ext.Layer = function(config, existingEl){ - config = config || {}; - var dh = Ext.DomHelper; - var cp = config.parentEl, pel = cp ? Ext.getDom(cp) : document.body; - if(existingEl){ - this.dom = Ext.getDom(existingEl); - } - if(!this.dom){ - var o = config.dh || {tag: "div", cls: "x-layer"}; - this.dom = dh.append(pel, o); - } - if(config.cls){ - this.addClass(config.cls); - } - this.constrain = config.constrain !== false; - this.visibilityMode = Ext.Element.VISIBILITY; - if(config.id){ - this.id = this.dom.id = config.id; - }else{ - this.id = Ext.id(this.dom); - } - this.zindex = config.zindex || this.getZIndex(); - this.position("absolute", this.zindex); - if(config.shadow){ - this.shadowOffset = config.shadowOffset || 4; - this.shadow = new Ext.Shadow({ - offset : this.shadowOffset, - mode : config.shadow - }); - }else{ - this.shadowOffset = 0; - } - this.useShim = config.shim !== false && Ext.useShims; - this.useDisplay = config.useDisplay; - this.hide(); -}; - -var supr = Ext.Element.prototype; - -// shims are shared among layer to keep from having 100 iframes -var shims = []; - -Ext.extend(Ext.Layer, Ext.Element, { - - getZIndex : function(){ - return this.zindex || parseInt(this.getStyle("z-index"), 10) || 11000; - }, - - getShim : function(){ - if(!this.useShim){ - return null; - } - if(this.shim){ - return this.shim; - } - var shim = shims.shift(); - if(!shim){ - shim = this.createShim(); - shim.enableDisplayMode('block'); - shim.dom.style.display = 'none'; - shim.dom.style.visibility = 'visible'; - } - var pn = this.dom.parentNode; - if(shim.dom.parentNode != pn){ - pn.insertBefore(shim.dom, this.dom); - } - shim.setStyle('z-index', this.getZIndex()-2); - this.shim = shim; - return shim; - }, - - hideShim : function(){ - if(this.shim){ - this.shim.setDisplayed(false); - shims.push(this.shim); - delete this.shim; - } - }, - - disableShadow : function(){ - if(this.shadow){ - this.shadowDisabled = true; - this.shadow.hide(); - this.lastShadowOffset = this.shadowOffset; - this.shadowOffset = 0; - } - }, - - enableShadow : function(show){ - if(this.shadow){ - this.shadowDisabled = false; - this.shadowOffset = this.lastShadowOffset; - delete this.lastShadowOffset; - if(show){ - this.sync(true); - } - } - }, - - // private - // this code can execute repeatedly in milliseconds (i.e. during a drag) so - // code size was sacrificed for effeciency (e.g. no getBox/setBox, no XY calls) - sync : function(doShow){ - var sw = this.shadow; - if(!this.updating && this.isVisible() && (sw || this.useShim)){ - var sh = this.getShim(); - - var w = this.getWidth(), - h = this.getHeight(); - - var l = this.getLeft(true), - t = this.getTop(true); - - if(sw && !this.shadowDisabled){ - if(doShow && !sw.isVisible()){ - sw.show(this); - }else{ - sw.realign(l, t, w, h); - } - if(sh){ - if(doShow){ - sh.show(); - } - // fit the shim behind the shadow, so it is shimmed too - var a = sw.adjusts, s = sh.dom.style; - s.left = (Math.min(l, l+a.l))+"px"; - s.top = (Math.min(t, t+a.t))+"px"; - s.width = (w+a.w)+"px"; - s.height = (h+a.h)+"px"; - } - }else if(sh){ - if(doShow){ - sh.show(); - } - sh.setSize(w, h); - sh.setLeftTop(l, t); - } - - } - }, - - // private - destroy : function(){ - this.hideShim(); - if(this.shadow){ - this.shadow.hide(); - } - this.removeAllListeners(); - var pn = this.dom.parentNode; - if(pn){ - pn.removeChild(this.dom); - } - Ext.Element.uncache(this.id); - }, - - remove : function(){ - this.destroy(); - }, - - // private - beginUpdate : function(){ - this.updating = true; - }, - - // private - endUpdate : function(){ - this.updating = false; - this.sync(true); - }, - - // private - hideUnders : function(negOffset){ - if(this.shadow){ - this.shadow.hide(); - } - this.hideShim(); - }, - - // private - constrainXY : function(){ - if(this.constrain){ - var vw = Ext.lib.Dom.getViewWidth(), - vh = Ext.lib.Dom.getViewHeight(); - var s = Ext.get(document).getScroll(); - - var xy = this.getXY(); - var x = xy[0], y = xy[1]; - var w = this.dom.offsetWidth+this.shadowOffset, h = this.dom.offsetHeight+this.shadowOffset; - // only move it if it needs it - var moved = false; - // first validate right/bottom - if((x + w) > vw+s.left){ - x = vw - w - this.shadowOffset; - moved = true; - } - if((y + h) > vh+s.top){ - y = vh - h - this.shadowOffset; - moved = true; - } - // then make sure top/left isn't negative - if(x < s.left){ - x = s.left; - moved = true; - } - if(y < s.top){ - y = s.top; - moved = true; - } - if(moved){ - if(this.avoidY){ - var ay = this.avoidY; - if(y <= ay && (y+h) >= ay){ - y = ay-h-5; - } - } - xy = [x, y]; - this.storeXY(xy); - supr.setXY.call(this, xy); - this.sync(); - } - } - }, - - isVisible : function(){ - return this.visible; - }, - - // private - showAction : function(){ - this.visible = true; // track visibility to prevent getStyle calls - if(this.useDisplay === true){ - this.setDisplayed(""); - }else if(this.lastXY){ - supr.setXY.call(this, this.lastXY); - }else if(this.lastLT){ - supr.setLeftTop.call(this, this.lastLT[0], this.lastLT[1]); - } - }, - - // private - hideAction : function(){ - this.visible = false; - if(this.useDisplay === true){ - this.setDisplayed(false); - }else{ - this.setLeftTop(-10000,-10000); - } - }, - - // overridden Element method - setVisible : function(v, a, d, c, e){ - if(v){ - this.showAction(); - } - if(a && v){ - var cb = function(){ - this.sync(true); - if(c){ - c(); - } - }.createDelegate(this); - supr.setVisible.call(this, true, true, d, cb, e); - }else{ - if(!v){ - this.hideUnders(true); - } - var cb = c; - if(a){ - cb = function(){ - this.hideAction(); - if(c){ - c(); - } - }.createDelegate(this); - } - supr.setVisible.call(this, v, a, d, cb, e); - if(v){ - this.sync(true); - }else if(!a){ - this.hideAction(); - } - } - }, - - storeXY : function(xy){ - delete this.lastLT; - this.lastXY = xy; - }, - - storeLeftTop : function(left, top){ - delete this.lastXY; - this.lastLT = [left, top]; - }, - - // private - beforeFx : function(){ - this.beforeAction(); - return Ext.Layer.superclass.beforeFx.apply(this, arguments); - }, - - // private - afterFx : function(){ - Ext.Layer.superclass.afterFx.apply(this, arguments); - this.sync(this.isVisible()); - }, - - // private - beforeAction : function(){ - if(!this.updating && this.shadow){ - this.shadow.hide(); - } - }, - - // overridden Element method - setLeft : function(left){ - this.storeLeftTop(left, this.getTop(true)); - supr.setLeft.apply(this, arguments); - this.sync(); - }, - - setTop : function(top){ - this.storeLeftTop(this.getLeft(true), top); - supr.setTop.apply(this, arguments); - this.sync(); - }, - - setLeftTop : function(left, top){ - this.storeLeftTop(left, top); - supr.setLeftTop.apply(this, arguments); - this.sync(); - }, - - setXY : function(xy, a, d, c, e){ - this.fixDisplay(); - this.beforeAction(); - this.storeXY(xy); - var cb = this.createCB(c); - supr.setXY.call(this, xy, a, d, cb, e); - if(!a){ - cb(); - } - }, - - // private - createCB : function(c){ - var el = this; - return function(){ - el.constrainXY(); - el.sync(true); - if(c){ - c(); - } - }; - }, - - // overridden Element method - setX : function(x, a, d, c, e){ - this.setXY([x, this.getY()], a, d, c, e); - }, - - // overridden Element method - setY : function(y, a, d, c, e){ - this.setXY([this.getX(), y], a, d, c, e); - }, - - // overridden Element method - setSize : function(w, h, a, d, c, e){ - this.beforeAction(); - var cb = this.createCB(c); - supr.setSize.call(this, w, h, a, d, cb, e); - if(!a){ - cb(); - } - }, - - // overridden Element method - setWidth : function(w, a, d, c, e){ - this.beforeAction(); - var cb = this.createCB(c); - supr.setWidth.call(this, w, a, d, cb, e); - if(!a){ - cb(); - } - }, - - // overridden Element method - setHeight : function(h, a, d, c, e){ - this.beforeAction(); - var cb = this.createCB(c); - supr.setHeight.call(this, h, a, d, cb, e); - if(!a){ - cb(); - } - }, - - // overridden Element method - setBounds : function(x, y, w, h, a, d, c, e){ - this.beforeAction(); - var cb = this.createCB(c); - if(!a){ - this.storeXY([x, y]); - supr.setXY.call(this, [x, y]); - supr.setSize.call(this, w, h, a, d, cb, e); - cb(); - }else{ - supr.setBounds.call(this, x, y, w, h, a, d, cb, e); - } - return this; - }, - - /** - * Set the z-index of this layer and adjusts any shadow and shim z-indexes. The layer z-index is automatically - * incremented by two more than the value passed in so that it always shows above any shadow or shim (the shadow - * element, if any, will be assigned z-index + 1, and the shim element, if any, will be assigned the unmodified z-index). - * @param {Number} zindex The new z-index to set - * @return {this} The Layer - */ - setZIndex : function(zindex){ - this.zindex = zindex; - this.setStyle("z-index", zindex + 2); - if(this.shadow){ - this.shadow.setZIndex(zindex + 1); - } - if(this.shim){ - this.shim.setStyle("z-index", zindex); - } - } -}); -})(); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/LoadMask.js b/www/extras/extjs/source/widgets/LoadMask.js deleted file mode 100644 index c2f8b0d15..000000000 --- a/www/extras/extjs/source/widgets/LoadMask.js +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.LoadMask - * A simple utility class for generically masking elements while loading data. If the element being masked has - * an underlying {@link Ext.data.Store}, the masking will be automatically synchronized with the store's loading - * process and the mask element will be cached for reuse. For all other elements, this mask will replace the - * element's UpdateManager load indicator and will be destroyed after the initial load. - * @constructor - * Create a new LoadMask - * @param {Object} config The config object - */ -Ext.LoadMask = function(el, config){ - this.el = Ext.get(el); - Ext.apply(this, config); - if(this.store){ - this.store.on('beforeload', this.onBeforeLoad, this); - this.store.on('load', this.onLoad, this); - this.store.on('loadexception', this.onLoad, this); - this.removeMask = false; - }else{ - var um = this.el.getUpdateManager(); - um.showLoadIndicator = false; // disable the default indicator - um.on('beforeupdate', this.onBeforeLoad, this); - um.on('update', this.onLoad, this); - um.on('failure', this.onLoad, this); - this.removeMask = true; - } -}; - -Ext.LoadMask.prototype = { - /** - * @cfg {Boolean} removeMask - * True to create a single-use mask that is automatically destroyed after loading (useful for page loads), - * False to persist the mask element reference for multiple uses (e.g., for paged data widgets). Defaults to false. - */ - /** - * @cfg {String} msg - * The text to display in a centered loading message box (defaults to 'Loading...') - */ - msg : 'Loading...', - /** - * @cfg {String} msgCls - * The CSS class to apply to the loading message element (defaults to "x-mask-loading") - */ - msgCls : 'x-mask-loading', - - /** - * Read-only. True if the mask is currently disabled so that it will not be displayed (defaults to false) - * @type Boolean - */ - disabled: false, - - /** - * Disables the mask to prevent it from being displayed - */ - disable : function(){ - this.disabled = true; - }, - - /** - * Enables the mask so that it can be displayed - */ - enable : function(){ - this.disabled = false; - }, - - // private - onLoad : function(){ - this.el.unmask(this.removeMask); - }, - - // private - onBeforeLoad : function(){ - if(!this.disabled){ - this.el.mask(this.msg, this.msgCls); - } - }, - - // private - destroy : function(){ - if(this.store){ - this.store.un('beforeload', this.onBeforeLoad, this); - this.store.un('load', this.onLoad, this); - this.store.un('loadexception', this.onLoad, this); - }else{ - var um = this.el.getUpdateManager(); - um.un('beforeupdate', this.onBeforeLoad, this); - um.un('update', this.onLoad, this); - um.un('failure', this.onLoad, this); - } - } -}; \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/MenuButton.js b/www/extras/extjs/source/widgets/MenuButton.js deleted file mode 100644 index 4f3f60389..000000000 --- a/www/extras/extjs/source/widgets/MenuButton.js +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.MenuButton - * @extends Ext.Button - * A split button that provides a built-in dropdown arrow that can fire an event separately from the default - * click event of the button. Typically this would be used to display a dropdown menu that provides additional - * options to the primary button action, but any custom handler can provide the arrowclick implementation. - * @cfg {Function} arrowHandler A function called when the arrow button is clicked (can be used instead of click event) - * @cfg {String} arrowTooltip The title attribute of the arrow - * @constructor - * Create a new menu button - * @param {String/HTMLElement/Element} renderTo The element to append the button to - * @param {Object} config The config object - */ -Ext.MenuButton = function(renderTo, config){ - Ext.MenuButton.superclass.constructor.call(this, renderTo, config); - /** - * @event arrowclick - * Fires when this button's arrow is clicked - * @param {MenuButton} this - * @param {EventObject} e The click event - */ - this.addEvents({"arrowclick":true}); -}; - -Ext.extend(Ext.MenuButton, Ext.Button, { - render : function(renderTo){ - // this is one sweet looking template! - var tpl = new Ext.Template( - '
        ', - '', - '', - "
         
        ", - '', - '', - "
         
        " - ); - var btn = tpl.append(renderTo, [this.text], true); - if(this.cls){ - btn.addClass(this.cls); - } - if(this.icon){ - btn.child("button").setStyle('background-image', 'url(' +this.icon +')'); - } - this.el = btn; - this.autoWidth(); - if(this.handleMouseEvents){ - btn.on("mouseover", this.onMouseOver, this); - btn.on("mouseout", this.onMouseOut, this); - btn.on("mousedown", this.onMouseDown, this); - btn.on("mouseup", this.onMouseUp, this); - } - btn.on(this.clickEvent, this.onClick, this); - if(this.tooltip){ - var btnEl = btn.child("button:first"); - if(typeof this.tooltip == 'object'){ - Ext.QuickTips.tips(Ext.apply({ - target: btnEl.id - }, this.tooltip)); - } else { - btnEl.dom[this.tooltipType] = this.tooltip; - } - } - if(this.arrowTooltip){ - var btnEl = btn.child("button:nth(2)"); - btnEl.dom[this.tooltipType] = this.arrowTooltip; - } - if(this.hidden){ - this.hide(); - } - if(this.disabled){ - this.disable(); - } - if(this.menu){ - this.menu.on("show", this.onMenuShow, this); - this.menu.on("hide", this.onMenuHide, this); - } - }, - - // private - autoWidth : function(){ - if(this.el){ - var tbl = this.el.child("table:first"); - var tbl2 = this.el.child("table:last"); - this.el.setWidth("auto"); - tbl.setWidth("auto"); - if(Ext.isIE7 && Ext.isStrict){ - var ib = this.el.child('button:first'); - if(ib && ib.getWidth() > 20){ - ib.clip(); - ib.setWidth(Ext.util.TextMetrics.measure(ib, this.text).width+ib.getFrameWidth('lr')); - } - } - if(this.minWidth){ - if(this.hidden){ - this.el.beginMeasure(); - } - if((tbl.getWidth()+tbl2.getWidth()) < this.minWidth){ - tbl.setWidth(this.minWidth-tbl2.getWidth()); - } - if(this.hidden){ - this.el.endMeasure(); - } - } - this.el.setWidth(tbl.getWidth()+tbl2.getWidth()); - } - }, - /** - * Sets this button's click handler - * @param {Function} handler The function to call when the button is clicked - * @param {Object} scope (optional) Scope for the function passed above - */ - setHandler : function(handler, scope){ - this.handler = handler; - this.scope = scope; - }, - - /** - * Sets this button's arrow click handler - * @param {Function} handler The function to call when the arrow is clicked - * @param {Object} scope (optional) Scope for the function passed above - */ - setArrowHandler : function(handler, scope){ - this.arrowHandler = handler; - this.scope = scope; - }, - - /** - * Focus the button - */ - focus : function(){ - if(this.el){ - this.el.child("a:first").focus(); - } - }, - - // private - onClick : function(e){ - e.preventDefault(); - if(!this.disabled){ - if(e.getTarget(".x-btn-menu-arrow-wrap")){ - if(this.menu && !this.menu.isVisible()){ - this.menu.show(this.el, this.menuAlign); - } - this.fireEvent("arrowclick", this, e); - if(this.arrowHandler){ - this.arrowHandler.call(this.scope || this, this, e); - } - }else{ - this.fireEvent("click", this, e); - if(this.handler){ - this.handler.call(this.scope || this, this, e); - } - } - } - }, - // private - onMouseDown : function(e){ - if(!this.disabled){ - Ext.fly(e.getTarget("table")).addClass("x-btn-click"); - } - }, - // private - onMouseUp : function(e){ - Ext.fly(e.getTarget("table")).removeClass("x-btn-click"); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/MessageBox.js b/www/extras/extjs/source/widgets/MessageBox.js deleted file mode 100644 index 35b78375c..000000000 --- a/www/extras/extjs/source/widgets/MessageBox.js +++ /dev/null @@ -1,486 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.MessageBox - * Utility class for generating different styles of message boxes. The alias Ext.Msg can also be used. - * Example usage: - *
        
        -// Basic alert:
        -Ext.Msg.alert('Status', 'Changes saved successfully.');
        -
        -// Prompt for user data:
        -Ext.Msg.prompt('Name', 'Please enter your name:', function(btn, text){
        -    if (btn == 'ok'){
        -        // process text value...
        -    }
        -});
        -
        -// Show a dialog using config options:
        -Ext.Msg.show({
        -   title:'Save Changes?',
        -   msg: 'Your are closing a tab that has unsaved changes. Would you like to save your changes?',
        -   buttons: Ext.Msg.YESNOCANCEL,
        -   fn: processResult,
        -   animEl: 'elId'
        -});
        - 
        - * @singleton - */ -Ext.MessageBox = function(){ - var dlg, opt, mask, waitTimer; - var bodyEl, msgEl, textboxEl, textareaEl, progressEl, pp; - var buttons, activeTextEl, bwidth; - - // private - var handleButton = function(button){ - dlg.hide(); - Ext.callback(opt.fn, opt.scope||window, [button, activeTextEl.dom.value], 1); - }; - - // private - var handleHide = function(){ - if(opt && opt.cls){ - dlg.el.removeClass(opt.cls); - } - if(waitTimer){ - Ext.TaskMgr.stop(waitTimer); - waitTimer = null; - } - }; - - // private - var updateButtons = function(b){ - var width = 0; - if(!b){ - buttons["ok"].hide(); - buttons["cancel"].hide(); - buttons["yes"].hide(); - buttons["no"].hide(); - dlg.footer.dom.style.display = 'none'; - return width; - } - dlg.footer.dom.style.display = ''; - for(var k in buttons){ - if(typeof buttons[k] != "function"){ - if(b[k]){ - buttons[k].show(); - buttons[k].setText(typeof b[k] == "string" ? b[k] : Ext.MessageBox.buttonText[k]); - width += buttons[k].el.getWidth()+15; - }else{ - buttons[k].hide(); - } - } - } - return width; - }; - - // private - var handleEsc = function(d, k, e){ - if(opt && opt.closable !== false){ - dlg.hide(); - } - if(e){ - e.stopEvent(); - } - }; - - return { - /** - * Returns a reference to the underlying {@link Ext.BasicDialog} element - * @return {Ext.BasicDialog} dialog The BasicDialog element - */ - getDialog : function(){ - if(!dlg){ - dlg = new Ext.BasicDialog("x-msg-box", { - autoCreate : true, - shadow: true, - draggable: true, - resizable:false, - constraintoviewport:false, - fixedcenter:true, - collapsible : false, - shim:true, - modal: true, - width:400, height:100, - buttonAlign:"center", - closeClick : function(){ - if(opt && opt.buttons && opt.buttons.no && !opt.buttons.cancel){ - handleButton("no"); - }else{ - handleButton("cancel"); - } - } - }); - dlg.on("hide", handleHide); - mask = dlg.mask; - dlg.addKeyListener(27, handleEsc); - buttons = {}; - var bt = this.buttonText; - buttons["ok"] = dlg.addButton(bt["ok"], handleButton.createCallback("ok")); - buttons["yes"] = dlg.addButton(bt["yes"], handleButton.createCallback("yes")); - buttons["no"] = dlg.addButton(bt["no"], handleButton.createCallback("no")); - buttons["cancel"] = dlg.addButton(bt["cancel"], handleButton.createCallback("cancel")); - bodyEl = dlg.body.createChild({ - tag:"div", - html:'
         
        ' - }); - msgEl = bodyEl.dom.firstChild; - textboxEl = Ext.get(bodyEl.dom.childNodes[2]); - textboxEl.enableDisplayMode(); - textboxEl.addKeyListener([10,13], function(){ - if(dlg.isVisible() && opt && opt.buttons){ - if(opt.buttons.ok){ - handleButton("ok"); - }else if(opt.buttons.yes){ - handleButton("yes"); - } - } - }); - textareaEl = Ext.get(bodyEl.dom.childNodes[3]); - textareaEl.enableDisplayMode(); - progressEl = Ext.get(bodyEl.dom.childNodes[4]); - progressEl.enableDisplayMode(); - var pf = progressEl.dom.firstChild; - pp = Ext.get(pf.firstChild); - pp.setHeight(pf.offsetHeight); - } - return dlg; - }, - - /** - * Updates the message box body text - * @param {String} text Replaces the message box element's innerHTML with the specified string (defaults to - * the XHTML-compliant non-breaking space character  ) - * @return {Ext.MessageBox} messageBox This message box - */ - updateText : function(text){ - if(!dlg.isVisible() && !opt.width){ - dlg.resizeTo(this.maxWidth, 100); // resize first so content is never clipped from previous shows - } - msgEl.innerHTML = text || ' '; - var w = Math.max(Math.min(opt.width || msgEl.offsetWidth, this.maxWidth), - Math.max(opt.minWidth || this.minWidth, bwidth)); - if(opt.prompt){ - activeTextEl.setWidth(w); - } - if(dlg.isVisible()){ - dlg.fixedcenter = false; - } - dlg.setContentSize(w, bodyEl.getHeight()); - if(dlg.isVisible()){ - dlg.fixedcenter = true; - } - return this; - }, - - /** - * Updates a progress-style message box's text and progress bar. Only relevant on message boxes - * initiated via {@link Ext.MessageBox#progress} or by calling {@link Ext.MessageBox#show} with progress: true. - * @param {Number} value Any number between 0 and 1 (e.g., .5) - * @param {String} text If defined, the message box's body text is replaced with the specified string (defaults to undefined) - * @return {Ext.MessageBox} messageBox This message box - */ - updateProgress : function(value, text){ - if(text){ - this.updateText(text); - } - pp.setWidth(Math.floor(value*progressEl.dom.firstChild.offsetWidth)); - return this; - }, - - /** - * Returns true if the message box is currently displayed - * @return {Boolean} isVisible True if the message box is visible, else false - */ - isVisible : function(){ - return dlg && dlg.isVisible(); - }, - - /** - * Hides the message box if it is displayed - */ - hide : function(){ - if(this.isVisible()){ - dlg.hide(); - } - }, - - /** - * Displays a new message box, or reinitializes an existing message box, based on the config options - * passed in. All functions (e.g. prompt, alert, etc) on MessageBox call this function internally. - * The following config object properties are supported: - *
        -Property    Type             Description
        -----------  ---------------  ----------------------------------------------------------------------
        -title       String           The title text
        -closable    Boolean          False to hide the top-right close box (defaults to true)
        -prompt      Boolean          True to prompt the user to enter single-line text (defaults to false)
        -multiline   Boolean          True to prompt the user to enter multi-line text (defaults to false)
        -progress    Boolean          True to display a progress bar (defaults to false)
        -value       String           The string value to set into the active textbox element if displayed
        -buttons     Object/Boolean   A button config object (e.g., Ext.MessageBox.OKCANCEL or {ok:'Foo',
        -                             cancel:'Bar'}), or false to not show any buttons (defaults to false)
        -msg         String           A string that will replace the existing message box body text (defaults
        -                             to the XHTML-compliant non-breaking space character  )
        -cls         String           A custom CSS class to apply to the message box element
        -proxyDrag   Boolean          True to display a lightweight proxy while dragging (defaults to false)
        -modal       Boolean          False to allow user interaction with the page while the message box is
        -                             displayed (defaults to true)
        -
        - * - * Example usage: - *
        
        -Ext.Msg.show({
        -   title: 'Address',
        -   msg: 'Please enter your address:',
        -   width: 300,
        -   buttons: Ext.MessageBox.OKCANCEL,
        -   multiline: true,
        -   fn: saveAddress,
        -   animEl: 'addAddressBtn'
        -});
        -
        - * @param {Object} config Configuration options - * @return {Ext.MessageBox} messageBox This message box - */ - show : function(options){ - if(this.isVisible()){ - this.hide(); - } - var d = this.getDialog(); - opt = options; - d.setTitle(opt.title || " "); - d.close.setDisplayed(opt.closable !== false); - activeTextEl = textboxEl; - opt.prompt = opt.prompt || (opt.multiline ? true : false); - if(opt.prompt){ - if(opt.multiline){ - textboxEl.hide(); - textareaEl.show(); - textareaEl.setHeight(typeof opt.multiline == "number" ? - opt.multiline : this.defaultTextHeight); - activeTextEl = textareaEl; - }else{ - textboxEl.show(); - textareaEl.hide(); - } - }else{ - textboxEl.hide(); - textareaEl.hide(); - } - progressEl.setDisplayed(opt.progress === true); - this.updateProgress(0); - activeTextEl.dom.value = opt.value || ""; - if(opt.prompt){ - dlg.setDefaultButton(activeTextEl); - }else{ - var bs = opt.buttons; - var db = null; - if(bs && bs.ok){ - db = buttons["ok"]; - }else if(bs && bs.yes){ - db = buttons["yes"]; - } - dlg.setDefaultButton(db); - } - bwidth = updateButtons(opt.buttons); - this.updateText(opt.msg); - if(opt.cls){ - d.el.addClass(opt.cls); - } - d.proxyDrag = opt.proxyDrag === true; - d.modal = opt.modal !== false; - d.mask = opt.modal !== false ? mask : false; - if(!d.isVisible()){ - // force it to the end of the z-index stack so it gets a cursor in FF - document.body.appendChild(dlg.el.dom); - d.animateTarget = null; - d.show(options.animEl); - } - return this; - }, - - /** - * Displays a message box with a progress bar. This message box has no buttons and is not closeable by - * the user. You are responsible for updating the progress bar as needed via {@link Ext.MessageBox#updateProgress} - * and closing the message box when the process is complete. - * @param {String} title The title bar text - * @param {String} msg The message box body text - * @return {Ext.MessageBox} messageBox This message box - */ - progress : function(title, msg){ - this.show({ - title : title, - msg : msg, - buttons: false, - progress:true, - closable:false, - minWidth: this.minProgressWidth - }); - return this; - }, - - /** - * Displays a standard read-only message box (comparable to the basic JavaScript alert prompt) with an OK - * button. If a callback function is passed it will be called after the user clicks the button, and the - * id of the button that was clicked will be passed as the only parameter to the callback - * (could also be the top-right close button). - * @param {String} title The title bar text - * @param {String} msg The message box body text - * @param {Function} fn (optional) The callback function invoked after the message box is closed - * @param {Object} scope (optional) The scope of the callback function - * @return {Ext.MessageBox} messageBox This message box - */ - alert : function(title, msg, fn, scope){ - this.show({ - title : title, - msg : msg, - buttons: this.OK, - fn: fn, - scope : scope - }); - return this; - }, - - /** - * Displays a message box with an infinitely auto-updating progress bar. This can be used to block user - * interaction while waiting for a long-running process to complete that does not have defined intervals. - * You are responsible for closing the message box when the process is complete. - * @param {String} msg The message box body text - * @param {String} title (optional) The title bar text - * @return {Ext.MessageBox} messageBox This message box - */ - wait : function(msg, title){ - this.show({ - title : title, - msg : msg, - buttons: false, - closable:false, - progress:true, - modal:true, - width:300, - wait:true - }); - waitTimer = Ext.TaskMgr.start({ - run: function(i){ - Ext.MessageBox.updateProgress(((((i+20)%20)+1)*5)*.01); - }, - interval: 1000 - }); - return this; - }, - - /** - * Displays a confirmation message box with Yes and No buttons. If a callback function is passed it will - * be called after the user clicks either button, and the id of the button that was clicked - * will be passed as the only parameter to the callback (could also be the top-right close button). - * @param {String} title The title bar text - * @param {String} msg The message box body text - * @param {Function} fn (optional) The callback function invoked after the message box is closed - * @param {Object} scope (optional) The scope of the callback function - * @return {Ext.MessageBox} messageBox This message box - */ - confirm : function(title, msg, fn, scope){ - this.show({ - title : title, - msg : msg, - buttons: this.YESNO, - fn: fn, - scope : scope - }); - return this; - }, - - /** - * Displays a message box with OK and Cancel buttons prompting the user to enter some text. The prompt can - * be a single-line or multi-line textbox. If a callback function is passed it will be called after the user - * clicks either button, and the id of the button that was clicked (could also be the top-right - * close button) and the text that was entered will be passed as the two parameters to the callback. - * @param {String} title The title bar text - * @param {String} msg The message box body text - * @param {Function} fn (optional) The callback function invoked after the message box is closed - * @param {Object} scope (optional) The scope of the callback function - * @param {Boolean/Number} multiline (optional) True to create a multiline textbox using the defaultTextHeight - * property, or the height in pixels to create the textbox (defaults to false / single-line) - * @return {Ext.MessageBox} messageBox This message box - */ - prompt : function(title, msg, fn, scope, multiline){ - this.show({ - title : title, - msg : msg, - buttons: this.OKCANCEL, - fn: fn, - minWidth:250, - scope : scope, - prompt:true, - multiline: multiline - }); - return this; - }, - - /** - * Button config that displays a single OK button - * @type Object - */ - OK : {ok:true}, - /** - * Button config that displays Yes and No buttons - * @type Object - */ - YESNO : {yes:true, no:true}, - /** - * Button config that displays OK and Cancel buttons - * @type Object - */ - OKCANCEL : {ok:true, cancel:true}, - /** - * Button config that displays Yes, No and Cancel buttons - * @type Object - */ - YESNOCANCEL : {yes:true, no:true, cancel:true}, - - /** - * The default height in pixels of the message box's multiline textarea if displayed (defaults to 75) - * @type Number - */ - defaultTextHeight : 75, - /** - * The maximum width in pixels of the message box (defaults to 600) - * @type Number - */ - maxWidth : 600, - /** - * The minimum width in pixels of the message box (defaults to 100) - * @type Number - */ - minWidth : 100, - /** - * The minimum width in pixels of the message box progress bar if displayed (defaults to 250) - * @type Number - */ - minProgressWidth : 250, - /** - * An object containing the default button text strings that can be overriden for localized language support. - * Supported properties are: ok, cancel, yes and no. - * Customize the default text like so: Ext.MessageBox.buttonText.yes = "Si"; - * @type Object - */ - buttonText : { - ok : "OK", - cancel : "Cancel", - yes : "Yes", - no : "No" - } - }; -}(); - -/** - * Shorthand for {@link Ext.MessageBox} - */ -Ext.Msg = Ext.MessageBox; \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/PagingToolbar.js b/www/extras/extjs/source/widgets/PagingToolbar.js deleted file mode 100644 index 5f148a2a9..000000000 --- a/www/extras/extjs/source/widgets/PagingToolbar.js +++ /dev/null @@ -1,268 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.PagingToolbar - * @extends Ext.Toolbar - * A specialized toolbar that is bound to a {@link Ext.data.Store} and provides automatic paging controls. - * @constructor - * Create a new PagingToolbar - * @param {String/HTMLElement/Element} container The id or element that will contain the toolbar - * @param {Ext.data.Store} store The underlying data store providing the paged data - * @param {Object} config The config object - */ -Ext.PagingToolbar = function(el, ds, config){ - Ext.PagingToolbar.superclass.constructor.call(this, el, null, config); - this.ds = ds; - this.cursor = 0; - this.renderButtons(this.el); - this.bind(ds); -}; - -Ext.extend(Ext.PagingToolbar, Ext.Toolbar, { - /** - * @cfg {Number} pageSize - * The number of records to display per page (defaults to 20) - */ - pageSize: 20, - /** - * @cfg {String} displayMsg - * The paging status message to display (defaults to "Displaying {start} - {end} of {total}") - */ - displayMsg : 'Displaying {0} - {1} of {2}', - /** - * @cfg {String} emptyMsg - * The message to display when no records are found (defaults to "No data to display") - */ - emptyMsg : 'No data to display', - /** - * Customizable piece of the default paging text (defaults to "Page") - * @type String - */ - beforePageText : "Page", - /** - * Customizable piece of the default paging text (defaults to "of %0") - * @type String - */ - afterPageText : "of {0}", - /** - * Customizable piece of the default paging text (defaults to "First Page") - * @type String - */ - firstText : "First Page", - /** - * Customizable piece of the default paging text (defaults to "Previous Page") - * @type String - */ - prevText : "Previous Page", - /** - * Customizable piece of the default paging text (defaults to "Next Page") - * @type String - */ - nextText : "Next Page", - /** - * Customizable piece of the default paging text (defaults to "Last Page") - * @type String - */ - lastText : "Last Page", - /** - * Customizable piece of the default paging text (defaults to "Refresh") - * @type String - */ - refreshText : "Refresh", - - // private - renderButtons : function(el){ - this.first = this.addButton({ - tooltip: this.firstText, - cls: "x-btn-icon x-grid-page-first", - disabled: true, - handler: this.onClick.createDelegate(this, ["first"]) - }); - this.prev = this.addButton({ - tooltip: this.prevText, - cls: "x-btn-icon x-grid-page-prev", - disabled: true, - handler: this.onClick.createDelegate(this, ["prev"]) - }); - this.addSeparator(); - this.add(this.beforePageText); - this.field = Ext.get(this.addDom({ - tag: "input", - type: "text", - size: "3", - value: "1", - cls: "x-grid-page-number" - }).el); - this.field.on("keydown", this.onPagingKeydown, this); - this.field.on("focus", function(){this.dom.select();}); - this.afterTextEl = this.addText(String.format(this.afterPageText, 1)); - this.field.setHeight(18); - this.addSeparator(); - this.next = this.addButton({ - tooltip: this.nextText, - cls: "x-btn-icon x-grid-page-next", - disabled: true, - handler: this.onClick.createDelegate(this, ["next"]) - }); - this.last = this.addButton({ - tooltip: this.lastText, - cls: "x-btn-icon x-grid-page-last", - disabled: true, - handler: this.onClick.createDelegate(this, ["last"]) - }); - this.addSeparator(); - this.loading = this.addButton({ - tooltip: this.refreshText, - cls: "x-btn-icon x-grid-loading", - disabled: true, - handler: this.onClick.createDelegate(this, ["refresh"]) - }); - - if(this.displayInfo){ - this.displayEl = this.el.createChild({cls:'x-paging-info'}); - } - }, - - // private - updateInfo : function(){ - if(this.displayEl){ - var count = this.ds.getCount(); - var msg = count == 0 ? - this.emptyMsg : - String.format( - this.displayMsg, - this.cursor+1, this.cursor+count, this.ds.getTotalCount() - ); - this.displayEl.update(msg); - } - }, - - // private - onLoad : function(ds, r, o){ - this.cursor = o.params ? o.params.start : 0; - var d = this.getPageData(), ap = d.activePage, ps = d.pages; - - this.afterTextEl.el.innerHTML = String.format(this.afterPageText, d.pages); - this.field.dom.value = ap; - this.first.setDisabled(ap == 1); - this.prev.setDisabled(ap == 1); - this.next.setDisabled(ap == ps); - this.last.setDisabled(ap == ps); - this.loading.enable(); - this.updateInfo(); - }, - - // private - getPageData : function(){ - var total = this.ds.getTotalCount(); - return { - total : total, - activePage : Math.ceil((this.cursor+this.pageSize)/this.pageSize), - pages : total < this.pageSize ? 1 : Math.ceil(total/this.pageSize) - }; - }, - - // private - onLoadError : function(){ - this.loading.enable(); - }, - - // private - onPagingKeydown : function(e){ - var k = e.getKey(); - var d = this.getPageData(); - if(k == e.RETURN){ - var v = this.field.dom.value, pageNum; - if(!v || isNaN(pageNum = parseInt(v, 10))){ - this.field.dom.value = d.activePage; - return; - } - pageNum = Math.min(Math.max(1, pageNum), d.pages) - 1; - this.ds.load({params:{start: pageNum * this.pageSize, limit: this.pageSize}}); - e.stopEvent(); - } - else if(k == e.HOME || (k == e.UP && e.ctrlKey) || (k == e.PAGEUP && e.ctrlKey) || (k == e.RIGHT && e.ctrlKey) || k == e.END || (k == e.DOWN && e.ctrlKey) || (k == e.LEFT && e.ctrlKey) || (k == e.PAGEDOWN && e.ctrlKey)) - { - var pageNum = (k == e.HOME || (k == e.DOWN && e.ctrlKey) || (k == e.LEFT && e.ctrlKey) || (k == e.PAGEDOWN && e.ctrlKey)) ? 1 : d.pages; - this.field.dom.value = pageNum; - this.ds.load({params:{start: (pageNum - 1) * this.pageSize, limit: this.pageSize}}); - e.stopEvent(); - } - else if(k == e.UP || k == e.RIGHT || k == e.PAGEUP || k == e.DOWN || k == e.LEFT || k == e.PAGEDOWN) - { - var v = this.field.dom.value, pageNum; - var increment = (e.shiftKey) ? 10 : 1; - if(k == e.DOWN || k == e.LEFT || k == e.PAGEDOWN) - increment *= -1; - if(!v || isNaN(pageNum = parseInt(v, 10))) { - this.field.dom.value = d.activePage; - return; - } - else if(parseInt(v, 10) + increment >= 1 & parseInt(v, 10) + increment <= d.pages) - { - this.field.dom.value = parseInt(v, 10) + increment; - pageNum = Math.min(Math.max(1, pageNum + increment), d.pages) - 1; - this.ds.load({params:{start: pageNum * this.pageSize, limit: this.pageSize}}); - } - e.stopEvent(); - } - }, - - // private - beforeLoad : function(){ - if(this.loading){ - this.loading.disable(); - } - }, - - // private - onClick : function(which){ - var ds = this.ds; - switch(which){ - case "first": - ds.load({params:{start: 0, limit: this.pageSize}}); - break; - case "prev": - ds.load({params:{start: Math.max(0, this.cursor-this.pageSize), limit: this.pageSize}}); - break; - case "next": - ds.load({params:{start: this.cursor+this.pageSize, limit: this.pageSize}}); - break; - case "last": - var total = ds.getTotalCount(); - var extra = total % this.pageSize; - var lastStart = extra ? (total - extra) : total-this.pageSize; - ds.load({params:{start: lastStart, limit: this.pageSize}}); - break; - case "refresh": - ds.load({params:{start: this.cursor, limit: this.pageSize}}); - break; - } - }, - - /** - * Unbinds the paging toolbar from the specified {@link Ext.data.Store} - * @param {Ext.data.Store} store The data store to unbind - */ - unbind : function(ds){ - ds.un("beforeload", this.beforeLoad, this); - ds.un("load", this.onLoad, this); - ds.un("loadexception", this.onLoadError, this); - }, - - /** - * Binds the paging toolbar to the specified {@link Ext.data.Store} - * @param {Ext.data.Store} store The data store to bind - */ - bind : function(ds){ - ds.on("beforeload", this.beforeLoad, this); - ds.on("load", this.onLoad, this); - ds.on("loadexception", this.onLoadError, this); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/QuickTips.js b/www/extras/extjs/source/widgets/QuickTips.js deleted file mode 100644 index 81f7f646f..000000000 --- a/www/extras/extjs/source/widgets/QuickTips.js +++ /dev/null @@ -1,365 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.QuickTips - * Provides attractive and customizable tooltips for any element. - * @singleton - */ -Ext.QuickTips = function(){ - var el, tipBody, tipBodyText, tipTitle, tm, cfg, close, tagEls = {}, esc, removeCls = null, bdLeft, bdRight; - var ce, bd, xy, dd; - var visible = false, disabled = true, inited = false; - var showProc = 1, hideProc = 1, dismissProc = 1, locks = []; - - var onOver = function(e){ - if(disabled){ - return; - } - var t = e.getTarget(); - if(!t || t.nodeType !== 1 || t == document || t == document.body){ - return; - } - if(ce && t == ce.el){ - clearTimeout(hideProc); - return; - } - if(t && tagEls[t.id]){ - tagEls[t.id].el = t; - showProc = show.defer(tm.showDelay, tm, [tagEls[t.id]]); - return; - } - var ttp, et = Ext.fly(t); - var ns = cfg.namespace; - if(tm.interceptTitles && t.title){ - ttp = t.title; - t.qtip = ttp; - t.removeAttribute("title"); - e.preventDefault(); - }else{ - ttp = t.qtip || et.getAttributeNS(ns, cfg.attribute); - } - if(ttp){ - showProc = show.defer(tm.showDelay, tm, [{ - el: t, - text: ttp, - width: et.getAttributeNS(ns, cfg.width), - autoHide: et.getAttributeNS(ns, cfg.hide) != "user", - title: et.getAttributeNS(ns, cfg.title), - cls: et.getAttributeNS(ns, cfg.cls) - }]); - } - }; - - var onOut = function(e){ - clearTimeout(showProc); - var t = e.getTarget(); - if(t && ce && ce.el == t && (tm.autoHide && ce.autoHide !== false)){ - hideProc = setTimeout(hide, tm.hideDelay); - } - }; - - var onMove = function(e){ - if(disabled){ - return; - } - xy = e.getXY(); - xy[1] += 18; - if(tm.trackMouse && ce){ - el.setXY(xy); - } - }; - - var onDown = function(e){ - clearTimeout(showProc); - clearTimeout(hideProc); - if(!e.within(el)){ - if(tm.hideOnClick){ - hide(); - tm.disable(); - } - } - }; - - var onUp = function(e){ - tm.enable(); - }; - - var getPad = function(){ - return bdLeft.getPadding('l')+bdRight.getPadding('r'); - }; - - var show = function(o){ - if(disabled){ - return; - } - clearTimeout(dismissProc); - ce = o; - if(removeCls){ // in case manually hidden - el.removeClass(removeCls); - removeCls = null; - } - if(ce.cls){ - el.addClass(ce.cls); - removeCls = ce.cls; - } - if(ce.title){ - tipTitle.update(ce.title); - tipTitle.show(); - }else{ - tipTitle.update(''); - tipTitle.hide(); - } - el.dom.style.width = tm.maxWidth+'px'; - //tipBody.dom.style.width = ''; - tipBodyText.update(o.text); - var p = getPad(), w = ce.width; - if(!w){ - var td = tipBodyText.dom; - var aw = Math.max(td.offsetWidth, td.clientWidth, td.scrollWidth); - if(aw > tm.maxWidth){ - w = tm.maxWidth; - }else if(aw < tm.minWidth){ - w = tm.minWidth; - }else{ - w = aw; - } - } - //tipBody.setWidth(w); - el.setWidth(parseInt(w, 10) + p); - if(!ce.autoHide){ - close.setDisplayed(true); - if(dd){ - dd.unlock(); - } - }else{ - close.setDisplayed(false); - if(dd){ - dd.lock(); - } - } - if(xy){ - el.avoidY = xy[1]-18; - el.setXY(xy); - } - if(tm.animate){ - el.setOpacity(.1); - el.setStyle("visibility", "visible"); - el.fadeIn({callback: afterShow}); - }else{ - afterShow(); - } - }; - - var afterShow = function(){ - if(ce){ - el.show(); - esc.enable(); - if(tm.autoDismiss && ce.autoHide !== false){ - dismissProc = setTimeout(hide, tm.autoDismissDelay); - } - } - }; - - var hide = function(noanim){ - clearTimeout(dismissProc); - clearTimeout(hideProc); - ce = null; - if(el.isVisible()){ - esc.disable(); - if(noanim !== true && tm.animate){ - el.fadeOut({callback: afterHide}); - }else{ - afterHide(); - } - } - }; - - var afterHide = function(){ - el.hide(); - if(removeCls){ - el.removeClass(removeCls); - removeCls = null; - } - }; - - return { - /** - * @cfg {Number} minWidth - * The minimum width of the quick tip (defaults to 40) - */ - minWidth : 40, - /** - * @cfg {Number} maxWidth - * The maximum width of the quick tip (defaults to 300) - */ - maxWidth : 300, - /** - * @cfg {Boolean} interceptTitles - * True to automatically use the element's DOM title value if available (defaults to false) - */ - interceptTitles : false, - /** - * @cfg {Boolean} trackMouse - * True to have the quick tip follow the mouse as it moves over the target element (defaults to false) - */ - trackMouse : false, - /** - * @cfg {Boolean} hideOnClick - * True to hide the quick tip if the user clicks anywhere in the document (defaults to true) - */ - hideOnClick : true, - /** - * @cfg {Number} showDelay - * Delay in milliseconds before the quick tip displays after the mouse enters the target element (defaults to 500) - */ - showDelay : 500, - /** - * @cfg {Number} hideDelay - * Delay in milliseconds before the quick tip hides when autoHide = true (defaults to 200) - */ - hideDelay : 200, - /** - * @cfg {Boolean} autoHide - * True to automatically hide the quick tip after the mouse exits the target element (defaults to true). - * Used in conjunction with hideDelay. - */ - autoHide : true, - /** - * @cfg {Boolean} - * True to automatically hide the quick tip after a set period of time, regardless of the user's actions - * (defaults to true). Used in conjunction with autoDismissDelay. - */ - autoDismiss : true, - /** - * @cfg {Number} - * Delay in milliseconds before the quick tip hides when autoDismiss = true (defaults to 5000) - */ - autoDismissDelay : 5000, - /** - * @cfg {Boolean} animate - * True to turn on fade animation. Defaults to false (ClearType/scrollbar flicker issues in IE7). - */ - animate : false, - - // private - init : function(){ - tm = Ext.QuickTips; - cfg = tm.tagConfig; - if(!inited){ - el = new Ext.Layer({cls:"x-tip", shadow:"drop", shim: true, constrain:true, shadowOffset:3}); - el.fxDefaults = {stopFx: true}; - // maximum custom styling - el.update('

        '); - tipTitle = el.child('h3'); - tipTitle.enableDisplayMode("block"); - tipBody = el.child('div.x-tip-bd'); - tipBodyText = el.child('div.x-tip-bd-inner'); - bdLeft = el.child('div.x-tip-bd-left'); - bdRight = el.child('div.x-tip-bd-right'); - close = el.child('div.x-tip-close'); - close.enableDisplayMode("block"); - close.on("click", hide); - d = Ext.get(document); - d.on("mousedown", onDown); - d.on("mouseup", onUp); - d.on("mouseover", onOver); - d.on("mouseout", onOut); - d.on("mousemove", onMove); - esc = d.addKeyListener(27, hide); - esc.disable(); - if(Ext.dd.DD){ - dd = el.initDD("default", null, { - onDrag : function(){ - el.sync(); - } - }); - dd.setHandleElId(tipTitle.id); - dd.lock(); - } - inited = true; - } - this.enable(); - }, - - /** - * Configures a new quick tip instance and assigns it to a target element - * @param {Object} config The config object - */ - register : function(config){ - var cs = config instanceof Array ? config : arguments; - for(var i = 0, len = cs.length; i < len; i++) { - var c = cs[i]; - var target = c.target; - if(target){ - if(target instanceof Array){ - for(var j = 0, jlen = target.length; j < jlen; j++){ - tagEls[target[j]] = c; - } - }else{ - tagEls[typeof target == 'string' ? target : Ext.id(target.id)] = c; - } - } - } - }, - - /** - * Removes this quick tip from its element and destroys it - */ - unregister : function(el){ - delete tagEls[Ext.id(el)]; - }, - - /** - * Enable this quick tip - */ - enable : function(){ - if(inited){ - locks.pop(); - if(locks.length < 1){ - disabled = false; - } - } - }, - - /** - * Disable this quick tip - */ - disable : function(){ - disabled = true; - clearTimeout(showProc); - clearTimeout(hideProc); - clearTimeout(dismissProc); - if(ce){ - hide(true); - } - locks.push(1); - }, - - /** - * Returns true if the quick tip is enabled, else false - */ - isEnabled : function(){ - return !disabled; - }, - - // private - tagConfig : { - namespace : "ext", - attribute : "qtip", - width : "width", - target : "target", - title : "qtitle", - hide : "hide", - cls : "qclass" - } - }; -}(); - -// backwards compat -Ext.QuickTips.tips = Ext.QuickTips.register; \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/Resizable.js b/www/extras/extjs/source/widgets/Resizable.js deleted file mode 100644 index 5ccf2e8da..000000000 --- a/www/extras/extjs/source/widgets/Resizable.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** * @class Ext.Resizable * @extends Ext.util.Observable *

        Applies drag handles to an element to make it resizable. The drag handles are inserted into the element * and positioned absolute. Some elements, such as a textarea or image, don't support this. To overcome that, you can wrap * the textarea in a div and set "resizeChild" to true (or to the id of the element), or set wrap:true in your config and * the element will be wrapped for you automatically.

        *

        Here is the list of valid resize handles:

        *
        Value   Description
        ------  -------------------
         'n'     north
         's'     south
         'e'     east
         'w'     west
         'nw'    northwest
         'sw'    southwest
         'se'    southeast
         'ne'    northeast
         'all'   all
        
        *

        Here's an example showing the creation of a typical Resizable:

        *
        
        var resizer = new Ext.Resizable("element-id", {
            handles: 'all',
            minWidth: 200,
            minHeight: 100,
            maxWidth: 500,
            maxHeight: 400,
            pinned: true
        });
        resizer.on("resize", myHandler);
        
        *

        To hide a particular handle, set its display to none in CSS, or through script:
        * resizer.east.setDisplayed(false);

        * @cfg {Boolean/String/Element} resizeChild True to resize the first child, or id/element to resize (defaults to false) * @cfg {Array/String} adjustments String "auto" or an array [width, height] with values to be added to the * resize operation's new size (defaults to [0, 0]) * @cfg {Number} minWidth The minimum width for the element (defaults to 5) * @cfg {Number} minHeight The minimum height for the element (defaults to 5) * @cfg {Number} maxWidth The maximum width for the element (defaults to 10000) * @cfg {Number} maxHeight The maximum height for the element (defaults to 10000) * @cfg {Boolean} enabled False to disable resizing (defaults to true) * @cfg {Boolean} wrap True to wrap an element with a div if needed (required for textareas and images, defaults to false) * @cfg {Number} width The width of the element in pixels (defaults to null) * @cfg {Number} height The height of the element in pixels (defaults to null) * @cfg {Boolean} animate True to animate the resize (not compatible with dynamic sizing, defaults to false) * @cfg {Number} duration Animation duration if animate = true (defaults to .35) * @cfg {Boolean} dynamic True to resize the element while dragging instead of using a proxy (defaults to false) * @cfg {Boolean/String} handles String consisting of the resize handles to display (defaults to false) * @cfg {Boolean} multiDirectional Deprecated. The old style of adding multi-direction resize handles, deprecated * in favor of the handles config option (defaults to false) * @cfg {Boolean} disableTrackOver True to disable mouse tracking. This is only applied at config time. (defaults to false) * @cfg {String} easing Animation easing if animate = true (defaults to 'easingOutStrong') * @cfg {Number} widthIncrement The increment to snap the width resize in pixels (dynamic must be true, defaults to 0) * @cfg {Number} heightIncrement The increment to snap the height resize in pixels (dynamic must be true, defaults to 0) * @cfg {Boolean} pinned True to ensure that the resize handles are always visible, false to display them only when the * user mouses over the resizable borders. This is only applied at config time. (defaults to false) * @cfg {Boolean} preserveRatio True to preserve the original ratio between height and width during resize (defaults to false) * @cfg {Boolean} transparent True for transparent handles. This is only applied at config time. (defaults to false) * @cfg {Number} minX The minimum allowed page X for the element (only used for west resizing, defaults to 0) * @cfg {Number} minY The minimum allowed page Y for the element (only used for north resizing, defaults to 0) * @cfg {Boolean} draggable Convenience to initialize drag drop (defaults to false) * @constructor * Create a new resizable component * @param {String/HTMLElement/Ext.Element} el The id or element to resize * @param {Object} config configuration options */ Ext.Resizable = function(el, config){ this.el = Ext.get(el); if(config && config.wrap){ config.resizeChild = this.el; this.el = this.el.wrap(typeof config.wrap == "object" ? config.wrap : {cls:"xresizable-wrap"}); this.el.id = this.el.dom.id = config.resizeChild.id + "-rzwrap"; this.el.setStyle("overflow", "hidden"); this.el.setPositioning(config.resizeChild.getPositioning()); config.resizeChild.clearPositioning(); if(!config.width || !config.height){ var csize = config.resizeChild.getSize(); this.el.setSize(csize.width, csize.height); } if(config.pinned && !config.adjustments){ config.adjustments = "auto"; } } this.proxy = this.el.createProxy({tag: "div", cls: "x-resizable-proxy", id: this.el.id + "-rzproxy"}); this.proxy.unselectable(); this.proxy.enableDisplayMode('block'); Ext.apply(this, config); if(this.pinned){ this.disableTrackOver = true; this.el.addClass("x-resizable-pinned"); } // if the element isn't positioned, make it relative var position = this.el.getStyle("position"); if(position != "absolute" && position != "fixed"){ this.el.setStyle("position", "relative"); } if(!this.handles){ // no handles passed, must be legacy style this.handles = 's,e,se'; if(this.multiDirectional){ this.handles += ',n,w'; } } if(this.handles == "all"){ this.handles = "n s e w ne nw se sw"; } var hs = this.handles.split(/\s*?[,;]\s*?| /); var ps = Ext.Resizable.positions; for(var i = 0, len = hs.length; i < len; i++){ if(hs[i] && ps[hs[i]]){ var pos = ps[hs[i]]; this[pos] = new Ext.Resizable.Handle(this, pos, this.disableTrackOver, this.transparent); } } // legacy this.corner = this.southeast; if(this.handles.indexOf("n") != -1 || this.handles.indexOf("w") != -1){ this.updateBox = true; } this.activeHandle = null; if(this.resizeChild){ if(typeof this.resizeChild == "boolean"){ this.resizeChild = Ext.get(this.el.dom.firstChild, true); }else{ this.resizeChild = Ext.get(this.resizeChild, true); } } if(this.adjustments == "auto"){ var rc = this.resizeChild; var hw = this.west, he = this.east, hn = this.north, hs = this.south; if(rc && (hw || hn)){ rc.position("relative"); rc.setLeft(hw ? hw.el.getWidth() : 0); rc.setTop(hn ? hn.el.getHeight() : 0); } this.adjustments = [ (he ? -he.el.getWidth() : 0) + (hw ? -hw.el.getWidth() : 0), (hn ? -hn.el.getHeight() : 0) + (hs ? -hs.el.getHeight() : 0) -1 ]; } if(this.draggable){ this.dd = this.dynamic ? this.el.initDD(null) : this.el.initDDProxy(null, {dragElId: this.proxy.id}); this.dd.setHandleElId(this.resizeChild ? this.resizeChild.id : this.el.id); } // public events this.addEvents({ /** * @event beforeresize * Fired before resize is allowed. Set enabled to false to cancel resize. * @param {Ext.Resizable} this * @param {Ext.EventObject} e The mousedown event */ "beforeresize" : true, /** * @event resize * Fired after a resize. * @param {Ext.Resizable} this * @param {Number} width The new width * @param {Number} height The new height * @param {Ext.EventObject} e The mouseup event */ "resize" : true }); if(this.width !== null && this.height !== null){ this.resizeTo(this.width, this.height); }else{ this.updateChildSize(); } if(Ext.isIE){ this.el.dom.style.zoom = 1; } Ext.Resizable.superclass.constructor.call(this); }; Ext.extend(Ext.Resizable, Ext.util.Observable, { resizeChild : false, adjustments : [0, 0], minWidth : 5, minHeight : 5, maxWidth : 10000, maxHeight : 10000, enabled : true, animate : false, duration : .35, dynamic : false, handles : false, multiDirectional : false, disableTrackOver : false, easing : 'easeOutStrong', widthIncrement : 0, heightIncrement : 0, pinned : false, width : null, height : null, preserveRatio : false, transparent: false, minX: 0, minY: 0, draggable: false, /** * Perform a manual resize * @param {Number} width * @param {Number} height */ resizeTo : function(width, height){ this.el.setSize(width, height); this.updateChildSize(); this.fireEvent("resize", this, width, height, null); }, // private startSizing : function(e, handle){ this.fireEvent("beforeresize", this, e); if(this.enabled){ // 2nd enabled check in case disabled before beforeresize handler if(!this.overlay){ this.overlay = this.el.createProxy({tag: "div", cls: "x-resizable-overlay", html: " "}); this.overlay.unselectable(); this.overlay.enableDisplayMode("block"); this.overlay.on("mousemove", this.onMouseMove, this); this.overlay.on("mouseup", this.onMouseUp, this); } this.overlay.setStyle("cursor", handle.el.getStyle("cursor")); this.resizing = true; this.startBox = this.el.getBox(); this.startPoint = e.getXY(); this.offsets = [(this.startBox.x + this.startBox.width) - this.startPoint[0], (this.startBox.y + this.startBox.height) - this.startPoint[1]]; this.overlay.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); this.overlay.show(); this.proxy.setStyle('visibility', 'hidden'); // workaround display none this.proxy.show(); this.proxy.setBox(this.startBox); if(!this.dynamic){ this.proxy.setStyle('visibility', 'visible'); } } }, // private onMouseDown : function(handle, e){ if(this.enabled){ e.stopEvent(); this.activeHandle = handle; this.startSizing(e, handle); } }, // private onMouseUp : function(e){ var size = this.resizeElement(); this.resizing = false; this.handleOut(); this.overlay.hide(); this.fireEvent("resize", this, size.width, size.height, e); }, // private updateChildSize : function(){ if(this.resizeChild){ var el = this.el; var child = this.resizeChild; var adj = this.adjustments; if(el.dom.offsetWidth){ var b = el.getSize(true); child.setSize(b.width+adj[0], b.height+adj[1]); } // Second call here for IE // The first call enables instant resizing and // the second call corrects scroll bars if they // exist if(Ext.isIE){ setTimeout(function(){ if(el.dom.offsetWidth){ var b = el.getSize(true); child.setSize(b.width+adj[0], b.height+adj[1]); } }, 10); } } }, // private snap : function(value, inc, min){ if(!inc || !value) return value; var newValue = value; var m = value % inc; if(m > 0){ if(m > (inc/2)){ newValue = value + (inc-m); }else{ newValue = value - m; } } return Math.max(min, newValue); }, // private resizeElement : function(){ var box = this.proxy.getBox(); if(this.updateBox){ this.el.setBox(box, false, this.animate, this.duration, null, this.easing); }else{ this.el.setSize(box.width, box.height, this.animate, this.duration, null, this.easing); } this.updateChildSize(); this.proxy.hide(); return box; }, // private constrain : function(v, diff, m, mx){ if(v - diff < m){ diff = v - m; }else if(v - diff > mx){ diff = mx - v; } return diff; }, // private onMouseMove : function(e){ if(this.enabled){ try{// try catch so if something goes wrong the user doesn't get hung //var curXY = this.startPoint; var curSize = this.curSize || this.startBox; var x = this.startBox.x, y = this.startBox.y; var ox = x, oy = y; var w = curSize.width, h = curSize.height; var ow = w, oh = h; var mw = this.minWidth, mh = this.minHeight; var mxw = this.maxWidth, mxh = this.maxHeight; var wi = this.widthIncrement; var hi = this.heightIncrement; var eventXY = e.getXY(); var diffX = -(this.startPoint[0] - Math.max(this.minX, eventXY[0])); var diffY = -(this.startPoint[1] - Math.max(this.minY, eventXY[1])); var pos = this.activeHandle.position; switch(pos){ case "east": w += diffX; w = Math.min(Math.max(mw, w), mxw); break; case "south": h += diffY; h = Math.min(Math.max(mh, h), mxh); break; case "southeast": w += diffX; h += diffY; w = Math.min(Math.max(mw, w), mxw); h = Math.min(Math.max(mh, h), mxh); break; case "north": diffY = this.constrain(h, diffY, mh, mxh); y += diffY; h -= diffY; break; case "west": diffX = this.constrain(w, diffX, mw, mxw); x += diffX; w -= diffX; break; case "northeast": w += diffX; w = Math.min(Math.max(mw, w), mxw); diffY = this.constrain(h, diffY, mh, mxh); y += diffY; h -= diffY; break; case "northwest": diffX = this.constrain(w, diffX, mw, mxw); diffY = this.constrain(h, diffY, mh, mxh); y += diffY; h -= diffY; x += diffX; w -= diffX; break; case "southwest": diffX = this.constrain(w, diffX, mw, mxw); h += diffY; h = Math.min(Math.max(mh, h), mxh); x += diffX; w -= diffX; break; } var sw = this.snap(w, wi, mw); var sh = this.snap(h, hi, mh); if(sw != w || sh != h){ switch(pos){ case "northeast": y -= sh - h; break; case "north": y -= sh - h; break; case "southwest": x -= sw - w; break; case "west": x -= sw - w; break; case "northwest": x -= sw - w; y -= sh - h; break; } w = sw; h = sh; } if(this.preserveRatio){ switch(pos){ case "southeast": case "east": h = oh * (w/ow); h = Math.min(Math.max(mh, h), mxh); w = ow * (h/oh); break; case "south": w = ow * (h/oh); w = Math.min(Math.max(mw, w), mxw); h = oh * (w/ow); break; case "northeast": w = ow * (h/oh); w = Math.min(Math.max(mw, w), mxw); h = oh * (w/ow); break; case "north": var tw = w; w = ow * (h/oh); w = Math.min(Math.max(mw, w), mxw); h = oh * (w/ow); x += (tw - w) / 2; break; case "southwest": h = oh * (w/ow); h = Math.min(Math.max(mh, h), mxh); var tw = w; w = ow * (h/oh); x += tw - w; break; case "west": var th = h; h = oh * (w/ow); h = Math.min(Math.max(mh, h), mxh); y += (th - h) / 2; var tw = w; w = ow * (h/oh); x += tw - w; break; case "northwest": var tw = w; var th = h; h = oh * (w/ow); h = Math.min(Math.max(mh, h), mxh); w = ow * (h/oh); y += th - h; x += tw - w; break; } } this.proxy.setBounds(x, y, w, h); if(this.dynamic){ this.resizeElement(); } }catch(e){} } }, // private handleOver : function(){ if(this.enabled){ this.el.addClass("x-resizable-over"); } }, // private handleOut : function(){ if(!this.resizing){ this.el.removeClass("x-resizable-over"); } }, /** * Returns the element this component is bound to. * @return {Ext.Element} */ getEl : function(){ return this.el; }, /** * Returns the resizeChild element (or null). * @return {Ext.Element} */ getResizeChild : function(){ return this.resizeChild; }, /** * Destroys this resizable. If the element was wrapped and * removeEl is not true then the element remains. * @param {Boolean} removeEl (optional) true to remove the element from the DOM */ destroy : function(removeEl){ this.proxy.remove(); this.overlay.removeAllListeners(); this.overlay.remove(); var ps = Ext.Resizable.positions; for(var k in ps){ if(typeof ps[k] != "function" && this[ps[k]]){ var h = this[ps[k]]; h.el.removeAllListeners(); h.el.remove(); } } if(removeEl){ this.el.update(""); this.el.remove(); } } }); // private // hash to map config positions to true positions Ext.Resizable.positions = { n: "north", s: "south", e: "east", w: "west", se: "southeast", sw: "southwest", nw: "northwest", ne: "northeast" }; // private Ext.Resizable.Handle = function(rz, pos, disableTrackOver, transparent){ if(!this.tpl){ // only initialize the template if resizable is used var tpl = Ext.DomHelper.createTemplate( {tag: "div", cls: "x-resizable-handle x-resizable-handle-{0}"} ); tpl.compile(); Ext.Resizable.Handle.prototype.tpl = tpl; } this.position = pos; this.rz = rz; this.el = this.tpl.append(rz.el.dom, [this.position], true); this.el.unselectable(); if(transparent){ this.el.setOpacity(0); } this.el.on("mousedown", this.onMouseDown, this); if(!disableTrackOver){ this.el.on("mouseover", this.onMouseOver, this); this.el.on("mouseout", this.onMouseOut, this); } }; // private Ext.Resizable.Handle.prototype = { afterResize : function(rz){ // do nothing }, // private onMouseDown : function(e){ this.rz.onMouseDown(this, e); }, // private onMouseOver : function(e){ this.rz.handleOver(this, e); }, // private onMouseOut : function(e){ this.rz.handleOut(this, e); } }; \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/Shadow.js b/www/extras/extjs/source/widgets/Shadow.js deleted file mode 100644 index 601008149..000000000 --- a/www/extras/extjs/source/widgets/Shadow.js +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.Shadow - * Simple class that can provide a shadow effect for any element. Note that the element MUST be absolutely positioned, - * and the shadow does not provide any shimming. This should be used only in simple cases -- for more advanced - * functionality that can also provide the same shadow effect, see the {@link Ext.Layer} class. - * @constructor - * Create a new Shadow - * @param {Object} config The config object - */ -Ext.Shadow = function(config){ - Ext.apply(this, config); - if(typeof this.mode != "string"){ - this.mode = this.defaultMode; - } - var o = this.offset, a = {h: 0}; - switch(this.mode.toLowerCase()){ - case "drop": - a.w = 0; - a.l = a.t = o; - break; - case "sides": - a.w = (o*2); - a.l = -o; - a.t = o; - break; - case "frame": - a.w = a.h = (o*2); - a.l = a.t = -o; - break; - }; - this.adjusts = a; -}; - -Ext.Shadow.prototype = { - /** - * @cfg {String} mode - * The shadow display mode. Supports the following options: - *
        -Option   Description
        --------  ----------------------------------------------
        -sides    Shadow displays on both sides and bottom only
        -frame    Shadow displays equally on all four sides
        -drop     Traditional bottom-right drop shadow
        -
        - */ - /** - * @cfg {String} offset - * The number of pixels to offset the shadow from the element (defaults to 4) - */ - offset: 4, - - // private - defaultMode: "drop", - - /** - * Displays the shadow under the target element - * @param {String/HTMLElement/Element} targetEl The id or element under which the shadow should display - */ - show : function(target){ - target = Ext.get(target); - if(!this.el){ - this.el = Ext.Shadow.Pool.pull(); - if(this.el.dom.nextSibling != target.dom){ - this.el.insertBefore(target); - } - } - this.el.setStyle("z-index", this.zIndex || parseInt(target.getStyle("z-index"), 10)-1); - if(Ext.isIE){ - this.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius="+this.offset+")"; - } - this.realign( - target.getLeft(true), - target.getTop(true), - target.getWidth(), - target.getHeight() - ); - this.el.dom.style.display = "block"; - }, - - /** - * Returns true if the shadow is visible, else false - */ - isVisible : function(){ - return this.el ? true : false; - }, - - /** - * Direct alignment when values are already available. Show must be called at least once before - * calling this method to ensure it is initialized. - * @param {Number} left The target element left position - * @param {Number} top The target element top position - * @param {Number} width The target element width - * @param {Number} height The target element height - */ - realign : function(l, t, w, h){ - if(!this.el){ - return; - } - var a = this.adjusts, d = this.el.dom, s = d.style; - var iea = 0; - if(Ext.isIE){ - iea = -(this.offset); - } - s.left = (l+a.l+iea)+"px"; - s.top = (t+a.t+iea)+"px"; - var sw = (w+a.w), sh = (h+a.h), sws = sw +"px", shs = sh + "px"; - if(s.width != sws || s.height != shs){ - s.width = sws; - s.height = shs; - if(!Ext.isIE){ - var cn = d.childNodes; - var sww = Math.max(0, (sw-12))+"px"; - cn[0].childNodes[1].style.width = sww; - cn[1].childNodes[1].style.width = sww; - cn[2].childNodes[1].style.width = sww; - cn[1].style.height = Math.max(0, (sh-12))+"px"; - } - } - }, - - /** - * Hides this shadow - */ - hide : function(){ - if(this.el){ - this.el.dom.style.display = "none"; - Ext.Shadow.Pool.push(this.el); - delete this.el; - } - }, - - /** - * Adjust the z-index of this shadow - * @param {Number} zindex The new z-index - */ - setZIndex : function(z){ - this.zIndex = z; - if(this.el){ - this.el.setStyle("z-index", z); - } - } -}; - -// Private utility class that manages the internal Shadow cache -Ext.Shadow.Pool = function(){ - var p = []; - var markup = Ext.isIE ? - '
        ' : - '
        '; - return { - pull : function(){ - var sh = p.shift(); - if(!sh){ - sh = Ext.get(Ext.DomHelper.insertHtml("beforeBegin", document.body.firstChild, markup)); - sh.autoBoxAdjust = false; - } - return sh; - }, - - push : function(sh){ - p.push(sh); - } - }; -}(); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/SplitBar.js b/www/extras/extjs/source/widgets/SplitBar.js deleted file mode 100644 index 5a9477453..000000000 --- a/www/extras/extjs/source/widgets/SplitBar.js +++ /dev/null @@ -1,437 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.SplitBar - * @extends Ext.util.Observable - * Creates draggable splitter bar functionality from two elements. - *

        - * Usage: - *
        
        -var split = new Ext.SplitBar("elementToDrag", "elementToSize",
        -                   Ext.SplitBar.HORIZONTAL, Ext.SplitBar.LEFT);
        -split.setAdapter(new Ext.SplitBar.AbsoluteLayoutAdapter("container"));
        -split.minSize = 100;
        -split.maxSize = 600;
        -split.animate = true;
        -split.on('moved', splitterMoved);
        -
        - * @constructor - * Create a new SplitBar - * @param {String/HTMLElement/Element} dragElement The element to be dragged and act as the SplitBar. - * @param {String/HTMLElement/Element} resizingElement The element to be resized based on where the SplitBar element is dragged - * @param {Number} orientation (optional) Either Ext.SplitBar.HORIZONTAL or Ext.SplitBar.VERTICAL. (Defaults to HORIZONTAL) - * @param {Number} placement (optional) Either Ext.SplitBar.LEFT or Ext.SplitBar.RIGHT for horizontal or - Ext.SplitBar.TOP or Ext.SplitBar.BOTTOM for vertical. (By default, this is determined automatically by the intial position - position of the SplitBar). - */ -Ext.SplitBar = function(dragElement, resizingElement, orientation, placement, existingProxy){ - - /** @private */ - this.el = Ext.get(dragElement, true); - this.el.dom.unselectable = "on"; - /** @private */ - this.resizingEl = Ext.get(resizingElement, true); - - /** - * @private - * The orientation of the split. Either Ext.SplitBar.HORIZONTAL or Ext.SplitBar.VERTICAL. (Defaults to HORIZONTAL) - * Note: If this is changed after creating the SplitBar, the placement property must be manually updated - * @type Number - */ - this.orientation = orientation || Ext.SplitBar.HORIZONTAL; - - /** - * The minimum size of the resizing element. (Defaults to 0) - * @type Number - */ - this.minSize = 0; - - /** - * The maximum size of the resizing element. (Defaults to 2000) - * @type Number - */ - this.maxSize = 2000; - - /** - * Whether to animate the transition to the new size - * @type Boolean - */ - this.animate = false; - - /** - * Whether to create a transparent shim that overlays the page when dragging, enables dragging across iframes. - * @type Boolean - */ - this.useShim = false; - - /** @private */ - this.shim = null; - - if(!existingProxy){ - /** @private */ - this.proxy = Ext.SplitBar.createProxy(this.orientation); - }else{ - this.proxy = Ext.get(existingProxy).dom; - } - /** @private */ - this.dd = new Ext.dd.DDProxy(this.el.dom.id, "XSplitBars", {dragElId : this.proxy.id}); - - /** @private */ - this.dd.b4StartDrag = this.onStartProxyDrag.createDelegate(this); - - /** @private */ - this.dd.endDrag = this.onEndProxyDrag.createDelegate(this); - - /** @private */ - this.dragSpecs = {}; - - /** - * @private The adapter to use to positon and resize elements - */ - this.adapter = new Ext.SplitBar.BasicLayoutAdapter(); - this.adapter.init(this); - - if(this.orientation == Ext.SplitBar.HORIZONTAL){ - /** @private */ - this.placement = placement || (this.el.getX() > this.resizingEl.getX() ? Ext.SplitBar.LEFT : Ext.SplitBar.RIGHT); - this.el.addClass("x-splitbar-h"); - }else{ - /** @private */ - this.placement = placement || (this.el.getY() > this.resizingEl.getY() ? Ext.SplitBar.TOP : Ext.SplitBar.BOTTOM); - this.el.addClass("x-splitbar-v"); - } - - this.addEvents({ - /** - * @event resize - * Fires when the splitter is moved (alias for moved) - * @param {Ext.SplitBar} this - * @param {Number} newSize the new width or height - */ - "resize" : true, - /** - * @event moved - * Fires when the splitter is moved - * @param {Ext.SplitBar} this - * @param {Number} newSize the new width or height - */ - "moved" : true, - /** - * @event beforeresize - * Fires before the splitter is dragged - * @param {Ext.SplitBar} this - */ - "beforeresize" : true, - - "beforeapply" : true - }); - - Ext.SplitBar.superclass.constructor.call(this); -}; - -Ext.extend(Ext.SplitBar, Ext.util.Observable, { - onStartProxyDrag : function(x, y){ - this.fireEvent("beforeresize", this); - if(!this.overlay){ - var o = Ext.DomHelper.insertFirst(document.body, {cls: "x-drag-overlay", html: " "}, true); - o.unselectable(); - o.enableDisplayMode("block"); - // all splitbars share the same overlay - Ext.SplitBar.prototype.overlay = o; - } - this.overlay.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); - this.overlay.show(); - Ext.get(this.proxy).setDisplayed("block"); - var size = this.adapter.getElementSize(this); - this.activeMinSize = this.getMinimumSize();; - this.activeMaxSize = this.getMaximumSize();; - var c1 = size - this.activeMinSize; - var c2 = Math.max(this.activeMaxSize - size, 0); - if(this.orientation == Ext.SplitBar.HORIZONTAL){ - this.dd.resetConstraints(); - this.dd.setXConstraint( - this.placement == Ext.SplitBar.LEFT ? c1 : c2, - this.placement == Ext.SplitBar.LEFT ? c2 : c1 - ); - this.dd.setYConstraint(0, 0); - }else{ - this.dd.resetConstraints(); - this.dd.setXConstraint(0, 0); - this.dd.setYConstraint( - this.placement == Ext.SplitBar.TOP ? c1 : c2, - this.placement == Ext.SplitBar.TOP ? c2 : c1 - ); - } - this.dragSpecs.startSize = size; - this.dragSpecs.startPoint = [x, y]; - Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd, x, y); - }, - - /** - * @private Called after the drag operation by the DDProxy - */ - onEndProxyDrag : function(e){ - Ext.get(this.proxy).setDisplayed(false); - var endPoint = Ext.lib.Event.getXY(e); - if(this.overlay){ - this.overlay.hide(); - } - var newSize; - if(this.orientation == Ext.SplitBar.HORIZONTAL){ - newSize = this.dragSpecs.startSize + - (this.placement == Ext.SplitBar.LEFT ? - endPoint[0] - this.dragSpecs.startPoint[0] : - this.dragSpecs.startPoint[0] - endPoint[0] - ); - }else{ - newSize = this.dragSpecs.startSize + - (this.placement == Ext.SplitBar.TOP ? - endPoint[1] - this.dragSpecs.startPoint[1] : - this.dragSpecs.startPoint[1] - endPoint[1] - ); - } - newSize = Math.min(Math.max(newSize, this.activeMinSize), this.activeMaxSize); - if(newSize != this.dragSpecs.startSize){ - if(this.fireEvent('beforeapply', this, newSize) !== false){ - this.adapter.setElementSize(this, newSize); - this.fireEvent("moved", this, newSize); - this.fireEvent("resize", this, newSize); - } - } - }, - - /** - * Get the adapter this SplitBar uses - * @return The adapter object - */ - getAdapter : function(){ - return this.adapter; - }, - - /** - * Set the adapter this SplitBar uses - * @param {Object} adapter A SplitBar adapter object - */ - setAdapter : function(adapter){ - this.adapter = adapter; - this.adapter.init(this); - }, - - /** - * Gets the minimum size for the resizing element - * @return {Number} The minimum size - */ - getMinimumSize : function(){ - return this.minSize; - }, - - /** - * Sets the minimum size for the resizing element - * @param {Number} minSize The minimum size - */ - setMinimumSize : function(minSize){ - this.minSize = minSize; - }, - - /** - * Gets the maximum size for the resizing element - * @return {Number} The maximum size - */ - getMaximumSize : function(){ - return this.maxSize; - }, - - /** - * Sets the maximum size for the resizing element - * @param {Number} maxSize The maximum size - */ - setMaximumSize : function(maxSize){ - this.maxSize = maxSize; - }, - - /** - * Sets the initialize size for the resizing element - * @param {Number} size The initial size - */ - setCurrentSize : function(size){ - var oldAnimate = this.animate; - this.animate = false; - this.adapter.setElementSize(this, size); - this.animate = oldAnimate; - }, - - /** - * Destroy this splitbar. - * @param {Boolean} removeEl True to remove the element - */ - destroy : function(removeEl){ - if(this.shim){ - this.shim.remove(); - } - this.dd.unreg(); - this.proxy.parentNode.removeChild(this.proxy); - if(removeEl){ - this.el.remove(); - } - } -}); - -/** - * @private static Create our own proxy element element. So it will be the same same size on all browsers, we won't use borders. Instead we use a background color. - */ -Ext.SplitBar.createProxy = function(dir){ - var proxy = new Ext.Element(document.createElement("div")); - proxy.unselectable(); - var cls = 'x-splitbar-proxy'; - proxy.addClass(cls + ' ' + (dir == Ext.SplitBar.HORIZONTAL ? cls +'-h' : cls + '-v')); - document.body.appendChild(proxy.dom); - return proxy.dom; -}; - -/** - * @class Ext.SplitBar.BasicLayoutAdapter - * Default Adapter. It assumes the splitter and resizing element are not positioned - * elements and only gets/sets the width of the element. Generally used for table based layouts. - */ -Ext.SplitBar.BasicLayoutAdapter = function(){ -}; - -Ext.SplitBar.BasicLayoutAdapter.prototype = { - // do nothing for now - init : function(s){ - - }, - /** - * Called before drag operations to get the current size of the resizing element. - * @param {Ext.SplitBar} s The SplitBar using this adapter - */ - getElementSize : function(s){ - if(s.orientation == Ext.SplitBar.HORIZONTAL){ - return s.resizingEl.getWidth(); - }else{ - return s.resizingEl.getHeight(); - } - }, - - /** - * Called after drag operations to set the size of the resizing element. - * @param {Ext.SplitBar} s The SplitBar using this adapter - * @param {Number} newSize The new size to set - * @param {Function} onComplete A function to be invoke when resizing is complete - */ - setElementSize : function(s, newSize, onComplete){ - if(s.orientation == Ext.SplitBar.HORIZONTAL){ - if(!s.animate){ - s.resizingEl.setWidth(newSize); - if(onComplete){ - onComplete(s, newSize); - } - }else{ - s.resizingEl.setWidth(newSize, true, .1, onComplete, 'easeOut'); - } - }else{ - - if(!s.animate){ - s.resizingEl.setHeight(newSize); - if(onComplete){ - onComplete(s, newSize); - } - }else{ - s.resizingEl.setHeight(newSize, true, .1, onComplete, 'easeOut'); - } - } - } -}; - -/** - *@class Ext.SplitBar.AbsoluteLayoutAdapter - * @extends Ext.SplitBar.BasicLayoutAdapter - * Adapter that moves the splitter element to align with the resized sizing element. - * Used with an absolute positioned SplitBar. - * @param {String/HTMLElement/Element} container The container that wraps around the absolute positioned content. If it's - * document.body, make sure you assign an id to the body element. - */ -Ext.SplitBar.AbsoluteLayoutAdapter = function(container){ - this.basic = new Ext.SplitBar.BasicLayoutAdapter(); - this.container = Ext.get(container); -}; - -Ext.SplitBar.AbsoluteLayoutAdapter.prototype = { - init : function(s){ - this.basic.init(s); - }, - - getElementSize : function(s){ - return this.basic.getElementSize(s); - }, - - setElementSize : function(s, newSize, onComplete){ - this.basic.setElementSize(s, newSize, this.moveSplitter.createDelegate(this, [s])); - }, - - moveSplitter : function(s){ - var yes = Ext.SplitBar; - switch(s.placement){ - case yes.LEFT: - s.el.setX(s.resizingEl.getRight()); - break; - case yes.RIGHT: - s.el.setStyle("right", (this.container.getWidth() - s.resizingEl.getLeft()) + "px"); - break; - case yes.TOP: - s.el.setY(s.resizingEl.getBottom()); - break; - case yes.BOTTOM: - s.el.setY(s.resizingEl.getTop() - s.el.getHeight()); - break; - } - } -}; - -/** - * Orientation constant - Create a vertical SplitBar - * @static - * @type Number - */ -Ext.SplitBar.VERTICAL = 1; - -/** - * Orientation constant - Create a horizontal SplitBar - * @static - * @type Number - */ -Ext.SplitBar.HORIZONTAL = 2; - -/** - * Placement constant - The resizing element is to the left of the splitter element - * @static - * @type Number - */ -Ext.SplitBar.LEFT = 1; - -/** - * Placement constant - The resizing element is to the right of the splitter element - * @static - * @type Number - */ -Ext.SplitBar.RIGHT = 2; - -/** - * Placement constant - The resizing element is positioned above the splitter element - * @static - * @type Number - */ -Ext.SplitBar.TOP = 3; - -/** - * Placement constant - The resizing element is positioned under splitter element - * @static - * @type Number - */ -Ext.SplitBar.BOTTOM = 4; diff --git a/www/extras/extjs/source/widgets/TabPanel.js b/www/extras/extjs/source/widgets/TabPanel.js deleted file mode 100644 index 8110195b9..000000000 --- a/www/extras/extjs/source/widgets/TabPanel.js +++ /dev/null @@ -1,751 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.TabPanel - * @extends Ext.util.Observable - * Creates a lightweight TabPanel component using Yahoo! UI. - *

        - * Usage: - *
        
        -    // basic tabs 1, built from existing content
        -    var tabs = new Ext.TabPanel("tabs1");
        -    tabs.addTab("script", "View Script");
        -    tabs.addTab("markup", "View Markup");
        -    tabs.activate("script");
        -    
        -    // more advanced tabs, built from javascript
        -    var jtabs = new Ext.TabPanel("jtabs");
        -    jtabs.addTab("jtabs-1", "Normal Tab", "My content was added during construction.");
        -    
        -    // set up the UpdateManager
        -    var tab2 = jtabs.addTab("jtabs-2", "Ajax Tab 1");
        -    var updater = tab2.getUpdateManager();
        -    updater.setDefaultUrl("ajax1.htm");
        -    tab2.on('activate', updater.refresh, updater, true);
        -
        -    // Use setUrl for Ajax loading
        -    var tab3 = jtabs.addTab("jtabs-3", "Ajax Tab 2");
        -    tab3.setUrl("ajax2.htm", null, true);
        -    
        -    // Disabled tab
        -    var tab4 = jtabs.addTab("tabs1-5", "Disabled Tab", "Can"t see me cause I"m disabled");
        -    tab4.disable();
        -    
        -    jtabs.activate("jtabs-1");
        -}
        - * 
        - * @constructor - * Create new TabPanel. - * @param {String/HTMLElement/Element} container The id, DOM element or Ext.Element container where this TabPanel is to be rendered. - * @param {Boolean} config Config object to set any properties for this TabPanel or true to render the tabs on the bottom. - */ -Ext.TabPanel = function(container, config){ - /** - * The container element for this TabPanel. - * @type Ext.Element - */ - this.el = Ext.get(container, true); - if(config){ - if(typeof config == "boolean"){ - this.tabPosition = config ? "bottom" : "top"; - }else{ - Ext.apply(this, config); - } - } - if(this.tabPosition == "bottom"){ - this.bodyEl = Ext.get(this.createBody(this.el.dom)); - this.el.addClass("x-tabs-bottom"); - } - this.stripWrap = Ext.get(this.createStrip(this.el.dom), true); - this.stripEl = Ext.get(this.createStripList(this.stripWrap.dom), true); - this.stripBody = Ext.get(this.stripWrap.dom.firstChild.firstChild, true); - if(Ext.isIE){ - Ext.fly(this.stripWrap.dom.firstChild).setStyle("overflow-x", "hidden"); - } - if(this.tabPosition != "bottom"){ - /** The body element that contains TabPaneItem bodies. - * @type Ext.Element - */ - this.bodyEl = Ext.get(this.createBody(this.el.dom)); - this.el.addClass("x-tabs-top"); - } - this.items = []; - - this.bodyEl.setStyle("position", "relative"); - - this.active = null; - this.activateDelegate = this.activate.createDelegate(this); - - this.addEvents({ - /** - * @event tabchange - * Fires when the active tab changes - * @param {Ext.TabPanel} this - * @param {Ext.TabPanelItem} activePanel The new active tab - */ - "tabchange": true, - /** - * @event beforetabchange - * Fires before the active tab changes, set cancel to true on the "e" parameter to cancel the change - * @param {Ext.TabPanel} this - * @param {Object} e Set cancel to true on this object to cancel the tab change - * @param {Ext.TabPanelItem} tab The tab being changed to - */ - "beforetabchange" : true - }); - - Ext.EventManager.onWindowResize(this.onResize, this); - this.cpad = this.el.getPadding("lr"); - this.hiddenCount = 0; - - Ext.TabPanel.superclass.constructor.call(this); -}; - -Ext.extend(Ext.TabPanel, Ext.util.Observable, { - /** The position of the tabs. Can be "top" or "bottom" @type String */ - tabPosition : "top", - currentTabWidth : 0, - /** The minimum width of a tab (ignored if resizeTabs is not true). @type Number */ - minTabWidth : 40, - /** The maximum width of a tab (ignored if resizeTabs is not true). @type Number */ - maxTabWidth : 250, - /** The preferred (default) width of a tab (ignored if resizeTabs is not true). @type Number */ - preferredTabWidth : 175, - /** Set this to true to enable dynamic tab resizing. @type Boolean */ - resizeTabs : false, - /** Set this to true to turn on window resizing monitoring (ignored if resizeTabs is not true). @type Boolean */ - monitorResize : true, - - /** - * Creates a new TabPanelItem by looking for an existing element with the provided id - if it's not found it creates one. - * @param {String} id The id of the div to use or create - * @param {String} text The text for the tab - * @param {String} content (optional) Content to put in the TabPanelItem body - * @param {Boolean} closable (optional) True to create a close icon on the tab - * @return {Ext.TabPanelItem} The created TabPanelItem - */ - addTab : function(id, text, content, closable){ - var item = new Ext.TabPanelItem(this, id, text, closable); - this.addTabItem(item); - if(content){ - item.setContent(content); - } - return item; - }, - - /** - * Returns the TabPanelItem with the specified id/index - * @param {String/Number} id The id or index of the TabPanelItem to fetch. - * @return {Ext.TabPanelItem} - */ - getTab : function(id){ - return this.items[id]; - }, - - /** - * Hides the TabPanelItem with the specified id/index - * @param {String/Number} id The id or index of the TabPanelItem to hide. - */ - hideTab : function(id){ - var t = this.items[id]; - if(!t.isHidden()){ - t.setHidden(true); - this.hiddenCount++; - this.autoSizeTabs(); - } - }, - - /** - * "Unhides" the TabPanelItem with the specified id/index - * @param {String/Number} id The id or index of the TabPanelItem to unhide. - */ - unhideTab : function(id){ - var t = this.items[id]; - if(t.isHidden()){ - t.setHidden(false); - this.hiddenCount--; - this.autoSizeTabs(); - } - }, - - /** - * Add an existing TabPanelItem. - * @param {Ext.TabPanelItem} item The TabPanelItem to add - */ - addTabItem : function(item){ - this.items[item.id] = item; - this.items.push(item); - if(this.resizeTabs){ - item.setWidth(this.currentTabWidth || this.preferredTabWidth); - this.autoSizeTabs(); - }else{ - item.autoSize(); - } - }, - - /** - * Remove a TabPanelItem. - * @param {String/Number} id The id or index of the TabPanelItem to remove. - */ - removeTab : function(id){ - var items = this.items; - var tab = items[id]; - if(!tab) return; - var index = items.indexOf(tab); - if(this.active == tab && items.length > 1){ - var newTab = this.getNextAvailable(index); - if(newTab)newTab.activate(); - } - this.stripEl.dom.removeChild(tab.pnode.dom); - if(tab.bodyEl.dom.parentNode == this.bodyEl.dom){ // if it was moved already prevent error - this.bodyEl.dom.removeChild(tab.bodyEl.dom); - } - items.splice(index, 1); - delete this.items[tab.id]; - tab.fireEvent("close", tab); - tab.purgeListeners(); - this.autoSizeTabs(); - }, - - getNextAvailable : function(start){ - var items = this.items; - var index = start; - // look for a next tab that will slide over to - // replace the one being removed - while(index < items.length){ - var item = items[++index]; - if(item && !item.isHidden()){ - return item; - } - } - // if one isn't found select the previous tab (on the left) - index = start; - while(index >= 0){ - var item = items[--index]; - if(item && !item.isHidden()){ - return item; - } - } - return null; - }, - - /** - * Disable a TabPanelItem. It cannot be the active tab, if it is this call is ignored.. - * @param {String/Number} id The id or index of the TabPanelItem to disable. - */ - disableTab : function(id){ - var tab = this.items[id]; - if(tab && this.active != tab){ - tab.disable(); - } - }, - - /** - * Enable a TabPanelItem that is disabled. - * @param {String/Number} id The id or index of the TabPanelItem to enable. - */ - enableTab : function(id){ - var tab = this.items[id]; - tab.enable(); - }, - - /** - * Activate a TabPanelItem. The currently active will be deactivated. - * @param {String/Number} id The id or index of the TabPanelItem to activate. - */ - activate : function(id){ - var tab = this.items[id]; - if(!tab){ - return null; - } - if(tab == this.active){ - return tab; - } - var e = {}; - this.fireEvent("beforetabchange", this, e, tab); - if(e.cancel !== true && !tab.disabled){ - if(this.active){ - this.active.hide(); - } - this.active = this.items[id]; - this.active.show(); - this.fireEvent("tabchange", this, this.active); - } - return tab; - }, - - /** - * Get the active TabPanelItem - * @return {Ext.TabPanelItem} The active TabPanelItem or null if none are active. - */ - getActiveTab : function(){ - return this.active; - }, - - /** - * Updates the tab body element to fit the height of the container element - * for overflow scrolling - * @param {Number} targetHeight (optional) Override the starting height from the elements height - */ - syncHeight : function(targetHeight){ - var height = (targetHeight || this.el.getHeight())-this.el.getBorderWidth("tb")-this.el.getPadding("tb"); - var bm = this.bodyEl.getMargins(); - var newHeight = height-(this.stripWrap.getHeight()||0)-(bm.top+bm.bottom); - this.bodyEl.setHeight(newHeight); - return newHeight; - }, - - onResize : function(){ - if(this.monitorResize){ - this.autoSizeTabs(); - } - }, - - /** - * Disables tab resizing while tabs are being added (if resizeTabs is false this does nothing) - */ - beginUpdate : function(){ - this.updating = true; - }, - - /** - * Stops an update and resizes the tabs (if resizeTabs is false this does nothing) - */ - endUpdate : function(){ - this.updating = false; - this.autoSizeTabs(); - }, - - /** - * Manual call to resize the tabs (if resizeTabs is false this does nothing) - */ - autoSizeTabs : function(){ - var count = this.items.length; - var vcount = count - this.hiddenCount; - if(!this.resizeTabs || count < 1 || vcount < 1 || this.updating) return; - var w = Math.max(this.el.getWidth() - this.cpad, 10); - var availWidth = Math.floor(w / vcount); - var b = this.stripBody; - if(b.getWidth() > w){ - var tabs = this.items; - this.setTabWidth(Math.max(availWidth, this.minTabWidth)-2); - if(availWidth < this.minTabWidth){ - /*if(!this.sleft){ // incomplete scrolling code - this.createScrollButtons(); - } - this.showScroll(); - this.stripClip.setWidth(w - (this.sleft.getWidth()+this.sright.getWidth()));*/ - } - }else{ - if(this.currentTabWidth < this.preferredTabWidth){ - this.setTabWidth(Math.min(availWidth, this.preferredTabWidth)-2); - } - } - }, - - /** - * Returns the number of tabs - * @return {Number} - */ - getCount : function(){ - return this.items.length; - }, - - /** - * Resizes all the tabs to the passed width - * @param {Number} The new width - */ - setTabWidth : function(width){ - this.currentTabWidth = width; - for(var i = 0, len = this.items.length; i < len; i++) { - if(!this.items[i].isHidden())this.items[i].setWidth(width); - } - }, - - /** - * Destroys this TabPanel - * @param {Boolean} removeEl (optional) True to remove the element from the DOM as well - */ - destroy : function(removeEl){ - Ext.EventManager.removeResizeListener(this.onResize, this); - for(var i = 0, len = this.items.length; i < len; i++){ - this.items[i].purgeListeners(); - } - if(removeEl === true){ - this.el.update(""); - this.el.remove(); - } - } -}); - -/** -* @class Ext.TabPanelItem -* @extends Ext.util.Observable -*/ -Ext.TabPanelItem = function(tabPanel, id, text, closable){ - /** - * The TabPanel this TabPanelItem belongs to - * @type Ext.TabPanel - */ - this.tabPanel = tabPanel; - /** - * The id for this TabPanelItem - * @type String - */ - this.id = id; - /** @private */ - this.disabled = false; - /** @private */ - this.text = text; - /** @private */ - this.loaded = false; - this.closable = closable; - - /** - * The body element for this TabPanelItem - * @type Ext.Element - */ - this.bodyEl = Ext.get(tabPanel.createItemBody(tabPanel.bodyEl.dom, id)); - this.bodyEl.setVisibilityMode(Ext.Element.VISIBILITY); - this.bodyEl.setStyle("display", "block"); - this.bodyEl.setStyle("zoom", "1"); - this.hideAction(); - - var els = tabPanel.createStripElements(tabPanel.stripEl.dom, text, closable); - /** @private */ - this.el = Ext.get(els.el, true); - this.inner = Ext.get(els.inner, true); - this.textEl = Ext.get(this.el.dom.firstChild.firstChild.firstChild, true); - this.pnode = Ext.get(els.el.parentNode, true); - this.el.on("mousedown", this.onTabMouseDown, this); - this.el.on("click", this.onTabClick, this); - /** @private */ - if(closable){ - var c = Ext.get(els.close, true); - c.dom.title = this.closeText; - c.addClassOnOver("close-over"); - c.on("click", this.closeClick, this); - } - - this.addEvents({ - /** - * @event activate - * Fires when this tab becomes the active tab - * @param {Ext.TabPanel} tabPanel - * @param {Ext.TabPanelItem} this - */ - "activate": true, - /** - * @event beforeclose - * Fires before this tab is closed. To cancal the close, set cancel to true on e. (e.cancel = true) - * @param {Ext.TabPanelItem} this - * @param {Object} e Set cancel to true on this object to cancel the close. - */ - "beforeclose": true, - /** - * @event close - * Fires when this tab is closed - * @param {Ext.TabPanelItem} this - */ - "close": true, - /** - * @event deactivate - * Fires when this tab is no longer the active tab - * @param {Ext.TabPanel} tabPanel - * @param {Ext.TabPanelItem} this - */ - "deactivate" : true - }); - this.hidden = false; - - Ext.TabPanelItem.superclass.constructor.call(this); -}; - -Ext.extend(Ext.TabPanelItem, Ext.util.Observable, { - purgeListeners : function(){ - Ext.util.Observable.prototype.purgeListeners.call(this); - this.el.removeAllListeners(); - }, - /** - * Show this TabPanelItem - this does not deactivate the currently active TabPanelItem. - */ - show : function(){ - this.pnode.addClass("on"); - this.showAction(); - if(Ext.isOpera){ - this.tabPanel.stripWrap.repaint(); - } - this.fireEvent("activate", this.tabPanel, this); - }, - - /** - * Returns true if this tab is the active tab - * @return {Boolean} - */ - isActive : function(){ - return this.tabPanel.getActiveTab() == this; - }, - - /** - * Hide this TabPanelItem - if you don't activate another TabPanelItem this could look odd. - */ - hide : function(){ - this.pnode.removeClass("on"); - this.hideAction(); - this.fireEvent("deactivate", this.tabPanel, this); - }, - - hideAction : function(){ - this.bodyEl.hide(); - this.bodyEl.setStyle("position", "absolute"); - this.bodyEl.setLeft("-20000px"); - this.bodyEl.setTop("-20000px"); - }, - - showAction : function(){ - this.bodyEl.setStyle("position", "relative"); - this.bodyEl.setTop(""); - this.bodyEl.setLeft(""); - this.bodyEl.show(); - }, - - /** - * Set the tooltip for the tab - * @param {String} tooltip - */ - setTooltip : function(text){ - if(Ext.QuickTips && Ext.QuickTips.isEnabled()){ - this.textEl.dom.qtip = text; - this.textEl.dom.removeAttribute('title'); - }else{ - this.textEl.dom.title = text; - } - }, - - onTabClick : function(e){ - e.preventDefault(); - this.tabPanel.activate(this.id); - }, - - onTabMouseDown : function(e){ - e.preventDefault(); - this.tabPanel.activate(this.id); - }, - - getWidth : function(){ - return this.inner.getWidth(); - }, - - setWidth : function(width){ - var iwidth = width - this.pnode.getPadding("lr"); - this.inner.setWidth(iwidth); - this.textEl.setWidth(iwidth-this.inner.getPadding("lr")); - this.pnode.setWidth(width); - }, - - setHidden : function(hidden){ - this.hidden = hidden; - this.pnode.setStyle("display", hidden ? "none" : ""); - }, - - /** - * Returns true if this tab is "hidden" - * @return {Boolean} - */ - isHidden : function(){ - return this.hidden; - }, - - /** - * Returns the text for this tab - * @return {String} - */ - getText : function(){ - return this.text; - }, - - autoSize : function(){ - //this.el.beginMeasure(); - this.textEl.setWidth(1); - this.setWidth(this.textEl.dom.scrollWidth+this.pnode.getPadding("lr")+this.inner.getPadding("lr")); - //this.el.endMeasure(); - }, - - /** - * Sets the text for the tab (Note: this also sets the tooltip) - * @param {String} text - */ - setText : function(text){ - this.text = text; - this.textEl.update(text); - this.setTooltip(text); - if(!this.tabPanel.resizeTabs){ - this.autoSize(); - } - }, - /** - * Activate this TabPanelItem - this does deactivate the currently active TabPanelItem. - */ - activate : function(){ - this.tabPanel.activate(this.id); - }, - - /** - * Disable this TabPanelItem - this call is ignore if this is the active TabPanelItem. - */ - disable : function(){ - if(this.tabPanel.active != this){ - this.disabled = true; - this.pnode.addClass("disabled"); - } - }, - - /** - * Enable this TabPanelItem if it was previously disabled. - */ - enable : function(){ - this.disabled = false; - this.pnode.removeClass("disabled"); - }, - - /** - * Set the content for this TabPanelItem. - * @param {String} content The content - * @param {Boolean} loadScripts true to look for and load scripts - */ - setContent : function(content, loadScripts){ - this.bodyEl.update(content, loadScripts); - }, - - /** - * Get the {@link Ext.UpdateManager} for the body of this TabPanelItem. Enables you to perform Ajax updates. - * @return {Ext.UpdateManager} The UpdateManager - */ - getUpdateManager : function(){ - return this.bodyEl.getUpdateManager(); - }, - - /** - * Set a URL to be used to load the content for this TabPanelItem. - * @param {String/Function} url The url to load the content from or a function to call to get the url - * @param {String/Object} params (optional) The string params for the update call or an object of the params. See {@link Ext.UpdateManager#update} for more details. (Defaults to null) - * @param {Boolean} loadOnce (optional) Whether to only load the content once. If this is false it makes the Ajax call every time this TabPanelItem is activated. (Defaults to false) - * @return {Ext.UpdateManager} The UpdateManager - */ - setUrl : function(url, params, loadOnce){ - if(this.refreshDelegate){ - this.un('activate', this.refreshDelegate); - } - this.refreshDelegate = this._handleRefresh.createDelegate(this, [url, params, loadOnce]); - this.on("activate", this.refreshDelegate); - return this.bodyEl.getUpdateManager(); - }, - - /** @private */ - _handleRefresh : function(url, params, loadOnce){ - if(!loadOnce || !this.loaded){ - var updater = this.bodyEl.getUpdateManager(); - updater.update(url, params, this._setLoaded.createDelegate(this)); - } - }, - - /** - * Force a content refresh from the URL specified in the setUrl() method. - * Will fail silently if the setUrl method has not been called. - * This does not activate the panel, just updates its content. - */ - refresh : function(){ - if(this.refreshDelegate){ - this.loaded = false; - this.refreshDelegate(); - } - }, - - /** @private */ - _setLoaded : function(){ - this.loaded = true; - }, - - /** @private */ - closeClick : function(e){ - var o = {}; - e.stopEvent(); - this.fireEvent("beforeclose", this, o); - if(o.cancel !== true){ - this.tabPanel.removeTab(this.id); - } - }, - /** - * The text displayed in the tooltip for the close icon. - * @type String - */ - closeText : "Close this tab" -}); - -/** @private */ -Ext.TabPanel.prototype.createStrip = function(container){ - var strip = document.createElement("div"); - strip.className = "x-tabs-wrap"; - container.appendChild(strip); - return strip; -}; -/** @private */ -Ext.TabPanel.prototype.createStripList = function(strip){ - // div wrapper for retard IE - strip.innerHTML = '
        '; - return strip.firstChild.firstChild.firstChild.firstChild; -}; -/** @private */ -Ext.TabPanel.prototype.createBody = function(container){ - var body = document.createElement("div"); - Ext.id(body, "tab-body"); - Ext.fly(body).addClass("x-tabs-body"); - container.appendChild(body); - return body; -}; -/** @private */ -Ext.TabPanel.prototype.createItemBody = function(bodyEl, id){ - var body = Ext.getDom(id); - if(!body){ - body = document.createElement("div"); - body.id = id; - } - Ext.fly(body).addClass("x-tabs-item-body"); - bodyEl.insertBefore(body, bodyEl.firstChild); - return body; -}; -/** @private */ -Ext.TabPanel.prototype.createStripElements = function(stripEl, text, closable){ - var td = document.createElement("td"); - stripEl.appendChild(td); - if(closable){ - td.className = "x-tabs-closable"; - if(!this.closeTpl){ - this.closeTpl = new Ext.Template( - '' + - '{text}' + - '
         
        ' - ); - } - var el = this.closeTpl.overwrite(td, {"text": text}); - var close = el.getElementsByTagName("div")[0]; - var inner = el.getElementsByTagName("em")[0]; - return {"el": el, "close": close, "inner": inner}; - } else { - if(!this.tabTpl){ - this.tabTpl = new Ext.Template( - '' + - '{text}' - ); - } - var el = this.tabTpl.overwrite(td, {"text": text}); - var inner = el.getElementsByTagName("em")[0]; - return {"el": el, "inner": inner}; - } -}; \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/Toolbar.js b/www/extras/extjs/source/widgets/Toolbar.js deleted file mode 100644 index cd3909897..000000000 --- a/www/extras/extjs/source/widgets/Toolbar.js +++ /dev/null @@ -1,458 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.Toolbar - * Basic Toolbar class. - * @constructor - * Creates a new Toolbar - * @param {String/HTMLElement/Element} container The id or element that will contain the toolbar - * @param {Array} buttons (optional) array of button configs or elements to add - * @param {Object} config The config object - */ - Ext.Toolbar = function(container, buttons, config){ - if(container instanceof Array){ // omit the container for later rendering - buttons = container; - config = buttons; - container = null; - } - Ext.apply(this, config); - this.buttons = buttons; - if(container){ - this.render(container); - } -}; - -Ext.Toolbar.prototype = { - - render : function(ct){ - this.el = Ext.get(ct); - if(this.cls){ - this.el.addClass(this.cls); - } - // using a table allows for vertical alignment - this.el.update('
        '); - this.tr = this.el.child("tr", true); - var autoId = 0; - this.items = new Ext.util.MixedCollection(false, function(o){ - return o.id || ("item" + (++autoId)); - }); - if(this.buttons){ - this.add.apply(this, this.buttons); - delete this.buttons; - } - }, - - /** - * Adds element(s) to the toolbar - this function takes a variable number of - * arguments of mixed type and adds them to the toolbar. - * @param {Mixed} arg1 If arg is a Toolbar.Button, it is added. If arg is a string, it is wrapped - * in a ytb-text element and added unless the text is "separator" in which case a separator - * is added. Otherwise, it is assumed the element is an HTMLElement and it is added directly. - * @param {Mixed} arg2 - * @param {Mixed} etc - */ - add : function(){ - var a = arguments, l = a.length; - for(var i = 0; i < l; i++){ - var el = a[i]; - if(el.applyTo){ // some kind of form field - this.addField(el); - }else if(el.render){ // some kind of Toolbar.Item - this.addItem(el); - }else if(typeof el == "string"){ // string - if(el == "separator" || el == "-"){ - this.addSeparator(); - }else if(el == " "){ - this.addSpacer(); - }else{ - this.addText(el); - } - }else if(el.tagName){ // element - this.addElement(el); - }else if(typeof el == "object"){ // must be button config? - this.addButton(el); - } - } - }, - - /** - * Returns the element for this toolbar - * @return {Ext.Element} - */ - getEl : function(){ - return this.el; - }, - - /** - * Adds a separator - * @return {Ext.Toolbar.Item} The separator item - */ - addSeparator : function(){ - return this.addItem(new Ext.Toolbar.Separator()); - }, - - /** - * Adds a spacer element - * @return {Ext.Toolbar.Item} The spacer item - */ - addSpacer : function(){ - return this.addItem(new Ext.Toolbar.Spacer()); - }, - - /** - * Adds any standard HTML element to the toolbar - * @param {String/HTMLElement/Element} el The element or id of the element to add - * @return {Ext.Toolbar.Item} The element's item - */ - addElement : function(el){ - return this.addItem(new Ext.Toolbar.Item(el)); - }, - - /** - * Adds any Toolbar.Item or subclass - * @param {Toolbar.Item} item - * @return {Ext.Toolbar.Item} The item - */ - addItem : function(item){ - var td = this.nextBlock(); - item.render(td); - this.items.add(item); - return item; - }, - - /** - * Add a button (or buttons), see {@link Ext.Toolbar.Button} for more info on the config - * @param {Object/Array} config A button config or array of configs - * @return {Ext.Toolbar.Button/Array} - */ - addButton : function(config){ - if(config instanceof Array){ - var buttons = []; - for(var i = 0, len = config.length; i < len; i++) { - buttons.push(this.addButton(config[i])); - } - return buttons; - } - var b = config; - if(!(config instanceof Ext.Toolbar.Button)){ - b = new Ext.Toolbar.Button(config); - } - var td = this.nextBlock(); - b.render(td); - this.items.add(b); - return b; - }, - - /** - * Adds text to the toolbar - * @param {String} text The text to add - * @return {Ext.Toolbar.Item} The element's item - */ - addText : function(text){ - return this.addItem(new Ext.Toolbar.TextItem(text)); - }, - - /** - * Inserts any Toolbar.Item/Toolbar.Button at the specified index - * @param {Number} index The index where the item is to be inserted - * @param {Object/Toolbar.Item/Toolbar.Button (may be Array)} item The button, or button config object to be inserted. - * @return {Ext.Toolbar.Button/Item} - */ - insertButton : function(index, item){ - if(item instanceof Array){ - var buttons = []; - for(var i = 0, len = item.length; i < len; i++) { - buttons.push(this.insertButton(index + i, item[i])); - } - return buttons; - } - if (!(item instanceof Ext.Toolbar.Button)){ - item = new Ext.Toolbar.Button(item); - } - var td = document.createElement("td"); - this.tr.insertBefore(td, this.tr.childNodes[index]); - item.render(td); - this.items.insert(index, item); - return item; - }, - - /** - * Adds a new element to the toolbar from the passed DomHelper config - * @param {Object} config - * @return {Ext.Toolbar.Item} The element's item - */ - addDom : function(config, returnEl){ - var td = this.nextBlock(); - Ext.DomHelper.overwrite(td, config); - var ti = new Ext.Toolbar.Item(td.firstChild); - ti.render(td); - this.items.add(ti); - return ti; - }, - - /** - * Add a dynamically rendered Ext.form field (TextField, ComboBox, etc). Note: the field should not have - * been rendered yet. For a field that has already been rendered, use addElement. - * @param {Field} field - * @return {ToolbarItem} - */ - addField : function(field){ - var td = this.nextBlock(); - field.render(td); - var ti = new Ext.Toolbar.Item(td.firstChild); - ti.render(td); - this.items.add(ti); - return ti; - }, - - // private - nextBlock : function(){ - var td = document.createElement("td"); - this.tr.appendChild(td); - return td; - } -}; - -/** - * @class Ext.Toolbar.Item - * The base class that other classes should extend in order to get some basic common toolbar item functionality. - * @constructor - * Creates a new Item - * @param {HTMLElement} el - */ -Ext.Toolbar.Item = function(el){ - this.el = Ext.getDom(el); - this.id = Ext.id(this.el); - this.hidden = false; -}; - -Ext.Toolbar.Item.prototype = { - - /** - * Get this item's HTML Element - * @return {HTMLElement} - */ - getEl : function(){ - return this.el; - }, - - // private - render : function(td){ - this.td = td; - td.appendChild(this.el); - }, - - /** - * Remove and destroy this button - */ - destroy : function(){ - this.td.parentNode.removeChild(this.td); - }, - - /** - * Show this item - */ - show: function(){ - this.hidden = false; - this.td.style.display = ""; - }, - - /** - * Hide this item - */ - hide: function(){ - this.hidden = true; - this.td.style.display = "none"; - }, - - /** - * Convenience function for boolean show/hide - * @param {Boolean} visible true to show/false to hide - */ - setVisible: function(visible){ - if(visible) { - this.show(); - }else{ - this.hide(); - } - }, - - /** - * Try to focus this item - */ - focus : function(){ - Ext.fly(this.el).focus(); - }, - - /** - * Disable this item - */ - disable : function(){ - Ext.fly(this.td).addClass("x-item-disabled"); - this.disabled = true; - this.el.disabled = true; - }, - - /** - * Enable this item - */ - enable : function(){ - Ext.fly(this.td).removeClass("x-item-disabled"); - this.disabled = false; - this.el.disabled = false; - } -}; - - -/** - * @class Ext.Toolbar.Separator - * @extends Ext.Toolbar.Item - * A simple toolbar separator class - * @constructor - * Creates a new Separator - */ -Ext.Toolbar.Separator = function(){ - var s = document.createElement("span"); - s.className = "ytb-sep"; - Ext.Toolbar.Separator.superclass.constructor.call(this, s); -}; -Ext.extend(Ext.Toolbar.Separator, Ext.Toolbar.Item); - -/** - * @class Ext.Toolbar.Spacer - * @extends Ext.Toolbar.Item - * A simple element that adds extra horizontal space to a toolbar. - * @constructor - * Creates a new Spacer - */ -Ext.Toolbar.Spacer = function(){ - var s = document.createElement("div"); - s.className = "ytb-spacer"; - Ext.Toolbar.Separator.superclass.constructor.call(this, s); -}; -Ext.extend(Ext.Toolbar.Spacer, Ext.Toolbar.Item); - -/** - * @class Ext.Toolbar.TextItem - * @extends Ext.Toolbar.Item - * A simple class that renders text directly into a toolbar. - * @constructor - * Creates a new TextItem - * @param {String} text - */ -Ext.Toolbar.TextItem = function(text){ - var s = document.createElement("span"); - s.className = "ytb-text"; - s.innerHTML = text; - Ext.Toolbar.TextItem.superclass.constructor.call(this, s); -}; -Ext.extend(Ext.Toolbar.TextItem, Ext.Toolbar.Item); - -/** - * @class Ext.Toolbar.Button - * @extends Ext.Button - * A button that renders into a toolbar. - * @constructor - * Creates a new Button - * @param {Object} config A standard {@link Ext.Button} config object - */ -Ext.Toolbar.Button = function(config){ - Ext.Toolbar.Button.superclass.constructor.call(this, null, config); -}; -Ext.extend(Ext.Toolbar.Button, Ext.Button, { - render : function(td){ - this.td = td; - Ext.Toolbar.Button.superclass.render.call(this, td); - }, - - /** - * Remove and destroy this button - */ - destroy : function(){ - Ext.Toolbar.Button.superclass.destroy.call(this); - this.td.parentNode.removeChild(this.td); - }, - - /** - * Show this button - */ - show: function(){ - this.hidden = false; - this.td.style.display = ""; - }, - - /** - * Hide this button - */ - hide: function(){ - this.hidden = true; - this.td.style.display = "none"; - }, - - /** - * Disable this item - */ - disable : function(){ - Ext.fly(this.td).addClass("x-item-disabled"); - this.disabled = true; - }, - - /** - * Enable this item - */ - enable : function(){ - Ext.fly(this.td).removeClass("x-item-disabled"); - this.disabled = false; - } -}); -// backwards compat -Ext.ToolbarButton = Ext.Toolbar.Button; - -/** - * @class Ext.Toolbar.MenuButton - * @extends Ext.MenuButton - * A menu button that renders into a toolbar. - * @constructor - * Creates a new MenuButton - * @param {Object} config A standard {@link Ext.MenuButton} config object - */ -Ext.Toolbar.MenuButton = function(config){ - Ext.Toolbar.MenuButton.superclass.constructor.call(this, null, config); -}; -Ext.extend(Ext.Toolbar.MenuButton, Ext.MenuButton, { - render : function(td){ - this.td = td; - Ext.Toolbar.MenuButton.superclass.render.call(this, td); - }, - - /** - * Remove and destroy this button - */ - destroy : function(){ - Ext.Toolbar.MenuButton.superclass.destroy.call(this); - this.td.parentNode.removeChild(this.td); - }, - - /** - * Show this button - */ - show: function(){ - this.hidden = false; - this.td.style.display = ""; - }, - - /** - * Hide this button - */ - hide: function(){ - this.hidden = true; - this.td.style.display = "none"; - } -}); - diff --git a/www/extras/extjs/source/widgets/View.js b/www/extras/extjs/source/widgets/View.js deleted file mode 100644 index ff12156fa..000000000 --- a/www/extras/extjs/source/widgets/View.js +++ /dev/null @@ -1,459 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.View - * @extends Ext.util.Observable - * Create a "View" for an element based on a data model or UpdateManager and the supplied DomHelper template. - * This class also supports single and multi selection modes.
        - * Create a data model bound view: -
        
        - var store = new Ext.data.Store(...);
        -
        - var view = new Ext.View("my-element",
        - '<div id="{0}">{2} - {1}</div>', // auto create template
        - {
        - singleSelect: true,
        - selectedClass: "ydataview-selected",
        - store: store
        - });
        -
        - // listen for node click?
        - view.on("click", function(vw, index, node, e){
        - alert('Node "' + node.id + '" at index: ' + index + " was clicked.");
        - });
        -
        - // load XML data
        - dataModel.load("foobar.xml");
        - 
        - For an example of creating a JSON/UpdateManager view, see {@link Ext.JsonView}. - *

        - * Note: The root of your template must be a single node. Table/row implementations may work but are not supported due to - * IE"s limited insertion support with tables and Opera"s faulty event bubbling. - * @constructor - * Create a new View - * @param {String/HTMLElement/Element} container The container element where the view is to be rendered. - * @param {String/DomHelper.Template} tpl The rendering template or a string to create a template with - * @param {Object} config The config object - */ -Ext.View = function(container, tpl, config){ - this.el = Ext.get(container, true); - if(typeof tpl == "string"){ - tpl = new Ext.Template(tpl); - } - tpl.compile(); - /** - * The template used by this View - * @type {Ext.DomHelper.Template} - */ - this.tpl = tpl; - - Ext.apply(this, config); - - /** @private */ - this.addEvents({ - /** - * @event beforeclick - * Fires before a click is processed. Returns false to cancel the default action. - * @param {Ext.View} this - * @param {Number} index The index of the target node - * @param {HTMLElement} node The target node - * @param {Ext.EventObject} e The raw event object - */ - "beforeclick" : true, - /** - * @event click - * Fires when a template node is clicked. - * @param {Ext.View} this - * @param {Number} index The index of the target node - * @param {HTMLElement} node The target node - * @param {Ext.EventObject} e The raw event object - */ - "click" : true, - /** - * @event dblclick - * Fires when a template node is double clicked. - * @param {Ext.View} this - * @param {Number} index The index of the target node - * @param {HTMLElement} node The target node - * @param {Ext.EventObject} e The raw event object - */ - "dblclick" : true, - /** - * @event contextmenu - * Fires when a template node is right clicked. - * @param {Ext.View} this - * @param {Number} index The index of the target node - * @param {HTMLElement} node The target node - * @param {Ext.EventObject} e The raw event object - */ - "contextmenu" : true, - /** - * @event selectionchange - * Fires when the selected nodes change. - * @param {Ext.View} this - * @param {Array} selections Array of the selected nodes - */ - "selectionchange" : true, - - /** - * @event beforeselect - * Fires before a selection is made. If any handlers return false, the selection is cancelled. - * @param {Ext.View} this - * @param {HTMLElement} node The node to be selected - * @param {Array} selections Array of currently selected nodes - */ - "beforeselect" : true - }); - - this.el.on({ - "click": this.onClick, - "dblclick": this.onDblClick, - "contextmenu": this.onContextMenu, - scope:this - }); - - this.selections = []; - this.nodes = []; - this.cmp = new Ext.CompositeElementLite([]); - if(this.store){ - this.setStore(this.store, true); - } - Ext.View.superclass.constructor.call(this); -}; - -Ext.extend(Ext.View, Ext.util.Observable, { - /** - * The css class to add to selected nodes - * @type {Ext.DomHelper.Template} - */ - selectedClass : "x-view-selected", - - emptyText : "", - /** - * Returns the element this view is bound to. - * @return {Ext.Element} - */ - getEl : function(){ - return this.el; - }, - - /** - * Refreshes the view. - */ - refresh : function(){ - var t = this.tpl; - this.clearSelections(); - this.el.update(""); - var html = []; - var records = this.store.getRange(); - if(records.length < 1){ - this.el.update(this.emptyText); - return; - } - for(var i = 0, len = records.length; i < len; i++){ - var data = this.prepareData(records[i].data, i, records[i]); - html[html.length] = t.apply(data); - } - this.el.update(html.join("")); - this.nodes = this.el.dom.childNodes; - this.updateIndexes(0); - }, - - /** - * Function to override to reformat the data that is sent to - * the template for each node. - * @param {Array/Object} data The raw data (array of colData for a data model bound view or - * a JSON object for an UpdateManager bound view). - */ - prepareData : function(data){ - return data; - }, - - onUpdate : function(ds, record){ - this.clearSelections(); - var index = this.store.indexOf(record); - var n = this.nodes[index]; - this.tpl.insertBefore(n, this.prepareData(record.data)); - n.parentNode.removeChild(n); - this.updateIndexes(index, index); - }, - - onAdd : function(ds, records, index){ - this.clearSelections(); - if(this.nodes.length == 0){ - this.refresh(); - return; - } - var n = this.nodes[index]; - for(var i = 0, len = records.length; i < len; i++){ - var d = this.prepareData(records[i].data); - if(n){ - this.tpl.insertBefore(n, d); - }else{ - this.tpl.append(this.el, d); - } - } - this.updateIndexes(index); - }, - - onRemove : function(ds, record, index){ - this.clearSelections(); - this.el.dom.removeChild(this.nodes[index]); - this.updateIndexes(index); - }, - - /** - * Refresh an individual node. - * @param {Number} index - */ - refreshNode : function(index){ - this.onUpdate(this.store, this.store.getAt(index)); - }, - - updateIndexes : function(startIndex, endIndex){ - var ns = this.nodes; - startIndex = startIndex || 0; - endIndex = endIndex || ns.length - 1; - for(var i = startIndex; i <= endIndex; i++){ - ns[i].nodeIndex = i; - } - }, - - /** - * Changes the data store this view uses and refresh the view. - * @param {Store} store - */ - setStore : function(store, initial){ - if(!initial && this.store){ - this.store.un("datachanged", this.refresh); - this.store.un("add", this.onAdd); - this.store.un("remove", this.onRemove); - this.store.un("update", this.onUpdate); - this.store.un("clear", this.refresh); - } - if(store){ - store.on("datachanged", this.refresh, this); - store.on("add", this.onAdd, this); - store.on("remove", this.onRemove, this); - store.on("update", this.onUpdate, this); - store.on("clear", this.refresh, this); - } - this.store = store; - this.refresh(); - }, - - /** - * Returns the template node the passed child belongs to or null if it doesn't belong to one. - * @param {HTMLElement} node - * @return {HTMLElement} The template node - */ - findItemFromChild : function(node){ - var el = this.el.dom; - if(!node || node.parentNode == el){ - return node; - } - var p = node.parentNode; - while(p && p != el){ - if(p.parentNode == el){ - return p; - } - p = p.parentNode; - } - return null; - }, - - /** @ignore */ - onClick : function(e){ - var item = this.findItemFromChild(e.getTarget()); - if(item){ - var index = this.indexOf(item); - if(this.onItemClick(item, index, e) !== false){ - this.fireEvent("click", this, index, item, e); - } - }else{ - this.clearSelections(); - } - }, - - /** @ignore */ - onContextMenu : function(e){ - var item = this.findItemFromChild(e.getTarget()); - if(item){ - this.fireEvent("contextmenu", this, this.indexOf(item), item, e); - } - }, - - /** @ignore */ - onDblClick : function(e){ - var item = this.findItemFromChild(e.getTarget()); - if(item){ - this.fireEvent("dblclick", this, this.indexOf(item), item, e); - } - }, - - onItemClick : function(item, index, e){ - if(this.fireEvent("beforeclick", this, index, item, e) === false){ - return false; - } - if(this.multiSelect || this.singleSelect){ - if(this.multiSelect && e.shiftKey && this.lastSelection){ - this.select(this.getNodes(this.indexOf(this.lastSelection), index), false); - }else{ - this.select(item, this.multiSelect && e.ctrlKey); - this.lastSelection = item; - } - e.preventDefault(); - } - return true; - }, - - /** - * Get the number of selected nodes. - * @return {Number} - */ - getSelectionCount : function(){ - return this.selections.length; - }, - - /** - * Get the currently selected nodes. - * @return {Array} An array of HTMLElements - */ - getSelectedNodes : function(){ - return this.selections; - }, - - /** - * Get the indexes of the selected nodes. - * @return {Array} - */ - getSelectedIndexes : function(){ - var indexes = [], s = this.selections; - for(var i = 0, len = s.length; i < len; i++){ - indexes.push(s[i].nodeIndex); - } - return indexes; - }, - - /** - * Clear all selections - * @param {Boolean} suppressEvent (optional) true to skip firing of the selectionchange event - */ - clearSelections : function(suppressEvent){ - if(this.nodes && (this.multiSelect || this.singleSelect) && this.selections.length > 0){ - this.cmp.elements = this.selections; - this.cmp.removeClass(this.selectedClass); - this.selections = []; - if(!suppressEvent){ - this.fireEvent("selectionchange", this, this.selections); - } - } - }, - - /** - * Returns true if the passed node is selected - * @param {HTMLElement/Number} node The node or node index - * @return {Boolean} - */ - isSelected : function(node){ - var s = this.selections; - if(s.length < 1){ - return false; - } - node = this.getNode(node); - return s.indexOf(node) !== -1; - }, - - /** - * Selects nodes. - * @param {Array/HTMLElement/String/Number} nodeInfo An HTMLElement template node, index of a template node, id of a template node or an array of any of those to select - * @param {Boolean} keepExisting (optional) true to keep existing selections - * @param {Boolean} suppressEvent (optional) true to skip firing of the selectionchange vent - */ - select : function(nodeInfo, keepExisting, suppressEvent){ - if(nodeInfo instanceof Array){ - if(!keepExisting){ - this.clearSelections(true); - } - for(var i = 0, len = nodeInfo.length; i < len; i++){ - this.select(nodeInfo[i], true, true); - } - } else{ - var node = this.getNode(nodeInfo); - if(node && !this.isSelected(node)){ - if(!keepExisting){ - this.clearSelections(true); - } - if(this.fireEvent("beforeselect", this, node, this.selections) !== false){ - Ext.fly(node).addClass(this.selectedClass); - this.selections.push(node); - if(!suppressEvent){ - this.fireEvent("selectionchange", this, this.selections); - } - } - } - } - }, - - /** - * Gets a template node. - * @param {HTMLElement/String/Number} nodeInfo An HTMLElement template node, index of a template node or the id of a template node - * @return {HTMLElement} The node or null if it wasn't found - */ - getNode : function(nodeInfo){ - if(typeof nodeInfo == "string"){ - return document.getElementById(nodeInfo); - }else if(typeof nodeInfo == "number"){ - return this.nodes[nodeInfo]; - } - return nodeInfo; - }, - - /** - * Gets a range template nodes. - * @param {Number} startIndex - * @param {Number} endIndex - * @return {Array} An array of nodes - */ - getNodes : function(start, end){ - var ns = this.nodes; - start = start || 0; - end = typeof end == "undefined" ? ns.length - 1 : end; - var nodes = []; - if(start <= end){ - for(var i = start; i <= end; i++){ - nodes.push(ns[i]); - } - } else{ - for(var i = start; i >= end; i--){ - nodes.push(ns[i]); - } - } - return nodes; - }, - - /** - * Finds the index of the passed node - * @param {HTMLElement/String/Number} nodeInfo An HTMLElement template node, index of a template node or the id of a template node - * @return {Number} The index of the node or -1 - */ - indexOf : function(node){ - node = this.getNode(node); - if(typeof node.nodeIndex == "number"){ - return node.nodeIndex; - } - var ns = this.nodes; - for(var i = 0, len = ns.length; i < len; i++){ - if(ns[i] == node){ - return i; - } - } - return -1; - } -}); diff --git a/www/extras/extjs/source/widgets/form/Action.js b/www/extras/extjs/source/widgets/form/Action.js deleted file mode 100644 index d14595220..000000000 --- a/www/extras/extjs/source/widgets/form/Action.js +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -// define the action interface -Ext.form.Action = function(form, options){ - this.form = form; - this.options = options || {}; -}; - -Ext.form.Action.CLIENT_INVALID = 'client'; -Ext.form.Action.SERVER_INVALID = 'server'; -Ext.form.Action.CONNECT_FAILURE = 'connect'; -Ext.form.Action.LOAD_FAILURE = 'load'; - -Ext.form.Action.prototype = { - type : 'default', - failureType : undefined, - response : undefined, - result : undefined, - - // interface method - run : function(options){ - - }, - - // interface method - success : function(response){ - - }, - - // interface method - handleResponse : function(response){ - - }, - - // default connection failure - failure : function(response){ - this.response = response; - this.failureType = Ext.form.Action.CONNECT_FAILURE; - this.form.afterAction(this, false); - }, - - processResponse : function(response){ - this.response = response; - if(!response.responseText){ - return true; - } - this.result = this.handleResponse(response); - return this.result; - }, - - // utility functions used internally - getUrl : function(appendParams){ - var url = this.options.url || this.form.url || this.form.el.dom.action; - if(appendParams){ - var p = this.getParams(); - if(p){ - url += (url.indexOf('?') != -1 ? '&' : '?') + p; - } - } - return url; - }, - - getMethod : function(){ - return (this.options.method || this.form.method || this.form.el.dom.method || 'POST').toUpperCase(); - }, - - getParams : function(){ - var bp = this.form.baseParams; - var p = this.options.params; - if(p){ - if(typeof p == "object"){ - p = Ext.urlEncode(Ext.applyIf(p, bp)); - }else if(typeof p == 'string' && bp){ - p += '&' + Ext.urlEncode(bp); - } - }else if(bp){ - p = Ext.urlEncode(bp); - } - return p; - }, - - createCallback : function(){ - return { - success: this.success, - failure: this.failure, - scope: this, - timeout: (this.form.timeout*1000), - upload: this.form.fileUpload ? this.success : undefined - }; - } -}; - -Ext.form.Action.Submit = function(form, options){ - Ext.form.Action.Submit.superclass.constructor.call(this, form, options); -}; - -Ext.extend(Ext.form.Action.Submit, Ext.form.Action, { - type : 'submit', - - run : function(){ - var o = this.options; - var isPost = this.getMethod() == 'POST'; - if(o.clientValidation === false || this.form.isValid()){ - Ext.lib.Ajax.formRequest( - this.form.el.dom, - this.getUrl(!isPost), - this.createCallback(), - isPost ? this.getParams() : null, this.form.fileUpload, Ext.SSL_SECURE_URL); - - }else if (o.clientValidation !== false){ // client validation failed - this.failureType = Ext.form.Action.CLIENT_INVALID; - this.form.afterAction(this, false); - } - }, - - success : function(response){ - var result = this.processResponse(response); - if(result === true || result.success){ - this.form.afterAction(this, true); - return; - } - if(result.errors){ - this.form.markInvalid(result.errors); - this.failureType = Ext.form.Action.SERVER_INVALID; - } - this.form.afterAction(this, false); - }, - - handleResponse : function(response){ - if(this.form.errorReader){ - var rs = this.form.errorReader.read(response); - var errors = []; - if(rs.records){ - for(var i = 0, len = rs.records.length; i < len; i++) { - var r = rs.records[i]; - errors[i] = r.data; - } - } - if(errors.length < 1){ - errors = null; - } - return { - success : rs.success, - errors : errors - }; - } - return Ext.decode(response.responseText); - } -}); - - -Ext.form.Action.Load = function(form, options){ - Ext.form.Action.Load.superclass.constructor.call(this, form, options); - this.reader = this.form.reader; -}; - -Ext.extend(Ext.form.Action.Load, Ext.form.Action, { - type : 'load', - - run : function(){ - Ext.lib.Ajax.request( - this.getMethod(), - this.getUrl(false), - this.createCallback(), - this.getParams()); - }, - - success : function(response){ - var result = this.processResponse(response); - if(result === true || !result.success || !result.data){ - this.failureType = Ext.form.Action.LOAD_FAILURE; - this.form.afterAction(this, false); - return; - } - this.form.clearInvalid(); - this.form.setValues(result.data); - this.form.afterAction(this, true); - }, - - handleResponse : function(response){ - if(this.form.reader){ - var rs = this.form.reader.read(response); - var data = rs.records && rs.records[0] ? rs.records[0].data : null; - return { - success : rs.success, - data : data - }; - } - return Ext.decode(response.responseText); - } -}); - -Ext.form.Action.ACTION_TYPES = { - 'load' : Ext.form.Action.Load, - 'submit' : Ext.form.Action.Submit -}; diff --git a/www/extras/extjs/source/widgets/form/BasicForm.js b/www/extras/extjs/source/widgets/form/BasicForm.js deleted file mode 100644 index efcf5c372..000000000 --- a/www/extras/extjs/source/widgets/form/BasicForm.js +++ /dev/null @@ -1,362 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.form.BasicForm - * @extends Ext.util.Observable - * Supplies the functionality to do "actions" on forms and initialize Ext.form.Field types on existing markup. - * @constructor - * @param {String/HTMLElement/Ext.Element} el The form element or its id - * @param {Object} config Configuration options - */ -Ext.form.BasicForm = function(el, config){ - Ext.apply(this, config); - /* - * The Ext.form.Field items in this form - * @type MixedCollection - */ - this.items = new Ext.util.MixedCollection(false, function(o){ - return o.id || (o.id = Ext.id()); - }); - this.addEvents({ - /** - * @event beforeaction - * Fires before any action is performed. Return false to cancel the action. - * @param {Form} this - * @param {Action} action The action to be performed - */ - beforeaction: true, - /** - * @event actionfailed - * Fires when an action fails - * @param {Form} this - * @param {Action} action The action that failed - */ - actionfailed : true, - /** - * @event actioncomplete - * Fires when an action is completed - * @param {Form} this - * @param {Action} action The action that completed - */ - actioncomplete : true - }); - if(el){ - this.initEl(el); - } - Ext.form.BasicForm.superclass.constructor.call(this); -}; - -Ext.extend(Ext.form.BasicForm, Ext.util.Observable, { - /** - * @cfg {String} method - * The request method to use (GET or POST) for form actions if one isn't supplied in the action options - */ - /** - * @cfg {DataReader} reader - * An Ext.data.DataReader (e.g. {@link Ext.data.XmlReader} to be used to read data when executing "load" actions. - * This is completely optional as there is built-in support for processing JSON. - */ - /** - * @cfg {DataReader} errorReader - * An Ext.data.DataReader (e.g. {@link Ext.data.XmlReader} to be used to read data when reading validation errors on "submit" actions. - * This is completely optional as there is built-in support for processing JSON. - */ - /** - * @cfg {String} url - * The url to use for form actions if one isn't supplied in the action options - */ - /** - * @cfg {Boolean} fileUpload - * Set to true if this form is a file upload (YUI adapter only) - */ - /** - * @cfg {Object} baseParams - * Parameters to pass with all requests. e.g. baseParams: {id: '123', foo: 'bar'} - */ - /** - * @cfg {Number} timeout - */ - timeout: 30, - - // private - activeAction : null, - - /** - * By default wait messages are displayed with Ext.MessageBox.wait. You can target a specific - * element by passing it or its id or mask the form itself by passing in true. - * @type Mixed - */ - waitMsgTarget : undefined, - - // private - initEl : function(el){ - this.el = Ext.get(el); - this.id = this.el.id || Ext.id(); - this.el.on('submit', this.onSubmit, this); - this.el.addClass('x-form'); - }, - - // private - onSubmit : function(e){ - e.stopEvent(); - }, - - /** - * Returns true is client-side validation on the form is successful - * @return Boolean - */ - isValid : function(){ - var valid = true; - this.items.each(function(f){ - if(!f.validate()){ - valid = false; - } - }); - return valid; - }, - - /** - * Performs a predefined action (submit or load) or custom actions you define on this form - * @param {String} actionName The name of the action type - * @param {Object} options The options to pass to the action - */ - doAction : function(action, options){ - if(typeof action == 'string'){ - action = new Ext.form.Action.ACTION_TYPES[action](this, options); - } - if(this.fireEvent('beforeaction', this, action) !== false){ - this.beforeAction(action); - action.run.defer(100, action); - } - }, - - /** - * Shortcut to do a submit action - * @param {Object} options The options to pass to the action - */ - submit : function(options){ - this.doAction('submit', options); - }, - - /** - * Shortcut to do a load action - * @param {Object} options The options to pass to the action - */ - load : function(options){ - this.doAction('load', options); - }, - - /** - * Persists the values in this form into the passed Ext.data.Record object in a beginEdit/endEdit block. - * @param {Record} record The record to edit - */ - updateRecord : function(record){ - record.beginEdit(); - var fs = record.fields; - fs.each(function(f){ - var field = this.findField(f.name); - if(field){ - record.set(f.name, field.getValue()); - } - }, this); - record.endEdit(); - }, - - // private - beforeAction : function(action){ - var o = action.options; - if(o.waitMsg){ - if(this.waitMsgTarget === true){ - this.el.mask(o.waitMsg, 'x-mask-loading'); - }else if(this.waitMsgTarget){ - this.waitMsgTarget = Ext.get(this.waitMsgTarget); - this.waitMsgTarget.mask(o.waitMsg, 'x-mask-loading'); - }else{ - Ext.MessageBox.wait(o.waitMsg, o.waitTitle || this.waitTitle || 'Please Wait...'); - } - } - }, - - // private - afterAction : function(action, success){ - this.activeAction = null; - var o = action.options; - if(o.waitMsg){ - if(this.waitMsgTarget === true){ - this.el.unmask(); - }else if(this.waitMsgTarget){ - this.waitMsgTarget.unmask(); - }else{ - Ext.MessageBox.updateProgress(1); - Ext.MessageBox.hide(); - } - } - if(success){ - if(o.reset){ - this.reset(); - } - Ext.callback(o.success, o.scope, [this, action]); - this.fireEvent('actioncomplete', this, action); - }else{ - Ext.callback(o.failure, o.scope, [this, action]); - this.fireEvent('actionfailed', this, action); - } - }, - - /** - * Find a Ext.form.Field in this form by id, dataIndex, name or hiddenName - * @param {String} id The value to search for - * @return Field - */ - findField : function(id){ - var field = this.items.get(id); - if(!field){ - this.items.each(function(f){ - if(f.isFormField && (f.dataIndex == id || f.id == id || f.getName() == id)){ - field = f; - return false; - } - }); - } - return field || null; - }, - - - /** - * Mark fields in this form invalid in bulk. - * @param {Array/Object} errors Either an array in the form [{id:'fieldId', msg:'The message'},...] or an object hash of {id: msg, id2: msg2} - */ - markInvalid : function(errors){ - if(errors instanceof Array){ - for(var i = 0, len = errors.length; i < len; i++){ - var fieldError = errors[i]; - var f = this.findField(fieldError.id); - if(f){ - f.markInvalid(fieldError.msg); - } - } - }else{ - var field, id; - for(id in errors){ - if(typeof errors[id] != 'function' && (field = this.findField(id))){ - field.markInvalid(errors[id]); - } - } - } - }, - - /** - * Set values for fields in this form in bulk. - * @param {Array/Object} values Either an array in the form [{id:'fieldId', value:'foo'},...] or an object hash of {id: value, id2: value2} - */ - setValues : function(values){ - if(values instanceof Array){ // array of objects - for(var i = 0, len = values.length; i < len; i++){ - var v = values[i]; - var f = this.findField(v.id); - if(f){ - f.setValue(v.value); - } - } - }else{ // object hash - var field, id; - for(id in values){ - if(typeof values[id] != 'function' && (field = this.findField(id))){ - field.setValue(values[id]); - } - } - } - }, - - /** - * Returns the fields in this form as an object with key value pair. If multiple fields exist with the same name - * they are returned as an array. - * @param {Boolean} asString - * @return {Object} - */ - getValues : function(asString){ - var fs = Ext.lib.Ajax.serializeForm(this.el.dom); - if(asString === true){ - return fs; - } - return Ext.urlDecode(fs); - }, - - /** - * Clears all invalid messages in this form - */ - clearInvalid : function(){ - this.items.each(function(f){ - f.clearInvalid(); - }); - }, - - /** - * Resets this form - */ - reset : function(){ - this.items.each(function(f){ - f.reset(); - }); - }, - - /** - * Add Ext.form components to this form - * @param {Field} field1 - * @param {Field} field2 (optional) - * @param {Field} etc (optional) - */ - add : function(){ - this.items.addAll(Array.prototype.slice.call(arguments, 0)); - }, - - - /** - * Removes a field from the items collection (does NOT remove its markup) - * @param {Field} field - */ - remove : function(field){ - this.items.remove(field); - }, - - /** - * Looks at the fields in this form, checks them for an id attribute - * and call applyTo on the existing dom element with that id - */ - render : function(){ - this.items.each(function(f){ - if(f.isFormField && !f.rendered && document.getElementById(f.id)){ // if the element exists - f.applyTo(f.id); - } - }); - }, - - /** - * Calls {@link Ext#apply} for all field in this form with the passed object - * @param {Object} values - */ - applyToFields : function(o){ - this.items.each(function(f){ - Ext.apply(f, o); - }); - }, - - /** - * Calls {@link Ext#applyIf} for all field in this form with the passed object - * @param {Object} values - */ - applyIfToFields : function(o){ - this.items.each(function(f){ - Ext.applyIf(f, o); - }); - } -}); - -// back compat -Ext.BasicForm = Ext.form.BasicForm; \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/form/Checkbox.js b/www/extras/extjs/source/widgets/form/Checkbox.js deleted file mode 100644 index 1d835ced2..000000000 --- a/www/extras/extjs/source/widgets/form/Checkbox.js +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.form.Checkbox - * @extends Ext.form.Field - * Single checkbox field. Can be used as a direct replacement for traditional checkbox fields. - * @constructor - * Creates a new CheckBox - * @param {Object} config Configuration options - */ -Ext.form.Checkbox = function(config){ - Ext.form.Checkbox.superclass.constructor.call(this, config); - this.addEvents({ - /** - * @event check - * Fires when the checkbox is checked or unchecked - * @param {Ext.form.Checkbox} this This checkbox - * @param {Boolean} checked The new checked value - */ - check : true - }); -}; - -Ext.extend(Ext.form.Checkbox, Ext.form.Field, { - /** - * @cfg {String} focusClass The CSS class to use when the checkbox receives focus (defaults to 'x-form-check-focus') - */ - focusClass : "x-form-check-focus", - /** - * @cfg {String} fieldClass The default CSS class for the checkbox (defaults to "x-form-field") - */ - fieldClass: "x-form-field", - /** - * @cfg {Boolean} checked True if the the checkbox should render already checked (defaults to false) - */ - checked: false, - - // private - defaultAutoCreate : { tag: "input", type: 'checkbox', autocomplete: "off"}, - /** - * @cfg {String} boxLabel The text that appears beside the checkbox - */ - boxLabel : undefined, - /** - * @cfg {String} inputValue The value that should go into the generated input element's value attribute - */ - /** - * Sets the width and height of the checkbox wrapper element - * @param {Number} width New width in pixels - * @param {Number} height New height in pixels - */ - setSize : function(w, h){ - if(!this.wrap){ - this.width = w; - this.height = h; - return; - } - this.wrap.setSize(w, h); - if(!this.boxLabel){ - this.el.alignTo(this.wrap, 'c-c'); - } - }, - - initEvents : function(){ - Ext.form.Checkbox.superclass.initEvents.call(this); - this.el.on("click", this.onClick, this); - this.el.on("change", this.onClick, this); - }, - - - // private - onRender : function(ct, position){ - Ext.form.Checkbox.superclass.onRender.call(this, ct, position); - if(this.inputValue !== undefined){ - this.el.dom.value = this.inputValue; - } - this.wrap = this.el.wrap({cls: "x-form-check-wrap"}); - if(this.boxLabel){ - this.wrap.createChild({tag: 'label', htmlFor: this.el.id, cls: 'x-form-cb-label', html: this.boxLabel}); - } - if(this.checked){ - this.setValue(true); - } - }, - - // private - initValue : Ext.emptyFn, - - /** - * Returns the checked state of the checkbox. - * @return {Boolean} True if checked, else false - */ - getValue : function(){ - if(this.rendered){ - return this.el.dom.checked; - } - return false; - }, - - onClick : function(){ - if(this.el.dom.checked != this.checked){ - this.setValue(this.el.dom.checked); - } - }, - - /** - * Sets the checked state of the checkbox - * @param {Boolean/String} checked True, 'true,' or '1' to check the checkbox, any other value will uncheck it - */ - setValue : function(v){ - this.checked = (v === true || v === 'true' || v == '1'); - if(this.el && this.el.dom){ - this.el.dom.checked = this.checked; - } - this.fireEvent("check", this, this.checked); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/form/Combo.js b/www/extras/extjs/source/widgets/form/Combo.js deleted file mode 100644 index 863763797..000000000 --- a/www/extras/extjs/source/widgets/form/Combo.js +++ /dev/null @@ -1,806 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.form.ComboBox - * @extends Ext.form.TriggerField - * A combobox control with support for autocomplete, remote-loading, paging and many other features. - * @constructor - * Create a new ComboBox. - * @param {Object} config Configuration options - */ -Ext.form.ComboBox = function(config){ - Ext.form.ComboBox.superclass.constructor.call(this, config); - this.addEvents({ - /** - * @event expand - * Fires when the dropdown list is expanded - * @param {Ext.form.ComboBox} combo This combo box - */ - 'expand' : true, - /** - * @event collapse - * Fires when the dropdown list is collapsed - * @param {Ext.form.ComboBox} combo This combo box - */ - 'collapse' : true, - /** - * @event beforeselect - * Fires before a list item is selected. Return false to cancel the selection. - * @param {Ext.form.ComboBox} combo This combo box - * @param {Ext.data.Record} record The data record returned from the underlying store - * @param {Number} index The index of the selected item in the dropdown list - */ - 'beforeselect' : true, - /** - * @event select - * Fires when a list item is selected - * @param {Ext.form.ComboBox} combo This combo box - * @param {Ext.data.Record} record The data record returned from the underlying store - * @param {Number} index The index of the selected item in the dropdown list - */ - 'select' : true, - /** - * @event beforequery - * Fires before all queries are processed. Return false to cancel the query or set cancel to true. - * The event object passed has these properties: - *
          - *
        • {Ext.form.ComboBox} combo - This combo box
        • - *
        • {String} query - The query
        • - *
        • {Boolean} forceAll - true to force "all" query
        • - *
        • {Boolean} cancel - set to true to cancel the query.
        • - *
        - * @param {Object} e The query event object - */ - 'beforequery': true - }); - if(this.transform){ - var s = Ext.getDom(this.transform); - if(!this.hiddenName){ - this.hiddenName = s.name; - } - if(!this.store){ - this.mode = 'local'; - var d = [], opts = s.options; - for(var i = 0, len = opts.length;i < len; i++){ - var o = opts[i]; - var value = (Ext.isIE ? o.getAttributeNode('value').specified : o.hasAttribute('value')) ? o.value : o.text; - if(o.selected) { - this.value = value; - } - d.push([value, o.text]); - } - this.store = new Ext.data.SimpleStore({ - 'id': 0, - fields: ['value', 'text'], - data : d - }); - this.valueField = 'value'; - this.displayField = 'text'; - } - s.name = Ext.id(); // wipe out the name in case somewhere else they have a reference - if(!this.lazyRender){ - this.target = true; - this.el = Ext.DomHelper.insertBefore(s, this.autoCreate || this.defaultAutoCreate); - s.parentNode.removeChild(s); // remove it - this.render(this.el.parentNode); - }else{ - s.parentNode.removeChild(s); // remove it - } - - } - this.selectedIndex = -1; - if(this.mode == 'local'){ - if(config.queryDelay === undefined){ - this.queryDelay = 10; - } - if(config.minChars === undefined){ - this.minChars = 0; - } - } -}; - -Ext.extend(Ext.form.ComboBox, Ext.form.TriggerField, { - /** - * @cfg {String/HTMLElement/Element} transform The id, DOM node or element of an existing select to convert to a ComboBox - */ - /** - * @cfg {Boolean} lazyRender True to prevent the ComboBox from rendering until requested (should always be used when - * rendering into an Ext.Editor, defaults to false) - */ - /** - * @cfg {Boolean/Object} autoCreate A DomHelper element spec, or true for a default element spec (defaults to: - * {tag: "input", type: "text", size: "24", autocomplete: "off"}) - */ - - // private - defaultAutoCreate : {tag: "input", type: "text", size: "24", autocomplete: "off"}, - /** - * @cfg {Number} listWidth The width in pixels of the dropdown list (defaults to the width of the ComboBox field) - */ - listWidth: undefined, - /** - * @cfg {String} displayField The underlying data field name to bind to this CombBox (defaults to undefined if - * mode = 'remote' or 'text' if mode = 'local') - */ - displayField: undefined, - /** - * @cfg {String} valueField The underlying data value name to bind to this CombBox (defaults to undefined if - * mode = 'remote' or 'value' if mode = 'local') - */ - valueField: undefined, - /** - * @cfg {String} hiddenName If specified, a hidden form field with this name is dynamically generated to store the - * field's data value (defaults to the underlying DOM element's name) - */ - hiddenName: undefined, - /** - * @cfg {String} listClass CSS class to apply to the dropdown list element (defaults to '') - */ - listClass: '', - /** - * @cfg {String} selectedClass CSS class to apply to the selected item in the dropdown list (defaults to 'x-combo-selected') - */ - selectedClass: 'x-combo-selected', - /** - * @cfg {String} triggerClass An additional CSS class used to style the trigger button. The trigger will always get the - * class 'x-form-trigger' and triggerClass will be appended if specified (defaults to 'x-form-arrow-trigger' - * which displays a downward arrow icon). - */ - triggerClass : 'x-form-arrow-trigger', - /** - * @cfg {Boolean/String} shadow True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" for bottom-right - */ - shadow:'sides', - /** - * @cfg {String} listAlign A valid anchor position value. See {@link Ext.Element#alignTo} for details on supported - * anchor positions (defaults to 'tl-bl') - */ - listAlign: 'tl-bl?', - /** - * @cfg {Number} maxHeight The maximum height in pixels of the dropdown list before scrollbars are shown (defaults to 300) - */ - maxHeight: 300, - /** - * @cfg {String} triggerAction The action to execute when the trigger field is activated. Use 'all' to run the - * query specified by the allQuery config option (defaults to 'query') - */ - triggerAction: 'query', - /** - * @cfg {Number} minChars The minimum number of characters the user must type before autocomplete and typeahead activate - * (defaults to 4, does not apply if editable = false) - */ - minChars : 4, - /** - * @cfg {Boolean} typeAhead True to populate and autoselect the remainder of the text being typed after a configurable - * delay (typeAheadDelay) if it matches a known value (defaults to false) - */ - typeAhead: false, - /** - * @cfg {Number} queryDelay The length of time in milliseconds to delay between the start of typing and sending the - * query to filter the dropdown list (defaults to 500 if mode = 'remote' or 10 if mode = 'local') - */ - queryDelay: 500, - /** - * @cfg {Number} pageSize If greater than 0, a paging toolbar is displayed in the footer of the dropdown list and the - * filter queries will execute with page start and limit parameters. Only applies when mode = 'remote' (defaults to 0) - */ - pageSize: 0, - /** - * @cfg {Boolean} selectOnFocus True to select any existing text in the field immediately on focus. Only applies - * when editable = true (defaults to false) - */ - selectOnFocus:false, - /** - * @cfg {String} queryParam Name of the query as it will be passed on the querystring (defaults to 'query') - */ - queryParam: 'query', - /** - * @cfg {String} loadingText The text to display in the dropdown list while data is loading. Only applies - * when mode = 'remote' (defaults to 'Loading...') - */ - loadingText: 'Loading...', - /** - * @cfg {Boolean} resizable True to add a resize handle to the bottom of the dropdown list (defaults to false) - */ - resizable: false, - /** - * @cfg {Number} handleHeight The height in pixels of the dropdown list resize handle if resizable = true (defaults to 8) - */ - handleHeight : 8, - /** - * @cfg {Boolean} editable False to prevent the user from typing text directly into the field, just like a - * traditional select (defaults to true) - */ - editable: true, - /** - * @cfg {String} allQuery The text query to send to the server to return all records for the list with no filtering (defaults to '') - */ - allQuery: '', - /** - * @cfg {String} mode Set to 'local' if the ComboBox loads local data (defaults to 'remote' which loads from the server) - */ - mode: 'remote', - /** - * @cfg {Number} minListWidth The minimum width of the dropdown list in pixels (defaults to 70, will be ignored if - * listWidth has a higher value) - */ - minListWidth : 70, - /** - * @cfg {Boolean} forceSelection True to restrict the selected value to one of the values in the list, false to - * allow the user to set arbitrary text into the field (defaults to false) - */ - forceSelection:false, - /** - * @cfg {Number} typeAheadDelay The length of time in milliseconds to wait until the typeahead text is displayed - * if typeAhead = true (defaults to 250) - */ - typeAheadDelay : 250, - /** - * @cfg {String} valueNotFoundText When using a name/value combo, if the value passed to setValue is not found in - * the store, valueNotFoundText will be displayed as the field text if defined (defaults to undefined) - */ - valueNotFoundText : undefined, - - // private - onRender : function(ct, position){ - Ext.form.ComboBox.superclass.onRender.call(this, ct, position); - if(this.hiddenName){ - this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id: this.hiddenName}, - 'before', true); - this.hiddenField.value = - this.hiddenValue !== undefined ? this.hiddenValue : - this.value !== undefined ? this.value : ''; - - // prevent input submission - this.el.dom.removeAttribute('name'); - } - if(Ext.isGecko){ - this.el.dom.setAttribute('autocomplete', 'off'); - } - - var cls = 'x-combo-list'; - - this.list = new Ext.Layer({ - shadow: this.shadow, cls: [cls, this.listClass].join(' '), constrain:false - }); - - this.list.setWidth(this.listWidth || Math.max(this.wrap.getWidth(), this.minListWidth)); - this.list.swallowEvent('mousewheel'); - this.assetHeight = 0; - - if(this.title){ - this.header = this.list.createChild({cls:cls+'-hd', html: this.title}); - this.assetHeight += this.header.getHeight(); - } - - this.innerList = this.list.createChild({cls:cls+'-inner'}); - this.innerList.on('mouseover', this.onViewOver, this); - this.innerList.on('mousemove', this.onViewMove, this); - - if(this.pageSize){ - this.footer = this.list.createChild({cls:cls+'-ft'}); - this.pageTb = new Ext.PagingToolbar(this.footer, this.store, - {pageSize: this.pageSize}); - this.assetHeight += this.footer.getHeight(); - } - - if(!this.tpl){ - this.tpl = '
        {' + this.displayField + '}
        '; - } - - this.view = new Ext.View(this.innerList, this.tpl, { - singleSelect:true, store: this.store, selectedClass: this.selectedClass - }); - - this.view.on('click', this.onViewClick, this); - - this.store.on('beforeload', this.onBeforeLoad, this); - this.store.on('load', this.onLoad, this); - this.store.on('loadexception', this.collapse, this); - - if(this.resizable){ - this.resizer = new Ext.Resizable(this.list, { - pinned:true, handles:'se' - }); - this.resizer.on('resize', function(r, w, h){ - this.maxHeight = h-this.handleHeight-this.list.getFrameWidth('tb')-this.assetHeight; - this.listWidth = w; - this.restrictHeight(); - }, this); - this[this.pageSize?'footer':'innerList'].setStyle('margin-bottom', this.handleHeight+'px'); - } - if(!this.editable){ - this.editable = true; - this.setEditable(false); - } - }, - - // private - initEvents : function(){ - Ext.form.ComboBox.superclass.initEvents.call(this); - - this.keyNav = new Ext.KeyNav(this.el, { - "up" : function(e){ - this.inKeyMode = true; - this.selectPrev(); - }, - - "down" : function(e){ - if(!this.isExpanded()){ - this.onTriggerClick(); - }else{ - this.inKeyMode = true; - this.selectNext(); - } - }, - - "enter" : function(e){ - this.onViewClick(); - //return true; - }, - - "esc" : function(e){ - this.collapse(); - }, - - "tab" : function(e){ - this.onViewClick(false); - return true; - }, - - scope : this, - - doRelay : function(foo, bar, hname){ - if(hname == 'down' || this.scope.isExpanded()){ - return Ext.KeyNav.prototype.doRelay.apply(this, arguments); - } - return true; - } - }); - this.queryDelay = Math.max(this.queryDelay || 10, - this.mode == 'local' ? 10 : 250); - this.dqTask = new Ext.util.DelayedTask(this.initQuery, this); - if(this.typeAhead){ - this.taTask = new Ext.util.DelayedTask(this.onTypeAhead, this); - } - if(this.editable !== false){ - this.el.on("keyup", this.onKeyUp, this); - } - if(this.forceSelection){ - this.on('blur', this.doForce, this); - } - }, - - onDestroy : function(){ - if(this.view){ - this.view.setStore(null); - this.view.el.removeAllListeners(); - this.view.el.remove(); - this.view.purgeListeners(); - } - if(this.list){ - this.list.destroy(); - } - if(this.store){ - this.store.un('beforeload', this.onBeforeLoad, this); - this.store.un('load', this.onLoad, this); - this.store.un('loadexception', this.collapse, this); - } - Ext.form.ComboBox.superclass.onDestroy.call(this); - }, - - // private - fireKey : function(e){ - if(e.isNavKeyPress() && !this.list.isVisible()){ - this.fireEvent("specialkey", this, e); - } - }, - - // private - onResize: function(w, h){ - if(this.list && this.listWidth === undefined){ - this.list.setWidth(Math.max(w, this.minListWidth)); - } - }, - - /** - * Allow or prevent the user from directly editing the field text. If false is passed in, - * the user will only be able to select from the items defined in the dropdown list. This method - * is the runtime equivalent of setting the editable config option at config time. - */ - setEditable : function(value){ - if(value == this.editable){ - return; - } - this.editable = value; - if(!value){ - this.el.dom.setAttribute('readOnly', true); - this.el.on('mousedown', this.onTriggerClick, this); - this.el.addClass('x-combo-noedit'); - }else{ - this.el.dom.setAttribute('readOnly', false); - this.el.un('mousedown', this.onTriggerClick, this); - this.el.removeClass('x-combo-noedit'); - } - }, - - // private - onBeforeLoad : function(){ - if(!this.hasFocus){ - return; - } - this.innerList.update(this.loadingText ? - '
        '+this.loadingText+'
        ' : ''); - this.restrictHeight(); - this.selectedIndex = -1; - }, - - // private - onLoad : function(){ - if(!this.hasFocus){ - return; - } - if(this.store.getCount() > 0){ - this.expand(); - this.restrictHeight(); - if(this.lastQuery == this.allQuery){ - if(this.editable){ - this.el.dom.select(); - } - if(!this.selectByValue(this.value, true)){ - this.select(0, true); - } - }else{ - this.selectNext(); - if(this.typeAhead && this.lastKey != Ext.EventObject.BACKSPACE && this.lastKey != Ext.EventObject.DELETE){ - this.taTask.delay(this.typeAheadDelay); - } - } - }else{ - this.onEmptyResults(); - } - //this.el.focus(); - }, - - // private - onTypeAhead : function(){ - if(this.store.getCount() > 0){ - var r = this.store.getAt(0); - var newValue = r.data[this.displayField]; - var len = newValue.length; - var selStart = this.getRawValue().length; - if(selStart != len){ - this.setRawValue(newValue); - this.selectText(selStart, newValue.length); - } - } - }, - - // private - onSelect : function(record, index){ - if(this.fireEvent('beforeselect', this, record, index) !== false){ - this.setValue(record.data[this.valueField || this.displayField]); - this.collapse(); - this.fireEvent('select', this, record, index); - } - }, - - /** - * Returns the currently-selected field value or empty string if no value is set. - * @return {String} value The selected value - */ - getValue : function(){ - if(this.valueField){ - return typeof this.value != 'undefined' ? this.value : ''; - }else{ - return Ext.form.ComboBox.superclass.getValue.call(this); - } - }, - - /** - * Clears any text/value currently set in the field - */ - clearValue : function(){ - if(this.hiddenField){ - this.hiddenField.value = ''; - } - this.setRawValue(''); - this.lastSelectionText = ''; - }, - - /** - * Sets the specified value into the field. If the value finds a match, the corresponding record text - * will be displayed in the field. If the value does not match the data value of an existing item, - * and the valueNotFoundText config option is defined, it will be displayed as the default field text. - * Otherwise the field will be blank (although the value will still be set). - * @param {String} value The value to match - */ - setValue : function(v){ - var text = v; - if(this.valueField){ - var r = this.findRecord(this.valueField, v); - if(r){ - text = r.data[this.displayField]; - }else if(this.valueNotFoundText){ - text = this.valueNotFoundText; - } - } - this.lastSelectionText = text; - if(this.hiddenField){ - this.hiddenField.value = v; - } - Ext.form.ComboBox.superclass.setValue.call(this, text); - this.value = v; - }, - - // private - findRecord : function(prop, value){ - var record; - if(this.store.getCount() > 0){ - this.store.each(function(r){ - if(r.data[prop] == value){ - record = r; - return false; - } - }); - } - return record; - }, - - // private - onViewMove : function(e, t){ - this.inKeyMode = false; - }, - - // private - onViewOver : function(e, t){ - if(this.inKeyMode){ // prevent key nav and mouse over conflicts - return; - } - var item = this.view.findItemFromChild(t); - if(item){ - var index = this.view.indexOf(item); - this.select(index, false); - } - }, - - // private - onViewClick : function(doFocus){ - var index = this.view.getSelectedIndexes()[0]; - var r = this.store.getAt(index); - if(r){ - this.onSelect(r, index); - } - if(doFocus !== false){ - this.el.focus(); - } - }, - - // private - restrictHeight : function(){ - this.innerList.dom.style.height = ''; - var inner = this.innerList.dom; - var h = Math.max(inner.clientHeight, inner.offsetHeight, inner.scrollHeight); - this.innerList.setHeight(h < this.maxHeight ? 'auto' : this.maxHeight); - this.list.beginUpdate(); - this.list.setHeight(this.innerList.getHeight()+this.list.getFrameWidth('tb')+(this.resizable?this.handleHeight:0)+this.assetHeight); - this.list.alignTo(this.el, this.listAlign); - this.list.endUpdate(); - }, - - // private - onEmptyResults : function(){ - this.collapse(); - }, - - /** - * Returns true if the dropdown list is expanded, else false. - */ - isExpanded : function(){ - return this.list.isVisible(); - }, - - /** - * Select an item in the dropdown list by its data value - * @param {String} value The data value of the item to select - * @param {Boolean} scrollIntoView False to prevent the dropdown list from autoscrolling to display the - * selected item if it is not currently in view (defaults to true) - * @return {Boolean} valueFound True if the value matched an item in the list, else false - */ - selectByValue : function(v, scrollIntoView){ - if(v !== undefined && v !== null){ - var r = this.findRecord(this.valueField || this.displayField, v); - if(r){ - this.select(this.store.indexOf(r), scrollIntoView); - return true; - } - } - return false; - }, - - /** - * Select an item in the dropdown list by its numeric index in the list - * @param {Number} index The zero-based index of the list item to select - * @param {Boolean} scrollIntoView False to prevent the dropdown list from autoscrolling to display the - * selected item if it is not currently in view (defaults to true) - */ - select : function(index, scrollIntoView){ - this.selectedIndex = index; - this.view.select(index); - if(scrollIntoView !== false){ - var el = this.view.getNode(index); - if(el){ - this.innerList.scrollChildIntoView(el); - } - } - }, - - /** - * Select the next item in the dropdown list (selects the first item by default if no items are currently selected) - */ - selectNext : function(){ - var ct = this.store.getCount(); - if(ct > 0){ - if(this.selectedIndex == -1){ - this.select(0); - }else if(this.selectedIndex < ct-1){ - this.select(this.selectedIndex+1); - } - } - }, - - /** - * Select the previous item in the dropdown list (selects the first item by default if no items are currently selected) - */ - selectPrev : function(){ - var ct = this.store.getCount(); - if(ct > 0){ - if(this.selectedIndex == -1){ - this.select(0); - }else if(this.selectedIndex != 0){ - this.select(this.selectedIndex-1); - } - } - }, - - // private - onKeyUp : function(e){ - if(this.editable !== false && !e.isSpecialKey()){ - this.lastKey = e.getKey(); - this.dqTask.delay(this.queryDelay); - } - }, - - // private - validateBlur : function(){ - return !this.list || !this.list.isVisible(); - }, - - // private - initQuery : function(){ - this.doQuery(this.getRawValue()); - }, - - // private - doForce : function(){ - if(this.el.dom.value.length > 0){ - this.el.dom.value = - this.lastSelectionText === undefined ? '' : this.lastSelectionText; - this.applyEmptyText(); - } - }, - - /** - * Execute a query to filter the dropdown list. Fires the beforequery event prior to performing the - * query allowing the query action to be canceled if needed. - * @param {String} query The sql query to execute - * @param {Boolean} forceAll True to force the query to execute even if there are currently fewer characters - * in the field than the minimum specified by the minChars config option. It also clears any filter previously - * saved in the current store (defaults to false) - */ - doQuery : function(q, forceAll){ - if(q === undefined || q === null){ - q = ''; - } - var qe = { - query: q, - forceAll: forceAll, - combo: this, - cancel:false - }; - if(this.fireEvent('beforequery', qe)===false || qe.cancel){ - return false; - } - q = qe.query; - forceAll = qe.forceAll; - if(forceAll === true || (q.length >= this.minChars)){ - if(this.lastQuery != q){ - this.lastQuery = q; - if(this.mode == 'local'){ - this.selectedIndex = -1; - if(forceAll){ - this.store.clearFilter(); - }else{ - this.store.filter(this.displayField, q); - } - this.onLoad(); - }else{ - this.store.baseParams[this.queryParam] = q; - this.store.load({ - params: this.getParams(q) - }); - this.expand(); - } - }else{ - this.selectedIndex = -1; - this.onLoad(); - } - } - }, - - // private - getParams : function(q){ - var p = {}; - //p[this.queryParam] = q; - if(this.pageSize){ - p.start = 0; - p.limit = this.pageSize; - } - return p; - }, - - /** - * Hides the dropdown list if it is currently expanded. Fires the 'collapse' event on completion. - */ - collapse : function(){ - if(!this.isExpanded()){ - return; - } - this.list.hide(); - Ext.get(document).un('mousedown', this.collapseIf, this); - this.fireEvent('collapse', this); - }, - - // private - collapseIf : function(e){ - if(!e.within(this.wrap) && !e.within(this.list)){ - this.collapse(); - } - }, - - /** - * Expands the dropdown list if it is currently hidden. Fires the 'expand' event on completion. - */ - expand : function(){ - if(this.isExpanded() || !this.hasFocus){ - return; - } - this.list.alignTo(this.el, this.listAlign); - this.list.show(); - Ext.get(document).on('mousedown', this.collapseIf, this); - this.fireEvent('expand', this); - }, - - // private - // Implements the default empty TriggerField.onTriggerClick function - onTriggerClick : function(){ - if(this.disabled){ - return; - } - if(this.isExpanded()){ - this.collapse(); - this.el.focus(); - }else{ - this.hasFocus = true; - this.doQuery(this.triggerAction == 'all' ? - this.doQuery(this.allQuery, true) : this.doQuery(this.getRawValue())); - this.el.focus(); - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/form/DateField.js b/www/extras/extjs/source/widgets/form/DateField.js deleted file mode 100644 index 591e84e30..000000000 --- a/www/extras/extjs/source/widgets/form/DateField.js +++ /dev/null @@ -1,251 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.form.DateField - * @extends Ext.form.TriggerField - * Provides a date input field with a {@link Ext.DatePicker} dropdown and automatic date validation. -* @constructor -* Create a new DateField -* @param {Object} config - */ -Ext.form.DateField = function(config){ - Ext.form.DateField.superclass.constructor.call(this, config); - if(typeof this.minValue == "string") this.minValue = this.parseDate(this.minValue); - if(typeof this.maxValue == "string") this.maxValue = this.parseDate(this.maxValue); - this.ddMatch = null; - if(this.disabledDates){ - var dd = this.disabledDates; - var re = "(?:"; - for(var i = 0; i < dd.length; i++){ - re += dd[i]; - if(i != dd.length-1) re += "|"; - } - this.ddMatch = new RegExp(re + ")"); - } -}; - -Ext.extend(Ext.form.DateField, Ext.form.TriggerField, { - /** - * @cfg {String} format - * The default date format string which can be overriden for localization support. The format must be - * valid according to {@link Date#parseDate} (defaults to 'm/d/y'). - */ - format : "m/d/y", - /** - * @cfg {Array} disabledDays - * An array of days to disable, 0 based. For example, [0, 6] disables Sunday and Saturday (defaults to null). - */ - disabledDays : null, - /** - * @cfg {String} disabledDaysText - * The tooltip to display when the date falls on a disabled day (defaults to 'Disabled') - */ - disabledDaysText : "Disabled", - /** - * @cfg {Array} disabledDates - * An array of "dates" to disable, as strings. These strings will be used to build a dynamic regular - * expression so they are very powerful. Some examples: - *
          - *
        • ["03/08/2003", "09/16/2003"] would disable those exact dates
        • - *
        • ["03/08", "09/16"] would disable those days for every year
        • - *
        • ["^03/08"] would only match the beginning (useful if you are using short years)
        • - *
        • ["03/../2006"] would disable every day in March 2006
        • - *
        • ["^03"] would disable every day in every March
        • - *
        - * In order to support regular expressions, if you are using a date format that has "." in it, you will have to - * escape the dot when restricting dates. For example: ["03\\.08\\.03"]. - */ - disabledDates : null, - /** - * @cfg {String} disabledDatesText - * The tooltip text to display when the date falls on a disabled date (defaults to 'Disabled') - */ - disabledDatesText : "Disabled", - /** - * @cfg {Date/String} minValue - * The minimum allowed date. Can be either a Javascript date object or a string date in a - * valid format (defaults to null). - */ - minValue : null, - /** - * @cfg {Date/String} maxValue - * The maximum allowed date. Can be either a Javascript date object or a string date in a - * valid format (defaults to null). - */ - maxValue : null, - /** - * @cfg {String} minText - * The error text to display when the date in the cell is before minValue (defaults to - * 'The date in this field must be after {minValue}'). - */ - minText : "The date in this field must be after {0}", - /** - * @cfg {String} maxText - * The error text to display when the date in the cell is before maxValue (defaults to - * 'The date in this field must be before {maxValue}'). - */ - maxText : "The date in this field must be before {0}", - /** - * @cfg {String} invalidText - * The error to display when the date in the field is invalid (defaults to - * '{value} is not a valid date - it must be in the format {format}'). - */ - invalidText : "{0} is not a valid date - it must be in the format {1}", - /** - * @cfg {String} triggerClass - * An additional CSS class used to style the trigger button. The trigger will always get the - * class 'x-form-trigger' and triggerClass will be appended if specified (defaults to 'x-form-date-trigger' - * which displays a calendar icon). - */ - triggerClass : 'x-form-date-trigger', - /** - * @cfg {String/Object} autoCreate - * A DomHelper element spec, or true for a default element spec (defaults to - * {tag: "input", type: "text", size: "10", autocomplete: "off"}) - */ - - // private - defaultAutoCreate : {tag: "input", type: "text", size: "10", autocomplete: "off"}, - - // private - validateValue : function(value){ - value = this.formatDate(value); - if(!Ext.form.DateField.superclass.validateValue.call(this, value)){ - return false; - } - if(value.length < 1){ // if it's blank and textfield didn't flag it then it's valid - return true; - } - var svalue = value; - value = this.parseDate(value); - if(!value){ - this.markInvalid(String.format(this.invalidText, svalue, this.format)); - return false; - } - var time = value.getTime(); - if(this.minValue && time < this.minValue.getTime()){ - this.markInvalid(String.format(this.minText, this.formatDate(this.minValue))); - return false; - } - if(this.maxValue && time > this.maxValue.getTime()){ - this.markInvalid(String.format(this.maxText, this.formatDate(this.maxValue))); - return false; - } - if(this.disabledDays){ - var day = value.getDay(); - for(var i = 0; i < this.disabledDays.length; i++) { - if(day === this.disabledDays[i]){ - this.markInvalid(this.disabledDaysText); - return false; - } - } - } - var fvalue = this.formatDate(value); - if(this.ddMatch && this.ddMatch.test(fvalue)){ - this.markInvalid(String.format(this.disabledDatesText, fvalue)); - return false; - } - return true; - }, - - // private - // Provides logic to override the default TriggerField.validateBlur which just returns true - validateBlur : function(){ - return !this.menu || !this.menu.isVisible(); - }, - - /** - * Returns the current date value of the date field - * @return {Date} value The date value - */ - getValue : function(){ - return this.parseDate(Ext.form.DateField.superclass.getValue.call(this)) || ""; - }, - - /** - * Sets the value of the date field. You can pass a date object or any string that can be parsed into a valid - * date, using DateField.format as the date format, according to the same rules as {@link Date#parseDate} - * (the default format used is "m/d/y"). - *
        Usage: - *
        
        -//All of these calls set the same date value (May 4, 2006)
        -
        -//Pass a date object:
        -var dt = new Date('5/4/06');
        -dateField.setValue(dt);
        -
        -//Pass a date string (default format):
        -dateField.setValue('5/4/06');
        -
        -//Pass a date string (custom format):
        -dateField.format = 'Y-m-d';
        -dateField.setValue('2006-5-4');
        -
        - * @param {String/Date} date The date or valid date string - */ - setValue : function(date){ - Ext.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(date))); - }, - - // private - parseDate : function(value){ - return (!value || value instanceof Date) ? - value : Date.parseDate(value, this.format); - }, - - // private - formatDate : function(date){ - return (!date || !(date instanceof Date)) ? - date : date.dateFormat(this.format); - }, - - // private - menuListeners : { - select: function(m, d){ - this.setValue(d); - }, - show : function(){ // retain focus styling - this.onFocus(); - }, - hide : function(){ - this.focus(); - var ml = this.menuListeners; - this.menu.un("select", ml.select, this); - this.menu.un("show", ml.show, this); - this.menu.un("hide", ml.hide, this); - } - }, - - // private - // Implements the default empty TriggerField.onTriggerClick function to display the DatePicker - onTriggerClick : function(){ - if(this.disabled){ - return; - } - if(this.menu == null){ - this.menu = new Ext.menu.DateMenu(); - } - Ext.apply(this.menu.picker, { - minDate : this.minValue, - maxDate : this.maxValue, - disabledDatesRE : this.ddMatch, - disabledDatesText : this.disabledDatesText, - disabledDays : this.disabledDays, - disabledDaysText : this.disabledDaysText, - format : this.format, - minText : String.format(this.minText, this.formatDate(this.minValue)), - maxText : String.format(this.maxText, this.formatDate(this.maxValue)) - }); - this.menu.on(Ext.apply({}, this.menuListeners, { - scope:this - })); - this.menu.picker.setValue(this.getValue() || new Date()); - this.menu.show(this.el, "tl-bl?"); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/form/Field.js b/www/extras/extjs/source/widgets/form/Field.js deleted file mode 100644 index a24ebea6d..000000000 --- a/www/extras/extjs/source/widgets/form/Field.js +++ /dev/null @@ -1,497 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.form.Field - * @extends Ext.Component - * Base class for form fields that provides default event handling, sizing, value handling and other functionality. - * @constructor - * Creates a new Field - * @param {Object} config Configuration options - */ -Ext.form.Field = function(config){ - Ext.form.Field.superclass.constructor.call(this, config); - this.addEvents({ - /** - * @event focus - * Fires when this field receives input focus - * @param {Ext.form.Field} this - */ - focus : true, - /** - * @event blur - * Fires when - * @param {Ext.form.Field} this - */ - blur : true, - /** - * @event specialkey - * Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed. You can check - * {@link Ext.EventObject#getKey} to determine which key was pressed. - * @param {Ext.form.Field} this - * @param {Ext.EventObject} e The event object - */ - specialkey : true, - /** - * @event change - * Fires just before the field blurs if the field value has changed - * @param {Ext.form.Field} this - * @param {Mixed} value The changed value - * @param {Mixed} value The original value - */ - change : true, - /** - * @event invalid - * Fires after the field has been marked as invalid - * @param {Ext.form.Field} this - * @param {String} msg The validation message - */ - invalid : true, - /** - * @event valid - * Fires after the field has been validated with no errors - * @param {Ext.form.Field} this - */ - valid : true - }); -}; - -Ext.extend(Ext.form.Field, Ext.Component, { - /** - * @cfg {String} invalidClass The CSS class to use when marking a field invalid (defaults to "x-form-invalid") - */ - invalidClass : "x-form-invalid", - /** - * @cfg {String} invalidText The error text to use when marking a field invalid and no message is provided (defaults to "The value in this field is invalid") - */ - invalidText : "The value in this field is invalid", - /** - * @cfg {String} focusClass The CSS class to use when the field receives focus (defaults to "x-form-focus") - */ - focusClass : "x-form-focus", - /** - * @cfg {String/Boolean} validationEvent The event that should initiate field validation. Set to false to disable - automatic validation. (defaults to "keyup") - */ - validationEvent : "keyup", - /** - * @cfg {String/Boolean} validateOnBlur Defaults to true. - */ - validateOnBlur : true, - /** - * @cfg {Number} validationDelay The length of time in milliseconds after user input begins until validation is initiated (defaults to 250) - */ - validationDelay : 250, - /** - * @cfg {String/Object} autoCreate A DomHelper element spec, or true for a default element spec (defaults to - * {tag: "input", type: "text", size: "20", autocomplete: "off"}) - */ - defaultAutoCreate : {tag: "input", type: "text", size: "20", autocomplete: "off"}, - /** - * @cfg {String} fieldClass The default CSS class for the field (defaults to "x-form-field") - */ - fieldClass: "x-form-field", - /** - * @cfg {String} msgTarget The location where error text should display. Should be one of the following values (defaults to 'qtip'): - *
        -Value         Description
        ------------   ----------------------------------------------------------------------
        -qtip          Display a quick tip when the user hovers over the field
        -title         Display a default browser title attribute popup
        -under         Add a block div beneath the field containing the error text
        -side          Add an error icon to the right of the field with a popup on hover
        -[element id]  Add the error text directly to the innerHTML of the specified element
        -
        - */ - msgTarget: 'qtip', - /** - * @cfg {String} msgFx Experimental The effect used when displaying a validation message under the field (defaults to 'normal'). - */ - msgFx : 'normal', - - /** - * @cfg {String} inputType The type attribute for input fields - e.g. radio, text, password. (defaults to "text") - */ - inputType : undefined, - - // private - isFormField : true, - - // private - hasFocus : false, - - /** - * @cfg {Mixed} value A value to initialize this field with - */ - value : undefined, - - - /** - * Returns the name attribute of the field if available - * @return {String} name The field name - */ - getName: function(){ - return this.rendered && this.el.dom.name ? this.el.dom.name : (this.hiddenName || ''); - }, - - /** - * Apply the behaviors of this component to an existing element. This is used instead of render(). - * @param {String/HTMLElement/Element} el The id of the node, a DOM Node or an existing Element - * @return {Ext.form.Field} this - */ - applyTo : function(target){ - this.target = target; - this.el = Ext.get(target); - this.render(this.el.dom.parentNode); - return this; - }, - - // private - onRender : function(ct, position){ - if(this.el){ - this.el = Ext.get(this.el); - if(!this.target){ - ct.dom.appendChild(this.el.dom); - } - }else { - var cfg = this.getAutoCreate(); - if(!cfg.name){ - cfg.name = this.name || this.id; - } - if(this.inputType){ - cfg.type = this.inputType; - } - if(this.tabIndex !== undefined){ - cfg.tabIndex = this.tabIndex; - } - this.el = ct.createChild(cfg, position); - } - var type = this.el.dom.type; - if(type){ - if(type == 'password'){ - type = 'text'; - } - this.el.addClass('x-form-'+type); - } - if(!this.customSize && (this.width || this.height)){ - this.setSize(this.width || "", this.height || ""); - } - if(this.readOnly){ - this.el.dom.readOnly = true; - } - - this.el.addClass([this.fieldClass, this.cls]); - this.initValue(); - }, - - // private - initValue : function(){ - if(this.value !== undefined){ - this.setValue(this.value); - }else if(this.el.dom.value.length > 0){ - this.setValue(this.el.dom.value); - } - }, - - // private - afterRender : function(){ - Ext.form.Field.superclass.afterRender.call(this); - this.initEvents(); - }, - - // private - fireKey : function(e){ - if(e.isNavKeyPress()){ - this.fireEvent("specialkey", this, e); - } - }, - - /** - * Resets the current field value to the originally-loaded value and clears any validation messages - */ - reset : function(){ - this.setValue(this.originalValue); - this.clearInvalid(); - }, - - // private - initEvents : function(){ - this.el.on(Ext.isIE ? "keydown" : "keypress", this.fireKey, this); - this.el.on("focus", this.onFocus, this); - this.el.on("blur", this.onBlur, this); - - // reference to original value for reset - this.originalValue = this.getValue(); - }, - - // private - onFocus : function(){ - if(!Ext.isOpera){ // don't touch in Opera - this.el.addClass(this.focusClass); - } - this.hasFocus = true; - this.startValue = this.getValue(); - this.fireEvent("focus", this); - }, - - // private - onBlur : function(){ - this.el.removeClass(this.focusClass); - this.hasFocus = false; - if(this.validationEvent !== false && this.validateOnBlur && this.validationEvent != "blur"){ - this.validate(); - } - var v = this.getValue(); - if(v != this.startValue){ - this.fireEvent('change', this, v, this.startValue); - } - this.fireEvent("blur", this); - }, - - /** - * Sets the height and width of the field - * @param {Number} width The new field width in pixels - * @param {Number} height The new field height in pixels - */ - setSize : function(w, h){ - if(!this.rendered || !this.el){ - this.width = w; - this.height = h; - return; - } - if(w){ - w = this.adjustWidth(this.el.dom.tagName, w); - this.el.setWidth(w); - } - if(h){ - this.el.setHeight(h); - } - var h = this.el.dom.offsetHeight; // force browser recalc - }, - - /** - * Returns whether or not the field value is currently valid - * @param {Boolean} preventMark True to disable marking the field invalid - * @return {Boolean} True if the value is valid, else false - */ - isValid : function(preventMark){ - if(this.disabled){ - return true; - } - var restore = this.preventMark; - this.preventMark = preventMark === true; - var v = this.validateValue(this.getRawValue()); - this.preventMark = restore; - return v; - }, - - /** - * Validates the field value - * @return {Boolean} True if the value is valid, else false - */ - validate : function(){ - if(this.disabled || this.validateValue(this.getRawValue())){ - this.clearInvalid(); - return true; - } - return false; - }, - - // private - // Subclasses should provide the validation implementation by overriding this - validateValue : function(value){ - return true; - }, - - /** - * Mark this field as invalid - * @param {String} msg The validation message - */ - markInvalid : function(msg){ - if(!this.rendered || this.preventMark){ // not rendered - return; - } - this.el.addClass(this.invalidClass); - msg = msg || this.invalidText; - switch(this.msgTarget){ - case 'qtip': - this.el.dom.qtip = msg; - this.el.dom.qclass = 'x-form-invalid-tip'; - break; - case 'title': - this.el.dom.title = msg; - break; - case 'under': - if(!this.errorEl){ - var elp = this.el.findParent('.x-form-element', 5, true); - this.errorEl = elp.createChild({cls:'x-form-invalid-msg'}); - this.errorEl.setWidth(elp.getWidth(true)-20); - } - this.errorEl.update(msg); - Ext.form.Field.msgFx[this.msgFx].show(this.errorEl, this); - break; - case 'side': - if(!this.errorIcon){ - var elp = this.el.findParent('.x-form-element', 5, true); - this.errorIcon = elp.createChild({cls:'x-form-invalid-icon'}); - } - this.alignErrorIcon(); - this.errorIcon.dom.qtip = msg; - this.errorIcon.dom.qclass = 'x-form-invalid-tip'; - this.errorIcon.show(); - break; - default: - var t = Ext.getDom(this.msgTarget); - t.innerHTML = msg; - t.style.display = this.msgDisplay; - break; - } - this.fireEvent('invalid', this, msg); - }, - - // private - alignErrorIcon : function(){ - this.errorIcon.alignTo(this.el, 'tl-tr', [2, 0]); - }, - - /** - * Clear any invalid styles/messages for this field - */ - clearInvalid : function(){ - if(!this.rendered || this.preventMark){ // not rendered - return; - } - this.el.removeClass(this.invalidClass); - switch(this.msgTarget){ - case 'qtip': - this.el.dom.qtip = ''; - break; - case 'title': - this.el.dom.title = ''; - break; - case 'under': - if(this.errorEl){ - Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl, this); - } - break; - case 'side': - if(this.errorIcon){ - this.errorIcon.dom.qtip = ''; - this.errorIcon.hide(); - } - break; - default: - var t = Ext.getDom(this.msgTarget); - t.innerHTML = ''; - t.style.display = 'none'; - break; - } - this.fireEvent('valid', this); - }, - - /** - * Returns the raw data value which may or may not be a valid, defined value. To return a normalized value see {@link #getValue}. - * @return {Mixed} value The field value - */ - getRawValue : function(){ - return this.el.getValue(); - }, - - /** - * Returns the normalized data value (undefined or emptyText will be returned as ''). To return the raw value see {@link #getRawValue}. - * @return {Mixed} value The field value - */ - getValue : function(){ - var v = this.el.getValue(); - if(v == this.emptyText || v === undefined){ - v = ''; - } - return v; - }, - - /** - * Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see {@link #setValue}. - * @param {Mixed} value The value to set - */ - setRawValue : function(v){ - return this.el.dom.value = v; - }, - - /** - * Sets a data value into the field and validates it. To set the value directly without validation see {@link #setRawValue}. - * @param {Mixed} value The value to set - */ - setValue : function(v){ - this.value = v; - if(this.rendered){ - this.el.dom.value = v; - this.validate(); - } - }, - - // private - adjustWidth : function(tag, w){ - tag = tag.toLowerCase(); - if(typeof w == 'number' && Ext.isStrict && !Ext.isSafari){ - if(Ext.isIE && (tag == 'input' || tag == 'textarea')){ - if(tag == 'input'){ - return w + 2; - } - if(tag = 'textarea'){ - return w-2; - } - }else if(Ext.isGecko && tag == 'textarea'){ - return w-6; - }else if(Ext.isOpera){ - if(tag == 'input'){ - return w + 2; - } - if(tag = 'textarea'){ - return w-2; - } - } - } - return w; - } -}); - - -// anything other than normal should be considered experimental -Ext.form.Field.msgFx = { - normal : { - show: function(msgEl, f){ - msgEl.setDisplayed('block'); - }, - - hide : function(msgEl, f){ - msgEl.setDisplayed(false).update(''); - } - }, - - slide : { - show: function(msgEl, f){ - msgEl.slideIn('t', {stopFx:true}); - }, - - hide : function(msgEl, f){ - msgEl.slideOut('t', {stopFx:true,useDisplay:true}); - } - }, - - slideRight : { - show: function(msgEl, f){ - msgEl.fixDisplay(); - msgEl.alignTo(f.el, 'tl-tr'); - msgEl.slideIn('l', {stopFx:true}); - }, - - hide : function(msgEl, f){ - msgEl.slideOut('l', {stopFx:true,useDisplay:true}); - } - } -}; diff --git a/www/extras/extjs/source/widgets/form/Form.js b/www/extras/extjs/source/widgets/form/Form.js deleted file mode 100644 index 77daf452d..000000000 --- a/www/extras/extjs/source/widgets/form/Form.js +++ /dev/null @@ -1,295 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.form.Form - * @extends Ext.form.BasicForm - * Adds the ability to dynamically render forms with JS to {@link Ext.form.BasicForm}. - * @constructor - * @param {Object} config Configuration options - */ -Ext.form.Form = function(config){ - Ext.form.Form.superclass.constructor.call(this, null, config); - this.url = this.url || this.action; - if(!this.root){ - this.root = new Ext.form.Layout(Ext.applyIf({ - id: Ext.id() - }, config)); - } - this.active = this.root; - /** - * Array of all the buttons that have been added to this form via addButton - * @type Array - */ - this.buttons = []; - this.addEvents({ - /** - * @event clientvalidation - * If the monitorValid config option is true, this event fires repetitively to notify of valid state - * @param {Form} this - * @param {Boolean} valid true if the form has passed client-side validation - */ - clientvalidation: true - }); -}; - -Ext.extend(Ext.form.Form, Ext.form.BasicForm, { - /** - * @cfg {Number} labelWidth The width of labels. This property cascades to child containers. - */ - /** - * @cfg {String} itemCls A css class to apply to the x-form-item of fields. This property cascades to child containers. - */ - /** - * @cfg {String} buttonAlign Valid values are "left," "center" and "right" (defaults to "center") - */ - buttonAlign:'center', - - /** - * @cfg {Number} minButtonWidth Minimum width of all buttons (defaults to 75) - */ - minButtonWidth:75, - - /** - * @cfg {String} labelAlign Valid values are "left," "top" and "right" (defaults to "left"). - * This property cascades to child containers if not set. - */ - labelAlign:'left', - - /** - * @cfg {Boolean} monitorValid If true the form monitors it's valid state client-side and - * fires a looping event with that state. This is required to bind buttons to the valid - * state using the config value bindForm:true on the button. - */ - monitorValid : false, - - /** - * @cfg {Number} monitorPoll The milliseconds to poll valid state, ignored if monitorValid is not true (defaults to 200) - */ - monitorPoll : 200, - - /** - * Opens the a new {@link Ext.form.Column} container in the layout stack. If fields are passed after the config, the - * fields are added and the column is closed. If no fields are passed the column remains open - * until end() is called. - * @param {Object} config The config to pass to the column - * @param {Field} field1 (optional) - * @param {Field} field2 (optional) - * @param {Field} etc (optional) - * @return Column The column container object - */ - column : function(c){ - var col = new Ext.form.Column(c); - this.start(col); - if(arguments.length > 1){ // duplicate code required because of Opera - this.add.apply(this, Array.prototype.slice.call(arguments, 1)); - this.end(); - } - return col; - }, - - /** - * Opens the a new {@link Ext.form.FieldSet} container in the layout stack. If fields are passed after the config, the - * fields are added and the fieldset is closed. If no fields are passed the fieldset remains open - * until end() is called. - * @param {Object} config The config to pass to the fieldset - * @param {Field} field1 (optional) - * @param {Field} field2 (optional) - * @param {Field} etc (optional) - * @return FieldSet The fieldset container object - */ - fieldset : function(c){ - var fs = new Ext.form.FieldSet(c); - this.start(fs); - if(arguments.length > 1){ // duplicate code required because of Opera - this.add.apply(this, Array.prototype.slice.call(arguments, 1)); - this.end(); - } - return fs; - }, - - /** - * Opens the a new {@link Ext.form.Layout} container in the layout stack. If fields are passed after the config, the - * fields are added and the container is closed. If no fields are passed the container remains open - * until end() is called. - * @param {Object} config The config to pass to the Layout - * @param {Field} field1 (optional) - * @param {Field} field2 (optional) - * @param {Field} etc (optional) - * @return Layout The container object - */ - container : function(c){ - var l = new Ext.form.Layout(c); - this.start(l); - if(arguments.length > 1){ // duplicate code required because of Opera - this.add.apply(this, Array.prototype.slice.call(arguments, 1)); - this.end(); - } - return l; - }, - - /** - * Opens the passed container in the layout stack. The container can be any {@link Ext.form.Layout} or subclass. - * @param {Object} container A Ext.form.Layout or subclass of Layout - * @return {Form} this - */ - start : function(c){ - // cascade label info - Ext.applyIf(c, {'labelAlign': this.active.labelAlign, 'labelWidth': this.active.labelWidth, 'itemCls': this.active.itemCls}); - this.active.stack.push(c); - c.ownerCt = this.active; - this.active = c; - return this; - }, - - /** - * Closes the current open container - * @return {Form} this - */ - end : function(){ - if(this.active == this.root){ - return this; - } - this.active = this.active.ownerCt; - return this; - }, - - /** - * Add Ext.form components to the current open container (e.g. column, fieldset, etc) - * @param {Field} field1 - * @param {Field} field2 (optional) - * @param {Field} etc (optional) - * @return {Form} this - */ - add : function(){ - this.active.stack.push.apply(this.active.stack, arguments); - var r = []; - for(var i = 0, a = arguments, len = a.length; i < len; i++) { - if(a[i].isFormField){ - r.push(a[i]); - } - } - if(r.length > 0){ - Ext.form.Form.superclass.add.apply(this, r); - } - return this; - }, - - /** - * Render this form into the passed container. This should only be called once! - * @param {String/HTMLElement/Element} container The element this component should be rendered into - * @return {Form} this - */ - render : function(ct){ - ct = Ext.get(ct); - var o = this.autoCreate || { - tag: 'form', - method : this.method || 'POST', - id : this.id || Ext.id() - }; - this.initEl(ct.createChild(o)); - - this.root.render(this.el); - - this.items.each(function(f){ - f.render('x-form-el-'+f.id); - }); - - if(this.buttons.length > 0){ - // tables are required to maintain order and for correct IE layout - var tb = this.el.createChild({cls:'x-form-btns-ct', cn: { - cls:"x-form-btns x-form-btns-"+this.buttonAlign, - html:'
        ' - }}, null, true); - var tr = tb.getElementsByTagName('tr')[0]; - for(var i = 0, len = this.buttons.length; i < len; i++) { - var b = this.buttons[i]; - var td = document.createElement('td'); - td.className = 'x-form-btn-td'; - b.render(tr.appendChild(td)); - } - } - if(this.monitorValid){ // initialize after render - this.startMonitoring(); - } - return this; - }, - - /** - * Adds a button to the footer of the form - this must be called before the form is rendered. - * @param {String/Object} config A string becomes the button text, an object can either be a Button config - * object or a valid Ext.DomHelper element config - * @param {Function} handler The function called when the button is clicked - * @param {Object} scope (optional) The scope of the handler function - * @return {Ext.Button} - */ - addButton : function(config, handler, scope){ - var bc = { - handler: handler, - scope: scope, - minWidth: this.minButtonWidth, - hideParent:true - }; - if(typeof config == "string"){ - bc.text = config; - }else{ - Ext.apply(bc, config); - } - var btn = new Ext.Button(null, bc); - this.buttons.push(btn); - return btn; - }, - - /** - * Starts monitoring of the valid state of this form. Usually this is don't by passing the config - * option "monitorValid" - */ - startMonitoring : function(){ - if(!this.bound){ - this.bound = true; - Ext.TaskMgr.start({ - run : this.bindHandler, - interval : this.monitorPoll || 200, - scope: this - }); - } - }, - - /** - * Stops monitoring of the valid state of this form - */ - stopMonitoring : function(){ - this.bound = false; - }, - - // private - bindHandler : function(){ - if(!this.bound){ - return false; // stops binding - } - var valid = true; - this.items.each(function(f){ - if(!f.isValid(true)){ - valid = false; - return false; - } - }); - for(var i = 0, len = this.buttons.length; i < len; i++){ - var btn = this.buttons[i]; - if(btn.formBind === true && btn.disabled === valid){ - btn.setDisabled(!valid); - } - } - this.fireEvent('clientvalidation', this, valid); - } -}); - - -// back compat -Ext.Form = Ext.form.Form; - diff --git a/www/extras/extjs/source/widgets/form/Layout.js b/www/extras/extjs/source/widgets/form/Layout.js deleted file mode 100644 index a798e9f58..000000000 --- a/www/extras/extjs/source/widgets/form/Layout.js +++ /dev/null @@ -1,201 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.form.Layout - * @extends Ext.Component - * Creates a container for layout and rendering of fields in an {@link Ext.form.Form}. - * @constructor - * @param {Object} config Configuration options - */ -Ext.form.Layout = function(config){ - Ext.form.Layout.superclass.constructor.call(this, config); - this.stack = []; -}; - -Ext.extend(Ext.form.Layout, Ext.Component, { - /** - * @cfg {String/Object} autoCreate - * A DomHelper element spec used to autocreate the layout (defaults to {tag: 'div', cls: 'x-form-ct'}) - */ - /** - * @cfg {String/Object/Function} style - * A style specification string eg "width:100px", or object in the form {width:"100px"}, or - * a function which returns such a specification. - */ - /** - * @cfg {String} labelAlign - * Valid values are "left," "top" and "right" (defaults to "left") - */ - /** - * @cfg {Number} labelWidth - * Fixed width in pixels of all field labels (defaults to undefined) - */ - /** - * @cfg {Boolean} clear - * True to add a clearing element at the end of this layout, equivalent to CSS clear: both (defaults to true) - */ - clear : true, - /** - * @cfg {String} labelSeparator - * The separator to use after field labels (defaults to ':') - */ - labelSeparator : ':', - /** - * @cfg {Boolean} hideLabels - * True to suppress the display of field labels in this layout (defaults to false) - */ - hideLabels : false, - - // private - defaultAutoCreate : {tag: 'div', cls: 'x-form-ct'}, - - // private - onRender : function(ct, position){ - if(this.el){ // from markup - this.el = Ext.get(this.el); - }else { // generate - var cfg = this.getAutoCreate(); - this.el = ct.createChild(cfg, position); - } - if(this.style){ - this.el.applyStyles(this.style); - } - if(this.labelAlign){ - this.el.addClass('x-form-label-'+this.labelAlign); - } - if(this.hideLabels){ - this.labelStyle = "display:none"; - this.elementStyle = "padding-left:0;"; - }else{ - if(typeof this.labelWidth == 'number'){ - this.labelStyle = "width:"+this.labelWidth+"px;"; - this.elementStyle = "padding-left:"+((this.labelWidth+(typeof this.labelPad == 'number' ? this.labelPad : 5))+'px')+";"; - } - if(this.labelAlign == 'top'){ - this.labelStyle = "width:auto;"; - this.elementStyle = "padding-left:0;"; - } - } - var stack = this.stack; - var slen = stack.length; - if(slen > 0){ - if(!this.fieldTpl){ - var t = new Ext.Template( - '
        ', - '', - '
        ', - '
        ', - '
        ' - ); - t.disableFormats = true; - t.compile(); - Ext.form.Layout.prototype.fieldTpl = t; - } - for(var i = 0; i < slen; i++) { - if(stack[i].isFormField){ - this.renderField(stack[i]); - }else{ - this.renderComponent(stack[i]); - } - } - } - if(this.clear){ - this.el.createChild({cls:'x-form-clear'}); - } - }, - - // private - renderField : function(f){ - this.fieldTpl.append(this.el, [ - f.id, f.fieldLabel, - f.labelStyle||this.labelStyle||'', - this.elementStyle||'', - typeof f.labelSeparator == 'undefined' ? this.labelSeparator : f.labelSeparator, - f.itemCls||this.itemCls||'' - ]); - }, - - // private - renderComponent : function(c){ - c.render(this.el); - } -}); - -/** - * @class Ext.form.Column - * @extends Ext.form.Layout - * Creates a column container for layout and rendering of fields in an {@link Ext.form.Form}. - * @constructor - * @param {Object} config Configuration options - */ -Ext.form.Column = function(config){ - Ext.form.Column.superclass.constructor.call(this, config); -}; - -Ext.extend(Ext.form.Column, Ext.form.Layout, { - /** - * @cfg {Number} width - * The fixed width of the column in pixels (defaults to auto) - */ - /** - * @cfg {String/Object} autoCreate - * A DomHelper element spec used to autocreate the column (defaults to {tag: 'div', cls: 'x-form-ct x-form-column'}) - */ - - // private - defaultAutoCreate : {tag: 'div', cls: 'x-form-ct x-form-column'}, - - // private - onRender : function(ct, position){ - Ext.form.Column.superclass.onRender.call(this, ct, position); - if(this.width){ - this.el.setWidth(this.width); - } - } -}); - -/** - * @class Ext.form.FieldSet - * @extends Ext.form.Layout - * Creates a fieldset container for layout and rendering of fields in an {@link Ext.form.Form}. - * @constructor - * @param {Object} config Configuration options - */ -Ext.form.FieldSet = function(config){ - Ext.form.FieldSet.superclass.constructor.call(this, config); -}; - -Ext.extend(Ext.form.FieldSet, Ext.form.Layout, { - /** - * @cfg {String} legend - * The text to display as the legend for the FieldSet (defaults to '') - */ - /** - * @cfg {String/Object} autoCreate - * A DomHelper element spec used to autocreate the fieldset (defaults to {tag: 'fieldset', cn: {tag:'legend'}}) - */ - - // private - defaultAutoCreate : {tag: 'fieldset', cn: {tag:'legend'}}, - - // private - onRender : function(ct, position){ - Ext.form.FieldSet.superclass.onRender.call(this, ct, position); - if(this.legend){ - this.setLegend(this.legend); - } - }, - - // private - setLegend : function(text){ - if(this.rendered){ - this.el.child('legend').update(text); - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/form/NumberField.js b/www/extras/extjs/source/widgets/form/NumberField.js deleted file mode 100644 index 9fb357dd1..000000000 --- a/www/extras/extjs/source/widgets/form/NumberField.js +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.form.NumberField - * @extends Ext.form.TextField - * Numeric text field that provides automatic keystroke filtering and numeric validation. - * @constructor - * Creates a new NumberField - * @param {Object} config Configuration options - */ -Ext.form.NumberField = function(config){ - Ext.form.NumberField.superclass.constructor.call(this, config); -}; - -Ext.extend(Ext.form.NumberField, Ext.form.TextField, { - /** - * @cfg {String} fieldClass The default CSS class for the field (defaults to "x-form-field x-form-num-field") - */ - fieldClass: "x-form-field x-form-num-field", - /** - * @cfg {Boolean} allowDecimals False to disallow decimal values (defaults to true) - */ - allowDecimals : true, - /** - * @cfg {String} decimalSeparator Character(s) to allow as the decimal separator (defaults to '.') - */ - decimalSeparator : ".", - /** - * @cfg {Number} decimalPrecision The maximum precision to display after the decimal separator (defaults to 2) - */ - decimalPrecision : 2, - /** - * @cfg {Boolean} allowNegative False to require only positive numbers (defaults to true) - */ - allowNegative : true, - /** - * @cfg {Number} minValue The minimum allowed value (defaults to Number.NEGATIVE_INFINITY) - */ - minValue : Number.NEGATIVE_INFINITY, - /** - * @cfg {Number} maxValue The maximum allowed value (defaults to Number.MAX_VALUE) - */ - maxValue : Number.MAX_VALUE, - /** - * @cfg {String} minText Error text to display if the minimum value validation fails (defaults to "The minimum value for this field is {minValue}") - */ - minText : "The minimum value for this field is {0}", - /** - * @cfg {String} maxText Error text to display if the maximum value validation fails (defaults to "The maximum value for this field is {maxValue}") - */ - maxText : "The maximum value for this field is {0}", - /** - * @cfg {String} nanText Error text to display if the value is not a valid number. For example, this can happen - * if a valid character like '.' or '-' is left in the field with no number (defaults to "{value} is not a valid number") - */ - nanText : "{0} is not a valid number", - - // private - initEvents : function(){ - Ext.form.NumberField.superclass.initEvents.call(this); - var allowed = "0123456789"; - if(this.allowDecimals){ - allowed += this.decimalSeparator; - } - if(this.allowNegative){ - allowed += "-"; - } - var keyPress = function(e){ - var k = e.getKey(); - if(!Ext.isIE && (e.isNavKeyPress() || k == e.BACKSPACE || (k == e.DELETE && e.button == -1))){ - return; - } - var c = e.getCharCode(); - if(allowed.indexOf(String.fromCharCode(c)) === -1){ - e.stopEvent(); - } - }; - this.el.on("keypress", keyPress, this); - }, - - // private - validateValue : function(value){ - if(!Ext.form.NumberField.superclass.validateValue.call(this, value)){ - return false; - } - if(value.length < 1){ // if it's blank and textfield didn't flag it then it's valid - return true; - } - value = String(value).replace(this.decimalSeparator, "."); - if(isNaN(value)){ - this.markInvalid(String.format(this.nanText, value)); - return false; - } - var num = this.parseValue(value); - if(num < this.minValue){ - this.markInvalid(String.format(this.minText, this.minValue)); - return false; - } - if(num > this.maxValue){ - this.markInvalid(String.format(this.maxText, this.maxValue)); - return false; - } - return true; - }, - - // private - parseValue : function(value){ - return parseFloat(String(value).replace(this.decimalSeparator, ".")); - }, - - // private - fixPrecision : function(value){ - if(!this.allowDecimals || this.decimalPrecision == -1 || isNaN(value) || value == 0 || !value){ - return value; - } - // this should work but doesn't due to precision error in JS - // var scale = Math.pow(10, this.decimalPrecision); - // var fixed = this.decimalPrecisionFcn(value * scale); - // return fixed / scale; - // - // so here's our workaround: - var scale = Math.pow(10, this.decimalPrecision+1); - var fixed = this.decimalPrecisionFcn(value * scale); - fixed = this.decimalPrecisionFcn(fixed/10); - return fixed / (scale/10); - }, - - // private - decimalPrecisionFcn : function(v){ - return Math.floor(v); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/form/Radio.js b/www/extras/extjs/source/widgets/form/Radio.js deleted file mode 100644 index 83781d250..000000000 --- a/www/extras/extjs/source/widgets/form/Radio.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.form.Radio - * @extends Ext.form.Checkbox - * Single radio field. Same as Checkbox, but provided as a convenience for automatically setting the input type. - * Radio grouping is handled automatically by the browser if you give each radio in a group the same name. - * @constructor - * Creates a new Radio - * @param {Object} config Configuration options - */ -Ext.form.Radio = function(){ - Ext.form.Radio.superclass.constructor.apply(this, arguments); -}; -Ext.extend(Ext.form.Radio, Ext.form.Checkbox, { - inputType: 'radio' -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/form/TextArea.js b/www/extras/extjs/source/widgets/form/TextArea.js deleted file mode 100644 index 53c019bff..000000000 --- a/www/extras/extjs/source/widgets/form/TextArea.js +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.form.TextArea - * @extends Ext.form.TextField - * Multiline text field. Can be used as a direct replacement for traditional textarea fields, plus adds - * support for auto-sizing. - * @constructor - * Creates a new TextArea - * @param {Object} config Configuration options - */ -Ext.form.TextArea = function(config){ - Ext.form.TextArea.superclass.constructor.call(this, config); - // these are provided exchanges for backwards compat - // minHeight/maxHeight were replaced by growMin/growMax to be - // compatible with TextField growing config values - if(this.minHeight !== undefined){ - this.growMin = this.minHeight; - } - if(this.maxHeight !== undefined){ - this.growMax = this.maxHeight; - } -}; - -Ext.extend(Ext.form.TextArea, Ext.form.TextField, { - /** - * @cfg {Number} growMin The minimum height to allow when grow = true (defaults to 60) - */ - growMin : 60, - /** - * @cfg {Number} growMax The maximum height to allow when grow = true (defaults to 1000) - */ - growMax: 1000, - /** - * @cfg {Boolean} preventScrollbars True to prevent scrollbars from appearing regardless of how much text is - * in the field (equivalent to setting overflow: hidden, defaults to false) - */ - preventScrollbars: false, - - // private - onRender : function(ct, position){ - if(!this.el){ - this.defaultAutoCreate = { - tag: "textarea", - style:"width:300px;height:60px;", - autocomplete: "off" - }; - } - Ext.form.TextArea.superclass.onRender.call(this, ct, position); - if(this.grow){ - this.textSizeEl = Ext.DomHelper.append(document.body, { - tag: "pre", cls: "x-form-grow-sizer" - }); - if(this.preventScrollbars){ - this.el.setStyle("overflow", "hidden"); - } - this.el.setHeight(this.growMin); - } - }, - - // private - onKeyUp : function(e){ - if(!e.isNavKeyPress() || e.getKey() == e.ENTER){ - this.autoSize(); - } - }, - - /** - * Automatically grows the field to accomodate the height of the text up to the maximum field height allowed. - * This only takes effect if grow = true and fires the autosize event. - */ - autoSize : function(){ - if(!this.grow || !this.textSizeEl){ - return; - } - var el = this.el; - var v = el.dom.value; - var ts = this.textSizeEl; - Ext.fly(ts).setWidth(this.el.getWidth()); - if(v.length < 1){ - v = "  "; - }else{ - v += " \n "; - } - if(Ext.isIE){ - v = v.replace(/\n/g, '
        '); - } - ts.innerHTML = v; - var h = Math.min(this.growMax, Math.max(ts.offsetHeight, this.growMin)); - if(h != this.lastHeight){ - this.lastHeight = h; - this.el.setHeight(h); - this.fireEvent("autosize", this, h); - } - }, - - // private - setValue : function(v){ - Ext.form.TextArea.superclass.setValue.call(this, v); - this.autoSize(); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/form/TextField.js b/www/extras/extjs/source/widgets/form/TextField.js deleted file mode 100644 index 1464eb14b..000000000 --- a/www/extras/extjs/source/widgets/form/TextField.js +++ /dev/null @@ -1,288 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.form.TextField - * @extends Ext.form.Field - * Basic text field. Can be used as a direct replacement for traditional text inputs, or as the base - * class for more sophisticated input controls (like {@link Ext.form.TextArea} and {@link Ext.form.ComboBox}). - * @constructor - * Creates a new TextField - * @param {Object} config Configuration options - */ -Ext.form.TextField = function(config){ - Ext.form.TextField.superclass.constructor.call(this, config); - this.addEvents({ - /** - * @event autosize - * Fires when the autosize function is triggered. The field may or may not have actually changed size - * according to the default logic, but this event provides a hook for the developer to apply additional - * logic at runtime to resize the field if needed. - * @param {Ext.form.Field} this This text field - * @param {Number} width The new field width - */ - autosize : true - }); -}; - -Ext.extend(Ext.form.TextField, Ext.form.Field, { - /** - * @cfg {Boolean} grow True if this field should automatically grow and shrink to its content - */ - grow : false, - /** - * @cfg {Number} growMin The minimum width to allow when grow = true (defaults to 30) - */ - growMin : 30, - /** - * @cfg {Number} growMax The maximum width to allow when grow = true (defaults to 800) - */ - growMax : 800, - /** - * @cfg {String} vtype A validation type name as defined in {@link Ext.form.VTypes} (defaults to null) - */ - vtype : null, - /** - * @cfg {String} maskRe An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null) - */ - maskRe : null, - /** - * @cfg {Boolean} disableKeyFilter True to disable input keystroke filtering (defaults to false) - */ - disableKeyFilter : false, - /** - * @cfg {Boolean} allowBlank False to validate that the value length > 0 (defaults to true) - */ - allowBlank : true, - /** - * @cfg {Number} minLength Minimum input field length required (defaults to 0) - */ - minLength : 0, - /** - * @cfg {Number} maxLength Maximum input field length allowed (defaults to Number.MAX_VALUE) - */ - maxLength : Number.MAX_VALUE, - /** - * @cfg {String} minLengthText Error text to display if the minimum length validation fails (defaults to "The minimum length for this field is {minLength}") - */ - minLengthText : "The minimum length for this field is {0}", - /** - * @cfg {String} maxLengthText Error text to display if the maximum length validation fails (defaults to "The maximum length for this field is {maxLength}") - */ - maxLengthText : "The maximum length for this field is {0}", - /** - * @cfg {Boolean} selectOnFocus True to automatically select any existing field text when the field receives input focus (defaults to false) - */ - selectOnFocus : false, - /** - * @cfg {String} blankText Error text to display if the allow blank validation fails (defaults to "This field is required") - */ - blankText : "This field is required", - /** - * @cfg {Function} validator A custom validation function to be called during field validation (defaults to null). - * If available, this function will be called only after the basic validators all return true, and will be passed the - * current field value and expected to return boolean true if the value is valid or a string error message if invalid. - */ - validator : null, - /** - * @cfg {RegExp} regex A JavaScript RegExp object to be tested against the field value during validation (defaults to null). - * If available, this regex will be evaluated only after the basic validators all return true, and will be passed the - * current field value. If the test fails, the field will be marked invalid using {@link #regexText}. - */ - regex : null, - /** - * @cfg {String} regexText The error text to display if {@link #regex} is used and the test fails during validation (defaults to "") - */ - regexText : "", - /** - * @cfg {String} emptyText The default text to display in an empty field (defaults to null). - */ - emptyText : null, - /** - * @cfg {String} emptyClass The CSS class to apply to an empty field to style the {@link #emptyText} (defaults to - * 'x-form-empty-field'). This class is automatically added and removed as needed depending on the current field value. - */ - emptyClass : 'x-form-empty-field', - - // private - initEvents : function(){ - Ext.form.TextField.superclass.initEvents.call(this); - if(this.validationEvent == 'keyup'){ - this.validationTask = new Ext.util.DelayedTask(this.validate, this); - this.el.on('keyup', this.filterValidation, this); - } - else if(this.validationEvent !== false){ - this.el.on(this.validationEvent, this.validate, this, {buffer: this.validationDelay}); - } - if(this.selectOnFocus || this.emptyText){ - this.on("focus", this.preFocus, this); - if(this.emptyText){ - this.on('blur', this.postBlur, this); - this.applyEmptyText(); - } - } - if(this.maskRe || (this.vtype && this.disableKeyFilter !== true && (this.maskRe = Ext.form.VTypes[this.vtype+'Mask']))){ - this.el.on("keypress", this.filterKeys, this); - } - if(this.grow){ - this.el.on("keyup", this.onKeyUp, this, {buffer:50}); - this.el.on("click", this.autoSize, this); - } - }, - - filterValidation : function(e){ - if(!e.isNavKeyPress()){ - this.validationTask.delay(this.validationDelay); - } - }, - - // private - onKeyUp : function(e){ - if(!e.isNavKeyPress()){ - this.autoSize(); - } - }, - - /** - * Resets the current field value to the originally-loaded value and clears any validation messages. - * Also adds emptyText and emptyClass if the original value was blank. - */ - reset : function(){ - Ext.form.TextField.superclass.reset.call(this); - this.applyEmptyText(); - }, - - applyEmptyText : function(){ - if(this.rendered && this.emptyText && this.getRawValue().length < 1){ - this.setRawValue(this.emptyText); - this.el.addClass(this.emptyClass); - } - }, - - // private - preFocus : function(){ - if(this.emptyText){ - if(this.getRawValue() == this.emptyText){ - this.setRawValue(''); - } - this.el.removeClass(this.emptyClass); - } - if(this.selectOnFocus){ - this.el.dom.select(); - } - }, - - // private - postBlur : function(){ - this.applyEmptyText(); - }, - - // private - filterKeys : function(e){ - var k = e.getKey(); - if(!Ext.isIE && (e.isNavKeyPress() || k == e.BACKSPACE || (k == e.DELETE && e.button == -1))){ - return; - } - var c = e.getCharCode(); - if(!this.maskRe.test(String.fromCharCode(c) || '')){ - e.stopEvent(); - } - }, - - setValue : function(v){ - if(this.emptyText && v !== undefined && v !== null && v !== ''){ - this.el.removeClass(this.emptyClass); - } - Ext.form.TextField.superclass.setValue.apply(this, arguments); - }, - - /** - * Validates a value according to the field's validation rules and marks the field as invalid - * if the validation fails - * @param {Mixed} value The value to validate - * @return {Boolean} True if the value is valid, else false - */ - validateValue : function(value){ - if(value.length < 1 || value === this.emptyText){ // if it's blank - if(this.allowBlank){ - this.clearInvalid(); - return true; - }else{ - this.markInvalid(this.blankText); - return false; - } - } - if(value.length < this.minLength){ - this.markInvalid(String.format(this.minLengthText, this.minLength)); - return false; - } - if(value.length > this.maxLength){ - this.markInvalid(String.format(this.maxLengthText, this.maxLength)); - return false; - } - if(this.vtype){ - var vt = Ext.form.VTypes; - if(!vt[this.vtype](value)){ - this.markInvalid(this.vtypeText || vt[this.vtype +'Text']); - return false; - } - } - if(typeof this.validator == "function"){ - var msg = this.validator(value); - if(msg !== true){ - this.markInvalid(msg); - return false; - } - } - if(this.regex && !this.regex.test(value)){ - this.markInvalid(this.regexText); - return false; - } - return true; - }, - - /** - * Selects text in this field - * @param {Number} start (optional) The index where the selection should start (defaults to 0) - * @param {Number} end (optional) The index where the selection should end (defaults to the text length) - */ - selectText : function(start, end){ - var v = this.getRawValue(); - if(v.length > 0){ - start = start === undefined ? 0 : start; - end = end === undefined ? v.length : end; - var d = this.el.dom; - if(d.setSelectionRange){ - d.setSelectionRange(start, end); - }else if(d.createTextRange){ - var range = d.createTextRange(); - range.moveStart("character", start); - range.moveEnd("character", v.length-end); - range.select(); - } - } - }, - - /** - * Automatically grows the field to accomodate the width of the text up to the maximum field width allowed. - * This only takes effect if grow = true and fires the autosize event. - */ - autoSize : function(){ - if(!this.grow || !this.rendered){ - return; - } - if(!this.metrics){ - this.metrics = Ext.util.TextMetrics.createInstance(this.el); - } - var el = this.el; - var v = el.dom.value + " "; - var w = Math.min(this.growMax, Math.max(this.metrics.getWidth(v) + /* add extra padding */ 10, this.growMin)); - this.el.setWidth(w); - this.fireEvent("autosize", this, w); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/form/TriggerField.js b/www/extras/extjs/source/widgets/form/TriggerField.js deleted file mode 100644 index a0df990a6..000000000 --- a/www/extras/extjs/source/widgets/form/TriggerField.js +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.form.TriggerField - * @extends Ext.form.TextField - * Provides a convenient wrapper for TextFields that adds a clickable trigger button (looks like a combobox by default). - * The trigger has no default action, so you must assign a function to implement the trigger click handler by - * overriding {@link #onTriggerClick}. You can create a TriggerField directly, as it renders exactly like a combobox - * for which you can provide a custom implementation. For example: - *
        
        -var trigger = new Ext.form.TriggerField();
        -trigger.onTriggerClick = myTriggerFn;
        -trigger.applyTo('my-field');
        -
        - * - * However, in general you will most likely want to use TriggerField as the base class for a reusable component. - * {@link Ext.form.DateField} and {@link Ext.form.ComboBox} are perfect examples of this. - * @cfg {String} triggerClass An additional CSS class used to style the trigger button. The trigger will always get the - * class 'x-form-trigger' by default and triggerClass will be appended if specified. - * @constructor - * Create a new TriggerField. - * @param {Object} config Configuration options (valid {@Ext.form.TextField} config options will also be applied - * to the base TextField) - */ -Ext.form.TriggerField = function(config){ - Ext.form.TriggerField.superclass.constructor.call(this, config); - this.mimicing = false; - this.on('disable', this.disableWrapper, this); - this.on('enable', this.enableWrapper, this); -}; - -Ext.extend(Ext.form.TriggerField, Ext.form.TextField, { - /** - * @cfg {String/Object} autoCreate A DomHelper element spec, or true for a default element spec (defaults to - * {tag: "input", type: "text", size: "16", autocomplete: "off"}) - */ - - // private - defaultAutoCreate : {tag: "input", type: "text", size: "16", autocomplete: "off"}, - /** - * @cfg {Boolean} hideTrigger True to hide the trigger element and display only the base text field (defaults to false) - */ - hideTrigger:false, - - /** @cfg {Boolean} grow @hide */ - /** @cfg {Number} growMin @hide */ - /** @cfg {Number} growMax @hide */ - - /** - * @hide - * @method - */ - autoSize: Ext.emptyFn, - - monitorTab : true, - - // private - customSize : true, - - // private - setSize : function(w, h){ - if(!this.wrap){ - this.width = w; - this.height = h; - return; - } - if(w){ - var wrapWidth = w; - w = w - this.trigger.getWidth(); - Ext.form.TriggerField.superclass.setSize.call(this, w, h); - this.wrap.setWidth(wrapWidth); - if(this.onResize){ - this.onResize(wrapWidth, h); - } - }else{ - Ext.form.TriggerField.superclass.setSize.call(this, w, h); - this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth()); - } - }, - - // private - alignErrorIcon : function(){ - this.errorIcon.alignTo(this.wrap, 'tl-tr', [2, 0]); - }, - - // private - onRender : function(ct, position){ - Ext.form.TriggerField.superclass.onRender.call(this, ct, position); - this.wrap = this.el.wrap({cls: "x-form-field-wrap"}); - this.trigger = this.wrap.createChild({ - tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger "+this.triggerClass}); - this.trigger.on("click", this.onTriggerClick, this, {preventDefault:true}); - this.trigger.addClassOnOver('x-form-trigger-over'); - this.trigger.addClassOnClick('x-form-trigger-click'); - if(this.hideTrigger){ - this.trigger.setDisplayed(false); - } - this.setSize(this.width||'', this.height||''); - }, - - onDestroy : function(){ - if(this.trigger){ - this.trigger.removeAllListeners(); - this.trigger.remove(); - } - if(this.wrap){ - this.wrap.remove(); - } - Ext.form.TriggerField.superclass.onDestroy.call(this); - }, - - // private - onFocus : function(){ - Ext.form.TriggerField.superclass.onFocus.call(this); - if(!this.mimicing){ - this.mimicing = true; - Ext.get(Ext.isIE ? document.body : document).on("mousedown", this.mimicBlur, this); - if(this.monitorTab){ - this.el.on("keydown", this.checkTab, this); - } - } - }, - - // private - checkTab : function(e){ - if(e.getKey() == e.TAB){ - this.triggerBlur(); - } - }, - - // private - onBlur : function(){ - // do nothing - }, - - // private - mimicBlur : function(e, t){ - if(!this.wrap.contains(t) && this.validateBlur()){ - this.triggerBlur(); - } - }, - - // private - triggerBlur : function(){ - this.mimicing = false; - Ext.get(Ext.isIE ? document.body : document).un("mousedown", this.mimicBlur); - if(this.monitorTab){ - this.el.un("keydown", this.checkTab, this); - } - Ext.form.TriggerField.superclass.onBlur.call(this); - }, - - // private - // This should be overriden by any subclass that needs to check whether or not the field can be blurred. - validateBlur : function(e, t){ - return true; - }, - - // private - disableWrapper : function(){ - if(this.wrap){ - this.wrap.addClass('x-item-disabled'); - } - }, - - // private - enableWrapper : function(){ - if(this.wrap){ - this.wrap.removeClass('x-item-disabled'); - } - }, - - // private - onShow : function(){ - if(this.wrap){ - this.wrap.dom.style.display = ''; - this.wrap.dom.style.visibility = 'visible'; - } - }, - - // private - onHide : function(){ - this.wrap.dom.style.display = 'none'; - }, - - /** - * The function that should handle the trigger's click event. This method does nothing by default until overridden - * by a handler implementation. - * @method - * @param {EventObject} e - */ - onTriggerClick : Ext.emptyFn -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/form/VTypes.js b/www/extras/extjs/source/widgets/form/VTypes.js deleted file mode 100644 index 5dfd88526..000000000 --- a/www/extras/extjs/source/widgets/form/VTypes.js +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.form.VTypes - * Overrideable validation definitions. The validations provided are basic and intended to be easily customizable and extended. - * @singleton - */ -Ext.form.VTypes = function(){ - // closure these in so they are only created once. - var alpha = /^[a-zA-Z_]+$/; - var alphanum = /^[a-zA-Z0-9_]+$/; - var email = /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/; - var url = /(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i; - - // All these messages and functions are configurable - return { - /** - * The function used to validate email addresses - * @param {String} value The email address - */ - 'email' : function(v){ - return email.test(v); - }, - /** - * The error text to display when the email validation function returns false - * @type String - */ - 'emailText' : 'This field should be an e-mail address in the format "user@domain.com"', - /** - * The keystroke filter mask to be applied on email input - * @type RegExp - */ - 'emailMask' : /[a-z0-9_\.\-@]/i, - - /** - * The function used to validate urls - * @param {String} value The url - */ - 'url' : function(v){ - return url.test(v); - }, - /** - * The error text to display when the url validation function returns false - * @type String - */ - 'urlText' : 'This field should be a URL in the format "http:/'+'/www.domain.com"', - - /** - * The function used to validate alpha values - * @param {String} value The value - */ - 'alpha' : function(v){ - return alpha.test(v); - }, - /** - * The error text to display when the alpha validation function returns false - * @type String - */ - 'alphaText' : 'This field should only contain letters and _', - /** - * The keystroke filter mask to be applied on alpha input - * @type RegExp - */ - 'alphaMask' : /[a-z_]/i, - - /** - * The function used to validate alphanumeric values - * @param {String} value The value - */ - 'alphanum' : function(v){ - return alphanum.test(v); - }, - /** - * The error text to display when the alphanumeric validation function returns false - * @type String - */ - 'alphanumText' : 'This field should only contain letters, numbers and _', - /** - * The keystroke filter mask to be applied on alphanumeric input - * @type RegExp - */ - 'alphanumMask' : /[a-z0-9_]/i - }; -}(); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/grid/AbstractGridView.js b/www/extras/extjs/source/widgets/grid/AbstractGridView.js deleted file mode 100644 index 797f080a5..000000000 --- a/www/extras/extjs/source/widgets/grid/AbstractGridView.js +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.grid.AbstractGridView = function(){ - this.grid = null; - - this.events = { - "beforerowremoved" : true, - "beforerowsinserted" : true, - "beforerefresh" : true, - "rowremoved" : true, - "rowsinserted" : true, - "rowupdated" : true, - "refresh" : true - }; - Ext.grid.AbstractGridView.superclass.constructor.call(this); -}; - -Ext.extend(Ext.grid.AbstractGridView, Ext.util.Observable, { - rowClass : "x-grid-row", - cellClass : "x-grid-cell", - tdClass : "x-grid-td", - hdClass : "x-grid-hd", - splitClass : "x-grid-hd-split", - - init: function(grid){ - this.grid = grid; - var cid = this.grid.container.id; - this.colSelector = "#" + cid + " ." + this.cellClass + "-"; - this.tdSelector = "#" + cid + " ." + this.tdClass + "-"; - this.hdSelector = "#" + cid + " ." + this.hdClass + "-"; - this.splitSelector = "#" + cid + " ." + this.splitClass + "-"; - }, - - getColumnRenderers : function(){ - var renderers = []; - var cm = this.grid.colModel; - var colCount = cm.getColumnCount(); - for(var i = 0; i < colCount; i++){ - renderers[i] = cm.getRenderer(i); - } - return renderers; - }, - - getColumnIds : function(){ - var ids = []; - var cm = this.grid.colModel; - var colCount = cm.getColumnCount(); - for(var i = 0; i < colCount; i++){ - ids[i] = cm.getColumnId(i); - } - return ids; - }, - - getDataIndexes : function(){ - if(!this.indexMap){ - this.indexMap = this.buildIndexMap(); - } - return this.indexMap.colToData; - }, - - getColumnIndexByDataIndex : function(dataIndex){ - if(!this.indexMap){ - this.indexMap = this.buildIndexMap(); - } - return this.indexMap.dataToCol[dataIndex]; - }, - - /** - * Set a css style for a column dynamically. - * @param {Number} colIndex The index of the column - * @param {String} name The css property name - * @param {String} value The css value - */ - setCSSStyle : function(colIndex, name, value){ - var selector = "#" + this.grid.id + " .x-grid-col-" + colIndex; - Ext.util.CSS.updateRule(selector, name, value); - }, - - generateRules : function(cm){ - var ruleBuf = []; - for(var i = 0, len = cm.getColumnCount(); i < len; i++){ - var cid = cm.getColumnId(i); - ruleBuf.push(this.colSelector, cid, " {\n", cm.config[i].css, "}\n", - this.tdSelector, cid, " {\n}\n", - this.hdSelector, cid, " {\n}\n", - this.splitSelector, cid, " {\n}\n"); - } - return Ext.util.CSS.createStyleSheet(ruleBuf.join("")); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/grid/AbstractSelectionModel.js b/www/extras/extjs/source/widgets/grid/AbstractSelectionModel.js deleted file mode 100644 index 545bfc467..000000000 --- a/www/extras/extjs/source/widgets/grid/AbstractSelectionModel.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - @class Ext.grid.AbstractSelectionModel - @extends Ext.util.Observable - @constructor - */ -Ext.grid.AbstractSelectionModel = function(){ - this.locked = false; - Ext.grid.AbstractSelectionModel.superclass.constructor.call(this); -}; - -Ext.extend(Ext.grid.AbstractSelectionModel, Ext.util.Observable, { - /** @ignore Called by the grid automatically. Do not call directly. */ - init : function(grid){ - this.grid = grid; - this.initEvents(); - }, - - /** - * Lock the selections - */ - lock : function(){ - this.locked = true; - }, - - /** - * Unlock the selections - */ - unlock : function(){ - this.locked = false; - }, - - /** - * Returns true if the selections are locked - * @return {Boolean} - */ - isLocked : function(){ - return this.locked; - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/grid/CellSelectionModel.js b/www/extras/extjs/source/widgets/grid/CellSelectionModel.js deleted file mode 100644 index 96a891e6b..000000000 --- a/www/extras/extjs/source/widgets/grid/CellSelectionModel.js +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - @class Ext.grid.CellSelectionModel - * @extends Ext.grid.AbstractSelectionModel - @constructor - * @param {Object} config - */ -Ext.grid.CellSelectionModel = function(config){ - Ext.apply(this, config); - - this.selection = null; - - this.addEvents({ - /** - * @event beforerowselect - * Fires before a cell is selected. - * @param {SelectionModel} this - * @param {Number} rowIndex The selected row index - * @param {Number} colIndex The selected cell index - */ - "beforecellselect" : true, - /** - * @event cellselect - * Fires when a cell is selected. - * @param {SelectionModel} this - * @param {Number} rowIndex The selected row index - * @param {Number} colIndex The selected cell index - */ - "cellselect" : true, - /** - * @event selectionchange - * Fires when the active selection changes. - * @param {SelectionModel} this - * @param {Object} selection null for no selection or an object (o) with two properties -
          -
        • o.record: the record object for the row the selection is in
        • -
        • o.cell: An array of [rowIndex, columnIndex]
        • -
        - */ - "selectionchange" : true - }); -}; - -Ext.extend(Ext.grid.CellSelectionModel, Ext.grid.AbstractSelectionModel, { - - /** @ignore */ - initEvents : function(){ - this.grid.on("mousedown", this.handleMouseDown, this); - this.grid.container.on(Ext.isIE ? "keydown" : "keypress", this.handleKeyDown, this); - var view = this.grid.view; - view.on("refresh", this.onViewChange, this); - view.on("rowupdated", this.onRowUpdated, this); - view.on("beforerowremoved", this.clearSelections, this); - view.on("beforerowsinserted", this.clearSelections, this); - if(this.grid.isEditor){ - this.grid.on("beforeedit", this.beforeEdit, this); - } - }, - - beforeEdit : function(e){ - this.select(e.row, e.column, false, true, e.record); - }, - - onRowUpdated : function(v, index, r){ - if(this.selection && this.selection.record == r){ - v.onCellSelect(index, this.selection.cell[1]); - } - }, - - onViewChange : function(){ - this.clearSelections(true); - }, - - getSelectedCell : function(){ - return this.selection ? this.selection.cell : null; - }, - - /** - * Clears all selections. - */ - clearSelections : function(preventNotify){ - var s = this.selection; - if(s){ - if(preventNotify !== true){ - this.grid.view.onCellDeselect(s.cell[0], s.cell[1]); - } - this.selection = null; - this.fireEvent("selectionchange", this, null); - } - }, - - /** - * Returns True if there is a selection. - * @return {Boolean} - */ - hasSelection : function(){ - return this.selection ? true : false; - }, - - /** @ignore */ - handleMouseDown : function(e, t){ - var v = this.grid.getView(); - if(this.isLocked()){ - return; - }; - var row = v.findRowIndex(t); - var cell = v.findCellIndex(t); - if(row !== false && cell !== false){ - this.select(row, cell); - } - }, - - /** - * Selects a cell. - * @param {Number} rowIndex - * @param {Number} collIndex - */ - select : function(rowIndex, colIndex, preventViewNotify, preventFocus, /*internal*/ r){ - if(this.fireEvent("beforecellselect", this, rowIndex, colIndex) !== false){ - this.clearSelections(); - r = r || this.grid.dataSource.getAt(rowIndex); - this.selection = { - record : r, - cell : [rowIndex, colIndex] - }; - if(!preventViewNotify){ - var v = this.grid.getView(); - v.onCellSelect(rowIndex, colIndex); - if(preventFocus !== true){ - v.focusCell(rowIndex, colIndex); - } - } - this.fireEvent("cellselect", this, rowIndex, colIndex); - this.fireEvent("selectionchange", this, this.selection); - } - }, - - isSelectable : function(rowIndex, colIndex, cm){ - return !cm.isHidden(colIndex); - }, - - /** @ignore */ - handleKeyDown : function(e){ - if(!e.isNavKeyPress()){ - return; - } - var g = this.grid, s = this.selection; - if(!s){ - e.stopEvent(); - var cell = g.walkCells(0, 0, 1, this.isSelectable, this); - if(cell){ - this.select(cell[0], cell[1]); - } - return; - } - var sm = this; - var walk = function(row, col, step){ - return g.walkCells(row, col, step, sm.isSelectable, sm); - }; - var k = e.getKey(), r = s.cell[0], c = s.cell[1]; - var newCell; - - switch(k){ - case e.TAB: - if(e.shiftKey){ - newCell = walk(r, c-1, -1); - }else{ - newCell = walk(r, c+1, 1); - } - break; - case e.DOWN: - newCell = walk(r+1, c, 1); - break; - case e.UP: - newCell = walk(r-1, c, -1); - break; - case e.RIGHT: - newCell = walk(r, c+1, 1); - break; - case e.LEFT: - newCell = walk(r, c-1, -1); - break; - case e.ENTER: - if(g.isEditor && !g.editing){ - g.startEditing(r, c); - e.stopEvent(); - return; - } - break; - }; - if(newCell){ - this.select(newCell[0], newCell[1]); - e.stopEvent(); - } - }, - - acceptsNav : function(row, col, cm){ - return !cm.isHidden(col) && cm.isCellEditable(col, row); - }, - - onEditorKey : function(field, e){ - var k = e.getKey(), newCell, g = this.grid, ed = g.activeEditor; - if(k == e.TAB){ - if(e.shiftKey){ - newCell = g.walkCells(ed.row, ed.col-1, -1, this.acceptsNav, this); - }else{ - newCell = g.walkCells(ed.row, ed.col+1, 1, this.acceptsNav, this); - } - e.stopEvent(); - }else if(k == e.ENTER && !e.ctrlKey){ - ed.completeEdit(); - e.stopEvent(); - }else if(k == e.ESC){ - ed.cancelEdit(); - } - if(newCell){ - g.startEditing(newCell[0], newCell[1]); - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/grid/ColumnDD.js b/www/extras/extjs/source/widgets/grid/ColumnDD.js deleted file mode 100644 index aad0ee790..000000000 --- a/www/extras/extjs/source/widgets/grid/ColumnDD.js +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -// private -// This is a support class used internally by the Grid components -Ext.grid.HeaderDragZone = function(grid, hd, hd2){ - this.grid = grid; - this.view = grid.getView(); - this.ddGroup = "gridHeader" + this.grid.container.id; - Ext.grid.HeaderDragZone.superclass.constructor.call(this, hd); - if(hd2){ - this.setHandleElId(Ext.id(hd)); - this.setOuterHandleElId(Ext.id(hd2)); - } - this.scroll = false; -}; -Ext.extend(Ext.grid.HeaderDragZone, Ext.dd.DragZone, { - maxDragWidth: 120, - getDragData : function(e){ - var t = Ext.lib.Event.getTarget(e); - var h = this.view.findHeaderCell(t); - if(h){ - return {ddel: h.firstChild, header:h}; - } - return false; - }, - - onInitDrag : function(e){ - this.view.headersDisabled = true; - var clone = this.dragData.ddel.cloneNode(true); - clone.style.width = Math.min(this.dragData.header.offsetWidth,this.maxDragWidth) + "px"; - this.proxy.update(clone); - return true; - }, - - afterValidDrop : function(){ - var v = this.view; - setTimeout(function(){ - v.headersDisabled = false; - }, 50); - }, - - afterInvalidDrop : function(){ - var v = this.view; - setTimeout(function(){ - v.headersDisabled = false; - }, 50); - } -}); - -// private -// This is a support class used internally by the Grid components -Ext.grid.HeaderDropZone = function(grid, hd, hd2){ - this.grid = grid; - this.view = grid.getView(); - // split the proxies so they don't interfere with mouse events - this.proxyTop = Ext.DomHelper.append(document.body, { - tag:"div", cls:"col-move-top", html:" " - }, true); - this.proxyBottom = Ext.DomHelper.append(document.body, { - tag:"div", cls:"col-move-bottom", html:" " - }, true); - this.proxyTop.hide = this.proxyBottom.hide = function(){ - this.setLeftTop(-100,-100); - this.setStyle("visibility", "hidden"); - }; - this.ddGroup = "gridHeader" + this.grid.container.id; - // temporarily disabled - //Ext.dd.ScrollManager.register(this.view.scroller.dom); - Ext.grid.HeaderDropZone.superclass.constructor.call(this, grid.container.dom); -}; -Ext.extend(Ext.grid.HeaderDropZone, Ext.dd.DropZone, { - proxyOffsets : [-4, -9], - fly: Ext.Element.fly, - - getTargetFromEvent : function(e){ - var t = Ext.lib.Event.getTarget(e); - var cindex = this.view.findCellIndex(t); - if(cindex !== false){ - return this.view.getHeaderCell(cindex); - } - }, - - nextVisible : function(h){ - var v = this.view, cm = this.grid.colModel; - h = h.nextSibling; - while(h){ - if(!cm.isHidden(v.getCellIndex(h))){ - return h; - } - h = h.nextSibling; - } - return null; - }, - - prevVisible : function(h){ - var v = this.view, cm = this.grid.colModel; - h = h.prevSibling; - while(h){ - if(!cm.isHidden(v.getCellIndex(h))){ - return h; - } - h = h.prevSibling; - } - return null; - }, - - positionIndicator : function(h, n, e){ - var x = Ext.lib.Event.getPageX(e); - var r = Ext.lib.Dom.getRegion(n.firstChild); - var px, pt, py = r.top + this.proxyOffsets[1]; - if((r.right - x) <= (r.right-r.left)/2){ - px = r.right+this.view.borderWidth; - pt = "after"; - }else{ - px = r.left; - pt = "before"; - } - var oldIndex = this.view.getCellIndex(h); - var newIndex = this.view.getCellIndex(n); - var locked = this.grid.colModel.isLocked(newIndex); - if(pt == "after"){ - newIndex++; - } - if(oldIndex < newIndex){ - newIndex--; - } - if(oldIndex == newIndex && (locked == this.grid.colModel.isLocked(oldIndex))){ - return false; - } - px += this.proxyOffsets[0]; - this.proxyTop.setLeftTop(px, py); - this.proxyTop.show(); - if(!this.bottomOffset){ - this.bottomOffset = this.view.mainHd.getHeight(); - } - this.proxyBottom.setLeftTop(px, py+this.proxyTop.dom.offsetHeight+this.bottomOffset); - this.proxyBottom.show(); - return pt; - }, - - onNodeEnter : function(n, dd, e, data){ - if(data.header != n){ - this.positionIndicator(data.header, n, e); - } - }, - - onNodeOver : function(n, dd, e, data){ - var result = false; - if(data.header != n){ - result = this.positionIndicator(data.header, n, e); - } - if(!result){ - this.proxyTop.hide(); - this.proxyBottom.hide(); - } - return result ? this.dropAllowed : this.dropNotAllowed; - }, - - onNodeOut : function(n, dd, e, data){ - this.proxyTop.hide(); - this.proxyBottom.hide(); - }, - - onNodeDrop : function(n, dd, e, data){ - var h = data.header; - if(h != n){ - var cm = this.grid.colModel; - var x = Ext.lib.Event.getPageX(e); - var r = Ext.lib.Dom.getRegion(n.firstChild); - var pt = (r.right - x) <= ((r.right-r.left)/2) ? "after" : "before"; - var oldIndex = this.view.getCellIndex(h); - var newIndex = this.view.getCellIndex(n); - var locked = cm.isLocked(newIndex); - if(pt == "after"){ - newIndex++; - } - if(oldIndex < newIndex){ - newIndex--; - } - if(oldIndex == newIndex && (locked == cm.isLocked(oldIndex))){ - return false; - } - cm.setLocked(oldIndex, locked, true); - cm.moveColumn(oldIndex, newIndex); - this.grid.fireEvent("columnmove", oldIndex, newIndex); - return true; - } - return false; - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/grid/ColumnModel.js b/www/extras/extjs/source/widgets/grid/ColumnModel.js deleted file mode 100644 index 0b076ba87..000000000 --- a/www/extras/extjs/source/widgets/grid/ColumnModel.js +++ /dev/null @@ -1,449 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.grid.ColumnModel - * @extends Ext.util.Observable - * This is the default implementation of a ColumnModel used by the Grid. It defines - * the columns in the grid. - *
        Usage:
        -
        
        - var colModel = new Ext.grid.ColumnModel([
        -	{header: "Ticker", width: 60, sortable: true, locked: true},
        -	{header: "Company Name", width: 150, sortable: true},
        -	{header: "Market Cap.", width: 100, sortable: true},
        -	{header: "$ Sales", width: 100, sortable: true, renderer: money},
        -	{header: "Employees", width: 100, sortable: true, resizable: false}
        - ]);
        - 
        - *

        - * The config options listed for this class, are options which may appear in each - * individual column definition. - * @constructor - * @param {Object} config An Array of column config objects. See this class's - * config objects for details. -*/ -Ext.grid.ColumnModel = function(config){ - Ext.grid.ColumnModel.superclass.constructor.call(this); - /** - * The config passed into the constructor - */ - this.config = config; - this.lookup = {}; - - // if id, create one - // if the column does not have a dataIndex mapping, - // map it to the order it is in the config - for(var i = 0, len = config.length; i < len; i++){ - if(typeof config[i].dataIndex == "undefined"){ - config[i].dataIndex = i; - } - if(typeof config[i].renderer == "string"){ - config[i].renderer = Ext.util.Format[config[i].renderer]; - } - if(typeof config[i].id == "undefined"){ - config[i].id = i; - } - this.lookup[config[i].id] = config[i]; - } - - /** - * The width of columns which have no width specified (defaults to 100) - * @type Number - */ - this.defaultWidth = 100; - - /** - * Default sortable of columns which have no sortable specified (defaults to false) - * @type Boolean - */ - this.defaultSortable = false; - - this.addEvents({ - /** - * @event widthchange - * Fires when the width of a column changes - * @param {ColumnModel} this - * @param {Number} columnIndex The column index - * @param {Number} newWidth The new width - */ - "widthchange": true, - /** - * @event headerchange - * Fires when the text of a header changes - * @param {ColumnModel} this - * @param {Number} columnIndex The column index - * @param {Number} newText The new header text - */ - "headerchange": true, - /** - * @event hiddenchange - * Fires when a column is hidden or "unhidden" - * @param {ColumnModel} this - * @param {Number} columnIndex The column index - * @param {Number} hidden true if hidden, false otherwise - */ - "hiddenchange": true, - /** - * @event columnmoved - * Fires when a column is moved - * @param {ColumnModel} this - * @param {Number} oldIndex - * @param {Number} newIndex - */ - "columnmoved" : true, - /** - * @event columlockchange - * Fires when a column's locked state is changed - * @param {ColumnModel} this - * @param {Number} colIndex - * @param {Boolean} locked true if locked - */ - "columnlockchange" : true - }); - Ext.grid.ColumnModel.superclass.constructor.call(this); -}; -Ext.extend(Ext.grid.ColumnModel, Ext.util.Observable, { - /** - * @cfg header {String} The header text to display in the Grid view. - */ - /** - * @cfg dataIndex {String} The name of the field in the grid's {@link Ext.data.Store}'s - * {@link Ext.data.Record} definition from which to draw the column's value. If not - * specified, the column's index is used as an index into the Record's data Array. - */ - /** - * @cfg width {Number} (Optional) The initial width in pixels of the column. Using this - * instead of {@link Ext.grid.Grid#autoSizeColumns} is more efficient. - */ - /** - * @cfg sortable {Boolean} True if sorting is to be allowed on this column. Defaults to true. - * Whether local/remote sorting is used is specified in {@link Ext.data.Store#remoteSort}. - */ - /** - * @cfg locked {Boolean} True to lock the column in place while scrolling the Grid. - * Defaults to false. - */ - /** - * @cfg resizable {Boolean} False to disable column resizing. Defaults to true. - */ - /** - * @cfg renderer {Function} (Optional) A function used to generate HTML markup for a cell - * given the cell's data value. See {@link #setRenderer}. If not specified, the - * default renderer uses the raw data value. - */ - - /** - * Returns the id of the column at the specified index - * @param {Number} index - * @return {String} the id - */ - getColumnId : function(index){ - return this.config[index].id; - }, - - getColumnById : function(id){ - return this.lookup[id]; - }, - - getIndexById : function(id){ - for(var i = 0, len = this.config.length; i < len; i++){ - if(this.config[i].id == id){ - return i; - } - } - return -1; - }, - - moveColumn : function(oldIndex, newIndex){ - var c = this.config[oldIndex]; - this.config.splice(oldIndex, 1); - this.config.splice(newIndex, 0, c); - this.dataMap = null; - this.fireEvent("columnmoved", this, oldIndex, newIndex); - }, - - isLocked : function(colIndex){ - return this.config[colIndex].locked === true; - }, - - setLocked : function(colIndex, value, suppressEvent){ - if(this.isLocked(colIndex) == value){ - return; - } - this.config[colIndex].locked = value; - if(!suppressEvent){ - this.fireEvent("columnlockchange", this, colIndex, value); - } - }, - - getTotalLockedWidth : function(){ - var totalWidth = 0; - for(var i = 0; i < this.config.length; i++){ - if(this.isLocked(i) && !this.isHidden(i)){ - this.totalWidth += this.getColumnWidth(i); - } - } - return totalWidth; - }, - - getLockedCount : function(){ - for(var i = 0, len = this.config.length; i < len; i++){ - if(!this.isLocked(i)){ - return i; - } - } - }, - - /** - * Returns the number of columns. - * @return {Number} - */ - getColumnCount : function(visibleOnly){ - if(visibleOnly == true){ - var c = 0; - for(var i = 0, len = this.config.length; i < len; i++){ - if(!this.isHidden(i)){ - c++; - } - } - return c; - } - return this.config.length; - }, - - /** - * Returns true if the specified column is sortable. - * @param {Number} col The column index - * @return {Boolean} - */ - isSortable : function(col){ - if(typeof this.config[col].sortable == "undefined"){ - return this.defaultSortable; - } - return this.config[col].sortable; - }, - - /** - * Returns the rendering (formatting) function defined for the column. - * @param {Number} col The column index. - * @return {Function} The function used to render the cell. See {@link #setRenderer}. - */ - getRenderer : function(col){ - if(!this.config[col].renderer){ - return Ext.grid.ColumnModel.defaultRenderer; - } - return this.config[col].renderer; - }, - - /** - * Sets the rendering (formatting) function for a column. - * @param {Number} col The column index - * @param {Function} fn The function to use to process the cell's raw data - * to return HTML markup for the grid view. The render function is called with - * the following parameters:

          - *
        • Data value.
        • - *
        • Cell metadata. An object in which you may set the following attributes:
            - *
          • css A CSS style string to apply to the table cell.
          • - *
          • attr An HTML attribute definition string to apply to the data container element within the table cell.
          - *
        • The {@link Ext.data.Record} from which the data was extracted.
        • - *
        • Row index
        • - *
        • Column index
        • - *
        • The {@link Ext.data.Store} object from which the Record was extracted
        - */ - setRenderer : function(col, fn){ - this.config[col].renderer = fn; - }, - - /** - * Returns the width for the specified column. - * @param {Number} col The column index - * @return {Number} - */ - getColumnWidth : function(col){ - return this.config[col].width || this.defaultWidth; - }, - - /** - * Sets the width for a column. - * @param {Number} col The column index - * @param {Number} width The new width - */ - setColumnWidth : function(col, width, suppressEvent){ - this.config[col].width = width; - this.totalWidth = null; - if(!suppressEvent){ - this.fireEvent("widthchange", this, col, width); - } - }, - - /** - * Returns the total width of all columns. - * @param {Boolean} includeHidden True to include hidden column widths - * @return {Number} - */ - getTotalWidth : function(includeHidden){ - if(!this.totalWidth){ - this.totalWidth = 0; - for(var i = 0, len = this.config.length; i < len; i++){ - if(includeHidden || !this.isHidden(i)){ - this.totalWidth += this.getColumnWidth(i); - } - } - } - return this.totalWidth; - }, - - /** - * Returns the header for the specified column. - * @param {Number} col The column index - * @return {String} - */ - getColumnHeader : function(col){ - return this.config[col].header; - }, - - /** - * Sets the header for a column. - * @param {Number} col The column index - * @param {String} header The new header - */ - setColumnHeader : function(col, header){ - this.config[col].header = header; - this.fireEvent("headerchange", this, col, header); - }, - - /** - * Returns the tooltip for the specified column. - * @param {Number} col The column index - * @return {String} - */ - getColumnTooltip : function(col){ - return this.config[col].tooltip; - }, - /** - * Sets the tooltip for a column. - * @param {Number} col The column index - * @param {String} tooltip The new tooltip - */ - setColumnTooltip : function(col, tooltip){ - this.config[col].tooltip = tooltip; - }, - - /** - * Returns the dataIndex for the specified column. - * @param {Number} col The column index - * @return {Number} - */ - getDataIndex : function(col){ - return this.config[col].dataIndex; - }, - - /** - * Sets the dataIndex for a column. - * @param {Number} col The column index - * @param {Number} dataIndex The new dataIndex - */ - setDataIndex : function(col, dataIndex){ - this.config[col].dataIndex = dataIndex; - }, - - findColumnIndex : function(dataIndex){ - var c = this.config; - for(var i = 0, len = c.length; i < len; i++){ - if(c[i].dataIndex == dataIndex){ - return i; - } - } - return -1; - }, - - /** - * Returns true if the cell is editable. - * @param {Number} colIndex The column index - * @param {Number} rowIndex The row index - * @return {Boolean} - */ - isCellEditable : function(colIndex, rowIndex){ - return (this.config[colIndex].editable || (typeof this.config[colIndex].editable == "undefined" && this.config[colIndex].editor)) ? true : false; - }, - - /** - * Returns the editor defined for the cell/column. - * @param {Number} colIndex The column index - * @param {Number} rowIndex The row index - * @return {Object} - */ - getCellEditor : function(colIndex, rowIndex){ - return this.config[colIndex].editor; - }, - - /** - * Sets if a column is editable. - * @param {Number} col The column index - * @param {Boolean} editable True if the column is editable - */ - setEditable : function(col, editable){ - this.config[col].editable = editable; - }, - - - /** - * Returns true if the column is hidden. - * @param {Number} colIndex The column index - * @return {Boolean} - */ - isHidden : function(colIndex){ - return this.config[colIndex].hidden; - }, - - - /** - * Returns true if the column width cannot be changed - */ - isFixed : function(colIndex){ - return this.config[colIndex].fixed; - }, - - /** - * Returns true if the column cannot be resized - * @return {Boolean} - */ - isResizable : function(colIndex){ - return this.config[colIndex].resizable !== false; - }, - /** - * Sets if a column is hidden. - * @param {Number} colIndex The column index - * @param {Boolean} hidden True if the column is hidden - */ - setHidden : function(colIndex, hidden){ - this.config[colIndex].hidden = hidden; - this.totalWidth = null; - this.fireEvent("hiddenchange", this, colIndex, hidden); - }, - - /** - * Sets the editor for a column. - * @param {Number} col The column index - * @param {Object} editor The editor object - */ - setEditor : function(col, editor){ - this.config[col].editor = editor; - } -}); - -Ext.grid.ColumnModel.defaultRenderer = function(value){ - if(typeof value == "string" && value.length < 1){ - return " "; - } - return value; -}; - -// Alias for backwards compatibility -Ext.grid.DefaultColumnModel = Ext.grid.ColumnModel; diff --git a/www/extras/extjs/source/widgets/grid/ColumnSplitDD.js b/www/extras/extjs/source/widgets/grid/ColumnSplitDD.js deleted file mode 100644 index 1885e061a..000000000 --- a/www/extras/extjs/source/widgets/grid/ColumnSplitDD.js +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -// private -// This is a support class used internally by the Grid components -Ext.grid.SplitDragZone = function(grid, hd, hd2){ - this.grid = grid; - this.view = grid.getView(); - this.proxy = this.view.resizeProxy; - Ext.grid.SplitDragZone.superclass.constructor.call(this, hd, - "gridSplitters" + this.grid.container.id, { - dragElId : Ext.id(this.proxy.dom), resizeFrame:false - }); - this.setHandleElId(Ext.id(hd)); - this.setOuterHandleElId(Ext.id(hd2)); - this.scroll = false; -}; -Ext.extend(Ext.grid.SplitDragZone, Ext.dd.DDProxy, { - fly: Ext.Element.fly, - - b4StartDrag : function(x, y){ - this.view.headersDisabled = true; - this.proxy.setHeight(this.view.mainWrap.getHeight()); - var w = this.cm.getColumnWidth(this.cellIndex); - var minw = Math.max(w-this.grid.minColumnWidth, 0); - this.resetConstraints(); - this.setXConstraint(minw, 1000); - this.setYConstraint(0, 0); - this.minX = x - minw; - this.maxX = x + 1000; - this.startPos = x; - Ext.dd.DDProxy.prototype.b4StartDrag.call(this, x, y); - }, - - - handleMouseDown : function(e){ - ev = Ext.EventObject.setEvent(e); - var t = this.fly(ev.getTarget()); - if(t.hasClass("x-grid-split")){ - this.cellIndex = this.view.getCellIndex(t.dom); - this.split = t.dom; - this.cm = this.grid.colModel; - if(this.cm.isResizable(this.cellIndex) && !this.cm.isFixed(this.cellIndex)){ - Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this, arguments); - } - } - }, - - endDrag : function(e){ - this.view.headersDisabled = false; - var endX = Math.max(this.minX, Ext.lib.Event.getPageX(e)); - var diff = endX - this.startPos; - this.view.onColumnSplitterMoved(this.cellIndex, this.cm.getColumnWidth(this.cellIndex)+diff); - }, - - autoOffset : function(){ - this.setDelta(0,0); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/grid/EditorGrid.js b/www/extras/extjs/source/widgets/grid/EditorGrid.js deleted file mode 100644 index d995f337d..000000000 --- a/www/extras/extjs/source/widgets/grid/EditorGrid.js +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.grid.EditorGrid - * @extends Ext.grid.Grid - * Class for creating and editable grid. - * @param {String/HTMLElement/Ext.Element} container The element into which this grid will be rendered - - * The container MUST have some type of size defined for the grid to fill. The container will be - * automatically set to position relative if it isn't already. - * @param {Object} dataSource The data model to bind to - * @param {Object} colModel The column model with info about this grid's columns - */ -Ext.grid.EditorGrid = function(container, config){ - Ext.grid.EditorGrid.superclass.constructor.call(this, container, config); - this.container.addClass("xedit-grid"); - - if(!this.selModel){ - this.selModel = new Ext.grid.CellSelectionModel(); - } - - this.activeEditor = null; - - this.addEvents({ - /** - * @event beforeedit - * Fires before cell editing is triggered. The edit event object has the following properties
        - *
          - *
        • grid - This grid
        • - *
        • record - The record being edited
        • - *
        • field - The field name being edited
        • - *
        • value - The value for the field being edited.
        • - *
        • row - The grid row index
        • - *
        • column - The grid column index
        • - *
        • cancel - Set this to true to cancel the edit or return false from your handler.
        • - *
        - * @param {Object} e An edit event (see above for description) - */ - "beforeedit" : true, - /** - * @event afteredit - * Fires after a cell is edited.
        - *
          - *
        • grid - This grid
        • - *
        • record - The record being edited
        • - *
        • field - The field name being edited
        • - *
        • value - The value being set
        • - *
        • originalValue - The original value for the field, before the edit.
        • - *
        • row - The grid row index
        • - *
        • column - The grid column index
        • - *
        - * @param {Object} e An edit event (see above for description) - */ - "afteredit" : true, - /** - * @event validateedit - * Fires after a cell is edited, but before the value is set in the record. Return false - * to cancel the change. The edit event object has the following properties
        - *
          - *
        • grid - This grid
        • - *
        • record - The record being edited
        • - *
        • field - The field name being edited
        • - *
        • value - The value being set
        • - *
        • originalValue - The original value for the field, before the edit.
        • - *
        • row - The grid row index
        • - *
        • column - The grid column index
        • - *
        • cancel - Set this to true to cancel the edit or return false from your handler.
        • - *
        - * @param {Object} e An edit event (see above for description) - */ - "validateedit" : true - }); - this.on("bodyscroll", this.stopEditing, this); - this.on(this.clicksToEdit == 1 ? "cellclick" : "celldblclick", this.onCellDblClick, this); -}; - -Ext.extend(Ext.grid.EditorGrid, Ext.grid.Grid, { - isEditor : true, - clicksToEdit: 2, - trackMouseOver: false, // causes very odd FF errors - - onCellDblClick : function(g, row, col){ - this.startEditing(row, col); - }, - - onEditComplete : function(ed, value, startValue){ - this.editing = false; - this.activeEditor = null; - ed.un("specialkey", this.selModel.onEditorKey, this.selModel); - if(String(value) != String(startValue)){ - var r = ed.record; - var field = this.colModel.getDataIndex(ed.col); - var e = { - grid: this, - record: r, - field: field, - originalValue: startValue, - value: value, - row: ed.row, - column: ed.col, - cancel:false - }; - if(this.fireEvent("validateedit", e) !== false && !e.cancel){ - r.set(field, e.value); - delete e.cancel; - this.fireEvent("afteredit", e); - } - } - this.view.focusCell(ed.row, ed.col); - }, - - /** - * Starts editing the specified for the specified row/column - * @param {Number} rowIndex - * @param {Number} colIndex - */ - startEditing : function(row, col){ - this.stopEditing(); - if(this.colModel.isCellEditable(col, row)){ - this.view.focusCell(row, col); - var r = this.dataSource.getAt(row); - var field = this.colModel.getDataIndex(col); - var e = { - grid: this, - record: r, - field: field, - value: r.data[field], - row: row, - column: col, - cancel:false - }; - if(this.fireEvent("beforeedit", e) !== false && !e.cancel){ - this.editing = true; // flag for buffering of orphan key strokes - (function(){ // complex but required for focus issues in safari, ie and opera - var ed = this.colModel.getCellEditor(col, row); - ed.row = row; - ed.col = col; - ed.record = r; - ed.on("complete", this.onEditComplete, this, {single: true}); - ed.on("specialkey", this.selModel.onEditorKey, this.selModel); - this.activeEditor = ed; - var v = r.data[field]; - ed.startEdit(this.view.getCell(row, col), v); - }).defer(50, this); - } - } - }, - - /** - * Stops any active editing - */ - stopEditing : function(){ - if(this.activeEditor){ - this.activeEditor.completeEdit(); - } - this.activeEditor = null; - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/grid/Grid.js b/www/extras/extjs/source/widgets/grid/Grid.js deleted file mode 100644 index 7fdbfd17e..000000000 --- a/www/extras/extjs/source/widgets/grid/Grid.js +++ /dev/null @@ -1,604 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.grid.Grid - * @extends Ext.util.Observable - * This class represents the primary interface of a component based grid control. - *

        Usage:
        
        - var grid = new Ext.grid.Grid("my-container-id", {
        -     ds: myDataStore,
        -     cm: myColModel,
        -     selModel: mySelectionModel,
        -     autoSizeColumns: true,
        -     monitorWindowResize: false,
        -     trackMouseOver: true
        - });
        - // set any options
        - grid.render();
        - * 
        - * Common Problems:
        - * - Grid does not resize properly when going smaller: Setting overflow hidden on the container - * element will correct this
        - * - If you get el.style[camel]= NaNpx or -2px or something related, be certain you have given your container element - * dimensions. The grid adapts to your container's size, if your container has no size defined then the results - * are unpredictable.
        - * - Do not render the grid into an element with display:none. Try using visibility:hidden. Otherwise there is no way for the - * grid to calculate dimensions/offsets.
        - * @constructor - * @param {String/HTMLElement/Ext.Element} container The element into which this grid will be rendered - - * The container MUST have some type of size defined for the grid to fill. The container will be - * automatically set to position relative if it isn't already. - * @param {Object} config A config object that sets properties on this grid. - */ -Ext.grid.Grid = function(container, config){ - // initialize the container - this.container = Ext.get(container); - this.container.update(""); - this.container.setStyle("overflow", "hidden"); - this.container.addClass('x-grid-container'); - - this.id = this.container.id; - - Ext.apply(this, config); - // check and correct shorthanded configs - if(this.ds){ - this.dataSource = this.ds; - delete this.ds; - } - if(this.cm){ - this.colModel = this.cm; - delete this.cm; - } - if(this.sm){ - this.selModel = this.sm; - delete this.sm; - } - - if(this.width){ - this.container.setWidth(this.width); - } - - if(this.height){ - this.container.setHeight(this.height); - } - /** @private */ - this.addEvents({ - // raw events - /** - * @event click - * The raw click event for the entire grid. - * @param {Ext.EventObject} e - */ - "click" : true, - /** - * @event dblclick - * The raw dblclick event for the entire grid. - * @param {Ext.EventObject} e - */ - "dblclick" : true, - /** - * @event contextmenu - * The raw contextmenu event for the entire grid. - * @param {Ext.EventObject} e - */ - "contextmenu" : true, - /** - * @event mousedown - * The raw mousedown event for the entire grid. - * @param {Ext.EventObject} e - */ - "mousedown" : true, - /** - * @event mouseup - * The raw mouseup event for the entire grid. - * @param {Ext.EventObject} e - */ - "mouseup" : true, - /** - * @event mouseover - * The raw mouseover event for the entire grid. - * @param {Ext.EventObject} e - */ - "mouseover" : true, - /** - * @event mouseout - * The raw mouseout event for the entire grid. - * @param {Ext.EventObject} e - */ - "mouseout" : true, - /** - * @event keypress - * The raw keypress event for the entire grid. - * @param {Ext.EventObject} e - */ - "keypress" : true, - /** - * @event keydown - * The raw keydown event for the entire grid. - * @param {Ext.EventObject} e - */ - "keydown" : true, - - // custom events - - /** - * @event cellclick - * Fires when a cell is clicked - * @param {Grid} this - * @param {Number} rowIndex - * @param {Number} columnIndex - * @param {Ext.EventObject} e - */ - "cellclick" : true, - /** - * @event celldblclick - * Fires when a cell is double clicked - * @param {Grid} this - * @param {Number} rowIndex - * @param {Number} columnIndex - * @param {Ext.EventObject} e - */ - "celldblclick" : true, - /** - * @event rowclick - * Fires when a row is clicked - * @param {Grid} this - * @param {Number} rowIndex - * @param {Ext.EventObject} e - */ - "rowclick" : true, - /** - * @event rowdblclick - * Fires when a row is double clicked - * @param {Grid} this - * @param {Number} rowIndex - * @param {Ext.EventObject} e - */ - "rowdblclick" : true, - /** - * @event headerclick - * Fires when a header is clicked - * @param {Grid} this - * @param {Number} columnIndex - * @param {Ext.EventObject} e - */ - "headerclick" : true, - /** - * @event headerdblclick - * Fires when a header cell is double clicked - * @param {Grid} this - * @param {Number} rowIndex - * @param {Number} columnIndex - * @param {Ext.EventObject} e - */ - "headerdblclick" : true, - /** - * @event rowcontextmenu - * Fires when a row is right clicked - * @param {Grid} this - * @param {Number} rowIndex - * @param {Ext.EventObject} e - */ - "rowcontextmenu" : true, - /** - * @event cellcontextmenu - * Fires when a cell is right clicked - * @param {Grid} this - * @param {Number} rowIndex - * @param {Number} cellIndex - * @param {Ext.EventObject} e - */ - "cellcontextmenu" : true, - /** - * @event headercontextmenu - * Fires when a header is right clicked - * @param {Grid} this - * @param {Number} columnIndex - * @param {Ext.EventObject} e - */ - "headercontextmenu" : true, - /** - * @event bodyscroll - * Fires when the body element is scrolled - * @param {Number} scrollLeft - * @param {Number} scrollTop - */ - "bodyscroll" : true, - /** - * @event columnresize - * Fires when the user resizes a column - * @param {Number} columnIndex - * @param {Number} newSize - */ - "columnresize" : true, - /** - * @event columnmove - * Fires when the user moves a column - * @param {Number} oldIndex - * @param {Number} newIndex - */ - "columnmove" : true, - /** - * @event startdrag - * Fires when row(s) start being dragged - * @param {Grid} this - * @param {Ext.GridDD} dd The drag drop object - * @param {event} e The raw browser event - */ - "startdrag" : true, - /** - * @event enddrag - * Fires when a drag operation is complete - * @param {Grid} this - * @param {Ext.GridDD} dd The drag drop object - * @param {event} e The raw browser event - */ - "enddrag" : true, - /** - * @event dragdrop - * Fires when dragged row(s) are dropped on a valid DD target - * @param {Grid} this - * @param {Ext.GridDD} dd The drag drop object - * @param {String} targetId The target drag drop object - * @param {event} e The raw browser event - */ - "dragdrop" : true, - /** - * @event dragover - * Fires while row(s) are being dragged. "targetId" is the id of the Yahoo.util.DD object the selected rows are being dragged over. - * @param {Grid} this - * @param {Ext.GridDD} dd The drag drop object - * @param {String} targetId The target drag drop object - * @param {event} e The raw browser event - */ - "dragover" : true, - /** - * @event dragenter - * Fires when the dragged row(s) first cross another DD target while being dragged - * @param {Grid} this - * @param {Ext.GridDD} dd The drag drop object - * @param {String} targetId The target drag drop object - * @param {event} e The raw browser event - */ - "dragenter" : true, - /** - * @event dragout - * Fires when the dragged row(s) leave another DD target while being dragged - * @param {Grid} this - * @param {Ext.GridDD} dd The drag drop object - * @param {String} targetId The target drag drop object - * @param {event} e The raw browser event - */ - "dragout" : true - }); - - Ext.grid.Grid.superclass.constructor.call(this); -}; -Ext.extend(Ext.grid.Grid, Ext.util.Observable, { - /** - * @cfg {Number} The minimum width a column can be resized to. Defaults to 25. - */ - minColumnWidth : 25, - - /** - * @cfg {Boolean} True to automatically resize the columns to fit their content - * on initial render. It is more efficient to explicitly size the columns - * through the ColumnModel's {@link Ext.grid.ColumnModel#width} config option. - */ - autoSizeColumns : false, - - /** - * @cfg {Boolean} True to measure headers with column data when auto sizing columns. - */ - autoSizeHeaders : true, - - /** - * @cfg {Boolean} True to autoSize the grid when the window resizes. Defaults to true. - */ - monitorWindowResize : true, - - /** - * @cfg {Boolean} If autoSizeColumns is on, maxRowsToMeasure can be used to limit the number of - * rows measured to get a columns size - defaults to 0 (all rows). - */ - maxRowsToMeasure : 0, - - /** - * @cfg {Boolean} True to highlight rows when the mouse is over. Default is false. - */ - trackMouseOver : true, - - /** - * @cfg {Boolean} True to enable drag and drop of rows. - */ - enableDragDrop : false, - - /** - * @cfg {Boolean} True to enable drag and drop reorder of columns. - */ - enableColumnMove : true, - - /** - * @cfg {Boolean} True to enable hiding of columns with the header context menu. - */ - enableColumnHide : true, - - /** - * @cfg {Boolean} True to manually sync row heights across locked and not locked rows. - */ - enableRowHeightSync : false, - - /** - * @cfg {Boolean} True to stripe the rows. Default is true. - */ - stripeRows : true, - - /** - * @cfg {Boolean} True to fit the height of the grid container to the height of the data. Defaults to false. - */ - autoHeight : false, - - /** - * @cfg {String} The id of a column in this grid that should expand to fill unused space. - */ - autoExpandColumn : false, - - /** - * @cfg {Number} The minimum width the autoExpandColumn can have (if enabled). - * defaults to 50. - */ - autoExpandMin : 50, - - /** - * @cfg {Number} The maximum width the autoExpandColumn can have (if enabled). Defaults to 1000. - */ - autoExpandMax : 1000, - - /** - * @cfg {Object} The {@link Ext.grid.GridView} used by the grid. This can be set before a call to render(). - */ - view : null, - - /** - * @cfg {Object} A javascript RegExp defining tagNames - * allowed to have text selection (Defaults to /INPUT|TEXTAREA|SELECT/i). - */ - allowTextSelectionPattern : /INPUT|TEXTAREA|SELECT/i, - - /** - * @cfg {Object} An {@link Ext.LoadMask} config or true to mask the grid while loading (defaults to false). - */ - loadMask : false, - - // private - rendered : false, - - /** - * Sets the maximum height of the grid - ignored if autoHeight is not on. - * @type Number - */ - /** - * Called once after all setup has been completed and the grid is ready to be rendered. - * @return {Ext.grid.Grid} this - */ - render : function(){ - var c = this.container; - // try to detect autoHeight/width mode - if((!c.dom.offsetHeight || c.dom.offsetHeight < 20) || c.getStyle("height") == "auto"){ - this.autoHeight = true; - } - var view = this.getView(); - view.init(this); - - c.on("click", this.onClick, this); - c.on("dblclick", this.onDblClick, this); - c.on("contextmenu", this.onContextMenu, this); - c.on("keydown", this.onKeyDown, this); - - this.relayEvents(c, ["mousedown","mouseup","mouseover","mouseout","keypress"]); - - this.getSelectionModel().init(this); - - view.render(); - - if(this.loadMask){ - this.loadMask = new Ext.LoadMask(this.container, - Ext.apply({store:this.dataSource}, this.loadMask)); - } - this.rendered = true; - return this; - }, - - reconfigure : function(dataSource, colModel){ - if(this.loadMask){ - this.loadMask.destroy(); - this.loadMask = new Ext.LoadMask(this.container, - Ext.apply({store:dataSource}, this.loadMask)); - } - this.view.bind(dataSource, colModel); - this.dataSource = dataSource; - this.colModel = colModel; - this.view.refresh(true); - }, - - onKeyDown : function(e){ - this.fireEvent("keydown", e); - }, - - /** - * Destroy this grid. - * @param {Boolean} removeEl True to remove the element - */ - destroy : function(removeEl, keepListeners){ - if(this.loadMask){ - this.loadMask.destroy(); - } - var c = this.container; - c.removeAllListeners(); - this.view.destroy(); - this.colModel.purgeListeners(); - if(!keepListeners){ - this.purgeListeners(); - } - c.update(""); - if(removeEl === true){ - c.remove(); - } - }, - - // private - processEvent : function(name, e){ - this.fireEvent(name, e); - var t = e.getTarget(); - var v = this.view; - var header = v.findHeaderIndex(t); - if(header !== false){ - this.fireEvent("header" + name, this, header, e); - }else{ - var row = v.findRowIndex(t); - var cell = v.findCellIndex(t); - if(row !== false){ - this.fireEvent("row" + name, this, row, e); - if(cell !== false){ - this.fireEvent("cell" + name, this, row, cell, e); - } - } - } - }, - - // private - onClick : function(e){ - this.processEvent("click", e); - }, - - // private - onContextMenu : function(e, t){ - this.processEvent("contextmenu", e); - }, - - // private - onDblClick : function(e){ - this.processEvent("dblclick", e); - }, - - walkCells : function(row, col, step, fn, scope){ - var cm = this.colModel, clen = cm.getColumnCount(); - var ds = this.dataSource, rlen = ds.getCount(), first = true; - if(step < 0){ - if(col < 0){ - row--; - first = false; - } - while(row >= 0){ - if(!first){ - col = clen-1; - } - first = false; - while(col >= 0){ - if(fn.call(scope || this, row, col, cm) === true){ - return [row, col]; - } - col--; - } - row--; - } - } else { - if(col >= clen){ - row++; - first = false; - } - while(row < rlen){ - if(!first){ - col = 0; - } - first = false; - while(col < clen){ - if(fn.call(scope || this, row, col, cm) === true){ - return [row, col]; - } - col++; - } - row++; - } - } - return null; - }, - - getSelections : function(){ - return this.selModel.getSelections(); - }, - - /** - * Causes the grid to manually recalculate its dimensions. Generally this is done automatically, - * but if manual update is required this method will initiate it. - */ - autoSize : function(){ - if(this.rendered){ - this.view.layout(); - if(this.view.adjustForScroll){ - this.view.adjustForScroll(); - } - } - }, - - // private for compatibility, overridden by editor grid - stopEditing : function(){}, - - /** - * Returns the grid's SelectionModel. - * @return {SelectionModel} - */ - getSelectionModel : function(){ - if(!this.selModel){ - this.selModel = new Ext.grid.RowSelectionModel(); - } - return this.selModel; - }, - - /** - * Returns the grid's DataSource. - * @return {DataSource} - */ - getDataSource : function(){ - return this.dataSource; - }, - - /** - * Returns the grid's ColumnModel. - * @return {ColumnModel} - */ - getColumnModel : function(){ - return this.colModel; - }, - - /** - * Returns the grid's GridView object. - * @return {GridView} - */ - getView : function(){ - if(!this.view){ - this.view = new Ext.grid.GridView(); - } - return this.view; - }, - /** - * Called to get grid's drag proxy text, by default returns this.ddText. - * @return {String} - */ - getDragDropText : function(){ - var count = this.selModel.getCount(); - return String.format(this.ddText, count, count == 1 ? '' : 's'); - } -}); -/** - * Configures the text is the drag proxy (defaults to "%0 selected row(s)"). - * %0 is replaced with the number of selected rows. - * @type String - */ -Ext.grid.Grid.prototype.ddText = "{0} selected row{1}"; \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/grid/GridDD.js b/www/extras/extjs/source/widgets/grid/GridDD.js deleted file mode 100644 index e15891d80..000000000 --- a/www/extras/extjs/source/widgets/grid/GridDD.js +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -// private -// This is a support class used internally by the Grid components -Ext.grid.GridDragZone = function(grid, config){ - this.view = grid.getView(); - Ext.grid.GridDragZone.superclass.constructor.call(this, this.view.lockedBody.dom, config); - this.setHandleElId(Ext.id(this.view.lockedBody.dom)); - this.setOuterHandleElId(Ext.id(this.view.mainBody.dom)); - this.scroll = false; - this.grid = grid; - this.ddel = document.createElement('div'); - this.ddel.className = 'x-grid-dd-wrap'; -}; - -Ext.extend(Ext.grid.GridDragZone, Ext.dd.DragZone, { - ddGroup : "GridDD", - - getDragData : function(e){ - var t = Ext.lib.Event.getTarget(e); - var rowIndex = this.view.findRowIndex(t); - if(rowIndex !== false){ - var sm = this.grid.selModel; - if(!sm.isSelected(rowIndex) || e.hasModifier()){ - sm.handleMouseDown(e, t); - } - return {grid: this.grid, ddel: this.ddel, rowIndex: rowIndex, selections:sm.getSelections()}; - } - return false; - }, - - onInitDrag : function(e){ - var data = this.dragData; - this.ddel.innerHTML = this.grid.getDragDropText(); - this.proxy.update(this.ddel); - // fire start drag? - }, - - afterRepair : function(){ - this.dragging = false; - }, - - getRepairXY : function(e, data){ - return false; - }, - - onEndDrag : function(data, e){ - // fire end drag? - }, - - onValidDrop : function(dd, e, id){ - // fire drag drop? - this.hideProxy(); - }, - - beforeInvalidDrop : function(e, id){ - - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/grid/GridEditor.js b/www/extras/extjs/source/widgets/grid/GridEditor.js deleted file mode 100644 index dacf2340e..000000000 --- a/www/extras/extjs/source/widgets/grid/GridEditor.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -// private -// This is a support class used internally by the Grid components -Ext.grid.GridEditor = function(field, config){ - Ext.grid.GridEditor.superclass.constructor.call(this, field, config); - field.monitorTab = false; -}; - -Ext.extend(Ext.grid.GridEditor, Ext.Editor, { - alignment: "tl-tl", - autoSize: "width", - hideEl : false, - cls: "x-small-editor x-grid-editor", - shim:false, - shadow:"frame" -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/grid/GridView.js b/www/extras/extjs/source/widgets/grid/GridView.js deleted file mode 100644 index 50a655b21..000000000 --- a/www/extras/extjs/source/widgets/grid/GridView.js +++ /dev/null @@ -1,1512 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.grid.GridView - * @extends AbstractGridView - * The default GridView implementation - * @constructor - * @param {Object} config - */ - -Ext.grid.GridView = function(config){ - Ext.grid.GridView.superclass.constructor.call(this); - this.el = null; - - Ext.apply(this, config); -}; - -Ext.extend(Ext.grid.GridView, Ext.grid.AbstractGridView, { - - /** - * Override this function to apply custom css classes to rows during rendering - * @param {Record} record The record - * @param {Number} index - * @method getRowClass - */ - rowClass : "x-grid-row", - - cellClass : "x-grid-col", - - tdClass : "x-grid-td", - - hdClass : "x-grid-hd", - - splitClass : "x-grid-split", - - sortClasses : ["sort-asc", "sort-desc"], - - enableMoveAnim : false, - - hlColor: "C3DAF9", - - dh : Ext.DomHelper, - - fly : Ext.Element.fly, - - css : Ext.util.CSS, - - borderWidth: 1, - - splitOffset: 3, - - scrollIncrement : 22, - - cellRE: /(?:.*?)x-grid-(?:hd|cell|csplit)-(?:[\d]+)-([\d]+)(?:.*?)/, - - findRE: /\s?(?:x-grid-hd|x-grid-col|x-grid-csplit)\s/, - - bind : function(ds, cm){ - if(this.ds){ - this.ds.un("load", this.onLoad, this); - this.ds.un("datachanged", this.onDataChange); - this.ds.un("add", this.onAdd); - this.ds.un("remove", this.onRemove); - this.ds.un("update", this.onUpdate); - this.ds.un("clear", this.onClear); - } - if(ds){ - ds.on("load", this.onLoad, this); - ds.on("datachanged", this.onDataChange, this); - ds.on("add", this.onAdd, this); - ds.on("remove", this.onRemove, this); - ds.on("update", this.onUpdate, this); - ds.on("clear", this.onClear, this); - } - this.ds = ds; - - if(this.cm){ - this.cm.un("widthchange", this.onColWidthChange, this); - this.cm.un("headerchange", this.onHeaderChange, this); - this.cm.un("hiddenchange", this.onHiddenChange, this); - this.cm.un("columnmoved", this.onColumnMove, this); - this.cm.un("columnlockchange", this.onColumnLock, this); - } - if(cm){ - this.generateRules(cm); - cm.on("widthchange", this.onColWidthChange, this); - cm.on("headerchange", this.onHeaderChange, this); - cm.on("hiddenchange", this.onHiddenChange, this); - cm.on("columnmoved", this.onColumnMove, this); - cm.on("columnlockchange", this.onColumnLock, this); - } - this.cm = cm; - }, - - init: function(grid){ - Ext.grid.GridView.superclass.init.call(this, grid); - - this.bind(grid.dataSource, grid.colModel); - - grid.on("headerclick", this.handleHeaderClick, this); - - if(grid.trackMouseOver){ - grid.on("mouseover", this.onRowOver, this); - grid.on("mouseout", this.onRowOut, this); - } - grid.cancelTextSelection = function(){}; - this.gridId = grid.id; - - var tpls = this.templates || {}; - - if(!tpls.master){ - tpls.master = new Ext.Template( - '
        ', - '
        ', - '
        ', - '
        ', - '
        {lockedHeader}
        ', - '
        {lockedBody}
        ', - "
        ", - '
        ', - '
        {header}
        ', - '
        {body}
        ', - "
        ", - '
        ', - '', - '
         
        ', - "
        " - ); - tpls.master.disableformats = true; - } - - if(!tpls.header){ - tpls.header = new Ext.Template( - '', - '{cells}', - "
        {splits}" - ); - tpls.header.disableformats = true; - } - tpls.header.compile(); - - if(!tpls.hcell){ - tpls.hcell = new Ext.Template( - '
        ', - '
        {value}
        ', - "
        " - ); - tpls.hcell.disableFormats = true; - } - tpls.hcell.compile(); - - if(!tpls.hsplit){ - tpls.hsplit = new Ext.Template('
         
        '); - tpls.hsplit.disableFormats = true; - } - tpls.hsplit.compile(); - - if(!tpls.body){ - tpls.body = new Ext.Template( - '', - "{rows}", - "
        " - ); - tpls.body.disableFormats = true; - } - tpls.body.compile(); - - if(!tpls.row){ - tpls.row = new Ext.Template('{cells}'); - tpls.row.disableFormats = true; - } - tpls.row.compile(); - - if(!tpls.cell){ - tpls.cell = new Ext.Template( - '', - '
        {value}
        ', - "" - ); - tpls.cell.disableFormats = true; - } - tpls.cell.compile(); - - this.templates = tpls; - }, - - // remap these for backwards compat - onColWidthChange : function(){ - this.updateColumns.apply(this, arguments); - }, - onHeaderChange : function(){ - this.updateHeaders.apply(this, arguments); - }, - onHiddenChange : function(){ - this.handleHiddenChange.apply(this, arguments); - }, - onColumnMove : function(){ - this.handleColumnMove.apply(this, arguments); - }, - onColumnLock : function(){ - this.handleLockChange.apply(this, arguments); - }, - - onDataChange : function(){ - this.refresh(); - this.updateHeaderSortState(); - }, - - onClear : function(){ - this.refresh(); - }, - - onUpdate : function(ds, record){ - this.refreshRow(record); - }, - - refreshRow : function(record){ - var ds = this.ds, index; - if(typeof record == 'number'){ - index = record; - record = ds.getAt(index); - }else{ - index = ds.indexOf(record); - } - var rows = this.getRowComposite(index); - var cls = []; - this.insertRows(ds, index, index, true); - this.onRemove(ds, record, index+1, true); - this.syncRowHeights(index, index); - this.layout(); - this.fireEvent("rowupdated", this, index, record); - }, - - onAdd : function(ds, records, index){ - this.insertRows(ds, index, index + (records.length-1)); - }, - - onRemove : function(ds, record, index, isUpdate){ - if(isUpdate !== true){ - this.fireEvent("beforerowremoved", this, index, record); - } - var bt = this.getBodyTable(), lt = this.getLockedTable(); - if(bt.rows[index]){ - bt.firstChild.removeChild(bt.rows[index]); - } - if(lt.rows[index]){ - lt.firstChild.removeChild(lt.rows[index]); - } - if(isUpdate !== true){ - this.stripeRows(index); - this.syncRowHeights(index, index); - this.layout(); - this.fireEvent("rowremoved", this, index, record); - } - }, - - onLoad : function(){ - this.scrollToTop(); - }, - - /** - * Scrolls the grid to the top - */ - scrollToTop : function(){ - if(this.scroller){ - this.scroller.dom.scrollTop = 0; - this.syncScroll(); - } - }, - - /** - * Gets a panel in the header of the grid that can be used for toolbars etc. - * After modifying the contents of this panel a call to grid.autoSize() may be - * required to register any changes in size. - * @param {Boolean} doShow By default the header is hidden. Pass true to show the panel - * @return Ext.Element - */ - getHeaderPanel : function(doShow){ - if(doShow){ - this.headerPanel.show(); - } - return this.headerPanel; - }, - - /** - * Gets a panel in the footer of the grid that can be used for toolbars etc. - * After modifying the contents of this panel a call to grid.autoSize() may be - * required to register any changes in size. - * @param {Boolean} doShow By default the footer is hidden. Pass true to show the panel - * @return Ext.Element - */ - getFooterPanel : function(doShow){ - if(doShow){ - this.footerPanel.show(); - } - return this.footerPanel; - }, - - initElements : function(){ - var E = Ext.Element; - var el = this.grid.container.dom.firstChild; - var cs = el.childNodes; - - this.el = new E(el); - this.headerPanel = new E(el.firstChild); - this.headerPanel.enableDisplayMode("block"); - - this.scroller = new E(cs[1]); - this.scrollSizer = new E(this.scroller.dom.firstChild); - - this.lockedWrap = new E(cs[2]); - this.lockedHd = new E(this.lockedWrap.dom.firstChild); - this.lockedBody = new E(this.lockedWrap.dom.childNodes[1]); - - this.mainWrap = new E(cs[3]); - this.mainHd = new E(this.mainWrap.dom.firstChild); - this.mainBody = new E(this.mainWrap.dom.childNodes[1]); - - this.footerPanel = new E(cs[4]); - this.footerPanel.enableDisplayMode("block"); - - this.focusEl = new E(cs[5]); - this.focusEl.swallowEvent("click", true); - this.resizeProxy = new E(cs[6]); - - this.headerSelector = String.format( - '#{0} td.x-grid-hd, #{1} td.x-grid-hd', - this.lockedHd.id, this.mainHd.id - ); - - this.splitterSelector = String.format( - '#{0} div.x-grid-split, #{1} div.x-grid-split', - this.lockedHd.id, this.mainHd.id - ); - }, - - getHeaderCell : function(index){ - return Ext.DomQuery.select(this.headerSelector)[index]; - }, - - getHeaderCellMeasure : function(index){ - return this.getHeaderCell(index).firstChild; - }, - - getHeaderCellText : function(index){ - return this.getHeaderCell(index).firstChild.firstChild; - }, - - getLockedTable : function(){ - return this.lockedBody.dom.firstChild; - }, - - getBodyTable : function(){ - return this.mainBody.dom.firstChild; - }, - - getLockedRow : function(index){ - return this.getLockedTable().rows[index]; - }, - - getRow : function(index){ - return this.getBodyTable().rows[index]; - }, - - getRowComposite : function(index){ - if(!this.rowEl){ - this.rowEl = new Ext.CompositeElementLite(); - } - var els = [], lrow, mrow; - if(lrow = this.getLockedRow(index)){ - els.push(lrow); - } - if(mrow = this.getRow(index)){ - els.push(mrow); - } - this.rowEl.elements = els; - return this.rowEl; - }, - - getCell : function(rowIndex, colIndex){ - var locked = this.cm.getLockedCount(); - var source; - if(colIndex < locked){ - source = this.lockedBody.dom.firstChild; - }else{ - source = this.mainBody.dom.firstChild; - colIndex -= locked; - } - return source.rows[rowIndex].childNodes[colIndex]; - }, - - getCellText : function(rowIndex, colIndex){ - return this.getCell(rowIndex, colIndex).firstChild.firstChild; - }, - - getCellBox : function(cell){ - var b = this.fly(cell).getBox(); - if(Ext.isOpera){ // opera fails to report the Y - b.y = cell.offsetTop + this.mainBody.getY(); - } - return b; - }, - - getCellIndex : function(cell){ - var id = String(cell.className).match(this.cellRE); - if(id){ - return parseInt(id[1], 10); - } - return 0; - }, - - findHeaderIndex : function(n){ - var r = Ext.fly(n).findParent("td." + this.hdClass, 6); - return r ? this.getCellIndex(r) : false; - }, - - findHeaderCell : function(n){ - var r = Ext.fly(n).findParent("td." + this.hdClass, 6); - return r ? r : false; - }, - - findRowIndex : function(n){ - if(!n){ - return false; - } - var r = Ext.fly(n).findParent("tr." + this.rowClass, 6); - return r ? r.rowIndex : false; - }, - - findCellIndex : function(node){ - var stop = this.el.dom; - while(node && node != stop){ - if(this.findRE.test(node.className)){ - return this.getCellIndex(node); - } - node = node.parentNode; - } - return false; - }, - - getColumnId : function(index){ - return this.cm.getColumnId(index); - }, - - getSplitters : function(){ - if(this.splitterSelector){ - return Ext.DomQuery.select(this.splitterSelector); - }else{ - return null; - } - }, - - getSplitter : function(index){ - return this.getSplitters()[index]; - }, - - onRowOver : function(e, t){ - var row; - if((row = this.findRowIndex(t)) !== false){ - this.getRowComposite(row).addClass("x-grid-row-over"); - } - }, - - onRowOut : function(e, t){ - var row; - if((row = this.findRowIndex(t)) !== false && row !== this.findRowIndex(e.getRelatedTarget())){ - this.getRowComposite(row).removeClass("x-grid-row-over"); - } - }, - - renderHeaders : function(){ - var cm = this.cm; - var ct = this.templates.hcell, ht = this.templates.header, st = this.templates.hsplit; - var cb = [], lb = [], sb = [], lsb = [], p = {}; - for(var i = 0, len = cm.getColumnCount(); i < len; i++){ - p.cellId = "x-grid-hd-0-" + i; - p.splitId = "x-grid-csplit-0-" + i; - p.id = cm.getColumnId(i); - p.title = cm.getColumnTooltip(i) || ""; - p.value = cm.getColumnHeader(i) || ""; - p.style = (this.grid.enableColumnResize === false || !cm.isResizable(i) || cm.isFixed(i)) ? 'cursor:default' : ''; - if(!cm.isLocked(i)){ - cb[cb.length] = ct.apply(p); - sb[sb.length] = st.apply(p); - }else{ - lb[lb.length] = ct.apply(p); - lsb[lsb.length] = st.apply(p); - } - } - return [ht.apply({cells: lb.join(""), splits:lsb.join("")}), - ht.apply({cells: cb.join(""), splits:sb.join("")})]; - }, - - updateHeaders : function(){ - var html = this.renderHeaders(); - this.lockedHd.update(html[0]); - this.mainHd.update(html[1]); - }, - - /** - * Focuses the specified row. - * @param {Number} row The row index - */ - focusRow : function(row){ - var x = this.scroller.dom.scrollLeft; - this.focusCell(row, 0, false); - this.scroller.dom.scrollLeft = x; - }, - - /** - * Focuses the specified cell. - * @param {Number} row The row index - * @param {Number} col The column index - * @param {Boolean} hscroll false to disable horizontal scrolling - */ - focusCell : function(row, col, hscroll){ - var el = this.ensureVisible(row, col, hscroll); - this.focusEl.alignTo(el, "tl-tl"); - if(Ext.isGecko){ - this.focusEl.focus(); - }else{ - this.focusEl.focus.defer(1, this.focusEl); - } - }, - - /** - * Scrolls the specified cell into view - * @param {Number} row The row index - * @param {Number} col The column index - * @param {Boolean} hscroll false to disable horizontal scrolling - */ - ensureVisible : function(row, col, hscroll){ - if(typeof row != "number"){ - row = row.rowIndex; - } - if(row < 0 && row >= this.ds.getCount()){ - return; - } - col = (col !== undefined ? col : 0); - var cm = this.grid.colModel; - while(cm.isHidden(col)){ - col++; - } - - var el = this.getCell(row, col); - if(!el){ - return; - } - var c = this.scroller.dom; - - var ctop = parseInt(el.offsetTop, 10); - var cleft = parseInt(el.offsetLeft, 10); - var cbot = ctop + el.offsetHeight; - var cright = cleft + el.offsetWidth; - - var ch = c.clientHeight - this.mainHd.dom.offsetHeight; - var stop = parseInt(c.scrollTop, 10); - var sleft = parseInt(c.scrollLeft, 10); - var sbot = stop + ch; - var sright = sleft + c.clientWidth; - - if(ctop < stop){ - c.scrollTop = ctop; - }else if(cbot > sbot){ - c.scrollTop = cbot-ch; - } - - if(hscroll !== false){ - if(cleft < sleft){ - c.scrollLeft = cleft; - }else if(cright > sright){ - c.scrollLeft = cright-c.clientWidth; - } - } - return el; - }, - - updateColumns : function(){ - this.grid.stopEditing(); - var cm = this.grid.colModel, colIds = this.getColumnIds(); - //var totalWidth = cm.getTotalWidth(); - var pos = 0; - for(var i = 0, len = cm.getColumnCount(); i < len; i++){ - //if(cm.isHidden(i)) continue; - var w = cm.getColumnWidth(i); - this.css.updateRule(this.colSelector+colIds[i], "width", (w - this.borderWidth) + "px"); - this.css.updateRule(this.hdSelector+colIds[i], "width", (w - this.borderWidth) + "px"); - } - this.updateSplitters(); - }, - - updateSplitters : function(){ - var cm = this.cm, s = this.getSplitters(); - if(s){ // splitters not created yet - var pos = 0, locked = true; - for(var i = 0, len = cm.getColumnCount(); i < len; i++){ - if(cm.isHidden(i)) continue; - var w = cm.getColumnWidth(i); - if(!cm.isLocked(i) && locked){ - pos = 0; - locked = false; - } - pos += w; - s[i].style.left = (pos-this.splitOffset) + "px"; - } - } - }, - - handleHiddenChange : function(colModel, colIndex, hidden){ - if(hidden){ - this.hideColumn(colIndex); - }else{ - this.unhideColumn(colIndex); - } - }, - - hideColumn : function(colIndex){ - var cid = this.getColumnId(colIndex); - this.css.updateRule(this.tdSelector+cid, "display", "none"); - this.css.updateRule(this.splitSelector+cid, "display", "none"); - if(Ext.isSafari){ - this.updateHeaders(); - } - this.updateSplitters(); - this.layout(); - }, - - unhideColumn : function(colIndex){ - var cid = this.getColumnId(colIndex); - this.css.updateRule(this.tdSelector+cid, "display", ""); - this.css.updateRule(this.splitSelector+cid, "display", ""); - - if(Ext.isSafari){ - this.updateHeaders(); - } - this.updateSplitters(); - this.layout(); - }, - - insertRows : function(dm, firstRow, lastRow, isUpdate){ - if(firstRow == 0 && lastRow == dm.getCount()-1){ - this.refresh(); - }else{ - if(!isUpdate){ - this.fireEvent("beforerowsinserted", this, firstRow, lastRow); - } - var s = this.getScrollState(); - var markup = this.renderRows(firstRow, lastRow); - this.bufferRows(markup[0], this.getLockedTable(), firstRow); - this.bufferRows(markup[1], this.getBodyTable(), firstRow); - this.restoreScroll(s); - if(!isUpdate){ - this.fireEvent("rowsinserted", this, firstRow, lastRow); - this.syncRowHeights(firstRow, lastRow); - this.stripeRows(firstRow); - this.layout(); - } - } - }, - - bufferRows : function(markup, target, index){ - var before = null, trows = target.rows, tbody = target.tBodies[0]; - if(index < trows.length){ - before = trows[index]; - } - var b = document.createElement("div"); - b.innerHTML = ""+markup+"
        "; - var rows = b.firstChild.rows; - for(var i = 0, len = rows.length; i < len; i++){ - if(before){ - tbody.insertBefore(rows[0], before); - }else{ - tbody.appendChild(rows[0]); - } - } - b.innerHTML = ""; - b = null; - }, - - deleteRows : function(dm, firstRow, lastRow){ - if(dm.getRowCount()<1){ - this.fireEvent("beforerefresh", this); - this.mainBody.update(""); - this.lockedBody.update(""); - this.fireEvent("refresh", this); - }else{ - this.fireEvent("beforerowsdeleted", this, firstRow, lastRow); - var bt = this.getBodyTable(); - var tbody = bt.firstChild; - var rows = bt.rows; - for(var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++){ - tbody.removeChild(rows[firstRow]); - } - this.stripeRows(firstRow); - this.fireEvent("rowsdeleted", this, firstRow, lastRow); - } - }, - - updateRows : function(dataSource, firstRow, lastRow){ - var s = this.getScrollState(); - this.refresh(); - this.restoreScroll(s); - }, - - handleSort : function(dataSource, sortColumnIndex, sortDir, noRefresh){ - if(!noRefresh){ - this.refresh(); - } - this.updateHeaderSortState(); - }, - - getScrollState : function(){ - var sb = this.scroller.dom; - return {left: sb.scrollLeft, top: sb.scrollTop}; - }, - - stripeRows : function(startRow){ - if(!this.grid.stripeRows || this.ds.getCount() < 1){ - return; - } - startRow = startRow || 0; - var rows = this.getBodyTable().rows; - var lrows = this.getLockedTable().rows; - var cls = ' x-grid-row-alt '; - for(var i = startRow, len = rows.length; i < len; i++){ - var row = rows[i], lrow = lrows[i]; - var isAlt = ((i+1) % 2 == 0); - var hasAlt = (' '+row.className + ' ').indexOf(cls) != -1; - if(isAlt == hasAlt){ - continue; - } - if(isAlt){ - row.className += " x-grid-row-alt"; - }else{ - row.className = row.className.replace("x-grid-row-alt", ""); - } - if(lrow){ - lrow.className = row.className; - } - } - }, - - restoreScroll : function(state){ - var sb = this.scroller.dom; - sb.scrollLeft = state.left; - sb.scrollTop = state.top; - this.syncScroll(); - }, - - syncScroll : function(){ - var sb = this.scroller.dom; - var sh = this.mainHd.dom; - var bs = this.mainBody.dom; - var lv = this.lockedBody.dom; - sh.scrollLeft = bs.scrollLeft = sb.scrollLeft; - lv.scrollTop = bs.scrollTop = sb.scrollTop; - }, - - handleScroll : function(e){ - this.syncScroll(); - var sb = this.scroller.dom; - this.grid.fireEvent("bodyscroll", sb.scrollLeft, sb.scrollTop); - e.stopEvent(); - }, - - handleWheel : function(e){ - var d = e.getWheelDelta(); - this.scroller.dom.scrollTop -= d*22; - // set this here to prevent jumpy scrolling on large tables - this.lockedBody.dom.scrollTop = this.mainBody.dom.scrollTop = this.scroller.dom.scrollTop; - e.stopEvent(); - }, - - renderRows : function(startRow, endRow){ - // pull in all the crap needed to render rows - var g = this.grid, cm = g.colModel, ds = g.dataSource, stripe = g.stripeRows; - var colCount = cm.getColumnCount(); - - if(ds.getCount() < 1){ - return ["", ""]; - } - - // build a map for all the columns - var cs = []; - for(var i = 0; i < colCount; i++){ - var name = cm.getDataIndex(i); - cs[i] = { - name : typeof name == 'undefined' ? ds.fields.get(i).name : name, - renderer : cm.getRenderer(i), - id : cm.getColumnId(i), - locked : cm.isLocked(i) - }; - } - - startRow = startRow || 0; - endRow = typeof endRow == "undefined"? ds.getCount()-1 : endRow; - - // records to render - var rs = ds.getRange(startRow, endRow); - - return this.doRender(cs, rs, ds, startRow, colCount, stripe); - }, - - // As much as I hate to duplicate code, this was branched because FireFox really hates - // [].join("") on strings. The performance difference was substantial enough to - // branch this function - doRender : Ext.isGecko ? - function(cs, rs, ds, startRow, colCount, stripe){ - var ts = this.templates, ct = ts.cell, rt = ts.row; - // buffers - var buf = "", lbuf = "", cb, lcb, c, p = {}, rp = {}, r; - for(var j = 0, len = rs.length; j < len; j++){ - r = rs[j], cb = "", lcb = "", rowIndex = (j+startRow); - for(var i = 0; i < colCount; i++){ - c = cs[i]; - p.cellId = "x-grid-cell-" + rowIndex + "-" + i; - p.id = c.id; - p.css = p.attr = ""; - p.value = c.renderer(r.data[c.name], p, r, rowIndex, i, ds); - if(p.value == undefined || p.value === "") p.value = " "; - if(r.dirty && typeof r.modified[c.name] !== 'undefined'){ - p.css += p.css ? ' x-grid-dirty-cell' : 'x-grid-dirty-cell'; - } - var markup = ct.apply(p); - if(!c.locked){ - cb+= markup; - }else{ - lcb+= markup; - } - } - var alt = []; - if(stripe && ((rowIndex+1) % 2 == 0)){ - alt[0] = "x-grid-row-alt"; - } - if(r.dirty){ - alt[1] = " x-grid-dirty-row"; - } - rp.cells = lcb; - if(this.getRowClass){ - alt[2] = this.getRowClass(r, rowIndex); - } - rp.alt = alt.join(" "); - lbuf+= rt.apply(rp); - rp.cells = cb; - buf+= rt.apply(rp); - } - return [lbuf, buf]; - } : - function(cs, rs, ds, startRow, colCount, stripe){ - var ts = this.templates, ct = ts.cell, rt = ts.row; - // buffers - var buf = [], lbuf = [], cb, lcb, c, p = {}, rp = {}, r; - for(var j = 0, len = rs.length; j < len; j++){ - r = rs[j], cb = [], lcb = [], rowIndex = (j+startRow); - for(var i = 0; i < colCount; i++){ - c = cs[i]; - p.cellId = "x-grid-cell-" + rowIndex + "-" + i; - p.id = c.id; - p.css = p.attr = ""; - p.value = c.renderer(r.data[c.name], p, r, rowIndex, i, ds); - if(p.value == undefined || p.value === "") p.value = " "; - if(r.dirty && typeof r.modified[c.name] !== 'undefined'){ - p.css += p.css ? ' x-grid-dirty-cell' : 'x-grid-dirty-cell'; - } - var markup = ct.apply(p); - if(!c.locked){ - cb[cb.length] = markup; - }else{ - lcb[lcb.length] = markup; - } - } - var alt = []; - if(stripe && ((rowIndex+1) % 2 == 0)){ - alt[0] = "x-grid-row-alt"; - } - if(r.dirty){ - alt[1] = " x-grid-dirty-row"; - } - rp.cells = lcb; - if(this.getRowClass){ - alt[2] = this.getRowClass(r, rowIndex); - } - rp.alt = alt.join(" "); - rp.cells = lcb.join(""); - lbuf[lbuf.length] = rt.apply(rp); - rp.cells = cb.join(""); - buf[buf.length] = rt.apply(rp); - } - return [lbuf.join(""), buf.join("")]; - }, - - renderBody : function(){ - var markup = this.renderRows(); - var bt = this.templates.body; - return [bt.apply({rows: markup[0]}), bt.apply({rows: markup[1]})]; - }, - - /** - * Refreshes the grid - * @param {Boolean} headersToo - */ - refresh : function(headersToo){ - this.fireEvent("beforerefresh", this); - this.grid.stopEditing(); - var result = this.renderBody(); - this.lockedBody.update(result[0]); - this.mainBody.update(result[1]); - if(headersToo === true){ - this.updateHeaders(); - this.updateColumns(); - this.updateSplitters(); - this.updateHeaderSortState(); - } - this.syncRowHeights(); - this.layout(); - this.fireEvent("refresh", this); - }, - - handleColumnMove : function(cm, oldIndex, newIndex){ - this.indexMap = null; - var s = this.getScrollState(); - this.refresh(true); - this.restoreScroll(s); - this.afterMove(newIndex); - }, - - afterMove : function(colIndex){ - if(this.enableMoveAnim && Ext.enableFx){ - this.fly(this.getHeaderCell(colIndex).firstChild).highlight(this.hlColor); - } - }, - - updateCell : function(dm, rowIndex, dataIndex){ - var colIndex = this.getColumnIndexByDataIndex(dataIndex); - if(typeof colIndex == "undefined"){ // not present in grid - return; - } - var cm = this.grid.colModel; - var cell = this.getCell(rowIndex, colIndex); - var cellText = this.getCellText(rowIndex, colIndex); - - var p = { - cellId : "x-grid-cell-" + rowIndex + "-" + colIndex, - id : cm.getColumnId(colIndex), - css: colIndex == cm.getColumnCount()-1 ? "x-grid-col-last" : "" - }; - var renderer = cm.getRenderer(colIndex); - var val = renderer(dm.getValueAt(rowIndex, dataIndex), p, rowIndex, colIndex, dm); - if(typeof val == "undefined" || val === "") val = " "; - cellText.innerHTML = val; - cell.className = this.cellClass + " " + p.cellId + " " + p.css; - this.syncRowHeights(rowIndex, rowIndex); - }, - - calcColumnWidth : function(colIndex, maxRowsToMeasure){ - var maxWidth = 0; - if(this.grid.autoSizeHeaders){ - var h = this.getHeaderCellMeasure(colIndex); - maxWidth = Math.max(maxWidth, h.scrollWidth); - } - var tb, index; - if(this.cm.isLocked(colIndex)){ - tb = this.getLockedTable(); - index = colIndex; - }else{ - tb = this.getBodyTable(); - index = colIndex - this.cm.getLockedCount(); - } - if(tb && tb.rows){ - var rows = tb.rows; - var stopIndex = Math.min(maxRowsToMeasure || rows.length, rows.length); - for(var i = 0; i < stopIndex; i++){ - var cell = rows[i].childNodes[index].firstChild; - maxWidth = Math.max(maxWidth, cell.scrollWidth); - } - } - return maxWidth + /*margin for error in IE*/ 5; - }, - /** - * Autofit a column to its content. - * @param {Number} colIndex - * @param {Boolean} forceMinSize true to force the column to go smaller if possible - */ - autoSizeColumn : function(colIndex, forceMinSize, suppressEvent){ - if(this.cm.isHidden(colIndex)){ - return; // can't calc a hidden column - } - if(forceMinSize){ - var cid = this.cm.getColumnId(colIndex); - this.css.updateRule(this.colSelector + cid, "width", this.grid.minColumnWidth + "px"); - if(this.grid.autoSizeHeaders){ - this.css.updateRule(this.hdSelector + cid, "width", this.grid.minColumnWidth + "px"); - } - } - var newWidth = this.calcColumnWidth(colIndex); - this.cm.setColumnWidth(colIndex, - Math.max(this.grid.minColumnWidth, newWidth), suppressEvent); - if(!suppressEvent){ - this.grid.fireEvent("columnresize", colIndex, newWidth); - } - }, - - /** - * Autofits all columns to their content and then expands to fit any extra space in the grid - */ - autoSizeColumns : function(){ - var cm = this.grid.colModel; - var colCount = cm.getColumnCount(); - for(var i = 0; i < colCount; i++){ - this.autoSizeColumn(i, true, true); - } - if(cm.getTotalWidth() < this.scroller.dom.clientWidth){ - this.fitColumns(); - }else{ - this.updateColumns(); - this.layout(); - } - }, - - /** - * Autofits all columns to the grid's width proportionate with their current size - * @param {Boolean} reserveScrollSpace Reserve space for a scrollbar - */ - fitColumns : function(reserveScrollSpace){ - var cm = this.grid.colModel; - var colCount = cm.getColumnCount(); - var cols = []; - var width = 0; - var i, w; - for (i = 0; i < colCount; i++){ - if(!cm.isHidden(i) && !cm.isFixed(i)){ - w = cm.getColumnWidth(i); - cols.push(i); - cols.push(w); - width += w; - } - } - var avail = Math.min(this.scroller.dom.clientWidth, this.el.getWidth()); - if(reserveScrollSpace){ - avail -= 17; - } - var frac = (avail - cm.getTotalWidth())/width; - while (cols.length){ - w = cols.pop(); - i = cols.pop(); - cm.setColumnWidth(i, Math.floor(w + w*frac), true); - } - this.updateColumns(); - this.layout(); - }, - - onRowSelect : function(rowIndex){ - var row = this.getRowComposite(rowIndex); - row.addClass("x-grid-row-selected"); - }, - - onRowDeselect : function(rowIndex){ - var row = this.getRowComposite(rowIndex); - row.removeClass("x-grid-row-selected"); - }, - - onCellSelect : function(row, col){ - var cell = this.getCell(row, col); - if(cell){ - Ext.fly(cell).addClass("x-grid-cell-selected"); - } - }, - - onCellDeselect : function(row, col){ - var cell = this.getCell(row, col); - if(cell){ - Ext.fly(cell).removeClass("x-grid-cell-selected"); - } - }, - - updateHeaderSortState : function(){ - var state = this.ds.getSortState(); - if(!state){ - return; - } - this.sortState = state; - var sortColumn = this.cm.findColumnIndex(state.field); - if(sortColumn != -1){ - var sortDir = state.direction; - var sc = this.sortClasses; - var hds = this.el.select(this.headerSelector).removeClass(sc); - hds.item(sortColumn).addClass(sc[sortDir == "DESC" ? 1 : 0]); - } - }, - - handleHeaderClick : function(g, index){ - if(this.headersDisabled){ - return; - } - var dm = g.dataSource, cm = g.colModel; - if(!cm.isSortable(index)){ - return; - } - g.stopEditing(); - dm.sort(cm.getDataIndex(index)); - }, - - - destroy : function(){ - if(this.colMenu){ - this.colMenu.removeAll(); - Ext.menu.MenuMgr.unregister(this.colMenu); - this.colMenu.getEl().remove(); - delete this.colMenu; - } - if(this.hmenu){ - this.hmenu.removeAll(); - Ext.menu.MenuMgr.unregister(this.hmenu); - this.hmenu.getEl().remove(); - delete this.hmenu; - } - if(this.grid.enableColumnMove){ - var dds = Ext.dd.DDM.ids['gridHeader' + this.grid.container.id]; - if(dds){ - for(var dd in dds){ - if(!dds[dd].config.isTarget && dds[dd].dragElId){ - var elid = dds[dd].dragElId; - dds[dd].unreg(); - Ext.get(elid).remove(); - } else if(dds[dd].config.isTarget){ - dds[dd].proxyTop.remove(); - dds[dd].proxyBottom.remove(); - dds[dd].unreg(); - } - if(Ext.dd.DDM.locationCache[dd]){ - delete Ext.dd.DDM.locationCache[dd]; - } - } - delete Ext.dd.DDM.ids['gridHeader' + this.grid.container.id]; - } - } - - this.bind(null, null); - Ext.EventManager.removeResizeListener(this.onWindowResize, this); - }, - - handleLockChange : function(){ - this.refresh(true); - }, - - onDenyColumnLock : function(){ - - }, - - onDenyColumnHide : function(){ - - }, - - handleHdMenuClick : function(item){ - var index = this.hdCtxIndex; - var cm = this.cm, ds = this.ds; - switch(item.id){ - case "asc": - ds.sort(cm.getDataIndex(index), "ASC"); - break; - case "desc": - ds.sort(cm.getDataIndex(index), "DESC"); - break; - case "lock": - var lc = cm.getLockedCount(); - if(cm.getColumnCount(true) <= lc+1){ - this.onDenyColumnLock(); - return; - } - if(lc != index){ - cm.setLocked(index, true, true); - cm.moveColumn(index, lc); - this.grid.fireEvent("columnmove", index, lc); - }else{ - cm.setLocked(index, true); - } - break; - case "unlock": - var lc = cm.getLockedCount(); - if((lc-1) != index){ - cm.setLocked(index, false, true); - cm.moveColumn(index, lc-1); - this.grid.fireEvent("columnmove", index, lc-1); - }else{ - cm.setLocked(index, false); - } - break; - default: - index = cm.getIndexById(item.id.substr(4)); - if(index != -1){ - if(item.checked && cm.getColumnCount(true) <= 1){ - this.onDenyColumnHide(); - return false; - } - cm.setHidden(index, item.checked); - } - } - return true; - }, - - beforeColMenuShow : function(){ - var cm = this.cm, colCount = cm.getColumnCount(); - this.colMenu.removeAll(); - for(var i = 0; i < colCount; i++){ - this.colMenu.add(new Ext.menu.CheckItem({ - id: "col-"+cm.getColumnId(i), - text: cm.getColumnHeader(i), - checked: !cm.isHidden(i), - hideOnClick:false - })); - } - }, - - handleHdCtx : function(g, index, e){ - e.stopEvent(); - var hd = this.getHeaderCell(index); - this.hdCtxIndex = index; - var ms = this.hmenu.items, cm = this.cm; - ms.get("asc").setDisabled(!cm.isSortable(index)); - ms.get("desc").setDisabled(!cm.isSortable(index)); - if(this.grid.enableColLock !== false){ - ms.get("lock").setDisabled(cm.isLocked(index)); - ms.get("unlock").setDisabled(!cm.isLocked(index)); - } - this.hmenu.show(hd, "tl-bl"); - }, - - handleHdOver : function(e){ - var hd = this.findHeaderCell(e.getTarget()); - if(hd && !this.headersDisabled){ - if(this.grid.colModel.isSortable(this.getCellIndex(hd))){ - this.fly(hd).addClass("x-grid-hd-over"); - } - } - }, - - handleHdOut : function(e){ - var hd = this.findHeaderCell(e.getTarget()); - if(hd){ - this.fly(hd).removeClass("x-grid-hd-over"); - } - }, - - handleSplitDblClick : function(e, t){ - var i = this.getCellIndex(t); - if(this.grid.enableColumnResize !== false && this.cm.isResizable(i) && !this.cm.isFixed(i)){ - this.autoSizeColumn(i, true); - this.layout(); - } - }, - - render : function(){ - - var cm = this.cm; - var colCount = cm.getColumnCount(); - - if(this.grid.monitorWindowResize === true){ - Ext.EventManager.onWindowResize(this.onWindowResize, this, true); - } - var header = this.renderHeaders(); - var body = this.templates.body.apply({rows:""}); - var html = this.templates.master.apply({ - lockedBody: body, - body: body, - lockedHeader: header[0], - header: header[1] - }); - - this.updateColumns(); - - this.grid.container.dom.innerHTML = html; - - this.initElements(); - - this.scroller.on("scroll", this.handleScroll, this); - this.lockedBody.on("mousewheel", this.handleWheel, this); - this.mainBody.on("mousewheel", this.handleWheel, this); - - this.mainHd.on("mouseover", this.handleHdOver, this); - this.mainHd.on("mouseout", this.handleHdOut, this); - this.mainHd.on("dblclick", this.handleSplitDblClick, this, - {delegate: "."+this.splitClass}); - - this.lockedHd.on("mouseover", this.handleHdOver, this); - this.lockedHd.on("mouseout", this.handleHdOut, this); - this.lockedHd.on("dblclick", this.handleSplitDblClick, this, - {delegate: "."+this.splitClass}); - - if(this.grid.enableColumnResize !== false && Ext.grid.SplitDragZone){ - new Ext.grid.SplitDragZone(this.grid, this.lockedHd.dom, this.mainHd.dom); - } - - this.updateSplitters(); - - if(this.grid.enableColumnMove && Ext.grid.HeaderDragZone){ - new Ext.grid.HeaderDragZone(this.grid, this.lockedHd.dom, this.mainHd.dom); - new Ext.grid.HeaderDropZone(this.grid, this.lockedHd.dom, this.mainHd.dom); - } - - if(this.grid.enableCtxMenu !== false && Ext.menu.Menu){ - this.hmenu = new Ext.menu.Menu({id: this.grid.id + "-hctx"}); - this.hmenu.add( - {id:"asc", text: this.sortAscText, cls: "xg-hmenu-sort-asc"}, - {id:"desc", text: this.sortDescText, cls: "xg-hmenu-sort-desc"} - ); - if(this.grid.enableColLock !== false){ - this.hmenu.add('-', - {id:"lock", text: this.lockText, cls: "xg-hmenu-lock"}, - {id:"unlock", text: this.unlockText, cls: "xg-hmenu-unlock"} - ); - } - if(this.grid.enableColumnHide !== false){ - - this.colMenu = new Ext.menu.Menu({id:this.grid.id + "-hcols-menu"}); - this.colMenu.on("beforeshow", this.beforeColMenuShow, this); - this.colMenu.on("itemclick", this.handleHdMenuClick, this); - - this.hmenu.add('-', - {id:"columns", text: this.columnsText, menu: this.colMenu} - ); - } - this.hmenu.on("itemclick", this.handleHdMenuClick, this); - - this.grid.on("headercontextmenu", this.handleHdCtx, this); - } - - if((this.grid.enableDragDrop || this.grid.enableDrag) && Ext.grid.GridDragZone){ - this.dd = new Ext.grid.GridDragZone(this.grid, { - ddGroup : this.grid.ddGroup || 'GridDD' - }); - } - for(var i = 0; i < colCount; i++){ - if(cm.isHidden(i)){ - this.hideColumn(i); - } - if(cm.config[i].align){ - this.css.updateRule(this.colSelector + i, "textAlign", cm.config[i].align); - this.css.updateRule(this.hdSelector + i, "textAlign", cm.config[i].align); - } - } - - this.updateHeaderSortState(); - - this.beforeInitialResize(); - this.layout(true); - - // two part rendering gives faster view to the user - this.renderPhase2.defer(1, this); - }, - - renderPhase2 : function(){ - // render the rows now - this.refresh(); - if(this.grid.autoSizeColumns){ - this.autoSizeColumns(); - } - }, - - beforeInitialResize : function(){ - - }, - - onColumnSplitterMoved : function(i, w){ - this.userResized = true; - var cm = this.grid.colModel; - cm.setColumnWidth(i, w, true); - var cid = cm.getColumnId(i); - this.css.updateRule(this.colSelector + cid, "width", (w-this.borderWidth) + "px"); - this.css.updateRule(this.hdSelector + cid, "width", (w-this.borderWidth) + "px"); - this.updateSplitters(); - this.layout(); - this.grid.fireEvent("columnresize", i, w); - }, - - syncRowHeights : function(startIndex, endIndex){ - if(this.grid.enableRowHeightSync === true && this.cm.getLockedCount() > 0){ - startIndex = startIndex || 0; - var mrows = this.getBodyTable().rows; - var lrows = this.getLockedTable().rows; - var len = mrows.length-1; - endIndex = Math.min(endIndex || len, len); - for(var i = startIndex; i <= endIndex; i++){ - var m = mrows[i], l = lrows[i]; - var h = Math.max(m.offsetHeight, l.offsetHeight); - m.style.height = l.style.height = h + "px"; - } - } - }, - - layout : function(initialRender, is2ndPass){ - var g = this.grid; - var auto = g.autoHeight; - var scrollOffset = 16; - var c = g.container, cm = this.cm, - expandCol = g.autoExpandColumn, - gv = this; - //c.beginMeasure(); - - if(!c.dom.offsetWidth){ // display:none? - if(initialRender){ - this.lockedWrap.show(); - this.mainWrap.show(); - } - return; - } - - var hasLock = this.cm.isLocked(0); - - var tbh = this.headerPanel.getHeight(); - var bbh = this.footerPanel.getHeight(); - - if(auto){ - var ch = this.getBodyTable().offsetHeight + tbh + bbh + this.mainHd.getHeight(); - var newHeight = ch + c.getBorderWidth("tb"); - if(g.maxHeight){ - newHeight = Math.min(g.maxHeight, newHeight); - } - c.setHeight(newHeight); - } - - if(g.autoWidth){ - c.setWidth(cm.getTotalWidth()+c.getBorderWidth('lr')); - } - - var s = this.scroller; - - var csize = c.getSize(true); - - this.el.setSize(csize.width, csize.height); - - this.headerPanel.setWidth(csize.width); - this.footerPanel.setWidth(csize.width); - - var hdHeight = this.mainHd.getHeight(); - var vw = csize.width; - var vh = csize.height - (tbh + bbh); - - s.setSize(vw, vh); - - var bt = this.getBodyTable(); - var ltWidth = hasLock ? - Math.max(this.getLockedTable().offsetWidth, this.lockedHd.dom.firstChild.offsetWidth) : 0; - - var scrollHeight = bt.offsetHeight; - var scrollWidth = ltWidth + bt.offsetWidth; - var vscroll = false, hscroll = false; - - this.scrollSizer.setSize(scrollWidth, scrollHeight+hdHeight); - - var lw = this.lockedWrap, mw = this.mainWrap; - var lb = this.lockedBody, mb = this.mainBody; - - setTimeout(function(){ - var t = s.dom.offsetTop; - var w = s.dom.clientWidth, - h = s.dom.clientHeight; - - lw.setTop(t); - lw.setSize(ltWidth, h); - - mw.setLeftTop(ltWidth, t); - mw.setSize(w-ltWidth, h); - - lb.setHeight(h-hdHeight); - mb.setHeight(h-hdHeight); - - if(is2ndPass !== true && !gv.userResized && expandCol){ - // high speed resize without full column calculation - var ci = cm.getIndexById(expandCol); - var tw = cm.getTotalWidth(false); - var currentWidth = cm.getColumnWidth(ci); - var cw = Math.min(Math.max(((w-tw)+currentWidth-2)-/*scrollbar*/(w <= s.dom.offsetWidth ? 0 : 18), g.autoExpandMin), g.autoExpandMax); - if(currentWidth != cw){ - cm.setColumnWidth(ci, cw, true); - gv.css.updateRule(gv.colSelector+expandCol, "width", (cw - gv.borderWidth) + "px"); - gv.css.updateRule(gv.hdSelector+expandCol, "width", (cw - gv.borderWidth) + "px"); - gv.updateSplitters(); - gv.layout(false, true); - } - } - - if(initialRender){ - lw.show(); - mw.show(); - } - //c.endMeasure(); - }, 10); - }, - - onWindowResize : function(){ - if(!this.grid.monitorWindowResize || this.grid.autoHeight){ - return; - } - this.layout(); - }, - - appendFooter : function(parentEl){ - return null; - }, - - sortAscText : "Sort Ascending", - sortDescText : "Sort Descending", - lockText : "Lock Column", - unlockText : "Unlock Column", - columnsText : "Columns" -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/grid/PropertyGrid.js b/www/extras/extjs/source/widgets/grid/PropertyGrid.js deleted file mode 100644 index b60dce17d..000000000 --- a/www/extras/extjs/source/widgets/grid/PropertyGrid.js +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.grid.PropertyRecord = Ext.data.Record.create([ - {name:'name',type:'string'}, 'value' -]); - -Ext.grid.PropertyStore = function(grid, source){ - this.grid = grid; - this.store = new Ext.data.Store({ - recordType : Ext.grid.PropertyRecord - }); - this.store.on('update', this.onUpdate, this); - if(source){ - this.setSource(source); - } - Ext.grid.PropertyStore.superclass.constructor.call(this); -}; -Ext.extend(Ext.grid.PropertyStore, Ext.util.Observable, { - setSource : function(o){ - this.source = o; - this.store.removeAll(); - var data = []; - for(var k in o){ - if(this.isEditableValue(o[k])){ - data.push(new Ext.grid.PropertyRecord({name: k, value: o[k]}, k)); - } - } - this.store.loadRecords({records: data}, {}, true); - }, - - onUpdate : function(ds, record, type){ - if(type == Ext.data.Record.EDIT){ - var v = record.data['value']; - var oldValue = record.modified['value']; - if(this.grid.fireEvent('beforepropertychange', this.source, record.id, v, oldValue) !== false){ - this.source[record.id] = v; - record.commit(); - this.grid.fireEvent('propertychange', this.source, record.id, v, oldValue); - }else{ - record.reject(); - } - } - }, - - getProperty : function(row){ - return this.store.getAt(row); - }, - - isEditableValue: function(val){ - if(val && val instanceof Date){ - return true; - }else if(typeof val == 'object' || typeof val == 'function'){ - return false; - } - return true; - }, - - setValue : function(prop, value){ - this.source[prop] = value; - this.store.getById(prop).set('value', value); - }, - - getSource : function(){ - return this.source; - } -}); - -Ext.grid.PropertyColumnModel = function(grid, store){ - this.grid = grid; - var g = Ext.grid; - g.PropertyColumnModel.superclass.constructor.call(this, [ - {header: this.nameText, sortable: true, dataIndex:'name', id: 'name'}, - {header: this.valueText, resizable:false, dataIndex: 'value', id: 'value'} - ]); - this.store = store; - this.bselect = Ext.DomHelper.append(document.body, { - tag: 'select', style:'display:none', cls: 'x-grid-editor', children: [ - {tag: 'option', value: 'true', html: 'true'}, - {tag: 'option', value: 'false', html: 'false'} - ] - }); - Ext.id(this.bselect); - var f = Ext.form; - this.editors = { - 'date' : new g.GridEditor(new f.DateField({selectOnFocus:true})), - 'string' : new g.GridEditor(new f.TextField({selectOnFocus:true})), - 'number' : new g.GridEditor(new f.NumberField({selectOnFocus:true, style:'text-align:left;'})), - 'boolean' : new g.GridEditor(new f.Field({el:this.beselect,selectOnFocus:true})) - }; - this.renderCellDelegate = this.renderCell.createDelegate(this); - this.renderPropDelegate = this.renderProp.createDelegate(this); -}; - -Ext.extend(Ext.grid.PropertyColumnModel, Ext.grid.ColumnModel, { - nameText : 'Name', - valueText : 'Value', - dateFormat : 'm/j/Y', - renderDate : function(dateVal){ - return dateVal.dateFormat(this.dateFormat); - }, - - renderBool : function(bVal){ - return bVal ? 'true' : 'false'; - }, - - isCellEditable : function(colIndex, rowIndex){ - return colIndex == 1; - }, - - getRenderer : function(col){ - return col == 1 ? - this.renderCellDelegate : this.renderPropDelegate; - }, - - renderProp : function(v){ - return this.getPropertyName(v); - }, - - renderCell : function(val){ - var rv = val; - if(val instanceof Date){ - rv = this.renderDate(val); - }else if(typeof val == 'boolean'){ - rv = this.renderBool(val); - } - return Ext.util.Format.htmlEncode(rv); - }, - - getPropertyName : function(name){ - var pn = this.grid.propertyNames; - return pn && pn[name] ? pn[name] : name; - }, - - getCellEditor : function(colIndex, rowIndex){ - var p = this.store.getProperty(rowIndex); - var n = p.data['name'], val = p.data['value']; - if(this.grid.customEditors[n]){ - return this.grid.customEditors[n]; - } - if(val instanceof Date){ - return this.editors['date']; - }else if(typeof val == 'number'){ - return this.editors['number']; - }else if(typeof val == 'boolean'){ - return this.editors['boolean']; - }else{ - return this.editors['string']; - } - } -}); - -Ext.grid.PropertyGrid = function(container, config){ - config = config || {}; - var store = new Ext.grid.PropertyStore(this); - this.store = store; - var cm = new Ext.grid.PropertyColumnModel(this, store); - store.store.sort('name', 'ASC'); - Ext.grid.PropertyGrid.superclass.constructor.call(this, container, Ext.apply({ - ds: store.store, - cm: cm, - enableColLock:false, - enableColumnMove:false, - stripeRows:false, - trackMouseOver: false, - clicksToEdit:1 - }, config)); - this.container.addClass('x-props-grid'); - this.lastEditRow = null; - this.on('columnresize', this.onColumnResize, this); - this.addEvents({ - beforepropertychange: true, - propertychange: true - }); - this.customEditors = this.customEditors || {}; -}; -Ext.extend(Ext.grid.PropertyGrid, Ext.grid.EditorGrid, { - render : function(){ - Ext.grid.PropertyGrid.superclass.render.call(this); - this.autoSize.defer(100, this); - }, - - autoSize : function(){ - Ext.grid.PropertyGrid.superclass.autoSize.call(this); - if(this.view){ - this.view.fitColumns(); - } - }, - - onColumnResize : function(){ - this.colModel.setColumnWidth(1, this.container.getWidth(true)-this.colModel.getColumnWidth(0)); - this.autoSize(); - }, - - setSource : function(source){ - this.store.setSource(source); - //this.autoSize(); - }, - - getSource : function(){ - return this.store.getSource(); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/grid/RowSelectionModel.js b/www/extras/extjs/source/widgets/grid/RowSelectionModel.js deleted file mode 100644 index 85bd12c70..000000000 --- a/www/extras/extjs/source/widgets/grid/RowSelectionModel.js +++ /dev/null @@ -1,418 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - @class Ext.grid.RowSelectionModel - * @extends Ext.grid.AbstractSelectionModel - * The default SelectionModel used by {@link Ext.grid.Grid}. - It supports multiple selections and keyboard selection/navigation.

        - @constructor - * @param {Object} config - */ -Ext.grid.RowSelectionModel = function(config){ - Ext.apply(this, config); - this.selections = new Ext.util.MixedCollection(false, function(o){ - return o.id; - }); - - this.last = false; - this.lastActive = false; - - this.addEvents({ - /** - * @event selectionchange - * Fires when the selection changes - * @param {SelectionModel} this - */ - "selectionchange" : true, - /** - * @event beforerowselect - * Fires when a row is selected being selected, return false to cancel. - * @param {SelectionModel} this - * @param {Number} rowIndex The selected index - */ - "beforerowselect" : true, - /** - * @event rowselect - * Fires when a row is selected. - * @param {SelectionModel} this - * @param {Number} rowIndex The selected index - */ - "rowselect" : true, - - "rowdeselect" : true - }); - - this.locked = false; -}; - -Ext.extend(Ext.grid.RowSelectionModel, Ext.grid.AbstractSelectionModel, { - /** - * @cfg {Boolean} singleSelect - * True to allow selection of only one row at a time (defaults to false) - */ - singleSelect : false, - - // private - initEvents : function(){ - - if(!this.grid.enableDragDrop && !this.grid.enableDrag){ - this.grid.on("mousedown", this.handleMouseDown, this); - } - - this.rowNav = new Ext.KeyNav(this.grid.container, { - "up" : function(e){ - if(!e.shiftKey){ - this.selectPrevious(e.shiftKey); - }else if(this.last !== false && this.lastActive !== false){ - var last = this.last; - this.selectRange(this.last, this.lastActive-1); - this.grid.getView().focusRow(this.lastActive); - if(last !== false){ - this.last = last; - } - }else{ - this.selectFirstRow(); - } - }, - "down" : function(e){ - if(!e.shiftKey){ - this.selectNext(e.shiftKey); - }else if(this.last !== false && this.lastActive !== false){ - var last = this.last; - this.selectRange(this.last, this.lastActive+1); - this.grid.getView().focusRow(this.lastActive); - if(last !== false){ - this.last = last; - } - }else{ - this.selectFirstRow(); - } - }, - scope: this - }); - - var view = this.grid.view; - view.on("refresh", this.onRefresh, this); - view.on("rowupdated", this.onRowUpdated, this); - view.on("rowremoved", this.onRemove, this); - }, - - // private - onRefresh : function(){ - var ds = this.grid.dataSource, i, v = this.grid.view; - var s = this.selections; - s.each(function(r){ - if((i = ds.indexOfId(r.id)) != -1){ - v.onRowSelect(i); - }else{ - s.remove(r); - } - }); - }, - - // private - onRemove : function(v, index, r){ - this.selections.remove(r); - }, - - // private - onRowUpdated : function(v, index, r){ - if(this.isSelected(r)){ - v.onRowSelect(index); - } - }, - - /** - * Select records. - * @param {Array} records The records to select - * @param {Boolean} keepExisting (optional) True to keep existing selections - */ - selectRecords : function(records, keepExisting){ - if(!keepExisting){ - this.clearSelections(); - } - var ds = this.grid.dataSource; - for(var i = 0, len = records.length; i < len; i++){ - this.selectRow(ds.indexOf(records[i]), true); - } - }, - - /** - * Gets the number of selected rows. - * @return {Number} - */ - getCount : function(){ - return this.selections.length; - }, - - /** - * Selects the first row in the grid. - */ - selectFirstRow : function(){ - this.selectRow(0); - }, - - /** - * Select the last row. - * @param {Boolean} keepExisting (optional) True to keep existing selections - */ - selectLastRow : function(keepExisting){ - this.selectRow(this.grid.dataSource.getCount() - 1, keepExisting); - }, - - /** - * Selects the row immediately following the last selected row. - * @param {Boolean} keepExisting (optional) True to keep existing selections - */ - selectNext : function(keepExisting){ - if(this.last !== false && (this.last+1) < this.grid.dataSource.getCount()){ - this.selectRow(this.last+1, keepExisting); - this.grid.getView().focusRow(this.last); - } - }, - - /** - * Selects the row that precedes the last selected row. - * @param {Boolean} keepExisting (optional) True to keep existing selections - */ - selectPrevious : function(keepExisting){ - if(this.last){ - this.selectRow(this.last-1, keepExisting); - this.grid.getView().focusRow(this.last); - } - }, - - /** - * Returns the selected records - * @return {Array} Array of selected records - */ - getSelections : function(){ - return [].concat(this.selections.items); - }, - - /** - * Returns the first selected record. - * @return {Record} - */ - getSelected : function(){ - return this.selections.itemAt(0); - }, - - - /** - * Clears all selections. - */ - clearSelections : function(fast){ - if(this.locked) return; - if(fast !== true){ - var ds = this.grid.dataSource; - var s = this.selections; - s.each(function(r){ - this.deselectRow(ds.indexOfId(r.id)); - }, this); - s.clear(); - }else{ - this.selections.clear(); - } - this.last = false; - }, - - - /** - * Selects all rows. - */ - selectAll : function(){ - if(this.locked) return; - this.selections.clear(); - for(var i = 0, len = this.grid.dataSource.getCount(); i < len; i++){ - this.selectRow(i, true); - } - }, - - /** - * Returns True if there is a selection. - * @return {Boolean} - */ - hasSelection : function(){ - return this.selections.length > 0; - }, - - /** - * Returns True if the specified row is selected. - * @param {Number/Record} record The record or index of the record to check - * @return {Boolean} - */ - isSelected : function(index){ - var r = typeof index == "number" ? this.grid.dataSource.getAt(index) : index; - return (r && this.selections.key(r.id) ? true : false); - }, - - /** - * Returns True if the specified record id is selected. - * @param {String} id The id of record to check - * @return {Boolean} - */ - isIdSelected : function(id){ - return (this.selections.key(id) ? true : false); - }, - - // private - handleMouseDown : function(e, t){ - var view = this.grid.getView(), rowIndex; - if(this.isLocked() || (rowIndex = view.findRowIndex(t)) === false){ - return; - }; - if(e.shiftKey && this.last !== false){ - var last = this.last; - this.selectRange(last, rowIndex, e.ctrlKey); - this.last = last; // reset the last - view.focusRow(rowIndex); - }else{ - var isSelected = this.isSelected(rowIndex); - if(e.button != 0 && isSelected){ - view.focusRow(rowIndex); - }else if(e.ctrlKey && isSelected){ - this.deselectRow(rowIndex); - }else{ - this.selectRow(rowIndex, e.button == 0 && (e.ctrlKey || e.shiftKey)); - view.focusRow(rowIndex); - } - } - }, - - /** - * Selects multiple rows. - * @param {Array} rows Array of the indexes of the row to select - * @param {Boolean} keepExisting (optional) True to keep existing selections - */ - selectRows : function(rows, keepExisting){ - if(!keepExisting){ - this.clearSelections(); - } - for(var i = 0, len = rows.length; i < len; i++){ - this.selectRow(rows[i], true); - } - }, - - /** - * Selects a range of rows. All rows in between startRow and endRow are also selected. - * @param {Number} startRow The index of the first row in the range - * @param {Number} endRow The index of the last row in the range - * @param {Boolean} keepExisting (optional) True to retain existing selections - */ - selectRange : function(startRow, endRow, keepExisting){ - if(this.locked) return; - if(!keepExisting){ - this.clearSelections(); - } - if(startRow <= endRow){ - for(var i = startRow; i <= endRow; i++){ - this.selectRow(i, true); - } - }else{ - for(var i = startRow; i >= endRow; i--){ - this.selectRow(i, true); - } - } - }, - - /** - * Deselects a range of rows. All rows in between startRow and endRow are also deselected. - * @param {Number} startRow The index of the first row in the range - * @param {Number} endRow The index of the last row in the range - */ - deselectRange : function(startRow, endRow, preventViewNotify){ - if(this.locked) return; - for(var i = startRow; i <= endRow; i++){ - this.deselectRow(i, preventViewNotify); - } - }, - - /** - * Selects a row. - * @param {Number} row The index of the row to select - * @param {Boolean} keepExisting (optional) True to keep existing selections - */ - selectRow : function(index, keepExisting, preventViewNotify){ - if(this.locked || (index < 0 || index >= this.grid.dataSource.getCount())) return; - if(this.fireEvent("beforerowselect", this, index, keepExisting) !== false){ - if(!keepExisting || this.singleSelect){ - this.clearSelections(); - } - var r = this.grid.dataSource.getAt(index); - this.selections.add(r); - this.last = this.lastActive = index; - if(!preventViewNotify){ - this.grid.getView().onRowSelect(index); - } - this.fireEvent("rowselect", this, index, r); - this.fireEvent("selectionchange", this); - } - }, - - /** - * Deselects a row. - * @param {Number} row The index of the row to deselect - */ - deselectRow : function(index, preventViewNotify){ - if(this.locked) return; - if(this.last == index){ - this.last = false; - } - if(this.lastActive == index){ - this.lastActive = false; - } - var r = this.grid.dataSource.getAt(index); - this.selections.remove(r); - if(!preventViewNotify){ - this.grid.getView().onRowDeselect(index); - } - this.fireEvent("rowdeselect", this, index); - this.fireEvent("selectionchange", this); - }, - - // private - restoreLast : function(){ - if(this._last){ - this.last = this._last; - } - }, - - // private - acceptsNav : function(row, col, cm){ - return !cm.isHidden(col) && cm.isCellEditable(col, row); - }, - - // private - onEditorKey : function(field, e){ - var k = e.getKey(), newCell, g = this.grid, ed = g.activeEditor; - if(k == e.TAB){ - ed.completeEdit(); - if(e.shiftKey){ - newCell = g.walkCells(ed.row, ed.col-1, -1, this.acceptsNav, this); - }else{ - newCell = g.walkCells(ed.row, ed.col+1, 1, this.acceptsNav, this); - } - e.stopEvent(); - }else if(k == e.ENTER && !e.ctrlKey){ - ed.completeEdit(); - if(e.shiftKey){ - newCell = g.walkCells(ed.row-1, ed.col, -1, this.acceptsNav, this); - }else{ - newCell = g.walkCells(ed.row+1, ed.col, 1, this.acceptsNav, this); - } - e.stopEvent(); - }else if(k == e.ESC){ - ed.cancelEdit(); - } - if(newCell){ - g.startEditing(newCell[0], newCell[1]); - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/layout/BasicLayoutRegion.js b/www/extras/extjs/source/widgets/layout/BasicLayoutRegion.js deleted file mode 100644 index d07d1d83e..000000000 --- a/www/extras/extjs/source/widgets/layout/BasicLayoutRegion.js +++ /dev/null @@ -1,292 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.BasicLayoutRegion - * @extends Ext.util.Observable - * This class represents a lightweight region in a layout manager. This region does not move dom nodes - * and does not have a titlebar, tabs or any other features. All it does is size and position - * panels. To create a BasicLayoutRegion, add lightweight:true or basic:true to your regions config. - */ -Ext.BasicLayoutRegion = function(mgr, config, pos, skipConfig){ - this.mgr = mgr; - this.position = pos; - this.events = { - /** - * @event beforeremove - * Fires before a panel is removed (or closed). To cancel the removal set "e.cancel = true" on the event argument. - * @param {Ext.LayoutRegion} this - * @param {Ext.ContentPanel} panel The panel - * @param {Object} e The cancel event object - */ - "beforeremove" : true, - /** - * @event invalidated - * Fires when the layout for this region is changed. - * @param {Ext.LayoutRegion} this - */ - "invalidated" : true, - /** - * @event visibilitychange - * Fires when this region is shown or hidden - * @param {Ext.LayoutRegion} this - * @param {Boolean} visibility true or false - */ - "visibilitychange" : true, - /** - * @event paneladded - * Fires when a panel is added. - * @param {Ext.LayoutRegion} this - * @param {Ext.ContentPanel} panel The panel - */ - "paneladded" : true, - /** - * @event panelremoved - * Fires when a panel is removed. - * @param {Ext.LayoutRegion} this - * @param {Ext.ContentPanel} panel The panel - */ - "panelremoved" : true, - /** - * @event collapsed - * Fires when this region is collapsed. - * @param {Ext.LayoutRegion} this - */ - "collapsed" : true, - /** - * @event expanded - * Fires when this region is expanded. - * @param {Ext.LayoutRegion} this - */ - "expanded" : true, - /** - * @event slideshow - * Fires when this region is slid into view. - * @param {Ext.LayoutRegion} this - */ - "slideshow" : true, - /** - * @event slidehide - * Fires when this region slides out of view. - * @param {Ext.LayoutRegion} this - */ - "slidehide" : true, - /** - * @event panelactivated - * Fires when a panel is activated. - * @param {Ext.LayoutRegion} this - * @param {Ext.ContentPanel} panel The activated panel - */ - "panelactivated" : true, - /** - * @event resized - * Fires when the user resizes this region. - * @param {Ext.LayoutRegion} this - * @param {Number} newSize The new size (width for east/west, height for north/south) - */ - "resized" : true - }; - /** A collection of panels in this region. @type Ext.util.MixedCollection */ - this.panels = new Ext.util.MixedCollection(); - this.panels.getKey = this.getPanelId.createDelegate(this); - this.box = null; - this.activePanel = null; - if(skipConfig !== true){ - this.applyConfig(config); - } -}; - -Ext.extend(Ext.BasicLayoutRegion, Ext.util.Observable, { - getPanelId : function(p){ - return p.getId(); - }, - - applyConfig : function(config){ - this.margins = config.margins || this.margins || {top: 0, left: 0, right:0, bottom: 0}; - this.config = config; - }, - - /** - * Resizes the region to the specified size. For vertical regions (west, east) this adjusts - * the width, for horizontal (north, south) the height. - * @param {Number} newSize The new width or height - */ - resizeTo : function(newSize){ - var el = this.el ? this.el : - (this.activePanel ? this.activePanel.getEl() : null); - if(el){ - switch(this.position){ - case "east": - case "west": - el.setWidth(newSize); - this.fireEvent("resized", this, newSize); - break; - case "north": - case "south": - el.setHeight(newSize); - this.fireEvent("resized", this, newSize); - break; - } - } - }, - - getBox : function(){ - return this.activePanel ? this.activePanel.getEl().getBox(false, true) : null; - }, - - getMargins : function(){ - return this.margins; - }, - - updateBox : function(box){ - this.box = box; - var el = this.activePanel.getEl(); - el.dom.style.left = box.x + "px"; - el.dom.style.top = box.y + "px"; - this.activePanel.setSize(box.width, box.height); - }, - - /** - * Returns the container element for this region. - * @return {Ext.Element} - */ - getEl : function(){ - return this.activePanel; - }, - - /** - * Returns true if this region is currently visible. - * @return {Boolean} - */ - isVisible : function(){ - return this.activePanel ? true : false; - }, - - setActivePanel : function(panel){ - panel = this.getPanel(panel); - if(this.activePanel && this.activePanel != panel){ - this.activePanel.setActiveState(false); - this.activePanel.getEl().setLeftTop(-10000,-10000); - } - this.activePanel = panel; - panel.setActiveState(true); - if(this.box){ - panel.setSize(this.box.width, this.box.height); - } - this.fireEvent("panelactivated", this, panel); - this.fireEvent("invalidated"); - }, - - /** - * Show the specified panel. - * @param {Number/String/ContentPanel} panelId The panels index, id or the panel itself - * @return {Ext.ContentPanel} The shown panel or null - */ - showPanel : function(panel){ - if(panel = this.getPanel(panel)){ - this.setActivePanel(panel); - } - return panel; - }, - - /** - * Get the active panel for this region. - * @return {Ext.ContentPanel} The active panel or null - */ - getActivePanel : function(){ - return this.activePanel; - }, - - /** - * Add the passed ContentPanel(s) - * @param {ContentPanel...} panel The ContentPanel(s) to add (you can pass more than one) - * @return {Ext.ContentPanel} The panel added (if only one was added) - */ - add : function(panel){ - if(arguments.length > 1){ - for(var i = 0, len = arguments.length; i < len; i++) { - this.add(arguments[i]); - } - return null; - } - if(this.hasPanel(panel)){ - this.showPanel(panel); - return panel; - } - var el = panel.getEl(); - if(el.dom.parentNode != this.mgr.el.dom){ - this.mgr.el.dom.appendChild(el.dom); - } - if(panel.setRegion){ - panel.setRegion(this); - } - this.panels.add(panel); - el.setStyle("position", "absolute"); - if(!panel.background){ - this.setActivePanel(panel); - if(this.config.initialSize && this.panels.getCount()==1){ - this.resizeTo(this.config.initialSize); - } - } - this.fireEvent("paneladded", this, panel); - return panel; - }, - - /** - * Returns true if the panel is in this region. - * @param {Number/String/ContentPanel} panel The panels index, id or the panel itself - * @return {Boolean} - */ - hasPanel : function(panel){ - if(typeof panel == "object"){ // must be panel obj - panel = panel.getId(); - } - return this.getPanel(panel) ? true : false; - }, - - /** - * Removes the specified panel. If preservePanel is not true (either here or in the config), the panel is destroyed. - * @param {Number/String/ContentPanel} panel The panels index, id or the panel itself - * @param {Boolean} preservePanel Overrides the config preservePanel option - * @return {Ext.ContentPanel} The panel that was removed - */ - remove : function(panel, preservePanel){ - panel = this.getPanel(panel); - if(!panel){ - return null; - } - var e = {}; - this.fireEvent("beforeremove", this, panel, e); - if(e.cancel === true){ - return null; - } - var panelId = panel.getId(); - this.panels.removeKey(panelId); - return panel; - }, - - /** - * Returns the panel specified or null if it's not in this region. - * @param {Number/String/ContentPanel} panel The panels index, id or the panel itself - * @return {Ext.ContentPanel} - */ - getPanel : function(id){ - if(typeof id == "object"){ // must be panel obj - return id; - } - return this.panels.get(id); - }, - - /** - * Returns this regions position (north/south/east/west/center). - * @return {String} - */ - getPosition: function(){ - return this.position; - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/layout/BorderLayout.js b/www/extras/extjs/source/widgets/layout/BorderLayout.js deleted file mode 100644 index 1b9c5bf56..000000000 --- a/www/extras/extjs/source/widgets/layout/BorderLayout.js +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.BorderLayout - * @extends Ext.LayoutManager - * This class represents a common layout manager used in desktop applications. For screenshots and more details, - * please see:

        - * Cross Browser Layouts - Part 1
        - * Cross Browser Layouts - Part 2

        - * Example: -
        
        - var layout = new Ext.BorderLayout(document.body, {
        -    north: {
        -        initialSize: 25,
        -        titlebar: false
        -    },
        -    west: {
        -        split:true,
        -        initialSize: 200,
        -        minSize: 175,
        -        maxSize: 400,
        -        titlebar: true,
        -        collapsible: true
        -    },
        -    east: {
        -        split:true,
        -        initialSize: 202,
        -        minSize: 175,
        -        maxSize: 400,
        -        titlebar: true,
        -        collapsible: true
        -    },
        -    south: {
        -        split:true,
        -        initialSize: 100,
        -        minSize: 100,
        -        maxSize: 200,
        -        titlebar: true,
        -        collapsible: true
        -    },
        -    center: {
        -        titlebar: true,
        -        autoScroll:true,
        -        resizeTabs: true,
        -        minTabWidth: 50,
        -        preferredTabWidth: 150
        -    }
        -});
        -
        -// shorthand
        -var CP = Ext.ContentPanel;
        -
        -layout.beginUpdate();
        -layout.add("north", new CP("north", "North"));
        -layout.add("south", new CP("south", {title: "South", closable: true}));
        -layout.add("west", new CP("west", {title: "West"}));
        -layout.add("east", new CP("autoTabs", {title: "Auto Tabs", closable: true}));
        -layout.add("center", new CP("center1", {title: "Close Me", closable: true}));
        -layout.add("center", new CP("center2", {title: "Center Panel", closable: false}));
        -layout.getRegion("center").showPanel("center1");
        -layout.endUpdate();
        -
        - -The container the layout is rendered into can be either the body element or any other element. -If it is not the body element, the element needs to either be an absolute positioned element, -or you will need to add "position:relative" to the css of the element. - -* @constructor -* Create a new BorderLayout -* @param {String/HTMLElement/Element} container The container this layout is bound to -* @param {Object} config Configuration options - */ -Ext.BorderLayout = function(container, config){ - config = config || {}; - Ext.BorderLayout.superclass.constructor.call(this, container, config); - this.factory = config.factory || Ext.BorderLayout.RegionFactory; - for(var i = 0, len = this.factory.validRegions.length; i < len; i++) { - var target = this.factory.validRegions[i]; - if(config[target]){ - this.addRegion(target, config[target]); - } - } -}; - -Ext.extend(Ext.BorderLayout, Ext.LayoutManager, { - /** - * Creates and adds a new region if it doesn't already exist. - * @param {String} target The target region key (north, south, east, west or center). - * @param {Object} config The regions config object - * @return {BorderLayoutRegion} The new region - */ - addRegion : function(target, config){ - if(!this.regions[target]){ - var r = this.factory.create(target, this, config); - this.bindRegion(target, r); - } - return this.regions[target]; - }, - - // private (kinda) - bindRegion : function(name, r){ - this.regions[name] = r; - r.on("visibilitychange", this.layout, this); - r.on("paneladded", this.layout, this); - r.on("panelremoved", this.layout, this); - r.on("invalidated", this.layout, this); - r.on("resized", this.onRegionResized, this); - r.on("collapsed", this.onRegionCollapsed, this); - r.on("expanded", this.onRegionExpanded, this); - }, - - /** - * Performs a layout update. - */ - layout : function(){ - if(this.updating) return; - var size = this.getViewSize(); - var w = size.width, h = size.height; - var centerW = w, centerH = h, centerY = 0, centerX = 0; - //var x = 0, y = 0; - - var rs = this.regions; - var n = rs["north"], s = rs["south"], west = rs["west"], e = rs["east"], c = rs["center"]; - //if(this.hideOnLayout){ // not supported anymore - //c.el.setStyle("display", "none"); - //} - if(n && n.isVisible()){ - var b = n.getBox(); - var m = n.getMargins(); - b.width = w - (m.left+m.right); - b.x = m.left; - b.y = m.top; - centerY = b.height + b.y + m.bottom; - centerH -= centerY; - n.updateBox(this.safeBox(b)); - } - if(s && s.isVisible()){ - var b = s.getBox(); - var m = s.getMargins(); - b.width = w - (m.left+m.right); - b.x = m.left; - var totalHeight = (b.height + m.top + m.bottom); - b.y = h - totalHeight + m.top; - centerH -= totalHeight; - s.updateBox(this.safeBox(b)); - } - if(west && west.isVisible()){ - var b = west.getBox(); - var m = west.getMargins(); - b.height = centerH - (m.top+m.bottom); - b.x = m.left; - b.y = centerY + m.top; - var totalWidth = (b.width + m.left + m.right); - centerX += totalWidth; - centerW -= totalWidth; - west.updateBox(this.safeBox(b)); - } - if(e && e.isVisible()){ - var b = e.getBox(); - var m = e.getMargins(); - b.height = centerH - (m.top+m.bottom); - var totalWidth = (b.width + m.left + m.right); - b.x = w - totalWidth + m.left; - b.y = centerY + m.top; - centerW -= totalWidth; - e.updateBox(this.safeBox(b)); - } - if(c){ - var m = c.getMargins(); - var centerBox = { - x: centerX + m.left, - y: centerY + m.top, - width: centerW - (m.left+m.right), - height: centerH - (m.top+m.bottom) - }; - //if(this.hideOnLayout){ - //c.el.setStyle("display", "block"); - //} - c.updateBox(this.safeBox(centerBox)); - } - this.el.repaint(); - this.fireEvent("layout", this); - }, - - safeBox : function(box){ - box.width = Math.max(0, box.width); - box.height = Math.max(0, box.height); - return box; - }, - - /** - * Adds a ContentPanel (or subclass) to this layout. - * @param {String} target The target region key (north, south, east, west or center). - * @param {Ext.ContentPanel} panel The panel to add - * @return {Ext.ContentPanel} The added panel - */ - add : function(target, panel){ - target = target.toLowerCase(); - return this.regions[target].add(panel); - }, - - /** - * Remove a ContentPanel (or subclass) to this layout. - * @param {String} target The target region key (north, south, east, west or center). - * @param {Number/String/Ext.ContentPanel} panel The index, id or panel to remove - * @return {Ext.ContentPanel} The removed panel - */ - remove : function(target, panel){ - target = target.toLowerCase(); - return this.regions[target].remove(panel); - }, - - /** - * Searches all regions for a panel with the specified id - * @param {String} panelId - * @return {Ext.ContentPanel} The panel or null if it wasn't found - */ - findPanel : function(panelId){ - var rs = this.regions; - for(var target in rs){ - if(typeof rs[target] != "function"){ - var p = rs[target].getPanel(panelId); - if(p){ - return p; - } - } - } - return null; - }, - - /** - * Searches all regions for a panel with the specified id and activates (shows) it. - * @param {String/ContentPanel} panelId The panels id or the panel itself - * @return {Ext.ContentPanel} The shown panel or null - */ - showPanel : function(panelId) { - var rs = this.regions; - for(var target in rs){ - var r = rs[target]; - if(typeof r != "function"){ - if(r.hasPanel(panelId)){ - return r.showPanel(panelId); - } - } - } - return null; - }, - - /** - * Restores this layouts state using Ext.state.Manager or the state provided by the passed provider. - * @param {Ext.state.Provider} provider (optional) An alternate state provider - */ - restoreState : function(provider){ - if(!provider){ - provider = Ext.state.Manager; - } - var sm = new Ext.LayoutStateManager(); - sm.init(this, provider); - }, - - - batchAdd : function(regions){ - this.beginUpdate(); - for(var rname in regions){ - var lr = this.regions[rname]; - if(lr){ - this.addTypedPanels(lr, regions[rname]); - } - } - this.endUpdate(); - }, - - /* @private */ - addTypedPanels : function(lr, ps){ - if(typeof ps == 'string'){ - lr.add(new Ext.ContentPanel(ps)); - } - else if(ps instanceof Array){ - for(var i =0, len = ps.length; i < len; i++){ - this.addTypedPanels(lr, ps[i]); - } - } - else if(!ps.events){ // raw config? - var el = ps.el; - delete ps.el; // prevent conflict - lr.add(new Ext.ContentPanel(el || Ext.id(), ps)); - } - else { // panel object assumed! - lr.add(ps); - } - } -}); - -Ext.BorderLayout.create = function(config, targetEl){ - var layout = new Ext.BorderLayout(targetEl || document.body, config); - layout.beginUpdate(); - var regions = Ext.BorderLayout.RegionFactory.validRegions; - for(var j = 0, jlen = regions.length; j < jlen; j++){ - var lr = regions[j]; - if(layout.regions[lr] && config[lr].panels){ - var r = layout.regions[lr]; - var ps = config[lr].panels; - layout.addTypedPanels(r, ps); - } - } - layout.endUpdate(); - return layout; -}; - -Ext.BorderLayout.RegionFactory = { - validRegions : ["north","south","east","west","center"], - - create : function(target, mgr, config){ - target = target.toLowerCase(); - if(config.lightweight || config.basic){ - return new Ext.BasicLayoutRegion(mgr, config, target); - } - switch(target){ - case "north": - return new Ext.NorthLayoutRegion(mgr, config); - case "south": - return new Ext.SouthLayoutRegion(mgr, config); - case "east": - return new Ext.EastLayoutRegion(mgr, config); - case "west": - return new Ext.WestLayoutRegion(mgr, config); - case "center": - return new Ext.CenterLayoutRegion(mgr, config); - } - throw 'Layout region "'+target+'" not supported.'; - } -}; \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/layout/BorderLayoutRegions.js b/www/extras/extjs/source/widgets/layout/BorderLayoutRegions.js deleted file mode 100644 index c147b3b9a..000000000 --- a/www/extras/extjs/source/widgets/layout/BorderLayoutRegions.js +++ /dev/null @@ -1,201 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* - * These classes are private internal classes - */ -Ext.CenterLayoutRegion = function(mgr, config){ - Ext.CenterLayoutRegion.superclass.constructor.call(this, mgr, config, "center"); - this.visible = true; - this.minWidth = config.minWidth || 20; - this.minHeight = config.minHeight || 20; -}; - -Ext.extend(Ext.CenterLayoutRegion, Ext.LayoutRegion, { - hide : function(){ - // center panel can't be hidden - }, - - show : function(){ - // center panel can't be hidden - }, - - getMinWidth: function(){ - return this.minWidth; - }, - - getMinHeight: function(){ - return this.minHeight; - } -}); - - -Ext.NorthLayoutRegion = function(mgr, config){ - Ext.NorthLayoutRegion.superclass.constructor.call(this, mgr, config, "north", "n-resize"); - if(this.split){ - this.split.placement = Ext.SplitBar.TOP; - this.split.orientation = Ext.SplitBar.VERTICAL; - this.split.el.addClass("x-layout-split-v"); - } - var size = config.initialSize || config.height; - if(typeof size != "undefined"){ - this.el.setHeight(size); - } -}; -Ext.extend(Ext.NorthLayoutRegion, Ext.SplitLayoutRegion, { - orientation: Ext.SplitBar.VERTICAL, - getBox : function(){ - if(this.collapsed){ - return this.collapsedEl.getBox(); - } - var box = this.el.getBox(); - if(this.split){ - box.height += this.split.el.getHeight(); - } - return box; - }, - - updateBox : function(box){ - if(this.split && !this.collapsed){ - box.height -= this.split.el.getHeight(); - this.split.el.setLeft(box.x); - this.split.el.setTop(box.y+box.height); - this.split.el.setWidth(box.width); - } - if(this.collapsed){ - this.updateBody(box.width, null); - } - Ext.NorthLayoutRegion.superclass.updateBox.call(this, box); - } -}); - -Ext.SouthLayoutRegion = function(mgr, config){ - Ext.SouthLayoutRegion.superclass.constructor.call(this, mgr, config, "south", "s-resize"); - if(this.split){ - this.split.placement = Ext.SplitBar.BOTTOM; - this.split.orientation = Ext.SplitBar.VERTICAL; - this.split.el.addClass("x-layout-split-v"); - } - var size = config.initialSize || config.height; - if(typeof size != "undefined"){ - this.el.setHeight(size); - } -}; -Ext.extend(Ext.SouthLayoutRegion, Ext.SplitLayoutRegion, { - orientation: Ext.SplitBar.VERTICAL, - getBox : function(){ - if(this.collapsed){ - return this.collapsedEl.getBox(); - } - var box = this.el.getBox(); - if(this.split){ - var sh = this.split.el.getHeight(); - box.height += sh; - box.y -= sh; - } - return box; - }, - - updateBox : function(box){ - if(this.split && !this.collapsed){ - var sh = this.split.el.getHeight(); - box.height -= sh; - box.y += sh; - this.split.el.setLeft(box.x); - this.split.el.setTop(box.y-sh); - this.split.el.setWidth(box.width); - } - if(this.collapsed){ - this.updateBody(box.width, null); - } - Ext.SouthLayoutRegion.superclass.updateBox.call(this, box); - } -}); - -Ext.EastLayoutRegion = function(mgr, config){ - Ext.EastLayoutRegion.superclass.constructor.call(this, mgr, config, "east", "e-resize"); - if(this.split){ - this.split.placement = Ext.SplitBar.RIGHT; - this.split.orientation = Ext.SplitBar.HORIZONTAL; - this.split.el.addClass("x-layout-split-h"); - } - var size = config.initialSize || config.width; - if(typeof size != "undefined"){ - this.el.setWidth(size); - } -}; -Ext.extend(Ext.EastLayoutRegion, Ext.SplitLayoutRegion, { - orientation: Ext.SplitBar.HORIZONTAL, - getBox : function(){ - if(this.collapsed){ - return this.collapsedEl.getBox(); - } - var box = this.el.getBox(); - if(this.split){ - var sw = this.split.el.getWidth(); - box.width += sw; - box.x -= sw; - } - return box; - }, - - updateBox : function(box){ - if(this.split && !this.collapsed){ - var sw = this.split.el.getWidth(); - box.width -= sw; - this.split.el.setLeft(box.x); - this.split.el.setTop(box.y); - this.split.el.setHeight(box.height); - box.x += sw; - } - if(this.collapsed){ - this.updateBody(null, box.height); - } - Ext.EastLayoutRegion.superclass.updateBox.call(this, box); - } -}); - -Ext.WestLayoutRegion = function(mgr, config){ - Ext.WestLayoutRegion.superclass.constructor.call(this, mgr, config, "west", "w-resize"); - if(this.split){ - this.split.placement = Ext.SplitBar.LEFT; - this.split.orientation = Ext.SplitBar.HORIZONTAL; - this.split.el.addClass("x-layout-split-h"); - } - var size = config.initialSize || config.width; - if(typeof size != "undefined"){ - this.el.setWidth(size); - } -}; -Ext.extend(Ext.WestLayoutRegion, Ext.SplitLayoutRegion, { - orientation: Ext.SplitBar.HORIZONTAL, - getBox : function(){ - if(this.collapsed){ - return this.collapsedEl.getBox(); - } - var box = this.el.getBox(); - if(this.split){ - box.width += this.split.el.getWidth(); - } - return box; - }, - - updateBox : function(box){ - if(this.split && !this.collapsed){ - var sw = this.split.el.getWidth(); - box.width -= sw; - this.split.el.setLeft(box.x+box.width); - this.split.el.setTop(box.y); - this.split.el.setHeight(box.height); - } - if(this.collapsed){ - this.updateBody(null, box.height); - } - Ext.WestLayoutRegion.superclass.updateBox.call(this, box); - } -}); diff --git a/www/extras/extjs/source/widgets/layout/ContentPanels.js b/www/extras/extjs/source/widgets/layout/ContentPanels.js deleted file mode 100644 index ed59f71fc..000000000 --- a/www/extras/extjs/source/widgets/layout/ContentPanels.js +++ /dev/null @@ -1,474 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.ContentPanel - * @extends Ext.util.Observable - * A basic ContentPanel element. - * @cfg {Boolean} fitToFrame True for this panel to adjust its size to fit when the region resizes (defaults to false) - * @cfg {Boolean} fitContainer When using fitToFrame and resizeEl, you can also fit the parent container (defaults to false) - * @cfg {Boolean/Object} autoCreate True to auto generate the DOM element for this panel, or a DomHelper config of the element to create - * @cfg {Boolean} closable True if the panel can be closed/removed - * @cfg {Boolean} background True if the panel should not be activated when it is added (defaults to false) - * @cfg {String/HTMLElement/Element} resizeEl An element to resize if fitToFrame is true (instead of this panel's element) - * @cfg {Toolbar} toolbar A toolbar for this panel - * @cfg {Boolean} autoScroll True to scroll overflow in this panel (use with fitToFrame) - * @cfg {String} title The title for this panel - * @cfg {Array} adjustments Values to add to the width/height when doing a fitToFrame (default is [0, 0]) - * @cfg {String} url Calls setUrl() with this value - * @cfg {String/Object} params When used with "url", calls setUrl() with this value - * @cfg {Boolean} loadOnce Calls When used with "url", calls setUrl() with this value - * @constructor - * Create a new ContentPanel. - * @param {String/HTMLElement/Element} el The container element for this panel - * @param {String/Object} config A string to set only the title or a config object - * @param {String} content (optional) Set the HTML content for this panel - */ -Ext.ContentPanel = function(el, config, content){ - Ext.ContentPanel.superclass.constructor.call(this); - if(el.autoCreate){ - config = el; - el = Ext.id(); - } - this.el = Ext.get(el); - if(!this.el && config && config.autoCreate){ - if(typeof config.autoCreate == "object"){ - if(!config.autoCreate.id){ - config.autoCreate.id = config.id||el; - } - this.el = Ext.DomHelper.append(document.body, - config.autoCreate, true); - }else{ - this.el = Ext.DomHelper.append(document.body, - {tag: "div", cls: "x-layout-inactive-content", id: config.id||el}, true); - } - } - this.closable = false; - this.loaded = false; - this.active = false; - if(typeof config == "string"){ - this.title = config; - }else{ - Ext.apply(this, config); - } - if(this.resizeEl){ - this.resizeEl = Ext.get(this.resizeEl, true); - }else{ - this.resizeEl = this.el; - } - this.addEvents({ - /** - * @event activate - * Fires when this panel is activated. - * @param {Ext.ContentPanel} this - */ - "activate" : true, - /** - * @event deactivate - * Fires when this panel is activated. - * @param {Ext.ContentPanel} this - */ - "deactivate" : true, - - /** - * @event resize - * Fires when this panel is resized if fitToFrame is true. - * @param {Ext.ContentPanel} this - * @param {Number} width The width after any component adjustments - * @param {Number} height The height after any component adjustments - */ - "resize" : true - }); - if(this.autoScroll){ - this.resizeEl.setStyle("overflow", "auto"); - } - content = content || this.content; - if(content){ - this.setContent(content); - } - if(config && config.url){ - this.setUrl(this.url, this.params, this.loadOnce); - } -}; - -Ext.extend(Ext.ContentPanel, Ext.util.Observable, { - tabTip:'', - setRegion : function(region){ - this.region = region; - if(region){ - this.el.replaceClass("x-layout-inactive-content", "x-layout-active-content"); - }else{ - this.el.replaceClass("x-layout-active-content", "x-layout-inactive-content"); - } - }, - - /** - * Returns the toolbar for this Panel if one was configured. - * @return {Ext.Toolbar} - */ - getToolbar : function(){ - return this.toolbar; - }, - - setActiveState : function(active){ - this.active = active; - if(!active){ - this.fireEvent("deactivate", this); - }else{ - this.fireEvent("activate", this); - } - }, - /** - * Updates this panel's element - * @param {String} content The new content - * @param {Boolean} loadScripts (optional) true to look for and process scripts - */ - setContent : function(content, loadScripts){ - this.el.update(content, loadScripts); - }, - - ignoreResize : function(w, h){ - if(this.lastSize && this.lastSize.width == w && this.lastSize.height == h){ - return true; - }else{ - this.lastSize = {width: w, height: h}; - return false; - } - }, - /** - * Get the {@link Ext.UpdateManager} for this panel. Enables you to perform Ajax updates. - * @return {Ext.UpdateManager} The UpdateManager - */ - getUpdateManager : function(){ - return this.el.getUpdateManager(); - }, - /** - * Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use setUrl. - * @param {Object/String/Function} url The url for this request or a function to call to get the url or a config object containing any of the following options: -
        
        -panel.load({
        - url: "your-url.php",
        - params: {param1: "foo", param2: "bar"}, // or a URL encoded string
        - callback: yourFunction,
        - scope: yourObject, //(optional scope)
        - discardUrl: false,
        - nocache: false,
        - text: "Loading...",
        - timeout: 30,
        - scripts: false
        -}); -
        - * The only required property is url. The optional properties nocache, text and scripts - * are shorthand for disableCaching, indicatorText and loadScripts and are used to set their associated property on this panel UpdateManager instance. - * @param {String/Object} params (optional) The parameters to pass as either a url encoded string "param1=1&param2=2" or an object {param1: 1, param2: 2} - * @param {Function} callback (optional) Callback when transaction is complete - called with signature (oElement, bSuccess, oResponse) - * @param {Boolean} discardUrl (optional) By default when you execute an update the defaultUrl is changed to the last used url. If true, it will not store the url. - * @return {Ext.ContentPanel} this - */ - load : function(){ - var um = this.el.getUpdateManager(); - um.update.apply(um, arguments); - return this; - }, - - - /** - * Set a URL to be used to load the content for this panel. When this panel is activated, the content will be loaded from that URL. - * @param {String/Function} url The url to load the content from or a function to call to get the url - * @param {String/Object} params (optional) The string params for the update call or an object of the params. See {@link Ext.UpdateManager#update} for more details. (Defaults to null) - * @param {Boolean} loadOnce (optional) Whether to only load the content once. If this is false it makes the Ajax call every time this panel is activated. (Defaults to false) - * @return {Ext.UpdateManager} The UpdateManager - */ - setUrl : function(url, params, loadOnce){ - if(this.refreshDelegate){ - this.removeListener("activate", this.refreshDelegate); - } - this.refreshDelegate = this._handleRefresh.createDelegate(this, [url, params, loadOnce]); - this.on("activate", this._handleRefresh.createDelegate(this, [url, params, loadOnce])); - return this.el.getUpdateManager(); - }, - - _handleRefresh : function(url, params, loadOnce){ - if(!loadOnce || !this.loaded){ - var updater = this.el.getUpdateManager(); - updater.update(url, params, this._setLoaded.createDelegate(this)); - } - }, - - _setLoaded : function(){ - this.loaded = true; - }, - - /** - * Returns this panel's id - * @return {String} - */ - getId : function(){ - return this.el.id; - }, - - /** - * Returns this panel's element - * @return {Ext.Element} - */ - getEl : function(){ - return this.el; - }, - - adjustForComponents : function(width, height){ - if(this.resizeEl != this.el){ - width -= this.el.getFrameWidth('lr'); - height -= this.el.getFrameWidth('tb'); - } - if(this.toolbar){ - var te = this.toolbar.getEl(); - height -= te.getHeight(); - te.setWidth(width); - } - if(this.adjustments){ - width += this.adjustments[0]; - height += this.adjustments[1]; - } - return {"width": width, "height": height}; - }, - - setSize : function(width, height){ - if(this.fitToFrame && !this.ignoreResize(width, height)){ - if(this.fitContainer && this.resizeEl != this.el){ - this.el.setSize(width, height); - } - var size = this.adjustForComponents(width, height); - this.resizeEl.setSize(this.autoWidth ? "auto" : size.width, this.autoHeight ? "auto" : size.height); - this.fireEvent('resize', this, size.width, size.height); - } - }, - - /** - * Returns this panel's title - * @return {String} - */ - getTitle : function(){ - return this.title; - }, - - /** - * Set this panel's title - * @param {String} title - */ - setTitle : function(title){ - this.title = title; - if(this.region){ - this.region.updatePanelTitle(this, title); - } - }, - - /** - * Returns true is this panel was configured to be closable - * @return {Boolean} - */ - isClosable : function(){ - return this.closable; - }, - - beforeSlide : function(){ - this.el.clip(); - this.resizeEl.clip(); - }, - - afterSlide : function(){ - this.el.unclip(); - this.resizeEl.unclip(); - }, - - /** - * Force a content refresh from the URL specified in the setUrl() method. - * Will fail silently if the setUrl method has not been called. - * This does not activate the panel, just updates its content. - */ - refresh : function(){ - if(this.refreshDelegate){ - this.loaded = false; - this.refreshDelegate(); - } - }, - - /** - * Destroys this panel - */ - destroy : function(){ - this.el.removeAllListeners(); - var tempEl = document.createElement("span"); - tempEl.appendChild(this.el.dom); - tempEl.innerHTML = ""; - this.el.remove(); - this.el = null; - } -}); - -/** - * @class Ext.GridPanel - * @extends Ext.ContentPanel - * @constructor - * Create a new GridPanel. - * @param {Ext.grid.Grid} grid The grid for this panel - * @param {String/Object} config A string to set only the title or a config object - */ -Ext.GridPanel = function(grid, config){ - this.wrapper = Ext.DomHelper.append(document.body, // wrapper for IE7 strict & safari scroll issue - {tag: "div", cls: "x-layout-grid-wrapper x-layout-inactive-content"}, true); - this.wrapper.dom.appendChild(grid.container.dom); - Ext.GridPanel.superclass.constructor.call(this, this.wrapper, config); - if(this.toolbar){ - this.toolbar.el.insertBefore(this.wrapper.dom.firstChild); - } - grid.monitorWindowResize = false; // turn off autosizing - grid.autoHeight = false; - grid.autoWidth = false; - this.grid = grid; - this.grid.container.replaceClass("x-layout-inactive-content", "x-layout-component-panel"); -}; - -Ext.extend(Ext.GridPanel, Ext.ContentPanel, { - getId : function(){ - return this.grid.id; - }, - - /** - * Returns the grid for this panel - * @return {Ext.grid.Grid} - */ - getGrid : function(){ - return this.grid; - }, - - setSize : function(width, height){ - if(!this.ignoreResize(width, height)){ - var grid = this.grid; - var size = this.adjustForComponents(width, height); - grid.container.setSize(size.width, size.height); - grid.autoSize(); - } - }, - - beforeSlide : function(){ - this.grid.getView().scroller.clip(); - }, - - afterSlide : function(){ - this.grid.getView().scroller.unclip(); - }, - - destroy : function(){ - this.grid.destroy(); - delete this.grid; - Ext.GridPanel.superclass.destroy.call(this); - } -}); - - -/** - * @class Ext.NestedLayoutPanel - * @extends Ext.ContentPanel - * @constructor - * Create a new NestedLayoutPanel. - * @param {Ext.BorderLayout} layout The layout for this panel - * @param {String/Object} config A string to set only the title or a config object - */ -Ext.NestedLayoutPanel = function(layout, config){ - Ext.NestedLayoutPanel.superclass.constructor.call(this, layout.getEl(), config); - layout.monitorWindowResize = false; // turn off autosizing - this.layout = layout; - this.layout.getEl().addClass("x-layout-nested-layout"); -}; - -Ext.extend(Ext.NestedLayoutPanel, Ext.ContentPanel, { - - setSize : function(width, height){ - if(!this.ignoreResize(width, height)){ - var size = this.adjustForComponents(width, height); - var el = this.layout.getEl(); - el.setSize(size.width, size.height); - var touch = el.dom.offsetWidth; - this.layout.layout(); - // ie requires a double layout on the first pass - if(Ext.isIE && !this.initialized){ - this.initialized = true; - this.layout.layout(); - } - } - }, - - /** - * Returns the nested BorderLayout for this panel - * @return {Ext.BorderLayout} - */ - getLayout : function(){ - return this.layout; - } -}); - -Ext.ScrollPanel = function(el, config, content){ - config = config || {}; - config.fitToFrame = true; - Ext.ScrollPanel.superclass.constructor.call(this, el, config, content); - - this.el.dom.style.overflow = "hidden"; - var wrap = this.el.wrap({cls: "x-scroller x-layout-inactive-content"}); - this.el.removeClass("x-layout-inactive-content"); - this.el.on("mousewheel", this.onWheel, this); - - var up = wrap.createChild({cls: "x-scroller-up", html: " "}, this.el.dom); - var down = wrap.createChild({cls: "x-scroller-down", html: " "}); - up.unselectable(); down.unselectable(); - up.on("click", this.scrollUp, this); - down.on("click", this.scrollDown, this); - up.addClassOnOver("x-scroller-btn-over"); - down.addClassOnOver("x-scroller-btn-over"); - up.addClassOnClick("x-scroller-btn-click"); - down.addClassOnClick("x-scroller-btn-click"); - this.adjustments = [0, -(up.getHeight() + down.getHeight())]; - - this.resizeEl = this.el; - this.el = wrap; this.up = up; this.down = down; -}; - -Ext.extend(Ext.ScrollPanel, Ext.ContentPanel, { - increment : 100, - wheelIncrement : 5, - scrollUp : function(){ - this.resizeEl.scroll("up", this.increment, {callback: this.afterScroll, scope: this}); - }, - - scrollDown : function(){ - this.resizeEl.scroll("down", this.increment, {callback: this.afterScroll, scope: this}); - }, - - afterScroll : function(){ - var el = this.resizeEl; - var t = el.dom.scrollTop, h = el.dom.scrollHeight, ch = el.dom.clientHeight; - this.up[t == 0 ? "addClass" : "removeClass"]("x-scroller-btn-disabled"); - this.down[h - t <= ch ? "addClass" : "removeClass"]("x-scroller-btn-disabled"); - }, - - setSize : function(){ - Ext.ScrollPanel.superclass.setSize.apply(this, arguments); - this.afterScroll(); - }, - - onWheel : function(e){ - var d = e.getWheelDelta(); - this.resizeEl.dom.scrollTop -= (d*this.wheelIncrement); - this.afterScroll(); - e.stopEvent(); - }, - - setContent : function(content, loadScripts){ - this.resizeEl.update(content, loadScripts); - } - -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/layout/LayoutManager.js b/www/extras/extjs/source/widgets/layout/LayoutManager.js deleted file mode 100644 index 5ab85c70b..000000000 --- a/www/extras/extjs/source/widgets/layout/LayoutManager.js +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.LayoutManager - * @extends Ext.util.Observable - * Base class for layout managers. - */ -Ext.LayoutManager = function(container, config){ - Ext.LayoutManager.superclass.constructor.call(this); - this.el = Ext.get(container); - // ie scrollbar fix - if(this.el.dom == document.body && Ext.isIE && !config.allowScroll){ - document.body.scroll = "no"; - }else if(this.el.dom != document.body && this.el.getStyle('position') == 'static'){ - this.el.position('relative'); - } - this.id = this.el.id; - this.el.addClass("x-layout-container"); - /** false to disable window resize monitoring @type Boolean */ - this.monitorWindowResize = true; - this.regions = {}; - this.addEvents({ - /** - * @event layout - * Fires when a layout is performed. - * @param {Ext.LayoutManager} this - */ - "layout" : true, - /** - * @event regionresized - * Fires when the user resizes a region. - * @param {Ext.LayoutRegion} region - * @param {Number} newSize The new size (width for east/west, height for north/south) - */ - "regionresized" : true, - /** - * @event regioncollapsed - * Fires when a region is collapsed. - * @param {Ext.LayoutRegion} region - */ - "regioncollapsed" : true, - /** - * @event regionexpanded - * Fires when a region is expanded. - * @param {Ext.LayoutRegion} region - */ - "regionexpanded" : true - }); - this.updating = false; - Ext.EventManager.onWindowResize(this.onWindowResize, this, true); -}; - -Ext.extend(Ext.LayoutManager, Ext.util.Observable, { - /** - * Returns true if this layout is currently being updated - * @return {Boolean} - */ - isUpdating : function(){ - return this.updating; - }, - - /** - * Suspend the LayoutManager from doing auto-layouts while - * making multiple add or remove calls - */ - beginUpdate : function(){ - this.updating = true; - }, - - /** - * Restore auto-layouts and optionally disable the manager from performing a layout - * @param {Boolean} noLayout true to disable a layout update - */ - endUpdate : function(noLayout){ - this.updating = false; - if(!noLayout){ - this.layout(); - } - }, - - layout: function(){ - - }, - - onRegionResized : function(region, newSize){ - this.fireEvent("regionresized", region, newSize); - this.layout(); - }, - - onRegionCollapsed : function(region){ - this.fireEvent("regioncollapsed", region); - }, - - onRegionExpanded : function(region){ - this.fireEvent("regionexpanded", region); - }, - - /** - * Returns the size of the current view, This method normalizes document.body and element embedded layouts and - * performs box-model adjustments. - * @return {Object} The size as an object {width: (the width), height: (the height)} - */ - getViewSize : function(){ - var size; - if(this.el.dom != document.body){ - size = this.el.getSize(); - }else{ - size = {width: Ext.lib.Dom.getViewWidth(), height: Ext.lib.Dom.getViewHeight()}; - } - size.width -= this.el.getBorderWidth("lr")-this.el.getPadding("lr"); - size.height -= this.el.getBorderWidth("tb")-this.el.getPadding("tb"); - return size; - }, - - /** - * Returns the element this layout is bound to. - * @return {Ext.Element} - */ - getEl : function(){ - return this.el; - }, - - /** - * Returns the specified region. - * @param {String} target The region key - * @return {Ext.LayoutRegion} - */ - getRegion : function(target){ - return this.regions[target.toLowerCase()]; - }, - - onWindowResize : function(){ - if(this.monitorWindowResize){ - this.layout(); - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/layout/LayoutRegion.js b/www/extras/extjs/source/widgets/layout/LayoutRegion.js deleted file mode 100644 index dc6d6467e..000000000 --- a/www/extras/extjs/source/widgets/layout/LayoutRegion.js +++ /dev/null @@ -1,590 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.LayoutRegion - * @extends Ext.BasicLayoutRegion - * This class represents a region in a layout manager. - * @cfg {Boolean} collapsible False to disable collapsing (defaults to true) - * @cfg {Boolean} collapsed True to set the initial display to collapsed (defaults to false) - * @cfg {Boolean} floatable False to disable floating (defaults to true) - * @cfg {Object} margins Margins for the element (defaults to {top: 0, left: 0, right:0, bottom: 0}) - * @cfg {Object} cmargins Margins for the element when collapsed (defaults to: north/south {top: 2, left: 0, right:0, bottom: 2} or east/west {top: 0, left: 2, right:2, bottom: 0}) - * @cfg {String} tabPosition "top" or "bottom" (defaults to "bottom") - * @cfg {String} collapsedTitle Optional string message to display in the collapsed block of a north or south region - * @cfg {Boolean} alwaysShowTabs True to always display tabs even when only 1 panel (defaults to false) - * @cfg {Boolean} autoScroll True to enable overflow scrolling (defaults to false) - * @cfg {Boolean} titlebar True to display a title bar (defaults to true) - * @cfg {String} title The title for the region (overrides panel titles) - * @cfg {Boolean} animate True to animate expand/collapse (defaults to false) - * @cfg {Boolean} autoHide False to disable autoHide when the mouse leaves the "floated" region (defaults to true) - * @cfg {Boolean} preservePanels True to preserve removed panels so they can be readded later (defaults to false) - * @cfg {Boolean} closeOnTab True to place the close icon on the tabs instead of the region titlebar (defaults to false) - * @cfg {Boolean} hideTabs True to hide the tab strip (defaults to false) - * @cfg {Boolean} resizeTabs True to enable automatic tab resizing. This will resize the tabs so they are all the same size and fit within - * the space available, similar to FireFox 1.5 tabs (defaults to false) - * @cfg {Number} minTabWidth The minimum tab width (defaults to 40) - * @cfg {Number} preferredTabWidth The preferred tab width (defaults to 150) - * @cfg {Boolean} showPin True to show a pin button -* @cfg {Boolean} hidden True to start the region hidden -* @cfg {Boolean} hideWhenEmpty True to hide the region when it has no panels -* @cfg {Boolean} disableTabTips True to disable tab tooltips - */ -Ext.LayoutRegion = function(mgr, config, pos){ - Ext.LayoutRegion.superclass.constructor.call(this, mgr, config, pos, true); - var dh = Ext.DomHelper; - /** This regions container element @type Ext.Element */ - this.el = dh.append(mgr.el.dom, {tag: "div", cls: "x-layout-panel x-layout-panel-" + this.position}, true); - /** This regions title element @type Ext.Element */ - - this.titleEl = dh.append(this.el.dom, {tag: "div", unselectable: "on", cls: "x-unselectable x-layout-panel-hd x-layout-title-"+this.position, children:[ - {tag: "span", cls: "x-unselectable x-layout-panel-hd-text", unselectable: "on", html: " "}, - {tag: "div", cls: "x-unselectable x-layout-panel-hd-tools", unselectable: "on"} - ]}, true); - this.titleEl.enableDisplayMode(); - /** This regions title text element @type HTMLElement */ - this.titleTextEl = this.titleEl.dom.firstChild; - this.tools = Ext.get(this.titleEl.dom.childNodes[1], true); - this.closeBtn = this.createTool(this.tools.dom, "x-layout-close"); - this.closeBtn.enableDisplayMode(); - this.closeBtn.on("click", this.closeClicked, this); - this.closeBtn.hide(); - - this.createBody(config); - this.visible = true; - this.collapsed = false; - - if(config.hideWhenEmpty){ - this.hide(); - this.on("paneladded", this.validateVisibility, this); - this.on("panelremoved", this.validateVisibility, this); - } - this.applyConfig(config); -}; - -Ext.extend(Ext.LayoutRegion, Ext.BasicLayoutRegion, { - - createBody : function(){ - /** This regions body element @type Ext.Element */ - this.bodyEl = this.el.createChild({tag: "div", cls: "x-layout-panel-body"}); - }, - - applyConfig : function(c){ - if(c.collapsible && this.position != "center" && !this.collapsedEl){ - var dh = Ext.DomHelper; - if(c.titlebar !== false){ - this.collapseBtn = this.createTool(this.tools.dom, "x-layout-collapse-"+this.position); - this.collapseBtn.on("click", this.collapse, this); - this.collapseBtn.enableDisplayMode(); - - if(c.showPin === true || this.showPin){ - this.stickBtn = this.createTool(this.tools.dom, "x-layout-stick"); - this.stickBtn.enableDisplayMode(); - this.stickBtn.on("click", this.expand, this); - this.stickBtn.hide(); - } - } - /** This region's collapsed element @type Ext.Element */ - this.collapsedEl = dh.append(this.mgr.el.dom, {cls: "x-layout-collapsed x-layout-collapsed-"+this.position, children:[ - {cls: "x-layout-collapsed-tools", children:[{cls: "x-layout-ctools-inner"}]} - ]}, true); - if(c.floatable !== false){ - this.collapsedEl.addClassOnOver("x-layout-collapsed-over"); - this.collapsedEl.on("click", this.collapseClick, this); - } - - if(c.collapsedTitle && (this.position == "north" || this.position== "south")) { - this.collapsedTitleTextEl = dh.append(this.collapsedEl.dom, {tag: "div", cls: "x-unselectable x-layout-panel-hd-text", - id: "message", unselectable: "on", style:{"float":"left"}}); - this.collapsedTitleTextEl.innerHTML = c.collapsedTitle; - } - this.expandBtn = this.createTool(this.collapsedEl.dom.firstChild.firstChild, "x-layout-expand-"+this.position); - this.expandBtn.on("click", this.expand, this); - } - if(this.collapseBtn){ - this.collapseBtn.setVisible(c.collapsible == true); - } - this.cmargins = c.cmargins || this.cmargins || - (this.position == "west" || this.position == "east" ? - {top: 0, left: 2, right:2, bottom: 0} : - {top: 2, left: 0, right:0, bottom: 2}); - this.margins = c.margins || this.margins || {top: 0, left: 0, right:0, bottom: 0}; - this.bottomTabs = c.tabPosition != "top"; - this.autoScroll = c.autoScroll || false; - if(this.autoScroll){ - this.bodyEl.setStyle("overflow", "auto"); - }else{ - this.bodyEl.setStyle("overflow", "hidden"); - } - //if(c.titlebar !== false){ - if((!c.titlebar && !c.title) || c.titlebar === false){ - this.titleEl.hide(); - }else{ - this.titleEl.show(); - if(c.title){ - this.titleTextEl.innerHTML = c.title; - } - } - //} - this.duration = c.duration || .30; - this.slideDuration = c.slideDuration || .45; - this.config = c; - if(c.collapsed){ - this.collapse(true); - } - if(c.hidden){ - this.hide(); - } - }, - /** - * Returns true if this region is currently visible. - * @return {Boolean} - */ - isVisible : function(){ - return this.visible; - }, - - /** - * Updates the collapsed text for north/south regions (used with collapsedTitle config option) - */ - setCollapsedTitle : function(title){ - title = title || " "; - if(this.collapsedTitleTextEl){ - this.collapsedTitleTextEl.innerHTML = title; - } - }, - - getBox : function(){ - var b; - if(!this.collapsed){ - b = this.el.getBox(false, true); - }else{ - b = this.collapsedEl.getBox(false, true); - } - return b; - }, - - getMargins : function(){ - return this.collapsed ? this.cmargins : this.margins; - }, - - highlight : function(){ - this.el.addClass("x-layout-panel-dragover"); - }, - - unhighlight : function(){ - this.el.removeClass("x-layout-panel-dragover"); - }, - - updateBox : function(box){ - this.box = box; - if(!this.collapsed){ - this.el.dom.style.left = box.x + "px"; - this.el.dom.style.top = box.y + "px"; - this.updateBody(box.width, box.height); - }else{ - this.collapsedEl.dom.style.left = box.x + "px"; - this.collapsedEl.dom.style.top = box.y + "px"; - this.collapsedEl.setSize(box.width, box.height); - } - if(this.tabs){ - this.tabs.autoSizeTabs(); - } - }, - - updateBody : function(w, h){ - if(w !== null){ - this.el.setWidth(w); - w -= this.el.getBorderWidth("rl"); - if(this.config.adjustments){ - w += this.config.adjustments[0]; - } - } - if(h !== null){ - this.el.setHeight(h); - h = this.titleEl && this.titleEl.isDisplayed() ? h - (this.titleEl.getHeight()||0) : h; - h -= this.el.getBorderWidth("tb"); - if(this.config.adjustments){ - h += this.config.adjustments[1]; - } - this.bodyEl.setHeight(h); - if(this.tabs){ - h = this.tabs.syncHeight(h); - } - } - if(this.panelSize){ - w = w !== null ? w : this.panelSize.width; - h = h !== null ? h : this.panelSize.height; - } - if(this.activePanel){ - var el = this.activePanel.getEl(); - w = w !== null ? w : el.getWidth(); - h = h !== null ? h : el.getHeight(); - this.panelSize = {width: w, height: h}; - this.activePanel.setSize(w, h); - } - if(Ext.isIE && this.tabs){ - this.tabs.el.repaint(); - } - }, - - /** - * Returns the container element for this region. - * @return {Ext.Element} - */ - getEl : function(){ - return this.el; - }, - - /** - * Hides this region. - */ - hide : function(){ - if(!this.collapsed){ - this.el.dom.style.left = "-2000px"; - this.el.hide(); - }else{ - this.collapsedEl.dom.style.left = "-2000px"; - this.collapsedEl.hide(); - } - this.visible = false; - this.fireEvent("visibilitychange", this, false); - }, - - /** - * Shows this region if it was previously hidden. - */ - show : function(){ - if(!this.collapsed){ - this.el.show(); - }else{ - this.collapsedEl.show(); - } - this.visible = true; - this.fireEvent("visibilitychange", this, true); - }, - - closeClicked : function(){ - if(this.activePanel){ - this.remove(this.activePanel); - } - }, - - collapseClick : function(e){ - if(this.isSlid){ - e.stopPropagation(); - this.slideIn(); - }else{ - e.stopPropagation(); - this.slideOut(); - } - }, - - /** - * Collapses this region. - * @param {Boolean} skipAnim (optional) true to collapse the element without animation (if animate is true) - */ - collapse : function(skipAnim){ - if(this.collapsed) return; - this.collapsed = true; - if(this.split){ - this.split.el.hide(); - } - if(this.config.animate && skipAnim !== true){ - this.fireEvent("invalidated", this); - this.animateCollapse(); - }else{ - this.el.setLocation(-20000,-20000); - this.el.hide(); - this.collapsedEl.show(); - this.fireEvent("collapsed", this); - this.fireEvent("invalidated", this); - } - }, - - animateCollapse : function(){ - // overridden - }, - - /** - * Expand this region if it was previously collapsed. - * @param {Ext.EventObject} e The event that triggered the expand (or null if calling manually) - * @param {Boolean} skipAnim (optional) true to expand the element without animation (if animate is true) - */ - expand : function(e, skipAnim){ - if(e) e.stopPropagation(); - if(!this.collapsed || this.el.hasActiveFx()) return; - if(this.isSlid){ - this.afterSlideIn(); - skipAnim = true; - } - this.collapsed = false; - if(this.config.animate && skipAnim !== true){ - this.animateExpand(); - }else{ - this.el.show(); - if(this.split){ - this.split.el.show(); - } - this.collapsedEl.setLocation(-2000,-2000); - this.collapsedEl.hide(); - this.fireEvent("invalidated", this); - this.fireEvent("expanded", this); - } - }, - - animateExpand : function(){ - // overridden - }, - - initTabs : function(){ - this.bodyEl.setStyle("overflow", "hidden"); - var ts = new Ext.TabPanel(this.bodyEl.dom, { - tabPosition: this.bottomTabs ? 'bottom' : 'top', - disableTooltips: this.config.disableTabTips - }); - if(this.config.hideTabs){ - ts.stripWrap.setDisplayed(false); - } - this.tabs = ts; - ts.resizeTabs = this.config.resizeTabs === true; - ts.minTabWidth = this.config.minTabWidth || 40; - ts.maxTabWidth = this.config.maxTabWidth || 250; - ts.preferredTabWidth = this.config.preferredTabWidth || 150; - ts.monitorResize = false; - ts.bodyEl.setStyle("overflow", this.config.autoScroll ? "auto" : "hidden"); - ts.bodyEl.addClass('x-layout-tabs-body'); - this.panels.each(this.initPanelAsTab, this); - }, - - initPanelAsTab : function(panel){ - var ti = this.tabs.addTab(panel.getEl().id, panel.getTitle(), null, - this.config.closeOnTab && panel.isClosable()); - if(panel.tabTip !== undefined){ - ti.setTooltip(panel.tabTip); - } - ti.on("activate", function(){ - this.setActivePanel(panel); - }, this); - if(this.config.closeOnTab){ - ti.on("beforeclose", function(t, e){ - e.cancel = true; - this.remove(panel); - }, this); - } - return ti; - }, - - updatePanelTitle : function(panel, title){ - if(this.activePanel == panel){ - this.updateTitle(title); - } - if(this.tabs){ - var ti = this.tabs.getTab(panel.getEl().id); - ti.setText(title); - if(panel.tabTip !== undefined){ - ti.setTooltip(panel.tabTip); - } - } - }, - - updateTitle : function(title){ - if(this.titleTextEl && !this.config.title){ - this.titleTextEl.innerHTML = (typeof title != "undefined" && title.length > 0 ? title : " "); - } - }, - - setActivePanel : function(panel){ - panel = this.getPanel(panel); - if(this.activePanel && this.activePanel != panel){ - this.activePanel.setActiveState(false); - } - this.activePanel = panel; - panel.setActiveState(true); - if(this.panelSize){ - panel.setSize(this.panelSize.width, this.panelSize.height); - } - if(this.closeBtn){ - this.closeBtn.setVisible(!this.config.closeOnTab && !this.isSlid && panel.isClosable()); - } - this.updateTitle(panel.getTitle()); - if(this.tabs){ - this.fireEvent("invalidated", this); - } - this.fireEvent("panelactivated", this, panel); - }, - - /** - * Show the specified panel. - * @param {Number/String/ContentPanel} panelId The panels index, id or the panel itself - * @return {Ext.ContentPanel} The shown panel or null - */ - showPanel : function(panel){ - if(panel = this.getPanel(panel)){ - if(this.tabs){ - var tab = this.tabs.getTab(panel.getEl().id); - if(tab.isHidden()){ - this.tabs.unhideTab(tab.id); - } - tab.activate(); - }else{ - this.setActivePanel(panel); - } - } - return panel; - }, - - /** - * Get the active panel for this region. - * @return {Ext.ContentPanel} The active panel or null - */ - getActivePanel : function(){ - return this.activePanel; - }, - - validateVisibility : function(){ - if(this.panels.getCount() < 1){ - this.updateTitle(" "); - this.closeBtn.hide(); - this.hide(); - }else{ - if(!this.isVisible()){ - this.show(); - } - } - }, - - /** - * Add the passed ContentPanel(s) - * @param {ContentPanel...} panel The ContentPanel(s) to add (you can pass more than one) - * @return {Ext.ContentPanel} The panel added (if only one was added) - */ - add : function(panel){ - if(arguments.length > 1){ - for(var i = 0, len = arguments.length; i < len; i++) { - this.add(arguments[i]); - } - return null; - } - if(this.hasPanel(panel)){ - this.showPanel(panel); - return panel; - } - panel.setRegion(this); - this.panels.add(panel); - if(this.panels.getCount() == 1 && !this.config.alwaysShowTabs){ - this.bodyEl.dom.appendChild(panel.getEl().dom); - if(panel.background !== true){ - this.setActivePanel(panel); - } - this.fireEvent("paneladded", this, panel); - return panel; - } - if(!this.tabs){ - this.initTabs(); - }else{ - this.initPanelAsTab(panel); - } - if(panel.background !== true){ - this.tabs.activate(panel.getEl().id); - } - this.fireEvent("paneladded", this, panel); - return panel; - }, - - /** - * Hides the tab for the specified panel. - * @param {Number/String/ContentPanel} panel The panels index, id or the panel itself - */ - hidePanel : function(panel){ - if(this.tabs && (panel = this.getPanel(panel))){ - this.tabs.hideTab(panel.getEl().id); - } - }, - - /** - * Unhides the tab for a previously hidden panel. - * @param {Number/String/ContentPanel} panel The panels index, id or the panel itself - */ - unhidePanel : function(panel){ - if(this.tabs && (panel = this.getPanel(panel))){ - this.tabs.unhideTab(panel.getEl().id); - } - }, - - clearPanels : function(){ - while(this.panels.getCount() > 0){ - this.remove(this.panels.first()); - } - }, - - /** - * Removes the specified panel. If preservePanel is not true (either here or in the config), the panel is destroyed. - * @param {Number/String/ContentPanel} panel The panels index, id or the panel itself - * @param {Boolean} preservePanel Overrides the config preservePanel option - * @return {Ext.ContentPanel} The panel that was removed - */ - remove : function(panel, preservePanel){ - panel = this.getPanel(panel); - if(!panel){ - return null; - } - var e = {}; - this.fireEvent("beforeremove", this, panel, e); - if(e.cancel === true){ - return null; - } - preservePanel = (typeof preservePanel != "undefined" ? preservePanel : (this.config.preservePanels === true || panel.preserve === true)); - var panelId = panel.getId(); - this.panels.removeKey(panelId); - if(preservePanel){ - document.body.appendChild(panel.getEl().dom); - } - if(this.tabs){ - this.tabs.removeTab(panel.getEl().id); - }else if (!preservePanel){ - this.bodyEl.dom.removeChild(panel.getEl().dom); - } - if(this.panels.getCount() == 1 && this.tabs && !this.config.alwaysShowTabs){ - var p = this.panels.first(); - var tempEl = document.createElement("div"); // temp holder to keep IE from deleting the node - tempEl.appendChild(p.getEl().dom); - this.bodyEl.update(""); - this.bodyEl.dom.appendChild(p.getEl().dom); - tempEl = null; - this.updateTitle(p.getTitle()); - this.tabs = null; - this.bodyEl.setStyle("overflow", this.config.autoScroll ? "auto" : "hidden"); - this.setActivePanel(p); - } - panel.setRegion(null); - if(this.activePanel == panel){ - this.activePanel = null; - } - if(this.config.autoDestroy !== false && preservePanel !== true){ - try{panel.destroy();}catch(e){} - } - this.fireEvent("panelremoved", this, panel); - return panel; - }, - - /** - * Returns the TabPanel component used by this region - * @return {Ext.TabPanel} - */ - getTabs : function(){ - return this.tabs; - }, - - createTool : function(parentEl, className){ - var btn = Ext.DomHelper.append(parentEl, {tag: "div", cls: "x-layout-tools-button", - children: [{tag: "div", cls: "x-layout-tools-button-inner " + className, html: " "}]}, true); - btn.addClassOnOver("x-layout-tools-button-over"); - return btn; - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/layout/LayoutStateManager.js b/www/extras/extjs/source/widgets/layout/LayoutStateManager.js deleted file mode 100644 index c87d03899..000000000 --- a/www/extras/extjs/source/widgets/layout/LayoutStateManager.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* - * Private internal class for reading and applying state - */ -Ext.LayoutStateManager = function(layout){ - // default empty state - this.state = { - north: {}, - south: {}, - east: {}, - west: {} - }; -}; - -Ext.LayoutStateManager.prototype = { - init : function(layout, provider){ - this.provider = provider; - var state = provider.get(layout.id+"-layout-state"); - if(state){ - var wasUpdating = layout.isUpdating(); - if(!wasUpdating){ - layout.beginUpdate(); - } - for(var key in state){ - if(typeof state[key] != "function"){ - var rstate = state[key]; - var r = layout.getRegion(key); - if(r && rstate){ - if(rstate.size){ - r.resizeTo(rstate.size); - } - if(rstate.collapsed == true){ - r.collapse(true); - }else{ - r.expand(null, true); - } - } - } - } - if(!wasUpdating){ - layout.endUpdate(); - } - this.state = state; - } - this.layout = layout; - layout.on("regionresized", this.onRegionResized, this); - layout.on("regioncollapsed", this.onRegionCollapsed, this); - layout.on("regionexpanded", this.onRegionExpanded, this); - }, - - storeState : function(){ - this.provider.set(this.layout.id+"-layout-state", this.state); - }, - - onRegionResized : function(region, newSize){ - this.state[region.getPosition()].size = newSize; - this.storeState(); - }, - - onRegionCollapsed : function(region){ - this.state[region.getPosition()].collapsed = true; - this.storeState(); - }, - - onRegionExpanded : function(region){ - this.state[region.getPosition()].collapsed = false; - this.storeState(); - } -}; \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/layout/ReaderLayout.js b/www/extras/extjs/source/widgets/layout/ReaderLayout.js deleted file mode 100644 index 3300e0056..000000000 --- a/www/extras/extjs/source/widgets/layout/ReaderLayout.js +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.ReaderLayout - * @extends Ext.BorderLayout - * This is a pre-built layout that represents a classic, 5-pane application. It consists of a header, a primary - * center region containing two nested regions (a top one for a list view and one for item preview below), - * and regions on either side that can be used for navigation, application commands, informational displays, etc. - * The setup and configuration work exactly the same as it does for a {@link Ext.BorderLayout} - this class simply - * expedites the setup of the overall layout and regions for this common application style. - * Example: -
        
        -var reader = new Ext.ReaderLayout();
        -var CP = Ext.ContentPanel;  // shortcut for adding
        -
        -reader.beginUpdate();
        -reader.add("north", new CP("north", "North"));
        -reader.add("west", new CP("west", {title: "West"}));
        -reader.add("east", new CP("east", {title: "East"}));
        -
        -reader.regions.listView.add(new CP("listView", "List"));
        -reader.regions.preview.add(new CP("preview", "Preview"));
        -reader.endUpdate();
        -
        -* @constructor -* Create a new ReaderLayout -* @param {Object} config Configuration options -* @param {String/HTMLElement/Element} container (optional) The container this layout is bound to (defaults to -* document.body if omitted) -*/ -Ext.ReaderLayout = function(config, renderTo){ - var c = config || {size:{}}; - Ext.ReaderLayout.superclass.constructor.call(this, renderTo || document.body, { - north: c.north !== false ? Ext.apply({ - split:false, - initialSize: 32, - titlebar: false - }, c.north) : false, - west: c.west !== false ? Ext.apply({ - split:true, - initialSize: 200, - minSize: 175, - maxSize: 400, - titlebar: true, - collapsible: true, - animate: true, - margins:{left:5,right:0,bottom:5,top:5}, - cmargins:{left:5,right:5,bottom:5,top:5} - }, c.west) : false, - east: c.east !== false ? Ext.apply({ - split:true, - initialSize: 200, - minSize: 175, - maxSize: 400, - titlebar: true, - collapsible: true, - animate: true, - margins:{left:0,right:5,bottom:5,top:5}, - cmargins:{left:5,right:5,bottom:5,top:5} - }, c.east) : false, - center: Ext.apply({ - tabPosition: 'top', - autoScroll:false, - closeOnTab: true, - titlebar:false, - margins:{left:c.west!==false ? 0 : 5,right:c.east!==false ? 0 : 5,bottom:5,top:2} - }, c.center) - }); - - this.el.addClass('x-reader'); - - this.beginUpdate(); - - var inner = new Ext.BorderLayout(Ext.get(document.body).createChild(), { - south: c.preview !== false ? Ext.apply({ - split:true, - initialSize: 200, - minSize: 100, - autoScroll:true, - collapsible:true, - titlebar: true, - cmargins:{top:5,left:0, right:0, bottom:0} - }, c.preview) : false, - center: Ext.apply({ - autoScroll:false, - titlebar:false, - minHeight:200 - }, c.listView) - }); - this.add('center', new Ext.NestedLayoutPanel(inner, - Ext.apply({title: c.mainTitle || '',tabTip:''},c.innerPanelCfg))); - - this.endUpdate(); - - this.regions.preview = inner.getRegion('south'); - this.regions.listView = inner.getRegion('center'); -}; - -Ext.extend(Ext.ReaderLayout, Ext.BorderLayout); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/layout/SplitLayoutRegion.js b/www/extras/extjs/source/widgets/layout/SplitLayoutRegion.js deleted file mode 100644 index b806d7e2a..000000000 --- a/www/extras/extjs/source/widgets/layout/SplitLayoutRegion.js +++ /dev/null @@ -1,333 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.SplitLayoutRegion - * @extends Ext.LayoutRegion - * Adds a splitbar and other (private) useful functionality to a LayoutRegion - */ -Ext.SplitLayoutRegion = function(mgr, config, pos, cursor){ - this.cursor = cursor; - Ext.SplitLayoutRegion.superclass.constructor.call(this, mgr, config, pos); -}; - -Ext.extend(Ext.SplitLayoutRegion, Ext.LayoutRegion, { - splitTip : "Drag to resize.", - collapsibleSplitTip : "Drag to resize. Double click to hide.", - useSplitTips : false, - - applyConfig : function(config){ - Ext.SplitLayoutRegion.superclass.applyConfig.call(this, config); - if(config.split){ - if(!this.split){ - var splitEl = Ext.DomHelper.append(this.mgr.el.dom, - {tag: "div", id: this.el.id + "-split", cls: "x-layout-split x-layout-split-"+this.position, html: " "}); - /** The SplitBar for this region @type Ext.SplitBar */ - this.split = new Ext.SplitBar(splitEl, this.el, this.orientation); - this.split.on("moved", this.onSplitMove, this); - this.split.useShim = config.useShim === true; - this.split.getMaximumSize = this[this.position == 'north' || this.position == 'south' ? 'getVMaxSize' : 'getHMaxSize'].createDelegate(this); - if(this.useSplitTips){ - this.split.el.dom.title = config.collapsible ? this.collapsibleSplitTip : this.splitTip; - } - if(config.collapsible){ - this.split.el.on("dblclick", this.collapse, this); - } - } - if(typeof config.minSize != "undefined"){ - this.split.minSize = config.minSize; - } - if(typeof config.maxSize != "undefined"){ - this.split.maxSize = config.maxSize; - } - if(config.hideWhenEmpty || config.hidden){ - this.hideSplitter(); - } - } - }, - - getHMaxSize : function(){ - var cmax = this.config.maxSize || 10000; - var center = this.mgr.getRegion("center"); - return Math.min(cmax, (this.el.getWidth()+center.getEl().getWidth())-center.getMinWidth()); - }, - - getVMaxSize : function(){ - var cmax = this.config.maxSize || 10000; - var center = this.mgr.getRegion("center"); - return Math.min(cmax, (this.el.getHeight()+center.getEl().getHeight())-center.getMinHeight()); - }, - - onSplitMove : function(split, newSize){ - this.fireEvent("resized", this, newSize); - }, - - /** - * Returns the SplitBar for this region. - * @return {Ext.SplitBar} - */ - getSplitBar : function(){ - return this.split; - }, - - hide : function(){ - this.hideSplitter(); - Ext.SplitLayoutRegion.superclass.hide.call(this); - }, - - hideSplitter : function(){ - if(this.split){ - this.split.el.setLocation(-2000,-2000); - this.split.el.hide(); - } - }, - - show : function(){ - if(this.split){ - this.split.el.show(); - } - Ext.SplitLayoutRegion.superclass.show.call(this); - }, - - beforeSlide: function(){ - if(Ext.isGecko){// firefox overflow auto bug workaround - this.bodyEl.clip(); - if(this.tabs) this.tabs.bodyEl.clip(); - if(this.activePanel){ - this.activePanel.getEl().clip(); - - if(this.activePanel.beforeSlide){ - this.activePanel.beforeSlide(); - } - } - } - }, - - afterSlide : function(){ - if(Ext.isGecko){// firefox overflow auto bug workaround - this.bodyEl.unclip(); - if(this.tabs) this.tabs.bodyEl.unclip(); - if(this.activePanel){ - this.activePanel.getEl().unclip(); - if(this.activePanel.afterSlide){ - this.activePanel.afterSlide(); - } - } - } - }, - - initAutoHide : function(){ - if(this.autoHide !== false){ - if(!this.autoHideHd){ - var st = new Ext.util.DelayedTask(this.slideIn, this); - this.autoHideHd = { - "mouseout": function(e){ - if(!e.within(this.el, true)){ - st.delay(500); - } - }, - "mouseover" : function(e){ - st.cancel(); - }, - scope : this - }; - } - this.el.on(this.autoHideHd); - } - }, - - clearAutoHide : function(){ - if(this.autoHide !== false){ - this.el.un("mouseout", this.autoHideHd.mouseout); - this.el.un("mouseover", this.autoHideHd.mouseover); - } - }, - - clearMonitor : function(){ - Ext.get(document).un("click", this.slideInIf, this); - }, - - // these names are backwards but not changed for compat - slideOut : function(){ - if(this.isSlid || this.el.hasActiveFx()){ - return; - } - this.isSlid = true; - if(this.collapseBtn){ - this.collapseBtn.hide(); - } - this.closeBtnState = this.closeBtn.getStyle('display'); - this.closeBtn.hide(); - if(this.stickBtn){ - this.stickBtn.show(); - } - this.el.show(); - this.el.alignTo(this.collapsedEl, this.getCollapseAnchor()); - this.beforeSlide(); - this.el.setStyle("z-index", 20000); - this.el.slideIn(this.getSlideAnchor(), { - callback: function(){ - this.afterSlide(); - this.initAutoHide(); - Ext.get(document).on("click", this.slideInIf, this); - this.fireEvent("slideshow", this); - }, - scope: this, - block: true - }); - }, - - afterSlideIn : function(){ - this.clearAutoHide(); - this.isSlid = false; - this.clearMonitor(); - this.el.setStyle("z-index", ""); - if(this.collapseBtn){ - this.collapseBtn.show(); - } - this.closeBtn.setStyle('display', this.closeBtnState); - if(this.stickBtn){ - this.stickBtn.hide(); - } - this.fireEvent("slidehide", this); - }, - - slideIn : function(cb){ - if(!this.isSlid || this.el.hasActiveFx()){ - Ext.callback(cb); - return; - } - this.isSlid = false; - this.beforeSlide(); - this.el.slideOut(this.getSlideAnchor(), { - callback: function(){ - this.el.setLeftTop(-10000, -10000); - this.afterSlide(); - this.afterSlideIn(); - Ext.callback(cb); - }, - scope: this, - block: true - }); - }, - - slideInIf : function(e){ - if(!e.within(this.el)){ - this.slideIn(); - } - }, - - animateCollapse : function(){ - this.beforeSlide(); - this.el.setStyle("z-index", 20000); - var anchor = this.getSlideAnchor(); - this.el.slideOut(anchor, { - callback : function(){ - this.el.setStyle("z-index", ""); - this.collapsedEl.slideIn(anchor, {duration:.3}); - this.afterSlide(); - this.el.setLocation(-10000,-10000); - this.el.hide(); - this.fireEvent("collapsed", this); - }, - scope: this, - block: true - }); - }, - - animateExpand : function(){ - this.beforeSlide(); - this.el.alignTo(this.collapsedEl, this.getCollapseAnchor(), this.getExpandAdj()); - this.el.setStyle("z-index", 20000); - this.collapsedEl.hide({ - duration:.1 - }); - this.el.slideIn(this.getSlideAnchor(), { - callback : function(){ - this.el.setStyle("z-index", ""); - this.afterSlide(); - if(this.split){ - this.split.el.show(); - } - this.fireEvent("invalidated", this); - this.fireEvent("expanded", this); - }, - scope: this, - block: true - }); - }, - - anchors : { - "west" : "left", - "east" : "right", - "north" : "top", - "south" : "bottom" - }, - - sanchors : { - "west" : "l", - "east" : "r", - "north" : "t", - "south" : "b" - }, - - canchors : { - "west" : "tl-tr", - "east" : "tr-tl", - "north" : "tl-bl", - "south" : "bl-tl" - }, - - getAnchor : function(){ - return this.anchors[this.position]; - }, - - getCollapseAnchor : function(){ - return this.canchors[this.position]; - }, - - getSlideAnchor : function(){ - return this.sanchors[this.position]; - }, - - getAlignAdj : function(){ - var cm = this.cmargins; - switch(this.position){ - case "west": - return [0, 0]; - break; - case "east": - return [0, 0]; - break; - case "north": - return [0, 0]; - break; - case "south": - return [0, 0]; - break; - } - }, - - getExpandAdj : function(){ - var c = this.collapsedEl, cm = this.cmargins; - switch(this.position){ - case "west": - return [-(cm.right+c.getWidth()+cm.left), 0]; - break; - case "east": - return [cm.right+c.getWidth()+cm.left, 0]; - break; - case "north": - return [0, -(cm.top+cm.bottom+c.getHeight())]; - break; - case "south": - return [0, cm.top+cm.bottom+c.getHeight()]; - break; - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/menu/Adapter.js b/www/extras/extjs/source/widgets/menu/Adapter.js deleted file mode 100644 index 13585e058..000000000 --- a/www/extras/extjs/source/widgets/menu/Adapter.js +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.menu.Adapter - * @extends Ext.menu.BaseItem - * A base utility class that adapts a non-menu component so that it can be wrapped by a menu item and added to a menu. - * It provides basic rendering, activation management and enable/disable logic required to work in menus. - * @constructor - * Creates a new Adapter - * @param {Object} config Configuration options - */ -Ext.menu.Adapter = function(component, config){ - Ext.menu.Adapter.superclass.constructor.call(this, config); - this.component = component; -}; -Ext.extend(Ext.menu.Adapter, Ext.menu.BaseItem, { - // private - canActivate : true, - - // private - onRender : function(container, position){ - this.component.render(container); - this.el = this.component.getEl(); - }, - - // private - activate : function(){ - if(this.disabled){ - return false; - } - this.component.focus(); - this.fireEvent("activate", this); - return true; - }, - - // private - deactivate : function(){ - this.fireEvent("deactivate", this); - }, - - // private - disable : function(){ - this.component.disable(); - Ext.menu.Adapter.superclass.disable.call(this); - }, - - // private - enable : function(){ - this.component.enable(); - Ext.menu.Adapter.superclass.enable.call(this); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/menu/BaseItem.js b/www/extras/extjs/source/widgets/menu/BaseItem.js deleted file mode 100644 index aa054e770..000000000 --- a/www/extras/extjs/source/widgets/menu/BaseItem.js +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.menu.BaseItem - * @extends Ext.Component - * The base class for all items that render into menus. BaseItem provides default rendering, activated state - * management and base configuration options shared by all menu components. - * @constructor - * Creates a new BaseItem - * @param {Object} config Configuration options - */ -Ext.menu.BaseItem = function(config){ - Ext.menu.BaseItem.superclass.constructor.call(this, config); - - this.addEvents({ - /** - * @event click - * Fires when this item is clicked - * @param {Ext.menu.BaseItem} this - * @param {Ext.EventObject} e - */ - click: true, - /** - * @event activate - * Fires when this item is activated - * @param {Ext.menu.BaseItem} this - */ - activate : true, - /** - * @event deactivate - * Fires when this item is deactivated - * @param {Ext.menu.BaseItem} this - */ - deactivate : true - }); - - if(this.handler){ - this.on("click", this.handler, this.scope, true); - } -}; - -Ext.extend(Ext.menu.BaseItem, Ext.Component, { - /** - * @cfg {Function} handler - * A function that will handle the click event of this menu item (defaults to undefined) - */ - /** - * @cfg {Boolean} canActivate True if this item can be visually activated (defaults to false) - */ - canActivate : false, - /** - * @cfg {String} activeClass The CSS class to use when the item becomes activated (defaults to "x-menu-item-active") - */ - activeClass : "x-menu-item-active", - /** - * @cfg {Boolean} hideOnClick True to hide the containing menu after this item is clicked (defaults to true) - */ - hideOnClick : true, - /** - * @cfg {Number} hideDelay Length of time in milliseconds to wait before hiding after a click (defaults to 100) - */ - hideDelay : 100, - - // private - ctype: "Ext.menu.BaseItem", - - // private - actionMode : "container", - - // private - render : function(container, parentMenu){ - this.parentMenu = parentMenu; - Ext.menu.BaseItem.superclass.render.call(this, container); - this.container.menuItemId = this.id; - }, - - // private - onRender : function(container, position){ - this.el = Ext.get(this.el); - container.dom.appendChild(this.el.dom); - }, - - // private - onClick : function(e){ - if(!this.disabled && this.fireEvent("click", this, e) !== false - && this.parentMenu.fireEvent("itemclick", this, e) !== false){ - this.handleClick(e); - }else{ - e.stopEvent(); - } - }, - - // private - activate : function(){ - if(this.disabled){ - return false; - } - var li = this.container; - li.addClass(this.activeClass); - this.region = li.getRegion().adjust(2, 2, -2, -2); - this.fireEvent("activate", this); - return true; - }, - - // private - deactivate : function(){ - this.container.removeClass(this.activeClass); - this.fireEvent("deactivate", this); - }, - - // private - shouldDeactivate : function(e){ - return !this.region || !this.region.contains(e.getPoint()); - }, - - // private - handleClick : function(e){ - if(this.hideOnClick){ - this.parentMenu.hide.defer(this.hideDelay, this.parentMenu, [true]); - } - }, - - // private - expandMenu : function(autoActivate){ - // do nothing - }, - - // private - hideMenu : function(){ - // do nothing - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/menu/CheckItem.js b/www/extras/extjs/source/widgets/menu/CheckItem.js deleted file mode 100644 index 624b9959d..000000000 --- a/www/extras/extjs/source/widgets/menu/CheckItem.js +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.menu.CheckItem - * @extends Ext.menu.Item - * Adds a menu item that contains a checkbox by default, but can also be part of a radio group. - * @constructor - * Creates a new CheckItem - * @param {Object} config Configuration options - */ -Ext.menu.CheckItem = function(config){ - Ext.menu.CheckItem.superclass.constructor.call(this, config); - this.addEvents({ - /** - * @event beforecheckchange - * Fires before the checked value is set, providing an opportunity to cancel if needed - * @param {Ext.menu.CheckItem} this - * @param {Boolean} checked The new checked value that will be set - */ - "beforecheckchange" : true, - /** - * @event checkchange - * Fires after the checked value has been set - * @param {Ext.menu.CheckItem} this - * @param {Boolean} checked The checked value that was set - */ - "checkchange" : true - }); - if(this.checkHandler){ - this.on('checkchange', this.checkHandler, this.scope); - } -}; -Ext.extend(Ext.menu.CheckItem, Ext.menu.Item, { - /** - * @cfg {String} group - * All check items with the same group name will automatically be grouped into a single-select - * radio button group (defaults to '') - */ - /** - * @cfg {String} itemCls The default CSS class to use for check items (defaults to "x-menu-item x-menu-check-item") - */ - itemCls : "x-menu-item x-menu-check-item", - /** - * @cfg {String} groupClass The default CSS class to use for radio group check items (defaults to "x-menu-group-item") - */ - groupClass : "x-menu-group-item", - - /** - * @cfg {Boolean} checked True to initialize this checkbox as checked (defaults to false). Note that - * if this checkbox is part of a radio group (group = true) only the last item in the group that is - * initialized with checked = true will be rendered as checked. - */ - checked: false, - - // private - ctype: "Ext.menu.CheckItem", - - // private - onRender : function(c){ - Ext.menu.CheckItem.superclass.onRender.apply(this, arguments); - if(this.group){ - this.el.addClass(this.groupClass); - } - Ext.menu.MenuMgr.registerCheckable(this); - if(this.checked){ - this.checked = false; - this.setChecked(true, true); - } - }, - - // private - destroy : function(){ - if(this.rendered){ - Ext.menu.MenuMgr.unregisterCheckable(this); - } - Ext.menu.CheckItem.superclass.destroy.apply(this, arguments); - }, - - /** - * Set the checked state of this item - * @param {Boolean} checked The new checked value - * @param {Boolean} suppressEvent (optional) True to prevent the checkchange event from firing (defaults to false) - */ - setChecked : function(state, suppressEvent){ - if(this.checked != state && this.fireEvent("beforecheckchange", this, state) !== false){ - if(this.container){ - this.container[state ? "addClass" : "removeClass"]("x-menu-item-checked"); - } - this.checked = state; - if(suppressEvent !== true){ - this.fireEvent("checkchange", this, state); - } - } - }, - - // private - handleClick : function(e){ - if(!this.disabled && !(this.checked && this.group)){// disable unselect on radio item - this.setChecked(!this.checked); - } - Ext.menu.CheckItem.superclass.handleClick.apply(this, arguments); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/menu/ColorItem.js b/www/extras/extjs/source/widgets/menu/ColorItem.js deleted file mode 100644 index d35528775..000000000 --- a/www/extras/extjs/source/widgets/menu/ColorItem.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.menu.ColorItem - * @extends Ext.menu.Adapter - * A menu item that wraps the {@link Ext.ColorPalette} component. - * @constructor - * Creates a new ColorItem - * @param {Object} config Configuration options - */ -Ext.menu.ColorItem = function(config){ - Ext.menu.ColorItem.superclass.constructor.call(this, new Ext.ColorPalette(config), config); - /** The Ext.ColorPalette object @type Ext.ColorPalette */ - this.palette = this.component; - this.relayEvents(this.palette, ["select"]); - if(this.selectHandler){ - this.on('select', this.selectHandler, this.scope); - } -}; -Ext.extend(Ext.menu.ColorItem, Ext.menu.Adapter); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/menu/ColorMenu.js b/www/extras/extjs/source/widgets/menu/ColorMenu.js deleted file mode 100644 index a047252cd..000000000 --- a/www/extras/extjs/source/widgets/menu/ColorMenu.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.menu.ColorMenu - * @extends Ext.menu.Menu - * A menu containing a {@link Ext.menu.ColorItem} component (which provides a basic color picker). - * @constructor - * Creates a new ColorMenu - * @param {Object} config Configuration options - */ -Ext.menu.ColorMenu = function(config){ - Ext.menu.ColorMenu.superclass.constructor.call(this, config); - this.plain = true; - var ci = new Ext.menu.ColorItem(config); - this.add(ci); - /** - * The {@link Ext.ColorPalette} instance for this ColorMenu - * @type ColorPalette - */ - this.palette = ci.palette; - /** - * @event select - * @param {ColorPalette} palette - * @param {String} color - */ - this.relayEvents(ci, ["select"]); -}; -Ext.extend(Ext.menu.ColorMenu, Ext.menu.Menu); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/menu/DateItem.js b/www/extras/extjs/source/widgets/menu/DateItem.js deleted file mode 100644 index 20ebf84c2..000000000 --- a/www/extras/extjs/source/widgets/menu/DateItem.js +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.menu.DateItem - * @extends Ext.menu.Adapter - * A menu item that wraps the {@link Ext.DatPicker} component. - * @constructor - * Creates a new DateItem - * @param {Object} config Configuration options - */ -Ext.menu.DateItem = function(config){ - Ext.menu.DateItem.superclass.constructor.call(this, new Ext.DatePicker(config), config); - /** The Ext.DatePicker object @type Ext.DatePicker */ - this.picker = this.component; - this.addEvents({select: true}); - - this.picker.on("render", function(picker){ - picker.getEl().swallowEvent("click"); - picker.container.addClass("x-menu-date-item"); - }); - - this.picker.on("select", this.onSelect, this); -}; - -Ext.extend(Ext.menu.DateItem, Ext.menu.Adapter, { - // private - onSelect : function(picker, date){ - this.fireEvent("select", this, date, picker); - Ext.menu.DateItem.superclass.handleClick.call(this); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/menu/DateMenu.js b/www/extras/extjs/source/widgets/menu/DateMenu.js deleted file mode 100644 index aaac0baea..000000000 --- a/www/extras/extjs/source/widgets/menu/DateMenu.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.menu.DateMenu - * @extends Ext.menu.Menu - * A menu containing a {@link Ext.menu.DateItem} component (which provides a date picker). - * @constructor - * Creates a new DateMenu - * @param {Object} config Configuration options - */ -Ext.menu.DateMenu = function(config){ - Ext.menu.DateMenu.superclass.constructor.call(this, config); - this.plain = true; - var di = new Ext.menu.DateItem(config); - this.add(di); - /** - * The {@link Ext.DatePicker} instance for this DateMenu - * @type DatePicker - */ - this.picker = di.picker; - /** - * @event select - * @param {DatePicker} picker - * @param {Date} date - */ - this.relayEvents(di, ["select"]); -}; -Ext.extend(Ext.menu.DateMenu, Ext.menu.Menu); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/menu/Item.js b/www/extras/extjs/source/widgets/menu/Item.js deleted file mode 100644 index 134bef02d..000000000 --- a/www/extras/extjs/source/widgets/menu/Item.js +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.menu.Item - * @extends Ext.menu.BaseItem - * A base class for all menu items that require menu-related functionality (like sub-menus) and are not static - * display items. Item extends the base functionality of {@link Ext.menu.BaseItem} by adding menu-specific - * activation and click handling. - * @constructor - * Creates a new Item - * @param {Object} config Configuration options - */ -Ext.menu.Item = function(config){ - Ext.menu.Item.superclass.constructor.call(this, config); - if(this.menu){ - this.menu = Ext.menu.MenuMgr.get(this.menu); - } -}; -Ext.extend(Ext.menu.Item, Ext.menu.BaseItem, { - /** - * @cfg {String} icon - * The path to an icon to display in this menu item (defaults to Ext.BLANK_IMAGE_URL) - */ - /** - * @cfg {String} itemCls The default CSS class to use for menu items (defaults to "x-menu-item") - */ - itemCls : "x-menu-item", - /** - * @cfg {Boolean} canActivate True if this item can be visually activated (defaults to true) - */ - canActivate : true, - - // private - ctype: "Ext.menu.Item", - - // private - onRender : function(container, position){ - var el = document.createElement("a"); - el.hideFocus = true; - el.unselectable = "on"; - el.href = this.href || "#"; - if(this.hrefTarget){ - el.target = this.hrefTarget; - } - el.className = this.itemCls + (this.menu ? " x-menu-item-arrow" : "") + (this.cls ? " " + this.cls : ""); - el.innerHTML = String.format( - '{1}', - this.icon || Ext.BLANK_IMAGE_URL, this.text); - this.el = el; - Ext.menu.Item.superclass.onRender.call(this, container, position); - }, - - /** - * Sets the text to display in this menu item - * @param {String} text The text to display - */ - setText : function(text){ - this.text = text; - if(this.rendered){ - this.el.update(String.format( - '{1}', - this.icon || Ext.BLANK_IMAGE_URL, this.text)); - this.parentMenu.autoWidth(); - } - }, - - // private - handleClick : function(e){ - if(!this.href){ // if no link defined, stop the event automatically - e.stopEvent(); - } - Ext.menu.Item.superclass.handleClick.apply(this, arguments); - }, - - // private - activate : function(autoExpand){ - if(Ext.menu.Item.superclass.activate.apply(this, arguments)){ - this.focus(); - if(autoExpand){ - this.expandMenu(); - } - } - return true; - }, - - // private - shouldDeactivate : function(e){ - if(Ext.menu.Item.superclass.shouldDeactivate.call(this, e)){ - if(this.menu && this.menu.isVisible()){ - return !this.menu.getEl().getRegion().contains(e.getPoint()); - } - return true; - } - return false; - }, - - // private - deactivate : function(){ - Ext.menu.Item.superclass.deactivate.apply(this, arguments); - this.hideMenu(); - }, - - // private - expandMenu : function(autoActivate){ - if(!this.disabled && this.menu){ - if(!this.menu.isVisible()){ - this.menu.show(this.container, this.parentMenu.subMenuAlign || "tl-tr?", this.parentMenu); - } - if(autoActivate){ - this.menu.tryActivate(0, 1); - } - } - }, - - // private - hideMenu : function(){ - if(this.menu && this.menu.isVisible()){ - this.menu.hide(); - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/menu/Menu.js b/www/extras/extjs/source/widgets/menu/Menu.js deleted file mode 100644 index 11188d10d..000000000 --- a/www/extras/extjs/source/widgets/menu/Menu.js +++ /dev/null @@ -1,508 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.menu.Menu - * @extends Ext.util.Observable - * A menu object. This is the container to which you add all other menu items. Menu can also serve a as a base class - * when you want a specialzed menu based off of another component (like {@link Ext.menu.DateMenu} for example). - * @constructor - * Creates a new Menu - * @param {Object} config Configuration options - */ -Ext.menu.Menu = function(config){ - Ext.apply(this, config); - this.id = this.id || Ext.id(); - this.addEvents({ - /** - * @event beforeshow - * Fires before this menu is displayed - * @param {Ext.menu.Menu} this - */ - beforeshow : true, - /** - * @event beforehide - * Fires before this menu is hidden - * @param {Ext.menu.Menu} this - */ - beforehide : true, - /** - * @event show - * Fires after this menu is displayed - * @param {Ext.menu.Menu} this - */ - show : true, - /** - * @event hide - * Fires after this menu is hidden - * @param {Ext.menu.Menu} this - */ - hide : true, - /** - * @event click - * Fires when this menu is clicked (or when the enter key is pressed while it is active) - * @param {Ext.menu.Menu} this - * @param {String} menuItemId The id of the menu item that was clicked - * @param {Ext.EventObject} e - */ - click : true, - /** - * @event mouseover - * Fires when the mouse is hovering over this menu - * @param {Ext.menu.Menu} this - * @param {Ext.EventObject} e - * @param {String} menuItemId The id of the menu item that the mouse is over - */ - mouseover : true, - /** - * @event mouseout - * Fires when the mouse exits this menu - * @param {Ext.menu.Menu} this - * @param {Ext.EventObject} e - * @param {String} menuItemId The id of the menu item that the mouse has exited - */ - mouseout : true, - /** - * @event itemclick - * Fires when a menu item contained in this menu is clicked - * @param {Ext.menu.BaseItem} baseItem The BaseItem that was clicked - * @param {Ext.EventObject} e - */ - itemclick: true - }); - Ext.menu.MenuMgr.register(this); - var mis = this.items; - this.items = new Ext.util.MixedCollection(); - if(mis){ - this.add.apply(this, mis); - } -}; - -Ext.extend(Ext.menu.Menu, Ext.util.Observable, { - /** - * @cfg {Number} minWidth The minimum width of the menu in pixels (defaults to 120) - */ - minWidth : 120, - /** - * @cfg {Boolean/String} shadow True or "sides" for the default effect, "frame" for 4-way shadow, and "drop" - * for bottom-right shadow (defaults to "sides") - */ - shadow : "sides", - /** - * @cfg {String} subMenuAlign The {@link Ext.Element#alignTo) anchor position value to use for submenus of - * this menu (defaults to "tl-tr?") - */ - subMenuAlign : "tl-tr?", - /** - * @cfg {String} defaultAlign The default {@link Ext.Element#alignTo) anchor position value for this menu - * relative to its element of origin (defaults to "tl-bl?") - */ - defaultAlign : "tl-bl?", - /** - * @cfg {Boolean} allowOtherMenus True to allow multiple menus to be displayed at the same time (defaults to false) - */ - allowOtherMenus : false, - - // private - render : function(){ - if(this.el){ - return; - } - var el = this.el = new Ext.Layer({ - cls: "x-menu", - shadow:this.shadow, - constrain: false, - parentEl: this.parentEl || document.body, - zindex:15000 - }); - - this.keyNav = new Ext.menu.MenuNav(this); - - if(this.plain){ - el.addClass("x-menu-plain"); - } - if(this.cls){ - el.addClass(this.cls); - } - // generic focus element - this.focusEl = el.createChild({ - tag: "a", cls: "x-menu-focus", href: "#", onclick: "return false;", tabIndex:"-1" - }); - var ul = el.createChild({tag: "ul", cls: "x-menu-list"}); - ul.on("click", this.onClick, this); - ul.on("mouseover", this.onMouseOver, this); - ul.on("mouseout", this.onMouseOut, this); - this.items.each(function(item){ - var li = document.createElement("li"); - li.className = "x-menu-list-item"; - ul.dom.appendChild(li); - item.render(li, this); - }, this); - this.ul = ul; - this.autoWidth(); - }, - - // private - autoWidth : function(){ - var el = this.el, ul = this.ul; - if(!el){ - return; - } - var w = this.width; - if(w){ - el.setWidth(w); - }else if(Ext.isIE){ - el.setWidth(this.minWidth); - var t = el.dom.offsetWidth; // force recalc - el.setWidth(ul.getWidth()+el.getFrameWidth("lr")); - } - }, - - // private - delayAutoWidth : function(){ - if(this.rendered){ - if(!this.awTask){ - this.awTask = new Ext.util.DelayedTask(this.autoWidth, this); - } - this.awTask.delay(20); - } - }, - - // private - findTargetItem : function(e){ - var t = e.getTarget(".x-menu-list-item", this.ul, true); - if(t && t.menuItemId){ - return this.items.get(t.menuItemId); - } - }, - - // private - onClick : function(e){ - var t; - if(t = this.findTargetItem(e)){ - t.onClick(e); - this.fireEvent("click", this, t, e); - } - }, - - // private - setActiveItem : function(item, autoExpand){ - if(item != this.activeItem){ - if(this.activeItem){ - this.activeItem.deactivate(); - } - this.activeItem = item; - item.activate(autoExpand); - }else if(autoExpand){ - item.expandMenu(); - } - }, - - // private - tryActivate : function(start, step){ - var items = this.items; - for(var i = start, len = items.length; i >= 0 && i < len; i+= step){ - var item = items.get(i); - if(!item.disabled && item.canActivate){ - this.setActiveItem(item, false); - return item; - } - } - return false; - }, - - // private - onMouseOver : function(e){ - var t; - if(t = this.findTargetItem(e)){ - if(t.canActivate && !t.disabled){ - this.setActiveItem(t, true); - } - } - this.fireEvent("mouseover", this, e, t); - }, - - // private - onMouseOut : function(e){ - var t; - if(t = this.findTargetItem(e)){ - if(t == this.activeItem && t.shouldDeactivate(e)){ - this.activeItem.deactivate(); - delete this.activeItem; - } - } - this.fireEvent("mouseout", this, e, t); - }, - - /** - * Read-only. Returns true if the menu is currently displayed, else false. - * @type Boolean - */ - isVisible : function(){ - return this.el && this.el.isVisible(); - }, - - /** - * Displays this menu relative to another element - * @param {String/HTMLElement/Ext.Element} element The element to align to - * @param {String} position (optional) The {@link Ext.Element#alignTo} anchor position to use in aligning to - * the element (defaults to this.defaultAlign) - * @param {Ext.menu.Menu} parentMenu (optional) This menu's parent menu, if applicable (defaults to undefined) - */ - show : function(el, pos, parentMenu){ - this.parentMenu = parentMenu; - if(!this.el){ - this.render(); - } - this.fireEvent("beforeshow", this); - this.showAt(this.el.getAlignToXY(el, pos || this.defaultAlign), parentMenu, false); - }, - - /** - * Displays this menu at a specific xy position - * @param {Array} xyPosition Contains X & Y [x, y] values for the position at which to show the menu (coordinates are page-based) - * @param {Ext.menu.Menu} parentMenu (optional) This menu's parent menu, if applicable (defaults to undefined) - */ - showAt : function(xy, parentMenu, /* private: */_fireBefore){ - this.parentMenu = parentMenu; - if(!this.el){ - this.render(); - } - if(_fireBefore !== false){ - this.fireEvent("beforeshow", this); - } - this.el.setXY(xy); - this.el.show(); - this.focusEl.focus.defer(50, this.focusEl); - this.fireEvent("show", this); - }, - - /** - * Hides this menu and optionally all parent menus - * @param {Boolean} deep (optional) True to hide all parent menus recursively, if any (defaults to false) - */ - hide : function(deep){ - if(this.el && this.isVisible()){ - this.fireEvent("beforehide", this); - if(this.activeItem){ - this.activeItem.deactivate(); - this.activeItem = null; - } - this.el.hide(); - this.fireEvent("hide", this); - } - if(deep === true && this.parentMenu){ - this.parentMenu.hide(true); - } - }, - - /** - * Addds one or more items of any type supported by the Menu class, or that can be converted into menu items. - * Any of the following are valid: - *
          - *
        • Any menu item object based on {@link Ext.menu.Item}
        • - *
        • An HTMLElement object which will be converted to a menu item
        • - *
        • A menu item config object that will be created as a new menu item
        • - *
        • A string, which can either be '-' or 'separator' to add a menu separator, otherwise - * it will be converted into a {@link Ext.menu.TextItem} and added
        • - *
        - * Usage: - *
        
        -// Create the menu
        -var menu = new Ext.menu.Menu();
        -
        -// Create a menu item to add by reference
        -var menuItem = new Ext.menu.Item({ text: 'New Item!' });
        -
        -// Add a bunch of items at once using different methods.
        -// Only the last item added will be returned.
        -var item = menu.add(
        -    menuItem,                // add existing item by ref
        -    'Dynamic Item',          // new TextItem
        -    '-',                     // new separator
        -    { text: 'Config Item' }  // new item by config
        -);
        -
        - * @param {Mixed} args One or more menu items, menu item configs or other objects that can be converted to menu items - * @return {Ext.menu.Item} The menu item that was added, or the last one if multiple items were added - */ - add : function(){ - var a = arguments, l = a.length, item; - for(var i = 0; i < l; i++){ - var el = a[i]; - if(el.render){ // some kind of Item - item = this.addItem(el); - }else if(typeof el == "string"){ // string - if(el == "separator" || el == "-"){ - item = this.addSeparator(); - }else{ - item = this.addText(el); - } - }else if(el.tagName || el.el){ // element - item = this.addElement(el); - }else if(typeof el == "object"){ // must be menu item config? - item = this.addMenuItem(el); - } - } - return item; - }, - - /** - * Returns this menu's underlying {@link Ext.Element} object - * @return {Ext.Element} The element - */ - getEl : function(){ - if(!this.el){ - this.render(); - } - return this.el; - }, - - /** - * Adds a separator bar to the menu - * @return {Ext.menu.Item} The menu item that was added - */ - addSeparator : function(){ - return this.addItem(new Ext.menu.Separator()); - }, - - /** - * Adds an {@link Ext.Element} object to the menu - * @param {String/HTMLElement/Ext.Element} el The element or DOM node to add, or its id - * @return {Ext.menu.Item} The menu item that was added - */ - addElement : function(el){ - return this.addItem(new Ext.menu.BaseItem(el)); - }, - - /** - * Adds an existing object based on {@link Ext.menu.Item} to the menu - * @param {Ext.menu.Item} item The menu item to add - * @return {Ext.menu.Item} The menu item that was added - */ - addItem : function(item){ - this.items.add(item); - if(this.ul){ - var li = document.createElement("li"); - li.className = "x-menu-list-item"; - this.ul.dom.appendChild(li); - item.render(li, this); - this.delayAutoWidth(); - } - return item; - }, - - /** - * Creates a new {@link Ext.menu.Item} based an the supplied config object and adds it to the menu - * @param {Object} config A MenuItem config object - * @return {Ext.menu.Item} The menu item that was added - */ - addMenuItem : function(config){ - if(!(config instanceof Ext.menu.Item)){ - config = new Ext.menu.Item(config); - } - return this.addItem(config); - }, - - /** - * Creates a new {@link Ext.menu.TextItem} with the supplied text and adds it to the menu - * @param {String} text The text to display in the menu item - * @return {Ext.menu.Item} The menu item that was added - */ - addText : function(text){ - return this.addItem(new Ext.menu.TextItem(text)); - }, - - /** - * Inserts an existing object based on {@link Ext.menu.Item} to the menu at a specified index - * @param {Number} index The index in the menu's list of current items where the new item should be inserted - * @param {Ext.menu.Item} item The menu item to add - * @return {Ext.menu.Item} The menu item that was added - */ - insert : function(index, item){ - this.items.insert(index, item); - if(this.ul){ - var li = document.createElement("li"); - li.className = "x-menu-list-item"; - this.ul.dom.insertBefore(li, this.ul.dom.childNodes[index]); - item.render(li, this); - this.delayAutoWidth(); - } - return item; - }, - - /** - * Removes an {@link Ext.menu.Item} from the menu and destroys the object - * @param {Ext.menu.Item} item The menu item to remove - */ - remove : function(item){ - this.items.removeKey(item.id); - item.destroy(); - }, - - /** - * Removes and destroys all items in the menu - */ - removeAll : function(){ - var f; - while(f = this.items.first()){ - this.remove(f); - } - } -}); - -// MenuNav is a private utility class used internally by the Menu -Ext.menu.MenuNav = function(menu){ - Ext.menu.MenuNav.superclass.constructor.call(this, menu.el); - this.scope = this.menu = menu; -}; - -Ext.extend(Ext.menu.MenuNav, Ext.KeyNav, { - doRelay : function(e, h){ - var k = e.getKey(); - if(!this.menu.activeItem && e.isNavKeyPress() && k != e.SPACE && k != e.RETURN){ - this.menu.tryActivate(0, 1); - return false; - } - return h.call(this.scope || this, e, this.menu); - }, - - up : function(e, m){ - if(!m.tryActivate(m.items.indexOf(m.activeItem)-1, -1)){ - m.tryActivate(m.items.length-1, -1); - } - }, - - down : function(e, m){ - if(!m.tryActivate(m.items.indexOf(m.activeItem)+1, 1)){ - m.tryActivate(0, 1); - } - }, - - right : function(e, m){ - if(m.activeItem){ - m.activeItem.expandMenu(true); - } - }, - - left : function(e, m){ - m.hide(); - if(m.parentMenu && m.parentMenu.activeItem){ - m.parentMenu.activeItem.activate(); - } - }, - - enter : function(e, m){ - if(m.activeItem){ - e.stopPropagation(); - m.activeItem.onClick(e); - m.fireEvent("click", this, m.activeItem); - return true; - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/menu/MenuMgr.js b/www/extras/extjs/source/widgets/menu/MenuMgr.js deleted file mode 100644 index 3ee740003..000000000 --- a/www/extras/extjs/source/widgets/menu/MenuMgr.js +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.menu.MenuMgr - * Provides a common registry of all menu items on a page so that they can be easily accessed by id. - * @singleton - */ -Ext.menu.MenuMgr = function(){ - var menus, active, groups = {}, attached = false, lastShow = new Date(); - - // private - called when first menu is created - function init(){ - menus = {}, active = new Ext.util.MixedCollection(); - Ext.get(document).addKeyListener(27, function(){ - if(active.length > 0){ - hideAll(); - } - }); - } - - // private - function hideAll(){ - if(active.length > 0){ - var c = active.clone(); - c.each(function(m){ - m.hide(); - }); - } - } - - // private - function onHide(m){ - active.remove(m); - if(active.length < 1){ - Ext.get(document).un("mousedown", onMouseDown); - attached = false; - } - } - - // private - function onShow(m){ - var last = active.last(); - lastShow = new Date(); - active.add(m); - if(!attached){ - Ext.get(document).on("mousedown", onMouseDown); - attached = true; - } - if(m.parentMenu){ - m.getEl().setZIndex(parseInt(m.parentMenu.getEl().getStyle("z-index"), 10) + 3); - m.parentMenu.activeChild = m; - }else if(last && last.isVisible()){ - m.getEl().setZIndex(parseInt(last.getEl().getStyle("z-index"), 10) + 3); - } - } - - // private - function onBeforeHide(m){ - if(m.activeChild){ - m.activeChild.hide(); - } - if(m.autoHideTimer){ - clearTimeout(m.autoHideTimer); - delete m.autoHideTimer; - } - } - - // private - function onBeforeShow(m){ - var pm = m.parentMenu; - if(!pm && !m.allowOtherMenus){ - hideAll(); - }else if(pm && pm.activeChild){ - pm.activeChild.hide(); - } - } - - // private - function onMouseDown(e){ - if(lastShow.getElapsed() > 50 && active.length > 0 && !e.getTarget(".x-menu")){ - hideAll(); - } - } - - // private - function onBeforeCheck(mi, state){ - if(state){ - var g = groups[mi.group]; - for(var i = 0, l = g.length; i < l; i++){ - if(g[i] != mi){ - g[i].setChecked(false); - } - } - } - } - - return { - - /** - * Hides all menus that are currently visible - */ - hideAll : function(){ - hideAll(); - }, - - // private - register : function(menu){ - if(!menus){ - init(); - } - menus[menu.id] = menu; - menu.on("beforehide", onBeforeHide); - menu.on("hide", onHide); - menu.on("beforeshow", onBeforeShow); - menu.on("show", onShow); - var g = menu.group; - if(g && menu.events["checkchange"]){ - if(!groups[g]){ - groups[g] = []; - } - groups[g].push(menu); - menu.on("checkchange", onCheck); - } - }, - - /** - * Returns a {@link Ext.menu.Menu} object - * @param {String/Object} menu The string menu id, an existing menu object reference, or a Menu config that will - * be used to generate and return a new Menu instance. - */ - get : function(menu){ - if(typeof menu == "string"){ // menu id - return menus[menu]; - }else if(menu.events){ // menu instance - return menu; - }else{ // otherwise, must be a config - return new Ext.menu.Menu(menu); - } - }, - - // private - unregister : function(menu){ - delete menus[menu.id]; - menu.un("beforehide", onBeforeHide); - menu.un("hide", onHide); - menu.un("beforeshow", onBeforeShow); - menu.un("show", onShow); - var g = menu.group; - if(g && menu.events["checkchange"]){ - groups[g].remove(menu); - menu.un("checkchange", onCheck); - } - }, - - // private - registerCheckable : function(menuItem){ - var g = menuItem.group; - if(g){ - if(!groups[g]){ - groups[g] = []; - } - groups[g].push(menuItem); - menuItem.on("beforecheckchange", onBeforeCheck); - } - }, - - // private - unregisterCheckable : function(menuItem){ - var g = menuItem.group; - if(g){ - groups[g].remove(menuItem); - menuItem.un("beforecheckchange", onBeforeCheck); - } - } - }; -}(); diff --git a/www/extras/extjs/source/widgets/menu/Separator.js b/www/extras/extjs/source/widgets/menu/Separator.js deleted file mode 100644 index 327203ab8..000000000 --- a/www/extras/extjs/source/widgets/menu/Separator.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.menu.Separator - * @extends Ext.menu.BaseItem - * Adds a separator bar to a menu, used to divide logical groups of menu items. Generally you will - * add one of these by using "-" in you call to add() or in your items config rather than creating one directly. - * @constructor - * @param {Object} config Configuration options - */ -Ext.menu.Separator = function(config){ - Ext.menu.Separator.superclass.constructor.call(this, config); -}; - -Ext.extend(Ext.menu.Separator, Ext.menu.BaseItem, { - /** - * @cfg {String} itemCls The default CSS class to use for separators (defaults to "x-menu-sep") - */ - itemCls : "x-menu-sep", - /** - * @cfg {Boolean} hideOnClick True to hide the containing menu after this item is clicked (defaults to false) - */ - hideOnClick : false, - - // private - onRender : function(li){ - var s = document.createElement("span"); - s.className = this.itemCls; - s.innerHTML = " "; - this.el = s; - li.addClass("x-menu-sep-li"); - Ext.menu.Separator.superclass.onRender.apply(this, arguments); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/menu/TextItem.js b/www/extras/extjs/source/widgets/menu/TextItem.js deleted file mode 100644 index c7561f0ee..000000000 --- a/www/extras/extjs/source/widgets/menu/TextItem.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.menu.TextItem - * @extends Ext.menu.BaseItem - * Adds a static text string to a menu, usually used as either a heading or group separator. - * @constructor - * Creates a new TextItem - * @param {String} text The text to display - */ -Ext.menu.TextItem = function(text){ - this.text = text; - Ext.menu.TextItem.superclass.constructor.call(this); -}; - -Ext.extend(Ext.menu.TextItem, Ext.menu.BaseItem, { - /** - * @cfg {Boolean} hideOnClick True to hide the containing menu after this item is clicked (defaults to false) - */ - hideOnClick : false, - /** - * @cfg {String} itemCls The default CSS class to use for text items (defaults to "x-menu-text") - */ - itemCls : "x-menu-text", - - // private - onRender : function(){ - var s = document.createElement("span"); - s.className = this.itemCls; - s.innerHTML = this.text; - this.el = s; - Ext.menu.TextItem.superclass.onRender.apply(this, arguments); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/tree/AsyncTreeNode.js b/www/extras/extjs/source/widgets/tree/AsyncTreeNode.js deleted file mode 100644 index cd36409c2..000000000 --- a/www/extras/extjs/source/widgets/tree/AsyncTreeNode.js +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.tree.AsyncTreeNode - * @extends Ext.tree.TreeNode - * @cfg {TreeLoader} loader A TreeLoader to be used by this node (defaults to the loader defined on the tree) - * @constructor - * @param {Object/String} attributes The attributes/config for the node or just a string with the text for the node - */ - Ext.tree.AsyncTreeNode = function(config){ - this.loaded = false; - this.loading = false; - Ext.tree.AsyncTreeNode.superclass.constructor.apply(this, arguments); - /** - * @event beforeload - * Fires before this node is loaded, return false to cancel - * @param {Node} this This node - */ - this.addEvents({'beforeload':true, 'load': true}); - /** - * @event load - * Fires when this node is loaded - * @param {Node} this This node - */ - /** - * The loader used by this node (defaults to using the tree's defined loader) - * @type TreeLoader - * @property loader - */ -}; -Ext.extend(Ext.tree.AsyncTreeNode, Ext.tree.TreeNode, { - expand : function(deep, anim, callback){ - if(this.loading){ // if an async load is already running, waiting til it's done - var timer; - var f = function(){ - if(!this.loading){ // done loading - clearInterval(timer); - this.expand(deep, anim, callback); - } - }.createDelegate(this); - timer = setInterval(f, 200); - return; - } - if(!this.loaded){ - if(this.fireEvent("beforeload", this) === false){ - return; - } - this.loading = true; - this.ui.beforeLoad(this); - var loader = this.loader || this.attributes.loader || this.getOwnerTree().getLoader(); - if(loader){ - loader.load(this, this.loadComplete.createDelegate(this, [deep, anim, callback])); - return; - } - } - Ext.tree.AsyncTreeNode.superclass.expand.call(this, deep, anim, callback); - }, - - /** - * Returns true if this node is currently loading - * @return {Boolean} - */ - isLoading : function(){ - return this.loading; - }, - - loadComplete : function(deep, anim, callback){ - this.loading = false; - this.loaded = true; - this.ui.afterLoad(this); - this.fireEvent("load", this); - this.expand(deep, anim, callback); - }, - - /** - * Returns true if this node has been loaded - * @return {Boolean} - */ - isLoaded : function(){ - return this.loaded; - }, - - hasChildNodes : function(){ - if(!this.isLeaf() && !this.loaded){ - return true; - }else{ - return Ext.tree.AsyncTreeNode.superclass.hasChildNodes.call(this); - } - }, - - /** - * Trigger a reload for this node - * @param {Function} callback - */ - reload : function(callback){ - this.collapse(false, false); - while(this.firstChild){ - this.removeChild(this.firstChild); - } - this.childrenRendered = false; - this.loaded = false; - if(this.isHiddenRoot()){ - this.expanded = false; - } - this.expand(false, false, callback); - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/tree/TreeDragZone.js b/www/extras/extjs/source/widgets/tree/TreeDragZone.js deleted file mode 100644 index 116179122..000000000 --- a/www/extras/extjs/source/widgets/tree/TreeDragZone.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -if(Ext.dd.DragZone){ -Ext.tree.TreeDragZone = function(tree, config){ - Ext.tree.TreeDragZone.superclass.constructor.call(this, tree.getEl(), config); - this.tree = tree; -}; - -Ext.extend(Ext.tree.TreeDragZone, Ext.dd.DragZone, { - ddGroup : "TreeDD", - - onBeforeDrag : function(data, e){ - var n = data.node; - return n && n.draggable && !n.disabled; - }, - - onInitDrag : function(e){ - var data = this.dragData; - this.tree.getSelectionModel().select(data.node); - this.proxy.update(""); - data.node.ui.appendDDGhost(this.proxy.ghost.dom); - this.tree.fireEvent("startdrag", this.tree, data.node, e); - }, - - getRepairXY : function(e, data){ - return data.node.ui.getDDRepairXY(); - }, - - onEndDrag : function(data, e){ - this.tree.fireEvent("enddrag", this.tree, data.node, e); - }, - - onValidDrop : function(dd, e, id){ - this.tree.fireEvent("dragdrop", this.tree, this.dragData.node, dd, e); - this.hideProxy(); - }, - - beforeInvalidDrop : function(e, id){ - // this scrolls the original position back into view - var sm = this.tree.getSelectionModel(); - sm.clearSelections(); - sm.select(this.dragData.node); - } -}); -} \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/tree/TreeDropZone.js b/www/extras/extjs/source/widgets/tree/TreeDropZone.js deleted file mode 100644 index a2507bfb7..000000000 --- a/www/extras/extjs/source/widgets/tree/TreeDropZone.js +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -if(Ext.dd.DropZone){ - -Ext.tree.TreeDropZone = function(tree, config){ - this.allowParentInsert = false; - this.allowContainerDrop = false; - this.appendOnly = false; - Ext.tree.TreeDropZone.superclass.constructor.call(this, tree.container, config); - this.tree = tree; - this.lastInsertClass = "x-tree-no-status"; - this.dragOverData = {}; -}; - -Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { - ddGroup : "TreeDD", - - expandDelay : 1000, - - expandNode : function(node){ - if(node.hasChildNodes() && !node.isExpanded()){ - node.expand(false, null, this.triggerCacheRefresh.createDelegate(this)); - } - }, - - queueExpand : function(node){ - this.expandProcId = this.expandNode.defer(this.expandDelay, this, [node]); - }, - - cancelExpand : function(){ - if(this.expandProcId){ - clearTimeout(this.expandProcId); - this.expandProcId = false; - } - }, - - isValidDropPoint : function(n, pt, dd, e, data){ - if(!n || !data){ return false; } - var targetNode = n.node; - var dropNode = data.node; - // default drop rules - if(!(targetNode && targetNode.isTarget && pt)){ - return false; - } - if(pt == "append" && targetNode.allowChildren === false){ - return false; - } - if((pt == "above" || pt == "below") && (targetNode.parentNode && targetNode.parentNode.allowChildren === false)){ - return false; - } - if(dropNode && (targetNode == dropNode || dropNode.contains(targetNode))){ - return false; - } - // reuse the object - var overEvent = this.dragOverData; - overEvent.tree = this.tree; - overEvent.target = targetNode; - overEvent.data = data; - overEvent.point = pt; - overEvent.source = dd; - overEvent.rawEvent = e; - overEvent.dropNode = dropNode; - overEvent.cancel = false; - var result = this.tree.fireEvent("nodedragover", overEvent); - return overEvent.cancel === false && result !== false; - }, - - getDropPoint : function(e, n, dd){ - var tn = n.node; - if(tn.isRoot){ - return tn.allowChildren !== false ? "append" : false; // always append for root - } - var dragEl = n.ddel; - var t = Ext.lib.Dom.getY(dragEl), b = t + dragEl.offsetHeight; - var y = Ext.lib.Event.getPageY(e); - var noAppend = tn.allowChildren === false || tn.isLeaf(); - if(this.appendOnly || tn.parentNode.allowChildren === false){ - return noAppend ? false : "append"; - } - var noBelow = false; - if(!this.allowParentInsert){ - noBelow = tn.hasChildNodes() && tn.isExpanded(); - } - var q = (b - t) / (noAppend ? 2 : 3); - if(y >= t && y < (t + q)){ - return "above"; - }else if(!noBelow && (noAppend || y >= b-q && y <= b)){ - return "below"; - }else{ - return "append"; - } - }, - - onNodeEnter : function(n, dd, e, data){ - this.cancelExpand(); - }, - - onNodeOver : function(n, dd, e, data){ - var pt = this.getDropPoint(e, n, dd); - var node = n.node; - - // auto node expand check - if(!this.expandProcId && pt == "append" && node.hasChildNodes() && !n.node.isExpanded()){ - this.queueExpand(node); - }else if(pt != "append"){ - this.cancelExpand(); - } - - // set the insert point style on the target node - var returnCls = this.dropNotAllowed; - if(this.isValidDropPoint(n, pt, dd, e, data)){ - if(pt){ - var el = n.ddel; - var cls; - if(pt == "above"){ - returnCls = n.node.isFirst() ? "x-tree-drop-ok-above" : "x-tree-drop-ok-between"; - cls = "x-tree-drag-insert-above"; - }else if(pt == "below"){ - returnCls = n.node.isLast() ? "x-tree-drop-ok-below" : "x-tree-drop-ok-between"; - cls = "x-tree-drag-insert-below"; - }else{ - returnCls = "x-tree-drop-ok-append"; - cls = "x-tree-drag-append"; - } - if(this.lastInsertClass != cls){ - Ext.fly(el).replaceClass(this.lastInsertClass, cls); - this.lastInsertClass = cls; - } - } - } - return returnCls; - }, - - onNodeOut : function(n, dd, e, data){ - this.cancelExpand(); - this.removeDropIndicators(n); - }, - - onNodeDrop : function(n, dd, e, data){ - var point = this.getDropPoint(e, n, dd); - var targetNode = n.node; - targetNode.ui.startDrop(); - if(!this.isValidDropPoint(n, point, dd, e, data)){ - targetNode.ui.endDrop(); - return false; - } - // first try to find the drop node - var dropNode = data.node || (dd.getTreeNode ? dd.getTreeNode(data, targetNode, point, e) : null); - var dropEvent = { - tree : this.tree, - target: targetNode, - data: data, - point: point, - source: dd, - rawEvent: e, - dropNode: dropNode, - cancel: !dropNode - }; - var retval = this.tree.fireEvent("beforenodedrop", dropEvent); - if(retval === false || dropEvent.cancel === true || !dropEvent.dropNode){ - targetNode.ui.endDrop(); - return false; - } - // allow target changing - targetNode = dropEvent.target; - if(point == "append" && !targetNode.isExpanded()){ - targetNode.expand(false, null, function(){ - this.completeDrop(dropEvent); - }.createDelegate(this)); - }else{ - this.completeDrop(dropEvent); - } - return true; - }, - - completeDrop : function(de){ - var ns = de.dropNode, p = de.point, t = de.target; - if(!(ns instanceof Array)){ - ns = [ns]; - } - var n; - for(var i = 0, len = ns.length; i < len; i++){ - n = ns[i]; - if(p == "above"){ - t.parentNode.insertBefore(n, t); - }else if(p == "below"){ - t.parentNode.insertBefore(n, t.nextSibling); - }else{ - t.appendChild(n); - } - } - n.ui.focus(); - if(this.tree.hlDrop){ - n.ui.highlight(); - } - t.ui.endDrop(); - this.tree.fireEvent("nodedrop", de); - }, - - afterNodeMoved : function(dd, data, e, targetNode, dropNode){ - if(this.tree.hlDrop){ - dropNode.ui.focus(); - dropNode.ui.highlight(); - } - this.tree.fireEvent("nodedrop", this.tree, targetNode, data, dd, e); - }, - - getTree : function(){ - return this.tree; - }, - - removeDropIndicators : function(n){ - if(n && n.ddel){ - var el = n.ddel; - Ext.fly(el).removeClass([ - "x-tree-drag-insert-above", - "x-tree-drag-insert-below", - "x-tree-drag-append"]); - this.lastInsertClass = "_noclass"; - } - }, - - beforeDragDrop : function(target, e, id){ - this.cancelExpand(); - return true; - }, - - afterRepair : function(data){ - if(data && Ext.enableFx){ - data.node.ui.highlight(); - } - this.hideProxy(); - } -}); - -} \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/tree/TreeEditor.js b/www/extras/extjs/source/widgets/tree/TreeEditor.js deleted file mode 100644 index 5ea0858ac..000000000 --- a/www/extras/extjs/source/widgets/tree/TreeEditor.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -Ext.tree.TreeEditor = function(tree, config){ - config = config || {}; - // config can either be a prebuilt field, or a field config - var field = config.events ? config : new Ext.form.TextField(config); - Ext.tree.TreeEditor.superclass.constructor.call(this, field); - - this.tree = tree; - - tree.on('beforeclick', this.beforeNodeClick, this); - tree.el.on('mousedown', this.hide, this); - this.on('complete', this.updateNode, this); - this.on('beforestartedit', this.fitToTree, this); - this.on('startedit', this.bindScroll, this, {delay:10}); - this.on('specialkey', this.onSpecialKey, this); -}; - -Ext.extend(Ext.tree.TreeEditor, Ext.Editor, { - alignment: "l-l", - autoSize: false, - hideEl : false, - cls: "x-small-editor x-tree-editor", - shim:false, - shadow:"frame", - maxWidth: 250, - - fitToTree : function(ed, el){ - var td = this.tree.el.dom, nd = el.dom; - if(td.scrollLeft > nd.offsetLeft){ // ensure the node left point is visible - td.scrollLeft = nd.offsetLeft; - } - var w = Math.min( - this.maxWidth, - (td.clientWidth > 20 ? td.clientWidth : td.offsetWidth) - Math.max(0, nd.offsetLeft-td.scrollLeft) - /*cushion*/5); - this.setSize(w, ''); - }, - - triggerEdit : function(node){ - this.completeEdit(); - this.editNode = node; - this.startEdit(node.ui.textNode, node.text); - }, - - bindScroll : function(){ - this.tree.el.on('scroll', this.cancelEdit, this); - }, - - beforeNodeClick : function(node){ - if(this.tree.getSelectionModel().isSelected(node)){ - this.triggerEdit(node); - return false; - } - }, - - updateNode : function(ed, value){ - this.tree.el.un('scroll', this.cancelEdit, this); - this.editNode.setText(value); - }, - - onSpecialKey : function(field, e){ - var k = e.getKey(); - if(k == e.ESC){ - this.cancelEdit(); - e.stopEvent(); - }else if(k == e.ENTER && !e.hasModifier()){ - this.completeEdit(); - e.stopEvent(); - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/tree/TreeFilter.js b/www/extras/extjs/source/widgets/tree/TreeFilter.js deleted file mode 100644 index 8912552e1..000000000 --- a/www/extras/extjs/source/widgets/tree/TreeFilter.js +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * This doesn't update the indent (lines) or expand collapse icons of the nodes - */ -Ext.tree.TreeFilter = function(tree, config){ - this.tree = tree; - this.filtered = {}; - Ext.apply(this, config, { - clearBlank:false, - reverse:false, - autoClear:false, - remove:false - }); -}; - -Ext.tree.TreeFilter.prototype = { - /** - * Filter the data by a specific attribute. - * @param {String/RegExp} value Either string that the attribute value - * should start with or a RegExp to test against the attribute - * @param {String} attr (optional) The attribute passed in your node's attributes collection. Defaults to "text". - * @param {TreeNode} startNode (optional) The node to start the filter at. - */ - filter : function(value, attr, startNode){ - attr = attr || "text"; - var f; - if(typeof value == "string"){ - var vlen = value.length; - // auto clear empty filter - if(vlen == 0 && this.clearBlank){ - this.clearFilter(); - return; - } - value = value.toLowerCase(); - f = function(n){ - return n.attributes[attr].substr(0, vlen).toLowerCase() == value; - }; - }else if(value.exec){ // regex? - f = function(n){ - return value.test(n.attributes[attr]); - }; - }else{ - throw 'Illegal filter type, must be string or regex'; - } - this.filterBy(f, null, startNode); - }, - - /** - * Filter by a function. The passed function will be called with each - * node in the tree (or from the startNode). If the function returns true, the node is kept - * otherwise it is filtered. If a node is filtered, its children are also filtered. - * @param {Function} fn The filter function - * @param {Object} scope (optional) The scope of the function (defaults to the current node) - */ - filterBy : function(fn, scope, startNode){ - startNode = startNode || this.tree.root; - if(this.autoClear){ - this.clearFilter(); - } - var af = this.filtered, rv = this.reverse; - var f = function(n){ - if(n == startNode){ - return true; - } - if(af[n.id]){ - return false; - } - var m = fn.call(scope || n, n); - if(!m || rv){ - af[n.id] = n; - n.ui.hide(); - return false; - } - return true; - }; - startNode.cascade(f); - if(this.remove){ - for(var id in af){ - if(typeof id != "function"){ - var n = af[id]; - if(n && n.parentNode){ - n.parentNode.removeChild(n); - } - } - } - } - }, - - /** - * Clears the current filter. Note: with the "remove" option - * set a filter cannot be cleared. - */ - clear : function(){ - var t = this.tree; - var af = this.filtered; - for(var id in af){ - if(typeof id != "function"){ - var n = af[id]; - if(n){ - n.ui.show(); - } - } - } - this.filtered = {}; - } -}; diff --git a/www/extras/extjs/source/widgets/tree/TreeLoader.js b/www/extras/extjs/source/widgets/tree/TreeLoader.js deleted file mode 100644 index fac0d449f..000000000 --- a/www/extras/extjs/source/widgets/tree/TreeLoader.js +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.tree.TreeLoader - */ -Ext.tree.TreeLoader = function(config){ - this.baseParams = {}; - this.requestMethod = "POST"; - Ext.apply(this, config); - - this.addEvents({ - "beforeload" : true, - "load" : true, - "loadexception" : true - }); -}; - -Ext.extend(Ext.tree.TreeLoader, Ext.util.Observable, { - uiProviders : {}, - clearOnLoad : true, - load : function(node, callback){ - if(this.clearOnLoad){ - while(node.firstChild){ - node.removeChild(node.firstChild); - } - } - if(node.attributes.children){ // preloaded json children - var cs = node.attributes.children; - for(var i = 0, len = cs.length; i < len; i++){ - node.appendChild(this.createNode(cs[i])); - } - if(typeof callback == "function"){ - callback(); - } - }else if(this.dataUrl){ - this.requestData(node, callback); - } - }, - - getParams: function(node){ - var buf = [], bp = this.baseParams; - for(var key in bp){ - if(typeof bp[key] != "function"){ - buf.push(encodeURIComponent(key), "=", encodeURIComponent(bp[key]), "&"); - } - } - buf.push("node=", encodeURIComponent(node.id)); - return buf.join(""); - }, - - requestData : function(node, callback){ - if(this.fireEvent("beforeload", this, node, callback) !== false){ - var params = this.getParams(node); - var cb = { - success: this.handleResponse, - failure: this.handleFailure, - scope: this, - argument: {callback: callback, node: node} - }; - this.transId = Ext.lib.Ajax.request(this.requestMethod, this.dataUrl, cb, params); - }else{ - // if the load is cancelled, make sure we notify - // the node that we are done - if(typeof callback == "function"){ - callback(); - } - } - }, - - isLoading : function(){ - return this.transId ? true : false; - }, - - abort : function(){ - if(this.isLoading()){ - Ext.lib.Ajax.abort(this.transId); - } - }, - - /** - * Override this function for custom TreeNode node implementation - */ - createNode : function(attr){ - if(this.applyLoader !== false){ - attr.loader = this; - } - if(typeof attr.uiProvider == 'string'){ - attr.uiProvider = this.uiProviders[attr.uiProvider] || eval(attr.uiProvider); - } - return(attr.leaf ? - new Ext.tree.TreeNode(attr) : - new Ext.tree.AsyncTreeNode(attr)); - }, - - processResponse : function(response, node, callback){ - var json = response.responseText; - try { - var o = eval("("+json+")"); - for(var i = 0, len = o.length; i < len; i++){ - var n = this.createNode(o[i]); - if(n){ - node.appendChild(n); - } - } - if(typeof callback == "function"){ - callback(this, node); - } - }catch(e){ - this.handleFailure(response); - } - }, - - handleResponse : function(response){ - this.transId = false; - var a = response.argument; - this.processResponse(response, a.node, a.callback); - this.fireEvent("load", this, a.node, response); - }, - - handleFailure : function(response){ - this.transId = false; - var a = response.argument; - this.fireEvent("loadexception", this, a.node, response); - if(typeof a.callback == "function"){ - a.callback(this, a.node); - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/tree/TreeNode.js b/www/extras/extjs/source/widgets/tree/TreeNode.js deleted file mode 100644 index 0faa95257..000000000 --- a/www/extras/extjs/source/widgets/tree/TreeNode.js +++ /dev/null @@ -1,468 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.tree.TreeNode - * @extends Ext.data.Node - * @cfg {String} text The text for this node - * @cfg {Boolean} expanded true to start the node expanded - * @cfg {Boolean} allowDrag false to make this node undraggable if DD is on (defaults to true) - * @cfg {Boolean} allowDrop false if this node cannot be drop on - * @cfg {Boolean} disabled true to start the node disabled - * @cfg {String} icon The path to an icon for the node. The preferred way to do this - * is to use the cls or iconCls attributes and add the icon via a CSS background image. - * @cfg {String} cls A css class to be added to the node - * @cfg {String} iconCls A css class to be added to the nodes icon element for applying css background images - * @cfg {String} href URL of the link used for the node (defaults to #) - * @cfg {String} hrefTarget target frame for the link - * @cfg {String} qtip An Ext QuickTip for the node - * @cfg {Boolean} singleClickExpand True for single click expand on this node - * @cfg {Function} uiProvider A UI class to use for this node (defaults to Ext.tree.TreeNodeUI) - * @constructor - * @param {Object/String} attributes The attributes/config for the node or just a string with the text for the node - */ -Ext.tree.TreeNode = function(attributes){ - attributes = attributes || {}; - if(typeof attributes == "string"){ - attributes = {text: attributes}; - } - this.childrenRendered = false; - this.rendered = false; - Ext.tree.TreeNode.superclass.constructor.call(this, attributes); - this.expanded = attributes.expanded === true; - this.isTarget = attributes.isTarget !== false; - this.draggable = attributes.draggable !== false && attributes.allowDrag !== false; - this.allowChildren = attributes.allowChildren !== false && attributes.allowDrop !== false; - - /** - * Read-only. The text for this node. To change it use setText(). - * @type String - */ - this.text = attributes.text; - /** - * True if this node is disabled. - * @type Boolean - */ - this.disabled = attributes.disabled === true; - - this.addEvents({ - /** - * @event textchange - * Fires when the text for this node is changed - * @param {Node} this This node - * @param {String} text The new text - * @param {String} oldText The old text - */ - "textchange" : true, - /** - * @event beforeexpand - * Fires before this node is expanded, return false to cancel. - * @param {Node} this This node - * @param {Boolean} deep - * @param {Boolean} anim - */ - "beforeexpand" : true, - /** - * @event beforecollapse - * Fires before this node is collapsed, return false to cancel. - * @param {Node} this This node - * @param {Boolean} deep - * @param {Boolean} anim - */ - "beforecollapse" : true, - /** - * @event expand - * Fires when this node is expanded - * @param {Node} this This node - */ - "expand" : true, - /** - * @event disabledchange - * Fires when the disabled status of this node changes - * @param {Node} this This node - * @param {Boolean} disabled - */ - "disabledchange" : true, - /** - * @event collapse - * Fires when this node is collapsed - * @param {Node} this This node - */ - "collapse" : true, - /** - * @event beforeclick - * Fires before click processing. Return false to cancel the default action. - * @param {Node} this This node - * @param {Ext.EventObject} e The event object - */ - "beforeclick":true, - /** - * @event click - * Fires when this node is clicked - * @param {Node} this This node - * @param {Ext.EventObject} e The event object - */ - "click":true, - /** - * @event dblclick - * Fires when this node is double clicked - * @param {Node} this This node - * @param {Ext.EventObject} e The event object - */ - "dblclick":true, - /** - * @event contextmenu - * Fires when this node is right clicked - * @param {Node} this This node - * @param {Ext.EventObject} e The event object - */ - "contextmenu":true, - /** - * @event beforechildrenrendered - * Fires right before the child nodes for this node are rendered - * @param {Node} this This node - */ - "beforechildrenrendered":true - }); - - var uiClass = this.attributes.uiProvider || Ext.tree.TreeNodeUI; - - /** - * Read-only. The UI for this node - * @type TreeNodeUI - */ - this.ui = new uiClass(this); -}; -Ext.extend(Ext.tree.TreeNode, Ext.data.Node, { - preventHScroll: true, - - /** - * Returns true if this node is expanded - * @return {Boolean} - */ - isExpanded : function(){ - return this.expanded; - }, - - /** - * Returns the UI object for this node - * @return {TreeNodeUI} - */ - getUI : function(){ - return this.ui; - }, - - // private override - setFirstChild : function(node){ - var of = this.firstChild; - Ext.tree.TreeNode.superclass.setFirstChild.call(this, node); - if(this.childrenRendered && of && node != of){ - of.renderIndent(true, true); - } - if(this.rendered){ - this.renderIndent(true, true); - } - }, - - // private override - setLastChild : function(node){ - var ol = this.lastChild; - Ext.tree.TreeNode.superclass.setLastChild.call(this, node); - if(this.childrenRendered && ol && node != ol){ - ol.renderIndent(true, true); - } - if(this.rendered){ - this.renderIndent(true, true); - } - }, - - // these methods are overridden to provide lazy rendering support - // private override - appendChild : function(){ - var node = Ext.tree.TreeNode.superclass.appendChild.apply(this, arguments); - if(node && this.childrenRendered){ - node.render(); - } - this.ui.updateExpandIcon(); - return node; - }, - - // private override - removeChild : function(node){ - this.ownerTree.getSelectionModel().unselect(node); - Ext.tree.TreeNode.superclass.removeChild.apply(this, arguments); - // if it's been rendered remove dom node - if(this.childrenRendered){ - node.ui.remove(); - } - if(this.childNodes.length < 1){ - this.collapse(false, false); - }else{ - this.ui.updateExpandIcon(); - } - return node; - }, - - // private override - insertBefore : function(node, refNode){ - var newNode = Ext.tree.TreeNode.superclass.insertBefore.apply(this, arguments); - if(newNode && refNode && this.childrenRendered){ - node.render(); - } - this.ui.updateExpandIcon(); - return newNode; - }, - - /** - * Sets the text for this node - * @param {String} text - */ - setText : function(text){ - var oldText = this.text; - this.text = text; - this.attributes.text = text; - if(this.rendered){ // event without subscribing - this.ui.onTextChange(this, text, oldText); - } - this.fireEvent("textchange", this, text, oldText); - }, - - /** - * Triggers selection of this node - */ - select : function(){ - this.getOwnerTree().getSelectionModel().select(this); - }, - - /** - * Triggers deselection of this node - */ - unselect : function(){ - this.getOwnerTree().getSelectionModel().unselect(this); - }, - - /** - * Returns true if this node is selected - * @return {Boolean} - */ - isSelected : function(){ - return this.getOwnerTree().getSelectionModel().isSelected(this); - }, - - /** - * Expand this node. - * @param {Boolean} deep (optional) True to expand all children as well - * @param {Boolean} anim (optional) false to cancel the default animation - * @param {Function} callback (optional) A callback to be called when - * expanding this node completes (does not wait for deep expand to complete). - * Called with 1 parameter, this node. - */ - expand : function(deep, anim, callback){ - if(!this.expanded){ - if(this.fireEvent("beforeexpand", this, deep, anim) === false){ - return; - } - if(!this.childrenRendered){ - this.renderChildren(); - } - this.expanded = true; - if(!this.isHiddenRoot() && (this.getOwnerTree().animate && anim !== false) || anim){ - this.ui.animExpand(function(){ - this.fireEvent("expand", this); - if(typeof callback == "function"){ - callback(this); - } - if(deep === true){ - this.expandChildNodes(true); - } - }.createDelegate(this)); - return; - }else{ - this.ui.expand(); - this.fireEvent("expand", this); - if(typeof callback == "function"){ - callback(this); - } - } - }else{ - if(typeof callback == "function"){ - callback(this); - } - } - if(deep === true){ - this.expandChildNodes(true); - } - }, - - isHiddenRoot : function(){ - return this.isRoot && !this.getOwnerTree().rootVisible; - }, - - /** - * Collapse this node. - * @param {Boolean} deep (optional) True to collapse all children as well - * @param {Boolean} anim (optional) false to cancel the default animation - */ - collapse : function(deep, anim){ - if(this.expanded && !this.isHiddenRoot()){ - if(this.fireEvent("beforecollapse", this, deep, anim) === false){ - return; - } - this.expanded = false; - if((this.getOwnerTree().animate && anim !== false) || anim){ - this.ui.animCollapse(function(){ - this.fireEvent("collapse", this); - if(deep === true){ - this.collapseChildNodes(true); - } - }.createDelegate(this)); - return; - }else{ - this.ui.collapse(); - this.fireEvent("collapse", this); - } - } - if(deep === true){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - cs[i].collapse(true); - } - } - }, - - // private - delayedExpand : function(delay){ - if(!this.expandProcId){ - this.expandProcId = this.expand.defer(delay, this); - } - }, - - // private - cancelExpand : function(){ - if(this.expandProcId){ - clearTimeout(this.expandProcId); - } - this.expandProcId = false; - }, - - /** - * Toggles expanded/collapsed state of the node - */ - toggle : function(){ - if(this.expanded){ - this.collapse(); - }else{ - this.expand(); - } - }, - - /** - * Ensures all parent nodes are expanded - */ - ensureVisible : function(callback){ - var tree = this.getOwnerTree(); - tree.expandPath(this.getPath(), false, function(){ - tree.getEl().scrollChildIntoView(this.ui.anchor); - Ext.callback(callback); - }.createDelegate(this)); - }, - - /** - * Expand all child nodes - * @param {Boolean} deep (optional) true if the child nodes should also expand their child nodes - */ - expandChildNodes : function(deep){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - cs[i].expand(deep); - } - }, - - /** - * Collapse all child nodes - * @param {Boolean} deep (optional) true if the child nodes should also collapse their child nodes - */ - collapseChildNodes : function(deep){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++) { - cs[i].collapse(deep); - } - }, - - /** - * Disables this node - */ - disable : function(){ - this.disabled = true; - this.unselect(); - if(this.rendered && this.ui.onDisableChange){ // event without subscribing - this.ui.onDisableChange(this, true); - } - this.fireEvent("disabledchange", this, true); - }, - - /** - * Enables this node - */ - enable : function(){ - this.disabled = false; - if(this.rendered && this.ui.onDisableChange){ // event without subscribing - this.ui.onDisableChange(this, false); - } - this.fireEvent("disabledchange", this, false); - }, - - // private - renderChildren : function(suppressEvent){ - if(suppressEvent !== false){ - this.fireEvent("beforechildrenrendered", this); - } - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++){ - cs[i].render(true); - } - this.childrenRendered = true; - }, - - // private - sort : function(fn, scope){ - Ext.tree.TreeNode.superclass.sort.apply(this, arguments); - if(this.childrenRendered){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++){ - cs[i].render(true); - } - } - }, - - // private - render : function(bulkRender){ - this.ui.render(bulkRender); - if(!this.rendered){ - this.rendered = true; - if(this.expanded){ - this.expanded = false; - this.expand(false, false); - } - } - }, - - // private - renderIndent : function(deep, refresh){ - if(refresh){ - this.ui.childIndent = null; - } - this.ui.renderIndent(); - if(deep === true && this.childrenRendered){ - var cs = this.childNodes; - for(var i = 0, len = cs.length; i < len; i++){ - cs[i].renderIndent(true, refresh); - } - } - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/tree/TreeNodeUI.js b/www/extras/extjs/source/widgets/tree/TreeNodeUI.js deleted file mode 100644 index 98797287d..000000000 --- a/www/extras/extjs/source/widgets/tree/TreeNodeUI.js +++ /dev/null @@ -1,471 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * The TreeNode UI implementation is separate from the - * tree implementation. Unless you are customizing the tree UI, - * you should never have to use this directly. - */ -Ext.tree.TreeNodeUI = function(node){ - this.node = node; - this.rendered = false; - this.animating = false; - this.emptyIcon = Ext.BLANK_IMAGE_URL; -}; - -Ext.tree.TreeNodeUI.prototype = { - removeChild : function(node){ - if(this.rendered){ - this.ctNode.removeChild(node.ui.getEl()); - } - }, - - beforeLoad : function(){ - this.addClass("x-tree-node-loading"); - }, - - afterLoad : function(){ - this.removeClass("x-tree-node-loading"); - }, - - onTextChange : function(node, text, oldText){ - if(this.rendered){ - this.textNode.innerHTML = text; - } - }, - - onDisableChange : function(node, state){ - this.disabled = state; - if(state){ - this.addClass("x-tree-node-disabled"); - }else{ - this.removeClass("x-tree-node-disabled"); - } - }, - - onSelectedChange : function(state){ - if(state){ - this.focus(); - this.addClass("x-tree-selected"); - }else{ - //this.blur(); - this.removeClass("x-tree-selected"); - } - }, - - onMove : function(tree, node, oldParent, newParent, index, refNode){ - this.childIndent = null; - if(this.rendered){ - var targetNode = newParent.ui.getContainer(); - if(!targetNode){//target not rendered - this.holder = document.createElement("div"); - this.holder.appendChild(this.wrap); - return; - } - var insertBefore = refNode ? refNode.ui.getEl() : null; - if(insertBefore){ - targetNode.insertBefore(this.wrap, insertBefore); - }else{ - targetNode.appendChild(this.wrap); - } - this.node.renderIndent(true); - } - }, - - addClass : function(cls){ - if(this.elNode){ - Ext.fly(this.elNode).addClass(cls); - } - }, - - removeClass : function(cls){ - if(this.elNode){ - Ext.fly(this.elNode).removeClass(cls); - } - }, - - remove : function(){ - if(this.rendered){ - this.holder = document.createElement("div"); - this.holder.appendChild(this.wrap); - } - }, - - fireEvent : function(){ - return this.node.fireEvent.apply(this.node, arguments); - }, - - initEvents : function(){ - this.node.on("move", this.onMove, this); - var E = Ext.EventManager; - var a = this.anchor; - - var el = Ext.fly(a); - - if(Ext.isOpera){ // opera render bug ignores the CSS - el.setStyle("text-decoration", "none"); - } - - el.on("click", this.onClick, this); - el.on("dblclick", this.onDblClick, this); - el.on("contextmenu", this.onContextMenu, this); - - var icon = Ext.fly(this.iconNode); - icon.on("click", this.onClick, this); - icon.on("dblclick", this.onDblClick, this); - icon.on("contextmenu", this.onContextMenu, this); - E.on(this.ecNode, "click", this.ecClick, this, true); - - if(this.node.disabled){ - this.addClass("x-tree-node-disabled"); - } - if(this.node.hidden){ - this.addClass("x-tree-node-disabled"); - } - var ot = this.node.getOwnerTree(); - var dd = ot.enableDD || ot.enableDrag || ot.enableDrop; - if(dd && (!this.node.isRoot || ot.rootVisible)){ - Ext.dd.Registry.register(this.elNode, { - node: this.node, - handles: [this.iconNode, this.textNode], - isHandle: false - }); - } - }, - - hide : function(){ - if(this.rendered){ - this.wrap.style.display = "none"; - } - }, - - show : function(){ - if(this.rendered){ - this.wrap.style.display = ""; - } - }, - - onContextMenu : function(e){ - e.preventDefault(); - this.focus(); - this.fireEvent("contextmenu", this.node, e); - }, - - onClick : function(e){ - if(this.dropping){ - return; - } - if(this.fireEvent("beforeclick", this.node, e) !== false){ - if(!this.disabled && this.node.attributes.href){ - this.fireEvent("click", this.node, e); - return; - } - e.preventDefault(); - if(this.disabled){ - return; - } - - if(this.node.attributes.singleClickExpand && !this.animating && this.node.hasChildNodes()){ - this.node.toggle(); - } - - this.fireEvent("click", this.node, e); - }else{ - e.stopEvent(); - } - }, - - onDblClick : function(e){ - e.preventDefault(); - if(this.disabled){ - return; - } - if(!this.animating && this.node.hasChildNodes()){ - this.node.toggle(); - } - this.fireEvent("dblclick", this.node, e); - }, - - ecClick : function(e){ - if(!this.animating && this.node.hasChildNodes()){ - this.node.toggle(); - } - }, - - startDrop : function(){ - this.dropping = true; - }, - - // delayed drop so the click event doesn't get fired on a drop - endDrop : function(){ - setTimeout(function(){ - this.dropping = false; - }.createDelegate(this), 50); - }, - - expand : function(){ - this.updateExpandIcon(); - this.ctNode.style.display = ""; - }, - - focus : function(){ - if(!this.node.preventHScroll){ - try{this.anchor.focus(); - }catch(e){} - }else if(!Ext.isIE){ - try{ - var noscroll = this.node.getOwnerTree().el.dom; - var l = noscroll.scrollLeft; - this.anchor.focus(); - noscroll.scrollLeft = l; - }catch(e){} - } - }, - - blur : function(){ - try{ - this.anchor.blur(); - }catch(e){} - }, - - animExpand : function(callback){ - var ct = Ext.get(this.ctNode); - ct.stopFx(); - if(!this.node.hasChildNodes()){ - this.updateExpandIcon(); - this.ctNode.style.display = ""; - Ext.callback(callback); - return; - } - this.animating = true; - this.updateExpandIcon(); - - ct.slideIn('t', { - callback : function(){ - this.animating = false; - Ext.callback(callback); - }, - scope: this, - duration: this.node.ownerTree.duration || .25 - }); - }, - - highlight : function(){ - var tree = this.node.getOwnerTree(); - Ext.fly(this.wrap).highlight( - tree.hlColor || "C3DAF9", - {endColor: tree.hlBaseColor} - ); - }, - - collapse : function(){ - this.updateExpandIcon(); - this.ctNode.style.display = "none"; - }, - - animCollapse : function(callback){ - var ct = Ext.get(this.ctNode); - ct.enableDisplayMode('block'); - ct.stopFx(); - - this.animating = true; - this.updateExpandIcon(); - - ct.slideOut('t', { - callback : function(){ - this.animating = false; - Ext.callback(callback); - }, - scope: this, - duration: this.node.ownerTree.duration || .25 - }); - }, - - getContainer : function(){ - return this.ctNode; - }, - - getEl : function(){ - return this.wrap; - }, - - appendDDGhost : function(ghostNode){ - ghostNode.appendChild(this.elNode.cloneNode(true)); - }, - - getDDRepairXY : function(){ - return Ext.lib.Dom.getXY(this.iconNode); - }, - - onRender : function(){ - this.render(); - }, - - render : function(bulkRender){ - var n = this.node; - var targetNode = n.parentNode ? - n.parentNode.ui.getContainer() : n.ownerTree.container.dom; - if(!this.rendered){ - this.rendered = true; - var a = n.attributes; - - // add some indent caching, this helps performance when rendering a large tree - this.indentMarkup = ""; - if(n.parentNode){ - this.indentMarkup = n.parentNode.ui.getChildIndent(); - } - - var buf = ['
      • ', - '',this.indentMarkup,"", - '', - '', - '',n.text,"
        ", - '', - "
      • "]; - - if(bulkRender !== true && n.nextSibling && n.nextSibling.ui.getEl()){ - this.wrap = Ext.DomHelper.insertHtml("beforeBegin", - n.nextSibling.ui.getEl(), buf.join("")); - }else{ - this.wrap = Ext.DomHelper.insertHtml("beforeEnd", targetNode, buf.join("")); - } - this.elNode = this.wrap.childNodes[0]; - this.ctNode = this.wrap.childNodes[1]; - var cs = this.elNode.childNodes; - this.indentNode = cs[0]; - this.ecNode = cs[1]; - this.iconNode = cs[2]; - this.anchor = cs[3]; - this.textNode = cs[3].firstChild; - if(a.qtip){ - if(this.textNode.setAttributeNS){ - this.textNode.setAttributeNS("ext", "qtip", a.qtip); - if(a.qtipTitle){ - this.textNode.setAttributeNS("ext", "qtitle", a.qtipTitle); - } - }else{ - this.textNode.setAttribute("ext:qtip", a.qtip); - if(a.qtipTitle){ - this.textNode.setAttribute("ext:qtitle", a.qtipTitle); - } - } - } - this.initEvents(); - if(!this.node.expanded){ - this.updateExpandIcon(); - } - }else{ - if(bulkRender === true) { - targetNode.appendChild(this.wrap); - } - } - }, - - getAnchor : function(){ - return this.anchor; - }, - - getTextEl : function(){ - return this.textNode; - }, - - getIconEl : function(){ - return this.iconNode; - }, - - updateExpandIcon : function(){ - if(this.rendered){ - var n = this.node, c1, c2; - //console.log(n.id) - var cls = n.isLast() ? "x-tree-elbow-end" : "x-tree-elbow"; - var hasChild = n.hasChildNodes(); - if(hasChild){ - if(n.expanded){ - cls += "-minus"; - c1 = "x-tree-node-collapsed"; - c2 = "x-tree-node-expanded"; - }else{ - cls += "-plus"; - c1 = "x-tree-node-expanded"; - c2 = "x-tree-node-collapsed"; - } - if(this.wasLeaf){ - this.removeClass("x-tree-node-leaf"); - this.wasLeaf = false; - } - if(this.c1 != c1 || this.c2 != c2){ - Ext.fly(this.elNode).replaceClass(c1, c2); - this.c1 = c1; this.c2 = c2; - } - }else{ - if(!this.wasLeaf){ - Ext.fly(this.elNode).replaceClass("x-tree-node-expanded", "x-tree-node-leaf"); - this.wasLeaf = true; - } - } - var ecc = "x-tree-ec-icon "+cls; - if(this.ecc != ecc){ - this.ecNode.className = ecc; - this.ecc = ecc; - } - } - }, - - getChildIndent : function(){ - if(!this.childIndent){ - var buf = []; - var p = this.node; - while(p){ - if(!p.isRoot || (p.isRoot && p.ownerTree.rootVisible)){ - if(!p.isLast()) { - buf.unshift(''); - } else { - buf.unshift(''); - } - } - p = p.parentNode; - } - this.childIndent = buf.join(""); - } - return this.childIndent; - }, - - renderIndent : function(){ - if(this.rendered){ - var indent = ""; - var p = this.node.parentNode; - if(p){ - indent = p.ui.getChildIndent(); - } - if(this.indentMarkup != indent){ // don't rerender if not required - this.indentNode.innerHTML = indent; - this.indentMarkup = indent; - } - this.updateExpandIcon(); - } - } -}; - -Ext.tree.RootTreeNodeUI = function(){ - Ext.tree.RootTreeNodeUI.superclass.constructor.apply(this, arguments); -}; -Ext.extend(Ext.tree.RootTreeNodeUI, Ext.tree.TreeNodeUI, { - render : function(){ - if(!this.rendered){ - var targetNode = this.node.ownerTree.container.dom; - this.node.expanded = true; - targetNode.innerHTML = '
        '; - this.wrap = this.ctNode = targetNode.firstChild; - } - }, - collapse : function(){ - }, - expand : function(){ - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/tree/TreePanel.js b/www/extras/extjs/source/widgets/tree/TreePanel.js deleted file mode 100644 index c984d914c..000000000 --- a/www/extras/extjs/source/widgets/tree/TreePanel.js +++ /dev/null @@ -1,390 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.tree.TreePanel - * @extends Ext.data.Tree - - * @cfg {Boolean} rootVisible false to hide the root node (defaults to true) - * @cfg {Boolean} lines false to disable tree lines (defaults to true) - * @cfg {Boolean} enableDD true to enable drag and drop - * @cfg {Boolean} enableDrag true to enable just drag - * @cfg {Boolean} enableDrop true to enable just drop - * @cfg {Object} dragConfig Custom config to pass to the {@link Ext.tree.TreeDragZone} instance - * @cfg {Object} dropConfig Custom config to pass to the {@link Ext.tree.TreeDropZone} instance - * @cfg {String} ddGroup The DD group this TreePanel belongs to - * @cfg {String} ddAppendOnly True if the tree should only allow append drops (use for trees which are sorted) - * @cfg {Boolean} ddScroll true to enable YUI body scrolling - * @cfg {Boolean} containerScroll true to register this container with ScrollManager - * @cfg {Boolean} hlDrop false to disable node highlight on drop (defaults to true) - * @cfg {String} hlColor The color of the node highlight (defaults to C3DAF9) - * @cfg {Boolean} animate true to enable animated expand/collapse - * @cfg {Boolean} singleExpand true if only 1 node per branch may be expanded - * @cfg {Boolean} selModel A tree selection model to use with this TreePanel (defaults to a {@link Ext.tree.DefaultSelectionModel}) - * @cfg {Boolean} loader A TreeLoader for use with this TreePanel - * @constructor - * @param {String/HTMLElement/Element} el The container element - * @param {Object} config - */ -Ext.tree.TreePanel = function(el, config){ - Ext.tree.TreePanel.superclass.constructor.call(this); - this.el = Ext.get(el); - this.el.addClass('x-tree'); - /** - * Read-only. The id of the container element becomes this TreePanel's id. - */ - this.id = this.el.id; - Ext.apply(this, config); - this.addEvents({ - /** - * @event beforeload - * Fires before a node is loaded, return false to cancel - * @param {Node} node The node being loaded - */ - "beforeload" : true, - /** - * @event load - * Fires when a node is loaded - * @param {Node} node The node that was loaded - */ - "load" : true, - /** - * @event textchange - * Fires when the text for a node is changed - * @param {Node} node The node - * @param {String} text The new text - * @param {String} oldText The old text - */ - "textchange" : true, - /** - * @event beforeexpand - * Fires before a node is expanded, return false to cancel. - * @param {Node} node The node - * @param {Boolean} deep - * @param {Boolean} anim - */ - "beforeexpand" : true, - /** - * @event beforecollapse - * Fires before a node is collapsed, return false to cancel. - * @param {Node} node The node - * @param {Boolean} deep - * @param {Boolean} anim - */ - "beforecollapse" : true, - /** - * @event expand - * Fires when a node is expanded - * @param {Node} node The node - */ - "expand" : true, - /** - * @event disabledchange - * Fires when the disabled status of a node changes - * @param {Node} node The node - * @param {Boolean} disabled - */ - "disabledchange" : true, - /** - * @event collapse - * Fires when a node is collapsed - * @param {Node} node The node - */ - "collapse" : true, - /** - * @event beforeclick - * Fires before click processing on a node. Return false to cancel the default action. - * @param {Node} node The node - * @param {Ext.EventObject} e The event object - */ - "beforeclick":true, - /** - * @event click - * Fires when a node is clicked - * @param {Node} node The node - * @param {Ext.EventObject} e The event object - */ - "click":true, - /** - * @event dblclick - * Fires when a node is double clicked - * @param {Node} node The node - * @param {Ext.EventObject} e The event object - */ - "dblclick":true, - /** - * @event contextmenu - * Fires when a node is right clicked - * @param {Node} node The node - * @param {Ext.EventObject} e The event object - */ - "contextmenu":true, - /** - * @event beforechildrenrendered - * Fires right before the child nodes for a node are rendered - * @param {Node} node The node - */ - "beforechildrenrendered":true, - /** - * @event startdrag - * Fires when a node starts being dragged - * @param {Ext.tree.TreePanel} this - * @param {Ext.tree.TreeNode} node - * @param {event} e The raw browser event - */ - "startdrag" : true, - /** - * @event enddrag - * Fires when a drag operation is complete - * @param {Ext.tree.TreePanel} this - * @param {Ext.tree.TreeNode} node - * @param {event} e The raw browser event - */ - "enddrag" : true, - /** - * @event dragdrop - * Fires when a dragged node is dropped on a valid DD target - * @param {Ext.tree.TreePanel} this - * @param {Ext.tree.TreeNode} node - * @param {DD} dd The dd it was dropped on - * @param {event} e The raw browser event - */ - "dragdrop" : true, - /** - * @event beforenodedrop - * Fires when a DD object is dropped on a node in this tree for preprocessing. Return false to cancel the drop. The dropEvent - * passed to handlers has the following properties:
        - *
          - *
        • tree - The TreePanel
        • - *
        • target - The node being targeted for the drop
        • - *
        • data - The drag data from the drag source
        • - *
        • point - The point of the drop - append, above or below
        • - *
        • source - The drag source
        • - *
        • rawEvent - Raw mouse event
        • - *
        • dropNode - Drop node(s) provided by the source OR you can supply node(s) - * to be inserted by setting them on this object.
        • - *
        • cancel - Set this to true to cancel the drop.
        • - *
        - * @param {Object} dropEvent - */ - "beforenodedrop" : true, - /** - * @event nodedrop - * Fires after a DD object is dropped on a node in this tree. The dropEvent - * passed to handlers has the following properties:
        - *
          - *
        • tree - The TreePanel
        • - *
        • target - The node being targeted for the drop
        • - *
        • data - The drag data from the drag source
        • - *
        • point - The point of the drop - append, above or below
        • - *
        • source - The drag source
        • - *
        • rawEvent - Raw mouse event
        • - *
        • dropNode - Dropped node(s).
        • - *
        - * @param {Object} dropEvent - */ - "nodedrop" : true, - /** - * @event nodedragover - * Fires when a tree node is being targeted for a drag drop, return false to signal drop not allowed. The dragOverEvent - * passed to handlers has the following properties:
        - *
          - *
        • tree - The TreePanel
        • - *
        • target - The node being targeted for the drop
        • - *
        • data - The drag data from the drag source
        • - *
        • point - The point of the drop - append, above or below
        • - *
        • source - The drag source
        • - *
        • rawEvent - Raw mouse event
        • - *
        • dropNode - Drop node(s) provided by the source.
        • - *
        • cancel - Set this to true to signal drop not allowed.
        • - *
        - * @param {Object} dragOverEvent - */ - "nodedragover" : true - }); - if(this.singleExpand){ - this.on("beforeexpand", this.restrictExpand, this); - } -}; -Ext.extend(Ext.tree.TreePanel, Ext.data.Tree, { - rootVisible : true, - animate: Ext.enableFx, - lines : true, - enableDD : false, - hlDrop : Ext.enableFx, - - // private - restrictExpand : function(node){ - var p = node.parentNode; - if(p){ - if(p.expandedChild && p.expandedChild.parentNode == p){ - p.expandedChild.collapse(); - } - p.expandedChild = node; - } - }, - - // private override - setRootNode : function(node){ - Ext.tree.TreePanel.superclass.setRootNode.call(this, node); - if(!this.rootVisible){ - node.ui = new Ext.tree.RootTreeNodeUI(node); - } - return node; - }, - - /** - * Returns the container element for this TreePanel - */ - getEl : function(){ - return this.el; - }, - - /** - * Returns the default TreeLoader for this TreePanel - */ - getLoader : function(){ - return this.loader; - }, - - /** - * Expand all nodes - */ - expandAll : function(){ - this.root.expand(true); - }, - - /** - * Collapse all nodes - */ - collapseAll : function(){ - this.root.collapse(true); - }, - - /** - * Returns the selection model used by this TreePanel - */ - getSelectionModel : function(){ - if(!this.selModel){ - this.selModel = new Ext.tree.DefaultSelectionModel(); - } - return this.selModel; - }, - - /** - * Expands a specified path in this TreePanel. A path can be retrieved from a node with {@link Ext.data.Node#getPath} - * @param {String} path - * @param {String} attr (optional) The attribute used in the path (see {@link Ext.data.Node#getPath} for more info) - * @param {Function} callback (optional) The callback to call when the expand is complete. The callback will be called with - * (bSuccess, oLastNode) where bSuccess is if the expand was successful and oLastNode is the last node that was expanded. - */ - expandPath : function(path, attr, callback){ - attr = attr || "id"; - var keys = path.split(this.pathSeparator); - var curNode = this.root; - if(curNode.attributes[attr] != keys[1]){ // invalid root - if(callback){ - callback(false, null); - } - return; - } - var index = 1; - var f = function(){ - if(++index == keys.length){ - if(callback){ - callback(true, curNode); - } - return; - } - var c = curNode.findChild(attr, keys[index]); - if(!c){ - if(callback){ - callback(false, curNode); - } - return; - } - curNode = c; - c.expand(false, false, f); - }; - curNode.expand(false, false, f); - }, - - /** - * Selects the node in this tree at the specified path. A path can be retrieved from a node with {@link Ext.data.Node#getPath} - * @param {String} path - * @param {String} attr (optional) The attribute used in the path (see {@link Ext.data.Node#getPath} for more info) - * @param {Function} callback (optional) The callback to call when the selection is complete. The callback will be called with - * (bSuccess, oSelNode) where bSuccess is if the selection was successful and oSelNode is the selected node. - */ - selectPath : function(path, attr, callback){ - attr = attr || "id"; - var keys = path.split(this.pathSeparator); - var v = keys.pop(); - if(keys.length > 0){ - var f = function(success, node){ - if(success && node){ - var n = node.findChild(attr, v); - if(n){ - n.select(); - if(callback){ - callback(true, n); - } - } - }else{ - if(callback){ - callback(false, n); - } - } - }; - this.expandPath(keys.join(this.pathSeparator), attr, f); - }else{ - this.root.select(); - if(callback){ - callback(true, this.root); - } - } - }, - - /** - * Trigger rendering of this TreePanel - */ - render : function(){ - this.container = this.el.createChild({tag:"ul", - cls:"x-tree-root-ct " + - (this.lines ? "x-tree-lines" : "x-tree-no-lines")}); - - if(this.containerScroll){ - Ext.dd.ScrollManager.register(this.el); - } - if((this.enableDD || this.enableDrop) && !this.dropZone){ - /** - * The dropZone used by this tree if drop is enabled - * @type Ext.tree.TreeDropZone - */ - this.dropZone = new Ext.tree.TreeDropZone(this, this.dropConfig || { - ddGroup: this.ddGroup || "TreeDD", appendOnly: this.ddAppendOnly === true - }); - } - if((this.enableDD || this.enableDrag) && !this.dragZone){ - /** - * The dragZone used by this tree if drag is enabled - * @type Ext.tree.TreeDragZone - */ - this.dragZone = new Ext.tree.TreeDragZone(this, this.dragConfig || { - ddGroup: this.ddGroup || "TreeDD", - scroll: this.ddScroll - }); - } - this.getSelectionModel().init(this); - this.root.render(); - if(!this.rootVisible){ - this.root.renderChildren(); - } - return this; - } -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/tree/TreeSelectionModel.js b/www/extras/extjs/source/widgets/tree/TreeSelectionModel.js deleted file mode 100644 index e5769aa82..000000000 --- a/www/extras/extjs/source/widgets/tree/TreeSelectionModel.js +++ /dev/null @@ -1,316 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.tree.DefaultSelectionModel - * @extends Ext.util.Observable - * The default single selection for a TreePanel. - */ -Ext.tree.DefaultSelectionModel = function(){ - this.selNode = null; - - this.addEvents({ - /** - * @event selectionchange - * Fires when the selected node changes - * @param {DefaultSelectionModel} this - * @param {TreeNode} node the new selection - */ - "selectionchange" : true, - - /** - * @event beforeselect - * Fires before the selected node changes, return false to cancel the change - * @param {DefaultSelectionModel} this - * @param {TreeNode} node the new selection - * @param {TreeNode} node the old selection - */ - "beforeselect" : true - }); -}; - -Ext.extend(Ext.tree.DefaultSelectionModel, Ext.util.Observable, { - init : function(tree){ - this.tree = tree; - tree.el.on("keydown", this.onKeyDown, this); - tree.on("click", this.onNodeClick, this); - }, - - onNodeClick : function(node, e){ - this.select(node); - }, - - /** - * Select a node. - * @param {TreeNode} node The node to select - * @return {TreeNode} The selected node - */ - select : function(node){ - var last = this.selNode; - if(last != node && this.fireEvent('beforeselect', this, node, last) !== false){ - if(last){ - last.ui.onSelectedChange(false); - } - this.selNode = node; - node.ui.onSelectedChange(true); - this.fireEvent("selectionchange", this, node, last); - } - return node; - }, - - /** - * Deselect a node. - * @param {TreeNode} node The node to unselect - */ - unselect : function(node){ - if(this.selNode == node){ - this.clearSelections(); - } - }, - - /** - * Clear all selections - */ - clearSelections : function(){ - var n = this.selNode; - if(n){ - n.ui.onSelectedChange(false); - this.selNode = null; - this.fireEvent("selectionchange", this, null); - } - return n; - }, - - /** - * Get the selected node - * @return {TreeNode} The selected node - */ - getSelectedNode : function(){ - return this.selNode; - }, - - /** - * Returns true if the node is selected - * @param {TreeNode} node The node to check - * @return {Boolean} - */ - isSelected : function(node){ - return this.selNode == node; - }, - - /** - * Selects the node above the selected node in the tree, intelligently walking the nodes - * @return TreeNode The new selection - */ - selectPrevious : function(){ - var s = this.selNode || this.lastSelNode; - if(!s){ - return null; - } - var ps = s.previousSibling; - if(ps){ - if(!ps.isExpanded() || ps.childNodes.length < 1){ - return this.select(ps); - } else{ - var lc = ps.lastChild; - while(lc && lc.isExpanded() && lc.childNodes.length > 0){ - lc = lc.lastChild; - } - return this.select(lc); - } - } else if(s.parentNode && (this.tree.rootVisible || !s.parentNode.isRoot)){ - return this.select(s.parentNode); - } - return null; - }, - - /** - * Selects the node above the selected node in the tree, intelligently walking the nodes - * @return TreeNode The new selection - */ - selectNext : function(){ - var s = this.selNode || this.lastSelNode; - if(!s){ - return null; - } - if(s.firstChild && s.isExpanded()){ - return this.select(s.firstChild); - }else if(s.nextSibling){ - return this.select(s.nextSibling); - }else if(s.parentNode){ - var newS = null; - s.parentNode.bubble(function(){ - if(this.nextSibling){ - newS = this.getOwnerTree().selModel.select(this.nextSibling); - return false; - } - }); - return newS; - } - return null; - }, - - onKeyDown : function(e){ - var s = this.selNode || this.lastSelNode; - // undesirable, but required - var sm = this; - if(!s){ - return; - } - var k = e.getKey(); - switch(k){ - case e.DOWN: - e.stopEvent(); - this.selectNext(); - break; - case e.UP: - e.stopEvent(); - this.selectPrevious(); - break; - case e.RIGHT: - e.preventDefault(); - if(s.hasChildNodes()){ - if(!s.isExpanded()){ - s.expand(); - }else if(s.firstChild){ - this.select(s.firstChild, e); - } - } - break; - case e.LEFT: - e.preventDefault(); - if(s.hasChildNodes() && s.isExpanded()){ - s.collapse(); - }else if(s.parentNode && (this.tree.rootVisible || s.parentNode != this.tree.getRootNode())){ - this.select(s.parentNode, e); - } - break; - }; - } -}); - -/** - * @class Ext.tree.MultiSelectionModel - * @extends Ext.util.Observable - * Multi selection for a TreePanel. - */ -Ext.tree.MultiSelectionModel = function(){ - this.selNodes = []; - this.selMap = {}; - this.addEvents({ - /** - * @event selectionchange - * Fires when the selected nodes change - * @param {MultiSelectionModel} this - * @param {Array} nodes Array of the selected nodes - */ - "selectionchange" : true - }); -}; - -Ext.extend(Ext.tree.MultiSelectionModel, Ext.util.Observable, { - init : function(tree){ - this.tree = tree; - tree.el.on("keydown", this.onKeyDown, this); - tree.on("click", this.onNodeClick, this); - }, - - onNodeClick : function(node, e){ - this.select(node, e, e.ctrlKey); - }, - - /** - * Select a node. - * @param {TreeNode} node The node to select - * @param {EventObject} e (optional) An event associated with the selection - * @param {Boolean} keepExisting True to retain existing selections - * @return {TreeNode} The selected node - */ - select : function(node, e, keepExisting){ - if(keepExisting !== true){ - this.clearSelections(true); - } - if(this.isSelected(node)){ - this.lastSelNode = node; - return node; - } - this.selNodes.push(node); - this.selMap[node.id] = node; - this.lastSelNode = node; - node.ui.onSelectedChange(true); - this.fireEvent("selectionchange", this, this.selNodes); - return node; - }, - - /** - * Deselect a node. - * @param {TreeNode} node The node to unselect - */ - unselect : function(node){ - if(this.selMap[node.id]){ - node.ui.onSelectedChange(false); - var sn = this.selNodes; - var index = -1; - if(sn.indexOf){ - index = sn.indexOf(node); - }else{ - for(var i = 0, len = sn.length; i < len; i++){ - if(sn[i] == node){ - index = i; - break; - } - } - } - if(index != -1){ - this.selNodes.splice(index, 1); - } - delete this.selMap[node.id]; - this.fireEvent("selectionchange", this, this.selNodes); - } - }, - - /** - * Clear all selections - */ - clearSelections : function(suppressEvent){ - var sn = this.selNodes; - if(sn.length > 0){ - for(var i = 0, len = sn.length; i < len; i++){ - sn[i].ui.onSelectedChange(false); - } - this.selNodes = []; - this.selMap = {}; - if(suppressEvent !== true){ - this.fireEvent("selectionchange", this, this.selNodes); - } - } - }, - - /** - * Returns true if the node is selected - * @param {TreeNode} node The node to check - * @return {Boolean} - */ - isSelected : function(node){ - return this.selMap[node.id] ? true : false; - }, - - /** - * Returns an array of the selected nodes - * @return {Array} - */ - getSelectedNodes : function(){ - return this.selNodes; - }, - - onKeyDown : Ext.tree.DefaultSelectionModel.prototype.onKeyDown, - - selectNext : Ext.tree.DefaultSelectionModel.prototype.selectNext, - - selectPrevious : Ext.tree.DefaultSelectionModel.prototype.selectPrevious -}); \ No newline at end of file diff --git a/www/extras/extjs/source/widgets/tree/TreeSorter.js b/www/extras/extjs/source/widgets/tree/TreeSorter.js deleted file mode 100644 index 5c0011707..000000000 --- a/www/extras/extjs/source/widgets/tree/TreeSorter.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/** - * @class Ext.tree.TreeSorter - * Provides sorting of nodes in a TreePanel - * - * @cfg {Boolean} folderSort True to sort leaf nodes under non leaf nodes - * @cfg {String} property The named attribute on the node to sort by (defaults to text) - * @cfg {String} dir The direction to sort (asc or desc) (defaults to asc) - * @cfg {String} leafAttr The attribute used to determine leaf nodes in folder sort (defaults to "leaf") - * @cfg {Boolean} caseSensitive true for case sensitive sort (defaults to false) - * @cfg {Function} sortType A custom "casting" function used to convert node values before sorting - * @constructor - * @param {TreePanel} tree - * @param {Object} config - */ -Ext.tree.TreeSorter = function(tree, config){ - Ext.apply(this, config); - tree.on("beforechildrenrendered", this.doSort, this); - tree.on("append", this.updateSort, this); - tree.on("insert", this.updateSort, this); - - var dsc = this.dir && this.dir.toLowerCase() == "desc"; - var p = this.property || "text"; - var sortType = this.sortType; - var fs = this.folderSort; - var cs = this.caseSensitive === true; - var leafAttr = this.leafAttr || 'leaf'; - - this.sortFn = function(n1, n2){ - if(fs){ - if(n1.attributes[leafAttr] && !n2.attributes[leafAttr]){ - return 1; - } - if(!n1.attributes[leafAttr] && n2.attributes[leafAttr]){ - return -1; - } - } - var v1 = sortType ? sortType(n1) : (cs ? n1[p] : n1[p].toUpperCase()); - var v2 = sortType ? sortType(n2) : (cs ? n2[p] : n2[p].toUpperCase()); - if(v1 < v2){ - return dsc ? +1 : -1; - }else if(v1 > v2){ - return dsc ? -1 : +1; - }else{ - return 0; - } - }; -}; - -Ext.tree.TreeSorter.prototype = { - doSort : function(node){ - node.sort(this.sortFn); - }, - - compareNodes : function(n1, n2){ - - return (n1.text.toUpperCase() > n2.text.toUpperCase() ? 1 : -1); - }, - - updateSort : function(tree, node){ - if(node.childrenRendered){ - this.doSort.defer(1, this, [node]); - } - } -}; \ No newline at end of file diff --git a/www/extras/extjs/source/yui/animation.js b/www/extras/extjs/source/yui/animation.js deleted file mode 100644 index 7f4d64436..000000000 --- a/www/extras/extjs/source/yui/animation.js +++ /dev/null @@ -1,1366 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -/* -Copyright (c) 2006, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -*/ - -/** - * The animation module provides allows effects to be added to HTMLElements. - * @module animation - * @requires yahoo, event, dom - */ - -/** - * - * Base animation class that provides the interface for building animated effects. - *

        Usage: var myAnim = new YAHOO.util.Anim(el, { width: { from: 10, to: 100 } }, 1, YAHOO.util.Easing.easeOut);

        - * @class Anim - * @namespace YAHOO.util - * @requires YAHOO.util.AnimMgr - * @requires YAHOO.util.Easing - * @requires YAHOO.util.Dom - * @requires YAHOO.util.Event - * @requires YAHOO.util.CustomEvent - * @constructor - * @param {String | HTMLElement} el Reference to the element that will be animated - * @param {Object} attributes The attribute(s) to be animated. - * Each attribute is an object with at minimum a "to" or "by" member defined. - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). - * All attribute names use camelCase. - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) - */ - -YAHOO.util.Anim = function(el, attributes, duration, method) { - if (el) { - this.init(el, attributes, duration, method); - } -}; - -YAHOO.util.Anim.prototype = { - /** - * Provides a readable name for the Anim instance. - * @method toString - * @return {String} - */ - toString: function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("Anim " + id); - }, - - patterns: { // cached for performance - noNegatives: /width|height|opacity|padding/i, // keep at zero or above - offsetAttribute: /^((width|height)|(top|left))$/, // use offsetValue as default - defaultUnit: /width|height|top$|bottom$|left$|right$/i, // use 'px' by default - offsetUnit: /\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i // IE may return these, so convert these to offset - }, - - /** - * Returns the value computed by the animation's "method". - * @method doMethod - * @param {String} attr The name of the attribute. - * @param {Number} start The value this attribute should start from for this animation. - * @param {Number} end The value this attribute should end at for this animation. - * @return {Number} The Value to be applied to the attribute. - */ - doMethod: function(attr, start, end) { - return this.method(this.currentFrame, start, end - start, this.totalFrames); - }, - - /** - * Applies a value to an attribute. - * @method setAttribute - * @param {String} attr The name of the attribute. - * @param {Number} val The value to be applied to the attribute. - * @param {String} unit The unit ('px', '%', etc.) of the value. - */ - setAttribute: function(attr, val, unit) { - if ( this.patterns.noNegatives.test(attr) ) { - val = (val > 0) ? val : 0; - } - - YAHOO.util.Dom.setStyle(this.getEl(), attr, val + unit); - }, - - /** - * Returns current value of the attribute. - * @method getAttribute - * @param {String} attr The name of the attribute. - * @return {Number} val The current value of the attribute. - */ - getAttribute: function(attr) { - var el = this.getEl(); - var val = YAHOO.util.Dom.getStyle(el, attr); - - if (val !== 'auto' && !this.patterns.offsetUnit.test(val)) { - return parseFloat(val); - } - - var a = this.patterns.offsetAttribute.exec(attr) || []; - var pos = !!( a[3] ); // top or left - var box = !!( a[2] ); // width or height - - // use offsets for width/height and abs pos top/left - if ( box || (YAHOO.util.Dom.getStyle(el, 'position') == 'absolute' && pos) ) { - val = el['offset' + a[0].charAt(0).toUpperCase() + a[0].substr(1)]; - } else { // default to zero for other 'auto' - val = 0; - } - - return val; - }, - - /** - * Returns the unit to use when none is supplied. - * @method getDefaultUnit - * @param {attr} attr The name of the attribute. - * @return {String} The default unit to be used. - */ - getDefaultUnit: function(attr) { - if ( this.patterns.defaultUnit.test(attr) ) { - return 'px'; - } - - return ''; - }, - - /** - * Sets the actual values to be used during the animation. Should only be needed for subclass use. - * @method setRuntimeAttribute - * @param {Object} attr The attribute object - * @private - */ - setRuntimeAttribute: function(attr) { - var start; - var end; - var attributes = this.attributes; - - this.runtimeAttributes[attr] = {}; - - var isset = function(prop) { - return (typeof prop !== 'undefined'); - }; - - if ( !isset(attributes[attr]['to']) && !isset(attributes[attr]['by']) ) { - return false; // note return; nothing to animate to - } - - start = ( isset(attributes[attr]['from']) ) ? attributes[attr]['from'] : this.getAttribute(attr); - - // To beats by, per SMIL 2.1 spec - if ( isset(attributes[attr]['to']) ) { - end = attributes[attr]['to']; - } else if ( isset(attributes[attr]['by']) ) { - if (start.constructor == Array) { - end = []; - for (var i = 0, len = start.length; i < len; ++i) { - end[i] = start[i] + attributes[attr]['by'][i]; - } - } else { - end = start + attributes[attr]['by']; - } - } - - this.runtimeAttributes[attr].start = start; - this.runtimeAttributes[attr].end = end; - - // set units if needed - this.runtimeAttributes[attr].unit = ( isset(attributes[attr].unit) ) ? attributes[attr]['unit'] : this.getDefaultUnit(attr); - }, - - /** - * Constructor for Anim instance. - * @method init - * @param {String | HTMLElement} el Reference to the element that will be animated - * @param {Object} attributes The attribute(s) to be animated. - * Each attribute is an object with at minimum a "to" or "by" member defined. - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). - * All attribute names use camelCase. - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) - */ - init: function(el, attributes, duration, method) { - /** - * Whether or not the animation is running. - * @property isAnimated - * @private - * @type Boolean - */ - var isAnimated = false; - - /** - * A Date object that is created when the animation begins. - * @property startTime - * @private - * @type Date - */ - var startTime = null; - - /** - * The number of frames this animation was able to execute. - * @property actualFrames - * @private - * @type Int - */ - var actualFrames = 0; - - /** - * The element to be animated. - * @property el - * @private - * @type HTMLElement - */ - el = YAHOO.util.Dom.get(el); - - /** - * The collection of attributes to be animated. - * Each attribute must have at least a "to" or "by" defined in order to animate. - * If "to" is supplied, the animation will end with the attribute at that value. - * If "by" is supplied, the animation will end at that value plus its starting value. - * If both are supplied, "to" is used, and "by" is ignored. - * Optional additional member include "from" (the value the attribute should start animating from, defaults to current value), and "unit" (the units to apply to the values). - * @property attributes - * @type Object - */ - this.attributes = attributes || {}; - - /** - * The length of the animation. Defaults to "1" (second). - * @property duration - * @type Number - */ - this.duration = duration || 1; - - /** - * The method that will provide values to the attribute(s) during the animation. - * Defaults to "YAHOO.util.Easing.easeNone". - * @property method - * @type Function - */ - this.method = method || YAHOO.util.Easing.easeNone; - - /** - * Whether or not the duration should be treated as seconds. - * Defaults to true. - * @property useSeconds - * @type Boolean - */ - this.useSeconds = true; // default to seconds - - /** - * The location of the current animation on the timeline. - * In time-based animations, this is used by AnimMgr to ensure the animation finishes on time. - * @property currentFrame - * @type Int - */ - this.currentFrame = 0; - - /** - * The total number of frames to be executed. - * In time-based animations, this is used by AnimMgr to ensure the animation finishes on time. - * @property totalFrames - * @type Int - */ - this.totalFrames = YAHOO.util.AnimMgr.fps; - - - /** - * Returns a reference to the animated element. - * @method getEl - * @return {HTMLElement} - */ - this.getEl = function() { return el; }; - - /** - * Checks whether the element is currently animated. - * @method isAnimated - * @return {Boolean} current value of isAnimated. - */ - this.isAnimated = function() { - return isAnimated; - }; - - /** - * Returns the animation start time. - * @method getStartTime - * @return {Date} current value of startTime. - */ - this.getStartTime = function() { - return startTime; - }; - - this.runtimeAttributes = {}; - - - - /** - * Starts the animation by registering it with the animation manager. - * @method animate - */ - this.animate = function() { - if ( this.isAnimated() ) { - return false; - } - - this.currentFrame = 0; - - this.totalFrames = ( this.useSeconds ) ? Math.ceil(YAHOO.util.AnimMgr.fps * this.duration) : this.duration; - - YAHOO.util.AnimMgr.registerElement(this); - }; - - /** - * Stops the animation. Normally called by AnimMgr when animation completes. - * @method stop - * @param {Boolean} finish (optional) If true, animation will jump to final frame. - */ - this.stop = function(finish) { - if (finish) { - this.currentFrame = this.totalFrames; - this._onTween.fire(); - } - YAHOO.util.AnimMgr.stop(this); - }; - - var onStart = function() { - this.onStart.fire(); - - this.runtimeAttributes = {}; - for (var attr in this.attributes) { - this.setRuntimeAttribute(attr); - } - - isAnimated = true; - actualFrames = 0; - startTime = new Date(); - }; - - /** - * Feeds the starting and ending values for each animated attribute to doMethod once per frame, then applies the resulting value to the attribute(s). - * @private - */ - - var onTween = function() { - var data = { - duration: new Date() - this.getStartTime(), - currentFrame: this.currentFrame - }; - - data.toString = function() { - return ( - 'duration: ' + data.duration + - ', currentFrame: ' + data.currentFrame - ); - }; - - this.onTween.fire(data); - - var runtimeAttributes = this.runtimeAttributes; - - for (var attr in runtimeAttributes) { - this.setAttribute(attr, this.doMethod(attr, runtimeAttributes[attr].start, runtimeAttributes[attr].end), runtimeAttributes[attr].unit); - } - - actualFrames += 1; - }; - - var onComplete = function() { - var actual_duration = (new Date() - startTime) / 1000 ; - - var data = { - duration: actual_duration, - frames: actualFrames, - fps: actualFrames / actual_duration - }; - - data.toString = function() { - return ( - 'duration: ' + data.duration + - ', frames: ' + data.frames + - ', fps: ' + data.fps - ); - }; - - isAnimated = false; - actualFrames = 0; - this.onComplete.fire(data); - }; - - /** - * Custom event that fires after onStart, useful in subclassing - * @private - */ - this._onStart = new YAHOO.util.CustomEvent('_start', this, true); - - /** - * Custom event that fires when animation begins - * Listen via subscribe method (e.g. myAnim.onStart.subscribe(someFunction) - * @event onStart - */ - this.onStart = new YAHOO.util.CustomEvent('start', this); - - /** - * Custom event that fires between each frame - * Listen via subscribe method (e.g. myAnim.onTween.subscribe(someFunction) - * @event onTween - */ - this.onTween = new YAHOO.util.CustomEvent('tween', this); - - /** - * Custom event that fires after onTween - * @private - */ - this._onTween = new YAHOO.util.CustomEvent('_tween', this, true); - - /** - * Custom event that fires when animation ends - * Listen via subscribe method (e.g. myAnim.onComplete.subscribe(someFunction) - * @event onComplete - */ - this.onComplete = new YAHOO.util.CustomEvent('complete', this); - /** - * Custom event that fires after onComplete - * @private - */ - this._onComplete = new YAHOO.util.CustomEvent('_complete', this, true); - - this._onStart.subscribe(onStart); - this._onTween.subscribe(onTween); - this._onComplete.subscribe(onComplete); - } -}; - -/** - * Handles animation queueing and threading. - * Used by Anim and subclasses. - * @class AnimMgr - * @namespace YAHOO.util - */ -YAHOO.util.AnimMgr = new function() { - /** - * Reference to the animation Interval. - * @property thread - * @private - * @type Int - */ - var thread = null; - - /** - * The current queue of registered animation objects. - * @property queue - * @private - * @type Array - */ - var queue = []; - - /** - * The number of active animations. - * @property tweenCount - * @private - * @type Int - */ - var tweenCount = 0; - - /** - * Base frame rate (frames per second). - * Arbitrarily high for better x-browser calibration (slower browsers drop more frames). - * @property fps - * @type Int - * - */ - this.fps = 1000; - - /** - * Interval delay in milliseconds, defaults to fastest possible. - * @property delay - * @type Int - * - */ - this.delay = 1; - - /** - * Adds an animation instance to the animation queue. - * All animation instances must be registered in order to animate. - * @method registerElement - * @param {object} tween The Anim instance to be be registered - */ - this.registerElement = function(tween) { - queue[queue.length] = tween; - tweenCount += 1; - tween._onStart.fire(); - this.start(); - }; - - /** - * removes an animation instance from the animation queue. - * All animation instances must be registered in order to animate. - * @method unRegister - * @param {object} tween The Anim instance to be be registered - * @param {Int} index The index of the Anim instance - * @private - */ - this.unRegister = function(tween, index) { - tween._onComplete.fire(); - index = index || getIndex(tween); - if (index != -1) { - queue.splice(index, 1); - } - - tweenCount -= 1; - if (tweenCount <= 0) { - this.stop(); - } - }; - - /** - * Starts the animation thread. - * Only one thread can run at a time. - * @method start - */ - this.start = function() { - if (thread === null) { - thread = setInterval(this.run, this.delay); - } - }; - - /** - * Stops the animation thread or a specific animation instance. - * @method stop - * @param {object} tween A specific Anim instance to stop (optional) - * If no instance given, Manager stops thread and all animations. - */ - this.stop = function(tween) { - if (!tween) { - clearInterval(thread); - - for (var i = 0, len = queue.length; i < len; ++i) { - if ( queue[0].isAnimated() ) { - this.unRegister(queue[0], 0); - } - } - - queue = []; - thread = null; - tweenCount = 0; - } - else { - this.unRegister(tween); - } - }; - - /** - * Called per Interval to handle each animation frame. - * @method run - */ - this.run = function() { - for (var i = 0, len = queue.length; i < len; ++i) { - var tween = queue[i]; - if ( !tween || !tween.isAnimated() ) { continue; } - - if (tween.currentFrame < tween.totalFrames || tween.totalFrames === null) - { - tween.currentFrame += 1; - - if (tween.useSeconds) { - correctFrame(tween); - } - tween._onTween.fire(); - } - else { YAHOO.util.AnimMgr.stop(tween, i); } - } - }; - - var getIndex = function(anim) { - for (var i = 0, len = queue.length; i < len; ++i) { - if (queue[i] == anim) { - return i; // note return; - } - } - return -1; - }; - - /** - * On the fly frame correction to keep animation on time. - * @method correctFrame - * @private - * @param {Object} tween The Anim instance being corrected. - */ - var correctFrame = function(tween) { - var frames = tween.totalFrames; - var frame = tween.currentFrame; - var expected = (tween.currentFrame * tween.duration * 1000 / tween.totalFrames); - var elapsed = (new Date() - tween.getStartTime()); - var tweak = 0; - - if (elapsed < tween.duration * 1000) { // check if falling behind - tweak = Math.round((elapsed / expected - 1) * tween.currentFrame); - } else { // went over duration, so jump to end - tweak = frames - (frame + 1); - } - if (tweak > 0 && isFinite(tweak)) { // adjust if needed - if (tween.currentFrame + tweak >= frames) {// dont go past last frame - tweak = frames - (frame + 1); - } - - tween.currentFrame += tweak; - } - }; -}; -/** - * Used to calculate Bezier splines for any number of control points. - * @class Bezier - * @namespace YAHOO.util - * - */ -YAHOO.util.Bezier = new function() { - /** - * Get the current position of the animated element based on t. - * Each point is an array of "x" and "y" values (0 = x, 1 = y) - * At least 2 points are required (start and end). - * First point is start. Last point is end. - * Additional control points are optional. - * @method getPosition - * @param {Array} points An array containing Bezier points - * @param {Number} t A number between 0 and 1 which is the basis for determining current position - * @return {Array} An array containing int x and y member data - */ - this.getPosition = function(points, t) { - var n = points.length; - var tmp = []; - - for (var i = 0; i < n; ++i){ - tmp[i] = [points[i][0], points[i][1]]; // save input - } - - for (var j = 1; j < n; ++j) { - for (i = 0; i < n - j; ++i) { - tmp[i][0] = (1 - t) * tmp[i][0] + t * tmp[parseInt(i + 1, 10)][0]; - tmp[i][1] = (1 - t) * tmp[i][1] + t * tmp[parseInt(i + 1, 10)][1]; - } - } - - return [ tmp[0][0], tmp[0][1] ]; - - }; -}; -(function() { -/** - * Anim subclass for color transitions. - *

        Usage: var myAnim = new Y.ColorAnim(el, { backgroundColor: { from: '#FF0000', to: '#FFFFFF' } }, 1, Y.Easing.easeOut); Color values can be specified with either 112233, #112233, - * [255,255,255], or rgb(255,255,255)

        - * @class ColorAnim - * @namespace YAHOO.util - * @requires YAHOO.util.Anim - * @requires YAHOO.util.AnimMgr - * @requires YAHOO.util.Easing - * @requires YAHOO.util.Bezier - * @requires YAHOO.util.Dom - * @requires YAHOO.util.Event - * @constructor - * @extends YAHOO.util.Anim - * @param {HTMLElement | String} el Reference to the element that will be animated - * @param {Object} attributes The attribute(s) to be animated. - * Each attribute is an object with at minimum a "to" or "by" member defined. - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). - * All attribute names use camelCase. - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) - */ - YAHOO.util.ColorAnim = function(el, attributes, duration, method) { - YAHOO.util.ColorAnim.superclass.constructor.call(this, el, attributes, duration, method); - }; - - YAHOO.extend(YAHOO.util.ColorAnim, YAHOO.util.Anim); - - // shorthand - var Y = YAHOO.util; - var superclass = Y.ColorAnim.superclass; - var proto = Y.ColorAnim.prototype; - - proto.toString = function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("ColorAnim " + id); - }; - - proto.patterns.color = /color$/i; - proto.patterns.rgb = /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i; - proto.patterns.hex = /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i; - proto.patterns.hex3 = /^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i; - proto.patterns.transparent = /^transparent|rgba\(0, 0, 0, 0\)$/; // need rgba for safari - - /** - * Attempts to parse the given string and return a 3-tuple. - * @method parseColor - * @param {String} s The string to parse. - * @return {Array} The 3-tuple of rgb values. - */ - proto.parseColor = function(s) { - if (s.length == 3) { return s; } - - var c = this.patterns.hex.exec(s); - if (c && c.length == 4) { - return [ parseInt(c[1], 16), parseInt(c[2], 16), parseInt(c[3], 16) ]; - } - - c = this.patterns.rgb.exec(s); - if (c && c.length == 4) { - return [ parseInt(c[1], 10), parseInt(c[2], 10), parseInt(c[3], 10) ]; - } - - c = this.patterns.hex3.exec(s); - if (c && c.length == 4) { - return [ parseInt(c[1] + c[1], 16), parseInt(c[2] + c[2], 16), parseInt(c[3] + c[3], 16) ]; - } - - return null; - }; - - proto.getAttribute = function(attr) { - var el = this.getEl(); - if ( this.patterns.color.test(attr) ) { - var val = YAHOO.util.Dom.getStyle(el, attr); - - if (this.patterns.transparent.test(val)) { // bgcolor default - var parent = el.parentNode; // try and get from an ancestor - val = Y.Dom.getStyle(parent, attr); - - while (parent && this.patterns.transparent.test(val)) { - parent = parent.parentNode; - val = Y.Dom.getStyle(parent, attr); - if (parent.tagName.toUpperCase() == 'HTML') { - val = '#fff'; - } - } - } - } else { - val = superclass.getAttribute.call(this, attr); - } - - return val; - }; - - proto.doMethod = function(attr, start, end) { - var val; - - if ( this.patterns.color.test(attr) ) { - val = []; - for (var i = 0, len = start.length; i < len; ++i) { - val[i] = superclass.doMethod.call(this, attr, start[i], end[i]); - } - - val = 'rgb('+Math.floor(val[0])+','+Math.floor(val[1])+','+Math.floor(val[2])+')'; - } - else { - val = superclass.doMethod.call(this, attr, start, end); - } - - return val; - }; - - proto.setRuntimeAttribute = function(attr) { - superclass.setRuntimeAttribute.call(this, attr); - - if ( this.patterns.color.test(attr) ) { - var attributes = this.attributes; - var start = this.parseColor(this.runtimeAttributes[attr].start); - var end = this.parseColor(this.runtimeAttributes[attr].end); - // fix colors if going "by" - if ( typeof attributes[attr]['to'] === 'undefined' && typeof attributes[attr]['by'] !== 'undefined' ) { - end = this.parseColor(attributes[attr].by); - - for (var i = 0, len = start.length; i < len; ++i) { - end[i] = start[i] + end[i]; - } - } - - this.runtimeAttributes[attr].start = start; - this.runtimeAttributes[attr].end = end; - } - }; -})(); -/* -TERMS OF USE - EASING EQUATIONS -Open source under the BSD License. -Copyright 2001 Robert Penner All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - * Singleton that determines how an animation proceeds from start to end. - * @class Easing - * @namespace YAHOO.util -*/ - -YAHOO.util.Easing = { - - /** - * Uniform speed between points. - * @method easeNone - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeNone: function (t, b, c, d) { - return c*t/d + b; - }, - - /** - * Begins slowly and accelerates towards end. (quadratic) - * @method easeIn - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeIn: function (t, b, c, d) { - return c*(t/=d)*t + b; - }, - - /** - * Begins quickly and decelerates towards end. (quadratic) - * @method easeOut - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeOut: function (t, b, c, d) { - return -c *(t/=d)*(t-2) + b; - }, - - /** - * Begins slowly and decelerates towards end. (quadratic) - * @method easeBoth - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeBoth: function (t, b, c, d) { - if ((t/=d/2) < 1) { - return c/2*t*t + b; - } - - return -c/2 * ((--t)*(t-2) - 1) + b; - }, - - /** - * Begins slowly and accelerates towards end. (quartic) - * @method easeInStrong - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeInStrong: function (t, b, c, d) { - return c*(t/=d)*t*t*t + b; - }, - - /** - * Begins quickly and decelerates towards end. (quartic) - * @method easeOutStrong - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeOutStrong: function (t, b, c, d) { - return -c * ((t=t/d-1)*t*t*t - 1) + b; - }, - - /** - * Begins slowly and decelerates towards end. (quartic) - * @method easeBothStrong - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeBothStrong: function (t, b, c, d) { - if ((t/=d/2) < 1) { - return c/2*t*t*t*t + b; - } - - return -c/2 * ((t-=2)*t*t*t - 2) + b; - }, - - /** - * Snap in elastic effect. - * @method elasticIn - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} a Amplitude (optional) - * @param {Number} p Period (optional) - * @return {Number} The computed value for the current animation frame - */ - - elasticIn: function (t, b, c, d, a, p) { - if (t == 0) { - return b; - } - if ( (t /= d) == 1 ) { - return b+c; - } - if (!p) { - p=d*.3; - } - - if (!a || a < Math.abs(c)) { - a = c; - var s = p/4; - } - else { - var s = p/(2*Math.PI) * Math.asin (c/a); - } - - return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - }, - - /** - * Snap out elastic effect. - * @method elasticOut - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} a Amplitude (optional) - * @param {Number} p Period (optional) - * @return {Number} The computed value for the current animation frame - */ - elasticOut: function (t, b, c, d, a, p) { - if (t == 0) { - return b; - } - if ( (t /= d) == 1 ) { - return b+c; - } - if (!p) { - p=d*.3; - } - - if (!a || a < Math.abs(c)) { - a = c; - var s = p / 4; - } - else { - var s = p/(2*Math.PI) * Math.asin (c/a); - } - - return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; - }, - - /** - * Snap both elastic effect. - * @method elasticBoth - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} a Amplitude (optional) - * @param {Number} p Period (optional) - * @return {Number} The computed value for the current animation frame - */ - elasticBoth: function (t, b, c, d, a, p) { - if (t == 0) { - return b; - } - - if ( (t /= d/2) == 2 ) { - return b+c; - } - - if (!p) { - p = d*(.3*1.5); - } - - if ( !a || a < Math.abs(c) ) { - a = c; - var s = p/4; - } - else { - var s = p/(2*Math.PI) * Math.asin (c/a); - } - - if (t < 1) { - return -.5*(a*Math.pow(2,10*(t-=1)) * - Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - } - return a*Math.pow(2,-10*(t-=1)) * - Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; - }, - - - /** - * Backtracks slightly, then reverses direction and moves to end. - * @method backIn - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} s Overshoot (optional) - * @return {Number} The computed value for the current animation frame - */ - backIn: function (t, b, c, d, s) { - if (typeof s == 'undefined') { - s = 1.70158; - } - return c*(t/=d)*t*((s+1)*t - s) + b; - }, - - /** - * Overshoots end, then reverses and comes back to end. - * @method backOut - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} s Overshoot (optional) - * @return {Number} The computed value for the current animation frame - */ - backOut: function (t, b, c, d, s) { - if (typeof s == 'undefined') { - s = 1.70158; - } - return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; - }, - - /** - * Backtracks slightly, then reverses direction, overshoots end, - * then reverses and comes back to end. - * @method backBoth - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} s Overshoot (optional) - * @return {Number} The computed value for the current animation frame - */ - backBoth: function (t, b, c, d, s) { - if (typeof s == 'undefined') { - s = 1.70158; - } - - if ((t /= d/2 ) < 1) { - return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; - } - return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; - }, - - /** - * Bounce off of start. - * @method bounceIn - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - bounceIn: function (t, b, c, d) { - return c - YAHOO.util.Easing.bounceOut(d-t, 0, c, d) + b; - }, - - /** - * Bounces off end. - * @method bounceOut - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - bounceOut: function (t, b, c, d) { - if ((t/=d) < (1/2.75)) { - return c*(7.5625*t*t) + b; - } else if (t < (2/2.75)) { - return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; - } else if (t < (2.5/2.75)) { - return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; - } - return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; - }, - - /** - * Bounces off start and end. - * @method bounceBoth - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - bounceBoth: function (t, b, c, d) { - if (t < d/2) { - return YAHOO.util.Easing.bounceIn(t*2, 0, c, d) * .5 + b; - } - return YAHOO.util.Easing.bounceOut(t*2-d, 0, c, d) * .5 + c*.5 + b; - } -}; - -(function() { -/** - * Anim subclass for moving elements along a path defined by the "points" - * member of "attributes". All "points" are arrays with x, y coordinates. - *

        Usage: var myAnim = new YAHOO.util.Motion(el, { points: { to: [800, 800] } }, 1, YAHOO.util.Easing.easeOut);

        - * @class Motion - * @namespace YAHOO.util - * @requires YAHOO.util.Anim - * @requires YAHOO.util.AnimMgr - * @requires YAHOO.util.Easing - * @requires YAHOO.util.Bezier - * @requires YAHOO.util.Dom - * @requires YAHOO.util.Event - * @requires YAHOO.util.CustomEvent - * @constructor - * @extends YAHOO.util.Anim - * @param {String | HTMLElement} el Reference to the element that will be animated - * @param {Object} attributes The attribute(s) to be animated. - * Each attribute is an object with at minimum a "to" or "by" member defined. - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). - * All attribute names use camelCase. - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) - */ - YAHOO.util.Motion = function(el, attributes, duration, method) { - if (el) { // dont break existing subclasses not using YAHOO.extend - YAHOO.util.Motion.superclass.constructor.call(this, el, attributes, duration, method); - } - }; - - YAHOO.extend(YAHOO.util.Motion, YAHOO.util.ColorAnim); - - // shorthand - var Y = YAHOO.util; - var superclass = Y.Motion.superclass; - var proto = Y.Motion.prototype; - - proto.toString = function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("Motion " + id); - }; - - proto.patterns.points = /^points$/i; - - proto.setAttribute = function(attr, val, unit) { - if ( this.patterns.points.test(attr) ) { - unit = unit || 'px'; - superclass.setAttribute.call(this, 'left', val[0], unit); - superclass.setAttribute.call(this, 'top', val[1], unit); - } else { - superclass.setAttribute.call(this, attr, val, unit); - } - }; - - proto.getAttribute = function(attr) { - if ( this.patterns.points.test(attr) ) { - var val = [ - superclass.getAttribute.call(this, 'left'), - superclass.getAttribute.call(this, 'top') - ]; - } else { - val = superclass.getAttribute.call(this, attr); - } - - return val; - }; - - proto.doMethod = function(attr, start, end) { - var val = null; - - if ( this.patterns.points.test(attr) ) { - var t = this.method(this.currentFrame, 0, 100, this.totalFrames) / 100; - val = Y.Bezier.getPosition(this.runtimeAttributes[attr], t); - } else { - val = superclass.doMethod.call(this, attr, start, end); - } - return val; - }; - - proto.setRuntimeAttribute = function(attr) { - if ( this.patterns.points.test(attr) ) { - var el = this.getEl(); - var attributes = this.attributes; - var start; - var control = attributes['points']['control'] || []; - var end; - var i, len; - - if (control.length > 0 && !(control[0] instanceof Array) ) { // could be single point or array of points - control = [control]; - } else { // break reference to attributes.points.control - var tmp = []; - for (i = 0, len = control.length; i< len; ++i) { - tmp[i] = control[i]; - } - control = tmp; - } - - if (Y.Dom.getStyle(el, 'position') == 'static') { // default to relative - Y.Dom.setStyle(el, 'position', 'relative'); - } - - if ( isset(attributes['points']['from']) ) { - Y.Dom.setXY(el, attributes['points']['from']); // set position to from point - } - else { Y.Dom.setXY( el, Y.Dom.getXY(el) ); } // set it to current position - - start = this.getAttribute('points'); // get actual top & left - - // TO beats BY, per SMIL 2.1 spec - if ( isset(attributes['points']['to']) ) { - end = translateValues.call(this, attributes['points']['to'], start); - - var pageXY = Y.Dom.getXY(this.getEl()); - for (i = 0, len = control.length; i < len; ++i) { - control[i] = translateValues.call(this, control[i], start); - } - - - } else if ( isset(attributes['points']['by']) ) { - end = [ start[0] + attributes['points']['by'][0], start[1] + attributes['points']['by'][1] ]; - - for (i = 0, len = control.length; i < len; ++i) { - control[i] = [ start[0] + control[i][0], start[1] + control[i][1] ]; - } - } - - this.runtimeAttributes[attr] = [start]; - - if (control.length > 0) { - this.runtimeAttributes[attr] = this.runtimeAttributes[attr].concat(control); - } - - this.runtimeAttributes[attr][this.runtimeAttributes[attr].length] = end; - } - else { - superclass.setRuntimeAttribute.call(this, attr); - } - }; - - var translateValues = function(val, start) { - var pageXY = Y.Dom.getXY(this.getEl()); - val = [ val[0] - pageXY[0] + start[0], val[1] - pageXY[1] + start[1] ]; - - return val; - }; - - var isset = function(prop) { - return (typeof prop !== 'undefined'); - }; -})(); -(function() { -/** - * Anim subclass for scrolling elements to a position defined by the "scroll" - * member of "attributes". All "scroll" members are arrays with x, y scroll positions. - *

        Usage: var myAnim = new YAHOO.util.Scroll(el, { scroll: { to: [0, 800] } }, 1, YAHOO.util.Easing.easeOut);

        - * @class Scroll - * @namespace YAHOO.util - * @requires YAHOO.util.Anim - * @requires YAHOO.util.AnimMgr - * @requires YAHOO.util.Easing - * @requires YAHOO.util.Bezier - * @requires YAHOO.util.Dom - * @requires YAHOO.util.Event - * @requires YAHOO.util.CustomEvent - * @extends YAHOO.util.Anim - * @constructor - * @param {String or HTMLElement} el Reference to the element that will be animated - * @param {Object} attributes The attribute(s) to be animated. - * Each attribute is an object with at minimum a "to" or "by" member defined. - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). - * All attribute names use camelCase. - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) - */ - YAHOO.util.Scroll = function(el, attributes, duration, method) { - if (el) { // dont break existing subclasses not using YAHOO.extend - YAHOO.util.Scroll.superclass.constructor.call(this, el, attributes, duration, method); - } - }; - - YAHOO.extend(YAHOO.util.Scroll, YAHOO.util.ColorAnim); - - // shorthand - var Y = YAHOO.util; - var superclass = Y.Scroll.superclass; - var proto = Y.Scroll.prototype; - - proto.toString = function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("Scroll " + id); - }; - - proto.doMethod = function(attr, start, end) { - var val = null; - - if (attr == 'scroll') { - val = [ - this.method(this.currentFrame, start[0], end[0] - start[0], this.totalFrames), - this.method(this.currentFrame, start[1], end[1] - start[1], this.totalFrames) - ]; - - } else { - val = superclass.doMethod.call(this, attr, start, end); - } - return val; - }; - - proto.getAttribute = function(attr) { - var val = null; - var el = this.getEl(); - - if (attr == 'scroll') { - val = [ el.scrollLeft, el.scrollTop ]; - } else { - val = superclass.getAttribute.call(this, attr); - } - - return val; - }; - - proto.setAttribute = function(attr, val, unit) { - var el = this.getEl(); - - if (attr == 'scroll') { - el.scrollLeft = val[0]; - el.scrollTop = val[1]; - } else { - superclass.setAttribute.call(this, attr, val, unit); - } - }; -})(); -YAHOO.register("animation", YAHOO.util.Anim, {version: "2.2.0", build: "127"}); diff --git a/www/extras/extjs/source/yui/connection.js b/www/extras/extjs/source/yui/connection.js deleted file mode 100644 index 06cf75f4a..000000000 --- a/www/extras/extjs/source/yui/connection.js +++ /dev/null @@ -1,1062 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -/** - * The Connection Manager provides a simplified interface to the XMLHttpRequest - * object. It handles cross-browser instantiantion of XMLHttpRequest, negotiates the - * interactive states and server response, returning the results to a pre-defined - * callback you create. - * - * @namespace YAHOO.util - * @module connection - * @requires yahoo - */ - -/** - * The Connection Manager singleton provides methods for creating and managing - * asynchronous transactions. - * - * @class Connect - */ - -YAHOO.util.Connect = -{ - /** - * @description Array of MSFT ActiveX ids for XMLHttpRequest. - * @property _msxml_progid - * @private - * @static - * @type array - */ - _msxml_progid:[ - 'MSXML2.XMLHTTP.3.0', - 'MSXML2.XMLHTTP', - 'Microsoft.XMLHTTP' - ], - - /** - * @description Object literal of HTTP header(s) - * @property _http_header - * @private - * @static - * @type object - */ - _http_headers:{}, - - /** - * @description Determines if HTTP headers are set. - * @property _has_http_headers - * @private - * @static - * @type boolean - */ - _has_http_headers:false, - - /** - * @description Determines if a default header of - * Content-Type of 'application/x-www-form-urlencoded' - * will be added to any client HTTP headers sent for POST - * transactions. - * @property _use_default_post_header - * @private - * @static - * @type boolean - */ - _use_default_post_header:true, - - /** - * @description Determines if a default header of - * Content-Type of 'application/x-www-form-urlencoded' - * will be added to client HTTP headers sent for POST - * transactions. - * @property _default_post_header - * @private - * @static - * @type boolean - */ - _default_post_header:'application/x-www-form-urlencoded', - - /** - * @description Determines if a default header of - * 'X-Requested-With: XMLHttpRequest' - * will be added to each transaction. - * @property _use_default_xhr_header - * @private - * @static - * @type boolean - */ - _use_default_xhr_header:true, - - /** - * @description The default header value for the label - * "X-Requested-With". This is sent with each - * transaction, by default, to identify the - * request as being made by YUI Connection Manager. - * @property _default_xhr_header - * @private - * @static - * @type boolean - */ - _default_xhr_header:'XMLHttpRequest', - - /** - * @description Determines if custom, default headers - * are set for each transaction. - * @property _has_default_header - * @private - * @static - * @type boolean - */ - _has_default_headers:true, - - /** - * @description Determines if custom, default headers - * are set for each transaction. - * @property _has_default_header - * @private - * @static - * @type boolean - */ - _default_headers:{}, - - /** - * @description Property modified by setForm() to determine if the data - * should be submitted as an HTML form. - * @property _isFormSubmit - * @private - * @static - * @type boolean - */ - _isFormSubmit:false, - - /** - * @description Property modified by setForm() to determine if a file(s) - * upload is expected. - * @property _isFileUpload - * @private - * @static - * @type boolean - */ - _isFileUpload:false, - - /** - * @description Property modified by setForm() to set a reference to the HTML - * form node if the desired action is file upload. - * @property _formNode - * @private - * @static - * @type object - */ - _formNode:null, - - /** - * @description Property modified by setForm() to set the HTML form data - * for each transaction. - * @property _sFormData - * @private - * @static - * @type string - */ - _sFormData:null, - - /** - * @description Collection of polling references to the polling mechanism in handleReadyState. - * @property _poll - * @private - * @static - * @type object - */ - _poll:{}, - - /** - * @description Queue of timeout values for each transaction callback with a defined timeout value. - * @property _timeOut - * @private - * @static - * @type object - */ - _timeOut:{}, - - /** - * @description The polling frequency, in milliseconds, for HandleReadyState. - * when attempting to determine a transaction's XHR readyState. - * The default is 50 milliseconds. - * @property _polling_interval - * @private - * @static - * @type int - */ - _polling_interval:50, - - /** - * @description A transaction counter that increments the transaction id for each transaction. - * @property _transaction_id - * @private - * @static - * @type int - */ - _transaction_id:0, - - /** - * @description Member to add an ActiveX id to the existing xml_progid array. - * In the event(unlikely) a new ActiveX id is introduced, it can be added - * without internal code modifications. - * @method setProgId - * @public - * @static - * @param {string} id The ActiveX id to be added to initialize the XHR object. - * @return void - */ - setProgId:function(id) - { - this._msxml_progid.unshift(id); - }, - - /** - * @description Member to enable or disable the default POST header. - * @method setDefaultPostHeader - * @public - * @static - * @param {boolean} b Set and use default header - true or false . - * @return void - */ - setDefaultPostHeader:function(b) - { - this._use_default_post_header = b; - }, - - /** - * @description Member to enable or disable the default POST header. - * @method setDefaultXhrHeader - * @public - * @static - * @param {boolean} b Set and use default header - true or false . - * @return void - */ - setDefaultXhrHeader:function(b) - { - this._use_default_xhr_header = b; - }, - - /** - * @description Member to modify the default polling interval. - * @method setPollingInterval - * @public - * @static - * @param {int} i The polling interval in milliseconds. - * @return void - */ - setPollingInterval:function(i) - { - if(typeof i == 'number' && isFinite(i)){ - this._polling_interval = i; - } - }, - - /** - * @description Instantiates a XMLHttpRequest object and returns an object with two properties: - * the XMLHttpRequest instance and the transaction id. - * @method createXhrObject - * @private - * @static - * @param {int} transactionId Property containing the transaction id for this transaction. - * @return object - */ - createXhrObject:function(transactionId) - { - var obj,http; - try - { - // Instantiates XMLHttpRequest in non-IE browsers and assigns to http. - http = new XMLHttpRequest(); - // Object literal with http and tId properties - obj = { conn:http, tId:transactionId }; - } - catch(e) - { - for(var i=0; i= 200 && httpStatus < 300){ - responseObject = this.createResponseObject(o, callback.argument); - if(callback.success){ - if(!callback.scope){ - callback.success(responseObject); - } - else{ - // If a scope property is defined, the callback will be fired from - // the context of the object. - callback.success.apply(callback.scope, [responseObject]); - } - } - } - else{ - switch(httpStatus){ - // The following cases are wininet.dll error codes that may be encountered. - case 12002: // Server timeout - case 12029: // 12029 to 12031 correspond to dropped connections. - case 12030: - case 12031: - case 12152: // Connection closed by server. - case 13030: // See above comments for variable status. - responseObject = this.createExceptionObject(o.tId, callback.argument, (isAbort?isAbort:false)); - if(callback.failure){ - if(!callback.scope){ - callback.failure(responseObject); - } - else{ - callback.failure.apply(callback.scope, [responseObject]); - } - } - break; - default: - responseObject = this.createResponseObject(o, callback.argument); - if(callback.failure){ - if(!callback.scope){ - callback.failure(responseObject); - } - else{ - callback.failure.apply(callback.scope, [responseObject]); - } - } - } - } - - this.releaseObject(o); - responseObject = null; - }, - - /** - * @description This method evaluates the server response, creates and returns the results via - * its properties. Success and failure cases will differ in the response - * object's property values. - * @method createResponseObject - * @private - * @static - * @param {object} o The connection object - * @param {callbackArg} callbackArg The user-defined argument or arguments to be passed to the callback - * @return {object} - */ - createResponseObject:function(o, callbackArg) - { - var obj = {}; - var headerObj = {}; - - try - { - var headerStr = o.conn.getAllResponseHeaders(); - var header = headerStr.split('\n'); - for(var i=0; i'); - - // IE will throw a security exception in an SSL environment if the - // iframe source is undefined. - if(typeof secureUri == 'boolean'){ - io.src = 'javascript:false'; - } - else if(typeof secureURI == 'string'){ - // Deprecated - io.src = secureUri; - } - } - else{ - var io = document.createElement('iframe'); - io.id = frameId; - io.name = frameId; - } - - io.style.position = 'absolute'; - io.style.top = '-1000px'; - io.style.left = '-1000px'; - - document.body.appendChild(io); - }, - - /** - * @description Parses the POST data and creates hidden form elements - * for each key-value, and appends them to the HTML form object. - * @method appendPostData - * @private - * @static - * @param {string} postData The HTTP POST data - * @return {array} formElements Collection of hidden fields. - */ - appendPostData:function(postData) - { - var formElements = []; - var postMessage = postData.split('&'); - for(var i=0; i < postMessage.length; i++){ - var delimitPos = postMessage[i].indexOf('='); - if(delimitPos != -1){ - formElements[i] = document.createElement('input'); - formElements[i].type = 'hidden'; - formElements[i].name = postMessage[i].substring(0,delimitPos); - formElements[i].value = postMessage[i].substring(delimitPos+1); - this._formNode.appendChild(formElements[i]); - } - } - - return formElements; - }, - - /** - * @description Uploads HTML form, including files/attachments, to the - * iframe created in createFrame. - * @method uploadFile - * @private - * @static - * @param {int} id The transaction id. - * @param {object} callback - User-defined callback object. - * @param {string} uri Fully qualified path of resource. - * @return {void} - */ - uploadFile:function(id, callback, uri, postData){ - - // Each iframe has an id prefix of "yuiIO" followed - // by the unique transaction id. - var frameId = 'yuiIO' + id; - var uploadEncoding = 'multipart/form-data'; - var io = document.getElementById(frameId); - - // Initialize the HTML form properties in case they are - // not defined in the HTML form. - this._formNode.action = uri; - this._formNode.method = 'POST'; - this._formNode.target = frameId; - - if(this._formNode.encoding){ - // IE does not respect property enctype for HTML forms. - // Instead it uses the property - "encoding". - this._formNode.encoding = uploadEncoding; - } - else{ - this._formNode.enctype = uploadEncoding; - } - - - if(postData){ - var oElements = this.appendPostData(postData); - } - - this._formNode.submit(); - - if(oElements && oElements.length > 0){ - for(var i=0; i < oElements.length; i++){ - this._formNode.removeChild(oElements[i]); - } - } - - // Reset HTML form status properties. - this.resetFormState(); - - // Create the upload callback handler that fires when the iframe - // receives the load event. Subsequently, the event handler is detached - // and the iframe removed from the document. - - var uploadCallback = function() - { - var obj = {}; - obj.tId = id; - obj.argument = callback.argument; - - try - { - obj.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null; - obj.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document; - } - catch(e){} - - if(callback && callback.upload){ - if(!callback.scope){ - callback.upload(obj); - } - else{ - callback.upload.apply(callback.scope, [obj]); - } - } - - if(YAHOO.util.Event){ - YAHOO.util.Event.removeListener(io, "load", uploadCallback); - } - else if(window.detachEvent){ - io.detachEvent('onload', uploadCallback); - } - else{ - io.removeEventListener('load', uploadCallback, false); - } - setTimeout( - function(){ - document.body.removeChild(io); - }, 100); - }; - - - // Bind the onload handler to the iframe to detect the file upload response. - if(YAHOO.util.Event){ - YAHOO.util.Event.addListener(io, "load", uploadCallback); - } - else if(window.attachEvent){ - io.attachEvent('onload', uploadCallback); - } - else{ - io.addEventListener('load', uploadCallback, false); - } - }, - - /** - * @description Method to terminate a transaction, if it has not reached readyState 4. - * @method abort - * @public - * @static - * @param {object} o The connection object returned by asyncRequest. - * @param {object} callback User-defined callback object. - * @param {string} isTimeout boolean to indicate if abort was a timeout. - * @return {boolean} - */ - abort:function(o, callback, isTimeout) - { - if(this.isCallInProgress(o)){ - o.conn.abort(); - window.clearInterval(this._poll[o.tId]); - delete this._poll[o.tId]; - if(isTimeout){ - delete this._timeOut[o.tId]; - } - - this.handleTransactionResponse(o, callback, true); - - return true; - } - else{ - return false; - } - }, - - /** - * Public method to check if the transaction is still being processed. - * - * @method isCallInProgress - * @public - * @static - * @param {object} o The connection object returned by asyncRequest - * @return {boolean} - */ - isCallInProgress:function(o) - { - // if the XHR object assigned to the transaction has not been dereferenced, - // then check its readyState status. Otherwise, return false. - if(o.conn){ - return o.conn.readyState != 4 && o.conn.readyState != 0; - } - else{ - //The XHR object has been destroyed. - return false; - } - }, - - /** - * @description Dereference the XHR instance and the connection object after the transaction is completed. - * @method releaseObject - * @private - * @static - * @param {object} o The connection object - * @return {void} - */ - releaseObject:function(o) - { - //dereference the XHR instance. - o.conn = null; - //dereference the connection object. - o = null; - } -}; -YAHOO.register("connection", YAHOO.widget.Module, {version: "2.2.0", build: "127"}); \ No newline at end of file diff --git a/www/extras/extjs/source/yui/dom.js b/www/extras/extjs/source/yui/dom.js deleted file mode 100644 index d929c56ee..000000000 --- a/www/extras/extjs/source/yui/dom.js +++ /dev/null @@ -1,909 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -/* -Copyright (c) 2006, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -*/ - -/** - * The dom module provides helper methods for manipulating Dom elements. - * @module dom - * - */ - -(function() { - var Y = YAHOO.util, // internal shorthand - getStyle, // for load time browser branching - setStyle, // ditto - id_counter = 0, // for use with generateId - propertyCache = {}; // for faster hyphen converts - - // brower detection - var ua = navigator.userAgent.toLowerCase(), - isOpera = (ua.indexOf('opera') > -1), - isSafari = (ua.indexOf('safari') > -1), - isGecko = (!isOpera && !isSafari && ua.indexOf('gecko') > -1), - isIE = (!isOpera && ua.indexOf('msie') > -1); - - // regex cache - var patterns = { - HYPHEN: /(-[a-z])/i - }; - - - var toCamel = function(property) { - if ( !patterns.HYPHEN.test(property) ) { - return property; // no hyphens - } - - if (propertyCache[property]) { // already converted - return propertyCache[property]; - } - - while( patterns.HYPHEN.exec(property) ) { - property = property.replace(RegExp.$1, - RegExp.$1.substr(1).toUpperCase()); - } - - propertyCache[property] = property; - return property; - //return property.replace(/-([a-z])/gi, function(m0, m1) {return m1.toUpperCase()}) // cant use function as 2nd arg yet due to safari bug - }; - - // branching at load instead of runtime - if (document.defaultView && document.defaultView.getComputedStyle) { // W3C DOM method - getStyle = function(el, property) { - var value = null; - - var computed = document.defaultView.getComputedStyle(el, ''); - if (computed) { // test computed before touching for safari - value = computed[toCamel(property)]; - } - - return el.style[property] || value; - }; - } else if (document.documentElement.currentStyle && isIE) { // IE method - getStyle = function(el, property) { - switch( toCamel(property) ) { - case 'opacity' :// IE opacity uses filter - var val = 100; - try { // will error if no DXImageTransform - val = el.filters['DXImageTransform.Microsoft.Alpha'].opacity; - - } catch(e) { - try { // make sure its in the document - val = el.filters('alpha').opacity; - } catch(e) { - } - } - return val / 100; - break; - default: - // test currentStyle before touching - var value = el.currentStyle ? el.currentStyle[property] : null; - return ( el.style[property] || value ); - } - }; - } else { // default to inline only - getStyle = function(el, property) { return el.style[property]; }; - } - - if (isIE) { - setStyle = function(el, property, val) { - switch (property) { - case 'opacity': - if ( typeof el.style.filter == 'string' ) { // in case not appended - el.style.filter = 'alpha(opacity=' + val * 100 + ')'; - - if (!el.currentStyle || !el.currentStyle.hasLayout) { - el.style.zoom = 1; // when no layout or cant tell - } - } - break; - default: - el.style[property] = val; - } - }; - } else { - setStyle = function(el, property, val) { - el.style[property] = val; - }; - } - - /** - * Provides helper methods for DOM elements. - * @namespace YAHOO.util - * @class Dom - */ - YAHOO.util.Dom = { - /** - * Returns an HTMLElement reference. - * @method get - * @param {String | HTMLElement |Array} el Accepts a string to use as an ID for getting a DOM reference, an actual DOM reference, or an Array of IDs and/or HTMLElements. - * @return {HTMLElement | Array} A DOM reference to an HTML element or an array of HTMLElements. - */ - get: function(el) { - if (!el) { return null; } // nothing to work with - - if (typeof el != 'string' && !(el instanceof Array) ) { // assuming HTMLElement or HTMLCollection, so pass back as is - return el; - } - - if (typeof el == 'string') { // ID - return document.getElementById(el); - } - else { // array of ID's and/or elements - var collection = []; - for (var i = 0, len = el.length; i < len; ++i) { - collection[collection.length] = Y.Dom.get(el[i]); - } - - return collection; - } - - return null; // safety, should never happen - }, - - /** - * Normalizes currentStyle and ComputedStyle. - * @method getStyle - * @param {String | HTMLElement |Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements. - * @param {String} property The style property whose value is returned. - * @return {String | Array} The current value of the style property for the element(s). - */ - getStyle: function(el, property) { - property = toCamel(property); - - var f = function(element) { - return getStyle(element, property); - }; - - return Y.Dom.batch(el, f, Y.Dom, true); - }, - - /** - * Wrapper for setting style properties of HTMLElements. Normalizes "opacity" across modern browsers. - * @method setStyle - * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements. - * @param {String} property The style property to be set. - * @param {String} val The value to apply to the given property. - */ - setStyle: function(el, property, val) { - property = toCamel(property); - - var f = function(element) { - setStyle(element, property, val); - - }; - - Y.Dom.batch(el, f, Y.Dom, true); - }, - - /** - * Gets the current position of an element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - * @method getXY - * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements - * @return {Array} The XY position of the element(s) - */ - getXY: function(el) { - var f = function(el) { - - // has to be part of document to have pageXY - if (el.parentNode === null || el.offsetParent === null || - this.getStyle(el, 'display') == 'none') { - return false; - } - - var parentNode = null; - var pos = []; - var box; - - if (el.getBoundingClientRect) { // IE - box = el.getBoundingClientRect(); - var doc = document; - if ( !this.inDocument(el) && parent.document != document) {// might be in a frame, need to get its scroll - doc = parent.document; - - if ( !this.isAncestor(doc.documentElement, el) ) { - return false; - } - - } - - var scrollTop = Math.max(doc.documentElement.scrollTop, doc.body.scrollTop); - var scrollLeft = Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft); - - return [box.left + scrollLeft, box.top + scrollTop]; - } - else { // safari, opera, & gecko - pos = [el.offsetLeft, el.offsetTop]; - parentNode = el.offsetParent; - if (parentNode != el) { - while (parentNode) { - pos[0] += parentNode.offsetLeft; - pos[1] += parentNode.offsetTop; - parentNode = parentNode.offsetParent; - } - } - if (isSafari && this.getStyle(el, 'position') == 'absolute' ) { // safari doubles in some cases - pos[0] -= document.body.offsetLeft; - pos[1] -= document.body.offsetTop; - } - } - - if (el.parentNode) { parentNode = el.parentNode; } - else { parentNode = null; } - - while (parentNode && parentNode.tagName.toUpperCase() != 'BODY' && parentNode.tagName.toUpperCase() != 'HTML') - { // account for any scrolled ancestors - if (Y.Dom.getStyle(parentNode, 'display') != 'inline') { // work around opera inline scrollLeft/Top bug - pos[0] -= parentNode.scrollLeft; - pos[1] -= parentNode.scrollTop; - } - - if (parentNode.parentNode) { - parentNode = parentNode.parentNode; - } else { parentNode = null; } - } - - - return pos; - }; - - return Y.Dom.batch(el, f, Y.Dom, true); - }, - - /** - * Gets the current X position of an element based on page coordinates. The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - * @method getX - * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements - * @return {String | Array} The X position of the element(s) - */ - getX: function(el) { - var f = function(el) { - return Y.Dom.getXY(el)[0]; - }; - - return Y.Dom.batch(el, f, Y.Dom, true); - }, - - /** - * Gets the current Y position of an element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - * @method getY - * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements - * @return {String | Array} The Y position of the element(s) - */ - getY: function(el) { - var f = function(el) { - return Y.Dom.getXY(el)[1]; - }; - - return Y.Dom.batch(el, f, Y.Dom, true); - }, - - /** - * Set the position of an html element in page coordinates, regardless of how the element is positioned. - * The element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - * @method setXY - * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements - * @param {Array} pos Contains X & Y values for new position (coordinates are page-based) - * @param {Boolean} noRetry By default we try and set the position a second time if the first fails - */ - setXY: function(el, pos, noRetry) { - var f = function(el) { - var style_pos = this.getStyle(el, 'position'); - if (style_pos == 'static') { // default to relative - this.setStyle(el, 'position', 'relative'); - style_pos = 'relative'; - } - - var pageXY = this.getXY(el); - if (pageXY === false) { // has to be part of doc to have pageXY - return false; - } - - var delta = [ // assuming pixels; if not we will have to retry - parseInt( this.getStyle(el, 'left'), 10 ), - parseInt( this.getStyle(el, 'top'), 10 ) - ]; - - if ( isNaN(delta[0]) ) {// in case of 'auto' - delta[0] = (style_pos == 'relative') ? 0 : el.offsetLeft; - } - if ( isNaN(delta[1]) ) { // in case of 'auto' - delta[1] = (style_pos == 'relative') ? 0 : el.offsetTop; - } - - if (pos[0] !== null) { el.style.left = pos[0] - pageXY[0] + delta[0] + 'px'; } - if (pos[1] !== null) { el.style.top = pos[1] - pageXY[1] + delta[1] + 'px'; } - - if (!noRetry) { - var newXY = this.getXY(el); - - // if retry is true, try one more time if we miss - if ( (pos[0] !== null && newXY[0] != pos[0]) || - (pos[1] !== null && newXY[1] != pos[1]) ) { - this.setXY(el, pos, true); - } - } - - }; - - Y.Dom.batch(el, f, Y.Dom, true); - }, - - /** - * Set the X position of an html element in page coordinates, regardless of how the element is positioned. - * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - * @method setX - * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements. - * @param {Int} x The value to use as the X coordinate for the element(s). - */ - setX: function(el, x) { - Y.Dom.setXY(el, [x, null]); - }, - - /** - * Set the Y position of an html element in page coordinates, regardless of how the element is positioned. - * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - * @method setY - * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements. - * @param {Int} x To use as the Y coordinate for the element(s). - */ - setY: function(el, y) { - Y.Dom.setXY(el, [null, y]); - }, - - /** - * Returns the region position of the given element. - * The element must be part of the DOM tree to have a region (display:none or elements not appended return false). - * @method getRegion - * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements. - * @return {Region | Array} A Region or array of Region instances containing "top, left, bottom, right" member data. - */ - getRegion: function(el) { - var f = function(el) { - var region = new Y.Region.getRegion(el); - return region; - }; - - return Y.Dom.batch(el, f, Y.Dom, true); - }, - - /** - * Returns the width of the client (viewport). - * @method getClientWidth - * @deprecated Now using getViewportWidth. This interface left intact for back compat. - * @return {Int} The width of the viewable area of the page. - */ - getClientWidth: function() { - return Y.Dom.getViewportWidth(); - }, - - /** - * Returns the height of the client (viewport). - * @method getClientHeight - * @deprecated Now using getViewportHeight. This interface left intact for back compat. - * @return {Int} The height of the viewable area of the page. - */ - getClientHeight: function() { - return Y.Dom.getViewportHeight(); - }, - - /** - * Returns a array of HTMLElements with the given class. - * For optimized performance, include a tag and/or root node when possible. - * @method getElementsByClassName - * @param {String} className The class name to match against - * @param {String} tag (optional) The tag name of the elements being collected - * @param {String | HTMLElement} root (optional) The HTMLElement or an ID to use as the starting point - * @return {Array} An array of elements that have the given class name - */ - getElementsByClassName: function(className, tag, root) { - var method = function(el) { return Y.Dom.hasClass(el, className); }; - return Y.Dom.getElementsBy(method, tag, root); - }, - - /** - * Determines whether an HTMLElement has the given className. - * @method hasClass - * @param {String | HTMLElement | Array} el The element or collection to test - * @param {String} className the class name to search for - * @return {Boolean | Array} A boolean value or array of boolean values - */ - hasClass: function(el, className) { - var re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)'); - - var f = function(el) { - return re.test(el['className']); - }; - - return Y.Dom.batch(el, f, Y.Dom, true); - }, - - /** - * Adds a class name to a given element or collection of elements. - * @method addClass - * @param {String | HTMLElement | Array} el The element or collection to add the class to - * @param {String} className the class name to add to the class attribute - */ - addClass: function(el, className) { - var f = function(el) { - if (this.hasClass(el, className)) { return; } // already present - - - el['className'] = [el['className'], className].join(' '); - }; - - Y.Dom.batch(el, f, Y.Dom, true); - }, - - /** - * Removes a class name from a given element or collection of elements. - * @method removeClass - * @param {String | HTMLElement | Array} el The element or collection to remove the class from - * @param {String} className the class name to remove from the class attribute - */ - removeClass: function(el, className) { - var re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)', 'g'); - - var f = function(el) { - if (!this.hasClass(el, className)) { return; } // not present - - - var c = el['className']; - el['className'] = c.replace(re, ' '); - if ( this.hasClass(el, className) ) { // in case of multiple adjacent - this.removeClass(el, className); - } - - }; - - Y.Dom.batch(el, f, Y.Dom, true); - }, - - /** - * Replace a class with another class for a given element or collection of elements. - * If no oldClassName is present, the newClassName is simply added. - * @method replaceClass - * @param {String | HTMLElement | Array} el The element or collection to remove the class from - * @param {String} oldClassName the class name to be replaced - * @param {String} newClassName the class name that will be replacing the old class name - */ - replaceClass: function(el, oldClassName, newClassName) { - if (oldClassName === newClassName) { // avoid infinite loop - return false; - } - - var re = new RegExp('(?:^|\\s+)' + oldClassName + '(?:\\s+|$)', 'g'); - - var f = function(el) { - - if ( !this.hasClass(el, oldClassName) ) { - this.addClass(el, newClassName); // just add it if nothing to replace - return; // note return - } - - el['className'] = el['className'].replace(re, ' ' + newClassName + ' '); - - if ( this.hasClass(el, oldClassName) ) { // in case of multiple adjacent - this.replaceClass(el, oldClassName, newClassName); - } - }; - - Y.Dom.batch(el, f, Y.Dom, true); - }, - - /** - * Generates a unique ID - * @method generateId - * @param {String | HTMLElement | Array} el (optional) An optional element array of elements to add an ID to (no ID is added if one is already present). - * @param {String} prefix (optional) an optional prefix to use (defaults to "yui-gen"). - * @return {String | Array} The generated ID, or array of generated IDs (or original ID if already present on an element) - */ - generateId: function(el, prefix) { - prefix = prefix || 'yui-gen'; - el = el || {}; - - var f = function(el) { - if (el) { - el = Y.Dom.get(el); - } else { - el = {}; // just generating ID in this case - } - - if (!el.id) { - el.id = prefix + id_counter++; - } // dont override existing - - - return el.id; - }; - - return Y.Dom.batch(el, f, Y.Dom, true); - }, - - /** - * Determines whether an HTMLElement is an ancestor of another HTML element in the DOM hierarchy. - * @method isAncestor - * @param {String | HTMLElement} haystack The possible ancestor - * @param {String | HTMLElement} needle The possible descendent - * @return {Boolean} Whether or not the haystack is an ancestor of needle - */ - isAncestor: function(haystack, needle) { - haystack = Y.Dom.get(haystack); - if (!haystack || !needle) { return false; } - - var f = function(needle) { - if (haystack.contains && !isSafari) { // safari "contains" is broken - return haystack.contains(needle); - } - else if ( haystack.compareDocumentPosition ) { - return !!(haystack.compareDocumentPosition(needle) & 16); - } - else { // loop up and test each parent - var parent = needle.parentNode; - - while (parent) { - if (parent == haystack) { - return true; - } - else if (!parent.tagName || parent.tagName.toUpperCase() == 'HTML') { - return false; - } - - parent = parent.parentNode; - } - return false; - } - }; - - return Y.Dom.batch(needle, f, Y.Dom, true); - }, - - /** - * Determines whether an HTMLElement is present in the current document. - * @method inDocument - * @param {String | HTMLElement} el The element to search for - * @return {Boolean} Whether or not the element is present in the current document - */ - inDocument: function(el) { - var f = function(el) { - return this.isAncestor(document.documentElement, el); - }; - - return Y.Dom.batch(el, f, Y.Dom, true); - }, - - /** - * Returns a array of HTMLElements that pass the test applied by supplied boolean method. - * For optimized performance, include a tag and/or root node when possible. - * @method getElementsBy - * @param {Function} method - A boolean method for testing elements which receives the element as its only argument. - - * @param {String} tag (optional) The tag name of the elements being collected - * @param {String | HTMLElement} root (optional) The HTMLElement or an ID to use as the starting point - * @return {Array} Array of HTMLElements - */ - getElementsBy: function(method, tag, root) { - tag = tag || '*'; - - var nodes = []; - - if (root) { - root = Y.Dom.get(root); - if (!root) { // if no root node, then no children - return nodes; - } - } else { - root = document; - } - - var elements = root.getElementsByTagName(tag); - - if ( !elements.length && (tag == '*' && root.all) ) { - elements = root.all; // IE < 6 - } - - for (var i = 0, len = elements.length; i < len; ++i) { - if ( method(elements[i]) ) { nodes[nodes.length] = elements[i]; } - } - - - return nodes; - }, - - /** - * Returns an array of elements that have had the supplied method applied. - * The method is called with the element(s) as the first arg, and the optional param as the second ( method(el, o) ). - * @method batch - * @param {String | HTMLElement | Array} el (optional) An element or array of elements to apply the method to - * @param {Function} method The method to apply to the element(s) - * @param {Any} o (optional) An optional arg that is passed to the supplied method - * @param {Boolean} override (optional) Whether or not to override the scope of "method" with "o" - * @return {HTMLElement | Array} The element(s) with the method applied - */ - batch: function(el, method, o, override) { - var id = el; - el = Y.Dom.get(el); - - var scope = (override) ? o : window; - - if (!el || el.tagName || !el.length) { // is null or not a collection (tagName for SELECT and others that can be both an element and a collection) - if (!el) { - return false; - } - return method.call(scope, el, o); - } - - var collection = []; - - for (var i = 0, len = el.length; i < len; ++i) { - if (!el[i]) { - id = el[i]; - } - collection[collection.length] = method.call(scope, el[i], o); - } - - return collection; - }, - - /** - * Returns the height of the document. - * @method getDocumentHeight - * @return {Int} The height of the actual document (which includes the body and its margin). - */ - getDocumentHeight: function() { - var scrollHeight = (document.compatMode != 'CSS1Compat') ? document.body.scrollHeight : document.documentElement.scrollHeight; - - var h = Math.max(scrollHeight, Y.Dom.getViewportHeight()); - return h; - }, - - /** - * Returns the width of the document. - * @method getDocumentWidth - * @return {Int} The width of the actual document (which includes the body and its margin). - */ - getDocumentWidth: function() { - var scrollWidth = (document.compatMode != 'CSS1Compat') ? document.body.scrollWidth : document.documentElement.scrollWidth; - var w = Math.max(scrollWidth, Y.Dom.getViewportWidth()); - return w; - }, - - /** - * Returns the current height of the viewport. - * @method getViewportHeight - * @return {Int} The height of the viewable area of the page (excludes scrollbars). - */ - getViewportHeight: function() { - var height = self.innerHeight; // Safari, Opera - var mode = document.compatMode; - - if ( (mode || isIE) && !isOpera ) { // IE, Gecko - height = (mode == 'CSS1Compat') ? - document.documentElement.clientHeight : // Standards - document.body.clientHeight; // Quirks - } - - return height; - }, - - /** - * Returns the current width of the viewport. - * @method getViewportWidth - * @return {Int} The width of the viewable area of the page (excludes scrollbars). - */ - - getViewportWidth: function() { - var width = self.innerWidth; // Safari - var mode = document.compatMode; - - if (mode || isIE) { // IE, Gecko, Opera - width = (mode == 'CSS1Compat') ? - document.documentElement.clientWidth : // Standards - document.body.clientWidth; // Quirks - } - return width; - } - }; -})(); -/** - * A region is a representation of an object on a grid. It is defined - * by the top, right, bottom, left extents, so is rectangular by default. If - * other shapes are required, this class could be extended to support it. - * @namespace YAHOO.util - * @class Region - * @param {Int} t the top extent - * @param {Int} r the right extent - * @param {Int} b the bottom extent - * @param {Int} l the left extent - * @constructor - */ -YAHOO.util.Region = function(t, r, b, l) { - - /** - * The region's top extent - * @property top - * @type Int - */ - this.top = t; - - /** - * The region's top extent as index, for symmetry with set/getXY - * @property 1 - * @type Int - */ - this[1] = t; - - /** - * The region's right extent - * @property right - * @type int - */ - this.right = r; - - /** - * The region's bottom extent - * @property bottom - * @type Int - */ - this.bottom = b; - - /** - * The region's left extent - * @property left - * @type Int - */ - this.left = l; - - /** - * The region's left extent as index, for symmetry with set/getXY - * @property 0 - * @type Int - */ - this[0] = l; -}; - -/** - * Returns true if this region contains the region passed in - * @method contains - * @param {Region} region The region to evaluate - * @return {Boolean} True if the region is contained with this region, - * else false - */ -YAHOO.util.Region.prototype.contains = function(region) { - return ( region.left >= this.left && - region.right <= this.right && - region.top >= this.top && - region.bottom <= this.bottom ); - -}; - -/** - * Returns the area of the region - * @method getArea - * @return {Int} the region's area - */ -YAHOO.util.Region.prototype.getArea = function() { - return ( (this.bottom - this.top) * (this.right - this.left) ); -}; - -/** - * Returns the region where the passed in region overlaps with this one - * @method intersect - * @param {Region} region The region that intersects - * @return {Region} The overlap region, or null if there is no overlap - */ -YAHOO.util.Region.prototype.intersect = function(region) { - var t = Math.max( this.top, region.top ); - var r = Math.min( this.right, region.right ); - var b = Math.min( this.bottom, region.bottom ); - var l = Math.max( this.left, region.left ); - - if (b >= t && r >= l) { - return new YAHOO.util.Region(t, r, b, l); - } else { - return null; - } -}; - -/** - * Returns the region representing the smallest region that can contain both - * the passed in region and this region. - * @method union - * @param {Region} region The region that to create the union with - * @return {Region} The union region - */ -YAHOO.util.Region.prototype.union = function(region) { - var t = Math.min( this.top, region.top ); - var r = Math.max( this.right, region.right ); - var b = Math.max( this.bottom, region.bottom ); - var l = Math.min( this.left, region.left ); - - return new YAHOO.util.Region(t, r, b, l); -}; - -/** - * toString - * @method toString - * @return string the region properties - */ -YAHOO.util.Region.prototype.toString = function() { - return ( "Region {" + - "top: " + this.top + - ", right: " + this.right + - ", bottom: " + this.bottom + - ", left: " + this.left + - "}" ); -}; - -/** - * Returns a region that is occupied by the DOM element - * @method getRegion - * @param {HTMLElement} el The element - * @return {Region} The region that the element occupies - * @static - */ -YAHOO.util.Region.getRegion = function(el) { - var p = YAHOO.util.Dom.getXY(el); - - var t = p[1]; - var r = p[0] + el.offsetWidth; - var b = p[1] + el.offsetHeight; - var l = p[0]; - - return new YAHOO.util.Region(t, r, b, l); -}; - -///////////////////////////////////////////////////////////////////////////// - - -/** - * A point is a region that is special in that it represents a single point on - * the grid. - * @namespace YAHOO.util - * @class Point - * @param {Int} x The X position of the point - * @param {Int} y The Y position of the point - * @constructor - * @extends YAHOO.util.Region - */ -YAHOO.util.Point = function(x, y) { - if (x instanceof Array) { // accept output from Dom.getXY - y = x[1]; - x = x[0]; - } - - /** - * The X position of the point, which is also the right, left and index zero (for Dom.getXY symmetry) - * @property x - * @type Int - */ - - this.x = this.right = this.left = this[0] = x; - - /** - * The Y position of the point, which is also the top, bottom and index one (for Dom.getXY symmetry) - * @property y - * @type Int - */ - this.y = this.top = this.bottom = this[1] = y; -}; - -YAHOO.util.Point.prototype = new YAHOO.util.Region(); - -YAHOO.register("dom", YAHOO.util.Dom, {version: "2.2.0", build: "127"}); diff --git a/www/extras/extjs/source/yui/event.js b/www/extras/extjs/source/yui/event.js deleted file mode 100644 index fb807fadd..000000000 --- a/www/extras/extjs/source/yui/event.js +++ /dev/null @@ -1,2062 +0,0 @@ -/* - * Ext JS Library 1.0.1 - * Copyright(c) 2006-2007, Ext JS, LLC. - * licensing@extjs.com - * - * http://www.extjs.com/license - */ - -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -/** - * The Event Utility provides utilities for managing DOM Events and tools - * for building event systems - * - * @module event - * @title Event Utility - * @namespace YAHOO.util - * @requires yahoo - */ - -// The first instance of Event will win if it is loaded more than once. -// @TODO this needs to be changed so that only the state data that needs to -// be preserved is kept, while methods are overwritten/added as needed. -// This means that the module pattern can't be used. -if (!YAHOO.util.Event) { - -/** - * The event utility provides functions to add and remove event listeners, - * event cleansing. It also tries to automatically remove listeners it - * registers during the unload event. - * - * @class Event - * @static - */ - YAHOO.util.Event = function() { - - /** - * True after the onload event has fired - * @property loadComplete - * @type boolean - * @static - * @private - */ - var loadComplete = false; - - /** - * Cache of wrapped listeners - * @property listeners - * @type array - * @static - * @private - */ - var listeners = []; - - /** - * User-defined unload function that will be fired before all events - * are detached - * @property unloadListeners - * @type array - * @static - * @private - */ - var unloadListeners = []; - - /** - * Cache of DOM0 event handlers to work around issues with DOM2 events - * in Safari - * @property legacyEvents - * @static - * @private - */ - var legacyEvents = []; - - /** - * Listener stack for DOM0 events - * @property legacyHandlers - * @static - * @private - */ - var legacyHandlers = []; - - /** - * The number of times to poll after window.onload. This number is - * increased if additional late-bound handlers are requested after - * the page load. - * @property retryCount - * @static - * @private - */ - var retryCount = 0; - - /** - * onAvailable listeners - * @property onAvailStack - * @static - * @private - */ - var onAvailStack = []; - - /** - * Lookup table for legacy events - * @property legacyMap - * @static - * @private - */ - var legacyMap = []; - - /** - * Counter for auto id generation - * @property counter - * @static - * @private - */ - var counter = 0; - - /** - * addListener/removeListener can throw errors in unexpected scenarios. - * These errors are suppressed, the method returns false, and this property - * is set - * @property lastError - * @type Error - */ - var lastError = null; - - return { - - /** - * The number of times we should look for elements that are not - * in the DOM at the time the event is requested after the document - * has been loaded. The default is 200@amp;50 ms, so it will poll - * for 10 seconds or until all outstanding handlers are bound - * (whichever comes first). - * @property POLL_RETRYS - * @type int - * @static - * @final - */ - POLL_RETRYS: 200, - - /** - * The poll interval in milliseconds - * @property POLL_INTERVAL - * @type int - * @static - * @final - */ - POLL_INTERVAL: 20, - - /** - * Element to bind, int constant - * @property EL - * @type int - * @static - * @final - */ - EL: 0, - - /** - * Type of event, int constant - * @property TYPE - * @type int - * @static - * @final - */ - TYPE: 1, - - /** - * Function to execute, int constant - * @property FN - * @type int - * @static - * @final - */ - FN: 2, - - /** - * Function wrapped for scope correction and cleanup, int constant - * @property WFN - * @type int - * @static - * @final - */ - WFN: 3, - - /** - * Object passed in by the user that will be returned as a - * parameter to the callback, int constant - * @property OBJ - * @type int - * @static - * @final - */ - OBJ: 3, - - /** - * Adjusted scope, either the element we are registering the event - * on or the custom object passed in by the listener, int constant - * @property ADJ_SCOPE - * @type int - * @static - * @final - */ - ADJ_SCOPE: 4, - - /** - * Safari detection is necessary to work around the preventDefault - * bug that makes it so you can't cancel a href click from the - * handler. Since this function has been used outside of this - * utility, it was changed to detect all KHTML browser to be more - * friendly towards the non-Safari browsers that share the engine. - * Internally, the preventDefault bug detection now uses the - * webkit property. - * @property isSafari - * @private - * @static - * @deprecated - */ - isSafari: (/KHTML/gi).test(navigator.userAgent), - - /** - * If WebKit is detected, we keep track of the version number of - * the engine. - * Safari 1.3.2 (312.6): 312.8.1 <-- currently the latest - * available on Mac OSX 10.3. - * Safari 2.0.2: 416 <-- hasOwnProperty introduced - * Safari 2.0.4: 418 <-- preventDefault fixed (I believe) - * Safari 2.0.4 (419.3): 418.9.1 <-- current release - * - * http://developer.apple.com/internet/safari/uamatrix.html - * @property webkit - */ - webkit: function() { - var v=navigator.userAgent.match(/AppleWebKit\/([^ ]*)/); - if (v&&v[1]) { - return v[1]; - } - return null; - }(), - - /** - * IE detection needed to properly calculate pageX and pageY. - * capabilities checking didn't seem to work because another - * browser that does not provide the properties have the values - * calculated in a different manner than IE. - * @property isIE - * @private - * @static - */ - isIE: (!this.webkit && !navigator.userAgent.match(/opera/gi) && - navigator.userAgent.match(/msie/gi)), - - /** - * poll handle - * @property _interval - * @private - */ - _interval: null, - - /** - * @method startInterval - * @static - * @private - */ - startInterval: function() { - if (!this._interval) { - var self = this; - var callback = function() { self._tryPreloadAttach(); }; - this._interval = setInterval(callback, this.POLL_INTERVAL); - // this.timeout = setTimeout(callback, i); - } - }, - - /** - * Executes the supplied callback when the item with the supplied - * id is found. This is meant to be used to execute behavior as - * soon as possible as the page loads. If you use this after the - * initial page load it will poll for a fixed time for the element. - * The number of times it will poll and the frequency are - * configurable. By default it will poll for 10 seconds. - * - * @method onAvailable - * - * @param {string} p_id the id of the element to look for. - * @param {function} p_fn what to execute when the element is found. - * @param {object} p_obj an optional object to be passed back as - * a parameter to p_fn. - * @param {boolean} p_override If set to true, p_fn will execute - * in the scope of p_obj - * - * @static - */ - onAvailable: function(p_id, p_fn, p_obj, p_override) { - onAvailStack.push( { id: p_id, - fn: p_fn, - obj: p_obj, - override: p_override, - checkReady: false } ); - - retryCount = this.POLL_RETRYS; - this.startInterval(); - }, - - /** - * Works the same way as onAvailable, but additionally checks the - * state of sibling elements to determine if the content of the - * available element is safe to modify. - * - * @method onContentReady - * - * @param {string} p_id the id of the element to look for. - * @param {function} p_fn what to execute when the element is ready. - * @param {object} p_obj an optional object to be passed back as - * a parameter to p_fn. - * @param {boolean} p_override If set to true, p_fn will execute - * in the scope of p_obj - * - * @static - */ - onContentReady: function(p_id, p_fn, p_obj, p_override) { - onAvailStack.push( { id: p_id, - fn: p_fn, - obj: p_obj, - override: p_override, - checkReady: true } ); - - retryCount = this.POLL_RETRYS; - this.startInterval(); - }, - - /** - * Appends an event handler - * - * @method addListener - * - * @param {Object} el The html element to assign the - * event to - * @param {String} sType The type of event to append - * @param {Function} fn The method the event invokes - * @param {Object} obj An arbitrary object that will be - * passed as a parameter to the handler - * @param {boolean} override If true, the obj passed in becomes - * the execution scope of the listener - * @return {boolean} True if the action was successful or defered, - * false if one or more of the elements - * could not have the listener attached, - * or if the operation throws an exception. - * @static - */ - addListener: function(el, sType, fn, obj, override) { - - - if (!fn || !fn.call) { - return false; - } - - // The el argument can be an array of elements or element ids. - if ( this._isValidCollection(el)) { - var ok = true; - for (var i=0,len=el.length; i
        or <a>) that map to -* Button configuration attributes and sets them into a collection that is -* passed to the Button constructor. -* @private -* @param {HTMLInputElement|HTMLAnchorElement} p_oElement Object reference to the HTML -* element (either <input> or <span>) -* used to create the button. -* @param {Object} p_oAttributes Object reference for the collection of -* configuration attributes used to create the button. -*/ -function setAttributesFromSrcElement(p_oElement, p_oAttributes) { - - var me = this; - - /** - * @method setAttributeFromDOMAttribute - * @description Gets the value of the specified DOM attribute and sets it - * into the collection of configuration attributes used to configure - * the button. - * @private - * @param {String} p_sAttribute String representing the name of the - * attribute to retrieve from the DOM element. - */ - function setAttributeFromDOMAttribute(p_sAttribute) { - - if( !(p_sAttribute in p_oAttributes) ) { - - /* - Need to use "getAttributeNode" instead of "getAttribute" - because using "getAttribute," IE will return the innerText of - a <button> for the value attribute rather - than the value of the "value" attribute. - */ - - var oAttribute = p_oElement.getAttributeNode(p_sAttribute); - - - if(oAttribute && ("value" in oAttribute)) { - - me.logger.log( - "Setting attribute \"" + p_sAttribute + "\" using " + - "source element's attribute value of \"" + - oAttribute.value + "\"" - ); - - p_oAttributes[p_sAttribute] = oAttribute.value; - - } - - } - - } - - - /** - * @method setFormElementProperties - * @description Gets the value of the attributes from the form element and - * sets them into the collection of configuration attributes used to - * configure the button. - * @private - */ - function setFormElementProperties() { - - setAttributeFromDOMAttribute("type"); - - if( !("disabled" in p_oAttributes) ) { - - p_oAttributes.disabled = p_oElement.disabled; - - } - - setAttributeFromDOMAttribute("name"); - setAttributeFromDOMAttribute("value"); - setAttributeFromDOMAttribute("title"); - - } - - - var sSrcElementTagName = p_oElement.tagName.toUpperCase(); - - - if( !("label" in p_oAttributes) ) { - - // Set the "label" property - - var sText = sSrcElementTagName == "INPUT" ? - p_oElement.value : p_oElement.innerHTML; - - - if(sText && sText.length > 0) { - - p_oAttributes.label = sText; - - } - - } - - - setAttributeFromDOMAttribute("tabindex"); - setAttributeFromDOMAttribute("accesskey"); - - - switch(sSrcElementTagName) { - - case "A": - - p_oAttributes.type = "link"; - - setAttributeFromDOMAttribute("href"); - setAttributeFromDOMAttribute("target"); - - break; - - case "INPUT": - - setFormElementProperties(); - - if( !("checked" in p_oAttributes) ) { - - p_oAttributes.checked = p_oElement.checked; - - } - - break; - - case "BUTTON": - - setFormElementProperties(); - - var oRootNode = p_oElement.parentNode.parentNode; - - if(Dom.hasClass(oRootNode, "checked")) { - - p_oAttributes.checked = true; - - } - - if(Dom.hasClass(oRootNode, "disabled")) { - - p_oAttributes.disabled = true; - - } - - p_oElement.removeAttribute("name"); - p_oElement.removeAttribute("value"); - - p_oElement.setAttribute("type", "button"); - - break; - - } - -} - - -/** -* @method initConfig -* @description Initializes the set of configuration attributes that are used to -* instantiate the button. -* @private -* @param {Object} Object representing the button's set of -* configuration attributes. -*/ -function initConfig(p_oConfig) { - - var oAttributes = p_oConfig.attributes, - oSrcElement = oAttributes.srcelement, - sSrcElementTagName = oSrcElement.tagName.toUpperCase(); - - - if(sSrcElementTagName == this.TAG_NAME) { - - p_oConfig.element = oSrcElement; - - var oFirstChild = getFirstElement(p_oConfig.element); - - Dom.addClass(oFirstChild, "first-child"); - - if(oFirstChild) { - - var oButton = getFirstElement(oFirstChild); - - - if(oButton) { - - var sButtonTagName = oButton.tagName.toUpperCase(); - - - if(sButtonTagName == "A" || sButtonTagName == "BUTTON") { - - setAttributesFromSrcElement.call( - this, - oButton, - oAttributes - ); - - } - - } - - } - - } - else if(sSrcElementTagName == "INPUT") { - - setAttributesFromSrcElement.call(this, oSrcElement, oAttributes); - - } - -} - - -YAHOO.extend(YAHOO.widget.Button, YAHOO.util.Element, { - - -// Protected properties - - -/** -* @property _button -* @description Object reference to the button's internal -* <a> or <button> element. -* @default null -* @protected -* @type HTMLAnchorElement|HTMLButtonElement -*/ -_button: null, - - -/** -* @property _menu -* @description Object reference to the button's menu. -* @default null -* @protected -* @type YAHOO.widget.Menu -*/ -_menu: null, - - -/** -* @property _hiddenField -* @description Object reference to the <input> element -* used when the button's parent form is submitted. -* @default null -* @protected -* @type HTMLInputElement -*/ -_hiddenField: null, - - -/** -* @property _onclickAttributeValue -* @description Object reference to the button's current value for the "onclick" -* configuration attribute. -* @default null -* @protected -* @type Object -*/ -_onclickAttributeValue: null, - - -/** -* @property _activationKeyPressed -* @description Boolean indicating if the key(s) that toggle the button's -* "active" state have been pressed. -* @default false -* @protected -* @type Boolean -*/ -_activationKeyPressed: false, - - -/** -* @property _activationButtonPressed -* @description Boolean indicating if the mouse button that toggles the button's -* "active" state has been pressed. -* @default false -* @protected -* @type Boolean -*/ -_activationButtonPressed: false, - - -/** -* @property _hasKeyEventHandlers -* @description Boolean indicating if the button's "blur", "keydown" and -* "keyup" event handlers are assigned -* @default false -* @protected -* @type Boolean -*/ -_hasKeyEventHandlers: false, - - -/** -* @property _hasMouseEventHandlers -* @description Boolean indicating if the button's "mouseout" and "mousedown" -* and "mouseup" event handlers are assigned -* @default false -* @protected -* @type Boolean -*/ -_hasMouseEventHandlers: false, - - - -// Constants - - -/** -* @property TAG_NAME -* @description The name of the tag to be used for the button's root element. -* @default "SPAN" -* @final -* @type String -*/ -TAG_NAME: "SPAN", - - -/** -* @property CHECK_ACTIVATION_KEYS -* @description Array of numbers representing keys that (when pressed) toggle -* the button's "checked" attribute. -* @default [32] -* @final -* @type Array -*/ -CHECK_ACTIVATION_KEYS: [32], - - -/** -* @property ACTIVATION_KEYS -* @description Array of numbers representing keys that (when presed) toggle -* the button's "active" state. -* @default [13, 32] -* @final -* @type Array -*/ -ACTIVATION_KEYS: [13, 32], - - -/** -* @property OPTION_AREA_WIDTH -* @description Width (in pixels) of the area of a split button that when -* pressed will display a menu. -* @default 20 -* @final -* @type Number -*/ -OPTION_AREA_WIDTH: 20, - - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the -* button's root element. -* @default "yuibutton" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuibutton", - - -/** -* @property RADIO_DEFAULT_TITLE -* @description String representing the default title applied to buttons of -* type "radio." -* @default "Unchecked. Click to check." -* @final -* @type String -*/ -RADIO_DEFAULT_TITLE: "Unchecked. Click to check.", - - -/** -* @property RADIO_CHECKED_TITLE -* @description String representing the title applied to buttons of type "radio" -* when checked. -* @default "Checked. Click to uncheck." -* @final -* @type String -*/ -RADIO_CHECKED_TITLE: "Checked. Click to uncheck.", - - -/** -* @property CHECKBOX_DEFAULT_TITLE -* @description String representing the default title applied to buttons of -* type "checkbox." -* @default "Unchecked. Click to check." -* @final -* @type String -*/ -CHECKBOX_DEFAULT_TITLE: "Unchecked. Click to check.", - - -/** -* @property CHECKBOX_CHECKED_TITLE -* @description String representing the title applied to buttons of type -* "checkbox" when checked. -* @default "Checked. Click to uncheck." -* @final -* @type String -*/ -CHECKBOX_CHECKED_TITLE: "Checked. Click to uncheck.", - - -/** -* @property MENUBUTTON_DEFAULT_TITLE -* @description String representing the default title applied to buttons of -* type "menubutton." -* @default "Menu collapsed. Click to expand." -* @final -* @type String -*/ -MENUBUTTON_DEFAULT_TITLE: "Menu collapsed. Click to expand.", - - -/** -* @property MENUBUTTON_MENU_VISIBLE_TITLE -* @description String representing the title applied to buttons of type -* "menubutton" when the button's menu is visible. -* @default "Menu expanded. Click or press Esc to collapse." -* @final -* @type String -*/ -MENUBUTTON_MENU_VISIBLE_TITLE: - "Menu expanded. Click or press Esc to collapse.", - - -/** -* @property SPLITBUTTON_DEFAULT_TITLE -* @description String representing the default title applied to buttons of -* type "splitebutton." -* @default "Menu collapsed. Click inside option region or press -* Ctrl + Shift + M to show the menu." -* @final -* @type String -*/ -SPLITBUTTON_DEFAULT_TITLE: - "Menu collapsed. Click inside option region or press Ctrl + Shift + M to show the menu.", - - -/** -* @property SPLITBUTTON_OPTION_VISIBLE_TITLE -* @description String representing the title applied to buttons of type -* "splitbutton" when the button's menu is visible. -* @default "Menu expanded. Press Esc or Ctrl + Shift + M to hide the menu." -* @final -* @type String -*/ -SPLITBUTTON_OPTION_VISIBLE_TITLE: - "Menu expanded. Press Esc or Ctrl + Shift + M to hide the menu.", - - -/** -* @property SUBMIT_TITLE -* @description String representing the title applied to buttons of -* type "submit." -* @default "Click to submit form." -* @final -* @type String -*/ -SUBMIT_TITLE: "Click to submit form.", - - - -// Protected attribute setter methods - - -/** -* @method _setType -* @description Sets the value of the button's "type" attribute. -* @protected -* @param {String} p_sType String indicating the value for the button's -* "type" attribute. -*/ -_setType: function(p_sType) { - - if(p_sType == "splitbutton") { - - this.on("option", this._onOption); - - } - -}, - - -/** -* @method _setLabel -* @description Sets the value of the button's "label" attribute. -* @protected -* @param {String} p_sLabel String indicating the value for the button's -* "label" attribute. -*/ -_setLabel: function(p_sLabel) { - - this._button.innerHTML = p_sLabel; - -}, - - -/** -* @method _setTabIndex -* @description Sets the value of the button's "tabindex" attribute. -* @protected -* @param {Number} p_nTabIndex Number indicating the value for the button's -* "tabindex" attribute. -*/ -_setTabIndex: function(p_nTabIndex) { - - this._button.tabIndex = p_nTabIndex; - -}, - - -/** -* @method _setTitle -* @description Sets the value of the button's "title" attribute. -* @protected -* @param {String} p_nTabIndex Number indicating the value for the button's -* "title" attribute. -*/ -_setTitle: function(p_sTitle) { - - if(this.get("type") != "link") { - - var sTitle = p_sTitle; - - if(!sTitle) { - - - var sType = this.get("type"); - - switch(sType) { - - case "radio": - - sTitle = this.RADIO_DEFAULT_TITLE; - - break; - - case "checkbox": - - sTitle = this.CHECKBOX_DEFAULT_TITLE; - - break; - - case "menubutton": - - sTitle = this.MENUBUTTON_DEFAULT_TITLE; - - break; - - case "splitbutton": - - sTitle = this.SPLITBUTTON_DEFAULT_TITLE; - - break; - - case "submit": - - sTitle = this.SUBMIT_TITLE; - - break; - - } - - } - - this._button.title = sTitle; - - } - -}, - - -/** -* @method _setDisabled -* @description Sets the value of the button's "disabled" attribute. -* @protected -* @param {Boolean} p_bDisabled Boolean indicating the value for the button's -* "disabled" attribute. -*/ -_setDisabled: function(p_bDisabled) { - - if(this.get("type") != "link") { - - if(p_bDisabled) { - - if(this.hasFocus()) { - - this.blur(); - - } - - this._button.setAttribute("disabled", "disabled"); - - this.addClass("disabled"); - - } - else { - - this._button.removeAttribute("disabled"); - - this.removeClass("disabled"); - - } - - } - -}, - - -/** -* @method _setAccessKey -* @description Sets the value of the button's "accesskey" attribute. -* @protected -* @param {String} p_sAccessKey String indicating the value for the button's -* "accesskey" attribute. -*/ -_setAccessKey: function(p_sAccessKey) { - - this._button.accessKey = p_sAccessKey; - -}, - - -/** -* @method _setHref -* @description Sets the value of the button's "href" attribute. -* @protected -* @param {String} p_sHref String indicating the value for the button's -* "href" attribute. -*/ -_setHref: function(p_sHref) { - - if(this.get("type") == "link") { - - this._button.href = p_sHref; - - } - -}, - - -/** -* @method _setTarget -* @description Sets the value of the button's "target" attribute. -* @protected -* @param {String} p_sTarget String indicating the value for the button's -* "target" attribute. -*/ -_setTarget: function(p_sTarget) { - - if(this.get("type") == "link") { - - this._button.setAttribute("target", p_sTarget); - - } - -}, - - -/** -* @method _setChecked -* @description Sets the value of the button's "target" attribute. -* @protected -* @param {Boolean} p_bChecked Boolean indicating the value for the button's -* "checked" attribute. -*/ -_setChecked: function(p_bChecked) { - - var sType = this.get("type"), - sTitle; - - if(sType == "checkbox" || sType == "radio") { - - if(p_bChecked) { - - this.addClass("checked"); - - sTitle = (sType == "radio") ? - this.RADIO_CHECKED_TITLE : - this.CHECKBOX_CHECKED_TITLE; - - } - else { - - this.removeClass("checked"); - - sTitle = (sType == "radio") ? - this.RADIO_DEFAULT_TITLE : - this.CHECKBOX_DEFAULT_TITLE; - - } - - this.set("title", sTitle); - - } - -}, - - -/** -* @method _setMenu -* @description Sets the value of the button's "menu" attribute. -* @protected -* @param {Object} p_oMenu Object indicating the value for the button's -* "menu" attribute. -*/ -_setMenu: function(p_oMenu) { - - var Menu = YAHOO.widget.Menu, - oMenu, - me = this; - - if(!Menu) { - - this.logger.log("YAHOO.widget.Menu dependency not met.", "error"); - - return false; - - } - - - function initMenu() { - - if(oMenu) { - - oMenu.showEvent.subscribe(this._onMenuShow, this, true); - oMenu.hideEvent.subscribe(this._onMenuHide, this, true); - oMenu.keyDownEvent.subscribe(this._onMenuKeyDown, this, true); - oMenu.renderEvent.subscribe(this._onMenuRender, this, true); - oMenu.clickEvent.subscribe(this._onMenuClick, this, true); - oMenu.itemAddedEvent.subscribe(this._onMenuItemAdded, this, true); - - var oSrcElement = oMenu.srcElement; - - if(oSrcElement && oSrcElement.tagName.toUpperCase() == "SELECT") { - - oSrcElement.style.display = "none"; - oSrcElement.parentNode.removeChild(oSrcElement); - - } - - this._menu = oMenu; - - } - else { - - this._menu.destroy(); - this._menu = null; - - } - - } - - - if(p_oMenu instanceof Menu) { - - oMenu = p_oMenu; - - var aItems = oMenu.getItems(), - nItems = aItems.length, - oItem; - - if(nItems > 0) { - - var i = nItems - 1; - - do { - - oItem = aItems[i]; - - if(oItem) { - - oItem.cfg.subscribeToConfigEvent( - "selected", - this._onMenuItemSelected, - oItem, - this - ); - - } - - } - while(i--); - - } - - initMenu.call(this); - - } - else if(Lang.isArray(p_oMenu)) { - - this.on("appendTo", function() { - - oMenu = new Menu( - Dom.generateId(), - { lazyload: true, itemdata: p_oMenu } - ); - - initMenu.call(me); - - }); - - } - else if(Lang.isString(p_oMenu)) { - - Event.onContentReady(p_oMenu, function() { - - oMenu = new Menu(this, { lazyload: true }); - - initMenu.call(me); - - }); - - } - else if(p_oMenu && p_oMenu.nodeName) { - - oMenu = new Menu(p_oMenu, { lazyload: true }); - - initMenu.call(this); - - } - -}, - - -/** -* @method _setOnClick -* @description Sets the value of the button's "onclick" attribute. -* @protected -* @param {Object} p_oObject Object indicating the value for the button's -* "onclick" attribute. -*/ -_setOnClick: function(p_oObject) { - - /* - Remove any existing listeners if a "click" event handler has already - been specified. - */ - - if( - this._onclickAttributeValue && - (this._onclickAttributeValue != p_oObject) - ) { - - this.removeListener("click", this._onclickAttributeValue.fn); - - this._onclickAttributeValue = null; - - } - - - if( - !this._onclickAttributeValue && - Lang.isObject(p_oObject) && - Lang.isFunction(p_oObject.fn) - ) { - - this.on("click", p_oObject.fn, p_oObject.obj, p_oObject.scope); - - this._onclickAttributeValue = p_oObject; - - } - -}, - - - -// Protected methods - - -/** -* @method _createButtonElement -* @description Creates the button's element. -* @protected -* @param {String} p_sType String indicating the type of element to create. -* @return {HTMLElement} -*/ -_createButtonElement: function(p_sType) { - - var sTagName = this.TAG_NAME, - oElement = document.createElement(sTagName); - - oElement.innerHTML = - - "<" + sTagName + " class=\"first-child\">" + - (p_sType == "link" ? "" : "") + - ""; - - return oElement; - -}, - - -/** -* @method _isActivationKey -* @description Determines if the specified keycode is one that toggles the -* button's "active" state. -* @protected -* @param {Number} p_nKeyCode Number representing the keycode to be evaluated. -* @return {Boolean} -*/ -_isActivationKey: function(p_nKeyCode) { - - var sType = this.get("type"), - aKeyCodes = (sType == "checkbox" || sType == "radio") ? - this.CHECK_ACTIVATION_KEYS : this.ACTIVATION_KEYS, - - nKeyCodes = aKeyCodes.length; - - if(nKeyCodes > 0) { - - var i = nKeyCodes - 1; - - do { - - if(p_nKeyCode == aKeyCodes[i]) { - - return true; - - } - - } - while(i--); - - } - -}, - - -/** -* @method _isSplitButtonOptionKey -* @description Determines if the specified keycode is one that toggles the -* display of the split button's menu. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @return {Boolean} -*/ -_isSplitButtonOptionKey: function(p_oEvent) { - - return ( - p_oEvent.ctrlKey && - p_oEvent.shiftKey && - Event.getCharCode(p_oEvent) == 77 - ); - -}, - - -/** -* @method _addListenersToForm -* @description Adds event handlers to the button's form. -* @protected -*/ -_addListenersToForm: function() { - - var oForm = this.getForm(); - - if(oForm) { - - Event.on(oForm, "reset", this._onFormReset, null, this); - Event.on(oForm, "submit", this._onFormSubmit, null, this); - - var oSrcElement = this.get("srcelement"); - - - if ( - (m_bIE || m_bGecko) && - ( - this.get("type") == "submit" || - (oSrcElement && oSrcElement.type == "submit") - ) - ) { - - var aListeners = Event.getListeners(oForm, "keydown"), - bHasKeyDownListener = false; - - if(aListeners) { - - var nListeners = aListeners.length; - - if(nListeners > 0) { - - var i = nListeners - 1; - - do { - - if( - aListeners[i].fn == - YAHOO.widget.Button.onFormKeyDown - ) { - - bHasKeyDownListener = true; - break; - - } - - } - while(i--); - - } - - } - - - if(!bHasKeyDownListener) { - - Event.on( - oForm, - "keydown", - YAHOO.widget.Button.onFormKeyDown, - null, - this - ); - - } - - } - - } - -}, - - -_originalMaxHeight: -1, - - -/** -* @method _showMenu -* @description Shows the button's menu. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event) that triggered the display of -* the menu. -*/ -_showMenu: function(p_oEvent) { - - var oMenu = this._menu; - - if(oMenu) { - - YAHOO.widget.MenuManager.hideVisible(); - - oMenu.cfg.applyConfig({ - context:[this.get("id"), "tl", "bl"], - clicktohide: false, - constraintoviewport: false, - visible: true - }); - - oMenu.cfg.fireQueue(); - - /* - Stop the propagation of the event so that the MenuManager - doesn't blur the menu after it gets focus. - */ - - if(p_oEvent.type == "mousedown") { - - Event.stopPropagation(p_oEvent); - - } - - this._menu.focus(); - - - var nViewportHeight = Dom.getViewportHeight(), - nMenuHeight = oMenu.element.offsetHeight; - - - if((oMenu.cfg.getProperty("y") + nMenuHeight) > nViewportHeight) { - - this.logger.log("Current menu position will place a portion, or " + - "the entire menu outside the boundary of the viewport. " + - "Repositioning the menu to stay inside the viewport."); - - oMenu.align("bl", "tl"); - - var nY = oMenu.cfg.getProperty("y"), - - nScrollTop = ( - document.documentElement.scrollTop || - document.body.scrollTop - ); - - - if(nScrollTop >= nY) { - - if(this._originalMaxHeight == -1) { - - this._originalMaxHeight = - oMenu.cfg.getProperty("maxheight"); - - } - - oMenu.cfg.setProperty( - "maxheight", - (nMenuHeight - ((nScrollTop - nY) + 20)) - ); - - oMenu.align("bl", "tl"); - - } - - } - - oMenu.cfg.setProperty("constraintoviewport", true); - - } - -}, - - -/** -* @method _hideMenu -* @description Hides the button's menu. -* @protected -*/ -_hideMenu: function() { - - var oMenu = this._menu; - - if(oMenu && oMenu.cfg.getProperty("visible")) { - - oMenu.hide(); - - } - -}, - - - - -// Protected event handlers - - -/** -* @method _onMouseOver -* @description "mouseover" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onMouseOver: function(p_oEvent) { - - if(!this._hasMouseEventHandlers) { - - this.on("mouseout", this._onMouseOut); - this.on("mousedown", this._onMouseDown); - this.on("mouseup", this._onMouseUp); - - this._hasMouseEventHandlers = true; - - } - - this.addClass("hover"); - - if(this._activationButtonPressed) { - - this.addClass("active"); - - } - - - if(this._bOptionPressed) { - - this.addClass("activeoption"); - - } - -}, - - -/** -* @method _onMouseOut -* @description "mouseout" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onMouseOut: function(p_oEvent) { - - this.removeClass("hover"); - - if(this.get("type") != "menubutton") { - - this.removeClass("active"); - - } - - if(this._activationButtonPressed || this._bOptionPressed) { - - Event.on(document, "mouseup", this._onDocumentMouseUp, null, this); - - } - -}, - - -/** -* @method _onDocumentMouseUp -* @description "mouseup" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onDocumentMouseUp: function(p_oEvent) { - - this._activationButtonPressed = false; - this._bOptionPressed = false; - - var sType = this.get("type"); - - if(sType == "menubutton" || sType == "splitbutton") { - - this.removeClass((sType == "menubutton" ? "active" : "activeoption")); - - this._hideMenu(); - - } - - Event.removeListener(document, "mouseup", this._onDocumentMouseUp); - -}, - - -/** -* @method _onMouseDown -* @description "mousedown" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onMouseDown: function(p_oEvent) { - - if((p_oEvent.which || p_oEvent.button) == 1) { - - if(!this.hasFocus()) { - - this.focus(); - - } - - - var sType = this.get("type"); - - - if(sType == "splitbutton") { - - var oElement = this.get("element"), - nX = Event.getPageX(p_oEvent) - Dom.getX(oElement); - - if((oElement.offsetWidth - this.OPTION_AREA_WIDTH) < nX) { - - this.fireEvent("option", p_oEvent); - - } - else { - - this.addClass("active"); - - this._activationButtonPressed = true; - - } - - } - else if(sType == "menubutton") { - - if(this.hasClass("active")) { - - this._hideMenu(); - - this._activationButtonPressed = false; - - } - else { - - this._showMenu(p_oEvent); - - this._activationButtonPressed = true; - - } - - } - else { - - this.addClass("active"); - - this._activationButtonPressed = true; - - } - - - - if(sType == "splitbutton" || sType == "menubutton") { - - var me = this; - - - function onMouseUp() { - - me._hideMenu(); - me.removeListener("mouseup", onMouseUp); - - } - - - this._hideMenuTimerId = window.setTimeout(function() { - - me.on("mouseup", onMouseUp); - - }, 250); - - } - - } - -}, - - -/** -* @method _onMouseUp -* @description "mouseup" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onMouseUp: function(p_oEvent) { - - if(this._hideMenuTimerId) { - - window.clearTimeout(this._hideMenuTimerId); - - } - - var sType = this.get("type"); - - if(sType == "checkbox" || sType == "radio") { - - this.set("checked", !(this.get("checked"))); - - } - - - this._activationButtonPressed = false; - - - if(this.get("type") != "menubutton") { - - this.removeClass("active"); - - } - -}, - - -/** -* @method _onFocus -* @description "focus" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onFocus: function(p_oEvent) { - - this.addClass("focus"); - - if(this._activationKeyPressed) { - - this.addClass("active"); - - } - - m_oFocusedButton = this; - - - if(!this._hasKeyEventHandlers) { - - var oElement = this._button; - - Event.on(oElement, "blur", this._onBlur, null, this); - Event.on(oElement, "keydown", this._onKeyDown, null, this); - Event.on(oElement, "keyup", this._onKeyUp, null, this); - - this._hasKeyEventHandlers = true; - - } - - - this.fireEvent("focus", p_oEvent); - -}, - - -/** -* @method _onBlur -* @description "blur" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onBlur: function(p_oEvent) { - - this.removeClass("focus"); - - if(this.get("type") != "menubutton") { - - this.removeClass("active"); - - } - - if(this._activationKeyPressed) { - - Event.on(document, "keyup", this._onDocumentKeyUp, null, this); - - } - - - m_oFocusedButton = null; - - this.fireEvent("blur", p_oEvent); - -}, - - -/** -* @method _onDocumentKeyUp -* @description "keyup" event handler for the document. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onDocumentKeyUp: function(p_oEvent) { - - if(this._isActivationKey(Event.getCharCode(p_oEvent))) { - - this._activationKeyPressed = false; - - Event.removeListener(document, "keyup", this._onDocumentKeyUp); - - } - -}, - - -/** -* @method _onKeyDown -* @description "keydown" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onKeyDown: function(p_oEvent) { - - if( - this.get("type") == "splitbutton" && - this._isSplitButtonOptionKey(p_oEvent) - ) { - - this.fireEvent("option", p_oEvent); - - } - else if(this._isActivationKey(Event.getCharCode(p_oEvent))) { - - if(this.get("type") == "menubutton") { - - this._showMenu(p_oEvent); - - } - else { - - this._activationKeyPressed = true; - - this.addClass("active"); - - } - - } - - - var oMenu = this._menu; - - if( - oMenu && oMenu.cfg.getProperty("visible") && - Event.getCharCode(p_oEvent) == 27 - ) { - - oMenu.hide(); - this.focus(); - - } - -}, - - -/** -* @method _onKeyUp -* @description "keyup" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onKeyUp: function(p_oEvent) { - - if(this._isActivationKey(Event.getCharCode(p_oEvent))) { - - var sType = this.get("type"); - - if(sType == "checkbox" || sType == "radio") { - - this.set("checked", !(this.get("checked"))); - - } - - this._activationKeyPressed = false; - - if(this.get("type") != "menubutton") { - - this.removeClass("active"); - - } - - } - -}, - - -/** -* @method _onClick -* @description "click" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onClick: function(p_oEvent) { - - var sType = this.get("type"), - sTitle; - - switch(sType) { - - case "radio": - case "checkbox": - - if(this.get("checked")) { - - sTitle = (sType == "radio") ? - this.RADIO_CHECKED_TITLE : - this.CHECKBOX_CHECKED_TITLE; - - } - else { - - sTitle = (sType == "radio") ? - this.RADIO_DEFAULT_TITLE : - this.CHECKBOX_DEFAULT_TITLE; - - } - - this.set("title", sTitle); - - break; - - case "submit": - - this.submitForm(); - - break; - - case "reset": - - var oForm = this.getForm(); - - if(oForm) { - - oForm.reset(); - - } - - break; - - case "menubutton": - - sTitle = this._menu.cfg.getProperty("visible") ? - this.MENUBUTTON_MENU_VISIBLE_TITLE : - this.MENUBUTTON_DEFAULT_TITLE; - - this.set("title", sTitle); - - break; - - case "splitbutton": - - var oElement = this.get("element"), - nX = Event.getPageX(p_oEvent) - Dom.getX(oElement); - - if((oElement.offsetWidth - this.OPTION_AREA_WIDTH) < nX) { - - return false; - - } - else { - - this._hideMenu(); - - var oSrcElement = this.get("srcelement"); - - if(oSrcElement && oSrcElement.type == "submit") { - - this.submitForm(); - - } - - } - - sTitle = this._menu.cfg.getProperty("visible") ? - this.SPLITBUTTON_OPTION_VISIBLE_TITLE : - this.SPLITBUTTON_DEFAULT_TITLE; - - this.set("title", sTitle); - - break; - - } - -}, - - -/** -* @method _onAppendTo -* @description "appendTo" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onAppendTo: function(p_oEvent) { - - /* - It is necessary to call "getForm" using "setTimeout" to make sure that - the button's "form" property returns a node reference. Sometimes, if - you try to get the reference immediately after appending the field, it - is null. - */ - - var me = this; - - window.setTimeout(function() { - - me._addListenersToForm(); - - }, 0); - -}, - - -/** -* @method _onFormSubmit -* @description "submit" event handler for the button's form. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onFormSubmit: function(p_oEvent) { - - var sType = this.get("type"), - oMenuItem = this.get("selectedMenuItem"), - oForm = this.getForm(); - - - if(sType == "radio" || sType == "checkbox") { - - YAHOO.log("Creating hidden field for button: " + this); - - this.createHiddenField(); - - } - else if(oMenuItem) { - - var oSrcElement = this._menu.srcElement; - - if(oSrcElement && oSrcElement.tagName.toUpperCase() == "SELECT") { - - oForm.appendChild(oSrcElement); - oSrcElement.selectedIndex = oMenuItem.index; - - } - else { - - var oValue = (oMenuItem.value === null || oMenuItem.value === "") ? - oMenuItem.cfg.getProperty("text") : - oMenuItem.value; - - - if(oValue) { - - var oField = createInputElement( - "hidden", - (this.get("name") + "_options"), - oValue - ); - - oForm.appendChild(oField); - - } - - } - - } - -}, - - -/** -* @method _onFormReset -* @description "reset" event handler for the button's form. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onFormReset: function(p_oEvent) { - - var sType = this.get("type"); - - if(sType == "checkbox" || sType == "radio") { - - this.resetValue("checked"); - - } - - if(this._menu) { - - this.resetValue("selectedMenuItem"); - - } - -}, - - -/** -* @method _onDocumentMouseDown -* @description "mousedown" event handler for the document. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onDocumentMouseDown: function(p_oEvent) { - - var oTarget = Event.getTarget(p_oEvent), - oButtonElement = this.get("element"), - oMenuElement = this._menu.element; - - if( - oTarget != oButtonElement && - !Dom.isAncestor(oButtonElement, oTarget) && - oTarget != oMenuElement && - !Dom.isAncestor(oMenuElement, oTarget) - ) { - - this._hideMenu(); - - Event.removeListener( - document, - "mousedown", - this._onDocumentMouseDown - ); - - } - -}, - - -/** -* @method _onOption -* @description "option" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onOption: function(p_oEvent) { - - if(this.hasClass("activeoption")) { - - this._hideMenu(); - - this._bOptionPressed = false; - - } - else { - - this._showMenu(p_oEvent); - - this._bOptionPressed = true; - - } - -}, - - -/** -* @method _onMenuShow -* @description "show" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuShow: function(p_sType, p_aArgs) { - - Event.on(document, "mousedown", this._onDocumentMouseDown, null, this); - - var sTitle, - sClass; - - if(this.get("type") == "splitbutton") { - - sTitle = this.SPLITBUTTON_OPTION_VISIBLE_TITLE; - sClass = "activeoption"; - - } - else { - - sTitle = this.MENUBUTTON_MENU_VISIBLE_TITLE; - sClass = "active"; - - } - - this.addClass(sClass); - this.set("title", sTitle); - -}, - - -/** -* @method _onMenuHide -* @description "hide" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuHide: function(p_sType, p_aArgs) { - - if(this._originalMaxHeight != -1) { - - this._menu.cfg.setProperty("maxheight", this._originalMaxHeight); - - } - - - var sTitle, - sClass; - - if(this.get("type") == "splitbutton") { - - sTitle = this.SPLITBUTTON_DEFAULT_TITLE; - sClass = "activeoption"; - - } - else { - - sTitle = this.MENUBUTTON_DEFAULT_TITLE; - sClass = "active"; - } - - - this.removeClass(sClass); - this.set("title", sTitle); - - - if(this.get("type") == "splitbutton") { - - this._bOptionPressed = false; - - } - -}, - - -/** -* @method _onMenuKeyDown -* @description "keydown" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuKeyDown: function(p_sType, p_aArgs) { - - var oEvent = p_aArgs[0]; - - if(Event.getCharCode(oEvent) == 27) { - - this.focus(); - - if(this.get("type") == "splitbutton") { - - this._bOptionPressed = false; - - } - - } - -}, - - -/** -* @method _onMenuRender -* @description "render" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuRender: function(p_sType, p_aArgs) { - - this.get("element").parentNode.appendChild(this._menu.element); - -}, - - -/** -* @method _onMenuItemSelected -* @description "selectedchange" event handler for each item in the -* button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuItem} -* p_oItem Object representing the menu item that subscribed to the event. -*/ -_onMenuItemSelected: function(p_sType, p_aArgs, p_oItem) { - - this.set("selectedMenuItem", p_oItem); - -}, - - -/** -* @method _onMenuItemAdded -* @description "itemadded" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuItem} -* p_oItem Object representing the menu item that subscribed to the event. -*/ -_onMenuItemAdded: function(p_sType, p_aArgs, p_oItem) { - - var oItem = p_aArgs[0]; - - oItem.cfg.subscribeToConfigEvent( - "selected", - this._onMenuItemSelected, - oItem, - this - ); - -}, - - -/** -* @method _onMenuClick -* @description "click" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuClick: function(p_sType, p_aArgs) { - - var oItem = p_aArgs[1]; - - if(oItem) { - - var oSrcElement = this.get("srcelement"); - - if(oSrcElement && oSrcElement.type == "submit") { - - this.submitForm(); - - } - - this._hideMenu(); - - } - -}, - - - -// Public methods - - -/** -* @method createHiddenField -* @description Creates the button's hidden form field and appends it to its -* parent form. -* @return {HTMLInputElement} -*/ -createHiddenField: function () { - - if (!this.get("disabled")) { - - var sType = this.get("type"), - - bCheckable = (sType == "checkbox" || sType == "radio"), - - oField = createInputElement( - - /* - Use "submit" type for IE so that the input - element will be able to be clicked via a call to - the "click" method by the "submitForm" method. - */ - - (bCheckable ? sType : (m_bIE ? "submit" : "hidden")), - this.get("name"), - this.get("value"), - this.get("checked") - ), - - oForm = this.getForm(); - - - if (oField) { - - if (bCheckable || oField.type == "submit") { - - oField.style.display = "none"; - - } - - - if (oForm) { - - var oHiddenField = this._hiddenField; - - if (oHiddenField && Dom.inDocument(oHiddenField)) { - - oForm.replaceChild(oField, oHiddenField); - - } - else { - - oForm.appendChild(oField); - - } - - } - - this._hiddenField = oField; - - return oField; - - } - - } - -}, - - -/** -* @method submitForm -* @description Submits the form to which the button belongs. -* @protected -*/ -submitForm: function(p_oMenuItem) { - - var oForm = this.getForm(); - - if (oForm) { - - var oInput = this.createHiddenField(); - - if (m_bIE) { - - /* - Clicking the button via a call to the "click" method will - cause IE to both fire the form's "submit" event as well as - submit the form. Originally tried just firing the "submit" - event via "fireEvent," but then the event could not - be cancelled. - */ - - oInput.click(); - - } - else { // Gecko, Opera, and Safari - - var oEvent = document.createEvent("HTMLEvents"); - oEvent.initEvent("submit", true, true); - - /* - In Safari, dispatching a "submit" event to a form WILL cause - the form's "submit" event to fire, but WILL NOT submit the - form. Therefore, we need to call the "submit" method as well. - */ - - var bSubmitForm = oForm.dispatchEvent(oEvent); - - if(m_bSafari && bSubmitForm) { - - oForm.submit(); - - } - - } - - } - -}, - - -/** -* @method init -* @description The Button class's initialization method. -* @param {String} p_oElement String specifying the id attribute of the -* <input>, <a> or -* <span> element to be used to create the button. -* @param {HTMLInputElement|HTMLElement} p_oElement Object reference for the -* <input>, <a> or -* <span> element to be used to create the button. -* @param {Object} p_oElement Object literal specifying a set of configuration -* attributes used to create the button. -* @param {Object} p_oAttributes Optional. Object literal specifying a set of -* configuration attributes used to create the button. -*/ -init: function(p_oElement, p_oAttributes) { - - var sTagName = p_oAttributes.type == "link" ? "A" : "BUTTON", - oSrcElement = p_oAttributes.srcelement; - - - this._button = p_oElement.getElementsByTagName(sTagName)[0]; - - - YAHOO.widget.Button.superclass.init.call( - this, p_oElement, - p_oAttributes - ); - - - m_oButtons[this.get("id")] = this; - - - this.addClass(this.CSS_CLASS_NAME); - - if(m_bIE && !m_bIE7) { - - this.addClass("ie6"); - - } - - this.addClass(this.get("type")); - - Event.on(this._button, "focus", this._onFocus, null, this); - this.on("mouseover", this._onMouseOver); - this.on("click", this._onClick); - this.on("appendTo", this._onAppendTo); - - var oContainer = this.get("container"), - oElement = this.get("element"); - - - if(oContainer) { - - if(Lang.isString(oContainer)) { - - var me = this; - - Event.onContentReady(oContainer, function() { - - me.appendTo(this); - - }); - - } - else { - - this.appendTo(oContainer); - - } - - } - else if( - !Dom.inDocument(oElement) && - oSrcElement && - oSrcElement.tagName.toUpperCase() == "INPUT" - ) { - - var oParentNode = oSrcElement.parentNode; - - if(oParentNode) { - - this.fireEvent("beforeAppendTo", { - type: "beforeAppendTo", - target: oParentNode - }); - - oParentNode.replaceChild(oElement, oSrcElement); - - this.fireEvent("appendTo", { - type: "appendTo", - target: oParentNode - }); - - } - - } - else if( - Dom.inDocument(oElement) && - oSrcElement.tagName.toUpperCase() == "SPAN" - ) { - - this._addListenersToForm(); - - } - - this.logger.log("Initialization completed."); - -}, - - -/** -* @method initAttributes -* @description Initializes all of the configuration attributes used to create -* the button. -* @param {Object} p_oAttributes Object literal specifying a set of -* configuration attributes used to create the button. -*/ -initAttributes: function(p_oAttributes) { - - var oAttributes = p_oAttributes || {}; - - YAHOO.widget.Button.superclass.initAttributes.call(this, oAttributes); - - - /** - * @config type - * @description String specifying the button's type. Possible values are: - * "button," "link," "submit," "reset," "checkbox," "radio," "menubutton," - * and "splitbutton." - * @default "button" - * @type String - */ - this.setAttributeConfig("type", { - - value: (oAttributes.type || "button"), - validator: Lang.isString, - writeOnce: true, - method: this._setType - - }); - - - /** - * @config label - * @description String specifying the button's text label or innerHTML. - * @default null - * @type String - */ - this.setAttributeConfig("label", { - - value: oAttributes.label, - validator: Lang.isString, - method: this._setLabel - - }); - - - /** - * @config value - * @description Object specifying the value for the button. - * @default null - * @type Object - */ - this.setAttributeConfig("value", { - - value: oAttributes.value - - }); - - - /** - * @config name - * @description String specifying the name for the button. - * @default null - * @type String - */ - this.setAttributeConfig("name", { - - value: oAttributes.name, - validator: Lang.isString - - }); - - - /** - * @config tabindex - * @description Number specifying the tabindex for the button. - * @default null - * @type Number - */ - this.setAttributeConfig("tabindex", { - - value: oAttributes.tabindex, - validator: Lang.isNumber, - method: this._setTabIndex - - }); - - - /** - * @config title - * @description String specifying the title for the button. - * @default null - * @type String - */ - this.configureAttribute("title", { - - value: oAttributes.title, - validator: Lang.isString, - method: this._setTitle - - }); - - - /** - * @config disabled - * @description Boolean indicating if the button should be disabled. - * (Disabled buttons are dimmed and will not respond to user input - * or fire events. Does not apply to button's of type "link.") - * @default false - * @type Boolean - */ - this.setAttributeConfig("disabled", { - - value: (oAttributes.disabled || false), - validator: Lang.isBoolean, - method: this._setDisabled - - }); - - - /** - * @config href - * @description String specifying the href for the button. Applies only to - * buttons of type "link." - * @type String - */ - this.setAttributeConfig("href", { - - value: oAttributes.href, - validator: Lang.isString, - method: this._setHref - - }); - - - /** - * @config target - * @description String specifying the target for the button. Applies only - * to buttons of type "link." - * @type String - */ - this.setAttributeConfig("target", { - - value: oAttributes.target, - validator: Lang.isString, - method: this._setTarget - - }); - - - /** - * @config checked - * @description Boolean indicating if the button is checked. Applies only - * to buttons of type "radio" and "checkbox." - * @default false - * @type Boolean - */ - this.setAttributeConfig("checked", { - - value: (oAttributes.checked || false), - validator: Lang.isBoolean, - method: this._setChecked - - }); - - - /** - * @config container - * @description HTML element reference or string specifying the id - * attribute of the HTML element that the button's markup should be - * rendered into. - * @type HTMLElement|String - * @default null - */ - this.setAttributeConfig("container", { - - value: oAttributes.container - - }); - - - /** - * @config srcelement - * @description Object reference to the HTML element (either - * <input> or <span>) used to - * create the button. - * @type HTMLElement|String - * @default null - */ - this.setAttributeConfig("srcelement", { - - value: oAttributes.srcelement, - writeOnce: true - - }); - - - /** - * @config menu - * @description Object specifying the menu for the button. The value can be - * one of the following: - *
          - *
        • Object specifying a - * YAHOO.widget.Menu instance.
        • - *
        • String specifying the id attribute of the <div> - * element used to create the menu.
        • - *
        • String specifying the id attribute of the - * <select> element used to create the menu.
        • - *
        • Object specifying the <div> element used to - * create the menu.
        • - *
        • Object specifying the <select> element used to - * create the menu.
        • - *
        • Array of object literals, each representing a set of - * YAHOO.widget.MenuItem - * configuration attributes.
        • - *
        • Array of strings representing the text labels for each menu item in - * the menu.
        • - *
        - * @type HTMLElement|String|Array - * @default null - */ - this.setAttributeConfig("menu", { - - value: null, - method: this._setMenu - - }); - - - /** - * @config selectedMenuItem - * @description Reference to the item in the button's menu that is - * currently selected. - * @type YAHOO.widget.MenuItem - * @default null - */ - this.setAttributeConfig("selectedMenuItem", { - - value: null - - }); - - - /** - * @config onclick - * @description Object literal representing the code to be executed when - * the button is clicked. Format:
        {
        - * fn: Function, // The handler to call when the - * event fires.
        obj: Object, // An object to - * pass back to the handler.
        scope: Object // - * The object to use for the scope of the handler.
        }
        - * @type Object - * @default null - */ - this.setAttributeConfig("onclick", { - - value: oAttributes.onclick, - method: this._setOnClick - - }); - -}, - - -/** -* @method focus -* @description Causes the button to receive the focus and fires the button's -* "focus" event. -*/ -focus: function() { - - if(!this.get("disabled")) { - - this._button.focus(); - - } - -}, - - -/** -* @method blur -* @description Causes the button to lose focus and fires the button's -* "blur" event. -*/ -blur: function() { - - if(!this.get("disabled")) { - - this._button.blur(); - - } - -}, - - -/** -* @method hasFocus -* @description Returns a boolean indicating whether or not the button has focus. -* @return {Boolean} -*/ -hasFocus: function() { - - return (m_oFocusedButton == this); - -}, - - -/** -* @method isActive -* @description Returns a boolean indicating whether or not the button is active. -* @return {Boolean} -*/ -isActive: function() { - - return this.hasClass("active"); - -}, - - -/** -* @method getMenu -* @description Returns a reference to the button's menu. -* @return {YAHOO.widget.Menu} -*/ -getMenu: function() { - - return this._menu; - -}, - - -/** -* @method getForm -* @description Returns a reference to the button's parent form. -* @return {HTMLFormElement} -*/ -getForm: function() { - - return this._button.form; - -}, - - -/** -* @method getHiddenField -* @description Returns a reference to the <input> element -* used when the button's parent form is submitted. -* @return {HTMLInputElement} -*/ -getHiddenField: function() { - - return this._hiddenField; - -}, - - -/** -* @method destroy -* @description Removes the button's element from its parent element and -* removes all event handlers. -*/ -destroy: function() { - - this.logger.log("Destroying ..."); - - var oElement = this.get("element"), - oParentNode = oElement.parentNode, - oMenu = this._menu; - - if(oMenu) { - - this.logger.log("Destroying menu."); - - oMenu.destroy(); - - } - - this.logger.log("Removing DOM event handlers."); - - Event.purgeElement(oElement); - Event.purgeElement(this._button); - Event.removeListener(document, "mouseup", this._onDocumentMouseUp); - Event.removeListener(document, "keyup", this._onDocumentKeyUp); - Event.removeListener(document, "mousedown", this._onDocumentMouseDown); - - - var oForm = this.getForm(); - - if(oForm) { - - Event.removeListener(oForm, "reset", this._onFormReset); - Event.removeListener(oForm, "submit", this._onFormSubmit); - - } - - - oParentNode.removeChild(oElement); - - this.logger.log("Removing from document."); - - delete m_oButtons[this.get("id")]; - - this.logger.log("Destroyed."); - -}, - - -fireEvent: function(p_sType , p_aArgs) { - - // Disabled buttons should not respond to DOM events - - if(this.DOM_EVENTS[p_sType] && this.get("disabled")) { - - return; - - } - - YAHOO.widget.Button.superclass.fireEvent.call(this, p_sType, p_aArgs); - -}, - - -/** -* @method toString -* @description Returns a string representing the button. -* @return {String} -*/ -toString: function() { - - return ("Button " + this.get("id")); - -} - -}); - - -/** -* @method onFormKeyDown -* @description "keydown" event handler for the button's form. -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -YAHOO.widget.Button.onFormKeyDown = function(p_oEvent) { - - var oTarget = Event.getTarget(p_oEvent), - nCharCode = Event.getCharCode(p_oEvent); - - - if ( - nCharCode == 13 && - oTarget.tagName && - oTarget.tagName.toUpperCase() == "INPUT" - ) { - - var sType = oTarget.type; - - - if( - sType == "text" || sType == "password" || sType == "checkbox" || - sType == "radio" || sType == "file" - ) { - - - function isYUISubmitButton(p_oElement) { - - var sId = p_oElement.id; - - if (sId) { - - var oButton = m_oButtons[sId]; - - if (oButton) { - - var oSrcElement = oButton.get("srcelement"); - - return ( - oButton.get("type") == "submit" || - ( - oSrcElement && - oSrcElement.type == "submit" - ) - ); - - } - - } - - } - - - var aButtons = Dom.getElementsBy( - isYUISubmitButton, - this.TAG_NAME, - this.getForm() - ), - - nButtons = aButtons.length; - - - if (nButtons > 0) { - - m_oButtons[aButtons[0].id].submitForm(); - - } - - - } - - } - -}; - - -/** -* @method addHiddenFieldsToForm -* @description Searches the specified form and adds hidden fields for instances -* of YAHOO.widget.Button that are of type "radio," "checkbox," "menubutton," -* and "splitbutton." -* @param {HTMLFormElement} p_oForm Object reference -* for the form to search. -*/ -YAHOO.widget.Button.addHiddenFieldsToForm = function(p_oForm) { - - var aButtons = Dom.getElementsByClassName("yuibutton", "*", p_oForm), - nButtons = aButtons.length; - - - if(nButtons > 0) { - - YAHOO.log("Form contains " + nButtons + " YUI buttons."); - - var oButton = null, - sType = null, - oMenuItem = null, - oMenu = null; - - for(var i=0; i
        or <a>) that map to -* Button configuration attributes and sets them into a collection that is -* passed to the Button constructor. -* @private -* @param {HTMLInputElement|HTMLAnchorElement} p_oElement Object reference to the HTML -* element (either <input> or <span>) -* used to create the button. -* @param {Object} p_oAttributes Object reference for the collection of -* configuration attributes used to create the button. -*/ -function setAttributesFromSrcElement(p_oElement, p_oAttributes) { - - var me = this; - - /** - * @method setAttributeFromDOMAttribute - * @description Gets the value of the specified DOM attribute and sets it - * into the collection of configuration attributes used to configure - * the button. - * @private - * @param {String} p_sAttribute String representing the name of the - * attribute to retrieve from the DOM element. - */ - function setAttributeFromDOMAttribute(p_sAttribute) { - - if( !(p_sAttribute in p_oAttributes) ) { - - /* - Need to use "getAttributeNode" instead of "getAttribute" - because using "getAttribute," IE will return the innerText of - a <button> for the value attribute rather - than the value of the "value" attribute. - */ - - var oAttribute = p_oElement.getAttributeNode(p_sAttribute); - - - if(oAttribute && ("value" in oAttribute)) { - - - p_oAttributes[p_sAttribute] = oAttribute.value; - - } - - } - - } - - - /** - * @method setFormElementProperties - * @description Gets the value of the attributes from the form element and - * sets them into the collection of configuration attributes used to - * configure the button. - * @private - */ - function setFormElementProperties() { - - setAttributeFromDOMAttribute("type"); - - if( !("disabled" in p_oAttributes) ) { - - p_oAttributes.disabled = p_oElement.disabled; - - } - - setAttributeFromDOMAttribute("name"); - setAttributeFromDOMAttribute("value"); - setAttributeFromDOMAttribute("title"); - - } - - - var sSrcElementTagName = p_oElement.tagName.toUpperCase(); - - - if( !("label" in p_oAttributes) ) { - - // Set the "label" property - - var sText = sSrcElementTagName == "INPUT" ? - p_oElement.value : p_oElement.innerHTML; - - - if(sText && sText.length > 0) { - - p_oAttributes.label = sText; - - } - - } - - - setAttributeFromDOMAttribute("tabindex"); - setAttributeFromDOMAttribute("accesskey"); - - - switch(sSrcElementTagName) { - - case "A": - - p_oAttributes.type = "link"; - - setAttributeFromDOMAttribute("href"); - setAttributeFromDOMAttribute("target"); - - break; - - case "INPUT": - - setFormElementProperties(); - - if( !("checked" in p_oAttributes) ) { - - p_oAttributes.checked = p_oElement.checked; - - } - - break; - - case "BUTTON": - - setFormElementProperties(); - - var oRootNode = p_oElement.parentNode.parentNode; - - if(Dom.hasClass(oRootNode, "checked")) { - - p_oAttributes.checked = true; - - } - - if(Dom.hasClass(oRootNode, "disabled")) { - - p_oAttributes.disabled = true; - - } - - p_oElement.removeAttribute("name"); - p_oElement.removeAttribute("value"); - - p_oElement.setAttribute("type", "button"); - - break; - - } - -} - - -/** -* @method initConfig -* @description Initializes the set of configuration attributes that are used to -* instantiate the button. -* @private -* @param {Object} Object representing the button's set of -* configuration attributes. -*/ -function initConfig(p_oConfig) { - - var oAttributes = p_oConfig.attributes, - oSrcElement = oAttributes.srcelement, - sSrcElementTagName = oSrcElement.tagName.toUpperCase(); - - - if(sSrcElementTagName == this.TAG_NAME) { - - p_oConfig.element = oSrcElement; - - var oFirstChild = getFirstElement(p_oConfig.element); - - Dom.addClass(oFirstChild, "first-child"); - - if(oFirstChild) { - - var oButton = getFirstElement(oFirstChild); - - - if(oButton) { - - var sButtonTagName = oButton.tagName.toUpperCase(); - - - if(sButtonTagName == "A" || sButtonTagName == "BUTTON") { - - setAttributesFromSrcElement.call( - this, - oButton, - oAttributes - ); - - } - - } - - } - - } - else if(sSrcElementTagName == "INPUT") { - - setAttributesFromSrcElement.call(this, oSrcElement, oAttributes); - - } - -} - - -YAHOO.extend(YAHOO.widget.Button, YAHOO.util.Element, { - - -// Protected properties - - -/** -* @property _button -* @description Object reference to the button's internal -* <a> or <button> element. -* @default null -* @protected -* @type HTMLAnchorElement|HTMLButtonElement -*/ -_button: null, - - -/** -* @property _menu -* @description Object reference to the button's menu. -* @default null -* @protected -* @type YAHOO.widget.Menu -*/ -_menu: null, - - -/** -* @property _hiddenField -* @description Object reference to the <input> element -* used when the button's parent form is submitted. -* @default null -* @protected -* @type HTMLInputElement -*/ -_hiddenField: null, - - -/** -* @property _onclickAttributeValue -* @description Object reference to the button's current value for the "onclick" -* configuration attribute. -* @default null -* @protected -* @type Object -*/ -_onclickAttributeValue: null, - - -/** -* @property _activationKeyPressed -* @description Boolean indicating if the key(s) that toggle the button's -* "active" state have been pressed. -* @default false -* @protected -* @type Boolean -*/ -_activationKeyPressed: false, - - -/** -* @property _activationButtonPressed -* @description Boolean indicating if the mouse button that toggles the button's -* "active" state has been pressed. -* @default false -* @protected -* @type Boolean -*/ -_activationButtonPressed: false, - - -/** -* @property _hasKeyEventHandlers -* @description Boolean indicating if the button's "blur", "keydown" and -* "keyup" event handlers are assigned -* @default false -* @protected -* @type Boolean -*/ -_hasKeyEventHandlers: false, - - -/** -* @property _hasMouseEventHandlers -* @description Boolean indicating if the button's "mouseout" and "mousedown" -* and "mouseup" event handlers are assigned -* @default false -* @protected -* @type Boolean -*/ -_hasMouseEventHandlers: false, - - - -// Constants - - -/** -* @property TAG_NAME -* @description The name of the tag to be used for the button's root element. -* @default "SPAN" -* @final -* @type String -*/ -TAG_NAME: "SPAN", - - -/** -* @property CHECK_ACTIVATION_KEYS -* @description Array of numbers representing keys that (when pressed) toggle -* the button's "checked" attribute. -* @default [32] -* @final -* @type Array -*/ -CHECK_ACTIVATION_KEYS: [32], - - -/** -* @property ACTIVATION_KEYS -* @description Array of numbers representing keys that (when presed) toggle -* the button's "active" state. -* @default [13, 32] -* @final -* @type Array -*/ -ACTIVATION_KEYS: [13, 32], - - -/** -* @property OPTION_AREA_WIDTH -* @description Width (in pixels) of the area of a split button that when -* pressed will display a menu. -* @default 20 -* @final -* @type Number -*/ -OPTION_AREA_WIDTH: 20, - - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the -* button's root element. -* @default "yuibutton" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuibutton", - - -/** -* @property RADIO_DEFAULT_TITLE -* @description String representing the default title applied to buttons of -* type "radio." -* @default "Unchecked. Click to check." -* @final -* @type String -*/ -RADIO_DEFAULT_TITLE: "Unchecked. Click to check.", - - -/** -* @property RADIO_CHECKED_TITLE -* @description String representing the title applied to buttons of type "radio" -* when checked. -* @default "Checked. Click to uncheck." -* @final -* @type String -*/ -RADIO_CHECKED_TITLE: "Checked. Click to uncheck.", - - -/** -* @property CHECKBOX_DEFAULT_TITLE -* @description String representing the default title applied to buttons of -* type "checkbox." -* @default "Unchecked. Click to check." -* @final -* @type String -*/ -CHECKBOX_DEFAULT_TITLE: "Unchecked. Click to check.", - - -/** -* @property CHECKBOX_CHECKED_TITLE -* @description String representing the title applied to buttons of type -* "checkbox" when checked. -* @default "Checked. Click to uncheck." -* @final -* @type String -*/ -CHECKBOX_CHECKED_TITLE: "Checked. Click to uncheck.", - - -/** -* @property MENUBUTTON_DEFAULT_TITLE -* @description String representing the default title applied to buttons of -* type "menubutton." -* @default "Menu collapsed. Click to expand." -* @final -* @type String -*/ -MENUBUTTON_DEFAULT_TITLE: "Menu collapsed. Click to expand.", - - -/** -* @property MENUBUTTON_MENU_VISIBLE_TITLE -* @description String representing the title applied to buttons of type -* "menubutton" when the button's menu is visible. -* @default "Menu expanded. Click or press Esc to collapse." -* @final -* @type String -*/ -MENUBUTTON_MENU_VISIBLE_TITLE: - "Menu expanded. Click or press Esc to collapse.", - - -/** -* @property SPLITBUTTON_DEFAULT_TITLE -* @description String representing the default title applied to buttons of -* type "splitebutton." -* @default "Menu collapsed. Click inside option region or press -* Ctrl + Shift + M to show the menu." -* @final -* @type String -*/ -SPLITBUTTON_DEFAULT_TITLE: - "Menu collapsed. Click inside option region or press Ctrl + Shift + M to show the menu.", - - -/** -* @property SPLITBUTTON_OPTION_VISIBLE_TITLE -* @description String representing the title applied to buttons of type -* "splitbutton" when the button's menu is visible. -* @default "Menu expanded. Press Esc or Ctrl + Shift + M to hide the menu." -* @final -* @type String -*/ -SPLITBUTTON_OPTION_VISIBLE_TITLE: - "Menu expanded. Press Esc or Ctrl + Shift + M to hide the menu.", - - -/** -* @property SUBMIT_TITLE -* @description String representing the title applied to buttons of -* type "submit." -* @default "Click to submit form." -* @final -* @type String -*/ -SUBMIT_TITLE: "Click to submit form.", - - - -// Protected attribute setter methods - - -/** -* @method _setType -* @description Sets the value of the button's "type" attribute. -* @protected -* @param {String} p_sType String indicating the value for the button's -* "type" attribute. -*/ -_setType: function(p_sType) { - - if(p_sType == "splitbutton") { - - this.on("option", this._onOption); - - } - -}, - - -/** -* @method _setLabel -* @description Sets the value of the button's "label" attribute. -* @protected -* @param {String} p_sLabel String indicating the value for the button's -* "label" attribute. -*/ -_setLabel: function(p_sLabel) { - - this._button.innerHTML = p_sLabel; - -}, - - -/** -* @method _setTabIndex -* @description Sets the value of the button's "tabindex" attribute. -* @protected -* @param {Number} p_nTabIndex Number indicating the value for the button's -* "tabindex" attribute. -*/ -_setTabIndex: function(p_nTabIndex) { - - this._button.tabIndex = p_nTabIndex; - -}, - - -/** -* @method _setTitle -* @description Sets the value of the button's "title" attribute. -* @protected -* @param {String} p_nTabIndex Number indicating the value for the button's -* "title" attribute. -*/ -_setTitle: function(p_sTitle) { - - if(this.get("type") != "link") { - - var sTitle = p_sTitle; - - if(!sTitle) { - - - var sType = this.get("type"); - - switch(sType) { - - case "radio": - - sTitle = this.RADIO_DEFAULT_TITLE; - - break; - - case "checkbox": - - sTitle = this.CHECKBOX_DEFAULT_TITLE; - - break; - - case "menubutton": - - sTitle = this.MENUBUTTON_DEFAULT_TITLE; - - break; - - case "splitbutton": - - sTitle = this.SPLITBUTTON_DEFAULT_TITLE; - - break; - - case "submit": - - sTitle = this.SUBMIT_TITLE; - - break; - - } - - } - - this._button.title = sTitle; - - } - -}, - - -/** -* @method _setDisabled -* @description Sets the value of the button's "disabled" attribute. -* @protected -* @param {Boolean} p_bDisabled Boolean indicating the value for the button's -* "disabled" attribute. -*/ -_setDisabled: function(p_bDisabled) { - - if(this.get("type") != "link") { - - if(p_bDisabled) { - - if(this.hasFocus()) { - - this.blur(); - - } - - this._button.setAttribute("disabled", "disabled"); - - this.addClass("disabled"); - - } - else { - - this._button.removeAttribute("disabled"); - - this.removeClass("disabled"); - - } - - } - -}, - - -/** -* @method _setAccessKey -* @description Sets the value of the button's "accesskey" attribute. -* @protected -* @param {String} p_sAccessKey String indicating the value for the button's -* "accesskey" attribute. -*/ -_setAccessKey: function(p_sAccessKey) { - - this._button.accessKey = p_sAccessKey; - -}, - - -/** -* @method _setHref -* @description Sets the value of the button's "href" attribute. -* @protected -* @param {String} p_sHref String indicating the value for the button's -* "href" attribute. -*/ -_setHref: function(p_sHref) { - - if(this.get("type") == "link") { - - this._button.href = p_sHref; - - } - -}, - - -/** -* @method _setTarget -* @description Sets the value of the button's "target" attribute. -* @protected -* @param {String} p_sTarget String indicating the value for the button's -* "target" attribute. -*/ -_setTarget: function(p_sTarget) { - - if(this.get("type") == "link") { - - this._button.setAttribute("target", p_sTarget); - - } - -}, - - -/** -* @method _setChecked -* @description Sets the value of the button's "target" attribute. -* @protected -* @param {Boolean} p_bChecked Boolean indicating the value for the button's -* "checked" attribute. -*/ -_setChecked: function(p_bChecked) { - - var sType = this.get("type"), - sTitle; - - if(sType == "checkbox" || sType == "radio") { - - if(p_bChecked) { - - this.addClass("checked"); - - sTitle = (sType == "radio") ? - this.RADIO_CHECKED_TITLE : - this.CHECKBOX_CHECKED_TITLE; - - } - else { - - this.removeClass("checked"); - - sTitle = (sType == "radio") ? - this.RADIO_DEFAULT_TITLE : - this.CHECKBOX_DEFAULT_TITLE; - - } - - this.set("title", sTitle); - - } - -}, - - -/** -* @method _setMenu -* @description Sets the value of the button's "menu" attribute. -* @protected -* @param {Object} p_oMenu Object indicating the value for the button's -* "menu" attribute. -*/ -_setMenu: function(p_oMenu) { - - var Menu = YAHOO.widget.Menu, - oMenu, - me = this; - - if(!Menu) { - - - return false; - - } - - - function initMenu() { - - if(oMenu) { - - oMenu.showEvent.subscribe(this._onMenuShow, this, true); - oMenu.hideEvent.subscribe(this._onMenuHide, this, true); - oMenu.keyDownEvent.subscribe(this._onMenuKeyDown, this, true); - oMenu.renderEvent.subscribe(this._onMenuRender, this, true); - oMenu.clickEvent.subscribe(this._onMenuClick, this, true); - oMenu.itemAddedEvent.subscribe(this._onMenuItemAdded, this, true); - - var oSrcElement = oMenu.srcElement; - - if(oSrcElement && oSrcElement.tagName.toUpperCase() == "SELECT") { - - oSrcElement.style.display = "none"; - oSrcElement.parentNode.removeChild(oSrcElement); - - } - - this._menu = oMenu; - - } - else { - - this._menu.destroy(); - this._menu = null; - - } - - } - - - if(p_oMenu instanceof Menu) { - - oMenu = p_oMenu; - - var aItems = oMenu.getItems(), - nItems = aItems.length, - oItem; - - if(nItems > 0) { - - var i = nItems - 1; - - do { - - oItem = aItems[i]; - - if(oItem) { - - oItem.cfg.subscribeToConfigEvent( - "selected", - this._onMenuItemSelected, - oItem, - this - ); - - } - - } - while(i--); - - } - - initMenu.call(this); - - } - else if(Lang.isArray(p_oMenu)) { - - this.on("appendTo", function() { - - oMenu = new Menu( - Dom.generateId(), - { lazyload: true, itemdata: p_oMenu } - ); - - initMenu.call(me); - - }); - - } - else if(Lang.isString(p_oMenu)) { - - Event.onContentReady(p_oMenu, function() { - - oMenu = new Menu(this, { lazyload: true }); - - initMenu.call(me); - - }); - - } - else if(p_oMenu && p_oMenu.nodeName) { - - oMenu = new Menu(p_oMenu, { lazyload: true }); - - initMenu.call(this); - - } - -}, - - -/** -* @method _setOnClick -* @description Sets the value of the button's "onclick" attribute. -* @protected -* @param {Object} p_oObject Object indicating the value for the button's -* "onclick" attribute. -*/ -_setOnClick: function(p_oObject) { - - /* - Remove any existing listeners if a "click" event handler has already - been specified. - */ - - if( - this._onclickAttributeValue && - (this._onclickAttributeValue != p_oObject) - ) { - - this.removeListener("click", this._onclickAttributeValue.fn); - - this._onclickAttributeValue = null; - - } - - - if( - !this._onclickAttributeValue && - Lang.isObject(p_oObject) && - Lang.isFunction(p_oObject.fn) - ) { - - this.on("click", p_oObject.fn, p_oObject.obj, p_oObject.scope); - - this._onclickAttributeValue = p_oObject; - - } - -}, - - - -// Protected methods - - -/** -* @method _createButtonElement -* @description Creates the button's element. -* @protected -* @param {String} p_sType String indicating the type of element to create. -* @return {HTMLElement} -*/ -_createButtonElement: function(p_sType) { - - var sTagName = this.TAG_NAME, - oElement = document.createElement(sTagName); - - oElement.innerHTML = - - "<" + sTagName + " class=\"first-child\">" + - (p_sType == "link" ? "" : "") + - ""; - - return oElement; - -}, - - -/** -* @method _isActivationKey -* @description Determines if the specified keycode is one that toggles the -* button's "active" state. -* @protected -* @param {Number} p_nKeyCode Number representing the keycode to be evaluated. -* @return {Boolean} -*/ -_isActivationKey: function(p_nKeyCode) { - - var sType = this.get("type"), - aKeyCodes = (sType == "checkbox" || sType == "radio") ? - this.CHECK_ACTIVATION_KEYS : this.ACTIVATION_KEYS, - - nKeyCodes = aKeyCodes.length; - - if(nKeyCodes > 0) { - - var i = nKeyCodes - 1; - - do { - - if(p_nKeyCode == aKeyCodes[i]) { - - return true; - - } - - } - while(i--); - - } - -}, - - -/** -* @method _isSplitButtonOptionKey -* @description Determines if the specified keycode is one that toggles the -* display of the split button's menu. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @return {Boolean} -*/ -_isSplitButtonOptionKey: function(p_oEvent) { - - return ( - p_oEvent.ctrlKey && - p_oEvent.shiftKey && - Event.getCharCode(p_oEvent) == 77 - ); - -}, - - -/** -* @method _addListenersToForm -* @description Adds event handlers to the button's form. -* @protected -*/ -_addListenersToForm: function() { - - var oForm = this.getForm(); - - if(oForm) { - - Event.on(oForm, "reset", this._onFormReset, null, this); - Event.on(oForm, "submit", this._onFormSubmit, null, this); - - var oSrcElement = this.get("srcelement"); - - - if ( - (m_bIE || m_bGecko) && - ( - this.get("type") == "submit" || - (oSrcElement && oSrcElement.type == "submit") - ) - ) { - - var aListeners = Event.getListeners(oForm, "keydown"), - bHasKeyDownListener = false; - - if(aListeners) { - - var nListeners = aListeners.length; - - if(nListeners > 0) { - - var i = nListeners - 1; - - do { - - if( - aListeners[i].fn == - YAHOO.widget.Button.onFormKeyDown - ) { - - bHasKeyDownListener = true; - break; - - } - - } - while(i--); - - } - - } - - - if(!bHasKeyDownListener) { - - Event.on( - oForm, - "keydown", - YAHOO.widget.Button.onFormKeyDown, - null, - this - ); - - } - - } - - } - -}, - - -_originalMaxHeight: -1, - - -/** -* @method _showMenu -* @description Shows the button's menu. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event) that triggered the display of -* the menu. -*/ -_showMenu: function(p_oEvent) { - - var oMenu = this._menu; - - if(oMenu) { - - YAHOO.widget.MenuManager.hideVisible(); - - oMenu.cfg.applyConfig({ - context:[this.get("id"), "tl", "bl"], - clicktohide: false, - constraintoviewport: false, - visible: true - }); - - oMenu.cfg.fireQueue(); - - /* - Stop the propagation of the event so that the MenuManager - doesn't blur the menu after it gets focus. - */ - - if(p_oEvent.type == "mousedown") { - - Event.stopPropagation(p_oEvent); - - } - - this._menu.focus(); - - - var nViewportHeight = Dom.getViewportHeight(), - nMenuHeight = oMenu.element.offsetHeight; - - - if((oMenu.cfg.getProperty("y") + nMenuHeight) > nViewportHeight) { - - - oMenu.align("bl", "tl"); - - var nY = oMenu.cfg.getProperty("y"), - - nScrollTop = ( - document.documentElement.scrollTop || - document.body.scrollTop - ); - - - if(nScrollTop >= nY) { - - if(this._originalMaxHeight == -1) { - - this._originalMaxHeight = - oMenu.cfg.getProperty("maxheight"); - - } - - oMenu.cfg.setProperty( - "maxheight", - (nMenuHeight - ((nScrollTop - nY) + 20)) - ); - - oMenu.align("bl", "tl"); - - } - - } - - oMenu.cfg.setProperty("constraintoviewport", true); - - } - -}, - - -/** -* @method _hideMenu -* @description Hides the button's menu. -* @protected -*/ -_hideMenu: function() { - - var oMenu = this._menu; - - if(oMenu && oMenu.cfg.getProperty("visible")) { - - oMenu.hide(); - - } - -}, - - - - -// Protected event handlers - - -/** -* @method _onMouseOver -* @description "mouseover" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onMouseOver: function(p_oEvent) { - - if(!this._hasMouseEventHandlers) { - - this.on("mouseout", this._onMouseOut); - this.on("mousedown", this._onMouseDown); - this.on("mouseup", this._onMouseUp); - - this._hasMouseEventHandlers = true; - - } - - this.addClass("hover"); - - if(this._activationButtonPressed) { - - this.addClass("active"); - - } - - - if(this._bOptionPressed) { - - this.addClass("activeoption"); - - } - -}, - - -/** -* @method _onMouseOut -* @description "mouseout" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onMouseOut: function(p_oEvent) { - - this.removeClass("hover"); - - if(this.get("type") != "menubutton") { - - this.removeClass("active"); - - } - - if(this._activationButtonPressed || this._bOptionPressed) { - - Event.on(document, "mouseup", this._onDocumentMouseUp, null, this); - - } - -}, - - -/** -* @method _onDocumentMouseUp -* @description "mouseup" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onDocumentMouseUp: function(p_oEvent) { - - this._activationButtonPressed = false; - this._bOptionPressed = false; - - var sType = this.get("type"); - - if(sType == "menubutton" || sType == "splitbutton") { - - this.removeClass((sType == "menubutton" ? "active" : "activeoption")); - - this._hideMenu(); - - } - - Event.removeListener(document, "mouseup", this._onDocumentMouseUp); - -}, - - -/** -* @method _onMouseDown -* @description "mousedown" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onMouseDown: function(p_oEvent) { - - if((p_oEvent.which || p_oEvent.button) == 1) { - - if(!this.hasFocus()) { - - this.focus(); - - } - - - var sType = this.get("type"); - - - if(sType == "splitbutton") { - - var oElement = this.get("element"), - nX = Event.getPageX(p_oEvent) - Dom.getX(oElement); - - if((oElement.offsetWidth - this.OPTION_AREA_WIDTH) < nX) { - - this.fireEvent("option", p_oEvent); - - } - else { - - this.addClass("active"); - - this._activationButtonPressed = true; - - } - - } - else if(sType == "menubutton") { - - if(this.hasClass("active")) { - - this._hideMenu(); - - this._activationButtonPressed = false; - - } - else { - - this._showMenu(p_oEvent); - - this._activationButtonPressed = true; - - } - - } - else { - - this.addClass("active"); - - this._activationButtonPressed = true; - - } - - - - if(sType == "splitbutton" || sType == "menubutton") { - - var me = this; - - - function onMouseUp() { - - me._hideMenu(); - me.removeListener("mouseup", onMouseUp); - - } - - - this._hideMenuTimerId = window.setTimeout(function() { - - me.on("mouseup", onMouseUp); - - }, 250); - - } - - } - -}, - - -/** -* @method _onMouseUp -* @description "mouseup" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onMouseUp: function(p_oEvent) { - - if(this._hideMenuTimerId) { - - window.clearTimeout(this._hideMenuTimerId); - - } - - var sType = this.get("type"); - - if(sType == "checkbox" || sType == "radio") { - - this.set("checked", !(this.get("checked"))); - - } - - - this._activationButtonPressed = false; - - - if(this.get("type") != "menubutton") { - - this.removeClass("active"); - - } - -}, - - -/** -* @method _onFocus -* @description "focus" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onFocus: function(p_oEvent) { - - this.addClass("focus"); - - if(this._activationKeyPressed) { - - this.addClass("active"); - - } - - m_oFocusedButton = this; - - - if(!this._hasKeyEventHandlers) { - - var oElement = this._button; - - Event.on(oElement, "blur", this._onBlur, null, this); - Event.on(oElement, "keydown", this._onKeyDown, null, this); - Event.on(oElement, "keyup", this._onKeyUp, null, this); - - this._hasKeyEventHandlers = true; - - } - - - this.fireEvent("focus", p_oEvent); - -}, - - -/** -* @method _onBlur -* @description "blur" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onBlur: function(p_oEvent) { - - this.removeClass("focus"); - - if(this.get("type") != "menubutton") { - - this.removeClass("active"); - - } - - if(this._activationKeyPressed) { - - Event.on(document, "keyup", this._onDocumentKeyUp, null, this); - - } - - - m_oFocusedButton = null; - - this.fireEvent("blur", p_oEvent); - -}, - - -/** -* @method _onDocumentKeyUp -* @description "keyup" event handler for the document. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onDocumentKeyUp: function(p_oEvent) { - - if(this._isActivationKey(Event.getCharCode(p_oEvent))) { - - this._activationKeyPressed = false; - - Event.removeListener(document, "keyup", this._onDocumentKeyUp); - - } - -}, - - -/** -* @method _onKeyDown -* @description "keydown" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onKeyDown: function(p_oEvent) { - - if( - this.get("type") == "splitbutton" && - this._isSplitButtonOptionKey(p_oEvent) - ) { - - this.fireEvent("option", p_oEvent); - - } - else if(this._isActivationKey(Event.getCharCode(p_oEvent))) { - - if(this.get("type") == "menubutton") { - - this._showMenu(p_oEvent); - - } - else { - - this._activationKeyPressed = true; - - this.addClass("active"); - - } - - } - - - var oMenu = this._menu; - - if( - oMenu && oMenu.cfg.getProperty("visible") && - Event.getCharCode(p_oEvent) == 27 - ) { - - oMenu.hide(); - this.focus(); - - } - -}, - - -/** -* @method _onKeyUp -* @description "keyup" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onKeyUp: function(p_oEvent) { - - if(this._isActivationKey(Event.getCharCode(p_oEvent))) { - - var sType = this.get("type"); - - if(sType == "checkbox" || sType == "radio") { - - this.set("checked", !(this.get("checked"))); - - } - - this._activationKeyPressed = false; - - if(this.get("type") != "menubutton") { - - this.removeClass("active"); - - } - - } - -}, - - -/** -* @method _onClick -* @description "click" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onClick: function(p_oEvent) { - - var sType = this.get("type"), - sTitle; - - switch(sType) { - - case "radio": - case "checkbox": - - if(this.get("checked")) { - - sTitle = (sType == "radio") ? - this.RADIO_CHECKED_TITLE : - this.CHECKBOX_CHECKED_TITLE; - - } - else { - - sTitle = (sType == "radio") ? - this.RADIO_DEFAULT_TITLE : - this.CHECKBOX_DEFAULT_TITLE; - - } - - this.set("title", sTitle); - - break; - - case "submit": - - this.submitForm(); - - break; - - case "reset": - - var oForm = this.getForm(); - - if(oForm) { - - oForm.reset(); - - } - - break; - - case "menubutton": - - sTitle = this._menu.cfg.getProperty("visible") ? - this.MENUBUTTON_MENU_VISIBLE_TITLE : - this.MENUBUTTON_DEFAULT_TITLE; - - this.set("title", sTitle); - - break; - - case "splitbutton": - - var oElement = this.get("element"), - nX = Event.getPageX(p_oEvent) - Dom.getX(oElement); - - if((oElement.offsetWidth - this.OPTION_AREA_WIDTH) < nX) { - - return false; - - } - else { - - this._hideMenu(); - - var oSrcElement = this.get("srcelement"); - - if(oSrcElement && oSrcElement.type == "submit") { - - this.submitForm(); - - } - - } - - sTitle = this._menu.cfg.getProperty("visible") ? - this.SPLITBUTTON_OPTION_VISIBLE_TITLE : - this.SPLITBUTTON_DEFAULT_TITLE; - - this.set("title", sTitle); - - break; - - } - -}, - - -/** -* @method _onAppendTo -* @description "appendTo" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onAppendTo: function(p_oEvent) { - - /* - It is necessary to call "getForm" using "setTimeout" to make sure that - the button's "form" property returns a node reference. Sometimes, if - you try to get the reference immediately after appending the field, it - is null. - */ - - var me = this; - - window.setTimeout(function() { - - me._addListenersToForm(); - - }, 0); - -}, - - -/** -* @method _onFormSubmit -* @description "submit" event handler for the button's form. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onFormSubmit: function(p_oEvent) { - - var sType = this.get("type"), - oMenuItem = this.get("selectedMenuItem"), - oForm = this.getForm(); - - - if(sType == "radio" || sType == "checkbox") { - - - this.createHiddenField(); - - } - else if(oMenuItem) { - - var oSrcElement = this._menu.srcElement; - - if(oSrcElement && oSrcElement.tagName.toUpperCase() == "SELECT") { - - oForm.appendChild(oSrcElement); - oSrcElement.selectedIndex = oMenuItem.index; - - } - else { - - var oValue = (oMenuItem.value === null || oMenuItem.value === "") ? - oMenuItem.cfg.getProperty("text") : - oMenuItem.value; - - - if(oValue) { - - var oField = createInputElement( - "hidden", - (this.get("name") + "_options"), - oValue - ); - - oForm.appendChild(oField); - - } - - } - - } - -}, - - -/** -* @method _onFormReset -* @description "reset" event handler for the button's form. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onFormReset: function(p_oEvent) { - - var sType = this.get("type"); - - if(sType == "checkbox" || sType == "radio") { - - this.resetValue("checked"); - - } - - if(this._menu) { - - this.resetValue("selectedMenuItem"); - - } - -}, - - -/** -* @method _onDocumentMouseDown -* @description "mousedown" event handler for the document. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onDocumentMouseDown: function(p_oEvent) { - - var oTarget = Event.getTarget(p_oEvent), - oButtonElement = this.get("element"), - oMenuElement = this._menu.element; - - if( - oTarget != oButtonElement && - !Dom.isAncestor(oButtonElement, oTarget) && - oTarget != oMenuElement && - !Dom.isAncestor(oMenuElement, oTarget) - ) { - - this._hideMenu(); - - Event.removeListener( - document, - "mousedown", - this._onDocumentMouseDown - ); - - } - -}, - - -/** -* @method _onOption -* @description "option" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onOption: function(p_oEvent) { - - if(this.hasClass("activeoption")) { - - this._hideMenu(); - - this._bOptionPressed = false; - - } - else { - - this._showMenu(p_oEvent); - - this._bOptionPressed = true; - - } - -}, - - -/** -* @method _onMenuShow -* @description "show" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuShow: function(p_sType, p_aArgs) { - - Event.on(document, "mousedown", this._onDocumentMouseDown, null, this); - - var sTitle, - sClass; - - if(this.get("type") == "splitbutton") { - - sTitle = this.SPLITBUTTON_OPTION_VISIBLE_TITLE; - sClass = "activeoption"; - - } - else { - - sTitle = this.MENUBUTTON_MENU_VISIBLE_TITLE; - sClass = "active"; - - } - - this.addClass(sClass); - this.set("title", sTitle); - -}, - - -/** -* @method _onMenuHide -* @description "hide" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuHide: function(p_sType, p_aArgs) { - - if(this._originalMaxHeight != -1) { - - this._menu.cfg.setProperty("maxheight", this._originalMaxHeight); - - } - - - var sTitle, - sClass; - - if(this.get("type") == "splitbutton") { - - sTitle = this.SPLITBUTTON_DEFAULT_TITLE; - sClass = "activeoption"; - - } - else { - - sTitle = this.MENUBUTTON_DEFAULT_TITLE; - sClass = "active"; - } - - - this.removeClass(sClass); - this.set("title", sTitle); - - - if(this.get("type") == "splitbutton") { - - this._bOptionPressed = false; - - } - -}, - - -/** -* @method _onMenuKeyDown -* @description "keydown" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuKeyDown: function(p_sType, p_aArgs) { - - var oEvent = p_aArgs[0]; - - if(Event.getCharCode(oEvent) == 27) { - - this.focus(); - - if(this.get("type") == "splitbutton") { - - this._bOptionPressed = false; - - } - - } - -}, - - -/** -* @method _onMenuRender -* @description "render" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuRender: function(p_sType, p_aArgs) { - - this.get("element").parentNode.appendChild(this._menu.element); - -}, - - -/** -* @method _onMenuItemSelected -* @description "selectedchange" event handler for each item in the -* button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuItem} -* p_oItem Object representing the menu item that subscribed to the event. -*/ -_onMenuItemSelected: function(p_sType, p_aArgs, p_oItem) { - - this.set("selectedMenuItem", p_oItem); - -}, - - -/** -* @method _onMenuItemAdded -* @description "itemadded" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuItem} -* p_oItem Object representing the menu item that subscribed to the event. -*/ -_onMenuItemAdded: function(p_sType, p_aArgs, p_oItem) { - - var oItem = p_aArgs[0]; - - oItem.cfg.subscribeToConfigEvent( - "selected", - this._onMenuItemSelected, - oItem, - this - ); - -}, - - -/** -* @method _onMenuClick -* @description "click" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuClick: function(p_sType, p_aArgs) { - - var oItem = p_aArgs[1]; - - if(oItem) { - - var oSrcElement = this.get("srcelement"); - - if(oSrcElement && oSrcElement.type == "submit") { - - this.submitForm(); - - } - - this._hideMenu(); - - } - -}, - - - -// Public methods - - -/** -* @method createHiddenField -* @description Creates the button's hidden form field and appends it to its -* parent form. -* @return {HTMLInputElement} -*/ -createHiddenField: function () { - - if (!this.get("disabled")) { - - var sType = this.get("type"), - - bCheckable = (sType == "checkbox" || sType == "radio"), - - oField = createInputElement( - - /* - Use "submit" type for IE so that the input - element will be able to be clicked via a call to - the "click" method by the "submitForm" method. - */ - - (bCheckable ? sType : (m_bIE ? "submit" : "hidden")), - this.get("name"), - this.get("value"), - this.get("checked") - ), - - oForm = this.getForm(); - - - if (oField) { - - if (bCheckable || oField.type == "submit") { - - oField.style.display = "none"; - - } - - - if (oForm) { - - var oHiddenField = this._hiddenField; - - if (oHiddenField && Dom.inDocument(oHiddenField)) { - - oForm.replaceChild(oField, oHiddenField); - - } - else { - - oForm.appendChild(oField); - - } - - } - - this._hiddenField = oField; - - return oField; - - } - - } - -}, - - -/** -* @method submitForm -* @description Submits the form to which the button belongs. -* @protected -*/ -submitForm: function(p_oMenuItem) { - - var oForm = this.getForm(); - - if (oForm) { - - var oInput = this.createHiddenField(); - - if (m_bIE) { - - /* - Clicking the button via a call to the "click" method will - cause IE to both fire the form's "submit" event as well as - submit the form. Originally tried just firing the "submit" - event via "fireEvent," but then the event could not - be cancelled. - */ - - oInput.click(); - - } - else { // Gecko, Opera, and Safari - - var oEvent = document.createEvent("HTMLEvents"); - oEvent.initEvent("submit", true, true); - - /* - In Safari, dispatching a "submit" event to a form WILL cause - the form's "submit" event to fire, but WILL NOT submit the - form. Therefore, we need to call the "submit" method as well. - */ - - var bSubmitForm = oForm.dispatchEvent(oEvent); - - if(m_bSafari && bSubmitForm) { - - oForm.submit(); - - } - - } - - } - -}, - - -/** -* @method init -* @description The Button class's initialization method. -* @param {String} p_oElement String specifying the id attribute of the -* <input>, <a> or -* <span> element to be used to create the button. -* @param {HTMLInputElement|HTMLElement} p_oElement Object reference for the -* <input>, <a> or -* <span> element to be used to create the button. -* @param {Object} p_oElement Object literal specifying a set of configuration -* attributes used to create the button. -* @param {Object} p_oAttributes Optional. Object literal specifying a set of -* configuration attributes used to create the button. -*/ -init: function(p_oElement, p_oAttributes) { - - var sTagName = p_oAttributes.type == "link" ? "A" : "BUTTON", - oSrcElement = p_oAttributes.srcelement; - - - this._button = p_oElement.getElementsByTagName(sTagName)[0]; - - - YAHOO.widget.Button.superclass.init.call( - this, p_oElement, - p_oAttributes - ); - - - m_oButtons[this.get("id")] = this; - - - this.addClass(this.CSS_CLASS_NAME); - - if(m_bIE && !m_bIE7) { - - this.addClass("ie6"); - - } - - this.addClass(this.get("type")); - - Event.on(this._button, "focus", this._onFocus, null, this); - this.on("mouseover", this._onMouseOver); - this.on("click", this._onClick); - this.on("appendTo", this._onAppendTo); - - var oContainer = this.get("container"), - oElement = this.get("element"); - - - if(oContainer) { - - if(Lang.isString(oContainer)) { - - var me = this; - - Event.onContentReady(oContainer, function() { - - me.appendTo(this); - - }); - - } - else { - - this.appendTo(oContainer); - - } - - } - else if( - !Dom.inDocument(oElement) && - oSrcElement && - oSrcElement.tagName.toUpperCase() == "INPUT" - ) { - - var oParentNode = oSrcElement.parentNode; - - if(oParentNode) { - - this.fireEvent("beforeAppendTo", { - type: "beforeAppendTo", - target: oParentNode - }); - - oParentNode.replaceChild(oElement, oSrcElement); - - this.fireEvent("appendTo", { - type: "appendTo", - target: oParentNode - }); - - } - - } - else if( - Dom.inDocument(oElement) && - oSrcElement.tagName.toUpperCase() == "SPAN" - ) { - - this._addListenersToForm(); - - } - - -}, - - -/** -* @method initAttributes -* @description Initializes all of the configuration attributes used to create -* the button. -* @param {Object} p_oAttributes Object literal specifying a set of -* configuration attributes used to create the button. -*/ -initAttributes: function(p_oAttributes) { - - var oAttributes = p_oAttributes || {}; - - YAHOO.widget.Button.superclass.initAttributes.call(this, oAttributes); - - - /** - * @config type - * @description String specifying the button's type. Possible values are: - * "button," "link," "submit," "reset," "checkbox," "radio," "menubutton," - * and "splitbutton." - * @default "button" - * @type String - */ - this.setAttributeConfig("type", { - - value: (oAttributes.type || "button"), - validator: Lang.isString, - writeOnce: true, - method: this._setType - - }); - - - /** - * @config label - * @description String specifying the button's text label or innerHTML. - * @default null - * @type String - */ - this.setAttributeConfig("label", { - - value: oAttributes.label, - validator: Lang.isString, - method: this._setLabel - - }); - - - /** - * @config value - * @description Object specifying the value for the button. - * @default null - * @type Object - */ - this.setAttributeConfig("value", { - - value: oAttributes.value - - }); - - - /** - * @config name - * @description String specifying the name for the button. - * @default null - * @type String - */ - this.setAttributeConfig("name", { - - value: oAttributes.name, - validator: Lang.isString - - }); - - - /** - * @config tabindex - * @description Number specifying the tabindex for the button. - * @default null - * @type Number - */ - this.setAttributeConfig("tabindex", { - - value: oAttributes.tabindex, - validator: Lang.isNumber, - method: this._setTabIndex - - }); - - - /** - * @config title - * @description String specifying the title for the button. - * @default null - * @type String - */ - this.configureAttribute("title", { - - value: oAttributes.title, - validator: Lang.isString, - method: this._setTitle - - }); - - - /** - * @config disabled - * @description Boolean indicating if the button should be disabled. - * (Disabled buttons are dimmed and will not respond to user input - * or fire events. Does not apply to button's of type "link.") - * @default false - * @type Boolean - */ - this.setAttributeConfig("disabled", { - - value: (oAttributes.disabled || false), - validator: Lang.isBoolean, - method: this._setDisabled - - }); - - - /** - * @config href - * @description String specifying the href for the button. Applies only to - * buttons of type "link." - * @type String - */ - this.setAttributeConfig("href", { - - value: oAttributes.href, - validator: Lang.isString, - method: this._setHref - - }); - - - /** - * @config target - * @description String specifying the target for the button. Applies only - * to buttons of type "link." - * @type String - */ - this.setAttributeConfig("target", { - - value: oAttributes.target, - validator: Lang.isString, - method: this._setTarget - - }); - - - /** - * @config checked - * @description Boolean indicating if the button is checked. Applies only - * to buttons of type "radio" and "checkbox." - * @default false - * @type Boolean - */ - this.setAttributeConfig("checked", { - - value: (oAttributes.checked || false), - validator: Lang.isBoolean, - method: this._setChecked - - }); - - - /** - * @config container - * @description HTML element reference or string specifying the id - * attribute of the HTML element that the button's markup should be - * rendered into. - * @type HTMLElement|String - * @default null - */ - this.setAttributeConfig("container", { - - value: oAttributes.container - - }); - - - /** - * @config srcelement - * @description Object reference to the HTML element (either - * <input> or <span>) used to - * create the button. - * @type HTMLElement|String - * @default null - */ - this.setAttributeConfig("srcelement", { - - value: oAttributes.srcelement, - writeOnce: true - - }); - - - /** - * @config menu - * @description Object specifying the menu for the button. The value can be - * one of the following: - *
          - *
        • Object specifying a - * YAHOO.widget.Menu instance.
        • - *
        • String specifying the id attribute of the <div> - * element used to create the menu.
        • - *
        • String specifying the id attribute of the - * <select> element used to create the menu.
        • - *
        • Object specifying the <div> element used to - * create the menu.
        • - *
        • Object specifying the <select> element used to - * create the menu.
        • - *
        • Array of object literals, each representing a set of - * YAHOO.widget.MenuItem - * configuration attributes.
        • - *
        • Array of strings representing the text labels for each menu item in - * the menu.
        • - *
        - * @type HTMLElement|String|Array - * @default null - */ - this.setAttributeConfig("menu", { - - value: null, - method: this._setMenu - - }); - - - /** - * @config selectedMenuItem - * @description Reference to the item in the button's menu that is - * currently selected. - * @type YAHOO.widget.MenuItem - * @default null - */ - this.setAttributeConfig("selectedMenuItem", { - - value: null - - }); - - - /** - * @config onclick - * @description Object literal representing the code to be executed when - * the button is clicked. Format:
        {
        - * fn: Function, // The handler to call when the - * event fires.
        obj: Object, // An object to - * pass back to the handler.
        scope: Object // - * The object to use for the scope of the handler.
        }
        - * @type Object - * @default null - */ - this.setAttributeConfig("onclick", { - - value: oAttributes.onclick, - method: this._setOnClick - - }); - -}, - - -/** -* @method focus -* @description Causes the button to receive the focus and fires the button's -* "focus" event. -*/ -focus: function() { - - if(!this.get("disabled")) { - - this._button.focus(); - - } - -}, - - -/** -* @method blur -* @description Causes the button to lose focus and fires the button's -* "blur" event. -*/ -blur: function() { - - if(!this.get("disabled")) { - - this._button.blur(); - - } - -}, - - -/** -* @method hasFocus -* @description Returns a boolean indicating whether or not the button has focus. -* @return {Boolean} -*/ -hasFocus: function() { - - return (m_oFocusedButton == this); - -}, - - -/** -* @method isActive -* @description Returns a boolean indicating whether or not the button is active. -* @return {Boolean} -*/ -isActive: function() { - - return this.hasClass("active"); - -}, - - -/** -* @method getMenu -* @description Returns a reference to the button's menu. -* @return {YAHOO.widget.Menu} -*/ -getMenu: function() { - - return this._menu; - -}, - - -/** -* @method getForm -* @description Returns a reference to the button's parent form. -* @return {HTMLFormElement} -*/ -getForm: function() { - - return this._button.form; - -}, - - -/** -* @method getHiddenField -* @description Returns a reference to the <input> element -* used when the button's parent form is submitted. -* @return {HTMLInputElement} -*/ -getHiddenField: function() { - - return this._hiddenField; - -}, - - -/** -* @method destroy -* @description Removes the button's element from its parent element and -* removes all event handlers. -*/ -destroy: function() { - - - var oElement = this.get("element"), - oParentNode = oElement.parentNode, - oMenu = this._menu; - - if(oMenu) { - - - oMenu.destroy(); - - } - - - Event.purgeElement(oElement); - Event.purgeElement(this._button); - Event.removeListener(document, "mouseup", this._onDocumentMouseUp); - Event.removeListener(document, "keyup", this._onDocumentKeyUp); - Event.removeListener(document, "mousedown", this._onDocumentMouseDown); - - - var oForm = this.getForm(); - - if(oForm) { - - Event.removeListener(oForm, "reset", this._onFormReset); - Event.removeListener(oForm, "submit", this._onFormSubmit); - - } - - - oParentNode.removeChild(oElement); - - - delete m_oButtons[this.get("id")]; - - -}, - - -fireEvent: function(p_sType , p_aArgs) { - - // Disabled buttons should not respond to DOM events - - if(this.DOM_EVENTS[p_sType] && this.get("disabled")) { - - return; - - } - - YAHOO.widget.Button.superclass.fireEvent.call(this, p_sType, p_aArgs); - -}, - - -/** -* @method toString -* @description Returns a string representing the button. -* @return {String} -*/ -toString: function() { - - return ("Button " + this.get("id")); - -} - -}); - - -/** -* @method onFormKeyDown -* @description "keydown" event handler for the button's form. -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -YAHOO.widget.Button.onFormKeyDown = function(p_oEvent) { - - var oTarget = Event.getTarget(p_oEvent), - nCharCode = Event.getCharCode(p_oEvent); - - - if ( - nCharCode == 13 && - oTarget.tagName && - oTarget.tagName.toUpperCase() == "INPUT" - ) { - - var sType = oTarget.type; - - - if( - sType == "text" || sType == "password" || sType == "checkbox" || - sType == "radio" || sType == "file" - ) { - - - function isYUISubmitButton(p_oElement) { - - var sId = p_oElement.id; - - if (sId) { - - var oButton = m_oButtons[sId]; - - if (oButton) { - - var oSrcElement = oButton.get("srcelement"); - - return ( - oButton.get("type") == "submit" || - ( - oSrcElement && - oSrcElement.type == "submit" - ) - ); - - } - - } - - } - - - var aButtons = Dom.getElementsBy( - isYUISubmitButton, - this.TAG_NAME, - this.getForm() - ), - - nButtons = aButtons.length; - - - if (nButtons > 0) { - - m_oButtons[aButtons[0].id].submitForm(); - - } - - - } - - } - -}; - - -/** -* @method addHiddenFieldsToForm -* @description Searches the specified form and adds hidden fields for instances -* of YAHOO.widget.Button that are of type "radio," "checkbox," "menubutton," -* and "splitbutton." -* @param {HTMLFormElement} p_oForm Object reference -* for the form to search. -*/ -YAHOO.widget.Button.addHiddenFieldsToForm = function(p_oForm) { - - var aButtons = Dom.getElementsByClassName("yuibutton", "*", p_oForm), - nButtons = aButtons.length; - - - if(nButtons > 0) { - - - var oButton = null, - sType = null, - oMenuItem = null, - oMenu = null; - - for(var i=0; iElement.addListener for more -* information on listening for this event. -* @type YAHOO.util.CustomEvent -*/ - - -/** -* @event blur -* @description Fires when the menu item loses the input focus. Passes back a -* single object representing the original DOM event object passed back by the -* event utility (YAHOO.util.Event) when the event was fired. See Element.addListener for more -* information on listening for this event. -* @type YAHOO.util.CustomEvent -*/ - - -/** -* @event option -* @description Fires when the user invokes the button's option. Passes back a -* single object representing the original DOM event (either "mousedown" or -* "keydown") that caused the "option" event to fire. See Element.addListener for more -* information on listening for this event. -* @type YAHOO.util.CustomEvent -*/ - -})(); -(function() { - -// Shorthard for utilities - -var Dom = YAHOO.util.Dom, - Event = YAHOO.util.Event, - Lang = YAHOO.lang, - Button = YAHOO.widget.Button; - - // Private collection of radio buttons - - m_oButtons = {}; - - - -/** -* The ButtonGroup class creates a set of buttons that are mutually exclusive; -* checking one button in the set will uncheck all others in the button group. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the button group. -* @param {HTMLDivElement} p_oElement Object -* specifying the <div> element of the button group. -* @param {Object} p_oElement Object literal specifying a set of -* configuration attributes used to create the button group. -* @param {Object} p_oAttributes Optional. Object literal specifying a set of -* configuration attributes used to create the button group. -* @namespace YAHOO.widget -* @class ButtonGroup -* @constructor -* @extends YAHOO.util.Element -*/ -YAHOO.widget.ButtonGroup = function(p_oElement, p_oAttributes) { - - var fnSuperClass = YAHOO.widget.ButtonGroup.superclass.constructor; - - if( - arguments.length == 1 && - !Lang.isString(p_oElement) && - !p_oElement.nodeName - ) { - - if(!p_oElement.id) { - - var sId = Dom.generateId(); - - p_oElement.id = sId; - - - } - - - - fnSuperClass.call(this, (this._createGroupElement()), p_oElement); - - } - else if(Lang.isString(p_oElement)) { - - var oElement = Dom.get(p_oElement); - - if (oElement) { - - if(oElement.nodeName.toUpperCase() == this.TAG_NAME) { - - - fnSuperClass.call(this, oElement, p_oAttributes); - - } - - } - - } - else { - - var sNodeName = p_oElement.nodeName; - - if(sNodeName && sNodeName == this.TAG_NAME) { - - if(!p_oElement.id) { - - p_oElement.id = Dom.generateId(); - - - } - - - fnSuperClass.call(this, p_oElement, p_oAttributes); - - } - - } - -}; - - -YAHOO.extend(YAHOO.widget.ButtonGroup, YAHOO.util.Element, { - - -// Protected properties - - -/** -* @property _buttons -* @description Array of buttons in the button group. -* @default null -* @protected -* @type Array -*/ -_buttons: null, - - - -// Constants - - -/** -* @property TAG_NAME -* @description The name of the tag to be used for the button group's element. -* @default "DIV" -* @final -* @type String -*/ -TAG_NAME: "DIV", - - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the -* button group's element. -* @default "yuibuttongroup" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuibuttongroup", - - - -// Protected methods - - -/** -* @method _createGroupElement -* @description Creates the button group's element. -* @protected -* @return {HTMLDivElement} -*/ -_createGroupElement: function() { - - var oElement = document.createElement(this.TAG_NAME); - - oElement.className = this.CSS_CLASS_NAME; - - return oElement; - -}, - - - -// Protected attribute setter methods - - -/** -* @method _setDisabled -* @description Sets the value of the button groups's "disabled" attribute. -* @protected -* @param {Boolean} p_bDisabled Boolean indicating the value for the button -* group's "disabled" attribute. -*/ -_setDisabled: function(p_bDisabled) { - - var nButtons = this.getCount(); - - if(nButtons > 0) { - - var i = nButtons - 1; - - do { - - this._buttons[i].set("disabled", p_bDisabled); - - } - while(i--); - - } - -}, - - - -// Protected event handlers - - -/** -* @method _onKeyDown -* @description "keydown" event handler for the button group. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onKeyDown: function(p_oEvent) { - - var oTarget = Event.getTarget(p_oEvent), - nCharCode = Event.getCharCode(p_oEvent), - sId = oTarget.parentNode.parentNode.id, - oButton = m_oButtons[sId], - nIndex = -1; - - - if(nCharCode == 37 || nCharCode == 38) { - - nIndex = (oButton.index === 0) ? - (this._buttons.length -1) : (oButton.index - 1); - - } - else if(nCharCode == 39 || nCharCode == 40) { - - nIndex = (oButton.index === (this._buttons.length - 1)) ? - 0 : (oButton.index + 1); - - } - - - if(nIndex > -1) { - - this.check(nIndex); - this.getButton(nIndex).focus(); - - } - -}, - - -/** -* @method _onAppendTo -* @description "appendTo" event handler for the button group. -* @protected -* @param {Event} p_oEvent Object representing the event that was fired. -*/ -_onAppendTo: function(p_oEvent) { - - var aButtons = this._buttons, - nButtons = aButtons.length; - - for(var i=0; iYAHOO.widget.Button} p_oButton -* Object representing the button that fired the event. -*/ -_onButtonCheckedChange: function(p_oEvent, p_oButton) { - - var bChecked = p_oEvent.newValue, - oCheckedButton = this.get("checkedButton"); - - if(bChecked && oCheckedButton != p_oButton) { - - if(oCheckedButton) { - - oCheckedButton.set("checked", false, true); - - } - - this.set("checkedButton", p_oButton); - this.set("value", p_oButton.get("value")); - - } - else if(oCheckedButton && !oCheckedButton.set("checked")) { - - oCheckedButton.set("checked", true, true); - - } - -}, - - - -// Public methods - - -/** -* @method init -* @description The ButtonGroup class's initialization method. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the button group. -* @param {HTMLDivElement} p_oElement Object -* specifying the <div> element of the button group. -* @param {Object} p_oElement Object literal specifying a set of configuration -* attributes used to create the button group. -* @param {Object} p_oAttributes Optional. Object literal specifying a set of -* configuration attributes used to create the button group. -*/ -init: function(p_oElement, p_oAttributes) { - - this._buttons = []; - - YAHOO.widget.ButtonGroup.superclass.init.call( - this, p_oElement, - p_oAttributes - ); - - - - var aButtons = this.getElementsByClassName("yuibutton"); - - - if(aButtons.length > 0) { - - - this.addButtons(aButtons); - - } - - - - function isRadioButton(p_oElement) { - - return (p_oElement.type == "radio"); - - } - - aButtons = Dom.getElementsBy(isRadioButton, "input", this.get("element")); - - - if(aButtons.length > 0) { - - - this.addButtons(aButtons); - - } - - this.on("keydown", this._onKeyDown); - this.on("appendTo", this._onAppendTo); - - var oContainer = this.get("container"); - - if(oContainer) { - - if(Lang.isString(oContainer)) { - - var me = this; - - Event.onContentReady(oContainer, function() { - - me.appendTo(this); - - }); - - } - else { - - this.appendTo(oContainer); - - } - - } - - - -}, - - -/** -* @method initAttributes -* @description Initializes all of the configuration attributes used to create -* the button group. -* @param {Object} p_oAttributes Object literal specifying a set of -* configuration attributes used to create the button group. -*/ -initAttributes: function(p_oAttributes) { - - var oAttributes = p_oAttributes || {}; - - YAHOO.widget.ButtonGroup.superclass.initAttributes.call( - this, - oAttributes - ); - - - /** - * @config name - * @description String specifying the name for the button group. This - * name will be applied to each button in the button group. - * @default null - * @type String - */ - this.setAttributeConfig("name", { - - value: oAttributes.name, - validator: Lang.isString - - }); - - - /** - * @config disabled - * @description Boolean indicating if the button group should be disabled. - * Disabling the button group will disable each button in the button group. - * Disabled buttons are dimmed and will not respond to user input - * or fire events. - * @default false - * @type Boolean - */ - this.setAttributeConfig("disabled", { - - value: (oAttributes.disabled || false), - validator: Lang.isBoolean, - method: this._setDisabled - - }); - - - /** - * @config value - * @description Object specifying the value for the button group. - * @default null - * @type Object - */ - this.setAttributeConfig("value", { - - value: oAttributes.value - - }); - - - /** - * @config container - * @description HTML element reference or string specifying the id - * attribute of the HTML element that the button group's markup should be - * rendered into. - * @type HTMLElement|String - * @default null - */ - this.setAttributeConfig("container", { - - value: oAttributes.container - - }); - - - /** - * @config checkedButton - * @description Reference for the button in the button group that - * is checked. - * @type {YAHOO.widget.Button} - * @default null - */ - this.setAttributeConfig("checkedButton", { - - value: null - - }); - -}, - - -/** -* @method addButton -* @description Adds the button to the button group. -* @param {YAHOO.widget.Button} p_oButton -* Object reference for the -* YAHOO.widget.Button instance to be added to the button group. -* @param {String} p_oButton String specifying the id attribute of the -* <input> or <span> element to be -* used to create the button to be added to the button group. -* @param {HTMLInputElement|HTMLElement} p_oButton Object reference for the -* <input> or <span> element to be -* used to create the button to be added to the button group. -* @param {Object} p_oButton Object literal specifying a set of -* YAHOO.widget.Button configuration -* attributes used to configure the button to be added to the button group. -* @return {YAHOO.widget.Button} -*/ -addButton: function(p_oButton) { - - var oButton; - - - if(p_oButton instanceof Button && p_oButton.get("type") == "radio") { - - oButton = p_oButton; - - } - else if(!Lang.isString(p_oButton) && !p_oButton.nodeName) { - - p_oButton.type = "radio"; - - oButton = new Button(p_oButton); - - } - else { - - oButton = new Button(p_oButton, { type: "radio" }); - - } - - - if(oButton) { - - var nIndex = this._buttons.length, - sButtonName = oButton.get("name"), - sGroupName = this.get("name"); - - oButton.index = nIndex; - - this._buttons[nIndex] = oButton; - m_oButtons[oButton.get("id")] = oButton; - - - if(sButtonName != sGroupName) { - - oButton.set("name", sGroupName); - - } - - - if(this.get("disabled")) { - - oButton.set("disabled", true); - - } - - - if(oButton.get("checked")) { - - this.set("checkedButton", oButton); - - } - - - oButton.on("checkedChange", this._onButtonCheckedChange, oButton, this); - - - return oButton; - - } - -}, - - -/** -* @method addButtons -* @description Adds the array of buttons to the button group. -* @param {Array} p_aButtons Array of -* YAHOO.widget.Button instances to be added -* to the button group. -* @param {Array} p_aButtons Array of strings specifying the id attribute of -* the <input> or <span> elements to -* be used to create the buttons to be added to the button group. -* @param {Array} p_aButtons Array of object references for the -* <input> or <span> elements to be -* used to create the buttons to be added to the button group. -* @param {Array} p_aButtons Array of object literals, each containing a set of -* YAHOO.widget.Button configuration -* attributes used to configure each button to be added to the button group. -* @return {Array} -*/ -addButtons: function(p_aButtons) { - - if(Lang.isArray(p_aButtons)) { - - var nButtons = p_aButtons.length, - oButton, - aButtons = []; - - if(nButtons > 0) { - - for(var i=0; i 0) { - - - return aButtons; - - } - - } - - } - -}, - - -/** -* @method removeButton -* @description Removes the button at the specified index from the button group. -* @param {Number} p_nIndex Number specifying the index of the button to be -* removed from the button group. -*/ -removeButton: function(p_nIndex) { - - var oButton = this.getButton(p_nIndex); - - if(oButton) { - - - this._buttons.splice(p_nIndex, 1); - delete m_oButtons[oButton.get("id")]; - - oButton.removeListener("checkedChange", this._onButtonCheckedChange); - oButton.destroy(); - - - var nButtons = this._buttons.length; - - if(nButtons > 0) { - - var i = this._buttons.length - 1; - - do { - - this._buttons[i].index = i; - - } - while(i--); - - } - - - } - -}, - - -/** -* @method getButton -* @description Returns the button at the specified index. -* @param {Number} p_nIndex The index of the button to retrieve from the -* button group. -* @return {YAHOO.widget.Button} -*/ -getButton: function(p_nIndex) { - - if(Lang.isNumber(p_nIndex)) { - - return this._buttons[p_nIndex]; - - } - -}, - - -/** -* @method getButtons -* @description Returns an array of the buttons in the button group. -* @return {Array} -*/ -getButtons: function() { - - return this._buttons; - -}, - - -/** -* @method getCount -* @description Returns the number of buttons in the button group. -* @return {Number} -*/ -getCount: function() { - - return this._buttons.length; - -}, - - -/** -* @method focus -* @description Sets focus to the button at the specified index. -* @param {Number} p_nIndex Number indicating the index of the button to focus. -*/ -focus: function(p_nIndex) { - - var oButton; - - if(Lang.isNumber(p_nIndex)) { - - oButton = this._buttons[p_nIndex]; - - if(oButton) { - - oButton.focus(); - - } - - } - else { - - var nButtons = this.getCount(); - - for(var i=0; i 0) { - - var i = this._buttons.length - 1; - - do { - - this._buttons[i].destroy(); - - } - while(i--); - - } - - - Event.purgeElement(oElement); - - - oParentNode.removeChild(oElement); - -}, - - -/** -* @method toString -* @description Returns a string representing the button group. -* @return {String} -*/ -toString: function() { - - return ("ButtonGroup " + this.get("id")); - -} - -}); - -})(); -YAHOO.register("button", YAHOO.widget.Button, {version: "2.2.2", build: "204"}); diff --git a/www/extras/yui/build/calendar/README b/www/extras/yui/build/calendar/README deleted file mode 100644 index 8f30538e2..000000000 --- a/www/extras/yui/build/calendar/README +++ /dev/null @@ -1,100 +0,0 @@ -Calendar Release Notes - -*** version 2.2.2 *** - - - Fixed problem with selected dates being shared across instances, when more than one Calendar/CalendarGroup was on the page - -*** version 2.2.1 *** - - - Fixed problem with selectCell adding duplicate selected date entries for dates which were already selected - - Fixed problem with CalendarGroup iframe shim not covering the CalendarGroup title area - - Removed javascript:void(null) from close button and cell links which was interrupting form submission and firing onbeforeunload in IE - - Fixed problem with CalendarGroup getSelectedDates returning invalid results, when used in conjunction with the "selected" Config property (either passed in the constructor config argument or set seperately after construction) - - Refactored Calendar and CalendarGroup to improve performance, especially when working with a large number of instances in IE6 - -*** version 2.2.0 *** - - - Image customization can now be done through CSS. Images for Close, Left and Right Arrows are now pulled in using CSS defined in calendar.css and by default use relative paths to the images in the same directory as calendar.css. - - Deprecated Calendar.IMG_ROOT and NAV_ARROW_LEFT, NAV_ARROW_RIGHT configuration properties. Customizations based on older releases which set these properties will still function as expected. - - Deprecated CalendarGroup.CSS_2UPCLOSE. Calendar's Style.CSS_CLOSE property now represents the new default CSS class (calclose) for the close button. CSS_2UPCLOSE is still applied along with CSS_CLOSE to the new markup for the close button to support existing customizations of the CSS_2UPCLOSE CSS class (close-icon) - - Fixed problem with Safari setting Calendar pages to incorrect dates if the pages spanned a year boundary in CalendarGroups with 3 or more pages, due to a bug in Safari's implementation of Date setMonth - - Fixed problem with CalendarGroup setMonth rendering Calendar pages with incorrect dates in all browsers if current pages spanned year boundary - - Fixed incorrect CalendarGroup logging statement in calendar-debug.js - - Fixed domEventMap support for Safari versions prior to 2.0.2, caused by hasOwnProperty not being supported - - Removed unused private property : _pageDate from Calendar class - -*** version 0.12.2 *** - - - Corrected documentation for clearTime function to reflect the change from midnight to noon - -*** version 0.12.1 *** - - - Calendar and CalendarGroup now automatically parse the argument passed to setMonth and setYear into an integer, eliminating potential concatenation bugs. - -*** version 0.12 *** - - - New documentation format implemented - - Calendar2up and Calendar_Core are now deprecated. Now, Calendar alone represents the single Calendar instance, and CalendarGroup represents an n-up instance, defaulting to 2up - - Added semantic style classes to Calendar elements to allow for custom styling solely using CSS. - - Remapped all configuration properties to use the Config object (familiar to those who use the Container collection of controls). Property names are the same as their previous counterparts, but wrapped into Calendar.cfg, allowing for runtime reconfiguration of most properties - - Added "title" property for setting the Calendar title - - Added "close" property for enabling and disabling the close icon - - Added "iframe" property for enabling an iframe shim in Internet Explorer 6 and below to fix the select bleed-through bug - - pageDate moved to property: "pagedate" - - selectedDates moved to property: "selected" - - minDate moved to property : "mindate", which accepts a JavaScript Date object like its predecessor, but also supports string dates - - maxDate moved to property : "maxdate", which accepts a JavaScript Date object like its predecessor, but also supports string dates - - Moved style declarations to initStyles function - - Optimized event handling in doSelectCell/doCellMouseOver/doCellMouseOut by only attaching the listener to the outer Calendar container, and only reacting to events on cells with the "selectable" CSS class. - - Added domEventMap field for applying DOM event listeners to cells containing specific class and tag combinations. - - Moved all cell DOM event attachment to applyListeners function - - Added getDateByCellId / getDateFieldsByCellId helper functions - - Corrected DateMath.getWeekNumber to comply with ISO week number handling - - Separated renderCellDefault style portions into styleCellDefault function for easy extension - - Deprecated onBeforeSelect. Created beforeSelectEvent which automatically subscribes to its deprecated predecessor. - - Deprecated onSelect. Created selectEvent, which automatically subscribes to its deprecated predecessor. - - Deprecated onBeforeDeselect. Created beforeSelectEvent which automatically subscribes to its deprecated predecessor. - - Deprecated onDeselect. Created beforeDeselectEvent, which automatically subscribes to its deprecated predecessor. - - Deprecated onChangePage. Created changePageEvent, which automatically subscribes to its deprecated predecessor. - - Deprecated onRender. Created renderEvent, which automatically subscribes to its deprecated predecessor. - - Deprecated onReset. Created resetEvent, which automatically subscribes to its deprecated predecessor. - - Deprecated onClear. Created clearEvent, which automatically subscribes to its deprecated predecessor. - - Corrected setMonth documentation to refer to 0-11 indexed months. - - Added show and hide methods to Calendar for setting the Calendar's display property. - - Optimized internal render classes to use innerHTML and string buffers - - Removed wireCustomEvents function - - Removed wireDefaultEvents function - - Removed doNextMonth / doPreviousMonth - - Removed all buildShell (header, body, footer) functions, since the Calendar shell is now built dynamically on each render - - Wired all CalendarGroup events and configuration properties to be properly delegated to Calendar - - Augmented CalendarGroup with all built-in renderers, label functions, hide, show, and initStyles, creating API transparency between Calendar and CalendarGroup. - - Made all tagName, createElement, and entity references XHTML compliant - - Fixed Daylight Saving Time bug for Brazilian time zone - -*** version 0.11.3 *** - - - Calendar_Core: Added arguments for selected/deselected dates to onSelect/onDeselect - - CalendarGroup: Fixed bug where selected dates passed to constructor were not represented in selectedDates - - Calendar2up: Now displays correctly in Opera 9 - -*** version 0.11.0 *** - - - DateMath: DateMath.add now properly adds weeks - - DateMath: between() function added - - DateMath: getWeekNumber() fixed to take starting day of week into account - - All references to Calendar's built in CSS class handlers are removed, replaced with calls to Dom utility (addClass, removeClass) - - Several CSS class constants now have clearer names - - All CSS classes are now properly namespaced to avoid CSS conflicts - - Fixed table:hover bug in CSS - - Calendar no longer requires the container ID and variable name to match in order for month navigation to function properly - - Calendar month navigation arrows are now represented as background images - -*** version 0.10.0 *** - - - Major performance improvements from attaching DOM events to associated table cells only once, when the Calendar shell is built - - DOM events for mouseover/mouseout are now fired for all browsers (not just Internet Explorer) - - Reset functionality bug fixed for 2-up Calendar view - -*** version 0.9.0 *** - -* Initial release diff --git a/www/extras/yui/build/calendar/assets/calendar.css b/www/extras/yui/build/calendar/assets/calendar.css deleted file mode 100644 index 9c762691e..000000000 --- a/www/extras/yui/build/calendar/assets/calendar.css +++ /dev/null @@ -1,197 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -.yui-calcontainer { - position:relative; - padding:5px; - background-color:#F7F9FB; - border:1px solid #7B9EBD; - float:left; - overflow:hidden; -} - -.yui-calcontainer iframe { - position:absolute; - border:none; - margin:0;padding:0; - left:-1px; - top:-1px; - z-index:0; - width:50em; - height:50em; -} - -.yui-calcontainer.multi { - padding:0; -} - -.yui-calcontainer.multi .groupcal { - padding:5px; - background-color:transparent; - z-index:1; - float:left; - position:relative; - border:none; -} - -.yui-calcontainer .title { - font:100% sans-serif; - color:#000; - font-weight:bold; - margin-bottom:5px; - height:25px; - position:absolute; - top:3px;left:5px; - z-index:1; -} - -.yui-calcontainer .close-icon { - position:absolute; - right:3px; - top:3px; - border:none; - z-index:1; -} - -.yui-calcontainer .calclose { - background: url("calx.gif") no-repeat; - width:17px; - height:13px; - cursor:pointer; -} - -/* Calendar element styles */ - -.yui-calendar { - font:100% sans-serif; - text-align:center; - border-spacing:0; - border-collapse:separate; - position:relative; -} - -.yui-calcontainer.withtitle { - padding-top:1.5em; -} - -.yui-calendar .calnavleft { - position:absolute; - cursor:pointer; - top:2px; - bottom:0; - width:9px; - height:12px; - left:2px; - z-index:1; - background: url("callt.gif") no-repeat; -} - -.yui-calendar .calnavright { - position:absolute; - cursor:pointer; - top:2px; - bottom:0; - width:9px; - height:12px; - right:2px; - z-index:1; - background: url("calrt.gif") no-repeat; -} - -.yui-calendar td.calcell { - padding:.1em .2em; - border:1px solid #E0E0E0; - text-align:center; -} - -.yui-calendar td.calcell a { - color:#003DB8; - text-decoration:none; -} - -.yui-calendar td.calcell.today { - border:1px solid #000; -} - -.yui-calendar td.calcell.oom { - cursor:default; - color:#999; - background-color:#EEE; - border:1px solid #E0E0E0; -} - -.yui-calendar td.calcell.selected { - color:#003DB8; - background-color:#FFF19F; - border:1px solid #FF9900; -} - -.yui-calendar td.calcell.calcellhover { - cursor:pointer; - color:#FFF; - background-color:#FF9900; - border:1px solid #FF9900; -} - -.yui-calendar td.calcell.calcellhover a { - color:#FFF; -} - -.yui-calendar td.calcell.restricted { - text-decoration:line-through; -} - -.yui-calendar td.calcell.previous { - color:#CCC; -} - -.yui-calendar td.calcell.highlight1 { background-color:#CCFF99; } -.yui-calendar td.calcell.highlight2 { background-color:#99CCFF; } -.yui-calendar td.calcell.highlight3 { background-color:#FFCCCC; } -.yui-calendar td.calcell.highlight4 { background-color:#CCFF99; } - -.yui-calendar .calhead { - border:1px solid #E0E0E0; - vertical-align:middle; - background-color:#FFF; -} - -.yui-calendar .calheader { - position:relative; - width:100%; - text-align:center; -} - -.yui-calendar .calheader img { - border:none; -} - -.yui-calendar .calweekdaycell { - color:#666; - font-weight:normal; - text-align:center; - width:1.5em; -} - -.yui-calendar .calfoot { - background-color:#EEE; -} - -.yui-calendar .calrowhead, .yui-calendar .calrowfoot { - color:#666; - font-size:9px; - font-style:italic; - font-weight:normal; - width:15px; -} - -.yui-calendar .calrowhead { - border-right-width:2px; -} - -/* Specific changes for calendar running under fonts/reset */ -.yui-calendar .calbody a:hover {background:inherit;} -p#clear {clear:left; padding-top:10px;} diff --git a/www/extras/yui/build/calendar/assets/callt.gif b/www/extras/yui/build/calendar/assets/callt.gif deleted file mode 100644 index a6cc8da5b..000000000 Binary files a/www/extras/yui/build/calendar/assets/callt.gif and /dev/null differ diff --git a/www/extras/yui/build/calendar/assets/calrt.gif b/www/extras/yui/build/calendar/assets/calrt.gif deleted file mode 100644 index ee137b2ff..000000000 Binary files a/www/extras/yui/build/calendar/assets/calrt.gif and /dev/null differ diff --git a/www/extras/yui/build/calendar/assets/calx.gif b/www/extras/yui/build/calendar/assets/calx.gif deleted file mode 100644 index 27e7bc36e..000000000 Binary files a/www/extras/yui/build/calendar/assets/calx.gif and /dev/null differ diff --git a/www/extras/yui/build/calendar/calendar-debug.js b/www/extras/yui/build/calendar/calendar-debug.js deleted file mode 100644 index 5be3b0340..000000000 --- a/www/extras/yui/build/calendar/calendar-debug.js +++ /dev/null @@ -1,4570 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -/** -* Config is a utility used within an Object to allow the implementer to maintain a list of local configuration properties and listen for changes to those properties dynamically using CustomEvent. The initial values are also maintained so that the configuration can be reset at any given point to its initial state. -* @namespace YAHOO.util -* @class Config -* @constructor -* @param {Object} owner The owner Object to which this Config Object belongs -*/ -YAHOO.util.Config = function(owner) { - if (owner) { - this.init(owner); - } - if (!owner) { YAHOO.log("No owner specified for Config object", "error"); } -}; - -/** - * Constant representing the CustomEvent type for the config changed event. - * @property YAHOO.util.Config.CONFIG_CHANGED_EVENT - * @private - * @static - * @final - */ -YAHOO.util.Config.CONFIG_CHANGED_EVENT = "configChanged"; - -/** - * Constant representing the boolean type string - * @property YAHOO.util.Config.BOOLEAN_TYPE - * @private - * @static - * @final - */ -YAHOO.util.Config.BOOLEAN_TYPE = "boolean"; - -YAHOO.util.Config.prototype = { - - /** - * Object reference to the owner of this Config Object - * @property owner - * @type Object - */ - owner : null, - - /** - * Boolean flag that specifies whether a queue is currently being executed - * @property queueInProgress - * @type Boolean - */ - queueInProgress : false, - - /** - * Maintains the local collection of configuration property objects and their specified values - * @property config - * @private - * @type Object - */ - config : null, - - /** - * Maintains the local collection of configuration property objects as they were initially applied. - * This object is used when resetting a property. - * @property initialConfig - * @private - * @type Object - */ - initialConfig : null, - - /** - * Maintains the local, normalized CustomEvent queue - * @property eventQueue - * @private - * @type Object - */ - eventQueue : null, - - /** - * Custom Event, notifying subscribers when Config properties are set (setProperty is called without the silent flag - * @event configChangedEvent - */ - configChangedEvent : null, - - /** - * Validates that the value passed in is a Boolean. - * @method checkBoolean - * @param {Object} val The value to validate - * @return {Boolean} true, if the value is valid - */ - checkBoolean: function(val) { - return (typeof val == YAHOO.util.Config.BOOLEAN_TYPE); - }, - - /** - * Validates that the value passed in is a number. - * @method checkNumber - * @param {Object} val The value to validate - * @return {Boolean} true, if the value is valid - */ - checkNumber: function(val) { - return (!isNaN(val)); - }, - - /** - * Fires a configuration property event using the specified value. - * @method fireEvent - * @private - * @param {String} key The configuration property's name - * @param {value} Object The value of the correct type for the property - */ - fireEvent : function( key, value ) { - YAHOO.log("Firing Config event: " + key + "=" + value, "info"); - var property = this.config[key]; - - if (property && property.event) { - property.event.fire(value); - } - }, - - /** - * Adds a property to the Config Object's private config hash. - * @method addProperty - * @param {String} key The configuration property's name - * @param {Object} propertyObject The Object containing all of this property's arguments - */ - addProperty : function( key, propertyObject ) { - key = key.toLowerCase(); - YAHOO.log("Added property: " + key, "info"); - - this.config[key] = propertyObject; - - propertyObject.event = new YAHOO.util.CustomEvent(key, this.owner); - propertyObject.key = key; - - if (propertyObject.handler) { - propertyObject.event.subscribe(propertyObject.handler, this.owner); - } - - this.setProperty(key, propertyObject.value, true); - - if (! propertyObject.suppressEvent) { - this.queueProperty(key, propertyObject.value); - } - - }, - - /** - * Returns a key-value configuration map of the values currently set in the Config Object. - * @method getConfig - * @return {Object} The current config, represented in a key-value map - */ - getConfig : function() { - var cfg = {}; - - for (var prop in this.config) { - var property = this.config[prop]; - if (property && property.event) { - cfg[prop] = property.value; - } - } - - return cfg; - }, - - /** - * Returns the value of specified property. - * @method getProperty - * @param {String} key The name of the property - * @return {Object} The value of the specified property - */ - getProperty : function(key) { - var property = this.config[key.toLowerCase()]; - if (property && property.event) { - return property.value; - } else { - return undefined; - } - }, - - /** - * Resets the specified property's value to its initial value. - * @method resetProperty - * @param {String} key The name of the property - * @return {Boolean} True is the property was reset, false if not - */ - resetProperty : function(key) { - key = key.toLowerCase(); - - var property = this.config[key]; - if (property && property.event) { - if (this.initialConfig[key] && !YAHOO.lang.isUndefined(this.initialConfig[key])) { - this.setProperty(key, this.initialConfig[key]); - } - return true; - } else { - return false; - } - }, - - /** - * Sets the value of a property. If the silent property is passed as true, the property's event will not be fired. - * @method setProperty - * @param {String} key The name of the property - * @param {String} value The value to set the property to - * @param {Boolean} silent Whether the value should be set silently, without firing the property event. - * @return {Boolean} True, if the set was successful, false if it failed. - */ - setProperty : function(key, value, silent) { - key = key.toLowerCase(); - YAHOO.log("setProperty: " + key + "=" + value, "info"); - - if (this.queueInProgress && ! silent) { - this.queueProperty(key,value); // Currently running through a queue... - return true; - } else { - var property = this.config[key]; - if (property && property.event) { - if (property.validator && ! property.validator(value)) { // validator - return false; - } else { - property.value = value; - if (! silent) { - this.fireEvent(key, value); - this.configChangedEvent.fire([key, value]); - } - return true; - } - } else { - return false; - } - } - }, - - /** - * Sets the value of a property and queues its event to execute. If the event is already scheduled to execute, it is - * moved from its current position to the end of the queue. - * @method queueProperty - * @param {String} key The name of the property - * @param {String} value The value to set the property to - * @return {Boolean} true, if the set was successful, false if it failed. - */ - queueProperty : function(key, value) { - key = key.toLowerCase(); - YAHOO.log("queueProperty: " + key + "=" + value, "info"); - - var property = this.config[key]; - - if (property && property.event) { - if (!YAHOO.lang.isUndefined(value) && property.validator && ! property.validator(value)) { // validator - return false; - } else { - - if (!YAHOO.lang.isUndefined(value)) { - property.value = value; - } else { - value = property.value; - } - - var foundDuplicate = false; - var iLen = this.eventQueue.length; - for (var i=0; i < iLen; i++) { - var queueItem = this.eventQueue[i]; - - if (queueItem) { - var queueItemKey = queueItem[0]; - var queueItemValue = queueItem[1]; - - if (queueItemKey == key) { - // found a dupe... push to end of queue, null current item, and break - this.eventQueue[i] = null; - this.eventQueue.push([key, (!YAHOO.lang.isUndefined(value) ? value : queueItemValue)]); - foundDuplicate = true; - break; - } - } - } - - if (! foundDuplicate && !YAHOO.lang.isUndefined(value)) { // this is a refire, or a new property in the queue - this.eventQueue.push([key, value]); - } - } - - if (property.supercedes) { - var sLen = property.supercedes.length; - for (var s=0; s < sLen; s++) { - var supercedesCheck = property.supercedes[s]; - var qLen = this.eventQueue.length; - for (var q=0; q < qLen; q++) { - var queueItemCheck = this.eventQueue[q]; - - if (queueItemCheck) { - var queueItemCheckKey = queueItemCheck[0]; - var queueItemCheckValue = queueItemCheck[1]; - - if ( queueItemCheckKey == supercedesCheck.toLowerCase() ) { - this.eventQueue.push([queueItemCheckKey, queueItemCheckValue]); - this.eventQueue[q] = null; - break; - } - } - } - } - } - YAHOO.log("Config event queue: " + this.outputEventQueue(), "info"); - - return true; - } else { - return false; - } - }, - - /** - * Fires the event for a property using the property's current value. - * @method refireEvent - * @param {String} key The name of the property - */ - refireEvent : function(key) { - key = key.toLowerCase(); - - var property = this.config[key]; - if (property && property.event && !YAHOO.lang.isUndefined(property.value)) { - if (this.queueInProgress) { - this.queueProperty(key); - } else { - this.fireEvent(key, property.value); - } - } - }, - - /** - * Applies a key-value Object literal to the configuration, replacing any existing values, and queueing the property events. - * Although the values will be set, fireQueue() must be called for their associated events to execute. - * @method applyConfig - * @param {Object} userConfig The configuration Object literal - * @param {Boolean} init When set to true, the initialConfig will be set to the userConfig passed in, so that calling a reset will reset the properties to the passed values. - */ - applyConfig : function(userConfig, init) { - if (init) { - this.initialConfig = userConfig; - } - for (var prop in userConfig) { - this.queueProperty(prop, userConfig[prop]); - } - }, - - /** - * Refires the events for all configuration properties using their current values. - * @method refresh - */ - refresh : function() { - for (var prop in this.config) { - this.refireEvent(prop); - } - }, - - /** - * Fires the normalized list of queued property change events - * @method fireQueue - */ - fireQueue : function() { - this.queueInProgress = true; - for (var i=0;i 11) { - while (newMonth > 11) { - newMonth -= 12; - years += 1; - } - } - - d.setMonth(newMonth); - d.setFullYear(date.getFullYear() + years); - break; - case this.DAY: - d.setDate(date.getDate() + amount); - break; - case this.YEAR: - d.setFullYear(date.getFullYear() + amount); - break; - case this.WEEK: - d.setDate(date.getDate() + (amount * 7)); - break; - } - return d; - }, - - /** - * Subtracts the specified amount of time from the this instance. - * @method subtract - * @param {Date} date The JavaScript Date object to perform subtraction on - * @param {Number} field The this field constant to be used for performing subtraction. - * @param {Number} amount The number of units (measured in the field constant) to subtract from the date. - * @return {Date} The resulting Date object - */ - subtract : function(date, field, amount) { - return this.add(date, field, (amount*-1)); - }, - - /** - * Determines whether a given date is before another date on the calendar. - * @method before - * @param {Date} date The Date object to compare with the compare argument - * @param {Date} compareTo The Date object to use for the comparison - * @return {Boolean} true if the date occurs before the compared date; false if not. - */ - before : function(date, compareTo) { - var ms = compareTo.getTime(); - if (date.getTime() < ms) { - return true; - } else { - return false; - } - }, - - /** - * Determines whether a given date is after another date on the calendar. - * @method after - * @param {Date} date The Date object to compare with the compare argument - * @param {Date} compareTo The Date object to use for the comparison - * @return {Boolean} true if the date occurs after the compared date; false if not. - */ - after : function(date, compareTo) { - var ms = compareTo.getTime(); - if (date.getTime() > ms) { - return true; - } else { - return false; - } - }, - - /** - * Determines whether a given date is between two other dates on the calendar. - * @method between - * @param {Date} date The date to check for - * @param {Date} dateBegin The start of the range - * @param {Date} dateEnd The end of the range - * @return {Boolean} true if the date occurs between the compared dates; false if not. - */ - between : function(date, dateBegin, dateEnd) { - if (this.after(date, dateBegin) && this.before(date, dateEnd)) { - return true; - } else { - return false; - } - }, - - /** - * Retrieves a JavaScript Date object representing January 1 of any given year. - * @method getJan1 - * @param {Number} calendarYear The calendar year for which to retrieve January 1 - * @return {Date} January 1 of the calendar year specified. - */ - getJan1 : function(calendarYear) { - return new Date(calendarYear,0,1); - }, - - /** - * Calculates the number of days the specified date is from January 1 of the specified calendar year. - * Passing January 1 to this function would return an offset value of zero. - * @method getDayOffset - * @param {Date} date The JavaScript date for which to find the offset - * @param {Number} calendarYear The calendar year to use for determining the offset - * @return {Number} The number of days since January 1 of the given year - */ - getDayOffset : function(date, calendarYear) { - var beginYear = this.getJan1(calendarYear); // Find the start of the year. This will be in week 1. - - // Find the number of days the passed in date is away from the calendar year start - var dayOffset = Math.ceil((date.getTime()-beginYear.getTime()) / this.ONE_DAY_MS); - return dayOffset; - }, - - /** - * Calculates the week number for the given date. This function assumes that week 1 is the - * week in which January 1 appears, regardless of whether the week consists of a full 7 days. - * The calendar year can be specified to help find what a the week number would be for a given - * date if the date overlaps years. For instance, a week may be considered week 1 of 2005, or - * week 53 of 2004. Specifying the optional calendarYear allows one to make this distinction - * easily. - * @method getWeekNumber - * @param {Date} date The JavaScript date for which to find the week number - * @param {Number} calendarYear OPTIONAL - The calendar year to use for determining the week number. Default is - * the calendar year of parameter "date". - * @param {Number} weekStartsOn OPTIONAL - The integer (0-6) representing which day a week begins on. Default is 0 (for Sunday). - * @return {Number} The week number of the given date. - */ - getWeekNumber : function(date, calendarYear) { - date = this.clearTime(date); - var nearestThurs = new Date(date.getTime() + (4 * this.ONE_DAY_MS) - ((date.getDay()) * this.ONE_DAY_MS)); - - var jan1 = new Date(nearestThurs.getFullYear(),0,1); - var dayOfYear = ((nearestThurs.getTime() - jan1.getTime()) / this.ONE_DAY_MS) - 1; - - var weekNum = Math.ceil((dayOfYear)/ 7); - return weekNum; - }, - - /** - * Determines if a given week overlaps two different years. - * @method isYearOverlapWeek - * @param {Date} weekBeginDate The JavaScript Date representing the first day of the week. - * @return {Boolean} true if the date overlaps two different years. - */ - isYearOverlapWeek : function(weekBeginDate) { - var overlaps = false; - var nextWeek = this.add(weekBeginDate, this.DAY, 6); - if (nextWeek.getFullYear() != weekBeginDate.getFullYear()) { - overlaps = true; - } - return overlaps; - }, - - /** - * Determines if a given week overlaps two different months. - * @method isMonthOverlapWeek - * @param {Date} weekBeginDate The JavaScript Date representing the first day of the week. - * @return {Boolean} true if the date overlaps two different months. - */ - isMonthOverlapWeek : function(weekBeginDate) { - var overlaps = false; - var nextWeek = this.add(weekBeginDate, this.DAY, 6); - if (nextWeek.getMonth() != weekBeginDate.getMonth()) { - overlaps = true; - } - return overlaps; - }, - - /** - * Gets the first day of a month containing a given date. - * @method findMonthStart - * @param {Date} date The JavaScript Date used to calculate the month start - * @return {Date} The JavaScript Date representing the first day of the month - */ - findMonthStart : function(date) { - var start = new Date(date.getFullYear(), date.getMonth(), 1); - return start; - }, - - /** - * Gets the last day of a month containing a given date. - * @method findMonthEnd - * @param {Date} date The JavaScript Date used to calculate the month end - * @return {Date} The JavaScript Date representing the last day of the month - */ - findMonthEnd : function(date) { - var start = this.findMonthStart(date); - var nextMonth = this.add(start, this.MONTH, 1); - var end = this.subtract(nextMonth, this.DAY, 1); - return end; - }, - - /** - * Clears the time fields from a given date, effectively setting the time to 12 noon. - * @method clearTime - * @param {Date} date The JavaScript Date for which the time fields will be cleared - * @return {Date} The JavaScript Date cleared of all time fields - */ - clearTime : function(date) { - date.setHours(12,0,0,0); - return date; - } -}; - -/** -* The Calendar component is a UI control that enables users to choose one or more dates from a graphical calendar presented in a one-month ("one-up") or two-month ("two-up") interface. Calendars are generated entirely via script and can be navigated without any page refreshes. -* @module calendar -* @title Calendar -* @namespace YAHOO.widget -* @requires yahoo,dom,event -*/ - -/** -* Calendar is the base class for the Calendar widget. In its most basic -* implementation, it has the ability to render a calendar widget on the page -* that can be manipulated to select a single date, move back and forth between -* months and years. -*

        To construct the placeholder for the calendar widget, the code is as -* follows: -*

        -* <div id="cal1Container"></div> -* -* Note that the table can be replaced with any kind of element. -*

        -* @namespace YAHOO.widget -* @class Calendar -* @constructor -* @param {String} id The id of the table element that will represent the calendar widget -* @param {String} containerId The id of the container div element that will wrap the calendar table -* @param {Object} config The configuration object containing the Calendar's arguments -*/ -YAHOO.widget.Calendar = function(id, containerId, config) { - this.init(id, containerId, config); -}; - -/** -* The path to be used for images loaded for the Calendar -* @property YAHOO.widget.Calendar.IMG_ROOT -* @static -* @deprecated You can now customize images by overriding the calclose, calnavleft and calnavright default CSS classes for the close icon, left arrow and right arrow respectively -* @type String -*/ -YAHOO.widget.Calendar.IMG_ROOT = null; - -/** -* Type constant used for renderers to represent an individual date (M/D/Y) -* @property YAHOO.widget.Calendar.DATE -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.DATE = "D"; - -/** -* Type constant used for renderers to represent an individual date across any year (M/D) -* @property YAHOO.widget.Calendar.MONTH_DAY -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.MONTH_DAY = "MD"; - -/** -* Type constant used for renderers to represent a weekday -* @property YAHOO.widget.Calendar.WEEKDAY -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.WEEKDAY = "WD"; - -/** -* Type constant used for renderers to represent a range of individual dates (M/D/Y-M/D/Y) -* @property YAHOO.widget.Calendar.RANGE -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.RANGE = "R"; - -/** -* Type constant used for renderers to represent a month across any year -* @property YAHOO.widget.Calendar.MONTH -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.MONTH = "M"; - -/** -* Constant that represents the total number of date cells that are displayed in a given month -* @property YAHOO.widget.Calendar.DISPLAY_DAYS -* @static -* @final -* @type Number -*/ -YAHOO.widget.Calendar.DISPLAY_DAYS = 42; - -/** -* Constant used for halting the execution of the remainder of the render stack -* @property YAHOO.widget.Calendar.STOP_RENDER -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.STOP_RENDER = "S"; - -/** -* Constant used to represent short date field string formats (e.g. Tu or Feb) -* @property YAHOO.widget.Calendar.SHORT -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.SHORT = "short"; - -/** -* Constant used to represent long date field string formats (e.g. Monday or February) -* @property YAHOO.widget.Calendar.LONG -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.LONG = "long"; - -/** -* Constant used to represent medium date field string formats (e.g. Mon) -* @property YAHOO.widget.Calendar.MEDIUM -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.MEDIUM = "medium"; - -/** -* Constant used to represent single character date field string formats (e.g. M, T, W) -* @property YAHOO.widget.Calendar.ONE_CHAR -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.ONE_CHAR = "1char"; - -/** -* The set of default Config property keys and values for the Calendar -* @property YAHOO.widget.Calendar._DEFAULT_CONFIG -* @final -* @static -* @private -* @type Object -*/ -YAHOO.widget.Calendar._DEFAULT_CONFIG = { - // Default values for pagedate and selected are not class level constants - they are set during instance creation - PAGEDATE : {key:"pagedate", value:null}, - SELECTED : {key:"selected", value:null}, - TITLE : {key:"title", value:""}, - CLOSE : {key:"close", value:false}, - IFRAME : {key:"iframe", value:true}, - MINDATE : {key:"mindate", value:null}, - MAXDATE : {key:"maxdate", value:null}, - MULTI_SELECT : {key:"multi_select", value:false}, - START_WEEKDAY : {key:"start_weekday", value:0}, - SHOW_WEEKDAYS : {key:"show_weekdays", value:true}, - SHOW_WEEK_HEADER : {key:"show_week_header", value:false}, - SHOW_WEEK_FOOTER : {key:"show_week_footer", value:false}, - HIDE_BLANK_WEEKS : {key:"hide_blank_weeks", value:false}, - NAV_ARROW_LEFT: {key:"nav_arrow_left", value:null} , - NAV_ARROW_RIGHT : {key:"nav_arrow_right", value:null} , - MONTHS_SHORT : {key:"months_short", value:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]}, - MONTHS_LONG: {key:"months_long", value:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]}, - WEEKDAYS_1CHAR: {key:"weekdays_1char", value:["S", "M", "T", "W", "T", "F", "S"]}, - WEEKDAYS_SHORT: {key:"weekdays_short", value:["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]}, - WEEKDAYS_MEDIUM: {key:"weekdays_medium", value:["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]}, - WEEKDAYS_LONG: {key:"weekdays_long", value:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]}, - LOCALE_MONTHS:{key:"locale_months", value:"long"}, - LOCALE_WEEKDAYS:{key:"locale_weekdays", value:"short"}, - DATE_DELIMITER:{key:"date_delimiter", value:","}, - DATE_FIELD_DELIMITER:{key:"date_field_delimiter", value:"/"}, - DATE_RANGE_DELIMITER:{key:"date_range_delimiter", value:"-"}, - MY_MONTH_POSITION:{key:"my_month_position", value:1}, - MY_YEAR_POSITION:{key:"my_year_position", value:2}, - MD_MONTH_POSITION:{key:"md_month_position", value:1}, - MD_DAY_POSITION:{key:"md_day_position", value:2}, - MDY_MONTH_POSITION:{key:"mdy_month_position", value:1}, - MDY_DAY_POSITION:{key:"mdy_day_position", value:2}, - MDY_YEAR_POSITION:{key:"mdy_year_position", value:3} -}; - -/** -* The set of Custom Event types supported by the Calendar -* @property YAHOO.widget.Calendar._EVENT_TYPES -* @final -* @static -* @private -* @type Object -*/ -YAHOO.widget.Calendar._EVENT_TYPES = { - BEFORE_SELECT : "beforeSelect", - SELECT : "select", - BEFORE_DESELECT : "beforeDeselect", - DESELECT : "deselect", - CHANGE_PAGE : "changePage", - BEFORE_RENDER : "beforeRender", - RENDER : "render", - RESET : "reset", - CLEAR : "clear" -}; - -/** -* The set of default style constants for the Calendar -* @property YAHOO.widget.Calendar._STYLES -* @final -* @static -* @private -* @type Object -*/ -YAHOO.widget.Calendar._STYLES = { - CSS_ROW_HEADER: "calrowhead", - CSS_ROW_FOOTER: "calrowfoot", - CSS_CELL : "calcell", - CSS_CELL_SELECTOR : "selector", - CSS_CELL_SELECTED : "selected", - CSS_CELL_SELECTABLE : "selectable", - CSS_CELL_RESTRICTED : "restricted", - CSS_CELL_TODAY : "today", - CSS_CELL_OOM : "oom", - CSS_CELL_OOB : "previous", - CSS_HEADER : "calheader", - CSS_HEADER_TEXT : "calhead", - CSS_BODY : "calbody", - CSS_WEEKDAY_CELL : "calweekdaycell", - CSS_WEEKDAY_ROW : "calweekdayrow", - CSS_FOOTER : "calfoot", - CSS_CALENDAR : "yui-calendar", - CSS_SINGLE : "single", - CSS_CONTAINER : "yui-calcontainer", - CSS_NAV_LEFT : "calnavleft", - CSS_NAV_RIGHT : "calnavright", - CSS_CLOSE : "calclose", - CSS_CELL_TOP : "calcelltop", - CSS_CELL_LEFT : "calcellleft", - CSS_CELL_RIGHT : "calcellright", - CSS_CELL_BOTTOM : "calcellbottom", - CSS_CELL_HOVER : "calcellhover", - CSS_CELL_HIGHLIGHT1 : "highlight1", - CSS_CELL_HIGHLIGHT2 : "highlight2", - CSS_CELL_HIGHLIGHT3 : "highlight3", - CSS_CELL_HIGHLIGHT4 : "highlight4" -}; - -YAHOO.widget.Calendar.prototype = { - - /** - * The configuration object used to set up the calendars various locale and style options. - * @property Config - * @private - * @deprecated Configuration properties should be set by calling Calendar.cfg.setProperty. - * @type Object - */ - Config : null, - - /** - * The parent CalendarGroup, only to be set explicitly by the parent group - * @property parent - * @type CalendarGroup - */ - parent : null, - - /** - * The index of this item in the parent group - * @property index - * @type Number - */ - index : -1, - - /** - * The collection of calendar table cells - * @property cells - * @type HTMLTableCellElement[] - */ - cells : null, - - /** - * The collection of calendar cell dates that is parallel to the cells collection. The array contains dates field arrays in the format of [YYYY, M, D]. - * @property cellDates - * @type Array[](Number[]) - */ - cellDates : null, - - /** - * The id that uniquely identifies this calendar. This id should match the id of the placeholder element on the page. - * @property id - * @type String - */ - id : null, - - /** - * The DOM element reference that points to this calendar's container element. The calendar will be inserted into this element when the shell is rendered. - * @property oDomContainer - * @type HTMLElement - */ - oDomContainer : null, - - /** - * A Date object representing today's date. - * @property today - * @type Date - */ - today : null, - - /** - * The list of render functions, along with required parameters, used to render cells. - * @property renderStack - * @type Array[] - */ - renderStack : null, - - /** - * A copy of the initial render functions created before rendering. - * @property _renderStack - * @private - * @type Array - */ - _renderStack : null, - - /** - * The private list of initially selected dates. - * @property _selectedDates - * @private - * @type Array - */ - _selectedDates : null, - - /** - * A map of DOM event handlers to attach to cells associated with specific CSS class names - * @property domEventMap - * @type Object - */ - domEventMap : null -}; - - - -/** -* Initializes the Calendar widget. -* @method init -* @param {String} id The id of the table element that will represent the calendar widget -* @param {String} containerId The id of the container div element that will wrap the calendar table -* @param {Object} config The configuration object containing the Calendar's arguments -*/ -YAHOO.widget.Calendar.prototype.init = function(id, containerId, config) { - this.logger = new YAHOO.widget.LogWriter("Calendar_Core " + id); - this.initEvents(); - this.today = new Date(); - YAHOO.widget.DateMath.clearTime(this.today); - - this.id = id; - this.oDomContainer = document.getElementById(containerId); - if (! this.oDomContainer) { this.logger.log("No valid container present.", "error"); } - - /** - * The Config object used to hold the configuration variables for the Calendar - * @property cfg - * @type YAHOO.util.Config - */ - this.cfg = new YAHOO.util.Config(this); - - /** - * The local object which contains the Calendar's options - * @property Options - * @type Object - */ - this.Options = {}; - - /** - * The local object which contains the Calendar's locale settings - * @property Locale - * @type Object - */ - this.Locale = {}; - - this.initStyles(); - - YAHOO.util.Dom.addClass(this.oDomContainer, this.Style.CSS_CONTAINER); - YAHOO.util.Dom.addClass(this.oDomContainer, this.Style.CSS_SINGLE); - - this.cellDates = []; - this.cells = []; - this.renderStack = []; - this._renderStack = []; - - this.setupConfig(); - - if (config) { - this.cfg.applyConfig(config, true); - } - - this.cfg.fireQueue(); -}; - -/** -* Renders the built-in IFRAME shim for the IE6 and below -* @method configIframe -*/ -YAHOO.widget.Calendar.prototype.configIframe = function(type, args, obj) { - var useIframe = args[0]; - - if (!this.parent) { - if (YAHOO.util.Dom.inDocument(this.oDomContainer)) { - if (useIframe) { - var pos = YAHOO.util.Dom.getStyle(this.oDomContainer, "position"); - - if (this.browser == "ie" && (pos == "absolute" || pos == "relative")) { - if (! YAHOO.util.Dom.inDocument(this.iframe)) { - this.iframe = document.createElement("iframe"); - this.iframe.src = "javascript:false;"; - YAHOO.util.Dom.setStyle(this.iframe, "opacity", "0"); - this.oDomContainer.insertBefore(this.iframe, this.oDomContainer.firstChild); - } - } - } else { - if (this.iframe) { - if (this.iframe.parentNode) { - this.iframe.parentNode.removeChild(this.iframe); - } - this.iframe = null; - } - } - } - } -}; - -/** -* Default handler for the "title" property -* @method configTitle -*/ -YAHOO.widget.Calendar.prototype.configTitle = function(type, args, obj) { - var title = args[0]; - var close = this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.CLOSE.key); - - var titleDiv; - - if (title && title !== "") { - titleDiv = YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.CalendarGroup.CSS_2UPTITLE, "div", this.oDomContainer)[0] || document.createElement("div"); - titleDiv.className = YAHOO.widget.CalendarGroup.CSS_2UPTITLE; - titleDiv.innerHTML = title; - this.oDomContainer.insertBefore(titleDiv, this.oDomContainer.firstChild); - YAHOO.util.Dom.addClass(this.oDomContainer, "withtitle"); - } else { - titleDiv = YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.CalendarGroup.CSS_2UPTITLE, "div", this.oDomContainer)[0] || null; - - if (titleDiv) { - YAHOO.util.Event.purgeElement(titleDiv); - this.oDomContainer.removeChild(titleDiv); - } - if (! close) { - YAHOO.util.Dom.removeClass(this.oDomContainer, "withtitle"); - } - } -}; - -/** -* Default handler for the "close" property -* @method configClose -*/ -YAHOO.widget.Calendar.prototype.configClose = function(type, args, obj) { - var close = args[0]; - var title = this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.TITLE.key); - - var DEPR_CLOSE_PATH = "us/my/bn/x_d.gif"; - - var linkClose; - - if (close === true) { - linkClose = YAHOO.util.Dom.getElementsByClassName("link-close", "a", this.oDomContainer)[0] || document.createElement("a"); - linkClose.href = "#"; - linkClose.className = "link-close"; - YAHOO.util.Event.addListener(linkClose, "click", function(e, cal) {cal.hide(); YAHOO.util.Event.preventDefault(e); }, this); - - if (YAHOO.widget.Calendar.IMG_ROOT !== null) { - var imgClose = document.createElement("img"); - imgClose.src = YAHOO.widget.Calendar.IMG_ROOT + DEPR_CLOSE_PATH; - imgClose.className = YAHOO.widget.CalendarGroup.CSS_2UPCLOSE; - linkClose.appendChild(imgClose); - } else { - linkClose.innerHTML = ''; - } - - this.oDomContainer.appendChild(linkClose); - YAHOO.util.Dom.addClass(this.oDomContainer, "withtitle"); - } else { - linkClose = YAHOO.util.Dom.getElementsByClassName("link-close", "a", this.oDomContainer)[0] || null; - if (linkClose) { - YAHOO.util.Event.purgeElement(linkClose); - this.oDomContainer.removeChild(linkClose); - } - if (! title || title === "") { - YAHOO.util.Dom.removeClass(this.oDomContainer, "withtitle"); - } - } -}; - -/** -* Initializes Calendar's built-in CustomEvents -* @method initEvents -*/ -YAHOO.widget.Calendar.prototype.initEvents = function() { - - var defEvents = YAHOO.widget.Calendar._EVENT_TYPES; - - /** - * Fired before a selection is made - * @event beforeSelectEvent - */ - this.beforeSelectEvent = new YAHOO.util.CustomEvent(defEvents.BEFORE_SELECT); - - /** - * Fired when a selection is made - * @event selectEvent - * @param {Array} Array of Date field arrays in the format [YYYY, MM, DD]. - */ - this.selectEvent = new YAHOO.util.CustomEvent(defEvents.SELECT); - - /** - * Fired before a selection is made - * @event beforeDeselectEvent - */ - this.beforeDeselectEvent = new YAHOO.util.CustomEvent(defEvents.BEFORE_DESELECT); - - /** - * Fired when a selection is made - * @event deselectEvent - * @param {Array} Array of Date field arrays in the format [YYYY, MM, DD]. - */ - this.deselectEvent = new YAHOO.util.CustomEvent(defEvents.DESELECT); - - /** - * Fired when the Calendar page is changed - * @event changePageEvent - */ - this.changePageEvent = new YAHOO.util.CustomEvent(defEvents.CHANGE_PAGE); - - /** - * Fired before the Calendar is rendered - * @event beforeRenderEvent - */ - this.beforeRenderEvent = new YAHOO.util.CustomEvent(defEvents.BEFORE_RENDER); - - /** - * Fired when the Calendar is rendered - * @event renderEvent - */ - this.renderEvent = new YAHOO.util.CustomEvent(defEvents.RENDER); - - /** - * Fired when the Calendar is reset - * @event resetEvent - */ - this.resetEvent = new YAHOO.util.CustomEvent(defEvents.RESET); - - /** - * Fired when the Calendar is cleared - * @event clearEvent - */ - this.clearEvent = new YAHOO.util.CustomEvent(defEvents.CLEAR); - - this.beforeSelectEvent.subscribe(this.onBeforeSelect, this, true); - this.selectEvent.subscribe(this.onSelect, this, true); - this.beforeDeselectEvent.subscribe(this.onBeforeDeselect, this, true); - this.deselectEvent.subscribe(this.onDeselect, this, true); - this.changePageEvent.subscribe(this.onChangePage, this, true); - this.renderEvent.subscribe(this.onRender, this, true); - this.resetEvent.subscribe(this.onReset, this, true); - this.clearEvent.subscribe(this.onClear, this, true); -}; - -/** -* The default event function that is attached to a date link within a calendar cell -* when the calendar is rendered. -* @method doSelectCell -* @param {DOMEvent} e The event -* @param {Calendar} cal A reference to the calendar passed by the Event utility -*/ -YAHOO.widget.Calendar.prototype.doSelectCell = function(e, cal) { - var cell,index,d,date; - - var target = YAHOO.util.Event.getTarget(e); - var tagName = target.tagName.toLowerCase(); - var defSelector = false; - - while (tagName != "td" && ! YAHOO.util.Dom.hasClass(target, cal.Style.CSS_CELL_SELECTABLE)) { - - if (!defSelector && tagName == "a" && YAHOO.util.Dom.hasClass(target, cal.Style.CSS_CELL_SELECTOR)) { - defSelector = true; - } - - target = target.parentNode; - tagName = target.tagName.toLowerCase(); - if (tagName == "html") { - return; - } - } - - if (defSelector) { - // Stop link href navigation for default renderer - YAHOO.util.Event.preventDefault(e); - } - - cell = target; - - if (YAHOO.util.Dom.hasClass(cell, cal.Style.CSS_CELL_SELECTABLE)) { - index = cell.id.split("cell")[1]; - d = cal.cellDates[index]; - date = new Date(d[0],d[1]-1,d[2]); - - var link; - - cal.logger.log("Selecting cell " + index + " via click", "info"); - if (cal.Options.MULTI_SELECT) { - link = cell.getElementsByTagName("a")[0]; - if (link) { - link.blur(); - } - - var cellDate = cal.cellDates[index]; - var cellDateIndex = cal._indexOfSelectedFieldArray(cellDate); - - if (cellDateIndex > -1) { - cal.deselectCell(index); - } else { - cal.selectCell(index); - } - - } else { - link = cell.getElementsByTagName("a")[0]; - if (link) { - link.blur(); - } - cal.selectCell(index); - } - } -}; - -/** -* The event that is executed when the user hovers over a cell -* @method doCellMouseOver -* @param {DOMEvent} e The event -* @param {Calendar} cal A reference to the calendar passed by the Event utility -*/ -YAHOO.widget.Calendar.prototype.doCellMouseOver = function(e, cal) { - var target; - if (e) { - target = YAHOO.util.Event.getTarget(e); - } else { - target = this; - } - - while (target.tagName.toLowerCase() != "td") { - target = target.parentNode; - if (target.tagName.toLowerCase() == "html") { - return; - } - } - - if (YAHOO.util.Dom.hasClass(target, cal.Style.CSS_CELL_SELECTABLE)) { - YAHOO.util.Dom.addClass(target, cal.Style.CSS_CELL_HOVER); - } -}; - -/** -* The event that is executed when the user moves the mouse out of a cell -* @method doCellMouseOut -* @param {DOMEvent} e The event -* @param {Calendar} cal A reference to the calendar passed by the Event utility -*/ -YAHOO.widget.Calendar.prototype.doCellMouseOut = function(e, cal) { - var target; - if (e) { - target = YAHOO.util.Event.getTarget(e); - } else { - target = this; - } - - while (target.tagName.toLowerCase() != "td") { - target = target.parentNode; - if (target.tagName.toLowerCase() == "html") { - return; - } - } - - if (YAHOO.util.Dom.hasClass(target, cal.Style.CSS_CELL_SELECTABLE)) { - YAHOO.util.Dom.removeClass(target, cal.Style.CSS_CELL_HOVER); - } -}; - -YAHOO.widget.Calendar.prototype.setupConfig = function() { - - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - - /** - * The month/year representing the current visible Calendar date (mm/yyyy) - * @config pagedate - * @type String - * @default today's date - */ - this.cfg.addProperty(defCfg.PAGEDATE.key, { value:new Date(), handler:this.configPageDate } ); - - /** - * The date or range of dates representing the current Calendar selection - * @config selected - * @type String - * @default [] - */ - this.cfg.addProperty(defCfg.SELECTED.key, { value:[], handler:this.configSelected } ); - - /** - * The title to display above the Calendar's month header - * @config title - * @type String - * @default "" - */ - this.cfg.addProperty(defCfg.TITLE.key, { value:defCfg.TITLE.value, handler:this.configTitle } ); - - /** - * Whether or not a close button should be displayed for this Calendar - * @config close - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.CLOSE.key, { value:defCfg.CLOSE.value, handler:this.configClose } ); - - /** - * Whether or not an iframe shim should be placed under the Calendar to prevent select boxes from bleeding through in Internet Explorer 6 and below. - * @config iframe - * @type Boolean - * @default true - */ - this.cfg.addProperty(defCfg.IFRAME.key, { value:defCfg.IFRAME.value, handler:this.configIframe, validator:this.cfg.checkBoolean } ); - - /** - * The minimum selectable date in the current Calendar (mm/dd/yyyy) - * @config mindate - * @type String - * @default null - */ - this.cfg.addProperty(defCfg.MINDATE.key, { value:defCfg.MINDATE.value, handler:this.configMinDate } ); - - /** - * The maximum selectable date in the current Calendar (mm/dd/yyyy) - * @config maxdate - * @type String - * @default null - */ - this.cfg.addProperty(defCfg.MAXDATE.key, { value:defCfg.MAXDATE.value, handler:this.configMaxDate } ); - - - // Options properties - - /** - * True if the Calendar should allow multiple selections. False by default. - * @config MULTI_SELECT - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.MULTI_SELECT.key, { value:defCfg.MULTI_SELECT.value, handler:this.configOptions, validator:this.cfg.checkBoolean } ); - - /** - * The weekday the week begins on. Default is 0 (Sunday). - * @config START_WEEKDAY - * @type number - * @default 0 - */ - this.cfg.addProperty(defCfg.START_WEEKDAY.key, { value:defCfg.START_WEEKDAY.value, handler:this.configOptions, validator:this.cfg.checkNumber } ); - - /** - * True if the Calendar should show weekday labels. True by default. - * @config SHOW_WEEKDAYS - * @type Boolean - * @default true - */ - this.cfg.addProperty(defCfg.SHOW_WEEKDAYS.key, { value:defCfg.SHOW_WEEKDAYS.value, handler:this.configOptions, validator:this.cfg.checkBoolean } ); - - /** - * True if the Calendar should show week row headers. False by default. - * @config SHOW_WEEK_HEADER - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.SHOW_WEEK_HEADER.key, { value:defCfg.SHOW_WEEK_HEADER.value, handler:this.configOptions, validator:this.cfg.checkBoolean } ); - - /** - * True if the Calendar should show week row footers. False by default. - * @config SHOW_WEEK_FOOTER - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.SHOW_WEEK_FOOTER.key,{ value:defCfg.SHOW_WEEK_FOOTER.value, handler:this.configOptions, validator:this.cfg.checkBoolean } ); - - /** - * True if the Calendar should suppress weeks that are not a part of the current month. False by default. - * @config HIDE_BLANK_WEEKS - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.HIDE_BLANK_WEEKS.key, { value:defCfg.HIDE_BLANK_WEEKS.value, handler:this.configOptions, validator:this.cfg.checkBoolean } ); - - /** - * The image that should be used for the left navigation arrow. - * @config NAV_ARROW_LEFT - * @type String - * @deprecated You can customize the image by overriding the default CSS class for the left arrow - "calnavleft" - * @default null - */ - this.cfg.addProperty(defCfg.NAV_ARROW_LEFT.key, { value:defCfg.NAV_ARROW_LEFT.value, handler:this.configOptions } ); - - /** - * The image that should be used for the right navigation arrow. - * @config NAV_ARROW_RIGHT - * @type String - * @deprecated You can customize the image by overriding the default CSS class for the right arrow - "calnavright" - * @default null - */ - this.cfg.addProperty(defCfg.NAV_ARROW_RIGHT.key, { value:defCfg.NAV_ARROW_RIGHT.value, handler:this.configOptions } ); - - // Locale properties - - /** - * The short month labels for the current locale. - * @config MONTHS_SHORT - * @type String[] - * @default ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] - */ - this.cfg.addProperty(defCfg.MONTHS_SHORT.key, { value:defCfg.MONTHS_SHORT.value, handler:this.configLocale } ); - - /** - * The long month labels for the current locale. - * @config MONTHS_LONG - * @type String[] - * @default ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" - */ - this.cfg.addProperty(defCfg.MONTHS_LONG.key, { value:defCfg.MONTHS_LONG.value, handler:this.configLocale } ); - - /** - * The 1-character weekday labels for the current locale. - * @config WEEKDAYS_1CHAR - * @type String[] - * @default ["S", "M", "T", "W", "T", "F", "S"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_1CHAR.key, { value:defCfg.WEEKDAYS_1CHAR.value, handler:this.configLocale } ); - - /** - * The short weekday labels for the current locale. - * @config WEEKDAYS_SHORT - * @type String[] - * @default ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_SHORT.key, { value:defCfg.WEEKDAYS_SHORT.value, handler:this.configLocale } ); - - /** - * The medium weekday labels for the current locale. - * @config WEEKDAYS_MEDIUM - * @type String[] - * @default ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_MEDIUM.key, { value:defCfg.WEEKDAYS_MEDIUM.value, handler:this.configLocale } ); - - /** - * The long weekday labels for the current locale. - * @config WEEKDAYS_LONG - * @type String[] - * @default ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_LONG.key, { value:defCfg.WEEKDAYS_LONG.value, handler:this.configLocale } ); - - /** - * Refreshes the locale values used to build the Calendar. - * @method refreshLocale - * @private - */ - var refreshLocale = function() { - this.cfg.refireEvent(defCfg.LOCALE_MONTHS.key); - this.cfg.refireEvent(defCfg.LOCALE_WEEKDAYS.key); - }; - - this.cfg.subscribeToConfigEvent(defCfg.START_WEEKDAY.key, refreshLocale, this, true); - this.cfg.subscribeToConfigEvent(defCfg.MONTHS_SHORT.key, refreshLocale, this, true); - this.cfg.subscribeToConfigEvent(defCfg.MONTHS_LONG.key, refreshLocale, this, true); - this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_1CHAR.key, refreshLocale, this, true); - this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_SHORT.key, refreshLocale, this, true); - this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_MEDIUM.key, refreshLocale, this, true); - this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_LONG.key, refreshLocale, this, true); - - /** - * The setting that determines which length of month labels should be used. Possible values are "short" and "long". - * @config LOCALE_MONTHS - * @type String - * @default "long" - */ - this.cfg.addProperty(defCfg.LOCALE_MONTHS.key, { value:defCfg.LOCALE_MONTHS.value, handler:this.configLocaleValues } ); - - /** - * The setting that determines which length of weekday labels should be used. Possible values are "1char", "short", "medium", and "long". - * @config LOCALE_WEEKDAYS - * @type String - * @default "short" - */ - this.cfg.addProperty(defCfg.LOCALE_WEEKDAYS.key, { value:defCfg.LOCALE_WEEKDAYS.value, handler:this.configLocaleValues } ); - - /** - * The value used to delimit individual dates in a date string passed to various Calendar functions. - * @config DATE_DELIMITER - * @type String - * @default "," - */ - this.cfg.addProperty(defCfg.DATE_DELIMITER.key, { value:defCfg.DATE_DELIMITER.value, handler:this.configLocale } ); - - /** - * The value used to delimit date fields in a date string passed to various Calendar functions. - * @config DATE_FIELD_DELIMITER - * @type String - * @default "/" - */ - this.cfg.addProperty(defCfg.DATE_FIELD_DELIMITER.key, { value:defCfg.DATE_FIELD_DELIMITER.value, handler:this.configLocale } ); - - /** - * The value used to delimit date ranges in a date string passed to various Calendar functions. - * @config DATE_RANGE_DELIMITER - * @type String - * @default "-" - */ - this.cfg.addProperty(defCfg.DATE_RANGE_DELIMITER.key, { value:defCfg.DATE_RANGE_DELIMITER.value, handler:this.configLocale } ); - - /** - * The position of the month in a month/year date string - * @config MY_MONTH_POSITION - * @type Number - * @default 1 - */ - this.cfg.addProperty(defCfg.MY_MONTH_POSITION.key, { value:defCfg.MY_MONTH_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } ); - - /** - * The position of the year in a month/year date string - * @config MY_YEAR_POSITION - * @type Number - * @default 2 - */ - this.cfg.addProperty(defCfg.MY_YEAR_POSITION.key, { value:defCfg.MY_YEAR_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } ); - - /** - * The position of the month in a month/day date string - * @config MD_MONTH_POSITION - * @type Number - * @default 1 - */ - this.cfg.addProperty(defCfg.MD_MONTH_POSITION.key, { value:defCfg.MD_MONTH_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } ); - - /** - * The position of the day in a month/year date string - * @config MD_DAY_POSITION - * @type Number - * @default 2 - */ - this.cfg.addProperty(defCfg.MD_DAY_POSITION.key, { value:defCfg.MD_DAY_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } ); - - /** - * The position of the month in a month/day/year date string - * @config MDY_MONTH_POSITION - * @type Number - * @default 1 - */ - this.cfg.addProperty(defCfg.MDY_MONTH_POSITION.key, { value:defCfg.MDY_MONTH_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } ); - - /** - * The position of the day in a month/day/year date string - * @config MDY_DAY_POSITION - * @type Number - * @default 2 - */ - this.cfg.addProperty(defCfg.MDY_DAY_POSITION.key, { value:defCfg.MDY_DAY_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } ); - - /** - * The position of the year in a month/day/year date string - * @config MDY_YEAR_POSITION - * @type Number - * @default 3 - */ - this.cfg.addProperty(defCfg.MDY_YEAR_POSITION.key, { value:defCfg.MDY_YEAR_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } ); -}; - -/** -* The default handler for the "pagedate" property -* @method configPageDate -*/ -YAHOO.widget.Calendar.prototype.configPageDate = function(type, args, obj) { - this.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key, this._parsePageDate(args[0]), true); -}; - -/** -* The default handler for the "mindate" property -* @method configMinDate -*/ -YAHOO.widget.Calendar.prototype.configMinDate = function(type, args, obj) { - var val = args[0]; - if (YAHOO.lang.isString(val)) { - val = this._parseDate(val); - this.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MINDATE.key, new Date(val[0],(val[1]-1),val[2])); - } -}; - -/** -* The default handler for the "maxdate" property -* @method configMaxDate -*/ -YAHOO.widget.Calendar.prototype.configMaxDate = function(type, args, obj) { - var val = args[0]; - if (YAHOO.lang.isString(val)) { - val = this._parseDate(val); - this.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MAXDATE.key, new Date(val[0],(val[1]-1),val[2])); - } -}; - -/** -* The default handler for the "selected" property -* @method configSelected -*/ -YAHOO.widget.Calendar.prototype.configSelected = function(type, args, obj) { - var selected = args[0]; - var cfgSelected = YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key; - - if (selected) { - if (YAHOO.lang.isString(selected)) { - this.cfg.setProperty(cfgSelected, this._parseDates(selected), true); - } - } - if (! this._selectedDates) { - this._selectedDates = this.cfg.getProperty(cfgSelected); - } -}; - -/** -* The default handler for all configuration options properties -* @method configOptions -*/ -YAHOO.widget.Calendar.prototype.configOptions = function(type, args, obj) { - this.Options[type.toUpperCase()] = args[0]; -}; - -/** -* The default handler for all configuration locale properties -* @method configLocale -*/ -YAHOO.widget.Calendar.prototype.configLocale = function(type, args, obj) { - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - this.Locale[type.toUpperCase()] = args[0]; - - this.cfg.refireEvent(defCfg.LOCALE_MONTHS.key); - this.cfg.refireEvent(defCfg.LOCALE_WEEKDAYS.key); -}; - -/** -* The default handler for all configuration locale field length properties -* @method configLocaleValues -*/ -YAHOO.widget.Calendar.prototype.configLocaleValues = function(type, args, obj) { - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - - type = type.toLowerCase(); - var val = args[0]; - - switch (type) { - case defCfg.LOCALE_MONTHS.key: - switch (val) { - case YAHOO.widget.Calendar.SHORT: - this.Locale.LOCALE_MONTHS = this.cfg.getProperty(defCfg.MONTHS_SHORT.key).concat(); - break; - case YAHOO.widget.Calendar.LONG: - this.Locale.LOCALE_MONTHS = this.cfg.getProperty(defCfg.MONTHS_LONG.key).concat(); - break; - } - break; - case defCfg.LOCALE_WEEKDAYS.key: - switch (val) { - case YAHOO.widget.Calendar.ONE_CHAR: - this.Locale.LOCALE_WEEKDAYS = this.cfg.getProperty(defCfg.WEEKDAYS_1CHAR.key).concat(); - break; - case YAHOO.widget.Calendar.SHORT: - this.Locale.LOCALE_WEEKDAYS = this.cfg.getProperty(defCfg.WEEKDAYS_SHORT.key).concat(); - break; - case YAHOO.widget.Calendar.MEDIUM: - this.Locale.LOCALE_WEEKDAYS = this.cfg.getProperty(defCfg.WEEKDAYS_MEDIUM.key).concat(); - break; - case YAHOO.widget.Calendar.LONG: - this.Locale.LOCALE_WEEKDAYS = this.cfg.getProperty(defCfg.WEEKDAYS_LONG.key).concat(); - break; - } - - var START_WEEKDAY = this.cfg.getProperty(defCfg.START_WEEKDAY.key); - - if (START_WEEKDAY > 0) { - for (var w=0;w'; - html[html.length] = '
        '; - - var renderLeft, renderRight = false; - - if (this.parent) { - if (this.index === 0) { - renderLeft = true; - } - if (this.index == (this.parent.cfg.getProperty("pages") -1)) { - renderRight = true; - } - } else { - renderLeft = true; - renderRight = true; - } - - var cal = this.parent || this; - - if (renderLeft) { - var leftArrow = this.cfg.getProperty(defCfg.NAV_ARROW_LEFT.key); - // Check for deprecated customization - If someone set IMG_ROOT, but didn't set NAV_ARROW_LEFT, then set NAV_ARROW_LEFT to the old deprecated value - if (leftArrow === null && YAHOO.widget.Calendar.IMG_ROOT !== null) { - leftArrow = YAHOO.widget.Calendar.IMG_ROOT + DEPR_NAV_LEFT; - } - var leftStyle = (leftArrow === null) ? "" : ' style="background-image:url(' + leftArrow + ')"'; - html[html.length] = ' '; - } - - html[html.length] = this.buildMonthLabel(); - - if (renderRight) { - var rightArrow = this.cfg.getProperty(defCfg.NAV_ARROW_RIGHT.key); - if (rightArrow === null && YAHOO.widget.Calendar.IMG_ROOT !== null) { - rightArrow = YAHOO.widget.Calendar.IMG_ROOT + DEPR_NAV_RIGHT; - } - var rightStyle = (rightArrow === null) ? "" : ' style="background-image:url(' + rightArrow + ')"'; - html[html.length] = ' '; - } - - html[html.length] = '
        \n\n'; - - if (this.cfg.getProperty(defCfg.SHOW_WEEKDAYS.key)) { - html = this.buildWeekdays(html); - } - - html[html.length] = ''; - - return html; -}; - -/** -* Renders the Calendar's weekday headers. -* @method buildWeekdays -* @param {Array} html The current working HTML array -* @return {Array} The current working HTML array -*/ -YAHOO.widget.Calendar.prototype.buildWeekdays = function(html) { - - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - - html[html.length] = ''; - - if (this.cfg.getProperty(defCfg.SHOW_WEEK_HEADER.key)) { - html[html.length] = ' '; - } - - for(var i=0;i'; - } - - if (this.cfg.getProperty(defCfg.SHOW_WEEK_FOOTER.key)) { - html[html.length] = ' '; - } - - html[html.length] = ''; - - return html; -}; - -/** -* Renders the calendar body. -* @method renderBody -* @param {Date} workingDate The current working Date being used for the render process -* @param {Array} html The current working HTML array -* @return {Array} The current working HTML array -*/ -YAHOO.widget.Calendar.prototype.renderBody = function(workingDate, html) { - this.logger.log("Rendering body", "info"); - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - - var startDay = this.cfg.getProperty(defCfg.START_WEEKDAY.key); - - this.preMonthDays = workingDate.getDay(); - if (startDay > 0) { - this.preMonthDays -= startDay; - } - if (this.preMonthDays < 0) { - this.preMonthDays += 7; - } - - this.monthDays = YAHOO.widget.DateMath.findMonthEnd(workingDate).getDate(); - this.postMonthDays = YAHOO.widget.Calendar.DISPLAY_DAYS-this.preMonthDays-this.monthDays; - this.logger.log(this.preMonthDays + " preciding out-of-month days", "info"); - this.logger.log(this.monthDays + " month days", "info"); - this.logger.log(this.postMonthDays + " post-month days", "info"); - - workingDate = YAHOO.widget.DateMath.subtract(workingDate, YAHOO.widget.DateMath.DAY, this.preMonthDays); - this.logger.log("Calendar page starts on " + workingDate, "info"); - - var weekNum,weekClass; - var weekPrefix = "w"; - var cellPrefix = "_cell"; - var workingDayPrefix = "wd"; - var dayPrefix = "d"; - - var cellRenderers; - var renderer; - - var todayYear = this.today.getFullYear(); - var todayMonth = this.today.getMonth(); - var todayDate = this.today.getDate(); - - var useDate = this.cfg.getProperty(defCfg.PAGEDATE.key); - var hideBlankWeeks = this.cfg.getProperty(defCfg.HIDE_BLANK_WEEKS.key); - var showWeekFooter = this.cfg.getProperty(defCfg.SHOW_WEEK_FOOTER.key); - var showWeekHeader = this.cfg.getProperty(defCfg.SHOW_WEEK_HEADER.key); - var mindate = this.cfg.getProperty(defCfg.MINDATE.key); - var maxdate = this.cfg.getProperty(defCfg.MAXDATE.key); - - if (mindate) { - mindate = YAHOO.widget.DateMath.clearTime(mindate); - } - if (maxdate) { - maxdate = YAHOO.widget.DateMath.clearTime(maxdate); - } - - html[html.length] = ''; - - var i = 0; - - var tempDiv = document.createElement("div"); - var cell = document.createElement("td"); - tempDiv.appendChild(cell); - - var jan1 = new Date(useDate.getFullYear(),0,1); - - var cal = this.parent || this; - - for (var r=0;r<6;r++) { - - weekNum = YAHOO.widget.DateMath.getWeekNumber(workingDate, useDate.getFullYear(), startDay); - weekClass = weekPrefix + weekNum; - - // Local OOM check for performance, since we already have pagedate - if (r !== 0 && hideBlankWeeks === true && workingDate.getMonth() != useDate.getMonth()) { - break; - } else { - - html[html.length] = ''; - - if (showWeekHeader) { html = this.renderRowHeader(weekNum, html); } - - for (var d=0;d<7;d++){ // Render actual days - - cellRenderers = []; - renderer = null; - - this.clearElement(cell); - cell.className = this.Style.CSS_CELL; - cell.id = this.id + cellPrefix + i; - this.logger.log("Rendering cell " + cell.id + " (" + workingDate.getFullYear() + "-" + (workingDate.getMonth()+1) + "-" + workingDate.getDate() + ")", "cellrender"); - - if (workingDate.getDate() == todayDate && - workingDate.getMonth() == todayMonth && - workingDate.getFullYear() == todayYear) { - cellRenderers[cellRenderers.length]=cal.renderCellStyleToday; - } - - var workingArray = [workingDate.getFullYear(),workingDate.getMonth()+1,workingDate.getDate()]; - this.cellDates[this.cellDates.length] = workingArray; // Add this date to cellDates - - // Local OOM check for performance, since we already have pagedate - if (workingDate.getMonth() != useDate.getMonth()) { - cellRenderers[cellRenderers.length]=cal.renderCellNotThisMonth; - } else { - YAHOO.util.Dom.addClass(cell, workingDayPrefix + workingDate.getDay()); - YAHOO.util.Dom.addClass(cell, dayPrefix + workingDate.getDate()); - - for (var s=0;s= d1.getTime() && workingDate.getTime() <= d2.getTime()) { - renderer = rArray[2]; - - if (workingDate.getTime()==d2.getTime()) { - this.renderStack.splice(s,1); - } - } - break; - case YAHOO.widget.Calendar.WEEKDAY: - - var weekday = rArray[1][0]; - if (workingDate.getDay()+1 == weekday) { - renderer = rArray[2]; - } - break; - case YAHOO.widget.Calendar.MONTH: - - month = rArray[1][0]; - if (workingDate.getMonth()+1 == month) { - renderer = rArray[2]; - } - break; - } - - if (renderer) { - cellRenderers[cellRenderers.length]=renderer; - } - } - - } - - if (this._indexOfSelectedFieldArray(workingArray) > -1) { - cellRenderers[cellRenderers.length]=cal.renderCellStyleSelected; - } - - if ((mindate && (workingDate.getTime() < mindate.getTime())) || - (maxdate && (workingDate.getTime() > maxdate.getTime())) - ) { - cellRenderers[cellRenderers.length]=cal.renderOutOfBoundsDate; - } else { - cellRenderers[cellRenderers.length]=cal.styleCellDefault; - cellRenderers[cellRenderers.length]=cal.renderCellDefault; - } - - for (var x=0; x < cellRenderers.length; ++x) { - this.logger.log("renderer[" + x + "] for (" + workingDate.getFullYear() + "-" + (workingDate.getMonth()+1) + "-" + workingDate.getDate() + ")", "cellrender"); - if (cellRenderers[x].call(cal, workingDate, cell) == YAHOO.widget.Calendar.STOP_RENDER) { - break; - } - } - - workingDate.setTime(workingDate.getTime() + YAHOO.widget.DateMath.ONE_DAY_MS); - - if (i >= 0 && i <= 6) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_TOP); - } - if ((i % 7) === 0) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_LEFT); - } - if (((i+1) % 7) === 0) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_RIGHT); - } - - var postDays = this.postMonthDays; - if (hideBlankWeeks && postDays >= 7) { - var blankWeeks = Math.floor(postDays/7); - for (var p=0;p= ((this.preMonthDays+postDays+this.monthDays)-7)) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_BOTTOM); - } - - html[html.length] = tempDiv.innerHTML; - i++; - } - - if (showWeekFooter) { html = this.renderRowFooter(weekNum, html); } - - html[html.length] = ''; - } - } - - html[html.length] = ''; - - return html; -}; - -/** -* Renders the calendar footer. In the default implementation, there is -* no footer. -* @method renderFooter -* @param {Array} html The current working HTML array -* @return {Array} The current working HTML array -*/ -YAHOO.widget.Calendar.prototype.renderFooter = function(html) { return html; }; - -/** -* Renders the calendar after it has been configured. The render() method has a specific call chain that will execute -* when the method is called: renderHeader, renderBody, renderFooter. -* Refer to the documentation for those methods for information on -* individual render tasks. -* @method render -*/ -YAHOO.widget.Calendar.prototype.render = function() { - this.beforeRenderEvent.fire(); - - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - - // Find starting day of the current month - var workingDate = YAHOO.widget.DateMath.findMonthStart(this.cfg.getProperty(defCfg.PAGEDATE.key)); - - this.resetRenderers(); - this.cellDates.length = 0; - - YAHOO.util.Event.purgeElement(this.oDomContainer, true); - - var html = []; - - html[html.length] = ''; - html = this.renderHeader(html); - html = this.renderBody(workingDate, html); - html = this.renderFooter(html); - html[html.length] = '
        '; - - this.oDomContainer.innerHTML = html.join("\n"); - - this.applyListeners(); - this.cells = this.oDomContainer.getElementsByTagName("td"); - - this.cfg.refireEvent(defCfg.TITLE.key); - this.cfg.refireEvent(defCfg.CLOSE.key); - this.cfg.refireEvent(defCfg.IFRAME.key); - - this.renderEvent.fire(); -}; - -/** -* Applies the Calendar's DOM listeners to applicable elements. -* @method applyListeners -*/ -YAHOO.widget.Calendar.prototype.applyListeners = function() { - - var root = this.oDomContainer; - var cal = this.parent || this; - - var anchor = "a"; - var mousedown = "mousedown"; - - var linkLeft = YAHOO.util.Dom.getElementsByClassName(this.Style.CSS_NAV_LEFT, anchor, root); - var linkRight = YAHOO.util.Dom.getElementsByClassName(this.Style.CSS_NAV_RIGHT, anchor, root); - - if (linkLeft && linkLeft.length > 0) { - this.linkLeft = linkLeft[0]; - YAHOO.util.Event.addListener(this.linkLeft, mousedown, cal.previousMonth, cal, true); - } - - if (linkRight && linkRight.length > 0) { - this.linkRight = linkRight[0]; - YAHOO.util.Event.addListener(this.linkRight, mousedown, cal.nextMonth, cal, true); - } - - if (this.domEventMap) { - var el,elements; - for (var cls in this.domEventMap) { - if (YAHOO.lang.hasOwnProperty(this.domEventMap, cls)) { - var items = this.domEventMap[cls]; - - if (! (items instanceof Array)) { - items = [items]; - } - - for (var i=0;i'; - return html; -}; - -/** -* Renders the row footer for a week. -* @method renderRowFooter -* @param {Number} weekNum The week number of the current row -* @param {Array} cell The current working HTML array -*/ -YAHOO.widget.Calendar.prototype.renderRowFooter = function(weekNum, html) { - html[html.length] = '' + weekNum + ''; - return html; -}; - -/** -* Renders a single standard calendar cell in the calendar widget table. -* All logic for determining how a standard default cell will be rendered is -* encapsulated in this method, and must be accounted for when extending the -* widget class. -* @method renderCellDefault -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -*/ -YAHOO.widget.Calendar.prototype.renderCellDefault = function(workingDate, cell) { - cell.innerHTML = '' + this.buildDayLabel(workingDate) + ""; -}; - -/** -* Styles a selectable cell. -* @method styleCellDefault -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -*/ -YAHOO.widget.Calendar.prototype.styleCellDefault = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_SELECTABLE); -}; - - -/** -* Renders a single standard calendar cell using the CSS hightlight1 style -* @method renderCellStyleHighlight1 -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -*/ -YAHOO.widget.Calendar.prototype.renderCellStyleHighlight1 = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT1); -}; - -/** -* Renders a single standard calendar cell using the CSS hightlight2 style -* @method renderCellStyleHighlight2 -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -*/ -YAHOO.widget.Calendar.prototype.renderCellStyleHighlight2 = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT2); -}; - -/** -* Renders a single standard calendar cell using the CSS hightlight3 style -* @method renderCellStyleHighlight3 -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -*/ -YAHOO.widget.Calendar.prototype.renderCellStyleHighlight3 = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT3); -}; - -/** -* Renders a single standard calendar cell using the CSS hightlight4 style -* @method renderCellStyleHighlight4 -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -*/ -YAHOO.widget.Calendar.prototype.renderCellStyleHighlight4 = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT4); -}; - -/** -* Applies the default style used for rendering today's date to the current calendar cell -* @method renderCellStyleToday -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -*/ -YAHOO.widget.Calendar.prototype.renderCellStyleToday = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_TODAY); -}; - -/** -* Applies the default style used for rendering selected dates to the current calendar cell -* @method renderCellStyleSelected -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -* @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering -* should not be terminated -*/ -YAHOO.widget.Calendar.prototype.renderCellStyleSelected = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_SELECTED); -}; - -/** -* Applies the default style used for rendering dates that are not a part of the current -* month (preceding or trailing the cells for the current month) -* @method renderCellNotThisMonth -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -* @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering -* should not be terminated -*/ -YAHOO.widget.Calendar.prototype.renderCellNotThisMonth = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_OOM); - cell.innerHTML=workingDate.getDate(); - return YAHOO.widget.Calendar.STOP_RENDER; -}; - -/** -* Renders the current calendar cell as a non-selectable "black-out" date using the default -* restricted style. -* @method renderBodyCellRestricted -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -* @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering -* should not be terminated -*/ -YAHOO.widget.Calendar.prototype.renderBodyCellRestricted = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL); - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_RESTRICTED); - cell.innerHTML=workingDate.getDate(); - return YAHOO.widget.Calendar.STOP_RENDER; -}; - -// END BUILT-IN TABLE CELL RENDERERS - -// BEGIN MONTH NAVIGATION METHODS - -/** -* Adds the designated number of months to the current calendar month, and sets the current -* calendar page date to the new month. -* @method addMonths -* @param {Number} count The number of months to add to the current calendar -*/ -YAHOO.widget.Calendar.prototype.addMonths = function(count) { - var cfgPageDate = YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key; - this.cfg.setProperty(cfgPageDate, YAHOO.widget.DateMath.add(this.cfg.getProperty(cfgPageDate), YAHOO.widget.DateMath.MONTH, count)); - this.resetRenderers(); - this.changePageEvent.fire(); -}; - -/** -* Subtracts the designated number of months from the current calendar month, and sets the current -* calendar page date to the new month. -* @method subtractMonths -* @param {Number} count The number of months to subtract from the current calendar -*/ -YAHOO.widget.Calendar.prototype.subtractMonths = function(count) { - var cfgPageDate = YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key; - this.cfg.setProperty(cfgPageDate, YAHOO.widget.DateMath.subtract(this.cfg.getProperty(cfgPageDate), YAHOO.widget.DateMath.MONTH, count)); - this.resetRenderers(); - this.changePageEvent.fire(); -}; - -/** -* Adds the designated number of years to the current calendar, and sets the current -* calendar page date to the new month. -* @method addYears -* @param {Number} count The number of years to add to the current calendar -*/ -YAHOO.widget.Calendar.prototype.addYears = function(count) { - var cfgPageDate = YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key; - this.cfg.setProperty(cfgPageDate, YAHOO.widget.DateMath.add(this.cfg.getProperty(cfgPageDate), YAHOO.widget.DateMath.YEAR, count)); - this.resetRenderers(); - this.changePageEvent.fire(); -}; - -/** -* Subtcats the designated number of years from the current calendar, and sets the current -* calendar page date to the new month. -* @method subtractYears -* @param {Number} count The number of years to subtract from the current calendar -*/ -YAHOO.widget.Calendar.prototype.subtractYears = function(count) { - var cfgPageDate = YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key; - this.cfg.setProperty(cfgPageDate, YAHOO.widget.DateMath.subtract(this.cfg.getProperty(cfgPageDate), YAHOO.widget.DateMath.YEAR, count)); - this.resetRenderers(); - this.changePageEvent.fire(); -}; - -/** -* Navigates to the next month page in the calendar widget. -* @method nextMonth -*/ -YAHOO.widget.Calendar.prototype.nextMonth = function() { - this.addMonths(1); -}; - -/** -* Navigates to the previous month page in the calendar widget. -* @method previousMonth -*/ -YAHOO.widget.Calendar.prototype.previousMonth = function() { - this.subtractMonths(1); -}; - -/** -* Navigates to the next year in the currently selected month in the calendar widget. -* @method nextYear -*/ -YAHOO.widget.Calendar.prototype.nextYear = function() { - this.addYears(1); -}; - -/** -* Navigates to the previous year in the currently selected month in the calendar widget. -* @method previousYear -*/ -YAHOO.widget.Calendar.prototype.previousYear = function() { - this.subtractYears(1); -}; - -// END MONTH NAVIGATION METHODS - -// BEGIN SELECTION METHODS - -/** -* Resets the calendar widget to the originally selected month and year, and -* sets the calendar to the initial selection(s). -* @method reset -*/ -YAHOO.widget.Calendar.prototype.reset = function() { - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - this.cfg.resetProperty(defCfg.SELECTED.key); - this.cfg.resetProperty(defCfg.PAGEDATE.key); - this.resetEvent.fire(); -}; - -/** -* Clears the selected dates in the current calendar widget and sets the calendar -* to the current month and year. -* @method clear -*/ -YAHOO.widget.Calendar.prototype.clear = function() { - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - this.cfg.setProperty(defCfg.SELECTED.key, []); - this.cfg.setProperty(defCfg.PAGEDATE.key, new Date(this.today.getTime())); - this.clearEvent.fire(); -}; - -/** -* Selects a date or a collection of dates on the current calendar. This method, by default, -* does not call the render method explicitly. Once selection has completed, render must be -* called for the changes to be reflected visually. -* @method select -* @param {String/Date/Date[]} date The date string of dates to select in the current calendar. Valid formats are -* individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006). -* Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005). -* This method can also take a JavaScript Date object or an array of Date objects. -* @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected. -*/ -YAHOO.widget.Calendar.prototype.select = function(date) { - this.logger.log("Select: " + date, "info"); - this.beforeSelectEvent.fire(); - - var cfgSelected = YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key; - - var selected = this.cfg.getProperty(cfgSelected); - var aToBeSelected = this._toFieldArray(date); - this.logger.log("Selection field array: " + aToBeSelected, "info"); - - for (var a=0;a -1) { - if (this.cfg.getProperty(defCfg.PAGEDATE.key).getMonth() == dCellDate.getMonth() && - this.cfg.getProperty(defCfg.PAGEDATE.key).getFullYear() == dCellDate.getFullYear()) { - YAHOO.util.Dom.removeClass(cell, this.Style.CSS_CELL_SELECTED); - } - - selected.splice(cellDateIndex, 1); - } - - if (this.parent) { - this.parent.cfg.setProperty(defCfg.SELECTED.key, selected); - } else { - this.cfg.setProperty(defCfg.SELECTED.key, selected); - } - - this.deselectEvent.fire(selectDate); - return this.getSelectedDates(); -}; - -/** -* Deselects all dates on the current calendar. -* @method deselectAll -* @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected. -* Assuming that this function executes properly, the return value should be an empty array. -* However, the empty array is returned for the sake of being able to check the selection status -* of the calendar. -*/ -YAHOO.widget.Calendar.prototype.deselectAll = function() { - this.beforeDeselectEvent.fire(); - - var cfgSelected = YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key; - - var selected = this.cfg.getProperty(cfgSelected); - var count = selected.length; - var sel = selected.concat(); - - if (this.parent) { - this.parent.cfg.setProperty(cfgSelected, []); - } else { - this.cfg.setProperty(cfgSelected, []); - } - - if (count > 0) { - this.deselectEvent.fire(sel); - } - - return this.getSelectedDates(); -}; - -// END SELECTION METHODS - -// BEGIN TYPE CONVERSION METHODS - -/** -* Converts a date (either a JavaScript Date object, or a date string) to the internal data structure -* used to represent dates: [[yyyy,mm,dd],[yyyy,mm,dd]]. -* @method _toFieldArray -* @private -* @param {String/Date/Date[]} date The date string of dates to deselect in the current calendar. Valid formats are -* individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006). -* Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005). -* This method can also take a JavaScript Date object or an array of Date objects. -* @return {Array[](Number[])} Array of date field arrays -*/ -YAHOO.widget.Calendar.prototype._toFieldArray = function(date) { - var returnDate = []; - - if (date instanceof Date) { - returnDate = [[date.getFullYear(), date.getMonth()+1, date.getDate()]]; - } else if (YAHOO.lang.isString(date)) { - returnDate = this._parseDates(date); - } else if (YAHOO.lang.isArray(date)) { - for (var i=0;i -*
        -*
        -* -* The tables for the calendars ("cal1_0" and "cal1_1") will be inserted into those containers. -* @namespace YAHOO.widget -* @class CalendarGroup -* @constructor -* @param {String} id The id of the table element that will represent the calendar widget -* @param {String} containerId The id of the container div element that will wrap the calendar table -* @param {Object} config The configuration object containing the Calendar's arguments -*/ -YAHOO.widget.CalendarGroup = function(id, containerId, config) { - if (arguments.length > 0) { - this.init(id, containerId, config); - } -}; - -/** -* Initializes the calendar group. All subclasses must call this method in order for the -* group to be initialized properly. -* @method init -* @param {String} id The id of the table element that will represent the calendar widget -* @param {String} containerId The id of the container div element that will wrap the calendar table -* @param {Object} config The configuration object containing the Calendar's arguments -*/ -YAHOO.widget.CalendarGroup.prototype.init = function(id, containerId, config) { - this.logger = new YAHOO.widget.LogWriter("CalendarGroup " + id); - this.initEvents(); - this.initStyles(); - - /** - * The collection of Calendar pages contained within the CalendarGroup - * @property pages - * @type YAHOO.widget.Calendar[] - */ - this.pages = []; - - /** - * The unique id associated with the CalendarGroup - * @property id - * @type String - */ - this.id = id; - - /** - * The unique id associated with the CalendarGroup container - * @property containerId - * @type String - */ - this.containerId = containerId; - - /** - * The outer containing element for the CalendarGroup - * @property oDomContainer - * @type HTMLElement - */ - this.oDomContainer = document.getElementById(containerId); - - YAHOO.util.Dom.addClass(this.oDomContainer, YAHOO.widget.CalendarGroup.CSS_CONTAINER); - YAHOO.util.Dom.addClass(this.oDomContainer, YAHOO.widget.CalendarGroup.CSS_MULTI_UP); - - /** - * The Config object used to hold the configuration variables for the CalendarGroup - * @property cfg - * @type YAHOO.util.Config - */ - this.cfg = new YAHOO.util.Config(this); - - /** - * The local object which contains the CalendarGroup's options - * @property Options - * @type Object - */ - this.Options = {}; - - /** - * The local object which contains the CalendarGroup's locale settings - * @property Locale - * @type Object - */ - this.Locale = {}; - - this.setupConfig(); - - if (config) { - this.cfg.applyConfig(config, true); - } - - this.cfg.fireQueue(); - - // OPERA HACK FOR MISWRAPPED FLOATS - if (this.browser == "opera"){ - var fixWidth = function() { - var startW = this.oDomContainer.offsetWidth; - var w = 0; - for (var p=0;p 0) { - this.oDomContainer.style.width = w + "px"; - } - }; - this.renderEvent.subscribe(fixWidth,this,true); - } - this.logger.log("Initialized " + this.pages.length + "-page CalendarGroup", "info"); -}; - - -YAHOO.widget.CalendarGroup.prototype.setupConfig = function() { - - var defCfg = YAHOO.widget.CalendarGroup._DEFAULT_CONFIG; - - /** - * The number of pages to include in the CalendarGroup. This value can only be set once, in the CalendarGroup's constructor arguments. - * @config pages - * @type Number - * @default 2 - */ - this.cfg.addProperty(defCfg.PAGES.key, { value:defCfg.PAGES.value, validator:this.cfg.checkNumber, handler:this.configPages } ); - - /** - * The month/year representing the current visible Calendar date (mm/yyyy) - * @config pagedate - * @type String - * @default today's date - */ - this.cfg.addProperty(defCfg.PAGEDATE.key, { value:new Date(), handler:this.configPageDate } ); - - /** - * The date or range of dates representing the current Calendar selection - * @config selected - * @type String - * @default [] - */ - this.cfg.addProperty(defCfg.SELECTED.key, { value:[], handler:this.configSelected } ); - - /** - * The title to display above the CalendarGroup's month header - * @config title - * @type String - * @default "" - */ - this.cfg.addProperty(defCfg.TITLE.key, { value:defCfg.TITLE.value, handler:this.configTitle } ); - - /** - * Whether or not a close button should be displayed for this CalendarGroup - * @config close - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.CLOSE.key, { value:defCfg.CLOSE.value, handler:this.configClose } ); - - /** - * Whether or not an iframe shim should be placed under the Calendar to prevent select boxes from bleeding through in Internet Explorer 6 and below. - * @config iframe - * @type Boolean - * @default true - */ - this.cfg.addProperty(defCfg.IFRAME.key, { value:defCfg.IFRAME.value, handler:this.configIframe, validator:this.cfg.checkBoolean } ); - - /** - * The minimum selectable date in the current Calendar (mm/dd/yyyy) - * @config mindate - * @type String - * @default null - */ - this.cfg.addProperty(defCfg.MINDATE.key, { value:defCfg.MINDATE.value, handler:this.delegateConfig } ); - - /** - * The maximum selectable date in the current Calendar (mm/dd/yyyy) - * @config maxdate - * @type String - * @default null - */ - this.cfg.addProperty(defCfg.MAXDATE.key, { value:defCfg.MAXDATE.value, handler:this.delegateConfig } ); - - // Options properties - - /** - * True if the Calendar should allow multiple selections. False by default. - * @config MULTI_SELECT - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.MULTI_SELECT.key, { value:defCfg.MULTI_SELECT.value, handler:this.delegateConfig, validator:this.cfg.checkBoolean } ); - - /** - * The weekday the week begins on. Default is 0 (Sunday). - * @config START_WEEKDAY - * @type number - * @default 0 - */ - this.cfg.addProperty(defCfg.START_WEEKDAY.key, { value:defCfg.START_WEEKDAY.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - - /** - * True if the Calendar should show weekday labels. True by default. - * @config SHOW_WEEKDAYS - * @type Boolean - * @default true - */ - this.cfg.addProperty(defCfg.SHOW_WEEKDAYS.key, { value:defCfg.SHOW_WEEKDAYS.value, handler:this.delegateConfig, validator:this.cfg.checkBoolean } ); - - /** - * True if the Calendar should show week row headers. False by default. - * @config SHOW_WEEK_HEADER - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.SHOW_WEEK_HEADER.key,{ value:defCfg.SHOW_WEEK_HEADER.value, handler:this.delegateConfig, validator:this.cfg.checkBoolean } ); - - /** - * True if the Calendar should show week row footers. False by default. - * @config SHOW_WEEK_FOOTER - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.SHOW_WEEK_FOOTER.key,{ value:defCfg.SHOW_WEEK_FOOTER.value, handler:this.delegateConfig, validator:this.cfg.checkBoolean } ); - - /** - * True if the Calendar should suppress weeks that are not a part of the current month. False by default. - * @config HIDE_BLANK_WEEKS - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.HIDE_BLANK_WEEKS.key,{ value:defCfg.HIDE_BLANK_WEEKS.value, handler:this.delegateConfig, validator:this.cfg.checkBoolean } ); - - /** - * The image that should be used for the left navigation arrow. - * @config NAV_ARROW_LEFT - * @type String - * @deprecated You can customize the image by overriding the default CSS class for the left arrow - "calnavleft" - * @default null - */ - this.cfg.addProperty(defCfg.NAV_ARROW_LEFT.key, { value:defCfg.NAV_ARROW_LEFT.value, handler:this.delegateConfig } ); - - /** - * The image that should be used for the right navigation arrow. - * @config NAV_ARROW_RIGHT - * @type String - * @deprecated You can customize the image by overriding the default CSS class for the right arrow - "calnavright" - * @default null - */ - this.cfg.addProperty(defCfg.NAV_ARROW_RIGHT.key, { value:defCfg.NAV_ARROW_RIGHT.value, handler:this.delegateConfig } ); - - // Locale properties - - /** - * The short month labels for the current locale. - * @config MONTHS_SHORT - * @type String[] - * @default ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] - */ - this.cfg.addProperty(defCfg.MONTHS_SHORT.key, { value:defCfg.MONTHS_SHORT.value, handler:this.delegateConfig } ); - - /** - * The long month labels for the current locale. - * @config MONTHS_LONG - * @type String[] - * @default ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" - */ - this.cfg.addProperty(defCfg.MONTHS_LONG.key, { value:defCfg.MONTHS_LONG.value, handler:this.delegateConfig } ); - - /** - * The 1-character weekday labels for the current locale. - * @config WEEKDAYS_1CHAR - * @type String[] - * @default ["S", "M", "T", "W", "T", "F", "S"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_1CHAR.key, { value:defCfg.WEEKDAYS_1CHAR.value, handler:this.delegateConfig } ); - - /** - * The short weekday labels for the current locale. - * @config WEEKDAYS_SHORT - * @type String[] - * @default ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_SHORT.key, { value:defCfg.WEEKDAYS_SHORT.value, handler:this.delegateConfig } ); - - /** - * The medium weekday labels for the current locale. - * @config WEEKDAYS_MEDIUM - * @type String[] - * @default ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_MEDIUM.key, { value:defCfg.WEEKDAYS_MEDIUM.value, handler:this.delegateConfig } ); - - /** - * The long weekday labels for the current locale. - * @config WEEKDAYS_LONG - * @type String[] - * @default ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_LONG.key, { value:defCfg.WEEKDAYS_LONG.value, handler:this.delegateConfig } ); - - /** - * The setting that determines which length of month labels should be used. Possible values are "short" and "long". - * @config LOCALE_MONTHS - * @type String - * @default "long" - */ - this.cfg.addProperty(defCfg.LOCALE_MONTHS.key, { value:defCfg.LOCALE_MONTHS.value, handler:this.delegateConfig } ); - - /** - * The setting that determines which length of weekday labels should be used. Possible values are "1char", "short", "medium", and "long". - * @config LOCALE_WEEKDAYS - * @type String - * @default "short" - */ - this.cfg.addProperty(defCfg.LOCALE_WEEKDAYS.key, { value:defCfg.LOCALE_WEEKDAYS.value, handler:this.delegateConfig } ); - - /** - * The value used to delimit individual dates in a date string passed to various Calendar functions. - * @config DATE_DELIMITER - * @type String - * @default "," - */ - this.cfg.addProperty(defCfg.DATE_DELIMITER.key, { value:defCfg.DATE_DELIMITER.value, handler:this.delegateConfig } ); - - /** - * The value used to delimit date fields in a date string passed to various Calendar functions. - * @config DATE_FIELD_DELIMITER - * @type String - * @default "/" - */ - this.cfg.addProperty(defCfg.DATE_FIELD_DELIMITER.key,{ value:defCfg.DATE_FIELD_DELIMITER.value, handler:this.delegateConfig } ); - - /** - * The value used to delimit date ranges in a date string passed to various Calendar functions. - * @config DATE_RANGE_DELIMITER - * @type String - * @default "-" - */ - this.cfg.addProperty(defCfg.DATE_RANGE_DELIMITER.key,{ value:defCfg.DATE_RANGE_DELIMITER.value, handler:this.delegateConfig } ); - - /** - * The position of the month in a month/year date string - * @config MY_MONTH_POSITION - * @type Number - * @default 1 - */ - this.cfg.addProperty(defCfg.MY_MONTH_POSITION.key, { value:defCfg.MY_MONTH_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - - /** - * The position of the year in a month/year date string - * @config MY_YEAR_POSITION - * @type Number - * @default 2 - */ - this.cfg.addProperty(defCfg.MY_YEAR_POSITION.key, { value:defCfg.MY_YEAR_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - - /** - * The position of the month in a month/day date string - * @config MD_MONTH_POSITION - * @type Number - * @default 1 - */ - this.cfg.addProperty(defCfg.MD_MONTH_POSITION.key, { value:defCfg.MD_MONTH_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - - /** - * The position of the day in a month/year date string - * @config MD_DAY_POSITION - * @type Number - * @default 2 - */ - this.cfg.addProperty(defCfg.MD_DAY_POSITION.key, { value:defCfg.MD_DAY_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - - /** - * The position of the month in a month/day/year date string - * @config MDY_MONTH_POSITION - * @type Number - * @default 1 - */ - this.cfg.addProperty(defCfg.MDY_MONTH_POSITION.key, { value:defCfg.MDY_MONTH_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - - /** - * The position of the day in a month/day/year date string - * @config MDY_DAY_POSITION - * @type Number - * @default 2 - */ - this.cfg.addProperty(defCfg.MDY_DAY_POSITION.key, { value:defCfg.MDY_DAY_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - - /** - * The position of the year in a month/day/year date string - * @config MDY_YEAR_POSITION - * @type Number - * @default 3 - */ - this.cfg.addProperty(defCfg.MDY_YEAR_POSITION.key, { value:defCfg.MDY_YEAR_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - -}; - -/** -* Initializes CalendarGroup's built-in CustomEvents -* @method initEvents -*/ -YAHOO.widget.CalendarGroup.prototype.initEvents = function() { - var me = this; - var strEvent = "Event"; - - /** - * Proxy subscriber to subscribe to the CalendarGroup's child Calendars' CustomEvents - * @method sub - * @private - * @param {Function} fn The function to subscribe to this CustomEvent - * @param {Object} obj The CustomEvent's scope object - * @param {Boolean} bOverride Whether or not to apply scope correction - */ - var sub = function(fn, obj, bOverride) { - for (var p=0;p 0) ? this.pages[0].cfg.getProperty(cfgSelected) : []; - this.cfg.setProperty(cfgSelected, selected, true); -}; - - -/** -* Delegates a configuration property to the CustomEvents associated with the CalendarGroup's children -* @method delegateConfig -* @param {String} type The CustomEvent type (usually the property name) -* @param {Object[]} args The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -* @param {Object} obj The scope object. For configuration handlers, this will usually equal the owner. -*/ -YAHOO.widget.CalendarGroup.prototype.delegateConfig = function(type, args, obj) { - var val = args[0]; - var cal; - - for (var p=0;p0) { - year+=1; - } - cal.setYear(year); - } -}; -/** -* Calls the render function of all child calendars within the group. -* @method render -*/ -YAHOO.widget.CalendarGroup.prototype.render = function() { - this.renderHeader(); - for (var p=0;p -*
      • If MULTI_SELECT is false, selectCell will select the cell at the specified index for only the last displayed Calendar page.
      • -*
      • If MULTI_SELECT is true, selectCell will select the cell at the specified index, on each displayed Calendar page.
      • -* -* @method selectCell -* @param {Number} cellIndex The index of the cell to be selected. -* @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected. -*/ -YAHOO.widget.CalendarGroup.prototype.selectCell = function(cellIndex) { - for (var p=0;p=0;--p) { - var cal = this.pages[p]; - cal.previousMonth(); - } -}; - -/** -* Navigates to the next year in the currently selected month in the calendar widget. -* @method nextYear -*/ -YAHOO.widget.CalendarGroup.prototype.nextYear = function() { - for (var p=0;p 11)) { - var DM = YAHOO.widget.DateMath; - var newDate = DM.add(date, DM.MONTH, iMonth-date.getMonth()); - date.setTime(newDate.getTime()); - } else { - date.setMonth(iMonth); - } -}; - - -/** -* CSS class representing the container for the calendar -* @property YAHOO.widget.CalendarGroup.CSS_CONTAINER -* @static -* @final -* @type String -*/ -YAHOO.widget.CalendarGroup.CSS_CONTAINER = "yui-calcontainer"; - -/** -* CSS class representing the container for the calendar -* @property YAHOO.widget.CalendarGroup.CSS_MULTI_UP -* @static -* @final -* @type String -*/ -YAHOO.widget.CalendarGroup.CSS_MULTI_UP = "multi"; - -/** -* CSS class representing the title for the 2-up calendar -* @property YAHOO.widget.CalendarGroup.CSS_2UPTITLE -* @static -* @final -* @type String -*/ -YAHOO.widget.CalendarGroup.CSS_2UPTITLE = "title"; - -/** -* CSS class representing the close icon for the 2-up calendar -* @property YAHOO.widget.CalendarGroup.CSS_2UPCLOSE -* @static -* @final -* @deprecated Along with Calendar.IMG_ROOT and NAV_ARROW_LEFT, NAV_ARROW_RIGHT configuration properties. -* Calendar's Style.CSS_CLOSE property now represents the CSS class used to render the close icon -* @type String -*/ -YAHOO.widget.CalendarGroup.CSS_2UPCLOSE = "close-icon"; - -YAHOO.augment(YAHOO.widget.CalendarGroup, YAHOO.widget.Calendar, "buildDayLabel", - "buildMonthLabel", - "renderOutOfBoundsDate", - "renderRowHeader", - "renderRowFooter", - "renderCellDefault", - "styleCellDefault", - "renderCellStyleHighlight1", - "renderCellStyleHighlight2", - "renderCellStyleHighlight3", - "renderCellStyleHighlight4", - "renderCellStyleToday", - "renderCellStyleSelected", - "renderCellNotThisMonth", - "renderBodyCellRestricted", - "initStyles", - "configTitle", - "configClose", - "configIframe", - "hide", - "show", - "browser"); - -/** -* The set of default Config property keys and values for the CalendarGroup -* @property YAHOO.widget.CalendarGroup._DEFAULT_CONFIG -* @final -* @static -* @private -* @type Object -*/ -YAHOO.widget.CalendarGroup._DEFAULT_CONFIG = YAHOO.widget.Calendar._DEFAULT_CONFIG; -YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGES = {key:"pages", value:2}; - -/** -* Returns a string representation of the object. -* @method toString -* @return {String} A string representation of the CalendarGroup object. -*/ -YAHOO.widget.CalendarGroup.prototype.toString = function() { - return "CalendarGroup " + this.id; -}; - -YAHOO.widget.CalGrp = YAHOO.widget.CalendarGroup; - -/** -* @class YAHOO.widget.Calendar2up -* @extends YAHOO.widget.CalendarGroup -* @deprecated The old Calendar2up class is no longer necessary, since CalendarGroup renders in a 2up view by default. -*/ -YAHOO.widget.Calendar2up = function(id, containerId, config) { - this.init(id, containerId, config); -}; - -YAHOO.extend(YAHOO.widget.Calendar2up, YAHOO.widget.CalendarGroup); - -/** -* @deprecated The old Calendar2up class is no longer necessary, since CalendarGroup renders in a 2up view by default. -*/ -YAHOO.widget.Cal2up = YAHOO.widget.Calendar2up; - -YAHOO.register("calendar", YAHOO.widget.Calendar, {version: "2.2.2", build: "204"}); diff --git a/www/extras/yui/build/calendar/calendar-min.js b/www/extras/yui/build/calendar/calendar-min.js deleted file mode 100644 index d1ddad51e..000000000 --- a/www/extras/yui/build/calendar/calendar-min.js +++ /dev/null @@ -1,118 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ - -YAHOO.util.Config=function(owner){if(owner){this.init(owner);}};YAHOO.util.Config.CONFIG_CHANGED_EVENT="configChanged";YAHOO.util.Config.BOOLEAN_TYPE="boolean";YAHOO.util.Config.prototype={owner:null,queueInProgress:false,config:null,initialConfig:null,eventQueue:null,configChangedEvent:null,checkBoolean:function(val){return(typeof val==YAHOO.util.Config.BOOLEAN_TYPE);},checkNumber:function(val){return(!isNaN(val));},fireEvent:function(key,value){var property=this.config[key];if(property&&property.event){property.event.fire(value);}},addProperty:function(key,propertyObject){key=key.toLowerCase();this.config[key]=propertyObject;propertyObject.event=new YAHOO.util.CustomEvent(key,this.owner);propertyObject.key=key;if(propertyObject.handler){propertyObject.event.subscribe(propertyObject.handler,this.owner);} -this.setProperty(key,propertyObject.value,true);if(!propertyObject.suppressEvent){this.queueProperty(key,propertyObject.value);}},getConfig:function(){var cfg={};for(var prop in this.config){var property=this.config[prop];if(property&&property.event){cfg[prop]=property.value;}} -return cfg;},getProperty:function(key){var property=this.config[key.toLowerCase()];if(property&&property.event){return property.value;}else{return undefined;}},resetProperty:function(key){key=key.toLowerCase();var property=this.config[key];if(property&&property.event){if(this.initialConfig[key]&&!YAHOO.lang.isUndefined(this.initialConfig[key])){this.setProperty(key,this.initialConfig[key]);} -return true;}else{return false;}},setProperty:function(key,value,silent){key=key.toLowerCase();if(this.queueInProgress&&!silent){this.queueProperty(key,value);return true;}else{var property=this.config[key];if(property&&property.event){if(property.validator&&!property.validator(value)){return false;}else{property.value=value;if(!silent){this.fireEvent(key,value);this.configChangedEvent.fire([key,value]);} -return true;}}else{return false;}}},queueProperty:function(key,value){key=key.toLowerCase();var property=this.config[key];if(property&&property.event){if(!YAHOO.lang.isUndefined(value)&&property.validator&&!property.validator(value)){return false;}else{if(!YAHOO.lang.isUndefined(value)){property.value=value;}else{value=property.value;} -var foundDuplicate=false;var iLen=this.eventQueue.length;for(var i=0;i11){while(newMonth>11){newMonth-=12;years+=1;}} -d.setMonth(newMonth);d.setFullYear(date.getFullYear()+years);break;case this.DAY:d.setDate(date.getDate()+amount);break;case this.YEAR:d.setFullYear(date.getFullYear()+amount);break;case this.WEEK:d.setDate(date.getDate()+(amount*7));break;} -return d;},subtract:function(date,field,amount){return this.add(date,field,(amount*-1));},before:function(date,compareTo){var ms=compareTo.getTime();if(date.getTime()ms){return true;}else{return false;}},between:function(date,dateBegin,dateEnd){if(this.after(date,dateBegin)&&this.before(date,dateEnd)){return true;}else{return false;}},getJan1:function(calendarYear){return new Date(calendarYear,0,1);},getDayOffset:function(date,calendarYear){var beginYear=this.getJan1(calendarYear);var dayOffset=Math.ceil((date.getTime()-beginYear.getTime())/this.ONE_DAY_MS);return dayOffset;},getWeekNumber:function(date,calendarYear){date=this.clearTime(date);var nearestThurs=new Date(date.getTime()+(4*this.ONE_DAY_MS)-((date.getDay())*this.ONE_DAY_MS));var jan1=new Date(nearestThurs.getFullYear(),0,1);var dayOfYear=((nearestThurs.getTime()-jan1.getTime())/this.ONE_DAY_MS)-1;var weekNum=Math.ceil((dayOfYear)/7);return weekNum;},isYearOverlapWeek:function(weekBeginDate){var overlaps=false;var nextWeek=this.add(weekBeginDate,this.DAY,6);if(nextWeek.getFullYear()!=weekBeginDate.getFullYear()){overlaps=true;} -return overlaps;},isMonthOverlapWeek:function(weekBeginDate){var overlaps=false;var nextWeek=this.add(weekBeginDate,this.DAY,6);if(nextWeek.getMonth()!=weekBeginDate.getMonth()){overlaps=true;} -return overlaps;},findMonthStart:function(date){var start=new Date(date.getFullYear(),date.getMonth(),1);return start;},findMonthEnd:function(date){var start=this.findMonthStart(date);var nextMonth=this.add(start,this.MONTH,1);var end=this.subtract(nextMonth,this.DAY,1);return end;},clearTime:function(date){date.setHours(12,0,0,0);return date;}};YAHOO.widget.Calendar=function(id,containerId,config){this.init(id,containerId,config);};YAHOO.widget.Calendar.IMG_ROOT=null;YAHOO.widget.Calendar.DATE="D";YAHOO.widget.Calendar.MONTH_DAY="MD";YAHOO.widget.Calendar.WEEKDAY="WD";YAHOO.widget.Calendar.RANGE="R";YAHOO.widget.Calendar.MONTH="M";YAHOO.widget.Calendar.DISPLAY_DAYS=42;YAHOO.widget.Calendar.STOP_RENDER="S";YAHOO.widget.Calendar.SHORT="short";YAHOO.widget.Calendar.LONG="long";YAHOO.widget.Calendar.MEDIUM="medium";YAHOO.widget.Calendar.ONE_CHAR="1char";YAHOO.widget.Calendar._DEFAULT_CONFIG={PAGEDATE:{key:"pagedate",value:null},SELECTED:{key:"selected",value:null},TITLE:{key:"title",value:""},CLOSE:{key:"close",value:false},IFRAME:{key:"iframe",value:true},MINDATE:{key:"mindate",value:null},MAXDATE:{key:"maxdate",value:null},MULTI_SELECT:{key:"multi_select",value:false},START_WEEKDAY:{key:"start_weekday",value:0},SHOW_WEEKDAYS:{key:"show_weekdays",value:true},SHOW_WEEK_HEADER:{key:"show_week_header",value:false},SHOW_WEEK_FOOTER:{key:"show_week_footer",value:false},HIDE_BLANK_WEEKS:{key:"hide_blank_weeks",value:false},NAV_ARROW_LEFT:{key:"nav_arrow_left",value:null},NAV_ARROW_RIGHT:{key:"nav_arrow_right",value:null},MONTHS_SHORT:{key:"months_short",value:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]},MONTHS_LONG:{key:"months_long",value:["January","February","March","April","May","June","July","August","September","October","November","December"]},WEEKDAYS_1CHAR:{key:"weekdays_1char",value:["S","M","T","W","T","F","S"]},WEEKDAYS_SHORT:{key:"weekdays_short",value:["Su","Mo","Tu","We","Th","Fr","Sa"]},WEEKDAYS_MEDIUM:{key:"weekdays_medium",value:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},WEEKDAYS_LONG:{key:"weekdays_long",value:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},LOCALE_MONTHS:{key:"locale_months",value:"long"},LOCALE_WEEKDAYS:{key:"locale_weekdays",value:"short"},DATE_DELIMITER:{key:"date_delimiter",value:","},DATE_FIELD_DELIMITER:{key:"date_field_delimiter",value:"/"},DATE_RANGE_DELIMITER:{key:"date_range_delimiter",value:"-"},MY_MONTH_POSITION:{key:"my_month_position",value:1},MY_YEAR_POSITION:{key:"my_year_position",value:2},MD_MONTH_POSITION:{key:"md_month_position",value:1},MD_DAY_POSITION:{key:"md_day_position",value:2},MDY_MONTH_POSITION:{key:"mdy_month_position",value:1},MDY_DAY_POSITION:{key:"mdy_day_position",value:2},MDY_YEAR_POSITION:{key:"mdy_year_position",value:3}};YAHOO.widget.Calendar._EVENT_TYPES={BEFORE_SELECT:"beforeSelect",SELECT:"select",BEFORE_DESELECT:"beforeDeselect",DESELECT:"deselect",CHANGE_PAGE:"changePage",BEFORE_RENDER:"beforeRender",RENDER:"render",RESET:"reset",CLEAR:"clear"};YAHOO.widget.Calendar._STYLES={CSS_ROW_HEADER:"calrowhead",CSS_ROW_FOOTER:"calrowfoot",CSS_CELL:"calcell",CSS_CELL_SELECTOR:"selector",CSS_CELL_SELECTED:"selected",CSS_CELL_SELECTABLE:"selectable",CSS_CELL_RESTRICTED:"restricted",CSS_CELL_TODAY:"today",CSS_CELL_OOM:"oom",CSS_CELL_OOB:"previous",CSS_HEADER:"calheader",CSS_HEADER_TEXT:"calhead",CSS_BODY:"calbody",CSS_WEEKDAY_CELL:"calweekdaycell",CSS_WEEKDAY_ROW:"calweekdayrow",CSS_FOOTER:"calfoot",CSS_CALENDAR:"yui-calendar",CSS_SINGLE:"single",CSS_CONTAINER:"yui-calcontainer",CSS_NAV_LEFT:"calnavleft",CSS_NAV_RIGHT:"calnavright",CSS_CLOSE:"calclose",CSS_CELL_TOP:"calcelltop",CSS_CELL_LEFT:"calcellleft",CSS_CELL_RIGHT:"calcellright",CSS_CELL_BOTTOM:"calcellbottom",CSS_CELL_HOVER:"calcellhover",CSS_CELL_HIGHLIGHT1:"highlight1",CSS_CELL_HIGHLIGHT2:"highlight2",CSS_CELL_HIGHLIGHT3:"highlight3",CSS_CELL_HIGHLIGHT4:"highlight4"};YAHOO.widget.Calendar.prototype={Config:null,parent:null,index:-1,cells:null,cellDates:null,id:null,oDomContainer:null,today:null,renderStack:null,_renderStack:null,_selectedDates:null,domEventMap:null};YAHOO.widget.Calendar.prototype.init=function(id,containerId,config){this.initEvents();this.today=new Date();YAHOO.widget.DateMath.clearTime(this.today);this.id=id;this.oDomContainer=document.getElementById(containerId);this.cfg=new YAHOO.util.Config(this);this.Options={};this.Locale={};this.initStyles();YAHOO.util.Dom.addClass(this.oDomContainer,this.Style.CSS_CONTAINER);YAHOO.util.Dom.addClass(this.oDomContainer,this.Style.CSS_SINGLE);this.cellDates=[];this.cells=[];this.renderStack=[];this._renderStack=[];this.setupConfig();if(config){this.cfg.applyConfig(config,true);} -this.cfg.fireQueue();};YAHOO.widget.Calendar.prototype.configIframe=function(type,args,obj){var useIframe=args[0];if(!this.parent){if(YAHOO.util.Dom.inDocument(this.oDomContainer)){if(useIframe){var pos=YAHOO.util.Dom.getStyle(this.oDomContainer,"position");if(this.browser=="ie"&&(pos=="absolute"||pos=="relative")){if(!YAHOO.util.Dom.inDocument(this.iframe)){this.iframe=document.createElement("iframe");this.iframe.src="javascript:false;";YAHOO.util.Dom.setStyle(this.iframe,"opacity","0");this.oDomContainer.insertBefore(this.iframe,this.oDomContainer.firstChild);}}}else{if(this.iframe){if(this.iframe.parentNode){this.iframe.parentNode.removeChild(this.iframe);} -this.iframe=null;}}}}};YAHOO.widget.Calendar.prototype.configTitle=function(type,args,obj){var title=args[0];var close=this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.CLOSE.key);var titleDiv;if(title&&title!==""){titleDiv=YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.CalendarGroup.CSS_2UPTITLE,"div",this.oDomContainer)[0]||document.createElement("div");titleDiv.className=YAHOO.widget.CalendarGroup.CSS_2UPTITLE;titleDiv.innerHTML=title;this.oDomContainer.insertBefore(titleDiv,this.oDomContainer.firstChild);YAHOO.util.Dom.addClass(this.oDomContainer,"withtitle");}else{titleDiv=YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.CalendarGroup.CSS_2UPTITLE,"div",this.oDomContainer)[0]||null;if(titleDiv){YAHOO.util.Event.purgeElement(titleDiv);this.oDomContainer.removeChild(titleDiv);} -if(!close){YAHOO.util.Dom.removeClass(this.oDomContainer,"withtitle");}}};YAHOO.widget.Calendar.prototype.configClose=function(type,args,obj){var close=args[0];var title=this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.TITLE.key);var DEPR_CLOSE_PATH="us/my/bn/x_d.gif";var linkClose;if(close===true){linkClose=YAHOO.util.Dom.getElementsByClassName("link-close","a",this.oDomContainer)[0]||document.createElement("a");linkClose.href="#";linkClose.className="link-close";YAHOO.util.Event.addListener(linkClose,"click",function(e,cal){cal.hide();YAHOO.util.Event.preventDefault(e);},this);if(YAHOO.widget.Calendar.IMG_ROOT!==null){var imgClose=document.createElement("img");imgClose.src=YAHOO.widget.Calendar.IMG_ROOT+DEPR_CLOSE_PATH;imgClose.className=YAHOO.widget.CalendarGroup.CSS_2UPCLOSE;linkClose.appendChild(imgClose);}else{linkClose.innerHTML='';} -this.oDomContainer.appendChild(linkClose);YAHOO.util.Dom.addClass(this.oDomContainer,"withtitle");}else{linkClose=YAHOO.util.Dom.getElementsByClassName("link-close","a",this.oDomContainer)[0]||null;if(linkClose){YAHOO.util.Event.purgeElement(linkClose);this.oDomContainer.removeChild(linkClose);} -if(!title||title===""){YAHOO.util.Dom.removeClass(this.oDomContainer,"withtitle");}}};YAHOO.widget.Calendar.prototype.initEvents=function(){var defEvents=YAHOO.widget.Calendar._EVENT_TYPES;this.beforeSelectEvent=new YAHOO.util.CustomEvent(defEvents.BEFORE_SELECT);this.selectEvent=new YAHOO.util.CustomEvent(defEvents.SELECT);this.beforeDeselectEvent=new YAHOO.util.CustomEvent(defEvents.BEFORE_DESELECT);this.deselectEvent=new YAHOO.util.CustomEvent(defEvents.DESELECT);this.changePageEvent=new YAHOO.util.CustomEvent(defEvents.CHANGE_PAGE);this.beforeRenderEvent=new YAHOO.util.CustomEvent(defEvents.BEFORE_RENDER);this.renderEvent=new YAHOO.util.CustomEvent(defEvents.RENDER);this.resetEvent=new YAHOO.util.CustomEvent(defEvents.RESET);this.clearEvent=new YAHOO.util.CustomEvent(defEvents.CLEAR);this.beforeSelectEvent.subscribe(this.onBeforeSelect,this,true);this.selectEvent.subscribe(this.onSelect,this,true);this.beforeDeselectEvent.subscribe(this.onBeforeDeselect,this,true);this.deselectEvent.subscribe(this.onDeselect,this,true);this.changePageEvent.subscribe(this.onChangePage,this,true);this.renderEvent.subscribe(this.onRender,this,true);this.resetEvent.subscribe(this.onReset,this,true);this.clearEvent.subscribe(this.onClear,this,true);};YAHOO.widget.Calendar.prototype.doSelectCell=function(e,cal){var cell,index,d,date;var target=YAHOO.util.Event.getTarget(e);var tagName=target.tagName.toLowerCase();var defSelector=false;while(tagName!="td"&&!YAHOO.util.Dom.hasClass(target,cal.Style.CSS_CELL_SELECTABLE)){if(!defSelector&&tagName=="a"&&YAHOO.util.Dom.hasClass(target,cal.Style.CSS_CELL_SELECTOR)){defSelector=true;} -target=target.parentNode;tagName=target.tagName.toLowerCase();if(tagName=="html"){return;}} -if(defSelector){YAHOO.util.Event.preventDefault(e);} -cell=target;if(YAHOO.util.Dom.hasClass(cell,cal.Style.CSS_CELL_SELECTABLE)){index=cell.id.split("cell")[1];d=cal.cellDates[index];date=new Date(d[0],d[1]-1,d[2]);var link;if(cal.Options.MULTI_SELECT){link=cell.getElementsByTagName("a")[0];if(link){link.blur();} -var cellDate=cal.cellDates[index];var cellDateIndex=cal._indexOfSelectedFieldArray(cellDate);if(cellDateIndex>-1){cal.deselectCell(index);}else{cal.selectCell(index);}}else{link=cell.getElementsByTagName("a")[0];if(link){link.blur();} -cal.selectCell(index);}}};YAHOO.widget.Calendar.prototype.doCellMouseOver=function(e,cal){var target;if(e){target=YAHOO.util.Event.getTarget(e);}else{target=this;} -while(target.tagName.toLowerCase()!="td"){target=target.parentNode;if(target.tagName.toLowerCase()=="html"){return;}} -if(YAHOO.util.Dom.hasClass(target,cal.Style.CSS_CELL_SELECTABLE)){YAHOO.util.Dom.addClass(target,cal.Style.CSS_CELL_HOVER);}};YAHOO.widget.Calendar.prototype.doCellMouseOut=function(e,cal){var target;if(e){target=YAHOO.util.Event.getTarget(e);}else{target=this;} -while(target.tagName.toLowerCase()!="td"){target=target.parentNode;if(target.tagName.toLowerCase()=="html"){return;}} -if(YAHOO.util.Dom.hasClass(target,cal.Style.CSS_CELL_SELECTABLE)){YAHOO.util.Dom.removeClass(target,cal.Style.CSS_CELL_HOVER);}};YAHOO.widget.Calendar.prototype.setupConfig=function(){var defCfg=YAHOO.widget.Calendar._DEFAULT_CONFIG;this.cfg.addProperty(defCfg.PAGEDATE.key,{value:new Date(),handler:this.configPageDate});this.cfg.addProperty(defCfg.SELECTED.key,{value:[],handler:this.configSelected});this.cfg.addProperty(defCfg.TITLE.key,{value:defCfg.TITLE.value,handler:this.configTitle});this.cfg.addProperty(defCfg.CLOSE.key,{value:defCfg.CLOSE.value,handler:this.configClose});this.cfg.addProperty(defCfg.IFRAME.key,{value:defCfg.IFRAME.value,handler:this.configIframe,validator:this.cfg.checkBoolean});this.cfg.addProperty(defCfg.MINDATE.key,{value:defCfg.MINDATE.value,handler:this.configMinDate});this.cfg.addProperty(defCfg.MAXDATE.key,{value:defCfg.MAXDATE.value,handler:this.configMaxDate});this.cfg.addProperty(defCfg.MULTI_SELECT.key,{value:defCfg.MULTI_SELECT.value,handler:this.configOptions,validator:this.cfg.checkBoolean});this.cfg.addProperty(defCfg.START_WEEKDAY.key,{value:defCfg.START_WEEKDAY.value,handler:this.configOptions,validator:this.cfg.checkNumber});this.cfg.addProperty(defCfg.SHOW_WEEKDAYS.key,{value:defCfg.SHOW_WEEKDAYS.value,handler:this.configOptions,validator:this.cfg.checkBoolean});this.cfg.addProperty(defCfg.SHOW_WEEK_HEADER.key,{value:defCfg.SHOW_WEEK_HEADER.value,handler:this.configOptions,validator:this.cfg.checkBoolean});this.cfg.addProperty(defCfg.SHOW_WEEK_FOOTER.key,{value:defCfg.SHOW_WEEK_FOOTER.value,handler:this.configOptions,validator:this.cfg.checkBoolean});this.cfg.addProperty(defCfg.HIDE_BLANK_WEEKS.key,{value:defCfg.HIDE_BLANK_WEEKS.value,handler:this.configOptions,validator:this.cfg.checkBoolean});this.cfg.addProperty(defCfg.NAV_ARROW_LEFT.key,{value:defCfg.NAV_ARROW_LEFT.value,handler:this.configOptions});this.cfg.addProperty(defCfg.NAV_ARROW_RIGHT.key,{value:defCfg.NAV_ARROW_RIGHT.value,handler:this.configOptions});this.cfg.addProperty(defCfg.MONTHS_SHORT.key,{value:defCfg.MONTHS_SHORT.value,handler:this.configLocale});this.cfg.addProperty(defCfg.MONTHS_LONG.key,{value:defCfg.MONTHS_LONG.value,handler:this.configLocale});this.cfg.addProperty(defCfg.WEEKDAYS_1CHAR.key,{value:defCfg.WEEKDAYS_1CHAR.value,handler:this.configLocale});this.cfg.addProperty(defCfg.WEEKDAYS_SHORT.key,{value:defCfg.WEEKDAYS_SHORT.value,handler:this.configLocale});this.cfg.addProperty(defCfg.WEEKDAYS_MEDIUM.key,{value:defCfg.WEEKDAYS_MEDIUM.value,handler:this.configLocale});this.cfg.addProperty(defCfg.WEEKDAYS_LONG.key,{value:defCfg.WEEKDAYS_LONG.value,handler:this.configLocale});var refreshLocale=function(){this.cfg.refireEvent(defCfg.LOCALE_MONTHS.key);this.cfg.refireEvent(defCfg.LOCALE_WEEKDAYS.key);};this.cfg.subscribeToConfigEvent(defCfg.START_WEEKDAY.key,refreshLocale,this,true);this.cfg.subscribeToConfigEvent(defCfg.MONTHS_SHORT.key,refreshLocale,this,true);this.cfg.subscribeToConfigEvent(defCfg.MONTHS_LONG.key,refreshLocale,this,true);this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_1CHAR.key,refreshLocale,this,true);this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_SHORT.key,refreshLocale,this,true);this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_MEDIUM.key,refreshLocale,this,true);this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_LONG.key,refreshLocale,this,true);this.cfg.addProperty(defCfg.LOCALE_MONTHS.key,{value:defCfg.LOCALE_MONTHS.value,handler:this.configLocaleValues});this.cfg.addProperty(defCfg.LOCALE_WEEKDAYS.key,{value:defCfg.LOCALE_WEEKDAYS.value,handler:this.configLocaleValues});this.cfg.addProperty(defCfg.DATE_DELIMITER.key,{value:defCfg.DATE_DELIMITER.value,handler:this.configLocale});this.cfg.addProperty(defCfg.DATE_FIELD_DELIMITER.key,{value:defCfg.DATE_FIELD_DELIMITER.value,handler:this.configLocale});this.cfg.addProperty(defCfg.DATE_RANGE_DELIMITER.key,{value:defCfg.DATE_RANGE_DELIMITER.value,handler:this.configLocale});this.cfg.addProperty(defCfg.MY_MONTH_POSITION.key,{value:defCfg.MY_MONTH_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(defCfg.MY_YEAR_POSITION.key,{value:defCfg.MY_YEAR_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(defCfg.MD_MONTH_POSITION.key,{value:defCfg.MD_MONTH_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(defCfg.MD_DAY_POSITION.key,{value:defCfg.MD_DAY_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(defCfg.MDY_MONTH_POSITION.key,{value:defCfg.MDY_MONTH_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(defCfg.MDY_DAY_POSITION.key,{value:defCfg.MDY_DAY_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(defCfg.MDY_YEAR_POSITION.key,{value:defCfg.MDY_YEAR_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});};YAHOO.widget.Calendar.prototype.configPageDate=function(type,args,obj){this.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key,this._parsePageDate(args[0]),true);};YAHOO.widget.Calendar.prototype.configMinDate=function(type,args,obj){var val=args[0];if(YAHOO.lang.isString(val)){val=this._parseDate(val);this.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MINDATE.key,new Date(val[0],(val[1]-1),val[2]));}};YAHOO.widget.Calendar.prototype.configMaxDate=function(type,args,obj){var val=args[0];if(YAHOO.lang.isString(val)){val=this._parseDate(val);this.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MAXDATE.key,new Date(val[0],(val[1]-1),val[2]));}};YAHOO.widget.Calendar.prototype.configSelected=function(type,args,obj){var selected=args[0];var cfgSelected=YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;if(selected){if(YAHOO.lang.isString(selected)){this.cfg.setProperty(cfgSelected,this._parseDates(selected),true);}} -if(!this._selectedDates){this._selectedDates=this.cfg.getProperty(cfgSelected);}};YAHOO.widget.Calendar.prototype.configOptions=function(type,args,obj){this.Options[type.toUpperCase()]=args[0];};YAHOO.widget.Calendar.prototype.configLocale=function(type,args,obj){var defCfg=YAHOO.widget.Calendar._DEFAULT_CONFIG;this.Locale[type.toUpperCase()]=args[0];this.cfg.refireEvent(defCfg.LOCALE_MONTHS.key);this.cfg.refireEvent(defCfg.LOCALE_WEEKDAYS.key);};YAHOO.widget.Calendar.prototype.configLocaleValues=function(type,args,obj){var defCfg=YAHOO.widget.Calendar._DEFAULT_CONFIG;type=type.toLowerCase();var val=args[0];switch(type){case defCfg.LOCALE_MONTHS.key:switch(val){case YAHOO.widget.Calendar.SHORT:this.Locale.LOCALE_MONTHS=this.cfg.getProperty(defCfg.MONTHS_SHORT.key).concat();break;case YAHOO.widget.Calendar.LONG:this.Locale.LOCALE_MONTHS=this.cfg.getProperty(defCfg.MONTHS_LONG.key).concat();break;} -break;case defCfg.LOCALE_WEEKDAYS.key:switch(val){case YAHOO.widget.Calendar.ONE_CHAR:this.Locale.LOCALE_WEEKDAYS=this.cfg.getProperty(defCfg.WEEKDAYS_1CHAR.key).concat();break;case YAHOO.widget.Calendar.SHORT:this.Locale.LOCALE_WEEKDAYS=this.cfg.getProperty(defCfg.WEEKDAYS_SHORT.key).concat();break;case YAHOO.widget.Calendar.MEDIUM:this.Locale.LOCALE_WEEKDAYS=this.cfg.getProperty(defCfg.WEEKDAYS_MEDIUM.key).concat();break;case YAHOO.widget.Calendar.LONG:this.Locale.LOCALE_WEEKDAYS=this.cfg.getProperty(defCfg.WEEKDAYS_LONG.key).concat();break;} -var START_WEEKDAY=this.cfg.getProperty(defCfg.START_WEEKDAY.key);if(START_WEEKDAY>0){for(var w=0;w';html[html.length]='
        ';var renderLeft,renderRight=false;if(this.parent){if(this.index===0){renderLeft=true;} -if(this.index==(this.parent.cfg.getProperty("pages")-1)){renderRight=true;}}else{renderLeft=true;renderRight=true;} -var cal=this.parent||this;if(renderLeft){var leftArrow=this.cfg.getProperty(defCfg.NAV_ARROW_LEFT.key);if(leftArrow===null&&YAHOO.widget.Calendar.IMG_ROOT!==null){leftArrow=YAHOO.widget.Calendar.IMG_ROOT+DEPR_NAV_LEFT;} -var leftStyle=(leftArrow===null)?"":' style="background-image:url('+leftArrow+')"';html[html.length]=' ';} -html[html.length]=this.buildMonthLabel();if(renderRight){var rightArrow=this.cfg.getProperty(defCfg.NAV_ARROW_RIGHT.key);if(rightArrow===null&&YAHOO.widget.Calendar.IMG_ROOT!==null){rightArrow=YAHOO.widget.Calendar.IMG_ROOT+DEPR_NAV_RIGHT;} -var rightStyle=(rightArrow===null)?"":' style="background-image:url('+rightArrow+')"';html[html.length]=' ';} -html[html.length]='
        \n\n';if(this.cfg.getProperty(defCfg.SHOW_WEEKDAYS.key)){html=this.buildWeekdays(html);} -html[html.length]='';return html;};YAHOO.widget.Calendar.prototype.buildWeekdays=function(html){var defCfg=YAHOO.widget.Calendar._DEFAULT_CONFIG;html[html.length]='';if(this.cfg.getProperty(defCfg.SHOW_WEEK_HEADER.key)){html[html.length]=' ';} -for(var i=0;i'+this.Locale.LOCALE_WEEKDAYS[i]+'';} -if(this.cfg.getProperty(defCfg.SHOW_WEEK_FOOTER.key)){html[html.length]=' ';} -html[html.length]='';return html;};YAHOO.widget.Calendar.prototype.renderBody=function(workingDate,html){var defCfg=YAHOO.widget.Calendar._DEFAULT_CONFIG;var startDay=this.cfg.getProperty(defCfg.START_WEEKDAY.key);this.preMonthDays=workingDate.getDay();if(startDay>0){this.preMonthDays-=startDay;} -if(this.preMonthDays<0){this.preMonthDays+=7;} -this.monthDays=YAHOO.widget.DateMath.findMonthEnd(workingDate).getDate();this.postMonthDays=YAHOO.widget.Calendar.DISPLAY_DAYS-this.preMonthDays-this.monthDays;workingDate=YAHOO.widget.DateMath.subtract(workingDate,YAHOO.widget.DateMath.DAY,this.preMonthDays);var weekNum,weekClass;var weekPrefix="w";var cellPrefix="_cell";var workingDayPrefix="wd";var dayPrefix="d";var cellRenderers;var renderer;var todayYear=this.today.getFullYear();var todayMonth=this.today.getMonth();var todayDate=this.today.getDate();var useDate=this.cfg.getProperty(defCfg.PAGEDATE.key);var hideBlankWeeks=this.cfg.getProperty(defCfg.HIDE_BLANK_WEEKS.key);var showWeekFooter=this.cfg.getProperty(defCfg.SHOW_WEEK_FOOTER.key);var showWeekHeader=this.cfg.getProperty(defCfg.SHOW_WEEK_HEADER.key);var mindate=this.cfg.getProperty(defCfg.MINDATE.key);var maxdate=this.cfg.getProperty(defCfg.MAXDATE.key);if(mindate){mindate=YAHOO.widget.DateMath.clearTime(mindate);} -if(maxdate){maxdate=YAHOO.widget.DateMath.clearTime(maxdate);} -html[html.length]='';var i=0;var tempDiv=document.createElement("div");var cell=document.createElement("td");tempDiv.appendChild(cell);var jan1=new Date(useDate.getFullYear(),0,1);var cal=this.parent||this;for(var r=0;r<6;r++){weekNum=YAHOO.widget.DateMath.getWeekNumber(workingDate,useDate.getFullYear(),startDay);weekClass=weekPrefix+weekNum;if(r!==0&&hideBlankWeeks===true&&workingDate.getMonth()!=useDate.getMonth()){break;}else{html[html.length]='';if(showWeekHeader){html=this.renderRowHeader(weekNum,html);} -for(var d=0;d<7;d++){cellRenderers=[];renderer=null;this.clearElement(cell);cell.className=this.Style.CSS_CELL;cell.id=this.id+cellPrefix+i;if(workingDate.getDate()==todayDate&&workingDate.getMonth()==todayMonth&&workingDate.getFullYear()==todayYear){cellRenderers[cellRenderers.length]=cal.renderCellStyleToday;} -var workingArray=[workingDate.getFullYear(),workingDate.getMonth()+1,workingDate.getDate()];this.cellDates[this.cellDates.length]=workingArray;if(workingDate.getMonth()!=useDate.getMonth()){cellRenderers[cellRenderers.length]=cal.renderCellNotThisMonth;}else{YAHOO.util.Dom.addClass(cell,workingDayPrefix+workingDate.getDay());YAHOO.util.Dom.addClass(cell,dayPrefix+workingDate.getDate());for(var s=0;s=d1.getTime()&&workingDate.getTime()<=d2.getTime()){renderer=rArray[2];if(workingDate.getTime()==d2.getTime()){this.renderStack.splice(s,1);}} -break;case YAHOO.widget.Calendar.WEEKDAY:var weekday=rArray[1][0];if(workingDate.getDay()+1==weekday){renderer=rArray[2];} -break;case YAHOO.widget.Calendar.MONTH:month=rArray[1][0];if(workingDate.getMonth()+1==month){renderer=rArray[2];} -break;} -if(renderer){cellRenderers[cellRenderers.length]=renderer;}}} -if(this._indexOfSelectedFieldArray(workingArray)>-1){cellRenderers[cellRenderers.length]=cal.renderCellStyleSelected;} -if((mindate&&(workingDate.getTime()maxdate.getTime()))){cellRenderers[cellRenderers.length]=cal.renderOutOfBoundsDate;}else{cellRenderers[cellRenderers.length]=cal.styleCellDefault;cellRenderers[cellRenderers.length]=cal.renderCellDefault;} -for(var x=0;x=0&&i<=6){YAHOO.util.Dom.addClass(cell,this.Style.CSS_CELL_TOP);} -if((i%7)===0){YAHOO.util.Dom.addClass(cell,this.Style.CSS_CELL_LEFT);} -if(((i+1)%7)===0){YAHOO.util.Dom.addClass(cell,this.Style.CSS_CELL_RIGHT);} -var postDays=this.postMonthDays;if(hideBlankWeeks&&postDays>=7){var blankWeeks=Math.floor(postDays/7);for(var p=0;p=((this.preMonthDays+postDays+this.monthDays)-7)){YAHOO.util.Dom.addClass(cell,this.Style.CSS_CELL_BOTTOM);} -html[html.length]=tempDiv.innerHTML;i++;} -if(showWeekFooter){html=this.renderRowFooter(weekNum,html);} -html[html.length]='';}} -html[html.length]='';return html;};YAHOO.widget.Calendar.prototype.renderFooter=function(html){return html;};YAHOO.widget.Calendar.prototype.render=function(){this.beforeRenderEvent.fire();var defCfg=YAHOO.widget.Calendar._DEFAULT_CONFIG;var workingDate=YAHOO.widget.DateMath.findMonthStart(this.cfg.getProperty(defCfg.PAGEDATE.key));this.resetRenderers();this.cellDates.length=0;YAHOO.util.Event.purgeElement(this.oDomContainer,true);var html=[];html[html.length]='';html=this.renderHeader(html);html=this.renderBody(workingDate,html);html=this.renderFooter(html);html[html.length]='
        ';this.oDomContainer.innerHTML=html.join("\n");this.applyListeners();this.cells=this.oDomContainer.getElementsByTagName("td");this.cfg.refireEvent(defCfg.TITLE.key);this.cfg.refireEvent(defCfg.CLOSE.key);this.cfg.refireEvent(defCfg.IFRAME.key);this.renderEvent.fire();};YAHOO.widget.Calendar.prototype.applyListeners=function(){var root=this.oDomContainer;var cal=this.parent||this;var anchor="a";var mousedown="mousedown";var linkLeft=YAHOO.util.Dom.getElementsByClassName(this.Style.CSS_NAV_LEFT,anchor,root);var linkRight=YAHOO.util.Dom.getElementsByClassName(this.Style.CSS_NAV_RIGHT,anchor,root);if(linkLeft&&linkLeft.length>0){this.linkLeft=linkLeft[0];YAHOO.util.Event.addListener(this.linkLeft,mousedown,cal.previousMonth,cal,true);} -if(linkRight&&linkRight.length>0){this.linkRight=linkRight[0];YAHOO.util.Event.addListener(this.linkRight,mousedown,cal.nextMonth,cal,true);} -if(this.domEventMap){var el,elements;for(var cls in this.domEventMap){if(YAHOO.lang.hasOwnProperty(this.domEventMap,cls)){var items=this.domEventMap[cls];if(!(items instanceof Array)){items=[items];} -for(var i=0;i'+weekNum+'';return html;};YAHOO.widget.Calendar.prototype.renderRowFooter=function(weekNum,html){html[html.length]=''+weekNum+'';return html;};YAHOO.widget.Calendar.prototype.renderCellDefault=function(workingDate,cell){cell.innerHTML=''+this.buildDayLabel(workingDate)+"";};YAHOO.widget.Calendar.prototype.styleCellDefault=function(workingDate,cell){YAHOO.util.Dom.addClass(cell,this.Style.CSS_CELL_SELECTABLE);};YAHOO.widget.Calendar.prototype.renderCellStyleHighlight1=function(workingDate,cell){YAHOO.util.Dom.addClass(cell,this.Style.CSS_CELL_HIGHLIGHT1);};YAHOO.widget.Calendar.prototype.renderCellStyleHighlight2=function(workingDate,cell){YAHOO.util.Dom.addClass(cell,this.Style.CSS_CELL_HIGHLIGHT2);};YAHOO.widget.Calendar.prototype.renderCellStyleHighlight3=function(workingDate,cell){YAHOO.util.Dom.addClass(cell,this.Style.CSS_CELL_HIGHLIGHT3);};YAHOO.widget.Calendar.prototype.renderCellStyleHighlight4=function(workingDate,cell){YAHOO.util.Dom.addClass(cell,this.Style.CSS_CELL_HIGHLIGHT4);};YAHOO.widget.Calendar.prototype.renderCellStyleToday=function(workingDate,cell){YAHOO.util.Dom.addClass(cell,this.Style.CSS_CELL_TODAY);};YAHOO.widget.Calendar.prototype.renderCellStyleSelected=function(workingDate,cell){YAHOO.util.Dom.addClass(cell,this.Style.CSS_CELL_SELECTED);};YAHOO.widget.Calendar.prototype.renderCellNotThisMonth=function(workingDate,cell){YAHOO.util.Dom.addClass(cell,this.Style.CSS_CELL_OOM);cell.innerHTML=workingDate.getDate();return YAHOO.widget.Calendar.STOP_RENDER;};YAHOO.widget.Calendar.prototype.renderBodyCellRestricted=function(workingDate,cell){YAHOO.util.Dom.addClass(cell,this.Style.CSS_CELL);YAHOO.util.Dom.addClass(cell,this.Style.CSS_CELL_RESTRICTED);cell.innerHTML=workingDate.getDate();return YAHOO.widget.Calendar.STOP_RENDER;};YAHOO.widget.Calendar.prototype.addMonths=function(count){var cfgPageDate=YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;this.cfg.setProperty(cfgPageDate,YAHOO.widget.DateMath.add(this.cfg.getProperty(cfgPageDate),YAHOO.widget.DateMath.MONTH,count));this.resetRenderers();this.changePageEvent.fire();};YAHOO.widget.Calendar.prototype.subtractMonths=function(count){var cfgPageDate=YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;this.cfg.setProperty(cfgPageDate,YAHOO.widget.DateMath.subtract(this.cfg.getProperty(cfgPageDate),YAHOO.widget.DateMath.MONTH,count));this.resetRenderers();this.changePageEvent.fire();};YAHOO.widget.Calendar.prototype.addYears=function(count){var cfgPageDate=YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;this.cfg.setProperty(cfgPageDate,YAHOO.widget.DateMath.add(this.cfg.getProperty(cfgPageDate),YAHOO.widget.DateMath.YEAR,count));this.resetRenderers();this.changePageEvent.fire();};YAHOO.widget.Calendar.prototype.subtractYears=function(count){var cfgPageDate=YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;this.cfg.setProperty(cfgPageDate,YAHOO.widget.DateMath.subtract(this.cfg.getProperty(cfgPageDate),YAHOO.widget.DateMath.YEAR,count));this.resetRenderers();this.changePageEvent.fire();};YAHOO.widget.Calendar.prototype.nextMonth=function(){this.addMonths(1);};YAHOO.widget.Calendar.prototype.previousMonth=function(){this.subtractMonths(1);};YAHOO.widget.Calendar.prototype.nextYear=function(){this.addYears(1);};YAHOO.widget.Calendar.prototype.previousYear=function(){this.subtractYears(1);};YAHOO.widget.Calendar.prototype.reset=function(){var defCfg=YAHOO.widget.Calendar._DEFAULT_CONFIG;this.cfg.resetProperty(defCfg.SELECTED.key);this.cfg.resetProperty(defCfg.PAGEDATE.key);this.resetEvent.fire();};YAHOO.widget.Calendar.prototype.clear=function(){var defCfg=YAHOO.widget.Calendar._DEFAULT_CONFIG;this.cfg.setProperty(defCfg.SELECTED.key,[]);this.cfg.setProperty(defCfg.PAGEDATE.key,new Date(this.today.getTime()));this.clearEvent.fire();};YAHOO.widget.Calendar.prototype.select=function(date){this.beforeSelectEvent.fire();var cfgSelected=YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;var selected=this.cfg.getProperty(cfgSelected);var aToBeSelected=this._toFieldArray(date);for(var a=0;a-1){if(this.cfg.getProperty(defCfg.PAGEDATE.key).getMonth()==dCellDate.getMonth()&&this.cfg.getProperty(defCfg.PAGEDATE.key).getFullYear()==dCellDate.getFullYear()){YAHOO.util.Dom.removeClass(cell,this.Style.CSS_CELL_SELECTED);} -selected.splice(cellDateIndex,1);} -if(this.parent){this.parent.cfg.setProperty(defCfg.SELECTED.key,selected);}else{this.cfg.setProperty(defCfg.SELECTED.key,selected);} -this.deselectEvent.fire(selectDate);return this.getSelectedDates();};YAHOO.widget.Calendar.prototype.deselectAll=function(){this.beforeDeselectEvent.fire();var cfgSelected=YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;var selected=this.cfg.getProperty(cfgSelected);var count=selected.length;var sel=selected.concat();if(this.parent){this.parent.cfg.setProperty(cfgSelected,[]);}else{this.cfg.setProperty(cfgSelected,[]);} -if(count>0){this.deselectEvent.fire(sel);} -return this.getSelectedDates();};YAHOO.widget.Calendar.prototype._toFieldArray=function(date){var returnDate=[];if(date instanceof Date){returnDate=[[date.getFullYear(),date.getMonth()+1,date.getDate()]];}else if(YAHOO.lang.isString(date)){returnDate=this._parseDates(date);}else if(YAHOO.lang.isArray(date)){for(var i=0;i0){this.init(id,containerId,config);}};YAHOO.widget.CalendarGroup.prototype.init=function(id,containerId,config){this.initEvents();this.initStyles();this.pages=[];this.id=id;this.containerId=containerId;this.oDomContainer=document.getElementById(containerId);YAHOO.util.Dom.addClass(this.oDomContainer,YAHOO.widget.CalendarGroup.CSS_CONTAINER);YAHOO.util.Dom.addClass(this.oDomContainer,YAHOO.widget.CalendarGroup.CSS_MULTI_UP);this.cfg=new YAHOO.util.Config(this);this.Options={};this.Locale={};this.setupConfig();if(config){this.cfg.applyConfig(config,true);} -this.cfg.fireQueue();if(this.browser=="opera"){var fixWidth=function(){var startW=this.oDomContainer.offsetWidth;var w=0;for(var p=0;p0){this.oDomContainer.style.width=w+"px";}};this.renderEvent.subscribe(fixWidth,this,true);}};YAHOO.widget.CalendarGroup.prototype.setupConfig=function(){var defCfg=YAHOO.widget.CalendarGroup._DEFAULT_CONFIG;this.cfg.addProperty(defCfg.PAGES.key,{value:defCfg.PAGES.value,validator:this.cfg.checkNumber,handler:this.configPages});this.cfg.addProperty(defCfg.PAGEDATE.key,{value:new Date(),handler:this.configPageDate});this.cfg.addProperty(defCfg.SELECTED.key,{value:[],handler:this.configSelected});this.cfg.addProperty(defCfg.TITLE.key,{value:defCfg.TITLE.value,handler:this.configTitle});this.cfg.addProperty(defCfg.CLOSE.key,{value:defCfg.CLOSE.value,handler:this.configClose});this.cfg.addProperty(defCfg.IFRAME.key,{value:defCfg.IFRAME.value,handler:this.configIframe,validator:this.cfg.checkBoolean});this.cfg.addProperty(defCfg.MINDATE.key,{value:defCfg.MINDATE.value,handler:this.delegateConfig});this.cfg.addProperty(defCfg.MAXDATE.key,{value:defCfg.MAXDATE.value,handler:this.delegateConfig});this.cfg.addProperty(defCfg.MULTI_SELECT.key,{value:defCfg.MULTI_SELECT.value,handler:this.delegateConfig,validator:this.cfg.checkBoolean});this.cfg.addProperty(defCfg.START_WEEKDAY.key,{value:defCfg.START_WEEKDAY.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(defCfg.SHOW_WEEKDAYS.key,{value:defCfg.SHOW_WEEKDAYS.value,handler:this.delegateConfig,validator:this.cfg.checkBoolean});this.cfg.addProperty(defCfg.SHOW_WEEK_HEADER.key,{value:defCfg.SHOW_WEEK_HEADER.value,handler:this.delegateConfig,validator:this.cfg.checkBoolean});this.cfg.addProperty(defCfg.SHOW_WEEK_FOOTER.key,{value:defCfg.SHOW_WEEK_FOOTER.value,handler:this.delegateConfig,validator:this.cfg.checkBoolean});this.cfg.addProperty(defCfg.HIDE_BLANK_WEEKS.key,{value:defCfg.HIDE_BLANK_WEEKS.value,handler:this.delegateConfig,validator:this.cfg.checkBoolean});this.cfg.addProperty(defCfg.NAV_ARROW_LEFT.key,{value:defCfg.NAV_ARROW_LEFT.value,handler:this.delegateConfig});this.cfg.addProperty(defCfg.NAV_ARROW_RIGHT.key,{value:defCfg.NAV_ARROW_RIGHT.value,handler:this.delegateConfig});this.cfg.addProperty(defCfg.MONTHS_SHORT.key,{value:defCfg.MONTHS_SHORT.value,handler:this.delegateConfig});this.cfg.addProperty(defCfg.MONTHS_LONG.key,{value:defCfg.MONTHS_LONG.value,handler:this.delegateConfig});this.cfg.addProperty(defCfg.WEEKDAYS_1CHAR.key,{value:defCfg.WEEKDAYS_1CHAR.value,handler:this.delegateConfig});this.cfg.addProperty(defCfg.WEEKDAYS_SHORT.key,{value:defCfg.WEEKDAYS_SHORT.value,handler:this.delegateConfig});this.cfg.addProperty(defCfg.WEEKDAYS_MEDIUM.key,{value:defCfg.WEEKDAYS_MEDIUM.value,handler:this.delegateConfig});this.cfg.addProperty(defCfg.WEEKDAYS_LONG.key,{value:defCfg.WEEKDAYS_LONG.value,handler:this.delegateConfig});this.cfg.addProperty(defCfg.LOCALE_MONTHS.key,{value:defCfg.LOCALE_MONTHS.value,handler:this.delegateConfig});this.cfg.addProperty(defCfg.LOCALE_WEEKDAYS.key,{value:defCfg.LOCALE_WEEKDAYS.value,handler:this.delegateConfig});this.cfg.addProperty(defCfg.DATE_DELIMITER.key,{value:defCfg.DATE_DELIMITER.value,handler:this.delegateConfig});this.cfg.addProperty(defCfg.DATE_FIELD_DELIMITER.key,{value:defCfg.DATE_FIELD_DELIMITER.value,handler:this.delegateConfig});this.cfg.addProperty(defCfg.DATE_RANGE_DELIMITER.key,{value:defCfg.DATE_RANGE_DELIMITER.value,handler:this.delegateConfig});this.cfg.addProperty(defCfg.MY_MONTH_POSITION.key,{value:defCfg.MY_MONTH_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(defCfg.MY_YEAR_POSITION.key,{value:defCfg.MY_YEAR_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(defCfg.MD_MONTH_POSITION.key,{value:defCfg.MD_MONTH_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(defCfg.MD_DAY_POSITION.key,{value:defCfg.MD_DAY_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(defCfg.MDY_MONTH_POSITION.key,{value:defCfg.MDY_MONTH_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(defCfg.MDY_DAY_POSITION.key,{value:defCfg.MDY_DAY_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(defCfg.MDY_YEAR_POSITION.key,{value:defCfg.MDY_YEAR_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});};YAHOO.widget.CalendarGroup.prototype.initEvents=function(){var me=this;var strEvent="Event";var sub=function(fn,obj,bOverride){for(var p=0;p0)?this.pages[0].cfg.getProperty(cfgSelected):[];this.cfg.setProperty(cfgSelected,selected,true);};YAHOO.widget.CalendarGroup.prototype.delegateConfig=function(type,args,obj){var val=args[0];var cal;for(var p=0;p0){year+=1;} -cal.setYear(year);}};YAHOO.widget.CalendarGroup.prototype.render=function(){this.renderHeader();for(var p=0;p=0;--p){var cal=this.pages[p];cal.previousMonth();}};YAHOO.widget.CalendarGroup.prototype.nextYear=function(){for(var p=0;p11)){var DM=YAHOO.widget.DateMath;var newDate=DM.add(date,DM.MONTH,iMonth-date.getMonth());date.setTime(newDate.getTime());}else{date.setMonth(iMonth);}};YAHOO.widget.CalendarGroup.CSS_CONTAINER="yui-calcontainer";YAHOO.widget.CalendarGroup.CSS_MULTI_UP="multi";YAHOO.widget.CalendarGroup.CSS_2UPTITLE="title";YAHOO.widget.CalendarGroup.CSS_2UPCLOSE="close-icon";YAHOO.augment(YAHOO.widget.CalendarGroup,YAHOO.widget.Calendar,"buildDayLabel","buildMonthLabel","renderOutOfBoundsDate","renderRowHeader","renderRowFooter","renderCellDefault","styleCellDefault","renderCellStyleHighlight1","renderCellStyleHighlight2","renderCellStyleHighlight3","renderCellStyleHighlight4","renderCellStyleToday","renderCellStyleSelected","renderCellNotThisMonth","renderBodyCellRestricted","initStyles","configTitle","configClose","configIframe","hide","show","browser");YAHOO.widget.CalendarGroup._DEFAULT_CONFIG=YAHOO.widget.Calendar._DEFAULT_CONFIG;YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGES={key:"pages",value:2};YAHOO.widget.CalendarGroup.prototype.toString=function(){return"CalendarGroup "+this.id;};YAHOO.widget.CalGrp=YAHOO.widget.CalendarGroup;YAHOO.widget.Calendar2up=function(id,containerId,config){this.init(id,containerId,config);};YAHOO.extend(YAHOO.widget.Calendar2up,YAHOO.widget.CalendarGroup);YAHOO.widget.Cal2up=YAHOO.widget.Calendar2up;YAHOO.register("calendar",YAHOO.widget.Calendar,{version:"2.2.2",build:"204"}); \ No newline at end of file diff --git a/www/extras/yui/build/calendar/calendar.js b/www/extras/yui/build/calendar/calendar.js deleted file mode 100644 index 9e0fa846d..000000000 --- a/www/extras/yui/build/calendar/calendar.js +++ /dev/null @@ -1,4548 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -/** -* Config is a utility used within an Object to allow the implementer to maintain a list of local configuration properties and listen for changes to those properties dynamically using CustomEvent. The initial values are also maintained so that the configuration can be reset at any given point to its initial state. -* @namespace YAHOO.util -* @class Config -* @constructor -* @param {Object} owner The owner Object to which this Config Object belongs -*/ -YAHOO.util.Config = function(owner) { - if (owner) { - this.init(owner); - } -}; - -/** - * Constant representing the CustomEvent type for the config changed event. - * @property YAHOO.util.Config.CONFIG_CHANGED_EVENT - * @private - * @static - * @final - */ -YAHOO.util.Config.CONFIG_CHANGED_EVENT = "configChanged"; - -/** - * Constant representing the boolean type string - * @property YAHOO.util.Config.BOOLEAN_TYPE - * @private - * @static - * @final - */ -YAHOO.util.Config.BOOLEAN_TYPE = "boolean"; - -YAHOO.util.Config.prototype = { - - /** - * Object reference to the owner of this Config Object - * @property owner - * @type Object - */ - owner : null, - - /** - * Boolean flag that specifies whether a queue is currently being executed - * @property queueInProgress - * @type Boolean - */ - queueInProgress : false, - - /** - * Maintains the local collection of configuration property objects and their specified values - * @property config - * @private - * @type Object - */ - config : null, - - /** - * Maintains the local collection of configuration property objects as they were initially applied. - * This object is used when resetting a property. - * @property initialConfig - * @private - * @type Object - */ - initialConfig : null, - - /** - * Maintains the local, normalized CustomEvent queue - * @property eventQueue - * @private - * @type Object - */ - eventQueue : null, - - /** - * Custom Event, notifying subscribers when Config properties are set (setProperty is called without the silent flag - * @event configChangedEvent - */ - configChangedEvent : null, - - /** - * Validates that the value passed in is a Boolean. - * @method checkBoolean - * @param {Object} val The value to validate - * @return {Boolean} true, if the value is valid - */ - checkBoolean: function(val) { - return (typeof val == YAHOO.util.Config.BOOLEAN_TYPE); - }, - - /** - * Validates that the value passed in is a number. - * @method checkNumber - * @param {Object} val The value to validate - * @return {Boolean} true, if the value is valid - */ - checkNumber: function(val) { - return (!isNaN(val)); - }, - - /** - * Fires a configuration property event using the specified value. - * @method fireEvent - * @private - * @param {String} key The configuration property's name - * @param {value} Object The value of the correct type for the property - */ - fireEvent : function( key, value ) { - var property = this.config[key]; - - if (property && property.event) { - property.event.fire(value); - } - }, - - /** - * Adds a property to the Config Object's private config hash. - * @method addProperty - * @param {String} key The configuration property's name - * @param {Object} propertyObject The Object containing all of this property's arguments - */ - addProperty : function( key, propertyObject ) { - key = key.toLowerCase(); - - this.config[key] = propertyObject; - - propertyObject.event = new YAHOO.util.CustomEvent(key, this.owner); - propertyObject.key = key; - - if (propertyObject.handler) { - propertyObject.event.subscribe(propertyObject.handler, this.owner); - } - - this.setProperty(key, propertyObject.value, true); - - if (! propertyObject.suppressEvent) { - this.queueProperty(key, propertyObject.value); - } - - }, - - /** - * Returns a key-value configuration map of the values currently set in the Config Object. - * @method getConfig - * @return {Object} The current config, represented in a key-value map - */ - getConfig : function() { - var cfg = {}; - - for (var prop in this.config) { - var property = this.config[prop]; - if (property && property.event) { - cfg[prop] = property.value; - } - } - - return cfg; - }, - - /** - * Returns the value of specified property. - * @method getProperty - * @param {String} key The name of the property - * @return {Object} The value of the specified property - */ - getProperty : function(key) { - var property = this.config[key.toLowerCase()]; - if (property && property.event) { - return property.value; - } else { - return undefined; - } - }, - - /** - * Resets the specified property's value to its initial value. - * @method resetProperty - * @param {String} key The name of the property - * @return {Boolean} True is the property was reset, false if not - */ - resetProperty : function(key) { - key = key.toLowerCase(); - - var property = this.config[key]; - if (property && property.event) { - if (this.initialConfig[key] && !YAHOO.lang.isUndefined(this.initialConfig[key])) { - this.setProperty(key, this.initialConfig[key]); - } - return true; - } else { - return false; - } - }, - - /** - * Sets the value of a property. If the silent property is passed as true, the property's event will not be fired. - * @method setProperty - * @param {String} key The name of the property - * @param {String} value The value to set the property to - * @param {Boolean} silent Whether the value should be set silently, without firing the property event. - * @return {Boolean} True, if the set was successful, false if it failed. - */ - setProperty : function(key, value, silent) { - key = key.toLowerCase(); - - if (this.queueInProgress && ! silent) { - this.queueProperty(key,value); // Currently running through a queue... - return true; - } else { - var property = this.config[key]; - if (property && property.event) { - if (property.validator && ! property.validator(value)) { // validator - return false; - } else { - property.value = value; - if (! silent) { - this.fireEvent(key, value); - this.configChangedEvent.fire([key, value]); - } - return true; - } - } else { - return false; - } - } - }, - - /** - * Sets the value of a property and queues its event to execute. If the event is already scheduled to execute, it is - * moved from its current position to the end of the queue. - * @method queueProperty - * @param {String} key The name of the property - * @param {String} value The value to set the property to - * @return {Boolean} true, if the set was successful, false if it failed. - */ - queueProperty : function(key, value) { - key = key.toLowerCase(); - - var property = this.config[key]; - - if (property && property.event) { - if (!YAHOO.lang.isUndefined(value) && property.validator && ! property.validator(value)) { // validator - return false; - } else { - - if (!YAHOO.lang.isUndefined(value)) { - property.value = value; - } else { - value = property.value; - } - - var foundDuplicate = false; - var iLen = this.eventQueue.length; - for (var i=0; i < iLen; i++) { - var queueItem = this.eventQueue[i]; - - if (queueItem) { - var queueItemKey = queueItem[0]; - var queueItemValue = queueItem[1]; - - if (queueItemKey == key) { - // found a dupe... push to end of queue, null current item, and break - this.eventQueue[i] = null; - this.eventQueue.push([key, (!YAHOO.lang.isUndefined(value) ? value : queueItemValue)]); - foundDuplicate = true; - break; - } - } - } - - if (! foundDuplicate && !YAHOO.lang.isUndefined(value)) { // this is a refire, or a new property in the queue - this.eventQueue.push([key, value]); - } - } - - if (property.supercedes) { - var sLen = property.supercedes.length; - for (var s=0; s < sLen; s++) { - var supercedesCheck = property.supercedes[s]; - var qLen = this.eventQueue.length; - for (var q=0; q < qLen; q++) { - var queueItemCheck = this.eventQueue[q]; - - if (queueItemCheck) { - var queueItemCheckKey = queueItemCheck[0]; - var queueItemCheckValue = queueItemCheck[1]; - - if ( queueItemCheckKey == supercedesCheck.toLowerCase() ) { - this.eventQueue.push([queueItemCheckKey, queueItemCheckValue]); - this.eventQueue[q] = null; - break; - } - } - } - } - } - - return true; - } else { - return false; - } - }, - - /** - * Fires the event for a property using the property's current value. - * @method refireEvent - * @param {String} key The name of the property - */ - refireEvent : function(key) { - key = key.toLowerCase(); - - var property = this.config[key]; - if (property && property.event && !YAHOO.lang.isUndefined(property.value)) { - if (this.queueInProgress) { - this.queueProperty(key); - } else { - this.fireEvent(key, property.value); - } - } - }, - - /** - * Applies a key-value Object literal to the configuration, replacing any existing values, and queueing the property events. - * Although the values will be set, fireQueue() must be called for their associated events to execute. - * @method applyConfig - * @param {Object} userConfig The configuration Object literal - * @param {Boolean} init When set to true, the initialConfig will be set to the userConfig passed in, so that calling a reset will reset the properties to the passed values. - */ - applyConfig : function(userConfig, init) { - if (init) { - this.initialConfig = userConfig; - } - for (var prop in userConfig) { - this.queueProperty(prop, userConfig[prop]); - } - }, - - /** - * Refires the events for all configuration properties using their current values. - * @method refresh - */ - refresh : function() { - for (var prop in this.config) { - this.refireEvent(prop); - } - }, - - /** - * Fires the normalized list of queued property change events - * @method fireQueue - */ - fireQueue : function() { - this.queueInProgress = true; - for (var i=0;i 11) { - while (newMonth > 11) { - newMonth -= 12; - years += 1; - } - } - - d.setMonth(newMonth); - d.setFullYear(date.getFullYear() + years); - break; - case this.DAY: - d.setDate(date.getDate() + amount); - break; - case this.YEAR: - d.setFullYear(date.getFullYear() + amount); - break; - case this.WEEK: - d.setDate(date.getDate() + (amount * 7)); - break; - } - return d; - }, - - /** - * Subtracts the specified amount of time from the this instance. - * @method subtract - * @param {Date} date The JavaScript Date object to perform subtraction on - * @param {Number} field The this field constant to be used for performing subtraction. - * @param {Number} amount The number of units (measured in the field constant) to subtract from the date. - * @return {Date} The resulting Date object - */ - subtract : function(date, field, amount) { - return this.add(date, field, (amount*-1)); - }, - - /** - * Determines whether a given date is before another date on the calendar. - * @method before - * @param {Date} date The Date object to compare with the compare argument - * @param {Date} compareTo The Date object to use for the comparison - * @return {Boolean} true if the date occurs before the compared date; false if not. - */ - before : function(date, compareTo) { - var ms = compareTo.getTime(); - if (date.getTime() < ms) { - return true; - } else { - return false; - } - }, - - /** - * Determines whether a given date is after another date on the calendar. - * @method after - * @param {Date} date The Date object to compare with the compare argument - * @param {Date} compareTo The Date object to use for the comparison - * @return {Boolean} true if the date occurs after the compared date; false if not. - */ - after : function(date, compareTo) { - var ms = compareTo.getTime(); - if (date.getTime() > ms) { - return true; - } else { - return false; - } - }, - - /** - * Determines whether a given date is between two other dates on the calendar. - * @method between - * @param {Date} date The date to check for - * @param {Date} dateBegin The start of the range - * @param {Date} dateEnd The end of the range - * @return {Boolean} true if the date occurs between the compared dates; false if not. - */ - between : function(date, dateBegin, dateEnd) { - if (this.after(date, dateBegin) && this.before(date, dateEnd)) { - return true; - } else { - return false; - } - }, - - /** - * Retrieves a JavaScript Date object representing January 1 of any given year. - * @method getJan1 - * @param {Number} calendarYear The calendar year for which to retrieve January 1 - * @return {Date} January 1 of the calendar year specified. - */ - getJan1 : function(calendarYear) { - return new Date(calendarYear,0,1); - }, - - /** - * Calculates the number of days the specified date is from January 1 of the specified calendar year. - * Passing January 1 to this function would return an offset value of zero. - * @method getDayOffset - * @param {Date} date The JavaScript date for which to find the offset - * @param {Number} calendarYear The calendar year to use for determining the offset - * @return {Number} The number of days since January 1 of the given year - */ - getDayOffset : function(date, calendarYear) { - var beginYear = this.getJan1(calendarYear); // Find the start of the year. This will be in week 1. - - // Find the number of days the passed in date is away from the calendar year start - var dayOffset = Math.ceil((date.getTime()-beginYear.getTime()) / this.ONE_DAY_MS); - return dayOffset; - }, - - /** - * Calculates the week number for the given date. This function assumes that week 1 is the - * week in which January 1 appears, regardless of whether the week consists of a full 7 days. - * The calendar year can be specified to help find what a the week number would be for a given - * date if the date overlaps years. For instance, a week may be considered week 1 of 2005, or - * week 53 of 2004. Specifying the optional calendarYear allows one to make this distinction - * easily. - * @method getWeekNumber - * @param {Date} date The JavaScript date for which to find the week number - * @param {Number} calendarYear OPTIONAL - The calendar year to use for determining the week number. Default is - * the calendar year of parameter "date". - * @param {Number} weekStartsOn OPTIONAL - The integer (0-6) representing which day a week begins on. Default is 0 (for Sunday). - * @return {Number} The week number of the given date. - */ - getWeekNumber : function(date, calendarYear) { - date = this.clearTime(date); - var nearestThurs = new Date(date.getTime() + (4 * this.ONE_DAY_MS) - ((date.getDay()) * this.ONE_DAY_MS)); - - var jan1 = new Date(nearestThurs.getFullYear(),0,1); - var dayOfYear = ((nearestThurs.getTime() - jan1.getTime()) / this.ONE_DAY_MS) - 1; - - var weekNum = Math.ceil((dayOfYear)/ 7); - return weekNum; - }, - - /** - * Determines if a given week overlaps two different years. - * @method isYearOverlapWeek - * @param {Date} weekBeginDate The JavaScript Date representing the first day of the week. - * @return {Boolean} true if the date overlaps two different years. - */ - isYearOverlapWeek : function(weekBeginDate) { - var overlaps = false; - var nextWeek = this.add(weekBeginDate, this.DAY, 6); - if (nextWeek.getFullYear() != weekBeginDate.getFullYear()) { - overlaps = true; - } - return overlaps; - }, - - /** - * Determines if a given week overlaps two different months. - * @method isMonthOverlapWeek - * @param {Date} weekBeginDate The JavaScript Date representing the first day of the week. - * @return {Boolean} true if the date overlaps two different months. - */ - isMonthOverlapWeek : function(weekBeginDate) { - var overlaps = false; - var nextWeek = this.add(weekBeginDate, this.DAY, 6); - if (nextWeek.getMonth() != weekBeginDate.getMonth()) { - overlaps = true; - } - return overlaps; - }, - - /** - * Gets the first day of a month containing a given date. - * @method findMonthStart - * @param {Date} date The JavaScript Date used to calculate the month start - * @return {Date} The JavaScript Date representing the first day of the month - */ - findMonthStart : function(date) { - var start = new Date(date.getFullYear(), date.getMonth(), 1); - return start; - }, - - /** - * Gets the last day of a month containing a given date. - * @method findMonthEnd - * @param {Date} date The JavaScript Date used to calculate the month end - * @return {Date} The JavaScript Date representing the last day of the month - */ - findMonthEnd : function(date) { - var start = this.findMonthStart(date); - var nextMonth = this.add(start, this.MONTH, 1); - var end = this.subtract(nextMonth, this.DAY, 1); - return end; - }, - - /** - * Clears the time fields from a given date, effectively setting the time to 12 noon. - * @method clearTime - * @param {Date} date The JavaScript Date for which the time fields will be cleared - * @return {Date} The JavaScript Date cleared of all time fields - */ - clearTime : function(date) { - date.setHours(12,0,0,0); - return date; - } -}; - -/** -* The Calendar component is a UI control that enables users to choose one or more dates from a graphical calendar presented in a one-month ("one-up") or two-month ("two-up") interface. Calendars are generated entirely via script and can be navigated without any page refreshes. -* @module calendar -* @title Calendar -* @namespace YAHOO.widget -* @requires yahoo,dom,event -*/ - -/** -* Calendar is the base class for the Calendar widget. In its most basic -* implementation, it has the ability to render a calendar widget on the page -* that can be manipulated to select a single date, move back and forth between -* months and years. -*

        To construct the placeholder for the calendar widget, the code is as -* follows: -*

        -* <div id="cal1Container"></div> -* -* Note that the table can be replaced with any kind of element. -*

        -* @namespace YAHOO.widget -* @class Calendar -* @constructor -* @param {String} id The id of the table element that will represent the calendar widget -* @param {String} containerId The id of the container div element that will wrap the calendar table -* @param {Object} config The configuration object containing the Calendar's arguments -*/ -YAHOO.widget.Calendar = function(id, containerId, config) { - this.init(id, containerId, config); -}; - -/** -* The path to be used for images loaded for the Calendar -* @property YAHOO.widget.Calendar.IMG_ROOT -* @static -* @deprecated You can now customize images by overriding the calclose, calnavleft and calnavright default CSS classes for the close icon, left arrow and right arrow respectively -* @type String -*/ -YAHOO.widget.Calendar.IMG_ROOT = null; - -/** -* Type constant used for renderers to represent an individual date (M/D/Y) -* @property YAHOO.widget.Calendar.DATE -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.DATE = "D"; - -/** -* Type constant used for renderers to represent an individual date across any year (M/D) -* @property YAHOO.widget.Calendar.MONTH_DAY -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.MONTH_DAY = "MD"; - -/** -* Type constant used for renderers to represent a weekday -* @property YAHOO.widget.Calendar.WEEKDAY -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.WEEKDAY = "WD"; - -/** -* Type constant used for renderers to represent a range of individual dates (M/D/Y-M/D/Y) -* @property YAHOO.widget.Calendar.RANGE -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.RANGE = "R"; - -/** -* Type constant used for renderers to represent a month across any year -* @property YAHOO.widget.Calendar.MONTH -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.MONTH = "M"; - -/** -* Constant that represents the total number of date cells that are displayed in a given month -* @property YAHOO.widget.Calendar.DISPLAY_DAYS -* @static -* @final -* @type Number -*/ -YAHOO.widget.Calendar.DISPLAY_DAYS = 42; - -/** -* Constant used for halting the execution of the remainder of the render stack -* @property YAHOO.widget.Calendar.STOP_RENDER -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.STOP_RENDER = "S"; - -/** -* Constant used to represent short date field string formats (e.g. Tu or Feb) -* @property YAHOO.widget.Calendar.SHORT -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.SHORT = "short"; - -/** -* Constant used to represent long date field string formats (e.g. Monday or February) -* @property YAHOO.widget.Calendar.LONG -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.LONG = "long"; - -/** -* Constant used to represent medium date field string formats (e.g. Mon) -* @property YAHOO.widget.Calendar.MEDIUM -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.MEDIUM = "medium"; - -/** -* Constant used to represent single character date field string formats (e.g. M, T, W) -* @property YAHOO.widget.Calendar.ONE_CHAR -* @static -* @final -* @type String -*/ -YAHOO.widget.Calendar.ONE_CHAR = "1char"; - -/** -* The set of default Config property keys and values for the Calendar -* @property YAHOO.widget.Calendar._DEFAULT_CONFIG -* @final -* @static -* @private -* @type Object -*/ -YAHOO.widget.Calendar._DEFAULT_CONFIG = { - // Default values for pagedate and selected are not class level constants - they are set during instance creation - PAGEDATE : {key:"pagedate", value:null}, - SELECTED : {key:"selected", value:null}, - TITLE : {key:"title", value:""}, - CLOSE : {key:"close", value:false}, - IFRAME : {key:"iframe", value:true}, - MINDATE : {key:"mindate", value:null}, - MAXDATE : {key:"maxdate", value:null}, - MULTI_SELECT : {key:"multi_select", value:false}, - START_WEEKDAY : {key:"start_weekday", value:0}, - SHOW_WEEKDAYS : {key:"show_weekdays", value:true}, - SHOW_WEEK_HEADER : {key:"show_week_header", value:false}, - SHOW_WEEK_FOOTER : {key:"show_week_footer", value:false}, - HIDE_BLANK_WEEKS : {key:"hide_blank_weeks", value:false}, - NAV_ARROW_LEFT: {key:"nav_arrow_left", value:null} , - NAV_ARROW_RIGHT : {key:"nav_arrow_right", value:null} , - MONTHS_SHORT : {key:"months_short", value:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]}, - MONTHS_LONG: {key:"months_long", value:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]}, - WEEKDAYS_1CHAR: {key:"weekdays_1char", value:["S", "M", "T", "W", "T", "F", "S"]}, - WEEKDAYS_SHORT: {key:"weekdays_short", value:["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]}, - WEEKDAYS_MEDIUM: {key:"weekdays_medium", value:["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]}, - WEEKDAYS_LONG: {key:"weekdays_long", value:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]}, - LOCALE_MONTHS:{key:"locale_months", value:"long"}, - LOCALE_WEEKDAYS:{key:"locale_weekdays", value:"short"}, - DATE_DELIMITER:{key:"date_delimiter", value:","}, - DATE_FIELD_DELIMITER:{key:"date_field_delimiter", value:"/"}, - DATE_RANGE_DELIMITER:{key:"date_range_delimiter", value:"-"}, - MY_MONTH_POSITION:{key:"my_month_position", value:1}, - MY_YEAR_POSITION:{key:"my_year_position", value:2}, - MD_MONTH_POSITION:{key:"md_month_position", value:1}, - MD_DAY_POSITION:{key:"md_day_position", value:2}, - MDY_MONTH_POSITION:{key:"mdy_month_position", value:1}, - MDY_DAY_POSITION:{key:"mdy_day_position", value:2}, - MDY_YEAR_POSITION:{key:"mdy_year_position", value:3} -}; - -/** -* The set of Custom Event types supported by the Calendar -* @property YAHOO.widget.Calendar._EVENT_TYPES -* @final -* @static -* @private -* @type Object -*/ -YAHOO.widget.Calendar._EVENT_TYPES = { - BEFORE_SELECT : "beforeSelect", - SELECT : "select", - BEFORE_DESELECT : "beforeDeselect", - DESELECT : "deselect", - CHANGE_PAGE : "changePage", - BEFORE_RENDER : "beforeRender", - RENDER : "render", - RESET : "reset", - CLEAR : "clear" -}; - -/** -* The set of default style constants for the Calendar -* @property YAHOO.widget.Calendar._STYLES -* @final -* @static -* @private -* @type Object -*/ -YAHOO.widget.Calendar._STYLES = { - CSS_ROW_HEADER: "calrowhead", - CSS_ROW_FOOTER: "calrowfoot", - CSS_CELL : "calcell", - CSS_CELL_SELECTOR : "selector", - CSS_CELL_SELECTED : "selected", - CSS_CELL_SELECTABLE : "selectable", - CSS_CELL_RESTRICTED : "restricted", - CSS_CELL_TODAY : "today", - CSS_CELL_OOM : "oom", - CSS_CELL_OOB : "previous", - CSS_HEADER : "calheader", - CSS_HEADER_TEXT : "calhead", - CSS_BODY : "calbody", - CSS_WEEKDAY_CELL : "calweekdaycell", - CSS_WEEKDAY_ROW : "calweekdayrow", - CSS_FOOTER : "calfoot", - CSS_CALENDAR : "yui-calendar", - CSS_SINGLE : "single", - CSS_CONTAINER : "yui-calcontainer", - CSS_NAV_LEFT : "calnavleft", - CSS_NAV_RIGHT : "calnavright", - CSS_CLOSE : "calclose", - CSS_CELL_TOP : "calcelltop", - CSS_CELL_LEFT : "calcellleft", - CSS_CELL_RIGHT : "calcellright", - CSS_CELL_BOTTOM : "calcellbottom", - CSS_CELL_HOVER : "calcellhover", - CSS_CELL_HIGHLIGHT1 : "highlight1", - CSS_CELL_HIGHLIGHT2 : "highlight2", - CSS_CELL_HIGHLIGHT3 : "highlight3", - CSS_CELL_HIGHLIGHT4 : "highlight4" -}; - -YAHOO.widget.Calendar.prototype = { - - /** - * The configuration object used to set up the calendars various locale and style options. - * @property Config - * @private - * @deprecated Configuration properties should be set by calling Calendar.cfg.setProperty. - * @type Object - */ - Config : null, - - /** - * The parent CalendarGroup, only to be set explicitly by the parent group - * @property parent - * @type CalendarGroup - */ - parent : null, - - /** - * The index of this item in the parent group - * @property index - * @type Number - */ - index : -1, - - /** - * The collection of calendar table cells - * @property cells - * @type HTMLTableCellElement[] - */ - cells : null, - - /** - * The collection of calendar cell dates that is parallel to the cells collection. The array contains dates field arrays in the format of [YYYY, M, D]. - * @property cellDates - * @type Array[](Number[]) - */ - cellDates : null, - - /** - * The id that uniquely identifies this calendar. This id should match the id of the placeholder element on the page. - * @property id - * @type String - */ - id : null, - - /** - * The DOM element reference that points to this calendar's container element. The calendar will be inserted into this element when the shell is rendered. - * @property oDomContainer - * @type HTMLElement - */ - oDomContainer : null, - - /** - * A Date object representing today's date. - * @property today - * @type Date - */ - today : null, - - /** - * The list of render functions, along with required parameters, used to render cells. - * @property renderStack - * @type Array[] - */ - renderStack : null, - - /** - * A copy of the initial render functions created before rendering. - * @property _renderStack - * @private - * @type Array - */ - _renderStack : null, - - /** - * The private list of initially selected dates. - * @property _selectedDates - * @private - * @type Array - */ - _selectedDates : null, - - /** - * A map of DOM event handlers to attach to cells associated with specific CSS class names - * @property domEventMap - * @type Object - */ - domEventMap : null -}; - - - -/** -* Initializes the Calendar widget. -* @method init -* @param {String} id The id of the table element that will represent the calendar widget -* @param {String} containerId The id of the container div element that will wrap the calendar table -* @param {Object} config The configuration object containing the Calendar's arguments -*/ -YAHOO.widget.Calendar.prototype.init = function(id, containerId, config) { - this.initEvents(); - this.today = new Date(); - YAHOO.widget.DateMath.clearTime(this.today); - - this.id = id; - this.oDomContainer = document.getElementById(containerId); - - /** - * The Config object used to hold the configuration variables for the Calendar - * @property cfg - * @type YAHOO.util.Config - */ - this.cfg = new YAHOO.util.Config(this); - - /** - * The local object which contains the Calendar's options - * @property Options - * @type Object - */ - this.Options = {}; - - /** - * The local object which contains the Calendar's locale settings - * @property Locale - * @type Object - */ - this.Locale = {}; - - this.initStyles(); - - YAHOO.util.Dom.addClass(this.oDomContainer, this.Style.CSS_CONTAINER); - YAHOO.util.Dom.addClass(this.oDomContainer, this.Style.CSS_SINGLE); - - this.cellDates = []; - this.cells = []; - this.renderStack = []; - this._renderStack = []; - - this.setupConfig(); - - if (config) { - this.cfg.applyConfig(config, true); - } - - this.cfg.fireQueue(); -}; - -/** -* Renders the built-in IFRAME shim for the IE6 and below -* @method configIframe -*/ -YAHOO.widget.Calendar.prototype.configIframe = function(type, args, obj) { - var useIframe = args[0]; - - if (!this.parent) { - if (YAHOO.util.Dom.inDocument(this.oDomContainer)) { - if (useIframe) { - var pos = YAHOO.util.Dom.getStyle(this.oDomContainer, "position"); - - if (this.browser == "ie" && (pos == "absolute" || pos == "relative")) { - if (! YAHOO.util.Dom.inDocument(this.iframe)) { - this.iframe = document.createElement("iframe"); - this.iframe.src = "javascript:false;"; - YAHOO.util.Dom.setStyle(this.iframe, "opacity", "0"); - this.oDomContainer.insertBefore(this.iframe, this.oDomContainer.firstChild); - } - } - } else { - if (this.iframe) { - if (this.iframe.parentNode) { - this.iframe.parentNode.removeChild(this.iframe); - } - this.iframe = null; - } - } - } - } -}; - -/** -* Default handler for the "title" property -* @method configTitle -*/ -YAHOO.widget.Calendar.prototype.configTitle = function(type, args, obj) { - var title = args[0]; - var close = this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.CLOSE.key); - - var titleDiv; - - if (title && title !== "") { - titleDiv = YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.CalendarGroup.CSS_2UPTITLE, "div", this.oDomContainer)[0] || document.createElement("div"); - titleDiv.className = YAHOO.widget.CalendarGroup.CSS_2UPTITLE; - titleDiv.innerHTML = title; - this.oDomContainer.insertBefore(titleDiv, this.oDomContainer.firstChild); - YAHOO.util.Dom.addClass(this.oDomContainer, "withtitle"); - } else { - titleDiv = YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.CalendarGroup.CSS_2UPTITLE, "div", this.oDomContainer)[0] || null; - - if (titleDiv) { - YAHOO.util.Event.purgeElement(titleDiv); - this.oDomContainer.removeChild(titleDiv); - } - if (! close) { - YAHOO.util.Dom.removeClass(this.oDomContainer, "withtitle"); - } - } -}; - -/** -* Default handler for the "close" property -* @method configClose -*/ -YAHOO.widget.Calendar.prototype.configClose = function(type, args, obj) { - var close = args[0]; - var title = this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.TITLE.key); - - var DEPR_CLOSE_PATH = "us/my/bn/x_d.gif"; - - var linkClose; - - if (close === true) { - linkClose = YAHOO.util.Dom.getElementsByClassName("link-close", "a", this.oDomContainer)[0] || document.createElement("a"); - linkClose.href = "#"; - linkClose.className = "link-close"; - YAHOO.util.Event.addListener(linkClose, "click", function(e, cal) {cal.hide(); YAHOO.util.Event.preventDefault(e); }, this); - - if (YAHOO.widget.Calendar.IMG_ROOT !== null) { - var imgClose = document.createElement("img"); - imgClose.src = YAHOO.widget.Calendar.IMG_ROOT + DEPR_CLOSE_PATH; - imgClose.className = YAHOO.widget.CalendarGroup.CSS_2UPCLOSE; - linkClose.appendChild(imgClose); - } else { - linkClose.innerHTML = ''; - } - - this.oDomContainer.appendChild(linkClose); - YAHOO.util.Dom.addClass(this.oDomContainer, "withtitle"); - } else { - linkClose = YAHOO.util.Dom.getElementsByClassName("link-close", "a", this.oDomContainer)[0] || null; - if (linkClose) { - YAHOO.util.Event.purgeElement(linkClose); - this.oDomContainer.removeChild(linkClose); - } - if (! title || title === "") { - YAHOO.util.Dom.removeClass(this.oDomContainer, "withtitle"); - } - } -}; - -/** -* Initializes Calendar's built-in CustomEvents -* @method initEvents -*/ -YAHOO.widget.Calendar.prototype.initEvents = function() { - - var defEvents = YAHOO.widget.Calendar._EVENT_TYPES; - - /** - * Fired before a selection is made - * @event beforeSelectEvent - */ - this.beforeSelectEvent = new YAHOO.util.CustomEvent(defEvents.BEFORE_SELECT); - - /** - * Fired when a selection is made - * @event selectEvent - * @param {Array} Array of Date field arrays in the format [YYYY, MM, DD]. - */ - this.selectEvent = new YAHOO.util.CustomEvent(defEvents.SELECT); - - /** - * Fired before a selection is made - * @event beforeDeselectEvent - */ - this.beforeDeselectEvent = new YAHOO.util.CustomEvent(defEvents.BEFORE_DESELECT); - - /** - * Fired when a selection is made - * @event deselectEvent - * @param {Array} Array of Date field arrays in the format [YYYY, MM, DD]. - */ - this.deselectEvent = new YAHOO.util.CustomEvent(defEvents.DESELECT); - - /** - * Fired when the Calendar page is changed - * @event changePageEvent - */ - this.changePageEvent = new YAHOO.util.CustomEvent(defEvents.CHANGE_PAGE); - - /** - * Fired before the Calendar is rendered - * @event beforeRenderEvent - */ - this.beforeRenderEvent = new YAHOO.util.CustomEvent(defEvents.BEFORE_RENDER); - - /** - * Fired when the Calendar is rendered - * @event renderEvent - */ - this.renderEvent = new YAHOO.util.CustomEvent(defEvents.RENDER); - - /** - * Fired when the Calendar is reset - * @event resetEvent - */ - this.resetEvent = new YAHOO.util.CustomEvent(defEvents.RESET); - - /** - * Fired when the Calendar is cleared - * @event clearEvent - */ - this.clearEvent = new YAHOO.util.CustomEvent(defEvents.CLEAR); - - this.beforeSelectEvent.subscribe(this.onBeforeSelect, this, true); - this.selectEvent.subscribe(this.onSelect, this, true); - this.beforeDeselectEvent.subscribe(this.onBeforeDeselect, this, true); - this.deselectEvent.subscribe(this.onDeselect, this, true); - this.changePageEvent.subscribe(this.onChangePage, this, true); - this.renderEvent.subscribe(this.onRender, this, true); - this.resetEvent.subscribe(this.onReset, this, true); - this.clearEvent.subscribe(this.onClear, this, true); -}; - -/** -* The default event function that is attached to a date link within a calendar cell -* when the calendar is rendered. -* @method doSelectCell -* @param {DOMEvent} e The event -* @param {Calendar} cal A reference to the calendar passed by the Event utility -*/ -YAHOO.widget.Calendar.prototype.doSelectCell = function(e, cal) { - var cell,index,d,date; - - var target = YAHOO.util.Event.getTarget(e); - var tagName = target.tagName.toLowerCase(); - var defSelector = false; - - while (tagName != "td" && ! YAHOO.util.Dom.hasClass(target, cal.Style.CSS_CELL_SELECTABLE)) { - - if (!defSelector && tagName == "a" && YAHOO.util.Dom.hasClass(target, cal.Style.CSS_CELL_SELECTOR)) { - defSelector = true; - } - - target = target.parentNode; - tagName = target.tagName.toLowerCase(); - if (tagName == "html") { - return; - } - } - - if (defSelector) { - // Stop link href navigation for default renderer - YAHOO.util.Event.preventDefault(e); - } - - cell = target; - - if (YAHOO.util.Dom.hasClass(cell, cal.Style.CSS_CELL_SELECTABLE)) { - index = cell.id.split("cell")[1]; - d = cal.cellDates[index]; - date = new Date(d[0],d[1]-1,d[2]); - - var link; - - if (cal.Options.MULTI_SELECT) { - link = cell.getElementsByTagName("a")[0]; - if (link) { - link.blur(); - } - - var cellDate = cal.cellDates[index]; - var cellDateIndex = cal._indexOfSelectedFieldArray(cellDate); - - if (cellDateIndex > -1) { - cal.deselectCell(index); - } else { - cal.selectCell(index); - } - - } else { - link = cell.getElementsByTagName("a")[0]; - if (link) { - link.blur(); - } - cal.selectCell(index); - } - } -}; - -/** -* The event that is executed when the user hovers over a cell -* @method doCellMouseOver -* @param {DOMEvent} e The event -* @param {Calendar} cal A reference to the calendar passed by the Event utility -*/ -YAHOO.widget.Calendar.prototype.doCellMouseOver = function(e, cal) { - var target; - if (e) { - target = YAHOO.util.Event.getTarget(e); - } else { - target = this; - } - - while (target.tagName.toLowerCase() != "td") { - target = target.parentNode; - if (target.tagName.toLowerCase() == "html") { - return; - } - } - - if (YAHOO.util.Dom.hasClass(target, cal.Style.CSS_CELL_SELECTABLE)) { - YAHOO.util.Dom.addClass(target, cal.Style.CSS_CELL_HOVER); - } -}; - -/** -* The event that is executed when the user moves the mouse out of a cell -* @method doCellMouseOut -* @param {DOMEvent} e The event -* @param {Calendar} cal A reference to the calendar passed by the Event utility -*/ -YAHOO.widget.Calendar.prototype.doCellMouseOut = function(e, cal) { - var target; - if (e) { - target = YAHOO.util.Event.getTarget(e); - } else { - target = this; - } - - while (target.tagName.toLowerCase() != "td") { - target = target.parentNode; - if (target.tagName.toLowerCase() == "html") { - return; - } - } - - if (YAHOO.util.Dom.hasClass(target, cal.Style.CSS_CELL_SELECTABLE)) { - YAHOO.util.Dom.removeClass(target, cal.Style.CSS_CELL_HOVER); - } -}; - -YAHOO.widget.Calendar.prototype.setupConfig = function() { - - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - - /** - * The month/year representing the current visible Calendar date (mm/yyyy) - * @config pagedate - * @type String - * @default today's date - */ - this.cfg.addProperty(defCfg.PAGEDATE.key, { value:new Date(), handler:this.configPageDate } ); - - /** - * The date or range of dates representing the current Calendar selection - * @config selected - * @type String - * @default [] - */ - this.cfg.addProperty(defCfg.SELECTED.key, { value:[], handler:this.configSelected } ); - - /** - * The title to display above the Calendar's month header - * @config title - * @type String - * @default "" - */ - this.cfg.addProperty(defCfg.TITLE.key, { value:defCfg.TITLE.value, handler:this.configTitle } ); - - /** - * Whether or not a close button should be displayed for this Calendar - * @config close - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.CLOSE.key, { value:defCfg.CLOSE.value, handler:this.configClose } ); - - /** - * Whether or not an iframe shim should be placed under the Calendar to prevent select boxes from bleeding through in Internet Explorer 6 and below. - * @config iframe - * @type Boolean - * @default true - */ - this.cfg.addProperty(defCfg.IFRAME.key, { value:defCfg.IFRAME.value, handler:this.configIframe, validator:this.cfg.checkBoolean } ); - - /** - * The minimum selectable date in the current Calendar (mm/dd/yyyy) - * @config mindate - * @type String - * @default null - */ - this.cfg.addProperty(defCfg.MINDATE.key, { value:defCfg.MINDATE.value, handler:this.configMinDate } ); - - /** - * The maximum selectable date in the current Calendar (mm/dd/yyyy) - * @config maxdate - * @type String - * @default null - */ - this.cfg.addProperty(defCfg.MAXDATE.key, { value:defCfg.MAXDATE.value, handler:this.configMaxDate } ); - - - // Options properties - - /** - * True if the Calendar should allow multiple selections. False by default. - * @config MULTI_SELECT - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.MULTI_SELECT.key, { value:defCfg.MULTI_SELECT.value, handler:this.configOptions, validator:this.cfg.checkBoolean } ); - - /** - * The weekday the week begins on. Default is 0 (Sunday). - * @config START_WEEKDAY - * @type number - * @default 0 - */ - this.cfg.addProperty(defCfg.START_WEEKDAY.key, { value:defCfg.START_WEEKDAY.value, handler:this.configOptions, validator:this.cfg.checkNumber } ); - - /** - * True if the Calendar should show weekday labels. True by default. - * @config SHOW_WEEKDAYS - * @type Boolean - * @default true - */ - this.cfg.addProperty(defCfg.SHOW_WEEKDAYS.key, { value:defCfg.SHOW_WEEKDAYS.value, handler:this.configOptions, validator:this.cfg.checkBoolean } ); - - /** - * True if the Calendar should show week row headers. False by default. - * @config SHOW_WEEK_HEADER - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.SHOW_WEEK_HEADER.key, { value:defCfg.SHOW_WEEK_HEADER.value, handler:this.configOptions, validator:this.cfg.checkBoolean } ); - - /** - * True if the Calendar should show week row footers. False by default. - * @config SHOW_WEEK_FOOTER - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.SHOW_WEEK_FOOTER.key,{ value:defCfg.SHOW_WEEK_FOOTER.value, handler:this.configOptions, validator:this.cfg.checkBoolean } ); - - /** - * True if the Calendar should suppress weeks that are not a part of the current month. False by default. - * @config HIDE_BLANK_WEEKS - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.HIDE_BLANK_WEEKS.key, { value:defCfg.HIDE_BLANK_WEEKS.value, handler:this.configOptions, validator:this.cfg.checkBoolean } ); - - /** - * The image that should be used for the left navigation arrow. - * @config NAV_ARROW_LEFT - * @type String - * @deprecated You can customize the image by overriding the default CSS class for the left arrow - "calnavleft" - * @default null - */ - this.cfg.addProperty(defCfg.NAV_ARROW_LEFT.key, { value:defCfg.NAV_ARROW_LEFT.value, handler:this.configOptions } ); - - /** - * The image that should be used for the right navigation arrow. - * @config NAV_ARROW_RIGHT - * @type String - * @deprecated You can customize the image by overriding the default CSS class for the right arrow - "calnavright" - * @default null - */ - this.cfg.addProperty(defCfg.NAV_ARROW_RIGHT.key, { value:defCfg.NAV_ARROW_RIGHT.value, handler:this.configOptions } ); - - // Locale properties - - /** - * The short month labels for the current locale. - * @config MONTHS_SHORT - * @type String[] - * @default ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] - */ - this.cfg.addProperty(defCfg.MONTHS_SHORT.key, { value:defCfg.MONTHS_SHORT.value, handler:this.configLocale } ); - - /** - * The long month labels for the current locale. - * @config MONTHS_LONG - * @type String[] - * @default ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" - */ - this.cfg.addProperty(defCfg.MONTHS_LONG.key, { value:defCfg.MONTHS_LONG.value, handler:this.configLocale } ); - - /** - * The 1-character weekday labels for the current locale. - * @config WEEKDAYS_1CHAR - * @type String[] - * @default ["S", "M", "T", "W", "T", "F", "S"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_1CHAR.key, { value:defCfg.WEEKDAYS_1CHAR.value, handler:this.configLocale } ); - - /** - * The short weekday labels for the current locale. - * @config WEEKDAYS_SHORT - * @type String[] - * @default ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_SHORT.key, { value:defCfg.WEEKDAYS_SHORT.value, handler:this.configLocale } ); - - /** - * The medium weekday labels for the current locale. - * @config WEEKDAYS_MEDIUM - * @type String[] - * @default ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_MEDIUM.key, { value:defCfg.WEEKDAYS_MEDIUM.value, handler:this.configLocale } ); - - /** - * The long weekday labels for the current locale. - * @config WEEKDAYS_LONG - * @type String[] - * @default ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_LONG.key, { value:defCfg.WEEKDAYS_LONG.value, handler:this.configLocale } ); - - /** - * Refreshes the locale values used to build the Calendar. - * @method refreshLocale - * @private - */ - var refreshLocale = function() { - this.cfg.refireEvent(defCfg.LOCALE_MONTHS.key); - this.cfg.refireEvent(defCfg.LOCALE_WEEKDAYS.key); - }; - - this.cfg.subscribeToConfigEvent(defCfg.START_WEEKDAY.key, refreshLocale, this, true); - this.cfg.subscribeToConfigEvent(defCfg.MONTHS_SHORT.key, refreshLocale, this, true); - this.cfg.subscribeToConfigEvent(defCfg.MONTHS_LONG.key, refreshLocale, this, true); - this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_1CHAR.key, refreshLocale, this, true); - this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_SHORT.key, refreshLocale, this, true); - this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_MEDIUM.key, refreshLocale, this, true); - this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_LONG.key, refreshLocale, this, true); - - /** - * The setting that determines which length of month labels should be used. Possible values are "short" and "long". - * @config LOCALE_MONTHS - * @type String - * @default "long" - */ - this.cfg.addProperty(defCfg.LOCALE_MONTHS.key, { value:defCfg.LOCALE_MONTHS.value, handler:this.configLocaleValues } ); - - /** - * The setting that determines which length of weekday labels should be used. Possible values are "1char", "short", "medium", and "long". - * @config LOCALE_WEEKDAYS - * @type String - * @default "short" - */ - this.cfg.addProperty(defCfg.LOCALE_WEEKDAYS.key, { value:defCfg.LOCALE_WEEKDAYS.value, handler:this.configLocaleValues } ); - - /** - * The value used to delimit individual dates in a date string passed to various Calendar functions. - * @config DATE_DELIMITER - * @type String - * @default "," - */ - this.cfg.addProperty(defCfg.DATE_DELIMITER.key, { value:defCfg.DATE_DELIMITER.value, handler:this.configLocale } ); - - /** - * The value used to delimit date fields in a date string passed to various Calendar functions. - * @config DATE_FIELD_DELIMITER - * @type String - * @default "/" - */ - this.cfg.addProperty(defCfg.DATE_FIELD_DELIMITER.key, { value:defCfg.DATE_FIELD_DELIMITER.value, handler:this.configLocale } ); - - /** - * The value used to delimit date ranges in a date string passed to various Calendar functions. - * @config DATE_RANGE_DELIMITER - * @type String - * @default "-" - */ - this.cfg.addProperty(defCfg.DATE_RANGE_DELIMITER.key, { value:defCfg.DATE_RANGE_DELIMITER.value, handler:this.configLocale } ); - - /** - * The position of the month in a month/year date string - * @config MY_MONTH_POSITION - * @type Number - * @default 1 - */ - this.cfg.addProperty(defCfg.MY_MONTH_POSITION.key, { value:defCfg.MY_MONTH_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } ); - - /** - * The position of the year in a month/year date string - * @config MY_YEAR_POSITION - * @type Number - * @default 2 - */ - this.cfg.addProperty(defCfg.MY_YEAR_POSITION.key, { value:defCfg.MY_YEAR_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } ); - - /** - * The position of the month in a month/day date string - * @config MD_MONTH_POSITION - * @type Number - * @default 1 - */ - this.cfg.addProperty(defCfg.MD_MONTH_POSITION.key, { value:defCfg.MD_MONTH_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } ); - - /** - * The position of the day in a month/year date string - * @config MD_DAY_POSITION - * @type Number - * @default 2 - */ - this.cfg.addProperty(defCfg.MD_DAY_POSITION.key, { value:defCfg.MD_DAY_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } ); - - /** - * The position of the month in a month/day/year date string - * @config MDY_MONTH_POSITION - * @type Number - * @default 1 - */ - this.cfg.addProperty(defCfg.MDY_MONTH_POSITION.key, { value:defCfg.MDY_MONTH_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } ); - - /** - * The position of the day in a month/day/year date string - * @config MDY_DAY_POSITION - * @type Number - * @default 2 - */ - this.cfg.addProperty(defCfg.MDY_DAY_POSITION.key, { value:defCfg.MDY_DAY_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } ); - - /** - * The position of the year in a month/day/year date string - * @config MDY_YEAR_POSITION - * @type Number - * @default 3 - */ - this.cfg.addProperty(defCfg.MDY_YEAR_POSITION.key, { value:defCfg.MDY_YEAR_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } ); -}; - -/** -* The default handler for the "pagedate" property -* @method configPageDate -*/ -YAHOO.widget.Calendar.prototype.configPageDate = function(type, args, obj) { - this.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key, this._parsePageDate(args[0]), true); -}; - -/** -* The default handler for the "mindate" property -* @method configMinDate -*/ -YAHOO.widget.Calendar.prototype.configMinDate = function(type, args, obj) { - var val = args[0]; - if (YAHOO.lang.isString(val)) { - val = this._parseDate(val); - this.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MINDATE.key, new Date(val[0],(val[1]-1),val[2])); - } -}; - -/** -* The default handler for the "maxdate" property -* @method configMaxDate -*/ -YAHOO.widget.Calendar.prototype.configMaxDate = function(type, args, obj) { - var val = args[0]; - if (YAHOO.lang.isString(val)) { - val = this._parseDate(val); - this.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MAXDATE.key, new Date(val[0],(val[1]-1),val[2])); - } -}; - -/** -* The default handler for the "selected" property -* @method configSelected -*/ -YAHOO.widget.Calendar.prototype.configSelected = function(type, args, obj) { - var selected = args[0]; - var cfgSelected = YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key; - - if (selected) { - if (YAHOO.lang.isString(selected)) { - this.cfg.setProperty(cfgSelected, this._parseDates(selected), true); - } - } - if (! this._selectedDates) { - this._selectedDates = this.cfg.getProperty(cfgSelected); - } -}; - -/** -* The default handler for all configuration options properties -* @method configOptions -*/ -YAHOO.widget.Calendar.prototype.configOptions = function(type, args, obj) { - this.Options[type.toUpperCase()] = args[0]; -}; - -/** -* The default handler for all configuration locale properties -* @method configLocale -*/ -YAHOO.widget.Calendar.prototype.configLocale = function(type, args, obj) { - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - this.Locale[type.toUpperCase()] = args[0]; - - this.cfg.refireEvent(defCfg.LOCALE_MONTHS.key); - this.cfg.refireEvent(defCfg.LOCALE_WEEKDAYS.key); -}; - -/** -* The default handler for all configuration locale field length properties -* @method configLocaleValues -*/ -YAHOO.widget.Calendar.prototype.configLocaleValues = function(type, args, obj) { - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - - type = type.toLowerCase(); - var val = args[0]; - - switch (type) { - case defCfg.LOCALE_MONTHS.key: - switch (val) { - case YAHOO.widget.Calendar.SHORT: - this.Locale.LOCALE_MONTHS = this.cfg.getProperty(defCfg.MONTHS_SHORT.key).concat(); - break; - case YAHOO.widget.Calendar.LONG: - this.Locale.LOCALE_MONTHS = this.cfg.getProperty(defCfg.MONTHS_LONG.key).concat(); - break; - } - break; - case defCfg.LOCALE_WEEKDAYS.key: - switch (val) { - case YAHOO.widget.Calendar.ONE_CHAR: - this.Locale.LOCALE_WEEKDAYS = this.cfg.getProperty(defCfg.WEEKDAYS_1CHAR.key).concat(); - break; - case YAHOO.widget.Calendar.SHORT: - this.Locale.LOCALE_WEEKDAYS = this.cfg.getProperty(defCfg.WEEKDAYS_SHORT.key).concat(); - break; - case YAHOO.widget.Calendar.MEDIUM: - this.Locale.LOCALE_WEEKDAYS = this.cfg.getProperty(defCfg.WEEKDAYS_MEDIUM.key).concat(); - break; - case YAHOO.widget.Calendar.LONG: - this.Locale.LOCALE_WEEKDAYS = this.cfg.getProperty(defCfg.WEEKDAYS_LONG.key).concat(); - break; - } - - var START_WEEKDAY = this.cfg.getProperty(defCfg.START_WEEKDAY.key); - - if (START_WEEKDAY > 0) { - for (var w=0;w'; - html[html.length] = '
        '; - - var renderLeft, renderRight = false; - - if (this.parent) { - if (this.index === 0) { - renderLeft = true; - } - if (this.index == (this.parent.cfg.getProperty("pages") -1)) { - renderRight = true; - } - } else { - renderLeft = true; - renderRight = true; - } - - var cal = this.parent || this; - - if (renderLeft) { - var leftArrow = this.cfg.getProperty(defCfg.NAV_ARROW_LEFT.key); - // Check for deprecated customization - If someone set IMG_ROOT, but didn't set NAV_ARROW_LEFT, then set NAV_ARROW_LEFT to the old deprecated value - if (leftArrow === null && YAHOO.widget.Calendar.IMG_ROOT !== null) { - leftArrow = YAHOO.widget.Calendar.IMG_ROOT + DEPR_NAV_LEFT; - } - var leftStyle = (leftArrow === null) ? "" : ' style="background-image:url(' + leftArrow + ')"'; - html[html.length] = ' '; - } - - html[html.length] = this.buildMonthLabel(); - - if (renderRight) { - var rightArrow = this.cfg.getProperty(defCfg.NAV_ARROW_RIGHT.key); - if (rightArrow === null && YAHOO.widget.Calendar.IMG_ROOT !== null) { - rightArrow = YAHOO.widget.Calendar.IMG_ROOT + DEPR_NAV_RIGHT; - } - var rightStyle = (rightArrow === null) ? "" : ' style="background-image:url(' + rightArrow + ')"'; - html[html.length] = ' '; - } - - html[html.length] = '
        \n\n'; - - if (this.cfg.getProperty(defCfg.SHOW_WEEKDAYS.key)) { - html = this.buildWeekdays(html); - } - - html[html.length] = ''; - - return html; -}; - -/** -* Renders the Calendar's weekday headers. -* @method buildWeekdays -* @param {Array} html The current working HTML array -* @return {Array} The current working HTML array -*/ -YAHOO.widget.Calendar.prototype.buildWeekdays = function(html) { - - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - - html[html.length] = ''; - - if (this.cfg.getProperty(defCfg.SHOW_WEEK_HEADER.key)) { - html[html.length] = ' '; - } - - for(var i=0;i'; - } - - if (this.cfg.getProperty(defCfg.SHOW_WEEK_FOOTER.key)) { - html[html.length] = ' '; - } - - html[html.length] = ''; - - return html; -}; - -/** -* Renders the calendar body. -* @method renderBody -* @param {Date} workingDate The current working Date being used for the render process -* @param {Array} html The current working HTML array -* @return {Array} The current working HTML array -*/ -YAHOO.widget.Calendar.prototype.renderBody = function(workingDate, html) { - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - - var startDay = this.cfg.getProperty(defCfg.START_WEEKDAY.key); - - this.preMonthDays = workingDate.getDay(); - if (startDay > 0) { - this.preMonthDays -= startDay; - } - if (this.preMonthDays < 0) { - this.preMonthDays += 7; - } - - this.monthDays = YAHOO.widget.DateMath.findMonthEnd(workingDate).getDate(); - this.postMonthDays = YAHOO.widget.Calendar.DISPLAY_DAYS-this.preMonthDays-this.monthDays; - - workingDate = YAHOO.widget.DateMath.subtract(workingDate, YAHOO.widget.DateMath.DAY, this.preMonthDays); - - var weekNum,weekClass; - var weekPrefix = "w"; - var cellPrefix = "_cell"; - var workingDayPrefix = "wd"; - var dayPrefix = "d"; - - var cellRenderers; - var renderer; - - var todayYear = this.today.getFullYear(); - var todayMonth = this.today.getMonth(); - var todayDate = this.today.getDate(); - - var useDate = this.cfg.getProperty(defCfg.PAGEDATE.key); - var hideBlankWeeks = this.cfg.getProperty(defCfg.HIDE_BLANK_WEEKS.key); - var showWeekFooter = this.cfg.getProperty(defCfg.SHOW_WEEK_FOOTER.key); - var showWeekHeader = this.cfg.getProperty(defCfg.SHOW_WEEK_HEADER.key); - var mindate = this.cfg.getProperty(defCfg.MINDATE.key); - var maxdate = this.cfg.getProperty(defCfg.MAXDATE.key); - - if (mindate) { - mindate = YAHOO.widget.DateMath.clearTime(mindate); - } - if (maxdate) { - maxdate = YAHOO.widget.DateMath.clearTime(maxdate); - } - - html[html.length] = ''; - - var i = 0; - - var tempDiv = document.createElement("div"); - var cell = document.createElement("td"); - tempDiv.appendChild(cell); - - var jan1 = new Date(useDate.getFullYear(),0,1); - - var cal = this.parent || this; - - for (var r=0;r<6;r++) { - - weekNum = YAHOO.widget.DateMath.getWeekNumber(workingDate, useDate.getFullYear(), startDay); - weekClass = weekPrefix + weekNum; - - // Local OOM check for performance, since we already have pagedate - if (r !== 0 && hideBlankWeeks === true && workingDate.getMonth() != useDate.getMonth()) { - break; - } else { - - html[html.length] = ''; - - if (showWeekHeader) { html = this.renderRowHeader(weekNum, html); } - - for (var d=0;d<7;d++){ // Render actual days - - cellRenderers = []; - renderer = null; - - this.clearElement(cell); - cell.className = this.Style.CSS_CELL; - cell.id = this.id + cellPrefix + i; - - if (workingDate.getDate() == todayDate && - workingDate.getMonth() == todayMonth && - workingDate.getFullYear() == todayYear) { - cellRenderers[cellRenderers.length]=cal.renderCellStyleToday; - } - - var workingArray = [workingDate.getFullYear(),workingDate.getMonth()+1,workingDate.getDate()]; - this.cellDates[this.cellDates.length] = workingArray; // Add this date to cellDates - - // Local OOM check for performance, since we already have pagedate - if (workingDate.getMonth() != useDate.getMonth()) { - cellRenderers[cellRenderers.length]=cal.renderCellNotThisMonth; - } else { - YAHOO.util.Dom.addClass(cell, workingDayPrefix + workingDate.getDay()); - YAHOO.util.Dom.addClass(cell, dayPrefix + workingDate.getDate()); - - for (var s=0;s= d1.getTime() && workingDate.getTime() <= d2.getTime()) { - renderer = rArray[2]; - - if (workingDate.getTime()==d2.getTime()) { - this.renderStack.splice(s,1); - } - } - break; - case YAHOO.widget.Calendar.WEEKDAY: - - var weekday = rArray[1][0]; - if (workingDate.getDay()+1 == weekday) { - renderer = rArray[2]; - } - break; - case YAHOO.widget.Calendar.MONTH: - - month = rArray[1][0]; - if (workingDate.getMonth()+1 == month) { - renderer = rArray[2]; - } - break; - } - - if (renderer) { - cellRenderers[cellRenderers.length]=renderer; - } - } - - } - - if (this._indexOfSelectedFieldArray(workingArray) > -1) { - cellRenderers[cellRenderers.length]=cal.renderCellStyleSelected; - } - - if ((mindate && (workingDate.getTime() < mindate.getTime())) || - (maxdate && (workingDate.getTime() > maxdate.getTime())) - ) { - cellRenderers[cellRenderers.length]=cal.renderOutOfBoundsDate; - } else { - cellRenderers[cellRenderers.length]=cal.styleCellDefault; - cellRenderers[cellRenderers.length]=cal.renderCellDefault; - } - - for (var x=0; x < cellRenderers.length; ++x) { - if (cellRenderers[x].call(cal, workingDate, cell) == YAHOO.widget.Calendar.STOP_RENDER) { - break; - } - } - - workingDate.setTime(workingDate.getTime() + YAHOO.widget.DateMath.ONE_DAY_MS); - - if (i >= 0 && i <= 6) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_TOP); - } - if ((i % 7) === 0) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_LEFT); - } - if (((i+1) % 7) === 0) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_RIGHT); - } - - var postDays = this.postMonthDays; - if (hideBlankWeeks && postDays >= 7) { - var blankWeeks = Math.floor(postDays/7); - for (var p=0;p= ((this.preMonthDays+postDays+this.monthDays)-7)) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_BOTTOM); - } - - html[html.length] = tempDiv.innerHTML; - i++; - } - - if (showWeekFooter) { html = this.renderRowFooter(weekNum, html); } - - html[html.length] = ''; - } - } - - html[html.length] = ''; - - return html; -}; - -/** -* Renders the calendar footer. In the default implementation, there is -* no footer. -* @method renderFooter -* @param {Array} html The current working HTML array -* @return {Array} The current working HTML array -*/ -YAHOO.widget.Calendar.prototype.renderFooter = function(html) { return html; }; - -/** -* Renders the calendar after it has been configured. The render() method has a specific call chain that will execute -* when the method is called: renderHeader, renderBody, renderFooter. -* Refer to the documentation for those methods for information on -* individual render tasks. -* @method render -*/ -YAHOO.widget.Calendar.prototype.render = function() { - this.beforeRenderEvent.fire(); - - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - - // Find starting day of the current month - var workingDate = YAHOO.widget.DateMath.findMonthStart(this.cfg.getProperty(defCfg.PAGEDATE.key)); - - this.resetRenderers(); - this.cellDates.length = 0; - - YAHOO.util.Event.purgeElement(this.oDomContainer, true); - - var html = []; - - html[html.length] = ''; - html = this.renderHeader(html); - html = this.renderBody(workingDate, html); - html = this.renderFooter(html); - html[html.length] = '
        '; - - this.oDomContainer.innerHTML = html.join("\n"); - - this.applyListeners(); - this.cells = this.oDomContainer.getElementsByTagName("td"); - - this.cfg.refireEvent(defCfg.TITLE.key); - this.cfg.refireEvent(defCfg.CLOSE.key); - this.cfg.refireEvent(defCfg.IFRAME.key); - - this.renderEvent.fire(); -}; - -/** -* Applies the Calendar's DOM listeners to applicable elements. -* @method applyListeners -*/ -YAHOO.widget.Calendar.prototype.applyListeners = function() { - - var root = this.oDomContainer; - var cal = this.parent || this; - - var anchor = "a"; - var mousedown = "mousedown"; - - var linkLeft = YAHOO.util.Dom.getElementsByClassName(this.Style.CSS_NAV_LEFT, anchor, root); - var linkRight = YAHOO.util.Dom.getElementsByClassName(this.Style.CSS_NAV_RIGHT, anchor, root); - - if (linkLeft && linkLeft.length > 0) { - this.linkLeft = linkLeft[0]; - YAHOO.util.Event.addListener(this.linkLeft, mousedown, cal.previousMonth, cal, true); - } - - if (linkRight && linkRight.length > 0) { - this.linkRight = linkRight[0]; - YAHOO.util.Event.addListener(this.linkRight, mousedown, cal.nextMonth, cal, true); - } - - if (this.domEventMap) { - var el,elements; - for (var cls in this.domEventMap) { - if (YAHOO.lang.hasOwnProperty(this.domEventMap, cls)) { - var items = this.domEventMap[cls]; - - if (! (items instanceof Array)) { - items = [items]; - } - - for (var i=0;i'; - return html; -}; - -/** -* Renders the row footer for a week. -* @method renderRowFooter -* @param {Number} weekNum The week number of the current row -* @param {Array} cell The current working HTML array -*/ -YAHOO.widget.Calendar.prototype.renderRowFooter = function(weekNum, html) { - html[html.length] = '' + weekNum + ''; - return html; -}; - -/** -* Renders a single standard calendar cell in the calendar widget table. -* All logic for determining how a standard default cell will be rendered is -* encapsulated in this method, and must be accounted for when extending the -* widget class. -* @method renderCellDefault -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -*/ -YAHOO.widget.Calendar.prototype.renderCellDefault = function(workingDate, cell) { - cell.innerHTML = '' + this.buildDayLabel(workingDate) + ""; -}; - -/** -* Styles a selectable cell. -* @method styleCellDefault -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -*/ -YAHOO.widget.Calendar.prototype.styleCellDefault = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_SELECTABLE); -}; - - -/** -* Renders a single standard calendar cell using the CSS hightlight1 style -* @method renderCellStyleHighlight1 -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -*/ -YAHOO.widget.Calendar.prototype.renderCellStyleHighlight1 = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT1); -}; - -/** -* Renders a single standard calendar cell using the CSS hightlight2 style -* @method renderCellStyleHighlight2 -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -*/ -YAHOO.widget.Calendar.prototype.renderCellStyleHighlight2 = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT2); -}; - -/** -* Renders a single standard calendar cell using the CSS hightlight3 style -* @method renderCellStyleHighlight3 -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -*/ -YAHOO.widget.Calendar.prototype.renderCellStyleHighlight3 = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT3); -}; - -/** -* Renders a single standard calendar cell using the CSS hightlight4 style -* @method renderCellStyleHighlight4 -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -*/ -YAHOO.widget.Calendar.prototype.renderCellStyleHighlight4 = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT4); -}; - -/** -* Applies the default style used for rendering today's date to the current calendar cell -* @method renderCellStyleToday -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -*/ -YAHOO.widget.Calendar.prototype.renderCellStyleToday = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_TODAY); -}; - -/** -* Applies the default style used for rendering selected dates to the current calendar cell -* @method renderCellStyleSelected -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -* @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering -* should not be terminated -*/ -YAHOO.widget.Calendar.prototype.renderCellStyleSelected = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_SELECTED); -}; - -/** -* Applies the default style used for rendering dates that are not a part of the current -* month (preceding or trailing the cells for the current month) -* @method renderCellNotThisMonth -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -* @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering -* should not be terminated -*/ -YAHOO.widget.Calendar.prototype.renderCellNotThisMonth = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_OOM); - cell.innerHTML=workingDate.getDate(); - return YAHOO.widget.Calendar.STOP_RENDER; -}; - -/** -* Renders the current calendar cell as a non-selectable "black-out" date using the default -* restricted style. -* @method renderBodyCellRestricted -* @param {Date} workingDate The current working Date object being used to generate the calendar -* @param {HTMLTableCellElement} cell The current working cell in the calendar -* @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering -* should not be terminated -*/ -YAHOO.widget.Calendar.prototype.renderBodyCellRestricted = function(workingDate, cell) { - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL); - YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_RESTRICTED); - cell.innerHTML=workingDate.getDate(); - return YAHOO.widget.Calendar.STOP_RENDER; -}; - -// END BUILT-IN TABLE CELL RENDERERS - -// BEGIN MONTH NAVIGATION METHODS - -/** -* Adds the designated number of months to the current calendar month, and sets the current -* calendar page date to the new month. -* @method addMonths -* @param {Number} count The number of months to add to the current calendar -*/ -YAHOO.widget.Calendar.prototype.addMonths = function(count) { - var cfgPageDate = YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key; - this.cfg.setProperty(cfgPageDate, YAHOO.widget.DateMath.add(this.cfg.getProperty(cfgPageDate), YAHOO.widget.DateMath.MONTH, count)); - this.resetRenderers(); - this.changePageEvent.fire(); -}; - -/** -* Subtracts the designated number of months from the current calendar month, and sets the current -* calendar page date to the new month. -* @method subtractMonths -* @param {Number} count The number of months to subtract from the current calendar -*/ -YAHOO.widget.Calendar.prototype.subtractMonths = function(count) { - var cfgPageDate = YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key; - this.cfg.setProperty(cfgPageDate, YAHOO.widget.DateMath.subtract(this.cfg.getProperty(cfgPageDate), YAHOO.widget.DateMath.MONTH, count)); - this.resetRenderers(); - this.changePageEvent.fire(); -}; - -/** -* Adds the designated number of years to the current calendar, and sets the current -* calendar page date to the new month. -* @method addYears -* @param {Number} count The number of years to add to the current calendar -*/ -YAHOO.widget.Calendar.prototype.addYears = function(count) { - var cfgPageDate = YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key; - this.cfg.setProperty(cfgPageDate, YAHOO.widget.DateMath.add(this.cfg.getProperty(cfgPageDate), YAHOO.widget.DateMath.YEAR, count)); - this.resetRenderers(); - this.changePageEvent.fire(); -}; - -/** -* Subtcats the designated number of years from the current calendar, and sets the current -* calendar page date to the new month. -* @method subtractYears -* @param {Number} count The number of years to subtract from the current calendar -*/ -YAHOO.widget.Calendar.prototype.subtractYears = function(count) { - var cfgPageDate = YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key; - this.cfg.setProperty(cfgPageDate, YAHOO.widget.DateMath.subtract(this.cfg.getProperty(cfgPageDate), YAHOO.widget.DateMath.YEAR, count)); - this.resetRenderers(); - this.changePageEvent.fire(); -}; - -/** -* Navigates to the next month page in the calendar widget. -* @method nextMonth -*/ -YAHOO.widget.Calendar.prototype.nextMonth = function() { - this.addMonths(1); -}; - -/** -* Navigates to the previous month page in the calendar widget. -* @method previousMonth -*/ -YAHOO.widget.Calendar.prototype.previousMonth = function() { - this.subtractMonths(1); -}; - -/** -* Navigates to the next year in the currently selected month in the calendar widget. -* @method nextYear -*/ -YAHOO.widget.Calendar.prototype.nextYear = function() { - this.addYears(1); -}; - -/** -* Navigates to the previous year in the currently selected month in the calendar widget. -* @method previousYear -*/ -YAHOO.widget.Calendar.prototype.previousYear = function() { - this.subtractYears(1); -}; - -// END MONTH NAVIGATION METHODS - -// BEGIN SELECTION METHODS - -/** -* Resets the calendar widget to the originally selected month and year, and -* sets the calendar to the initial selection(s). -* @method reset -*/ -YAHOO.widget.Calendar.prototype.reset = function() { - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - this.cfg.resetProperty(defCfg.SELECTED.key); - this.cfg.resetProperty(defCfg.PAGEDATE.key); - this.resetEvent.fire(); -}; - -/** -* Clears the selected dates in the current calendar widget and sets the calendar -* to the current month and year. -* @method clear -*/ -YAHOO.widget.Calendar.prototype.clear = function() { - var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; - this.cfg.setProperty(defCfg.SELECTED.key, []); - this.cfg.setProperty(defCfg.PAGEDATE.key, new Date(this.today.getTime())); - this.clearEvent.fire(); -}; - -/** -* Selects a date or a collection of dates on the current calendar. This method, by default, -* does not call the render method explicitly. Once selection has completed, render must be -* called for the changes to be reflected visually. -* @method select -* @param {String/Date/Date[]} date The date string of dates to select in the current calendar. Valid formats are -* individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006). -* Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005). -* This method can also take a JavaScript Date object or an array of Date objects. -* @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected. -*/ -YAHOO.widget.Calendar.prototype.select = function(date) { - this.beforeSelectEvent.fire(); - - var cfgSelected = YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key; - - var selected = this.cfg.getProperty(cfgSelected); - var aToBeSelected = this._toFieldArray(date); - - for (var a=0;a -1) { - if (this.cfg.getProperty(defCfg.PAGEDATE.key).getMonth() == dCellDate.getMonth() && - this.cfg.getProperty(defCfg.PAGEDATE.key).getFullYear() == dCellDate.getFullYear()) { - YAHOO.util.Dom.removeClass(cell, this.Style.CSS_CELL_SELECTED); - } - - selected.splice(cellDateIndex, 1); - } - - if (this.parent) { - this.parent.cfg.setProperty(defCfg.SELECTED.key, selected); - } else { - this.cfg.setProperty(defCfg.SELECTED.key, selected); - } - - this.deselectEvent.fire(selectDate); - return this.getSelectedDates(); -}; - -/** -* Deselects all dates on the current calendar. -* @method deselectAll -* @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected. -* Assuming that this function executes properly, the return value should be an empty array. -* However, the empty array is returned for the sake of being able to check the selection status -* of the calendar. -*/ -YAHOO.widget.Calendar.prototype.deselectAll = function() { - this.beforeDeselectEvent.fire(); - - var cfgSelected = YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key; - - var selected = this.cfg.getProperty(cfgSelected); - var count = selected.length; - var sel = selected.concat(); - - if (this.parent) { - this.parent.cfg.setProperty(cfgSelected, []); - } else { - this.cfg.setProperty(cfgSelected, []); - } - - if (count > 0) { - this.deselectEvent.fire(sel); - } - - return this.getSelectedDates(); -}; - -// END SELECTION METHODS - -// BEGIN TYPE CONVERSION METHODS - -/** -* Converts a date (either a JavaScript Date object, or a date string) to the internal data structure -* used to represent dates: [[yyyy,mm,dd],[yyyy,mm,dd]]. -* @method _toFieldArray -* @private -* @param {String/Date/Date[]} date The date string of dates to deselect in the current calendar. Valid formats are -* individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006). -* Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005). -* This method can also take a JavaScript Date object or an array of Date objects. -* @return {Array[](Number[])} Array of date field arrays -*/ -YAHOO.widget.Calendar.prototype._toFieldArray = function(date) { - var returnDate = []; - - if (date instanceof Date) { - returnDate = [[date.getFullYear(), date.getMonth()+1, date.getDate()]]; - } else if (YAHOO.lang.isString(date)) { - returnDate = this._parseDates(date); - } else if (YAHOO.lang.isArray(date)) { - for (var i=0;i -*
        -*
        -* -* The tables for the calendars ("cal1_0" and "cal1_1") will be inserted into those containers. -* @namespace YAHOO.widget -* @class CalendarGroup -* @constructor -* @param {String} id The id of the table element that will represent the calendar widget -* @param {String} containerId The id of the container div element that will wrap the calendar table -* @param {Object} config The configuration object containing the Calendar's arguments -*/ -YAHOO.widget.CalendarGroup = function(id, containerId, config) { - if (arguments.length > 0) { - this.init(id, containerId, config); - } -}; - -/** -* Initializes the calendar group. All subclasses must call this method in order for the -* group to be initialized properly. -* @method init -* @param {String} id The id of the table element that will represent the calendar widget -* @param {String} containerId The id of the container div element that will wrap the calendar table -* @param {Object} config The configuration object containing the Calendar's arguments -*/ -YAHOO.widget.CalendarGroup.prototype.init = function(id, containerId, config) { - this.initEvents(); - this.initStyles(); - - /** - * The collection of Calendar pages contained within the CalendarGroup - * @property pages - * @type YAHOO.widget.Calendar[] - */ - this.pages = []; - - /** - * The unique id associated with the CalendarGroup - * @property id - * @type String - */ - this.id = id; - - /** - * The unique id associated with the CalendarGroup container - * @property containerId - * @type String - */ - this.containerId = containerId; - - /** - * The outer containing element for the CalendarGroup - * @property oDomContainer - * @type HTMLElement - */ - this.oDomContainer = document.getElementById(containerId); - - YAHOO.util.Dom.addClass(this.oDomContainer, YAHOO.widget.CalendarGroup.CSS_CONTAINER); - YAHOO.util.Dom.addClass(this.oDomContainer, YAHOO.widget.CalendarGroup.CSS_MULTI_UP); - - /** - * The Config object used to hold the configuration variables for the CalendarGroup - * @property cfg - * @type YAHOO.util.Config - */ - this.cfg = new YAHOO.util.Config(this); - - /** - * The local object which contains the CalendarGroup's options - * @property Options - * @type Object - */ - this.Options = {}; - - /** - * The local object which contains the CalendarGroup's locale settings - * @property Locale - * @type Object - */ - this.Locale = {}; - - this.setupConfig(); - - if (config) { - this.cfg.applyConfig(config, true); - } - - this.cfg.fireQueue(); - - // OPERA HACK FOR MISWRAPPED FLOATS - if (this.browser == "opera"){ - var fixWidth = function() { - var startW = this.oDomContainer.offsetWidth; - var w = 0; - for (var p=0;p 0) { - this.oDomContainer.style.width = w + "px"; - } - }; - this.renderEvent.subscribe(fixWidth,this,true); - } -}; - - -YAHOO.widget.CalendarGroup.prototype.setupConfig = function() { - - var defCfg = YAHOO.widget.CalendarGroup._DEFAULT_CONFIG; - - /** - * The number of pages to include in the CalendarGroup. This value can only be set once, in the CalendarGroup's constructor arguments. - * @config pages - * @type Number - * @default 2 - */ - this.cfg.addProperty(defCfg.PAGES.key, { value:defCfg.PAGES.value, validator:this.cfg.checkNumber, handler:this.configPages } ); - - /** - * The month/year representing the current visible Calendar date (mm/yyyy) - * @config pagedate - * @type String - * @default today's date - */ - this.cfg.addProperty(defCfg.PAGEDATE.key, { value:new Date(), handler:this.configPageDate } ); - - /** - * The date or range of dates representing the current Calendar selection - * @config selected - * @type String - * @default [] - */ - this.cfg.addProperty(defCfg.SELECTED.key, { value:[], handler:this.configSelected } ); - - /** - * The title to display above the CalendarGroup's month header - * @config title - * @type String - * @default "" - */ - this.cfg.addProperty(defCfg.TITLE.key, { value:defCfg.TITLE.value, handler:this.configTitle } ); - - /** - * Whether or not a close button should be displayed for this CalendarGroup - * @config close - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.CLOSE.key, { value:defCfg.CLOSE.value, handler:this.configClose } ); - - /** - * Whether or not an iframe shim should be placed under the Calendar to prevent select boxes from bleeding through in Internet Explorer 6 and below. - * @config iframe - * @type Boolean - * @default true - */ - this.cfg.addProperty(defCfg.IFRAME.key, { value:defCfg.IFRAME.value, handler:this.configIframe, validator:this.cfg.checkBoolean } ); - - /** - * The minimum selectable date in the current Calendar (mm/dd/yyyy) - * @config mindate - * @type String - * @default null - */ - this.cfg.addProperty(defCfg.MINDATE.key, { value:defCfg.MINDATE.value, handler:this.delegateConfig } ); - - /** - * The maximum selectable date in the current Calendar (mm/dd/yyyy) - * @config maxdate - * @type String - * @default null - */ - this.cfg.addProperty(defCfg.MAXDATE.key, { value:defCfg.MAXDATE.value, handler:this.delegateConfig } ); - - // Options properties - - /** - * True if the Calendar should allow multiple selections. False by default. - * @config MULTI_SELECT - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.MULTI_SELECT.key, { value:defCfg.MULTI_SELECT.value, handler:this.delegateConfig, validator:this.cfg.checkBoolean } ); - - /** - * The weekday the week begins on. Default is 0 (Sunday). - * @config START_WEEKDAY - * @type number - * @default 0 - */ - this.cfg.addProperty(defCfg.START_WEEKDAY.key, { value:defCfg.START_WEEKDAY.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - - /** - * True if the Calendar should show weekday labels. True by default. - * @config SHOW_WEEKDAYS - * @type Boolean - * @default true - */ - this.cfg.addProperty(defCfg.SHOW_WEEKDAYS.key, { value:defCfg.SHOW_WEEKDAYS.value, handler:this.delegateConfig, validator:this.cfg.checkBoolean } ); - - /** - * True if the Calendar should show week row headers. False by default. - * @config SHOW_WEEK_HEADER - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.SHOW_WEEK_HEADER.key,{ value:defCfg.SHOW_WEEK_HEADER.value, handler:this.delegateConfig, validator:this.cfg.checkBoolean } ); - - /** - * True if the Calendar should show week row footers. False by default. - * @config SHOW_WEEK_FOOTER - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.SHOW_WEEK_FOOTER.key,{ value:defCfg.SHOW_WEEK_FOOTER.value, handler:this.delegateConfig, validator:this.cfg.checkBoolean } ); - - /** - * True if the Calendar should suppress weeks that are not a part of the current month. False by default. - * @config HIDE_BLANK_WEEKS - * @type Boolean - * @default false - */ - this.cfg.addProperty(defCfg.HIDE_BLANK_WEEKS.key,{ value:defCfg.HIDE_BLANK_WEEKS.value, handler:this.delegateConfig, validator:this.cfg.checkBoolean } ); - - /** - * The image that should be used for the left navigation arrow. - * @config NAV_ARROW_LEFT - * @type String - * @deprecated You can customize the image by overriding the default CSS class for the left arrow - "calnavleft" - * @default null - */ - this.cfg.addProperty(defCfg.NAV_ARROW_LEFT.key, { value:defCfg.NAV_ARROW_LEFT.value, handler:this.delegateConfig } ); - - /** - * The image that should be used for the right navigation arrow. - * @config NAV_ARROW_RIGHT - * @type String - * @deprecated You can customize the image by overriding the default CSS class for the right arrow - "calnavright" - * @default null - */ - this.cfg.addProperty(defCfg.NAV_ARROW_RIGHT.key, { value:defCfg.NAV_ARROW_RIGHT.value, handler:this.delegateConfig } ); - - // Locale properties - - /** - * The short month labels for the current locale. - * @config MONTHS_SHORT - * @type String[] - * @default ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] - */ - this.cfg.addProperty(defCfg.MONTHS_SHORT.key, { value:defCfg.MONTHS_SHORT.value, handler:this.delegateConfig } ); - - /** - * The long month labels for the current locale. - * @config MONTHS_LONG - * @type String[] - * @default ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" - */ - this.cfg.addProperty(defCfg.MONTHS_LONG.key, { value:defCfg.MONTHS_LONG.value, handler:this.delegateConfig } ); - - /** - * The 1-character weekday labels for the current locale. - * @config WEEKDAYS_1CHAR - * @type String[] - * @default ["S", "M", "T", "W", "T", "F", "S"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_1CHAR.key, { value:defCfg.WEEKDAYS_1CHAR.value, handler:this.delegateConfig } ); - - /** - * The short weekday labels for the current locale. - * @config WEEKDAYS_SHORT - * @type String[] - * @default ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_SHORT.key, { value:defCfg.WEEKDAYS_SHORT.value, handler:this.delegateConfig } ); - - /** - * The medium weekday labels for the current locale. - * @config WEEKDAYS_MEDIUM - * @type String[] - * @default ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_MEDIUM.key, { value:defCfg.WEEKDAYS_MEDIUM.value, handler:this.delegateConfig } ); - - /** - * The long weekday labels for the current locale. - * @config WEEKDAYS_LONG - * @type String[] - * @default ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] - */ - this.cfg.addProperty(defCfg.WEEKDAYS_LONG.key, { value:defCfg.WEEKDAYS_LONG.value, handler:this.delegateConfig } ); - - /** - * The setting that determines which length of month labels should be used. Possible values are "short" and "long". - * @config LOCALE_MONTHS - * @type String - * @default "long" - */ - this.cfg.addProperty(defCfg.LOCALE_MONTHS.key, { value:defCfg.LOCALE_MONTHS.value, handler:this.delegateConfig } ); - - /** - * The setting that determines which length of weekday labels should be used. Possible values are "1char", "short", "medium", and "long". - * @config LOCALE_WEEKDAYS - * @type String - * @default "short" - */ - this.cfg.addProperty(defCfg.LOCALE_WEEKDAYS.key, { value:defCfg.LOCALE_WEEKDAYS.value, handler:this.delegateConfig } ); - - /** - * The value used to delimit individual dates in a date string passed to various Calendar functions. - * @config DATE_DELIMITER - * @type String - * @default "," - */ - this.cfg.addProperty(defCfg.DATE_DELIMITER.key, { value:defCfg.DATE_DELIMITER.value, handler:this.delegateConfig } ); - - /** - * The value used to delimit date fields in a date string passed to various Calendar functions. - * @config DATE_FIELD_DELIMITER - * @type String - * @default "/" - */ - this.cfg.addProperty(defCfg.DATE_FIELD_DELIMITER.key,{ value:defCfg.DATE_FIELD_DELIMITER.value, handler:this.delegateConfig } ); - - /** - * The value used to delimit date ranges in a date string passed to various Calendar functions. - * @config DATE_RANGE_DELIMITER - * @type String - * @default "-" - */ - this.cfg.addProperty(defCfg.DATE_RANGE_DELIMITER.key,{ value:defCfg.DATE_RANGE_DELIMITER.value, handler:this.delegateConfig } ); - - /** - * The position of the month in a month/year date string - * @config MY_MONTH_POSITION - * @type Number - * @default 1 - */ - this.cfg.addProperty(defCfg.MY_MONTH_POSITION.key, { value:defCfg.MY_MONTH_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - - /** - * The position of the year in a month/year date string - * @config MY_YEAR_POSITION - * @type Number - * @default 2 - */ - this.cfg.addProperty(defCfg.MY_YEAR_POSITION.key, { value:defCfg.MY_YEAR_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - - /** - * The position of the month in a month/day date string - * @config MD_MONTH_POSITION - * @type Number - * @default 1 - */ - this.cfg.addProperty(defCfg.MD_MONTH_POSITION.key, { value:defCfg.MD_MONTH_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - - /** - * The position of the day in a month/year date string - * @config MD_DAY_POSITION - * @type Number - * @default 2 - */ - this.cfg.addProperty(defCfg.MD_DAY_POSITION.key, { value:defCfg.MD_DAY_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - - /** - * The position of the month in a month/day/year date string - * @config MDY_MONTH_POSITION - * @type Number - * @default 1 - */ - this.cfg.addProperty(defCfg.MDY_MONTH_POSITION.key, { value:defCfg.MDY_MONTH_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - - /** - * The position of the day in a month/day/year date string - * @config MDY_DAY_POSITION - * @type Number - * @default 2 - */ - this.cfg.addProperty(defCfg.MDY_DAY_POSITION.key, { value:defCfg.MDY_DAY_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - - /** - * The position of the year in a month/day/year date string - * @config MDY_YEAR_POSITION - * @type Number - * @default 3 - */ - this.cfg.addProperty(defCfg.MDY_YEAR_POSITION.key, { value:defCfg.MDY_YEAR_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } ); - -}; - -/** -* Initializes CalendarGroup's built-in CustomEvents -* @method initEvents -*/ -YAHOO.widget.CalendarGroup.prototype.initEvents = function() { - var me = this; - var strEvent = "Event"; - - /** - * Proxy subscriber to subscribe to the CalendarGroup's child Calendars' CustomEvents - * @method sub - * @private - * @param {Function} fn The function to subscribe to this CustomEvent - * @param {Object} obj The CustomEvent's scope object - * @param {Boolean} bOverride Whether or not to apply scope correction - */ - var sub = function(fn, obj, bOverride) { - for (var p=0;p 0) ? this.pages[0].cfg.getProperty(cfgSelected) : []; - this.cfg.setProperty(cfgSelected, selected, true); -}; - - -/** -* Delegates a configuration property to the CustomEvents associated with the CalendarGroup's children -* @method delegateConfig -* @param {String} type The CustomEvent type (usually the property name) -* @param {Object[]} args The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -* @param {Object} obj The scope object. For configuration handlers, this will usually equal the owner. -*/ -YAHOO.widget.CalendarGroup.prototype.delegateConfig = function(type, args, obj) { - var val = args[0]; - var cal; - - for (var p=0;p0) { - year+=1; - } - cal.setYear(year); - } -}; -/** -* Calls the render function of all child calendars within the group. -* @method render -*/ -YAHOO.widget.CalendarGroup.prototype.render = function() { - this.renderHeader(); - for (var p=0;p -*
      • If MULTI_SELECT is false, selectCell will select the cell at the specified index for only the last displayed Calendar page.
      • -*
      • If MULTI_SELECT is true, selectCell will select the cell at the specified index, on each displayed Calendar page.
      • -* -* @method selectCell -* @param {Number} cellIndex The index of the cell to be selected. -* @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected. -*/ -YAHOO.widget.CalendarGroup.prototype.selectCell = function(cellIndex) { - for (var p=0;p=0;--p) { - var cal = this.pages[p]; - cal.previousMonth(); - } -}; - -/** -* Navigates to the next year in the currently selected month in the calendar widget. -* @method nextYear -*/ -YAHOO.widget.CalendarGroup.prototype.nextYear = function() { - for (var p=0;p 11)) { - var DM = YAHOO.widget.DateMath; - var newDate = DM.add(date, DM.MONTH, iMonth-date.getMonth()); - date.setTime(newDate.getTime()); - } else { - date.setMonth(iMonth); - } -}; - - -/** -* CSS class representing the container for the calendar -* @property YAHOO.widget.CalendarGroup.CSS_CONTAINER -* @static -* @final -* @type String -*/ -YAHOO.widget.CalendarGroup.CSS_CONTAINER = "yui-calcontainer"; - -/** -* CSS class representing the container for the calendar -* @property YAHOO.widget.CalendarGroup.CSS_MULTI_UP -* @static -* @final -* @type String -*/ -YAHOO.widget.CalendarGroup.CSS_MULTI_UP = "multi"; - -/** -* CSS class representing the title for the 2-up calendar -* @property YAHOO.widget.CalendarGroup.CSS_2UPTITLE -* @static -* @final -* @type String -*/ -YAHOO.widget.CalendarGroup.CSS_2UPTITLE = "title"; - -/** -* CSS class representing the close icon for the 2-up calendar -* @property YAHOO.widget.CalendarGroup.CSS_2UPCLOSE -* @static -* @final -* @deprecated Along with Calendar.IMG_ROOT and NAV_ARROW_LEFT, NAV_ARROW_RIGHT configuration properties. -* Calendar's Style.CSS_CLOSE property now represents the CSS class used to render the close icon -* @type String -*/ -YAHOO.widget.CalendarGroup.CSS_2UPCLOSE = "close-icon"; - -YAHOO.augment(YAHOO.widget.CalendarGroup, YAHOO.widget.Calendar, "buildDayLabel", - "buildMonthLabel", - "renderOutOfBoundsDate", - "renderRowHeader", - "renderRowFooter", - "renderCellDefault", - "styleCellDefault", - "renderCellStyleHighlight1", - "renderCellStyleHighlight2", - "renderCellStyleHighlight3", - "renderCellStyleHighlight4", - "renderCellStyleToday", - "renderCellStyleSelected", - "renderCellNotThisMonth", - "renderBodyCellRestricted", - "initStyles", - "configTitle", - "configClose", - "configIframe", - "hide", - "show", - "browser"); - -/** -* The set of default Config property keys and values for the CalendarGroup -* @property YAHOO.widget.CalendarGroup._DEFAULT_CONFIG -* @final -* @static -* @private -* @type Object -*/ -YAHOO.widget.CalendarGroup._DEFAULT_CONFIG = YAHOO.widget.Calendar._DEFAULT_CONFIG; -YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGES = {key:"pages", value:2}; - -/** -* Returns a string representation of the object. -* @method toString -* @return {String} A string representation of the CalendarGroup object. -*/ -YAHOO.widget.CalendarGroup.prototype.toString = function() { - return "CalendarGroup " + this.id; -}; - -YAHOO.widget.CalGrp = YAHOO.widget.CalendarGroup; - -/** -* @class YAHOO.widget.Calendar2up -* @extends YAHOO.widget.CalendarGroup -* @deprecated The old Calendar2up class is no longer necessary, since CalendarGroup renders in a 2up view by default. -*/ -YAHOO.widget.Calendar2up = function(id, containerId, config) { - this.init(id, containerId, config); -}; - -YAHOO.extend(YAHOO.widget.Calendar2up, YAHOO.widget.CalendarGroup); - -/** -* @deprecated The old Calendar2up class is no longer necessary, since CalendarGroup renders in a 2up view by default. -*/ -YAHOO.widget.Cal2up = YAHOO.widget.Calendar2up; - -YAHOO.register("calendar", YAHOO.widget.Calendar, {version: "2.2.2", build: "204"}); diff --git a/www/extras/yui/build/connection/README b/www/extras/yui/build/connection/README deleted file mode 100644 index 69e251af4..000000000 --- a/www/extras/yui/build/connection/README +++ /dev/null @@ -1,206 +0,0 @@ -Connection Manager Release Notes - -*** version 2.2.2 *** - -* No revisions. - -*** version 2.2.1 *** - -* setForm() will include the correct name-value of the HTML Submit button -clicked where multiple HTML Submit button options are present in an HTML form. -To enable this feature, include the Event utility source file as a dependency -before the Connection Manager source file. - -* The XHR implementation in IE6 and IE7, Opera, and Safari do not properly -handle an HTTP 204 response. IE6/7 will instead return a Win error 1223. -handleTransactionResponse() will treat 1223 as an HTTP 204, and route the -response appropriately to the success callback. createResponseObject() will -normalize the response object's status and statusText values to 204 and "No -Content" respectively. However, no headers are returned. - -Opera and Safari provide no discernable response with HTTP 204(e.g., response -object's properties are undefined). This response will trigger the failure -callback with a status of 0 and statusText of "communication failure". - -*** version 2.2.0 *** - -* initHeader() now accepts a third argument as a boolean. When set to true, -this specific header will automatically be sent with each transaction. -Otherwise, the header will be set and sent for the specific transaction only. -Example: initHeader('X-YUI-State','Beta', true); all transactions will send this -header. - * resetDefaultHeaders() will clear the default headers collection. - -* All Connection Mananger transactions will broadcast the header: "X-Requested- -With: XMLHttpRequest". - * This can be turned off: YAHOO.util.Connect.setDefaultXhrHeader(false); - -* The HTTP method argument in asyncRequest is now case-insensitive. - -* uploadFile() will now correctly handle the absence of a callback object, -allowing the transaction to complete silently. - -*** version 0.12.2 *** - -* The Opera/Connection Manager concurrent object condition, described in version -0.12.0, no longer tests applies for Opera, version 9.10. - -*** version 0.12.1 *** - -* connection-debug.js corrected and synchronized with connection.js. Code -inconsistencies between the two files existed in 0.12.0. - -*** version 0.12.0 *** - -* When uploading files via setForm() and asyncRequest includes a POST data -argument, appendPostData() will create hidden input fields for each postData -label/value and append each field to the form object. - -* setForm() returns the assembled label/value string of the parsed HTML form -fields. - -* NOTE: Opera 9.02 does not allow for more than 12 concurrent Connection Manager -objects. - -The following example creates 12 requests in a loop: -for(var n=0; n<=12; i++){ - conn[n] = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback); -} - -If n > 13, Opera 9.02 will crash. Connection manager objects count n must be <= -12 at all times. This condition was not present in Opera version 9.01. - -This condition does not apply to other A-Grade browsers ( -http://developer.yahoo.com/yui/articles/gbs/gbs_browser-chart.html) - -*** version 0.11.3 *** - -* YUI Event dependency for file uploading is now optional. - -* uploadFile() now sets unique IDs for each file upload transaction to prevent -iframe collisions with parallel uploads. - -* The callback object now has property responseXML to provide support for file -upload transactions that return an XML document. - -* setForm() will verify if a select option value attribute is present and use -its value, including empty string, before using the text node value. - -* Modified polling mechanism in handleReadyState() and -handleTransactionResponse() to prevent infinite polling if JavaScript errors -occur in the user-defined callback. - -* createFrame() will now accept a boolean argument of true to set the frame -source to "javascript:false" to prevent IE from throwing security warnings in an -HTTPS environment. - -* setHeader() now enumerates through the _http_header object using -hasOwnProperty() to prevent collisions with members added to Object via -prototype. - -* If using setForm() and asyncRequest includes a POST data argument, the data -will be concatenated to the HTML form POST message. - -*** version 0.11.2 *** - -* No revisions. - -*** version 0.11.1 *** - -* uploadFile() now verifies the existence of callback.upload before invoking -callback, with or without object scope. - -*** version 0.11.0 *** - -* Each transaction can be defined with a timeout threshold, in milliseconds, -through the callback object. If the threshold is reached, and the transaction -hasn't yet completed, the transaction will call abort(). - -* abort() will now accept a callback object as the second argument. The -failure callback will receive a response object to indicate the transaction was -aborted. - -* setForm() will now support file uploads by setting the second argument to -true (e.g., YAHOO.util.Connect.setForm(formObject, true). File upload does not -use the callback success or failure handler. Instead, it uses a new callback -object handler: upload. - -* HTML form submit will no longer submit form fields without a defined name -attribute. - -* The default POST header of 'Content-Type','application/x-www-form-urlencoded' -can be overridden by calling setDefaultPostHeader(false). This -will remove the default header from non-HTML form, POST submissions. - -* setHeader() now enumerates through the _http_header object with -propertyIsEnumerable to prevent collisions with members added to Object via -prototype. - -*** version 0.10.0 *** - -* handleTransactionResponse() now treats the full HTTP 2xx range as a success -case, instead of just HTTP 200. - -* To accommodate multiple field values in Mozilla/Firefox, multiple initHeader -calls with the same label will now result in the values concatenated to a -comma- delimited string value. -Example: -Setting Content-Type:'application/x-www-form-urlencoded' and Content- -Type:'text/xml' will result in Content-Type:'application/x-www-form-urlencoded, -text/xml'. - -* Default polling interval lowered to 50ms. - -* YAHOO.util.Connect.setPollingInterval() will allow you to set a polling -interval -- in milliseconds -- to override the default value. - -* YAHOO.util.Connect.getResponseHeader[headerLabel] now supported as a response -object property to provide symmetry with the native XHR object's property. -Example: -YAHOO.util.Connect.getResponseHeader['Content-Length'] will return the value -for the Content-Length header, if the header is available. - -* YAHOO.util.Connect.allResponseHeaders property renamed to -getAllResponseHeaders to provide symmetry with the native XHR object's -property. - -* YAHOO.util.Connect.setForm() now supports HTTP GET as well as HTTP POST. - -* YAHOO.util.Connect.setForm() now accepts an HTML form object as well as its -name attribute value. - -* YAHOO.util.Connect.setForm() will not submit HTML form fields that are -disabled or do not have a name attribute value. - -* [FIXED] Response exceptions result in infinite callback loop in -Mozilla/Firefox. - -* [FIXED] YAHOO.util.Connect.abort() now properly clears polling interval. - -* [FIXED] isCallInProgress() now verifies whether XHR instance still exists, -and returns false if the connection object is no longer available. - -*** version 0.9.0 *** - -* Initial release - - - - - - - - - - - - - - - - - - - - - diff --git a/www/extras/yui/build/connection/connection-debug.js b/www/extras/yui/build/connection/connection-debug.js deleted file mode 100644 index 7d3c7168d..000000000 --- a/www/extras/yui/build/connection/connection-debug.js +++ /dev/null @@ -1,1129 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -/** - * The Connection Manager provides a simplified interface to the XMLHttpRequest - * object. It handles cross-browser instantiantion of XMLHttpRequest, negotiates the - * interactive states and server response, returning the results to a pre-defined - * callback you create. - * - * @namespace YAHOO.util - * @module connection - * @requires yahoo - */ - -/** - * The Connection Manager singleton provides methods for creating and managing - * asynchronous transactions. - * - * @class Connect - */ - -YAHOO.util.Connect = -{ - /** - * @description Array of MSFT ActiveX ids for XMLHttpRequest. - * @property _msxml_progid - * @private - * @static - * @type array - */ - _msxml_progid:[ - 'MSXML2.XMLHTTP.3.0', - 'MSXML2.XMLHTTP', - 'Microsoft.XMLHTTP' - ], - - /** - * @description Object literal of HTTP header(s) - * @property _http_header - * @private - * @static - * @type object - */ - _http_headers:{}, - - /** - * @description Determines if HTTP headers are set. - * @property _has_http_headers - * @private - * @static - * @type boolean - */ - _has_http_headers:false, - - /** - * @description Determines if a default header of - * Content-Type of 'application/x-www-form-urlencoded' - * will be added to any client HTTP headers sent for POST - * transactions. - * @property _use_default_post_header - * @private - * @static - * @type boolean - */ - _use_default_post_header:true, - - /** - * @description Determines if a default header of - * Content-Type of 'application/x-www-form-urlencoded' - * will be added to client HTTP headers sent for POST - * transactions. - * @property _default_post_header - * @private - * @static - * @type boolean - */ - _default_post_header:'application/x-www-form-urlencoded; charset=UTF-8', - - /** - * @description Determines if a default header of - * 'X-Requested-With: XMLHttpRequest' - * will be added to each transaction. - * @property _use_default_xhr_header - * @private - * @static - * @type boolean - */ - _use_default_xhr_header:true, - - /** - * @description The default header value for the label - * "X-Requested-With". This is sent with each - * transaction, by default, to identify the - * request as being made by YUI Connection Manager. - * @property _default_xhr_header - * @private - * @static - * @type boolean - */ - _default_xhr_header:'XMLHttpRequest', - - /** - * @description Determines if custom, default headers - * are set for each transaction. - * @property _has_default_header - * @private - * @static - * @type boolean - */ - _has_default_headers:true, - - /** - * @description Determines if custom, default headers - * are set for each transaction. - * @property _has_default_header - * @private - * @static - * @type boolean - */ - _default_headers:{}, - - /** - * @description Property modified by setForm() to determine if the data - * should be submitted as an HTML form. - * @property _isFormSubmit - * @private - * @static - * @type boolean - */ - _isFormSubmit:false, - - /** - * @description Property modified by setForm() to determine if a file(s) - * upload is expected. - * @property _isFileUpload - * @private - * @static - * @type boolean - */ - _isFileUpload:false, - - /** - * @description Property modified by setForm() to set a reference to the HTML - * form node if the desired action is file upload. - * @property _formNode - * @private - * @static - * @type object - */ - _formNode:null, - - /** - * @description Property modified by setForm() to set the HTML form data - * for each transaction. - * @property _sFormData - * @private - * @static - * @type string - */ - _sFormData:null, - - /** - * @description Collection of polling references to the polling mechanism in handleReadyState. - * @property _poll - * @private - * @static - * @type object - */ - _poll:{}, - - /** - * @description Queue of timeout values for each transaction callback with a defined timeout value. - * @property _timeOut - * @private - * @static - * @type object - */ - _timeOut:{}, - - /** - * @description The polling frequency, in milliseconds, for HandleReadyState. - * when attempting to determine a transaction's XHR readyState. - * The default is 50 milliseconds. - * @property _polling_interval - * @private - * @static - * @type int - */ - _polling_interval:50, - - /** - * @description A transaction counter that increments the transaction id for each transaction. - * @property _transaction_id - * @private - * @static - * @type int - */ - _transaction_id:0, - - /** - * @description Tracks the name-value pair of the "clicked" submit button if multiple submit - * buttons are present in an HTML form; and, if YAHOO.util.Event is available. - * @property _submitElementValue - * @private - * @static - * @type string - */ - _submitElementValue:null, - - /** - * @description Determines whether YAHOO.util.Event is available and returns true or false. - * If true, an event listener is bound at the document level to trap click events that - * resolve to a target type of "Submit". This listener will enable setForm() to determine - * the clicked "Submit" value in a multi-Submit button, HTML form. - * @property _hasSubmitListener - * @private - * @static - * @type boolean - */ - _hasSubmitListener:(function() - { - if(YAHOO.util.Event){ - YAHOO.util.Event.addListener( - document, - 'click', - function(e){ - var obj = YAHOO.util.Event.getTarget(e); - if(obj.type == 'submit'){ - YAHOO.util.Connect._submitElementValue = encodeURIComponent(obj.name) + "=" + encodeURIComponent(obj.value); - } - }) - return true; - } - return false; - })(), - - /** - * @description Member to add an ActiveX id to the existing xml_progid array. - * In the event(unlikely) a new ActiveX id is introduced, it can be added - * without internal code modifications. - * @method setProgId - * @public - * @static - * @param {string} id The ActiveX id to be added to initialize the XHR object. - * @return void - */ - setProgId:function(id) - { - this._msxml_progid.unshift(id); - YAHOO.log('ActiveX Program Id ' + id + ' added to _msxml_progid.', 'info', 'Connection'); - }, - - /** - * @description Member to enable or disable the default POST header. - * @method setDefaultPostHeader - * @public - * @static - * @param {boolean} b Set and use default header - true or false . - * @return void - */ - setDefaultPostHeader:function(b) - { - this._use_default_post_header = b; - YAHOO.log('Use default POST header set to ' + b, 'info', 'Connection'); - }, - - /** - * @description Member to enable or disable the default POST header. - * @method setDefaultXhrHeader - * @public - * @static - * @param {boolean} b Set and use default header - true or false . - * @return void - */ - setDefaultXhrHeader:function(b) - { - this._use_default_xhr_header = b; - YAHOO.log('Use default transaction header set to ' + b, 'info', 'Connection'); - }, - - /** - * @description Member to modify the default polling interval. - * @method setPollingInterval - * @public - * @static - * @param {int} i The polling interval in milliseconds. - * @return void - */ - setPollingInterval:function(i) - { - if(typeof i == 'number' && isFinite(i)){ - this._polling_interval = i; - YAHOO.log('Default polling interval set to ' + i +'ms', 'info', 'Connection'); - } - }, - - /** - * @description Instantiates a XMLHttpRequest object and returns an object with two properties: - * the XMLHttpRequest instance and the transaction id. - * @method createXhrObject - * @private - * @static - * @param {int} transactionId Property containing the transaction id for this transaction. - * @return object - */ - createXhrObject:function(transactionId) - { - var obj,http; - try - { - // Instantiates XMLHttpRequest in non-IE browsers and assigns to http. - http = new XMLHttpRequest(); - // Object literal with http and tId properties - obj = { conn:http, tId:transactionId }; - YAHOO.log('XHR object created for transaction ' + transactionId, 'info', 'Connection'); - } - catch(e) - { - for(var i=0; i= 200 && httpStatus < 300 || httpStatus === 1223){ - responseObject = this.createResponseObject(o, callback.argument); - if(callback.success){ - if(!callback.scope){ - callback.success(responseObject); - YAHOO.log('Success callback. HTTP code is ' + httpStatus, 'info', 'Connection'); - } - else{ - // If a scope property is defined, the callback will be fired from - // the context of the object. - callback.success.apply(callback.scope, [responseObject]); - YAHOO.log('Success callback with scope. HTTP code is ' + httpStatus, 'info', 'Connection'); - } - } - } - else{ - switch(httpStatus){ - // The following cases are wininet.dll error codes that may be encountered. - case 12002: // Server timeout - case 12029: // 12029 to 12031 correspond to dropped connections. - case 12030: - case 12031: - case 12152: // Connection closed by server. - case 13030: // See above comments for variable status. - responseObject = this.createExceptionObject(o.tId, callback.argument, (isAbort?isAbort:false)); - if(callback.failure){ - if(!callback.scope){ - callback.failure(responseObject); - YAHOO.log('Failure callback. Exception detected. Status code is ' + httpStatus, 'warn', 'Connection'); - } - else{ - callback.failure.apply(callback.scope, [responseObject]); - YAHOO.log('Failure callback with scope. Exception detected. Status code is ' + httpStatus, 'warn', 'Connection'); - } - } - break; - default: - responseObject = this.createResponseObject(o, callback.argument); - if(callback.failure){ - if(!callback.scope){ - callback.failure(responseObject); - YAHOO.log('Failure callback. HTTP status code is ' + httpStatus, 'warn', 'Connection'); - } - else{ - callback.failure.apply(callback.scope, [responseObject]); - YAHOO.log('Failure callback with scope. HTTP status code is ' + httpStatus, 'warn', 'Connection'); - } - } - } - } - - this.releaseObject(o); - responseObject = null; - }, - - /** - * @description This method evaluates the server response, creates and returns the results via - * its properties. Success and failure cases will differ in the response - * object's property values. - * @method createResponseObject - * @private - * @static - * @param {object} o The connection object - * @param {callbackArg} callbackArg The user-defined argument or arguments to be passed to the callback - * @return {object} - */ - createResponseObject:function(o, callbackArg) - { - var obj = {}; - var headerObj = {}; - - try - { - var headerStr = o.conn.getAllResponseHeaders(); - var header = headerStr.split('\n'); - for(var i=0; i'); - - // IE will throw a security exception in an SSL environment if the - // iframe source is undefined. - if(typeof secureUri == 'boolean'){ - io.src = 'javascript:false'; - } - else if(typeof secureURI == 'string'){ - // Deprecated - io.src = secureUri; - } - } - else{ - var io = document.createElement('iframe'); - io.id = frameId; - io.name = frameId; - } - - io.style.position = 'absolute'; - io.style.top = '-1000px'; - io.style.left = '-1000px'; - - document.body.appendChild(io); - YAHOO.log('File upload iframe created. Id is:' + frameId, 'info', 'Connection'); - }, - - /** - * @description Parses the POST data and creates hidden form elements - * for each key-value, and appends them to the HTML form object. - * @method appendPostData - * @private - * @static - * @param {string} postData The HTTP POST data - * @return {array} formElements Collection of hidden fields. - */ - appendPostData:function(postData) - { - var formElements = []; - var postMessage = postData.split('&'); - for(var i=0; i < postMessage.length; i++){ - var delimitPos = postMessage[i].indexOf('='); - if(delimitPos != -1){ - formElements[i] = document.createElement('input'); - formElements[i].type = 'hidden'; - formElements[i].name = postMessage[i].substring(0,delimitPos); - formElements[i].value = postMessage[i].substring(delimitPos+1); - this._formNode.appendChild(formElements[i]); - } - } - - return formElements; - }, - - /** - * @description Uploads HTML form, including files/attachments, to the - * iframe created in createFrame. - * @method uploadFile - * @private - * @static - * @param {int} id The transaction id. - * @param {object} callback - User-defined callback object. - * @param {string} uri Fully qualified path of resource. - * @return {void} - */ - uploadFile:function(id, callback, uri, postData){ - - // Each iframe has an id prefix of "yuiIO" followed - // by the unique transaction id. - var frameId = 'yuiIO' + id; - var uploadEncoding = 'multipart/form-data'; - var io = document.getElementById(frameId); - - // Initialize the HTML form properties in case they are - // not defined in the HTML form. - this._formNode.setAttribute('action', uri); - this._formNode.setAttribute('method', 'POST'); - this._formNode.setAttribute("target", frameId); - - if(this._formNode.encoding){ - // IE does not respect property enctype for HTML forms. - // Instead it uses the property - "encoding". - this._formNode.encoding = uploadEncoding; - } - else{ - this._formNode.enctype = uploadEncoding; - } - - - if(postData){ - var oElements = this.appendPostData(postData); - } - - this._formNode.submit(); - - if(oElements && oElements.length > 0){ - for(var i=0; i < oElements.length; i++){ - this._formNode.removeChild(oElements[i]); - } - } - - // Reset HTML form status properties. - this.resetFormState(); - - // Create the upload callback handler that fires when the iframe - // receives the load event. Subsequently, the event handler is detached - // and the iframe removed from the document. - - var uploadCallback = function() - { - var obj = {}; - obj.tId = id; - obj.argument = callback.argument; - - try - { - obj.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null; - obj.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document; - } - catch(e){} - - if(callback && callback.upload){ - if(!callback.scope){ - callback.upload(obj); - YAHOO.log('Upload callback.', 'info', 'Connection'); - } - else{ - callback.upload.apply(callback.scope, [obj]); - YAHOO.log('Upload callback with scope.', 'info', 'Connection'); - } - } - - if(YAHOO.util.Event){ - YAHOO.util.Event.removeListener(io, "load", uploadCallback); - } - else if(window.detachEvent){ - io.detachEvent('onload', uploadCallback); - } - else{ - io.removeEventListener('load', uploadCallback, false); - } - setTimeout( - function(){ - document.body.removeChild(io); - YAHOO.log('File upload iframe destroyed. Id is:' + frameId, 'info', 'Connection'); - }, 100); - }; - - - // Bind the onload handler to the iframe to detect the file upload response. - if(YAHOO.util.Event){ - YAHOO.util.Event.addListener(io, "load", uploadCallback); - } - else if(window.attachEvent){ - io.attachEvent('onload', uploadCallback); - } - else{ - io.addEventListener('load', uploadCallback, false); - } - }, - - /** - * @description Method to terminate a transaction, if it has not reached readyState 4. - * @method abort - * @public - * @static - * @param {object} o The connection object returned by asyncRequest. - * @param {object} callback User-defined callback object. - * @param {string} isTimeout boolean to indicate if abort was a timeout. - * @return {boolean} - */ - abort:function(o, callback, isTimeout) - { - if(this.isCallInProgress(o)){ - o.conn.abort(); - window.clearInterval(this._poll[o.tId]); - delete this._poll[o.tId]; - if(isTimeout){ - delete this._timeOut[o.tId]; - } - - this.handleTransactionResponse(o, callback, true); - YAHOO.log('Transaction ' + o.tId + ' aborted.', 'info', 'Connection'); - - return true; - } - else{ - YAHOO.log('Transaction ' + o.tId + ' abort call failed.', 'warn', 'Connection'); - return false; - } - }, - - /** - * Public method to check if the transaction is still being processed. - * - * @method isCallInProgress - * @public - * @static - * @param {object} o The connection object returned by asyncRequest - * @return {boolean} - */ - isCallInProgress:function(o) - { - // if the XHR object assigned to the transaction has not been dereferenced, - // then check its readyState status. Otherwise, return false. - if(o.conn){ - return o.conn.readyState !== 4 && o.conn.readyState !== 0; - } - else{ - //The XHR object has been destroyed. - return false; - } - }, - - /** - * @description Dereference the XHR instance and the connection object after the transaction is completed. - * @method releaseObject - * @private - * @static - * @param {object} o The connection object - * @return {void} - */ - releaseObject:function(o) - { - //dereference the XHR instance. - o.conn = null; - YAHOO.log('Connection object for transaction ' + o.tId + ' destroyed.', 'info', 'Connection'); - //dereference the connection object. - o = null; - } -}; - -YAHOO.register("connection", YAHOO.util.Connect, {version: "2.2.2", build: "204"}); diff --git a/www/extras/yui/build/connection/connection-min.js b/www/extras/yui/build/connection/connection-min.js deleted file mode 100644 index 0118f4089..000000000 --- a/www/extras/yui/build/connection/connection-min.js +++ /dev/null @@ -1,109 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ - -YAHOO.util.Connect={_msxml_progid:['MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'],_http_headers:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:'application/x-www-form-urlencoded; charset=UTF-8',_use_default_xhr_header:true,_default_xhr_header:'XMLHttpRequest',_has_default_headers:true,_default_headers:{},_isFormSubmit:false,_isFileUpload:false,_formNode:null,_sFormData:null,_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,_submitElementValue:null,_hasSubmitListener:(function() -{if(YAHOO.util.Event){YAHOO.util.Event.addListener(document,'click',function(e){var obj=YAHOO.util.Event.getTarget(e);if(obj.type=='submit'){YAHOO.util.Connect._submitElementValue=encodeURIComponent(obj.name)+"="+encodeURIComponent(obj.value);}}) -return true;} -return false;})(),setProgId:function(id) -{this._msxml_progid.unshift(id);},setDefaultPostHeader:function(b) -{this._use_default_post_header=b;},setDefaultXhrHeader:function(b) -{this._use_default_xhr_header=b;},setPollingInterval:function(i) -{if(typeof i=='number'&&isFinite(i)){this._polling_interval=i;}},createXhrObject:function(transactionId) -{var obj,http;try -{http=new XMLHttpRequest();obj={conn:http,tId:transactionId};} -catch(e) -{for(var i=0;i=200&&httpStatus<300||httpStatus===1223){responseObject=this.createResponseObject(o,callback.argument);if(callback.success){if(!callback.scope){callback.success(responseObject);} -else{callback.success.apply(callback.scope,[responseObject]);}}} -else{switch(httpStatus){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:responseObject=this.createExceptionObject(o.tId,callback.argument,(isAbort?isAbort:false));if(callback.failure){if(!callback.scope){callback.failure(responseObject);} -else{callback.failure.apply(callback.scope,[responseObject]);}} -break;default:responseObject=this.createResponseObject(o,callback.argument);if(callback.failure){if(!callback.scope){callback.failure(responseObject);} -else{callback.failure.apply(callback.scope,[responseObject]);}}}} -this.releaseObject(o);responseObject=null;},createResponseObject:function(o,callbackArg) -{var obj={};var headerObj={};try -{var headerStr=o.conn.getAllResponseHeaders();var header=headerStr.split('\n');for(var i=0;i');if(typeof secureUri=='boolean'){io.src='javascript:false';} -else if(typeof secureURI=='string'){io.src=secureUri;}} -else{var io=document.createElement('iframe');io.id=frameId;io.name=frameId;} -io.style.position='absolute';io.style.top='-1000px';io.style.left='-1000px';document.body.appendChild(io);},appendPostData:function(postData) -{var formElements=[];var postMessage=postData.split('&');for(var i=0;i0){for(var i=0;i= 200 && httpStatus < 300 || httpStatus === 1223){ - responseObject = this.createResponseObject(o, callback.argument); - if(callback.success){ - if(!callback.scope){ - callback.success(responseObject); - } - else{ - // If a scope property is defined, the callback will be fired from - // the context of the object. - callback.success.apply(callback.scope, [responseObject]); - } - } - } - else{ - switch(httpStatus){ - // The following cases are wininet.dll error codes that may be encountered. - case 12002: // Server timeout - case 12029: // 12029 to 12031 correspond to dropped connections. - case 12030: - case 12031: - case 12152: // Connection closed by server. - case 13030: // See above comments for variable status. - responseObject = this.createExceptionObject(o.tId, callback.argument, (isAbort?isAbort:false)); - if(callback.failure){ - if(!callback.scope){ - callback.failure(responseObject); - } - else{ - callback.failure.apply(callback.scope, [responseObject]); - } - } - break; - default: - responseObject = this.createResponseObject(o, callback.argument); - if(callback.failure){ - if(!callback.scope){ - callback.failure(responseObject); - } - else{ - callback.failure.apply(callback.scope, [responseObject]); - } - } - } - } - - this.releaseObject(o); - responseObject = null; - }, - - /** - * @description This method evaluates the server response, creates and returns the results via - * its properties. Success and failure cases will differ in the response - * object's property values. - * @method createResponseObject - * @private - * @static - * @param {object} o The connection object - * @param {callbackArg} callbackArg The user-defined argument or arguments to be passed to the callback - * @return {object} - */ - createResponseObject:function(o, callbackArg) - { - var obj = {}; - var headerObj = {}; - - try - { - var headerStr = o.conn.getAllResponseHeaders(); - var header = headerStr.split('\n'); - for(var i=0; i'); - - // IE will throw a security exception in an SSL environment if the - // iframe source is undefined. - if(typeof secureUri == 'boolean'){ - io.src = 'javascript:false'; - } - else if(typeof secureURI == 'string'){ - // Deprecated - io.src = secureUri; - } - } - else{ - var io = document.createElement('iframe'); - io.id = frameId; - io.name = frameId; - } - - io.style.position = 'absolute'; - io.style.top = '-1000px'; - io.style.left = '-1000px'; - - document.body.appendChild(io); - }, - - /** - * @description Parses the POST data and creates hidden form elements - * for each key-value, and appends them to the HTML form object. - * @method appendPostData - * @private - * @static - * @param {string} postData The HTTP POST data - * @return {array} formElements Collection of hidden fields. - */ - appendPostData:function(postData) - { - var formElements = []; - var postMessage = postData.split('&'); - for(var i=0; i < postMessage.length; i++){ - var delimitPos = postMessage[i].indexOf('='); - if(delimitPos != -1){ - formElements[i] = document.createElement('input'); - formElements[i].type = 'hidden'; - formElements[i].name = postMessage[i].substring(0,delimitPos); - formElements[i].value = postMessage[i].substring(delimitPos+1); - this._formNode.appendChild(formElements[i]); - } - } - - return formElements; - }, - - /** - * @description Uploads HTML form, including files/attachments, to the - * iframe created in createFrame. - * @method uploadFile - * @private - * @static - * @param {int} id The transaction id. - * @param {object} callback - User-defined callback object. - * @param {string} uri Fully qualified path of resource. - * @return {void} - */ - uploadFile:function(id, callback, uri, postData){ - - // Each iframe has an id prefix of "yuiIO" followed - // by the unique transaction id. - var frameId = 'yuiIO' + id; - var uploadEncoding = 'multipart/form-data'; - var io = document.getElementById(frameId); - - // Initialize the HTML form properties in case they are - // not defined in the HTML form. - this._formNode.setAttribute('action', uri); - this._formNode.setAttribute('method', 'POST'); - this._formNode.setAttribute("target", frameId); - - if(this._formNode.encoding){ - // IE does not respect property enctype for HTML forms. - // Instead it uses the property - "encoding". - this._formNode.encoding = uploadEncoding; - } - else{ - this._formNode.enctype = uploadEncoding; - } - - - if(postData){ - var oElements = this.appendPostData(postData); - } - - this._formNode.submit(); - - if(oElements && oElements.length > 0){ - for(var i=0; i < oElements.length; i++){ - this._formNode.removeChild(oElements[i]); - } - } - - // Reset HTML form status properties. - this.resetFormState(); - - // Create the upload callback handler that fires when the iframe - // receives the load event. Subsequently, the event handler is detached - // and the iframe removed from the document. - - var uploadCallback = function() - { - var obj = {}; - obj.tId = id; - obj.argument = callback.argument; - - try - { - obj.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null; - obj.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document; - } - catch(e){} - - if(callback && callback.upload){ - if(!callback.scope){ - callback.upload(obj); - } - else{ - callback.upload.apply(callback.scope, [obj]); - } - } - - if(YAHOO.util.Event){ - YAHOO.util.Event.removeListener(io, "load", uploadCallback); - } - else if(window.detachEvent){ - io.detachEvent('onload', uploadCallback); - } - else{ - io.removeEventListener('load', uploadCallback, false); - } - setTimeout( - function(){ - document.body.removeChild(io); - }, 100); - }; - - - // Bind the onload handler to the iframe to detect the file upload response. - if(YAHOO.util.Event){ - YAHOO.util.Event.addListener(io, "load", uploadCallback); - } - else if(window.attachEvent){ - io.attachEvent('onload', uploadCallback); - } - else{ - io.addEventListener('load', uploadCallback, false); - } - }, - - /** - * @description Method to terminate a transaction, if it has not reached readyState 4. - * @method abort - * @public - * @static - * @param {object} o The connection object returned by asyncRequest. - * @param {object} callback User-defined callback object. - * @param {string} isTimeout boolean to indicate if abort was a timeout. - * @return {boolean} - */ - abort:function(o, callback, isTimeout) - { - if(this.isCallInProgress(o)){ - o.conn.abort(); - window.clearInterval(this._poll[o.tId]); - delete this._poll[o.tId]; - if(isTimeout){ - delete this._timeOut[o.tId]; - } - - this.handleTransactionResponse(o, callback, true); - - return true; - } - else{ - return false; - } - }, - - /** - * Public method to check if the transaction is still being processed. - * - * @method isCallInProgress - * @public - * @static - * @param {object} o The connection object returned by asyncRequest - * @return {boolean} - */ - isCallInProgress:function(o) - { - // if the XHR object assigned to the transaction has not been dereferenced, - // then check its readyState status. Otherwise, return false. - if(o.conn){ - return o.conn.readyState !== 4 && o.conn.readyState !== 0; - } - else{ - //The XHR object has been destroyed. - return false; - } - }, - - /** - * @description Dereference the XHR instance and the connection object after the transaction is completed. - * @method releaseObject - * @private - * @static - * @param {object} o The connection object - * @return {void} - */ - releaseObject:function(o) - { - //dereference the XHR instance. - o.conn = null; - //dereference the connection object. - o = null; - } -}; - -YAHOO.register("connection", YAHOO.util.Connect, {version: "2.2.2", build: "204"}); diff --git a/www/extras/yui/build/container/README b/www/extras/yui/build/container/README deleted file mode 100644 index f9f5690db..000000000 --- a/www/extras/yui/build/container/README +++ /dev/null @@ -1,277 +0,0 @@ -Container Release Notes - -*** version 2.2.2 *** - -+ Clicking the close button of a Panel (or any instance of a Panel subclass) - registered with an OverlayManager will no longer result in the Panel - receiving focus. - -+ Overlay instances registered with an OverlayManager will now correctly - blur themselves when hidden. - -+ Calling the "destroy" method of an Overlay instance will now result in it - being removed from its OverlayManager instance(s). - -+ The DOM event listener for the event defined by the "focusevent" - configuration property of an OverlayManager instance is now removed from each - Overlay instance when it is removed from its OverlayManager. - -+ All subscribers for an Overlay instance's "focus" and "blur" events are - now unsubscribed when it is removed from its OverlayManager. - - -*** version 2.2.1 *** - -+ Made the default scope for all Custom Events published by Module, Overlay, - Panel, Tooltip, Dialog and SimpleDialog the widget instance. Previously the - default scope for Custom Events was inconsistent across classes; the default - scope for Custom Events published by Overlay was always the Overlay instance - whereas the Custom Events published by all of the other classes had no - default scope. - -+ Added default scope for CustomEvents published by YAHOO.util.Config: - - Default scope for the "configChangedEvent" is now the Config instance. - - Default scope for Config property events is now the Config's owner (widget). - -+ Panel and Tooltip now always convert the value of a DOM element's "tagName" - property to uppercase before evaluating it. This improves - XHTML compatibility. - -+ Pressing the enter key while focused on a form field inside a Dialog will - now trigger the "click" event handler defined by the Dialog's default - button in IE and Firefox. Previously, this behavior only worked in Safari - and Opera. - -+ Added a "yui" prefix to the default CSS class name for Module to be - consistent with the other Container family widgets. - -+ Container/Panel's underlay shadow is now defined as partially-transparent - black rather than gray. This prevents the shadow from lightening the - background color of elements beneath it. - -+ Fixed memory leaks in Panel and Dialog. - -+ The Drag and Drop library is now a truly optional dependency for Panel and its - subclasses. - -+ Panel "focus" and "blur" events are now fired when Panels are focused and - blurred via the "focus" and "blurAll" methods of YAHOO.widget.OverlayManager. - -+ Panel instances rendered without setting the value for the "width" - configuration property will now have their "width" configuration - property set to the value of the Panel's element's "offsetWidth" property - when rendered. This fixes an issue in IE 6 and 7 where Panels that are - rendered without setting the "width" configuration property will only be - draggable by mousing down on the text inside the header, rather than anywhere - inside the header. - -+ Refactored the Container family including the Config class to improve - performance, especially when working with a large number of instances in IE6. - - - -*** version 2.2.0 *** - - Module - - Removed hardcoded file paths for image roots. Affected properties - include: - - YAHOO.widget.Module.IMG_ROOT - - YAHOO.widget.Module.IMG_ROOT_SSL - - HTML elements, created via createElement, now use lowercase. - - Panel - - To shield against CSS class collision, the following references now - have a "yui-" prefix: - - YAHOO.widget.Panel.CSS_PANEL now references CSS class "yui- - panel". - - YAHOO.widget.Panel.CSS_PANEL_CONTAINER now references CSS class - "yui-panel-container". - - Close button can now be configured via the CSS class "container- - close". - - HTML elements, created via createElement, now use lowercase. - - Dialog - - To shield against CSS class collision, the following references now - have a "yui-" prefix: - - YAHOO.widget.Dialog.CSS_DIALOG now references CSS class "yui- - dialog". - - HTML elements, created via createElement, now use lowercase. - - SimpleDialog - - Removed hardcoded file paths for SimpleDialog icons, which are now - configurable in CSS: - - YAHOO.widget.SimpleDialog.ICON_BLOCK now references CSS class - "blckicon". - - YAHOO.widget.SimpleDialog.ICON_ALARM now references CSS class - "alrticon". - - YAHOO.widget.SimpleDialog.ICON_HELP now references CSS class - "hlpicon". - - YAHOO.widget.SimpleDialog.ICON_INFO now references CSS class - "infoicon". - - YAHOO.widget.SimpleDialog.ICON_WARN now references CSS class - "warnicon". - - YAHOO.widget.SimpleDialog.ICON_TIP now references CSS class - "tipicon". - - To provide shield against CSS class collision the following - references now have a "yui-" prefix: - - YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG now references CSS - class "yui-simple-dialog"; - - Tooltip - - To shield against CSS class collision, the following references now - have a "yui-" prefix: - - YAHOO.widget.Tooltip.CSS_TOOLTIP now references CSS class "yui- - tipicon" "yui-tt"; - -*** version 0.12.2 *** - - Module - - Corrected issue where listener was not properly removed from resize - monitor element when "monitorresize" is disabled - - Panel - - Fixed issue that would sometimes prevent select lists from working - properly in Firefox - - Dialog - - Fixed error that would occur when trying to create a Dialog where - the first form element is set to "disabled" - - Modified "close" property handler for Dialog/SimpleDialog to call - "cancel" instead of "hide" - -*** version 0.12.1 *** - - All Classes - - "monitorresize" property now functions in situations where - document.domain has been modified. - - YAHOO.widget.Module.textResizeEvent now fires when the font size is - changed (except for Opera, which uses "zoom" functionality that - prevents this) - - Event listeners attached to container elements are now properly - purged on destroy using YAHOO.util.Event.purgeElement - - Panel - - Fixed issue where focus events were broken on the page when a modal - Panel was created - - Dialog - - Fixed bug where hitting "enter" on a Dialog was forcing the default - submission behavior of the form's action to execute - - Dialog no longer tries to give focus to hidden form elements. - - Replaced   references in Panel with   for XHTML - compliance. - - Fixed issue that was preventing Safari from successfully using the - getData() function - -*** version 0.12 *** - - All Classes - - New documentation format implemented, and removed unnecessary - prototype null references previously used for generating - documentation - - Config - - Added 'undefined' check when reading initial properties for - .reset() - - Fixed Firefox warning on .resetProperty() - - Fixed issue preventing resetProperty() from resetting values - correctly - - Module - - Removed unused "childNodesInDom" property - - Overlay - - Converted center() to use Dom utility - - Fixed configVisible() to properly detect actual visible/hidden - status in Internet Explorer, which reports "inherit" for all elements - by default. - - Updated onDomResize to properly reapply "context" property - - Unified scroll/resize handlers so that they fire properly (when the - event has completed) as opposed to constantly (as seen in Mozilla- - based browsers) - - Panel - - Modified modality mask to show before Panel is shown (prior to any - animation) - - Modified buildWrapper to eliminate cloning of the initial markup - module, which fixes issues with select options not maintaining their - default selections in IE - - Modality mask is now z-indexed properly so that the mask z-index is - always one less than the Panel z-index - - Dialog - - Fixed Connection to get "action" attribute using getAttribute, to - allow for form fields named "action" - - Added support for "GET" by retrieving the form "method" rather than - always defaulting to "POST" - - KeyListener - - Fixed to work properly with Safari 2.0 by matching against keyCode - or charCode - -*** version 0.11.4 *** - - - Panel: Modality mask is now properly removed from DOM on Panel - destroy. - -*** version 0.11.3 *** - - - Module: Fixed SSL warning issue in IE - - Overlay: Fixed memory leak related to iframe shim in IE - - Panel: No focusable elements under the mask can now be tabbed to - - Panel: Set Panel container overflow to hidden to fix scrolling issue - in Opera 9 - -*** version 0.11.2 *** - - - All: JsLint optimization - - Overlay: Fixed SSL issues with monitorresize property - - OverlayManager: Fixed z-index incrementing issues - - Dialog: Form elements called "name" will now function properly - - Dialog: Removed unnecessary scope:this reference - -*** version 0.11.1 *** - - - Tooltip: Removed incorrect logger statement - - Dialog: Corrected logic that was causing browser lockup in IE for - SimpleDialog - - Dialog: Fixed "firstButtom" typo - -*** version 0.11.0 *** - - - toString function added to all classes for easy logging - - YAHOO.extend is now being used for inheritance on all container - classes - - Module: monitorresize feature now works on all browsers - - Module: Fixed bug with image root and isSecure - - Overlay: Fixed bugs related to IFRAME shim positioning - - Overlay: center() now works in quirks mode - - Overlay: Overlay now has a custom destroy() method that also removes - the IFRAME shim - - OverlayManager: Fixed bug in the prototype that was preventing - multiple Managers on one page - - OverlayManager: focusEvent now fires at all appropriate times - - Tooltip: context can now be specified as an array, so Tooltips can be - reused across multiple context elements - - Tooltip: preventoverlap now functions properly for large context - elements (i.e, images) - - Tooltip: fixed bugs regarding setTimeout - - Tooltip: added mousemove event to allow for more accurate Tooltip - positioning - - Panel: added dragEvent for monitoring all event handlers for drag and - drop - - Panel: modality mask is now resized on scroll - - Panel: KeyListeners are now properly destroyed when the Panel is - destroyed - - Panel: Header is now sized properly in quirks mode - - Dialog: Blinking cursor issue is fixed for Firefox - - Dialog: callback object for Connection is now public (this.callback) - - Dialog: onsuccess/onfailure properties removed (as a result of the - public callback object) - - Dialog: Dialog is now invisible by default - - Dialog: Buttons are now properly cleaned up on destroy - -*** version 0.10.0 *** - -* Initial release - diff --git a/www/extras/yui/build/container/assets/alrt16_1.gif b/www/extras/yui/build/container/assets/alrt16_1.gif deleted file mode 100644 index 443d39bbf..000000000 Binary files a/www/extras/yui/build/container/assets/alrt16_1.gif and /dev/null differ diff --git a/www/extras/yui/build/container/assets/blck16_1.gif b/www/extras/yui/build/container/assets/blck16_1.gif deleted file mode 100644 index 56689611d..000000000 Binary files a/www/extras/yui/build/container/assets/blck16_1.gif and /dev/null differ diff --git a/www/extras/yui/build/container/assets/close12_1.gif b/www/extras/yui/build/container/assets/close12_1.gif deleted file mode 100644 index e2f67d72e..000000000 Binary files a/www/extras/yui/build/container/assets/close12_1.gif and /dev/null differ diff --git a/www/extras/yui/build/container/assets/container.css b/www/extras/yui/build/container/assets/container.css deleted file mode 100644 index a0ae3a921..000000000 --- a/www/extras/yui/build/container/assets/container.css +++ /dev/null @@ -1,233 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -.yui-overlay { - position:absolute; - display:block; -} - -.yui-tt { - visibility:hidden; - position:absolute; - color:#333; - background-color:#FDFFB4; - font-family:arial,helvetica,verdana,sans-serif; - padding:2px; - border:1px solid #FCC90D; - font:100% sans-serif; - width:auto; -} - -* html body.masked select { - visibility:hidden; -} - -* html div.yui-panel-container select { - visibility:inherit; -} - -* html div.drag select { - visibility:hidden; -} - -* html div.hide-select select { - visibility:hidden; -} - -.mask { - z-index:0; - display:none; - position:absolute; - top:0; - left:0; - -moz-opacity: 0.5; - opacity:.50; - filter: alpha(opacity=50); - background-color:#CCC; -} - -.hide-scrollbars * { - overflow:hidden; -} - -.hide-scrollbars textarea, .hide-scrollbars select { - overflow:hidden; - display:none; -} - -.show-scrollbars textarea, .show-scrollbars select { - overflow:visible; -} - -.yui-panel-container { - position:absolute; - background-color:transparent; - z-index:6; - visibility:hidden; - overflow:visible; - width:auto; -} - -.yui-panel-container.focused { -} - - -.yui-panel-container.matte { - padding:3px; - background-color:#FFF; -} - -.yui-panel-container.matte .underlay { - display:none; -} - -.yui-panel-container.shadow { - padding:0px; - background-color:transparent; -} - -.yui-panel-container.shadow .underlay { - visibility:inherit; - position:absolute; - background-color:#000; - top:3px;left:3px; - z-index:0; - width:100%; - height:100%; - -moz-opacity: 0.12; - opacity:.12; - filter:alpha(opacity=12); - zoom:1; -} - -.yui-panel { - visibility:hidden; - border-collapse:separate; - position:relative; - left:0px;top:0px; - font:1em Arial; - background-color:#FFF; - border:1px solid #000; - z-index:1; - overflow:hidden; -} - -.yui-panel .hd { - background-color:#3d77cb; - color:#FFF; - font-size:100%; - line-height:100%; - border:1px solid #FFF; - border-bottom:1px solid #000; - font-weight:bold; - overflow:hidden; - padding:4px; -} - -.yui-panel .bd { - overflow:hidden; - padding:4px; -} - -.yui-panel .bd p { - margin:0 0 1em; -} - -.yui-panel .container-close { - position:absolute; - top:5px; - right:4px; - z-index:6; - height:12px; - width:12px; - margin:0px; - padding:0px; - background:url(close12_1.gif) no-repeat; - cursor:pointer; - visibility:inherit; -} - -.yui-panel .ft { - padding:4px; - overflow:hidden; -} - -.yui-simple-dialog .bd .yui-icon { - background-repeat:no-repeat; - width:16px; - height:16px; - margin-right:10px; - float:left; -} - -.yui-simple-dialog .bd span.blckicon { - background: url("blck16_1.gif") no-repeat; -} - -.yui-simple-dialog .bd span.alrticon { - background: url("alrt16_1.gif") no-repeat; -} - -.yui-simple-dialog .bd span.hlpicon { - background: url("hlp16_1.gif") no-repeat; -} - -.yui-simple-dialog .bd span.infoicon { - background: url("info16_1.gif") no-repeat; -} - -.yui-simple-dialog .bd span.warnicon { - background: url("warn16_1.gif") no-repeat; -} - -.yui-simple-dialog .bd span.tipicon { - background: url("tip16_1.gif") no-repeat; -} - -.yui-dialog .ft, -.yui-simple-dialog .ft { - padding-bottom:5px; - padding-right:5px; - text-align:right; -} - -.yui-dialog form, -.yui-simple-dialog form { - margin:0; -} - -.button-group button { - font:100 76% verdana; - text-decoration:none; - background-color: #E4E4E4; - color: #333; - cursor: hand; - vertical-align: middle; - border: 2px solid #797979; - border-top-color:#FFF; - border-left-color:#FFF; - margin:2px; - padding:2px; -} - -.button-group button.default { - font-weight:bold; -} - -.button-group button:hover, -.button-group button.hover { - border:2px solid #90A029; - background-color:#EBF09E; - border-top-color:#FFF; - border-left-color:#FFF; -} - -.button-group button:active { - border:2px solid #E4E4E4; - background-color:#BBB; - border-top-color:#333; - border-left-color:#333; -} \ No newline at end of file diff --git a/www/extras/yui/build/container/assets/hlp16_1.gif b/www/extras/yui/build/container/assets/hlp16_1.gif deleted file mode 100644 index 4645c8fdf..000000000 Binary files a/www/extras/yui/build/container/assets/hlp16_1.gif and /dev/null differ diff --git a/www/extras/yui/build/container/assets/info16_1.gif b/www/extras/yui/build/container/assets/info16_1.gif deleted file mode 100644 index 22f697a99..000000000 Binary files a/www/extras/yui/build/container/assets/info16_1.gif and /dev/null differ diff --git a/www/extras/yui/build/container/assets/tip16_1.gif b/www/extras/yui/build/container/assets/tip16_1.gif deleted file mode 100644 index 8f0be2b8d..000000000 Binary files a/www/extras/yui/build/container/assets/tip16_1.gif and /dev/null differ diff --git a/www/extras/yui/build/container/assets/warn16_1.gif b/www/extras/yui/build/container/assets/warn16_1.gif deleted file mode 100644 index d679df5aa..000000000 Binary files a/www/extras/yui/build/container/assets/warn16_1.gif and /dev/null differ diff --git a/www/extras/yui/build/container/container-debug.js b/www/extras/yui/build/container/container-debug.js deleted file mode 100644 index 18ce2d441..000000000 --- a/www/extras/yui/build/container/container-debug.js +++ /dev/null @@ -1,5487 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -/** -* Config is a utility used within an Object to allow the implementer to maintain a list of local configuration properties and listen for changes to those properties dynamically using CustomEvent. The initial values are also maintained so that the configuration can be reset at any given point to its initial state. -* @namespace YAHOO.util -* @class Config -* @constructor -* @param {Object} owner The owner Object to which this Config Object belongs -*/ -YAHOO.util.Config = function(owner) { - if (owner) { - this.init(owner); - } - if (!owner) { YAHOO.log("No owner specified for Config object", "error"); } -}; - -/** - * Constant representing the CustomEvent type for the config changed event. - * @property YAHOO.util.Config.CONFIG_CHANGED_EVENT - * @private - * @static - * @final - */ -YAHOO.util.Config.CONFIG_CHANGED_EVENT = "configChanged"; - -/** - * Constant representing the boolean type string - * @property YAHOO.util.Config.BOOLEAN_TYPE - * @private - * @static - * @final - */ -YAHOO.util.Config.BOOLEAN_TYPE = "boolean"; - -YAHOO.util.Config.prototype = { - - /** - * Object reference to the owner of this Config Object - * @property owner - * @type Object - */ - owner : null, - - /** - * Boolean flag that specifies whether a queue is currently being executed - * @property queueInProgress - * @type Boolean - */ - queueInProgress : false, - - /** - * Maintains the local collection of configuration property objects and their specified values - * @property config - * @private - * @type Object - */ - config : null, - - /** - * Maintains the local collection of configuration property objects as they were initially applied. - * This object is used when resetting a property. - * @property initialConfig - * @private - * @type Object - */ - initialConfig : null, - - /** - * Maintains the local, normalized CustomEvent queue - * @property eventQueue - * @private - * @type Object - */ - eventQueue : null, - - /** - * Custom Event, notifying subscribers when Config properties are set (setProperty is called without the silent flag - * @event configChangedEvent - */ - configChangedEvent : null, - - /** - * Validates that the value passed in is a Boolean. - * @method checkBoolean - * @param {Object} val The value to validate - * @return {Boolean} true, if the value is valid - */ - checkBoolean: function(val) { - return (typeof val == YAHOO.util.Config.BOOLEAN_TYPE); - }, - - /** - * Validates that the value passed in is a number. - * @method checkNumber - * @param {Object} val The value to validate - * @return {Boolean} true, if the value is valid - */ - checkNumber: function(val) { - return (!isNaN(val)); - }, - - /** - * Fires a configuration property event using the specified value. - * @method fireEvent - * @private - * @param {String} key The configuration property's name - * @param {value} Object The value of the correct type for the property - */ - fireEvent : function( key, value ) { - YAHOO.log("Firing Config event: " + key + "=" + value, "info"); - var property = this.config[key]; - - if (property && property.event) { - property.event.fire(value); - } - }, - - /** - * Adds a property to the Config Object's private config hash. - * @method addProperty - * @param {String} key The configuration property's name - * @param {Object} propertyObject The Object containing all of this property's arguments - */ - addProperty : function( key, propertyObject ) { - key = key.toLowerCase(); - YAHOO.log("Added property: " + key, "info"); - - this.config[key] = propertyObject; - - propertyObject.event = new YAHOO.util.CustomEvent(key, this.owner); - propertyObject.key = key; - - if (propertyObject.handler) { - propertyObject.event.subscribe(propertyObject.handler, this.owner); - } - - this.setProperty(key, propertyObject.value, true); - - if (! propertyObject.suppressEvent) { - this.queueProperty(key, propertyObject.value); - } - - }, - - /** - * Returns a key-value configuration map of the values currently set in the Config Object. - * @method getConfig - * @return {Object} The current config, represented in a key-value map - */ - getConfig : function() { - var cfg = {}; - - for (var prop in this.config) { - var property = this.config[prop]; - if (property && property.event) { - cfg[prop] = property.value; - } - } - - return cfg; - }, - - /** - * Returns the value of specified property. - * @method getProperty - * @param {String} key The name of the property - * @return {Object} The value of the specified property - */ - getProperty : function(key) { - var property = this.config[key.toLowerCase()]; - if (property && property.event) { - return property.value; - } else { - return undefined; - } - }, - - /** - * Resets the specified property's value to its initial value. - * @method resetProperty - * @param {String} key The name of the property - * @return {Boolean} True is the property was reset, false if not - */ - resetProperty : function(key) { - key = key.toLowerCase(); - - var property = this.config[key]; - if (property && property.event) { - if (this.initialConfig[key] && !YAHOO.lang.isUndefined(this.initialConfig[key])) { - this.setProperty(key, this.initialConfig[key]); - } - return true; - } else { - return false; - } - }, - - /** - * Sets the value of a property. If the silent property is passed as true, the property's event will not be fired. - * @method setProperty - * @param {String} key The name of the property - * @param {String} value The value to set the property to - * @param {Boolean} silent Whether the value should be set silently, without firing the property event. - * @return {Boolean} True, if the set was successful, false if it failed. - */ - setProperty : function(key, value, silent) { - key = key.toLowerCase(); - YAHOO.log("setProperty: " + key + "=" + value, "info"); - - if (this.queueInProgress && ! silent) { - this.queueProperty(key,value); // Currently running through a queue... - return true; - } else { - var property = this.config[key]; - if (property && property.event) { - if (property.validator && ! property.validator(value)) { // validator - return false; - } else { - property.value = value; - if (! silent) { - this.fireEvent(key, value); - this.configChangedEvent.fire([key, value]); - } - return true; - } - } else { - return false; - } - } - }, - - /** - * Sets the value of a property and queues its event to execute. If the event is already scheduled to execute, it is - * moved from its current position to the end of the queue. - * @method queueProperty - * @param {String} key The name of the property - * @param {String} value The value to set the property to - * @return {Boolean} true, if the set was successful, false if it failed. - */ - queueProperty : function(key, value) { - key = key.toLowerCase(); - YAHOO.log("queueProperty: " + key + "=" + value, "info"); - - var property = this.config[key]; - - if (property && property.event) { - if (!YAHOO.lang.isUndefined(value) && property.validator && ! property.validator(value)) { // validator - return false; - } else { - - if (!YAHOO.lang.isUndefined(value)) { - property.value = value; - } else { - value = property.value; - } - - var foundDuplicate = false; - var iLen = this.eventQueue.length; - for (var i=0; i < iLen; i++) { - var queueItem = this.eventQueue[i]; - - if (queueItem) { - var queueItemKey = queueItem[0]; - var queueItemValue = queueItem[1]; - - if (queueItemKey == key) { - // found a dupe... push to end of queue, null current item, and break - this.eventQueue[i] = null; - this.eventQueue.push([key, (!YAHOO.lang.isUndefined(value) ? value : queueItemValue)]); - foundDuplicate = true; - break; - } - } - } - - if (! foundDuplicate && !YAHOO.lang.isUndefined(value)) { // this is a refire, or a new property in the queue - this.eventQueue.push([key, value]); - } - } - - if (property.supercedes) { - var sLen = property.supercedes.length; - for (var s=0; s < sLen; s++) { - var supercedesCheck = property.supercedes[s]; - var qLen = this.eventQueue.length; - for (var q=0; q < qLen; q++) { - var queueItemCheck = this.eventQueue[q]; - - if (queueItemCheck) { - var queueItemCheckKey = queueItemCheck[0]; - var queueItemCheckValue = queueItemCheck[1]; - - if ( queueItemCheckKey == supercedesCheck.toLowerCase() ) { - this.eventQueue.push([queueItemCheckKey, queueItemCheckValue]); - this.eventQueue[q] = null; - break; - } - } - } - } - } - YAHOO.log("Config event queue: " + this.outputEventQueue(), "info"); - - return true; - } else { - return false; - } - }, - - /** - * Fires the event for a property using the property's current value. - * @method refireEvent - * @param {String} key The name of the property - */ - refireEvent : function(key) { - key = key.toLowerCase(); - - var property = this.config[key]; - if (property && property.event && !YAHOO.lang.isUndefined(property.value)) { - if (this.queueInProgress) { - this.queueProperty(key); - } else { - this.fireEvent(key, property.value); - } - } - }, - - /** - * Applies a key-value Object literal to the configuration, replacing any existing values, and queueing the property events. - * Although the values will be set, fireQueue() must be called for their associated events to execute. - * @method applyConfig - * @param {Object} userConfig The configuration Object literal - * @param {Boolean} init When set to true, the initialConfig will be set to the userConfig passed in, so that calling a reset will reset the properties to the passed values. - */ - applyConfig : function(userConfig, init) { - if (init) { - this.initialConfig = userConfig; - } - for (var prop in userConfig) { - this.queueProperty(prop, userConfig[prop]); - } - }, - - /** - * Refires the events for all configuration properties using their current values. - * @method refresh - */ - refresh : function() { - for (var prop in this.config) { - this.refireEvent(prop); - } - }, - - /** - * Fires the normalized list of queued property change events - * @method fireQueue - */ - fireQueue : function() { - this.queueInProgress = true; - for (var i=0;iOR -* @param {HTMLElement} el The element representing the Module -* @param {Object} userConfig The configuration Object literal containing the configuration that should be set for this module. See configuration documentation for more details. -*/ -YAHOO.widget.Module = function(el, userConfig) { - if (el) { - this.init(el, userConfig); - } else { - YAHOO.log("No element or element ID specified for Module instantiation", "error"); - } -}; - -/** -* Constant representing the prefix path to use for non-secure images -* @property YAHOO.widget.Module.IMG_ROOT -* @static -* @final -* @type String -*/ -YAHOO.widget.Module.IMG_ROOT = null; - -/** -* Constant representing the prefix path to use for securely served images -* @property YAHOO.widget.Module.IMG_ROOT_SSL -* @static -* @final -* @type String -*/ -YAHOO.widget.Module.IMG_ROOT_SSL = null; - -/** -* Constant for the default CSS class name that represents a Module -* @property YAHOO.widget.Module.CSS_MODULE -* @static -* @final -* @type String -*/ -YAHOO.widget.Module.CSS_MODULE = "yui-module"; - -/** -* Constant representing the module header -* @property YAHOO.widget.Module.CSS_HEADER -* @static -* @final -* @type String -*/ -YAHOO.widget.Module.CSS_HEADER = "hd"; - -/** -* Constant representing the module body -* @property YAHOO.widget.Module.CSS_BODY -* @static -* @final -* @type String -*/ -YAHOO.widget.Module.CSS_BODY = "bd"; - -/** -* Constant representing the module footer -* @property YAHOO.widget.Module.CSS_FOOTER -* @static -* @final -* @type String -*/ -YAHOO.widget.Module.CSS_FOOTER = "ft"; - -/** -* Constant representing the url for the "src" attribute of the iframe used to monitor changes to the browser's base font size -* @property YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL -* @static -* @final -* @type String -*/ -YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL = "javascript:false;"; - -/** -* Singleton CustomEvent fired when the font size is changed in the browser. -* Opera's "zoom" functionality currently does not support text size detection. -* @event YAHOO.widget.Module.textResizeEvent -*/ -YAHOO.widget.Module.textResizeEvent = new YAHOO.util.CustomEvent("textResize"); - -/** -* Constant representing the name of the Module's events -* @property YAHOO.widget.Module._EVENT_TYPES -* @private -* @final -* @type Object -*/ -YAHOO.widget.Module._EVENT_TYPES = { - - "BEFORE_INIT": "beforeInit", - "INIT": "init", - "APPEND": "append", - "BEFORE_RENDER": "beforeRender", - "RENDER": "render", - "CHANGE_HEADER": "changeHeader", - "CHANGE_BODY": "changeBody", - "CHANGE_FOOTER": "changeFooter", - "CHANGE_CONTENT": "changeContent", - "DESTORY": "destroy", - "BEFORE_SHOW": "beforeShow", - "SHOW": "show", - "BEFORE_HIDE": "beforeHide", - "HIDE": "hide" - -}; - -/** -* Constant representing the Module's configuration properties -* @property YAHOO.widget.Module._DEFAULT_CONFIG -* @private -* @final -* @type Object -*/ -YAHOO.widget.Module._DEFAULT_CONFIG = { - - "VISIBLE": { - key: "visible", - value: true, - validator: YAHOO.lang.isBoolean - }, - - "EFFECT": { - key: "effect", - suppressEvent:true, - supercedes:["visible"] - }, - - "MONITOR_RESIZE": { - key: "monitorresize", - value:true - } - -}; - - -YAHOO.widget.Module.prototype = { - - /** - * The class's constructor function - * @property contructor - * @type Function - */ - constructor : YAHOO.widget.Module, - - /** - * The main module element that contains the header, body, and footer - * @property element - * @type HTMLElement - */ - element : null, - - /** - * The header element, denoted with CSS class "hd" - * @property header - * @type HTMLElement - */ - header : null, - - /** - * The body element, denoted with CSS class "bd" - * @property body - * @type HTMLElement - */ - body : null, - - /** - * The footer element, denoted with CSS class "ft" - * @property footer - * @type HTMLElement - */ - footer : null, - - /** - * The id of the element - * @property id - * @type String - */ - id : null, - - /** - * The String representing the image root - * @property imageRoot - * @type String - */ - imageRoot : YAHOO.widget.Module.IMG_ROOT, - - /** - * Initializes the custom events for Module which are fired automatically at appropriate times by the Module class. - * @method initEvents - */ - initEvents : function() { - - var EVENT_TYPES = YAHOO.widget.Module._EVENT_TYPES; - - /** - * CustomEvent fired prior to class initalization. - * @event beforeInitEvent - * @param {class} classRef class reference of the initializing class, such as this.beforeInitEvent.fire(YAHOO.widget.Module) - */ - this.beforeInitEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.BEFORE_INIT, this); - - /** - * CustomEvent fired after class initalization. - * @event initEvent - * @param {class} classRef class reference of the initializing class, such as this.beforeInitEvent.fire(YAHOO.widget.Module) - */ - this.initEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.INIT, this); - - /** - * CustomEvent fired when the Module is appended to the DOM - * @event appendEvent - */ - this.appendEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.APPEND, this); - - /** - * CustomEvent fired before the Module is rendered - * @event beforeRenderEvent - */ - this.beforeRenderEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.BEFORE_RENDER, this); - - /** - * CustomEvent fired after the Module is rendered - * @event renderEvent - */ - this.renderEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.RENDER, this); - - /** - * CustomEvent fired when the header content of the Module is modified - * @event changeHeaderEvent - * @param {String/HTMLElement} content String/element representing the new header content - */ - this.changeHeaderEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.CHANGE_HEADER, this); - - /** - * CustomEvent fired when the body content of the Module is modified - * @event changeBodyEvent - * @param {String/HTMLElement} content String/element representing the new body content - */ - this.changeBodyEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.CHANGE_BODY, this); - - /** - * CustomEvent fired when the footer content of the Module is modified - * @event changeFooterEvent - * @param {String/HTMLElement} content String/element representing the new footer content - */ - this.changeFooterEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.CHANGE_FOOTER, this); - - /** - * CustomEvent fired when the content of the Module is modified - * @event changeContentEvent - */ - this.changeContentEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.CHANGE_CONTENT, this); - - /** - * CustomEvent fired when the Module is destroyed - * @event destroyEvent - */ - this.destroyEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.DESTORY, this); - - /** - * CustomEvent fired before the Module is shown - * @event beforeShowEvent - */ - this.beforeShowEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.BEFORE_SHOW, this); - - /** - * CustomEvent fired after the Module is shown - * @event showEvent - */ - this.showEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.SHOW, this); - - /** - * CustomEvent fired before the Module is hidden - * @event beforeHideEvent - */ - this.beforeHideEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.BEFORE_HIDE, this); - - /** - * CustomEvent fired after the Module is hidden - * @event hideEvent - */ - this.hideEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.HIDE, this); - }, - - /** - * String representing the current user-agent platform - * @property platform - * @type String - */ - platform : function() { - var ua = navigator.userAgent.toLowerCase(); - if (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1) { - return "windows"; - } else if (ua.indexOf("macintosh") != -1) { - return "mac"; - } else { - return false; - } - }(), - - /** - * String representing the current user-agent browser - * @property browser - * @type String - */ - browser : function() { - var ua = navigator.userAgent.toLowerCase(); - if (ua.indexOf('opera')!=-1) { // Opera (check first in case of spoof) - return 'opera'; - } else if (ua.indexOf('msie 7')!=-1) { // IE7 - return 'ie7'; - } else if (ua.indexOf('msie') !=-1) { // IE - return 'ie'; - } else if (ua.indexOf('safari')!=-1) { // Safari (check before Gecko because it includes "like Gecko") - return 'safari'; - } else if (ua.indexOf('gecko') != -1) { // Gecko - return 'gecko'; - } else { - return false; - } - }(), - - /** - * Boolean representing whether or not the current browsing context is secure (https) - * @property isSecure - * @type Boolean - */ - isSecure : function() { - if (window.location.href.toLowerCase().indexOf("https") === 0) { - return true; - } else { - return false; - } - }(), - - /** - * Initializes the custom events for Module which are fired automatically at appropriate times by the Module class. - */ - initDefaultConfig : function() { - // Add properties // - - var DEFAULT_CONFIG = YAHOO.widget.Module._DEFAULT_CONFIG; - - /** - * Specifies whether the Module is visible on the page. - * @config visible - * @type Boolean - * @default true - */ - this.cfg.addProperty( - DEFAULT_CONFIG.VISIBLE.key, - { - handler: this.configVisible, - value: DEFAULT_CONFIG.VISIBLE.value, - validator: DEFAULT_CONFIG.VISIBLE.validator - } - ); - - /** - * Object or array of objects representing the ContainerEffect classes that are active for animating the container. - * @config effect - * @type Object - * @default null - */ - this.cfg.addProperty( - DEFAULT_CONFIG.EFFECT.key, - { - suppressEvent: DEFAULT_CONFIG.EFFECT.suppressEvent, - supercedes: DEFAULT_CONFIG.EFFECT.supercedes - } - ); - - /** - * Specifies whether to create a special proxy iframe to monitor for user font resizing in the document - * @config monitorresize - * @type Boolean - * @default true - */ - this.cfg.addProperty( - DEFAULT_CONFIG.MONITOR_RESIZE.key, - { - handler: this.configMonitorResize, - value: DEFAULT_CONFIG.MONITOR_RESIZE.value - } - ); - - }, - - /** - * The Module class's initialization method, which is executed for Module and all of its subclasses. This method is automatically called by the constructor, and sets up all DOM references for pre-existing markup, and creates required markup if it is not already present. - * @method init - * @param {String} el The element ID representing the Module OR - * @param {HTMLElement} el The element representing the Module - * @param {Object} userConfig The configuration Object literal containing the configuration that should be set for this module. See configuration documentation for more details. - */ - init : function(el, userConfig) { - - this.initEvents(); - - this.beforeInitEvent.fire(YAHOO.widget.Module); - - /** - * The Module's Config object used for monitoring configuration properties. - * @property cfg - * @type YAHOO.util.Config - */ - this.cfg = new YAHOO.util.Config(this); - - if (this.isSecure) { - this.imageRoot = YAHOO.widget.Module.IMG_ROOT_SSL; - } - - if (typeof el == "string") { - var elId = el; - - el = document.getElementById(el); - if (! el) { - el = document.createElement("div"); - el.id = elId; - } - } - - this.element = el; - - if (el.id) { - this.id = el.id; - } - - var childNodes = this.element.childNodes; - - if (childNodes) { - for (var i=0;iOR - * @param {HTMLElement} headerContent The HTMLElement to append to the header - */ - setHeader : function(headerContent) { - if (! this.header) { - this.header = document.createElement("div"); - this.header.className = YAHOO.widget.Module.CSS_HEADER; - } - - if (typeof headerContent == "string") { - this.header.innerHTML = headerContent; - } else { - this.header.innerHTML = ""; - this.header.appendChild(headerContent); - } - - this.changeHeaderEvent.fire(headerContent); - this.changeContentEvent.fire(); - }, - - /** - * Appends the passed element to the header. If no header is present, one will be automatically created. - * @method appendToHeader - * @param {HTMLElement} element The element to append to the header - */ - appendToHeader : function(element) { - if (! this.header) { - this.header = document.createElement("div"); - this.header.className = YAHOO.widget.Module.CSS_HEADER; - } - - this.header.appendChild(element); - this.changeHeaderEvent.fire(element); - this.changeContentEvent.fire(); - }, - - /** - * Sets the Module's body content to the HTML specified, or appends the passed element to the body. If no body is present, one will be automatically created. - * @method setBody - * @param {String} bodyContent The HTML used to set the body OR - * @param {HTMLElement} bodyContent The HTMLElement to append to the body - */ - setBody : function(bodyContent) { - if (! this.body) { - this.body = document.createElement("div"); - this.body.className = YAHOO.widget.Module.CSS_BODY; - } - - if (typeof bodyContent == "string") - { - this.body.innerHTML = bodyContent; - } else { - this.body.innerHTML = ""; - this.body.appendChild(bodyContent); - } - - this.changeBodyEvent.fire(bodyContent); - this.changeContentEvent.fire(); - }, - - /** - * Appends the passed element to the body. If no body is present, one will be automatically created. - * @method appendToBody - * @param {HTMLElement} element The element to append to the body - */ - appendToBody : function(element) { - if (! this.body) { - this.body = document.createElement("div"); - this.body.className = YAHOO.widget.Module.CSS_BODY; - } - - this.body.appendChild(element); - this.changeBodyEvent.fire(element); - this.changeContentEvent.fire(); - }, - - /** - * Sets the Module's footer content to the HTML specified, or appends the passed element to the footer. If no footer is present, one will be automatically created. - * @method setFooter - * @param {String} footerContent The HTML used to set the footer OR - * @param {HTMLElement} footerContent The HTMLElement to append to the footer - */ - setFooter : function(footerContent) { - if (! this.footer) { - this.footer = document.createElement("div"); - this.footer.className = YAHOO.widget.Module.CSS_FOOTER; - } - - if (typeof footerContent == "string") { - this.footer.innerHTML = footerContent; - } else { - this.footer.innerHTML = ""; - this.footer.appendChild(footerContent); - } - - this.changeFooterEvent.fire(footerContent); - this.changeContentEvent.fire(); - }, - - /** - * Appends the passed element to the footer. If no footer is present, one will be automatically created. - * @method appendToFooter - * @param {HTMLElement} element The element to append to the footer - */ - appendToFooter : function(element) { - if (! this.footer) { - this.footer = document.createElement("div"); - this.footer.className = YAHOO.widget.Module.CSS_FOOTER; - } - - this.footer.appendChild(element); - this.changeFooterEvent.fire(element); - this.changeContentEvent.fire(); - }, - - /** - * Renders the Module by inserting the elements that are not already in the main Module into their correct places. Optionally appends the Module to the specified node prior to the render's execution. NOTE: For Modules without existing markup, the appendToNode argument is REQUIRED. If this argument is ommitted and the current element is not present in the document, the function will return false, indicating that the render was a failure. - * @method render - * @param {String} appendToNode The element id to which the Module should be appended to prior to rendering OR - * @param {HTMLElement} appendToNode The element to which the Module should be appended to prior to rendering - * @param {HTMLElement} moduleElement OPTIONAL. The element that represents the actual Standard Module container. - * @return {Boolean} Success or failure of the render - */ - render : function(appendToNode, moduleElement) { - this.beforeRenderEvent.fire(); - - if (! moduleElement) { - moduleElement = this.element; - } - - var me = this; - var appendTo = function(element) { - if (typeof element == "string") { - element = document.getElementById(element); - } - - if (element) { - element.appendChild(me.element); - me.appendEvent.fire(); - } - }; - - if (appendToNode) { - appendTo(appendToNode); - } else { // No node was passed in. If the element is not pre-marked up, this fails - if (! YAHOO.util.Dom.inDocument(this.element)) { - YAHOO.log("Render failed. Must specify appendTo node if Module isn't already in the DOM.", "error"); - return false; - } - } - - // Need to get everything into the DOM if it isn't already - - if (this.header && ! YAHOO.util.Dom.inDocument(this.header)) { - // There is a header, but it's not in the DOM yet... need to add it - var firstChild = moduleElement.firstChild; - if (firstChild) { // Insert before first child if exists - moduleElement.insertBefore(this.header, firstChild); - } else { // Append to empty body because there are no children - moduleElement.appendChild(this.header); - } - } - - if (this.body && ! YAHOO.util.Dom.inDocument(this.body)) { - // There is a body, but it's not in the DOM yet... need to add it - if (this.footer && YAHOO.util.Dom.isAncestor(this.moduleElement, this.footer)) { // Insert before footer if exists in DOM - moduleElement.insertBefore(this.body, this.footer); - } else { // Append to element because there is no footer - moduleElement.appendChild(this.body); - } - } - - if (this.footer && ! YAHOO.util.Dom.inDocument(this.footer)) { - // There is a footer, but it's not in the DOM yet... need to add it - moduleElement.appendChild(this.footer); - } - - this.renderEvent.fire(); - return true; - }, - - /** - * Removes the Module element from the DOM and sets all child elements to null. - * @method destroy - */ - destroy : function() { - var parent; - - if (this.element) { - YAHOO.util.Event.purgeElement(this.element, true); - parent = this.element.parentNode; - } - if (parent) { - parent.removeChild(this.element); - } - - this.element = null; - this.header = null; - this.body = null; - this.footer = null; - - for (var e in this) { - if (e instanceof YAHOO.util.CustomEvent) { - e.unsubscribeAll(); - } - } - - YAHOO.widget.Module.textResizeEvent.unsubscribe(this.onDomResize, this); - - this.destroyEvent.fire(); - }, - - /** - * Shows the Module element by setting the visible configuration property to true. Also fires two events: beforeShowEvent prior to the visibility change, and showEvent after. - * @method show - */ - show : function() { - this.cfg.setProperty("visible", true); - }, - - /** - * Hides the Module element by setting the visible configuration property to false. Also fires two events: beforeHideEvent prior to the visibility change, and hideEvent after. - * @method hide - */ - hide : function() { - this.cfg.setProperty("visible", false); - }, - - // BUILT-IN EVENT HANDLERS FOR MODULE // - - /** - * Default event handler for changing the visibility property of a Module. By default, this is achieved by switching the "display" style between "block" and "none". - * This method is responsible for firing showEvent and hideEvent. - * @param {String} type The CustomEvent type (usually the property name) - * @param {Object[]} args The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. - * @param {Object} obj The scope object. For configuration handlers, this will usually equal the owner. - * @method configVisible - */ - configVisible : function(type, args, obj) { - var visible = args[0]; - if (visible) { - this.beforeShowEvent.fire(); - YAHOO.util.Dom.setStyle(this.element, "display", "block"); - this.showEvent.fire(); - } else { - this.beforeHideEvent.fire(); - YAHOO.util.Dom.setStyle(this.element, "display", "none"); - this.hideEvent.fire(); - } - }, - - /** - * Default event handler for the "monitorresize" configuration property - * @param {String} type The CustomEvent type (usually the property name) - * @param {Object[]} args The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. - * @param {Object} obj The scope object. For configuration handlers, this will usually equal the owner. - * @method configMonitorResize - */ - configMonitorResize : function(type, args, obj) { - var monitor = args[0]; - if (monitor) { - this.initResizeMonitor(); - } else { - YAHOO.widget.Module.textResizeEvent.unsubscribe(this.onDomResize, this, true); - this.resizeMonitor = null; - } - } -}; - -/** -* Returns a String representation of the Object. -* @method toString -* @return {String} The string representation of the Module -*/ -YAHOO.widget.Module.prototype.toString = function() { - return "Module " + this.id; -}; -/** -* Overlay is a Module that is absolutely positioned above the page flow. It has convenience methods for positioning and sizing, as well as options for controlling zIndex and constraining the Overlay's position to the current visible viewport. Overlay also contains a dynamicly generated IFRAME which is placed beneath it for Internet Explorer 6 and 5.x so that it will be properly rendered above SELECT elements. -* @namespace YAHOO.widget -* @class Overlay -* @extends YAHOO.widget.Module -* @param {String} el The element ID representing the Overlay OR -* @param {HTMLElement} el The element representing the Overlay -* @param {Object} userConfig The configuration object literal containing 10/23/2006the configuration that should be set for this Overlay. See configuration documentation for more details. -* @constructor -*/ -YAHOO.widget.Overlay = function(el, userConfig) { - YAHOO.widget.Overlay.superclass.constructor.call(this, el, userConfig); -}; - -YAHOO.extend(YAHOO.widget.Overlay, YAHOO.widget.Module); - -/** -* Constant representing the name of the Overlay's events -* @property YAHOO.widget.Overlay._EVENT_TYPES -* @private -* @final -* @type Object -*/ -YAHOO.widget.Overlay._EVENT_TYPES = { - - "BEFORE_MOVE": "beforeMove", - "MOVE": "move" - -}; - -/** -* Constant representing the Overlay's configuration properties -* @property YAHOO.widget.Overlay._DEFAULT_CONFIG -* @private -* @final -* @type Object -*/ -YAHOO.widget.Overlay._DEFAULT_CONFIG = { - - "X": { - key: "x", - validator:YAHOO.lang.isNumber, - suppressEvent:true, supercedes:["iframe"] - }, - - "Y": { - key: "y", - validator:YAHOO.lang.isNumber, - suppressEvent:true, supercedes:["iframe"] - }, - - "XY": { - key: "xy", - suppressEvent:true, - supercedes:["iframe"] - }, - - "CONTEXT": { - key: "context", - suppressEvent:true, - supercedes:["iframe"] - }, - - "FIXED_CENTER": { - key: "fixedcenter", - value:false, - validator:YAHOO.lang.isBoolean, - supercedes:["iframe","visible"] - }, - - "WIDTH": { - key: "width", - suppressEvent:true, - supercedes:["iframe"] - }, - - "HEIGHT": { - key: "height", - suppressEvent:true, - supercedes:["iframe"] - }, - - "ZINDEX": { - key: "zindex", - value:null - }, - - "CONSTRAIN_TO_VIEWPORT": { - key: "constraintoviewport", - value:false, - validator:YAHOO.lang.isBoolean, - supercedes:["iframe","x","y","xy"] - }, - - "IFRAME": { - key: "iframe", - value:(YAHOO.widget.Module.prototype.browser == "ie" ? true : false), - validator:YAHOO.lang.isBoolean, - supercedes:["zIndex"] - } - -}; - -/** -* The URL that will be placed in the iframe -* @property YAHOO.widget.Overlay.IFRAME_SRC -* @static -* @final -* @type String -*/ -YAHOO.widget.Overlay.IFRAME_SRC = "javascript:false;"; - -/** -* Constant representing the top left corner of an element, used for configuring the context element alignment -* @property YAHOO.widget.Overlay.TOP_LEFT -* @static -* @final -* @type String -*/ -YAHOO.widget.Overlay.TOP_LEFT = "tl"; - -/** -* Constant representing the top right corner of an element, used for configuring the context element alignment -* @property YAHOO.widget.Overlay.TOP_RIGHT -* @static -* @final -* @type String -*/ -YAHOO.widget.Overlay.TOP_RIGHT = "tr"; - -/** -* Constant representing the top bottom left corner of an element, used for configuring the context element alignment -* @property YAHOO.widget.Overlay.BOTTOM_LEFT -* @static -* @final -* @type String -*/ -YAHOO.widget.Overlay.BOTTOM_LEFT = "bl"; - -/** -* Constant representing the bottom right corner of an element, used for configuring the context element alignment -* @property YAHOO.widget.Overlay.BOTTOM_RIGHT -* @static -* @final -* @type String -*/ -YAHOO.widget.Overlay.BOTTOM_RIGHT = "br"; - -/** -* Constant representing the default CSS class used for an Overlay -* @property YAHOO.widget.Overlay.CSS_OVERLAY -* @static -* @final -* @type String -*/ -YAHOO.widget.Overlay.CSS_OVERLAY = "yui-overlay"; - -/** -* The Overlay initialization method, which is executed for Overlay and all of its subclasses. This method is automatically called by the constructor, and sets up all DOM references for pre-existing markup, and creates required markup if it is not already present. -* @method init -* @param {String} el The element ID representing the Overlay OR -* @param {HTMLElement} el The element representing the Overlay -* @param {Object} userConfig The configuration object literal containing the configuration that should be set for this Overlay. See configuration documentation for more details. -*/ -YAHOO.widget.Overlay.prototype.init = function(el, userConfig) { - YAHOO.widget.Overlay.superclass.init.call(this, el/*, userConfig*/); // Note that we don't pass the user config in here yet because we only want it executed once, at the lowest subclass level - - this.beforeInitEvent.fire(YAHOO.widget.Overlay); - - YAHOO.util.Dom.addClass(this.element, YAHOO.widget.Overlay.CSS_OVERLAY); - - if (userConfig) { - this.cfg.applyConfig(userConfig, true); - } - - if (this.platform == "mac" && this.browser == "gecko") { - if (! YAHOO.util.Config.alreadySubscribed(this.showEvent,this.showMacGeckoScrollbars,this)) { - this.showEvent.subscribe(this.showMacGeckoScrollbars,this,true); - } - if (! YAHOO.util.Config.alreadySubscribed(this.hideEvent,this.hideMacGeckoScrollbars,this)) { - this.hideEvent.subscribe(this.hideMacGeckoScrollbars,this,true); - } - } - - this.initEvent.fire(YAHOO.widget.Overlay); - -}; - -/** -* Initializes the custom events for Overlay which are fired automatically at appropriate times by the Overlay class. -* @method initEvents -*/ -YAHOO.widget.Overlay.prototype.initEvents = function() { - YAHOO.widget.Overlay.superclass.initEvents.call(this); - - var EVENT_TYPES = YAHOO.widget.Overlay._EVENT_TYPES; - - /** - * CustomEvent fired before the Overlay is moved. - * @event beforeMoveEvent - * @param {Number} x x coordinate - * @param {Number} y y coordinate - */ - this.beforeMoveEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.BEFORE_MOVE, this); - - /** - * CustomEvent fired after the Overlay is moved. - * @event moveEvent - * @param {Number} x x coordinate - * @param {Number} y y coordinate - */ - this.moveEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.MOVE, this); -}; - -/** -* Initializes the class's configurable properties which can be changed using the Overlay's Config object (cfg). -* @method initDefaultConfig -*/ -YAHOO.widget.Overlay.prototype.initDefaultConfig = function() { - YAHOO.widget.Overlay.superclass.initDefaultConfig.call(this); - - - // Add overlay config properties // - - var DEFAULT_CONFIG = YAHOO.widget.Overlay._DEFAULT_CONFIG; - - /** - * The absolute x-coordinate position of the Overlay - * @config x - * @type Number - * @default null - */ - this.cfg.addProperty( - DEFAULT_CONFIG.X.key, - { - handler: this.configX, - validator: DEFAULT_CONFIG.X.validator, - suppressEvent: DEFAULT_CONFIG.X.suppressEvent, - supercedes: DEFAULT_CONFIG.X.supercedes - } - ); - - /** - * The absolute y-coordinate position of the Overlay - * @config y - * @type Number - * @default null - */ - this.cfg.addProperty( - DEFAULT_CONFIG.Y.key, - { - handler: this.configY, - validator: DEFAULT_CONFIG.Y.validator, - suppressEvent: DEFAULT_CONFIG.Y.suppressEvent, - supercedes: DEFAULT_CONFIG.Y.supercedes - } - ); - - /** - * An array with the absolute x and y positions of the Overlay - * @config xy - * @type Number[] - * @default null - */ - this.cfg.addProperty( - DEFAULT_CONFIG.XY.key, - { - handler: this.configXY, - suppressEvent: DEFAULT_CONFIG.XY.suppressEvent, - supercedes: DEFAULT_CONFIG.XY.supercedes - } - ); - - /** - * The array of context arguments for context-sensitive positioning. The format is: [id or element, element corner, context corner]. For example, setting this property to ["img1", "tl", "bl"] would align the Overlay's top left corner to the context element's bottom left corner. - * @config context - * @type Array - * @default null - */ - this.cfg.addProperty( - DEFAULT_CONFIG.CONTEXT.key, - { - handler: this.configContext, - suppressEvent: DEFAULT_CONFIG.CONTEXT.suppressEvent, - supercedes: DEFAULT_CONFIG.CONTEXT.supercedes - } - ); - - /** - * True if the Overlay should be anchored to the center of the viewport. - * @config fixedcenter - * @type Boolean - * @default false - */ - this.cfg.addProperty( - DEFAULT_CONFIG.FIXED_CENTER.key, - { - handler: this.configFixedCenter, - value: DEFAULT_CONFIG.FIXED_CENTER.value, - validator: DEFAULT_CONFIG.FIXED_CENTER.validator, - supercedes: DEFAULT_CONFIG.FIXED_CENTER.supercedes - } - ); - - /** - * CSS width of the Overlay. - * @config width - * @type String - * @default null - */ - this.cfg.addProperty( - DEFAULT_CONFIG.WIDTH.key, - { - handler: this.configWidth, - suppressEvent: DEFAULT_CONFIG.WIDTH.suppressEvent, - supercedes: DEFAULT_CONFIG.WIDTH.supercedes - } - ); - - /** - * CSS height of the Overlay. - * @config height - * @type String - * @default null - */ - this.cfg.addProperty( - DEFAULT_CONFIG.HEIGHT.key, - { - handler: this.configHeight, - suppressEvent: DEFAULT_CONFIG.HEIGHT.suppressEvent, - supercedes: DEFAULT_CONFIG.HEIGHT.supercedes - } - ); - - /** - * CSS z-index of the Overlay. - * @config zIndex - * @type Number - * @default null - */ - this.cfg.addProperty( - DEFAULT_CONFIG.ZINDEX.key, - { - handler: this.configzIndex, - value: DEFAULT_CONFIG.ZINDEX.value - } - ); - - /** - * True if the Overlay should be prevented from being positioned out of the viewport. - * @config constraintoviewport - * @type Boolean - * @default false - */ - this.cfg.addProperty( - DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.key, - { - handler: this.configConstrainToViewport, - value: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.value, - validator: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.validator, - supercedes: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.supercedes - } - ); - - /** - * True if the Overlay should have an IFRAME shim (for correcting the select z-index bug in IE6 and below). - * @config iframe - * @type Boolean - * @default true for IE6 and below, false for all others - */ - this.cfg.addProperty( - DEFAULT_CONFIG.IFRAME.key, - { - handler: this.configIframe, - value: DEFAULT_CONFIG.IFRAME.value, - validator: DEFAULT_CONFIG.IFRAME.validator, - supercedes: DEFAULT_CONFIG.IFRAME.supercedes - } - ); - -}; - -/** -* Moves the Overlay to the specified position. This function is identical to calling this.cfg.setProperty("xy", [x,y]); -* @method moveTo -* @param {Number} x The Overlay's new x position -* @param {Number} y The Overlay's new y position -*/ -YAHOO.widget.Overlay.prototype.moveTo = function(x, y) { - this.cfg.setProperty("xy",[x,y]); -}; - -/** -* Adds a special CSS class to the Overlay when Mac/Gecko is in use, to work around a Gecko bug where -* scrollbars cannot be hidden. See https://bugzilla.mozilla.org/show_bug.cgi?id=187435 -* @method hideMacGeckoScrollbars -*/ -YAHOO.widget.Overlay.prototype.hideMacGeckoScrollbars = function() { - YAHOO.util.Dom.removeClass(this.element, "show-scrollbars"); - YAHOO.util.Dom.addClass(this.element, "hide-scrollbars"); -}; - -/** -* Removes a special CSS class from the Overlay when Mac/Gecko is in use, to work around a Gecko bug where -* scrollbars cannot be hidden. See https://bugzilla.mozilla.org/show_bug.cgi?id=187435 -* @method showMacGeckoScrollbars -*/ -YAHOO.widget.Overlay.prototype.showMacGeckoScrollbars = function() { - YAHOO.util.Dom.removeClass(this.element, "hide-scrollbars"); - YAHOO.util.Dom.addClass(this.element, "show-scrollbars"); -}; - -// BEGIN BUILT-IN PROPERTY EVENT HANDLERS // - -/** -* The default event handler fired when the "visible" property is changed. This method is responsible for firing showEvent and hideEvent. -* @method configVisible -* @param {String} type The CustomEvent type (usually the property name) -* @param {Object[]} args The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -* @param {Object} obj The scope object. For configuration handlers, this will usually equal the owner. -*/ -YAHOO.widget.Overlay.prototype.configVisible = function(type, args, obj) { - var visible = args[0]; - var currentVis = YAHOO.util.Dom.getStyle(this.element, "visibility"); - - if (currentVis == "inherit") { - var e = this.element.parentNode; - while (e.nodeType != 9 && e.nodeType != 11) { - currentVis = YAHOO.util.Dom.getStyle(e, "visibility"); - if (currentVis != "inherit") { break; } - e = e.parentNode; - } - if (currentVis == "inherit") { - currentVis = "visible"; - } - } - - var effect = this.cfg.getProperty("effect"); - - var effectInstances = []; - if (effect) { - if (effect instanceof Array) { - for (var i=0;i rightConstraint) { - x = rightConstraint; - } - - if (y < topConstraint) { - y = topConstraint; - } else if (y > bottomConstraint) { - y = bottomConstraint; - } - - this.cfg.setProperty("x", x, true); - this.cfg.setProperty("y", y, true); - this.cfg.setProperty("xy", [x,y], true); -}; - -/** -* Centers the container in the viewport. -* @method center -*/ -YAHOO.widget.Overlay.prototype.center = function() { - var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; - var scrollY = document.documentElement.scrollTop || document.body.scrollTop; - - var viewPortWidth = YAHOO.util.Dom.getClientWidth(); - var viewPortHeight = YAHOO.util.Dom.getClientHeight(); - - var elementWidth = this.element.offsetWidth; - var elementHeight = this.element.offsetHeight; - - var x = (viewPortWidth / 2) - (elementWidth / 2) + scrollX; - var y = (viewPortHeight / 2) - (elementHeight / 2) + scrollY; - - this.cfg.setProperty("xy", [parseInt(x, 10), parseInt(y, 10)]); - - this.cfg.refireEvent("iframe"); -}; - -/** -* Synchronizes the Panel's "xy", "x", and "y" properties with the Panel's position in the DOM. This is primarily used to update position information during drag & drop. -* @method syncPosition -*/ -YAHOO.widget.Overlay.prototype.syncPosition = function() { - var pos = YAHOO.util.Dom.getXY(this.element); - this.cfg.setProperty("x", pos[0], true); - this.cfg.setProperty("y", pos[1], true); - this.cfg.setProperty("xy", pos, true); -}; - -/** -* Event handler fired when the resize monitor element is resized. -* @method onDomResize -* @param {DOMEvent} e The resize DOM event -* @param {Object} obj The scope object -*/ -YAHOO.widget.Overlay.prototype.onDomResize = function(e, obj) { - YAHOO.widget.Overlay.superclass.onDomResize.call(this, e, obj); - var me = this; - setTimeout(function() { - me.syncPosition(); - me.cfg.refireEvent("iframe"); - me.cfg.refireEvent("context"); - }, 0); -}; - -/** -* Removes the Overlay element from the DOM and sets all child elements to null. -* @method destroy -*/ -YAHOO.widget.Overlay.prototype.destroy = function() { - if (this.iframe) { - this.iframe.parentNode.removeChild(this.iframe); - } - - this.iframe = null; - - YAHOO.widget.Overlay.windowResizeEvent.unsubscribe(this.doCenterOnDOMEvent, this); - YAHOO.widget.Overlay.windowScrollEvent.unsubscribe(this.doCenterOnDOMEvent, this); - - YAHOO.widget.Overlay.superclass.destroy.call(this); -}; - -/** -* Returns a String representation of the object. -* @method toString -* @return {String} The string representation of the Overlay. -*/ -YAHOO.widget.Overlay.prototype.toString = function() { - return "Overlay " + this.id; -}; - -/** -* A singleton CustomEvent used for reacting to the DOM event for window scroll -* @event YAHOO.widget.Overlay.windowScrollEvent -*/ -YAHOO.widget.Overlay.windowScrollEvent = new YAHOO.util.CustomEvent("windowScroll"); - -/** -* A singleton CustomEvent used for reacting to the DOM event for window resize -* @event YAHOO.widget.Overlay.windowResizeEvent -*/ -YAHOO.widget.Overlay.windowResizeEvent = new YAHOO.util.CustomEvent("windowResize"); - -/** -* The DOM event handler used to fire the CustomEvent for window scroll -* @method YAHOO.widget.Overlay.windowScrollHandler -* @static -* @param {DOMEvent} e The DOM scroll event -*/ -YAHOO.widget.Overlay.windowScrollHandler = function(e) { - if (YAHOO.widget.Module.prototype.browser == "ie" || YAHOO.widget.Module.prototype.browser == "ie7") { - if (! window.scrollEnd) { - window.scrollEnd = -1; - } - clearTimeout(window.scrollEnd); - window.scrollEnd = setTimeout(function() { YAHOO.widget.Overlay.windowScrollEvent.fire(); }, 1); - } else { - YAHOO.widget.Overlay.windowScrollEvent.fire(); - } -}; - -/** -* The DOM event handler used to fire the CustomEvent for window resize -* @method YAHOO.widget.Overlay.windowResizeHandler -* @static -* @param {DOMEvent} e The DOM resize event -*/ -YAHOO.widget.Overlay.windowResizeHandler = function(e) { - if (YAHOO.widget.Module.prototype.browser == "ie" || YAHOO.widget.Module.prototype.browser == "ie7") { - if (! window.resizeEnd) { - window.resizeEnd = -1; - } - clearTimeout(window.resizeEnd); - window.resizeEnd = setTimeout(function() { YAHOO.widget.Overlay.windowResizeEvent.fire(); }, 100); - } else { - YAHOO.widget.Overlay.windowResizeEvent.fire(); - } -}; - -/** -* A boolean that indicated whether the window resize and scroll events have already been subscribed to. -* @property YAHOO.widget.Overlay._initialized -* @private -* @type Boolean -*/ -YAHOO.widget.Overlay._initialized = null; - -if (YAHOO.widget.Overlay._initialized === null) { - YAHOO.util.Event.addListener(window, "scroll", YAHOO.widget.Overlay.windowScrollHandler); - YAHOO.util.Event.addListener(window, "resize", YAHOO.widget.Overlay.windowResizeHandler); - - YAHOO.widget.Overlay._initialized = true; -} -/** -* OverlayManager is used for maintaining the focus status of multiple Overlays.* @namespace YAHOO.widget -* @namespace YAHOO.widget -* @class OverlayManager -* @constructor -* @param {Array} overlays Optional. A collection of Overlays to register with the manager. -* @param {Object} userConfig The object literal representing the user configuration of the OverlayManager -*/ -YAHOO.widget.OverlayManager = function(userConfig) { - this.init(userConfig); -}; - -/** -* The CSS class representing a focused Overlay -* @property YAHOO.widget.OverlayManager.CSS_FOCUSED -* @static -* @final -* @type String -*/ -YAHOO.widget.OverlayManager.CSS_FOCUSED = "focused"; - -YAHOO.widget.OverlayManager.prototype = { - /** - * The class's constructor function - * @property contructor - * @type Function - */ - constructor : YAHOO.widget.OverlayManager, - - /** - * The array of Overlays that are currently registered - * @property overlays - * @type YAHOO.widget.Overlay[] - */ - overlays : null, - - /** - * Initializes the default configuration of the OverlayManager - * @method initDefaultConfig - */ - initDefaultConfig : function() { - /** - * The collection of registered Overlays in use by the OverlayManager - * @config overlays - * @type YAHOO.widget.Overlay[] - * @default null - */ - this.cfg.addProperty("overlays", { suppressEvent:true } ); - - /** - * The default DOM event that should be used to focus an Overlay - * @config focusevent - * @type String - * @default "mousedown" - */ - this.cfg.addProperty("focusevent", { value:"mousedown" } ); - }, - - /** - * Initializes the OverlayManager - * @method init - * @param {YAHOO.widget.Overlay[]} overlays Optional. A collection of Overlays to register with the manager. - * @param {Object} userConfig The object literal representing the user configuration of the OverlayManager - */ - init : function(userConfig) { - /** - * The OverlayManager's Config object used for monitoring configuration properties. - * @property cfg - * @type YAHOO.util.Config - */ - this.cfg = new YAHOO.util.Config(this); - - this.initDefaultConfig(); - - if (userConfig) { - this.cfg.applyConfig(userConfig, true); - } - this.cfg.fireQueue(); - - /** - * The currently activated Overlay - * @property activeOverlay - * @private - * @type YAHOO.widget.Overlay - */ - var activeOverlay = null; - - /** - * Returns the currently focused Overlay - * @method getActive - * @return {YAHOO.widget.Overlay} The currently focused Overlay - */ - this.getActive = function() { - return activeOverlay; - }; - - /** - * Focuses the specified Overlay - * @method focus - * @param {YAHOO.widget.Overlay} overlay The Overlay to focus - * @param {String} overlay The id of the Overlay to focus - */ - this.focus = function(overlay) { - - var o = this.find(overlay); - - if (o) { - - if (activeOverlay != o) { - - if(activeOverlay) { - - activeOverlay.blur(); - - } - - activeOverlay = o; - - YAHOO.util.Dom.addClass(activeOverlay.element, YAHOO.widget.OverlayManager.CSS_FOCUSED); - - this.overlays.sort(this.compareZIndexDesc); - - var topZIndex = YAHOO.util.Dom.getStyle(this.overlays[0].element, "zIndex"); - - if (! isNaN(topZIndex) && this.overlays[0] != overlay) { - - activeOverlay.cfg.setProperty("zIndex", (parseInt(topZIndex, 10) + 2)); - - } - - this.overlays.sort(this.compareZIndexDesc); - - o.focusEvent.fire(); - - } - - } - - }; - - /** - * Removes the specified Overlay from the manager - * @method remove - * @param {YAHOO.widget.Overlay} overlay The Overlay to remove - * @param {String} overlay The id of the Overlay to remove - */ - this.remove = function(overlay) { - var o = this.find(overlay); - if (o) { - var originalZ = YAHOO.util.Dom.getStyle(o.element, "zIndex"); - o.cfg.setProperty("zIndex", -1000, true); - this.overlays.sort(this.compareZIndexDesc); - this.overlays = this.overlays.slice(0, this.overlays.length-1); - - o.hideEvent.unsubscribe(o.blur); - o.destroyEvent.unsubscribe(this._onOverlayDestroy, o); - - if (o.element) { - - YAHOO.util.Event.removeListener(o.element, this.cfg.getProperty("focusevent"), this._onOverlayElementFocus); - - } - - o.cfg.setProperty("zIndex", originalZ, true); - o.cfg.setProperty("manager", null); - - o.focusEvent.unsubscribeAll(); - o.blurEvent.unsubscribeAll(); - - o.focusEvent = null; - o.blurEvent = null; - - o.focus = null; - o.blur = null; - } - }; - - /** - * Removes focus from all registered Overlays in the manager - * @method blurAll - */ - this.blurAll = function() { - for (var o=0;o 0) { - return true; - } - } else { - return false; - } - }, - - /** - * Attempts to locate an Overlay by instance or ID. - * @method find - * @param {YAHOO.widget.Overlay} overlay An Overlay to locate within the manager - * @param {String} overlay An Overlay id to locate within the manager - * @return {YAHOO.widget.Overlay} The requested Overlay, if found, or null if it cannot be located. - */ - find : function(overlay) { - if (overlay instanceof YAHOO.widget.Overlay) { - for (var o=0;o zIndex2) { - return -1; - } else if (zIndex1 < zIndex2) { - return 1; - } else { - return 0; - } - }, - - /** - * Shows all Overlays in the manager. - * @method showAll - */ - showAll : function() { - for (var o=0;oOR -* @param {HTMLElement} el The element representing the Tooltip -* @param {Object} userConfig The configuration object literal containing the configuration that should be set for this Overlay. See configuration documentation for more details. -*/ -YAHOO.widget.Tooltip = function(el, userConfig) { - YAHOO.widget.Tooltip.superclass.constructor.call(this, el, userConfig); -}; - -YAHOO.extend(YAHOO.widget.Tooltip, YAHOO.widget.Overlay); - -/** -* Constant representing the Tooltip CSS class -* @property YAHOO.widget.Tooltip.CSS_TOOLTIP -* @static -* @final -* @type String -*/ -YAHOO.widget.Tooltip.CSS_TOOLTIP = "yui-tt"; - -/** -* Constant representing the Tooltip's configuration properties -* @property YAHOO.widget.Tooltip._DEFAULT_CONFIG -* @private -* @final -* @type Object -*/ -YAHOO.widget.Tooltip._DEFAULT_CONFIG = { - - "PREVENT_OVERLAP": { - key: "preventoverlap", - value:true, - validator:YAHOO.lang.isBoolean, - supercedes:["x","y","xy"] - }, - - "SHOW_DELAY": { - key: "showdelay", - value:200, - validator:YAHOO.lang.isNumber - }, - - "AUTO_DISMISS_DELAY": { - key: "autodismissdelay", - value:5000, - validator:YAHOO.lang.isNumber - }, - - "HIDE_DELAY": { - key: "hidedelay", - value:250, - validator:YAHOO.lang.isNumber - }, - - "TEXT": { - key: "text", - suppressEvent:true - }, - - "CONTAINER": { - key: "container" - } - -}; - -/** -* The Tooltip initialization method. This method is automatically called by the constructor. A Tooltip is automatically rendered by the init method, and it also is set to be invisible by default, and constrained to viewport by default as well. -* @method init -* @param {String} el The element ID representing the Tooltip OR -* @param {HTMLElement} el The element representing the Tooltip -* @param {Object} userConfig The configuration object literal containing the configuration that should be set for this Tooltip. See configuration documentation for more details. -*/ -YAHOO.widget.Tooltip.prototype.init = function(el, userConfig) { - this.logger = YAHOO.widget.Tooltip.logger; - - if (document.readyState && document.readyState != "complete") { - var deferredInit = function() { - this.init(el, userConfig); - }; - YAHOO.util.Event.addListener(window, "load", deferredInit, this, true); - } else { - YAHOO.widget.Tooltip.superclass.init.call(this, el); - - this.beforeInitEvent.fire(YAHOO.widget.Tooltip); - - YAHOO.util.Dom.addClass(this.element, YAHOO.widget.Tooltip.CSS_TOOLTIP); - - if (userConfig) { - this.cfg.applyConfig(userConfig, true); - } - - this.cfg.queueProperty("visible",false); - this.cfg.queueProperty("constraintoviewport",true); - - this.setBody(""); - this.render(this.cfg.getProperty("container")); - - this.initEvent.fire(YAHOO.widget.Tooltip); - } -}; - -/** -* Initializes the class's configurable properties which can be changed using the Overlay's Config object (cfg). -* @method initDefaultConfig -*/ -YAHOO.widget.Tooltip.prototype.initDefaultConfig = function() { - YAHOO.widget.Tooltip.superclass.initDefaultConfig.call(this); - - var DEFAULT_CONFIG = YAHOO.widget.Tooltip._DEFAULT_CONFIG; - - /** - * Specifies whether the Tooltip should be kept from overlapping its context element. - * @config preventoverlap - * @type Boolean - * @default true - */ - this.cfg.addProperty( - DEFAULT_CONFIG.PREVENT_OVERLAP.key, - { - value: DEFAULT_CONFIG.PREVENT_OVERLAP.value, - validator: DEFAULT_CONFIG.PREVENT_OVERLAP.validator, - supercedes: DEFAULT_CONFIG.PREVENT_OVERLAP.supercedes - } - ); - - /** - * The number of milliseconds to wait before showing a Tooltip on mouseover. - * @config showdelay - * @type Number - * @default 200 - */ - this.cfg.addProperty( - DEFAULT_CONFIG.SHOW_DELAY.key, - { - handler: this.configShowDelay, - value: 200, - validator: DEFAULT_CONFIG.SHOW_DELAY.validator - } - ); - - /** - * The number of milliseconds to wait before automatically dismissing a Tooltip after the mouse has been resting on the context element. - * @config autodismissdelay - * @type Number - * @default 5000 - */ - this.cfg.addProperty( - DEFAULT_CONFIG.AUTO_DISMISS_DELAY.key, - { - handler: this.configAutoDismissDelay, - value: DEFAULT_CONFIG.AUTO_DISMISS_DELAY.value, - validator: DEFAULT_CONFIG.AUTO_DISMISS_DELAY.validator - } - ); - - /** - * The number of milliseconds to wait before hiding a Tooltip on mouseover. - * @config hidedelay - * @type Number - * @default 250 - */ - this.cfg.addProperty( - DEFAULT_CONFIG.HIDE_DELAY.key, - { - handler: this.configHideDelay, - value: DEFAULT_CONFIG.HIDE_DELAY.value, - validator: DEFAULT_CONFIG.HIDE_DELAY.validator - } - ); - - /** - * Specifies the Tooltip's text. - * @config text - * @type String - * @default null - */ - this.cfg.addProperty( - DEFAULT_CONFIG.TEXT.key, - { - handler: this.configText, - suppressEvent: DEFAULT_CONFIG.TEXT.suppressEvent - } - ); - - /** - * Specifies the container element that the Tooltip's markup should be rendered into. - * @config container - * @type HTMLElement/String - * @default document.body - */ - this.cfg.addProperty( - DEFAULT_CONFIG.CONTAINER.key, - { - handler: this.configContainer, - value: document.body - } - ); - - /** - * Specifies the element or elements that the Tooltip should be anchored to on mouseover. - * @config context - * @type HTMLElement[]/String[] - * @default null - */ - -}; - -// BEGIN BUILT-IN PROPERTY EVENT HANDLERS // - -/** -* The default event handler fired when the "text" property is changed. -* @method configText -* @param {String} type The CustomEvent type (usually the property name) -* @param {Object[]} args The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -* @param {Object} obj The scope object. For configuration handlers, this will usually equal the owner. -*/ -YAHOO.widget.Tooltip.prototype.configText = function(type, args, obj) { - var text = args[0]; - if (text) { - this.setBody(text); - } -}; - -/** -* The default event handler fired when the "container" property is changed. -* @method configContainer -* @param {String} type The CustomEvent type (usually the property name) -* @param {Object[]} args The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -* @param {Object} obj The scope object. For configuration handlers, this will usually equal the owner. -*/ -YAHOO.widget.Tooltip.prototype.configContainer = function(type, args, obj) { - var container = args[0]; - if (typeof container == 'string') { - this.cfg.setProperty("container", document.getElementById(container), true); - } -}; - -/** -* @method _removeEventListeners -* @description Removes all of the DOM event handlers from the HTML element(s) -* that trigger the display of the tooltip. -* @protected -*/ -YAHOO.widget.Tooltip.prototype._removeEventListeners = function() { - - var aElements = this._context; - - if (aElements) { - - var nElements = aElements.length; - - if (nElements > 0) { - - var i = nElements - 1, - oElement; - - do { - - oElement = aElements[i]; - - YAHOO.util.Event.removeListener(oElement, "mouseover", this.onContextMouseOver); - YAHOO.util.Event.removeListener(oElement, "mousemove", this.onContextMouseMove); - YAHOO.util.Event.removeListener(oElement, "mouseout", this.onContextMouseOut); - - } - while(i--); - - } - - } - -}; - -/** -* The default event handler fired when the "context" property is changed. -* @method configContext -* @param {String} type The CustomEvent type (usually the property name) -* @param {Object[]} args The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -* @param {Object} obj The scope object. For configuration handlers, this will usually equal the owner. -*/ -YAHOO.widget.Tooltip.prototype.configContext = function(type, args, obj) { - var context = args[0]; - if (context) { - - // Normalize parameter into an array - if (! (context instanceof Array)) { - if (typeof context == "string") { - this.cfg.setProperty("context", [document.getElementById(context)], true); - } else { // Assuming this is an element - this.cfg.setProperty("context", [context], true); - } - context = this.cfg.getProperty("context"); - } - - - // Remove any existing mouseover/mouseout listeners - this._removeEventListeners(); - - // Add mouseover/mouseout listeners to context elements - this._context = context; - - var aElements = this._context; - - if (aElements) { - - var nElements = aElements.length; - - if (nElements > 0) { - - var i = nElements - 1, - oElement; - - do { - - oElement = aElements[i]; - - YAHOO.util.Event.addListener(oElement, "mouseover", this.onContextMouseOver, this); - YAHOO.util.Event.addListener(oElement, "mousemove", this.onContextMouseMove, this); - YAHOO.util.Event.addListener(oElement, "mouseout", this.onContextMouseOut, this); - - } - while(i--); - - } - - } - - } -}; - -// END BUILT-IN PROPERTY EVENT HANDLERS // - -// BEGIN BUILT-IN DOM EVENT HANDLERS // - -/** -* The default event handler fired when the user moves the mouse while over the context element. -* @method onContextMouseMove -* @param {DOMEvent} e The current DOM event -* @param {Object} obj The object argument -*/ -YAHOO.widget.Tooltip.prototype.onContextMouseMove = function(e, obj) { - obj.pageX = YAHOO.util.Event.getPageX(e); - obj.pageY = YAHOO.util.Event.getPageY(e); - -}; - -/** -* The default event handler fired when the user mouses over the context element. -* @method onContextMouseOver -* @param {DOMEvent} e The current DOM event -* @param {Object} obj The object argument -*/ -YAHOO.widget.Tooltip.prototype.onContextMouseOver = function(e, obj) { - - if (obj.hideProcId) { - clearTimeout(obj.hideProcId); - obj.logger.log("Clearing hide timer: " + obj.hideProcId, "time"); - obj.hideProcId = null; - } - - var context = this; - YAHOO.util.Event.addListener(context, "mousemove", obj.onContextMouseMove, obj); - - if (context.title) { - obj._tempTitle = context.title; - context.title = ""; - } - - /** - * The unique process ID associated with the thread responsible for showing the Tooltip. - * @type int - */ - obj.showProcId = obj.doShow(e, context); - obj.logger.log("Setting show tooltip timeout: " + this.showProcId, "time"); -}; - -/** -* The default event handler fired when the user mouses out of the context element. -* @method onContextMouseOut -* @param {DOMEvent} e The current DOM event -* @param {Object} obj The object argument -*/ -YAHOO.widget.Tooltip.prototype.onContextMouseOut = function(e, obj) { - var el = this; - - if (obj._tempTitle) { - el.title = obj._tempTitle; - obj._tempTitle = null; - } - - if (obj.showProcId) { - clearTimeout(obj.showProcId); - obj.logger.log("Clearing show timer: " + obj.showProcId, "time"); - obj.showProcId = null; - } - - if (obj.hideProcId) { - clearTimeout(obj.hideProcId); - obj.logger.log("Clearing hide timer: " + obj.hideProcId, "time"); - obj.hideProcId = null; - } - - - obj.hideProcId = setTimeout(function() { - obj.hide(); - }, obj.cfg.getProperty("hidedelay")); -}; - -// END BUILT-IN DOM EVENT HANDLERS // - -/** -* Processes the showing of the Tooltip by setting the timeout delay and offset of the Tooltip. -* @method doShow -* @param {DOMEvent} e The current DOM event -* @return {Number} The process ID of the timeout function associated with doShow -*/ -YAHOO.widget.Tooltip.prototype.doShow = function(e, context) { - - var yOffset = 25; - if (this.browser == "opera" && context.tagName && context.tagName.toUpperCase() == "A") { - yOffset += 12; - } - - var me = this; - return setTimeout( - function() { - if (me._tempTitle) { - me.setBody(me._tempTitle); - } else { - me.cfg.refireEvent("text"); - } - - me.logger.log("Show tooltip", "time"); - me.moveTo(me.pageX, me.pageY + yOffset); - if (me.cfg.getProperty("preventoverlap")) { - me.preventOverlap(me.pageX, me.pageY); - } - - YAHOO.util.Event.removeListener(context, "mousemove", me.onContextMouseMove); - - me.show(); - me.hideProcId = me.doHide(); - me.logger.log("Hide tooltip time active: " + me.hideProcId, "time"); - }, - this.cfg.getProperty("showdelay")); -}; - -/** -* Sets the timeout for the auto-dismiss delay, which by default is 5 seconds, meaning that a tooltip will automatically dismiss itself after 5 seconds of being displayed. -* @method doHide -*/ -YAHOO.widget.Tooltip.prototype.doHide = function() { - var me = this; - me.logger.log("Setting hide tooltip timeout", "time"); - return setTimeout( - function() { - me.logger.log("Hide tooltip", "time"); - me.hide(); - }, - this.cfg.getProperty("autodismissdelay")); -}; - -/** -* Fired when the Tooltip is moved, this event handler is used to prevent the Tooltip from overlapping with its context element. -* @method preventOverlay -* @param {Number} pageX The x coordinate position of the mouse pointer -* @param {Number} pageY The y coordinate position of the mouse pointer -*/ -YAHOO.widget.Tooltip.prototype.preventOverlap = function(pageX, pageY) { - - var height = this.element.offsetHeight; - - var elementRegion = YAHOO.util.Dom.getRegion(this.element); - - elementRegion.top -= 5; - elementRegion.left -= 5; - elementRegion.right += 5; - elementRegion.bottom += 5; - - var mousePoint = new YAHOO.util.Point(pageX, pageY); - - this.logger.log("context " + elementRegion, "ttip"); - this.logger.log("mouse " + mousePoint, "ttip"); - - if (elementRegion.contains(mousePoint)) { - this.logger.log("OVERLAP", "warn"); - this.cfg.setProperty("y", (pageY-height-5)); - } -}; - -/** -* Removes the Tooltip element from the DOM and sets all child elements to null. -* @method destroy -*/ -YAHOO.widget.Tooltip.prototype.destroy = function() { - - // Remove any existing mouseover/mouseout listeners - this._removeEventListeners(); - - YAHOO.widget.Tooltip.superclass.destroy.call(this); - -}; - -/** -* Returns a string representation of the object. -* @method toString -* @return {String} The string representation of the Tooltip -*/ -YAHOO.widget.Tooltip.prototype.toString = function() { - return "Tooltip " + this.id; -}; -/** -* Panel is an implementation of Overlay that behaves like an OS window, with a draggable header and an optional close icon at the top right. -* @namespace YAHOO.widget -* @class Panel -* @extends YAHOO.widget.Overlay -* @constructor -* @param {String} el The element ID representing the Panel OR -* @param {HTMLElement} el The element representing the Panel -* @param {Object} userConfig The configuration object literal containing the configuration that should be set for this Panel. See configuration documentation for more details. -*/ -YAHOO.widget.Panel = function(el, userConfig) { - YAHOO.widget.Panel.superclass.constructor.call(this, el, userConfig); -}; - -YAHOO.extend(YAHOO.widget.Panel, YAHOO.widget.Overlay); - -/** -* Constant representing the default CSS class used for a Panel -* @property YAHOO.widget.Panel.CSS_PANEL -* @static -* @final -* @type String -*/ -YAHOO.widget.Panel.CSS_PANEL = "yui-panel"; - -/** -* Constant representing the default CSS class used for a Panel's wrapping container -* @property YAHOO.widget.Panel.CSS_PANEL_CONTAINER -* @static -* @final -* @type String -*/ -YAHOO.widget.Panel.CSS_PANEL_CONTAINER = "yui-panel-container"; - -/** -* Constant representing the name of the Panel's events -* @property YAHOO.widget.Panel._EVENT_TYPES -* @private -* @final -* @type Object -*/ -YAHOO.widget.Panel._EVENT_TYPES = { - - "SHOW_MASK": "showMask", - "HIDE_MASK": "hideMask", - "DRAG": "drag" - -}; - -/** -* Constant representing the Panel's configuration properties -* @property YAHOO.widget.Panel._DEFAULT_CONFIG -* @private -* @final -* @type Object -*/ -YAHOO.widget.Panel._DEFAULT_CONFIG = { - - "CLOSE": { - key: "close", - value:true, - validator:YAHOO.lang.isBoolean, - supercedes:["visible"] - }, - - "DRAGGABLE": { - key: "draggable", - value:(YAHOO.util.DD ? true : false), - validator:YAHOO.lang.isBoolean, - supercedes:["visible"] - }, - - "UNDERLAY": { - key: "underlay", - value:"shadow", - supercedes:["visible"] - }, - - "MODAL": { - key: "modal", - value:false, - validator:YAHOO.lang.isBoolean, - supercedes:["visible"] - }, - - "KEY_LISTENERS": { - key: "keylisteners", - suppressEvent:true, - supercedes:["visible"] - } - -}; - -/** -* The Overlay initialization method, which is executed for Overlay and all of its subclasses. This method is automatically called by the constructor, and sets up all DOM references for pre-existing markup, and creates required markup if it is not already present. -* @method init -* @param {String} el The element ID representing the Overlay OR -* @param {HTMLElement} el The element representing the Overlay -* @param {Object} userConfig The configuration object literal containing the configuration that should be set for this Overlay. See configuration documentation for more details. -*/ -YAHOO.widget.Panel.prototype.init = function(el, userConfig) { - YAHOO.widget.Panel.superclass.init.call(this, el/*, userConfig*/); // Note that we don't pass the user config in here yet because we only want it executed once, at the lowest subclass level - - this.beforeInitEvent.fire(YAHOO.widget.Panel); - - YAHOO.util.Dom.addClass(this.element, YAHOO.widget.Panel.CSS_PANEL); - - this.buildWrapper(); - - if (userConfig) { - this.cfg.applyConfig(userConfig, true); - } - - this.beforeRenderEvent.subscribe(function() { - var draggable = this.cfg.getProperty("draggable"); - if (draggable) { - if (! this.header) { - this.setHeader(" "); - } - } - }, this, true); - - - this.renderEvent.subscribe(function() { - - /* - If no value for the "width" configuration property was specified, - set it to the offsetWidth. If the "width" is not set, then in IE - you can only drag the panel when you put the cursor on the - header's text. - */ - - var sWidth = this.cfg.getProperty("width"); - - if(!sWidth) { - - this.cfg.setProperty("width", (this.element.offsetWidth + "px")); - - } - - }); - - - var me = this; - - var doBlur = function() { - this.blur(); - }; - - this.showMaskEvent.subscribe(function() { - - var checkFocusable = function(el) { - - var sTagName = el.tagName.toUpperCase(), - bFocusable = false; - - switch(sTagName) { - - case "A": - case "BUTTON": - case "SELECT": - case "TEXTAREA": - - if (! YAHOO.util.Dom.isAncestor(me.element, el)) { - YAHOO.util.Event.addListener(el, "focus", doBlur, el, true); - bFocusable = true; - } - - break; - - case "INPUT": - - if (el.type != "hidden" && ! YAHOO.util.Dom.isAncestor(me.element, el)) { - - YAHOO.util.Event.addListener(el, "focus", doBlur, el, true); - bFocusable = true; - - } - - break; - - } - - return bFocusable; - - }; - - this.focusableElements = YAHOO.util.Dom.getElementsBy(checkFocusable); - }, this, true); - - this.hideMaskEvent.subscribe(function() { - for (var i=0;i
        "] : - - ["

        ", label, " ", - totalTime, "ms (+", elapsedTime, ") ", - localTime, ": ", - sourceAndDetail, ": ", - msg, "

        "]; - - return output.join(""); -}; - -/** - * Converts input chars "<", ">", and "&" to HTML entities. - * - * @method html2Text - * @param sHtml {String} String to convert. - * @private - */ -YAHOO.widget.LogReader.prototype.html2Text = function(sHtml) { - if(sHtml) { - sHtml += ""; - return sHtml.replace(/&/g, "&").replace(//g, ">"); - } - return ""; -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Private member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Internal class member to index multiple LogReader instances. - * - * @property _memberName - * @static - * @type Number - * @default 0 - * @private - */ -YAHOO.widget.LogReader._index = 0; - -/** - * Name of LogReader instance. - * - * @property _sName - * @type String - * @private - */ -YAHOO.widget.LogReader.prototype._sName = null; - -//TODO: remove -/** - * A class member shared by all LogReaders if a container needs to be - * created during instantiation. Will be null if a container element never needs to - * be created on the fly, such as when the implementer passes in their own element. - * - * @property _elDefaultContainer - * @type HTMLElement - * @private - */ -//YAHOO.widget.LogReader._elDefaultContainer = null; - -/** - * Buffer of log message objects for batch output. - * - * @property _buffer - * @type Object[] - * @private - */ -YAHOO.widget.LogReader.prototype._buffer = null; - -/** - * Number of log messages output to console. - * - * @property _consoleMsgCount - * @type Number - * @default 0 - * @private - */ -YAHOO.widget.LogReader.prototype._consoleMsgCount = 0; - -/** - * Date of last output log message. - * - * @property _lastTime - * @type Date - * @private - */ -YAHOO.widget.LogReader.prototype._lastTime = null; - -/** - * Batched output timeout ID. - * - * @property _timeout - * @type Number - * @private - */ -YAHOO.widget.LogReader.prototype._timeout = null; - -/** - * Hash of filters and their related checkbox elements. - * - * @property _filterCheckboxes - * @type Object - * @private - */ -YAHOO.widget.LogReader.prototype._filterCheckboxes = null; - -/** - * Array of filters for log message categories. - * - * @property _categoryFilters - * @type String[] - * @private - */ -YAHOO.widget.LogReader.prototype._categoryFilters = null; - -/** - * Array of filters for log message sources. - * - * @property _sourceFilters - * @type String[] - * @private - */ -YAHOO.widget.LogReader.prototype._sourceFilters = null; - -/** - * LogReader container element. - * - * @property _elContainer - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elContainer = null; - -/** - * LogReader header element. - * - * @property _elHd - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elHd = null; - -/** - * LogReader collapse element. - * - * @property _elCollapse - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elCollapse = null; - -/** - * LogReader collapse button element. - * - * @property _btnCollapse - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._btnCollapse = null; - -/** - * LogReader title header element. - * - * @property _title - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._title = null; - -/** - * LogReader console element. - * - * @property _elConsole - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elConsole = null; - -/** - * LogReader footer element. - * - * @property _elFt - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elFt = null; - -/** - * LogReader buttons container element. - * - * @property _elBtns - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elBtns = null; - -/** - * Container element for LogReader category filter checkboxes. - * - * @property _elCategoryFilters - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elCategoryFilters = null; - -/** - * Container element for LogReader source filter checkboxes. - * - * @property _elSourceFilters - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elSourceFilters = null; - -/** - * LogReader pause button element. - * - * @property _btnPause - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._btnPause = null; - -/** - * Clear button element. - * - * @property _btnClear - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._btnClear = null; - -///////////////////////////////////////////////////////////////////////////// -// -// Private methods -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Creates the UI for a category filter in the LogReader footer element. - * - * @method _createCategoryCheckbox - * @param sCategory {String} Category name. - * @private - */ -YAHOO.widget.LogReader.prototype._createCategoryCheckbox = function(sCategory) { - var oSelf = this; - - if(this._elFt) { - var elParent = this._elCategoryFilters; - var filters = this._categoryFilters; - - var elFilter = elParent.appendChild(document.createElement("span")); - elFilter.className = "yui-log-filtergrp"; - - // Append el at the end so IE 5.5 can set "type" attribute - // and THEN set checked property - var chkCategory = document.createElement("input"); - chkCategory.id = "yui-log-filter-" + sCategory + this._sName; - chkCategory.className = "yui-log-filter-" + sCategory; - chkCategory.type = "checkbox"; - chkCategory.category = sCategory; - chkCategory = elFilter.appendChild(chkCategory); - chkCategory.checked = true; - - // Add this checked filter to the internal array of filters - filters.push(sCategory); - // Subscribe to the click event - YAHOO.util.Event.addListener(chkCategory,'click',oSelf._onCheckCategory,oSelf); - - // Create and class the text label - var lblCategory = elFilter.appendChild(document.createElement("label")); - lblCategory.htmlFor = chkCategory.id; - lblCategory.className = sCategory; - lblCategory.innerHTML = sCategory; - - this._filterCheckboxes[sCategory] = chkCategory; - } -}; - -/** - * Creates a checkbox in the LogReader footer element to filter by source. - * - * @method _createSourceCheckbox - * @param sSource {String} Source name. - * @private - */ -YAHOO.widget.LogReader.prototype._createSourceCheckbox = function(sSource) { - var oSelf = this; - - if(this._elFt) { - var elParent = this._elSourceFilters; - var filters = this._sourceFilters; - - var elFilter = elParent.appendChild(document.createElement("span")); - elFilter.className = "yui-log-filtergrp"; - - // Append el at the end so IE 5.5 can set "type" attribute - // and THEN set checked property - var chkSource = document.createElement("input"); - chkSource.id = "yui-log-filter" + sSource + this._sName; - chkSource.className = "yui-log-filter" + sSource; - chkSource.type = "checkbox"; - chkSource.source = sSource; - chkSource = elFilter.appendChild(chkSource); - chkSource.checked = true; - - // Add this checked filter to the internal array of filters - filters.push(sSource); - // Subscribe to the click event - YAHOO.util.Event.addListener(chkSource,'click',oSelf._onCheckSource,oSelf); - - // Create and class the text label - var lblSource = elFilter.appendChild(document.createElement("label")); - lblSource.htmlFor = chkSource.id; - lblSource.className = sSource; - lblSource.innerHTML = sSource; - - this._filterCheckboxes[sSource] = chkSource; - } -}; - -/** - * Reprints all log messages in the stack through filters. - * - * @method _filterLogs - * @private - */ -YAHOO.widget.LogReader.prototype._filterLogs = function() { - // Reprint stack with new filters - if (this._elConsole !== null) { - this.clearConsole(); - this._printToConsole(YAHOO.widget.Logger.getStack()); - } -}; - -/** - * Sends buffer of log messages to output and clears buffer. - * - * @method _printBuffer - * @private - */ -YAHOO.widget.LogReader.prototype._printBuffer = function() { - this._timeout = null; - - if(this._elConsole !== null) { - var thresholdMax = this.thresholdMax; - thresholdMax = (thresholdMax && !isNaN(thresholdMax)) ? thresholdMax : 500; - if(this._consoleMsgCount < thresholdMax) { - var entries = []; - for (var i=0; i this.thresholdMax)) { - thresholdMin = 0; - } - var entriesStartIndex = (entriesLen > thresholdMin) ? (entriesLen - thresholdMin) : 0; - - // Iterate through all log entries - var sourceFiltersLen = this._sourceFilters.length; - var categoryFiltersLen = this._categoryFilters.length; - for(var i=entriesStartIndex; i 0) { - // Substring until first space - sClass = sSource.substring(0,spaceIndex); - // The rest of the source - sDetail = sSource.substring(spaceIndex,sSource.length); - } - else { - sClass = sSource; - } - if(this._isNewSource(sClass)) { - this._createNewSource(sClass); - } - } - - var timestamp = new Date(); - var logEntry = new YAHOO.widget.LogMsg({ - msg: sMsg, - time: timestamp, - category: sCategory, - source: sClass, - sourceDetail: sDetail - }); - - var stack = this._stack; - var maxStackEntries = this.maxStackEntries; - if(maxStackEntries && !isNaN(maxStackEntries) && - (stack.length >= maxStackEntries)) { - stack.shift(); - } - stack.push(logEntry); - this.newLogEvent.fire(logEntry); - - if(this._browserConsoleEnabled) { - this._printToBrowserConsole(logEntry); - } - return true; - } - else { - return false; - } -}; - -/** - * Resets internal stack and startTime, enables Logger, and fires logResetEvent. - * - * @method reset - */ -YAHOO.widget.Logger.reset = function() { - this._stack = []; - this._startTime = new Date().getTime(); - this.loggerEnabled = true; - this.log("Logger reset"); - this.logResetEvent.fire(); -}; - -/** - * Public accessor to internal stack of log message objects. - * - * @method getStack - * @return {Object[]} Array of log message objects. - */ -YAHOO.widget.Logger.getStack = function() { - return this._stack; -}; - -/** - * Public accessor to internal start time. - * - * @method getStartTime - * @return {Date} Internal date of when Logger singleton was initialized. - */ -YAHOO.widget.Logger.getStartTime = function() { - return this._startTime; -}; - -/** - * Disables output to the browser's global console.log() function, which is used - * by the Firebug extension to Firefox as well as Safari. - * - * @method disableBrowserConsole - */ -YAHOO.widget.Logger.disableBrowserConsole = function() { - YAHOO.log("Logger output to the function console.log() has been disabled."); - this._browserConsoleEnabled = false; -}; - -/** - * Enables output to the browser's global console.log() function, which is used - * by the Firebug extension to Firefox as well as Safari. - * - * @method enableBrowserConsole - */ -YAHOO.widget.Logger.enableBrowserConsole = function() { - this._browserConsoleEnabled = true; - YAHOO.log("Logger output to the function console.log() has been enabled."); -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Public events -// -///////////////////////////////////////////////////////////////////////////// - - /** - * Fired when a new category has been created. - * - * @event categoryCreateEvent - * @param sCategory {String} Category name. - */ -YAHOO.widget.Logger.categoryCreateEvent = - new YAHOO.util.CustomEvent("categoryCreate", this, true); - - /** - * Fired when a new source has been named. - * - * @event sourceCreateEvent - * @param sSource {String} Source name. - */ -YAHOO.widget.Logger.sourceCreateEvent = - new YAHOO.util.CustomEvent("sourceCreate", this, true); - - /** - * Fired when a new log message has been created. - * - * @event newLogEvent - * @param sMsg {String} Log message. - */ -YAHOO.widget.Logger.newLogEvent = new YAHOO.util.CustomEvent("newLog", this, true); - -/** - * Fired when the Logger has been reset has been created. - * - * @event logResetEvent - */ -YAHOO.widget.Logger.logResetEvent = new YAHOO.util.CustomEvent("logReset", this, true); - -///////////////////////////////////////////////////////////////////////////// -// -// Private methods -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Creates a new category of log messages and fires categoryCreateEvent. - * - * @method _createNewCategory - * @param sCategory {String} Category name. - * @private - */ -YAHOO.widget.Logger._createNewCategory = function(sCategory) { - this.categories.push(sCategory); - this.categoryCreateEvent.fire(sCategory); -}; - -/** - * Checks to see if a category has already been created. - * - * @method _isNewCategory - * @param sCategory {String} Category name. - * @return {Boolean} Returns true if category is unknown, else returns false. - * @private - */ -YAHOO.widget.Logger._isNewCategory = function(sCategory) { - for(var i=0; i < this.categories.length; i++) { - if(sCategory == this.categories[i]) { - return false; - } - } - return true; -}; - -/** - * Creates a new source of log messages and fires sourceCreateEvent. - * - * @method _createNewSource - * @param sSource {String} Source name. - * @private - */ -YAHOO.widget.Logger._createNewSource = function(sSource) { - this.sources.push(sSource); - this.sourceCreateEvent.fire(sSource); -}; - -/** - * Checks to see if a source already exists. - * - * @method _isNewSource - * @param sSource {String} Source name. - * @return {Boolean} Returns true if source is unknown, else returns false. - * @private - */ -YAHOO.widget.Logger._isNewSource = function(sSource) { - if(sSource) { - for(var i=0; i < this.sources.length; i++) { - if(sSource == this.sources[i]) { - return false; - } - } - return true; - } -}; - -/** - * Outputs a log message to global console.log() function. - * - * @method _printToBrowserConsole - * @param oEntry {Object} Log entry object. - * @private - */ -YAHOO.widget.Logger._printToBrowserConsole = function(oEntry) { - if(window.console && console.log) { - var category = oEntry.category; - var label = oEntry.category.substring(0,4).toUpperCase(); - - var time = oEntry.time; - if (time.toLocaleTimeString) { - var localTime = time.toLocaleTimeString(); - } - else { - localTime = time.toString(); - } - - var msecs = time.getTime(); - var elapsedTime = (YAHOO.widget.Logger._lastTime) ? - (msecs - YAHOO.widget.Logger._lastTime) : 0; - YAHOO.widget.Logger._lastTime = msecs; - - var output = - localTime + " (" + - elapsedTime + "ms): " + - oEntry.source + ": " + - oEntry.msg; - - console.log(output); - } -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Private event handlers -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Handles logging of messages due to window error events. - * - * @method _onWindowError - * @param sMsg {String} The error message. - * @param sUrl {String} URL of the error. - * @param sLine {String} Line number of the error. - * @private - */ -YAHOO.widget.Logger._onWindowError = function(sMsg,sUrl,sLine) { - // Logger is not in scope of this event handler - try { - YAHOO.widget.Logger.log(sMsg+' ('+sUrl+', line '+sLine+')', "window"); - if(YAHOO.widget.Logger._origOnWindowError) { - YAHOO.widget.Logger._origOnWindowError(); - } - } - catch(e) { - return false; - } -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Enable handling of native JavaScript errors -// NB: Not all browsers support the window.onerror event -// -///////////////////////////////////////////////////////////////////////////// - -if(window.onerror) { - // Save any previously defined handler to call - YAHOO.widget.Logger._origOnWindowError = window.onerror; -} -window.onerror = YAHOO.widget.Logger._onWindowError; - -///////////////////////////////////////////////////////////////////////////// -// -// First log -// -///////////////////////////////////////////////////////////////////////////// - -YAHOO.widget.Logger.log("Logger initialized"); - - -YAHOO.register("logger", YAHOO.widget.Logger, {version: "2.2.2", build: "204"}); diff --git a/www/extras/yui/build/logger/logger-min.js b/www/extras/yui/build/logger/logger-min.js deleted file mode 100644 index 3cd433ad5..000000000 --- a/www/extras/yui/build/logger/logger-min.js +++ /dev/null @@ -1,66 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ - -YAHOO.widget.LogMsg=function(oConfigs){if(oConfigs&&(oConfigs.constructor==Object)){for(var param in oConfigs){this[param]=oConfigs[param];}}};YAHOO.widget.LogMsg.prototype.msg=null;YAHOO.widget.LogMsg.prototype.time=null;YAHOO.widget.LogMsg.prototype.category=null;YAHOO.widget.LogMsg.prototype.source=null;YAHOO.widget.LogMsg.prototype.sourceDetail=null;YAHOO.widget.LogWriter=function(sSource){if(!sSource){YAHOO.log("Could not instantiate LogWriter due to invalid source.","error","LogWriter");return;} -this._source=sSource;};YAHOO.widget.LogWriter.prototype.toString=function(){return"LogWriter "+this._sSource;};YAHOO.widget.LogWriter.prototype.log=function(sMsg,sCategory){YAHOO.widget.Logger.log(sMsg,sCategory,this._source);};YAHOO.widget.LogWriter.prototype.getSource=function(){return this._sSource;};YAHOO.widget.LogWriter.prototype.setSource=function(sSource){if(!sSource){YAHOO.log("Could not set source due to invalid source.","error",this.toString());return;} -else{this._sSource=sSource;}};YAHOO.widget.LogWriter.prototype._source=null;YAHOO.widget.LogReader=function(elContainer,oConfigs){var oSelf=this;this._sName=YAHOO.widget.LogReader._index;YAHOO.widget.LogReader._index++;if(oConfigs&&(oConfigs.constructor==Object)){for(var param in oConfigs){this[param]=oConfigs[param];}} -elContainer=YAHOO.util.Dom.get(elContainer);if(elContainer&&elContainer.tagName&&(elContainer.tagName.toLowerCase()=="div")){this._elContainer=elContainer;YAHOO.util.Dom.addClass(this._elContainer,"yui-log");} -else{this._elContainer=document.body.appendChild(document.createElement("div"));YAHOO.util.Dom.addClass(this._elContainer,"yui-log");YAHOO.util.Dom.addClass(this._elContainer,"yui-log-container");var containerStyle=this._elContainer.style;if(this.width){containerStyle.width=this.width;} -if(this.right){containerStyle.right=this.right;} -if(this.top){containerStyle.top=this.top;} -if(this.left){containerStyle.left=this.left;containerStyle.right="auto";} -if(this.bottom){containerStyle.bottom=this.bottom;containerStyle.top="auto";} -if(this.fontSize){containerStyle.fontSize=this.fontSize;} -if(navigator.userAgent.toLowerCase().indexOf("opera")!=-1){document.body.style+='';}} -if(this._elContainer){if(!this._elHd){this._elHd=this._elContainer.appendChild(document.createElement("div"));this._elHd.id="yui-log-hd"+this._sName;this._elHd.className="yui-log-hd";this._elCollapse=this._elHd.appendChild(document.createElement("div"));this._elCollapse.className="yui-log-btns";this._btnCollapse=document.createElement("input");this._btnCollapse.type="button";this._btnCollapse.style.fontSize=YAHOO.util.Dom.getStyle(this._elContainer,"fontSize");this._btnCollapse.className="yui-log-button";this._btnCollapse.value="Collapse";this._btnCollapse=this._elCollapse.appendChild(this._btnCollapse);YAHOO.util.Event.addListener(oSelf._btnCollapse,'click',oSelf._onClickCollapseBtn,oSelf);this._title=this._elHd.appendChild(document.createElement("h4"));this._title.innerHTML="Logger Console";} -if(!this._elConsole){this._elConsole=this._elContainer.appendChild(document.createElement("div"));this._elConsole.className="yui-log-bd";if(this.height){this._elConsole.style.height=this.height;}} -if(!this._elFt&&this.footerEnabled){this._elFt=this._elContainer.appendChild(document.createElement("div"));this._elFt.className="yui-log-ft";this._elBtns=this._elFt.appendChild(document.createElement("div"));this._elBtns.className="yui-log-btns";this._btnPause=document.createElement("input");this._btnPause.type="button";this._btnPause.style.fontSize=YAHOO.util.Dom.getStyle(this._elContainer,"fontSize");this._btnPause.className="yui-log-button";this._btnPause.value="Pause";this._btnPause=this._elBtns.appendChild(this._btnPause);YAHOO.util.Event.addListener(oSelf._btnPause,'click',oSelf._onClickPauseBtn,oSelf);this._btnClear=document.createElement("input");this._btnClear.type="button";this._btnClear.style.fontSize=YAHOO.util.Dom.getStyle(this._elContainer,"fontSize");this._btnClear.className="yui-log-button";this._btnClear.value="Clear";this._btnClear=this._elBtns.appendChild(this._btnClear);YAHOO.util.Event.addListener(oSelf._btnClear,'click',oSelf._onClickClearBtn,oSelf);this._elCategoryFilters=this._elFt.appendChild(document.createElement("div"));this._elCategoryFilters.className="yui-log-categoryfilters";this._elSourceFilters=this._elFt.appendChild(document.createElement("div"));this._elSourceFilters.className="yui-log-sourcefilters";}} -if(YAHOO.util.DD&&this.draggable){var ylog_dd=new YAHOO.util.DD(this._elContainer);ylog_dd.setHandleElId(this._elHd.id);this._elHd.style.cursor="move";} -if(!this._buffer){this._buffer=[];} -this._lastTime=YAHOO.widget.Logger.getStartTime();YAHOO.widget.Logger.newLogEvent.subscribe(this._onNewLog,this);YAHOO.widget.Logger.logResetEvent.subscribe(this._onReset,this);this._filterCheckboxes={};this._categoryFilters=[];var catsLen=YAHOO.widget.Logger.categories.length;if(this._elCategoryFilters){for(var i=0;i-1){return;}} -else{for(var i=0;i-1){return;}} -else{for(var i=0;i

        ",label," ",totalTime,"ms (+",elapsedTime,") ",localTime,": ","

        ",sourceAndDetail,":

        ",msg,"

        "]:["

        ",label," ",totalTime,"ms (+",elapsedTime,") ",localTime,": ",sourceAndDetail,": ",msg,"

        "];return output.join("");};YAHOO.widget.LogReader.prototype.html2Text=function(sHtml){if(sHtml){sHtml+="";return sHtml.replace(/&/g,"&").replace(//g,">");} -return"";};YAHOO.widget.LogReader._index=0;YAHOO.widget.LogReader.prototype._sName=null;YAHOO.widget.LogReader.prototype._buffer=null;YAHOO.widget.LogReader.prototype._consoleMsgCount=0;YAHOO.widget.LogReader.prototype._lastTime=null;YAHOO.widget.LogReader.prototype._timeout=null;YAHOO.widget.LogReader.prototype._filterCheckboxes=null;YAHOO.widget.LogReader.prototype._categoryFilters=null;YAHOO.widget.LogReader.prototype._sourceFilters=null;YAHOO.widget.LogReader.prototype._elContainer=null;YAHOO.widget.LogReader.prototype._elHd=null;YAHOO.widget.LogReader.prototype._elCollapse=null;YAHOO.widget.LogReader.prototype._btnCollapse=null;YAHOO.widget.LogReader.prototype._title=null;YAHOO.widget.LogReader.prototype._elConsole=null;YAHOO.widget.LogReader.prototype._elFt=null;YAHOO.widget.LogReader.prototype._elBtns=null;YAHOO.widget.LogReader.prototype._elCategoryFilters=null;YAHOO.widget.LogReader.prototype._elSourceFilters=null;YAHOO.widget.LogReader.prototype._btnPause=null;YAHOO.widget.LogReader.prototype._btnClear=null;YAHOO.widget.LogReader.prototype._createCategoryCheckbox=function(sCategory){var oSelf=this;if(this._elFt){var elParent=this._elCategoryFilters;var filters=this._categoryFilters;var elFilter=elParent.appendChild(document.createElement("span"));elFilter.className="yui-log-filtergrp";var chkCategory=document.createElement("input");chkCategory.id="yui-log-filter-"+sCategory+this._sName;chkCategory.className="yui-log-filter-"+sCategory;chkCategory.type="checkbox";chkCategory.category=sCategory;chkCategory=elFilter.appendChild(chkCategory);chkCategory.checked=true;filters.push(sCategory);YAHOO.util.Event.addListener(chkCategory,'click',oSelf._onCheckCategory,oSelf);var lblCategory=elFilter.appendChild(document.createElement("label"));lblCategory.htmlFor=chkCategory.id;lblCategory.className=sCategory;lblCategory.innerHTML=sCategory;this._filterCheckboxes[sCategory]=chkCategory;}};YAHOO.widget.LogReader.prototype._createSourceCheckbox=function(sSource){var oSelf=this;if(this._elFt){var elParent=this._elSourceFilters;var filters=this._sourceFilters;var elFilter=elParent.appendChild(document.createElement("span"));elFilter.className="yui-log-filtergrp";var chkSource=document.createElement("input");chkSource.id="yui-log-filter"+sSource+this._sName;chkSource.className="yui-log-filter"+sSource;chkSource.type="checkbox";chkSource.source=sSource;chkSource=elFilter.appendChild(chkSource);chkSource.checked=true;filters.push(sSource);YAHOO.util.Event.addListener(chkSource,'click',oSelf._onCheckSource,oSelf);var lblSource=elFilter.appendChild(document.createElement("label"));lblSource.htmlFor=chkSource.id;lblSource.className=sSource;lblSource.innerHTML=sSource;this._filterCheckboxes[sSource]=chkSource;}};YAHOO.widget.LogReader.prototype._filterLogs=function(){if(this._elConsole!==null){this.clearConsole();this._printToConsole(YAHOO.widget.Logger.getStack());}};YAHOO.widget.LogReader.prototype._printBuffer=function(){this._timeout=null;if(this._elConsole!==null){var thresholdMax=this.thresholdMax;thresholdMax=(thresholdMax&&!isNaN(thresholdMax))?thresholdMax:500;if(this._consoleMsgCountthis.thresholdMax)){thresholdMin=0;} -var entriesStartIndex=(entriesLen>thresholdMin)?(entriesLen-thresholdMin):0;var sourceFiltersLen=this._sourceFilters.length;var categoryFiltersLen=this._categoryFilters.length;for(var i=entriesStartIndex;i0){sClass=sSource.substring(0,spaceIndex);sDetail=sSource.substring(spaceIndex,sSource.length);} -else{sClass=sSource;} -if(this._isNewSource(sClass)){this._createNewSource(sClass);}} -var timestamp=new Date();var logEntry=new YAHOO.widget.LogMsg({msg:sMsg,time:timestamp,category:sCategory,source:sClass,sourceDetail:sDetail});var stack=this._stack;var maxStackEntries=this.maxStackEntries;if(maxStackEntries&&!isNaN(maxStackEntries)&&(stack.length>=maxStackEntries)){stack.shift();} -stack.push(logEntry);this.newLogEvent.fire(logEntry);if(this._browserConsoleEnabled){this._printToBrowserConsole(logEntry);} -return true;} -else{return false;}};YAHOO.widget.Logger.reset=function(){this._stack=[];this._startTime=new Date().getTime();this.loggerEnabled=true;this.log("Logger reset");this.logResetEvent.fire();};YAHOO.widget.Logger.getStack=function(){return this._stack;};YAHOO.widget.Logger.getStartTime=function(){return this._startTime;};YAHOO.widget.Logger.disableBrowserConsole=function(){YAHOO.log("Logger output to the function console.log() has been disabled.");this._browserConsoleEnabled=false;};YAHOO.widget.Logger.enableBrowserConsole=function(){this._browserConsoleEnabled=true;YAHOO.log("Logger output to the function console.log() has been enabled.");};YAHOO.widget.Logger.categoryCreateEvent=new YAHOO.util.CustomEvent("categoryCreate",this,true);YAHOO.widget.Logger.sourceCreateEvent=new YAHOO.util.CustomEvent("sourceCreate",this,true);YAHOO.widget.Logger.newLogEvent=new YAHOO.util.CustomEvent("newLog",this,true);YAHOO.widget.Logger.logResetEvent=new YAHOO.util.CustomEvent("logReset",this,true);YAHOO.widget.Logger._createNewCategory=function(sCategory){this.categories.push(sCategory);this.categoryCreateEvent.fire(sCategory);};YAHOO.widget.Logger._isNewCategory=function(sCategory){for(var i=0;i -1) { - return; - } - } - // ...or do it the old-fashioned way - else { - for(var i=0; i -1) { - return; - } - } - // ...or do it the old-fashioned way - else { - for(var i=0; i

        ", label, " ", - totalTime, "ms (+", elapsedTime, ") ", - localTime, ": ", - "

        ", - sourceAndDetail, - ":

        ", - msg, - "

        "] : - - ["

        ", label, " ", - totalTime, "ms (+", elapsedTime, ") ", - localTime, ": ", - sourceAndDetail, ": ", - msg, "

        "]; - - return output.join(""); -}; - -/** - * Converts input chars "<", ">", and "&" to HTML entities. - * - * @method html2Text - * @param sHtml {String} String to convert. - * @private - */ -YAHOO.widget.LogReader.prototype.html2Text = function(sHtml) { - if(sHtml) { - sHtml += ""; - return sHtml.replace(/&/g, "&").replace(//g, ">"); - } - return ""; -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Private member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Internal class member to index multiple LogReader instances. - * - * @property _memberName - * @static - * @type Number - * @default 0 - * @private - */ -YAHOO.widget.LogReader._index = 0; - -/** - * Name of LogReader instance. - * - * @property _sName - * @type String - * @private - */ -YAHOO.widget.LogReader.prototype._sName = null; - -//TODO: remove -/** - * A class member shared by all LogReaders if a container needs to be - * created during instantiation. Will be null if a container element never needs to - * be created on the fly, such as when the implementer passes in their own element. - * - * @property _elDefaultContainer - * @type HTMLElement - * @private - */ -//YAHOO.widget.LogReader._elDefaultContainer = null; - -/** - * Buffer of log message objects for batch output. - * - * @property _buffer - * @type Object[] - * @private - */ -YAHOO.widget.LogReader.prototype._buffer = null; - -/** - * Number of log messages output to console. - * - * @property _consoleMsgCount - * @type Number - * @default 0 - * @private - */ -YAHOO.widget.LogReader.prototype._consoleMsgCount = 0; - -/** - * Date of last output log message. - * - * @property _lastTime - * @type Date - * @private - */ -YAHOO.widget.LogReader.prototype._lastTime = null; - -/** - * Batched output timeout ID. - * - * @property _timeout - * @type Number - * @private - */ -YAHOO.widget.LogReader.prototype._timeout = null; - -/** - * Hash of filters and their related checkbox elements. - * - * @property _filterCheckboxes - * @type Object - * @private - */ -YAHOO.widget.LogReader.prototype._filterCheckboxes = null; - -/** - * Array of filters for log message categories. - * - * @property _categoryFilters - * @type String[] - * @private - */ -YAHOO.widget.LogReader.prototype._categoryFilters = null; - -/** - * Array of filters for log message sources. - * - * @property _sourceFilters - * @type String[] - * @private - */ -YAHOO.widget.LogReader.prototype._sourceFilters = null; - -/** - * LogReader container element. - * - * @property _elContainer - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elContainer = null; - -/** - * LogReader header element. - * - * @property _elHd - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elHd = null; - -/** - * LogReader collapse element. - * - * @property _elCollapse - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elCollapse = null; - -/** - * LogReader collapse button element. - * - * @property _btnCollapse - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._btnCollapse = null; - -/** - * LogReader title header element. - * - * @property _title - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._title = null; - -/** - * LogReader console element. - * - * @property _elConsole - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elConsole = null; - -/** - * LogReader footer element. - * - * @property _elFt - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elFt = null; - -/** - * LogReader buttons container element. - * - * @property _elBtns - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elBtns = null; - -/** - * Container element for LogReader category filter checkboxes. - * - * @property _elCategoryFilters - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elCategoryFilters = null; - -/** - * Container element for LogReader source filter checkboxes. - * - * @property _elSourceFilters - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elSourceFilters = null; - -/** - * LogReader pause button element. - * - * @property _btnPause - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._btnPause = null; - -/** - * Clear button element. - * - * @property _btnClear - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._btnClear = null; - -///////////////////////////////////////////////////////////////////////////// -// -// Private methods -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Creates the UI for a category filter in the LogReader footer element. - * - * @method _createCategoryCheckbox - * @param sCategory {String} Category name. - * @private - */ -YAHOO.widget.LogReader.prototype._createCategoryCheckbox = function(sCategory) { - var oSelf = this; - - if(this._elFt) { - var elParent = this._elCategoryFilters; - var filters = this._categoryFilters; - - var elFilter = elParent.appendChild(document.createElement("span")); - elFilter.className = "yui-log-filtergrp"; - - // Append el at the end so IE 5.5 can set "type" attribute - // and THEN set checked property - var chkCategory = document.createElement("input"); - chkCategory.id = "yui-log-filter-" + sCategory + this._sName; - chkCategory.className = "yui-log-filter-" + sCategory; - chkCategory.type = "checkbox"; - chkCategory.category = sCategory; - chkCategory = elFilter.appendChild(chkCategory); - chkCategory.checked = true; - - // Add this checked filter to the internal array of filters - filters.push(sCategory); - // Subscribe to the click event - YAHOO.util.Event.addListener(chkCategory,'click',oSelf._onCheckCategory,oSelf); - - // Create and class the text label - var lblCategory = elFilter.appendChild(document.createElement("label")); - lblCategory.htmlFor = chkCategory.id; - lblCategory.className = sCategory; - lblCategory.innerHTML = sCategory; - - this._filterCheckboxes[sCategory] = chkCategory; - } -}; - -/** - * Creates a checkbox in the LogReader footer element to filter by source. - * - * @method _createSourceCheckbox - * @param sSource {String} Source name. - * @private - */ -YAHOO.widget.LogReader.prototype._createSourceCheckbox = function(sSource) { - var oSelf = this; - - if(this._elFt) { - var elParent = this._elSourceFilters; - var filters = this._sourceFilters; - - var elFilter = elParent.appendChild(document.createElement("span")); - elFilter.className = "yui-log-filtergrp"; - - // Append el at the end so IE 5.5 can set "type" attribute - // and THEN set checked property - var chkSource = document.createElement("input"); - chkSource.id = "yui-log-filter" + sSource + this._sName; - chkSource.className = "yui-log-filter" + sSource; - chkSource.type = "checkbox"; - chkSource.source = sSource; - chkSource = elFilter.appendChild(chkSource); - chkSource.checked = true; - - // Add this checked filter to the internal array of filters - filters.push(sSource); - // Subscribe to the click event - YAHOO.util.Event.addListener(chkSource,'click',oSelf._onCheckSource,oSelf); - - // Create and class the text label - var lblSource = elFilter.appendChild(document.createElement("label")); - lblSource.htmlFor = chkSource.id; - lblSource.className = sSource; - lblSource.innerHTML = sSource; - - this._filterCheckboxes[sSource] = chkSource; - } -}; - -/** - * Reprints all log messages in the stack through filters. - * - * @method _filterLogs - * @private - */ -YAHOO.widget.LogReader.prototype._filterLogs = function() { - // Reprint stack with new filters - if (this._elConsole !== null) { - this.clearConsole(); - this._printToConsole(YAHOO.widget.Logger.getStack()); - } -}; - -/** - * Sends buffer of log messages to output and clears buffer. - * - * @method _printBuffer - * @private - */ -YAHOO.widget.LogReader.prototype._printBuffer = function() { - this._timeout = null; - - if(this._elConsole !== null) { - var thresholdMax = this.thresholdMax; - thresholdMax = (thresholdMax && !isNaN(thresholdMax)) ? thresholdMax : 500; - if(this._consoleMsgCount < thresholdMax) { - var entries = []; - for (var i=0; i this.thresholdMax)) { - thresholdMin = 0; - } - var entriesStartIndex = (entriesLen > thresholdMin) ? (entriesLen - thresholdMin) : 0; - - // Iterate through all log entries - var sourceFiltersLen = this._sourceFilters.length; - var categoryFiltersLen = this._categoryFilters.length; - for(var i=entriesStartIndex; i 0) { - // Substring until first space - sClass = sSource.substring(0,spaceIndex); - // The rest of the source - sDetail = sSource.substring(spaceIndex,sSource.length); - } - else { - sClass = sSource; - } - if(this._isNewSource(sClass)) { - this._createNewSource(sClass); - } - } - - var timestamp = new Date(); - var logEntry = new YAHOO.widget.LogMsg({ - msg: sMsg, - time: timestamp, - category: sCategory, - source: sClass, - sourceDetail: sDetail - }); - - var stack = this._stack; - var maxStackEntries = this.maxStackEntries; - if(maxStackEntries && !isNaN(maxStackEntries) && - (stack.length >= maxStackEntries)) { - stack.shift(); - } - stack.push(logEntry); - this.newLogEvent.fire(logEntry); - - if(this._browserConsoleEnabled) { - this._printToBrowserConsole(logEntry); - } - return true; - } - else { - return false; - } -}; - -/** - * Resets internal stack and startTime, enables Logger, and fires logResetEvent. - * - * @method reset - */ -YAHOO.widget.Logger.reset = function() { - this._stack = []; - this._startTime = new Date().getTime(); - this.loggerEnabled = true; - this.log("Logger reset"); - this.logResetEvent.fire(); -}; - -/** - * Public accessor to internal stack of log message objects. - * - * @method getStack - * @return {Object[]} Array of log message objects. - */ -YAHOO.widget.Logger.getStack = function() { - return this._stack; -}; - -/** - * Public accessor to internal start time. - * - * @method getStartTime - * @return {Date} Internal date of when Logger singleton was initialized. - */ -YAHOO.widget.Logger.getStartTime = function() { - return this._startTime; -}; - -/** - * Disables output to the browser's global console.log() function, which is used - * by the Firebug extension to Firefox as well as Safari. - * - * @method disableBrowserConsole - */ -YAHOO.widget.Logger.disableBrowserConsole = function() { - YAHOO.log("Logger output to the function console.log() has been disabled."); - this._browserConsoleEnabled = false; -}; - -/** - * Enables output to the browser's global console.log() function, which is used - * by the Firebug extension to Firefox as well as Safari. - * - * @method enableBrowserConsole - */ -YAHOO.widget.Logger.enableBrowserConsole = function() { - this._browserConsoleEnabled = true; - YAHOO.log("Logger output to the function console.log() has been enabled."); -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Public events -// -///////////////////////////////////////////////////////////////////////////// - - /** - * Fired when a new category has been created. - * - * @event categoryCreateEvent - * @param sCategory {String} Category name. - */ -YAHOO.widget.Logger.categoryCreateEvent = - new YAHOO.util.CustomEvent("categoryCreate", this, true); - - /** - * Fired when a new source has been named. - * - * @event sourceCreateEvent - * @param sSource {String} Source name. - */ -YAHOO.widget.Logger.sourceCreateEvent = - new YAHOO.util.CustomEvent("sourceCreate", this, true); - - /** - * Fired when a new log message has been created. - * - * @event newLogEvent - * @param sMsg {String} Log message. - */ -YAHOO.widget.Logger.newLogEvent = new YAHOO.util.CustomEvent("newLog", this, true); - -/** - * Fired when the Logger has been reset has been created. - * - * @event logResetEvent - */ -YAHOO.widget.Logger.logResetEvent = new YAHOO.util.CustomEvent("logReset", this, true); - -///////////////////////////////////////////////////////////////////////////// -// -// Private methods -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Creates a new category of log messages and fires categoryCreateEvent. - * - * @method _createNewCategory - * @param sCategory {String} Category name. - * @private - */ -YAHOO.widget.Logger._createNewCategory = function(sCategory) { - this.categories.push(sCategory); - this.categoryCreateEvent.fire(sCategory); -}; - -/** - * Checks to see if a category has already been created. - * - * @method _isNewCategory - * @param sCategory {String} Category name. - * @return {Boolean} Returns true if category is unknown, else returns false. - * @private - */ -YAHOO.widget.Logger._isNewCategory = function(sCategory) { - for(var i=0; i < this.categories.length; i++) { - if(sCategory == this.categories[i]) { - return false; - } - } - return true; -}; - -/** - * Creates a new source of log messages and fires sourceCreateEvent. - * - * @method _createNewSource - * @param sSource {String} Source name. - * @private - */ -YAHOO.widget.Logger._createNewSource = function(sSource) { - this.sources.push(sSource); - this.sourceCreateEvent.fire(sSource); -}; - -/** - * Checks to see if a source already exists. - * - * @method _isNewSource - * @param sSource {String} Source name. - * @return {Boolean} Returns true if source is unknown, else returns false. - * @private - */ -YAHOO.widget.Logger._isNewSource = function(sSource) { - if(sSource) { - for(var i=0; i < this.sources.length; i++) { - if(sSource == this.sources[i]) { - return false; - } - } - return true; - } -}; - -/** - * Outputs a log message to global console.log() function. - * - * @method _printToBrowserConsole - * @param oEntry {Object} Log entry object. - * @private - */ -YAHOO.widget.Logger._printToBrowserConsole = function(oEntry) { - if(window.console && console.log) { - var category = oEntry.category; - var label = oEntry.category.substring(0,4).toUpperCase(); - - var time = oEntry.time; - if (time.toLocaleTimeString) { - var localTime = time.toLocaleTimeString(); - } - else { - localTime = time.toString(); - } - - var msecs = time.getTime(); - var elapsedTime = (YAHOO.widget.Logger._lastTime) ? - (msecs - YAHOO.widget.Logger._lastTime) : 0; - YAHOO.widget.Logger._lastTime = msecs; - - var output = - localTime + " (" + - elapsedTime + "ms): " + - oEntry.source + ": " + - oEntry.msg; - - console.log(output); - } -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Private event handlers -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Handles logging of messages due to window error events. - * - * @method _onWindowError - * @param sMsg {String} The error message. - * @param sUrl {String} URL of the error. - * @param sLine {String} Line number of the error. - * @private - */ -YAHOO.widget.Logger._onWindowError = function(sMsg,sUrl,sLine) { - // Logger is not in scope of this event handler - try { - YAHOO.widget.Logger.log(sMsg+' ('+sUrl+', line '+sLine+')', "window"); - if(YAHOO.widget.Logger._origOnWindowError) { - YAHOO.widget.Logger._origOnWindowError(); - } - } - catch(e) { - return false; - } -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Enable handling of native JavaScript errors -// NB: Not all browsers support the window.onerror event -// -///////////////////////////////////////////////////////////////////////////// - -if(window.onerror) { - // Save any previously defined handler to call - YAHOO.widget.Logger._origOnWindowError = window.onerror; -} -window.onerror = YAHOO.widget.Logger._onWindowError; - -///////////////////////////////////////////////////////////////////////////// -// -// First log -// -///////////////////////////////////////////////////////////////////////////// - -YAHOO.widget.Logger.log("Logger initialized"); - - -YAHOO.register("logger", YAHOO.widget.Logger, {version: "2.2.2", build: "204"}); diff --git a/www/extras/yui/build/menu/README b/www/extras/yui/build/menu/README deleted file mode 100644 index 037510e9f..000000000 --- a/www/extras/yui/build/menu/README +++ /dev/null @@ -1,478 +0,0 @@ -*** version 2.2.2 *** - -Fixed the following bugs: -------------------------- - -+ "toString" method of MenuItem, MenuBarItem and ContextMenuItem classes will - no longer throw a JavaScript error when using the debug version - of the Event utility. - -+ "toString" method of Menu, MenuBar and ContextMenu classes will - no longer attempt to output the instance's id if it is not available. - -+ Logger statements output by debug version of MenuManager are now properly - categorized as "MenuManager" - - - -*** version 2.2.1 *** - -Added the following features: ------------------------------ - -+ Added the following methods to YAHOO.widget.Menu: - - "focus" - - "blur" - - "hasFocus" - -+ Added the following Custom Events to YAHOO.widget.Menu: - + "focusEvent" - + "blurEvent" - -+ Added the following methods to YAHOO.widget.MenuManager: - - "getFocusedMenuItem" - - "getFocusedMenu" - -+ Added "hasFocus" method to YAHOO.widget.MenuItem - - -Fixed the following bugs: -------------------------- - -+ Menu instances no longer set focus to themselves by default when made - visible. Menus only receive focus in response to the following events: - - The user mouses down on a MenuItem instance - - The user tabs into a MenuItem instance - -+ Application of the "maxheight" configuration property is now correctly - deferred until the "render" event fires when Menu instance is being - lazy loaded. - -+ The "maxheight" configuration property can now be set multiple times without - a Menu instance restoring itself to its original default height. - -+ The "maxheight" configuration property can now be set on hidden Menu - instances that use lazy loading. - -+ Menu instances with a "width" configuration property set will now render - at the specified width rather than shrink wrapping to their contents. - -+ Menu item help text no longer wraps to the next line in Opera 9. - -+ Immediate submenus of a Menubar instance will no longer shift their position - to try and remain inside the confines of the browser's viewport. - -+ Lazy loaded ContextMenu instances now appear in the correct position when - they are made visible for the first time. - -+ MenuBar instances no longer throw JavaScript errors when navigating items with - submenus containing no active items using the keyboard. - -+ Replaced use of native "hasOwnProperty" method - with YAHOO.lang.hasOwnProperty. - -+ Rendered Menu instances will now update their width when items are added - or removed. - -+ Mousing over a Menu instance in an IE window that does not have focus will - no longer cause the window to receive focus. - - -Changes: --------- - -+ "activeItem" property of YAHOO.widget.Menu now returns a reference to the - Menu's currently selected item. - -+ Added a "visible" CSS class that is applied to visible Menu instances. - -+ Refactored the Menu family to improve performance, especially when working - with a large number of instances in IE6. - - - -*** version 2.2.0 *** - -Added the following features: ------------------------------ - -* Added two new methods to YAHOO.widget.Menu: - - * "getItems" - Returns a flat array of the items in a menu. - - * "clearContent" - Removes all of the content from the menu, including the - menu items, group titles, header and footer. - - -* Added three new configuration attributes to YAHOO.widget.Menu: - - * "submenuhidedelay" - Number indicating the time (in milliseconds) that - should expire before a submenu is hidden when the user mouses out of a - menu item heading in the direction of a submenu. The value must be - greater than or equal to the value specified for the "showdelay" - configuration property. - - * "maxheight" - Defines the maximum height (in pixels) for a menu before - the contents of the body are scrolled. - - * "classname" - CSS class to be applied to the menu's root
        element. - The specified class(es) are appended in addition to the default class as - specified by the menu's CSS_CLASS_NAME constant. - - -* Added new constants to YAHOO.widget.MenuItem: - - * COLLAPSED_SUBMENU_INDICATOR_TEXT - String representing the text for the - element used for the submenu arrow indicator. - - * EXPANDED_SUBMENU_INDICATOR_TEXT - String representing the text for the - submenu arrow indicator element () when the submenu is visible. - - * DISABLED_SUBMENU_INDICATOR_ALT_TEXT - String representing the text for - the submenu arrow indicator element () when the menu item is disabled. - - * CHECKED_TEXT - String representing the text to be used for the checked - indicator element (). - - * DISABLED_CHECKED_TEXT - String representing the text to be used for the - checked indicator element () when the menu item is disabled. - - -* Added two new configuration attributes to YAHOO.widget.MenuItem: - - * "onclick" - Object literal representing the code to be executed when the - button is clicked. Format: - - { - fn: Function, // The handler to call when the event fires. - obj: Object, // An object to pass back to the handler. - scope: Object // The object to use for the scope of the handler. - } - - * "classname" - CSS class to be applied to the menu item's root
      • - element. The specified class(es) are appended in addition to the default - class as specified by the menu item's CSS_CLASS_NAME constant. - - -* Added an "id" property to YAHOO.widget.MenuItem that represents the id of - the menu item's root
      • node. Although not a configuration attribute, this - property should be set via the object literal of configuration attributes - passed as the second argument to the constructor. If no value is - specified, then one will be generated using the "generateId" method of the - Dom utility (YAHOO.widget.Dom). - -* Added a "trigger context menu event" - (YAHOO.widget.ContextMenu.triggerContextMenuEvent) that fires when the DOM - "contextmenu" event ("mousedown" for Opera) is fired by one of the elemeents - defined as a YAHOO.widget.ContextMenu instance's trigger. - -* Added a "cancel" method to YAHOO.widget.ContextMenu that can be used to - cancel the display of a YAHOO.widget.ContextMen instance. This method - should be called within the scope of a "context menu" event handler for - one of the context menu's triggers - (YAHOO.widget.ContextMenu.triggerContextMenuEvent). - - -Fixed the following bugs: -------------------------- - -* Users can now move diagonally from a menu item to its corresponding submenu - without the submenu hiding immediately. - -* "destroy" method of YAHOO.widget.Menu now unsubscribes from the "text resize" - event (YAHOO.widget.Module.textResizeEvent). - -* Browser progress bar no longer flashes when hovering over checked menu items - or menu items with submenus. - -* Menu item submenu indicator image no longer jumps to the next line in - quirks mode. - -* Mouse events no longer fire in Firefox if a YAHOO.widget.Menu instance is - moved by script into a stationary mouse pointer. - -* Modified "toString" method of YAHOO.widget.ContextMenuItem to return the - correct class name, as it was reporting as YAHOO.widget.MenuBarItem. - - -Changes: --------- - -* Default value for the "showdelay" configuration attribute is now 250 - -* Modified code so that all Menu images are added via CSS background images. - As a result, the following constants and properties have been deprecated: - - * YAHOO.widget.MenuItem.SUBMENU_INDICATOR_IMAGE_PATH - * YAHOO.widget.MenuItem.SELECTED_SUBMENU_INDICATOR_IMAGE_PATH - * YAHOO.widget.MenuItem.DISABLED_SUBMENU_INDICATOR_IMAGE_PATH - * YAHOO.widget.MenuItem.COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT - * YAHOO.widget.MenuItem.EXPANDED_SUBMENU_INDICATOR_ALT_TEXT - * YAHOO.widget.MenuItem.DISABLED_SUBMENU_INDICATOR_ALT_TEXT - * YAHOO.widget.MenuItem.CHECKED_IMAGE_PATH - * YAHOO.widget.MenuItem.SELECTED_CHECKED_IMAGE_PATH - * YAHOO.widget.MenuItem.DISABLED_CHECKED_IMAGE_PATH - * YAHOO.widget.MenuItem.CHECKED_IMAGE_ALT_TEXT - * YAHOO.widget.MenuItem.DISABLED_CHECKED_IMAGE_ALT_TEXT - * YAHOO.widget.MenuItem.IMG_ROOT - * YAHOO.widget.MenuItem.IMG_ROOT_SSL - * YAHOO.widget.MenuItem.imageRoot - * YAHOO.widget.MenuItem.isSecure - - - -*** version 0.12.2 *** - -* No changes - - - -*** version 0.12.1 *** - -Fixed the following bugs: -------------------------- - -* Placed the call to the DOM "focus" method used by the MenuItem class inside - a zero-second timeout to resolve a race condition between menu positioning - and focusing of a menu item that resulted in the browser viewport - scrolling unnecessarily. - -* Switched to JSMin for JavaScript compression to resolve issues with the - minified version. - -* Disabled menu item instances will no longer display a submenu if the item is - clicked or moused over. - -* Can no longer select more than one item in a menu if using the keyboard and - mouse simultaneously. - -* Calling the "destory" method on a menu will now unregister all of the menu's - submenus from the MenuManager. - - - -*** version 0.12 *** - -Added the following features: ------------------------------ - -* Added the YAHOO.widget.MenuManager singleton class. - -* Added two new methods to YAHOO.widget.Menu: - - * "addItems" - Adds an array of items to a menu. - - * "getRoot" - Returns the root menu in a menu hierarchy. - -* Added two new events to YAHOO.widget.Menu: - - * "itemAddedEvent" - Fires when an item is added to a menu. - - * "itemRemovedEvent" - Fires when an item is removed from a menu. - -* Added two new properties to YAHOO.widget.Menu: - - * "itemData" - Array of items to be added to the menu. - - * "lazyLoad" - Boolean indicating if the menu's "lazy load" feature - is enabled. - -* Added new configuration properties to YAHOO.widget.Menu: - - * "hidedelay" - Hides the menu after the specified number of milliseconds. - - * "showdelay" - Shows the menu after the specified number of milliseconds. - - * "container" - The containing element the menu should be rendered into. - - * "clicktohide" - Boolean indicating if the menu will automatically be - hidden if the user clicks outside of it. - - * "autosubmenudisplay" - Boolean indicating if submenus are automatically - made visible when the user mouses over the menu's items. - -* Added a "toString" method to YAHOO.widget.MenuItem, YAHOO.widget.MenuBarItem - and YAHOO.widget.ContextMenuItem that returns the class name followed by the - value of the item's "text" configuration property. - - -Fixed the following bugs: -------------------------- - -* Setting a YAHOO.widget.ContextMenu instance's "trigger" configuration - property will remove all previous triggers before setting up the new ones. - -* "destroy" method of YAHOO.widget.ContextMenu cleans up all DOM event handlers. - -* Clicking on a menu item with a submenu no longer hides/collapses the - entire menu. - -* Clicking an item's submenu indicator image no longer collapses the - entire menu. - - -Changes: --------- - -* Deprecated the YAHOO.widget.MenuModule and YAHOO.widget.MenuModuleItem - classes. The Base classes are now YAHOO.widget.Menu and - YAHOO.widget.MenuItem. - -* "addItem" and "insertItem" methods of YAHOO.widget.Menu now accept an - object literal representing YAHOO.widget.MenuItem configuration properties. - -* "clearActiveItem" now takes an argument: flag indicating if the Menu - instance's active item should be blurred. - -* Switched the default value of the "visible" configuration property for - YAHOO.widget.Menu to "false." - -* Switched the default value of the "constraintoviewport" configuration - property for YAHOO.widget.Menu to "true." - -* Overloaded the "submenu" configuration property for YAHOO.widget.MenuItem - so that it now can accept any of the following: - - * YAHOO.widget.Menu instance - * Object literal representation of a menu - * Element id - * Element reference - -* "hide" and "show" methods of statically positioned menus now toggle the their - element's "display" style property between "block" and "none." - - - -*** version 0.10.0 *** - -* Initial release - -* Known issues: - - * Some Firefox extensions disable the ability for JavaScript to prevent - the display of the browser's default context menu. These extensions - can cause the YUI ContextMenu to stop working. If you encounter this - problem, you can reset the context menu preference in Firefox back to - the default by making sure the "Disable or replace context menus" - preference is checked: - - Mac Firefox 1.0: - ------------------- - Preferences > Web Features > - Advanced... > Disable or replace context menus - - Mac Firefox 1.5 - ------------------- - Preferences > Context > - Advanced... > Disable or replace context menus - - Windows Firefox 1.0 - ------------------- - Tools > Options > Web Features > - Advanced... > Disable or replace context menus - - Windows Firefox 1.5 - ------------------- - Tools > Options > Context > - Advanced... > Disable or replace context menus - - - -*** version 0.11.3 *** - -Added the following features: ------------------------------ - -* Added a "target" configuration property to the MenuModuleItem object that - allows the user to specify the target of an item's anchor element. Items - that make use of the "target" configuration property will require the user - to click exactly on the item's anchor element to navigate to the specified - URL. - -* Items without a "url" property set will automatically hide their parent - menu instance(s) when clicked. - - -Fixed the following bugs: -------------------------- - -* Items in a submenu should now navigate to their specified URL when clicked. - -* Removed MenuBar's use of "overflow:hidden." This fixes an issue in Firefox - 1.5 in which submenus of a Menubar instance cannot overlay other absolutely - positioned elements on the page. - -* Submenus of a Menubar instance will now automatically have their iframe shim - enabled in IE<7. - -* Statically positioned Menubar and Menu instances will now render with the - correct position and dimensions in Safari. - -* MenuModuleItem's "focus" method now checks to make sure that an item's - "display" style property is not "none" before trying to set focus to its - anchor element. - -* A ContextMenu instance will now hide all other ContextMenu instances before - displaying itself. - -* Removed the dead space in front of an item's submenu indicator image in IE. - This space was causing an item's submenu to flicker when the user hovered - over it. - - -Changes: --------- - -* Moved the DOM event handlers for every menu from the root DIV node of each - instance to the document object. This change reduces the number of DOM event - handlers used by Menu to eight, improving the cleanup time required by the - Event utility. - - - -*** version 0.11.0 *** - -Added the following features: ------------------------------ -* Overloaded the "addItem" and "insertItem" methods of MenuModule to accept a - string or a MenuModuleItem instance - -* Added the ability to define a MenuItem instance as being "checked" - - -Fixed the following bugs: -------------------------- -* Changing the path for the submenu indicator image of one MenuModuleItem - subclass will no longer affect other subclasses - -* MenuItem instances built from existing markup without anchor tags will no - longer trigger a JavaScript error when clicked - -* Modified the implementation of the "imageRoot" property for the - MenuModuleItem class so that it is set to a secure/non-secure path when the - object is instantiated - -* Menu instances now resize in response to changes to the browser's font size - -* Modified the propagation of the MenuModule class's "submenualignment" - configuration property so that it only applies to instances of the same type - -* Adjusted the specificity of the style rule that controls the position of a - MenuItem instance's submenu indicator image to prevent it from wrapping in IE - -* Specified a width and height for submenu indicator images in the Menu - stylesheet to ensure that Menu instances are always rendered at the correct - width - -* Clicking a MenuItem instance will no longer trigger two HTTP GET requests - -* Users can now control or shift-click on MenuItem links - - -Changes: --------- -* In the Menu stylesheet (menu.css), switched from using "first" class to - "first-of-type" class - -* Changed case of MenuModuleItem class's "subMenuIndicator" property - to "submenuIndicator" \ No newline at end of file diff --git a/www/extras/yui/build/menu/assets/map.gif b/www/extras/yui/build/menu/assets/map.gif deleted file mode 100644 index 715859aa8..000000000 Binary files a/www/extras/yui/build/menu/assets/map.gif and /dev/null differ diff --git a/www/extras/yui/build/menu/assets/menu.css b/www/extras/yui/build/menu/assets/menu.css deleted file mode 100644 index ba8d7c386..000000000 --- a/www/extras/yui/build/menu/assets/menu.css +++ /dev/null @@ -1,401 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -/* Menu styles */ - -div.yuimenu { - - background-color:#f6f7ee; - border:solid 1px #c4c4be; - padding:1px; - -} - -/* Submenus are positioned absolute and hidden by default */ - -div.yuimenu div.yuimenu, -div.yuimenubar div.yuimenu { - - position:absolute; - visibility:hidden; - -} - -/* MenuBar Styles */ - -div.yuimenubar { - - background-color:#f6f7ee; - -} - -/* - Applying a width triggers "haslayout" in IE so that the module's - body clears its floated elements -*/ -div.yuimenubar div.bd { - - width:100%; - -} - -/* - Clear the module body for other browsers -*/ -div.yuimenubar div.bd:after { - - content:'.'; - display:block; - clear:both; - visibility:hidden; - height:0; - -} - -/* Matches the group title (H6) inside a Menu or MenuBar instance */ - -div.yuimenu h6, -div.yuimenubar h6 { - - font-size:100%; - font-weight:normal; - margin:0; - border:solid 1px #c4c4be; - color:#b9b9b9; - -} - -div.yuimenubar h6 { - - float:left; - display:inline; /* Prevent margin doubling in IE */ - padding:4px 12px; - border-width:0 1px 0 0; - -} - -div.yuimenu h6 { - - float:none; - display:block; - border-width:1px 0 0 0; - padding:5px 10px 0 10px; - -} - -/* Matches the UL inside a Menu or MenuBar instance */ - -div.yuimenubar ul { - - list-style-type:none; - margin:0; - padding:0; - -} - -div.yuimenu ul { - - list-style-type:none; - border:solid 1px #c4c4be; - border-width:1px 0 0 0; - margin:0; - padding:10px 0; - -} - -div.yuimenu ul.first-of-type, -div.yuimenu ul.hastitle, -div.yuimenu h6.first-of-type { - - border-width:0; - -} - -/* - Styles for the menu's header and footer elements that are used as controls - to scroll the menu's body element when the menu's height exceeds the - value of the "maxheight" configuration property. -*/ - -div.yuimenu div.topscrollbar, -div.yuimenu div.bottomscrollbar { - - height:16px; - background-image:url(map.gif); - background-repeat:no-repeat; - -} - - -div.yuimenu div.topscrollbar { - - background-image:url(map.gif); - background-position:center -72px; - -} - - -div.yuimenu div.topscrollbar_disabled { - - background-image:url(map.gif); - background-position:center -88px; - -} - - -div.yuimenu div.bottomscrollbar { - - background-image:url(map.gif); - background-position:center -104px; - -} - - -div.yuimenu div.bottomscrollbar_disabled { - - background-image:url(map.gif); - background-position:center -120px; - -} - - -/* MenuItem and MenuBarItem styles */ - -div.yuimenu li, -div.yuimenubar li { - - font-size:85%; - cursor:pointer; - cursor:hand; - white-space:nowrap; - text-align:left; - -} - -div.yuimenu li.yuimenuitem { - - padding:2px 24px; - -} - -div.yuimenu li li, -div.yuimenubar li li { - - font-size:100%; - -} - - -/* Matches the help text for a menu item */ - -div.yuimenu li.hashelptext em.helptext { - - font-style:normal; - margin:0 0 0 40px; - -} - -div.yuimenu li a, -div.yuimenubar li a { - - /* - "zoom:1" triggers "haslayout" in IE to ensure that the mouseover and - mouseout events bubble to the parent LI in IE. - */ - zoom:1; - color:#000; - text-decoration:none; - -} - -div.yuimenu li.hassubmenu, -div.yuimenu li.hashelptext { - - text-align:right; - -} - -div.yuimenu li.hassubmenu a.hassubmenu, -div.yuimenu li.hashelptext a.hashelptext { - - /* - Need to apply float immediately for IE or help text will jump to the - next line - */ - - *float:left; - *display:inline; /* Prevent margin doubling in IE */ - text-align:left; - -} - -div.yuimenu.visible li.hassubmenu a.hassubmenu, -div.yuimenu.visible li.hashelptext a.hashelptext { - - /* - Apply the float only when the menu is visible to prevent the help - text from wrapping to the next line in Opera. - */ - - float:left; - -} - - -/* Matches selected menu items */ - -div.yuimenu li.selected, -div.yuimenubar li.selected { - - background-color:#8c8ad0; - -} - -div.yuimenu li.selected a.selected, -div.yuimenubar li.selected a.selected { - - text-decoration:underline; - -} - -div.yuimenu li.selected a.selected, -div.yuimenu li.selected em.selected, -div.yuimenubar li.selected a.selected { - - color:#fff; - -} - - -/* Matches disabled menu items */ - -div.yuimenu li.disabled, -div.yuimenubar li.disabled { - - cursor:default; - -} - -div.yuimenu li.disabled a.disabled, -div.yuimenu li.disabled em.disabled, -div.yuimenubar li.disabled a.disabled { - - color:#b9b9b9; - cursor:default; - -} - -div.yuimenubar li.yuimenubaritem { - - float:left; - display:inline; /* Prevent margin doubling in IE */ - border-width:0 0 0 1px; - border-style:solid; - border-color:#c4c4be; - padding:4px 24px; - margin:0; - -} - -div.yuimenubar li.yuimenubaritem.first-of-type { - - border-width:0; - -} - - -/* Styles for the the submenu indicator for menu items */ - -div.yuimenu li.hassubmenu em.submenuindicator, -div.yuimenubar li.hassubmenu em.submenuindicator { - - display:-moz-inline-box; /* Mozilla */ - display:inline-block; /* IE, Opera and Safari */ - vertical-align:middle; - height:8px; - width:8px; - text-indent:9px; - font:0/0 arial; - overflow:hidden; - background-image:url(map.gif); - background-repeat:no-repeat; - -} - -div.yuimenubar li.hassubmenu em.submenuindicator { - - background-position:0 -24px; - margin:0 0 0 10px; - -} - -div.yuimenubar li.hassubmenu em.submenuindicator.selected { - - background-position:0 -32px; - -} - -div.yuimenubar li.hassubmenu em.submenuindicator.disabled { - - background-position:0 -40px; - -} - -div.yuimenu li.hassubmenu em.submenuindicator { - - background-position:0 0; - margin:0 -16px 0 10px; - -} - -div.yuimenu li.hassubmenu em.submenuindicator.selected { - - background-position:0 -8px; - -} - -div.yuimenu li.hassubmenu em.submenuindicator.disabled { - - background-position:0 -16px; - -} - - -/* Styles for a menu item's "checked" state */ - -div.yuimenu li.checked { - - position:relative; - -} - -div.yuimenu li.checked em.checkedindicator { - - height:8px; - width:8px; - text-indent:9px; - overflow:hidden; - background-image:url(map.gif); - background-position:0 -48px; - background-repeat:no-repeat; - position:absolute; - left:6px; - _left:-16px; /* Underscore hack b/c this is for IE 6 only */ - top:.5em; - -} - -div.yuimenu li.checked em.checkedindicator.selected { - - background-position:0 -56px; - -} - -div.yuimenu li.checked em.checkedindicator.disabled { - - background-position:0 -64px; - -} \ No newline at end of file diff --git a/www/extras/yui/build/menu/assets/menuarodwn8_dim_1.gif b/www/extras/yui/build/menu/assets/menuarodwn8_dim_1.gif deleted file mode 100644 index 60b38365a..000000000 Binary files a/www/extras/yui/build/menu/assets/menuarodwn8_dim_1.gif and /dev/null differ diff --git a/www/extras/yui/build/menu/assets/menuarodwn8_hov_1.gif b/www/extras/yui/build/menu/assets/menuarodwn8_hov_1.gif deleted file mode 100644 index 66632e83e..000000000 Binary files a/www/extras/yui/build/menu/assets/menuarodwn8_hov_1.gif and /dev/null differ diff --git a/www/extras/yui/build/menu/assets/menuarodwn8_nrm_1.gif b/www/extras/yui/build/menu/assets/menuarodwn8_nrm_1.gif deleted file mode 100644 index bf5d3f1d2..000000000 Binary files a/www/extras/yui/build/menu/assets/menuarodwn8_nrm_1.gif and /dev/null differ diff --git a/www/extras/yui/build/menu/assets/menuarorght8_dim_1.gif b/www/extras/yui/build/menu/assets/menuarorght8_dim_1.gif deleted file mode 100644 index 0780b6621..000000000 Binary files a/www/extras/yui/build/menu/assets/menuarorght8_dim_1.gif and /dev/null differ diff --git a/www/extras/yui/build/menu/assets/menuarorght8_hov_1.gif b/www/extras/yui/build/menu/assets/menuarorght8_hov_1.gif deleted file mode 100644 index 0d87f1a35..000000000 Binary files a/www/extras/yui/build/menu/assets/menuarorght8_hov_1.gif and /dev/null differ diff --git a/www/extras/yui/build/menu/assets/menuarorght8_nrm_1.gif b/www/extras/yui/build/menu/assets/menuarorght8_nrm_1.gif deleted file mode 100644 index 3cdc2a9d1..000000000 Binary files a/www/extras/yui/build/menu/assets/menuarorght8_nrm_1.gif and /dev/null differ diff --git a/www/extras/yui/build/menu/assets/menuaroup8_dim_1.gif b/www/extras/yui/build/menu/assets/menuaroup8_dim_1.gif deleted file mode 100644 index 1acaeecf1..000000000 Binary files a/www/extras/yui/build/menu/assets/menuaroup8_dim_1.gif and /dev/null differ diff --git a/www/extras/yui/build/menu/assets/menuaroup8_nrm_1.gif b/www/extras/yui/build/menu/assets/menuaroup8_nrm_1.gif deleted file mode 100644 index ee44529ac..000000000 Binary files a/www/extras/yui/build/menu/assets/menuaroup8_nrm_1.gif and /dev/null differ diff --git a/www/extras/yui/build/menu/assets/menuchk8_dim_1.gif b/www/extras/yui/build/menu/assets/menuchk8_dim_1.gif deleted file mode 100644 index d282a6c06..000000000 Binary files a/www/extras/yui/build/menu/assets/menuchk8_dim_1.gif and /dev/null differ diff --git a/www/extras/yui/build/menu/assets/menuchk8_hov_1.gif b/www/extras/yui/build/menu/assets/menuchk8_hov_1.gif deleted file mode 100644 index 2fabaef59..000000000 Binary files a/www/extras/yui/build/menu/assets/menuchk8_hov_1.gif and /dev/null differ diff --git a/www/extras/yui/build/menu/assets/menuchk8_nrm_1.gif b/www/extras/yui/build/menu/assets/menuchk8_nrm_1.gif deleted file mode 100644 index 9732837a7..000000000 Binary files a/www/extras/yui/build/menu/assets/menuchk8_nrm_1.gif and /dev/null differ diff --git a/www/extras/yui/build/menu/menu-debug.js b/www/extras/yui/build/menu/menu-debug.js deleted file mode 100644 index 753e95a07..000000000 --- a/www/extras/yui/build/menu/menu-debug.js +++ /dev/null @@ -1,8778 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ - - -/** -* @module menu -* @description

        The Menu family of components features a collection of -* controls that make it easy to add menus to your website or web application. -* With the Menu Controls you can create website fly-out menus, customized -* context menus, or application-style menu bars with just a small amount of -* scripting.

        The Menu family of controls features:

        -*
          -*
        • Screen-reader accessibility.
        • -*
        • Keyboard and mouse navigation.
        • -*
        • A rich event model that provides access to all of a menu's -* interesting moments.
        • -*
        • Support for -* Progressive -* Enhancement; Menus can be created from simple, -* semantic markup on the page or purely through JavaScript.
        • -*
        -* @title Menu -* @namespace YAHOO.widget -* @requires Event, Dom, Container -*/ -(function() { - -var Dom = YAHOO.util.Dom, - Event = YAHOO.util.Event; - - -/** -* Singleton that manages a collection of all menus and menu items. Listens for -* DOM events at the document level and dispatches the events to the -* corresponding menu or menu item. -* -* @namespace YAHOO.widget -* @class MenuManager -* @static -*/ -YAHOO.widget.MenuManager = function() { - - // Private member variables - - - // Flag indicating if the DOM event handlers have been attached - - var m_bInitializedEventHandlers = false, - - - // Collection of menus - - m_oMenus = {}, - - - // Collection of menu items - - m_oItems = {}, - - - // Collection of visible menus - - m_oVisibleMenus = {}, - - - // Map of DOM event types to their equivalent CustomEvent types - - m_oEventTypes = { - "click": "clickEvent", - "mousedown": "mouseDownEvent", - "mouseup": "mouseUpEvent", - "mouseover": "mouseOverEvent", - "mouseout": "mouseOutEvent", - "keydown": "keyDownEvent", - "keyup": "keyUpEvent", - "keypress": "keyPressEvent" - }, - - - m_oFocusedMenuItem = null; - - - var m_oLogger = new YAHOO.widget.LogWriter("MenuManager"); - - - // Private methods - - - /** - * @method addItem - * @description Adds an item to the collection of known menu items. - * @private - * @param {YAHOO.widget.MenuItem} p_oItem Object specifying the MenuItem - * instance to be added. - */ - function addItem(p_oItem) { - - var sId = p_oItem.id; - - if(p_oItem && m_oItems[sId] != p_oItem) { - - m_oItems[sId] = p_oItem; - - p_oItem.destroyEvent.subscribe(onItemDestroy); - - m_oLogger.log("Item: " + - p_oItem.toString() + " successfully registered."); - - } - - } - - - /** - * @method removeItem - * @description Removes an item from the collection of known menu items. - * @private - * @param {YAHOO.widget.MenuItem} p_oItem Object specifying the MenuItem - * instance to be removed. - */ - function removeItem(p_oItem) { - - var sId = p_oItem.id; - - if(sId && m_oItems[sId]) { - - delete m_oItems[sId]; - - m_oLogger.log("Item: " + - p_oItem.toString() + " successfully unregistered."); - - } - - } - - - /** - * @method getMenuRootElement - * @description Finds the root DIV node of a menu or the root LI node of a - * menu item. - * @private - * @param {HTMLElement} p_oElement Object specifying - * an HTML element. - */ - function getMenuRootElement(p_oElement) { - - var oParentNode; - - if(p_oElement && p_oElement.tagName) { - - switch(p_oElement.tagName.toUpperCase()) { - - case "DIV": - - oParentNode = p_oElement.parentNode; - - // Check if the DIV is the inner "body" node of a menu - - if( - ( - Dom.hasClass(p_oElement, "hd") || - Dom.hasClass(p_oElement, "bd") || - Dom.hasClass(p_oElement, "ft") - ) - && - oParentNode && - oParentNode.tagName && - oParentNode.tagName.toUpperCase() == "DIV" - ) { - - return oParentNode; - - } - else { - - return p_oElement; - - } - - break; - - case "LI": - - return p_oElement; - - default: - - oParentNode = p_oElement.parentNode; - - if(oParentNode) { - - return getMenuRootElement(oParentNode); - - } - - break; - - } - - } - - } - - - - // Private event handlers - - - /** - * @method onDOMEvent - * @description Generic, global event handler for all of a menu's DOM-based - * events. This listens for events against the document object. If the - * target of a given event is a member of a menu or menu item's DOM, the - * instance's corresponding Custom Event is fired. - * @private - * @param {Event} p_oEvent Object representing the DOM event object passed - * back by the event utility (YAHOO.util.Event). - */ - function onDOMEvent(p_oEvent) { - - // Get the target node of the DOM event - - var oTarget = Event.getTarget(p_oEvent), - - - // See if the target of the event was a menu, or a menu item - - oElement = getMenuRootElement(oTarget), - oMenuItem, - oMenu; - - - if(oElement) { - - var sTagName = oElement.tagName.toUpperCase(); - - if(sTagName == "LI") { - - var sId = oElement.id; - - if(sId && m_oItems[sId]) { - - oMenuItem = m_oItems[sId]; - oMenu = oMenuItem.parent; - - } - - } - else if(sTagName == "DIV") { - - if(oElement.id) { - - oMenu = m_oMenus[oElement.id]; - - } - - } - - } - - - if(oMenu) { - - var sCustomEventType = m_oEventTypes[p_oEvent.type]; - - - // Fire the Custom Event that corresponds the current DOM event - - if(oMenuItem && !oMenuItem.cfg.getProperty("disabled")) { - - oMenuItem[sCustomEventType].fire(p_oEvent); - - - if (p_oEvent.type == "keyup" || p_oEvent.type == "mousedown") { - - if (m_oFocusedMenuItem != oMenuItem) { - - if(m_oFocusedMenuItem) { - - m_oFocusedMenuItem.blurEvent.fire(); - - } - - oMenuItem.focusEvent.fire(); - - } - - } - - } - - oMenu[sCustomEventType].fire(p_oEvent, oMenuItem); - - } - else if(p_oEvent.type == "mousedown") { - - if(m_oFocusedMenuItem) { - - m_oFocusedMenuItem.blurEvent.fire(); - - m_oFocusedMenuItem = null; - - } - - - /* - If the target of the event wasn't a menu, hide all - dynamically positioned menus - */ - - for(var i in m_oMenus) { - - if(YAHOO.lang.hasOwnProperty(m_oMenus,i)) { - - oMenu = m_oMenus[i]; - - if( - oMenu.cfg.getProperty("clicktohide") && - oMenu.cfg.getProperty("position") == "dynamic" - ) { - - oMenu.hide(); - - } - else { - - oMenu.clearActiveItem(true); - - } - - } - - } - - } - else if(p_oEvent.type == "keyup") { - - if(m_oFocusedMenuItem) { - - m_oFocusedMenuItem.blurEvent.fire(); - - m_oFocusedMenuItem = null; - - } - - } - - } - - - /** - * @method onMenuDestroy - * @description "destroy" event handler for a menu. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onMenuDestroy(p_sType, p_aArgs) { - - if(m_oMenus[this.id]) { - - delete m_oMenus[this.id]; - - m_oLogger.log("Menu: " + - this.toString() + " successfully unregistered."); - - } - - } - - - /** - * @method onMenuFocus - * @description "focus" event handler for a MenuItem instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onMenuFocus(p_sType, p_aArgs) { - - var oItem = p_aArgs[0]; - - if (oItem) { - - m_oFocusedMenuItem = oItem; - - } - - } - - - /** - * @method onMenuBlur - * @description "blur" event handler for a MenuItem instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onMenuBlur(p_sType, p_aArgs) { - - m_oFocusedMenuItem = null; - - } - - - /** - * @method onItemDestroy - * @description "destroy" event handler for a MenuItem instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onItemDestroy(p_sType, p_aArgs) { - - var sId = this.id; - - if(sId && m_oItems[sId]) { - - delete m_oItems[sId]; - - } - - } - - - /** - * @method onMenuVisibleConfigChange - * @description Event handler for when the "visible" configuration property - * of a Menu instance changes. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onMenuVisibleConfigChange(p_sType, p_aArgs) { - - var bVisible = p_aArgs[0]; - - if(bVisible) { - - m_oVisibleMenus[this.id] = this; - - m_oLogger.log("Menu: " + - this.toString() + - " registered with the collection of visible menus."); - - } - else if(m_oVisibleMenus[this.id]) { - - delete m_oVisibleMenus[this.id]; - - m_oLogger.log("Menu: " + - this.toString() + - " unregistered from the collection of visible menus."); - - } - - } - - - /** - * @method onItemAdded - * @description "itemadded" event handler for a Menu instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onItemAdded(p_sType, p_aArgs) { - - addItem(p_aArgs[0]); - - } - - - /** - * @method onItemRemoved - * @description "itemremoved" event handler for a Menu instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onItemRemoved(p_sType, p_aArgs) { - - removeItem(p_aArgs[0]); - - } - - - - return { - - // Privileged methods - - - /** - * @method addMenu - * @description Adds a menu to the collection of known menus. - * @param {YAHOO.widget.Menu} p_oMenu Object specifying the Menu - * instance to be added. - */ - addMenu: function(p_oMenu) { - - if(p_oMenu && p_oMenu.id && !m_oMenus[p_oMenu.id]) { - - m_oMenus[p_oMenu.id] = p_oMenu; - - - if(!m_bInitializedEventHandlers) { - - var oDoc = document; - - Event.on(oDoc, "mouseover", onDOMEvent, this, true); - Event.on(oDoc, "mouseout", onDOMEvent, this, true); - Event.on(oDoc, "mousedown", onDOMEvent, this, true); - Event.on(oDoc, "mouseup", onDOMEvent, this, true); - Event.on(oDoc, "click", onDOMEvent, this, true); - Event.on(oDoc, "keydown", onDOMEvent, this, true); - Event.on(oDoc, "keyup", onDOMEvent, this, true); - Event.on(oDoc, "keypress", onDOMEvent, this, true); - - - m_bInitializedEventHandlers = true; - - m_oLogger.log("DOM event handlers initialized."); - - } - - p_oMenu.destroyEvent.subscribe(onMenuDestroy); - - p_oMenu.cfg.subscribeToConfigEvent( - "visible", - onMenuVisibleConfigChange - ); - - p_oMenu.itemAddedEvent.subscribe(onItemAdded); - p_oMenu.itemRemovedEvent.subscribe(onItemRemoved); - p_oMenu.focusEvent.subscribe(onMenuFocus); - p_oMenu.blurEvent.subscribe(onMenuBlur); - - m_oLogger.log("Menu: " + - p_oMenu.toString() + " successfully registered."); - - } - - }, - - - /** - * @method removeMenu - * @description Removes a menu from the collection of known menus. - * @param {YAHOO.widget.Menu} p_oMenu Object specifying the Menu - * instance to be removed. - */ - removeMenu: function(p_oMenu) { - - if(p_oMenu && m_oMenus[p_oMenu.id]) { - - delete m_oMenus[p_oMenu.id]; - - m_oLogger.log("Menu: " + - p_oMenu.toString() + " successfully unregistered."); - - } - - }, - - - /** - * @method hideVisible - * @description Hides all visible, dynamically positioned menus. - */ - hideVisible: function() { - - var oMenu; - - for(var i in m_oVisibleMenus) { - - if(YAHOO.lang.hasOwnProperty(m_oVisibleMenus,i)) { - - oMenu = m_oVisibleMenus[i]; - - if(oMenu.cfg.getProperty("position") == "dynamic") { - - oMenu.hide(); - - } - - } - - } - - }, - - - /** - * @method getMenus - * @description Returns an array of all menus registered with the - * menu manger. - * @return {Array} - */ - getMenus: function() { - - return m_oMenus; - - }, - - - /** - * @method getMenu - * @description Returns a menu with the specified id. - * @param {String} p_sId String specifying the id of the menu to - * be retrieved. - * @return {YAHOO.widget.Menu} - */ - getMenu: function(p_sId) { - - if(m_oMenus[p_sId]) { - - return m_oMenus[p_sId]; - - } - - }, - - - /** - * @method getFocusedMenuItem - * @description Returns a reference to the menu item that currently - * has focus. - * @return {YAHOO.widget.MenuItem} - */ - getFocusedMenuItem: function() { - - return m_oFocusedMenuItem; - - }, - - - /** - * @method getFocusedMenu - * @description Returns a reference to the menu that currently has focus. - * @return {YAHOO.widget.Menu} - */ - getFocusedMenu: function() { - - if(m_oFocusedMenuItem) { - - return (m_oFocusedMenuItem.parent.getRoot()); - - } - - }, - - - /** - * @method toString - * @description Returns a string representing the menu manager. - * @return {String} - */ - toString: function() { - - return ("MenuManager"); - - } - - }; - -}(); - -})(); - - - -/** -* The Menu class creates a container that holds a vertical list representing -* a set of options or commands. Menu is the base class for all -* menu containers. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source -* for the menu. -* @param {HTMLDivElement} p_oElement Object -* specifying the <div> element of the menu. -* @param {HTMLSelectElement} p_oElement -* Object specifying the <select> element to be used as -* the data source for the menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu. See configuration class documentation for -* more details. -* @namespace YAHOO.widget -* @class Menu -* @constructor -* @extends YAHOO.widget.Overlay -*/ -(function() { - -var Dom = YAHOO.util.Dom, - Event = YAHOO.util.Event, - CustomEvent = YAHOO.util.CustomEvent, - Lang = YAHOO.lang; - - -YAHOO.widget.Menu = function(p_oElement, p_oConfig) { - - if(p_oConfig) { - - this.parent = p_oConfig.parent; - this.lazyLoad = p_oConfig.lazyLoad || p_oConfig.lazyload; - this.itemData = p_oConfig.itemData || p_oConfig.itemdata; - - } - - - YAHOO.widget.Menu.superclass.constructor.call( - this, - p_oElement, - p_oConfig - ); - -}; - - -/** -* Constant representing the name of the Menu's events -* @property YAHOO.widget.Menu._EVENT_TYPES -* @private -* @final -* @type Object -*/ -YAHOO.widget.Menu._EVENT_TYPES = { - - "MOUSE_OVER": "mouseover", - "MOUSE_OUT": "mouseout", - "MOUSE_DOWN": "mousedown", - "MOUSE_UP": "mouseup", - "CLICK": "click", - "KEY_PRESS": "keypress", - "KEY_DOWN": "keydown", - "KEY_UP": "keyup", - "FOCUS": "focus", - "BLUR": "blur", - "ITEM_ADDED": "itemAdded", - "ITEM_REMOVED": "itemRemoved" - -}; - - - -/** -* @method _checkPosition -* @description Checks to make sure that the value of the "position" property -* is one of the supported strings. Returns true if the position is supported. -* @private -* @param {Object} p_sPosition String specifying the position of the menu. -* @return {Boolean} -*/ -YAHOO.widget.Menu._checkPosition = function(p_sPosition) { - - if(typeof p_sPosition == "string") { - - var sPosition = p_sPosition.toLowerCase(); - - return ("dynamic,static".indexOf(sPosition) != -1); - - } - -}; - - - -/** -* Constant representing the Menu's configuration properties -* @property YAHOO.widget.Menu._DEFAULT_CONFIG -* @private -* @final -* @type Object -*/ -YAHOO.widget.Menu._DEFAULT_CONFIG = { - - "VISIBLE": { - key: "visible", - value: false, - validator: Lang.isBoolean - }, - - "CONSTRAIN_TO_VIEWPORT": { - key: "constraintoviewport", - value: true, - validator: Lang.isBoolean, - supercedes: ["iframe","x","y","xy"] - }, - - "POSITION": { - key: "position", - value: "dynamic", - validator: YAHOO.widget.Menu._checkPosition, - supercedes: ["visible"] - }, - - "SUBMENU_ALIGNMENT": { - key: "submenualignment", - value: ["tl","tr"] - }, - - "AUTO_SUBMENU_DISPLAY": { - key: "autosubmenudisplay", - value: true, - validator: Lang.isBoolean - }, - - "SHOW_DELAY": { - key: "showdelay", - value: 250, - validator: Lang.isNumber - }, - - "HIDE_DELAY": { - key: "hidedelay", - value: 0, - validator: Lang.isNumber, - suppressEvent: true - }, - - "SUBMENU_HIDE_DELAY": { - key: "submenuhidedelay", - value: 250, - validator: Lang.isNumber - }, - - "CLICK_TO_HIDE": { - key: "clicktohide", - value: true, - validator: Lang.isBoolean - }, - - "CONTAINER": { - key: "container" - }, - - "MAX_HEIGHT": { - key: "maxheight", - value: 0, - validator: Lang.isNumber - }, - - "CLASS_NAME": { - key: "classname", - value: null, - validator: Lang.isString - } - -}; - - -YAHOO.lang.extend(YAHOO.widget.Menu, YAHOO.widget.Overlay, { - - -// Constants - - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the -* menu's <div> element. -* @default "yuimenu" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuimenu", - - -/** -* @property ITEM_TYPE -* @description Object representing the type of menu item to instantiate and -* add when parsing the child nodes (either <li> element, -* <optgroup> element or <option>) -* of the menu's source HTML element. -* @default YAHOO.widget.MenuItem -* @final -* @type YAHOO.widget.MenuItem -*/ -ITEM_TYPE: null, - - -/** -* @property GROUP_TITLE_TAG_NAME -* @description String representing the tagname of the HTML element used to -* title the menu's item groups. -* @default H6 -* @final -* @type String -*/ -GROUP_TITLE_TAG_NAME: "h6", - - - -// Private properties - - -/** -* @property _nHideDelayId -* @description Number representing the time-out setting used to cancel the -* hiding of a menu. -* @default null -* @private -* @type Number -*/ -_nHideDelayId: null, - - -/** -* @property _nShowDelayId -* @description Number representing the time-out setting used to cancel the -* showing of a menu. -* @default null -* @private -* @type Number -*/ -_nShowDelayId: null, - - -/** -* @property _nSubmenuHideDelayId -* @description Number representing the time-out setting used to cancel the -* hiding of a submenu. -* @default null -* @private -* @type Number -*/ -_nSubmenuHideDelayId: null, - - -/** -* @property _nBodyScrollId -* @description Number representing the time-out setting used to cancel the -* scrolling of the menu's body element. -* @default null -* @private -* @type Number -*/ -_nBodyScrollId: null, - - -/** -* @property _bHideDelayEventHandlersAssigned -* @description Boolean indicating if the "mouseover" and "mouseout" event -* handlers used for hiding the menu via a call to "window.setTimeout" have -* already been assigned. -* @default false -* @private -* @type Boolean -*/ -_bHideDelayEventHandlersAssigned: false, - - -/** -* @property _bHandledMouseOverEvent -* @description Boolean indicating the current state of the menu's -* "mouseover" event. -* @default false -* @private -* @type Boolean -*/ -_bHandledMouseOverEvent: false, - - -/** -* @property _bHandledMouseOutEvent -* @description Boolean indicating the current state of the menu's -* "mouseout" event. -* @default false -* @private -* @type Boolean -*/ -_bHandledMouseOutEvent: false, - - -/** -* @property _aGroupTitleElements -* @description Array of HTML element used to title groups of menu items. -* @default [] -* @private -* @type Array -*/ -_aGroupTitleElements: null, - - -/** -* @property _aItemGroups -* @description Multi-dimensional Array representing the menu items as they -* are grouped in the menu. -* @default [] -* @private -* @type Array -*/ -_aItemGroups: null, - - -/** -* @property _aListElements -* @description Array of <ul> elements, each of which is -* the parent node for each item's <li> element. -* @default [] -* @private -* @type Array -*/ -_aListElements: null, - - -/** -* @property _nCurrentMouseX -* @description The current x coordinate of the mouse inside the area of -* the menu. -* @default 0 -* @private -* @type Number -*/ -_nCurrentMouseX: 0, - - -/** -* @property _nMaxHeight -* @description The original value of the "maxheight" configuration property -* as set by the user. -* @default -1 -* @private -* @type Number -*/ -_nMaxHeight: -1, - - -/** -* @property _bStopMouseEventHandlers -* @description Stops "mouseover," "mouseout," and "mousemove" event handlers -* from executing. -* @default false -* @private -* @type Boolean -*/ -_bStopMouseEventHandlers: false, - - -/** -* @property _sClassName -* @description The current value of the "classname" configuration attribute. -* @default null -* @private -* @type String -*/ -_sClassName: null, - - - -// Public properties - - -/** -* @property lazyLoad -* @description Boolean indicating if the menu's "lazy load" feature is -* enabled. If set to "true," initialization and rendering of the menu's -* items will be deferred until the first time it is made visible. This -* property should be set via the constructor using the configuration -* object literal. -* @default false -* @type Boolean -*/ -lazyLoad: false, - - -/** -* @property itemData -* @description Array of items to be added to the menu. The array can contain -* strings representing the text for each item to be created, object literals -* representing the menu item configuration properties, or MenuItem instances. -* This property should be set via the constructor using the configuration -* object literal. -* @default null -* @type Array -*/ -itemData: null, - - -/** -* @property activeItem -* @description Object reference to the item in the menu that has is selected. -* @default null -* @type YAHOO.widget.MenuItem -*/ -activeItem: null, - - -/** -* @property parent -* @description Object reference to the menu's parent menu or menu item. -* This property can be set via the constructor using the configuration -* object literal. -* @default null -* @type YAHOO.widget.MenuItem -*/ -parent: null, - - -/** -* @property srcElement -* @description Object reference to the HTML element (either -* <select> or <div>) used to -* create the menu. -* @default null -* @type HTMLSelectElement|HTMLDivElement -*/ -srcElement: null, - - - -// Events - - -/** -* @event mouseOverEvent -* @description Fires when the mouse has entered the menu. Passes back -* the DOM Event object as an argument. -*/ -mouseOverEvent: null, - - -/** -* @event mouseOutEvent -* @description Fires when the mouse has left the menu. Passes back the DOM -* Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -mouseOutEvent: null, - - -/** -* @event mouseDownEvent -* @description Fires when the user mouses down on the menu. Passes back the -* DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -mouseDownEvent: null, - - -/** -* @event mouseUpEvent -* @description Fires when the user releases a mouse button while the mouse is -* over the menu. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -mouseUpEvent: null, - - -/** -* @event clickEvent -* @description Fires when the user clicks the on the menu. Passes back the -* DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -clickEvent: null, - - -/** -* @event keyPressEvent -* @description Fires when the user presses an alphanumeric key when one of the -* menu's items has focus. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -keyPressEvent: null, - - -/** -* @event keyDownEvent -* @description Fires when the user presses a key when one of the menu's items -* has focus. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -keyDownEvent: null, - - -/** -* @event keyUpEvent -* @description Fires when the user releases a key when one of the menu's items -* has focus. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -keyUpEvent: null, - - -/** -* @event itemAddedEvent -* @description Fires when an item is added to the menu. -* @type YAHOO.util.CustomEvent -*/ -itemAddedEvent: null, - - -/** -* @event itemRemovedEvent -* @description Fires when an item is removed to the menu. -* @type YAHOO.util.CustomEvent -*/ -itemRemovedEvent: null, - - -/** -* @method init -* @description The Menu class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references -* for pre-existing markup, and creates required markup if it is not -* already present. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source -* for the menu. -* @param {HTMLDivElement} p_oElement Object -* specifying the <div> element of the menu. -* @param {HTMLSelectElement} p_oElement -* Object specifying the <select> element to be used as -* the data source for the menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu. See configuration class documentation for -* more details. -*/ -init: function(p_oElement, p_oConfig) { - - this._aItemGroups = []; - this._aListElements = []; - this._aGroupTitleElements = []; - - if(!this.ITEM_TYPE) { - - this.ITEM_TYPE = YAHOO.widget.MenuItem; - - } - - - var oElement; - - if(typeof p_oElement == "string") { - - oElement = document.getElementById(p_oElement); - - } - else if(p_oElement.tagName) { - - oElement = p_oElement; - - } - - - if(oElement && oElement.tagName) { - - switch(oElement.tagName.toUpperCase()) { - - case "DIV": - - this.srcElement = oElement; - - if(!oElement.id) { - - oElement.setAttribute("id", Dom.generateId()); - - } - - - /* - Note: we don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.Menu.superclass.init.call(this, oElement); - - this.beforeInitEvent.fire(YAHOO.widget.Menu); - - this.logger = new YAHOO.widget.LogWriter(this.toString()); - - this.logger.log("Source element: " + this.srcElement.tagName); - - break; - - case "SELECT": - - this.srcElement = oElement; - - - /* - The source element is not something that we can use - outright, so we need to create a new Overlay - - Note: we don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.Menu.superclass.init.call(this, Dom.generateId()); - - this.beforeInitEvent.fire(YAHOO.widget.Menu); - - this.logger = new YAHOO.widget.LogWriter(this.toString()); - - this.logger.log("Source element: " + this.srcElement.tagName); - - break; - - } - - } - else { - - /* - Note: we don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.Menu.superclass.init.call(this, p_oElement); - - this.beforeInitEvent.fire(YAHOO.widget.Menu); - - this.logger = new YAHOO.widget.LogWriter(this.toString()); - - this.logger.log("No source element found. " + - "Created element with id: " + this.id); - - } - - - if(this.element) { - - var oEl = this.element; - - Dom.addClass(oEl, this.CSS_CLASS_NAME); - - - // Subscribe to Custom Events - - this.initEvent.subscribe(this._onInit, this, true); - this.beforeRenderEvent.subscribe(this._onBeforeRender, this, true); - this.renderEvent.subscribe(this._onRender); - this.beforeShowEvent.subscribe(this._onBeforeShow, this, true); - this.showEvent.subscribe(this._onShow, this, true); - this.beforeHideEvent.subscribe(this._onBeforeHide, this, true); - this.hideEvent.subscribe(this._onHide, this, true); - this.mouseOverEvent.subscribe(this._onMouseOver, this, true); - this.mouseOutEvent.subscribe(this._onMouseOut, this, true); - this.clickEvent.subscribe(this._onClick, this, true); - this.keyDownEvent.subscribe(this._onKeyDown, this, true); - this.keyPressEvent.subscribe(this._onKeyPress, this, true); - - YAHOO.widget.Module.textResizeEvent.subscribe( - this._onTextResize, - this, - true - ); - - - if(p_oConfig) { - - this.cfg.applyConfig(p_oConfig, true); - - } - - - // Register the Menu instance with the MenuManager - - YAHOO.widget.MenuManager.addMenu(this); - - - this.initEvent.fire(YAHOO.widget.Menu); - - } - -}, - - - -// Private methods - - -/** -* @method _initSubTree -* @description Iterates the childNodes of the source element to find nodes -* used to instantiate menu and menu items. -* @private -*/ -_initSubTree: function() { - - var oNode; - - if(this.srcElement.tagName.toUpperCase() == "DIV") { - - /* - Populate the collection of item groups and item - group titles - */ - - oNode = this.body.firstChild; - - var nGroup = 0, - sGroupTitleTagName = this.GROUP_TITLE_TAG_NAME.toUpperCase(); - - do { - - if(oNode && oNode.tagName) { - - switch(oNode.tagName.toUpperCase()) { - - case sGroupTitleTagName: - - this._aGroupTitleElements[nGroup] = oNode; - - break; - - case "UL": - - this._aListElements[nGroup] = oNode; - this._aItemGroups[nGroup] = []; - nGroup++; - - break; - - } - - } - - } - while((oNode = oNode.nextSibling)); - - - /* - Apply the "first-of-type" class to the first UL to mimic - the "first-of-type" CSS3 psuedo class. - */ - - if(this._aListElements[0]) { - - Dom.addClass(this._aListElements[0], "first-of-type"); - - } - - } - - - oNode = null; - - this.logger.log("Searching DOM for items to initialize."); - - if(this.srcElement.tagName) { - - var sSrcElementTagName = this.srcElement.tagName.toUpperCase(); - - - switch(sSrcElementTagName) { - - case "DIV": - - if(this._aListElements.length > 0) { - - this.logger.log("Found " + - this._aListElements.length + - " item groups to initialize."); - - var i = this._aListElements.length - 1; - - do { - - oNode = this._aListElements[i].firstChild; - - this.logger.log("Scanning " + - this._aListElements[i].childNodes.length + - " child nodes for items to initialize."); - - do { - - if( - oNode && - oNode.tagName && - oNode.tagName.toUpperCase() == "LI" - ) { - - this.logger.log("Initializing " + - oNode.tagName + " node."); - - this.addItem( - new this.ITEM_TYPE( - oNode, - { parent: this } - ), - i - ); - - } - - } - while((oNode = oNode.nextSibling)); - - } - while(i--); - - } - - break; - - case "SELECT": - - this.logger.log("Scanning " + - this.srcElement.childNodes.length + - " child nodes for items to initialize."); - - oNode = this.srcElement.firstChild; - - do { - - if(oNode && oNode.tagName) { - - switch(oNode.tagName.toUpperCase()) { - - case "OPTGROUP": - case "OPTION": - - this.logger.log("Initializing " + - oNode.tagName + " node."); - - this.addItem( - new this.ITEM_TYPE( - oNode, - { parent: this } - ) - ); - - break; - - } - - } - - } - while((oNode = oNode.nextSibling)); - - break; - - } - - } - -}, - - -/** -* @method _getFirstEnabledItem -* @description Returns the first enabled item in the menu. -* @return {YAHOO.widget.MenuItem} -* @private -*/ -_getFirstEnabledItem: function() { - - var aItems = this.getItems(), - nItems = aItems.length, - oItem; - - for(var i=0; i= aGroup.length); - - - if(aGroup[p_nItemIndex]) { - - aGroup.splice(p_nItemIndex, 0, oItem); - - } - else { - - aGroup[p_nItemIndex] = oItem; - - } - - - oGroupItem = aGroup[p_nItemIndex]; - - if(oGroupItem) { - - if( - bAppend && - ( - !oGroupItem.element.parentNode || - oGroupItem.element.parentNode.nodeType == 11 - ) - ) { - - this._aListElements[nGroupIndex].appendChild( - oGroupItem.element - ); - - } - else { - - function getNextItemSibling(p_aArray, p_nStartIndex) { - - return ( - p_aArray[p_nStartIndex] || - getNextItemSibling( - p_aArray, - (p_nStartIndex+1) - ) - ); - - } - - - var oNextItemSibling = - getNextItemSibling(aGroup, (p_nItemIndex+1)); - - if( - oNextItemSibling && - ( - !oGroupItem.element.parentNode || - oGroupItem.element.parentNode.nodeType == 11 - ) - ) { - - this._aListElements[nGroupIndex].insertBefore( - oGroupItem.element, - oNextItemSibling.element - ); - - } - - } - - - oGroupItem.parent = this; - - this._subscribeToItemEvents(oGroupItem); - - this._configureSubmenu(oGroupItem); - - this._updateItemProperties(nGroupIndex); - - this.logger.log("Item inserted." + - " Text: " + oGroupItem.cfg.getProperty("text") + ", " + - " Index: " + oGroupItem.index + ", " + - " Group Index: " + oGroupItem.groupIndex); - - this.itemAddedEvent.fire(oGroupItem); - - return oGroupItem; - - } - - } - else { - - var nItemIndex = aGroup.length; - - aGroup[nItemIndex] = oItem; - - oGroupItem = aGroup[nItemIndex]; - - - if(oGroupItem) { - - if( - !Dom.isAncestor( - this._aListElements[nGroupIndex], - oGroupItem.element - ) - ) { - - this._aListElements[nGroupIndex].appendChild( - oGroupItem.element - ); - - } - - oGroupItem.element.setAttribute("groupindex", nGroupIndex); - oGroupItem.element.setAttribute("index", nItemIndex); - - oGroupItem.parent = this; - - oGroupItem.index = nItemIndex; - oGroupItem.groupIndex = nGroupIndex; - - this._subscribeToItemEvents(oGroupItem); - - this._configureSubmenu(oGroupItem); - - if(nItemIndex === 0) { - - Dom.addClass(oGroupItem.element, "first-of-type"); - - } - - this.logger.log("Item added." + - " Text: " + oGroupItem.cfg.getProperty("text") + ", " + - " Index: " + oGroupItem.index + ", " + - " Group Index: " + oGroupItem.groupIndex); - - - this.itemAddedEvent.fire(oGroupItem); - - return oGroupItem; - - } - - } - - } - -}, - - -/** -* @method _removeItemFromGroupByIndex -* @description Removes a menu item from a group by index. Returns the menu -* item that was removed. -* @private -* @param {Number} p_nGroupIndex Number indicating the group to which the menu -* item belongs. -* @param {Number} p_nItemIndex Number indicating the index of the menu item -* to be removed. -* @return {YAHOO.widget.MenuItem} -*/ -_removeItemFromGroupByIndex: function(p_nGroupIndex, p_nItemIndex) { - - var nGroupIndex = typeof p_nGroupIndex == "number" ? p_nGroupIndex : 0, - aGroup = this._getItemGroup(nGroupIndex); - - if(aGroup) { - - var aArray = aGroup.splice(p_nItemIndex, 1), - oItem = aArray[0]; - - if(oItem) { - - // Update the index and className properties of each member - - this._updateItemProperties(nGroupIndex); - - if(aGroup.length === 0) { - - // Remove the UL - - var oUL = this._aListElements[nGroupIndex]; - - if(this.body && oUL) { - - this.body.removeChild(oUL); - - } - - // Remove the group from the array of items - - this._aItemGroups.splice(nGroupIndex, 1); - - - // Remove the UL from the array of ULs - - this._aListElements.splice(nGroupIndex, 1); - - - /* - Assign the "first-of-type" class to the new first UL - in the collection - */ - - oUL = this._aListElements[0]; - - if(oUL) { - - Dom.addClass(oUL, "first-of-type"); - - } - - } - - - this.itemRemovedEvent.fire(oItem); - - - // Return a reference to the item that was removed - - return oItem; - - } - - } - -}, - - -/** -* @method _removeItemFromGroupByValue -* @description Removes a menu item from a group by reference. Returns the -* menu item that was removed. -* @private -* @param {Number} p_nGroupIndex Number indicating the group to which the -* menu item belongs. -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance to be removed. -* @return {YAHOO.widget.MenuItem} -*/ -_removeItemFromGroupByValue: function(p_nGroupIndex, p_oItem) { - - var aGroup = this._getItemGroup(p_nGroupIndex); - - if(aGroup) { - - var nItems = aGroup.length, - nItemIndex = -1; - - if(nItems > 0) { - - var i = nItems-1; - - do { - - if(aGroup[i] == p_oItem) { - - nItemIndex = i; - break; - - } - - } - while(i--); - - if(nItemIndex > -1) { - - return this._removeItemFromGroupByIndex( - p_nGroupIndex, - nItemIndex - ); - - } - - } - - } - -}, - - -/** -* @method _updateItemProperties -* @description Updates the "index," "groupindex," and "className" properties -* of the menu items in the specified group. -* @private -* @param {Number} p_nGroupIndex Number indicating the group of items to update. -*/ -_updateItemProperties: function(p_nGroupIndex) { - - var aGroup = this._getItemGroup(p_nGroupIndex), - nItems = aGroup.length; - - if(nItems > 0) { - - var i = nItems - 1, - oItem, - oLI; - - // Update the index and className properties of each member - - do { - - oItem = aGroup[i]; - - if(oItem) { - - oLI = oItem.element; - - oItem.index = i; - oItem.groupIndex = p_nGroupIndex; - - oLI.setAttribute("groupindex", p_nGroupIndex); - oLI.setAttribute("index", i); - - Dom.removeClass(oLI, "first-of-type"); - - } - - } - while(i--); - - - if(oLI) { - - Dom.addClass(oLI, "first-of-type"); - - } - - } - -}, - - -/** -* @method _createItemGroup -* @description Creates a new menu item group (array) and its associated -* <ul> element. Returns an aray of menu item groups. -* @private -* @param {Number} p_nIndex Number indicating the group to create. -* @return {Array} -*/ -_createItemGroup: function(p_nIndex) { - - if(!this._aItemGroups[p_nIndex]) { - - this._aItemGroups[p_nIndex] = []; - - var oUL = document.createElement("ul"); - - this._aListElements[p_nIndex] = oUL; - - return this._aItemGroups[p_nIndex]; - - } - -}, - - -/** -* @method _getItemGroup -* @description Returns the menu item group at the specified index. -* @private -* @param {Number} p_nIndex Number indicating the index of the menu item group -* to be retrieved. -* @return {Array} -*/ -_getItemGroup: function(p_nIndex) { - - var nIndex = ((typeof p_nIndex == "number") ? p_nIndex : 0); - - return this._aItemGroups[nIndex]; - -}, - - -/** -* @method _configureSubmenu -* @description Subscribes the menu item's submenu to its parent menu's events. -* @private -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance with the submenu to be configured. -*/ -_configureSubmenu: function(p_oItem) { - - var oSubmenu = p_oItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - /* - Listen for configuration changes to the parent menu - so they they can be applied to the submenu. - */ - - this.cfg.configChangedEvent.subscribe( - this._onParentMenuConfigChange, - oSubmenu, - true - ); - - this.renderEvent.subscribe( - this._onParentMenuRender, - oSubmenu, - true - ); - - oSubmenu.beforeShowEvent.subscribe( - this._onSubmenuBeforeShow, - oSubmenu, - true - ); - - oSubmenu.showEvent.subscribe(this._onSubmenuShow, null, p_oItem); - oSubmenu.hideEvent.subscribe(this._onSubmenuHide, null, p_oItem); - - } - -}, - - -/** -* @method _subscribeToItemEvents -* @description Subscribes a menu to a menu item's event. -* @private -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance whose events should be subscribed to. -*/ -_subscribeToItemEvents: function(p_oItem) { - - p_oItem.focusEvent.subscribe(this._onMenuItemFocus); - - p_oItem.blurEvent.subscribe(this._onMenuItemBlur); - - p_oItem.cfg.configChangedEvent.subscribe( - this._onMenuItemConfigChange, - p_oItem, - this - ); - -}, - - -/** -* @method _getOffsetWidth -* @description Returns the offset width of the menu's -* <div> element. -* @private -*/ -_getOffsetWidth: function() { - - var oClone = this.element.cloneNode(true); - - Dom.setStyle(oClone, "width", ""); - - document.body.appendChild(oClone); - - var sWidth = oClone.offsetWidth; - - document.body.removeChild(oClone); - - return sWidth; - -}, - - -/** -* @method _setWidth -* @description Sets the width of the menu's root <div> -* element to its offsetWidth. -* @private -*/ -_setWidth: function() { - - var sWidth; - - if (this.element.parentNode.tagName.toUpperCase() == "BODY") { - - if (this.browser == "opera") { - - sWidth = this._getOffsetWidth(); - - } - else { - - Dom.setStyle(this.element, "width", "auto"); - - sWidth = this.element.offsetWidth; - - } - - } - else { - - sWidth = this._getOffsetWidth(); - - } - - this.cfg.setProperty("width", (sWidth + "px")); - -}, - - -/** -* @method _onWidthChange -* @description Change event handler for the the menu's "width" configuration -* property. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onWidthChange: function(p_sType, p_aArgs) { - - var sWidth = p_aArgs[0]; - - if (sWidth && !this._hasSetWidthHandlers) { - - this.itemAddedEvent.subscribe(this._setWidth); - this.itemRemovedEvent.subscribe(this._setWidth); - - this._hasSetWidthHandlers = true; - - } - else if (this._hasSetWidthHandlers) { - - this.itemAddedEvent.unsubscribe(this._setWidth); - this.itemRemovedEvent.unsubscribe(this._setWidth); - - this._hasSetWidthHandlers = false; - - } - -}, - - -/** -* @method _onVisibleChange -* @description Change event handler for the the menu's "visible" configuration -* property. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onVisibleChange: function(p_sType, p_aArgs) { - - var bVisible = p_aArgs[0]; - - if (bVisible) { - - Dom.addClass(this.element, "visible"); - - } - else { - - Dom.removeClass(this.element, "visible"); - - } - -}, - - -/** -* @method _cancelHideDelay -* @description Cancels the call to "hideMenu." -* @private -*/ -_cancelHideDelay: function() { - - var oRoot = this.getRoot(); - - if(oRoot._nHideDelayId) { - - window.clearTimeout(oRoot._nHideDelayId); - - } - -}, - - -/** -* @method _execHideDelay -* @description Hides the menu after the number of milliseconds specified by -* the "hidedelay" configuration property. -* @private -*/ -_execHideDelay: function() { - - this._cancelHideDelay(); - - var oRoot = this.getRoot(), - me = this; - - function hideMenu() { - - if(oRoot.activeItem) { - - oRoot.clearActiveItem(); - - } - - if(oRoot == me && me.cfg.getProperty("position") == "dynamic") { - - me.hide(); - - } - - } - - - oRoot._nHideDelayId = - window.setTimeout(hideMenu, oRoot.cfg.getProperty("hidedelay")); - -}, - - -/** -* @method _cancelShowDelay -* @description Cancels the call to the "showMenu." -* @private -*/ -_cancelShowDelay: function() { - - var oRoot = this.getRoot(); - - if(oRoot._nShowDelayId) { - - window.clearTimeout(oRoot._nShowDelayId); - - } - -}, - - -/** -* @method _execShowDelay -* @description Shows the menu after the number of milliseconds specified by -* the "showdelay" configuration property have ellapsed. -* @private -* @param {YAHOO.widget.Menu} p_oMenu Object specifying the menu that should -* be made visible. -*/ -_execShowDelay: function(p_oMenu) { - - var oRoot = this.getRoot(); - - function showMenu() { - - if(p_oMenu.parent.cfg.getProperty("selected")) { - - p_oMenu.show(); - - } - - } - - - oRoot._nShowDelayId = - window.setTimeout(showMenu, oRoot.cfg.getProperty("showdelay")); - -}, - - -/** -* @method _execSubmenuHideDelay -* @description Hides a submenu after the number of milliseconds specified by -* the "submenuhidedelay" configuration property have ellapsed. -* @private -* @param {YAHOO.widget.Menu} p_oSubmenu Object specifying the submenu that -* should be hidden. -* @param {Number} p_nMouseX The x coordinate of the mouse when it left -* the specified submenu's parent menu item. -* @param {Number} p_nHideDelay The number of milliseconds that should ellapse -* before the submenu is hidden. -*/ -_execSubmenuHideDelay: function(p_oSubmenu, p_nMouseX, p_nHideDelay) { - - var me = this; - - p_oSubmenu._nSubmenuHideDelayId = window.setTimeout(function () { - - if(me._nCurrentMouseX > (p_nMouseX + 10)) { - - p_oSubmenu._nSubmenuHideDelayId = window.setTimeout(function () { - - p_oSubmenu.hide(); - - }, p_nHideDelay); - - } - else { - - p_oSubmenu.hide(); - - } - - }, 50); - -}, - - - -// Protected methods - - -/** -* @method _disableScrollHeader -* @description Disables the header used for scrolling the body of the menu. -* @protected -*/ -_disableScrollHeader: function() { - - if(!this._bHeaderDisabled) { - - Dom.addClass(this.header, "topscrollbar_disabled"); - this._bHeaderDisabled = true; - - } - -}, - - -/** -* @method _disableScrollFooter -* @description Disables the footer used for scrolling the body of the menu. -* @protected -*/ -_disableScrollFooter: function() { - - if(!this._bFooterDisabled) { - - Dom.addClass(this.footer, "bottomscrollbar_disabled"); - this._bFooterDisabled = true; - - } - -}, - - -/** -* @method _enableScrollHeader -* @description Enables the header used for scrolling the body of the menu. -* @protected -*/ -_enableScrollHeader: function() { - - if(this._bHeaderDisabled) { - - Dom.removeClass(this.header, "topscrollbar_disabled"); - this._bHeaderDisabled = false; - - } - -}, - - -/** -* @method _enableScrollFooter -* @description Enables the footer used for scrolling the body of the menu. -* @protected -*/ -_enableScrollFooter: function() { - - if(this._bFooterDisabled) { - - Dom.removeClass(this.footer, "bottomscrollbar_disabled"); - this._bFooterDisabled = false; - - } - -}, - - -/** -* @method _onMouseOver -* @description "mouseover" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onMouseOver: function(p_sType, p_aArgs, p_oMenu) { - - if(this._bStopMouseEventHandlers) { - - return false; - - } - - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oTarget = Event.getTarget(oEvent); - - - if( - !this._bHandledMouseOverEvent && - (oTarget == this.element || Dom.isAncestor(this.element, oTarget)) - ) { - - // Menu mouseover logic - - this._nCurrentMouseX = 0; - - Event.on( - this.element, - "mousemove", - this._onMouseMove, - this, - true - ); - - - this.clearActiveItem(); - - - if(this.parent && this._nSubmenuHideDelayId) { - - window.clearTimeout(this._nSubmenuHideDelayId); - - this.parent.cfg.setProperty("selected", true); - - var oParentMenu = this.parent.parent; - - oParentMenu._bHandledMouseOutEvent = true; - oParentMenu._bHandledMouseOverEvent = false; - - } - - - this._bHandledMouseOverEvent = true; - this._bHandledMouseOutEvent = false; - - } - - - if( - oItem && !oItem.handledMouseOverEvent && - !oItem.cfg.getProperty("disabled") && - (oTarget == oItem.element || Dom.isAncestor(oItem.element, oTarget)) - ) { - - // Menu Item mouseover logic - - var nShowDelay = this.cfg.getProperty("showdelay"), - bShowDelay = (nShowDelay > 0); - - - if(bShowDelay) { - - this._cancelShowDelay(); - - } - - - var oActiveItem = this.activeItem; - - if(oActiveItem) { - - oActiveItem.cfg.setProperty("selected", false); - - } - - - var oItemCfg = oItem.cfg; - - // Select and focus the current menu item - - oItemCfg.setProperty("selected", true); - - - if (this.hasFocus()) { - - oItem.focus(); - - } - - - if(this.cfg.getProperty("autosubmenudisplay")) { - - // Show the submenu this menu item - - var oSubmenu = oItemCfg.getProperty("submenu"); - - if(oSubmenu) { - - if(bShowDelay) { - - this._execShowDelay(oSubmenu); - - } - else { - - oSubmenu.show(); - - } - - } - - } - - oItem.handledMouseOverEvent = true; - oItem.handledMouseOutEvent = false; - - } - -}, - - -/** -* @method _onMouseOut -* @description "mouseout" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onMouseOut: function(p_sType, p_aArgs, p_oMenu) { - - if(this._bStopMouseEventHandlers) { - - return false; - - } - - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oRelatedTarget = Event.getRelatedTarget(oEvent), - bMovingToSubmenu = false; - - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg, - oSubmenu = oItemCfg.getProperty("submenu"); - - - if( - oSubmenu && - ( - oRelatedTarget == oSubmenu.element || - Dom.isAncestor(oSubmenu.element, oRelatedTarget) - ) - ) { - - bMovingToSubmenu = true; - - } - - - if( - !oItem.handledMouseOutEvent && - ( - ( - oRelatedTarget != oItem.element && - !Dom.isAncestor(oItem.element, oRelatedTarget) - ) || bMovingToSubmenu - ) - ) { - - // Menu Item mouseout logic - - if(!bMovingToSubmenu) { - - oItem.cfg.setProperty("selected", false); - - - if(oSubmenu) { - - var nSubmenuHideDelay = - this.cfg.getProperty("submenuhidedelay"), - - nShowDelay = this.cfg.getProperty("showdelay"); - - if( - !(this instanceof YAHOO.widget.MenuBar) && - nSubmenuHideDelay > 0 && - nShowDelay >= nSubmenuHideDelay - ) { - - this._execSubmenuHideDelay( - oSubmenu, - Event.getPageX(oEvent), - nSubmenuHideDelay - ); - - } - else { - - oSubmenu.hide(); - - } - - } - - } - - - oItem.handledMouseOutEvent = true; - oItem.handledMouseOverEvent = false; - - } - - } - - - if( - !this._bHandledMouseOutEvent && - ( - ( - oRelatedTarget != this.element && - !Dom.isAncestor(this.element, oRelatedTarget) - ) - || bMovingToSubmenu - ) - ) { - - // Menu mouseout logic - - Event.removeListener(this.element, "mousemove", this._onMouseMove); - - this._nCurrentMouseX = Event.getPageX(oEvent); - - this._bHandledMouseOutEvent = true; - this._bHandledMouseOverEvent = false; - - } - -}, - - -/** -* @method _onMouseMove -* @description "click" event handler for the menu. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onMouseMove: function(p_oEvent, p_oMenu) { - - if(this._bStopMouseEventHandlers) { - - return false; - - } - - this._nCurrentMouseX = Event.getPageX(p_oEvent); - -}, - - -/** -* @method _onClick -* @description "click" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onClick: function(p_sType, p_aArgs, p_oMenu) { - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oTarget = Event.getTarget(oEvent); - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg, - oSubmenu = oItemCfg.getProperty("submenu"); - - - /* - ACCESSIBILITY FEATURE FOR SCREEN READERS: - Expand/collapse the submenu when the user clicks - on the submenu indicator image. - */ - - if(oTarget == oItem.submenuIndicator && oSubmenu) { - - if(oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - - oSubmenu.parent.focus(); - - } - else { - - this.clearActiveItem(); - - oItem.cfg.setProperty("selected", true); - - oSubmenu.show(); - - oSubmenu.setInitialFocus(); - - } - - } - else { - - var sURL = oItemCfg.getProperty("url"), - bCurrentPageURL = (sURL.substr((sURL.length-1),1) == "#"), - sTarget = oItemCfg.getProperty("target"), - bHasTarget = (sTarget && sTarget.length > 0); - - /* - Prevent the browser from following links - equal to "#" - */ - - if( - oTarget.tagName.toUpperCase() == "A" && - bCurrentPageURL && !bHasTarget - ) { - - Event.preventDefault(oEvent); - - oItem.focus(); - - } - - if( - oTarget.tagName.toUpperCase() != "A" && - !bCurrentPageURL && !bHasTarget - ) { - - /* - Follow the URL of the item regardless of - whether or not the user clicked specifically - on the anchor element. - */ - - document.location = sURL; - - } - - - /* - If the item doesn't navigate to a URL and it doesn't have - a submenu, then collapse the menu tree. - */ - - if(bCurrentPageURL && !oSubmenu) { - - var oRoot = this.getRoot(); - - if(oRoot.cfg.getProperty("position") == "static") { - - oRoot.clearActiveItem(); - - } - else if(oRoot.cfg.getProperty("clicktohide")) { - - oRoot.hide(); - - } - - } - - } - - } - -}, - - -/** -* @method _onKeyDown -* @description "keydown" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onKeyDown: function(p_sType, p_aArgs, p_oMenu) { - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - me = this, - oSubmenu; - - - /* - This function is called to prevent a bug in Firefox. In Firefox, - moving a DOM element into a stationary mouse pointer will cause the - browser to fire mouse events. This can result in the menu mouse - event handlers being called uncessarily, especially when menus are - moved into a stationary mouse pointer as a result of a - key event handler. - */ - function stopMouseEventHandlers() { - - me._bStopMouseEventHandlers = true; - - window.setTimeout(function() { - - me._bStopMouseEventHandlers = false; - - }, 10); - - } - - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg, - oParentItem = this.parent, - oRoot, - oNextItem; - - - switch(oEvent.keyCode) { - - case 38: // Up arrow - case 40: // Down arrow - - oNextItem = (oEvent.keyCode == 38) ? - oItem.getPreviousEnabledSibling() : - oItem.getNextEnabledSibling(); - - if(oNextItem) { - - this.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - oNextItem.focus(); - - - if(this.cfg.getProperty("maxheight") > 0) { - - var oBody = this.body; - - oBody.scrollTop = - - ( - oNextItem.element.offsetTop + - oNextItem.element.offsetHeight - ) - oBody.offsetHeight; - - - var nScrollTop = oBody.scrollTop, - nScrollTarget = - oBody.scrollHeight - oBody.offsetHeight; - - if(nScrollTop === 0) { - - this._disableScrollHeader(); - this._enableScrollFooter(); - - } - else if(nScrollTop == nScrollTarget) { - - this._enableScrollHeader(); - this._disableScrollFooter(); - - } - else { - - this._enableScrollHeader(); - this._enableScrollFooter(); - - } - - } - - } - - - Event.preventDefault(oEvent); - - stopMouseEventHandlers(); - - break; - - - case 39: // Right arrow - - oSubmenu = oItemCfg.getProperty("submenu"); - - if(oSubmenu) { - - if(!oItemCfg.getProperty("selected")) { - - oItemCfg.setProperty("selected", true); - - } - - oSubmenu.show(); - oSubmenu.setInitialFocus(); - oSubmenu.setInitialSelection(); - - } - else { - - oRoot = this.getRoot(); - - if(oRoot instanceof YAHOO.widget.MenuBar) { - - oNextItem = oRoot.activeItem.getNextEnabledSibling(); - - if(oNextItem) { - - oRoot.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - - oSubmenu = oNextItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.show(); - - } - - oNextItem.focus(); - - } - - } - - } - - - Event.preventDefault(oEvent); - - stopMouseEventHandlers(); - - break; - - - case 37: // Left arrow - - if(oParentItem) { - - var oParentMenu = oParentItem.parent; - - if(oParentMenu instanceof YAHOO.widget.MenuBar) { - - oNextItem = - oParentMenu.activeItem.getPreviousEnabledSibling(); - - if(oNextItem) { - - oParentMenu.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - - oSubmenu = oNextItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.show(); - - } - - oNextItem.focus(); - - } - - } - else { - - this.hide(); - - oParentItem.focus(); - - } - - } - - Event.preventDefault(oEvent); - - stopMouseEventHandlers(); - - break; - - } - - - } - - - if(oEvent.keyCode == 27) { // Esc key - - if(this.cfg.getProperty("position") == "dynamic") { - - this.hide(); - - if(this.parent) { - - this.parent.focus(); - - } - - } - else if(this.activeItem) { - - oSubmenu = this.activeItem.cfg.getProperty("submenu"); - - if(oSubmenu && oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - this.activeItem.focus(); - - } - else { - - this.activeItem.blur(); - this.activeItem.cfg.setProperty("selected", false); - - } - - } - - - Event.preventDefault(oEvent); - - } - -}, - - -/** -* @method _onKeyPress -* @description "keypress" event handler for a Menu instance. -* @protected -* @param {String} p_sType The name of the event that was fired. -* @param {Array} p_aArgs Collection of arguments sent when the event -* was fired. -* @param {YAHOO.widget.Menu} p_oMenu The Menu instance that fired the event. -*/ -_onKeyPress: function(p_sType, p_aArgs, p_oMenu) { - - var oEvent = p_aArgs[0]; - - - if(oEvent.keyCode == 40 || oEvent.keyCode == 38) { - - YAHOO.util.Event.preventDefault(oEvent); - - } - -}, - - -/** -* @method _onTextResize -* @description "textresize" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onTextResize: function(p_sType, p_aArgs, p_oMenu) { - - if(this.browser == "gecko" && !this._handleResize) { - - this._handleResize = true; - return; - - } - - - var oConfig = this.cfg; - - if(oConfig.getProperty("position") == "dynamic") { - - oConfig.setProperty("width", (this._getOffsetWidth() + "px")); - - } - -}, - - -/** -* @method _onScrollTargetMouseOver -* @description "mouseover" event handler for the menu's "header" and "footer" -* elements. Used to scroll the body of the menu up and down when the -* menu's "maxheight" configuration property is set to a value greater than 0. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onScrollTargetMouseOver: function(p_oEvent, p_oMenu) { - - this._cancelHideDelay(); - - var oTarget = Event.getTarget(p_oEvent), - oBody = this.body, - me = this, - nScrollTarget, - fnScrollFunction; - - - function scrollBodyDown() { - - var nScrollTop = oBody.scrollTop; - - - if(nScrollTop < nScrollTarget) { - - oBody.scrollTop = (nScrollTop + 1); - - me._enableScrollHeader(); - - } - else { - - oBody.scrollTop = nScrollTarget; - - window.clearInterval(me._nBodyScrollId); - - me._disableScrollFooter(); - - } - - } - - - function scrollBodyUp() { - - var nScrollTop = oBody.scrollTop; - - - if(nScrollTop > 0) { - - oBody.scrollTop = (nScrollTop - 1); - - me._enableScrollFooter(); - - } - else { - - oBody.scrollTop = 0; - - window.clearInterval(me._nBodyScrollId); - - me._disableScrollHeader(); - - } - - } - - - if(Dom.hasClass(oTarget, "hd")) { - - fnScrollFunction = scrollBodyUp; - - } - else { - - nScrollTarget = oBody.scrollHeight - oBody.offsetHeight; - - fnScrollFunction = scrollBodyDown; - - } - - - this._nBodyScrollId = window.setInterval(fnScrollFunction, 10); - -}, - - -/** -* @method _onScrollTargetMouseOut -* @description "mouseout" event handler for the menu's "header" and "footer" -* elements. Used to stop scrolling the body of the menu up and down when the -* menu's "maxheight" configuration property is set to a value greater than 0. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onScrollTargetMouseOut: function(p_oEvent, p_oMenu) { - - window.clearInterval(this._nBodyScrollId); - - this._cancelHideDelay(); - -}, - - - -// Private methods - - -/** -* @method _onInit -* @description "init" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onInit: function(p_sType, p_aArgs, p_oMenu) { - - this.cfg.subscribeToConfigEvent("width", this._onWidthChange); - this.cfg.subscribeToConfigEvent("visible", this._onVisibleChange); - - if( - ( - (this.parent && !this.lazyLoad) || - (!this.parent && this.cfg.getProperty("position") == "static") || - ( - !this.parent && - !this.lazyLoad && - this.cfg.getProperty("position") == "dynamic" - ) - ) && - this.getItemGroups().length === 0 - ) { - - if(this.srcElement) { - - this._initSubTree(); - - } - - - if(this.itemData) { - - this.addItems(this.itemData); - - } - - } - else if(this.lazyLoad) { - - this.cfg.fireQueue(); - - } - -}, - - -/** -* @method _onBeforeRender -* @description "beforerender" event handler for the menu. Appends all of the -* <ul>, <li> and their accompanying -* title elements to the body element of the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onBeforeRender: function(p_sType, p_aArgs, p_oMenu) { - - var oConfig = this.cfg, - oEl = this.element, - nListElements = this._aListElements.length; - - - if(nListElements > 0) { - - var i = 0, - bFirstList = true, - oUL, - oGroupTitle; - - - do { - - oUL = this._aListElements[i]; - - if(oUL) { - - if(bFirstList) { - - Dom.addClass(oUL, "first-of-type"); - bFirstList = false; - - } - - - if(!Dom.isAncestor(oEl, oUL)) { - - this.appendToBody(oUL); - - } - - - oGroupTitle = this._aGroupTitleElements[i]; - - if(oGroupTitle) { - - if(!Dom.isAncestor(oEl, oGroupTitle)) { - - oUL.parentNode.insertBefore(oGroupTitle, oUL); - - } - - - Dom.addClass(oUL, "hastitle"); - - } - - } - - i++; - - } - while(i < nListElements); - - } - -}, - - -/** -* @method _onRender -* @description "render" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onRender: function(p_sType, p_aArgs) { - - if ( - this.cfg.getProperty("position") == "dynamic" && - !this.cfg.getProperty("width") - ) { - - this._setWidth(); - - } - -}, - - -/** -* @method _onBeforeShow -* @description "beforeshow" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onBeforeShow: function(p_sType, p_aArgs, p_oMenu) { - - if(this.lazyLoad && this.getItemGroups().length === 0) { - - if(this.srcElement) { - - this._initSubTree(); - - } - - - if(this.itemData) { - - if( - this.parent && this.parent.parent && - this.parent.parent.srcElement && - this.parent.parent.srcElement.tagName.toUpperCase() == "SELECT" - ) { - - var nOptions = this.itemData.length; - - for(var n=0; n= nViewportHeight) { - - var nMaxHeight = this.cfg.getProperty("maxheight"); - - /* - Cache the original value for the "maxheight" configuration - property so that we can set it back when the menu is hidden. - */ - - this._nMaxHeight = nMaxHeight; - - this.cfg.setProperty("maxheight", (nViewportHeight - 20)); - - } - - - if(this.cfg.getProperty("maxheight") > 0) { - - var oBody = this.body; - - if(oBody.scrollTop > 0) { - - oBody.scrollTop = 0; - - } - - this._disableScrollHeader(); - this._enableScrollFooter(); - - } - - } - - -}, - - -/** -* @method _onShow -* @description "show" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired -* the event. -*/ -_onShow: function(p_sType, p_aArgs, p_oMenu) { - - var oParent = this.parent; - - if(oParent) { - - var oParentMenu = oParent.parent, - aParentAlignment = oParentMenu.cfg.getProperty("submenualignment"), - aAlignment = this.cfg.getProperty("submenualignment"); - - - if( - (aParentAlignment[0] != aAlignment[0]) && - (aParentAlignment[1] != aAlignment[1]) - ) { - - this.cfg.setProperty( - "submenualignment", - [ aParentAlignment[0], aParentAlignment[1] ] - ); - - } - - - if( - !oParentMenu.cfg.getProperty("autosubmenudisplay") && - oParentMenu.cfg.getProperty("position") == "static" - ) { - - oParentMenu.cfg.setProperty("autosubmenudisplay", true); - - - function disableAutoSubmenuDisplay(p_oEvent) { - - if( - p_oEvent.type == "mousedown" || - (p_oEvent.type == "keydown" && p_oEvent.keyCode == 27) - ) { - - /* - Set the "autosubmenudisplay" to "false" if the user - clicks outside the menu bar. - */ - - var oTarget = Event.getTarget(p_oEvent); - - if( - oTarget != oParentMenu.element || - !YAHOO.util.Dom.isAncestor(oParentMenu.element, oTarget) - ) { - - oParentMenu.cfg.setProperty( - "autosubmenudisplay", - false - ); - - Event.removeListener( - document, - "mousedown", - disableAutoSubmenuDisplay - ); - - Event.removeListener( - document, - "keydown", - disableAutoSubmenuDisplay - ); - - } - - } - - } - - Event.on(document, "mousedown", disableAutoSubmenuDisplay); - Event.on(document, "keydown", disableAutoSubmenuDisplay); - - } - - } - -}, - - -/** -* @method _onBeforeHide -* @description "beforehide" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired -* the event. -*/ -_onBeforeHide: function(p_sType, p_aArgs, p_oMenu) { - - var oActiveItem = this.activeItem; - - if(oActiveItem) { - - var oConfig = oActiveItem.cfg; - - oConfig.setProperty("selected", false); - - var oSubmenu = oConfig.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.hide(); - - } - - } - - if (this == this.getRoot()) { - - this.blur(); - - } - -}, - - -/** -* @method _onHide -* @description "hide" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired -* the event. -*/ -_onHide: function(p_sType, p_aArgs, p_oMenu) { - - if(this._nMaxHeight != -1) { - - this.cfg.setProperty("maxheight", this._nMaxHeight); - - this._nMaxHeight = -1; - - } - -}, - - -/** -* @method _onParentMenuConfigChange -* @description "configchange" event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onParentMenuConfigChange: function(p_sType, p_aArgs, p_oSubmenu) { - - var sPropertyName = p_aArgs[0][0], - oPropertyValue = p_aArgs[0][1]; - - switch(sPropertyName) { - - case "iframe": - case "constraintoviewport": - case "hidedelay": - case "showdelay": - case "submenuhidedelay": - case "clicktohide": - case "effect": - case "classname": - - p_oSubmenu.cfg.setProperty(sPropertyName, oPropertyValue); - - break; - - } - -}, - - -/** -* @method _onParentMenuRender -* @description "render" event handler for a submenu. Renders a -* submenu in response to the firing of its parent's "render" event. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onParentMenuRender: function(p_sType, p_aArgs, p_oSubmenu) { - - var oParentMenu = p_oSubmenu.parent.parent, - - oConfig = { - - constraintoviewport: - oParentMenu.cfg.getProperty("constraintoviewport"), - - xy: [0,0], - - clicktohide: oParentMenu.cfg.getProperty("clicktohide"), - - effect: oParentMenu.cfg.getProperty("effect"), - - showdelay: oParentMenu.cfg.getProperty("showdelay"), - - hidedelay: oParentMenu.cfg.getProperty("hidedelay"), - - submenuhidedelay: oParentMenu.cfg.getProperty("submenuhidedelay"), - - classname: oParentMenu.cfg.getProperty("classname") - - }; - - - /* - Only sync the "iframe" configuration property if the parent - menu's "position" configuration is the same. - */ - - if( - this.cfg.getProperty("position") == - oParentMenu.cfg.getProperty("position") - ) { - - oConfig.iframe = oParentMenu.cfg.getProperty("iframe"); - - } - - - p_oSubmenu.cfg.applyConfig(oConfig); - - - if(!this.lazyLoad) { - - var oLI = this.parent.element; - - if(this.element.parentNode == oLI) { - - this.render(); - - } - else { - - this.render(oLI); - - } - - } - -}, - - -/** -* @method _onSubmenuBeforeShow -* @description "beforeshow" event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onSubmenuBeforeShow: function(p_sType, p_aArgs, p_oSubmenu) { - - var oParent = this.parent, - aAlignment = oParent.parent.cfg.getProperty("submenualignment"); - - this.cfg.setProperty( - "context", - [oParent.element, aAlignment[0], aAlignment[1]] - ); - - - var nScrollTop = oParent.parent.body.scrollTop; - - if( - (this.browser == "gecko" || this.browser == "safari") - && nScrollTop > 0 - ) { - - this.cfg.setProperty("y", (this.cfg.getProperty("y") - nScrollTop)); - - } - -}, - - -/** -* @method _onSubmenuShow -* @description "show" event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onSubmenuShow: function(p_sType, p_aArgs) { - - this.submenuIndicator.firstChild.nodeValue = - this.EXPANDED_SUBMENU_INDICATOR_TEXT; - -}, - - -/** -* @method _onSubmenuHide -* @description "hide" Custom Event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onSubmenuHide: function(p_sType, p_aArgs) { - - this.submenuIndicator.firstChild.nodeValue = - this.COLLAPSED_SUBMENU_INDICATOR_TEXT; - -}, - - -/** -* @method _onMenuItemFocus -* @description "focus" event handler for the menu's items. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuItemFocus: function(p_sType, p_aArgs) { - - this.parent.focusEvent.fire(this); - -}, - - -/** -* @method _onMenuItemBlur -* @description "blur" event handler for the menu's items. -* @private -* @param {String} p_sType String representing the name of the event -* that was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuItemBlur: function(p_sType, p_aArgs) { - - this.parent.blurEvent.fire(this); - -}, - - -/** -* @method _onMenuItemConfigChange -* @description "configchange" event handler for the menu's items. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item -* that fired the event. -*/ -_onMenuItemConfigChange: function(p_sType, p_aArgs, p_oItem) { - - var sPropertyName = p_aArgs[0][0], - oPropertyValue = p_aArgs[0][1]; - - switch(sPropertyName) { - - case "selected": - - if (oPropertyValue === true) { - - this.activeItem = p_oItem; - - } - - break; - - case "submenu": - - var oSubmenu = p_aArgs[0][1]; - - if(oSubmenu) { - - this._configureSubmenu(p_oItem); - - } - - break; - - case "text": - case "helptext": - - /* - A change to an item's "text" or "helptext" - configuration properties requires the width of the parent - menu to be recalculated. - */ - - if(this.element.style.width) { - - var sWidth = this._getOffsetWidth() + "px"; - - Dom.setStyle(this.element, "width", sWidth); - - } - - break; - - } - -}, - - - -// Public event handlers for configuration properties - - -/** -* @method enforceConstraints -* @description The default event handler executed when the moveEvent is fired, -* if the "constraintoviewport" configuration property is set to true. -* @param {String} type The name of the event that was fired. -* @param {Array} args Collection of arguments sent when the -* event was fired. -* @param {Array} obj Array containing the current Menu instance -* and the item that fired the event. -*/ -enforceConstraints: function(type, args, obj) { - - if(this.parent && !(this.parent.parent instanceof YAHOO.widget.MenuBar)) { - - var oConfig = this.cfg, - pos = args[0], - - x = pos[0], - y = pos[1], - - offsetHeight = this.element.offsetHeight, - offsetWidth = this.element.offsetWidth, - - viewPortWidth = YAHOO.util.Dom.getViewportWidth(), - viewPortHeight = YAHOO.util.Dom.getViewportHeight(), - - scrollX = Math.max( - document.documentElement.scrollLeft, - document.body.scrollLeft - ), - - scrollY = Math.max( - document.documentElement.scrollTop, - document.body.scrollTop - ), - - nPadding = ( - this.parent && - this.parent.parent instanceof YAHOO.widget.MenuBar - ) ? 0 : 10, - - topConstraint = scrollY + nPadding, - leftConstraint = scrollX + nPadding, - bottomConstraint = - scrollY + viewPortHeight - offsetHeight - nPadding, - rightConstraint = scrollX + viewPortWidth - offsetWidth - nPadding, - - aContext = oConfig.getProperty("context"), - oContextElement = aContext ? aContext[0] : null; - - - if (x < 10) { - - x = leftConstraint; - - } else if ((x + offsetWidth) > viewPortWidth) { - - if( - oContextElement && - ((x - oContextElement.offsetWidth) > offsetWidth) - ) { - - x = (x - (oContextElement.offsetWidth + offsetWidth)); - - } - else { - - x = rightConstraint; - - } - - } - - if (y < 10) { - - y = topConstraint; - - } else if (y > bottomConstraint) { - - if(oContextElement && (y > offsetHeight)) { - - y = ((y + oContextElement.offsetHeight) - offsetHeight); - - } - else { - - y = bottomConstraint; - - } - - } - - oConfig.setProperty("x", x, true); - oConfig.setProperty("y", y, true); - oConfig.setProperty("xy", [x,y], true); - - } - -}, - - -/** -* @method configVisible -* @description Event handler for when the "visible" configuration property -* the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configVisible: function(p_sType, p_aArgs, p_oMenu) { - - if(this.cfg.getProperty("position") == "dynamic") { - - YAHOO.widget.Menu.superclass.configVisible.call( - this, - p_sType, - p_aArgs, - p_oMenu - ); - - } - else { - - var bVisible = p_aArgs[0], - sDisplay = Dom.getStyle(this.element, "display"); - - if(bVisible) { - - if(sDisplay != "block") { - this.beforeShowEvent.fire(); - Dom.setStyle(this.element, "display", "block"); - this.showEvent.fire(); - } - - } - else { - - if(sDisplay == "block") { - this.beforeHideEvent.fire(); - Dom.setStyle(this.element, "display", "none"); - this.hideEvent.fire(); - } - - } - - } - -}, - - -/** -* @method configPosition -* @description Event handler for when the "position" configuration property -* of the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configPosition: function(p_sType, p_aArgs, p_oMenu) { - - var sCSSPosition = p_aArgs[0] == "static" ? "static" : "absolute", - oCfg = this.cfg; - - Dom.setStyle(this.element, "position", sCSSPosition); - - - if(sCSSPosition == "static") { - - /* - Remove the iframe for statically positioned menus since it will - intercept mouse events. - */ - - oCfg.setProperty("iframe", false); - - - // Statically positioned menus are visible by default - - Dom.setStyle(this.element, "display", "block"); - - oCfg.setProperty("visible", true); - - } - else { - - /* - Even though the "visible" property is queued to - "false" by default, we need to set the "visibility" property to - "hidden" since Overlay's "configVisible" implementation checks the - element's "visibility" style property before deciding whether - or not to show an Overlay instance. - */ - - Dom.setStyle(this.element, "visibility", "hidden"); - - } - - - if(sCSSPosition == "absolute") { - - var nZIndex = oCfg.getProperty("zindex"); - - if(!nZIndex || nZIndex === 0) { - - nZIndex = this.parent ? - (this.parent.parent.cfg.getProperty("zindex") + 1) : 1; - - oCfg.setProperty("zindex", nZIndex); - - } - - } - -}, - - -/** -* @method configIframe -* @description Event handler for when the "iframe" configuration property of -* the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configIframe: function(p_sType, p_aArgs, p_oMenu) { - - if(this.cfg.getProperty("position") == "dynamic") { - - YAHOO.widget.Menu.superclass.configIframe.call( - this, - p_sType, - p_aArgs, - p_oMenu - ); - - } - -}, - - -/** -* @method configHideDelay -* @description Event handler for when the "hidedelay" configuration property -* of the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configHideDelay: function(p_sType, p_aArgs, p_oMenu) { - - var nHideDelay = p_aArgs[0], - oMouseOutEvent = this.mouseOutEvent, - oMouseOverEvent = this.mouseOverEvent, - oKeyDownEvent = this.keyDownEvent; - - if(nHideDelay > 0) { - - /* - Only assign event handlers once. This way the user change - the value for the hidedelay as many times as they want. - */ - - if(!this._bHideDelayEventHandlersAssigned) { - - oMouseOutEvent.subscribe(this._execHideDelay, this); - oMouseOverEvent.subscribe(this._cancelHideDelay, this, true); - oKeyDownEvent.subscribe(this._cancelHideDelay, this, true); - - this._bHideDelayEventHandlersAssigned = true; - - } - - } - else { - - oMouseOutEvent.unsubscribe(this._execHideDelay, this); - oMouseOverEvent.unsubscribe(this._cancelHideDelay, this); - oKeyDownEvent.unsubscribe(this._cancelHideDelay, this); - - this._bHideDelayEventHandlersAssigned = false; - - } - -}, - - -/** -* @method configContainer -* @description Event handler for when the "container" configuration property -of the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configContainer: function(p_sType, p_aArgs, p_oMenu) { - - var oElement = p_aArgs[0]; - - if(typeof oElement == 'string') { - - this.cfg.setProperty( - "container", - document.getElementById(oElement), - true - ); - - } - -}, - - -/** -* @method _setMaxHeight -* @description "renderEvent" handler used to defer the setting of the -* "maxheight" configuration property until the menu is rendered in lazy -* load scenarios. -* @param {String} p_sType The name of the event that was fired. -* @param {Array} p_aArgs Collection of arguments sent when the event -* was fired. -* @param {Number} p_nMaxHeight Number representing the value to set for the -* "maxheight" configuration property. -* @private -*/ -_setMaxHeight: function(p_sType, p_aArgs, p_nMaxHeight) { - - this.cfg.setProperty("maxheight", p_nMaxHeight); - this.renderEvent.unsubscribe(this._setMaxHeight); - -}, - - -/** -* @method configMaxHeight -* @description Event handler for when the "maxheight" configuration property of -* a Menu changes. -* @param {String} p_sType The name of the event that was fired. -* @param {Array} p_aArgs Collection of arguments sent when the event -* was fired. -* @param {YAHOO.widget.Menu} p_oMenu The Menu instance fired -* the event. -*/ -configMaxHeight: function(p_sType, p_aArgs, p_oMenu) { - - var nMaxHeight = p_aArgs[0], - oBody = this.body; - - - if(this.lazyLoad && !oBody) { - - this.renderEvent.unsubscribe(this._setMaxHeight); - - if(nMaxHeight > 0) { - - this.renderEvent.subscribe(this._setMaxHeight, nMaxHeight, this); - - } - - return; - - } - - Dom.setStyle(oBody, "height", "auto"); - Dom.setStyle(oBody, "overflow", "visible"); - - var oHeader = this.header, - oFooter = this.footer, - fnMouseOver = this._onScrollTargetMouseOver, - fnMouseOut = this._onScrollTargetMouseOut; - - - if((nMaxHeight > 0) && (oBody.offsetHeight > nMaxHeight)) { - - if(!this.cfg.getProperty("width")) { - - this._setWidth(); - - } - - if(!oHeader && !oFooter) { - - this.setHeader(" "); - this.setFooter(" "); - - oHeader = this.header; - oFooter = this.footer; - - Dom.addClass(oHeader, "topscrollbar"); - Dom.addClass(oFooter, "bottomscrollbar"); - - this.element.insertBefore(oHeader, oBody); - this.element.appendChild(oFooter); - - Event.on(oHeader, "mouseover", fnMouseOver, this, true); - Event.on(oHeader, "mouseout", fnMouseOut, this, true); - Event.on(oFooter, "mouseover", fnMouseOver, this, true); - Event.on(oFooter, "mouseout", fnMouseOut, this, true); - - } - - var nHeight = - - ( - nMaxHeight - - (this.footer.offsetHeight + this.header.offsetHeight) - ); - - Dom.setStyle(oBody, "height", (nHeight + "px")); - Dom.setStyle(oBody, "overflow", "hidden"); - - } - else if(oHeader && oFooter) { - - Dom.setStyle(oBody, "height", "auto"); - Dom.setStyle(oBody, "overflow", "visible"); - - Event.removeListener(oHeader, "mouseover", fnMouseOver); - Event.removeListener(oHeader, "mouseout", fnMouseOut); - Event.removeListener(oFooter, "mouseover", fnMouseOver); - Event.removeListener(oFooter, "mouseout", fnMouseOut); - - this.element.removeChild(oHeader); - this.element.removeChild(oFooter); - - this.header = null; - this.footer = null; - - } - -}, - - -/** -* @method configClassName -* @description Event handler for when the "classname" configuration property of -* a menu changes. -* @param {String} p_sType The name of the event that was fired. -* @param {Array} p_aArgs Collection of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu The Menu instance fired the event. -*/ -configClassName: function(p_sType, p_aArgs, p_oMenu) { - - var sClassName = p_aArgs[0]; - - if(this._sClassName) { - - Dom.removeClass(this.element, this._sClassName); - - } - - Dom.addClass(this.element, sClassName); - this._sClassName = sClassName; - -}, - - - -// Public methods - - - -/** -* @method initEvents -* @description Initializes the custom events for the menu. -*/ -initEvents: function() { - - YAHOO.widget.Menu.superclass.initEvents.call(this); - - // Create custom events - - var EVENT_TYPES = YAHOO.widget.Menu._EVENT_TYPES; - - this.mouseOverEvent = new CustomEvent(EVENT_TYPES.MOUSE_OVER, this); - this.mouseOutEvent = new CustomEvent(EVENT_TYPES.MOUSE_OUT, this); - this.mouseDownEvent = new CustomEvent(EVENT_TYPES.MOUSE_DOWN, this); - this.mouseUpEvent = new CustomEvent(EVENT_TYPES.MOUSE_UP, this); - this.clickEvent = new CustomEvent(EVENT_TYPES.CLICK, this); - this.keyPressEvent = new CustomEvent(EVENT_TYPES.KEY_PRESS, this); - this.keyDownEvent = new CustomEvent(EVENT_TYPES.KEY_DOWN, this); - this.keyUpEvent = new CustomEvent(EVENT_TYPES.KEY_UP, this); - this.focusEvent = new CustomEvent(EVENT_TYPES.FOCUS, this); - this.blurEvent = new CustomEvent(EVENT_TYPES.BLUR, this); - this.itemAddedEvent = new CustomEvent(EVENT_TYPES.ITEM_ADDED, this); - this.itemRemovedEvent = new CustomEvent(EVENT_TYPES.ITEM_REMOVED, this); - -}, - - -/** -* @method getRoot -* @description Finds the menu's root menu. -*/ -getRoot: function() { - - var oItem = this.parent; - - if(oItem) { - - var oParentMenu = oItem.parent; - - return oParentMenu ? oParentMenu.getRoot() : this; - - } - else { - - return this; - - } - -}, - - -/** -* @method toString -* @description Returns a string representing the menu. -* @return {String} -*/ -toString: function() { - - var sReturnVal = "Menu", - sId = this.id; - - if(sId) { - - sReturnVal += (" " + sId); - - } - - return sReturnVal; - -}, - - -/** -* @method setItemGroupTitle -* @description Sets the title of a group of menu items. -* @param {String} p_sGroupTitle String specifying the title of the group. -* @param {Number} p_nGroupIndex Optional. Number specifying the group to which -* the title belongs. -*/ -setItemGroupTitle: function(p_sGroupTitle, p_nGroupIndex) { - - if(typeof p_sGroupTitle == "string" && p_sGroupTitle.length > 0) { - - var nGroupIndex = typeof p_nGroupIndex == "number" ? p_nGroupIndex : 0, - oTitle = this._aGroupTitleElements[nGroupIndex]; - - - if(oTitle) { - - oTitle.innerHTML = p_sGroupTitle; - - } - else { - - oTitle = document.createElement(this.GROUP_TITLE_TAG_NAME); - - oTitle.innerHTML = p_sGroupTitle; - - this._aGroupTitleElements[nGroupIndex] = oTitle; - - } - - - var i = this._aGroupTitleElements.length - 1, - nFirstIndex; - - do { - - if(this._aGroupTitleElements[i]) { - - Dom.removeClass(this._aGroupTitleElements[i], "first-of-type"); - - nFirstIndex = i; - - } - - } - while(i--); - - - if(nFirstIndex !== null) { - - Dom.addClass( - this._aGroupTitleElements[nFirstIndex], - "first-of-type" - ); - - } - - } - -}, - - - -/** -* @method addItem -* @description Appends an item to the menu. -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance to be added to the menu. -* @param {String} p_oItem String specifying the text of the item to be added -* to the menu. -* @param {Object} p_oItem Object literal containing a set of menu item -* configuration properties. -* @param {Number} p_nGroupIndex Optional. Number indicating the group to -* which the item belongs. -* @return {YAHOO.widget.MenuItem} -*/ -addItem: function(p_oItem, p_nGroupIndex) { - - if(p_oItem) { - - return this._addItemToGroup(p_nGroupIndex, p_oItem); - - } - -}, - - -/** -* @method addItems -* @description Adds an array of items to the menu. -* @param {Array} p_aItems Array of items to be added to the menu. The array -* can contain strings specifying the text for each item to be created, object -* literals specifying each of the menu item configuration properties, -* or MenuItem instances. -* @param {Number} p_nGroupIndex Optional. Number specifying the group to -* which the items belongs. -* @return {Array} -*/ -addItems: function(p_aItems, p_nGroupIndex) { - - if(Lang.isArray(p_aItems)) { - - var nItems = p_aItems.length, - aItems = [], - oItem; - - - for(var i=0; i 0) { - - var i = nItems - 1, - oItem, - oSubmenu; - - do { - - oItem = aItems[i]; - - if(oItem) { - - oSubmenu = oItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - this.cfg.configChangedEvent.unsubscribe( - this._onParentMenuConfigChange, - oSubmenu - ); - - this.renderEvent.unsubscribe( - this._onParentMenuRender, - oSubmenu - ); - - } - - oItem.destroy(); - - } - - } - while(i--); - - } - - - if(oHeader) { - - Event.purgeElement(oHeader); - oElement.removeChild(oHeader); - - } - - - if(oFooter) { - - Event.purgeElement(oFooter); - oElement.removeChild(oFooter); - } - - - if(oBody) { - - Event.purgeElement(oBody); - - oBody.innerHTML = ""; - - } - - - this._aItemGroups = []; - this._aListElements = []; - this._aGroupTitleElements = []; - - this.cfg.setProperty("width", null); - -}, - - -/** -* @method destroy -* @description Removes the menu's <div> element -* (and accompanying child nodes) from the document. -*/ -destroy: function() { - - // Remove all DOM event listeners - - Event.purgeElement(this.element); - - - // Remove Custom Event listeners - - this.mouseOverEvent.unsubscribeAll(); - this.mouseOutEvent.unsubscribeAll(); - this.mouseDownEvent.unsubscribeAll(); - this.mouseUpEvent.unsubscribeAll(); - this.clickEvent.unsubscribeAll(); - this.keyPressEvent.unsubscribeAll(); - this.keyDownEvent.unsubscribeAll(); - this.keyUpEvent.unsubscribeAll(); - this.focusEvent.unsubscribeAll(); - this.blurEvent.unsubscribeAll(); - this.itemAddedEvent.unsubscribeAll(); - this.itemRemovedEvent.unsubscribeAll(); - this.cfg.unsubscribeFromConfigEvent("width", this._onWidthChange); - this.cfg.unsubscribeFromConfigEvent("visible", this._onVisibleChange); - - if (this._hasSetWidthHandlers) { - - this.itemAddedEvent.unsubscribe(this._setWidth); - this.itemRemovedEvent.unsubscribe(this._setWidth); - - this._hasSetWidthHandlers = false; - - } - - YAHOO.widget.Module.textResizeEvent.unsubscribe(this._onTextResize, this); - - - // Remove all items - - this.clearContent(); - - - this._aItemGroups = null; - this._aListElements = null; - this._aGroupTitleElements = null; - - - // Continue with the superclass implementation of this method - - YAHOO.widget.Menu.superclass.destroy.call(this); - - this.logger.log("Destroyed."); - -}, - - -/** -* @method setInitialFocus -* @description Sets focus to the menu's first enabled item. -*/ -setInitialFocus: function() { - - var oItem = this._getFirstEnabledItem(); - - if (oItem) { - - oItem.focus(); - - } - -}, - - -/** -* @method setInitialSelection -* @description Sets the "selected" configuration property of the menu's first -* enabled item to "true." -*/ -setInitialSelection: function() { - - var oItem = this._getFirstEnabledItem(); - - if(oItem) { - - oItem.cfg.setProperty("selected", true); - } - -}, - - -/** -* @method clearActiveItem -* @description Sets the "selected" configuration property of the menu's active -* item to "false" and hides the item's submenu. -* @param {Boolean} p_bBlur Boolean indicating if the menu's active item -* should be blurred. -*/ -clearActiveItem: function(p_bBlur) { - - if(this.cfg.getProperty("showdelay") > 0) { - - this._cancelShowDelay(); - - } - - - var oActiveItem = this.activeItem; - - if(oActiveItem) { - - var oConfig = oActiveItem.cfg; - - if(p_bBlur) { - - oActiveItem.blur(); - - } - - oConfig.setProperty("selected", false); - - var oSubmenu = oConfig.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.hide(); - - } - - this.activeItem = null; - - } - -}, - - -/** -* @method focus -* @description Causes the menu to receive focus and fires the "focus" event. -*/ -focus: function() { - - if (!this.hasFocus()) { - - this.setInitialFocus(); - - } - -}, - - -/** -* @method blur -* @description Causes the menu to lose focus and fires the "blur" event. -*/ -blur: function() { - - if (this.hasFocus()) { - - var oItem = YAHOO.widget.MenuManager.getFocusedMenuItem(); - - if (oItem) { - - oItem.blur(); - - } - - } - -}, - - -/** -* @method hasFocus -* @description Returns a boolean indicating whether or not the menu has focus. -* @return {Boolean} -*/ -hasFocus: function() { - - return (YAHOO.widget.MenuManager.getFocusedMenu() == this.getRoot()); - -}, - - -/** -* @description Initializes the class's configurable properties which can be -* changed using the menu's Config object ("cfg"). -* @method initDefaultConfig -*/ -initDefaultConfig: function() { - - YAHOO.widget.Menu.superclass.initDefaultConfig.call(this); - - var oConfig = this.cfg, - DEFAULT_CONFIG = YAHOO.widget.Menu._DEFAULT_CONFIG; - - // Add configuration attributes - - /* - Change the default value for the "visible" configuration - property to "false" by re-adding the property. - */ - - /** - * @config visible - * @description Boolean indicating whether or not the menu is visible. If - * the menu's "position" configuration property is set to "dynamic" (the - * default), this property toggles the menu's <div> - * element's "visibility" style property between "visible" (true) or - * "hidden" (false). If the menu's "position" configuration property is - * set to "static" this property toggles the menu's - * <div> element's "display" style property - * between "block" (true) or "none" (false). - * @default false - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.VISIBLE.key, - { - handler: this.configVisible, - value: DEFAULT_CONFIG.VISIBLE.value, - validator: DEFAULT_CONFIG.VISIBLE.validator - } - ); - - - /* - Change the default value for the "constraintoviewport" configuration - property to "true" by re-adding the property. - */ - - /** - * @config constraintoviewport - * @description Boolean indicating if the menu will try to remain inside - * the boundaries of the size of viewport. - * @default true - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.key, - { - handler: this.configConstrainToViewport, - value: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.value, - validator: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.validator, - supercedes: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.supercedes - } - ); - - - /** - * @config position - * @description String indicating how a menu should be positioned on the - * screen. Possible values are "static" and "dynamic." Static menus are - * visible by default and reside in the normal flow of the document - * (CSS position: static). Dynamic menus are hidden by default, reside - * out of the normal flow of the document (CSS position: absolute), and - * can overlay other elements on the screen. - * @default dynamic - * @type String - */ - oConfig.addProperty( - DEFAULT_CONFIG.POSITION.key, - { - handler: this.configPosition, - value: DEFAULT_CONFIG.POSITION.value, - validator: DEFAULT_CONFIG.POSITION.validator, - supercedes: DEFAULT_CONFIG.POSITION.supercedes - } - ); - - - /** - * @config submenualignment - * @description Array defining how submenus should be aligned to their - * parent menu item. The format is: [itemCorner, submenuCorner]. By default - * a submenu's top left corner is aligned to its parent menu item's top - * right corner. - * @default ["tl","tr"] - * @type Array - */ - oConfig.addProperty( - DEFAULT_CONFIG.SUBMENU_ALIGNMENT.key, - { - value: DEFAULT_CONFIG.SUBMENU_ALIGNMENT.value - } - ); - - - /** - * @config autosubmenudisplay - * @description Boolean indicating if submenus are automatically made - * visible when the user mouses over the menu's items. - * @default true - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.key, - { - value: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.value, - validator: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.validator - } - ); - - - /** - * @config showdelay - * @description Number indicating the time (in milliseconds) that should - * expire before a submenu is made visible when the user mouses over - * the menu's items. - * @default 250 - * @type Number - */ - oConfig.addProperty( - DEFAULT_CONFIG.SHOW_DELAY.key, - { - value: DEFAULT_CONFIG.SHOW_DELAY.value, - validator: DEFAULT_CONFIG.SHOW_DELAY.validator - } - ); - - - /** - * @config hidedelay - * @description Number indicating the time (in milliseconds) that should - * expire before the menu is hidden. - * @default 0 - * @type Number - */ - oConfig.addProperty( - DEFAULT_CONFIG.HIDE_DELAY.key, - { - handler: this.configHideDelay, - value: DEFAULT_CONFIG.HIDE_DELAY.value, - validator: DEFAULT_CONFIG.HIDE_DELAY.validator, - suppressEvent: DEFAULT_CONFIG.HIDE_DELAY.suppressEvent - } - ); - - - /** - * @config submenuhidedelay - * @description Number indicating the time (in milliseconds) that should - * expire before a submenu is hidden when the user mouses out of a menu item - * heading in the direction of a submenu. The value must be greater than or - * equal to the value specified for the "showdelay" configuration property. - * @default 250 - * @type Number - */ - oConfig.addProperty( - DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.key, - { - value: DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.value, - validator: DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.validator - } - ); - - - /** - * @config clicktohide - * @description Boolean indicating if the menu will automatically be - * hidden if the user clicks outside of it. - * @default true - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.CLICK_TO_HIDE.key, - { - value: DEFAULT_CONFIG.CLICK_TO_HIDE.value, - validator: DEFAULT_CONFIG.CLICK_TO_HIDE.validator - } - ); - - - /** - * @config container - * @description HTML element reference or string specifying the id - * attribute of the HTML element that the menu's markup should be - * rendered into. - * @type HTMLElement|String - * @default document.body - */ - oConfig.addProperty( - DEFAULT_CONFIG.CONTAINER.key, - { - handler: this.configContainer, - value: document.body - } - ); - - - /** - * @config maxheight - * @description Defines the maximum height (in pixels) for a menu before the - * contents of the body are scrolled. - * @default 0 - * @type Number - */ - oConfig.addProperty( - DEFAULT_CONFIG.MAX_HEIGHT.key, - { - handler: this.configMaxHeight, - value: DEFAULT_CONFIG.MAX_HEIGHT.value, - validator: DEFAULT_CONFIG.MAX_HEIGHT.validator - } - ); - - - /** - * @config classname - * @description CSS class to be applied to the menu's root - * <div> element. The specified class(es) are - * appended in addition to the default class as specified by the menu's - * CSS_CLASS_NAME constant. - * @default null - * @type String - */ - oConfig.addProperty( - DEFAULT_CONFIG.CLASS_NAME.key, - { - handler: this.configClassName, - value: DEFAULT_CONFIG.CLASS_NAME.value, - validator: DEFAULT_CONFIG.CLASS_NAME.validator - } - ); - -} - -}); // END YAHOO.lang.extend - -})(); - - - -(function() { - -var Dom = YAHOO.util.Dom, - Module = YAHOO.widget.Module, - Menu = YAHOO.widget.Menu, - CustomEvent = YAHOO.util.CustomEvent, - Lang = YAHOO.lang; - -/** -* Creates an item for a menu. -* -* @param {String} p_oObject String specifying the text of the menu item. -* @param {HTMLLIElement} p_oObject Object specifying -* the <li> element of the menu item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the menu item. -* @param {HTMLOptionElement} p_oObject Object -* specifying the <option> element of the menu item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu item. See configuration class documentation -* for more details. -* @class MenuItem -* @constructor -*/ -YAHOO.widget.MenuItem = function(p_oObject, p_oConfig) { - - if(p_oObject) { - - if(p_oConfig) { - - this.parent = p_oConfig.parent; - this.value = p_oConfig.value; - this.id = p_oConfig.id; - - } - - this.init(p_oObject, p_oConfig); - - } - -}; - - -/** -* Constant representing the name of the MenuItem's events -* @property YAHOO.widget.MenuItem._EVENT_TYPES -* @private -* @final -* @type Object -*/ -YAHOO.widget.MenuItem._EVENT_TYPES = { - - "MOUSE_OVER": "mouseover", - "MOUSE_OUT": "mouseout", - "MOUSE_DOWN": "mousedown", - "MOUSE_UP": "mouseup", - "CLICK": "click", - "KEY_PRESS": "keypress", - "KEY_DOWN": "keydown", - "KEY_UP": "keyup", - "ITEM_ADDED": "itemAdded", - "ITEM_REMOVED": "itemRemoved", - "FOCUS": "focus", - "BLUR": "blur", - "DESTROY": "destroy" - -}; - - -/** -* Constant representing the MenuItem's configuration properties -* @property YAHOO.widget.MenuItem._DEFAULT_CONFIG -* @private -* @final -* @type Object -*/ -YAHOO.widget.MenuItem._DEFAULT_CONFIG = { - - "TEXT": { - key: "text", - value: "", - validator: Lang.isString, - suppressEvent: true - }, - - "HELP_TEXT": { - key: "helptext" - }, - - "URL": { - key: "url", - value: "#", - suppressEvent: true - }, - - "TARGET": { - key: "target", - suppressEvent: true - }, - - "EMPHASIS": { - key: "emphasis", - value: false, - validator: Lang.isBoolean, - suppressEvent: true - }, - - "STRONG_EMPHASIS": { - key: "strongemphasis", - value: false, - validator: Lang.isBoolean, - suppressEvent: true - }, - - "CHECKED": { - key: "checked", - value: false, - validator: Lang.isBoolean, - suppressEvent: true, - supercedes:["disabled"] - }, - - "DISABLED": { - key: "disabled", - value: false, - validator: Lang.isBoolean, - suppressEvent: true - }, - - "SELECTED": { - key: "selected", - value: false, - validator: Lang.isBoolean, - suppressEvent: true - }, - - "SUBMENU": { - key: "submenu" - }, - - "ONCLICK": { - key: "onclick" - }, - - "CLASS_NAME": { - key: "classname", - value: null, - validator: Lang.isString - } - -}; - - -YAHOO.widget.MenuItem.prototype = { - - // Constants - - - /** - * @property COLLAPSED_SUBMENU_INDICATOR_TEXT - * @description String representing the text for the <em> - * element used for the submenu arrow indicator. - * @default "Submenu collapsed. Click to expand submenu." - * @final - * @type String - */ - COLLAPSED_SUBMENU_INDICATOR_TEXT: - "Submenu collapsed. Click to expand submenu.", - - - /** - * @property EXPANDED_SUBMENU_INDICATOR_TEXT - * @description String representing the text for the submenu arrow indicator - * element (<em>) when the submenu is visible. - * @default "Submenu expanded. Click to collapse submenu." - * @final - * @type String - */ - EXPANDED_SUBMENU_INDICATOR_TEXT: - "Submenu expanded. Click to collapse submenu.", - - - /** - * @property DISABLED_SUBMENU_INDICATOR_TEXT - * @description String representing the text for the submenu arrow indicator - * element (<em>) when the menu item is disabled. - * @default "Submenu collapsed. (Item disabled.)." - * @final - * @type String - */ - DISABLED_SUBMENU_INDICATOR_TEXT: "Submenu collapsed. (Item disabled.)", - - - /** - * @property CHECKED_TEXT - * @description String representing the text to be used for the checked - * indicator element (<em>). - * @default "Checked." - * @final - * @type String - */ - CHECKED_TEXT: "Menu item checked.", - - - /** - * @property DISABLED_CHECKED_TEXT - * @description String representing the text to be used for the checked - * indicator element (<em>) when the menu item - * is disabled. - * @default "Checked. (Item disabled.)" - * @final - * @type String - */ - DISABLED_CHECKED_TEXT: "Checked. (Item disabled.)", - - - /** - * @property CSS_CLASS_NAME - * @description String representing the CSS class(es) to be applied to the - * <li> element of the menu item. - * @default "yuimenuitem" - * @final - * @type String - */ - CSS_CLASS_NAME: "yuimenuitem", - - - /** - * @property SUBMENU_TYPE - * @description Object representing the type of menu to instantiate and - * add when parsing the child nodes of the menu item's source HTML element. - * @final - * @type YAHOO.widget.Menu - */ - SUBMENU_TYPE: null, - - - - // Private member variables - - - /** - * @property _oAnchor - * @description Object reference to the menu item's - * <a> element. - * @default null - * @private - * @type HTMLAnchorElement - */ - _oAnchor: null, - - - /** - * @property _oText - * @description Object reference to the menu item's text node. - * @default null - * @private - * @type TextNode - */ - _oText: null, - - - /** - * @property _oHelpTextEM - * @description Object reference to the menu item's help text - * <em> element. - * @default null - * @private - * @type HTMLElement - */ - _oHelpTextEM: null, - - - /** - * @property _oSubmenu - * @description Object reference to the menu item's submenu. - * @default null - * @private - * @type YAHOO.widget.Menu - */ - _oSubmenu: null, - - - /** - * @property _oCheckedIndicator - * @description Object reference to the menu item's checkmark image. - * @default HTMLElement - * @private - * @type HTMLElement - */ - _oCheckedIndicator: null, - - - /** - * @property _oOnclickAttributeValue - * @description Object reference to the menu item's current value for the - * "onclick" configuration attribute. - * @default null - * @private - * @type Object - */ - _oOnclickAttributeValue: null, - - - /** - * @property _sClassName - * @description The current value of the "classname" configuration attribute. - * @default null - * @private - * @type String - */ - _sClassName: null, - - - - // Public properties - - - /** - * @property constructor - * @description Object reference to the menu item's constructor function. - * @default YAHOO.widget.MenuItem - * @type YAHOO.widget.MenuItem - */ - constructor: YAHOO.widget.MenuItem, - - - /** - * @property index - * @description Number indicating the ordinal position of the menu item in - * its group. - * @default null - * @type Number - */ - index: null, - - - /** - * @property groupIndex - * @description Number indicating the index of the group to which the menu - * item belongs. - * @default null - * @type Number - */ - groupIndex: null, - - - /** - * @property parent - * @description Object reference to the menu item's parent menu. - * @default null - * @type YAHOO.widget.Menu - */ - parent: null, - - - /** - * @property element - * @description Object reference to the menu item's - * <li> element. - * @default HTMLLIElement - * @type HTMLLIElement - */ - element: null, - - - /** - * @property srcElement - * @description Object reference to the HTML element (either - * <li>, <optgroup> or - * <option>) used create the menu item. - * @default HTMLLIElement|HTMLOptGroupElement|HTMLOptionElement - * @type HTMLLIElement| - * HTMLOptGroupElement|HTMLOptionElement - */ - srcElement: null, - - - /** - * @property value - * @description Object reference to the menu item's value. - * @default null - * @type Object - */ - value: null, - - - /** - * @property submenuIndicator - * @description Object reference to the <em> element - * used to create the submenu indicator for the menu item. - * @default HTMLElement - * @type HTMLElement - */ - submenuIndicator: null, - - - /** - * @property browser - * @description String representing the browser. - * @type String - */ - browser: Module.prototype.browser, - - - /** - * @property id - * @description Id of the menu item's root <li> - * element. This property should be set via the constructor using the - * configuration object literal. If an id is not specified, then one will - * be created using the "generateId" method of the Dom utility. - * @default null - * @type String - */ - id: null, - - - - // Events - - - /** - * @event destroyEvent - * @description Fires when the menu item's <li> - * element is removed from its parent <ul> element. - * @type YAHOO.util.CustomEvent - */ - destroyEvent: null, - - - /** - * @event mouseOverEvent - * @description Fires when the mouse has entered the menu item. Passes - * back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseOverEvent: null, - - - /** - * @event mouseOutEvent - * @description Fires when the mouse has left the menu item. Passes back - * the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseOutEvent: null, - - - /** - * @event mouseDownEvent - * @description Fires when the user mouses down on the menu item. Passes - * back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseDownEvent: null, - - - /** - * @event mouseUpEvent - * @description Fires when the user releases a mouse button while the mouse - * is over the menu item. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseUpEvent: null, - - - /** - * @event clickEvent - * @description Fires when the user clicks the on the menu item. Passes - * back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - clickEvent: null, - - - /** - * @event keyPressEvent - * @description Fires when the user presses an alphanumeric key when the - * menu item has focus. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - keyPressEvent: null, - - - /** - * @event keyDownEvent - * @description Fires when the user presses a key when the menu item has - * focus. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - keyDownEvent: null, - - - /** - * @event keyUpEvent - * @description Fires when the user releases a key when the menu item has - * focus. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - keyUpEvent: null, - - - /** - * @event focusEvent - * @description Fires when the menu item receives focus. - * @type YAHOO.util.CustomEvent - */ - focusEvent: null, - - - /** - * @event blurEvent - * @description Fires when the menu item loses the input focus. - * @type YAHOO.util.CustomEvent - */ - blurEvent: null, - - - /** - * @method init - * @description The MenuItem class's initialization method. This method is - * automatically called by the constructor, and sets up all DOM references - * for pre-existing markup, and creates required markup if it is not - * already present. - * @param {String} p_oObject String specifying the text of the menu item. - * @param {HTMLLIElement} p_oObject Object specifying - * the <li> element of the menu item. - * @param {HTMLOptGroupElement} p_oObject Object - * specifying the <optgroup> element of the menu item. - * @param {HTMLOptionElement} p_oObject Object - * specifying the <option> element of the menu item. - * @param {Object} p_oConfig Optional. Object literal specifying the - * configuration for the menu item. See configuration class documentation - * for more details. - */ - init: function(p_oObject, p_oConfig) { - - - if(!this.SUBMENU_TYPE) { - - this.SUBMENU_TYPE = Menu; - - } - - - // Create the config object - - this.cfg = new YAHOO.util.Config(this); - - this.initDefaultConfig(); - - var oConfig = this.cfg; - - - if(Lang.isString(p_oObject)) { - - this._createRootNodeStructure(); - - oConfig.setProperty("text", p_oObject); - - } - else if(this._checkDOMNode(p_oObject)) { - - switch(p_oObject.tagName.toUpperCase()) { - - case "OPTION": - - this._createRootNodeStructure(); - - oConfig.setProperty("text", p_oObject.text); - - this.srcElement = p_oObject; - - break; - - case "OPTGROUP": - - this._createRootNodeStructure(); - - oConfig.setProperty("text", p_oObject.label); - - this.srcElement = p_oObject; - - this._initSubTree(); - - break; - - case "LI": - - // Get the anchor node (if it exists) - - var oAnchor = this._getFirstElement(p_oObject, "A"), - sURL = "#", - sTarget, - sText; - - - // Capture the "text" and/or the "URL" - - if(oAnchor) { - - sURL = oAnchor.getAttribute("href"); - sTarget = oAnchor.getAttribute("target"); - - if(oAnchor.innerText) { - - sText = oAnchor.innerText; - - } - else { - - var oRange = oAnchor.ownerDocument.createRange(); - - oRange.selectNodeContents(oAnchor); - - sText = oRange.toString(); - - } - - } - else { - - var oText = p_oObject.firstChild; - - sText = oText.nodeValue; - - oAnchor = document.createElement("a"); - - oAnchor.setAttribute("href", sURL); - - p_oObject.replaceChild(oAnchor, oText); - - oAnchor.appendChild(oText); - - } - - - this.srcElement = p_oObject; - this.element = p_oObject; - this._oAnchor = oAnchor; - - - // Check if emphasis has been applied to the MenuItem - - var oEmphasisNode = this._getFirstElement(oAnchor), - bEmphasis = false, - bStrongEmphasis = false; - - if(oEmphasisNode) { - - // Set a reference to the text node - - this._oText = oEmphasisNode.firstChild; - - switch(oEmphasisNode.tagName.toUpperCase()) { - - case "EM": - - bEmphasis = true; - - break; - - case "STRONG": - - bStrongEmphasis = true; - - break; - - } - - } - else { - - // Set a reference to the text node - - this._oText = oAnchor.firstChild; - - } - - - /* - Set these properties silently to sync up the - configuration object without making changes to the - element's DOM - */ - - oConfig.setProperty("text", sText, true); - oConfig.setProperty("url", sURL, true); - oConfig.setProperty("target", sTarget, true); - oConfig.setProperty("emphasis", bEmphasis, true); - oConfig.setProperty( - "strongemphasis", - bStrongEmphasis, - true - ); - - this._initSubTree(); - - break; - - } - - } - - - if(this.element) { - - var sId = this.element.id; - - if(!sId) { - - sId = this.id || Dom.generateId(); - - this.element.id = sId; - - } - - this.id = sId; - - - Dom.addClass(this.element, this.CSS_CLASS_NAME); - - - // Create custom events - - var EVENT_TYPES = YAHOO.widget.MenuItem._EVENT_TYPES; - - this.mouseOverEvent = new CustomEvent(EVENT_TYPES.MOUSE_OVER, this); - this.mouseOutEvent = new CustomEvent(EVENT_TYPES.MOUSE_OUT, this); - this.mouseDownEvent = new CustomEvent(EVENT_TYPES.MOUSE_DOWN, this); - this.mouseUpEvent = new CustomEvent(EVENT_TYPES.MOUSE_UP, this); - this.clickEvent = new CustomEvent(EVENT_TYPES.CLICK, this); - this.keyPressEvent = new CustomEvent(EVENT_TYPES.KEY_PRESS, this); - this.keyDownEvent = new CustomEvent(EVENT_TYPES.KEY_DOWN, this); - this.keyUpEvent = new CustomEvent(EVENT_TYPES.KEY_UP, this); - this.focusEvent = new CustomEvent(EVENT_TYPES.FOCUS, this); - this.blurEvent = new CustomEvent(EVENT_TYPES.BLUR, this); - this.destroyEvent = new CustomEvent(EVENT_TYPES.DESTROY, this); - - if(p_oConfig) { - - oConfig.applyConfig(p_oConfig); - - } - - oConfig.fireQueue(); - - } - - }, - - - - // Private methods - - - /** - * @method _getFirstElement - * @description Returns an HTML element's first HTML element node. - * @private - * @param {HTMLElement} p_oElement Object - * reference specifying the element to be evaluated. - * @param {String} p_sTagName Optional. String specifying the tagname of - * the element to be retrieved. - * @return {HTMLElement} - */ - _getFirstElement: function(p_oElement, p_sTagName) { - - var oFirstChild = p_oElement.firstChild, - oElement; - - if(oFirstChild) { - - if(oFirstChild.nodeType == 1) { - - oElement = oFirstChild; - - } - else { - - var oNextSibling = oFirstChild.nextSibling; - - if(oNextSibling && oNextSibling.nodeType == 1) { - - oElement = oNextSibling; - - } - - } - - } - - - if(p_sTagName) { - - return (oElement && oElement.tagName.toUpperCase() == p_sTagName) ? - oElement : false; - - } - - return oElement; - - }, - - - /** - * @method _checkDOMNode - * @description Determines if an object is an HTML element. - * @private - * @param {Object} p_oObject Object to be evaluated. - * @return {Boolean} - */ - _checkDOMNode: function(p_oObject) { - - return (p_oObject && p_oObject.tagName); - - }, - - - /** - * @method _createRootNodeStructure - * @description Creates the core DOM structure for the menu item. - * @private - */ - _createRootNodeStructure: function () { - - var oTemplate = YAHOO.widget.MenuItem._MenuItemTemplate; - - if(!oTemplate) { - - oTemplate = document.createElement("li"); - oTemplate.innerHTML = "s"; - - YAHOO.widget.MenuItem._MenuItemTemplate = oTemplate; - - } - - this.element = oTemplate.cloneNode(true); - this._oAnchor = this.element.firstChild; - this._oText = this._oAnchor.firstChild; - - this.element.appendChild(this._oAnchor); - - }, - - - /** - * @method _initSubTree - * @description Iterates the source element's childNodes collection and uses - * the child nodes to instantiate other menus. - * @private - */ - _initSubTree: function() { - - var oSrcEl = this.srcElement, - oConfig = this.cfg; - - - if(oSrcEl.childNodes.length > 0) { - - if( - this.parent.lazyLoad && - this.parent.srcElement && - this.parent.srcElement.tagName.toUpperCase() == "SELECT" - ) { - - oConfig.setProperty( - "submenu", - { id: Dom.generateId(), itemdata: oSrcEl.childNodes } - ); - - } - else { - - var oNode = oSrcEl.firstChild, - aOptions = []; - - do { - - if(oNode && oNode.tagName) { - - switch(oNode.tagName.toUpperCase()) { - - case "DIV": - - oConfig.setProperty("submenu", oNode); - - break; - - case "OPTION": - - aOptions[aOptions.length] = oNode; - - break; - - } - - } - - } - while((oNode = oNode.nextSibling)); - - - var nOptions = aOptions.length; - - if(nOptions > 0) { - - var oMenu = new this.SUBMENU_TYPE(Dom.generateId()); - - oConfig.setProperty("submenu", oMenu); - - for(var n=0; n 0) { - - oAnchor.setAttribute("target", sTarget); - - } - else { - - oAnchor.removeAttribute("target"); - - } - - }, - - - /** - * @method configEmphasis - * @description Event handler for when the "emphasis" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configEmphasis: function(p_sType, p_aArgs, p_oItem) { - - var bEmphasis = p_aArgs[0], - oAnchor = this._oAnchor, - oText = this._oText, - oConfig = this.cfg, - oEM; - - - if(bEmphasis && oConfig.getProperty("strongemphasis")) { - - oConfig.setProperty("strongemphasis", false); - - } - - - if(oAnchor) { - - if(bEmphasis) { - - oEM = document.createElement("em"); - oEM.appendChild(oText); - - oAnchor.appendChild(oEM); - - } - else { - - oEM = this._getFirstElement(oAnchor, "EM"); - - if(oEM) { - - oAnchor.removeChild(oEM); - oAnchor.appendChild(oText); - - } - - } - - } - - }, - - - /** - * @method configStrongEmphasis - * @description Event handler for when the "strongemphasis" configuration - * property of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configStrongEmphasis: function(p_sType, p_aArgs, p_oItem) { - - var bStrongEmphasis = p_aArgs[0], - oAnchor = this._oAnchor, - oText = this._oText, - oConfig = this.cfg, - oStrong; - - if(bStrongEmphasis && oConfig.getProperty("emphasis")) { - - oConfig.setProperty("emphasis", false); - - } - - if(oAnchor) { - - if(bStrongEmphasis) { - - oStrong = document.createElement("strong"); - oStrong.appendChild(oText); - - oAnchor.appendChild(oStrong); - - } - else { - - oStrong = this._getFirstElement(oAnchor, "STRONG"); - - if(oStrong) { - - oAnchor.removeChild(oStrong); - oAnchor.appendChild(oText); - - } - - } - - } - - }, - - - /** - * @method configChecked - * @description Event handler for when the "checked" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configChecked: function(p_sType, p_aArgs, p_oItem) { - - var bChecked = p_aArgs[0], - oEl = this.element, - oConfig = this.cfg, - oEM; - - - if(bChecked) { - - var oTemplate = YAHOO.widget.MenuItem._CheckedIndicatorTemplate; - - if(!oTemplate) { - - oTemplate = document.createElement("em"); - oTemplate.innerHTML = this.CHECKED_TEXT; - oTemplate.className = "checkedindicator"; - - YAHOO.widget.MenuItem._CheckedIndicatorTemplate = oTemplate; - - } - - oEM = oTemplate.cloneNode(true); - - var oSubmenu = this.cfg.getProperty("submenu"); - - if(oSubmenu && oSubmenu.element) { - - oEl.insertBefore(oEM, oSubmenu.element); - - } - else { - - oEl.appendChild(oEM); - - } - - - Dom.addClass(oEl, "checked"); - - this._oCheckedIndicator = oEM; - - if(oConfig.getProperty("disabled")) { - - oConfig.refireEvent("disabled"); - - } - - if(oConfig.getProperty("selected")) { - - oConfig.refireEvent("selected"); - - } - - } - else { - - oEM = this._oCheckedIndicator; - - Dom.removeClass(oEl, "checked"); - - if(oEM) { - - oEl.removeChild(oEM); - - } - - this._oCheckedIndicator = null; - - } - - }, - - - - /** - * @method configDisabled - * @description Event handler for when the "disabled" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configDisabled: function(p_sType, p_aArgs, p_oItem) { - - var bDisabled = p_aArgs[0], - oConfig = this.cfg, - oAnchor = this._oAnchor, - aNodes = [this.element, oAnchor], - oHelpText = this._oHelpTextEM, - oCheckedIndicator = this._oCheckedIndicator, - oSubmenuIndicator = this.submenuIndicator, - i = 1; - - - if(oHelpText) { - - i++; - aNodes[i] = oHelpText; - - } - - - if(oCheckedIndicator) { - - oCheckedIndicator.firstChild.nodeValue = bDisabled ? - this.DISABLED_CHECKED_TEXT : - this.CHECKED_TEXT; - - i++; - aNodes[i] = oCheckedIndicator; - - } - - - if(oSubmenuIndicator) { - - oSubmenuIndicator.firstChild.nodeValue = bDisabled ? - this.DISABLED_SUBMENU_INDICATOR_TEXT : - this.COLLAPSED_SUBMENU_INDICATOR_TEXT; - - i++; - aNodes[i] = oSubmenuIndicator; - - } - - - if(bDisabled) { - - if(oConfig.getProperty("selected")) { - - oConfig.setProperty("selected", false); - - } - - oAnchor.removeAttribute("href"); - - Dom.addClass(aNodes, "disabled"); - - } - else { - - oAnchor.setAttribute("href", oConfig.getProperty("url")); - - Dom.removeClass(aNodes, "disabled"); - - } - - }, - - - /** - * @method configSelected - * @description Event handler for when the "selected" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configSelected: function(p_sType, p_aArgs, p_oItem) { - - if(!this.cfg.getProperty("disabled")) { - - var bSelected = p_aArgs[0], - oHelpText = this._oHelpTextEM, - oSubmenuIndicator = this.submenuIndicator, - oCheckedIndicator = this._oCheckedIndicator, - aNodes = [this.element, this._oAnchor], - i = 1; - - - if(oHelpText) { - - i++; - aNodes[i] = oHelpText; - - } - - - if(oSubmenuIndicator) { - - i++; - aNodes[i] = oSubmenuIndicator; - - } - - - if(oCheckedIndicator) { - - i++; - aNodes[i] = oCheckedIndicator; - - } - - - if(bSelected) { - - Dom.addClass(aNodes, "selected"); - - } - else { - - Dom.removeClass(aNodes, "selected"); - - } - - } - - }, - - - /** - * @method configSubmenu - * @description Event handler for when the "submenu" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configSubmenu: function(p_sType, p_aArgs, p_oItem) { - - var oEl = this.element, - oSubmenu = p_aArgs[0], - oSubmenuIndicator = this.submenuIndicator, - oConfig = this.cfg, - aNodes = [this.element, this._oAnchor], - bLazyLoad = this.parent && this.parent.lazyLoad, - oMenu; - - - if(oSubmenu) { - - if(oSubmenu instanceof Menu) { - - oMenu = oSubmenu; - oMenu.parent = this; - oMenu.lazyLoad = bLazyLoad; - - } - else if( - typeof oSubmenu == "object" && - oSubmenu.id && - !oSubmenu.nodeType - ) { - - var sSubmenuId = oSubmenu.id, - oSubmenuConfig = oSubmenu; - - oSubmenuConfig.lazyload = bLazyLoad; - oSubmenuConfig.parent = this; - - oMenu = new this.SUBMENU_TYPE(sSubmenuId, oSubmenuConfig); - - - // Set the value of the property to the Menu instance - - this.cfg.setProperty("submenu", oMenu, true); - - } - else { - - oMenu = new this.SUBMENU_TYPE( - oSubmenu, - { lazyload: bLazyLoad, parent: this } - ); - - - // Set the value of the property to the Menu instance - - this.cfg.setProperty("submenu", oMenu, true); - - } - - - if(oMenu) { - - this._oSubmenu = oMenu; - - - if(!oSubmenuIndicator) { - - var oTemplate = - YAHOO.widget.MenuItem._oSubmenuIndicatorTemplate; - - if(!oTemplate) { - - oTemplate = document.createElement("em"); - oTemplate.innerHTML = - this.COLLAPSED_SUBMENU_INDICATOR_TEXT; - oTemplate.className = "submenuindicator"; - - YAHOO.widget.MenuItem._oSubmenuIndicatorTemplate = - oTemplate; - - } - - - oSubmenuIndicator = oTemplate.cloneNode(true); - - - if(oMenu.element.parentNode == oEl) { - - if(this.browser == "opera") { - - oEl.appendChild(oSubmenuIndicator); - - oMenu.renderEvent.subscribe(function() { - - oSubmenuIndicator.parentNode.insertBefore( - oSubmenuIndicator, - oMenu.element - ); - - }); - - } - else { - - oEl.insertBefore(oSubmenuIndicator, oMenu.element); - - } - - } - else { - - oEl.appendChild(oSubmenuIndicator); - - } - - this.submenuIndicator = oSubmenuIndicator; - - } - - - Dom.addClass(aNodes, "hassubmenu"); - - - if(oConfig.getProperty("disabled")) { - - oConfig.refireEvent("disabled"); - - } - - if(oConfig.getProperty("selected")) { - - oConfig.refireEvent("selected"); - - } - - } - - } - else { - - Dom.removeClass(aNodes, "hassubmenu"); - - if(oSubmenuIndicator) { - - oEl.removeChild(oSubmenuIndicator); - - } - - if(this._oSubmenu) { - - this._oSubmenu.destroy(); - - } - - } - - }, - - - /** - * @method configOnClick - * @description Event handler for when the "onclick" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configOnClick: function(p_sType, p_aArgs, p_oItem) { - - var oObject = p_aArgs[0]; - - /* - Remove any existing listeners if a "click" event handler has - already been specified. - */ - - if( - this._oOnclickAttributeValue && - (this._oOnclickAttributeValue != oObject) - ) { - - this.clickEvent.unsubscribe( - this._oOnclickAttributeValue.fn, - this._oOnclickAttributeValue.obj - ); - - this._oOnclickAttributeValue = null; - - } - - - if( - !this._oOnclickAttributeValue && - typeof oObject == "object" && - typeof oObject.fn == "function" - ) { - - this.clickEvent.subscribe( - oObject.fn, - (oObject.obj || this), - oObject.scope - ); - - this._oOnclickAttributeValue = oObject; - - } - - }, - - - /** - * @method configClassName - * @description Event handler for when the "classname" configuration - * property of a menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configClassName: function(p_sType, p_aArgs, p_oItem) { - - var sClassName = p_aArgs[0]; - - if(this._sClassName) { - - Dom.removeClass(this.element, this._sClassName); - - } - - Dom.addClass(this.element, sClassName); - this._sClassName = sClassName; - - }, - - - - // Public methods - - - /** - * @method initDefaultConfig - * @description Initializes an item's configurable properties. - */ - initDefaultConfig : function() { - - var oConfig = this.cfg, - DEFAULT_CONFIG = YAHOO.widget.MenuItem._DEFAULT_CONFIG; - - - // Define the configuration attributes - - /** - * @config text - * @description String specifying the text label for the menu item. - * When building a menu from existing HTML the value of this property - * will be interpreted from the menu's markup. - * @default "" - * @type String - */ - oConfig.addProperty( - DEFAULT_CONFIG.TEXT.key, - { - handler: this.configText, - value: DEFAULT_CONFIG.TEXT.value, - validator: DEFAULT_CONFIG.TEXT.validator, - suppressEvent: DEFAULT_CONFIG.TEXT.suppressEvent - } - ); - - - /** - * @config helptext - * @description String specifying additional instructional text to - * accompany the text for the nenu item. - * @default null - * @type String| - * HTMLElement - */ - oConfig.addProperty( - DEFAULT_CONFIG.HELP_TEXT.key, - { handler: this.configHelpText } - ); - - - /** - * @config url - * @description String specifying the URL for the menu item's anchor's - * "href" attribute. When building a menu from existing HTML the value - * of this property will be interpreted from the menu's markup. - * @default "#" - * @type String - */ - oConfig.addProperty( - DEFAULT_CONFIG.URL.key, - { - handler: this.configURL, - value: DEFAULT_CONFIG.URL.value, - suppressEvent: DEFAULT_CONFIG.URL.suppressEvent - } - ); - - - /** - * @config target - * @description String specifying the value for the "target" attribute - * of the menu item's anchor element. Specifying a target will - * require the user to click directly on the menu item's anchor node in - * order to cause the browser to navigate to the specified URL. - * When building a menu from existing HTML the value of this property - * will be interpreted from the menu's markup. - * @default null - * @type String - */ - oConfig.addProperty( - DEFAULT_CONFIG.TARGET.key, - { - handler: this.configTarget, - suppressEvent: DEFAULT_CONFIG.TARGET.suppressEvent - } - ); - - - /** - * @config emphasis - * @description Boolean indicating if the text of the menu item will be - * rendered with emphasis. When building a menu from existing HTML the - * value of this property will be interpreted from the menu's markup. - * @default false - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.EMPHASIS.key, - { - handler: this.configEmphasis, - value: DEFAULT_CONFIG.EMPHASIS.value, - validator: DEFAULT_CONFIG.EMPHASIS.validator, - suppressEvent: DEFAULT_CONFIG.EMPHASIS.suppressEvent - } - ); - - - /** - * @config strongemphasis - * @description Boolean indicating if the text of the menu item will be - * rendered with strong emphasis. When building a menu from existing - * HTML the value of this property will be interpreted from the - * menu's markup. - * @default false - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.STRONG_EMPHASIS.key, - { - handler: this.configStrongEmphasis, - value: DEFAULT_CONFIG.STRONG_EMPHASIS.value, - validator: DEFAULT_CONFIG.STRONG_EMPHASIS.validator, - suppressEvent: DEFAULT_CONFIG.STRONG_EMPHASIS.suppressEvent - } - ); - - - /** - * @config checked - * @description Boolean indicating if the menu item should be rendered - * with a checkmark. - * @default false - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.CHECKED.key, - { - handler: this.configChecked, - value: DEFAULT_CONFIG.CHECKED.value, - validator: DEFAULT_CONFIG.CHECKED.validator, - suppressEvent: DEFAULT_CONFIG.CHECKED.suppressEvent, - supercedes: DEFAULT_CONFIG.CHECKED.supercedes - } - ); - - - /** - * @config disabled - * @description Boolean indicating if the menu item should be disabled. - * (Disabled menu items are dimmed and will not respond to user input - * or fire events.) - * @default false - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.DISABLED.key, - { - handler: this.configDisabled, - value: DEFAULT_CONFIG.DISABLED.value, - validator: DEFAULT_CONFIG.DISABLED.validator, - suppressEvent: DEFAULT_CONFIG.DISABLED.suppressEvent - } - ); - - - /** - * @config selected - * @description Boolean indicating if the menu item should - * be highlighted. - * @default false - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.SELECTED.key, - { - handler: this.configSelected, - value: DEFAULT_CONFIG.SELECTED.value, - validator: DEFAULT_CONFIG.SELECTED.validator, - suppressEvent: DEFAULT_CONFIG.SELECTED.suppressEvent - } - ); - - - /** - * @config submenu - * @description Object specifying the submenu to be appended to the - * menu item. The value can be one of the following:
        • Object - * specifying a Menu instance.
        • Object literal specifying the - * menu to be created. Format: { id: [menu id], itemdata: - * [array of values for - * items] }.
        • String specifying the id attribute - * of the <div> element of the menu.
        • - * Object specifying the <div> element of the - * menu.
        - * @default null - * @type Menu|String|Object| - * HTMLElement - */ - oConfig.addProperty( - DEFAULT_CONFIG.SUBMENU.key, - { handler: this.configSubmenu } - ); - - - /** - * @config onclick - * @description Object literal representing the code to be executed when - * the button is clicked. Format:
        {
        - * fn: Function, // The handler to call when - * the event fires.
        obj: Object, // An - * object to pass back to the handler.
        scope: - * Object // The object to use for the scope of the handler. - *
        }
        - * @type Object - * @default null - */ - oConfig.addProperty( - DEFAULT_CONFIG.ONCLICK.key, - { handler: this.configOnClick } - ); - - - /** - * @config classname - * @description CSS class to be applied to the menu item's root - * <li> element. The specified class(es) are - * appended in addition to the default class as specified by the menu - * item's CSS_CLASS_NAME constant. - * @default null - * @type String - */ - oConfig.addProperty( - DEFAULT_CONFIG.CLASS_NAME.key, - { - handler: this.configClassName, - value: DEFAULT_CONFIG.CLASS_NAME.value, - validator: DEFAULT_CONFIG.CLASS_NAME.validator - } - ); - - }, - - - /** - * @method getNextEnabledSibling - * @description Finds the menu item's next enabled sibling. - * @return YAHOO.widget.MenuItem - */ - getNextEnabledSibling: function() { - - if(this.parent instanceof Menu) { - - var nGroupIndex = this.groupIndex; - - function getNextArrayItem(p_aArray, p_nStartIndex) { - - return p_aArray[p_nStartIndex] || - getNextArrayItem(p_aArray, (p_nStartIndex+1)); - - } - - - var aItemGroups = this.parent.getItemGroups(), - oNextItem; - - - if(this.index < (aItemGroups[nGroupIndex].length - 1)) { - - oNextItem = getNextArrayItem( - aItemGroups[nGroupIndex], - (this.index+1) - ); - - } - else { - - var nNextGroupIndex; - - if(nGroupIndex < (aItemGroups.length - 1)) { - - nNextGroupIndex = nGroupIndex + 1; - - } - else { - - nNextGroupIndex = 0; - - } - - var aNextGroup = getNextArrayItem(aItemGroups, nNextGroupIndex); - - // Retrieve the first menu item in the next group - - oNextItem = getNextArrayItem(aNextGroup, 0); - - } - - return ( - oNextItem.cfg.getProperty("disabled") || - oNextItem.element.style.display == "none" - ) ? - oNextItem.getNextEnabledSibling() : oNextItem; - - } - - }, - - - /** - * @method getPreviousEnabledSibling - * @description Finds the menu item's previous enabled sibling. - * @return {YAHOO.widget.MenuItem} - */ - getPreviousEnabledSibling: function() { - - if(this.parent instanceof Menu) { - - var nGroupIndex = this.groupIndex; - - function getPreviousArrayItem(p_aArray, p_nStartIndex) { - - return p_aArray[p_nStartIndex] || - getPreviousArrayItem(p_aArray, (p_nStartIndex-1)); - - } - - function getFirstItemIndex(p_aArray, p_nStartIndex) { - - return p_aArray[p_nStartIndex] ? - p_nStartIndex : - getFirstItemIndex(p_aArray, (p_nStartIndex+1)); - - } - - var aItemGroups = this.parent.getItemGroups(), - oPreviousItem; - - if( - this.index > getFirstItemIndex(aItemGroups[nGroupIndex], 0) - ) { - - oPreviousItem = - getPreviousArrayItem( - aItemGroups[nGroupIndex], - (this.index-1) - ); - - } - else { - - var nPreviousGroupIndex; - - if(nGroupIndex > getFirstItemIndex(aItemGroups, 0)) { - - nPreviousGroupIndex = nGroupIndex - 1; - - } - else { - - nPreviousGroupIndex = aItemGroups.length - 1; - - } - - var aPreviousGroup = - getPreviousArrayItem(aItemGroups, nPreviousGroupIndex); - - oPreviousItem = - getPreviousArrayItem( - aPreviousGroup, - (aPreviousGroup.length - 1) - ); - - } - - return ( - oPreviousItem.cfg.getProperty("disabled") || - oPreviousItem.element.style.display == "none" - ) ? - oPreviousItem.getPreviousEnabledSibling() : oPreviousItem; - - } - - }, - - - /** - * @method focus - * @description Causes the menu item to receive the focus and fires the - * focus event. - */ - focus: function() { - - var oParent = this.parent, - oAnchor = this._oAnchor, - oActiveItem = oParent.activeItem, - me = this; - - - function setFocus() { - - try { - - if ( - (me.browser == "ie" || me.browser == "ie7") && - !document.hasFocus() - ) { - - return; - - } - - oAnchor.focus(); - - } - catch(e) { - - } - - } - - - if( - !this.cfg.getProperty("disabled") && - oParent && - oParent.cfg.getProperty("visible") && - this.element.style.display != "none" - ) { - - if(oActiveItem) { - - oActiveItem.blur(); - - } - - - /* - Setting focus via a timer fixes a race condition in Firefox, IE - and Opera where the browser viewport jumps as it trys to - position and focus the menu. - */ - - window.setTimeout(setFocus, 0); - - this.focusEvent.fire(); - - } - - }, - - - /** - * @method blur - * @description Causes the menu item to lose focus and fires the - * blur event. - */ - blur: function() { - - var oParent = this.parent; - - if( - !this.cfg.getProperty("disabled") && - oParent && - Dom.getStyle(oParent.element, "visibility") == "visible" - ) { - - this._oAnchor.blur(); - - this.blurEvent.fire(); - - } - - }, - - - /** - * @method hasFocus - * @description Returns a boolean indicating whether or not the menu item - * has focus. - * @return {Boolean} - */ - hasFocus: function() { - - return (YAHOO.widget.MenuManager.getFocusedMenuItem() == this); - - }, - - - /** - * @method destroy - * @description Removes the menu item's <li> element - * from its parent <ul> element. - */ - destroy: function() { - - var oEl = this.element; - - if(oEl) { - - - // If the item has a submenu, destroy it first - - var oSubmenu = this.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.destroy(); - - } - - - // Remove CustomEvent listeners - - this.mouseOverEvent.unsubscribeAll(); - this.mouseOutEvent.unsubscribeAll(); - this.mouseDownEvent.unsubscribeAll(); - this.mouseUpEvent.unsubscribeAll(); - this.clickEvent.unsubscribeAll(); - this.keyPressEvent.unsubscribeAll(); - this.keyDownEvent.unsubscribeAll(); - this.keyUpEvent.unsubscribeAll(); - this.focusEvent.unsubscribeAll(); - this.blurEvent.unsubscribeAll(); - this.cfg.configChangedEvent.unsubscribeAll(); - - - // Remove the element from the parent node - - var oParentNode = oEl.parentNode; - - if(oParentNode) { - - oParentNode.removeChild(oEl); - - this.destroyEvent.fire(); - - } - - this.destroyEvent.unsubscribeAll(); - - } - - }, - - - /** - * @method toString - * @description Returns a string representing the menu item. - * @return {String} - */ - toString: function() { - - var sReturnVal = "MenuItem"; - - if(this.cfg && this.cfg.getProperty("text")) { - - sReturnVal += (": " + this.cfg.getProperty("text")); - - } - - return sReturnVal; - - } - -}; - -})(); - - - -/** -* Creates a list of options or commands which are made visible in response to -* an HTML element's "contextmenu" event ("mousedown" for Opera). -* -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the context menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for the -* context menu. -* @param {HTMLDivElement} p_oElement Object specifying the -* <div> element of the context menu. -* @param {HTMLSelectElement} p_oElement Object specifying -* the <select> element to be used as the data source for -* the context menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu. See configuration class documentation -* for more details. -* @class ContextMenu -* @constructor -* @extends YAHOO.widget.Menu -* @namespace YAHOO.widget -*/ -YAHOO.widget.ContextMenu = function(p_oElement, p_oConfig) { - - YAHOO.widget.ContextMenu.superclass.constructor.call( - this, - p_oElement, - p_oConfig - ); - -}; - - -/** -* Constant representing the name of the ContextMenu's events -* @property YAHOO.widget.ContextMenu._EVENT_TYPES -* @private -* @final -* @type Object -*/ -YAHOO.widget.ContextMenu._EVENT_TYPES = { - - "TRIGGER_CONTEXT_MENU": "triggerContextMenu", - - "CONTEXT_MENU": ( - (YAHOO.widget.Module.prototype.browser == "opera" ? - "mousedown" : "contextmenu") - ), - "CLICK": "click" - -}; - - -/** -* Constant representing the ContextMenu's configuration properties -* @property YAHOO.widget.ContextMenu._DEFAULT_CONFIG -* @private -* @final -* @type Object -*/ -YAHOO.widget.ContextMenu._DEFAULT_CONFIG = { - - "TRIGGER": { - key: "trigger" - } - -}; - - -YAHOO.lang.extend(YAHOO.widget.ContextMenu, YAHOO.widget.Menu, { - - - -// Private properties - - -/** -* @property _oTrigger -* @description Object reference to the current value of the "trigger" -* configuration property. -* @default null -* @private -* @type String|HTMLElement|Array -*/ -_oTrigger: null, - - -/** -* @property _bCancelled -* @description Boolean indicating if the display of the context menu should -* be cancelled. -* @default false -* @private -* @type Boolean -*/ -_bCancelled: false, - - - -// Public properties - - -/** -* @property contextEventTarget -* @description Object reference for the HTML element that was the target of the -* "contextmenu" DOM event ("mousedown" for Opera) that triggered the display of -* the context menu. -* @default null -* @type HTMLElement -*/ -contextEventTarget: null, - - - -// Events - - -/** -* @event triggerContextMenuEvent -* @description Custom Event wrapper for the "contextmenu" DOM event -* ("mousedown" for Opera) fired by the element(s) that trigger the display of -* the context menu. -*/ -triggerContextMenuEvent: null, - - - -/** -* @method init -* @description The ContextMenu class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references for -* pre-existing markup, and creates required markup if it is not already present. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the context menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for -* the context menu. -* @param {HTMLDivElement} p_oElement Object specifying the -* <div> element of the context menu. -* @param {HTMLSelectElement} p_oElement Object specifying -* the <select> element to be used as the data source for -* the context menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu. See configuration class documentation -* for more details. -*/ -init: function(p_oElement, p_oConfig) { - - if(!this.ITEM_TYPE) { - - this.ITEM_TYPE = YAHOO.widget.ContextMenuItem; - - } - - - // Call the init of the superclass (YAHOO.widget.Menu) - - YAHOO.widget.ContextMenu.superclass.init.call(this, p_oElement); - - - this.beforeInitEvent.fire(YAHOO.widget.ContextMenu); - - - if(p_oConfig) { - - this.cfg.applyConfig(p_oConfig, true); - - } - - - this.initEvent.fire(YAHOO.widget.ContextMenu); - -}, - - -/** -* @method initEvents -* @description Initializes the custom events for the context menu. -*/ -initEvents: function() { - - YAHOO.widget.ContextMenu.superclass.initEvents.call(this); - - // Create custom events - - this.triggerContextMenuEvent = - - new YAHOO.util.CustomEvent( - YAHOO.widget.ContextMenu._EVENT_TYPES.TRIGGER_CONTEXT_MENU, - this - ); - -}, - - -/** -* @method cancel -* @description Cancels the display of the context menu. -*/ -cancel: function() { - - this._bCancelled = true; - -}, - - - -// Private methods - - -/** -* @method _removeEventHandlers -* @description Removes all of the DOM event handlers from the HTML element(s) -* whose "context menu" event ("click" for Opera) trigger the display of -* the context menu. -* @private -*/ -_removeEventHandlers: function() { - - var Event = YAHOO.util.Event, - oTrigger = this._oTrigger; - - - // Remove the event handlers from the trigger(s) - - if (oTrigger) { - - Event.removeListener( - oTrigger, - YAHOO.widget.ContextMenu._EVENT_TYPES.CONTEXT_MENU, - this._onTriggerContextMenu - ); - - if(this.browser == "opera") { - - Event.removeListener( - oTrigger, - YAHOO.widget.ContextMenu._EVENT_TYPES.CLICK, - this._onTriggerClick - ); - - } - - } - -}, - - - -// Private event handlers - - -/** -* @method _onTriggerClick -* @description "click" event handler for the HTML element(s) identified as the -* "trigger" for the context menu. Used to cancel default behaviors in Opera. -* @private -* @param {Event} p_oEvent Object representing the DOM event object passed back -* by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context -* menu that is handling the event. -*/ -_onTriggerClick: function(p_oEvent, p_oMenu) { - - if(p_oEvent.ctrlKey) { - - YAHOO.util.Event.stopEvent(p_oEvent); - - } - -}, - - -/** -* @method _onTriggerContextMenu -* @description "contextmenu" event handler ("mousedown" for Opera) for the HTML -* element(s) that trigger the display of the context menu. -* @private -* @param {Event} p_oEvent Object representing the DOM event object passed back -* by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context -* menu that is handling the event. -*/ -_onTriggerContextMenu: function(p_oEvent, p_oMenu) { - - var Event = YAHOO.util.Event; - - if(p_oEvent.type == "mousedown" && !p_oEvent.ctrlKey) { - - return; - - } - - - /* - Prevent the browser's default context menu from appearing and - stop the propagation of the "contextmenu" event so that - other ContextMenu instances are not displayed. - */ - - Event.stopEvent(p_oEvent); - - - // Hide any other ContextMenu instances that might be visible - - YAHOO.widget.MenuManager.hideVisible(); - - - this.contextEventTarget = Event.getTarget(p_oEvent); - - this.triggerContextMenuEvent.fire(p_oEvent); - - - if(!this._bCancelled) { - - // Position and display the context menu - - this.cfg.setProperty("xy", Event.getXY(p_oEvent)); - - this.show(); - - } - - this._bCancelled = false; - -}, - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the context menu. -* @return {String} -*/ -toString: function() { - - var sReturnVal = "ContextMenu", - sId = this.id; - - if(sId) { - - sReturnVal += (" " + sId); - - } - - return sReturnVal; - -}, - - -/** -* @method initDefaultConfig -* @description Initializes the class's configurable properties which can be -* changed using the context menu's Config object ("cfg"). -*/ -initDefaultConfig: function() { - - YAHOO.widget.ContextMenu.superclass.initDefaultConfig.call(this); - - /** - * @config trigger - * @description The HTML element(s) whose "contextmenu" event ("mousedown" - * for Opera) trigger the display of the context menu. Can be a string - * representing the id attribute of the HTML element, an object reference - * for the HTML element, or an array of strings or HTML element references. - * @default null - * @type String|HTMLElement|Array - */ - this.cfg.addProperty( - YAHOO.widget.ContextMenu._DEFAULT_CONFIG.TRIGGER.key, - { handler: this.configTrigger } - ); - -}, - - -/** -* @method destroy -* @description Removes the context menu's <div> element -* (and accompanying child nodes) from the document. -*/ -destroy: function() { - - // Remove the DOM event handlers from the current trigger(s) - - this._removeEventHandlers(); - - - // Continue with the superclass implementation of this method - - YAHOO.widget.ContextMenu.superclass.destroy.call(this); - -}, - - - -// Public event handlers for configuration properties - - -/** -* @method configTrigger -* @description Event handler for when the value of the "trigger" configuration -* property changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context -* menu that fired the event. -*/ -configTrigger: function(p_sType, p_aArgs, p_oMenu) { - - var Event = YAHOO.util.Event, - oTrigger = p_aArgs[0]; - - if(oTrigger) { - - /* - If there is a current "trigger" - remove the event handlers - from that element(s) before assigning new ones - */ - - if(this._oTrigger) { - - this._removeEventHandlers(); - - } - - this._oTrigger = oTrigger; - - - /* - Listen for the "mousedown" event in Opera b/c it does not - support the "contextmenu" event - */ - - Event.on( - oTrigger, - YAHOO.widget.ContextMenu._EVENT_TYPES.CONTEXT_MENU, - this._onTriggerContextMenu, - this, - true - ); - - - /* - Assign a "click" event handler to the trigger element(s) for - Opera to prevent default browser behaviors. - */ - - if(this.browser == "opera") { - - Event.on( - oTrigger, - YAHOO.widget.ContextMenu._EVENT_TYPES.CLICK, - this._onTriggerClick, - this, - true - ); - - } - - } - else { - - this._removeEventHandlers(); - - } - -} - -}); // END YAHOO.lang.extend - - - -/** -* Creates an item for a context menu. -* -* @param {String} p_oObject String specifying the text of the context menu item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the context menu item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the context -* menu item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the context menu item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu item. See configuration class -* documentation for more details. -* @class ContextMenuItem -* @constructor -* @extends YAHOO.widget.MenuItem -*/ -YAHOO.widget.ContextMenuItem = function(p_oObject, p_oConfig) { - - YAHOO.widget.ContextMenuItem.superclass.constructor.call( - this, - p_oObject, - p_oConfig - ); - -}; - -YAHOO.lang.extend(YAHOO.widget.ContextMenuItem, YAHOO.widget.MenuItem, { - - -/** -* @method init -* @description The ContextMenuItem class's initialization method. This method -* is automatically called by the constructor, and sets up all DOM references -* for pre-existing markup, and creates required markup if it is not -* already present. -* @param {String} p_oObject String specifying the text of the context menu item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the context menu item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the context -* menu item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the context menu item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu item. See configuration class -* documentation for more details. -*/ -init: function(p_oObject, p_oConfig) { - - if(!this.SUBMENU_TYPE) { - - this.SUBMENU_TYPE = YAHOO.widget.ContextMenu; - - } - - - /* - Call the init of the superclass (YAHOO.widget.MenuItem) - Note: We don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.ContextMenuItem.superclass.init.call(this, p_oObject); - - var oConfig = this.cfg; - - if(p_oConfig) { - - oConfig.applyConfig(p_oConfig, true); - - } - - oConfig.fireQueue(); - -}, - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the context menu item. -* @return {String} -*/ -toString: function() { - - var sReturnVal = "ContextMenuItem"; - - if(this.cfg && this.cfg.getProperty("text")) { - - sReturnVal += (": " + this.cfg.getProperty("text")); - - } - - return sReturnVal; - -} - -}); // END YAHOO.lang.extend - - - -/** -* Horizontal collection of items, each of which can contain a submenu. -* -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu bar. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for the -* menu bar. -* @param {HTMLDivElement} p_oElement Object specifying -* the <div> element of the menu bar. -* @param {HTMLSelectElement} p_oElement Object -* specifying the <select> element to be used as the data -* source for the menu bar. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar. See configuration class documentation for -* more details. -* @class Menubar -* @constructor -* @extends YAHOO.widget.Menu -* @namespace YAHOO.widget -*/ -YAHOO.widget.MenuBar = function(p_oElement, p_oConfig) { - - YAHOO.widget.MenuBar.superclass.constructor.call( - this, - p_oElement, - p_oConfig - ); - -}; - - -/** -* Constant representing the MenuBar's configuration properties -* @property YAHOO.widget.MenuBar._DEFAULT_CONFIG -* @private -* @final -* @type Object -*/ -YAHOO.widget.MenuBar._DEFAULT_CONFIG = { - - "POSITION": { - key: "position", - value: "static", - validator: YAHOO.widget.Menu._checkPosition, - supercedes: ["visible"] - }, - - "SUBMENU_ALIGNMENT": { - key: "submenualignment", - value: ["tl","bl"] - }, - - "AUTO_SUBMENU_DISPLAY": { - key: "autosubmenudisplay", - value: false, - validator: YAHOO.lang.isBoolean - } - -}; - - - -YAHOO.lang.extend(YAHOO.widget.MenuBar, YAHOO.widget.Menu, { - -/** -* @method init -* @description The MenuBar class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references for -* pre-existing markup, and creates required markup if it is not already present. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu bar. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for the -* menu bar. -* @param {HTMLDivElement} p_oElement Object specifying -* the <div> element of the menu bar. -* @param {HTMLSelectElement} p_oElement Object -* specifying the <select> element to be used as the data -* source for the menu bar. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar. See configuration class documentation for -* more details. -*/ -init: function(p_oElement, p_oConfig) { - - if(!this.ITEM_TYPE) { - - this.ITEM_TYPE = YAHOO.widget.MenuBarItem; - - } - - - // Call the init of the superclass (YAHOO.widget.Menu) - - YAHOO.widget.MenuBar.superclass.init.call(this, p_oElement); - - - this.beforeInitEvent.fire(YAHOO.widget.MenuBar); - - - if(p_oConfig) { - - this.cfg.applyConfig(p_oConfig, true); - - } - - this.initEvent.fire(YAHOO.widget.MenuBar); - -}, - - - -// Constants - - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the menu -* bar's <div> element. -* @default "yuimenubar" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuimenubar", - - - -// Protected event handlers - - -/** -* @method _onKeyDown -* @description "keydown" Custom Event handler for the menu bar. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu bar -* that fired the event. -*/ -_onKeyDown: function(p_sType, p_aArgs, p_oMenuBar) { - - var Event = YAHOO.util.Event, - oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oSubmenu; - - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg; - - switch(oEvent.keyCode) { - - case 37: // Left arrow - case 39: // Right arrow - - if( - oItem == this.activeItem && - !oItemCfg.getProperty("selected") - ) { - - oItemCfg.setProperty("selected", true); - - } - else { - - var oNextItem = (oEvent.keyCode == 37) ? - oItem.getPreviousEnabledSibling() : - oItem.getNextEnabledSibling(); - - if(oNextItem) { - - this.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - - - if(this.cfg.getProperty("autosubmenudisplay")) { - - oSubmenu = oNextItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.show(); - - } - - } - - oNextItem.focus(); - - } - - } - - Event.preventDefault(oEvent); - - break; - - case 40: // Down arrow - - if(this.activeItem != oItem) { - - this.clearActiveItem(); - - oItemCfg.setProperty("selected", true); - oItem.focus(); - - } - - oSubmenu = oItemCfg.getProperty("submenu"); - - if(oSubmenu) { - - if(oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.setInitialSelection(); - oSubmenu.setInitialFocus(); - - } - else { - - oSubmenu.show(); - - } - - } - - Event.preventDefault(oEvent); - - break; - - } - - } - - - if(oEvent.keyCode == 27 && this.activeItem) { // Esc key - - oSubmenu = this.activeItem.cfg.getProperty("submenu"); - - if(oSubmenu && oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - this.activeItem.focus(); - - } - else { - - this.activeItem.cfg.setProperty("selected", false); - this.activeItem.blur(); - - } - - Event.preventDefault(oEvent); - - } - -}, - - -/** -* @method _onClick -* @description "click" event handler for the menu bar. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu bar -* that fired the event. -*/ -_onClick: function(p_sType, p_aArgs, p_oMenuBar) { - - YAHOO.widget.MenuBar.superclass._onClick.call( - this, - p_sType, - p_aArgs, - p_oMenuBar - ); - - - var oItem = p_aArgs[1]; - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var Event = YAHOO.util.Event, - Dom = YAHOO.util.Dom, - - oEvent = p_aArgs[0], - oTarget = Event.getTarget(oEvent), - - oActiveItem = this.activeItem, - oConfig = this.cfg; - - - // Hide any other submenus that might be visible - - if(oActiveItem && oActiveItem != oItem) { - - this.clearActiveItem(); - - } - - - oItem.cfg.setProperty("selected", true); - - - // Show the submenu for the item - - var oSubmenu = oItem.cfg.getProperty("submenu"); - - - if(oSubmenu && oTarget != oItem.submenuIndicator) { - - if(oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - - } - else { - - oSubmenu.show(); - - } - - } - - } - -}, - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the menu bar. -* @return {String} -*/ -toString: function() { - - var sReturnVal = "MenuBar", - sId = this.id; - - if(sId) { - - sReturnVal += (" " + sId); - - } - - return sReturnVal; - -}, - - -/** -* @description Initializes the class's configurable properties which can be -* changed using the menu bar's Config object ("cfg"). -* @method initDefaultConfig -*/ -initDefaultConfig: function() { - - YAHOO.widget.MenuBar.superclass.initDefaultConfig.call(this); - - var oConfig = this.cfg, - DEFAULT_CONFIG = YAHOO.widget.MenuBar._DEFAULT_CONFIG; - - // Add configuration properties - - - /* - Set the default value for the "position" configuration property - to "static" by re-adding the property. - */ - - - /** - * @config position - * @description String indicating how a menu bar should be positioned on the - * screen. Possible values are "static" and "dynamic." Static menu bars - * are visible by default and reside in the normal flow of the document - * (CSS position: static). Dynamic menu bars are hidden by default, reside - * out of the normal flow of the document (CSS position: absolute), and can - * overlay other elements on the screen. - * @default static - * @type String - */ - oConfig.addProperty( - DEFAULT_CONFIG.POSITION.key, - { - handler: this.configPosition, - value: DEFAULT_CONFIG.POSITION.value, - validator: DEFAULT_CONFIG.POSITION.validator, - supercedes: DEFAULT_CONFIG.POSITION.supercedes - } - ); - - - /* - Set the default value for the "submenualignment" configuration property - to ["tl","bl"] by re-adding the property. - */ - - /** - * @config submenualignment - * @description Array defining how submenus should be aligned to their - * parent menu bar item. The format is: [itemCorner, submenuCorner]. - * @default ["tl","bl"] - * @type Array - */ - oConfig.addProperty( - DEFAULT_CONFIG.SUBMENU_ALIGNMENT.key, - { - value: DEFAULT_CONFIG.SUBMENU_ALIGNMENT.value - } - ); - - - /* - Change the default value for the "autosubmenudisplay" configuration - property to "false" by re-adding the property. - */ - - /** - * @config autosubmenudisplay - * @description Boolean indicating if submenus are automatically made - * visible when the user mouses over the menu bar's items. - * @default false - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.key, - { - value: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.value, - validator: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.validator - } - ); - -} - -}); // END YAHOO.lang.extend - - - -/** -* Creates an item for a menu bar. -* -* @param {String} p_oObject String specifying the text of the menu bar item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the menu bar item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the menu bar item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the menu bar item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar item. See configuration class documentation -* for more details. -* @class MenuBarItem -* @constructor -* @extends YAHOO.widget.MenuItem -*/ -YAHOO.widget.MenuBarItem = function(p_oObject, p_oConfig) { - - YAHOO.widget.MenuBarItem.superclass.constructor.call( - this, - p_oObject, - p_oConfig - ); - -}; - -YAHOO.lang.extend(YAHOO.widget.MenuBarItem, YAHOO.widget.MenuItem, { - - -/** -* @method init -* @description The MenuBarItem class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references for -* pre-existing markup, and creates required markup if it is not already present. -* @param {String} p_oObject String specifying the text of the menu bar item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the menu bar item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the menu bar item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the menu bar item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar item. See configuration class documentation -* for more details. -*/ -init: function(p_oObject, p_oConfig) { - - if(!this.SUBMENU_TYPE) { - - this.SUBMENU_TYPE = YAHOO.widget.Menu; - - } - - - /* - Call the init of the superclass (YAHOO.widget.MenuItem) - Note: We don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.MenuBarItem.superclass.init.call(this, p_oObject); - - - var oConfig = this.cfg; - - if(p_oConfig) { - - oConfig.applyConfig(p_oConfig, true); - - } - - oConfig.fireQueue(); - -}, - - - -// Constants - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the -* <li> element of the menu bar item. -* @default "yuimenubaritem" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuimenubaritem", - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the menu bar item. -* @return {String} -*/ -toString: function() { - - var sReturnVal = "MenuBarItem"; - - if(this.cfg && this.cfg.getProperty("text")) { - - sReturnVal += (": " + this.cfg.getProperty("text")); - - } - - return sReturnVal; - -} - -}); // END YAHOO.lang.extend -YAHOO.register("menu", YAHOO.widget.Menu, {version: "2.2.2", build: "204"}); diff --git a/www/extras/yui/build/menu/menu-min.js b/www/extras/yui/build/menu/menu-min.js deleted file mode 100644 index b189aba34..000000000 --- a/www/extras/yui/build/menu/menu-min.js +++ /dev/null @@ -1,280 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ - -(function(){var Dom=YAHOO.util.Dom,Event=YAHOO.util.Event;YAHOO.widget.MenuManager=function(){var m_bInitializedEventHandlers=false,m_oMenus={},m_oItems={},m_oVisibleMenus={},m_oEventTypes={"click":"clickEvent","mousedown":"mouseDownEvent","mouseup":"mouseUpEvent","mouseover":"mouseOverEvent","mouseout":"mouseOutEvent","keydown":"keyDownEvent","keyup":"keyUpEvent","keypress":"keyPressEvent"},m_oFocusedMenuItem=null;function addItem(p_oItem){var sId=p_oItem.id;if(p_oItem&&m_oItems[sId]!=p_oItem){m_oItems[sId]=p_oItem;p_oItem.destroyEvent.subscribe(onItemDestroy);}} -function removeItem(p_oItem){var sId=p_oItem.id;if(sId&&m_oItems[sId]){delete m_oItems[sId];}} -function getMenuRootElement(p_oElement){var oParentNode;if(p_oElement&&p_oElement.tagName){switch(p_oElement.tagName.toUpperCase()){case"DIV":oParentNode=p_oElement.parentNode;if((Dom.hasClass(p_oElement,"hd")||Dom.hasClass(p_oElement,"bd")||Dom.hasClass(p_oElement,"ft"))&&oParentNode&&oParentNode.tagName&&oParentNode.tagName.toUpperCase()=="DIV"){return oParentNode;} -else{return p_oElement;} -break;case"LI":return p_oElement;default:oParentNode=p_oElement.parentNode;if(oParentNode){return getMenuRootElement(oParentNode);} -break;}}} -function onDOMEvent(p_oEvent){var oTarget=Event.getTarget(p_oEvent),oElement=getMenuRootElement(oTarget),oMenuItem,oMenu;if(oElement){var sTagName=oElement.tagName.toUpperCase();if(sTagName=="LI"){var sId=oElement.id;if(sId&&m_oItems[sId]){oMenuItem=m_oItems[sId];oMenu=oMenuItem.parent;}} -else if(sTagName=="DIV"){if(oElement.id){oMenu=m_oMenus[oElement.id];}}} -if(oMenu){var sCustomEventType=m_oEventTypes[p_oEvent.type];if(oMenuItem&&!oMenuItem.cfg.getProperty("disabled")){oMenuItem[sCustomEventType].fire(p_oEvent);if(p_oEvent.type=="keyup"||p_oEvent.type=="mousedown"){if(m_oFocusedMenuItem!=oMenuItem){if(m_oFocusedMenuItem){m_oFocusedMenuItem.blurEvent.fire();} -oMenuItem.focusEvent.fire();}}} -oMenu[sCustomEventType].fire(p_oEvent,oMenuItem);} -else if(p_oEvent.type=="mousedown"){if(m_oFocusedMenuItem){m_oFocusedMenuItem.blurEvent.fire();m_oFocusedMenuItem=null;} -for(var i in m_oMenus){if(YAHOO.lang.hasOwnProperty(m_oMenus,i)){oMenu=m_oMenus[i];if(oMenu.cfg.getProperty("clicktohide")&&oMenu.cfg.getProperty("position")=="dynamic"){oMenu.hide();} -else{oMenu.clearActiveItem(true);}}}} -else if(p_oEvent.type=="keyup"){if(m_oFocusedMenuItem){m_oFocusedMenuItem.blurEvent.fire();m_oFocusedMenuItem=null;}}} -function onMenuDestroy(p_sType,p_aArgs){if(m_oMenus[this.id]){delete m_oMenus[this.id];}} -function onMenuFocus(p_sType,p_aArgs){var oItem=p_aArgs[0];if(oItem){m_oFocusedMenuItem=oItem;}} -function onMenuBlur(p_sType,p_aArgs){m_oFocusedMenuItem=null;} -function onItemDestroy(p_sType,p_aArgs){var sId=this.id;if(sId&&m_oItems[sId]){delete m_oItems[sId];}} -function onMenuVisibleConfigChange(p_sType,p_aArgs){var bVisible=p_aArgs[0];if(bVisible){m_oVisibleMenus[this.id]=this;} -else if(m_oVisibleMenus[this.id]){delete m_oVisibleMenus[this.id];}} -function onItemAdded(p_sType,p_aArgs){addItem(p_aArgs[0]);} -function onItemRemoved(p_sType,p_aArgs){removeItem(p_aArgs[0]);} -return{addMenu:function(p_oMenu){if(p_oMenu&&p_oMenu.id&&!m_oMenus[p_oMenu.id]){m_oMenus[p_oMenu.id]=p_oMenu;if(!m_bInitializedEventHandlers){var oDoc=document;Event.on(oDoc,"mouseover",onDOMEvent,this,true);Event.on(oDoc,"mouseout",onDOMEvent,this,true);Event.on(oDoc,"mousedown",onDOMEvent,this,true);Event.on(oDoc,"mouseup",onDOMEvent,this,true);Event.on(oDoc,"click",onDOMEvent,this,true);Event.on(oDoc,"keydown",onDOMEvent,this,true);Event.on(oDoc,"keyup",onDOMEvent,this,true);Event.on(oDoc,"keypress",onDOMEvent,this,true);m_bInitializedEventHandlers=true;} -p_oMenu.destroyEvent.subscribe(onMenuDestroy);p_oMenu.cfg.subscribeToConfigEvent("visible",onMenuVisibleConfigChange);p_oMenu.itemAddedEvent.subscribe(onItemAdded);p_oMenu.itemRemovedEvent.subscribe(onItemRemoved);p_oMenu.focusEvent.subscribe(onMenuFocus);p_oMenu.blurEvent.subscribe(onMenuBlur);}},removeMenu:function(p_oMenu){if(p_oMenu&&m_oMenus[p_oMenu.id]){delete m_oMenus[p_oMenu.id];}},hideVisible:function(){var oMenu;for(var i in m_oVisibleMenus){if(YAHOO.lang.hasOwnProperty(m_oVisibleMenus,i)){oMenu=m_oVisibleMenus[i];if(oMenu.cfg.getProperty("position")=="dynamic"){oMenu.hide();}}}},getMenus:function(){return m_oMenus;},getMenu:function(p_sId){if(m_oMenus[p_sId]){return m_oMenus[p_sId];}},getFocusedMenuItem:function(){return m_oFocusedMenuItem;},getFocusedMenu:function(){if(m_oFocusedMenuItem){return(m_oFocusedMenuItem.parent.getRoot());}},toString:function(){return("MenuManager");}};}();})();(function(){var Dom=YAHOO.util.Dom,Event=YAHOO.util.Event,CustomEvent=YAHOO.util.CustomEvent,Lang=YAHOO.lang;YAHOO.widget.Menu=function(p_oElement,p_oConfig){if(p_oConfig){this.parent=p_oConfig.parent;this.lazyLoad=p_oConfig.lazyLoad||p_oConfig.lazyload;this.itemData=p_oConfig.itemData||p_oConfig.itemdata;} -YAHOO.widget.Menu.superclass.constructor.call(this,p_oElement,p_oConfig);};YAHOO.widget.Menu._EVENT_TYPES={"MOUSE_OVER":"mouseover","MOUSE_OUT":"mouseout","MOUSE_DOWN":"mousedown","MOUSE_UP":"mouseup","CLICK":"click","KEY_PRESS":"keypress","KEY_DOWN":"keydown","KEY_UP":"keyup","FOCUS":"focus","BLUR":"blur","ITEM_ADDED":"itemAdded","ITEM_REMOVED":"itemRemoved"};YAHOO.widget.Menu._checkPosition=function(p_sPosition){if(typeof p_sPosition=="string"){var sPosition=p_sPosition.toLowerCase();return("dynamic,static".indexOf(sPosition)!=-1);}};YAHOO.widget.Menu._DEFAULT_CONFIG={"VISIBLE":{key:"visible",value:false,validator:Lang.isBoolean},"CONSTRAIN_TO_VIEWPORT":{key:"constraintoviewport",value:true,validator:Lang.isBoolean,supercedes:["iframe","x","y","xy"]},"POSITION":{key:"position",value:"dynamic",validator:YAHOO.widget.Menu._checkPosition,supercedes:["visible"]},"SUBMENU_ALIGNMENT":{key:"submenualignment",value:["tl","tr"]},"AUTO_SUBMENU_DISPLAY":{key:"autosubmenudisplay",value:true,validator:Lang.isBoolean},"SHOW_DELAY":{key:"showdelay",value:250,validator:Lang.isNumber},"HIDE_DELAY":{key:"hidedelay",value:0,validator:Lang.isNumber,suppressEvent:true},"SUBMENU_HIDE_DELAY":{key:"submenuhidedelay",value:250,validator:Lang.isNumber},"CLICK_TO_HIDE":{key:"clicktohide",value:true,validator:Lang.isBoolean},"CONTAINER":{key:"container"},"MAX_HEIGHT":{key:"maxheight",value:0,validator:Lang.isNumber},"CLASS_NAME":{key:"classname",value:null,validator:Lang.isString}};YAHOO.lang.extend(YAHOO.widget.Menu,YAHOO.widget.Overlay,{CSS_CLASS_NAME:"yuimenu",ITEM_TYPE:null,GROUP_TITLE_TAG_NAME:"h6",_nHideDelayId:null,_nShowDelayId:null,_nSubmenuHideDelayId:null,_nBodyScrollId:null,_bHideDelayEventHandlersAssigned:false,_bHandledMouseOverEvent:false,_bHandledMouseOutEvent:false,_aGroupTitleElements:null,_aItemGroups:null,_aListElements:null,_nCurrentMouseX:0,_nMaxHeight:-1,_bStopMouseEventHandlers:false,_sClassName:null,lazyLoad:false,itemData:null,activeItem:null,parent:null,srcElement:null,mouseOverEvent:null,mouseOutEvent:null,mouseDownEvent:null,mouseUpEvent:null,clickEvent:null,keyPressEvent:null,keyDownEvent:null,keyUpEvent:null,itemAddedEvent:null,itemRemovedEvent:null,init:function(p_oElement,p_oConfig){this._aItemGroups=[];this._aListElements=[];this._aGroupTitleElements=[];if(!this.ITEM_TYPE){this.ITEM_TYPE=YAHOO.widget.MenuItem;} -var oElement;if(typeof p_oElement=="string"){oElement=document.getElementById(p_oElement);} -else if(p_oElement.tagName){oElement=p_oElement;} -if(oElement&&oElement.tagName){switch(oElement.tagName.toUpperCase()){case"DIV":this.srcElement=oElement;if(!oElement.id){oElement.setAttribute("id",Dom.generateId());} -YAHOO.widget.Menu.superclass.init.call(this,oElement);this.beforeInitEvent.fire(YAHOO.widget.Menu);break;case"SELECT":this.srcElement=oElement;YAHOO.widget.Menu.superclass.init.call(this,Dom.generateId());this.beforeInitEvent.fire(YAHOO.widget.Menu);break;}} -else{YAHOO.widget.Menu.superclass.init.call(this,p_oElement);this.beforeInitEvent.fire(YAHOO.widget.Menu);} -if(this.element){var oEl=this.element;Dom.addClass(oEl,this.CSS_CLASS_NAME);this.initEvent.subscribe(this._onInit,this,true);this.beforeRenderEvent.subscribe(this._onBeforeRender,this,true);this.renderEvent.subscribe(this._onRender);this.beforeShowEvent.subscribe(this._onBeforeShow,this,true);this.showEvent.subscribe(this._onShow,this,true);this.beforeHideEvent.subscribe(this._onBeforeHide,this,true);this.hideEvent.subscribe(this._onHide,this,true);this.mouseOverEvent.subscribe(this._onMouseOver,this,true);this.mouseOutEvent.subscribe(this._onMouseOut,this,true);this.clickEvent.subscribe(this._onClick,this,true);this.keyDownEvent.subscribe(this._onKeyDown,this,true);this.keyPressEvent.subscribe(this._onKeyPress,this,true);YAHOO.widget.Module.textResizeEvent.subscribe(this._onTextResize,this,true);if(p_oConfig){this.cfg.applyConfig(p_oConfig,true);} -YAHOO.widget.MenuManager.addMenu(this);this.initEvent.fire(YAHOO.widget.Menu);}},_initSubTree:function(){var oNode;if(this.srcElement.tagName.toUpperCase()=="DIV"){oNode=this.body.firstChild;var nGroup=0,sGroupTitleTagName=this.GROUP_TITLE_TAG_NAME.toUpperCase();do{if(oNode&&oNode.tagName){switch(oNode.tagName.toUpperCase()){case sGroupTitleTagName:this._aGroupTitleElements[nGroup]=oNode;break;case"UL":this._aListElements[nGroup]=oNode;this._aItemGroups[nGroup]=[];nGroup++;break;}}} -while((oNode=oNode.nextSibling));if(this._aListElements[0]){Dom.addClass(this._aListElements[0],"first-of-type");}} -oNode=null;if(this.srcElement.tagName){var sSrcElementTagName=this.srcElement.tagName.toUpperCase();switch(sSrcElementTagName){case"DIV":if(this._aListElements.length>0){var i=this._aListElements.length-1;do{oNode=this._aListElements[i].firstChild;do{if(oNode&&oNode.tagName&&oNode.tagName.toUpperCase()=="LI"){this.addItem(new this.ITEM_TYPE(oNode,{parent:this}),i);}} -while((oNode=oNode.nextSibling));} -while(i--);} -break;case"SELECT":oNode=this.srcElement.firstChild;do{if(oNode&&oNode.tagName){switch(oNode.tagName.toUpperCase()){case"OPTGROUP":case"OPTION":this.addItem(new this.ITEM_TYPE(oNode,{parent:this}));break;}}} -while((oNode=oNode.nextSibling));break;}}},_getFirstEnabledItem:function(){var aItems=this.getItems(),nItems=aItems.length,oItem;for(var i=0;i=aGroup.length);if(aGroup[p_nItemIndex]){aGroup.splice(p_nItemIndex,0,oItem);} -else{aGroup[p_nItemIndex]=oItem;} -oGroupItem=aGroup[p_nItemIndex];if(oGroupItem){if(bAppend&&(!oGroupItem.element.parentNode||oGroupItem.element.parentNode.nodeType==11)){this._aListElements[nGroupIndex].appendChild(oGroupItem.element);} -else{function getNextItemSibling(p_aArray,p_nStartIndex){return(p_aArray[p_nStartIndex]||getNextItemSibling(p_aArray,(p_nStartIndex+1)));} -var oNextItemSibling=getNextItemSibling(aGroup,(p_nItemIndex+1));if(oNextItemSibling&&(!oGroupItem.element.parentNode||oGroupItem.element.parentNode.nodeType==11)){this._aListElements[nGroupIndex].insertBefore(oGroupItem.element,oNextItemSibling.element);}} -oGroupItem.parent=this;this._subscribeToItemEvents(oGroupItem);this._configureSubmenu(oGroupItem);this._updateItemProperties(nGroupIndex);this.itemAddedEvent.fire(oGroupItem);return oGroupItem;}} -else{var nItemIndex=aGroup.length;aGroup[nItemIndex]=oItem;oGroupItem=aGroup[nItemIndex];if(oGroupItem){if(!Dom.isAncestor(this._aListElements[nGroupIndex],oGroupItem.element)){this._aListElements[nGroupIndex].appendChild(oGroupItem.element);} -oGroupItem.element.setAttribute("groupindex",nGroupIndex);oGroupItem.element.setAttribute("index",nItemIndex);oGroupItem.parent=this;oGroupItem.index=nItemIndex;oGroupItem.groupIndex=nGroupIndex;this._subscribeToItemEvents(oGroupItem);this._configureSubmenu(oGroupItem);if(nItemIndex===0){Dom.addClass(oGroupItem.element,"first-of-type");} -this.itemAddedEvent.fire(oGroupItem);return oGroupItem;}}}},_removeItemFromGroupByIndex:function(p_nGroupIndex,p_nItemIndex){var nGroupIndex=typeof p_nGroupIndex=="number"?p_nGroupIndex:0,aGroup=this._getItemGroup(nGroupIndex);if(aGroup){var aArray=aGroup.splice(p_nItemIndex,1),oItem=aArray[0];if(oItem){this._updateItemProperties(nGroupIndex);if(aGroup.length===0){var oUL=this._aListElements[nGroupIndex];if(this.body&&oUL){this.body.removeChild(oUL);} -this._aItemGroups.splice(nGroupIndex,1);this._aListElements.splice(nGroupIndex,1);oUL=this._aListElements[0];if(oUL){Dom.addClass(oUL,"first-of-type");}} -this.itemRemovedEvent.fire(oItem);return oItem;}}},_removeItemFromGroupByValue:function(p_nGroupIndex,p_oItem){var aGroup=this._getItemGroup(p_nGroupIndex);if(aGroup){var nItems=aGroup.length,nItemIndex=-1;if(nItems>0){var i=nItems-1;do{if(aGroup[i]==p_oItem){nItemIndex=i;break;}} -while(i--);if(nItemIndex>-1){return this._removeItemFromGroupByIndex(p_nGroupIndex,nItemIndex);}}}},_updateItemProperties:function(p_nGroupIndex){var aGroup=this._getItemGroup(p_nGroupIndex),nItems=aGroup.length;if(nItems>0){var i=nItems-1,oItem,oLI;do{oItem=aGroup[i];if(oItem){oLI=oItem.element;oItem.index=i;oItem.groupIndex=p_nGroupIndex;oLI.setAttribute("groupindex",p_nGroupIndex);oLI.setAttribute("index",i);Dom.removeClass(oLI,"first-of-type");}} -while(i--);if(oLI){Dom.addClass(oLI,"first-of-type");}}},_createItemGroup:function(p_nIndex){if(!this._aItemGroups[p_nIndex]){this._aItemGroups[p_nIndex]=[];var oUL=document.createElement("ul");this._aListElements[p_nIndex]=oUL;return this._aItemGroups[p_nIndex];}},_getItemGroup:function(p_nIndex){var nIndex=((typeof p_nIndex=="number")?p_nIndex:0);return this._aItemGroups[nIndex];},_configureSubmenu:function(p_oItem){var oSubmenu=p_oItem.cfg.getProperty("submenu");if(oSubmenu){this.cfg.configChangedEvent.subscribe(this._onParentMenuConfigChange,oSubmenu,true);this.renderEvent.subscribe(this._onParentMenuRender,oSubmenu,true);oSubmenu.beforeShowEvent.subscribe(this._onSubmenuBeforeShow,oSubmenu,true);oSubmenu.showEvent.subscribe(this._onSubmenuShow,null,p_oItem);oSubmenu.hideEvent.subscribe(this._onSubmenuHide,null,p_oItem);}},_subscribeToItemEvents:function(p_oItem){p_oItem.focusEvent.subscribe(this._onMenuItemFocus);p_oItem.blurEvent.subscribe(this._onMenuItemBlur);p_oItem.cfg.configChangedEvent.subscribe(this._onMenuItemConfigChange,p_oItem,this);},_getOffsetWidth:function(){var oClone=this.element.cloneNode(true);Dom.setStyle(oClone,"width","");document.body.appendChild(oClone);var sWidth=oClone.offsetWidth;document.body.removeChild(oClone);return sWidth;},_setWidth:function(){var sWidth;if(this.element.parentNode.tagName.toUpperCase()=="BODY"){if(this.browser=="opera"){sWidth=this._getOffsetWidth();} -else{Dom.setStyle(this.element,"width","auto");sWidth=this.element.offsetWidth;}} -else{sWidth=this._getOffsetWidth();} -this.cfg.setProperty("width",(sWidth+"px"));},_onWidthChange:function(p_sType,p_aArgs){var sWidth=p_aArgs[0];if(sWidth&&!this._hasSetWidthHandlers){this.itemAddedEvent.subscribe(this._setWidth);this.itemRemovedEvent.subscribe(this._setWidth);this._hasSetWidthHandlers=true;} -else if(this._hasSetWidthHandlers){this.itemAddedEvent.unsubscribe(this._setWidth);this.itemRemovedEvent.unsubscribe(this._setWidth);this._hasSetWidthHandlers=false;}},_onVisibleChange:function(p_sType,p_aArgs){var bVisible=p_aArgs[0];if(bVisible){Dom.addClass(this.element,"visible");} -else{Dom.removeClass(this.element,"visible");}},_cancelHideDelay:function(){var oRoot=this.getRoot();if(oRoot._nHideDelayId){window.clearTimeout(oRoot._nHideDelayId);}},_execHideDelay:function(){this._cancelHideDelay();var oRoot=this.getRoot(),me=this;function hideMenu(){if(oRoot.activeItem){oRoot.clearActiveItem();} -if(oRoot==me&&me.cfg.getProperty("position")=="dynamic"){me.hide();}} -oRoot._nHideDelayId=window.setTimeout(hideMenu,oRoot.cfg.getProperty("hidedelay"));},_cancelShowDelay:function(){var oRoot=this.getRoot();if(oRoot._nShowDelayId){window.clearTimeout(oRoot._nShowDelayId);}},_execShowDelay:function(p_oMenu){var oRoot=this.getRoot();function showMenu(){if(p_oMenu.parent.cfg.getProperty("selected")){p_oMenu.show();}} -oRoot._nShowDelayId=window.setTimeout(showMenu,oRoot.cfg.getProperty("showdelay"));},_execSubmenuHideDelay:function(p_oSubmenu,p_nMouseX,p_nHideDelay){var me=this;p_oSubmenu._nSubmenuHideDelayId=window.setTimeout(function(){if(me._nCurrentMouseX>(p_nMouseX+10)){p_oSubmenu._nSubmenuHideDelayId=window.setTimeout(function(){p_oSubmenu.hide();},p_nHideDelay);} -else{p_oSubmenu.hide();}},50);},_disableScrollHeader:function(){if(!this._bHeaderDisabled){Dom.addClass(this.header,"topscrollbar_disabled");this._bHeaderDisabled=true;}},_disableScrollFooter:function(){if(!this._bFooterDisabled){Dom.addClass(this.footer,"bottomscrollbar_disabled");this._bFooterDisabled=true;}},_enableScrollHeader:function(){if(this._bHeaderDisabled){Dom.removeClass(this.header,"topscrollbar_disabled");this._bHeaderDisabled=false;}},_enableScrollFooter:function(){if(this._bFooterDisabled){Dom.removeClass(this.footer,"bottomscrollbar_disabled");this._bFooterDisabled=false;}},_onMouseOver:function(p_sType,p_aArgs,p_oMenu){if(this._bStopMouseEventHandlers){return false;} -var oEvent=p_aArgs[0],oItem=p_aArgs[1],oTarget=Event.getTarget(oEvent);if(!this._bHandledMouseOverEvent&&(oTarget==this.element||Dom.isAncestor(this.element,oTarget))){this._nCurrentMouseX=0;Event.on(this.element,"mousemove",this._onMouseMove,this,true);this.clearActiveItem();if(this.parent&&this._nSubmenuHideDelayId){window.clearTimeout(this._nSubmenuHideDelayId);this.parent.cfg.setProperty("selected",true);var oParentMenu=this.parent.parent;oParentMenu._bHandledMouseOutEvent=true;oParentMenu._bHandledMouseOverEvent=false;} -this._bHandledMouseOverEvent=true;this._bHandledMouseOutEvent=false;} -if(oItem&&!oItem.handledMouseOverEvent&&!oItem.cfg.getProperty("disabled")&&(oTarget==oItem.element||Dom.isAncestor(oItem.element,oTarget))){var nShowDelay=this.cfg.getProperty("showdelay"),bShowDelay=(nShowDelay>0);if(bShowDelay){this._cancelShowDelay();} -var oActiveItem=this.activeItem;if(oActiveItem){oActiveItem.cfg.setProperty("selected",false);} -var oItemCfg=oItem.cfg;oItemCfg.setProperty("selected",true);if(this.hasFocus()){oItem.focus();} -if(this.cfg.getProperty("autosubmenudisplay")){var oSubmenu=oItemCfg.getProperty("submenu");if(oSubmenu){if(bShowDelay){this._execShowDelay(oSubmenu);} -else{oSubmenu.show();}}} -oItem.handledMouseOverEvent=true;oItem.handledMouseOutEvent=false;}},_onMouseOut:function(p_sType,p_aArgs,p_oMenu){if(this._bStopMouseEventHandlers){return false;} -var oEvent=p_aArgs[0],oItem=p_aArgs[1],oRelatedTarget=Event.getRelatedTarget(oEvent),bMovingToSubmenu=false;if(oItem&&!oItem.cfg.getProperty("disabled")){var oItemCfg=oItem.cfg,oSubmenu=oItemCfg.getProperty("submenu");if(oSubmenu&&(oRelatedTarget==oSubmenu.element||Dom.isAncestor(oSubmenu.element,oRelatedTarget))){bMovingToSubmenu=true;} -if(!oItem.handledMouseOutEvent&&((oRelatedTarget!=oItem.element&&!Dom.isAncestor(oItem.element,oRelatedTarget))||bMovingToSubmenu)){if(!bMovingToSubmenu){oItem.cfg.setProperty("selected",false);if(oSubmenu){var nSubmenuHideDelay=this.cfg.getProperty("submenuhidedelay"),nShowDelay=this.cfg.getProperty("showdelay");if(!(this instanceof YAHOO.widget.MenuBar)&&nSubmenuHideDelay>0&&nShowDelay>=nSubmenuHideDelay){this._execSubmenuHideDelay(oSubmenu,Event.getPageX(oEvent),nSubmenuHideDelay);} -else{oSubmenu.hide();}}} -oItem.handledMouseOutEvent=true;oItem.handledMouseOverEvent=false;}} -if(!this._bHandledMouseOutEvent&&((oRelatedTarget!=this.element&&!Dom.isAncestor(this.element,oRelatedTarget))||bMovingToSubmenu)){Event.removeListener(this.element,"mousemove",this._onMouseMove);this._nCurrentMouseX=Event.getPageX(oEvent);this._bHandledMouseOutEvent=true;this._bHandledMouseOverEvent=false;}},_onMouseMove:function(p_oEvent,p_oMenu){if(this._bStopMouseEventHandlers){return false;} -this._nCurrentMouseX=Event.getPageX(p_oEvent);},_onClick:function(p_sType,p_aArgs,p_oMenu){var oEvent=p_aArgs[0],oItem=p_aArgs[1],oTarget=Event.getTarget(oEvent);if(oItem&&!oItem.cfg.getProperty("disabled")){var oItemCfg=oItem.cfg,oSubmenu=oItemCfg.getProperty("submenu");if(oTarget==oItem.submenuIndicator&&oSubmenu){if(oSubmenu.cfg.getProperty("visible")){oSubmenu.hide();oSubmenu.parent.focus();} -else{this.clearActiveItem();oItem.cfg.setProperty("selected",true);oSubmenu.show();oSubmenu.setInitialFocus();}} -else{var sURL=oItemCfg.getProperty("url"),bCurrentPageURL=(sURL.substr((sURL.length-1),1)=="#"),sTarget=oItemCfg.getProperty("target"),bHasTarget=(sTarget&&sTarget.length>0);if(oTarget.tagName.toUpperCase()=="A"&&bCurrentPageURL&&!bHasTarget){Event.preventDefault(oEvent);oItem.focus();} -if(oTarget.tagName.toUpperCase()!="A"&&!bCurrentPageURL&&!bHasTarget){document.location=sURL;} -if(bCurrentPageURL&&!oSubmenu){var oRoot=this.getRoot();if(oRoot.cfg.getProperty("position")=="static"){oRoot.clearActiveItem();} -else if(oRoot.cfg.getProperty("clicktohide")){oRoot.hide();}}}}},_onKeyDown:function(p_sType,p_aArgs,p_oMenu){var oEvent=p_aArgs[0],oItem=p_aArgs[1],me=this,oSubmenu;function stopMouseEventHandlers(){me._bStopMouseEventHandlers=true;window.setTimeout(function(){me._bStopMouseEventHandlers=false;},10);} -if(oItem&&!oItem.cfg.getProperty("disabled")){var oItemCfg=oItem.cfg,oParentItem=this.parent,oRoot,oNextItem;switch(oEvent.keyCode){case 38:case 40:oNextItem=(oEvent.keyCode==38)?oItem.getPreviousEnabledSibling():oItem.getNextEnabledSibling();if(oNextItem){this.clearActiveItem();oNextItem.cfg.setProperty("selected",true);oNextItem.focus();if(this.cfg.getProperty("maxheight")>0){var oBody=this.body;oBody.scrollTop=(oNextItem.element.offsetTop+ -oNextItem.element.offsetHeight)-oBody.offsetHeight;var nScrollTop=oBody.scrollTop,nScrollTarget=oBody.scrollHeight-oBody.offsetHeight;if(nScrollTop===0){this._disableScrollHeader();this._enableScrollFooter();} -else if(nScrollTop==nScrollTarget){this._enableScrollHeader();this._disableScrollFooter();} -else{this._enableScrollHeader();this._enableScrollFooter();}}} -Event.preventDefault(oEvent);stopMouseEventHandlers();break;case 39:oSubmenu=oItemCfg.getProperty("submenu");if(oSubmenu){if(!oItemCfg.getProperty("selected")){oItemCfg.setProperty("selected",true);} -oSubmenu.show();oSubmenu.setInitialFocus();oSubmenu.setInitialSelection();} -else{oRoot=this.getRoot();if(oRoot instanceof YAHOO.widget.MenuBar){oNextItem=oRoot.activeItem.getNextEnabledSibling();if(oNextItem){oRoot.clearActiveItem();oNextItem.cfg.setProperty("selected",true);oSubmenu=oNextItem.cfg.getProperty("submenu");if(oSubmenu){oSubmenu.show();} -oNextItem.focus();}}} -Event.preventDefault(oEvent);stopMouseEventHandlers();break;case 37:if(oParentItem){var oParentMenu=oParentItem.parent;if(oParentMenu instanceof YAHOO.widget.MenuBar){oNextItem=oParentMenu.activeItem.getPreviousEnabledSibling();if(oNextItem){oParentMenu.clearActiveItem();oNextItem.cfg.setProperty("selected",true);oSubmenu=oNextItem.cfg.getProperty("submenu");if(oSubmenu){oSubmenu.show();} -oNextItem.focus();}} -else{this.hide();oParentItem.focus();}} -Event.preventDefault(oEvent);stopMouseEventHandlers();break;}} -if(oEvent.keyCode==27){if(this.cfg.getProperty("position")=="dynamic"){this.hide();if(this.parent){this.parent.focus();}} -else if(this.activeItem){oSubmenu=this.activeItem.cfg.getProperty("submenu");if(oSubmenu&&oSubmenu.cfg.getProperty("visible")){oSubmenu.hide();this.activeItem.focus();} -else{this.activeItem.blur();this.activeItem.cfg.setProperty("selected",false);}} -Event.preventDefault(oEvent);}},_onKeyPress:function(p_sType,p_aArgs,p_oMenu){var oEvent=p_aArgs[0];if(oEvent.keyCode==40||oEvent.keyCode==38){YAHOO.util.Event.preventDefault(oEvent);}},_onTextResize:function(p_sType,p_aArgs,p_oMenu){if(this.browser=="gecko"&&!this._handleResize){this._handleResize=true;return;} -var oConfig=this.cfg;if(oConfig.getProperty("position")=="dynamic"){oConfig.setProperty("width",(this._getOffsetWidth()+"px"));}},_onScrollTargetMouseOver:function(p_oEvent,p_oMenu){this._cancelHideDelay();var oTarget=Event.getTarget(p_oEvent),oBody=this.body,me=this,nScrollTarget,fnScrollFunction;function scrollBodyDown(){var nScrollTop=oBody.scrollTop;if(nScrollTop0){oBody.scrollTop=(nScrollTop-1);me._enableScrollFooter();} -else{oBody.scrollTop=0;window.clearInterval(me._nBodyScrollId);me._disableScrollHeader();}} -if(Dom.hasClass(oTarget,"hd")){fnScrollFunction=scrollBodyUp;} -else{nScrollTarget=oBody.scrollHeight-oBody.offsetHeight;fnScrollFunction=scrollBodyDown;} -this._nBodyScrollId=window.setInterval(fnScrollFunction,10);},_onScrollTargetMouseOut:function(p_oEvent,p_oMenu){window.clearInterval(this._nBodyScrollId);this._cancelHideDelay();},_onInit:function(p_sType,p_aArgs,p_oMenu){this.cfg.subscribeToConfigEvent("width",this._onWidthChange);this.cfg.subscribeToConfigEvent("visible",this._onVisibleChange);if(((this.parent&&!this.lazyLoad)||(!this.parent&&this.cfg.getProperty("position")=="static")||(!this.parent&&!this.lazyLoad&&this.cfg.getProperty("position")=="dynamic"))&&this.getItemGroups().length===0){if(this.srcElement){this._initSubTree();} -if(this.itemData){this.addItems(this.itemData);}} -else if(this.lazyLoad){this.cfg.fireQueue();}},_onBeforeRender:function(p_sType,p_aArgs,p_oMenu){var oConfig=this.cfg,oEl=this.element,nListElements=this._aListElements.length;if(nListElements>0){var i=0,bFirstList=true,oUL,oGroupTitle;do{oUL=this._aListElements[i];if(oUL){if(bFirstList){Dom.addClass(oUL,"first-of-type");bFirstList=false;} -if(!Dom.isAncestor(oEl,oUL)){this.appendToBody(oUL);} -oGroupTitle=this._aGroupTitleElements[i];if(oGroupTitle){if(!Dom.isAncestor(oEl,oGroupTitle)){oUL.parentNode.insertBefore(oGroupTitle,oUL);} -Dom.addClass(oUL,"hastitle");}} -i++;} -while(i=nViewportHeight){var nMaxHeight=this.cfg.getProperty("maxheight");this._nMaxHeight=nMaxHeight;this.cfg.setProperty("maxheight",(nViewportHeight-20));} -if(this.cfg.getProperty("maxheight")>0){var oBody=this.body;if(oBody.scrollTop>0){oBody.scrollTop=0;} -this._disableScrollHeader();this._enableScrollFooter();}}},_onShow:function(p_sType,p_aArgs,p_oMenu){var oParent=this.parent;if(oParent){var oParentMenu=oParent.parent,aParentAlignment=oParentMenu.cfg.getProperty("submenualignment"),aAlignment=this.cfg.getProperty("submenualignment");if((aParentAlignment[0]!=aAlignment[0])&&(aParentAlignment[1]!=aAlignment[1])){this.cfg.setProperty("submenualignment",[aParentAlignment[0],aParentAlignment[1]]);} -if(!oParentMenu.cfg.getProperty("autosubmenudisplay")&&oParentMenu.cfg.getProperty("position")=="static"){oParentMenu.cfg.setProperty("autosubmenudisplay",true);function disableAutoSubmenuDisplay(p_oEvent){if(p_oEvent.type=="mousedown"||(p_oEvent.type=="keydown"&&p_oEvent.keyCode==27)){var oTarget=Event.getTarget(p_oEvent);if(oTarget!=oParentMenu.element||!YAHOO.util.Dom.isAncestor(oParentMenu.element,oTarget)){oParentMenu.cfg.setProperty("autosubmenudisplay",false);Event.removeListener(document,"mousedown",disableAutoSubmenuDisplay);Event.removeListener(document,"keydown",disableAutoSubmenuDisplay);}}} -Event.on(document,"mousedown",disableAutoSubmenuDisplay);Event.on(document,"keydown",disableAutoSubmenuDisplay);}}},_onBeforeHide:function(p_sType,p_aArgs,p_oMenu){var oActiveItem=this.activeItem;if(oActiveItem){var oConfig=oActiveItem.cfg;oConfig.setProperty("selected",false);var oSubmenu=oConfig.getProperty("submenu");if(oSubmenu){oSubmenu.hide();}} -if(this==this.getRoot()){this.blur();}},_onHide:function(p_sType,p_aArgs,p_oMenu){if(this._nMaxHeight!=-1){this.cfg.setProperty("maxheight",this._nMaxHeight);this._nMaxHeight=-1;}},_onParentMenuConfigChange:function(p_sType,p_aArgs,p_oSubmenu){var sPropertyName=p_aArgs[0][0],oPropertyValue=p_aArgs[0][1];switch(sPropertyName){case"iframe":case"constraintoviewport":case"hidedelay":case"showdelay":case"submenuhidedelay":case"clicktohide":case"effect":case"classname":p_oSubmenu.cfg.setProperty(sPropertyName,oPropertyValue);break;}},_onParentMenuRender:function(p_sType,p_aArgs,p_oSubmenu){var oParentMenu=p_oSubmenu.parent.parent,oConfig={constraintoviewport:oParentMenu.cfg.getProperty("constraintoviewport"),xy:[0,0],clicktohide:oParentMenu.cfg.getProperty("clicktohide"),effect:oParentMenu.cfg.getProperty("effect"),showdelay:oParentMenu.cfg.getProperty("showdelay"),hidedelay:oParentMenu.cfg.getProperty("hidedelay"),submenuhidedelay:oParentMenu.cfg.getProperty("submenuhidedelay"),classname:oParentMenu.cfg.getProperty("classname")};if(this.cfg.getProperty("position")==oParentMenu.cfg.getProperty("position")){oConfig.iframe=oParentMenu.cfg.getProperty("iframe");} -p_oSubmenu.cfg.applyConfig(oConfig);if(!this.lazyLoad){var oLI=this.parent.element;if(this.element.parentNode==oLI){this.render();} -else{this.render(oLI);}}},_onSubmenuBeforeShow:function(p_sType,p_aArgs,p_oSubmenu){var oParent=this.parent,aAlignment=oParent.parent.cfg.getProperty("submenualignment");this.cfg.setProperty("context",[oParent.element,aAlignment[0],aAlignment[1]]);var nScrollTop=oParent.parent.body.scrollTop;if((this.browser=="gecko"||this.browser=="safari")&&nScrollTop>0){this.cfg.setProperty("y",(this.cfg.getProperty("y")-nScrollTop));}},_onSubmenuShow:function(p_sType,p_aArgs){this.submenuIndicator.firstChild.nodeValue=this.EXPANDED_SUBMENU_INDICATOR_TEXT;},_onSubmenuHide:function(p_sType,p_aArgs){this.submenuIndicator.firstChild.nodeValue=this.COLLAPSED_SUBMENU_INDICATOR_TEXT;},_onMenuItemFocus:function(p_sType,p_aArgs){this.parent.focusEvent.fire(this);},_onMenuItemBlur:function(p_sType,p_aArgs){this.parent.blurEvent.fire(this);},_onMenuItemConfigChange:function(p_sType,p_aArgs,p_oItem){var sPropertyName=p_aArgs[0][0],oPropertyValue=p_aArgs[0][1];switch(sPropertyName){case"selected":if(oPropertyValue===true){this.activeItem=p_oItem;} -break;case"submenu":var oSubmenu=p_aArgs[0][1];if(oSubmenu){this._configureSubmenu(p_oItem);} -break;case"text":case"helptext":if(this.element.style.width){var sWidth=this._getOffsetWidth()+"px";Dom.setStyle(this.element,"width",sWidth);} -break;}},enforceConstraints:function(type,args,obj){if(this.parent&&!(this.parent.parent instanceof YAHOO.widget.MenuBar)){var oConfig=this.cfg,pos=args[0],x=pos[0],y=pos[1],offsetHeight=this.element.offsetHeight,offsetWidth=this.element.offsetWidth,viewPortWidth=YAHOO.util.Dom.getViewportWidth(),viewPortHeight=YAHOO.util.Dom.getViewportHeight(),scrollX=Math.max(document.documentElement.scrollLeft,document.body.scrollLeft),scrollY=Math.max(document.documentElement.scrollTop,document.body.scrollTop),nPadding=(this.parent&&this.parent.parent instanceof YAHOO.widget.MenuBar)?0:10,topConstraint=scrollY+nPadding,leftConstraint=scrollX+nPadding,bottomConstraint=scrollY+viewPortHeight-offsetHeight-nPadding,rightConstraint=scrollX+viewPortWidth-offsetWidth-nPadding,aContext=oConfig.getProperty("context"),oContextElement=aContext?aContext[0]:null;if(x<10){x=leftConstraint;}else if((x+offsetWidth)>viewPortWidth){if(oContextElement&&((x-oContextElement.offsetWidth)>offsetWidth)){x=(x-(oContextElement.offsetWidth+offsetWidth));} -else{x=rightConstraint;}} -if(y<10){y=topConstraint;}else if(y>bottomConstraint){if(oContextElement&&(y>offsetHeight)){y=((y+oContextElement.offsetHeight)-offsetHeight);} -else{y=bottomConstraint;}} -oConfig.setProperty("x",x,true);oConfig.setProperty("y",y,true);oConfig.setProperty("xy",[x,y],true);}},configVisible:function(p_sType,p_aArgs,p_oMenu){if(this.cfg.getProperty("position")=="dynamic"){YAHOO.widget.Menu.superclass.configVisible.call(this,p_sType,p_aArgs,p_oMenu);} -else{var bVisible=p_aArgs[0],sDisplay=Dom.getStyle(this.element,"display");if(bVisible){if(sDisplay!="block"){this.beforeShowEvent.fire();Dom.setStyle(this.element,"display","block");this.showEvent.fire();}} -else{if(sDisplay=="block"){this.beforeHideEvent.fire();Dom.setStyle(this.element,"display","none");this.hideEvent.fire();}}}},configPosition:function(p_sType,p_aArgs,p_oMenu){var sCSSPosition=p_aArgs[0]=="static"?"static":"absolute",oCfg=this.cfg;Dom.setStyle(this.element,"position",sCSSPosition);if(sCSSPosition=="static"){oCfg.setProperty("iframe",false);Dom.setStyle(this.element,"display","block");oCfg.setProperty("visible",true);} -else{Dom.setStyle(this.element,"visibility","hidden");} -if(sCSSPosition=="absolute"){var nZIndex=oCfg.getProperty("zindex");if(!nZIndex||nZIndex===0){nZIndex=this.parent?(this.parent.parent.cfg.getProperty("zindex")+1):1;oCfg.setProperty("zindex",nZIndex);}}},configIframe:function(p_sType,p_aArgs,p_oMenu){if(this.cfg.getProperty("position")=="dynamic"){YAHOO.widget.Menu.superclass.configIframe.call(this,p_sType,p_aArgs,p_oMenu);}},configHideDelay:function(p_sType,p_aArgs,p_oMenu){var nHideDelay=p_aArgs[0],oMouseOutEvent=this.mouseOutEvent,oMouseOverEvent=this.mouseOverEvent,oKeyDownEvent=this.keyDownEvent;if(nHideDelay>0){if(!this._bHideDelayEventHandlersAssigned){oMouseOutEvent.subscribe(this._execHideDelay,this);oMouseOverEvent.subscribe(this._cancelHideDelay,this,true);oKeyDownEvent.subscribe(this._cancelHideDelay,this,true);this._bHideDelayEventHandlersAssigned=true;}} -else{oMouseOutEvent.unsubscribe(this._execHideDelay,this);oMouseOverEvent.unsubscribe(this._cancelHideDelay,this);oKeyDownEvent.unsubscribe(this._cancelHideDelay,this);this._bHideDelayEventHandlersAssigned=false;}},configContainer:function(p_sType,p_aArgs,p_oMenu){var oElement=p_aArgs[0];if(typeof oElement=='string'){this.cfg.setProperty("container",document.getElementById(oElement),true);}},_setMaxHeight:function(p_sType,p_aArgs,p_nMaxHeight){this.cfg.setProperty("maxheight",p_nMaxHeight);this.renderEvent.unsubscribe(this._setMaxHeight);},configMaxHeight:function(p_sType,p_aArgs,p_oMenu){var nMaxHeight=p_aArgs[0],oBody=this.body;if(this.lazyLoad&&!oBody){this.renderEvent.unsubscribe(this._setMaxHeight);if(nMaxHeight>0){this.renderEvent.subscribe(this._setMaxHeight,nMaxHeight,this);} -return;} -Dom.setStyle(oBody,"height","auto");Dom.setStyle(oBody,"overflow","visible");var oHeader=this.header,oFooter=this.footer,fnMouseOver=this._onScrollTargetMouseOver,fnMouseOut=this._onScrollTargetMouseOut;if((nMaxHeight>0)&&(oBody.offsetHeight>nMaxHeight)){if(!this.cfg.getProperty("width")){this._setWidth();} -if(!oHeader&&!oFooter){this.setHeader(" ");this.setFooter(" ");oHeader=this.header;oFooter=this.footer;Dom.addClass(oHeader,"topscrollbar");Dom.addClass(oFooter,"bottomscrollbar");this.element.insertBefore(oHeader,oBody);this.element.appendChild(oFooter);Event.on(oHeader,"mouseover",fnMouseOver,this,true);Event.on(oHeader,"mouseout",fnMouseOut,this,true);Event.on(oFooter,"mouseover",fnMouseOver,this,true);Event.on(oFooter,"mouseout",fnMouseOut,this,true);} -var nHeight=(nMaxHeight- -(this.footer.offsetHeight+this.header.offsetHeight));Dom.setStyle(oBody,"height",(nHeight+"px"));Dom.setStyle(oBody,"overflow","hidden");} -else if(oHeader&&oFooter){Dom.setStyle(oBody,"height","auto");Dom.setStyle(oBody,"overflow","visible");Event.removeListener(oHeader,"mouseover",fnMouseOver);Event.removeListener(oHeader,"mouseout",fnMouseOut);Event.removeListener(oFooter,"mouseover",fnMouseOver);Event.removeListener(oFooter,"mouseout",fnMouseOut);this.element.removeChild(oHeader);this.element.removeChild(oFooter);this.header=null;this.footer=null;}},configClassName:function(p_sType,p_aArgs,p_oMenu){var sClassName=p_aArgs[0];if(this._sClassName){Dom.removeClass(this.element,this._sClassName);} -Dom.addClass(this.element,sClassName);this._sClassName=sClassName;},initEvents:function(){YAHOO.widget.Menu.superclass.initEvents.call(this);var EVENT_TYPES=YAHOO.widget.Menu._EVENT_TYPES;this.mouseOverEvent=new CustomEvent(EVENT_TYPES.MOUSE_OVER,this);this.mouseOutEvent=new CustomEvent(EVENT_TYPES.MOUSE_OUT,this);this.mouseDownEvent=new CustomEvent(EVENT_TYPES.MOUSE_DOWN,this);this.mouseUpEvent=new CustomEvent(EVENT_TYPES.MOUSE_UP,this);this.clickEvent=new CustomEvent(EVENT_TYPES.CLICK,this);this.keyPressEvent=new CustomEvent(EVENT_TYPES.KEY_PRESS,this);this.keyDownEvent=new CustomEvent(EVENT_TYPES.KEY_DOWN,this);this.keyUpEvent=new CustomEvent(EVENT_TYPES.KEY_UP,this);this.focusEvent=new CustomEvent(EVENT_TYPES.FOCUS,this);this.blurEvent=new CustomEvent(EVENT_TYPES.BLUR,this);this.itemAddedEvent=new CustomEvent(EVENT_TYPES.ITEM_ADDED,this);this.itemRemovedEvent=new CustomEvent(EVENT_TYPES.ITEM_REMOVED,this);},getRoot:function(){var oItem=this.parent;if(oItem){var oParentMenu=oItem.parent;return oParentMenu?oParentMenu.getRoot():this;} -else{return this;}},toString:function(){var sReturnVal="Menu",sId=this.id;if(sId){sReturnVal+=(" "+sId);} -return sReturnVal;},setItemGroupTitle:function(p_sGroupTitle,p_nGroupIndex){if(typeof p_sGroupTitle=="string"&&p_sGroupTitle.length>0){var nGroupIndex=typeof p_nGroupIndex=="number"?p_nGroupIndex:0,oTitle=this._aGroupTitleElements[nGroupIndex];if(oTitle){oTitle.innerHTML=p_sGroupTitle;} -else{oTitle=document.createElement(this.GROUP_TITLE_TAG_NAME);oTitle.innerHTML=p_sGroupTitle;this._aGroupTitleElements[nGroupIndex]=oTitle;} -var i=this._aGroupTitleElements.length-1,nFirstIndex;do{if(this._aGroupTitleElements[i]){Dom.removeClass(this._aGroupTitleElements[i],"first-of-type");nFirstIndex=i;}} -while(i--);if(nFirstIndex!==null){Dom.addClass(this._aGroupTitleElements[nFirstIndex],"first-of-type");}}},addItem:function(p_oItem,p_nGroupIndex){if(p_oItem){return this._addItemToGroup(p_nGroupIndex,p_oItem);}},addItems:function(p_aItems,p_nGroupIndex){if(Lang.isArray(p_aItems)){var nItems=p_aItems.length,aItems=[],oItem;for(var i=0;i0){var i=nItems-1,oItem,oSubmenu;do{oItem=aItems[i];if(oItem){oSubmenu=oItem.cfg.getProperty("submenu");if(oSubmenu){this.cfg.configChangedEvent.unsubscribe(this._onParentMenuConfigChange,oSubmenu);this.renderEvent.unsubscribe(this._onParentMenuRender,oSubmenu);} -oItem.destroy();}} -while(i--);} -if(oHeader){Event.purgeElement(oHeader);oElement.removeChild(oHeader);} -if(oFooter){Event.purgeElement(oFooter);oElement.removeChild(oFooter);} -if(oBody){Event.purgeElement(oBody);oBody.innerHTML="";} -this._aItemGroups=[];this._aListElements=[];this._aGroupTitleElements=[];this.cfg.setProperty("width",null);},destroy:function(){Event.purgeElement(this.element);this.mouseOverEvent.unsubscribeAll();this.mouseOutEvent.unsubscribeAll();this.mouseDownEvent.unsubscribeAll();this.mouseUpEvent.unsubscribeAll();this.clickEvent.unsubscribeAll();this.keyPressEvent.unsubscribeAll();this.keyDownEvent.unsubscribeAll();this.keyUpEvent.unsubscribeAll();this.focusEvent.unsubscribeAll();this.blurEvent.unsubscribeAll();this.itemAddedEvent.unsubscribeAll();this.itemRemovedEvent.unsubscribeAll();this.cfg.unsubscribeFromConfigEvent("width",this._onWidthChange);this.cfg.unsubscribeFromConfigEvent("visible",this._onVisibleChange);if(this._hasSetWidthHandlers){this.itemAddedEvent.unsubscribe(this._setWidth);this.itemRemovedEvent.unsubscribe(this._setWidth);this._hasSetWidthHandlers=false;} -YAHOO.widget.Module.textResizeEvent.unsubscribe(this._onTextResize,this);this.clearContent();this._aItemGroups=null;this._aListElements=null;this._aGroupTitleElements=null;YAHOO.widget.Menu.superclass.destroy.call(this);},setInitialFocus:function(){var oItem=this._getFirstEnabledItem();if(oItem){oItem.focus();}},setInitialSelection:function(){var oItem=this._getFirstEnabledItem();if(oItem){oItem.cfg.setProperty("selected",true);}},clearActiveItem:function(p_bBlur){if(this.cfg.getProperty("showdelay")>0){this._cancelShowDelay();} -var oActiveItem=this.activeItem;if(oActiveItem){var oConfig=oActiveItem.cfg;if(p_bBlur){oActiveItem.blur();} -oConfig.setProperty("selected",false);var oSubmenu=oConfig.getProperty("submenu");if(oSubmenu){oSubmenu.hide();} -this.activeItem=null;}},focus:function(){if(!this.hasFocus()){this.setInitialFocus();}},blur:function(){if(this.hasFocus()){var oItem=YAHOO.widget.MenuManager.getFocusedMenuItem();if(oItem){oItem.blur();}}},hasFocus:function(){return(YAHOO.widget.MenuManager.getFocusedMenu()==this.getRoot());},initDefaultConfig:function(){YAHOO.widget.Menu.superclass.initDefaultConfig.call(this);var oConfig=this.cfg,DEFAULT_CONFIG=YAHOO.widget.Menu._DEFAULT_CONFIG;oConfig.addProperty(DEFAULT_CONFIG.VISIBLE.key,{handler:this.configVisible,value:DEFAULT_CONFIG.VISIBLE.value,validator:DEFAULT_CONFIG.VISIBLE.validator});oConfig.addProperty(DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.key,{handler:this.configConstrainToViewport,value:DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.value,validator:DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.validator,supercedes:DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.supercedes});oConfig.addProperty(DEFAULT_CONFIG.POSITION.key,{handler:this.configPosition,value:DEFAULT_CONFIG.POSITION.value,validator:DEFAULT_CONFIG.POSITION.validator,supercedes:DEFAULT_CONFIG.POSITION.supercedes});oConfig.addProperty(DEFAULT_CONFIG.SUBMENU_ALIGNMENT.key,{value:DEFAULT_CONFIG.SUBMENU_ALIGNMENT.value});oConfig.addProperty(DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.key,{value:DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.value,validator:DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.validator});oConfig.addProperty(DEFAULT_CONFIG.SHOW_DELAY.key,{value:DEFAULT_CONFIG.SHOW_DELAY.value,validator:DEFAULT_CONFIG.SHOW_DELAY.validator});oConfig.addProperty(DEFAULT_CONFIG.HIDE_DELAY.key,{handler:this.configHideDelay,value:DEFAULT_CONFIG.HIDE_DELAY.value,validator:DEFAULT_CONFIG.HIDE_DELAY.validator,suppressEvent:DEFAULT_CONFIG.HIDE_DELAY.suppressEvent});oConfig.addProperty(DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.key,{value:DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.value,validator:DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.validator});oConfig.addProperty(DEFAULT_CONFIG.CLICK_TO_HIDE.key,{value:DEFAULT_CONFIG.CLICK_TO_HIDE.value,validator:DEFAULT_CONFIG.CLICK_TO_HIDE.validator});oConfig.addProperty(DEFAULT_CONFIG.CONTAINER.key,{handler:this.configContainer,value:document.body});oConfig.addProperty(DEFAULT_CONFIG.MAX_HEIGHT.key,{handler:this.configMaxHeight,value:DEFAULT_CONFIG.MAX_HEIGHT.value,validator:DEFAULT_CONFIG.MAX_HEIGHT.validator});oConfig.addProperty(DEFAULT_CONFIG.CLASS_NAME.key,{handler:this.configClassName,value:DEFAULT_CONFIG.CLASS_NAME.value,validator:DEFAULT_CONFIG.CLASS_NAME.validator});}});})();(function(){var Dom=YAHOO.util.Dom,Module=YAHOO.widget.Module,Menu=YAHOO.widget.Menu,CustomEvent=YAHOO.util.CustomEvent,Lang=YAHOO.lang;YAHOO.widget.MenuItem=function(p_oObject,p_oConfig){if(p_oObject){if(p_oConfig){this.parent=p_oConfig.parent;this.value=p_oConfig.value;this.id=p_oConfig.id;} -this.init(p_oObject,p_oConfig);}};YAHOO.widget.MenuItem._EVENT_TYPES={"MOUSE_OVER":"mouseover","MOUSE_OUT":"mouseout","MOUSE_DOWN":"mousedown","MOUSE_UP":"mouseup","CLICK":"click","KEY_PRESS":"keypress","KEY_DOWN":"keydown","KEY_UP":"keyup","ITEM_ADDED":"itemAdded","ITEM_REMOVED":"itemRemoved","FOCUS":"focus","BLUR":"blur","DESTROY":"destroy"};YAHOO.widget.MenuItem._DEFAULT_CONFIG={"TEXT":{key:"text",value:"",validator:Lang.isString,suppressEvent:true},"HELP_TEXT":{key:"helptext"},"URL":{key:"url",value:"#",suppressEvent:true},"TARGET":{key:"target",suppressEvent:true},"EMPHASIS":{key:"emphasis",value:false,validator:Lang.isBoolean,suppressEvent:true},"STRONG_EMPHASIS":{key:"strongemphasis",value:false,validator:Lang.isBoolean,suppressEvent:true},"CHECKED":{key:"checked",value:false,validator:Lang.isBoolean,suppressEvent:true,supercedes:["disabled"]},"DISABLED":{key:"disabled",value:false,validator:Lang.isBoolean,suppressEvent:true},"SELECTED":{key:"selected",value:false,validator:Lang.isBoolean,suppressEvent:true},"SUBMENU":{key:"submenu"},"ONCLICK":{key:"onclick"},"CLASS_NAME":{key:"classname",value:null,validator:Lang.isString}};YAHOO.widget.MenuItem.prototype={COLLAPSED_SUBMENU_INDICATOR_TEXT:"Submenu collapsed. Click to expand submenu.",EXPANDED_SUBMENU_INDICATOR_TEXT:"Submenu expanded. Click to collapse submenu.",DISABLED_SUBMENU_INDICATOR_TEXT:"Submenu collapsed. (Item disabled.)",CHECKED_TEXT:"Menu item checked.",DISABLED_CHECKED_TEXT:"Checked. (Item disabled.)",CSS_CLASS_NAME:"yuimenuitem",SUBMENU_TYPE:null,_oAnchor:null,_oText:null,_oHelpTextEM:null,_oSubmenu:null,_oCheckedIndicator:null,_oOnclickAttributeValue:null,_sClassName:null,constructor:YAHOO.widget.MenuItem,index:null,groupIndex:null,parent:null,element:null,srcElement:null,value:null,submenuIndicator:null,browser:Module.prototype.browser,id:null,destroyEvent:null,mouseOverEvent:null,mouseOutEvent:null,mouseDownEvent:null,mouseUpEvent:null,clickEvent:null,keyPressEvent:null,keyDownEvent:null,keyUpEvent:null,focusEvent:null,blurEvent:null,init:function(p_oObject,p_oConfig){if(!this.SUBMENU_TYPE){this.SUBMENU_TYPE=Menu;} -this.cfg=new YAHOO.util.Config(this);this.initDefaultConfig();var oConfig=this.cfg;if(Lang.isString(p_oObject)){this._createRootNodeStructure();oConfig.setProperty("text",p_oObject);} -else if(this._checkDOMNode(p_oObject)){switch(p_oObject.tagName.toUpperCase()){case"OPTION":this._createRootNodeStructure();oConfig.setProperty("text",p_oObject.text);this.srcElement=p_oObject;break;case"OPTGROUP":this._createRootNodeStructure();oConfig.setProperty("text",p_oObject.label);this.srcElement=p_oObject;this._initSubTree();break;case"LI":var oAnchor=this._getFirstElement(p_oObject,"A"),sURL="#",sTarget,sText;if(oAnchor){sURL=oAnchor.getAttribute("href");sTarget=oAnchor.getAttribute("target");if(oAnchor.innerText){sText=oAnchor.innerText;} -else{var oRange=oAnchor.ownerDocument.createRange();oRange.selectNodeContents(oAnchor);sText=oRange.toString();}} -else{var oText=p_oObject.firstChild;sText=oText.nodeValue;oAnchor=document.createElement("a");oAnchor.setAttribute("href",sURL);p_oObject.replaceChild(oAnchor,oText);oAnchor.appendChild(oText);} -this.srcElement=p_oObject;this.element=p_oObject;this._oAnchor=oAnchor;var oEmphasisNode=this._getFirstElement(oAnchor),bEmphasis=false,bStrongEmphasis=false;if(oEmphasisNode){this._oText=oEmphasisNode.firstChild;switch(oEmphasisNode.tagName.toUpperCase()){case"EM":bEmphasis=true;break;case"STRONG":bStrongEmphasis=true;break;}} -else{this._oText=oAnchor.firstChild;} -oConfig.setProperty("text",sText,true);oConfig.setProperty("url",sURL,true);oConfig.setProperty("target",sTarget,true);oConfig.setProperty("emphasis",bEmphasis,true);oConfig.setProperty("strongemphasis",bStrongEmphasis,true);this._initSubTree();break;}} -if(this.element){var sId=this.element.id;if(!sId){sId=this.id||Dom.generateId();this.element.id=sId;} -this.id=sId;Dom.addClass(this.element,this.CSS_CLASS_NAME);var EVENT_TYPES=YAHOO.widget.MenuItem._EVENT_TYPES;this.mouseOverEvent=new CustomEvent(EVENT_TYPES.MOUSE_OVER,this);this.mouseOutEvent=new CustomEvent(EVENT_TYPES.MOUSE_OUT,this);this.mouseDownEvent=new CustomEvent(EVENT_TYPES.MOUSE_DOWN,this);this.mouseUpEvent=new CustomEvent(EVENT_TYPES.MOUSE_UP,this);this.clickEvent=new CustomEvent(EVENT_TYPES.CLICK,this);this.keyPressEvent=new CustomEvent(EVENT_TYPES.KEY_PRESS,this);this.keyDownEvent=new CustomEvent(EVENT_TYPES.KEY_DOWN,this);this.keyUpEvent=new CustomEvent(EVENT_TYPES.KEY_UP,this);this.focusEvent=new CustomEvent(EVENT_TYPES.FOCUS,this);this.blurEvent=new CustomEvent(EVENT_TYPES.BLUR,this);this.destroyEvent=new CustomEvent(EVENT_TYPES.DESTROY,this);if(p_oConfig){oConfig.applyConfig(p_oConfig);} -oConfig.fireQueue();}},_getFirstElement:function(p_oElement,p_sTagName){var oFirstChild=p_oElement.firstChild,oElement;if(oFirstChild){if(oFirstChild.nodeType==1){oElement=oFirstChild;} -else{var oNextSibling=oFirstChild.nextSibling;if(oNextSibling&&oNextSibling.nodeType==1){oElement=oNextSibling;}}} -if(p_sTagName){return(oElement&&oElement.tagName.toUpperCase()==p_sTagName)?oElement:false;} -return oElement;},_checkDOMNode:function(p_oObject){return(p_oObject&&p_oObject.tagName);},_createRootNodeStructure:function(){var oTemplate=YAHOO.widget.MenuItem._MenuItemTemplate;if(!oTemplate){oTemplate=document.createElement("li");oTemplate.innerHTML="s";YAHOO.widget.MenuItem._MenuItemTemplate=oTemplate;} -this.element=oTemplate.cloneNode(true);this._oAnchor=this.element.firstChild;this._oText=this._oAnchor.firstChild;this.element.appendChild(this._oAnchor);},_initSubTree:function(){var oSrcEl=this.srcElement,oConfig=this.cfg;if(oSrcEl.childNodes.length>0){if(this.parent.lazyLoad&&this.parent.srcElement&&this.parent.srcElement.tagName.toUpperCase()=="SELECT"){oConfig.setProperty("submenu",{id:Dom.generateId(),itemdata:oSrcEl.childNodes});} -else{var oNode=oSrcEl.firstChild,aOptions=[];do{if(oNode&&oNode.tagName){switch(oNode.tagName.toUpperCase()){case"DIV":oConfig.setProperty("submenu",oNode);break;case"OPTION":aOptions[aOptions.length]=oNode;break;}}} -while((oNode=oNode.nextSibling));var nOptions=aOptions.length;if(nOptions>0){var oMenu=new this.SUBMENU_TYPE(Dom.generateId());oConfig.setProperty("submenu",oMenu);for(var n=0;n0){oAnchor.setAttribute("target",sTarget);} -else{oAnchor.removeAttribute("target");}},configEmphasis:function(p_sType,p_aArgs,p_oItem){var bEmphasis=p_aArgs[0],oAnchor=this._oAnchor,oText=this._oText,oConfig=this.cfg,oEM;if(bEmphasis&&oConfig.getProperty("strongemphasis")){oConfig.setProperty("strongemphasis",false);} -if(oAnchor){if(bEmphasis){oEM=document.createElement("em");oEM.appendChild(oText);oAnchor.appendChild(oEM);} -else{oEM=this._getFirstElement(oAnchor,"EM");if(oEM){oAnchor.removeChild(oEM);oAnchor.appendChild(oText);}}}},configStrongEmphasis:function(p_sType,p_aArgs,p_oItem){var bStrongEmphasis=p_aArgs[0],oAnchor=this._oAnchor,oText=this._oText,oConfig=this.cfg,oStrong;if(bStrongEmphasis&&oConfig.getProperty("emphasis")){oConfig.setProperty("emphasis",false);} -if(oAnchor){if(bStrongEmphasis){oStrong=document.createElement("strong");oStrong.appendChild(oText);oAnchor.appendChild(oStrong);} -else{oStrong=this._getFirstElement(oAnchor,"STRONG");if(oStrong){oAnchor.removeChild(oStrong);oAnchor.appendChild(oText);}}}},configChecked:function(p_sType,p_aArgs,p_oItem){var bChecked=p_aArgs[0],oEl=this.element,oConfig=this.cfg,oEM;if(bChecked){var oTemplate=YAHOO.widget.MenuItem._CheckedIndicatorTemplate;if(!oTemplate){oTemplate=document.createElement("em");oTemplate.innerHTML=this.CHECKED_TEXT;oTemplate.className="checkedindicator";YAHOO.widget.MenuItem._CheckedIndicatorTemplate=oTemplate;} -oEM=oTemplate.cloneNode(true);var oSubmenu=this.cfg.getProperty("submenu");if(oSubmenu&&oSubmenu.element){oEl.insertBefore(oEM,oSubmenu.element);} -else{oEl.appendChild(oEM);} -Dom.addClass(oEl,"checked");this._oCheckedIndicator=oEM;if(oConfig.getProperty("disabled")){oConfig.refireEvent("disabled");} -if(oConfig.getProperty("selected")){oConfig.refireEvent("selected");}} -else{oEM=this._oCheckedIndicator;Dom.removeClass(oEl,"checked");if(oEM){oEl.removeChild(oEM);} -this._oCheckedIndicator=null;}},configDisabled:function(p_sType,p_aArgs,p_oItem){var bDisabled=p_aArgs[0],oConfig=this.cfg,oAnchor=this._oAnchor,aNodes=[this.element,oAnchor],oHelpText=this._oHelpTextEM,oCheckedIndicator=this._oCheckedIndicator,oSubmenuIndicator=this.submenuIndicator,i=1;if(oHelpText){i++;aNodes[i]=oHelpText;} -if(oCheckedIndicator){oCheckedIndicator.firstChild.nodeValue=bDisabled?this.DISABLED_CHECKED_TEXT:this.CHECKED_TEXT;i++;aNodes[i]=oCheckedIndicator;} -if(oSubmenuIndicator){oSubmenuIndicator.firstChild.nodeValue=bDisabled?this.DISABLED_SUBMENU_INDICATOR_TEXT:this.COLLAPSED_SUBMENU_INDICATOR_TEXT;i++;aNodes[i]=oSubmenuIndicator;} -if(bDisabled){if(oConfig.getProperty("selected")){oConfig.setProperty("selected",false);} -oAnchor.removeAttribute("href");Dom.addClass(aNodes,"disabled");} -else{oAnchor.setAttribute("href",oConfig.getProperty("url"));Dom.removeClass(aNodes,"disabled");}},configSelected:function(p_sType,p_aArgs,p_oItem){if(!this.cfg.getProperty("disabled")){var bSelected=p_aArgs[0],oHelpText=this._oHelpTextEM,oSubmenuIndicator=this.submenuIndicator,oCheckedIndicator=this._oCheckedIndicator,aNodes=[this.element,this._oAnchor],i=1;if(oHelpText){i++;aNodes[i]=oHelpText;} -if(oSubmenuIndicator){i++;aNodes[i]=oSubmenuIndicator;} -if(oCheckedIndicator){i++;aNodes[i]=oCheckedIndicator;} -if(bSelected){Dom.addClass(aNodes,"selected");} -else{Dom.removeClass(aNodes,"selected");}}},configSubmenu:function(p_sType,p_aArgs,p_oItem){var oEl=this.element,oSubmenu=p_aArgs[0],oSubmenuIndicator=this.submenuIndicator,oConfig=this.cfg,aNodes=[this.element,this._oAnchor],bLazyLoad=this.parent&&this.parent.lazyLoad,oMenu;if(oSubmenu){if(oSubmenu instanceof Menu){oMenu=oSubmenu;oMenu.parent=this;oMenu.lazyLoad=bLazyLoad;} -else if(typeof oSubmenu=="object"&&oSubmenu.id&&!oSubmenu.nodeType){var sSubmenuId=oSubmenu.id,oSubmenuConfig=oSubmenu;oSubmenuConfig.lazyload=bLazyLoad;oSubmenuConfig.parent=this;oMenu=new this.SUBMENU_TYPE(sSubmenuId,oSubmenuConfig);this.cfg.setProperty("submenu",oMenu,true);} -else{oMenu=new this.SUBMENU_TYPE(oSubmenu,{lazyload:bLazyLoad,parent:this});this.cfg.setProperty("submenu",oMenu,true);} -if(oMenu){this._oSubmenu=oMenu;if(!oSubmenuIndicator){var oTemplate=YAHOO.widget.MenuItem._oSubmenuIndicatorTemplate;if(!oTemplate){oTemplate=document.createElement("em");oTemplate.innerHTML=this.COLLAPSED_SUBMENU_INDICATOR_TEXT;oTemplate.className="submenuindicator";YAHOO.widget.MenuItem._oSubmenuIndicatorTemplate=oTemplate;} -oSubmenuIndicator=oTemplate.cloneNode(true);if(oMenu.element.parentNode==oEl){if(this.browser=="opera"){oEl.appendChild(oSubmenuIndicator);oMenu.renderEvent.subscribe(function(){oSubmenuIndicator.parentNode.insertBefore(oSubmenuIndicator,oMenu.element);});} -else{oEl.insertBefore(oSubmenuIndicator,oMenu.element);}} -else{oEl.appendChild(oSubmenuIndicator);} -this.submenuIndicator=oSubmenuIndicator;} -Dom.addClass(aNodes,"hassubmenu");if(oConfig.getProperty("disabled")){oConfig.refireEvent("disabled");} -if(oConfig.getProperty("selected")){oConfig.refireEvent("selected");}}} -else{Dom.removeClass(aNodes,"hassubmenu");if(oSubmenuIndicator){oEl.removeChild(oSubmenuIndicator);} -if(this._oSubmenu){this._oSubmenu.destroy();}}},configOnClick:function(p_sType,p_aArgs,p_oItem){var oObject=p_aArgs[0];if(this._oOnclickAttributeValue&&(this._oOnclickAttributeValue!=oObject)){this.clickEvent.unsubscribe(this._oOnclickAttributeValue.fn,this._oOnclickAttributeValue.obj);this._oOnclickAttributeValue=null;} -if(!this._oOnclickAttributeValue&&typeof oObject=="object"&&typeof oObject.fn=="function"){this.clickEvent.subscribe(oObject.fn,(oObject.obj||this),oObject.scope);this._oOnclickAttributeValue=oObject;}},configClassName:function(p_sType,p_aArgs,p_oItem){var sClassName=p_aArgs[0];if(this._sClassName){Dom.removeClass(this.element,this._sClassName);} -Dom.addClass(this.element,sClassName);this._sClassName=sClassName;},initDefaultConfig:function(){var oConfig=this.cfg,DEFAULT_CONFIG=YAHOO.widget.MenuItem._DEFAULT_CONFIG;oConfig.addProperty(DEFAULT_CONFIG.TEXT.key,{handler:this.configText,value:DEFAULT_CONFIG.TEXT.value,validator:DEFAULT_CONFIG.TEXT.validator,suppressEvent:DEFAULT_CONFIG.TEXT.suppressEvent});oConfig.addProperty(DEFAULT_CONFIG.HELP_TEXT.key,{handler:this.configHelpText});oConfig.addProperty(DEFAULT_CONFIG.URL.key,{handler:this.configURL,value:DEFAULT_CONFIG.URL.value,suppressEvent:DEFAULT_CONFIG.URL.suppressEvent});oConfig.addProperty(DEFAULT_CONFIG.TARGET.key,{handler:this.configTarget,suppressEvent:DEFAULT_CONFIG.TARGET.suppressEvent});oConfig.addProperty(DEFAULT_CONFIG.EMPHASIS.key,{handler:this.configEmphasis,value:DEFAULT_CONFIG.EMPHASIS.value,validator:DEFAULT_CONFIG.EMPHASIS.validator,suppressEvent:DEFAULT_CONFIG.EMPHASIS.suppressEvent});oConfig.addProperty(DEFAULT_CONFIG.STRONG_EMPHASIS.key,{handler:this.configStrongEmphasis,value:DEFAULT_CONFIG.STRONG_EMPHASIS.value,validator:DEFAULT_CONFIG.STRONG_EMPHASIS.validator,suppressEvent:DEFAULT_CONFIG.STRONG_EMPHASIS.suppressEvent});oConfig.addProperty(DEFAULT_CONFIG.CHECKED.key,{handler:this.configChecked,value:DEFAULT_CONFIG.CHECKED.value,validator:DEFAULT_CONFIG.CHECKED.validator,suppressEvent:DEFAULT_CONFIG.CHECKED.suppressEvent,supercedes:DEFAULT_CONFIG.CHECKED.supercedes});oConfig.addProperty(DEFAULT_CONFIG.DISABLED.key,{handler:this.configDisabled,value:DEFAULT_CONFIG.DISABLED.value,validator:DEFAULT_CONFIG.DISABLED.validator,suppressEvent:DEFAULT_CONFIG.DISABLED.suppressEvent});oConfig.addProperty(DEFAULT_CONFIG.SELECTED.key,{handler:this.configSelected,value:DEFAULT_CONFIG.SELECTED.value,validator:DEFAULT_CONFIG.SELECTED.validator,suppressEvent:DEFAULT_CONFIG.SELECTED.suppressEvent});oConfig.addProperty(DEFAULT_CONFIG.SUBMENU.key,{handler:this.configSubmenu});oConfig.addProperty(DEFAULT_CONFIG.ONCLICK.key,{handler:this.configOnClick});oConfig.addProperty(DEFAULT_CONFIG.CLASS_NAME.key,{handler:this.configClassName,value:DEFAULT_CONFIG.CLASS_NAME.value,validator:DEFAULT_CONFIG.CLASS_NAME.validator});},getNextEnabledSibling:function(){if(this.parent instanceof Menu){var nGroupIndex=this.groupIndex;function getNextArrayItem(p_aArray,p_nStartIndex){return p_aArray[p_nStartIndex]||getNextArrayItem(p_aArray,(p_nStartIndex+1));} -var aItemGroups=this.parent.getItemGroups(),oNextItem;if(this.index<(aItemGroups[nGroupIndex].length-1)){oNextItem=getNextArrayItem(aItemGroups[nGroupIndex],(this.index+1));} -else{var nNextGroupIndex;if(nGroupIndex<(aItemGroups.length-1)){nNextGroupIndex=nGroupIndex+1;} -else{nNextGroupIndex=0;} -var aNextGroup=getNextArrayItem(aItemGroups,nNextGroupIndex);oNextItem=getNextArrayItem(aNextGroup,0);} -return(oNextItem.cfg.getProperty("disabled")||oNextItem.element.style.display=="none")?oNextItem.getNextEnabledSibling():oNextItem;}},getPreviousEnabledSibling:function(){if(this.parent instanceof Menu){var nGroupIndex=this.groupIndex;function getPreviousArrayItem(p_aArray,p_nStartIndex){return p_aArray[p_nStartIndex]||getPreviousArrayItem(p_aArray,(p_nStartIndex-1));} -function getFirstItemIndex(p_aArray,p_nStartIndex){return p_aArray[p_nStartIndex]?p_nStartIndex:getFirstItemIndex(p_aArray,(p_nStartIndex+1));} -var aItemGroups=this.parent.getItemGroups(),oPreviousItem;if(this.index>getFirstItemIndex(aItemGroups[nGroupIndex],0)){oPreviousItem=getPreviousArrayItem(aItemGroups[nGroupIndex],(this.index-1));} -else{var nPreviousGroupIndex;if(nGroupIndex>getFirstItemIndex(aItemGroups,0)){nPreviousGroupIndex=nGroupIndex-1;} -else{nPreviousGroupIndex=aItemGroups.length-1;} -var aPreviousGroup=getPreviousArrayItem(aItemGroups,nPreviousGroupIndex);oPreviousItem=getPreviousArrayItem(aPreviousGroup,(aPreviousGroup.length-1));} -return(oPreviousItem.cfg.getProperty("disabled")||oPreviousItem.element.style.display=="none")?oPreviousItem.getPreviousEnabledSibling():oPreviousItem;}},focus:function(){var oParent=this.parent,oAnchor=this._oAnchor,oActiveItem=oParent.activeItem,me=this;function setFocus(){try{if((me.browser=="ie"||me.browser=="ie7")&&!document.hasFocus()){return;} -oAnchor.focus();} -catch(e){}} -if(!this.cfg.getProperty("disabled")&&oParent&&oParent.cfg.getProperty("visible")&&this.element.style.display!="none"){if(oActiveItem){oActiveItem.blur();} -window.setTimeout(setFocus,0);this.focusEvent.fire();}},blur:function(){var oParent=this.parent;if(!this.cfg.getProperty("disabled")&&oParent&&Dom.getStyle(oParent.element,"visibility")=="visible"){this._oAnchor.blur();this.blurEvent.fire();}},hasFocus:function(){return(YAHOO.widget.MenuManager.getFocusedMenuItem()==this);},destroy:function(){var oEl=this.element;if(oEl){var oSubmenu=this.cfg.getProperty("submenu");if(oSubmenu){oSubmenu.destroy();} -this.mouseOverEvent.unsubscribeAll();this.mouseOutEvent.unsubscribeAll();this.mouseDownEvent.unsubscribeAll();this.mouseUpEvent.unsubscribeAll();this.clickEvent.unsubscribeAll();this.keyPressEvent.unsubscribeAll();this.keyDownEvent.unsubscribeAll();this.keyUpEvent.unsubscribeAll();this.focusEvent.unsubscribeAll();this.blurEvent.unsubscribeAll();this.cfg.configChangedEvent.unsubscribeAll();var oParentNode=oEl.parentNode;if(oParentNode){oParentNode.removeChild(oEl);this.destroyEvent.fire();} -this.destroyEvent.unsubscribeAll();}},toString:function(){var sReturnVal="MenuItem";if(this.cfg&&this.cfg.getProperty("text")){sReturnVal+=(": "+this.cfg.getProperty("text"));} -return sReturnVal;}};})();YAHOO.widget.ContextMenu=function(p_oElement,p_oConfig){YAHOO.widget.ContextMenu.superclass.constructor.call(this,p_oElement,p_oConfig);};YAHOO.widget.ContextMenu._EVENT_TYPES={"TRIGGER_CONTEXT_MENU":"triggerContextMenu","CONTEXT_MENU":((YAHOO.widget.Module.prototype.browser=="opera"?"mousedown":"contextmenu")),"CLICK":"click"};YAHOO.widget.ContextMenu._DEFAULT_CONFIG={"TRIGGER":{key:"trigger"}};YAHOO.lang.extend(YAHOO.widget.ContextMenu,YAHOO.widget.Menu,{_oTrigger:null,_bCancelled:false,contextEventTarget:null,triggerContextMenuEvent:null,init:function(p_oElement,p_oConfig){if(!this.ITEM_TYPE){this.ITEM_TYPE=YAHOO.widget.ContextMenuItem;} -YAHOO.widget.ContextMenu.superclass.init.call(this,p_oElement);this.beforeInitEvent.fire(YAHOO.widget.ContextMenu);if(p_oConfig){this.cfg.applyConfig(p_oConfig,true);} -this.initEvent.fire(YAHOO.widget.ContextMenu);},initEvents:function(){YAHOO.widget.ContextMenu.superclass.initEvents.call(this);this.triggerContextMenuEvent=new YAHOO.util.CustomEvent(YAHOO.widget.ContextMenu._EVENT_TYPES.TRIGGER_CONTEXT_MENU,this);},cancel:function(){this._bCancelled=true;},_removeEventHandlers:function(){var Event=YAHOO.util.Event,oTrigger=this._oTrigger;if(oTrigger){Event.removeListener(oTrigger,YAHOO.widget.ContextMenu._EVENT_TYPES.CONTEXT_MENU,this._onTriggerContextMenu);if(this.browser=="opera"){Event.removeListener(oTrigger,YAHOO.widget.ContextMenu._EVENT_TYPES.CLICK,this._onTriggerClick);}}},_onTriggerClick:function(p_oEvent,p_oMenu){if(p_oEvent.ctrlKey){YAHOO.util.Event.stopEvent(p_oEvent);}},_onTriggerContextMenu:function(p_oEvent,p_oMenu){var Event=YAHOO.util.Event;if(p_oEvent.type=="mousedown"&&!p_oEvent.ctrlKey){return;} -Event.stopEvent(p_oEvent);YAHOO.widget.MenuManager.hideVisible();this.contextEventTarget=Event.getTarget(p_oEvent);this.triggerContextMenuEvent.fire(p_oEvent);if(!this._bCancelled){this.cfg.setProperty("xy",Event.getXY(p_oEvent));this.show();} -this._bCancelled=false;},toString:function(){var sReturnVal="ContextMenu",sId=this.id;if(sId){sReturnVal+=(" "+sId);} -return sReturnVal;},initDefaultConfig:function(){YAHOO.widget.ContextMenu.superclass.initDefaultConfig.call(this);this.cfg.addProperty(YAHOO.widget.ContextMenu._DEFAULT_CONFIG.TRIGGER.key,{handler:this.configTrigger});},destroy:function(){this._removeEventHandlers();YAHOO.widget.ContextMenu.superclass.destroy.call(this);},configTrigger:function(p_sType,p_aArgs,p_oMenu){var Event=YAHOO.util.Event,oTrigger=p_aArgs[0];if(oTrigger){if(this._oTrigger){this._removeEventHandlers();} -this._oTrigger=oTrigger;Event.on(oTrigger,YAHOO.widget.ContextMenu._EVENT_TYPES.CONTEXT_MENU,this._onTriggerContextMenu,this,true);if(this.browser=="opera"){Event.on(oTrigger,YAHOO.widget.ContextMenu._EVENT_TYPES.CLICK,this._onTriggerClick,this,true);}} -else{this._removeEventHandlers();}}});YAHOO.widget.ContextMenuItem=function(p_oObject,p_oConfig){YAHOO.widget.ContextMenuItem.superclass.constructor.call(this,p_oObject,p_oConfig);};YAHOO.lang.extend(YAHOO.widget.ContextMenuItem,YAHOO.widget.MenuItem,{init:function(p_oObject,p_oConfig){if(!this.SUBMENU_TYPE){this.SUBMENU_TYPE=YAHOO.widget.ContextMenu;} -YAHOO.widget.ContextMenuItem.superclass.init.call(this,p_oObject);var oConfig=this.cfg;if(p_oConfig){oConfig.applyConfig(p_oConfig,true);} -oConfig.fireQueue();},toString:function(){var sReturnVal="ContextMenuItem";if(this.cfg&&this.cfg.getProperty("text")){sReturnVal+=(": "+this.cfg.getProperty("text"));} -return sReturnVal;}});YAHOO.widget.MenuBar=function(p_oElement,p_oConfig){YAHOO.widget.MenuBar.superclass.constructor.call(this,p_oElement,p_oConfig);};YAHOO.widget.MenuBar._DEFAULT_CONFIG={"POSITION":{key:"position",value:"static",validator:YAHOO.widget.Menu._checkPosition,supercedes:["visible"]},"SUBMENU_ALIGNMENT":{key:"submenualignment",value:["tl","bl"]},"AUTO_SUBMENU_DISPLAY":{key:"autosubmenudisplay",value:false,validator:YAHOO.lang.isBoolean}};YAHOO.lang.extend(YAHOO.widget.MenuBar,YAHOO.widget.Menu,{init:function(p_oElement,p_oConfig){if(!this.ITEM_TYPE){this.ITEM_TYPE=YAHOO.widget.MenuBarItem;} -YAHOO.widget.MenuBar.superclass.init.call(this,p_oElement);this.beforeInitEvent.fire(YAHOO.widget.MenuBar);if(p_oConfig){this.cfg.applyConfig(p_oConfig,true);} -this.initEvent.fire(YAHOO.widget.MenuBar);},CSS_CLASS_NAME:"yuimenubar",_onKeyDown:function(p_sType,p_aArgs,p_oMenuBar){var Event=YAHOO.util.Event,oEvent=p_aArgs[0],oItem=p_aArgs[1],oSubmenu;if(oItem&&!oItem.cfg.getProperty("disabled")){var oItemCfg=oItem.cfg;switch(oEvent.keyCode){case 37:case 39:if(oItem==this.activeItem&&!oItemCfg.getProperty("selected")){oItemCfg.setProperty("selected",true);} -else{var oNextItem=(oEvent.keyCode==37)?oItem.getPreviousEnabledSibling():oItem.getNextEnabledSibling();if(oNextItem){this.clearActiveItem();oNextItem.cfg.setProperty("selected",true);if(this.cfg.getProperty("autosubmenudisplay")){oSubmenu=oNextItem.cfg.getProperty("submenu");if(oSubmenu){oSubmenu.show();}} -oNextItem.focus();}} -Event.preventDefault(oEvent);break;case 40:if(this.activeItem!=oItem){this.clearActiveItem();oItemCfg.setProperty("selected",true);oItem.focus();} -oSubmenu=oItemCfg.getProperty("submenu");if(oSubmenu){if(oSubmenu.cfg.getProperty("visible")){oSubmenu.setInitialSelection();oSubmenu.setInitialFocus();} -else{oSubmenu.show();}} -Event.preventDefault(oEvent);break;}} -if(oEvent.keyCode==27&&this.activeItem){oSubmenu=this.activeItem.cfg.getProperty("submenu");if(oSubmenu&&oSubmenu.cfg.getProperty("visible")){oSubmenu.hide();this.activeItem.focus();} -else{this.activeItem.cfg.setProperty("selected",false);this.activeItem.blur();} -Event.preventDefault(oEvent);}},_onClick:function(p_sType,p_aArgs,p_oMenuBar){YAHOO.widget.MenuBar.superclass._onClick.call(this,p_sType,p_aArgs,p_oMenuBar);var oItem=p_aArgs[1];if(oItem&&!oItem.cfg.getProperty("disabled")){var Event=YAHOO.util.Event,Dom=YAHOO.util.Dom,oEvent=p_aArgs[0],oTarget=Event.getTarget(oEvent),oActiveItem=this.activeItem,oConfig=this.cfg;if(oActiveItem&&oActiveItem!=oItem){this.clearActiveItem();} -oItem.cfg.setProperty("selected",true);var oSubmenu=oItem.cfg.getProperty("submenu");if(oSubmenu&&oTarget!=oItem.submenuIndicator){if(oSubmenu.cfg.getProperty("visible")){oSubmenu.hide();} -else{oSubmenu.show();}}}},toString:function(){var sReturnVal="MenuBar",sId=this.id;if(sId){sReturnVal+=(" "+sId);} -return sReturnVal;},initDefaultConfig:function(){YAHOO.widget.MenuBar.superclass.initDefaultConfig.call(this);var oConfig=this.cfg,DEFAULT_CONFIG=YAHOO.widget.MenuBar._DEFAULT_CONFIG;oConfig.addProperty(DEFAULT_CONFIG.POSITION.key,{handler:this.configPosition,value:DEFAULT_CONFIG.POSITION.value,validator:DEFAULT_CONFIG.POSITION.validator,supercedes:DEFAULT_CONFIG.POSITION.supercedes});oConfig.addProperty(DEFAULT_CONFIG.SUBMENU_ALIGNMENT.key,{value:DEFAULT_CONFIG.SUBMENU_ALIGNMENT.value});oConfig.addProperty(DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.key,{value:DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.value,validator:DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.validator});}});YAHOO.widget.MenuBarItem=function(p_oObject,p_oConfig){YAHOO.widget.MenuBarItem.superclass.constructor.call(this,p_oObject,p_oConfig);};YAHOO.lang.extend(YAHOO.widget.MenuBarItem,YAHOO.widget.MenuItem,{init:function(p_oObject,p_oConfig){if(!this.SUBMENU_TYPE){this.SUBMENU_TYPE=YAHOO.widget.Menu;} -YAHOO.widget.MenuBarItem.superclass.init.call(this,p_oObject);var oConfig=this.cfg;if(p_oConfig){oConfig.applyConfig(p_oConfig,true);} -oConfig.fireQueue();},CSS_CLASS_NAME:"yuimenubaritem",toString:function(){var sReturnVal="MenuBarItem";if(this.cfg&&this.cfg.getProperty("text")){sReturnVal+=(": "+this.cfg.getProperty("text"));} -return sReturnVal;}});YAHOO.register("menu",YAHOO.widget.Menu,{version:"2.2.2",build:"204"}); \ No newline at end of file diff --git a/www/extras/yui/build/menu/menu.js b/www/extras/yui/build/menu/menu.js deleted file mode 100644 index e6f6b7c7d..000000000 --- a/www/extras/yui/build/menu/menu.js +++ /dev/null @@ -1,8726 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ - - -/** -* @module menu -* @description

        The Menu family of components features a collection of -* controls that make it easy to add menus to your website or web application. -* With the Menu Controls you can create website fly-out menus, customized -* context menus, or application-style menu bars with just a small amount of -* scripting.

        The Menu family of controls features:

        -*
          -*
        • Screen-reader accessibility.
        • -*
        • Keyboard and mouse navigation.
        • -*
        • A rich event model that provides access to all of a menu's -* interesting moments.
        • -*
        • Support for -* Progressive -* Enhancement; Menus can be created from simple, -* semantic markup on the page or purely through JavaScript.
        • -*
        -* @title Menu -* @namespace YAHOO.widget -* @requires Event, Dom, Container -*/ -(function() { - -var Dom = YAHOO.util.Dom, - Event = YAHOO.util.Event; - - -/** -* Singleton that manages a collection of all menus and menu items. Listens for -* DOM events at the document level and dispatches the events to the -* corresponding menu or menu item. -* -* @namespace YAHOO.widget -* @class MenuManager -* @static -*/ -YAHOO.widget.MenuManager = function() { - - // Private member variables - - - // Flag indicating if the DOM event handlers have been attached - - var m_bInitializedEventHandlers = false, - - - // Collection of menus - - m_oMenus = {}, - - - // Collection of menu items - - m_oItems = {}, - - - // Collection of visible menus - - m_oVisibleMenus = {}, - - - // Map of DOM event types to their equivalent CustomEvent types - - m_oEventTypes = { - "click": "clickEvent", - "mousedown": "mouseDownEvent", - "mouseup": "mouseUpEvent", - "mouseover": "mouseOverEvent", - "mouseout": "mouseOutEvent", - "keydown": "keyDownEvent", - "keyup": "keyUpEvent", - "keypress": "keyPressEvent" - }, - - - m_oFocusedMenuItem = null; - - - - - // Private methods - - - /** - * @method addItem - * @description Adds an item to the collection of known menu items. - * @private - * @param {YAHOO.widget.MenuItem} p_oItem Object specifying the MenuItem - * instance to be added. - */ - function addItem(p_oItem) { - - var sId = p_oItem.id; - - if(p_oItem && m_oItems[sId] != p_oItem) { - - m_oItems[sId] = p_oItem; - - p_oItem.destroyEvent.subscribe(onItemDestroy); - - - } - - } - - - /** - * @method removeItem - * @description Removes an item from the collection of known menu items. - * @private - * @param {YAHOO.widget.MenuItem} p_oItem Object specifying the MenuItem - * instance to be removed. - */ - function removeItem(p_oItem) { - - var sId = p_oItem.id; - - if(sId && m_oItems[sId]) { - - delete m_oItems[sId]; - - - } - - } - - - /** - * @method getMenuRootElement - * @description Finds the root DIV node of a menu or the root LI node of a - * menu item. - * @private - * @param {HTMLElement} p_oElement Object specifying - * an HTML element. - */ - function getMenuRootElement(p_oElement) { - - var oParentNode; - - if(p_oElement && p_oElement.tagName) { - - switch(p_oElement.tagName.toUpperCase()) { - - case "DIV": - - oParentNode = p_oElement.parentNode; - - // Check if the DIV is the inner "body" node of a menu - - if( - ( - Dom.hasClass(p_oElement, "hd") || - Dom.hasClass(p_oElement, "bd") || - Dom.hasClass(p_oElement, "ft") - ) - && - oParentNode && - oParentNode.tagName && - oParentNode.tagName.toUpperCase() == "DIV" - ) { - - return oParentNode; - - } - else { - - return p_oElement; - - } - - break; - - case "LI": - - return p_oElement; - - default: - - oParentNode = p_oElement.parentNode; - - if(oParentNode) { - - return getMenuRootElement(oParentNode); - - } - - break; - - } - - } - - } - - - - // Private event handlers - - - /** - * @method onDOMEvent - * @description Generic, global event handler for all of a menu's DOM-based - * events. This listens for events against the document object. If the - * target of a given event is a member of a menu or menu item's DOM, the - * instance's corresponding Custom Event is fired. - * @private - * @param {Event} p_oEvent Object representing the DOM event object passed - * back by the event utility (YAHOO.util.Event). - */ - function onDOMEvent(p_oEvent) { - - // Get the target node of the DOM event - - var oTarget = Event.getTarget(p_oEvent), - - - // See if the target of the event was a menu, or a menu item - - oElement = getMenuRootElement(oTarget), - oMenuItem, - oMenu; - - - if(oElement) { - - var sTagName = oElement.tagName.toUpperCase(); - - if(sTagName == "LI") { - - var sId = oElement.id; - - if(sId && m_oItems[sId]) { - - oMenuItem = m_oItems[sId]; - oMenu = oMenuItem.parent; - - } - - } - else if(sTagName == "DIV") { - - if(oElement.id) { - - oMenu = m_oMenus[oElement.id]; - - } - - } - - } - - - if(oMenu) { - - var sCustomEventType = m_oEventTypes[p_oEvent.type]; - - - // Fire the Custom Event that corresponds the current DOM event - - if(oMenuItem && !oMenuItem.cfg.getProperty("disabled")) { - - oMenuItem[sCustomEventType].fire(p_oEvent); - - - if (p_oEvent.type == "keyup" || p_oEvent.type == "mousedown") { - - if (m_oFocusedMenuItem != oMenuItem) { - - if(m_oFocusedMenuItem) { - - m_oFocusedMenuItem.blurEvent.fire(); - - } - - oMenuItem.focusEvent.fire(); - - } - - } - - } - - oMenu[sCustomEventType].fire(p_oEvent, oMenuItem); - - } - else if(p_oEvent.type == "mousedown") { - - if(m_oFocusedMenuItem) { - - m_oFocusedMenuItem.blurEvent.fire(); - - m_oFocusedMenuItem = null; - - } - - - /* - If the target of the event wasn't a menu, hide all - dynamically positioned menus - */ - - for(var i in m_oMenus) { - - if(YAHOO.lang.hasOwnProperty(m_oMenus,i)) { - - oMenu = m_oMenus[i]; - - if( - oMenu.cfg.getProperty("clicktohide") && - oMenu.cfg.getProperty("position") == "dynamic" - ) { - - oMenu.hide(); - - } - else { - - oMenu.clearActiveItem(true); - - } - - } - - } - - } - else if(p_oEvent.type == "keyup") { - - if(m_oFocusedMenuItem) { - - m_oFocusedMenuItem.blurEvent.fire(); - - m_oFocusedMenuItem = null; - - } - - } - - } - - - /** - * @method onMenuDestroy - * @description "destroy" event handler for a menu. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onMenuDestroy(p_sType, p_aArgs) { - - if(m_oMenus[this.id]) { - - delete m_oMenus[this.id]; - - - } - - } - - - /** - * @method onMenuFocus - * @description "focus" event handler for a MenuItem instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onMenuFocus(p_sType, p_aArgs) { - - var oItem = p_aArgs[0]; - - if (oItem) { - - m_oFocusedMenuItem = oItem; - - } - - } - - - /** - * @method onMenuBlur - * @description "blur" event handler for a MenuItem instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onMenuBlur(p_sType, p_aArgs) { - - m_oFocusedMenuItem = null; - - } - - - /** - * @method onItemDestroy - * @description "destroy" event handler for a MenuItem instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onItemDestroy(p_sType, p_aArgs) { - - var sId = this.id; - - if(sId && m_oItems[sId]) { - - delete m_oItems[sId]; - - } - - } - - - /** - * @method onMenuVisibleConfigChange - * @description Event handler for when the "visible" configuration property - * of a Menu instance changes. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onMenuVisibleConfigChange(p_sType, p_aArgs) { - - var bVisible = p_aArgs[0]; - - if(bVisible) { - - m_oVisibleMenus[this.id] = this; - - - } - else if(m_oVisibleMenus[this.id]) { - - delete m_oVisibleMenus[this.id]; - - - } - - } - - - /** - * @method onItemAdded - * @description "itemadded" event handler for a Menu instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onItemAdded(p_sType, p_aArgs) { - - addItem(p_aArgs[0]); - - } - - - /** - * @method onItemRemoved - * @description "itemremoved" event handler for a Menu instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onItemRemoved(p_sType, p_aArgs) { - - removeItem(p_aArgs[0]); - - } - - - - return { - - // Privileged methods - - - /** - * @method addMenu - * @description Adds a menu to the collection of known menus. - * @param {YAHOO.widget.Menu} p_oMenu Object specifying the Menu - * instance to be added. - */ - addMenu: function(p_oMenu) { - - if(p_oMenu && p_oMenu.id && !m_oMenus[p_oMenu.id]) { - - m_oMenus[p_oMenu.id] = p_oMenu; - - - if(!m_bInitializedEventHandlers) { - - var oDoc = document; - - Event.on(oDoc, "mouseover", onDOMEvent, this, true); - Event.on(oDoc, "mouseout", onDOMEvent, this, true); - Event.on(oDoc, "mousedown", onDOMEvent, this, true); - Event.on(oDoc, "mouseup", onDOMEvent, this, true); - Event.on(oDoc, "click", onDOMEvent, this, true); - Event.on(oDoc, "keydown", onDOMEvent, this, true); - Event.on(oDoc, "keyup", onDOMEvent, this, true); - Event.on(oDoc, "keypress", onDOMEvent, this, true); - - - m_bInitializedEventHandlers = true; - - - } - - p_oMenu.destroyEvent.subscribe(onMenuDestroy); - - p_oMenu.cfg.subscribeToConfigEvent( - "visible", - onMenuVisibleConfigChange - ); - - p_oMenu.itemAddedEvent.subscribe(onItemAdded); - p_oMenu.itemRemovedEvent.subscribe(onItemRemoved); - p_oMenu.focusEvent.subscribe(onMenuFocus); - p_oMenu.blurEvent.subscribe(onMenuBlur); - - - } - - }, - - - /** - * @method removeMenu - * @description Removes a menu from the collection of known menus. - * @param {YAHOO.widget.Menu} p_oMenu Object specifying the Menu - * instance to be removed. - */ - removeMenu: function(p_oMenu) { - - if(p_oMenu && m_oMenus[p_oMenu.id]) { - - delete m_oMenus[p_oMenu.id]; - - - } - - }, - - - /** - * @method hideVisible - * @description Hides all visible, dynamically positioned menus. - */ - hideVisible: function() { - - var oMenu; - - for(var i in m_oVisibleMenus) { - - if(YAHOO.lang.hasOwnProperty(m_oVisibleMenus,i)) { - - oMenu = m_oVisibleMenus[i]; - - if(oMenu.cfg.getProperty("position") == "dynamic") { - - oMenu.hide(); - - } - - } - - } - - }, - - - /** - * @method getMenus - * @description Returns an array of all menus registered with the - * menu manger. - * @return {Array} - */ - getMenus: function() { - - return m_oMenus; - - }, - - - /** - * @method getMenu - * @description Returns a menu with the specified id. - * @param {String} p_sId String specifying the id of the menu to - * be retrieved. - * @return {YAHOO.widget.Menu} - */ - getMenu: function(p_sId) { - - if(m_oMenus[p_sId]) { - - return m_oMenus[p_sId]; - - } - - }, - - - /** - * @method getFocusedMenuItem - * @description Returns a reference to the menu item that currently - * has focus. - * @return {YAHOO.widget.MenuItem} - */ - getFocusedMenuItem: function() { - - return m_oFocusedMenuItem; - - }, - - - /** - * @method getFocusedMenu - * @description Returns a reference to the menu that currently has focus. - * @return {YAHOO.widget.Menu} - */ - getFocusedMenu: function() { - - if(m_oFocusedMenuItem) { - - return (m_oFocusedMenuItem.parent.getRoot()); - - } - - }, - - - /** - * @method toString - * @description Returns a string representing the menu manager. - * @return {String} - */ - toString: function() { - - return ("MenuManager"); - - } - - }; - -}(); - -})(); - - - -/** -* The Menu class creates a container that holds a vertical list representing -* a set of options or commands. Menu is the base class for all -* menu containers. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source -* for the menu. -* @param {HTMLDivElement} p_oElement Object -* specifying the <div> element of the menu. -* @param {HTMLSelectElement} p_oElement -* Object specifying the <select> element to be used as -* the data source for the menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu. See configuration class documentation for -* more details. -* @namespace YAHOO.widget -* @class Menu -* @constructor -* @extends YAHOO.widget.Overlay -*/ -(function() { - -var Dom = YAHOO.util.Dom, - Event = YAHOO.util.Event, - CustomEvent = YAHOO.util.CustomEvent, - Lang = YAHOO.lang; - - -YAHOO.widget.Menu = function(p_oElement, p_oConfig) { - - if(p_oConfig) { - - this.parent = p_oConfig.parent; - this.lazyLoad = p_oConfig.lazyLoad || p_oConfig.lazyload; - this.itemData = p_oConfig.itemData || p_oConfig.itemdata; - - } - - - YAHOO.widget.Menu.superclass.constructor.call( - this, - p_oElement, - p_oConfig - ); - -}; - - -/** -* Constant representing the name of the Menu's events -* @property YAHOO.widget.Menu._EVENT_TYPES -* @private -* @final -* @type Object -*/ -YAHOO.widget.Menu._EVENT_TYPES = { - - "MOUSE_OVER": "mouseover", - "MOUSE_OUT": "mouseout", - "MOUSE_DOWN": "mousedown", - "MOUSE_UP": "mouseup", - "CLICK": "click", - "KEY_PRESS": "keypress", - "KEY_DOWN": "keydown", - "KEY_UP": "keyup", - "FOCUS": "focus", - "BLUR": "blur", - "ITEM_ADDED": "itemAdded", - "ITEM_REMOVED": "itemRemoved" - -}; - - - -/** -* @method _checkPosition -* @description Checks to make sure that the value of the "position" property -* is one of the supported strings. Returns true if the position is supported. -* @private -* @param {Object} p_sPosition String specifying the position of the menu. -* @return {Boolean} -*/ -YAHOO.widget.Menu._checkPosition = function(p_sPosition) { - - if(typeof p_sPosition == "string") { - - var sPosition = p_sPosition.toLowerCase(); - - return ("dynamic,static".indexOf(sPosition) != -1); - - } - -}; - - - -/** -* Constant representing the Menu's configuration properties -* @property YAHOO.widget.Menu._DEFAULT_CONFIG -* @private -* @final -* @type Object -*/ -YAHOO.widget.Menu._DEFAULT_CONFIG = { - - "VISIBLE": { - key: "visible", - value: false, - validator: Lang.isBoolean - }, - - "CONSTRAIN_TO_VIEWPORT": { - key: "constraintoviewport", - value: true, - validator: Lang.isBoolean, - supercedes: ["iframe","x","y","xy"] - }, - - "POSITION": { - key: "position", - value: "dynamic", - validator: YAHOO.widget.Menu._checkPosition, - supercedes: ["visible"] - }, - - "SUBMENU_ALIGNMENT": { - key: "submenualignment", - value: ["tl","tr"] - }, - - "AUTO_SUBMENU_DISPLAY": { - key: "autosubmenudisplay", - value: true, - validator: Lang.isBoolean - }, - - "SHOW_DELAY": { - key: "showdelay", - value: 250, - validator: Lang.isNumber - }, - - "HIDE_DELAY": { - key: "hidedelay", - value: 0, - validator: Lang.isNumber, - suppressEvent: true - }, - - "SUBMENU_HIDE_DELAY": { - key: "submenuhidedelay", - value: 250, - validator: Lang.isNumber - }, - - "CLICK_TO_HIDE": { - key: "clicktohide", - value: true, - validator: Lang.isBoolean - }, - - "CONTAINER": { - key: "container" - }, - - "MAX_HEIGHT": { - key: "maxheight", - value: 0, - validator: Lang.isNumber - }, - - "CLASS_NAME": { - key: "classname", - value: null, - validator: Lang.isString - } - -}; - - -YAHOO.lang.extend(YAHOO.widget.Menu, YAHOO.widget.Overlay, { - - -// Constants - - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the -* menu's <div> element. -* @default "yuimenu" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuimenu", - - -/** -* @property ITEM_TYPE -* @description Object representing the type of menu item to instantiate and -* add when parsing the child nodes (either <li> element, -* <optgroup> element or <option>) -* of the menu's source HTML element. -* @default YAHOO.widget.MenuItem -* @final -* @type YAHOO.widget.MenuItem -*/ -ITEM_TYPE: null, - - -/** -* @property GROUP_TITLE_TAG_NAME -* @description String representing the tagname of the HTML element used to -* title the menu's item groups. -* @default H6 -* @final -* @type String -*/ -GROUP_TITLE_TAG_NAME: "h6", - - - -// Private properties - - -/** -* @property _nHideDelayId -* @description Number representing the time-out setting used to cancel the -* hiding of a menu. -* @default null -* @private -* @type Number -*/ -_nHideDelayId: null, - - -/** -* @property _nShowDelayId -* @description Number representing the time-out setting used to cancel the -* showing of a menu. -* @default null -* @private -* @type Number -*/ -_nShowDelayId: null, - - -/** -* @property _nSubmenuHideDelayId -* @description Number representing the time-out setting used to cancel the -* hiding of a submenu. -* @default null -* @private -* @type Number -*/ -_nSubmenuHideDelayId: null, - - -/** -* @property _nBodyScrollId -* @description Number representing the time-out setting used to cancel the -* scrolling of the menu's body element. -* @default null -* @private -* @type Number -*/ -_nBodyScrollId: null, - - -/** -* @property _bHideDelayEventHandlersAssigned -* @description Boolean indicating if the "mouseover" and "mouseout" event -* handlers used for hiding the menu via a call to "window.setTimeout" have -* already been assigned. -* @default false -* @private -* @type Boolean -*/ -_bHideDelayEventHandlersAssigned: false, - - -/** -* @property _bHandledMouseOverEvent -* @description Boolean indicating the current state of the menu's -* "mouseover" event. -* @default false -* @private -* @type Boolean -*/ -_bHandledMouseOverEvent: false, - - -/** -* @property _bHandledMouseOutEvent -* @description Boolean indicating the current state of the menu's -* "mouseout" event. -* @default false -* @private -* @type Boolean -*/ -_bHandledMouseOutEvent: false, - - -/** -* @property _aGroupTitleElements -* @description Array of HTML element used to title groups of menu items. -* @default [] -* @private -* @type Array -*/ -_aGroupTitleElements: null, - - -/** -* @property _aItemGroups -* @description Multi-dimensional Array representing the menu items as they -* are grouped in the menu. -* @default [] -* @private -* @type Array -*/ -_aItemGroups: null, - - -/** -* @property _aListElements -* @description Array of <ul> elements, each of which is -* the parent node for each item's <li> element. -* @default [] -* @private -* @type Array -*/ -_aListElements: null, - - -/** -* @property _nCurrentMouseX -* @description The current x coordinate of the mouse inside the area of -* the menu. -* @default 0 -* @private -* @type Number -*/ -_nCurrentMouseX: 0, - - -/** -* @property _nMaxHeight -* @description The original value of the "maxheight" configuration property -* as set by the user. -* @default -1 -* @private -* @type Number -*/ -_nMaxHeight: -1, - - -/** -* @property _bStopMouseEventHandlers -* @description Stops "mouseover," "mouseout," and "mousemove" event handlers -* from executing. -* @default false -* @private -* @type Boolean -*/ -_bStopMouseEventHandlers: false, - - -/** -* @property _sClassName -* @description The current value of the "classname" configuration attribute. -* @default null -* @private -* @type String -*/ -_sClassName: null, - - - -// Public properties - - -/** -* @property lazyLoad -* @description Boolean indicating if the menu's "lazy load" feature is -* enabled. If set to "true," initialization and rendering of the menu's -* items will be deferred until the first time it is made visible. This -* property should be set via the constructor using the configuration -* object literal. -* @default false -* @type Boolean -*/ -lazyLoad: false, - - -/** -* @property itemData -* @description Array of items to be added to the menu. The array can contain -* strings representing the text for each item to be created, object literals -* representing the menu item configuration properties, or MenuItem instances. -* This property should be set via the constructor using the configuration -* object literal. -* @default null -* @type Array -*/ -itemData: null, - - -/** -* @property activeItem -* @description Object reference to the item in the menu that has is selected. -* @default null -* @type YAHOO.widget.MenuItem -*/ -activeItem: null, - - -/** -* @property parent -* @description Object reference to the menu's parent menu or menu item. -* This property can be set via the constructor using the configuration -* object literal. -* @default null -* @type YAHOO.widget.MenuItem -*/ -parent: null, - - -/** -* @property srcElement -* @description Object reference to the HTML element (either -* <select> or <div>) used to -* create the menu. -* @default null -* @type HTMLSelectElement|HTMLDivElement -*/ -srcElement: null, - - - -// Events - - -/** -* @event mouseOverEvent -* @description Fires when the mouse has entered the menu. Passes back -* the DOM Event object as an argument. -*/ -mouseOverEvent: null, - - -/** -* @event mouseOutEvent -* @description Fires when the mouse has left the menu. Passes back the DOM -* Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -mouseOutEvent: null, - - -/** -* @event mouseDownEvent -* @description Fires when the user mouses down on the menu. Passes back the -* DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -mouseDownEvent: null, - - -/** -* @event mouseUpEvent -* @description Fires when the user releases a mouse button while the mouse is -* over the menu. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -mouseUpEvent: null, - - -/** -* @event clickEvent -* @description Fires when the user clicks the on the menu. Passes back the -* DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -clickEvent: null, - - -/** -* @event keyPressEvent -* @description Fires when the user presses an alphanumeric key when one of the -* menu's items has focus. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -keyPressEvent: null, - - -/** -* @event keyDownEvent -* @description Fires when the user presses a key when one of the menu's items -* has focus. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -keyDownEvent: null, - - -/** -* @event keyUpEvent -* @description Fires when the user releases a key when one of the menu's items -* has focus. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -keyUpEvent: null, - - -/** -* @event itemAddedEvent -* @description Fires when an item is added to the menu. -* @type YAHOO.util.CustomEvent -*/ -itemAddedEvent: null, - - -/** -* @event itemRemovedEvent -* @description Fires when an item is removed to the menu. -* @type YAHOO.util.CustomEvent -*/ -itemRemovedEvent: null, - - -/** -* @method init -* @description The Menu class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references -* for pre-existing markup, and creates required markup if it is not -* already present. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source -* for the menu. -* @param {HTMLDivElement} p_oElement Object -* specifying the <div> element of the menu. -* @param {HTMLSelectElement} p_oElement -* Object specifying the <select> element to be used as -* the data source for the menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu. See configuration class documentation for -* more details. -*/ -init: function(p_oElement, p_oConfig) { - - this._aItemGroups = []; - this._aListElements = []; - this._aGroupTitleElements = []; - - if(!this.ITEM_TYPE) { - - this.ITEM_TYPE = YAHOO.widget.MenuItem; - - } - - - var oElement; - - if(typeof p_oElement == "string") { - - oElement = document.getElementById(p_oElement); - - } - else if(p_oElement.tagName) { - - oElement = p_oElement; - - } - - - if(oElement && oElement.tagName) { - - switch(oElement.tagName.toUpperCase()) { - - case "DIV": - - this.srcElement = oElement; - - if(!oElement.id) { - - oElement.setAttribute("id", Dom.generateId()); - - } - - - /* - Note: we don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.Menu.superclass.init.call(this, oElement); - - this.beforeInitEvent.fire(YAHOO.widget.Menu); - - - - break; - - case "SELECT": - - this.srcElement = oElement; - - - /* - The source element is not something that we can use - outright, so we need to create a new Overlay - - Note: we don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.Menu.superclass.init.call(this, Dom.generateId()); - - this.beforeInitEvent.fire(YAHOO.widget.Menu); - - - - break; - - } - - } - else { - - /* - Note: we don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.Menu.superclass.init.call(this, p_oElement); - - this.beforeInitEvent.fire(YAHOO.widget.Menu); - - - - } - - - if(this.element) { - - var oEl = this.element; - - Dom.addClass(oEl, this.CSS_CLASS_NAME); - - - // Subscribe to Custom Events - - this.initEvent.subscribe(this._onInit, this, true); - this.beforeRenderEvent.subscribe(this._onBeforeRender, this, true); - this.renderEvent.subscribe(this._onRender); - this.beforeShowEvent.subscribe(this._onBeforeShow, this, true); - this.showEvent.subscribe(this._onShow, this, true); - this.beforeHideEvent.subscribe(this._onBeforeHide, this, true); - this.hideEvent.subscribe(this._onHide, this, true); - this.mouseOverEvent.subscribe(this._onMouseOver, this, true); - this.mouseOutEvent.subscribe(this._onMouseOut, this, true); - this.clickEvent.subscribe(this._onClick, this, true); - this.keyDownEvent.subscribe(this._onKeyDown, this, true); - this.keyPressEvent.subscribe(this._onKeyPress, this, true); - - YAHOO.widget.Module.textResizeEvent.subscribe( - this._onTextResize, - this, - true - ); - - - if(p_oConfig) { - - this.cfg.applyConfig(p_oConfig, true); - - } - - - // Register the Menu instance with the MenuManager - - YAHOO.widget.MenuManager.addMenu(this); - - - this.initEvent.fire(YAHOO.widget.Menu); - - } - -}, - - - -// Private methods - - -/** -* @method _initSubTree -* @description Iterates the childNodes of the source element to find nodes -* used to instantiate menu and menu items. -* @private -*/ -_initSubTree: function() { - - var oNode; - - if(this.srcElement.tagName.toUpperCase() == "DIV") { - - /* - Populate the collection of item groups and item - group titles - */ - - oNode = this.body.firstChild; - - var nGroup = 0, - sGroupTitleTagName = this.GROUP_TITLE_TAG_NAME.toUpperCase(); - - do { - - if(oNode && oNode.tagName) { - - switch(oNode.tagName.toUpperCase()) { - - case sGroupTitleTagName: - - this._aGroupTitleElements[nGroup] = oNode; - - break; - - case "UL": - - this._aListElements[nGroup] = oNode; - this._aItemGroups[nGroup] = []; - nGroup++; - - break; - - } - - } - - } - while((oNode = oNode.nextSibling)); - - - /* - Apply the "first-of-type" class to the first UL to mimic - the "first-of-type" CSS3 psuedo class. - */ - - if(this._aListElements[0]) { - - Dom.addClass(this._aListElements[0], "first-of-type"); - - } - - } - - - oNode = null; - - - if(this.srcElement.tagName) { - - var sSrcElementTagName = this.srcElement.tagName.toUpperCase(); - - - switch(sSrcElementTagName) { - - case "DIV": - - if(this._aListElements.length > 0) { - - - var i = this._aListElements.length - 1; - - do { - - oNode = this._aListElements[i].firstChild; - - - do { - - if( - oNode && - oNode.tagName && - oNode.tagName.toUpperCase() == "LI" - ) { - - - this.addItem( - new this.ITEM_TYPE( - oNode, - { parent: this } - ), - i - ); - - } - - } - while((oNode = oNode.nextSibling)); - - } - while(i--); - - } - - break; - - case "SELECT": - - - oNode = this.srcElement.firstChild; - - do { - - if(oNode && oNode.tagName) { - - switch(oNode.tagName.toUpperCase()) { - - case "OPTGROUP": - case "OPTION": - - - this.addItem( - new this.ITEM_TYPE( - oNode, - { parent: this } - ) - ); - - break; - - } - - } - - } - while((oNode = oNode.nextSibling)); - - break; - - } - - } - -}, - - -/** -* @method _getFirstEnabledItem -* @description Returns the first enabled item in the menu. -* @return {YAHOO.widget.MenuItem} -* @private -*/ -_getFirstEnabledItem: function() { - - var aItems = this.getItems(), - nItems = aItems.length, - oItem; - - for(var i=0; i= aGroup.length); - - - if(aGroup[p_nItemIndex]) { - - aGroup.splice(p_nItemIndex, 0, oItem); - - } - else { - - aGroup[p_nItemIndex] = oItem; - - } - - - oGroupItem = aGroup[p_nItemIndex]; - - if(oGroupItem) { - - if( - bAppend && - ( - !oGroupItem.element.parentNode || - oGroupItem.element.parentNode.nodeType == 11 - ) - ) { - - this._aListElements[nGroupIndex].appendChild( - oGroupItem.element - ); - - } - else { - - function getNextItemSibling(p_aArray, p_nStartIndex) { - - return ( - p_aArray[p_nStartIndex] || - getNextItemSibling( - p_aArray, - (p_nStartIndex+1) - ) - ); - - } - - - var oNextItemSibling = - getNextItemSibling(aGroup, (p_nItemIndex+1)); - - if( - oNextItemSibling && - ( - !oGroupItem.element.parentNode || - oGroupItem.element.parentNode.nodeType == 11 - ) - ) { - - this._aListElements[nGroupIndex].insertBefore( - oGroupItem.element, - oNextItemSibling.element - ); - - } - - } - - - oGroupItem.parent = this; - - this._subscribeToItemEvents(oGroupItem); - - this._configureSubmenu(oGroupItem); - - this._updateItemProperties(nGroupIndex); - - - this.itemAddedEvent.fire(oGroupItem); - - return oGroupItem; - - } - - } - else { - - var nItemIndex = aGroup.length; - - aGroup[nItemIndex] = oItem; - - oGroupItem = aGroup[nItemIndex]; - - - if(oGroupItem) { - - if( - !Dom.isAncestor( - this._aListElements[nGroupIndex], - oGroupItem.element - ) - ) { - - this._aListElements[nGroupIndex].appendChild( - oGroupItem.element - ); - - } - - oGroupItem.element.setAttribute("groupindex", nGroupIndex); - oGroupItem.element.setAttribute("index", nItemIndex); - - oGroupItem.parent = this; - - oGroupItem.index = nItemIndex; - oGroupItem.groupIndex = nGroupIndex; - - this._subscribeToItemEvents(oGroupItem); - - this._configureSubmenu(oGroupItem); - - if(nItemIndex === 0) { - - Dom.addClass(oGroupItem.element, "first-of-type"); - - } - - - - this.itemAddedEvent.fire(oGroupItem); - - return oGroupItem; - - } - - } - - } - -}, - - -/** -* @method _removeItemFromGroupByIndex -* @description Removes a menu item from a group by index. Returns the menu -* item that was removed. -* @private -* @param {Number} p_nGroupIndex Number indicating the group to which the menu -* item belongs. -* @param {Number} p_nItemIndex Number indicating the index of the menu item -* to be removed. -* @return {YAHOO.widget.MenuItem} -*/ -_removeItemFromGroupByIndex: function(p_nGroupIndex, p_nItemIndex) { - - var nGroupIndex = typeof p_nGroupIndex == "number" ? p_nGroupIndex : 0, - aGroup = this._getItemGroup(nGroupIndex); - - if(aGroup) { - - var aArray = aGroup.splice(p_nItemIndex, 1), - oItem = aArray[0]; - - if(oItem) { - - // Update the index and className properties of each member - - this._updateItemProperties(nGroupIndex); - - if(aGroup.length === 0) { - - // Remove the UL - - var oUL = this._aListElements[nGroupIndex]; - - if(this.body && oUL) { - - this.body.removeChild(oUL); - - } - - // Remove the group from the array of items - - this._aItemGroups.splice(nGroupIndex, 1); - - - // Remove the UL from the array of ULs - - this._aListElements.splice(nGroupIndex, 1); - - - /* - Assign the "first-of-type" class to the new first UL - in the collection - */ - - oUL = this._aListElements[0]; - - if(oUL) { - - Dom.addClass(oUL, "first-of-type"); - - } - - } - - - this.itemRemovedEvent.fire(oItem); - - - // Return a reference to the item that was removed - - return oItem; - - } - - } - -}, - - -/** -* @method _removeItemFromGroupByValue -* @description Removes a menu item from a group by reference. Returns the -* menu item that was removed. -* @private -* @param {Number} p_nGroupIndex Number indicating the group to which the -* menu item belongs. -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance to be removed. -* @return {YAHOO.widget.MenuItem} -*/ -_removeItemFromGroupByValue: function(p_nGroupIndex, p_oItem) { - - var aGroup = this._getItemGroup(p_nGroupIndex); - - if(aGroup) { - - var nItems = aGroup.length, - nItemIndex = -1; - - if(nItems > 0) { - - var i = nItems-1; - - do { - - if(aGroup[i] == p_oItem) { - - nItemIndex = i; - break; - - } - - } - while(i--); - - if(nItemIndex > -1) { - - return this._removeItemFromGroupByIndex( - p_nGroupIndex, - nItemIndex - ); - - } - - } - - } - -}, - - -/** -* @method _updateItemProperties -* @description Updates the "index," "groupindex," and "className" properties -* of the menu items in the specified group. -* @private -* @param {Number} p_nGroupIndex Number indicating the group of items to update. -*/ -_updateItemProperties: function(p_nGroupIndex) { - - var aGroup = this._getItemGroup(p_nGroupIndex), - nItems = aGroup.length; - - if(nItems > 0) { - - var i = nItems - 1, - oItem, - oLI; - - // Update the index and className properties of each member - - do { - - oItem = aGroup[i]; - - if(oItem) { - - oLI = oItem.element; - - oItem.index = i; - oItem.groupIndex = p_nGroupIndex; - - oLI.setAttribute("groupindex", p_nGroupIndex); - oLI.setAttribute("index", i); - - Dom.removeClass(oLI, "first-of-type"); - - } - - } - while(i--); - - - if(oLI) { - - Dom.addClass(oLI, "first-of-type"); - - } - - } - -}, - - -/** -* @method _createItemGroup -* @description Creates a new menu item group (array) and its associated -* <ul> element. Returns an aray of menu item groups. -* @private -* @param {Number} p_nIndex Number indicating the group to create. -* @return {Array} -*/ -_createItemGroup: function(p_nIndex) { - - if(!this._aItemGroups[p_nIndex]) { - - this._aItemGroups[p_nIndex] = []; - - var oUL = document.createElement("ul"); - - this._aListElements[p_nIndex] = oUL; - - return this._aItemGroups[p_nIndex]; - - } - -}, - - -/** -* @method _getItemGroup -* @description Returns the menu item group at the specified index. -* @private -* @param {Number} p_nIndex Number indicating the index of the menu item group -* to be retrieved. -* @return {Array} -*/ -_getItemGroup: function(p_nIndex) { - - var nIndex = ((typeof p_nIndex == "number") ? p_nIndex : 0); - - return this._aItemGroups[nIndex]; - -}, - - -/** -* @method _configureSubmenu -* @description Subscribes the menu item's submenu to its parent menu's events. -* @private -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance with the submenu to be configured. -*/ -_configureSubmenu: function(p_oItem) { - - var oSubmenu = p_oItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - /* - Listen for configuration changes to the parent menu - so they they can be applied to the submenu. - */ - - this.cfg.configChangedEvent.subscribe( - this._onParentMenuConfigChange, - oSubmenu, - true - ); - - this.renderEvent.subscribe( - this._onParentMenuRender, - oSubmenu, - true - ); - - oSubmenu.beforeShowEvent.subscribe( - this._onSubmenuBeforeShow, - oSubmenu, - true - ); - - oSubmenu.showEvent.subscribe(this._onSubmenuShow, null, p_oItem); - oSubmenu.hideEvent.subscribe(this._onSubmenuHide, null, p_oItem); - - } - -}, - - -/** -* @method _subscribeToItemEvents -* @description Subscribes a menu to a menu item's event. -* @private -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance whose events should be subscribed to. -*/ -_subscribeToItemEvents: function(p_oItem) { - - p_oItem.focusEvent.subscribe(this._onMenuItemFocus); - - p_oItem.blurEvent.subscribe(this._onMenuItemBlur); - - p_oItem.cfg.configChangedEvent.subscribe( - this._onMenuItemConfigChange, - p_oItem, - this - ); - -}, - - -/** -* @method _getOffsetWidth -* @description Returns the offset width of the menu's -* <div> element. -* @private -*/ -_getOffsetWidth: function() { - - var oClone = this.element.cloneNode(true); - - Dom.setStyle(oClone, "width", ""); - - document.body.appendChild(oClone); - - var sWidth = oClone.offsetWidth; - - document.body.removeChild(oClone); - - return sWidth; - -}, - - -/** -* @method _setWidth -* @description Sets the width of the menu's root <div> -* element to its offsetWidth. -* @private -*/ -_setWidth: function() { - - var sWidth; - - if (this.element.parentNode.tagName.toUpperCase() == "BODY") { - - if (this.browser == "opera") { - - sWidth = this._getOffsetWidth(); - - } - else { - - Dom.setStyle(this.element, "width", "auto"); - - sWidth = this.element.offsetWidth; - - } - - } - else { - - sWidth = this._getOffsetWidth(); - - } - - this.cfg.setProperty("width", (sWidth + "px")); - -}, - - -/** -* @method _onWidthChange -* @description Change event handler for the the menu's "width" configuration -* property. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onWidthChange: function(p_sType, p_aArgs) { - - var sWidth = p_aArgs[0]; - - if (sWidth && !this._hasSetWidthHandlers) { - - this.itemAddedEvent.subscribe(this._setWidth); - this.itemRemovedEvent.subscribe(this._setWidth); - - this._hasSetWidthHandlers = true; - - } - else if (this._hasSetWidthHandlers) { - - this.itemAddedEvent.unsubscribe(this._setWidth); - this.itemRemovedEvent.unsubscribe(this._setWidth); - - this._hasSetWidthHandlers = false; - - } - -}, - - -/** -* @method _onVisibleChange -* @description Change event handler for the the menu's "visible" configuration -* property. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onVisibleChange: function(p_sType, p_aArgs) { - - var bVisible = p_aArgs[0]; - - if (bVisible) { - - Dom.addClass(this.element, "visible"); - - } - else { - - Dom.removeClass(this.element, "visible"); - - } - -}, - - -/** -* @method _cancelHideDelay -* @description Cancels the call to "hideMenu." -* @private -*/ -_cancelHideDelay: function() { - - var oRoot = this.getRoot(); - - if(oRoot._nHideDelayId) { - - window.clearTimeout(oRoot._nHideDelayId); - - } - -}, - - -/** -* @method _execHideDelay -* @description Hides the menu after the number of milliseconds specified by -* the "hidedelay" configuration property. -* @private -*/ -_execHideDelay: function() { - - this._cancelHideDelay(); - - var oRoot = this.getRoot(), - me = this; - - function hideMenu() { - - if(oRoot.activeItem) { - - oRoot.clearActiveItem(); - - } - - if(oRoot == me && me.cfg.getProperty("position") == "dynamic") { - - me.hide(); - - } - - } - - - oRoot._nHideDelayId = - window.setTimeout(hideMenu, oRoot.cfg.getProperty("hidedelay")); - -}, - - -/** -* @method _cancelShowDelay -* @description Cancels the call to the "showMenu." -* @private -*/ -_cancelShowDelay: function() { - - var oRoot = this.getRoot(); - - if(oRoot._nShowDelayId) { - - window.clearTimeout(oRoot._nShowDelayId); - - } - -}, - - -/** -* @method _execShowDelay -* @description Shows the menu after the number of milliseconds specified by -* the "showdelay" configuration property have ellapsed. -* @private -* @param {YAHOO.widget.Menu} p_oMenu Object specifying the menu that should -* be made visible. -*/ -_execShowDelay: function(p_oMenu) { - - var oRoot = this.getRoot(); - - function showMenu() { - - if(p_oMenu.parent.cfg.getProperty("selected")) { - - p_oMenu.show(); - - } - - } - - - oRoot._nShowDelayId = - window.setTimeout(showMenu, oRoot.cfg.getProperty("showdelay")); - -}, - - -/** -* @method _execSubmenuHideDelay -* @description Hides a submenu after the number of milliseconds specified by -* the "submenuhidedelay" configuration property have ellapsed. -* @private -* @param {YAHOO.widget.Menu} p_oSubmenu Object specifying the submenu that -* should be hidden. -* @param {Number} p_nMouseX The x coordinate of the mouse when it left -* the specified submenu's parent menu item. -* @param {Number} p_nHideDelay The number of milliseconds that should ellapse -* before the submenu is hidden. -*/ -_execSubmenuHideDelay: function(p_oSubmenu, p_nMouseX, p_nHideDelay) { - - var me = this; - - p_oSubmenu._nSubmenuHideDelayId = window.setTimeout(function () { - - if(me._nCurrentMouseX > (p_nMouseX + 10)) { - - p_oSubmenu._nSubmenuHideDelayId = window.setTimeout(function () { - - p_oSubmenu.hide(); - - }, p_nHideDelay); - - } - else { - - p_oSubmenu.hide(); - - } - - }, 50); - -}, - - - -// Protected methods - - -/** -* @method _disableScrollHeader -* @description Disables the header used for scrolling the body of the menu. -* @protected -*/ -_disableScrollHeader: function() { - - if(!this._bHeaderDisabled) { - - Dom.addClass(this.header, "topscrollbar_disabled"); - this._bHeaderDisabled = true; - - } - -}, - - -/** -* @method _disableScrollFooter -* @description Disables the footer used for scrolling the body of the menu. -* @protected -*/ -_disableScrollFooter: function() { - - if(!this._bFooterDisabled) { - - Dom.addClass(this.footer, "bottomscrollbar_disabled"); - this._bFooterDisabled = true; - - } - -}, - - -/** -* @method _enableScrollHeader -* @description Enables the header used for scrolling the body of the menu. -* @protected -*/ -_enableScrollHeader: function() { - - if(this._bHeaderDisabled) { - - Dom.removeClass(this.header, "topscrollbar_disabled"); - this._bHeaderDisabled = false; - - } - -}, - - -/** -* @method _enableScrollFooter -* @description Enables the footer used for scrolling the body of the menu. -* @protected -*/ -_enableScrollFooter: function() { - - if(this._bFooterDisabled) { - - Dom.removeClass(this.footer, "bottomscrollbar_disabled"); - this._bFooterDisabled = false; - - } - -}, - - -/** -* @method _onMouseOver -* @description "mouseover" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onMouseOver: function(p_sType, p_aArgs, p_oMenu) { - - if(this._bStopMouseEventHandlers) { - - return false; - - } - - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oTarget = Event.getTarget(oEvent); - - - if( - !this._bHandledMouseOverEvent && - (oTarget == this.element || Dom.isAncestor(this.element, oTarget)) - ) { - - // Menu mouseover logic - - this._nCurrentMouseX = 0; - - Event.on( - this.element, - "mousemove", - this._onMouseMove, - this, - true - ); - - - this.clearActiveItem(); - - - if(this.parent && this._nSubmenuHideDelayId) { - - window.clearTimeout(this._nSubmenuHideDelayId); - - this.parent.cfg.setProperty("selected", true); - - var oParentMenu = this.parent.parent; - - oParentMenu._bHandledMouseOutEvent = true; - oParentMenu._bHandledMouseOverEvent = false; - - } - - - this._bHandledMouseOverEvent = true; - this._bHandledMouseOutEvent = false; - - } - - - if( - oItem && !oItem.handledMouseOverEvent && - !oItem.cfg.getProperty("disabled") && - (oTarget == oItem.element || Dom.isAncestor(oItem.element, oTarget)) - ) { - - // Menu Item mouseover logic - - var nShowDelay = this.cfg.getProperty("showdelay"), - bShowDelay = (nShowDelay > 0); - - - if(bShowDelay) { - - this._cancelShowDelay(); - - } - - - var oActiveItem = this.activeItem; - - if(oActiveItem) { - - oActiveItem.cfg.setProperty("selected", false); - - } - - - var oItemCfg = oItem.cfg; - - // Select and focus the current menu item - - oItemCfg.setProperty("selected", true); - - - if (this.hasFocus()) { - - oItem.focus(); - - } - - - if(this.cfg.getProperty("autosubmenudisplay")) { - - // Show the submenu this menu item - - var oSubmenu = oItemCfg.getProperty("submenu"); - - if(oSubmenu) { - - if(bShowDelay) { - - this._execShowDelay(oSubmenu); - - } - else { - - oSubmenu.show(); - - } - - } - - } - - oItem.handledMouseOverEvent = true; - oItem.handledMouseOutEvent = false; - - } - -}, - - -/** -* @method _onMouseOut -* @description "mouseout" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onMouseOut: function(p_sType, p_aArgs, p_oMenu) { - - if(this._bStopMouseEventHandlers) { - - return false; - - } - - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oRelatedTarget = Event.getRelatedTarget(oEvent), - bMovingToSubmenu = false; - - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg, - oSubmenu = oItemCfg.getProperty("submenu"); - - - if( - oSubmenu && - ( - oRelatedTarget == oSubmenu.element || - Dom.isAncestor(oSubmenu.element, oRelatedTarget) - ) - ) { - - bMovingToSubmenu = true; - - } - - - if( - !oItem.handledMouseOutEvent && - ( - ( - oRelatedTarget != oItem.element && - !Dom.isAncestor(oItem.element, oRelatedTarget) - ) || bMovingToSubmenu - ) - ) { - - // Menu Item mouseout logic - - if(!bMovingToSubmenu) { - - oItem.cfg.setProperty("selected", false); - - - if(oSubmenu) { - - var nSubmenuHideDelay = - this.cfg.getProperty("submenuhidedelay"), - - nShowDelay = this.cfg.getProperty("showdelay"); - - if( - !(this instanceof YAHOO.widget.MenuBar) && - nSubmenuHideDelay > 0 && - nShowDelay >= nSubmenuHideDelay - ) { - - this._execSubmenuHideDelay( - oSubmenu, - Event.getPageX(oEvent), - nSubmenuHideDelay - ); - - } - else { - - oSubmenu.hide(); - - } - - } - - } - - - oItem.handledMouseOutEvent = true; - oItem.handledMouseOverEvent = false; - - } - - } - - - if( - !this._bHandledMouseOutEvent && - ( - ( - oRelatedTarget != this.element && - !Dom.isAncestor(this.element, oRelatedTarget) - ) - || bMovingToSubmenu - ) - ) { - - // Menu mouseout logic - - Event.removeListener(this.element, "mousemove", this._onMouseMove); - - this._nCurrentMouseX = Event.getPageX(oEvent); - - this._bHandledMouseOutEvent = true; - this._bHandledMouseOverEvent = false; - - } - -}, - - -/** -* @method _onMouseMove -* @description "click" event handler for the menu. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onMouseMove: function(p_oEvent, p_oMenu) { - - if(this._bStopMouseEventHandlers) { - - return false; - - } - - this._nCurrentMouseX = Event.getPageX(p_oEvent); - -}, - - -/** -* @method _onClick -* @description "click" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onClick: function(p_sType, p_aArgs, p_oMenu) { - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oTarget = Event.getTarget(oEvent); - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg, - oSubmenu = oItemCfg.getProperty("submenu"); - - - /* - ACCESSIBILITY FEATURE FOR SCREEN READERS: - Expand/collapse the submenu when the user clicks - on the submenu indicator image. - */ - - if(oTarget == oItem.submenuIndicator && oSubmenu) { - - if(oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - - oSubmenu.parent.focus(); - - } - else { - - this.clearActiveItem(); - - oItem.cfg.setProperty("selected", true); - - oSubmenu.show(); - - oSubmenu.setInitialFocus(); - - } - - } - else { - - var sURL = oItemCfg.getProperty("url"), - bCurrentPageURL = (sURL.substr((sURL.length-1),1) == "#"), - sTarget = oItemCfg.getProperty("target"), - bHasTarget = (sTarget && sTarget.length > 0); - - /* - Prevent the browser from following links - equal to "#" - */ - - if( - oTarget.tagName.toUpperCase() == "A" && - bCurrentPageURL && !bHasTarget - ) { - - Event.preventDefault(oEvent); - - oItem.focus(); - - } - - if( - oTarget.tagName.toUpperCase() != "A" && - !bCurrentPageURL && !bHasTarget - ) { - - /* - Follow the URL of the item regardless of - whether or not the user clicked specifically - on the anchor element. - */ - - document.location = sURL; - - } - - - /* - If the item doesn't navigate to a URL and it doesn't have - a submenu, then collapse the menu tree. - */ - - if(bCurrentPageURL && !oSubmenu) { - - var oRoot = this.getRoot(); - - if(oRoot.cfg.getProperty("position") == "static") { - - oRoot.clearActiveItem(); - - } - else if(oRoot.cfg.getProperty("clicktohide")) { - - oRoot.hide(); - - } - - } - - } - - } - -}, - - -/** -* @method _onKeyDown -* @description "keydown" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onKeyDown: function(p_sType, p_aArgs, p_oMenu) { - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - me = this, - oSubmenu; - - - /* - This function is called to prevent a bug in Firefox. In Firefox, - moving a DOM element into a stationary mouse pointer will cause the - browser to fire mouse events. This can result in the menu mouse - event handlers being called uncessarily, especially when menus are - moved into a stationary mouse pointer as a result of a - key event handler. - */ - function stopMouseEventHandlers() { - - me._bStopMouseEventHandlers = true; - - window.setTimeout(function() { - - me._bStopMouseEventHandlers = false; - - }, 10); - - } - - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg, - oParentItem = this.parent, - oRoot, - oNextItem; - - - switch(oEvent.keyCode) { - - case 38: // Up arrow - case 40: // Down arrow - - oNextItem = (oEvent.keyCode == 38) ? - oItem.getPreviousEnabledSibling() : - oItem.getNextEnabledSibling(); - - if(oNextItem) { - - this.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - oNextItem.focus(); - - - if(this.cfg.getProperty("maxheight") > 0) { - - var oBody = this.body; - - oBody.scrollTop = - - ( - oNextItem.element.offsetTop + - oNextItem.element.offsetHeight - ) - oBody.offsetHeight; - - - var nScrollTop = oBody.scrollTop, - nScrollTarget = - oBody.scrollHeight - oBody.offsetHeight; - - if(nScrollTop === 0) { - - this._disableScrollHeader(); - this._enableScrollFooter(); - - } - else if(nScrollTop == nScrollTarget) { - - this._enableScrollHeader(); - this._disableScrollFooter(); - - } - else { - - this._enableScrollHeader(); - this._enableScrollFooter(); - - } - - } - - } - - - Event.preventDefault(oEvent); - - stopMouseEventHandlers(); - - break; - - - case 39: // Right arrow - - oSubmenu = oItemCfg.getProperty("submenu"); - - if(oSubmenu) { - - if(!oItemCfg.getProperty("selected")) { - - oItemCfg.setProperty("selected", true); - - } - - oSubmenu.show(); - oSubmenu.setInitialFocus(); - oSubmenu.setInitialSelection(); - - } - else { - - oRoot = this.getRoot(); - - if(oRoot instanceof YAHOO.widget.MenuBar) { - - oNextItem = oRoot.activeItem.getNextEnabledSibling(); - - if(oNextItem) { - - oRoot.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - - oSubmenu = oNextItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.show(); - - } - - oNextItem.focus(); - - } - - } - - } - - - Event.preventDefault(oEvent); - - stopMouseEventHandlers(); - - break; - - - case 37: // Left arrow - - if(oParentItem) { - - var oParentMenu = oParentItem.parent; - - if(oParentMenu instanceof YAHOO.widget.MenuBar) { - - oNextItem = - oParentMenu.activeItem.getPreviousEnabledSibling(); - - if(oNextItem) { - - oParentMenu.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - - oSubmenu = oNextItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.show(); - - } - - oNextItem.focus(); - - } - - } - else { - - this.hide(); - - oParentItem.focus(); - - } - - } - - Event.preventDefault(oEvent); - - stopMouseEventHandlers(); - - break; - - } - - - } - - - if(oEvent.keyCode == 27) { // Esc key - - if(this.cfg.getProperty("position") == "dynamic") { - - this.hide(); - - if(this.parent) { - - this.parent.focus(); - - } - - } - else if(this.activeItem) { - - oSubmenu = this.activeItem.cfg.getProperty("submenu"); - - if(oSubmenu && oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - this.activeItem.focus(); - - } - else { - - this.activeItem.blur(); - this.activeItem.cfg.setProperty("selected", false); - - } - - } - - - Event.preventDefault(oEvent); - - } - -}, - - -/** -* @method _onKeyPress -* @description "keypress" event handler for a Menu instance. -* @protected -* @param {String} p_sType The name of the event that was fired. -* @param {Array} p_aArgs Collection of arguments sent when the event -* was fired. -* @param {YAHOO.widget.Menu} p_oMenu The Menu instance that fired the event. -*/ -_onKeyPress: function(p_sType, p_aArgs, p_oMenu) { - - var oEvent = p_aArgs[0]; - - - if(oEvent.keyCode == 40 || oEvent.keyCode == 38) { - - YAHOO.util.Event.preventDefault(oEvent); - - } - -}, - - -/** -* @method _onTextResize -* @description "textresize" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onTextResize: function(p_sType, p_aArgs, p_oMenu) { - - if(this.browser == "gecko" && !this._handleResize) { - - this._handleResize = true; - return; - - } - - - var oConfig = this.cfg; - - if(oConfig.getProperty("position") == "dynamic") { - - oConfig.setProperty("width", (this._getOffsetWidth() + "px")); - - } - -}, - - -/** -* @method _onScrollTargetMouseOver -* @description "mouseover" event handler for the menu's "header" and "footer" -* elements. Used to scroll the body of the menu up and down when the -* menu's "maxheight" configuration property is set to a value greater than 0. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onScrollTargetMouseOver: function(p_oEvent, p_oMenu) { - - this._cancelHideDelay(); - - var oTarget = Event.getTarget(p_oEvent), - oBody = this.body, - me = this, - nScrollTarget, - fnScrollFunction; - - - function scrollBodyDown() { - - var nScrollTop = oBody.scrollTop; - - - if(nScrollTop < nScrollTarget) { - - oBody.scrollTop = (nScrollTop + 1); - - me._enableScrollHeader(); - - } - else { - - oBody.scrollTop = nScrollTarget; - - window.clearInterval(me._nBodyScrollId); - - me._disableScrollFooter(); - - } - - } - - - function scrollBodyUp() { - - var nScrollTop = oBody.scrollTop; - - - if(nScrollTop > 0) { - - oBody.scrollTop = (nScrollTop - 1); - - me._enableScrollFooter(); - - } - else { - - oBody.scrollTop = 0; - - window.clearInterval(me._nBodyScrollId); - - me._disableScrollHeader(); - - } - - } - - - if(Dom.hasClass(oTarget, "hd")) { - - fnScrollFunction = scrollBodyUp; - - } - else { - - nScrollTarget = oBody.scrollHeight - oBody.offsetHeight; - - fnScrollFunction = scrollBodyDown; - - } - - - this._nBodyScrollId = window.setInterval(fnScrollFunction, 10); - -}, - - -/** -* @method _onScrollTargetMouseOut -* @description "mouseout" event handler for the menu's "header" and "footer" -* elements. Used to stop scrolling the body of the menu up and down when the -* menu's "maxheight" configuration property is set to a value greater than 0. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onScrollTargetMouseOut: function(p_oEvent, p_oMenu) { - - window.clearInterval(this._nBodyScrollId); - - this._cancelHideDelay(); - -}, - - - -// Private methods - - -/** -* @method _onInit -* @description "init" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onInit: function(p_sType, p_aArgs, p_oMenu) { - - this.cfg.subscribeToConfigEvent("width", this._onWidthChange); - this.cfg.subscribeToConfigEvent("visible", this._onVisibleChange); - - if( - ( - (this.parent && !this.lazyLoad) || - (!this.parent && this.cfg.getProperty("position") == "static") || - ( - !this.parent && - !this.lazyLoad && - this.cfg.getProperty("position") == "dynamic" - ) - ) && - this.getItemGroups().length === 0 - ) { - - if(this.srcElement) { - - this._initSubTree(); - - } - - - if(this.itemData) { - - this.addItems(this.itemData); - - } - - } - else if(this.lazyLoad) { - - this.cfg.fireQueue(); - - } - -}, - - -/** -* @method _onBeforeRender -* @description "beforerender" event handler for the menu. Appends all of the -* <ul>, <li> and their accompanying -* title elements to the body element of the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onBeforeRender: function(p_sType, p_aArgs, p_oMenu) { - - var oConfig = this.cfg, - oEl = this.element, - nListElements = this._aListElements.length; - - - if(nListElements > 0) { - - var i = 0, - bFirstList = true, - oUL, - oGroupTitle; - - - do { - - oUL = this._aListElements[i]; - - if(oUL) { - - if(bFirstList) { - - Dom.addClass(oUL, "first-of-type"); - bFirstList = false; - - } - - - if(!Dom.isAncestor(oEl, oUL)) { - - this.appendToBody(oUL); - - } - - - oGroupTitle = this._aGroupTitleElements[i]; - - if(oGroupTitle) { - - if(!Dom.isAncestor(oEl, oGroupTitle)) { - - oUL.parentNode.insertBefore(oGroupTitle, oUL); - - } - - - Dom.addClass(oUL, "hastitle"); - - } - - } - - i++; - - } - while(i < nListElements); - - } - -}, - - -/** -* @method _onRender -* @description "render" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onRender: function(p_sType, p_aArgs) { - - if ( - this.cfg.getProperty("position") == "dynamic" && - !this.cfg.getProperty("width") - ) { - - this._setWidth(); - - } - -}, - - -/** -* @method _onBeforeShow -* @description "beforeshow" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onBeforeShow: function(p_sType, p_aArgs, p_oMenu) { - - if(this.lazyLoad && this.getItemGroups().length === 0) { - - if(this.srcElement) { - - this._initSubTree(); - - } - - - if(this.itemData) { - - if( - this.parent && this.parent.parent && - this.parent.parent.srcElement && - this.parent.parent.srcElement.tagName.toUpperCase() == "SELECT" - ) { - - var nOptions = this.itemData.length; - - for(var n=0; n= nViewportHeight) { - - var nMaxHeight = this.cfg.getProperty("maxheight"); - - /* - Cache the original value for the "maxheight" configuration - property so that we can set it back when the menu is hidden. - */ - - this._nMaxHeight = nMaxHeight; - - this.cfg.setProperty("maxheight", (nViewportHeight - 20)); - - } - - - if(this.cfg.getProperty("maxheight") > 0) { - - var oBody = this.body; - - if(oBody.scrollTop > 0) { - - oBody.scrollTop = 0; - - } - - this._disableScrollHeader(); - this._enableScrollFooter(); - - } - - } - - -}, - - -/** -* @method _onShow -* @description "show" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired -* the event. -*/ -_onShow: function(p_sType, p_aArgs, p_oMenu) { - - var oParent = this.parent; - - if(oParent) { - - var oParentMenu = oParent.parent, - aParentAlignment = oParentMenu.cfg.getProperty("submenualignment"), - aAlignment = this.cfg.getProperty("submenualignment"); - - - if( - (aParentAlignment[0] != aAlignment[0]) && - (aParentAlignment[1] != aAlignment[1]) - ) { - - this.cfg.setProperty( - "submenualignment", - [ aParentAlignment[0], aParentAlignment[1] ] - ); - - } - - - if( - !oParentMenu.cfg.getProperty("autosubmenudisplay") && - oParentMenu.cfg.getProperty("position") == "static" - ) { - - oParentMenu.cfg.setProperty("autosubmenudisplay", true); - - - function disableAutoSubmenuDisplay(p_oEvent) { - - if( - p_oEvent.type == "mousedown" || - (p_oEvent.type == "keydown" && p_oEvent.keyCode == 27) - ) { - - /* - Set the "autosubmenudisplay" to "false" if the user - clicks outside the menu bar. - */ - - var oTarget = Event.getTarget(p_oEvent); - - if( - oTarget != oParentMenu.element || - !YAHOO.util.Dom.isAncestor(oParentMenu.element, oTarget) - ) { - - oParentMenu.cfg.setProperty( - "autosubmenudisplay", - false - ); - - Event.removeListener( - document, - "mousedown", - disableAutoSubmenuDisplay - ); - - Event.removeListener( - document, - "keydown", - disableAutoSubmenuDisplay - ); - - } - - } - - } - - Event.on(document, "mousedown", disableAutoSubmenuDisplay); - Event.on(document, "keydown", disableAutoSubmenuDisplay); - - } - - } - -}, - - -/** -* @method _onBeforeHide -* @description "beforehide" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired -* the event. -*/ -_onBeforeHide: function(p_sType, p_aArgs, p_oMenu) { - - var oActiveItem = this.activeItem; - - if(oActiveItem) { - - var oConfig = oActiveItem.cfg; - - oConfig.setProperty("selected", false); - - var oSubmenu = oConfig.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.hide(); - - } - - } - - if (this == this.getRoot()) { - - this.blur(); - - } - -}, - - -/** -* @method _onHide -* @description "hide" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired -* the event. -*/ -_onHide: function(p_sType, p_aArgs, p_oMenu) { - - if(this._nMaxHeight != -1) { - - this.cfg.setProperty("maxheight", this._nMaxHeight); - - this._nMaxHeight = -1; - - } - -}, - - -/** -* @method _onParentMenuConfigChange -* @description "configchange" event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onParentMenuConfigChange: function(p_sType, p_aArgs, p_oSubmenu) { - - var sPropertyName = p_aArgs[0][0], - oPropertyValue = p_aArgs[0][1]; - - switch(sPropertyName) { - - case "iframe": - case "constraintoviewport": - case "hidedelay": - case "showdelay": - case "submenuhidedelay": - case "clicktohide": - case "effect": - case "classname": - - p_oSubmenu.cfg.setProperty(sPropertyName, oPropertyValue); - - break; - - } - -}, - - -/** -* @method _onParentMenuRender -* @description "render" event handler for a submenu. Renders a -* submenu in response to the firing of its parent's "render" event. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onParentMenuRender: function(p_sType, p_aArgs, p_oSubmenu) { - - var oParentMenu = p_oSubmenu.parent.parent, - - oConfig = { - - constraintoviewport: - oParentMenu.cfg.getProperty("constraintoviewport"), - - xy: [0,0], - - clicktohide: oParentMenu.cfg.getProperty("clicktohide"), - - effect: oParentMenu.cfg.getProperty("effect"), - - showdelay: oParentMenu.cfg.getProperty("showdelay"), - - hidedelay: oParentMenu.cfg.getProperty("hidedelay"), - - submenuhidedelay: oParentMenu.cfg.getProperty("submenuhidedelay"), - - classname: oParentMenu.cfg.getProperty("classname") - - }; - - - /* - Only sync the "iframe" configuration property if the parent - menu's "position" configuration is the same. - */ - - if( - this.cfg.getProperty("position") == - oParentMenu.cfg.getProperty("position") - ) { - - oConfig.iframe = oParentMenu.cfg.getProperty("iframe"); - - } - - - p_oSubmenu.cfg.applyConfig(oConfig); - - - if(!this.lazyLoad) { - - var oLI = this.parent.element; - - if(this.element.parentNode == oLI) { - - this.render(); - - } - else { - - this.render(oLI); - - } - - } - -}, - - -/** -* @method _onSubmenuBeforeShow -* @description "beforeshow" event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onSubmenuBeforeShow: function(p_sType, p_aArgs, p_oSubmenu) { - - var oParent = this.parent, - aAlignment = oParent.parent.cfg.getProperty("submenualignment"); - - this.cfg.setProperty( - "context", - [oParent.element, aAlignment[0], aAlignment[1]] - ); - - - var nScrollTop = oParent.parent.body.scrollTop; - - if( - (this.browser == "gecko" || this.browser == "safari") - && nScrollTop > 0 - ) { - - this.cfg.setProperty("y", (this.cfg.getProperty("y") - nScrollTop)); - - } - -}, - - -/** -* @method _onSubmenuShow -* @description "show" event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onSubmenuShow: function(p_sType, p_aArgs) { - - this.submenuIndicator.firstChild.nodeValue = - this.EXPANDED_SUBMENU_INDICATOR_TEXT; - -}, - - -/** -* @method _onSubmenuHide -* @description "hide" Custom Event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onSubmenuHide: function(p_sType, p_aArgs) { - - this.submenuIndicator.firstChild.nodeValue = - this.COLLAPSED_SUBMENU_INDICATOR_TEXT; - -}, - - -/** -* @method _onMenuItemFocus -* @description "focus" event handler for the menu's items. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuItemFocus: function(p_sType, p_aArgs) { - - this.parent.focusEvent.fire(this); - -}, - - -/** -* @method _onMenuItemBlur -* @description "blur" event handler for the menu's items. -* @private -* @param {String} p_sType String representing the name of the event -* that was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuItemBlur: function(p_sType, p_aArgs) { - - this.parent.blurEvent.fire(this); - -}, - - -/** -* @method _onMenuItemConfigChange -* @description "configchange" event handler for the menu's items. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item -* that fired the event. -*/ -_onMenuItemConfigChange: function(p_sType, p_aArgs, p_oItem) { - - var sPropertyName = p_aArgs[0][0], - oPropertyValue = p_aArgs[0][1]; - - switch(sPropertyName) { - - case "selected": - - if (oPropertyValue === true) { - - this.activeItem = p_oItem; - - } - - break; - - case "submenu": - - var oSubmenu = p_aArgs[0][1]; - - if(oSubmenu) { - - this._configureSubmenu(p_oItem); - - } - - break; - - case "text": - case "helptext": - - /* - A change to an item's "text" or "helptext" - configuration properties requires the width of the parent - menu to be recalculated. - */ - - if(this.element.style.width) { - - var sWidth = this._getOffsetWidth() + "px"; - - Dom.setStyle(this.element, "width", sWidth); - - } - - break; - - } - -}, - - - -// Public event handlers for configuration properties - - -/** -* @method enforceConstraints -* @description The default event handler executed when the moveEvent is fired, -* if the "constraintoviewport" configuration property is set to true. -* @param {String} type The name of the event that was fired. -* @param {Array} args Collection of arguments sent when the -* event was fired. -* @param {Array} obj Array containing the current Menu instance -* and the item that fired the event. -*/ -enforceConstraints: function(type, args, obj) { - - if(this.parent && !(this.parent.parent instanceof YAHOO.widget.MenuBar)) { - - var oConfig = this.cfg, - pos = args[0], - - x = pos[0], - y = pos[1], - - offsetHeight = this.element.offsetHeight, - offsetWidth = this.element.offsetWidth, - - viewPortWidth = YAHOO.util.Dom.getViewportWidth(), - viewPortHeight = YAHOO.util.Dom.getViewportHeight(), - - scrollX = Math.max( - document.documentElement.scrollLeft, - document.body.scrollLeft - ), - - scrollY = Math.max( - document.documentElement.scrollTop, - document.body.scrollTop - ), - - nPadding = ( - this.parent && - this.parent.parent instanceof YAHOO.widget.MenuBar - ) ? 0 : 10, - - topConstraint = scrollY + nPadding, - leftConstraint = scrollX + nPadding, - bottomConstraint = - scrollY + viewPortHeight - offsetHeight - nPadding, - rightConstraint = scrollX + viewPortWidth - offsetWidth - nPadding, - - aContext = oConfig.getProperty("context"), - oContextElement = aContext ? aContext[0] : null; - - - if (x < 10) { - - x = leftConstraint; - - } else if ((x + offsetWidth) > viewPortWidth) { - - if( - oContextElement && - ((x - oContextElement.offsetWidth) > offsetWidth) - ) { - - x = (x - (oContextElement.offsetWidth + offsetWidth)); - - } - else { - - x = rightConstraint; - - } - - } - - if (y < 10) { - - y = topConstraint; - - } else if (y > bottomConstraint) { - - if(oContextElement && (y > offsetHeight)) { - - y = ((y + oContextElement.offsetHeight) - offsetHeight); - - } - else { - - y = bottomConstraint; - - } - - } - - oConfig.setProperty("x", x, true); - oConfig.setProperty("y", y, true); - oConfig.setProperty("xy", [x,y], true); - - } - -}, - - -/** -* @method configVisible -* @description Event handler for when the "visible" configuration property -* the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configVisible: function(p_sType, p_aArgs, p_oMenu) { - - if(this.cfg.getProperty("position") == "dynamic") { - - YAHOO.widget.Menu.superclass.configVisible.call( - this, - p_sType, - p_aArgs, - p_oMenu - ); - - } - else { - - var bVisible = p_aArgs[0], - sDisplay = Dom.getStyle(this.element, "display"); - - if(bVisible) { - - if(sDisplay != "block") { - this.beforeShowEvent.fire(); - Dom.setStyle(this.element, "display", "block"); - this.showEvent.fire(); - } - - } - else { - - if(sDisplay == "block") { - this.beforeHideEvent.fire(); - Dom.setStyle(this.element, "display", "none"); - this.hideEvent.fire(); - } - - } - - } - -}, - - -/** -* @method configPosition -* @description Event handler for when the "position" configuration property -* of the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configPosition: function(p_sType, p_aArgs, p_oMenu) { - - var sCSSPosition = p_aArgs[0] == "static" ? "static" : "absolute", - oCfg = this.cfg; - - Dom.setStyle(this.element, "position", sCSSPosition); - - - if(sCSSPosition == "static") { - - /* - Remove the iframe for statically positioned menus since it will - intercept mouse events. - */ - - oCfg.setProperty("iframe", false); - - - // Statically positioned menus are visible by default - - Dom.setStyle(this.element, "display", "block"); - - oCfg.setProperty("visible", true); - - } - else { - - /* - Even though the "visible" property is queued to - "false" by default, we need to set the "visibility" property to - "hidden" since Overlay's "configVisible" implementation checks the - element's "visibility" style property before deciding whether - or not to show an Overlay instance. - */ - - Dom.setStyle(this.element, "visibility", "hidden"); - - } - - - if(sCSSPosition == "absolute") { - - var nZIndex = oCfg.getProperty("zindex"); - - if(!nZIndex || nZIndex === 0) { - - nZIndex = this.parent ? - (this.parent.parent.cfg.getProperty("zindex") + 1) : 1; - - oCfg.setProperty("zindex", nZIndex); - - } - - } - -}, - - -/** -* @method configIframe -* @description Event handler for when the "iframe" configuration property of -* the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configIframe: function(p_sType, p_aArgs, p_oMenu) { - - if(this.cfg.getProperty("position") == "dynamic") { - - YAHOO.widget.Menu.superclass.configIframe.call( - this, - p_sType, - p_aArgs, - p_oMenu - ); - - } - -}, - - -/** -* @method configHideDelay -* @description Event handler for when the "hidedelay" configuration property -* of the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configHideDelay: function(p_sType, p_aArgs, p_oMenu) { - - var nHideDelay = p_aArgs[0], - oMouseOutEvent = this.mouseOutEvent, - oMouseOverEvent = this.mouseOverEvent, - oKeyDownEvent = this.keyDownEvent; - - if(nHideDelay > 0) { - - /* - Only assign event handlers once. This way the user change - the value for the hidedelay as many times as they want. - */ - - if(!this._bHideDelayEventHandlersAssigned) { - - oMouseOutEvent.subscribe(this._execHideDelay, this); - oMouseOverEvent.subscribe(this._cancelHideDelay, this, true); - oKeyDownEvent.subscribe(this._cancelHideDelay, this, true); - - this._bHideDelayEventHandlersAssigned = true; - - } - - } - else { - - oMouseOutEvent.unsubscribe(this._execHideDelay, this); - oMouseOverEvent.unsubscribe(this._cancelHideDelay, this); - oKeyDownEvent.unsubscribe(this._cancelHideDelay, this); - - this._bHideDelayEventHandlersAssigned = false; - - } - -}, - - -/** -* @method configContainer -* @description Event handler for when the "container" configuration property -of the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configContainer: function(p_sType, p_aArgs, p_oMenu) { - - var oElement = p_aArgs[0]; - - if(typeof oElement == 'string') { - - this.cfg.setProperty( - "container", - document.getElementById(oElement), - true - ); - - } - -}, - - -/** -* @method _setMaxHeight -* @description "renderEvent" handler used to defer the setting of the -* "maxheight" configuration property until the menu is rendered in lazy -* load scenarios. -* @param {String} p_sType The name of the event that was fired. -* @param {Array} p_aArgs Collection of arguments sent when the event -* was fired. -* @param {Number} p_nMaxHeight Number representing the value to set for the -* "maxheight" configuration property. -* @private -*/ -_setMaxHeight: function(p_sType, p_aArgs, p_nMaxHeight) { - - this.cfg.setProperty("maxheight", p_nMaxHeight); - this.renderEvent.unsubscribe(this._setMaxHeight); - -}, - - -/** -* @method configMaxHeight -* @description Event handler for when the "maxheight" configuration property of -* a Menu changes. -* @param {String} p_sType The name of the event that was fired. -* @param {Array} p_aArgs Collection of arguments sent when the event -* was fired. -* @param {YAHOO.widget.Menu} p_oMenu The Menu instance fired -* the event. -*/ -configMaxHeight: function(p_sType, p_aArgs, p_oMenu) { - - var nMaxHeight = p_aArgs[0], - oBody = this.body; - - - if(this.lazyLoad && !oBody) { - - this.renderEvent.unsubscribe(this._setMaxHeight); - - if(nMaxHeight > 0) { - - this.renderEvent.subscribe(this._setMaxHeight, nMaxHeight, this); - - } - - return; - - } - - Dom.setStyle(oBody, "height", "auto"); - Dom.setStyle(oBody, "overflow", "visible"); - - var oHeader = this.header, - oFooter = this.footer, - fnMouseOver = this._onScrollTargetMouseOver, - fnMouseOut = this._onScrollTargetMouseOut; - - - if((nMaxHeight > 0) && (oBody.offsetHeight > nMaxHeight)) { - - if(!this.cfg.getProperty("width")) { - - this._setWidth(); - - } - - if(!oHeader && !oFooter) { - - this.setHeader(" "); - this.setFooter(" "); - - oHeader = this.header; - oFooter = this.footer; - - Dom.addClass(oHeader, "topscrollbar"); - Dom.addClass(oFooter, "bottomscrollbar"); - - this.element.insertBefore(oHeader, oBody); - this.element.appendChild(oFooter); - - Event.on(oHeader, "mouseover", fnMouseOver, this, true); - Event.on(oHeader, "mouseout", fnMouseOut, this, true); - Event.on(oFooter, "mouseover", fnMouseOver, this, true); - Event.on(oFooter, "mouseout", fnMouseOut, this, true); - - } - - var nHeight = - - ( - nMaxHeight - - (this.footer.offsetHeight + this.header.offsetHeight) - ); - - Dom.setStyle(oBody, "height", (nHeight + "px")); - Dom.setStyle(oBody, "overflow", "hidden"); - - } - else if(oHeader && oFooter) { - - Dom.setStyle(oBody, "height", "auto"); - Dom.setStyle(oBody, "overflow", "visible"); - - Event.removeListener(oHeader, "mouseover", fnMouseOver); - Event.removeListener(oHeader, "mouseout", fnMouseOut); - Event.removeListener(oFooter, "mouseover", fnMouseOver); - Event.removeListener(oFooter, "mouseout", fnMouseOut); - - this.element.removeChild(oHeader); - this.element.removeChild(oFooter); - - this.header = null; - this.footer = null; - - } - -}, - - -/** -* @method configClassName -* @description Event handler for when the "classname" configuration property of -* a menu changes. -* @param {String} p_sType The name of the event that was fired. -* @param {Array} p_aArgs Collection of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu The Menu instance fired the event. -*/ -configClassName: function(p_sType, p_aArgs, p_oMenu) { - - var sClassName = p_aArgs[0]; - - if(this._sClassName) { - - Dom.removeClass(this.element, this._sClassName); - - } - - Dom.addClass(this.element, sClassName); - this._sClassName = sClassName; - -}, - - - -// Public methods - - - -/** -* @method initEvents -* @description Initializes the custom events for the menu. -*/ -initEvents: function() { - - YAHOO.widget.Menu.superclass.initEvents.call(this); - - // Create custom events - - var EVENT_TYPES = YAHOO.widget.Menu._EVENT_TYPES; - - this.mouseOverEvent = new CustomEvent(EVENT_TYPES.MOUSE_OVER, this); - this.mouseOutEvent = new CustomEvent(EVENT_TYPES.MOUSE_OUT, this); - this.mouseDownEvent = new CustomEvent(EVENT_TYPES.MOUSE_DOWN, this); - this.mouseUpEvent = new CustomEvent(EVENT_TYPES.MOUSE_UP, this); - this.clickEvent = new CustomEvent(EVENT_TYPES.CLICK, this); - this.keyPressEvent = new CustomEvent(EVENT_TYPES.KEY_PRESS, this); - this.keyDownEvent = new CustomEvent(EVENT_TYPES.KEY_DOWN, this); - this.keyUpEvent = new CustomEvent(EVENT_TYPES.KEY_UP, this); - this.focusEvent = new CustomEvent(EVENT_TYPES.FOCUS, this); - this.blurEvent = new CustomEvent(EVENT_TYPES.BLUR, this); - this.itemAddedEvent = new CustomEvent(EVENT_TYPES.ITEM_ADDED, this); - this.itemRemovedEvent = new CustomEvent(EVENT_TYPES.ITEM_REMOVED, this); - -}, - - -/** -* @method getRoot -* @description Finds the menu's root menu. -*/ -getRoot: function() { - - var oItem = this.parent; - - if(oItem) { - - var oParentMenu = oItem.parent; - - return oParentMenu ? oParentMenu.getRoot() : this; - - } - else { - - return this; - - } - -}, - - -/** -* @method toString -* @description Returns a string representing the menu. -* @return {String} -*/ -toString: function() { - - var sReturnVal = "Menu", - sId = this.id; - - if(sId) { - - sReturnVal += (" " + sId); - - } - - return sReturnVal; - -}, - - -/** -* @method setItemGroupTitle -* @description Sets the title of a group of menu items. -* @param {String} p_sGroupTitle String specifying the title of the group. -* @param {Number} p_nGroupIndex Optional. Number specifying the group to which -* the title belongs. -*/ -setItemGroupTitle: function(p_sGroupTitle, p_nGroupIndex) { - - if(typeof p_sGroupTitle == "string" && p_sGroupTitle.length > 0) { - - var nGroupIndex = typeof p_nGroupIndex == "number" ? p_nGroupIndex : 0, - oTitle = this._aGroupTitleElements[nGroupIndex]; - - - if(oTitle) { - - oTitle.innerHTML = p_sGroupTitle; - - } - else { - - oTitle = document.createElement(this.GROUP_TITLE_TAG_NAME); - - oTitle.innerHTML = p_sGroupTitle; - - this._aGroupTitleElements[nGroupIndex] = oTitle; - - } - - - var i = this._aGroupTitleElements.length - 1, - nFirstIndex; - - do { - - if(this._aGroupTitleElements[i]) { - - Dom.removeClass(this._aGroupTitleElements[i], "first-of-type"); - - nFirstIndex = i; - - } - - } - while(i--); - - - if(nFirstIndex !== null) { - - Dom.addClass( - this._aGroupTitleElements[nFirstIndex], - "first-of-type" - ); - - } - - } - -}, - - - -/** -* @method addItem -* @description Appends an item to the menu. -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance to be added to the menu. -* @param {String} p_oItem String specifying the text of the item to be added -* to the menu. -* @param {Object} p_oItem Object literal containing a set of menu item -* configuration properties. -* @param {Number} p_nGroupIndex Optional. Number indicating the group to -* which the item belongs. -* @return {YAHOO.widget.MenuItem} -*/ -addItem: function(p_oItem, p_nGroupIndex) { - - if(p_oItem) { - - return this._addItemToGroup(p_nGroupIndex, p_oItem); - - } - -}, - - -/** -* @method addItems -* @description Adds an array of items to the menu. -* @param {Array} p_aItems Array of items to be added to the menu. The array -* can contain strings specifying the text for each item to be created, object -* literals specifying each of the menu item configuration properties, -* or MenuItem instances. -* @param {Number} p_nGroupIndex Optional. Number specifying the group to -* which the items belongs. -* @return {Array} -*/ -addItems: function(p_aItems, p_nGroupIndex) { - - if(Lang.isArray(p_aItems)) { - - var nItems = p_aItems.length, - aItems = [], - oItem; - - - for(var i=0; i 0) { - - var i = nItems - 1, - oItem, - oSubmenu; - - do { - - oItem = aItems[i]; - - if(oItem) { - - oSubmenu = oItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - this.cfg.configChangedEvent.unsubscribe( - this._onParentMenuConfigChange, - oSubmenu - ); - - this.renderEvent.unsubscribe( - this._onParentMenuRender, - oSubmenu - ); - - } - - oItem.destroy(); - - } - - } - while(i--); - - } - - - if(oHeader) { - - Event.purgeElement(oHeader); - oElement.removeChild(oHeader); - - } - - - if(oFooter) { - - Event.purgeElement(oFooter); - oElement.removeChild(oFooter); - } - - - if(oBody) { - - Event.purgeElement(oBody); - - oBody.innerHTML = ""; - - } - - - this._aItemGroups = []; - this._aListElements = []; - this._aGroupTitleElements = []; - - this.cfg.setProperty("width", null); - -}, - - -/** -* @method destroy -* @description Removes the menu's <div> element -* (and accompanying child nodes) from the document. -*/ -destroy: function() { - - // Remove all DOM event listeners - - Event.purgeElement(this.element); - - - // Remove Custom Event listeners - - this.mouseOverEvent.unsubscribeAll(); - this.mouseOutEvent.unsubscribeAll(); - this.mouseDownEvent.unsubscribeAll(); - this.mouseUpEvent.unsubscribeAll(); - this.clickEvent.unsubscribeAll(); - this.keyPressEvent.unsubscribeAll(); - this.keyDownEvent.unsubscribeAll(); - this.keyUpEvent.unsubscribeAll(); - this.focusEvent.unsubscribeAll(); - this.blurEvent.unsubscribeAll(); - this.itemAddedEvent.unsubscribeAll(); - this.itemRemovedEvent.unsubscribeAll(); - this.cfg.unsubscribeFromConfigEvent("width", this._onWidthChange); - this.cfg.unsubscribeFromConfigEvent("visible", this._onVisibleChange); - - if (this._hasSetWidthHandlers) { - - this.itemAddedEvent.unsubscribe(this._setWidth); - this.itemRemovedEvent.unsubscribe(this._setWidth); - - this._hasSetWidthHandlers = false; - - } - - YAHOO.widget.Module.textResizeEvent.unsubscribe(this._onTextResize, this); - - - // Remove all items - - this.clearContent(); - - - this._aItemGroups = null; - this._aListElements = null; - this._aGroupTitleElements = null; - - - // Continue with the superclass implementation of this method - - YAHOO.widget.Menu.superclass.destroy.call(this); - - -}, - - -/** -* @method setInitialFocus -* @description Sets focus to the menu's first enabled item. -*/ -setInitialFocus: function() { - - var oItem = this._getFirstEnabledItem(); - - if (oItem) { - - oItem.focus(); - - } - -}, - - -/** -* @method setInitialSelection -* @description Sets the "selected" configuration property of the menu's first -* enabled item to "true." -*/ -setInitialSelection: function() { - - var oItem = this._getFirstEnabledItem(); - - if(oItem) { - - oItem.cfg.setProperty("selected", true); - } - -}, - - -/** -* @method clearActiveItem -* @description Sets the "selected" configuration property of the menu's active -* item to "false" and hides the item's submenu. -* @param {Boolean} p_bBlur Boolean indicating if the menu's active item -* should be blurred. -*/ -clearActiveItem: function(p_bBlur) { - - if(this.cfg.getProperty("showdelay") > 0) { - - this._cancelShowDelay(); - - } - - - var oActiveItem = this.activeItem; - - if(oActiveItem) { - - var oConfig = oActiveItem.cfg; - - if(p_bBlur) { - - oActiveItem.blur(); - - } - - oConfig.setProperty("selected", false); - - var oSubmenu = oConfig.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.hide(); - - } - - this.activeItem = null; - - } - -}, - - -/** -* @method focus -* @description Causes the menu to receive focus and fires the "focus" event. -*/ -focus: function() { - - if (!this.hasFocus()) { - - this.setInitialFocus(); - - } - -}, - - -/** -* @method blur -* @description Causes the menu to lose focus and fires the "blur" event. -*/ -blur: function() { - - if (this.hasFocus()) { - - var oItem = YAHOO.widget.MenuManager.getFocusedMenuItem(); - - if (oItem) { - - oItem.blur(); - - } - - } - -}, - - -/** -* @method hasFocus -* @description Returns a boolean indicating whether or not the menu has focus. -* @return {Boolean} -*/ -hasFocus: function() { - - return (YAHOO.widget.MenuManager.getFocusedMenu() == this.getRoot()); - -}, - - -/** -* @description Initializes the class's configurable properties which can be -* changed using the menu's Config object ("cfg"). -* @method initDefaultConfig -*/ -initDefaultConfig: function() { - - YAHOO.widget.Menu.superclass.initDefaultConfig.call(this); - - var oConfig = this.cfg, - DEFAULT_CONFIG = YAHOO.widget.Menu._DEFAULT_CONFIG; - - // Add configuration attributes - - /* - Change the default value for the "visible" configuration - property to "false" by re-adding the property. - */ - - /** - * @config visible - * @description Boolean indicating whether or not the menu is visible. If - * the menu's "position" configuration property is set to "dynamic" (the - * default), this property toggles the menu's <div> - * element's "visibility" style property between "visible" (true) or - * "hidden" (false). If the menu's "position" configuration property is - * set to "static" this property toggles the menu's - * <div> element's "display" style property - * between "block" (true) or "none" (false). - * @default false - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.VISIBLE.key, - { - handler: this.configVisible, - value: DEFAULT_CONFIG.VISIBLE.value, - validator: DEFAULT_CONFIG.VISIBLE.validator - } - ); - - - /* - Change the default value for the "constraintoviewport" configuration - property to "true" by re-adding the property. - */ - - /** - * @config constraintoviewport - * @description Boolean indicating if the menu will try to remain inside - * the boundaries of the size of viewport. - * @default true - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.key, - { - handler: this.configConstrainToViewport, - value: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.value, - validator: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.validator, - supercedes: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.supercedes - } - ); - - - /** - * @config position - * @description String indicating how a menu should be positioned on the - * screen. Possible values are "static" and "dynamic." Static menus are - * visible by default and reside in the normal flow of the document - * (CSS position: static). Dynamic menus are hidden by default, reside - * out of the normal flow of the document (CSS position: absolute), and - * can overlay other elements on the screen. - * @default dynamic - * @type String - */ - oConfig.addProperty( - DEFAULT_CONFIG.POSITION.key, - { - handler: this.configPosition, - value: DEFAULT_CONFIG.POSITION.value, - validator: DEFAULT_CONFIG.POSITION.validator, - supercedes: DEFAULT_CONFIG.POSITION.supercedes - } - ); - - - /** - * @config submenualignment - * @description Array defining how submenus should be aligned to their - * parent menu item. The format is: [itemCorner, submenuCorner]. By default - * a submenu's top left corner is aligned to its parent menu item's top - * right corner. - * @default ["tl","tr"] - * @type Array - */ - oConfig.addProperty( - DEFAULT_CONFIG.SUBMENU_ALIGNMENT.key, - { - value: DEFAULT_CONFIG.SUBMENU_ALIGNMENT.value - } - ); - - - /** - * @config autosubmenudisplay - * @description Boolean indicating if submenus are automatically made - * visible when the user mouses over the menu's items. - * @default true - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.key, - { - value: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.value, - validator: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.validator - } - ); - - - /** - * @config showdelay - * @description Number indicating the time (in milliseconds) that should - * expire before a submenu is made visible when the user mouses over - * the menu's items. - * @default 250 - * @type Number - */ - oConfig.addProperty( - DEFAULT_CONFIG.SHOW_DELAY.key, - { - value: DEFAULT_CONFIG.SHOW_DELAY.value, - validator: DEFAULT_CONFIG.SHOW_DELAY.validator - } - ); - - - /** - * @config hidedelay - * @description Number indicating the time (in milliseconds) that should - * expire before the menu is hidden. - * @default 0 - * @type Number - */ - oConfig.addProperty( - DEFAULT_CONFIG.HIDE_DELAY.key, - { - handler: this.configHideDelay, - value: DEFAULT_CONFIG.HIDE_DELAY.value, - validator: DEFAULT_CONFIG.HIDE_DELAY.validator, - suppressEvent: DEFAULT_CONFIG.HIDE_DELAY.suppressEvent - } - ); - - - /** - * @config submenuhidedelay - * @description Number indicating the time (in milliseconds) that should - * expire before a submenu is hidden when the user mouses out of a menu item - * heading in the direction of a submenu. The value must be greater than or - * equal to the value specified for the "showdelay" configuration property. - * @default 250 - * @type Number - */ - oConfig.addProperty( - DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.key, - { - value: DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.value, - validator: DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.validator - } - ); - - - /** - * @config clicktohide - * @description Boolean indicating if the menu will automatically be - * hidden if the user clicks outside of it. - * @default true - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.CLICK_TO_HIDE.key, - { - value: DEFAULT_CONFIG.CLICK_TO_HIDE.value, - validator: DEFAULT_CONFIG.CLICK_TO_HIDE.validator - } - ); - - - /** - * @config container - * @description HTML element reference or string specifying the id - * attribute of the HTML element that the menu's markup should be - * rendered into. - * @type HTMLElement|String - * @default document.body - */ - oConfig.addProperty( - DEFAULT_CONFIG.CONTAINER.key, - { - handler: this.configContainer, - value: document.body - } - ); - - - /** - * @config maxheight - * @description Defines the maximum height (in pixels) for a menu before the - * contents of the body are scrolled. - * @default 0 - * @type Number - */ - oConfig.addProperty( - DEFAULT_CONFIG.MAX_HEIGHT.key, - { - handler: this.configMaxHeight, - value: DEFAULT_CONFIG.MAX_HEIGHT.value, - validator: DEFAULT_CONFIG.MAX_HEIGHT.validator - } - ); - - - /** - * @config classname - * @description CSS class to be applied to the menu's root - * <div> element. The specified class(es) are - * appended in addition to the default class as specified by the menu's - * CSS_CLASS_NAME constant. - * @default null - * @type String - */ - oConfig.addProperty( - DEFAULT_CONFIG.CLASS_NAME.key, - { - handler: this.configClassName, - value: DEFAULT_CONFIG.CLASS_NAME.value, - validator: DEFAULT_CONFIG.CLASS_NAME.validator - } - ); - -} - -}); // END YAHOO.lang.extend - -})(); - - - -(function() { - -var Dom = YAHOO.util.Dom, - Module = YAHOO.widget.Module, - Menu = YAHOO.widget.Menu, - CustomEvent = YAHOO.util.CustomEvent, - Lang = YAHOO.lang; - -/** -* Creates an item for a menu. -* -* @param {String} p_oObject String specifying the text of the menu item. -* @param {HTMLLIElement} p_oObject Object specifying -* the <li> element of the menu item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the menu item. -* @param {HTMLOptionElement} p_oObject Object -* specifying the <option> element of the menu item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu item. See configuration class documentation -* for more details. -* @class MenuItem -* @constructor -*/ -YAHOO.widget.MenuItem = function(p_oObject, p_oConfig) { - - if(p_oObject) { - - if(p_oConfig) { - - this.parent = p_oConfig.parent; - this.value = p_oConfig.value; - this.id = p_oConfig.id; - - } - - this.init(p_oObject, p_oConfig); - - } - -}; - - -/** -* Constant representing the name of the MenuItem's events -* @property YAHOO.widget.MenuItem._EVENT_TYPES -* @private -* @final -* @type Object -*/ -YAHOO.widget.MenuItem._EVENT_TYPES = { - - "MOUSE_OVER": "mouseover", - "MOUSE_OUT": "mouseout", - "MOUSE_DOWN": "mousedown", - "MOUSE_UP": "mouseup", - "CLICK": "click", - "KEY_PRESS": "keypress", - "KEY_DOWN": "keydown", - "KEY_UP": "keyup", - "ITEM_ADDED": "itemAdded", - "ITEM_REMOVED": "itemRemoved", - "FOCUS": "focus", - "BLUR": "blur", - "DESTROY": "destroy" - -}; - - -/** -* Constant representing the MenuItem's configuration properties -* @property YAHOO.widget.MenuItem._DEFAULT_CONFIG -* @private -* @final -* @type Object -*/ -YAHOO.widget.MenuItem._DEFAULT_CONFIG = { - - "TEXT": { - key: "text", - value: "", - validator: Lang.isString, - suppressEvent: true - }, - - "HELP_TEXT": { - key: "helptext" - }, - - "URL": { - key: "url", - value: "#", - suppressEvent: true - }, - - "TARGET": { - key: "target", - suppressEvent: true - }, - - "EMPHASIS": { - key: "emphasis", - value: false, - validator: Lang.isBoolean, - suppressEvent: true - }, - - "STRONG_EMPHASIS": { - key: "strongemphasis", - value: false, - validator: Lang.isBoolean, - suppressEvent: true - }, - - "CHECKED": { - key: "checked", - value: false, - validator: Lang.isBoolean, - suppressEvent: true, - supercedes:["disabled"] - }, - - "DISABLED": { - key: "disabled", - value: false, - validator: Lang.isBoolean, - suppressEvent: true - }, - - "SELECTED": { - key: "selected", - value: false, - validator: Lang.isBoolean, - suppressEvent: true - }, - - "SUBMENU": { - key: "submenu" - }, - - "ONCLICK": { - key: "onclick" - }, - - "CLASS_NAME": { - key: "classname", - value: null, - validator: Lang.isString - } - -}; - - -YAHOO.widget.MenuItem.prototype = { - - // Constants - - - /** - * @property COLLAPSED_SUBMENU_INDICATOR_TEXT - * @description String representing the text for the <em> - * element used for the submenu arrow indicator. - * @default "Submenu collapsed. Click to expand submenu." - * @final - * @type String - */ - COLLAPSED_SUBMENU_INDICATOR_TEXT: - "Submenu collapsed. Click to expand submenu.", - - - /** - * @property EXPANDED_SUBMENU_INDICATOR_TEXT - * @description String representing the text for the submenu arrow indicator - * element (<em>) when the submenu is visible. - * @default "Submenu expanded. Click to collapse submenu." - * @final - * @type String - */ - EXPANDED_SUBMENU_INDICATOR_TEXT: - "Submenu expanded. Click to collapse submenu.", - - - /** - * @property DISABLED_SUBMENU_INDICATOR_TEXT - * @description String representing the text for the submenu arrow indicator - * element (<em>) when the menu item is disabled. - * @default "Submenu collapsed. (Item disabled.)." - * @final - * @type String - */ - DISABLED_SUBMENU_INDICATOR_TEXT: "Submenu collapsed. (Item disabled.)", - - - /** - * @property CHECKED_TEXT - * @description String representing the text to be used for the checked - * indicator element (<em>). - * @default "Checked." - * @final - * @type String - */ - CHECKED_TEXT: "Menu item checked.", - - - /** - * @property DISABLED_CHECKED_TEXT - * @description String representing the text to be used for the checked - * indicator element (<em>) when the menu item - * is disabled. - * @default "Checked. (Item disabled.)" - * @final - * @type String - */ - DISABLED_CHECKED_TEXT: "Checked. (Item disabled.)", - - - /** - * @property CSS_CLASS_NAME - * @description String representing the CSS class(es) to be applied to the - * <li> element of the menu item. - * @default "yuimenuitem" - * @final - * @type String - */ - CSS_CLASS_NAME: "yuimenuitem", - - - /** - * @property SUBMENU_TYPE - * @description Object representing the type of menu to instantiate and - * add when parsing the child nodes of the menu item's source HTML element. - * @final - * @type YAHOO.widget.Menu - */ - SUBMENU_TYPE: null, - - - - // Private member variables - - - /** - * @property _oAnchor - * @description Object reference to the menu item's - * <a> element. - * @default null - * @private - * @type HTMLAnchorElement - */ - _oAnchor: null, - - - /** - * @property _oText - * @description Object reference to the menu item's text node. - * @default null - * @private - * @type TextNode - */ - _oText: null, - - - /** - * @property _oHelpTextEM - * @description Object reference to the menu item's help text - * <em> element. - * @default null - * @private - * @type HTMLElement - */ - _oHelpTextEM: null, - - - /** - * @property _oSubmenu - * @description Object reference to the menu item's submenu. - * @default null - * @private - * @type YAHOO.widget.Menu - */ - _oSubmenu: null, - - - /** - * @property _oCheckedIndicator - * @description Object reference to the menu item's checkmark image. - * @default HTMLElement - * @private - * @type HTMLElement - */ - _oCheckedIndicator: null, - - - /** - * @property _oOnclickAttributeValue - * @description Object reference to the menu item's current value for the - * "onclick" configuration attribute. - * @default null - * @private - * @type Object - */ - _oOnclickAttributeValue: null, - - - /** - * @property _sClassName - * @description The current value of the "classname" configuration attribute. - * @default null - * @private - * @type String - */ - _sClassName: null, - - - - // Public properties - - - /** - * @property constructor - * @description Object reference to the menu item's constructor function. - * @default YAHOO.widget.MenuItem - * @type YAHOO.widget.MenuItem - */ - constructor: YAHOO.widget.MenuItem, - - - /** - * @property index - * @description Number indicating the ordinal position of the menu item in - * its group. - * @default null - * @type Number - */ - index: null, - - - /** - * @property groupIndex - * @description Number indicating the index of the group to which the menu - * item belongs. - * @default null - * @type Number - */ - groupIndex: null, - - - /** - * @property parent - * @description Object reference to the menu item's parent menu. - * @default null - * @type YAHOO.widget.Menu - */ - parent: null, - - - /** - * @property element - * @description Object reference to the menu item's - * <li> element. - * @default HTMLLIElement - * @type HTMLLIElement - */ - element: null, - - - /** - * @property srcElement - * @description Object reference to the HTML element (either - * <li>, <optgroup> or - * <option>) used create the menu item. - * @default HTMLLIElement|HTMLOptGroupElement|HTMLOptionElement - * @type HTMLLIElement| - * HTMLOptGroupElement|HTMLOptionElement - */ - srcElement: null, - - - /** - * @property value - * @description Object reference to the menu item's value. - * @default null - * @type Object - */ - value: null, - - - /** - * @property submenuIndicator - * @description Object reference to the <em> element - * used to create the submenu indicator for the menu item. - * @default HTMLElement - * @type HTMLElement - */ - submenuIndicator: null, - - - /** - * @property browser - * @description String representing the browser. - * @type String - */ - browser: Module.prototype.browser, - - - /** - * @property id - * @description Id of the menu item's root <li> - * element. This property should be set via the constructor using the - * configuration object literal. If an id is not specified, then one will - * be created using the "generateId" method of the Dom utility. - * @default null - * @type String - */ - id: null, - - - - // Events - - - /** - * @event destroyEvent - * @description Fires when the menu item's <li> - * element is removed from its parent <ul> element. - * @type YAHOO.util.CustomEvent - */ - destroyEvent: null, - - - /** - * @event mouseOverEvent - * @description Fires when the mouse has entered the menu item. Passes - * back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseOverEvent: null, - - - /** - * @event mouseOutEvent - * @description Fires when the mouse has left the menu item. Passes back - * the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseOutEvent: null, - - - /** - * @event mouseDownEvent - * @description Fires when the user mouses down on the menu item. Passes - * back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseDownEvent: null, - - - /** - * @event mouseUpEvent - * @description Fires when the user releases a mouse button while the mouse - * is over the menu item. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseUpEvent: null, - - - /** - * @event clickEvent - * @description Fires when the user clicks the on the menu item. Passes - * back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - clickEvent: null, - - - /** - * @event keyPressEvent - * @description Fires when the user presses an alphanumeric key when the - * menu item has focus. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - keyPressEvent: null, - - - /** - * @event keyDownEvent - * @description Fires when the user presses a key when the menu item has - * focus. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - keyDownEvent: null, - - - /** - * @event keyUpEvent - * @description Fires when the user releases a key when the menu item has - * focus. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - keyUpEvent: null, - - - /** - * @event focusEvent - * @description Fires when the menu item receives focus. - * @type YAHOO.util.CustomEvent - */ - focusEvent: null, - - - /** - * @event blurEvent - * @description Fires when the menu item loses the input focus. - * @type YAHOO.util.CustomEvent - */ - blurEvent: null, - - - /** - * @method init - * @description The MenuItem class's initialization method. This method is - * automatically called by the constructor, and sets up all DOM references - * for pre-existing markup, and creates required markup if it is not - * already present. - * @param {String} p_oObject String specifying the text of the menu item. - * @param {HTMLLIElement} p_oObject Object specifying - * the <li> element of the menu item. - * @param {HTMLOptGroupElement} p_oObject Object - * specifying the <optgroup> element of the menu item. - * @param {HTMLOptionElement} p_oObject Object - * specifying the <option> element of the menu item. - * @param {Object} p_oConfig Optional. Object literal specifying the - * configuration for the menu item. See configuration class documentation - * for more details. - */ - init: function(p_oObject, p_oConfig) { - - - if(!this.SUBMENU_TYPE) { - - this.SUBMENU_TYPE = Menu; - - } - - - // Create the config object - - this.cfg = new YAHOO.util.Config(this); - - this.initDefaultConfig(); - - var oConfig = this.cfg; - - - if(Lang.isString(p_oObject)) { - - this._createRootNodeStructure(); - - oConfig.setProperty("text", p_oObject); - - } - else if(this._checkDOMNode(p_oObject)) { - - switch(p_oObject.tagName.toUpperCase()) { - - case "OPTION": - - this._createRootNodeStructure(); - - oConfig.setProperty("text", p_oObject.text); - - this.srcElement = p_oObject; - - break; - - case "OPTGROUP": - - this._createRootNodeStructure(); - - oConfig.setProperty("text", p_oObject.label); - - this.srcElement = p_oObject; - - this._initSubTree(); - - break; - - case "LI": - - // Get the anchor node (if it exists) - - var oAnchor = this._getFirstElement(p_oObject, "A"), - sURL = "#", - sTarget, - sText; - - - // Capture the "text" and/or the "URL" - - if(oAnchor) { - - sURL = oAnchor.getAttribute("href"); - sTarget = oAnchor.getAttribute("target"); - - if(oAnchor.innerText) { - - sText = oAnchor.innerText; - - } - else { - - var oRange = oAnchor.ownerDocument.createRange(); - - oRange.selectNodeContents(oAnchor); - - sText = oRange.toString(); - - } - - } - else { - - var oText = p_oObject.firstChild; - - sText = oText.nodeValue; - - oAnchor = document.createElement("a"); - - oAnchor.setAttribute("href", sURL); - - p_oObject.replaceChild(oAnchor, oText); - - oAnchor.appendChild(oText); - - } - - - this.srcElement = p_oObject; - this.element = p_oObject; - this._oAnchor = oAnchor; - - - // Check if emphasis has been applied to the MenuItem - - var oEmphasisNode = this._getFirstElement(oAnchor), - bEmphasis = false, - bStrongEmphasis = false; - - if(oEmphasisNode) { - - // Set a reference to the text node - - this._oText = oEmphasisNode.firstChild; - - switch(oEmphasisNode.tagName.toUpperCase()) { - - case "EM": - - bEmphasis = true; - - break; - - case "STRONG": - - bStrongEmphasis = true; - - break; - - } - - } - else { - - // Set a reference to the text node - - this._oText = oAnchor.firstChild; - - } - - - /* - Set these properties silently to sync up the - configuration object without making changes to the - element's DOM - */ - - oConfig.setProperty("text", sText, true); - oConfig.setProperty("url", sURL, true); - oConfig.setProperty("target", sTarget, true); - oConfig.setProperty("emphasis", bEmphasis, true); - oConfig.setProperty( - "strongemphasis", - bStrongEmphasis, - true - ); - - this._initSubTree(); - - break; - - } - - } - - - if(this.element) { - - var sId = this.element.id; - - if(!sId) { - - sId = this.id || Dom.generateId(); - - this.element.id = sId; - - } - - this.id = sId; - - - Dom.addClass(this.element, this.CSS_CLASS_NAME); - - - // Create custom events - - var EVENT_TYPES = YAHOO.widget.MenuItem._EVENT_TYPES; - - this.mouseOverEvent = new CustomEvent(EVENT_TYPES.MOUSE_OVER, this); - this.mouseOutEvent = new CustomEvent(EVENT_TYPES.MOUSE_OUT, this); - this.mouseDownEvent = new CustomEvent(EVENT_TYPES.MOUSE_DOWN, this); - this.mouseUpEvent = new CustomEvent(EVENT_TYPES.MOUSE_UP, this); - this.clickEvent = new CustomEvent(EVENT_TYPES.CLICK, this); - this.keyPressEvent = new CustomEvent(EVENT_TYPES.KEY_PRESS, this); - this.keyDownEvent = new CustomEvent(EVENT_TYPES.KEY_DOWN, this); - this.keyUpEvent = new CustomEvent(EVENT_TYPES.KEY_UP, this); - this.focusEvent = new CustomEvent(EVENT_TYPES.FOCUS, this); - this.blurEvent = new CustomEvent(EVENT_TYPES.BLUR, this); - this.destroyEvent = new CustomEvent(EVENT_TYPES.DESTROY, this); - - if(p_oConfig) { - - oConfig.applyConfig(p_oConfig); - - } - - oConfig.fireQueue(); - - } - - }, - - - - // Private methods - - - /** - * @method _getFirstElement - * @description Returns an HTML element's first HTML element node. - * @private - * @param {HTMLElement} p_oElement Object - * reference specifying the element to be evaluated. - * @param {String} p_sTagName Optional. String specifying the tagname of - * the element to be retrieved. - * @return {HTMLElement} - */ - _getFirstElement: function(p_oElement, p_sTagName) { - - var oFirstChild = p_oElement.firstChild, - oElement; - - if(oFirstChild) { - - if(oFirstChild.nodeType == 1) { - - oElement = oFirstChild; - - } - else { - - var oNextSibling = oFirstChild.nextSibling; - - if(oNextSibling && oNextSibling.nodeType == 1) { - - oElement = oNextSibling; - - } - - } - - } - - - if(p_sTagName) { - - return (oElement && oElement.tagName.toUpperCase() == p_sTagName) ? - oElement : false; - - } - - return oElement; - - }, - - - /** - * @method _checkDOMNode - * @description Determines if an object is an HTML element. - * @private - * @param {Object} p_oObject Object to be evaluated. - * @return {Boolean} - */ - _checkDOMNode: function(p_oObject) { - - return (p_oObject && p_oObject.tagName); - - }, - - - /** - * @method _createRootNodeStructure - * @description Creates the core DOM structure for the menu item. - * @private - */ - _createRootNodeStructure: function () { - - var oTemplate = YAHOO.widget.MenuItem._MenuItemTemplate; - - if(!oTemplate) { - - oTemplate = document.createElement("li"); - oTemplate.innerHTML = "s"; - - YAHOO.widget.MenuItem._MenuItemTemplate = oTemplate; - - } - - this.element = oTemplate.cloneNode(true); - this._oAnchor = this.element.firstChild; - this._oText = this._oAnchor.firstChild; - - this.element.appendChild(this._oAnchor); - - }, - - - /** - * @method _initSubTree - * @description Iterates the source element's childNodes collection and uses - * the child nodes to instantiate other menus. - * @private - */ - _initSubTree: function() { - - var oSrcEl = this.srcElement, - oConfig = this.cfg; - - - if(oSrcEl.childNodes.length > 0) { - - if( - this.parent.lazyLoad && - this.parent.srcElement && - this.parent.srcElement.tagName.toUpperCase() == "SELECT" - ) { - - oConfig.setProperty( - "submenu", - { id: Dom.generateId(), itemdata: oSrcEl.childNodes } - ); - - } - else { - - var oNode = oSrcEl.firstChild, - aOptions = []; - - do { - - if(oNode && oNode.tagName) { - - switch(oNode.tagName.toUpperCase()) { - - case "DIV": - - oConfig.setProperty("submenu", oNode); - - break; - - case "OPTION": - - aOptions[aOptions.length] = oNode; - - break; - - } - - } - - } - while((oNode = oNode.nextSibling)); - - - var nOptions = aOptions.length; - - if(nOptions > 0) { - - var oMenu = new this.SUBMENU_TYPE(Dom.generateId()); - - oConfig.setProperty("submenu", oMenu); - - for(var n=0; n 0) { - - oAnchor.setAttribute("target", sTarget); - - } - else { - - oAnchor.removeAttribute("target"); - - } - - }, - - - /** - * @method configEmphasis - * @description Event handler for when the "emphasis" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configEmphasis: function(p_sType, p_aArgs, p_oItem) { - - var bEmphasis = p_aArgs[0], - oAnchor = this._oAnchor, - oText = this._oText, - oConfig = this.cfg, - oEM; - - - if(bEmphasis && oConfig.getProperty("strongemphasis")) { - - oConfig.setProperty("strongemphasis", false); - - } - - - if(oAnchor) { - - if(bEmphasis) { - - oEM = document.createElement("em"); - oEM.appendChild(oText); - - oAnchor.appendChild(oEM); - - } - else { - - oEM = this._getFirstElement(oAnchor, "EM"); - - if(oEM) { - - oAnchor.removeChild(oEM); - oAnchor.appendChild(oText); - - } - - } - - } - - }, - - - /** - * @method configStrongEmphasis - * @description Event handler for when the "strongemphasis" configuration - * property of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configStrongEmphasis: function(p_sType, p_aArgs, p_oItem) { - - var bStrongEmphasis = p_aArgs[0], - oAnchor = this._oAnchor, - oText = this._oText, - oConfig = this.cfg, - oStrong; - - if(bStrongEmphasis && oConfig.getProperty("emphasis")) { - - oConfig.setProperty("emphasis", false); - - } - - if(oAnchor) { - - if(bStrongEmphasis) { - - oStrong = document.createElement("strong"); - oStrong.appendChild(oText); - - oAnchor.appendChild(oStrong); - - } - else { - - oStrong = this._getFirstElement(oAnchor, "STRONG"); - - if(oStrong) { - - oAnchor.removeChild(oStrong); - oAnchor.appendChild(oText); - - } - - } - - } - - }, - - - /** - * @method configChecked - * @description Event handler for when the "checked" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configChecked: function(p_sType, p_aArgs, p_oItem) { - - var bChecked = p_aArgs[0], - oEl = this.element, - oConfig = this.cfg, - oEM; - - - if(bChecked) { - - var oTemplate = YAHOO.widget.MenuItem._CheckedIndicatorTemplate; - - if(!oTemplate) { - - oTemplate = document.createElement("em"); - oTemplate.innerHTML = this.CHECKED_TEXT; - oTemplate.className = "checkedindicator"; - - YAHOO.widget.MenuItem._CheckedIndicatorTemplate = oTemplate; - - } - - oEM = oTemplate.cloneNode(true); - - var oSubmenu = this.cfg.getProperty("submenu"); - - if(oSubmenu && oSubmenu.element) { - - oEl.insertBefore(oEM, oSubmenu.element); - - } - else { - - oEl.appendChild(oEM); - - } - - - Dom.addClass(oEl, "checked"); - - this._oCheckedIndicator = oEM; - - if(oConfig.getProperty("disabled")) { - - oConfig.refireEvent("disabled"); - - } - - if(oConfig.getProperty("selected")) { - - oConfig.refireEvent("selected"); - - } - - } - else { - - oEM = this._oCheckedIndicator; - - Dom.removeClass(oEl, "checked"); - - if(oEM) { - - oEl.removeChild(oEM); - - } - - this._oCheckedIndicator = null; - - } - - }, - - - - /** - * @method configDisabled - * @description Event handler for when the "disabled" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configDisabled: function(p_sType, p_aArgs, p_oItem) { - - var bDisabled = p_aArgs[0], - oConfig = this.cfg, - oAnchor = this._oAnchor, - aNodes = [this.element, oAnchor], - oHelpText = this._oHelpTextEM, - oCheckedIndicator = this._oCheckedIndicator, - oSubmenuIndicator = this.submenuIndicator, - i = 1; - - - if(oHelpText) { - - i++; - aNodes[i] = oHelpText; - - } - - - if(oCheckedIndicator) { - - oCheckedIndicator.firstChild.nodeValue = bDisabled ? - this.DISABLED_CHECKED_TEXT : - this.CHECKED_TEXT; - - i++; - aNodes[i] = oCheckedIndicator; - - } - - - if(oSubmenuIndicator) { - - oSubmenuIndicator.firstChild.nodeValue = bDisabled ? - this.DISABLED_SUBMENU_INDICATOR_TEXT : - this.COLLAPSED_SUBMENU_INDICATOR_TEXT; - - i++; - aNodes[i] = oSubmenuIndicator; - - } - - - if(bDisabled) { - - if(oConfig.getProperty("selected")) { - - oConfig.setProperty("selected", false); - - } - - oAnchor.removeAttribute("href"); - - Dom.addClass(aNodes, "disabled"); - - } - else { - - oAnchor.setAttribute("href", oConfig.getProperty("url")); - - Dom.removeClass(aNodes, "disabled"); - - } - - }, - - - /** - * @method configSelected - * @description Event handler for when the "selected" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configSelected: function(p_sType, p_aArgs, p_oItem) { - - if(!this.cfg.getProperty("disabled")) { - - var bSelected = p_aArgs[0], - oHelpText = this._oHelpTextEM, - oSubmenuIndicator = this.submenuIndicator, - oCheckedIndicator = this._oCheckedIndicator, - aNodes = [this.element, this._oAnchor], - i = 1; - - - if(oHelpText) { - - i++; - aNodes[i] = oHelpText; - - } - - - if(oSubmenuIndicator) { - - i++; - aNodes[i] = oSubmenuIndicator; - - } - - - if(oCheckedIndicator) { - - i++; - aNodes[i] = oCheckedIndicator; - - } - - - if(bSelected) { - - Dom.addClass(aNodes, "selected"); - - } - else { - - Dom.removeClass(aNodes, "selected"); - - } - - } - - }, - - - /** - * @method configSubmenu - * @description Event handler for when the "submenu" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configSubmenu: function(p_sType, p_aArgs, p_oItem) { - - var oEl = this.element, - oSubmenu = p_aArgs[0], - oSubmenuIndicator = this.submenuIndicator, - oConfig = this.cfg, - aNodes = [this.element, this._oAnchor], - bLazyLoad = this.parent && this.parent.lazyLoad, - oMenu; - - - if(oSubmenu) { - - if(oSubmenu instanceof Menu) { - - oMenu = oSubmenu; - oMenu.parent = this; - oMenu.lazyLoad = bLazyLoad; - - } - else if( - typeof oSubmenu == "object" && - oSubmenu.id && - !oSubmenu.nodeType - ) { - - var sSubmenuId = oSubmenu.id, - oSubmenuConfig = oSubmenu; - - oSubmenuConfig.lazyload = bLazyLoad; - oSubmenuConfig.parent = this; - - oMenu = new this.SUBMENU_TYPE(sSubmenuId, oSubmenuConfig); - - - // Set the value of the property to the Menu instance - - this.cfg.setProperty("submenu", oMenu, true); - - } - else { - - oMenu = new this.SUBMENU_TYPE( - oSubmenu, - { lazyload: bLazyLoad, parent: this } - ); - - - // Set the value of the property to the Menu instance - - this.cfg.setProperty("submenu", oMenu, true); - - } - - - if(oMenu) { - - this._oSubmenu = oMenu; - - - if(!oSubmenuIndicator) { - - var oTemplate = - YAHOO.widget.MenuItem._oSubmenuIndicatorTemplate; - - if(!oTemplate) { - - oTemplate = document.createElement("em"); - oTemplate.innerHTML = - this.COLLAPSED_SUBMENU_INDICATOR_TEXT; - oTemplate.className = "submenuindicator"; - - YAHOO.widget.MenuItem._oSubmenuIndicatorTemplate = - oTemplate; - - } - - - oSubmenuIndicator = oTemplate.cloneNode(true); - - - if(oMenu.element.parentNode == oEl) { - - if(this.browser == "opera") { - - oEl.appendChild(oSubmenuIndicator); - - oMenu.renderEvent.subscribe(function() { - - oSubmenuIndicator.parentNode.insertBefore( - oSubmenuIndicator, - oMenu.element - ); - - }); - - } - else { - - oEl.insertBefore(oSubmenuIndicator, oMenu.element); - - } - - } - else { - - oEl.appendChild(oSubmenuIndicator); - - } - - this.submenuIndicator = oSubmenuIndicator; - - } - - - Dom.addClass(aNodes, "hassubmenu"); - - - if(oConfig.getProperty("disabled")) { - - oConfig.refireEvent("disabled"); - - } - - if(oConfig.getProperty("selected")) { - - oConfig.refireEvent("selected"); - - } - - } - - } - else { - - Dom.removeClass(aNodes, "hassubmenu"); - - if(oSubmenuIndicator) { - - oEl.removeChild(oSubmenuIndicator); - - } - - if(this._oSubmenu) { - - this._oSubmenu.destroy(); - - } - - } - - }, - - - /** - * @method configOnClick - * @description Event handler for when the "onclick" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configOnClick: function(p_sType, p_aArgs, p_oItem) { - - var oObject = p_aArgs[0]; - - /* - Remove any existing listeners if a "click" event handler has - already been specified. - */ - - if( - this._oOnclickAttributeValue && - (this._oOnclickAttributeValue != oObject) - ) { - - this.clickEvent.unsubscribe( - this._oOnclickAttributeValue.fn, - this._oOnclickAttributeValue.obj - ); - - this._oOnclickAttributeValue = null; - - } - - - if( - !this._oOnclickAttributeValue && - typeof oObject == "object" && - typeof oObject.fn == "function" - ) { - - this.clickEvent.subscribe( - oObject.fn, - (oObject.obj || this), - oObject.scope - ); - - this._oOnclickAttributeValue = oObject; - - } - - }, - - - /** - * @method configClassName - * @description Event handler for when the "classname" configuration - * property of a menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configClassName: function(p_sType, p_aArgs, p_oItem) { - - var sClassName = p_aArgs[0]; - - if(this._sClassName) { - - Dom.removeClass(this.element, this._sClassName); - - } - - Dom.addClass(this.element, sClassName); - this._sClassName = sClassName; - - }, - - - - // Public methods - - - /** - * @method initDefaultConfig - * @description Initializes an item's configurable properties. - */ - initDefaultConfig : function() { - - var oConfig = this.cfg, - DEFAULT_CONFIG = YAHOO.widget.MenuItem._DEFAULT_CONFIG; - - - // Define the configuration attributes - - /** - * @config text - * @description String specifying the text label for the menu item. - * When building a menu from existing HTML the value of this property - * will be interpreted from the menu's markup. - * @default "" - * @type String - */ - oConfig.addProperty( - DEFAULT_CONFIG.TEXT.key, - { - handler: this.configText, - value: DEFAULT_CONFIG.TEXT.value, - validator: DEFAULT_CONFIG.TEXT.validator, - suppressEvent: DEFAULT_CONFIG.TEXT.suppressEvent - } - ); - - - /** - * @config helptext - * @description String specifying additional instructional text to - * accompany the text for the nenu item. - * @default null - * @type String| - * HTMLElement - */ - oConfig.addProperty( - DEFAULT_CONFIG.HELP_TEXT.key, - { handler: this.configHelpText } - ); - - - /** - * @config url - * @description String specifying the URL for the menu item's anchor's - * "href" attribute. When building a menu from existing HTML the value - * of this property will be interpreted from the menu's markup. - * @default "#" - * @type String - */ - oConfig.addProperty( - DEFAULT_CONFIG.URL.key, - { - handler: this.configURL, - value: DEFAULT_CONFIG.URL.value, - suppressEvent: DEFAULT_CONFIG.URL.suppressEvent - } - ); - - - /** - * @config target - * @description String specifying the value for the "target" attribute - * of the menu item's anchor element. Specifying a target will - * require the user to click directly on the menu item's anchor node in - * order to cause the browser to navigate to the specified URL. - * When building a menu from existing HTML the value of this property - * will be interpreted from the menu's markup. - * @default null - * @type String - */ - oConfig.addProperty( - DEFAULT_CONFIG.TARGET.key, - { - handler: this.configTarget, - suppressEvent: DEFAULT_CONFIG.TARGET.suppressEvent - } - ); - - - /** - * @config emphasis - * @description Boolean indicating if the text of the menu item will be - * rendered with emphasis. When building a menu from existing HTML the - * value of this property will be interpreted from the menu's markup. - * @default false - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.EMPHASIS.key, - { - handler: this.configEmphasis, - value: DEFAULT_CONFIG.EMPHASIS.value, - validator: DEFAULT_CONFIG.EMPHASIS.validator, - suppressEvent: DEFAULT_CONFIG.EMPHASIS.suppressEvent - } - ); - - - /** - * @config strongemphasis - * @description Boolean indicating if the text of the menu item will be - * rendered with strong emphasis. When building a menu from existing - * HTML the value of this property will be interpreted from the - * menu's markup. - * @default false - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.STRONG_EMPHASIS.key, - { - handler: this.configStrongEmphasis, - value: DEFAULT_CONFIG.STRONG_EMPHASIS.value, - validator: DEFAULT_CONFIG.STRONG_EMPHASIS.validator, - suppressEvent: DEFAULT_CONFIG.STRONG_EMPHASIS.suppressEvent - } - ); - - - /** - * @config checked - * @description Boolean indicating if the menu item should be rendered - * with a checkmark. - * @default false - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.CHECKED.key, - { - handler: this.configChecked, - value: DEFAULT_CONFIG.CHECKED.value, - validator: DEFAULT_CONFIG.CHECKED.validator, - suppressEvent: DEFAULT_CONFIG.CHECKED.suppressEvent, - supercedes: DEFAULT_CONFIG.CHECKED.supercedes - } - ); - - - /** - * @config disabled - * @description Boolean indicating if the menu item should be disabled. - * (Disabled menu items are dimmed and will not respond to user input - * or fire events.) - * @default false - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.DISABLED.key, - { - handler: this.configDisabled, - value: DEFAULT_CONFIG.DISABLED.value, - validator: DEFAULT_CONFIG.DISABLED.validator, - suppressEvent: DEFAULT_CONFIG.DISABLED.suppressEvent - } - ); - - - /** - * @config selected - * @description Boolean indicating if the menu item should - * be highlighted. - * @default false - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.SELECTED.key, - { - handler: this.configSelected, - value: DEFAULT_CONFIG.SELECTED.value, - validator: DEFAULT_CONFIG.SELECTED.validator, - suppressEvent: DEFAULT_CONFIG.SELECTED.suppressEvent - } - ); - - - /** - * @config submenu - * @description Object specifying the submenu to be appended to the - * menu item. The value can be one of the following:
        • Object - * specifying a Menu instance.
        • Object literal specifying the - * menu to be created. Format: { id: [menu id], itemdata: - * [array of values for - * items] }.
        • String specifying the id attribute - * of the <div> element of the menu.
        • - * Object specifying the <div> element of the - * menu.
        - * @default null - * @type Menu|String|Object| - * HTMLElement - */ - oConfig.addProperty( - DEFAULT_CONFIG.SUBMENU.key, - { handler: this.configSubmenu } - ); - - - /** - * @config onclick - * @description Object literal representing the code to be executed when - * the button is clicked. Format:
        {
        - * fn: Function, // The handler to call when - * the event fires.
        obj: Object, // An - * object to pass back to the handler.
        scope: - * Object // The object to use for the scope of the handler. - *
        }
        - * @type Object - * @default null - */ - oConfig.addProperty( - DEFAULT_CONFIG.ONCLICK.key, - { handler: this.configOnClick } - ); - - - /** - * @config classname - * @description CSS class to be applied to the menu item's root - * <li> element. The specified class(es) are - * appended in addition to the default class as specified by the menu - * item's CSS_CLASS_NAME constant. - * @default null - * @type String - */ - oConfig.addProperty( - DEFAULT_CONFIG.CLASS_NAME.key, - { - handler: this.configClassName, - value: DEFAULT_CONFIG.CLASS_NAME.value, - validator: DEFAULT_CONFIG.CLASS_NAME.validator - } - ); - - }, - - - /** - * @method getNextEnabledSibling - * @description Finds the menu item's next enabled sibling. - * @return YAHOO.widget.MenuItem - */ - getNextEnabledSibling: function() { - - if(this.parent instanceof Menu) { - - var nGroupIndex = this.groupIndex; - - function getNextArrayItem(p_aArray, p_nStartIndex) { - - return p_aArray[p_nStartIndex] || - getNextArrayItem(p_aArray, (p_nStartIndex+1)); - - } - - - var aItemGroups = this.parent.getItemGroups(), - oNextItem; - - - if(this.index < (aItemGroups[nGroupIndex].length - 1)) { - - oNextItem = getNextArrayItem( - aItemGroups[nGroupIndex], - (this.index+1) - ); - - } - else { - - var nNextGroupIndex; - - if(nGroupIndex < (aItemGroups.length - 1)) { - - nNextGroupIndex = nGroupIndex + 1; - - } - else { - - nNextGroupIndex = 0; - - } - - var aNextGroup = getNextArrayItem(aItemGroups, nNextGroupIndex); - - // Retrieve the first menu item in the next group - - oNextItem = getNextArrayItem(aNextGroup, 0); - - } - - return ( - oNextItem.cfg.getProperty("disabled") || - oNextItem.element.style.display == "none" - ) ? - oNextItem.getNextEnabledSibling() : oNextItem; - - } - - }, - - - /** - * @method getPreviousEnabledSibling - * @description Finds the menu item's previous enabled sibling. - * @return {YAHOO.widget.MenuItem} - */ - getPreviousEnabledSibling: function() { - - if(this.parent instanceof Menu) { - - var nGroupIndex = this.groupIndex; - - function getPreviousArrayItem(p_aArray, p_nStartIndex) { - - return p_aArray[p_nStartIndex] || - getPreviousArrayItem(p_aArray, (p_nStartIndex-1)); - - } - - function getFirstItemIndex(p_aArray, p_nStartIndex) { - - return p_aArray[p_nStartIndex] ? - p_nStartIndex : - getFirstItemIndex(p_aArray, (p_nStartIndex+1)); - - } - - var aItemGroups = this.parent.getItemGroups(), - oPreviousItem; - - if( - this.index > getFirstItemIndex(aItemGroups[nGroupIndex], 0) - ) { - - oPreviousItem = - getPreviousArrayItem( - aItemGroups[nGroupIndex], - (this.index-1) - ); - - } - else { - - var nPreviousGroupIndex; - - if(nGroupIndex > getFirstItemIndex(aItemGroups, 0)) { - - nPreviousGroupIndex = nGroupIndex - 1; - - } - else { - - nPreviousGroupIndex = aItemGroups.length - 1; - - } - - var aPreviousGroup = - getPreviousArrayItem(aItemGroups, nPreviousGroupIndex); - - oPreviousItem = - getPreviousArrayItem( - aPreviousGroup, - (aPreviousGroup.length - 1) - ); - - } - - return ( - oPreviousItem.cfg.getProperty("disabled") || - oPreviousItem.element.style.display == "none" - ) ? - oPreviousItem.getPreviousEnabledSibling() : oPreviousItem; - - } - - }, - - - /** - * @method focus - * @description Causes the menu item to receive the focus and fires the - * focus event. - */ - focus: function() { - - var oParent = this.parent, - oAnchor = this._oAnchor, - oActiveItem = oParent.activeItem, - me = this; - - - function setFocus() { - - try { - - if ( - (me.browser == "ie" || me.browser == "ie7") && - !document.hasFocus() - ) { - - return; - - } - - oAnchor.focus(); - - } - catch(e) { - - } - - } - - - if( - !this.cfg.getProperty("disabled") && - oParent && - oParent.cfg.getProperty("visible") && - this.element.style.display != "none" - ) { - - if(oActiveItem) { - - oActiveItem.blur(); - - } - - - /* - Setting focus via a timer fixes a race condition in Firefox, IE - and Opera where the browser viewport jumps as it trys to - position and focus the menu. - */ - - window.setTimeout(setFocus, 0); - - this.focusEvent.fire(); - - } - - }, - - - /** - * @method blur - * @description Causes the menu item to lose focus and fires the - * blur event. - */ - blur: function() { - - var oParent = this.parent; - - if( - !this.cfg.getProperty("disabled") && - oParent && - Dom.getStyle(oParent.element, "visibility") == "visible" - ) { - - this._oAnchor.blur(); - - this.blurEvent.fire(); - - } - - }, - - - /** - * @method hasFocus - * @description Returns a boolean indicating whether or not the menu item - * has focus. - * @return {Boolean} - */ - hasFocus: function() { - - return (YAHOO.widget.MenuManager.getFocusedMenuItem() == this); - - }, - - - /** - * @method destroy - * @description Removes the menu item's <li> element - * from its parent <ul> element. - */ - destroy: function() { - - var oEl = this.element; - - if(oEl) { - - - // If the item has a submenu, destroy it first - - var oSubmenu = this.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.destroy(); - - } - - - // Remove CustomEvent listeners - - this.mouseOverEvent.unsubscribeAll(); - this.mouseOutEvent.unsubscribeAll(); - this.mouseDownEvent.unsubscribeAll(); - this.mouseUpEvent.unsubscribeAll(); - this.clickEvent.unsubscribeAll(); - this.keyPressEvent.unsubscribeAll(); - this.keyDownEvent.unsubscribeAll(); - this.keyUpEvent.unsubscribeAll(); - this.focusEvent.unsubscribeAll(); - this.blurEvent.unsubscribeAll(); - this.cfg.configChangedEvent.unsubscribeAll(); - - - // Remove the element from the parent node - - var oParentNode = oEl.parentNode; - - if(oParentNode) { - - oParentNode.removeChild(oEl); - - this.destroyEvent.fire(); - - } - - this.destroyEvent.unsubscribeAll(); - - } - - }, - - - /** - * @method toString - * @description Returns a string representing the menu item. - * @return {String} - */ - toString: function() { - - var sReturnVal = "MenuItem"; - - if(this.cfg && this.cfg.getProperty("text")) { - - sReturnVal += (": " + this.cfg.getProperty("text")); - - } - - return sReturnVal; - - } - -}; - -})(); - - - -/** -* Creates a list of options or commands which are made visible in response to -* an HTML element's "contextmenu" event ("mousedown" for Opera). -* -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the context menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for the -* context menu. -* @param {HTMLDivElement} p_oElement Object specifying the -* <div> element of the context menu. -* @param {HTMLSelectElement} p_oElement Object specifying -* the <select> element to be used as the data source for -* the context menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu. See configuration class documentation -* for more details. -* @class ContextMenu -* @constructor -* @extends YAHOO.widget.Menu -* @namespace YAHOO.widget -*/ -YAHOO.widget.ContextMenu = function(p_oElement, p_oConfig) { - - YAHOO.widget.ContextMenu.superclass.constructor.call( - this, - p_oElement, - p_oConfig - ); - -}; - - -/** -* Constant representing the name of the ContextMenu's events -* @property YAHOO.widget.ContextMenu._EVENT_TYPES -* @private -* @final -* @type Object -*/ -YAHOO.widget.ContextMenu._EVENT_TYPES = { - - "TRIGGER_CONTEXT_MENU": "triggerContextMenu", - - "CONTEXT_MENU": ( - (YAHOO.widget.Module.prototype.browser == "opera" ? - "mousedown" : "contextmenu") - ), - "CLICK": "click" - -}; - - -/** -* Constant representing the ContextMenu's configuration properties -* @property YAHOO.widget.ContextMenu._DEFAULT_CONFIG -* @private -* @final -* @type Object -*/ -YAHOO.widget.ContextMenu._DEFAULT_CONFIG = { - - "TRIGGER": { - key: "trigger" - } - -}; - - -YAHOO.lang.extend(YAHOO.widget.ContextMenu, YAHOO.widget.Menu, { - - - -// Private properties - - -/** -* @property _oTrigger -* @description Object reference to the current value of the "trigger" -* configuration property. -* @default null -* @private -* @type String|HTMLElement|Array -*/ -_oTrigger: null, - - -/** -* @property _bCancelled -* @description Boolean indicating if the display of the context menu should -* be cancelled. -* @default false -* @private -* @type Boolean -*/ -_bCancelled: false, - - - -// Public properties - - -/** -* @property contextEventTarget -* @description Object reference for the HTML element that was the target of the -* "contextmenu" DOM event ("mousedown" for Opera) that triggered the display of -* the context menu. -* @default null -* @type HTMLElement -*/ -contextEventTarget: null, - - - -// Events - - -/** -* @event triggerContextMenuEvent -* @description Custom Event wrapper for the "contextmenu" DOM event -* ("mousedown" for Opera) fired by the element(s) that trigger the display of -* the context menu. -*/ -triggerContextMenuEvent: null, - - - -/** -* @method init -* @description The ContextMenu class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references for -* pre-existing markup, and creates required markup if it is not already present. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the context menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for -* the context menu. -* @param {HTMLDivElement} p_oElement Object specifying the -* <div> element of the context menu. -* @param {HTMLSelectElement} p_oElement Object specifying -* the <select> element to be used as the data source for -* the context menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu. See configuration class documentation -* for more details. -*/ -init: function(p_oElement, p_oConfig) { - - if(!this.ITEM_TYPE) { - - this.ITEM_TYPE = YAHOO.widget.ContextMenuItem; - - } - - - // Call the init of the superclass (YAHOO.widget.Menu) - - YAHOO.widget.ContextMenu.superclass.init.call(this, p_oElement); - - - this.beforeInitEvent.fire(YAHOO.widget.ContextMenu); - - - if(p_oConfig) { - - this.cfg.applyConfig(p_oConfig, true); - - } - - - this.initEvent.fire(YAHOO.widget.ContextMenu); - -}, - - -/** -* @method initEvents -* @description Initializes the custom events for the context menu. -*/ -initEvents: function() { - - YAHOO.widget.ContextMenu.superclass.initEvents.call(this); - - // Create custom events - - this.triggerContextMenuEvent = - - new YAHOO.util.CustomEvent( - YAHOO.widget.ContextMenu._EVENT_TYPES.TRIGGER_CONTEXT_MENU, - this - ); - -}, - - -/** -* @method cancel -* @description Cancels the display of the context menu. -*/ -cancel: function() { - - this._bCancelled = true; - -}, - - - -// Private methods - - -/** -* @method _removeEventHandlers -* @description Removes all of the DOM event handlers from the HTML element(s) -* whose "context menu" event ("click" for Opera) trigger the display of -* the context menu. -* @private -*/ -_removeEventHandlers: function() { - - var Event = YAHOO.util.Event, - oTrigger = this._oTrigger; - - - // Remove the event handlers from the trigger(s) - - if (oTrigger) { - - Event.removeListener( - oTrigger, - YAHOO.widget.ContextMenu._EVENT_TYPES.CONTEXT_MENU, - this._onTriggerContextMenu - ); - - if(this.browser == "opera") { - - Event.removeListener( - oTrigger, - YAHOO.widget.ContextMenu._EVENT_TYPES.CLICK, - this._onTriggerClick - ); - - } - - } - -}, - - - -// Private event handlers - - -/** -* @method _onTriggerClick -* @description "click" event handler for the HTML element(s) identified as the -* "trigger" for the context menu. Used to cancel default behaviors in Opera. -* @private -* @param {Event} p_oEvent Object representing the DOM event object passed back -* by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context -* menu that is handling the event. -*/ -_onTriggerClick: function(p_oEvent, p_oMenu) { - - if(p_oEvent.ctrlKey) { - - YAHOO.util.Event.stopEvent(p_oEvent); - - } - -}, - - -/** -* @method _onTriggerContextMenu -* @description "contextmenu" event handler ("mousedown" for Opera) for the HTML -* element(s) that trigger the display of the context menu. -* @private -* @param {Event} p_oEvent Object representing the DOM event object passed back -* by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context -* menu that is handling the event. -*/ -_onTriggerContextMenu: function(p_oEvent, p_oMenu) { - - var Event = YAHOO.util.Event; - - if(p_oEvent.type == "mousedown" && !p_oEvent.ctrlKey) { - - return; - - } - - - /* - Prevent the browser's default context menu from appearing and - stop the propagation of the "contextmenu" event so that - other ContextMenu instances are not displayed. - */ - - Event.stopEvent(p_oEvent); - - - // Hide any other ContextMenu instances that might be visible - - YAHOO.widget.MenuManager.hideVisible(); - - - this.contextEventTarget = Event.getTarget(p_oEvent); - - this.triggerContextMenuEvent.fire(p_oEvent); - - - if(!this._bCancelled) { - - // Position and display the context menu - - this.cfg.setProperty("xy", Event.getXY(p_oEvent)); - - this.show(); - - } - - this._bCancelled = false; - -}, - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the context menu. -* @return {String} -*/ -toString: function() { - - var sReturnVal = "ContextMenu", - sId = this.id; - - if(sId) { - - sReturnVal += (" " + sId); - - } - - return sReturnVal; - -}, - - -/** -* @method initDefaultConfig -* @description Initializes the class's configurable properties which can be -* changed using the context menu's Config object ("cfg"). -*/ -initDefaultConfig: function() { - - YAHOO.widget.ContextMenu.superclass.initDefaultConfig.call(this); - - /** - * @config trigger - * @description The HTML element(s) whose "contextmenu" event ("mousedown" - * for Opera) trigger the display of the context menu. Can be a string - * representing the id attribute of the HTML element, an object reference - * for the HTML element, or an array of strings or HTML element references. - * @default null - * @type String|HTMLElement|Array - */ - this.cfg.addProperty( - YAHOO.widget.ContextMenu._DEFAULT_CONFIG.TRIGGER.key, - { handler: this.configTrigger } - ); - -}, - - -/** -* @method destroy -* @description Removes the context menu's <div> element -* (and accompanying child nodes) from the document. -*/ -destroy: function() { - - // Remove the DOM event handlers from the current trigger(s) - - this._removeEventHandlers(); - - - // Continue with the superclass implementation of this method - - YAHOO.widget.ContextMenu.superclass.destroy.call(this); - -}, - - - -// Public event handlers for configuration properties - - -/** -* @method configTrigger -* @description Event handler for when the value of the "trigger" configuration -* property changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context -* menu that fired the event. -*/ -configTrigger: function(p_sType, p_aArgs, p_oMenu) { - - var Event = YAHOO.util.Event, - oTrigger = p_aArgs[0]; - - if(oTrigger) { - - /* - If there is a current "trigger" - remove the event handlers - from that element(s) before assigning new ones - */ - - if(this._oTrigger) { - - this._removeEventHandlers(); - - } - - this._oTrigger = oTrigger; - - - /* - Listen for the "mousedown" event in Opera b/c it does not - support the "contextmenu" event - */ - - Event.on( - oTrigger, - YAHOO.widget.ContextMenu._EVENT_TYPES.CONTEXT_MENU, - this._onTriggerContextMenu, - this, - true - ); - - - /* - Assign a "click" event handler to the trigger element(s) for - Opera to prevent default browser behaviors. - */ - - if(this.browser == "opera") { - - Event.on( - oTrigger, - YAHOO.widget.ContextMenu._EVENT_TYPES.CLICK, - this._onTriggerClick, - this, - true - ); - - } - - } - else { - - this._removeEventHandlers(); - - } - -} - -}); // END YAHOO.lang.extend - - - -/** -* Creates an item for a context menu. -* -* @param {String} p_oObject String specifying the text of the context menu item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the context menu item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the context -* menu item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the context menu item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu item. See configuration class -* documentation for more details. -* @class ContextMenuItem -* @constructor -* @extends YAHOO.widget.MenuItem -*/ -YAHOO.widget.ContextMenuItem = function(p_oObject, p_oConfig) { - - YAHOO.widget.ContextMenuItem.superclass.constructor.call( - this, - p_oObject, - p_oConfig - ); - -}; - -YAHOO.lang.extend(YAHOO.widget.ContextMenuItem, YAHOO.widget.MenuItem, { - - -/** -* @method init -* @description The ContextMenuItem class's initialization method. This method -* is automatically called by the constructor, and sets up all DOM references -* for pre-existing markup, and creates required markup if it is not -* already present. -* @param {String} p_oObject String specifying the text of the context menu item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the context menu item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the context -* menu item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the context menu item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu item. See configuration class -* documentation for more details. -*/ -init: function(p_oObject, p_oConfig) { - - if(!this.SUBMENU_TYPE) { - - this.SUBMENU_TYPE = YAHOO.widget.ContextMenu; - - } - - - /* - Call the init of the superclass (YAHOO.widget.MenuItem) - Note: We don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.ContextMenuItem.superclass.init.call(this, p_oObject); - - var oConfig = this.cfg; - - if(p_oConfig) { - - oConfig.applyConfig(p_oConfig, true); - - } - - oConfig.fireQueue(); - -}, - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the context menu item. -* @return {String} -*/ -toString: function() { - - var sReturnVal = "ContextMenuItem"; - - if(this.cfg && this.cfg.getProperty("text")) { - - sReturnVal += (": " + this.cfg.getProperty("text")); - - } - - return sReturnVal; - -} - -}); // END YAHOO.lang.extend - - - -/** -* Horizontal collection of items, each of which can contain a submenu. -* -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu bar. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for the -* menu bar. -* @param {HTMLDivElement} p_oElement Object specifying -* the <div> element of the menu bar. -* @param {HTMLSelectElement} p_oElement Object -* specifying the <select> element to be used as the data -* source for the menu bar. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar. See configuration class documentation for -* more details. -* @class Menubar -* @constructor -* @extends YAHOO.widget.Menu -* @namespace YAHOO.widget -*/ -YAHOO.widget.MenuBar = function(p_oElement, p_oConfig) { - - YAHOO.widget.MenuBar.superclass.constructor.call( - this, - p_oElement, - p_oConfig - ); - -}; - - -/** -* Constant representing the MenuBar's configuration properties -* @property YAHOO.widget.MenuBar._DEFAULT_CONFIG -* @private -* @final -* @type Object -*/ -YAHOO.widget.MenuBar._DEFAULT_CONFIG = { - - "POSITION": { - key: "position", - value: "static", - validator: YAHOO.widget.Menu._checkPosition, - supercedes: ["visible"] - }, - - "SUBMENU_ALIGNMENT": { - key: "submenualignment", - value: ["tl","bl"] - }, - - "AUTO_SUBMENU_DISPLAY": { - key: "autosubmenudisplay", - value: false, - validator: YAHOO.lang.isBoolean - } - -}; - - - -YAHOO.lang.extend(YAHOO.widget.MenuBar, YAHOO.widget.Menu, { - -/** -* @method init -* @description The MenuBar class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references for -* pre-existing markup, and creates required markup if it is not already present. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu bar. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for the -* menu bar. -* @param {HTMLDivElement} p_oElement Object specifying -* the <div> element of the menu bar. -* @param {HTMLSelectElement} p_oElement Object -* specifying the <select> element to be used as the data -* source for the menu bar. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar. See configuration class documentation for -* more details. -*/ -init: function(p_oElement, p_oConfig) { - - if(!this.ITEM_TYPE) { - - this.ITEM_TYPE = YAHOO.widget.MenuBarItem; - - } - - - // Call the init of the superclass (YAHOO.widget.Menu) - - YAHOO.widget.MenuBar.superclass.init.call(this, p_oElement); - - - this.beforeInitEvent.fire(YAHOO.widget.MenuBar); - - - if(p_oConfig) { - - this.cfg.applyConfig(p_oConfig, true); - - } - - this.initEvent.fire(YAHOO.widget.MenuBar); - -}, - - - -// Constants - - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the menu -* bar's <div> element. -* @default "yuimenubar" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuimenubar", - - - -// Protected event handlers - - -/** -* @method _onKeyDown -* @description "keydown" Custom Event handler for the menu bar. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu bar -* that fired the event. -*/ -_onKeyDown: function(p_sType, p_aArgs, p_oMenuBar) { - - var Event = YAHOO.util.Event, - oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oSubmenu; - - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg; - - switch(oEvent.keyCode) { - - case 37: // Left arrow - case 39: // Right arrow - - if( - oItem == this.activeItem && - !oItemCfg.getProperty("selected") - ) { - - oItemCfg.setProperty("selected", true); - - } - else { - - var oNextItem = (oEvent.keyCode == 37) ? - oItem.getPreviousEnabledSibling() : - oItem.getNextEnabledSibling(); - - if(oNextItem) { - - this.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - - - if(this.cfg.getProperty("autosubmenudisplay")) { - - oSubmenu = oNextItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.show(); - - } - - } - - oNextItem.focus(); - - } - - } - - Event.preventDefault(oEvent); - - break; - - case 40: // Down arrow - - if(this.activeItem != oItem) { - - this.clearActiveItem(); - - oItemCfg.setProperty("selected", true); - oItem.focus(); - - } - - oSubmenu = oItemCfg.getProperty("submenu"); - - if(oSubmenu) { - - if(oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.setInitialSelection(); - oSubmenu.setInitialFocus(); - - } - else { - - oSubmenu.show(); - - } - - } - - Event.preventDefault(oEvent); - - break; - - } - - } - - - if(oEvent.keyCode == 27 && this.activeItem) { // Esc key - - oSubmenu = this.activeItem.cfg.getProperty("submenu"); - - if(oSubmenu && oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - this.activeItem.focus(); - - } - else { - - this.activeItem.cfg.setProperty("selected", false); - this.activeItem.blur(); - - } - - Event.preventDefault(oEvent); - - } - -}, - - -/** -* @method _onClick -* @description "click" event handler for the menu bar. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu bar -* that fired the event. -*/ -_onClick: function(p_sType, p_aArgs, p_oMenuBar) { - - YAHOO.widget.MenuBar.superclass._onClick.call( - this, - p_sType, - p_aArgs, - p_oMenuBar - ); - - - var oItem = p_aArgs[1]; - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var Event = YAHOO.util.Event, - Dom = YAHOO.util.Dom, - - oEvent = p_aArgs[0], - oTarget = Event.getTarget(oEvent), - - oActiveItem = this.activeItem, - oConfig = this.cfg; - - - // Hide any other submenus that might be visible - - if(oActiveItem && oActiveItem != oItem) { - - this.clearActiveItem(); - - } - - - oItem.cfg.setProperty("selected", true); - - - // Show the submenu for the item - - var oSubmenu = oItem.cfg.getProperty("submenu"); - - - if(oSubmenu && oTarget != oItem.submenuIndicator) { - - if(oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - - } - else { - - oSubmenu.show(); - - } - - } - - } - -}, - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the menu bar. -* @return {String} -*/ -toString: function() { - - var sReturnVal = "MenuBar", - sId = this.id; - - if(sId) { - - sReturnVal += (" " + sId); - - } - - return sReturnVal; - -}, - - -/** -* @description Initializes the class's configurable properties which can be -* changed using the menu bar's Config object ("cfg"). -* @method initDefaultConfig -*/ -initDefaultConfig: function() { - - YAHOO.widget.MenuBar.superclass.initDefaultConfig.call(this); - - var oConfig = this.cfg, - DEFAULT_CONFIG = YAHOO.widget.MenuBar._DEFAULT_CONFIG; - - // Add configuration properties - - - /* - Set the default value for the "position" configuration property - to "static" by re-adding the property. - */ - - - /** - * @config position - * @description String indicating how a menu bar should be positioned on the - * screen. Possible values are "static" and "dynamic." Static menu bars - * are visible by default and reside in the normal flow of the document - * (CSS position: static). Dynamic menu bars are hidden by default, reside - * out of the normal flow of the document (CSS position: absolute), and can - * overlay other elements on the screen. - * @default static - * @type String - */ - oConfig.addProperty( - DEFAULT_CONFIG.POSITION.key, - { - handler: this.configPosition, - value: DEFAULT_CONFIG.POSITION.value, - validator: DEFAULT_CONFIG.POSITION.validator, - supercedes: DEFAULT_CONFIG.POSITION.supercedes - } - ); - - - /* - Set the default value for the "submenualignment" configuration property - to ["tl","bl"] by re-adding the property. - */ - - /** - * @config submenualignment - * @description Array defining how submenus should be aligned to their - * parent menu bar item. The format is: [itemCorner, submenuCorner]. - * @default ["tl","bl"] - * @type Array - */ - oConfig.addProperty( - DEFAULT_CONFIG.SUBMENU_ALIGNMENT.key, - { - value: DEFAULT_CONFIG.SUBMENU_ALIGNMENT.value - } - ); - - - /* - Change the default value for the "autosubmenudisplay" configuration - property to "false" by re-adding the property. - */ - - /** - * @config autosubmenudisplay - * @description Boolean indicating if submenus are automatically made - * visible when the user mouses over the menu bar's items. - * @default false - * @type Boolean - */ - oConfig.addProperty( - DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.key, - { - value: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.value, - validator: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.validator - } - ); - -} - -}); // END YAHOO.lang.extend - - - -/** -* Creates an item for a menu bar. -* -* @param {String} p_oObject String specifying the text of the menu bar item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the menu bar item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the menu bar item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the menu bar item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar item. See configuration class documentation -* for more details. -* @class MenuBarItem -* @constructor -* @extends YAHOO.widget.MenuItem -*/ -YAHOO.widget.MenuBarItem = function(p_oObject, p_oConfig) { - - YAHOO.widget.MenuBarItem.superclass.constructor.call( - this, - p_oObject, - p_oConfig - ); - -}; - -YAHOO.lang.extend(YAHOO.widget.MenuBarItem, YAHOO.widget.MenuItem, { - - -/** -* @method init -* @description The MenuBarItem class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references for -* pre-existing markup, and creates required markup if it is not already present. -* @param {String} p_oObject String specifying the text of the menu bar item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the menu bar item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the menu bar item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the menu bar item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar item. See configuration class documentation -* for more details. -*/ -init: function(p_oObject, p_oConfig) { - - if(!this.SUBMENU_TYPE) { - - this.SUBMENU_TYPE = YAHOO.widget.Menu; - - } - - - /* - Call the init of the superclass (YAHOO.widget.MenuItem) - Note: We don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.MenuBarItem.superclass.init.call(this, p_oObject); - - - var oConfig = this.cfg; - - if(p_oConfig) { - - oConfig.applyConfig(p_oConfig, true); - - } - - oConfig.fireQueue(); - -}, - - - -// Constants - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the -* <li> element of the menu bar item. -* @default "yuimenubaritem" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuimenubaritem", - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the menu bar item. -* @return {String} -*/ -toString: function() { - - var sReturnVal = "MenuBarItem"; - - if(this.cfg && this.cfg.getProperty("text")) { - - sReturnVal += (": " + this.cfg.getProperty("text")); - - } - - return sReturnVal; - -} - -}); // END YAHOO.lang.extend -YAHOO.register("menu", YAHOO.widget.Menu, {version: "2.2.2", build: "204"}); diff --git a/www/extras/yui/build/reset-fonts-grids/README b/www/extras/yui/build/reset-fonts-grids/README deleted file mode 100644 index b7ea9abd8..000000000 --- a/www/extras/yui/build/reset-fonts-grids/README +++ /dev/null @@ -1,24 +0,0 @@ -YUI Library - Reset+Fonts+Grids (RFG) - Release Notes - -*** NOTE *** - -This document is not updated with each release. Changes to -the reset-fonts-grids.css source are noted in the README -file for each component that comprises this aggregate: - -reset/README -fonts/README -grids/README - -************ - -Version 2.2.0 - 2.2.2 - - * No changes. - -Version 0.12.0 - - * Initial release. - - * This file is a convenience file containing an in-order - concatonation of Reset, Fonts, and Grids. \ No newline at end of file diff --git a/www/extras/yui/build/reset-fonts-grids/reset-fonts-grids.css b/www/extras/yui/build/reset-fonts-grids/reset-fonts-grids.css deleted file mode 100644 index 824acf727..000000000 --- a/www/extras/yui/build/reset-fonts-grids/reset-fonts-grids.css +++ /dev/null @@ -1,9 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -/*reset.css*/body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym {border:0;} -/*fonts.css*/body{font:13px arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}table {font-size:inherit;font:100%;}select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}pre, code {font:115% monospace;*font-size:100%;}body * {line-height:1.22em;} -/*grids.css*/body{text-align:center;}#ft{clear:both;}#doc,#doc2,#doc3,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7{margin:auto;text-align:left;width:57.69em;*width:56.3em;min-width:750px;}#doc2{width:73.074em;*width:71.313em;min-width:950px;}#doc3{margin:auto 10px;width:auto;}.yui-b{position:relative;}.yui-b{_position:static;}#yui-main .yui-b{position:static;}#yui-main{width:100%;}.yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main{float:right;margin-left:-25em;}.yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main{float:left;margin-right:-25em;}.yui-t1 .yui-b{float:left;width:12.3207em;*width:12.0106em;}.yui-t1 #yui-main .yui-b{margin-left:13.3207em;*margin-left:13.0106em;}.yui-t2 .yui-b{float:left;width:13.8456em;*width:13.512em;}.yui-t2 #yui-main .yui-b{margin-left:14.8456em;*margin-left:14.512em;}.yui-t3 .yui-b{float:left;width:23.0759em;*width:22.52em;}.yui-t3 #yui-main .yui-b{margin-left:24.0759em;*margin-left:23.52em;}.yui-t4 .yui-b{float:right;width:13.8456em;*width:13.512em;}.yui-t4 #yui-main .yui-b{margin-right:14.8456em;*margin-right:14.512em;}.yui-t5 .yui-b{float:right;width:18.4608em;*width:18.016em;}.yui-t5 #yui-main .yui-b{margin-right:19.4608em;*margin-right:19.016em;}.yui-t6 .yui-b{float:right;width:23.0759em;*width:22.52em;}.yui-t6 #yui-main .yui-b{margin-right:24.0759em;*margin-right:23.52em;}.yui-t7 #yui-main .yui-b{display:block;margin:0 0 1em 0;}#yui-main .yui-b{float:none;width:auto;}.yui-g .yui-u,.yui-g .yui-g,.yui-gc .yui-u,.yui-gc .yui-g .yui-u,.yui-ge .yui-u,.yui-gf .yui-u{float:right;display:inline;}.yui-g div.first,.yui-gc div.first,.yui-gc div.first div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first{float:left;}.yui-g .yui-u,.yui-g .yui-g{width:49.1%;}.yui-g .yui-g .yui-u,.yui-gc .yui-g .yui-u{width:48.1%;}.yui-gb .yui-u,.yui-gc .yui-u,.yui-gd .yui-u{float:left;margin-left:2%;*margin-left:1.895%;width:32%;}.yui-gb div.first,.yui-gc div.first,.yui-gd div.first{margin-left:0;}.yui-gc div.first,.yui-gd .yui-u{width:66%;}.yui-gd div.first{width:32%;}.yui-ge .yui-u{width:24%;}.yui-ge div.first,.yui-gf .yui-u{width:74.2%;}.yui-gf div.first{width:24%;}.yui-ge div.first{width:74.2%;}#bd:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after{content:".";display:block;height:0;clear:both;visibility:hidden;}#bd,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf{zoom:1;} \ No newline at end of file diff --git a/www/extras/yui/build/reset/README b/www/extras/yui/build/reset/README deleted file mode 100644 index 66ad20fd4..000000000 --- a/www/extras/yui/build/reset/README +++ /dev/null @@ -1,25 +0,0 @@ -YUI Library - Reset - Release Notes - -Version 2.2.0 - 2.2.2 - - * No changes. - -Version 0.12.1 - 0.12.2 - - * No changes. - -Version 0.12.0 - - * Added: h1,h2,h3,h4,h5,h6{font-weight:normal;} - - * Added: abbr,acronym {border:0;} - - * Added: textarea {padding:0;margin:0;} - -Version 0.11.0 - - * No changes. - -Version 0.10.0 - - * Initial release. \ No newline at end of file diff --git a/www/extras/yui/build/reset/reset-min.css b/www/extras/yui/build/reset/reset-min.css deleted file mode 100644 index bab98868f..000000000 --- a/www/extras/yui/build/reset/reset-min.css +++ /dev/null @@ -1,7 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym {border:0;} \ No newline at end of file diff --git a/www/extras/yui/build/reset/reset.css b/www/extras/yui/build/reset/reset.css deleted file mode 100644 index 8af42457a..000000000 --- a/www/extras/yui/build/reset/reset.css +++ /dev/null @@ -1,15 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;} -table{border-collapse:collapse;border-spacing:0;} -fieldset,img{border:0;} -address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;} -ol,ul {list-style:none;} -caption,th {text-align:left;} -h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;} -q:before,q:after{content:'';} -abbr,acronym {border:0;} \ No newline at end of file diff --git a/www/extras/yui/build/slider/README b/www/extras/yui/build/slider/README deleted file mode 100644 index 2a440ae1b..000000000 --- a/www/extras/yui/build/slider/README +++ /dev/null @@ -1,72 +0,0 @@ -Slider - Release Notes - -2.2.2 - * No change - -2.2.1 - * No change - -2.2.0 - * Added the missing "force" parameter to the signature for setRegionValue - * deprecated the moveComplete flag - -0.12.2 - * No change - -0.12.1 - - * Removed unneccessary getXY calls that were contribuing to slower performance - in FireFox when the slider was deeply nested in the DOM. - -0.12.0 - - * Added "slideStart", "slideEnd", and "change" custom events. The abstract - methods these will eventually replace still work. - - * The default animation duration is 0.2 seconds (reduced from 0.4 seconds), - and is configurable via the animationDuration property. - - * Keyboard navigation is now built in. The background needs a tabindex for - keyboard nav to work. Keyboard nav can be disabled by setting enableKeys - to false. The number of pixels the slider moves when the arrow keys - are pressed is controlled by keyIncrement, and defaults to 20. Note, - Safari support limited to background element types that support focus - in that browser. http://bugs.webkit.org/show_bug.cgi?id=7138 - - * Fixed broken doctype in examples/index.html - - * Catching an unhandled script exception in FF that could occur when - attempting to focus the slider background while a text field without - autocomplete="false" has focus - -0.11.3 - - * No change - -0.11.0 - - * When the thumb is clicked and dragged, the click position delta is properly - applied. - - * The slider background can be disabled by setting backgroundEnabled to false. - - * Added SliderThumb->clearTicks - - * Incorporated updated drag and drop performance improvements - -0.10.0 - - * Drag and drop's autoscroll feature is now turned off by default - in the slider. - - * The slider no longer sets its initial value upon initialization - - * RGB slider example fixed for IE7. - - * Updated to work with the onAvailable feature in Drag and Drop. - - * Updated the basic slider example page to make the control more - accessible to non-FF1.5 browsers. - - * Split the examples into separate pages - diff --git a/www/extras/yui/build/slider/slider-debug.js b/www/extras/yui/build/slider/slider-debug.js deleted file mode 100644 index cb47cc719..000000000 --- a/www/extras/yui/build/slider/slider-debug.js +++ /dev/null @@ -1,1259 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -/** - * The Slider component is a UI control that enables the user to adjust - * values in a finite range along one or two axes. Typically, the Slider - * control is used in a web application as a rich, visual replacement - * for an input box that takes a number as input. The Slider control can - * also easily accommodate a second dimension, providing x,y output for - * a selection point chosen from a rectangular region. - * - * @module slider - * @title Slider Widget - * @namespace YAHOO.widget - * @requires yahoo,dom,dragdrop,event - * @optional animation - */ - -/** - * A DragDrop implementation that can be used as a background for a - * slider. It takes a reference to the thumb instance - * so it can delegate some of the events to it. The goal is to make the - * thumb jump to the location on the background when the background is - * clicked. - * - * @class Slider - * @extends YAHOO.util.DragDrop - * @uses YAHOO.util.EventProvider - * @constructor - * @param {String} id The id of the element linked to this instance - * @param {String} sGroup The group of related DragDrop items - * @param {SliderThumb} oThumb The thumb for this slider - * @param {String} sType The type of slider (horiz, vert, region) - */ -YAHOO.widget.Slider = function(sElementId, sGroup, oThumb, sType) { - if (sElementId) { - this.init(sElementId, sGroup, true); - this.initSlider(sType); - this.initThumb(oThumb); - } -}; - -/** - * Factory method for creating a horizontal slider - * @method YAHOO.widget.Slider.getHorizSlider - * @static - * @param {String} sBGElId the id of the slider's background element - * @param {String} sHandleElId the id of the thumb element - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - * @return {Slider} a horizontal slider control - */ -YAHOO.widget.Slider.getHorizSlider = - function (sBGElId, sHandleElId, iLeft, iRight, iTickSize) { - return new YAHOO.widget.Slider(sBGElId, sBGElId, - new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, - iLeft, iRight, 0, 0, iTickSize), "horiz"); -}; - -/** - * Factory method for creating a vertical slider - * @method YAHOO.widget.Slider.getVertSlider - * @static - * @param {String} sBGElId the id of the slider's background element - * @param {String} sHandleElId the id of the thumb element - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - * @return {Slider} a vertical slider control - */ -YAHOO.widget.Slider.getVertSlider = - function (sBGElId, sHandleElId, iUp, iDown, iTickSize) { - return new YAHOO.widget.Slider(sBGElId, sBGElId, - new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, 0, 0, - iUp, iDown, iTickSize), "vert"); -}; - -/** - * Factory method for creating a slider region like the one in the color - * picker example - * @method YAHOO.widget.Slider.getSliderRegion - * @static - * @param {String} sBGElId the id of the slider's background element - * @param {String} sHandleElId the id of the thumb element - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - * @return {Slider} a slider region control - */ -YAHOO.widget.Slider.getSliderRegion = - function (sBGElId, sHandleElId, iLeft, iRight, iUp, iDown, iTickSize) { - return new YAHOO.widget.Slider(sBGElId, sBGElId, - new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, iLeft, iRight, - iUp, iDown, iTickSize), "region"); -}; - -/** - * By default, animation is available if the animation library is detected. - * @property YAHOO.widget.Slider.ANIM_AVAIL - * @static - * @type boolean - */ -YAHOO.widget.Slider.ANIM_AVAIL = true; - -YAHOO.extend(YAHOO.widget.Slider, YAHOO.util.DragDrop, { - - /** - * Initializes the slider. Executed in the constructor - * @method initSlider - * @param {string} sType the type of slider (horiz, vert, region) - */ - initSlider: function(sType) { - - /** - * The type of the slider (horiz, vert, region) - * @property type - * @type string - */ - this.type = sType; - - //this.removeInvalidHandleType("A"); - - this.logger = new YAHOO.widget.LogWriter(this.toString()); - - /** - * Event the fires when the value of the control changes. If - * the control is animated the event will fire every point - * along the way. - * @event change - * @param {int} newOffset|x the new offset for normal sliders, or the new - * x offset for region sliders - * @param {int} y the number of pixels the thumb has moved on the y axis - * (region sliders only) - */ - this.createEvent("change", this); - - /** - * Event that fires at the beginning of a slider thumb move. - * @event slideStart - */ - this.createEvent("slideStart", this); - - /** - * Event that fires at the end of a slider thumb move - * @event slideEnd - */ - this.createEvent("slideEnd", this); - - /** - * Overrides the isTarget property in YAHOO.util.DragDrop - * @property isTarget - * @private - */ - this.isTarget = false; - - /** - * Flag that determines if the thumb will animate when moved - * @property animate - * @type boolean - */ - this.animate = YAHOO.widget.Slider.ANIM_AVAIL; - - /** - * Set to false to disable a background click thumb move - * @property backgroundEnabled - * @type boolean - */ - this.backgroundEnabled = true; - - /** - * Adjustment factor for tick animation, the more ticks, the - * faster the animation (by default) - * @property tickPause - * @type int - */ - this.tickPause = 40; - - /** - * Enables the arrow, home and end keys, defaults to true. - * @property enableKeys - * @type boolean - */ - this.enableKeys = true; - - /** - * Specifies the number of pixels the arrow keys will move the slider. - * Default is 25. - * @property keyIncrement - * @type int - */ - this.keyIncrement = 20; - - /** - * moveComplete is set to true when the slider has moved to its final - * destination. For animated slider, this value can be checked in - * the onChange handler to make it possible to execute logic only - * when the move is complete rather than at all points along the way. - * Deprecated because this flag is only useful when the background is - * clicked and the slider is animated. If the user drags the thumb, - * the flag is updated when the drag is over ... the final onDrag event - * fires before the mouseup the ends the drag, so the implementer will - * never see it. - * - * @property moveComplete - * @type Boolean - * @deprecated use the slideEnd event instead - */ - this.moveComplete = true; - - /** - * If animation is configured, specifies the length of the animation - * in seconds. - * @property animationDuration - * @type int - * @default 0.2 - */ - this.animationDuration = 0.2; - }, - - /** - * Initializes the slider's thumb. Executed in the constructor. - * @method initThumb - * @param {YAHOO.widget.SliderThumb} t the slider thumb - */ - initThumb: function(t) { - - var self = this; - - /** - * A YAHOO.widget.SliderThumb instance that we will use to - * reposition the thumb when the background is clicked - * @property thumb - * @type YAHOO.widget.SliderThumb - */ - this.thumb = t; - t.cacheBetweenDrags = true; - - // add handler for the handle onchange event - t.onChange = function() { - self.handleThumbChange(); - }; - - if (t._isHoriz && t.xTicks && t.xTicks.length) { - this.tickPause = Math.round(360 / t.xTicks.length); - } else if (t.yTicks && t.yTicks.length) { - this.tickPause = Math.round(360 / t.yTicks.length); - } - - this.logger.log("tickPause: " + this.tickPause); - - // delegate thumb methods - t.onMouseDown = function () { return self.focus(); }; - t.onMouseUp = function() { self.thumbMouseUp(); }; - t.onDrag = function() { self.fireEvents(true); }; - t.onAvailable = function() { return self.setStartSliderState(); }; - - }, - - /** - * Executed when the slider element is available - * @method onAvailable - */ - onAvailable: function() { - var Event = YAHOO.util.Event; - Event.on(this.id, "keydown", this.handleKeyDown, this, true); - Event.on(this.id, "keypress", this.handleKeyPress, this, true); - }, - - /** - * Executed when a keypress event happens with the control focused. - * Prevents the default behavior for navigation keys. The actual - * logic for moving the slider thumb in response to a key event - * happens in handleKeyDown. - * @param {Event} e the keypress event - */ - handleKeyPress: function(e) { - if (this.enableKeys) { - var Event = YAHOO.util.Event; - var kc = Event.getCharCode(e); - switch (kc) { - case 0x25: // left - case 0x26: // up - case 0x27: // right - case 0x28: // down - case 0x24: // home - case 0x23: // end - Event.preventDefault(e); - break; - default: - } - } - }, - - /** - * Executed when a keydown event happens with the control focused. - * Updates the slider value and display when the keypress is an - * arrow key, home, or end as long as enableKeys is set to true. - * @param {Event} e the keydown event - */ - handleKeyDown: function(e) { - if (this.enableKeys) { - var Event = YAHOO.util.Event; - - var kc = Event.getCharCode(e), t=this.thumb; - var h=this.getXValue(),v=this.getYValue(); - - var horiz = false; - var changeValue = true; - switch (kc) { - - // left - case 0x25: h -= this.keyIncrement; break; - - // up - case 0x26: v -= this.keyIncrement; break; - - // right - case 0x27: h += this.keyIncrement; break; - - // down - case 0x28: v += this.keyIncrement; break; - - // home - case 0x24: h = t.leftConstraint; - v = t.topConstraint; - break; - - // end - case 0x23: h = t.rightConstraint; - v = t.bottomConstraint; - break; - - default: changeValue = false; - } - - if (changeValue) { - if (t._isRegion) { - this.setRegionValue(h, v, true); - } else { - var newVal = (t._isHoriz) ? h : v; - this.setValue(newVal, true); - } - Event.stopEvent(e); - } - - } - }, - - /** - * Initialization that sets up the value offsets once the elements are ready - * @method setStartSliderState - */ - setStartSliderState: function() { - - this.logger.log("Fixing state"); - - this.setThumbCenterPoint(); - - /** - * The basline position of the background element, used - * to determine if the background has moved since the last - * operation. - * @property baselinePos - * @type [int, int] - */ - this.baselinePos = YAHOO.util.Dom.getXY(this.getEl()); - - this.thumb.startOffset = this.thumb.getOffsetFromParent(this.baselinePos); - - if (this.thumb._isRegion) { - if (this.deferredSetRegionValue) { - this.setRegionValue.apply(this, this.deferredSetRegionValue, true); - this.deferredSetRegionValue = null; - } else { - this.setRegionValue(0, 0, true, true); - } - } else { - if (this.deferredSetValue) { - this.setValue.apply(this, this.deferredSetValue, true); - this.deferredSetValue = null; - } else { - this.setValue(0, true, true); - } - } - }, - - /** - * When the thumb is available, we cache the centerpoint of the element so - * we can position the element correctly when the background is clicked - * @method setThumbCenterPoint - */ - setThumbCenterPoint: function() { - - var el = this.thumb.getEl(); - - if (el) { - /** - * The center of the slider element is stored so we can - * place it in the correct position when the background is clicked. - * @property thumbCenterPoint - * @type {"x": int, "y": int} - */ - this.thumbCenterPoint = { - x: parseInt(el.offsetWidth/2, 10), - y: parseInt(el.offsetHeight/2, 10) - }; - } - - }, - - /** - * Locks the slider, overrides YAHOO.util.DragDrop - * @method lock - */ - lock: function() { - this.logger.log("locking"); - this.thumb.lock(); - this.locked = true; - }, - - /** - * Unlocks the slider, overrides YAHOO.util.DragDrop - * @method unlock - */ - unlock: function() { - this.logger.log("unlocking"); - this.thumb.unlock(); - this.locked = false; - }, - - /** - * Handles mouseup event on the slider background - * @method thumbMouseUp - * @private - */ - thumbMouseUp: function() { - this.logger.log("bg mouseup"); - if (!this.isLocked() && !this.moveComplete) { - this.endMove(); - } - - }, - - /** - * Returns a reference to this slider's thumb - * @method getThumb - * @return {SliderThumb} this slider's thumb - */ - getThumb: function() { - return this.thumb; - }, - - /** - * Try to focus the element when clicked so we can add - * accessibility features - * @method focus - * @private - */ - focus: function() { - this.logger.log("focus"); - - // Focus the background element if possible - var el = this.getEl(); - - if (el.focus) { - try { - el.focus(); - } catch(e) { - // Prevent permission denied unhandled exception in FF that can - // happen when setting focus while another element is handling - // the blur. @TODO this is still writing to the error log - // (unhandled error) in FF1.5 with strict error checking on. - } - } - - this.verifyOffset(); - - if (this.isLocked()) { - return false; - } else { - this.onSlideStart(); - return true; - } - }, - - /** - * Event that fires when the value of the slider has changed - * @method onChange - * @param {int} firstOffset the number of pixels the thumb has moved - * from its start position. Normal horizontal and vertical sliders will only - * have the firstOffset. Regions will have both, the first is the horizontal - * offset, the second the vertical. - * @param {int} secondOffset the y offset for region sliders - * @deprecated use instance.subscribe("change") instead - */ - onChange: function (firstOffset, secondOffset) { - /* override me */ - this.logger.log("onChange: " + firstOffset + ", " + secondOffset); - }, - - /** - * Event that fires when the at the beginning of the slider thumb move - * @method onSlideStart - * @deprecated use instance.subscribe("slideStart") instead - */ - onSlideStart: function () { - /* override me */ - this.logger.log("onSlideStart"); - }, - - /** - * Event that fires at the end of a slider thumb move - * @method onSliderEnd - * @deprecated use instance.subscribe("slideEnd") instead - */ - onSlideEnd: function () { - /* override me */ - this.logger.log("onSlideEnd"); - }, - - /** - * Returns the slider's thumb offset from the start position - * @method getValue - * @return {int} the current value - */ - getValue: function () { - return this.thumb.getValue(); - }, - - /** - * Returns the slider's thumb X offset from the start position - * @method getXValue - * @return {int} the current horizontal offset - */ - getXValue: function () { - return this.thumb.getXValue(); - }, - - /** - * Returns the slider's thumb Y offset from the start position - * @method getYValue - * @return {int} the current vertical offset - */ - getYValue: function () { - return this.thumb.getYValue(); - }, - - /** - * Internal handler for the slider thumb's onChange event - * @method handleThumbChange - * @private - */ - handleThumbChange: function () { - var t = this.thumb; - if (t._isRegion) { - t.onChange(t.getXValue(), t.getYValue()); - this.fireEvent("change", { x: t.getXValue(), y: t.getYValue() } ); - } else { - t.onChange(t.getValue()); - this.fireEvent("change", t.getValue()); - } - - }, - - /** - * Provides a way to set the value of the slider in code. - * @method setValue - * @param {int} newOffset the number of pixels the thumb should be - * positioned away from the initial start point - * @param {boolean} skipAnim set to true to disable the animation - * for this move action (but not others). - * @param {boolean} force ignore the locked setting and set value anyway - * @return {boolean} true if the move was performed, false if it failed - */ - setValue: function(newOffset, skipAnim, force) { - this.logger.log("setValue " + newOffset); - - if (!this.thumb.available) { - this.logger.log("defer setValue until after onAvailble"); - this.deferredSetValue = arguments; - return false; - } - - if (this.isLocked() && !force) { - this.logger.log("Can't set the value, the control is locked"); - return false; - } - - if ( isNaN(newOffset) ) { - this.logger.log("setValue, Illegal argument: " + newOffset); - return false; - } - - var t = this.thumb; - var newX, newY; - this.verifyOffset(true); - if (t._isRegion) { - return false; - } else if (t._isHoriz) { - this.onSlideStart(); - // this.fireEvent("slideStart"); - newX = t.initPageX + newOffset + this.thumbCenterPoint.x; - this.moveThumb(newX, t.initPageY, skipAnim); - } else { - this.onSlideStart(); - // this.fireEvent("slideStart"); - newY = t.initPageY + newOffset + this.thumbCenterPoint.y; - this.moveThumb(t.initPageX, newY, skipAnim); - } - - return true; - }, - - /** - * Provides a way to set the value of the region slider in code. - * @method setRegionValue - * @param {int} newOffset the number of pixels the thumb should be - * positioned away from the initial start point (x axis for region) - * @param {int} newOffset2 the number of pixels the thumb should be - * positioned away from the initial start point (y axis for region) - * @param {boolean} skipAnim set to true to disable the animation - * for this move action (but not others). - * @param {boolean} force ignore the locked setting and set value anyway - * @return {boolean} true if the move was performed, false if it failed - */ - setRegionValue: function(newOffset, newOffset2, skipAnim, force) { - - if (!this.thumb.available) { - this.logger.log("defer setRegionValue until after onAvailble"); - this.deferredSetRegionValue = arguments; - return false; - } - - if (this.isLocked() && !force) { - this.logger.log("Can't set the value, the control is locked"); - return false; - } - - if ( isNaN(newOffset) ) { - this.logger.log("setRegionValue, Illegal argument: " + newOffset); - return false; - } - - var t = this.thumb; - if (t._isRegion) { - this.onSlideStart(); - var newX = t.initPageX + newOffset + this.thumbCenterPoint.x; - var newY = t.initPageY + newOffset2 + this.thumbCenterPoint.y; - this.moveThumb(newX, newY, skipAnim); - return true; - } - - return false; - - }, - - /** - * Checks the background position element position. If it has moved from the - * baseline position, the constraints for the thumb are reset - * @param checkPos {boolean} check the position instead of using cached value - * @method verifyOffset - * @return {boolean} True if the offset is the same as the baseline. - */ - verifyOffset: function(checkPos) { - - var newPos = YAHOO.util.Dom.getXY(this.getEl()); - //var newPos = [this.initPageX, this.initPageY]; - - this.logger.log("newPos: " + newPos, "warn"); - - if (newPos[0] != this.baselinePos[0] || newPos[1] != this.baselinePos[1]) { - this.logger.log("background moved, resetting constraints"); - this.thumb.resetConstraints(); - this.baselinePos = newPos; - return false; - } - - return true; - }, - - /** - * Move the associated slider moved to a timeout to try to get around the - * mousedown stealing moz does when I move the slider element between the - * cursor and the background during the mouseup event - * @method moveThumb - * @param {int} x the X coordinate of the click - * @param {int} y the Y coordinate of the click - * @param {boolean} skipAnim don't animate if the move happend onDrag - * @private - */ - moveThumb: function(x, y, skipAnim) { - - // this.logger.log("move thumb", "warn"); - - var t = this.thumb; - var self = this; - - if (!t.available) { - this.logger.log("thumb is not available yet, aborting move"); - return; - } - - this.logger.log("move thumb, x: " + x + ", y: " + y); - - // this.verifyOffset(); - - t.setDelta(this.thumbCenterPoint.x, this.thumbCenterPoint.y); - - var _p = t.getTargetCoord(x, y); - var p = [_p.x, _p.y]; - - - this.fireEvent("slideStart"); - - if (this.animate && YAHOO.widget.Slider.ANIM_AVAIL && t._graduated && !skipAnim) { - this.logger.log("graduated"); - // this.thumb._animating = true; - this.lock(); - - // cache the current thumb pos - this.curCoord = YAHOO.util.Dom.getXY(this.thumb.getEl()); - - setTimeout( function() { self.moveOneTick(p); }, this.tickPause ); - - } else if (this.animate && YAHOO.widget.Slider.ANIM_AVAIL && !skipAnim) { - this.logger.log("animating to " + p); - - // this.thumb._animating = true; - this.lock(); - - var oAnim = new YAHOO.util.Motion( - t.id, { points: { to: p } }, - this.animationDuration, - YAHOO.util.Easing.easeOut ); - - oAnim.onComplete.subscribe( function() { self.endMove(); } ); - oAnim.animate(); - } else { - t.setDragElPos(x, y); - // this.fireEvents(); - this.endMove(); - } - }, - - /** - * Move the slider one tick mark towards its final coordinate. Used - * for the animation when tick marks are defined - * @method moveOneTick - * @param {int[]} the destination coordinate - * @private - */ - moveOneTick: function(finalCoord) { - - var t = this.thumb, tmp; - - - // redundant call to getXY since we set the position most of time prior - // to getting here. Moved to this.curCoord - //var curCoord = YAHOO.util.Dom.getXY(t.getEl()); - - // alignElWithMouse caches position in lastPageX, lastPageY .. doesn't work - //var curCoord = [this.lastPageX, this.lastPageY]; - - // var thresh = Math.min(t.tickSize + (Math.floor(t.tickSize/2)), 10); - // var thresh = 10; - // var thresh = t.tickSize + (Math.floor(t.tickSize/2)); - - var nextCoord = null; - - if (t._isRegion) { - nextCoord = this._getNextX(this.curCoord, finalCoord); - var tmpX = (nextCoord) ? nextCoord[0] : this.curCoord[0]; - nextCoord = this._getNextY([tmpX, this.curCoord[1]], finalCoord); - - } else if (t._isHoriz) { - nextCoord = this._getNextX(this.curCoord, finalCoord); - } else { - nextCoord = this._getNextY(this.curCoord, finalCoord); - } - - this.logger.log("moveOneTick: " + - " finalCoord: " + finalCoord + - " this.curCoord: " + this.curCoord + - " nextCoord: " + nextCoord); - - if (nextCoord) { - - // cache the position - this.curCoord = nextCoord; - - // move to the next coord - // YAHOO.util.Dom.setXY(t.getEl(), nextCoord); - - // var el = t.getEl(); - // YAHOO.util.Dom.setStyle(el, "left", (nextCoord[0] + this.thumb.deltaSetXY[0]) + "px"); - // YAHOO.util.Dom.setStyle(el, "top", (nextCoord[1] + this.thumb.deltaSetXY[1]) + "px"); - - this.thumb.alignElWithMouse(t.getEl(), nextCoord[0], nextCoord[1]); - - // check if we are in the final position, if not make a recursive call - if (!(nextCoord[0] == finalCoord[0] && nextCoord[1] == finalCoord[1])) { - var self = this; - setTimeout(function() { self.moveOneTick(finalCoord); }, - this.tickPause); - } else { - this.endMove(); - } - } else { - this.endMove(); - } - - //this.tickPause = Math.round(this.tickPause/2); - }, - - /** - * Returns the next X tick value based on the current coord and the target coord. - * @method _getNextX - * @private - */ - _getNextX: function(curCoord, finalCoord) { - this.logger.log("getNextX: " + curCoord + ", " + finalCoord); - var t = this.thumb; - var thresh; - var tmp = []; - var nextCoord = null; - if (curCoord[0] > finalCoord[0]) { - thresh = t.tickSize - this.thumbCenterPoint.x; - tmp = t.getTargetCoord( curCoord[0] - thresh, curCoord[1] ); - nextCoord = [tmp.x, tmp.y]; - } else if (curCoord[0] < finalCoord[0]) { - thresh = t.tickSize + this.thumbCenterPoint.x; - tmp = t.getTargetCoord( curCoord[0] + thresh, curCoord[1] ); - nextCoord = [tmp.x, tmp.y]; - } else { - // equal, do nothing - } - - return nextCoord; - }, - - /** - * Returns the next Y tick value based on the current coord and the target coord. - * @method _getNextY - * @private - */ - _getNextY: function(curCoord, finalCoord) { - var t = this.thumb; - var thresh; - var tmp = []; - var nextCoord = null; - - if (curCoord[1] > finalCoord[1]) { - thresh = t.tickSize - this.thumbCenterPoint.y; - tmp = t.getTargetCoord( curCoord[0], curCoord[1] - thresh ); - nextCoord = [tmp.x, tmp.y]; - } else if (curCoord[1] < finalCoord[1]) { - thresh = t.tickSize + this.thumbCenterPoint.y; - tmp = t.getTargetCoord( curCoord[0], curCoord[1] + thresh ); - nextCoord = [tmp.x, tmp.y]; - } else { - // equal, do nothing - } - - return nextCoord; - }, - - /** - * Resets the constraints before moving the thumb. - * @method b4MouseDown - * @private - */ - b4MouseDown: function(e) { - this.thumb.autoOffset(); - this.thumb.resetConstraints(); - }, - - - /** - * Handles the mousedown event for the slider background - * @method onMouseDown - * @private - */ - onMouseDown: function(e) { - // this.resetConstraints(true); - // this.thumb.resetConstraints(true); - - if (! this.isLocked() && this.backgroundEnabled) { - var x = YAHOO.util.Event.getPageX(e); - var y = YAHOO.util.Event.getPageY(e); - this.logger.log("bg mousedown: " + x + "," + y); - - this.focus(); - this.moveThumb(x, y); - } - - }, - - /** - * Handles the onDrag event for the slider background - * @method onDrag - * @private - */ - onDrag: function(e) { - if (! this.isLocked()) { - var x = YAHOO.util.Event.getPageX(e); - var y = YAHOO.util.Event.getPageY(e); - this.moveThumb(x, y, true); - } - }, - - /** - * Fired when the slider movement ends - * @method endMove - * @private - */ - endMove: function () { - // this._animating = false; - this.unlock(); - this.moveComplete = true; - this.fireEvents(); - }, - - /** - * Fires the change event if the value has been changed. Ignored if we are in - * the middle of an animation as the event will fire when the animation is - * complete - * @method fireEvents - * @param {boolean} thumbEvent set to true if this event is fired from an event - * that occurred on the thumb. If it is, the state of the - * thumb dd object should be correct. Otherwise, the event - * originated on the background, so the thumb state needs to - * be refreshed before proceeding. - * @private - */ - fireEvents: function (thumbEvent) { - - var t = this.thumb; - // this.logger.log("FireEvents: " + t._isRegion); - - if (!thumbEvent) { - t.cachePosition(); - } - - if (! this.isLocked()) { - if (t._isRegion) { - this.logger.log("region"); - var newX = t.getXValue(); - var newY = t.getYValue(); - - if (newX != this.previousX || newY != this.previousY) { - // this.logger.log("Firing onchange"); - this.onChange(newX, newY); - this.fireEvent("change", { x: newX, y: newY }); - } - - this.previousX = newX; - this.previousY = newY; - - } else { - var newVal = t.getValue(); - if (newVal != this.previousVal) { - this.logger.log("Firing onchange: " + newVal); - this.onChange( newVal ); - this.fireEvent("change", newVal); - } - this.previousVal = newVal; - } - - if (this.moveComplete) { - this.onSlideEnd(); - this.fireEvent("slideEnd"); - this.moveComplete = false; - } - - } - }, - - /** - * Slider toString - * @method toString - * @return {string} string representation of the instance - */ - toString: function () { - return ("Slider (" + this.type +") " + this.id); - } - -}); - -YAHOO.augment(YAHOO.widget.Slider, YAHOO.util.EventProvider); - -/** - * A drag and drop implementation to be used as the thumb of a slider. - * @class SliderThumb - * @extends YAHOO.util.DD - * @constructor - * @param {String} id the id of the slider html element - * @param {String} sGroup the group of related DragDrop items - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - */ -YAHOO.widget.SliderThumb = function(id, sGroup, iLeft, iRight, iUp, iDown, iTickSize) { - - if (id) { - //this.init(id, sGroup); - YAHOO.widget.SliderThumb.superclass.constructor.call(this, id, sGroup); - - /** - * The id of the thumbs parent HTML element (the slider background - * element). - * @property parentElId - * @type string - */ - this.parentElId = sGroup; - } - - - //this.removeInvalidHandleType("A"); - - this.logger = new YAHOO.widget.LogWriter(this.toString()); - - /** - * Overrides the isTarget property in YAHOO.util.DragDrop - * @property isTarget - * @private - */ - this.isTarget = false; - - /** - * The tick size for this slider - * @property tickSize - * @type int - * @private - */ - this.tickSize = iTickSize; - - /** - * Informs the drag and drop util that the offsets should remain when - * resetting the constraints. This preserves the slider value when - * the constraints are reset - * @property maintainOffset - * @type boolean - * @private - */ - this.maintainOffset = true; - - this.initSlider(iLeft, iRight, iUp, iDown, iTickSize); - - /** - * Turns off the autoscroll feature in drag and drop - * @property scroll - * @private - */ - this.scroll = false; - -}; - -YAHOO.extend(YAHOO.widget.SliderThumb, YAHOO.util.DD, { - - /** - * The (X and Y) difference between the thumb location and its parent - * (the slider background) when the control is instantiated. - * @property startOffset - * @type [int, int] - */ - startOffset: null, - - /** - * Flag used to figure out if this is a horizontal or vertical slider - * @property _isHoriz - * @type boolean - * @private - */ - _isHoriz: false, - - /** - * Cache the last value so we can check for change - * @property _prevVal - * @type int - * @private - */ - _prevVal: 0, - - /** - * The slider is _graduated if there is a tick interval defined - * @property _graduated - * @type boolean - * @private - */ - _graduated: false, - - - /** - * Returns the difference between the location of the thumb and its parent. - * @method getOffsetFromParent - * @param {[int, int]} parentPos Optionally accepts the position of the parent - * @type [int, int] - */ - getOffsetFromParent0: function(parentPos) { - var myPos = YAHOO.util.Dom.getXY(this.getEl()); - var ppos = parentPos || YAHOO.util.Dom.getXY(this.parentElId); - - return [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ]; - }, - - getOffsetFromParent: function(parentPos) { - - var el = this.getEl(); - - if (!this.deltaOffset) { - - var myPos = YAHOO.util.Dom.getXY(el); - var ppos = parentPos || YAHOO.util.Dom.getXY(this.parentElId); - - var newOffset = [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ]; - - var l = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 ); - var t = parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 ); - - var deltaX = l - newOffset[0]; - var deltaY = t - newOffset[1]; - - if (isNaN(deltaX) || isNaN(deltaY)) { - this.logger.log("element does not have a position style def yet"); - } else { - this.deltaOffset = [deltaX, deltaY]; - } - - } else { - var newLeft = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 ); - var newTop = parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 ); - - newOffset = [newLeft + this.deltaOffset[0], newTop + this.deltaOffset[1]]; - } - - return newOffset; - - //return [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ]; - }, - - /** - * Set up the slider, must be called in the constructor of all subclasses - * @method initSlider - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize the width of the tick interval. - */ - initSlider: function (iLeft, iRight, iUp, iDown, iTickSize) { - - - //document these. new for 0.12.1 - this.initLeft = iLeft; - this.initRight = iRight; - this.initUp = iUp; - this.initDown = iDown; - - this.setXConstraint(iLeft, iRight, iTickSize); - this.setYConstraint(iUp, iDown, iTickSize); - - if (iTickSize && iTickSize > 1) { - this._graduated = true; - } - - this._isHoriz = (iLeft || iRight); - this._isVert = (iUp || iDown); - this._isRegion = (this._isHoriz && this._isVert); - - }, - - /** - * Clear's the slider's ticks - * @method clearTicks - */ - clearTicks: function () { - YAHOO.widget.SliderThumb.superclass.clearTicks.call(this); - this.tickSize = 0; - this._graduated = false; - }, - - - /** - * Gets the current offset from the element's start position in - * pixels. - * @method getValue - * @return {int} the number of pixels (positive or negative) the - * slider has moved from the start position. - */ - getValue: function () { - if (!this.available) { return 0; } - var val = (this._isHoriz) ? this.getXValue() : this.getYValue(); - //this.logger.log("getVal: " + val); - return val; - }, - - /** - * Gets the current X offset from the element's start position in - * pixels. - * @method getXValue - * @return {int} the number of pixels (positive or negative) the - * slider has moved horizontally from the start position. - */ - getXValue: function () { - if (!this.available) { return 0; } - var newOffset = this.getOffsetFromParent(); - return (newOffset[0] - this.startOffset[0]); - }, - - /** - * Gets the current Y offset from the element's start position in - * pixels. - * @method getYValue - * @return {int} the number of pixels (positive or negative) the - * slider has moved vertically from the start position. - */ - getYValue: function () { - if (!this.available) { return 0; } - var newOffset = this.getOffsetFromParent(); - return (newOffset[1] - this.startOffset[1]); - }, - - /** - * Thumb toString - * @method toString - * @return {string} string representation of the instance - */ - toString: function () { - return "SliderThumb " + this.id; - }, - - /** - * The onchange event for the handle/thumb is delegated to the YAHOO.widget.Slider - * instance it belongs to. - * @method onChange - * @private - */ - onChange: function (x, y) { - } - -}); - -if ("undefined" == typeof YAHOO.util.Anim) { - YAHOO.widget.Slider.ANIM_AVAIL = false; -} - -YAHOO.register("slider", YAHOO.widget.Slider, {version: "2.2.2", build: "204"}); diff --git a/www/extras/yui/build/slider/slider-min.js b/www/extras/yui/build/slider/slider-min.js deleted file mode 100644 index ac7048ad9..000000000 --- a/www/extras/yui/build/slider/slider-min.js +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ - -YAHOO.widget.Slider=function(sElementId,sGroup,oThumb,sType){if(sElementId){this.init(sElementId,sGroup,true);this.initSlider(sType);this.initThumb(oThumb);}};YAHOO.widget.Slider.getHorizSlider=function(sBGElId,sHandleElId,iLeft,iRight,iTickSize){return new YAHOO.widget.Slider(sBGElId,sBGElId,new YAHOO.widget.SliderThumb(sHandleElId,sBGElId,iLeft,iRight,0,0,iTickSize),"horiz");};YAHOO.widget.Slider.getVertSlider=function(sBGElId,sHandleElId,iUp,iDown,iTickSize){return new YAHOO.widget.Slider(sBGElId,sBGElId,new YAHOO.widget.SliderThumb(sHandleElId,sBGElId,0,0,iUp,iDown,iTickSize),"vert");};YAHOO.widget.Slider.getSliderRegion=function(sBGElId,sHandleElId,iLeft,iRight,iUp,iDown,iTickSize){return new YAHOO.widget.Slider(sBGElId,sBGElId,new YAHOO.widget.SliderThumb(sHandleElId,sBGElId,iLeft,iRight,iUp,iDown,iTickSize),"region");};YAHOO.widget.Slider.ANIM_AVAIL=true;YAHOO.extend(YAHOO.widget.Slider,YAHOO.util.DragDrop,{initSlider:function(sType){this.type=sType;this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);this.isTarget=false;this.animate=YAHOO.widget.Slider.ANIM_AVAIL;this.backgroundEnabled=true;this.tickPause=40;this.enableKeys=true;this.keyIncrement=20;this.moveComplete=true;this.animationDuration=0.2;},initThumb:function(t){var self=this;this.thumb=t;t.cacheBetweenDrags=true;t.onChange=function(){self.handleThumbChange();};if(t._isHoriz&&t.xTicks&&t.xTicks.length){this.tickPause=Math.round(360/t.xTicks.length);}else if(t.yTicks&&t.yTicks.length){this.tickPause=Math.round(360/t.yTicks.length);} -t.onMouseDown=function(){return self.focus();};t.onMouseUp=function(){self.thumbMouseUp();};t.onDrag=function(){self.fireEvents(true);};t.onAvailable=function(){return self.setStartSliderState();};},onAvailable:function(){var Event=YAHOO.util.Event;Event.on(this.id,"keydown",this.handleKeyDown,this,true);Event.on(this.id,"keypress",this.handleKeyPress,this,true);},handleKeyPress:function(e){if(this.enableKeys){var Event=YAHOO.util.Event;var kc=Event.getCharCode(e);switch(kc){case 0x25:case 0x26:case 0x27:case 0x28:case 0x24:case 0x23:Event.preventDefault(e);break;default:}}},handleKeyDown:function(e){if(this.enableKeys){var Event=YAHOO.util.Event;var kc=Event.getCharCode(e),t=this.thumb;var h=this.getXValue(),v=this.getYValue();var horiz=false;var changeValue=true;switch(kc){case 0x25:h-=this.keyIncrement;break;case 0x26:v-=this.keyIncrement;break;case 0x27:h+=this.keyIncrement;break;case 0x28:v+=this.keyIncrement;break;case 0x24:h=t.leftConstraint;v=t.topConstraint;break;case 0x23:h=t.rightConstraint;v=t.bottomConstraint;break;default:changeValue=false;} -if(changeValue){if(t._isRegion){this.setRegionValue(h,v,true);}else{var newVal=(t._isHoriz)?h:v;this.setValue(newVal,true);} -Event.stopEvent(e);}}},setStartSliderState:function(){this.setThumbCenterPoint();this.baselinePos=YAHOO.util.Dom.getXY(this.getEl());this.thumb.startOffset=this.thumb.getOffsetFromParent(this.baselinePos);if(this.thumb._isRegion){if(this.deferredSetRegionValue){this.setRegionValue.apply(this,this.deferredSetRegionValue,true);this.deferredSetRegionValue=null;}else{this.setRegionValue(0,0,true,true);}}else{if(this.deferredSetValue){this.setValue.apply(this,this.deferredSetValue,true);this.deferredSetValue=null;}else{this.setValue(0,true,true);}}},setThumbCenterPoint:function(){var el=this.thumb.getEl();if(el){this.thumbCenterPoint={x:parseInt(el.offsetWidth/2,10),y:parseInt(el.offsetHeight/2,10)};}},lock:function(){this.thumb.lock();this.locked=true;},unlock:function(){this.thumb.unlock();this.locked=false;},thumbMouseUp:function(){if(!this.isLocked()&&!this.moveComplete){this.endMove();}},getThumb:function(){return this.thumb;},focus:function(){var el=this.getEl();if(el.focus){try{el.focus();}catch(e){}} -this.verifyOffset();if(this.isLocked()){return false;}else{this.onSlideStart();return true;}},onChange:function(firstOffset,secondOffset){},onSlideStart:function(){},onSlideEnd:function(){},getValue:function(){return this.thumb.getValue();},getXValue:function(){return this.thumb.getXValue();},getYValue:function(){return this.thumb.getYValue();},handleThumbChange:function(){var t=this.thumb;if(t._isRegion){t.onChange(t.getXValue(),t.getYValue());this.fireEvent("change",{x:t.getXValue(),y:t.getYValue()});}else{t.onChange(t.getValue());this.fireEvent("change",t.getValue());}},setValue:function(newOffset,skipAnim,force){if(!this.thumb.available){this.deferredSetValue=arguments;return false;} -if(this.isLocked()&&!force){return false;} -if(isNaN(newOffset)){return false;} -var t=this.thumb;var newX,newY;this.verifyOffset(true);if(t._isRegion){return false;}else if(t._isHoriz){this.onSlideStart();newX=t.initPageX+newOffset+this.thumbCenterPoint.x;this.moveThumb(newX,t.initPageY,skipAnim);}else{this.onSlideStart();newY=t.initPageY+newOffset+this.thumbCenterPoint.y;this.moveThumb(t.initPageX,newY,skipAnim);} -return true;},setRegionValue:function(newOffset,newOffset2,skipAnim,force){if(!this.thumb.available){this.deferredSetRegionValue=arguments;return false;} -if(this.isLocked()&&!force){return false;} -if(isNaN(newOffset)){return false;} -var t=this.thumb;if(t._isRegion){this.onSlideStart();var newX=t.initPageX+newOffset+this.thumbCenterPoint.x;var newY=t.initPageY+newOffset2+this.thumbCenterPoint.y;this.moveThumb(newX,newY,skipAnim);return true;} -return false;},verifyOffset:function(checkPos){var newPos=YAHOO.util.Dom.getXY(this.getEl());if(newPos[0]!=this.baselinePos[0]||newPos[1]!=this.baselinePos[1]){this.thumb.resetConstraints();this.baselinePos=newPos;return false;} -return true;},moveThumb:function(x,y,skipAnim){var t=this.thumb;var self=this;if(!t.available){return;} -t.setDelta(this.thumbCenterPoint.x,this.thumbCenterPoint.y);var _p=t.getTargetCoord(x,y);var p=[_p.x,_p.y];this.fireEvent("slideStart");if(this.animate&&YAHOO.widget.Slider.ANIM_AVAIL&&t._graduated&&!skipAnim){this.lock();this.curCoord=YAHOO.util.Dom.getXY(this.thumb.getEl());setTimeout(function(){self.moveOneTick(p);},this.tickPause);}else if(this.animate&&YAHOO.widget.Slider.ANIM_AVAIL&&!skipAnim){this.lock();var oAnim=new YAHOO.util.Motion(t.id,{points:{to:p}},this.animationDuration,YAHOO.util.Easing.easeOut);oAnim.onComplete.subscribe(function(){self.endMove();});oAnim.animate();}else{t.setDragElPos(x,y);this.endMove();}},moveOneTick:function(finalCoord){var t=this.thumb,tmp;var nextCoord=null;if(t._isRegion){nextCoord=this._getNextX(this.curCoord,finalCoord);var tmpX=(nextCoord)?nextCoord[0]:this.curCoord[0];nextCoord=this._getNextY([tmpX,this.curCoord[1]],finalCoord);}else if(t._isHoriz){nextCoord=this._getNextX(this.curCoord,finalCoord);}else{nextCoord=this._getNextY(this.curCoord,finalCoord);} -if(nextCoord){this.curCoord=nextCoord;this.thumb.alignElWithMouse(t.getEl(),nextCoord[0],nextCoord[1]);if(!(nextCoord[0]==finalCoord[0]&&nextCoord[1]==finalCoord[1])){var self=this;setTimeout(function(){self.moveOneTick(finalCoord);},this.tickPause);}else{this.endMove();}}else{this.endMove();}},_getNextX:function(curCoord,finalCoord){var t=this.thumb;var thresh;var tmp=[];var nextCoord=null;if(curCoord[0]>finalCoord[0]){thresh=t.tickSize-this.thumbCenterPoint.x;tmp=t.getTargetCoord(curCoord[0]-thresh,curCoord[1]);nextCoord=[tmp.x,tmp.y];}else if(curCoord[0]finalCoord[1]){thresh=t.tickSize-this.thumbCenterPoint.y;tmp=t.getTargetCoord(curCoord[0],curCoord[1]-thresh);nextCoord=[tmp.x,tmp.y];}else if(curCoord[1]1){this._graduated=true;} -this._isHoriz=(iLeft||iRight);this._isVert=(iUp||iDown);this._isRegion=(this._isHoriz&&this._isVert);},clearTicks:function(){YAHOO.widget.SliderThumb.superclass.clearTicks.call(this);this.tickSize=0;this._graduated=false;},getValue:function(){if(!this.available){return 0;} -var val=(this._isHoriz)?this.getXValue():this.getYValue();return val;},getXValue:function(){if(!this.available){return 0;} -var newOffset=this.getOffsetFromParent();return(newOffset[0]-this.startOffset[0]);},getYValue:function(){if(!this.available){return 0;} -var newOffset=this.getOffsetFromParent();return(newOffset[1]-this.startOffset[1]);},toString:function(){return"SliderThumb "+this.id;},onChange:function(x,y){}});if("undefined"==typeof YAHOO.util.Anim){YAHOO.widget.Slider.ANIM_AVAIL=false;} -YAHOO.register("slider",YAHOO.widget.Slider,{version:"2.2.2",build:"204"}); \ No newline at end of file diff --git a/www/extras/yui/build/slider/slider.js b/www/extras/yui/build/slider/slider.js deleted file mode 100644 index efbd74eef..000000000 --- a/www/extras/yui/build/slider/slider.js +++ /dev/null @@ -1,1222 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -/** - * The Slider component is a UI control that enables the user to adjust - * values in a finite range along one or two axes. Typically, the Slider - * control is used in a web application as a rich, visual replacement - * for an input box that takes a number as input. The Slider control can - * also easily accommodate a second dimension, providing x,y output for - * a selection point chosen from a rectangular region. - * - * @module slider - * @title Slider Widget - * @namespace YAHOO.widget - * @requires yahoo,dom,dragdrop,event - * @optional animation - */ - -/** - * A DragDrop implementation that can be used as a background for a - * slider. It takes a reference to the thumb instance - * so it can delegate some of the events to it. The goal is to make the - * thumb jump to the location on the background when the background is - * clicked. - * - * @class Slider - * @extends YAHOO.util.DragDrop - * @uses YAHOO.util.EventProvider - * @constructor - * @param {String} id The id of the element linked to this instance - * @param {String} sGroup The group of related DragDrop items - * @param {SliderThumb} oThumb The thumb for this slider - * @param {String} sType The type of slider (horiz, vert, region) - */ -YAHOO.widget.Slider = function(sElementId, sGroup, oThumb, sType) { - if (sElementId) { - this.init(sElementId, sGroup, true); - this.initSlider(sType); - this.initThumb(oThumb); - } -}; - -/** - * Factory method for creating a horizontal slider - * @method YAHOO.widget.Slider.getHorizSlider - * @static - * @param {String} sBGElId the id of the slider's background element - * @param {String} sHandleElId the id of the thumb element - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - * @return {Slider} a horizontal slider control - */ -YAHOO.widget.Slider.getHorizSlider = - function (sBGElId, sHandleElId, iLeft, iRight, iTickSize) { - return new YAHOO.widget.Slider(sBGElId, sBGElId, - new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, - iLeft, iRight, 0, 0, iTickSize), "horiz"); -}; - -/** - * Factory method for creating a vertical slider - * @method YAHOO.widget.Slider.getVertSlider - * @static - * @param {String} sBGElId the id of the slider's background element - * @param {String} sHandleElId the id of the thumb element - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - * @return {Slider} a vertical slider control - */ -YAHOO.widget.Slider.getVertSlider = - function (sBGElId, sHandleElId, iUp, iDown, iTickSize) { - return new YAHOO.widget.Slider(sBGElId, sBGElId, - new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, 0, 0, - iUp, iDown, iTickSize), "vert"); -}; - -/** - * Factory method for creating a slider region like the one in the color - * picker example - * @method YAHOO.widget.Slider.getSliderRegion - * @static - * @param {String} sBGElId the id of the slider's background element - * @param {String} sHandleElId the id of the thumb element - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - * @return {Slider} a slider region control - */ -YAHOO.widget.Slider.getSliderRegion = - function (sBGElId, sHandleElId, iLeft, iRight, iUp, iDown, iTickSize) { - return new YAHOO.widget.Slider(sBGElId, sBGElId, - new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, iLeft, iRight, - iUp, iDown, iTickSize), "region"); -}; - -/** - * By default, animation is available if the animation library is detected. - * @property YAHOO.widget.Slider.ANIM_AVAIL - * @static - * @type boolean - */ -YAHOO.widget.Slider.ANIM_AVAIL = true; - -YAHOO.extend(YAHOO.widget.Slider, YAHOO.util.DragDrop, { - - /** - * Initializes the slider. Executed in the constructor - * @method initSlider - * @param {string} sType the type of slider (horiz, vert, region) - */ - initSlider: function(sType) { - - /** - * The type of the slider (horiz, vert, region) - * @property type - * @type string - */ - this.type = sType; - - //this.removeInvalidHandleType("A"); - - - /** - * Event the fires when the value of the control changes. If - * the control is animated the event will fire every point - * along the way. - * @event change - * @param {int} newOffset|x the new offset for normal sliders, or the new - * x offset for region sliders - * @param {int} y the number of pixels the thumb has moved on the y axis - * (region sliders only) - */ - this.createEvent("change", this); - - /** - * Event that fires at the beginning of a slider thumb move. - * @event slideStart - */ - this.createEvent("slideStart", this); - - /** - * Event that fires at the end of a slider thumb move - * @event slideEnd - */ - this.createEvent("slideEnd", this); - - /** - * Overrides the isTarget property in YAHOO.util.DragDrop - * @property isTarget - * @private - */ - this.isTarget = false; - - /** - * Flag that determines if the thumb will animate when moved - * @property animate - * @type boolean - */ - this.animate = YAHOO.widget.Slider.ANIM_AVAIL; - - /** - * Set to false to disable a background click thumb move - * @property backgroundEnabled - * @type boolean - */ - this.backgroundEnabled = true; - - /** - * Adjustment factor for tick animation, the more ticks, the - * faster the animation (by default) - * @property tickPause - * @type int - */ - this.tickPause = 40; - - /** - * Enables the arrow, home and end keys, defaults to true. - * @property enableKeys - * @type boolean - */ - this.enableKeys = true; - - /** - * Specifies the number of pixels the arrow keys will move the slider. - * Default is 25. - * @property keyIncrement - * @type int - */ - this.keyIncrement = 20; - - /** - * moveComplete is set to true when the slider has moved to its final - * destination. For animated slider, this value can be checked in - * the onChange handler to make it possible to execute logic only - * when the move is complete rather than at all points along the way. - * Deprecated because this flag is only useful when the background is - * clicked and the slider is animated. If the user drags the thumb, - * the flag is updated when the drag is over ... the final onDrag event - * fires before the mouseup the ends the drag, so the implementer will - * never see it. - * - * @property moveComplete - * @type Boolean - * @deprecated use the slideEnd event instead - */ - this.moveComplete = true; - - /** - * If animation is configured, specifies the length of the animation - * in seconds. - * @property animationDuration - * @type int - * @default 0.2 - */ - this.animationDuration = 0.2; - }, - - /** - * Initializes the slider's thumb. Executed in the constructor. - * @method initThumb - * @param {YAHOO.widget.SliderThumb} t the slider thumb - */ - initThumb: function(t) { - - var self = this; - - /** - * A YAHOO.widget.SliderThumb instance that we will use to - * reposition the thumb when the background is clicked - * @property thumb - * @type YAHOO.widget.SliderThumb - */ - this.thumb = t; - t.cacheBetweenDrags = true; - - // add handler for the handle onchange event - t.onChange = function() { - self.handleThumbChange(); - }; - - if (t._isHoriz && t.xTicks && t.xTicks.length) { - this.tickPause = Math.round(360 / t.xTicks.length); - } else if (t.yTicks && t.yTicks.length) { - this.tickPause = Math.round(360 / t.yTicks.length); - } - - - // delegate thumb methods - t.onMouseDown = function () { return self.focus(); }; - t.onMouseUp = function() { self.thumbMouseUp(); }; - t.onDrag = function() { self.fireEvents(true); }; - t.onAvailable = function() { return self.setStartSliderState(); }; - - }, - - /** - * Executed when the slider element is available - * @method onAvailable - */ - onAvailable: function() { - var Event = YAHOO.util.Event; - Event.on(this.id, "keydown", this.handleKeyDown, this, true); - Event.on(this.id, "keypress", this.handleKeyPress, this, true); - }, - - /** - * Executed when a keypress event happens with the control focused. - * Prevents the default behavior for navigation keys. The actual - * logic for moving the slider thumb in response to a key event - * happens in handleKeyDown. - * @param {Event} e the keypress event - */ - handleKeyPress: function(e) { - if (this.enableKeys) { - var Event = YAHOO.util.Event; - var kc = Event.getCharCode(e); - switch (kc) { - case 0x25: // left - case 0x26: // up - case 0x27: // right - case 0x28: // down - case 0x24: // home - case 0x23: // end - Event.preventDefault(e); - break; - default: - } - } - }, - - /** - * Executed when a keydown event happens with the control focused. - * Updates the slider value and display when the keypress is an - * arrow key, home, or end as long as enableKeys is set to true. - * @param {Event} e the keydown event - */ - handleKeyDown: function(e) { - if (this.enableKeys) { - var Event = YAHOO.util.Event; - - var kc = Event.getCharCode(e), t=this.thumb; - var h=this.getXValue(),v=this.getYValue(); - - var horiz = false; - var changeValue = true; - switch (kc) { - - // left - case 0x25: h -= this.keyIncrement; break; - - // up - case 0x26: v -= this.keyIncrement; break; - - // right - case 0x27: h += this.keyIncrement; break; - - // down - case 0x28: v += this.keyIncrement; break; - - // home - case 0x24: h = t.leftConstraint; - v = t.topConstraint; - break; - - // end - case 0x23: h = t.rightConstraint; - v = t.bottomConstraint; - break; - - default: changeValue = false; - } - - if (changeValue) { - if (t._isRegion) { - this.setRegionValue(h, v, true); - } else { - var newVal = (t._isHoriz) ? h : v; - this.setValue(newVal, true); - } - Event.stopEvent(e); - } - - } - }, - - /** - * Initialization that sets up the value offsets once the elements are ready - * @method setStartSliderState - */ - setStartSliderState: function() { - - - this.setThumbCenterPoint(); - - /** - * The basline position of the background element, used - * to determine if the background has moved since the last - * operation. - * @property baselinePos - * @type [int, int] - */ - this.baselinePos = YAHOO.util.Dom.getXY(this.getEl()); - - this.thumb.startOffset = this.thumb.getOffsetFromParent(this.baselinePos); - - if (this.thumb._isRegion) { - if (this.deferredSetRegionValue) { - this.setRegionValue.apply(this, this.deferredSetRegionValue, true); - this.deferredSetRegionValue = null; - } else { - this.setRegionValue(0, 0, true, true); - } - } else { - if (this.deferredSetValue) { - this.setValue.apply(this, this.deferredSetValue, true); - this.deferredSetValue = null; - } else { - this.setValue(0, true, true); - } - } - }, - - /** - * When the thumb is available, we cache the centerpoint of the element so - * we can position the element correctly when the background is clicked - * @method setThumbCenterPoint - */ - setThumbCenterPoint: function() { - - var el = this.thumb.getEl(); - - if (el) { - /** - * The center of the slider element is stored so we can - * place it in the correct position when the background is clicked. - * @property thumbCenterPoint - * @type {"x": int, "y": int} - */ - this.thumbCenterPoint = { - x: parseInt(el.offsetWidth/2, 10), - y: parseInt(el.offsetHeight/2, 10) - }; - } - - }, - - /** - * Locks the slider, overrides YAHOO.util.DragDrop - * @method lock - */ - lock: function() { - this.thumb.lock(); - this.locked = true; - }, - - /** - * Unlocks the slider, overrides YAHOO.util.DragDrop - * @method unlock - */ - unlock: function() { - this.thumb.unlock(); - this.locked = false; - }, - - /** - * Handles mouseup event on the slider background - * @method thumbMouseUp - * @private - */ - thumbMouseUp: function() { - if (!this.isLocked() && !this.moveComplete) { - this.endMove(); - } - - }, - - /** - * Returns a reference to this slider's thumb - * @method getThumb - * @return {SliderThumb} this slider's thumb - */ - getThumb: function() { - return this.thumb; - }, - - /** - * Try to focus the element when clicked so we can add - * accessibility features - * @method focus - * @private - */ - focus: function() { - - // Focus the background element if possible - var el = this.getEl(); - - if (el.focus) { - try { - el.focus(); - } catch(e) { - // Prevent permission denied unhandled exception in FF that can - // happen when setting focus while another element is handling - // the blur. @TODO this is still writing to the error log - // (unhandled error) in FF1.5 with strict error checking on. - } - } - - this.verifyOffset(); - - if (this.isLocked()) { - return false; - } else { - this.onSlideStart(); - return true; - } - }, - - /** - * Event that fires when the value of the slider has changed - * @method onChange - * @param {int} firstOffset the number of pixels the thumb has moved - * from its start position. Normal horizontal and vertical sliders will only - * have the firstOffset. Regions will have both, the first is the horizontal - * offset, the second the vertical. - * @param {int} secondOffset the y offset for region sliders - * @deprecated use instance.subscribe("change") instead - */ - onChange: function (firstOffset, secondOffset) { - /* override me */ - }, - - /** - * Event that fires when the at the beginning of the slider thumb move - * @method onSlideStart - * @deprecated use instance.subscribe("slideStart") instead - */ - onSlideStart: function () { - /* override me */ - }, - - /** - * Event that fires at the end of a slider thumb move - * @method onSliderEnd - * @deprecated use instance.subscribe("slideEnd") instead - */ - onSlideEnd: function () { - /* override me */ - }, - - /** - * Returns the slider's thumb offset from the start position - * @method getValue - * @return {int} the current value - */ - getValue: function () { - return this.thumb.getValue(); - }, - - /** - * Returns the slider's thumb X offset from the start position - * @method getXValue - * @return {int} the current horizontal offset - */ - getXValue: function () { - return this.thumb.getXValue(); - }, - - /** - * Returns the slider's thumb Y offset from the start position - * @method getYValue - * @return {int} the current vertical offset - */ - getYValue: function () { - return this.thumb.getYValue(); - }, - - /** - * Internal handler for the slider thumb's onChange event - * @method handleThumbChange - * @private - */ - handleThumbChange: function () { - var t = this.thumb; - if (t._isRegion) { - t.onChange(t.getXValue(), t.getYValue()); - this.fireEvent("change", { x: t.getXValue(), y: t.getYValue() } ); - } else { - t.onChange(t.getValue()); - this.fireEvent("change", t.getValue()); - } - - }, - - /** - * Provides a way to set the value of the slider in code. - * @method setValue - * @param {int} newOffset the number of pixels the thumb should be - * positioned away from the initial start point - * @param {boolean} skipAnim set to true to disable the animation - * for this move action (but not others). - * @param {boolean} force ignore the locked setting and set value anyway - * @return {boolean} true if the move was performed, false if it failed - */ - setValue: function(newOffset, skipAnim, force) { - - if (!this.thumb.available) { - this.deferredSetValue = arguments; - return false; - } - - if (this.isLocked() && !force) { - return false; - } - - if ( isNaN(newOffset) ) { - return false; - } - - var t = this.thumb; - var newX, newY; - this.verifyOffset(true); - if (t._isRegion) { - return false; - } else if (t._isHoriz) { - this.onSlideStart(); - // this.fireEvent("slideStart"); - newX = t.initPageX + newOffset + this.thumbCenterPoint.x; - this.moveThumb(newX, t.initPageY, skipAnim); - } else { - this.onSlideStart(); - // this.fireEvent("slideStart"); - newY = t.initPageY + newOffset + this.thumbCenterPoint.y; - this.moveThumb(t.initPageX, newY, skipAnim); - } - - return true; - }, - - /** - * Provides a way to set the value of the region slider in code. - * @method setRegionValue - * @param {int} newOffset the number of pixels the thumb should be - * positioned away from the initial start point (x axis for region) - * @param {int} newOffset2 the number of pixels the thumb should be - * positioned away from the initial start point (y axis for region) - * @param {boolean} skipAnim set to true to disable the animation - * for this move action (but not others). - * @param {boolean} force ignore the locked setting and set value anyway - * @return {boolean} true if the move was performed, false if it failed - */ - setRegionValue: function(newOffset, newOffset2, skipAnim, force) { - - if (!this.thumb.available) { - this.deferredSetRegionValue = arguments; - return false; - } - - if (this.isLocked() && !force) { - return false; - } - - if ( isNaN(newOffset) ) { - return false; - } - - var t = this.thumb; - if (t._isRegion) { - this.onSlideStart(); - var newX = t.initPageX + newOffset + this.thumbCenterPoint.x; - var newY = t.initPageY + newOffset2 + this.thumbCenterPoint.y; - this.moveThumb(newX, newY, skipAnim); - return true; - } - - return false; - - }, - - /** - * Checks the background position element position. If it has moved from the - * baseline position, the constraints for the thumb are reset - * @param checkPos {boolean} check the position instead of using cached value - * @method verifyOffset - * @return {boolean} True if the offset is the same as the baseline. - */ - verifyOffset: function(checkPos) { - - var newPos = YAHOO.util.Dom.getXY(this.getEl()); - //var newPos = [this.initPageX, this.initPageY]; - - - if (newPos[0] != this.baselinePos[0] || newPos[1] != this.baselinePos[1]) { - this.thumb.resetConstraints(); - this.baselinePos = newPos; - return false; - } - - return true; - }, - - /** - * Move the associated slider moved to a timeout to try to get around the - * mousedown stealing moz does when I move the slider element between the - * cursor and the background during the mouseup event - * @method moveThumb - * @param {int} x the X coordinate of the click - * @param {int} y the Y coordinate of the click - * @param {boolean} skipAnim don't animate if the move happend onDrag - * @private - */ - moveThumb: function(x, y, skipAnim) { - - - var t = this.thumb; - var self = this; - - if (!t.available) { - return; - } - - - // this.verifyOffset(); - - t.setDelta(this.thumbCenterPoint.x, this.thumbCenterPoint.y); - - var _p = t.getTargetCoord(x, y); - var p = [_p.x, _p.y]; - - - this.fireEvent("slideStart"); - - if (this.animate && YAHOO.widget.Slider.ANIM_AVAIL && t._graduated && !skipAnim) { - // this.thumb._animating = true; - this.lock(); - - // cache the current thumb pos - this.curCoord = YAHOO.util.Dom.getXY(this.thumb.getEl()); - - setTimeout( function() { self.moveOneTick(p); }, this.tickPause ); - - } else if (this.animate && YAHOO.widget.Slider.ANIM_AVAIL && !skipAnim) { - - // this.thumb._animating = true; - this.lock(); - - var oAnim = new YAHOO.util.Motion( - t.id, { points: { to: p } }, - this.animationDuration, - YAHOO.util.Easing.easeOut ); - - oAnim.onComplete.subscribe( function() { self.endMove(); } ); - oAnim.animate(); - } else { - t.setDragElPos(x, y); - // this.fireEvents(); - this.endMove(); - } - }, - - /** - * Move the slider one tick mark towards its final coordinate. Used - * for the animation when tick marks are defined - * @method moveOneTick - * @param {int[]} the destination coordinate - * @private - */ - moveOneTick: function(finalCoord) { - - var t = this.thumb, tmp; - - - // redundant call to getXY since we set the position most of time prior - // to getting here. Moved to this.curCoord - //var curCoord = YAHOO.util.Dom.getXY(t.getEl()); - - // alignElWithMouse caches position in lastPageX, lastPageY .. doesn't work - //var curCoord = [this.lastPageX, this.lastPageY]; - - // var thresh = Math.min(t.tickSize + (Math.floor(t.tickSize/2)), 10); - // var thresh = 10; - // var thresh = t.tickSize + (Math.floor(t.tickSize/2)); - - var nextCoord = null; - - if (t._isRegion) { - nextCoord = this._getNextX(this.curCoord, finalCoord); - var tmpX = (nextCoord) ? nextCoord[0] : this.curCoord[0]; - nextCoord = this._getNextY([tmpX, this.curCoord[1]], finalCoord); - - } else if (t._isHoriz) { - nextCoord = this._getNextX(this.curCoord, finalCoord); - } else { - nextCoord = this._getNextY(this.curCoord, finalCoord); - } - - - if (nextCoord) { - - // cache the position - this.curCoord = nextCoord; - - // move to the next coord - // YAHOO.util.Dom.setXY(t.getEl(), nextCoord); - - // var el = t.getEl(); - // YAHOO.util.Dom.setStyle(el, "left", (nextCoord[0] + this.thumb.deltaSetXY[0]) + "px"); - // YAHOO.util.Dom.setStyle(el, "top", (nextCoord[1] + this.thumb.deltaSetXY[1]) + "px"); - - this.thumb.alignElWithMouse(t.getEl(), nextCoord[0], nextCoord[1]); - - // check if we are in the final position, if not make a recursive call - if (!(nextCoord[0] == finalCoord[0] && nextCoord[1] == finalCoord[1])) { - var self = this; - setTimeout(function() { self.moveOneTick(finalCoord); }, - this.tickPause); - } else { - this.endMove(); - } - } else { - this.endMove(); - } - - //this.tickPause = Math.round(this.tickPause/2); - }, - - /** - * Returns the next X tick value based on the current coord and the target coord. - * @method _getNextX - * @private - */ - _getNextX: function(curCoord, finalCoord) { - var t = this.thumb; - var thresh; - var tmp = []; - var nextCoord = null; - if (curCoord[0] > finalCoord[0]) { - thresh = t.tickSize - this.thumbCenterPoint.x; - tmp = t.getTargetCoord( curCoord[0] - thresh, curCoord[1] ); - nextCoord = [tmp.x, tmp.y]; - } else if (curCoord[0] < finalCoord[0]) { - thresh = t.tickSize + this.thumbCenterPoint.x; - tmp = t.getTargetCoord( curCoord[0] + thresh, curCoord[1] ); - nextCoord = [tmp.x, tmp.y]; - } else { - // equal, do nothing - } - - return nextCoord; - }, - - /** - * Returns the next Y tick value based on the current coord and the target coord. - * @method _getNextY - * @private - */ - _getNextY: function(curCoord, finalCoord) { - var t = this.thumb; - var thresh; - var tmp = []; - var nextCoord = null; - - if (curCoord[1] > finalCoord[1]) { - thresh = t.tickSize - this.thumbCenterPoint.y; - tmp = t.getTargetCoord( curCoord[0], curCoord[1] - thresh ); - nextCoord = [tmp.x, tmp.y]; - } else if (curCoord[1] < finalCoord[1]) { - thresh = t.tickSize + this.thumbCenterPoint.y; - tmp = t.getTargetCoord( curCoord[0], curCoord[1] + thresh ); - nextCoord = [tmp.x, tmp.y]; - } else { - // equal, do nothing - } - - return nextCoord; - }, - - /** - * Resets the constraints before moving the thumb. - * @method b4MouseDown - * @private - */ - b4MouseDown: function(e) { - this.thumb.autoOffset(); - this.thumb.resetConstraints(); - }, - - - /** - * Handles the mousedown event for the slider background - * @method onMouseDown - * @private - */ - onMouseDown: function(e) { - // this.resetConstraints(true); - // this.thumb.resetConstraints(true); - - if (! this.isLocked() && this.backgroundEnabled) { - var x = YAHOO.util.Event.getPageX(e); - var y = YAHOO.util.Event.getPageY(e); - - this.focus(); - this.moveThumb(x, y); - } - - }, - - /** - * Handles the onDrag event for the slider background - * @method onDrag - * @private - */ - onDrag: function(e) { - if (! this.isLocked()) { - var x = YAHOO.util.Event.getPageX(e); - var y = YAHOO.util.Event.getPageY(e); - this.moveThumb(x, y, true); - } - }, - - /** - * Fired when the slider movement ends - * @method endMove - * @private - */ - endMove: function () { - // this._animating = false; - this.unlock(); - this.moveComplete = true; - this.fireEvents(); - }, - - /** - * Fires the change event if the value has been changed. Ignored if we are in - * the middle of an animation as the event will fire when the animation is - * complete - * @method fireEvents - * @param {boolean} thumbEvent set to true if this event is fired from an event - * that occurred on the thumb. If it is, the state of the - * thumb dd object should be correct. Otherwise, the event - * originated on the background, so the thumb state needs to - * be refreshed before proceeding. - * @private - */ - fireEvents: function (thumbEvent) { - - var t = this.thumb; - - if (!thumbEvent) { - t.cachePosition(); - } - - if (! this.isLocked()) { - if (t._isRegion) { - var newX = t.getXValue(); - var newY = t.getYValue(); - - if (newX != this.previousX || newY != this.previousY) { - this.onChange(newX, newY); - this.fireEvent("change", { x: newX, y: newY }); - } - - this.previousX = newX; - this.previousY = newY; - - } else { - var newVal = t.getValue(); - if (newVal != this.previousVal) { - this.onChange( newVal ); - this.fireEvent("change", newVal); - } - this.previousVal = newVal; - } - - if (this.moveComplete) { - this.onSlideEnd(); - this.fireEvent("slideEnd"); - this.moveComplete = false; - } - - } - }, - - /** - * Slider toString - * @method toString - * @return {string} string representation of the instance - */ - toString: function () { - return ("Slider (" + this.type +") " + this.id); - } - -}); - -YAHOO.augment(YAHOO.widget.Slider, YAHOO.util.EventProvider); - -/** - * A drag and drop implementation to be used as the thumb of a slider. - * @class SliderThumb - * @extends YAHOO.util.DD - * @constructor - * @param {String} id the id of the slider html element - * @param {String} sGroup the group of related DragDrop items - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - */ -YAHOO.widget.SliderThumb = function(id, sGroup, iLeft, iRight, iUp, iDown, iTickSize) { - - if (id) { - //this.init(id, sGroup); - YAHOO.widget.SliderThumb.superclass.constructor.call(this, id, sGroup); - - /** - * The id of the thumbs parent HTML element (the slider background - * element). - * @property parentElId - * @type string - */ - this.parentElId = sGroup; - } - - - //this.removeInvalidHandleType("A"); - - - /** - * Overrides the isTarget property in YAHOO.util.DragDrop - * @property isTarget - * @private - */ - this.isTarget = false; - - /** - * The tick size for this slider - * @property tickSize - * @type int - * @private - */ - this.tickSize = iTickSize; - - /** - * Informs the drag and drop util that the offsets should remain when - * resetting the constraints. This preserves the slider value when - * the constraints are reset - * @property maintainOffset - * @type boolean - * @private - */ - this.maintainOffset = true; - - this.initSlider(iLeft, iRight, iUp, iDown, iTickSize); - - /** - * Turns off the autoscroll feature in drag and drop - * @property scroll - * @private - */ - this.scroll = false; - -}; - -YAHOO.extend(YAHOO.widget.SliderThumb, YAHOO.util.DD, { - - /** - * The (X and Y) difference between the thumb location and its parent - * (the slider background) when the control is instantiated. - * @property startOffset - * @type [int, int] - */ - startOffset: null, - - /** - * Flag used to figure out if this is a horizontal or vertical slider - * @property _isHoriz - * @type boolean - * @private - */ - _isHoriz: false, - - /** - * Cache the last value so we can check for change - * @property _prevVal - * @type int - * @private - */ - _prevVal: 0, - - /** - * The slider is _graduated if there is a tick interval defined - * @property _graduated - * @type boolean - * @private - */ - _graduated: false, - - - /** - * Returns the difference between the location of the thumb and its parent. - * @method getOffsetFromParent - * @param {[int, int]} parentPos Optionally accepts the position of the parent - * @type [int, int] - */ - getOffsetFromParent0: function(parentPos) { - var myPos = YAHOO.util.Dom.getXY(this.getEl()); - var ppos = parentPos || YAHOO.util.Dom.getXY(this.parentElId); - - return [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ]; - }, - - getOffsetFromParent: function(parentPos) { - - var el = this.getEl(); - - if (!this.deltaOffset) { - - var myPos = YAHOO.util.Dom.getXY(el); - var ppos = parentPos || YAHOO.util.Dom.getXY(this.parentElId); - - var newOffset = [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ]; - - var l = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 ); - var t = parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 ); - - var deltaX = l - newOffset[0]; - var deltaY = t - newOffset[1]; - - if (isNaN(deltaX) || isNaN(deltaY)) { - } else { - this.deltaOffset = [deltaX, deltaY]; - } - - } else { - var newLeft = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 ); - var newTop = parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 ); - - newOffset = [newLeft + this.deltaOffset[0], newTop + this.deltaOffset[1]]; - } - - return newOffset; - - //return [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ]; - }, - - /** - * Set up the slider, must be called in the constructor of all subclasses - * @method initSlider - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize the width of the tick interval. - */ - initSlider: function (iLeft, iRight, iUp, iDown, iTickSize) { - - - //document these. new for 0.12.1 - this.initLeft = iLeft; - this.initRight = iRight; - this.initUp = iUp; - this.initDown = iDown; - - this.setXConstraint(iLeft, iRight, iTickSize); - this.setYConstraint(iUp, iDown, iTickSize); - - if (iTickSize && iTickSize > 1) { - this._graduated = true; - } - - this._isHoriz = (iLeft || iRight); - this._isVert = (iUp || iDown); - this._isRegion = (this._isHoriz && this._isVert); - - }, - - /** - * Clear's the slider's ticks - * @method clearTicks - */ - clearTicks: function () { - YAHOO.widget.SliderThumb.superclass.clearTicks.call(this); - this.tickSize = 0; - this._graduated = false; - }, - - - /** - * Gets the current offset from the element's start position in - * pixels. - * @method getValue - * @return {int} the number of pixels (positive or negative) the - * slider has moved from the start position. - */ - getValue: function () { - if (!this.available) { return 0; } - var val = (this._isHoriz) ? this.getXValue() : this.getYValue(); - return val; - }, - - /** - * Gets the current X offset from the element's start position in - * pixels. - * @method getXValue - * @return {int} the number of pixels (positive or negative) the - * slider has moved horizontally from the start position. - */ - getXValue: function () { - if (!this.available) { return 0; } - var newOffset = this.getOffsetFromParent(); - return (newOffset[0] - this.startOffset[0]); - }, - - /** - * Gets the current Y offset from the element's start position in - * pixels. - * @method getYValue - * @return {int} the number of pixels (positive or negative) the - * slider has moved vertically from the start position. - */ - getYValue: function () { - if (!this.available) { return 0; } - var newOffset = this.getOffsetFromParent(); - return (newOffset[1] - this.startOffset[1]); - }, - - /** - * Thumb toString - * @method toString - * @return {string} string representation of the instance - */ - toString: function () { - return "SliderThumb " + this.id; - }, - - /** - * The onchange event for the handle/thumb is delegated to the YAHOO.widget.Slider - * instance it belongs to. - * @method onChange - * @private - */ - onChange: function (x, y) { - } - -}); - -if ("undefined" == typeof YAHOO.util.Anim) { - YAHOO.widget.Slider.ANIM_AVAIL = false; -} - -YAHOO.register("slider", YAHOO.widget.Slider, {version: "2.2.2", build: "204"}); diff --git a/www/extras/yui/build/tabview/README b/www/extras/yui/build/tabview/README deleted file mode 100644 index 779218875..000000000 --- a/www/extras/yui/build/tabview/README +++ /dev/null @@ -1,32 +0,0 @@ -TabView Release Notes - -*** version 2.2.2 *** - -* no change - - -*** version 2.2.1 *** - -* no change - -*** version 2.2.0 *** - -* Element broken out into seperate pkg - NOTE: new dependency required - element-beta.js - -*** version 0.12.2 *** - -* var Tab is now private -* fixed Element.configureAttribute - -*** version 0.12.1 *** - -* tabs.css renamed to tabview.css -* calls to "set" now queued so they can be made before "contentReady" - - -*** version 0.12.0 *** - -* TabView widget introduced - -* Note: border_tabs.css included as basic skin to enable "tabs" look diff --git a/www/extras/yui/build/tabview/assets/border_tabs.css b/www/extras/yui/build/tabview/assets/border_tabs.css deleted file mode 100644 index e0db1d98a..000000000 --- a/www/extras/yui/build/tabview/assets/border_tabs.css +++ /dev/null @@ -1,54 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -.yui-navset .yui-nav li a, .yui-navset .yui-content { - border:1px solid #000; /* label and content borders */ -} - -.yui-navset .yui-nav .selected a, .yui-navset .yui-nav a:hover, .yui-navset .yui-content { - background-color:#f6f7ee; /* active tab, tab hover, and content bgcolor */ -} - -.yui-navset .yui-nav li em { padding:.5em; } /* tab padding */ - -/* defaults to orientation "top" */ -.yui-navset .yui-nav .selected a { - border-bottom-width:0; /* no bottom border for active tab */ - padding-bottom:1px; /* to match height of other tabs */ -} - -.yui-navset .yui-content { - margin-top:-1px; /* for active tab overlap */ -} - -/* overrides for other orientations */ - -.yui-navset-bottom .yui-nav .selected a { - border-width:0 1px 1px; /* no top border for active tab */ - padding:1px 0 0; /* to match height of other tabs */ -} - -.yui-navset-bottom .yui-content { - margin:0 0 -1px; /* for active tab overlap */ -} - -.yui-navset-left .yui-nav li.selected a { - border-width:1px 0 1px 1px; /* no right border for active tab */ - padding:0 1px 0 0; /* to match width of other tabs */ -} - -.yui-navset-left .yui-content { - margin:0 0 0 -1px; /* for active tab overlap */ -} - -.yui-navset-right .yui-nav li.selected a { - border-width:1px 1px 1px 0; /* no left border for active tab */ - padding:0 0 0 1px; /* to match width of other tabs */ -} - -.yui-navset-right .yui-content { - margin:0 -1px 0 0; /* for active tab overlap */ -} \ No newline at end of file diff --git a/www/extras/yui/build/tabview/assets/tabview.css b/www/extras/yui/build/tabview/assets/tabview.css deleted file mode 100644 index 2434d7c90..000000000 --- a/www/extras/yui/build/tabview/assets/tabview.css +++ /dev/null @@ -1,75 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -/* default space between tabs */ -.yui-navset .yui-nav li { - margin-right:0.5em; /* horizontal tabs */ -} -.yui-navset-left .yui-nav li, .yui-navset-right .yui-nav li { - margin:0 0 0.5em; /* vertical tabs */ -} - -/* default width for side tabs */ -.yui-navset-left .yui-nav, .yui-navset-right .yui-nav { width:6em; } -.yui-navset-left { padding-left:6em; } /* map to nav width */ -.yui-navset-right { padding-right:6em; } /* ditto */ - -/* core */ - -.yui-nav, .yui-nav li { - margin:0; - padding:0; - list-style:none; -} -.yui-navset li em { font-style:normal; } - -.yui-navset { - position:relative; /* contain absolute positioned tabs (left/right) */ - zoom:1; -} - -.yui-navset .yui-content { zoom:1; } - -.yui-navset .yui-nav li { - display:inline-block; - display:-moz-inline-stack; - *display:inline; /* IE */ - vertical-align:bottom; /* safari: for overlap */ - cursor:pointer; /* gecko: due to -moz-inline-stack on anchor */ - zoom:1; /* IE: kill space between horizontal tabs */ -} - -.yui-navset-left .yui-nav li, .yui-navset-right .yui-nav li { - display:block; -} - -.yui-navset .yui-nav a { - outline:0; /* gecko: keep from shifting */ -} - -.yui-navset .yui-nav a { position:relative; } /* IE: to allow overlap */ - -.yui-navset .yui-nav li a { - display:block; - display:inline-block; - vertical-align:bottom; /* safari: for overlap */ - zoom:1; -} - -.yui-navset-left .yui-nav li a, .yui-navset-right .yui-nav li a { - display:block; -} - -.yui-navset-bottom .yui-nav li a { - vertical-align:text-top; /* for inline overlap (reverse for Op border bug) */ -} - -.yui-navset .yui-nav li a em { display:block; } - -/* position left and right oriented tabs */ -.yui-navset-left .yui-nav, .yui-navset-right .yui-nav { position:absolute; z-index:1; } -.yui-navset-left .yui-nav { left:0; } -.yui-navset-right .yui-nav { right:0; } diff --git a/www/extras/yui/build/tabview/tabview-debug.js b/www/extras/yui/build/tabview/tabview-debug.js deleted file mode 100644 index aa97d92e1..000000000 --- a/www/extras/yui/build/tabview/tabview-debug.js +++ /dev/null @@ -1,1025 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -(function() { - - /** - * The tabview module provides a widget for managing content bound to tabs. - * @module tabview - * @requires yahoo, dom, event, element - * - */ - /** - * A widget to control tabbed views. - * @namespace YAHOO.widget - * @class TabView - * @extends YAHOO.util.Element - * @constructor - * @param {HTMLElement | String | Object} el(optional) The html - * element that represents the TabView, or the attribute object to use. - * An element will be created if none provided. - * @param {Object} attr (optional) A key map of the tabView's - * initial attributes. Ignored if first arg is attributes object. - */ - YAHOO.widget.TabView = function(el, attr) { - attr = attr || {}; - if (arguments.length == 1 && !YAHOO.lang.isString(el) && !el.nodeName) { - attr = el; // treat first arg as attr object - el = attr.element || null; - } - - if (!el && !attr.element) { // create if we dont have one - el = _createTabViewElement.call(this, attr); - } - YAHOO.widget.TabView.superclass.constructor.call(this, el, attr); - }; - - YAHOO.extend(YAHOO.widget.TabView, YAHOO.util.Element); - - var proto = YAHOO.widget.TabView.prototype; - var Dom = YAHOO.util.Dom; - var Event = YAHOO.util.Event; - var Tab = YAHOO.widget.Tab; - - - /** - * The className to add when building from scratch. - * @property CLASSNAME - * @default "navset" - */ - proto.CLASSNAME = 'yui-navset'; - - /** - * The className of the HTMLElement containing the TabView's tab elements - * to look for when building from existing markup, or to add when building - * from scratch. - * All childNodes of the tab container are treated as Tabs when building - * from existing markup. - * @property TAB_PARENT_CLASSNAME - * @default "nav" - */ - proto.TAB_PARENT_CLASSNAME = 'yui-nav'; - - /** - * The className of the HTMLElement containing the TabView's label elements - * to look for when building from existing markup, or to add when building - * from scratch. - * All childNodes of the content container are treated as content elements when - * building from existing markup. - * @property CONTENT_PARENT_CLASSNAME - * @default "nav-content" - */ - proto.CONTENT_PARENT_CLASSNAME = 'yui-content'; - - proto._tabParent = null; - proto._contentParent = null; - - /** - * Adds a Tab to the TabView instance. - * If no index is specified, the tab is added to the end of the tab list. - * @method addTab - * @param {YAHOO.widget.Tab} tab A Tab instance to add. - * @param {Integer} index The position to add the tab. - * @return void - */ - proto.addTab = function(tab, index) { - var tabs = this.get('tabs'); - if (!tabs) { // not ready yet - this._queue[this._queue.length] = ['addTab', arguments]; - return false; - } - - index = (index === undefined) ? tabs.length : index; - - var before = this.getTab(index); - - var self = this; - var el = this.get('element'); - var tabParent = this._tabParent; - var contentParent = this._contentParent; - - var tabElement = tab.get('element'); - var contentEl = tab.get('contentEl'); - - if ( before ) { - tabParent.insertBefore(tabElement, before.get('element')); - } else { - tabParent.appendChild(tabElement); - } - - if ( contentEl && !Dom.isAncestor(contentParent, contentEl) ) { - contentParent.appendChild(contentEl); - } - - if ( !tab.get('active') ) { - tab.set('contentVisible', false, true); /* hide if not active */ - } else { - this.set('activeTab', tab, true); - - } - - var activate = function(e) { - YAHOO.util.Event.preventDefault(e); - self.set('activeTab', this); - }; - - tab.addListener( tab.get('activationEvent'), activate); - - tab.addListener('activationEventChange', function(e) { - if (e.prevValue != e.newValue) { - tab.removeListener(e.prevValue, activate); - tab.addListener(e.newValue, activate); - } - }); - - tabs.splice(index, 0, tab); - }; - - /** - * Routes childNode events. - * @method DOMEventHandler - * @param {event} e The Dom event that is being handled. - * @return void - */ - proto.DOMEventHandler = function(e) { - var el = this.get('element'); - var target = YAHOO.util.Event.getTarget(e); - var tabParent = this._tabParent; - - if (Dom.isAncestor(tabParent, target) ) { - var tabEl; - var tab = null; - var contentEl; - var tabs = this.get('tabs'); - - for (var i = 0, len = tabs.length; i < len; i++) { - tabEl = tabs[i].get('element'); - contentEl = tabs[i].get('contentEl'); - - if ( target == tabEl || Dom.isAncestor(tabEl, target) ) { - tab = tabs[i]; - break; // note break - } - } - - if (tab) { - tab.fireEvent(e.type, e); - } - } - }; - - /** - * Returns the Tab instance at the specified index. - * @method getTab - * @param {Integer} index The position of the Tab. - * @return YAHOO.widget.Tab - */ - proto.getTab = function(index) { - return this.get('tabs')[index]; - }; - - /** - * Returns the index of given tab. - * @method getTabIndex - * @param {YAHOO.widget.Tab} tab The tab whose index will be returned. - * @return int - */ - proto.getTabIndex = function(tab) { - var index = null; - var tabs = this.get('tabs'); - for (var i = 0, len = tabs.length; i < len; ++i) { - if (tab == tabs[i]) { - index = i; - break; - } - } - - return index; - }; - - /** - * Removes the specified Tab from the TabView. - * @method removeTab - * @param {YAHOO.widget.Tab} item The Tab instance to be removed. - * @return void - */ - proto.removeTab = function(tab) { - var tabCount = this.get('tabs').length; - - var index = this.getTabIndex(tab); - var nextIndex = index + 1; - if ( tab == this.get('activeTab') ) { // select next tab - if (tabCount > 1) { - if (index + 1 == tabCount) { - this.set('activeIndex', index - 1); - } else { - this.set('activeIndex', index + 1); - } - } - } - - this._tabParent.removeChild( tab.get('element') ); - this._contentParent.removeChild( tab.get('contentEl') ); - this._configs.tabs.value.splice(index, 1); - - }; - - /** - * Provides a readable name for the TabView instance. - * @method toString - * @return String - */ - proto.toString = function() { - var name = this.get('id') || this.get('tagName'); - return "TabView " + name; - }; - - /** - * The transiton to use when switching between tabs. - * @method contentTransition - */ - proto.contentTransition = function(newTab, oldTab) { - newTab.set('contentVisible', true); - oldTab.set('contentVisible', false); - }; - - /** - * setAttributeConfigs TabView specific properties. - * @method initAttributes - * @param {Object} attr Hash of initial attributes - */ - proto.initAttributes = function(attr) { - YAHOO.widget.TabView.superclass.initAttributes.call(this, attr); - - if (!attr.orientation) { - attr.orientation = 'top'; - } - - var el = this.get('element'); - - /** - * The Tabs belonging to the TabView instance. - * @config tabs - * @type Array - */ - this.setAttributeConfig('tabs', { - value: [], - readOnly: true - }); - - /** - * The container of the tabView's label elements. - * @property _tabParent - * @private - * @type HTMLElement - */ - this._tabParent = - this.getElementsByClassName(this.TAB_PARENT_CLASSNAME, - 'ul' )[0] || _createTabParent.call(this); - - /** - * The container of the tabView's content elements. - * @property _contentParent - * @type HTMLElement - * @private - */ - this._contentParent = - this.getElementsByClassName(this.CONTENT_PARENT_CLASSNAME, - 'div')[0] || _createContentParent.call(this); - - /** - * How the Tabs should be oriented relative to the TabView. - * @config orientation - * @type String - * @default "top" - */ - this.setAttributeConfig('orientation', { - value: attr.orientation, - method: function(value) { - var current = this.get('orientation'); - this.addClass('yui-navset-' + value); - - if (current != value) { - this.removeClass('yui-navset-' + current); - } - - switch(value) { - case 'bottom': - this.appendChild(this._tabParent); - break; - } - } - }); - - /** - * The index of the tab currently active. - * @config activeIndex - * @type Int - */ - this.setAttributeConfig('activeIndex', { - value: attr.activeIndex, - method: function(value) { - this.set('activeTab', this.getTab(value)); - }, - validator: function(value) { - return !this.getTab(value).get('disabled'); // cannot activate if disabled - } - }); - - /** - * The tab currently active. - * @config activeTab - * @type YAHOO.widget.Tab - */ - this.setAttributeConfig('activeTab', { - value: attr.activeTab, - method: function(tab) { - var activeTab = this.get('activeTab'); - - if (tab) { - tab.set('active', true); - this._configs['activeIndex'].value = this.getTabIndex(tab); // keep in sync - } - - if (activeTab && activeTab != tab) { - activeTab.set('active', false); - } - - if (activeTab && tab != activeTab) { // no transition if only 1 - this.contentTransition(tab, activeTab); - } else if (tab) { - tab.set('contentVisible', true); - } - }, - validator: function(value) { - return !value.get('disabled'); // cannot activate if disabled - } - }); - - if ( this._tabParent ) { - _initTabs.call(this); - } - - for (var type in this.DOM_EVENTS) { - if ( YAHOO.lang.hasOwnProperty(this.DOM_EVENTS, type) ) { - this.addListener.call(this, type, this.DOMEventHandler); - } - } - }; - - /** - * Creates Tab instances from a collection of HTMLElements. - * @method createTabs - * @private - * @param {Array|HTMLCollection} elements The elements to use for Tabs. - * @return void - */ - var _initTabs = function() { - var tab, - attr, - contentEl; - - var el = this.get('element'); - var tabs = _getChildNodes(this._tabParent); - var contentElements = _getChildNodes(this._contentParent); - - for (var i = 0, len = tabs.length; i < len; ++i) { - attr = {}; - - if (contentElements[i]) { - attr.contentEl = contentElements[i]; - } - - tab = new YAHOO.widget.Tab(tabs[i], attr); - this.addTab(tab); - - if (tab.hasClass(tab.ACTIVE_CLASSNAME) ) { - this._configs.activeTab.value = tab; // dont invoke method - } - } - }; - - var _createTabViewElement = function(attr) { - var el = document.createElement('div'); - - if ( this.CLASSNAME ) { - el.className = this.CLASSNAME; - } - - return el; - }; - - var _createTabParent = function(attr) { - var el = document.createElement('ul'); - - if ( this.TAB_PARENT_CLASSNAME ) { - el.className = this.TAB_PARENT_CLASSNAME; - } - - this.get('element').appendChild(el); - - return el; - }; - - var _createContentParent = function(attr) { - var el = document.createElement('div'); - - if ( this.CONTENT_PARENT_CLASSNAME ) { - el.className = this.CONTENT_PARENT_CLASSNAME; - } - - this.get('element').appendChild(el); - - return el; - }; - - var _getChildNodes = function(el) { - var nodes = []; - var childNodes = el.childNodes; - - for (var i = 0, len = childNodes.length; i < len; ++i) { - if (childNodes[i].nodeType == 1) { - nodes[nodes.length] = childNodes[i]; - } - } - - return nodes; - }; - -/** - * Fires before the activeTab is changed. - *

        See: Element.addListener

        - *

        If handler returns false, the change will be cancelled, and the value will not - * be set.

        - *

        Event fields:
        - * <String> type beforeActiveTabChange
        - * <YAHOO.widget.Tab> - * prevValue the currently active tab
        - * <YAHOO.widget.Tab> - * newValue the tab to be made active

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('beforeActiveTabChange', handler);

        - * @event beforeActiveTabChange - */ - -/** - * Fires after the activeTab is changed. - *

        See: Element.addListener

        - *

        Event fields:
        - * <String> type activeTabChange
        - * <YAHOO.widget.Tab> - * prevValue the formerly active tab
        - * <YAHOO.widget.Tab> - * newValue the new active tab

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('activeTabChange', handler);

        - * @event activeTabChange - */ - -/** - * Fires before the orientation is changed. - *

        See: Element.addListener

        - *

        If handler returns false, the change will be cancelled, and the value will not - * be set.

        - *

        Event fields:
        - * <String> type beforeOrientationChange
        - * <String> - * prevValue the current orientation
        - * <String> - * newValue the new orientation to be applied

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('beforeOrientationChange', handler);

        - * @event beforeOrientationChange - */ - -/** - * Fires after the orientation is changed. - *

        See: Element.addListener

        - *

        Event fields:
        - * <String> type orientationChange
        - * <String> - * prevValue the former orientation
        - * <String> - * newValue the new orientation

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('orientationChange', handler);

        - * @event orientationChange - */ -})(); - -(function() { - var Dom = YAHOO.util.Dom, - Event = YAHOO.util.Event; - - /** - * A representation of a Tab's label and content. - * @namespace YAHOO.widget - * @class Tab - * @extends YAHOO.util.Element - * @constructor - * @param element {HTMLElement | String} (optional) The html element that - * represents the TabView. An element will be created if none provided. - * @param {Object} properties A key map of initial properties - */ - var Tab = function(el, attr) { - attr = attr || {}; - if (arguments.length == 1 && !YAHOO.lang.isString(el) && !el.nodeName) { - attr = el; - el = attr.element; - } - - if (!el && !attr.element) { - el = _createTabElement.call(this, attr); - } - - this.loadHandler = { - success: function(o) { - this.set('content', o.responseText); - }, - failure: function(o) { - YAHOO.log('loading failed: ' + o.statusText, - 'error', 'Tab'); - } - }; - - Tab.superclass.constructor.call(this, el, attr); - - this.DOM_EVENTS = {}; // delegating to tabView - }; - - YAHOO.extend(Tab, YAHOO.util.Element); - var proto = Tab.prototype; - - /** - * The default tag name for a Tab's inner element. - * @property LABEL_INNER_TAGNAME - * @type String - * @default "em" - */ - proto.LABEL_TAGNAME = 'em'; - - /** - * The class name applied to active tabs. - * @property ACTIVE_CLASSNAME - * @type String - * @default "on" - */ - proto.ACTIVE_CLASSNAME = 'selected'; - - /** - * The class name applied to disabled tabs. - * @property DISABLED_CLASSNAME - * @type String - * @default "disabled" - */ - proto.DISABLED_CLASSNAME = 'disabled'; - - /** - * The class name applied to dynamic tabs while loading. - * @property LOADING_CLASSNAME - * @type String - * @default "disabled" - */ - proto.LOADING_CLASSNAME = 'loading'; - - /** - * Provides a reference to the connection request object when data is - * loaded dynamically. - * @property dataConnection - * @type Object - */ - proto.dataConnection = null; - - /** - * Object containing success and failure callbacks for loading data. - * @property loadHandler - * @type object - */ - proto.loadHandler = null; - - /** - * Provides a readable name for the tab. - * @method toString - * @return String - */ - proto.toString = function() { - var el = this.get('element'); - var id = el.id || el.tagName; - return "Tab " + id; - }; - - /** - * setAttributeConfigs TabView specific properties. - * @method initAttributes - * @param {Object} attr Hash of initial attributes - */ - proto.initAttributes = function(attr) { - attr = attr || {}; - Tab.superclass.initAttributes.call(this, attr); - - var el = this.get('element'); - - /** - * The event that triggers the tab's activation. - * @config activationEvent - * @type String - */ - this.setAttributeConfig('activationEvent', { - value: attr.activationEvent || 'click' - }); - - /** - * The element that contains the tab's label. - * @config labelEl - * @type HTMLElement - */ - this.setAttributeConfig('labelEl', { - value: attr.labelEl || _getlabelEl.call(this), - method: function(value) { - var current = this.get('labelEl'); - - if (current) { - if (current == value) { - return false; // already set - } - - this.replaceChild(value, current); - } else if (el.firstChild) { // ensure label is firstChild by default - this.insertBefore(value, el.firstChild); - } else { - this.appendChild(value); - } - } - }); - - /** - * The tab's label text (or innerHTML). - * @config label - * @type String - */ - this.setAttributeConfig('label', { - value: attr.label || _getLabel.call(this), - method: function(value) { - var labelEl = this.get('labelEl'); - if (!labelEl) { // create if needed - this.set('labelEl', _createlabelEl.call(this)); - } - - _setLabel.call(this, value); - } - }); - - /** - * The HTMLElement that contains the tab's content. - * @config contentEl - * @type HTMLElement - */ - this.setAttributeConfig('contentEl', { - value: attr.contentEl || document.createElement('div'), - method: function(value) { - var current = this.get('contentEl'); - - if (current) { - if (current == value) { - return false; // already set - } - this.replaceChild(value, current); - } - } - }); - - /** - * The tab's content. - * @config content - * @type String - */ - this.setAttributeConfig('content', { - value: attr.content, - method: function(value) { - this.get('contentEl').innerHTML = value; - } - }); - - var _dataLoaded = false; - - /** - * The tab's data source, used for loading content dynamically. - * @config dataSrc - * @type String - */ - this.setAttributeConfig('dataSrc', { - value: attr.dataSrc - }); - - /** - * Whether or not content should be reloaded for every view. - * @config cacheData - * @type Boolean - * @default false - */ - this.setAttributeConfig('cacheData', { - value: attr.cacheData || false, - validator: YAHOO.lang.isBoolean - }); - - /** - * The method to use for the data request. - * @config loadMethod - * @type String - * @default "GET" - */ - this.setAttributeConfig('loadMethod', { - value: attr.loadMethod || 'GET', - validator: YAHOO.lang.isString - }); - - /** - * Whether or not any data has been loaded from the server. - * @config dataLoaded - * @type Boolean - */ - this.setAttributeConfig('dataLoaded', { - value: false, - validator: YAHOO.lang.isBoolean, - writeOnce: true - }); - - /** - * Number if milliseconds before aborting and calling failure handler. - * @config dataTimeout - * @type Number - * @default null - */ - this.setAttributeConfig('dataTimeout', { - value: attr.dataTimeout || null, - validator: YAHOO.lang.isNumber - }); - - /** - * Whether or not the tab is currently active. - * If a dataSrc is set for the tab, the content will be loaded from - * the given source. - * @config active - * @type Boolean - */ - this.setAttributeConfig('active', { - value: attr.active || this.hasClass(this.ACTIVE_CLASSNAME), - method: function(value) { - if (value === true) { - this.addClass(this.ACTIVE_CLASSNAME); - this.set('title', 'active'); - } else { - this.removeClass(this.ACTIVE_CLASSNAME); - this.set('title', ''); - } - }, - validator: function(value) { - return YAHOO.lang.isBoolean(value) && !this.get('disabled') ; - } - }); - - /** - * Whether or not the tab is disabled. - * @config disabled - * @type Boolean - */ - this.setAttributeConfig('disabled', { - value: attr.disabled || this.hasClass(this.DISABLED_CLASSNAME), - method: function(value) { - if (value === true) { - Dom.addClass(this.get('element'), this.DISABLED_CLASSNAME); - } else { - Dom.removeClass(this.get('element'), this.DISABLED_CLASSNAME); - } - }, - validator: YAHOO.lang.isBoolean - }); - - /** - * The href of the tab's anchor element. - * @config href - * @type String - * @default '#' - */ - this.setAttributeConfig('href', { - value: attr.href || '#', - method: function(value) { - this.getElementsByTagName('a')[0].href = value; - }, - validator: YAHOO.lang.isString - }); - - /** - * The Whether or not the tab's content is visible. - * @config contentVisible - * @type Boolean - * @default false - */ - this.setAttributeConfig('contentVisible', { - value: attr.contentVisible, - method: function(value) { - if (value) { - this.get('contentEl').style.display = 'block'; - - if ( this.get('dataSrc') ) { - // load dynamic content unless already loaded and caching - if ( !this.get('dataLoaded') || !this.get('cacheData') ) { - _dataConnect.call(this); - } - } - } else { - this.get('contentEl').style.display = 'none'; - } - }, - validator: YAHOO.lang.isBoolean - }); - }; - - var _createTabElement = function(attr) { - var el = document.createElement('li'); - var a = document.createElement('a'); - - a.href = attr.href || '#'; - - el.appendChild(a); - - var label = attr.label || null; - var labelEl = attr.labelEl || null; - - if (labelEl) { // user supplied labelEl - if (!label) { // user supplied label - label = _getLabel.call(this, labelEl); - } - } else { - labelEl = _createlabelEl.call(this); - } - - a.appendChild(labelEl); - - return el; - }; - - var _getlabelEl = function() { - return this.getElementsByTagName(this.LABEL_TAGNAME)[0]; - }; - - var _createlabelEl = function() { - var el = document.createElement(this.LABEL_TAGNAME); - return el; - }; - - var _setLabel = function(label) { - var el = this.get('labelEl'); - el.innerHTML = label; - }; - - var _getLabel = function() { - var label, - el = this.get('labelEl'); - - if (!el) { - return undefined; - } - - return el.innerHTML; - }; - - var _dataConnect = function() { - if (!YAHOO.util.Connect) { - YAHOO.log('YAHOO.util.Connect dependency not met', - 'error', 'Tab'); - return false; - } - - Dom.addClass(this.get('contentEl').parentNode, this.LOADING_CLASSNAME); - - this.dataConnection = YAHOO.util.Connect.asyncRequest( - this.get('loadMethod'), - this.get('dataSrc'), - { - success: function(o) { - this.loadHandler.success.call(this, o); - this.set('dataLoaded', true); - this.dataConnection = null; - Dom.removeClass(this.get('contentEl').parentNode, - this.LOADING_CLASSNAME); - }, - failure: function(o) { - this.loadHandler.failure.call(this, o); - this.dataConnection = null; - Dom.removeClass(this.get('contentEl').parentNode, - this.LOADING_CLASSNAME); - }, - scope: this, - timeout: this.get('dataTimeout') - } - ); - }; - - YAHOO.widget.Tab = Tab; - - /** - * Fires before the active state is changed. - *

        See: Element.addListener

        - *

        If handler returns false, the change will be cancelled, and the value will not - * be set.

        - *

        Event fields:
        - * <String> type beforeActiveChange
        - * <Boolean> - * prevValue the current value
        - * <Boolean> - * newValue the new value

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('beforeActiveChange', handler);

        - * @event beforeActiveChange - */ - - /** - * Fires after the active state is changed. - *

        See: Element.addListener

        - *

        Event fields:
        - * <String> type activeChange
        - * <Boolean> - * prevValue the previous value
        - * <Boolean> - * newValue the updated value

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('activeChange', handler);

        - * @event activeChange - */ - - /** - * Fires before the tab label is changed. - *

        See: Element.addListener

        - *

        If handler returns false, the change will be cancelled, and the value will not - * be set.

        - *

        Event fields:
        - * <String> type beforeLabelChange
        - * <String> - * prevValue the current value
        - * <String> - * newValue the new value

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('beforeLabelChange', handler);

        - * @event beforeLabelChange - */ - - /** - * Fires after the tab label is changed. - *

        See: Element.addListener

        - *

        Event fields:
        - * <String> type labelChange
        - * <String> - * prevValue the previous value
        - * <String> - * newValue the updated value

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('labelChange', handler);

        - * @event labelChange - */ - - /** - * Fires before the tab content is changed. - *

        See: Element.addListener

        - *

        If handler returns false, the change will be cancelled, and the value will not - * be set.

        - *

        Event fields:
        - * <String> type beforeContentChange
        - * <String> - * prevValue the current value
        - * <String> - * newValue the new value

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('beforeContentChange', handler);

        - * @event beforeContentChange - */ - - /** - * Fires after the tab content is changed. - *

        See: Element.addListener

        - *

        Event fields:
        - * <String> type contentChange
        - * <String> - * prevValue the previous value
        - * <Boolean> - * newValue the updated value

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('contentChange', handler);

        - * @event contentChange - */ -})(); - -YAHOO.register("tabview", YAHOO.widget.TabView, {version: "2.2.2", build: "204"}); diff --git a/www/extras/yui/build/tabview/tabview-min.js b/www/extras/yui/build/tabview/tabview-min.js deleted file mode 100644 index 0b5a7eab7..000000000 --- a/www/extras/yui/build/tabview/tabview-min.js +++ /dev/null @@ -1,35 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ - -(function(){YAHOO.widget.TabView=function(el,attr){attr=attr||{};if(arguments.length==1&&!YAHOO.lang.isString(el)&&!el.nodeName){attr=el;el=attr.element||null;} -if(!el&&!attr.element){el=_createTabViewElement.call(this,attr);} -YAHOO.widget.TabView.superclass.constructor.call(this,el,attr);};YAHOO.extend(YAHOO.widget.TabView,YAHOO.util.Element);var proto=YAHOO.widget.TabView.prototype;var Dom=YAHOO.util.Dom;var Event=YAHOO.util.Event;var Tab=YAHOO.widget.Tab;proto.CLASSNAME='yui-navset';proto.TAB_PARENT_CLASSNAME='yui-nav';proto.CONTENT_PARENT_CLASSNAME='yui-content';proto._tabParent=null;proto._contentParent=null;proto.addTab=function(tab,index){var tabs=this.get('tabs');if(!tabs){this._queue[this._queue.length]=['addTab',arguments];return false;} -index=(index===undefined)?tabs.length:index;var before=this.getTab(index);var self=this;var el=this.get('element');var tabParent=this._tabParent;var contentParent=this._contentParent;var tabElement=tab.get('element');var contentEl=tab.get('contentEl');if(before){tabParent.insertBefore(tabElement,before.get('element'));}else{tabParent.appendChild(tabElement);} -if(contentEl&&!Dom.isAncestor(contentParent,contentEl)){contentParent.appendChild(contentEl);} -if(!tab.get('active')){tab.set('contentVisible',false,true);}else{this.set('activeTab',tab,true);} -var activate=function(e){YAHOO.util.Event.preventDefault(e);self.set('activeTab',this);};tab.addListener(tab.get('activationEvent'),activate);tab.addListener('activationEventChange',function(e){if(e.prevValue!=e.newValue){tab.removeListener(e.prevValue,activate);tab.addListener(e.newValue,activate);}});tabs.splice(index,0,tab);};proto.DOMEventHandler=function(e){var el=this.get('element');var target=YAHOO.util.Event.getTarget(e);var tabParent=this._tabParent;if(Dom.isAncestor(tabParent,target)){var tabEl;var tab=null;var contentEl;var tabs=this.get('tabs');for(var i=0,len=tabs.length;i1){if(index+1==tabCount){this.set('activeIndex',index-1);}else{this.set('activeIndex',index+1);}}} -this._tabParent.removeChild(tab.get('element'));this._contentParent.removeChild(tab.get('contentEl'));this._configs.tabs.value.splice(index,1);};proto.toString=function(){var name=this.get('id')||this.get('tagName');return"TabView "+name;};proto.contentTransition=function(newTab,oldTab){newTab.set('contentVisible',true);oldTab.set('contentVisible',false);};proto.initAttributes=function(attr){YAHOO.widget.TabView.superclass.initAttributes.call(this,attr);if(!attr.orientation){attr.orientation='top';} -var el=this.get('element');this.setAttributeConfig('tabs',{value:[],readOnly:true});this._tabParent=this.getElementsByClassName(this.TAB_PARENT_CLASSNAME,'ul')[0]||_createTabParent.call(this);this._contentParent=this.getElementsByClassName(this.CONTENT_PARENT_CLASSNAME,'div')[0]||_createContentParent.call(this);this.setAttributeConfig('orientation',{value:attr.orientation,method:function(value){var current=this.get('orientation');this.addClass('yui-navset-'+value);if(current!=value){this.removeClass('yui-navset-'+current);} -switch(value){case'bottom':this.appendChild(this._tabParent);break;}}});this.setAttributeConfig('activeIndex',{value:attr.activeIndex,method:function(value){this.set('activeTab',this.getTab(value));},validator:function(value){return!this.getTab(value).get('disabled');}});this.setAttributeConfig('activeTab',{value:attr.activeTab,method:function(tab){var activeTab=this.get('activeTab');if(tab){tab.set('active',true);this._configs['activeIndex'].value=this.getTabIndex(tab);} -if(activeTab&&activeTab!=tab){activeTab.set('active',false);} -if(activeTab&&tab!=activeTab){this.contentTransition(tab,activeTab);}else if(tab){tab.set('contentVisible',true);}},validator:function(value){return!value.get('disabled');}});if(this._tabParent){_initTabs.call(this);} -for(var type in this.DOM_EVENTS){if(YAHOO.lang.hasOwnProperty(this.DOM_EVENTS,type)){this.addListener.call(this,type,this.DOMEventHandler);}}};var _initTabs=function(){var tab,attr,contentEl;var el=this.get('element');var tabs=_getChildNodes(this._tabParent);var contentElements=_getChildNodes(this._contentParent);for(var i=0,len=tabs.length;i 1) { - if (index + 1 == tabCount) { - this.set('activeIndex', index - 1); - } else { - this.set('activeIndex', index + 1); - } - } - } - - this._tabParent.removeChild( tab.get('element') ); - this._contentParent.removeChild( tab.get('contentEl') ); - this._configs.tabs.value.splice(index, 1); - - }; - - /** - * Provides a readable name for the TabView instance. - * @method toString - * @return String - */ - proto.toString = function() { - var name = this.get('id') || this.get('tagName'); - return "TabView " + name; - }; - - /** - * The transiton to use when switching between tabs. - * @method contentTransition - */ - proto.contentTransition = function(newTab, oldTab) { - newTab.set('contentVisible', true); - oldTab.set('contentVisible', false); - }; - - /** - * setAttributeConfigs TabView specific properties. - * @method initAttributes - * @param {Object} attr Hash of initial attributes - */ - proto.initAttributes = function(attr) { - YAHOO.widget.TabView.superclass.initAttributes.call(this, attr); - - if (!attr.orientation) { - attr.orientation = 'top'; - } - - var el = this.get('element'); - - /** - * The Tabs belonging to the TabView instance. - * @config tabs - * @type Array - */ - this.setAttributeConfig('tabs', { - value: [], - readOnly: true - }); - - /** - * The container of the tabView's label elements. - * @property _tabParent - * @private - * @type HTMLElement - */ - this._tabParent = - this.getElementsByClassName(this.TAB_PARENT_CLASSNAME, - 'ul' )[0] || _createTabParent.call(this); - - /** - * The container of the tabView's content elements. - * @property _contentParent - * @type HTMLElement - * @private - */ - this._contentParent = - this.getElementsByClassName(this.CONTENT_PARENT_CLASSNAME, - 'div')[0] || _createContentParent.call(this); - - /** - * How the Tabs should be oriented relative to the TabView. - * @config orientation - * @type String - * @default "top" - */ - this.setAttributeConfig('orientation', { - value: attr.orientation, - method: function(value) { - var current = this.get('orientation'); - this.addClass('yui-navset-' + value); - - if (current != value) { - this.removeClass('yui-navset-' + current); - } - - switch(value) { - case 'bottom': - this.appendChild(this._tabParent); - break; - } - } - }); - - /** - * The index of the tab currently active. - * @config activeIndex - * @type Int - */ - this.setAttributeConfig('activeIndex', { - value: attr.activeIndex, - method: function(value) { - this.set('activeTab', this.getTab(value)); - }, - validator: function(value) { - return !this.getTab(value).get('disabled'); // cannot activate if disabled - } - }); - - /** - * The tab currently active. - * @config activeTab - * @type YAHOO.widget.Tab - */ - this.setAttributeConfig('activeTab', { - value: attr.activeTab, - method: function(tab) { - var activeTab = this.get('activeTab'); - - if (tab) { - tab.set('active', true); - this._configs['activeIndex'].value = this.getTabIndex(tab); // keep in sync - } - - if (activeTab && activeTab != tab) { - activeTab.set('active', false); - } - - if (activeTab && tab != activeTab) { // no transition if only 1 - this.contentTransition(tab, activeTab); - } else if (tab) { - tab.set('contentVisible', true); - } - }, - validator: function(value) { - return !value.get('disabled'); // cannot activate if disabled - } - }); - - if ( this._tabParent ) { - _initTabs.call(this); - } - - for (var type in this.DOM_EVENTS) { - if ( YAHOO.lang.hasOwnProperty(this.DOM_EVENTS, type) ) { - this.addListener.call(this, type, this.DOMEventHandler); - } - } - }; - - /** - * Creates Tab instances from a collection of HTMLElements. - * @method createTabs - * @private - * @param {Array|HTMLCollection} elements The elements to use for Tabs. - * @return void - */ - var _initTabs = function() { - var tab, - attr, - contentEl; - - var el = this.get('element'); - var tabs = _getChildNodes(this._tabParent); - var contentElements = _getChildNodes(this._contentParent); - - for (var i = 0, len = tabs.length; i < len; ++i) { - attr = {}; - - if (contentElements[i]) { - attr.contentEl = contentElements[i]; - } - - tab = new YAHOO.widget.Tab(tabs[i], attr); - this.addTab(tab); - - if (tab.hasClass(tab.ACTIVE_CLASSNAME) ) { - this._configs.activeTab.value = tab; // dont invoke method - } - } - }; - - var _createTabViewElement = function(attr) { - var el = document.createElement('div'); - - if ( this.CLASSNAME ) { - el.className = this.CLASSNAME; - } - - return el; - }; - - var _createTabParent = function(attr) { - var el = document.createElement('ul'); - - if ( this.TAB_PARENT_CLASSNAME ) { - el.className = this.TAB_PARENT_CLASSNAME; - } - - this.get('element').appendChild(el); - - return el; - }; - - var _createContentParent = function(attr) { - var el = document.createElement('div'); - - if ( this.CONTENT_PARENT_CLASSNAME ) { - el.className = this.CONTENT_PARENT_CLASSNAME; - } - - this.get('element').appendChild(el); - - return el; - }; - - var _getChildNodes = function(el) { - var nodes = []; - var childNodes = el.childNodes; - - for (var i = 0, len = childNodes.length; i < len; ++i) { - if (childNodes[i].nodeType == 1) { - nodes[nodes.length] = childNodes[i]; - } - } - - return nodes; - }; - -/** - * Fires before the activeTab is changed. - *

        See: Element.addListener

        - *

        If handler returns false, the change will be cancelled, and the value will not - * be set.

        - *

        Event fields:
        - * <String> type beforeActiveTabChange
        - * <YAHOO.widget.Tab> - * prevValue the currently active tab
        - * <YAHOO.widget.Tab> - * newValue the tab to be made active

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('beforeActiveTabChange', handler);

        - * @event beforeActiveTabChange - */ - -/** - * Fires after the activeTab is changed. - *

        See: Element.addListener

        - *

        Event fields:
        - * <String> type activeTabChange
        - * <YAHOO.widget.Tab> - * prevValue the formerly active tab
        - * <YAHOO.widget.Tab> - * newValue the new active tab

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('activeTabChange', handler);

        - * @event activeTabChange - */ - -/** - * Fires before the orientation is changed. - *

        See: Element.addListener

        - *

        If handler returns false, the change will be cancelled, and the value will not - * be set.

        - *

        Event fields:
        - * <String> type beforeOrientationChange
        - * <String> - * prevValue the current orientation
        - * <String> - * newValue the new orientation to be applied

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('beforeOrientationChange', handler);

        - * @event beforeOrientationChange - */ - -/** - * Fires after the orientation is changed. - *

        See: Element.addListener

        - *

        Event fields:
        - * <String> type orientationChange
        - * <String> - * prevValue the former orientation
        - * <String> - * newValue the new orientation

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('orientationChange', handler);

        - * @event orientationChange - */ -})(); - -(function() { - var Dom = YAHOO.util.Dom, - Event = YAHOO.util.Event; - - /** - * A representation of a Tab's label and content. - * @namespace YAHOO.widget - * @class Tab - * @extends YAHOO.util.Element - * @constructor - * @param element {HTMLElement | String} (optional) The html element that - * represents the TabView. An element will be created if none provided. - * @param {Object} properties A key map of initial properties - */ - var Tab = function(el, attr) { - attr = attr || {}; - if (arguments.length == 1 && !YAHOO.lang.isString(el) && !el.nodeName) { - attr = el; - el = attr.element; - } - - if (!el && !attr.element) { - el = _createTabElement.call(this, attr); - } - - this.loadHandler = { - success: function(o) { - this.set('content', o.responseText); - }, - failure: function(o) { - } - }; - - Tab.superclass.constructor.call(this, el, attr); - - this.DOM_EVENTS = {}; // delegating to tabView - }; - - YAHOO.extend(Tab, YAHOO.util.Element); - var proto = Tab.prototype; - - /** - * The default tag name for a Tab's inner element. - * @property LABEL_INNER_TAGNAME - * @type String - * @default "em" - */ - proto.LABEL_TAGNAME = 'em'; - - /** - * The class name applied to active tabs. - * @property ACTIVE_CLASSNAME - * @type String - * @default "on" - */ - proto.ACTIVE_CLASSNAME = 'selected'; - - /** - * The class name applied to disabled tabs. - * @property DISABLED_CLASSNAME - * @type String - * @default "disabled" - */ - proto.DISABLED_CLASSNAME = 'disabled'; - - /** - * The class name applied to dynamic tabs while loading. - * @property LOADING_CLASSNAME - * @type String - * @default "disabled" - */ - proto.LOADING_CLASSNAME = 'loading'; - - /** - * Provides a reference to the connection request object when data is - * loaded dynamically. - * @property dataConnection - * @type Object - */ - proto.dataConnection = null; - - /** - * Object containing success and failure callbacks for loading data. - * @property loadHandler - * @type object - */ - proto.loadHandler = null; - - /** - * Provides a readable name for the tab. - * @method toString - * @return String - */ - proto.toString = function() { - var el = this.get('element'); - var id = el.id || el.tagName; - return "Tab " + id; - }; - - /** - * setAttributeConfigs TabView specific properties. - * @method initAttributes - * @param {Object} attr Hash of initial attributes - */ - proto.initAttributes = function(attr) { - attr = attr || {}; - Tab.superclass.initAttributes.call(this, attr); - - var el = this.get('element'); - - /** - * The event that triggers the tab's activation. - * @config activationEvent - * @type String - */ - this.setAttributeConfig('activationEvent', { - value: attr.activationEvent || 'click' - }); - - /** - * The element that contains the tab's label. - * @config labelEl - * @type HTMLElement - */ - this.setAttributeConfig('labelEl', { - value: attr.labelEl || _getlabelEl.call(this), - method: function(value) { - var current = this.get('labelEl'); - - if (current) { - if (current == value) { - return false; // already set - } - - this.replaceChild(value, current); - } else if (el.firstChild) { // ensure label is firstChild by default - this.insertBefore(value, el.firstChild); - } else { - this.appendChild(value); - } - } - }); - - /** - * The tab's label text (or innerHTML). - * @config label - * @type String - */ - this.setAttributeConfig('label', { - value: attr.label || _getLabel.call(this), - method: function(value) { - var labelEl = this.get('labelEl'); - if (!labelEl) { // create if needed - this.set('labelEl', _createlabelEl.call(this)); - } - - _setLabel.call(this, value); - } - }); - - /** - * The HTMLElement that contains the tab's content. - * @config contentEl - * @type HTMLElement - */ - this.setAttributeConfig('contentEl', { - value: attr.contentEl || document.createElement('div'), - method: function(value) { - var current = this.get('contentEl'); - - if (current) { - if (current == value) { - return false; // already set - } - this.replaceChild(value, current); - } - } - }); - - /** - * The tab's content. - * @config content - * @type String - */ - this.setAttributeConfig('content', { - value: attr.content, - method: function(value) { - this.get('contentEl').innerHTML = value; - } - }); - - var _dataLoaded = false; - - /** - * The tab's data source, used for loading content dynamically. - * @config dataSrc - * @type String - */ - this.setAttributeConfig('dataSrc', { - value: attr.dataSrc - }); - - /** - * Whether or not content should be reloaded for every view. - * @config cacheData - * @type Boolean - * @default false - */ - this.setAttributeConfig('cacheData', { - value: attr.cacheData || false, - validator: YAHOO.lang.isBoolean - }); - - /** - * The method to use for the data request. - * @config loadMethod - * @type String - * @default "GET" - */ - this.setAttributeConfig('loadMethod', { - value: attr.loadMethod || 'GET', - validator: YAHOO.lang.isString - }); - - /** - * Whether or not any data has been loaded from the server. - * @config dataLoaded - * @type Boolean - */ - this.setAttributeConfig('dataLoaded', { - value: false, - validator: YAHOO.lang.isBoolean, - writeOnce: true - }); - - /** - * Number if milliseconds before aborting and calling failure handler. - * @config dataTimeout - * @type Number - * @default null - */ - this.setAttributeConfig('dataTimeout', { - value: attr.dataTimeout || null, - validator: YAHOO.lang.isNumber - }); - - /** - * Whether or not the tab is currently active. - * If a dataSrc is set for the tab, the content will be loaded from - * the given source. - * @config active - * @type Boolean - */ - this.setAttributeConfig('active', { - value: attr.active || this.hasClass(this.ACTIVE_CLASSNAME), - method: function(value) { - if (value === true) { - this.addClass(this.ACTIVE_CLASSNAME); - this.set('title', 'active'); - } else { - this.removeClass(this.ACTIVE_CLASSNAME); - this.set('title', ''); - } - }, - validator: function(value) { - return YAHOO.lang.isBoolean(value) && !this.get('disabled') ; - } - }); - - /** - * Whether or not the tab is disabled. - * @config disabled - * @type Boolean - */ - this.setAttributeConfig('disabled', { - value: attr.disabled || this.hasClass(this.DISABLED_CLASSNAME), - method: function(value) { - if (value === true) { - Dom.addClass(this.get('element'), this.DISABLED_CLASSNAME); - } else { - Dom.removeClass(this.get('element'), this.DISABLED_CLASSNAME); - } - }, - validator: YAHOO.lang.isBoolean - }); - - /** - * The href of the tab's anchor element. - * @config href - * @type String - * @default '#' - */ - this.setAttributeConfig('href', { - value: attr.href || '#', - method: function(value) { - this.getElementsByTagName('a')[0].href = value; - }, - validator: YAHOO.lang.isString - }); - - /** - * The Whether or not the tab's content is visible. - * @config contentVisible - * @type Boolean - * @default false - */ - this.setAttributeConfig('contentVisible', { - value: attr.contentVisible, - method: function(value) { - if (value) { - this.get('contentEl').style.display = 'block'; - - if ( this.get('dataSrc') ) { - // load dynamic content unless already loaded and caching - if ( !this.get('dataLoaded') || !this.get('cacheData') ) { - _dataConnect.call(this); - } - } - } else { - this.get('contentEl').style.display = 'none'; - } - }, - validator: YAHOO.lang.isBoolean - }); - }; - - var _createTabElement = function(attr) { - var el = document.createElement('li'); - var a = document.createElement('a'); - - a.href = attr.href || '#'; - - el.appendChild(a); - - var label = attr.label || null; - var labelEl = attr.labelEl || null; - - if (labelEl) { // user supplied labelEl - if (!label) { // user supplied label - label = _getLabel.call(this, labelEl); - } - } else { - labelEl = _createlabelEl.call(this); - } - - a.appendChild(labelEl); - - return el; - }; - - var _getlabelEl = function() { - return this.getElementsByTagName(this.LABEL_TAGNAME)[0]; - }; - - var _createlabelEl = function() { - var el = document.createElement(this.LABEL_TAGNAME); - return el; - }; - - var _setLabel = function(label) { - var el = this.get('labelEl'); - el.innerHTML = label; - }; - - var _getLabel = function() { - var label, - el = this.get('labelEl'); - - if (!el) { - return undefined; - } - - return el.innerHTML; - }; - - var _dataConnect = function() { - if (!YAHOO.util.Connect) { - return false; - } - - Dom.addClass(this.get('contentEl').parentNode, this.LOADING_CLASSNAME); - - this.dataConnection = YAHOO.util.Connect.asyncRequest( - this.get('loadMethod'), - this.get('dataSrc'), - { - success: function(o) { - this.loadHandler.success.call(this, o); - this.set('dataLoaded', true); - this.dataConnection = null; - Dom.removeClass(this.get('contentEl').parentNode, - this.LOADING_CLASSNAME); - }, - failure: function(o) { - this.loadHandler.failure.call(this, o); - this.dataConnection = null; - Dom.removeClass(this.get('contentEl').parentNode, - this.LOADING_CLASSNAME); - }, - scope: this, - timeout: this.get('dataTimeout') - } - ); - }; - - YAHOO.widget.Tab = Tab; - - /** - * Fires before the active state is changed. - *

        See: Element.addListener

        - *

        If handler returns false, the change will be cancelled, and the value will not - * be set.

        - *

        Event fields:
        - * <String> type beforeActiveChange
        - * <Boolean> - * prevValue the current value
        - * <Boolean> - * newValue the new value

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('beforeActiveChange', handler);

        - * @event beforeActiveChange - */ - - /** - * Fires after the active state is changed. - *

        See: Element.addListener

        - *

        Event fields:
        - * <String> type activeChange
        - * <Boolean> - * prevValue the previous value
        - * <Boolean> - * newValue the updated value

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('activeChange', handler);

        - * @event activeChange - */ - - /** - * Fires before the tab label is changed. - *

        See: Element.addListener

        - *

        If handler returns false, the change will be cancelled, and the value will not - * be set.

        - *

        Event fields:
        - * <String> type beforeLabelChange
        - * <String> - * prevValue the current value
        - * <String> - * newValue the new value

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('beforeLabelChange', handler);

        - * @event beforeLabelChange - */ - - /** - * Fires after the tab label is changed. - *

        See: Element.addListener

        - *

        Event fields:
        - * <String> type labelChange
        - * <String> - * prevValue the previous value
        - * <String> - * newValue the updated value

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('labelChange', handler);

        - * @event labelChange - */ - - /** - * Fires before the tab content is changed. - *

        See: Element.addListener

        - *

        If handler returns false, the change will be cancelled, and the value will not - * be set.

        - *

        Event fields:
        - * <String> type beforeContentChange
        - * <String> - * prevValue the current value
        - * <String> - * newValue the new value

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('beforeContentChange', handler);

        - * @event beforeContentChange - */ - - /** - * Fires after the tab content is changed. - *

        See: Element.addListener

        - *

        Event fields:
        - * <String> type contentChange
        - * <String> - * prevValue the previous value
        - * <Boolean> - * newValue the updated value

        - *

        Usage:
        - * var handler = function(e) {var previous = e.prevValue};
        - * myTabs.addListener('contentChange', handler);

        - * @event contentChange - */ -})(); - -YAHOO.register("tabview", YAHOO.widget.TabView, {version: "2.2.2", build: "204"}); diff --git a/www/extras/yui/build/treeview/README b/www/extras/yui/build/treeview/README deleted file mode 100644 index 81def706a..000000000 --- a/www/extras/yui/build/treeview/README +++ /dev/null @@ -1,154 +0,0 @@ -TreeView - Release Notes - -2.2.2 - * No change - -2.2.1 - * Fixed the default value in the documentation for the nowrap property in Node - (the default value is false). - -2.2.0 - - * Node::insertAfter properly nulls the nextSibling attribute when the - inserted before the firstChild. - - * MenuNodes inserted at the root level will no longer lose the menu behavior. - - * TextNode::setUpLabel sets the data.label property as well as the label property. - - * TaskNode example: made the logger optional, and moved the creation of the logger - instance to the proper location. - - * TaskNodes added to a node that is in a fully selected state will update the - parent to a partially selected state. - - * TaskNode example fixed to propagate the labelClick event - - -0.12.2 - - * removeChildren will now work properly on the root node. - -0.12.1 - - * Added custom events for expandComplete and collapseComplete. These events are - needed in situations where the implementer needs to resize or reposition - something based on the new offset. - - * Added a "nowrap" property to Node, and set the default to false. Specifies - whether or not the content area of the node should be allowed to wrap - naturally. - - * Added additional HTML elements to preserve the tree presentation when constrained - by a parent element. - -0.12.0 - - * TreeView now augments EventProvider, and has custom events for expand, - collapse, animStart, animComplete, and labelClick. Existing implementations - using abstract methods for these events (if they exist) will still work. - New events can be plugged into the tree by the Node implementation. For - example, TaskNode adds a checkClick event. EventProvider makes it safe - to do this because implementing code can call subscribe() prior to the - event creation. - - * YAHOO.util.Event is now a requirement for the widget - - * TreeView::removeChildren no longer expands and collapses the node. - - * Documented the moveComplete property - - * createElement("DIV") changed to createElement("div") - -0.11.4 - - * Fixed a javascript error on the HTML node example page. - -0.11.3 - - * popNode now clears the tree, previousSibling, nextSibling, and parent - properties of the node that is being removed from the tree. - - * Fixed the paths to the images in the tree.css file that is included in - build/assets. - -0.11.0 - - * Added TreeView -> popNode, which differs from removeNode in that the - node's children are preserved so the entire branch can be re-inserted - into another part of the tree, or another tree. - - * Added TreeView -> getNodesByProperty, which differs from - getNodeByProperty by returning an array of all nodes that have the - specified property rather than just the first one. - - * Added Node -> insertBefore, insertAfter, and appendTo. These method - can be used to reorganize the tree. - - * removeChildren properly resets the node icon when executed against a - collpased node. - - * Moved depth assignment from the constructor to appendChild so that the - value is set properly if the node is moved within the tree. - - * Fixed broken loop in removeChildren. - - * RootNode -> loadComplete calls tree.draw for hot-wiring the dynamic load - feature for the top level nodes. - - * The treeview constructor will accept an element instead of an id. - -0.10.0 - - * If the child collection changes prior to a refresh(), the icon is now - changed appropriately. - - * Added TreeView removeChildren(node). This will recursively purge the node's - children, and reset its dynamic load state. - - * previousSibling and nextSibling are now adjusted correctly when a - node is deleted. - - * expand()/collapse() now will not expand/collapse the node if false is - returned from the onExpand/onCollapse event handlers. - - * The onExpand and onCollapse events now fire before the node is expanded - or collapsed so that the implementer can modify the node's child collection - prior to display. - - * The childrenRendered property previous was used to indicate both that - a dynamically loaded node has received its data, and also to indicate - that the children html has been created. This has been split into - two properties. dynamicLoadComplete and childrenRendered. - - * Implemented the renderHidden flag. If set to true, the html for the entire - tree will be created when tree.draw() is called, not just the html for the - visible nodes. - - * Added an onLabelClick listener to TextNode - - * TreeView.removeNode no longer automatically refreshes the tree. It has an - optional parameter to perform the refresh. - - * removeNode can now be executed on nodes that have not been rendered. - - * You can now delete top-level nodes. - - * Added onCheckClick listener to the TaskNode example - - * Added Node.iconMode, which is a property that configures the way - dynamically loaded nodes are displayed when they are expanded and contain - no children. - - * TreeView/Node.setDynamicLoad now accepts an optional second parameter to - set the iconMode property. - - * Fixed an issue in the TaskNode.js example that prevented setting the checked - state of a node through the constructor. - - * Fixed an issue in HTMLNode that caused rendering issues when hasIcon was - set to true. - - * Added TreeView.removeNode - - * Added Node.refresh diff --git a/www/extras/yui/build/treeview/assets/lm.gif b/www/extras/yui/build/treeview/assets/lm.gif deleted file mode 100644 index e7d0a3ce9..000000000 Binary files a/www/extras/yui/build/treeview/assets/lm.gif and /dev/null differ diff --git a/www/extras/yui/build/treeview/assets/lmh.gif b/www/extras/yui/build/treeview/assets/lmh.gif deleted file mode 100644 index 3ff630272..000000000 Binary files a/www/extras/yui/build/treeview/assets/lmh.gif and /dev/null differ diff --git a/www/extras/yui/build/treeview/assets/ln.gif b/www/extras/yui/build/treeview/assets/ln.gif deleted file mode 100644 index b7b3e55cd..000000000 Binary files a/www/extras/yui/build/treeview/assets/ln.gif and /dev/null differ diff --git a/www/extras/yui/build/treeview/assets/loading.gif b/www/extras/yui/build/treeview/assets/loading.gif deleted file mode 100644 index 0bbf3bc0c..000000000 Binary files a/www/extras/yui/build/treeview/assets/loading.gif and /dev/null differ diff --git a/www/extras/yui/build/treeview/assets/lp.gif b/www/extras/yui/build/treeview/assets/lp.gif deleted file mode 100644 index b87f00315..000000000 Binary files a/www/extras/yui/build/treeview/assets/lp.gif and /dev/null differ diff --git a/www/extras/yui/build/treeview/assets/lph.gif b/www/extras/yui/build/treeview/assets/lph.gif deleted file mode 100644 index e3478d8e3..000000000 Binary files a/www/extras/yui/build/treeview/assets/lph.gif and /dev/null differ diff --git a/www/extras/yui/build/treeview/assets/tm.gif b/www/extras/yui/build/treeview/assets/tm.gif deleted file mode 100644 index e30abad89..000000000 Binary files a/www/extras/yui/build/treeview/assets/tm.gif and /dev/null differ diff --git a/www/extras/yui/build/treeview/assets/tmh.gif b/www/extras/yui/build/treeview/assets/tmh.gif deleted file mode 100644 index ad7e55793..000000000 Binary files a/www/extras/yui/build/treeview/assets/tmh.gif and /dev/null differ diff --git a/www/extras/yui/build/treeview/assets/tn.gif b/www/extras/yui/build/treeview/assets/tn.gif deleted file mode 100644 index 4a280397d..000000000 Binary files a/www/extras/yui/build/treeview/assets/tn.gif and /dev/null differ diff --git a/www/extras/yui/build/treeview/assets/tp.gif b/www/extras/yui/build/treeview/assets/tp.gif deleted file mode 100644 index d6d0ed0ae..000000000 Binary files a/www/extras/yui/build/treeview/assets/tp.gif and /dev/null differ diff --git a/www/extras/yui/build/treeview/assets/tph.gif b/www/extras/yui/build/treeview/assets/tph.gif deleted file mode 100644 index e4d7d991e..000000000 Binary files a/www/extras/yui/build/treeview/assets/tph.gif and /dev/null differ diff --git a/www/extras/yui/build/treeview/assets/tree.css b/www/extras/yui/build/treeview/assets/tree.css deleted file mode 100644 index b9abc4554..000000000 --- a/www/extras/yui/build/treeview/assets/tree.css +++ /dev/null @@ -1,102 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -/* first or middle sibling, no children */ -.ygtvtn { - width:16px; height:22px; - background: url(tn.gif) 0 0 no-repeat; -} - -/* first or middle sibling, collapsable */ -.ygtvtm { - width:16px; height:22px; - cursor:pointer ; - background: url(tm.gif) 0 0 no-repeat; -} - -/* first or middle sibling, collapsable, hover */ -.ygtvtmh { - width:16px; height:22px; - cursor:pointer ; - background: url(tmh.gif) 0 0 no-repeat; -} - -/* first or middle sibling, expandable */ -.ygtvtp { - width:16px; height:22px; - cursor:pointer ; - background: url(tp.gif) 0 0 no-repeat; -} - -/* first or middle sibling, expandable, hover */ -.ygtvtph { - width:16px; height:22px; - cursor:pointer ; - background: url(tph.gif) 0 0 no-repeat; -} - -/* last sibling, no children */ -.ygtvln { - width:16px; height:22px; - background: url(ln.gif) 0 0 no-repeat; -} - -/* Last sibling, collapsable */ -.ygtvlm { - width:16px; height:22px; - cursor:pointer ; - background: url(lm.gif) 0 0 no-repeat; -} - -/* Last sibling, collapsable, hover */ -.ygtvlmh { - width:16px; height:22px; - cursor:pointer ; - background: url(lmh.gif) 0 0 no-repeat; -} - -/* Last sibling, expandable */ -.ygtvlp { - width:16px; height:22px; - cursor:pointer ; - background: url(lp.gif) 0 0 no-repeat; -} - -/* Last sibling, expandable, hover */ -.ygtvlph { - width:16px; height:22px; cursor:pointer ; - background: url(lph.gif) 0 0 no-repeat; -} - -/* Loading icon */ -.ygtvloading { - width:16px; height:22px; - background: url(loading.gif) 0 0 no-repeat; -} - -/* the style for the empty cells that are used for rendering the depth - * of the node */ -.ygtvdepthcell { - width:16px; height:22px; - background: url(vline.gif) 0 0 no-repeat; -} - -.ygtvblankdepthcell { width:16px; height:22px; } - -/* the style of the div around each node */ -.ygtvitem { } - -/* the style of the div around each node's collection of children */ -.ygtvchildren { } -* html .ygtvchildren { height:2%; } - -/* the style of the text label in ygTextNode */ -.ygtvlabel, .ygtvlabel:link, .ygtvlabel:visited, .ygtvlabel:hover { - margin-left:2px; - text-decoration: none; -} - -.ygtvspacer { height: 10px; width: 10px; margin: 2px; } diff --git a/www/extras/yui/build/treeview/assets/vline.gif b/www/extras/yui/build/treeview/assets/vline.gif deleted file mode 100644 index 1fb0de8bb..000000000 Binary files a/www/extras/yui/build/treeview/assets/vline.gif and /dev/null differ diff --git a/www/extras/yui/build/treeview/treeview-debug.js b/www/extras/yui/build/treeview/treeview-debug.js deleted file mode 100644 index 2ab8a4de8..000000000 --- a/www/extras/yui/build/treeview/treeview-debug.js +++ /dev/null @@ -1,2287 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -/** - * The treeview widget is a generic tree building tool. - * @module treeview - * @title TreeView Widget - * @requires yahoo, event - * @optional animation - * @namespace YAHOO.widget - */ - -/** - * Contains the tree view state data and the root node. - * - * @class TreeView - * @uses YAHOO.util.EventProvider - * @constructor - * @param {string|HTMLElement} id The id of the element, or the element - * itself that the tree will be inserted into. - */ -YAHOO.widget.TreeView = function(id) { - if (id) { this.init(id); } -}; - -YAHOO.widget.TreeView.prototype = { - - /** - * The id of tree container element - * @property id - * @type String - */ - id: null, - - /** - * The host element for this tree - * @property _el - * @private - */ - _el: null, - - /** - * Flat collection of all nodes in this tree. This is a sparse - * array, so the length property can't be relied upon for a - * node count for the tree. - * @property _nodes - * @type Node[] - * @private - */ - _nodes: null, - - /** - * We lock the tree control while waiting for the dynamic loader to return - * @property locked - * @type boolean - */ - locked: false, - - /** - * The animation to use for expanding children, if any - * @property _expandAnim - * @type string - * @private - */ - _expandAnim: null, - - /** - * The animation to use for collapsing children, if any - * @property _collapseAnim - * @type string - * @private - */ - _collapseAnim: null, - - /** - * The current number of animations that are executing - * @property _animCount - * @type int - * @private - */ - _animCount: 0, - - /** - * The maximum number of animations to run at one time. - * @property maxAnim - * @type int - */ - maxAnim: 2, - - /** - * Sets up the animation for expanding children - * @method setExpandAnim - * @param {string} type the type of animation (acceptable values defined - * in YAHOO.widget.TVAnim) - */ - setExpandAnim: function(type) { - if (YAHOO.widget.TVAnim.isValid(type)) { - this._expandAnim = type; - } - }, - - /** - * Sets up the animation for collapsing children - * @method setCollapseAnim - * @param {string} the type of animation (acceptable values defined in - * YAHOO.widget.TVAnim) - */ - setCollapseAnim: function(type) { - if (YAHOO.widget.TVAnim.isValid(type)) { - this._collapseAnim = type; - } - }, - - /** - * Perform the expand animation if configured, or just show the - * element if not configured or too many animations are in progress - * @method animateExpand - * @param el {HTMLElement} the element to animate - * @param node {YAHOO.util.Node} the node that was expanded - * @return {boolean} true if animation could be invoked, false otherwise - */ - animateExpand: function(el, node) { - this.logger.log("animating expand"); - - if (this._expandAnim && this._animCount < this.maxAnim) { - // this.locked = true; - var tree = this; - var a = YAHOO.widget.TVAnim.getAnim(this._expandAnim, el, - function() { tree.expandComplete(node); }); - if (a) { - ++this._animCount; - this.fireEvent("animStart", { - "node": node, - "type": "expand" - }); - a.animate(); - } - - return true; - } - - return false; - }, - - /** - * Perform the collapse animation if configured, or just show the - * element if not configured or too many animations are in progress - * @method animateCollapse - * @param el {HTMLElement} the element to animate - * @param node {YAHOO.util.Node} the node that was expanded - * @return {boolean} true if animation could be invoked, false otherwise - */ - animateCollapse: function(el, node) { - this.logger.log("animating collapse"); - - if (this._collapseAnim && this._animCount < this.maxAnim) { - // this.locked = true; - var tree = this; - var a = YAHOO.widget.TVAnim.getAnim(this._collapseAnim, el, - function() { tree.collapseComplete(node); }); - if (a) { - ++this._animCount; - this.fireEvent("animStart", { - "node": node, - "type": "collapse" - }); - a.animate(); - } - - return true; - } - - return false; - }, - - /** - * Function executed when the expand animation completes - * @method expandComplete - */ - expandComplete: function(node) { - this.logger.log("expand complete: " + this.id); - --this._animCount; - this.fireEvent("animComplete", { - "node": node, - "type": "expand" - }); - // this.locked = false; - }, - - /** - * Function executed when the collapse animation completes - * @method collapseComplete - */ - collapseComplete: function(node) { - this.logger.log("collapse complete: " + this.id); - --this._animCount; - this.fireEvent("animComplete", { - "node": node, - "type": "collapse" - }); - // this.locked = false; - }, - - /** - * Initializes the tree - * @method init - * @parm {string|HTMLElement} id the id of the element that will hold the tree - * @private - */ - init: function(id) { - - this.id = id; - - if ("string" !== typeof id) { - this._el = id; - this.id = this.generateId(id); - } - - /** - * When animation is enabled, this event fires when the animation - * starts - * @event animStart - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is expanding/collapsing - * @parm {String} type the type of animation ("expand" or "collapse") - */ - this.createEvent("animStart", this); - - /** - * When animation is enabled, this event fires when the animation - * completes - * @event animComplete - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is expanding/collapsing - * @parm {String} type the type of animation ("expand" or "collapse") - */ - this.createEvent("animComplete", this); - - /** - * Fires when a node is going to be collapsed. Return false to stop - * the collapse. - * @event collapse - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is collapsing - */ - this.createEvent("collapse", this); - - /** - * Fires after a node is successfully collapsed. This event will not fire - * if the "collapse" event was cancelled. - * @event collapseComplete - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that was collapsed - */ - this.createEvent("collapseComplete", this); - - /** - * Fires when a node is going to be expanded. Return false to stop - * the collapse. - * @event expand - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is expanding - */ - this.createEvent("expand", this); - - /** - * Fires after a node is successfully expanded. This event will not fire - * if the "expand" event was cancelled. - * @event expandComplete - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that was expanded - */ - this.createEvent("expandComplete", this); - - this._nodes = []; - - // store a global reference - YAHOO.widget.TreeView.trees[this.id] = this; - - // Set up the root node - this.root = new YAHOO.widget.RootNode(this); - - this.logger = new YAHOO.widget.LogWriter(this.toString()); - - this.logger.log("tree init: " + this.id); - - //YAHOO.util.Event.onContentReady(this.id, this.handleAvailable, this, true); - YAHOO.util.Event.on(this.id, "click", this.handleClick, this, true); - }, - - - //handleAvailable: function() { - //var Event = YAHOO.util.Event; - //Event.on(this.id, - //}, - - /** - * Renders the tree boilerplate and visible nodes - * @method draw - */ - draw: function() { - var html = this.root.getHtml(); - this.getEl().innerHTML = html; - this.firstDraw = false; - }, - - /** - * Returns the tree's host element - * @method getEl - * @return {HTMLElement} the host element - */ - getEl: function() { - if (! this._el) { - this._el = document.getElementById(this.id); - } - return this._el; - }, - - /** - * Nodes register themselves with the tree instance when they are created. - * @method regNode - * @param node {Node} the node to register - * @private - */ - regNode: function(node) { - this._nodes[node.index] = node; - }, - - /** - * Returns the root node of this tree - * @method getRoot - * @return {Node} the root node - */ - getRoot: function() { - return this.root; - }, - - /** - * Configures this tree to dynamically load all child data - * @method setDynamicLoad - * @param {function} fnDataLoader the function that will be called to get the data - * @param iconMode {int} configures the icon that is displayed when a dynamic - * load node is expanded the first time without children. By default, the - * "collapse" icon will be used. If set to 1, the leaf node icon will be - * displayed. - */ - setDynamicLoad: function(fnDataLoader, iconMode) { - this.root.setDynamicLoad(fnDataLoader, iconMode); - }, - - /** - * Expands all child nodes. Note: this conflicts with the "multiExpand" - * node property. If expand all is called in a tree with nodes that - * do not allow multiple siblings to be displayed, only the last sibling - * will be expanded. - * @method expandAll - */ - expandAll: function() { - if (!this.locked) { - this.root.expandAll(); - } - }, - - /** - * Collapses all expanded child nodes in the entire tree. - * @method collapseAll - */ - collapseAll: function() { - if (!this.locked) { - this.root.collapseAll(); - } - }, - - /** - * Returns a node in the tree that has the specified index (this index - * is created internally, so this function probably will only be used - * in html generated for a given node.) - * @method getNodeByIndex - * @param {int} nodeIndex the index of the node wanted - * @return {Node} the node with index=nodeIndex, null if no match - */ - getNodeByIndex: function(nodeIndex) { - var n = this._nodes[nodeIndex]; - return (n) ? n : null; - }, - - /** - * Returns a node that has a matching property and value in the data - * object that was passed into its constructor. - * @method getNodeByProperty - * @param {object} property the property to search (usually a string) - * @param {object} value the value we want to find (usuall an int or string) - * @return {Node} the matching node, null if no match - */ - getNodeByProperty: function(property, value) { - for (var i in this._nodes) { - var n = this._nodes[i]; - if (n.data && value == n.data[property]) { - return n; - } - } - - return null; - }, - - /** - * Returns a collection of nodes that have a matching property - * and value in the data object that was passed into its constructor. - * @method getNodesByProperty - * @param {object} property the property to search (usually a string) - * @param {object} value the value we want to find (usuall an int or string) - * @return {Array} the matching collection of nodes, null if no match - */ - getNodesByProperty: function(property, value) { - var values = []; - for (var i in this._nodes) { - var n = this._nodes[i]; - if (n.data && value == n.data[property]) { - values.push(n); - } - } - - return (values.length) ? values : null; - }, - - /** - * Removes the node and its children, and optionally refreshes the - * branch of the tree that was affected. - * @method removeNode - * @param {Node} The node to remove - * @param {boolean} autoRefresh automatically refreshes branch if true - * @return {boolean} False is there was a problem, true otherwise. - */ - removeNode: function(node, autoRefresh) { - - // Don't delete the root node - if (node.isRoot()) { - return false; - } - - // Get the branch that we may need to refresh - var p = node.parent; - if (p.parent) { - p = p.parent; - } - - // Delete the node and its children - this._deleteNode(node); - - // Refresh the parent of the parent - if (autoRefresh && p && p.childrenRendered) { - p.refresh(); - } - - return true; - }, - - /** - * Deletes this nodes child collection, recursively. Also collapses - * the node, and resets the dynamic load flag. The primary use for - * this method is to purge a node and allow it to fetch its data - * dynamically again. - * @method removeChildren - * @param {Node} node the node to purge - */ - removeChildren: function(node) { - this.logger.log("Removing children for " + node); - while (node.children.length) { - this._deleteNode(node.children[0]); - } - - node.childrenRendered = false; - node.dynamicLoadComplete = false; - if (node.expanded) { - node.collapse(); - } else { - node.updateIcon(); - } - }, - - /** - * Deletes the node and recurses children - * @method _deleteNode - * @private - */ - _deleteNode: function(node) { - // Remove all the child nodes first - this.removeChildren(node); - - // Remove the node from the tree - this.popNode(node); - }, - - /** - * Removes the node from the tree, preserving the child collection - * to make it possible to insert the branch into another part of the - * tree, or another tree. - * @method popNode - * @param {Node} the node to remove - */ - popNode: function(node) { - var p = node.parent; - - // Update the parent's collection of children - var a = []; - - for (var i=0, len=p.children.length;i '; - } - - var f = document.createElement("div"); - var s = f.style; - s.position = "absolute"; - s.top = "-1000px"; - s.left = "-1000px"; - f.innerHTML = sb.join(""); - - document.body.appendChild(f); - - YAHOO.widget.TreeView.removeHandler(window, - "load", YAHOO.widget.TreeView.preload); - -}; - -YAHOO.widget.TreeView.addHandler(window, - "load", YAHOO.widget.TreeView.preload); - -/** - * The base class for all tree nodes. The node's presentation and behavior in - * response to mouse events is handled in Node subclasses. - * @namespace YAHOO.widget - * @class Node - * @uses YAHOO.util.EventProvider - * @param oData {object} a string or object containing the data that will - * be used to render this node - * @param oParent {Node} this node's parent node - * @param expanded {boolean} the initial expanded/collapsed state - * @constructor - */ -YAHOO.widget.Node = function(oData, oParent, expanded) { - if (oData) { this.init(oData, oParent, expanded); } -}; - -YAHOO.widget.Node.prototype = { - - /** - * The index for this instance obtained from global counter in YAHOO.widget.TreeView. - * @property index - * @type int - */ - index: 0, - - /** - * This node's child node collection. - * @property children - * @type Node[] - */ - children: null, - - /** - * Tree instance this node is part of - * @property tree - * @type TreeView - */ - tree: null, - - /** - * The data linked to this node. This can be any object or primitive - * value, and the data can be used in getNodeHtml(). - * @property data - * @type object - */ - data: null, - - /** - * Parent node - * @property parent - * @type Node - */ - parent: null, - - /** - * The depth of this node. We start at -1 for the root node. - * @property depth - * @type int - */ - depth: -1, - - /** - * The href for the node's label. If one is not specified, the href will - * be set so that it toggles the node. - * @property href - * @type string - */ - href: null, - - /** - * The label href target, defaults to current window - * @property target - * @type string - */ - target: "_self", - - /** - * The node's expanded/collapsed state - * @property expanded - * @type boolean - */ - expanded: false, - - /** - * Can multiple children be expanded at once? - * @property multiExpand - * @type boolean - */ - multiExpand: true, - - /** - * Should we render children for a collapsed node? It is possible that the - * implementer will want to render the hidden data... @todo verify that we - * need this, and implement it if we do. - * @property renderHidden - * @type boolean - */ - renderHidden: false, - - /** - * This flag is set to true when the html is generated for this node's - * children, and set to false when new children are added. - * @property childrenRendered - * @type boolean - */ - childrenRendered: false, - - /** - * Dynamically loaded nodes only fetch the data the first time they are - * expanded. This flag is set to true once the data has been fetched. - * @property dynamicLoadComplete - * @type boolean - */ - dynamicLoadComplete: false, - - /** - * This node's previous sibling - * @property previousSibling - * @type Node - */ - previousSibling: null, - - /** - * This node's next sibling - * @property nextSibling - * @type Node - */ - nextSibling: null, - - /** - * We can set the node up to call an external method to get the child - * data dynamically. - * @property _dynLoad - * @type boolean - * @private - */ - _dynLoad: false, - - /** - * Function to execute when we need to get this node's child data. - * @property dataLoader - * @type function - */ - dataLoader: null, - - /** - * This is true for dynamically loading nodes while waiting for the - * callback to return. - * @property isLoading - * @type boolean - */ - isLoading: false, - - /** - * The toggle/branch icon will not show if this is set to false. This - * could be useful if the implementer wants to have the child contain - * extra info about the parent, rather than an actual node. - * @property hasIcon - * @type boolean - */ - hasIcon: true, - - /** - * Used to configure what happens when a dynamic load node is expanded - * and we discover that it does not have children. By default, it is - * treated as if it still could have children (plus/minus icon). Set - * iconMode to have it display like a leaf node instead. - * @property iconMode - * @type int - */ - iconMode: 0, - - /** - * Specifies whether or not the content area of the node should be allowed - * to wrap. - * @property nowrap - * @type boolean - * @default false - */ - nowrap: false, - - /** - * The node type - * @property _type - * @private - */ - _type: "Node", - - /* - spacerPath: "http://us.i1.yimg.com/us.yimg.com/i/space.gif", - expandedText: "Expanded", - collapsedText: "Collapsed", - loadingText: "Loading", - */ - - /** - * Initializes this node, gets some of the properties from the parent - * @method init - * @param oData {object} a string or object containing the data that will - * be used to render this node - * @param oParent {Node} this node's parent node - * @param expanded {boolean} the initial expanded/collapsed state - */ - init: function(oData, oParent, expanded) { - - this.data = oData; - this.children = []; - this.index = YAHOO.widget.TreeView.nodeCount; - ++YAHOO.widget.TreeView.nodeCount; - this.expanded = expanded; - this.logger = new YAHOO.widget.LogWriter(this.toString()); - - /** - * The parentChange event is fired when a parent element is applied - * to the node. This is useful if you need to apply tree-level - * properties to a tree that need to happen if a node is moved from - * one tree to another. - * - * @event parentChange - * @type CustomEvent - */ - this.createEvent("parentChange", this); - - // oParent should never be null except when we create the root node. - if (oParent) { - oParent.appendChild(this); - } - }, - - /** - * Certain properties for the node cannot be set until the parent - * is known. This is called after the node is inserted into a tree. - * the parent is also applied to this node's children in order to - * make it possible to move a branch from one tree to another. - * @method applyParent - * @param {Node} parentNode this node's parent node - * @return {boolean} true if the application was successful - */ - applyParent: function(parentNode) { - if (!parentNode) { - return false; - } - - this.tree = parentNode.tree; - this.parent = parentNode; - this.depth = parentNode.depth + 1; - - if (!this.href) { - this.href = "javascript:" + this.getToggleLink(); - } - - // @todo why was this put here. This causes new nodes added at the - // root level to lose the menu behavior. - // if (! this.multiExpand) { - // this.multiExpand = parentNode.multiExpand; - // } - - this.tree.regNode(this); - parentNode.childrenRendered = false; - - // cascade update existing children - for (var i=0, len=this.children.length;i 0 || - (checkForLazyLoad && this.isDynamic() && !this.dynamicLoadComplete) ); - }, - - /** - * Expands if node is collapsed, collapses otherwise. - * @method toggle - */ - toggle: function() { - if (!this.tree.locked && ( this.hasChildren(true) || this.isDynamic()) ) { - if (this.expanded) { this.collapse(); } else { this.expand(); } - } - }, - - /** - * Returns the markup for this node and its children. - * @method getHtml - * @return {string} the markup for this node and its expanded children. - */ - getHtml: function() { - - this.childrenRendered = false; - - var sb = []; - sb[sb.length] = '
        '; - sb[sb.length] = this.getNodeHtml(); - sb[sb.length] = this.getChildrenHtml(); - sb[sb.length] = '
        '; - return sb.join(""); - }, - - /** - * Called when first rendering the tree. We always build the div that will - * contain this nodes children, but we don't render the children themselves - * unless this node is expanded. - * @method getChildrenHtml - * @return {string} the children container div html and any expanded children - * @private - */ - getChildrenHtml: function() { - - var sb = []; - sb[sb.length] = '
        = this.depth || depth < 0) { - this.logger.log("illegal getAncestor depth: " + depth); - return null; - } - - var p = this.parent; - - while (p.depth > depth) { - p = p.parent; - } - - return p; - }, - - /** - * Returns the css class for the spacer at the specified depth for - * this node. If this node's ancestor at the specified depth - * has a next sibling the presentation is different than if it - * does not have a next sibling - * @method getDepthStyle - * @param {int} depth the depth of the ancestor. - * @return {string} the css class for the spacer - */ - getDepthStyle: function(depth) { - return (this.getAncestor(depth).nextSibling) ? - "ygtvdepthcell" : "ygtvblankdepthcell"; - }, - - /** - * Get the markup for the node. This is designed to be overrided so that we can - * support different types of nodes. - * @method getNodeHtml - * @return {string} The HTML that will render this node. - */ - getNodeHtml: function() { - this.logger.log("Generating html"); - return ""; - }, - - /** - * Regenerates the html for this node and its children. To be used when the - * node is expanded and new children have been added. - * @method refresh - */ - refresh: function() { - // this.loadComplete(); - this.getChildrenEl().innerHTML = this.completeRender(); - - if (this.hasIcon) { - var el = this.getToggleEl(); - if (el) { - el.className = this.getStyle(); - } - } - }, - - /** - * Node toString - * @method toString - * @return {string} string representation of the node - */ - toString: function() { - return "Node (" + this.index + ")"; - } - -}; - -YAHOO.augment(YAHOO.widget.Node, YAHOO.util.EventProvider); - -/** - * The default node presentation. The first parameter should be - * either a string that will be used as the node's label, or an object - * that has a string propery called label. By default, the clicking the - * label will toggle the expanded/collapsed state of the node. By - * changing the href property of the instance, this behavior can be - * changed so that the label will go to the specified href. - * @namespace YAHOO.widget - * @class TextNode - * @extends YAHOO.widget.Node - * @constructor - * @param oData {object} a string or object containing the data that will - * be used to render this node - * @param oParent {YAHOO.widget.Node} this node's parent node - * @param expanded {boolean} the initial expanded/collapsed state - */ -YAHOO.widget.TextNode = function(oData, oParent, expanded) { - - if (oData) { - this.init(oData, oParent, expanded); - this.setUpLabel(oData); - } - - this.logger = new YAHOO.widget.LogWriter(this.toString()); -}; - -YAHOO.extend(YAHOO.widget.TextNode, YAHOO.widget.Node, { - - /** - * The CSS class for the label href. Defaults to ygtvlabel, but can be - * overridden to provide a custom presentation for a specific node. - * @property labelStyle - * @type string - */ - labelStyle: "ygtvlabel", - - /** - * The derived element id of the label for this node - * @property labelElId - * @type string - */ - labelElId: null, - - /** - * The text for the label. It is assumed that the oData parameter will - * either be a string that will be used as the label, or an object that - * has a property called "label" that we will use. - * @property label - * @type string - */ - label: null, - - textNodeParentChange: function() { - - /** - * Custom event that is fired when the text node label is clicked. The - * custom event is defined on the tree instance, so there is a single - * event that handles all nodes in the tree. The node clicked is - * provided as an argument - * - * @event labelClick - * @for YAHOO.widget.TreeView - * @param {YAHOO.widget.Node} node the node clicked - */ - if (this.tree && !this.tree.hasEvent("labelClick")) { - this.tree.createEvent("labelClick", this.tree); - } - - }, - - /** - * Sets up the node label - * @method setUpLabel - * @param oData string containing the label, or an object with a label property - */ - setUpLabel: function(oData) { - - // set up the custom event on the tree - this.textNodeParentChange(); - this.subscribe("parentChange", this.textNodeParentChange); - - if (typeof oData == "string") { - oData = { label: oData }; - } - this.label = oData.label; - this.data.label = oData.label; - - // update the link - if (oData.href) { - this.href = oData.href; - } - - // set the target - if (oData.target) { - this.target = oData.target; - } - - if (oData.style) { - this.labelStyle = oData.style; - } - - this.labelElId = "ygtvlabelel" + this.index; - }, - - /** - * Returns the label element - * @for YAHOO.widget.TextNode - * @method getLabelEl - * @return {object} the element - */ - getLabelEl: function() { - return document.getElementById(this.labelElId); - }, - - // overrides YAHOO.widget.Node - getNodeHtml: function() { - this.logger.log("Generating html"); - var sb = []; - - sb[sb.length] = ''; - sb[sb.length] = ''; - - for (var i=0;i '; - //sb[sb.length] = ''; - sb[sb.length] = ''; - } - - var getNode = 'YAHOO.widget.TreeView.getNode(\'' + - this.tree.id + '\',' + this.index + ')'; - - sb[sb.length] = ''; - - sb[sb.length] = '
        '; - - /* - sb[sb.length] = ' '; - sb[sb.length] = '
        '; - } - - if (this.hasIcon) { - sb[sb.length] = ' ';} -var f=document.createElement("div");var s=f.style;s.position="absolute";s.top="-1000px";s.left="-1000px";f.innerHTML=sb.join("");document.body.appendChild(f);YAHOO.widget.TreeView.removeHandler(window,"load",YAHOO.widget.TreeView.preload);};YAHOO.widget.TreeView.addHandler(window,"load",YAHOO.widget.TreeView.preload);YAHOO.widget.Node=function(oData,oParent,expanded){if(oData){this.init(oData,oParent,expanded);}};YAHOO.widget.Node.prototype={index:0,children:null,tree:null,data:null,parent:null,depth:-1,href:null,target:"_self",expanded:false,multiExpand:true,renderHidden:false,childrenRendered:false,dynamicLoadComplete:false,previousSibling:null,nextSibling:null,_dynLoad:false,dataLoader:null,isLoading:false,hasIcon:true,iconMode:0,nowrap:false,_type:"Node",init:function(oData,oParent,expanded){this.data=oData;this.children=[];this.index=YAHOO.widget.TreeView.nodeCount;++YAHOO.widget.TreeView.nodeCount;this.expanded=expanded;this.createEvent("parentChange",this);if(oParent){oParent.appendChild(this);}},applyParent:function(parentNode){if(!parentNode){return false;} -this.tree=parentNode.tree;this.parent=parentNode;this.depth=parentNode.depth+1;if(!this.href){this.href="javascript:"+this.getToggleLink();} -this.tree.regNode(this);parentNode.childrenRendered=false;for(var i=0,len=this.children.length;i0||(checkForLazyLoad&&this.isDynamic()&&!this.dynamicLoadComplete));},toggle:function(){if(!this.tree.locked&&(this.hasChildren(true)||this.isDynamic())){if(this.expanded){this.collapse();}else{this.expand();}}},getHtml:function(){this.childrenRendered=false;var sb=[];sb[sb.length]='
        ';sb[sb.length]=this.getNodeHtml();sb[sb.length]=this.getChildrenHtml();sb[sb.length]='
        ';return sb.join("");},getChildrenHtml:function(){var sb=[];sb[sb.length]='
        =this.depth||depth<0){return null;} -var p=this.parent;while(p.depth>depth){p=p.parent;} -return p;},getDepthStyle:function(depth){return(this.getAncestor(depth).nextSibling)?"ygtvdepthcell":"ygtvblankdepthcell";},getNodeHtml:function(){return"";},refresh:function(){this.getChildrenEl().innerHTML=this.completeRender();if(this.hasIcon){var el=this.getToggleEl();if(el){el.className=this.getStyle();}}},toString:function(){return"Node ("+this.index+")";}};YAHOO.augment(YAHOO.widget.Node,YAHOO.util.EventProvider);YAHOO.widget.TextNode=function(oData,oParent,expanded){if(oData){this.init(oData,oParent,expanded);this.setUpLabel(oData);}};YAHOO.extend(YAHOO.widget.TextNode,YAHOO.widget.Node,{labelStyle:"ygtvlabel",labelElId:null,label:null,textNodeParentChange:function(){if(this.tree&&!this.tree.hasEvent("labelClick")){this.tree.createEvent("labelClick",this.tree);}},setUpLabel:function(oData){this.textNodeParentChange();this.subscribe("parentChange",this.textNodeParentChange);if(typeof oData=="string"){oData={label:oData};} -this.label=oData.label;this.data.label=oData.label;if(oData.href){this.href=oData.href;} -if(oData.target){this.target=oData.target;} -if(oData.style){this.labelStyle=oData.style;} -this.labelElId="ygtvlabelel"+this.index;},getLabelEl:function(){return document.getElementById(this.labelElId);},getNodeHtml:function(){var sb=[];sb[sb.length]='
        ';sb[sb.length]='';for(var i=0;i
        ';} -var getNode='YAHOO.widget.TreeView.getNode(\''+ -this.tree.id+'\','+this.index+')';sb[sb.length]='';sb[sb.length]='
        ';sb[sb.length]='
        ';sb[sb.length]='';sb[sb.length]='
        ';sb[sb.length]='';sb[sb.length]='
        ';sb[sb.length]='
        ';return sb.join("");},onLabelClick:function(me){return me.tree.fireEvent("labelClick",me);},toString:function(){return"TextNode ("+this.index+") "+this.label;}});YAHOO.widget.RootNode=function(oTree){this.init(null,null,true);this.tree=oTree;};YAHOO.extend(YAHOO.widget.RootNode,YAHOO.widget.Node,{getNodeHtml:function(){return"";},toString:function(){return"RootNode";},loadComplete:function(){this.tree.draw();},collapse:function(){},expand:function(){}});YAHOO.widget.HTMLNode=function(oData,oParent,expanded,hasIcon){if(oData){this.init(oData,oParent,expanded);this.initContent(oData,hasIcon);}};YAHOO.extend(YAHOO.widget.HTMLNode,YAHOO.widget.Node,{contentStyle:"ygtvhtml",contentElId:null,content:null,initContent:function(oData,hasIcon){if(typeof oData=="string"){oData={html:oData};} -this.html=oData.html;this.contentElId="ygtvcontentel"+this.index;this.hasIcon=hasIcon;},getContentEl:function(){return document.getElementById(this.contentElId);},getNodeHtml:function(){var sb=[];sb[sb.length]='';sb[sb.length]='';for(var i=0;i
        ';} -if(this.hasIcon){sb[sb.length]='';sb[sb.length]='
        ';sb[sb.length]='
        ';return sb.join("");},toString:function(){return"HTMLNode ("+this.index+")";}});YAHOO.widget.MenuNode=function(oData,oParent,expanded){if(oData){this.init(oData,oParent,expanded);this.setUpLabel(oData);} -this.multiExpand=false;};YAHOO.extend(YAHOO.widget.MenuNode,YAHOO.widget.TextNode,{toString:function(){return"MenuNode ("+this.index+") "+this.label;}});YAHOO.widget.TVAnim=function(){return{FADE_IN:"TVFadeIn",FADE_OUT:"TVFadeOut",getAnim:function(type,el,callback){if(YAHOO.widget[type]){return new YAHOO.widget[type](el,callback);}else{return null;}},isValid:function(type){return(YAHOO.widget[type]);}};}();YAHOO.widget.TVFadeIn=function(el,callback){this.el=el;this.callback=callback;};YAHOO.widget.TVFadeIn.prototype={animate:function(){var tvanim=this;var s=this.el.style;s.opacity=0.1;s.filter="alpha(opacity=10)";s.display="";var dur=0.4;var a=new YAHOO.util.Anim(this.el,{opacity:{from:0.1,to:1,unit:""}},dur);a.onComplete.subscribe(function(){tvanim.onComplete();});a.animate();},onComplete:function(){this.callback();},toString:function(){return"TVFadeIn";}};YAHOO.widget.TVFadeOut=function(el,callback){this.el=el;this.callback=callback;};YAHOO.widget.TVFadeOut.prototype={animate:function(){var tvanim=this;var dur=0.4;var a=new YAHOO.util.Anim(this.el,{opacity:{from:1,to:0.1,unit:""}},dur);a.onComplete.subscribe(function(){tvanim.onComplete();});a.animate();},onComplete:function(){var s=this.el.style;s.display="none";s.filter="alpha(opacity=100)";this.callback();},toString:function(){return"TVFadeOut";}};YAHOO.register("treeview",YAHOO.widget.TreeView,{version:"2.2.2",build:"204"}); \ No newline at end of file diff --git a/www/extras/yui/build/treeview/treeview.js b/www/extras/yui/build/treeview/treeview.js deleted file mode 100644 index 05ef9fe6d..000000000 --- a/www/extras/yui/build/treeview/treeview.js +++ /dev/null @@ -1,2248 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ -/** - * The treeview widget is a generic tree building tool. - * @module treeview - * @title TreeView Widget - * @requires yahoo, event - * @optional animation - * @namespace YAHOO.widget - */ - -/** - * Contains the tree view state data and the root node. - * - * @class TreeView - * @uses YAHOO.util.EventProvider - * @constructor - * @param {string|HTMLElement} id The id of the element, or the element - * itself that the tree will be inserted into. - */ -YAHOO.widget.TreeView = function(id) { - if (id) { this.init(id); } -}; - -YAHOO.widget.TreeView.prototype = { - - /** - * The id of tree container element - * @property id - * @type String - */ - id: null, - - /** - * The host element for this tree - * @property _el - * @private - */ - _el: null, - - /** - * Flat collection of all nodes in this tree. This is a sparse - * array, so the length property can't be relied upon for a - * node count for the tree. - * @property _nodes - * @type Node[] - * @private - */ - _nodes: null, - - /** - * We lock the tree control while waiting for the dynamic loader to return - * @property locked - * @type boolean - */ - locked: false, - - /** - * The animation to use for expanding children, if any - * @property _expandAnim - * @type string - * @private - */ - _expandAnim: null, - - /** - * The animation to use for collapsing children, if any - * @property _collapseAnim - * @type string - * @private - */ - _collapseAnim: null, - - /** - * The current number of animations that are executing - * @property _animCount - * @type int - * @private - */ - _animCount: 0, - - /** - * The maximum number of animations to run at one time. - * @property maxAnim - * @type int - */ - maxAnim: 2, - - /** - * Sets up the animation for expanding children - * @method setExpandAnim - * @param {string} type the type of animation (acceptable values defined - * in YAHOO.widget.TVAnim) - */ - setExpandAnim: function(type) { - if (YAHOO.widget.TVAnim.isValid(type)) { - this._expandAnim = type; - } - }, - - /** - * Sets up the animation for collapsing children - * @method setCollapseAnim - * @param {string} the type of animation (acceptable values defined in - * YAHOO.widget.TVAnim) - */ - setCollapseAnim: function(type) { - if (YAHOO.widget.TVAnim.isValid(type)) { - this._collapseAnim = type; - } - }, - - /** - * Perform the expand animation if configured, or just show the - * element if not configured or too many animations are in progress - * @method animateExpand - * @param el {HTMLElement} the element to animate - * @param node {YAHOO.util.Node} the node that was expanded - * @return {boolean} true if animation could be invoked, false otherwise - */ - animateExpand: function(el, node) { - - if (this._expandAnim && this._animCount < this.maxAnim) { - // this.locked = true; - var tree = this; - var a = YAHOO.widget.TVAnim.getAnim(this._expandAnim, el, - function() { tree.expandComplete(node); }); - if (a) { - ++this._animCount; - this.fireEvent("animStart", { - "node": node, - "type": "expand" - }); - a.animate(); - } - - return true; - } - - return false; - }, - - /** - * Perform the collapse animation if configured, or just show the - * element if not configured or too many animations are in progress - * @method animateCollapse - * @param el {HTMLElement} the element to animate - * @param node {YAHOO.util.Node} the node that was expanded - * @return {boolean} true if animation could be invoked, false otherwise - */ - animateCollapse: function(el, node) { - - if (this._collapseAnim && this._animCount < this.maxAnim) { - // this.locked = true; - var tree = this; - var a = YAHOO.widget.TVAnim.getAnim(this._collapseAnim, el, - function() { tree.collapseComplete(node); }); - if (a) { - ++this._animCount; - this.fireEvent("animStart", { - "node": node, - "type": "collapse" - }); - a.animate(); - } - - return true; - } - - return false; - }, - - /** - * Function executed when the expand animation completes - * @method expandComplete - */ - expandComplete: function(node) { - --this._animCount; - this.fireEvent("animComplete", { - "node": node, - "type": "expand" - }); - // this.locked = false; - }, - - /** - * Function executed when the collapse animation completes - * @method collapseComplete - */ - collapseComplete: function(node) { - --this._animCount; - this.fireEvent("animComplete", { - "node": node, - "type": "collapse" - }); - // this.locked = false; - }, - - /** - * Initializes the tree - * @method init - * @parm {string|HTMLElement} id the id of the element that will hold the tree - * @private - */ - init: function(id) { - - this.id = id; - - if ("string" !== typeof id) { - this._el = id; - this.id = this.generateId(id); - } - - /** - * When animation is enabled, this event fires when the animation - * starts - * @event animStart - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is expanding/collapsing - * @parm {String} type the type of animation ("expand" or "collapse") - */ - this.createEvent("animStart", this); - - /** - * When animation is enabled, this event fires when the animation - * completes - * @event animComplete - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is expanding/collapsing - * @parm {String} type the type of animation ("expand" or "collapse") - */ - this.createEvent("animComplete", this); - - /** - * Fires when a node is going to be collapsed. Return false to stop - * the collapse. - * @event collapse - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is collapsing - */ - this.createEvent("collapse", this); - - /** - * Fires after a node is successfully collapsed. This event will not fire - * if the "collapse" event was cancelled. - * @event collapseComplete - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that was collapsed - */ - this.createEvent("collapseComplete", this); - - /** - * Fires when a node is going to be expanded. Return false to stop - * the collapse. - * @event expand - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is expanding - */ - this.createEvent("expand", this); - - /** - * Fires after a node is successfully expanded. This event will not fire - * if the "expand" event was cancelled. - * @event expandComplete - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that was expanded - */ - this.createEvent("expandComplete", this); - - this._nodes = []; - - // store a global reference - YAHOO.widget.TreeView.trees[this.id] = this; - - // Set up the root node - this.root = new YAHOO.widget.RootNode(this); - - - - //YAHOO.util.Event.onContentReady(this.id, this.handleAvailable, this, true); - YAHOO.util.Event.on(this.id, "click", this.handleClick, this, true); - }, - - - //handleAvailable: function() { - //var Event = YAHOO.util.Event; - //Event.on(this.id, - //}, - - /** - * Renders the tree boilerplate and visible nodes - * @method draw - */ - draw: function() { - var html = this.root.getHtml(); - this.getEl().innerHTML = html; - this.firstDraw = false; - }, - - /** - * Returns the tree's host element - * @method getEl - * @return {HTMLElement} the host element - */ - getEl: function() { - if (! this._el) { - this._el = document.getElementById(this.id); - } - return this._el; - }, - - /** - * Nodes register themselves with the tree instance when they are created. - * @method regNode - * @param node {Node} the node to register - * @private - */ - regNode: function(node) { - this._nodes[node.index] = node; - }, - - /** - * Returns the root node of this tree - * @method getRoot - * @return {Node} the root node - */ - getRoot: function() { - return this.root; - }, - - /** - * Configures this tree to dynamically load all child data - * @method setDynamicLoad - * @param {function} fnDataLoader the function that will be called to get the data - * @param iconMode {int} configures the icon that is displayed when a dynamic - * load node is expanded the first time without children. By default, the - * "collapse" icon will be used. If set to 1, the leaf node icon will be - * displayed. - */ - setDynamicLoad: function(fnDataLoader, iconMode) { - this.root.setDynamicLoad(fnDataLoader, iconMode); - }, - - /** - * Expands all child nodes. Note: this conflicts with the "multiExpand" - * node property. If expand all is called in a tree with nodes that - * do not allow multiple siblings to be displayed, only the last sibling - * will be expanded. - * @method expandAll - */ - expandAll: function() { - if (!this.locked) { - this.root.expandAll(); - } - }, - - /** - * Collapses all expanded child nodes in the entire tree. - * @method collapseAll - */ - collapseAll: function() { - if (!this.locked) { - this.root.collapseAll(); - } - }, - - /** - * Returns a node in the tree that has the specified index (this index - * is created internally, so this function probably will only be used - * in html generated for a given node.) - * @method getNodeByIndex - * @param {int} nodeIndex the index of the node wanted - * @return {Node} the node with index=nodeIndex, null if no match - */ - getNodeByIndex: function(nodeIndex) { - var n = this._nodes[nodeIndex]; - return (n) ? n : null; - }, - - /** - * Returns a node that has a matching property and value in the data - * object that was passed into its constructor. - * @method getNodeByProperty - * @param {object} property the property to search (usually a string) - * @param {object} value the value we want to find (usuall an int or string) - * @return {Node} the matching node, null if no match - */ - getNodeByProperty: function(property, value) { - for (var i in this._nodes) { - var n = this._nodes[i]; - if (n.data && value == n.data[property]) { - return n; - } - } - - return null; - }, - - /** - * Returns a collection of nodes that have a matching property - * and value in the data object that was passed into its constructor. - * @method getNodesByProperty - * @param {object} property the property to search (usually a string) - * @param {object} value the value we want to find (usuall an int or string) - * @return {Array} the matching collection of nodes, null if no match - */ - getNodesByProperty: function(property, value) { - var values = []; - for (var i in this._nodes) { - var n = this._nodes[i]; - if (n.data && value == n.data[property]) { - values.push(n); - } - } - - return (values.length) ? values : null; - }, - - /** - * Removes the node and its children, and optionally refreshes the - * branch of the tree that was affected. - * @method removeNode - * @param {Node} The node to remove - * @param {boolean} autoRefresh automatically refreshes branch if true - * @return {boolean} False is there was a problem, true otherwise. - */ - removeNode: function(node, autoRefresh) { - - // Don't delete the root node - if (node.isRoot()) { - return false; - } - - // Get the branch that we may need to refresh - var p = node.parent; - if (p.parent) { - p = p.parent; - } - - // Delete the node and its children - this._deleteNode(node); - - // Refresh the parent of the parent - if (autoRefresh && p && p.childrenRendered) { - p.refresh(); - } - - return true; - }, - - /** - * Deletes this nodes child collection, recursively. Also collapses - * the node, and resets the dynamic load flag. The primary use for - * this method is to purge a node and allow it to fetch its data - * dynamically again. - * @method removeChildren - * @param {Node} node the node to purge - */ - removeChildren: function(node) { - while (node.children.length) { - this._deleteNode(node.children[0]); - } - - node.childrenRendered = false; - node.dynamicLoadComplete = false; - if (node.expanded) { - node.collapse(); - } else { - node.updateIcon(); - } - }, - - /** - * Deletes the node and recurses children - * @method _deleteNode - * @private - */ - _deleteNode: function(node) { - // Remove all the child nodes first - this.removeChildren(node); - - // Remove the node from the tree - this.popNode(node); - }, - - /** - * Removes the node from the tree, preserving the child collection - * to make it possible to insert the branch into another part of the - * tree, or another tree. - * @method popNode - * @param {Node} the node to remove - */ - popNode: function(node) { - var p = node.parent; - - // Update the parent's collection of children - var a = []; - - for (var i=0, len=p.children.length;i '; - } - - var f = document.createElement("div"); - var s = f.style; - s.position = "absolute"; - s.top = "-1000px"; - s.left = "-1000px"; - f.innerHTML = sb.join(""); - - document.body.appendChild(f); - - YAHOO.widget.TreeView.removeHandler(window, - "load", YAHOO.widget.TreeView.preload); - -}; - -YAHOO.widget.TreeView.addHandler(window, - "load", YAHOO.widget.TreeView.preload); - -/** - * The base class for all tree nodes. The node's presentation and behavior in - * response to mouse events is handled in Node subclasses. - * @namespace YAHOO.widget - * @class Node - * @uses YAHOO.util.EventProvider - * @param oData {object} a string or object containing the data that will - * be used to render this node - * @param oParent {Node} this node's parent node - * @param expanded {boolean} the initial expanded/collapsed state - * @constructor - */ -YAHOO.widget.Node = function(oData, oParent, expanded) { - if (oData) { this.init(oData, oParent, expanded); } -}; - -YAHOO.widget.Node.prototype = { - - /** - * The index for this instance obtained from global counter in YAHOO.widget.TreeView. - * @property index - * @type int - */ - index: 0, - - /** - * This node's child node collection. - * @property children - * @type Node[] - */ - children: null, - - /** - * Tree instance this node is part of - * @property tree - * @type TreeView - */ - tree: null, - - /** - * The data linked to this node. This can be any object or primitive - * value, and the data can be used in getNodeHtml(). - * @property data - * @type object - */ - data: null, - - /** - * Parent node - * @property parent - * @type Node - */ - parent: null, - - /** - * The depth of this node. We start at -1 for the root node. - * @property depth - * @type int - */ - depth: -1, - - /** - * The href for the node's label. If one is not specified, the href will - * be set so that it toggles the node. - * @property href - * @type string - */ - href: null, - - /** - * The label href target, defaults to current window - * @property target - * @type string - */ - target: "_self", - - /** - * The node's expanded/collapsed state - * @property expanded - * @type boolean - */ - expanded: false, - - /** - * Can multiple children be expanded at once? - * @property multiExpand - * @type boolean - */ - multiExpand: true, - - /** - * Should we render children for a collapsed node? It is possible that the - * implementer will want to render the hidden data... @todo verify that we - * need this, and implement it if we do. - * @property renderHidden - * @type boolean - */ - renderHidden: false, - - /** - * This flag is set to true when the html is generated for this node's - * children, and set to false when new children are added. - * @property childrenRendered - * @type boolean - */ - childrenRendered: false, - - /** - * Dynamically loaded nodes only fetch the data the first time they are - * expanded. This flag is set to true once the data has been fetched. - * @property dynamicLoadComplete - * @type boolean - */ - dynamicLoadComplete: false, - - /** - * This node's previous sibling - * @property previousSibling - * @type Node - */ - previousSibling: null, - - /** - * This node's next sibling - * @property nextSibling - * @type Node - */ - nextSibling: null, - - /** - * We can set the node up to call an external method to get the child - * data dynamically. - * @property _dynLoad - * @type boolean - * @private - */ - _dynLoad: false, - - /** - * Function to execute when we need to get this node's child data. - * @property dataLoader - * @type function - */ - dataLoader: null, - - /** - * This is true for dynamically loading nodes while waiting for the - * callback to return. - * @property isLoading - * @type boolean - */ - isLoading: false, - - /** - * The toggle/branch icon will not show if this is set to false. This - * could be useful if the implementer wants to have the child contain - * extra info about the parent, rather than an actual node. - * @property hasIcon - * @type boolean - */ - hasIcon: true, - - /** - * Used to configure what happens when a dynamic load node is expanded - * and we discover that it does not have children. By default, it is - * treated as if it still could have children (plus/minus icon). Set - * iconMode to have it display like a leaf node instead. - * @property iconMode - * @type int - */ - iconMode: 0, - - /** - * Specifies whether or not the content area of the node should be allowed - * to wrap. - * @property nowrap - * @type boolean - * @default false - */ - nowrap: false, - - /** - * The node type - * @property _type - * @private - */ - _type: "Node", - - /* - spacerPath: "http://us.i1.yimg.com/us.yimg.com/i/space.gif", - expandedText: "Expanded", - collapsedText: "Collapsed", - loadingText: "Loading", - */ - - /** - * Initializes this node, gets some of the properties from the parent - * @method init - * @param oData {object} a string or object containing the data that will - * be used to render this node - * @param oParent {Node} this node's parent node - * @param expanded {boolean} the initial expanded/collapsed state - */ - init: function(oData, oParent, expanded) { - - this.data = oData; - this.children = []; - this.index = YAHOO.widget.TreeView.nodeCount; - ++YAHOO.widget.TreeView.nodeCount; - this.expanded = expanded; - - /** - * The parentChange event is fired when a parent element is applied - * to the node. This is useful if you need to apply tree-level - * properties to a tree that need to happen if a node is moved from - * one tree to another. - * - * @event parentChange - * @type CustomEvent - */ - this.createEvent("parentChange", this); - - // oParent should never be null except when we create the root node. - if (oParent) { - oParent.appendChild(this); - } - }, - - /** - * Certain properties for the node cannot be set until the parent - * is known. This is called after the node is inserted into a tree. - * the parent is also applied to this node's children in order to - * make it possible to move a branch from one tree to another. - * @method applyParent - * @param {Node} parentNode this node's parent node - * @return {boolean} true if the application was successful - */ - applyParent: function(parentNode) { - if (!parentNode) { - return false; - } - - this.tree = parentNode.tree; - this.parent = parentNode; - this.depth = parentNode.depth + 1; - - if (!this.href) { - this.href = "javascript:" + this.getToggleLink(); - } - - // @todo why was this put here. This causes new nodes added at the - // root level to lose the menu behavior. - // if (! this.multiExpand) { - // this.multiExpand = parentNode.multiExpand; - // } - - this.tree.regNode(this); - parentNode.childrenRendered = false; - - // cascade update existing children - for (var i=0, len=this.children.length;i 0 || - (checkForLazyLoad && this.isDynamic() && !this.dynamicLoadComplete) ); - }, - - /** - * Expands if node is collapsed, collapses otherwise. - * @method toggle - */ - toggle: function() { - if (!this.tree.locked && ( this.hasChildren(true) || this.isDynamic()) ) { - if (this.expanded) { this.collapse(); } else { this.expand(); } - } - }, - - /** - * Returns the markup for this node and its children. - * @method getHtml - * @return {string} the markup for this node and its expanded children. - */ - getHtml: function() { - - this.childrenRendered = false; - - var sb = []; - sb[sb.length] = '
        '; - sb[sb.length] = this.getNodeHtml(); - sb[sb.length] = this.getChildrenHtml(); - sb[sb.length] = '
        '; - return sb.join(""); - }, - - /** - * Called when first rendering the tree. We always build the div that will - * contain this nodes children, but we don't render the children themselves - * unless this node is expanded. - * @method getChildrenHtml - * @return {string} the children container div html and any expanded children - * @private - */ - getChildrenHtml: function() { - - var sb = []; - sb[sb.length] = '
        = this.depth || depth < 0) { - return null; - } - - var p = this.parent; - - while (p.depth > depth) { - p = p.parent; - } - - return p; - }, - - /** - * Returns the css class for the spacer at the specified depth for - * this node. If this node's ancestor at the specified depth - * has a next sibling the presentation is different than if it - * does not have a next sibling - * @method getDepthStyle - * @param {int} depth the depth of the ancestor. - * @return {string} the css class for the spacer - */ - getDepthStyle: function(depth) { - return (this.getAncestor(depth).nextSibling) ? - "ygtvdepthcell" : "ygtvblankdepthcell"; - }, - - /** - * Get the markup for the node. This is designed to be overrided so that we can - * support different types of nodes. - * @method getNodeHtml - * @return {string} The HTML that will render this node. - */ - getNodeHtml: function() { - return ""; - }, - - /** - * Regenerates the html for this node and its children. To be used when the - * node is expanded and new children have been added. - * @method refresh - */ - refresh: function() { - // this.loadComplete(); - this.getChildrenEl().innerHTML = this.completeRender(); - - if (this.hasIcon) { - var el = this.getToggleEl(); - if (el) { - el.className = this.getStyle(); - } - } - }, - - /** - * Node toString - * @method toString - * @return {string} string representation of the node - */ - toString: function() { - return "Node (" + this.index + ")"; - } - -}; - -YAHOO.augment(YAHOO.widget.Node, YAHOO.util.EventProvider); - -/** - * The default node presentation. The first parameter should be - * either a string that will be used as the node's label, or an object - * that has a string propery called label. By default, the clicking the - * label will toggle the expanded/collapsed state of the node. By - * changing the href property of the instance, this behavior can be - * changed so that the label will go to the specified href. - * @namespace YAHOO.widget - * @class TextNode - * @extends YAHOO.widget.Node - * @constructor - * @param oData {object} a string or object containing the data that will - * be used to render this node - * @param oParent {YAHOO.widget.Node} this node's parent node - * @param expanded {boolean} the initial expanded/collapsed state - */ -YAHOO.widget.TextNode = function(oData, oParent, expanded) { - - if (oData) { - this.init(oData, oParent, expanded); - this.setUpLabel(oData); - } - -}; - -YAHOO.extend(YAHOO.widget.TextNode, YAHOO.widget.Node, { - - /** - * The CSS class for the label href. Defaults to ygtvlabel, but can be - * overridden to provide a custom presentation for a specific node. - * @property labelStyle - * @type string - */ - labelStyle: "ygtvlabel", - - /** - * The derived element id of the label for this node - * @property labelElId - * @type string - */ - labelElId: null, - - /** - * The text for the label. It is assumed that the oData parameter will - * either be a string that will be used as the label, or an object that - * has a property called "label" that we will use. - * @property label - * @type string - */ - label: null, - - textNodeParentChange: function() { - - /** - * Custom event that is fired when the text node label is clicked. The - * custom event is defined on the tree instance, so there is a single - * event that handles all nodes in the tree. The node clicked is - * provided as an argument - * - * @event labelClick - * @for YAHOO.widget.TreeView - * @param {YAHOO.widget.Node} node the node clicked - */ - if (this.tree && !this.tree.hasEvent("labelClick")) { - this.tree.createEvent("labelClick", this.tree); - } - - }, - - /** - * Sets up the node label - * @method setUpLabel - * @param oData string containing the label, or an object with a label property - */ - setUpLabel: function(oData) { - - // set up the custom event on the tree - this.textNodeParentChange(); - this.subscribe("parentChange", this.textNodeParentChange); - - if (typeof oData == "string") { - oData = { label: oData }; - } - this.label = oData.label; - this.data.label = oData.label; - - // update the link - if (oData.href) { - this.href = oData.href; - } - - // set the target - if (oData.target) { - this.target = oData.target; - } - - if (oData.style) { - this.labelStyle = oData.style; - } - - this.labelElId = "ygtvlabelel" + this.index; - }, - - /** - * Returns the label element - * @for YAHOO.widget.TextNode - * @method getLabelEl - * @return {object} the element - */ - getLabelEl: function() { - return document.getElementById(this.labelElId); - }, - - // overrides YAHOO.widget.Node - getNodeHtml: function() { - var sb = []; - - sb[sb.length] = ''; - sb[sb.length] = ''; - - for (var i=0;i '; - //sb[sb.length] = ''; - sb[sb.length] = ''; - } - - var getNode = 'YAHOO.widget.TreeView.getNode(\'' + - this.tree.id + '\',' + this.index + ')'; - - sb[sb.length] = ''; - - sb[sb.length] = '
        '; - - /* - sb[sb.length] = ' '; - sb[sb.length] = '
        '; - } - - if (this.hasIcon) { - sb[sb.length] = '-1){return true;}else{return YAHOO.lang.isObject(obj)&&obj.constructor==Array;}},isBoolean:function(obj){return typeof obj=='boolean';},isFunction:function(obj){return typeof obj=='function';},isNull:function(obj){return obj===null;},isNumber:function(obj){return typeof obj=='number'&&isFinite(obj);},isObject:function(obj){return obj&&(typeof obj=='object'||YAHOO.lang.isFunction(obj));},isString:function(obj){return typeof obj=='string';},isUndefined:function(obj){return typeof obj=='undefined';},hasOwnProperty:function(obj,prop){if(Object.prototype.hasOwnProperty){return obj.hasOwnProperty(prop);} -return!YAHOO.lang.isUndefined(obj[prop])&&obj.constructor.prototype[prop]!==obj[prop];},extend:function(subc,superc,overrides){if(!superc||!subc){throw new Error("YAHOO.lang.extend failed, please check that "+"all dependencies are included.");} -var F=function(){};F.prototype=superc.prototype;subc.prototype=new F();subc.prototype.constructor=subc;subc.superclass=superc.prototype;if(superc.prototype.constructor==Object.prototype.constructor){superc.prototype.constructor=superc;} -if(overrides){for(var i in overrides){subc.prototype[i]=overrides[i];}}},augment:function(r,s){if(!s||!r){throw new Error("YAHOO.lang.augment failed, please check that "+"all dependencies are included.");} -var rp=r.prototype,sp=s.prototype,a=arguments,i,p;if(a[2]){for(i=2;i-1),isSafari=(ua.indexOf('safari')>-1),isGecko=(!isOpera&&!isSafari&&ua.indexOf('gecko')>-1),isIE=(!isOpera&&ua.indexOf('msie')>-1);var patterns={HYPHEN:/(-[a-z])/i,ROOT_TAG:/body|html/i};var toCamel=function(property){if(!patterns.HYPHEN.test(property)){return property;} -if(propertyCache[property]){return propertyCache[property];} -var converted=property;while(patterns.HYPHEN.exec(converted)){converted=converted.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());} -propertyCache[property]=converted;return converted;};if(document.defaultView&&document.defaultView.getComputedStyle){getStyle=function(el,property){var value=null;if(property=='float'){property='cssFloat';} -var computed=document.defaultView.getComputedStyle(el,'');if(computed){value=computed[toCamel(property)];} -return el.style[property]||value;};}else if(document.documentElement.currentStyle&&isIE){getStyle=function(el,property){switch(toCamel(property)){case'opacity':var val=100;try{val=el.filters['DXImageTransform.Microsoft.Alpha'].opacity;}catch(e){try{val=el.filters('alpha').opacity;}catch(e){}} -return val/100;break;case'float':property='styleFloat';default:var value=el.currentStyle?el.currentStyle[property]:null;return(el.style[property]||value);}};}else{getStyle=function(el,property){return el.style[property];};} -if(isIE){setStyle=function(el,property,val){switch(property){case'opacity':if(YAHOO.lang.isString(el.style.filter)){el.style.filter='alpha(opacity='+val*100+')';if(!el.currentStyle||!el.currentStyle.hasLayout){el.style.zoom=1;}} -break;case'float':property='styleFloat';default:el.style[property]=val;}};}else{setStyle=function(el,property,val){if(property=='float'){property='cssFloat';} -el.style[property]=val;};} -YAHOO.util.Dom={get:function(el){if(YAHOO.lang.isString(el)){return document.getElementById(el);} -if(YAHOO.lang.isArray(el)){var c=[];for(var i=0,len=el.length;i=this.left&®ion.right<=this.right&®ion.top>=this.top&®ion.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(region){var t=Math.max(this.top,region.top);var r=Math.min(this.right,region.right);var b=Math.min(this.bottom,region.bottom);var l=Math.max(this.left,region.left);if(b>=t&&r>=l){return new YAHOO.util.Region(t,r,b,l);}else{return null;}};YAHOO.util.Region.prototype.union=function(region){var t=Math.min(this.top,region.top);var r=Math.max(this.right,region.right);var b=Math.max(this.bottom,region.bottom);var l=Math.min(this.left,region.left);return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(el){var p=YAHOO.util.Dom.getXY(el);var t=p[1];var r=p[0]+el.offsetWidth;var b=p[1]+el.offsetHeight;var l=p[0];return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Point=function(x,y){if(x instanceof Array){y=x[1];x=x[0];} -this.x=this.right=this.left=this[0]=x;this.y=this.top=this.bottom=this[1]=y;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.2.2",build:"204"}); -YAHOO.util.CustomEvent=function(type,oScope,silent,signature){this.type=type;this.scope=oScope||window;this.silent=silent;this.signature=signature||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){} -var onsubscribeType="_YUICEOnSubscribe";if(type!==onsubscribeType){this.subscribeEvent=new YAHOO.util.CustomEvent(onsubscribeType,this,true);}};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(fn,obj,override){if(!fn){throw new Error("Invalid callback for subscriber to '"+this.type+"'");} -if(this.subscribeEvent){this.subscribeEvent.fire(fn,obj,override);} -this.subscribers.push(new YAHOO.util.Subscriber(fn,obj,override));},unsubscribe:function(fn,obj){if(!fn){return this.unsubscribeAll();} -var found=false;for(var i=0,len=this.subscribers.length;i0){param=args[0];} -ret=s.fn.call(scope,param,s.obj);}else{ret=s.fn.call(scope,this.type,args,s.obj);} -if(false===ret){if(!this.silent){} -return false;}}} -return true;},unsubscribeAll:function(){for(var i=0,len=this.subscribers.length;i=0){cacheItem=listeners[index];} -if(!el||!cacheItem){return false;} -if(this.useLegacyEvent(el,sType)){var legacyIndex=this.getLegacyIndex(el,sType);var llist=legacyHandlers[legacyIndex];if(llist){for(i=0,len=llist.length;i0);} -var notAvail=[];var executeItem=function(el,item){var scope=el;if(item.override){if(item.override===true){scope=item.obj;}else{scope=item.override;}} -item.fn.call(scope,item.obj);};var i,len,item,el;for(i=0,len=onAvailStack.length;i0){for(var i=0,len=searchList.length;i0){j=listeners.length;while(j){index=j-1;l=listeners[index];if(l){EU.removeListener(l[EU.EL],l[EU.TYPE],l[EU.FN],index);} -j=j-1;} -l=null;EU.clearCache();} -for(i=0,len=legacyEvents.length;i');var el=document.getElementById("_yui_eu_dr");el.onreadystatechange=function(){if("complete"==this.readyState){this.parentNode.removeChild(this);YAHOO.util.Event._ready();}};el=null;YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);}else if(EU.webkit){EU._drwatch=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._drwatch);EU._drwatch=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);} -EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();} -YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(p_type,p_fn,p_obj,p_override){this.__yui_events=this.__yui_events||{};var ce=this.__yui_events[p_type];if(ce){ce.subscribe(p_fn,p_obj,p_override);}else{this.__yui_subscribers=this.__yui_subscribers||{};var subs=this.__yui_subscribers;if(!subs[p_type]){subs[p_type]=[];} -subs[p_type].push({fn:p_fn,obj:p_obj,override:p_override});}},unsubscribe:function(p_type,p_fn,p_obj){this.__yui_events=this.__yui_events||{};var ce=this.__yui_events[p_type];if(ce){return ce.unsubscribe(p_fn,p_obj);}else{return false;}},unsubscribeAll:function(p_type){return this.unsubscribe(p_type);},createEvent:function(p_type,p_config){this.__yui_events=this.__yui_events||{};var opts=p_config||{};var events=this.__yui_events;if(events[p_type]){}else{var scope=opts.scope||this;var silent=opts.silent||null;var ce=new YAHOO.util.CustomEvent(p_type,scope,silent,YAHOO.util.CustomEvent.FLAT);events[p_type]=ce;if(opts.onSubscribeCallback){ce.subscribeEvent.subscribe(opts.onSubscribeCallback);} -this.__yui_subscribers=this.__yui_subscribers||{};var qs=this.__yui_subscribers[p_type];if(qs){for(var i=0;i=200&&httpStatus<300||httpStatus===1223){responseObject=this.createResponseObject(o,callback.argument);if(callback.success){if(!callback.scope){callback.success(responseObject);} -else{callback.success.apply(callback.scope,[responseObject]);}}} -else{switch(httpStatus){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:responseObject=this.createExceptionObject(o.tId,callback.argument,(isAbort?isAbort:false));if(callback.failure){if(!callback.scope){callback.failure(responseObject);} -else{callback.failure.apply(callback.scope,[responseObject]);}} -break;default:responseObject=this.createResponseObject(o,callback.argument);if(callback.failure){if(!callback.scope){callback.failure(responseObject);} -else{callback.failure.apply(callback.scope,[responseObject]);}}}} -this.releaseObject(o);responseObject=null;},createResponseObject:function(o,callbackArg) -{var obj={};var headerObj={};try -{var headerStr=o.conn.getAllResponseHeaders();var header=headerStr.split('\n');for(var i=0;i');if(typeof secureUri=='boolean'){io.src='javascript:false';} -else if(typeof secureURI=='string'){io.src=secureUri;}} -else{var io=document.createElement('iframe');io.id=frameId;io.name=frameId;} -io.style.position='absolute';io.style.top='-1000px';io.style.left='-1000px';document.body.appendChild(io);},appendPostData:function(postData) -{var formElements=[];var postMessage=postData.split('&');for(var i=0;i0){for(var i=0;i0)?val:0;} -YAHOO.util.Dom.setStyle(this.getEl(),attr,val+unit);},getAttribute:function(attr){var el=this.getEl();var val=YAHOO.util.Dom.getStyle(el,attr);if(val!=='auto'&&!this.patterns.offsetUnit.test(val)){return parseFloat(val);} -var a=this.patterns.offsetAttribute.exec(attr)||[];var pos=!!(a[3]);var box=!!(a[2]);if(box||(YAHOO.util.Dom.getStyle(el,'position')=='absolute'&&pos)){val=el['offset'+a[0].charAt(0).toUpperCase()+a[0].substr(1)];}else{val=0;} -return val;},getDefaultUnit:function(attr){if(this.patterns.defaultUnit.test(attr)){return'px';} -return'';},setRuntimeAttribute:function(attr){var start;var end;var attributes=this.attributes;this.runtimeAttributes[attr]={};var isset=function(prop){return(typeof prop!=='undefined');};if(!isset(attributes[attr]['to'])&&!isset(attributes[attr]['by'])){return false;} -start=(isset(attributes[attr]['from']))?attributes[attr]['from']:this.getAttribute(attr);if(isset(attributes[attr]['to'])){end=attributes[attr]['to'];}else if(isset(attributes[attr]['by'])){if(start.constructor==Array){end=[];for(var i=0,len=start.length;i0&&isFinite(tweak)){if(tween.currentFrame+tweak>=frames){tweak=frames-(frame+1);} -tween.currentFrame+=tweak;}};};YAHOO.util.Bezier=new function(){this.getPosition=function(points,t){var n=points.length;var tmp=[];for(var i=0;i0&&!(control[0]instanceof Array)){control=[control];}else{var tmp=[];for(i=0,len=control.length;i0){this.runtimeAttributes[attr]=this.runtimeAttributes[attr].concat(control);} -this.runtimeAttributes[attr][this.runtimeAttributes[attr].length]=end;} -else{superclass.setRuntimeAttribute.call(this,attr);}};var translateValues=function(val,start){var pageXY=Y.Dom.getXY(this.getEl());val=[val[0]-pageXY[0]+start[0],val[1]-pageXY[1]+start[1]];return val;};var isset=function(prop){return(typeof prop!=='undefined');};})();(function(){YAHOO.util.Scroll=function(el,attributes,duration,method){if(el){YAHOO.util.Scroll.superclass.constructor.call(this,el,attributes,duration,method);}};YAHOO.extend(YAHOO.util.Scroll,YAHOO.util.ColorAnim);var Y=YAHOO.util;var superclass=Y.Scroll.superclass;var proto=Y.Scroll.prototype;proto.toString=function(){var el=this.getEl();var id=el.id||el.tagName;return("Scroll "+id);};proto.doMethod=function(attr,start,end){var val=null;if(attr=='scroll'){val=[this.method(this.currentFrame,start[0],end[0]-start[0],this.totalFrames),this.method(this.currentFrame,start[1],end[1]-start[1],this.totalFrames)];}else{val=superclass.doMethod.call(this,attr,start,end);} -return val;};proto.getAttribute=function(attr){var val=null;var el=this.getEl();if(attr=='scroll'){val=[el.scrollLeft,el.scrollTop];}else{val=superclass.getAttribute.call(this,attr);} -return val;};proto.setAttribute=function(attr,val,unit){var el=this.getEl();if(attr=='scroll'){el.scrollLeft=val[0];el.scrollTop=val[1];}else{superclass.setAttribute.call(this,attr,val,unit);}};})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.2.2",build:"204"}); -if(!YAHOO.util.DragDropMgr){YAHOO.util.DragDropMgr=function(){var Event=YAHOO.util.Event;return{ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initalized:false,locked:false,interactionInfo:null,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,STRICT_INTERSECT:2,mode:0,_execOnAll:function(sMethod,args){for(var i in this.ids){for(var j in this.ids[i]){var oDD=this.ids[i][j];if(!this.isTypeOfDD(oDD)){continue;} -oDD[sMethod].apply(oDD,args);}}},_onLoad:function(){this.init();Event.on(document,"mouseup",this.handleMouseUp,this,true);Event.on(document,"mousemove",this.handleMouseMove,this,true);Event.on(window,"unload",this._onUnload,this,true);Event.on(window,"resize",this._onResize,this,true);},_onResize:function(e){this._execOnAll("resetConstraints",[]);},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:1000,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(oDD,sGroup){if(!this.initialized){this.init();} -if(!this.ids[sGroup]){this.ids[sGroup]={};} -this.ids[sGroup][oDD.id]=oDD;},removeDDFromGroup:function(oDD,sGroup){if(!this.ids[sGroup]){this.ids[sGroup]={};} -var obj=this.ids[sGroup];if(obj&&obj[oDD.id]){delete obj[oDD.id];}},_remove:function(oDD){for(var g in oDD.groups){if(g&&this.ids[g][oDD.id]){delete this.ids[g][oDD.id];}} -delete this.handleIds[oDD.id];},regHandle:function(sDDId,sHandleId){if(!this.handleIds[sDDId]){this.handleIds[sDDId]={};} -this.handleIds[sDDId][sHandleId]=sHandleId;},isDragDrop:function(id){return(this.getDDById(id))?true:false;},getRelated:function(p_oDD,bTargetsOnly){var oDDs=[];for(var i in p_oDD.groups){for(j in this.ids[i]){var dd=this.ids[i][j];if(!this.isTypeOfDD(dd)){continue;} -if(!bTargetsOnly||dd.isTarget){oDDs[oDDs.length]=dd;}}} -return oDDs;},isLegalTarget:function(oDD,oTargetDD){var targets=this.getRelated(oDD,true);for(var i=0,len=targets.length;ithis.clickPixelThresh||diffY>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}} -if(this.dragThreshMet){this.dragCurrent.b4Drag(e);this.dragCurrent.onDrag(e);this.fireEvents(e,false);} -this.stopEvent(e);return true;},fireEvents:function(e,isDrop){var dc=this.dragCurrent;if(!dc||dc.isLocked()){return;} -var x=YAHOO.util.Event.getPageX(e);var y=YAHOO.util.Event.getPageY(e);var pt=new YAHOO.util.Point(x,y);var pos=dc.getTargetCoord(pt.x,pt.y);var el=dc.getDragEl();curRegion=new YAHOO.util.Region(pos.y,pos.x+el.offsetWidth,pos.y+el.offsetHeight,pos.x);var oldOvers=[];var outEvts=[];var overEvts=[];var dropEvts=[];var enterEvts=[];for(var i in this.dragOvers){var ddo=this.dragOvers[i];if(!this.isTypeOfDD(ddo)){continue;} -if(!this.isOverTarget(pt,ddo,this.mode,curRegion)){outEvts.push(ddo);} -oldOvers[i]=true;delete this.dragOvers[i];} -for(var sGroup in dc.groups){if("string"!=typeof sGroup){continue;} -for(i in this.ids[sGroup]){var oDD=this.ids[sGroup][i];if(!this.isTypeOfDD(oDD)){continue;} -if(oDD.isTarget&&!oDD.isLocked()&&oDD!=dc){if(this.isOverTarget(pt,oDD,this.mode,curRegion)){if(isDrop){dropEvts.push(oDD);}else{if(!oldOvers[oDD.id]){enterEvts.push(oDD);}else{overEvts.push(oDD);} -this.dragOvers[oDD.id]=oDD;}}}}} -this.interactionInfo={out:outEvts,enter:enterEvts,over:overEvts,drop:dropEvts,point:pt,draggedRegion:curRegion,sourceRegion:this.locationCache[dc.id],validDrop:isDrop};if(isDrop&&!dropEvts.length){this.interactionInfo.validDrop=false;dc.onInvalidDrop(e);} -if(this.mode){if(outEvts.length){dc.b4DragOut(e,outEvts);dc.onDragOut(e,outEvts);} -if(enterEvts.length){dc.onDragEnter(e,enterEvts);} -if(overEvts.length){dc.b4DragOver(e,overEvts);dc.onDragOver(e,overEvts);} -if(dropEvts.length){dc.b4DragDrop(e,dropEvts);dc.onDragDrop(e,dropEvts);}}else{var len=0;for(i=0,len=outEvts.length;i2000){}else{setTimeout(DDM._addListeners,10);if(document&&document.body){DDM._timeoutCount+=1;}}}},handleWasClicked:function(node,id){if(this.isHandle(id,node.id)){return true;}else{var p=node.parentNode;while(p){if(this.isHandle(id,p.id)){return true;}else{p=p.parentNode;}}} -return false;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();} -(function(){var Event=YAHOO.util.Event;var Dom=YAHOO.util.Dom;YAHOO.util.DragDrop=function(id,sGroup,config){if(id){this.init(id,sGroup,config);}};YAHOO.util.DragDrop.prototype={id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,b4StartDrag:function(x,y){},startDrag:function(x,y){},b4Drag:function(e){},onDrag:function(e){},onDragEnter:function(e,id){},b4DragOver:function(e){},onDragOver:function(e,id){},b4DragOut:function(e){},onDragOut:function(e,id){},b4DragDrop:function(e){},onDragDrop:function(e,id){},onInvalidDrop:function(e){},b4EndDrag:function(e){},endDrag:function(e){},b4MouseDown:function(e){},onMouseDown:function(e){},onMouseUp:function(e){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=Dom.get(this.id);} -return this._domRef;},getDragEl:function(){return Dom.get(this.dragElId);},init:function(id,sGroup,config){this.initTarget(id,sGroup,config);Event.on(this.id,"mousedown",this.handleMouseDown,this,true);},initTarget:function(id,sGroup,config){this.config=config||{};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof id!=="string"){id=Dom.generateId(id);} -this.id=id;this.addToGroup((sGroup)?sGroup:"default");this.handleElId=id;Event.onAvailable(id,this.handleOnAvailable,this,true);this.setDragElId(id);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(iTop,iRight,iBot,iLeft){if(!iRight&&0!==iRight){this.padding=[iTop,iTop,iTop,iTop];}else if(!iBot&&0!==iBot){this.padding=[iTop,iRight,iTop,iRight];}else{this.padding=[iTop,iRight,iBot,iLeft];}},setInitPosition:function(diffX,diffY){var el=this.getEl();if(!this.DDM.verifyEl(el)){return;} -var dx=diffX||0;var dy=diffY||0;var p=Dom.getXY(el);this.initPageX=p[0]-dx;this.initPageY=p[1]-dy;this.lastPageX=p[0];this.lastPageY=p[1];this.setStartPosition(p);},setStartPosition:function(pos){var p=pos||Dom.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=p[0];this.startPageY=p[1];},addToGroup:function(sGroup){this.groups[sGroup]=true;this.DDM.regDragDrop(this,sGroup);},removeFromGroup:function(sGroup){if(this.groups[sGroup]){delete this.groups[sGroup];} -this.DDM.removeDDFromGroup(this,sGroup);},setDragElId:function(id){this.dragElId=id;},setHandleElId:function(id){if(typeof id!=="string"){id=Dom.generateId(id);} -this.handleElId=id;this.DDM.regHandle(this.id,id);},setOuterHandleElId:function(id){if(typeof id!=="string"){id=Dom.generateId(id);} -Event.on(id,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(id);this.hasOuterHandles=true;},unreg:function(){Event.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(e,oDD){var button=e.which||e.button;if(this.primaryButtonOnly&&button>1){return;} -if(this.isLocked()){return;} -this.b4MouseDown(e);this.onMouseDown(e);this.DDM.refreshCache(this.groups);var pt=new YAHOO.util.Point(Event.getPageX(e),Event.getPageY(e));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(pt,this)){}else{if(this.clickValidator(e)){this.setStartPosition();this.DDM.handleMouseDown(e,this);this.DDM.stopEvent(e);}else{}}},clickValidator:function(e){var target=Event.getTarget(e);return(this.isValidHandleChild(target)&&(this.id==this.handleElId||this.DDM.handleWasClicked(target,this.id)));},getTargetCoord:function(iPageX,iPageY){var x=iPageX-this.deltaX;var y=iPageY-this.deltaY;if(this.constrainX){if(xthis.maxX){x=this.maxX;}} -if(this.constrainY){if(ythis.maxY){y=this.maxY;}} -x=this.getTick(x,this.xTicks);y=this.getTick(y,this.yTicks);return{x:x,y:y};},addInvalidHandleType:function(tagName){var type=tagName.toUpperCase();this.invalidHandleTypes[type]=type;},addInvalidHandleId:function(id){if(typeof id!=="string"){id=Dom.generateId(id);} -this.invalidHandleIds[id]=id;},addInvalidHandleClass:function(cssClass){this.invalidHandleClasses.push(cssClass);},removeInvalidHandleType:function(tagName){var type=tagName.toUpperCase();delete this.invalidHandleTypes[type];},removeInvalidHandleId:function(id){if(typeof id!=="string"){id=Dom.generateId(id);} -delete this.invalidHandleIds[id];},removeInvalidHandleClass:function(cssClass){for(var i=0,len=this.invalidHandleClasses.length;i=this.minX;i=i-iTickSize){if(!tickMap[i]){this.xTicks[this.xTicks.length]=i;tickMap[i]=true;}} -for(i=this.initPageX;i<=this.maxX;i=i+iTickSize){if(!tickMap[i]){this.xTicks[this.xTicks.length]=i;tickMap[i]=true;}} -this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(iStartY,iTickSize){this.yTicks=[];this.yTickSize=iTickSize;var tickMap={};for(var i=this.initPageY;i>=this.minY;i=i-iTickSize){if(!tickMap[i]){this.yTicks[this.yTicks.length]=i;tickMap[i]=true;}} -for(i=this.initPageY;i<=this.maxY;i=i+iTickSize){if(!tickMap[i]){this.yTicks[this.yTicks.length]=i;tickMap[i]=true;}} -this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(iLeft,iRight,iTickSize){this.leftConstraint=parseInt(iLeft,10);this.rightConstraint=parseInt(iRight,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;if(iTickSize){this.setXTicks(this.initPageX,iTickSize);} -this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(iUp,iDown,iTickSize){this.topConstraint=parseInt(iUp,10);this.bottomConstraint=parseInt(iDown,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;if(iTickSize){this.setYTicks(this.initPageY,iTickSize);} -this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var dx=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var dy=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(dx,dy);}else{this.setInitPosition();} -if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);} -if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(val,tickArray){if(!tickArray){return val;}else if(tickArray[0]>=val){return tickArray[0];}else{for(var i=0,len=tickArray.length;i=val){var diff1=val-tickArray[i];var diff2=tickArray[next]-val;return(diff2>diff1)?tickArray[i]:tickArray[next];}} -return tickArray[tickArray.length-1];}},toString:function(){return("DragDrop "+this.id);}};})();YAHOO.util.DD=function(id,sGroup,config){if(id){this.init(id,sGroup,config);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(iPageX,iPageY){var x=iPageX-this.startPageX;var y=iPageY-this.startPageY;this.setDelta(x,y);},setDelta:function(iDeltaX,iDeltaY){this.deltaX=iDeltaX;this.deltaY=iDeltaY;},setDragElPos:function(iPageX,iPageY){var el=this.getDragEl();this.alignElWithMouse(el,iPageX,iPageY);},alignElWithMouse:function(el,iPageX,iPageY){var oCoord=this.getTargetCoord(iPageX,iPageY);if(!this.deltaSetXY){var aCoord=[oCoord.x,oCoord.y];YAHOO.util.Dom.setXY(el,aCoord);var newLeft=parseInt(YAHOO.util.Dom.getStyle(el,"left"),10);var newTop=parseInt(YAHOO.util.Dom.getStyle(el,"top"),10);this.deltaSetXY=[newLeft-oCoord.x,newTop-oCoord.y];}else{YAHOO.util.Dom.setStyle(el,"left",(oCoord.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(el,"top",(oCoord.y+this.deltaSetXY[1])+"px");} -this.cachePosition(oCoord.x,oCoord.y);this.autoScroll(oCoord.x,oCoord.y,el.offsetHeight,el.offsetWidth);},cachePosition:function(iPageX,iPageY){if(iPageX){this.lastPageX=iPageX;this.lastPageY=iPageY;}else{var aCoord=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=aCoord[0];this.lastPageY=aCoord[1];}},autoScroll:function(x,y,h,w){if(this.scroll){var clientH=this.DDM.getClientHeight();var clientW=this.DDM.getClientWidth();var st=this.DDM.getScrollTop();var sl=this.DDM.getScrollLeft();var bot=h+y;var right=w+x;var toBot=(clientH+st-y-this.deltaY);var toRight=(clientW+sl-x-this.deltaX);var thresh=40;var scrAmt=(document.all)?80:30;if(bot>clientH&&toBot0&&y-stclientW&&toRight0&&x-sl-1){return true;}else{return YAHOO.lang.isObject(obj)&&obj.constructor==Array;}},isBoolean:function(obj){return typeof obj=='boolean';},isFunction:function(obj){return typeof obj=='function';},isNull:function(obj){return obj===null;},isNumber:function(obj){return typeof obj=='number'&&isFinite(obj);},isObject:function(obj){return obj&&(typeof obj=='object'||YAHOO.lang.isFunction(obj));},isString:function(obj){return typeof obj=='string';},isUndefined:function(obj){return typeof obj=='undefined';},hasOwnProperty:function(obj,prop){if(Object.prototype.hasOwnProperty){return obj.hasOwnProperty(prop);} -return!YAHOO.lang.isUndefined(obj[prop])&&obj.constructor.prototype[prop]!==obj[prop];},extend:function(subc,superc,overrides){if(!superc||!subc){throw new Error("YAHOO.lang.extend failed, please check that "+"all dependencies are included.");} -var F=function(){};F.prototype=superc.prototype;subc.prototype=new F();subc.prototype.constructor=subc;subc.superclass=superc.prototype;if(superc.prototype.constructor==Object.prototype.constructor){superc.prototype.constructor=superc;} -if(overrides){for(var i in overrides){subc.prototype[i]=overrides[i];}}},augment:function(r,s){if(!s||!r){throw new Error("YAHOO.lang.augment failed, please check that "+"all dependencies are included.");} -var rp=r.prototype,sp=s.prototype,a=arguments,i,p;if(a[2]){for(i=2;i-1),isSafari=(ua.indexOf('safari')>-1),isGecko=(!isOpera&&!isSafari&&ua.indexOf('gecko')>-1),isIE=(!isOpera&&ua.indexOf('msie')>-1);var patterns={HYPHEN:/(-[a-z])/i,ROOT_TAG:/body|html/i};var toCamel=function(property){if(!patterns.HYPHEN.test(property)){return property;} -if(propertyCache[property]){return propertyCache[property];} -var converted=property;while(patterns.HYPHEN.exec(converted)){converted=converted.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());} -propertyCache[property]=converted;return converted;};if(document.defaultView&&document.defaultView.getComputedStyle){getStyle=function(el,property){var value=null;if(property=='float'){property='cssFloat';} -var computed=document.defaultView.getComputedStyle(el,'');if(computed){value=computed[toCamel(property)];} -return el.style[property]||value;};}else if(document.documentElement.currentStyle&&isIE){getStyle=function(el,property){switch(toCamel(property)){case'opacity':var val=100;try{val=el.filters['DXImageTransform.Microsoft.Alpha'].opacity;}catch(e){try{val=el.filters('alpha').opacity;}catch(e){}} -return val/100;break;case'float':property='styleFloat';default:var value=el.currentStyle?el.currentStyle[property]:null;return(el.style[property]||value);}};}else{getStyle=function(el,property){return el.style[property];};} -if(isIE){setStyle=function(el,property,val){switch(property){case'opacity':if(YAHOO.lang.isString(el.style.filter)){el.style.filter='alpha(opacity='+val*100+')';if(!el.currentStyle||!el.currentStyle.hasLayout){el.style.zoom=1;}} -break;case'float':property='styleFloat';default:el.style[property]=val;}};}else{setStyle=function(el,property,val){if(property=='float'){property='cssFloat';} -el.style[property]=val;};} -YAHOO.util.Dom={get:function(el){if(YAHOO.lang.isString(el)){return document.getElementById(el);} -if(YAHOO.lang.isArray(el)){var c=[];for(var i=0,len=el.length;i=this.left&®ion.right<=this.right&®ion.top>=this.top&®ion.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(region){var t=Math.max(this.top,region.top);var r=Math.min(this.right,region.right);var b=Math.min(this.bottom,region.bottom);var l=Math.max(this.left,region.left);if(b>=t&&r>=l){return new YAHOO.util.Region(t,r,b,l);}else{return null;}};YAHOO.util.Region.prototype.union=function(region){var t=Math.min(this.top,region.top);var r=Math.max(this.right,region.right);var b=Math.max(this.bottom,region.bottom);var l=Math.min(this.left,region.left);return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(el){var p=YAHOO.util.Dom.getXY(el);var t=p[1];var r=p[0]+el.offsetWidth;var b=p[1]+el.offsetHeight;var l=p[0];return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Point=function(x,y){if(x instanceof Array){y=x[1];x=x[0];} -this.x=this.right=this.left=this[0]=x;this.y=this.top=this.bottom=this[1]=y;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.2.2",build:"204"}); -YAHOO.util.CustomEvent=function(type,oScope,silent,signature){this.type=type;this.scope=oScope||window;this.silent=silent;this.signature=signature||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){} -var onsubscribeType="_YUICEOnSubscribe";if(type!==onsubscribeType){this.subscribeEvent=new YAHOO.util.CustomEvent(onsubscribeType,this,true);}};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(fn,obj,override){if(!fn){throw new Error("Invalid callback for subscriber to '"+this.type+"'");} -if(this.subscribeEvent){this.subscribeEvent.fire(fn,obj,override);} -this.subscribers.push(new YAHOO.util.Subscriber(fn,obj,override));},unsubscribe:function(fn,obj){if(!fn){return this.unsubscribeAll();} -var found=false;for(var i=0,len=this.subscribers.length;i0){param=args[0];} -ret=s.fn.call(scope,param,s.obj);}else{ret=s.fn.call(scope,this.type,args,s.obj);} -if(false===ret){if(!this.silent){} -return false;}}} -return true;},unsubscribeAll:function(){for(var i=0,len=this.subscribers.length;i=0){cacheItem=listeners[index];} -if(!el||!cacheItem){return false;} -if(this.useLegacyEvent(el,sType)){var legacyIndex=this.getLegacyIndex(el,sType);var llist=legacyHandlers[legacyIndex];if(llist){for(i=0,len=llist.length;i0);} -var notAvail=[];var executeItem=function(el,item){var scope=el;if(item.override){if(item.override===true){scope=item.obj;}else{scope=item.override;}} -item.fn.call(scope,item.obj);};var i,len,item,el;for(i=0,len=onAvailStack.length;i0){for(var i=0,len=searchList.length;i0){j=listeners.length;while(j){index=j-1;l=listeners[index];if(l){EU.removeListener(l[EU.EL],l[EU.TYPE],l[EU.FN],index);} -j=j-1;} -l=null;EU.clearCache();} -for(i=0,len=legacyEvents.length;i');var el=document.getElementById("_yui_eu_dr");el.onreadystatechange=function(){if("complete"==this.readyState){this.parentNode.removeChild(this);YAHOO.util.Event._ready();}};el=null;YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);}else if(EU.webkit){EU._drwatch=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._drwatch);EU._drwatch=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);} -EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();} -YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(p_type,p_fn,p_obj,p_override){this.__yui_events=this.__yui_events||{};var ce=this.__yui_events[p_type];if(ce){ce.subscribe(p_fn,p_obj,p_override);}else{this.__yui_subscribers=this.__yui_subscribers||{};var subs=this.__yui_subscribers;if(!subs[p_type]){subs[p_type]=[];} -subs[p_type].push({fn:p_fn,obj:p_obj,override:p_override});}},unsubscribe:function(p_type,p_fn,p_obj){this.__yui_events=this.__yui_events||{};var ce=this.__yui_events[p_type];if(ce){return ce.unsubscribe(p_fn,p_obj);}else{return false;}},unsubscribeAll:function(p_type){return this.unsubscribe(p_type);},createEvent:function(p_type,p_config){this.__yui_events=this.__yui_events||{};var opts=p_config||{};var events=this.__yui_events;if(events[p_type]){}else{var scope=opts.scope||this;var silent=opts.silent||null;var ce=new YAHOO.util.CustomEvent(p_type,scope,silent,YAHOO.util.CustomEvent.FLAT);events[p_type]=ce;if(opts.onSubscribeCallback){ce.subscribeEvent.subscribe(opts.onSubscribeCallback);} -this.__yui_subscribers=this.__yui_subscribers||{};var qs=this.__yui_subscribers[p_type];if(qs){for(var i=0;i - * YAHOO.env.getVersion for the description of the version data structure. - * @property listener - * @static - */ -if (typeof YAHOO == "undefined") { - /** - * The YAHOO global namespace object. If YAHOO is already defined, the - * existing YAHOO object will not be overwritten so that defined - * namespaces are preserved. - * @class YAHOO - * @static - */ - var YAHOO = {}; -} - -/** - * Returns the namespace specified and creates it if it doesn't exist - *
        - * YAHOO.namespace("property.package");
        - * YAHOO.namespace("YAHOO.property.package");
        - * 
        - * Either of the above would create YAHOO.property, then - * YAHOO.property.package - * - * Be careful when naming packages. Reserved words may work in some browsers - * and not others. For instance, the following will fail in Safari: - *
        - * YAHOO.namespace("really.long.nested.namespace");
        - * 
        - * This fails because "long" is a future reserved word in ECMAScript - * - * @method namespace - * @static - * @param {String*} arguments 1-n namespaces to create - * @return {Object} A reference to the last namespace object created - */ -YAHOO.namespace = function() { - var a=arguments, o=null, i, j, d; - for (i=0; i - *
        name:
        The name of the module
        - *
        version:
        The version in use
        - *
        build:
        The build number in use
        - *
        versions:
        All versions that were registered
        - *
        builds:
        All builds that were registered.
        - *
        mainClass:
        An object that was was stamped with the - * current version and build. If - * mainClass.VERSION != version or mainClass.BUILD != build, - * multiple versions of pieces of the library have been - * loaded, potentially causing issues.
        - * - * - * @method getVersion - * @static - * @param {String} name the name of the module (event, slider, etc) - * @return {Object} The version info - */ - getVersion: function(name) { - return YAHOO.env.modules[name] || null; - } -}; - -/** - * Provides the language utilites and extensions used by the library - * @class YAHOO.lang - */ -YAHOO.lang = { - /** - * Determines whether or not the provided object is an array - * @method isArray - * @param {any} obj The object being testing - * @return Boolean - */ - isArray: function(obj) { // frames lose type, so test constructor string - if (obj && obj.constructor && - obj.constructor.toString().indexOf('Array') > -1) { - return true; - } else { - return YAHOO.lang.isObject(obj) && obj.constructor == Array; - } - }, - - /** - * Determines whether or not the provided object is a boolean - * @method isBoolean - * @param {any} obj The object being testing - * @return Boolean - */ - isBoolean: function(obj) { - return typeof obj == 'boolean'; - }, - - /** - * Determines whether or not the provided object is a function - * @method isFunction - * @param {any} obj The object being testing - * @return Boolean - */ - isFunction: function(obj) { - return typeof obj == 'function'; - }, - - /** - * Determines whether or not the provided object is null - * @method isNull - * @param {any} obj The object being testing - * @return Boolean - */ - isNull: function(obj) { - return obj === null; - }, - - /** - * Determines whether or not the provided object is a legal number - * @method isNumber - * @param {any} obj The object being testing - * @return Boolean - */ - isNumber: function(obj) { - return typeof obj == 'number' && isFinite(obj); - }, - - /** - * Determines whether or not the provided object is of type object - * or function - * @method isObject - * @param {any} obj The object being testing - * @return Boolean - */ - isObject: function(obj) { - return obj && (typeof obj == 'object' || YAHOO.lang.isFunction(obj)); - }, - - /** - * Determines whether or not the provided object is a string - * @method isString - * @param {any} obj The object being testing - * @return Boolean - */ - isString: function(obj) { - return typeof obj == 'string'; - }, - - /** - * Determines whether or not the provided object is undefined - * @method isUndefined - * @param {any} obj The object being testing - * @return Boolean - */ - isUndefined: function(obj) { - return typeof obj == 'undefined'; - }, - - /** - * Determines whether or not the property was added - * to the object instance. Returns false if the property is not present - * in the object, or was inherited from the prototype. - * This abstraction is provided to enable hasOwnProperty for Safari 1.3.x. - * There is a discrepancy between YAHOO.lang.hasOwnProperty and - * Object.prototype.hasOwnProperty when the property is a primitive added to - * both the instance AND prototype with the same value: - *
        -     * var A = function() {};
        -     * A.prototype.foo = 'foo';
        -     * var a = new A();
        -     * a.foo = 'foo';
        -     * alert(a.hasOwnProperty('foo')); // true
        -     * alert(YAHOO.lang.hasOwnProperty(a, 'foo')); // false when using fallback
        -     * 
        - * @method hasOwnProperty - * @param {any} obj The object being testing - * @return Boolean - */ - hasOwnProperty: function(obj, prop) { - if (Object.prototype.hasOwnProperty) { - return obj.hasOwnProperty(prop); - } - - return !YAHOO.lang.isUndefined(obj[prop]) && - obj.constructor.prototype[prop] !== obj[prop]; - }, - - /** - * Utility to set up the prototype, constructor and superclass properties to - * support an inheritance strategy that can chain constructors and methods. - * - * @method extend - * @static - * @param {Function} subc the object to modify - * @param {Function} superc the object to inherit - * @param {Object} overrides additional properties/methods to add to the - * subclass prototype. These will override the - * matching items obtained from the superclass - * if present. - */ - extend: function(subc, superc, overrides) { - if (!superc||!subc) { - throw new Error("YAHOO.lang.extend failed, please check that " + - "all dependencies are included."); - } - var F = function() {}; - F.prototype=superc.prototype; - subc.prototype=new F(); - subc.prototype.constructor=subc; - subc.superclass=superc.prototype; - if (superc.prototype.constructor == Object.prototype.constructor) { - superc.prototype.constructor=superc; - } - - if (overrides) { - for (var i in overrides) { - subc.prototype[i]=overrides[i]; - } - } - }, - - /** - * Applies all prototype properties in the supplier to the receiver if the - * receiver does not have these properties yet. Optionally, one or more - * methods/properties can be specified (as additional parameters). This - * option will overwrite the property if receiver has it already. - * - * @method augment - * @static - * @param {Function} r the object to receive the augmentation - * @param {Function} s the object that supplies the properties to augment - * @param {String*} arguments zero or more properties methods to augment the - * receiver with. If none specified, everything - * in the supplier will be used unless it would - * overwrite an existing property in the receiver - */ - augment: function(r, s) { - if (!s||!r) { - throw new Error("YAHOO.lang.augment failed, please check that " + - "all dependencies are included."); - } - var rp=r.prototype, sp=s.prototype, a=arguments, i, p; - if (a[2]) { - for (i=2; iYAHOO.lang - * @class YAHOO.util.Lang - */ -YAHOO.util.Lang = YAHOO.lang; - -/** - * An alias for YAHOO.lang.augment - * @for YAHOO - * @method augment - * @static - * @param {Function} r the object to receive the augmentation - * @param {Function} s the object that supplies the properties to augment - * @param {String*} arguments zero or more properties methods to augment the - * receiver with. If none specified, everything - * in the supplier will be used unless it would - * overwrite an existing property in the receiver - */ -YAHOO.augment = YAHOO.lang.augment; - -/** - * An alias for YAHOO.lang.extend - * @method extend - * @static - * @param {Function} subc the object to modify - * @param {Function} superc the object to inherit - * @param {Object} overrides additional properties/methods to add to the - * subclass prototype. These will override the - * matching items obtained from the superclass - * if present. - */ -YAHOO.extend = YAHOO.lang.extend; - -YAHOO.register("yahoo", YAHOO, {version: "2.2.2", build: "204"}); diff --git a/www/extras/yui/build/yahoo/yahoo-min.js b/www/extras/yui/build/yahoo/yahoo-min.js deleted file mode 100644 index 7aca8f4b5..000000000 --- a/www/extras/yui/build/yahoo/yahoo-min.js +++ /dev/null @@ -1,17 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.2 -*/ - -if(typeof YAHOO=="undefined"){var YAHOO={};} -YAHOO.namespace=function(){var a=arguments,o=null,i,j,d;for(i=0;i-1){return true;}else{return YAHOO.lang.isObject(obj)&&obj.constructor==Array;}},isBoolean:function(obj){return typeof obj=='boolean';},isFunction:function(obj){return typeof obj=='function';},isNull:function(obj){return obj===null;},isNumber:function(obj){return typeof obj=='number'&&isFinite(obj);},isObject:function(obj){return obj&&(typeof obj=='object'||YAHOO.lang.isFunction(obj));},isString:function(obj){return typeof obj=='string';},isUndefined:function(obj){return typeof obj=='undefined';},hasOwnProperty:function(obj,prop){if(Object.prototype.hasOwnProperty){return obj.hasOwnProperty(prop);} -return!YAHOO.lang.isUndefined(obj[prop])&&obj.constructor.prototype[prop]!==obj[prop];},extend:function(subc,superc,overrides){if(!superc||!subc){throw new Error("YAHOO.lang.extend failed, please check that "+"all dependencies are included.");} -var F=function(){};F.prototype=superc.prototype;subc.prototype=new F();subc.prototype.constructor=subc;subc.superclass=superc.prototype;if(superc.prototype.constructor==Object.prototype.constructor){superc.prototype.constructor=superc;} -if(overrides){for(var i in overrides){subc.prototype[i]=overrides[i];}}},augment:function(r,s){if(!s||!r){throw new Error("YAHOO.lang.augment failed, please check that "+"all dependencies are included.");} -var rp=r.prototype,sp=s.prototype,a=arguments,i,p;if(a[2]){for(i=2;i - * YAHOO.env.getVersion for the description of the version data structure. - * @property listener - * @static - */ -if (typeof YAHOO == "undefined") { - /** - * The YAHOO global namespace object. If YAHOO is already defined, the - * existing YAHOO object will not be overwritten so that defined - * namespaces are preserved. - * @class YAHOO - * @static - */ - var YAHOO = {}; -} - -/** - * Returns the namespace specified and creates it if it doesn't exist - *
        - * YAHOO.namespace("property.package");
        - * YAHOO.namespace("YAHOO.property.package");
        - * 
        - * Either of the above would create YAHOO.property, then - * YAHOO.property.package - * - * Be careful when naming packages. Reserved words may work in some browsers - * and not others. For instance, the following will fail in Safari: - *
        - * YAHOO.namespace("really.long.nested.namespace");
        - * 
        - * This fails because "long" is a future reserved word in ECMAScript - * - * @method namespace - * @static - * @param {String*} arguments 1-n namespaces to create - * @return {Object} A reference to the last namespace object created - */ -YAHOO.namespace = function() { - var a=arguments, o=null, i, j, d; - for (i=0; i - *
        name:
        The name of the module
        - *
        version:
        The version in use
        - *
        build:
        The build number in use
        - *
        versions:
        All versions that were registered
        - *
        builds:
        All builds that were registered.
        - *
        mainClass:
        An object that was was stamped with the - * current version and build. If - * mainClass.VERSION != version or mainClass.BUILD != build, - * multiple versions of pieces of the library have been - * loaded, potentially causing issues.
        - * - * - * @method getVersion - * @static - * @param {String} name the name of the module (event, slider, etc) - * @return {Object} The version info - */ - getVersion: function(name) { - return YAHOO.env.modules[name] || null; - } -}; - -/** - * Provides the language utilites and extensions used by the library - * @class YAHOO.lang - */ -YAHOO.lang = { - /** - * Determines whether or not the provided object is an array - * @method isArray - * @param {any} obj The object being testing - * @return Boolean - */ - isArray: function(obj) { // frames lose type, so test constructor string - if (obj && obj.constructor && - obj.constructor.toString().indexOf('Array') > -1) { - return true; - } else { - return YAHOO.lang.isObject(obj) && obj.constructor == Array; - } - }, - - /** - * Determines whether or not the provided object is a boolean - * @method isBoolean - * @param {any} obj The object being testing - * @return Boolean - */ - isBoolean: function(obj) { - return typeof obj == 'boolean'; - }, - - /** - * Determines whether or not the provided object is a function - * @method isFunction - * @param {any} obj The object being testing - * @return Boolean - */ - isFunction: function(obj) { - return typeof obj == 'function'; - }, - - /** - * Determines whether or not the provided object is null - * @method isNull - * @param {any} obj The object being testing - * @return Boolean - */ - isNull: function(obj) { - return obj === null; - }, - - /** - * Determines whether or not the provided object is a legal number - * @method isNumber - * @param {any} obj The object being testing - * @return Boolean - */ - isNumber: function(obj) { - return typeof obj == 'number' && isFinite(obj); - }, - - /** - * Determines whether or not the provided object is of type object - * or function - * @method isObject - * @param {any} obj The object being testing - * @return Boolean - */ - isObject: function(obj) { - return obj && (typeof obj == 'object' || YAHOO.lang.isFunction(obj)); - }, - - /** - * Determines whether or not the provided object is a string - * @method isString - * @param {any} obj The object being testing - * @return Boolean - */ - isString: function(obj) { - return typeof obj == 'string'; - }, - - /** - * Determines whether or not the provided object is undefined - * @method isUndefined - * @param {any} obj The object being testing - * @return Boolean - */ - isUndefined: function(obj) { - return typeof obj == 'undefined'; - }, - - /** - * Determines whether or not the property was added - * to the object instance. Returns false if the property is not present - * in the object, or was inherited from the prototype. - * This abstraction is provided to enable hasOwnProperty for Safari 1.3.x. - * There is a discrepancy between YAHOO.lang.hasOwnProperty and - * Object.prototype.hasOwnProperty when the property is a primitive added to - * both the instance AND prototype with the same value: - *
        -     * var A = function() {};
        -     * A.prototype.foo = 'foo';
        -     * var a = new A();
        -     * a.foo = 'foo';
        -     * alert(a.hasOwnProperty('foo')); // true
        -     * alert(YAHOO.lang.hasOwnProperty(a, 'foo')); // false when using fallback
        -     * 
        - * @method hasOwnProperty - * @param {any} obj The object being testing - * @return Boolean - */ - hasOwnProperty: function(obj, prop) { - if (Object.prototype.hasOwnProperty) { - return obj.hasOwnProperty(prop); - } - - return !YAHOO.lang.isUndefined(obj[prop]) && - obj.constructor.prototype[prop] !== obj[prop]; - }, - - /** - * Utility to set up the prototype, constructor and superclass properties to - * support an inheritance strategy that can chain constructors and methods. - * - * @method extend - * @static - * @param {Function} subc the object to modify - * @param {Function} superc the object to inherit - * @param {Object} overrides additional properties/methods to add to the - * subclass prototype. These will override the - * matching items obtained from the superclass - * if present. - */ - extend: function(subc, superc, overrides) { - if (!superc||!subc) { - throw new Error("YAHOO.lang.extend failed, please check that " + - "all dependencies are included."); - } - var F = function() {}; - F.prototype=superc.prototype; - subc.prototype=new F(); - subc.prototype.constructor=subc; - subc.superclass=superc.prototype; - if (superc.prototype.constructor == Object.prototype.constructor) { - superc.prototype.constructor=superc; - } - - if (overrides) { - for (var i in overrides) { - subc.prototype[i]=overrides[i]; - } - } - }, - - /** - * Applies all prototype properties in the supplier to the receiver if the - * receiver does not have these properties yet. Optionally, one or more - * methods/properties can be specified (as additional parameters). This - * option will overwrite the property if receiver has it already. - * - * @method augment - * @static - * @param {Function} r the object to receive the augmentation - * @param {Function} s the object that supplies the properties to augment - * @param {String*} arguments zero or more properties methods to augment the - * receiver with. If none specified, everything - * in the supplier will be used unless it would - * overwrite an existing property in the receiver - */ - augment: function(r, s) { - if (!s||!r) { - throw new Error("YAHOO.lang.augment failed, please check that " + - "all dependencies are included."); - } - var rp=r.prototype, sp=s.prototype, a=arguments, i, p; - if (a[2]) { - for (i=2; iYAHOO.lang - * @class YAHOO.util.Lang - */ -YAHOO.util.Lang = YAHOO.lang; - -/** - * An alias for YAHOO.lang.augment - * @for YAHOO - * @method augment - * @static - * @param {Function} r the object to receive the augmentation - * @param {Function} s the object that supplies the properties to augment - * @param {String*} arguments zero or more properties methods to augment the - * receiver with. If none specified, everything - * in the supplier will be used unless it would - * overwrite an existing property in the receiver - */ -YAHOO.augment = YAHOO.lang.augment; - -/** - * An alias for YAHOO.lang.extend - * @method extend - * @static - * @param {Function} subc the object to modify - * @param {Function} superc the object to inherit - * @param {Object} overrides additional properties/methods to add to the - * subclass prototype. These will override the - * matching items obtained from the superclass - * if present. - */ -YAHOO.extend = YAHOO.lang.extend; - -YAHOO.register("yahoo", YAHOO, {version: "2.2.2", build: "204"}); diff --git a/www/extras/yui/docs/Anim.js.html b/www/extras/yui/docs/Anim.js.html deleted file mode 100644 index 27a629bc7..000000000 --- a/www/extras/yui/docs/Anim.js.html +++ /dev/null @@ -1,552 +0,0 @@ - - - - API: animation Anim.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        animation  2.2.2

        -

        - Yahoo! UI Library - > animation - - > Anim.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /*
        -Copyright (c) 2006, Yahoo! Inc. All rights reserved.
        -Code licensed under the BSD License:
        -http://developer.yahoo.net/yui/license.txt
        -*/
        -
        -/**
        - * The animation module provides allows effects to be added to HTMLElements.
        - * @module animation
        - * @requires yahoo, event, dom
        - */
        -
        -/**
        - *
        - * Base animation class that provides the interface for building animated effects.
        - * <p>Usage: var myAnim = new YAHOO.util.Anim(el, { width: { from: 10, to: 100 } }, 1, YAHOO.util.Easing.easeOut);</p>
        - * @class Anim
        - * @namespace YAHOO.util
        - * @requires YAHOO.util.AnimMgr
        - * @requires YAHOO.util.Easing
        - * @requires YAHOO.util.Dom
        - * @requires YAHOO.util.Event
        - * @requires YAHOO.util.CustomEvent
        - * @constructor
        - * @param {String | HTMLElement} el Reference to the element that will be animated
        - * @param {Object} attributes The attribute(s) to be animated.  
        - * Each attribute is an object with at minimum a "to" or "by" member defined.  
        - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px").  
        - * All attribute names use camelCase.
        - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based
        - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method)
        - */
        -
        -YAHOO.util.Anim = function(el, attributes, duration, method) {
        -    if (el) {
        -        this.init(el, attributes, duration, method); 
        -    }
        -};
        -
        -YAHOO.util.Anim.prototype = {
        -    /**
        -     * Provides a readable name for the Anim instance.
        -     * @method toString
        -     * @return {String}
        -     */
        -    toString: function() {
        -        var el = this.getEl();
        -        var id = el.id || el.tagName;
        -        return ("Anim " + id);
        -    },
        -    
        -    patterns: { // cached for performance
        -        noNegatives:        /width|height|opacity|padding/i, // keep at zero or above
        -        offsetAttribute:  /^((width|height)|(top|left))$/, // use offsetValue as default
        -        defaultUnit:        /width|height|top$|bottom$|left$|right$/i, // use 'px' by default
        -        offsetUnit:         /\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i // IE may return these, so convert these to offset
        -    },
        -    
        -    /**
        -     * Returns the value computed by the animation's "method".
        -     * @method doMethod
        -     * @param {String} attr The name of the attribute.
        -     * @param {Number} start The value this attribute should start from for this animation.
        -     * @param {Number} end  The value this attribute should end at for this animation.
        -     * @return {Number} The Value to be applied to the attribute.
        -     */
        -    doMethod: function(attr, start, end) {
        -        return this.method(this.currentFrame, start, end - start, this.totalFrames);
        -    },
        -    
        -    /**
        -     * Applies a value to an attribute.
        -     * @method setAttribute
        -     * @param {String} attr The name of the attribute.
        -     * @param {Number} val The value to be applied to the attribute.
        -     * @param {String} unit The unit ('px', '%', etc.) of the value.
        -     */
        -    setAttribute: function(attr, val, unit) {
        -        if ( this.patterns.noNegatives.test(attr) ) {
        -            val = (val > 0) ? val : 0;
        -        }
        -
        -        YAHOO.util.Dom.setStyle(this.getEl(), attr, val + unit);
        -    },                        
        -    
        -    /**
        -     * Returns current value of the attribute.
        -     * @method getAttribute
        -     * @param {String} attr The name of the attribute.
        -     * @return {Number} val The current value of the attribute.
        -     */
        -    getAttribute: function(attr) {
        -        var el = this.getEl();
        -        var val = YAHOO.util.Dom.getStyle(el, attr);
        -
        -        if (val !== 'auto' && !this.patterns.offsetUnit.test(val)) {
        -            return parseFloat(val);
        -        }
        -        
        -        var a = this.patterns.offsetAttribute.exec(attr) || [];
        -        var pos = !!( a[3] ); // top or left
        -        var box = !!( a[2] ); // width or height
        -        
        -        // use offsets for width/height and abs pos top/left
        -        if ( box || (YAHOO.util.Dom.getStyle(el, 'position') == 'absolute' && pos) ) {
        -            val = el['offset' + a[0].charAt(0).toUpperCase() + a[0].substr(1)];
        -        } else { // default to zero for other 'auto'
        -            val = 0;
        -        }
        -
        -        return val;
        -    },
        -    
        -    /**
        -     * Returns the unit to use when none is supplied.
        -     * @method getDefaultUnit
        -     * @param {attr} attr The name of the attribute.
        -     * @return {String} The default unit to be used.
        -     */
        -    getDefaultUnit: function(attr) {
        -         if ( this.patterns.defaultUnit.test(attr) ) {
        -            return 'px';
        -         }
        -         
        -         return '';
        -    },
        -        
        -    /**
        -     * Sets the actual values to be used during the animation.  Should only be needed for subclass use.
        -     * @method setRuntimeAttribute
        -     * @param {Object} attr The attribute object
        -     * @private 
        -     */
        -    setRuntimeAttribute: function(attr) {
        -        var start;
        -        var end;
        -        var attributes = this.attributes;
        -
        -        this.runtimeAttributes[attr] = {};
        -        
        -        var isset = function(prop) {
        -            return (typeof prop !== 'undefined');
        -        };
        -        
        -        if ( !isset(attributes[attr]['to']) && !isset(attributes[attr]['by']) ) {
        -            return false; // note return; nothing to animate to
        -        }
        -        
        -        start = ( isset(attributes[attr]['from']) ) ? attributes[attr]['from'] : this.getAttribute(attr);
        -
        -        // To beats by, per SMIL 2.1 spec
        -        if ( isset(attributes[attr]['to']) ) {
        -            end = attributes[attr]['to'];
        -        } else if ( isset(attributes[attr]['by']) ) {
        -            if (start.constructor == Array) {
        -                end = [];
        -                for (var i = 0, len = start.length; i < len; ++i) {
        -                    end[i] = start[i] + attributes[attr]['by'][i];
        -                }
        -            } else {
        -                end = start + attributes[attr]['by'];
        -            }
        -        }
        -        
        -        this.runtimeAttributes[attr].start = start;
        -        this.runtimeAttributes[attr].end = end;
        -
        -        // set units if needed
        -        this.runtimeAttributes[attr].unit = ( isset(attributes[attr].unit) ) ? attributes[attr]['unit'] : this.getDefaultUnit(attr);
        -    },
        -
        -    /**
        -     * Constructor for Anim instance.
        -     * @method init
        -     * @param {String | HTMLElement} el Reference to the element that will be animated
        -     * @param {Object} attributes The attribute(s) to be animated.  
        -     * Each attribute is an object with at minimum a "to" or "by" member defined.  
        -     * Additional optional members are "from" (defaults to current value), "units" (defaults to "px").  
        -     * All attribute names use camelCase.
        -     * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based
        -     * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method)
        -     */ 
        -    init: function(el, attributes, duration, method) {
        -        /**
        -         * Whether or not the animation is running.
        -         * @property isAnimated
        -         * @private
        -         * @type Boolean
        -         */
        -        var isAnimated = false;
        -        
        -        /**
        -         * A Date object that is created when the animation begins.
        -         * @property startTime
        -         * @private
        -         * @type Date
        -         */
        -        var startTime = null;
        -        
        -        /**
        -         * The number of frames this animation was able to execute.
        -         * @property actualFrames
        -         * @private
        -         * @type Int
        -         */
        -        var actualFrames = 0; 
        -
        -        /**
        -         * The element to be animated.
        -         * @property el
        -         * @private
        -         * @type HTMLElement
        -         */
        -        el = YAHOO.util.Dom.get(el);
        -        
        -        /**
        -         * The collection of attributes to be animated.  
        -         * Each attribute must have at least a "to" or "by" defined in order to animate.  
        -         * If "to" is supplied, the animation will end with the attribute at that value.  
        -         * If "by" is supplied, the animation will end at that value plus its starting value. 
        -         * If both are supplied, "to" is used, and "by" is ignored. 
        -         * Optional additional member include "from" (the value the attribute should start animating from, defaults to current value), and "unit" (the units to apply to the values).
        -         * @property attributes
        -         * @type Object
        -         */
        -        this.attributes = attributes || {};
        -        
        -        /**
        -         * The length of the animation.  Defaults to "1" (second).
        -         * @property duration
        -         * @type Number
        -         */
        -        this.duration = duration || 1;
        -        
        -        /**
        -         * The method that will provide values to the attribute(s) during the animation. 
        -         * Defaults to "YAHOO.util.Easing.easeNone".
        -         * @property method
        -         * @type Function
        -         */
        -        this.method = method || YAHOO.util.Easing.easeNone;
        -
        -        /**
        -         * Whether or not the duration should be treated as seconds.
        -         * Defaults to true.
        -         * @property useSeconds
        -         * @type Boolean
        -         */
        -        this.useSeconds = true; // default to seconds
        -        
        -        /**
        -         * The location of the current animation on the timeline.
        -         * In time-based animations, this is used by AnimMgr to ensure the animation finishes on time.
        -         * @property currentFrame
        -         * @type Int
        -         */
        -        this.currentFrame = 0;
        -        
        -        /**
        -         * The total number of frames to be executed.
        -         * In time-based animations, this is used by AnimMgr to ensure the animation finishes on time.
        -         * @property totalFrames
        -         * @type Int
        -         */
        -        this.totalFrames = YAHOO.util.AnimMgr.fps;
        -        
        -        
        -        /**
        -         * Returns a reference to the animated element.
        -         * @method getEl
        -         * @return {HTMLElement}
        -         */
        -        this.getEl = function() { return el; };
        -        
        -        /**
        -         * Checks whether the element is currently animated.
        -         * @method isAnimated
        -         * @return {Boolean} current value of isAnimated.     
        -         */
        -        this.isAnimated = function() {
        -            return isAnimated;
        -        };
        -        
        -        /**
        -         * Returns the animation start time.
        -         * @method getStartTime
        -         * @return {Date} current value of startTime.      
        -         */
        -        this.getStartTime = function() {
        -            return startTime;
        -        };        
        -        
        -        this.runtimeAttributes = {};
        -        
        -        var logger = {};
        -        logger.log = function() {YAHOO.log.apply(window, arguments)};
        -        
        -        logger.log('creating new instance of ' + this);
        -        
        -        /**
        -         * Starts the animation by registering it with the animation manager. 
        -         * @method animate  
        -         */
        -        this.animate = function() {
        -            if ( this.isAnimated() ) {
        -                return false;
        -            }
        -            
        -            this.currentFrame = 0;
        -            
        -            this.totalFrames = ( this.useSeconds ) ? Math.ceil(YAHOO.util.AnimMgr.fps * this.duration) : this.duration;
        -    
        -            YAHOO.util.AnimMgr.registerElement(this);
        -        };
        -          
        -        /**
        -         * Stops the animation.  Normally called by AnimMgr when animation completes.
        -         * @method stop
        -         * @param {Boolean} finish (optional) If true, animation will jump to final frame.
        -         */ 
        -        this.stop = function(finish) {
        -            if (finish) {
        -                 this.currentFrame = this.totalFrames;
        -                 this._onTween.fire();
        -            }
        -            YAHOO.util.AnimMgr.stop(this);
        -        };
        -        
        -        var onStart = function() {            
        -            this.onStart.fire();
        -            
        -            this.runtimeAttributes = {};
        -            for (var attr in this.attributes) {
        -                this.setRuntimeAttribute(attr);
        -            }
        -            
        -            isAnimated = true;
        -            actualFrames = 0;
        -            startTime = new Date(); 
        -        };
        -        
        -        /**
        -         * Feeds the starting and ending values for each animated attribute to doMethod once per frame, then applies the resulting value to the attribute(s).
        -         * @private
        -         */
        -         
        -        var onTween = function() {
        -            var data = {
        -                duration: new Date() - this.getStartTime(),
        -                currentFrame: this.currentFrame
        -            };
        -            
        -            data.toString = function() {
        -                return (
        -                    'duration: ' + data.duration +
        -                    ', currentFrame: ' + data.currentFrame
        -                );
        -            };
        -            
        -            this.onTween.fire(data);
        -            
        -            var runtimeAttributes = this.runtimeAttributes;
        -            
        -            for (var attr in runtimeAttributes) {
        -                this.setAttribute(attr, this.doMethod(attr, runtimeAttributes[attr].start, runtimeAttributes[attr].end), runtimeAttributes[attr].unit); 
        -            }
        -            
        -            actualFrames += 1;
        -        };
        -        
        -        var onComplete = function() {
        -            var actual_duration = (new Date() - startTime) / 1000 ;
        -            
        -            var data = {
        -                duration: actual_duration,
        -                frames: actualFrames,
        -                fps: actualFrames / actual_duration
        -            };
        -            
        -            data.toString = function() {
        -                return (
        -                    'duration: ' + data.duration +
        -                    ', frames: ' + data.frames +
        -                    ', fps: ' + data.fps
        -                );
        -            };
        -            
        -            isAnimated = false;
        -            actualFrames = 0;
        -            this.onComplete.fire(data);
        -        };
        -        
        -        /**
        -         * Custom event that fires after onStart, useful in subclassing
        -         * @private
        -         */    
        -        this._onStart = new YAHOO.util.CustomEvent('_start', this, true);
        -
        -        /**
        -         * Custom event that fires when animation begins
        -         * Listen via subscribe method (e.g. myAnim.onStart.subscribe(someFunction)
        -         * @event onStart
        -         */    
        -        this.onStart = new YAHOO.util.CustomEvent('start', this);
        -        
        -        /**
        -         * Custom event that fires between each frame
        -         * Listen via subscribe method (e.g. myAnim.onTween.subscribe(someFunction)
        -         * @event onTween
        -         */
        -        this.onTween = new YAHOO.util.CustomEvent('tween', this);
        -        
        -        /**
        -         * Custom event that fires after onTween
        -         * @private
        -         */
        -        this._onTween = new YAHOO.util.CustomEvent('_tween', this, true);
        -        
        -        /**
        -         * Custom event that fires when animation ends
        -         * Listen via subscribe method (e.g. myAnim.onComplete.subscribe(someFunction)
        -         * @event onComplete
        -         */
        -        this.onComplete = new YAHOO.util.CustomEvent('complete', this);
        -        /**
        -         * Custom event that fires after onComplete
        -         * @private
        -         */
        -        this._onComplete = new YAHOO.util.CustomEvent('_complete', this, true);
        -
        -        this._onStart.subscribe(onStart);
        -        this._onTween.subscribe(onTween);
        -        this._onComplete.subscribe(onComplete);
        -    }
        -};
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/AnimMgr.js.html b/www/extras/yui/docs/AnimMgr.js.html deleted file mode 100644 index 051c46d61..000000000 --- a/www/extras/yui/docs/AnimMgr.js.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - API: animation AnimMgr.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        animation  2.2.2

        -

        - Yahoo! UI Library - > animation - - > AnimMgr.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * Handles animation queueing and threading.
        - * Used by Anim and subclasses.
        - * @class AnimMgr
        - * @namespace YAHOO.util
        - */
        -YAHOO.util.AnimMgr = new function() {
        -    /** 
        -     * Reference to the animation Interval.
        -     * @property thread
        -     * @private
        -     * @type Int
        -     */
        -    var thread = null;
        -    
        -    /** 
        -     * The current queue of registered animation objects.
        -     * @property queue
        -     * @private
        -     * @type Array
        -     */    
        -    var queue = [];
        -
        -    /** 
        -     * The number of active animations.
        -     * @property tweenCount
        -     * @private
        -     * @type Int
        -     */        
        -    var tweenCount = 0;
        -
        -    /** 
        -     * Base frame rate (frames per second). 
        -     * Arbitrarily high for better x-browser calibration (slower browsers drop more frames).
        -     * @property fps
        -     * @type Int
        -     * 
        -     */
        -    this.fps = 1000;
        -
        -    /** 
        -     * Interval delay in milliseconds, defaults to fastest possible.
        -     * @property delay
        -     * @type Int
        -     * 
        -     */
        -    this.delay = 1;
        -
        -    /**
        -     * Adds an animation instance to the animation queue.
        -     * All animation instances must be registered in order to animate.
        -     * @method registerElement
        -     * @param {object} tween The Anim instance to be be registered
        -     */
        -    this.registerElement = function(tween) {
        -        queue[queue.length] = tween;
        -        tweenCount += 1;
        -        tween._onStart.fire();
        -        this.start();
        -    };
        -    
        -    /**
        -     * removes an animation instance from the animation queue.
        -     * All animation instances must be registered in order to animate.
        -     * @method unRegister
        -     * @param {object} tween The Anim instance to be be registered
        -     * @param {Int} index The index of the Anim instance
        -     * @private
        -     */
        -    this.unRegister = function(tween, index) {
        -        tween._onComplete.fire();
        -        index = index || getIndex(tween);
        -        if (index != -1) {
        -            queue.splice(index, 1);
        -        }
        -        
        -        tweenCount -= 1;
        -        if (tweenCount <= 0) {
        -            this.stop();
        -        }
        -    };
        -    
        -    /**
        -     * Starts the animation thread.
        -	* Only one thread can run at a time.
        -     * @method start
        -     */    
        -    this.start = function() {
        -        if (thread === null) {
        -            thread = setInterval(this.run, this.delay);
        -        }
        -    };
        -
        -    /**
        -     * Stops the animation thread or a specific animation instance.
        -     * @method stop
        -     * @param {object} tween A specific Anim instance to stop (optional)
        -     * If no instance given, Manager stops thread and all animations.
        -     */    
        -    this.stop = function(tween) {
        -        if (!tween) {
        -            clearInterval(thread);
        -            
        -            for (var i = 0, len = queue.length; i < len; ++i) {
        -                if ( queue[0].isAnimated() ) {
        -                    this.unRegister(queue[0], 0);  
        -                }
        -            }
        -
        -            queue = [];
        -            thread = null;
        -            tweenCount = 0;
        -        }
        -        else {
        -            this.unRegister(tween);
        -        }
        -    };
        -    
        -    /**
        -     * Called per Interval to handle each animation frame.
        -     * @method run
        -     */    
        -    this.run = function() {
        -        for (var i = 0, len = queue.length; i < len; ++i) {
        -            var tween = queue[i];
        -            if ( !tween || !tween.isAnimated() ) { continue; }
        -
        -            if (tween.currentFrame < tween.totalFrames || tween.totalFrames === null)
        -            {
        -                tween.currentFrame += 1;
        -                
        -                if (tween.useSeconds) {
        -                    correctFrame(tween);
        -                }
        -                tween._onTween.fire();          
        -            }
        -            else { YAHOO.util.AnimMgr.stop(tween, i); }
        -        }
        -    };
        -    
        -    var getIndex = function(anim) {
        -        for (var i = 0, len = queue.length; i < len; ++i) {
        -            if (queue[i] == anim) {
        -                return i; // note return;
        -            }
        -        }
        -        return -1;
        -    };
        -    
        -    /**
        -     * On the fly frame correction to keep animation on time.
        -     * @method correctFrame
        -     * @private
        -     * @param {Object} tween The Anim instance being corrected.
        -     */
        -    var correctFrame = function(tween) {
        -        var frames = tween.totalFrames;
        -        var frame = tween.currentFrame;
        -        var expected = (tween.currentFrame * tween.duration * 1000 / tween.totalFrames);
        -        var elapsed = (new Date() - tween.getStartTime());
        -        var tweak = 0;
        -        
        -        if (elapsed < tween.duration * 1000) { // check if falling behind
        -            tweak = Math.round((elapsed / expected - 1) * tween.currentFrame);
        -        } else { // went over duration, so jump to end
        -            tweak = frames - (frame + 1); 
        -        }
        -        if (tweak > 0 && isFinite(tweak)) { // adjust if needed
        -            if (tween.currentFrame + tweak >= frames) {// dont go past last frame
        -                tweak = frames - (frame + 1);
        -            }
        -            
        -            tween.currentFrame += tweak;      
        -        }
        -    };
        -};
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Attribute.js.html b/www/extras/yui/docs/Attribute.js.html deleted file mode 100644 index 1730f676a..000000000 --- a/www/extras/yui/docs/Attribute.js.html +++ /dev/null @@ -1,301 +0,0 @@ - - - - API: element Attribute.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        element  2.2.2

        -

        - Yahoo! UI Library - > element - - > Attribute.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * Provides Attribute configurations.
        - * @namespace YAHOO.util
        - * @class Attribute
        - * @constructor
        - * @param hash {Object} The intial Attribute.
        - * @param {YAHOO.util.AttributeProvider} The owner of the Attribute instance.
        - */
        -
        -YAHOO.util.Attribute = function(hash, owner) {
        -    if (owner) { 
        -        this.owner = owner;
        -        this.configure(hash, true);
        -    }
        -};
        -
        -YAHOO.util.Attribute.prototype = {
        -	/**
        -     * The name of the attribute.
        -	 * @property name
        -	 * @type String
        -	 */
        -    name: undefined,
        -    
        -	/**
        -     * The value of the attribute.
        -	 * @property value
        -	 * @type String
        -	 */
        -    value: null,
        -    
        -	/**
        -     * The owner of the attribute.
        -	 * @property owner
        -	 * @type YAHOO.util.AttributeProvider
        -	 */
        -    owner: null,
        -    
        -	/**
        -     * Whether or not the attribute is read only.
        -	 * @property readOnly
        -	 * @type Boolean
        -	 */
        -    readOnly: false,
        -    
        -	/**
        -     * Whether or not the attribute can only be written once.
        -	 * @property writeOnce
        -	 * @type Boolean
        -	 */
        -    writeOnce: false,
        -
        -	/**
        -     * The attribute's initial configuration.
        -     * @private
        -	 * @property _initialConfig
        -	 * @type Object
        -	 */
        -    _initialConfig: null,
        -    
        -	/**
        -     * Whether or not the attribute's value has been set.
        -     * @private
        -	 * @property _written
        -	 * @type Boolean
        -	 */
        -    _written: false,
        -    
        -	/**
        -     * The method to use when setting the attribute's value.
        -     * The method recieves the new value as the only argument.
        -	 * @property method
        -	 * @type Function
        -	 */
        -    method: null,
        -    
        -	/**
        -     * The validator to use when setting the attribute's value.
        -	 * @property validator
        -	 * @type Function
        -     * @return Boolean
        -	 */
        -    validator: null,
        -    
        -    /**
        -     * Retrieves the current value of the attribute.
        -     * @method getValue
        -     * @return {any} The current value of the attribute.
        -     */
        -    getValue: function() {
        -        return this.value;
        -    },
        -    
        -    /**
        -     * Sets the value of the attribute and fires beforeChange and change events.
        -     * @method setValue
        -     * @param {Any} value The value to apply to the attribute.
        -     * @param {Boolean} silent If true the change events will not be fired.
        -     * @return {Boolean} Whether or not the value was set.
        -     */
        -    setValue: function(value, silent) {
        -        var beforeRetVal;
        -        var owner = this.owner;
        -        var name = this.name;
        -        
        -        var event = {
        -            type: name, 
        -            prevValue: this.getValue(),
        -            newValue: value
        -        };
        -        
        -        if (this.readOnly || ( this.writeOnce && this._written) ) {
        -            return false; // write not allowed
        -        }
        -        
        -        if (this.validator && !this.validator.call(owner, value) ) {
        -            return false; // invalid value
        -        }
        -
        -        if (!silent) {
        -            beforeRetVal = owner.fireBeforeChangeEvent(event);
        -            if (beforeRetVal === false) {
        -                YAHOO.log('setValue ' + name + 
        -                        'cancelled by beforeChange event', 'info', 'Attribute');
        -                return false;
        -            }
        -        }
        -
        -        if (this.method) {
        -            this.method.call(owner, value);
        -        }
        -        
        -        this.value = value;
        -        this._written = true;
        -        
        -        event.type = name;
        -        
        -        if (!silent) {
        -            this.owner.fireChangeEvent(event);
        -        }
        -        
        -        return true;
        -    },
        -    
        -    /**
        -     * Allows for configuring the Attribute's properties.
        -     * @method configure
        -     * @param {Object} map A key-value map of Attribute properties.
        -     * @param {Boolean} init Whether or not this should become the initial config.
        -     */
        -    configure: function(map, init) {
        -        map = map || {};
        -        this._written = false; // reset writeOnce
        -        this._initialConfig = this._initialConfig || {};
        -        
        -        for (var key in map) {
        -            if ( key && YAHOO.lang.hasOwnProperty(map, key) ) {
        -                this[key] = map[key];
        -                if (init) {
        -                    this._initialConfig[key] = map[key];
        -                }
        -            }
        -        }
        -    },
        -    
        -    /**
        -     * Resets the value to the initial config value.
        -     * @method resetValue
        -     * @return {Boolean} Whether or not the value was set.
        -     */
        -    resetValue: function() {
        -        return this.setValue(this._initialConfig.value);
        -    },
        -    
        -    /**
        -     * Resets the attribute config to the initial config state.
        -     * @method resetConfig
        -     */
        -    resetConfig: function() {
        -        this.configure(this._initialConfig);
        -    },
        -    
        -    /**
        -     * Resets the value to the current value.
        -     * Useful when values may have gotten out of sync with actual properties.
        -     * @method refresh
        -     * @return {Boolean} Whether or not the value was set.
        -     */
        -    refresh: function(silent) {
        -        this.setValue(this.value, silent);
        -    }
        -};
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/AttributeProvider.js.html b/www/extras/yui/docs/AttributeProvider.js.html deleted file mode 100644 index dc042a7d9..000000000 --- a/www/extras/yui/docs/AttributeProvider.js.html +++ /dev/null @@ -1,349 +0,0 @@ - - - - API: element AttributeProvider.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        element  2.2.2

        -

        - Yahoo! UI Library - > element - - > AttributeProvider.js (source view) -

        -
        - -
        -
        -
        - -
        -
        (function() {
        -    var Lang = YAHOO.util.Lang;
        -
        -    /*
        -    Copyright (c) 2006, Yahoo! Inc. All rights reserved.
        -    Code licensed under the BSD License:
        -    http://developer.yahoo.net/yui/license.txt
        -    */
        -    
        -    /**
        -     * Provides and manages YAHOO.util.Attribute instances
        -     * @namespace YAHOO.util
        -     * @class AttributeProvider
        -     * @uses YAHOO.util.EventProvider
        -     */
        -    YAHOO.util.AttributeProvider = function() {};
        -    
        -    YAHOO.util.AttributeProvider.prototype = {
        -        
        -        /**
        -         * A key-value map of Attribute configurations
        -         * @property _configs
        -         * @protected (may be used by subclasses and augmentors)
        -         * @private
        -         * @type {Object}
        -         */
        -        _configs: null,
        -        /**
        -         * Returns the current value of the attribute.
        -         * @method get
        -         * @param {String} key The attribute whose value will be returned.
        -         */
        -        get: function(key){
        -            var configs = this._configs || {};
        -            var config = configs[key];
        -            
        -            if (!config) {
        -                YAHOO.log(key + ' not found', 'error', 'AttributeProvider');
        -                return undefined;
        -            }
        -            
        -            return config.value;
        -        },
        -        
        -        /**
        -         * Sets the value of a config.
        -         * @method set
        -         * @param {String} key The name of the attribute
        -         * @param {Any} value The value to apply to the attribute
        -         * @param {Boolean} silent Whether or not to suppress change events
        -         * @return {Boolean} Whether or not the value was set.
        -         */
        -        set: function(key, value, silent){
        -            var configs = this._configs || {};
        -            var config = configs[key];
        -            
        -            if (!config) {
        -                YAHOO.log('set failed: ' + key + ' not found',
        -                        'error', 'AttributeProvider');
        -                return false;
        -            }
        -            
        -            return config.setValue(value, silent);
        -        },
        -    
        -        /**
        -         * Returns an array of attribute names.
        -         * @method getAttributeKeys
        -         * @return {Array} An array of attribute names.
        -         */
        -        getAttributeKeys: function(){
        -            var configs = this._configs;
        -            var keys = [];
        -            var config;
        -            for (var key in configs) {
        -                config = configs[key];
        -                if ( Lang.hasOwnProperty(configs, key) && 
        -                        !Lang.isUndefined(config) ) {
        -                    keys[keys.length] = key;
        -                }
        -            }
        -            
        -            return keys;
        -        },
        -        
        -        /**
        -         * Sets multiple attribute values.
        -         * @method setAttributes
        -         * @param {Object} map  A key-value map of attributes
        -         * @param {Boolean} silent Whether or not to suppress change events
        -         */
        -        setAttributes: function(map, silent){
        -            for (var key in map) {
        -                if ( Lang.hasOwnProperty(map, key) ) {
        -                    this.set(key, map[key], silent);
        -                }
        -            }
        -        },
        -    
        -        /**
        -         * Resets the specified attribute's value to its initial value.
        -         * @method resetValue
        -         * @param {String} key The name of the attribute
        -         * @param {Boolean} silent Whether or not to suppress change events
        -         * @return {Boolean} Whether or not the value was set
        -         */
        -        resetValue: function(key, silent){
        -            var configs = this._configs || {};
        -            if (configs[key]) {
        -                this.set(key, configs[key]._initialConfig.value, silent);
        -                return true;
        -            }
        -            return false;
        -        },
        -    
        -        /**
        -         * Sets the attribute's value to its current value.
        -         * @method refresh
        -         * @param {String | Array} key The attribute(s) to refresh
        -         * @param {Boolean} silent Whether or not to suppress change events
        -         */
        -        refresh: function(key, silent){
        -            var configs = this._configs;
        -            
        -            key = ( ( Lang.isString(key) ) ? [key] : key ) || 
        -                    this.getAttributeKeys();
        -            
        -            for (var i = 0, len = key.length; i < len; ++i) { 
        -                if ( // only set if there is a value and not null
        -                    configs[key[i]] && 
        -                    ! Lang.isUndefined(configs[key[i]].value) &&
        -                    ! Lang.isNull(configs[key[i]].value) ) {
        -                    configs[key[i]].refresh(silent);
        -                }
        -            }
        -        },
        -    
        -        /**
        -         * Adds an Attribute to the AttributeProvider instance. 
        -         * @method register
        -         * @param {String} key The attribute's name
        -         * @param {Object} map A key-value map containing the
        -         * attribute's properties.
        -         * @deprecated Use setAttributeConfig
        -         */
        -        register: function(key, map) {
        -            this.setAttributeConfig(key, map);
        -        },
        -        
        -        
        -        /**
        -         * Returns the attribute's properties.
        -         * @method getAttributeConfig
        -         * @param {String} key The attribute's name
        -         * @private
        -         * @return {object} A key-value map containing all of the
        -         * attribute's properties.
        -         */
        -        getAttributeConfig: function(key) {
        -            var configs = this._configs || {};
        -            var config = configs[key] || {};
        -            var map = {}; // returning a copy to prevent overrides
        -            
        -            for (key in config) {
        -                if ( Lang.hasOwnProperty(config, key) ) {
        -                    map[key] = config[key];
        -                }
        -            }
        -    
        -            return map;
        -        },
        -        
        -        /**
        -         * Sets or updates an Attribute instance's properties. 
        -         * @method setAttributeConfig
        -         * @param {String} key The attribute's name.
        -         * @param {Object} map A key-value map of attribute properties
        -         * @param {Boolean} init Whether or not this should become the intial config.
        -         */
        -        setAttributeConfig: function(key, map, init) {
        -            var configs = this._configs || {};
        -            map = map || {};
        -            if (!configs[key]) {
        -                map.name = key;
        -                configs[key] = new YAHOO.util.Attribute(map, this);
        -            } else {
        -                configs[key].configure(map, init);
        -            }
        -        },
        -        
        -        /**
        -         * Sets or updates an Attribute instance's properties. 
        -         * @method configureAttribute
        -         * @param {String} key The attribute's name.
        -         * @param {Object} map A key-value map of attribute properties
        -         * @param {Boolean} init Whether or not this should become the intial config.
        -         * @deprecated Use setAttributeConfig
        -         */
        -        configureAttribute: function(key, map, init) {
        -            this.setAttributeConfig(key, map, init);
        -        },
        -        
        -        /**
        -         * Resets an attribute to its intial configuration. 
        -         * @method resetAttributeConfig
        -         * @param {String} key The attribute's name.
        -         * @private
        -         */
        -        resetAttributeConfig: function(key){
        -            var configs = this._configs || {};
        -            configs[key].resetConfig();
        -        },
        -        
        -        /**
        -         * Fires the attribute's beforeChange event. 
        -         * @method fireBeforeChangeEvent
        -         * @param {String} key The attribute's name.
        -         * @param {Obj} e The event object to pass to handlers.
        -         */
        -        fireBeforeChangeEvent: function(e) {
        -            var type = 'before';
        -            type += e.type.charAt(0).toUpperCase() + e.type.substr(1) + 'Change';
        -            e.type = type;
        -            return this.fireEvent(e.type, e);
        -        },
        -        
        -        /**
        -         * Fires the attribute's change event. 
        -         * @method fireChangeEvent
        -         * @param {String} key The attribute's name.
        -         * @param {Obj} e The event object to pass to the handlers.
        -         */
        -        fireChangeEvent: function(e) {
        -            e.type += 'Change';
        -            return this.fireEvent(e.type, e);
        -        }
        -    };
        -    
        -    YAHOO.augment(YAHOO.util.AttributeProvider, YAHOO.util.EventProvider);
        -})();
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/AutoComplete.js.html b/www/extras/yui/docs/AutoComplete.js.html deleted file mode 100644 index 33a61460d..000000000 --- a/www/extras/yui/docs/AutoComplete.js.html +++ /dev/null @@ -1,2114 +0,0 @@ - - - - API: autocomplete AutoComplete.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        AutoComplete Widget  2.2.2

        -

        - Yahoo! UI Library - > autocomplete - - > AutoComplete.js (source view) -

        -
        - -
        -
        -
        - -
        -
         /**
        - * The AutoComplete control provides the front-end logic for text-entry suggestion and
        - * completion functionality.
        - *
        - * @module autocomplete
        - * @requires yahoo, dom, event, datasource
        - * @optional animation, connection
        - * @namespace YAHOO.widget
        - * @title AutoComplete Widget
        - */
        -
        -/****************************************************************************/
        -/****************************************************************************/
        -/****************************************************************************/
        -
        -/**
        - * The AutoComplete class provides the customizable functionality of a plug-and-play DHTML
        - * auto completion widget.  Some key features:
        - * <ul>
        - * <li>Navigate with up/down arrow keys and/or mouse to pick a selection</li>
        - * <li>The drop down container can "roll down" or "fly out" via configurable
        - * animation</li>
        - * <li>UI look-and-feel customizable through CSS, including container
        - * attributes, borders, position, fonts, etc</li>
        - * </ul>
        - *
        - * @class AutoComplete
        - * @constructor
        - * @param elInput {HTMLElement} DOM element reference of an input field.
        - * @param elInput {String} String ID of an input field.
        - * @param elContainer {HTMLElement} DOM element reference of an existing DIV.
        - * @param elContainer {String} String ID of an existing DIV.
        - * @param oDataSource {YAHOO.widget.DataSource} DataSource instance.
        - * @param oConfigs {Object} (optional) Object literal of configuration params.
        - */
        -YAHOO.widget.AutoComplete = function(elInput,elContainer,oDataSource,oConfigs) {
        -    if(elInput && elContainer && oDataSource) {
        -        // Validate DataSource
        -        if(oDataSource instanceof YAHOO.widget.DataSource) {
        -            this.dataSource = oDataSource;
        -        }
        -        else {
        -            YAHOO.log("Could not instantiate AutoComplete due to an invalid DataSource", "error", this.toString());
        -            return;
        -        }
        -
        -        // Validate input element
        -        if(YAHOO.util.Dom.inDocument(elInput)) {
        -            if(YAHOO.lang.isString(elInput)) {
        -                    this._sName = "instance" + YAHOO.widget.AutoComplete._nIndex + " " + elInput;
        -                    this._oTextbox = document.getElementById(elInput);
        -            }
        -            else {
        -                this._sName = (elInput.id) ?
        -                    "instance" + YAHOO.widget.AutoComplete._nIndex + " " + elInput.id:
        -                    "instance" + YAHOO.widget.AutoComplete._nIndex;
        -                this._oTextbox = elInput;
        -            }
        -        }
        -        else {
        -            YAHOO.log("Could not instantiate AutoComplete due to an invalid input element", "error", this.toString());
        -            return;
        -        }
        -
        -        // Validate container element
        -        if(YAHOO.util.Dom.inDocument(elContainer)) {
        -            if(YAHOO.lang.isString(elContainer)) {
        -                    this._oContainer = document.getElementById(elContainer);
        -            }
        -            else {
        -                this._oContainer = elContainer;
        -            }
        -            if(this._oContainer.style.display == "none") {
        -                YAHOO.log("The container may not display properly if display is set to \"none\" in CSS", "warn", this.toString());
        -            }
        -        }
        -        else {
        -            YAHOO.log("Could not instantiate AutoComplete due to an invalid container element", "error", this.toString());
        -            return;
        -        }
        -
        -        // Set any config params passed in to override defaults
        -        if(oConfigs && (oConfigs.constructor == Object)) {
        -            for(var sConfig in oConfigs) {
        -                if(sConfig) {
        -                    this[sConfig] = oConfigs[sConfig];
        -                }
        -            }
        -        }
        -
        -        // Initialization sequence
        -        this._initContainer();
        -        this._initProps();
        -        this._initList();
        -        this._initContainerHelpers();
        -
        -        // Set up events
        -        var oSelf = this;
        -        var oTextbox = this._oTextbox;
        -        // Events are actually for the content module within the container
        -        var oContent = this._oContainer._oContent;
        -
        -        // Dom events
        -        YAHOO.util.Event.addListener(oTextbox,"keyup",oSelf._onTextboxKeyUp,oSelf);
        -        YAHOO.util.Event.addListener(oTextbox,"keydown",oSelf._onTextboxKeyDown,oSelf);
        -        YAHOO.util.Event.addListener(oTextbox,"focus",oSelf._onTextboxFocus,oSelf);
        -        YAHOO.util.Event.addListener(oTextbox,"blur",oSelf._onTextboxBlur,oSelf);
        -        YAHOO.util.Event.addListener(oContent,"mouseover",oSelf._onContainerMouseover,oSelf);
        -        YAHOO.util.Event.addListener(oContent,"mouseout",oSelf._onContainerMouseout,oSelf);
        -        YAHOO.util.Event.addListener(oContent,"scroll",oSelf._onContainerScroll,oSelf);
        -        YAHOO.util.Event.addListener(oContent,"resize",oSelf._onContainerResize,oSelf);
        -        if(oTextbox.form) {
        -            YAHOO.util.Event.addListener(oTextbox.form,"submit",oSelf._onFormSubmit,oSelf);
        -        }
        -        YAHOO.util.Event.addListener(oTextbox,"keypress",oSelf._onTextboxKeyPress,oSelf);
        -
        -        // Custom events
        -        this.textboxFocusEvent = new YAHOO.util.CustomEvent("textboxFocus", this);
        -        this.textboxKeyEvent = new YAHOO.util.CustomEvent("textboxKey", this);
        -        this.dataRequestEvent = new YAHOO.util.CustomEvent("dataRequest", this);
        -        this.dataReturnEvent = new YAHOO.util.CustomEvent("dataReturn", this);
        -        this.dataErrorEvent = new YAHOO.util.CustomEvent("dataError", this);
        -        this.containerExpandEvent = new YAHOO.util.CustomEvent("containerExpand", this);
        -        this.typeAheadEvent = new YAHOO.util.CustomEvent("typeAhead", this);
        -        this.itemMouseOverEvent = new YAHOO.util.CustomEvent("itemMouseOver", this);
        -        this.itemMouseOutEvent = new YAHOO.util.CustomEvent("itemMouseOut", this);
        -        this.itemArrowToEvent = new YAHOO.util.CustomEvent("itemArrowTo", this);
        -        this.itemArrowFromEvent = new YAHOO.util.CustomEvent("itemArrowFrom", this);
        -        this.itemSelectEvent = new YAHOO.util.CustomEvent("itemSelect", this);
        -        this.unmatchedItemSelectEvent = new YAHOO.util.CustomEvent("unmatchedItemSelect", this);
        -        this.selectionEnforceEvent = new YAHOO.util.CustomEvent("selectionEnforce", this);
        -        this.containerCollapseEvent = new YAHOO.util.CustomEvent("containerCollapse", this);
        -        this.textboxBlurEvent = new YAHOO.util.CustomEvent("textboxBlur", this);
        -        
        -        // Finish up
        -        oTextbox.setAttribute("autocomplete","off");
        -        YAHOO.widget.AutoComplete._nIndex++;
        -        YAHOO.log("AutoComplete initialized","info",this.toString());
        -    }
        -    // Required arguments were not found
        -    else {
        -        YAHOO.log("Could not instantiate AutoComplete due invalid arguments", "error", this.toString());
        -    }
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * The DataSource object that encapsulates the data used for auto completion.
        - * This object should be an inherited object from YAHOO.widget.DataSource.
        - *
        - * @property dataSource
        - * @type YAHOO.widget.DataSource
        - */
        -YAHOO.widget.AutoComplete.prototype.dataSource = null;
        -
        -/**
        - * Number of characters that must be entered before querying for results. A negative value
        - * effectively turns off the widget. A value of 0 allows queries of null or empty string
        - * values.
        - *
        - * @property minQueryLength
        - * @type Number
        - * @default 1
        - */
        -YAHOO.widget.AutoComplete.prototype.minQueryLength = 1;
        -
        -/**
        - * Maximum number of results to display in results container.
        - *
        - * @property maxResultsDisplayed
        - * @type Number
        - * @default 10
        - */
        -YAHOO.widget.AutoComplete.prototype.maxResultsDisplayed = 10;
        -
        -/**
        - * Number of seconds to delay before submitting a query request.  If a query
        - * request is received before a previous one has completed its delay, the
        - * previous request is cancelled and the new request is set to the delay.
        - *
        - * @property queryDelay
        - * @type Number
        - * @default 0.5
        - */
        -YAHOO.widget.AutoComplete.prototype.queryDelay = 0.5;
        -
        -/**
        - * Class name of a highlighted item within results container.
        - *
        - * @property highlightClassName
        - * @type String
        - * @default "yui-ac-highlight"
        - */
        -YAHOO.widget.AutoComplete.prototype.highlightClassName = "yui-ac-highlight";
        -
        -/**
        - * Class name of a pre-highlighted item within results container.
        - *
        - * @property prehighlightClassName
        - * @type String
        - */
        -YAHOO.widget.AutoComplete.prototype.prehighlightClassName = null;
        -
        -/**
        - * Query delimiter. A single character separator for multiple delimited
        - * selections. Multiple delimiter characteres may be defined as an array of
        - * strings. A null value or empty string indicates that query results cannot
        - * be delimited. This feature is not recommended if you need forceSelection to
        - * be true.
        - *
        - * @property delimChar
        - * @type String | String[]
        - */
        -YAHOO.widget.AutoComplete.prototype.delimChar = null;
        -
        -/**
        - * Whether or not the first item in results container should be automatically highlighted
        - * on expand.
        - *
        - * @property autoHighlight
        - * @type Boolean
        - * @default true
        - */
        -YAHOO.widget.AutoComplete.prototype.autoHighlight = true;
        -
        -/**
        - * Whether or not the input field should be automatically updated
        - * with the first query result as the user types, auto-selecting the substring
        - * that the user has not typed.
        - *
        - * @property typeAhead
        - * @type Boolean
        - * @default false
        - */
        -YAHOO.widget.AutoComplete.prototype.typeAhead = false;
        -
        -/**
        - * Whether or not to animate the expansion/collapse of the results container in the
        - * horizontal direction.
        - *
        - * @property animHoriz
        - * @type Boolean
        - * @default false
        - */
        -YAHOO.widget.AutoComplete.prototype.animHoriz = false;
        -
        -/**
        - * Whether or not to animate the expansion/collapse of the results container in the
        - * vertical direction.
        - *
        - * @property animVert
        - * @type Boolean
        - * @default true
        - */
        -YAHOO.widget.AutoComplete.prototype.animVert = true;
        -
        -/**
        - * Speed of container expand/collapse animation, in seconds..
        - *
        - * @property animSpeed
        - * @type Number
        - * @default 0.3
        - */
        -YAHOO.widget.AutoComplete.prototype.animSpeed = 0.3;
        -
        -/**
        - * Whether or not to force the user's selection to match one of the query
        - * results. Enabling this feature essentially transforms the input field into a
        - * &lt;select&gt; field. This feature is not recommended with delimiter character(s)
        - * defined.
        - *
        - * @property forceSelection
        - * @type Boolean
        - * @default false
        - */
        -YAHOO.widget.AutoComplete.prototype.forceSelection = false;
        -
        -/**
        - * Whether or not to allow browsers to cache user-typed input in the input
        - * field. Disabling this feature will prevent the widget from setting the
        - * autocomplete="off" on the input field. When autocomplete="off"
        - * and users click the back button after form submission, user-typed input can
        - * be prefilled by the browser from its cache. This caching of user input may
        - * not be desired for sensitive data, such as credit card numbers, in which
        - * case, implementers should consider setting allowBrowserAutocomplete to false.
        - *
        - * @property allowBrowserAutocomplete
        - * @type Boolean
        - * @default true
        - */
        -YAHOO.widget.AutoComplete.prototype.allowBrowserAutocomplete = true;
        -
        -/**
        - * Whether or not the results container should always be displayed.
        - * Enabling this feature displays the container when the widget is instantiated
        - * and prevents the toggling of the container to a collapsed state.
        - *
        - * @property alwaysShowContainer
        - * @type Boolean
        - * @default false
        - */
        -YAHOO.widget.AutoComplete.prototype.alwaysShowContainer = false;
        -
        -/**
        - * Whether or not to use an iFrame to layer over Windows form elements in
        - * IE. Set to true only when the results container will be on top of a
        - * &lt;select&gt; field in IE and thus exposed to the IE z-index bug (i.e.,
        - * 5.5 < IE < 7).
        - *
        - * @property useIFrame
        - * @type Boolean
        - * @default false
        - */
        -YAHOO.widget.AutoComplete.prototype.useIFrame = false;
        -
        -/**
        - * Whether or not the results container should have a shadow.
        - *
        - * @property useShadow
        - * @type Boolean
        - * @default false
        - */
        -YAHOO.widget.AutoComplete.prototype.useShadow = false;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        - /**
        - * Public accessor to the unique name of the AutoComplete instance.
        - *
        - * @method toString
        - * @return {String} Unique name of the AutoComplete instance.
        - */
        -YAHOO.widget.AutoComplete.prototype.toString = function() {
        -    return "AutoComplete " + this._sName;
        -};
        -
        - /**
        - * Returns true if container is in an expanded state, false otherwise.
        - *
        - * @method isContainerOpen
        - * @return {Boolean} Returns true if container is in an expanded state, false otherwise.
        - */
        -YAHOO.widget.AutoComplete.prototype.isContainerOpen = function() {
        -    return this._bContainerOpen;
        -};
        -
        -/**
        - * Public accessor to the internal array of DOM &lt;li&gt; elements that
        - * display query results within the results container.
        - *
        - * @method getListItems
        - * @return {HTMLElement[]} Array of &lt;li&gt; elements within the results container.
        - */
        -YAHOO.widget.AutoComplete.prototype.getListItems = function() {
        -    return this._aListItems;
        -};
        -
        -/**
        - * Public accessor to the data held in an &lt;li&gt; element of the
        - * results container.
        - *
        - * @method getListItemData
        - * @return {Object | Object[]} Object or array of result data or null
        - */
        -YAHOO.widget.AutoComplete.prototype.getListItemData = function(oListItem) {
        -    if(oListItem._oResultData) {
        -        return oListItem._oResultData;
        -    }
        -    else {
        -        return false;
        -    }
        -};
        -
        -/**
        - * Sets HTML markup for the results container header. This markup will be
        - * inserted within a &lt;div&gt; tag with a class of "yui-ac-hd".
        - *
        - * @method setHeader
        - * @param sHeader {String} HTML markup for results container header.
        - */
        -YAHOO.widget.AutoComplete.prototype.setHeader = function(sHeader) {
        -    if(sHeader) {
        -        if(this._oContainer._oContent._oHeader) {
        -            this._oContainer._oContent._oHeader.innerHTML = sHeader;
        -            this._oContainer._oContent._oHeader.style.display = "block";
        -        }
        -    }
        -    else {
        -        this._oContainer._oContent._oHeader.innerHTML = "";
        -        this._oContainer._oContent._oHeader.style.display = "none";
        -    }
        -};
        -
        -/**
        - * Sets HTML markup for the results container footer. This markup will be
        - * inserted within a &lt;div&gt; tag with a class of "yui-ac-ft".
        - *
        - * @method setFooter
        - * @param sFooter {String} HTML markup for results container footer.
        - */
        -YAHOO.widget.AutoComplete.prototype.setFooter = function(sFooter) {
        -    if(sFooter) {
        -        if(this._oContainer._oContent._oFooter) {
        -            this._oContainer._oContent._oFooter.innerHTML = sFooter;
        -            this._oContainer._oContent._oFooter.style.display = "block";
        -        }
        -    }
        -    else {
        -        this._oContainer._oContent._oFooter.innerHTML = "";
        -        this._oContainer._oContent._oFooter.style.display = "none";
        -    }
        -};
        -
        -/**
        - * Sets HTML markup for the results container body. This markup will be
        - * inserted within a &lt;div&gt; tag with a class of "yui-ac-bd".
        - *
        - * @method setBody
        - * @param sBody {String} HTML markup for results container body.
        - */
        -YAHOO.widget.AutoComplete.prototype.setBody = function(sBody) {
        -    if(sBody) {
        -        if(this._oContainer._oContent._oBody) {
        -            this._oContainer._oContent._oBody.innerHTML = sBody;
        -            this._oContainer._oContent._oBody.style.display = "block";
        -            this._oContainer._oContent.style.display = "block";
        -        }
        -    }
        -    else {
        -        this._oContainer._oContent._oBody.innerHTML = "";
        -        this._oContainer._oContent.style.display = "none";
        -    }
        -    this._maxResultsDisplayed = 0;
        -};
        -
        -/**
        - * Overridable method that converts a result item object into HTML markup
        - * for display. Return data values are accessible via the oResultItem object,
        - * and the key return value will always be oResultItem[0]. Markup will be
        - * displayed within &lt;li&gt; element tags in the container.
        - *
        - * @method formatResult
        - * @param oResultItem {Object} Result item representing one query result. Data is held in an array.
        - * @param sQuery {String} The current query string.
        - * @return {String} HTML markup of formatted result data.
        - */
        -YAHOO.widget.AutoComplete.prototype.formatResult = function(oResultItem, sQuery) {
        -    var sResult = oResultItem[0];
        -    if(sResult) {
        -        return sResult;
        -    }
        -    else {
        -        return "";
        -    }
        -};
        -
        -/**
        - * Overridable method called before container expands allows implementers to access data
        - * and DOM elements.
        - *
        - * @method doBeforeExpandContainer
        - * @return {Boolean} Return true to continue expanding container, false to cancel the expand.
        - */
        -YAHOO.widget.AutoComplete.prototype.doBeforeExpandContainer = function(oResultItem, sQuery) {
        -    return true;
        -};
        -
        -/**
        - * Makes query request to the DataSource.
        - *
        - * @method sendQuery
        - * @param sQuery {String} Query string.
        - */
        -YAHOO.widget.AutoComplete.prototype.sendQuery = function(sQuery) {
        -    this._sendQuery(sQuery);
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public events
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Fired when the input field receives focus.
        - *
        - * @event textboxFocusEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - */
        -YAHOO.widget.AutoComplete.prototype.textboxFocusEvent = null;
        -
        -/**
        - * Fired when the input field receives key input.
        - *
        - * @event textboxKeyEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @param nKeycode {Number} The keycode number.
        - */
        -YAHOO.widget.AutoComplete.prototype.textboxKeyEvent = null;
        -
        -/**
        - * Fired when the AutoComplete instance makes a query to the DataSource.
        - * 
        - * @event dataRequestEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @param sQuery {String} The query string.
        - */
        -YAHOO.widget.AutoComplete.prototype.dataRequestEvent = null;
        -
        -/**
        - * Fired when the AutoComplete instance receives query results from the data
        - * source.
        - *
        - * @event dataReturnEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @param sQuery {String} The query string.
        - * @param aResults {Object[]} Results array.
        - */
        -YAHOO.widget.AutoComplete.prototype.dataReturnEvent = null;
        -
        -/**
        - * Fired when the AutoComplete instance does not receive query results from the
        - * DataSource due to an error.
        - *
        - * @event dataErrorEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @param sQuery {String} The query string.
        - */
        -YAHOO.widget.AutoComplete.prototype.dataErrorEvent = null;
        -
        -/**
        - * Fired when the results container is expanded.
        - *
        - * @event containerExpandEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - */
        -YAHOO.widget.AutoComplete.prototype.containerExpandEvent = null;
        -
        -/**
        - * Fired when the input field has been prefilled by the type-ahead
        - * feature. 
        - *
        - * @event typeAheadEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @param sQuery {String} The query string.
        - * @param sPrefill {String} The prefill string.
        - */
        -YAHOO.widget.AutoComplete.prototype.typeAheadEvent = null;
        -
        -/**
        - * Fired when result item has been moused over.
        - *
        - * @event itemMouseOverEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @param elItem {HTMLElement} The &lt;li&gt element item moused to.
        - */
        -YAHOO.widget.AutoComplete.prototype.itemMouseOverEvent = null;
        -
        -/**
        - * Fired when result item has been moused out.
        - *
        - * @event itemMouseOutEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @param elItem {HTMLElement} The &lt;li&gt; element item moused from.
        - */
        -YAHOO.widget.AutoComplete.prototype.itemMouseOutEvent = null;
        -
        -/**
        - * Fired when result item has been arrowed to. 
        - *
        - * @event itemArrowToEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @param elItem {HTMLElement} The &lt;li&gt; element item arrowed to.
        - */
        -YAHOO.widget.AutoComplete.prototype.itemArrowToEvent = null;
        -
        -/**
        - * Fired when result item has been arrowed away from.
        - *
        - * @event itemArrowFromEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @param elItem {HTMLElement} The &lt;li&gt; element item arrowed from.
        - */
        -YAHOO.widget.AutoComplete.prototype.itemArrowFromEvent = null;
        -
        -/**
        - * Fired when an item is selected via mouse click, ENTER key, or TAB key.
        - *
        - * @event itemSelectEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @param elItem {HTMLElement} The selected &lt;li&gt; element item.
        - * @param oData {Object} The data returned for the item, either as an object,
        - * or mapped from the schema into an array.
        - */
        -YAHOO.widget.AutoComplete.prototype.itemSelectEvent = null;
        -
        -/**
        - * Fired when a user selection does not match any of the displayed result items.
        - * Note that this event may not behave as expected when delimiter characters
        - * have been defined. 
        - *
        - * @event unmatchedItemSelectEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @param sQuery {String} The user-typed query string.
        - */
        -YAHOO.widget.AutoComplete.prototype.unmatchedItemSelectEvent = null;
        -
        -/**
        - * Fired if forceSelection is enabled and the user's input has been cleared
        - * because it did not match one of the returned query results.
        - *
        - * @event selectionEnforceEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - */
        -YAHOO.widget.AutoComplete.prototype.selectionEnforceEvent = null;
        -
        -/**
        - * Fired when the results container is collapsed.
        - *
        - * @event containerCollapseEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - */
        -YAHOO.widget.AutoComplete.prototype.containerCollapseEvent = null;
        -
        -/**
        - * Fired when the input field loses focus.
        - *
        - * @event textboxBlurEvent
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - */
        -YAHOO.widget.AutoComplete.prototype.textboxBlurEvent = null;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Internal class variable to index multiple AutoComplete instances.
        - *
        - * @property _nIndex
        - * @type Number
        - * @default 0
        - * @private
        - */
        -YAHOO.widget.AutoComplete._nIndex = 0;
        -
        -/**
        - * Name of AutoComplete instance.
        - *
        - * @property _sName
        - * @type String
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._sName = null;
        -
        -/**
        - * Text input field DOM element.
        - *
        - * @property _oTextbox
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._oTextbox = null;
        -
        -/**
        - * Whether or not the input field is currently in focus. If query results come back
        - * but the user has already moved on, do not proceed with auto complete behavior.
        - *
        - * @property _bFocused
        - * @type Boolean
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._bFocused = true;
        -
        -/**
        - * Animation instance for container expand/collapse.
        - *
        - * @property _oAnim
        - * @type Boolean
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._oAnim = null;
        -
        -/**
        - * Container DOM element.
        - *
        - * @property _oContainer
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._oContainer = null;
        -
        -/**
        - * Whether or not the results container is currently open.
        - *
        - * @property _bContainerOpen
        - * @type Boolean
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._bContainerOpen = false;
        -
        -/**
        - * Whether or not the mouse is currently over the results
        - * container. This is necessary in order to prevent clicks on container items
        - * from being text input field blur events.
        - *
        - * @property _bOverContainer
        - * @type Boolean
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._bOverContainer = false;
        -
        -/**
        - * Array of &lt;li&gt; elements references that contain query results within the
        - * results container.
        - *
        - * @property _aListItems
        - * @type HTMLElement[]
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._aListItems = null;
        -
        -/**
        - * Number of &lt;li&gt; elements currently displayed in results container.
        - *
        - * @property _nDisplayedItems
        - * @type Number
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._nDisplayedItems = 0;
        -
        -/**
        - * Internal count of &lt;li&gt; elements displayed and hidden in results container.
        - *
        - * @property _maxResultsDisplayed
        - * @type Number
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._maxResultsDisplayed = 0;
        -
        -/**
        - * Current query string
        - *
        - * @property _sCurQuery
        - * @type String
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._sCurQuery = null;
        -
        -/**
        - * Past queries this session (for saving delimited queries).
        - *
        - * @property _sSavedQuery
        - * @type String
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._sSavedQuery = null;
        -
        -/**
        - * Pointer to the currently highlighted &lt;li&gt; element in the container.
        - *
        - * @property _oCurItem
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._oCurItem = null;
        -
        -/**
        - * Whether or not an item has been selected since the container was populated
        - * with results. Reset to false by _populateList, and set to true when item is
        - * selected.
        - *
        - * @property _bItemSelected
        - * @type Boolean
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._bItemSelected = false;
        -
        -/**
        - * Key code of the last key pressed in textbox.
        - *
        - * @property _nKeyCode
        - * @type Number
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._nKeyCode = null;
        -
        -/**
        - * Delay timeout ID.
        - *
        - * @property _nDelayID
        - * @type Number
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._nDelayID = -1;
        -
        -/**
        - * Src to iFrame used when useIFrame = true. Supports implementations over SSL
        - * as well.
        - *
        - * @property _iFrameSrc
        - * @type String
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._iFrameSrc = "javascript:false;";
        -
        -/**
        - * For users typing via certain IMEs, queries must be triggered by intervals,
        - * since key events yet supported across all browsers for all IMEs.
        - *
        - * @property _queryInterval
        - * @type Object
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._queryInterval = null;
        -
        -/**
        - * Internal tracker to last known textbox value, used to determine whether or not
        - * to trigger a query via interval for certain IME users.
        - *
        - * @event _sLastTextboxValue
        - * @type String
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._sLastTextboxValue = null;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Updates and validates latest public config properties.
        - *
        - * @method __initProps
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._initProps = function() {
        -    // Correct any invalid values
        -    var minQueryLength = this.minQueryLength;
        -    if(!YAHOO.lang.isNumber(minQueryLength) || (minQueryLength < 1)) {
        -        minQueryLength = 1;
        -    }
        -    var maxResultsDisplayed = this.maxResultsDisplayed;
        -    if(!YAHOO.lang.isNumber(maxResultsDisplayed) || (maxResultsDisplayed < 1)) {
        -        maxResultsDisplayed = 10;
        -    }
        -    var queryDelay = this.queryDelay;
        -    if(!YAHOO.lang.isNumber(queryDelay) || (queryDelay < 0)) {
        -        queryDelay = 0.5;
        -    }
        -    var delimChar = this.delimChar;
        -    if(YAHOO.lang.isString(delimChar)) {
        -        delimChar = [delimChar];
        -    }
        -    else if(!YAHOO.lang.isArray(delimChar)) {
        -        delimChar = null;
        -    }
        -    var animSpeed = this.animSpeed;
        -    if((this.animHoriz || this.animVert) && YAHOO.util.Anim) {
        -        if(!YAHOO.lang.isNumber(animSpeed) || (animSpeed < 0)) {
        -            animSpeed = 0.3;
        -        }
        -        if(!this._oAnim ) {
        -            oAnim = new YAHOO.util.Anim(this._oContainer._oContent, {}, animSpeed);
        -            this._oAnim = oAnim;
        -        }
        -        else {
        -            this._oAnim.duration = animSpeed;
        -        }
        -    }
        -    if(this.forceSelection && delimChar) {
        -        YAHOO.log("The forceSelection feature has been enabled with delimChar defined.","warn", this.toString());
        -    }
        -};
        -
        -/**
        - * Initializes the results container helpers if they are enabled and do
        - * not exist
        - *
        - * @method _initContainerHelpers
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._initContainerHelpers = function() {
        -    if(this.useShadow && !this._oContainer._oShadow) {
        -        var oShadow = document.createElement("div");
        -        oShadow.className = "yui-ac-shadow";
        -        this._oContainer._oShadow = this._oContainer.appendChild(oShadow);
        -    }
        -    if(this.useIFrame && !this._oContainer._oIFrame) {
        -        var oIFrame = document.createElement("iframe");
        -        oIFrame.src = this._iFrameSrc;
        -        oIFrame.frameBorder = 0;
        -        oIFrame.scrolling = "no";
        -        oIFrame.style.position = "absolute";
        -        oIFrame.style.width = "100%";
        -        oIFrame.style.height = "100%";
        -        oIFrame.tabIndex = -1;
        -        this._oContainer._oIFrame = this._oContainer.appendChild(oIFrame);
        -    }
        -};
        -
        -/**
        - * Initializes the results container once at object creation
        - *
        - * @method _initContainer
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._initContainer = function() {
        -    if(!this._oContainer._oContent) {
        -        // The oContent div helps size the iframe and shadow properly
        -        var oContent = document.createElement("div");
        -        oContent.className = "yui-ac-content";
        -        oContent.style.display = "none";
        -        this._oContainer._oContent = this._oContainer.appendChild(oContent);
        -
        -        var oHeader = document.createElement("div");
        -        oHeader.className = "yui-ac-hd";
        -        oHeader.style.display = "none";
        -        this._oContainer._oContent._oHeader = this._oContainer._oContent.appendChild(oHeader);
        -
        -        var oBody = document.createElement("div");
        -        oBody.className = "yui-ac-bd";
        -        this._oContainer._oContent._oBody = this._oContainer._oContent.appendChild(oBody);
        -
        -        var oFooter = document.createElement("div");
        -        oFooter.className = "yui-ac-ft";
        -        oFooter.style.display = "none";
        -        this._oContainer._oContent._oFooter = this._oContainer._oContent.appendChild(oFooter);
        -    }
        -    else {
        -        YAHOO.log("Could not initialize the container","warn",this.toString());
        -    }
        -};
        -
        -/**
        - * Clears out contents of container body and creates up to
        - * YAHOO.widget.AutoComplete#maxResultsDisplayed &lt;li&gt; elements in an
        - * &lt;ul&gt; element.
        - *
        - * @method _initList
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._initList = function() {
        -    this._aListItems = [];
        -    while(this._oContainer._oContent._oBody.hasChildNodes()) {
        -        var oldListItems = this.getListItems();
        -        if(oldListItems) {
        -            for(var oldi = oldListItems.length-1; oldi >= 0; oldi--) {
        -                oldListItems[oldi] = null;
        -            }
        -        }
        -        this._oContainer._oContent._oBody.innerHTML = "";
        -    }
        -
        -    var oList = document.createElement("ul");
        -    oList = this._oContainer._oContent._oBody.appendChild(oList);
        -    for(var i=0; i<this.maxResultsDisplayed; i++) {
        -        var oItem = document.createElement("li");
        -        oItem = oList.appendChild(oItem);
        -        this._aListItems[i] = oItem;
        -        this._initListItem(oItem, i);
        -    }
        -    this._maxResultsDisplayed = this.maxResultsDisplayed;
        -};
        -
        -/**
        - * Initializes each &lt;li&gt; element in the container list.
        - *
        - * @method _initListItem
        - * @param oItem {HTMLElement} The &lt;li&gt; DOM element.
        - * @param nItemIndex {Number} The index of the element.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._initListItem = function(oItem, nItemIndex) {
        -    var oSelf = this;
        -    oItem.style.display = "none";
        -    oItem._nItemIndex = nItemIndex;
        -
        -    oItem.mouseover = oItem.mouseout = oItem.onclick = null;
        -    YAHOO.util.Event.addListener(oItem,"mouseover",oSelf._onItemMouseover,oSelf);
        -    YAHOO.util.Event.addListener(oItem,"mouseout",oSelf._onItemMouseout,oSelf);
        -    YAHOO.util.Event.addListener(oItem,"click",oSelf._onItemMouseclick,oSelf);
        -};
        -
        -/**
        - * Enables interval detection for  Korean IME support.
        - *
        - * @method _onIMEDetected
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._onIMEDetected = function(oSelf) {
        -    oSelf._enableIntervalDetection();
        -};
        -
        -/**
        - * Enables query triggers based on text input detection by intervals (rather
        - * than by key events).
        - *
        - * @method _enableIntervalDetection
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._enableIntervalDetection = function() {
        -    var currValue = this._oTextbox.value;
        -    var lastValue = this._sLastTextboxValue;
        -    if(currValue != lastValue) {
        -        this._sLastTextboxValue = currValue;
        -        this._sendQuery(currValue);
        -    }
        -};
        -
        -
        -/**
        - * Cancels text input detection by intervals.
        - *
        - * @method _cancelIntervalDetection
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._cancelIntervalDetection = function(oSelf) {
        -    if(oSelf._queryInterval) {
        -        clearInterval(oSelf._queryInterval);
        -    }
        -};
        -
        -
        -/**
        - * Whether or not key is functional or should be ignored. Note that the right
        - * arrow key is NOT an ignored key since it triggers queries for certain intl
        - * charsets.
        - *
        - * @method _isIgnoreKey
        - * @param nKeycode {Number} Code of key pressed.
        - * @return {Boolean} True if key should be ignored, false otherwise.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._isIgnoreKey = function(nKeyCode) {
        -    if((nKeyCode == 9) || (nKeyCode == 13)  || // tab, enter
        -            (nKeyCode == 16) || (nKeyCode == 17) || // shift, ctl
        -            (nKeyCode >= 18 && nKeyCode <= 20) || // alt,pause/break,caps lock
        -            (nKeyCode == 27) || // esc
        -            (nKeyCode >= 33 && nKeyCode <= 35) || // page up,page down,end
        -            (nKeyCode >= 36 && nKeyCode <= 38) || // home,left,up
        -            (nKeyCode == 40) || // down
        -            (nKeyCode >= 44 && nKeyCode <= 45)) { // print screen,insert
        -        return true;
        -    }
        -    return false;
        -};
        -
        -/**
        - * Makes query request to the DataSource.
        - *
        - * @method _sendQuery
        - * @param sQuery {String} Query string.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._sendQuery = function(sQuery) {
        -    // Widget has been effectively turned off
        -    if(this.minQueryLength == -1) {
        -        this._toggleContainer(false);
        -        return;
        -    }
        -    // Delimiter has been enabled
        -    var aDelimChar = (this.delimChar) ? this.delimChar : null;
        -    if(aDelimChar) {
        -        // Loop through all possible delimiters and find the latest one
        -        // A " " may be a false positive if they are defined as delimiters AND
        -        // are used to separate delimited queries
        -        var nDelimIndex = -1;
        -        for(var i = aDelimChar.length-1; i >= 0; i--) {
        -            var nNewIndex = sQuery.lastIndexOf(aDelimChar[i]);
        -            if(nNewIndex > nDelimIndex) {
        -                nDelimIndex = nNewIndex;
        -            }
        -        }
        -        // If we think the last delimiter is a space (" "), make sure it is NOT
        -        // a false positive by also checking the char directly before it
        -        if(aDelimChar[i] == " ") {
        -            for (var j = aDelimChar.length-1; j >= 0; j--) {
        -                if(sQuery[nDelimIndex - 1] == aDelimChar[j]) {
        -                    nDelimIndex--;
        -                    break;
        -                }
        -            }
        -        }
        -        // A delimiter has been found so extract the latest query
        -        if(nDelimIndex > -1) {
        -            var nQueryStart = nDelimIndex + 1;
        -            // Trim any white space from the beginning...
        -            while(sQuery.charAt(nQueryStart) == " ") {
        -                nQueryStart += 1;
        -            }
        -            // ...and save the rest of the string for later
        -            this._sSavedQuery = sQuery.substring(0,nQueryStart);
        -            // Here is the query itself
        -            sQuery = sQuery.substr(nQueryStart);
        -        }
        -        else if(sQuery.indexOf(this._sSavedQuery) < 0){
        -            this._sSavedQuery = null;
        -        }
        -    }
        -
        -    // Don't search queries that are too short
        -    if(sQuery && (sQuery.length < this.minQueryLength) || (!sQuery && this.minQueryLength > 0)) {
        -        if(this._nDelayID != -1) {
        -            clearTimeout(this._nDelayID);
        -        }
        -        this._toggleContainer(false);
        -        return;
        -    }
        -
        -    sQuery = encodeURIComponent(sQuery);
        -    this._nDelayID = -1;    // Reset timeout ID because request has been made
        -    this.dataRequestEvent.fire(this, sQuery);
        -    this.dataSource.getResults(this._populateList, sQuery, this);
        -};
        -
        -/**
        - * Populates the array of &lt;li&gt; elements in the container with query
        - * results. This method is passed to YAHOO.widget.DataSource#getResults as a
        - * callback function so results from the DataSource instance are returned to the
        - * AutoComplete instance.
        - *
        - * @method _populateList
        - * @param sQuery {String} The query string.
        - * @param aResults {Object[]} An array of query result objects from the DataSource.
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._populateList = function(sQuery, aResults, oSelf) {
        -    if(aResults === null) {
        -        oSelf.dataErrorEvent.fire(oSelf, sQuery);
        -    }
        -    if(!oSelf._bFocused || !aResults) {
        -        return;
        -    }
        -
        -    var isOpera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1);
        -    var contentStyle = oSelf._oContainer._oContent.style;
        -    contentStyle.width = (!isOpera) ? null : "";
        -    contentStyle.height = (!isOpera) ? null : "";
        -
        -    var sCurQuery = decodeURIComponent(sQuery);
        -    oSelf._sCurQuery = sCurQuery;
        -    oSelf._bItemSelected = false;
        -
        -    if(oSelf._maxResultsDisplayed != oSelf.maxResultsDisplayed) {
        -        oSelf._initList();
        -    }
        -
        -    var nItems = Math.min(aResults.length,oSelf.maxResultsDisplayed);
        -    oSelf._nDisplayedItems = nItems;
        -    if(nItems > 0) {
        -        oSelf._initContainerHelpers();
        -        var aItems = oSelf._aListItems;
        -
        -        // Fill items with data
        -        for(var i = nItems-1; i >= 0; i--) {
        -            var oItemi = aItems[i];
        -            var oResultItemi = aResults[i];
        -            oItemi.innerHTML = oSelf.formatResult(oResultItemi, sCurQuery);
        -            oItemi.style.display = "list-item";
        -            oItemi._sResultKey = oResultItemi[0];
        -            oItemi._oResultData = oResultItemi;
        -
        -        }
        -
        -        // Empty out remaining items if any
        -        for(var j = aItems.length-1; j >= nItems ; j--) {
        -            var oItemj = aItems[j];
        -            oItemj.innerHTML = null;
        -            oItemj.style.display = "none";
        -            oItemj._sResultKey = null;
        -            oItemj._oResultData = null;
        -        }
        -
        -        if(oSelf.autoHighlight) {
        -            // Go to the first item
        -            var oFirstItem = aItems[0];
        -            oSelf._toggleHighlight(oFirstItem,"to");
        -            oSelf.itemArrowToEvent.fire(oSelf, oFirstItem);
        -            oSelf._typeAhead(oFirstItem,sQuery);
        -        }
        -        else {
        -            oSelf._oCurItem = null;
        -        }
        -
        -        // Expand the container
        -        var ok = oSelf.doBeforeExpandContainer(oSelf._oTextbox, oSelf._oContainer, sQuery, aResults);
        -        oSelf._toggleContainer(ok);
        -    }
        -    else {
        -        oSelf._toggleContainer(false);
        -    }
        -    oSelf.dataReturnEvent.fire(oSelf, sQuery, aResults);
        -};
        -
        -/**
        - * When forceSelection is true and the user attempts
        - * leave the text input box without selecting an item from the query results,
        - * the user selection is cleared.
        - *
        - * @method _clearSelection
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._clearSelection = function() {
        -    var sValue = this._oTextbox.value;
        -    var sChar = (this.delimChar) ? this.delimChar[0] : null;
        -    var nIndex = (sChar) ? sValue.lastIndexOf(sChar, sValue.length-2) : -1;
        -    if(nIndex > -1) {
        -        this._oTextbox.value = sValue.substring(0,nIndex);
        -    }
        -    else {
        -         this._oTextbox.value = "";
        -    }
        -    this._sSavedQuery = this._oTextbox.value;
        -
        -    // Fire custom event
        -    this.selectionEnforceEvent.fire(this);
        -};
        -
        -/**
        - * Whether or not user-typed value in the text input box matches any of the
        - * query results.
        - *
        - * @method _textMatchesOption
        - * @return {Boolean} True if user-input text matches a result, false otherwise.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._textMatchesOption = function() {
        -    var foundMatch = false;
        -
        -    for(var i = this._nDisplayedItems-1; i >= 0 ; i--) {
        -        var oItem = this._aListItems[i];
        -        var sMatch = oItem._sResultKey.toLowerCase();
        -        if(sMatch == this._sCurQuery.toLowerCase()) {
        -            foundMatch = true;
        -            break;
        -        }
        -    }
        -    return(foundMatch);
        -};
        -
        -/**
        - * Updates in the text input box with the first query result as the user types,
        - * selecting the substring that the user has not typed.
        - *
        - * @method _typeAhead
        - * @param oItem {HTMLElement} The &lt;li&gt; element item whose data populates the input field.
        - * @param sQuery {String} Query string.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._typeAhead = function(oItem, sQuery) {
        -    // Don't update if turned off
        -    if(!this.typeAhead || (this._nKeyCode == 8)) {
        -        return;
        -    }
        -
        -    var oTextbox = this._oTextbox;
        -    var sValue = this._oTextbox.value; // any saved queries plus what user has typed
        -
        -    // Don't update with type-ahead if text selection is not supported
        -    if(!oTextbox.setSelectionRange && !oTextbox.createTextRange) {
        -        return;
        -    }
        -
        -    // Select the portion of text that the user has not typed
        -    var nStart = sValue.length;
        -    this._updateValue(oItem);
        -    var nEnd = oTextbox.value.length;
        -    this._selectText(oTextbox,nStart,nEnd);
        -    var sPrefill = oTextbox.value.substr(nStart,nEnd);
        -    this.typeAheadEvent.fire(this,sQuery,sPrefill);
        -};
        -
        -/**
        - * Selects text in the input field.
        - *
        - * @method _selectText
        - * @param oTextbox {HTMLElement} Text input box element in which to select text.
        - * @param nStart {Number} Starting index of text string to select.
        - * @param nEnd {Number} Ending index of text selection.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._selectText = function(oTextbox, nStart, nEnd) {
        -    if(oTextbox.setSelectionRange) { // For Mozilla
        -        oTextbox.setSelectionRange(nStart,nEnd);
        -    }
        -    else if(oTextbox.createTextRange) { // For IE
        -        var oTextRange = oTextbox.createTextRange();
        -        oTextRange.moveStart("character", nStart);
        -        oTextRange.moveEnd("character", nEnd-oTextbox.value.length);
        -        oTextRange.select();
        -    }
        -    else {
        -        oTextbox.select();
        -    }
        -};
        -
        -/**
        - * Syncs results container with its helpers.
        - *
        - * @method _toggleContainerHelpers
        - * @param bShow {Boolean} True if container is expanded, false if collapsed
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._toggleContainerHelpers = function(bShow) {
        -    var bFireEvent = false;
        -    var width = this._oContainer._oContent.offsetWidth + "px";
        -    var height = this._oContainer._oContent.offsetHeight + "px";
        -
        -    if(this.useIFrame && this._oContainer._oIFrame) {
        -        bFireEvent = true;
        -        if(bShow) {
        -            this._oContainer._oIFrame.style.width = width;
        -            this._oContainer._oIFrame.style.height = height;
        -        }
        -        else {
        -            this._oContainer._oIFrame.style.width = 0;
        -            this._oContainer._oIFrame.style.height = 0;
        -        }
        -    }
        -    if(this.useShadow && this._oContainer._oShadow) {
        -        bFireEvent = true;
        -        if(bShow) {
        -            this._oContainer._oShadow.style.width = width;
        -            this._oContainer._oShadow.style.height = height;
        -        }
        -        else {
        -           this._oContainer._oShadow.style.width = 0;
        -            this._oContainer._oShadow.style.height = 0;
        -        }
        -    }
        -};
        -
        -/**
        - * Animates expansion or collapse of the container.
        - *
        - * @method _toggleContainer
        - * @param bShow {Boolean} True if container should be expanded, false if container should be collapsed
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._toggleContainer = function(bShow) {
        -    var oContainer = this._oContainer;
        -
        -    // Implementer has container always open so don't mess with it
        -    if(this.alwaysShowContainer && this._bContainerOpen) {
        -        return;
        -    }
        -    
        -    // Clear contents of container
        -    if(!bShow) {
        -        this._oContainer._oContent.scrollTop = 0;
        -        var aItems = this._aListItems;
        -
        -        if(aItems && (aItems.length > 0)) {
        -            for(var i = aItems.length-1; i >= 0 ; i--) {
        -                aItems[i].style.display = "none";
        -            }
        -        }
        -
        -        if(this._oCurItem) {
        -            this._toggleHighlight(this._oCurItem,"from");
        -        }
        -
        -        this._oCurItem = null;
        -        this._nDisplayedItems = 0;
        -        this._sCurQuery = null;
        -    }
        -
        -    // Container is already closed
        -    if(!bShow && !this._bContainerOpen) {
        -        oContainer._oContent.style.display = "none";
        -        return;
        -    }
        -
        -    // If animation is enabled...
        -    var oAnim = this._oAnim;
        -    if(oAnim && oAnim.getEl() && (this.animHoriz || this.animVert)) {
        -        // If helpers need to be collapsed, do it right away...
        -        // but if helpers need to be expanded, wait until after the container expands
        -        if(!bShow) {
        -            this._toggleContainerHelpers(bShow);
        -        }
        -
        -        if(oAnim.isAnimated()) {
        -            oAnim.stop();
        -        }
        -
        -        // Clone container to grab current size offscreen
        -        var oClone = oContainer._oContent.cloneNode(true);
        -        oContainer.appendChild(oClone);
        -        oClone.style.top = "-9000px";
        -        oClone.style.display = "block";
        -
        -        // Current size of the container is the EXPANDED size
        -        var wExp = oClone.offsetWidth;
        -        var hExp = oClone.offsetHeight;
        -
        -        // Calculate COLLAPSED sizes based on horiz and vert anim
        -        var wColl = (this.animHoriz) ? 0 : wExp;
        -        var hColl = (this.animVert) ? 0 : hExp;
        -
        -        // Set animation sizes
        -        oAnim.attributes = (bShow) ?
        -            {width: { to: wExp }, height: { to: hExp }} :
        -            {width: { to: wColl}, height: { to: hColl }};
        -
        -        // If opening anew, set to a collapsed size...
        -        if(bShow && !this._bContainerOpen) {
        -            oContainer._oContent.style.width = wColl+"px";
        -            oContainer._oContent.style.height = hColl+"px";
        -        }
        -        // Else, set it to its last known size.
        -        else {
        -            oContainer._oContent.style.width = wExp+"px";
        -            oContainer._oContent.style.height = hExp+"px";
        -        }
        -
        -        oContainer.removeChild(oClone);
        -        oClone = null;
        -
        -    	var oSelf = this;
        -    	var onAnimComplete = function() {
        -            // Finish the collapse
        -    		oAnim.onComplete.unsubscribeAll();
        -
        -            if(bShow) {
        -                oSelf.containerExpandEvent.fire(oSelf);
        -            }
        -            else {
        -                oContainer._oContent.style.display = "none";
        -                oSelf.containerCollapseEvent.fire(oSelf);
        -            }
        -            oSelf._toggleContainerHelpers(bShow);
        -     	};
        -
        -        // Display container and animate it
        -        oContainer._oContent.style.display = "block";
        -        oAnim.onComplete.subscribe(onAnimComplete);
        -        oAnim.animate();
        -        this._bContainerOpen = bShow;
        -    }
        -    // Else don't animate, just show or hide
        -    else {
        -        if(bShow) {
        -            oContainer._oContent.style.display = "block";
        -            this.containerExpandEvent.fire(this);
        -        }
        -        else {
        -            oContainer._oContent.style.display = "none";
        -            this.containerCollapseEvent.fire(this);
        -        }
        -        this._toggleContainerHelpers(bShow);
        -        this._bContainerOpen = bShow;
        -   }
        -
        -};
        -
        -/**
        - * Toggles the highlight on or off for an item in the container, and also cleans
        - * up highlighting of any previous item.
        - *
        - * @method _toggleHighlight
        - * @param oNewItem {HTMLElement} The &lt;li&gt; element item to receive highlight behavior.
        - * @param sType {String} Type "mouseover" will toggle highlight on, and "mouseout" will toggle highlight off.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._toggleHighlight = function(oNewItem, sType) {
        -    var sHighlight = this.highlightClassName;
        -    if(this._oCurItem) {
        -        // Remove highlight from old item
        -        YAHOO.util.Dom.removeClass(this._oCurItem, sHighlight);
        -    }
        -
        -    if((sType == "to") && sHighlight) {
        -        // Apply highlight to new item
        -        YAHOO.util.Dom.addClass(oNewItem, sHighlight);
        -        this._oCurItem = oNewItem;
        -    }
        -};
        -
        -/**
        - * Toggles the pre-highlight on or off for an item in the container.
        - *
        - * @method _togglePrehighlight
        - * @param oNewItem {HTMLElement} The &lt;li&gt; element item to receive highlight behavior.
        - * @param sType {String} Type "mouseover" will toggle highlight on, and "mouseout" will toggle highlight off.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._togglePrehighlight = function(oNewItem, sType) {
        -    if(oNewItem == this._oCurItem) {
        -        return;
        -    }
        -
        -    var sPrehighlight = this.prehighlightClassName;
        -    if((sType == "mouseover") && sPrehighlight) {
        -        // Apply prehighlight to new item
        -        YAHOO.util.Dom.addClass(oNewItem, sPrehighlight);
        -    }
        -    else {
        -        // Remove prehighlight from old item
        -        YAHOO.util.Dom.removeClass(oNewItem, sPrehighlight);
        -    }
        -};
        -
        -/**
        - * Updates the text input box value with selected query result. If a delimiter
        - * has been defined, then the value gets appended with the delimiter.
        - *
        - * @method _updateValue
        - * @param oItem {HTMLElement} The &lt;li&gt; element item with which to update the value.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._updateValue = function(oItem) {
        -    var oTextbox = this._oTextbox;
        -    var sDelimChar = (this.delimChar) ? (this.delimChar[0] || this.delimChar) : null;
        -    var sSavedQuery = this._sSavedQuery;
        -    var sResultKey = oItem._sResultKey;
        -    oTextbox.focus();
        -
        -    // First clear text field
        -    oTextbox.value = "";
        -    // Grab data to put into text field
        -    if(sDelimChar) {
        -        if(sSavedQuery) {
        -            oTextbox.value = sSavedQuery;
        -        }
        -        oTextbox.value += sResultKey + sDelimChar;
        -        if(sDelimChar != " ") {
        -            oTextbox.value += " ";
        -        }
        -    }
        -    else { oTextbox.value = sResultKey; }
        -
        -    // scroll to bottom of textarea if necessary
        -    if(oTextbox.type == "textarea") {
        -        oTextbox.scrollTop = oTextbox.scrollHeight;
        -    }
        -
        -    // move cursor to end
        -    var end = oTextbox.value.length;
        -    this._selectText(oTextbox,end,end);
        -
        -    this._oCurItem = oItem;
        -};
        -
        -/**
        - * Selects a result item from the container
        - *
        - * @method _selectItem
        - * @param oItem {HTMLElement} The selected &lt;li&gt; element item.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._selectItem = function(oItem) {
        -    this._bItemSelected = true;
        -    this._updateValue(oItem);
        -    this._cancelIntervalDetection(this);
        -    this.itemSelectEvent.fire(this, oItem, oItem._oResultData);
        -    this._toggleContainer(false);
        -};
        -
        -/**
        - * For values updated by type-ahead, the right arrow key jumps to the end
        - * of the textbox, otherwise the container is closed.
        - *
        - * @method _jumpSelection
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._jumpSelection = function() {
        -    if(!this.typeAhead) {
        -        return;
        -    }
        -    else {
        -        this._toggleContainer(false);
        -    }
        -};
        -
        -/**
        - * Triggered by up and down arrow keys, changes the current highlighted
        - * &lt;li&gt; element item. Scrolls container if necessary.
        - *
        - * @method _moveSelection
        - * @param nKeyCode {Number} Code of key pressed.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._moveSelection = function(nKeyCode) {
        -    if(this._bContainerOpen) {
        -        // Determine current item's id number
        -        var oCurItem = this._oCurItem;
        -        var nCurItemIndex = -1;
        -
        -        if(oCurItem) {
        -            nCurItemIndex = oCurItem._nItemIndex;
        -        }
        -
        -        var nNewItemIndex = (nKeyCode == 40) ?
        -                (nCurItemIndex + 1) : (nCurItemIndex - 1);
        -
        -        // Out of bounds
        -        if(nNewItemIndex < -2 || nNewItemIndex >= this._nDisplayedItems) {
        -            return;
        -        }
        -
        -        if(oCurItem) {
        -            // Unhighlight current item
        -            this._toggleHighlight(oCurItem, "from");
        -            this.itemArrowFromEvent.fire(this, oCurItem);
        -        }
        -        if(nNewItemIndex == -1) {
        -           // Go back to query (remove type-ahead string)
        -            if(this.delimChar && this._sSavedQuery) {
        -                if(!this._textMatchesOption()) {
        -                    this._oTextbox.value = this._sSavedQuery;
        -                }
        -                else {
        -                    this._oTextbox.value = this._sSavedQuery + this._sCurQuery;
        -                }
        -            }
        -            else {
        -                this._oTextbox.value = this._sCurQuery;
        -            }
        -            this._oCurItem = null;
        -            return;
        -        }
        -        if(nNewItemIndex == -2) {
        -            // Close container
        -            this._toggleContainer(false);
        -            return;
        -        }
        -
        -        var oNewItem = this._aListItems[nNewItemIndex];
        -
        -        // Scroll the container if necessary
        -        var oContent = this._oContainer._oContent;
        -        var scrollOn = ((YAHOO.util.Dom.getStyle(oContent,"overflow") == "auto") ||
        -            (YAHOO.util.Dom.getStyle(oContent,"overflowY") == "auto"));
        -        if(scrollOn && (nNewItemIndex > -1) &&
        -        (nNewItemIndex < this._nDisplayedItems)) {
        -            // User is keying down
        -            if(nKeyCode == 40) {
        -                // Bottom of selected item is below scroll area...
        -                if((oNewItem.offsetTop+oNewItem.offsetHeight) > (oContent.scrollTop + oContent.offsetHeight)) {
        -                    // Set bottom of scroll area to bottom of selected item
        -                    oContent.scrollTop = (oNewItem.offsetTop+oNewItem.offsetHeight) - oContent.offsetHeight;
        -                }
        -                // Bottom of selected item is above scroll area...
        -                else if((oNewItem.offsetTop+oNewItem.offsetHeight) < oContent.scrollTop) {
        -                    // Set top of selected item to top of scroll area
        -                    oContent.scrollTop = oNewItem.offsetTop;
        -
        -                }
        -            }
        -            // User is keying up
        -            else {
        -                // Top of selected item is above scroll area
        -                if(oNewItem.offsetTop < oContent.scrollTop) {
        -                    // Set top of scroll area to top of selected item
        -                    this._oContainer._oContent.scrollTop = oNewItem.offsetTop;
        -                }
        -                // Top of selected item is below scroll area
        -                else if(oNewItem.offsetTop > (oContent.scrollTop + oContent.offsetHeight)) {
        -                    // Set bottom of selected item to bottom of scroll area
        -                    this._oContainer._oContent.scrollTop = (oNewItem.offsetTop+oNewItem.offsetHeight) - oContent.offsetHeight;
        -                }
        -            }
        -        }
        -
        -        this._toggleHighlight(oNewItem, "to");
        -        this.itemArrowToEvent.fire(this, oNewItem);
        -        if(this.typeAhead) {
        -            this._updateValue(oNewItem);
        -        }
        -    }
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private event handlers
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Handles &lt;li&gt; element mouseover events in the container.
        - *
        - * @method _onItemMouseover
        - * @param v {HTMLEvent} The mouseover event.
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._onItemMouseover = function(v,oSelf) {
        -    if(oSelf.prehighlightClassName) {
        -        oSelf._togglePrehighlight(this,"mouseover");
        -    }
        -    else {
        -        oSelf._toggleHighlight(this,"to");
        -    }
        -
        -    oSelf.itemMouseOverEvent.fire(oSelf, this);
        -};
        -
        -/**
        - * Handles &lt;li&gt; element mouseout events in the container.
        - *
        - * @method _onItemMouseout
        - * @param v {HTMLEvent} The mouseout event.
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._onItemMouseout = function(v,oSelf) {
        -    if(oSelf.prehighlightClassName) {
        -        oSelf._togglePrehighlight(this,"mouseout");
        -    }
        -    else {
        -        oSelf._toggleHighlight(this,"from");
        -    }
        -
        -    oSelf.itemMouseOutEvent.fire(oSelf, this);
        -};
        -
        -/**
        - * Handles &lt;li&gt; element click events in the container.
        - *
        - * @method _onItemMouseclick
        - * @param v {HTMLEvent} The click event.
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._onItemMouseclick = function(v,oSelf) {
        -    // In case item has not been moused over
        -    oSelf._toggleHighlight(this,"to");
        -    oSelf._selectItem(this);
        -};
        -
        -/**
        - * Handles container mouseover events.
        - *
        - * @method _onContainerMouseover
        - * @param v {HTMLEvent} The mouseover event.
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._onContainerMouseover = function(v,oSelf) {
        -    oSelf._bOverContainer = true;
        -};
        -
        -/**
        - * Handles container mouseout events.
        - *
        - * @method _onContainerMouseout
        - * @param v {HTMLEvent} The mouseout event.
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._onContainerMouseout = function(v,oSelf) {
        -    oSelf._bOverContainer = false;
        -    // If container is still active
        -    if(oSelf._oCurItem) {
        -        oSelf._toggleHighlight(oSelf._oCurItem,"to");
        -    }
        -};
        -
        -/**
        - * Handles container scroll events.
        - *
        - * @method _onContainerScroll
        - * @param v {HTMLEvent} The scroll event.
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._onContainerScroll = function(v,oSelf) {
        -    oSelf._oTextbox.focus();
        -};
        -
        -/**
        - * Handles container resize events.
        - *
        - * @method _onContainerResize
        - * @param v {HTMLEvent} The resize event.
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._onContainerResize = function(v,oSelf) {
        -    oSelf._toggleContainerHelpers(oSelf._bContainerOpen);
        -};
        -
        -
        -/**
        - * Handles textbox keydown events of functional keys, mainly for UI behavior.
        - *
        - * @method _onTextboxKeyDown
        - * @param v {HTMLEvent} The keydown event.
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._onTextboxKeyDown = function(v,oSelf) {
        -    var nKeyCode = v.keyCode;
        -
        -    switch (nKeyCode) {
        -        case 9: // tab
        -            if(oSelf.delimChar && (oSelf._nKeyCode != nKeyCode)) {
        -                if(oSelf._bContainerOpen) {
        -                    YAHOO.util.Event.stopEvent(v);
        -                }
        -            }
        -            // select an item or clear out
        -            if(oSelf._oCurItem) {
        -                oSelf._selectItem(oSelf._oCurItem);
        -            }
        -            else {
        -                oSelf._toggleContainer(false);
        -            }
        -            break;
        -        case 13: // enter
        -            if(oSelf._nKeyCode != nKeyCode) {
        -                if(oSelf._bContainerOpen) {
        -                    YAHOO.util.Event.stopEvent(v);
        -                }
        -            }
        -            if(oSelf._oCurItem) {
        -                oSelf._selectItem(oSelf._oCurItem);
        -            }
        -            else {
        -                oSelf._toggleContainer(false);
        -            }
        -            break;
        -        case 27: // esc
        -            oSelf._toggleContainer(false);
        -            return;
        -        case 39: // right
        -            oSelf._jumpSelection();
        -            break;
        -        case 38: // up
        -            YAHOO.util.Event.stopEvent(v);
        -            oSelf._moveSelection(nKeyCode);
        -            break;
        -        case 40: // down
        -            YAHOO.util.Event.stopEvent(v);
        -            oSelf._moveSelection(nKeyCode);
        -            break;
        -        default:
        -            break;
        -    }
        -};
        -
        -/**
        - * Handles textbox keypress events.
        - * @method _onTextboxKeyPress
        - * @param v {HTMLEvent} The keypress event.
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._onTextboxKeyPress = function(v,oSelf) {
        -    var nKeyCode = v.keyCode;
        -
        -        //Expose only to Mac browsers, where stopEvent is ineffective on keydown events (bug 790337)
        -        var isMac = (navigator.userAgent.toLowerCase().indexOf("mac") != -1);
        -        if(isMac) {
        -            switch (nKeyCode) {
        -            case 9: // tab
        -                if(oSelf.delimChar && (oSelf._nKeyCode != nKeyCode)) {
        -                    YAHOO.util.Event.stopEvent(v);
        -                }
        -                break;
        -            case 13: // enter
        -                if(oSelf._nKeyCode != nKeyCode) {
        -                    YAHOO.util.Event.stopEvent(v);
        -                }
        -                break;
        -            case 38: // up
        -            case 40: // down
        -                YAHOO.util.Event.stopEvent(v);
        -                break;
        -            default:
        -                break;
        -            }
        -        }
        -
        -        //TODO: (?) limit only to non-IE, non-Mac-FF for Korean IME support (bug 811948)
        -        // Korean IME detected
        -        else if(nKeyCode == 229) {
        -            oSelf._queryInterval = setInterval(function() { oSelf._onIMEDetected(oSelf); },500);
        -        }
        -};
        -
        -/**
        - * Handles textbox keyup events that trigger queries.
        - *
        - * @method _onTextboxKeyUp
        - * @param v {HTMLEvent} The keyup event.
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._onTextboxKeyUp = function(v,oSelf) {
        -    // Check to see if any of the public properties have been updated
        -    oSelf._initProps();
        -
        -    var nKeyCode = v.keyCode;
        -    oSelf._nKeyCode = nKeyCode;
        -    var sText = this.value; //string in textbox
        -
        -    // Filter out chars that don't trigger queries
        -    if(oSelf._isIgnoreKey(nKeyCode) || (sText.toLowerCase() == oSelf._sCurQuery)) {
        -        return;
        -    }
        -    else {
        -        oSelf.textboxKeyEvent.fire(oSelf, nKeyCode);
        -    }
        -
        -    // Set timeout on the request
        -    if(oSelf.queryDelay > 0) {
        -        var nDelayID =
        -            setTimeout(function(){oSelf._sendQuery(sText);},(oSelf.queryDelay * 1000));
        -
        -        if(oSelf._nDelayID != -1) {
        -            clearTimeout(oSelf._nDelayID);
        -        }
        -
        -        oSelf._nDelayID = nDelayID;
        -    }
        -    else {
        -        // No delay so send request immediately
        -        oSelf._sendQuery(sText);
        -    }
        -};
        -
        -/**
        - * Handles text input box receiving focus.
        - *
        - * @method _onTextboxFocus
        - * @param v {HTMLEvent} The focus event.
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._onTextboxFocus = function (v,oSelf) {
        -    oSelf._oTextbox.setAttribute("autocomplete","off");
        -    oSelf._bFocused = true;
        -    if(!oSelf._bItemSelected) {
        -        oSelf.textboxFocusEvent.fire(oSelf);
        -    }
        -};
        -
        -/**
        - * Handles text input box losing focus.
        - *
        - * @method _onTextboxBlur
        - * @param v {HTMLEvent} The focus event.
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._onTextboxBlur = function (v,oSelf) {
        -    // Don't treat as a blur if it was a selection via mouse click
        -    if(!oSelf._bOverContainer || (oSelf._nKeyCode == 9)) {
        -        // Current query needs to be validated
        -        if(!oSelf._bItemSelected) {
        -            if(!oSelf._bContainerOpen || (oSelf._bContainerOpen && !oSelf._textMatchesOption())) {
        -                if(oSelf.forceSelection) {
        -                    oSelf._clearSelection();
        -                }
        -                else {
        -                    oSelf.unmatchedItemSelectEvent.fire(oSelf, oSelf._sCurQuery);
        -                }
        -            }
        -        }
        -
        -        if(oSelf._bContainerOpen) {
        -            oSelf._toggleContainer(false);
        -        }
        -        oSelf._cancelIntervalDetection(oSelf);
        -        oSelf._bFocused = false;
        -        oSelf.textboxBlurEvent.fire(oSelf);
        -    }
        -};
        -
        -/**
        - * Handles form submission event.
        - *
        - * @method _onFormSubmit
        - * @param v {HTMLEvent} The submit event.
        - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance.
        - * @private
        - */
        -YAHOO.widget.AutoComplete.prototype._onFormSubmit = function(v,oSelf) {
        -    if(oSelf.allowBrowserAutocomplete) {
        -        oSelf._oTextbox.setAttribute("autocomplete","on");
        -    }
        -    else {
        -        oSelf._oTextbox.setAttribute("autocomplete","off");
        -    }
        -};
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Bezier.js.html b/www/extras/yui/docs/Bezier.js.html deleted file mode 100644 index 44a67286e..000000000 --- a/www/extras/yui/docs/Bezier.js.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - API: animation Bezier.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        animation  2.2.2

        -

        - Yahoo! UI Library - > animation - - > Bezier.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * Used to calculate Bezier splines for any number of control points.
        - * @class Bezier
        - * @namespace YAHOO.util
        - *
        - */
        -YAHOO.util.Bezier = new function() {
        -    /**
        -     * Get the current position of the animated element based on t.
        -     * Each point is an array of "x" and "y" values (0 = x, 1 = y)
        -     * At least 2 points are required (start and end).
        -     * First point is start. Last point is end.
        -     * Additional control points are optional.     
        -     * @method getPosition
        -     * @param {Array} points An array containing Bezier points
        -     * @param {Number} t A number between 0 and 1 which is the basis for determining current position
        -     * @return {Array} An array containing int x and y member data
        -     */
        -    this.getPosition = function(points, t) {  
        -        var n = points.length;
        -        var tmp = [];
        -
        -        for (var i = 0; i < n; ++i){
        -            tmp[i] = [points[i][0], points[i][1]]; // save input
        -        }
        -        
        -        for (var j = 1; j < n; ++j) {
        -            for (i = 0; i < n - j; ++i) {
        -                tmp[i][0] = (1 - t) * tmp[i][0] + t * tmp[parseInt(i + 1, 10)][0];
        -                tmp[i][1] = (1 - t) * tmp[i][1] + t * tmp[parseInt(i + 1, 10)][1]; 
        -            }
        -        }
        -    
        -        return [ tmp[0][0], tmp[0][1] ]; 
        -    
        -    };
        -};
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Calendar.js.html b/www/extras/yui/docs/Calendar.js.html deleted file mode 100644 index b7871c80d..000000000 --- a/www/extras/yui/docs/Calendar.js.html +++ /dev/null @@ -1,2804 +0,0 @@ - - - - API: calendar Calendar.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Calendar  2.2.2

        -

        - Yahoo! UI Library - > calendar - - > Calendar.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* The Calendar component is a UI control that enables users to choose one or more dates from a graphical calendar presented in a one-month ("one-up") or two-month ("two-up") interface. Calendars are generated entirely via script and can be navigated without any page refreshes.
        -* @module    calendar
        -* @title     Calendar
        -* @namespace YAHOO.widget
        -* @requires  yahoo,dom,event
        -*/
        -
        -/**
        -* Calendar is the base class for the Calendar widget. In its most basic
        -* implementation, it has the ability to render a calendar widget on the page
        -* that can be manipulated to select a single date, move back and forth between
        -* months and years.
        -* <p>To construct the placeholder for the calendar widget, the code is as
        -* follows:
        -*	<xmp>
        -*		<div id="cal1Container"></div>
        -*	</xmp>
        -* Note that the table can be replaced with any kind of element.
        -* </p>
        -* @namespace YAHOO.widget
        -* @class Calendar
        -* @constructor
        -* @param {String}	id			The id of the table element that will represent the calendar widget
        -* @param {String}	containerId	The id of the container div element that will wrap the calendar table
        -* @param {Object}	config		The configuration object containing the Calendar's arguments
        -*/
        -YAHOO.widget.Calendar = function(id, containerId, config) {
        -	this.init(id, containerId, config);
        -};
        -
        -/**
        -* The path to be used for images loaded for the Calendar
        -* @property YAHOO.widget.Calendar.IMG_ROOT
        -* @static
        -* @deprecated	You can now customize images by overriding the calclose, calnavleft and calnavright default CSS classes for the close icon, left arrow and right arrow respectively
        -* @type String
        -*/
        -YAHOO.widget.Calendar.IMG_ROOT = null;
        -
        -/**
        -* Type constant used for renderers to represent an individual date (M/D/Y)
        -* @property YAHOO.widget.Calendar.DATE
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Calendar.DATE = "D";
        -
        -/**
        -* Type constant used for renderers to represent an individual date across any year (M/D)
        -* @property YAHOO.widget.Calendar.MONTH_DAY
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Calendar.MONTH_DAY = "MD";
        -
        -/**
        -* Type constant used for renderers to represent a weekday
        -* @property YAHOO.widget.Calendar.WEEKDAY
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Calendar.WEEKDAY = "WD";
        -
        -/**
        -* Type constant used for renderers to represent a range of individual dates (M/D/Y-M/D/Y)
        -* @property YAHOO.widget.Calendar.RANGE
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Calendar.RANGE = "R";
        -
        -/**
        -* Type constant used for renderers to represent a month across any year
        -* @property YAHOO.widget.Calendar.MONTH
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Calendar.MONTH = "M";
        -
        -/**
        -* Constant that represents the total number of date cells that are displayed in a given month
        -* @property YAHOO.widget.Calendar.DISPLAY_DAYS
        -* @static
        -* @final
        -* @type Number
        -*/
        -YAHOO.widget.Calendar.DISPLAY_DAYS = 42;
        -
        -/**
        -* Constant used for halting the execution of the remainder of the render stack
        -* @property YAHOO.widget.Calendar.STOP_RENDER
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Calendar.STOP_RENDER = "S";
        -
        -/**
        -* Constant used to represent short date field string formats (e.g. Tu or Feb)
        -* @property YAHOO.widget.Calendar.SHORT
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Calendar.SHORT = "short";
        -
        -/**
        -* Constant used to represent long date field string formats (e.g. Monday or February)
        -* @property YAHOO.widget.Calendar.LONG
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Calendar.LONG = "long";
        -
        -/**
        -* Constant used to represent medium date field string formats (e.g. Mon)
        -* @property YAHOO.widget.Calendar.MEDIUM
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Calendar.MEDIUM = "medium";
        -
        -/**
        -* Constant used to represent single character date field string formats (e.g. M, T, W)
        -* @property YAHOO.widget.Calendar.ONE_CHAR
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Calendar.ONE_CHAR = "1char";
        -
        -/**
        -* The set of default Config property keys and values for the Calendar
        -* @property YAHOO.widget.Calendar._DEFAULT_CONFIG
        -* @final
        -* @static
        -* @private
        -* @type Object
        -*/
        -YAHOO.widget.Calendar._DEFAULT_CONFIG = {
        -	// Default values for pagedate and selected are not class level constants - they are set during instance creation 
        -	PAGEDATE : {key:"pagedate", value:null},
        -	SELECTED : {key:"selected", value:null},
        -	TITLE : {key:"title", value:""},
        -	CLOSE : {key:"close", value:false},
        -	IFRAME : {key:"iframe", value:true},
        -	MINDATE : {key:"mindate", value:null},
        -	MAXDATE : {key:"maxdate", value:null},
        -	MULTI_SELECT : {key:"multi_select", value:false},
        -	START_WEEKDAY : {key:"start_weekday", value:0},
        -	SHOW_WEEKDAYS : {key:"show_weekdays", value:true},
        -	SHOW_WEEK_HEADER : {key:"show_week_header", value:false},
        -	SHOW_WEEK_FOOTER : {key:"show_week_footer", value:false},
        -	HIDE_BLANK_WEEKS : {key:"hide_blank_weeks", value:false},
        -	NAV_ARROW_LEFT: {key:"nav_arrow_left", value:null} ,
        -	NAV_ARROW_RIGHT : {key:"nav_arrow_right", value:null} ,
        -	MONTHS_SHORT : {key:"months_short", value:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]},
        -	MONTHS_LONG: {key:"months_long", value:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]},
        -	WEEKDAYS_1CHAR: {key:"weekdays_1char", value:["S", "M", "T", "W", "T", "F", "S"]},
        -	WEEKDAYS_SHORT: {key:"weekdays_short", value:["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]},
        -	WEEKDAYS_MEDIUM: {key:"weekdays_medium", value:["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]},
        -	WEEKDAYS_LONG: {key:"weekdays_long", value:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]},
        -	LOCALE_MONTHS:{key:"locale_months", value:"long"},
        -	LOCALE_WEEKDAYS:{key:"locale_weekdays", value:"short"},
        -	DATE_DELIMITER:{key:"date_delimiter", value:","},
        -	DATE_FIELD_DELIMITER:{key:"date_field_delimiter", value:"/"},
        -	DATE_RANGE_DELIMITER:{key:"date_range_delimiter", value:"-"},
        -	MY_MONTH_POSITION:{key:"my_month_position", value:1},
        -	MY_YEAR_POSITION:{key:"my_year_position", value:2},
        -	MD_MONTH_POSITION:{key:"md_month_position", value:1},
        -	MD_DAY_POSITION:{key:"md_day_position", value:2},
        -	MDY_MONTH_POSITION:{key:"mdy_month_position", value:1},
        -	MDY_DAY_POSITION:{key:"mdy_day_position", value:2},
        -	MDY_YEAR_POSITION:{key:"mdy_year_position", value:3}
        -};
        -
        -/**
        -* The set of Custom Event types supported by the Calendar
        -* @property YAHOO.widget.Calendar._EVENT_TYPES
        -* @final
        -* @static
        -* @private
        -* @type Object
        -*/
        -YAHOO.widget.Calendar._EVENT_TYPES = {
        -	BEFORE_SELECT : "beforeSelect", 
        -	SELECT : "select",
        -	BEFORE_DESELECT : "beforeDeselect",
        -	DESELECT : "deselect",
        -	CHANGE_PAGE : "changePage",
        -	BEFORE_RENDER : "beforeRender",
        -	RENDER : "render",
        -	RESET : "reset",
        -	CLEAR : "clear"
        -};
        -
        -/**
        -* The set of default style constants for the Calendar
        -* @property YAHOO.widget.Calendar._STYLES
        -* @final
        -* @static
        -* @private
        -* @type Object
        -*/
        -YAHOO.widget.Calendar._STYLES = {
        -	CSS_ROW_HEADER: "calrowhead",
        -	CSS_ROW_FOOTER: "calrowfoot",
        -	CSS_CELL : "calcell",
        -	CSS_CELL_SELECTOR : "selector",
        -	CSS_CELL_SELECTED : "selected",
        -	CSS_CELL_SELECTABLE : "selectable",
        -	CSS_CELL_RESTRICTED : "restricted",
        -	CSS_CELL_TODAY : "today",
        -	CSS_CELL_OOM : "oom",
        -	CSS_CELL_OOB : "previous",
        -	CSS_HEADER : "calheader",
        -	CSS_HEADER_TEXT : "calhead",
        -	CSS_BODY : "calbody",
        -	CSS_WEEKDAY_CELL : "calweekdaycell",
        -	CSS_WEEKDAY_ROW : "calweekdayrow",
        -	CSS_FOOTER : "calfoot",
        -	CSS_CALENDAR : "yui-calendar",
        -	CSS_SINGLE : "single",
        -	CSS_CONTAINER : "yui-calcontainer",
        -	CSS_NAV_LEFT : "calnavleft",
        -	CSS_NAV_RIGHT : "calnavright",
        -	CSS_CLOSE : "calclose",
        -	CSS_CELL_TOP : "calcelltop",
        -	CSS_CELL_LEFT : "calcellleft",
        -	CSS_CELL_RIGHT : "calcellright",
        -	CSS_CELL_BOTTOM : "calcellbottom",
        -	CSS_CELL_HOVER : "calcellhover",
        -	CSS_CELL_HIGHLIGHT1 : "highlight1",
        -	CSS_CELL_HIGHLIGHT2 : "highlight2",
        -	CSS_CELL_HIGHLIGHT3 : "highlight3",
        -	CSS_CELL_HIGHLIGHT4 : "highlight4"
        -};
        -
        -YAHOO.widget.Calendar.prototype = {
        -
        -	/**
        -	* The configuration object used to set up the calendars various locale and style options.
        -	* @property Config
        -	* @private
        -	* @deprecated Configuration properties should be set by calling Calendar.cfg.setProperty.
        -	* @type Object
        -	*/
        -	Config : null,
        -
        -	/**
        -	* The parent CalendarGroup, only to be set explicitly by the parent group
        -	* @property parent
        -	* @type CalendarGroup
        -	*/	
        -	parent : null,
        -
        -	/**
        -	* The index of this item in the parent group
        -	* @property index
        -	* @type Number
        -	*/
        -	index : -1,
        -
        -	/**
        -	* The collection of calendar table cells
        -	* @property cells
        -	* @type HTMLTableCellElement[]
        -	*/
        -	cells : null,
        -	
        -	/**
        -	* The collection of calendar cell dates that is parallel to the cells collection. The array contains dates field arrays in the format of [YYYY, M, D].
        -	* @property cellDates
        -	* @type Array[](Number[])
        -	*/
        -	cellDates : null,
        -
        -	/**
        -	* The id that uniquely identifies this calendar. This id should match the id of the placeholder element on the page.
        -	* @property id
        -	* @type String
        -	*/
        -	id : null,
        -
        -	/**
        -	* The DOM element reference that points to this calendar's container element. The calendar will be inserted into this element when the shell is rendered.
        -	* @property oDomContainer
        -	* @type HTMLElement
        -	*/
        -	oDomContainer : null,
        -
        -	/**
        -	* A Date object representing today's date.
        -	* @property today
        -	* @type Date
        -	*/
        -	today : null,
        -
        -	/**
        -	* The list of render functions, along with required parameters, used to render cells. 
        -	* @property renderStack
        -	* @type Array[]
        -	*/
        -	renderStack : null,
        -
        -	/**
        -	* A copy of the initial render functions created before rendering.
        -	* @property _renderStack
        -	* @private
        -	* @type Array
        -	*/
        -	_renderStack : null,
        -
        -	/**
        -	* The private list of initially selected dates.
        -	* @property _selectedDates
        -	* @private
        -	* @type Array
        -	*/
        -	_selectedDates : null,
        -
        -	/**
        -	* A map of DOM event handlers to attach to cells associated with specific CSS class names
        -	* @property domEventMap
        -	* @type Object
        -	*/
        -	domEventMap : null
        -};
        -
        -
        -
        -/**
        -* Initializes the Calendar widget.
        -* @method init
        -* @param {String}	id			The id of the table element that will represent the calendar widget
        -* @param {String}	containerId	The id of the container div element that will wrap the calendar table
        -* @param {Object}	config		The configuration object containing the Calendar's arguments
        -*/
        -YAHOO.widget.Calendar.prototype.init = function(id, containerId, config) {
        -	this.logger = new YAHOO.widget.LogWriter("Calendar_Core " + id);
        -	this.initEvents();
        -	this.today = new Date();
        -	YAHOO.widget.DateMath.clearTime(this.today);
        -
        -	this.id = id;
        -	this.oDomContainer = document.getElementById(containerId);
        -	if (! this.oDomContainer) { this.logger.log("No valid container present.", "error"); }
        -
        -	/**
        -	* The Config object used to hold the configuration variables for the Calendar
        -	* @property cfg
        -	* @type YAHOO.util.Config
        -	*/
        -	this.cfg = new YAHOO.util.Config(this);
        -	
        -	/**
        -	* The local object which contains the Calendar's options
        -	* @property Options
        -	* @type Object
        -	*/
        -	this.Options = {};
        -
        -	/**
        -	* The local object which contains the Calendar's locale settings
        -	* @property Locale
        -	* @type Object
        -	*/
        -	this.Locale = {};
        -
        -	this.initStyles();
        -
        -	YAHOO.util.Dom.addClass(this.oDomContainer, this.Style.CSS_CONTAINER);	
        -	YAHOO.util.Dom.addClass(this.oDomContainer, this.Style.CSS_SINGLE);
        -
        -	this.cellDates = [];
        -	this.cells = [];
        -	this.renderStack = [];
        -	this._renderStack = [];
        -
        -	this.setupConfig();
        -	
        -	if (config) {
        -		this.cfg.applyConfig(config, true);
        -	}
        -	
        -	this.cfg.fireQueue();
        -};
        -
        -/**
        -* Renders the built-in IFRAME shim for the IE6 and below
        -* @method configIframe
        -*/
        -YAHOO.widget.Calendar.prototype.configIframe = function(type, args, obj) {
        -	var useIframe = args[0];
        -
        -	if (!this.parent) {
        -		if (YAHOO.util.Dom.inDocument(this.oDomContainer)) {
        -			if (useIframe) {
        -				var pos = YAHOO.util.Dom.getStyle(this.oDomContainer, "position");
        -
        -				if (this.browser == "ie" && (pos == "absolute" || pos == "relative")) {
        -					if (! YAHOO.util.Dom.inDocument(this.iframe)) {
        -						this.iframe = document.createElement("iframe");
        -						this.iframe.src = "javascript:false;";
        -						YAHOO.util.Dom.setStyle(this.iframe, "opacity", "0");
        -						this.oDomContainer.insertBefore(this.iframe, this.oDomContainer.firstChild);
        -					}
        -				}
        -			} else {
        -				if (this.iframe) {
        -					if (this.iframe.parentNode) {
        -						this.iframe.parentNode.removeChild(this.iframe);
        -					}
        -					this.iframe = null;
        -				}
        -			}
        -		}
        -	}
        -};
        -
        -/**
        -* Default handler for the "title" property
        -* @method configTitle
        -*/
        -YAHOO.widget.Calendar.prototype.configTitle = function(type, args, obj) {
        -	var title = args[0];
        -	var close = this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.CLOSE.key);
        -	
        -	var titleDiv;
        -
        -	if (title && title !== "") {
        -		titleDiv = YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.CalendarGroup.CSS_2UPTITLE, "div", this.oDomContainer)[0] || document.createElement("div");
        -		titleDiv.className = YAHOO.widget.CalendarGroup.CSS_2UPTITLE;
        -		titleDiv.innerHTML = title;
        -		this.oDomContainer.insertBefore(titleDiv, this.oDomContainer.firstChild);
        -		YAHOO.util.Dom.addClass(this.oDomContainer, "withtitle");
        -	} else {
        -		titleDiv = YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.CalendarGroup.CSS_2UPTITLE, "div", this.oDomContainer)[0] || null;
        -
        -		if (titleDiv) {
        -			YAHOO.util.Event.purgeElement(titleDiv);
        -			this.oDomContainer.removeChild(titleDiv);
        -		}
        -		if (! close) {
        -			YAHOO.util.Dom.removeClass(this.oDomContainer, "withtitle");
        -		}
        -	}
        -};
        -
        -/**
        -* Default handler for the "close" property
        -* @method configClose
        -*/
        -YAHOO.widget.Calendar.prototype.configClose = function(type, args, obj) {
        -	var close = args[0];
        -	var title = this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.TITLE.key);
        -	
        -	var DEPR_CLOSE_PATH = "us/my/bn/x_d.gif";
        -
        -	var linkClose;
        -
        -	if (close === true) {
        -		linkClose = YAHOO.util.Dom.getElementsByClassName("link-close", "a", this.oDomContainer)[0] || document.createElement("a");
        -		linkClose.href = "#";
        -		linkClose.className = "link-close";
        -		YAHOO.util.Event.addListener(linkClose, "click", function(e, cal) {cal.hide(); YAHOO.util.Event.preventDefault(e); }, this);
        -		
        -		if (YAHOO.widget.Calendar.IMG_ROOT !== null) {
        -			var imgClose = document.createElement("img");
        -			imgClose.src = YAHOO.widget.Calendar.IMG_ROOT + DEPR_CLOSE_PATH;
        -			imgClose.className = YAHOO.widget.CalendarGroup.CSS_2UPCLOSE;
        -			linkClose.appendChild(imgClose);
        -		} else {
        -			linkClose.innerHTML = '<span class="' + YAHOO.widget.CalendarGroup.CSS_2UPCLOSE + ' ' + this.Style.CSS_CLOSE + '"></span>';
        -		}
        -		
        -		this.oDomContainer.appendChild(linkClose);
        -		YAHOO.util.Dom.addClass(this.oDomContainer, "withtitle");
        -	} else {
        -		linkClose = YAHOO.util.Dom.getElementsByClassName("link-close", "a", this.oDomContainer)[0] || null;
        -		if (linkClose) {
        -			YAHOO.util.Event.purgeElement(linkClose);
        -			this.oDomContainer.removeChild(linkClose);
        -		}
        -		if (! title || title === "") {
        -			YAHOO.util.Dom.removeClass(this.oDomContainer, "withtitle");
        -		}
        -	}
        -};
        -
        -/**
        -* Initializes Calendar's built-in CustomEvents
        -* @method initEvents
        -*/
        -YAHOO.widget.Calendar.prototype.initEvents = function() {
        -
        -	var defEvents = YAHOO.widget.Calendar._EVENT_TYPES;
        -
        -	/**
        -	* Fired before a selection is made
        -	* @event beforeSelectEvent
        -	*/
        -	this.beforeSelectEvent = new YAHOO.util.CustomEvent(defEvents.BEFORE_SELECT); 
        -
        -	/**
        -	* Fired when a selection is made
        -	* @event selectEvent
        -	* @param {Array}	Array of Date field arrays in the format [YYYY, MM, DD].
        -	*/
        -	this.selectEvent = new YAHOO.util.CustomEvent(defEvents.SELECT);
        -
        -	/**
        -	* Fired before a selection is made
        -	* @event beforeDeselectEvent
        -	*/
        -	this.beforeDeselectEvent = new YAHOO.util.CustomEvent(defEvents.BEFORE_DESELECT);
        -
        -	/**
        -	* Fired when a selection is made
        -	* @event deselectEvent
        -	* @param {Array}	Array of Date field arrays in the format [YYYY, MM, DD].
        -	*/
        -	this.deselectEvent = new YAHOO.util.CustomEvent(defEvents.DESELECT);
        -
        -	/**
        -	* Fired when the Calendar page is changed
        -	* @event changePageEvent
        -	*/
        -	this.changePageEvent = new YAHOO.util.CustomEvent(defEvents.CHANGE_PAGE);
        -
        -	/**
        -	* Fired before the Calendar is rendered
        -	* @event beforeRenderEvent
        -	*/
        -	this.beforeRenderEvent = new YAHOO.util.CustomEvent(defEvents.BEFORE_RENDER);
        -
        -	/**
        -	* Fired when the Calendar is rendered
        -	* @event renderEvent
        -	*/
        -	this.renderEvent = new YAHOO.util.CustomEvent(defEvents.RENDER);
        -
        -	/**
        -	* Fired when the Calendar is reset
        -	* @event resetEvent
        -	*/
        -	this.resetEvent = new YAHOO.util.CustomEvent(defEvents.RESET);
        -
        -	/**
        -	* Fired when the Calendar is cleared
        -	* @event clearEvent
        -	*/
        -	this.clearEvent = new YAHOO.util.CustomEvent(defEvents.CLEAR);
        -
        -	this.beforeSelectEvent.subscribe(this.onBeforeSelect, this, true);
        -	this.selectEvent.subscribe(this.onSelect, this, true);
        -	this.beforeDeselectEvent.subscribe(this.onBeforeDeselect, this, true);
        -	this.deselectEvent.subscribe(this.onDeselect, this, true);
        -	this.changePageEvent.subscribe(this.onChangePage, this, true);
        -	this.renderEvent.subscribe(this.onRender, this, true);
        -	this.resetEvent.subscribe(this.onReset, this, true);
        -	this.clearEvent.subscribe(this.onClear, this, true);
        -};
        -
        -/**
        -* The default event function that is attached to a date link within a calendar cell
        -* when the calendar is rendered.
        -* @method doSelectCell
        -* @param {DOMEvent} e	The event
        -* @param {Calendar} cal	A reference to the calendar passed by the Event utility
        -*/
        -YAHOO.widget.Calendar.prototype.doSelectCell = function(e, cal) {
        -	var cell,index,d,date;
        -
        -	var target = YAHOO.util.Event.getTarget(e);
        -	var tagName = target.tagName.toLowerCase();
        -	var defSelector = false;
        -
        -	while (tagName != "td" && ! YAHOO.util.Dom.hasClass(target, cal.Style.CSS_CELL_SELECTABLE)) {
        -
        -		if (!defSelector && tagName == "a" && YAHOO.util.Dom.hasClass(target, cal.Style.CSS_CELL_SELECTOR)) {
        -			defSelector = true;	
        -		}
        -
        -		target = target.parentNode;
        -		tagName = target.tagName.toLowerCase(); 
        -		if (tagName == "html") {
        -			return;
        -		}
        -	}
        -
        -	if (defSelector) {
        -		// Stop link href navigation for default renderer
        -		YAHOO.util.Event.preventDefault(e);
        -	}
        -
        -	cell = target;
        -
        -	if (YAHOO.util.Dom.hasClass(cell, cal.Style.CSS_CELL_SELECTABLE)) {
        -		index = cell.id.split("cell")[1];
        -		d = cal.cellDates[index];
        -		date = new Date(d[0],d[1]-1,d[2]);
        -	
        -		var link;
        -
        -		cal.logger.log("Selecting cell " + index + " via click", "info");
        -		if (cal.Options.MULTI_SELECT) {
        -			link = cell.getElementsByTagName("a")[0];
        -			if (link) {
        -				link.blur();
        -			}
        -
        -			var cellDate = cal.cellDates[index];
        -			var cellDateIndex = cal._indexOfSelectedFieldArray(cellDate);
        -
        -			if (cellDateIndex > -1) {	
        -				cal.deselectCell(index);
        -			} else {
        -				cal.selectCell(index);
        -			}	
        -
        -		} else {
        -			link = cell.getElementsByTagName("a")[0];
        -			if (link) {
        -				link.blur();
        -			}
        -			cal.selectCell(index);
        -		}
        -	}
        -};
        -
        -/**
        -* The event that is executed when the user hovers over a cell
        -* @method doCellMouseOver
        -* @param {DOMEvent} e	The event
        -* @param {Calendar} cal	A reference to the calendar passed by the Event utility
        -*/
        -YAHOO.widget.Calendar.prototype.doCellMouseOver = function(e, cal) {
        -	var target;
        -	if (e) {
        -		target = YAHOO.util.Event.getTarget(e);
        -	} else {
        -		target = this;
        -	}
        -
        -	while (target.tagName.toLowerCase() != "td") {
        -		target = target.parentNode;
        -		if (target.tagName.toLowerCase() == "html") {
        -			return;
        -		}
        -	}
        -
        -	if (YAHOO.util.Dom.hasClass(target, cal.Style.CSS_CELL_SELECTABLE)) {
        -		YAHOO.util.Dom.addClass(target, cal.Style.CSS_CELL_HOVER);
        -	}
        -};
        -
        -/**
        -* The event that is executed when the user moves the mouse out of a cell
        -* @method doCellMouseOut
        -* @param {DOMEvent} e	The event
        -* @param {Calendar} cal	A reference to the calendar passed by the Event utility
        -*/
        -YAHOO.widget.Calendar.prototype.doCellMouseOut = function(e, cal) {
        -	var target;
        -	if (e) {
        -		target = YAHOO.util.Event.getTarget(e);
        -	} else {
        -		target = this;
        -	}
        -
        -	while (target.tagName.toLowerCase() != "td") {
        -		target = target.parentNode;
        -		if (target.tagName.toLowerCase() == "html") {
        -			return;
        -		}
        -	}
        -
        -	if (YAHOO.util.Dom.hasClass(target, cal.Style.CSS_CELL_SELECTABLE)) {
        -		YAHOO.util.Dom.removeClass(target, cal.Style.CSS_CELL_HOVER);
        -	}
        -};
        -
        -YAHOO.widget.Calendar.prototype.setupConfig = function() {
        -
        -	var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG;
        -
        -	/**
        -	* The month/year representing the current visible Calendar date (mm/yyyy)
        -	* @config pagedate
        -	* @type String
        -	* @default today's date
        -	*/
        -	this.cfg.addProperty(defCfg.PAGEDATE.key, { value:new Date(), handler:this.configPageDate } );
        -
        -	/**
        -	* The date or range of dates representing the current Calendar selection
        -	* @config selected
        -	* @type String
        -	* @default []
        -	*/
        -	this.cfg.addProperty(defCfg.SELECTED.key, { value:[], handler:this.configSelected } );
        -
        -	/**
        -	* The title to display above the Calendar's month header
        -	* @config title
        -	* @type String
        -	* @default ""
        -	*/
        -	this.cfg.addProperty(defCfg.TITLE.key, { value:defCfg.TITLE.value, handler:this.configTitle } );
        -
        -	/**
        -	* Whether or not a close button should be displayed for this Calendar
        -	* @config close
        -	* @type Boolean
        -	* @default false
        -	*/
        -	this.cfg.addProperty(defCfg.CLOSE.key, { value:defCfg.CLOSE.value, handler:this.configClose } );
        -
        -	/**
        -	* Whether or not an iframe shim should be placed under the Calendar to prevent select boxes from bleeding through in Internet Explorer 6 and below.
        -	* @config iframe
        -	* @type Boolean
        -	* @default true
        -	*/
        -	this.cfg.addProperty(defCfg.IFRAME.key, { value:defCfg.IFRAME.value, handler:this.configIframe, validator:this.cfg.checkBoolean } );
        -
        -	/**
        -	* The minimum selectable date in the current Calendar (mm/dd/yyyy)
        -	* @config mindate
        -	* @type String
        -	* @default null
        -	*/
        -	this.cfg.addProperty(defCfg.MINDATE.key, { value:defCfg.MINDATE.value, handler:this.configMinDate } );
        -
        -	/**
        -	* The maximum selectable date in the current Calendar (mm/dd/yyyy)
        -	* @config maxdate
        -	* @type String
        -	* @default null
        -	*/
        -	this.cfg.addProperty(defCfg.MAXDATE.key, { value:defCfg.MAXDATE.value, handler:this.configMaxDate } );
        -
        -
        -	// Options properties
        -
        -	/**
        -	* True if the Calendar should allow multiple selections. False by default.
        -	* @config MULTI_SELECT
        -	* @type Boolean
        -	* @default false
        -	*/
        -	this.cfg.addProperty(defCfg.MULTI_SELECT.key,	{ value:defCfg.MULTI_SELECT.value, handler:this.configOptions, validator:this.cfg.checkBoolean } );
        -
        -	/**
        -	* The weekday the week begins on. Default is 0 (Sunday).
        -	* @config START_WEEKDAY
        -	* @type number
        -	* @default 0
        -	*/
        -	this.cfg.addProperty(defCfg.START_WEEKDAY.key,	{ value:defCfg.START_WEEKDAY.value, handler:this.configOptions, validator:this.cfg.checkNumber  } );
        -
        -	/**
        -	* True if the Calendar should show weekday labels. True by default.
        -	* @config SHOW_WEEKDAYS
        -	* @type Boolean
        -	* @default true
        -	*/
        -	this.cfg.addProperty(defCfg.SHOW_WEEKDAYS.key,	{ value:defCfg.SHOW_WEEKDAYS.value, handler:this.configOptions, validator:this.cfg.checkBoolean  } );
        -
        -	/**
        -	* True if the Calendar should show week row headers. False by default.
        -	* @config SHOW_WEEK_HEADER
        -	* @type Boolean
        -	* @default false
        -	*/
        -	this.cfg.addProperty(defCfg.SHOW_WEEK_HEADER.key, { value:defCfg.SHOW_WEEK_HEADER.value, handler:this.configOptions, validator:this.cfg.checkBoolean } );
        -
        -	/**
        -	* True if the Calendar should show week row footers. False by default.
        -	* @config SHOW_WEEK_FOOTER
        -	* @type Boolean
        -	* @default false
        -	*/	
        -	this.cfg.addProperty(defCfg.SHOW_WEEK_FOOTER.key,{ value:defCfg.SHOW_WEEK_FOOTER.value, handler:this.configOptions, validator:this.cfg.checkBoolean } );
        -
        -	/**
        -	* True if the Calendar should suppress weeks that are not a part of the current month. False by default.
        -	* @config HIDE_BLANK_WEEKS
        -	* @type Boolean
        -	* @default false
        -	*/	
        -	this.cfg.addProperty(defCfg.HIDE_BLANK_WEEKS.key, { value:defCfg.HIDE_BLANK_WEEKS.value, handler:this.configOptions, validator:this.cfg.checkBoolean } );
        -	
        -	/**
        -	* The image that should be used for the left navigation arrow.
        -	* @config NAV_ARROW_LEFT
        -	* @type String
        -	* @deprecated	You can customize the image by overriding the default CSS class for the left arrow - "calnavleft"  
        -	* @default null
        -	*/	
        -	this.cfg.addProperty(defCfg.NAV_ARROW_LEFT.key,	{ value:defCfg.NAV_ARROW_LEFT.value, handler:this.configOptions } );
        -
        -	/**
        -	* The image that should be used for the right navigation arrow.
        -	* @config NAV_ARROW_RIGHT
        -	* @type String
        -	* @deprecated	You can customize the image by overriding the default CSS class for the right arrow - "calnavright"
        -	* @default null
        -	*/	
        -	this.cfg.addProperty(defCfg.NAV_ARROW_RIGHT.key, { value:defCfg.NAV_ARROW_RIGHT.value, handler:this.configOptions } );
        -
        -	// Locale properties
        -
        -	/**
        -	* The short month labels for the current locale.
        -	* @config MONTHS_SHORT
        -	* @type String[]
        -	* @default ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        -	*/
        -	this.cfg.addProperty(defCfg.MONTHS_SHORT.key,	{ value:defCfg.MONTHS_SHORT.value, handler:this.configLocale } );
        -	
        -	/**
        -	* The long month labels for the current locale.
        -	* @config MONTHS_LONG
        -	* @type String[]
        -	* @default ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
        -	*/	
        -	this.cfg.addProperty(defCfg.MONTHS_LONG.key,		{ value:defCfg.MONTHS_LONG.value, handler:this.configLocale } );
        -	
        -	/**
        -	* The 1-character weekday labels for the current locale.
        -	* @config WEEKDAYS_1CHAR
        -	* @type String[]
        -	* @default ["S", "M", "T", "W", "T", "F", "S"]
        -	*/	
        -	this.cfg.addProperty(defCfg.WEEKDAYS_1CHAR.key,	{ value:defCfg.WEEKDAYS_1CHAR.value, handler:this.configLocale } );
        -	
        -	/**
        -	* The short weekday labels for the current locale.
        -	* @config WEEKDAYS_SHORT
        -	* @type String[]
        -	* @default ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]
        -	*/	
        -	this.cfg.addProperty(defCfg.WEEKDAYS_SHORT.key,	{ value:defCfg.WEEKDAYS_SHORT.value, handler:this.configLocale } );
        -	
        -	/**
        -	* The medium weekday labels for the current locale.
        -	* @config WEEKDAYS_MEDIUM
        -	* @type String[]
        -	* @default ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
        -	*/	
        -	this.cfg.addProperty(defCfg.WEEKDAYS_MEDIUM.key,	{ value:defCfg.WEEKDAYS_MEDIUM.value, handler:this.configLocale } );
        -	
        -	/**
        -	* The long weekday labels for the current locale.
        -	* @config WEEKDAYS_LONG
        -	* @type String[]
        -	* @default ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
        -	*/	
        -	this.cfg.addProperty(defCfg.WEEKDAYS_LONG.key,	{ value:defCfg.WEEKDAYS_LONG.value, handler:this.configLocale } );
        -
        -	/**
        -	* Refreshes the locale values used to build the Calendar.
        -	* @method refreshLocale
        -	* @private
        -	*/
        -	var refreshLocale = function() {
        -		this.cfg.refireEvent(defCfg.LOCALE_MONTHS.key);
        -		this.cfg.refireEvent(defCfg.LOCALE_WEEKDAYS.key);
        -	};
        -
        -	this.cfg.subscribeToConfigEvent(defCfg.START_WEEKDAY.key, refreshLocale, this, true);
        -	this.cfg.subscribeToConfigEvent(defCfg.MONTHS_SHORT.key, refreshLocale, this, true);
        -	this.cfg.subscribeToConfigEvent(defCfg.MONTHS_LONG.key, refreshLocale, this, true);
        -	this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_1CHAR.key, refreshLocale, this, true);
        -	this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_SHORT.key, refreshLocale, this, true);
        -	this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_MEDIUM.key, refreshLocale, this, true);
        -	this.cfg.subscribeToConfigEvent(defCfg.WEEKDAYS_LONG.key, refreshLocale, this, true);
        -	
        -	/**
        -	* The setting that determines which length of month labels should be used. Possible values are "short" and "long".
        -	* @config LOCALE_MONTHS
        -	* @type String
        -	* @default "long"
        -	*/	
        -	this.cfg.addProperty(defCfg.LOCALE_MONTHS.key,	{ value:defCfg.LOCALE_MONTHS.value, handler:this.configLocaleValues } );
        -	
        -	/**
        -	* The setting that determines which length of weekday labels should be used. Possible values are "1char", "short", "medium", and "long".
        -	* @config LOCALE_WEEKDAYS
        -	* @type String
        -	* @default "short"
        -	*/	
        -	this.cfg.addProperty(defCfg.LOCALE_WEEKDAYS.key,	{ value:defCfg.LOCALE_WEEKDAYS.value, handler:this.configLocaleValues } );
        -
        -	/**
        -	* The value used to delimit individual dates in a date string passed to various Calendar functions.
        -	* @config DATE_DELIMITER
        -	* @type String
        -	* @default ","
        -	*/	
        -	this.cfg.addProperty(defCfg.DATE_DELIMITER.key,		{ value:defCfg.DATE_DELIMITER.value, handler:this.configLocale } );
        -
        -	/**
        -	* The value used to delimit date fields in a date string passed to various Calendar functions.
        -	* @config DATE_FIELD_DELIMITER
        -	* @type String
        -	* @default "/"
        -	*/	
        -	this.cfg.addProperty(defCfg.DATE_FIELD_DELIMITER.key, { value:defCfg.DATE_FIELD_DELIMITER.value, handler:this.configLocale } );
        -
        -	/**
        -	* The value used to delimit date ranges in a date string passed to various Calendar functions.
        -	* @config DATE_RANGE_DELIMITER
        -	* @type String
        -	* @default "-"
        -	*/
        -	this.cfg.addProperty(defCfg.DATE_RANGE_DELIMITER.key, { value:defCfg.DATE_RANGE_DELIMITER.value, handler:this.configLocale } );
        -
        -	/**
        -	* The position of the month in a month/year date string
        -	* @config MY_MONTH_POSITION
        -	* @type Number
        -	* @default 1
        -	*/
        -	this.cfg.addProperty(defCfg.MY_MONTH_POSITION.key,	{ value:defCfg.MY_MONTH_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } );
        -
        -	/**
        -	* The position of the year in a month/year date string
        -	* @config MY_YEAR_POSITION
        -	* @type Number
        -	* @default 2
        -	*/
        -	this.cfg.addProperty(defCfg.MY_YEAR_POSITION.key,	{ value:defCfg.MY_YEAR_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } );
        -
        -	/**
        -	* The position of the month in a month/day date string
        -	* @config MD_MONTH_POSITION
        -	* @type Number
        -	* @default 1
        -	*/
        -	this.cfg.addProperty(defCfg.MD_MONTH_POSITION.key,	{ value:defCfg.MD_MONTH_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } );
        -
        -	/**
        -	* The position of the day in a month/year date string
        -	* @config MD_DAY_POSITION
        -	* @type Number
        -	* @default 2
        -	*/
        -	this.cfg.addProperty(defCfg.MD_DAY_POSITION.key,		{ value:defCfg.MD_DAY_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } );
        -
        -	/**
        -	* The position of the month in a month/day/year date string
        -	* @config MDY_MONTH_POSITION
        -	* @type Number
        -	* @default 1
        -	*/
        -	this.cfg.addProperty(defCfg.MDY_MONTH_POSITION.key,	{ value:defCfg.MDY_MONTH_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } );
        -
        -	/**
        -	* The position of the day in a month/day/year date string
        -	* @config MDY_DAY_POSITION
        -	* @type Number
        -	* @default 2
        -	*/
        -	this.cfg.addProperty(defCfg.MDY_DAY_POSITION.key,	{ value:defCfg.MDY_DAY_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } );
        -
        -	/**
        -	* The position of the year in a month/day/year date string
        -	* @config MDY_YEAR_POSITION
        -	* @type Number
        -	* @default 3
        -	*/
        -	this.cfg.addProperty(defCfg.MDY_YEAR_POSITION.key,	{ value:defCfg.MDY_YEAR_POSITION.value, handler:this.configLocale, validator:this.cfg.checkNumber } );
        -};
        -
        -/**
        -* The default handler for the "pagedate" property
        -* @method configPageDate
        -*/
        -YAHOO.widget.Calendar.prototype.configPageDate = function(type, args, obj) {
        -	this.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key, this._parsePageDate(args[0]), true);
        -};
        -
        -/**
        -* The default handler for the "mindate" property
        -* @method configMinDate
        -*/
        -YAHOO.widget.Calendar.prototype.configMinDate = function(type, args, obj) {
        -	var val = args[0];
        -	if (YAHOO.lang.isString(val)) {
        -		val = this._parseDate(val);
        -		this.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MINDATE.key, new Date(val[0],(val[1]-1),val[2]));
        -	}
        -};
        -
        -/**
        -* The default handler for the "maxdate" property
        -* @method configMaxDate
        -*/
        -YAHOO.widget.Calendar.prototype.configMaxDate = function(type, args, obj) {
        -	var val = args[0];
        -	if (YAHOO.lang.isString(val)) {
        -		val = this._parseDate(val);
        -		this.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MAXDATE.key, new Date(val[0],(val[1]-1),val[2]));
        -	}
        -};
        -
        -/**
        -* The default handler for the "selected" property
        -* @method configSelected
        -*/
        -YAHOO.widget.Calendar.prototype.configSelected = function(type, args, obj) {
        -	var selected = args[0];
        -	var cfgSelected = YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;
        -	
        -	if (selected) {
        -		if (YAHOO.lang.isString(selected)) {
        -			this.cfg.setProperty(cfgSelected, this._parseDates(selected), true);
        -		} 
        -	}
        -	if (! this._selectedDates) {
        -		this._selectedDates = this.cfg.getProperty(cfgSelected);
        -	}
        -};
        -
        -/**
        -* The default handler for all configuration options properties
        -* @method configOptions
        -*/
        -YAHOO.widget.Calendar.prototype.configOptions = function(type, args, obj) {
        -	this.Options[type.toUpperCase()] = args[0];
        -};
        -
        -/**
        -* The default handler for all configuration locale properties
        -* @method configLocale
        -*/
        -YAHOO.widget.Calendar.prototype.configLocale = function(type, args, obj) {
        -	var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG;
        -	this.Locale[type.toUpperCase()] = args[0];
        -
        -	this.cfg.refireEvent(defCfg.LOCALE_MONTHS.key);
        -	this.cfg.refireEvent(defCfg.LOCALE_WEEKDAYS.key);
        -};
        -
        -/**
        -* The default handler for all configuration locale field length properties
        -* @method configLocaleValues
        -*/
        -YAHOO.widget.Calendar.prototype.configLocaleValues = function(type, args, obj) {
        -	var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG; 
        -
        -	type = type.toLowerCase();
        -	var val = args[0];
        -
        -	switch (type) {
        -		case defCfg.LOCALE_MONTHS.key:
        -			switch (val) {
        -				case YAHOO.widget.Calendar.SHORT:
        -					this.Locale.LOCALE_MONTHS = this.cfg.getProperty(defCfg.MONTHS_SHORT.key).concat();
        -					break;
        -				case YAHOO.widget.Calendar.LONG:
        -					this.Locale.LOCALE_MONTHS = this.cfg.getProperty(defCfg.MONTHS_LONG.key).concat();
        -					break;
        -			}
        -			break;
        -		case defCfg.LOCALE_WEEKDAYS.key:
        -			switch (val) {
        -				case YAHOO.widget.Calendar.ONE_CHAR:
        -					this.Locale.LOCALE_WEEKDAYS = this.cfg.getProperty(defCfg.WEEKDAYS_1CHAR.key).concat();
        -					break;
        -				case YAHOO.widget.Calendar.SHORT:
        -					this.Locale.LOCALE_WEEKDAYS = this.cfg.getProperty(defCfg.WEEKDAYS_SHORT.key).concat();
        -					break;
        -				case YAHOO.widget.Calendar.MEDIUM:
        -					this.Locale.LOCALE_WEEKDAYS = this.cfg.getProperty(defCfg.WEEKDAYS_MEDIUM.key).concat();
        -					break;
        -				case YAHOO.widget.Calendar.LONG:
        -					this.Locale.LOCALE_WEEKDAYS = this.cfg.getProperty(defCfg.WEEKDAYS_LONG.key).concat();
        -					break;
        -			}
        -			
        -			var START_WEEKDAY = this.cfg.getProperty(defCfg.START_WEEKDAY.key);
        -
        -			if (START_WEEKDAY > 0) {
        -				for (var w=0;w<START_WEEKDAY;++w) {
        -					this.Locale.LOCALE_WEEKDAYS.push(this.Locale.LOCALE_WEEKDAYS.shift());
        -				}
        -			}
        -			break;
        -	}
        -};
        -
        -/**
        -* Defines the style constants for the Calendar
        -* @method initStyles
        -*/
        -YAHOO.widget.Calendar.prototype.initStyles = function() {
        -
        -	var defStyle = YAHOO.widget.Calendar._STYLES;
        -
        -	this.Style = {
        -		/**
        -		* @property Style.CSS_ROW_HEADER
        -		*/
        -		CSS_ROW_HEADER: defStyle.CSS_ROW_HEADER,
        -		/**
        -		* @property Style.CSS_ROW_FOOTER
        -		*/
        -		CSS_ROW_FOOTER: defStyle.CSS_ROW_FOOTER,
        -		/**
        -		* @property Style.CSS_CELL
        -		*/
        -		CSS_CELL : defStyle.CSS_CELL,
        -		/**
        -		* @property Style.CSS_CELL_SELECTOR
        -		*/
        -		CSS_CELL_SELECTOR : defStyle.CSS_CELL_SELECTOR,
        -		/**
        -		* @property Style.CSS_CELL_SELECTED
        -		*/
        -		CSS_CELL_SELECTED : defStyle.CSS_CELL_SELECTED,
        -		/**
        -		* @property Style.CSS_CELL_SELECTABLE
        -		*/
        -		CSS_CELL_SELECTABLE : defStyle.CSS_CELL_SELECTABLE,
        -		/**
        -		* @property Style.CSS_CELL_RESTRICTED
        -		*/
        -		CSS_CELL_RESTRICTED : defStyle.CSS_CELL_RESTRICTED,
        -		/**
        -		* @property Style.CSS_CELL_TODAY
        -		*/
        -		CSS_CELL_TODAY : defStyle.CSS_CELL_TODAY,
        -		/**
        -		* @property Style.CSS_CELL_OOM
        -		*/
        -		CSS_CELL_OOM : defStyle.CSS_CELL_OOM,
        -		/**
        -		* @property Style.CSS_CELL_OOB
        -		*/
        -		CSS_CELL_OOB : defStyle.CSS_CELL_OOB,
        -		/**
        -		* @property Style.CSS_HEADER
        -		*/
        -		CSS_HEADER : defStyle.CSS_HEADER,
        -		/**
        -		* @property Style.CSS_HEADER_TEXT
        -		*/
        -		CSS_HEADER_TEXT : defStyle.CSS_HEADER_TEXT,
        -		/**
        -		* @property Style.CSS_BODY
        -		*/
        -		CSS_BODY : defStyle.CSS_BODY,
        -		/**
        -		* @property Style.CSS_WEEKDAY_CELL
        -		*/
        -		CSS_WEEKDAY_CELL : defStyle.CSS_WEEKDAY_CELL,
        -		/**
        -		* @property Style.CSS_WEEKDAY_ROW
        -		*/
        -		CSS_WEEKDAY_ROW : defStyle.CSS_WEEKDAY_ROW,
        -		/**
        -		* @property Style.CSS_FOOTER
        -		*/
        -		CSS_FOOTER : defStyle.CSS_FOOTER,
        -		/**
        -		* @property Style.CSS_CALENDAR
        -		*/
        -		CSS_CALENDAR : defStyle.CSS_CALENDAR,
        -		/**
        -		* @property Style.CSS_SINGLE
        -		*/
        -		CSS_SINGLE : defStyle.CSS_SINGLE,
        -		/**
        -		* @property Style.CSS_CONTAINER
        -		*/
        -		CSS_CONTAINER : defStyle.CSS_CONTAINER,
        -		/**
        -		* @property Style.CSS_NAV_LEFT
        -		*/
        -		CSS_NAV_LEFT : defStyle.CSS_NAV_LEFT,
        -		/**
        -		* @property Style.CSS_NAV_RIGHT
        -		*/
        -		CSS_NAV_RIGHT : defStyle.CSS_NAV_RIGHT,
        -		/**
        -		* @property Style.CSS_CLOSE
        -		*/
        -		CSS_CLOSE : defStyle.CSS_CLOSE,
        -		/**
        -		* @property Style.CSS_CELL_TOP
        -		*/
        -		CSS_CELL_TOP : defStyle.CSS_CELL_TOP,
        -		/**
        -		* @property Style.CSS_CELL_LEFT
        -		*/
        -		CSS_CELL_LEFT : defStyle.CSS_CELL_LEFT,
        -		/**
        -		* @property Style.CSS_CELL_RIGHT
        -		*/
        -		CSS_CELL_RIGHT : defStyle.CSS_CELL_RIGHT,
        -		/**
        -		* @property Style.CSS_CELL_BOTTOM
        -		*/
        -		CSS_CELL_BOTTOM : defStyle.CSS_CELL_BOTTOM,
        -		/**
        -		* @property Style.CSS_CELL_HOVER
        -		*/
        -		CSS_CELL_HOVER : defStyle.CSS_CELL_HOVER,
        -		/**
        -		* @property Style.CSS_CELL_HIGHLIGHT1
        -		*/
        -		CSS_CELL_HIGHLIGHT1 : defStyle.CSS_CELL_HIGHLIGHT1,
        -		/**
        -		* @property Style.CSS_CELL_HIGHLIGHT2
        -		*/
        -		CSS_CELL_HIGHLIGHT2 : defStyle.CSS_CELL_HIGHLIGHT2,
        -		/**
        -		* @property Style.CSS_CELL_HIGHLIGHT3
        -		*/
        -		CSS_CELL_HIGHLIGHT3 : defStyle.CSS_CELL_HIGHLIGHT3,
        -		/**
        -		* @property Style.CSS_CELL_HIGHLIGHT4
        -		*/
        -		CSS_CELL_HIGHLIGHT4 : defStyle.CSS_CELL_HIGHLIGHT4
        -	};
        -};
        -
        -/**
        -* Builds the date label that will be displayed in the calendar header or
        -* footer, depending on configuration.
        -* @method buildMonthLabel
        -* @return	{String}	The formatted calendar month label
        -*/
        -YAHOO.widget.Calendar.prototype.buildMonthLabel = function() {
        -	var pageDate = this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key);
        -	return this.Locale.LOCALE_MONTHS[pageDate.getMonth()] + " " + pageDate.getFullYear();
        -};
        -
        -/**
        -* Builds the date digit that will be displayed in calendar cells
        -* @method buildDayLabel
        -* @param {Date}	workingDate	The current working date
        -* @return	{String}	The formatted day label
        -*/
        -YAHOO.widget.Calendar.prototype.buildDayLabel = function(workingDate) {
        -	return workingDate.getDate();
        -};
        -
        -/**
        -* Renders the calendar header.
        -* @method renderHeader
        -* @param {Array}	html	The current working HTML array
        -* @return {Array} The current working HTML array
        -*/
        -YAHOO.widget.Calendar.prototype.renderHeader = function(html) {
        -	this.logger.log("Rendering header", "info");
        -	var colSpan = 7;
        -	
        -	var DEPR_NAV_LEFT = "us/tr/callt.gif";
        -	var DEPR_NAV_RIGHT = "us/tr/calrt.gif";	
        -	var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG;
        -	
        -	if (this.cfg.getProperty(defCfg.SHOW_WEEK_HEADER.key)) {
        -		colSpan += 1;
        -	}
        -
        -	if (this.cfg.getProperty(defCfg.SHOW_WEEK_FOOTER.key)) {
        -		colSpan += 1;
        -	}
        -
        -	html[html.length] = "<thead>";
        -	html[html.length] =		"<tr>";
        -	html[html.length] =			'<th colspan="' + colSpan + '" class="' + this.Style.CSS_HEADER_TEXT + '">';
        -	html[html.length] =				'<div class="' + this.Style.CSS_HEADER + '">';
        -
        -	var renderLeft, renderRight = false;
        -
        -	if (this.parent) {
        -		if (this.index === 0) {
        -			renderLeft = true;
        -		}
        -		if (this.index == (this.parent.cfg.getProperty("pages") -1)) {
        -			renderRight = true;
        -		}
        -	} else {
        -		renderLeft = true;
        -		renderRight = true;
        -	}
        -
        -	var cal = this.parent || this;
        -	
        -	if (renderLeft) {
        -		var leftArrow = this.cfg.getProperty(defCfg.NAV_ARROW_LEFT.key);
        -		// Check for deprecated customization - If someone set IMG_ROOT, but didn't set NAV_ARROW_LEFT, then set NAV_ARROW_LEFT to the old deprecated value
        -		if (leftArrow === null && YAHOO.widget.Calendar.IMG_ROOT !== null) {
        -			leftArrow = YAHOO.widget.Calendar.IMG_ROOT + DEPR_NAV_LEFT;
        -		}
        -		var leftStyle = (leftArrow === null) ? "" : ' style="background-image:url(' + leftArrow + ')"';
        -		html[html.length] = '<a class="' + this.Style.CSS_NAV_LEFT + '"' + leftStyle + ' >&#160;</a>';
        -	}
        -	
        -	html[html.length] = this.buildMonthLabel();
        -	
        -	if (renderRight) {
        -		var rightArrow = this.cfg.getProperty(defCfg.NAV_ARROW_RIGHT.key);
        -		if (rightArrow === null && YAHOO.widget.Calendar.IMG_ROOT !== null) {
        -			rightArrow = YAHOO.widget.Calendar.IMG_ROOT + DEPR_NAV_RIGHT;
        -		}
        -		var rightStyle = (rightArrow === null) ? "" : ' style="background-image:url(' + rightArrow + ')"';
        -		html[html.length] = '<a class="' + this.Style.CSS_NAV_RIGHT + '"' + rightStyle + ' >&#160;</a>';
        -	}
        -
        -	html[html.length] =	'</div>\n</th>\n</tr>';
        -
        -	if (this.cfg.getProperty(defCfg.SHOW_WEEKDAYS.key)) {
        -		html = this.buildWeekdays(html);
        -	}
        -	
        -	html[html.length] = '</thead>';
        -
        -	return html;
        -};
        -
        -/**
        -* Renders the Calendar's weekday headers.
        -* @method buildWeekdays
        -* @param {Array}	html	The current working HTML array
        -* @return {Array} The current working HTML array
        -*/
        -YAHOO.widget.Calendar.prototype.buildWeekdays = function(html) {
        -
        -	var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG;
        -
        -	html[html.length] = '<tr class="' + this.Style.CSS_WEEKDAY_ROW + '">';
        -
        -	if (this.cfg.getProperty(defCfg.SHOW_WEEK_HEADER.key)) {
        -		html[html.length] = '<th>&#160;</th>';
        -	}
        -
        -	for(var i=0;i<this.Locale.LOCALE_WEEKDAYS.length;++i) {
        -		html[html.length] = '<th class="calweekdaycell">' + this.Locale.LOCALE_WEEKDAYS[i] + '</th>';
        -	}
        -
        -	if (this.cfg.getProperty(defCfg.SHOW_WEEK_FOOTER.key)) {
        -		html[html.length] = '<th>&#160;</th>';
        -	}
        -
        -	html[html.length] = '</tr>';
        -
        -	return html;
        -};
        -
        -/**
        -* Renders the calendar body.
        -* @method renderBody
        -* @param {Date}	workingDate	The current working Date being used for the render process
        -* @param {Array}	html	The current working HTML array
        -* @return {Array} The current working HTML array
        -*/
        -YAHOO.widget.Calendar.prototype.renderBody = function(workingDate, html) {
        -	this.logger.log("Rendering body", "info");
        -	var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG;
        -
        -	var startDay = this.cfg.getProperty(defCfg.START_WEEKDAY.key);
        -
        -	this.preMonthDays = workingDate.getDay();
        -	if (startDay > 0) {
        -		this.preMonthDays -= startDay;
        -	}
        -	if (this.preMonthDays < 0) {
        -		this.preMonthDays += 7;
        -	}
        -	
        -	this.monthDays = YAHOO.widget.DateMath.findMonthEnd(workingDate).getDate();
        -	this.postMonthDays = YAHOO.widget.Calendar.DISPLAY_DAYS-this.preMonthDays-this.monthDays;
        -	this.logger.log(this.preMonthDays + " preciding out-of-month days", "info");
        -	this.logger.log(this.monthDays + " month days", "info");
        -	this.logger.log(this.postMonthDays + " post-month days", "info");
        -	
        -	workingDate = YAHOO.widget.DateMath.subtract(workingDate, YAHOO.widget.DateMath.DAY, this.preMonthDays);
        -	this.logger.log("Calendar page starts on " + workingDate, "info");
        -
        -	var weekNum,weekClass;
        -	var weekPrefix = "w";
        -	var cellPrefix = "_cell";
        -	var workingDayPrefix = "wd";
        -	var dayPrefix = "d";
        -	
        -	var cellRenderers;
        -	var renderer;
        -	
        -	var todayYear = this.today.getFullYear();
        -	var todayMonth = this.today.getMonth();
        -	var todayDate = this.today.getDate();
        -	
        -	var useDate = this.cfg.getProperty(defCfg.PAGEDATE.key);
        -	var hideBlankWeeks = this.cfg.getProperty(defCfg.HIDE_BLANK_WEEKS.key);
        -	var showWeekFooter = this.cfg.getProperty(defCfg.SHOW_WEEK_FOOTER.key);
        -	var showWeekHeader = this.cfg.getProperty(defCfg.SHOW_WEEK_HEADER.key);
        -	var mindate = this.cfg.getProperty(defCfg.MINDATE.key);
        -	var maxdate = this.cfg.getProperty(defCfg.MAXDATE.key);
        -
        -	if (mindate) {
        -		mindate = YAHOO.widget.DateMath.clearTime(mindate);
        -	}
        -	if (maxdate) {
        -		maxdate = YAHOO.widget.DateMath.clearTime(maxdate);
        -	}
        -	
        -	html[html.length] = '<tbody class="m' + (useDate.getMonth()+1) + ' ' + this.Style.CSS_BODY + '">';
        -	
        -	var i = 0;
        -
        -	var tempDiv = document.createElement("div");
        -	var cell = document.createElement("td");
        -	tempDiv.appendChild(cell);
        -
        -	var jan1 = new Date(useDate.getFullYear(),0,1);
        -
        -	var cal = this.parent || this;
        -
        -	for (var r=0;r<6;r++) {
        -
        -		weekNum = YAHOO.widget.DateMath.getWeekNumber(workingDate, useDate.getFullYear(), startDay);
        -		weekClass = weekPrefix + weekNum;
        -
        -		// Local OOM check for performance, since we already have pagedate
        -		if (r !== 0 && hideBlankWeeks === true && workingDate.getMonth() != useDate.getMonth()) {
        -			break;
        -		} else {
        -
        -			html[html.length] = '<tr class="' + weekClass + '">';
        -			
        -			if (showWeekHeader) { html = this.renderRowHeader(weekNum, html); }
        -			
        -			for (var d=0;d<7;d++){ // Render actual days
        -
        -				cellRenderers = [];
        -				renderer = null;
        -
        -				this.clearElement(cell);
        -				cell.className = this.Style.CSS_CELL;
        -				cell.id = this.id + cellPrefix + i;
        -				this.logger.log("Rendering cell " + cell.id + " (" + workingDate.getFullYear() + "-" + (workingDate.getMonth()+1) + "-" + workingDate.getDate() + ")", "cellrender");
        -
        -				if (workingDate.getDate()		== todayDate && 
        -					workingDate.getMonth()		== todayMonth &&
        -					workingDate.getFullYear()	== todayYear) {
        -					cellRenderers[cellRenderers.length]=cal.renderCellStyleToday;
        -				}
        -				
        -				var workingArray = [workingDate.getFullYear(),workingDate.getMonth()+1,workingDate.getDate()];
        -				this.cellDates[this.cellDates.length] = workingArray; // Add this date to cellDates
        -				
        -				// Local OOM check for performance, since we already have pagedate
        -				if (workingDate.getMonth() != useDate.getMonth()) {
        -					cellRenderers[cellRenderers.length]=cal.renderCellNotThisMonth;
        -				} else {
        -					YAHOO.util.Dom.addClass(cell, workingDayPrefix + workingDate.getDay());
        -					YAHOO.util.Dom.addClass(cell, dayPrefix + workingDate.getDate());
        -				
        -					for (var s=0;s<this.renderStack.length;++s) {
        -
        -						var rArray = this.renderStack[s];
        -						var type = rArray[0];
        -						
        -						var month;
        -						var day;
        -						var year;
        -						
        -						switch (type) {
        -							case YAHOO.widget.Calendar.DATE:
        -								month = rArray[1][1];
        -								day = rArray[1][2];
        -								year = rArray[1][0];
        -
        -								if (workingDate.getMonth()+1 == month && workingDate.getDate() == day && workingDate.getFullYear() == year) {
        -									renderer = rArray[2];
        -									this.renderStack.splice(s,1);
        -								}
        -								break;
        -							case YAHOO.widget.Calendar.MONTH_DAY:
        -								month = rArray[1][0];
        -								day = rArray[1][1];
        -								
        -								if (workingDate.getMonth()+1 == month && workingDate.getDate() == day) {
        -									renderer = rArray[2];
        -									this.renderStack.splice(s,1);
        -								}
        -								break;
        -							case YAHOO.widget.Calendar.RANGE:
        -								var date1 = rArray[1][0];
        -								var date2 = rArray[1][1];
        -
        -								var d1month = date1[1];
        -								var d1day = date1[2];
        -								var d1year = date1[0];
        -								
        -								var d1 = new Date(d1year, d1month-1, d1day);
        -
        -								var d2month = date2[1];
        -								var d2day = date2[2];
        -								var d2year = date2[0];
        -
        -								var d2 = new Date(d2year, d2month-1, d2day);
        -
        -								if (workingDate.getTime() >= d1.getTime() && workingDate.getTime() <= d2.getTime()) {
        -									renderer = rArray[2];
        -
        -									if (workingDate.getTime()==d2.getTime()) { 
        -										this.renderStack.splice(s,1);
        -									}
        -								}
        -								break;
        -							case YAHOO.widget.Calendar.WEEKDAY:
        -								
        -								var weekday = rArray[1][0];
        -								if (workingDate.getDay()+1 == weekday) {
        -									renderer = rArray[2];
        -								}
        -								break;
        -							case YAHOO.widget.Calendar.MONTH:
        -								
        -								month = rArray[1][0];
        -								if (workingDate.getMonth()+1 == month) {
        -									renderer = rArray[2];
        -								}
        -								break;
        -						}
        -						
        -						if (renderer) {
        -							cellRenderers[cellRenderers.length]=renderer;
        -						}
        -					}
        -
        -				}
        -
        -				if (this._indexOfSelectedFieldArray(workingArray) > -1) {
        -					cellRenderers[cellRenderers.length]=cal.renderCellStyleSelected; 
        -				}
        -
        -				if ((mindate && (workingDate.getTime() < mindate.getTime())) ||
        -					(maxdate && (workingDate.getTime() > maxdate.getTime()))
        -				) {
        -					cellRenderers[cellRenderers.length]=cal.renderOutOfBoundsDate;
        -				} else {
        -					cellRenderers[cellRenderers.length]=cal.styleCellDefault;
        -					cellRenderers[cellRenderers.length]=cal.renderCellDefault;	
        -				}
        -				
        -				for (var x=0; x < cellRenderers.length; ++x) {
        -					this.logger.log("renderer[" + x + "] for (" + workingDate.getFullYear() + "-" + (workingDate.getMonth()+1) + "-" + workingDate.getDate() + ")", "cellrender");
        -					if (cellRenderers[x].call(cal, workingDate, cell) == YAHOO.widget.Calendar.STOP_RENDER) {
        -						break;
        -					}
        -				}
        -
        -				workingDate.setTime(workingDate.getTime() + YAHOO.widget.DateMath.ONE_DAY_MS);
        -
        -				if (i >= 0 && i <= 6) {
        -					YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_TOP);
        -				}
        -				if ((i % 7) === 0) {
        -					YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_LEFT);
        -				}
        -				if (((i+1) % 7) === 0) {
        -					YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_RIGHT);
        -				}
        -				
        -				var postDays = this.postMonthDays; 
        -				if (hideBlankWeeks && postDays >= 7) {
        -					var blankWeeks = Math.floor(postDays/7);
        -					for (var p=0;p<blankWeeks;++p) {
        -						postDays -= 7;
        -					}
        -				}
        -				
        -				if (i >= ((this.preMonthDays+postDays+this.monthDays)-7)) {
        -					YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_BOTTOM);
        -				}
        -
        -				html[html.length] = tempDiv.innerHTML;
        -				i++;
        -			}
        -
        -			if (showWeekFooter) { html = this.renderRowFooter(weekNum, html); }
        -
        -			html[html.length] = '</tr>';
        -		}
        -	}
        -
        -	html[html.length] = '</tbody>';
        -
        -	return html;
        -};
        -
        -/**
        -* Renders the calendar footer. In the default implementation, there is
        -* no footer.
        -* @method renderFooter
        -* @param {Array}	html	The current working HTML array
        -* @return {Array} The current working HTML array
        -*/
        -YAHOO.widget.Calendar.prototype.renderFooter = function(html) { return html; };
        -
        -/**
        -* Renders the calendar after it has been configured. The render() method has a specific call chain that will execute
        -* when the method is called: renderHeader, renderBody, renderFooter.
        -* Refer to the documentation for those methods for information on 
        -* individual render tasks.
        -* @method render
        -*/
        -YAHOO.widget.Calendar.prototype.render = function() {
        -	this.beforeRenderEvent.fire();
        -
        -	var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG;
        -
        -	// Find starting day of the current month
        -	var workingDate = YAHOO.widget.DateMath.findMonthStart(this.cfg.getProperty(defCfg.PAGEDATE.key));
        -
        -	this.resetRenderers();
        -	this.cellDates.length = 0;
        -
        -	YAHOO.util.Event.purgeElement(this.oDomContainer, true);
        -
        -	var html = [];
        -
        -	html[html.length] = '<table cellSpacing="0" class="' + this.Style.CSS_CALENDAR + ' y' + workingDate.getFullYear() + '" id="' + this.id + '">';
        -	html = this.renderHeader(html);
        -	html = this.renderBody(workingDate, html);
        -	html = this.renderFooter(html);
        -	html[html.length] = '</table>';
        -
        -	this.oDomContainer.innerHTML = html.join("\n");
        -
        -	this.applyListeners();
        -	this.cells = this.oDomContainer.getElementsByTagName("td");
        -
        -	this.cfg.refireEvent(defCfg.TITLE.key);
        -	this.cfg.refireEvent(defCfg.CLOSE.key);
        -	this.cfg.refireEvent(defCfg.IFRAME.key);
        -
        -	this.renderEvent.fire();
        -};
        -
        -/**
        -* Applies the Calendar's DOM listeners to applicable elements.
        -* @method applyListeners
        -*/
        -YAHOO.widget.Calendar.prototype.applyListeners = function() {
        -	
        -	var root = this.oDomContainer;
        -	var cal = this.parent || this;
        -	
        -	var anchor = "a";
        -	var mousedown = "mousedown";
        -
        -	var linkLeft = YAHOO.util.Dom.getElementsByClassName(this.Style.CSS_NAV_LEFT, anchor, root);
        -	var linkRight = YAHOO.util.Dom.getElementsByClassName(this.Style.CSS_NAV_RIGHT, anchor, root);
        -
        -	if (linkLeft && linkLeft.length > 0) {
        -		this.linkLeft = linkLeft[0];
        -		YAHOO.util.Event.addListener(this.linkLeft, mousedown, cal.previousMonth, cal, true);
        -	}
        -
        -	if (linkRight && linkRight.length > 0) {
        -		this.linkRight = linkRight[0];
        -		YAHOO.util.Event.addListener(this.linkRight, mousedown, cal.nextMonth, cal, true);
        -	}
        -
        -	if (this.domEventMap) {
        -		var el,elements;
        -		for (var cls in this.domEventMap) {	
        -			if (YAHOO.lang.hasOwnProperty(this.domEventMap, cls)) {
        -				var items = this.domEventMap[cls];
        -
        -				if (! (items instanceof Array)) {
        -					items = [items];
        -				}
        -
        -				for (var i=0;i<items.length;i++)	{
        -					var item = items[i];
        -					elements = YAHOO.util.Dom.getElementsByClassName(cls, item.tag, this.oDomContainer);
        -
        -					for (var c=0;c<elements.length;c++) {
        -						el = elements[c];
        -						 YAHOO.util.Event.addListener(el, item.event, item.handler, item.scope, item.correct );
        -					}
        -				}
        -			}
        -		}
        -	}
        -
        -	YAHOO.util.Event.addListener(this.oDomContainer, "click", this.doSelectCell, this);
        -	YAHOO.util.Event.addListener(this.oDomContainer, "mouseover", this.doCellMouseOver, this);
        -	YAHOO.util.Event.addListener(this.oDomContainer, "mouseout", this.doCellMouseOut, this);
        -};
        -
        -/**
        -* Retrieves the Date object for the specified Calendar cell
        -* @method getDateByCellId
        -* @param {String}	id	The id of the cell
        -* @return {Date} The Date object for the specified Calendar cell
        -*/
        -YAHOO.widget.Calendar.prototype.getDateByCellId = function(id) {
        -	var date = this.getDateFieldsByCellId(id);
        -	return new Date(date[0],date[1]-1,date[2]);
        -};
        -
        -/**
        -* Retrieves the Date object for the specified Calendar cell
        -* @method getDateFieldsByCellId
        -* @param {String}	id	The id of the cell
        -* @return {Array}	The array of Date fields for the specified Calendar cell
        -*/
        -YAHOO.widget.Calendar.prototype.getDateFieldsByCellId = function(id) {
        -	id = id.toLowerCase().split("_cell")[1];
        -	id = parseInt(id, 10);
        -	return this.cellDates[id];
        -};
        -
        -// BEGIN BUILT-IN TABLE CELL RENDERERS
        -
        -/**
        -* Renders a cell that falls before the minimum date or after the maximum date.
        -* widget class.
        -* @method renderOutOfBoundsDate
        -* @param {Date}					workingDate		The current working Date object being used to generate the calendar
        -* @param {HTMLTableCellElement}	cell			The current working cell in the calendar
        -* @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering
        -*			should not be terminated
        -*/
        -YAHOO.widget.Calendar.prototype.renderOutOfBoundsDate = function(workingDate, cell) {
        -	YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_OOB);
        -	cell.innerHTML = workingDate.getDate();
        -	return YAHOO.widget.Calendar.STOP_RENDER;
        -};
        -
        -/**
        -* Renders the row header for a week.
        -* @method renderRowHeader
        -* @param {Number}	weekNum	The week number of the current row
        -* @param {Array}	cell	The current working HTML array
        -*/
        -YAHOO.widget.Calendar.prototype.renderRowHeader = function(weekNum, html) {
        -	html[html.length] = '<th class="calrowhead">' + weekNum + '</th>';
        -	return html;
        -};
        -
        -/**
        -* Renders the row footer for a week.
        -* @method renderRowFooter
        -* @param {Number}	weekNum	The week number of the current row
        -* @param {Array}	cell	The current working HTML array
        -*/
        -YAHOO.widget.Calendar.prototype.renderRowFooter = function(weekNum, html) {
        -	html[html.length] = '<th class="calrowfoot">' + weekNum + '</th>';
        -	return html;
        -};
        -
        -/**
        -* Renders a single standard calendar cell in the calendar widget table.
        -* All logic for determining how a standard default cell will be rendered is 
        -* encapsulated in this method, and must be accounted for when extending the
        -* widget class.
        -* @method renderCellDefault
        -* @param {Date}					workingDate		The current working Date object being used to generate the calendar
        -* @param {HTMLTableCellElement}	cell			The current working cell in the calendar
        -*/
        -YAHOO.widget.Calendar.prototype.renderCellDefault = function(workingDate, cell) {
        -	cell.innerHTML = '<a href="#" class="' + this.Style.CSS_CELL_SELECTOR + '">' + this.buildDayLabel(workingDate) + "</a>";
        -};
        -
        -/**
        -* Styles a selectable cell.
        -* @method styleCellDefault
        -* @param {Date}					workingDate		The current working Date object being used to generate the calendar
        -* @param {HTMLTableCellElement}	cell			The current working cell in the calendar
        -*/
        -YAHOO.widget.Calendar.prototype.styleCellDefault = function(workingDate, cell) {
        -	YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_SELECTABLE);
        -};
        -
        -
        -/**
        -* Renders a single standard calendar cell using the CSS hightlight1 style
        -* @method renderCellStyleHighlight1
        -* @param {Date}					workingDate		The current working Date object being used to generate the calendar
        -* @param {HTMLTableCellElement}	cell			The current working cell in the calendar
        -*/
        -YAHOO.widget.Calendar.prototype.renderCellStyleHighlight1 = function(workingDate, cell) {
        -	YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT1);
        -};
        -
        -/**
        -* Renders a single standard calendar cell using the CSS hightlight2 style
        -* @method renderCellStyleHighlight2
        -* @param {Date}					workingDate		The current working Date object being used to generate the calendar
        -* @param {HTMLTableCellElement}	cell			The current working cell in the calendar
        -*/
        -YAHOO.widget.Calendar.prototype.renderCellStyleHighlight2 = function(workingDate, cell) {
        -	YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT2);
        -};
        -
        -/**
        -* Renders a single standard calendar cell using the CSS hightlight3 style
        -* @method renderCellStyleHighlight3
        -* @param {Date}					workingDate		The current working Date object being used to generate the calendar
        -* @param {HTMLTableCellElement}	cell			The current working cell in the calendar
        -*/
        -YAHOO.widget.Calendar.prototype.renderCellStyleHighlight3 = function(workingDate, cell) {
        -	YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT3);
        -};
        -
        -/**
        -* Renders a single standard calendar cell using the CSS hightlight4 style
        -* @method renderCellStyleHighlight4
        -* @param {Date}					workingDate		The current working Date object being used to generate the calendar
        -* @param {HTMLTableCellElement}	cell			The current working cell in the calendar
        -*/
        -YAHOO.widget.Calendar.prototype.renderCellStyleHighlight4 = function(workingDate, cell) {
        -	YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT4);
        -};
        -
        -/**
        -* Applies the default style used for rendering today's date to the current calendar cell
        -* @method renderCellStyleToday
        -* @param {Date}					workingDate		The current working Date object being used to generate the calendar
        -* @param {HTMLTableCellElement}	cell			The current working cell in the calendar
        -*/
        -YAHOO.widget.Calendar.prototype.renderCellStyleToday = function(workingDate, cell) {
        -	YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_TODAY);
        -};
        -
        -/**
        -* Applies the default style used for rendering selected dates to the current calendar cell
        -* @method renderCellStyleSelected
        -* @param {Date}					workingDate		The current working Date object being used to generate the calendar
        -* @param {HTMLTableCellElement}	cell			The current working cell in the calendar
        -* @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering
        -*			should not be terminated
        -*/
        -YAHOO.widget.Calendar.prototype.renderCellStyleSelected = function(workingDate, cell) {
        -	YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_SELECTED);
        -};
        -
        -/**
        -* Applies the default style used for rendering dates that are not a part of the current
        -* month (preceding or trailing the cells for the current month)
        -* @method renderCellNotThisMonth
        -* @param {Date}					workingDate		The current working Date object being used to generate the calendar
        -* @param {HTMLTableCellElement}	cell			The current working cell in the calendar
        -* @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering
        -*			should not be terminated
        -*/
        -YAHOO.widget.Calendar.prototype.renderCellNotThisMonth = function(workingDate, cell) {
        -	YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_OOM);
        -	cell.innerHTML=workingDate.getDate();
        -	return YAHOO.widget.Calendar.STOP_RENDER;
        -};
        -
        -/**
        -* Renders the current calendar cell as a non-selectable "black-out" date using the default
        -* restricted style.
        -* @method renderBodyCellRestricted
        -* @param {Date}					workingDate		The current working Date object being used to generate the calendar
        -* @param {HTMLTableCellElement}	cell			The current working cell in the calendar
        -* @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering
        -*			should not be terminated
        -*/
        -YAHOO.widget.Calendar.prototype.renderBodyCellRestricted = function(workingDate, cell) {
        -	YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL);
        -	YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_RESTRICTED);
        -	cell.innerHTML=workingDate.getDate();
        -	return YAHOO.widget.Calendar.STOP_RENDER;
        -};
        -
        -// END BUILT-IN TABLE CELL RENDERERS
        -
        -// BEGIN MONTH NAVIGATION METHODS
        -
        -/**
        -* Adds the designated number of months to the current calendar month, and sets the current
        -* calendar page date to the new month.
        -* @method addMonths
        -* @param {Number}	count	The number of months to add to the current calendar
        -*/
        -YAHOO.widget.Calendar.prototype.addMonths = function(count) {
        -	var cfgPageDate = YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;
        -	this.cfg.setProperty(cfgPageDate, YAHOO.widget.DateMath.add(this.cfg.getProperty(cfgPageDate), YAHOO.widget.DateMath.MONTH, count));
        -	this.resetRenderers();
        -	this.changePageEvent.fire();
        -};
        -
        -/**
        -* Subtracts the designated number of months from the current calendar month, and sets the current
        -* calendar page date to the new month.
        -* @method subtractMonths
        -* @param {Number}	count	The number of months to subtract from the current calendar
        -*/
        -YAHOO.widget.Calendar.prototype.subtractMonths = function(count) {
        -	var cfgPageDate = YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;
        -	this.cfg.setProperty(cfgPageDate, YAHOO.widget.DateMath.subtract(this.cfg.getProperty(cfgPageDate), YAHOO.widget.DateMath.MONTH, count));
        -	this.resetRenderers();
        -	this.changePageEvent.fire();
        -};
        -
        -/**
        -* Adds the designated number of years to the current calendar, and sets the current
        -* calendar page date to the new month.
        -* @method addYears
        -* @param {Number}	count	The number of years to add to the current calendar
        -*/
        -YAHOO.widget.Calendar.prototype.addYears = function(count) {
        -	var cfgPageDate = YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;
        -	this.cfg.setProperty(cfgPageDate, YAHOO.widget.DateMath.add(this.cfg.getProperty(cfgPageDate), YAHOO.widget.DateMath.YEAR, count));
        -	this.resetRenderers();
        -	this.changePageEvent.fire();
        -};
        -
        -/**
        -* Subtcats the designated number of years from the current calendar, and sets the current
        -* calendar page date to the new month.
        -* @method subtractYears
        -* @param {Number}	count	The number of years to subtract from the current calendar
        -*/
        -YAHOO.widget.Calendar.prototype.subtractYears = function(count) {
        -	var cfgPageDate = YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;
        -	this.cfg.setProperty(cfgPageDate, YAHOO.widget.DateMath.subtract(this.cfg.getProperty(cfgPageDate), YAHOO.widget.DateMath.YEAR, count));
        -	this.resetRenderers();
        -	this.changePageEvent.fire();
        -};
        -
        -/**
        -* Navigates to the next month page in the calendar widget.
        -* @method nextMonth
        -*/
        -YAHOO.widget.Calendar.prototype.nextMonth = function() {
        -	this.addMonths(1);
        -};
        -
        -/**
        -* Navigates to the previous month page in the calendar widget.
        -* @method previousMonth
        -*/
        -YAHOO.widget.Calendar.prototype.previousMonth = function() {
        -	this.subtractMonths(1);
        -};
        -
        -/**
        -* Navigates to the next year in the currently selected month in the calendar widget.
        -* @method nextYear
        -*/
        -YAHOO.widget.Calendar.prototype.nextYear = function() {
        -	this.addYears(1);
        -};
        -
        -/**
        -* Navigates to the previous year in the currently selected month in the calendar widget.
        -* @method previousYear
        -*/
        -YAHOO.widget.Calendar.prototype.previousYear = function() {
        -	this.subtractYears(1);
        -};
        -
        -// END MONTH NAVIGATION METHODS
        -
        -// BEGIN SELECTION METHODS
        -
        -/**
        -* Resets the calendar widget to the originally selected month and year, and 
        -* sets the calendar to the initial selection(s).
        -* @method reset
        -*/
        -YAHOO.widget.Calendar.prototype.reset = function() {
        -	var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG;
        -	this.cfg.resetProperty(defCfg.SELECTED.key);
        -	this.cfg.resetProperty(defCfg.PAGEDATE.key);
        -	this.resetEvent.fire();
        -};
        -
        -/**
        -* Clears the selected dates in the current calendar widget and sets the calendar
        -* to the current month and year.
        -* @method clear
        -*/
        -YAHOO.widget.Calendar.prototype.clear = function() {
        -	var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG;
        -	this.cfg.setProperty(defCfg.SELECTED.key, []);
        -	this.cfg.setProperty(defCfg.PAGEDATE.key, new Date(this.today.getTime()));
        -	this.clearEvent.fire();
        -};
        -
        -/**
        -* Selects a date or a collection of dates on the current calendar. This method, by default,
        -* does not call the render method explicitly. Once selection has completed, render must be 
        -* called for the changes to be reflected visually.
        -* @method select
        -* @param	{String/Date/Date[]}	date	The date string of dates to select in the current calendar. Valid formats are
        -*								individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).
        -*								Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).
        -*								This method can also take a JavaScript Date object or an array of Date objects.
        -* @return	{Date[]}			Array of JavaScript Date objects representing all individual dates that are currently selected.
        -*/
        -YAHOO.widget.Calendar.prototype.select = function(date) {
        -	this.logger.log("Select: " + date, "info");
        -	this.beforeSelectEvent.fire();
        -	
        -	var cfgSelected = YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;
        -
        -	var selected = this.cfg.getProperty(cfgSelected);
        -	var aToBeSelected = this._toFieldArray(date);
        -	this.logger.log("Selection field array: " + aToBeSelected, "info");
        -
        -	for (var a=0;a<aToBeSelected.length;++a) {
        -		var toSelect = aToBeSelected[a]; // For each date item in the list of dates we're trying to select
        -		if (this._indexOfSelectedFieldArray(toSelect) == -1) { // not already selected?
        -			selected[selected.length]=toSelect;
        -		}
        -	}
        -	
        -	if (this.parent) {
        -		this.parent.cfg.setProperty(cfgSelected, selected);
        -	} else {
        -		this.cfg.setProperty(cfgSelected, selected);
        -	}
        -
        -	this.selectEvent.fire(aToBeSelected);
        -	
        -	return this.getSelectedDates();
        -};
        -
        -/**
        -* Selects a date on the current calendar by referencing the index of the cell that should be selected.
        -* This method is used to easily select a single cell (usually with a mouse click) without having to do
        -* a full render. The selected style is applied to the cell directly.
        -* @method selectCell
        -* @param	{Number}	cellIndex	The index of the cell to select in the current calendar. 
        -* @return	{Date[]}	Array of JavaScript Date objects representing all individual dates that are currently selected.
        -*/
        -YAHOO.widget.Calendar.prototype.selectCell = function(cellIndex) {
        -	this.beforeSelectEvent.fire();
        -	
        -	var cfgSelected = YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;
        -	var selected = this.cfg.getProperty(cfgSelected);
        -
        -	var cell = this.cells[cellIndex];
        -	var cellDate = this.cellDates[cellIndex];
        -
        -	var dCellDate = this._toDate(cellDate);
        -	this.logger.log("Select: " + dCellDate, "info");
        -
        -	var selectDate = cellDate.concat();
        -
        -	if (this._indexOfSelectedFieldArray(selectDate) == -1) {
        -		selected[selected.length] = selectDate;
        -	}
        -
        -	if (this.parent) {
        -		this.parent.cfg.setProperty(cfgSelected, selected);
        -	} else {
        -		this.cfg.setProperty(cfgSelected, selected);
        -	}
        -
        -	this.renderCellStyleSelected(dCellDate,cell);
        -
        -	this.selectEvent.fire([selectDate]);
        -
        -	this.doCellMouseOut.call(cell, null, this);
        -
        -	return this.getSelectedDates();
        -};
        -
        -/**
        -* Deselects a date or a collection of dates on the current calendar. This method, by default,
        -* does not call the render method explicitly. Once deselection has completed, render must be 
        -* called for the changes to be reflected visually.
        -* @method deselect
        -* @param	{String/Date/Date[]}	date	The date string of dates to deselect in the current calendar. Valid formats are
        -*								individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).
        -*								Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).
        -*								This method can also take a JavaScript Date object or an array of Date objects.	
        -* @return	{Date[]}			Array of JavaScript Date objects representing all individual dates that are currently selected.
        -*/
        -YAHOO.widget.Calendar.prototype.deselect = function(date) {
        -	this.beforeDeselectEvent.fire();
        -	var cfgSelected = YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;
        -
        -	var selected = this.cfg.getProperty(cfgSelected);
        -
        -	var aToBeSelected = this._toFieldArray(date);
        -
        -	for (var a=0;a<aToBeSelected.length;++a) {
        -		var toSelect = aToBeSelected[a]; // For each date item in the list of dates we're trying to select
        -		var index = this._indexOfSelectedFieldArray(toSelect);
        -	
        -		if (index != -1) {	
        -			selected.splice(index,1);
        -		}
        -	}
        -
        -	if (this.parent) {
        -		this.parent.cfg.setProperty(cfgSelected, selected);
        -	} else {
        -		this.cfg.setProperty(cfgSelected, selected);
        -	}
        -
        -	this.deselectEvent.fire(aToBeSelected);
        -	
        -	return this.getSelectedDates();
        -};
        -
        -/**
        -* Deselects a date on the current calendar by referencing the index of the cell that should be deselected.
        -* This method is used to easily deselect a single cell (usually with a mouse click) without having to do
        -* a full render. The selected style is removed from the cell directly.
        -* @method deselectCell
        -* @param	{Number}	cellIndex	The index of the cell to deselect in the current calendar. 
        -* @return	{Date[]}	Array of JavaScript Date objects representing all individual dates that are currently selected.
        -*/
        -YAHOO.widget.Calendar.prototype.deselectCell = function(i) {
        -	this.beforeDeselectEvent.fire();
        -	
        -	var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG;
        -	
        -	var selected = this.cfg.getProperty(defCfg.SELECTED.key);
        -
        -	var cell = this.cells[i];
        -	var cellDate = this.cellDates[i];
        -	var cellDateIndex = this._indexOfSelectedFieldArray(cellDate);
        -
        -	var dCellDate = this._toDate(cellDate);
        -
        -	var selectDate = cellDate.concat();
        -
        -	if (cellDateIndex > -1) {
        -		if (this.cfg.getProperty(defCfg.PAGEDATE.key).getMonth() == dCellDate.getMonth() &&
        -			this.cfg.getProperty(defCfg.PAGEDATE.key).getFullYear() == dCellDate.getFullYear()) {
        -			YAHOO.util.Dom.removeClass(cell, this.Style.CSS_CELL_SELECTED);
        -		}
        -
        -		selected.splice(cellDateIndex, 1);
        -	}
        -
        -	if (this.parent) {
        -		this.parent.cfg.setProperty(defCfg.SELECTED.key, selected);
        -	} else {
        -		this.cfg.setProperty(defCfg.SELECTED.key, selected);
        -	}
        -	
        -	this.deselectEvent.fire(selectDate);
        -	return this.getSelectedDates();
        -};
        -
        -/**
        -* Deselects all dates on the current calendar.
        -* @method deselectAll
        -* @return {Date[]}		Array of JavaScript Date objects representing all individual dates that are currently selected.
        -*						Assuming that this function executes properly, the return value should be an empty array.
        -*						However, the empty array is returned for the sake of being able to check the selection status
        -*						of the calendar.
        -*/
        -YAHOO.widget.Calendar.prototype.deselectAll = function() {
        -	this.beforeDeselectEvent.fire();
        -	
        -	var cfgSelected = YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;
        -
        -	var selected = this.cfg.getProperty(cfgSelected);
        -	var count = selected.length;
        -	var sel = selected.concat();
        -
        -	if (this.parent) {
        -		this.parent.cfg.setProperty(cfgSelected, []);
        -	} else {
        -		this.cfg.setProperty(cfgSelected, []);
        -	}
        -	
        -	if (count > 0) {
        -		this.deselectEvent.fire(sel);
        -	}
        -
        -	return this.getSelectedDates();
        -};
        -
        -// END SELECTION METHODS
        -
        -// BEGIN TYPE CONVERSION METHODS
        -
        -/**
        -* Converts a date (either a JavaScript Date object, or a date string) to the internal data structure
        -* used to represent dates: [[yyyy,mm,dd],[yyyy,mm,dd]].
        -* @method _toFieldArray
        -* @private
        -* @param	{String/Date/Date[]}	date	The date string of dates to deselect in the current calendar. Valid formats are
        -*								individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).
        -*								Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).
        -*								This method can also take a JavaScript Date object or an array of Date objects.	
        -* @return {Array[](Number[])}	Array of date field arrays
        -*/
        -YAHOO.widget.Calendar.prototype._toFieldArray = function(date) {
        -	var returnDate = [];
        -
        -	if (date instanceof Date) {
        -		returnDate = [[date.getFullYear(), date.getMonth()+1, date.getDate()]];
        -	} else if (YAHOO.lang.isString(date)) {
        -		returnDate = this._parseDates(date);
        -	} else if (YAHOO.lang.isArray(date)) {
        -		for (var i=0;i<date.length;++i) {
        -			var d = date[i];
        -			returnDate[returnDate.length] = [d.getFullYear(),d.getMonth()+1,d.getDate()];
        -		}
        -	}
        -	
        -	return returnDate;
        -};
        -
        -/**
        -* Converts a date field array [yyyy,mm,dd] to a JavaScript Date object.
        -* @method _toDate
        -* @private
        -* @param	{Number[]}		dateFieldArray	The date field array to convert to a JavaScript Date.
        -* @return	{Date}	JavaScript Date object representing the date field array
        -*/
        -YAHOO.widget.Calendar.prototype._toDate = function(dateFieldArray) {
        -	if (dateFieldArray instanceof Date) {
        -		return dateFieldArray;
        -	} else {
        -		return new Date(dateFieldArray[0],dateFieldArray[1]-1,dateFieldArray[2]);
        -	}
        -};
        -
        -// END TYPE CONVERSION METHODS 
        -
        -// BEGIN UTILITY METHODS
        -
        -/**
        -* Converts a date field array [yyyy,mm,dd] to a JavaScript Date object.
        -* @method _fieldArraysAreEqual
        -* @private
        -* @param	{Number[]}	array1	The first date field array to compare
        -* @param	{Number[]}	array2	The first date field array to compare
        -* @return	{Boolean}	The boolean that represents the equality of the two arrays
        -*/
        -YAHOO.widget.Calendar.prototype._fieldArraysAreEqual = function(array1, array2) {
        -	var match = false;
        -
        -	if (array1[0]==array2[0]&&array1[1]==array2[1]&&array1[2]==array2[2]) {
        -		match=true;	
        -	}
        -
        -	return match;
        -};
        -
        -/**
        -* Gets the index of a date field array [yyyy,mm,dd] in the current list of selected dates.
        -* @method	_indexOfSelectedFieldArray
        -* @private
        -* @param	{Number[]}		find	The date field array to search for
        -* @return	{Number}			The index of the date field array within the collection of selected dates.
        -*								-1 will be returned if the date is not found.
        -*/
        -YAHOO.widget.Calendar.prototype._indexOfSelectedFieldArray = function(find) {
        -	var selected = -1;
        -	var seldates = this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key);
        -
        -	for (var s=0;s<seldates.length;++s) {
        -		var sArray = seldates[s];
        -		if (find[0]==sArray[0]&&find[1]==sArray[1]&&find[2]==sArray[2]) {
        -			selected = s;
        -			break;
        -		}
        -	}
        -
        -	return selected;
        -};
        -
        -/**
        -* Determines whether a given date is OOM (out of month).
        -* @method	isDateOOM
        -* @param	{Date}	date	The JavaScript Date object for which to check the OOM status
        -* @return	{Boolean}	true if the date is OOM
        -*/
        -YAHOO.widget.Calendar.prototype.isDateOOM = function(date) {
        -	return (date.getMonth() != this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key).getMonth());
        -};
        -
        -/**
        - * Parses a pagedate configuration property value. The value can either be specified as a string of form "mm/yyyy" or a Date object 
        - * and is parsed into a Date object normalized to the first day of the month. If no value is passed in, the month and year from today's date are used to create the Date object 
        - * @method	_parsePageDate
        - * @private
        - * @param {Date|String}	date	Pagedate value which needs to be parsed
        - * @return {Date}	The Date object representing the pagedate
        - */
        -YAHOO.widget.Calendar.prototype._parsePageDate = function(date) {
        -	var parsedDate;
        -	
        -	var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG;
        -
        -	if (date) {
        -		if (date instanceof Date) {
        -			parsedDate = YAHOO.widget.DateMath.findMonthStart(date);
        -		} else {
        -			var month, year, aMonthYear;
        -			aMonthYear = date.split(this.cfg.getProperty(defCfg.DATE_FIELD_DELIMITER.key));
        -			month = parseInt(aMonthYear[this.cfg.getProperty(defCfg.MY_MONTH_POSITION.key)-1], 10)-1;
        -			year = parseInt(aMonthYear[this.cfg.getProperty(defCfg.MY_YEAR_POSITION.key)-1], 10);
        -			
        -			parsedDate = new Date(year, month, 1);
        -		}
        -	} else {
        -		parsedDate = new Date(this.today.getFullYear(), this.today.getMonth(), 1);
        -	}
        -	return parsedDate;
        -};
        -
        -// END UTILITY METHODS
        -
        -// BEGIN EVENT HANDLERS
        -
        -/**
        -* Event executed before a date is selected in the calendar widget.
        -* @deprecated Event handlers for this event should be susbcribed to beforeSelectEvent.
        -*/
        -YAHOO.widget.Calendar.prototype.onBeforeSelect = function() {
        -	if (this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MULTI_SELECT.key) === false) {
        -		if (this.parent) {
        -			this.parent.callChildFunction("clearAllBodyCellStyles", this.Style.CSS_CELL_SELECTED);
        -			this.parent.deselectAll();
        -		} else {
        -			this.clearAllBodyCellStyles(this.Style.CSS_CELL_SELECTED);
        -			this.deselectAll();
        -		}
        -	}
        -};
        -
        -/**
        -* Event executed when a date is selected in the calendar widget.
        -* @param	{Array}	selected	An array of date field arrays representing which date or dates were selected. Example: [ [2006,8,6],[2006,8,7],[2006,8,8] ]
        -* @deprecated Event handlers for this event should be susbcribed to selectEvent.
        -*/
        -YAHOO.widget.Calendar.prototype.onSelect = function(selected) { };
        -
        -/**
        -* Event executed before a date is deselected in the calendar widget.
        -* @deprecated Event handlers for this event should be susbcribed to beforeDeselectEvent.
        -*/
        -YAHOO.widget.Calendar.prototype.onBeforeDeselect = function() { };
        -
        -/**
        -* Event executed when a date is deselected in the calendar widget.
        -* @param	{Array}	selected	An array of date field arrays representing which date or dates were deselected. Example: [ [2006,8,6],[2006,8,7],[2006,8,8] ]
        -* @deprecated Event handlers for this event should be susbcribed to deselectEvent.
        -*/
        -YAHOO.widget.Calendar.prototype.onDeselect = function(deselected) { };
        -
        -/**
        -* Event executed when the user navigates to a different calendar page.
        -* @deprecated Event handlers for this event should be susbcribed to changePageEvent.
        -*/
        -YAHOO.widget.Calendar.prototype.onChangePage = function() {
        -	this.render();
        -};
        -
        -/**
        -* Event executed when the calendar widget is rendered.
        -* @deprecated Event handlers for this event should be susbcribed to renderEvent.
        -*/
        -YAHOO.widget.Calendar.prototype.onRender = function() { };
        -
        -/**
        -* Event executed when the calendar widget is reset to its original state.
        -* @deprecated Event handlers for this event should be susbcribed to resetEvemt.
        -*/
        -YAHOO.widget.Calendar.prototype.onReset = function() { this.render(); };
        -
        -/**
        -* Event executed when the calendar widget is completely cleared to the current month with no selections.
        -* @deprecated Event handlers for this event should be susbcribed to clearEvent.
        -*/
        -YAHOO.widget.Calendar.prototype.onClear = function() { this.render(); };
        -
        -/**
        -* Validates the calendar widget. This method has no default implementation
        -* and must be extended by subclassing the widget.
        -* @return	Should return true if the widget validates, and false if
        -* it doesn't.
        -* @type Boolean
        -*/
        -YAHOO.widget.Calendar.prototype.validate = function() { return true; };
        -
        -// END EVENT HANDLERS
        -
        -// BEGIN DATE PARSE METHODS
        -
        -/**
        -* Converts a date string to a date field array
        -* @private
        -* @param	{String}	sDate			Date string. Valid formats are mm/dd and mm/dd/yyyy.
        -* @return				A date field array representing the string passed to the method
        -* @type Array[](Number[])
        -*/
        -YAHOO.widget.Calendar.prototype._parseDate = function(sDate) {
        -	var aDate = sDate.split(this.Locale.DATE_FIELD_DELIMITER);
        -	var rArray;
        -
        -	if (aDate.length == 2) {
        -		rArray = [aDate[this.Locale.MD_MONTH_POSITION-1],aDate[this.Locale.MD_DAY_POSITION-1]];
        -		rArray.type = YAHOO.widget.Calendar.MONTH_DAY;
        -	} else {
        -		rArray = [aDate[this.Locale.MDY_YEAR_POSITION-1],aDate[this.Locale.MDY_MONTH_POSITION-1],aDate[this.Locale.MDY_DAY_POSITION-1]];
        -		rArray.type = YAHOO.widget.Calendar.DATE;
        -	}
        -
        -	for (var i=0;i<rArray.length;i++) {
        -		rArray[i] = parseInt(rArray[i], 10);
        -	}
        -
        -	return rArray;
        -};
        -
        -/**
        -* Converts a multi or single-date string to an array of date field arrays
        -* @private
        -* @param	{String}	sDates		Date string with one or more comma-delimited dates. Valid formats are mm/dd, mm/dd/yyyy, mm/dd/yyyy-mm/dd/yyyy
        -* @return							An array of date field arrays
        -* @type Array[](Number[])
        -*/
        -YAHOO.widget.Calendar.prototype._parseDates = function(sDates) {
        -	var aReturn = [];
        -
        -	var aDates = sDates.split(this.Locale.DATE_DELIMITER);
        -	
        -	for (var d=0;d<aDates.length;++d) {
        -		var sDate = aDates[d];
        -
        -		if (sDate.indexOf(this.Locale.DATE_RANGE_DELIMITER) != -1) {
        -			// This is a range
        -			var aRange = sDate.split(this.Locale.DATE_RANGE_DELIMITER);
        -
        -			var dateStart = this._parseDate(aRange[0]);
        -			var dateEnd = this._parseDate(aRange[1]);
        -
        -			var fullRange = this._parseRange(dateStart, dateEnd);
        -			aReturn = aReturn.concat(fullRange);
        -		} else {
        -			// This is not a range
        -			var aDate = this._parseDate(sDate);
        -			aReturn.push(aDate);
        -		}
        -	}
        -	return aReturn;
        -};
        -
        -/**
        -* Converts a date range to the full list of included dates
        -* @private
        -* @param	{Number[]}	startDate	Date field array representing the first date in the range
        -* @param	{Number[]}	endDate		Date field array representing the last date in the range
        -* @return							An array of date field arrays
        -* @type Array[](Number[])
        -*/
        -YAHOO.widget.Calendar.prototype._parseRange = function(startDate, endDate) {
        -	var dStart   = new Date(startDate[0],startDate[1]-1,startDate[2]);
        -	var dCurrent = YAHOO.widget.DateMath.add(new Date(startDate[0],startDate[1]-1,startDate[2]),YAHOO.widget.DateMath.DAY,1);
        -	var dEnd     = new Date(endDate[0],  endDate[1]-1,  endDate[2]);
        -
        -	var results = [];
        -	results.push(startDate);
        -	while (dCurrent.getTime() <= dEnd.getTime()) {
        -		results.push([dCurrent.getFullYear(),dCurrent.getMonth()+1,dCurrent.getDate()]);
        -		dCurrent = YAHOO.widget.DateMath.add(dCurrent,YAHOO.widget.DateMath.DAY,1);
        -	}
        -	return results;
        -};
        -
        -// END DATE PARSE METHODS
        -
        -// BEGIN RENDERER METHODS
        -
        -/**
        -* Resets the render stack of the current calendar to its original pre-render value.
        -*/
        -YAHOO.widget.Calendar.prototype.resetRenderers = function() {
        -	this.renderStack = this._renderStack.concat();
        -};
        -
        -/**
        -* Clears the inner HTML, CSS class and style information from the specified cell.
        -* @method clearElement
        -* @param	{HTMLTableCellElement}	The cell to clear
        -*/ 
        -YAHOO.widget.Calendar.prototype.clearElement = function(cell) {
        -	cell.innerHTML = "&#160;";
        -	cell.className="";
        -};
        -
        -/**
        -* Adds a renderer to the render stack. The function reference passed to this method will be executed
        -* when a date cell matches the conditions specified in the date string for this renderer.
        -* @method addRenderer
        -* @param	{String}	sDates		A date string to associate with the specified renderer. Valid formats
        -*									include date (12/24/2005), month/day (12/24), and range (12/1/2004-1/1/2005)
        -* @param	{Function}	fnRender	The function executed to render cells that match the render rules for this renderer.
        -*/
        -YAHOO.widget.Calendar.prototype.addRenderer = function(sDates, fnRender) {
        -	var aDates = this._parseDates(sDates);
        -	for (var i=0;i<aDates.length;++i) {
        -		var aDate = aDates[i];
        -	
        -		if (aDate.length == 2) { // this is either a range or a month/day combo
        -			if (aDate[0] instanceof Array) { // this is a range
        -				this._addRenderer(YAHOO.widget.Calendar.RANGE,aDate,fnRender);
        -			} else { // this is a month/day combo
        -				this._addRenderer(YAHOO.widget.Calendar.MONTH_DAY,aDate,fnRender);
        -			}
        -		} else if (aDate.length == 3) {
        -			this._addRenderer(YAHOO.widget.Calendar.DATE,aDate,fnRender);
        -		}
        -	}
        -};
        -
        -/**
        -* The private method used for adding cell renderers to the local render stack.
        -* This method is called by other methods that set the renderer type prior to the method call.
        -* @method _addRenderer
        -* @private
        -* @param	{String}	type		The type string that indicates the type of date renderer being added.
        -*									Values are YAHOO.widget.Calendar.DATE, YAHOO.widget.Calendar.MONTH_DAY, YAHOO.widget.Calendar.WEEKDAY,
        -*									YAHOO.widget.Calendar.RANGE, YAHOO.widget.Calendar.MONTH
        -* @param	{Array}		aDates		An array of dates used to construct the renderer. The format varies based
        -*									on the renderer type
        -* @param	{Function}	fnRender	The function executed to render cells that match the render rules for this renderer.
        -*/
        -YAHOO.widget.Calendar.prototype._addRenderer = function(type, aDates, fnRender) {
        -	var add = [type,aDates,fnRender];
        -	this.renderStack.unshift(add);	
        -	this._renderStack = this.renderStack.concat();
        -};
        -
        -/**
        -* Adds a month to the render stack. The function reference passed to this method will be executed
        -* when a date cell matches the month passed to this method.
        -* @method addMonthRenderer
        -* @param	{Number}	month		The month (1-12) to associate with this renderer
        -* @param	{Function}	fnRender	The function executed to render cells that match the render rules for this renderer.
        -*/
        -YAHOO.widget.Calendar.prototype.addMonthRenderer = function(month, fnRender) {
        -	this._addRenderer(YAHOO.widget.Calendar.MONTH,[month],fnRender);
        -};
        -
        -/**
        -* Adds a weekday to the render stack. The function reference passed to this method will be executed
        -* when a date cell matches the weekday passed to this method.
        -* @method addWeekdayRenderer
        -* @param	{Number}	weekday		The weekday (0-6) to associate with this renderer
        -* @param	{Function}	fnRender	The function executed to render cells that match the render rules for this renderer.
        -*/
        -YAHOO.widget.Calendar.prototype.addWeekdayRenderer = function(weekday, fnRender) {
        -	this._addRenderer(YAHOO.widget.Calendar.WEEKDAY,[weekday],fnRender);
        -};
        -
        -// END RENDERER METHODS
        -
        -// BEGIN CSS METHODS
        -
        -/**
        -* Removes all styles from all body cells in the current calendar table.
        -* @method clearAllBodyCellStyles
        -* @param	{style}		The CSS class name to remove from all calendar body cells
        -*/
        -YAHOO.widget.Calendar.prototype.clearAllBodyCellStyles = function(style) {
        -	for (var c=0;c<this.cells.length;++c) {
        -		YAHOO.util.Dom.removeClass(this.cells[c],style);
        -	}
        -};
        -
        -// END CSS METHODS
        -
        -// BEGIN GETTER/SETTER METHODS
        -/**
        -* Sets the calendar's month explicitly
        -* @method setMonth
        -* @param {Number}	month		The numeric month, from 0 (January) to 11 (December)
        -*/
        -YAHOO.widget.Calendar.prototype.setMonth = function(month) {
        -	var cfgPageDate = YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;
        -	var current = this.cfg.getProperty(cfgPageDate);
        -	current.setMonth(parseInt(month, 10));
        -	this.cfg.setProperty(cfgPageDate, current);
        -};
        -
        -/**
        -* Sets the calendar's year explicitly.
        -* @method setYear
        -* @param {Number}	year		The numeric 4-digit year
        -*/
        -YAHOO.widget.Calendar.prototype.setYear = function(year) {
        -	var cfgPageDate = YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;
        -	var current = this.cfg.getProperty(cfgPageDate);
        -	current.setFullYear(parseInt(year, 10));
        -	this.cfg.setProperty(cfgPageDate, current);
        -};
        -
        -/**
        -* Gets the list of currently selected dates from the calendar.
        -* @method getSelectedDates
        -* @return {Date[]} An array of currently selected JavaScript Date objects.
        -*/
        -YAHOO.widget.Calendar.prototype.getSelectedDates = function() {
        -	var returnDates = [];
        -	var selected = this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key);
        -
        -	for (var d=0;d<selected.length;++d) {
        -		var dateArray = selected[d];
        -
        -		var date = new Date(dateArray[0],dateArray[1]-1,dateArray[2]);
        -		returnDates.push(date);
        -	}
        -
        -	returnDates.sort( function(a,b) { return a-b; } );
        -	return returnDates;
        -};
        -
        -/// END GETTER/SETTER METHODS ///
        -
        -/**
        -* Hides the Calendar's outer container from view.
        -* @method hide
        -*/
        -YAHOO.widget.Calendar.prototype.hide = function() {
        -	this.oDomContainer.style.display = "none";
        -};
        -
        -/**
        -* Shows the Calendar's outer container.
        -* @method show
        -*/
        -YAHOO.widget.Calendar.prototype.show = function() {
        -	this.oDomContainer.style.display = "block";
        -};
        -
        -/**
        -* Returns a string representing the current browser.
        -* @property browser
        -* @type String
        -*/
        -YAHOO.widget.Calendar.prototype.browser = function() {
        -			var ua = navigator.userAgent.toLowerCase();
        -				  if (ua.indexOf('opera')!=-1) { // Opera (check first in case of spoof)
        -					 return 'opera';
        -				  } else if (ua.indexOf('msie 7')!=-1) { // IE7
        -					 return 'ie7';
        -				  } else if (ua.indexOf('msie') !=-1) { // IE
        -					 return 'ie';
        -				  } else if (ua.indexOf('safari')!=-1) { // Safari (check before Gecko because it includes "like Gecko")
        -					 return 'safari';
        -				  } else if (ua.indexOf('gecko') != -1) { // Gecko
        -					 return 'gecko';
        -				  } else {
        -					 return false;
        -				  }
        -			}();
        -/**
        -* Returns a string representation of the object.
        -* @method toString
        -* @return {String}	A string representation of the Calendar object.
        -*/
        -YAHOO.widget.Calendar.prototype.toString = function() {
        -	return "Calendar " + this.id;
        -};
        -
        -/**
        -* @namespace YAHOO.widget
        -* @class Calendar_Core
        -* @extends YAHOO.widget.Calendar
        -* @deprecated The old Calendar_Core class is no longer necessary.
        -*/
        -YAHOO.widget.Calendar_Core = YAHOO.widget.Calendar;
        -
        -YAHOO.widget.Cal_Core = YAHOO.widget.Calendar;
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/CalendarGroup.js.html b/www/extras/yui/docs/CalendarGroup.js.html deleted file mode 100644 index 63d2b1c37..000000000 --- a/www/extras/yui/docs/CalendarGroup.js.html +++ /dev/null @@ -1,1230 +0,0 @@ - - - - API: calendar CalendarGroup.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Calendar  2.2.2

        -

        - Yahoo! UI Library - > calendar - - > CalendarGroup.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* YAHOO.widget.CalendarGroup is a special container class for YAHOO.widget.Calendar. This class facilitates
        -* the ability to have multi-page calendar views that share a single dataset and are
        -* dependent on each other.
        -* 
        -* The calendar group instance will refer to each of its elements using a 0-based index.
        -* For example, to construct the placeholder for a calendar group widget with id "cal1" and
        -* containerId of "cal1Container", the markup would be as follows:
        -*	<xmp>
        -*		<div id="cal1Container_0"></div>
        -*		<div id="cal1Container_1"></div>
        -*	</xmp>
        -* The tables for the calendars ("cal1_0" and "cal1_1") will be inserted into those containers.
        -* @namespace YAHOO.widget
        -* @class CalendarGroup
        -* @constructor
        -* @param {String}	id			The id of the table element that will represent the calendar widget
        -* @param {String}	containerId	The id of the container div element that will wrap the calendar table
        -* @param {Object}	config		The configuration object containing the Calendar's arguments
        -*/
        -YAHOO.widget.CalendarGroup = function(id, containerId, config) {
        -	if (arguments.length > 0) {
        -		this.init(id, containerId, config);
        -	}
        -};
        -
        -/**
        -* Initializes the calendar group. All subclasses must call this method in order for the
        -* group to be initialized properly.
        -* @method init
        -* @param {String}	id			The id of the table element that will represent the calendar widget
        -* @param {String}	containerId	The id of the container div element that will wrap the calendar table
        -* @param {Object}	config		The configuration object containing the Calendar's arguments
        -*/
        -YAHOO.widget.CalendarGroup.prototype.init = function(id, containerId, config) {
        -	this.logger = new YAHOO.widget.LogWriter("CalendarGroup " + id);
        -	this.initEvents();
        -	this.initStyles();
        -
        -	/**
        -	* The collection of Calendar pages contained within the CalendarGroup
        -	* @property pages
        -	* @type YAHOO.widget.Calendar[]
        -	*/
        -	this.pages = [];
        -	
        -	/**
        -	* The unique id associated with the CalendarGroup
        -	* @property id
        -	* @type String
        -	*/
        -	this.id = id;
        -
        -	/**
        -	* The unique id associated with the CalendarGroup container
        -	* @property containerId
        -	* @type String
        -	*/
        -	this.containerId = containerId;
        -
        -	/**
        -	* The outer containing element for the CalendarGroup
        -	* @property oDomContainer
        -	* @type HTMLElement
        -	*/
        -	this.oDomContainer = document.getElementById(containerId);
        -
        -	YAHOO.util.Dom.addClass(this.oDomContainer, YAHOO.widget.CalendarGroup.CSS_CONTAINER);
        -	YAHOO.util.Dom.addClass(this.oDomContainer, YAHOO.widget.CalendarGroup.CSS_MULTI_UP);
        -
        -	/**
        -	* The Config object used to hold the configuration variables for the CalendarGroup
        -	* @property cfg
        -	* @type YAHOO.util.Config
        -	*/
        -	this.cfg = new YAHOO.util.Config(this);
        -
        -	/**
        -	* The local object which contains the CalendarGroup's options
        -	* @property Options
        -	* @type Object
        -	*/
        -	this.Options = {};
        -
        -	/**
        -	* The local object which contains the CalendarGroup's locale settings
        -	* @property Locale
        -	* @type Object
        -	*/
        -	this.Locale = {};
        -
        -	this.setupConfig();
        -
        -	if (config) {
        -		this.cfg.applyConfig(config, true);
        -	}
        -
        -	this.cfg.fireQueue();
        -
        -	// OPERA HACK FOR MISWRAPPED FLOATS
        -	if (this.browser == "opera"){
        -		var fixWidth = function() {
        -			var startW = this.oDomContainer.offsetWidth;
        -			var w = 0;
        -			for (var p=0;p<this.pages.length;++p) {
        -				var cal = this.pages[p];
        -				w += cal.oDomContainer.offsetWidth;
        -			}
        -			if (w > 0) {
        -				this.oDomContainer.style.width = w + "px";
        -			}
        -		};
        -		this.renderEvent.subscribe(fixWidth,this,true);
        -	}
        -	this.logger.log("Initialized " + this.pages.length + "-page CalendarGroup", "info");
        -};
        -
        -
        -YAHOO.widget.CalendarGroup.prototype.setupConfig = function() {
        -	
        -	var defCfg = YAHOO.widget.CalendarGroup._DEFAULT_CONFIG;
        -	
        -	/**
        -	* The number of pages to include in the CalendarGroup. This value can only be set once, in the CalendarGroup's constructor arguments.
        -	* @config pages
        -	* @type Number
        -	* @default 2
        -	*/
        -	this.cfg.addProperty(defCfg.PAGES.key, { value:defCfg.PAGES.value, validator:this.cfg.checkNumber, handler:this.configPages } );
        -
        -	/**
        -	* The month/year representing the current visible Calendar date (mm/yyyy)
        -	* @config pagedate
        -	* @type String
        -	* @default today's date
        -	*/
        -	this.cfg.addProperty(defCfg.PAGEDATE.key, { value:new Date(), handler:this.configPageDate } );
        -
        -	/**
        -	* The date or range of dates representing the current Calendar selection
        -	* @config selected
        -	* @type String
        -	* @default []
        -	*/
        -	this.cfg.addProperty(defCfg.SELECTED.key, { value:[], handler:this.configSelected } );
        -
        -	/**
        -	* The title to display above the CalendarGroup's month header
        -	* @config title
        -	* @type String
        -	* @default ""
        -	*/
        -	this.cfg.addProperty(defCfg.TITLE.key, { value:defCfg.TITLE.value, handler:this.configTitle } );
        -
        -	/**
        -	* Whether or not a close button should be displayed for this CalendarGroup
        -	* @config close
        -	* @type Boolean
        -	* @default false
        -	*/
        -	this.cfg.addProperty(defCfg.CLOSE.key, { value:defCfg.CLOSE.value, handler:this.configClose } );
        -
        -	/**
        -	* Whether or not an iframe shim should be placed under the Calendar to prevent select boxes from bleeding through in Internet Explorer 6 and below.
        -	* @config iframe
        -	* @type Boolean
        -	* @default true
        -	*/
        -	this.cfg.addProperty(defCfg.IFRAME.key, { value:defCfg.IFRAME.value, handler:this.configIframe, validator:this.cfg.checkBoolean } );
        -
        -	/**
        -	* The minimum selectable date in the current Calendar (mm/dd/yyyy)
        -	* @config mindate
        -	* @type String
        -	* @default null
        -	*/
        -	this.cfg.addProperty(defCfg.MINDATE.key, { value:defCfg.MINDATE.value, handler:this.delegateConfig } );
        -
        -	/**
        -	* The maximum selectable date in the current Calendar (mm/dd/yyyy)
        -	* @config maxdate
        -	* @type String
        -	* @default null
        -	*/	
        -	this.cfg.addProperty(defCfg.MAXDATE.key, { value:defCfg.MAXDATE.value, handler:this.delegateConfig  } );
        -
        -	// Options properties
        -
        -	/**
        -	* True if the Calendar should allow multiple selections. False by default.
        -	* @config MULTI_SELECT
        -	* @type Boolean
        -	* @default false
        -	*/
        -	this.cfg.addProperty(defCfg.MULTI_SELECT.key,	{ value:defCfg.MULTI_SELECT.value, handler:this.delegateConfig, validator:this.cfg.checkBoolean } );
        -
        -	/**
        -	* The weekday the week begins on. Default is 0 (Sunday).
        -	* @config START_WEEKDAY
        -	* @type number
        -	* @default 0
        -	*/	
        -	this.cfg.addProperty(defCfg.START_WEEKDAY.key,	{ value:defCfg.START_WEEKDAY.value, handler:this.delegateConfig, validator:this.cfg.checkNumber  } );
        -	
        -	/**
        -	* True if the Calendar should show weekday labels. True by default.
        -	* @config SHOW_WEEKDAYS
        -	* @type Boolean
        -	* @default true
        -	*/	
        -	this.cfg.addProperty(defCfg.SHOW_WEEKDAYS.key,	{ value:defCfg.SHOW_WEEKDAYS.value, handler:this.delegateConfig, validator:this.cfg.checkBoolean } );
        -	
        -	/**
        -	* True if the Calendar should show week row headers. False by default.
        -	* @config SHOW_WEEK_HEADER
        -	* @type Boolean
        -	* @default false
        -	*/	
        -	this.cfg.addProperty(defCfg.SHOW_WEEK_HEADER.key,{ value:defCfg.SHOW_WEEK_HEADER.value, handler:this.delegateConfig, validator:this.cfg.checkBoolean } );
        -	
        -	/**
        -	* True if the Calendar should show week row footers. False by default.
        -	* @config SHOW_WEEK_FOOTER
        -	* @type Boolean
        -	* @default false
        -	*/
        -	this.cfg.addProperty(defCfg.SHOW_WEEK_FOOTER.key,{ value:defCfg.SHOW_WEEK_FOOTER.value, handler:this.delegateConfig, validator:this.cfg.checkBoolean } );
        -	
        -	/**
        -	* True if the Calendar should suppress weeks that are not a part of the current month. False by default.
        -	* @config HIDE_BLANK_WEEKS
        -	* @type Boolean
        -	* @default false
        -	*/		
        -	this.cfg.addProperty(defCfg.HIDE_BLANK_WEEKS.key,{ value:defCfg.HIDE_BLANK_WEEKS.value, handler:this.delegateConfig, validator:this.cfg.checkBoolean } );
        -	
        -	/**
        -	* The image that should be used for the left navigation arrow.
        -	* @config NAV_ARROW_LEFT
        -	* @type String
        -	* @deprecated	You can customize the image by overriding the default CSS class for the left arrow - "calnavleft"
        -	* @default null
        -	*/		
        -	this.cfg.addProperty(defCfg.NAV_ARROW_LEFT.key,	{ value:defCfg.NAV_ARROW_LEFT.value, handler:this.delegateConfig } );
        -	
        -	/**
        -	* The image that should be used for the right navigation arrow.
        -	* @config NAV_ARROW_RIGHT
        -	* @type String
        -	* @deprecated	You can customize the image by overriding the default CSS class for the right arrow - "calnavright"
        -	* @default null
        -	*/		
        -	this.cfg.addProperty(defCfg.NAV_ARROW_RIGHT.key,	{ value:defCfg.NAV_ARROW_RIGHT.value, handler:this.delegateConfig } );
        -
        -	// Locale properties
        -	
        -	/**
        -	* The short month labels for the current locale.
        -	* @config MONTHS_SHORT
        -	* @type String[]
        -	* @default ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        -	*/
        -	this.cfg.addProperty(defCfg.MONTHS_SHORT.key,	{ value:defCfg.MONTHS_SHORT.value, handler:this.delegateConfig } );
        -	
        -	/**
        -	* The long month labels for the current locale.
        -	* @config MONTHS_LONG
        -	* @type String[]
        -	* @default ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
        -	*/		
        -	this.cfg.addProperty(defCfg.MONTHS_LONG.key,		{ value:defCfg.MONTHS_LONG.value, handler:this.delegateConfig } );
        -	
        -	/**
        -	* The 1-character weekday labels for the current locale.
        -	* @config WEEKDAYS_1CHAR
        -	* @type String[]
        -	* @default ["S", "M", "T", "W", "T", "F", "S"]
        -	*/		
        -	this.cfg.addProperty(defCfg.WEEKDAYS_1CHAR.key,	{ value:defCfg.WEEKDAYS_1CHAR.value, handler:this.delegateConfig } );
        -	
        -	/**
        -	* The short weekday labels for the current locale.
        -	* @config WEEKDAYS_SHORT
        -	* @type String[]
        -	* @default ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]
        -	*/		
        -	this.cfg.addProperty(defCfg.WEEKDAYS_SHORT.key,	{ value:defCfg.WEEKDAYS_SHORT.value, handler:this.delegateConfig } );
        -	
        -	/**
        -	* The medium weekday labels for the current locale.
        -	* @config WEEKDAYS_MEDIUM
        -	* @type String[]
        -	* @default ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
        -	*/		
        -	this.cfg.addProperty(defCfg.WEEKDAYS_MEDIUM.key,	{ value:defCfg.WEEKDAYS_MEDIUM.value, handler:this.delegateConfig } );
        -	
        -	/**
        -	* The long weekday labels for the current locale.
        -	* @config WEEKDAYS_LONG
        -	* @type String[]
        -	* @default ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
        -	*/		
        -	this.cfg.addProperty(defCfg.WEEKDAYS_LONG.key,	{ value:defCfg.WEEKDAYS_LONG.value, handler:this.delegateConfig } );
        -
        -	/**
        -	* The setting that determines which length of month labels should be used. Possible values are "short" and "long".
        -	* @config LOCALE_MONTHS
        -	* @type String
        -	* @default "long"
        -	*/
        -	this.cfg.addProperty(defCfg.LOCALE_MONTHS.key,	{ value:defCfg.LOCALE_MONTHS.value, handler:this.delegateConfig } );
        -
        -	/**
        -	* The setting that determines which length of weekday labels should be used. Possible values are "1char", "short", "medium", and "long".
        -	* @config LOCALE_WEEKDAYS
        -	* @type String
        -	* @default "short"
        -	*/	
        -	this.cfg.addProperty(defCfg.LOCALE_WEEKDAYS.key,	{ value:defCfg.LOCALE_WEEKDAYS.value, handler:this.delegateConfig } );
        -
        -	/**
        -	* The value used to delimit individual dates in a date string passed to various Calendar functions.
        -	* @config DATE_DELIMITER
        -	* @type String
        -	* @default ","
        -	*/
        -	this.cfg.addProperty(defCfg.DATE_DELIMITER.key,		{ value:defCfg.DATE_DELIMITER.value, handler:this.delegateConfig } );
        -
        -	/**
        -	* The value used to delimit date fields in a date string passed to various Calendar functions.
        -	* @config DATE_FIELD_DELIMITER
        -	* @type String
        -	* @default "/"
        -	*/	
        -	this.cfg.addProperty(defCfg.DATE_FIELD_DELIMITER.key,{ value:defCfg.DATE_FIELD_DELIMITER.value, handler:this.delegateConfig } );
        -
        -	/**
        -	* The value used to delimit date ranges in a date string passed to various Calendar functions.
        -	* @config DATE_RANGE_DELIMITER
        -	* @type String
        -	* @default "-"
        -	*/
        -	this.cfg.addProperty(defCfg.DATE_RANGE_DELIMITER.key,{ value:defCfg.DATE_RANGE_DELIMITER.value, handler:this.delegateConfig } );
        -
        -	/**
        -	* The position of the month in a month/year date string
        -	* @config MY_MONTH_POSITION
        -	* @type Number
        -	* @default 1
        -	*/
        -	this.cfg.addProperty(defCfg.MY_MONTH_POSITION.key,	{ value:defCfg.MY_MONTH_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } );
        -	
        -	/**
        -	* The position of the year in a month/year date string
        -	* @config MY_YEAR_POSITION
        -	* @type Number
        -	* @default 2
        -	*/	
        -	this.cfg.addProperty(defCfg.MY_YEAR_POSITION.key,	{ value:defCfg.MY_YEAR_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } );
        -	
        -	/**
        -	* The position of the month in a month/day date string
        -	* @config MD_MONTH_POSITION
        -	* @type Number
        -	* @default 1
        -	*/	
        -	this.cfg.addProperty(defCfg.MD_MONTH_POSITION.key,	{ value:defCfg.MD_MONTH_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } );
        -	
        -	/**
        -	* The position of the day in a month/year date string
        -	* @config MD_DAY_POSITION
        -	* @type Number
        -	* @default 2
        -	*/	
        -	this.cfg.addProperty(defCfg.MD_DAY_POSITION.key,		{ value:defCfg.MD_DAY_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } );
        -	
        -	/**
        -	* The position of the month in a month/day/year date string
        -	* @config MDY_MONTH_POSITION
        -	* @type Number
        -	* @default 1
        -	*/	
        -	this.cfg.addProperty(defCfg.MDY_MONTH_POSITION.key,	{ value:defCfg.MDY_MONTH_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } );
        -	
        -	/**
        -	* The position of the day in a month/day/year date string
        -	* @config MDY_DAY_POSITION
        -	* @type Number
        -	* @default 2
        -	*/	
        -	this.cfg.addProperty(defCfg.MDY_DAY_POSITION.key,	{ value:defCfg.MDY_DAY_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } );
        -	
        -	/**
        -	* The position of the year in a month/day/year date string
        -	* @config MDY_YEAR_POSITION
        -	* @type Number
        -	* @default 3
        -	*/	
        -	this.cfg.addProperty(defCfg.MDY_YEAR_POSITION.key,	{ value:defCfg.MDY_YEAR_POSITION.value, handler:this.delegateConfig, validator:this.cfg.checkNumber } );
        -
        -};
        -
        -/**
        -* Initializes CalendarGroup's built-in CustomEvents
        -* @method initEvents
        -*/
        -YAHOO.widget.CalendarGroup.prototype.initEvents = function() {
        -	var me = this;
        -	var strEvent = "Event";
        -
        -	/**
        -	* Proxy subscriber to subscribe to the CalendarGroup's child Calendars' CustomEvents
        -	* @method sub
        -	* @private
        -	* @param {Function} fn	The function to subscribe to this CustomEvent
        -	* @param {Object}	obj	The CustomEvent's scope object
        -	* @param {Boolean}	bOverride	Whether or not to apply scope correction
        -	*/
        -	var sub = function(fn, obj, bOverride) {
        -		for (var p=0;p<me.pages.length;++p) {
        -			var cal = me.pages[p];
        -			cal[this.type + strEvent].subscribe(fn, obj, bOverride);
        -		}
        -	};
        -
        -	/**
        -	* Proxy unsubscriber to unsubscribe from the CalendarGroup's child Calendars' CustomEvents
        -	* @method unsub
        -	* @private
        -	* @param {Function} fn	The function to subscribe to this CustomEvent
        -	* @param {Object}	obj	The CustomEvent's scope object
        -	*/
        -	var unsub = function(fn, obj) {
        -		for (var p=0;p<me.pages.length;++p) {
        -			var cal = me.pages[p];
        -			cal[this.type + strEvent].unsubscribe(fn, obj);
        -		}
        -	};
        -	
        -	var defEvents = YAHOO.widget.Calendar._EVENT_TYPES;
        -
        -	/**
        -	* Fired before a selection is made
        -	* @event beforeSelectEvent
        -	*/
        -	this.beforeSelectEvent = new YAHOO.util.CustomEvent(defEvents.BEFORE_SELECT);
        -	this.beforeSelectEvent.subscribe = sub; this.beforeSelectEvent.unsubscribe = unsub;
        -
        -	/**
        -	* Fired when a selection is made
        -	* @event selectEvent
        -	* @param {Array}	Array of Date field arrays in the format [YYYY, MM, DD].
        -	*/
        -	this.selectEvent = new YAHOO.util.CustomEvent(defEvents.SELECT); 
        -	this.selectEvent.subscribe = sub; this.selectEvent.unsubscribe = unsub;
        -
        -	/**
        -	* Fired before a selection is made
        -	* @event beforeDeselectEvent
        -	*/
        -	this.beforeDeselectEvent = new YAHOO.util.CustomEvent(defEvents.BEFORE_DESELECT); 
        -	this.beforeDeselectEvent.subscribe = sub; this.beforeDeselectEvent.unsubscribe = unsub;
        -
        -	/**
        -	* Fired when a selection is made
        -	* @event deselectEvent
        -	* @param {Array}	Array of Date field arrays in the format [YYYY, MM, DD].
        -	*/
        -	this.deselectEvent = new YAHOO.util.CustomEvent(defEvents.DESELECT); 
        -	this.deselectEvent.subscribe = sub; this.deselectEvent.unsubscribe = unsub;
        -	
        -	/**
        -	* Fired when the Calendar page is changed
        -	* @event changePageEvent
        -	*/
        -	this.changePageEvent = new YAHOO.util.CustomEvent(defEvents.CHANGE_PAGE); 
        -	this.changePageEvent.subscribe = sub; this.changePageEvent.unsubscribe = unsub;
        -
        -	/**
        -	* Fired before the Calendar is rendered
        -	* @event beforeRenderEvent
        -	*/
        -	this.beforeRenderEvent = new YAHOO.util.CustomEvent(defEvents.BEFORE_RENDER);
        -	this.beforeRenderEvent.subscribe = sub; this.beforeRenderEvent.unsubscribe = unsub;
        -
        -	/**
        -	* Fired when the Calendar is rendered
        -	* @event renderEvent
        -	*/
        -	this.renderEvent = new YAHOO.util.CustomEvent(defEvents.RENDER);
        -	this.renderEvent.subscribe = sub; this.renderEvent.unsubscribe = unsub;
        -
        -	/**
        -	* Fired when the Calendar is reset
        -	* @event resetEvent
        -	*/
        -	this.resetEvent = new YAHOO.util.CustomEvent(defEvents.RESET); 
        -	this.resetEvent.subscribe = sub; this.resetEvent.unsubscribe = unsub;
        -
        -	/**
        -	* Fired when the Calendar is cleared
        -	* @event clearEvent
        -	*/
        -	this.clearEvent = new YAHOO.util.CustomEvent(defEvents.CLEAR);
        -	this.clearEvent.subscribe = sub; this.clearEvent.unsubscribe = unsub;
        -
        -};
        -
        -/**
        -* The default Config handler for the "pages" property
        -* @method configPages
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.CalendarGroup.prototype.configPages = function(type, args, obj) {
        -	var pageCount = args[0];
        -
        -	var cfgPageDate = YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGEDATE.key;
        -
        -	// Define literals outside loop	
        -	var sep = "_";
        -	var groupCalClass = "groupcal";
        -	var firstClass = "first";
        -	var lastClass = "last";
        -
        -	for (var p=0;p<pageCount;++p) {
        -		var calId = this.id + sep + p;
        -		var calContainerId = this.containerId + sep + p;
        -
        -		var childConfig = this.cfg.getConfig();
        -		childConfig.close = false;
        -		childConfig.title = false;
        -
        -		var cal = this.constructChild(calId, calContainerId, childConfig);
        -		var caldate = cal.cfg.getProperty(cfgPageDate);
        -		this._setMonthOnDate(caldate, caldate.getMonth() + p);
        -		cal.cfg.setProperty(cfgPageDate, caldate);
        -		
        -		YAHOO.util.Dom.removeClass(cal.oDomContainer, this.Style.CSS_SINGLE);
        -		YAHOO.util.Dom.addClass(cal.oDomContainer, groupCalClass);
        -		
        -		if (p===0) {
        -			YAHOO.util.Dom.addClass(cal.oDomContainer, firstClass);
        -		}
        -
        -		if (p==(pageCount-1)) {
        -			YAHOO.util.Dom.addClass(cal.oDomContainer, lastClass);
        -		}
        -		
        -		cal.parent = this;
        -		cal.index = p; 
        -
        -		this.pages[this.pages.length] = cal;
        -	}
        -};
        -
        -/**
        -* The default Config handler for the "pagedate" property
        -* @method configPageDate
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.CalendarGroup.prototype.configPageDate = function(type, args, obj) {
        -	var val = args[0];
        -	var firstPageDate;
        -	
        -	var cfgPageDate = YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGEDATE.key;
        -	
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		if (p === 0) {
        -			firstPageDate = cal._parsePageDate(val);
        -			cal.cfg.setProperty(cfgPageDate, firstPageDate);
        -		} else {
        -			var pageDate = new Date(firstPageDate);
        -			this._setMonthOnDate(pageDate, pageDate.getMonth() + p);
        -			cal.cfg.setProperty(cfgPageDate, pageDate);
        -		}
        -	}
        -};
        -
        -/**
        -* The default Config handler for the CalendarGroup "selected" property
        -* @method configSelected
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.CalendarGroup.prototype.configSelected = function(type, args, obj) {
        -	var cfgSelected = YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.SELECTED.key;
        -	this.delegateConfig(type, args, obj);
        -	var selected = (this.pages.length > 0) ? this.pages[0].cfg.getProperty(cfgSelected) : []; 
        -	this.cfg.setProperty(cfgSelected, selected, true);
        -};
        -
        -
        -/**
        -* Delegates a configuration property to the CustomEvents associated with the CalendarGroup's children
        -* @method delegateConfig
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.CalendarGroup.prototype.delegateConfig = function(type, args, obj) {
        -	var val = args[0];
        -	var cal;
        -
        -	for (var p=0;p<this.pages.length;p++) {
        -		cal = this.pages[p];
        -		cal.cfg.setProperty(type, val);
        -	}
        -};
        -
        -
        -/**
        -* Adds a function to all child Calendars within this CalendarGroup.
        -* @method setChildFunction
        -* @param {String}		fnName		The name of the function
        -* @param {Function}		fn			The function to apply to each Calendar page object
        -*/
        -YAHOO.widget.CalendarGroup.prototype.setChildFunction = function(fnName, fn) {
        -	var pageCount = this.cfg.getProperty(YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGES.key);
        -
        -	for (var p=0;p<pageCount;++p) {
        -		this.pages[p][fnName] = fn;
        -	}
        -};
        -
        -/**
        -* Calls a function within all child Calendars within this CalendarGroup.
        -* @method callChildFunction
        -* @param {String}		fnName		The name of the function
        -* @param {Array}		args		The arguments to pass to the function
        -*/
        -YAHOO.widget.CalendarGroup.prototype.callChildFunction = function(fnName, args) {
        -	var pageCount = this.cfg.getProperty(YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGES.key);
        -
        -	for (var p=0;p<pageCount;++p) {
        -		var page = this.pages[p];
        -		if (page[fnName]) {
        -			var fn = page[fnName];
        -			fn.call(page, args);
        -		}
        -	}	
        -};
        -
        -/**
        -* Constructs a child calendar. This method can be overridden if a subclassed version of the default
        -* calendar is to be used.
        -* @method constructChild
        -* @param {String}	id			The id of the table element that will represent the calendar widget
        -* @param {String}	containerId	The id of the container div element that will wrap the calendar table
        -* @param {Object}	config		The configuration object containing the Calendar's arguments
        -* @return {YAHOO.widget.Calendar}	The YAHOO.widget.Calendar instance that is constructed
        -*/
        -YAHOO.widget.CalendarGroup.prototype.constructChild = function(id,containerId,config) {
        -	var container = document.getElementById(containerId);
        -	if (! container) {
        -		container = document.createElement("div");
        -		container.id = containerId;
        -		this.oDomContainer.appendChild(container);
        -	}
        -	return new YAHOO.widget.Calendar(id,containerId,config);
        -};
        -
        -
        -/**
        -* Sets the calendar group's month explicitly. This month will be set into the first
        -* page of the multi-page calendar, and all other months will be iterated appropriately.
        -* @method setMonth
        -* @param {Number}	month		The numeric month, from 0 (January) to 11 (December)
        -*/
        -YAHOO.widget.CalendarGroup.prototype.setMonth = function(month) {
        -	month = parseInt(month, 10);
        -	var currYear;
        -	
        -	var cfgPageDate = YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGEDATE.key;
        -	
        -	for (var p=0; p<this.pages.length; ++p) {
        -		var cal = this.pages[p];
        -		var pageDate = cal.cfg.getProperty(cfgPageDate);
        -		if (p === 0) {
        -			currYear = pageDate.getFullYear();
        -		} else {
        -			pageDate.setYear(currYear);
        -		}
        -		this._setMonthOnDate(pageDate, month+p); 
        -		cal.cfg.setProperty(cfgPageDate, pageDate);
        -	}
        -};
        -
        -/**
        -* Sets the calendar group's year explicitly. This year will be set into the first
        -* page of the multi-page calendar, and all other months will be iterated appropriately.
        -* @method setYear
        -* @param {Number}	year		The numeric 4-digit year
        -*/
        -YAHOO.widget.CalendarGroup.prototype.setYear = function(year) {
        -
        -	var cfgPageDate = YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGEDATE.key;
        -
        -	year = parseInt(year, 10);
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		var pageDate = cal.cfg.getProperty(cfgPageDate);
        -
        -		if ((pageDate.getMonth()+1) == 1 && p>0) {
        -			year+=1;
        -		}
        -		cal.setYear(year);
        -	}
        -};
        -/**
        -* Calls the render function of all child calendars within the group.
        -* @method render
        -*/
        -YAHOO.widget.CalendarGroup.prototype.render = function() {
        -	this.renderHeader();
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		cal.render();
        -	}
        -	this.renderFooter();
        -};
        -
        -/**
        -* Selects a date or a collection of dates on the current calendar. This method, by default,
        -* does not call the render method explicitly. Once selection has completed, render must be 
        -* called for the changes to be reflected visually.
        -* @method select
        -* @param	{String/Date/Date[]}	date	The date string of dates to select in the current calendar. Valid formats are
        -*								individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).
        -*								Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).
        -*								This method can also take a JavaScript Date object or an array of Date objects.
        -* @return	{Date[]}			Array of JavaScript Date objects representing all individual dates that are currently selected.
        -*/
        -YAHOO.widget.CalendarGroup.prototype.select = function(date) {
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		cal.select(date);
        -	}
        -	return this.getSelectedDates();
        -};
        -
        -/**
        -* Selects dates in the CalendarGroup based on the cell index provided. This method is used to select cells without having to do a full render. The selected style is applied to the cells directly.
        -* The value of the MULTI_SELECT Configuration attribute will determine the set of dates which get selected. 
        -* <ul>
        -*    <li>If MULTI_SELECT is false, selectCell will select the cell at the specified index for only the last displayed Calendar page.</li>
        -*    <li>If MULTI_SELECT is true, selectCell will select the cell at the specified index, on each displayed Calendar page.</li>
        -* </ul>
        -* @method selectCell
        -* @param	{Number}	cellIndex	The index of the cell to be selected. 
        -* @return	{Date[]}	Array of JavaScript Date objects representing all individual dates that are currently selected.
        -*/
        -YAHOO.widget.CalendarGroup.prototype.selectCell = function(cellIndex) {
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		cal.selectCell(cellIndex);
        -	}
        -	return this.getSelectedDates();
        -};
        -
        -/**
        -* Deselects a date or a collection of dates on the current calendar. This method, by default,
        -* does not call the render method explicitly. Once deselection has completed, render must be 
        -* called for the changes to be reflected visually.
        -* @method deselect
        -* @param	{String/Date/Date[]}	date	The date string of dates to deselect in the current calendar. Valid formats are
        -*								individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).
        -*								Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).
        -*								This method can also take a JavaScript Date object or an array of Date objects.	
        -* @return	{Date[]}			Array of JavaScript Date objects representing all individual dates that are currently selected.
        -*/
        -YAHOO.widget.CalendarGroup.prototype.deselect = function(date) {
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		cal.deselect(date);
        -	}
        -	return this.getSelectedDates();
        -};
        -
        -/**
        -* Deselects all dates on the current calendar.
        -* @method deselectAll
        -* @return {Date[]}		Array of JavaScript Date objects representing all individual dates that are currently selected.
        -*						Assuming that this function executes properly, the return value should be an empty array.
        -*						However, the empty array is returned for the sake of being able to check the selection status
        -*						of the calendar.
        -*/
        -YAHOO.widget.CalendarGroup.prototype.deselectAll = function() {
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		cal.deselectAll();
        -	}
        -	return this.getSelectedDates();
        -};
        -
        -/**
        -* Deselects dates in the CalendarGroup based on the cell index provided. This method is used to select cells without having to do a full render. The selected style is applied to the cells directly.
        -* deselectCell will deselect the cell at the specified index on each displayed Calendar page.
        -*
        -* @method deselectCell
        -* @param	{Number}	cellIndex	The index of the cell to deselect. 
        -* @return	{Date[]}	Array of JavaScript Date objects representing all individual dates that are currently selected.
        -*/
        -YAHOO.widget.CalendarGroup.prototype.deselectCell = function(cellIndex) {
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		cal.deselectCell(cellIndex);
        -	}
        -	return this.getSelectedDates();
        -};
        -
        -/**
        -* Resets the calendar widget to the originally selected month and year, and 
        -* sets the calendar to the initial selection(s).
        -* @method reset
        -*/
        -YAHOO.widget.CalendarGroup.prototype.reset = function() {
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		cal.reset();
        -	}
        -};
        -
        -/**
        -* Clears the selected dates in the current calendar widget and sets the calendar
        -* to the current month and year.
        -* @method clear
        -*/
        -YAHOO.widget.CalendarGroup.prototype.clear = function() {
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		cal.clear();
        -	}
        -};
        -
        -/**
        -* Navigates to the next month page in the calendar widget.
        -* @method nextMonth
        -*/
        -YAHOO.widget.CalendarGroup.prototype.nextMonth = function() {
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		cal.nextMonth();
        -	}
        -};
        -
        -/**
        -* Navigates to the previous month page in the calendar widget.
        -* @method previousMonth
        -*/
        -YAHOO.widget.CalendarGroup.prototype.previousMonth = function() {
        -	for (var p=this.pages.length-1;p>=0;--p) {
        -		var cal = this.pages[p];
        -		cal.previousMonth();
        -	}
        -};
        -
        -/**
        -* Navigates to the next year in the currently selected month in the calendar widget.
        -* @method nextYear
        -*/
        -YAHOO.widget.CalendarGroup.prototype.nextYear = function() {
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		cal.nextYear();
        -	}
        -};
        -
        -/**
        -* Navigates to the previous year in the currently selected month in the calendar widget.
        -* @method previousYear
        -*/
        -YAHOO.widget.CalendarGroup.prototype.previousYear = function() {
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		cal.previousYear();
        -	}
        -};
        -
        -
        -/**
        -* Gets the list of currently selected dates from the calendar.
        -* @return			An array of currently selected JavaScript Date objects.
        -* @type Date[]
        -*/
        -YAHOO.widget.CalendarGroup.prototype.getSelectedDates = function() { 
        -	var returnDates = [];
        -	var selected = this.cfg.getProperty(YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.SELECTED.key);
        -	for (var d=0;d<selected.length;++d) {
        -		var dateArray = selected[d];
        -
        -		var date = new Date(dateArray[0],dateArray[1]-1,dateArray[2]);
        -		returnDates.push(date);
        -	}
        -
        -	returnDates.sort( function(a,b) { return a-b; } );
        -	return returnDates;
        -};
        -
        -/**
        -* Adds a renderer to the render stack. The function reference passed to this method will be executed
        -* when a date cell matches the conditions specified in the date string for this renderer.
        -* @method addRenderer
        -* @param	{String}	sDates		A date string to associate with the specified renderer. Valid formats
        -*									include date (12/24/2005), month/day (12/24), and range (12/1/2004-1/1/2005)
        -* @param	{Function}	fnRender	The function executed to render cells that match the render rules for this renderer.
        -*/
        -YAHOO.widget.CalendarGroup.prototype.addRenderer = function(sDates, fnRender) {
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		cal.addRenderer(sDates, fnRender);
        -	}
        -};
        -
        -/**
        -* Adds a month to the render stack. The function reference passed to this method will be executed
        -* when a date cell matches the month passed to this method.
        -* @method addMonthRenderer
        -* @param	{Number}	month		The month (1-12) to associate with this renderer
        -* @param	{Function}	fnRender	The function executed to render cells that match the render rules for this renderer.
        -*/
        -YAHOO.widget.CalendarGroup.prototype.addMonthRenderer = function(month, fnRender) {
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		cal.addMonthRenderer(month, fnRender);
        -	}
        -};
        -
        -/**
        -* Adds a weekday to the render stack. The function reference passed to this method will be executed
        -* when a date cell matches the weekday passed to this method.
        -* @method addWeekdayRenderer
        -* @param	{Number}	weekday		The weekday (0-6) to associate with this renderer
        -* @param	{Function}	fnRender	The function executed to render cells that match the render rules for this renderer.
        -*/
        -YAHOO.widget.CalendarGroup.prototype.addWeekdayRenderer = function(weekday, fnRender) {
        -	for (var p=0;p<this.pages.length;++p) {
        -		var cal = this.pages[p];
        -		cal.addWeekdayRenderer(weekday, fnRender);
        -	}
        -};
        -
        -/**
        -* Renders the header for the CalendarGroup.
        -* @method renderHeader
        -*/
        -YAHOO.widget.CalendarGroup.prototype.renderHeader = function() {};
        -
        -/**
        -* Renders a footer for the 2-up calendar container. By default, this method is
        -* unimplemented.
        -* @method renderFooter
        -*/
        -YAHOO.widget.CalendarGroup.prototype.renderFooter = function() {};
        -
        -/**
        -* Adds the designated number of months to the current calendar month, and sets the current
        -* calendar page date to the new month.
        -* @method addMonths
        -* @param {Number}	count	The number of months to add to the current calendar
        -*/
        -YAHOO.widget.CalendarGroup.prototype.addMonths = function(count) {
        -	this.callChildFunction("addMonths", count);
        -};
        -
        -
        -/**
        -* Subtracts the designated number of months from the current calendar month, and sets the current
        -* calendar page date to the new month.
        -* @method subtractMonths
        -* @param {Number}	count	The number of months to subtract from the current calendar
        -*/
        -YAHOO.widget.CalendarGroup.prototype.subtractMonths = function(count) {
        -	this.callChildFunction("subtractMonths", count);
        -};
        -
        -/**
        -* Adds the designated number of years to the current calendar, and sets the current
        -* calendar page date to the new month.
        -* @method addYears
        -* @param {Number}	count	The number of years to add to the current calendar
        -*/
        -YAHOO.widget.CalendarGroup.prototype.addYears = function(count) {
        -	this.callChildFunction("addYears", count);
        -};
        -
        -/**
        -* Subtcats the designated number of years from the current calendar, and sets the current
        -* calendar page date to the new month.
        -* @method subtractYears
        -* @param {Number}	count	The number of years to subtract from the current calendar
        -*/
        -YAHOO.widget.CalendarGroup.prototype.subtractYears = function(count) {
        -	this.callChildFunction("subtractYears", count);
        -};
        -
        -/**
        -* Sets the month on a Date object, taking into account year rollover if the month is less than 0 or greater than 11.
        -* The Date object passed in is modified. It should be cloned before passing it into this method if the original value needs to be maintained
        -* @method	_setMonthOnDate
        -* @private
        -* @param	{Date}	date	The Date object on which to set the month index
        -* @param	{Number}	iMonth	The month index to set
        -*/
        -YAHOO.widget.CalendarGroup.prototype._setMonthOnDate = function(date, iMonth) {
        -	// BUG in Safari 1.3, 2.0 (WebKit build < 420), Date.setMonth does not work consistently if iMonth is not 0-11
        -	if (this.browser == "safari" && (iMonth < 0 || iMonth > 11)) {
        -		var DM = YAHOO.widget.DateMath;
        -		var newDate = DM.add(date, DM.MONTH, iMonth-date.getMonth());
        -		date.setTime(newDate.getTime());
        -	} else {
        -		date.setMonth(iMonth);
        -	}
        -};
        -
        -
        -/**
        -* CSS class representing the container for the calendar
        -* @property YAHOO.widget.CalendarGroup.CSS_CONTAINER
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.CalendarGroup.CSS_CONTAINER = "yui-calcontainer";
        -
        -/**
        -* CSS class representing the container for the calendar
        -* @property YAHOO.widget.CalendarGroup.CSS_MULTI_UP
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.CalendarGroup.CSS_MULTI_UP = "multi";
        -
        -/**
        -* CSS class representing the title for the 2-up calendar
        -* @property YAHOO.widget.CalendarGroup.CSS_2UPTITLE
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.CalendarGroup.CSS_2UPTITLE = "title";
        -
        -/**
        -* CSS class representing the close icon for the 2-up calendar
        -* @property YAHOO.widget.CalendarGroup.CSS_2UPCLOSE
        -* @static
        -* @final
        -* @deprecated	Along with Calendar.IMG_ROOT and NAV_ARROW_LEFT, NAV_ARROW_RIGHT configuration properties.
        -*					Calendar's <a href="YAHOO.widget.Calendar.html#Style.CSS_CLOSE">Style.CSS_CLOSE</a> property now represents the CSS class used to render the close icon
        -* @type String
        -*/
        -YAHOO.widget.CalendarGroup.CSS_2UPCLOSE = "close-icon";
        -
        -YAHOO.augment(YAHOO.widget.CalendarGroup, YAHOO.widget.Calendar, "buildDayLabel",
        -																 "buildMonthLabel",
        -																 "renderOutOfBoundsDate",
        -																 "renderRowHeader",
        -																 "renderRowFooter",
        -																 "renderCellDefault",
        -																 "styleCellDefault",
        -																 "renderCellStyleHighlight1",
        -																 "renderCellStyleHighlight2",
        -																 "renderCellStyleHighlight3",
        -																 "renderCellStyleHighlight4",
        -																 "renderCellStyleToday",
        -																 "renderCellStyleSelected",
        -																 "renderCellNotThisMonth",
        -																 "renderBodyCellRestricted",
        -																 "initStyles",
        -																 "configTitle",
        -																 "configClose",
        -																 "configIframe",
        -																 "hide",
        -																 "show",
        -																 "browser");
        -
        -/**
        -* The set of default Config property keys and values for the CalendarGroup
        -* @property YAHOO.widget.CalendarGroup._DEFAULT_CONFIG
        -* @final
        -* @static
        -* @private
        -* @type Object
        -*/
        -YAHOO.widget.CalendarGroup._DEFAULT_CONFIG = YAHOO.widget.Calendar._DEFAULT_CONFIG;
        -YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGES = {key:"pages", value:2};
        -
        -/**
        -* Returns a string representation of the object.
        -* @method toString
        -* @return {String}	A string representation of the CalendarGroup object.
        -*/
        -YAHOO.widget.CalendarGroup.prototype.toString = function() {
        -	return "CalendarGroup " + this.id;
        -};
        -
        -YAHOO.widget.CalGrp = YAHOO.widget.CalendarGroup;
        -
        -/**
        -* @class YAHOO.widget.Calendar2up
        -* @extends YAHOO.widget.CalendarGroup
        -* @deprecated The old Calendar2up class is no longer necessary, since CalendarGroup renders in a 2up view by default.
        -*/
        -YAHOO.widget.Calendar2up = function(id, containerId, config) {
        -	this.init(id, containerId, config);
        -};
        -
        -YAHOO.extend(YAHOO.widget.Calendar2up, YAHOO.widget.CalendarGroup);
        -
        -/**
        -* @deprecated The old Calendar2up class is no longer necessary, since CalendarGroup renders in a 2up view by default.
        -*/
        -YAHOO.widget.Cal2up = YAHOO.widget.Calendar2up;
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/ColorAnim.js.html b/www/extras/yui/docs/ColorAnim.js.html deleted file mode 100644 index ab6eb9bb9..000000000 --- a/www/extras/yui/docs/ColorAnim.js.html +++ /dev/null @@ -1,253 +0,0 @@ - - - - API: animation ColorAnim.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        animation  2.2.2

        -

        - Yahoo! UI Library - > animation - - > ColorAnim.js (source view) -

        -
        - -
        -
        -
        - -
        -
        (function() {
        -/**
        - * Anim subclass for color transitions.
        - * <p>Usage: <code>var myAnim = new Y.ColorAnim(el, { backgroundColor: { from: '#FF0000', to: '#FFFFFF' } }, 1, Y.Easing.easeOut);</code> Color values can be specified with either 112233, #112233, 
        - * [255,255,255], or rgb(255,255,255)</p>
        - * @class ColorAnim
        - * @namespace YAHOO.util
        - * @requires YAHOO.util.Anim
        - * @requires YAHOO.util.AnimMgr
        - * @requires YAHOO.util.Easing
        - * @requires YAHOO.util.Bezier
        - * @requires YAHOO.util.Dom
        - * @requires YAHOO.util.Event
        - * @constructor
        - * @extends YAHOO.util.Anim
        - * @param {HTMLElement | String} el Reference to the element that will be animated
        - * @param {Object} attributes The attribute(s) to be animated.
        - * Each attribute is an object with at minimum a "to" or "by" member defined.
        - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px").
        - * All attribute names use camelCase.
        - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based
        - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method)
        - */
        -    YAHOO.util.ColorAnim = function(el, attributes, duration,  method) {
        -        YAHOO.util.ColorAnim.superclass.constructor.call(this, el, attributes, duration, method);
        -    };
        -    
        -    YAHOO.extend(YAHOO.util.ColorAnim, YAHOO.util.Anim);
        -    
        -    // shorthand
        -    var Y = YAHOO.util;
        -    var superclass = Y.ColorAnim.superclass;
        -    var proto = Y.ColorAnim.prototype;
        -    
        -    proto.toString = function() {
        -        var el = this.getEl();
        -        var id = el.id || el.tagName;
        -        return ("ColorAnim " + id);
        -    };
        -
        -    proto.patterns.color = /color$/i;
        -    proto.patterns.rgb            = /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;
        -    proto.patterns.hex            = /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;
        -    proto.patterns.hex3          = /^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;
        -    proto.patterns.transparent = /^transparent|rgba\(0, 0, 0, 0\)$/; // need rgba for safari
        -    
        -    /**
        -     * Attempts to parse the given string and return a 3-tuple.
        -     * @method parseColor
        -     * @param {String} s The string to parse.
        -     * @return {Array} The 3-tuple of rgb values.
        -     */
        -    proto.parseColor = function(s) {
        -        if (s.length == 3) { return s; }
        -    
        -        var c = this.patterns.hex.exec(s);
        -        if (c && c.length == 4) {
        -            return [ parseInt(c[1], 16), parseInt(c[2], 16), parseInt(c[3], 16) ];
        -        }
        -    
        -        c = this.patterns.rgb.exec(s);
        -        if (c && c.length == 4) {
        -            return [ parseInt(c[1], 10), parseInt(c[2], 10), parseInt(c[3], 10) ];
        -        }
        -    
        -        c = this.patterns.hex3.exec(s);
        -        if (c && c.length == 4) {
        -            return [ parseInt(c[1] + c[1], 16), parseInt(c[2] + c[2], 16), parseInt(c[3] + c[3], 16) ];
        -        }
        -        
        -        return null;
        -    };
        -
        -    proto.getAttribute = function(attr) {
        -        var el = this.getEl();
        -        if (  this.patterns.color.test(attr) ) {
        -            var val = YAHOO.util.Dom.getStyle(el, attr);
        -            
        -            if (this.patterns.transparent.test(val)) { // bgcolor default
        -                var parent = el.parentNode; // try and get from an ancestor
        -                val = Y.Dom.getStyle(parent, attr);
        -            
        -                while (parent && this.patterns.transparent.test(val)) {
        -                    parent = parent.parentNode;
        -                    val = Y.Dom.getStyle(parent, attr);
        -                    if (parent.tagName.toUpperCase() == 'HTML') {
        -                        val = '#fff';
        -                    }
        -                }
        -            }
        -        } else {
        -            val = superclass.getAttribute.call(this, attr);
        -        }
        -
        -        return val;
        -    };
        -    
        -    proto.doMethod = function(attr, start, end) {
        -        var val;
        -    
        -        if ( this.patterns.color.test(attr) ) {
        -            val = [];
        -            for (var i = 0, len = start.length; i < len; ++i) {
        -                val[i] = superclass.doMethod.call(this, attr, start[i], end[i]);
        -            }
        -            
        -            val = 'rgb('+Math.floor(val[0])+','+Math.floor(val[1])+','+Math.floor(val[2])+')';
        -        }
        -        else {
        -            val = superclass.doMethod.call(this, attr, start, end);
        -        }
        -
        -        return val;
        -    };
        -
        -    proto.setRuntimeAttribute = function(attr) {
        -        superclass.setRuntimeAttribute.call(this, attr);
        -        
        -        if ( this.patterns.color.test(attr) ) {
        -            var attributes = this.attributes;
        -            var start = this.parseColor(this.runtimeAttributes[attr].start);
        -            var end = this.parseColor(this.runtimeAttributes[attr].end);
        -            // fix colors if going "by"
        -            if ( typeof attributes[attr]['to'] === 'undefined' && typeof attributes[attr]['by'] !== 'undefined' ) {
        -                end = this.parseColor(attributes[attr].by);
        -            
        -                for (var i = 0, len = start.length; i < len; ++i) {
        -                    end[i] = start[i] + end[i];
        -                }
        -            }
        -            
        -            this.runtimeAttributes[attr].start = start;
        -            this.runtimeAttributes[attr].end = end;
        -        }
        -    };
        -})();
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Column.html b/www/extras/yui/docs/Column.html deleted file mode 100644 index 5b5f7a51a..000000000 --- a/www/extras/yui/docs/Column.html +++ /dev/null @@ -1,1602 +0,0 @@ - - - - API: datatable Column (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        DataTable Widget  2.2.2

        -

        - Yahoo! UI Library - > datatable - > Column - -

        -
        - -
        -
        -
        - - -

        - - - - - Class Column - - - - - - - -

        - - - - - -
        - The Column class defines and manages attributes of DataTable Columns -
        - -
        -

        Constructor

        -
        -
        - Column - - ( - - - - oConfigs - ) - -
        -
        -
        Parameters:
        -
        - oConfigs - <Object> - - Object literal of configuration values. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _children - - private YAHOO.widget.Column[] -

        -
        -
        - Array of Column's chilren, or null. -
        -
        - - - - -
        -

        _colspan - - private Number -

        -
        -
        - Number of table cells the Column spans. -
        -
        - - - - -
        -

        _id - - private String -

        -
        -
        - Unique ID, also assigned as DOM ID. -
        -
        - - - - -
        -

        _index - - private Number -

        -
        -
        - Reference to Column's index within its ColumnSet's key array, or null if not applicable. -
        -
        - - - - -
        -

        _minWidth - - private Number -

        -
        -
        - Minimum width the Column can support (in pixels). Value is populated only if table -is fixedWidth, null otherwise. -
        -
        - - - - -
        -

        _nCount - - static Number -

        -
        -
        - Internal instance counter. -
        -
        - - -
        - Default Value: 0 -
        - - -
        -

        _parent - - private YAHOO.widget.Column -

        -
        -
        - Column's parent, or null. -
        -
        - - - - -
        -

        _rowspan - - private Number -

        -
        -
        - Number of table rows the Column spans. -
        -
        - - - - -
        -

        _width - - private Number -

        -
        -
        - Current offsetWidth of the Column (in pixels). -
        -
        - - - - -
        -

        abbr - - String -

        -
        -
        - Column head cell ABBR for accessibility. -
        -
        - - - - -
        -

        children - - Object[] -

        -
        -
        - Array of object literals that define children (nested headers) of a Column. -
        -
        - - - - -
        -

        className - - String -

        -
        -
        - Custom CSS class to be applied to every cell in the Column. -
        -
        - - - - -
        -

        editor - - String -

        -
        -
        - Defines the type of editor for Column, otherwise Column is not editable. -
        -
        - - - - -
        -

        formatter - - HTMLFunction -

        -
        -
        - Defines a custom format function for Column, otherwise default is used, -according to Column type. -
        -
        - - - - -
        -

        getIndex - - object -

        -
        -
        - Public accessor returns Column's index within its ColumnSet's key array, or -null if not applicable. -
        -
        - - - - -
        -

        key - - String -

        -
        -
        - Associated database field, or null. -
        -
        - - - - -
        -

        parser - - HTMLFunction -

        -
        -
        - Defines a custom parse function for Column, otherwise default is used, -according to Column type. -
        -
        - - - - -
        -

        resizeable - - Boolean -

        -
        -
        - True if Column is resizeable, false otherwise. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        sortable - - Boolean -

        -
        -
        - True if Column is sortable, false otherwise. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        sortOptions.ascFunction - - Function -

        -
        -
        - Custom sort handler to arrange Column in ascending order. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        sortOptions.descFunction - - Function -

        -
        -
        - Custom sort handler to arrange Column in descending order. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        text - - String -

        -
        -
        - Text or HTML for display in Column's assocated TH element. -
        -
        - - - - -
        -

        type - - String -

        -
        -
        - Data types: "string", "number", "date", "currency", "checkbox", "select", -"email", "link". -
        -
        - - -
        - Default Value: "string" -
        - - -
        -

        width - - String -

        -
        -
        - Column width. -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - format

        -
        - - - - - HTML - format - ( - - - elCell - - - , - oRecord - - - ) - - -
        - Outputs markup into the given TD based on given Record. -
        - -
        - -
        -
        Parameters:
        -
        - elCell <HTMLElement> - TD to format for display. -
        -
        - oRecord <YAHOO.widget.Record> - Record that holds data for the row. -
        -
        - -
        -
        Returns: - - HTML -
        -
        Markup.
        -
        - -
        - -
        -
        -

        - formatCheckbox

        -
        - - - static - - void - formatCheckbox - ( - - - elCell - - - , - oRecord - - - , - oColumn - - - , - oData - - - ) - - -
        - Formats cells in Columns of type "checkbox". -
        - -
        - -
        -
        Parameters:
        -
        - elCell <HTMLElement> - Table cell element. -
        -
        - oRecord <YAHOO.widget.Record> - Record instance. -
        -
        - oColumn <YAHOO.widget.Column> - Column instance. -
        -
        - oData <Object> - Data value for the cell, or null -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - formatCurrency

        -
        - - - static - - void - formatCurrency - ( - - - elCell - - - , - oRecord - - - , - oColumn - - - , - oData - - - ) - - -
        - Formats cells in Columns of type "currency". Can be overridden for custom formatting. -
        - -
        - -
        -
        Parameters:
        -
        - elCell <HTMLElement> - Table cell element. -
        -
        - oRecord <YAHOO.widget.Record> - Record instance. -
        -
        - oColumn <YAHOO.widget.Column> - Column instance. -
        -
        - oData <Object> - Data value for the cell, or null -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - formatDate

        -
        - - - static - - void - formatDate - ( - - - elCell - - - , - oRecord - - - , - oColumn - - - , - oData - - - ) - - -
        - Formats cells in Columns of type "date". -
        - -
        - -
        -
        Parameters:
        -
        - elCell <HTMLElement> - Table cell element. -
        -
        - oRecord <YAHOO.widget.Record> - Record instance. -
        -
        - oColumn <YAHOO.widget.Column> - Column instance. -
        -
        - oData <Object> - Data value for the cell, or null -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - formatEmail

        -
        - - - static - - void - formatEmail - ( - - - elCell - - - , - oRecord - - - , - oColumn - - - , - oData - - - ) - - -
        - Formats cells in Columns of type "email". -
        - -
        - -
        -
        Parameters:
        -
        - elCell <HTMLElement> - Table cell element. -
        -
        - oRecord <YAHOO.widget.Record> - Record instance. -
        -
        - oColumn <YAHOO.widget.Column> - Column instance. -
        -
        - oData <Object> - Data value for the cell, or null -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - formatLink

        -
        - - - static - - void - formatLink - ( - - - elCell - - - , - oRecord - - - , - oColumn - - - , - oData - - - ) - - -
        - Formats cells in Columns of type "link". -
        - -
        - -
        -
        Parameters:
        -
        - elCell <HTMLElement> - Table cell element. -
        -
        - oRecord <YAHOO.widget.Record> - Record instance. -
        -
        - oColumn <YAHOO.widget.Column> - Column instance. -
        -
        - oData <Object> - Data value for the cell, or null -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - formatNumber

        -
        - - - static - - void - formatNumber - ( - - - elCell - - - , - oRecord - - - , - oColumn - - - , - oData - - - ) - - -
        - Formats cells in Columns of type "number". -
        - -
        - -
        -
        Parameters:
        -
        - elCell <HTMLElement> - Table cell element. -
        -
        - oRecord <YAHOO.widget.Record> - Record instance. -
        -
        - oColumn <YAHOO.widget.Column> - Column instance. -
        -
        - oData <Object> - Data value for the cell, or null -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - formatSelect

        -
        - - - static - - void - formatSelect - ( - - - elCell - - - , - oRecord - - - , - oColumn - - - , - oData - - - ) - - -
        - Formats cells in Columns of type "select". -
        - -
        - -
        -
        Parameters:
        -
        - elCell <HTMLElement> - Table cell element. -
        -
        - oRecord <YAHOO.widget.Record> - Record instance. -
        -
        - oColumn <YAHOO.widget.Column> - Column instance. -
        -
        - oData <Object> - Data value for the cell, or null -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getColSpan

        -
        - - - - - Number - getColSpan - ( - ) - - -
        - Public accessor returns Column's colspan number. -
        - -
        - - -
        -
        Returns: - - Number -
        -
        Column's colspan number.
        -
        - -
        - -
        -
        -

        - getId

        -
        - - - - - String - getId - ( - ) - - -
        - Public accessor returns Column's ID string. -
        - -
        - - -
        -
        Returns: - - String -
        -
        Column's ID string.
        -
        - -
        - -
        -
        -

        - getRowSpan

        -
        - - - - - Number - getRowSpan - ( - ) - - -
        - Public accessor returns Column's rowspan number. -
        - -
        - - -
        -
        Returns: - - Number -
        -
        Column's rowspan number.
        -
        - -
        - -
        -
        -

        - parse

        -
        - - - - - Object - parse - ( - - - sMarkup - - - ) - - -
        - Takes innerHTML from TD and parses out data for storage in RecordSet. -
        - -
        - -
        -
        Parameters:
        -
        - sMarkup <String> - The TD's innerHTML value. -
        -
        - -
        -
        Returns: - - Object -
        -
        Data.
        -
        - -
        - -
        -
        -

        - parseCheckbox

        -
        - - - - - bChecked - parseCheckbox - ( - - - sMarkup - - - ) - - -
        - Default parse function for Columns of type "checkbox" takes markup and -extracts data. Can be overridden for custom parsing. -
        - -
        - -
        -
        Parameters:
        -
        - sMarkup <object> - -
        -
        - -
        -
        Returns: - - bChecked -
        -
        True if checkbox is checked.
        -
        - -
        - -
        -
        -

        - parseCurrency

        -
        - - - - - nAmount - parseCurrency - ( - - - sMarkup - - - ) - - -
        - Default parse function for Columns of type "currency" takes markup and -extracts data. Can be overridden for custom parsing. -
        - -
        - -
        -
        Parameters:
        -
        - sMarkup <object> - -
        -
        - -
        -
        Returns: - - nAmount -
        -
        Floating point amount.
        -
        - -
        - -
        -
        -

        - parseDate

        -
        - - - - - oDate - parseDate - ( - - - sMarkup - - - ) - - -
        - Default parse function for Columns of type "date" takes markup and extracts -data. Can be overridden for custom parsing. -
        - -
        - -
        -
        Parameters:
        -
        - sMarkup <object> - -
        -
        - -
        -
        Returns: - - oDate -
        -
        Date instance.
        -
        - -
        - -
        -
        -

        - parseNumber

        -
        - - - - - nNumber - parseNumber - ( - - - sMarkup - - - ) - - -
        - Default parse function for Columns of type "number" takes markup and extracts -data. Can be overridden for custom parsing. -
        - -
        - -
        -
        Parameters:
        -
        - sMarkup <object> - -
        -
        - -
        -
        Returns: - - nNumber -
        -
        Number.
        -
        - -
        - -
        -
        -

        - parseSelect

        -
        - - - - - sValue - parseSelect - ( - - - sMarkup - - - ) - - -
        - Default parse function for Columns of type "select" takes markup and extracts -data. Can be overridden for custom parsing. -
        - -
        - -
        -
        Parameters:
        -
        - sMarkup <object> - -
        -
        - -
        -
        Returns: - - sValue -
        -
        Value of selected option.
        -
        - -
        - -
        -
        -

        - showEditor

        -
        - - - - - void - showEditor - ( - - - elCell - - - , - oRecord - - - ) - - -
        - Outputs editor markup into the given TD based on given Record. -
        - -
        - -
        -
        Parameters:
        -
        - elCell <HTMLElement> - The cell to edit. -
        -
        - oRecord <YAHOO.widget.Record> - The DataTable Record of the cell. -
        -
        - -
        -
        Returns: - - void -
        -
        YAHOO.widget.ColumnEditor
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/ColumnEditor.html b/www/extras/yui/docs/ColumnEditor.html deleted file mode 100644 index 088c03ed7..000000000 --- a/www/extras/yui/docs/ColumnEditor.html +++ /dev/null @@ -1,744 +0,0 @@ - - - - API: datatable ColumnEditor (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        DataTable Widget  2.2.2

        -

        - Yahoo! UI Library - > datatable - > ColumnEditor - -

        -
        - -
        -
        -
        - - -

        - - - - - Class ColumnEditor - - - - - - - -

        - - - - - -
        - The ColumnEditor defines and manages inline editing functionality for a -DataTable Column. -
        - -
        -

        Constructor

        -
        -
        - ColumnEditor - - ( - - - - elCell - - , - oRecord - - , - oColumn - ) - -
        -
        -
        Parameters:
        -
        - elCell - <HTMLElement> - - The cell to edit. -
        -
        - oRecord - <YAHOO.widget.Record> - - The DataTable Record of the cell. -
        -
        - oColumn - <YAHOO.widget.Column> - - The DataTable Column of the cell. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _nCount - - static Number -

        -
        -
        - Internal instance counter. -
        -
        - - -
        - Default Value: 0 -
        - - -
        -

        column - - YAHOO.widget.Column -

        -
        -
        - Reference to the ColumnEditor's Column instance. -
        -
        - - - - -
        -

        container - - HTMLElement -

        -
        -
        - Reference to the container DOM element for the ColumnEditor. -
        -
        - - - - -
        -

        input - - HTMLElement || HTMLElement[] -

        -
        -
        - Reference to form element(s) of the ColumnEditor. -
        -
        - - - - -
        -

        type - - String -

        -
        -
        - Type of editor: "textbox", etc. -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - createTextareaEditor

        -
        - - - - - HTML - createTextareaEditor - ( - ) - - -
        - Creates a textarea editor in the DOM. -
        - -
        - - -
        -
        Returns: - - HTML -
        -
        ???
        -
        - -
        - -
        -
        -

        - createTextboxEditor

        -
        - - - - - HTML - createTextboxEditor - ( - ) - - -
        - Creates a textbox editor in the DOM. -
        - -
        - - -
        -
        Returns: - - HTML -
        -
        ???
        -
        - -
        - -
        -
        -

        - getTextareaEditorValue

        -
        - - - - - void - getTextareaEditorValue - ( - ) - - -
        - Returns ColumnEditor value -
        - -
        - - -
        -
        Returns: - - void -
        -
        String
        -
        - -
        - -
        -
        -

        - getTextboxEditorValue

        -
        - - - - - void - getTextboxEditorValue - ( - ) - - -
        - Returns ColumnEditor value -
        - -
        - - -
        -
        Returns: - - void -
        -
        String
        -
        - -
        - -
        -
        -

        - getValue

        -
        - - - - - void - getValue - ( - ) - - -
        - Returns ColumnEditor data value. -
        - -
        - - -
        -
        Returns: - - void -
        -
        Object
        -
        - -
        - -
        -
        -

        - hide

        -
        - - - - - void - hide - ( - ) - - -
        - Hides ColumnEditor -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - moveContainerTo

        -
        - - - - - void - moveContainerTo - ( - - - elCell - - - ) - - -
        - Positions container over given element, aligning upper-left corners. -
        - -
        - -
        -
        Parameters:
        -
        - elCell <HTMLElement> - The element. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - show

        -
        - - - - - void - show - ( - - - elCell - - - , - oRecord - - - , - oColumn - - - ) - - -
        - Shows ColumnEditor. -
        - -
        - -
        -
        Parameters:
        -
        - elCell <HTMLElement> - The cell to edit. -
        -
        - oRecord <YAHOO.widget.Record> - The DataTable Record of the cell. -
        -
        - oColumn <YAHOO.widget.Column> - The DataTable Column of the cell. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - showTextareaEditor

        -
        - - - - - void - showTextareaEditor - ( - - - elCell - - - , - oRecord - - - , - oColumn - - - ) - - -
        - Shows textarea. -
        - -
        - -
        -
        Parameters:
        -
        - elCell <HTMLElement> - The cell to edit. -
        -
        - oRecord <YAHOO.widget.Record> - The DataTable Record of the cell. -
        -
        - oColumn <YAHOO.widget.Column> - The DataTable Column of the cell. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - showTextboxEditor

        -
        - - - - - void - showTextboxEditor - ( - - - elCell - - - , - oRecord - - - , - oColumn - - - ) - - -
        - Shows textbox. -
        - -
        - -
        -
        Parameters:
        -
        - elCell <HTMLElement> - The cell to edit. -
        -
        - oRecord <YAHOO.widget.Record> - The DataTable Record of the cell. -
        -
        - oColumn <YAHOO.widget.Column> - The DataTable Column of the cell. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/ColumnSet.html b/www/extras/yui/docs/ColumnSet.html deleted file mode 100644 index 6b6aafe73..000000000 --- a/www/extras/yui/docs/ColumnSet.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - API: datatable ColumnSet (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        DataTable Widget  2.2.2

        -

        - Yahoo! UI Library - > datatable - > ColumnSet - -

        -
        - -
        -
        -
        - - -

        - - - - - Class ColumnSet - - - - - - uses - - YAHOO.util.EventProvider - - - - -

        - - - - - -
        - The ColumnSet class defines and manages a DataTable's Columns, -including nested hierarchies and access to individual Column instances. -
        - -
        -

        Constructor

        -
        -
        - ColumnSet - - ( - - - - aHeaders - ) - -
        -
        -
        Parameters:
        -
        - aHeaders - <Object[]> - - Array of object literals that define header cells. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _nCount - - private static number -

        -
        -
        - Internal class variable to index multiple data table instances. -
        -
        - - - - -
        -

        _sName - - private String -

        -
        -
        - Unique instance name. -
        -
        - - - - -
        -

        flat - - YAHOO.widget.Column[] -

        -
        -
        - Flattened representation of all Columns. -
        -
        - - -
        - Default Value: [] -
        - - -
        -

        headers - - String[] -

        -
        -
        - ID index of nested parent heirarchies for HEADERS accessibility attribute. -
        -
        - - -
        - Default Value: [] -
        - - -
        -

        keys - - YAHOO.widget.Column[] -

        -
        -
        - Array of Columns that map one-to-one to a table column. -
        -
        - - -
        - Default Value: [] -
        - - -
        -

        tree - - YAHOO.widget.Column[] -

        -
        -
        - Top-down tree representation of Column hierarchy. -
        -
        - - - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Methods

        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Public accessor to the unique name of the ColumnSet instance. -
        - -
        - - -
        -
        Returns: - - String -
        -
        Unique name of the ColumnSet instance.
        -
        - -
        - -
        -
        -
        -
        - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/ColumnSet.js.html b/www/extras/yui/docs/ColumnSet.js.html deleted file mode 100644 index 0184f0430..000000000 --- a/www/extras/yui/docs/ColumnSet.js.html +++ /dev/null @@ -1,1565 +0,0 @@ - - - - API: datatable ColumnSet.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        DataTable Widget  2.2.2

        -

        - Yahoo! UI Library - > datatable - - > ColumnSet.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /****************************************************************************/
        -/****************************************************************************/
        -/****************************************************************************/
        -
        -/**
        - * The ColumnSet class defines and manages a DataTable's Columns,
        - * including nested hierarchies and access to individual Column instances.
        - *
        - * @class ColumnSet
        - * @uses YAHOO.util.EventProvider
        - * @constructor
        - * @param aHeaders {Object[]} Array of object literals that define header cells.
        - */
        -YAHOO.widget.ColumnSet = function(aHeaders) {
        -//TODO: break out nested functions into private methods
        -    this._sName = "instance" + YAHOO.widget.ColumnSet._nCount;
        -
        -    // Top-down tree representation of all Columns
        -    var tree = [];
        -    // Flat representation of all Columns
        -    var flat = [];
        -    // Flat representation of only Columns that display data
        -    var keys = [];
        -    // ID index of nested parent heirarchies for HEADERS attribute
        -    var headers = [];
        -
        -    var nodelevel = -1;
        -
        -    // Internal recursive function to parse Columns out of object literal defs
        -    var parseColumns = function(nodeList, parent) {
        -        nodelevel++;
        -        // A node level is an array of Columns
        -        if(!tree[nodelevel]) {
        -            tree[nodelevel] = [];
        -        }
        -
        -        // Determine depth of descendants at this level for node's rowspan
        -        var nodeLevelMaxChildren = 0;
        -        var recurseChildren = function(nodeList) {
        -            var tmpMax = 0;
        -            for(var i=0; i<nodeList.length; i++) {
        -                if(nodeList[i].children) {
        -                    tmpMax++;
        -                    recurseChildren(nodeList[i].children);
        -                }
        -                if(tmpMax > nodeLevelMaxChildren) {
        -                    nodeLevelMaxChildren = tmpMax;
        -                }
        -            }
        -        };
        -        recurseChildren(nodeList);
        -
        -        // Parse each node for attributes and any children
        -        for(var j=0; j<nodeList.length; j++) {
        -            // Instantiate a Column for each node
        -            var oColumn = new YAHOO.widget.Column(nodeList[j]);
        -            flat.push(oColumn);
        -            
        -            // Assign parent, if applicable
        -            if(parent) {
        -                oColumn._parent = parent;
        -            }
        -
        -            // Start with default values
        -            oColumn._rowspan = 1;
        -            oColumn._colspan = 1;
        -
        -            // Column may have children
        -            if(nodeList[j].children) {
        -                var children = nodeList[j].children;
        -                var length = children.length;
        -                
        -                // Cascade certain properties to children if not defined on their own
        -                for(var k=0; k<length; k++) {
        -                    var child = children[k];
        -                    if(oColumn.className && (child.className === undefined)) {
        -                        child.className = oColumn.className;
        -                    }
        -                    if(oColumn.editor && (child.editor === undefined)) {
        -                        child.editor = oColumn.editor;
        -                    }
        -                    if(oColumn.formatter && (child.formatter === undefined)) {
        -                        child.formatter = oColumn.formatter;
        -                    }
        -                    if(oColumn.parser && (child.parser === undefined)) {
        -                        child.parser = oColumn.parser;
        -                    }
        -                    if(oColumn.resizeable && (child.resizeable === undefined)) {
        -                        child.resizeable = oColumn.resizeable;
        -                    }
        -                    if(oColumn.type && (child.type === undefined)) {
        -                        child.type = oColumn.type;
        -                    }
        -                    if(oColumn.width && (child.width === undefined)) {
        -                        child.width = oColumn.width;
        -                    }
        -                }
        -                
        -                // Children increase colspan of the Column
        -                oColumn._colspan = length;
        -
        -                // Children increase colspan of the Column's parent
        -                if (parent && parent._colspan) {
        -                    parent._colspan += length-1;
        -                    parent._children = [];
        -                    parent._children.push(oColumn);
        -                }
        -                
        -                // Children must also be parsed
        -                if(!tree[nodelevel+1]) {
        -                    tree[nodelevel+1] = [];
        -                }
        -               parseColumns(children, oColumn);
        -            }
        -            
        -            // This Column does not have children,
        -            // but other Columns at this level do
        -            else if(nodeLevelMaxChildren > 0) {
        -                // Children of siblings increase the rowspan of the Column
        -                oColumn._rowspan += nodeLevelMaxChildren;
        -                //if(oColumn.key) {
        -                    oColumn._index = keys.length;
        -                    keys.push(oColumn);
        -                //}
        -            }
        -            // This entire node level does not have any children
        -            else {
        -                //if(oColumn.key) {
        -                    oColumn._index = keys.length;
        -                    keys.push(oColumn);
        -                //}
        -            }
        -
        -            // Add the Column to the top-down tree
        -            tree[nodelevel].push(oColumn);
        -        }
        -        nodelevel--;
        -    };
        -
        -    // Do the parsing
        -    if(aHeaders.length > 0) {
        -        parseColumns(aHeaders);
        -    }
        -
        -    // Store header nesting in an array
        -    var recurseAncestors = function(i, oColumn) {
        -        headers[i].push(oColumn._id);
        -        if(oColumn._parent) {
        -            recurseAncestors(i, oColumn._parent);
        -        }
        -    };
        -    for(var i=0; i<keys.length; i++) {
        -        headers[i] = [];
        -        recurseAncestors(i, keys[i]);
        -        headers[i] = headers[i].reverse();
        -        headers[i] = headers[i].join(" ");
        -    }
        -
        -    this.tree = tree;
        -    this.flat = flat;
        -    this.keys = keys;
        -    this.headers = headers;
        -    
        -    YAHOO.widget.ColumnSet._nCount++;
        -    YAHOO.log("ColumnSet initialized", "info", this.toString());
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Internal class variable to index multiple data table instances.
        - *
        - * @property _nCount
        - * @type number
        - * @private
        - * @static
        - */
        -YAHOO.widget.ColumnSet._nCount = 0;
        -
        -/**
        - * Unique instance name.
        - *
        - * @property _sName
        - * @type String
        - * @private
        - */
        -YAHOO.widget.ColumnSet.prototype._sName = null;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Top-down tree representation of Column hierarchy.
        - *
        - * @property tree
        - * @type YAHOO.widget.Column[]
        - */
        -YAHOO.widget.ColumnSet.prototype.tree = null;
        -
        -/**
        - * Flattened representation of all Columns.
        - *
        - * @property flat
        - * @type YAHOO.widget.Column[]
        - * @default []
        - */
        -YAHOO.widget.ColumnSet.prototype.flat = null;
        -
        -/**
        - * Array of Columns that map one-to-one to a table column.
        - *
        - * @property keys
        - * @type YAHOO.widget.Column[]
        - * @default []
        - */
        -YAHOO.widget.ColumnSet.prototype.keys = null;
        -
        -/**
        - * ID index of nested parent heirarchies for HEADERS accessibility attribute.
        - *
        - * @property headers
        - * @type String[]
        - * @default []
        - */
        -YAHOO.widget.ColumnSet.prototype.headers = null;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Public accessor to the unique name of the ColumnSet instance.
        - *
        - * @method toString
        - * @return {String} Unique name of the ColumnSet instance.
        - */
        -
        -YAHOO.widget.ColumnSet.prototype.toString = function() {
        -    return "ColumnSet " + this._sName;
        -};
        -
        -/****************************************************************************/
        -/****************************************************************************/
        -/****************************************************************************/
        -
        -/**
        - * The Column class defines and manages attributes of DataTable Columns
        - *
        - *
        - * @class Column
        - * @constructor
        - * @param oConfigs {Object} Object literal of configuration values.
        - */
        -YAHOO.widget.Column = function(oConfigs) {
        -    // Internal variables
        -    this._id = "yui-dtcol"+YAHOO.widget.Column._nCount;
        -    
        -    // Object literal defines Column attributes
        -    if(oConfigs && (oConfigs.constructor == Object)) {
        -        for(var sConfig in oConfigs) {
        -            if(sConfig) {
        -                this[sConfig] = oConfigs[sConfig];
        -            }
        -        }
        -    }
        -    
        -    YAHOO.widget.Column._nCount++;
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Internal instance counter.
        - *
        - * @property _nCount
        - * @type Number
        - * @static
        - * @default 0
        - */
        -YAHOO.widget.Column._nCount = 0;
        -
        -
        -/**
        - * Unique ID, also assigned as DOM ID.
        - *
        - * @property _id
        - * @type String
        - * @private
        - */
        -YAHOO.widget.Column.prototype._id = null;
        -
        -/**
        - * Reference to Column's index within its ColumnSet's key array, or null if not applicable.
        - *
        - * @property _index
        - * @type Number
        - * @private
        - */
        -YAHOO.widget.Column.prototype._index = null;
        -
        -/**
        - * Number of table cells the Column spans.
        - *
        - * @property _colspan
        - * @type Number
        - * @private
        - */
        -YAHOO.widget.Column.prototype._colspan = 1;
        -
        -/**
        - * Number of table rows the Column spans.
        - *
        - * @property _rowspan
        - * @type Number
        - * @private
        - */
        -YAHOO.widget.Column.prototype._rowspan = 1;
        -
        -/**
        - * Column's parent, or null.
        - *
        - * @property _parent
        - * @type YAHOO.widget.Column
        - * @private
        - */
        -YAHOO.widget.Column.prototype._parent = null;
        -
        -/**
        - * Array of Column's chilren, or null.
        - *
        - * @property _children
        - * @type YAHOO.widget.Column[]
        - * @private
        - */
        -YAHOO.widget.Column.prototype._children = null;
        -
        -//TODO: clean these up
        -
        -/**
        - * Current offsetWidth of the Column (in pixels).
        - *
        - * @property _width
        - * @type Number
        - * @private
        - */
        -YAHOO.widget.Column.prototype._width = null;
        -
        -/**
        - * Minimum width the Column can support (in pixels). Value is populated only if table
        - * is fixedWidth, null otherwise.
        - *
        - * @property _minWidth
        - * @type Number
        - * @private
        - */
        -YAHOO.widget.Column.prototype._minWidth = null;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Associated database field, or null.
        - *
        - * @property key
        - * @type String
        - */
        -YAHOO.widget.Column.prototype.key = null;
        -
        -/**
        - * Text or HTML for display in Column's assocated TH element.
        - *
        - * @property text
        - * @type String
        - */
        -YAHOO.widget.Column.prototype.text = null;
        -
        -/**
        - * Data types: "string", "number", "date", "currency", "checkbox", "select",
        - * "email", "link".
        - *
        - * @property type
        - * @type String
        - * @default "string"
        - */
        -YAHOO.widget.Column.prototype.type = "string";
        -
        -/**
        - * Column head cell ABBR for accessibility.
        - *
        - * @property abbr
        - * @type String
        - */
        -YAHOO.widget.Column.prototype.abbr = null;
        -
        -/**
        - * Array of object literals that define children (nested headers) of a Column.
        - *
        - * @property children
        - * @type Object[]
        - */
        -YAHOO.widget.Column.prototype.children = null;
        -
        -/**
        - * Column width.
        - *
        - * @property width
        - * @type String
        - */
        -YAHOO.widget.Column.prototype.width = null;
        -
        -/**
        - * Custom CSS class to be applied to every cell in the Column.
        - *
        - * @property className
        - * @type String
        - */
        -YAHOO.widget.Column.prototype.className = null;
        -
        -/**
        - * Defines a custom format function for Column, otherwise default is used,
        - * according to Column type.
        - *
        - * @property formatter
        - * @type HTMLFunction
        - */
        -YAHOO.widget.Column.prototype.formatter = null;
        -
        -/**
        - * Defines a custom parse function for Column, otherwise default is used,
        - * according to Column type.
        - *
        - * @property parser
        - * @type HTMLFunction
        - */
        -YAHOO.widget.Column.prototype.parser = null;
        -
        -/**
        - * Defines the type of editor for Column, otherwise Column is not editable.
        - *
        - * @property editor
        - * @type String
        - */
        -YAHOO.widget.Column.prototype.editor = null;
        -
        -/**
        - * True if Column is resizeable, false otherwise.
        - *
        - * @property resizeable
        - * @type Boolean
        - * @default false
        - */
        -YAHOO.widget.Column.prototype.resizeable = false;
        -
        -/**
        - * True if Column is sortable, false otherwise.
        - *
        - * @property sortable
        - * @type Boolean
        - * @default false
        - */
        -YAHOO.widget.Column.prototype.sortable = false;
        -
        -/**
        - * Custom sort handler to arrange Column in descending order.
        - *
        - * @property sortOptions.descFunction
        - * @type Function
        - * @default null
        - */
        -YAHOO.widget.Column.prototype.descFunction = null;
        -
        -/**
        - * Custom sort handler to arrange Column in ascending order.
        - *
        - * @property sortOptions.ascFunction
        - * @type Function
        - * @default null
        - */
        -YAHOO.widget.Column.prototype.ascFunction = null;
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Public accessor returns Column's ID string.
        - *
        - * @method getId
        - * @return {String} Column's ID string.
        - */
        -YAHOO.widget.Column.prototype.getId = function() {
        -    return this._id;
        -};
        -
        -/**
        - * Public accessor returns Column's index within its ColumnSet's key array, or
        - * null if not applicable.
        - *
        - * @property getIndex
        - * @return {Number} Column's index within its ColumnSet key array, if applicable.
        - */
        -YAHOO.widget.Column.prototype.getIndex = function() {
        -    return this._index;
        -};
        -
        -/**
        - * Public accessor returns Column's colspan number.
        - *
        - * @method getColSpan
        - * @return {Number} Column's colspan number.
        - */
        -YAHOO.widget.Column.prototype.getColSpan = function() {
        -    return this._colspan;
        -};
        -
        -/**
        - * Public accessor returns Column's rowspan number.
        - *
        - * @method getRowSpan
        - * @return {Number} Column's rowspan number.
        - */
        -YAHOO.widget.Column.prototype.getRowSpan = function() {
        -    return this._rowspan;
        -};
        -
        -
        -/**
        - * Outputs markup into the given TD based on given Record.
        - *
        - * @method format
        - * @param elCell {HTMLElement} TD to format for display.
        - * @param oRecord {YAHOO.widget.Record} Record that holds data for the row.
        - * @return {HTML} Markup.
        - */
        -YAHOO.widget.Column.prototype.format = function(elCell,oRecord) {
        -    var oData = (this.key) ? oRecord[this.key] : null;
        -    if(this.formatter) {
        -        this.formatter(elCell, oRecord, this, oData);
        -    }
        -    else {
        -        var type = this.type;
        -        var markup = "";
        -        var classname = "";
        -        switch(type) {
        -            case "checkbox":
        -                YAHOO.widget.Column.formatCheckbox(elCell, oRecord, this, oData);
        -                classname = YAHOO.widget.DataTable.CLASS_CHECKBOX;
        -                break;
        -            case "currency":
        -                YAHOO.widget.Column.formatCurrency(elCell, oRecord, this, oData);
        -                classname = YAHOO.widget.DataTable.CLASS_CURRENCY;
        -                break;
        -            case "date":
        -                YAHOO.widget.Column.formatDate(elCell, oRecord, this, oData);
        -                classname = YAHOO.widget.DataTable.CLASS_DATE;
        -                break;
        -            case "email":
        -                YAHOO.widget.Column.formatEmail(elCell, oRecord, this, oData);
        -                classname = YAHOO.widget.DataTable.CLASS_EMAIL;
        -                break;
        -            case "link":
        -                YAHOO.widget.Column.formatLink(elCell, oRecord, this, oData);
        -                classname = YAHOO.widget.DataTable.CLASS_LINK;
        -                break;
        -            case "number":
        -                YAHOO.widget.Column.formatNumber(elCell, oRecord, this, oData);
        -                classname = YAHOO.widget.DataTable.CLASS_NUMBER;
        -                break;
        -            case "select":
        -                YAHOO.widget.Column.formatSelect(elCell, oRecord, this, oData);
        -                classname = YAHOO.widget.DataTable.CLASS_SELECT;
        -                break;
        -           default:
        -                elCell.innerHTML = (oData) ? oData.toString() : "";
        -                //elCell.innerHTML = (oData) ? "<a href=\"#\">"+oData.toString()+"</a>" : "";
        -                classname = YAHOO.widget.DataTable.CLASS_STRING;
        -                break;
        -        }
        -
        -        YAHOO.util.Dom.addClass(elCell, classname);
        -        if(this.className) {
        -            YAHOO.util.Dom.addClass(elCell, this.className);
        -        }
        -    }
        -    
        -    if(this.editor) {
        -        YAHOO.util.Dom.addClass(elCell,YAHOO.widget.DataTable.CLASS_EDITABLE);
        -    }
        -};
        -
        -
        -/**
        - * Formats cells in Columns of type "checkbox".
        - *
        - * @method formatCheckbox
        - * @param elCell {HTMLElement} Table cell element.
        - * @param oRecord {YAHOO.widget.Record} Record instance.
        - * @param oColumn {YAHOO.widget.Column} Column instance.
        - * @param oData {Object} Data value for the cell, or null
        - * @static
        - */
        -YAHOO.widget.Column.formatCheckbox = function(elCell, oRecord, oColumn, oData) {
        -    var bChecked = oData;
        -    bChecked = (bChecked) ? " checked" : "";
        -    elCell.innerHTML = "<input type=\"checkbox\"" + bChecked +
        -            " class=\"" + YAHOO.widget.DataTable.CLASS_CHECKBOX + "\">";
        -};
        -
        -/**
        - * Formats cells in Columns of type "currency". Can be overridden for custom formatting.
        - *
        - * @method formatCurrency
        - * @param elCell {HTMLElement} Table cell element.
        - * @param oRecord {YAHOO.widget.Record} Record instance.
        - * @param oColumn {YAHOO.widget.Column} Column instance.
        - * @param oData {Object} Data value for the cell, or null
        - * @static
        - */
        -YAHOO.widget.Column.formatCurrency = function(elCell, oRecord, oColumn, oData) {
        -    // Make it dollars
        -    var nAmount = oData;
        -    var markup;
        -        if((nAmount !== undefined) && (nAmount !== null) && !isNaN(parseFloat(nAmount))) {
        -             // Round to the penny
        -             nAmount = Math.round(nAmount*100)/100;
        -             markup = "$"+nAmount;
        -
        -            // Normalize digits
        -            var dotIndex = markup.indexOf(".");
        -            if(dotIndex < 0) {
        -                markup += ".00";
        -            }
        -            else {
        -                while(dotIndex > markup.length-3) {
        -                    markup += "0";
        -                }
        -            }
        -        }
        -        else {
        -            markup = "";
        -        }
        -        elCell.innerHTML = markup;
        -};
        -
        -/**
        - * Formats cells in Columns of type "date".
        - *
        - * @method formatDate
        - * @param elCell {HTMLElement} Table cell element.
        - * @param oRecord {YAHOO.widget.Record} Record instance.
        - * @param oColumn {YAHOO.widget.Column} Column instance.
        - * @param oData {Object} Data value for the cell, or null
        - * @static
        - */
        -YAHOO.widget.Column.formatDate = function(elCell, oRecord, oColumn, oData) {
        -    var oDate = oData;
        -    if(oDate instanceof Date) {
        -        elCell.innerHTML = (oDate.getMonth()+1) + "/" + oDate.getDate()  + "/" + oDate.getFullYear();
        -    }
        -    else {
        -        elCell.innerHTML = "";
        -        YAHOO.log("Could not format date","warn",this.toString());
        -    }
        -};
        -
        -/**
        - * Formats cells in Columns of type "email".
        - *
        - * @method formatEmail
        - * @param elCell {HTMLElement} Table cell element.
        - * @param oRecord {YAHOO.widget.Record} Record instance.
        - * @param oColumn {YAHOO.widget.Column} Column instance.
        - * @param oData {Object} Data value for the cell, or null
        - * @static
        - */
        -YAHOO.widget.Column.formatEmail = function(elCell, oRecord, oColumn, oData) {
        -    var sEmail = oData;
        -    if(sEmail) {
        -        elCell.innerHTML = "<a href=\"mailto:" + sEmail + "\">" + sEmail + "</a>";
        -    }
        -    else {
        -        elCell.innerHTML = "";
        -    }
        -};
        -
        -/**
        - * Formats cells in Columns of type "link".
        - *
        - * @method formatLink
        - * @param elCell {HTMLElement} Table cell element.
        - * @param oRecord {YAHOO.widget.Record} Record instance.
        - * @param oColumn {YAHOO.widget.Column} Column instance.
        - * @param oData {Object} Data value for the cell, or null
        - * @static
        - */
        -YAHOO.widget.Column.formatLink = function(elCell, oRecord, oColumn, oData) {
        -    var sLink = oData;
        -    if(sLink) {
        -        elCell.innerHTML = "<a href=\"" + sLink + "\">" + sLink + "</a>";
        -    }
        -    else {
        -        elCell.innerHTML = "";
        -    }
        -};
        -
        -/**
        - * Formats cells in Columns of type "number".
        - *
        - * @method formatNumber
        - * @param elCell {HTMLElement} Table cell element.
        - * @param oRecord {YAHOO.widget.Record} Record instance.
        - * @param oColumn {YAHOO.widget.Column} Column instance.
        - * @param oData {Object} Data value for the cell, or null
        - * @static
        - */
        -YAHOO.widget.Column.formatNumber = function(elCell, oRecord, oColumn, oData) {
        -    var nNumber = oData;
        -    if((nNumber !== undefined) && (nNumber !== null)) {
        -        elCell.innerHTML = nNumber.toString();
        -    }
        -    else {
        -        elCell.innerHTML = "";
        -    }
        -};
        -
        -/**
        - * Formats cells in Columns of type "select".
        - *
        - * @method formatSelect
        - * @param elCell {HTMLElement} Table cell element.
        - * @param oRecord {YAHOO.widget.Record} Record instance.
        - * @param oColumn {YAHOO.widget.Column} Column instance.
        - * @param oData {Object} Data value for the cell, or null
        - * @static
        - */
        -YAHOO.widget.Column.formatSelect = function(elCell, oRecord, oColumn, oData) {
        -    var selectedValue = oData;
        -    var options = oColumn.selectOptions;
        -
        -    var markup = "<select>";
        -    if(options) {
        -        for(var i=0; i<options.length; i++) {
        -            var option = options[i];
        -            markup += "<option value=\"" + option + "\"";
        -            if(selectedValue === option) {
        -                markup += " selected";
        -            }
        -            markup += ">" + option + "</option>";
        -        }
        -    }
        -    else {
        -        if(selectedValue) {
        -            markup += "<option value=\"" + selectedValue + "\" selected>" + selectedValue + "</option>";
        -        }
        -    }
        -    markup += "</select>";
        -    elCell.innerHTML = markup;
        -};
        -
        -/**
        - * Takes innerHTML from TD and parses out data for storage in RecordSet.
        - *
        - * @method parse
        - * @param sMarkup {String} The TD's innerHTML value.
        - * @return {Object} Data.
        - */
        -YAHOO.widget.Column.prototype.parse = function(sMarkup) {
        -    if(this.parser) {
        -        return this.parser(sMarkup);
        -    }
        -    else {
        -        var data = null;
        -        switch(this.type) {
        -            case "checkbox":
        -                data = YAHOO.widget.Column.parseCheckbox(sMarkup);
        -                break;
        -            case "currency":
        -                data = YAHOO.widget.Column.parseCurrency(sMarkup);
        -                break;
        -            case "date":
        -                data = YAHOO.widget.Column.parseDate(sMarkup);
        -                break;
        -            case "number":
        -                data = YAHOO.widget.Column.parseNumber(sMarkup);
        -                break;
        -            case "select":
        -                data = YAHOO.widget.Column.parseSelect(sMarkup);
        -                break;
        -           default:
        -                if(sMarkup) {
        -                    data = sMarkup;
        -                }
        -                break;
        -        }
        -        return data;
        -    }
        -};
        -
        -/**
        - * Default parse function for Columns of type "checkbox" takes markup and
        - * extracts data. Can be overridden for custom parsing.
        - *
        - * @method parseCheckbox
        - * @param sMarkup
        - * @return {bChecked} True if checkbox is checked.
        - */
        -YAHOO.widget.Column.parseCheckbox = function(sMarkup) {
        -    return (sMarkup.indexOf("checked") < 0) ? false : true;
        -};
        -
        -/**
        - * Default parse function for Columns of type "currency" takes markup and
        - * extracts data. Can be overridden for custom parsing.
        - *
        - * @method parseCurrency
        - * @param sMarkup
        - * @return {nAmount} Floating point amount.
        - */
        -YAHOO.widget.Column.parseCurrency = function(sMarkup) {
        -    return parseFloat(sMarkup.substring(1));
        -};
        -
        -/**
        - * Default parse function for Columns of type "date" takes markup and extracts
        - * data. Can be overridden for custom parsing.
        - *
        - * @method parseDate
        - * @param sMarkup
        - * @return {oDate} Date instance.
        - */
        -YAHOO.widget.Column.parseDate = function(sMarkup) {
        -    var mm = sMarkup.substring(0,sMarkup.indexOf("/"));
        -    sMarkup = sMarkup.substring(sMarkup.indexOf("/")+1);
        -    var dd = sMarkup.substring(0,sMarkup.indexOf("/"));
        -    var yy = sMarkup.substring(sMarkup.indexOf("/")+1);
        -    return new Date(yy, mm, dd);
        -};
        -
        -/**
        - * Default parse function for Columns of type "number" takes markup and extracts
        - * data. Can be overridden for custom parsing.
        - *
        - * @method parseNumber
        - * @param sMarkup
        - * @return {nNumber} Number.
        - */
        -YAHOO.widget.Column.parseNumber = function(sMarkup) {
        -    return parseFloat(sMarkup);
        -};
        -
        -/**
        - * Default parse function for Columns of type "select" takes markup and extracts
        - * data. Can be overridden for custom parsing.
        - *
        - * @method parseSelect
        - * @param sMarkup
        - * @return {sValue} Value of selected option.
        - */
        -YAHOO.widget.Column.parseSelect = function(sMarkup) {
        -    //return (sMarkup.indexOf("checked") < 0) ? false : true;
        -};
        -
        -/**
        - * Outputs editor markup into the given TD based on given Record.
        - *
        - * @method showEditor
        - * @param elCell {HTMLElement} The cell to edit.
        - * @param oRecord {YAHOO.widget.Record} The DataTable Record of the cell.
        - * @return YAHOO.widget.ColumnEditor
        - */
        -YAHOO.widget.Column.prototype.getEditor = function(elCell, oRecord) {
        -//Sync up the arg signature for ColumnEditor constructor and show()
        -    var oEditor = this.editor;
        -    if(YAHOO.lang.isString(oEditor)) {
        -        oEditor = new YAHOO.widget.ColumnEditor(this.editor);
        -        oEditor.show(elCell, oRecord, this);
        -        this.editor = oEditor;
        -    }
        -    else if(oEditor instanceof YAHOO.widget.ColumnEditor) {
        -        oEditor.show(elCell, oRecord, this);
        -    }
        -    return oEditor;
        -};
        -
        -
        -/****************************************************************************/
        -/****************************************************************************/
        -/****************************************************************************/
        -
        -/**
        - * The ColumnEditor defines and manages inline editing functionality for a
        - * DataTable Column.
        - *
        - * @class ColumnEditor
        - * @constructor
        - * @param elCell {HTMLElement} The cell to edit.
        - * @param oRecord {YAHOO.widget.Record} The DataTable Record of the cell.
        - * @param oColumn {YAHOO.widget.Column} The DataTable Column of the cell.
        - * @parem sType {String} Type identifier
        - */
        -YAHOO.widget.ColumnEditor = function(sType) {
        -    this.type = sType;
        -
        -    //TODO: make sure ColumnEditors get destroyed if widget gets destroyed
        -    // Works better to attach ColumnEditor to document.body
        -    // rather than the DataTable container
        -    // elTable comes in as a cell. Traverse up DOM to find the table.
        -    // TODO: safety net in case table is never found.
        -    //while(elCell.nodeName.toLowerCase() != "table") {
        -    //    elCell = elCell.parentNode;
        -    //}
        -    //this.tableContainer = elCell.parentNode;
        -    
        -    var container = document.body.appendChild(document.createElement("div"));//this.tableContainer.appendChild(document.createElement("div"));
        -    container.style.position = "absolute";
        -    container.style.zIndex = 9000;
        -    container.id = "yui-dt-editor" + YAHOO.widget.ColumnEditor._nCount;
        -    container.className = YAHOO.widget.DataTable.CLASS_EDITOR;
        -    this.container = container;
        -
        -    switch(this.type) {
        -        case "textbox":
        -            this.createTextboxEditor();
        -            break;
        -        case "textarea":
        -            this.createTextareaEditor();
        -            break;
        -        default:
        -            break;
        -    }
        -
        -    YAHOO.widget.ColumnEditor._nCount++;
        -};
        -
        -
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Internal instance counter.
        - *
        - * @property _nCount
        - * @type Number
        - * @static
        - * @default 0
        - */
        -YAHOO.widget.ColumnEditor._nCount =0;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Reference to the container DOM element for the ColumnEditor.
        - *
        - * @property container
        - * @type HTMLElement
        - */
        -YAHOO.widget.ColumnEditor.prototype.container = null;
        -
        -/**
        - * Reference to the ColumnEditor's Column instance.
        - *
        - * @property column
        - * @type YAHOO.widget.Column
        - */
        -YAHOO.widget.ColumnEditor.prototype.column = null;
        -
        -/**
        - * Type of editor: "textbox", etc.
        - *
        - * @property type
        - * @type String
        - */
        -YAHOO.widget.ColumnEditor.prototype.type = null;
        -
        -
        -
        -/**
        - * Reference to form element(s) of the ColumnEditor.
        - *
        - * @property input
        - * @type HTMLElement || HTMLElement[]
        - */
        -YAHOO.widget.ColumnEditor.prototype.input = null;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Shows ColumnEditor.
        - *
        - * @method show
        - * @param elCell {HTMLElement} The cell to edit.
        - * @param oRecord {YAHOO.widget.Record} The DataTable Record of the cell.
        - * @param oColumn {YAHOO.widget.Column} The DataTable Column of the cell.
        - */
        -YAHOO.widget.ColumnEditor.prototype.show = function(elCell, oRecord, oColumn) {
        -    this.cell = elCell;
        -    this.record = oRecord;
        -    this.column = oColumn;
        -    switch(this.type) {
        -        case "textbox":
        -            this.showTextboxEditor(elCell, oRecord, oColumn);
        -            break;
        -        case "textarea":
        -            this.showTextareaEditor(elCell, oRecord, oColumn);
        -            break;
        -        default:
        -            break;
        -    }
        -};
        -
        -/**
        - * Positions container over given element, aligning upper-left corners.
        - *
        - * @method moveContainerTo
        - * @param elCell {HTMLElement} The element.
        - */
        -YAHOO.widget.ColumnEditor.prototype.moveContainerTo = function(el) {
        -    var x,y;
        -
        -    // Don't use getXY for Opera
        -    if(navigator.userAgent.toLowerCase().indexOf("opera") != -1) {
        -        x = el.offsetLeft;
        -        y = el.offsetTop;
        -        while(el.offsetParent) {
        -            x += el.offsetParent.offsetLeft;
        -            y += el.offsetParent.offsetTop;
        -            el = el.offsetParent;
        -        }
        -    }
        -    else {
        -        x = parseInt(YAHOO.util.Dom.getX(el),10);//xy[0] + 1;
        -        y = parseInt(YAHOO.util.Dom.getY(el),10);//xy[1] + 1;
        -            // Workaround getXY scroll bug for FF and SF
        -            if(window.scrollX !== undefined) {
        -                x += window.scrollX;
        -            }
        -            if(window.scrollY !== undefined) {
        -                y += window.scrollY;
        -            }
        -    }
        -    this.container.style.left = x + "px";
        -    this.container.style.top = y + "px";
        -};
        -
        -
        -/**
        - * Returns ColumnEditor data value.
        - *
        - * @method getValue
        - * @return Object
        - */
        -YAHOO.widget.ColumnEditor.prototype.getValue = function() {
        -    var value;
        -    switch(this.type) {
        -        case "textbox":
        -            value = this.getTextboxEditorValue();
        -            break;
        -        case "textarea":
        -            value = this.getTextareaEditorValue();
        -            break;
        -        default:
        -            break;
        -    }
        -    return value;
        -};
        -
        -/**
        - * Creates a textbox editor in the DOM.
        - *
        - * @method createTextboxEditor
        - * @return {HTML} ???
        - */
        -YAHOO.widget.ColumnEditor.prototype.createTextboxEditor = function() {
        -    var elTextbox = this.container.appendChild(document.createElement("input"));
        -    // For FF bug 236791
        -    elTextbox.setAttribute("autocomplete","off");
        -    this.input = elTextbox;
        -};
        -
        -/**
        - * Creates a textarea editor in the DOM.
        - *
        - * @method createTextareaEditor
        - * @return {HTML} ???
        - */
        -YAHOO.widget.ColumnEditor.prototype.createTextareaEditor = function() {
        -    var elTextarea = this.container.appendChild(document.createElement("textarea"));
        -    this.input = elTextarea;
        -};
        -
        -/**
        - * Shows textbox.
        - *
        - * @method showTextboxEditor
        - * @param elCell {HTMLElement} The cell to edit.
        - * @param oRecord {YAHOO.widget.Record} The DataTable Record of the cell.
        - * @param oColumn {YAHOO.widget.Column} The DataTable Column of the cell.
        - */
        -YAHOO.widget.ColumnEditor.prototype.showTextboxEditor = function(elCell, oRecord, oColumn) {
        -    // Position container
        -    this.moveContainerTo(elCell);
        -
        -    // Update form field
        -    this.input.style.width = (parseInt(elCell.offsetWidth,10)) + "px";
        -    this.input.style.height = (parseInt(elCell.offsetHeight,10)) + "px";
        -    this.input.value = elCell.innerHTML || "";
        -    this.input.tabIndex = 0;
        -
        -    // Display container
        -    this.container.style.display = "block";
        -
        -    // Highlight input
        -    this.input.focus();
        -    this.input.select();
        -};
        -
        -/**
        - * Shows textarea.
        - *
        - * @method showTextareaEditor
        - * @param elCell {HTMLElement} The cell to edit.
        - * @param oRecord {YAHOO.widget.Record} The DataTable Record of the cell.
        - * @param oColumn {YAHOO.widget.Column} The DataTable Column of the cell.
        - */
        -YAHOO.widget.ColumnEditor.prototype.showTextareaEditor = function(elCell, oRecord, oColumn) {
        -    // Position container
        -    this.moveContainerTo(elCell);
        -    
        -    // Update form field
        -    this.input.style.width = (parseInt(elCell.offsetWidth,10)) + "px";
        -    this.input.style.height = 4*(parseInt(elCell.offsetHeight,10)) + "px";
        -    this.input.value = elCell.innerHTML || "";
        -    this.input.tabIndex = 0;
        -
        -    // Display container
        -    this.container.style.display = "block";
        -    
        -    // Highlight input
        -    this.input.focus();
        -    this.input.select();
        -};
        -
        -/**
        - * Hides ColumnEditor
        - *
        - * @method hide
        - */
        -YAHOO.widget.ColumnEditor.prototype.hide = function() {
        -    this.input.tabIndex = -1;
        -    this.container.style.display = "none";
        -};
        -
        -/**
        - * Returns ColumnEditor value
        - *
        - * @method getTextboxEditorValue
        - * @return String
        - */
        -YAHOO.widget.ColumnEditor.prototype.getTextboxEditorValue = function() {
        -    return this.input.value;
        -};
        -
        -/**
        - * Returns ColumnEditor value
        - *
        - * @method getTextareaEditorValue
        - * @return String
        - */
        -YAHOO.widget.ColumnEditor.prototype.getTextareaEditorValue = function() {
        -    return this.input.value;
        -};
        -
        -/****************************************************************************/
        -/****************************************************************************/
        -/****************************************************************************/
        -
        -/**
        - * Sort static utility to support Column sorting.
        - *
        - * @class Sort
        - * @static
        - */
        -YAHOO.util.Sort = {
        -    /////////////////////////////////////////////////////////////////////////////
        -    //
        -    // Public methods
        -    //
        -    /////////////////////////////////////////////////////////////////////////////
        -
        -    /**
        -     * Comparator function for sort in ascending order. String sorting is case insensitive.
        -     *
        -     * @method compareAsc
        -     * @param a {object} First sort argument.
        -     * @param b {object} Second sort argument.
        -     */
        -    compareAsc: function(a, b) {
        -        if((a === null) || (typeof a == "undefined")) {
        -            if((b === null) || (typeof b == "undefined")) {
        -                return 0;
        -            }
        -            else {
        -                return 1;
        -            }
        -        }
        -        else if((b === null) || (typeof b == "undefined")) {
        -            return -1;
        -        }
        -    
        -        if(a.constructor == String) {
        -            a = a.toLowerCase();
        -        }
        -        if(b.constructor == String) {
        -            b = b.toLowerCase();
        -        }
        -        if(a < b) {
        -            return -1;
        -        }
        -        else if (a > b) {
        -            return 1;
        -        }
        -        else {
        -            return 0;
        -        }
        -    },
        -
        -    /**
        -     * Comparator function for sort in descending order. String sorting is case insensitive.
        -     *
        -     * @method compareDesc
        -     * @param a {object} First sort argument.
        -     * @param b {object} Second sort argument.
        -     */
        -    compareDesc: function(a, b) {
        -        if((a === null) || (typeof a == "undefined")) {
        -            if((b === null) || (typeof b == "undefined")) {
        -                return 0;
        -            }
        -            else {
        -                return -1;
        -            }
        -        }
        -        else if((b === null) || (typeof b == "undefined")) {
        -            return 1;
        -        }
        -
        -        if(a.constructor == String) {
        -            a = a.toLowerCase();
        -        }
        -        if(b.constructor == String) {
        -            b = b.toLowerCase();
        -        }
        -        if(a < b) {
        -            return 1;
        -        }
        -        else if (a > b) {
        -            return -1;
        -        }
        -        else {
        -            return 0;
        -        }
        -    }
        -};
        -
        -/****************************************************************************/
        -/****************************************************************************/
        -/****************************************************************************/
        -
        -/**
        - * WidthResizer subclasses DragDrop to support resizeable Columns.
        - *
        - * @class WidthResizer
        - * @extends YAHOO.util.DragDrop
        - * @constructor
        - * @param colElId {string} ID of the Column's TH element being resized
        - * @param handleElId {string} ID of the handle element that causes the resize
        - * @param sGroup {string} Group name of related DragDrop items
        - */
        -YAHOO.util.WidthResizer = function(oDataTable, colId, handleId, sGroup, config) {
        -    if (colId) {
        -        this.cell = YAHOO.util.Dom.get(colId);
        -        this.init(handleId, sGroup, config);
        -        //this.initFrame();
        -        this.datatable = oDataTable;
        -        this.setYConstraint(0,0);
        -    }
        -    else {
        -        YAHOO.log("Column resizer could not be created due to invalid colElId","warn");
        -    }
        -};
        -
        -if(YAHOO.util.DD) {
        -    YAHOO.extend(YAHOO.util.WidthResizer, YAHOO.util.DD);
        -}
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public DOM event handlers
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Handles mousedown events on the Column resizer.
        - *
        - * @method onMouseDown
        - * @param e {string} The mousedown event
        - */
        -YAHOO.util.WidthResizer.prototype.onMouseDown = function(e) {
        -    this.startWidth = this.cell.offsetWidth;
        -    this.startPos = YAHOO.util.Dom.getX(this.getDragEl());
        -
        -    if(this.datatable.fixedWidth) {
        -        var cellText = YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.DataTable.CLASS_HEADTEXT,"span",this.cell)[0];
        -        this.minWidth = cellText.offsetWidth + 6;
        -        var sib = this.cell.nextSibling;
        -        var sibCellText = YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.DataTable.CLASS_HEADTEXT,"span",sib)[0];
        -        this.sibMinWidth = sibCellText.offsetWidth + 6;
        -//!!
        -        var left = ((this.startWidth - this.minWidth) < 0) ? 0 : (this.startWidth - this.minWidth);
        -        var right = ((sib.offsetWidth - this.sibMinWidth) < 0) ? 0 : (sib.offsetWidth - this.sibMinWidth);
        -        this.setXConstraint(left, right);
        -        YAHOO.log("cellstartwidth:" + this.startWidth,"time");
        -        YAHOO.log("cellminwidth:" + this.minWidth,"time");
        -        YAHOO.log("sibstartwidth:" + sib.offsetWidth,"time");
        -        YAHOO.log("sibminwidth:" + this.sibMinWidth,"time");
        -        YAHOO.log("l:" + left + " AND r:" + right,"time");
        -    }
        -
        -};
        -
        -/**
        - * Handles mouseup events on the Column resizer.
        - *
        - * @method onMouseUp
        - * @param e {string} The mouseup event
        - */
        -YAHOO.util.WidthResizer.prototype.onMouseUp = function(e) {
        -    //TODO: replace the resizer where it belongs:
        -    var resizeStyle = YAHOO.util.Dom.get(this.handleElId).style;
        -    resizeStyle.left = "auto";
        -    resizeStyle.right = 0;
        -    resizeStyle.marginRight = "-6px";
        -    resizeStyle.width = "6px";
        -    //.yui-dt-headresizer {position:absolute;margin-right:-6px;right:0;bottom:0;width:6px;height:100%;cursor:w-resize;cursor:col-resize;}
        -
        -
        -    //var cells = this.datatable._elTable.tHead.rows[this.datatable._elTable.tHead.rows.length-1].cells;
        -    //for(var i=0; i<cells.length; i++) {
        -        //cells[i].style.width = "5px";
        -    //}
        -
        -    //TODO: set new ColumnSet width values
        -    this.datatable.fireEvent("columnResizeEvent",{datatable:this.datatable,target:YAHOO.util.Dom.get(this.id)});
        -};
        -
        -/**
        - * Handles drag events on the Column resizer.
        - *
        - * @method onDrag
        - * @param e {string} The drag event
        - */
        -YAHOO.util.WidthResizer.prototype.onDrag = function(e) {
        -    var newPos = YAHOO.util.Dom.getX(this.getDragEl());
        -    //YAHOO.log("newpos:"+newPos,"warn");//YAHOO.util.Event.getPageX(e);
        -    var offsetX = newPos - this.startPos;
        -    //YAHOO.log("offset:"+offsetX,"warn");
        -    //YAHOO.log("startwidth:"+this.startWidth + " and offset:"+offsetX,"warn");
        -    var newWidth = this.startWidth + offsetX;
        -    //YAHOO.log("newwidth:"+newWidth,"warn");
        -
        -    if(newWidth < this.minWidth) {
        -        newWidth = this.minWidth;
        -    }
        -
        -    // Resize the Column
        -    var oDataTable = this.datatable;
        -    var elCell = this.cell;
        -
        -    //YAHOO.log("newwidth" + newWidth,"warn");
        -    //YAHOO.log(newWidth + " AND "+ elColumn.offsetWidth + " AND " + elColumn.id,"warn");
        -
        -    // Resize the other Columns
        -    if(oDataTable.fixedWidth) {
        -        // Moving right or left?
        -        var sib = elCell.nextSibling;
        -        //var sibIndex = elCell.index + 1;
        -        var sibnewwidth = sib.offsetWidth - offsetX;
        -        if(sibnewwidth < this.sibMinWidth) {
        -            sibnewwidth = this.sibMinWidth;
        -        }
        -
        -        //TODO: how else to cycle through all the Columns without having to use an index property?
        -        for(var i=0; i<oDataTable._oColumnSet.length; i++) {
        -            if((i != elCell.index) &&  (i!=sibIndex)) {
        -                YAHOO.util.Dom.get(oDataTable._oColumnSet.keys[i].id).style.width = oDataTable._oColumnSet.keys[i].width + "px";
        -            }
        -        }
        -        sib.style.width = sibnewwidth;
        -        elCell.style.width = newWidth + "px";
        -        //oDataTable._oColumnSet.flat[sibIndex].width = sibnewwidth;
        -        //oDataTable._oColumnSet.flat[elCell.index].width = newWidth;
        -
        -    }
        -    else {
        -        elCell.style.width = newWidth + "px";
        -    }
        -};
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Config.js.html b/www/extras/yui/docs/Config.js.html deleted file mode 100644 index 37ae8bbe5..000000000 --- a/www/extras/yui/docs/Config.js.html +++ /dev/null @@ -1,596 +0,0 @@ - - - - API: container Config.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - - > Config.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* Config is a utility used within an Object to allow the implementer to maintain a list of local configuration properties and listen for changes to those properties dynamically using CustomEvent. The initial values are also maintained so that the configuration can be reset at any given point to its initial state.
        -* @namespace YAHOO.util
        -* @class Config
        -* @constructor
        -* @param {Object}	owner	The owner Object to which this Config Object belongs
        -*/
        -YAHOO.util.Config = function(owner) {
        -	if (owner) {
        -		this.init(owner);
        -	}
        -	if (!owner) { YAHOO.log("No owner specified for Config object", "error"); }
        -};
        -
        -/**
        - * Constant representing the CustomEvent type for the config changed event.
        - * @property YAHOO.util.Config.CONFIG_CHANGED_EVENT
        - * @private
        - * @static
        - * @final
        - */
        -YAHOO.util.Config.CONFIG_CHANGED_EVENT = "configChanged";
        -
        -/**
        - * Constant representing the boolean type string
        - * @property YAHOO.util.Config.BOOLEAN_TYPE
        - * @private
        - * @static
        - * @final
        - */
        -YAHOO.util.Config.BOOLEAN_TYPE = "boolean";
        -
        -YAHOO.util.Config.prototype = {
        -	
        -	/**
        -	* Object reference to the owner of this Config Object
        -	* @property owner
        -	* @type Object
        -	*/
        -	owner : null,
        -
        -	/**
        -	* Boolean flag that specifies whether a queue is currently being executed
        -	* @property queueInProgress
        -	* @type Boolean
        -	*/
        -	queueInProgress : false,
        -
        -	/**
        -	* Maintains the local collection of configuration property objects and their specified values
        -	* @property config
        -	* @private
        -	* @type Object
        -	*/ 
        -	config : null,
        -
        -	/**
        -	* Maintains the local collection of configuration property objects as they were initially applied.
        -	* This object is used when resetting a property.
        -	* @property initialConfig
        -	* @private
        -	* @type Object
        -	*/ 
        -	initialConfig : null,
        -
        -	/**
        -	* Maintains the local, normalized CustomEvent queue
        -	* @property eventQueue
        -	* @private
        -	* @type Object
        -	*/ 
        -	eventQueue : null,
        -
        -	/**
        -	* Custom Event, notifying subscribers when Config properties are set (setProperty is called without the silent flag
        -	* @event configChangedEvent
        -	*/
        -	configChangedEvent : null,
        -
        -	/**
        -	* Validates that the value passed in is a Boolean.
        -	* @method checkBoolean
        -	* @param	{Object}	val	The value to validate
        -	* @return	{Boolean}	true, if the value is valid
        -	*/	
        -	checkBoolean: function(val) {
        -		return (typeof val == YAHOO.util.Config.BOOLEAN_TYPE);
        -	},
        -
        -	/**
        -	* Validates that the value passed in is a number.
        -	* @method checkNumber
        -	* @param	{Object}	val	The value to validate
        -	* @return	{Boolean}	true, if the value is valid
        -	*/
        -	checkNumber: function(val) {
        -		return (!isNaN(val));
        -	},
        -
        -	/**
        -	* Fires a configuration property event using the specified value. 
        -	* @method fireEvent
        -	* @private
        -	* @param {String}	key			The configuration property's name
        -	* @param {value}	Object		The value of the correct type for the property
        -	*/ 
        -	fireEvent : function( key, value ) {
        -		YAHOO.log("Firing Config event: " + key + "=" + value, "info");
        -		var property = this.config[key];
        -
        -		if (property && property.event) {
        -			property.event.fire(value);
        -		}	
        -	},
        -
        -	/**
        -	* Adds a property to the Config Object's private config hash.
        -	* @method addProperty
        -	* @param {String}	key	The configuration property's name
        -	* @param {Object}	propertyObject	The Object containing all of this property's arguments
        -	*/
        -	addProperty : function( key, propertyObject ) {
        -		key = key.toLowerCase();
        -		YAHOO.log("Added property: " + key, "info");
        -
        -		this.config[key] = propertyObject;
        -
        -		propertyObject.event = new YAHOO.util.CustomEvent(key, this.owner);
        -		propertyObject.key = key;
        -
        -		if (propertyObject.handler) {
        -			propertyObject.event.subscribe(propertyObject.handler, this.owner);
        -		}
        -
        -		this.setProperty(key, propertyObject.value, true);
        -		
        -		if (! propertyObject.suppressEvent) {
        -			this.queueProperty(key, propertyObject.value);
        -		}
        -		
        -	},
        -
        -	/**
        -	* Returns a key-value configuration map of the values currently set in the Config Object.
        -	* @method getConfig
        -	* @return {Object} The current config, represented in a key-value map
        -	*/
        -	getConfig : function() {
        -		var cfg = {};
        -			
        -		for (var prop in this.config) {
        -			var property = this.config[prop];
        -			if (property && property.event) {
        -				cfg[prop] = property.value;
        -			}
        -		}
        -		
        -		return cfg;
        -	},
        -
        -	/**
        -	* Returns the value of specified property.
        -	* @method getProperty
        -	* @param {String} key	The name of the property
        -	* @return {Object}		The value of the specified property
        -	*/
        -	getProperty : function(key) {
        -		var property = this.config[key.toLowerCase()];
        -		if (property && property.event) {
        -			return property.value;
        -		} else {
        -			return undefined;
        -		}
        -	},
        -
        -	/**
        -	* Resets the specified property's value to its initial value.
        -	* @method resetProperty
        -	* @param {String} key	The name of the property
        -	* @return {Boolean} True is the property was reset, false if not
        -	*/
        -	resetProperty : function(key) {
        -		key = key.toLowerCase();
        -
        -		var property = this.config[key];
        -		if (property && property.event) {
        -			if (this.initialConfig[key] && !YAHOO.lang.isUndefined(this.initialConfig[key]))	{
        -				this.setProperty(key, this.initialConfig[key]);
        -			}
        -			return true;
        -		} else {
        -			return false;
        -		}
        -	},
        -
        -	/**
        -	* Sets the value of a property. If the silent property is passed as true, the property's event will not be fired.
        -	* @method setProperty
        -	* @param {String} key		The name of the property
        -	* @param {String} value		The value to set the property to
        -	* @param {Boolean} silent	Whether the value should be set silently, without firing the property event.
        -	* @return {Boolean}			True, if the set was successful, false if it failed.
        -	*/
        -	setProperty : function(key, value, silent) {
        -		key = key.toLowerCase();
        -		YAHOO.log("setProperty: " + key + "=" + value, "info");
        -
        -		if (this.queueInProgress && ! silent) {
        -			this.queueProperty(key,value); // Currently running through a queue... 
        -			return true;
        -		} else {
        -			var property = this.config[key];
        -			if (property && property.event) {
        -				if (property.validator && ! property.validator(value)) { // validator
        -					return false;
        -				} else {
        -					property.value = value;
        -					if (! silent) {
        -						this.fireEvent(key, value);
        -						this.configChangedEvent.fire([key, value]);
        -					}
        -					return true;
        -				}
        -			} else {
        -				return false;
        -			}
        -		}
        -	},
        -
        -	/**
        -	* Sets the value of a property and queues its event to execute. If the event is already scheduled to execute, it is
        -	* moved from its current position to the end of the queue.
        -	* @method queueProperty
        -	* @param {String} key	The name of the property
        -	* @param {String} value	The value to set the property to
        -	* @return {Boolean}		true, if the set was successful, false if it failed.
        -	*/	
        -	queueProperty : function(key, value) {
        -		key = key.toLowerCase();
        -		YAHOO.log("queueProperty: " + key + "=" + value, "info");
        -
        -		var property = this.config[key];
        -							
        -		if (property && property.event) {
        -			if (!YAHOO.lang.isUndefined(value) && property.validator && ! property.validator(value)) { // validator
        -				return false;
        -			} else {
        -
        -				if (!YAHOO.lang.isUndefined(value)) {
        -					property.value = value;
        -				} else {
        -					value = property.value;
        -				}
        -
        -				var foundDuplicate = false;
        -				var iLen = this.eventQueue.length;
        -				for (var i=0; i < iLen; i++) {
        -					var queueItem = this.eventQueue[i];
        -
        -					if (queueItem) {
        -						var queueItemKey = queueItem[0];
        -						var queueItemValue = queueItem[1];
        -						
        -						if (queueItemKey == key) {
        -							// found a dupe... push to end of queue, null current item, and break
        -							this.eventQueue[i] = null;
        -							this.eventQueue.push([key, (!YAHOO.lang.isUndefined(value) ? value : queueItemValue)]);
        -							foundDuplicate = true;
        -							break;
        -						}
        -					}
        -				}
        -				
        -				if (! foundDuplicate && !YAHOO.lang.isUndefined(value)) { // this is a refire, or a new property in the queue
        -					this.eventQueue.push([key, value]);
        -				}
        -			}
        -
        -			if (property.supercedes) {
        -				var sLen = property.supercedes.length;
        -				for (var s=0; s < sLen; s++) {
        -					var supercedesCheck = property.supercedes[s];
        -					var qLen = this.eventQueue.length;
        -					for (var q=0; q < qLen; q++) {
        -						var queueItemCheck = this.eventQueue[q];
        -
        -						if (queueItemCheck) {
        -							var queueItemCheckKey = queueItemCheck[0];
        -							var queueItemCheckValue = queueItemCheck[1];
        -							
        -							if ( queueItemCheckKey == supercedesCheck.toLowerCase() ) {
        -								this.eventQueue.push([queueItemCheckKey, queueItemCheckValue]);
        -								this.eventQueue[q] = null;
        -								break;
        -							}
        -						}
        -					}
        -				}
        -			}
        -			YAHOO.log("Config event queue: " + this.outputEventQueue(), "info");
        -
        -			return true;
        -		} else {
        -			return false;
        -		}
        -	},
        -
        -	/**
        -	* Fires the event for a property using the property's current value.
        -	* @method refireEvent
        -	* @param {String} key	The name of the property
        -	*/
        -	refireEvent : function(key) {
        -		key = key.toLowerCase();
        -
        -		var property = this.config[key];
        -		if (property && property.event && !YAHOO.lang.isUndefined(property.value)) {
        -			if (this.queueInProgress) {
        -				this.queueProperty(key);
        -			} else {
        -				this.fireEvent(key, property.value);
        -			}
        -		}
        -	},
        -
        -	/**
        -	* Applies a key-value Object literal to the configuration, replacing any existing values, and queueing the property events.
        -	* Although the values will be set, fireQueue() must be called for their associated events to execute.
        -	* @method applyConfig
        -	* @param {Object}	userConfig	The configuration Object literal
        -	* @param {Boolean}	init		When set to true, the initialConfig will be set to the userConfig passed in, so that calling a reset will reset the properties to the passed values.
        -	*/
        -	applyConfig : function(userConfig, init) {
        -		if (init) {
        -			this.initialConfig = userConfig;
        -		}
        -		for (var prop in userConfig) {
        -			this.queueProperty(prop, userConfig[prop]);
        -		}
        -	},
        -
        -	/**
        -	* Refires the events for all configuration properties using their current values.
        -	* @method refresh
        -	*/
        -	refresh : function() {
        -		for (var prop in this.config) {
        -			this.refireEvent(prop);
        -		}
        -	},
        -
        -	/**
        -	* Fires the normalized list of queued property change events
        -	* @method fireQueue
        -	*/
        -	fireQueue : function() {
        -		this.queueInProgress = true;
        -		for (var i=0;i<this.eventQueue.length;i++) {
        -			var queueItem = this.eventQueue[i];
        -			if (queueItem) {
        -				var key = queueItem[0];
        -				var value = queueItem[1];
        -				
        -				var property = this.config[key];
        -				property.value = value;
        -
        -				this.fireEvent(key,value);
        -			}
        -		}
        -		
        -		this.queueInProgress = false;
        -		this.eventQueue = [];
        -	},
        -
        -	/**
        -	* Subscribes an external handler to the change event for any given property. 
        -	* @method subscribeToConfigEvent
        -	* @param {String}	key			The property name
        -	* @param {Function}	handler		The handler function to use subscribe to the property's event
        -	* @param {Object}	obj			The Object to use for scoping the event handler (see CustomEvent documentation)
        -	* @param {Boolean}	override	Optional. If true, will override "this" within the handler to map to the scope Object passed into the method.
        -	* @return {Boolean}				True, if the subscription was successful, otherwise false.
        -	*/	
        -	subscribeToConfigEvent : function(key, handler, obj, override) {
        -		var property = this.config[key.toLowerCase()];
        -		if (property && property.event) {
        -			if (! YAHOO.util.Config.alreadySubscribed(property.event, handler, obj)) {
        -				property.event.subscribe(handler, obj, override);
        -			}
        -			return true;
        -		} else {
        -			return false;
        -		}
        -	},
        -
        -	/**
        -	* Unsubscribes an external handler from the change event for any given property. 
        -	* @method unsubscribeFromConfigEvent
        -	* @param {String}	key			The property name
        -	* @param {Function}	handler		The handler function to use subscribe to the property's event
        -	* @param {Object}	obj			The Object to use for scoping the event handler (see CustomEvent documentation)
        -	* @return {Boolean}				True, if the unsubscription was successful, otherwise false.
        -	*/
        -	unsubscribeFromConfigEvent : function(key, handler, obj) {
        -		var property = this.config[key.toLowerCase()];
        -		if (property && property.event) {
        -			return property.event.unsubscribe(handler, obj);
        -		} else {
        -			return false;
        -		}
        -	},
        -
        -	/**
        -	* Returns a string representation of the Config object
        -	* @method toString
        -	* @return {String}	The Config object in string format.
        -	*/
        -	toString : function() {
        -		var output = "Config";
        -		if (this.owner) {
        -			output += " [" + this.owner.toString() + "]";
        -		}
        -		return output;
        -	},
        -
        -	/**
        -	* Returns a string representation of the Config object's current CustomEvent queue
        -	* @method outputEventQueue
        -	* @return {String}	The string list of CustomEvents currently queued for execution
        -	*/
        -	outputEventQueue : function() {
        -		var output = "";
        -		for (var q=0;q<this.eventQueue.length;q++) {
        -			var queueItem = this.eventQueue[q];
        -			if (queueItem) {
        -				output += queueItem[0] + "=" + queueItem[1] + ", ";
        -			}
        -		}
        -		return output;
        -	}
        -};
        -
        -
        -/**
        -* Initializes the configuration Object and all of its local members.
        -* @method init
        -* @param {Object}	owner	The owner Object to which this Config Object belongs
        -*/
        -YAHOO.util.Config.prototype.init = function(owner) {
        -	this.owner = owner;
        -	this.configChangedEvent = new YAHOO.util.CustomEvent(YAHOO.util.CONFIG_CHANGED_EVENT, this);
        -	this.queueInProgress = false;
        -	this.config = {};
        -	this.initialConfig = {};
        -	this.eventQueue = [];
        -};
        -
        -/**
        -* Checks to determine if a particular function/Object pair are already subscribed to the specified CustomEvent
        -* @method YAHOO.util.Config.alreadySubscribed
        -* @static
        -* @param {YAHOO.util.CustomEvent} evt	The CustomEvent for which to check the subscriptions
        -* @param {Function}	fn	The function to look for in the subscribers list
        -* @param {Object}	obj	The execution scope Object for the subscription
        -* @return {Boolean}	true, if the function/Object pair is already subscribed to the CustomEvent passed in
        -*/
        -YAHOO.util.Config.alreadySubscribed = function(evt, fn, obj) {
        -	for (var e=0;e<evt.subscribers.length;e++) {
        -		var subsc = evt.subscribers[e];
        -		if (subsc && subsc.obj == obj && subsc.fn == fn) {
        -			return true;
        -		}
        -	}
        -	return false;
        -};
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/ContainerEffect.js.html b/www/extras/yui/docs/ContainerEffect.js.html deleted file mode 100644 index c701aa63d..000000000 --- a/www/extras/yui/docs/ContainerEffect.js.html +++ /dev/null @@ -1,429 +0,0 @@ - - - - API: container ContainerEffect.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - - > ContainerEffect.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* ContainerEffect encapsulates animation transitions that are executed when an Overlay is shown or hidden.
        -* @namespace YAHOO.widget
        -* @class ContainerEffect
        -* @constructor
        -* @param {YAHOO.widget.Overlay}	overlay		The Overlay that the animation should be associated with
        -* @param {Object}	attrIn		The object literal representing the animation arguments to be used for the animate-in transition. The arguments for this literal are: attributes(object, see YAHOO.util.Anim for description), duration(Number), and method(i.e. YAHOO.util.Easing.easeIn).
        -* @param {Object}	attrOut		The object literal representing the animation arguments to be used for the animate-out transition. The arguments for this literal are: attributes(object, see YAHOO.util.Anim for description), duration(Number), and method(i.e. YAHOO.util.Easing.easeIn).
        -* @param {HTMLElement}	targetElement	Optional. The target element that should be animated during the transition. Defaults to overlay.element.
        -* @param {class}	Optional. The animation class to instantiate. Defaults to YAHOO.util.Anim. Other options include YAHOO.util.Motion.
        -*/
        -YAHOO.widget.ContainerEffect = function(overlay, attrIn, attrOut, targetElement, animClass) {
        -	if (! animClass) {
        -		animClass = YAHOO.util.Anim;
        -	}
        -
        -	/**
        -	* The overlay to animate
        -	* @property overlay
        -	* @type YAHOO.widget.Overlay
        -	*/
        -	this.overlay = overlay;
        -	/**
        -	* The animation attributes to use when transitioning into view
        -	* @property attrIn
        -	* @type Object
        -	*/
        -	this.attrIn = attrIn;
        -	/**
        -	* The animation attributes to use when transitioning out of view
        -	* @property attrOut
        -	* @type Object
        -	*/
        -	this.attrOut = attrOut;
        -	/**
        -	* The target element to be animated
        -	* @property targetElement
        -	* @type HTMLElement
        -	*/
        -	this.targetElement = targetElement || overlay.element;
        -	/**
        -	* The animation class to use for animating the overlay
        -	* @property animClass
        -	* @type class
        -	*/
        -	this.animClass = animClass;
        -};
        -
        -/**
        -* Initializes the animation classes and events.
        -* @method init
        -*/
        -YAHOO.widget.ContainerEffect.prototype.init = function() {
        -	this.beforeAnimateInEvent = new YAHOO.util.CustomEvent("beforeAnimateIn", this);
        -	this.beforeAnimateOutEvent = new YAHOO.util.CustomEvent("beforeAnimateOut", this);
        -
        -	this.animateInCompleteEvent = new YAHOO.util.CustomEvent("animateInComplete", this);
        -	this.animateOutCompleteEvent = new YAHOO.util.CustomEvent("animateOutComplete", this);
        -
        -	this.animIn = new this.animClass(this.targetElement, this.attrIn.attributes, this.attrIn.duration, this.attrIn.method);
        -	this.animIn.onStart.subscribe(this.handleStartAnimateIn, this);
        -	this.animIn.onTween.subscribe(this.handleTweenAnimateIn, this);
        -	this.animIn.onComplete.subscribe(this.handleCompleteAnimateIn, this);
        -
        -	this.animOut = new this.animClass(this.targetElement, this.attrOut.attributes, this.attrOut.duration, this.attrOut.method);
        -	this.animOut.onStart.subscribe(this.handleStartAnimateOut, this);
        -	this.animOut.onTween.subscribe(this.handleTweenAnimateOut, this);
        -	this.animOut.onComplete.subscribe(this.handleCompleteAnimateOut, this);
        -};
        -
        -/**
        -* Triggers the in-animation.
        -* @method animateIn
        -*/
        -YAHOO.widget.ContainerEffect.prototype.animateIn = function() {
        -	this.beforeAnimateInEvent.fire();
        -	this.animIn.animate();
        -};
        -
        -/**
        -* Triggers the out-animation.
        -* @method animateOut
        -*/
        -YAHOO.widget.ContainerEffect.prototype.animateOut = function() {
        -	this.beforeAnimateOutEvent.fire();
        -	this.animOut.animate();
        -};
        -
        -/**
        -* The default onStart handler for the in-animation.
        -* @method handleStartAnimateIn
        -* @param {String} type	The CustomEvent type
        -* @param {Object[]}	args	The CustomEvent arguments
        -* @param {Object} obj	The scope object
        -*/
        -YAHOO.widget.ContainerEffect.prototype.handleStartAnimateIn = function(type, args, obj) { };
        -/**
        -* The default onTween handler for the in-animation.
        -* @method handleTweenAnimateIn
        -* @param {String} type	The CustomEvent type
        -* @param {Object[]}	args	The CustomEvent arguments
        -* @param {Object} obj	The scope object
        -*/
        -YAHOO.widget.ContainerEffect.prototype.handleTweenAnimateIn = function(type, args, obj) { };
        -/**
        -* The default onComplete handler for the in-animation.
        -* @method handleCompleteAnimateIn
        -* @param {String} type	The CustomEvent type
        -* @param {Object[]}	args	The CustomEvent arguments
        -* @param {Object} obj	The scope object
        -*/
        -YAHOO.widget.ContainerEffect.prototype.handleCompleteAnimateIn = function(type, args, obj) { };
        -
        -/**
        -* The default onStart handler for the out-animation.
        -* @method handleStartAnimateOut
        -* @param {String} type	The CustomEvent type
        -* @param {Object[]}	args	The CustomEvent arguments
        -* @param {Object} obj	The scope object
        -*/
        -YAHOO.widget.ContainerEffect.prototype.handleStartAnimateOut = function(type, args, obj) { };
        -/**
        -* The default onTween handler for the out-animation.
        -* @method handleTweenAnimateOut
        -* @param {String} type	The CustomEvent type
        -* @param {Object[]}	args	The CustomEvent arguments
        -* @param {Object} obj	The scope object
        -*/
        -YAHOO.widget.ContainerEffect.prototype.handleTweenAnimateOut = function(type, args, obj) { };
        -/**
        -* The default onComplete handler for the out-animation.
        -* @method handleCompleteAnimateOut
        -* @param {String} type	The CustomEvent type
        -* @param {Object[]}	args	The CustomEvent arguments
        -* @param {Object} obj	The scope object
        -*/
        -YAHOO.widget.ContainerEffect.prototype.handleCompleteAnimateOut = function(type, args, obj) { };
        -
        -/**
        -* Returns a string representation of the object.
        -* @method toString
        -* @return {String}	The string representation of the ContainerEffect
        -*/
        -YAHOO.widget.ContainerEffect.prototype.toString = function() {
        -	var output = "ContainerEffect";
        -	if (this.overlay) {
        -		output += " [" + this.overlay.toString() + "]";
        -	}
        -	return output;
        -};
        -
        -/**
        -* A pre-configured ContainerEffect instance that can be used for fading an overlay in and out.
        -* @method FADE
        -* @static
        -* @param {Overlay}	overlay	The Overlay object to animate
        -* @param {Number}	dur	The duration of the animation
        -* @return {ContainerEffect}	The configured ContainerEffect object
        -*/
        -YAHOO.widget.ContainerEffect.FADE = function(overlay, dur) {
        -	var fade = new YAHOO.widget.ContainerEffect(overlay, { attributes:{opacity: {from:0, to:1}}, duration:dur, method:YAHOO.util.Easing.easeIn }, { attributes:{opacity: {to:0}}, duration:dur, method:YAHOO.util.Easing.easeOut}, overlay.element );
        -
        -	fade.handleStartAnimateIn = function(type,args,obj) {
        -		YAHOO.util.Dom.addClass(obj.overlay.element, "hide-select");
        -
        -		if (! obj.overlay.underlay) {
        -			obj.overlay.cfg.refireEvent("underlay");
        -		}
        -
        -		if (obj.overlay.underlay) {
        -			obj.initialUnderlayOpacity = YAHOO.util.Dom.getStyle(obj.overlay.underlay, "opacity");
        -			obj.overlay.underlay.style.filter = null;
        -		}
        -
        -		YAHOO.util.Dom.setStyle(obj.overlay.element, "visibility", "visible");
        -		YAHOO.util.Dom.setStyle(obj.overlay.element, "opacity", 0);
        -	};
        -
        -	fade.handleCompleteAnimateIn = function(type,args,obj) {
        -		YAHOO.util.Dom.removeClass(obj.overlay.element, "hide-select");
        -
        -		if (obj.overlay.element.style.filter) {
        -			obj.overlay.element.style.filter = null;
        -		}
        -
        -		if (obj.overlay.underlay) {
        -			YAHOO.util.Dom.setStyle(obj.overlay.underlay, "opacity", obj.initialUnderlayOpacity);
        -		}
        -
        -		obj.overlay.cfg.refireEvent("iframe");
        -		obj.animateInCompleteEvent.fire();
        -	};
        -
        -	fade.handleStartAnimateOut = function(type, args, obj) {
        -		YAHOO.util.Dom.addClass(obj.overlay.element, "hide-select");
        -
        -		if (obj.overlay.underlay) {
        -			obj.overlay.underlay.style.filter = null;
        -		}
        -	};
        -
        -	fade.handleCompleteAnimateOut =  function(type, args, obj) {
        -		YAHOO.util.Dom.removeClass(obj.overlay.element, "hide-select");
        -		if (obj.overlay.element.style.filter) {
        -			obj.overlay.element.style.filter = null;
        -		}
        -		YAHOO.util.Dom.setStyle(obj.overlay.element, "visibility", "hidden");
        -		YAHOO.util.Dom.setStyle(obj.overlay.element, "opacity", 1);
        -
        -		obj.overlay.cfg.refireEvent("iframe");
        -
        -		obj.animateOutCompleteEvent.fire();
        -	};
        -
        -	fade.init();
        -	return fade;
        -};
        -
        -
        -/**
        -* A pre-configured ContainerEffect instance that can be used for sliding an overlay in and out.
        -* @method SLIDE
        -* @static
        -* @param {Overlay}	overlay	The Overlay object to animate
        -* @param {Number}	dur	The duration of the animation
        -* @return {ContainerEffect}	The configured ContainerEffect object
        -*/
        -YAHOO.widget.ContainerEffect.SLIDE = function(overlay, dur) {
        -	var x = overlay.cfg.getProperty("x") || YAHOO.util.Dom.getX(overlay.element);
        -	var y = overlay.cfg.getProperty("y") || YAHOO.util.Dom.getY(overlay.element);
        -
        -	var clientWidth = YAHOO.util.Dom.getClientWidth();
        -	var offsetWidth = overlay.element.offsetWidth;
        -
        -	var slide = new YAHOO.widget.ContainerEffect(overlay, {
        -															attributes:{ points: { to:[x, y] } },
        -															duration:dur,
        -															method:YAHOO.util.Easing.easeIn
        -														},
        -														{
        -															attributes:{ points: { to:[(clientWidth+25), y] } },
        -															duration:dur,
        -															method:YAHOO.util.Easing.easeOut
        -														},
        -														overlay.element,
        -														YAHOO.util.Motion);
        -
        -
        -	slide.handleStartAnimateIn = function(type,args,obj) {
        -		obj.overlay.element.style.left = (-25-offsetWidth) + "px";
        -		obj.overlay.element.style.top  = y + "px";
        -	};
        -
        -	slide.handleTweenAnimateIn = function(type, args, obj) {
        -
        -
        -		var pos = YAHOO.util.Dom.getXY(obj.overlay.element);
        -
        -		var currentX = pos[0];
        -		var currentY = pos[1];
        -
        -		if (YAHOO.util.Dom.getStyle(obj.overlay.element, "visibility") == "hidden" && currentX < x) {
        -			YAHOO.util.Dom.setStyle(obj.overlay.element, "visibility", "visible");
        -		}
        -
        -		obj.overlay.cfg.setProperty("xy", [currentX,currentY], true);
        -		obj.overlay.cfg.refireEvent("iframe");
        -	};
        -
        -	slide.handleCompleteAnimateIn = function(type, args, obj) {
        -		obj.overlay.cfg.setProperty("xy", [x,y], true);
        -		obj.startX = x;
        -		obj.startY = y;
        -		obj.overlay.cfg.refireEvent("iframe");
        -		obj.animateInCompleteEvent.fire();
        -	};
        -
        -	slide.handleStartAnimateOut = function(type, args, obj) {
        -		var vw = YAHOO.util.Dom.getViewportWidth();
        -
        -		var pos = YAHOO.util.Dom.getXY(obj.overlay.element);
        -
        -		var yso = pos[1];
        -
        -		var currentTo = obj.animOut.attributes.points.to;
        -		obj.animOut.attributes.points.to = [(vw+25), yso];
        -	};
        -
        -	slide.handleTweenAnimateOut = function(type, args, obj) {
        -		var pos = YAHOO.util.Dom.getXY(obj.overlay.element);
        -
        -		var xto = pos[0];
        -		var yto = pos[1];
        -
        -		obj.overlay.cfg.setProperty("xy", [xto,yto], true);
        -		obj.overlay.cfg.refireEvent("iframe");
        -	};
        -
        -	slide.handleCompleteAnimateOut = function(type, args, obj) {
        -		YAHOO.util.Dom.setStyle(obj.overlay.element, "visibility", "hidden");
        -
        -		obj.overlay.cfg.setProperty("xy", [x,y]);
        -		obj.animateOutCompleteEvent.fire();
        -	};
        -
        -	slide.init();
        -	return slide;
        -};
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/CustomEvent.js.html b/www/extras/yui/docs/CustomEvent.js.html deleted file mode 100644 index 937c538f7..000000000 --- a/www/extras/yui/docs/CustomEvent.js.html +++ /dev/null @@ -1,487 +0,0 @@ - - - - API: event CustomEvent.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Event Utility  2.2.2

        -

        - Yahoo! UI Library - > event - - > CustomEvent.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * The CustomEvent class lets you define events for your application
        - * that can be subscribed to by one or more independent component.
        - *
        - * @param {String}  type The type of event, which is passed to the callback
        - *                  when the event fires
        - * @param {Object}  oScope The context the event will fire from.  "this" will
        - *                  refer to this object in the callback.  Default value: 
        - *                  the window object.  The listener can override this.
        - * @param {boolean} silent pass true to prevent the event from writing to
        - *                  the debugsystem
        - * @param {int}     signature the signature that the custom event subscriber
        - *                  will receive. YAHOO.util.CustomEvent.LIST or 
        - *                  YAHOO.util.CustomEvent.FLAT.  The default is
        - *                  YAHOO.util.CustomEvent.LIST.
        - * @namespace YAHOO.util
        - * @class CustomEvent
        - * @constructor
        - */
        -YAHOO.util.CustomEvent = function(type, oScope, silent, signature) {
        -
        -    /**
        -     * The type of event, returned to subscribers when the event fires
        -     * @property type
        -     * @type string
        -     */
        -    this.type = type;
        -
        -    /**
        -     * The scope the the event will fire from by default.  Defaults to the window 
        -     * obj
        -     * @property scope
        -     * @type object
        -     */
        -    this.scope = oScope || window;
        -
        -    /**
        -     * By default all custom events are logged in the debug build, set silent
        -     * to true to disable debug outpu for this event.
        -     * @property silent
        -     * @type boolean
        -     */
        -    this.silent = silent;
        -
        -    /**
        -     * Custom events support two styles of arguments provided to the event
        -     * subscribers.  
        -     * <ul>
        -     * <li>YAHOO.util.CustomEvent.LIST: 
        -     *   <ul>
        -     *   <li>param1: event name</li>
        -     *   <li>param2: array of arguments sent to fire</li>
        -     *   <li>param3: <optional> a custom object supplied by the subscriber</li>
        -     *   </ul>
        -     * </li>
        -     * <li>YAHOO.util.CustomEvent.FLAT
        -     *   <ul>
        -     *   <li>param1: the first argument passed to fire.  If you need to
        -     *           pass multiple parameters, use and array or object literal</li>
        -     *   <li>param2: <optional> a custom object supplied by the subscriber</li>
        -     *   </ul>
        -     * </li>
        -     * </ul>
        -     *   @property signature
        -     *   @type int
        -     */
        -    this.signature = signature || YAHOO.util.CustomEvent.LIST;
        -
        -    /**
        -     * The subscribers to this event
        -     * @property subscribers
        -     * @type Subscriber[]
        -     */
        -    this.subscribers = [];
        -
        -    if (!this.silent) {
        -        YAHOO.log( "Creating " + this, "info", "Event" );
        -    }
        -
        -    var onsubscribeType = "_YUICEOnSubscribe";
        -
        -    // Only add subscribe events for events that are not generated by 
        -    // CustomEvent
        -    if (type !== onsubscribeType) {
        -
        -        /**
        -         * Custom events provide a custom event that fires whenever there is
        -         * a new subscriber to the event.  This provides an opportunity to
        -         * handle the case where there is a non-repeating event that has
        -         * already fired has a new subscriber.  
        -         *
        -         * @event subscribeEvent
        -         * @type YAHOO.util.CustomEvent
        -         * @param {Function} fn The function to execute
        -         * @param {Object}   obj An object to be passed along when the event 
        -         *                       fires
        -         * @param {boolean|Object}  override If true, the obj passed in becomes 
        -         *                                   the execution scope of the listener.
        -         *                                   if an object, that object becomes the
        -         *                                   the execution scope.
        -         */
        -        this.subscribeEvent = 
        -                new YAHOO.util.CustomEvent(onsubscribeType, this, true);
        -
        -    } 
        -};
        -
        -/**
        - * Subscriber listener sigature constant.  The LIST type returns three
        - * parameters: the event type, the array of args passed to fire, and
        - * the optional custom object
        - * @property YAHOO.util.CustomEvent.LIST
        - * @static
        - * @type int
        - */
        -YAHOO.util.CustomEvent.LIST = 0;
        -
        -/**
        - * Subscriber listener sigature constant.  The FLAT type returns two
        - * parameters: the first argument passed to fire and the optional 
        - * custom object
        - * @property YAHOO.util.CustomEvent.FLAT
        - * @static
        - * @type int
        - */
        -YAHOO.util.CustomEvent.FLAT = 1;
        -
        -YAHOO.util.CustomEvent.prototype = {
        -
        -    /**
        -     * Subscribes the caller to this event
        -     * @method subscribe
        -     * @param {Function} fn        The function to execute
        -     * @param {Object}   obj       An object to be passed along when the event 
        -     *                             fires
        -     * @param {boolean|Object}  override If true, the obj passed in becomes 
        -     *                                   the execution scope of the listener.
        -     *                                   if an object, that object becomes the
        -     *                                   the execution scope.
        -     */
        -    subscribe: function(fn, obj, override) {
        -
        -        if (!fn) {
        -throw new Error("Invalid callback for subscriber to '" + this.type + "'");
        -        }
        -
        -        if (this.subscribeEvent) {
        -            this.subscribeEvent.fire(fn, obj, override);
        -        }
        -
        -        this.subscribers.push( new YAHOO.util.Subscriber(fn, obj, override) );
        -    },
        -
        -    /**
        -     * Unsubscribes subscribers.
        -     * @method unsubscribe
        -     * @param {Function} fn  The subscribed function to remove, if not supplied
        -     *                       all will be removed
        -     * @param {Object}   obj  The custom object passed to subscribe.  This is
        -     *                        optional, but if supplied will be used to
        -     *                        disambiguate multiple listeners that are the same
        -     *                        (e.g., you subscribe many object using a function
        -     *                        that lives on the prototype)
        -     * @return {boolean} True if the subscriber was found and detached.
        -     */
        -    unsubscribe: function(fn, obj) {
        -
        -        if (!fn) {
        -            return this.unsubscribeAll();
        -        }
        -
        -        var found = false;
        -        for (var i=0, len=this.subscribers.length; i<len; ++i) {
        -            var s = this.subscribers[i];
        -            if (s && s.contains(fn, obj)) {
        -                this._delete(i);
        -                found = true;
        -            }
        -        }
        -
        -        return found;
        -    },
        -
        -    /**
        -     * Notifies the subscribers.  The callback functions will be executed
        -     * from the scope specified when the event was created, and with the 
        -     * following parameters:
        -     *   <ul>
        -     *   <li>The type of event</li>
        -     *   <li>All of the arguments fire() was executed with as an array</li>
        -     *   <li>The custom object (if any) that was passed into the subscribe() 
        -     *       method</li>
        -     *   </ul>
        -     * @method fire 
        -     * @param {Object*} arguments an arbitrary set of parameters to pass to 
        -     *                            the handler.
        -     * @return {boolean} false if one of the subscribers returned false, 
        -     *                   true otherwise
        -     */
        -    fire: function() {
        -        var len=this.subscribers.length;
        -        if (!len && this.silent) {
        -            return true;
        -        }
        -
        -        var args=[], ret=true, i;
        -
        -        for (i=0; i<arguments.length; ++i) {
        -            args.push(arguments[i]);
        -        }
        -
        -        var argslength = args.length;
        -
        -        if (!this.silent) {
        -            YAHOO.log( "Firing "       + this  + ", " + 
        -                       "args: "        + args  + ", " +
        -                       "subscribers: " + len,                 
        -                       "info", "Event"                  );
        -        }
        -
        -        for (i=0; i<len; ++i) {
        -            var s = this.subscribers[i];
        -            if (s) {
        -                if (!this.silent) {
        -                    YAHOO.log( this.type + "->" + (i+1) + ": " +  s, 
        -                                "info", "Event" );
        -                }
        -
        -                var scope = s.getScope(this.scope);
        -
        -                if (this.signature == YAHOO.util.CustomEvent.FLAT) {
        -                    var param = null;
        -                    if (args.length > 0) {
        -                        param = args[0];
        -                    }
        -                    ret = s.fn.call(scope, param, s.obj);
        -                } else {
        -                    ret = s.fn.call(scope, this.type, args, s.obj);
        -                }
        -                if (false === ret) {
        -                    if (!this.silent) {
        -                        YAHOO.log("Event cancelled, subscriber " + i + 
        -                                  " of " + len);
        -                    }
        -
        -                    //break;
        -                    return false;
        -                }
        -            }
        -        }
        -
        -        return true;
        -    },
        -
        -    /**
        -     * Removes all listeners
        -     * @method unsubscribeAll
        -     * @return {int} The number of listeners unsubscribed
        -     */
        -    unsubscribeAll: function() {
        -        for (var i=0, len=this.subscribers.length; i<len; ++i) {
        -            this._delete(len - 1 - i);
        -        }
        -
        -        return i;
        -    },
        -
        -    /**
        -     * @method _delete
        -     * @private
        -     */
        -    _delete: function(index) {
        -        var s = this.subscribers[index];
        -        if (s) {
        -            delete s.fn;
        -            delete s.obj;
        -        }
        -
        -        // delete this.subscribers[index];
        -        this.subscribers.splice(index, 1);
        -    },
        -
        -    /**
        -     * @method toString
        -     */
        -    toString: function() {
        -         return "CustomEvent: " + "'" + this.type  + "', " + 
        -             "scope: " + this.scope;
        -
        -    }
        -};
        -
        -/////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Stores the subscriber information to be used when the event fires.
        - * @param {Function} fn       The function to execute
        - * @param {Object}   obj      An object to be passed along when the event fires
        - * @param {boolean}  override If true, the obj passed in becomes the execution
        - *                            scope of the listener
        - * @class Subscriber
        - * @constructor
        - */
        -YAHOO.util.Subscriber = function(fn, obj, override) {
        -
        -    /**
        -     * The callback that will be execute when the event fires
        -     * @property fn
        -     * @type function
        -     */
        -    this.fn = fn;
        -
        -    /**
        -     * An optional custom object that will passed to the callback when
        -     * the event fires
        -     * @property obj
        -     * @type object
        -     */
        -    this.obj = obj || null;
        -
        -    /**
        -     * The default execution scope for the event listener is defined when the
        -     * event is created (usually the object which contains the event).
        -     * By setting override to true, the execution scope becomes the custom
        -     * object passed in by the subscriber.  If override is an object, that 
        -     * object becomes the scope.
        -     * @property override
        -     * @type boolean|object
        -     */
        -    this.override = override;
        -
        -};
        -
        -/**
        - * Returns the execution scope for this listener.  If override was set to true
        - * the custom obj will be the scope.  If override is an object, that is the
        - * scope, otherwise the default scope will be used.
        - * @method getScope
        - * @param {Object} defaultScope the scope to use if this listener does not
        - *                              override it.
        - */
        -YAHOO.util.Subscriber.prototype.getScope = function(defaultScope) {
        -    if (this.override) {
        -        if (this.override === true) {
        -            return this.obj;
        -        } else {
        -            return this.override;
        -        }
        -    }
        -    return defaultScope;
        -};
        -
        -/**
        - * Returns true if the fn and obj match this objects properties.
        - * Used by the unsubscribe method to match the right subscriber.
        - *
        - * @method contains
        - * @param {Function} fn the function to execute
        - * @param {Object} obj an object to be passed along when the event fires
        - * @return {boolean} true if the supplied arguments match this 
        - *                   subscriber's signature.
        - */
        -YAHOO.util.Subscriber.prototype.contains = function(fn, obj) {
        -    if (obj) {
        -        return (this.fn == fn && this.obj == obj);
        -    } else {
        -        return (this.fn == fn);
        -    }
        -};
        -
        -/**
        - * @method toString
        - */
        -YAHOO.util.Subscriber.prototype.toString = function() {
        -    return "Subscriber { obj: " + (this.obj || "")  + 
        -           ", override: " +  (this.override || "no") + " }";
        -};
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/DD.js.html b/www/extras/yui/docs/DD.js.html deleted file mode 100644 index 2a0837887..000000000 --- a/www/extras/yui/docs/DD.js.html +++ /dev/null @@ -1,387 +0,0 @@ - - - - API: dragdrop DD.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Drag and Drop  2.2.2

        -

        - Yahoo! UI Library - > dragdrop - - > DD.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * A DragDrop implementation where the linked element follows the 
        - * mouse cursor during a drag.
        - * @class DD
        - * @extends YAHOO.util.DragDrop
        - * @constructor
        - * @param {String} id the id of the linked element 
        - * @param {String} sGroup the group of related DragDrop items
        - * @param {object} config an object containing configurable attributes
        - *                Valid properties for DD: 
        - *                    scroll
        - */
        -YAHOO.util.DD = function(id, sGroup, config) {
        -    if (id) {
        -        this.init(id, sGroup, config);
        -    }
        -};
        -
        -YAHOO.extend(YAHOO.util.DD, YAHOO.util.DragDrop, {
        -
        -    /**
        -     * When set to true, the utility automatically tries to scroll the browser
        -     * window wehn a drag and drop element is dragged near the viewport boundary.
        -     * Defaults to true.
        -     * @property scroll
        -     * @type boolean
        -     */
        -    scroll: true, 
        -
        -    /**
        -     * Sets the pointer offset to the distance between the linked element's top 
        -     * left corner and the location the element was clicked
        -     * @method autoOffset
        -     * @param {int} iPageX the X coordinate of the click
        -     * @param {int} iPageY the Y coordinate of the click
        -     */
        -    autoOffset: function(iPageX, iPageY) {
        -        var x = iPageX - this.startPageX;
        -        var y = iPageY - this.startPageY;
        -        this.setDelta(x, y);
        -        // this.logger.log("autoOffset el pos: " + aCoord + ", delta: " + x + "," + y);
        -    },
        -
        -    /** 
        -     * Sets the pointer offset.  You can call this directly to force the 
        -     * offset to be in a particular location (e.g., pass in 0,0 to set it 
        -     * to the center of the object, as done in YAHOO.widget.Slider)
        -     * @method setDelta
        -     * @param {int} iDeltaX the distance from the left
        -     * @param {int} iDeltaY the distance from the top
        -     */
        -    setDelta: function(iDeltaX, iDeltaY) {
        -        this.deltaX = iDeltaX;
        -        this.deltaY = iDeltaY;
        -        this.logger.log("deltaX:" + this.deltaX + ", deltaY:" + this.deltaY);
        -    },
        -
        -    /**
        -     * Sets the drag element to the location of the mousedown or click event, 
        -     * maintaining the cursor location relative to the location on the element 
        -     * that was clicked.  Override this if you want to place the element in a 
        -     * location other than where the cursor is.
        -     * @method setDragElPos
        -     * @param {int} iPageX the X coordinate of the mousedown or drag event
        -     * @param {int} iPageY the Y coordinate of the mousedown or drag event
        -     */
        -    setDragElPos: function(iPageX, iPageY) {
        -        // the first time we do this, we are going to check to make sure
        -        // the element has css positioning
        -
        -        var el = this.getDragEl();
        -        this.alignElWithMouse(el, iPageX, iPageY);
        -    },
        -
        -    /**
        -     * Sets the element to the location of the mousedown or click event, 
        -     * maintaining the cursor location relative to the location on the element 
        -     * that was clicked.  Override this if you want to place the element in a 
        -     * location other than where the cursor is.
        -     * @method alignElWithMouse
        -     * @param {HTMLElement} el the element to move
        -     * @param {int} iPageX the X coordinate of the mousedown or drag event
        -     * @param {int} iPageY the Y coordinate of the mousedown or drag event
        -     */
        -    alignElWithMouse: function(el, iPageX, iPageY) {
        -        var oCoord = this.getTargetCoord(iPageX, iPageY);
        -        // this.logger.log("****alignElWithMouse : " + el.id + ", " + aCoord + ", " + el.style.display);
        -
        -        if (!this.deltaSetXY) {
        -            var aCoord = [oCoord.x, oCoord.y];
        -            YAHOO.util.Dom.setXY(el, aCoord);
        -            var newLeft = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 );
        -            var newTop  = parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 );
        -
        -            this.deltaSetXY = [ newLeft - oCoord.x, newTop - oCoord.y ];
        -        } else {
        -            YAHOO.util.Dom.setStyle(el, "left", (oCoord.x + this.deltaSetXY[0]) + "px");
        -            YAHOO.util.Dom.setStyle(el, "top",  (oCoord.y + this.deltaSetXY[1]) + "px");
        -        }
        -        
        -        this.cachePosition(oCoord.x, oCoord.y);
        -        this.autoScroll(oCoord.x, oCoord.y, el.offsetHeight, el.offsetWidth);
        -    },
        -
        -    /**
        -     * Saves the most recent position so that we can reset the constraints and
        -     * tick marks on-demand.  We need to know this so that we can calculate the
        -     * number of pixels the element is offset from its original position.
        -     * @method cachePosition
        -     * @param iPageX the current x position (optional, this just makes it so we
        -     * don't have to look it up again)
        -     * @param iPageY the current y position (optional, this just makes it so we
        -     * don't have to look it up again)
        -     */
        -    cachePosition: function(iPageX, iPageY) {
        -        if (iPageX) {
        -            this.lastPageX = iPageX;
        -            this.lastPageY = iPageY;
        -        } else {
        -            var aCoord = YAHOO.util.Dom.getXY(this.getEl());
        -            this.lastPageX = aCoord[0];
        -            this.lastPageY = aCoord[1];
        -        }
        -    },
        -
        -    /**
        -     * Auto-scroll the window if the dragged object has been moved beyond the 
        -     * visible window boundary.
        -     * @method autoScroll
        -     * @param {int} x the drag element's x position
        -     * @param {int} y the drag element's y position
        -     * @param {int} h the height of the drag element
        -     * @param {int} w the width of the drag element
        -     * @private
        -     */
        -    autoScroll: function(x, y, h, w) {
        -
        -        if (this.scroll) {
        -            // The client height
        -            var clientH = this.DDM.getClientHeight();
        -
        -            // The client width
        -            var clientW = this.DDM.getClientWidth();
        -
        -            // The amt scrolled down
        -            var st = this.DDM.getScrollTop();
        -
        -            // The amt scrolled right
        -            var sl = this.DDM.getScrollLeft();
        -
        -            // Location of the bottom of the element
        -            var bot = h + y;
        -
        -            // Location of the right of the element
        -            var right = w + x;
        -
        -            // The distance from the cursor to the bottom of the visible area, 
        -            // adjusted so that we don't scroll if the cursor is beyond the
        -            // element drag constraints
        -            var toBot = (clientH + st - y - this.deltaY);
        -
        -            // The distance from the cursor to the right of the visible area
        -            var toRight = (clientW + sl - x - this.deltaX);
        -
        -            // this.logger.log( " x: " + x + " y: " + y + " h: " + h + 
        -            // " clientH: " + clientH + " clientW: " + clientW + 
        -            // " st: " + st + " sl: " + sl + " bot: " + bot + 
        -            // " right: " + right + " toBot: " + toBot + " toRight: " + toRight);
        -
        -            // How close to the edge the cursor must be before we scroll
        -            // var thresh = (document.all) ? 100 : 40;
        -            var thresh = 40;
        -
        -            // How many pixels to scroll per autoscroll op.  This helps to reduce 
        -            // clunky scrolling. IE is more sensitive about this ... it needs this 
        -            // value to be higher.
        -            var scrAmt = (document.all) ? 80 : 30;
        -
        -            // Scroll down if we are near the bottom of the visible page and the 
        -            // obj extends below the crease
        -            if ( bot > clientH && toBot < thresh ) { 
        -                window.scrollTo(sl, st + scrAmt); 
        -            }
        -
        -            // Scroll up if the window is scrolled down and the top of the object
        -            // goes above the top border
        -            if ( y < st && st > 0 && y - st < thresh ) { 
        -                window.scrollTo(sl, st - scrAmt); 
        -            }
        -
        -            // Scroll right if the obj is beyond the right border and the cursor is
        -            // near the border.
        -            if ( right > clientW && toRight < thresh ) { 
        -                window.scrollTo(sl + scrAmt, st); 
        -            }
        -
        -            // Scroll left if the window has been scrolled to the right and the obj
        -            // extends past the left border
        -            if ( x < sl && sl > 0 && x - sl < thresh ) { 
        -                window.scrollTo(sl - scrAmt, st);
        -            }
        -        }
        -    },
        -
        -    /*
        -     * Sets up config options specific to this class. Overrides
        -     * YAHOO.util.DragDrop, but all versions of this method through the 
        -     * inheritance chain are called
        -     */
        -    applyConfig: function() {
        -        YAHOO.util.DD.superclass.applyConfig.call(this);
        -        this.scroll = (this.config.scroll !== false);
        -    },
        -
        -    /*
        -     * Event that fires prior to the onMouseDown event.  Overrides 
        -     * YAHOO.util.DragDrop.
        -     */
        -    b4MouseDown: function(e) {
        -        this.setStartPosition();
        -        // this.resetConstraints();
        -        this.autoOffset(YAHOO.util.Event.getPageX(e), 
        -                            YAHOO.util.Event.getPageY(e));
        -    },
        -
        -    /*
        -     * Event that fires prior to the onDrag event.  Overrides 
        -     * YAHOO.util.DragDrop.
        -     */
        -    b4Drag: function(e) {
        -        this.setDragElPos(YAHOO.util.Event.getPageX(e), 
        -                            YAHOO.util.Event.getPageY(e));
        -    },
        -
        -    toString: function() {
        -        return ("DD " + this.id);
        -    }
        -
        -    //////////////////////////////////////////////////////////////////////////
        -    // Debugging ygDragDrop events that can be overridden
        -    //////////////////////////////////////////////////////////////////////////
        -    /*
        -    startDrag: function(x, y) {
        -        this.logger.log(this.id.toString()  + " startDrag");
        -    },
        -
        -    onDrag: function(e) {
        -        this.logger.log(this.id.toString() + " onDrag");
        -    },
        -
        -    onDragEnter: function(e, id) {
        -        this.logger.log(this.id.toString() + " onDragEnter: " + id);
        -    },
        -
        -    onDragOver: function(e, id) {
        -        this.logger.log(this.id.toString() + " onDragOver: " + id);
        -    },
        -
        -    onDragOut: function(e, id) {
        -        this.logger.log(this.id.toString() + " onDragOut: " + id);
        -    },
        -
        -    onDragDrop: function(e, id) {
        -        this.logger.log(this.id.toString() + " onDragDrop: " + id);
        -    },
        -
        -    endDrag: function(e) {
        -        this.logger.log(this.id.toString() + " endDrag");
        -    }
        -
        -    */
        -
        -});
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/DDProxy.js.html b/www/extras/yui/docs/DDProxy.js.html deleted file mode 100644 index cd99b5296..000000000 --- a/www/extras/yui/docs/DDProxy.js.html +++ /dev/null @@ -1,330 +0,0 @@ - - - - API: dragdrop DDProxy.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Drag and Drop  2.2.2

        -

        - Yahoo! UI Library - > dragdrop - - > DDProxy.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * A DragDrop implementation that inserts an empty, bordered div into
        - * the document that follows the cursor during drag operations.  At the time of
        - * the click, the frame div is resized to the dimensions of the linked html
        - * element, and moved to the exact location of the linked element.
        - *
        - * References to the "frame" element refer to the single proxy element that
        - * was created to be dragged in place of all DDProxy elements on the
        - * page.
        - *
        - * @class DDProxy
        - * @extends YAHOO.util.DD
        - * @constructor
        - * @param {String} id the id of the linked html element
        - * @param {String} sGroup the group of related DragDrop objects
        - * @param {object} config an object containing configurable attributes
        - *                Valid properties for DDProxy in addition to those in DragDrop: 
        - *                   resizeFrame, centerFrame, dragElId
        - */
        -YAHOO.util.DDProxy = function(id, sGroup, config) {
        -    if (id) {
        -        this.init(id, sGroup, config);
        -        this.initFrame(); 
        -    }
        -};
        -
        -/**
        - * The default drag frame div id
        - * @property YAHOO.util.DDProxy.dragElId
        - * @type String
        - * @static
        - */
        -YAHOO.util.DDProxy.dragElId = "ygddfdiv";
        -
        -YAHOO.extend(YAHOO.util.DDProxy, YAHOO.util.DD, {
        -
        -    /**
        -     * By default we resize the drag frame to be the same size as the element
        -     * we want to drag (this is to get the frame effect).  We can turn it off
        -     * if we want a different behavior.
        -     * @property resizeFrame
        -     * @type boolean
        -     */
        -    resizeFrame: true,
        -
        -    /**
        -     * By default the frame is positioned exactly where the drag element is, so
        -     * we use the cursor offset provided by YAHOO.util.DD.  Another option that works only if
        -     * you do not have constraints on the obj is to have the drag frame centered
        -     * around the cursor.  Set centerFrame to true for this effect.
        -     * @property centerFrame
        -     * @type boolean
        -     */
        -    centerFrame: false,
        -
        -    /**
        -     * Creates the proxy element if it does not yet exist
        -     * @method createFrame
        -     */
        -    createFrame: function() {
        -        var self = this;
        -        var body = document.body;
        -
        -        if (!body || !body.firstChild) {
        -            setTimeout( function() { self.createFrame(); }, 50 );
        -            return;
        -        }
        -
        -        var div = this.getDragEl();
        -
        -        if (!div) {
        -            div    = document.createElement("div");
        -            div.id = this.dragElId;
        -            var s  = div.style;
        -
        -            s.position   = "absolute";
        -            s.visibility = "hidden";
        -            s.cursor     = "move";
        -            s.border     = "2px solid #aaa";
        -            s.zIndex     = 999;
        -
        -            // appendChild can blow up IE if invoked prior to the window load event
        -            // while rendering a table.  It is possible there are other scenarios 
        -            // that would cause this to happen as well.
        -            body.insertBefore(div, body.firstChild);
        -        }
        -    },
        -
        -    /**
        -     * Initialization for the drag frame element.  Must be called in the
        -     * constructor of all subclasses
        -     * @method initFrame
        -     */
        -    initFrame: function() {
        -        this.createFrame();
        -    },
        -
        -    applyConfig: function() {
        -        this.logger.log("DDProxy applyConfig");
        -        YAHOO.util.DDProxy.superclass.applyConfig.call(this);
        -
        -        this.resizeFrame = (this.config.resizeFrame !== false);
        -        this.centerFrame = (this.config.centerFrame);
        -        this.setDragElId(this.config.dragElId || YAHOO.util.DDProxy.dragElId);
        -    },
        -
        -    /**
        -     * Resizes the drag frame to the dimensions of the clicked object, positions 
        -     * it over the object, and finally displays it
        -     * @method showFrame
        -     * @param {int} iPageX X click position
        -     * @param {int} iPageY Y click position
        -     * @private
        -     */
        -    showFrame: function(iPageX, iPageY) {
        -        var el = this.getEl();
        -        var dragEl = this.getDragEl();
        -        var s = dragEl.style;
        -
        -        this._resizeProxy();
        -
        -        if (this.centerFrame) {
        -            this.setDelta( Math.round(parseInt(s.width,  10)/2), 
        -                           Math.round(parseInt(s.height, 10)/2) );
        -        }
        -
        -        this.setDragElPos(iPageX, iPageY);
        -
        -        YAHOO.util.Dom.setStyle(dragEl, "visibility", "visible"); 
        -    },
        -
        -    /**
        -     * The proxy is automatically resized to the dimensions of the linked
        -     * element when a drag is initiated, unless resizeFrame is set to false
        -     * @method _resizeProxy
        -     * @private
        -     */
        -    _resizeProxy: function() {
        -        if (this.resizeFrame) {
        -            var DOM    = YAHOO.util.Dom;
        -            var el     = this.getEl();
        -            var dragEl = this.getDragEl();
        -
        -            var bt = parseInt( DOM.getStyle(dragEl, "borderTopWidth"    ), 10);
        -            var br = parseInt( DOM.getStyle(dragEl, "borderRightWidth"  ), 10);
        -            var bb = parseInt( DOM.getStyle(dragEl, "borderBottomWidth" ), 10);
        -            var bl = parseInt( DOM.getStyle(dragEl, "borderLeftWidth"   ), 10);
        -
        -            if (isNaN(bt)) { bt = 0; }
        -            if (isNaN(br)) { br = 0; }
        -            if (isNaN(bb)) { bb = 0; }
        -            if (isNaN(bl)) { bl = 0; }
        -
        -            this.logger.log("proxy size: " + bt + "  " + br + " " + bb + " " + bl);
        -
        -            var newWidth  = Math.max(0, el.offsetWidth  - br - bl);                                                                                           
        -            var newHeight = Math.max(0, el.offsetHeight - bt - bb);
        -
        -            this.logger.log("Resizing proxy element");
        -
        -            DOM.setStyle( dragEl, "width",  newWidth  + "px" );
        -            DOM.setStyle( dragEl, "height", newHeight + "px" );
        -        }
        -    },
        -
        -    // overrides YAHOO.util.DragDrop
        -    b4MouseDown: function(e) {
        -        this.setStartPosition();
        -        var x = YAHOO.util.Event.getPageX(e);
        -        var y = YAHOO.util.Event.getPageY(e);
        -        this.autoOffset(x, y);
        -        this.setDragElPos(x, y);
        -    },
        -
        -    // overrides YAHOO.util.DragDrop
        -    b4StartDrag: function(x, y) {
        -        // show the drag frame
        -        this.logger.log("start drag show frame, x: " + x + ", y: " + y);
        -        this.showFrame(x, y);
        -    },
        -
        -    // overrides YAHOO.util.DragDrop
        -    b4EndDrag: function(e) {
        -        this.logger.log(this.id + " b4EndDrag");
        -        YAHOO.util.Dom.setStyle(this.getDragEl(), "visibility", "hidden"); 
        -    },
        -
        -    // overrides YAHOO.util.DragDrop
        -    // By default we try to move the element to the last location of the frame.  
        -    // This is so that the default behavior mirrors that of YAHOO.util.DD.  
        -    endDrag: function(e) {
        -        var DOM = YAHOO.util.Dom;
        -        this.logger.log(this.id + " endDrag");
        -        var lel = this.getEl();
        -        var del = this.getDragEl();
        -
        -        // Show the drag frame briefly so we can get its position
        -        // del.style.visibility = "";
        -        DOM.setStyle(del, "visibility", ""); 
        -
        -        // Hide the linked element before the move to get around a Safari 
        -        // rendering bug.
        -        //lel.style.visibility = "hidden";
        -        DOM.setStyle(lel, "visibility", "hidden"); 
        -        YAHOO.util.DDM.moveToEl(lel, del);
        -        //del.style.visibility = "hidden";
        -        DOM.setStyle(del, "visibility", "hidden"); 
        -        //lel.style.visibility = "";
        -        DOM.setStyle(lel, "visibility", ""); 
        -    },
        -
        -    toString: function() {
        -        return ("DDProxy " + this.id);
        -    }
        -
        -});
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/DDTarget.js.html b/www/extras/yui/docs/DDTarget.js.html deleted file mode 100644 index 300512692..000000000 --- a/www/extras/yui/docs/DDTarget.js.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - API: dragdrop DDTarget.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Drag and Drop  2.2.2

        -

        - Yahoo! UI Library - > dragdrop - - > DDTarget.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * A DragDrop implementation that does not move, but can be a drop 
        - * target.  You would get the same result by simply omitting implementation 
        - * for the event callbacks, but this way we reduce the processing cost of the 
        - * event listener and the callbacks.
        - * @class DDTarget
        - * @extends YAHOO.util.DragDrop 
        - * @constructor
        - * @param {String} id the id of the element that is a drop target
        - * @param {String} sGroup the group of related DragDrop objects
        - * @param {object} config an object containing configurable attributes
        - *                 Valid properties for DDTarget in addition to those in 
        - *                 DragDrop: 
        - *                    none
        - */
        -YAHOO.util.DDTarget = function(id, sGroup, config) {
        -    if (id) {
        -        this.initTarget(id, sGroup, config);
        -    }
        -};
        -
        -// YAHOO.util.DDTarget.prototype = new YAHOO.util.DragDrop();
        -YAHOO.extend(YAHOO.util.DDTarget, YAHOO.util.DragDrop, {
        -    toString: function() {
        -        return ("DDTarget " + this.id);
        -    }
        -});
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/DataSource.html b/www/extras/yui/docs/DataSource.html deleted file mode 100644 index d0597ce1d..000000000 --- a/www/extras/yui/docs/DataSource.html +++ /dev/null @@ -1,1990 +0,0 @@ - - - - API: datasource DataSource (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        DataSource Utility  2.2.2

        -

        - Yahoo! UI Library - > datasource - > DataSource - -

        -
        - -
        -
        -
        - - -

        - - - - - Class DataSource - - - - - - uses - - YAHOO.util.EventProvider - - - - -

        - - - - - -
        - The DataSource class defines and manages a live set of data for widgets to -interact with. Examples of live databases include in-memory -local data such as a JavaScript array, a JavaScript function, or JSON, or -remote data such as data retrieved through an XHR connection. -
        - -
        -

        Constructor

        -
        -
        - DataSource - - ( - - - - oLiveData - - , - oConfigs - ) - -
        -
        -
        Parameters:
        -
        - oLiveData - <Object> - - Pointer to live database -
        -
        - oConfigs - <Object> - - (optional) Object literal of configuration values -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _aCache - - private Object[] -

        -
        -
        - Local cache of data result objects indexed chronologically. -
        -
        - - - - -
        -

        _nIndex - - private Number -

        -
        -
        - Internal class variable to index multiple DataSource instances. -
        -
        - - - - -
        -

        _sName - - private String -

        -
        -
        - Name of DataSource instance. -
        -
        - - - - -
        -

        _xhrCallback - - private object -

        -
        -
        - Connection Manager callback object -
        -
        - - - - -
        -

        connMgr - - Object -

        -
        -
        - Alias to YUI Connection Manager. Allows implementers to specify their own -subclasses of the YUI Connection Manager utility. -
        -
        - - -
        - Default Value: YAHOO.util.Connect -
        - - -
        -

        connTimeout - - Number -

        -
        -
        - If data is accessed over XHR via Connection Manager, the connection timeout is -configurable in milliseconds the XHR connection will wait for a server -response. A a value of zero indicates the XHR connection will wait forever. -Any value greater than zero will use the Connection utility's Auto-Abort -feature. -
        -
        - - -
        - Default Value: 0 -
        - - -
        -

        dataType - - Number -

        -
        -
        - Where the live data is held. -
        -
        - - -
        - Default Value: YAHOO.util.DataSource.TYPE_UNKNOWN -
        - - -
        -

        ERROR_DATAINVALID - - final String -

        -
        -
        - Error message for invalid data responses. -
        -
        - - -
        - Default Value: "Invalid data" -
        - - -
        -

        ERROR_DATANULL - - final String -

        -
        -
        - Error message for null data responses. -
        -
        - - -
        - Default Value: "Null data" -
        - - -
        -

        liveData - - Object -

        -
        -
        - Pointer to live database. -
        -
        - - - - -
        -

        maxCacheEntries - - Number -

        -
        -
        - Max size of the local cache. Set to 0 to turn off caching. Caching is -useful to reduce the number of server connections. Recommended only for data -sources that return comprehensive results for queries or when stale data is -not an issue. -
        -
        - - -
        - Default Value: 0 -
        - - -
        -

        responseSchema - - Object -

        -
        -
        - Response schema object literal takes a combination of the following properties: -
        -
        resultsList
        Pointer to array of tabular data
        -
        resultNode
        Pointer to node name of row data (XML data only)
        -
        recordDelim
        Record delimiter (text data only)
        -
        fieldDelim
        Field delimiter (text data only)
        -
        fields
        Array of field names (aka keys), or array of object literals -such as: {key:"fieldname",converter:YAHOO.util.DataSource.convertDate}
        -
        -
        -
        - - - - -
        -

        responseType - - Number -

        -
        -
        - Format of response. -
        -
        - - -
        - Default Value: YAHOO.util.DataSource.TYPE_UNKNOWN -
        - - -
        -

        TYPE_JSARRAY - - final Number -

        -
        -
        - Type is a JavaScript Array. -
        -
        - - -
        - Default Value: 0 -
        - - -
        -

        TYPE_JSFUNCTION - - final Number -

        -
        -
        - Type is a JavaScript Function. -
        -
        - - -
        - Default Value: 1 -
        - - -
        -

        TYPE_JSON - - final Number -

        -
        -
        - Type is JSON. -
        -
        - - -
        - Default Value: 3 -
        - - -
        -

        TYPE_TEXT - - final Number -

        -
        -
        - Type is plain text. -
        -
        - - -
        - Default Value: 5 -
        - - -
        -

        TYPE_UNKNOWN - - final Number -

        -
        -
        - Type is unknown. -
        -
        - - -
        - Default Value: -1 -
        - - -
        -

        TYPE_XHR - - final Number -

        -
        -
        - Type is hosted on a server via an XHR connection. -
        -
        - - -
        - Default Value: 2 -
        - - -
        -

        TYPE_XML - - final Number -

        -
        -
        - Type is XML. -
        -
        - - -
        - Default Value: 4 -
        - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Methods

        -
        -

        - _xhrFailure

        -
        - - private - - - void - _xhrFailure - ( - - - oResponse - - - ) - - -
        - Connection Manager failure handler -
        - -
        - -
        -
        Parameters:
        -
        - oResponse <Object> - HTTPXMLRequest object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _xhrSuccess

        -
        - - private - - - void - _xhrSuccess - ( - - - oResponse - - - ) - - -
        - Connection Manager success handler -
        - -
        - -
        -
        Parameters:
        -
        - oResponse <Object> - HTTPXMLRequest object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addToCache

        -
        - - - - - void - addToCache - ( - - - oRequest - - - , - oResponse - - - ) - - -
        - Adds a new item to the cache. If cache is full, evicts the stalest item -before adding the new item. -
        - -
        - -
        -
        Parameters:
        -
        - oRequest <Object> - Request object. -
        -
        - oResponse <Object> - Response object to cache. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - convertDate

        -
        - - - static - - Date - convertDate - ( - ) - - -
        - Converts data from String to Date objects. -
        - -
        - - -
        -
        Returns: - - Date -
        -
        Date object.
        -
        - -
        - -
        -
        -

        - convertNumber

        -
        - - - static - - Number - convertNumber - ( - ) - - -
        - Converts data from String to Number objects. -
        - -
        - - -
        -
        Returns: - - Number -
        -
        Number object.
        -
        - -
        - -
        -
        -

        - doBeforeCallback

        -
        - - - - - Object - doBeforeCallback - ( - - - oRequest - - - , - oRawResponse - - - , - oParsedResponse - - - ) - - -
        - Overridable method gives implementers access to the original raw response and -the parsed response (parsed against the given schema) before the data -is added to the cache (if applicable) and then sent back to callback function. -This is your chance to access the raw response and/or populate the parsed -response with any custom data. -
        - -
        - -
        -
        Parameters:
        -
        - oRequest <Object> - Request object. -
        -
        - oRawResponse <Object> - The raw response from the live database. -
        -
        - oParsedResponse <Object> - The parsed response to return to calling object. -
        -
        - -
        -
        Returns: - - Object -
        -
        Parsed response object
        -
        - -
        - -
        -
        -

        - flushCache

        -
        - - - - - void - flushCache - ( - ) - - -
        - Flushes cache. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getCachedResponse

        -
        - - - - - Object - getCachedResponse - ( - - - oRequest - - - , - oCallback - - - , - oCaller - - - ) - - -
        - Overridable method passes request to cache and returns cached response if any, -refreshing the hit in the cache as the newest item. Returns null if there is -no cache hit. -
        - -
        - -
        -
        Parameters:
        -
        - oRequest <Object> - Request object. -
        -
        - oCallback <Function> - Handler function to receive the response -
        -
        - oCaller <Object> - The Calling object that is making the request -
        -
        - -
        -
        Returns: - - Object -
        -
        Cached response object or null.
        -
        - -
        - -
        -
        -

        - handleResponse

        -
        - - - - - void - handleResponse - ( - - - oRequest - - - , - oRawResponse - - - , - oCallback - - - , - oCaller - - - ) - - -
        - Handles raw data response from live data source. -
        - -
        - -
        -
        Parameters:
        -
        - oRequest <Object> - Request object -
        -
        - oRawResponse <Object> - The raw response from the live database -
        -
        - oCallback <Function> - Handler function to receive the response -
        -
        - oCaller <Object> - The calling object that is making the request -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - isCacheHit

        -
        - - - - - Boolean - isCacheHit - ( - - - oRequest - - - , - oCachedRequest - - - ) - - -
        - Default overridable method matches given request to given cached request. -Returns true if is a hit, returns false otherwise. Implementers should -override this method to customize the cache-matching algorithm. -
        - -
        - -
        -
        Parameters:
        -
        - oRequest <Object> - Request object. -
        -
        - oCachedRequest <Object> - Cached request object. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        True if given request matches cached request, false otherwise.
        -
        - -
        - -
        -
        -

        - makeConnection

        -
        - - - - - void - makeConnection - ( - - - oRequest - - - , - oCallback - - - , - oCaller - - - ) - - -
        - Overridable method provides default functionality to make a connection to -live data in order to send request. The response coming back is then -forwarded to the handleResponse function. This method should be customized -for more complex implementations. -
        - -
        - -
        -
        Parameters:
        -
        - oRequest <Object> - Request object. -
        -
        - oCallback <Function> - Handler function to receive the response -
        -
        - oCaller <Object> - The Calling object that is making the request -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - parseArrayData

        -
        - - - - - Object - parseArrayData - ( - - - oRequest - - - , - oRawResponse - - - ) - - -
        - Overridable method parses raw array data into a response object. -
        - -
        - -
        -
        Parameters:
        -
        - oRequest <Object> - Request object. -
        -
        - oRawResponse <Object> - The raw response from the live database. -
        -
        - -
        -
        Returns: - - Object -
        -
        Parsed response object.
        -
        - -
        - -
        -
        -

        - parseJSONData

        -
        - - - - - Object - parseJSONData - ( - - - oRequest - - - , - oRawResponse - - - ) - - -
        - Overridable method parses raw JSON data into a response object. -
        - -
        - -
        -
        Parameters:
        -
        - oRequest <Object> - Request object -
        -
        - oRawResponse <Object> - The raw response from the live database -
        -
        - -
        -
        Returns: - - Object -
        -
        Parsed response object
        -
        - -
        - -
        -
        -

        - parseTextData

        -
        - - - - - Object - parseTextData - ( - - - oRequest - - - , - oRawResponse - - - ) - - -
        - Overridable method parses raw plain text data into a response object. -
        - -
        - -
        -
        Parameters:
        -
        - oRequest <Object> - Request object -
        -
        - oRawResponse <Object> - The raw response from the live database -
        -
        - -
        -
        Returns: - - Object -
        -
        Parsed response object
        -
        - -
        - -
        -
        -

        - parseXMLData

        -
        - - - - - Object - parseXMLData - ( - - - oRequest - - - , - oRawResponse - - - ) - - -
        - Overridable method parses raw XML data into a response object. -
        - -
        - -
        -
        Parameters:
        -
        - oRequest <Object> - Request object -
        -
        - oRawResponse <Object> - The raw response from the live database -
        -
        - -
        -
        Returns: - - Object -
        -
        Parsed response object
        -
        - -
        - -
        -
        -

        - sendRequest

        -
        - - - - - void - sendRequest - ( - - - oRequest - - - , - oCallback - - - , - oCaller - - - ) - - -
        - First looks for cached response, then sends request to live data. -
        - -
        - -
        -
        Parameters:
        -
        - oRequest <Object> - Request object -
        -
        - oCallback <Function> - Handler function to receive the response -
        -
        - oCaller <Object> - The Calling object that is making the request -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Public accessor to the unique name of the DataSource instance. -
        - -
        - - -
        -
        Returns: - - String -
        -
        Unique name of the DataSource instance.
        -
        - -
        - -
        -
        -
        -
        - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Events

        -
        -

        - cacheFlushEvent

        -
        - - - - - cacheFlushEvent - - ( - ) - - - -
        - Fired when the local cache is flushed. -
        - -
        - - - - -
        - -
        -
        -

        - cacheRequestEvent

        -
        - - - - - cacheRequestEvent - - ( - - - oArgs.request - - - , - oArgs.callback - - - , - oArgs.caller - - - ) - - - -
        - Fired when a request is made to the local cache. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.request <Object> - The request object. -
        -
        - oArgs.callback <Function> - The callback function. -
        -
        - oArgs.caller <Object> - The parent object of the callback function. -
        -
        - - -
        - -
        -
        -

        - dataErrorEvent

        -
        - - - - - dataErrorEvent - - ( - - - oArgs.request - - - , - oArgs.callback - - - , - oArgs.caller - - - , - oArgs.message - - - ) - - - -
        - Fired when an error is encountered with the live data source. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.request <Object> - The request object. -
        -
        - oArgs.callback <Function> - The callback function. -
        -
        - oArgs.caller <Object> - The parent object of the callback function. -
        -
        - oArgs.message <String> - The error message. -
        -
        - - -
        - -
        -
        -

        - getCachedResponseEvent

        -
        - - - - - getCachedResponseEvent - - ( - - - oArgs.request - - - , - oArgs.response - - - , - oArgs.callback - - - , - oArgs.caller - - - ) - - - -
        - Fired when data is retrieved from the local cache. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.request <Object> - The request object. -
        -
        - oArgs.response <Object> - The response object. -
        -
        - oArgs.callback <Function> - The callback function. -
        -
        - oArgs.caller <Object> - The parent object of the callback function. -
        -
        - - -
        - -
        -
        -

        - requestEvent

        -
        - - - - - requestEvent - - ( - - - oArgs.request - - - , - oArgs.callback - - - , - oArgs.caller - - - ) - - - -
        - Fired when a request is sent to the live data source. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.request <Object> - The request object. -
        -
        - oArgs.callback <Function> - The callback function. -
        -
        - oArgs.caller <Object> - The parent object of the callback function. -
        -
        - - -
        - -
        -
        -

        - responseCacheEvent

        -
        - - - - - responseCacheEvent - - ( - - - oArgs.request - - - , - oArgs.response - - - , - oArgs.callback - - - , - oArgs.caller - - - ) - - - -
        - Fired when response is cached. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.request <Object> - The request object. -
        -
        - oArgs.response <Object> - The parsed response object. -
        -
        - oArgs.callback <Function> - The callback function. -
        -
        - oArgs.caller <Object> - The parent object of the callback function. -
        -
        - - -
        - -
        -
        -

        - responseEvent

        -
        - - - - - responseEvent - - ( - - - oArgs.request - - - , - oArgs.response - - - , - oArgs.callback - - - , - oArgs.caller - - - ) - - - -
        - Fired when live data source sends response. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.request <Object> - The request object. -
        -
        - oArgs.response <Object> - The raw response object. -
        -
        - oArgs.callback <Function> - The callback function. -
        -
        - oArgs.caller <Object> - The parent object of the callback function. -
        -
        - - -
        - -
        -
        -

        - responseParseEvent

        -
        - - - - - responseParseEvent - - ( - - - oArgs.request - - - , - oArgs.response - - - , - oArgs.callback - - - , - oArgs.caller - - - ) - - - -
        - Fired when response is parsed. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.request <Object> - The request object. -
        -
        - oArgs.response <Object> - The parsed response object. -
        -
        - oArgs.callback <Function> - The callback function. -
        -
        - oArgs.caller <Object> - The parent object of the callback function. -
        -
        - - -
        - -
        -
        -
        -
        - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/DataSource.js.html b/www/extras/yui/docs/DataSource.js.html deleted file mode 100644 index 208e393cd..000000000 --- a/www/extras/yui/docs/DataSource.js.html +++ /dev/null @@ -1,1153 +0,0 @@ - - - - API: datasource DataSource.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        DataSource Utility  2.2.2

        -

        - Yahoo! UI Library - > datasource - - > DataSource.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * The DataSource utility provides a common configurable interface for widgets
        - * to access a variety of data, from JavaScript arrays to online servers over
        - * XHR.
        - *
        - * @module datasource
        - * @requires yahoo, event
        - * @optional xhr
        - * @title DataSource Utility
        - * @beta
        - */
        -
        -/****************************************************************************/
        -/****************************************************************************/
        -/****************************************************************************/
        -
        -/**
        - * The DataSource class defines and manages a live set of data for widgets to
        - * interact with. Examples of live databases include in-memory
        - * local data such as a JavaScript array, a JavaScript function, or JSON, or
        - * remote data such as data retrieved through an XHR connection.
        - *
        - * @class DataSource
        - * @uses YAHOO.util.EventProvider
        - * @constructor
        - * @param oLiveData {Object} Pointer to live database
        - * @param oConfigs {Object} (optional) Object literal of configuration values
        - */
        -YAHOO.util.DataSource = function(oLiveData, oConfigs) {
        -    // Set any config params passed in to override defaults
        -    if(oConfigs && (oConfigs.constructor == Object)) {
        -        for(var sConfig in oConfigs) {
        -            if(sConfig) {
        -                this[sConfig] = oConfigs[sConfig];
        -            }
        -        }
        -    }
        -
        -    if(!oLiveData) {
        -        YAHOO.log("Could not instantiate DataSource due to invalid live database.","error",this.toString());
        -        return;
        -    }
        -    
        -    if(YAHOO.lang.isArray(oLiveData)) {
        -        this.dataType = YAHOO.util.DataSource.TYPE_JSARRAY;
        -    }
        -    else if(YAHOO.lang.isString(oLiveData)) {
        -        this.dataType = YAHOO.util.DataSource.TYPE_XHR;
        -    }
        -    else if(YAHOO.lang.isFunction(oLiveData)) {
        -        this.dataType = YAHOO.util.DataSource.TYPE_JSFUNCTION;
        -    }
        -    else if(YAHOO.lang.isObject(oLiveData)) {
        -        this.dataType = YAHOO.util.DataSource.TYPE_JSON;
        -    }
        -    else {
        -        this.dataType = YAHOO.util.DataSource.TYPE_UNKNOWN;
        -    }
        -
        -    this.liveData = oLiveData;
        -
        -    // Validate and initialize public configs
        -    var maxCacheEntries = this.maxCacheEntries;
        -    if(!YAHOO.lang.isNumber(maxCacheEntries) || (maxCacheEntries < 0)) {
        -        maxCacheEntries = 0;
        -    }
        -
        -    // Initialize local cache
        -    if(maxCacheEntries > 0 && !this._aCache) {
        -        this._aCache = [];
        -        YAHOO.log("Cache initialized","info",this.toString());
        -    }
        -
        -    this._sName = "instance" + YAHOO.util.DataSource._nIndex;
        -    YAHOO.util.DataSource._nIndex++;
        -    YAHOO.log("DataSource initialized", "info", this.toString());
        -
        -
        -    /////////////////////////////////////////////////////////////////////////////
        -    //
        -    // Custom Events
        -    //
        -    /////////////////////////////////////////////////////////////////////////////
        -
        -    /**
        -     * Fired when a request is made to the local cache.
        -     *
        -     * @event cacheRequestEvent
        -     * @param oArgs.request {Object} The request object.
        -     * @param oArgs.callback {Function} The callback function.
        -     * @param oArgs.caller {Object} The parent object of the callback function.
        -     */
        -    this.createEvent("cacheRequestEvent");
        -
        -    /**
        -     * Fired when data is retrieved from the local cache.
        -     *
        -     * @event getCachedResponseEvent
        -     * @param oArgs.request {Object} The request object.
        -     * @param oArgs.response {Object} The response object.
        -     * @param oArgs.callback {Function} The callback function.
        -     * @param oArgs.caller {Object} The parent object of the callback function.
        -     */
        -    this.createEvent("cacheResponseEvent");
        -
        -    /**
        -     * Fired when a request is sent to the live data source.
        -     *
        -     * @event requestEvent
        -     * @param oArgs.request {Object} The request object.
        -     * @param oArgs.callback {Function} The callback function.
        -     * @param oArgs.caller {Object} The parent object of the callback function.
        -     */
        -    this.createEvent("requestEvent");
        -
        -    /**
        -     * Fired when live data source sends response.
        -     *
        -     * @event responseEvent
        -     * @param oArgs.request {Object} The request object.
        -     * @param oArgs.response {Object} The raw response object.
        -     * @param oArgs.callback {Function} The callback function.
        -     * @param oArgs.caller {Object} The parent object of the callback function.
        -     */
        -    this.createEvent("responseEvent");
        -
        -    /**
        -     * Fired when response is parsed.
        -     *
        -     * @event responseParseEvent
        -     * @param oArgs.request {Object} The request object.
        -     * @param oArgs.response {Object} The parsed response object.
        -     * @param oArgs.callback {Function} The callback function.
        -     * @param oArgs.caller {Object} The parent object of the callback function.
        -     */
        -    this.createEvent("responseParseEvent");
        -
        -    /**
        -     * Fired when response is cached.
        -     *
        -     * @event responseCacheEvent
        -     * @param oArgs.request {Object} The request object.
        -     * @param oArgs.response {Object} The parsed response object.
        -     * @param oArgs.callback {Function} The callback function.
        -     * @param oArgs.caller {Object} The parent object of the callback function.
        -     */
        -    this.createEvent("responseCacheEvent");
        -    /**
        -     * Fired when an error is encountered with the live data source.
        -     *
        -     * @event dataErrorEvent
        -     * @param oArgs.request {Object} The request object.
        -     * @param oArgs.callback {Function} The callback function.
        -     * @param oArgs.caller {Object} The parent object of the callback function.
        -     * @param oArgs.message {String} The error message.
        -     */
        -    this.createEvent("dataErrorEvent");
        -
        -    /**
        -     * Fired when the local cache is flushed.
        -     *
        -     * @event cacheFlushEvent
        -     */
        -    this.createEvent("cacheFlushEvent");
        -};
        -
        -YAHOO.augment(YAHOO.util.DataSource, YAHOO.util.EventProvider);
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public constants
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Type is unknown.
        - *
        - * @property TYPE_UNKNOWN
        - * @type Number
        - * @final
        - * @default -1
        - */
        -YAHOO.util.DataSource.TYPE_UNKNOWN = -1;
        -
        -/**
        - * Type is a JavaScript Array.
        - *
        - * @property TYPE_JSARRAY
        - * @type Number
        - * @final
        - * @default 0
        - */
        -YAHOO.util.DataSource.TYPE_JSARRAY = 0;
        -
        -/**
        - * Type is a JavaScript Function.
        - *
        - * @property TYPE_JSFUNCTION
        - * @type Number
        - * @final
        - * @default 1
        - */
        -YAHOO.util.DataSource.TYPE_JSFUNCTION = 1;
        -
        -/**
        - * Type is hosted on a server via an XHR connection.
        - *
        - * @property TYPE_XHR
        - * @type Number
        - * @final
        - * @default 2
        - */
        -YAHOO.util.DataSource.TYPE_XHR = 2;
        -
        -/**
        - * Type is JSON.
        - *
        - * @property TYPE_JSON
        - * @type Number
        - * @final
        - * @default 3
        - */
        -YAHOO.util.DataSource.TYPE_JSON = 3;
        -
        -/**
        - * Type is XML.
        - *
        - * @property TYPE_XML
        - * @type Number
        - * @final
        - * @default 4
        - */
        -YAHOO.util.DataSource.TYPE_XML = 4;
        -
        -/**
        - * Type is plain text.
        - *
        - * @property TYPE_TEXT
        - * @type Number
        - * @final
        - * @default 5
        - */
        -YAHOO.util.DataSource.TYPE_TEXT = 5;
        -/**
        - * Error message for invalid data responses.
        - *
        - * @property ERROR_DATAINVALID
        - * @type String
        - * @final
        - * @default "Invalid data"
        - */
        -YAHOO.util.DataSource.ERROR_DATAINVALID = "Invalid data";
        -
        -/**
        - * Error message for null data responses.
        - *
        - * @property ERROR_DATANULL
        - * @type String
        - * @final
        - * @default "Null data"
        - */
        -YAHOO.util.DataSource.ERROR_DATANULL = "Null data";
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Internal class variable to index multiple DataSource instances.
        - *
        - * @property _nIndex
        - * @type Number
        - * @private
        - */
        -YAHOO.util.DataSource._nIndex = 0;
        -
        -/**
        - * Name of DataSource instance.
        - *
        - * @property _sName
        - * @type String
        - * @private
        - */
        -YAHOO.util.DataSource.prototype._sName = null;
        -
        -/**
        - * Local cache of data result objects indexed chronologically.
        - *
        - * @property _aCache
        - * @type Object[]
        - * @private
        - */
        -YAHOO.util.DataSource.prototype._aCache = null;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Max size of the local cache.  Set to 0 to turn off caching.  Caching is
        - * useful to reduce the number of server connections.  Recommended only for data
        - * sources that return comprehensive results for queries or when stale data is
        - * not an issue.
        - *
        - * @property maxCacheEntries
        - * @type Number
        - * @default 0
        - */
        -YAHOO.util.DataSource.prototype.maxCacheEntries = 0;
        -
        - /**
        - * Pointer to live database.
        - *
        - * @property liveData
        - * @type Object
        - */
        -YAHOO.util.DataSource.prototype.liveData = null;
        -
        - /**
        - * If data is accessed over XHR via Connection Manager, the connection timeout is
        - * configurable in milliseconds the XHR connection will wait for a server
        - * response. A a value of zero indicates the XHR connection will wait forever.
        - * Any value greater than zero will use the Connection utility's Auto-Abort
        - * feature.
        - *
        - * @property connTimeout
        - * @type Number
        - * @default 0
        - */
        -YAHOO.util.DataSource.prototype.connTimeout = null;
        -
        - /**
        - * Alias to YUI Connection Manager. Allows implementers to specify their own
        - * subclasses of the YUI Connection Manager utility.
        - *
        - * @property connMgr
        - * @type Object
        - * @default YAHOO.util.Connect
        - */
        -YAHOO.util.DataSource.prototype.connMgr = YAHOO.util.Connect || null;
        -
        -/**
        - * Where the live data is held.
        - *
        - * @property dataType
        - * @type Number
        - * @default YAHOO.util.DataSource.TYPE_UNKNOWN
        - *
        - */
        -YAHOO.util.DataSource.prototype.dataType = YAHOO.util.DataSource.TYPE_UNKNOWN;
        -
        -/**
        - * Format of response.
        - *
        - * @property responseType
        - * @type Number
        - * @default YAHOO.util.DataSource.TYPE_UNKNOWN
        - */
        -YAHOO.util.DataSource.prototype.responseType = YAHOO.util.DataSource.TYPE_UNKNOWN;
        -
        -/**
        - * Response schema object literal takes a combination of the following properties:
        - *
        - * <dl>
        - * <dt>resultsList</dt> <dd>Pointer to array of tabular data</dd>
        - * <dt>resultNode</dt> <dd>Pointer to node name of row data (XML data only)</dd>
        - * <dt>recordDelim</dt> <dd>Record delimiter (text data only)</dd>
        - * <dt>fieldDelim</dt> <dd>Field delimiter (text data only)</dd>
        - * <dt>fields</dt> <dd>Array of field names (aka keys), or array of object literals
        - * such as: {key:"fieldname",converter:YAHOO.util.DataSource.convertDate}</dd>
        - * </dl>
        - *
        - * @property responseSchema
        - * @type Object
        - */
        -YAHOO.util.DataSource.prototype.responseSchema = null;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public static methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Converts data from String to Number objects.
        - *
        - * @method convertNumber
        - * @method sData {String} Number string.
        - * @return {Number} Number object.
        - * @static
        - */
        -YAHOO.util.DataSource.convertNumber = function(sData) {
        -    return sData * 1;
        -};
        -
        -/**
        - * Converts data from String to Date objects.
        - *
        - * @method convertDate
        - * @method sData {String} Date string.
        - * @return {Date} Date object.
        - * @static
        - */
        -YAHOO.util.DataSource.convertDate = function(sData) {
        -    var mm = sMarkup.substring(0,sMarkup.indexOf("/"));
        -    sMarkup = sMarkup.substring(sMarkup.indexOf("/")+1);
        -    var dd = sMarkup.substring(0,sMarkup.indexOf("/"));
        -    var yy = sMarkup.substring(sMarkup.indexOf("/")+1);
        -    return new Date(yy, mm, dd);
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Public accessor to the unique name of the DataSource instance.
        - *
        - * @method toString
        - * @return {String} Unique name of the DataSource instance.
        - */
        -YAHOO.util.DataSource.prototype.toString = function() {
        -    return "DataSource " + this._sName;
        -};
        -
        -/**
        - * Overridable method passes request to cache and returns cached response if any,
        - * refreshing the hit in the cache as the newest item. Returns null if there is
        - * no cache hit.
        - *
        - * @method getCachedResponse
        - * @param oRequest {Object} Request object.
        - * @param oCallback {Function} Handler function to receive the response
        - * @param oCaller {Object} The Calling object that is making the request
        - * @return {Object} Cached response object or null.
        - */
        -YAHOO.util.DataSource.prototype.getCachedResponse = function(oRequest, oCallback, oCaller) {
        -    var aCache = this._aCache;
        -    var nCacheLength = (aCache) ? aCache.length : 0;
        -    var oResponse = null;
        -
        -    // If cache is enabled...
        -    if((this.maxCacheEntries > 0) && aCache && (nCacheLength > 0)) {
        -        this.fireEvent("cacheRequestEvent", {request:oRequest,callback:oCallback,caller:oCaller});
        -
        -        // Loop through each cached element
        -        for(var i = nCacheLength-1; i >= 0; i--) {
        -            var oCacheElem = aCache[i];
        -
        -            // Defer cache hit logic to a public overridable method
        -            if(this.isCacheHit(oRequest,oCacheElem.request)) {
        -                // Grab the cached response
        -                oResponse = oCacheElem.response;
        -                // The cache returned a hit!
        -                // Remove element from its original location
        -                aCache.splice(i,1);
        -                // Add as newest
        -                this.addToCache(oRequest, oResponse);
        -                this.fireEvent("cacheResponseEvent", {request:oRequest,response:oResponse,callback:oCallback,caller:oCaller});
        -                break;
        -            }
        -        }
        -    }
        -    YAHOO.log("The cached response for \"" + oRequest + "\" is " + oResponse,"info",this.toString());
        -    return oResponse;
        -};
        -
        -/**
        - * Default overridable method matches given request to given cached request.
        - * Returns true if is a hit, returns false otherwise.  Implementers should
        - * override this method to customize the cache-matching algorithm.
        - *
        - * @method isCacheHit
        - * @param oRequest {Object} Request object.
        - * @param oCachedRequest {Object} Cached request object.
        - * @return {Boolean} True if given request matches cached request, false otherwise.
        - */
        -YAHOO.util.DataSource.prototype.isCacheHit = function(oRequest, oCachedRequest) {
        -    return (oRequest === oCachedRequest);
        -};
        -
        -/**
        - * Adds a new item to the cache. If cache is full, evicts the stalest item
        - * before adding the new item.
        - *
        - * @method addToCache
        - * @param oRequest {Object} Request object.
        - * @param oResponse {Object} Response object to cache.
        - */
        -YAHOO.util.DataSource.prototype.addToCache = function(oRequest, oResponse) {
        -    var aCache = this._aCache;
        -    if(!aCache) {
        -        return;
        -    }
        -
        -    //TODO: check for duplicate entries
        -
        -    // If the cache is full, make room by removing stalest element (index=0)
        -    while(aCache.length >= this.maxCacheEntries) {
        -        aCache.shift();
        -    }
        -
        -    // Add to cache in the newest position, at the end of the array
        -    var oCacheElem = {request:oRequest,response:oResponse};
        -    aCache.push(oCacheElem);
        -    this.fireEvent("responseCacheEvent",{request:oRequest,response:oResponse});
        -    YAHOO.log("Cached response for \"" +  oRequest + "\"","info",this.toString());
        -};
        -
        -/**
        - * Flushes cache.
        - *
        - * @method flushCache
        - */
        -YAHOO.util.DataSource.prototype.flushCache = function() {
        -    if(this._aCache) {
        -        this._aCache = [];
        -        this.fireEvent("cacheFlushEvent");
        -        YAHOO.log("Flushed cache","info",this.toString());
        -    }
        -};
        -
        -/**
        - * First looks for cached response, then sends request to live data.
        - *
        - * @method sendRequest
        - * @param oRequest {Object} Request object
        - * @param oCallback {Function} Handler function to receive the response
        - * @param oCaller {Object} The Calling object that is making the request
        - */
        -YAHOO.util.DataSource.prototype.sendRequest = function(oRequest, oCallback, oCaller) {
        -    // First look in cache
        -    var oCachedResponse = this.getCachedResponse(oRequest, oCallback, oCaller);
        -    if(oCachedResponse) {
        -        oCallback.call(oCaller, oRequest, oCachedResponse);
        -        return;
        -    }
        -
        -    // Not in cache, so forward request to live data
        -    YAHOO.log("Making connection to live data for \"" + oRequest + "\"","info",this.toString());
        -    this.makeConnection(oRequest, oCallback, oCaller);
        -};
        -
        -/**
        - * Overridable method provides default functionality to make a connection to
        - * live data in order to send request. The response coming back is then
        - * forwarded to the handleResponse function. This method should be customized
        - * for more complex implementations.
        - *
        - * @method makeConnection
        - * @param oRequest {Object} Request object.
        - * @param oCallback {Function} Handler function to receive the response
        - * @param oCaller {Object} The Calling object that is making the request
        - */
        -YAHOO.util.DataSource.prototype.makeConnection = function(oRequest, oCallback, oCaller) {
        -    this.fireEvent("requestEvent", {request:oRequest,callback:oCallback,caller:oCaller});
        -    var oRawResponse = null;
        -    
        -    // How to make the connection depends on the type of data
        -    switch(this.dataType) {
        -    
        -        // If the live data is a JavaScript Array
        -        // simply forward the entire array to the handler
        -        case YAHOO.util.DataSource.TYPE_JSARRAY:
        -        case YAHOO.util.DataSource.TYPE_JSON:
        -            oRawResponse = this.liveData;
        -            this.handleResponse(oRequest, oRawResponse, oCallback, oCaller);
        -            break;
        -            
        -        // If the live data is a JavaScript Function
        -        // pass the request in as a parameter and
        -        // forward the return value to the handler
        -        case YAHOO.util.DataSource.TYPE_JSFUNCTION:
        -            oRawResponse = this.liveData(oRequest);
        -            this.handleResponse(oRequest, oRawResponse, oCallback, oCaller);
        -            break;
        -            
        -        // If the live data is over Connection Manager
        -        // set up the callback object and
        -        // pass the request in as a URL query and
        -        // forward the response to the handler
        -        case YAHOO.util.DataSource.TYPE_XHR:
        -            /**
        -             * Connection Manager success handler
        -             *
        -             * @method _xhrSuccess
        -             * @param oResponse {Object} HTTPXMLRequest object
        -             * @private
        -             */
        -            var _xhrSuccess = function(oResponse) {
        -                // If response ID does not match last made request ID,
        -                // silently fail and wait for the next response
        -                if(oResponse && (!this._oConn || (oResponse.tId != this._oConn.tId))) {
        -                    this.fireEvent("dataErrorEvent", {request:oRequest,callback:oCallback,caller:oCaller,message:YAHOO.util.DataSource.ERROR_DATAINVALID});
        -                    YAHOO.log(YAHOO.util.DataSource.ERROR_DATAINVALID, "error", this.toString());
        -                    return null;
        -                }
        -                // Error if no response
        -                else if(!oResponse) {
        -                    this.fireEvent("dataErrorEvent", {request:oRequest,callback:oCallback,caller:oCaller,message:YAHOO.util.DataSource.ERROR_DATANULL});
        -                    YAHOO.log(YAHOO.util.DataSource.ERROR_DATANULL, "error", this.toString());
        -
        -                    // Send error response back to the caller with the error flag on
        -                    oCallback.call(oCaller, oRequest, oResponse, true);
        -
        -                    return null;
        -                }
        -                // Forward to handler
        -                else {
        -                    this.handleResponse(oRequest, oResponse, oCallback, oCaller);
        -                }
        -            };
        -
        -            /**
        -             * Connection Manager failure handler
        -             *
        -             * @method _xhrFailure
        -             * @param oResponse {Object} HTTPXMLRequest object
        -             * @private
        -             */
        -            var _xhrFailure = function(oResponse) {
        -                this.fireEvent("dataErrorEvent", {request:oRequest,callback:oCallback,caller:oCaller,message:YAHOO.util.DataSource.ERROR_DATAINVALID});
        -                YAHOO.log(YAHOO.util.DataSource.ERROR_DATAINVALID + ": " + oResponse.statusText, "error", this.toString());
        -
        -                // Send failure response back to the caller with the error flag on
        -                oCallback.call(oCaller, oRequest, oResponse, true);
        -                    
        -                return null;
        -            };
        -
        -            /**
        -             * Connection Manager callback object
        -             *
        -             * @property _xhrCallback
        -             * @param oResponse {Object} HTTPXMLRequest object
        -             * @private
        -             */
        -             var _xhrCallback = {
        -                success:_xhrSuccess,
        -                failure:_xhrFailure,
        -                scope: this
        -            };
        -
        -            //TODO: connTimeout config
        -            if(YAHOO.lang.isNumber(this.connTimeout) && (this.connTimeout > 0)) {
        -                _xhrCallback.timeout = this.connTimeout;
        -            }
        -
        -            //TODO: oConn config
        -            if(this._oConn && this.connMgr) {
        -                this.connMgr.abort(this._oConn);
        -            }
        -
        -            var sUri = this.liveData+"?"+oRequest;
        -            if(this.connMgr) {
        -                this._oConn = this.connMgr.asyncRequest("GET", sUri, _xhrCallback, null);
        -            }
        -            else {
        -                YAHOO.log("Could not find a valid Connection Manager","error",this.toString());
        -                // Send null response back to the caller with the error flag on
        -                oCallback.call(oCaller, oRequest, null, true);
        -            }
        -
        -            break;
        -        default:
        -            //TODO: any default?
        -            break;
        -    }
        -};
        -
        -/**
        - * Handles raw data response from live data source.
        - *
        - * @method handleResponse
        - * @param oRequest {Object} Request object
        - * @param oRawResponse {Object} The raw response from the live database
        - * @param oCallback {Function} Handler function to receive the response
        - * @param oCaller {Object} The calling object that is making the request
        - */
        -YAHOO.util.DataSource.prototype.handleResponse = function(oRequest, oRawResponse, oCallback, oCaller) {
        -    this.fireEvent("responseEvent", {request:oRequest,response:oRawResponse,callback:oCallback,caller:oCaller});
        -    YAHOO.log("The live data response for \"" + oRequest + "\" is " + oRawResponse,"info",this.toString());
        -    var xhr = (this.dataType == YAHOO.util.DataSource.TYPE_XHR) ? true : false;
        -    var oParsedResponse = null;
        -    var bError = false;
        -    //TODO: break out into overridable methods
        -    switch(this.responseType) {
        -        case YAHOO.util.DataSource.TYPE_JSARRAY:
        -            if(xhr && oRawResponse.responseText) {
        -                oRawResponse = oRawResponse.responseText;
        -            }
        -            oParsedResponse = this.parseArrayData(oRequest, oRawResponse);
        -            break;
        -        case YAHOO.util.DataSource.TYPE_JSON:
        -            if(xhr && oRawResponse.responseText) {
        -                oRawResponse = oRawResponse.responseText;
        -            }
        -            oParsedResponse = this.parseJSONData(oRequest, oRawResponse);
        -            break;
        -        case YAHOO.util.DataSource.TYPE_XML:
        -            if(xhr && oRawResponse.responseXML) {
        -                oRawResponse = oRawResponse.responseXML;
        -            }
        -            oParsedResponse = this.parseXMLData(oRequest, oRawResponse);
        -            break;
        -        case YAHOO.util.DataSource.TYPE_TEXT:
        -            if(xhr && oRawResponse.responseText) {
        -                oRawResponse = oRawResponse.responseText;
        -            }
        -            oParsedResponse = this.parseTextData(oRequest, oRawResponse);
        -            break;
        -        default:
        -            //TODO: pass off to custom function
        -            //var contentType = oRawResponse.getResponseHeader["Content-Type"];
        -            YAHOO.log("Unknown response type","warn",this.toString());
        -            break;
        -    }
        -
        -    // Last chance to touch the raw response or the parsed response
        -    oParsedResponse = this.doBeforeCallback(oRequest, oRawResponse, oParsedResponse);
        -
        -    if(oParsedResponse) {
        -        this.fireEvent("responseParseEvent", {request:oRequest,response:oParsedResponse,callback:oCallback,caller:oCaller});
        -        // Cache the response
        -        this.addToCache(oRequest, oParsedResponse);
        -    }
        -    else {
        -        this.fireEvent("dataErrorEvent", {request:oRequest,callback:oCallback,caller:oCaller,message:YAHOO.util.DataSource.ERROR_DATANULL});
        -        YAHOO.log(YAHOO.util.DataSource.ERROR_DATANULL, "error", this.toString());
        -        
        -        // Send response back to the caller with the error flag on
        -        oParsedResponse.error = true;
        -    }
        -    
        -    // Send the response back to the caller
        -    oCallback.call(oCaller, oRequest, oParsedResponse);
        -};
        -
        -/**
        - * Overridable method gives implementers access to the original raw response and
        - * the parsed response (parsed against the given schema) before the data
        - * is added to the cache (if applicable) and then sent back to callback function.
        - * This is your chance to access the raw response and/or populate the parsed
        - * response with any custom data.
        - *
        - * @method doBeforeCallback
        - * @param oRequest {Object} Request object.
        - * @param oRawResponse {Object} The raw response from the live database.
        - * @param oParsedResponse {Object} The parsed response to return to calling object.
        - * @return {Object} Parsed response object
        - */
        -YAHOO.util.DataSource.prototype.doBeforeCallback = function(oRequest, oRawResponse, oParsedResponse) {
        -    return oParsedResponse;
        -};
        -
        -/**
        - * Overridable method parses raw array data into a response object.
        - *
        - * @method parseArrayData
        - * @param oRequest {Object} Request object.
        - * @param oRawResponse {Object} The raw response from the live database.
        - * @return {Object} Parsed response object.
        - */
        -YAHOO.util.DataSource.prototype.parseArrayData = function(oRequest, oRawResponse) {
        -    if(YAHOO.lang.isArray(oRawResponse) && YAHOO.lang.isArray(this.responseSchema.fields)) {
        -        var oParsedResponse = {results:[]};
        -        var fields = this.responseSchema.fields;
        -        for(var i=oRawResponse.length-1; i>-1; i--) {
        -            var oResult = {};
        -            for(var j=fields.length-1; j>-1; j--) {
        -                var field = fields[j];
        -                var key = field.key || field;
        -                var data = oRawResponse[i][j] || oRawResponse[i][key];
        -                if(field.converter) {
        -                    data = field.converter(data);
        -                }
        -                oResult[key] = data;
        -            }
        -            oParsedResponse.results.unshift(oResult);
        -        }
        -        YAHOO.log("Parsed array data = " + oParsedResponse,"info",this.toString());
        -        return oParsedResponse;
        -    }
        -    else {
        -        YAHOO.log("Array data could not be parsed" + oRawResponse,"error",this.toString());
        -        return null;
        -    }
        -};
        -
        -/**
        - * Overridable method parses raw plain text data into a response object.
        - *
        - * @method parseTextData
        - * @param oRequest {Object} Request object
        - * @param oRawResponse {Object} The raw response from the live database
        - * @return {Object} Parsed response object
        - */
        -YAHOO.util.DataSource.prototype.parseTextData = function(oRequest, oRawResponse) {
        -    var oParsedResponse = {};
        -    if(YAHOO.lang.isString(oRawResponse) &&
        -            YAHOO.lang.isArray(this.responseSchema.fields) &&
        -            YAHOO.lang.isString(this.responseSchema.recordDelim) &&
        -            YAHOO.lang.isString(this.responseSchema.fieldDelim)) {
        -        oParsedResponse.results = [];
        -        var recDelim = this.responseSchema.recordDelim;
        -        var fieldDelim = this.responseSchema.fieldDelim;
        -        var fields = this.responseSchema.fields;
        -        if(oRawResponse.length > 0) {
        -            // Delete the last line delimiter at the end of the data if it exists
        -            var newLength = oRawResponse.length-recDelim.length;
        -            if(oRawResponse.substr(newLength) == recDelim) {
        -                oRawResponse = oRawResponse.substr(0, newLength);
        -            }
        -            // Split along record delimiter to get an array of strings
        -            var recordsarray = oRawResponse.split(recDelim);
        -            // Cycle through each record, except the first which contains header info
        -            for(var i = recordsarray.length-1; i>-1; i--) {
        -                var oResult = {};
        -                for(var j=fields.length-1; j>-1; j--) {
        -                    // Split along field delimter to get each data value
        -                    var fielddataarray = recordsarray[i].split(fieldDelim);
        -
        -                    // Remove quotation marks from edges, if applicable
        -                    var data = fielddataarray[j];
        -                    if(data.charAt(0) == "\"") {
        -                        data = data.substr(1);
        -                    }
        -                    if(data.charAt(data.length-1) == "\"") {
        -                        data = data.substr(0,data.length-1);
        -                    }
        -                    var field = fields[j];
        -                    var key = field.key || field;
        -                    if(field.converter) {
        -                        data = field.converter(data);
        -                    }
        -                    oResult[key] = data;
        -                }
        -                oParsedResponse.results.unshift(oResult);
        -            }
        -        }
        -        YAHOO.log("Parsed text data = " + oParsedResponse,"info",this.toString());
        -    }
        -    else {
        -        YAHOO.log("Text data could not be parsed" + oRawResponse,"error",this.toString());
        -        oParsedResponse.error = true;
        -    }
        -    return oParsedResponse;
        -};
        -
        -/**
        - * Overridable method parses raw XML data into a response object.
        - *
        - * @method parseXMLData
        - * @param oRequest {Object} Request object
        - * @param oRawResponse {Object} The raw response from the live database
        - * @return {Object} Parsed response object
        - */
        -YAHOO.util.DataSource.prototype.parseXMLData = function(oRequest, oRawResponse) {
        -        var bError = false;
        -        var oParsedResponse = {};
        -        var xmlList = (this.responseSchema.resultNode) ?
        -                oRawResponse.getElementsByTagName(this.responseSchema.resultNode) :
        -                null;
        -        if(!xmlList || !YAHOO.lang.isArray(this.responseSchema.fields)) {
        -            bError = true;
        -        }
        -        // Loop through each result
        -        else {
        -            oParsedResponse.results = [];
        -            for(var k = xmlList.length-1; k >= 0 ; k--) {
        -                var result = xmlList.item(k);
        -                var oResult = {};
        -                // Loop through each data field in each result using the schema
        -                for(var m = this.responseSchema.fields.length-1; m >= 0 ; m--) {
        -                    var field = this.responseSchema.fields[m];
        -                    var key = field.key || field;
        -                    var data = null;
        -                    // Values may be held in an attribute...
        -                    var xmlAttr = result.attributes.getNamedItem(key);
        -                    if(xmlAttr) {
        -                        data = xmlAttr.value;
        -                    }
        -                    // ...or in a node
        -                    else {
        -                        var xmlNode = result.getElementsByTagName(key);
        -                        if(xmlNode && xmlNode.item(0) && xmlNode.item(0).firstChild) {
        -                            data = xmlNode.item(0).firstChild.nodeValue;
        -                        }
        -                        else {
        -                               data = "";
        -                        }
        -                    }
        -                    if(field.converter) {
        -                        data = field.converter(data);
        -                    }
        -                    // Capture the schema-mapped data field values into an array
        -                    oResult[key] = data;
        -                }
        -                // Capture each array of values into an array of results
        -                oParsedResponse.results.unshift(oResult);
        -            }
        -        }
        -        if(bError) {
        -            YAHOO.log("JSON data could not be parsed" + oRawResponse,"error",this.toString());
        -            oParsedResponse.error = true;
        -        }
        -        else {
        -            YAHOO.log("Parsed XML data = " + oParsedResponse,"info",this.toString());
        -        }
        -        return oParsedResponse;
        -};
        -
        -/**
        - * Overridable method parses raw JSON data into a response object.
        - *
        - * @method parseJSONData
        - * @param oRequest {Object} Request object
        - * @param oRawResponse {Object} The raw response from the live database
        - * @return {Object} Parsed response object
        - */
        -YAHOO.util.DataSource.prototype.parseJSONData = function(oRequest, oRawResponse) {
        -    var oParsedResponse = {};
        -    if(oRawResponse && YAHOO.lang.isArray(this.responseSchema.fields)) {
        -        var fields = this.responseSchema.fields;
        -        var bError = false;
        -        oParsedResponse.results = [];
        -        var jsonObj,jsonList;
        -
        -        // Parse JSON object out if it's a string
        -        if(YAHOO.lang.isString(oRawResponse)) {
        -            // Check for latest JSON lib but divert KHTML clients
        -            var isNotMac = (navigator.userAgent.toLowerCase().indexOf('khtml')== -1);
        -            if(oRawResponse.parseJSON && isNotMac) {
        -                // Use the new JSON utility if available
        -                jsonObj = oRawResponse.parseJSON();
        -                if(!jsonObj) {
        -                    bError = true;
        -                }
        -            }
        -            // Check for older JSON lib but divert KHTML clients
        -            else if(window.JSON && JSON.parse && isNotMac) {
        -                // Use the JSON utility if available
        -                jsonObj = JSON.parse(oRawResponse);
        -                if(!jsonObj) {
        -                    bError = true;
        -                }
        -            }
        -            // No JSON lib found so parse the string
        -            else {
        -                try {
        -                    // Trim leading spaces
        -                    while (oRawResponse.length > 0 &&
        -                            (oRawResponse.charAt(0) != "{") &&
        -                            (oRawResponse.charAt(0) != "[")) {
        -                        oRawResponse = oRawResponse.substring(1, oResponse.length);
        -                    }
        -
        -                    if(oRawResponse.length > 0) {
        -                        // Strip extraneous stuff at the end
        -                        var objEnd = Math.max(oRawResponse.lastIndexOf("]"),oRawResponse.lastIndexOf("}"));
        -                        oRawResponse = oRawResponse.substring(0,objEnd+1);
        -
        -                        // Turn the string into an object literal...
        -                        // ...eval is necessary here
        -                        jsonObj = eval("(" + oRawResponse + ")");
        -                        if(!jsonObj) {
        -                            bError = true;
        -                        }
        -
        -                    }
        -                }
        -                catch(e) {
        -                    bError = true;
        -               }
        -            }
        -        }
        -        // Response must already be a JSON object
        -        else if(oRawResponse.constructor == Object) {
        -            jsonObj = oRawResponse;
        -        }
        -        // Not a string or an object
        -        else {
        -            bError = true;
        -        }
        -        // Now that we have a JSON object, parse a jsonList out of it
        -        if(jsonObj && jsonObj.constructor == Object) {
        -            try {
        -                // eval is necessary here since schema can be of unknown depth
        -                jsonList = eval("jsonObj." + this.responseSchema.resultsList);
        -            }
        -            catch(e) {
        -                bError = true;
        -            }
        -        }
        -
        -        if(bError || !jsonList) {
        -            YAHOO.log("JSON data could not be parsed" + oRawResponse,"error",this.toString());
        -            oParsedResponse.error = true;
        -        }
        -        else if(!YAHOO.lang.isArray(jsonList)) {
        -            jsonList = [jsonList];
        -        }
        -
        -        // Loop through the array of all responses...
        -        for(var i = jsonList.length-1; i >= 0 ; i--) {
        -            var oResult = {};
        -            var jsonResult = jsonList[i];
        -            // ...and loop through each data field value of each response
        -            for(var j = fields.length-1; j >= 0 ; j--) {
        -                var field = fields[j];
        -                var key = field.key || field;
        -                // ...and capture data into an array mapped according to the schema...
        -                // eval is necessary here since schema can be of unknown depth
        -                var data = eval("jsonResult." + key);
        -                if((typeof data == "undefined") || (data === null)) {
        -                    data = "";
        -                }
        -                //YAHOO.log("data: " + i + " value:" +j+" = "+dataFieldValue,"debug",this.toString());
        -                if(field.converter) {
        -                    data = field.converter(data);
        -                }
        -                oResult[key] = data;
        -            }
        -            // Capture the array of data field values in an array of results
        -            oParsedResponse.results.unshift(oResult);
        -        }
        -        YAHOO.log("Parsed JSON data = " + oParsedResponse,"info",this.toString());
        -    }
        -    else {
        -        YAHOO.log("JSON data could not be parsed" + oRawResponse,"error",this.toString());
        -        oParsedResponse.error = true;
        -    }
        -    return oParsedResponse;
        -};
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/DataTable.html b/www/extras/yui/docs/DataTable.html deleted file mode 100644 index d21a1d57e..000000000 --- a/www/extras/yui/docs/DataTable.html +++ /dev/null @@ -1,7904 +0,0 @@ - - - - API: datatable DataTable (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        DataTable Widget  2.2.2

        -

        - Yahoo! UI Library - > datatable - > DataTable - -

        -
        - -
        -
        -
        - - -

        - - - - - Class DataTable - - - - - - uses - - YAHOO.util.EventProvider - - - - -

        - - - - - -
        - DataTable class for the YUI DataTable widget. -
        - -
        -

        Constructor

        -
        -
        - DataTable - - ( - - - - elContainer - - , - oColumnSet - - , - oDataSource - - , - oConfigs - ) - -
        -
        -
        Parameters:
        -
        - elContainer - <HTMLElement> - - Container element for the TABLE. -
        -
        - oColumnSet - <YAHOO.widget.ColumnSet> - - ColumnSet instance. -
        -
        - oDataSource - <YAHOO.util.DataSource> - - DataSource instance. -
        -
        - oConfigs - <object> - - (optional) Object literal of configuration values. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _aSelectedRecords - - private YAHOO.widget.Record[] -

        -
        -
        - Array of Records that are in the selected state. -
        -
        - - - - -
        -

        _bFocused - - private Boolean -

        -
        -
        - Internal variable to track whether widget has focus. -
        -
        - - - - -
        -

        _elBody - - private HTMLElement -

        -
        -
        - TBODY element reference. -
        -
        - - - - -
        -

        _elContainer - - private HTMLElement -

        -
        -
        - Container element reference. Is null unless the TABLE is built from scratch into the -provided container. -
        -
        - - - - -
        -

        _elFirstRow - - private HTMLElement -

        -
        -
        - First TR element reference pointer. -
        -
        - - - - -
        -

        _elLastRow - - private HTMLElement -

        -
        -
        - Last TR element reference pointer. -
        -
        - - - - -
        -

        _elTable - - private HTMLElement -

        -
        -
        - TABLE element reference. -
        -
        - - - - -
        -

        _nCount - - private static Number -

        -
        -
        - Internal class variable to index multiple DataTable instances. -
        -
        - - - - -
        -

        _nIndex - - private Number -

        -
        -
        - Instance index. -
        -
        - - - - -
        -

        _oColumnSet - - private YAHOO.widget.ColumnSet -

        -
        -
        - ColumnSet instance. -
        -
        - - - - -
        -

        _oRecordSet - - private YAHOO.widget.RecordSet -

        -
        -
        - RecordSet instance. -
        -
        - - - - -
        -

        _paginator - - private Object[] -

        -
        -
        - Internal object literal to track built-in paginator values. -
        -
        - - - - -
        -

        _paginator.containers - - private HTMLElement -

        -
        -
        - Array of pagination container elements. -
        -
        - - - - -
        -

        _paginator.currentPage - - private Number -

        -
        -
        - Tracks current page. -
        -
        - - - - -
        -

        _paginator.dropdownOptions - - private Number[] | Object[] -

        -
        -
        - Internal variable to track paginator dropdown options. -
        -
        - - - - -
        -

        _paginator.dropdowns - - private HTMLElement -

        -
        -
        - Array of pagination SELECT elements. -
        -
        - - - - -
        -

        _paginator.links - - private HTMLElement -

        -
        -
        - Array of pagination link container elements. -
        -
        - - - - -
        -

        _paginator.pageLinks - - private Number -

        -
        -
        - Internal variable to track paginator page links. -
        -
        - - - - -
        -

        _paginator.rowsPerPage - - private Number -

        -
        -
        - Tracks rows per page. -
        -
        - - - - -
        -

        _paginator.totalPages - - private Number -

        -
        -
        - Tracks total number of pages, calculated on the fly. -
        -
        - - - - -
        -

        _selectRowAnchorId - - private String -

        -
        -
        - Id of anchor row for multiple selections. -
        -
        - - - - -
        -

        _sName - - private String -

        -
        -
        - Unique instance name. -
        -
        - - - - -
        -

        caption - - String -

        -
        -
        - Defines value of CAPTION attribute. -
        -
        - - - - -
        -

        CLASS_BODY - - static final String -

        -
        -
        - Class name assigned to TBODY element that holds data rows. -
        -
        - - -
        - Default Value: "yui-dt-body" -
        - - -
        -

        CLASS_CHECKBOX - - static final String -

        -
        -
        - Class name assigned to TD elements of type "checkbox". -
        -
        - - -
        - Default Value: "yui-dt-checkbox" -
        - - -
        -

        CLASS_CURRENCY - - static final String -

        -
        -
        - Class name assigned to TD elements of type "currency". -
        -
        - - -
        - Default Value: "yui-dt-currency" -
        - - -
        -

        CLASS_CURRENTPAGE - - static final String -

        -
        -
        - Class name assigned to pagination links for specific page numbers that are disabled. -
        -
        - - -
        - Default Value: "yui-dt-currentpage" -
        - - -
        -

        CLASS_DATE - - static final String -

        -
        -
        - Class name assigned to TD elements of type "date". -
        -
        - - -
        - Default Value: "yui-dt-date" -
        - - -
        -

        CLASS_EDITABLE - - static final String -

        -
        -
        - Class name assigned to editable TD elements. -
        -
        - - -
        - Default Value: "yui-dt-editable" -
        - - -
        -

        CLASS_EDITOR - - static final String -

        -
        -
        - Class name assigned to editor DIV elements. -
        -
        - - -
        - Default Value: "yui-dt-editor" -
        - - -
        -

        CLASS_EMAIL - - static final String -

        -
        -
        - Class name assigned to TD elements of type "email". -
        -
        - - -
        - Default Value: "yui-dt-email" -
        - - -
        -

        CLASS_EMPTY - - static final String -

        -
        -
        - Class name assigned to empty elements. -
        -
        - - -
        - Default Value: "yui-dt-empty" -
        - - -
        -

        CLASS_ERROR - - static final String -

        -
        -
        - Class name assigned to elements with error messaging. -
        -
        - - -
        - Default Value: "yui-dt-error" -
        - - -
        -

        CLASS_EVEN - - static final String -

        -
        -
        - Class name assigned to even TR elements. -
        -
        - - -
        - Default Value: "yui-dt-even" -
        - - -
        -

        CLASS_FIRST - - static final String -

        -
        -
        - Class name assigned to FIRST elements. -
        -
        - - -
        - Default Value: "yui-dt-first" -
        - - -
        -

        CLASS_FIRSTLINK - - static final String -

        -
        -
        - Class name assigned to the pagination link "<<". -
        -
        - - -
        - Default Value: "yui-dt-firstlink" -
        - - -
        -

        CLASS_FIRSTPAGE - - static final String -

        -
        -
        - Class name assigned to the pagination link "<<" when it is disabled. -
        -
        - - -
        - Default Value: "yui-dt-firstpage" -
        - - -
        -

        CLASS_HEADCONTAINER - - static final String -

        -
        -
        - Class name assigned to container element within THEAD. -
        -
        - - - - -
        -

        CLASS_HEADRESIZER - - static final String -

        -
        -
        - Class name assigned to resizer handle element within THEAD. -
        -
        - - -
        - Default Value: "yui-dt-headresizer" -
        - - -
        -

        CLASS_HEADTEXT - - static final String -

        -
        -
        - Class name assigned to text displayed within THEAD. -
        -
        - - -
        - Default Value: "yui-dt-headtext" -
        - - -
        -

        CLASS_HIGHLIGHT - - static final String -

        -
        -
        - Class name assigned to highlighted element. -
        -
        - - -
        - Default Value: "yui-dt-highlight" -
        - - -
        -

        CLASS_LAST - - static final String -

        -
        -
        - Class name assigned to LAST elements. -
        -
        - - -
        - Default Value: "yui-dt-last" -
        - - -
        -

        CLASS_LASTLINK - - static final String -

        -
        -
        - Class name assigned to the pagination link ">>". -
        -
        - - -
        - Default Value: "yui-dt-lastlink" -
        - - -
        -

        CLASS_LASTPAGE - - static final String -

        -
        -
        - Class name assigned to the pagination link ">>" when it is disabled. -
        -
        - - -
        - Default Value: "yui-dt-lastpage" -
        - - -
        -

        CLASS_LINK - - static final String -

        -
        -
        - Class name assigned to TD elements of type "link". -
        -
        - - -
        - Default Value: "yui-dt-link" -
        - - -
        -

        CLASS_LOADING - - static final String -

        -
        -
        - Class name assigned to loading message. -
        -
        - - -
        - Default Value: "yui-dt-loading" -
        - - -
        -

        CLASS_NEXTLINK - - static final String -

        -
        -
        - Class name assigned to the pagination link ">". -
        -
        - - -
        - Default Value: "yui-dt-nextlink" -
        - - -
        -

        CLASS_NEXTPAGE - - static final String -

        -
        -
        - Class name assigned to the pagination link ">" when it is disabled. -
        -
        - - -
        - Default Value: "yui-dt-nextpage" -
        - - -
        -

        CLASS_NUMBER - - static final String -

        -
        -
        - Class name assigned to TD elements of type "number". -
        -
        - - -
        - Default Value: "yui-dt-number" -
        - - -
        -

        CLASS_ODD - - static final String -

        -
        -
        - Class name assigned to odd TR elements. -
        -
        - - -
        - Default Value: "yui-dt-odd" -
        - - -
        -

        CLASS_PAGELINK - - static final String -

        -
        -
        - Class name assigned to pagination links to specific page numbers. -
        -
        - - -
        - Default Value: "yui-dt-pagelink" -
        - - -
        -

        CLASS_PAGELINKS - - static final String -

        -
        -
        - Class name assigned to the pagination links container element. -
        -
        - - -
        - Default Value: "yui-dt-pagelinks" -
        - - -
        -

        CLASS_PAGESELECT - - static final String -

        -
        -
        - Class name assigned to the pagination SELECT element. -
        -
        - - -
        - Default Value: "yui-dt-pageselect" -
        - - -
        -

        CLASS_PAGINATOR - - static final String -

        -
        -
        - Class name assigned to the paginator container element. -
        -
        - - -
        - Default Value: "yui-dt-paginator" -
        - - -
        -

        CLASS_PREVLINK - - static final String -

        -
        -
        - Class name assigned to the pagination link "<". -
        -
        - - -
        - Default Value: "yui-dt-prevlink" -
        - - -
        -

        CLASS_PREVPAGE - - static final String -

        -
        -
        - Class name assigned to the pagination link "<" when it is disabled. -
        -
        - - -
        - Default Value: "yui-dt-prevpage" -
        - - -
        -

        CLASS_SCROLLABLE - - static final String -

        -
        -
        - Class name assigned to container of a scrollable DataTable. -
        -
        - - -
        - Default Value: "yui-dt-scrollable" -
        - - -
        -

        CLASS_SCROLLBODY - - static final String -

        -
        -
        - Class name assigned to scrolling TBODY element of a scrollable DataTable. -
        -
        - - -
        - Default Value: "yui-dt-scrollbody" -
        - - -
        -

        CLASS_SELECTED - - static final String -

        -
        -
        - Class name assigned to selected elements. -
        -
        - - -
        - Default Value: "yui-dt-selected" -
        - - -
        -

        CLASS_SORTABLE - - static final String -

        -
        -
        - Class name assigned to column headers of sortable Columns. -
        -
        - - -
        - Default Value: "yui-dt-sortable" -
        - - -
        -

        CLASS_SORTEDBYASC - - static final String -

        -
        -
        - Class name assigned to column headers when sorted in ascending order. -
        -
        - - -
        - Default Value: "yui-dt-sortedbyasc" -
        - - -
        -

        CLASS_SORTEDBYDESC - - static final String -

        -
        -
        - Class name assigned to column headers when sorted in descending order. -
        -
        - - -
        - Default Value: "yui-dt-sortedbydesc" -
        - - -
        -

        CLASS_STRING - - static final String -

        -
        -
        - Class name assigned to TD elements of type "string". -
        -
        - - -
        - Default Value: "yui-dt-string" -
        - - -
        -

        CLASS_TABLE - - static final String -

        -
        -
        - Class name assigned to TABLE element. -
        -
        - - -
        - Default Value: "yui-dt" -
        - - -
        -

        contextMenu - - YAHOO.widget.ContextMenu -

        -
        -
        - ContextMenu instance. -
        -
        - - - - -
        -

        dataSource - - YAHOO.util.DataSource -

        -
        -
        - DataSource instance. -
        -
        - - - - -
        -

        fixedWidth - - Boolean -

        -
        -
        - True if DataTable's width is a fixed size. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        initialRequest - - String -

        -
        -
        - Initial request to send to DataSource. -
        -
        - - -
        - Default Value: "" -
        - - -
        -

        isEmpty - - object -

        -
        -
        - -
        -
        - - - -
        - Deprecated: No longer used. -
        - -
        -

        isLoading - - object -

        -
        -
        - -
        -
        - - - -
        - Deprecated: No longer used. -
        - -
        -

        MSG_EMPTY - - static final String -

        -
        -
        - Message to display if DataTable has no data. -
        -
        - - -
        - Default Value: "No records found." -
        - - -
        -

        MSG_ERROR - - static final String -

        -
        -
        - Message to display while DataTable has data error. -
        -
        - - -
        - Default Value: "Data error." -
        - - -
        -

        MSG_LOADING - - static final String -

        -
        -
        - Message to display while DataTable is loading data. -
        -
        - - -
        - Default Value: "Loading data..." -
        - - -
        -

        pageCurrent - - object -

        -
        -
        - -
        -
        - - - -
        - Deprecated: Deprecated. Please use paginatorOptions.currentPage -
        - -
        -

        pageLinksLength - - object -

        -
        -
        - -
        -
        - - - -
        - Deprecated: Deprecated. Please use paginatorOptions.pageLinks -
        - -
        -

        pageLinksStart - - object -

        -
        -
        - -
        -
        - - - -
        - Deprecated: Deprecated. Please use paginatorOptions.pageLinksStart. -
        - -
        -

        pagers - - object -

        -
        -
        - -
        -
        - - - -
        - Deprecated: Deprecated. Please use paginatorOptions.containers -
        - -
        -

        paginator - - Boolean -

        -
        -
        - True if built-in paginator is enabled. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        paginatorOptions - - Object -

        -
        -
        - Object literal of initial paginator key:value properties. -
        -
        - - -
        - Default Value: {} -
        - - -
        -

        paginatorOptions.containers - - HTMLElement[] -

        -
        -
        - Array of container elements to hold paginator UI, if enabled. If null, -2 containers will be created dynamically, one before and one after the -TABLE element. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        paginatorOptions.currentPage - - Number -

        -
        -
        - If built-in paginator is enabled, current page to display. -
        -
        - - -
        - Default Value: 1 -
        - - -
        -

        paginatorOptions.dropdownOptions - - Number[] | Object{} -

        -
        -
        - Values to show in the SELECT dropdown. Can be an array of numbers to populate -each OPTION's value and text with the same value, or an array of object -literals of syntax {value:myValue, text:myText} will populate OPTION with -corresponding value and text. A null value or empty array prevents the -dropdown from displayed altogether. -
        -
        - - - - -
        -

        paginatorOptions.pageLinks - - Number -

        -
        -
        - Maximum number of links to page numbers to show in paginator UI. Any pages -not linked would be available through the next/previous style links. A 0 -value displays all page links. A negative value disables all page links. -
        -
        - - -
        - Default Value: 0 -
        - - -
        -

        paginatorOptions.rowsPerPage - - Number -

        -
        -
        - If built-in paginator is enabled, each page will display up to the given -number of rows per page. A value less than 1 will display all available -rows. -
        -
        - - -
        - Default Value: 500 -
        - - -
        -

        rowSingleSelect - - Boolean -

        -
        -
        - True if only one row may be selected at a time. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        rowsPerPage - - object -

        -
        -
        - -
        -
        - - - -
        - Deprecated: Deprecated. Please use paginatorOptions.rowsPerPage -
        - -
        -

        rowsPerPageDropdown - - object -

        -
        -
        - -
        -
        - - - -
        - Deprecated: Deprecated. Please use paginatorOptions.dropdownOptions -
        - -
        -

        scrollable - - Boolean -

        -
        -
        - True if TBODY should scroll while THEAD remains fixed. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        sortedBy - - Object -

        -
        -
        - Object literal holds sort metadata: -sortedBy.colKey -sortedBy.dir -
        -
        - - - - -
        -

        startRecordIndex - - object -

        -
        -
        - -
        -
        - - - -
        - Deprecated: Deprecated. Please use paginatorOptions.startRecordIndex. -
        - -
        -

        summary - - String -

        -
        -
        - Defines value of SUMMARY attribute. -
        -
        - - - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Methods

        -
        -

        - _addRecords

        -
        - - private - - - String - _addRecords - ( - - - oData - - - , - index - - - ) - - -
        - Creates a new Record to add to RecordSet at position i if given, or to the -end otherwise. -
        - -
        - -
        -
        Parameters:
        -
        - oData <YAHOO.widget.Record> - Array of object literals containing data. -
        -
        - index <Number> - Index position at which to add Record. -
        -
        - -
        -
        Returns: - - String -
        -
        Array of Records.
        -
        - -
        - -
        -
        -

        - _addRowEl

        -
        - - private - - - String - _addRowEl - ( - - - oRecord - - - , - index - - - ) - - -
        - Add a new TR element to table body at position i if given, or to the bottom -otherwise. Populates cells with data from given Record. -
        - -
        - -
        -
        Parameters:
        -
        - oRecord <YAHOO.widget.Record> - Record instance. -
        -
        - index <Number> - Index position at which to add TR. -
        -
        - -
        -
        Returns: - - String -
        -
        ID of the added TR element.
        -
        - -
        - -
        -
        -

        - _deleteRecord

        -
        - - private - - - void - _deleteRecord - ( - - - identifier - - - ) - - -
        - Deletes a given Record from the RecordSet. -
        - -
        - -
        -
        Parameters:
        -
        - identifier <Number | String> - Record identifier. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _deleteRowEl

        -
        - - private - - - void - _deleteRowEl - ( - - - row - - - ) - - -
        - Deletes a given TR element. -
        - -
        - -
        -
        Parameters:
        -
        - row <HTMLElement | Number> - HTML TR element reference or position index. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _initHead

        -
        - - private - - - void - _initHead - ( - ) - - -
        - Populates THEAD element with TH cells as defined by ColumnSet. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _initHeadCell

        -
        - - private - - - void - _initHeadCell - ( - - - elHeadCell - - - , - oColumn - - - , - row - - - , - col - - - ) - - -
        - Populates TH cell as defined by Column. -
        - -
        - -
        -
        Parameters:
        -
        - elHeadCell <HTMLElement> - TH cell element reference. -
        -
        - oColumn <YAHOO.widget.Column> - Column object. -
        -
        - row <number> - Row index. -
        -
        - col <number> - Column index. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _initPaginator

        -
        - - private - - - void - _initPaginator - ( - ) - - -
        - If pagination is enabled, initializes paginator container elements and sets -internal tracking variables. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _initTable

        -
        - - private - - - void - _initTable - ( - ) - - -
        - Creates HTML markup for TABLE, THEAD, TBODY. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onBlur

        -
        - - private - - - void - _onBlur - ( - - - e - - - , - oSelf - - - ) - - -
        - Handles blur events on the TABLE element. -
        - -
        - -
        -
        Parameters:
        -
        - e <HTMLEvent> - The blur event. -
        -
        - oSelf <YAHOO.widget.DataTable> - DataTable instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onClick

        -
        - - private - - - void - _onClick - ( - - - e - - - , - oSelf - - - ) - - -
        - Handles click events on the TABLE element. -
        - -
        - -
        -
        Parameters:
        -
        - e <HTMLEvent> - The click event. -
        -
        - oSelf <YAHOO.widget.DataTable> - DataTable instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onDocumentClick

        -
        - - private - - - void - _onDocumentClick - ( - - - e - - - , - oSelf - - - ) - - -
        - Handles click events on the DOCUMENT. Hides active editor. -
        - -
        - -
        -
        Parameters:
        -
        - e <HTMLEvent> - The click event. -
        -
        - oSelf <YAHOO.widget.DataTable> - DataTable instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onDocumentKeydown

        -
        - - private - - - void - _onDocumentKeydown - ( - - - e - - - , - oSelf - - - ) - - -
        - Handles keydown events on the DOCUMENT. Executes interaction with editor. -
        - -
        - -
        -
        Parameters:
        -
        - e <HTMLEvent> - The key event. -
        -
        - oSelf <YAHOO.widget.DataTable> - DataTable instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onDoubleclick

        -
        - - private - - - void - _onDoubleclick - ( - - - e - - - , - oSelf - - - ) - - -
        - Handles doubleclick events on the TABLE element. -
        - -
        - -
        -
        Parameters:
        -
        - e <HTMLEvent> - The doubleclick event. -
        -
        - oSelf <YAHOO.widget.DataTable> - DataTable instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onKeydown

        -
        - - private - - - void - _onKeydown - ( - - - e - - - , - oSelf - - - ) - - -
        - Handles keydown events on the TABLE. Executes arrow selection. -
        - -
        - -
        -
        Parameters:
        -
        - e <HTMLEvent> - The key event. -
        -
        - oSelf <YAHOO.widget.DataTable> - DataTable instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onKeypress

        -
        - - private - - - void - _onKeypress - ( - - - e - - - , - oSelf - - - ) - - -
        - Handles keypress events on the TABLE. Mainly to support stopEvent on Mac. -
        - -
        - -
        -
        Parameters:
        -
        - e <HTMLEvent> - The key event. -
        -
        - oSelf <YAHOO.widget.DataTable> - DataTable instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onKeyup

        -
        - - private - - - void - _onKeyup - ( - - - e - - - , - oSelf - - - ) - - -
        - Handles keyup events on the TABLE. Executes deletion -
        - -
        - -
        -
        Parameters:
        -
        - e <HTMLEvent> - The key event. -
        -
        - oSelf <YAHOO.widget.DataTable> - DataTable instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMousedown

        -
        - - private - - - void - _onMousedown - ( - - - e - - - , - oSelf - - - ) - - -
        - Handles mousedown events on the TABLE element. -
        - -
        - -
        -
        Parameters:
        -
        - e <HTMLEvent> - The mousedown event. -
        -
        - oSelf <YAHOO.widget.DataTable> - DataTable instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMouseout

        -
        - - private - - - void - _onMouseout - ( - - - e - - - , - oSelf - - - ) - - -
        - Handles mouseout events on the TABLE element. -
        - -
        - -
        -
        Parameters:
        -
        - e <HTMLEvent> - The mouseout event. -
        -
        - oSelf <YAHOO.widget.DataTable> - DataTable instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMouseover

        -
        - - private - - - void - _onMouseover - ( - - - e - - - , - oSelf - - - ) - - -
        - Handles mouseover events on the TABLE element. -
        - -
        - -
        -
        Parameters:
        -
        - e <HTMLEvent> - The mouseover event. -
        -
        - oSelf <YAHOO.widget.DataTable> - DataTable instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onPagerClick

        -
        - - private - - - void - _onPagerClick - ( - - - e - - - , - oSelf - - - ) - - -
        - Handles click events on paginator links. -
        - -
        - -
        -
        Parameters:
        -
        - e <HTMLEvent> - The click event. -
        -
        - oSelf <YAHOO.widget.DataTable> - DataTable instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onPagerSelect

        -
        - - private - - - void - _onPagerSelect - ( - - - e - - - , - oSelf - - - ) - - -
        - Handles change events on paginator SELECT. -
        - -
        - -
        -
        Parameters:
        -
        - e <HTMLEvent> - The change event. -
        -
        - oSelf <YAHOO.widget.DataTable> - DataTable instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onRowDelete

        -
        - - private - - - void - _onRowDelete - ( - - - oArgs.rowIndexes - - - ) - - -
        - Handles row delete events. -
        - -
        - -
        -
        Parameters:
        -
        - oArgs.rowIndexes <Number[]> - The indexes of the deleted rows. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _select

        -
        - - private - - - void - _select - ( - - - els - - - ) - - -
        - Sets elements to selected state. Does not fire any events. Does not affect -internal tracker. -
        - -
        - -
        -
        Parameters:
        -
        - els <HTMLElement | String | HTMLElement[] | String[]> - HTML element by -reference or ID string, or array of HTML elements by reference or ID string. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setFirstRow

        -
        - - private - - - void - _setFirstRow - ( - ) - - -
        - Sets first row with class YAHOO.widget.DataTable.CLASS_FIRST. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setLastRow

        -
        - - private - - - void - _setLastRow - ( - ) - - -
        - Sets last row with class YAHOO.widget.DataTable.CLASS_LAST. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setRowStripes

        -
        - - private - - - void - _setRowStripes - ( - - - range - - - ) - - -
        - Stripes rows by applying class YAHOO.widget.DataTable.CLASS_EVEN or -YAHOO.widget.DataTable.CLASS_ODD. -
        - -
        - -
        -
        Parameters:
        -
        - range <Number> - (optional) Range defines a subset of rows to stripe. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _unselect

        -
        - - private - - - void - _unselect - ( - - - els - - - ) - - -
        - Sets elements to the unselected state. Does not fire any events. Does not -affect internal tracker. -
        - -
        - -
        -
        Parameters:
        -
        - els <HTMLElement | String | HTMLElement[] | String[]> - HTMLElement by -reference or ID string, or array of HTML elements by reference or ID string. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _unselectAllCells

        -
        - - private - - - void - _unselectAllCells - ( - ) - - -
        - Unselects all selected cells. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _unselectAllRows

        -
        - - private - - - void - _unselectAllRows - ( - ) - - -
        - Unselects all selected rows. Does not fire any events. Does not affect internal -tracker. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _updateRowEl

        -
        - - private - - - String - _updateRowEl - ( - - - oRecord - - - , - index - - - ) - - -
        - Updates all cells of existing TR element at given position with data from the -given Record. -
        - -
        - -
        -
        Parameters:
        -
        - oRecord <YAHOO.widget.Record> - Record instance. -
        -
        - index <Number> - Position at which to update row. -
        -
        - -
        -
        Returns: - - String -
        -
        ID of the updated TR element.
        -
        - -
        - -
        -
        -

        - addRow

        -
        - - - - - void - addRow - ( - - - oRecord - - - , - index - - - ) - - -
        - Convenience method to add a new row to table body at position index if given, -or to the bottom otherwise. -
        - -
        - -
        -
        Parameters:
        -
        - oRecord <YAHOO.widget.Record> - Record instance. -
        -
        - index <Number> - (optional) Position at which to add row. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - appendRows

        -
        - - - - - void - appendRows - ( - - - aRecords - - - ) - - -
        - Add rows to bottom of table body. -
        - -
        - -
        -
        Parameters:
        -
        - aRecords <YAHOO.widget.Record[]> - Array of Records. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - cancelEditorData

        -
        - - - - - void - cancelEditorData - ( - ) - - -
        - Hides active editor, not saving any data. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - deleteRow

        -
        - - - - - void - deleteRow - ( - - - elRow - - - ) - - -
        - Deletes a given row element as well its corresponding Record in the RecordSet. -
        - -
        - -
        -
        Parameters:
        -
        - elRow <HTMLElement> - HTML table row element reference. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - deleteRows

        -
        - - - - - void - deleteRows - ( - - - elRows - - - ) - - -
        - Calls delete on given rows. -
        - -
        - -
        -
        Parameters:
        -
        - elRows <HTMLElement[]> - Array of HTML table row element reference. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - doBeforeLoadData

        -
        - - - - - Boolean - doBeforeLoadData - ( - - - sRequest - - - , - oResponse - - - ) - - -
        - Overridable method gives implementers a hook to access data before -it gets added to RecordSet and rendered to the TBODY. -
        - -
        - -
        -
        Parameters:
        -
        - sRequest <String> - Original request. -
        -
        - oResponse <Object> - Response object. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        Return true to continue loading data into RecordSet and -updating DataTable with new Records, false to cancel.
        -
        - -
        - -
        -
        -

        - editCell

        -
        - - - - - void - editCell - ( - - - elCell - - - ) - - -
        - Shows editor for given cell. -
        - -
        - -
        -
        Parameters:
        -
        - elCell <HTMLElement> - Cell element to edit. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - focusTable

        -
        - - - - - void - focusTable - ( - ) - - -
        - Sets focus on the TABLE element. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - formatCell

        -
        - - - - - void - formatCell - ( - - - elCell - - - ) - - -
        - Formats given cell. -
        - -
        - -
        -
        Parameters:
        -
        - elCell <HTMLElement> - Cell element to format. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - formatPaginatorDropdown

        -
        - - - - - void - formatPaginatorDropdown - ( - - - oElReferences - - - ) - - -
        - Updates Paginator dropdown. If dropdown doesn't exist, the markup is created. -Sets dropdown's "selected" value. -
        - -
        - -
        -
        Parameters:
        -
        - oElReferences <Object> - Object literal of pointers to Paginator UI -elements. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - formatPaginatorLinks

        -
        - - - - - void - formatPaginatorLinks - ( - ) - - -
        - Updates Paginator links container with markup. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - formatPaginators

        -
        - - - - - void - formatPaginators - ( - ) - - -
        - Updates Paginator containers with markup. Override this method to customize pagination UI. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getBody

        -
        - - - - - HTMLElement - getBody - ( - ) - - -
        - Returns element reference to TBODY. -
        - -
        - - -
        -
        Returns: - - HTMLElement -
        -
        Reference to TBODY element.
        -
        - -
        - -
        -
        -

        - getCell

        -
        - - - - - HTMLElement - getCell - ( - - - rowIndex - - - , - colIndex - - - ) - - -
        - Returns element reference to TD element at given row and column positions. -
        - -
        - -
        -
        Parameters:
        -
        - rowIndex <Number> - Row index. -
        -
        - colIndex <Number> - Column index. -
        -
        - -
        -
        Returns: - - HTMLElement -
        -
        Reference to TD element.
        -
        - -
        - -
        -
        -

        - getColumnSet

        -
        - - - - - YAHOO.widget.ColumnSet - getColumnSet - ( - ) - - -
        - Returns pointer to the DataTable instance's ColumnSet instance. -
        - -
        - - -
        -
        Returns: - - YAHOO.widget.ColumnSet -
        -
        ColumnSet instance.
        -
        - -
        - -
        -
        -

        - getFirstRow

        -
        - - - - - HTMLElement - getFirstRow - ( - ) - - -
        - Returns element reference to first TR element. -
        - -
        - - -
        -
        Returns: - - HTMLElement -
        -
        Reference to first TR element.
        -
        - -
        - -
        -
        -

        - getHead

        -
        - - - - - HTMLElement - getHead - ( - ) - - -
        - Returns element reference to THEAD. -
        - -
        - - -
        -
        Returns: - - HTMLElement -
        -
        Reference to THEAD element.
        -
        - -
        - -
        -
        -

        - getLastRow

        -
        - - - - - HTMLElement - getLastRow - ( - ) - - -
        - Returns element reference to last TR element. -
        - -
        - - -
        -
        Returns: - - HTMLElement -
        -
        Reference to last TR element.
        -
        - -
        - -
        -
        -

        - getPaginator

        -
        - - - - - Object - getPaginator - ( - ) - - -
        - Returns paginator object literal. -
        - -
        - - -
        -
        Returns: - - Object -
        -
        Paginator object literal with following properties: -
          -
        • currentPage: current page number
        • -
        • dropdownOptions: array of numbers to show in dropdown
        • -
        • elements: array of object literals that define where to show -paginator UI with following properties: -
            -
          • container: element reference to paginator container
          • -
          • links: element reference to page links container
          • -
          • select: element reference to dropdown
          • -
          -
        • -
        • pageLinks: number of page links displayed
        • -
        • pageLinkStart: page number of first link
        • -
        • rowsPerPage: number of rows displayed
        • -
        • totalPages: total number of pages
        • -
        -
        - -
        - -
        -
        -

        - getRecordSet

        -
        - - - - - YAHOO.widget.RecordSet - getRecordSet - ( - ) - - -
        - Returns pointer to the DataTable instance's RecordSet instance. -
        - -
        - - -
        -
        Returns: - - YAHOO.widget.RecordSet -
        -
        RecordSet instance.
        -
        - -
        - -
        -
        -

        - getRow

        -
        - - - - - HTMLElement - getRow - ( - - - index - - - ) - - -
        - Returns element reference to TR element at given index. -
        - -
        - -
        -
        Parameters:
        -
        - index <Number> - Row number. -
        -
        - -
        -
        Returns: - - HTMLElement -
        -
        Reference to TR element.
        -
        - -
        - -
        -
        -

        - getSelectedCells

        -
        - - - - - HTMLElement[] - getSelectedCells - ( - ) - - -
        - Returns array of selected TD cells. -
        - -
        - - -
        -
        Returns: - - HTMLElement[] -
        -
        Array of selected TD elements.
        -
        - -
        - -
        -
        -

        - getSelectedRecordIds

        -
        - - - - - HTMLElement[] - getSelectedRecordIds - ( - ) - - -
        - Returns array of selected Record IDs. -
        - -
        - - -
        -
        Returns: - - HTMLElement[] -
        -
        Array of selected TR elements.
        -
        - -
        - -
        -
        -

        - getSelectedRows

        -
        - - - - - HTMLElement[] - getSelectedRows - ( - ) - - -
        - Returns array of selected rows. -
        - -
        - - -
        -
        Returns: - - HTMLElement[] -
        -
        Array of selected TR elements.
        -
        - -
        - -
        -
        -

        - getTable

        -
        - - - - - HTMLElement - getTable - ( - ) - - -
        - Returns element reference to TABLE. -
        - -
        - - -
        -
        Returns: - - HTMLElement -
        -
        Reference to TABLE element.
        -
        - -
        - -
        -
        -

        - hideTableMessage

        -
        - - - - - void - hideTableMessage - ( - ) - - -
        - Hide placeholder message. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - hideTableMessages

        -
        - - - - - void - hideTableMessages - ( - ) - - -
        - -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Deprecated. Please use hideTableMessage(). -
        -
        - -
        -
        -

        - highlight

        -
        - - - - - void - highlight - ( - - - els - - - ) - - -
        - Sets one or more elements to the highlighted state. -
        - -
        - -
        -
        Parameters:
        -
        - els <HTMLElement | String | HTMLElement[] | String[]> - HTML TR element -reference, TR String ID, array of HTML TR element, or array of TR element IDs. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - insertRows

        -
        - - - - - void - insertRows - ( - - - aRecords - - - ) - - -
        - Add rows to top of table body. -
        - -
        - -
        -
        Parameters:
        -
        - aRecords <YAHOO.widget.Record[]> - Array of Records. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - isSelected

        -
        - - - - - Boolean - isSelected - ( - - - el - - - ) - - -
        - Returns true if given element is select, false otherwise. -
        - -
        - -
        -
        Parameters:
        -
        - el <HTMLElement> - HTML element reference or ID. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        True if element is selected.
        -
        - -
        - -
        -
        -

        - onDataReturnAppendRows

        -
        - - - - - void - onDataReturnAppendRows - ( - - - sRequest - - - , - oResponse - - - , - bError - - - ) - - -
        - Add new data to end of table. -
        - -
        - -
        -
        Parameters:
        -
        - sRequest <String> - Original request. -
        -
        - oResponse <Object> - Response object. -
        -
        - bError <Boolean> - (optional) True if there was a data error. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onDataReturnInsertRows

        -
        - - - - - void - onDataReturnInsertRows - ( - - - sRequest - - - , - oResponse - - - , - bError - - - ) - - -
        - Handles data return for inserting new rows to top of table. -
        - -
        - -
        -
        Parameters:
        -
        - sRequest <String> - Original request. -
        -
        - oResponse <Object> - Response object. -
        -
        - bError <Boolean> - (optional) True if there was a data error. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onDataReturnPaginateRows

        -
        - - - - - void - onDataReturnPaginateRows - ( - ) - - -
        - -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Deprecated. Please use onDataReturnPopulateTable(). -
        -
        - -
        -
        -

        - onDataReturnPopulateTable

        -
        - - - - - void - onDataReturnPopulateTable - ( - - - sRequest - - - , - oResponse - - - , - bError - - - ) - - -
        - Calls populateTable() with new data. -
        - -
        - -
        -
        Parameters:
        -
        - sRequest <String> - Original request. -
        -
        - oResponse <Object> - Response object. -
        -
        - bError <Boolean> - (optional) True if there was a data error. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onDataReturnReplaceRows

        -
        - - - - - void - onDataReturnReplaceRows - ( - - - sRequest - - - , - oResponse - - - , - bError - - - ) - - -
        - Handles data return for replacing all existing of table with new rows. -
        - -
        - -
        -
        Parameters:
        -
        - sRequest <String> - Original request. -
        -
        - oResponse <Object> - Response object. -
        -
        - bError <Boolean> - (optional) True if there was a data error. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onEventEditCell

        -
        - - - - - void - onEventEditCell - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - -
        - Overridable custom event handler to edit cell. -
        - -
        - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - Event object. -
        -
        - oArgs.target <HTMLElement> - Target element. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onEventFormatCell

        -
        - - - - - void - onEventFormatCell - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - -
        - Overridable custom event handler to format cell. -
        - -
        - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - Event object. -
        -
        - oArgs.target <HTMLElement> - Target element. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onEventHighlightCell

        -
        - - - - - void - onEventHighlightCell - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - -
        - Overridable custom event handler to highlight cell. -
        - -
        - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - Event object. -
        -
        - oArgs.target <HTMLElement> - Target element. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onEventSelectCell

        -
        - - - - - void - onEventSelectCell - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - -
        - Overridable custom event handler to select cell. -
        - -
        - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - Event object. -
        -
        - oArgs.target <HTMLElement> - Target element. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onEventSelectRow

        -
        - - - - - void - onEventSelectRow - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - -
        - Overridable custom event handler to select row according to desktop paradigm. -
        - -
        - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - Event object. -
        -
        - oArgs.target <HTMLElement> - Target element. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onEventSortColumn

        -
        - - - - - void - onEventSortColumn - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - -
        - Overridable custom event handler to sort column. -
        - -
        - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - Event object. -
        -
        - oArgs.target <HTMLElement> - Target element. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onEventUnhighlightCell

        -
        - - - - - void - onEventUnhighlightCell - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - -
        - Overridable custom event handler to unhighlight cell. -
        - -
        - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - Event object. -
        -
        - oArgs.target <HTMLElement> - Target element. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - populateTable

        -
        - - - - - void - populateTable - ( - - - oData - - - ) - - -
        - Replaces all Records in RecordSet and populates TBODY rows with the -new data. Blows away old data. If pagination is enabled, displays only -current page, otherwise displays all rows. -
        - -
        - -
        -
        Parameters:
        -
        - oData <Object | Object[]> - An object literal of data or an array of -object literals containing data. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Deprecated in favor of populateTable(). -
        -
        - -
        -
        -

        - refreshTable

        -
        - - - - - void - refreshTable - ( - ) - - -
        - Refreshes table view into existing RecordSet. For performance, reuses -existing rows while deleting extraneous rows. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - saveEditorData

        -
        - - - - - void - saveEditorData - ( - ) - - -
        - Saves data in active editor. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - select

        -
        - - - - - void - select - ( - - - els - - - ) - - -
        - Sets one or more elements to the selected state. -
        - -
        - -
        -
        Parameters:
        -
        - els <HTMLElement | String | HTMLElement[] | String[]> - HTML TR element -reference, TR String ID, array of HTML TR element, or array of TR element IDs. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - selectRow

        -
        - - - - - void - selectRow - ( - - - row - - - ) - - -
        - Sets a row to the selected state. -
        - -
        - -
        -
        Parameters:
        -
        - row <HTMLElement | String> - HTML TR element reference or ID. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - showEmptyMessage

        -
        - - - - - void - showEmptyMessage - ( - ) - - -
        - -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Deprecated. Please use showTableMessage(). -
        -
        - -
        -
        -

        - showLoadingMessage

        -
        - - - - - void - showLoadingMessage - ( - ) - - -
        - -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Deprecated. Please use showTableMessage(). -
        -
        - -
        -
        -

        - showPage

        -
        - - - - - void - showPage - ( - - - nPage - - - ) - - -
        - Displays a specific page of a paginated DataTable. -
        - -
        - -
        -
        Parameters:
        -
        - nPage <Number> - Which page. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - showTableMessage

        -
        - - - - - void - showTableMessage - ( - - - sHTML - - - , - sClassName - - - ) - - -
        - Displays placeholder row with a message when there are no data rows. -
        - -
        - -
        -
        Parameters:
        -
        - sHTML <String> - (optional) Value for innerHTML. -
        -
        - sClassName <String> - (optional) Classname. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - sortColumn

        -
        - - - - - void - sortColumn - ( - - - oColumn - - - ) - - -
        - Sort given column. -
        - -
        - -
        -
        Parameters:
        -
        - oColumn <YAHOO.widget.Column> - Column instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Public accessor to the unique name of the DataSource instance. -
        - -
        - - -
        -
        Returns: - - String -
        -
        Unique name of the DataSource instance.
        -
        - -
        - -
        -
        -

        - unhighlight

        -
        - - - - - void - unhighlight - ( - - - els - - - ) - - -
        - Sets one or more elements to the unhighlighted state. -
        - -
        - -
        -
        Parameters:
        -
        - els <HTMLElement | String | HTMLElement[] | String[]> - HTML TR element -reference, TR String ID, array of HTML TR element, or array of TR element IDs. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - unselect

        -
        - - - - - void - unselect - ( - - - els - - - ) - - -
        - Sets one or more elements to the unselected state. -
        - -
        - -
        -
        Parameters:
        -
        - els <HTMLElement | String | HTMLElement[] | String[]> - HTML element -reference, element ID, array of HTML elements, or array of element IDs -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - unselectAllCells

        -
        - - - - - void - unselectAllCells - ( - ) - - -
        - Unselects all selected cells. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - unselectAllRows

        -
        - - - - - void - unselectAllRows - ( - ) - - -
        - Unselects all selected rows (across all pages, if applicable). -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - unselectRow

        -
        - - - - - void - unselectRow - ( - - - row - - - ) - - -
        - Sets a row to the unselected state. -
        - -
        - -
        -
        Parameters:
        -
        - row <HTMLElement | String> - HTML TR element reference or ID. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - updatePaginator

        -
        - - - - - void - updatePaginator - ( - ) - - -
        - Updates Paginator internal values and UI. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - updateRow

        -
        - - - - - void - updateRow - ( - - - oRecord - - - , - index - - - ) - - -
        - Updates existing Record and row at position index with given data. -
        - -
        - -
        -
        Parameters:
        -
        - oRecord <YAHOO.widget.Record> - Record instance. -
        -
        - index <Number> - Position at which to update row. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Events

        -
        -

        - _onRecordUpdate

        -
        - - private - - - _onRecordUpdate - - ( - - - oArgs.record - - - , - oArgs.key - - - , - oArgs.newData - - - , - oArgs.oldData - - - ) - - - -
        - Passes along recordSetUpdate Event when recordUpdateEvent is caught from RecordSet. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.record <YAHOO.widget.Record> - The Record instance. -
        -
        - oArgs.key <String> - The Record key. -
        -
        - oArgs.newData <Object> - New data. -
        -
        - oArgs.oldData <Object> - New data. -
        -
        - - -
        - -
        -
        -

        - cellClickEvent

        -
        - - - - - cellClickEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a TD element is clicked. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The TD element. -
        -
        - - -
        - -
        -
        -

        - cellDoubleclickEvent

        -
        - - - - - cellDoubleclickEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a TD element is doubleclicked. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The TD element. -
        -
        - - -
        - -
        -
        -

        - cellEditEvent

        -
        - - - - - cellEditEvent - - ( - - - oArgs.target - - - , - oArgs.newData - - - , - oArgs.oldData - - - ) - - - -
        - Fired when a cell is edited. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.target <HTMLElement> - The TD element. -
        -
        - oArgs.newData <Object> - New data value. -
        -
        - oArgs.oldData <Object> - Old data value. -
        -
        - - -
        - -
        -
        -

        - cellFormatEvent

        -
        - - - - - cellFormatEvent - - ( - - - oArgs.el - - - ) - - - -
        - Fired when a TD element is formatted. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.el <HTMLElement> - Reference to the TD element. -
        -
        - - -
        - -
        -
        -

        - cellMousedownEvent

        -
        - - - - - cellMousedownEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a mousedown occurs on a TD element. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The TD element. -
        -
        - - -
        - -
        -
        -

        - cellMouseoutEvent

        -
        - - - - - cellMouseoutEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a mouseout occurs on a TD element. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The TD element. -
        -
        - - -
        - -
        -
        -

        - cellMouseoverEvent

        -
        - - - - - cellMouseoverEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a mouseover occurs on a TD element. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The TD element. -
        -
        - - -
        - -
        -
        -

        - checkboxClickEvent

        -
        - - - - - checkboxClickEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a CHECKBOX element is clicked. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The CHECKBOX element. -
        -
        - - -
        - -
        -
        -

        - columnResizeEvent

        -
        - - - - - columnResizeEvent - - ( - - - oArgs.target - - - ) - - - -
        - Fired when a column is resized. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.target <HTMLElement> - The TH element. -
        -
        - - -
        - -
        -
        -

        - columnSortEvent

        -
        - - - - - columnSortEvent - - ( - - - oArgs.column - - - , - oArgs.dir - - - ) - - - -
        - Fired when a column is sorted. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.column <YAHOO.widget.Column> - The Column instance. -
        -
        - oArgs.dir <String> - Sort direction "asc" or "desc". -
        -
        - - -
        - -
        -
        -

        - dataReturnEvent

        -
        - - - - - dataReturnEvent - - ( - - - oArgs.request - - - , - oArgs.response - - - ) - - - -
        - Fired when data is returned from DataSource. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.request <String> - Original request. -
        -
        - oArgs.response <Object> - Response object. -
        -
        - - -
        - -
        -
        -

        - editorShowEvent

        -
        - - - - - editorShowEvent - - ( - - - oArgs.target - - - , - oArgs.column - - - ) - - - -
        - Fired when an editor is activated. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.target <HTMLElement> - The TD element. -
        -
        - oArgs.column <YAHOO.widget.Column> - The Column instance. -
        -
        - - -
        - -
        -
        -

        - headCellClickEvent

        -
        - - - - - headCellClickEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a TH cell element is clicked. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The TH element. -
        -
        - - -
        - -
        -
        -

        - headCellDoubleclickEvent

        -
        - - - - - headCellDoubleclickEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a TH cell element is doubleclicked. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The TH element. -
        -
        - - -
        - -
        -
        -

        - headCellMousedownEvent

        -
        - - - - - headCellMousedownEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a TH cell element is mousedown. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The TH element. -
        -
        - - -
        - -
        -
        -

        - headCellMouseoutEvent

        -
        - - - - - headCellMouseoutEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a TH cell element is mouseout. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The TH element. -
        -
        - - -
        - -
        -
        -

        - headCellMouseoverEvent

        -
        - - - - - headCellMouseoverEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a TH cell element is mouseover. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The TH element. -
        -
        - - -
        - -
        -
        -

        - highlightEvent

        -
        - - - - - highlightEvent - - ( - - - oArgs.els - - - ) - - - -
        - Fired when an element is highlighted. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.els <Array> - An array of the highlighted element(s). -
        -
        - - -
        - -
        -
        -

        - paginateEvent

        -
        - - - - - paginateEvent - - ( - ) - - - -
        - Fired when DataTable is paginated. -
        - -
        - - - - -
        - -
        -
        -

        - radioClickEvent

        -
        - - - - - radioClickEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a RADIO element is clicked. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The RADIO element. -
        -
        - - -
        - -
        -
        -

        - recordSetUpdateEvent

        -
        - - - - - recordSetUpdateEvent - - ( - - - oArgs.record - - - , - oArgs.key - - - , - oArgs.newData - - - , - oArgs.oldData - - - ) - - - -
        - Fired when a Record is updated in the RecordSet. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.record <YAHOO.widget.Record> - The Record instance. -
        -
        - oArgs.key <String> - The Record key. -
        -
        - oArgs.newData <Object> - New data. -
        -
        - oArgs.oldData <Object> - New data. -
        -
        - - -
        - -
        -
        -

        - rowAppendEvent

        -
        - - - - - rowAppendEvent - - ( - - - oArgs.rowIds - - - ) - - - -
        - Fired when one or more TR elements are appended. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.rowIds <Array> - The IDs of the appended rows. -
        -
        - - -
        - -
        -
        -

        - rowDeleteEvent

        -
        - - - - - rowDeleteEvent - - ( - - - oArgs.rowIndexes - - - ) - - - -
        - Fired when one or more TR elements are deleted. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.rowIndexes <Array> - The indexes of the deleted rows. -
        -
        - - -
        - -
        -
        -

        - rowSelectEvent

        -
        - - - - - rowSelectEvent - - ( - - - oArgs.el - - - , - oArgs.record - - - ) - - - -
        - Fired when a TR element is selected. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.el <HTMLElement> - The selected TR element. -
        -
        - oArgs.record <YAHOO.widget.Record> - The associated Record instance. -
        -
        - - -
        - -
        -
        -

        - rowUnselectEvent

        -
        - - - - - rowUnselectEvent - - ( - - - oArgs.el - - - , - oArgs.record - - - ) - - - -
        - Fired when a TR element is unselected. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.el <HTMLElement> - The unselected TR element. -
        -
        - oArgs.record <YAHOO.widget.Record> - The associated Record instance. -
        -
        - - -
        - -
        -
        -

        - rowUpdateEvent

        -
        - - - - - rowUpdateEvent - - ( - - - oArgs.rowIds - - - ) - - - -
        - Fired when one or more TR elements are updated. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.rowIds <Array> - The IDs of the updated rows. -
        -
        - - -
        - -
        -
        -

        - selectEvent

        -
        - - - - - selectEvent - - ( - - - oArgs.els - - - ) - - - -
        - Fired when an element is selected. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.els <Array> - An array of the selected element(s). -
        -
        - - -
        - -
        -
        -

        - tableClickEvent

        -
        - - - - - tableClickEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a TABLE element is clicked. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The TABLE element. -
        -
        - - -
        - -
        -
        -

        - tableDoubleclickEvent

        -
        - - - - - tableDoubleclickEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a TABLE element is doubleclicked. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The TABLE element. -
        -
        - - -
        - -
        -
        -

        - tableFocusEvent

        -
        - - - - - tableFocusEvent - - ( - ) - - - -
        - Fired when DataTable instance is focused. -
        - -
        - - - - -
        - -
        -
        -

        - tableInitEvent

        -
        - - - - - tableInitEvent - - ( - ) - - - -
        - Fired when DataTable instance is first initialized. -
        - -
        - - - - -
        - -
        -
        -

        - tableMousedownEvent

        -
        - - - - - tableMousedownEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a TABLE element is mousedown. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The TABLE element. -
        -
        - - -
        - -
        -
        -

        - tableMouseoutEvent

        -
        - - - - - tableMouseoutEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a TABLE element is mouseout. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The TABLE element. -
        -
        - - -
        - -
        -
        -

        - tableMouseoverEvent

        -
        - - - - - tableMouseoverEvent - - ( - - - oArgs.event - - - , - oArgs.target - - - ) - - - -
        - Fired when a TABLE element is mouseover. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.event <HTMLEvent> - The event object. -
        -
        - oArgs.target <HTMLElement> - The TABLE element. -
        -
        - - -
        - -
        -
        -

        - tableRefreshEvent

        -
        - - - - - tableRefreshEvent - - ( - ) - - - -
        - Fired when DataTable view is refreshed. -
        - -
        - - - - -
        - -
        -
        -

        - unhighlightEvent

        -
        - - - - - unhighlightEvent - - ( - - - oArgs.els - - - ) - - - -
        - Fired when an element is unhighlighted. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.els <Array> - An array of the unhighlighted element(s). -
        -
        - - -
        - -
        -
        -

        - unselectEvent

        -
        - - - - - unselectEvent - - ( - - - oArgs.els - - - ) - - - -
        - Fired when an element is unselected. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.els <Array> - An array of the unselected element(s). -
        -
        - - -
        - -
        -
        -
        -
        - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/DataTable.js.html b/www/extras/yui/docs/DataTable.js.html deleted file mode 100644 index 15b109a55..000000000 --- a/www/extras/yui/docs/DataTable.js.html +++ /dev/null @@ -1,4694 +0,0 @@ - - - - API: datatable DataTable.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        DataTable Widget  2.2.2

        -

        - Yahoo! UI Library - > datatable - - > DataTable.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * The DataTable widget provides a progressively enhanced DHTML control for
        - * displaying tabular data across A-grade browsers.
        - *
        - * @module datatable
        - * @requires yahoo, dom, event, datasource
        - * @optional dragdrop
        - * @title DataTable Widget
        - * @beta
        - */
        -
        -/****************************************************************************/
        -/****************************************************************************/
        -/****************************************************************************/
        -
        -/**
        - * DataTable class for the YUI DataTable widget.
        - *
        - * @class DataTable
        - * @uses YAHOO.util.EventProvider
        - * @constructor
        - * @param elContainer {HTMLElement} Container element for the TABLE.
        - * @param oColumnSet {YAHOO.widget.ColumnSet} ColumnSet instance.
        - * @param oDataSource {YAHOO.util.DataSource} DataSource instance.
        - * @param oConfigs {object} (optional) Object literal of configuration values.
        - */
        -YAHOO.widget.DataTable = function(elContainer,oColumnSet,oDataSource,oConfigs) {
        -    // Internal vars
        -    var i, ok;
        -    this._nIndex = YAHOO.widget.DataTable._nCount;
        -    this._sName = "instance" + this._nIndex;
        -    this.id = "yui-dt"+this._nIndex;
        -
        -    // Validate configs
        -    if(oConfigs && (oConfigs.constructor == Object)) {
        -        for(var sConfig in oConfigs) {
        -            this[sConfig] = oConfigs[sConfig];
        -        }
        -    }
        -
        -    // Validate DataSource
        -    if(oDataSource) {
        -        if(oDataSource instanceof YAHOO.util.DataSource) {
        -            this.dataSource = oDataSource;
        -        }
        -        else {
        -            YAHOO.log("Invalid DataSource", "warn", this.toString());
        -        }
        -    }
        -
        -    // Validate ColumnSet
        -    if(oColumnSet && (oColumnSet instanceof YAHOO.widget.ColumnSet)) {
        -        this._oColumnSet = oColumnSet;
        -    }
        -    else {
        -        YAHOO.log("Could not instantiate DataTable due to an invalid ColumnSet", "error", this.toString());
        -        return;
        -    }
        -    
        -    // Create RecordSet
        -    this._oRecordSet = new YAHOO.widget.RecordSet();
        -
        -    // Validate HTML Element
        -    var elTable = null;
        -    elContainer = YAHOO.util.Dom.get(elContainer);
        -    if(elContainer && elContainer.tagName && (elContainer.tagName.toLowerCase() == "div")) {
        -        this._elContainer = elContainer;
        -        // Peek in container child nodes to see if TABLE already exists
        -        if(elContainer.hasChildNodes()) {
        -            var children = elContainer.childNodes;
        -            for(i=0; i<children.length; i++) {
        -                if(children[i].tagName && children[i].tagName.toLowerCase() == "table") {
        -                    elTable = children[i];
        -                    break;
        -                }
        -            }
        -        }
        -
        -        // Progressively enhance an existing table from markup...
        -        // while using the markup as the source of data
        -        if(elTable && !this.dataSource) {
        -            // Fill RecordSet with data parsed out of table
        -            var aRecords = [];
        -
        -            // Iterate through each TBODY
        -            for(i=0; i<elTable.tBodies.length; i++) {
        -                var elBody = elTable.tBodies[i];
        -
        -                // Iterate through each TR
        -                for(var j=0; j<elBody.rows.length; j++) {
        -                    var elRow = elBody.rows[j];
        -                    var oRecord = {};
        -
        -                    // Iterate through each TD
        -                    for(var k=0; k<elRow.cells.length; k++) {
        -
        -                        //var elCell = elRow.cells[l];
        -                        //elCell.id = this.id+"-bdrow"+k+"-cell"+l;
        -                        //TODO: can we parse a column with null key?
        -                        oRecord[oColumnSet.keys[k].key] = oColumnSet.keys[k].parse(elRow.cells[k].innerHTML);
        -                    }
        -                    aRecords.push(oRecord);
        -                }
        -            }
        -            
        -            this._initTable();
        -            
        -            ok = this.doBeforeLoadData(null,aRecords);
        -            if(ok) {
        -                this.populateTable(aRecords);
        -            }
        -            else {
        -                YAHOO.log("The function doBeforeLoadData returned false","error",this);
        -            }
        -        }
        -        // Create markup from scratch using the provided DataSource
        -        else if(this.dataSource) {
        -                this._initTable();
        -
        -                ok = this.doBeforeLoadData(this.initialRequest,aRecords);
        -                if(ok) {
        -                    // Send out for data in an asynchronous request
        -                    oDataSource.sendRequest(this.initialRequest, this.onDataReturnPopulateTable, this);
        -                }
        -                else {
        -                    YAHOO.log("The function doBeforeLoadData returned false","error",this);
        -                }
        -        }
        -        // Else there is no data
        -        else {
        -            this._initTable();
        -            this.showTableMessage();
        -        }
        -    }
        -    // Container element not found in document
        -    else {
        -        YAHOO.log("Could not instantiate DataTable due to an invalid container element", "error", this.toString());
        -        return;
        -    }
        -
        -    // Set up sort
        -    this.subscribe("headCellClickEvent",this.onEventSortColumn);
        -
        -    // Set up context menu
        -    //TODO: does trigger have to exist? can trigger be TBODY rather than rows?
        -    if(this.contextMenu && this.contextMenuOptions) {
        -        this.contextMenu = new YAHOO.widget.ContextMenu(this.id+"-cm", { trigger: this._elBody.rows } );
        -        this.contextMenu.addItem("delete item");
        -        this.contextMenu.render(document.body);
        -    }
        -
        -    // Set up event model
        -    elTable = this._elTable;
        -    elTable.className = YAHOO.widget.DataTable.CLASS_TABLE;
        -    /////////////////////////////////////////////////////////////////////////////
        -    //
        -    // DOM Events
        -    //
        -    /////////////////////////////////////////////////////////////////////////////
        -    //YAHOO.util.Event.addListener(this._elContainer, "focus", this._onFocus, this);
        -    YAHOO.util.Event.addListener(elTable, "click", this._onClick, this);
        -    YAHOO.util.Event.addListener(elTable, "dblclick", this._onDoubleclick, this);
        -    YAHOO.util.Event.addListener(elTable, "mouseout", this._onMouseout, this);
        -    YAHOO.util.Event.addListener(elTable, "mouseover", this._onMouseover, this);
        -    YAHOO.util.Event.addListener(elTable, "mousedown", this._onMousedown, this);
        -    //YAHOO.util.Event.addListener(elTable, "mouseup", this._onMouseup, this);
        -    //YAHOO.util.Event.addListener(elTable, "mousemove", this._onMousemove, this);
        -    YAHOO.util.Event.addListener(elTable, "keydown", this._onKeydown, this);
        -    YAHOO.util.Event.addListener(elTable, "keypress", this._onKeypress, this);
        -    YAHOO.util.Event.addListener(document, "keydown", this._onDocumentKeydown, this);
        -    YAHOO.util.Event.addListener(document, "click", this._onDocumentClick, this);
        -    YAHOO.util.Event.addListener(elTable, "keyup", this._onKeyup, this);
        -    //YAHOO.util.Event.addListener(elTable, "focus", this._onFocus, this);
        -    YAHOO.util.Event.addListener(elTable, "blur", this._onBlur, this);
        -
        -    /////////////////////////////////////////////////////////////////////////////
        -    //
        -    // Custom Events
        -    //
        -    /////////////////////////////////////////////////////////////////////////////
        -
        -    /**
        -     * Fired when a mouseover occurs on a TD element.
        -     *
        -     * @event cellMouseoverEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The TD element.
        -     */
        -    this.createEvent("cellMouseoverEvent");
        -
        -    /**
        -     * Fired when a mouseout occurs on a TD element.
        -     *
        -     * @event cellMouseoutEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The TD element.
        -     */
        -    this.createEvent("cellMouseoutEvent");
        -
        -    /**
        -     * Fired when a TH cell element is mouseover.
        -     *
        -     * @event headCellMouseoverEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The TH element.
        -     *
        -     */
        -    this.createEvent("headCellMouseoverEvent");
        -
        -    /**
        -     * Fired when a TH cell element is mouseout.
        -     *
        -     * @event headCellMouseoutEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The TH element.
        -     *
        -     */
        -    this.createEvent("headCellMouseoutEvent");
        -
        -    /**
        -     * Fired when a TABLE element is mouseover.
        -     *
        -     * @event tableMouseoverEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The TABLE element.
        -     *
        -     */
        -    this.createEvent("tableMouseoverEvent");
        -
        -    /**
        -     * Fired when a TABLE element is mouseout.
        -     *
        -     * @event tableMouseoutEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The TABLE element.
        -     *
        -     */
        -    this.createEvent("tableMouseoutEvent");
        -
        -    /**
        -     * Fired when a mousedown occurs on a TD element.
        -     *
        -     * @event cellMousedownEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The TD element.
        -     */
        -    this.createEvent("cellMousedownEvent");
        -
        -    /**
        -     * Fired when a TH cell element is mousedown.
        -     *
        -     * @event headCellMousedownEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The TH element.
        -     */
        -    this.createEvent("headCellMousedownEvent");
        -
        -    /**
        -     * Fired when a TABLE element is mousedown.
        -     *
        -     * @event tableMousedownEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The TABLE element.
        -     *
        -     */
        -    this.createEvent("tableMousedownEvent");
        -
        -    /**
        -     * Fired when a CHECKBOX element is clicked.
        -     *
        -     * @event checkboxClickEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The CHECKBOX element.
        -     */
        -    this.checkboxClickEvent = this.createEvent("checkboxClickEvent");
        -    //this.checkboxClickEvent.subscribeEvent.subscribe(this._registerEvent,{type:"checkboxClickEvent"},this);
        -
        -    /**
        -     * Fired when a RADIO element is clicked.
        -     *
        -     * @event radioClickEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The RADIO element.
        -     */
        -    this.createEvent("radioClickEvent");
        -    
        -    /**
        -     * Fired when a TD element is clicked.
        -     *
        -     * @event cellClickEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The TD element.
        -     */
        -    this.createEvent("cellClickEvent");
        -
        -    /**
        -     * Fired when a TH cell element is clicked.
        -     *
        -     * @event headCellClickEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The TH element.
        -     */
        -    this.createEvent("headCellClickEvent");
        -
        -    /**
        -     * Fired when a TABLE element is clicked.
        -     *
        -     * @event tableClickEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The TABLE element.
        -     *
        -     */
        -    this.createEvent("tableClickEvent");
        -
        -    /**
        -     * Fired when a TD element is doubleclicked.
        -     *
        -     * @event cellDoubleclickEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The TD element.
        -     */
        -    this.createEvent("cellDoubleclickEvent");
        -
        -    /**
        -     * Fired when a TH cell element is doubleclicked.
        -     *
        -     * @event headCellDoubleclickEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The TH element.
        -     */
        -    this.createEvent("headCellDoubleclickEvent");
        -
        -    /**
        -     * Fired when a TABLE element is doubleclicked.
        -     *
        -     * @event tableDoubleclickEvent
        -     * @param oArgs.event {HTMLEvent} The event object.
        -     * @param oArgs.target {HTMLElement} The TABLE element.
        -     *
        -     */
        -    this.createEvent("tableDoubleclickEvent");
        -
        -    /**
        -     * Fired when a column is sorted.
        -     *
        -     * @event columnSortEvent
        -     * @param oArgs.column {YAHOO.widget.Column} The Column instance.
        -     * @param oArgs.dir {String} Sort direction "asc" or "desc".
        -     */
        -    this.createEvent("columnSortEvent");
        -
        -    /**
        -     * Fired when an editor is activated.
        -     *
        -     * @event editorShowEvent
        -     * @param oArgs.target {HTMLElement} The TD element.
        -     * @param oArgs.column {YAHOO.widget.Column} The Column instance.
        -     */
        -    this.createEvent("editorShowEvent");
        -
        -
        -    /**
        -     * Fired when a cell is edited.
        -     *
        -     * @event cellEditEvent
        -     * @param oArgs.target {HTMLElement} The TD element.
        -     * @param oArgs.newData {Object} New data value.
        -     * @param oArgs.oldData {Object} Old data value.
        -     */
        -    this.createEvent("cellEditEvent");
        -
        -    /**
        -     * Fired when a column is resized.
        -     *
        -     * @event columnResizeEvent
        -     * @param oArgs.target {HTMLElement} The TH element.
        -     */
        -    this.createEvent("columnResizeEvent");
        -
        -    /**
        -     * Fired when DataTable instance is first initialized.
        -     *
        -     * @event tableInitEvent
        -     */
        -    this.createEvent("tableInitEvent");
        -
        -    /**
        -     * Fired when DataTable view is refreshed.
        -     *
        -     * @event tableRefreshEvent
        -     */
        -    this.createEvent("tableRefreshEvent");
        -
        -    /**
        -     * Fired when DataTable instance is focused.
        -     *
        -     * @event tableFocusEvent
        -     */
        -    this.createEvent("tableFocusEvent");
        -
        -    /**
        -     * Fired when data is returned from DataSource.
        -     *
        -     * @event dataReturnEvent
        -     * @param oArgs.request {String} Original request.
        -     * @param oArgs.response {Object} Response object.
        -     */
        -    this.createEvent("dataReturnEvent");
        -
        -    /**
        -     * Fired when DataTable is paginated.
        -     *
        -     * @event paginateEvent
        -     */
        -    this.createEvent("paginateEvent");
        -
        -    /**
        -     * Fired when a TD element is formatted.
        -     *
        -     * @event cellFormatEvent
        -     * @param oArgs.el {HTMLElement} Reference to the TD element.
        -     */
        -    this.createEvent("cellFormatEvent");
        -
        -    /**
        -     * Fired when an element is selected.
        -     *
        -     * @event selectEvent
        -     * @param oArgs.els {Array} An array of the selected element(s).
        -     */
        -    this.createEvent("selectEvent");
        -
        -    /**
        -     * Fired when an element is unselected.
        -     *
        -     * @event unselectEvent
        -     * @param oArgs.els {Array} An array of the unselected element(s).
        -     */
        -    this.createEvent("unselectEvent");
        -
        -    /**
        -     * Fired when an element is highlighted.
        -     *
        -     * @event highlightEvent
        -     * @param oArgs.els {Array} An array of the highlighted element(s).
        -     */
        -    this.createEvent("highlightEvent");
        -
        -    /**
        -     * Fired when an element is unhighlighted.
        -     *
        -     * @event unhighlightEvent
        -     * @param oArgs.els {Array} An array of the unhighlighted element(s).
        -     */
        -    this.createEvent("unhighlightEvent");
        -    
        -    /**
        -     * Fired when a TR element is selected.
        -     *
        -     * @event rowSelectEvent
        -     * @param oArgs.el {HTMLElement} The selected TR element.
        -     * @param oArgs.record {YAHOO.widget.Record} The associated Record instance.
        -     */
        -    this.createEvent("rowSelectEvent");
        -
        -    /**
        -     * Fired when a TR element is unselected.
        -     *
        -     * @event rowUnselectEvent
        -     * @param oArgs.el {HTMLElement} The unselected TR element.
        -     * @param oArgs.record {YAHOO.widget.Record} The associated Record instance.
        -     */
        -    this.createEvent("rowUnselectEvent");
        -
        -    /**
        -     * Fired when one or more TR elements are deleted.
        -     *
        -     * @event rowDeleteEvent
        -     * @param oArgs.rowIndexes {Array} The indexes of the deleted rows.
        -     */
        -    this.createEvent("rowDeleteEvent");
        -    this.subscribe("rowDeleteEvent", this._onRowDelete);
        -    
        -    /**
        -     * Fired when one or more TR elements are appended.
        -     *
        -     * @event rowAppendEvent
        -     * @param oArgs.rowIds {Array} The IDs of the appended rows.
        -     */
        -    this.createEvent("rowAppendEvent");
        -
        -    /**
        -     * Fired when one or more TR elements are updated.
        -     *
        -     * @event rowUpdateEvent
        -     * @param oArgs.rowIds {Array} The IDs of the updated rows.
        -     */
        -    this.createEvent("rowUpdateEvent");
        -
        -    /**
        -     * Fired when a Record is updated in the RecordSet.
        -     *
        -     * @event recordSetUpdateEvent
        -     * @param oArgs.record {YAHOO.widget.Record} The Record instance.
        -     * @param oArgs.key {String} The Record key.
        -     * @param oArgs.newData {Object} New data.
        -     * @param oArgs.oldData {Object} New data.
        -     */
        -    this.createEvent("recordSetUpdateEvent");
        -    this._oRecordSet.subscribe("recordUpdateEvent", this._onRecordUpdate, this, true);
        -    
        -    
        -    YAHOO.widget.DataTable._nCount++;
        -    YAHOO.log("DataTable initialized", "info", this.toString());
        -    this.fireEvent("tableInitEvent");
        -};
        -
        -if(YAHOO.util.EventProvider) {
        -    YAHOO.augment(YAHOO.widget.DataTable, YAHOO.util.EventProvider);
        -}
        -else {
        -    YAHOO.log("Missing dependency: YAHOO.util.EventProvider","error",this.toString());
        -}
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public constants
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Class name assigned to TABLE element.
        - *
        - * @property CLASS_TABLE
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt"
        - */
        -YAHOO.widget.DataTable.CLASS_TABLE = "yui-dt-table";
        -
        -/**
        - * Class name assigned to TBODY element that holds data rows.
        - *
        - * @property CLASS_BODY
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-body"
        - */
        -YAHOO.widget.DataTable.CLASS_BODY = "yui-dt-body";
        -
        -/**
        - * Class name assigned to container element within THEAD.
        - *
        - * @property CLASS_HEADCONTAINER
        - * @type String
        - * @static
        - * @final
        - */
        -YAHOO.widget.DataTable.CLASS_HEADCONTAINER = "yui-dt-headcontainer";
        -
        -/**
        - * Class name assigned to resizer handle element within THEAD.
        - *
        - * @property CLASS_HEADRESIZER
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-headresizer"
        - */
        -YAHOO.widget.DataTable.CLASS_HEADRESIZER = "yui-dt-headresizer";
        -
        -/**
        - * Class name assigned to text displayed within THEAD.
        - *
        - * @property CLASS_HEADTEXT
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-headtext"
        - */
        -YAHOO.widget.DataTable.CLASS_HEADTEXT = "yui-dt-headtext";
        -
        -/**
        - * Class name assigned to FIRST elements.
        - *
        - * @property CLASS_FIRST
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-first"
        - */
        -YAHOO.widget.DataTable.CLASS_FIRST = "yui-dt-first";
        -
        -/**
        - * Class name assigned to LAST elements.
        - *
        - * @property CLASS_LAST
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-last"
        - */
        -YAHOO.widget.DataTable.CLASS_LAST = "yui-dt-last";
        -
        -/**
        - * Class name assigned to even TR elements.
        - *
        - * @property CLASS_EVEN
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-even"
        - */
        -YAHOO.widget.DataTable.CLASS_EVEN = "yui-dt-even";
        -
        -/**
        - * Class name assigned to odd TR elements.
        - *
        - * @property CLASS_ODD
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-odd"
        - */
        -YAHOO.widget.DataTable.CLASS_ODD = "yui-dt-odd";
        -
        -/**
        - * Class name assigned to empty elements.
        - *
        - * @property CLASS_EMPTY
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-empty"
        - */
        -YAHOO.widget.DataTable.CLASS_EMPTY = "yui-dt-empty";
        -
        -/**
        - * Class name assigned to loading message.
        - *
        - * @property CLASS_LOADING
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-loading"
        - */
        -YAHOO.widget.DataTable.CLASS_LOADING = "yui-dt-loading";
        -
        -/**
        - * Class name assigned to elements with error messaging.
        - *
        - * @property CLASS_ERROR
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-error"
        - */
        -YAHOO.widget.DataTable.CLASS_ERROR = "yui-dt-error";
        -
        -/**
        - * Class name assigned to selected elements.
        - *
        - * @property CLASS_SELECTED
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-selected"
        - */
        -YAHOO.widget.DataTable.CLASS_SELECTED = "yui-dt-selected";
        -
        -/**
        - * Class name assigned to highlighted element.
        - *
        - * @property CLASS_HIGHLIGHT
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-highlight"
        - */
        -YAHOO.widget.DataTable.CLASS_HIGHLIGHT = "yui-dt-highlight";
        -
        -/**
        - * Class name assigned to container of a scrollable DataTable.
        - *
        - * @property CLASS_SCROLLABLE
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-scrollable"
        - */
        -YAHOO.widget.DataTable.CLASS_SCROLLABLE = "yui-dt-scrollable";
        -
        -/**
        - * Class name assigned to scrolling TBODY element of a scrollable DataTable.
        - *
        - * @property CLASS_SCROLLBODY
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-scrollbody"
        - */
        -YAHOO.widget.DataTable.CLASS_SCROLLBODY = "yui-dt-scrollbody";
        -
        -/**
        - * Class name assigned to column headers of sortable Columns.
        - *
        - * @property CLASS_SORTABLE
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-sortable"
        - */
        -YAHOO.widget.DataTable.CLASS_SORTABLE = "yui-dt-sortable";
        -
        -/**
        - * Class name assigned to column headers when sorted in ascending order.
        - *
        - * @property CLASS_SORTEDBYASC
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-sortedbyasc"
        - */
        -YAHOO.widget.DataTable.CLASS_SORTEDBYASC = "yui-dt-sortedbyasc";
        -
        -/**
        - * Class name assigned to column headers when sorted in descending order.
        - *
        - * @property CLASS_SORTEDBYDESC
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-sortedbydesc"
        - */
        -YAHOO.widget.DataTable.CLASS_SORTEDBYDESC = "yui-dt-sortedbydesc";
        -
        -/**
        - * Class name assigned to the paginator container element.
        - *
        - * @property CLASS_PAGINATOR
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-paginator"
        - */
        -YAHOO.widget.DataTable.CLASS_PAGINATOR = "yui-dt-paginator";
        -
        -/**
        - * Class name assigned to the pagination link "&lt;&lt;".
        - *
        - * @property CLASS_FIRSTLINK
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-firstlink"
        - */
        -YAHOO.widget.DataTable.CLASS_FIRSTLINK = "yui-dt-firstlink";
        -
        -/**
        - * Class name assigned to the pagination link "&lt;&lt;" when it is disabled.
        - *
        - * @property CLASS_FIRSTPAGE
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-firstpage"
        - */
        -YAHOO.widget.DataTable.CLASS_FIRSTPAGE = "yui-dt-firstpage";
        -
        -/**
        - * Class name assigned to the pagination link "&gt;&gt;".
        - *
        - * @property CLASS_LASTLINK
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-lastlink"
        - */
        -YAHOO.widget.DataTable.CLASS_LASTLINK = "yui-dt-lastlink";
        -
        -/**
        - * Class name assigned to the pagination link "&gt;&gt;" when it is disabled.
        - *
        - * @property CLASS_LASTPAGE
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-lastpage"
        - */
        -YAHOO.widget.DataTable.CLASS_LASTPAGE = "yui-dt-lastpage";
        -
        -/**
        - * Class name assigned to the pagination link "&lt;".
        - *
        - * @property CLASS_PREVLINK
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-prevlink"
        - */
        -YAHOO.widget.DataTable.CLASS_PREVLINK = "yui-dt-prevlink";
        -
        -/**
        - * Class name assigned to the pagination link "&lt;" when it is disabled.
        - *
        - * @property CLASS_PREVPAGE
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-prevpage"
        - */
        -YAHOO.widget.DataTable.CLASS_PREVPAGE = "yui-dt-prevpage";
        -
        -/**
        - * Class name assigned to the pagination link "&gt;".
        - *
        - * @property CLASS_NEXTLINK
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-nextlink"
        - */
        -YAHOO.widget.DataTable.CLASS_NEXTLINK = "yui-dt-nextlink";
        -
        -/**
        - * Class name assigned to the pagination link "&gt;" when it is disabled.
        - *
        - * @property CLASS_NEXTPAGE
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-nextpage"
        - */
        -YAHOO.widget.DataTable.CLASS_NEXTPAGE = "yui-dt-nextpage";
        -
        -
        -/**
        - * Class name assigned to pagination links to specific page numbers.
        - *
        - * @property CLASS_PAGELINK
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-pagelink"
        - */
        -YAHOO.widget.DataTable.CLASS_PAGELINK = "yui-dt-pagelink";
        -
        -/**
        - * Class name assigned to pagination links for specific page numbers that are disabled.
        - *
        - * @property CLASS_CURRENTPAGE
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-currentpage"
        - */
        -YAHOO.widget.DataTable.CLASS_CURRENTPAGE = "yui-dt-currentpage";
        -
        -/**
        - * Class name assigned to the pagination SELECT element.
        - *
        - * @property CLASS_PAGESELECT
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-pageselect"
        - */
        -YAHOO.widget.DataTable.CLASS_PAGESELECT = "yui-dt-pageselect";
        -
        -/**
        - * Class name assigned to the pagination links container element.
        - *
        - * @property CLASS_PAGELINKS
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-pagelinks"
        - */
        -YAHOO.widget.DataTable.CLASS_PAGELINKS = "yui-dt-pagelinks";
        -
        -/**
        - * Class name assigned to editable TD elements.
        - *
        - * @property CLASS_EDITABLE
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-editable"
        - */
        -YAHOO.widget.DataTable.CLASS_EDITABLE = "yui-dt-editable";
        -
        -/**
        - * Class name assigned to editor DIV elements.
        - *
        - * @property CLASS_EDITOR
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-editor"
        - */
        -YAHOO.widget.DataTable.CLASS_EDITOR = "yui-dt-editor";
        -
        -/**
        - * Class name assigned to TD elements of type "checkbox".
        - *
        - * @property CLASS_CHECKBOX
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-checkbox"
        - */
        -YAHOO.widget.DataTable.CLASS_CHECKBOX = "yui-dt-checkbox";
        -
        -/**
        - * Class name assigned to TD elements of type "currency".
        - *
        - * @property CLASS_CURRENCY
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-currency"
        - */
        -YAHOO.widget.DataTable.CLASS_CURRENCY = "yui-dt-currency";
        -
        -/**
        - * Class name assigned to TD elements of type "date".
        - *
        - * @property CLASS_DATE
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-date"
        - */
        -YAHOO.widget.DataTable.CLASS_DATE = "yui-dt-date";
        -
        -/**
        - * Class name assigned to TD elements of type "email".
        - *
        - * @property CLASS_EMAIL
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-email"
        - */
        -YAHOO.widget.DataTable.CLASS_EMAIL = "yui-dt-email";
        -
        -/**
        - * Class name assigned to TD elements of type "link".
        - *
        - * @property CLASS_LINK
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-link"
        - */
        -YAHOO.widget.DataTable.CLASS_LINK = "yui-dt-link";
        -
        -/**
        - * Class name assigned to TD elements of type "number".
        - *
        - * @property CLASS_NUMBER
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-number"
        - */
        -YAHOO.widget.DataTable.CLASS_NUMBER = "yui-dt-number";
        -
        -/**
        - * Class name assigned to TD elements of type "string".
        - *
        - * @property CLASS_STRING
        - * @type String
        - * @static
        - * @final
        - * @default "yui-dt-string"
        - */
        -YAHOO.widget.DataTable.CLASS_STRING = "yui-dt-string";
        -
        -/**
        - * Message to display if DataTable has no data.
        - *
        - * @property MSG_EMPTY
        - * @type String
        - * @static
        - * @final
        - * @default "No records found."
        - */
        -YAHOO.widget.DataTable.MSG_EMPTY = "No records found.";
        -
        -/**
        - * Message to display while DataTable is loading data.
        - *
        - * @property MSG_LOADING
        - * @type String
        - * @static
        - * @final
        - * @default "Loading data..."
        - */
        -YAHOO.widget.DataTable.MSG_LOADING = "Loading data...";
        -
        -/**
        - * Message to display while DataTable has data error.
        - *
        - * @property MSG_ERROR
        - * @type String
        - * @static
        - * @final
        - * @default "Data error."
        - */
        -YAHOO.widget.DataTable.MSG_ERROR = "Data error.";
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Internal class variable to index multiple DataTable instances.
        - *
        - * @property _nCount
        - * @type Number
        - * @private
        - * @static
        - */
        -YAHOO.widget.DataTable._nCount = 0;
        -
        -/**
        - * Instance index.
        - *
        - * @property _nIndex
        - * @type Number
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._nIndex = null;
        -
        -/**
        - * Unique instance name.
        - *
        - * @property _sName
        - * @type String
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._sName = null;
        -
        -//TODO: convert these to public members
        -
        -/**
        - * Container element reference. Is null unless the TABLE is built from scratch into the
        - * provided container.
        - *
        - * @property _elContainer
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._elContainer = null;
        -
        -/**
        - * TABLE element reference.
        - *
        - * @property _elTable
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._elTable = null;
        -
        -/**
        - * TBODY element reference.
        - *
        - * @property _elBody
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._elBody = null;
        -
        -/**
        - * First TR element reference pointer.
        - *
        - * @property _elFirstRow
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._elFirstRow = null;
        -
        -/**
        - * Last TR element reference pointer.
        - *
        - * @property _elLastRow
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._elLastRow = null;
        -
        -/**
        - * ColumnSet instance.
        - *
        - * @property _oColumnSet
        - * @type YAHOO.widget.ColumnSet
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._oColumnSet = null;
        -
        -/**
        - * RecordSet instance.
        - *
        - * @property _oRecordSet
        - * @type YAHOO.widget.RecordSet
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._oRecordSet = null;
        -
        -/**
        - * Id of anchor row for multiple selections.
        - *
        - * @property _selectRowAnchorId
        - * @type String
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._selectRowAnchorId = null;
        -
        -/**
        - * Array of Records that are in the selected state.
        - *
        - * @property _aSelectedRecords
        - * @type YAHOO.widget.Record[]
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._aSelectedRecords = null;
        -
        -/**
        - * Internal variable to track whether widget has focus.
        - *
        - * @property _bFocused
        - * @type Boolean
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._bFocused = false;
        -
        -/**
        - * Internal object literal to track built-in paginator values.
        - *
        - * @property _paginator
        - * @type Object[]
        - * @private
        - */
        -/**
        - * Internal variable to track paginator dropdown options.
        - *
        - * @property _paginator.dropdownOptions
        - * @type Number[] | Object[]
        - * @private
        - */
        -/**
        - * Internal variable to track paginator page links.
        - *
        - * @property _paginator.pageLinks
        - * @type Number
        - * @private
        - */
        -/**
        - * Tracks total number of pages, calculated on the fly.
        - *
        - * @property _paginator.totalPages
        - * @type Number
        - * @private
        - */
        -/**
        - * Tracks current page.
        - *
        - * @property _paginator.currentPage
        - * @type Number
        - * @private
        - */
        -/**
        - * Tracks rows per page.
        - *
        - * @property _paginator.rowsPerPage
        - * @type Number
        - * @private
        - */
        -/**
        - * Array of pagination container elements.
        - *
        - * @property _paginator.containers
        - * @type HTMLElement
        - * @private
        - */
        -/**
        - * Array of pagination SELECT elements.
        - *
        - * @property _paginator.dropdowns
        - * @type HTMLElement
        - * @private
        - */
        -/**
        - * Array of pagination link container elements.
        - *
        - * @property _paginator.links
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._paginator = null;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -// INIT FUNCTIONS
        -
        -
        -
        -
        -
        -/**
        - * Creates HTML markup for TABLE, THEAD, TBODY.
        - *
        - * @method _initTable
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._initTable = function() {
        -    // Clear the container
        -    this._elContainer.innerHTML = "";
        -
        -    // Set up scrolling
        -    if(this.scrollable) {
        -        //TODO: conf height
        -        YAHOO.util.Dom.addClass(this._elContainer,YAHOO.widget.DataTable.CLASS_SCROLLABLE);
        -    }
        -
        -    // Create TABLE
        -    this._elTable = this._elContainer.appendChild(document.createElement("table"));
        -    var elTable = this._elTable;
        -    elTable.tabIndex = 0;
        -    elTable.id = "yui-dt-table"+this._nIndex;
        -
        -    // Create SUMMARY, if applicable
        -    if(this.summary) {
        -        elTable.summary = this.summary;
        -    }
        -
        -    // Create CAPTION, if applicable
        -    if(this.caption) {
        -        this._elCaption = elTable.appendChild(document.createElement("caption"));
        -        this._elCaption.innerHTML = this.caption;
        -    }
        -
        -    // Create THEAD
        -    this._initHead(elTable, this._oColumnSet);
        -
        -
        -    // Create TBODY for messages
        -    var elMsgBody = document.createElement("tbody");
        -    elMsgBody.tabIndex = -1;
        -    this._elMsgRow = elMsgBody.appendChild(document.createElement("tr"));
        -    var elMsgRow = this._elMsgRow;
        -    var elMsgCell = elMsgRow.appendChild(document.createElement("td"));
        -    elMsgCell.colSpan = this._oColumnSet.keys.length;
        -    this._elMsgCell = elMsgCell;
        -    this._elMsgBody = elTable.appendChild(elMsgBody);
        -    this.showTableMessage(YAHOO.widget.DataTable.MSG_LOADING, YAHOO.widget.DataTable.CLASS_LOADING);
        -
        -    // Create TBODY for data
        -    this._elBody = elTable.appendChild(document.createElement("tbody"));
        -    this._elBody.tabIndex = -1;
        -    YAHOO.util.Dom.addClass(this._elBody,YAHOO.widget.DataTable.CLASS_BODY);
        -    if(this.scrollable) {
        -        YAHOO.util.Dom.addClass(this._elBody,YAHOO.widget.DataTable.CLASS_SCROLLBODY);
        -    }
        -};
        -
        -/**
        - * Populates THEAD element with TH cells as defined by ColumnSet.
        - *
        - * @method _initHead
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._initHead = function() {
        -    var i,oColumn;
        -    
        -    // Create THEAD
        -    var elHead = document.createElement("thead");
        -    elHead.tabIndex = -1;
        -
        -    // Iterate through each row of Column headers...
        -    var colTree = this._oColumnSet.tree;
        -    for(i=0; i<colTree.length; i++) {
        -        var elHeadRow = elHead.appendChild(document.createElement("tr"));
        -        elHeadRow.id = this.id+"-hdrow"+i;
        -
        -        // ...and create THEAD cells
        -        for(var j=0; j<colTree[i].length; j++) {
        -            oColumn = colTree[i][j];
        -            var elHeadCell = elHeadRow.appendChild(document.createElement("th"));
        -            elHeadCell.id = oColumn.getId();
        -            this._initHeadCell(elHeadCell,oColumn,i,j);
        -        }
        -    }
        -
        -    this._elHead = this._elTable.appendChild(elHead);
        -    
        -    // Add Resizer only after DOM has been updated
        -    for(i=0; i<this._oColumnSet.keys.length; i++) {
        -        oColumn = this._oColumnSet.keys[i];
        -        if(oColumn.resizeable && YAHOO.util.DD) {
        -            //TODO: deal with fixed width tables
        -            // Skip the last column for fixed-width tables
        -            if(!this.fixedWidth ||
        -                    (this.fixedWidth &&
        -                    (oColumn.getIndex() != this._oColumnSet.keys.length-1)
        -                    )
        -            ) {
        -                // TODO: better way to get elHeadContainer
        -                var elHeadContainer = (YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.DataTable.CLASS_HEADCONTAINER,"div",YAHOO.util.Dom.get(oColumn.getId())))[0];
        -                var elHeadResizer = elHeadContainer.appendChild(document.createElement("span"));
        -                elHeadResizer.id = oColumn.getId() + "-resizer";
        -                YAHOO.util.Dom.addClass(elHeadResizer,YAHOO.widget.DataTable.CLASS_HEADRESIZER);
        -                oColumn.ddResizer = new YAHOO.util.WidthResizer(
        -                        this, oColumn.getId(), elHeadResizer.id, elHeadResizer.id);
        -                var cancelClick = function(e) {
        -                    YAHOO.util.Event.stopPropagation(e);
        -                };
        -                YAHOO.util.Event.addListener(elHeadResizer,"click",cancelClick);
        -            }
        -            if(this.fixedWidth) {
        -                //elHeadContainer.style.overflow = "hidden";
        -                // TODO: better way to get elHeadText
        -                var elHeadText = (YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.DataTable.CLASS_HEADTEXT,"span",YAHOO.util.Dom.get(oColumn.getId())))[0];
        -                elHeadText.style.overflow = "hidden";
        -            }
        -        }
        -    }
        -
        -    YAHOO.log("THEAD with " + this._oColumnSet.keys.length + " columns created","info",this.toString());
        -};
        -
        -/**
        - * Populates TH cell as defined by Column.
        - *
        - * @method _initHeadCell
        - * @param elHeadCell {HTMLElement} TH cell element reference.
        - * @param oColumn {YAHOO.widget.Column} Column object.
        - * @param row {number} Row index.
        - * @param col {number} Column index.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._initHeadCell = function(elHeadCell,oColumn,row,col) {
        -    // Clear out the cell of prior content
        -    // TODO: purgeListeners and other validation-related things
        -    var index = this._nIndex;
        -    elHeadCell.columnIndex = oColumn.getIndex();
        -    if(oColumn.abbr) {
        -        elHeadCell.abbr = oColumn.abbr;
        -    }
        -    if(oColumn.width) {
        -        elHeadCell.style.width = oColumn.width;
        -    }
        -    if(oColumn.className) {
        -        YAHOO.util.Dom.addClass(elHeadCell,oColumn.className);
        -    }
        -    // Apply CSS for sorted tables
        -    if(this.sortedBy && this.sortedBy.colKey) {
        -        if(this.sortedBy.colKey == oColumn.key) {
        -            var sortClass = (this.sortedBy.dir && (this.sortedBy.dir != "asc")) ?
        -                    YAHOO.widget.DataTable.CLASS_SORTEDBYDESC :
        -                    YAHOO.widget.DataTable.CLASS_SORTEDBYASC;
        -            YAHOO.util.Dom.addClass(elHeadCell,sortClass);
        -            this.sortedBy._id = elHeadCell.id;
        -        }
        -    }
        -
        -    elHeadCell.innerHTML = "";
        -    elHeadCell.rowSpan = oColumn.getRowSpan();
        -    elHeadCell.colSpan = oColumn.getColSpan();
        -
        -    var elHeadContainer = elHeadCell.appendChild(document.createElement("div"));
        -    elHeadContainer.id = this.id+"-hdrow"+row+"-container"+col;
        -    YAHOO.util.Dom.addClass(elHeadContainer,YAHOO.widget.DataTable.CLASS_HEADCONTAINER);
        -    var elHeadContent = elHeadContainer.appendChild(document.createElement("span"));
        -    elHeadContent.id = this.id+"-hdrow"+row+"-text"+col;
        -    YAHOO.util.Dom.addClass(elHeadContent,YAHOO.widget.DataTable.CLASS_HEADTEXT);
        -
        -    var contentText = oColumn.text || oColumn.key || "";
        -    if(oColumn.sortable) {
        -        YAHOO.util.Dom.addClass(elHeadContent,YAHOO.widget.DataTable.CLASS_SORTABLE);
        -        //TODO: Make hash configurable to be a server link
        -        //TODO: Make title configurable
        -        //TODO: Separate contentText from an accessibility link that says
        -        // Click to sort ascending and push it offscreen
        -        var sortLink = "?key=" + oColumn.key;
        -        elHeadContent.innerHTML = "<a href=\"" + sortLink + "\" title=\"Click to sort\" class=\"" + YAHOO.widget.DataTable.CLASS_SORTABLE + "\">" + contentText + "</a>";
        -         //elHeadContent.innerHTML = contentText;
        -
        -    }
        -    else {
        -        elHeadContent.innerHTML = contentText;
        -    }
        -};
        -
        -/**
        - * If pagination is enabled, initializes paginator container elements and sets
        - * internal tracking variables.
        - *
        - * @method _initPaginator
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._initPaginator = function() {
        -    var i,j;
        -
        -    // Set up default values
        -    var paginator = {
        -        containers:[], // UI container elements
        -        rowsPerPage:500, // 500 rows
        -        currentPage:1,  // page one
        -        pageLinks:0,    // show all links
        -        pageLinksStart:1, // first link is page 1
        -        dropdownOptions:null, // no dropdown
        -        links: [], // links elements
        -        dropdowns: [] //dropdown elements
        -    };
        -    var containers = paginator.containers;
        -
        -    // Pagination configuration options
        -    if(this.paginatorOptions) {
        -        // Validate container values
        -        if(YAHOO.util.Lang.isArray(this.paginatorOptions.containers)) {
        -            for(i=0; i<containers.length; i++) {
        -                if(YAHOO.util.Dom.inDocument(containers[i])) {
        -                    containers.push(containers[i]);
        -                }
        -            }
        -        }
        -
        -        // Validate rowsPerPage value
        -        if(YAHOO.util.Lang.isNumber(this.paginatorOptions.rowsPerPage)) {
        -            paginator.rowsPerPage = this.paginatorOptions.rowsPerPage;
        -        }
        -
        -        // Validate currentPage value
        -        if(YAHOO.util.Lang.isNumber(this.paginatorOptions.currentPage)) {
        -            paginator.currentPage = this.paginatorOptions.currentPage;
        -        }
        -
        -        // Validate pageLinks value
        -        if(YAHOO.util.Lang.isNumber(this.paginatorOptions.pageLinks)) {
        -            paginator.pageLinks = this.paginatorOptions.pageLinks;
        -        }
        -
        -        // Validate pageLinksStart value
        -        if(YAHOO.util.Lang.isNumber(this.paginatorOptions.pageLinksStart)) {
        -            paginator.pageLinksStart = this.paginatorOptions.pageLinksStart;
        -        }
        -
        -        // Validate dropdownOptions value
        -        if(YAHOO.util.Lang.isArray(this.paginatorOptions.dropdownOptions)) {
        -            paginator.dropdownOptions = this.paginatorOptions.dropdownOptions;
        -        }
        -    }
        -
        -    // No containers found, create from scratch
        -    if(containers.length === 0) {
        -        // One before TABLE
        -        var pag0 = document.createElement("span");
        -        pag0.id = "yui-dt-pagcontainer0";
        -        pag0.className = YAHOO.widget.DataTable.CLASS_PAGINATOR;
        -        pag0 = this._elContainer.insertBefore(pag0, this._elTable);
        -
        -        // One after TABLE
        -        var pag1 = document.createElement("span");
        -        pag1.id = "yui-dt-pagcontainer1";
        -        pag1.className = YAHOO.widget.DataTable.CLASS_PAGINATOR;
        -        pag1 = this._elContainer.insertBefore(pag1, this._elTable.nextSibling);
        -
        -        // Add to tracker
        -        containers = [pag0, pag1];
        -    }
        -
        -    // Page links are enabled
        -    if(paginator.pageLinks > -1) {
        -        for(i=0; i<containers.length; i++) {
        -            // Create one page links container per paginator
        -            var linkEl = document.createElement("span");
        -            linkEl.id = "yui-dt-pagselect"+i;
        -            linkEl.className = YAHOO.widget.DataTable.CLASS_PAGELINKS;
        -            linkEl = containers[i].appendChild(linkEl);
        -
        -            // Add event listener
        -            YAHOO.util.Event.addListener(linkEl,"click",this._onPagerClick,this);
        -
        -             // Add to tracker
        -            paginator.links.push(linkEl);
        -       }
        -    }
        -
        -    // Dropdown enabled
        -    if(paginator.dropdownOptions) {
        -        // Show these options in the dropdown
        -        var dropdownOptions = paginator.dropdownOptions;
        -
        -        for(i=0; i<containers.length; i++) {
        -            // Create one SELECT element per Paginator container
        -            var selectEl = document.createElement("select");
        -            selectEl.className = YAHOO.widget.DataTable.CLASS_PAGESELECT;
        -            selectEl = containers[i].appendChild(selectEl);
        -
        -            // Create OPTION elements
        -            for(j=0; j<dropdownOptions.length; j++) {
        -                var optionEl = document.createElement("option");
        -                optionEl.value = dropdownOptions[j].value || dropdownOptions[j];
        -                optionEl.innerHTML = dropdownOptions[j].text || dropdownOptions[j];
        -                optionEl = selectEl.appendChild(optionEl);
        -            }
        -            
        -            // Add event listener
        -            YAHOO.util.Event.addListener(selectEl,"change",this._onPagerSelect,this);
        -
        -            // Add DOM reference to tracker
        -           paginator.dropdowns.push(selectEl);
        -        }
        -    }
        -    else {
        -        YAHOO.log("Could not create Paginator dropdown due to invalid dropdownOptions","error",this.toString());
        -    }
        -
        -    this._paginator = paginator;
        -    this._paginator.containers = containers;
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -// RECORD FUNCTIONS
        -
        -
        -
        -
        -/**
        - * Creates a new Record to add to RecordSet at position i if given, or to the
        - * end otherwise.
        - *
        - * @method _addRecords
        - * @param oData {YAHOO.widget.Record} Array of object literals containing data.
        - * @param index {Number} Index position at which to add Record.
        - * @return {String} Array of Records.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._addRecords = function(aData, index) {
        -    return this._oRecordSet.addRecords(aData);
        -};
        -
        -/**
        - * Deletes a given Record from the RecordSet.
        - *
        - * @method _deleteRecord
        - * @param identifier {Number | String} Record identifier.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._deleteRecord = function(identifier) {
        -    this._oRecordSet.deleteRecord(identifier);
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -// ROW FUNCTIONS
        -
        -
        -
        -
        -/**
        - * Add a new TR element to table body at position i if given, or to the bottom
        - * otherwise. Populates cells with data from given Record.
        - *
        - * @method _addRowEl
        - * @param oRecord {YAHOO.widget.Record} Record instance.
        - * @param index {Number} Index position at which to add TR.
        - * @return {String} ID of the added TR element.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._addRowEl = function(oRecord, index) {
        -    this.hideTableMessage();
        -
        -    // Is this an insert or an append?
        -    var insert = (!YAHOO.lang.isNumber(index) || (index < 0)) ? false : true;
        -    if(!insert || !this._elBody.rows[index]) {
        -        index = this._elBody.rows.length;
        -        insert = false;
        -    }
        -
        -    var oColumnSet = this._oColumnSet;
        -    var oRecordSet = this._oRecordSet;
        -
        -    var elRow = (insert) ?
        -        this._elBody.insertBefore(document.createElement("tr"),this._elBody.rows[index]) :
        -        this._elBody.appendChild(document.createElement("tr"));
        -    var recId = oRecord.yuiRecordId;
        -    elRow.id = this.id+"-bdrow"+index;
        -    elRow.yuiRecordId = recId;
        -
        -    // Create TBODY cells
        -    for(var j=0; j<oColumnSet.keys.length; j++) {
        -        var oColumn = oColumnSet.keys[j];
        -        var elCell = elRow.appendChild(document.createElement("td"));
        -        elCell.id = this.id+"-bdrow"+index+"-cell"+j;
        -        elCell.headers = oColumn.id;
        -        elCell.columnIndex = j;
        -        elCell.headers = oColumnSet.headers[j];
        -
        -        this.formatCell(elCell, oRecord);
        -        /*p.abx {word-wrap:break-word;}
        -ought to solve the problem for Safari (the long words will wrap in your
        -tds, instead of overflowing to the next td.
        -(this is supported by IE win as well, so hide it if needed).
        -
        -One thing, though: it doesn't work in combination with
        -'white-space:nowrap'.*/
        -
        -// need a div wrapper for safari?
        -        if(this.fixedWidth) {
        -            elCell.style.overflow = "hidden";
        -            //elCell.style.width = "20px";
        -        }
        -    }
        -
        -    // Striping
        -    //TODO: move this to somewhere useful
        -    /*if(!insert) {
        -        if(index%2) {
        -            YAHOO.util.Dom.addClass(elRow, YAHOO.widget.DataTable.CLASS_ODD);
        -        }
        -        else {
        -            YAHOO.util.Dom.addClass(elRow, YAHOO.widget.DataTable.CLASS_EVEN);
        -        }
        -    }
        -    else {
        -        //TODO: pass in a subset for better performance
        -        this._setRowStripes();
        -    }*/
        -    
        -    return elRow.id;
        -};
        -
        -/**
        - * Updates all cells of existing TR element at given position with data from the
        - * given Record.
        - *
        - * @method _updateRowEl
        - * @param oRecord {YAHOO.widget.Record} Record instance.
        - * @param index {Number} Position at which to update row.
        - * @return {String} ID of the updated TR element.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._updateRowEl = function(oRecord, index) {
        -    this.hideTableMessage();
        -
        -    var elRow = this._elBody.rows[index];
        -    elRow.yuiRecordId = oRecord.yuiRecordId;
        -
        -    // ...Update TBODY cells with new data
        -    for(var j=0; j<elRow.cells.length; j++) {
        -        this.formatCell(elRow.cells[j]);
        -    }
        -    return elRow.id;
        -};
        -
        -
        -/**
        - * Deletes a given TR element.
        - *
        - * @method _deleteRowEl
        - * @param row {HTMLElement | Number} HTML TR element reference or position index.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._deleteRowEl = function(row) {
        -    if(YAHOO.util.Dom.inDocument(row)) {
        -        row = row.sectionRowIndex;
        -    }
        -    if(YAHOO.lang.isNumber(row)) {
        -        this._elBody.deleteRow(i);
        -
        -        if(this._elBody.rows.length === 0) {
        -            this.showTableMessage(YAHOO.widget.DataTable.MSG_EMPTY, YAHOO.widget.DataTable.CLASS_EMPTY);
        -        }
        -    }
        -    else {
        -        YAHOO.log("Could not delete row " + row, "warn", this.toString());
        -    }
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -// STATE FUNCTIONS
        -
        -
        -
        -
        -/**
        - * Sets first row with class YAHOO.widget.DataTable.CLASS_FIRST.
        - *
        - * @method _setFirstRow
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._setFirstRow = function() {
        -    // Table has rows
        -    if(this._elBody.rows.length > 0) {
        -        YAHOO.util.Dom.removeClass(this.getFirstRow(),YAHOO.widget.DataTable.CLASS_FIRST);
        -        var elFirstRow = this._elBody.rows[0];
        -        YAHOO.util.Dom.addClass(elFirstRow,YAHOO.widget.DataTable.CLASS_FIRST);
        -        this._elFirstRow = elFirstRow;
        -    }
        -    else {
        -        //TODO: is this necessary?
        -        this._elFirstRow = null;
        -    }
        -};
        -
        -/**
        - * Sets last row with class YAHOO.widget.DataTable.CLASS_LAST.
        - *
        - * @method _setLastRow
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._setLastRow = function() {
        -    // Table has rows
        -    if(this._elBody.rows.length > 0) {
        -        YAHOO.util.Dom.removeClass(this.getLastRow(),YAHOO.widget.DataTable.CLASS_LAST);
        -        var elLastRow = this._elBody.rows[this._elBody.rows.length-1];
        -        YAHOO.util.Dom.addClass(elLastRow,YAHOO.widget.DataTable.CLASS_LAST);
        -        this._elLastRow = elLastRow;
        -    }
        -    else {
        -        this._elLastRow = null;
        -    }
        -};
        -
        -/**
        - * Stripes rows by applying class YAHOO.widget.DataTable.CLASS_EVEN or
        - * YAHOO.widget.DataTable.CLASS_ODD.
        - *
        - * @method _setRowStripes
        - * @param range {Number} (optional) Range defines a subset of rows to stripe.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._setRowStripes = function(range) {
        -    if(!range) {
        -        var rows = this._elBody.rows;
        -        for(var i=0; i<rows.length; i++) {
        -            if(i%2) {
        -                YAHOO.util.Dom.removeClass(rows[i], YAHOO.widget.DataTable.CLASS_EVEN);
        -                YAHOO.util.Dom.addClass(rows[i], YAHOO.widget.DataTable.CLASS_ODD);
        -            }
        -            else {
        -                YAHOO.util.Dom.removeClass(rows[i], YAHOO.widget.DataTable.CLASS_ODD);
        -                YAHOO.util.Dom.addClass(rows[i], YAHOO.widget.DataTable.CLASS_EVEN);
        -            }
        -        }
        -    }
        -    else {
        -        //TODO: allow striping of a subset of rows for performance
        -    }
        -};
        -
        -/**
        - * Sets elements to selected state. Does not fire any events. Does not affect
        - * internal tracker.
        - *
        - * @method _select
        - * @param els {HTMLElement | String | HTMLElement[] | String[]} HTML element by
        - * reference or ID string, or array of HTML elements by reference or ID string.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._select = function(els) {
        -    if(!YAHOO.lang.isArray(els)) {
        -        els = [els];
        -    }
        -
        -    for(var i=0; i<els.length; i++) {
        -        // Set the style
        -        YAHOO.util.Dom.addClass(YAHOO.util.Dom.get(els[i]),YAHOO.widget.DataTable.CLASS_SELECTED);
        -    }
        -    this._lastSelectedId = els[els.length-1].id;
        -};
        -
        -/**
        - * Sets elements to the unselected state. Does not fire any events. Does not
        - * affect internal tracker.
        - *
        - * @method _unselect
        - * @param els {HTMLElement | String | HTMLElement[] | String[]} HTMLElement by
        - * reference or ID string, or array of HTML elements by reference or ID string.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._unselect = function(els) {
        -    if(!YAHOO.lang.isArray(els)) {
        -        els = [els];
        -    }
        -    
        -    for(var i=0; i<els.length; i++) {
        -        // Remove the style
        -        YAHOO.util.Dom.removeClass(YAHOO.util.Dom.get(els[i]),YAHOO.widget.DataTable.CLASS_SELECTED);
        -    }
        -};
        -
        -/**
        - * Unselects all selected rows. Does not fire any events. Does not affect internal
        - * tracker.
        - *
        - * @method _unselectAllRows
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._unselectAllRows = function() {
        -    var selectedRows = YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.DataTable.CLASS_SELECTED,"tr",this._elBody);
        -    this._unselect(selectedRows);
        -};
        -
        -/**
        - * Unselects all selected cells.
        - *
        - * @method _unselectAllCells
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._unselectAllCells = function() {
        -    var selectedCells = YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.DataTable.CLASS_SELECTED,"td",this._elBody);
        -    this._unselect(selectedCells);
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private DOM Event Handlers
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Handles blur events on the TABLE element.
        - *
        - * @method _onBlur
        - * @param e {HTMLEvent} The blur event.
        - * @param oSelf {YAHOO.widget.DataTable} DataTable instance.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._onBlur = function(e, oSelf) {
        -    this._bFocused = false;
        -};
        -
        -/**
        - * Handles mouseover events on the TABLE element.
        - *
        - * @method _onMouseover
        - * @param e {HTMLEvent} The mouseover event.
        - * @param oSelf {YAHOO.widget.DataTable} DataTable instance.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._onMouseover = function(e, oSelf) {
        -        var elTarget = YAHOO.util.Event.getTarget(e);
        -        var elTag = elTarget.tagName.toLowerCase();
        -        var knownTag = false;
        -
        -        if (elTag != "table") {
        -            while(!knownTag) {
        -                switch(elTag) {
        -                    case "body":
        -                        knownTag = true;
        -                        break;
        -                    case "a":
        -                        knownTag = true;
        -                        break;
        -                    case "td":
        -                        oSelf.fireEvent("cellMouseoverEvent",{target:elTarget,event:e});
        -                        knownTag = true;
        -                        break;
        -                    case "th":
        -                        oSelf.fireEvent("headCellMouseoverEvent",{target:elTarget,event:e});
        -                        knownTag = true;
        -                        break;
        -                    default:
        -                        break;
        -                }
        -                elTarget = elTarget.parentNode;
        -                if(elTarget) {
        -                    elTag = elTarget.tagName.toLowerCase();
        -                }
        -                else {
        -                    break;
        -                }
        -            }
        -        }
        -        oSelf.fireEvent("tableMouseoverEvent",{target:elTarget,event:e});
        -};
        -
        -/**
        - * Handles mouseout events on the TABLE element.
        - *
        - * @method _onMouseout
        - * @param e {HTMLEvent} The mouseout event.
        - * @param oSelf {YAHOO.widget.DataTable} DataTable instance.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._onMouseout = function(e, oSelf) {
        -        var elTarget = YAHOO.util.Event.getTarget(e);
        -        var elTag = elTarget.tagName.toLowerCase();
        -        var knownTag = false;
        -
        -        if (elTag != "table") {
        -            while(!knownTag) {
        -                switch(elTag) {
        -                    case "body":
        -                        knownTag = true;
        -                        break;
        -                    case "a":
        -                        knownTag = true;
        -                        break;
        -                    case "td":
        -                        oSelf.fireEvent("cellMouseoutEvent",{target:elTarget,event:e});
        -                        knownTag = true;
        -                        break;
        -                    case "th":
        -                        oSelf.fireEvent("headCellMouseoutEvent",{target:elTarget,event:e});
        -                        knownTag = true;
        -                        break;
        -                    default:
        -                        break;
        -                }
        -                elTarget = elTarget.parentNode;
        -                if(elTarget) {
        -                    elTag = elTarget.tagName.toLowerCase();
        -                }
        -                else {
        -                    break;
        -                }
        -            }
        -        }
        -        oSelf.fireEvent("tableMouseoutEvent",{target:elTarget,event:e});
        -};
        -
        -/**
        - * Handles mousedown events on the TABLE element.
        - *
        - * @method _onMousedown
        - * @param e {HTMLEvent} The mousedown event.
        - * @param oSelf {YAHOO.widget.DataTable} DataTable instance.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._onMousedown = function(e, oSelf) {
        -        var elTarget = YAHOO.util.Event.getTarget(e);
        -        var elTag = elTarget.tagName.toLowerCase();
        -        var knownTag = false;
        -
        -        if (elTag != "table") {
        -            while(!knownTag) {
        -                switch(elTag) {
        -                    case "body":
        -                        knownTag = true;
        -                        break;
        -                    case "a":
        -                        knownTag = true;
        -                        break;
        -                    case "td":
        -                        YAHOO.util.Event.stopEvent(e);
        -                        oSelf.fireEvent("cellMousedownEvent",{target:elTarget,event:e});
        -                        knownTag = true;
        -                        break;
        -                    case "th":
        -                        YAHOO.util.Event.stopEvent(e);
        -                        oSelf.fireEvent("headCellMousedownEvent",{target:elTarget,event:e});
        -                        knownTag = true;
        -                        break;
        -                    default:
        -                        break;
        -                }
        -                elTarget = elTarget.parentNode;
        -                if(elTarget) {
        -                    elTag = elTarget.tagName.toLowerCase();
        -                }
        -                else {
        -                    break;
        -                }
        -            }
        -        }
        -        oSelf.fireEvent("tableMousedownEvent",{target:elTarget,event:e});
        -};
        -
        -/**
        - * Handles click events on the TABLE element.
        - *
        - * @method _onClick
        - * @param e {HTMLEvent} The click event.
        - * @param oSelf {YAHOO.widget.DataTable} DataTable instance.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._onClick = function(e, oSelf) {
        -    oSelf.cancelEditorData();
        -    
        -    var elTarget = YAHOO.util.Event.getTarget(e);
        -    var elTag = elTarget.tagName.toLowerCase();
        -    var knownTag = false; // True if event should stop propagating
        -
        -    if (elTag != "table") {
        -        while(!knownTag) {
        -            switch(elTag) {
        -                case "body":
        -                    knownTag = true;
        -                    break;
        -                case "input":
        -                    if(elTarget.type.toLowerCase() == "checkbox") {
        -                        oSelf.fireEvent("checkboxClickEvent",{target:elTarget,event:e});
        -                    }
        -                    else if(elTarget.type.toLowerCase() == "radio") {
        -                        oSelf.fireEvent("radioClickEvent",{target:elTarget,event:e});
        -                    }
        -                    knownTag = true;
        -                    break;
        -                case "a":
        -                    if(!YAHOO.util.Dom.hasClass(elTarget, YAHOO.widget.DataTable.CLASS_SORTABLE)) {
        -                        knownTag = true;
        -                    }
        -                    break;
        -                case "td":
        -                    YAHOO.util.Event.stopEvent(e);
        -                    oSelf.fireEvent("cellClickEvent",{target:elTarget,event:e});
        -                    knownTag = true;
        -                    break;
        -                case "th":
        -                    YAHOO.util.Event.stopEvent(e);
        -                    oSelf.fireEvent("headCellClickEvent",{target:elTarget,event:e});
        -                    knownTag = true;
        -                    break;
        -                default:
        -                    break;
        -            }
        -            elTarget = elTarget.parentNode;
        -            elTag = elTarget.tagName.toLowerCase();
        -        }
        -    }
        -    //oSelf.focusTable();
        -    oSelf.fireEvent("tableClickEvent",{target:elTarget,event:e});
        -};
        -
        -/**
        - * Handles doubleclick events on the TABLE element.
        - *
        - * @method _onDoubleclick
        - * @param e {HTMLEvent} The doubleclick event.
        - * @param oSelf {YAHOO.widget.DataTable} DataTable instance.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._onDoubleclick = function(e, oSelf) {
        -    var elTarget = YAHOO.util.Event.getTarget(e);
        -    var elTag = elTarget.tagName.toLowerCase();
        -    var knownTag = false;
        -
        -    if (elTag != "table") {
        -        while(!knownTag) {
        -            switch(elTag) {
        -                case "body":
        -                    knownTag = true;
        -                    break;
        -                case "a":
        -                    knownTag = true;
        -                    break;
        -                case "td":
        -                    YAHOO.util.Event.stopEvent(e);
        -                    oSelf.fireEvent("cellDoubleclickEvent",{target:elTarget,event:e});
        -                    knownTag = true;
        -                    break;
        -                case "th":
        -                    YAHOO.util.Event.stopEvent(e);
        -                    oSelf.fireEvent("headCellDoubleclickEvent",{target:elTarget,event:e});
        -                    knownTag = true;
        -                    break;
        -                default:
        -                    break;
        -            }
        -            elTarget = elTarget.parentNode;
        -            elTag = elTarget.tagName.toLowerCase();
        -        }
        -    }
        -    oSelf.fireEvent("tableDoubleclickEvent",{target:elTarget,event:e});
        -};
        -
        -/**
        - * Handles keypress events on the TABLE. Mainly to support stopEvent on Mac.
        - *
        - * @method _onKeypress
        - * @param e {HTMLEvent} The key event.
        - * @param oSelf {YAHOO.widget.DataTable} DataTable instance.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._onKeypress = function(e, oSelf) {
        -    var isMac = (navigator.userAgent.toLowerCase().indexOf("mac") != -1);
        -    if(isMac) {
        -        // arrow down
        -        if(e.keyCode == 40) {
        -            YAHOO.util.Event.stopEvent(e);
        -        }
        -        // arrow up
        -        else if(e.keyCode == 38) {
        -            YAHOO.util.Event.stopEvent(e);
        -        }
        -    }
        -};
        -
        -/**
        - * Handles keydown events on the TABLE. Executes arrow selection.
        - *
        - * @method _onKeydown
        - * @param e {HTMLEvent} The key event.
        - * @param oSelf {YAHOO.widget.DataTable} DataTable instance.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._onKeydown = function(e, oSelf) {
        -    var oldSelectedId = oSelf._lastSelectedId;
        -    // Only move selection if one is already selected
        -    // TODO: config to allow selection even if one is NOT already selected
        -    // TODO: if something isn't selected already, arrow key should select first or last one
        -    if(oldSelectedId && oSelf.isSelected(oldSelectedId)) {
        -        var oldSelected = YAHOO.util.Dom.get(oldSelectedId);
        -        var newSelected;
        -        // arrow down
        -        if(e.keyCode == 40) {
        -            YAHOO.util.Event.stopEvent(e);
        -            // row mode
        -            if(oldSelected.tagName.toLowerCase() == "tr") {
        -                // We have room to move down
        -                if(oldSelected.sectionRowIndex+1 < oSelf._elBody.rows.length) {
        -                            if(!e.shiftKey || oSelf.rowSingleSelect) {
        -                                oSelf.unselectAllRows();
        -                            }
        -                            newSelected = oSelf._elBody.rows[oldSelected.sectionRowIndex+1];
        -                            oSelf.selectRow(newSelected);
        -                            
        -                }
        -            }
        -            // cell mode
        -            else if(oldSelected.tagName.toLowerCase() == "td") {
        -                /*// We have room to move down
        -                if(oldSelected.sectionRowIndex+1 < oSelf._elBody.rows.length) {
        -                            if(!e.shiftKey) {
        -                                oSelf.unselectAllRows();
        -                            }
        -                            newSelected = oSelf._elBody.rows[oldSelected.sectionRowIndex+1];
        -                            oSelf.select(newSelected);
        -                }*/
        -            }
        -            // Arrows can cause widget to lose focus
        -            //oSelf._bFocused = false;
        -            //oSelf.focusTable();
        -        }
        -        // arrow up
        -        else if(e.keyCode == 38) {
        -            YAHOO.util.Event.stopEvent(e);
        -            // row mode
        -            if(oldSelected.tagName.toLowerCase() == "tr") {
        -                // We have room to move up
        -                if((oldSelected.sectionRowIndex > 0)) {
        -                            if(!e.shiftKey || oSelf.rowSingleSelect) {
        -                                oSelf.unselectAllRows();
        -                            }
        -                            newSelected = oSelf._elBody.rows[oldSelected.sectionRowIndex-1];
        -                            oSelf.selectRow(newSelected);
        -                }
        -            }
        -            // cell mode
        -            else if(oldSelected.tagName.toLowerCase() == "td") {
        -                // We have room to move up
        -                if((oldSelected.sectionRowIndex > 0)) {
        -                            if(!e.shiftKey) {
        -                                oSelf.unselectAllRows();
        -                            }
        -                            newSelected = oSelf._elBody.rows[oldSelected.sectionRowIndex-1];
        -                            oSelf.select(newSelected);
        -                }
        -            }
        -            // Arrows can cause widget to lose focus
        -            //oSelf._bFocused = false;
        -            //oSelf.focusTable();
        -        }
        -    }
        -};
        -
        -/**
        - * Handles keyup events on the TABLE. Executes deletion
        - *
        - * @method _onKeyup
        - * @param e {HTMLEvent} The key event.
        - * @param oSelf {YAHOO.widget.DataTable} DataTable instance.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._onKeyup = function(e, oSelf) {
        -    var key = YAHOO.util.Event.getCharCode(e);
        -    // delete
        -    if(key == 46) {//TODO: && this.isFocused
        -        //TODO: delete row
        -    }
        -};
        -
        -/**
        - * Handles keydown events on the DOCUMENT. Executes interaction with editor.
        - *
        - * @method _onDocumentKeydown
        - * @param e {HTMLEvent} The key event.
        - * @param oSelf {YAHOO.widget.DataTable} DataTable instance.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._onDocumentKeydown = function(e, oSelf) {
        -    // esc Clears active editor
        -    if((e.keyCode == 27)) {
        -        oSelf.cancelEditorData();
        -    }
        -    // enter Saves active editor data
        -    if(e.keyCode == 13) {
        -        YAHOO.util.Event.stopEvent(e);
        -        oSelf.saveEditorData();
        -    }
        -};
        -
        -/**
        - * Handles click events on the DOCUMENT. Hides active editor.
        - *
        - * @method _onDocumentClick
        - * @param e {HTMLEvent} The click event.
        - * @param oSelf {YAHOO.widget.DataTable} DataTable instance.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._onDocumentClick = function(e, oSelf) {
        -    oSelf.saveEditorData();
        -};
        -
        -/**
        - * Handles click events on paginator links.
        - *
        - * @method _onPagerClick
        - * @param e {HTMLEvent} The click event.
        - * @param oSelf {YAHOO.widget.DataTable} DataTable instance.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._onPagerClick = function(e, oSelf) {
        -    oSelf.saveEditorData();
        -    
        -    var elTarget = YAHOO.util.Event.getTarget(e);
        -    var elTag = elTarget.tagName.toLowerCase();
        -    var knownTag = false; // True if event should stop propagating
        -
        -    if (elTag != "table") {
        -        while(!knownTag) {
        -            switch(elTag) {
        -                case "body":
        -                    knownTag = true;
        -                    break;
        -                case "a":
        -                    YAHOO.util.Event.stopEvent(e);
        -                    switch(elTarget.className) {
        -                        case YAHOO.widget.DataTable.CLASS_PAGELINK:
        -                            oSelf.showPage(parseInt(elTarget.innerHTML,10));
        -                            break;
        -                        case YAHOO.widget.DataTable.CLASS_FIRSTLINK:
        -                            oSelf.showPage(1);
        -                            break;
        -                        case YAHOO.widget.DataTable.CLASS_LASTLINK:
        -                            oSelf.showPage(oSelf._paginator.totalPages);
        -                            break;
        -                        case YAHOO.widget.DataTable.CLASS_PREVLINK:
        -                            oSelf.showPage(oSelf._paginator.currentPage-1);
        -                            break;
        -                        case YAHOO.widget.DataTable.CLASS_NEXTLINK:
        -                            oSelf.showPage(oSelf._paginator.currentPage+1);
        -                            break;
        -                    }
        -                    knownTag = true;
        -                    break;
        -                default:
        -                    break;
        -            }
        -            elTarget = elTarget.parentNode;
        -            if(elTarget) {
        -                elTag = elTarget.tagName.toLowerCase();
        -            }
        -            else {
        -                break;
        -            }
        -        }
        -    }
        -};
        -
        -/**
        - * Handles change events on paginator SELECT.
        - *
        - * @method _onPagerSelect
        - * @param e {HTMLEvent} The change event.
        - * @param oSelf {YAHOO.widget.DataTable} DataTable instance.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._onPagerSelect = function(e, oSelf) {
        -    var elTarget = YAHOO.util.Event.getTarget(e);
        -    var value = elTarget[elTarget.selectedIndex].value;
        -
        -    // How many rows per page
        -    var oldRowsPerPage = oSelf._paginator.rowsPerPage;
        -    var rowsPerPage = parseInt(value,10) || null;
        -    if(rowsPerPage && (rowsPerPage != oldRowsPerPage)) {
        -        if(rowsPerPage > oldRowsPerPage) {
        -            oSelf._paginator.currentPage = 1;
        -        }
        -        oSelf._paginator.rowsPerPage = rowsPerPage;
        -        oSelf.refreshTable();
        -    }
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private Custom Event Handlers
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Handles row delete events.
        - *
        - * @method _onRowDelete
        - * @param oArgs.rowIndexes {Number[]} The indexes of the deleted rows.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._onRowDelete = function(oArgs) {
        -    this._setRowStripes();
        -};
        -
        -/**
        - * Passes along recordSetUpdate Event when recordUpdateEvent is caught from RecordSet.
        - *
        - * @event _onRecordUpdate
        - * @param oArgs.record {YAHOO.widget.Record} The Record instance.
        - * @param oArgs.key {String} The Record key.
        - * @param oArgs.newData {Object} New data.
        - * @param oArgs.oldData {Object} New data.
        - * @private
        - */
        -YAHOO.widget.DataTable.prototype._onRecordUpdate = function(oArgs) {
        -    this.fireEvent("recordSetUpdateEvent",oArgs);
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * DataSource instance.
        - *
        - * @property dataSource
        - * @type YAHOO.util.DataSource
        - */
        -YAHOO.widget.DataTable.prototype.dataSource = null;
        -
        -/**
        - * Initial request to send to DataSource.
        - *
        - * @property initialRequest
        - * @type String
        - * @default ""
        - */
        -YAHOO.widget.DataTable.prototype.initialRequest = "";
        -
        -/**
        - * Defines value of CAPTION attribute.
        - *
        - * @property caption
        - * @type String
        - */
        -YAHOO.widget.DataTable.prototype.caption = null;
        -
        -/**
        - * Defines value of SUMMARY attribute.
        - *
        - * @property summary
        - * @type String
        - */
        -YAHOO.widget.DataTable.prototype.summary = null;
        -
        -/**
        - * True if DataTable's width is a fixed size.
        - *
        - * @property fixedWidth
        - * @type Boolean
        - * @default false
        - */
        -YAHOO.widget.DataTable.prototype.fixedWidth = false;
        -
        -/**
        - * True if TBODY should scroll while THEAD remains fixed.
        - *
        - * @property scrollable
        - * @type Boolean
        - * @default false
        - */
        -YAHOO.widget.DataTable.prototype.scrollable = false;
        -
        -/**
        - * True if only one row may be selected at a time.
        - *
        - * @property rowSingleSelect
        - * @type Boolean
        - * @default false
        - */
        -YAHOO.widget.DataTable.prototype.rowSingleSelect = false;
        -
        -/**
        - * ContextMenu instance.
        - *
        - * @property contextMenu
        - * @type YAHOO.widget.ContextMenu
        - */
        -YAHOO.widget.DataTable.prototype.contextMenu = null;
        -
        -/**
        - * True if built-in paginator is enabled.
        - *
        - * @property paginator
        - * @type Boolean
        - * @default false
        - */
        -YAHOO.widget.DataTable.prototype.paginator = false;
        -
        -/**
        - * Object literal of initial paginator key:value properties.
        - *
        - * @property paginatorOptions
        - * @type Object
        - * @default {}
        - */
        -/**
        - * If built-in paginator is enabled, each page will display up to the given
        - * number of rows per page. A value less than 1 will display all available
        - * rows.
        - *
        - * @property paginatorOptions.rowsPerPage
        - * @type Number
        - * @default 500
        - */
        -/**
        - * If built-in paginator is enabled, current page to display.
        - *
        - * @property paginatorOptions.currentPage
        - * @type Number
        - * @default 1
        - */
        -/**
        - * Array of container elements to hold paginator UI, if enabled. If null,
        - * 2 containers will be created dynamically, one before and one after the
        - * TABLE element.
        - *
        - * @property paginatorOptions.containers
        - * @type HTMLElement[]
        - * @default null
        - */
        -/**
        - * Values to show in the SELECT dropdown. Can be an array of numbers to populate
        - * each OPTION's value and text with the same value, or an array of object
        - * literals of syntax {value:myValue, text:myText} will populate OPTION with
        - * corresponding value and text. A null value or empty array prevents the
        - * dropdown from displayed altogether.
        - *
        - * @property paginatorOptions.dropdownOptions
        - * @type Number[] | Object{}
        - */
        -/**
        - * Maximum number of links to page numbers to show in paginator UI. Any pages
        - * not linked would be available through the next/previous style links. A 0
        - * value displays all page links. A negative value disables all page links.
        - *
        - * @property paginatorOptions.pageLinks
        - * @type Number
        - * @default 0
        - */
        -YAHOO.widget.DataTable.prototype.paginatorOptions = null;
        -
        -/**
        - * Object literal holds sort metadata:
        - *  sortedBy.colKey
        - *  sortedBy.dir
        - *
        - *
        - * @property sortedBy
        - * @type Object
        - */
        -YAHOO.widget.DataTable.prototype.sortedBy = null;
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -// INTERNAL ACCESSORS
        -
        -/**
        - * Public accessor to the unique name of the DataSource instance.
        - *
        - * @method toString
        - * @return {String} Unique name of the DataSource instance.
        - */
        -
        -YAHOO.widget.DataTable.prototype.toString = function() {
        -    return "DataTable " + this._sName;
        -};
        -
        -/**
        - * Returns pointer to the DataTable instance's ColumnSet instance.
        - *
        - * @method getColumnSet
        - * @return {YAHOO.widget.ColumnSet} ColumnSet instance.
        - */
        -YAHOO.widget.DataTable.prototype.getColumnSet = function() {
        -    return this._oColumnSet;
        -};
        -
        -/**
        - * Returns pointer to the DataTable instance's RecordSet instance.
        - *
        - * @method getRecordSet
        - * @return {YAHOO.widget.RecordSet} RecordSet instance.
        - */
        -YAHOO.widget.DataTable.prototype.getRecordSet = function() {
        -    return this._oRecordSet;
        -};
        -
        -/**
        - * Returns paginator object literal.
        - *
        - * @method getPaginator
        - * @return {Object} Paginator object literal with following properties:
        - *     <ul>
        - *     <li>currentPage: current page number</li>
        - *     <li>dropdownOptions: array of numbers to show in dropdown</li>
        - *     <li>elements: array of object literals that define where to show
        - *     paginator UI with following properties:
        - *         <ul>
        - *         <li>container: element reference to paginator container</li>
        - *         <li>links: element reference to page links container</li>
        - *         <li>select: element reference to dropdown</li>
        - *         </ul>
        - *     </li>
        - *     <li>pageLinks: number of page links displayed</li>
        - *     <li>pageLinkStart: page number of first link</li>
        - *     <li>rowsPerPage: number of rows displayed</li>
        - *     <li>totalPages: total number of pages</li>
        - *     </ul>
        - */
        -YAHOO.widget.DataTable.prototype.getPaginator = function() {
        -    return this._paginator;
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -// DOM ACCESSORS
        -
        -
        -
        -/**
        - * Returns element reference to TABLE.
        - *
        - * @method getTable
        - * @return {HTMLElement} Reference to TABLE element.
        - */
        -YAHOO.widget.DataTable.prototype.getTable = function() {
        -    return(this._elTable);
        -};
        -
        -/**
        - * Returns element reference to THEAD.
        - *
        - * @method getHead
        - * @return {HTMLElement} Reference to THEAD element.
        - */
        -YAHOO.widget.DataTable.prototype.getHead = function() {
        -    return(this._elHead);
        -};
        -
        -/**
        - * Returns element reference to TBODY.
        - *
        - * @method getBody
        - * @return {HTMLElement} Reference to TBODY element.
        - */
        -YAHOO.widget.DataTable.prototype.getBody = function() {
        -    return(this._elBody);
        -};
        -
        -/**
        - * Returns element reference to TR element at given index.
        - *
        - * @method getRow
        - * @param index {Number} Row number.
        - * @return {HTMLElement} Reference to TR element.
        - */
        -YAHOO.widget.DataTable.prototype.getRow = function(index) {
        -    if(YAHOO.lang.isNumber(index) && (index > -1)) {
        -        return(this._elBody.rows[index]);
        -    }
        -    return null;
        -};
        -
        -/**
        - * Returns element reference to first TR element.
        - *
        - * @method getFirstRow
        - * @return {HTMLElement} Reference to first TR element.
        - */
        -YAHOO.widget.DataTable.prototype.getFirstRow = function() {
        -    return this._elFirstRow;
        -};
        -
        -/**
        - * Returns element reference to last TR element.
        - *
        - * @method getLastRow
        - * @return {HTMLElement} Reference to last TR element.
        - */
        -YAHOO.widget.DataTable.prototype.getLastRow = function() {
        -    return this._elLastRow;
        -};
        -
        -/**
        - * Returns element reference to TD element at given row and column positions.
        - *
        - * @method getCell
        - * @param rowIndex {Number} Row index.
        - * @param colIndex {Number} Column index.
        - * @return {HTMLElement} Reference to TD element.
        - */
        -YAHOO.widget.DataTable.prototype.getCell = function(rowIndex, colIndex) {
        -    if(YAHOO.lang.isNumber(rowIndex) && YAHOO.lang.isNumber(colIndex) &&
        -            (rowIndex > -1) && (colIndex > -1)) {
        -        return(this._elBody.rows[rowIndex].cells[colIndex]);
        -    }
        -    return null;
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -// ROW FUNCTIONS
        -
        -
        -/**
        - * Convenience method to add a new row to table body at position index if given,
        - * or to the bottom otherwise.
        - *
        - * @method addRow
        - * @param oRecord {YAHOO.widget.Record} Record instance.
        - * @param index {Number} (optional) Position at which to add row.
        - */
        -YAHOO.widget.DataTable.prototype.addRow = function(oRecord, index) {
        -    if(oRecord && (oRecord instanceof YAHOO.widget.Record)) {
        -        var rowId = this._addRowEl(oRecord, index);
        -        // TODO: row may be inserted into middle... so don't set first/last
        -        if(YAHOO.lang.isNumber(index)) {
        -            if(index === 0) {
        -                this._setFirstRow();
        -            }
        -            this.fireEvent("rowInsertEvent", {rowIds:[rowId]});
        -        }
        -        else {
        -            this._setLastRow();
        -            this.fireEvent("rowAppendEvent", {rowIds:[rowId]});
        -        }
        -    }
        -};
        -
        -/**
        - * Updates existing Record and row at position index with given data.
        - *
        - * @method updateRow
        - * @param oRecord {YAHOO.widget.Record} Record instance.
        - * @param index {Number} Position at which to update row.
        - */
        -YAHOO.widget.DataTable.prototype.updateRow = function(oData, index) {
        -
        -    if(oRecord && (oRecord instanceof YAHOO.widget.Record)) {
        -        var rowId = this._updateRowEl(oRecord, index);
        -        this.fireEvent("rowUpdateEvent", {rowIds:[rowId]});
        -    }
        -};
        -
        -/**
        - * Calls delete on given rows.
        - *
        - * @method deleteRows
        - * @param elRows {HTMLElement[]} Array of HTML table row element reference.
        - */
        -YAHOO.widget.DataTable.prototype.deleteRows = function(elRows) {
        -    var rowIndexes = [];
        -    for(var i=0; i<rows.length; i++) {
        -        var rowIndex = (rows[i].sectionRowIndex !== undefined) ? rows[i].sectionRowIndex : null;
        -        rowIndexes.push(rowIndex);
        -        this._deleteRecord(rows[i].yuiRecordId);
        -        this._deleteRowEl(rows[i]);
        -        this.fireEvent("rowDeleteEvent", {rowIndexes:rowIndexes});
        -    }
        -
        -    //TODO: can be optimized?
        -    // Set first-row and last-row trackers
        -    this._setFirstRow();
        -    this._setLastRow();
        -};
        -
        -/**
        - * Deletes a given row element as well its corresponding Record in the RecordSet.
        - *
        - * @method deleteRow
        - * @param elRow {HTMLElement} HTML table row element reference.
        - */
        -YAHOO.widget.DataTable.prototype.deleteRow = function(elRow) {
        -    if(elRow && YAHOO.util.Dom.inDocument(elRow)) {
        -        var rowIndex = (elRow.sectionRowIndex !== undefined) ? elRow.sectionRowIndex : null;
        -        this._deleteRecord(elRow.yuiRecordId);
        -        this._deleteRowEl(elRow);
        -        this.fireEvent("rowDeleteEvent", {rowIndexes:[rowIndex]});
        -
        -        //TODO: can be optimized?
        -        // Set first-row and last-row trackers
        -        this._setFirstRow();
        -        this._setLastRow();
        -    }
        -
        -};
        -
        -
        -
        -
        -
        -
        -/**
        - * Add rows to bottom of table body.
        - *
        - * @method appendRows
        - * @param aRecords {YAHOO.widget.Record[]} Array of Records.
        - */
        -YAHOO.widget.DataTable.prototype.appendRows = function(aRecords) {
        -    if(YAHOO.lang.isArray(aRecords) && (aRecords.length > 0)) {
        -        this.hideTableMessage();
        -
        -        var rowIds = [];
        -        for(var i=0; i<aRecords.length; i++) {
        -            var rowId = this._addRowEl(aRecords[i]);
        -            rowIds.push(rowId);
        -        }
        -
        -        // Set last-row tracker
        -        this._setLastRow();
        -
        -        this.fireEvent("rowAppendEvent", {rowIds:rowIds});
        -    }
        -};
        -
        -/**
        - * Add rows to top of table body.
        - *
        - * @method insertRows
        - * @param aRecords {YAHOO.widget.Record[]} Array of Records.
        - */
        -YAHOO.widget.DataTable.prototype.insertRows = function(aRecords) {
        -    if(YAHOO.lang.isArray(aRecords) && (aRecords.length > 0)) {
        -        this.hideTableMessage();
        -
        -        var rowIds = [];
        -        for(var i=0; i<aRecords.length; i++) {
        -            var rowId = this._addRowEl(aRecords[i],0);
        -            rowIds.push(rowId);
        -        }
        -
        -        // Set first-row tracker
        -        this._setFirstRow();
        -
        -        this.fireEvent("rowInsertEvent", {rowIds:rowIds});
        -    }
        -};
        -
        -/**
        - * Sets a row to the selected state.
        - *
        - * @method selectRow
        - * @param row {HTMLElement | String} HTML TR element reference or ID.
        - */
        -YAHOO.widget.DataTable.prototype.selectRow = function(row) {
        -    // Validate the row
        -    row = YAHOO.util.Dom.get(row);
        -    if(row && row.yuiRecordId) {
        -        var recordId = row.yuiRecordId;
        -
        -        // Update internal tracker
        -        var tracker = this._aSelectedRecords || [];
        -        // Remove Record ID if already there...
        -        if(tracker.length > 0) {
        -            // ...using Array.indexOf if available...
        -            if(tracker.indexOf && (tracker.indexOf(recordId) > -1)) {
        -                tracker.splice(tracker.indexOf(recordId), 1);
        -            }
        -            // ...or do it the old-fashioned way
        -            else {
        -                for(var i=0; i<tracker.length; i++) {
        -                   if(tracker[i] === recordId) {
        -                        tracker.splice(i, 1);
        -                    }
        -                }
        -            }
        -        }
        -
        -        // Update UI
        -        this._select(row);
        -
        -        // Add to the end of internal tracker
        -        tracker.push(recordId);
        -        this._aSelectedRecords = tracker;
        -
        -        this.fireEvent("rowSelectEvent",{el:row, record:this._oRecordSet.getRecord(recordId)});
        -        YAHOO.log("Row selected: ID=\"" + row.id + "\", " +
        -                "Record=" + this._oRecordSet.getRecord(recordId),
        -                "info",this.toString());
        -    }
        -};
        -
        -/**
        - * Sets a row to the unselected state.
        - *
        - * @method unselectRow
        - * @param row {HTMLElement | String} HTML TR element reference or ID.
        - */
        -YAHOO.widget.DataTable.prototype.unselectRow = function(row) {
        -    // Validate the row
        -    row = YAHOO.util.Dom.get(row);
        -    if(row && row.yuiRecordId) {
        -        var recordId = row.yuiRecordId;
        -
        -        // Update internal tracker
        -        var tracker = this._aSelectedRecords || [];
        -        // Remove Record ID if there...
        -        if(tracker.length > 0) {
        -            // ...using Array.indexOf if available...
        -            if(tracker.indexOf && (tracker.indexOf(recordId) > -1)) {
        -                tracker.splice(tracker.indexOf(recordId), 1);
        -            }
        -            // ...or do it the old-fashioned way
        -            else {
        -                for(var i=0; i<tracker.length; i++) {
        -                   if(tracker[i] === recordId) {
        -                        tracker.splice(i, 1);
        -                    }
        -                }
        -            }
        -        }
        -
        -        // Update UI
        -        this._unselect(row);
        -
        -        this.fireEvent("rowUnselectEvent",{el:row, record:this._oRecordSet.getRecord(recordId)});
        -        YAHOO.log("Row unselected: ID=\"" + row.id + "\", " +
        -                "Record=" + this._oRecordSet.getRecord(recordId),
        -                "info",this.toString());
        -    }
        -};
        -
        -
        -/**
        - * Unselects all selected rows (across all pages, if applicable).
        - *
        - * @method unselectAllRows
        - */
        -YAHOO.widget.DataTable.prototype.unselectAllRows = function() {
        -    var selectedRows = YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.DataTable.CLASS_SELECTED,"tr",this._elBody);
        -    this.unselect(selectedRows);
        -    this._aSelectedRecords = [];
        -    this.fireEvent("unselectEvent", {els:selectedRows});
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -// MESSAGING
        -
        -
        -/**
        - * Displays placeholder row with a message when there are no data rows.
        - *
        - * @method showTableMessage
        - * @param sHTML {String} (optional) Value for innerHTML.
        - * @param sClassName {String} (optional) Classname.
        - */
        -YAHOO.widget.DataTable.prototype.showTableMessage = function(sHTML, sClassName) {
        -    var elCell = this._elMsgCell;
        -    if(YAHOO.lang.isString(sHTML)) {
        -        elCell.innerHTML = sHTML;
        -    }
        -    if(YAHOO.lang.isString(sClassName)) {
        -        elCell.className = sClassName;
        -    }
        -    this._elMsgBody.style.display = "";
        -};
        -
        -/**
        - * Hide placeholder message.
        - *
        - * @method hideTableMessage
        - */
        -YAHOO.widget.DataTable.prototype.hideTableMessage = function() {
        -    this._elMsgBody.style.display = "none";
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -// PAGINATION
        -
        -
        -
        -
        -
        -
        -/**
        - * Displays a specific page of a paginated DataTable.
        - *
        - * @method showPage
        - * @param nPage {Number} Which page.
        - */
        -YAHOO.widget.DataTable.prototype.showPage = function(nPage) {
        -    // Validate input
        -    if(!YAHOO.lang.isNumber(nPage) || (nPage < 1) || (nPage > this._paginator.totalPages)) {
        -        nPage = 1;
        -    }
        -    this._paginator.currentPage = nPage;
        -    this.refreshTable();
        -};
        -
        -/**
        - * Updates Paginator containers with markup. Override this method to customize pagination UI.
        - *
        - * @method formatPaginators
        - */
        - YAHOO.widget.DataTable.prototype.formatPaginators = function() {
        -    var pag = this._paginator;
        -    var i;
        -
        -    // For Opera workaround
        -    var dropdownEnabled = false;
        -    
        -    // Links are enabled
        -    if(pag.pageLinks > -1) {
        -        for(i=0; i<pag.links.length; i++) {
        -            this.formatPaginatorLinks(pag.links[i], pag.currentPage, pag.pageLinksStart, pag.pageLinks, pag.totalPages);
        -        }
        -    }
        -
        -    // Dropdown is enabled
        -    if(pag.dropdownOptions) {
        -        dropdownEnabled = true;
        -        for(i=0; i<pag.dropdowns.length; i++) {
        -            this.formatPaginatorDropdown(pag.dropdowns[i]);
        -        }
        -    }
        -
        -    // For Opera artifacting in dropdowns
        -    if(dropdownEnabled && navigator.userAgent.toLowerCase().indexOf("opera") != -1) {
        -        document.body.style += '';
        -    }
        -};
        -
        -/**
        - * Updates Paginator dropdown. If dropdown doesn't exist, the markup is created.
        - * Sets dropdown's "selected" value.
        - *
        - * @method formatPaginatorDropdown
        - * @param oElReferences {Object} Object literal of pointers to Paginator UI
        - * elements.
        - */
        -YAHOO.widget.DataTable.prototype.formatPaginatorDropdown = function(elDropdown) {
        -    if(elDropdown.options) {
        -        var options = elDropdown.options;
        -        // Update dropdown's "selected" value
        -        for(var i=options.length-1; i>-1; i--) {
        -            if((this._paginator.rowsPerPage + "") === options[i].value) {
        -                options[i].selected = true;
        -            }
        -        }
        -    }
        -    else {
        -        YAHOO.log("Could not update Paginator dropdown","error",this.toString());
        -    }
        -};
        -
        -/**
        - * Updates Paginator links container with markup.
        - *
        - * @method formatPaginatorLinks
        - */
        -YAHOO.widget.DataTable.prototype.formatPaginatorLinks = function(elContainer, nCurrentPage, nPageLinksStart, nPageLinksLength, nTotalPages) {
        -    // Markup for page links
        -    var isFirstPage = (nCurrentPage == 1) ? true : false;
        -    var isLastPage = (nCurrentPage == nTotalPages) ? true : false;
        -    var firstPageLink = (isFirstPage) ?
        -            " <span class=\"" + YAHOO.widget.DataTable.CLASS_FIRSTPAGE + "\">&lt;&lt;</span> " :
        -            " <a href=\"#\" class=\"" + YAHOO.widget.DataTable.CLASS_FIRSTLINK + "\">&lt;&lt;</a> ";
        -    var prevPageLink = (isFirstPage) ?
        -            " <span class=\"" + YAHOO.widget.DataTable.CLASS_PREVPAGE + "\">&lt;</span> " :
        -            " <a href=\"#\" class=\"" + YAHOO.widget.DataTable.CLASS_PREVLINK + "\">&lt;</a> " ;
        -    var nextPageLink = (isLastPage) ?
        -            " <span class=\"" + YAHOO.widget.DataTable.CLASS_NEXTPAGE + "\">&gt;</span> " :
        -            " <a href=\"#\" class=\"" + YAHOO.widget.DataTable.CLASS_NEXTLINK + "\">&gt;</a> " ;
        -    var lastPageLink = (isLastPage) ?
        -            " <span class=\"" + YAHOO.widget.DataTable.CLASS_LASTPAGE + "\">&gt;&gt;</span> " :
        -            " <a href=\"#\" class=\"" + YAHOO.widget.DataTable.CLASS_LASTLINK + "\">&gt;&gt;</a> ";
        -    markup = firstPageLink + prevPageLink;
        -    var maxLinks = (nPageLinksStart+nPageLinksLength < nTotalPages) ?
        -        nPageLinksStart+nPageLinksLength-1 : nTotalPages;
        -    // Special case for pageLinksLength 0 => show all links
        -    if(nPageLinksLength === 0) {
        -        maxLinks = nTotalPages;
        -    }
        -    for(var i=nPageLinksStart; i<=maxLinks; i++) {
        -         if(i != nCurrentPage) {
        -            markup += " <a href=\"#\" class=\"" + YAHOO.widget.DataTable.CLASS_PAGELINK + "\">" + i + "</a> ";
        -        }
        -        else {
        -            markup += " <span class=\"" + YAHOO.widget.DataTable.CLASS_CURRENTPAGE + "\">" + i + "</span>";
        -        }
        -    }
        -    markup += nextPageLink + lastPageLink;
        -    elContainer.innerHTML = markup;
        -};
        -
        -/**
        - * Updates Paginator internal values and UI.
        - * @method updatePaginator
        - */
        -YAHOO.widget.DataTable.prototype.updatePaginator = function() {
        -    // Paginator values must be initialized
        -    if(this._paginator === null) {
        -        this._initPaginator();
        -    }
        -
        -    // How many total Records
        -    var recordsLength = this._oRecordSet.getLength();
        -
        -    // If rowsPerPage < 1, show all rows
        -    this._paginator.rowsPerPage = (this._paginator.rowsPerPage > 0) ?
        -        this._paginator.rowsPerPage : recordsLength;
        -    var rowsPerPage = this._paginator.rowsPerPage;
        -
        -
        -    // How many rows this page
        -    var maxRows = (rowsPerPage < recordsLength) ?
        -            rowsPerPage : recordsLength;
        -
        -    // How many total pages
        -    this._paginator.totalPages = Math.ceil(recordsLength / maxRows);
        -
        -    // What is current page
        -    var currentPage = this._paginator.currentPage;
        -
        -    // First row of this page
        -    this._paginator.startRecordIndex =  (currentPage-1) * rowsPerPage;
        -
        -    // How many page links to display
        -    var pageLinksLength = this._paginator.pageLinks;
        -    // Show all links
        -    if(pageLinksLength === 0) {
        -        pageLinksLength = this._paginator.totalPages;
        -    }
        -    // Page links are enabled
        -    if(pageLinksLength > -1) {
        -        // First page link for this page
        -        this._paginator.pageLinksStart = (pageLinksLength == 1) ? currentPage :
        -                (Math.ceil(currentPage/pageLinksLength-1) * pageLinksLength) + 1;
        -    }
        -
        -    this.formatPaginators();
        -
        -    this.fireEvent("paginateEvent", {paginator:this._paginator});
        -    YAHOO.log("Currently displaying page " + currentPage + " of " +
        -            this._paginator.totalPages + " with " + rowsPerPage +
        -            " rows per page", "info", this.toString());
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -// TABLE FUNCTIONS
        -
        -/**
        - * Sets focus on the TABLE element.
        - *
        - * @method focusTable
        - */
        -YAHOO.widget.DataTable.prototype.focusTable = function() {
        -    var elTable = this._elTable;
        -    if(!this._bFocused) {
        -        // http://developer.mozilla.org/en/docs/index.php?title=Key-navigable_custom_DHTML_widgets
        -        // The timeout is necessary in both IE and Firefox 1.5, to prevent scripts from doing
        -        // strange unexpected things as the user clicks on buttons and other controls.
        -        setTimeout(function() { elTable.focus(); },0);
        -        this._bFocused = true;
        -        this.fireEvent("tableFocusEvent");
        -    }
        -};
        -
        -
        -/**
        - * Replaces all Records in RecordSet and populates TBODY rows with the
        - * new data. Blows away old data. If pagination is enabled, displays only
        - * current page, otherwise displays all rows.
        - *
        - * @method populateTable
        - * @param oData {Object | Object[]} An object literal of data or an array of
        - * object literals containing data.
        - */
        -YAHOO.widget.DataTable.prototype.populateTable = function(oData) {
        -    // Add data to RecordSet
        -    var records = this._oRecordSet.append(oData);
        -    
        -    
        -    // Update table view
        -    this.refreshTable();
        -};
        -
        -/**
        - * Refreshes table view into existing RecordSet. For performance, reuses
        - * existing rows while deleting extraneous rows.
        - *
        - * @method refreshTable
        - */
        -YAHOO.widget.DataTable.prototype.refreshTable = function() {
        -    var aRecords;
        -    
        -    // Paginator is disabled
        -    if(!this.paginator) {
        -        // Paginator must be destroyed
        -        if(this._paginator !== null) {
        -            //TODO: this.destroyPaginator();
        -        }
        -    }
        -    // Paginator is enabled
        -    if(this.paginator) {
        -        this.updatePaginator();
        -        aRecords = this._oRecordSet.getRecords(this._paginator.startRecordIndex, this._paginator.rowsPerPage);
        -    }
        -    // Show all records
        -    else {
        -        aRecords = this._oRecordSet.getRecords();
        -    }
        -
        -    if(YAHOO.lang.isArray(aRecords) && (aRecords.length > 0)) {
        -        this.hideTableMessage();
        -
        -        var elBody = this._elBody;
        -        var elRows = this._elBody.rows;
        -
        -        // Remove extra rows from the bottom so as to preserve ID order
        -        while(elBody.hasChildNodes() && (elRows.length > aRecords.length)) {
        -            elBody.deleteRow(elRows.length-1);
        -        }
        -
        -        // Unselect rows in the UI but keep tracking selected rows
        -        var selectedRecords = this.getSelectedRecordIds();
        -        if(selectedRecords.length > 0) {
        -            this._unselectAllRows();
        -        }
        -
        -        var rowIds = [];
        -        // Format in-place existing rows
        -        for(i=0; i<elRows.length; i++) {
        -            if(aRecords[i]) {
        -                rowIds.push(this._updateRowEl(aRecords[i],i));
        -            }
        -        }
        -
        -        // Add rows as necessary
        -        for(i=elRows.length; i<aRecords.length; i++) {
        -            rowIds.push(this._addRowEl(aRecords[i]));
        -        }
        -
        -        // Select any rows as necessary
        -        for(i=0; i<selectedRecords.length; i++) {
        -            var allRows = elBody.rows;
        -            for(var j=0; j<allRows.length; j++) {
        -                if(selectedRecords[i] == allRows[j].yuiRecordId) {
        -                    this._select([allRows[j]]);
        -                }
        -            }
        -        }
        -
        -        // Set first-row and last-row trackers
        -        this._setFirstRow();
        -        this._setLastRow();
        -
        -        this.fireEvent("tableRefreshEvent", {records:aRecords});
        -
        -        YAHOO.log("Table refreshed with " + aRecords.length + " rows", "info", this.toString());
        -    }
        -    else {
        -        this.showTableMessage(YAHOO.widget.DataTable.MSG_EMPTY, YAHOO.widget.DataTable.CLASS_EMPTY);
        -    }
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -// COLUMN FUNCTIONS
        -
        -
        -
        -
        -/**
        - * Sort given column.
        - *
        - * @method sortColumn
        - * @param oColumn {YAHOO.widget.Column} Column instance.
        - */
        -YAHOO.widget.DataTable.prototype.sortColumn = function(oColumn) {
        -    if(!oColumn) {
        -        return;
        -    }
        -    if(!oColumn instanceof YAHOO.widget.Column) {
        -        //TODO: accept the TH or TH.key
        -        //TODO: Figure out the column based on TH ref or TH.key
        -        return;
        -    }
        -    if(oColumn.sortable) {
        -        // What is the default sort direction?
        -        var sortDir = (oColumn.sortOptions && oColumn.sortOptions.defaultOrder) ? oColumn.sortOptions.defaultOrder : "asc";
        -
        -        //TODO: what if column doesn't have key?
        -        // Is this column sorted already?
        -        if(oColumn.key && this.sortedBy && (this.sortedBy.colKey == oColumn.key)) {
        -            if(this.sortedBy.dir) {
        -                sortDir = (this.sortedBy.dir == "asc") ? "desc" : "asc";
        -            }
        -            else {
        -                sortDir = (sortDir == "asc") ? "desc" : "asc";
        -            }
        -        }
        -        else if(!this.sortedBy) {
        -            this.sortedBy = {};
        -        }
        -
        -        // Define the sort handler function based on the direction
        -        var sortFnc = null;
        -        if((sortDir == "desc") && oColumn.sortOptions && oColumn.sortOptions.descFunction) {
        -            sortFnc = oColumn.sortOptions.descFunction;
        -        }
        -        else if((sortDir == "asc") && oColumn.sortOptions && oColumn.sortOptions.ascFunction) {
        -            sortFnc = oColumn.sortOptions.ascFunction;
        -        }
        -
        -        // Custom function was not provided so use the built-in sorter
        -        // ONLY IF column key is defined
        -        // TODO: nested/cumulative/hierarchical sorting
        -        if(!sortFnc && oColumn.key) {
        -            var sorted;
        -            sortFnc = function(a, b) {
        -                if(sortDir == "desc") {
        -                    sorted = YAHOO.util.Sort.compareDesc(a[oColumn.key],b[oColumn.key]);
        -                    if(sorted === 0) {
        -                        return YAHOO.util.Sort.compareDesc(a.id,b.id);
        -                    }
        -                    else {
        -                        return sorted;
        -                    }
        -                }
        -                else {
        -                    sorted = YAHOO.util.Sort.compareAsc(a[oColumn.key],b[oColumn.key]);
        -                    if(sorted === 0) {
        -                        return YAHOO.util.Sort.compareAsc(a.id,b.id);
        -                    }
        -                    else {
        -                        return sorted;
        -                    }
        -                }
        -            };
        -        }
        -
        -        if(sortFnc) {
        -            // Do the actual sort
        -            this._oRecordSet.sort(sortFnc);
        -
        -            // Update the UI
        -            //TODO
        -            this.refreshTable();
        -
        -            // Update classes
        -            YAHOO.util.Dom.removeClass(this.sortedBy._id,YAHOO.widget.DataTable.CLASS_SORTEDBYASC);
        -            YAHOO.util.Dom.removeClass(this.sortedBy._id,YAHOO.widget.DataTable.CLASS_SORTEDBYDESC);
        -            var newClass = (sortDir == "asc") ? YAHOO.widget.DataTable.CLASS_SORTEDBYASC : YAHOO.widget.DataTable.CLASS_SORTEDBYDESC;
        -            YAHOO.util.Dom.addClass(oColumn.getId(), newClass);
        -
        -            // Keep track of currently sorted column
        -            this.sortedBy.colKey = oColumn.key;
        -            this.sortedBy.dir = sortDir;
        -            this.sortedBy._id = oColumn.getId();
        -
        -            this.fireEvent("columnSortEvent",{column:oColumn,dir:sortDir});
        -            YAHOO.log("Column \"" + oColumn.key + "\" sorted \"" + sortDir + "\"", "info", this.toString());
        -        }
        -    }
        -    else {
        -        //TODO
        -        YAHOO.log("Column is not sortable", "info", this.toString());
        -    }
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -// CSS
        -
        -
        -
        -/**
        - * Sets one or more elements to the highlighted state.
        - *
        - * @method highlight
        - * @param els {HTMLElement | String | HTMLElement[] | String[]} HTML TR element
        - * reference, TR String ID, array of HTML TR element, or array of TR element IDs.
        - */
        -YAHOO.widget.DataTable.prototype.highlight = function(els) {
        -    if(els) {
        -        if(!YAHOO.lang.isArray(els)) {
        -            els = [els];
        -        }
        -        YAHOO.util.Dom.addClass(els,YAHOO.widget.DataTable.CLASS_HIGHLIGHT);
        -        this.fireEvent("highlightEvent",{els:els});
        -    }
        -};
        -
        -/**
        - * Sets one or more elements to the unhighlighted state.
        - *
        - * @method unhighlight
        - * @param els {HTMLElement | String | HTMLElement[] | String[]} HTML TR element
        - * reference, TR String ID, array of HTML TR element, or array of TR element IDs.
        - */
        -YAHOO.widget.DataTable.prototype.unhighlight = function(els) {
        -    if(els) {
        -        if(!YAHOO.lang.isArray(els)) {
        -            els = [els];
        -        }
        -        YAHOO.util.Dom.removeClass(els,YAHOO.widget.DataTable.CLASS_HIGHLIGHT);
        -        this.fireEvent("unhighlightEvent",{els:els});
        -    }
        -};
        -
        -
        -/**
        - * Sets one or more elements to the selected state.
        - *
        - * @method select
        - * @param els {HTMLElement | String | HTMLElement[] | String[]} HTML TR element
        - * reference, TR String ID, array of HTML TR element, or array of TR element IDs.
        - */
        -YAHOO.widget.DataTable.prototype.select = function(els) {
        -    if(els) {
        -        if(!YAHOO.lang.isArray(els)) {
        -            els = [els];
        -        }
        -        this._select(els);
        -
        -        // Add Record ID to internal tracker
        -        var tracker = this._aSelectedRecords || [];
        -        for(var i=0; i<els.length; i++) {
        -            var id = els[i].yuiRecordId;
        -            // Remove if already there
        -            // Use Array.indexOf if available...
        -            if(tracker.indexOf && (tracker.indexOf(id) >  -1)) {
        -                tracker.splice(tracker.indexOf(id),1);
        -            }
        -            // ...or do it the old-fashioned way
        -            else {
        -                for(var j=0; j<tracker.length; j++) {
        -                   if(tracker[j] === id){
        -                        tracker.splice(j,1);
        -                    }
        -                }
        -            }
        -            // Add to the end
        -            tracker.push(id);
        -        }
        -        this._aSelectedRecords = tracker;
        -        this.fireEvent("selectEvent",{els:els});
        -        YAHOO.log(els.length + " element(s) selected", "info", this.toString());
        -    }
        -};
        -
        -/**
        - * Sets one or more elements to the unselected state.
        - *
        - * @method unselect
        - * @param els {HTMLElement | String | HTMLElement[] | String[]} HTML element
        - * reference, element ID, array of HTML elements, or array of element IDs
        - */
        -YAHOO.widget.DataTable.prototype.unselect = function(els) {
        -    if(els) {
        -        if(!YAHOO.lang.isArray(els)) {
        -            els = [els];
        -        }
        -        this._unselect(els);
        -        // Remove Record ID from internal tracker
        -        var tracker = this._aSelectedRecords || [];
        -        for(var i=0; i<els.length; i++) {
        -            var id = els[i].yuiRecordId;
        -        
        -            // Use Array.indexOf if available...
        -            if(tracker.indexOf && (tracker.indexOf(id) >  -1)) {
        -                tracker.splice(tracker.indexOf(id),1);
        -            }
        -            // ...or do it the old-fashioned way
        -            else {
        -                for(var j=0; j<tracker.length; j++) {
        -                    if(tracker[j] === id){
        -                        tracker.splice(j,1);
        -                    }
        -                }
        -            }
        -        }
        -        this._aSelectedRecords = tracker;
        -        this.fireEvent("unselectEvent",{els:els});
        -        YAHOO.log(els.length + " element(s) unselected", "info", this.toString());
        -    }
        -};
        -
        -/**
        - * Unselects all selected cells.
        - *
        - * @method unselectAllCells
        - */
        -YAHOO.widget.DataTable.prototype.unselectAllCells = function() {
        -    var selectedCells = YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.DataTable.CLASS_SELECTED,"td",this._elBody);
        -    this.unselect(selectedCells);
        -    this.fireEvent("unselectEvent", {els:selectedCells});
        -};
        -
        -
        -/**
        - * Returns true if given element is select, false otherwise.
        - *
        - * @method isSelected
        - * @param el {HTMLElement} HTML element reference or ID.
        - * @return {Boolean} True if element is selected.
        - */
        -YAHOO.widget.DataTable.prototype.isSelected = function(el) {
        -    return YAHOO.util.Dom.hasClass(el,YAHOO.widget.DataTable.CLASS_SELECTED);
        -};
        -
        -/**
        - * Returns array of selected Record IDs.
        - *
        - * @method getSelectedRecordIds
        - * @return {HTMLElement[]} Array of selected TR elements.
        - */
        -YAHOO.widget.DataTable.prototype.getSelectedRecordIds = function() {
        -    return this._aSelectedRecords || [];
        -};
        -
        -/**
        - * Returns array of selected rows.
        - *
        - * @method getSelectedRows
        - * @return {HTMLElement[]} Array of selected TR elements.
        - */
        -YAHOO.widget.DataTable.prototype.getSelectedRows = function() {
        -    //TODO: keep internal array if this is non performant
        -    return YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.DataTable.CLASS_SELECTED,"tr",this._elBody);
        -};
        -
        -/**
        - * Returns array of selected TD cells.
        - *
        - * @method getSelectedCells
        - * @return {HTMLElement[]} Array of selected TD elements.
        - */
        -YAHOO.widget.DataTable.prototype.getSelectedCells = function() {
        -    //TODO: keep internal array
        -    return YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.DataTable.CLASS_SELECTED,"td",this._elBody);
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -// ABSTRACT
        -
        -
        -
        -/**
        - * Overridable method gives implementers a hook to access data before
        - * it gets added to RecordSet and rendered to the TBODY.
        - *
        - * @method doBeforeLoadData
        - * @param sRequest {String} Original request.
        - * @param oResponse {Object} Response object.
        - * @return {Boolean} Return true to continue loading data into RecordSet and
        - * updating DataTable with new Records, false to cancel.
        - */
        -YAHOO.widget.DataTable.prototype.doBeforeLoadData = function(sRequest, oResponse) {
        -    return true;
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -// CELL FUNCTIONS
        -
        -/**
        - * Shows editor for given cell.
        - *
        - * @method editCell
        - * @param elCell {HTMLElement} Cell element to edit.
        - */
        -YAHOO.widget.DataTable.prototype.editCell = function(elCell) {
        -    if(elCell && YAHOO.lang.isNumber(elCell.columnIndex)) {
        -        var column = this._oColumnSet.keys[elCell.columnIndex];
        -        if(column && column.editor) {
        -            this.activeEditor = column.getEditor(elCell,this._oRecordSet.getRecord(elCell.parentNode.yuiRecordId));
        -            this._bFocused = true;
        -            if(this.activeEditor) {
        -                // Explicitly call unhighlight for SF2
        -                if(YAHOO.util.Dom.hasClass(elCell, YAHOO.widget.DataTable.CLASS_HIGHLIGHT)) {
        -                    this.unhighlight(elCell);
        -                }
        -                this.fireEvent("editorShowEvent",{target:elCell,column:column});
        -                YAHOO.log("Editor \"" + this.activeEditor.type + "\" activated for cell \"" + elCell.id + "\"", "info", this.toString());
        -            }
        -        }
        -    }
        -};
        -
        -/**
        - * Hides active editor, not saving any data.
        - *
        - * @method cancelEditorData
        - */
        -YAHOO.widget.DataTable.prototype.cancelEditorData = function() {
        -    if(this.activeEditor) {
        -        this.activeEditor.hide();
        -        this.activeEditor = null;
        -
        -        // Editor causes widget to lose focus
        -        //oSelf._bFocused = false;
        -        //oSelf.focusTable();
        -
        -        //TODO: need an event here
        -    }
        -};
        -
        -/**
        - * Saves data in active editor.
        - *
        - * @method saveEditorData
        - */
        -YAHOO.widget.DataTable.prototype.saveEditorData = function() {
        -    if(this.activeEditor) {
        -        var elCell = this.activeEditor.cell;
        -        var oColumn = this.activeEditor.column;
        -        var oRecord = this.activeEditor.record;
        -        var oldValue = oRecord[oColumn.key];
        -        var newValue = this.activeEditor.getValue();
        -
        -        if(YAHOO.util.Lang.isString(oColumn.key)) {
        -            // Update Record field
        -            this._oRecordSet.updateRecordField(oRecord,oColumn.key,newValue);
        -
        -            //Update cell
        -            this.formatCell(elCell);
        -        }
        -        else {
        -            YAHOO.log("Could not save edit due to invalid Column key", "warn", this.toString());
        -        }
        -
        -        // Hide editor
        -        this.activeEditor.hide();
        -        this.activeEditor = null;
        -
        -        // Editor causes widget to lose focus
        -        //this._bFocused = false;
        -        //this.focusTable();
        -        this.fireEvent("cellEditEvent",{target:elCell,oldData:oldValue,newData:newValue});
        -    }
        -};
        -
        -/**
        - * Formats given cell.
        - *
        - * @method formatCell
        - * @param elCell {HTMLElement} Cell element to format.
        - */
        -YAHOO.widget.DataTable.prototype.formatCell = function(elCell) {
        -    if(elCell && YAHOO.lang.isNumber(elCell.columnIndex)) {
        -        var index = elCell.columnIndex;
        -        var column = this._oColumnSet.keys[index];
        -        column.format(elCell,this._oRecordSet.getRecord(elCell.parentNode.yuiRecordId));
        -        if (index === 0) {
        -            YAHOO.util.Dom.addClass(elCell,YAHOO.widget.DataTable.CLASS_FIRST);
        -        }
        -        else if (index === this._oColumnSet.keys.length-1) {
        -            YAHOO.util.Dom.addClass(elCell,YAHOO.widget.DataTable.CLASS_LAST);
        -        }
        -        this.fireEvent("cellFormatEvent", {el:elCell});
        -    }
        -};
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public Custom Event Handlers
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Overridable custom event handler to sort column.
        - *
        - * @method onEventSortColumn
        - * @param oArgs.event {HTMLEvent} Event object.
        - * @param oArgs.target {HTMLElement} Target element.
        - */
        -YAHOO.widget.DataTable.prototype.onEventSortColumn = function(oArgs) {
        -    var evt = oArgs.event;
        -    var target = oArgs.target;
        -    YAHOO.util.Event.stopEvent(evt);
        -    
        -    //TODO: traverse DOM to find a columnIndex, incl safety net if none exists
        -    if(YAHOO.lang.isNumber(target.columnIndex)) {
        -        this.sortColumn(this._oColumnSet.keys[target.columnIndex]);
        -    }
        -    else {
        -        //TODO: support sort on parent of nested header
        -        YAHOO.log("Could not sort due to invalid column","warn",this.toString());
        -    }
        -};
        -
        -/**
        - * Overridable custom event handler to select row according to desktop paradigm.
        - *
        - * @method onEventSelectRow
        - * @param oArgs.event {HTMLEvent} Event object.
        - * @param oArgs.target {HTMLElement} Target element.
        - */
        -YAHOO.widget.DataTable.prototype.onEventSelectRow = function(oArgs) {
        -    var evt = oArgs.event;
        -    var elTarget = oArgs.target;
        -    var elTag = elTarget.tagName.toLowerCase();
        -    var bSingleSelect = this.rowSingleSelect;
        -    var bSHIFT = evt.shiftKey;
        -    var bCTRL = evt.ctrlKey;
        -    var i;
        -
        -    // Traverse up the DOM to find the row
        -    while(elTag != "tr") {
        -        // Bail out
        -        if(elTag == "body") {
        -            return;
        -        }
        -        // Maybe it's the parent
        -        elTarget = elTarget.parentNode;
        -        elTag = elTarget.tagName.toLowerCase();
        -    }
        -    var sTargetId = elTarget.id;
        -    var rows = this._elBody.rows;
        -    var anchor = YAHOO.util.Dom.get(this._selectRowAnchorId);
        -    var anchorIndex;
        -    var targetIndex = elTarget.sectionRowIndex;
        -
        -    // Both SHIFT and CTRL
        -    if(!bSingleSelect && bSHIFT && bCTRL) {
        -        // Validate anchor
        -        if(anchor) {
        -            anchorIndex = anchor.sectionRowIndex;
        -            if(this.isSelected(YAHOO.util.Dom.get(this._selectRowAnchorId))) {
        -                // Select all rows between anchor row and target row, inclusive
        -                if(anchorIndex < targetIndex) {
        -                    for(i=anchorIndex+1; i<=targetIndex; i++) {
        -                        if(!this.isSelected(rows[i])) {
        -                            this.selectRow(rows[i]);
        -                        }
        -                    }
        -                }
        -                // Select from target to anchor
        -                else {
        -                    for(i=targetIndex; i<=anchorIndex-1; i++) {
        -                        if(!this.isSelected(rows[i])) {
        -                            this.selectRow(rows[i]);
        -                        }
        -                    }
        -                }
        -            }
        -            else {
        -                // Unselect all rows between anchor row and target row, exclusive
        -                if(anchorIndex < targetIndex) {
        -                    for(i=anchorIndex+1; i<=targetIndex-1; i++) {
        -                        if(this.isSelected(rows[i])) {
        -                            this.unselectRow(rows[i]);
        -                        }
        -                    }
        -                }
        -                // Select from target to anchor
        -                else {
        -                    for(i=targetIndex+1; i<=anchorIndex-1; i++) {
        -                        if(this.isSelected(rows[i])) {
        -                            this.unselectRow(rows[i]);
        -                        }
        -                    }
        -                }
        -                this.select(elTarget);
        -            }
        -        }
        -        // Invalid anchor
        -        else {
        -            // Set anchor
        -            this._selectRowAnchorId = sTargetId;
        -            
        -            // Toggle selection of target
        -            if(this.isSelected(elTarget)) {
        -                this.unselect(elTarget);
        -            }
        -            else {
        -                this.select(elTarget);
        -            }
        -        }
        -    }
        -    // Only SHIFT
        -    else if(!bSingleSelect && bSHIFT) {
        -        this.unselectAllRows();
        -
        -        // Validate anchor
        -        if(anchor) {
        -            anchorIndex = anchor.sectionRowIndex;
        -            
        -            // Select all rows between anchor row and target row inclusive
        -            if(anchorIndex < targetIndex) {
        -                for(i=anchorIndex; i<=targetIndex; i++) {
        -                    this.selectRow(rows[i]);
        -                }
        -            }
        -            // Select from target to anchor
        -            else {
        -                for(i=targetIndex; i<=anchorIndex; i++) {
        -                    this.selectRow(rows[i]);
        -                }
        -            }
        -        }
        -        // Invalid anchor
        -        else {
        -            // Set anchor
        -            this._selectRowAnchorId = sTargetId;
        -            
        -            // Select target only
        -            this.selectRow(elTarget);
        -        }
        -    }
        -    // Only CTRL
        -    else if(!bSingleSelect && bCTRL) {
        -        // Set anchor
        -        this._selectRowAnchorId = sTargetId;
        -        
        -        // Toggle selection of target
        -        if(this.isSelected(elTarget)) {
        -            this.unselect(elTarget);
        -        }
        -        else {
        -            this.select(elTarget);
        -        }
        -    }
        -    // Neither SHIFT nor CTRL
        -    else if(bSingleSelect) {
        -        this.unselect(this._lastSelectedId);
        -        this.select(elTarget);
        -    }
        -    // Neither SHIFT nor CTRL
        -    else {
        -        // Set anchor
        -        this._selectRowAnchorId = sTargetId;
        -        
        -        // Select only target
        -        this.unselectAllRows();
        -        this.selectRow(elTarget);
        -    }
        -};
        -
        -/**
        - * Overridable custom event handler to select cell.
        - *
        - * @method onEventSelectCell
        - * @param oArgs.event {HTMLEvent} Event object.
        - * @param oArgs.target {HTMLElement} Target element.
        - */
        -YAHOO.widget.DataTable.prototype.onEventSelectCell = function(oArgs) {
        -    var evt = oArgs.event;
        -    var target = oArgs.target;
        -    var elTag = target.tagName.toLowerCase();
        -
        -    // Walk up the DOM until we get to the TD
        -    while(elTag != "td") {
        -        // Bail out
        -        if(elTag == "body") {
        -            return;
        -        }
        -        
        -        target = target.parentNode;
        -        elTag = target.tagName.toLowerCase();
        -    }
        -
        -    if(this.isSelected(target)) {
        -        this.unselect(target);
        -    }
        -    else {
        -        if(this.rowSingleSelect && !evt.ctrlKey) {
        -            this.unselectAllCells();
        -        }
        -        this.select(target);
        -    }
        -};
        -
        -/**
        - * Overridable custom event handler to format cell.
        - *
        - * @method onEventFormatCell
        - * @param oArgs.event {HTMLEvent} Event object.
        - * @param oArgs.target {HTMLElement} Target element.
        - */
        -YAHOO.widget.DataTable.prototype.onEventFormatCell = function(oArgs) {
        -    var evt = oArgs.event;
        -    var target = oArgs.target;
        -    var elTag = target.tagName.toLowerCase();
        -
        -    // Walk up the DOM until we get to the TD
        -    while(elTag != "td") {
        -        // Bail out
        -        if(elTag == "body") {
        -            return;
        -        }
        -
        -        target = target.parentNode;
        -        elTag = target.tagName.toLowerCase();
        -    }
        -
        -    this.formatCell(target);
        -};
        -
        -/**
        - * Overridable custom event handler to highlight cell.
        - *
        - * @method onEventHighlightCell
        - * @param oArgs.event {HTMLEvent} Event object.
        - * @param oArgs.target {HTMLElement} Target element.
        - */
        -YAHOO.widget.DataTable.prototype.onEventHighlightCell = function(oArgs) {
        -    var evt = oArgs.event;
        -    var target = oArgs.target;
        -    var elTag = target.tagName.toLowerCase();
        -
        -    // Walk up the DOM until we get to the TD
        -    while(elTag != "td") {
        -        // Bail out
        -        if(elTag == "body") {
        -            return;
        -        }
        -
        -        target = target.parentNode;
        -        elTag = target.tagName.toLowerCase();
        -    }
        -
        -    this.highlight(target);
        -};
        -
        -/**
        - * Overridable custom event handler to unhighlight cell.
        - *
        - * @method onEventUnhighlightCell
        - * @param oArgs.event {HTMLEvent} Event object.
        - * @param oArgs.target {HTMLElement} Target element.
        - */
        -YAHOO.widget.DataTable.prototype.onEventUnhighlightCell = function(oArgs) {
        -    var evt = oArgs.event;
        -    var target = oArgs.target;
        -    var elTag = target.tagName.toLowerCase();
        -
        -    // Walk up the DOM until we get to the TD
        -    while(elTag != "td") {
        -        // Bail out
        -        if(elTag == "body") {
        -            return;
        -        }
        -
        -        target = target.parentNode;
        -        elTag = target.tagName.toLowerCase();
        -    }
        -
        -    this.unhighlight(target);
        -};
        -/**
        - * Overridable custom event handler to edit cell.
        - *
        - * @method onEventEditCell
        - * @param oArgs.event {HTMLEvent} Event object.
        - * @param oArgs.target {HTMLElement} Target element.
        - */
        -YAHOO.widget.DataTable.prototype.onEventEditCell = function(oArgs) {
        -    var evt = oArgs.event;
        -    var target = oArgs.target;
        -    var elTag = target.tagName.toLowerCase();
        -
        -    // Walk up the DOM until we get to the TD
        -    while(elTag != "td") {
        -        // Bail out
        -        if(elTag == "body") {
        -            return;
        -        }
        -
        -        target = target.parentNode;
        -        elTag = target.tagName.toLowerCase();
        -    }
        -
        -    this.editCell(target);
        -};
        -
        -/**
        - * Calls populateTable() with new data.
        - *
        - * @method onDataReturnPopulateTable
        - * @param sRequest {String} Original request.
        - * @param oResponse {Object} Response object.
        - * @param bError {Boolean} (optional) True if there was a data error.
        - */
        -YAHOO.widget.DataTable.prototype.onDataReturnPopulateTable = function(sRequest, oResponse) {
        -    this.fireEvent("dataReturnEvent", {request:sRequest,response:oResponse});
        -
        -    var ok = this.doBeforeLoadData(sRequest, oResponse);
        -    if(ok && oResponse && !oResponse.error && YAHOO.lang.isArray(oResponse.results)) {
        -        // Populate table with data
        -        this.populateTable(oResponse.results);
        -    }
        -    else if(oResponse.error) {
        -        this.showTableMessage(YAHOO.widget.DataTable.MSG_ERROR, YAHOO.widget.DataTable.CLASS_ERROR);
        -    }
        -    else {
        -        this.showTableMessage(YAHOO.widget.DataTable.MSG_EMPTY, YAHOO.widget.DataTable.CLASS_EMPTY);
        -    }
        -};
        -
        -/**
        - * Add new data to end of table.
        - *
        - * @method onDataReturnAppendRows
        - * @param sRequest {String} Original request.
        - * @param oResponse {Object} Response object.
        - * @param bError {Boolean} (optional) True if there was a data error.
        - */
        -YAHOO.widget.DataTable.prototype.onDataReturnAppendRows = function(sRequest, oResponse) {
        -    this.fireEvent("dataReturnEvent", {request:sRequest,response:oResponse});
        -    
        -    var ok = this.doBeforeLoadData(sRequest, oResponse);
        -    if(ok && oResponse && !oResponse.error && YAHOO.lang.isArray(oResponse.results)) {
        -        // Update the RecordSet from the response
        -        var newRecords = this._addRecords(oResponse.results);
        -        if(newRecords) {
        -            // Update markup
        -            this.appendRows(newRecords);
        -            YAHOO.log("Data returned for " + newRecords.length + " rows","info",this.toString());
        -        }
        -    }
        -    else {
        -        //TODO
        -    }
        -};
        -
        -/**
        - * Handles data return for inserting new rows to top of table.
        - *
        - * @method onDataReturnInsertRows
        - * @param sRequest {String} Original request.
        - * @param oResponse {Object} Response object.
        - * @param bError {Boolean} (optional) True if there was a data error.
        - */
        -YAHOO.widget.DataTable.prototype.onDataReturnInsertRows = function(sRequest, oResponse) {
        -    this.fireEvent("dataReturnEvent", {request:sRequest,response:oResponse});
        -    
        -    var ok = this.doBeforeLoadData(sRequest, oResponse, bError);
        -    if(ok && oResponse && !oResponse.error && YAHOO.lang.isArray(oResponse.results)) {
        -        // Update the RecordSet from the response
        -        var newRecords = this._oRecordSet.insert(oResponse.results);
        -        if(newRecords) {
        -            // Update markup
        -            this.insertRows(newRecords);
        -            YAHOO.log("Data returned for " + newRecords.length + " rows","info",this.toString());
        -        }
        -    }
        -    else {
        -        //TODO
        -    }
        -};
        -
        -/**
        - * Handles data return for replacing all existing of table with new rows.
        - *
        - * @method onDataReturnReplaceRows
        - * @param sRequest {String} Original request.
        - * @param oResponse {Object} Response object.
        - * @param bError {Boolean} (optional) True if there was a data error.
        - */
        -YAHOO.widget.DataTable.prototype.onDataReturnReplaceRows = function(sRequest, oResponse) {
        -    this.fireEvent("dataReturnEvent", {request:sRequest,response:oResponse});
        -    
        -    var ok = this.doBeforeLoadData(sRequest, oResponse, bError);
        -    if(ok && oResponse && !oResponse.error && YAHOO.lang.isArray(oResponse.results)) {
        -        // Update the RecordSet from the response
        -        var newRecords = this._oRecordSet.replace(oResponse.results);
        -        if(newRecords) {
        -            this.replaceRows(newRecords);
        -            YAHOO.log("Data returned for " + newRecords.length + " rows","info",this.toString());
        -        }
        -    }
        -    else {
        -    
        -    }
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Deprecated
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * @deprecated No longer used.
        - * @property isEmpty
        - */
        -/**
        - * @deprecated No longer used.
        - * @property isLoading
        - */
        - /**
        - * @deprecated Deprecated. Please use showTableMessage().
        - * @method showEmptyMessage
        - */
        -/**
        - * @deprecated Deprecated. Please use showTableMessage().
        - * @method showLoadingMessage
        - */
        -/**
        - * @deprecated Deprecated. Please use hideTableMessage().
        - * @method hideTableMessages
        - */
        -/**
        - * @deprecated Deprecated. Please use paginatorOptions.startRecordIndex.
        - * @property startRecordIndex
        - */
        -/**
        - * @deprecated Deprecated. Please use paginatorOptions.pageLinksStart.
        - * @property pageLinksStart
        - */
        -/**
        - * @deprecated Deprecated. Please use paginatorOptions.currentPage
        - * @property pageCurrent
        - */
        -/**
        - * @deprecated Deprecated. Please use paginatorOptions.rowsPerPage
        - * @property rowsPerPage
        - */
        -/**
        - * @deprecated Deprecated. Please use paginatorOptions.pageLinks
        - * @property pageLinksLength
        - */
        -/**
        - * @deprecated Deprecated. Please use paginatorOptions.dropdownOptions
        - * @property rowsPerPageDropdown
        - */
        -/**
        - * @deprecated Deprecated. Please use paginatorOptions.containers
        - * @property pagers
        - */
        -/**
        - * @deprecated Deprecated in favor of populateTable().
        - * @method populateTable
        - */
        - /**
        - * @deprecated Deprecated. Please use onDataReturnPopulateTable().
        - * @method onDataReturnPaginateRows
        - */
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/DateMath.js.html b/www/extras/yui/docs/DateMath.js.html deleted file mode 100644 index b7540d47c..000000000 --- a/www/extras/yui/docs/DateMath.js.html +++ /dev/null @@ -1,383 +0,0 @@ - - - - API: calendar DateMath.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Calendar  2.2.2

        -

        - Yahoo! UI Library - > calendar - - > DateMath.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* YAHOO.widget.DateMath is used for simple date manipulation. The class is a static utility
        -* used for adding, subtracting, and comparing dates.
        -* @namespace YAHOO.widget
        -* @class DateMath
        -*/
        -YAHOO.widget.DateMath = {
        -	/**
        -	* Constant field representing Day
        -	* @property DAY
        -	* @static
        -	* @final
        -	* @type String
        -	*/
        -	DAY : "D",
        -
        -	/**
        -	* Constant field representing Week
        -	* @property WEEK
        -	* @static
        -	* @final
        -	* @type String
        -	*/
        -	WEEK : "W",
        -
        -	/**
        -	* Constant field representing Year
        -	* @property YEAR
        -	* @static
        -	* @final
        -	* @type String
        -	*/
        -	YEAR : "Y",
        -
        -	/**
        -	* Constant field representing Month
        -	* @property MONTH
        -	* @static
        -	* @final
        -	* @type String
        -	*/
        -	MONTH : "M",
        -
        -	/**
        -	* Constant field representing one day, in milliseconds
        -	* @property ONE_DAY_MS
        -	* @static
        -	* @final
        -	* @type Number
        -	*/
        -	ONE_DAY_MS : 1000*60*60*24,
        -
        -	/**
        -	* Adds the specified amount of time to the this instance.
        -	* @method add
        -	* @param {Date} date	The JavaScript Date object to perform addition on
        -	* @param {String} field	The field constant to be used for performing addition.
        -	* @param {Number} amount	The number of units (measured in the field constant) to add to the date.
        -	* @return {Date} The resulting Date object
        -	*/
        -	add : function(date, field, amount) {
        -		var d = new Date(date.getTime());
        -		switch (field) {
        -			case this.MONTH:
        -				var newMonth = date.getMonth() + amount;
        -				var years = 0;
        -
        -
        -				if (newMonth < 0) {
        -					while (newMonth < 0) {
        -						newMonth += 12;
        -						years -= 1;
        -					}
        -				} else if (newMonth > 11) {
        -					while (newMonth > 11) {
        -						newMonth -= 12;
        -						years += 1;
        -					}
        -				}
        -				
        -				d.setMonth(newMonth);
        -				d.setFullYear(date.getFullYear() + years);
        -				break;
        -			case this.DAY:
        -				d.setDate(date.getDate() + amount);
        -				break;
        -			case this.YEAR:
        -				d.setFullYear(date.getFullYear() + amount);
        -				break;
        -			case this.WEEK:
        -				d.setDate(date.getDate() + (amount * 7));
        -				break;
        -		}
        -		return d;
        -	},
        -
        -	/**
        -	* Subtracts the specified amount of time from the this instance.
        -	* @method subtract
        -	* @param {Date} date	The JavaScript Date object to perform subtraction on
        -	* @param {Number} field	The this field constant to be used for performing subtraction.
        -	* @param {Number} amount	The number of units (measured in the field constant) to subtract from the date.
        -	* @return {Date} The resulting Date object
        -	*/
        -	subtract : function(date, field, amount) {
        -		return this.add(date, field, (amount*-1));
        -	},
        -
        -	/**
        -	* Determines whether a given date is before another date on the calendar.
        -	* @method before
        -	* @param {Date} date		The Date object to compare with the compare argument
        -	* @param {Date} compareTo	The Date object to use for the comparison
        -	* @return {Boolean} true if the date occurs before the compared date; false if not.
        -	*/
        -	before : function(date, compareTo) {
        -		var ms = compareTo.getTime();
        -		if (date.getTime() < ms) {
        -			return true;
        -		} else {
        -			return false;
        -		}
        -	},
        -
        -	/**
        -	* Determines whether a given date is after another date on the calendar.
        -	* @method after
        -	* @param {Date} date		The Date object to compare with the compare argument
        -	* @param {Date} compareTo	The Date object to use for the comparison
        -	* @return {Boolean} true if the date occurs after the compared date; false if not.
        -	*/
        -	after : function(date, compareTo) {
        -		var ms = compareTo.getTime();
        -		if (date.getTime() > ms) {
        -			return true;
        -		} else {
        -			return false;
        -		}
        -	},
        -
        -	/**
        -	* Determines whether a given date is between two other dates on the calendar.
        -	* @method between
        -	* @param {Date} date		The date to check for
        -	* @param {Date} dateBegin	The start of the range
        -	* @param {Date} dateEnd		The end of the range
        -	* @return {Boolean} true if the date occurs between the compared dates; false if not.
        -	*/
        -	between : function(date, dateBegin, dateEnd) {
        -		if (this.after(date, dateBegin) && this.before(date, dateEnd)) {
        -			return true;
        -		} else {
        -			return false;
        -		}
        -	},
        -	
        -	/**
        -	* Retrieves a JavaScript Date object representing January 1 of any given year.
        -	* @method getJan1
        -	* @param {Number} calendarYear		The calendar year for which to retrieve January 1
        -	* @return {Date}	January 1 of the calendar year specified.
        -	*/
        -	getJan1 : function(calendarYear) {
        -		return new Date(calendarYear,0,1); 
        -	},
        -
        -	/**
        -	* Calculates the number of days the specified date is from January 1 of the specified calendar year.
        -	* Passing January 1 to this function would return an offset value of zero.
        -	* @method getDayOffset
        -	* @param {Date}	date	The JavaScript date for which to find the offset
        -	* @param {Number} calendarYear	The calendar year to use for determining the offset
        -	* @return {Number}	The number of days since January 1 of the given year
        -	*/
        -	getDayOffset : function(date, calendarYear) {
        -		var beginYear = this.getJan1(calendarYear); // Find the start of the year. This will be in week 1.
        -		
        -		// Find the number of days the passed in date is away from the calendar year start
        -		var dayOffset = Math.ceil((date.getTime()-beginYear.getTime()) / this.ONE_DAY_MS);
        -		return dayOffset;
        -	},
        -
        -	/**
        -	* Calculates the week number for the given date. This function assumes that week 1 is the
        -	* week in which January 1 appears, regardless of whether the week consists of a full 7 days.
        -	* The calendar year can be specified to help find what a the week number would be for a given
        -	* date if the date overlaps years. For instance, a week may be considered week 1 of 2005, or
        -	* week 53 of 2004. Specifying the optional calendarYear allows one to make this distinction
        -	* easily.
        -	* @method getWeekNumber
        -	* @param {Date}	date	The JavaScript date for which to find the week number
        -	* @param {Number} calendarYear	OPTIONAL - The calendar year to use for determining the week number. Default is
        -	*											the calendar year of parameter "date".
        -	* @param {Number} weekStartsOn	OPTIONAL - The integer (0-6) representing which day a week begins on. Default is 0 (for Sunday).
        -	* @return {Number}	The week number of the given date.
        -	*/
        -	getWeekNumber : function(date, calendarYear) {
        -		date = this.clearTime(date);
        -		var nearestThurs = new Date(date.getTime() + (4 * this.ONE_DAY_MS) - ((date.getDay()) * this.ONE_DAY_MS));
        -
        -		var jan1 = new Date(nearestThurs.getFullYear(),0,1);
        -		var dayOfYear = ((nearestThurs.getTime() - jan1.getTime()) / this.ONE_DAY_MS) - 1;
        -
        -		var weekNum = Math.ceil((dayOfYear)/ 7);
        -		return weekNum;
        -	},
        -
        -	/**
        -	* Determines if a given week overlaps two different years.
        -	* @method isYearOverlapWeek
        -	* @param {Date}	weekBeginDate	The JavaScript Date representing the first day of the week.
        -	* @return {Boolean}	true if the date overlaps two different years.
        -	*/
        -	isYearOverlapWeek : function(weekBeginDate) {
        -		var overlaps = false;
        -		var nextWeek = this.add(weekBeginDate, this.DAY, 6);
        -		if (nextWeek.getFullYear() != weekBeginDate.getFullYear()) {
        -			overlaps = true;
        -		}
        -		return overlaps;
        -	},
        -
        -	/**
        -	* Determines if a given week overlaps two different months.
        -	* @method isMonthOverlapWeek
        -	* @param {Date}	weekBeginDate	The JavaScript Date representing the first day of the week.
        -	* @return {Boolean}	true if the date overlaps two different months.
        -	*/
        -	isMonthOverlapWeek : function(weekBeginDate) {
        -		var overlaps = false;
        -		var nextWeek = this.add(weekBeginDate, this.DAY, 6);
        -		if (nextWeek.getMonth() != weekBeginDate.getMonth()) {
        -			overlaps = true;
        -		}
        -		return overlaps;
        -	},
        -
        -	/**
        -	* Gets the first day of a month containing a given date.
        -	* @method findMonthStart
        -	* @param {Date}	date	The JavaScript Date used to calculate the month start
        -	* @return {Date}		The JavaScript Date representing the first day of the month
        -	*/
        -	findMonthStart : function(date) {
        -		var start = new Date(date.getFullYear(), date.getMonth(), 1);
        -		return start;
        -	},
        -
        -	/**
        -	* Gets the last day of a month containing a given date.
        -	* @method findMonthEnd
        -	* @param {Date}	date	The JavaScript Date used to calculate the month end
        -	* @return {Date}		The JavaScript Date representing the last day of the month
        -	*/
        -	findMonthEnd : function(date) {
        -		var start = this.findMonthStart(date);
        -		var nextMonth = this.add(start, this.MONTH, 1);
        -		var end = this.subtract(nextMonth, this.DAY, 1);
        -		return end;
        -	},
        -
        -	/**
        -	* Clears the time fields from a given date, effectively setting the time to 12 noon.
        -	* @method clearTime
        -	* @param {Date}	date	The JavaScript Date for which the time fields will be cleared
        -	* @return {Date}		The JavaScript Date cleared of all time fields
        -	*/
        -	clearTime : function(date) {
        -		date.setHours(12,0,0,0);
        -		return date;
        -	}
        -};
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Dialog.js.html b/www/extras/yui/docs/Dialog.js.html deleted file mode 100644 index 52e531ffa..000000000 --- a/www/extras/yui/docs/Dialog.js.html +++ /dev/null @@ -1,937 +0,0 @@ - - - - API: container Dialog.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - - > Dialog.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* Dialog is an implementation of Panel that can be used to submit form data. Built-in functionality for buttons with event handlers is included, and button sets can be build dynamically, or the preincluded ones for Submit/Cancel and OK/Cancel can be utilized. Forms can be processed in 3 ways -- via an asynchronous Connection utility call, a simple form POST or GET, or manually.
        -* @namespace YAHOO.widget
        -* @class Dialog
        -* @extends YAHOO.widget.Panel
        -* @constructor
        -* @param {String}	el	The element ID representing the Dialog <em>OR</em>
        -* @param {HTMLElement}	el	The element representing the Dialog
        -* @param {Object}	userConfig	The configuration object literal containing the configuration that should be set for this Dialog. See configuration documentation for more details.
        -*/
        -YAHOO.widget.Dialog = function(el, userConfig) {
        -	YAHOO.widget.Dialog.superclass.constructor.call(this, el, userConfig);
        -};
        -
        -YAHOO.extend(YAHOO.widget.Dialog, YAHOO.widget.Panel);
        -
        -/**
        -* Constant representing the default CSS class used for a Dialog
        -* @property YAHOO.widget.Dialog.CSS_DIALOG
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Dialog.CSS_DIALOG = "yui-dialog";
        -
        -/**
        -* Constant representing the name of the Dialog's events
        -* @property YAHOO.widget.Dialog._EVENT_TYPES
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.Dialog._EVENT_TYPES = {
        -
        -	"BEFORE_SUBMIT": "beforeSubmit",
        -	"SUBMIT": "submit",
        -	"MANUAL_SUBMIT": "manualSubmit",
        -	"ASYNC_SUBMIT": "asyncSubmit",
        -	"FORM_SUBMIT": "formSubmit",
        -	"CANCEL": "cancel"
        -
        -};
        -
        -/**
        -* Constant representing the Dialog's configuration properties
        -* @property YAHOO.widget.Dialog._DEFAULT_CONFIG
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.Dialog._DEFAULT_CONFIG = {
        -
        -	"POST_METHOD": { 
        -	   key: "postmethod", 
        -	   value: "async" 
        -    },
        -
        -	"BUTTONS": { 
        -	   key: "buttons", 
        -	   value: "none" 
        -    }
        -
        -};
        -
        -/**
        -* Initializes the class's configurable properties which can be changed using the Dialog's Config object (cfg).
        -* @method initDefaultConfig
        -*/
        -YAHOO.widget.Dialog.prototype.initDefaultConfig = function() {
        -	YAHOO.widget.Dialog.superclass.initDefaultConfig.call(this);
        -
        -	/**
        -	* The internally maintained callback object for use with the Connection utility
        -	* @property callback
        -	* @type Object
        -	*/
        -	this.callback = {
        -		/**
        -		* The function to execute upon success of the Connection submission
        -		* @property callback.success
        -		* @type Function
        -		*/
        -		success : null,
        -		/**
        -		* The function to execute upon failure of the Connection submission
        -		* @property callback.failure
        -		* @type Function
        -		*/
        -		failure : null,
        -		/**
        -		* The arbitraty argument or arguments to pass to the Connection callback functions
        -		* @property callback.argument
        -		* @type Object
        -		*/
        -		argument: null
        -	};
        -
        -	// Add form dialog config properties //
        -	
        -	var DEFAULT_CONFIG = YAHOO.widget.Dialog._DEFAULT_CONFIG;
        -	
        -	/**
        -	* The method to use for posting the Dialog's form. Possible values are "async", "form", and "manual".
        -	* @config postmethod
        -	* @type String
        -	* @default async
        -	*/
        -	this.cfg.addProperty(
        -	           DEFAULT_CONFIG.POST_METHOD.key, 
        -                {
        -                    handler: this.configPostMethod, 
        -                    value: DEFAULT_CONFIG.POST_METHOD.value, 
        -                    validator: function(val) {
        -                        if (val != "form" && val != "async" && val != "none" && val != "manual") {
        -                            return false;
        -                        } else {
        -                            return true;
        -                        }
        -                    }
        -                }
        -            );
        -
        -	/**
        -	* Object literal(s) defining the buttons for the Dialog's footer.
        -	* @config buttons
        -	* @type Object[]
        -	* @default "none"
        -	*/
        -	this.cfg.addProperty(
        -	           DEFAULT_CONFIG.BUTTONS.key,
        -	           {
        -	               handler: this.configButtons,
        -	               value: DEFAULT_CONFIG.BUTTONS.value
        -               }
        -           );	
        -	
        -};
        -
        -/**
        -* Initializes the custom events for Dialog which are fired automatically at appropriate times by the Dialog class.
        -* @method initEvents
        -*/
        -YAHOO.widget.Dialog.prototype.initEvents = function() {
        -	YAHOO.widget.Dialog.superclass.initEvents.call(this);
        -
        -    var EVENT_TYPES = YAHOO.widget.Dialog._EVENT_TYPES;
        -
        -	/**
        -	* CustomEvent fired prior to submission
        -	* @event beforeSumitEvent
        -	*/	
        -	this.beforeSubmitEvent	= new YAHOO.util.CustomEvent(EVENT_TYPES.BEFORE_SUBMIT, this);
        -	
        -	/**
        -	* CustomEvent fired after submission
        -	* @event submitEvent
        -	*/
        -	this.submitEvent		= new YAHOO.util.CustomEvent(EVENT_TYPES.SUBMIT, this);
        -
        -	/**
        -	* CustomEvent fired prior to manual submission
        -	* @event manualSubmitEvent
        -	*/
        -	this.manualSubmitEvent	= new YAHOO.util.CustomEvent(EVENT_TYPES.MANUAL_SUBMIT, this);
        -
        -	/**
        -	* CustomEvent fired prior to asynchronous submission
        -	* @event asyncSubmitEvent
        -	*/	
        -	this.asyncSubmitEvent	= new YAHOO.util.CustomEvent(EVENT_TYPES.ASYNC_SUBMIT, this);
        -
        -	/**
        -	* CustomEvent fired prior to form-based submission
        -	* @event formSubmitEvent
        -	*/
        -	this.formSubmitEvent	= new YAHOO.util.CustomEvent(EVENT_TYPES.FORM_SUBMIT, this);
        -
        -	/**
        -	* CustomEvent fired after cancel
        -	* @event cancelEvent
        -	*/
        -	this.cancelEvent		= new YAHOO.util.CustomEvent(EVENT_TYPES.CANCEL, this);
        -};
        -
        -/**
        -* The Dialog initialization method, which is executed for Dialog and all of its subclasses. This method is automatically called by the constructor, and  sets up all DOM references for pre-existing markup, and creates required markup if it is not already present.
        -* @method init
        -* @param {String}	el	The element ID representing the Dialog <em>OR</em>
        -* @param {HTMLElement}	el	The element representing the Dialog
        -* @param {Object}	userConfig	The configuration object literal containing the configuration that should be set for this Dialog. See configuration documentation for more details.
        -*/
        -YAHOO.widget.Dialog.prototype.init = function(el, userConfig) {
        -	YAHOO.widget.Dialog.superclass.init.call(this, el/*, userConfig*/);  // Note that we don't pass the user config in here yet because we only want it executed once, at the lowest subclass level
        -
        -	this.beforeInitEvent.fire(YAHOO.widget.Dialog);
        -
        -	YAHOO.util.Dom.addClass(this.element, YAHOO.widget.Dialog.CSS_DIALOG);
        -
        -	this.cfg.setProperty("visible", false);
        -
        -	if (userConfig) {
        -		this.cfg.applyConfig(userConfig, true);
        -	}
        -
        -	this.showEvent.subscribe(this.focusFirst, this, true);
        -	this.beforeHideEvent.subscribe(this.blurButtons, this, true);
        -
        -	this.beforeRenderEvent.subscribe(function() {
        -		var buttonCfg = this.cfg.getProperty("buttons");
        -		if (buttonCfg && buttonCfg != "none") {
        -			if (! this.footer) {
        -				this.setFooter("");
        -			}
        -		}
        -	}, this, true);
        -
        -	this.initEvent.fire(YAHOO.widget.Dialog);
        -};
        -
        -/**
        -* Performs the submission of the Dialog form depending on the value of "postmethod" property.
        -* @method doSubmit
        -*/
        -YAHOO.widget.Dialog.prototype.doSubmit = function() {
        -	var pm = this.cfg.getProperty("postmethod");
        -	switch (pm) {
        -		case "async":
        -			var method = this.form.getAttribute("method") || 'POST';
        -			method = method.toUpperCase();
        -			YAHOO.util.Connect.setForm(this.form);
        -			var cObj = YAHOO.util.Connect.asyncRequest(method, this.form.getAttribute("action"), this.callback);
        -			this.asyncSubmitEvent.fire();
        -			break;
        -		case "form":
        -			this.form.submit();
        -			this.formSubmitEvent.fire();
        -			break;
        -		case "none":
        -		case "manual":
        -			this.manualSubmitEvent.fire();
        -			break;
        -	}
        -};
        -
        -/**
        -* @method _onFormKeyDown
        -* @description "keydown" event handler for the dialog's form.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -YAHOO.widget.Dialog.prototype._onFormKeyDown = function(p_oEvent) {
        -
        -    var oTarget = YAHOO.util.Event.getTarget(p_oEvent),
        -        nCharCode = YAHOO.util.Event.getCharCode(p_oEvent);
        -
        -    if (
        -        nCharCode == 13 && 
        -        oTarget.tagName && 
        -        oTarget.tagName.toUpperCase() == "INPUT"
        -    ) {
        -
        -        var sType = oTarget.type;
        -
        -        if(
        -            sType == "text" || sType == "password" || sType == "checkbox" || 
        -            sType == "radio" || sType == "file"
        -        ) {
        -
        -            // Fire the "click" event on the dialog's default button
        -            this.defaultHtmlButton.click();
        -        
        -        }
        -
        -    }
        -
        -};
        -
        -/**
        -* Prepares the Dialog's internal FORM object, creating one if one is not currently present.
        -* @method registerForm
        -*/
        -YAHOO.widget.Dialog.prototype.registerForm = function() {
        -	var form = this.element.getElementsByTagName("form")[0];
        -
        -	if (! form) {
        -		var formHTML = "<form name=\"frm_" + this.id + "\" action=\"\"></form>";
        -		this.body.innerHTML += formHTML;
        -		form = this.element.getElementsByTagName("form")[0];
        -	}
        -
        -	this.firstFormElement = function() {
        -		for (var f=0;f<form.elements.length;f++ ) {
        -			var el = form.elements[f];
        -			if (el.focus && ! el.disabled) {
        -				if (el.type && el.type != "hidden") {
        -					return el;
        -				}
        -			}
        -		}
        -		return null;
        -	}();
        -
        -	this.lastFormElement = function() {
        -		for (var f=form.elements.length-1;f>=0;f-- ) {
        -			var el = form.elements[f];
        -			if (el.focus && ! el.disabled) {
        -				if (el.type && el.type != "hidden") {
        -					return el;
        -				}
        -			}
        -		}
        -		return null;
        -	}();
        -
        -	this.form = form;
        -
        -    if(this.form && (this.browser == "ie" || this.browser == "ie7" || this.browser == "gecko")) {
        -
        -        YAHOO.util.Event.addListener(this.form, "keydown", this._onFormKeyDown, null, this);
        -    
        -    }
        -
        -
        -	if (this.cfg.getProperty("modal") && this.form) {
        -
        -		var me = this;
        -
        -		var firstElement = this.firstFormElement || this.firstButton;
        -		if (firstElement) {
        -			this.preventBackTab = new YAHOO.util.KeyListener(firstElement, { shift:true, keys:9 }, {fn:me.focusLast, scope:me, correctScope:true} );
        -			this.showEvent.subscribe(this.preventBackTab.enable, this.preventBackTab, true);
        -			this.hideEvent.subscribe(this.preventBackTab.disable, this.preventBackTab, true);
        -		}
        -
        -		var lastElement = this.lastButton || this.lastFormElement;
        -		if (lastElement) {
        -			this.preventTabOut = new YAHOO.util.KeyListener(lastElement, { shift:false, keys:9 }, {fn:me.focusFirst, scope:me, correctScope:true} );
        -			this.showEvent.subscribe(this.preventTabOut.enable, this.preventTabOut, true);
        -			this.hideEvent.subscribe(this.preventTabOut.disable, this.preventTabOut, true);
        -		}
        -	}
        -};
        -
        -// BEGIN BUILT-IN PROPERTY EVENT HANDLERS //
        -
        -/**
        -* The default event handler fired when the "close" property is changed. The method controls the appending or hiding of the close icon at the top right of the Dialog.
        -* @method configClose
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Dialog.prototype.configClose = function(type, args, obj) {
        -	var val = args[0];
        -
        -	var doCancel = function(e, obj) {
        -		obj.cancel();
        -	};
        -
        -	if (val) {
        -		if (! this.close) {
        -			this.close = document.createElement("div");
        -			YAHOO.util.Dom.addClass(this.close, "container-close");
        -
        -			this.close.innerHTML = "&#160;";
        -			this.innerElement.appendChild(this.close);
        -			YAHOO.util.Event.addListener(this.close, "click", doCancel, this);
        -		} else {
        -			this.close.style.display = "block";
        -		}
        -	} else {
        -		if (this.close) {
        -			this.close.style.display = "none";
        -		}
        -	}
        -};
        -
        -/**
        -* The default event handler for the "buttons" configuration property
        -* @method configButtons
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Dialog.prototype.configButtons = function(type, args, obj) {
        -	var buttons = args[0];
        -	if (buttons != "none") {
        -		this.buttonSpan = null;
        -		this.buttonSpan = document.createElement("span");
        -		this.buttonSpan.className = "button-group";
        -
        -		for (var b=0;b<buttons.length;b++) {
        -			var button = buttons[b];
        -
        -			var htmlButton = document.createElement("button");
        -			htmlButton.setAttribute("type", "button");
        -
        -			if (button.isDefault) {
        -				htmlButton.className = "default";
        -				this.defaultHtmlButton = htmlButton;
        -			}
        -
        -			htmlButton.appendChild(document.createTextNode(button.text));
        -			YAHOO.util.Event.addListener(htmlButton, "click", button.handler, this, true);
        -
        -			this.buttonSpan.appendChild(htmlButton);
        -			button.htmlButton = htmlButton;
        -
        -			if (b === 0) {
        -				this.firstButton = button.htmlButton;
        -			}
        -
        -			if (b == (buttons.length-1)) {
        -				this.lastButton = button.htmlButton;
        -			}
        -
        -		}
        -
        -		this.setFooter(this.buttonSpan);
        -
        -		this.cfg.refireEvent("iframe");
        -		this.cfg.refireEvent("underlay");
        -	} else { // Do cleanup
        -		if (this.buttonSpan) {
        -			if (this.buttonSpan.parentNode) {
        -				this.buttonSpan.parentNode.removeChild(this.buttonSpan);
        -			}
        -
        -			this.buttonSpan = null;
        -			this.firstButton = null;
        -			this.lastButton = null;
        -			this.defaultHtmlButton = null;
        -		}
        -	}
        -};
        -
        -
        -/**
        -* The default event handler used to focus the first field of the form when the Dialog is shown.
        -* @method focusFirst
        -*/
        -YAHOO.widget.Dialog.prototype.focusFirst = function(type,args,obj) {
        -	if (args) {
        -		var e = args[1];
        -		if (e) {
        -			YAHOO.util.Event.stopEvent(e);
        -		}
        -	}
        -
        -	if (this.firstFormElement) {
        -		this.firstFormElement.focus();
        -	} else {
        -		this.focusDefaultButton();
        -	}
        -};
        -
        -/**
        -* Sets the focus to the last button in the button or form element in the Dialog
        -* @method focusLast
        -*/
        -YAHOO.widget.Dialog.prototype.focusLast = function(type,args,obj) {
        -	if (args) {
        -		var e = args[1];
        -		if (e) {
        -			YAHOO.util.Event.stopEvent(e);
        -		}
        -	}
        -
        -	var buttons = this.cfg.getProperty("buttons");
        -	if (buttons && buttons instanceof Array) {
        -		this.focusLastButton();
        -	} else {
        -		if (this.lastFormElement) {
        -			this.lastFormElement.focus();
        -		}
        -	}
        -};
        -
        -/**
        -* Sets the focus to the button that is designated as the default. By default, his handler is executed when the show event is fired.
        -* @method focusDefaultButton
        -*/
        -YAHOO.widget.Dialog.prototype.focusDefaultButton = function() {
        -	if (this.defaultHtmlButton) {
        -		this.defaultHtmlButton.focus();
        -	}
        -};
        -
        -/**
        -* Blurs all the html buttons
        -* @method blurButtons
        -*/
        -YAHOO.widget.Dialog.prototype.blurButtons = function() {
        -	var buttons = this.cfg.getProperty("buttons");
        -	if (buttons && buttons instanceof Array) {
        -		var html = buttons[0].htmlButton;
        -		if (html) {
        -			html.blur();
        -		}
        -	}
        -};
        -
        -/**
        -* Sets the focus to the first button in the button list
        -* @method focusFirstButton
        -*/
        -YAHOO.widget.Dialog.prototype.focusFirstButton = function() {
        -	var buttons = this.cfg.getProperty("buttons");
        -	if (buttons && buttons instanceof Array) {
        -		var html = buttons[0].htmlButton;
        -		if (html) {
        -			html.focus();
        -		}
        -	}
        -};
        -
        -/**
        -* Sets the focus to the first button in the button list
        -* @method focusLastButton
        -*/
        -YAHOO.widget.Dialog.prototype.focusLastButton = function() {
        -	var buttons = this.cfg.getProperty("buttons");
        -	if (buttons && buttons instanceof Array) {
        -		var html = buttons[buttons.length-1].htmlButton;
        -		if (html) {
        -			html.focus();
        -		}
        -	}
        -};
        -
        -/**
        -* The default event handler for the "postmethod" configuration property
        -* @method configPostMethod
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Dialog.prototype.configPostMethod = function(type, args, obj) {
        -	var postmethod = args[0];
        -
        -	this.registerForm();
        -	YAHOO.util.Event.addListener(this.form, "submit", function(e) {
        -														YAHOO.util.Event.stopEvent(e);
        -														this.submit();
        -														this.form.blur();
        -													  }, this, true);
        -};
        -
        -// END BUILT-IN PROPERTY EVENT HANDLERS //
        -
        -/**
        -* Built-in function hook for writing a validation function that will be checked for a "true" value prior to a submit. This function, as implemented by default, always returns true, so it should be overridden if validation is necessary.
        -* @method validate
        -*/
        -YAHOO.widget.Dialog.prototype.validate = function() {
        -	return true;
        -};
        -
        -/**
        -* Executes a submit of the Dialog followed by a hide, if validation is successful.
        -* @method submit
        -*/
        -YAHOO.widget.Dialog.prototype.submit = function() {
        -	if (this.validate()) {
        -		this.beforeSubmitEvent.fire();
        -		this.doSubmit();
        -		this.submitEvent.fire();
        -		this.hide();
        -		return true;
        -	} else {
        -		return false;
        -	}
        -};
        -
        -/**
        -* Executes the cancel of the Dialog followed by a hide.
        -* @method cancel
        -*/
        -YAHOO.widget.Dialog.prototype.cancel = function() {
        -	this.cancelEvent.fire();
        -	this.hide();
        -};
        -
        -/**
        -* Returns a JSON-compatible data structure representing the data currently contained in the form.
        -* @method getData
        -* @return {Object} A JSON object reprsenting the data of the current form.
        -*/
        -YAHOO.widget.Dialog.prototype.getData = function() {
        -
        -    var oForm = this.form;
        -
        -    if(oForm) {
        -
        -        var aElements = oForm.elements,
        -            nTotalElements = aElements.length,
        -            oData = {},
        -            sName,
        -            oElement,
        -            nElements;
        -
        -        for(var i=0; i<nTotalElements; i++) {
        -
        -            sName = aElements[i].name;
        -
        -            function isFormElement(p_oElement) {
        -            
        -                var sTagName = p_oElement.tagName.toUpperCase();
        -                
        -                return (
        -                    (
        -                        sTagName == "INPUT" || 
        -                        sTagName == "TEXTAREA" || 
        -                        sTagName == "SELECT"
        -                    ) && 
        -                    p_oElement.name == sName
        -                );
        -
        -            }
        -
        -            /*
        -                Using "YAHOO.util.Dom.getElementsBy" to safeguard
        -                user from JS errors that result from giving a form field (or 
        -                set of fields) the same name as a native method of a form 
        -                (like "submit") or a DOM collection (such as the "item" method).
        -                Originally tried accessing fields via the "namedItem" method of 
        -                the "element" collection, but discovered that it won't return
        -                a collection of fields in Gecko.
        -            */
        -
        -            oElement = YAHOO.util.Dom.getElementsBy(isFormElement, "*", oForm);
        -            nElements = oElement.length;
        -
        -            if(nElements > 0) {
        -
        -                if(nElements == 1) {
        -
        -                    oElement = oElement[0];
        -
        -                    var sType = oElement.type,
        -                        sTagName = oElement.tagName.toUpperCase();
        -
        -                    switch(sTagName) {
        -
        -                        case "INPUT":
        -
        -                            if(sType == "checkbox") {
        -
        -                                oData[sName] = oElement.checked;
        -
        -                            }
        -                            else if(sType != "radio") {
        -
        -                                oData[sName] = oElement.value;
        -
        -                            }
        -
        -                        break;
        -
        -                        case "TEXTAREA":
        -
        -                            oData[sName] = oElement.value;
        -
        -                        break;
        -
        -                        case "SELECT":
        -
        -                            var aOptions = oElement.options,
        -                                nOptions = aOptions.length,
        -                                aValues = [],
        -                                oOption,
        -                                sValue;
        -
        -
        -                            for(var n=0; n<nOptions; n++) {
        -
        -                                oOption = aOptions[n];
        -
        -                                if(oOption.selected) {
        -
        -                                    sValue = oOption.value;
        -
        -                                    if(!sValue || sValue === "") {
        -
        -                                        sValue = oOption.text;
        -
        -                                    }
        -
        -                                    aValues[aValues.length] = sValue;
        -
        -                                }
        -
        -                            }
        -
        -                            oData[sName] = aValues;
        -
        -                        break;
        -
        -                    }
        -
        -
        -                }
        -                else {
        -
        -                    var sType = oElement[0].type;
        -
        -                    switch(sType) {
        -
        -                        case "radio":
        -
        -                            var oRadio;
        -
        -                            for(var n=0; n<nElements; n++) {
        -
        -                                oRadio = oElement[n];
        -
        -                                if(oRadio.checked) {
        -
        -                                    oData[sName] = oRadio.value;
        -                                    break;
        -
        -                                }
        -
        -                            }
        -
        -                        break;
        -
        -                        case "checkbox":
        -
        -                            var aValues = [],
        -                                oCheckbox;
        -
        -                            for(var n=0; n<nElements; n++) {
        -
        -                                oCheckbox = oElement[n];
        -
        -                                if(oCheckbox.checked) {
        -
        -                                    aValues[aValues.length] = oCheckbox.value;
        -
        -                                }
        -
        -                            }
        -
        -                            oData[sName] = aValues;
        -
        -                        break;
        -
        -                    }
        -
        -                }
        -
        -            }
        -
        -        }
        -
        -    }
        -
        -
        -    return oData;
        -
        -};
        -
        -/**
        -* Removes the Panel element from the DOM and sets all child elements to null.
        -* @method destroy
        -*/
        -YAHOO.widget.Dialog.prototype.destroy = function() {
        -
        -    var Event = YAHOO.util.Event,
        -        oForm = this.form,
        -        oFooter = this.footer;
        -
        -    if(oFooter) {
        -
        -        var aButtons = oFooter.getElementsByTagName("button");
        -
        -        if(aButtons && aButtons.length > 0) {
        -
        -            var i = aButtons.length - 1;
        -            
        -            do {
        -            
        -                Event.purgeElement(aButtons[i], false, "click");
        -            
        -            }
        -            while(i--);
        -        
        -        }
        -
        -    }
        -    
        -
        -    if(oForm) {
        -       
        -        Event.purgeElement(oForm);
        -
        -        this.body.removeChild(oForm);
        -        
        -        this.form = null;
        -
        -    }
        -
        -    YAHOO.widget.Dialog.superclass.destroy.call(this);  
        -
        -};
        -
        -/**
        -* Returns a string representation of the object.
        -* @method toString
        -* @return {String}	The string representation of the Dialog
        -*/
        -YAHOO.widget.Dialog.prototype.toString = function() {
        -	return "Dialog " + this.id;
        -};
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Dom.js.html b/www/extras/yui/docs/Dom.js.html deleted file mode 100644 index 00bf32710..000000000 --- a/www/extras/yui/docs/Dom.js.html +++ /dev/null @@ -1,870 +0,0 @@ - - - - API: dom Dom.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        dom  2.2.2

        -

        - Yahoo! UI Library - > dom - - > Dom.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /*
        -Copyright (c) 2006, Yahoo! Inc. All rights reserved.
        -Code licensed under the BSD License:
        -http://developer.yahoo.net/yui/license.txt
        -*/
        -
        -/**
        - * The dom module provides helper methods for manipulating Dom elements.
        - * @module dom
        - *
        - */
        -
        -(function() {
        -    var Y = YAHOO.util,     // internal shorthand
        -        getStyle,           // for load time browser branching
        -        setStyle,           // ditto
        -        id_counter = 0,     // for use with generateId
        -        propertyCache = {}; // for faster hyphen converts
        -    
        -    // brower detection
        -    var ua = navigator.userAgent.toLowerCase(),
        -        isOpera = (ua.indexOf('opera') > -1),
        -        isSafari = (ua.indexOf('safari') > -1),
        -        isGecko = (!isOpera && !isSafari && ua.indexOf('gecko') > -1),
        -        isIE = (!isOpera && ua.indexOf('msie') > -1); 
        -    
        -    // regex cache
        -    var patterns = {
        -        HYPHEN: /(-[a-z])/i, // to normalize get/setStyle
        -        ROOT_TAG: /body|html/i // body for quirks mode, html for standards
        -    };
        -
        -    var toCamel = function(property) {
        -        if ( !patterns.HYPHEN.test(property) ) {
        -            return property; // no hyphens
        -        }
        -        
        -        if (propertyCache[property]) { // already converted
        -            return propertyCache[property];
        -        }
        -       
        -        var converted = property;
        - 
        -        while( patterns.HYPHEN.exec(converted) ) {
        -            converted = converted.replace(RegExp.$1,
        -                    RegExp.$1.substr(1).toUpperCase());
        -        }
        -        
        -        propertyCache[property] = converted;
        -        return converted;
        -        //return property.replace(/-([a-z])/gi, function(m0, m1) {return m1.toUpperCase()}) // cant use function as 2nd arg yet due to safari bug
        -    };
        -    
        -    // branching at load instead of runtime
        -    if (document.defaultView && document.defaultView.getComputedStyle) { // W3C DOM method
        -        getStyle = function(el, property) {
        -            var value = null;
        -            
        -            if (property == 'float') { // fix reserved word
        -                property = 'cssFloat';
        -            }
        -
        -            var computed = document.defaultView.getComputedStyle(el, '');
        -            if (computed) { // test computed before touching for safari
        -                value = computed[toCamel(property)];
        -            }
        -            
        -            return el.style[property] || value;
        -        };
        -    } else if (document.documentElement.currentStyle && isIE) { // IE method
        -        getStyle = function(el, property) {                         
        -            switch( toCamel(property) ) {
        -                case 'opacity' :// IE opacity uses filter
        -                    var val = 100;
        -                    try { // will error if no DXImageTransform
        -                        val = el.filters['DXImageTransform.Microsoft.Alpha'].opacity;
        -
        -                    } catch(e) {
        -                        try { // make sure its in the document
        -                            val = el.filters('alpha').opacity;
        -                        } catch(e) {
        -                            YAHOO.log('getStyle: IE filter failed',
        -                                    'error', 'Dom');
        -                        }
        -                    }
        -                    return val / 100;
        -                    break;
        -                case 'float': // fix reserved word
        -                    property = 'styleFloat'; // fall through
        -                default: 
        -                    // test currentStyle before touching
        -                    var value = el.currentStyle ? el.currentStyle[property] : null;
        -                    return ( el.style[property] || value );
        -            }
        -        };
        -    } else { // default to inline only
        -        getStyle = function(el, property) { return el.style[property]; };
        -    }
        -    
        -    if (isIE) {
        -        setStyle = function(el, property, val) {
        -            switch (property) {
        -                case 'opacity':
        -                    if ( YAHOO.lang.isString(el.style.filter) ) { // in case not appended
        -                        el.style.filter = 'alpha(opacity=' + val * 100 + ')';
        -                        
        -                        if (!el.currentStyle || !el.currentStyle.hasLayout) {
        -                            el.style.zoom = 1; // when no layout or cant tell
        -                        }
        -                    }
        -                    break;
        -                case 'float':
        -                    property = 'styleFloat';
        -                default:
        -                el.style[property] = val;
        -            }
        -        };
        -    } else {
        -        setStyle = function(el, property, val) {
        -            if (property == 'float') {
        -                property = 'cssFloat';
        -            }
        -            el.style[property] = val;
        -        };
        -    }
        -    
        -    /**
        -     * Provides helper methods for DOM elements.
        -     * @namespace YAHOO.util
        -     * @class Dom
        -     */
        -    YAHOO.util.Dom = {
        -        /**
        -         * Returns an HTMLElement reference.
        -         * @method get
        -         * @param {String | HTMLElement |Array} el Accepts a string to use as an ID for getting a DOM reference, an actual DOM reference, or an Array of IDs and/or HTMLElements.
        -         * @return {HTMLElement | Array} A DOM reference to an HTML element or an array of HTMLElements.
        -         */
        -        get: function(el) {
        -            if ( YAHOO.lang.isString(el) ) { // ID 
        -                YAHOO.log('get(' + el + ') returning ' + document.getElementById(el), 'info', 'Dom');
        -                return document.getElementById(el);
        -            }
        -            
        -            if ( YAHOO.lang.isArray(el) ) { // Array of IDs and/or HTMLElements
        -                var c = [];
        -                for (var i = 0, len = el.length; i < len; ++i) {
        -                    c[c.length] = Y.Dom.get(el[i]);
        -                }
        -                
        -                YAHOO.log('get("' + el + '") returning ' + c, 'info', 'Dom');
        -                return c;
        -            }
        -
        -            if (el) { // assuming HTMLElement or HTMLCollection, just pass back 
        -                YAHOO.log('get("' + el + '") returning ' + el, 'info', 'Dom');
        -                return el;
        -            }
        -
        -            YAHOO.log('element ' + el + ' not found', 'error', 'Dom');
        -            return null; // el is likely null or undefined 
        -        },
        -    
        -        /**
        -         * Normalizes currentStyle and ComputedStyle.
        -         * @method getStyle
        -         * @param {String | HTMLElement |Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
        -         * @param {String} property The style property whose value is returned.
        -         * @return {String | Array} The current value of the style property for the element(s).
        -         */
        -        getStyle: function(el, property) {
        -            property = toCamel(property);
        -            
        -            var f = function(element) {
        -                return getStyle(element, property);
        -            };
        -            
        -            return Y.Dom.batch(el, f, Y.Dom, true);
        -        },
        -    
        -        /**
        -         * Wrapper for setting style properties of HTMLElements.  Normalizes "opacity" across modern browsers.
        -         * @method setStyle
        -         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
        -         * @param {String} property The style property to be set.
        -         * @param {String} val The value to apply to the given property.
        -         */
        -        setStyle: function(el, property, val) {
        -            property = toCamel(property);
        -            
        -            var f = function(element) {
        -                setStyle(element, property, val);
        -                YAHOO.log('setStyle setting ' + property + ' to ' + val, 'info', 'Dom');
        -                
        -            };
        -            
        -            Y.Dom.batch(el, f, Y.Dom, true);
        -        },
        -        
        -        /**
        -         * Gets the current position of an element based on page coordinates.  Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
        -         * @method getXY
        -         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
        -         * @return {Array} The XY position of the element(s)
        -         */
        -        getXY: function(el) {
        -            var f = function(el) {
        -    
        -            // has to be part of document to have pageXY
        -                if ( (el.parentNode === null || el.offsetParent === null ||
        -                        this.getStyle(el, 'display') == 'none') && el != document.body) {
        -                    YAHOO.log('getXY failed: element not available', 'error', 'Dom');
        -                    return false;
        -                }
        -                
        -                var parentNode = null;
        -                var pos = [];
        -                var box;
        -                
        -                if (el.getBoundingClientRect) { // IE
        -                    box = el.getBoundingClientRect();
        -                    var doc = document;
        -                    if ( !this.inDocument(el) && parent.document != document) {// might be in a frame, need to get its scroll
        -                        doc = parent.document;
        -
        -                        if ( !this.isAncestor(doc.documentElement, el) ) {
        -                            YAHOO.log('getXY failed: element not available', 'error', 'Dom');
        -                            return false;                      
        -                        }
        -
        -                    }
        -
        -                    var scrollTop = Math.max(doc.documentElement.scrollTop, doc.body.scrollTop);
        -                    var scrollLeft = Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft);
        -                    
        -                    return [box.left + scrollLeft, box.top + scrollTop];
        -                }
        -                else { // safari, opera, & gecko
        -                    pos = [el.offsetLeft, el.offsetTop];
        -                    parentNode = el.offsetParent;
        -
        -                    // safari: if el is abs or any parent is abs, subtract body offsets
        -                    var hasAbs = this.getStyle(el, 'position') == 'absolute';
        -
        -                    if (parentNode != el) {
        -                        while (parentNode) {
        -                            pos[0] += parentNode.offsetLeft;
        -                            pos[1] += parentNode.offsetTop;
        -                            if (isSafari && !hasAbs && 
        -                                    this.getStyle(parentNode,'position') == 'absolute' ) {
        -                                hasAbs = true; // we need to offset if any parent is absolutely positioned
        -                            }
        -                            parentNode = parentNode.offsetParent;
        -                        }
        -                    }
        -
        -                    if (isSafari && hasAbs) { //safari doubles in this case
        -                        pos[0] -= document.body.offsetLeft;
        -                        pos[1] -= document.body.offsetTop;
        -                    } 
        -                }
        -                
        -                parentNode = el.parentNode;
        -
        -                // account for any scrolled ancestors
        -                while ( parentNode.tagName && !patterns.ROOT_TAG.test(parentNode.tagName) ) 
        -                {
        -                   // work around opera inline scrollLeft/Top bug
        -                   if (Y.Dom.getStyle(parentNode, 'display') != 'inline') { 
        -                        pos[0] -= parentNode.scrollLeft;
        -                        pos[1] -= parentNode.scrollTop;
        -                    }
        -                    
        -                    parentNode = parentNode.parentNode; 
        -                }
        -        
        -                YAHOO.log('getXY returning ' + pos, 'info', 'Dom');
        -                
        -                return pos;
        -            };
        -            
        -            return Y.Dom.batch(el, f, Y.Dom, true);
        -        },
        -        
        -        /**
        -         * Gets the current X position of an element based on page coordinates.  The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
        -         * @method getX
        -         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
        -         * @return {String | Array} The X position of the element(s)
        -         */
        -        getX: function(el) {
        -            var f = function(el) {
        -                return Y.Dom.getXY(el)[0];
        -            };
        -            
        -            return Y.Dom.batch(el, f, Y.Dom, true);
        -        },
        -        
        -        /**
        -         * Gets the current Y position of an element based on page coordinates.  Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
        -         * @method getY
        -         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
        -         * @return {String | Array} The Y position of the element(s)
        -         */
        -        getY: function(el) {
        -            var f = function(el) {
        -                return Y.Dom.getXY(el)[1];
        -            };
        -            
        -            return Y.Dom.batch(el, f, Y.Dom, true);
        -        },
        -        
        -        /**
        -         * Set the position of an html element in page coordinates, regardless of how the element is positioned.
        -         * The element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
        -         * @method setXY
        -         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
        -         * @param {Array} pos Contains X & Y values for new position (coordinates are page-based)
        -         * @param {Boolean} noRetry By default we try and set the position a second time if the first fails
        -         */
        -        setXY: function(el, pos, noRetry) {
        -            var f = function(el) {
        -                var style_pos = this.getStyle(el, 'position');
        -                if (style_pos == 'static') { // default to relative
        -                    this.setStyle(el, 'position', 'relative');
        -                    style_pos = 'relative';
        -                }
        -
        -                var pageXY = this.getXY(el);
        -                if (pageXY === false) { // has to be part of doc to have pageXY
        -                    YAHOO.log('setXY failed: element not available', 'error', 'Dom');
        -                    return false; 
        -                }
        -                
        -                var delta = [ // assuming pixels; if not we will have to retry
        -                    parseInt( this.getStyle(el, 'left'), 10 ),
        -                    parseInt( this.getStyle(el, 'top'), 10 )
        -                ];
        -            
        -                if ( isNaN(delta[0]) ) {// in case of 'auto'
        -                    delta[0] = (style_pos == 'relative') ? 0 : el.offsetLeft;
        -                } 
        -                if ( isNaN(delta[1]) ) { // in case of 'auto'
        -                    delta[1] = (style_pos == 'relative') ? 0 : el.offsetTop;
        -                } 
        -        
        -                if (pos[0] !== null) { el.style.left = pos[0] - pageXY[0] + delta[0] + 'px'; }
        -                if (pos[1] !== null) { el.style.top = pos[1] - pageXY[1] + delta[1] + 'px'; }
        -              
        -                if (!noRetry) {
        -                    var newXY = this.getXY(el);
        -
        -                    // if retry is true, try one more time if we miss 
        -                   if ( (pos[0] !== null && newXY[0] != pos[0]) || 
        -                        (pos[1] !== null && newXY[1] != pos[1]) ) {
        -                       this.setXY(el, pos, true);
        -                   }
        -                }        
        -        
        -                YAHOO.log('setXY setting position to ' + pos, 'info', 'Dom');
        -            };
        -            
        -            Y.Dom.batch(el, f, Y.Dom, true);
        -        },
        -        
        -        /**
        -         * Set the X position of an html element in page coordinates, regardless of how the element is positioned.
        -         * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
        -         * @method setX
        -         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
        -         * @param {Int} x The value to use as the X coordinate for the element(s).
        -         */
        -        setX: function(el, x) {
        -            Y.Dom.setXY(el, [x, null]);
        -        },
        -        
        -        /**
        -         * Set the Y position of an html element in page coordinates, regardless of how the element is positioned.
        -         * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
        -         * @method setY
        -         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
        -         * @param {Int} x To use as the Y coordinate for the element(s).
        -         */
        -        setY: function(el, y) {
        -            Y.Dom.setXY(el, [null, y]);
        -        },
        -        
        -        /**
        -         * Returns the region position of the given element.
        -         * The element must be part of the DOM tree to have a region (display:none or elements not appended return false).
        -         * @method getRegion
        -         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
        -         * @return {Region | Array} A Region or array of Region instances containing "top, left, bottom, right" member data.
        -         */
        -        getRegion: function(el) {
        -            var f = function(el) {
        -                var region = new Y.Region.getRegion(el);
        -                YAHOO.log('getRegion returning ' + region, 'info', 'Dom');
        -                return region;
        -            };
        -            
        -            return Y.Dom.batch(el, f, Y.Dom, true);
        -        },
        -        
        -        /**
        -         * Returns the width of the client (viewport).
        -         * @method getClientWidth
        -         * @deprecated Now using getViewportWidth.  This interface left intact for back compat.
        -         * @return {Int} The width of the viewable area of the page.
        -         */
        -        getClientWidth: function() {
        -            return Y.Dom.getViewportWidth();
        -        },
        -        
        -        /**
        -         * Returns the height of the client (viewport).
        -         * @method getClientHeight
        -         * @deprecated Now using getViewportHeight.  This interface left intact for back compat.
        -         * @return {Int} The height of the viewable area of the page.
        -         */
        -        getClientHeight: function() {
        -            return Y.Dom.getViewportHeight();
        -        },
        -
        -        /**
        -         * Returns a array of HTMLElements with the given class.
        -         * For optimized performance, include a tag and/or root node when possible.
        -         * @method getElementsByClassName
        -         * @param {String} className The class name to match against
        -         * @param {String} tag (optional) The tag name of the elements being collected
        -         * @param {String | HTMLElement} root (optional) The HTMLElement or an ID to use as the starting point 
        -         * @return {Array} An array of elements that have the given class name
        -         */
        -        getElementsByClassName: function(className, tag, root) {
        -            var method = function(el) { return Y.Dom.hasClass(el, className); };
        -            return Y.Dom.getElementsBy(method, tag, root);
        -        },
        -
        -        /**
        -         * Determines whether an HTMLElement has the given className.
        -         * @method hasClass
        -         * @param {String | HTMLElement | Array} el The element or collection to test
        -         * @param {String} className the class name to search for
        -         * @return {Boolean | Array} A boolean value or array of boolean values
        -         */
        -        hasClass: function(el, className) {
        -            var re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)');
        -            
        -            var f = function(el) {
        -                YAHOO.log('hasClass returning ' + re.test(el.className), 'info', 'Dom');
        -                return re.test(el.className);
        -            };
        -            
        -            return Y.Dom.batch(el, f, Y.Dom, true);
        -        },
        -    
        -        /**
        -         * Adds a class name to a given element or collection of elements.
        -         * @method addClass         
        -         * @param {String | HTMLElement | Array} el The element or collection to add the class to
        -         * @param {String} className the class name to add to the class attribute
        -         */
        -        addClass: function(el, className) {
        -            var f = function(el) {
        -                if (this.hasClass(el, className)) { return; } // already present
        -                
        -                YAHOO.log('addClass adding ' + className, 'info', 'Dom');
        -                
        -                el.className = [el.className, className].join(' ');
        -            };
        -            
        -            Y.Dom.batch(el, f, Y.Dom, true);
        -        },
        -    
        -        /**
        -         * Removes a class name from a given element or collection of elements.
        -         * @method removeClass         
        -         * @param {String | HTMLElement | Array} el The element or collection to remove the class from
        -         * @param {String} className the class name to remove from the class attribute
        -         */
        -        removeClass: function(el, className) {
        -            var re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)', 'g');
        -
        -            var f = function(el) {
        -                if (!this.hasClass(el, className)) {
        -                    return; // not present
        -                }                 
        -
        -                YAHOO.log('removeClass removing ' + className, 'info', 'Dom');
        -                
        -                var c = el.className;
        -                el.className = c.replace(re, ' ');
        -                if ( this.hasClass(el, className) ) { // in case of multiple adjacent
        -                    this.removeClass(el, className);
        -                }
        -                
        -            };
        -            
        -            Y.Dom.batch(el, f, Y.Dom, true);
        -        },
        -        
        -        /**
        -         * Replace a class with another class for a given element or collection of elements.
        -         * If no oldClassName is present, the newClassName is simply added.
        -         * @method replaceClass  
        -         * @param {String | HTMLElement | Array} el The element or collection to remove the class from
        -         * @param {String} oldClassName the class name to be replaced
        -         * @param {String} newClassName the class name that will be replacing the old class name
        -         */
        -        replaceClass: function(el, oldClassName, newClassName) {
        -            if (oldClassName === newClassName) { // avoid infinite loop
        -                return false;
        -            }
        -            
        -            var re = new RegExp('(?:^|\\s+)' + oldClassName + '(?:\\s+|$)', 'g');
        -
        -            var f = function(el) {
        -                YAHOO.log('replaceClass replacing ' + oldClassName + ' with ' + newClassName, 'info', 'Dom');
        -            
        -                if ( !this.hasClass(el, oldClassName) ) {
        -                    this.addClass(el, newClassName); // just add it if nothing to replace
        -                    return; // note return
        -                }
        -            
        -                el.className = el.className.replace(re, ' ' + newClassName + ' ');
        -
        -                if ( this.hasClass(el, oldClassName) ) { // in case of multiple adjacent
        -                    this.replaceClass(el, oldClassName, newClassName);
        -                }
        -            };
        -            
        -            Y.Dom.batch(el, f, Y.Dom, true);
        -        },
        -        
        -        /**
        -         * Generates a unique ID
        -         * @method generateId  
        -         * @param {String | HTMLElement | Array} el (optional) An optional element array of elements to add an ID to (no ID is added if one is already present).
        -         * @param {String} prefix (optional) an optional prefix to use (defaults to "yui-gen").
        -         * @return {String | Array} The generated ID, or array of generated IDs (or original ID if already present on an element)
        -         */
        -        generateId: function(el, prefix) {
        -            prefix = prefix || 'yui-gen';
        -            el = el || {};
        -            
        -            var f = function(el) {
        -                if (el) {
        -                    el = Y.Dom.get(el);
        -                } else {
        -                    el = {}; // just generating ID in this case
        -                }
        -                
        -                if (!el.id) {
        -                    el.id = prefix + id_counter++; 
        -                    YAHOO.log('generateId generating ' + el.id, 'info', 'Dom');
        -                } // dont override existing
        -                
        -                YAHOO.log('generateId returning ' + el.id, 'info', 'Dom');
        -                
        -                return el.id;
        -            };
        -            
        -            return Y.Dom.batch(el, f, Y.Dom, true);
        -        },
        -        
        -        /**
        -         * Determines whether an HTMLElement is an ancestor of another HTML element in the DOM hierarchy.
        -         * @method isAncestor
        -         * @param {String | HTMLElement} haystack The possible ancestor
        -         * @param {String | HTMLElement} needle The possible descendent
        -         * @return {Boolean} Whether or not the haystack is an ancestor of needle
        -         */
        -        isAncestor: function(haystack, needle) {
        -            haystack = Y.Dom.get(haystack);
        -            if (!haystack || !needle) { return false; }
        -            
        -            var f = function(needle) {
        -                if (haystack.contains && !isSafari) { // safari "contains" is broken
        -                    YAHOO.log('isAncestor returning ' + haystack.contains(needle), 'info', 'Dom');
        -                    return haystack.contains(needle);
        -                }
        -                else if ( haystack.compareDocumentPosition ) {
        -                    YAHOO.log('isAncestor returning ' + !!(haystack.compareDocumentPosition(needle) & 16), 'info', 'Dom');
        -                    return !!(haystack.compareDocumentPosition(needle) & 16);
        -                }
        -                else { // loop up and test each parent
        -                    var parent = needle.parentNode;
        -                    
        -                    while (parent) {
        -                        if (parent == haystack) {
        -                            YAHOO.log('isAncestor returning true', 'info', 'Dom');
        -                            return true;
        -                        }
        -                        else if (!parent.tagName || parent.tagName.toUpperCase() == 'HTML') {
        -                            YAHOO.log('isAncestor returning false', 'info', 'Dom');
        -                            return false;
        -                        }
        -                        
        -                        parent = parent.parentNode;
        -                    }
        -                    YAHOO.log('isAncestor returning false', 'info', 'Dom');
        -                    return false;
        -                }     
        -            };
        -            
        -            return Y.Dom.batch(needle, f, Y.Dom, true);      
        -        },
        -        
        -        /**
        -         * Determines whether an HTMLElement is present in the current document.
        -         * @method inDocument         
        -         * @param {String | HTMLElement} el The element to search for
        -         * @return {Boolean} Whether or not the element is present in the current document
        -         */
        -        inDocument: function(el) {
        -            var f = function(el) {
        -                return this.isAncestor(document.documentElement, el);
        -            };
        -            
        -            return Y.Dom.batch(el, f, Y.Dom, true);
        -        },
        -        
        -        /**
        -         * Returns a array of HTMLElements that pass the test applied by supplied boolean method.
        -         * For optimized performance, include a tag and/or root node when possible.
        -         * @method getElementsBy
        -         * @param {Function} method - A boolean method for testing elements which receives the element as its only argument.
        -
        -         * @param {String} tag (optional) The tag name of the elements being collected
        -         * @param {String | HTMLElement} root (optional) The HTMLElement or an ID to use as the starting point 
        -         * @return {Array} Array of HTMLElements
        -         */
        -        getElementsBy: function(method, tag, root) {
        -            tag = tag || '*';
        -            
        -            var nodes = [];
        -            
        -            if (root) {
        -                root = Y.Dom.get(root);
        -                if (!root) { // if no root node, then no children
        -                    return nodes;
        -                }
        -            } else {
        -                root = document;
        -            }
        -            
        -            var elements = root.getElementsByTagName(tag);
        -            
        -            if ( !elements.length && (tag == '*' && root.all) ) {
        -                elements = root.all; // IE < 6
        -            }
        -            
        -            for (var i = 0, len = elements.length; i < len; ++i) {
        -                if ( method(elements[i]) ) { nodes[nodes.length] = elements[i]; }
        -            }
        -
        -            YAHOO.log('getElementsBy returning ' + nodes, 'info', 'Dom');
        -            
        -            return nodes;
        -        },
        -        
        -        /**
        -         * Returns an array of elements that have had the supplied method applied.
        -         * The method is called with the element(s) as the first arg, and the optional param as the second ( method(el, o) ).
        -         * @method batch
        -         * @param {String | HTMLElement | Array} el (optional) An element or array of elements to apply the method to
        -         * @param {Function} method The method to apply to the element(s)
        -         * @param {Any} o (optional) An optional arg that is passed to the supplied method
        -         * @param {Boolean} override (optional) Whether or not to override the scope of "method" with "o"
        -         * @return {HTMLElement | Array} The element(s) with the method applied
        -         */
        -        batch: function(el, method, o, override) {
        -            var id = el;
        -            el = Y.Dom.get(el);
        -            
        -            var scope = (override) ? o : window;
        -            
        -            if (!el || el.tagName || !el.length) { // is null or not a collection (tagName for SELECT and others that can be both an element and a collection)
        -                if (!el) {
        -                    YAHOO.log(id + ' not available', 'error', 'Dom');
        -                    return false;
        -                }
        -                return method.call(scope, el, o);
        -            } 
        -            
        -            var collection = [];
        -            
        -            for (var i = 0, len = el.length; i < len; ++i) {
        -                if (!el[i]) {
        -                    id = el[i];
        -                    YAHOO.log(id + ' not available', 'error', 'Dom');
        -                }
        -                collection[collection.length] = method.call(scope, el[i], o);
        -            }
        -            
        -            return collection;
        -        },
        -        
        -        /**
        -         * Returns the height of the document.
        -         * @method getDocumentHeight
        -         * @return {Int} The height of the actual document (which includes the body and its margin).
        -         */
        -        getDocumentHeight: function() {
        -            var scrollHeight = (document.compatMode != 'CSS1Compat') ? document.body.scrollHeight : document.documentElement.scrollHeight;
        -
        -            var h = Math.max(scrollHeight, Y.Dom.getViewportHeight());
        -            YAHOO.log('getDocumentHeight returning ' + h, 'info', 'Dom');
        -            return h;
        -        },
        -        
        -        /**
        -         * Returns the width of the document.
        -         * @method getDocumentWidth
        -         * @return {Int} The width of the actual document (which includes the body and its margin).
        -         */
        -        getDocumentWidth: function() {
        -            var scrollWidth = (document.compatMode != 'CSS1Compat') ? document.body.scrollWidth : document.documentElement.scrollWidth;
        -            var w = Math.max(scrollWidth, Y.Dom.getViewportWidth());
        -            YAHOO.log('getDocumentWidth returning ' + w, 'info', 'Dom');
        -            return w;
        -        },
        -
        -        /**
        -         * Returns the current height of the viewport.
        -         * @method getViewportHeight
        -         * @return {Int} The height of the viewable area of the page (excludes scrollbars).
        -         */
        -        getViewportHeight: function() {
        -            var height = self.innerHeight; // Safari, Opera
        -            var mode = document.compatMode;
        -        
        -            if ( (mode || isIE) && !isOpera ) { // IE, Gecko
        -                height = (mode == 'CSS1Compat') ?
        -                        document.documentElement.clientHeight : // Standards
        -                        document.body.clientHeight; // Quirks
        -            }
        -        
        -            YAHOO.log('getViewportHeight returning ' + height, 'info', 'Dom');
        -            return height;
        -        },
        -        
        -        /**
        -         * Returns the current width of the viewport.
        -         * @method getViewportWidth
        -         * @return {Int} The width of the viewable area of the page (excludes scrollbars).
        -         */
        -        
        -        getViewportWidth: function() {
        -            var width = self.innerWidth;  // Safari
        -            var mode = document.compatMode;
        -            
        -            if (mode || isIE) { // IE, Gecko, Opera
        -                width = (mode == 'CSS1Compat') ?
        -                        document.documentElement.clientWidth : // Standards
        -                        document.body.clientWidth; // Quirks
        -            }
        -            YAHOO.log('getViewportWidth returning ' + width, 'info', 'Dom');
        -            return width;
        -        }
        -    };
        -})();
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/DragDrop.js.html b/www/extras/yui/docs/DragDrop.js.html deleted file mode 100644 index 3f2f93b94..000000000 --- a/www/extras/yui/docs/DragDrop.js.html +++ /dev/null @@ -1,1309 +0,0 @@ - - - - API: dragdrop DragDrop.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Drag and Drop  2.2.2

        -

        - Yahoo! UI Library - > dragdrop - - > DragDrop.js (source view) -

        -
        - -
        -
        -
        - -
        -
        (function() {
        -
        -var Event=YAHOO.util.Event; 
        -var Dom=YAHOO.util.Dom;
        -
        -/**
        - * Defines the interface and base operation of items that that can be 
        - * dragged or can be drop targets.  It was designed to be extended, overriding
        - * the event handlers for startDrag, onDrag, onDragOver, onDragOut.
        - * Up to three html elements can be associated with a DragDrop instance:
        - * <ul>
        - * <li>linked element: the element that is passed into the constructor.
        - * This is the element which defines the boundaries for interaction with 
        - * other DragDrop objects.</li>
        - * <li>handle element(s): The drag operation only occurs if the element that 
        - * was clicked matches a handle element.  By default this is the linked 
        - * element, but there are times that you will want only a portion of the 
        - * linked element to initiate the drag operation, and the setHandleElId() 
        - * method provides a way to define this.</li>
        - * <li>drag element: this represents an the element that would be moved along
        - * with the cursor during a drag operation.  By default, this is the linked
        - * element itself as in {@link YAHOO.util.DD}.  setDragElId() lets you define
        - * a separate element that would be moved, as in {@link YAHOO.util.DDProxy}
        - * </li>
        - * </ul>
        - * This class should not be instantiated until the onload event to ensure that
        - * the associated elements are available.
        - * The following would define a DragDrop obj that would interact with any 
        - * other DragDrop obj in the "group1" group:
        - * <pre>
        - *  dd = new YAHOO.util.DragDrop("div1", "group1");
        - * </pre>
        - * Since none of the event handlers have been implemented, nothing would 
        - * actually happen if you were to run the code above.  Normally you would 
        - * override this class or one of the default implementations, but you can 
        - * also override the methods you want on an instance of the class...
        - * <pre>
        - *  dd.onDragDrop = function(e, id) {
        - *  &nbsp;&nbsp;alert("dd was dropped on " + id);
        - *  }
        - * </pre>
        - * @namespace YAHOO.util
        - * @class DragDrop
        - * @constructor
        - * @param {String} id of the element that is linked to this instance
        - * @param {String} sGroup the group of related DragDrop objects
        - * @param {object} config an object containing configurable attributes
        - *                Valid properties for DragDrop: 
        - *                    padding, isTarget, maintainOffset, primaryButtonOnly,
        - */
        -YAHOO.util.DragDrop = function(id, sGroup, config) {
        -    if (id) {
        -        this.init(id, sGroup, config); 
        -    }
        -};
        -
        -YAHOO.util.DragDrop.prototype = {
        -
        -    /**
        -     * The id of the element associated with this object.  This is what we 
        -     * refer to as the "linked element" because the size and position of 
        -     * this element is used to determine when the drag and drop objects have 
        -     * interacted.
        -     * @property id
        -     * @type String
        -     */
        -    id: null,
        -
        -    /**
        -     * Configuration attributes passed into the constructor
        -     * @property config
        -     * @type object
        -     */
        -    config: null,
        -
        -    /**
        -     * The id of the element that will be dragged.  By default this is same 
        -     * as the linked element , but could be changed to another element. Ex: 
        -     * YAHOO.util.DDProxy
        -     * @property dragElId
        -     * @type String
        -     * @private
        -     */
        -    dragElId: null, 
        -
        -    /**
        -     * the id of the element that initiates the drag operation.  By default 
        -     * this is the linked element, but could be changed to be a child of this
        -     * element.  This lets us do things like only starting the drag when the 
        -     * header element within the linked html element is clicked.
        -     * @property handleElId
        -     * @type String
        -     * @private
        -     */
        -    handleElId: null, 
        -
        -    /**
        -     * An associative array of HTML tags that will be ignored if clicked.
        -     * @property invalidHandleTypes
        -     * @type {string: string}
        -     */
        -    invalidHandleTypes: null, 
        -
        -    /**
        -     * An associative array of ids for elements that will be ignored if clicked
        -     * @property invalidHandleIds
        -     * @type {string: string}
        -     */
        -    invalidHandleIds: null, 
        -
        -    /**
        -     * An indexted array of css class names for elements that will be ignored
        -     * if clicked.
        -     * @property invalidHandleClasses
        -     * @type string[]
        -     */
        -    invalidHandleClasses: null, 
        -
        -    /**
        -     * The linked element's absolute X position at the time the drag was 
        -     * started
        -     * @property startPageX
        -     * @type int
        -     * @private
        -     */
        -    startPageX: 0,
        -
        -    /**
        -     * The linked element's absolute X position at the time the drag was 
        -     * started
        -     * @property startPageY
        -     * @type int
        -     * @private
        -     */
        -    startPageY: 0,
        -
        -    /**
        -     * The group defines a logical collection of DragDrop objects that are 
        -     * related.  Instances only get events when interacting with other 
        -     * DragDrop object in the same group.  This lets us define multiple 
        -     * groups using a single DragDrop subclass if we want.
        -     * @property groups
        -     * @type {string: string}
        -     */
        -    groups: null,
        -
        -    /**
        -     * Individual drag/drop instances can be locked.  This will prevent 
        -     * onmousedown start drag.
        -     * @property locked
        -     * @type boolean
        -     * @private
        -     */
        -    locked: false,
        -
        -    /**
        -     * Lock this instance
        -     * @method lock
        -     */
        -    lock: function() { this.locked = true; },
        -
        -    /**
        -     * Unlock this instace
        -     * @method unlock
        -     */
        -    unlock: function() { this.locked = false; },
        -
        -    /**
        -     * By default, all insances can be a drop target.  This can be disabled by
        -     * setting isTarget to false.
        -     * @method isTarget
        -     * @type boolean
        -     */
        -    isTarget: true,
        -
        -    /**
        -     * The padding configured for this drag and drop object for calculating
        -     * the drop zone intersection with this object.
        -     * @method padding
        -     * @type int[]
        -     */
        -    padding: null,
        -
        -    /**
        -     * Cached reference to the linked element
        -     * @property _domRef
        -     * @private
        -     */
        -    _domRef: null,
        -
        -    /**
        -     * Internal typeof flag
        -     * @property __ygDragDrop
        -     * @private
        -     */
        -    __ygDragDrop: true,
        -
        -    /**
        -     * Set to true when horizontal contraints are applied
        -     * @property constrainX
        -     * @type boolean
        -     * @private
        -     */
        -    constrainX: false,
        -
        -    /**
        -     * Set to true when vertical contraints are applied
        -     * @property constrainY
        -     * @type boolean
        -     * @private
        -     */
        -    constrainY: false,
        -
        -    /**
        -     * The left constraint
        -     * @property minX
        -     * @type int
        -     * @private
        -     */
        -    minX: 0,
        -
        -    /**
        -     * The right constraint
        -     * @property maxX
        -     * @type int
        -     * @private
        -     */
        -    maxX: 0,
        -
        -    /**
        -     * The up constraint 
        -     * @property minY
        -     * @type int
        -     * @type int
        -     * @private
        -     */
        -    minY: 0,
        -
        -    /**
        -     * The down constraint 
        -     * @property maxY
        -     * @type int
        -     * @private
        -     */
        -    maxY: 0,
        -
        -    /**
        -     * The difference between the click position and the source element's location
        -     * @property deltaX
        -     * @type int
        -     * @private
        -     */
        -    deltaX: 0,
        -
        -    /**
        -     * The difference between the click position and the source element's location
        -     * @property deltaY
        -     * @type int
        -     * @private
        -     */
        -    deltaY: 0,
        -
        -    /**
        -     * Maintain offsets when we resetconstraints.  Set to true when you want
        -     * the position of the element relative to its parent to stay the same
        -     * when the page changes
        -     *
        -     * @property maintainOffset
        -     * @type boolean
        -     */
        -    maintainOffset: false,
        -
        -    /**
        -     * Array of pixel locations the element will snap to if we specified a 
        -     * horizontal graduation/interval.  This array is generated automatically
        -     * when you define a tick interval.
        -     * @property xTicks
        -     * @type int[]
        -     */
        -    xTicks: null,
        -
        -    /**
        -     * Array of pixel locations the element will snap to if we specified a 
        -     * vertical graduation/interval.  This array is generated automatically 
        -     * when you define a tick interval.
        -     * @property yTicks
        -     * @type int[]
        -     */
        -    yTicks: null,
        -
        -    /**
        -     * By default the drag and drop instance will only respond to the primary
        -     * button click (left button for a right-handed mouse).  Set to true to
        -     * allow drag and drop to start with any mouse click that is propogated
        -     * by the browser
        -     * @property primaryButtonOnly
        -     * @type boolean
        -     */
        -    primaryButtonOnly: true,
        -
        -    /**
        -     * The availabe property is false until the linked dom element is accessible.
        -     * @property available
        -     * @type boolean
        -     */
        -    available: false,
        -
        -    /**
        -     * By default, drags can only be initiated if the mousedown occurs in the
        -     * region the linked element is.  This is done in part to work around a
        -     * bug in some browsers that mis-report the mousedown if the previous
        -     * mouseup happened outside of the window.  This property is set to true
        -     * if outer handles are defined.
        -     *
        -     * @property hasOuterHandles
        -     * @type boolean
        -     * @default false
        -     */
        -    hasOuterHandles: false,
        -
        -    /**
        -     * Code that executes immediately before the startDrag event
        -     * @method b4StartDrag
        -     * @private
        -     */
        -    b4StartDrag: function(x, y) { },
        -
        -    /**
        -     * Abstract method called after a drag/drop object is clicked
        -     * and the drag or mousedown time thresholds have beeen met.
        -     * @method startDrag
        -     * @param {int} X click location
        -     * @param {int} Y click location
        -     */
        -    startDrag: function(x, y) { /* override this */ },
        -
        -    /**
        -     * Code that executes immediately before the onDrag event
        -     * @method b4Drag
        -     * @private
        -     */
        -    b4Drag: function(e) { },
        -
        -    /**
        -     * Abstract method called during the onMouseMove event while dragging an 
        -     * object.
        -     * @method onDrag
        -     * @param {Event} e the mousemove event
        -     */
        -    onDrag: function(e) { /* override this */ },
        -
        -    /**
        -     * Abstract method called when this element fist begins hovering over 
        -     * another DragDrop obj
        -     * @method onDragEnter
        -     * @param {Event} e the mousemove event
        -     * @param {String|DragDrop[]} id In POINT mode, the element
        -     * id this is hovering over.  In INTERSECT mode, an array of one or more 
        -     * dragdrop items being hovered over.
        -     */
        -    onDragEnter: function(e, id) { /* override this */ },
        -
        -    /**
        -     * Code that executes immediately before the onDragOver event
        -     * @method b4DragOver
        -     * @private
        -     */
        -    b4DragOver: function(e) { },
        -
        -    /**
        -     * Abstract method called when this element is hovering over another 
        -     * DragDrop obj
        -     * @method onDragOver
        -     * @param {Event} e the mousemove event
        -     * @param {String|DragDrop[]} id In POINT mode, the element
        -     * id this is hovering over.  In INTERSECT mode, an array of dd items 
        -     * being hovered over.
        -     */
        -    onDragOver: function(e, id) { /* override this */ },
        -
        -    /**
        -     * Code that executes immediately before the onDragOut event
        -     * @method b4DragOut
        -     * @private
        -     */
        -    b4DragOut: function(e) { },
        -
        -    /**
        -     * Abstract method called when we are no longer hovering over an element
        -     * @method onDragOut
        -     * @param {Event} e the mousemove event
        -     * @param {String|DragDrop[]} id In POINT mode, the element
        -     * id this was hovering over.  In INTERSECT mode, an array of dd items 
        -     * that the mouse is no longer over.
        -     */
        -    onDragOut: function(e, id) { /* override this */ },
        -
        -    /**
        -     * Code that executes immediately before the onDragDrop event
        -     * @method b4DragDrop
        -     * @private
        -     */
        -    b4DragDrop: function(e) { },
        -
        -    /**
        -     * Abstract method called when this item is dropped on another DragDrop 
        -     * obj
        -     * @method onDragDrop
        -     * @param {Event} e the mouseup event
        -     * @param {String|DragDrop[]} id In POINT mode, the element
        -     * id this was dropped on.  In INTERSECT mode, an array of dd items this 
        -     * was dropped on.
        -     */
        -    onDragDrop: function(e, id) { /* override this */ },
        -
        -    /**
        -     * Abstract method called when this item is dropped on an area with no
        -     * drop target
        -     * @method onInvalidDrop
        -     * @param {Event} e the mouseup event
        -     */
        -    onInvalidDrop: function(e) { /* override this */ },
        -
        -    /**
        -     * Code that executes immediately before the endDrag event
        -     * @method b4EndDrag
        -     * @private
        -     */
        -    b4EndDrag: function(e) { },
        -
        -    /**
        -     * Fired when we are done dragging the object
        -     * @method endDrag
        -     * @param {Event} e the mouseup event
        -     */
        -    endDrag: function(e) { /* override this */ },
        -
        -    /**
        -     * Code executed immediately before the onMouseDown event
        -     * @method b4MouseDown
        -     * @param {Event} e the mousedown event
        -     * @private
        -     */
        -    b4MouseDown: function(e) {  },
        -
        -    /**
        -     * Event handler that fires when a drag/drop obj gets a mousedown
        -     * @method onMouseDown
        -     * @param {Event} e the mousedown event
        -     */
        -    onMouseDown: function(e) { /* override this */ },
        -
        -    /**
        -     * Event handler that fires when a drag/drop obj gets a mouseup
        -     * @method onMouseUp
        -     * @param {Event} e the mouseup event
        -     */
        -    onMouseUp: function(e) { /* override this */ },
        -   
        -    /**
        -     * Override the onAvailable method to do what is needed after the initial
        -     * position was determined.
        -     * @method onAvailable
        -     */
        -    onAvailable: function () { 
        -        this.logger.log("onAvailable (base)"); 
        -    },
        -
        -    /**
        -     * Returns a reference to the linked element
        -     * @method getEl
        -     * @return {HTMLElement} the html element 
        -     */
        -    getEl: function() { 
        -        if (!this._domRef) {
        -            this._domRef = Dom.get(this.id); 
        -        }
        -
        -        return this._domRef;
        -    },
        -
        -    /**
        -     * Returns a reference to the actual element to drag.  By default this is
        -     * the same as the html element, but it can be assigned to another 
        -     * element. An example of this can be found in YAHOO.util.DDProxy
        -     * @method getDragEl
        -     * @return {HTMLElement} the html element 
        -     */
        -    getDragEl: function() {
        -        return Dom.get(this.dragElId);
        -    },
        -
        -    /**
        -     * Sets up the DragDrop object.  Must be called in the constructor of any
        -     * YAHOO.util.DragDrop subclass
        -     * @method init
        -     * @param id the id of the linked element
        -     * @param {String} sGroup the group of related items
        -     * @param {object} config configuration attributes
        -     */
        -    init: function(id, sGroup, config) {
        -        this.initTarget(id, sGroup, config);
        -        Event.on(this.id, "mousedown", this.handleMouseDown, this, true);
        -        // Event.on(this.id, "selectstart", Event.preventDefault);
        -    },
        -
        -    /**
        -     * Initializes Targeting functionality only... the object does not
        -     * get a mousedown handler.
        -     * @method initTarget
        -     * @param id the id of the linked element
        -     * @param {String} sGroup the group of related items
        -     * @param {object} config configuration attributes
        -     */
        -    initTarget: function(id, sGroup, config) {
        -
        -        // configuration attributes 
        -        this.config = config || {};
        -
        -        // create a local reference to the drag and drop manager
        -        this.DDM = YAHOO.util.DDM;
        -        // initialize the groups array
        -        this.groups = {};
        -
        -        // assume that we have an element reference instead of an id if the
        -        // parameter is not a string
        -        if (typeof id !== "string") {
        -            YAHOO.log("id is not a string, assuming it is an HTMLElement");
        -            id = Dom.generateId(id);
        -        }
        -
        -        // set the id
        -        this.id = id;
        -
        -        // add to an interaction group
        -        this.addToGroup((sGroup) ? sGroup : "default");
        -
        -        // We don't want to register this as the handle with the manager
        -        // so we just set the id rather than calling the setter.
        -        this.handleElId = id;
        -
        -        Event.onAvailable(id, this.handleOnAvailable, this, true);
        -
        -        // create a logger instance
        -        this.logger = (YAHOO.widget.LogWriter) ? 
        -                new YAHOO.widget.LogWriter(this.toString()) : YAHOO;
        -
        -        // the linked element is the element that gets dragged by default
        -        this.setDragElId(id); 
        -
        -        // by default, clicked anchors will not start drag operations. 
        -        // @TODO what else should be here?  Probably form fields.
        -        this.invalidHandleTypes = { A: "A" };
        -        this.invalidHandleIds = {};
        -        this.invalidHandleClasses = [];
        -
        -        this.applyConfig();
        -    },
        -
        -    /**
        -     * Applies the configuration parameters that were passed into the constructor.
        -     * This is supposed to happen at each level through the inheritance chain.  So
        -     * a DDProxy implentation will execute apply config on DDProxy, DD, and 
        -     * DragDrop in order to get all of the parameters that are available in
        -     * each object.
        -     * @method applyConfig
        -     */
        -    applyConfig: function() {
        -
        -        // configurable properties: 
        -        //    padding, isTarget, maintainOffset, primaryButtonOnly
        -        this.padding           = this.config.padding || [0, 0, 0, 0];
        -        this.isTarget          = (this.config.isTarget !== false);
        -        this.maintainOffset    = (this.config.maintainOffset);
        -        this.primaryButtonOnly = (this.config.primaryButtonOnly !== false);
        -
        -    },
        -
        -    /**
        -     * Executed when the linked element is available
        -     * @method handleOnAvailable
        -     * @private
        -     */
        -    handleOnAvailable: function() {
        -        this.logger.log("handleOnAvailable");
        -        this.available = true;
        -        this.resetConstraints();
        -        this.onAvailable();
        -    },
        -
        -     /**
        -     * Configures the padding for the target zone in px.  Effectively expands
        -     * (or reduces) the virtual object size for targeting calculations.  
        -     * Supports css-style shorthand; if only one parameter is passed, all sides
        -     * will have that padding, and if only two are passed, the top and bottom
        -     * will have the first param, the left and right the second.
        -     * @method setPadding
        -     * @param {int} iTop    Top pad
        -     * @param {int} iRight  Right pad
        -     * @param {int} iBot    Bot pad
        -     * @param {int} iLeft   Left pad
        -     */
        -    setPadding: function(iTop, iRight, iBot, iLeft) {
        -        // this.padding = [iLeft, iRight, iTop, iBot];
        -        if (!iRight && 0 !== iRight) {
        -            this.padding = [iTop, iTop, iTop, iTop];
        -        } else if (!iBot && 0 !== iBot) {
        -            this.padding = [iTop, iRight, iTop, iRight];
        -        } else {
        -            this.padding = [iTop, iRight, iBot, iLeft];
        -        }
        -    },
        -
        -    /**
        -     * Stores the initial placement of the linked element.
        -     * @method setInitialPosition
        -     * @param {int} diffX   the X offset, default 0
        -     * @param {int} diffY   the Y offset, default 0
        -     * @private
        -     */
        -    setInitPosition: function(diffX, diffY) {
        -        var el = this.getEl();
        -
        -        if (!this.DDM.verifyEl(el)) {
        -            this.logger.log(this.id + " element is broken");
        -            return;
        -        }
        -
        -        var dx = diffX || 0;
        -        var dy = diffY || 0;
        -
        -        var p = Dom.getXY( el );
        -
        -        this.initPageX = p[0] - dx;
        -        this.initPageY = p[1] - dy;
        -
        -        this.lastPageX = p[0];
        -        this.lastPageY = p[1];
        -
        -        this.logger.log(this.id + " initial position: " + this.initPageX + 
        -                ", " + this.initPageY);
        -
        -
        -        this.setStartPosition(p);
        -    },
        -
        -    /**
        -     * Sets the start position of the element.  This is set when the obj
        -     * is initialized, the reset when a drag is started.
        -     * @method setStartPosition
        -     * @param pos current position (from previous lookup)
        -     * @private
        -     */
        -    setStartPosition: function(pos) {
        -        var p = pos || Dom.getXY(this.getEl());
        -
        -        this.deltaSetXY = null;
        -
        -        this.startPageX = p[0];
        -        this.startPageY = p[1];
        -    },
        -
        -    /**
        -     * Add this instance to a group of related drag/drop objects.  All 
        -     * instances belong to at least one group, and can belong to as many 
        -     * groups as needed.
        -     * @method addToGroup
        -     * @param sGroup {string} the name of the group
        -     */
        -    addToGroup: function(sGroup) {
        -        this.groups[sGroup] = true;
        -        this.DDM.regDragDrop(this, sGroup);
        -    },
        -
        -    /**
        -     * Remove's this instance from the supplied interaction group
        -     * @method removeFromGroup
        -     * @param {string}  sGroup  The group to drop
        -     */
        -    removeFromGroup: function(sGroup) {
        -        this.logger.log("Removing from group: " + sGroup);
        -        if (this.groups[sGroup]) {
        -            delete this.groups[sGroup];
        -        }
        -
        -        this.DDM.removeDDFromGroup(this, sGroup);
        -    },
        -
        -    /**
        -     * Allows you to specify that an element other than the linked element 
        -     * will be moved with the cursor during a drag
        -     * @method setDragElId
        -     * @param id {string} the id of the element that will be used to initiate the drag
        -     */
        -    setDragElId: function(id) {
        -        this.dragElId = id;
        -    },
        -
        -    /**
        -     * Allows you to specify a child of the linked element that should be 
        -     * used to initiate the drag operation.  An example of this would be if 
        -     * you have a content div with text and links.  Clicking anywhere in the 
        -     * content area would normally start the drag operation.  Use this method
        -     * to specify that an element inside of the content div is the element 
        -     * that starts the drag operation.
        -     * @method setHandleElId
        -     * @param id {string} the id of the element that will be used to 
        -     * initiate the drag.
        -     */
        -    setHandleElId: function(id) {
        -        if (typeof id !== "string") {
        -            YAHOO.log("id is not a string, assuming it is an HTMLElement");
        -            id = Dom.generateId(id);
        -        }
        -        this.handleElId = id;
        -        this.DDM.regHandle(this.id, id);
        -    },
        -
        -    /**
        -     * Allows you to set an element outside of the linked element as a drag 
        -     * handle
        -     * @method setOuterHandleElId
        -     * @param id the id of the element that will be used to initiate the drag
        -     */
        -    setOuterHandleElId: function(id) {
        -        if (typeof id !== "string") {
        -            YAHOO.log("id is not a string, assuming it is an HTMLElement");
        -            id = Dom.generateId(id);
        -        }
        -        this.logger.log("Adding outer handle event: " + id);
        -        Event.on(id, "mousedown", 
        -                this.handleMouseDown, this, true);
        -        this.setHandleElId(id);
        -
        -        this.hasOuterHandles = true;
        -    },
        -
        -    /**
        -     * Remove all drag and drop hooks for this element
        -     * @method unreg
        -     */
        -    unreg: function() {
        -        this.logger.log("DragDrop obj cleanup " + this.id);
        -        Event.removeListener(this.id, "mousedown", 
        -                this.handleMouseDown);
        -        this._domRef = null;
        -        this.DDM._remove(this);
        -    },
        -
        -    /**
        -     * Returns true if this instance is locked, or the drag drop mgr is locked
        -     * (meaning that all drag/drop is disabled on the page.)
        -     * @method isLocked
        -     * @return {boolean} true if this obj or all drag/drop is locked, else 
        -     * false
        -     */
        -    isLocked: function() {
        -        return (this.DDM.isLocked() || this.locked);
        -    },
        -
        -    /**
        -     * Fired when this object is clicked
        -     * @method handleMouseDown
        -     * @param {Event} e 
        -     * @param {YAHOO.util.DragDrop} oDD the clicked dd object (this dd obj)
        -     * @private
        -     */
        -    handleMouseDown: function(e, oDD) {
        -
        -        var button = e.which || e.button;
        -        this.logger.log("button: " + button);
        -
        -        if (this.primaryButtonOnly && button > 1) {
        -            this.logger.log("Mousedown was not produced by the primary button");
        -            return;
        -        }
        -
        -        if (this.isLocked()) {
        -            this.logger.log("Drag and drop is disabled, aborting");
        -            return;
        -        }
        -
        -        this.logger.log("mousedown " + this.id);
        -
        -        this.logger.log("firing onMouseDown events");
        -
        -        // firing the mousedown events prior to calculating positions
        -        this.b4MouseDown(e);
        -        this.onMouseDown(e);
        -
        -        this.DDM.refreshCache(this.groups);
        -        // var self = this;
        -        // setTimeout( function() { self.DDM.refreshCache(self.groups); }, 0);
        -
        -        // Only process the event if we really clicked within the linked 
        -        // element.  The reason we make this check is that in the case that 
        -        // another element was moved between the clicked element and the 
        -        // cursor in the time between the mousedown and mouseup events. When 
        -        // this happens, the element gets the next mousedown event 
        -        // regardless of where on the screen it happened.  
        -        var pt = new YAHOO.util.Point(Event.getPageX(e), Event.getPageY(e));
        -        if (!this.hasOuterHandles && !this.DDM.isOverTarget(pt, this) )  {
        -                this.logger.log("Click was not over the element: " + this.id);
        -        } else {
        -            if (this.clickValidator(e)) {
        -
        -                this.logger.log("click was a valid handle");
        -
        -                // set the initial element position
        -                this.setStartPosition();
        -
        -                // start tracking mousemove distance and mousedown time to
        -                // determine when to start the actual drag
        -                this.DDM.handleMouseDown(e, this);
        -
        -                // this mousedown is mine
        -                this.DDM.stopEvent(e);
        -            } else {
        -
        -this.logger.log("clickValidator returned false, drag not initiated");
        -
        -            }
        -        }
        -    },
        -
        -    clickValidator: function(e) {
        -        var target = Event.getTarget(e);
        -        return ( this.isValidHandleChild(target) &&
        -                    (this.id == this.handleElId || 
        -                        this.DDM.handleWasClicked(target, this.id)) );
        -    },
        -
        -    /**
        -     * Finds the location the element should be placed if we want to move
        -     * it to where the mouse location less the click offset would place us.
        -     * @method getTargetCoord
        -     * @param {int} iPageX the X coordinate of the click
        -     * @param {int} iPageY the Y coordinate of the click
        -     * @return an object that contains the coordinates (Object.x and Object.y)
        -     * @private
        -     */
        -    getTargetCoord: function(iPageX, iPageY) {
        -
        -        // this.logger.log("getTargetCoord: " + iPageX + ", " + iPageY);
        -
        -        var x = iPageX - this.deltaX;
        -        var y = iPageY - this.deltaY;
        -
        -        if (this.constrainX) {
        -            if (x < this.minX) { x = this.minX; }
        -            if (x > this.maxX) { x = this.maxX; }
        -        }
        -
        -        if (this.constrainY) {
        -            if (y < this.minY) { y = this.minY; }
        -            if (y > this.maxY) { y = this.maxY; }
        -        }
        -
        -        x = this.getTick(x, this.xTicks);
        -        y = this.getTick(y, this.yTicks);
        -
        -        // this.logger.log("getTargetCoord " + 
        -                // " iPageX: " + iPageX +
        -                // " iPageY: " + iPageY +
        -                // " x: " + x + ", y: " + y);
        -
        -        return {x:x, y:y};
        -    },
        -
        -    /**
        -     * Allows you to specify a tag name that should not start a drag operation
        -     * when clicked.  This is designed to facilitate embedding links within a
        -     * drag handle that do something other than start the drag.
        -     * @method addInvalidHandleType
        -     * @param {string} tagName the type of element to exclude
        -     */
        -    addInvalidHandleType: function(tagName) {
        -        var type = tagName.toUpperCase();
        -        this.invalidHandleTypes[type] = type;
        -    },
        -
        -    /**
        -     * Lets you to specify an element id for a child of a drag handle
        -     * that should not initiate a drag
        -     * @method addInvalidHandleId
        -     * @param {string} id the element id of the element you wish to ignore
        -     */
        -    addInvalidHandleId: function(id) {
        -        if (typeof id !== "string") {
        -            YAHOO.log("id is not a string, assuming it is an HTMLElement");
        -            id = Dom.generateId(id);
        -        }
        -        this.invalidHandleIds[id] = id;
        -    },
        -
        -
        -    /**
        -     * Lets you specify a css class of elements that will not initiate a drag
        -     * @method addInvalidHandleClass
        -     * @param {string} cssClass the class of the elements you wish to ignore
        -     */
        -    addInvalidHandleClass: function(cssClass) {
        -        this.invalidHandleClasses.push(cssClass);
        -    },
        -
        -    /**
        -     * Unsets an excluded tag name set by addInvalidHandleType
        -     * @method removeInvalidHandleType
        -     * @param {string} tagName the type of element to unexclude
        -     */
        -    removeInvalidHandleType: function(tagName) {
        -        var type = tagName.toUpperCase();
        -        // this.invalidHandleTypes[type] = null;
        -        delete this.invalidHandleTypes[type];
        -    },
        -    
        -    /**
        -     * Unsets an invalid handle id
        -     * @method removeInvalidHandleId
        -     * @param {string} id the id of the element to re-enable
        -     */
        -    removeInvalidHandleId: function(id) {
        -        if (typeof id !== "string") {
        -            YAHOO.log("id is not a string, assuming it is an HTMLElement");
        -            id = Dom.generateId(id);
        -        }
        -        delete this.invalidHandleIds[id];
        -    },
        -
        -    /**
        -     * Unsets an invalid css class
        -     * @method removeInvalidHandleClass
        -     * @param {string} cssClass the class of the element(s) you wish to 
        -     * re-enable
        -     */
        -    removeInvalidHandleClass: function(cssClass) {
        -        for (var i=0, len=this.invalidHandleClasses.length; i<len; ++i) {
        -            if (this.invalidHandleClasses[i] == cssClass) {
        -                delete this.invalidHandleClasses[i];
        -            }
        -        }
        -    },
        -
        -    /**
        -     * Checks the tag exclusion list to see if this click should be ignored
        -     * @method isValidHandleChild
        -     * @param {HTMLElement} node the HTMLElement to evaluate
        -     * @return {boolean} true if this is a valid tag type, false if not
        -     */
        -    isValidHandleChild: function(node) {
        -
        -        var valid = true;
        -        // var n = (node.nodeName == "#text") ? node.parentNode : node;
        -        var nodeName;
        -        try {
        -            nodeName = node.nodeName.toUpperCase();
        -        } catch(e) {
        -            nodeName = node.nodeName;
        -        }
        -        valid = valid && !this.invalidHandleTypes[nodeName];
        -        valid = valid && !this.invalidHandleIds[node.id];
        -
        -        for (var i=0, len=this.invalidHandleClasses.length; valid && i<len; ++i) {
        -            valid = !Dom.hasClass(node, this.invalidHandleClasses[i]);
        -        }
        -
        -        this.logger.log("Valid handle? ... " + valid);
        -
        -        return valid;
        -
        -    },
        -
        -    /**
        -     * Create the array of horizontal tick marks if an interval was specified
        -     * in setXConstraint().
        -     * @method setXTicks
        -     * @private
        -     */
        -    setXTicks: function(iStartX, iTickSize) {
        -        this.xTicks = [];
        -        this.xTickSize = iTickSize;
        -        
        -        var tickMap = {};
        -
        -        for (var i = this.initPageX; i >= this.minX; i = i - iTickSize) {
        -            if (!tickMap[i]) {
        -                this.xTicks[this.xTicks.length] = i;
        -                tickMap[i] = true;
        -            }
        -        }
        -
        -        for (i = this.initPageX; i <= this.maxX; i = i + iTickSize) {
        -            if (!tickMap[i]) {
        -                this.xTicks[this.xTicks.length] = i;
        -                tickMap[i] = true;
        -            }
        -        }
        -
        -        this.xTicks.sort(this.DDM.numericSort) ;
        -        this.logger.log("xTicks: " + this.xTicks.join());
        -    },
        -
        -    /**
        -     * Create the array of vertical tick marks if an interval was specified in 
        -     * setYConstraint().
        -     * @method setYTicks
        -     * @private
        -     */
        -    setYTicks: function(iStartY, iTickSize) {
        -        // this.logger.log("setYTicks: " + iStartY + ", " + iTickSize
        -               // + ", " + this.initPageY + ", " + this.minY + ", " + this.maxY );
        -        this.yTicks = [];
        -        this.yTickSize = iTickSize;
        -
        -        var tickMap = {};
        -
        -        for (var i = this.initPageY; i >= this.minY; i = i - iTickSize) {
        -            if (!tickMap[i]) {
        -                this.yTicks[this.yTicks.length] = i;
        -                tickMap[i] = true;
        -            }
        -        }
        -
        -        for (i = this.initPageY; i <= this.maxY; i = i + iTickSize) {
        -            if (!tickMap[i]) {
        -                this.yTicks[this.yTicks.length] = i;
        -                tickMap[i] = true;
        -            }
        -        }
        -
        -        this.yTicks.sort(this.DDM.numericSort) ;
        -        this.logger.log("yTicks: " + this.yTicks.join());
        -    },
        -
        -    /**
        -     * By default, the element can be dragged any place on the screen.  Use 
        -     * this method to limit the horizontal travel of the element.  Pass in 
        -     * 0,0 for the parameters if you want to lock the drag to the y axis.
        -     * @method setXConstraint
        -     * @param {int} iLeft the number of pixels the element can move to the left
        -     * @param {int} iRight the number of pixels the element can move to the 
        -     * right
        -     * @param {int} iTickSize optional parameter for specifying that the 
        -     * element
        -     * should move iTickSize pixels at a time.
        -     */
        -    setXConstraint: function(iLeft, iRight, iTickSize) {
        -        this.leftConstraint = parseInt(iLeft, 10);
        -        this.rightConstraint = parseInt(iRight, 10);
        -
        -        this.minX = this.initPageX - this.leftConstraint;
        -        this.maxX = this.initPageX + this.rightConstraint;
        -        if (iTickSize) { this.setXTicks(this.initPageX, iTickSize); }
        -
        -        this.constrainX = true;
        -        this.logger.log("initPageX:" + this.initPageX + " minX:" + this.minX + 
        -                " maxX:" + this.maxX);
        -    },
        -
        -    /**
        -     * Clears any constraints applied to this instance.  Also clears ticks
        -     * since they can't exist independent of a constraint at this time.
        -     * @method clearConstraints
        -     */
        -    clearConstraints: function() {
        -        this.logger.log("Clearing constraints");
        -        this.constrainX = false;
        -        this.constrainY = false;
        -        this.clearTicks();
        -    },
        -
        -    /**
        -     * Clears any tick interval defined for this instance
        -     * @method clearTicks
        -     */
        -    clearTicks: function() {
        -        this.logger.log("Clearing ticks");
        -        this.xTicks = null;
        -        this.yTicks = null;
        -        this.xTickSize = 0;
        -        this.yTickSize = 0;
        -    },
        -
        -    /**
        -     * By default, the element can be dragged any place on the screen.  Set 
        -     * this to limit the vertical travel of the element.  Pass in 0,0 for the
        -     * parameters if you want to lock the drag to the x axis.
        -     * @method setYConstraint
        -     * @param {int} iUp the number of pixels the element can move up
        -     * @param {int} iDown the number of pixels the element can move down
        -     * @param {int} iTickSize optional parameter for specifying that the 
        -     * element should move iTickSize pixels at a time.
        -     */
        -    setYConstraint: function(iUp, iDown, iTickSize) {
        -        this.logger.log("setYConstraint: " + iUp + "," + iDown + "," + iTickSize);
        -        this.topConstraint = parseInt(iUp, 10);
        -        this.bottomConstraint = parseInt(iDown, 10);
        -
        -        this.minY = this.initPageY - this.topConstraint;
        -        this.maxY = this.initPageY + this.bottomConstraint;
        -        if (iTickSize) { this.setYTicks(this.initPageY, iTickSize); }
        -
        -        this.constrainY = true;
        -        
        -        this.logger.log("initPageY:" + this.initPageY + " minY:" + this.minY + 
        -                " maxY:" + this.maxY);
        -    },
        -
        -    /**
        -     * resetConstraints must be called if you manually reposition a dd element.
        -     * @method resetConstraints
        -     * @param {boolean} maintainOffset
        -     */
        -    resetConstraints: function() {
        -
        -        this.logger.log("resetConstraints");
        -
        -        // Maintain offsets if necessary
        -        if (this.initPageX || this.initPageX === 0) {
        -            this.logger.log("init pagexy: " + this.initPageX + ", " + 
        -                               this.initPageY);
        -            this.logger.log("last pagexy: " + this.lastPageX + ", " + 
        -                               this.lastPageY);
        -            // figure out how much this thing has moved
        -            var dx = (this.maintainOffset) ? this.lastPageX - this.initPageX : 0;
        -            var dy = (this.maintainOffset) ? this.lastPageY - this.initPageY : 0;
        -
        -            this.setInitPosition(dx, dy);
        -
        -        // This is the first time we have detected the element's position
        -        } else {
        -            this.setInitPosition();
        -        }
        -
        -        if (this.constrainX) {
        -            this.setXConstraint( this.leftConstraint, 
        -                                 this.rightConstraint, 
        -                                 this.xTickSize        );
        -        }
        -
        -        if (this.constrainY) {
        -            this.setYConstraint( this.topConstraint, 
        -                                 this.bottomConstraint, 
        -                                 this.yTickSize         );
        -        }
        -    },
        -
        -    /**
        -     * Normally the drag element is moved pixel by pixel, but we can specify 
        -     * that it move a number of pixels at a time.  This method resolves the 
        -     * location when we have it set up like this.
        -     * @method getTick
        -     * @param {int} val where we want to place the object
        -     * @param {int[]} tickArray sorted array of valid points
        -     * @return {int} the closest tick
        -     * @private
        -     */
        -    getTick: function(val, tickArray) {
        -
        -        if (!tickArray) {
        -            // If tick interval is not defined, it is effectively 1 pixel, 
        -            // so we return the value passed to us.
        -            return val; 
        -        } else if (tickArray[0] >= val) {
        -            // The value is lower than the first tick, so we return the first
        -            // tick.
        -            return tickArray[0];
        -        } else {
        -            for (var i=0, len=tickArray.length; i<len; ++i) {
        -                var next = i + 1;
        -                if (tickArray[next] && tickArray[next] >= val) {
        -                    var diff1 = val - tickArray[i];
        -                    var diff2 = tickArray[next] - val;
        -                    return (diff2 > diff1) ? tickArray[i] : tickArray[next];
        -                }
        -            }
        -
        -            // The value is larger than the last tick, so we return the last
        -            // tick.
        -            return tickArray[tickArray.length - 1];
        -        }
        -    },
        -
        -    /**
        -     * toString method
        -     * @method toString
        -     * @return {string} string representation of the dd obj
        -     */
        -    toString: function() {
        -        return ("DragDrop " + this.id);
        -    }
        -
        -};
        -
        -})();
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/DragDropMgr.js.html b/www/extras/yui/docs/DragDropMgr.js.html deleted file mode 100644 index 14b9c1a7d..000000000 --- a/www/extras/yui/docs/DragDropMgr.js.html +++ /dev/null @@ -1,1521 +0,0 @@ - - - - API: dragdrop DragDropMgr.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Drag and Drop  2.2.2

        -

        - Yahoo! UI Library - > dragdrop - - > DragDropMgr.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * The drag and drop utility provides a framework for building drag and drop
        - * applications.  In addition to enabling drag and drop for specific elements,
        - * the drag and drop elements are tracked by the manager class, and the
        - * interactions between the various elements are tracked during the drag and
        - * the implementing code is notified about these important moments.
        - * @module dragdrop
        - * @title Drag and Drop
        - * @requires yahoo,dom,event
        - * @namespace YAHOO.util
        - */
        -
        -// Only load the library once.  Rewriting the manager class would orphan 
        -// existing drag and drop instances.
        -if (!YAHOO.util.DragDropMgr) {
        -
        -/**
        - * DragDropMgr is a singleton that tracks the element interaction for 
        - * all DragDrop items in the window.  Generally, you will not call 
        - * this class directly, but it does have helper methods that could 
        - * be useful in your DragDrop implementations.
        - * @class DragDropMgr
        - * @static
        - */
        -YAHOO.util.DragDropMgr = function() {
        -
        -    var Event = YAHOO.util.Event;
        -
        -    return {
        -
        -        /**
        -         * Two dimensional Array of registered DragDrop objects.  The first 
        -         * dimension is the DragDrop item group, the second the DragDrop 
        -         * object.
        -         * @property ids
        -         * @type {string: string}
        -         * @private
        -         * @static
        -         */
        -        ids: {},
        -
        -        /**
        -         * Array of element ids defined as drag handles.  Used to determine 
        -         * if the element that generated the mousedown event is actually the 
        -         * handle and not the html element itself.
        -         * @property handleIds
        -         * @type {string: string}
        -         * @private
        -         * @static
        -         */
        -        handleIds: {},
        -
        -        /**
        -         * the DragDrop object that is currently being dragged
        -         * @property dragCurrent
        -         * @type DragDrop
        -         * @private
        -         * @static
        -         **/
        -        dragCurrent: null,
        -
        -        /**
        -         * the DragDrop object(s) that are being hovered over
        -         * @property dragOvers
        -         * @type Array
        -         * @private
        -         * @static
        -         */
        -        dragOvers: {},
        -
        -        /**
        -         * the X distance between the cursor and the object being dragged
        -         * @property deltaX
        -         * @type int
        -         * @private
        -         * @static
        -         */
        -        deltaX: 0,
        -
        -        /**
        -         * the Y distance between the cursor and the object being dragged
        -         * @property deltaY
        -         * @type int
        -         * @private
        -         * @static
        -         */
        -        deltaY: 0,
        -
        -        /**
        -         * Flag to determine if we should prevent the default behavior of the
        -         * events we define. By default this is true, but this can be set to 
        -         * false if you need the default behavior (not recommended)
        -         * @property preventDefault
        -         * @type boolean
        -         * @static
        -         */
        -        preventDefault: true,
        -
        -        /**
        -         * Flag to determine if we should stop the propagation of the events 
        -         * we generate. This is true by default but you may want to set it to
        -         * false if the html element contains other features that require the
        -         * mouse click.
        -         * @property stopPropagation
        -         * @type boolean
        -         * @static
        -         */
        -        stopPropagation: true,
        -
        -        /**
        -         * Internal flag that is set to true when drag and drop has been
        -         * intialized
        -         * @property initialized
        -         * @private
        -         * @static
        -         */
        -        initalized: false,
        -
        -        /**
        -         * All drag and drop can be disabled.
        -         * @property locked
        -         * @private
        -         * @static
        -         */
        -        locked: false,
        -
        -
        -        /**
        -         * Provides additional information about the the current set of
        -         * interactions.  Can be accessed from the event handlers. It
        -         * contains the following properties:
        -         *
        -         *       out:       onDragOut interactions
        -         *       enter:     onDragEnter interactions
        -         *       over:      onDragOver interactions
        -         *       drop:      onDragDrop interactions
        -         *       point:     The location of the cursor
        -         *       draggedRegion: The location of dragged element at the time
        -         *                      of the interaction
        -         *       sourceRegion: The location of the source elemtn at the time
        -         *                     of the interaction
        -         *       validDrop: boolean
        -         * @property interactionInfo
        -         * @type object
        -         * @static
        -         */
        -        interactionInfo: null,
        -
        -        /**
        -         * Called the first time an element is registered.
        -         * @method init
        -         * @private
        -         * @static
        -         */
        -        init: function() {
        -            this.initialized = true;
        -        },
        -
        -        /**
        -         * In point mode, drag and drop interaction is defined by the 
        -         * location of the cursor during the drag/drop
        -         * @property POINT
        -         * @type int
        -         * @static
        -         * @final
        -         */
        -        POINT: 0,
        -
        -        /**
        -         * In intersect mode, drag and drop interaction is defined by the 
        -         * cursor position or the amount of overlap of two or more drag and 
        -         * drop objects.
        -         * @property INTERSECT
        -         * @type int
        -         * @static
        -         * @final
        -         */
        -        INTERSECT: 1,
        -
        -        /**
        -         * In intersect mode, drag and drop interaction is defined only by the 
        -         * overlap of two or more drag and drop objects.
        -         * @property STRICT_INTERSECT
        -         * @type int
        -         * @static
        -         * @final
        -         */
        -        STRICT_INTERSECT: 2,
        -
        -        /**
        -         * The current drag and drop mode.  Default: POINT
        -         * @property mode
        -         * @type int
        -         * @static
        -         */
        -        mode: 0,
        -
        -        /**
        -         * Runs method on all drag and drop objects
        -         * @method _execOnAll
        -         * @private
        -         * @static
        -         */
        -        _execOnAll: function(sMethod, args) {
        -            for (var i in this.ids) {
        -                for (var j in this.ids[i]) {
        -                    var oDD = this.ids[i][j];
        -                    if (! this.isTypeOfDD(oDD)) {
        -                        continue;
        -                    }
        -                    oDD[sMethod].apply(oDD, args);
        -                }
        -            }
        -        },
        -
        -        /**
        -         * Drag and drop initialization.  Sets up the global event handlers
        -         * @method _onLoad
        -         * @private
        -         * @static
        -         */
        -        _onLoad: function() {
        -
        -            this.init();
        -
        -            YAHOO.log("DragDropMgr onload", "info", "DragDropMgr");
        -
        -            Event.on(document, "mouseup",   this.handleMouseUp, this, true);
        -            Event.on(document, "mousemove", this.handleMouseMove, this, true);
        -            Event.on(window,   "unload",    this._onUnload, this, true);
        -            Event.on(window,   "resize",    this._onResize, this, true);
        -            // Event.on(window,   "mouseout",    this._test);
        -
        -        },
        -
        -        /**
        -         * Reset constraints on all drag and drop objs
        -         * @method _onResize
        -         * @private
        -         * @static
        -         */
        -        _onResize: function(e) {
        -            YAHOO.log("window resize", "info", "DragDropMgr");
        -            this._execOnAll("resetConstraints", []);
        -        },
        -
        -        /**
        -         * Lock all drag and drop functionality
        -         * @method lock
        -         * @static
        -         */
        -        lock: function() { this.locked = true; },
        -
        -        /**
        -         * Unlock all drag and drop functionality
        -         * @method unlock
        -         * @static
        -         */
        -        unlock: function() { this.locked = false; },
        -
        -        /**
        -         * Is drag and drop locked?
        -         * @method isLocked
        -         * @return {boolean} True if drag and drop is locked, false otherwise.
        -         * @static
        -         */
        -        isLocked: function() { return this.locked; },
        -
        -        /**
        -         * Location cache that is set for all drag drop objects when a drag is
        -         * initiated, cleared when the drag is finished.
        -         * @property locationCache
        -         * @private
        -         * @static
        -         */
        -        locationCache: {},
        -
        -        /**
        -         * Set useCache to false if you want to force object the lookup of each
        -         * drag and drop linked element constantly during a drag.
        -         * @property useCache
        -         * @type boolean
        -         * @static
        -         */
        -        useCache: true,
        -
        -        /**
        -         * The number of pixels that the mouse needs to move after the 
        -         * mousedown before the drag is initiated.  Default=3;
        -         * @property clickPixelThresh
        -         * @type int
        -         * @static
        -         */
        -        clickPixelThresh: 3,
        -
        -        /**
        -         * The number of milliseconds after the mousedown event to initiate the
        -         * drag if we don't get a mouseup event. Default=1000
        -         * @property clickTimeThresh
        -         * @type int
        -         * @static
        -         */
        -        clickTimeThresh: 1000,
        -
        -        /**
        -         * Flag that indicates that either the drag pixel threshold or the 
        -         * mousdown time threshold has been met
        -         * @property dragThreshMet
        -         * @type boolean
        -         * @private
        -         * @static
        -         */
        -        dragThreshMet: false,
        -
        -        /**
        -         * Timeout used for the click time threshold
        -         * @property clickTimeout
        -         * @type Object
        -         * @private
        -         * @static
        -         */
        -        clickTimeout: null,
        -
        -        /**
        -         * The X position of the mousedown event stored for later use when a 
        -         * drag threshold is met.
        -         * @property startX
        -         * @type int
        -         * @private
        -         * @static
        -         */
        -        startX: 0,
        -
        -        /**
        -         * The Y position of the mousedown event stored for later use when a 
        -         * drag threshold is met.
        -         * @property startY
        -         * @type int
        -         * @private
        -         * @static
        -         */
        -        startY: 0,
        -
        -        /**
        -         * Each DragDrop instance must be registered with the DragDropMgr.  
        -         * This is executed in DragDrop.init()
        -         * @method regDragDrop
        -         * @param {DragDrop} oDD the DragDrop object to register
        -         * @param {String} sGroup the name of the group this element belongs to
        -         * @static
        -         */
        -        regDragDrop: function(oDD, sGroup) {
        -            if (!this.initialized) { this.init(); }
        -            
        -            if (!this.ids[sGroup]) {
        -                this.ids[sGroup] = {};
        -            }
        -            this.ids[sGroup][oDD.id] = oDD;
        -        },
        -
        -        /**
        -         * Removes the supplied dd instance from the supplied group. Executed
        -         * by DragDrop.removeFromGroup, so don't call this function directly.
        -         * @method removeDDFromGroup
        -         * @private
        -         * @static
        -         */
        -        removeDDFromGroup: function(oDD, sGroup) {
        -            if (!this.ids[sGroup]) {
        -                this.ids[sGroup] = {};
        -            }
        -
        -            var obj = this.ids[sGroup];
        -            if (obj && obj[oDD.id]) {
        -                delete obj[oDD.id];
        -            }
        -        },
        -
        -        /**
        -         * Unregisters a drag and drop item.  This is executed in 
        -         * DragDrop.unreg, use that method instead of calling this directly.
        -         * @method _remove
        -         * @private
        -         * @static
        -         */
        -        _remove: function(oDD) {
        -            for (var g in oDD.groups) {
        -                if (g && this.ids[g][oDD.id]) {
        -                    delete this.ids[g][oDD.id];
        -                    //YAHOO.log("NEW LEN " + this.ids.length, "warn");
        -                }
        -            }
        -            delete this.handleIds[oDD.id];
        -        },
        -
        -        /**
        -         * Each DragDrop handle element must be registered.  This is done
        -         * automatically when executing DragDrop.setHandleElId()
        -         * @method regHandle
        -         * @param {String} sDDId the DragDrop id this element is a handle for
        -         * @param {String} sHandleId the id of the element that is the drag 
        -         * handle
        -         * @static
        -         */
        -        regHandle: function(sDDId, sHandleId) {
        -            if (!this.handleIds[sDDId]) {
        -                this.handleIds[sDDId] = {};
        -            }
        -            this.handleIds[sDDId][sHandleId] = sHandleId;
        -        },
        -
        -        /**
        -         * Utility function to determine if a given element has been 
        -         * registered as a drag drop item.
        -         * @method isDragDrop
        -         * @param {String} id the element id to check
        -         * @return {boolean} true if this element is a DragDrop item, 
        -         * false otherwise
        -         * @static
        -         */
        -        isDragDrop: function(id) {
        -            return ( this.getDDById(id) ) ? true : false;
        -        },
        -
        -        /**
        -         * Returns the drag and drop instances that are in all groups the
        -         * passed in instance belongs to.
        -         * @method getRelated
        -         * @param {DragDrop} p_oDD the obj to get related data for
        -         * @param {boolean} bTargetsOnly if true, only return targetable objs
        -         * @return {DragDrop[]} the related instances
        -         * @static
        -         */
        -        getRelated: function(p_oDD, bTargetsOnly) {
        -            var oDDs = [];
        -            for (var i in p_oDD.groups) {
        -                for (j in this.ids[i]) {
        -                    var dd = this.ids[i][j];
        -                    if (! this.isTypeOfDD(dd)) {
        -                        continue;
        -                    }
        -                    if (!bTargetsOnly || dd.isTarget) {
        -                        oDDs[oDDs.length] = dd;
        -                    }
        -                }
        -            }
        -
        -            return oDDs;
        -        },
        -
        -        /**
        -         * Returns true if the specified dd target is a legal target for 
        -         * the specifice drag obj
        -         * @method isLegalTarget
        -         * @param {DragDrop} the drag obj
        -         * @param {DragDrop} the target
        -         * @return {boolean} true if the target is a legal target for the 
        -         * dd obj
        -         * @static
        -         */
        -        isLegalTarget: function (oDD, oTargetDD) {
        -            var targets = this.getRelated(oDD, true);
        -            for (var i=0, len=targets.length;i<len;++i) {
        -                if (targets[i].id == oTargetDD.id) {
        -                    return true;
        -                }
        -            }
        -
        -            return false;
        -        },
        -
        -        /**
        -         * My goal is to be able to transparently determine if an object is
        -         * typeof DragDrop, and the exact subclass of DragDrop.  typeof 
        -         * returns "object", oDD.constructor.toString() always returns
        -         * "DragDrop" and not the name of the subclass.  So for now it just
        -         * evaluates a well-known variable in DragDrop.
        -         * @method isTypeOfDD
        -         * @param {Object} the object to evaluate
        -         * @return {boolean} true if typeof oDD = DragDrop
        -         * @static
        -         */
        -        isTypeOfDD: function (oDD) {
        -            return (oDD && oDD.__ygDragDrop);
        -        },
        -
        -        /**
        -         * Utility function to determine if a given element has been 
        -         * registered as a drag drop handle for the given Drag Drop object.
        -         * @method isHandle
        -         * @param {String} id the element id to check
        -         * @return {boolean} true if this element is a DragDrop handle, false 
        -         * otherwise
        -         * @static
        -         */
        -        isHandle: function(sDDId, sHandleId) {
        -            return ( this.handleIds[sDDId] && 
        -                            this.handleIds[sDDId][sHandleId] );
        -        },
        -
        -        /**
        -         * Returns the DragDrop instance for a given id
        -         * @method getDDById
        -         * @param {String} id the id of the DragDrop object
        -         * @return {DragDrop} the drag drop object, null if it is not found
        -         * @static
        -         */
        -        getDDById: function(id) {
        -            for (var i in this.ids) {
        -                if (this.ids[i][id]) {
        -                    return this.ids[i][id];
        -                }
        -            }
        -            return null;
        -        },
        -
        -        /**
        -         * Fired after a registered DragDrop object gets the mousedown event.
        -         * Sets up the events required to track the object being dragged
        -         * @method handleMouseDown
        -         * @param {Event} e the event
        -         * @param oDD the DragDrop object being dragged
        -         * @private
        -         * @static
        -         */
        -        handleMouseDown: function(e, oDD) {
        -
        -            this.currentTarget = YAHOO.util.Event.getTarget(e);
        -
        -            this.dragCurrent = oDD;
        -
        -            var el = oDD.getEl();
        -
        -            // track start position
        -            this.startX = YAHOO.util.Event.getPageX(e);
        -            this.startY = YAHOO.util.Event.getPageY(e);
        -
        -            this.deltaX = this.startX - el.offsetLeft;
        -            this.deltaY = this.startY - el.offsetTop;
        -
        -            this.dragThreshMet = false;
        -
        -            this.clickTimeout = setTimeout( 
        -                    function() { 
        -                        var DDM = YAHOO.util.DDM;
        -                        DDM.startDrag(DDM.startX, DDM.startY); 
        -                    }, 
        -                    this.clickTimeThresh );
        -        },
        -
        -        /**
        -         * Fired when either the drag pixel threshol or the mousedown hold 
        -         * time threshold has been met.
        -         * @method startDrag
        -         * @param x {int} the X position of the original mousedown
        -         * @param y {int} the Y position of the original mousedown
        -         * @static
        -         */
        -        startDrag: function(x, y) {
        -            YAHOO.log("firing drag start events", "info", "DragDropMgr");
        -            clearTimeout(this.clickTimeout);
        -            if (this.dragCurrent) {
        -                this.dragCurrent.b4StartDrag(x, y);
        -                this.dragCurrent.startDrag(x, y);
        -            }
        -            this.dragThreshMet = true;
        -        },
        -
        -        /**
        -         * Internal function to handle the mouseup event.  Will be invoked 
        -         * from the context of the document.
        -         * @method handleMouseUp
        -         * @param {Event} e the event
        -         * @private
        -         * @static
        -         */
        -        handleMouseUp: function(e) {
        -
        -            if (! this.dragCurrent) {
        -                return;
        -            }
        -
        -            clearTimeout(this.clickTimeout);
        -
        -            if (this.dragThreshMet) {
        -                YAHOO.log("mouseup detected - completing drag", "info", "DragDropMgr");
        -                this.fireEvents(e, true);
        -            } else {
        -                YAHOO.log("drag threshold not met", "info", "DragDropMgr");
        -            }
        -
        -            this.stopDrag(e);
        -
        -            this.stopEvent(e);
        -        },
        -
        -        /**
        -         * Utility to stop event propagation and event default, if these 
        -         * features are turned on.
        -         * @method stopEvent
        -         * @param {Event} e the event as returned by this.getEvent()
        -         * @static
        -         */
        -        stopEvent: function(e) {
        -            if (this.stopPropagation) {
        -                YAHOO.util.Event.stopPropagation(e);
        -            }
        -
        -            if (this.preventDefault) {
        -                YAHOO.util.Event.preventDefault(e);
        -            }
        -        },
        -
        -        /** 
        -         * Internal function to clean up event handlers after the drag 
        -         * operation is complete
        -         * @method stopDrag
        -         * @param {Event} e the event
        -         * @private
        -         * @static
        -         */
        -        stopDrag: function(e) {
        -            // YAHOO.log("mouseup - removing event handlers");
        -
        -            // Fire the drag end event for the item that was dragged
        -            if (this.dragCurrent) {
        -                if (this.dragThreshMet) {
        -                    YAHOO.log("firing endDrag events", "info", "DragDropMgr");
        -                    this.dragCurrent.b4EndDrag(e);
        -                    this.dragCurrent.endDrag(e);
        -                }
        -
        -                YAHOO.log("firing dragdrop onMouseUp event", "info", "DragDropMgr");
        -                this.dragCurrent.onMouseUp(e);
        -            }
        -
        -            this.dragCurrent = null;
        -            this.dragOvers = {};
        -        },
        -
        -
        -        /** 
        -         * Internal function to handle the mousemove event.  Will be invoked 
        -         * from the context of the html element.
        -         *
        -         * @TODO figure out what we can do about mouse events lost when the 
        -         * user drags objects beyond the window boundary.  Currently we can 
        -         * detect this in internet explorer by verifying that the mouse is 
        -         * down during the mousemove event.  Firefox doesn't give us the 
        -         * button state on the mousemove event.
        -         * @method handleMouseMove
        -         * @param {Event} e the event
        -         * @private
        -         * @static
        -         */
        -        handleMouseMove: function(e) {
        -            //YAHOO.log("handlemousemove");
        -            if (! this.dragCurrent) {
        -                // YAHOO.log("no current drag obj");
        -                return true;
        -            }
        -
        -            // var button = e.which || e.button;
        -            // YAHOO.log("which: " + e.which + ", button: "+ e.button);
        -
        -            // check for IE mouseup outside of page boundary
        -            if (YAHOO.util.Event.isIE && !e.button) {
        -                YAHOO.log("button failure", "info", "DragDropMgr");
        -                this.stopEvent(e);
        -                return this.handleMouseUp(e);
        -            }
        -
        -            if (!this.dragThreshMet) {
        -                var diffX = Math.abs(this.startX - YAHOO.util.Event.getPageX(e));
        -                var diffY = Math.abs(this.startY - YAHOO.util.Event.getPageY(e));
        -                // YAHOO.log("diffX: " + diffX + "diffY: " + diffY);
        -                if (diffX > this.clickPixelThresh || 
        -                            diffY > this.clickPixelThresh) {
        -                    YAHOO.log("pixel threshold met", "info", "DragDropMgr");
        -                    this.startDrag(this.startX, this.startY);
        -                }
        -            }
        -
        -            if (this.dragThreshMet) {
        -                this.dragCurrent.b4Drag(e);
        -                this.dragCurrent.onDrag(e);
        -                this.fireEvents(e, false);
        -            }
        -
        -            this.stopEvent(e);
        -
        -            return true;
        -        },
        -
        -        /**
        -         * Iterates over all of the DragDrop elements to find ones we are 
        -         * hovering over or dropping on
        -         * @method fireEvents
        -         * @param {Event} e the event
        -         * @param {boolean} isDrop is this a drop op or a mouseover op?
        -         * @private
        -         * @static
        -         */
        -        fireEvents: function(e, isDrop) {
        -            var dc = this.dragCurrent;
        -
        -            // If the user did the mouse up outside of the window, we could 
        -            // get here even though we have ended the drag.
        -            if (!dc || dc.isLocked()) {
        -                return;
        -            }
        -
        -            var x = YAHOO.util.Event.getPageX(e);
        -            var y = YAHOO.util.Event.getPageY(e);
        -            var pt = new YAHOO.util.Point(x,y);
        -            var pos = dc.getTargetCoord(pt.x, pt.y);
        -            var el = dc.getDragEl();
        -            curRegion = new YAHOO.util.Region( pos.y, 
        -                                               pos.x + el.offsetWidth,
        -                                               pos.y + el.offsetHeight, 
        -                                               pos.x );
        -            // cache the previous dragOver array
        -            var oldOvers = [];
        -
        -            var outEvts   = [];
        -            var overEvts  = [];
        -            var dropEvts  = [];
        -            var enterEvts = [];
        -
        -
        -            // Check to see if the object(s) we were hovering over is no longer 
        -            // being hovered over so we can fire the onDragOut event
        -            for (var i in this.dragOvers) {
        -
        -                var ddo = this.dragOvers[i];
        -
        -                if (! this.isTypeOfDD(ddo)) {
        -                    continue;
        -                }
        -
        -                if (! this.isOverTarget(pt, ddo, this.mode, curRegion)) {
        -                    outEvts.push( ddo );
        -                }
        -
        -                oldOvers[i] = true;
        -                delete this.dragOvers[i];
        -            }
        -
        -            for (var sGroup in dc.groups) {
        -                // YAHOO.log("Processing group " + sGroup);
        -                
        -                if ("string" != typeof sGroup) {
        -                    continue;
        -                }
        -
        -                for (i in this.ids[sGroup]) {
        -                    var oDD = this.ids[sGroup][i];
        -                    if (! this.isTypeOfDD(oDD)) {
        -                        continue;
        -                    }
        -
        -                    if (oDD.isTarget && !oDD.isLocked() && oDD != dc) {
        -                        if (this.isOverTarget(pt, oDD, this.mode, curRegion)) {
        -                            // look for drop interactions
        -                            if (isDrop) {
        -                                dropEvts.push( oDD );
        -                            // look for drag enter and drag over interactions
        -                            } else {
        -
        -                                // initial drag over: dragEnter fires
        -                                if (!oldOvers[oDD.id]) {
        -                                    enterEvts.push( oDD );
        -                                // subsequent drag overs: dragOver fires
        -                                } else {
        -                                    overEvts.push( oDD );
        -                                }
        -
        -                                this.dragOvers[oDD.id] = oDD;
        -                            }
        -                        }
        -                    }
        -                }
        -            }
        -
        -            this.interactionInfo = {
        -                out:       outEvts,
        -                enter:     enterEvts,
        -                over:      overEvts,
        -                drop:      dropEvts,
        -                point:     pt,
        -                draggedRegion:    curRegion,
        -                sourceRegion: this.locationCache[dc.id],
        -                validDrop: isDrop
        -            };
        -
        -            // notify about a drop that did not find a target
        -            if (isDrop && !dropEvts.length) {
        -                YAHOO.log(dc.id + " dropped, but not on a target", "info", "DragDropMgr");
        -                this.interactionInfo.validDrop = false;
        -                dc.onInvalidDrop(e);
        -            }
        -
        -
        -            if (this.mode) {
        -                if (outEvts.length) {
        -                    YAHOO.log(dc.id+" onDragOut: " + outEvts, "info", "DragDropMgr");
        -                    dc.b4DragOut(e, outEvts);
        -                    dc.onDragOut(e, outEvts);
        -                }
        -
        -                if (enterEvts.length) {
        -                    YAHOO.log(dc.id+" onDragEnter: " + enterEvts, "info", "DragDropMgr");
        -                    dc.onDragEnter(e, enterEvts);
        -                }
        -
        -                if (overEvts.length) {
        -                    YAHOO.log(dc.id+" onDragOver: " + overEvts, "info", "DragDropMgr");
        -                    dc.b4DragOver(e, overEvts);
        -                    dc.onDragOver(e, overEvts);
        -                }
        -
        -                if (dropEvts.length) {
        -                    YAHOO.log(dc.id+" onDragDrop: " + dropEvts, "info", "DragDropMgr");
        -                    dc.b4DragDrop(e, dropEvts);
        -                    dc.onDragDrop(e, dropEvts);
        -                }
        -
        -            } else {
        -                // fire dragout events
        -                var len = 0;
        -                for (i=0, len=outEvts.length; i<len; ++i) {
        -                    YAHOO.log(dc.id+" onDragOut: " + outEvts[i].id, "info", "DragDropMgr");
        -                    dc.b4DragOut(e, outEvts[i].id);
        -                    dc.onDragOut(e, outEvts[i].id);
        -                }
        -                 
        -                // fire enter events
        -                for (i=0,len=enterEvts.length; i<len; ++i) {
        -                    YAHOO.log(dc.id + " onDragEnter " + enterEvts[i].id, "info", "DragDropMgr");
        -                    // dc.b4DragEnter(e, oDD.id);
        -                    dc.onDragEnter(e, enterEvts[i].id);
        -                }
        -         
        -                // fire over events
        -                for (i=0,len=overEvts.length; i<len; ++i) {
        -                    YAHOO.log(dc.id + " onDragOver " + overEvts[i].id, "info", "DragDropMgr");
        -                    dc.b4DragOver(e, overEvts[i].id);
        -                    dc.onDragOver(e, overEvts[i].id);
        -                }
        -
        -                // fire drop events
        -                for (i=0, len=dropEvts.length; i<len; ++i) {
        -                    YAHOO.log(dc.id + " dropped on " + dropEvts[i].id, "info", "DragDropMgr");
        -                    dc.b4DragDrop(e, dropEvts[i].id);
        -                    dc.onDragDrop(e, dropEvts[i].id);
        -                }
        -
        -            }
        -        },
        -
        -        /**
        -         * Helper function for getting the best match from the list of drag 
        -         * and drop objects returned by the drag and drop events when we are 
        -         * in INTERSECT mode.  It returns either the first object that the 
        -         * cursor is over, or the object that has the greatest overlap with 
        -         * the dragged element.
        -         * @method getBestMatch
        -         * @param  {DragDrop[]} dds The array of drag and drop objects 
        -         * targeted
        -         * @return {DragDrop}       The best single match
        -         * @static
        -         */
        -        getBestMatch: function(dds) {
        -            var winner = null;
        -
        -            var len = dds.length;
        -
        -            if (len == 1) {
        -                winner = dds[0];
        -            } else {
        -                // Loop through the targeted items
        -                for (var i=0; i<len; ++i) {
        -                    var dd = dds[i];
        -                    // If the cursor is over the object, it wins.  If the 
        -                    // cursor is over multiple matches, the first one we come
        -                    // to wins.
        -                    if (this.mode == this.INTERSECT && dd.cursorIsOver) {
        -                        winner = dd;
        -                        break;
        -                    // Otherwise the object with the most overlap wins
        -                    } else {
        -                        if (!winner || !winner.overlap || (dd.overlap &&
        -                            winner.overlap.getArea() < dd.overlap.getArea())) {
        -                            winner = dd;
        -                        }
        -                    }
        -                }
        -            }
        -
        -            return winner;
        -        },
        -
        -        /**
        -         * Refreshes the cache of the top-left and bottom-right points of the 
        -         * drag and drop objects in the specified group(s).  This is in the
        -         * format that is stored in the drag and drop instance, so typical 
        -         * usage is:
        -         * <code>
        -         * YAHOO.util.DragDropMgr.refreshCache(ddinstance.groups);
        -         * </code>
        -         * Alternatively:
        -         * <code>
        -         * YAHOO.util.DragDropMgr.refreshCache({group1:true, group2:true});
        -         * </code>
        -         * @TODO this really should be an indexed array.  Alternatively this
        -         * method could accept both.
        -         * @method refreshCache
        -         * @param {Object} groups an associative array of groups to refresh
        -         * @static
        -         */
        -        refreshCache: function(groups) {
        -            YAHOO.log("refreshing element location cache", "info", "DragDropMgr");
        -
        -            // refresh everything if group array is not provided
        -            var g = groups || this.ids;
        -
        -            for (var sGroup in g) {
        -                if ("string" != typeof sGroup) {
        -                    continue;
        -                }
        -                for (var i in this.ids[sGroup]) {
        -                    var oDD = this.ids[sGroup][i];
        -
        -                    if (this.isTypeOfDD(oDD)) {
        -                        var loc = this.getLocation(oDD);
        -                        if (loc) {
        -                            this.locationCache[oDD.id] = loc;
        -                        } else {
        -                            delete this.locationCache[oDD.id];
        -YAHOO.log("Could not get the loc for " + oDD.id, "warn", "DragDropMgr");
        -                        }
        -                    }
        -                }
        -            }
        -        },
        -
        -        /**
        -         * This checks to make sure an element exists and is in the DOM.  The
        -         * main purpose is to handle cases where innerHTML is used to remove
        -         * drag and drop objects from the DOM.  IE provides an 'unspecified
        -         * error' when trying to access the offsetParent of such an element
        -         * @method verifyEl
        -         * @param {HTMLElement} el the element to check
        -         * @return {boolean} true if the element looks usable
        -         * @static
        -         */
        -        verifyEl: function(el) {
        -            try {
        -                if (el) {
        -                    var parent = el.offsetParent;
        -                    if (parent) {
        -                        return true;
        -                    }
        -                }
        -            } catch(e) {
        -                YAHOO.log("detected problem with an element", "info", "DragDropMgr");
        -            }
        -
        -            return false;
        -        },
        -        
        -        /**
        -         * Returns a Region object containing the drag and drop element's position
        -         * and size, including the padding configured for it
        -         * @method getLocation
        -         * @param {DragDrop} oDD the drag and drop object to get the 
        -         *                       location for
        -         * @return {YAHOO.util.Region} a Region object representing the total area
        -         *                             the element occupies, including any padding
        -         *                             the instance is configured for.
        -         * @static
        -         */
        -        getLocation: function(oDD) {
        -            if (! this.isTypeOfDD(oDD)) {
        -                YAHOO.log(oDD + " is not a DD obj", "info", "DragDropMgr");
        -                return null;
        -            }
        -
        -            var el = oDD.getEl(), pos, x1, x2, y1, y2, t, r, b, l;
        -
        -            try {
        -                pos= YAHOO.util.Dom.getXY(el);
        -            } catch (e) { }
        -
        -            if (!pos) {
        -                YAHOO.log("getXY failed", "info", "DragDropMgr");
        -                return null;
        -            }
        -
        -            x1 = pos[0];
        -            x2 = x1 + el.offsetWidth;
        -            y1 = pos[1];
        -            y2 = y1 + el.offsetHeight;
        -
        -            t = y1 - oDD.padding[0];
        -            r = x2 + oDD.padding[1];
        -            b = y2 + oDD.padding[2];
        -            l = x1 - oDD.padding[3];
        -
        -            return new YAHOO.util.Region( t, r, b, l );
        -        },
        -
        -        /**
        -         * Checks the cursor location to see if it over the target
        -         * @method isOverTarget
        -         * @param {YAHOO.util.Point} pt The point to evaluate
        -         * @param {DragDrop} oTarget the DragDrop object we are inspecting
        -         * @param {boolean} intersect true if we are in intersect mode
        -         * @param {YAHOO.util.Region} pre-cached location of the dragged element
        -         * @return {boolean} true if the mouse is over the target
        -         * @private
        -         * @static
        -         */
        -        isOverTarget: function(pt, oTarget, intersect, curRegion) {
        -            // use cache if available
        -            var loc = this.locationCache[oTarget.id];
        -            if (!loc || !this.useCache) {
        -                YAHOO.log("cache not populated", "info", "DragDropMgr");
        -                loc = this.getLocation(oTarget);
        -                this.locationCache[oTarget.id] = loc;
        -
        -                YAHOO.log("cache: " + loc, "info", "DragDropMgr");
        -            }
        -
        -            if (!loc) {
        -                YAHOO.log("could not get the location of the element", "info", "DragDropMgr");
        -                return false;
        -            }
        -
        -            //YAHOO.log("loc: " + loc + ", pt: " + pt);
        -            oTarget.cursorIsOver = loc.contains( pt );
        -
        -            // DragDrop is using this as a sanity check for the initial mousedown
        -            // in this case we are done.  In POINT mode, if the drag obj has no
        -            // contraints, we are done. Otherwise we need to evaluate the 
        -            // region the target as occupies to determine if the dragged element
        -            // overlaps with it.
        -            
        -            var dc = this.dragCurrent;
        -            if (!dc || (!intersect && !dc.constrainX && !dc.constrainY)) {
        -
        -                //if (oTarget.cursorIsOver) {
        -                    //YAHOO.log("over " + oTarget + ", " + loc + ", " + pt, "warn");
        -                //}
        -                return oTarget.cursorIsOver;
        -            }
        -
        -            oTarget.overlap = null;
        -
        -            // Get the current location of the drag element, this is the
        -            // location of the mouse event less the delta that represents
        -            // where the original mousedown happened on the element.  We
        -            // need to consider constraints and ticks as well.
        -
        -            if (!curRegion) {
        -                var pos = dc.getTargetCoord(pt.x, pt.y);
        -                var el = dc.getDragEl();
        -                curRegion = new YAHOO.util.Region( pos.y, 
        -                                                   pos.x + el.offsetWidth,
        -                                                   pos.y + el.offsetHeight, 
        -                                                   pos.x );
        -            }
        -
        -            var overlap = curRegion.intersect(loc);
        -
        -            if (overlap) {
        -                oTarget.overlap = overlap;
        -                return (intersect) ? true : oTarget.cursorIsOver;
        -            } else {
        -                return false;
        -            }
        -        },
        -
        -        /**
        -         * unload event handler
        -         * @method _onUnload
        -         * @private
        -         * @static
        -         */
        -        _onUnload: function(e, me) {
        -            this.unregAll();
        -        },
        -
        -        /**
        -         * Cleans up the drag and drop events and objects.
        -         * @method unregAll
        -         * @private
        -         * @static
        -         */
        -        unregAll: function() {
        -            YAHOO.log("unregister all", "info", "DragDropMgr");
        -
        -            if (this.dragCurrent) {
        -                this.stopDrag();
        -                this.dragCurrent = null;
        -            }
        -
        -            this._execOnAll("unreg", []);
        -
        -            for (i in this.elementCache) {
        -                delete this.elementCache[i];
        -            }
        -
        -            this.elementCache = {};
        -            this.ids = {};
        -        },
        -
        -        /**
        -         * A cache of DOM elements
        -         * @property elementCache
        -         * @private
        -         * @static
        -         */
        -        elementCache: {},
        -        
        -        /**
        -         * Get the wrapper for the DOM element specified
        -         * @method getElWrapper
        -         * @param {String} id the id of the element to get
        -         * @return {YAHOO.util.DDM.ElementWrapper} the wrapped element
        -         * @private
        -         * @deprecated This wrapper isn't that useful
        -         * @static
        -         */
        -        getElWrapper: function(id) {
        -            var oWrapper = this.elementCache[id];
        -            if (!oWrapper || !oWrapper.el) {
        -                oWrapper = this.elementCache[id] = 
        -                    new this.ElementWrapper(YAHOO.util.Dom.get(id));
        -            }
        -            return oWrapper;
        -        },
        -
        -        /**
        -         * Returns the actual DOM element
        -         * @method getElement
        -         * @param {String} id the id of the elment to get
        -         * @return {Object} The element
        -         * @deprecated use YAHOO.util.Dom.get instead
        -         * @static
        -         */
        -        getElement: function(id) {
        -            return YAHOO.util.Dom.get(id);
        -        },
        -        
        -        /**
        -         * Returns the style property for the DOM element (i.e., 
        -         * document.getElById(id).style)
        -         * @method getCss
        -         * @param {String} id the id of the elment to get
        -         * @return {Object} The style property of the element
        -         * @deprecated use YAHOO.util.Dom instead
        -         * @static
        -         */
        -        getCss: function(id) {
        -            var el = YAHOO.util.Dom.get(id);
        -            return (el) ? el.style : null;
        -        },
        -
        -        /**
        -         * Inner class for cached elements
        -         * @class DragDropMgr.ElementWrapper
        -         * @for DragDropMgr
        -         * @private
        -         * @deprecated
        -         */
        -        ElementWrapper: function(el) {
        -                /**
        -                 * The element
        -                 * @property el
        -                 */
        -                this.el = el || null;
        -                /**
        -                 * The element id
        -                 * @property id
        -                 */
        -                this.id = this.el && el.id;
        -                /**
        -                 * A reference to the style property
        -                 * @property css
        -                 */
        -                this.css = this.el && el.style;
        -            },
        -
        -        /**
        -         * Returns the X position of an html element
        -         * @method getPosX
        -         * @param el the element for which to get the position
        -         * @return {int} the X coordinate
        -         * @for DragDropMgr
        -         * @deprecated use YAHOO.util.Dom.getX instead
        -         * @static
        -         */
        -        getPosX: function(el) {
        -            return YAHOO.util.Dom.getX(el);
        -        },
        -
        -        /**
        -         * Returns the Y position of an html element
        -         * @method getPosY
        -         * @param el the element for which to get the position
        -         * @return {int} the Y coordinate
        -         * @deprecated use YAHOO.util.Dom.getY instead
        -         * @static
        -         */
        -        getPosY: function(el) {
        -            return YAHOO.util.Dom.getY(el); 
        -        },
        -
        -        /**
        -         * Swap two nodes.  In IE, we use the native method, for others we 
        -         * emulate the IE behavior
        -         * @method swapNode
        -         * @param n1 the first node to swap
        -         * @param n2 the other node to swap
        -         * @static
        -         */
        -        swapNode: function(n1, n2) {
        -            if (n1.swapNode) {
        -                n1.swapNode(n2);
        -            } else {
        -                var p = n2.parentNode;
        -                var s = n2.nextSibling;
        -
        -                if (s == n1) {
        -                    p.insertBefore(n1, n2);
        -                } else if (n2 == n1.nextSibling) {
        -                    p.insertBefore(n2, n1);
        -                } else {
        -                    n1.parentNode.replaceChild(n2, n1);
        -                    p.insertBefore(n1, s);
        -                }
        -            }
        -        },
        -
        -        /**
        -         * Returns the current scroll position
        -         * @method getScroll
        -         * @private
        -         * @static
        -         */
        -        getScroll: function () {
        -            var t, l, dde=document.documentElement, db=document.body;
        -            if (dde && (dde.scrollTop || dde.scrollLeft)) {
        -                t = dde.scrollTop;
        -                l = dde.scrollLeft;
        -            } else if (db) {
        -                t = db.scrollTop;
        -                l = db.scrollLeft;
        -            } else {
        -                YAHOO.log("could not get scroll property", "info", "DragDropMgr");
        -            }
        -            return { top: t, left: l };
        -        },
        -
        -        /**
        -         * Returns the specified element style property
        -         * @method getStyle
        -         * @param {HTMLElement} el          the element
        -         * @param {string}      styleProp   the style property
        -         * @return {string} The value of the style property
        -         * @deprecated use YAHOO.util.Dom.getStyle
        -         * @static
        -         */
        -        getStyle: function(el, styleProp) {
        -            return YAHOO.util.Dom.getStyle(el, styleProp);
        -        },
        -
        -        /**
        -         * Gets the scrollTop
        -         * @method getScrollTop
        -         * @return {int} the document's scrollTop
        -         * @static
        -         */
        -        getScrollTop: function () { return this.getScroll().top; },
        -
        -        /**
        -         * Gets the scrollLeft
        -         * @method getScrollLeft
        -         * @return {int} the document's scrollTop
        -         * @static
        -         */
        -        getScrollLeft: function () { return this.getScroll().left; },
        -
        -        /**
        -         * Sets the x/y position of an element to the location of the
        -         * target element.
        -         * @method moveToEl
        -         * @param {HTMLElement} moveEl      The element to move
        -         * @param {HTMLElement} targetEl    The position reference element
        -         * @static
        -         */
        -        moveToEl: function (moveEl, targetEl) {
        -            var aCoord = YAHOO.util.Dom.getXY(targetEl);
        -            YAHOO.log("moveToEl: " + aCoord, "info", "DragDropMgr");
        -            YAHOO.util.Dom.setXY(moveEl, aCoord);
        -        },
        -
        -        /**
        -         * Gets the client height
        -         * @method getClientHeight
        -         * @return {int} client height in px
        -         * @deprecated use YAHOO.util.Dom.getViewportHeight instead
        -         * @static
        -         */
        -        getClientHeight: function() {
        -            return YAHOO.util.Dom.getViewportHeight();
        -        },
        -
        -        /**
        -         * Gets the client width
        -         * @method getClientWidth
        -         * @return {int} client width in px
        -         * @deprecated use YAHOO.util.Dom.getViewportWidth instead
        -         * @static
        -         */
        -        getClientWidth: function() {
        -            return YAHOO.util.Dom.getViewportWidth();
        -        },
        -
        -        /**
        -         * Numeric array sort function
        -         * @method numericSort
        -         * @static
        -         */
        -        numericSort: function(a, b) { return (a - b); },
        -
        -        /**
        -         * Internal counter
        -         * @property _timeoutCount
        -         * @private
        -         * @static
        -         */
        -        _timeoutCount: 0,
        -
        -        /**
        -         * Trying to make the load order less important.  Without this we get
        -         * an error if this file is loaded before the Event Utility.
        -         * @method _addListeners
        -         * @private
        -         * @static
        -         */
        -        _addListeners: function() {
        -            var DDM = YAHOO.util.DDM;
        -            if ( YAHOO.util.Event && document ) {
        -                DDM._onLoad();
        -            } else {
        -                if (DDM._timeoutCount > 2000) {
        -                    YAHOO.log("DragDrop requires the Event Utility", "error", "DragDropMgr");
        -                } else {
        -                    setTimeout(DDM._addListeners, 10);
        -                    if (document && document.body) {
        -                        DDM._timeoutCount += 1;
        -                    }
        -                }
        -            }
        -        },
        -
        -        /**
        -         * Recursively searches the immediate parent and all child nodes for 
        -         * the handle element in order to determine wheter or not it was 
        -         * clicked.
        -         * @method handleWasClicked
        -         * @param node the html element to inspect
        -         * @static
        -         */
        -        handleWasClicked: function(node, id) {
        -            if (this.isHandle(id, node.id)) {
        -                YAHOO.log("clicked node is a handle", "info", "DragDropMgr");
        -                return true;
        -            } else {
        -                // check to see if this is a text node child of the one we want
        -                var p = node.parentNode;
        -                // YAHOO.log("p: " + p);
        -
        -                while (p) {
        -                    if (this.isHandle(id, p.id)) {
        -                        return true;
        -                    } else {
        -                        YAHOO.log(p.id + " is not a handle", "info", "DragDropMgr");
        -                        p = p.parentNode;
        -                    }
        -                }
        -            }
        -
        -            return false;
        -        }
        -
        -    };
        -
        -}();
        -
        -// shorter alias, save a few bytes
        -YAHOO.util.DDM = YAHOO.util.DragDropMgr;
        -YAHOO.util.DDM._addListeners();
        -
        -}
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Easing.js.html b/www/extras/yui/docs/Easing.js.html deleted file mode 100644 index 9b4c373e1..000000000 --- a/www/extras/yui/docs/Easing.js.html +++ /dev/null @@ -1,451 +0,0 @@ - - - - API: animation Easing.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        animation  2.2.2

        -

        - Yahoo! UI Library - > animation - - > Easing.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /*
        -TERMS OF USE - EASING EQUATIONS
        -Open source under the BSD License.
        -Copyright 2001 Robert Penner All rights reserved.
        -
        -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
        -
        - * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
        - * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
        - * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.
        -
        -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        -*/
        -
        -/**
        - * Singleton that determines how an animation proceeds from start to end.
        - * @class Easing
        - * @namespace YAHOO.util
        -*/
        -
        -YAHOO.util.Easing = {
        -
        -    /**
        -     * Uniform speed between points.
        -     * @method easeNone
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -    easeNone: function (t, b, c, d) {
        -    	return c*t/d + b;
        -    },
        -    
        -    /**
        -     * Begins slowly and accelerates towards end. (quadratic)
        -     * @method easeIn
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -    easeIn: function (t, b, c, d) {
        -    	return c*(t/=d)*t + b;
        -    },
        -
        -    /**
        -     * Begins quickly and decelerates towards end.  (quadratic)
        -     * @method easeOut
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -    easeOut: function (t, b, c, d) {
        -    	return -c *(t/=d)*(t-2) + b;
        -    },
        -    
        -    /**
        -     * Begins slowly and decelerates towards end. (quadratic)
        -     * @method easeBoth
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -    easeBoth: function (t, b, c, d) {
        -    	if ((t/=d/2) < 1) {
        -            return c/2*t*t + b;
        -        }
        -        
        -    	return -c/2 * ((--t)*(t-2) - 1) + b;
        -    },
        -    
        -    /**
        -     * Begins slowly and accelerates towards end. (quartic)
        -     * @method easeInStrong
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -    easeInStrong: function (t, b, c, d) {
        -    	return c*(t/=d)*t*t*t + b;
        -    },
        -    
        -    /**
        -     * Begins quickly and decelerates towards end.  (quartic)
        -     * @method easeOutStrong
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -    easeOutStrong: function (t, b, c, d) {
        -    	return -c * ((t=t/d-1)*t*t*t - 1) + b;
        -    },
        -    
        -    /**
        -     * Begins slowly and decelerates towards end. (quartic)
        -     * @method easeBothStrong
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -    easeBothStrong: function (t, b, c, d) {
        -    	if ((t/=d/2) < 1) {
        -            return c/2*t*t*t*t + b;
        -        }
        -        
        -    	return -c/2 * ((t-=2)*t*t*t - 2) + b;
        -    },
        -
        -    /**
        -     * Snap in elastic effect.
        -     * @method elasticIn
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @param {Number} a Amplitude (optional)
        -     * @param {Number} p Period (optional)
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -
        -    elasticIn: function (t, b, c, d, a, p) {
        -    	if (t == 0) {
        -            return b;
        -        }
        -        if ( (t /= d) == 1 ) {
        -            return b+c;
        -        }
        -        if (!p) {
        -            p=d*.3;
        -        }
        -        
        -    	if (!a || a < Math.abs(c)) {
        -            a = c; 
        -            var s = p/4;
        -        }
        -    	else {
        -            var s = p/(2*Math.PI) * Math.asin (c/a);
        -        }
        -        
        -    	return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
        -    },
        -
        -    /**
        -     * Snap out elastic effect.
        -     * @method elasticOut
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @param {Number} a Amplitude (optional)
        -     * @param {Number} p Period (optional)
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -    elasticOut: function (t, b, c, d, a, p) {
        -    	if (t == 0) {
        -            return b;
        -        }
        -        if ( (t /= d) == 1 ) {
        -            return b+c;
        -        }
        -        if (!p) {
        -            p=d*.3;
        -        }
        -        
        -    	if (!a || a < Math.abs(c)) {
        -            a = c;
        -            var s = p / 4;
        -        }
        -    	else {
        -            var s = p/(2*Math.PI) * Math.asin (c/a);
        -        }
        -        
        -    	return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
        -    },
        -    
        -    /**
        -     * Snap both elastic effect.
        -     * @method elasticBoth
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @param {Number} a Amplitude (optional)
        -     * @param {Number} p Period (optional)
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -    elasticBoth: function (t, b, c, d, a, p) {
        -    	if (t == 0) {
        -            return b;
        -        }
        -        
        -        if ( (t /= d/2) == 2 ) {
        -            return b+c;
        -        }
        -        
        -        if (!p) {
        -            p = d*(.3*1.5);
        -        }
        -        
        -    	if ( !a || a < Math.abs(c) ) {
        -            a = c; 
        -            var s = p/4;
        -        }
        -    	else {
        -            var s = p/(2*Math.PI) * Math.asin (c/a);
        -        }
        -        
        -    	if (t < 1) {
        -            return -.5*(a*Math.pow(2,10*(t-=1)) * 
        -                    Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
        -        }
        -    	return a*Math.pow(2,-10*(t-=1)) * 
        -                Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
        -    },
        -
        -
        -    /**
        -     * Backtracks slightly, then reverses direction and moves to end.
        -     * @method backIn
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @param {Number} s Overshoot (optional)
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -    backIn: function (t, b, c, d, s) {
        -    	if (typeof s == 'undefined') {
        -            s = 1.70158;
        -        }
        -    	return c*(t/=d)*t*((s+1)*t - s) + b;
        -    },
        -
        -    /**
        -     * Overshoots end, then reverses and comes back to end.
        -     * @method backOut
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @param {Number} s Overshoot (optional)
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -    backOut: function (t, b, c, d, s) {
        -    	if (typeof s == 'undefined') {
        -            s = 1.70158;
        -        }
        -    	return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
        -    },
        -    
        -    /**
        -     * Backtracks slightly, then reverses direction, overshoots end, 
        -     * then reverses and comes back to end.
        -     * @method backBoth
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @param {Number} s Overshoot (optional)
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -    backBoth: function (t, b, c, d, s) {
        -    	if (typeof s == 'undefined') {
        -            s = 1.70158; 
        -        }
        -        
        -    	if ((t /= d/2 ) < 1) {
        -            return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
        -        }
        -    	return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
        -    },
        -
        -    /**
        -     * Bounce off of start.
        -     * @method bounceIn
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -    bounceIn: function (t, b, c, d) {
        -    	return c - YAHOO.util.Easing.bounceOut(d-t, 0, c, d) + b;
        -    },
        -    
        -    /**
        -     * Bounces off end.
        -     * @method bounceOut
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -    bounceOut: function (t, b, c, d) {
        -    	if ((t/=d) < (1/2.75)) {
        -    		return c*(7.5625*t*t) + b;
        -    	} else if (t < (2/2.75)) {
        -    		return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
        -    	} else if (t < (2.5/2.75)) {
        -    		return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
        -    	}
        -        return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
        -    },
        -    
        -    /**
        -     * Bounces off start and end.
        -     * @method bounceBoth
        -     * @param {Number} t Time value used to compute current value
        -     * @param {Number} b Starting value
        -     * @param {Number} c Delta between start and end values
        -     * @param {Number} d Total length of animation
        -     * @return {Number} The computed value for the current animation frame
        -     */
        -    bounceBoth: function (t, b, c, d) {
        -    	if (t < d/2) {
        -            return YAHOO.util.Easing.bounceIn(t*2, 0, c, d) * .5 + b;
        -        }
        -    	return YAHOO.util.Easing.bounceOut(t*2-d, 0, c, d) * .5 + c*.5 + b;
        -    }
        -};
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Element.js.html b/www/extras/yui/docs/Element.js.html deleted file mode 100644 index 69f3c488c..000000000 --- a/www/extras/yui/docs/Element.js.html +++ /dev/null @@ -1,592 +0,0 @@ - - - - API: element Element.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        element  2.2.2

        -

        - Yahoo! UI Library - > element - - > Element.js (source view) -

        -
        - -
        -
        -
        - -
        -
        (function() {
        -// internal shorthand
        -var Dom = YAHOO.util.Dom,
        -    AttributeProvider = YAHOO.util.AttributeProvider;
        -
        -/**
        - * Element provides an wrapper object to simplify adding
        - * event listeners, using dom methods, and managing attributes. 
        - * @module element
        - * @namespace YAHOO.util
        - * @requires yahoo, dom, event
        - * @beta
        - */
        -
        -/**
        - * Element provides an wrapper object to simplify adding
        - * event listeners, using dom methods, and managing attributes. 
        - * @class Element
        - * @uses YAHOO.util.AttributeProvider
        - * @constructor
        - * @param el {HTMLElement | String} The html element that 
        - * represents the Element.
        - * @param {Object} map A key-value map of initial config names and values
        - */
        -YAHOO.util.Element = function(el, map) {
        -    if (arguments.length) {
        -        this.init(el, map);
        -    }
        -};
        -
        -YAHOO.util.Element.prototype = {
        -    /**
        -     * Dom events supported by the Element instance.
        -     * @property DOM_EVENTS
        -     * @type Object
        -     */
        -    DOM_EVENTS: null,
        -
        -    /**
        -     * Wrapper for HTMLElement method.
        -     * @method appendChild
        -     * @param {Boolean} deep Whether or not to do a deep clone
        -     */
        -    appendChild: function(child) {
        -        child = child.get ? child.get('element') : child;
        -        this.get('element').appendChild(child);
        -    },
        -    
        -    /**
        -     * Wrapper for HTMLElement method.
        -     * @method getElementsByTagName
        -     * @param {String} tag The tagName to collect
        -     */
        -    getElementsByTagName: function(tag) {
        -        return this.get('element').getElementsByTagName(tag);
        -    },
        -    
        -    /**
        -     * Wrapper for HTMLElement method.
        -     * @method hasChildNodes
        -     * @return {Boolean} Whether or not the element has childNodes
        -     */
        -    hasChildNodes: function() {
        -        return this.get('element').hasChildNodes();
        -    },
        -    
        -    /**
        -     * Wrapper for HTMLElement method.
        -     * @method insertBefore
        -     * @param {HTMLElement} element The HTMLElement to insert
        -     * @param {HTMLElement} before The HTMLElement to insert
        -     * the element before.
        -     */
        -    insertBefore: function(element, before) {
        -        element = element.get ? element.get('element') : element;
        -        before = (before && before.get) ? before.get('element') : before;
        -        
        -        this.get('element').insertBefore(element, before);
        -    },
        -    
        -    /**
        -     * Wrapper for HTMLElement method.
        -     * @method removeChild
        -     * @param {HTMLElement} child The HTMLElement to remove
        -     */
        -    removeChild: function(child) {
        -        child = child.get ? child.get('element') : child;
        -        this.get('element').removeChild(child);
        -        return true;
        -    },
        -    
        -    /**
        -     * Wrapper for HTMLElement method.
        -     * @method replaceChild
        -     * @param {HTMLElement} newNode The HTMLElement to insert
        -     * @param {HTMLElement} oldNode The HTMLElement to replace
        -     */
        -    replaceChild: function(newNode, oldNode) {
        -        newNode = newNode.get ? newNode.get('element') : newNode;
        -        oldNode = oldNode.get ? oldNode.get('element') : oldNode;
        -        return this.get('element').replaceChild(newNode, oldNode);
        -    },
        -
        -    
        -    /**
        -     * Registers Element specific attributes.
        -     * @method initAttributes
        -     * @param {Object} map A key-value map of initial attribute configs
        -     */
        -    initAttributes: function(map) {
        -    },
        -
        -    /**
        -     * Adds a listener for the given event.  These may be DOM or 
        -     * customEvent listeners.  Any event that is fired via fireEvent
        -     * can be listened for.  All handlers receive an event object. 
        -     * @method addListener
        -     * @param {String} type The name of the event to listen for
        -     * @param {Function} fn The handler to call when the event fires
        -     * @param {Any} obj A variable to pass to the handler
        -     * @param {Object} scope The object to use for the scope of the handler 
        -     */
        -    addListener: function(type, fn, obj, scope) {
        -        var el = this.get('element');
        -        scope = scope || this;
        -        
        -        el = this.get('id') || el;
        -        var self = this; 
        -        if (!this._events[type]) { // create on the fly
        -            if ( this.DOM_EVENTS[type] ) {
        -                YAHOO.util.Event.addListener(el, type, function(e) {
        -                    if (e.srcElement && !e.target) { // supplement IE with target
        -                        e.target = e.srcElement;
        -                    }
        -                    self.fireEvent(type, e);
        -                }, obj, scope);
        -            }
        -            
        -            this.createEvent(type, this);
        -        }
        -        
        -        this.subscribe.apply(this, arguments); // notify via customEvent
        -    },
        -    
        -    
        -    /**
        -     * Alias for addListener
        -     * @method on
        -     * @param {String} type The name of the event to listen for
        -     * @param {Function} fn The function call when the event fires
        -     * @param {Any} obj A variable to pass to the handler
        -     * @param {Object} scope The object to use for the scope of the handler 
        -     */
        -    on: function() { this.addListener.apply(this, arguments); },
        -    
        -    
        -    /**
        -     * Remove an event listener
        -     * @method removeListener
        -     * @param {String} type The name of the event to listen for
        -     * @param {Function} fn The function call when the event fires
        -     */
        -    removeListener: function(type, fn) {
        -        this.unsubscribe.apply(this, arguments);
        -    },
        -    
        -    /**
        -     * Wrapper for Dom method.
        -     * @method addClass
        -     * @param {String} className The className to add
        -     */
        -    addClass: function(className) {
        -        Dom.addClass(this.get('element'), className);
        -    },
        -    
        -    /**
        -     * Wrapper for Dom method.
        -     * @method getElementsByClassName
        -     * @param {String} className The className to collect
        -     * @param {String} tag (optional) The tag to use in
        -     * conjunction with class name
        -     * @return {Array} Array of HTMLElements
        -     */
        -    getElementsByClassName: function(className, tag) {
        -        return Dom.getElementsByClassName(className, tag,
        -                this.get('element') );
        -    },
        -    
        -    /**
        -     * Wrapper for Dom method.
        -     * @method hasClass
        -     * @param {String} className The className to add
        -     * @return {Boolean} Whether or not the element has the class name
        -     */
        -    hasClass: function(className) {
        -        return Dom.hasClass(this.get('element'), className); 
        -    },
        -    
        -    /**
        -     * Wrapper for Dom method.
        -     * @method removeClass
        -     * @param {String} className The className to remove
        -     */
        -    removeClass: function(className) {
        -        return Dom.removeClass(this.get('element'), className);
        -    },
        -    
        -    /**
        -     * Wrapper for Dom method.
        -     * @method replaceClass
        -     * @param {String} oldClassName The className to replace
        -     * @param {String} newClassName The className to add
        -     */
        -    replaceClass: function(oldClassName, newClassName) {
        -        return Dom.replaceClass(this.get('element'), 
        -                oldClassName, newClassName);
        -    },
        -    
        -    /**
        -     * Wrapper for Dom method.
        -     * @method setStyle
        -     * @param {String} property The style property to set
        -     * @param {String} value The value to apply to the style property
        -     */
        -    setStyle: function(property, value) {
        -        var el = this.get('element');
        -        if (!el) {
        -            return this._queue[this._queue.length] = ['setStyle', arguments];
        -        }
        -
        -        return Dom.setStyle(el,  property, value); // TODO: always queuing?
        -    },
        -    
        -    /**
        -     * Wrapper for Dom method.
        -     * @method getStyle
        -     * @param {String} property The style property to retrieve
        -     * @return {String} The current value of the property
        -     */
        -    getStyle: function(property) {
        -        return Dom.getStyle(this.get('element'),  property);
        -    },
        -    
        -    /**
        -     * Apply any queued set calls.
        -     * @method fireQueue
        -     */
        -    fireQueue: function() {
        -        var queue = this._queue;
        -        for (var i = 0, len = queue.length; i < len; ++i) {
        -            this[queue[i][0]].apply(this, queue[i][1]);
        -        }
        -    },
        -    
        -    /**
        -     * Appends the HTMLElement into either the supplied parentNode.
        -     * @method appendTo
        -     * @param {HTMLElement | Element} parentNode The node to append to
        -     * @param {HTMLElement | Element} before An optional node to insert before
        -     */
        -    appendTo: function(parent, before) {
        -        parent = (parent.get) ?  parent.get('element') : Dom.get(parent);
        -        
        -        this.fireEvent('beforeAppendTo', {
        -            type: 'beforeAppendTo',
        -            target: parent
        -        });
        -        
        -        
        -        before = (before && before.get) ? 
        -                before.get('element') : Dom.get(before);
        -        var element = this.get('element');
        -        
        -        if (!element) {
        -            YAHOO.log('appendTo failed: element not available',
        -                    'error', 'Element');
        -            return false;
        -        }
        -        
        -        if (!parent) {
        -            YAHOO.log('appendTo failed: parent not available',
        -                    'error', 'Element');
        -            return false;
        -        }
        -        
        -        if (element.parent != parent) {
        -            if (before) {
        -                parent.insertBefore(element, before);
        -            } else {
        -                parent.appendChild(element);
        -            }
        -        }
        -        
        -        YAHOO.log(element + 'appended to ' + parent);
        -        
        -        this.fireEvent('appendTo', {
        -            type: 'appendTo',
        -            target: parent
        -        });
        -    },
        -    
        -    get: function(key) {
        -        var configs = this._configs || {};
        -        var el = configs.element; // avoid loop due to 'element'
        -        if (el && !configs[key] && !YAHOO.lang.isUndefined(el.value[key]) ) {
        -            return el.value[key];
        -        }
        -
        -        return AttributeProvider.prototype.get.call(this, key);
        -    },
        -
        -    set: function(key, value, silent) {
        -        var el = this.get('element');
        -        if (!el) {
        -            this._queue[this._queue.length] = ['set', arguments];
        -            if (this._configs[key]) {
        -                this._configs[key].value = value; // so "get" works while queueing
        -            
        -            }
        -            return;
        -        }
        -        
        -        // set it on the element if not configured and is an HTML attribute
        -        if ( !this._configs[key] && !YAHOO.lang.isUndefined(el[key]) ) {
        -            _registerHTMLAttr.call(this, key);
        -        }
        -
        -        return AttributeProvider.prototype.set.apply(this, arguments);
        -    },
        -    
        -    setAttributeConfig: function(key, map, init) {
        -        var el = this.get('element');
        -
        -        if (el && !this._configs[key] && !YAHOO.lang.isUndefined(el[key]) ) {
        -            _registerHTMLAttr.call(this, key, map);
        -        } else {
        -            AttributeProvider.prototype.setAttributeConfig.apply(this, arguments);
        -        }
        -    },
        -    
        -    getAttributeKeys: function() {
        -        var el = this.get('element');
        -        var keys = AttributeProvider.prototype.getAttributeKeys.call(this);
        -        
        -        //add any unconfigured element keys
        -        for (var key in el) {
        -            if (!this._configs[key]) {
        -                keys[key] = keys[key] || el[key];
        -            }
        -        }
        -        
        -        return keys;
        -    },
        -
        -    createEvent: function(type, scope) {
        -        this._events[type] = true;
        -        AttributeProvider.prototype.createEvent.apply(this, arguments);
        -    },
        -    
        -    init: function(el, attr) {
        -        _initElement.apply(this, arguments); 
        -    }
        -};
        -
        -var _initElement = function(el, attr) {
        -    this._queue = this._queue || [];
        -    this._events = this._events || {};
        -    this._configs = this._configs || {};
        -    attr = attr || {};
        -    attr.element = attr.element || el || null;
        -
        -    this.DOM_EVENTS = {
        -        'click': true,
        -        'dblclick': true,
        -        'keydown': true,
        -        'keypress': true,
        -        'keyup': true,
        -        'mousedown': true,
        -        'mousemove': true,
        -        'mouseout': true, 
        -        'mouseover': true, 
        -        'mouseup': true,
        -        'focus': true,
        -        'blur': true,
        -        'submit': true
        -    };
        -
        -    var isReady = false;  // to determine when to init HTMLElement and content
        -
        -    if (YAHOO.lang.isString(el) ) { // defer until available/ready
        -        _registerHTMLAttr.call(this, 'id', { value: attr.element });
        -    }
        -
        -    if (Dom.get(el)) {
        -        isReady = true;
        -        _initHTMLElement.call(this, attr);
        -        _initContent.call(this, attr);
        -    } 
        -
        -    YAHOO.util.Event.onAvailable(attr.element, function() {
        -        if (!isReady) { // otherwise already done
        -            _initHTMLElement.call(this, attr);
        -        }
        -
        -        this.fireEvent('available', { type: 'available', target: attr.element });  
        -    }, this, true);
        -    
        -    YAHOO.util.Event.onContentReady(attr.element, function() {
        -        if (!isReady) { // otherwise already done
        -            _initContent.call(this, attr);
        -        }
        -        this.fireEvent('contentReady', { type: 'contentReady', target: attr.element });  
        -    }, this, true);
        -};
        -
        -var _initHTMLElement = function(attr) {
        -    /**
        -     * The HTMLElement the Element instance refers to.
        -     * @config element
        -     * @type HTMLElement
        -     */
        -    this.setAttributeConfig('element', {
        -        value: Dom.get(attr.element),
        -        readOnly: true
        -     });
        -};
        -
        -var _initContent = function(attr) {
        -    this.initAttributes(attr);
        -    this.setAttributes(attr, true);
        -    this.fireQueue();
        -
        -};
        -
        -/**
        - * Sets the value of the property and fires beforeChange and change events.
        - * @private
        - * @method _registerHTMLAttr
        - * @param {YAHOO.util.Element} element The Element instance to
        - * register the config to.
        - * @param {String} key The name of the config to register
        - * @param {Object} map A key-value map of the config's params
        - */
        -var _registerHTMLAttr = function(key, map) {
        -    var el = this.get('element');
        -    map = map || {};
        -    map.name = key;
        -    map.method = map.method || function(value) {
        -        el[key] = value;
        -    };
        -    map.value = map.value || el[key];
        -    this._configs[key] = new YAHOO.util.Attribute(map, this);
        -};
        -
        -/**
        - * Fires when the Element's HTMLElement can be retrieved by Id.
        - * <p>See: <a href="#addListener">Element.addListener</a></p>
        - * <p><strong>Event fields:</strong><br>
        - * <code>&lt;String&gt; type</code> available<br>
        - * <code>&lt;HTMLElement&gt;
        - * target</code> the HTMLElement bound to this Element instance<br>
        - * <p><strong>Usage:</strong><br>
        - * <code>var handler = function(e) {var target = e.target};<br>
        - * myTabs.addListener('available', handler);</code></p>
        - * @event available
        - */
        - 
        -/**
        - * Fires when the Element's HTMLElement subtree is rendered.
        - * <p>See: <a href="#addListener">Element.addListener</a></p>
        - * <p><strong>Event fields:</strong><br>
        - * <code>&lt;String&gt; type</code> contentReady<br>
        - * <code>&lt;HTMLElement&gt;
        - * target</code> the HTMLElement bound to this Element instance<br>
        - * <p><strong>Usage:</strong><br>
        - * <code>var handler = function(e) {var target = e.target};<br>
        - * myTabs.addListener('contentReady', handler);</code></p>
        - * @event contentReady
        - */
        -
        -
        -YAHOO.augment(YAHOO.util.Element, AttributeProvider);
        -})();
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Event.js.html b/www/extras/yui/docs/Event.js.html deleted file mode 100644 index 6c42d151b..000000000 --- a/www/extras/yui/docs/Event.js.html +++ /dev/null @@ -1,1539 +0,0 @@ - - - - API: event Event.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Event Utility  2.2.2

        -

        - Yahoo! UI Library - > event - - > Event.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * The Event Utility provides utilities for managing DOM Events and tools
        - * for building event systems
        - *
        - * @module event
        - * @title Event Utility
        - * @namespace YAHOO.util
        - * @requires yahoo
        - */
        -
        -// The first instance of Event will win if it is loaded more than once.
        -// @TODO this needs to be changed so that only the state data that needs to
        -// be preserved is kept, while methods are overwritten/added as needed.
        -// This means that the module pattern can't be used.
        -if (!YAHOO.util.Event) {
        -
        -/**
        - * The event utility provides functions to add and remove event listeners,
        - * event cleansing.  It also tries to automatically remove listeners it
        - * registers during the unload event.
        - *
        - * @class Event
        - * @static
        - */
        -    YAHOO.util.Event = function() {
        -
        -        /**
        -         * True after the onload event has fired
        -         * @property loadComplete
        -         * @type boolean
        -         * @static
        -         * @private
        -         */
        -        var loadComplete =  false;
        -
        -        /**
        -         * True when the document is initially usable
        -         * @property DOMReady
        -         * @type boolean
        -         * @static
        -         * @private
        -         */
        -        var DOMReady = false;
        -
        -        /**
        -         * Cache of wrapped listeners
        -         * @property listeners
        -         * @type array
        -         * @static
        -         * @private
        -         */
        -        var listeners = [];
        -
        -        /**
        -         * User-defined unload function that will be fired before all events
        -         * are detached
        -         * @property unloadListeners
        -         * @type array
        -         * @static
        -         * @private
        -         */
        -        var unloadListeners = [];
        -
        -        /**
        -         * Cache of DOM0 event handlers to work around issues with DOM2 events
        -         * in Safari
        -         * @property legacyEvents
        -         * @static
        -         * @private
        -         */
        -        var legacyEvents = [];
        -
        -        /**
        -         * Listener stack for DOM0 events
        -         * @property legacyHandlers
        -         * @static
        -         * @private
        -         */
        -        var legacyHandlers = [];
        -
        -        /**
        -         * The number of times to poll after window.onload.  This number is
        -         * increased if additional late-bound handlers are requested after
        -         * the page load.
        -         * @property retryCount
        -         * @static
        -         * @private
        -         */
        -        var retryCount = 0;
        -
        -        /**
        -         * onAvailable listeners
        -         * @property onAvailStack
        -         * @static
        -         * @private
        -         */
        -        var onAvailStack = [];
        -
        -        /**
        -         * Lookup table for legacy events
        -         * @property legacyMap
        -         * @static
        -         * @private
        -         */
        -        var legacyMap = [];
        -
        -        /**
        -         * Counter for auto id generation
        -         * @property counter
        -         * @static
        -         * @private
        -         */
        -        var counter = 0;
        -        
        -        /**
        -         * addListener/removeListener can throw errors in unexpected scenarios.
        -         * These errors are suppressed, the method returns false, and this property
        -         * is set
        -         * @property lastError
        -         * @type Error
        -         */
        -        var lastError = null;
        -
        -        return {
        -
        -            /**
        -             * The number of times we should look for elements that are not
        -             * in the DOM at the time the event is requested after the document
        -             * has been loaded.  The default is 200@amp;50 ms, so it will poll
        -             * for 10 seconds or until all outstanding handlers are bound
        -             * (whichever comes first).
        -             * @property POLL_RETRYS
        -             * @type int
        -             * @static
        -             * @final
        -             */
        -            POLL_RETRYS: 200,
        -
        -            /**
        -             * The poll interval in milliseconds
        -             * @property POLL_INTERVAL
        -             * @type int
        -             * @static
        -             * @final
        -             */
        -            POLL_INTERVAL: 10,
        -
        -            /**
        -             * Element to bind, int constant
        -             * @property EL
        -             * @type int
        -             * @static
        -             * @final
        -             */
        -            EL: 0,
        -
        -            /**
        -             * Type of event, int constant
        -             * @property TYPE
        -             * @type int
        -             * @static
        -             * @final
        -             */
        -            TYPE: 1,
        -
        -            /**
        -             * Function to execute, int constant
        -             * @property FN
        -             * @type int
        -             * @static
        -             * @final
        -             */
        -            FN: 2,
        -
        -            /**
        -             * Function wrapped for scope correction and cleanup, int constant
        -             * @property WFN
        -             * @type int
        -             * @static
        -             * @final
        -             */
        -            WFN: 3,
        -
        -            /**
        -             * Object passed in by the user that will be returned as a 
        -             * parameter to the callback, int constant
        -             * @property OBJ
        -             * @type int
        -             * @static
        -             * @final
        -             */
        -            OBJ: 3,
        -
        -            /**
        -             * Adjusted scope, either the element we are registering the event
        -             * on or the custom object passed in by the listener, int constant
        -             * @property ADJ_SCOPE
        -             * @type int
        -             * @static
        -             * @final
        -             */
        -            ADJ_SCOPE: 4,
        -
        -            /**
        -             * Safari detection is necessary to work around the preventDefault
        -             * bug that makes it so you can't cancel a href click from the 
        -             * handler.  Since this function has been used outside of this
        -             * utility, it was changed to detect all KHTML browser to be more
        -             * friendly towards the non-Safari browsers that share the engine.
        -             * Internally, the preventDefault bug detection now uses the
        -             * webkit property.
        -             * @property isSafari
        -             * @private
        -             * @static
        -             * @deprecated
        -             */
        -            isSafari: (/KHTML/gi).test(navigator.userAgent),
        -            
        -            /**
        -             * If WebKit is detected, we keep track of the version number of
        -             * the engine.  The webkit property will contain a string with
        -             * the webkit version number if webkit is detected, null
        -             * otherwise.
        -             * Safari 1.3.2 (312.6): 312.8.1 <-- currently the latest
        -             *                       available on Mac OSX 10.3.
        -             * Safari 2.0.2: 416 <-- hasOwnProperty introduced
        -             * Safari 2.0.4: 418 <-- preventDefault fixed (I believe)
        -             * Safari 2.0.4 (419.3): 418.9.1 <-- current release
        -             *
        -             * http://developer.apple.com/internet/safari/uamatrix.html
        -             * @property webkit
        -             * @type string
        -             * @static
        -             */
        -            webkit: function() {
        -                var v=navigator.userAgent.match(/AppleWebKit\/([^ ]*)/);
        -                if (v&&v[1]) {
        -                    return v[1];
        -                }
        -                return null;
        -            }(),
        -            
        -            /**
        -             * IE detection needed to properly calculate pageX and pageY.  
        -             * capabilities checking didn't seem to work because another 
        -             * browser that does not provide the properties have the values 
        -             * calculated in a different manner than IE.
        -             * @property isIE
        -             * @private
        -             * @static
        -             */
        -            isIE: (!this.webkit && !navigator.userAgent.match(/opera/gi) && 
        -                    navigator.userAgent.match(/msie/gi)),
        -
        -            /**
        -             * poll handle
        -             * @property _interval
        -             * @private
        -             */
        -            _interval: null,
        -
        -            /**
        -             * @method startInterval
        -             * @static
        -             * @private
        -             */
        -            startInterval: function() {
        -                if (!this._interval) {
        -                    var self = this;
        -                    var callback = function() { self._tryPreloadAttach(); };
        -                    this._interval = setInterval(callback, this.POLL_INTERVAL);
        -                }
        -            },
        -
        -            /**
        -             * Executes the supplied callback when the item with the supplied
        -             * id is found.  This is meant to be used to execute behavior as
        -             * soon as possible as the page loads.  If you use this after the
        -             * initial page load it will poll for a fixed time for the element.
        -             * The number of times it will poll and the frequency are
        -             * configurable.  By default it will poll for 10 seconds.
        -             *
        -             * @method onAvailable
        -             *
        -             * @param {string}   p_id the id of the element to look for.
        -             * @param {function} p_fn what to execute when the element is found.
        -             * @param {object}   p_obj an optional object to be passed back as
        -             *                   a parameter to p_fn.
        -             * @param {boolean}  p_override If set to true, p_fn will execute
        -             *                   in the scope of p_obj
        -             *
        -             * @static
        -             */
        -            onAvailable: function(p_id, p_fn, p_obj, p_override) {
        -                onAvailStack.push( { id:         p_id, 
        -                                     fn:         p_fn, 
        -                                     obj:        p_obj, 
        -                                     override:   p_override, 
        -                                     checkReady: false    } );
        -                retryCount = this.POLL_RETRYS;
        -                this.startInterval();
        -            },
        -
        -            /**
        -             * Executes the supplied callback when the DOM is first usable.
        -             *
        -             * @method onDOMReady
        -             *
        -             * @param {function} p_fn what to execute when the element is found.
        -             * @param {object}   p_obj an optional object to be passed back as
        -             *                   a parameter to p_fn.
        -             * @param {boolean}  p_scope If set to true, p_fn will execute
        -             *                   in the scope of p_obj, if set to an object it
        -             *                   will execute in the scope of that object
        -             *
        -             * @static
        -             */
        -            onDOMReady: function(p_fn, p_obj, p_override) {
        -                this.DOMReadyEvent.subscribe(p_fn, p_obj, p_override);
        -            },
        -
        -            /**
        -             * Works the same way as onAvailable, but additionally checks the
        -             * state of sibling elements to determine if the content of the
        -             * available element is safe to modify.
        -             *
        -             * @method onContentReady
        -             *
        -             * @param {string}   p_id the id of the element to look for.
        -             * @param {function} p_fn what to execute when the element is ready.
        -             * @param {object}   p_obj an optional object to be passed back as
        -             *                   a parameter to p_fn.
        -             * @param {boolean}  p_override If set to true, p_fn will execute
        -             *                   in the scope of p_obj
        -             *
        -             * @static
        -             */
        -            onContentReady: function(p_id, p_fn, p_obj, p_override) {
        -                onAvailStack.push( { id:         p_id, 
        -                                     fn:         p_fn, 
        -                                     obj:        p_obj, 
        -                                     override:   p_override,
        -                                     checkReady: true      } );
        -
        -                retryCount = this.POLL_RETRYS;
        -                this.startInterval();
        -            },
        -
        -            /**
        -             * Appends an event handler
        -             *
        -             * @method addListener
        -             *
        -             * @param {Object}   el        The html element to assign the 
        -             *                             event to
        -             * @param {String}   sType     The type of event to append
        -             * @param {Function} fn        The method the event invokes
        -             * @param {Object}   obj    An arbitrary object that will be 
        -             *                             passed as a parameter to the handler
        -             * @param {boolean}  override  If true, the obj passed in becomes
        -             *                             the execution scope of the listener
        -             * @return {boolean} True if the action was successful or defered,
        -             *                        false if one or more of the elements 
        -             *                        could not have the listener attached,
        -             *                        or if the operation throws an exception.
        -             * @static
        -             */
        -            addListener: function(el, sType, fn, obj, override) {
        -
        -
        -                if (!fn || !fn.call) {
        -                    // this.logger.debug("Error, function is not valid " + fn);
        -                    return false;
        -                }
        -
        -                // The el argument can be an array of elements or element ids.
        -                if ( this._isValidCollection(el)) {
        -                    var ok = true;
        -                    for (var i=0,len=el.length; i<len; ++i) {
        -                        ok = this.on(el[i], 
        -                                       sType, 
        -                                       fn, 
        -                                       obj, 
        -                                       override) && ok;
        -                    }
        -                    return ok;
        -
        -                } else if (typeof el == "string") {
        -                    var oEl = this.getEl(el);
        -                    // If the el argument is a string, we assume it is 
        -                    // actually the id of the element.  If the page is loaded
        -                    // we convert el to the actual element, otherwise we 
        -                    // defer attaching the event until onload event fires
        -
        -                    // check to see if we need to delay hooking up the event 
        -                    // until after the page loads.
        -                    if (oEl) {
        -                        el = oEl;
        -                    } else {
        -                        // defer adding the event until the element is available
        -                        this.onAvailable(el, function() {
        -                           YAHOO.util.Event.on(el, sType, fn, obj, override);
        -                        });
        -
        -                        return true;
        -                    }
        -                }
        -
        -                // Element should be an html element or an array if we get 
        -                // here.
        -                if (!el) {
        -                    // this.logger.debug("unable to attach event " + sType);
        -                    return false;
        -                }
        -
        -                // we need to make sure we fire registered unload events 
        -                // prior to automatically unhooking them.  So we hang on to 
        -                // these instead of attaching them to the window and fire the
        -                // handles explicitly during our one unload event.
        -                if ("unload" == sType && obj !== this) {
        -                    unloadListeners[unloadListeners.length] =
        -                            [el, sType, fn, obj, override];
        -                    return true;
        -                }
        -
        -                // this.logger.debug("Adding handler: " + el + ", " + sType);
        -
        -                // if the user chooses to override the scope, we use the custom
        -                // object passed in, otherwise the executing scope will be the
        -                // HTML element that the event is registered on
        -                var scope = el;
        -                if (override) {
        -                    if (override === true) {
        -                        scope = obj;
        -                    } else {
        -                        scope = override;
        -                    }
        -                }
        -
        -                // wrap the function so we can return the obj object when
        -                // the event fires;
        -                var wrappedFn = function(e) {
        -                        return fn.call(scope, YAHOO.util.Event.getEvent(e), 
        -                                obj);
        -                    };
        -
        -                var li = [el, sType, fn, wrappedFn, scope];
        -                var index = listeners.length;
        -                // cache the listener so we can try to automatically unload
        -                listeners[index] = li;
        -
        -                if (this.useLegacyEvent(el, sType)) {
        -                    var legacyIndex = this.getLegacyIndex(el, sType);
        -
        -                    // Add a new dom0 wrapper if one is not detected for this
        -                    // element
        -                    if ( legacyIndex == -1 || 
        -                                el != legacyEvents[legacyIndex][0] ) {
        -
        -                        legacyIndex = legacyEvents.length;
        -                        legacyMap[el.id + sType] = legacyIndex;
        -
        -                        // cache the signature for the DOM0 event, and 
        -                        // include the existing handler for the event, if any
        -                        legacyEvents[legacyIndex] = 
        -                            [el, sType, el["on" + sType]];
        -                        legacyHandlers[legacyIndex] = [];
        -
        -                        el["on" + sType] = 
        -                            function(e) {
        -                                YAHOO.util.Event.fireLegacyEvent(
        -                                    YAHOO.util.Event.getEvent(e), legacyIndex);
        -                            };
        -                    }
        -
        -                    // add a reference to the wrapped listener to our custom
        -                    // stack of events
        -                    //legacyHandlers[legacyIndex].push(index);
        -                    legacyHandlers[legacyIndex].push(li);
        -
        -                } else {
        -                    try {
        -                        this._simpleAdd(el, sType, wrappedFn, false);
        -                    } catch(ex) {
        -                        // handle an error trying to attach an event.  If it fails
        -                        // we need to clean up the cache
        -                        this.lastError = ex;
        -                        this.removeListener(el, sType, fn);
        -                        return false;
        -                    }
        -                }
        -
        -                return true;
        -                
        -            },
        -
        -            /**
        -             * When using legacy events, the handler is routed to this object
        -             * so we can fire our custom listener stack.
        -             * @method fireLegacyEvent
        -             * @static
        -             * @private
        -             */
        -            fireLegacyEvent: function(e, legacyIndex) {
        -                // this.logger.debug("fireLegacyEvent " + legacyIndex);
        -                var ok=true,le,lh,li,scope,ret;
        -                
        -                lh = legacyHandlers[legacyIndex];
        -                for (var i=0,len=lh.length; i<len; ++i) {
        -                    li = lh[i];
        -                    if ( li && li[this.WFN] ) {
        -                        scope = li[this.ADJ_SCOPE];
        -                        ret = li[this.WFN].call(scope, e);
        -                        ok = (ok && ret);
        -                    }
        -                }
        -
        -                // Fire the original handler if we replaced one.  We fire this
        -                // after the other events to keep stopPropagation/preventDefault
        -                // that happened in the DOM0 handler from touching our DOM2
        -                // substitute
        -                le = legacyEvents[legacyIndex];
        -                if (le && le[2]) {
        -                    le[2](e);
        -                }
        -                
        -                return ok;
        -            },
        -
        -            /**
        -             * Returns the legacy event index that matches the supplied 
        -             * signature
        -             * @method getLegacyIndex
        -             * @static
        -             * @private
        -             */
        -            getLegacyIndex: function(el, sType) {
        -                var key = this.generateId(el) + sType;
        -                if (typeof legacyMap[key] == "undefined") { 
        -                    return -1;
        -                } else {
        -                    return legacyMap[key];
        -                }
        -            },
        -
        -            /**
        -             * Logic that determines when we should automatically use legacy
        -             * events instead of DOM2 events.  Currently this is limited to old
        -             * Safari browsers with a broken preventDefault
        -             * @method useLegacyEvent
        -             * @static
        -             * @private
        -             */
        -            useLegacyEvent: function(el, sType) {
        -                if (this.webkit && ("click"==sType || "dblclick"==sType)) {
        -                    var v = parseInt(this.webkit, 10);
        -                    if (!isNaN(v) && v<418) {
        -                        return true;
        -                    }
        -                }
        -                return false;
        -            },
        -                    
        -            /**
        -             * Removes an event handler
        -             *
        -             * @method removeListener
        -             *
        -             * @param {Object} el the html element or the id of the element to 
        -             * assign the event to.
        -             * @param {String} sType the type of event to remove.
        -             * @param {Function} fn the method the event invokes.  If fn is
        -             * undefined, then all event handlers for the type of event are 
        -             * removed.
        -             * @return {boolean} true if the unbind was successful, false 
        -             * otherwise.
        -             * @static
        -             */
        -            removeListener: function(el, sType, fn) {
        -                var i, len;
        -
        -                // The el argument can be a string
        -                if (typeof el == "string") {
        -                    el = this.getEl(el);
        -                // The el argument can be an array of elements or element ids.
        -                } else if ( this._isValidCollection(el)) {
        -                    var ok = true;
        -                    for (i=0,len=el.length; i<len; ++i) {
        -                        ok = ( this.removeListener(el[i], sType, fn) && ok );
        -                    }
        -                    return ok;
        -                }
        -
        -                if (!fn || !fn.call) {
        -                    // this.logger.debug("Error, function is not valid " + fn);
        -                    //return false;
        -                    return this.purgeElement(el, false, sType);
        -                }
        -
        -
        -                if ("unload" == sType) {
        -
        -                    for (i=0, len=unloadListeners.length; i<len; i++) {
        -                        var li = unloadListeners[i];
        -                        if (li && 
        -                            li[0] == el && 
        -                            li[1] == sType && 
        -                            li[2] == fn) {
        -                                unloadListeners.splice(i, 1);
        -                                return true;
        -                        }
        -                    }
        -
        -                    return false;
        -                }
        -
        -                var cacheItem = null;
        -
        -                // The index is a hidden parameter; needed to remove it from
        -                // the method signature because it was tempting users to
        -                // try and take advantage of it, which is not possible.
        -                var index = arguments[3];
        -  
        -                if ("undefined" == typeof index) {
        -                    index = this._getCacheIndex(el, sType, fn);
        -                }
        -
        -                if (index >= 0) {
        -                    cacheItem = listeners[index];
        -                }
        -
        -                if (!el || !cacheItem) {
        -                    // this.logger.debug("cached listener not found");
        -                    return false;
        -                }
        -
        -                // this.logger.debug("Removing handler: " + el + ", " + sType);
        -
        -                if (this.useLegacyEvent(el, sType)) {
        -                    var legacyIndex = this.getLegacyIndex(el, sType);
        -                    var llist = legacyHandlers[legacyIndex];
        -                    if (llist) {
        -                        for (i=0, len=llist.length; i<len; ++i) {
        -                            li = llist[i];
        -                            if (li && 
        -                                li[this.EL] == el && 
        -                                li[this.TYPE] == sType && 
        -                                li[this.FN] == fn) {
        -                                    llist.splice(i, 1);
        -                                    break;
        -                            }
        -                        }
        -                    }
        -
        -                } else {
        -                    try {
        -                        this._simpleRemove(el, sType, cacheItem[this.WFN], false);
        -                    } catch(ex) {
        -                        this.lastError = ex;
        -                        return false;
        -                    }
        -                }
        -
        -                // removed the wrapped handler
        -                delete listeners[index][this.WFN];
        -                delete listeners[index][this.FN];
        -                listeners.splice(index, 1);
        -
        -                return true;
        -
        -            },
        -
        -            /**
        -             * Returns the event's target element
        -             * @method getTarget
        -             * @param {Event} ev the event
        -             * @param {boolean} resolveTextNode when set to true the target's
        -             *                  parent will be returned if the target is a 
        -             *                  text node.  @deprecated, the text node is
        -             *                  now resolved automatically
        -             * @return {HTMLElement} the event's target
        -             * @static
        -             */
        -            getTarget: function(ev, resolveTextNode) {
        -                var t = ev.target || ev.srcElement;
        -                return this.resolveTextNode(t);
        -            },
        -
        -            /**
        -             * In some cases, some browsers will return a text node inside
        -             * the actual element that was targeted.  This normalizes the
        -             * return value for getTarget and getRelatedTarget.
        -             * @method resolveTextNode
        -             * @param {HTMLElement} node node to resolve
        -             * @return {HTMLElement} the normized node
        -             * @static
        -             */
        -            resolveTextNode: function(node) {
        -                // if (node && node.nodeName && 
        -                        // "#TEXT" == node.nodeName.toUpperCase()) {
        -                if (node && 3 == node.nodeType) {
        -                    return node.parentNode;
        -                } else {
        -                    return node;
        -                }
        -            },
        -
        -            /**
        -             * Returns the event's pageX
        -             * @method getPageX
        -             * @param {Event} ev the event
        -             * @return {int} the event's pageX
        -             * @static
        -             */
        -            getPageX: function(ev) {
        -                var x = ev.pageX;
        -                if (!x && 0 !== x) {
        -                    x = ev.clientX || 0;
        -
        -                    if ( this.isIE ) {
        -                        x += this._getScrollLeft();
        -                    }
        -                }
        -
        -                return x;
        -            },
        -
        -            /**
        -             * Returns the event's pageY
        -             * @method getPageY
        -             * @param {Event} ev the event
        -             * @return {int} the event's pageY
        -             * @static
        -             */
        -            getPageY: function(ev) {
        -                var y = ev.pageY;
        -                if (!y && 0 !== y) {
        -                    y = ev.clientY || 0;
        -
        -                    if ( this.isIE ) {
        -                        y += this._getScrollTop();
        -                    }
        -                }
        -
        -
        -                return y;
        -            },
        -
        -            /**
        -             * Returns the pageX and pageY properties as an indexed array.
        -             * @method getXY
        -             * @param {Event} ev the event
        -             * @return {[x, y]} the pageX and pageY properties of the event
        -             * @static
        -             */
        -            getXY: function(ev) {
        -                return [this.getPageX(ev), this.getPageY(ev)];
        -            },
        -
        -            /**
        -             * Returns the event's related target 
        -             * @method getRelatedTarget
        -             * @param {Event} ev the event
        -             * @return {HTMLElement} the event's relatedTarget
        -             * @static
        -             */
        -            getRelatedTarget: function(ev) {
        -                var t = ev.relatedTarget;
        -                if (!t) {
        -                    if (ev.type == "mouseout") {
        -                        t = ev.toElement;
        -                    } else if (ev.type == "mouseover") {
        -                        t = ev.fromElement;
        -                    }
        -                }
        -
        -                return this.resolveTextNode(t);
        -            },
        -
        -            /**
        -             * Returns the time of the event.  If the time is not included, the
        -             * event is modified using the current time.
        -             * @method getTime
        -             * @param {Event} ev the event
        -             * @return {Date} the time of the event
        -             * @static
        -             */
        -            getTime: function(ev) {
        -                if (!ev.time) {
        -                    var t = new Date().getTime();
        -                    try {
        -                        ev.time = t;
        -                    } catch(ex) { 
        -                        this.lastError = ex;
        -                        return t;
        -                    }
        -                }
        -
        -                return ev.time;
        -            },
        -
        -            /**
        -             * Convenience method for stopPropagation + preventDefault
        -             * @method stopEvent
        -             * @param {Event} ev the event
        -             * @static
        -             */
        -            stopEvent: function(ev) {
        -                this.stopPropagation(ev);
        -                this.preventDefault(ev);
        -            },
        -
        -            /**
        -             * Stops event propagation
        -             * @method stopPropagation
        -             * @param {Event} ev the event
        -             * @static
        -             */
        -            stopPropagation: function(ev) {
        -                if (ev.stopPropagation) {
        -                    ev.stopPropagation();
        -                } else {
        -                    ev.cancelBubble = true;
        -                }
        -            },
        -
        -            /**
        -             * Prevents the default behavior of the event
        -             * @method preventDefault
        -             * @param {Event} ev the event
        -             * @static
        -             */
        -            preventDefault: function(ev) {
        -                if (ev.preventDefault) {
        -                    ev.preventDefault();
        -                } else {
        -                    ev.returnValue = false;
        -                }
        -            },
        -             
        -            /**
        -             * Finds the event in the window object, the caller's arguments, or
        -             * in the arguments of another method in the callstack.  This is
        -             * executed automatically for events registered through the event
        -             * manager, so the implementer should not normally need to execute
        -             * this function at all.
        -             * @method getEvent
        -             * @param {Event} e the event parameter from the handler
        -             * @return {Event} the event 
        -             * @static
        -             */
        -            getEvent: function(e) {
        -                var ev = e || window.event;
        -
        -                if (!ev) {
        -                    var c = this.getEvent.caller;
        -                    while (c) {
        -                        ev = c.arguments[0];
        -                        if (ev && Event == ev.constructor) {
        -                            break;
        -                        }
        -                        c = c.caller;
        -                    }
        -                }
        -
        -                return ev;
        -            },
        -
        -            /**
        -             * Returns the charcode for an event
        -             * @method getCharCode
        -             * @param {Event} ev the event
        -             * @return {int} the event's charCode
        -             * @static
        -             */
        -            getCharCode: function(ev) {
        -                return ev.charCode || ev.keyCode || 0;
        -            },
        -
        -            /**
        -             * Locating the saved event handler data by function ref
        -             *
        -             * @method _getCacheIndex
        -             * @static
        -             * @private
        -             */
        -            _getCacheIndex: function(el, sType, fn) {
        -                for (var i=0,len=listeners.length; i<len; ++i) {
        -                    var li = listeners[i];
        -                    if ( li                 && 
        -                         li[this.FN] == fn  && 
        -                         li[this.EL] == el  && 
        -                         li[this.TYPE] == sType ) {
        -                        return i;
        -                    }
        -                }
        -
        -                return -1;
        -            },
        -
        -            /**
        -             * Generates an unique ID for the element if it does not already 
        -             * have one.
        -             * @method generateId
        -             * @param el the element to create the id for
        -             * @return {string} the resulting id of the element
        -             * @static
        -             */
        -            generateId: function(el) {
        -                var id = el.id;
        -
        -                if (!id) {
        -                    id = "yuievtautoid-" + counter;
        -                    ++counter;
        -                    el.id = id;
        -                }
        -
        -                return id;
        -            },
        -
        -
        -            /**
        -             * We want to be able to use getElementsByTagName as a collection
        -             * to attach a group of events to.  Unfortunately, different 
        -             * browsers return different types of collections.  This function
        -             * tests to determine if the object is array-like.  It will also 
        -             * fail if the object is an array, but is empty.
        -             * @method _isValidCollection
        -             * @param o the object to test
        -             * @return {boolean} true if the object is array-like and populated
        -             * @static
        -             * @private
        -             */
        -            _isValidCollection: function(o) {
        -                return ( o                    && // o is something
        -                         o.length             && // o is indexed
        -                         typeof o != "string" && // o is not a string
        -                         !o.tagName           && // o is not an HTML element
        -                         !o.alert             && // o is not a window
        -                         typeof o[0] != "undefined" );
        -
        -            },
        -
        -            /**
        -             * @private
        -             * @property elCache
        -             * DOM element cache
        -             * @static
        -             * @deprecated Elements are not cached any longer
        -             */
        -            elCache: {},
        -
        -            /**
        -             * We cache elements bound by id because when the unload event 
        -             * fires, we can no longer use document.getElementById
        -             * @method getEl
        -             * @static
        -             * @private
        -             * @deprecated Elements are not cached any longer
        -             */
        -            getEl: function(id) {
        -                return document.getElementById(id);
        -            },
        -
        -            /**
        -             * Clears the element cache
        -             * @deprecated Elements are not cached any longer
        -             * @method clearCache
        -             * @static
        -             * @private
        -             */
        -            clearCache: function() { },
        -
        -            /**
        -             * Custom event the fires when the dom is initially usable
        -             * @event DOMReadyEvent
        -             */
        -            DOMReadyEvent: new YAHOO.util.CustomEvent("DOMReady", this),
        -
        -            /**
        -             * hook up any deferred listeners
        -             * @method _load
        -             * @static
        -             * @private
        -             */
        -            _load: function(e) {
        -                loadComplete = true;
        -                var EU = YAHOO.util.Event;
        -
        -                // just in case DOMReady did not go off for some reason
        -                EU._ready();
        -
        -                // Remove the listener to assist with the IE memory issue, but not
        -                // for other browsers because FF 1.0x does not like it.
        -                if (this.isIE) {
        -                    EU._simpleRemove(window, "load", EU._load);
        -                }
        -            },
        -
        -            /**
        -             * Fires the DOMReady event listeners the first time the document is
        -             * usable.
        -             * @method _ready
        -             * @static
        -             * @private
        -             */
        -            _ready: function(e) {
        -                if (!DOMReady) {
        -                    DOMReady=true;
        -                    var EU = YAHOO.util.Event;
        -
        -                    // Fire the content ready custom event
        -                    EU.DOMReadyEvent.fire();
        -
        -                    // Remove the DOMContentLoaded (FF/Opera)
        -                    EU._simpleRemove(document, "DOMContentLoaded", EU._ready);
        -                }
        -            },
        -
        -            /**
        -             * Polling function that runs before the onload event fires, 
        -             * attempting to attach to DOM Nodes as soon as they are 
        -             * available
        -             * @method _tryPreloadAttach
        -             * @static
        -             * @private
        -             */
        -            _tryPreloadAttach: function() {
        -
        -                if (this.locked) {
        -                    return false;
        -                }
        -
        -
        -                if (this.isIE && !DOMReady) {
        -                    return false;
        -                }
        -
        -                this.locked = true;
        -
        -                // this.logger.debug("tryPreloadAttach");
        -
        -                // keep trying until after the page is loaded.  We need to 
        -                // check the page load state prior to trying to bind the 
        -                // elements so that we can be certain all elements have been 
        -                // tested appropriately
        -                var tryAgain = !loadComplete;
        -                if (!tryAgain) {
        -                    tryAgain = (retryCount > 0);
        -                }
        -
        -                // onAvailable
        -                var notAvail = [];
        -
        -                var executeItem = function (el, item) {
        -                    var scope = el;
        -                    if (item.override) {
        -                        if (item.override === true) {
        -                            scope = item.obj;
        -                        } else {
        -                            scope = item.override;
        -                        }
        -                    }
        -                    item.fn.call(scope, item.obj);
        -                };
        -
        -                var i,len,item,el;
        -
        -                // onAvailable
        -                for (i=0,len=onAvailStack.length; i<len; ++i) {
        -                    item = onAvailStack[i];
        -                    if (item && !item.checkReady) {
        -                        el = this.getEl(item.id);
        -                        if (el) {
        -                            executeItem(el, item);
        -                            onAvailStack[i] = null;
        -                        } else {
        -                            notAvail.push(item);
        -                        }
        -                    }
        -                }
        -
        -                // onContentReady
        -                for (i=0,len=onAvailStack.length; i<len; ++i) {
        -                    item = onAvailStack[i];
        -                    if (item && item.checkReady) {
        -                        el = this.getEl(item.id);
        -
        -                        if (el) {
        -                            // The element is available, but not necessarily ready
        -                            // @todo should we test parentNode.nextSibling?
        -                            if (loadComplete || el.nextSibling) {
        -                                executeItem(el, item);
        -                                onAvailStack[i] = null;
        -                            }
        -                        } else {
        -                            notAvail.push(item);
        -                        }
        -                    }
        -                }
        -
        -                retryCount = (notAvail.length === 0) ? 0 : retryCount - 1;
        -
        -                if (tryAgain) {
        -                    // we may need to strip the nulled out items here
        -                    this.startInterval();
        -                } else {
        -                    clearInterval(this._interval);
        -                    this._interval = null;
        -                }
        -
        -                this.locked = false;
        -
        -                return true;
        -
        -            },
        -
        -            /**
        -             * Removes all listeners attached to the given element via addListener.
        -             * Optionally, the node's children can also be purged.
        -             * Optionally, you can specify a specific type of event to remove.
        -             * @method purgeElement
        -             * @param {HTMLElement} el the element to purge
        -             * @param {boolean} recurse recursively purge this element's children
        -             * as well.  Use with caution.
        -             * @param {string} sType optional type of listener to purge. If
        -             * left out, all listeners will be removed
        -             * @static
        -             */
        -            purgeElement: function(el, recurse, sType) {
        -                var elListeners = this.getListeners(el, sType);
        -                if (elListeners) {
        -                    for (var i=0,len=elListeners.length; i<len ; ++i) {
        -                        var l = elListeners[i];
        -                        // can't use the index on the changing collection
        -                        //this.removeListener(el, l.type, l.fn, l.index);
        -                        this.removeListener(el, l.type, l.fn);
        -                    }
        -                }
        -
        -                if (recurse && el && el.childNodes) {
        -                    for (i=0,len=el.childNodes.length; i<len ; ++i) {
        -                        this.purgeElement(el.childNodes[i], recurse, sType);
        -                    }
        -                }
        -            },
        -
        -            /**
        -             * Returns all listeners attached to the given element via addListener.
        -             * Optionally, you can specify a specific type of event to return.
        -             * @method getListeners
        -             * @param el {HTMLElement} the element to inspect 
        -             * @param sType {string} optional type of listener to return. If
        -             * left out, all listeners will be returned
        -             * @return {Object} the listener. Contains the following fields:
        -             * &nbsp;&nbsp;type:   (string)   the type of event
        -             * &nbsp;&nbsp;fn:     (function) the callback supplied to addListener
        -             * &nbsp;&nbsp;obj:    (object)   the custom object supplied to addListener
        -             * &nbsp;&nbsp;adjust: (boolean)  whether or not to adjust the default scope
        -             * &nbsp;&nbsp;index:  (int)      its position in the Event util listener cache
        -             * @static
        -             */           
        -            getListeners: function(el, sType) {
        -                var results=[], searchLists;
        -                if (!sType) {
        -                    searchLists = [listeners, unloadListeners];
        -                } else if (sType == "unload") {
        -                    searchLists = [unloadListeners];
        -                } else {
        -                    searchLists = [listeners];
        -                }
        -
        -                for (var j=0;j<searchLists.length; ++j) {
        -                    var searchList = searchLists[j];
        -                    if (searchList && searchList.length > 0) {
        -                        for (var i=0,len=searchList.length; i<len ; ++i) {
        -                            var l = searchList[i];
        -                            if ( l  && l[this.EL] === el && 
        -                                    (!sType || sType === l[this.TYPE]) ) {
        -                                results.push({
        -                                    type:   l[this.TYPE],
        -                                    fn:     l[this.FN],
        -                                    obj:    l[this.OBJ],
        -                                    adjust: l[this.ADJ_SCOPE],
        -                                    index:  i
        -                                });
        -                            }
        -                        }
        -                    }
        -                }
        -
        -                return (results.length) ? results : null;
        -            },
        -
        -            /**
        -             * Removes all listeners registered by pe.event.  Called 
        -             * automatically during the unload event.
        -             * @method _unload
        -             * @static
        -             * @private
        -             */
        -            _unload: function(e) {
        -
        -                var EU = YAHOO.util.Event, i, j, l, len, index;
        -
        -                for (i=0,len=unloadListeners.length; i<len; ++i) {
        -                    l = unloadListeners[i];
        -                    if (l) {
        -                        var scope = window;
        -                        if (l[EU.ADJ_SCOPE]) {
        -                            if (l[EU.ADJ_SCOPE] === true) {
        -                                scope = l[EU.OBJ];
        -                            } else {
        -                                scope = l[EU.ADJ_SCOPE];
        -                            }
        -                        }
        -                        l[EU.FN].call(scope, EU.getEvent(e), l[EU.OBJ] );
        -                        unloadListeners[i] = null;
        -                        l=null;
        -                        scope=null;
        -                    }
        -                }
        -
        -                unloadListeners = null;
        -
        -                if (listeners && listeners.length > 0) {
        -                    j = listeners.length;
        -                    while (j) {
        -                        index = j-1;
        -                        l = listeners[index];
        -                        if (l) {
        -                            EU.removeListener(l[EU.EL], l[EU.TYPE], 
        -                                    l[EU.FN], index);
        -                        } 
        -                        j = j - 1;
        -                    }
        -                    l=null;
        -
        -                    EU.clearCache();
        -                }
        -
        -                for (i=0,len=legacyEvents.length; i<len; ++i) {
        -                    // dereference the element
        -                    //delete legacyEvents[i][0];
        -                    legacyEvents[i][0] = null;
        -
        -                    // delete the array item
        -                    //delete legacyEvents[i];
        -                    legacyEvents[i] = null;
        -                }
        -
        -                legacyEvents = null;
        -
        -                EU._simpleRemove(window, "unload", EU._unload);
        -
        -            },
        -
        -            /**
        -             * Returns scrollLeft
        -             * @method _getScrollLeft
        -             * @static
        -             * @private
        -             */
        -            _getScrollLeft: function() {
        -                return this._getScroll()[1];
        -            },
        -
        -            /**
        -             * Returns scrollTop
        -             * @method _getScrollTop
        -             * @static
        -             * @private
        -             */
        -            _getScrollTop: function() {
        -                return this._getScroll()[0];
        -            },
        -
        -            /**
        -             * Returns the scrollTop and scrollLeft.  Used to calculate the 
        -             * pageX and pageY in Internet Explorer
        -             * @method _getScroll
        -             * @static
        -             * @private
        -             */
        -            _getScroll: function() {
        -                var dd = document.documentElement, db = document.body;
        -                if (dd && (dd.scrollTop || dd.scrollLeft)) {
        -                    return [dd.scrollTop, dd.scrollLeft];
        -                } else if (db) {
        -                    return [db.scrollTop, db.scrollLeft];
        -                } else {
        -                    return [0, 0];
        -                }
        -            },
        -            
        -            /**
        -             * Used by old versions of CustomEvent, restored for backwards
        -             * compatibility
        -             * @method regCE
        -             * @private
        -             */
        -            regCE: function() {
        -                // does nothing
        -            },
        -
        -            /**
        -             * Adds a DOM event directly without the caching, cleanup, scope adj, etc
        -             *
        -             * @method _simpleAdd
        -             * @param {HTMLElement} el      the element to bind the handler to
        -             * @param {string}      sType   the type of event handler
        -             * @param {function}    fn      the callback to invoke
        -             * @param {boolen}      capture capture or bubble phase
        -             * @static
        -             * @private
        -             */
        -            _simpleAdd: function () {
        -                if (window.addEventListener) {
        -                    return function(el, sType, fn, capture) {
        -                        el.addEventListener(sType, fn, (capture));
        -                    };
        -                } else if (window.attachEvent) {
        -                    return function(el, sType, fn, capture) {
        -                        el.attachEvent("on" + sType, fn);
        -                    };
        -                } else {
        -                    return function(){};
        -                }
        -            }(),
        -
        -            /**
        -             * Basic remove listener
        -             *
        -             * @method _simpleRemove
        -             * @param {HTMLElement} el      the element to bind the handler to
        -             * @param {string}      sType   the type of event handler
        -             * @param {function}    fn      the callback to invoke
        -             * @param {boolen}      capture capture or bubble phase
        -             * @static
        -             * @private
        -             */
        -            _simpleRemove: function() {
        -                if (window.removeEventListener) {
        -                    return function (el, sType, fn, capture) {
        -                        el.removeEventListener(sType, fn, (capture));
        -                    };
        -                } else if (window.detachEvent) {
        -                    return function (el, sType, fn) {
        -                        el.detachEvent("on" + sType, fn);
        -                    };
        -                } else {
        -                    return function(){};
        -                }
        -            }()
        -        };
        -
        -    }();
        -
        -    (function() {
        -        var EU = YAHOO.util.Event;
        -
        -        /**
        -         * YAHOO.util.Event.on is an alias for addListener
        -         * @method on
        -         * @see addListener
        -         * @static
        -         */
        -        EU.on = EU.addListener;
        -
        -        /////////////////////////////////////////////////////////////
        -        // DOMReady
        -        // based on work by: Dean Edwards/John Resig/Matthias Miller 
        -
        -        // Internet Explorer: use the readyState of a defered script.
        -        // This isolates what appears to be a safe moment to manipulate
        -        // the DOM prior to when the document's readyState suggests
        -        // it is safe to do so.
        -        if (EU.isIE) {
        -	
        -            document.write(
        -'<scr' + 'ipt id="_yui_eu_dr" defer="true" src="//:"></script>');
        -        
        -            var el = document.getElementById("_yui_eu_dr");
        -            el.onreadystatechange = function() {
        -                if ("complete" == this.readyState) {
        -                    this.parentNode.removeChild(this);
        -                    YAHOO.util.Event._ready();
        -                }
        -            };
        -
        -            el=null;
        -
        -            // Process onAvailable/onContentReady items when when the 
        -            // DOM is ready.
        -            YAHOO.util.Event.onDOMReady(
        -                    YAHOO.util.Event._tryPreloadAttach,
        -                    YAHOO.util.Event, true);
        -        
        -        // Safari: The document's readyState in Safari currently will
        -        // change to loaded/complete before images are loaded.
        -        } else if (EU.webkit) {
        -
        -            EU._drwatch = setInterval(function(){
        -                var rs=document.readyState;
        -                if ("loaded" == rs || "complete" == rs) {
        -                    clearInterval(EU._drwatch);
        -                    EU._drwatch = null;
        -                    EU._ready();
        -                }
        -            }, EU.POLL_INTERVAL); 
        -
        -        // FireFox and Opera: These browsers provide a event for this
        -        // moment.
        -        } else {
        -
        -            EU._simpleAdd(document, "DOMContentLoaded", EU._ready);
        -
        -        }
        -        /////////////////////////////////////////////////////////////
        -
        -        if (document && document.body) {
        -            EU._load();
        -        } else {
        -            EU._simpleAdd(window, "load", EU._load);
        -        }
        -        EU._simpleAdd(window, "unload", EU._unload);
        -        EU._tryPreloadAttach();
        -    })();
        -}
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/EventProvider.js.html b/www/extras/yui/docs/EventProvider.js.html deleted file mode 100644 index 13d57442b..000000000 --- a/www/extras/yui/docs/EventProvider.js.html +++ /dev/null @@ -1,315 +0,0 @@ - - - - API: event EventProvider.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Event Utility  2.2.2

        -

        - Yahoo! UI Library - > event - - > EventProvider.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * EventProvider is designed to be used with YAHOO.augment to wrap 
        - * CustomEvents in an interface that allows events to be subscribed to 
        - * and fired by name.  This makes it possible for implementing code to
        - * subscribe to an event that either has not been created yet, or will
        - * not be created at all.
        - *
        - * @Class EventProvider
        - */
        -YAHOO.util.EventProvider = function() { };
        -
        -YAHOO.util.EventProvider.prototype = {
        -
        -    /**
        -     * Private storage of custom events
        -     * @property __yui_events
        -     * @type Object[]
        -     * @private
        -     */
        -    __yui_events: null,
        -
        -    /**
        -     * Private storage of custom event subscribers
        -     * @property __yui_subscribers
        -     * @type Object[]
        -     * @private
        -     */
        -    __yui_subscribers: null,
        -    
        -    /**
        -     * Subscribe to a CustomEvent by event type
        -     *
        -     * @method subscribe
        -     * @param p_type     {string}   the type, or name of the event
        -     * @param p_fn       {function} the function to exectute when the event fires
        -     * @param p_obj
        -     * @param p_obj      {Object}   An object to be passed along when the event 
        -     *                              fires
        -     * @param p_override {boolean}  If true, the obj passed in becomes the 
        -     *                              execution scope of the listener
        -     */
        -    subscribe: function(p_type, p_fn, p_obj, p_override) {
        -
        -        this.__yui_events = this.__yui_events || {};
        -        var ce = this.__yui_events[p_type];
        -
        -        if (ce) {
        -            ce.subscribe(p_fn, p_obj, p_override);
        -        } else {
        -            this.__yui_subscribers = this.__yui_subscribers || {};
        -            var subs = this.__yui_subscribers;
        -            if (!subs[p_type]) {
        -                subs[p_type] = [];
        -            }
        -            subs[p_type].push(
        -                { fn: p_fn, obj: p_obj, override: p_override } );
        -        }
        -    },
        -
        -    /**
        -     * Unsubscribes one or more listeners the from the specified event
        -     * @method unsubscribe
        -     * @param p_type {string}   The type, or name of the event
        -     * @param p_fn   {Function} The subscribed function to unsubscribe, if not
        -     *                          supplied, all subscribers will be removed.
        -     * @param p_obj  {Object}   The custom object passed to subscribe.  This is
        -     *                        optional, but if supplied will be used to
        -     *                        disambiguate multiple listeners that are the same
        -     *                        (e.g., you subscribe many object using a function
        -     *                        that lives on the prototype)
        -     * @return {boolean} true if the subscriber was found and detached.
        -     */
        -    unsubscribe: function(p_type, p_fn, p_obj) {
        -        this.__yui_events = this.__yui_events || {};
        -        var ce = this.__yui_events[p_type];
        -        if (ce) {
        -            return ce.unsubscribe(p_fn, p_obj);
        -        } else {
        -            return false;
        -        }
        -    },
        -    
        -    /**
        -     * Removes all listeners from the specified event
        -     * @method unsubscribeAll
        -     * @param p_type {string}   The type, or name of the event
        -     */
        -    unsubscribeAll: function(p_type) {
        -        return this.unsubscribe(p_type);
        -    },
        -
        -    /**
        -     * Creates a new custom event of the specified type.  If a custom event
        -     * by that name already exists, it will not be re-created.  In either
        -     * case the custom event is returned. 
        -     *
        -     * @method createEvent
        -     *
        -     * @param p_type {string} the type, or name of the event
        -     * @param p_config {object} optional config params.  Valid properties are:
        -     *
        -     *  <ul>
        -     *    <li>
        -     *      scope: defines the default execution scope.  If not defined
        -     *      the default scope will be this instance.
        -     *    </li>
        -     *    <li>
        -     *      silent: if true, the custom event will not generate log messages.
        -     *      This is false by default.
        -     *    </li>
        -     *    <li>
        -     *      onSubscribeCallback: specifies a callback to execute when the
        -     *      event has a new subscriber.  This will fire immediately for
        -     *      each queued subscriber if any exist prior to the creation of
        -     *      the event.
        -     *    </li>
        -     *  </ul>
        -     *
        -     *  @return {CustomEvent} the custom event
        -     *
        -     */
        -    createEvent: function(p_type, p_config) {
        -
        -        this.__yui_events = this.__yui_events || {};
        -        var opts = p_config || {};
        -        var events = this.__yui_events;
        -
        -        if (events[p_type]) {
        -            YAHOO.log("EventProvider: error, event already exists");
        -        } else {
        -
        -            var scope  = opts.scope  || this;
        -            var silent = opts.silent || null;
        -
        -            var ce = new YAHOO.util.CustomEvent(p_type, scope, silent,
        -                    YAHOO.util.CustomEvent.FLAT);
        -            events[p_type] = ce;
        -
        -            if (opts.onSubscribeCallback) {
        -                ce.subscribeEvent.subscribe(opts.onSubscribeCallback);
        -            }
        -
        -            this.__yui_subscribers = this.__yui_subscribers || {};
        -            var qs = this.__yui_subscribers[p_type];
        -
        -            if (qs) {
        -                for (var i=0; i<qs.length; ++i) {
        -                    ce.subscribe(qs[i].fn, qs[i].obj, qs[i].override);
        -                }
        -            }
        -        }
        -
        -        return events[p_type];
        -    },
        -
        -
        -   /**
        -     * Fire a custom event by name.  The callback functions will be executed
        -     * from the scope specified when the event was created, and with the 
        -     * following parameters:
        -     *   <ul>
        -     *   <li>The first argument fire() was executed with</li>
        -     *   <li>The custom object (if any) that was passed into the subscribe() 
        -     *       method</li>
        -     *   </ul>
        -     * @method fireEvent
        -     * @param p_type    {string}  the type, or name of the event
        -     * @param arguments {Object*} an arbitrary set of parameters to pass to 
        -     *                            the handler.
        -     * @return {boolean} the return value from CustomEvent.fire, or null if 
        -     *                   the custom event does not exist.
        -     */
        -    fireEvent: function(p_type, arg1, arg2, etc) {
        -
        -        this.__yui_events = this.__yui_events || {};
        -        var ce = this.__yui_events[p_type];
        -
        -        if (ce) {
        -            var args = [];
        -            for (var i=1; i<arguments.length; ++i) {
        -                args.push(arguments[i]);
        -            }
        -            return ce.fire.apply(ce, args);
        -        } else {
        -            YAHOO.log("EventProvider.fire could not find event: " + p_type);
        -            return null;
        -        }
        -    },
        -
        -    /**
        -     * Returns true if the custom event of the provided type has been created
        -     * with createEvent.
        -     * @method hasEvent
        -     * @param type {string} the type, or name of the event
        -     */
        -    hasEvent: function(type) {
        -        if (this.__yui_events) {
        -            if (this.__yui_events[type]) {
        -                return true;
        -            }
        -        }
        -        return false;
        -    }
        -
        -};
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/HTMLNode.js.html b/www/extras/yui/docs/HTMLNode.js.html deleted file mode 100644 index 2bb2dd44f..000000000 --- a/www/extras/yui/docs/HTMLNode.js.html +++ /dev/null @@ -1,245 +0,0 @@ - - - - API: treeview HTMLNode.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - - > HTMLNode.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * This implementation takes either a string or object for the
        - * oData argument.  If is it a string, we will use it for the display
        - * of this node (and it can contain any html code).  If the parameter
        - * is an object, we look for a parameter called "html" that will be
        - * used for this node's display.
        - * @namespace YAHOO.widget
        - * @class HTMLNode
        - * @extends YAHOO.widget.Node
        - * @constructor
        - * @param oData {object} a string or object containing the data that will
        - * be used to render this node
        - * @param oParent {YAHOO.widget.Node} this node's parent node
        - * @param expanded {boolean} the initial expanded/collapsed state
        - * @param hasIcon {boolean} specifies whether or not leaf nodes should
        - * have an icon
        - */
        -YAHOO.widget.HTMLNode = function(oData, oParent, expanded, hasIcon) {
        -    if (oData) { 
        -        this.init(oData, oParent, expanded);
        -        this.initContent(oData, hasIcon);
        -    }
        -};
        -
        -YAHOO.extend(YAHOO.widget.HTMLNode, YAHOO.widget.Node, {
        -
        -    /**
        -     * The CSS class for the html content container.  Defaults to ygtvhtml, but 
        -     * can be overridden to provide a custom presentation for a specific node.
        -     * @property contentStyle
        -     * @type string
        -     */
        -    contentStyle: "ygtvhtml",
        -
        -    /**
        -     * The generated id that will contain the data passed in by the implementer.
        -     * @property contentElId
        -     * @type string
        -     */
        -    contentElId: null,
        -
        -    /**
        -     * The HTML content to use for this node's display
        -     * @property content
        -     * @type string
        -     */
        -    content: null,
        -
        -    /**
        -     * Sets up the node label
        -     * @property initContent
        -     * @param {object} An html string or object containing an html property
        -     * @param {boolean} hasIcon determines if the node will be rendered with an
        -     * icon or not
        -     */
        -    initContent: function(oData, hasIcon) { 
        -        if (typeof oData == "string") {
        -            oData = { html: oData };
        -        }
        -
        -        this.html = oData.html;
        -        this.contentElId = "ygtvcontentel" + this.index;
        -        this.hasIcon = hasIcon;
        -
        -        this.logger = new YAHOO.widget.LogWriter(this.toString());
        -    },
        -
        -    /**
        -     * Returns the outer html element for this node's content
        -     * @method getContentEl
        -     * @return {HTMLElement} the element
        -     */
        -    getContentEl: function() { 
        -        return document.getElementById(this.contentElId);
        -    },
        -
        -    // overrides YAHOO.widget.Node
        -    getNodeHtml: function() { 
        -        this.logger.log("Generating html");
        -        var sb = [];
        -
        -        sb[sb.length] = '<table border="0" cellpadding="0" cellspacing="0">';
        -        sb[sb.length] = '<tr>';
        -        
        -        for (var i=0;i<this.depth;++i) {
        -            //sb[sb.length] = '<td class="' + this.getDepthStyle(i) + '">&#160;</td>';
        -            sb[sb.length] = '<td class="' + this.getDepthStyle(i) + '"><div class="ygtvspacer"></div></td>';
        -        }
        -
        -        if (this.hasIcon) {
        -            sb[sb.length] = '<td';
        -            sb[sb.length] = ' id="' + this.getToggleElId() + '"';
        -            sb[sb.length] = ' class="' + this.getStyle() + '"';
        -            sb[sb.length] = ' onclick="javascript:' + this.getToggleLink() + '"';
        -            if (this.hasChildren(true)) {
        -                sb[sb.length] = ' onmouseover="this.className=';
        -                sb[sb.length] = 'YAHOO.widget.TreeView.getNode(\'';
        -                sb[sb.length] = this.tree.id + '\',' + this.index +  ').getHoverStyle()"';
        -                sb[sb.length] = ' onmouseout="this.className=';
        -                sb[sb.length] = 'YAHOO.widget.TreeView.getNode(\'';
        -                sb[sb.length] = this.tree.id + '\',' + this.index +  ').getStyle()"';
        -            }
        -            //sb[sb.length] = '>&#160;</td>';
        -            sb[sb.length] = '><div class="ygtvspacer"></div></td>';
        -        }
        -
        -        sb[sb.length] = '<td';
        -        sb[sb.length] = ' id="' + this.contentElId + '"';
        -        sb[sb.length] = ' class="' + this.contentStyle + '"';
        -        sb[sb.length] = (this.nowrap) ? ' nowrap="nowrap" ' : '';
        -        sb[sb.length] = ' >';
        -        sb[sb.length] = this.html;
        -        sb[sb.length] = '</td>';
        -        sb[sb.length] = '</tr>';
        -        sb[sb.length] = '</table>';
        -
        -        return sb.join("");
        -    },
        -
        -    toString: function() { 
        -        return "HTMLNode (" + this.index + ")";
        -    }
        -
        -});
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/LogMsg.js.html b/www/extras/yui/docs/LogMsg.js.html deleted file mode 100644 index 8fbdda24b..000000000 --- a/www/extras/yui/docs/LogMsg.js.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - API: logger LogMsg.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Logger Widget  2.2.2

        -

        - Yahoo! UI Library - > logger - - > LogMsg.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /****************************************************************************/
        -/****************************************************************************/
        -/****************************************************************************/
        -
        -/**
        - * The LogMsg class defines a single log message.
        - *
        - * @class LogMsg
        - * @constructor
        - * @param oConfigs {Object} Object literal of configuration params.
        - */
        - YAHOO.widget.LogMsg = function(oConfigs) {
        -    // Parse configs
        -    if (oConfigs && (oConfigs.constructor == Object)) {
        -        for(var param in oConfigs) {
        -            this[param] = oConfigs[param];
        -        }
        -    }
        - };
        - 
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Log message.
        - *
        - * @property msg
        - * @type String
        - */
        -YAHOO.widget.LogMsg.prototype.msg = null;
        - 
        -/**
        - * Log timestamp.
        - *
        - * @property time
        - * @type Date
        - */
        -YAHOO.widget.LogMsg.prototype.time = null;
        -
        -/**
        - * Log category.
        - *
        - * @property category
        - * @type String
        - */
        -YAHOO.widget.LogMsg.prototype.category = null;
        -
        -/**
        - * Log source. The first word passed in as the source argument.
        - *
        - * @property source
        - * @type String
        - */
        -YAHOO.widget.LogMsg.prototype.source = null;
        -
        -/**
        - * Log source detail. The remainder of the string passed in as the source argument, not
        - * including the first word (if any).
        - *
        - * @property sourceDetail
        - * @type String
        - */
        -YAHOO.widget.LogMsg.prototype.sourceDetail = null;
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/LogReader.js.html b/www/extras/yui/docs/LogReader.js.html deleted file mode 100644 index 20b5faa62..000000000 --- a/www/extras/yui/docs/LogReader.js.html +++ /dev/null @@ -1,1323 +0,0 @@ - - - - API: logger LogReader.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Logger Widget  2.2.2

        -

        - Yahoo! UI Library - > logger - - > LogReader.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /****************************************************************************/
        -/****************************************************************************/
        -/****************************************************************************/
        -
        -/**
        - * The LogReader class provides UI to read messages logged to YAHOO.widget.Logger.
        - *
        - * @class LogReader
        - * @constructor
        - * @param elContainer {HTMLElement} (optional) DOM element reference of an existing DIV.
        - * @param elContainer {String} (optional) String ID of an existing DIV.
        - * @param oConfigs {Object} (optional) Object literal of configuration params.
        - */
        -YAHOO.widget.LogReader = function(elContainer, oConfigs) {
        -    var oSelf = this;
        -    this._sName = YAHOO.widget.LogReader._index;
        -    YAHOO.widget.LogReader._index++;
        -
        -    // Parse config vars here
        -    if (oConfigs && (oConfigs.constructor == Object)) {
        -        for(var param in oConfigs) {
        -            this[param] = oConfigs[param];
        -        }
        -    }
        -
        -    // Validate container
        -    elContainer = YAHOO.util.Dom.get(elContainer);
        -    // Attach to existing container...
        -    if(elContainer && elContainer.tagName && (elContainer.tagName.toLowerCase() == "div")) {
        -        this._elContainer = elContainer;
        -        YAHOO.util.Dom.addClass(this._elContainer,"yui-log");
        -    }
        -    // ...or create container from scratch
        -    else {
        -        this._elContainer = document.body.appendChild(document.createElement("div"));
        -        //this._elContainer.id = "yui-log" + this._sName;
        -        YAHOO.util.Dom.addClass(this._elContainer,"yui-log");
        -        YAHOO.util.Dom.addClass(this._elContainer,"yui-log-container");
        -
        -        //YAHOO.widget.LogReader._elDefaultContainer = this._elContainer;
        -
        -        // If implementer has provided container values, trust and set those
        -        var containerStyle = this._elContainer.style;
        -        if(this.width) {
        -            containerStyle.width = this.width;
        -        }
        -        if(this.right) {
        -            containerStyle.right = this.right;
        -        }
        -        if(this.top) {
        -            containerStyle.top = this.top;
        -        }
        -         if(this.left) {
        -            containerStyle.left = this.left;
        -            containerStyle.right = "auto";
        -        }
        -        if(this.bottom) {
        -            containerStyle.bottom = this.bottom;
        -            containerStyle.top = "auto";
        -        }
        -       if(this.fontSize) {
        -            containerStyle.fontSize = this.fontSize;
        -        }
        -        // For Opera
        -        if(navigator.userAgent.toLowerCase().indexOf("opera") != -1) {
        -            document.body.style += '';
        -        }
        -    }
        -
        -    if(this._elContainer) {
        -        // Create header
        -        if(!this._elHd) {
        -            this._elHd = this._elContainer.appendChild(document.createElement("div"));
        -            this._elHd.id = "yui-log-hd" + this._sName;
        -            this._elHd.className = "yui-log-hd";
        -
        -            this._elCollapse = this._elHd.appendChild(document.createElement("div"));
        -            this._elCollapse.className = "yui-log-btns";
        -
        -            this._btnCollapse = document.createElement("input");
        -            this._btnCollapse.type = "button";
        -            this._btnCollapse.style.fontSize =
        -                YAHOO.util.Dom.getStyle(this._elContainer,"fontSize");
        -            this._btnCollapse.className = "yui-log-button";
        -            this._btnCollapse.value = "Collapse";
        -            this._btnCollapse = this._elCollapse.appendChild(this._btnCollapse);
        -            YAHOO.util.Event.addListener(
        -                oSelf._btnCollapse,'click',oSelf._onClickCollapseBtn,oSelf);
        -
        -            this._title = this._elHd.appendChild(document.createElement("h4"));
        -            this._title.innerHTML = "Logger Console";
        -        }
        -        // Ceate console
        -        if(!this._elConsole) {
        -            this._elConsole =
        -                this._elContainer.appendChild(document.createElement("div"));
        -            this._elConsole.className = "yui-log-bd";
        -
        -            // If implementer has provided console, trust and set those
        -            if(this.height) {
        -                this._elConsole.style.height = this.height;
        -            }
        -        }
        -        // Don't create footer if disabled
        -        if(!this._elFt && this.footerEnabled) {
        -            this._elFt = this._elContainer.appendChild(document.createElement("div"));
        -            this._elFt.className = "yui-log-ft";
        -
        -            this._elBtns = this._elFt.appendChild(document.createElement("div"));
        -            this._elBtns.className = "yui-log-btns";
        -
        -            this._btnPause = document.createElement("input");
        -            this._btnPause.type = "button";
        -            this._btnPause.style.fontSize =
        -                YAHOO.util.Dom.getStyle(this._elContainer,"fontSize");
        -            this._btnPause.className = "yui-log-button";
        -            this._btnPause.value = "Pause";
        -            this._btnPause = this._elBtns.appendChild(this._btnPause);
        -            YAHOO.util.Event.addListener(
        -                oSelf._btnPause,'click',oSelf._onClickPauseBtn,oSelf);
        -
        -            this._btnClear = document.createElement("input");
        -            this._btnClear.type = "button";
        -            this._btnClear.style.fontSize =
        -                YAHOO.util.Dom.getStyle(this._elContainer,"fontSize");
        -            this._btnClear.className = "yui-log-button";
        -            this._btnClear.value = "Clear";
        -            this._btnClear = this._elBtns.appendChild(this._btnClear);
        -            YAHOO.util.Event.addListener(
        -                oSelf._btnClear,'click',oSelf._onClickClearBtn,oSelf);
        -
        -            this._elCategoryFilters = this._elFt.appendChild(document.createElement("div"));
        -            this._elCategoryFilters.className = "yui-log-categoryfilters";
        -            this._elSourceFilters = this._elFt.appendChild(document.createElement("div"));
        -            this._elSourceFilters.className = "yui-log-sourcefilters";
        -        }
        -    }
        -
        -    // If Drag and Drop utility is available...
        -    // ...and draggable is true...
        -    // ...then make the header draggable
        -    if(YAHOO.util.DD && this.draggable) {
        -        var ylog_dd = new YAHOO.util.DD(this._elContainer);
        -        ylog_dd.setHandleElId(this._elHd.id);
        -        this._elHd.style.cursor = "move";
        -    }
        -
        -    // Initialize internal vars
        -    if(!this._buffer) {
        -        this._buffer = []; // output buffer
        -    }
        -    // Timestamp of last log message to console
        -    this._lastTime = YAHOO.widget.Logger.getStartTime(); 
        -    
        -    // Subscribe to Logger custom events
        -    YAHOO.widget.Logger.newLogEvent.subscribe(this._onNewLog, this);
        -    YAHOO.widget.Logger.logResetEvent.subscribe(this._onReset, this);
        -
        -    // Initialize filters
        -    this._filterCheckboxes = {};
        -    
        -    // Initialize category filters
        -    this._categoryFilters = [];
        -    var catsLen = YAHOO.widget.Logger.categories.length;
        -    if(this._elCategoryFilters) {
        -        for(var i=0; i < catsLen; i++) {
        -            this._createCategoryCheckbox(YAHOO.widget.Logger.categories[i]);
        -        }
        -    }
        -    // Initialize source filters
        -    this._sourceFilters = [];
        -    var sourcesLen = YAHOO.widget.Logger.sources.length;
        -    if(this._elSourceFilters) {
        -        for(var j=0; j < sourcesLen; j++) {
        -            this._createSourceCheckbox(YAHOO.widget.Logger.sources[j]);
        -        }
        -    }
        -    YAHOO.widget.Logger.categoryCreateEvent.subscribe(this._onCategoryCreate, this);
        -    YAHOO.widget.Logger.sourceCreateEvent.subscribe(this._onSourceCreate, this);
        -
        -    this._filterLogs();
        -    YAHOO.log("LogReader initialized", null, this.toString());
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Whether or not LogReader is enabled to output log messages.
        - *
        - * @property logReaderEnabled
        - * @type Boolean
        - * @default true
        - */
        -YAHOO.widget.LogReader.prototype.logReaderEnabled = true;
        -
        -/**
        - * Public member to access CSS width of the LogReader container.
        - *
        - * @property width
        - * @type String
        - */
        -YAHOO.widget.LogReader.prototype.width = null;
        -
        -/**
        - * Public member to access CSS height of the LogReader container.
        - *
        - * @property height
        - * @type String
        - */
        -YAHOO.widget.LogReader.prototype.height = null;
        -
        -/**
        - * Public member to access CSS top position of the LogReader container.
        - *
        - * @property top
        - * @type String
        - */
        -YAHOO.widget.LogReader.prototype.top = null;
        -
        -/**
        - * Public member to access CSS left position of the LogReader container.
        - *
        - * @property left
        - * @type String
        - */
        -YAHOO.widget.LogReader.prototype.left = null;
        -
        -/**
        - * Public member to access CSS right position of the LogReader container.
        - *
        - * @property right
        - * @type String
        - */
        -YAHOO.widget.LogReader.prototype.right = null;
        -
        -/**
        - * Public member to access CSS bottom position of the LogReader container.
        - *
        - * @property bottom
        - * @type String
        - */
        -YAHOO.widget.LogReader.prototype.bottom = null;
        -
        -/**
        - * Public member to access CSS font size of the LogReader container.
        - *
        - * @property fontSize
        - * @type String
        - */
        -YAHOO.widget.LogReader.prototype.fontSize = null;
        -
        -/**
        - * Whether or not the footer UI is enabled for the LogReader.
        - *
        - * @property footerEnabled
        - * @type Boolean
        - * @default true
        - */
        -YAHOO.widget.LogReader.prototype.footerEnabled = true;
        -
        -/**
        - * Whether or not output is verbose (more readable). Setting to true will make
        - * output more compact (less readable).
        - *
        - * @property verboseOutput
        - * @type Boolean
        - * @default true
        - */
        -YAHOO.widget.LogReader.prototype.verboseOutput = true;
        -
        -/**
        - * Whether or not newest message is printed on top.
        - *
        - * @property newestOnTop
        - * @type Boolean
        - */
        -YAHOO.widget.LogReader.prototype.newestOnTop = true;
        -
        -/**
        - * Output timeout buffer in milliseconds.
        - *
        - * @property outputBuffer
        - * @type Number
        - * @default 100
        - */
        -YAHOO.widget.LogReader.prototype.outputBuffer = 100;
        -
        -/**
        - * Maximum number of messages a LogReader console will display.
        - *
        - * @property thresholdMax
        - * @type Number
        - * @default 500
        - */
        -YAHOO.widget.LogReader.prototype.thresholdMax = 500;
        -
        -/**
        - * When a LogReader console reaches its thresholdMax, it will clear out messages
        - * and print out the latest thresholdMin number of messages.
        - *
        - * @property thresholdMin
        - * @type Number
        - * @default 100
        - */
        -YAHOO.widget.LogReader.prototype.thresholdMin = 100;
        -
        -/**
        - * True when LogReader is in a collapsed state, false otherwise.
        - *
        - * @property isCollapsed
        - * @type Boolean
        - * @default false
        - */
        -YAHOO.widget.LogReader.prototype.isCollapsed = false;
        -
        -/**
        - * True when LogReader is in a paused state, false otherwise.
        - *
        - * @property isPaused
        - * @type Boolean
        - * @default false
        - */
        -YAHOO.widget.LogReader.prototype.isPaused = false;
        -
        -/**
        - * Enables draggable LogReader if DragDrop Utility is present.
        - *
        - * @property draggable
        - * @type Boolean
        - * @default true
        - */
        -YAHOO.widget.LogReader.prototype.draggable = true;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        - /**
        - * Public accessor to the unique name of the LogReader instance.
        - *
        - * @method toString
        - * @return {String} Unique name of the LogReader instance.
        - */
        -YAHOO.widget.LogReader.prototype.toString = function() {
        -    return "LogReader instance" + this._sName;
        -};
        -/**
        - * Pauses output of log messages. While paused, log messages are not lost, but
        - * get saved to a buffer and then output upon resume of LogReader.
        - *
        - * @method pause
        - */
        -YAHOO.widget.LogReader.prototype.pause = function() {
        -    this.isPaused = true;
        -    this._btnPause.value = "Resume";
        -    this._timeout = null;
        -    this.logReaderEnabled = false;
        -};
        -
        -/**
        - * Resumes output of log messages, including outputting any log messages that
        - * have been saved to buffer while paused.
        - *
        - * @method resume
        - */
        -YAHOO.widget.LogReader.prototype.resume = function() {
        -    this.isPaused = false;
        -    this._btnPause.value = "Pause";
        -    this.logReaderEnabled = true;
        -    this._printBuffer();
        -};
        -
        -/**
        - * Hides UI of LogReader. Logging functionality is not disrupted.
        - *
        - * @method hide
        - */
        -YAHOO.widget.LogReader.prototype.hide = function() {
        -    this._elContainer.style.display = "none";
        -};
        -
        -/**
        - * Shows UI of LogReader. Logging functionality is not disrupted.
        - *
        - * @method show
        - */
        -YAHOO.widget.LogReader.prototype.show = function() {
        -    this._elContainer.style.display = "block";
        -};
        -
        -/**
        - * Collapses UI of LogReader. Logging functionality is not disrupted.
        - *
        - * @method collapse
        - */
        -YAHOO.widget.LogReader.prototype.collapse = function() {
        -    this._elConsole.style.display = "none";
        -    if(this._elFt) {
        -        this._elFt.style.display = "none";
        -    }
        -    this._btnCollapse.value = "Expand";
        -    this.isCollapsed = true;
        -};
        -
        -/**
        - * Expands UI of LogReader. Logging functionality is not disrupted.
        - *
        - * @method expand
        - */
        -YAHOO.widget.LogReader.prototype.expand = function() {
        -    this._elConsole.style.display = "block";
        -    if(this._elFt) {
        -        this._elFt.style.display = "block";
        -    }
        -    this._btnCollapse.value = "Collapse";
        -    this.isCollapsed = false;
        -};
        -
        -/**
        - * Returns related checkbox element for given filter (i.e., category or source).
        - *
        - * @method getCheckbox
        - * @param {String} Category or source name.
        - * @return {Array} Array of all filter checkboxes.
        - */
        -YAHOO.widget.LogReader.prototype.getCheckbox = function(filter) {
        -    return this._filterCheckboxes[filter];
        -};
        -
        -/**
        - * Returns array of enabled categories.
        - *
        - * @method getCategories
        - * @return {String[]} Array of enabled categories.
        - */
        -YAHOO.widget.LogReader.prototype.getCategories = function() {
        -    return this._categoryFilters;
        -};
        -
        -/**
        - * Shows log messages associated with given category.
        - *
        - * @method showCategory
        - * @param {String} Category name.
        - */
        -YAHOO.widget.LogReader.prototype.showCategory = function(sCategory) {
        -    var filtersArray = this._categoryFilters;
        -    // Don't do anything if category is already enabled
        -    // Use Array.indexOf if available...
        -    if(filtersArray.indexOf) {
        -         if(filtersArray.indexOf(sCategory) >  -1) {
        -            return;
        -        }
        -    }
        -    // ...or do it the old-fashioned way
        -    else {
        -        for(var i=0; i<filtersArray.length; i++) {
        -           if(filtersArray[i] === sCategory){
        -                return;
        -            }
        -        }
        -    }
        -
        -    this._categoryFilters.push(sCategory);
        -    this._filterLogs();
        -    this.getCheckbox(sCategory).checked = true;
        -};
        -
        -/**
        - * Hides log messages associated with given category.
        - *
        - * @method hideCategory
        - * @param {String} Category name.
        - */
        -YAHOO.widget.LogReader.prototype.hideCategory = function(sCategory) {
        -    var filtersArray = this._categoryFilters;
        -    for(var i=0; i<filtersArray.length; i++) {
        -        if(sCategory == filtersArray[i]) {
        -            filtersArray.splice(i, 1);
        -            break;
        -        }
        -    }
        -    this._filterLogs();
        -    this.getCheckbox(sCategory).checked = false;
        -};
        -
        -/**
        - * Returns array of enabled sources.
        - *
        - * @method getSources
        - * @return {Array} Array of enabled sources.
        - */
        -YAHOO.widget.LogReader.prototype.getSources = function() {
        -    return this._sourceFilters;
        -};
        -
        -/**
        - * Shows log messages associated with given source.
        - *
        - * @method showSource
        - * @param {String} Source name.
        - */
        -YAHOO.widget.LogReader.prototype.showSource = function(sSource) {
        -    var filtersArray = this._sourceFilters;
        -    // Don't do anything if category is already enabled
        -    // Use Array.indexOf if available...
        -    if(filtersArray.indexOf) {
        -         if(filtersArray.indexOf(sSource) >  -1) {
        -            return;
        -        }
        -    }
        -    // ...or do it the old-fashioned way
        -    else {
        -        for(var i=0; i<filtersArray.length; i++) {
        -           if(sSource == filtersArray[i]){
        -                return;
        -            }
        -        }
        -    }
        -    filtersArray.push(sSource);
        -    this._filterLogs();
        -    this.getCheckbox(sSource).checked = true;
        -};
        -
        -/**
        - * Hides log messages associated with given source.
        - *
        - * @method hideSource
        - * @param {String} Source name.
        - */
        -YAHOO.widget.LogReader.prototype.hideSource = function(sSource) {
        -    var filtersArray = this._sourceFilters;
        -    for(var i=0; i<filtersArray.length; i++) {
        -        if(sSource == filtersArray[i]) {
        -            filtersArray.splice(i, 1);
        -            break;
        -        }
        -    }
        -    this._filterLogs();
        -    this.getCheckbox(sSource).checked = false;
        -};
        -
        -/**
        - * Does not delete any log messages, but clears all printed log messages from
        - * the console. Log messages will be printed out again if user re-filters. The
        - * static method YAHOO.widget.Logger.reset() should be called in order to
        - * actually delete log messages.
        - *
        - * @method clearConsole
        - */
        -YAHOO.widget.LogReader.prototype.clearConsole = function() {
        -    // Clear the buffer of any pending messages
        -    this._timeout = null;
        -    this._buffer = [];
        -    this._consoleMsgCount = 0;
        -
        -    var elConsole = this._elConsole;
        -    while(elConsole.hasChildNodes()) {
        -        elConsole.removeChild(elConsole.firstChild);
        -    }
        -};
        -
        -/**
        - * Updates title to given string.
        - *
        - * @method setTitle
        - * @param sTitle {String} New title.
        - */
        -YAHOO.widget.LogReader.prototype.setTitle = function(sTitle) {
        -    this._title.innerHTML = this.html2Text(sTitle);
        -};
        -
        -/**
        - * Gets timestamp of the last log.
        - *
        - * @method getLastTime
        - * @return {Date} Timestamp of the last log.
        - */
        -YAHOO.widget.LogReader.prototype.getLastTime = function() {
        -    return this._lastTime;
        -};
        -
        -/**
        - * Formats message string to HTML for output to console.
        - *
        - * @method formatMsg
        - * @param oLogMsg {Object} Log message object.
        - * @return {String} HTML-formatted message for output to console.
        - */
        -YAHOO.widget.LogReader.prototype.formatMsg = function(oLogMsg) {
        -    var category = oLogMsg.category;
        -    
        -    // Label for color-coded display
        -    var label = category.substring(0,4).toUpperCase();
        -
        -    // Calculate the elapsed time to be from the last item that passed through the filter,
        -    // not the absolute previous item in the stack
        -
        -    var time = oLogMsg.time;
        -    if (time.toLocaleTimeString) {
        -        var localTime  = time.toLocaleTimeString();
        -    }
        -    else {
        -        localTime = time.toString();
        -    }
        -
        -    var msecs = time.getTime();
        -    var startTime = YAHOO.widget.Logger.getStartTime();
        -    var totalTime = msecs - startTime;
        -    var elapsedTime = msecs - this.getLastTime();
        -
        -    var source = oLogMsg.source;
        -    var sourceDetail = oLogMsg.sourceDetail;
        -    var sourceAndDetail = (sourceDetail) ?
        -        source + " " + sourceDetail : source;
        -        
        -    // Escape HTML entities in the log message itself for output to console
        -    var msg = this.html2Text(oLogMsg.msg);
        -
        -    // Verbose output includes extra line breaks
        -    var output =  (this.verboseOutput) ?
        -        ["<pre class=\"yui-log-verbose\"><p><span class='", category, "'>", label, "</span> ",
        -        totalTime, "ms (+", elapsedTime, ") ",
        -        localTime, ": ",
        -        "</p><p>",
        -        sourceAndDetail,
        -        ": </p><p>",
        -        msg,
        -        "</p></pre>"] :
        -
        -        ["<pre><p><span class='", category, "'>", label, "</span> ",
        -        totalTime, "ms (+", elapsedTime, ") ",
        -        localTime, ": ",
        -        sourceAndDetail, ": ",
        -        msg, "</p></pre>"];
        -
        -    return output.join("");
        -};
        -
        -/**
        - * Converts input chars "<", ">", and "&" to HTML entities.
        - *
        - * @method html2Text
        - * @param sHtml {String} String to convert.
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype.html2Text = function(sHtml) {
        -    if(sHtml) {
        -        sHtml += "";
        -        return sHtml.replace(/&/g, "&#38;").replace(/</g, "&#60;").replace(/>/g, "&#62;");
        -    }
        -    return "";
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Internal class member to index multiple LogReader instances.
        - *
        - * @property _memberName
        - * @static
        - * @type Number
        - * @default 0
        - * @private
        - */
        -YAHOO.widget.LogReader._index = 0;
        -
        -/**
        - * Name of LogReader instance.
        - *
        - * @property _sName
        - * @type String
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._sName = null;
        -
        -//TODO: remove
        -/**
        - * A class member shared by all LogReaders if a container needs to be
        - * created during instantiation. Will be null if a container element never needs to
        - * be created on the fly, such as when the implementer passes in their own element.
        - *
        - * @property _elDefaultContainer
        - * @type HTMLElement
        - * @private
        - */
        -//YAHOO.widget.LogReader._elDefaultContainer = null;
        -
        -/**
        - * Buffer of log message objects for batch output.
        - *
        - * @property _buffer
        - * @type Object[]
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._buffer = null;
        -
        -/**
        - * Number of log messages output to console.
        - *
        - * @property _consoleMsgCount
        - * @type Number
        - * @default 0
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._consoleMsgCount = 0;
        -
        -/**
        - * Date of last output log message.
        - *
        - * @property _lastTime
        - * @type Date
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._lastTime = null;
        -
        -/**
        - * Batched output timeout ID.
        - *
        - * @property _timeout
        - * @type Number
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._timeout = null;
        -
        -/**
        - * Hash of filters and their related checkbox elements.
        - *
        - * @property _filterCheckboxes
        - * @type Object
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._filterCheckboxes = null;
        -
        -/**
        - * Array of filters for log message categories.
        - *
        - * @property _categoryFilters
        - * @type String[]
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._categoryFilters = null;
        -
        -/**
        - * Array of filters for log message sources.
        - *
        - * @property _sourceFilters
        - * @type String[]
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._sourceFilters = null;
        -
        -/**
        - * LogReader container element.
        - *
        - * @property _elContainer
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._elContainer = null;
        -
        -/**
        - * LogReader header element.
        - *
        - * @property _elHd
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._elHd = null;
        -
        -/**
        - * LogReader collapse element.
        - *
        - * @property _elCollapse
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._elCollapse = null;
        -
        -/**
        - * LogReader collapse button element.
        - *
        - * @property _btnCollapse
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._btnCollapse = null;
        -
        -/**
        - * LogReader title header element.
        - *
        - * @property _title
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._title = null;
        -
        -/**
        - * LogReader console element.
        - *
        - * @property _elConsole
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._elConsole = null;
        -
        -/**
        - * LogReader footer element.
        - *
        - * @property _elFt
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._elFt = null;
        -
        -/**
        - * LogReader buttons container element.
        - *
        - * @property _elBtns
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._elBtns = null;
        -
        -/**
        - * Container element for LogReader category filter checkboxes.
        - *
        - * @property _elCategoryFilters
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._elCategoryFilters = null;
        -
        -/**
        - * Container element for LogReader source filter checkboxes.
        - *
        - * @property _elSourceFilters
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._elSourceFilters = null;
        -
        -/**
        - * LogReader pause button element.
        - *
        - * @property _btnPause
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._btnPause = null;
        -
        -/**
        - * Clear button element.
        - *
        - * @property _btnClear
        - * @type HTMLElement
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._btnClear = null;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Creates the UI for a category filter in the LogReader footer element.
        - *
        - * @method _createCategoryCheckbox
        - * @param sCategory {String} Category name.
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._createCategoryCheckbox = function(sCategory) {
        -    var oSelf = this;
        -
        -    if(this._elFt) {
        -        var elParent = this._elCategoryFilters;
        -        var filters = this._categoryFilters;
        -
        -        var elFilter = elParent.appendChild(document.createElement("span"));
        -        elFilter.className = "yui-log-filtergrp";
        -        
        -        // Append el at the end so IE 5.5 can set "type" attribute
        -        // and THEN set checked property
        -        var chkCategory = document.createElement("input");
        -        chkCategory.id = "yui-log-filter-" + sCategory + this._sName;
        -        chkCategory.className = "yui-log-filter-" + sCategory;
        -        chkCategory.type = "checkbox";
        -        chkCategory.category = sCategory;
        -        chkCategory = elFilter.appendChild(chkCategory);
        -        chkCategory.checked = true;
        -
        -        // Add this checked filter to the internal array of filters
        -        filters.push(sCategory);
        -        // Subscribe to the click event
        -        YAHOO.util.Event.addListener(chkCategory,'click',oSelf._onCheckCategory,oSelf);
        -
        -        // Create and class the text label
        -        var lblCategory = elFilter.appendChild(document.createElement("label"));
        -        lblCategory.htmlFor = chkCategory.id;
        -        lblCategory.className = sCategory;
        -        lblCategory.innerHTML = sCategory;
        -        
        -        this._filterCheckboxes[sCategory] = chkCategory;
        -    }
        -};
        -
        -/**
        - * Creates a checkbox in the LogReader footer element to filter by source.
        - *
        - * @method _createSourceCheckbox
        - * @param sSource {String} Source name.
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._createSourceCheckbox = function(sSource) {
        -    var oSelf = this;
        -
        -    if(this._elFt) {
        -        var elParent = this._elSourceFilters;
        -        var filters = this._sourceFilters;
        -
        -        var elFilter = elParent.appendChild(document.createElement("span"));
        -        elFilter.className = "yui-log-filtergrp";
        -
        -        // Append el at the end so IE 5.5 can set "type" attribute
        -        // and THEN set checked property
        -        var chkSource = document.createElement("input");
        -        chkSource.id = "yui-log-filter" + sSource + this._sName;
        -        chkSource.className = "yui-log-filter" + sSource;
        -        chkSource.type = "checkbox";
        -        chkSource.source = sSource;
        -        chkSource = elFilter.appendChild(chkSource);
        -        chkSource.checked = true;
        -
        -        // Add this checked filter to the internal array of filters
        -        filters.push(sSource);
        -        // Subscribe to the click event
        -        YAHOO.util.Event.addListener(chkSource,'click',oSelf._onCheckSource,oSelf);
        -
        -        // Create and class the text label
        -        var lblSource = elFilter.appendChild(document.createElement("label"));
        -        lblSource.htmlFor = chkSource.id;
        -        lblSource.className = sSource;
        -        lblSource.innerHTML = sSource;
        -        
        -        this._filterCheckboxes[sSource] = chkSource;
        -    }
        -};
        -
        -/**
        - * Reprints all log messages in the stack through filters.
        - *
        - * @method _filterLogs
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._filterLogs = function() {
        -    // Reprint stack with new filters
        -    if (this._elConsole !== null) {
        -        this.clearConsole();
        -        this._printToConsole(YAHOO.widget.Logger.getStack());
        -    }
        -};
        -
        -/**
        - * Sends buffer of log messages to output and clears buffer.
        - *
        - * @method _printBuffer
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._printBuffer = function() {
        -    this._timeout = null;
        -
        -    if(this._elConsole !== null) {
        -        var thresholdMax = this.thresholdMax;
        -        thresholdMax = (thresholdMax && !isNaN(thresholdMax)) ? thresholdMax : 500;
        -        if(this._consoleMsgCount < thresholdMax) {
        -            var entries = [];
        -            for (var i=0; i<this._buffer.length; i++) {
        -                entries[i] = this._buffer[i];
        -            }
        -            this._buffer = [];
        -            this._printToConsole(entries);
        -        }
        -        else {
        -            this._filterLogs();
        -        }
        -        
        -        if(!this.newestOnTop) {
        -            this._elConsole.scrollTop = this._elConsole.scrollHeight;
        -        }
        -    }
        -};
        -
        -/**
        - * Cycles through an array of log messages, and outputs each one to the console
        - * if its category has not been filtered out.
        - *
        - * @method _printToConsole
        - * @param aEntries {Object[]} Array of LogMsg objects to output to console.
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._printToConsole = function(aEntries) {
        -    // Manage the number of messages displayed in the console
        -    var entriesLen = aEntries.length;
        -    var thresholdMin = this.thresholdMin;
        -    if(isNaN(thresholdMin) || (thresholdMin > this.thresholdMax)) {
        -        thresholdMin = 0;
        -    }
        -    var entriesStartIndex = (entriesLen > thresholdMin) ? (entriesLen - thresholdMin) : 0;
        -    
        -    // Iterate through all log entries 
        -    var sourceFiltersLen = this._sourceFilters.length;
        -    var categoryFiltersLen = this._categoryFilters.length;
        -    for(var i=entriesStartIndex; i<entriesLen; i++) {
        -        // Print only the ones that filter through
        -        var okToPrint = false;
        -        var okToFilterCats = false;
        -
        -        // Get log message details
        -        var entry = aEntries[i];
        -        var source = entry.source;
        -        var category = entry.category;
        -
        -        for(var j=0; j<sourceFiltersLen; j++) {
        -            if(source == this._sourceFilters[j]) {
        -                okToFilterCats = true;
        -                break;
        -            }
        -        }
        -        if(okToFilterCats) {
        -            for(var k=0; k<categoryFiltersLen; k++) {
        -                if(category == this._categoryFilters[k]) {
        -                    okToPrint = true;
        -                    break;
        -                }
        -            }
        -        }
        -        if(okToPrint) {
        -            var output = this.formatMsg(entry);
        -            if(this.newestOnTop) {
        -                this._elConsole.innerHTML = output + this._elConsole.innerHTML;
        -            }
        -            else {
        -                this._elConsole.innerHTML += output;
        -            }
        -            this._consoleMsgCount++;
        -            this._lastTime = entry.time.getTime();
        -        }
        -    }
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private event handlers
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Handles Logger's categoryCreateEvent.
        - *
        - * @method _onCategoryCreate
        - * @param sType {String} The event.
        - * @param aArgs {Object[]} Data passed from event firer.
        - * @param oSelf {Object} The LogReader instance.
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._onCategoryCreate = function(sType, aArgs, oSelf) {
        -    var category = aArgs[0];
        -    if(oSelf._elFt) {
        -        oSelf._createCategoryCheckbox(category);
        -    }
        -};
        -
        -/**
        - * Handles Logger's sourceCreateEvent.
        - *
        - * @method _onSourceCreate
        - * @param sType {String} The event.
        - * @param aArgs {Object[]} Data passed from event firer.
        - * @param oSelf {Object} The LogReader instance.
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._onSourceCreate = function(sType, aArgs, oSelf) {
        -    var source = aArgs[0];
        -    if(oSelf._elFt) {
        -        oSelf._createSourceCheckbox(source);
        -    }
        -};
        -
        -/**
        - * Handles check events on the category filter checkboxes.
        - *
        - * @method _onCheckCategory
        - * @param v {HTMLEvent} The click event.
        - * @param oSelf {Object} The LogReader instance.
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._onCheckCategory = function(v, oSelf) {
        -    var category = this.category;
        -    if(!this.checked) {
        -        oSelf.hideCategory(category);
        -    }
        -    else {
        -        oSelf.showCategory(category);
        -    }
        -};
        -
        -/**
        - * Handles check events on the category filter checkboxes.
        - *
        - * @method _onCheckSource
        - * @param v {HTMLEvent} The click event.
        - * @param oSelf {Object} The LogReader instance.
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._onCheckSource = function(v, oSelf) {
        -    var source = this.source;
        -    if(!this.checked) {
        -        oSelf.hideSource(source);
        -    }
        -    else {
        -        oSelf.showSource(source);
        -    }
        -};
        -
        -/**
        - * Handles click events on the collapse button.
        - *
        - * @method _onClickCollapseBtn
        - * @param v {HTMLEvent} The click event.
        - * @param oSelf {Object} The LogReader instance
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._onClickCollapseBtn = function(v, oSelf) {
        -    if(!oSelf.isCollapsed) {
        -        oSelf.collapse();
        -    }
        -    else {
        -        oSelf.expand();
        -    }
        -};
        -
        -/**
        - * Handles click events on the pause button.
        - *
        - * @method _onClickPauseBtn
        - * @param v {HTMLEvent} The click event.
        - * @param oSelf {Object} The LogReader instance.
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._onClickPauseBtn = function(v, oSelf) {
        -    if(!oSelf.isPaused) {
        -        oSelf.pause();
        -    }
        -    else {
        -        oSelf.resume();
        -    }
        -};
        -
        -/**
        - * Handles click events on the clear button.
        - *
        - * @method _onClickClearBtn
        - * @param v {HTMLEvent} The click event.
        - * @param oSelf {Object} The LogReader instance.
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._onClickClearBtn = function(v, oSelf) {
        -    oSelf.clearConsole();
        -};
        -
        -/**
        - * Handles Logger's newLogEvent.
        - *
        - * @method _onNewLog
        - * @param sType {String} The event.
        - * @param aArgs {Object[]} Data passed from event firer.
        - * @param oSelf {Object} The LogReader instance.
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._onNewLog = function(sType, aArgs, oSelf) {
        -    var logEntry = aArgs[0];
        -    oSelf._buffer.push(logEntry);
        -
        -    if (oSelf.logReaderEnabled === true && oSelf._timeout === null) {
        -        oSelf._timeout = setTimeout(function(){oSelf._printBuffer();}, oSelf.outputBuffer);
        -    }
        -};
        -
        -/**
        - * Handles Logger's resetEvent.
        - *
        - * @method _onReset
        - * @param sType {String} The event.
        - * @param aArgs {Object[]} Data passed from event firer.
        - * @param oSelf {Object} The LogReader instance.
        - * @private
        - */
        -YAHOO.widget.LogReader.prototype._onReset = function(sType, aArgs, oSelf) {
        -    oSelf._filterLogs();
        -};
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/LogWriter.js.html b/www/extras/yui/docs/LogWriter.js.html deleted file mode 100644 index a169a3491..000000000 --- a/www/extras/yui/docs/LogWriter.js.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - API: logger LogWriter.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Logger Widget  2.2.2

        -

        - Yahoo! UI Library - > logger - - > LogWriter.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /****************************************************************************/
        -/****************************************************************************/
        -/****************************************************************************/
        -
        -/**
        - * The LogWriter class provides a mechanism to log messages through
        - * YAHOO.widget.Logger from a named source.
        - *
        - * @class LogWriter
        - * @constructor
        - * @param sSource {String} Source of LogWriter instance.
        - */
        -YAHOO.widget.LogWriter = function(sSource) {
        -    if(!sSource) {
        -        YAHOO.log("Could not instantiate LogWriter due to invalid source.",
        -            "error", "LogWriter");
        -        return;
        -    }
        -    this._source = sSource;
        - };
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        - /**
        - * Public accessor to the unique name of the LogWriter instance.
        - *
        - * @method toString
        - * @return {String} Unique name of the LogWriter instance.
        - */
        -YAHOO.widget.LogWriter.prototype.toString = function() {
        -    return "LogWriter " + this._sSource;
        -};
        -
        -/**
        - * Logs a message attached to the source of the LogWriter.
        - *
        - * @method log
        - * @param sMsg {String} The log message.
        - * @param sCategory {String} Category name.
        - */
        -YAHOO.widget.LogWriter.prototype.log = function(sMsg, sCategory) {
        -    YAHOO.widget.Logger.log(sMsg, sCategory, this._source);
        -};
        -
        -/**
        - * Public accessor to get the source name.
        - *
        - * @method getSource
        - * @return {String} The LogWriter source.
        - */
        -YAHOO.widget.LogWriter.prototype.getSource = function() {
        -    return this._sSource;
        -};
        -
        -/**
        - * Public accessor to set the source name.
        - *
        - * @method setSource
        - * @param sSource {String} Source of LogWriter instance.
        - */
        -YAHOO.widget.LogWriter.prototype.setSource = function(sSource) {
        -    if(!sSource) {
        -        YAHOO.log("Could not set source due to invalid source.", "error", this.toString());
        -        return;
        -    }
        -    else {
        -        this._sSource = sSource;
        -    }
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Source of the LogWriter instance.
        - *
        - * @property _source
        - * @type String
        - * @private
        - */
        -YAHOO.widget.LogWriter.prototype._source = null;
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Logger.js.html b/www/extras/yui/docs/Logger.js.html deleted file mode 100644 index 525bcb9fc..000000000 --- a/www/extras/yui/docs/Logger.js.html +++ /dev/null @@ -1,547 +0,0 @@ - - - - API: logger Logger.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Logger Widget  2.2.2

        -

        - Yahoo! UI Library - > logger - - > Logger.js (source view) -

        -
        - -
        -
        -
        - -
        -
         /**
        - * The Logger widget provides a simple way to read or write log messages in
        - * JavaScript code. Integration with the YUI Library's debug builds allow
        - * implementers to access under-the-hood events, errors, and debugging messages.
        - * Output may be read through a LogReader console and/or output to a browser
        - * console.
        - *
        - * @module logger
        - * @requires yahoo, event, dom
        - * @optional dragdrop
        - * @namespace YAHOO.widget
        - * @title Logger Widget
        - */
        -
        -/****************************************************************************/
        -/****************************************************************************/
        -/****************************************************************************/
        -
        -/**
        - * The singleton Logger class provides core log management functionality. Saves
        - * logs written through the global YAHOO.log function or written by a LogWriter
        - * instance. Provides access to logs for reading by a LogReader instance or
        - * native browser console such as the Firebug extension to Firefox or Safari's
        - * JavaScript console through integration with the console.log() method.
        - *
        - * @class Logger
        - * @static
        - */
        -YAHOO.widget.Logger = {
        -    // Initialize properties
        -    loggerEnabled: true,
        -    _browserConsoleEnabled: false,
        -    categories: ["info","warn","error","time","window"],
        -    sources: ["global"],
        -    _stack: [], // holds all log msgs
        -    maxStackEntries: 2500,
        -    _startTime: new Date().getTime(), // static start timestamp
        -    _lastTime: null // timestamp of last logged message
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public properties
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -/**
        - * True if Logger is enabled, false otherwise.
        - *
        - * @property loggerEnabled
        - * @type Boolean
        - * @static
        - * @default true
        - */
        -
        -/**
        - * Array of categories.
        - *
        - * @property categories
        - * @type String[]
        - * @static
        - * @default ["info","warn","error","time","window"]
        - */
        -
        -/**
        - * Array of sources.
        - *
        - * @property sources
        - * @type String[]
        - * @static
        - * @default ["global"]
        - */
        -
        -/**
        - * Upper limit on size of internal stack.
        - *
        - * @property maxStackEntries
        - * @type Number
        - * @static
        - * @default 2500
        - */
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private properties
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -/**
        - * Internal property to track whether output to browser console is enabled.
        - *
        - * @property _browserConsoleEnabled
        - * @type Boolean
        - * @static
        - * @default false
        - * @private
        - */
        -
        -/**
        - * Array to hold all log messages.
        - *
        - * @property _stack
        - * @type Array
        - * @static
        - * @private
        - */
        -/**
        - * Static timestamp of Logger initialization.
        - *
        - * @property _startTime
        - * @type Date
        - * @static
        - * @private
        - */
        -/**
        - * Timestamp of last logged message.
        - *
        - * @property _lastTime
        - * @type Date
        - * @static
        - * @private
        - */
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -/**
        - * Saves a log message to the stack and fires newLogEvent. If the log message is
        - * assigned to an unknown category, creates a new category. If the log message is
        - * from an unknown source, creates a new source.  If browser console is enabled,
        - * outputs the log message to browser console.
        - *
        - * @method log
        - * @param sMsg {String} The log message.
        - * @param sCategory {String} Category of log message, or null.
        - * @param sSource {String} Source of LogWriter, or null if global.
        - */
        -YAHOO.widget.Logger.log = function(sMsg, sCategory, sSource) {
        -    if(this.loggerEnabled) {
        -        if(!sCategory) {
        -            sCategory = "info"; // default category
        -        }
        -        else {
        -            sCategory = sCategory.toLocaleLowerCase();
        -            if(this._isNewCategory(sCategory)) {
        -                this._createNewCategory(sCategory);
        -            }
        -        }
        -        var sClass = "global"; // default source
        -        var sDetail = null;
        -        if(sSource) {
        -            var spaceIndex = sSource.indexOf(" ");
        -            if(spaceIndex > 0) {
        -                // Substring until first space
        -                sClass = sSource.substring(0,spaceIndex);
        -                // The rest of the source
        -                sDetail = sSource.substring(spaceIndex,sSource.length);
        -            }
        -            else {
        -                sClass = sSource;
        -            }
        -            if(this._isNewSource(sClass)) {
        -                this._createNewSource(sClass);
        -            }
        -        }
        -
        -        var timestamp = new Date();
        -        var logEntry = new YAHOO.widget.LogMsg({
        -            msg: sMsg,
        -            time: timestamp,
        -            category: sCategory,
        -            source: sClass,
        -            sourceDetail: sDetail
        -        });
        -
        -        var stack = this._stack;
        -        var maxStackEntries = this.maxStackEntries;
        -        if(maxStackEntries && !isNaN(maxStackEntries) &&
        -            (stack.length >= maxStackEntries)) {
        -            stack.shift();
        -        }
        -        stack.push(logEntry);
        -        this.newLogEvent.fire(logEntry);
        -
        -        if(this._browserConsoleEnabled) {
        -            this._printToBrowserConsole(logEntry);
        -        }
        -        return true;
        -    }
        -    else {
        -        return false;
        -    }
        -};
        -
        -/**
        - * Resets internal stack and startTime, enables Logger, and fires logResetEvent.
        - *
        - * @method reset
        - */
        -YAHOO.widget.Logger.reset = function() {
        -    this._stack = [];
        -    this._startTime = new Date().getTime();
        -    this.loggerEnabled = true;
        -    this.log("Logger reset");
        -    this.logResetEvent.fire();
        -};
        -
        -/**
        - * Public accessor to internal stack of log message objects.
        - *
        - * @method getStack
        - * @return {Object[]} Array of log message objects.
        - */
        -YAHOO.widget.Logger.getStack = function() {
        -    return this._stack;
        -};
        -
        -/**
        - * Public accessor to internal start time.
        - *
        - * @method getStartTime
        - * @return {Date} Internal date of when Logger singleton was initialized.
        - */
        -YAHOO.widget.Logger.getStartTime = function() {
        -    return this._startTime;
        -};
        -
        -/**
        - * Disables output to the browser's global console.log() function, which is used
        - * by the Firebug extension to Firefox as well as Safari.
        - *
        - * @method disableBrowserConsole
        - */
        -YAHOO.widget.Logger.disableBrowserConsole = function() {
        -    YAHOO.log("Logger output to the function console.log() has been disabled.");
        -    this._browserConsoleEnabled = false;
        -};
        -
        -/**
        - * Enables output to the browser's global console.log() function, which is used
        - * by the Firebug extension to Firefox as well as Safari.
        - *
        - * @method enableBrowserConsole
        - */
        -YAHOO.widget.Logger.enableBrowserConsole = function() {
        -    this._browserConsoleEnabled = true;
        -    YAHOO.log("Logger output to the function console.log() has been enabled.");
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public events
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        - /**
        - * Fired when a new category has been created.
        - *
        - * @event categoryCreateEvent
        - * @param sCategory {String} Category name.
        - */
        -YAHOO.widget.Logger.categoryCreateEvent =
        -    new YAHOO.util.CustomEvent("categoryCreate", this, true);
        -
        - /**
        - * Fired when a new source has been named.
        - *
        - * @event sourceCreateEvent
        - * @param sSource {String} Source name.
        - */
        -YAHOO.widget.Logger.sourceCreateEvent =
        -    new YAHOO.util.CustomEvent("sourceCreate", this, true);
        -
        - /**
        - * Fired when a new log message has been created.
        - *
        - * @event newLogEvent
        - * @param sMsg {String} Log message.
        - */
        -YAHOO.widget.Logger.newLogEvent = new YAHOO.util.CustomEvent("newLog", this, true);
        -
        -/**
        - * Fired when the Logger has been reset has been created.
        - *
        - * @event logResetEvent
        - */
        -YAHOO.widget.Logger.logResetEvent = new YAHOO.util.CustomEvent("logReset", this, true);
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Creates a new category of log messages and fires categoryCreateEvent.
        - *
        - * @method _createNewCategory
        - * @param sCategory {String} Category name.
        - * @private
        - */
        -YAHOO.widget.Logger._createNewCategory = function(sCategory) {
        -    this.categories.push(sCategory);
        -    this.categoryCreateEvent.fire(sCategory);
        -};
        -
        -/**
        - * Checks to see if a category has already been created.
        - *
        - * @method _isNewCategory
        - * @param sCategory {String} Category name.
        - * @return {Boolean} Returns true if category is unknown, else returns false.
        - * @private
        - */
        -YAHOO.widget.Logger._isNewCategory = function(sCategory) {
        -    for(var i=0; i < this.categories.length; i++) {
        -        if(sCategory == this.categories[i]) {
        -            return false;
        -        }
        -    }
        -    return true;
        -};
        -
        -/**
        - * Creates a new source of log messages and fires sourceCreateEvent.
        - *
        - * @method _createNewSource
        - * @param sSource {String} Source name.
        - * @private
        - */
        -YAHOO.widget.Logger._createNewSource = function(sSource) {
        -    this.sources.push(sSource);
        -    this.sourceCreateEvent.fire(sSource);
        -};
        -
        -/**
        - * Checks to see if a source already exists.
        - *
        - * @method _isNewSource
        - * @param sSource {String} Source name.
        - * @return {Boolean} Returns true if source is unknown, else returns false.
        - * @private
        - */
        -YAHOO.widget.Logger._isNewSource = function(sSource) {
        -    if(sSource) {
        -        for(var i=0; i < this.sources.length; i++) {
        -            if(sSource == this.sources[i]) {
        -                return false;
        -            }
        -        }
        -        return true;
        -    }
        -};
        -
        -/**
        - * Outputs a log message to global console.log() function.
        - *
        - * @method _printToBrowserConsole
        - * @param oEntry {Object} Log entry object.
        - * @private
        - */
        -YAHOO.widget.Logger._printToBrowserConsole = function(oEntry) {
        -    if(window.console && console.log) {
        -        var category = oEntry.category;
        -        var label = oEntry.category.substring(0,4).toUpperCase();
        -
        -        var time = oEntry.time;
        -        if (time.toLocaleTimeString) {
        -            var localTime  = time.toLocaleTimeString();
        -        }
        -        else {
        -            localTime = time.toString();
        -        }
        -
        -        var msecs = time.getTime();
        -        var elapsedTime = (YAHOO.widget.Logger._lastTime) ?
        -            (msecs - YAHOO.widget.Logger._lastTime) : 0;
        -        YAHOO.widget.Logger._lastTime = msecs;
        -
        -        var output =
        -            localTime + " (" +
        -            elapsedTime + "ms): " +
        -            oEntry.source + ": " +
        -            oEntry.msg;
        -
        -        console.log(output);
        -    }
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private event handlers
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Handles logging of messages due to window error events.
        - *
        - * @method _onWindowError
        - * @param sMsg {String} The error message.
        - * @param sUrl {String} URL of the error.
        - * @param sLine {String} Line number of the error.
        - * @private
        - */
        -YAHOO.widget.Logger._onWindowError = function(sMsg,sUrl,sLine) {
        -    // Logger is not in scope of this event handler
        -    try {
        -        YAHOO.widget.Logger.log(sMsg+' ('+sUrl+', line '+sLine+')', "window");
        -        if(YAHOO.widget.Logger._origOnWindowError) {
        -            YAHOO.widget.Logger._origOnWindowError();
        -        }
        -    }
        -    catch(e) {
        -        return false;
        -    }
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Enable handling of native JavaScript errors
        -// NB: Not all browsers support the window.onerror event
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -if(window.onerror) {
        -    // Save any previously defined handler to call
        -    YAHOO.widget.Logger._origOnWindowError = window.onerror;
        -}
        -window.onerror = YAHOO.widget.Logger._onWindowError;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// First log
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -YAHOO.widget.Logger.log("Logger initialized");
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/MenuNode.js.html b/www/extras/yui/docs/MenuNode.js.html deleted file mode 100644 index bf906d312..000000000 --- a/www/extras/yui/docs/MenuNode.js.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - API: treeview MenuNode.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - - > MenuNode.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * A menu-specific implementation that differs from TextNode in that only 
        - * one sibling can be expanded at a time.
        - * @namespace YAHOO.widget
        - * @class MenuNode
        - * @extends YAHOO.widget.TextNode
        - * @param oData {object} a string or object containing the data that will
        - * be used to render this node
        - * @param oParent {YAHOO.widget.Node} this node's parent node
        - * @param expanded {boolean} the initial expanded/collapsed state
        - * @constructor
        - */
        -YAHOO.widget.MenuNode = function(oData, oParent, expanded) {
        -	if (oData) { 
        -		this.init(oData, oParent, expanded);
        -		this.setUpLabel(oData);
        -	}
        -
        -    /*
        -     * Menus usually allow only one branch to be open at a time.
        -     */
        -	this.multiExpand = false;
        -
        -    this.logger     = new YAHOO.widget.LogWriter(this.toString());
        -
        -};
        -
        -YAHOO.extend(YAHOO.widget.MenuNode, YAHOO.widget.TextNode, {
        -
        -    toString: function() { 
        -        return "MenuNode (" + this.index + ") " + this.label;
        -    }
        -
        -});
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Module.js.html b/www/extras/yui/docs/Module.js.html deleted file mode 100644 index dbe0fcb1f..000000000 --- a/www/extras/yui/docs/Module.js.html +++ /dev/null @@ -1,968 +0,0 @@ - - - - API: container Module.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - - > Module.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -*  The Container family of components is designed to enable developers to create different kinds of content-containing modules on the web. Module and Overlay are the most basic containers, and they can be used directly or extended to build custom containers. Also part of the Container family are four UI controls that extend Module and Overlay: Tooltip, Panel, Dialog, and SimpleDialog.
        -* @module container
        -* @title Container
        -* @requires yahoo,dom,event,dragdrop,animation
        -*/
        -
        -/**
        -* Module is a JavaScript representation of the Standard Module Format. Standard Module Format is a simple standard for markup containers where child nodes representing the header, body, and footer of the content are denoted using the CSS classes "hd", "bd", and "ft" respectively. Module is the base class for all other classes in the YUI Container package.
        -* @namespace YAHOO.widget
        -* @class Module
        -* @constructor
        -* @param {String} el			The element ID representing the Module <em>OR</em>
        -* @param {HTMLElement} el		The element representing the Module
        -* @param {Object} userConfig	The configuration Object literal containing the configuration that should be set for this module. See configuration documentation for more details.
        -*/
        -YAHOO.widget.Module = function(el, userConfig) {
        -	if (el) {
        -		this.init(el, userConfig);
        -	} else {
        -		YAHOO.log("No element or element ID specified for Module instantiation", "error");
        -	}
        -};
        -
        -/**
        -* Constant representing the prefix path to use for non-secure images
        -* @property YAHOO.widget.Module.IMG_ROOT
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Module.IMG_ROOT = null;
        -
        -/**
        -* Constant representing the prefix path to use for securely served images
        -* @property YAHOO.widget.Module.IMG_ROOT_SSL
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Module.IMG_ROOT_SSL = null;
        -
        -/**
        -* Constant for the default CSS class name that represents a Module
        -* @property YAHOO.widget.Module.CSS_MODULE
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Module.CSS_MODULE = "yui-module";
        -
        -/**
        -* Constant representing the module header
        -* @property YAHOO.widget.Module.CSS_HEADER
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Module.CSS_HEADER = "hd";
        -
        -/**
        -* Constant representing the module body
        -* @property YAHOO.widget.Module.CSS_BODY
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Module.CSS_BODY = "bd";
        -
        -/**
        -* Constant representing the module footer
        -* @property YAHOO.widget.Module.CSS_FOOTER
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Module.CSS_FOOTER = "ft";
        -
        -/**
        -* Constant representing the url for the "src" attribute of the iframe used to monitor changes to the browser's base font size
        -* @property YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL = "javascript:false;";
        -
        -/**
        -* Singleton CustomEvent fired when the font size is changed in the browser.
        -* Opera's "zoom" functionality currently does not support text size detection.
        -* @event YAHOO.widget.Module.textResizeEvent
        -*/
        -YAHOO.widget.Module.textResizeEvent = new YAHOO.util.CustomEvent("textResize");
        -
        -/**
        -* Constant representing the name of the Module's events
        -* @property YAHOO.widget.Module._EVENT_TYPES
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.Module._EVENT_TYPES = {
        -
        -    "BEFORE_INIT": "beforeInit",
        -    "INIT": "init",
        -    "APPEND": "append",
        -    "BEFORE_RENDER": "beforeRender",
        -    "RENDER": "render",
        -    "CHANGE_HEADER": "changeHeader",
        -    "CHANGE_BODY": "changeBody",
        -    "CHANGE_FOOTER": "changeFooter",
        -    "CHANGE_CONTENT": "changeContent",
        -    "DESTORY": "destroy",
        -    "BEFORE_SHOW": "beforeShow",
        -    "SHOW": "show",
        -    "BEFORE_HIDE": "beforeHide",
        -    "HIDE": "hide"
        -
        -};
        -    
        -/**
        -* Constant representing the Module's configuration properties
        -* @property YAHOO.widget.Module._DEFAULT_CONFIG
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.Module._DEFAULT_CONFIG = {
        -
        -    "VISIBLE": { 
        -        key: "visible", 
        -        value: true, 
        -        validator: YAHOO.lang.isBoolean 
        -    },
        -
        -    "EFFECT": { 
        -        key: "effect", 
        -        suppressEvent:true, 
        -        supercedes:["visible"] 
        -    },
        -
        -    "MONITOR_RESIZE": { 
        -        key: "monitorresize", 
        -        value:true  
        -    }
        -
        -};
        -
        -
        -YAHOO.widget.Module.prototype = {
        -
        -	/**
        -	* The class's constructor function
        -	* @property contructor
        -	* @type Function
        -	*/
        -	constructor : YAHOO.widget.Module,
        -
        -	/**
        -	* The main module element that contains the header, body, and footer
        -	* @property element
        -	* @type HTMLElement
        -	*/
        -	element : null,
        -
        -	/**
        -	* The header element, denoted with CSS class "hd"
        -	* @property header
        -	* @type HTMLElement
        -	*/
        -	header : null,
        -
        -	/**
        -	* The body element, denoted with CSS class "bd"
        -	* @property body
        -	* @type HTMLElement
        -	*/
        -	body : null,
        -
        -	/**
        -	* The footer element, denoted with CSS class "ft"
        -	* @property footer
        -	* @type HTMLElement
        -	*/
        -	footer : null,
        -
        -	/**
        -	* The id of the element
        -	* @property id
        -	* @type String
        -	*/
        -	id : null,
        -
        -	/**
        -	* The String representing the image root
        -	* @property imageRoot
        -	* @type String
        -	*/
        -	imageRoot : YAHOO.widget.Module.IMG_ROOT,
        -
        -	/**
        -	* Initializes the custom events for Module which are fired automatically at appropriate times by the Module class.
        -	* @method initEvents
        -	*/
        -	initEvents : function() {
        -
        -        var EVENT_TYPES = YAHOO.widget.Module._EVENT_TYPES;
        -
        -		/**
        -		* CustomEvent fired prior to class initalization.
        -		* @event beforeInitEvent
        -		* @param {class} classRef	class reference of the initializing class, such as this.beforeInitEvent.fire(YAHOO.widget.Module)
        -		*/
        -		this.beforeInitEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.BEFORE_INIT, this);
        -
        -		/**
        -		* CustomEvent fired after class initalization.
        -		* @event initEvent
        -		* @param {class} classRef	class reference of the initializing class, such as this.beforeInitEvent.fire(YAHOO.widget.Module)
        -		*/		
        -		this.initEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.INIT, this);
        -
        -		/**
        -		* CustomEvent fired when the Module is appended to the DOM
        -		* @event appendEvent
        -		*/
        -		this.appendEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.APPEND, this);
        -
        -		/**
        -		* CustomEvent fired before the Module is rendered
        -		* @event beforeRenderEvent
        -		*/
        -		this.beforeRenderEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.BEFORE_RENDER, this);
        -
        -		/**
        -		* CustomEvent fired after the Module is rendered
        -		* @event renderEvent
        -		*/
        -		this.renderEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.RENDER, this);
        -	
        -		/**
        -		* CustomEvent fired when the header content of the Module is modified
        -		* @event changeHeaderEvent
        -		* @param {String/HTMLElement} content	String/element representing the new header content
        -		*/
        -		this.changeHeaderEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.CHANGE_HEADER, this);
        -		
        -		/**
        -		* CustomEvent fired when the body content of the Module is modified
        -		* @event changeBodyEvent
        -		* @param {String/HTMLElement} content	String/element representing the new body content
        -		*/		
        -		this.changeBodyEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.CHANGE_BODY, this);
        -		
        -		/**
        -		* CustomEvent fired when the footer content of the Module is modified
        -		* @event changeFooterEvent
        -		* @param {String/HTMLElement} content	String/element representing the new footer content
        -		*/
        -		this.changeFooterEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.CHANGE_FOOTER, this);
        -
        -		/**
        -		* CustomEvent fired when the content of the Module is modified
        -		* @event changeContentEvent
        -		*/
        -		this.changeContentEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.CHANGE_CONTENT, this);
        -
        -		/**
        -		* CustomEvent fired when the Module is destroyed
        -		* @event destroyEvent
        -		*/
        -		this.destroyEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.DESTORY, this);
        -		
        -		/**
        -		* CustomEvent fired before the Module is shown
        -		* @event beforeShowEvent
        -		*/
        -		this.beforeShowEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.BEFORE_SHOW, this);
        -
        -		/**
        -		* CustomEvent fired after the Module is shown
        -		* @event showEvent
        -		*/
        -		this.showEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.SHOW, this);
        -
        -		/**
        -		* CustomEvent fired before the Module is hidden
        -		* @event beforeHideEvent
        -		*/
        -		this.beforeHideEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.BEFORE_HIDE, this);
        -
        -		/**
        -		* CustomEvent fired after the Module is hidden
        -		* @event hideEvent
        -		*/
        -		this.hideEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.HIDE, this);
        -	}, 
        -
        -	/**
        -	* String representing the current user-agent platform
        -	* @property platform
        -	* @type String
        -	*/
        -	platform : function() {
        -					var ua = navigator.userAgent.toLowerCase();
        -					if (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1) {
        -						return "windows";
        -					} else if (ua.indexOf("macintosh") != -1) {
        -						return "mac";
        -					} else {
        -						return false;
        -					}
        -				}(),
        -
        -	/**
        -	* String representing the current user-agent browser
        -	* @property browser
        -	* @type String
        -	*/
        -	browser : function() {
        -			var ua = navigator.userAgent.toLowerCase();
        -				  if (ua.indexOf('opera')!=-1) { // Opera (check first in case of spoof)
        -					 return 'opera';
        -				  } else if (ua.indexOf('msie 7')!=-1) { // IE7
        -					 return 'ie7';
        -				  } else if (ua.indexOf('msie') !=-1) { // IE
        -					 return 'ie';
        -				  } else if (ua.indexOf('safari')!=-1) { // Safari (check before Gecko because it includes "like Gecko")
        -					 return 'safari';
        -				  } else if (ua.indexOf('gecko') != -1) { // Gecko
        -					 return 'gecko';
        -				  } else {
        -					 return false;
        -				  }
        -			}(),
        -
        -	/**
        -	* Boolean representing whether or not the current browsing context is secure (https)
        -	* @property isSecure
        -	* @type Boolean
        -	*/
        -	isSecure : function() {
        -		if (window.location.href.toLowerCase().indexOf("https") === 0) {
        -			return true;
        -		} else {
        -			return false;
        -		}
        -	}(),
        -
        -	/**
        -	* Initializes the custom events for Module which are fired automatically at appropriate times by the Module class.
        -	*/
        -	initDefaultConfig : function() {
        -		// Add properties //
        -
        -    	var DEFAULT_CONFIG = YAHOO.widget.Module._DEFAULT_CONFIG;
        -
        -		/**
        -		* Specifies whether the Module is visible on the page.
        -		* @config visible
        -		* @type Boolean
        -		* @default true
        -		*/
        -		this.cfg.addProperty(
        -		          DEFAULT_CONFIG.VISIBLE.key, 
        -		          {
        -		              handler: this.configVisible, 
        -		              value: DEFAULT_CONFIG.VISIBLE.value, 
        -		              validator: DEFAULT_CONFIG.VISIBLE.validator
        -                  }
        -              );
        -
        -		/**
        -		* Object or array of objects representing the ContainerEffect classes that are active for animating the container.
        -		* @config effect
        -		* @type Object
        -		* @default null
        -		*/
        -		this.cfg.addProperty(
        -                    DEFAULT_CONFIG.EFFECT.key, 
        -                    {
        -                        suppressEvent: DEFAULT_CONFIG.EFFECT.suppressEvent, 
        -                        supercedes: DEFAULT_CONFIG.EFFECT.supercedes
        -                    }
        -                );
        -
        -		/**
        -		* Specifies whether to create a special proxy iframe to monitor for user font resizing in the document
        -		* @config monitorresize
        -		* @type Boolean
        -		* @default true
        -		*/
        -		this.cfg.addProperty(
        -		          DEFAULT_CONFIG.MONITOR_RESIZE.key,
        -		          {
        -		              handler: this.configMonitorResize,
        -		              value: DEFAULT_CONFIG.MONITOR_RESIZE.value
        -                  }
        -              );
        -		
        -	},
        -
        -	/**
        -	* The Module class's initialization method, which is executed for Module and all of its subclasses. This method is automatically called by the constructor, and  sets up all DOM references for pre-existing markup, and creates required markup if it is not already present.
        -	* @method init
        -	* @param {String}	el	The element ID representing the Module <em>OR</em>
        -	* @param {HTMLElement}	el	The element representing the Module
        -	* @param {Object}	userConfig	The configuration Object literal containing the configuration that should be set for this module. See configuration documentation for more details.
        -	*/
        -	init : function(el, userConfig) {
        -
        -		this.initEvents();
        -
        -		this.beforeInitEvent.fire(YAHOO.widget.Module);
        -
        -		/**
        -		* The Module's Config object used for monitoring configuration properties.
        -		* @property cfg
        -		* @type YAHOO.util.Config
        -		*/
        -		this.cfg = new YAHOO.util.Config(this);
        -
        -		if (this.isSecure) {
        -			this.imageRoot = YAHOO.widget.Module.IMG_ROOT_SSL;
        -		}
        -
        -		if (typeof el == "string") {
        -			var elId = el;
        -
        -			el = document.getElementById(el);
        -			if (! el) {
        -				el = document.createElement("div");
        -				el.id = elId;
        -			}
        -		}
        -
        -		this.element = el;
        -
        -		if (el.id) {
        -			this.id = el.id;
        -		}
        -
        -		var childNodes = this.element.childNodes;
        -
        -		if (childNodes) {
        -			for (var i=0;i<childNodes.length;i++) {
        -				var child = childNodes[i];
        -				switch (child.className) {
        -					case YAHOO.widget.Module.CSS_HEADER:
        -						this.header = child;
        -						break;
        -					case YAHOO.widget.Module.CSS_BODY:
        -						this.body = child;
        -						break;
        -					case YAHOO.widget.Module.CSS_FOOTER:
        -						this.footer = child;
        -						break;
        -				}
        -			}
        -		}
        -
        -		this.initDefaultConfig();
        -
        -		YAHOO.util.Dom.addClass(this.element, YAHOO.widget.Module.CSS_MODULE);
        -
        -		if (userConfig) {
        -			this.cfg.applyConfig(userConfig, true);
        -		}
        -
        -		// Subscribe to the fireQueue() method of Config so that any queued configuration changes are
        -		// excecuted upon render of the Module
        -		if (! YAHOO.util.Config.alreadySubscribed(this.renderEvent, this.cfg.fireQueue, this.cfg)) {
        -			this.renderEvent.subscribe(this.cfg.fireQueue, this.cfg, true);
        -		}
        -
        -		this.initEvent.fire(YAHOO.widget.Module);
        -	},
        -
        -	/**
        -	* Initialized an empty IFRAME that is placed out of the visible area that can be used to detect text resize.
        -	* @method initResizeMonitor
        -	*/
        -	initResizeMonitor : function() {
        -
        -        if(this.browser != "opera") {
        -
        -            var resizeMonitor = document.getElementById("_yuiResizeMonitor");
        -
        -            if (! resizeMonitor) {
        -
        -                resizeMonitor = document.createElement("iframe");
        -
        -                var bIE = (this.browser.indexOf("ie") === 0);
        -
        -                if(this.isSecure && YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL && bIE) {
        -                   resizeMonitor.src = YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL;
        -                }
        -
        -                resizeMonitor.id = "_yuiResizeMonitor";
        -                resizeMonitor.style.visibility = "hidden";
        -
        -                document.body.appendChild(resizeMonitor);
        -
        -                resizeMonitor.style.width = "10em";
        -                resizeMonitor.style.height = "10em";
        -                resizeMonitor.style.position = "absolute";
        -
        -                var nLeft = -1 * resizeMonitor.offsetWidth;
        -                var nTop = -1 * resizeMonitor.offsetHeight;
        -
        -                resizeMonitor.style.top = nTop + "px";
        -                resizeMonitor.style.left = nLeft + "px";
        -                resizeMonitor.style.borderStyle = "none";
        -                resizeMonitor.style.borderWidth = "0";
        -                YAHOO.util.Dom.setStyle(resizeMonitor, "opacity", "0");
        -
        -                resizeMonitor.style.visibility = "visible";
        -
        -                if(!bIE) {
        -
        -                    var doc = resizeMonitor.contentWindow.document;
        -
        -                    doc.open();
        -                    doc.close();
        -
        -                }
        -            }
        -
        -			var fireTextResize = function() {
        -				YAHOO.widget.Module.textResizeEvent.fire();
        -			};
        -
        -            if(resizeMonitor && resizeMonitor.contentWindow) {
        -                this.resizeMonitor = resizeMonitor;
        -
        -				YAHOO.widget.Module.textResizeEvent.subscribe(this.onDomResize, this, true);
        -
        -				if (! YAHOO.widget.Module.textResizeInitialized) {
        -					if (! YAHOO.util.Event.addListener(this.resizeMonitor.contentWindow, "resize", fireTextResize)) {
        -						// This will fail in IE if document.domain has changed, so we must change the listener to
        -						// use the resizeMonitor element instead
        -						YAHOO.util.Event.addListener(this.resizeMonitor, "resize", fireTextResize);
        -					}
        -					YAHOO.widget.Module.textResizeInitialized = true;
        -				}
        -            }
        -
        -        }
        -
        -	},
        -
        -	/**
        -	* Event handler fired when the resize monitor element is resized.
        -	* @method onDomResize
        -	* @param {DOMEvent} e	The DOM resize event
        -	* @param {Object} obj	The scope object passed to the handler
        -	*/
        -	onDomResize : function(e, obj) {
        -
        -        var nLeft = -1 * this.resizeMonitor.offsetWidth,
        -            nTop = -1 * this.resizeMonitor.offsetHeight;
        -
        -        this.resizeMonitor.style.top = nTop + "px";
        -        this.resizeMonitor.style.left =  nLeft + "px";
        -
        -	},
        -
        -	/**
        -	* Sets the Module's header content to the HTML specified, or appends the passed element to the header. If no header is present, one will be automatically created.
        -	* @method setHeader
        -	* @param {String}	headerContent	The HTML used to set the header <em>OR</em>
        -	* @param {HTMLElement}	headerContent	The HTMLElement to append to the header
        -	*/
        -	setHeader : function(headerContent) {
        -		if (! this.header) {
        -			this.header = document.createElement("div");
        -			this.header.className = YAHOO.widget.Module.CSS_HEADER;
        -		}
        -
        -		if (typeof headerContent == "string") {
        -			this.header.innerHTML = headerContent;
        -		} else {
        -			this.header.innerHTML = "";
        -			this.header.appendChild(headerContent);
        -		}
        -
        -		this.changeHeaderEvent.fire(headerContent);
        -		this.changeContentEvent.fire();
        -	},
        -
        -	/**
        -	* Appends the passed element to the header. If no header is present, one will be automatically created.
        -	* @method appendToHeader
        -	* @param {HTMLElement}	element	The element to append to the header
        -	*/
        -	appendToHeader : function(element) {
        -		if (! this.header) {
        -			this.header = document.createElement("div");
        -			this.header.className = YAHOO.widget.Module.CSS_HEADER;
        -		}
        -
        -		this.header.appendChild(element);
        -		this.changeHeaderEvent.fire(element);
        -		this.changeContentEvent.fire();
        -	},
        -
        -	/**
        -	* Sets the Module's body content to the HTML specified, or appends the passed element to the body. If no body is present, one will be automatically created.
        -	* @method setBody
        -	* @param {String}	bodyContent	The HTML used to set the body <em>OR</em>
        -	* @param {HTMLElement}	bodyContent	The HTMLElement to append to the body
        -	*/
        -	setBody : function(bodyContent) {
        -		if (! this.body) {
        -			this.body = document.createElement("div");
        -			this.body.className = YAHOO.widget.Module.CSS_BODY;
        -		}
        -
        -		if (typeof bodyContent == "string")
        -		{
        -			this.body.innerHTML = bodyContent;
        -		} else {
        -			this.body.innerHTML = "";
        -			this.body.appendChild(bodyContent);
        -		}
        -
        -		this.changeBodyEvent.fire(bodyContent);
        -		this.changeContentEvent.fire();
        -	},
        -
        -	/**
        -	* Appends the passed element to the body. If no body is present, one will be automatically created.
        -	* @method appendToBody
        -	* @param {HTMLElement}	element	The element to append to the body
        -	*/
        -	appendToBody : function(element) {
        -		if (! this.body) {
        -			this.body = document.createElement("div");
        -			this.body.className = YAHOO.widget.Module.CSS_BODY;
        -		}
        -
        -		this.body.appendChild(element);
        -		this.changeBodyEvent.fire(element);
        -		this.changeContentEvent.fire();
        -	},
        -
        -	/**
        -	* Sets the Module's footer content to the HTML specified, or appends the passed element to the footer. If no footer is present, one will be automatically created.
        -	* @method setFooter
        -	* @param {String}	footerContent	The HTML used to set the footer <em>OR</em>
        -	* @param {HTMLElement}	footerContent	The HTMLElement to append to the footer
        -	*/
        -	setFooter : function(footerContent) {
        -		if (! this.footer) {
        -			this.footer = document.createElement("div");
        -			this.footer.className = YAHOO.widget.Module.CSS_FOOTER;
        -		}
        -
        -		if (typeof footerContent == "string") {
        -			this.footer.innerHTML = footerContent;
        -		} else {
        -			this.footer.innerHTML = "";
        -			this.footer.appendChild(footerContent);
        -		}
        -
        -		this.changeFooterEvent.fire(footerContent);
        -		this.changeContentEvent.fire();
        -	},
        -
        -	/**
        -	* Appends the passed element to the footer. If no footer is present, one will be automatically created.
        -	* @method appendToFooter
        -	* @param {HTMLElement}	element	The element to append to the footer
        -	*/
        -	appendToFooter : function(element) {
        -		if (! this.footer) {
        -			this.footer = document.createElement("div");
        -			this.footer.className = YAHOO.widget.Module.CSS_FOOTER;
        -		}
        -
        -		this.footer.appendChild(element);
        -		this.changeFooterEvent.fire(element);
        -		this.changeContentEvent.fire();
        -	},
        -
        -	/**
        -	* Renders the Module by inserting the elements that are not already in the main Module into their correct places. Optionally appends the Module to the specified node prior to the render's execution. NOTE: For Modules without existing markup, the appendToNode argument is REQUIRED. If this argument is ommitted and the current element is not present in the document, the function will return false, indicating that the render was a failure.
        -	* @method render
        -	* @param {String}	appendToNode	The element id to which the Module should be appended to prior to rendering <em>OR</em>
        -	* @param {HTMLElement}	appendToNode	The element to which the Module should be appended to prior to rendering
        -	* @param {HTMLElement}	moduleElement	OPTIONAL. The element that represents the actual Standard Module container.
        -	* @return {Boolean} Success or failure of the render
        -	*/
        -	render : function(appendToNode, moduleElement) {
        -		this.beforeRenderEvent.fire();
        -
        -		if (! moduleElement) {
        -			moduleElement = this.element;
        -		}
        -
        -		var me = this;
        -		var appendTo = function(element) {
        -			if (typeof element == "string") {
        -				element = document.getElementById(element);
        -			}
        -
        -			if (element) {
        -				element.appendChild(me.element);
        -				me.appendEvent.fire();
        -			}
        -		};
        -
        -		if (appendToNode) {
        -			appendTo(appendToNode);
        -		} else { // No node was passed in. If the element is not pre-marked up, this fails
        -			if (! YAHOO.util.Dom.inDocument(this.element)) {
        -				YAHOO.log("Render failed. Must specify appendTo node if Module isn't already in the DOM.", "error");
        -				return false;
        -			}
        -		}
        -
        -		// Need to get everything into the DOM if it isn't already
        -
        -		if (this.header && ! YAHOO.util.Dom.inDocument(this.header)) {
        -			// There is a header, but it's not in the DOM yet... need to add it
        -			var firstChild = moduleElement.firstChild;
        -			if (firstChild) { // Insert before first child if exists
        -				moduleElement.insertBefore(this.header, firstChild);
        -			} else { // Append to empty body because there are no children
        -				moduleElement.appendChild(this.header);
        -			}
        -		}
        -
        -		if (this.body && ! YAHOO.util.Dom.inDocument(this.body)) {
        -			// There is a body, but it's not in the DOM yet... need to add it
        -			if (this.footer && YAHOO.util.Dom.isAncestor(this.moduleElement, this.footer)) { // Insert before footer if exists in DOM
        -				moduleElement.insertBefore(this.body, this.footer);
        -			} else { // Append to element because there is no footer
        -				moduleElement.appendChild(this.body);
        -			}
        -		}
        -
        -		if (this.footer && ! YAHOO.util.Dom.inDocument(this.footer)) {
        -			// There is a footer, but it's not in the DOM yet... need to add it
        -			moduleElement.appendChild(this.footer);
        -		}
        -
        -		this.renderEvent.fire();
        -		return true;
        -	},
        -
        -	/**
        -	* Removes the Module element from the DOM and sets all child elements to null.
        -	* @method destroy
        -	*/
        -	destroy : function() {
        -		var parent;
        -
        -		if (this.element) {
        -			YAHOO.util.Event.purgeElement(this.element, true);
        -			parent = this.element.parentNode;
        -		}
        -		if (parent) {
        -			parent.removeChild(this.element);
        -		}
        -
        -		this.element = null;
        -		this.header = null;
        -		this.body = null;
        -		this.footer = null;
        -
        -		for (var e in this) {
        -			if (e instanceof YAHOO.util.CustomEvent) {
        -				e.unsubscribeAll();
        -			}
        -		}
        -
        -		YAHOO.widget.Module.textResizeEvent.unsubscribe(this.onDomResize, this);
        -
        -		this.destroyEvent.fire();
        -	},
        -
        -	/**
        -	* Shows the Module element by setting the visible configuration property to true. Also fires two events: beforeShowEvent prior to the visibility change, and showEvent after.
        -	* @method show
        -	*/
        -	show : function() {
        -		this.cfg.setProperty("visible", true);
        -	},
        -
        -	/**
        -	* Hides the Module element by setting the visible configuration property to false. Also fires two events: beforeHideEvent prior to the visibility change, and hideEvent after.
        -	* @method hide
        -	*/
        -	hide : function() {
        -		this.cfg.setProperty("visible", false);
        -	},
        -
        -	// BUILT-IN EVENT HANDLERS FOR MODULE //
        -
        -	/**
        -	* Default event handler for changing the visibility property of a Module. By default, this is achieved by switching the "display" style between "block" and "none".
        -	* This method is responsible for firing showEvent and hideEvent.
        -	* @param {String} type	The CustomEvent type (usually the property name)
        -	* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -	* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -	* @method configVisible
        -	*/
        -	configVisible : function(type, args, obj) {
        -		var visible = args[0];
        -		if (visible) {
        -			this.beforeShowEvent.fire();
        -			YAHOO.util.Dom.setStyle(this.element, "display", "block");
        -			this.showEvent.fire();
        -		} else {
        -			this.beforeHideEvent.fire();
        -			YAHOO.util.Dom.setStyle(this.element, "display", "none");
        -			this.hideEvent.fire();
        -		}
        -	},
        -
        -	/**
        -	* Default event handler for the "monitorresize" configuration property
        -	* @param {String} type	The CustomEvent type (usually the property name)
        -	* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -	* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -	* @method configMonitorResize
        -	*/
        -	configMonitorResize : function(type, args, obj) {
        -		var monitor = args[0];
        -		if (monitor) {
        -			this.initResizeMonitor();
        -		} else {
        -			YAHOO.widget.Module.textResizeEvent.unsubscribe(this.onDomResize, this, true);
        -			this.resizeMonitor = null;
        -		}
        -	}
        -};
        -
        -/**
        -* Returns a String representation of the Object.
        -* @method toString
        -* @return {String}	The string representation of the Module
        -*/
        -YAHOO.widget.Module.prototype.toString = function() {
        -	return "Module " + this.id;
        -};
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Motion.js.html b/www/extras/yui/docs/Motion.js.html deleted file mode 100644 index 3b45abe95..000000000 --- a/www/extras/yui/docs/Motion.js.html +++ /dev/null @@ -1,269 +0,0 @@ - - - - API: animation Motion.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        animation  2.2.2

        -

        - Yahoo! UI Library - > animation - - > Motion.js (source view) -

        -
        - -
        -
        -
        - -
        -
        (function() {
        -/**
        - * Anim subclass for moving elements along a path defined by the "points" 
        - * member of "attributes".  All "points" are arrays with x, y coordinates.
        - * <p>Usage: <code>var myAnim = new YAHOO.util.Motion(el, { points: { to: [800, 800] } }, 1, YAHOO.util.Easing.easeOut);</code></p>
        - * @class Motion
        - * @namespace YAHOO.util
        - * @requires YAHOO.util.Anim
        - * @requires YAHOO.util.AnimMgr
        - * @requires YAHOO.util.Easing
        - * @requires YAHOO.util.Bezier
        - * @requires YAHOO.util.Dom
        - * @requires YAHOO.util.Event
        - * @requires YAHOO.util.CustomEvent 
        - * @constructor
        - * @extends YAHOO.util.Anim
        - * @param {String | HTMLElement} el Reference to the element that will be animated
        - * @param {Object} attributes The attribute(s) to be animated.  
        - * Each attribute is an object with at minimum a "to" or "by" member defined.  
        - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px").  
        - * All attribute names use camelCase.
        - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based
        - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method)
        - */
        -    YAHOO.util.Motion = function(el, attributes, duration,  method) {
        -        if (el) { // dont break existing subclasses not using YAHOO.extend
        -            YAHOO.util.Motion.superclass.constructor.call(this, el, attributes, duration, method);
        -        }
        -    };
        -
        -    YAHOO.extend(YAHOO.util.Motion, YAHOO.util.ColorAnim);
        -    
        -    // shorthand
        -    var Y = YAHOO.util;
        -    var superclass = Y.Motion.superclass;
        -    var proto = Y.Motion.prototype;
        -
        -    proto.toString = function() {
        -        var el = this.getEl();
        -        var id = el.id || el.tagName;
        -        return ("Motion " + id);
        -    };
        -    
        -    proto.patterns.points = /^points$/i;
        -    
        -    proto.setAttribute = function(attr, val, unit) {
        -        if (  this.patterns.points.test(attr) ) {
        -            unit = unit || 'px';
        -            superclass.setAttribute.call(this, 'left', val[0], unit);
        -            superclass.setAttribute.call(this, 'top', val[1], unit);
        -        } else {
        -            superclass.setAttribute.call(this, attr, val, unit);
        -        }
        -    };
        -
        -    proto.getAttribute = function(attr) {
        -        if (  this.patterns.points.test(attr) ) {
        -            var val = [
        -                superclass.getAttribute.call(this, 'left'),
        -                superclass.getAttribute.call(this, 'top')
        -            ];
        -        } else {
        -            val = superclass.getAttribute.call(this, attr);
        -        }
        -
        -        return val;
        -    };
        -
        -    proto.doMethod = function(attr, start, end) {
        -        var val = null;
        -
        -        if ( this.patterns.points.test(attr) ) {
        -            var t = this.method(this.currentFrame, 0, 100, this.totalFrames) / 100;				
        -            val = Y.Bezier.getPosition(this.runtimeAttributes[attr], t);
        -        } else {
        -            val = superclass.doMethod.call(this, attr, start, end);
        -        }
        -        return val;
        -    };
        -
        -    proto.setRuntimeAttribute = function(attr) {
        -        if ( this.patterns.points.test(attr) ) {
        -            var el = this.getEl();
        -            var attributes = this.attributes;
        -            var start;
        -            var control = attributes['points']['control'] || [];
        -            var end;
        -            var i, len;
        -            
        -            if (control.length > 0 && !(control[0] instanceof Array) ) { // could be single point or array of points
        -                control = [control];
        -            } else { // break reference to attributes.points.control
        -                var tmp = []; 
        -                for (i = 0, len = control.length; i< len; ++i) {
        -                    tmp[i] = control[i];
        -                }
        -                control = tmp;
        -            }
        -
        -            if (Y.Dom.getStyle(el, 'position') == 'static') { // default to relative
        -                Y.Dom.setStyle(el, 'position', 'relative');
        -            }
        -    
        -            if ( isset(attributes['points']['from']) ) {
        -                Y.Dom.setXY(el, attributes['points']['from']); // set position to from point
        -            } 
        -            else { Y.Dom.setXY( el, Y.Dom.getXY(el) ); } // set it to current position
        -            
        -            start = this.getAttribute('points'); // get actual top & left
        -            
        -            // TO beats BY, per SMIL 2.1 spec
        -            if ( isset(attributes['points']['to']) ) {
        -                end = translateValues.call(this, attributes['points']['to'], start);
        -                
        -                var pageXY = Y.Dom.getXY(this.getEl());
        -                for (i = 0, len = control.length; i < len; ++i) {
        -                    control[i] = translateValues.call(this, control[i], start);
        -                }
        -
        -                
        -            } else if ( isset(attributes['points']['by']) ) {
        -                end = [ start[0] + attributes['points']['by'][0], start[1] + attributes['points']['by'][1] ];
        -                
        -                for (i = 0, len = control.length; i < len; ++i) {
        -                    control[i] = [ start[0] + control[i][0], start[1] + control[i][1] ];
        -                }
        -            }
        -
        -            this.runtimeAttributes[attr] = [start];
        -            
        -            if (control.length > 0) {
        -                this.runtimeAttributes[attr] = this.runtimeAttributes[attr].concat(control); 
        -            }
        -
        -            this.runtimeAttributes[attr][this.runtimeAttributes[attr].length] = end;
        -        }
        -        else {
        -            superclass.setRuntimeAttribute.call(this, attr);
        -        }
        -    };
        -    
        -    var translateValues = function(val, start) {
        -        var pageXY = Y.Dom.getXY(this.getEl());
        -        val = [ val[0] - pageXY[0] + start[0], val[1] - pageXY[1] + start[1] ];
        -
        -        return val; 
        -    };
        -    
        -    var isset = function(prop) {
        -        return (typeof prop !== 'undefined');
        -    };
        -})();
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Node.js.html b/www/extras/yui/docs/Node.js.html deleted file mode 100644 index ec15a33dd..000000000 --- a/www/extras/yui/docs/Node.js.html +++ /dev/null @@ -1,1119 +0,0 @@ - - - - API: treeview Node.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - - > Node.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * The base class for all tree nodes.  The node's presentation and behavior in
        - * response to mouse events is handled in Node subclasses.
        - * @namespace YAHOO.widget
        - * @class Node
        - * @uses YAHOO.util.EventProvider
        - * @param oData {object} a string or object containing the data that will
        - * be used to render this node
        - * @param oParent {Node} this node's parent node
        - * @param expanded {boolean} the initial expanded/collapsed state
        - * @constructor
        - */
        -YAHOO.widget.Node = function(oData, oParent, expanded) {
        -    if (oData) { this.init(oData, oParent, expanded); }
        -};
        -
        -YAHOO.widget.Node.prototype = {
        -
        -    /**
        -     * The index for this instance obtained from global counter in YAHOO.widget.TreeView.
        -     * @property index
        -     * @type int
        -     */
        -    index: 0,
        -
        -    /**
        -     * This node's child node collection.
        -     * @property children
        -     * @type Node[] 
        -     */
        -    children: null,
        -
        -    /**
        -     * Tree instance this node is part of
        -     * @property tree
        -     * @type TreeView
        -     */
        -    tree: null,
        -
        -    /**
        -     * The data linked to this node.  This can be any object or primitive
        -     * value, and the data can be used in getNodeHtml().
        -     * @property data
        -     * @type object
        -     */
        -    data: null,
        -
        -    /**
        -     * Parent node
        -     * @property parent
        -     * @type Node
        -     */
        -    parent: null,
        -
        -    /**
        -     * The depth of this node.  We start at -1 for the root node.
        -     * @property depth
        -     * @type int
        -     */
        -    depth: -1,
        -
        -    /**
        -     * The href for the node's label.  If one is not specified, the href will
        -     * be set so that it toggles the node.
        -     * @property href
        -     * @type string
        -     */
        -    href: null,
        -
        -    /**
        -     * The label href target, defaults to current window
        -     * @property target
        -     * @type string
        -     */
        -    target: "_self",
        -
        -    /**
        -     * The node's expanded/collapsed state
        -     * @property expanded
        -     * @type boolean
        -     */
        -    expanded: false,
        -
        -    /**
        -     * Can multiple children be expanded at once?
        -     * @property multiExpand
        -     * @type boolean
        -     */
        -    multiExpand: true,
        -
        -    /**
        -     * Should we render children for a collapsed node?  It is possible that the
        -     * implementer will want to render the hidden data...  @todo verify that we 
        -     * need this, and implement it if we do.
        -     * @property renderHidden
        -     * @type boolean
        -     */
        -    renderHidden: false,
        -
        -    /**
        -     * This flag is set to true when the html is generated for this node's
        -     * children, and set to false when new children are added.
        -     * @property childrenRendered
        -     * @type boolean
        -     */
        -    childrenRendered: false,
        -
        -    /**
        -     * Dynamically loaded nodes only fetch the data the first time they are
        -     * expanded.  This flag is set to true once the data has been fetched.
        -     * @property dynamicLoadComplete
        -     * @type boolean
        -     */
        -    dynamicLoadComplete: false,
        -
        -    /**
        -     * This node's previous sibling
        -     * @property previousSibling
        -     * @type Node
        -     */
        -    previousSibling: null,
        -
        -    /**
        -     * This node's next sibling
        -     * @property nextSibling
        -     * @type Node
        -     */
        -    nextSibling: null,
        -
        -    /**
        -     * We can set the node up to call an external method to get the child
        -     * data dynamically.
        -     * @property _dynLoad
        -     * @type boolean
        -     * @private
        -     */
        -    _dynLoad: false,
        -
        -    /**
        -     * Function to execute when we need to get this node's child data.
        -     * @property dataLoader
        -     * @type function
        -     */
        -    dataLoader: null,
        -
        -    /**
        -     * This is true for dynamically loading nodes while waiting for the
        -     * callback to return.
        -     * @property isLoading
        -     * @type boolean
        -     */
        -    isLoading: false,
        -
        -    /**
        -     * The toggle/branch icon will not show if this is set to false.  This
        -     * could be useful if the implementer wants to have the child contain
        -     * extra info about the parent, rather than an actual node.
        -     * @property hasIcon
        -     * @type boolean
        -     */
        -    hasIcon: true,
        -
        -    /**
        -     * Used to configure what happens when a dynamic load node is expanded
        -     * and we discover that it does not have children.  By default, it is
        -     * treated as if it still could have children (plus/minus icon).  Set
        -     * iconMode to have it display like a leaf node instead.
        -     * @property iconMode
        -     * @type int
        -     */
        -    iconMode: 0,
        -
        -    /**
        -     * Specifies whether or not the content area of the node should be allowed
        -     * to wrap.
        -     * @property nowrap
        -     * @type boolean
        -     * @default false
        -     */
        -    nowrap: false,
        -
        -    /**
        -     * The node type
        -     * @property _type
        -     * @private
        -     */
        -    _type: "Node",
        -
        -    /*
        -    spacerPath: "http://us.i1.yimg.com/us.yimg.com/i/space.gif",
        -    expandedText: "Expanded",
        -    collapsedText: "Collapsed",
        -    loadingText: "Loading",
        -    */
        -
        -    /**
        -     * Initializes this node, gets some of the properties from the parent
        -     * @method init
        -     * @param oData {object} a string or object containing the data that will
        -     * be used to render this node
        -     * @param oParent {Node} this node's parent node
        -     * @param expanded {boolean} the initial expanded/collapsed state
        -     */
        -    init: function(oData, oParent, expanded) {
        -
        -        this.data       = oData;
        -        this.children   = [];
        -        this.index      = YAHOO.widget.TreeView.nodeCount;
        -        ++YAHOO.widget.TreeView.nodeCount;
        -        this.expanded   = expanded;
        -        this.logger     = new YAHOO.widget.LogWriter(this.toString());
        -
        -        /**
        -         * The parentChange event is fired when a parent element is applied
        -         * to the node.  This is useful if you need to apply tree-level
        -         * properties to a tree that need to happen if a node is moved from
        -         * one tree to another.
        -         *
        -         * @event parentChange
        -         * @type CustomEvent
        -         */
        -        this.createEvent("parentChange", this);
        -
        -        // oParent should never be null except when we create the root node.
        -        if (oParent) {
        -            oParent.appendChild(this);
        -        }
        -    },
        -
        -    /**
        -     * Certain properties for the node cannot be set until the parent
        -     * is known. This is called after the node is inserted into a tree.
        -     * the parent is also applied to this node's children in order to
        -     * make it possible to move a branch from one tree to another.
        -     * @method applyParent
        -     * @param {Node} parentNode this node's parent node
        -     * @return {boolean} true if the application was successful
        -     */
        -    applyParent: function(parentNode) {
        -        if (!parentNode) {
        -            return false;
        -        }
        -
        -        this.tree   = parentNode.tree;
        -        this.parent = parentNode;
        -        this.depth  = parentNode.depth + 1;
        -
        -        if (!this.href) {
        -            this.href = "javascript:" + this.getToggleLink();
        -        }
        -
        -        // @todo why was this put here.  This causes new nodes added at the
        -        // root level to lose the menu behavior.
        -        // if (! this.multiExpand) {
        -            // this.multiExpand = parentNode.multiExpand;
        -        // }
        -
        -        this.tree.regNode(this);
        -        parentNode.childrenRendered = false;
        -
        -        // cascade update existing children
        -        for (var i=0, len=this.children.length;i<len;++i) {
        -            this.children[i].applyParent(this);
        -        }
        -
        -        this.fireEvent("parentChange");
        -
        -        return true;
        -    },
        -
        -    /**
        -     * Appends a node to the child collection.
        -     * @method appendChild
        -     * @param childNode {Node} the new node
        -     * @return {Node} the child node
        -     * @private
        -     */
        -    appendChild: function(childNode) {
        -        if (this.hasChildren()) {
        -            var sib = this.children[this.children.length - 1];
        -            sib.nextSibling = childNode;
        -            childNode.previousSibling = sib;
        -        }
        -        this.children[this.children.length] = childNode;
        -        childNode.applyParent(this);
        -
        -        return childNode;
        -    },
        -
        -    /**
        -     * Appends this node to the supplied node's child collection
        -     * @method appendTo
        -     * @param parentNode {Node} the node to append to.
        -     * @return {Node} The appended node
        -     */
        -    appendTo: function(parentNode) {
        -        return parentNode.appendChild(this);
        -    },
        -
        -    /**
        -    * Inserts this node before this supplied node
        -    * @method insertBefore
        -    * @param node {Node} the node to insert this node before
        -    * @return {Node} the inserted node
        -    */
        -    insertBefore: function(node) {
        -        this.logger.log("insertBefore: " + node);
        -        var p = node.parent;
        -        if (p) {
        -
        -            if (this.tree) {
        -                this.tree.popNode(this);
        -            }
        -
        -            var refIndex = node.isChildOf(p);
        -            //this.logger.log(refIndex);
        -            p.children.splice(refIndex, 0, this);
        -            if (node.previousSibling) {
        -                node.previousSibling.nextSibling = this;
        -            }
        -            this.previousSibling = node.previousSibling;
        -            this.nextSibling = node;
        -            node.previousSibling = this;
        -
        -            this.applyParent(p);
        -        }
        -
        -        return this;
        -    },
        - 
        -    /**
        -    * Inserts this node after the supplied node
        -    * @method insertAfter
        -    * @param node {Node} the node to insert after
        -    * @return {Node} the inserted node
        -    */
        -    insertAfter: function(node) {
        -        this.logger.log("insertAfter: " + node);
        -        var p = node.parent;
        -        if (p) {
        -
        -            if (this.tree) {
        -                this.tree.popNode(this);
        -            }
        -
        -            var refIndex = node.isChildOf(p);
        -            this.logger.log(refIndex);
        -
        -            if (!node.nextSibling) {
        -                this.nextSibling = null;
        -                return this.appendTo(p);
        -            }
        -
        -            p.children.splice(refIndex + 1, 0, this);
        -
        -            node.nextSibling.previousSibling = this;
        -            this.previousSibling = node;
        -            this.nextSibling = node.nextSibling;
        -            node.nextSibling = this;
        -
        -            this.applyParent(p);
        -        }
        -
        -        return this;
        -    },
        -
        -    /**
        -    * Returns true if the Node is a child of supplied Node
        -    * @method isChildOf
        -    * @param parentNode {Node} the Node to check
        -    * @return {boolean} The node index if this Node is a child of 
        -    *                   supplied Node, else -1.
        -    * @private
        -    */
        -    isChildOf: function(parentNode) {
        -        if (parentNode && parentNode.children) {
        -            for (var i=0, len=parentNode.children.length; i<len ; ++i) {
        -                if (parentNode.children[i] === this) {
        -                    return i;
        -                }
        -            }
        -        }
        -
        -        return -1;
        -    },
        -
        -    /**
        -     * Returns a node array of this node's siblings, null if none.
        -     * @method getSiblings
        -     * @return Node[]
        -     */
        -    getSiblings: function() {
        -        return this.parent.children;
        -    },
        -
        -    /**
        -     * Shows this node's children
        -     * @method showChildren
        -     */
        -    showChildren: function() {
        -        if (!this.tree.animateExpand(this.getChildrenEl(), this)) {
        -            if (this.hasChildren()) {
        -                this.getChildrenEl().style.display = "";
        -            }
        -        }
        -    },
        -
        -    /**
        -     * Hides this node's children
        -     * @method hideChildren
        -     */
        -    hideChildren: function() {
        -        this.logger.log("hiding " + this.index);
        -
        -        if (!this.tree.animateCollapse(this.getChildrenEl(), this)) {
        -            this.getChildrenEl().style.display = "none";
        -        }
        -    },
        -
        -    /**
        -     * Returns the id for this node's container div
        -     * @method getElId
        -     * @return {string} the element id
        -     */
        -    getElId: function() {
        -        return "ygtv" + this.index;
        -    },
        -
        -    /**
        -     * Returns the id for this node's children div
        -     * @method getChildrenElId
        -     * @return {string} the element id for this node's children div
        -     */
        -    getChildrenElId: function() {
        -        return "ygtvc" + this.index;
        -    },
        -
        -    /**
        -     * Returns the id for this node's toggle element
        -     * @method getToggleElId
        -     * @return {string} the toggel element id
        -     */
        -    getToggleElId: function() {
        -        return "ygtvt" + this.index;
        -    },
        -
        -
        -    /*
        -     * Returns the id for this node's spacer image.  The spacer is positioned
        -     * over the toggle and provides feedback for screen readers.
        -     * @method getSpacerId
        -     * @return {string} the id for the spacer image
        -     */
        -    /*
        -    getSpacerId: function() {
        -        return "ygtvspacer" + this.index;
        -    }, 
        -    */
        -
        -    /**
        -     * Returns this node's container html element
        -     * @method getEl
        -     * @return {HTMLElement} the container html element
        -     */
        -    getEl: function() {
        -        return document.getElementById(this.getElId());
        -    },
        -
        -    /**
        -     * Returns the div that was generated for this node's children
        -     * @method getChildrenEl
        -     * @return {HTMLElement} this node's children div
        -     */
        -    getChildrenEl: function() {
        -        return document.getElementById(this.getChildrenElId());
        -    },
        -
        -    /**
        -     * Returns the element that is being used for this node's toggle.
        -     * @method getToggleEl
        -     * @return {HTMLElement} this node's toggle html element
        -     */
        -    getToggleEl: function() {
        -        return document.getElementById(this.getToggleElId());
        -    },
        -
        -    /*
        -     * Returns the element that is being used for this node's spacer.
        -     * @method getSpacer
        -     * @return {HTMLElement} this node's spacer html element
        -     */
        -    /*
        -    getSpacer: function() {
        -        return document.getElementById( this.getSpacerId() ) || {};
        -    },
        -    */
        -
        -    /*
        -    getStateText: function() {
        -        if (this.isLoading) {
        -            return this.loadingText;
        -        } else if (this.hasChildren(true)) {
        -            if (this.expanded) {
        -                return this.expandedText;
        -            } else {
        -                return this.collapsedText;
        -            }
        -        } else {
        -            return "";
        -        }
        -    },
        -    */
        -
        -    /**
        -     * Generates the link that will invoke this node's toggle method
        -     * @method getToggleLink
        -     * @return {string} the javascript url for toggling this node
        -     */
        -    getToggleLink: function() {
        -        return "YAHOO.widget.TreeView.getNode(\'" + this.tree.id + "\'," + 
        -            this.index + ").toggle()";
        -    },
        -
        -    /**
        -     * Hides this nodes children (creating them if necessary), changes the
        -     * @method collapse
        -     * toggle style.
        -     */
        -    collapse: function() {
        -        // Only collapse if currently expanded
        -        if (!this.expanded) { return; }
        -
        -        // fire the collapse event handler
        -        var ret = this.tree.onCollapse(this);
        -
        -        if (false === ret) {
        -            this.logger.log("Collapse was stopped by the abstract onCollapse");
        -            return;
        -        }
        -
        -        ret = this.tree.fireEvent("collapse", this);
        -
        -        if (false === ret) {
        -            this.logger.log("Collapse was stopped by a custom event handler");
        -            return;
        -        }
        -
        -
        -        if (!this.getEl()) {
        -            this.expanded = false;
        -        } else {
        -            // hide the child div
        -            this.hideChildren();
        -            this.expanded = false;
        -
        -            this.updateIcon();
        -        }
        -
        -        // this.getSpacer().title = this.getStateText();
        -
        -        ret = this.tree.fireEvent("collapseComplete", this);
        -
        -    },
        -
        -    /**
        -     * Shows this nodes children (creating them if necessary), changes the
        -     * toggle style, and collapses its siblings if multiExpand is not set.
        -     * @method expand
        -     */
        -    expand: function() {
        -        // Only expand if currently collapsed.
        -        if (this.expanded) { return; }
        -
        -        // fire the expand event handler
        -        var ret = this.tree.onExpand(this);
        -
        -        if (false === ret) {
        -            this.logger.log("Expand was stopped by the abstract onExpand");
        -            return;
        -        }
        -        
        -        ret = this.tree.fireEvent("expand", this);
        -
        -        if (false === ret) {
        -            this.logger.log("Expand was stopped by the custom event handler");
        -            return;
        -        }
        -
        -        if (!this.getEl()) {
        -            this.expanded = true;
        -            return;
        -        }
        -
        -        if (! this.childrenRendered) {
        -            this.logger.log("children not rendered yet");
        -            this.getChildrenEl().innerHTML = this.renderChildren();
        -        } else {
        -            this.logger.log("CHILDREN RENDERED");
        -        }
        -
        -        this.expanded = true;
        -
        -        this.updateIcon();
        -
        -        // this.getSpacer().title = this.getStateText();
        -
        -        // We do an extra check for children here because the lazy
        -        // load feature can expose nodes that have no children.
        -
        -        // if (!this.hasChildren()) {
        -        if (this.isLoading) {
        -            this.expanded = false;
        -            return;
        -        }
        -
        -        if (! this.multiExpand) {
        -            var sibs = this.getSiblings();
        -            for (var i=0; i<sibs.length; ++i) {
        -                if (sibs[i] != this && sibs[i].expanded) { 
        -                    sibs[i].collapse(); 
        -                }
        -            }
        -        }
        -
        -        this.showChildren();
        -
        -        ret = this.tree.fireEvent("expandComplete", this);
        -    },
        -
        -    updateIcon: function() {
        -        if (this.hasIcon) {
        -            var el = this.getToggleEl();
        -            if (el) {
        -                el.className = this.getStyle();
        -            }
        -        }
        -    },
        -
        -    /**
        -     * Returns the css style name for the toggle
        -     * @method getStyle
        -     * @return {string} the css class for this node's toggle
        -     */
        -    getStyle: function() {
        -        // this.logger.log("No children, " + " isDyanmic: " + this.isDynamic() + " expanded: " + this.expanded);
        -        if (this.isLoading) {
        -            this.logger.log("returning the loading icon");
        -            return "ygtvloading";
        -        } else {
        -            // location top or bottom, middle nodes also get the top style
        -            var loc = (this.nextSibling) ? "t" : "l";
        -
        -            // type p=plus(expand), m=minus(collapase), n=none(no children)
        -            var type = "n";
        -            if (this.hasChildren(true) || (this.isDynamic() && !this.getIconMode())) {
        -            // if (this.hasChildren(true)) {
        -                type = (this.expanded) ? "m" : "p";
        -            }
        -
        -            // this.logger.log("ygtv" + loc + type);
        -            return "ygtv" + loc + type;
        -        }
        -    },
        -
        -    /**
        -     * Returns the hover style for the icon
        -     * @return {string} the css class hover state
        -     * @method getHoverStyle
        -     */
        -    getHoverStyle: function() { 
        -        var s = this.getStyle();
        -        if (this.hasChildren(true) && !this.isLoading) { 
        -            s += "h"; 
        -        }
        -        return s;
        -    },
        -
        -    /**
        -     * Recursively expands all of this node's children.
        -     * @method expandAll
        -     */
        -    expandAll: function() { 
        -        for (var i=0;i<this.children.length;++i) {
        -            var c = this.children[i];
        -            if (c.isDynamic()) {
        -                alert("Not supported (lazy load + expand all)");
        -                break;
        -            } else if (! c.multiExpand) {
        -                alert("Not supported (no multi-expand + expand all)");
        -                break;
        -            } else {
        -                c.expand();
        -                c.expandAll();
        -            }
        -        }
        -    },
        -
        -    /**
        -     * Recursively collapses all of this node's children.
        -     * @method collapseAll
        -     */
        -    collapseAll: function() { 
        -        for (var i=0;i<this.children.length;++i) {
        -            this.children[i].collapse();
        -            this.children[i].collapseAll();
        -        }
        -    },
        -
        -    /**
        -     * Configures this node for dynamically obtaining the child data
        -     * when the node is first expanded.  Calling it without the callback
        -     * will turn off dynamic load for the node.
        -     * @method setDynamicLoad
        -     * @param fmDataLoader {function} the function that will be used to get the data.
        -     * @param iconMode {int} configures the icon that is displayed when a dynamic
        -     * load node is expanded the first time without children.  By default, the 
        -     * "collapse" icon will be used.  If set to 1, the leaf node icon will be
        -     * displayed.
        -     */
        -    setDynamicLoad: function(fnDataLoader, iconMode) { 
        -        if (fnDataLoader) {
        -            this.dataLoader = fnDataLoader;
        -            this._dynLoad = true;
        -        } else {
        -            this.dataLoader = null;
        -            this._dynLoad = false;
        -        }
        -
        -        if (iconMode) {
        -            this.iconMode = iconMode;
        -        }
        -    },
        -
        -    /**
        -     * Evaluates if this node is the root node of the tree
        -     * @method isRoot
        -     * @return {boolean} true if this is the root node
        -     */
        -    isRoot: function() { 
        -        return (this == this.tree.root);
        -    },
        -
        -    /**
        -     * Evaluates if this node's children should be loaded dynamically.  Looks for
        -     * the property both in this instance and the root node.  If the tree is
        -     * defined to load all children dynamically, the data callback function is
        -     * defined in the root node
        -     * @method isDynamic
        -     * @return {boolean} true if this node's children are to be loaded dynamically
        -     */
        -    isDynamic: function() { 
        -        var lazy = (!this.isRoot() && (this._dynLoad || this.tree.root._dynLoad));
        -        // this.logger.log("isDynamic: " + lazy);
        -        return lazy;
        -    },
        -
        -    /**
        -     * Returns the current icon mode.  This refers to the way childless dynamic
        -     * load nodes appear.
        -     * @method getIconMode
        -     * @return {int} 0 for collapse style, 1 for leaf node style
        -     */
        -    getIconMode: function() {
        -        return (this.iconMode || this.tree.root.iconMode);
        -    },
        -
        -    /**
        -     * Checks if this node has children.  If this node is lazy-loading and the
        -     * children have not been rendered, we do not know whether or not there
        -     * are actual children.  In most cases, we need to assume that there are
        -     * children (for instance, the toggle needs to show the expandable 
        -     * presentation state).  In other times we want to know if there are rendered
        -     * children.  For the latter, "checkForLazyLoad" should be false.
        -     * @method hasChildren
        -     * @param checkForLazyLoad {boolean} should we check for unloaded children?
        -     * @return {boolean} true if this has children or if it might and we are
        -     * checking for this condition.
        -     */
        -    hasChildren: function(checkForLazyLoad) { 
        -        return ( this.children.length > 0 || 
        -                (checkForLazyLoad && this.isDynamic() && !this.dynamicLoadComplete) );
        -    },
        -
        -    /**
        -     * Expands if node is collapsed, collapses otherwise.
        -     * @method toggle
        -     */
        -    toggle: function() {
        -        if (!this.tree.locked && ( this.hasChildren(true) || this.isDynamic()) ) {
        -            if (this.expanded) { this.collapse(); } else { this.expand(); }
        -        }
        -    },
        -
        -    /**
        -     * Returns the markup for this node and its children.
        -     * @method getHtml
        -     * @return {string} the markup for this node and its expanded children.
        -     */
        -    getHtml: function() {
        -
        -        this.childrenRendered = false;
        -
        -        var sb = [];
        -        sb[sb.length] = '<div class="ygtvitem" id="' + this.getElId() + '">';
        -        sb[sb.length] = this.getNodeHtml();
        -        sb[sb.length] = this.getChildrenHtml();
        -        sb[sb.length] = '</div>';
        -        return sb.join("");
        -    },
        -
        -    /**
        -     * Called when first rendering the tree.  We always build the div that will
        -     * contain this nodes children, but we don't render the children themselves
        -     * unless this node is expanded.
        -     * @method getChildrenHtml
        -     * @return {string} the children container div html and any expanded children
        -     * @private
        -     */
        -    getChildrenHtml: function() {
        -
        -        var sb = [];
        -        sb[sb.length] = '<div class="ygtvchildren"';
        -        sb[sb.length] = ' id="' + this.getChildrenElId() + '"';
        -        if (!this.expanded) {
        -            sb[sb.length] = ' style="display:none;"';
        -        }
        -        sb[sb.length] = '>';
        -
        -        // Don't render the actual child node HTML unless this node is expanded.
        -        if ( (this.hasChildren(true) && this.expanded) ||
        -                (this.renderHidden && !this.isDynamic()) ) {
        -            sb[sb.length] = this.renderChildren();
        -        }
        -
        -        sb[sb.length] = '</div>';
        -
        -        return sb.join("");
        -    },
        -
        -    /**
        -     * Generates the markup for the child nodes.  This is not done until the node
        -     * is expanded.
        -     * @method renderChildren
        -     * @return {string} the html for this node's children
        -     * @private
        -     */
        -    renderChildren: function() {
        -
        -        this.logger.log("rendering children for " + this.index);
        -
        -        var node = this;
        -
        -        if (this.isDynamic() && !this.dynamicLoadComplete) {
        -            this.isLoading = true;
        -            this.tree.locked = true;
        -
        -            if (this.dataLoader) {
        -                this.logger.log("Using dynamic loader defined for this node");
        -
        -                setTimeout( 
        -                    function() {
        -                        node.dataLoader(node, 
        -                            function() { 
        -                                node.loadComplete(); 
        -                            });
        -                    }, 10);
        -                
        -            } else if (this.tree.root.dataLoader) {
        -                this.logger.log("Using the tree-level dynamic loader");
        -
        -                setTimeout( 
        -                    function() {
        -                        node.tree.root.dataLoader(node, 
        -                            function() { 
        -                                node.loadComplete(); 
        -                            });
        -                    }, 10);
        -
        -            } else {
        -                this.logger.log("no loader found");
        -                return "Error: data loader not found or not specified.";
        -            }
        -
        -            return "";
        -
        -        } else {
        -            return this.completeRender();
        -        }
        -    },
        -
        -    /**
        -     * Called when we know we have all the child data.
        -     * @method completeRender
        -     * @return {string} children html
        -     */
        -    completeRender: function() {
        -        this.logger.log("completeRender: " + this.index + ", # of children: " + this.children.length);
        -        var sb = [];
        -
        -        for (var i=0; i < this.children.length; ++i) {
        -            // this.children[i].childrenRendered = false;
        -            sb[sb.length] = this.children[i].getHtml();
        -        }
        -        
        -        this.childrenRendered = true;
        -
        -        return sb.join("");
        -    },
        -
        -    /**
        -     * Load complete is the callback function we pass to the data provider
        -     * in dynamic load situations.
        -     * @method loadComplete
        -     */
        -    loadComplete: function() {
        -        this.logger.log("loadComplete: " + this.index);
        -        this.getChildrenEl().innerHTML = this.completeRender();
        -        this.dynamicLoadComplete = true;
        -        this.isLoading = false;
        -        this.expand();
        -        this.tree.locked = false;
        -    },
        -
        -    /**
        -     * Returns this node's ancestor at the specified depth.
        -     * @method getAncestor
        -     * @param {int} depth the depth of the ancestor.
        -     * @return {Node} the ancestor
        -     */
        -    getAncestor: function(depth) {
        -        if (depth >= this.depth || depth < 0)  {
        -            this.logger.log("illegal getAncestor depth: " + depth);
        -            return null;
        -        }
        -
        -        var p = this.parent;
        -        
        -        while (p.depth > depth) {
        -            p = p.parent;
        -        }
        -
        -        return p;
        -    },
        -
        -    /**
        -     * Returns the css class for the spacer at the specified depth for
        -     * this node.  If this node's ancestor at the specified depth
        -     * has a next sibling the presentation is different than if it
        -     * does not have a next sibling
        -     * @method getDepthStyle
        -     * @param {int} depth the depth of the ancestor.
        -     * @return {string} the css class for the spacer
        -     */
        -    getDepthStyle: function(depth) {
        -        return (this.getAncestor(depth).nextSibling) ? 
        -            "ygtvdepthcell" : "ygtvblankdepthcell";
        -    },
        -
        -    /**
        -     * Get the markup for the node.  This is designed to be overrided so that we can
        -     * support different types of nodes.
        -     * @method getNodeHtml
        -     * @return {string} The HTML that will render this node.
        -     */
        -    getNodeHtml: function() { 
        -        this.logger.log("Generating html");
        -        return ""; 
        -    },
        -
        -    /**
        -     * Regenerates the html for this node and its children.  To be used when the
        -     * node is expanded and new children have been added.
        -     * @method refresh
        -     */
        -    refresh: function() {
        -        // this.loadComplete();
        -        this.getChildrenEl().innerHTML = this.completeRender();
        -
        -        if (this.hasIcon) {
        -            var el = this.getToggleEl();
        -            if (el) {
        -                el.className = this.getStyle();
        -            }
        -        }
        -    },
        -
        -    /**
        -     * Node toString
        -     * @method toString
        -     * @return {string} string representation of the node
        -     */
        -    toString: function() {
        -        return "Node (" + this.index + ")";
        -    }
        -
        -};
        -
        -YAHOO.augment(YAHOO.widget.Node, YAHOO.util.EventProvider);
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Overlay.js.html b/www/extras/yui/docs/Overlay.js.html deleted file mode 100644 index d0acc6653..000000000 --- a/www/extras/yui/docs/Overlay.js.html +++ /dev/null @@ -1,1202 +0,0 @@ - - - - API: container Overlay.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - - > Overlay.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* Overlay is a Module that is absolutely positioned above the page flow. It has convenience methods for positioning and sizing, as well as options for controlling zIndex and constraining the Overlay's position to the current visible viewport. Overlay also contains a dynamicly generated IFRAME which is placed beneath it for Internet Explorer 6 and 5.x so that it will be properly rendered above SELECT elements.
        -* @namespace YAHOO.widget
        -* @class Overlay
        -* @extends YAHOO.widget.Module
        -* @param {String}	el	The element ID representing the Overlay <em>OR</em>
        -* @param {HTMLElement}	el	The element representing the Overlay
        -* @param {Object}	userConfig	The configuration object literal containing 10/23/2006the configuration that should be set for this Overlay. See configuration documentation for more details.
        -* @constructor
        -*/
        -YAHOO.widget.Overlay = function(el, userConfig) {
        -	YAHOO.widget.Overlay.superclass.constructor.call(this, el, userConfig);
        -};
        -
        -YAHOO.extend(YAHOO.widget.Overlay, YAHOO.widget.Module);
        -
        -/**
        -* Constant representing the name of the Overlay's events
        -* @property YAHOO.widget.Overlay._EVENT_TYPES
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.Overlay._EVENT_TYPES = {
        -
        -    "BEFORE_MOVE": "beforeMove",
        -    "MOVE": "move"
        -
        -};
        -
        -/**
        -* Constant representing the Overlay's configuration properties
        -* @property YAHOO.widget.Overlay._DEFAULT_CONFIG
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.Overlay._DEFAULT_CONFIG = {
        -
        -    "X": { 
        -        key: "x", 
        -        validator:YAHOO.lang.isNumber, 
        -        suppressEvent:true, supercedes:["iframe"] 
        -    },
        -
        -    "Y": { 
        -        key: "y", 
        -        validator:YAHOO.lang.isNumber, 
        -        suppressEvent:true, supercedes:["iframe"] 
        -    },
        -
        -    "XY": { 
        -        key: "xy", 
        -        suppressEvent:true, 
        -        supercedes:["iframe"] 
        -    },
        -
        -    "CONTEXT": { 
        -        key: "context", 
        -        suppressEvent:true, 
        -        supercedes:["iframe"] 
        -    },
        -
        -    "FIXED_CENTER": { 
        -        key: "fixedcenter", 
        -        value:false, 
        -        validator:YAHOO.lang.isBoolean, 
        -        supercedes:["iframe","visible"] 
        -    },
        -
        -    "WIDTH": { 
        -        key: "width", 
        -        suppressEvent:true, 
        -        supercedes:["iframe"] 
        -    }, 
        -
        -    "HEIGHT": { 
        -        key: "height", 
        -        suppressEvent:true, 
        -        supercedes:["iframe"] 
        -    }, 
        -
        -    "ZINDEX": { 
        -        key: "zindex", 
        -        value:null 
        -    }, 
        -
        -    "CONSTRAIN_TO_VIEWPORT": { 
        -        key: "constraintoviewport", 
        -        value:false, 
        -        validator:YAHOO.lang.isBoolean, 
        -        supercedes:["iframe","x","y","xy"] 
        -    }, 
        -
        -    "IFRAME": { 
        -        key: "iframe", 
        -        value:(YAHOO.widget.Module.prototype.browser == "ie" ? true : false), 
        -        validator:YAHOO.lang.isBoolean, 
        -        supercedes:["zIndex"] 
        -    }
        -
        -};
        -
        -/**
        -* The URL that will be placed in the iframe
        -* @property YAHOO.widget.Overlay.IFRAME_SRC
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Overlay.IFRAME_SRC = "javascript:false;";
        -
        -/**
        -* Constant representing the top left corner of an element, used for configuring the context element alignment
        -* @property YAHOO.widget.Overlay.TOP_LEFT
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Overlay.TOP_LEFT = "tl";
        -
        -/**
        -* Constant representing the top right corner of an element, used for configuring the context element alignment
        -* @property YAHOO.widget.Overlay.TOP_RIGHT
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Overlay.TOP_RIGHT = "tr";
        -
        -/**
        -* Constant representing the top bottom left corner of an element, used for configuring the context element alignment
        -* @property YAHOO.widget.Overlay.BOTTOM_LEFT
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Overlay.BOTTOM_LEFT = "bl";
        -
        -/**
        -* Constant representing the bottom right corner of an element, used for configuring the context element alignment
        -* @property YAHOO.widget.Overlay.BOTTOM_RIGHT
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Overlay.BOTTOM_RIGHT = "br";
        -
        -/**
        -* Constant representing the default CSS class used for an Overlay
        -* @property YAHOO.widget.Overlay.CSS_OVERLAY
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Overlay.CSS_OVERLAY = "yui-overlay";
        -
        -/**
        -* The Overlay initialization method, which is executed for Overlay and all of its subclasses. This method is automatically called by the constructor, and  sets up all DOM references for pre-existing markup, and creates required markup if it is not already present.
        -* @method init
        -* @param {String}	el	The element ID representing the Overlay <em>OR</em>
        -* @param {HTMLElement}	el	The element representing the Overlay
        -* @param {Object}	userConfig	The configuration object literal containing the configuration that should be set for this Overlay. See configuration documentation for more details.
        -*/
        -YAHOO.widget.Overlay.prototype.init = function(el, userConfig) {
        -	YAHOO.widget.Overlay.superclass.init.call(this, el/*, userConfig*/);  // Note that we don't pass the user config in here yet because we only want it executed once, at the lowest subclass level
        -
        -	this.beforeInitEvent.fire(YAHOO.widget.Overlay);
        -
        -	YAHOO.util.Dom.addClass(this.element, YAHOO.widget.Overlay.CSS_OVERLAY);
        -
        -	if (userConfig) {
        -		this.cfg.applyConfig(userConfig, true);
        -	}
        -
        -	if (this.platform == "mac" && this.browser == "gecko") {
        -		if (! YAHOO.util.Config.alreadySubscribed(this.showEvent,this.showMacGeckoScrollbars,this)) {
        -			this.showEvent.subscribe(this.showMacGeckoScrollbars,this,true);
        -		}
        -		if (! YAHOO.util.Config.alreadySubscribed(this.hideEvent,this.hideMacGeckoScrollbars,this)) {
        -			this.hideEvent.subscribe(this.hideMacGeckoScrollbars,this,true);
        -		}
        -	}
        -
        -	this.initEvent.fire(YAHOO.widget.Overlay);
        -
        -};
        -
        -/**
        -* Initializes the custom events for Overlay which are fired automatically at appropriate times by the Overlay class.
        -* @method initEvents
        -*/
        -YAHOO.widget.Overlay.prototype.initEvents = function() {
        -	YAHOO.widget.Overlay.superclass.initEvents.call(this);
        -
        -    var EVENT_TYPES = YAHOO.widget.Overlay._EVENT_TYPES;
        -
        -	/**
        -	* CustomEvent fired before the Overlay is moved.
        -	* @event beforeMoveEvent
        -	* @param {Number} x	x coordinate
        -	* @param {Number} y	y coordinate
        -	*/
        -	this.beforeMoveEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.BEFORE_MOVE, this);
        -
        -	/**
        -	* CustomEvent fired after the Overlay is moved.
        -	* @event moveEvent
        -	* @param {Number} x	x coordinate
        -	* @param {Number} y	y coordinate
        -	*/
        -	this.moveEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.MOVE, this);
        -};
        -
        -/**
        -* Initializes the class's configurable properties which can be changed using the Overlay's Config object (cfg).
        -* @method initDefaultConfig
        -*/
        -YAHOO.widget.Overlay.prototype.initDefaultConfig = function() {
        -	YAHOO.widget.Overlay.superclass.initDefaultConfig.call(this);
        -
        -
        -	// Add overlay config properties //
        -
        -    var DEFAULT_CONFIG = YAHOO.widget.Overlay._DEFAULT_CONFIG;
        -
        -	/**
        -	* The absolute x-coordinate position of the Overlay
        -	* @config x
        -	* @type Number
        -	* @default null
        -	*/
        -	this.cfg.addProperty(
        -	           DEFAULT_CONFIG.X.key, 
        -	           { 
        -	               handler: this.configX, 
        -	               validator: DEFAULT_CONFIG.X.validator, 
        -	               suppressEvent: DEFAULT_CONFIG.X.suppressEvent, 
        -	               supercedes: DEFAULT_CONFIG.X.supercedes
        -               }
        -           );
        -
        -	/**
        -	* The absolute y-coordinate position of the Overlay
        -	* @config y
        -	* @type Number
        -	* @default null
        -	*/
        -	this.cfg.addProperty(
        -	           DEFAULT_CONFIG.Y.key,
        -	           {
        -	               handler: this.configY, 
        -	               validator: DEFAULT_CONFIG.Y.validator, 
        -	               suppressEvent: DEFAULT_CONFIG.Y.suppressEvent, 
        -	               supercedes: DEFAULT_CONFIG.Y.supercedes
        -               }
        -           );
        -
        -	/**
        -	* An array with the absolute x and y positions of the Overlay
        -	* @config xy
        -	* @type Number[]
        -	* @default null
        -	*/
        -	this.cfg.addProperty(
        -	           DEFAULT_CONFIG.XY.key,
        -	           {
        -	               handler: this.configXY, 
        -	               suppressEvent: DEFAULT_CONFIG.XY.suppressEvent, 
        -	               supercedes: DEFAULT_CONFIG.XY.supercedes
        -               }
        -           );
        -
        -	/**
        -	* The array of context arguments for context-sensitive positioning. The format is: [id or element, element corner, context corner]. For example, setting this property to ["img1", "tl", "bl"] would align the Overlay's top left corner to the context element's bottom left corner.
        -	* @config context
        -	* @type Array
        -	* @default null
        -	*/
        -	this.cfg.addProperty(
        -	           DEFAULT_CONFIG.CONTEXT.key,
        -	           {
        -	               handler: this.configContext, 
        -	               suppressEvent: DEFAULT_CONFIG.CONTEXT.suppressEvent, 
        -	               supercedes: DEFAULT_CONFIG.CONTEXT.supercedes
        -               }
        -           );
        -
        -	/**
        -	* True if the Overlay should be anchored to the center of the viewport.
        -	* @config fixedcenter
        -	* @type Boolean
        -	* @default false
        -	*/
        -	this.cfg.addProperty(
        -               DEFAULT_CONFIG.FIXED_CENTER.key, 
        -               {
        -                    handler: this.configFixedCenter,
        -                    value: DEFAULT_CONFIG.FIXED_CENTER.value, 
        -                    validator: DEFAULT_CONFIG.FIXED_CENTER.validator, 
        -                    supercedes: DEFAULT_CONFIG.FIXED_CENTER.supercedes
        -                }
        -            );
        -
        -	/**
        -	* CSS width of the Overlay.
        -	* @config width
        -	* @type String
        -	* @default null
        -	*/
        -	this.cfg.addProperty(
        -	           DEFAULT_CONFIG.WIDTH.key,
        -	           {
        -	               handler: this.configWidth, 
        -	               suppressEvent: DEFAULT_CONFIG.WIDTH.suppressEvent, 
        -	               supercedes: DEFAULT_CONFIG.WIDTH.supercedes
        -               }
        -           );
        -
        -	/**
        -	* CSS height of the Overlay.
        -	* @config height
        -	* @type String
        -	* @default null
        -	*/
        -	this.cfg.addProperty(
        -	           DEFAULT_CONFIG.HEIGHT.key, 
        -	           {
        -	               handler: this.configHeight, 
        -	               suppressEvent: DEFAULT_CONFIG.HEIGHT.suppressEvent, 
        -	               supercedes: DEFAULT_CONFIG.HEIGHT.supercedes
        -               }
        -           );
        -
        -	/**
        -	* CSS z-index of the Overlay.
        -	* @config zIndex
        -	* @type Number
        -	* @default null
        -	*/
        -	this.cfg.addProperty(
        -	           DEFAULT_CONFIG.ZINDEX.key, 
        -	           {
        -	               handler: this.configzIndex,
        -	               value: DEFAULT_CONFIG.ZINDEX.value
        -               }
        -           );
        -
        -	/**
        -	* True if the Overlay should be prevented from being positioned out of the viewport.
        -	* @config constraintoviewport
        -	* @type Boolean
        -	* @default false
        -	*/
        -	this.cfg.addProperty(
        -	           DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.key, 
        -	           {
        -	               handler: this.configConstrainToViewport, 
        -	               value: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.value, 
        -	               validator: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.validator, 
        -	               supercedes: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.supercedes
        -               }
        -           );
        -
        -	/**
        -	* True if the Overlay should have an IFRAME shim (for correcting the select z-index bug in IE6 and below).
        -	* @config iframe
        -	* @type Boolean
        -	* @default true for IE6 and below, false for all others
        -	*/
        -	this.cfg.addProperty(
        -	           DEFAULT_CONFIG.IFRAME.key, 
        -	           {
        -	               handler: this.configIframe, 
        -	               value: DEFAULT_CONFIG.IFRAME.value, 
        -	               validator: DEFAULT_CONFIG.IFRAME.validator, 
        -	               supercedes: DEFAULT_CONFIG.IFRAME.supercedes
        -	           }
        -           );
        -
        -};
        -
        -/**
        -* Moves the Overlay to the specified position. This function is identical to calling this.cfg.setProperty("xy", [x,y]);
        -* @method moveTo
        -* @param {Number}	x	The Overlay's new x position
        -* @param {Number}	y	The Overlay's new y position
        -*/
        -YAHOO.widget.Overlay.prototype.moveTo = function(x, y) {
        -	this.cfg.setProperty("xy",[x,y]);
        -};
        -
        -/**
        -* Adds a special CSS class to the Overlay when Mac/Gecko is in use, to work around a Gecko bug where
        -* scrollbars cannot be hidden. See https://bugzilla.mozilla.org/show_bug.cgi?id=187435
        -* @method hideMacGeckoScrollbars
        -*/
        -YAHOO.widget.Overlay.prototype.hideMacGeckoScrollbars = function() {
        -	YAHOO.util.Dom.removeClass(this.element, "show-scrollbars");
        -	YAHOO.util.Dom.addClass(this.element, "hide-scrollbars");
        -};
        -
        -/**
        -* Removes a special CSS class from the Overlay when Mac/Gecko is in use, to work around a Gecko bug where
        -* scrollbars cannot be hidden. See https://bugzilla.mozilla.org/show_bug.cgi?id=187435
        -* @method showMacGeckoScrollbars
        -*/
        -YAHOO.widget.Overlay.prototype.showMacGeckoScrollbars = function() {
        -	YAHOO.util.Dom.removeClass(this.element, "hide-scrollbars");
        -	YAHOO.util.Dom.addClass(this.element, "show-scrollbars");
        -};
        -
        -// BEGIN BUILT-IN PROPERTY EVENT HANDLERS //
        -
        -/**
        -* The default event handler fired when the "visible" property is changed. This method is responsible for firing showEvent and hideEvent.
        -* @method configVisible
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Overlay.prototype.configVisible = function(type, args, obj) {
        -	var visible = args[0];
        -	var currentVis = YAHOO.util.Dom.getStyle(this.element, "visibility");
        -
        -	if (currentVis == "inherit") {
        -		var e = this.element.parentNode;
        -		while (e.nodeType != 9 && e.nodeType != 11) {
        -			currentVis = YAHOO.util.Dom.getStyle(e, "visibility");
        -			if (currentVis != "inherit") { break; }
        -			e = e.parentNode;
        -		}
        -		if (currentVis == "inherit") {
        -			currentVis = "visible";
        -		}
        -	}
        -
        -	var effect = this.cfg.getProperty("effect");
        -
        -	var effectInstances = [];
        -	if (effect) {
        -		if (effect instanceof Array) {
        -			for (var i=0;i<effect.length;i++) {
        -				var eff = effect[i];
        -				effectInstances[effectInstances.length] = eff.effect(this, eff.duration);
        -			}
        -		} else {
        -			effectInstances[effectInstances.length] = effect.effect(this, effect.duration);
        -		}
        -	}
        -
        -	var isMacGecko = (this.platform == "mac" && this.browser == "gecko");
        -
        -	if (visible) { // Show
        -		if (isMacGecko) {
        -			this.showMacGeckoScrollbars();
        -		}
        -
        -		if (effect) { // Animate in
        -			if (visible) { // Animate in if not showing
        -				if (currentVis != "visible" || currentVis === "") {
        -					this.beforeShowEvent.fire();
        -					for (var j=0;j<effectInstances.length;j++) {
        -						var ei = effectInstances[j];
        -						if (j === 0 && ! YAHOO.util.Config.alreadySubscribed(ei.animateInCompleteEvent,this.showEvent.fire,this.showEvent)) {
        -							ei.animateInCompleteEvent.subscribe(this.showEvent.fire,this.showEvent,true); // Delegate showEvent until end of animateInComplete
        -						}
        -						ei.animateIn();
        -					}
        -				}
        -			}
        -		} else { // Show
        -			if (currentVis != "visible" || currentVis === "") {
        -				this.beforeShowEvent.fire();
        -				YAHOO.util.Dom.setStyle(this.element, "visibility", "visible");
        -				this.cfg.refireEvent("iframe");
        -				this.showEvent.fire();
        -			}
        -		}
        -
        -	} else { // Hide
        -		if (isMacGecko) {
        -			this.hideMacGeckoScrollbars();
        -		}
        -
        -		if (effect) { // Animate out if showing
        -			if (currentVis == "visible") {
        -				this.beforeHideEvent.fire();
        -				for (var k=0;k<effectInstances.length;k++) {
        -					var h = effectInstances[k];
        -					if (k === 0 && ! YAHOO.util.Config.alreadySubscribed(h.animateOutCompleteEvent,this.hideEvent.fire,this.hideEvent)) {
        -						h.animateOutCompleteEvent.subscribe(this.hideEvent.fire,this.hideEvent,true); // Delegate hideEvent until end of animateOutComplete
        -					}
        -					h.animateOut();
        -				}
        -			} else if (currentVis === "") {
        -				YAHOO.util.Dom.setStyle(this.element, "visibility", "hidden");
        -			}
        -		} else { // Simple hide
        -			if (currentVis == "visible" || currentVis === "") {
        -				this.beforeHideEvent.fire();
        -				YAHOO.util.Dom.setStyle(this.element, "visibility", "hidden");
        -				this.cfg.refireEvent("iframe");
        -				this.hideEvent.fire();
        -			}
        -		}
        -	}
        -};
        -
        -/**
        -* Center event handler used for centering on scroll/resize, but only if the Overlay is visible
        -* @method doCenterOnDOMEvent
        -*/
        -YAHOO.widget.Overlay.prototype.doCenterOnDOMEvent = function() {
        -	if (this.cfg.getProperty("visible")) {
        -		this.center();
        -	}
        -};
        -
        -/**
        -* The default event handler fired when the "fixedcenter" property is changed.
        -* @method configFixedCenter
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Overlay.prototype.configFixedCenter = function(type, args, obj) {
        -	var val = args[0];
        -
        -	if (val) {
        -		this.center();
        -
        -		if (! YAHOO.util.Config.alreadySubscribed(this.beforeShowEvent, this.center, this)) {
        -			this.beforeShowEvent.subscribe(this.center, this, true);
        -		}
        -
        -		if (! YAHOO.util.Config.alreadySubscribed(YAHOO.widget.Overlay.windowResizeEvent, this.doCenterOnDOMEvent, this)) {
        -			YAHOO.widget.Overlay.windowResizeEvent.subscribe(this.doCenterOnDOMEvent, this, true);
        -		}
        -
        -		if (! YAHOO.util.Config.alreadySubscribed(YAHOO.widget.Overlay.windowScrollEvent, this.doCenterOnDOMEvent, this)) {
        -			YAHOO.widget.Overlay.windowScrollEvent.subscribe( this.doCenterOnDOMEvent, this, true);
        -		}
        -	} else {
        -		YAHOO.widget.Overlay.windowResizeEvent.unsubscribe(this.doCenterOnDOMEvent, this);
        -		YAHOO.widget.Overlay.windowScrollEvent.unsubscribe(this.doCenterOnDOMEvent, this);
        -	}
        -};
        -
        -/**
        -* The default event handler fired when the "height" property is changed.
        -* @method configHeight
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Overlay.prototype.configHeight = function(type, args, obj) {
        -	var height = args[0];
        -	var el = this.element;
        -	YAHOO.util.Dom.setStyle(el, "height", height);
        -	this.cfg.refireEvent("iframe");
        -};
        -
        -/**
        -* The default event handler fired when the "width" property is changed.
        -* @method configWidth
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Overlay.prototype.configWidth = function(type, args, obj) {
        -	var width = args[0];
        -	var el = this.element;
        -	YAHOO.util.Dom.setStyle(el, "width", width);
        -	this.cfg.refireEvent("iframe");
        -};
        -
        -/**
        -* The default event handler fired when the "zIndex" property is changed.
        -* @method configzIndex
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Overlay.prototype.configzIndex = function(type, args, obj) {
        -	var zIndex = args[0];
        -
        -	var el = this.element;
        -
        -	if (! zIndex) {
        -		zIndex = YAHOO.util.Dom.getStyle(el, "zIndex");
        -		if (! zIndex || isNaN(zIndex)) {
        -			zIndex = 0;
        -		}
        -	}
        -
        -	if (this.iframe) {
        -		if (zIndex <= 0) {
        -			zIndex = 1;
        -		}
        -		YAHOO.util.Dom.setStyle(this.iframe, "zIndex", (zIndex-1));
        -	}
        -
        -	YAHOO.util.Dom.setStyle(el, "zIndex", zIndex);
        -	this.cfg.setProperty("zIndex", zIndex, true);
        -};
        -
        -/**
        -* The default event handler fired when the "xy" property is changed.
        -* @method configXY
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Overlay.prototype.configXY = function(type, args, obj) {
        -	var pos = args[0];
        -	var x = pos[0];
        -	var y = pos[1];
        -
        -	this.cfg.setProperty("x", x);
        -	this.cfg.setProperty("y", y);
        -
        -	this.beforeMoveEvent.fire([x,y]);
        -
        -	x = this.cfg.getProperty("x");
        -	y = this.cfg.getProperty("y");
        -
        -	YAHOO.log("xy: " + [x,y], "iframe");
        -
        -	this.cfg.refireEvent("iframe");
        -	this.moveEvent.fire([x,y]);
        -};
        -
        -/**
        -* The default event handler fired when the "x" property is changed.
        -* @method configX
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Overlay.prototype.configX = function(type, args, obj) {
        -	var x = args[0];
        -	var y = this.cfg.getProperty("y");
        -
        -	this.cfg.setProperty("x", x, true);
        -	this.cfg.setProperty("y", y, true);
        -
        -	this.beforeMoveEvent.fire([x,y]);
        -
        -	x = this.cfg.getProperty("x");
        -	y = this.cfg.getProperty("y");
        -
        -	YAHOO.util.Dom.setX(this.element, x, true);
        -
        -	this.cfg.setProperty("xy", [x, y], true);
        -
        -	this.cfg.refireEvent("iframe");
        -	this.moveEvent.fire([x, y]);
        -};
        -
        -/**
        -* The default event handler fired when the "y" property is changed.
        -* @method configY
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Overlay.prototype.configY = function(type, args, obj) {
        -	var x = this.cfg.getProperty("x");
        -	var y = args[0];
        -
        -	this.cfg.setProperty("x", x, true);
        -	this.cfg.setProperty("y", y, true);
        -
        -	this.beforeMoveEvent.fire([x,y]);
        -
        -	x = this.cfg.getProperty("x");
        -	y = this.cfg.getProperty("y");
        -
        -	YAHOO.util.Dom.setY(this.element, y, true);
        -
        -	this.cfg.setProperty("xy", [x, y], true);
        -
        -	this.cfg.refireEvent("iframe");
        -	this.moveEvent.fire([x, y]);
        -};
        -
        -/**
        -* Shows the iframe shim, if it has been enabled
        -* @method showIframe
        -*/
        -YAHOO.widget.Overlay.prototype.showIframe = function() {
        -	if (this.iframe) {
        -		this.iframe.style.display = "block";
        -	}
        -};
        -
        -/**
        -* Hides the iframe shim, if it has been enabled
        -* @method hideIframe
        -*/
        -YAHOO.widget.Overlay.prototype.hideIframe = function() {
        -	if (this.iframe) {
        -		this.iframe.style.display = "none";
        -	}
        -};
        -
        -/**
        -* The default event handler fired when the "iframe" property is changed.
        -* @method configIframe
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Overlay.prototype.configIframe = function(type, args, obj) {
        -
        -	var val = args[0];
        -
        -	if (val) { // IFRAME shim is enabled
        -
        -		if (! YAHOO.util.Config.alreadySubscribed(this.showEvent, this.showIframe, this)) {
        -			this.showEvent.subscribe(this.showIframe, this, true);
        -		}
        -		if (! YAHOO.util.Config.alreadySubscribed(this.hideEvent, this.hideIframe, this)) {
        -			this.hideEvent.subscribe(this.hideIframe, this, true);
        -		}
        -
        -		var x = this.cfg.getProperty("x");
        -		var y = this.cfg.getProperty("y");
        -
        -		if (! x || ! y) {
        -			this.syncPosition();
        -			x = this.cfg.getProperty("x");
        -			y = this.cfg.getProperty("y");
        -		}
        -
        -		YAHOO.log("iframe positioning to: " + [x,y], "iframe");
        -
        -		if (! isNaN(x) && ! isNaN(y)) {
        -			if (! this.iframe) {
        -				this.iframe = document.createElement("iframe");
        -				if (this.isSecure) {
        -					this.iframe.src = YAHOO.widget.Overlay.IFRAME_SRC;
        -				}
        -
        -				var parent = this.element.parentNode;
        -				if (parent) {
        -					parent.appendChild(this.iframe);
        -				} else {
        -					document.body.appendChild(this.iframe);
        -				}
        -
        -				YAHOO.util.Dom.setStyle(this.iframe, "position", "absolute");
        -				YAHOO.util.Dom.setStyle(this.iframe, "border", "none");
        -				YAHOO.util.Dom.setStyle(this.iframe, "margin", "0");
        -				YAHOO.util.Dom.setStyle(this.iframe, "padding", "0");
        -				YAHOO.util.Dom.setStyle(this.iframe, "opacity", "0");
        -				if (this.cfg.getProperty("visible")) {
        -					this.showIframe();
        -				} else {
        -					this.hideIframe();
        -				}
        -			}
        -
        -			var iframeDisplay = YAHOO.util.Dom.getStyle(this.iframe, "display");
        -
        -			if (iframeDisplay == "none") {
        -				this.iframe.style.display = "block";
        -			}
        -
        -			YAHOO.util.Dom.setXY(this.iframe, [x,y]);
        -
        -			var width = this.element.clientWidth;
        -			var height = this.element.clientHeight;
        -
        -			YAHOO.util.Dom.setStyle(this.iframe, "width", (width+2) + "px");
        -			YAHOO.util.Dom.setStyle(this.iframe, "height", (height+2) + "px");
        -
        -			if (iframeDisplay == "none") {
        -				this.iframe.style.display = "none";
        -			}
        -		}
        -	} else {
        -		if (this.iframe) {
        -			this.iframe.style.display = "none";
        -		}
        -		this.showEvent.unsubscribe(this.showIframe, this);
        -		this.hideEvent.unsubscribe(this.hideIframe, this);
        -	}
        -};
        -
        -
        -/**
        -* The default event handler fired when the "constraintoviewport" property is changed.
        -* @method configConstrainToViewport
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Overlay.prototype.configConstrainToViewport = function(type, args, obj) {
        -	var val = args[0];
        -	if (val) {
        -		if (! YAHOO.util.Config.alreadySubscribed(this.beforeMoveEvent, this.enforceConstraints, this)) {
        -			this.beforeMoveEvent.subscribe(this.enforceConstraints, this, true);
        -		}
        -	} else {
        -		this.beforeMoveEvent.unsubscribe(this.enforceConstraints, this);
        -	}
        -};
        -
        -/**
        -* The default event handler fired when the "context" property is changed.
        -* @method configContext
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Overlay.prototype.configContext = function(type, args, obj) {
        -	var contextArgs = args[0];
        -
        -	if (contextArgs) {
        -		var contextEl = contextArgs[0];
        -		var elementMagnetCorner = contextArgs[1];
        -		var contextMagnetCorner = contextArgs[2];
        -
        -		if (contextEl) {
        -			if (typeof contextEl == "string") {
        -				this.cfg.setProperty("context", [document.getElementById(contextEl),elementMagnetCorner,contextMagnetCorner], true);
        -			}
        -
        -			if (elementMagnetCorner && contextMagnetCorner) {
        -				this.align(elementMagnetCorner, contextMagnetCorner);
        -			}
        -		}
        -	}
        -};
        -
        -
        -// END BUILT-IN PROPERTY EVENT HANDLERS //
        -
        -/**
        -* Aligns the Overlay to its context element using the specified corner points (represented by the constants TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, and BOTTOM_RIGHT.
        -* @method align
        -* @param {String} elementAlign		The String representing the corner of the Overlay that should be aligned to the context element
        -* @param {String} contextAlign		The corner of the context element that the elementAlign corner should stick to.
        -*/
        -YAHOO.widget.Overlay.prototype.align = function(elementAlign, contextAlign) {
        -	var contextArgs = this.cfg.getProperty("context");
        -	if (contextArgs) {
        -		var context = contextArgs[0];
        -
        -		var element = this.element;
        -		var me = this;
        -
        -		if (! elementAlign) {
        -			elementAlign = contextArgs[1];
        -		}
        -
        -		if (! contextAlign) {
        -			contextAlign = contextArgs[2];
        -		}
        -
        -		if (element && context) {
        -			var contextRegion = YAHOO.util.Dom.getRegion(context);
        -
        -			var doAlign = function(v,h) {
        -				switch (elementAlign) {
        -					case YAHOO.widget.Overlay.TOP_LEFT:
        -						me.moveTo(h,v);
        -						break;
        -					case YAHOO.widget.Overlay.TOP_RIGHT:
        -						me.moveTo(h-element.offsetWidth,v);
        -						break;
        -					case YAHOO.widget.Overlay.BOTTOM_LEFT:
        -						me.moveTo(h,v-element.offsetHeight);
        -						break;
        -					case YAHOO.widget.Overlay.BOTTOM_RIGHT:
        -						me.moveTo(h-element.offsetWidth,v-element.offsetHeight);
        -						break;
        -				}
        -			};
        -
        -			switch (contextAlign) {
        -				case YAHOO.widget.Overlay.TOP_LEFT:
        -					doAlign(contextRegion.top, contextRegion.left);
        -					break;
        -				case YAHOO.widget.Overlay.TOP_RIGHT:
        -					doAlign(contextRegion.top, contextRegion.right);
        -					break;
        -				case YAHOO.widget.Overlay.BOTTOM_LEFT:
        -					doAlign(contextRegion.bottom, contextRegion.left);
        -					break;
        -				case YAHOO.widget.Overlay.BOTTOM_RIGHT:
        -					doAlign(contextRegion.bottom, contextRegion.right);
        -					break;
        -			}
        -		}
        -	}
        -};
        -
        -/**
        -* The default event handler executed when the moveEvent is fired, if the "constraintoviewport" is set to true.
        -* @method enforceConstraints
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Overlay.prototype.enforceConstraints = function(type, args, obj) {
        -	var pos = args[0];
        -
        -	var x = pos[0];
        -	var y = pos[1];
        -
        -	var offsetHeight = this.element.offsetHeight;
        -	var offsetWidth = this.element.offsetWidth;
        -
        -	var viewPortWidth = YAHOO.util.Dom.getViewportWidth();
        -	var viewPortHeight = YAHOO.util.Dom.getViewportHeight();
        -
        -	var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
        -	var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
        -
        -	var topConstraint = scrollY + 10;
        -	var leftConstraint = scrollX + 10;
        -	var bottomConstraint = scrollY + viewPortHeight - offsetHeight - 10;
        -	var rightConstraint = scrollX + viewPortWidth - offsetWidth - 10;
        -
        -	if (x < leftConstraint) {
        -		x = leftConstraint;
        -	} else if (x > rightConstraint) {
        -		x = rightConstraint;
        -	}
        -
        -	if (y < topConstraint) {
        -		y = topConstraint;
        -	} else if (y > bottomConstraint) {
        -		y = bottomConstraint;
        -	}
        -
        -	this.cfg.setProperty("x", x, true);
        -	this.cfg.setProperty("y", y, true);
        -	this.cfg.setProperty("xy", [x,y], true);
        -};
        -
        -/**
        -* Centers the container in the viewport.
        -* @method center
        -*/
        -YAHOO.widget.Overlay.prototype.center = function() {
        -	var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
        -	var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
        -
        -	var viewPortWidth = YAHOO.util.Dom.getClientWidth();
        -	var viewPortHeight = YAHOO.util.Dom.getClientHeight();
        -
        -	var elementWidth = this.element.offsetWidth;
        -	var elementHeight = this.element.offsetHeight;
        -
        -	var x = (viewPortWidth / 2) - (elementWidth / 2) + scrollX;
        -	var y = (viewPortHeight / 2) - (elementHeight / 2) + scrollY;
        -
        -	this.cfg.setProperty("xy", [parseInt(x, 10), parseInt(y, 10)]);
        -
        -	this.cfg.refireEvent("iframe");
        -};
        -
        -/**
        -* Synchronizes the Panel's "xy", "x", and "y" properties with the Panel's position in the DOM. This is primarily used to update position information during drag & drop.
        -* @method syncPosition
        -*/
        -YAHOO.widget.Overlay.prototype.syncPosition = function() {
        -	var pos = YAHOO.util.Dom.getXY(this.element);
        -	this.cfg.setProperty("x", pos[0], true);
        -	this.cfg.setProperty("y", pos[1], true);
        -	this.cfg.setProperty("xy", pos, true);
        -};
        -
        -/**
        -* Event handler fired when the resize monitor element is resized.
        -* @method onDomResize
        -* @param {DOMEvent} e	The resize DOM event
        -* @param {Object} obj	The scope object
        -*/
        -YAHOO.widget.Overlay.prototype.onDomResize = function(e, obj) {
        -	YAHOO.widget.Overlay.superclass.onDomResize.call(this, e, obj);
        -	var me = this;
        -	setTimeout(function() {
        -		me.syncPosition();
        -		me.cfg.refireEvent("iframe");
        -		me.cfg.refireEvent("context");
        -	}, 0);
        -};
        -
        -/**
        -* Removes the Overlay element from the DOM and sets all child elements to null.
        -* @method destroy
        -*/
        -YAHOO.widget.Overlay.prototype.destroy = function() {
        -	if (this.iframe) {
        -		this.iframe.parentNode.removeChild(this.iframe);
        -	}
        -
        -	this.iframe = null;
        -
        -	YAHOO.widget.Overlay.windowResizeEvent.unsubscribe(this.doCenterOnDOMEvent, this);
        -	YAHOO.widget.Overlay.windowScrollEvent.unsubscribe(this.doCenterOnDOMEvent, this);
        -
        -	YAHOO.widget.Overlay.superclass.destroy.call(this);
        -};
        -
        -/**
        -* Returns a String representation of the object.
        -* @method toString
        -* @return {String} The string representation of the Overlay.
        -*/
        -YAHOO.widget.Overlay.prototype.toString = function() {
        -	return "Overlay " + this.id;
        -};
        -
        -/**
        -* A singleton CustomEvent used for reacting to the DOM event for window scroll
        -* @event YAHOO.widget.Overlay.windowScrollEvent
        -*/
        -YAHOO.widget.Overlay.windowScrollEvent = new YAHOO.util.CustomEvent("windowScroll");
        -
        -/**
        -* A singleton CustomEvent used for reacting to the DOM event for window resize
        -* @event YAHOO.widget.Overlay.windowResizeEvent
        -*/
        -YAHOO.widget.Overlay.windowResizeEvent = new YAHOO.util.CustomEvent("windowResize");
        -
        -/**
        -* The DOM event handler used to fire the CustomEvent for window scroll
        -* @method YAHOO.widget.Overlay.windowScrollHandler
        -* @static
        -* @param {DOMEvent} e The DOM scroll event
        -*/
        -YAHOO.widget.Overlay.windowScrollHandler = function(e) {
        -	if (YAHOO.widget.Module.prototype.browser == "ie" || YAHOO.widget.Module.prototype.browser == "ie7") {
        -		if (! window.scrollEnd) {
        -			window.scrollEnd = -1;
        -		}
        -		clearTimeout(window.scrollEnd);
        -		window.scrollEnd = setTimeout(function() { YAHOO.widget.Overlay.windowScrollEvent.fire(); }, 1);
        -	} else {
        -		YAHOO.widget.Overlay.windowScrollEvent.fire();
        -	}
        -};
        -
        -/**
        -* The DOM event handler used to fire the CustomEvent for window resize
        -* @method YAHOO.widget.Overlay.windowResizeHandler
        -* @static
        -* @param {DOMEvent} e The DOM resize event
        -*/
        -YAHOO.widget.Overlay.windowResizeHandler = function(e) {
        -	if (YAHOO.widget.Module.prototype.browser == "ie" || YAHOO.widget.Module.prototype.browser == "ie7") {
        -		if (! window.resizeEnd) {
        -			window.resizeEnd = -1;
        -		}
        -		clearTimeout(window.resizeEnd);
        -		window.resizeEnd = setTimeout(function() { YAHOO.widget.Overlay.windowResizeEvent.fire(); }, 100);
        -	} else {
        -		YAHOO.widget.Overlay.windowResizeEvent.fire();
        -	}
        -};
        -
        -/**
        -* A boolean that indicated whether the window resize and scroll events have already been subscribed to.
        -* @property YAHOO.widget.Overlay._initialized
        -* @private
        -* @type Boolean
        -*/
        -YAHOO.widget.Overlay._initialized = null;
        -
        -if (YAHOO.widget.Overlay._initialized === null) {
        -	YAHOO.util.Event.addListener(window, "scroll", YAHOO.widget.Overlay.windowScrollHandler);
        -	YAHOO.util.Event.addListener(window, "resize", YAHOO.widget.Overlay.windowResizeHandler);
        -
        -	YAHOO.widget.Overlay._initialized = true;
        -}
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/OverlayManager.js.html b/www/extras/yui/docs/OverlayManager.js.html deleted file mode 100644 index ae6a397db..000000000 --- a/www/extras/yui/docs/OverlayManager.js.html +++ /dev/null @@ -1,510 +0,0 @@ - - - - API: container OverlayManager.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - - > OverlayManager.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* OverlayManager is used for maintaining the focus status of multiple Overlays.* @namespace YAHOO.widget
        -* @namespace YAHOO.widget
        -* @class OverlayManager
        -* @constructor
        -* @param {Array}	overlays	Optional. A collection of Overlays to register with the manager.
        -* @param {Object}	userConfig		The object literal representing the user configuration of the OverlayManager
        -*/
        -YAHOO.widget.OverlayManager = function(userConfig) {
        -	this.init(userConfig);
        -};
        -
        -/**
        -* The CSS class representing a focused Overlay
        -* @property YAHOO.widget.OverlayManager.CSS_FOCUSED
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.OverlayManager.CSS_FOCUSED = "focused";
        -
        -YAHOO.widget.OverlayManager.prototype = {
        -	/**
        -	* The class's constructor function
        -	* @property contructor
        -	* @type Function
        -	*/
        -	constructor : YAHOO.widget.OverlayManager,
        -
        -	/**
        -	* The array of Overlays that are currently registered
        -	* @property overlays
        -	* @type YAHOO.widget.Overlay[]
        -	*/
        -	overlays : null,
        -
        -	/**
        -	* Initializes the default configuration of the OverlayManager
        -	* @method initDefaultConfig
        -	*/
        -	initDefaultConfig : function() {
        -		/**
        -		* The collection of registered Overlays in use by the OverlayManager
        -		* @config overlays
        -		* @type YAHOO.widget.Overlay[]
        -		* @default null
        -		*/
        -		this.cfg.addProperty("overlays", { suppressEvent:true } );
        -
        -		/**
        -		* The default DOM event that should be used to focus an Overlay
        -		* @config focusevent
        -		* @type String
        -		* @default "mousedown"
        -		*/
        -		this.cfg.addProperty("focusevent", { value:"mousedown" } );
        -	},
        -
        -	/**
        -	* Initializes the OverlayManager
        -	* @method init
        -	* @param {YAHOO.widget.Overlay[]}	overlays	Optional. A collection of Overlays to register with the manager.
        -	* @param {Object}	userConfig		The object literal representing the user configuration of the OverlayManager
        -	*/
        -	init : function(userConfig) {
        -		/**
        -		* The OverlayManager's Config object used for monitoring configuration properties.
        -		* @property cfg
        -		* @type YAHOO.util.Config
        -		*/
        -		this.cfg = new YAHOO.util.Config(this);
        -
        -		this.initDefaultConfig();
        -
        -		if (userConfig) {
        -			this.cfg.applyConfig(userConfig, true);
        -		}
        -		this.cfg.fireQueue();
        -
        -		/**
        -		* The currently activated Overlay
        -		* @property activeOverlay
        -		* @private
        -		* @type YAHOO.widget.Overlay
        -		*/
        -		var activeOverlay = null;
        -
        -		/**
        -		* Returns the currently focused Overlay
        -		* @method getActive
        -		* @return {YAHOO.widget.Overlay}	The currently focused Overlay
        -		*/
        -		this.getActive = function() {
        -			return activeOverlay;
        -		};
        -
        -		/**
        -		* Focuses the specified Overlay
        -		* @method focus
        -		* @param {YAHOO.widget.Overlay} overlay	The Overlay to focus
        -		* @param {String} overlay	The id of the Overlay to focus
        -		*/
        -		this.focus = function(overlay) {
        -
        -			var o = this.find(overlay);
        -
        -			if (o) {
        -
        -                if (activeOverlay != o) {
        -
        -                    if(activeOverlay) {
        -    
        -                        activeOverlay.blur();
        -    
        -                    }
        -    
        -                    activeOverlay = o;
        -    
        -                    YAHOO.util.Dom.addClass(activeOverlay.element, YAHOO.widget.OverlayManager.CSS_FOCUSED);
        -    
        -                    this.overlays.sort(this.compareZIndexDesc);
        -    
        -                    var topZIndex = YAHOO.util.Dom.getStyle(this.overlays[0].element, "zIndex");
        -    
        -                    if (! isNaN(topZIndex) && this.overlays[0] != overlay) {
        -    
        -                        activeOverlay.cfg.setProperty("zIndex", (parseInt(topZIndex, 10) + 2));
        -    
        -                    }
        -    
        -                    this.overlays.sort(this.compareZIndexDesc);
        -    
        -                    o.focusEvent.fire();
        -                
        -                }
        -
        -			}
        -
        -		};
        -
        -		/**
        -		* Removes the specified Overlay from the manager
        -		* @method remove
        -		* @param {YAHOO.widget.Overlay}	overlay	The Overlay to remove
        -		* @param {String} overlay	The id of the Overlay to remove
        -		*/
        -		this.remove = function(overlay) {
        -			var o = this.find(overlay);
        -			if (o) {
        -				var originalZ = YAHOO.util.Dom.getStyle(o.element, "zIndex");
        -				o.cfg.setProperty("zIndex", -1000, true);
        -				this.overlays.sort(this.compareZIndexDesc);
        -				this.overlays = this.overlays.slice(0, this.overlays.length-1);
        -
        -                o.hideEvent.unsubscribe(o.blur);
        -                o.destroyEvent.unsubscribe(this._onOverlayDestroy, o);
        -
        -                if (o.element) {
        -
        -        			YAHOO.util.Event.removeListener(o.element, this.cfg.getProperty("focusevent"), this._onOverlayElementFocus);
        -
        -                }
        -
        -				o.cfg.setProperty("zIndex", originalZ, true);
        -				o.cfg.setProperty("manager", null);
        -
        -                o.focusEvent.unsubscribeAll();
        -                o.blurEvent.unsubscribeAll();
        -
        -				o.focusEvent = null;
        -				o.blurEvent = null;
        -
        -				o.focus = null;
        -				o.blur = null;
        -			}
        -		};
        -
        -		/**
        -		* Removes focus from all registered Overlays in the manager
        -		* @method blurAll
        -		*/
        -		this.blurAll = function() {
        -			for (var o=0;o<this.overlays.length;o++) {
        -                this.overlays[o].blur();
        -			}
        -		};
        -
        -
        -        this._onOverlayBlur = function(p_sType, p_aArgs) {
        -            activeOverlay = null;
        -        };
        -
        -
        -		var overlays = this.cfg.getProperty("overlays");
        -
        -		if (! this.overlays) {
        -			this.overlays = [];
        -		}
        -
        -		if (overlays) {
        -			this.register(overlays);
        -			this.overlays.sort(this.compareZIndexDesc);
        -		}
        -	},
        -
        -
        -    /**
        -    * @method _onOverlayElementFocus
        -    * @description Event handler for the DOM event that is used to focus 
        -    * the Overlay instance as specified by the "focusevent" 
        -    * configuration property.
        -    * @private
        -    * @param {Event} p_oEvent Object representing the DOM event object passed 
        -    * back by the event utility (YAHOO.util.Event).
        -    */
        -    _onOverlayElementFocus: function(p_oEvent) {
        -    
        -        var oTarget = YAHOO.util.Event.getTarget(p_oEvent),
        -            oClose = this.close;
        -
        -        
        -        if (
        -            oClose && 
        -            (
        -                oTarget == oClose ||  
        -                YAHOO.util.Dom.isAncestor(oClose, oTarget)
        -            )
        -        ) {
        -        
        -            this.blur();
        -        
        -        }
        -        else {
        -        
        -            this.focus();
        -        
        -        }
        -    
        -    },
        -
        -
        -    /**
        -    * @method _onOverlayDestroy
        -    * @description "destroy" event handler for the Overlay.
        -    * @private
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    * @param {YAHOO.widget.Overlay} p_oOverlay Object representing the menu that 
        -    * fired the event.
        -    */
        -    _onOverlayDestroy: function(p_sType, p_aArgs, p_oOverlay) {
        -
        -        this.remove(p_oOverlay);
        -    
        -    },
        -
        -	/**
        -	* Registers an Overlay or an array of Overlays with the manager. Upon registration, the Overlay receives functions for focus and blur, along with CustomEvents for each.
        -	* @method register
        -	* @param {YAHOO.widget.Overlay}	overlay		An Overlay to register with the manager.
        -	* @param {YAHOO.widget.Overlay[]}	overlay		An array of Overlays to register with the manager.
        -	* @return	{Boolean}	True if any Overlays are registered.
        -	*/
        -	register : function(overlay) {
        -		if (overlay instanceof YAHOO.widget.Overlay) {
        -			overlay.cfg.addProperty("manager", { value:this } );
        -
        -			overlay.focusEvent = new YAHOO.util.CustomEvent("focus", overlay);
        -			overlay.blurEvent = new YAHOO.util.CustomEvent("blur", overlay);
        -
        -			var mgr=this;
        -
        -			overlay.focus = function() {
        -				mgr.focus(this);
        -			};
        -
        -			overlay.blur = function() {
        -                if(mgr.getActive() == this) {
        -                    YAHOO.util.Dom.removeClass(this.element, YAHOO.widget.OverlayManager.CSS_FOCUSED);
        -                    this.blurEvent.fire();
        -				}
        -			};
        -
        -            overlay.blurEvent.subscribe(mgr._onOverlayBlur);
        -
        -            overlay.hideEvent.subscribe(overlay.blur);
        -            
        -            overlay.destroyEvent.subscribe(this._onOverlayDestroy, overlay, this);
        -
        -			YAHOO.util.Event.addListener(overlay.element, this.cfg.getProperty("focusevent"), this._onOverlayElementFocus, null, overlay);
        -
        -			var zIndex = YAHOO.util.Dom.getStyle(overlay.element, "zIndex");
        -			if (! isNaN(zIndex)) {
        -				overlay.cfg.setProperty("zIndex", parseInt(zIndex, 10));
        -			} else {
        -				overlay.cfg.setProperty("zIndex", 0);
        -			}
        -
        -			this.overlays.push(overlay);
        -			return true;
        -		} else if (overlay instanceof Array) {
        -			var regcount = 0;
        -			for (var i=0;i<overlay.length;i++) {
        -				if (this.register(overlay[i])) {
        -					regcount++;
        -				}
        -			}
        -			if (regcount > 0) {
        -				return true;
        -			}
        -		} else {
        -			return false;
        -		}
        -	},
        -
        -	/**
        -	* Attempts to locate an Overlay by instance or ID.
        -	* @method find
        -	* @param {YAHOO.widget.Overlay}	overlay		An Overlay to locate within the manager
        -	* @param {String}	overlay		An Overlay id to locate within the manager
        -	* @return	{YAHOO.widget.Overlay}	The requested Overlay, if found, or null if it cannot be located.
        -	*/
        -	find : function(overlay) {
        -		if (overlay instanceof YAHOO.widget.Overlay) {
        -			for (var o=0;o<this.overlays.length;o++) {
        -				if (this.overlays[o] == overlay) {
        -					return this.overlays[o];
        -				}
        -			}
        -		} else if (typeof overlay == "string") {
        -			for (var p=0;p<this.overlays.length;p++) {
        -				if (this.overlays[p].id == overlay) {
        -					return this.overlays[p];
        -				}
        -			}
        -		}
        -		return null;
        -	},
        -
        -	/**
        -	* Used for sorting the manager's Overlays by z-index.
        -	* @method compareZIndexDesc
        -	* @private
        -	* @return {Number}	0, 1, or -1, depending on where the Overlay should fall in the stacking order.
        -	*/
        -	compareZIndexDesc : function(o1, o2) {
        -		var zIndex1 = o1.cfg.getProperty("zIndex");
        -		var zIndex2 = o2.cfg.getProperty("zIndex");
        -
        -		if (zIndex1 > zIndex2) {
        -			return -1;
        -		} else if (zIndex1 < zIndex2) {
        -			return 1;
        -		} else {
        -			return 0;
        -		}
        -	},
        -
        -	/**
        -	* Shows all Overlays in the manager.
        -	* @method showAll
        -	*/
        -	showAll : function() {
        -		for (var o=0;o<this.overlays.length;o++) {
        -			this.overlays[o].show();
        -		}
        -	},
        -
        -	/**
        -	* Hides all Overlays in the manager.
        -	* @method hideAll
        -	*/
        -	hideAll : function() {
        -		for (var o=0;o<this.overlays.length;o++) {
        -			this.overlays[o].hide();
        -		}
        -	},
        -
        -	/**
        -	* Returns a string representation of the object.
        -	* @method toString
        -	* @return {String}	The string representation of the OverlayManager
        -	*/
        -	toString : function() {
        -		return "OverlayManager";
        -	}
        -
        -};
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Panel.js.html b/www/extras/yui/docs/Panel.js.html deleted file mode 100644 index 73a26ae67..000000000 --- a/www/extras/yui/docs/Panel.js.html +++ /dev/null @@ -1,937 +0,0 @@ - - - - API: container Panel.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - - > Panel.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* Panel is an implementation of Overlay that behaves like an OS window, with a draggable header and an optional close icon at the top right.
        -* @namespace YAHOO.widget
        -* @class Panel
        -* @extends YAHOO.widget.Overlay
        -* @constructor
        -* @param {String}	el	The element ID representing the Panel <em>OR</em>
        -* @param {HTMLElement}	el	The element representing the Panel
        -* @param {Object}	userConfig	The configuration object literal containing the configuration that should be set for this Panel. See configuration documentation for more details.
        -*/
        -YAHOO.widget.Panel = function(el, userConfig) {
        -	YAHOO.widget.Panel.superclass.constructor.call(this, el, userConfig);
        -};
        -
        -YAHOO.extend(YAHOO.widget.Panel, YAHOO.widget.Overlay);
        -
        -/**
        -* Constant representing the default CSS class used for a Panel
        -* @property YAHOO.widget.Panel.CSS_PANEL
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Panel.CSS_PANEL = "yui-panel";
        -
        -/**
        -* Constant representing the default CSS class used for a Panel's wrapping container
        -* @property YAHOO.widget.Panel.CSS_PANEL_CONTAINER
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Panel.CSS_PANEL_CONTAINER = "yui-panel-container";
        -
        -/**
        -* Constant representing the name of the Panel's events
        -* @property YAHOO.widget.Panel._EVENT_TYPES
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.Panel._EVENT_TYPES = {
        -
        -	"SHOW_MASK": "showMask",
        -	"HIDE_MASK": "hideMask",
        -	"DRAG": "drag"
        -
        -};
        -
        -/**
        -* Constant representing the Panel's configuration properties
        -* @property YAHOO.widget.Panel._DEFAULT_CONFIG
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.Panel._DEFAULT_CONFIG = {
        -
        -    "CLOSE": { 
        -        key: "close", 
        -        value:true, 
        -        validator:YAHOO.lang.isBoolean, 
        -        supercedes:["visible"] 
        -    },
        -
        -    "DRAGGABLE": { 
        -        key: "draggable", 
        -        value:(YAHOO.util.DD ? true : false), 
        -        validator:YAHOO.lang.isBoolean, 
        -        supercedes:["visible"]  
        -    },
        -
        -    "UNDERLAY": { 
        -        key: "underlay", 
        -        value:"shadow", 
        -        supercedes:["visible"] 
        -    },
        -
        -    "MODAL": { 
        -        key: "modal", 
        -        value:false, 
        -        validator:YAHOO.lang.isBoolean, 
        -        supercedes:["visible"] 
        -    },
        -
        -    "KEY_LISTENERS": { 
        -        key: "keylisteners", 
        -        suppressEvent:true, 
        -        supercedes:["visible"] 
        -    }
        -
        -};
        -
        -/**
        -* The Overlay initialization method, which is executed for Overlay and all of its subclasses. This method is automatically called by the constructor, and  sets up all DOM references for pre-existing markup, and creates required markup if it is not already present.
        -* @method init
        -* @param {String}	el	The element ID representing the Overlay <em>OR</em>
        -* @param {HTMLElement}	el	The element representing the Overlay
        -* @param {Object}	userConfig	The configuration object literal containing the configuration that should be set for this Overlay. See configuration documentation for more details.
        -*/
        -YAHOO.widget.Panel.prototype.init = function(el, userConfig) {
        -	YAHOO.widget.Panel.superclass.init.call(this, el/*, userConfig*/);  // Note that we don't pass the user config in here yet because we only want it executed once, at the lowest subclass level
        -
        -	this.beforeInitEvent.fire(YAHOO.widget.Panel);
        -
        -	YAHOO.util.Dom.addClass(this.element, YAHOO.widget.Panel.CSS_PANEL);
        -
        -	this.buildWrapper();
        -
        -	if (userConfig) {
        -		this.cfg.applyConfig(userConfig, true);
        -	}
        -
        -	this.beforeRenderEvent.subscribe(function() {
        -		var draggable = this.cfg.getProperty("draggable");
        -		if (draggable) {
        -			if (! this.header) {
        -				this.setHeader("&#160;");
        -			}
        -		}
        -	}, this, true);
        -
        -
        -    this.renderEvent.subscribe(function() {
        -
        -        /*
        -            If no value for the "width" configuration property was specified, 
        -            set it to the offsetWidth. If the "width" is not set, then in IE 
        -            you can only drag the panel when you put the cursor on the
        -            header's text.
        -        */
        -
        -        var sWidth = this.cfg.getProperty("width");
        -        
        -        if(!sWidth) {
        -
        -            this.cfg.setProperty("width", (this.element.offsetWidth + "px"));
        -        
        -        }
        -    
        -    });
        -
        -
        -	var me = this;
        -
        -	var doBlur = function() {
        -		this.blur();
        -	};
        -
        -	this.showMaskEvent.subscribe(function() {
        -
        -		var checkFocusable = function(el) {
        -
        -            var sTagName = el.tagName.toUpperCase(),
        -                bFocusable = false;
        -            
        -            switch(sTagName) {
        -            
        -                case "A":
        -                case "BUTTON":
        -                case "SELECT":
        -                case "TEXTAREA":
        -
        -                    if (! YAHOO.util.Dom.isAncestor(me.element, el)) {
        -                        YAHOO.util.Event.addListener(el, "focus", doBlur, el, true);
        -                        bFocusable = true;
        -                    }
        -
        -                break;
        -
        -                case "INPUT":
        -
        -                    if (el.type != "hidden" && ! YAHOO.util.Dom.isAncestor(me.element, el)) {
        -
        -                        YAHOO.util.Event.addListener(el, "focus", doBlur, el, true);
        -                        bFocusable = true;
        -
        -                    }
        -
        -                break;
        -            
        -            }
        -
        -            return bFocusable;
        -
        -		};
        -
        -		this.focusableElements = YAHOO.util.Dom.getElementsBy(checkFocusable);
        -	}, this, true);
        -
        -	this.hideMaskEvent.subscribe(function() {
        -		for (var i=0;i<this.focusableElements.length;i++) {
        -			var el2 = this.focusableElements[i];
        -			YAHOO.util.Event.removeListener(el2, "focus", doBlur);
        -		}
        -	}, this, true);
        -
        -	this.beforeShowEvent.subscribe(function() {
        -		this.cfg.refireEvent("underlay");
        -	}, this, true);
        -	this.initEvent.fire(YAHOO.widget.Panel);
        -};
        -
        -/**
        -* Initializes the custom events for Module which are fired automatically at appropriate times by the Module class.
        -*/
        -YAHOO.widget.Panel.prototype.initEvents = function() {
        -	YAHOO.widget.Panel.superclass.initEvents.call(this);
        -
        -    var EVENT_TYPES = YAHOO.widget.Panel._EVENT_TYPES;
        -
        -	/**
        -	* CustomEvent fired after the modality mask is shown
        -	* @event showMaskEvent
        -	*/
        -	this.showMaskEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.SHOW_MASK, this);
        -
        -	/**
        -	* CustomEvent fired after the modality mask is hidden
        -	* @event hideMaskEvent
        -	*/
        -	this.hideMaskEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.HIDE_MASK, this);
        -
        -	/**
        -	* CustomEvent when the Panel is dragged
        -	* @event dragEvent
        -	*/
        -	this.dragEvent = new YAHOO.util.CustomEvent(EVENT_TYPES.DRAG, this);
        -};
        -
        -/**
        -* Initializes the class's configurable properties which can be changed using the Panel's Config object (cfg).
        -* @method initDefaultConfig
        -*/
        -YAHOO.widget.Panel.prototype.initDefaultConfig = function() {
        -	YAHOO.widget.Panel.superclass.initDefaultConfig.call(this);
        -
        -    // Add panel config properties //
        -
        -    var DEFAULT_CONFIG = YAHOO.widget.Panel._DEFAULT_CONFIG;
        -
        -	/**
        -	* True if the Panel should display a "close" button
        -	* @config close
        -	* @type Boolean
        -	* @default true
        -	*/
        -    this.cfg.addProperty(
        -                DEFAULT_CONFIG.CLOSE.key,
        -                { 
        -                    handler: this.configClose, 
        -                    value: DEFAULT_CONFIG.CLOSE.value, 
        -                    validator: DEFAULT_CONFIG.CLOSE.validator, 
        -                    supercedes: DEFAULT_CONFIG.CLOSE.supercedes
        -                } 
        -            );
        -
        -	/**
        -	* True if the Panel should be draggable.  Default value is "true" if the Drag and Drop utility is included, otherwise it is "false."
        -	* @config draggable
        -	* @type Boolean
        -	* @default true
        -	*/
        -    this.cfg.addProperty(
        -                DEFAULT_CONFIG.DRAGGABLE.key, 
        -                { 
        -                    handler: this.configDraggable, 
        -                    value: DEFAULT_CONFIG.DRAGGABLE.value, 
        -                    validator: DEFAULT_CONFIG.DRAGGABLE.validator, 
        -                    supercedes: DEFAULT_CONFIG.DRAGGABLE.supercedes 
        -                } 
        -            );
        -
        -	/**
        -	* Sets the type of underlay to display for the Panel. Valid values are "shadow", "matte", and "none".
        -	* @config underlay
        -	* @type String
        -	* @default shadow
        -	*/
        -    this.cfg.addProperty(
        -                DEFAULT_CONFIG.UNDERLAY.key, 
        -                { 
        -                    handler: this.configUnderlay, 
        -                    value: DEFAULT_CONFIG.UNDERLAY.value, 
        -                    supercedes: DEFAULT_CONFIG.UNDERLAY.supercedes
        -                } 
        -            );
        -
        -	/**
        -	* True if the Panel should be displayed in a modal fashion, automatically creating a transparent mask over the document that will not be removed until the Panel is dismissed.
        -	* @config modal
        -	* @type Boolean
        -	* @default false
        -	*/
        -    this.cfg.addProperty(
        -                DEFAULT_CONFIG.MODAL.key,
        -                { 
        -                    handler: this.configModal, 
        -                    value: DEFAULT_CONFIG.MODAL.value,
        -                    validator: DEFAULT_CONFIG.MODAL.validator, 
        -                    supercedes: DEFAULT_CONFIG.MODAL.supercedes 
        -                } 
        -            );
        -
        -	/**
        -	* A KeyListener (or array of KeyListeners) that will be enabled when the Panel is shown, and disabled when the Panel is hidden.
        -	* @config keylisteners
        -	* @type YAHOO.util.KeyListener[]
        -	* @default null
        -	*/
        -    this.cfg.addProperty(
        -                DEFAULT_CONFIG.KEY_LISTENERS.key, 
        -                { 
        -                    handler: this.configKeyListeners, 
        -                    suppressEvent: DEFAULT_CONFIG.KEY_LISTENERS.suppressEvent, 
        -                    supercedes: DEFAULT_CONFIG.KEY_LISTENERS.supercedes
        -                } 
        -            );
        -
        -};
        -
        -// BEGIN BUILT-IN PROPERTY EVENT HANDLERS //
        -
        -/**
        -* The default event handler fired when the "close" property is changed. The method controls the appending or hiding of the close icon at the top right of the Panel.
        -* @method configClose
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Panel.prototype.configClose = function(type, args, obj) {
        -	var val = args[0];
        -
        -	var doHide = function(e, obj) {
        -		obj.hide();
        -	};
        -
        -	if (val) {
        -		if (! this.close) {
        -			this.close = document.createElement("span");
        -			YAHOO.util.Dom.addClass(this.close, "container-close");
        -			this.close.innerHTML = "&#160;";
        -			this.innerElement.appendChild(this.close);
        -			YAHOO.util.Event.addListener(this.close, "click", doHide, this);
        -		} else {
        -			this.close.style.display = "block";
        -		}
        -	} else {
        -		if (this.close) {
        -			this.close.style.display = "none";
        -		}
        -	}
        -};
        -
        -/**
        -* The default event handler fired when the "draggable" property is changed.
        -* @method configDraggable
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Panel.prototype.configDraggable = function(type, args, obj) {
        -
        -	var val = args[0];
        -	if (val) {
        -
        -        if (!YAHOO.util.DD) {
        -    
        -            YAHOO.log("YAHOO.util.DD dependency not met.", "error");
        -
        -            this.cfg.setProperty("draggable", false);
        -    
        -            return;
        -        
        -        }
        -
        -		if (this.header) {
        -			YAHOO.util.Dom.setStyle(this.header,"cursor","move");
        -			this.registerDragDrop();
        -		}
        -	} else {
        -		if (this.dd) {
        -			this.dd.unreg();
        -		}
        -		if (this.header) {
        -			YAHOO.util.Dom.setStyle(this.header,"cursor","auto");
        -		}
        -	}
        -};
        -
        -/**
        -* The default event handler fired when the "underlay" property is changed.
        -* @method configUnderlay
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Panel.prototype.configUnderlay = function(type, args, obj) {
        -	var val = args[0];
        -
        -	switch (val.toLowerCase()) {
        -		case "shadow":
        -			YAHOO.util.Dom.removeClass(this.element, "matte");
        -			YAHOO.util.Dom.addClass(this.element, "shadow");
        -
        -			if (! this.underlay) { // create if not already in DOM
        -				this.underlay = document.createElement("div");
        -				this.underlay.className = "underlay";
        -				this.underlay.innerHTML = "&#160;";
        -				this.element.appendChild(this.underlay);
        -			}
        -
        -			this.sizeUnderlay();
        -			break;
        -		case "matte":
        -			YAHOO.util.Dom.removeClass(this.element, "shadow");
        -			YAHOO.util.Dom.addClass(this.element, "matte");
        -			break;
        -		default:
        -			YAHOO.util.Dom.removeClass(this.element, "shadow");
        -			YAHOO.util.Dom.removeClass(this.element, "matte");
        -			break;
        -	}
        -};
        -
        -/**
        -* The default event handler fired when the "modal" property is changed. This handler subscribes or unsubscribes to the show and hide events to handle the display or hide of the modality mask.
        -* @method configModal
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Panel.prototype.configModal = function(type, args, obj) {
        -	var modal = args[0];
        -
        -	if (modal) {
        -		this.buildMask();
        -
        -		if (! YAHOO.util.Config.alreadySubscribed( this.beforeShowEvent, this.showMask, this ) ) {
        -			this.beforeShowEvent.subscribe(this.showMask, this, true);
        -		}
        -		if (! YAHOO.util.Config.alreadySubscribed( this.hideEvent, this.hideMask, this) ) {
        -			this.hideEvent.subscribe(this.hideMask, this, true);
        -		}
        -		if (! YAHOO.util.Config.alreadySubscribed( YAHOO.widget.Overlay.windowResizeEvent, this.sizeMask, this ) ) {
        -			YAHOO.widget.Overlay.windowResizeEvent.subscribe(this.sizeMask, this, true);
        -		}
        -		if (! YAHOO.util.Config.alreadySubscribed( this.destroyEvent, this.removeMask, this) ) {
        -			this.destroyEvent.subscribe(this.removeMask, this, true);
        -		}
        -
        -		this.cfg.refireEvent("zIndex");
        -	} else {
        -		this.beforeShowEvent.unsubscribe(this.showMask, this);
        -		this.hideEvent.unsubscribe(this.hideMask, this);
        -		YAHOO.widget.Overlay.windowResizeEvent.unsubscribe(this.sizeMask, this);
        -		this.destroyEvent.unsubscribe(this.removeMask, this);
        -	}
        -};
        -
        -/**
        -* Removes the modality mask.
        -* @method removeMask
        -*/
        -YAHOO.widget.Panel.prototype.removeMask = function() {
        -
        -    var oMask = this.mask;
        -
        -    if(oMask) {
        -    
        -        /*
        -            Hide the mask before destroying it to ensure that DOM
        -            event handlers on focusable elements get removed.
        -        */
        -
        -        this.hideMask();
        -    
        -        var oParentNode = oMask.parentNode;
        -
        -        if(oParentNode) {
        -
        -            oParentNode.removeChild(oMask);
        -
        -        }
        -
        -        this.mask = null;
        -    }
        -    
        -};
        -
        -/**
        -* The default event handler fired when the "keylisteners" property is changed.
        -* @method configKeyListeners
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Panel.prototype.configKeyListeners = function(type, args, obj) {
        -	var listeners = args[0];
        -
        -	if (listeners) {
        -		if (listeners instanceof Array) {
        -			for (var i=0;i<listeners.length;i++) {
        -				var listener = listeners[i];
        -
        -				if (! YAHOO.util.Config.alreadySubscribed(this.showEvent, listener.enable, listener)) {
        -					this.showEvent.subscribe(listener.enable, listener, true);
        -				}
        -				if (! YAHOO.util.Config.alreadySubscribed(this.hideEvent, listener.disable, listener)) {
        -					this.hideEvent.subscribe(listener.disable, listener, true);
        -					this.destroyEvent.subscribe(listener.disable, listener, true);
        -				}
        -			}
        -		} else {
        -			if (! YAHOO.util.Config.alreadySubscribed(this.showEvent, listeners.enable, listeners)) {
        -				this.showEvent.subscribe(listeners.enable, listeners, true);
        -			}
        -			if (! YAHOO.util.Config.alreadySubscribed(this.hideEvent, listeners.disable, listeners)) {
        -				this.hideEvent.subscribe(listeners.disable, listeners, true);
        -				this.destroyEvent.subscribe(listeners.disable, listeners, true);
        -			}
        -		}
        -	}
        -};
        -
        -/**
        -* The default event handler fired when the "height" property is changed.
        -* @method configHeight
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Panel.prototype.configHeight = function(type, args, obj) {
        -	var height = args[0];
        -	var el = this.innerElement;
        -	YAHOO.util.Dom.setStyle(el, "height", height);
        -	this.cfg.refireEvent("underlay");
        -	this.cfg.refireEvent("iframe");
        -};
        -
        -/**
        -* The default event handler fired when the "width" property is changed.
        -* @method configWidth
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Panel.prototype.configWidth = function(type, args, obj) {
        -	var width = args[0];
        -	var el = this.innerElement;
        -	YAHOO.util.Dom.setStyle(el, "width", width);
        -	this.cfg.refireEvent("underlay");
        -	this.cfg.refireEvent("iframe");
        -};
        -
        -/**
        -* The default event handler fired when the "zIndex" property is changed.
        -* @method configzIndex
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Panel.prototype.configzIndex = function(type, args, obj) {
        -	YAHOO.widget.Panel.superclass.configzIndex.call(this, type, args, obj);
        -
        -	var maskZ = 0;
        -	var currentZ = YAHOO.util.Dom.getStyle(this.element, "zIndex");
        -
        -	if (this.mask) {
        -		if (! currentZ || isNaN(currentZ)) {
        -			currentZ = 0;
        -		}
        -
        -		if (currentZ === 0) {
        -			this.cfg.setProperty("zIndex", 1);
        -		} else {
        -			maskZ = currentZ - 1;
        -			YAHOO.util.Dom.setStyle(this.mask, "zIndex", maskZ);
        -		}
        -
        -	}
        -};
        -
        -// END BUILT-IN PROPERTY EVENT HANDLERS //
        -
        -
        -/**
        -* Builds the wrapping container around the Panel that is used for positioning the shadow and matte underlays. The container element is assigned to a  local instance variable called container, and the element is reinserted inside of it.
        -* @method buildWrapper
        -*/
        -YAHOO.widget.Panel.prototype.buildWrapper = function() {
        -	var elementParent = this.element.parentNode;
        -	var originalElement = this.element;
        -
        -	var wrapper = document.createElement("div");
        -	wrapper.className = YAHOO.widget.Panel.CSS_PANEL_CONTAINER;
        -	wrapper.id = originalElement.id + "_c";
        -
        -	if (elementParent) {
        -		elementParent.insertBefore(wrapper, originalElement);
        -	}
        -
        -	wrapper.appendChild(originalElement);
        -
        -	this.element = wrapper;
        -	this.innerElement = originalElement;
        -
        -	YAHOO.util.Dom.setStyle(this.innerElement, "visibility", "inherit");
        -};
        -
        -/**
        -* Adjusts the size of the shadow based on the size of the element.
        -* @method sizeUnderlay
        -*/
        -YAHOO.widget.Panel.prototype.sizeUnderlay = function() {
        -	if (this.underlay && this.browser != "gecko" && this.browser != "safari") {
        -		this.underlay.style.width = this.innerElement.offsetWidth + "px";
        -		this.underlay.style.height = this.innerElement.offsetHeight + "px";
        -	}
        -};
        -
        -/**
        -* Event handler fired when the resize monitor element is resized.
        -* @method onDomResize
        -* @param {DOMEvent} e	The resize DOM event
        -* @param {Object} obj	The scope object
        -*/
        -YAHOO.widget.Panel.prototype.onDomResize = function(e, obj) {
        -	YAHOO.widget.Panel.superclass.onDomResize.call(this, e, obj);
        -	var me = this;
        -	setTimeout(function() {
        -		me.sizeUnderlay();
        -	}, 0);
        -};
        -
        -/**
        -* Registers the Panel's header for drag & drop capability.
        -* @method registerDragDrop
        -*/
        -YAHOO.widget.Panel.prototype.registerDragDrop = function() {
        -	if (this.header) {
        -
        -        if(!YAHOO.util.DD) {
        -
        -            YAHOO.log("YAHOO.util.DD dependency not met.", "error");
        -
        -            return;
        -        
        -        }
        -
        -		this.dd = new YAHOO.util.DD(this.element.id, this.id);
        -
        -		if (! this.header.id) {
        -			this.header.id = this.id + "_h";
        -		}
        -
        -		var me = this;
        -
        -		this.dd.startDrag = function() {
        -
        -			if (me.browser == "ie") {
        -				YAHOO.util.Dom.addClass(me.element,"drag");
        -			}
        -
        -			if (me.cfg.getProperty("constraintoviewport")) {
        -				var offsetHeight = me.element.offsetHeight;
        -				var offsetWidth = me.element.offsetWidth;
        -
        -				var viewPortWidth = YAHOO.util.Dom.getViewportWidth();
        -				var viewPortHeight = YAHOO.util.Dom.getViewportHeight();
        -
        -				var scrollX = window.scrollX || document.documentElement.scrollLeft;
        -				var scrollY = window.scrollY || document.documentElement.scrollTop;
        -
        -				var topConstraint = scrollY + 10;
        -				var leftConstraint = scrollX + 10;
        -				var bottomConstraint = scrollY + viewPortHeight - offsetHeight - 10;
        -				var rightConstraint = scrollX + viewPortWidth - offsetWidth - 10;
        -
        -				this.minX = leftConstraint;
        -				this.maxX = rightConstraint;
        -				this.constrainX = true;
        -
        -				this.minY = topConstraint;
        -				this.maxY = bottomConstraint;
        -				this.constrainY = true;
        -			} else {
        -				this.constrainX = false;
        -				this.constrainY = false;
        -			}
        -
        -			me.dragEvent.fire("startDrag", arguments);
        -		};
        -
        -		this.dd.onDrag = function() {
        -			me.syncPosition();
        -			me.cfg.refireEvent("iframe");
        -			if (this.platform == "mac" && this.browser == "gecko") {
        -				this.showMacGeckoScrollbars();
        -			}
        -
        -			me.dragEvent.fire("onDrag", arguments);
        -		};
        -
        -		this.dd.endDrag = function() {
        -			if (me.browser == "ie") {
        -				YAHOO.util.Dom.removeClass(me.element,"drag");
        -			}
        -
        -			me.dragEvent.fire("endDrag", arguments);
        -		};
        -
        -		this.dd.setHandleElId(this.header.id);
        -		this.dd.addInvalidHandleType("INPUT");
        -		this.dd.addInvalidHandleType("SELECT");
        -		this.dd.addInvalidHandleType("TEXTAREA");
        -	}
        -};
        -
        -/**
        -* Builds the mask that is laid over the document when the Panel is configured to be modal.
        -* @method buildMask
        -*/
        -YAHOO.widget.Panel.prototype.buildMask = function() {
        -	if (! this.mask) {
        -		this.mask = document.createElement("div");
        -		this.mask.id = this.id + "_mask";
        -		this.mask.className = "mask";
        -		this.mask.innerHTML = "&#160;";
        -
        -		var maskClick = function(e, obj) {
        -			YAHOO.util.Event.stopEvent(e);
        -		};
        -
        -		var firstChild = document.body.firstChild;
        -		if (firstChild)	{
        -			document.body.insertBefore(this.mask, document.body.firstChild);
        -		} else {
        -			document.body.appendChild(this.mask);
        -		}
        -	}
        -};
        -
        -/**
        -* Hides the modality mask.
        -* @method hideMask
        -*/
        -YAHOO.widget.Panel.prototype.hideMask = function() {
        -	if (this.cfg.getProperty("modal") && this.mask) {
        -		this.mask.style.display = "none";
        -		this.hideMaskEvent.fire();
        -		YAHOO.util.Dom.removeClass(document.body, "masked");
        -	}
        -};
        -
        -/**
        -* Shows the modality mask.
        -* @method showMask
        -*/
        -YAHOO.widget.Panel.prototype.showMask = function() {
        -	if (this.cfg.getProperty("modal") && this.mask) {
        -		YAHOO.util.Dom.addClass(document.body, "masked");
        -		this.sizeMask();
        -		this.mask.style.display = "block";
        -		this.showMaskEvent.fire();
        -	}
        -};
        -
        -/**
        -* Sets the size of the modality mask to cover the entire scrollable area of the document
        -* @method sizeMask
        -*/
        -YAHOO.widget.Panel.prototype.sizeMask = function() {
        -	if (this.mask) {
        -		this.mask.style.height = YAHOO.util.Dom.getDocumentHeight()+"px";
        -		this.mask.style.width = YAHOO.util.Dom.getDocumentWidth()+"px";
        -	}
        -};
        -
        -/**
        -* Renders the Panel by inserting the elements that are not already in the main Panel into their correct places. Optionally appends the Panel to the specified node prior to the render's execution. NOTE: For Panels without existing markup, the appendToNode argument is REQUIRED. If this argument is ommitted and the current element is not present in the document, the function will return false, indicating that the render was a failure.
        -* @method render
        -* @param {String}	appendToNode	The element id to which the Module should be appended to prior to rendering <em>OR</em>
        -* @param {HTMLElement}	appendToNode	The element to which the Module should be appended to prior to rendering
        -* @return {boolean} Success or failure of the render
        -*/
        -YAHOO.widget.Panel.prototype.render = function(appendToNode) {
        -	return YAHOO.widget.Panel.superclass.render.call(this, appendToNode, this.innerElement);
        -};
        -
        -/**
        -* Removes the Panel element from the DOM and sets all child elements to null.
        -* @method destroy
        -*/
        -YAHOO.widget.Panel.prototype.destroy = function() {
        -
        -    YAHOO.widget.Overlay.windowResizeEvent.unsubscribe(this.sizeMask, this);
        -
        -    if(this.close) {
        -    
        -        YAHOO.util.Event.purgeElement(this.close);
        -
        -    }
        -
        -    YAHOO.widget.Panel.superclass.destroy.call(this);  
        -
        -};
        -
        -/**
        -* Returns a String representation of the object.
        -* @method toString
        -* @return {String} The string representation of the Panel.
        -*/
        -YAHOO.widget.Panel.prototype.toString = function() {
        -	return "Panel " + this.id;
        -};
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Record.html b/www/extras/yui/docs/Record.html deleted file mode 100644 index 232ebbc02..000000000 --- a/www/extras/yui/docs/Record.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - API: datatable Record (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        DataTable Widget  2.2.2

        -

        - Yahoo! UI Library - > datatable - > Record - -

        -
        - -
        -
        -
        - - -

        - - - - - Class Record - - - - - - - -

        - - - - - -
        - The Record class defines a DataTable record. -
        - -
        -

        Constructor

        -
        -
        - Record - - ( - - - - oConfigs - ) - -
        -
        -
        Parameters:
        -
        - oConfigs - <Object> - - (optional) Object literal of key/value pairs. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _nCount - - private static number -

        -
        -
        - Internal class variable to index multiple data table instances. -
        -
        - - - - -
        -

        yuiRecordId - - string -

        -
        -
        - Unique name assigned at instantation, indicates original order. -
        -
        - - - - -
        - - -
        -
        - - - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/RecordSet.html b/www/extras/yui/docs/RecordSet.html deleted file mode 100644 index dd321904e..000000000 --- a/www/extras/yui/docs/RecordSet.html +++ /dev/null @@ -1,1113 +0,0 @@ - - - - API: datatable RecordSet (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        DataTable Widget  2.2.2

        -

        - Yahoo! UI Library - > datatable - > RecordSet - -

        -
        - -
        -
        -
        - - -

        - - - - - Class RecordSet - - - - - - - -

        - - - - - -
        - A RecordSet defines and manages a set of Records. -
        - -
        -

        Constructor

        -
        -
        - RecordSet - - ( - - - - data - ) - -
        -
        -
        Parameters:
        -
        - data - <Object || Object[]> - - An object literal or an array of data. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _length - - private object -

        -
        -
        - Internal counter of how many records are in the RecordSet -
        -
        - - - - -
        -

        _nCount - - private static number -

        -
        -
        - Internal class variable to index multiple data table instances. -
        -
        - - - - -
        -

        _nIndex - - private number -

        -
        -
        - Instance index. -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - addRecord

        -
        - - - - - YAHOO.widget.Record - addRecord - ( - - - oObjectLiteral - - - , - index - - - ) - - -
        - Adds one Record to the RecordSet at the given index. If index is null, -then adds the Record to the end of the RecordSet. -
        - -
        - -
        -
        Parameters:
        -
        - oObjectLiteral <Object> - An object literal of data. -
        -
        - index <Number> - (optional) Position index. -
        -
        - -
        -
        Returns: - - YAHOO.widget.Record -
        -
        A Record instance.
        -
        - -
        - -
        -
        -

        - addRecords

        -
        - - - - - YAHOO.widget.Record - addRecords - ( - - - data - - - , - index - - - ) - - -
        - Adds multiple Records to the RecordSet at the given index. If index is null, -then adds the Records to the end of the RecordSet. -
        - -
        - -
        -
        Parameters:
        -
        - data <Object[]> - An array of object literal data. -
        -
        - index <Number> - (optional) Position index. -
        -
        - -
        -
        Returns: - - YAHOO.widget.Record -
        -
        An array of Record instances.
        -
        - -
        - -
        -
        -

        - append

        -
        - - - - - YAHOO.widget.Record || YAHOO.widget.Record[] - append - ( - - - data - - - ) - - -
        - Convenience method to append the given data to the end of the RecordSet. -
        - -
        - -
        -
        Parameters:
        -
        - data <Object || Object[]> - An object literal or array of data. -
        -
        - -
        -
        Returns: - - YAHOO.widget.Record || YAHOO.widget.Record[] -
        -
        A Record or array of Records.
        -
        - -
        - -
        -
        -

        - deleteRecord

        -
        - - - - - void - deleteRecord - ( - - - i - - - , - range - - - ) - - -
        - Removes the record at the given index from the RecordSet. If a range is -given, starts at the given index and removes all records in the range. -
        - -
        - -
        -
        Parameters:
        -
        - i <Number> - Record index -
        -
        - range <Number> - (optional) Range of records to remove, or null. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getLength

        -
        - - - - - Number - getLength - ( - ) - - -
        - Returns the number of non-null records in the sparse RecordSet -
        - -
        - - -
        -
        Returns: - - Number -
        -
        Number records in the RecordSet
        -
        - -
        - -
        -
        -

        - getRecord

        -
        - - - - - Object - getRecord - ( - - - identifier - - - ) - - -
        - Returns record with given name, at the given index, or null. -
        - -
        - -
        -
        Parameters:
        -
        - identifier <String || Number> - Record ID or record index -
        -
        - -
        -
        Returns: - - Object -
        -
        Record object
        -
        - -
        - -
        -
        -

        - getRecordBy

        -
        - - - - - YAHOO.widget.Record || YAHOO.widget.Record[] - getRecordBy - ( - - - sKey - - - , - oValue - - - ) - - -
        - Returns the record(2) with the given value at the given key. -
        - -
        - -
        -
        Parameters:
        -
        - sKey <String> - Key to search. -
        -
        - oValue <Object> - to match against. -
        -
        - -
        -
        Returns: - - YAHOO.widget.Record || YAHOO.widget.Record[] -
        -
        Record or array of -Records with the given value at the given key, or null.
        -
        - -
        - -
        -
        -

        - getRecordIndex

        -
        - - - - - number - getRecordIndex - ( - - - oRecord - - - ) - - -
        - Returns index for the given record. -
        - -
        - -
        -
        Parameters:
        -
        - oRecord <object> - Record object -
        -
        - -
        -
        Returns: - - number -
        -
        index
        -
        - -
        - -
        -
        -

        - getRecords

        -
        - - - - - Array - getRecords - ( - - - i - - - , - range - - - ) - - -
        - Returns an array of Records from the RecordSet. -
        - -
        - -
        -
        Parameters:
        -
        - i <number> - (optional) Index of which record to start at -
        -
        - range <number> - (optional) Number of records to get -
        -
        - -
        -
        Returns: - - Array -
        -
        Array of records starting at given index and lenth equal to -given range. If i is null, entire RecordSet array is returned.
        -
        - -
        - -
        -
        -

        - insert

        -
        - - - - - YAHOO.widget.Record || YAHOO.widget.Record[] - insert - ( - - - data - - - ) - - -
        - Convenience method to insert the given data into the beginning of the RecordSet. -
        - -
        - -
        -
        Parameters:
        -
        - data <Object || Object[]> - An object literal or array of data. -
        -
        - -
        -
        Returns: - - YAHOO.widget.Record || YAHOO.widget.Record[] -
        -
        A Record or array of Records.
        -
        - -
        - -
        -
        -

        - replace

        -
        - - - - - YAHOO.widget.Record || YAHOO.widget.Record[] - replace - ( - - - data - - - ) - - -
        - Replaces all Records in RecordSet with new data. -
        - -
        - -
        -
        Parameters:
        -
        - data <Object || Object[]> - An object literal or array or data. -
        -
        - -
        -
        Returns: - - YAHOO.widget.Record || YAHOO.widget.Record[] -
        -
        A Record or array of Records.
        -
        - -
        - -
        -
        -

        - reset

        -
        - - - - - void - reset - ( - ) - - -
        - Removes all Records from the RecordSet. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - sort

        -
        - - - - - Array - sort - ( - - - fnSort - - - ) - - -
        - Sorts RecordSet by given function. -
        - -
        - -
        -
        Parameters:
        -
        - fnSort <Function> - Reference to a sort function. -
        -
        - -
        -
        Returns: - - Array -
        -
        Sorted array of Records
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - string - toString - ( - ) - - -
        - Public accessor to the unique name of the RecordSet instance. -
        - -
        - - -
        -
        Returns: - - string -
        -
        Unique name of the RecordSet instance
        -
        - -
        - -
        -
        -

        - updateRecord

        -
        - - - - - void - updateRecord - ( - - - oRecord - - - , - sKey - - - , - oData - - - ) - - -
        - Updates Record at given position with given data. -
        - -
        - -
        -
        Parameters:
        -
        - oRecord <YAHOO.widget.Record> - A Record instance. -
        -
        - sKey <String> - Key. -
        -
        - oData <object> - {Object) New data. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - updateRecordField

        -
        - - - - - void - updateRecordField - ( - - - oRecord - - - , - sKey - - - , - oData - - - ) - - -
        - Updates given key of given Record with given data. -
        - -
        - -
        -
        Parameters:
        -
        - oRecord <YAHOO.widget.Record> - A Record instance. -
        -
        - sKey <String> - Key. -
        -
        - oData <object> - {Object) New data. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Events

        -
        -

        - recordUpdateEvent

        -
        - - - - - recordUpdateEvent - - ( - - - oArgs.record - - - , - oArgs.key - - - , - oArgs.newData - - - , - oArgs.oldData - - - ) - - - -
        - Fired when a Record is updated with new data. -
        - -
        - - -
        -
        Parameters:
        -
        - oArgs.record <YAHOO.widget.Record> - The Record instance. -
        -
        - oArgs.key <String> - The Record key. -
        -
        - oArgs.newData <Object> - New data. -
        -
        - oArgs.oldData <Object> - Old data. -
        -
        - - -
        - -
        -
        -
        -
        - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/RecordSet.js.html b/www/extras/yui/docs/RecordSet.js.html deleted file mode 100644 index ff223be1c..000000000 --- a/www/extras/yui/docs/RecordSet.js.html +++ /dev/null @@ -1,547 +0,0 @@ - - - - API: datatable RecordSet.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        DataTable Widget  2.2.2

        -

        - Yahoo! UI Library - > datatable - - > RecordSet.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /****************************************************************************/
        -/****************************************************************************/
        -/****************************************************************************/
        -
        -/**
        - * A RecordSet defines and manages a set of Records.
        - *
        - * @class RecordSet
        - * @param data {Object || Object[]} An object literal or an array of data.
        - * @constructor
        - */
        -YAHOO.widget.RecordSet = function(data) {
        -    // Internal variables
        -    this._nIndex = YAHOO.widget.RecordSet._nCount;
        -    this._records = [];
        -    
        -    if(data) {
        -        if(YAHOO.lang.isArray(data)) {
        -            this.addRecords(data);
        -        }
        -        else if(data.constructor == Object) {
        -            this.addRecord(data);
        -        }
        -    }
        -
        -    /**
        -     * Fired when a Record is updated with new data.
        -     *
        -     * @event recordUpdateEvent
        -     * @param oArgs.record {YAHOO.widget.Record} The Record instance.
        -     * @param oArgs.key {String} The Record key.
        -     * @param oArgs.newData {Object} New data.
        -     * @param oArgs.oldData {Object} Old data.
        -     *
        -     */
        -    this.createEvent("recordUpdateEvent");
        -    
        -    
        -    YAHOO.widget.RecordSet._nCount++;
        -    YAHOO.log("RecordSet initialized", "info", this.toString());
        -};
        -
        -if(YAHOO.util.EventProvider) {
        -    YAHOO.augment(YAHOO.widget.RecordSet, YAHOO.util.EventProvider);
        -}
        -else {
        -    YAHOO.log("Missing dependency: YAHOO.util.EventProvider","error",this.toString());
        -}
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -/**
        - * Internal class variable to index multiple data table instances.
        - *
        - * @property _nCount
        - * @type number
        - * @private
        - * @static
        - */
        -YAHOO.widget.RecordSet._nCount = 0;
        -
        -/**
        - * Instance index.
        - *
        - * @property _nIndex
        - * @type number
        - * @private
        - */
        -YAHOO.widget.RecordSet.prototype._nIndex = null;
        -
        -/**
        - * Internal counter of how many records are in the RecordSet
        - *
        - * @property _length
        - * @private
        - */
        -YAHOO.widget.RecordSet.prototype._length = null;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public methods
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Public accessor to the unique name of the RecordSet instance.
        - *
        - * @method toString
        - * @return {string} Unique name of the RecordSet instance
        - */
        -YAHOO.widget.RecordSet.prototype.toString = function() {
        -    return "RecordSet instance " + this._nIndex;
        -};
        -
        -/**
        - * Returns the number of non-null records in the sparse RecordSet
        - *
        - * @method getLength
        - * @return {Number} Number records in the RecordSet
        - */
        -YAHOO.widget.RecordSet.prototype.getLength = function() {
        -        return this._length;
        -};
        -
        -/**
        - * Returns record with given name, at the given index, or null.
        - *
        - * @method getRecord
        - * @param identifier {String || Number} Record ID or record index
        - * @return {Object} Record object
        - */
        -YAHOO.widget.RecordSet.prototype.getRecord = function(identifier) {
        -    if(YAHOO.lang.isNumber(identifier)) {
        -        return this._records[identifier];
        -    }
        -    else if(YAHOO.lang.isString(identifier)) {
        -        for(var i=0; i<this._records.length; i++) {
        -            if(this._records[i].yuiRecordId == identifier) {
        -                return this._records[i];
        -            }
        -        }
        -    }
        -    return null;
        -
        -};
        -
        -/**
        - * Returns an array of Records from the RecordSet.
        - *
        - * @method getRecords
        - * @param i {number} (optional) Index of which record to start at
        - * @param range {number} (optional) Number of records to get
        - * @return {Array} Array of records starting at given index and lenth equal to
        - * given range. If i is null, entire RecordSet array is returned.
        - */
        -YAHOO.widget.RecordSet.prototype.getRecords = function(i, range) {
        -    if(!YAHOO.lang.isNumber(i)) {
        -        return this._records;
        -    }
        -    if(!YAHOO.lang.isNumber(range)) {
        -        return this._records.slice(i);
        -    }
        -    return this._records.slice(i, i+range);
        -};
        -
        -/**
        - * Returns index for the given record.
        - *
        - * @method getRecordIndex
        - * @param oRecord {object} Record object
        - * @return {number} index
        - */
        -
        -/*YAHOO.widget.RecordSet.prototype.getRecordIndex = function(oRecord) {
        -    //TODO: return i;
        -};*/
        -
        -/**
        - * Returns the record(2) with the given value at the given key.
        - *
        - * @method getRecordBy
        - * @param sKey {String} Key to search.
        - * @param oValue {Object} to match against.
        - * @return {YAHOO.widget.Record || YAHOO.widget.Record[]} Record or array of
        - * Records with the given value at the given key, or null.
        - */
        -/*YAHOO.widget.RecordSet.prototype.getRecordBy = function(sKey, oValue) {
        -     TODO: redo to match new algorithm
        -    var record = null;
        -    var length = this._records.length;
        -    for(var i=length-1; i>0; i--) {
        -        record = this._records[i];
        -        if(record && (record.extid == extId)) {
        -            return record;
        -        }
        -    }
        -    return null;
        -
        -};*/
        -
        -/**
        - * Updates Record at given position with given data.
        - *
        - * @method updateRecord
        - * @param oRecord {YAHOO.widget.Record} A Record instance.
        - * @param sKey {String} Key.
        - * @param oData {Object) New data.
        - */
        -YAHOO.widget.RecordSet.prototype.updateRecord = function(index, oData) {
        -    var oldData = this._records[index];
        -    this._records[index] = oData;
        -    this.fireEvent("recordUpdateEvent",{record:oRecord,index:index,newData:oData,oldData:oldData});
        -};
        -
        -/**
        - * Updates given key of given Record with given data.
        - *
        - * @method updateRecordField
        - * @param oRecord {YAHOO.widget.Record} A Record instance.
        - * @param sKey {String} Key.
        - * @param oData {Object) New data.
        - */
        -YAHOO.widget.RecordSet.prototype.updateRecordField = function(oRecord, sKey, oData) {
        -    var oldData = oRecord[sKey];
        -    oRecord[sKey] = oData;
        -    this.fireEvent("recordFieldUpdateEvent",{record:oRecord,key:sKey,newData:oData,oldData:oldData});
        -};
        -
        -/**
        - * Adds one Record to the RecordSet at the given index. If index is null,
        - * then adds the Record to the end of the RecordSet.
        - *
        - * @method addRecord
        - * @param oObjectLiteral {Object} An object literal of data.
        - * @param index {Number} (optional) Position index.
        - * @return {YAHOO.widget.Record} A Record instance.
        - */
        -YAHOO.widget.RecordSet.prototype.addRecord = function(oObjectLiteral, index) {
        -    if(oObjectLiteral && (oObjectLiteral.constructor == Object)) {
        -        var oRecord = new YAHOO.widget.Record(oObjectLiteral);
        -        if(YAHOO.lang.isNumber(index) && (index > -1)) {
        -            this._records.splice(index,0,oRecord);
        -        }
        -        else {
        -            this._records.push(oRecord);
        -        }
        -        this._length++;
        -        return oRecord;
        -    }
        -    else {
        -        return null;
        -    }
        -};
        -
        -/**
        - * Adds multiple Records to the RecordSet at the given index. If index is null,
        - * then adds the Records to the end of the RecordSet.
        - *
        - * @method addRecords
        - * @param data {Object[]} An array of object literal data.
        - * @param index {Number} (optional) Position index.
        - * @return {YAHOO.widget.Record} An array of Record instances.
        - */
        -YAHOO.widget.RecordSet.prototype.addRecords = function(data, index) {
        -    if(YAHOO.lang.isArray(data)) {
        -        var newRecords = [];
        -        // Can't go backwards bc we need to preserve order
        -        for(var i=0; i<data.length; i++) {
        -            var record = this.addRecord(data[i], index);
        -            newRecords.push(record);
        -       }
        -       return newRecords;
        -    }
        -    else if(data && (data.constructor == Object)) {
        -        return this.addRecord(data);
        -    }
        -    else {
        -        return null;
        -    }
        -};
        -
        -/**
        - * Convenience method to append the given data to the end of the RecordSet.
        - *
        - * @method append
        - * @param data {Object || Object[]} An object literal or array of data.
        - * @return {YAHOO.widget.Record || YAHOO.widget.Record[]} A Record or array of Records.
        - */
        -YAHOO.widget.RecordSet.prototype.append = function(data) {
        -    if(YAHOO.lang.isArray(data)) {
        -        var newRecords = [];
        -        // Cant't go backwards bc we need to preserve order
        -        for(var i=0; i<data.length; i++) {
        -            var record = this.addRecord(data[i]);
        -            newRecords.push(record);
        -            
        -       }
        -       YAHOO.log("RecordSet appended with " + newRecords.length + " Record(s)","info",this.toString());
        -       return newRecords;
        -    }
        -    else if(data && (data.constructor == Object)) {
        -        YAHOO.log("RecordSet appended with 1 Record","info",this.toString());
        -        return this.addRecord(data);
        -    }
        -    else {
        -        return null;
        -    }
        -    
        -};
        -
        -/**
        - * Convenience method to insert the given data into the beginning of the RecordSet.
        - *
        - * @method insert
        - * @param data {Object || Object[]} An object literal or array of data.
        - * @return {YAHOO.widget.Record || YAHOO.widget.Record[]} A Record or array of Records.
        - */
        -YAHOO.widget.RecordSet.prototype.insert = function(data) {
        -    if(YAHOO.lang.isArray(data)) {
        -        var newRecords = [];
        -        // Can't go backwards bc we need to preserve order
        -        for(var i=data.length-1; i>-1; i--) {
        -            var record = this.addRecord(data[i], 0);
        -            newRecords.push(record);
        -       }
        -       return newRecords;
        -    }
        -    else if(data && (data.constructor == Object)) {
        -        return this.addRecord(data, 0);
        -    }
        -    else {
        -        return null;
        -    }
        -};
        -
        -/**
        - * Replaces all Records in RecordSet with new data.
        - *
        - * @method replace
        - * @param data {Object || Object[]} An object literal or array or data.
        - * @return {YAHOO.widget.Record || YAHOO.widget.Record[]} A Record or array of Records.
        - */
        -YAHOO.widget.RecordSet.prototype.replace = function(data) {
        -    if(data) {
        -        this.reset();
        -        return this.append(data);
        -    }
        -    else {
        -        return null;
        -    }
        -};
        -
        -/**
        - * Sorts RecordSet by given function.
        - *
        - * @method sort
        - * @param fnSort {Function} Reference to a sort function.
        - * @return {Array} Sorted array of Records
        - */
        -YAHOO.widget.RecordSet.prototype.sort = function(fnSort) {
        -    return this._records.sort(fnSort);
        -};
        -
        -
        -/**
        - * Removes the record at the given index from the RecordSet. If a range is
        - * given, starts at the given index and removes all records in the range.
        - *
        - * @method deleteRecord
        - * @param i {Number} Record index
        - * @param range {Number} (optional) Range of records to remove, or null.
        - */
        -YAHOO.widget.RecordSet.prototype.deleteRecord = function(i, range) {
        -    if(!YAHOO.lang.isNumber(range)) {
        -        range = 1;
        -    }
        -    // TODO: validate for negative values
        -    if(!YAHOO.lang.isNumber(i)) {
        -        this._records.splice(i, range);
        -        this._length = this._length - range;
        -    }
        -};
        -
        -/**
        - * Removes all Records from the RecordSet.
        - *
        - * @method reset
        - */
        -YAHOO.widget.RecordSet.prototype.reset = function() {
        -    this._records = [];
        -    this._length = 0;
        -};
        -
        -
        -/****************************************************************************/
        -/****************************************************************************/
        -/****************************************************************************/
        -
        -/**
        - * The Record class defines a DataTable record.
        - *
        - * @class Record
        - * @constructor
        - * @param oConfigs {Object} (optional) Object literal of key/value pairs.
        - */
        -YAHOO.widget.Record = function(oLiteral) {
        -    if(oLiteral && (oLiteral.constructor == Object)) {
        -        for(var sKey in oLiteral) {
        -            this[sKey] = oLiteral[sKey];
        -        }
        -        this.yuiRecordId = "yui-dtrec"+YAHOO.widget.Record._nCount;
        -        YAHOO.widget.Record._nCount++;
        -    }
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Private member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Internal class variable to index multiple data table instances.
        - *
        - * @property _nCount
        - * @type number
        - * @private
        - * @static
        - */
        -YAHOO.widget.Record._nCount = 0;
        -
        -/////////////////////////////////////////////////////////////////////////////
        -//
        -// Public member variables
        -//
        -/////////////////////////////////////////////////////////////////////////////
        -
        -/**
        - * Unique name assigned at instantation, indicates original order.
        - *
        - * @property yuiRecordId
        - * @type string
        - */
        -YAHOO.widget.Record.prototype.yuiRecordId = null;
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Region.js.html b/www/extras/yui/docs/Region.js.html deleted file mode 100644 index fa887964b..000000000 --- a/www/extras/yui/docs/Region.js.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - API: dom Region.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        dom  2.2.2

        -

        - Yahoo! UI Library - > dom - - > Region.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * A region is a representation of an object on a grid.  It is defined
        - * by the top, right, bottom, left extents, so is rectangular by default.  If 
        - * other shapes are required, this class could be extended to support it.
        - * @namespace YAHOO.util
        - * @class Region
        - * @param {Int} t the top extent
        - * @param {Int} r the right extent
        - * @param {Int} b the bottom extent
        - * @param {Int} l the left extent
        - * @constructor
        - */
        -YAHOO.util.Region = function(t, r, b, l) {
        -
        -    /**
        -     * The region's top extent
        -     * @property top
        -     * @type Int
        -     */
        -    this.top = t;
        -    
        -    /**
        -     * The region's top extent as index, for symmetry with set/getXY
        -     * @property 1
        -     * @type Int
        -     */
        -    this[1] = t;
        -
        -    /**
        -     * The region's right extent
        -     * @property right
        -     * @type int
        -     */
        -    this.right = r;
        -
        -    /**
        -     * The region's bottom extent
        -     * @property bottom
        -     * @type Int
        -     */
        -    this.bottom = b;
        -
        -    /**
        -     * The region's left extent
        -     * @property left
        -     * @type Int
        -     */
        -    this.left = l;
        -    
        -    /**
        -     * The region's left extent as index, for symmetry with set/getXY
        -     * @property 0
        -     * @type Int
        -     */
        -    this[0] = l;
        -};
        -
        -/**
        - * Returns true if this region contains the region passed in
        - * @method contains
        - * @param  {Region}  region The region to evaluate
        - * @return {Boolean}        True if the region is contained with this region, 
        - *                          else false
        - */
        -YAHOO.util.Region.prototype.contains = function(region) {
        -    return ( region.left   >= this.left   && 
        -             region.right  <= this.right  && 
        -             region.top    >= this.top    && 
        -             region.bottom <= this.bottom    );
        -
        -    // this.logger.debug("does " + this + " contain " + region + " ... " + ret);
        -};
        -
        -/**
        - * Returns the area of the region
        - * @method getArea
        - * @return {Int} the region's area
        - */
        -YAHOO.util.Region.prototype.getArea = function() {
        -    return ( (this.bottom - this.top) * (this.right - this.left) );
        -};
        -
        -/**
        - * Returns the region where the passed in region overlaps with this one
        - * @method intersect
        - * @param  {Region} region The region that intersects
        - * @return {Region}        The overlap region, or null if there is no overlap
        - */
        -YAHOO.util.Region.prototype.intersect = function(region) {
        -    var t = Math.max( this.top,    region.top    );
        -    var r = Math.min( this.right,  region.right  );
        -    var b = Math.min( this.bottom, region.bottom );
        -    var l = Math.max( this.left,   region.left   );
        -    
        -    if (b >= t && r >= l) {
        -        return new YAHOO.util.Region(t, r, b, l);
        -    } else {
        -        return null;
        -    }
        -};
        -
        -/**
        - * Returns the region representing the smallest region that can contain both
        - * the passed in region and this region.
        - * @method union
        - * @param  {Region} region The region that to create the union with
        - * @return {Region}        The union region
        - */
        -YAHOO.util.Region.prototype.union = function(region) {
        -    var t = Math.min( this.top,    region.top    );
        -    var r = Math.max( this.right,  region.right  );
        -    var b = Math.max( this.bottom, region.bottom );
        -    var l = Math.min( this.left,   region.left   );
        -
        -    return new YAHOO.util.Region(t, r, b, l);
        -};
        -
        -/**
        - * toString
        - * @method toString
        - * @return string the region properties
        - */
        -YAHOO.util.Region.prototype.toString = function() {
        -    return ( "Region {"    +
        -             "top: "       + this.top    + 
        -             ", right: "   + this.right  + 
        -             ", bottom: "  + this.bottom + 
        -             ", left: "    + this.left   + 
        -             "}" );
        -};
        -
        -/**
        - * Returns a region that is occupied by the DOM element
        - * @method getRegion
        - * @param  {HTMLElement} el The element
        - * @return {Region}         The region that the element occupies
        - * @static
        - */
        -YAHOO.util.Region.getRegion = function(el) {
        -    var p = YAHOO.util.Dom.getXY(el);
        -
        -    var t = p[1];
        -    var r = p[0] + el.offsetWidth;
        -    var b = p[1] + el.offsetHeight;
        -    var l = p[0];
        -
        -    return new YAHOO.util.Region(t, r, b, l);
        -};
        -
        -/////////////////////////////////////////////////////////////////////////////
        -
        -
        -/**
        - * A point is a region that is special in that it represents a single point on 
        - * the grid.
        - * @namespace YAHOO.util
        - * @class Point
        - * @param {Int} x The X position of the point
        - * @param {Int} y The Y position of the point
        - * @constructor
        - * @extends YAHOO.util.Region
        - */
        -YAHOO.util.Point = function(x, y) {
        -   if (x instanceof Array) { // accept output from Dom.getXY
        -      y = x[1];
        -      x = x[0];
        -   }
        -   
        -    /**
        -     * The X position of the point, which is also the right, left and index zero (for Dom.getXY symmetry)
        -     * @property x
        -     * @type Int
        -     */
        -
        -    this.x = this.right = this.left = this[0] = x;
        -     
        -    /**
        -     * The Y position of the point, which is also the top, bottom and index one (for Dom.getXY symmetry)
        -     * @property y
        -     * @type Int
        -     */
        -    this.y = this.top = this.bottom = this[1] = y;
        -};
        -
        -YAHOO.util.Point.prototype = new YAHOO.util.Region();
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/RootNode.js.html b/www/extras/yui/docs/RootNode.js.html deleted file mode 100644 index 83b59cb03..000000000 --- a/www/extras/yui/docs/RootNode.js.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - API: treeview RootNode.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - - > RootNode.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * A custom YAHOO.widget.Node that handles the unique nature of 
        - * the virtual, presentationless root node.
        - * @namespace YAHOO.widget
        - * @class RootNode
        - * @extends YAHOO.widget.Node
        - * @param oTree {YAHOO.widget.TreeView} The tree instance this node belongs to
        - * @constructor
        - */
        -YAHOO.widget.RootNode = function(oTree) {
        -	// Initialize the node with null params.  The root node is a
        -	// special case where the node has no presentation.  So we have
        -	// to alter the standard properties a bit.
        -	this.init(null, null, true);
        -	
        -	/*
        -	 * For the root node, we get the tree reference from as a param
        -	 * to the constructor instead of from the parent element.
        -	 */
        -	this.tree = oTree;
        -};
        -
        -YAHOO.extend(YAHOO.widget.RootNode, YAHOO.widget.Node, {
        -    
        -    // overrides YAHOO.widget.Node
        -    getNodeHtml: function() { 
        -        return ""; 
        -    },
        -
        -    toString: function() { 
        -        return "RootNode";
        -    },
        -
        -    loadComplete: function() { 
        -        this.tree.draw();
        -    },
        -
        -    collapse: function() {},
        -    expand: function() {}
        -
        -});
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Scroll.js.html b/www/extras/yui/docs/Scroll.js.html deleted file mode 100644 index 65333787b..000000000 --- a/www/extras/yui/docs/Scroll.js.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - API: animation Scroll.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        animation  2.2.2

        -

        - Yahoo! UI Library - > animation - - > Scroll.js (source view) -

        -
        - -
        -
        -
        - -
        -
        (function() {
        -/**
        - * Anim subclass for scrolling elements to a position defined by the "scroll"
        - * member of "attributes".  All "scroll" members are arrays with x, y scroll positions.
        - * <p>Usage: <code>var myAnim = new YAHOO.util.Scroll(el, { scroll: { to: [0, 800] } }, 1, YAHOO.util.Easing.easeOut);</code></p>
        - * @class Scroll
        - * @namespace YAHOO.util
        - * @requires YAHOO.util.Anim
        - * @requires YAHOO.util.AnimMgr
        - * @requires YAHOO.util.Easing
        - * @requires YAHOO.util.Bezier
        - * @requires YAHOO.util.Dom
        - * @requires YAHOO.util.Event
        - * @requires YAHOO.util.CustomEvent 
        - * @extends YAHOO.util.Anim
        - * @constructor
        - * @param {String or HTMLElement} el Reference to the element that will be animated
        - * @param {Object} attributes The attribute(s) to be animated.  
        - * Each attribute is an object with at minimum a "to" or "by" member defined.  
        - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px").  
        - * All attribute names use camelCase.
        - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based
        - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method)
        - */
        -    YAHOO.util.Scroll = function(el, attributes, duration,  method) {
        -        if (el) { // dont break existing subclasses not using YAHOO.extend
        -            YAHOO.util.Scroll.superclass.constructor.call(this, el, attributes, duration, method);
        -        }
        -    };
        -
        -    YAHOO.extend(YAHOO.util.Scroll, YAHOO.util.ColorAnim);
        -    
        -    // shorthand
        -    var Y = YAHOO.util;
        -    var superclass = Y.Scroll.superclass;
        -    var proto = Y.Scroll.prototype;
        -
        -    proto.toString = function() {
        -        var el = this.getEl();
        -        var id = el.id || el.tagName;
        -        return ("Scroll " + id);
        -    };
        -
        -    proto.doMethod = function(attr, start, end) {
        -        var val = null;
        -    
        -        if (attr == 'scroll') {
        -            val = [
        -                this.method(this.currentFrame, start[0], end[0] - start[0], this.totalFrames),
        -                this.method(this.currentFrame, start[1], end[1] - start[1], this.totalFrames)
        -            ];
        -            
        -        } else {
        -            val = superclass.doMethod.call(this, attr, start, end);
        -        }
        -        return val;
        -    };
        -
        -    proto.getAttribute = function(attr) {
        -        var val = null;
        -        var el = this.getEl();
        -        
        -        if (attr == 'scroll') {
        -            val = [ el.scrollLeft, el.scrollTop ];
        -        } else {
        -            val = superclass.getAttribute.call(this, attr);
        -        }
        -        
        -        return val;
        -    };
        -
        -    proto.setAttribute = function(attr, val, unit) {
        -        var el = this.getEl();
        -        
        -        if (attr == 'scroll') {
        -            el.scrollLeft = val[0];
        -            el.scrollTop = val[1];
        -        } else {
        -            superclass.setAttribute.call(this, attr, val, unit);
        -        }
        -    };
        -})();
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/SimpleDialog.js.html b/www/extras/yui/docs/SimpleDialog.js.html deleted file mode 100644 index ca157f6bc..000000000 --- a/www/extras/yui/docs/SimpleDialog.js.html +++ /dev/null @@ -1,353 +0,0 @@ - - - - API: container SimpleDialog.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - - > SimpleDialog.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* SimpleDialog is a simple implementation of Dialog that can be used to submit a single value. Forms can be processed in 3 ways -- via an asynchronous Connection utility call, a simple form POST or GET, or manually.
        -* @namespace YAHOO.widget
        -* @class SimpleDialog
        -* @extends YAHOO.widget.Dialog
        -* @constructor
        -* @param {String}	el	The element ID representing the SimpleDialog <em>OR</em>
        -* @param {HTMLElement}	el	The element representing the SimpleDialog
        -* @param {Object}	userConfig	The configuration object literal containing the configuration that should be set for this SimpleDialog. See configuration documentation for more details.
        -*/
        -YAHOO.widget.SimpleDialog = function(el, userConfig) {
        -	YAHOO.widget.SimpleDialog.superclass.constructor.call(this, el, userConfig);
        -};
        -
        -YAHOO.extend(YAHOO.widget.SimpleDialog, YAHOO.widget.Dialog);
        -
        -/**
        -* Constant for the standard network icon for a blocking action
        -* @property YAHOO.widget.SimpleDialog.ICON_BLOCK
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.SimpleDialog.ICON_BLOCK = "blckicon";
        -
        -/**
        -* Constant for the standard network icon for alarm
        -* @property YAHOO.widget.SimpleDialog.ICON_ALARM
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.SimpleDialog.ICON_ALARM = "alrticon";
        -
        -/**
        -* Constant for the standard network icon for help
        -* @property YAHOO.widget.SimpleDialog.ICON_HELP
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.SimpleDialog.ICON_HELP  = "hlpicon";
        -
        -/**
        -* Constant for the standard network icon for info
        -* @property YAHOO.widget.SimpleDialog.ICON_INFO
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.SimpleDialog.ICON_INFO  = "infoicon";
        -
        -/**
        -* Constant for the standard network icon for warn
        -* @property YAHOO.widget.SimpleDialog.ICON_WARN
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.SimpleDialog.ICON_WARN  = "warnicon";
        -
        -/**
        -* Constant for the standard network icon for a tip
        -* @property YAHOO.widget.SimpleDialog.ICON_TIP
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.SimpleDialog.ICON_TIP   = "tipicon";
        -
        -/**
        -* Constant representing the default CSS class used for a SimpleDialog
        -* @property YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG = "yui-simple-dialog";
        -
        -/**
        -* Constant representing the SimpleDialog's configuration properties
        -* @property YAHOO.widget.SimpleDialog._DEFAULT_CONFIG
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.SimpleDialog._DEFAULT_CONFIG = {
        -
        -    "ICON": { 
        -        key: "icon", 
        -        value:"none", 
        -        suppressEvent:true  
        -    },
        -
        -    "TEXT": { 
        -        key: "text", 
        -        value:"", 
        -        suppressEvent:true, 
        -        supercedes:["icon"] 
        -    }
        -
        -};
        -
        -/**
        -* Initializes the class's configurable properties which can be changed using the SimpleDialog's Config object (cfg).
        -* @method initDefaultConfig
        -*/
        -YAHOO.widget.SimpleDialog.prototype.initDefaultConfig = function() {
        -	YAHOO.widget.SimpleDialog.superclass.initDefaultConfig.call(this);
        -
        -	// Add dialog config properties //
        -
        -    var DEFAULT_CONFIG = YAHOO.widget.SimpleDialog._DEFAULT_CONFIG;
        -
        -	/**
        -	* Sets the informational icon for the SimpleDialog
        -	* @config icon
        -	* @type String
        -	* @default "none"
        -	*/
        -	this.cfg.addProperty(
        -                DEFAULT_CONFIG.ICON.key,
        -                {
        -                    handler: this.configIcon,
        -                    value: DEFAULT_CONFIG.ICON.value,
        -                    suppressEvent: DEFAULT_CONFIG.ICON.suppressEvent
        -                }
        -            );
        -
        -	/**
        -	* Sets the text for the SimpleDialog
        -	* @config text
        -	* @type String
        -	* @default ""
        -	*/
        -    this.cfg.addProperty(
        -                DEFAULT_CONFIG.TEXT.key,	
        -                { 
        -                    handler: this.configText, 
        -                    value: DEFAULT_CONFIG.TEXT.value, 
        -                    suppressEvent: DEFAULT_CONFIG.TEXT.suppressEvent, 
        -                    supercedes: DEFAULT_CONFIG.TEXT.supercedes 
        -                } 
        -            );
        -
        -};
        -
        -
        -/**
        -* The SimpleDialog initialization method, which is executed for SimpleDialog and all of its subclasses. This method is automatically called by the constructor, and  sets up all DOM references for pre-existing markup, and creates required markup if it is not already present.
        -* @method init
        -* @param {String}	el	The element ID representing the SimpleDialog <em>OR</em>
        -* @param {HTMLElement}	el	The element representing the SimpleDialog
        -* @param {Object}	userConfig	The configuration object literal containing the configuration that should be set for this SimpleDialog. See configuration documentation for more details.
        -*/
        -YAHOO.widget.SimpleDialog.prototype.init = function(el, userConfig) {
        -	YAHOO.widget.SimpleDialog.superclass.init.call(this, el/*, userConfig*/);  // Note that we don't pass the user config in here yet because we only want it executed once, at the lowest subclass level
        -
        -	this.beforeInitEvent.fire(YAHOO.widget.SimpleDialog);
        -
        -	YAHOO.util.Dom.addClass(this.element, YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG);
        -
        -	this.cfg.queueProperty("postmethod", "manual");
        -
        -	if (userConfig) {
        -		this.cfg.applyConfig(userConfig, true);
        -	}
        -
        -	this.beforeRenderEvent.subscribe(function() {
        -		if (! this.body) {
        -			this.setBody("");
        -		}
        -	}, this, true);
        -
        -	this.initEvent.fire(YAHOO.widget.SimpleDialog);
        -
        -};
        -/**
        -* Prepares the SimpleDialog's internal FORM object, creating one if one is not currently present, and adding the value hidden field.
        -* @method registerForm
        -*/
        -YAHOO.widget.SimpleDialog.prototype.registerForm = function() {
        -	YAHOO.widget.SimpleDialog.superclass.registerForm.call(this);
        -	this.form.innerHTML += "<input type=\"hidden\" name=\"" + this.id + "\" value=\"\"/>";
        -};
        -
        -// BEGIN BUILT-IN PROPERTY EVENT HANDLERS //
        -
        -/**
        -* Fired when the "icon" property is set.
        -* @method configIcon
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.SimpleDialog.prototype.configIcon = function(type,args,obj) {
        -	var icon = args[0];
        -	if (icon && icon != "none") {
        -		var iconHTML = "";
        -		if (icon.indexOf(".") == -1) {
        -			iconHTML = "<span class=\"yui-icon " + icon +"\" >&#160;</span>";
        -		} else {
        -			iconHTML = "<img src=\"" + this.imageRoot + icon + "\" class=\"yui-icon\" />";
        -		}
        -		this.body.innerHTML = iconHTML + this.body.innerHTML;
        -	}
        -};
        -
        -/**
        -* Fired when the "text" property is set.
        -* @method configText
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.SimpleDialog.prototype.configText = function(type,args,obj) {
        -	var text = args[0];
        -	if (text) {
        -		this.setBody(text);
        -		this.cfg.refireEvent("icon");
        -	}
        -};
        -// END BUILT-IN PROPERTY EVENT HANDLERS //
        -
        -/**
        -* Returns a string representation of the object.
        -* @method toString
        -* @return {String}	The string representation of the SimpleDialog
        -*/
        -YAHOO.widget.SimpleDialog.prototype.toString = function() {
        -	return "SimpleDialog " + this.id;
        -};
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Slider.js.html b/www/extras/yui/docs/Slider.js.html deleted file mode 100644 index 3efd4a8c3..000000000 --- a/www/extras/yui/docs/Slider.js.html +++ /dev/null @@ -1,1099 +0,0 @@ - - - - API: slider Slider.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Slider Widget  2.2.2

        -

        - Yahoo! UI Library - > slider - - > Slider.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * The Slider component is a UI control that enables the user to adjust 
        - * values in a finite range along one or two axes. Typically, the Slider 
        - * control is used in a web application as a rich, visual replacement 
        - * for an input box that takes a number as input. The Slider control can 
        - * also easily accommodate a second dimension, providing x,y output for 
        - * a selection point chosen from a rectangular region.
        - *
        - * @module    slider
        - * @title     Slider Widget
        - * @namespace YAHOO.widget
        - * @requires  yahoo,dom,dragdrop,event
        - * @optional  animation
        - */
        -
        -/**
        - * A DragDrop implementation that can be used as a background for a
        - * slider.  It takes a reference to the thumb instance 
        - * so it can delegate some of the events to it.  The goal is to make the 
        - * thumb jump to the location on the background when the background is 
        - * clicked.  
        - *
        - * @class Slider
        - * @extends YAHOO.util.DragDrop
        - * @uses YAHOO.util.EventProvider
        - * @constructor
        - * @param {String}      id     The id of the element linked to this instance
        - * @param {String}      sGroup The group of related DragDrop items
        - * @param {SliderThumb} oThumb The thumb for this slider
        - * @param {String}      sType  The type of slider (horiz, vert, region)
        - */
        -YAHOO.widget.Slider = function(sElementId, sGroup, oThumb, sType) {
        -    if (sElementId) {
        -        this.init(sElementId, sGroup, true);
        -        this.initSlider(sType);
        -        this.initThumb(oThumb);
        -    }
        -};
        -
        -/**
        - * Factory method for creating a horizontal slider
        - * @method YAHOO.widget.Slider.getHorizSlider
        - * @static
        - * @param {String} sBGElId the id of the slider's background element
        - * @param {String} sHandleElId the id of the thumb element
        - * @param {int} iLeft the number of pixels the element can move left
        - * @param {int} iRight the number of pixels the element can move right
        - * @param {int} iTickSize optional parameter for specifying that the element 
        - * should move a certain number pixels at a time.
        - * @return {Slider} a horizontal slider control
        - */
        -YAHOO.widget.Slider.getHorizSlider = 
        -    function (sBGElId, sHandleElId, iLeft, iRight, iTickSize) {
        -        return new YAHOO.widget.Slider(sBGElId, sBGElId, 
        -            new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, 
        -                               iLeft, iRight, 0, 0, iTickSize), "horiz");
        -};
        -
        -/**
        - * Factory method for creating a vertical slider
        - * @method YAHOO.widget.Slider.getVertSlider
        - * @static
        - * @param {String} sBGElId the id of the slider's background element
        - * @param {String} sHandleElId the id of the thumb element
        - * @param {int} iUp the number of pixels the element can move up
        - * @param {int} iDown the number of pixels the element can move down
        - * @param {int} iTickSize optional parameter for specifying that the element 
        - * should move a certain number pixels at a time.
        - * @return {Slider} a vertical slider control
        - */
        -YAHOO.widget.Slider.getVertSlider = 
        -    function (sBGElId, sHandleElId, iUp, iDown, iTickSize) {
        -        return new YAHOO.widget.Slider(sBGElId, sBGElId, 
        -            new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, 0, 0, 
        -                               iUp, iDown, iTickSize), "vert");
        -};
        -
        -/**
        - * Factory method for creating a slider region like the one in the color
        - * picker example
        - * @method YAHOO.widget.Slider.getSliderRegion
        - * @static
        - * @param {String} sBGElId the id of the slider's background element
        - * @param {String} sHandleElId the id of the thumb element
        - * @param {int} iLeft the number of pixels the element can move left
        - * @param {int} iRight the number of pixels the element can move right
        - * @param {int} iUp the number of pixels the element can move up
        - * @param {int} iDown the number of pixels the element can move down
        - * @param {int} iTickSize optional parameter for specifying that the element 
        - * should move a certain number pixels at a time.
        - * @return {Slider} a slider region control
        - */
        -YAHOO.widget.Slider.getSliderRegion = 
        -    function (sBGElId, sHandleElId, iLeft, iRight, iUp, iDown, iTickSize) {
        -        return new YAHOO.widget.Slider(sBGElId, sBGElId, 
        -            new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, iLeft, iRight, 
        -                               iUp, iDown, iTickSize), "region");
        -};
        -
        -/**
        - * By default, animation is available if the animation library is detected.
        - * @property YAHOO.widget.Slider.ANIM_AVAIL
        - * @static
        - * @type boolean
        - */
        -YAHOO.widget.Slider.ANIM_AVAIL = true;
        -
        -YAHOO.extend(YAHOO.widget.Slider, YAHOO.util.DragDrop, {
        -
        -    /**
        -     * Initializes the slider.  Executed in the constructor
        -     * @method initSlider
        -     * @param {string} sType the type of slider (horiz, vert, region)
        -     */
        -    initSlider: function(sType) {
        -
        -        /**
        -         * The type of the slider (horiz, vert, region)
        -         * @property type
        -         * @type string
        -         */
        -        this.type = sType;
        -
        -        //this.removeInvalidHandleType("A");
        -
        -        this.logger = new YAHOO.widget.LogWriter(this.toString());
        -
        -        /**
        -         * Event the fires when the value of the control changes.  If 
        -         * the control is animated the event will fire every point
        -         * along the way.
        -         * @event change
        -         * @param {int} newOffset|x the new offset for normal sliders, or the new
        -         *                          x offset for region sliders
        -         * @param {int} y the number of pixels the thumb has moved on the y axis
        -         *                (region sliders only)
        -         */
        -        this.createEvent("change", this);
        -
        -        /**
        -         * Event that fires at the beginning of a slider thumb move.
        -         * @event slideStart
        -         */
        -        this.createEvent("slideStart", this);
        -
        -        /**
        -         * Event that fires at the end of a slider thumb move
        -         * @event slideEnd
        -         */
        -        this.createEvent("slideEnd", this);
        -
        -        /**
        -         * Overrides the isTarget property in YAHOO.util.DragDrop
        -         * @property isTarget
        -         * @private
        -         */
        -        this.isTarget = false;
        -    
        -        /**
        -         * Flag that determines if the thumb will animate when moved
        -         * @property animate
        -         * @type boolean
        -         */
        -        this.animate = YAHOO.widget.Slider.ANIM_AVAIL;
        -
        -        /**
        -         * Set to false to disable a background click thumb move
        -         * @property backgroundEnabled
        -         * @type boolean
        -         */
        -        this.backgroundEnabled = true;
        -
        -        /**
        -         * Adjustment factor for tick animation, the more ticks, the
        -         * faster the animation (by default)
        -         * @property tickPause
        -         * @type int
        -         */
        -        this.tickPause = 40;
        -
        -        /**
        -         * Enables the arrow, home and end keys, defaults to true.
        -         * @property enableKeys
        -         * @type boolean
        -         */
        -        this.enableKeys = true;
        -
        -        /**
        -         * Specifies the number of pixels the arrow keys will move the slider.
        -         * Default is 25.
        -         * @property keyIncrement
        -         * @type int
        -         */
        -        this.keyIncrement = 20;
        -
        -        /**
        -         * moveComplete is set to true when the slider has moved to its final
        -         * destination.  For animated slider, this value can be checked in 
        -         * the onChange handler to make it possible to execute logic only
        -         * when the move is complete rather than at all points along the way.
        -         * Deprecated because this flag is only useful when the background is
        -         * clicked and the slider is animated.  If the user drags the thumb,
        -         * the flag is updated when the drag is over ... the final onDrag event
        -         * fires before the mouseup the ends the drag, so the implementer will
        -         * never see it.
        -         *
        -         * @property moveComplete
        -         * @type Boolean
        -         * @deprecated use the slideEnd event instead
        -         */
        -        this.moveComplete = true;
        -
        -        /**
        -         * If animation is configured, specifies the length of the animation
        -         * in seconds.
        -         * @property animationDuration
        -         * @type int
        -         * @default 0.2
        -         */
        -        this.animationDuration = 0.2;
        -    },
        -
        -    /**
        -     * Initializes the slider's thumb. Executed in the constructor.
        -     * @method initThumb
        -     * @param {YAHOO.widget.SliderThumb} t the slider thumb
        -     */
        -    initThumb: function(t) {
        -
        -        var self = this;
        -
        -        /**
        -         * A YAHOO.widget.SliderThumb instance that we will use to 
        -         * reposition the thumb when the background is clicked
        -         * @property thumb
        -         * @type YAHOO.widget.SliderThumb
        -         */
        -        this.thumb = t;
        -        t.cacheBetweenDrags = true;
        -
        -        // add handler for the handle onchange event
        -        t.onChange = function() { 
        -            self.handleThumbChange(); 
        -        };
        -
        -        if (t._isHoriz && t.xTicks && t.xTicks.length) {
        -            this.tickPause = Math.round(360 / t.xTicks.length);
        -        } else if (t.yTicks && t.yTicks.length) {
        -            this.tickPause = Math.round(360 / t.yTicks.length);
        -        }
        -
        -        this.logger.log("tickPause: " + this.tickPause);
        -
        -        // delegate thumb methods
        -        t.onMouseDown = function () { return self.focus(); };
        -        t.onMouseUp = function() { self.thumbMouseUp(); };
        -        t.onDrag = function() { self.fireEvents(true); };
        -        t.onAvailable = function() { return self.setStartSliderState(); };
        -
        -    },
        -
        -    /**
        -     * Executed when the slider element is available
        -     * @method onAvailable
        -     */
        -    onAvailable: function() {
        -        var Event = YAHOO.util.Event;
        -        Event.on(this.id, "keydown",  this.handleKeyDown,  this, true);
        -        Event.on(this.id, "keypress", this.handleKeyPress, this, true);
        -    },
        - 
        -    /**
        -     * Executed when a keypress event happens with the control focused.
        -     * Prevents the default behavior for navigation keys.  The actual
        -     * logic for moving the slider thumb in response to a key event
        -     * happens in handleKeyDown.
        -     * @param {Event} e the keypress event
        -     */
        -    handleKeyPress: function(e) {
        -        if (this.enableKeys) {
        -            var Event = YAHOO.util.Event;
        -            var kc = Event.getCharCode(e);
        -            switch (kc) {
        -                case 0x25: // left
        -                case 0x26: // up
        -                case 0x27: // right
        -                case 0x28: // down
        -                case 0x24: // home
        -                case 0x23: // end
        -                    Event.preventDefault(e);
        -                    break;
        -                default:
        -            }
        -        }
        -    },
        -
        -    /**
        -     * Executed when a keydown event happens with the control focused.
        -     * Updates the slider value and display when the keypress is an
        -     * arrow key, home, or end as long as enableKeys is set to true.
        -     * @param {Event} e the keydown event
        -     */
        -    handleKeyDown: function(e) {
        -        if (this.enableKeys) {
        -            var Event = YAHOO.util.Event;
        -
        -            var kc = Event.getCharCode(e), t=this.thumb;
        -            var h=this.getXValue(),v=this.getYValue();
        -
        -            var horiz = false;
        -            var changeValue = true;
        -            switch (kc) {
        -
        -                // left
        -                case 0x25: h -= this.keyIncrement; break;
        -
        -                // up
        -                case 0x26: v -= this.keyIncrement; break;
        -
        -                // right
        -                case 0x27: h += this.keyIncrement; break;
        -
        -                // down
        -                case 0x28: v += this.keyIncrement; break;
        -
        -                // home
        -                case 0x24: h = t.leftConstraint;    
        -                           v = t.topConstraint;    
        -                           break;
        -
        -                // end
        -                case 0x23: h = t.rightConstraint; 
        -                           v = t.bottomConstraint;    
        -                           break;
        -
        -                default:   changeValue = false;
        -            }
        -
        -            if (changeValue) {
        -                if (t._isRegion) {
        -                    this.setRegionValue(h, v, true);
        -                } else {
        -                    var newVal = (t._isHoriz) ? h : v;
        -                    this.setValue(newVal, true);
        -                }
        -                Event.stopEvent(e);
        -            }
        -
        -        }
        -    },
        -
        -    /**
        -     * Initialization that sets up the value offsets once the elements are ready
        -     * @method setStartSliderState
        -     */
        -    setStartSliderState: function() {
        -
        -        this.logger.log("Fixing state");
        -
        -        this.setThumbCenterPoint();
        -
        -        /**
        -         * The basline position of the background element, used
        -         * to determine if the background has moved since the last
        -         * operation.
        -         * @property baselinePos
        -         * @type [int, int]
        -         */
        -        this.baselinePos = YAHOO.util.Dom.getXY(this.getEl());
        -
        -        this.thumb.startOffset = this.thumb.getOffsetFromParent(this.baselinePos);
        -
        -        if (this.thumb._isRegion) {
        -            if (this.deferredSetRegionValue) {
        -                this.setRegionValue.apply(this, this.deferredSetRegionValue, true);
        -                this.deferredSetRegionValue = null;
        -            } else {
        -                this.setRegionValue(0, 0, true, true);
        -            }
        -        } else {
        -            if (this.deferredSetValue) {
        -                this.setValue.apply(this, this.deferredSetValue, true);
        -                this.deferredSetValue = null;
        -            } else {
        -                this.setValue(0, true, true);
        -            }
        -        }
        -    },
        -
        -    /**
        -     * When the thumb is available, we cache the centerpoint of the element so
        -     * we can position the element correctly when the background is clicked
        -     * @method setThumbCenterPoint
        -     */
        -    setThumbCenterPoint: function() {
        -
        -        var el = this.thumb.getEl();
        -
        -        if (el) {
        -            /**
        -             * The center of the slider element is stored so we can 
        -             * place it in the correct position when the background is clicked.
        -             * @property thumbCenterPoint
        -             * @type {"x": int, "y": int}
        -             */
        -            this.thumbCenterPoint = { 
        -                    x: parseInt(el.offsetWidth/2, 10), 
        -                    y: parseInt(el.offsetHeight/2, 10) 
        -            };
        -        }
        -
        -    },
        -
        -    /**
        -     * Locks the slider, overrides YAHOO.util.DragDrop
        -     * @method lock
        -     */
        -    lock: function() {
        -        this.logger.log("locking");
        -        this.thumb.lock();
        -        this.locked = true;
        -    },
        -
        -    /**
        -     * Unlocks the slider, overrides YAHOO.util.DragDrop
        -     * @method unlock
        -     */
        -    unlock: function() {
        -        this.logger.log("unlocking");
        -        this.thumb.unlock();
        -        this.locked = false;
        -    },
        -
        -    /**
        -     * Handles mouseup event on the slider background
        -     * @method thumbMouseUp
        -     * @private
        -     */
        -    thumbMouseUp: function() {
        -        this.logger.log("bg mouseup");
        -        if (!this.isLocked() && !this.moveComplete) {
        -            this.endMove();
        -        }
        -
        -    },
        -
        -    /**
        -     * Returns a reference to this slider's thumb
        -     * @method getThumb
        -     * @return {SliderThumb} this slider's thumb
        -     */
        -    getThumb: function() {
        -        return this.thumb;
        -    },
        -
        -    /**
        -     * Try to focus the element when clicked so we can add
        -     * accessibility features
        -     * @method focus
        -     * @private
        -     */
        -    focus: function() {
        -        this.logger.log("focus");
        -
        -        // Focus the background element if possible
        -        var el = this.getEl();
        -
        -        if (el.focus) {
        -            try {
        -                el.focus();
        -            } catch(e) {
        -                // Prevent permission denied unhandled exception in FF that can
        -                // happen when setting focus while another element is handling
        -                // the blur.  @TODO this is still writing to the error log 
        -                // (unhandled error) in FF1.5 with strict error checking on.
        -            }
        -        }
        -
        -        this.verifyOffset();
        -
        -        if (this.isLocked()) {
        -            return false;
        -        } else {
        -            this.onSlideStart();
        -            return true;
        -        }
        -    },
        -
        -    /**
        -     * Event that fires when the value of the slider has changed
        -     * @method onChange
        -     * @param {int} firstOffset the number of pixels the thumb has moved
        -     * from its start position. Normal horizontal and vertical sliders will only
        -     * have the firstOffset.  Regions will have both, the first is the horizontal
        -     * offset, the second the vertical.
        -     * @param {int} secondOffset the y offset for region sliders
        -     * @deprecated use instance.subscribe("change") instead
        -     */
        -    onChange: function (firstOffset, secondOffset) { 
        -        /* override me */ 
        -        this.logger.log("onChange: " + firstOffset + ", " + secondOffset);
        -    },
        -
        -    /**
        -     * Event that fires when the at the beginning of the slider thumb move
        -     * @method onSlideStart
        -     * @deprecated use instance.subscribe("slideStart") instead
        -     */
        -    onSlideStart: function () { 
        -        /* override me */ 
        -        this.logger.log("onSlideStart");
        -    },
        -
        -    /**
        -     * Event that fires at the end of a slider thumb move
        -     * @method onSliderEnd
        -     * @deprecated use instance.subscribe("slideEnd") instead
        -     */
        -    onSlideEnd: function () { 
        -        /* override me */ 
        -        this.logger.log("onSlideEnd");
        -    },
        -
        -    /**
        -     * Returns the slider's thumb offset from the start position
        -     * @method getValue
        -     * @return {int} the current value
        -     */
        -    getValue: function () { 
        -        return this.thumb.getValue();
        -    },
        -
        -    /**
        -     * Returns the slider's thumb X offset from the start position
        -     * @method getXValue
        -     * @return {int} the current horizontal offset
        -     */
        -    getXValue: function () { 
        -        return this.thumb.getXValue();
        -    },
        -
        -    /**
        -     * Returns the slider's thumb Y offset from the start position
        -     * @method getYValue
        -     * @return {int} the current vertical offset
        -     */
        -    getYValue: function () { 
        -        return this.thumb.getYValue();
        -    },
        -
        -    /**
        -     * Internal handler for the slider thumb's onChange event
        -     * @method handleThumbChange
        -     * @private
        -     */
        -    handleThumbChange: function () { 
        -        var t = this.thumb;
        -        if (t._isRegion) {
        -            t.onChange(t.getXValue(), t.getYValue());
        -            this.fireEvent("change", { x: t.getXValue(), y: t.getYValue() } );
        -        } else {
        -            t.onChange(t.getValue());
        -            this.fireEvent("change", t.getValue());
        -        }
        -
        -    },
        -
        -    /**
        -     * Provides a way to set the value of the slider in code.
        -     * @method setValue
        -     * @param {int} newOffset the number of pixels the thumb should be
        -     * positioned away from the initial start point 
        -     * @param {boolean} skipAnim set to true to disable the animation
        -     * for this move action (but not others).
        -     * @param {boolean} force ignore the locked setting and set value anyway
        -     * @return {boolean} true if the move was performed, false if it failed
        -     */
        -    setValue: function(newOffset, skipAnim, force) {
        -        this.logger.log("setValue " + newOffset);
        -
        -        if (!this.thumb.available) {
        -            this.logger.log("defer setValue until after onAvailble");
        -            this.deferredSetValue = arguments;
        -            return false;
        -        }
        -
        -        if (this.isLocked() && !force) {
        -            this.logger.log("Can't set the value, the control is locked");
        -            return false;
        -        }
        -
        -        if ( isNaN(newOffset) ) {
        -            this.logger.log("setValue, Illegal argument: " + newOffset);
        -            return false;
        -        }
        -
        -        var t = this.thumb;
        -        var newX, newY;
        -        this.verifyOffset(true);
        -        if (t._isRegion) {
        -            return false;
        -        } else if (t._isHoriz) {
        -            this.onSlideStart();
        -            // this.fireEvent("slideStart");
        -            newX = t.initPageX + newOffset + this.thumbCenterPoint.x;
        -            this.moveThumb(newX, t.initPageY, skipAnim);
        -        } else {
        -            this.onSlideStart();
        -            // this.fireEvent("slideStart");
        -            newY = t.initPageY + newOffset + this.thumbCenterPoint.y;
        -            this.moveThumb(t.initPageX, newY, skipAnim);
        -        }
        -
        -        return true;
        -    },
        -
        -    /**
        -     * Provides a way to set the value of the region slider in code.
        -     * @method setRegionValue
        -     * @param {int} newOffset the number of pixels the thumb should be
        -     * positioned away from the initial start point (x axis for region)
        -     * @param {int} newOffset2 the number of pixels the thumb should be
        -     * positioned away from the initial start point (y axis for region)
        -     * @param {boolean} skipAnim set to true to disable the animation
        -     * for this move action (but not others).
        -     * @param {boolean} force ignore the locked setting and set value anyway
        -     * @return {boolean} true if the move was performed, false if it failed
        -     */
        -    setRegionValue: function(newOffset, newOffset2, skipAnim, force) {
        -
        -        if (!this.thumb.available) {
        -            this.logger.log("defer setRegionValue until after onAvailble");
        -            this.deferredSetRegionValue = arguments;
        -            return false;
        -        }
        -
        -        if (this.isLocked() && !force) {
        -            this.logger.log("Can't set the value, the control is locked");
        -            return false;
        -        }
        -
        -        if ( isNaN(newOffset) ) {
        -            this.logger.log("setRegionValue, Illegal argument: " + newOffset);
        -            return false;
        -        }
        -
        -        var t = this.thumb;
        -        if (t._isRegion) {
        -            this.onSlideStart();
        -            var newX = t.initPageX + newOffset + this.thumbCenterPoint.x;
        -            var newY = t.initPageY + newOffset2 + this.thumbCenterPoint.y;
        -            this.moveThumb(newX, newY, skipAnim);
        -            return true;
        -        }
        -
        -        return false;
        -
        -    },
        -
        -    /**
        -     * Checks the background position element position.  If it has moved from the
        -     * baseline position, the constraints for the thumb are reset
        -     * @param checkPos {boolean} check the position instead of using cached value
        -     * @method verifyOffset
        -     * @return {boolean} True if the offset is the same as the baseline.
        -     */
        -    verifyOffset: function(checkPos) {
        -
        -        var newPos = YAHOO.util.Dom.getXY(this.getEl());
        -        //var newPos = [this.initPageX, this.initPageY];
        -
        -        this.logger.log("newPos: " + newPos, "warn");
        -
        -        if (newPos[0] != this.baselinePos[0] || newPos[1] != this.baselinePos[1]) {
        -            this.logger.log("background moved, resetting constraints");
        -            this.thumb.resetConstraints();
        -            this.baselinePos = newPos;
        -            return false;
        -        }
        -
        -        return true;
        -    },
        -
        -    /**
        -     * Move the associated slider moved to a timeout to try to get around the 
        -     * mousedown stealing moz does when I move the slider element between the 
        -     * cursor and the background during the mouseup event
        -     * @method moveThumb
        -     * @param {int} x the X coordinate of the click
        -     * @param {int} y the Y coordinate of the click
        -     * @param {boolean} skipAnim don't animate if the move happend onDrag
        -     * @private
        -     */
        -    moveThumb: function(x, y, skipAnim) {
        -
        -        // this.logger.log("move thumb", "warn");
        -
        -        var t = this.thumb;
        -        var self = this;
        -
        -        if (!t.available) {
        -            this.logger.log("thumb is not available yet, aborting move");
        -            return;
        -        }
        -
        -        this.logger.log("move thumb, x: "  + x + ", y: " + y);
        -
        -        // this.verifyOffset();
        -
        -        t.setDelta(this.thumbCenterPoint.x, this.thumbCenterPoint.y);
        -
        -        var _p = t.getTargetCoord(x, y);
        -        var p = [_p.x, _p.y];
        -
        -
        -        this.fireEvent("slideStart");
        -
        -        if (this.animate && YAHOO.widget.Slider.ANIM_AVAIL && t._graduated && !skipAnim) {
        -            this.logger.log("graduated");
        -            // this.thumb._animating = true;
        -            this.lock();
        -
        -            // cache the current thumb pos
        -            this.curCoord = YAHOO.util.Dom.getXY(this.thumb.getEl());
        -
        -            setTimeout( function() { self.moveOneTick(p); }, this.tickPause );
        -
        -        } else if (this.animate && YAHOO.widget.Slider.ANIM_AVAIL && !skipAnim) {
        -            this.logger.log("animating to " + p);
        -
        -            // this.thumb._animating = true;
        -            this.lock();
        -
        -            var oAnim = new YAHOO.util.Motion( 
        -                    t.id, { points: { to: p } }, 
        -                    this.animationDuration, 
        -                    YAHOO.util.Easing.easeOut );
        -
        -            oAnim.onComplete.subscribe( function() { self.endMove(); } );
        -            oAnim.animate();
        -        } else {
        -            t.setDragElPos(x, y);
        -            // this.fireEvents();
        -            this.endMove();
        -        }
        -    },
        -
        -    /**
        -     * Move the slider one tick mark towards its final coordinate.  Used
        -     * for the animation when tick marks are defined
        -     * @method moveOneTick
        -     * @param {int[]} the destination coordinate
        -     * @private
        -     */
        -    moveOneTick: function(finalCoord) {
        -
        -        var t = this.thumb, tmp;
        -
        -
        -        // redundant call to getXY since we set the position most of time prior 
        -        // to getting here.  Moved to this.curCoord
        -        //var curCoord = YAHOO.util.Dom.getXY(t.getEl());
        -
        -        // alignElWithMouse caches position in lastPageX, lastPageY .. doesn't work
        -        //var curCoord = [this.lastPageX, this.lastPageY];
        -
        -        // var thresh = Math.min(t.tickSize + (Math.floor(t.tickSize/2)), 10);
        -        // var thresh = 10;
        -        // var thresh = t.tickSize + (Math.floor(t.tickSize/2));
        -
        -        var nextCoord = null;
        -
        -        if (t._isRegion) {
        -            nextCoord = this._getNextX(this.curCoord, finalCoord);
        -            var tmpX = (nextCoord) ? nextCoord[0] : this.curCoord[0];
        -            nextCoord = this._getNextY([tmpX, this.curCoord[1]], finalCoord);
        -
        -        } else if (t._isHoriz) {
        -            nextCoord = this._getNextX(this.curCoord, finalCoord);
        -        } else {
        -            nextCoord = this._getNextY(this.curCoord, finalCoord);
        -        }
        -
        -        this.logger.log("moveOneTick: " + 
        -                " finalCoord: " + finalCoord +
        -                " this.curCoord: " + this.curCoord +
        -                " nextCoord: " + nextCoord);
        -
        -        if (nextCoord) {
        -
        -            // cache the position
        -            this.curCoord = nextCoord;
        -
        -            // move to the next coord
        -            // YAHOO.util.Dom.setXY(t.getEl(), nextCoord);
        -
        -            // var el = t.getEl();
        -            // YAHOO.util.Dom.setStyle(el, "left", (nextCoord[0] + this.thumb.deltaSetXY[0]) + "px");
        -            // YAHOO.util.Dom.setStyle(el, "top",  (nextCoord[1] + this.thumb.deltaSetXY[1]) + "px");
        -
        -            this.thumb.alignElWithMouse(t.getEl(), nextCoord[0], nextCoord[1]);
        -            
        -            // check if we are in the final position, if not make a recursive call
        -            if (!(nextCoord[0] == finalCoord[0] && nextCoord[1] == finalCoord[1])) {
        -                var self = this;
        -                setTimeout(function() { self.moveOneTick(finalCoord); }, 
        -                        this.tickPause);
        -            } else {
        -                this.endMove();
        -            }
        -        } else {
        -            this.endMove();
        -        }
        -
        -        //this.tickPause = Math.round(this.tickPause/2);
        -    },
        -
        -    /**
        -     * Returns the next X tick value based on the current coord and the target coord.
        -     * @method _getNextX
        -     * @private
        -     */
        -    _getNextX: function(curCoord, finalCoord) {
        -        this.logger.log("getNextX: " + curCoord + ", " + finalCoord);
        -        var t = this.thumb;
        -        var thresh;
        -        var tmp = [];
        -        var nextCoord = null;
        -        if (curCoord[0] > finalCoord[0]) {
        -            thresh = t.tickSize - this.thumbCenterPoint.x;
        -            tmp = t.getTargetCoord( curCoord[0] - thresh, curCoord[1] );
        -            nextCoord = [tmp.x, tmp.y];
        -        } else if (curCoord[0] < finalCoord[0]) {
        -            thresh = t.tickSize + this.thumbCenterPoint.x;
        -            tmp = t.getTargetCoord( curCoord[0] + thresh, curCoord[1] );
        -            nextCoord = [tmp.x, tmp.y];
        -        } else {
        -            // equal, do nothing
        -        }
        -
        -        return nextCoord;
        -    },
        -
        -    /**
        -     * Returns the next Y tick value based on the current coord and the target coord.
        -     * @method _getNextY
        -     * @private
        -     */
        -    _getNextY: function(curCoord, finalCoord) {
        -        var t = this.thumb;
        -        var thresh;
        -        var tmp = [];
        -        var nextCoord = null;
        -
        -        if (curCoord[1] > finalCoord[1]) {
        -            thresh = t.tickSize - this.thumbCenterPoint.y;
        -            tmp = t.getTargetCoord( curCoord[0], curCoord[1] - thresh );
        -            nextCoord = [tmp.x, tmp.y];
        -        } else if (curCoord[1] < finalCoord[1]) {
        -            thresh = t.tickSize + this.thumbCenterPoint.y;
        -            tmp = t.getTargetCoord( curCoord[0], curCoord[1] + thresh );
        -            nextCoord = [tmp.x, tmp.y];
        -        } else {
        -            // equal, do nothing
        -        }
        -
        -        return nextCoord;
        -    },
        -
        -    /**
        -     * Resets the constraints before moving the thumb.
        -     * @method b4MouseDown
        -     * @private
        -     */
        -    b4MouseDown: function(e) {
        -        this.thumb.autoOffset();
        -        this.thumb.resetConstraints();
        -    },
        -
        -
        -    /**
        -     * Handles the mousedown event for the slider background
        -     * @method onMouseDown
        -     * @private
        -     */
        -    onMouseDown: function(e) {
        -        // this.resetConstraints(true);
        -        // this.thumb.resetConstraints(true);
        -
        -        if (! this.isLocked() && this.backgroundEnabled) {
        -            var x = YAHOO.util.Event.getPageX(e);
        -            var y = YAHOO.util.Event.getPageY(e);
        -            this.logger.log("bg mousedown: " + x + "," + y);
        -
        -            this.focus();
        -            this.moveThumb(x, y);
        -        }
        -        
        -    },
        -
        -    /**
        -     * Handles the onDrag event for the slider background
        -     * @method onDrag
        -     * @private
        -     */
        -    onDrag: function(e) {
        -        if (! this.isLocked()) {
        -            var x = YAHOO.util.Event.getPageX(e);
        -            var y = YAHOO.util.Event.getPageY(e);
        -            this.moveThumb(x, y, true);
        -        }
        -    },
        -
        -    /**
        -     * Fired when the slider movement ends
        -     * @method endMove
        -     * @private
        -     */
        -    endMove: function () {
        -        // this._animating = false;
        -        this.unlock();
        -        this.moveComplete = true;
        -        this.fireEvents();
        -    },
        -
        -    /**
        -     * Fires the change event if the value has been changed.  Ignored if we are in
        -     * the middle of an animation as the event will fire when the animation is
        -     * complete
        -     * @method fireEvents
        -     * @param {boolean} thumbEvent set to true if this event is fired from an event
        -     *                  that occurred on the thumb.  If it is, the state of the
        -     *                  thumb dd object should be correct.  Otherwise, the event
        -     *                  originated on the background, so the thumb state needs to
        -     *                  be refreshed before proceeding.
        -     * @private
        -     */
        -    fireEvents: function (thumbEvent) {
        -
        -        var t = this.thumb;
        -        // this.logger.log("FireEvents: " + t._isRegion);
        -
        -        if (!thumbEvent) {
        -            t.cachePosition();
        -        }
        -
        -        if (! this.isLocked()) {
        -            if (t._isRegion) {
        -                this.logger.log("region");
        -                var newX = t.getXValue();
        -                var newY = t.getYValue();
        -
        -                if (newX != this.previousX || newY != this.previousY) {
        -                    // this.logger.log("Firing onchange");
        -                    this.onChange(newX, newY);
        -                    this.fireEvent("change", { x: newX, y: newY });
        -                }
        -
        -                this.previousX = newX;
        -                this.previousY = newY;
        -
        -            } else {
        -                var newVal = t.getValue();
        -                if (newVal != this.previousVal) {
        -                    this.logger.log("Firing onchange: " + newVal);
        -                    this.onChange( newVal );
        -                    this.fireEvent("change", newVal);
        -                }
        -                this.previousVal = newVal;
        -            }
        -
        -            if (this.moveComplete) {
        -                this.onSlideEnd();
        -                this.fireEvent("slideEnd");
        -                this.moveComplete = false;
        -            }
        -
        -        }
        -    },
        -
        -    /**
        -     * Slider toString
        -     * @method toString
        -     * @return {string} string representation of the instance
        -     */
        -    toString: function () { 
        -        return ("Slider (" + this.type +") " + this.id);
        -    }
        -
        -});
        -
        -YAHOO.augment(YAHOO.widget.Slider, YAHOO.util.EventProvider);
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/SliderThumb.js.html b/www/extras/yui/docs/SliderThumb.js.html deleted file mode 100644 index 2c3c803c1..000000000 --- a/www/extras/yui/docs/SliderThumb.js.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - API: slider SliderThumb.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Slider Widget  2.2.2

        -

        - Yahoo! UI Library - > slider - - > SliderThumb.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * A drag and drop implementation to be used as the thumb of a slider.
        - * @class SliderThumb
        - * @extends YAHOO.util.DD
        - * @constructor
        - * @param {String} id the id of the slider html element
        - * @param {String} sGroup the group of related DragDrop items
        - * @param {int} iLeft the number of pixels the element can move left
        - * @param {int} iRight the number of pixels the element can move right
        - * @param {int} iUp the number of pixels the element can move up
        - * @param {int} iDown the number of pixels the element can move down
        - * @param {int} iTickSize optional parameter for specifying that the element 
        - * should move a certain number pixels at a time.
        - */
        -YAHOO.widget.SliderThumb = function(id, sGroup, iLeft, iRight, iUp, iDown, iTickSize) {
        -
        -    if (id) {
        -        //this.init(id, sGroup);
        -        YAHOO.widget.SliderThumb.superclass.constructor.call(this, id, sGroup);
        -
        -        /**
        -         * The id of the thumbs parent HTML element (the slider background 
        -         * element).
        -         * @property parentElId
        -         * @type string
        -         */
        -        this.parentElId = sGroup;
        -    }
        -
        -
        -    //this.removeInvalidHandleType("A");
        -
        -    this.logger = new YAHOO.widget.LogWriter(this.toString());
        -
        -    /**
        -     * Overrides the isTarget property in YAHOO.util.DragDrop
        -     * @property isTarget
        -     * @private
        -     */
        -    this.isTarget = false;
        -
        -    /**
        -     * The tick size for this slider
        -     * @property tickSize
        -     * @type int
        -     * @private
        -     */
        -    this.tickSize = iTickSize;
        -
        -    /**
        -     * Informs the drag and drop util that the offsets should remain when
        -     * resetting the constraints.  This preserves the slider value when
        -     * the constraints are reset
        -     * @property maintainOffset
        -     * @type boolean
        -     * @private
        -     */
        -    this.maintainOffset = true;
        -
        -    this.initSlider(iLeft, iRight, iUp, iDown, iTickSize);
        -
        -    /**
        -     * Turns off the autoscroll feature in drag and drop
        -     * @property scroll
        -     * @private
        -     */
        -    this.scroll = false;
        -
        -}; 
        -
        -YAHOO.extend(YAHOO.widget.SliderThumb, YAHOO.util.DD, {
        -
        -    /**
        -     * The (X and Y) difference between the thumb location and its parent 
        -     * (the slider background) when the control is instantiated.
        -     * @property startOffset
        -     * @type [int, int]
        -     */
        -    startOffset: null,
        -
        -    /**
        -     * Flag used to figure out if this is a horizontal or vertical slider
        -     * @property _isHoriz
        -     * @type boolean
        -     * @private
        -     */
        -    _isHoriz: false,
        -
        -    /**
        -     * Cache the last value so we can check for change
        -     * @property _prevVal
        -     * @type int
        -     * @private
        -     */
        -    _prevVal: 0,
        -
        -    /**
        -     * The slider is _graduated if there is a tick interval defined
        -     * @property _graduated
        -     * @type boolean
        -     * @private
        -     */
        -    _graduated: false,
        -
        -
        -    /**
        -     * Returns the difference between the location of the thumb and its parent.
        -     * @method getOffsetFromParent
        -     * @param {[int, int]} parentPos Optionally accepts the position of the parent
        -     * @type [int, int]
        -     */
        -    getOffsetFromParent0: function(parentPos) {
        -        var myPos = YAHOO.util.Dom.getXY(this.getEl());
        -        var ppos  = parentPos || YAHOO.util.Dom.getXY(this.parentElId);
        -
        -        return [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ];
        -    },
        -
        -    getOffsetFromParent: function(parentPos) {
        -
        -        var el = this.getEl();
        -
        -        if (!this.deltaOffset) {
        -
        -            var myPos = YAHOO.util.Dom.getXY(el);
        -            var ppos  = parentPos || YAHOO.util.Dom.getXY(this.parentElId);
        -
        -            var newOffset = [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ];
        -
        -            var l = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 );
        -            var t = parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 );
        -
        -            var deltaX = l - newOffset[0];
        -            var deltaY = t - newOffset[1];
        -
        -            if (isNaN(deltaX) || isNaN(deltaY)) {
        -                this.logger.log("element does not have a position style def yet");
        -            } else {
        -                this.deltaOffset = [deltaX, deltaY];
        -            }
        -
        -        } else {
        -            var newLeft = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 );
        -            var newTop  = parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 );
        -
        -            newOffset  = [newLeft + this.deltaOffset[0], newTop + this.deltaOffset[1]];
        -        }
        -
        -        return newOffset;
        -
        -        //return [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ];
        -    },
        -
        -    /**
        -     * Set up the slider, must be called in the constructor of all subclasses
        -     * @method initSlider
        -     * @param {int} iLeft the number of pixels the element can move left
        -     * @param {int} iRight the number of pixels the element can move right
        -     * @param {int} iUp the number of pixels the element can move up
        -     * @param {int} iDown the number of pixels the element can move down
        -     * @param {int} iTickSize the width of the tick interval.
        -     */
        -    initSlider: function (iLeft, iRight, iUp, iDown, iTickSize) {
        -
        -
        -        //document these.  new for 0.12.1
        -        this.initLeft = iLeft;
        -        this.initRight = iRight;
        -        this.initUp = iUp;
        -        this.initDown = iDown;
        -
        -        this.setXConstraint(iLeft, iRight, iTickSize);
        -        this.setYConstraint(iUp, iDown, iTickSize);
        -
        -        if (iTickSize && iTickSize > 1) {
        -            this._graduated = true;
        -        }
        -
        -        this._isHoriz  = (iLeft || iRight); 
        -        this._isVert   = (iUp   || iDown);
        -        this._isRegion = (this._isHoriz && this._isVert); 
        -
        -    },
        -
        -    /**
        -     * Clear's the slider's ticks
        -     * @method clearTicks
        -     */
        -    clearTicks: function () {
        -        YAHOO.widget.SliderThumb.superclass.clearTicks.call(this);
        -        this.tickSize = 0;
        -        this._graduated = false;
        -    },
        -
        -
        -    /**
        -     * Gets the current offset from the element's start position in
        -     * pixels.
        -     * @method getValue
        -     * @return {int} the number of pixels (positive or negative) the
        -     * slider has moved from the start position.
        -     */
        -    getValue: function () {
        -        if (!this.available) { return 0; }
        -        var val = (this._isHoriz) ? this.getXValue() : this.getYValue();
        -        //this.logger.log("getVal: " + val);
        -        return val;
        -    },
        -
        -    /**
        -     * Gets the current X offset from the element's start position in
        -     * pixels.
        -     * @method getXValue
        -     * @return {int} the number of pixels (positive or negative) the
        -     * slider has moved horizontally from the start position.
        -     */
        -    getXValue: function () {
        -        if (!this.available) { return 0; }
        -        var newOffset = this.getOffsetFromParent();
        -        return (newOffset[0] - this.startOffset[0]);
        -    },
        -
        -    /**
        -     * Gets the current Y offset from the element's start position in
        -     * pixels.
        -     * @method getYValue
        -     * @return {int} the number of pixels (positive or negative) the
        -     * slider has moved vertically from the start position.
        -     */
        -    getYValue: function () {
        -        if (!this.available) { return 0; }
        -        var newOffset = this.getOffsetFromParent();
        -        return (newOffset[1] - this.startOffset[1]);
        -    },
        -
        -    /**
        -     * Thumb toString
        -     * @method toString
        -     * @return {string} string representation of the instance
        -     */
        -    toString: function () { 
        -        return "SliderThumb " + this.id;
        -    },
        -
        -    /**
        -     * The onchange event for the handle/thumb is delegated to the YAHOO.widget.Slider
        -     * instance it belongs to.
        -     * @method onChange
        -     * @private
        -     */
        -    onChange: function (x, y) { 
        -    }
        -
        -});
        -
        -if ("undefined" == typeof YAHOO.util.Anim) {
        -    YAHOO.widget.Slider.ANIM_AVAIL = false;
        -}
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Sort.html b/www/extras/yui/docs/Sort.html deleted file mode 100644 index 458e1506d..000000000 --- a/www/extras/yui/docs/Sort.html +++ /dev/null @@ -1,265 +0,0 @@ - - - - API: datatable Sort (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        DataTable Widget  2.2.2

        -

        - Yahoo! UI Library - > datatable - > Sort - -

        -
        - -
        -
        -
        - - -

        - - - static - - Class Sort - - - - - - - -

        - - - - - -
        - Sort static utility to support Column sorting. -
        - - - - -
        -

        Methods

        -
        -

        - compareAsc

        -
        - - - - - void - compareAsc - ( - - - a - - - , - b - - - ) - - -
        - Comparator function for sort in ascending order. String sorting is case insensitive. -
        - -
        - -
        -
        Parameters:
        -
        - a <object> - First sort argument. -
        -
        - b <object> - Second sort argument. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - compareDesc

        -
        - - - - - void - compareDesc - ( - - - a - - - , - b - - - ) - - -
        - Comparator function for sort in descending order. String sorting is case insensitive. -
        - -
        - -
        -
        Parameters:
        -
        - a <object> - First sort argument. -
        -
        - b <object> - Second sort argument. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/TVAnim.js.html b/www/extras/yui/docs/TVAnim.js.html deleted file mode 100644 index 2cc379995..000000000 --- a/www/extras/yui/docs/TVAnim.js.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - API: treeview TVAnim.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - - > TVAnim.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * A static factory class for tree view expand/collapse animations
        - * @class TVAnim
        - * @static
        - */
        -YAHOO.widget.TVAnim = function() {
        -    return {
        -        /**
        -         * Constant for the fade in animation
        -         * @property FADE_IN
        -         * @type string
        -         * @static
        -         */
        -        FADE_IN: "TVFadeIn",
        -
        -        /**
        -         * Constant for the fade out animation
        -         * @property FADE_OUT
        -         * @type string
        -         * @static
        -         */
        -        FADE_OUT: "TVFadeOut",
        -
        -        /**
        -         * Returns a ygAnim instance of the given type
        -         * @method getAnim
        -         * @param type {string} the type of animation
        -         * @param el {HTMLElement} the element to element (probably the children div)
        -         * @param callback {function} function to invoke when the animation is done.
        -         * @return {YAHOO.util.Animation} the animation instance
        -         * @static
        -         */
        -        getAnim: function(type, el, callback) {
        -            if (YAHOO.widget[type]) {
        -                return new YAHOO.widget[type](el, callback);
        -            } else {
        -                return null;
        -            }
        -        },
        -
        -        /**
        -         * Returns true if the specified animation class is available
        -         * @method isValid
        -         * @param type {string} the type of animation
        -         * @return {boolean} true if valid, false if not
        -         * @static
        -         */
        -        isValid: function(type) {
        -            return (YAHOO.widget[type]);
        -        }
        -    };
        -} ();
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/TVFadeIn.js.html b/www/extras/yui/docs/TVFadeIn.js.html deleted file mode 100644 index 52f9d9074..000000000 --- a/www/extras/yui/docs/TVFadeIn.js.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - API: treeview TVFadeIn.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - - > TVFadeIn.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * A 1/2 second fade-in animation.
        - * @class TVFadeIn
        - * @constructor
        - * @param el {HTMLElement} the element to animate
        - * @param callback {function} function to invoke when the animation is finished
        - */
        -YAHOO.widget.TVFadeIn = function(el, callback) {
        -    /**
        -     * The element to animate
        -     * @property el
        -     * @type HTMLElement
        -     */
        -    this.el = el;
        -
        -    /**
        -     * the callback to invoke when the animation is complete
        -     * @property callback
        -     * @type function
        -     */
        -    this.callback = callback;
        -
        -    this.logger = new YAHOO.widget.LogWriter(this.toString());
        -};
        -
        -YAHOO.widget.TVFadeIn.prototype = {
        -    /**
        -     * Performs the animation
        -     * @method animate
        -     */
        -    animate: function() {
        -        var tvanim = this;
        -
        -        var s = this.el.style;
        -        s.opacity = 0.1;
        -        s.filter = "alpha(opacity=10)";
        -        s.display = "";
        -
        -        var dur = 0.4; 
        -        var a = new YAHOO.util.Anim(this.el, {opacity: {from: 0.1, to: 1, unit:""}}, dur);
        -        a.onComplete.subscribe( function() { tvanim.onComplete(); } );
        -        a.animate();
        -    },
        -
        -    /**
        -     * Clean up and invoke callback
        -     * @method onComplete
        -     */
        -    onComplete: function() {
        -        this.callback();
        -    },
        -
        -    /**
        -     * toString
        -     * @method toString
        -     * @return {string} the string representation of the instance
        -     */
        -    toString: function() {
        -        return "TVFadeIn";
        -    }
        -};
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/TVFadeOut.js.html b/www/extras/yui/docs/TVFadeOut.js.html deleted file mode 100644 index 720a023f1..000000000 --- a/www/extras/yui/docs/TVFadeOut.js.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - API: treeview TVFadeOut.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - - > TVFadeOut.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * A 1/2 second fade out animation.
        - * @class TVFadeOut
        - * @constructor
        - * @param el {HTMLElement} the element to animate
        - * @param callback {Function} function to invoke when the animation is finished
        - */
        -YAHOO.widget.TVFadeOut = function(el, callback) {
        -    /**
        -     * The element to animate
        -     * @property el
        -     * @type HTMLElement
        -     */
        -    this.el = el;
        -
        -    /**
        -     * the callback to invoke when the animation is complete
        -     * @property callback
        -     * @type function
        -     */
        -    this.callback = callback;
        -
        -    this.logger = new YAHOO.widget.LogWriter(this.toString());
        -};
        -
        -YAHOO.widget.TVFadeOut.prototype = {
        -    /**
        -     * Performs the animation
        -     * @method animate
        -     */
        -    animate: function() {
        -        var tvanim = this;
        -        var dur = 0.4;
        -        var a = new YAHOO.util.Anim(this.el, {opacity: {from: 1, to: 0.1, unit:""}}, dur);
        -        a.onComplete.subscribe( function() { tvanim.onComplete(); } );
        -        a.animate();
        -    },
        -
        -    /**
        -     * Clean up and invoke callback
        -     * @method onComplete
        -     */
        -    onComplete: function() {
        -        var s = this.el.style;
        -        s.display = "none";
        -        // s.opacity = 1;
        -        s.filter = "alpha(opacity=100)";
        -        this.callback();
        -    },
        -
        -    /**
        -     * toString
        -     * @method toString
        -     * @return {string} the string representation of the instance
        -     */
        -    toString: function() {
        -        return "TVFadeOut";
        -    }
        -};
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Tab.js.html b/www/extras/yui/docs/Tab.js.html deleted file mode 100644 index d845bc30e..000000000 --- a/www/extras/yui/docs/Tab.js.html +++ /dev/null @@ -1,614 +0,0 @@ - - - - API: tabview Tab.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        tabview  2.2.2

        -

        - Yahoo! UI Library - > tabview - - > Tab.js (source view) -

        -
        - -
        -
        -
        - -
        -
        (function() {
        -    var Dom = YAHOO.util.Dom,
        -        Event = YAHOO.util.Event;
        -    
        -    /**
        -     * A representation of a Tab's label and content.
        -     * @namespace YAHOO.widget
        -     * @class Tab
        -     * @extends YAHOO.util.Element
        -     * @constructor
        -     * @param element {HTMLElement | String} (optional) The html element that 
        -     * represents the TabView. An element will be created if none provided.
        -     * @param {Object} properties A key map of initial properties
        -     */
        -    var Tab = function(el, attr) {
        -        attr = attr || {};
        -        if (arguments.length == 1 && !YAHOO.lang.isString(el) && !el.nodeName) {
        -            attr = el;
        -            el = attr.element;
        -        }
        -
        -        if (!el && !attr.element) {
        -            el = _createTabElement.call(this, attr);
        -        }
        -
        -        this.loadHandler =  {
        -            success: function(o) {
        -                this.set('content', o.responseText);
        -            },
        -            failure: function(o) {
        -                YAHOO.log('loading failed: ' + o.statusText,
        -                        'error', 'Tab');
        -            }
        -        };
        -        
        -        Tab.superclass.constructor.call(this, el, attr);
        -        
        -        this.DOM_EVENTS = {}; // delegating to tabView
        -    };
        -
        -    YAHOO.extend(Tab, YAHOO.util.Element);
        -    var proto = Tab.prototype;
        -    
        -    /**
        -     * The default tag name for a Tab's inner element.
        -     * @property LABEL_INNER_TAGNAME
        -     * @type String
        -     * @default "em"
        -     */
        -    proto.LABEL_TAGNAME = 'em';
        -    
        -    /**
        -     * The class name applied to active tabs.
        -     * @property ACTIVE_CLASSNAME
        -     * @type String
        -     * @default "on"
        -     */
        -    proto.ACTIVE_CLASSNAME = 'selected';
        -    
        -    /**
        -     * The class name applied to disabled tabs.
        -     * @property DISABLED_CLASSNAME
        -     * @type String
        -     * @default "disabled"
        -     */
        -    proto.DISABLED_CLASSNAME = 'disabled';
        -    
        -    /**
        -     * The class name applied to dynamic tabs while loading.
        -     * @property LOADING_CLASSNAME
        -     * @type String
        -     * @default "disabled"
        -     */
        -    proto.LOADING_CLASSNAME = 'loading';
        -
        -    /**
        -     * Provides a reference to the connection request object when data is
        -     * loaded dynamically.
        -     * @property dataConnection
        -     * @type Object
        -     */
        -    proto.dataConnection = null;
        -    
        -    /**
        -     * Object containing success and failure callbacks for loading data.
        -     * @property loadHandler
        -     * @type object
        -     */
        -    proto.loadHandler = null;
        -    
        -    /**
        -     * Provides a readable name for the tab.
        -     * @method toString
        -     * @return String
        -     */
        -    proto.toString = function() {
        -        var el = this.get('element');
        -        var id = el.id || el.tagName;
        -        return "Tab " + id; 
        -    };
        -    
        -    /**
        -     * setAttributeConfigs TabView specific properties.
        -     * @method initAttributes
        -     * @param {Object} attr Hash of initial attributes
        -     */
        -    proto.initAttributes = function(attr) {
        -        attr = attr || {};
        -        Tab.superclass.initAttributes.call(this, attr);
        -        
        -        var el = this.get('element');
        -        
        -        /**
        -         * The event that triggers the tab's activation.
        -         * @config activationEvent
        -         * @type String
        -         */
        -        this.setAttributeConfig('activationEvent', {
        -            value: attr.activationEvent || 'click'
        -        });        
        -
        -        /**
        -         * The element that contains the tab's label.
        -         * @config labelEl
        -         * @type HTMLElement
        -         */
        -        this.setAttributeConfig('labelEl', {
        -            value: attr.labelEl || _getlabelEl.call(this),
        -            method: function(value) {
        -                var current = this.get('labelEl');
        -
        -                if (current) {
        -                    if (current == value) {
        -                        return false; // already set
        -                    }
        -                    
        -                    this.replaceChild(value, current);
        -                } else if (el.firstChild) { // ensure label is firstChild by default
        -                    this.insertBefore(value, el.firstChild);
        -                } else {
        -                    this.appendChild(value);
        -                }  
        -            } 
        -        });
        -
        -        /**
        -         * The tab's label text (or innerHTML).
        -         * @config label
        -         * @type String
        -         */
        -        this.setAttributeConfig('label', {
        -            value: attr.label || _getLabel.call(this),
        -            method: function(value) {
        -                var labelEl = this.get('labelEl');
        -                if (!labelEl) { // create if needed
        -                    this.set('labelEl', _createlabelEl.call(this));
        -                }
        -                
        -                _setLabel.call(this, value);
        -            }
        -        });
        -        
        -        /**
        -         * The HTMLElement that contains the tab's content.
        -         * @config contentEl
        -         * @type HTMLElement
        -         */
        -        this.setAttributeConfig('contentEl', {
        -            value: attr.contentEl || document.createElement('div'),
        -            method: function(value) {
        -                var current = this.get('contentEl');
        -
        -                if (current) {
        -                    if (current == value) {
        -                        return false; // already set
        -                    }
        -                    this.replaceChild(value, current);
        -                }
        -            }
        -        });
        -        
        -        /**
        -         * The tab's content.
        -         * @config content
        -         * @type String
        -         */
        -        this.setAttributeConfig('content', {
        -            value: attr.content,
        -            method: function(value) {
        -                this.get('contentEl').innerHTML = value;
        -            }
        -        });
        -
        -        var _dataLoaded = false;
        -        
        -        /**
        -         * The tab's data source, used for loading content dynamically.
        -         * @config dataSrc
        -         * @type String
        -         */
        -        this.setAttributeConfig('dataSrc', {
        -            value: attr.dataSrc
        -        });
        -        
        -        /**
        -         * Whether or not content should be reloaded for every view.
        -         * @config cacheData
        -         * @type Boolean
        -         * @default false
        -         */
        -        this.setAttributeConfig('cacheData', {
        -            value: attr.cacheData || false,
        -            validator: YAHOO.lang.isBoolean
        -        });
        -        
        -        /**
        -         * The method to use for the data request.
        -         * @config loadMethod
        -         * @type String
        -         * @default "GET"
        -         */
        -        this.setAttributeConfig('loadMethod', {
        -            value: attr.loadMethod || 'GET',
        -            validator: YAHOO.lang.isString
        -        });
        -
        -        /**
        -         * Whether or not any data has been loaded from the server.
        -         * @config dataLoaded
        -         * @type Boolean
        -         */        
        -        this.setAttributeConfig('dataLoaded', {
        -            value: false,
        -            validator: YAHOO.lang.isBoolean,
        -            writeOnce: true
        -        });
        -        
        -        /**
        -         * Number if milliseconds before aborting and calling failure handler.
        -         * @config dataTimeout
        -         * @type Number
        -         * @default null
        -         */
        -        this.setAttributeConfig('dataTimeout', {
        -            value: attr.dataTimeout || null,
        -            validator: YAHOO.lang.isNumber
        -        });
        -        
        -        /**
        -         * Whether or not the tab is currently active.
        -         * If a dataSrc is set for the tab, the content will be loaded from
        -         * the given source.
        -         * @config active
        -         * @type Boolean
        -         */
        -        this.setAttributeConfig('active', {
        -            value: attr.active || this.hasClass(this.ACTIVE_CLASSNAME),
        -            method: function(value) {
        -                if (value === true) {
        -                    this.addClass(this.ACTIVE_CLASSNAME);
        -                    this.set('title', 'active');
        -                } else {
        -                    this.removeClass(this.ACTIVE_CLASSNAME);
        -                    this.set('title', '');
        -                }
        -            },
        -            validator: function(value) {
        -                return YAHOO.lang.isBoolean(value) && !this.get('disabled') ;
        -            }
        -        });
        -        
        -        /**
        -         * Whether or not the tab is disabled.
        -         * @config disabled
        -         * @type Boolean
        -         */
        -        this.setAttributeConfig('disabled', {
        -            value: attr.disabled || this.hasClass(this.DISABLED_CLASSNAME),
        -            method: function(value) {
        -                if (value === true) {
        -                    Dom.addClass(this.get('element'), this.DISABLED_CLASSNAME);
        -                } else {
        -                    Dom.removeClass(this.get('element'), this.DISABLED_CLASSNAME);
        -                }
        -            },
        -            validator: YAHOO.lang.isBoolean
        -        });
        -        
        -        /**
        -         * The href of the tab's anchor element.
        -         * @config href
        -         * @type String
        -         * @default '#'
        -         */
        -        this.setAttributeConfig('href', {
        -            value: attr.href || '#',
        -            method: function(value) {
        -                this.getElementsByTagName('a')[0].href = value;
        -            },
        -            validator: YAHOO.lang.isString
        -        });
        -        
        -        /**
        -         * The Whether or not the tab's content is visible.
        -         * @config contentVisible
        -         * @type Boolean
        -         * @default false
        -         */
        -        this.setAttributeConfig('contentVisible', {
        -            value: attr.contentVisible,
        -            method: function(value) {
        -                if (value) {
        -                    this.get('contentEl').style.display = 'block';
        -                    
        -                    if ( this.get('dataSrc') ) {
        -                     // load dynamic content unless already loaded and caching
        -                        if ( !this.get('dataLoaded') || !this.get('cacheData') ) {
        -                            _dataConnect.call(this);
        -                        }
        -                    }
        -                } else {
        -                    this.get('contentEl').style.display = 'none';
        -                }
        -            },
        -            validator: YAHOO.lang.isBoolean
        -        });
        -    };
        -    
        -    var _createTabElement = function(attr) {
        -        var el = document.createElement('li');
        -        var a = document.createElement('a');
        -        
        -        a.href = attr.href || '#';
        -        
        -        el.appendChild(a);
        -        
        -        var label = attr.label || null;
        -        var labelEl = attr.labelEl || null;
        -        
        -        if (labelEl) { // user supplied labelEl
        -            if (!label) { // user supplied label
        -                label = _getLabel.call(this, labelEl);
        -            }
        -        } else {
        -            labelEl = _createlabelEl.call(this);
        -        }
        -        
        -        a.appendChild(labelEl);
        -        
        -        return el;
        -    };
        -    
        -    var _getlabelEl = function() {
        -        return this.getElementsByTagName(this.LABEL_TAGNAME)[0];
        -    };
        -    
        -    var _createlabelEl = function() {
        -        var el = document.createElement(this.LABEL_TAGNAME);
        -        return el;
        -    };
        -    
        -    var _setLabel = function(label) {
        -        var el = this.get('labelEl');
        -        el.innerHTML = label;
        -    };
        -    
        -    var _getLabel = function() {
        -        var label,
        -            el = this.get('labelEl');
        -            
        -            if (!el) {
        -                return undefined;
        -            }
        -        
        -        return el.innerHTML;
        -    };
        -    
        -    var _dataConnect = function() {
        -        if (!YAHOO.util.Connect) {
        -            YAHOO.log('YAHOO.util.Connect dependency not met',
        -                    'error', 'Tab');
        -            return false;
        -        }
        -
        -        Dom.addClass(this.get('contentEl').parentNode, this.LOADING_CLASSNAME);
        -        
        -        this.dataConnection = YAHOO.util.Connect.asyncRequest(
        -            this.get('loadMethod'),
        -            this.get('dataSrc'), 
        -            {
        -                success: function(o) {
        -                    this.loadHandler.success.call(this, o);
        -                    this.set('dataLoaded', true);
        -                    this.dataConnection = null;
        -                    Dom.removeClass(this.get('contentEl').parentNode,
        -                            this.LOADING_CLASSNAME);
        -                },
        -                failure: function(o) {
        -                    this.loadHandler.failure.call(this, o);
        -                    this.dataConnection = null;
        -                    Dom.removeClass(this.get('contentEl').parentNode,
        -                            this.LOADING_CLASSNAME);
        -                },
        -                scope: this,
        -                timeout: this.get('dataTimeout')
        -            }
        -        );
        -    };
        -    
        -    YAHOO.widget.Tab = Tab;
        -    
        -    /**
        -     * Fires before the active state is changed.
        -     * <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
        -     * <p>If handler returns false, the change will be cancelled, and the value will not
        -     * be set.</p>
        -     * <p><strong>Event fields:</strong><br>
        -     * <code>&lt;String&gt; type</code> beforeActiveChange<br>
        -     * <code>&lt;Boolean&gt;
        -     * prevValue</code> the current value<br>
        -     * <code>&lt;Boolean&gt;
        -     * newValue</code> the new value</p>
        -     * <p><strong>Usage:</strong><br>
        -     * <code>var handler = function(e) {var previous = e.prevValue};<br>
        -     * myTabs.addListener('beforeActiveChange', handler);</code></p>
        -     * @event beforeActiveChange
        -     */
        -        
        -    /**
        -     * Fires after the active state is changed.
        -     * <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
        -     * <p><strong>Event fields:</strong><br>
        -     * <code>&lt;String&gt; type</code> activeChange<br>
        -     * <code>&lt;Boolean&gt;
        -     * prevValue</code> the previous value<br>
        -     * <code>&lt;Boolean&gt;
        -     * newValue</code> the updated value</p>
        -     * <p><strong>Usage:</strong><br>
        -     * <code>var handler = function(e) {var previous = e.prevValue};<br>
        -     * myTabs.addListener('activeChange', handler);</code></p>
        -     * @event activeChange
        -     */
        -     
        -    /**
        -     * Fires before the tab label is changed.
        -     * <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
        -     * <p>If handler returns false, the change will be cancelled, and the value will not
        -     * be set.</p>
        -     * <p><strong>Event fields:</strong><br>
        -     * <code>&lt;String&gt; type</code> beforeLabelChange<br>
        -     * <code>&lt;String&gt;
        -     * prevValue</code> the current value<br>
        -     * <code>&lt;String&gt;
        -     * newValue</code> the new value</p>
        -     * <p><strong>Usage:</strong><br>
        -     * <code>var handler = function(e) {var previous = e.prevValue};<br>
        -     * myTabs.addListener('beforeLabelChange', handler);</code></p>
        -     * @event beforeLabelChange
        -     */
        -        
        -    /**
        -     * Fires after the tab label is changed.
        -     * <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
        -     * <p><strong>Event fields:</strong><br>
        -     * <code>&lt;String&gt; type</code> labelChange<br>
        -     * <code>&lt;String&gt;
        -     * prevValue</code> the previous value<br>
        -     * <code>&lt;String&gt;
        -     * newValue</code> the updated value</p>
        -     * <p><strong>Usage:</strong><br>
        -     * <code>var handler = function(e) {var previous = e.prevValue};<br>
        -     * myTabs.addListener('labelChange', handler);</code></p>
        -     * @event labelChange
        -     */
        -     
        -    /**
        -     * Fires before the tab content is changed.
        -     * <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
        -     * <p>If handler returns false, the change will be cancelled, and the value will not
        -     * be set.</p>
        -     * <p><strong>Event fields:</strong><br>
        -     * <code>&lt;String&gt; type</code> beforeContentChange<br>
        -     * <code>&lt;String&gt;
        -     * prevValue</code> the current value<br>
        -     * <code>&lt;String&gt;
        -     * newValue</code> the new value</p>
        -     * <p><strong>Usage:</strong><br>
        -     * <code>var handler = function(e) {var previous = e.prevValue};<br>
        -     * myTabs.addListener('beforeContentChange', handler);</code></p>
        -     * @event beforeContentChange
        -     */
        -        
        -    /**
        -     * Fires after the tab content is changed.
        -     * <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
        -     * <p><strong>Event fields:</strong><br>
        -     * <code>&lt;String&gt; type</code> contentChange<br>
        -     * <code>&lt;String&gt;
        -     * prevValue</code> the previous value<br>
        -     * <code>&lt;Boolean&gt;
        -     * newValue</code> the updated value</p>
        -     * <p><strong>Usage:</strong><br>
        -     * <code>var handler = function(e) {var previous = e.prevValue};<br>
        -     * myTabs.addListener('contentChange', handler);</code></p>
        -     * @event contentChange
        -     */
        -})();
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/TabView.js.html b/www/extras/yui/docs/TabView.js.html deleted file mode 100644 index e3a615f0d..000000000 --- a/www/extras/yui/docs/TabView.js.html +++ /dev/null @@ -1,616 +0,0 @@ - - - - API: tabview TabView.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        tabview  2.2.2

        -

        - Yahoo! UI Library - > tabview - - > TabView.js (source view) -

        -
        - -
        -
        -
        - -
        -
        (function() {
        -
        -    /**
        -     * The tabview module provides a widget for managing content bound to tabs.
        -     * @module tabview
        -     * @requires yahoo, dom, event, element
        -     *
        -     */
        -    /**
        -     * A widget to control tabbed views.
        -     * @namespace YAHOO.widget
        -     * @class TabView
        -     * @extends YAHOO.util.Element
        -     * @constructor
        -     * @param {HTMLElement | String | Object} el(optional) The html 
        -     * element that represents the TabView, or the attribute object to use. 
        -     * An element will be created if none provided.
        -     * @param {Object} attr (optional) A key map of the tabView's 
        -     * initial attributes.  Ignored if first arg is attributes object.
        -     */
        -    YAHOO.widget.TabView = function(el, attr) {
        -        attr = attr || {};
        -        if (arguments.length == 1 && !YAHOO.lang.isString(el) && !el.nodeName) {
        -            attr = el; // treat first arg as attr object
        -            el = attr.element || null;
        -        }
        -        
        -        if (!el && !attr.element) { // create if we dont have one
        -            el = _createTabViewElement.call(this, attr);
        -        }
        -    	YAHOO.widget.TabView.superclass.constructor.call(this, el, attr); 
        -    };
        -
        -    YAHOO.extend(YAHOO.widget.TabView, YAHOO.util.Element);
        -    
        -    var proto = YAHOO.widget.TabView.prototype;
        -    var Dom = YAHOO.util.Dom;
        -    var Event = YAHOO.util.Event;
        -    var Tab = YAHOO.widget.Tab;
        -    
        -    
        -    /**
        -     * The className to add when building from scratch. 
        -     * @property CLASSNAME
        -     * @default "navset"
        -     */
        -    proto.CLASSNAME = 'yui-navset';
        -    
        -    /**
        -     * The className of the HTMLElement containing the TabView's tab elements
        -     * to look for when building from existing markup, or to add when building
        -     * from scratch. 
        -     * All childNodes of the tab container are treated as Tabs when building
        -     * from existing markup.
        -     * @property TAB_PARENT_CLASSNAME
        -     * @default "nav"
        -     */
        -    proto.TAB_PARENT_CLASSNAME = 'yui-nav';
        -    
        -    /**
        -     * The className of the HTMLElement containing the TabView's label elements
        -     * to look for when building from existing markup, or to add when building
        -     * from scratch. 
        -     * All childNodes of the content container are treated as content elements when
        -     * building from existing markup.
        -     * @property CONTENT_PARENT_CLASSNAME
        -     * @default "nav-content"
        -     */
        -    proto.CONTENT_PARENT_CLASSNAME = 'yui-content';
        -    
        -    proto._tabParent = null;
        -    proto._contentParent = null; 
        -    
        -    /**
        -     * Adds a Tab to the TabView instance.  
        -     * If no index is specified, the tab is added to the end of the tab list.
        -     * @method addTab
        -     * @param {YAHOO.widget.Tab} tab A Tab instance to add.
        -     * @param {Integer} index The position to add the tab. 
        -     * @return void
        -     */
        -    proto.addTab = function(tab, index) {
        -        var tabs = this.get('tabs');
        -        if (!tabs) { // not ready yet
        -            this._queue[this._queue.length] = ['addTab', arguments];
        -            return false;
        -        }
        -        
        -        index = (index === undefined) ? tabs.length : index;
        -        
        -        var before = this.getTab(index);
        -        
        -        var self = this;
        -        var el = this.get('element');
        -        var tabParent = this._tabParent;
        -        var contentParent = this._contentParent;
        -
        -        var tabElement = tab.get('element');
        -        var contentEl = tab.get('contentEl');
        -
        -        if ( before ) {
        -            tabParent.insertBefore(tabElement, before.get('element'));
        -        } else {
        -            tabParent.appendChild(tabElement);
        -        }
        -
        -        if ( contentEl && !Dom.isAncestor(contentParent, contentEl) ) {
        -            contentParent.appendChild(contentEl);
        -        }
        -        
        -        if ( !tab.get('active') ) {
        -            tab.set('contentVisible', false, true); /* hide if not active */
        -        } else {
        -            this.set('activeTab', tab, true);
        -            
        -        }
        -
        -        var activate = function(e) {
        -            YAHOO.util.Event.preventDefault(e);
        -            self.set('activeTab', this);
        -        };
        -        
        -        tab.addListener( tab.get('activationEvent'), activate);
        -        
        -        tab.addListener('activationEventChange', function(e) {
        -            if (e.prevValue != e.newValue) {
        -                tab.removeListener(e.prevValue, activate);
        -                tab.addListener(e.newValue, activate);
        -            }
        -        });
        -        
        -        tabs.splice(index, 0, tab);
        -    };
        -
        -    /**
        -     * Routes childNode events.
        -     * @method DOMEventHandler
        -     * @param {event} e The Dom event that is being handled.
        -     * @return void
        -     */
        -    proto.DOMEventHandler = function(e) {
        -        var el = this.get('element');
        -        var target = YAHOO.util.Event.getTarget(e);
        -        var tabParent = this._tabParent;
        -        
        -        if (Dom.isAncestor(tabParent, target) ) {
        -            var tabEl;
        -            var tab = null;
        -            var contentEl;
        -            var tabs = this.get('tabs');
        -
        -            for (var i = 0, len = tabs.length; i < len; i++) {
        -                tabEl = tabs[i].get('element');
        -                contentEl = tabs[i].get('contentEl');
        -
        -                if ( target == tabEl || Dom.isAncestor(tabEl, target) ) {
        -                    tab = tabs[i];
        -                    break; // note break
        -                }
        -            } 
        -            
        -            if (tab) {
        -                tab.fireEvent(e.type, e);
        -            }
        -        }
        -    };
        -    
        -    /**
        -     * Returns the Tab instance at the specified index.
        -     * @method getTab
        -     * @param {Integer} index The position of the Tab.
        -     * @return YAHOO.widget.Tab
        -     */
        -    proto.getTab = function(index) {
        -    	return this.get('tabs')[index];
        -    };
        -    
        -    /**
        -     * Returns the index of given tab.
        -     * @method getTabIndex
        -     * @param {YAHOO.widget.Tab} tab The tab whose index will be returned.
        -     * @return int
        -     */
        -    proto.getTabIndex = function(tab) {
        -        var index = null;
        -        var tabs = this.get('tabs');
        -    	for (var i = 0, len = tabs.length; i < len; ++i) {
        -            if (tab == tabs[i]) {
        -                index = i;
        -                break;
        -            }
        -        }
        -        
        -        return index;
        -    };
        -    
        -    /**
        -     * Removes the specified Tab from the TabView.
        -     * @method removeTab
        -     * @param {YAHOO.widget.Tab} item The Tab instance to be removed.
        -     * @return void
        -     */
        -    proto.removeTab = function(tab) {
        -        var tabCount = this.get('tabs').length;
        -
        -        var index = this.getTabIndex(tab);
        -        var nextIndex = index + 1;
        -        if ( tab == this.get('activeTab') ) { // select next tab
        -            if (tabCount > 1) {
        -                if (index + 1 == tabCount) {
        -                    this.set('activeIndex', index - 1);
        -                } else {
        -                    this.set('activeIndex', index + 1);
        -                }
        -            }
        -        }
        -        
        -        this._tabParent.removeChild( tab.get('element') );
        -        this._contentParent.removeChild( tab.get('contentEl') );
        -        this._configs.tabs.value.splice(index, 1);
        -    	
        -    };
        -    
        -    /**
        -     * Provides a readable name for the TabView instance.
        -     * @method toString
        -     * @return String
        -     */
        -    proto.toString = function() {
        -        var name = this.get('id') || this.get('tagName');
        -        return "TabView " + name; 
        -    };
        -    
        -    /**
        -     * The transiton to use when switching between tabs.
        -     * @method contentTransition
        -     */
        -    proto.contentTransition = function(newTab, oldTab) {
        -        newTab.set('contentVisible', true);
        -        oldTab.set('contentVisible', false);
        -    };
        -    
        -    /**
        -     * setAttributeConfigs TabView specific properties.
        -     * @method initAttributes
        -     * @param {Object} attr Hash of initial attributes
        -     */
        -    proto.initAttributes = function(attr) {
        -        YAHOO.widget.TabView.superclass.initAttributes.call(this, attr);
        -        
        -        if (!attr.orientation) {
        -            attr.orientation = 'top';
        -        }
        -        
        -        var el = this.get('element');
        -        
        -        /**
        -         * The Tabs belonging to the TabView instance.
        -         * @config tabs
        -         * @type Array
        -         */
        -        this.setAttributeConfig('tabs', {
        -            value: [],
        -            readOnly: true
        -        });
        -
        -        /**
        -         * The container of the tabView's label elements.
        -         * @property _tabParent
        -         * @private
        -         * @type HTMLElement
        -         */
        -        this._tabParent = 
        -                this.getElementsByClassName(this.TAB_PARENT_CLASSNAME,
        -                        'ul' )[0] || _createTabParent.call(this);
        -            
        -        /**
        -         * The container of the tabView's content elements.
        -         * @property _contentParent
        -         * @type HTMLElement
        -         * @private
        -         */
        -        this._contentParent = 
        -                this.getElementsByClassName(this.CONTENT_PARENT_CLASSNAME,
        -                        'div')[0] ||  _createContentParent.call(this);
        -        
        -        /**
        -         * How the Tabs should be oriented relative to the TabView.
        -         * @config orientation
        -         * @type String
        -         * @default "top"
        -         */
        -        this.setAttributeConfig('orientation', {
        -            value: attr.orientation,
        -            method: function(value) {
        -                var current = this.get('orientation');
        -                this.addClass('yui-navset-' + value);
        -                
        -                if (current != value) {
        -                    this.removeClass('yui-navset-' + current);
        -                }
        -                
        -                switch(value) {
        -                    case 'bottom':
        -                    this.appendChild(this._tabParent);
        -                    break;
        -                }
        -            }
        -        });
        -        
        -        /**
        -         * The index of the tab currently active.
        -         * @config activeIndex
        -         * @type Int
        -         */
        -        this.setAttributeConfig('activeIndex', {
        -            value: attr.activeIndex,
        -            method: function(value) {
        -                this.set('activeTab', this.getTab(value));
        -            },
        -            validator: function(value) {
        -                return !this.getTab(value).get('disabled'); // cannot activate if disabled
        -            }
        -        });
        -        
        -        /**
        -         * The tab currently active.
        -         * @config activeTab
        -         * @type YAHOO.widget.Tab
        -         */
        -        this.setAttributeConfig('activeTab', {
        -            value: attr.activeTab,
        -            method: function(tab) {
        -                var activeTab = this.get('activeTab');
        -                
        -                if (tab) {  
        -                    tab.set('active', true);
        -                    this._configs['activeIndex'].value = this.getTabIndex(tab); // keep in sync
        -                }
        -                
        -                if (activeTab && activeTab != tab) {
        -                    activeTab.set('active', false);
        -                }
        -                
        -                if (activeTab && tab != activeTab) { // no transition if only 1
        -                    this.contentTransition(tab, activeTab);
        -                } else if (tab) {
        -                    tab.set('contentVisible', true);
        -                }
        -            },
        -            validator: function(value) {
        -                return !value.get('disabled'); // cannot activate if disabled
        -            }
        -        });
        -
        -        if ( this._tabParent ) {
        -            _initTabs.call(this);
        -        }
        -        
        -        for (var type in this.DOM_EVENTS) {
        -            if ( YAHOO.lang.hasOwnProperty(this.DOM_EVENTS, type) ) {
        -                this.addListener.call(this, type, this.DOMEventHandler);
        -            }
        -        }
        -    };
        -    
        -    /**
        -     * Creates Tab instances from a collection of HTMLElements.
        -     * @method createTabs
        -     * @private
        -     * @param {Array|HTMLCollection} elements The elements to use for Tabs.
        -     * @return void
        -     */
        -    var _initTabs = function() {
        -        var tab,
        -            attr,
        -            contentEl;
        -            
        -        var el = this.get('element');   
        -        var tabs = _getChildNodes(this._tabParent);
        -        var contentElements = _getChildNodes(this._contentParent);
        -
        -        for (var i = 0, len = tabs.length; i < len; ++i) {
        -            attr = {};
        -            
        -            if (contentElements[i]) {
        -                attr.contentEl = contentElements[i];
        -            }
        -
        -            tab = new YAHOO.widget.Tab(tabs[i], attr);
        -            this.addTab(tab);
        -            
        -            if (tab.hasClass(tab.ACTIVE_CLASSNAME) ) {
        -                this._configs.activeTab.value = tab; // dont invoke method
        -            }
        -        }
        -    };
        -    
        -    var _createTabViewElement = function(attr) {
        -        var el = document.createElement('div');
        -
        -        if ( this.CLASSNAME ) {
        -            el.className = this.CLASSNAME;
        -        }
        -        
        -        return el;
        -    };
        -    
        -    var _createTabParent = function(attr) {
        -        var el = document.createElement('ul');
        -
        -        if ( this.TAB_PARENT_CLASSNAME ) {
        -            el.className = this.TAB_PARENT_CLASSNAME;
        -        }
        -        
        -        this.get('element').appendChild(el);
        -        
        -        return el;
        -    };
        -    
        -    var _createContentParent = function(attr) {
        -        var el = document.createElement('div');
        -
        -        if ( this.CONTENT_PARENT_CLASSNAME ) {
        -            el.className = this.CONTENT_PARENT_CLASSNAME;
        -        }
        -        
        -        this.get('element').appendChild(el);
        -        
        -        return el;
        -    };
        -    
        -    var _getChildNodes = function(el) {
        -        var nodes = [];
        -        var childNodes = el.childNodes;
        -        
        -        for (var i = 0, len = childNodes.length; i < len; ++i) {
        -            if (childNodes[i].nodeType == 1) {
        -                nodes[nodes.length] = childNodes[i];
        -            }
        -        }
        -        
        -        return nodes;
        -    };
        -
        -/**
        - * Fires before the activeTab is changed.
        - * <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
        - * <p>If handler returns false, the change will be cancelled, and the value will not
        - * be set.</p>
        - * <p><strong>Event fields:</strong><br>
        - * <code>&lt;String&gt; type</code> beforeActiveTabChange<br>
        - * <code>&lt;<a href="YAHOO.widget.Tab.html">YAHOO.widget.Tab</a>&gt;
        - * prevValue</code> the currently active tab<br>
        - * <code>&lt;<a href="YAHOO.widget.Tab.html">YAHOO.widget.Tab</a>&gt;
        - * newValue</code> the tab to be made active</p>
        - * <p><strong>Usage:</strong><br>
        - * <code>var handler = function(e) {var previous = e.prevValue};<br>
        - * myTabs.addListener('beforeActiveTabChange', handler);</code></p>
        - * @event beforeActiveTabChange
        - */
        -    
        -/**
        - * Fires after the activeTab is changed.
        - * <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
        - * <p><strong>Event fields:</strong><br>
        - * <code>&lt;String&gt; type</code> activeTabChange<br>
        - * <code>&lt;<a href="YAHOO.widget.Tab.html">YAHOO.widget.Tab</a>&gt;
        - * prevValue</code> the formerly active tab<br>
        - * <code>&lt;<a href="YAHOO.widget.Tab.html">YAHOO.widget.Tab</a>&gt;
        - * newValue</code> the new active tab</p>
        - * <p><strong>Usage:</strong><br>
        - * <code>var handler = function(e) {var previous = e.prevValue};<br>
        - * myTabs.addListener('activeTabChange', handler);</code></p>
        - * @event activeTabChange
        - */
        - 
        -/**
        - * Fires before the orientation is changed.
        - * <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
        - * <p>If handler returns false, the change will be cancelled, and the value will not
        - * be set.</p>
        - * <p><strong>Event fields:</strong><br>
        - * <code>&lt;String&gt; type</code> beforeOrientationChange<br>
        - * <code>&lt;String&gt;
        - * prevValue</code> the current orientation<br>
        - * <code>&lt;String&gt;
        - * newValue</code> the new orientation to be applied</p>
        - * <p><strong>Usage:</strong><br>
        - * <code>var handler = function(e) {var previous = e.prevValue};<br>
        - * myTabs.addListener('beforeOrientationChange', handler);</code></p>
        - * @event beforeOrientationChange
        - */
        -    
        -/**
        - * Fires after the orientation is changed.
        - * <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
        - * <p><strong>Event fields:</strong><br>
        - * <code>&lt;String&gt; type</code> orientationChange<br>
        - * <code>&lt;String&gt;
        - * prevValue</code> the former orientation<br>
        - * <code>&lt;String&gt;
        - * newValue</code> the new orientation</p>
        - * <p><strong>Usage:</strong><br>
        - * <code>var handler = function(e) {var previous = e.prevValue};<br>
        - * myTabs.addListener('orientationChange', handler);</code></p>
        - * @event orientationChange
        - */
        -})();
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/TextNode.js.html b/www/extras/yui/docs/TextNode.js.html deleted file mode 100644 index 0416e8f1f..000000000 --- a/www/extras/yui/docs/TextNode.js.html +++ /dev/null @@ -1,327 +0,0 @@ - - - - API: treeview TextNode.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - - > TextNode.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * The default node presentation.  The first parameter should be
        - * either a string that will be used as the node's label, or an object
        - * that has a string propery called label.  By default, the clicking the
        - * label will toggle the expanded/collapsed state of the node.  By
        - * changing the href property of the instance, this behavior can be
        - * changed so that the label will go to the specified href.
        - * @namespace YAHOO.widget
        - * @class TextNode
        - * @extends YAHOO.widget.Node
        - * @constructor
        - * @param oData {object} a string or object containing the data that will
        - * be used to render this node
        - * @param oParent {YAHOO.widget.Node} this node's parent node
        - * @param expanded {boolean} the initial expanded/collapsed state
        - */
        -YAHOO.widget.TextNode = function(oData, oParent, expanded) {
        -
        -    if (oData) { 
        -        this.init(oData, oParent, expanded);
        -        this.setUpLabel(oData);
        -    }
        -
        -    this.logger     = new YAHOO.widget.LogWriter(this.toString());
        -};
        -
        -YAHOO.extend(YAHOO.widget.TextNode, YAHOO.widget.Node, {
        -    
        -    /**
        -     * The CSS class for the label href.  Defaults to ygtvlabel, but can be
        -     * overridden to provide a custom presentation for a specific node.
        -     * @property labelStyle
        -     * @type string
        -     */
        -    labelStyle: "ygtvlabel",
        -
        -    /**
        -     * The derived element id of the label for this node
        -     * @property labelElId
        -     * @type string
        -     */
        -    labelElId: null,
        -
        -    /**
        -     * The text for the label.  It is assumed that the oData parameter will
        -     * either be a string that will be used as the label, or an object that
        -     * has a property called "label" that we will use.
        -     * @property label
        -     * @type string
        -     */
        -    label: null,
        -
        -    textNodeParentChange: function() {
        - 
        -        /**
        -         * Custom event that is fired when the text node label is clicked.  The
        -         * custom event is defined on the tree instance, so there is a single
        -         * event that handles all nodes in the tree.  The node clicked is 
        -         * provided as an argument
        -         *
        -         * @event labelClick
        -         * @for YAHOO.widget.TreeView
        -         * @param {YAHOO.widget.Node} node the node clicked
        -         */
        -        if (this.tree && !this.tree.hasEvent("labelClick")) {
        -            this.tree.createEvent("labelClick", this.tree);
        -        }
        -       
        -    },
        -
        -    /**
        -     * Sets up the node label
        -     * @method setUpLabel
        -     * @param oData string containing the label, or an object with a label property
        -     */
        -    setUpLabel: function(oData) { 
        -        
        -        // set up the custom event on the tree
        -        this.textNodeParentChange();
        -        this.subscribe("parentChange", this.textNodeParentChange);
        -
        -        if (typeof oData == "string") {
        -            oData = { label: oData };
        -        }
        -        this.label = oData.label;
        -        this.data.label = oData.label;
        -        
        -        // update the link
        -        if (oData.href) {
        -            this.href = oData.href;
        -        }
        -
        -        // set the target
        -        if (oData.target) {
        -            this.target = oData.target;
        -        }
        -
        -        if (oData.style) {
        -            this.labelStyle = oData.style;
        -        }
        -
        -        this.labelElId = "ygtvlabelel" + this.index;
        -    },
        -
        -    /**
        -     * Returns the label element
        -     * @for YAHOO.widget.TextNode
        -     * @method getLabelEl
        -     * @return {object} the element
        -     */
        -    getLabelEl: function() { 
        -        return document.getElementById(this.labelElId);
        -    },
        -
        -    // overrides YAHOO.widget.Node
        -    getNodeHtml: function() { 
        -        this.logger.log("Generating html");
        -        var sb = [];
        -
        -        sb[sb.length] = '<table border="0" cellpadding="0" cellspacing="0">';
        -        sb[sb.length] = '<tr>';
        -        
        -        for (var i=0;i<this.depth;++i) {
        -            //sb[sb.length] = '<td><div class="' + this.getDepthStyle(i) + '">&#160;</div></td>';
        -            //sb[sb.length] = '<td><div class="' + this.getDepthStyle(i) + '"></div></td>';
        -            sb[sb.length] = '<td class="' + this.getDepthStyle(i) + '"><div class="ygtvspacer"></div></td>';
        -        }
        -
        -        var getNode = 'YAHOO.widget.TreeView.getNode(\'' +
        -                        this.tree.id + '\',' + this.index + ')';
        -
        -        sb[sb.length] = '<td';
        -        // sb[sb.length] = ' onselectstart="return false"';
        -        sb[sb.length] = ' id="' + this.getToggleElId() + '"';
        -        sb[sb.length] = ' class="' + this.getStyle() + '"';
        -        if (this.hasChildren(true)) {
        -            sb[sb.length] = ' onmouseover="this.className=';
        -            sb[sb.length] = getNode + '.getHoverStyle()"';
        -            sb[sb.length] = ' onmouseout="this.className=';
        -            sb[sb.length] = getNode + '.getStyle()"';
        -        }
        -        sb[sb.length] = ' onclick="javascript:' + this.getToggleLink() + '">';
        -
        -        sb[sb.length] = '<div class="ygtvspacer">';
        -
        -        /*
        -        sb[sb.length] = '<img id="' + this.getSpacerId() + '"';
        -        sb[sb.length] = ' alt=""';
        -        sb[sb.length] = ' tabindex=0';
        -        sb[sb.length] = ' src="' + this.spacerPath + '"';
        -        sb[sb.length] = ' title="' + this.getStateText() + '"';
        -        sb[sb.length] = ' class="ygtvspacer"';
        -        // sb[sb.length] = ' onkeypress="return ' + getNode + '".onKeyPress()"';
        -        sb[sb.length] = ' />';
        -        */
        -
        -        //sb[sb.length] = '&#160;';
        -
        -        sb[sb.length] = '</div>';
        -        sb[sb.length] = '</td>';
        -        sb[sb.length] = '<td ';
        -        sb[sb.length] = (this.nowrap) ? ' nowrap="nowrap" ' : '';
        -        sb[sb.length] = ' >';
        -        sb[sb.length] = '<a';
        -        sb[sb.length] = ' id="' + this.labelElId + '"';
        -        sb[sb.length] = ' class="' + this.labelStyle + '"';
        -        sb[sb.length] = ' href="' + this.href + '"';
        -        sb[sb.length] = ' target="' + this.target + '"';
        -        sb[sb.length] = ' onclick="return ' + getNode + '.onLabelClick(' + getNode +')"';
        -        if (this.hasChildren(true)) {
        -            sb[sb.length] = ' onmouseover="document.getElementById(\'';
        -            sb[sb.length] = this.getToggleElId() + '\').className=';
        -            sb[sb.length] = getNode + '.getHoverStyle()"';
        -            sb[sb.length] = ' onmouseout="document.getElementById(\'';
        -            sb[sb.length] = this.getToggleElId() + '\').className=';
        -            sb[sb.length] = getNode + '.getStyle()"';
        -        }
        -        sb[sb.length] = ' >';
        -        sb[sb.length] = this.label;
        -        sb[sb.length] = '</a>';
        -        sb[sb.length] = '</td>';
        -        sb[sb.length] = '</tr>';
        -        sb[sb.length] = '</table>';
        -
        -        return sb.join("");
        -    },
        -
        -
        -    /**
        -     * Executed when the label is clicked.  Fires the labelClick custom event.
        -     * @method onLabelClick
        -     * @param me {Node} this node
        -     * @scope the anchor tag clicked
        -     * @return false to cancel the anchor click
        -     */
        -    onLabelClick: function(me) { 
        -        me.logger.log("onLabelClick " + me.label);
        -        return me.tree.fireEvent("labelClick", me);
        -        //return true;
        -    },
        -
        -    toString: function() { 
        -        return "TextNode (" + this.index + ") " + this.label;
        -    }
        -
        -});
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/Tooltip.js.html b/www/extras/yui/docs/Tooltip.js.html deleted file mode 100644 index 196ad0f9b..000000000 --- a/www/extras/yui/docs/Tooltip.js.html +++ /dev/null @@ -1,637 +0,0 @@ - - - - API: container Tooltip.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - - > Tooltip.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* Tooltip is an implementation of Overlay that behaves like an OS tooltip, displaying when the user mouses over a particular element, and disappearing on mouse out.
        -* @namespace YAHOO.widget
        -* @class Tooltip
        -* @extends YAHOO.widget.Overlay
        -* @constructor
        -* @param {String}	el	The element ID representing the Tooltip <em>OR</em>
        -* @param {HTMLElement}	el	The element representing the Tooltip
        -* @param {Object}	userConfig	The configuration object literal containing the configuration that should be set for this Overlay. See configuration documentation for more details.
        -*/
        -YAHOO.widget.Tooltip = function(el, userConfig) {
        -	YAHOO.widget.Tooltip.superclass.constructor.call(this, el, userConfig);
        -};
        -
        -YAHOO.extend(YAHOO.widget.Tooltip, YAHOO.widget.Overlay);
        -
        -/**
        -* Constant representing the Tooltip CSS class
        -* @property YAHOO.widget.Tooltip.CSS_TOOLTIP
        -* @static
        -* @final
        -* @type String
        -*/
        -YAHOO.widget.Tooltip.CSS_TOOLTIP = "yui-tt";
        -
        -/**
        -* Constant representing the Tooltip's configuration properties
        -* @property YAHOO.widget.Tooltip._DEFAULT_CONFIG
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.Tooltip._DEFAULT_CONFIG = {
        -
        -    "PREVENT_OVERLAP": { 
        -        key: "preventoverlap", 
        -        value:true, 
        -        validator:YAHOO.lang.isBoolean, 
        -        supercedes:["x","y","xy"] 
        -    },
        -
        -    "SHOW_DELAY": { 
        -        key: "showdelay", 
        -        value:200, 
        -        validator:YAHOO.lang.isNumber 
        -    }, 
        -
        -    "AUTO_DISMISS_DELAY": { 
        -        key: "autodismissdelay", 
        -        value:5000, 
        -        validator:YAHOO.lang.isNumber 
        -    }, 
        -
        -    "HIDE_DELAY": { 
        -        key: "hidedelay", 
        -        value:250, 
        -        validator:YAHOO.lang.isNumber 
        -    }, 
        -
        -    "TEXT": { 
        -        key: "text", 
        -        suppressEvent:true 
        -    }, 
        -
        -    "CONTAINER": { 
        -        key: "container"
        -    }
        -
        -};
        -
        -/**
        -* The Tooltip initialization method. This method is automatically called by the constructor. A Tooltip is automatically rendered by the init method, and it also is set to be invisible by default, and constrained to viewport by default as well.
        -* @method init
        -* @param {String}	el	The element ID representing the Tooltip <em>OR</em>
        -* @param {HTMLElement}	el	The element representing the Tooltip
        -* @param {Object}	userConfig	The configuration object literal containing the configuration that should be set for this Tooltip. See configuration documentation for more details.
        -*/
        -YAHOO.widget.Tooltip.prototype.init = function(el, userConfig) {
        -	this.logger = YAHOO.widget.Tooltip.logger;
        -
        -	if (document.readyState && document.readyState != "complete") {
        -		var deferredInit = function() {
        -			this.init(el, userConfig);
        -		};
        -		YAHOO.util.Event.addListener(window, "load", deferredInit, this, true);
        -	} else {
        -		YAHOO.widget.Tooltip.superclass.init.call(this, el);
        -
        -		this.beforeInitEvent.fire(YAHOO.widget.Tooltip);
        -
        -		YAHOO.util.Dom.addClass(this.element, YAHOO.widget.Tooltip.CSS_TOOLTIP);
        -
        -		if (userConfig) {
        -			this.cfg.applyConfig(userConfig, true);
        -		}
        -
        -		this.cfg.queueProperty("visible",false);
        -		this.cfg.queueProperty("constraintoviewport",true);
        -
        -		this.setBody("");
        -		this.render(this.cfg.getProperty("container"));
        -
        -		this.initEvent.fire(YAHOO.widget.Tooltip);
        -	}
        -};
        -
        -/**
        -* Initializes the class's configurable properties which can be changed using the Overlay's Config object (cfg).
        -* @method initDefaultConfig
        -*/
        -YAHOO.widget.Tooltip.prototype.initDefaultConfig = function() {
        -	YAHOO.widget.Tooltip.superclass.initDefaultConfig.call(this);
        -
        -    var DEFAULT_CONFIG = YAHOO.widget.Tooltip._DEFAULT_CONFIG;
        -
        -	/**
        -	* Specifies whether the Tooltip should be kept from overlapping its context element.
        -	* @config preventoverlap
        -	* @type Boolean
        -	* @default true
        -	*/
        -	this.cfg.addProperty(
        -	           DEFAULT_CONFIG.PREVENT_OVERLAP.key,
        -	           {
        -	               value: DEFAULT_CONFIG.PREVENT_OVERLAP.value, 
        -	               validator: DEFAULT_CONFIG.PREVENT_OVERLAP.validator, 
        -	               supercedes: DEFAULT_CONFIG.PREVENT_OVERLAP.supercedes
        -               }
        -           );
        -
        -	/**
        -	* The number of milliseconds to wait before showing a Tooltip on mouseover.
        -	* @config showdelay
        -	* @type Number
        -	* @default 200
        -	*/
        -	this.cfg.addProperty(
        -                DEFAULT_CONFIG.SHOW_DELAY.key,
        -                {
        -                    handler: this.configShowDelay,
        -                    value: 200, 
        -                    validator: DEFAULT_CONFIG.SHOW_DELAY.validator
        -                }
        -          );
        -
        -	/**
        -	* The number of milliseconds to wait before automatically dismissing a Tooltip after the mouse has been resting on the context element.
        -	* @config autodismissdelay
        -	* @type Number
        -	* @default 5000
        -	*/
        -	this.cfg.addProperty(
        -                DEFAULT_CONFIG.AUTO_DISMISS_DELAY.key,	
        -                {
        -                    handler: this.configAutoDismissDelay,
        -                    value: DEFAULT_CONFIG.AUTO_DISMISS_DELAY.value,
        -                    validator: DEFAULT_CONFIG.AUTO_DISMISS_DELAY.validator
        -                }
        -            );
        -
        -	/**
        -	* The number of milliseconds to wait before hiding a Tooltip on mouseover.
        -	* @config hidedelay
        -	* @type Number
        -	* @default 250
        -	*/
        -	this.cfg.addProperty(
        -                DEFAULT_CONFIG.HIDE_DELAY.key,
        -                {
        -                    handler: this.configHideDelay,
        -                    value: DEFAULT_CONFIG.HIDE_DELAY.value, 
        -                    validator: DEFAULT_CONFIG.HIDE_DELAY.validator
        -                }
        -            );
        -
        -	/**
        -	* Specifies the Tooltip's text.
        -	* @config text
        -	* @type String
        -	* @default null
        -	*/
        -    this.cfg.addProperty(
        -                DEFAULT_CONFIG.TEXT.key,
        -                {
        -                    handler: this.configText,
        -                    suppressEvent: DEFAULT_CONFIG.TEXT.suppressEvent
        -                }
        -            );
        -
        -	/**
        -	* Specifies the container element that the Tooltip's markup should be rendered into.
        -	* @config container
        -	* @type HTMLElement/String
        -	* @default document.body
        -	*/
        -    this.cfg.addProperty(
        -                DEFAULT_CONFIG.CONTAINER.key,
        -                {
        -                    handler: this.configContainer,
        -                    value: document.body
        -                }
        -            );
        -
        -	/**
        -	* Specifies the element or elements that the Tooltip should be anchored to on mouseover.
        -	* @config context
        -	* @type HTMLElement[]/String[]
        -	* @default null
        -	*/	
        -
        -};
        -
        -// BEGIN BUILT-IN PROPERTY EVENT HANDLERS //
        -
        -/**
        -* The default event handler fired when the "text" property is changed.
        -* @method configText
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Tooltip.prototype.configText = function(type, args, obj) {
        -	var text = args[0];
        -	if (text) {
        -		this.setBody(text);
        -	}
        -};
        -
        -/**
        -* The default event handler fired when the "container" property is changed.
        -* @method configContainer
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Tooltip.prototype.configContainer = function(type, args, obj) {
        -	var container = args[0];
        -	if (typeof container == 'string') {
        -		this.cfg.setProperty("container", document.getElementById(container), true);
        -	}
        -};
        -
        -/**
        -* @method _removeEventListeners
        -* @description Removes all of the DOM event handlers from the HTML element(s) 
        -* that trigger the display of the tooltip.
        -* @protected
        -*/
        -YAHOO.widget.Tooltip.prototype._removeEventListeners = function() {
        -
        -    var aElements = this._context;
        -    
        -    if (aElements) {
        -
        -        var nElements = aElements.length;
        -        
        -        if (nElements > 0) {
        -        
        -            var i = nElements - 1,
        -                oElement;
        -            
        -            do {
        -
        -                oElement = aElements[i];
        -
        -                YAHOO.util.Event.removeListener(oElement, "mouseover", this.onContextMouseOver);
        -                YAHOO.util.Event.removeListener(oElement, "mousemove", this.onContextMouseMove);
        -                YAHOO.util.Event.removeListener(oElement, "mouseout", this.onContextMouseOut);
        -            
        -            }
        -            while(i--);
        -        
        -        }
        -
        -    }
        -
        -};
        -
        -/**
        -* The default event handler fired when the "context" property is changed.
        -* @method configContext
        -* @param {String} type	The CustomEvent type (usually the property name)
        -* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
        -* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
        -*/
        -YAHOO.widget.Tooltip.prototype.configContext = function(type, args, obj) {
        -	var context = args[0];
        -	if (context) {
        -
        -		// Normalize parameter into an array
        -		if (! (context instanceof Array)) {
        -			if (typeof context == "string") {
        -				this.cfg.setProperty("context", [document.getElementById(context)], true);
        -			} else { // Assuming this is an element
        -				this.cfg.setProperty("context", [context], true);
        -			}
        -			context = this.cfg.getProperty("context");
        -		}
        -
        -
        -		// Remove any existing mouseover/mouseout listeners
        -        this._removeEventListeners();
        -
        -		// Add mouseover/mouseout listeners to context elements
        -		this._context = context;
        -
        -        var aElements = this._context;
        -        
        -        if (aElements) {
        -    
        -            var nElements = aElements.length;
        -            
        -            if (nElements > 0) {
        -            
        -                var i = nElements - 1,
        -                    oElement;
        -                
        -                do {
        -    
        -                    oElement = aElements[i];
        -    
        -                    YAHOO.util.Event.addListener(oElement, "mouseover", this.onContextMouseOver, this);
        -                    YAHOO.util.Event.addListener(oElement, "mousemove", this.onContextMouseMove, this);
        -                    YAHOO.util.Event.addListener(oElement, "mouseout", this.onContextMouseOut, this);
        -                
        -                }
        -                while(i--);
        -            
        -            }
        -    
        -        }
        -
        -	}
        -};
        -
        -// END BUILT-IN PROPERTY EVENT HANDLERS //
        -
        -// BEGIN BUILT-IN DOM EVENT HANDLERS //
        -
        -/**
        -* The default event handler fired when the user moves the mouse while over the context element.
        -* @method onContextMouseMove
        -* @param {DOMEvent} e	The current DOM event
        -* @param {Object}	obj	The object argument
        -*/
        -YAHOO.widget.Tooltip.prototype.onContextMouseMove = function(e, obj) {
        -	obj.pageX = YAHOO.util.Event.getPageX(e);
        -	obj.pageY = YAHOO.util.Event.getPageY(e);
        -
        -};
        -
        -/**
        -* The default event handler fired when the user mouses over the context element.
        -* @method onContextMouseOver
        -* @param {DOMEvent} e	The current DOM event
        -* @param {Object}	obj	The object argument
        -*/
        -YAHOO.widget.Tooltip.prototype.onContextMouseOver = function(e, obj) {
        -
        -	if (obj.hideProcId) {
        -		clearTimeout(obj.hideProcId);
        -		obj.logger.log("Clearing hide timer: " + obj.hideProcId, "time");
        -		obj.hideProcId = null;
        -	}
        -
        -	var context = this;
        -	YAHOO.util.Event.addListener(context, "mousemove", obj.onContextMouseMove, obj);
        -
        -	if (context.title) {
        -		obj._tempTitle = context.title;
        -		context.title = "";
        -	}
        -
        -	/**
        -	* The unique process ID associated with the thread responsible for showing the Tooltip.
        -	* @type int
        -	*/
        -	obj.showProcId = obj.doShow(e, context);
        -	obj.logger.log("Setting show tooltip timeout: " + this.showProcId, "time");
        -};
        -
        -/**
        -* The default event handler fired when the user mouses out of the context element.
        -* @method onContextMouseOut
        -* @param {DOMEvent} e	The current DOM event
        -* @param {Object}	obj	The object argument
        -*/
        -YAHOO.widget.Tooltip.prototype.onContextMouseOut = function(e, obj) {
        -	var el = this;
        -
        -	if (obj._tempTitle) {
        -		el.title = obj._tempTitle;
        -		obj._tempTitle = null;
        -	}
        -
        -	if (obj.showProcId) {
        -		clearTimeout(obj.showProcId);
        -		obj.logger.log("Clearing show timer: " + obj.showProcId, "time");
        -		obj.showProcId = null;
        -	}
        -
        -	if (obj.hideProcId) {
        -		clearTimeout(obj.hideProcId);
        -		obj.logger.log("Clearing hide timer: " + obj.hideProcId, "time");
        -		obj.hideProcId = null;
        -	}
        -
        -
        -	obj.hideProcId = setTimeout(function() {
        -				obj.hide();
        -				}, obj.cfg.getProperty("hidedelay"));
        -};
        -
        -// END BUILT-IN DOM EVENT HANDLERS //
        -
        -/**
        -* Processes the showing of the Tooltip by setting the timeout delay and offset of the Tooltip.
        -* @method doShow
        -* @param {DOMEvent} e	The current DOM event
        -* @return {Number}	The process ID of the timeout function associated with doShow
        -*/
        -YAHOO.widget.Tooltip.prototype.doShow = function(e, context) {
        -
        -	var yOffset = 25;
        -	if (this.browser == "opera" && context.tagName && context.tagName.toUpperCase() == "A") {
        -		yOffset += 12;
        -	}
        -
        -	var me = this;
        -	return setTimeout(
        -		function() {
        -			if (me._tempTitle) {
        -				me.setBody(me._tempTitle);
        -			} else {
        -				me.cfg.refireEvent("text");
        -			}
        -
        -			me.logger.log("Show tooltip", "time");
        -			me.moveTo(me.pageX, me.pageY + yOffset);
        -			if (me.cfg.getProperty("preventoverlap")) {
        -				me.preventOverlap(me.pageX, me.pageY);
        -			}
        -
        -			YAHOO.util.Event.removeListener(context, "mousemove", me.onContextMouseMove);
        -
        -			me.show();
        -			me.hideProcId = me.doHide();
        -			me.logger.log("Hide tooltip time active: " + me.hideProcId, "time");
        -		},
        -	this.cfg.getProperty("showdelay"));
        -};
        -
        -/**
        -* Sets the timeout for the auto-dismiss delay, which by default is 5 seconds, meaning that a tooltip will automatically dismiss itself after 5 seconds of being displayed.
        -* @method doHide
        -*/
        -YAHOO.widget.Tooltip.prototype.doHide = function() {
        -	var me = this;
        -	me.logger.log("Setting hide tooltip timeout", "time");
        -	return setTimeout(
        -		function() {
        -			me.logger.log("Hide tooltip", "time");
        -			me.hide();
        -		},
        -		this.cfg.getProperty("autodismissdelay"));
        -};
        -
        -/**
        -* Fired when the Tooltip is moved, this event handler is used to prevent the Tooltip from overlapping with its context element.
        -* @method preventOverlay
        -* @param {Number} pageX	The x coordinate position of the mouse pointer
        -* @param {Number} pageY	The y coordinate position of the mouse pointer
        -*/
        -YAHOO.widget.Tooltip.prototype.preventOverlap = function(pageX, pageY) {
        -
        -	var height = this.element.offsetHeight;
        -
        -	var elementRegion = YAHOO.util.Dom.getRegion(this.element);
        -
        -	elementRegion.top -= 5;
        -	elementRegion.left -= 5;
        -	elementRegion.right += 5;
        -	elementRegion.bottom += 5;
        -
        -	var mousePoint = new YAHOO.util.Point(pageX, pageY);
        -
        -	this.logger.log("context " + elementRegion, "ttip");
        -	this.logger.log("mouse " + mousePoint, "ttip");
        -
        -	if (elementRegion.contains(mousePoint)) {
        -		this.logger.log("OVERLAP", "warn");
        -		this.cfg.setProperty("y", (pageY-height-5));
        -	}
        -};
        -
        -/**
        -* Removes the Tooltip element from the DOM and sets all child elements to null.
        -* @method destroy
        -*/
        -YAHOO.widget.Tooltip.prototype.destroy = function() {
        -
        -    // Remove any existing mouseover/mouseout listeners
        -    this._removeEventListeners();
        -
        -    YAHOO.widget.Tooltip.superclass.destroy.call(this);  
        -
        -};
        -
        -/**
        -* Returns a string representation of the object.
        -* @method toString
        -* @return {String}	The string representation of the Tooltip
        -*/
        -YAHOO.widget.Tooltip.prototype.toString = function() {
        -	return "Tooltip " + this.id;
        -};
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/TreeView.js.html b/www/extras/yui/docs/TreeView.js.html deleted file mode 100644 index 5f70b2bb9..000000000 --- a/www/extras/yui/docs/TreeView.js.html +++ /dev/null @@ -1,821 +0,0 @@ - - - - API: treeview TreeView.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - - > TreeView.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * The treeview widget is a generic tree building tool.
        - * @module treeview
        - * @title TreeView Widget
        - * @requires yahoo, event
        - * @optional animation
        - * @namespace YAHOO.widget
        - */
        -
        -/**
        - * Contains the tree view state data and the root node.
        - *
        - * @class TreeView
        - * @uses YAHOO.util.EventProvider
        - * @constructor
        - * @param {string|HTMLElement} id The id of the element, or the element
        - * itself that the tree will be inserted into.
        - */
        -YAHOO.widget.TreeView = function(id) {
        -    if (id) { this.init(id); }
        -};
        -
        -YAHOO.widget.TreeView.prototype = {
        -
        -    /**
        -     * The id of tree container element
        -     * @property id
        -     * @type String
        -     */
        -    id: null,
        -
        -    /**
        -     * The host element for this tree
        -     * @property _el
        -     * @private
        -     */
        -    _el: null,
        -
        -     /**
        -     * Flat collection of all nodes in this tree.  This is a sparse
        -     * array, so the length property can't be relied upon for a
        -     * node count for the tree.
        -     * @property _nodes
        -     * @type Node[]
        -     * @private
        -     */
        -    _nodes: null,
        -
        -    /**
        -     * We lock the tree control while waiting for the dynamic loader to return
        -     * @property locked
        -     * @type boolean
        -     */
        -    locked: false,
        -
        -    /**
        -     * The animation to use for expanding children, if any
        -     * @property _expandAnim
        -     * @type string
        -     * @private
        -     */
        -    _expandAnim: null,
        -
        -    /**
        -     * The animation to use for collapsing children, if any
        -     * @property _collapseAnim
        -     * @type string
        -     * @private
        -     */
        -    _collapseAnim: null,
        -
        -    /**
        -     * The current number of animations that are executing
        -     * @property _animCount
        -     * @type int
        -     * @private
        -     */
        -    _animCount: 0,
        -
        -    /**
        -     * The maximum number of animations to run at one time.
        -     * @property maxAnim
        -     * @type int
        -     */
        -    maxAnim: 2,
        -
        -    /**
        -     * Sets up the animation for expanding children
        -     * @method setExpandAnim
        -     * @param {string} type the type of animation (acceptable values defined 
        -     * in YAHOO.widget.TVAnim)
        -     */
        -    setExpandAnim: function(type) {
        -        if (YAHOO.widget.TVAnim.isValid(type)) {
        -            this._expandAnim = type;
        -        }
        -    },
        -
        -    /**
        -     * Sets up the animation for collapsing children
        -     * @method setCollapseAnim
        -     * @param {string} the type of animation (acceptable values defined in 
        -     * YAHOO.widget.TVAnim)
        -     */
        -    setCollapseAnim: function(type) {
        -        if (YAHOO.widget.TVAnim.isValid(type)) {
        -            this._collapseAnim = type;
        -        }
        -    },
        -
        -    /**
        -     * Perform the expand animation if configured, or just show the
        -     * element if not configured or too many animations are in progress
        -     * @method animateExpand
        -     * @param el {HTMLElement} the element to animate
        -     * @param node {YAHOO.util.Node} the node that was expanded
        -     * @return {boolean} true if animation could be invoked, false otherwise
        -     */
        -    animateExpand: function(el, node) {
        -        this.logger.log("animating expand");
        -
        -        if (this._expandAnim && this._animCount < this.maxAnim) {
        -            // this.locked = true;
        -            var tree = this;
        -            var a = YAHOO.widget.TVAnim.getAnim(this._expandAnim, el, 
        -                            function() { tree.expandComplete(node); });
        -            if (a) { 
        -                ++this._animCount;
        -                this.fireEvent("animStart", {
        -                        "node": node, 
        -                        "type": "expand"
        -                    });
        -                a.animate();
        -            }
        -
        -            return true;
        -        }
        -
        -        return false;
        -    },
        -
        -    /**
        -     * Perform the collapse animation if configured, or just show the
        -     * element if not configured or too many animations are in progress
        -     * @method animateCollapse
        -     * @param el {HTMLElement} the element to animate
        -     * @param node {YAHOO.util.Node} the node that was expanded
        -     * @return {boolean} true if animation could be invoked, false otherwise
        -     */
        -    animateCollapse: function(el, node) {
        -        this.logger.log("animating collapse");
        -
        -        if (this._collapseAnim && this._animCount < this.maxAnim) {
        -            // this.locked = true;
        -            var tree = this;
        -            var a = YAHOO.widget.TVAnim.getAnim(this._collapseAnim, el, 
        -                            function() { tree.collapseComplete(node); });
        -            if (a) { 
        -                ++this._animCount;
        -                this.fireEvent("animStart", {
        -                        "node": node, 
        -                        "type": "collapse"
        -                    });
        -                a.animate();
        -            }
        -
        -            return true;
        -        }
        -
        -        return false;
        -    },
        -
        -    /**
        -     * Function executed when the expand animation completes
        -     * @method expandComplete
        -     */
        -    expandComplete: function(node) {
        -        this.logger.log("expand complete: " + this.id);
        -        --this._animCount;
        -        this.fireEvent("animComplete", {
        -                "node": node, 
        -                "type": "expand"
        -            });
        -        // this.locked = false;
        -    },
        -
        -    /**
        -     * Function executed when the collapse animation completes
        -     * @method collapseComplete
        -     */
        -    collapseComplete: function(node) {
        -        this.logger.log("collapse complete: " + this.id);
        -        --this._animCount;
        -        this.fireEvent("animComplete", {
        -                "node": node, 
        -                "type": "collapse"
        -            });
        -        // this.locked = false;
        -    },
        -
        -    /**
        -     * Initializes the tree
        -     * @method init
        -     * @parm {string|HTMLElement} id the id of the element that will hold the tree
        -     * @private
        -     */
        -    init: function(id) {
        -
        -        this.id = id;
        -
        -        if ("string" !== typeof id) {
        -            this._el = id;
        -            this.id = this.generateId(id);
        -        }
        -
        -        /**
        -         * When animation is enabled, this event fires when the animation
        -         * starts
        -         * @event animStart
        -         * @type CustomEvent
        -         * @param {YAHOO.widget.Node} node the node that is expanding/collapsing
        -         * @parm {String} type the type of animation ("expand" or "collapse")
        -         */
        -        this.createEvent("animStart", this);
        -
        -        /**
        -         * When animation is enabled, this event fires when the animation
        -         * completes
        -         * @event animComplete
        -         * @type CustomEvent
        -         * @param {YAHOO.widget.Node} node the node that is expanding/collapsing
        -         * @parm {String} type the type of animation ("expand" or "collapse")
        -         */
        -        this.createEvent("animComplete", this);
        -
        -        /**
        -         * Fires when a node is going to be collapsed.  Return false to stop
        -         * the collapse.
        -         * @event collapse
        -         * @type CustomEvent
        -         * @param {YAHOO.widget.Node} node the node that is collapsing
        -         */
        -        this.createEvent("collapse", this);
        -
        -        /**
        -         * Fires after a node is successfully collapsed.  This event will not fire
        -         * if the "collapse" event was cancelled.
        -         * @event collapseComplete
        -         * @type CustomEvent
        -         * @param {YAHOO.widget.Node} node the node that was collapsed
        -         */
        -        this.createEvent("collapseComplete", this);
        -
        -        /**
        -         * Fires when a node is going to be expanded.  Return false to stop
        -         * the collapse.
        -         * @event expand
        -         * @type CustomEvent
        -         * @param {YAHOO.widget.Node} node the node that is expanding
        -         */
        -        this.createEvent("expand", this);
        -
        -        /**
        -         * Fires after a node is successfully expanded.  This event will not fire
        -         * if the "expand" event was cancelled.
        -         * @event expandComplete
        -         * @type CustomEvent
        -         * @param {YAHOO.widget.Node} node the node that was expanded
        -         */
        -        this.createEvent("expandComplete", this);
        -
        -        this._nodes = [];
        -
        -        // store a global reference
        -        YAHOO.widget.TreeView.trees[this.id] = this;
        -
        -        // Set up the root node
        -        this.root = new YAHOO.widget.RootNode(this);
        -
        -        this.logger = new YAHOO.widget.LogWriter(this.toString());
        -
        -        this.logger.log("tree init: " + this.id);
        -
        -        //YAHOO.util.Event.onContentReady(this.id, this.handleAvailable, this, true);
        -        YAHOO.util.Event.on(this.id, "click", this.handleClick, this, true);
        -    },
        -
        -
        -    //handleAvailable: function() {
        -        //var Event = YAHOO.util.Event;
        -        //Event.on(this.id, 
        -    //},
        -
        -    /**
        -     * Renders the tree boilerplate and visible nodes
        -     * @method draw
        -     */
        -    draw: function() {
        -        var html = this.root.getHtml();
        -        this.getEl().innerHTML = html;
        -        this.firstDraw = false;
        -    },
        -
        -    /**
        -     * Returns the tree's host element
        -     * @method getEl
        -     * @return {HTMLElement} the host element
        -     */
        -    getEl: function() {
        -        if (! this._el) {
        -            this._el = document.getElementById(this.id);
        -        }
        -        return this._el;
        -    },
        -
        -    /**
        -     * Nodes register themselves with the tree instance when they are created.
        -     * @method regNode
        -     * @param node {Node} the node to register
        -     * @private
        -     */
        -    regNode: function(node) {
        -        this._nodes[node.index] = node;
        -    },
        -
        -    /**
        -     * Returns the root node of this tree
        -     * @method getRoot
        -     * @return {Node} the root node
        -     */
        -    getRoot: function() {
        -        return this.root;
        -    },
        -
        -    /**
        -     * Configures this tree to dynamically load all child data
        -     * @method setDynamicLoad
        -     * @param {function} fnDataLoader the function that will be called to get the data
        -     * @param iconMode {int} configures the icon that is displayed when a dynamic
        -     * load node is expanded the first time without children.  By default, the 
        -     * "collapse" icon will be used.  If set to 1, the leaf node icon will be
        -     * displayed.
        -     */
        -    setDynamicLoad: function(fnDataLoader, iconMode) { 
        -        this.root.setDynamicLoad(fnDataLoader, iconMode);
        -    },
        -
        -    /**
        -     * Expands all child nodes.  Note: this conflicts with the "multiExpand"
        -     * node property.  If expand all is called in a tree with nodes that
        -     * do not allow multiple siblings to be displayed, only the last sibling
        -     * will be expanded.
        -     * @method expandAll
        -     */
        -    expandAll: function() { 
        -        if (!this.locked) {
        -            this.root.expandAll(); 
        -        }
        -    },
        -
        -    /**
        -     * Collapses all expanded child nodes in the entire tree.
        -     * @method collapseAll
        -     */
        -    collapseAll: function() { 
        -        if (!this.locked) {
        -            this.root.collapseAll(); 
        -        }
        -    },
        -
        -    /**
        -     * Returns a node in the tree that has the specified index (this index
        -     * is created internally, so this function probably will only be used
        -     * in html generated for a given node.)
        -     * @method getNodeByIndex
        -     * @param {int} nodeIndex the index of the node wanted
        -     * @return {Node} the node with index=nodeIndex, null if no match
        -     */
        -    getNodeByIndex: function(nodeIndex) {
        -        var n = this._nodes[nodeIndex];
        -        return (n) ? n : null;
        -    },
        -
        -    /**
        -     * Returns a node that has a matching property and value in the data
        -     * object that was passed into its constructor.
        -     * @method getNodeByProperty
        -     * @param {object} property the property to search (usually a string)
        -     * @param {object} value the value we want to find (usuall an int or string)
        -     * @return {Node} the matching node, null if no match
        -     */
        -    getNodeByProperty: function(property, value) {
        -        for (var i in this._nodes) {
        -            var n = this._nodes[i];
        -            if (n.data && value == n.data[property]) {
        -                return n;
        -            }
        -        }
        -
        -        return null;
        -    },
        -
        -    /**
        -     * Returns a collection of nodes that have a matching property 
        -     * and value in the data object that was passed into its constructor.  
        -     * @method getNodesByProperty
        -     * @param {object} property the property to search (usually a string)
        -     * @param {object} value the value we want to find (usuall an int or string)
        -     * @return {Array} the matching collection of nodes, null if no match
        -     */
        -    getNodesByProperty: function(property, value) {
        -        var values = [];
        -        for (var i in this._nodes) {
        -            var n = this._nodes[i];
        -            if (n.data && value == n.data[property]) {
        -                values.push(n);
        -            }
        -        }
        -
        -        return (values.length) ? values : null;
        -    },
        -
        -    /**
        -     * Removes the node and its children, and optionally refreshes the 
        -     * branch of the tree that was affected.
        -     * @method removeNode
        -     * @param {Node} The node to remove
        -     * @param {boolean} autoRefresh automatically refreshes branch if true
        -     * @return {boolean} False is there was a problem, true otherwise.
        -     */
        -    removeNode: function(node, autoRefresh) { 
        -
        -        // Don't delete the root node
        -        if (node.isRoot()) {
        -            return false;
        -        }
        -
        -        // Get the branch that we may need to refresh
        -        var p = node.parent;
        -        if (p.parent) {
        -            p = p.parent;
        -        }
        -
        -        // Delete the node and its children
        -        this._deleteNode(node);
        -
        -        // Refresh the parent of the parent
        -        if (autoRefresh && p && p.childrenRendered) {
        -            p.refresh();
        -        }
        -
        -        return true;
        -    },
        -
        -    /**
        -     * Deletes this nodes child collection, recursively.  Also collapses
        -     * the node, and resets the dynamic load flag.  The primary use for
        -     * this method is to purge a node and allow it to fetch its data
        -     * dynamically again.
        -     * @method removeChildren
        -     * @param {Node} node the node to purge
        -     */
        -    removeChildren: function(node) { 
        -        this.logger.log("Removing children for " + node);
        -        while (node.children.length) {
        -            this._deleteNode(node.children[0]);
        -        }
        -
        -        node.childrenRendered = false;
        -        node.dynamicLoadComplete = false;
        -        if (node.expanded) {
        -            node.collapse();
        -        } else {
        -            node.updateIcon();
        -        }
        -    },
        -
        -    /**
        -     * Deletes the node and recurses children
        -     * @method _deleteNode
        -     * @private
        -     */
        -    _deleteNode: function(node) { 
        -        // Remove all the child nodes first
        -        this.removeChildren(node);
        -
        -        // Remove the node from the tree
        -        this.popNode(node);
        -    },
        -
        -    /**
        -     * Removes the node from the tree, preserving the child collection 
        -     * to make it possible to insert the branch into another part of the 
        -     * tree, or another tree.
        -     * @method popNode
        -     * @param {Node} the node to remove
        -     */
        -    popNode: function(node) { 
        -        var p = node.parent;
        -
        -        // Update the parent's collection of children
        -        var a = [];
        -
        -        for (var i=0, len=p.children.length;i<len;++i) {
        -            if (p.children[i] != node) {
        -                a[a.length] = p.children[i];
        -            }
        -        }
        -
        -        p.children = a;
        -
        -        // reset the childrenRendered flag for the parent
        -        p.childrenRendered = false;
        -
        -         // Update the sibling relationship
        -        if (node.previousSibling) {
        -            node.previousSibling.nextSibling = node.nextSibling;
        -        }
        -
        -        if (node.nextSibling) {
        -            node.nextSibling.previousSibling = node.previousSibling;
        -        }
        -
        -        node.parent = null;
        -        node.previousSibling = null;
        -        node.nextSibling = null;
        -        node.tree = null;
        -
        -        // Update the tree's node collection 
        -        delete this._nodes[node.index];
        -    },
        -
        -
        -    /**
        -     * TreeView instance toString
        -     * @method toString
        -     * @return {string} string representation of the tree
        -     */
        -    toString: function() {
        -        return "TreeView " + this.id;
        -    },
        -
        -    /**
        -     * Generates an unique id for an element if it doesn't yet have one
        -     * @method generateId
        -     * @private
        -     */
        -    generateId: function(el) {
        -        var id = el.id;
        -
        -        if (!id) {
        -            id = "yui-tv-auto-id-" + YAHOO.widget.TreeView.counter;
        -            ++YAHOO.widget.TreeView.counter;
        -        }
        -
        -        return id;
        -    },
        -
        -    /**
        -     * Abstract method that is executed when a node is expanded
        -     * @method onExpand
        -     * @param node {Node} the node that was expanded
        -     * @deprecated use treeobj.subscribe("expand") instead
        -     */
        -    onExpand: function(node) { },
        -
        -    /**
        -     * Abstract method that is executed when a node is collapsed.
        -     * @method onCollapse
        -     * @param node {Node} the node that was collapsed.
        -     * @deprecated use treeobj.subscribe("collapse") instead
        -     */
        -    onCollapse: function(node) { }
        -
        -};
        -
        -YAHOO.augment(YAHOO.widget.TreeView, YAHOO.util.EventProvider);
        -
        -/**
        - * Running count of all nodes created in all trees.  This is 
        - * used to provide unique identifies for all nodes.  Deleting
        - * nodes does not change the nodeCount.
        - * @property YAHOO.widget.TreeView.nodeCount
        - * @type int
        - * @static
        - */
        -YAHOO.widget.TreeView.nodeCount = 0;
        -
        -/**
        - * Global cache of tree instances
        - * @property YAHOO.widget.TreeView.trees
        - * @type Array
        - * @static
        - * @private
        - */
        -YAHOO.widget.TreeView.trees = [];
        -
        -/**
        - * Counter for generating a new unique element id
        - * @property YAHOO.widget.TreeView.counter
        - * @static
        - * @private
        - */
        -YAHOO.widget.TreeView.counter = 0;
        -
        -/**
        - * Global method for getting a tree by its id.  Used in the generated
        - * tree html.
        - * @method YAHOO.widget.TreeView.getTree
        - * @param treeId {String} the id of the tree instance
        - * @return {TreeView} the tree instance requested, null if not found.
        - * @static
        - */
        -YAHOO.widget.TreeView.getTree = function(treeId) {
        -    var t = YAHOO.widget.TreeView.trees[treeId];
        -    return (t) ? t : null;
        -};
        -
        -
        -/**
        - * Global method for getting a node by its id.  Used in the generated
        - * tree html.
        - * @method YAHOO.widget.TreeView.getNode
        - * @param treeId {String} the id of the tree instance
        - * @param nodeIndex {String} the index of the node to return
        - * @return {Node} the node instance requested, null if not found
        - * @static
        - */
        -YAHOO.widget.TreeView.getNode = function(treeId, nodeIndex) {
        -    var t = YAHOO.widget.TreeView.getTree(treeId);
        -    return (t) ? t.getNodeByIndex(nodeIndex) : null;
        -};
        -
        -/**
        - * Add a DOM event
        - * @method YAHOO.widget.TreeView.addHandler
        - * @param el the elment to bind the handler to
        - * @param {string} sType the type of event handler
        - * @param {function} fn the callback to invoke
        - * @static
        - */
        -YAHOO.widget.TreeView.addHandler = function (el, sType, fn) {
        -    if (el.addEventListener) {
        -        el.addEventListener(sType, fn, false);
        -    } else if (el.attachEvent) {
        -        el.attachEvent("on" + sType, fn);
        -    }
        -};
        -
        -/**
        - * Remove a DOM event
        - * @method YAHOO.widget.TreeView.removeHandler
        - * @param el the elment to bind the handler to
        - * @param {string} sType the type of event handler
        - * @param {function} fn the callback to invoke
        - * @static
        - */
        -
        -YAHOO.widget.TreeView.removeHandler = function (el, sType, fn) {
        -    if (el.removeEventListener) {
        -        el.removeEventListener(sType, fn, false);
        -    } else if (el.detachEvent) {
        -        el.detachEvent("on" + sType, fn);
        -    }
        -};
        -
        -/**
        - * Attempts to preload the images defined in the styles used to draw the tree by
        - * rendering off-screen elements that use the styles.
        - * @method YAHOO.widget.TreeView.preload
        - * @param {string} prefix the prefix to use to generate the names of the
        - * images to preload, default is ygtv
        - * @static
        - */
        -YAHOO.widget.TreeView.preload = function(prefix) {
        -    prefix = prefix || "ygtv";
        -    var styles = ["tn","tm","tmh","tp","tph","ln","lm","lmh","lp","lph","loading"];
        -
        -    var sb = [];
        -    
        -    for (var i = 0; i < styles.length; ++i) { 
        -        sb[sb.length] = '<span class="' + prefix + styles[i] + '">&#160;</span>';
        -    }
        -
        -    var f = document.createElement("div");
        -    var s = f.style;
        -    s.position = "absolute";
        -    s.top = "-1000px";
        -    s.left = "-1000px";
        -    f.innerHTML = sb.join("");
        -
        -    document.body.appendChild(f);
        -
        -    YAHOO.widget.TreeView.removeHandler(window, 
        -                "load", YAHOO.widget.TreeView.preload);
        -
        -};
        -
        -YAHOO.widget.TreeView.addHandler(window, 
        -                "load", YAHOO.widget.TreeView.preload);
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/WidthResizer.html b/www/extras/yui/docs/WidthResizer.html deleted file mode 100644 index 071a611f2..000000000 --- a/www/extras/yui/docs/WidthResizer.html +++ /dev/null @@ -1,443 +0,0 @@ - - - - API: datatable WidthResizer (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        DataTable Widget  2.2.2

        -

        - Yahoo! UI Library - > datatable - > WidthResizer - -

        -
        - -
        -
        -
        - - -

        - - - - - Class WidthResizer - - - extends YAHOO.util.DragDrop - - - - - - -

        - - - - - -
        - WidthResizer subclasses DragDrop to support resizeable Columns. -
        - -
        -

        Constructor

        -
        -
        - WidthResizer - - ( - - - - colElId - - , - handleElId - - , - sGroup - ) - -
        -
        -
        Parameters:
        -
        - colElId - <string> - - ID of the Column's TH element being resized -
        -
        - handleElId - <string> - - ID of the handle element that causes the resize -
        -
        - sGroup - <string> - - Group name of related DragDrop items -
        -
        - - -
        -
        -
        -
        - - - - -
        -

        Methods

        -
        -

        - onDrag

        -
        - - - - - void - onDrag - ( - - - e - - - ) - - -
        - Handles drag events on the Column resizer. -
        - -
        - -
        -
        Parameters:
        -
        - e <string> - The drag event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onMouseDown

        -
        - - - - - void - onMouseDown - ( - - - e - - - ) - - -
        - Handles mousedown events on the Column resizer. -
        - -
        - -
        -
        Parameters:
        -
        - e <string> - The mousedown event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onMouseUp

        -
        - - - - - void - onMouseUp - ( - - - e - - - ) - - -
        - Handles mouseup events on the Column resizer. -
        - -
        - -
        -
        Parameters:
        -
        - e <string> - The mouseup event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.env.html b/www/extras/yui/docs/YAHOO.env.html deleted file mode 100644 index a7165c896..000000000 --- a/www/extras/yui/docs/YAHOO.env.html +++ /dev/null @@ -1,254 +0,0 @@ - - - - API: yahoo YAHOO.env (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        YAHOO Global  2.2.2

        -

        - Yahoo! UI Library - > yahoo - > YAHOO.env - -

        -
        - -
        -
        -
        - - -

        - - - static - - Class YAHOO.env - - - - - - - -

        - - - - - -
        - YAHOO.env is used to keep track of what is known about the YUI library and -the browsing environment -
        - - -
        -

        Properties

        -
        -

        listeners - - Function[] -

        -
        -
        - List of functions that should be executed every time a YUI module -reports itself. -
        -
        - - - - -
        -

        modules - - Object[] -

        -
        -
        - Keeps the version info for all YUI modules that have reported themselves -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - getVersion

        -
        - - - static - - Object - getVersion - ( - - - name - - - ) - - -
        - Returns the version data for the specified module: -
        -
        name:
        The name of the module
        -
        version:
        The version in use
        -
        build:
        The build number in use
        -
        versions:
        All versions that were registered
        -
        builds:
        All builds that were registered.
        -
        mainClass:
        An object that was was stamped with the -current version and build. If -mainClass.VERSION != version or mainClass.BUILD != build, -multiple versions of pieces of the library have been -loaded, potentially causing issues.
        -
        -
        - -
        - -
        -
        Parameters:
        -
        - name <String> - the name of the module (event, slider, etc) -
        -
        - -
        -
        Returns: - - Object -
        -
        The version info
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.html b/www/extras/yui/docs/YAHOO.html deleted file mode 100644 index 55900f265..000000000 --- a/www/extras/yui/docs/YAHOO.html +++ /dev/null @@ -1,513 +0,0 @@ - - - - API: yahoo YAHOO (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        YAHOO Global  2.2.2

        -

        - Yahoo! UI Library - > yahoo - > YAHOO - -

        -
        - -
        -
        -
        - - -

        - - - static - - Class YAHOO - - - - - - - -

        - - - - - -
        - The YAHOO global namespace object. If YAHOO is already defined, the -existing YAHOO object will not be overwritten so that defined -namespaces are preserved. -
        - - - - -
        -

        Methods

        -
        -

        - augment

        -
        - - - static - - void - augment - ( - - - r - - - , - s - - - , - arguments - - - ) - - -
        - An alias for YAHOO.lang.augment -
        - -
        - -
        -
        Parameters:
        -
        - r <Function> - the object to receive the augmentation -
        -
        - s <Function> - the object that supplies the properties to augment -
        -
        - arguments <String*> - zero or more properties methods to augment the -receiver with. If none specified, everything -in the supplier will be used unless it would -overwrite an existing property in the receiver -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - extend

        -
        - - - static - - void - extend - ( - - - subc - - - , - superc - - - , - overrides - - - ) - - -
        - An alias for YAHOO.lang.extend -
        - -
        - -
        -
        Parameters:
        -
        - subc <Function> - the object to modify -
        -
        - superc <Function> - the object to inherit -
        -
        - overrides <Object> - additional properties/methods to add to the -subclass prototype. These will override the -matching items obtained from the superclass -if present. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - static - - void - init - ( - ) - - -
        - Initializes the global by creating the default namespaces and applying -any new configuration information that is detected. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - log

        -
        - - - static - - Boolean - log - ( - - - msg - - - , - cat - - - , - src - - - ) - - -
        - Uses YAHOO.widget.Logger to output a log message, if the widget is -available. -
        - -
        - -
        -
        Parameters:
        -
        - msg <String> - The message to log. -
        -
        - cat <String> - The log category for the message. Default -categories are "info", "warn", "error", time". -Custom categories can be used as well. (opt) -
        -
        - src <String> - The source of the the message (opt) -
        -
        - -
        -
        Returns: - - Boolean -
        -
        True if the log operation was successful.
        -
        - -
        - -
        -
        -

        - namespace

        -
        - - - static - - Object - namespace - ( - - - arguments - - - ) - - -
        - Returns the namespace specified and creates it if it doesn't exist -
        -YAHOO.namespace("property.package");
        -YAHOO.namespace("YAHOO.property.package");
        -
        -Either of the above would create YAHOO.property, then -YAHOO.property.package -Be careful when naming packages. Reserved words may work in some browsers -and not others. For instance, the following will fail in Safari: -
        -YAHOO.namespace("really.long.nested.namespace");
        -
        -This fails because "long" is a future reserved word in ECMAScript -
        - -
        - -
        -
        Parameters:
        -
        - arguments <String*> - 1-n namespaces to create -
        -
        - -
        -
        Returns: - - Object -
        -
        A reference to the last namespace object created
        -
        - -
        - -
        -
        -

        - register

        -
        - - - static - - void - register - ( - - - name - - - , - mainClass - - - , - data - - - ) - - -
        - Registers a module with the YAHOO object -
        - -
        - -
        -
        Parameters:
        -
        - name <String> - the name of the module (event, slider, etc) -
        -
        - mainClass <Function> - a reference to class in the module. This -class will be tagged with the version info -so that it will be possible to identify the -version that is in use when multiple versions -have loaded -
        -
        - data <Object> - metadata object for the module. Currently it -is expected to contain a "version" property -and a "build" property at minimum. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.js.html b/www/extras/yui/docs/YAHOO.js.html deleted file mode 100644 index 580582834..000000000 --- a/www/extras/yui/docs/YAHOO.js.html +++ /dev/null @@ -1,542 +0,0 @@ - - - - API: yahoo YAHOO.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        YAHOO Global  2.2.2

        -

        - Yahoo! UI Library - > yahoo - - > YAHOO.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * The YAHOO object is the single global object used by YUI Library.  It
        - * contains utility function for setting up namespaces, inheritance, and
        - * logging.  YAHOO.util, YAHOO.widget, and YAHOO.example are namespaces
        - * created automatically for and used by the library.
        - * @module yahoo
        - * @title  YAHOO Global
        - */
        -
        -/**
        - * YAHOO_config is not included part of the library.  Instead it is an object
        - * that can be defined by the implementer immediately before including the
        - * YUI library.  The properties included in this object will be used to
        - * configure global properties needed as soon as the library begins to load.
        - * @class YAHOO_config
        - * @static
        - */
        -
        -/**
        - * A reference to a function that will be executed every time a YAHOO module
        - * is loaded.  As parameter, this function will receive the version
        - * information for the module. See <a href="YAHOO.env.html#getVersion">
        - * YAHOO.env.getVersion</a> for the description of the version data structure.
        - * @property listener
        - * @static
        - */
        -if (typeof YAHOO == "undefined") {
        -    /**
        -     * The YAHOO global namespace object.  If YAHOO is already defined, the
        -     * existing YAHOO object will not be overwritten so that defined
        -     * namespaces are preserved.
        -     * @class YAHOO
        -     * @static
        -     */
        -    var YAHOO = {};
        -}
        -
        -/**
        - * Returns the namespace specified and creates it if it doesn't exist
        - * <pre>
        - * YAHOO.namespace("property.package");
        - * YAHOO.namespace("YAHOO.property.package");
        - * </pre>
        - * Either of the above would create YAHOO.property, then
        - * YAHOO.property.package
        - *
        - * Be careful when naming packages. Reserved words may work in some browsers
        - * and not others. For instance, the following will fail in Safari:
        - * <pre>
        - * YAHOO.namespace("really.long.nested.namespace");
        - * </pre>
        - * This fails because "long" is a future reserved word in ECMAScript
        - *
        - * @method namespace
        - * @static
        - * @param  {String*} arguments 1-n namespaces to create 
        - * @return {Object}  A reference to the last namespace object created
        - */
        -YAHOO.namespace = function() {
        -    var a=arguments, o=null, i, j, d;
        -    for (i=0; i<a.length; i=i+1) {
        -        d=a[i].split(".");
        -        o=YAHOO;
        -
        -        // YAHOO is implied, so it is ignored if it is included
        -        for (j=(d[0] == "YAHOO") ? 1 : 0; j<d.length; j=j+1) {
        -            o[d[j]]=o[d[j]] || {};
        -            o=o[d[j]];
        -        }
        -    }
        -
        -    return o;
        -};
        -
        -/**
        - * Uses YAHOO.widget.Logger to output a log message, if the widget is
        - * available.
        - *
        - * @method log
        - * @static
        - * @param  {String}  msg  The message to log.
        - * @param  {String}  cat  The log category for the message.  Default
        - *                        categories are "info", "warn", "error", time".
        - *                        Custom categories can be used as well. (opt)
        - * @param  {String}  src  The source of the the message (opt)
        - * @return {Boolean}      True if the log operation was successful.
        - */
        -YAHOO.log = function(msg, cat, src) {
        -    var l=YAHOO.widget.Logger;
        -    if(l && l.log) {
        -        return l.log(msg, cat, src);
        -    } else {
        -        return false;
        -    }
        -};
        -
        -
        -/**
        - * Initializes the global by creating the default namespaces and applying
        - * any new configuration information that is detected.
        - * @method init
        - * @static
        - */
        -YAHOO.init = function() {
        -    this.namespace("util", "widget", "example");
        -    if (typeof YAHOO_config != "undefined") {
        -        var l=YAHOO_config.listener,ls=YAHOO.env.listeners,unique=true,i;
        -        if (l) {
        -            // if YAHOO is loaded multiple times we need to check to see if
        -            // this is a new config object.  If it is, add the new component
        -            // load listener to the stack
        -            for (i=0;i<ls.length;i=i+1) {
        -                if (ls[i]==l) {
        -                    unique=false;
        -                    break;
        -                }
        -            }
        -            if (unique) {
        -                ls.push(l);
        -            }
        -        }
        -    }
        -};
        -
        -/**
        - * Registers a module with the YAHOO object
        - * @method register
        - * @static
        - * @param {String}   name    the name of the module (event, slider, etc)
        - * @param {Function} mainClass a reference to class in the module.  This
        - *                             class will be tagged with the version info
        - *                             so that it will be possible to identify the
        - *                             version that is in use when multiple versions
        - *                             have loaded
        - * @param {Object}   data      metadata object for the module.  Currently it
        - *                             is expected to contain a "version" property
        - *                             and a "build" property at minimum.
        - */
        -YAHOO.register = function(name, mainClass, data) {
        -    var mods = YAHOO.env.modules;
        -    if (!mods[name]) {
        -        mods[name] = { versions:[], builds:[] };
        -    }
        -    var m=mods[name],v=data.version,b=data.build,ls=YAHOO.env.listeners;
        -    m.name = name;
        -    m.version = v;
        -    m.build = b;
        -    m.versions.push(v);
        -    m.builds.push(b);
        -    m.mainClass = mainClass;
        -    // fire the module load listeners
        -    for (var i=0;i<ls.length;i=i+1) {
        -        ls[i](m);
        -    }
        -    // label the main class
        -    if (mainClass) {
        -        mainClass.VERSION = v;
        -        mainClass.BUILD = b;
        -    } else {
        -        YAHOO.log("mainClass is undefined for module " + name, "warn");
        -    }
        -};
        -
        -/**
        - * YAHOO.env is used to keep track of what is known about the YUI library and
        - * the browsing environment
        - * @class YAHOO.env
        - * @type Object
        - * @static
        - */
        -YAHOO.env = YAHOO.env || {
        -    /**
        -     * Keeps the version info for all YUI modules that have reported themselves
        -     * @property modules
        -     * @type Object[]
        -     */
        -    modules: [],
        -    
        -    /**
        -     * List of functions that should be executed every time a YUI module
        -     * reports itself.
        -     * @property listeners
        -     * @type Function[]
        -     */
        -    listeners: [],
        -    
        -    /**
        -     * Returns the version data for the specified module:
        -     *      <dl>
        -     *      <dt>name:</dt>      <dd>The name of the module</dd>
        -     *      <dt>version:</dt>   <dd>The version in use</dd>
        -     *      <dt>build:</dt>     <dd>The build number in use</dd>
        -     *      <dt>versions:</dt>  <dd>All versions that were registered</dd>
        -     *      <dt>builds:</dt>    <dd>All builds that were registered.</dd>
        -     *      <dt>mainClass:</dt> <dd>An object that was was stamped with the
        -     *                 current version and build. If 
        -     *                 mainClass.VERSION != version or mainClass.BUILD != build,
        -     *                 multiple versions of pieces of the library have been
        -     *                 loaded, potentially causing issues.</dd>
        -     *       </dl>
        -     *
        -     * @method getVersion
        -     * @static
        -     * @param {String}  name the name of the module (event, slider, etc)
        -     * @return {Object} The version info
        -     */
        -    getVersion: function(name) {
        -        return YAHOO.env.modules[name] || null;
        -    }
        -};
        -
        -/**
        - * Provides the language utilites and extensions used by the library
        - * @class YAHOO.lang
        - */
        -YAHOO.lang = {
        -    /**
        -     * Determines whether or not the provided object is an array
        -     * @method isArray
        -     * @param {any} obj The object being testing
        -     * @return Boolean
        -     */
        -    isArray: function(obj) { // frames lose type, so test constructor string
        -        if (obj && obj.constructor && 
        -                   obj.constructor.toString().indexOf('Array') > -1) {
        -            return true;
        -        } else {
        -            return YAHOO.lang.isObject(obj) && obj.constructor == Array;
        -        }
        -    },
        -
        -    /**
        -     * Determines whether or not the provided object is a boolean
        -     * @method isBoolean
        -     * @param {any} obj The object being testing
        -     * @return Boolean
        -     */
        -    isBoolean: function(obj) {
        -        return typeof obj == 'boolean';
        -    },
        -    
        -    /**
        -     * Determines whether or not the provided object is a function
        -     * @method isFunction
        -     * @param {any} obj The object being testing
        -     * @return Boolean
        -     */
        -    isFunction: function(obj) {
        -        return typeof obj == 'function';
        -    },
        -        
        -    /**
        -     * Determines whether or not the provided object is null
        -     * @method isNull
        -     * @param {any} obj The object being testing
        -     * @return Boolean
        -     */
        -    isNull: function(obj) {
        -        return obj === null;
        -    },
        -        
        -    /**
        -     * Determines whether or not the provided object is a legal number
        -     * @method isNumber
        -     * @param {any} obj The object being testing
        -     * @return Boolean
        -     */
        -    isNumber: function(obj) {
        -        return typeof obj == 'number' && isFinite(obj);
        -    },
        -      
        -    /**
        -     * Determines whether or not the provided object is of type object
        -     * or function
        -     * @method isObject
        -     * @param {any} obj The object being testing
        -     * @return Boolean
        -     */  
        -    isObject: function(obj) {
        -        return obj && (typeof obj == 'object' || YAHOO.lang.isFunction(obj));
        -    },
        -        
        -    /**
        -     * Determines whether or not the provided object is a string
        -     * @method isString
        -     * @param {any} obj The object being testing
        -     * @return Boolean
        -     */
        -    isString: function(obj) {
        -        return typeof obj == 'string';
        -    },
        -        
        -    /**
        -     * Determines whether or not the provided object is undefined
        -     * @method isUndefined
        -     * @param {any} obj The object being testing
        -     * @return Boolean
        -     */
        -    isUndefined: function(obj) {
        -        return typeof obj == 'undefined';
        -    },
        -    
        -    /**
        -     * Determines whether or not the property was added
        -     * to the object instance.  Returns false if the property is not present
        -     * in the object, or was inherited from the prototype.
        -     * This abstraction is provided to enable hasOwnProperty for Safari 1.3.x.
        -     * There is a discrepancy between YAHOO.lang.hasOwnProperty and
        -     * Object.prototype.hasOwnProperty when the property is a primitive added to
        -     * both the instance AND prototype with the same value:
        -     * <pre>
        -     * var A = function() {};
        -     * A.prototype.foo = 'foo';
        -     * var a = new A();
        -     * a.foo = 'foo';
        -     * alert(a.hasOwnProperty('foo')); // true
        -     * alert(YAHOO.lang.hasOwnProperty(a, 'foo')); // false when using fallback
        -     * </pre>
        -     * @method hasOwnProperty
        -     * @param {any} obj The object being testing
        -     * @return Boolean
        -     */
        -    hasOwnProperty: function(obj, prop) {
        -        if (Object.prototype.hasOwnProperty) {
        -            return obj.hasOwnProperty(prop);
        -        }
        -        
        -        return !YAHOO.lang.isUndefined(obj[prop]) && 
        -                obj.constructor.prototype[prop] !== obj[prop];
        -    },
        -        
        -    /**
        -     * Utility to set up the prototype, constructor and superclass properties to
        -     * support an inheritance strategy that can chain constructors and methods.
        -     *
        -     * @method extend
        -     * @static
        -     * @param {Function} subc   the object to modify
        -     * @param {Function} superc the object to inherit
        -     * @param {Object} overrides  additional properties/methods to add to the
        -     *                              subclass prototype.  These will override the
        -     *                              matching items obtained from the superclass 
        -     *                              if present.
        -     */
        -    extend: function(subc, superc, overrides) {
        -        if (!superc||!subc) {
        -            throw new Error("YAHOO.lang.extend failed, please check that " +
        -                            "all dependencies are included.");
        -        }
        -        var F = function() {};
        -        F.prototype=superc.prototype;
        -        subc.prototype=new F();
        -        subc.prototype.constructor=subc;
        -        subc.superclass=superc.prototype;
        -        if (superc.prototype.constructor == Object.prototype.constructor) {
        -            superc.prototype.constructor=superc;
        -        }
        -    
        -        if (overrides) {
        -            for (var i in overrides) {
        -                subc.prototype[i]=overrides[i];
        -            }
        -        }
        -    },
        -    
        -    /**
        -     * Applies all prototype properties in the supplier to the receiver if the
        -     * receiver does not have these properties yet.  Optionally, one or more
        -     * methods/properties can be specified (as additional parameters).  This
        -     * option will overwrite the property if receiver has it already.
        -     *
        -     * @method augment
        -     * @static
        -     * @param {Function} r  the object to receive the augmentation
        -     * @param {Function} s  the object that supplies the properties to augment
        -     * @param {String*}  arguments zero or more properties methods to augment the
        -     *                             receiver with.  If none specified, everything
        -     *                             in the supplier will be used unless it would
        -     *                             overwrite an existing property in the receiver
        -     */
        -    augment: function(r, s) {
        -        if (!s||!r) {
        -            throw new Error("YAHOO.lang.augment failed, please check that " +
        -                            "all dependencies are included.");
        -        }
        -        var rp=r.prototype, sp=s.prototype, a=arguments, i, p;
        -        if (a[2]) {
        -            for (i=2; i<a.length; i=i+1) {
        -                rp[a[i]] = sp[a[i]];
        -            }
        -        } else {
        -            for (p in sp) { 
        -                if (!rp[p]) {
        -                    rp[p] = sp[p];
        -                }
        -            }
        -        }
        -    }
        -};
        -
        -YAHOO.init();
        -
        -/*
        - * An alias for <a href="YAHOO.lang.html">YAHOO.lang</a>
        - * @class YAHOO.util.Lang
        - */
        -YAHOO.util.Lang = YAHOO.lang;
        -
        -/**
        - * An alias for <a href="YAHOO.lang.html#augment">YAHOO.lang.augment</a>
        - * @for YAHOO
        - * @method augment
        - * @static
        - * @param {Function} r  the object to receive the augmentation
        - * @param {Function} s  the object that supplies the properties to augment
        - * @param {String*}  arguments zero or more properties methods to augment the
        - *                             receiver with.  If none specified, everything
        - *                             in the supplier will be used unless it would
        - *                             overwrite an existing property in the receiver
        - */
        -YAHOO.augment = YAHOO.lang.augment;
        -       
        -/**
        - * An alias for <a href="YAHOO.lang.html#extend">YAHOO.lang.extend</a>
        - * @method extend
        - * @static
        - * @param {Function} subc   the object to modify
        - * @param {Function} superc the object to inherit
        - * @param {Object} overrides  additional properties/methods to add to the
        - *                              subclass prototype.  These will override the
        - *                              matching items obtained from the superclass 
        - *                              if present.
        - */
        -YAHOO.extend = YAHOO.lang.extend;
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.lang.html b/www/extras/yui/docs/YAHOO.lang.html deleted file mode 100644 index 4d26cfbf8..000000000 --- a/www/extras/yui/docs/YAHOO.lang.html +++ /dev/null @@ -1,723 +0,0 @@ - - - - API: yahoo YAHOO.lang (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        YAHOO Global  2.2.2

        -

        - Yahoo! UI Library - > yahoo - > YAHOO.lang - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.lang - - - - - - - -

        - - - - - -
        - Provides the language utilites and extensions used by the library -
        - - - - -
        -

        Methods

        -
        -

        - augment

        -
        - - - static - - void - augment - ( - - - r - - - , - s - - - , - arguments - - - ) - - -
        - Applies all prototype properties in the supplier to the receiver if the -receiver does not have these properties yet. Optionally, one or more -methods/properties can be specified (as additional parameters). This -option will overwrite the property if receiver has it already. -
        - -
        - -
        -
        Parameters:
        -
        - r <Function> - the object to receive the augmentation -
        -
        - s <Function> - the object that supplies the properties to augment -
        -
        - arguments <String*> - zero or more properties methods to augment the -receiver with. If none specified, everything -in the supplier will be used unless it would -overwrite an existing property in the receiver -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - extend

        -
        - - - static - - void - extend - ( - - - subc - - - , - superc - - - , - overrides - - - ) - - -
        - Utility to set up the prototype, constructor and superclass properties to -support an inheritance strategy that can chain constructors and methods. -
        - -
        - -
        -
        Parameters:
        -
        - subc <Function> - the object to modify -
        -
        - superc <Function> - the object to inherit -
        -
        - overrides <Object> - additional properties/methods to add to the -subclass prototype. These will override the -matching items obtained from the superclass -if present. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - hasOwnProperty

        -
        - - - - - void - hasOwnProperty - ( - - - obj - - - ) - - -
        - Determines whether or not the property was added -to the object instance. Returns false if the property is not present -in the object, or was inherited from the prototype. -This abstraction is provided to enable hasOwnProperty for Safari 1.3.x. -There is a discrepancy between YAHOO.lang.hasOwnProperty and -Object.prototype.hasOwnProperty when the property is a primitive added to -both the instance AND prototype with the same value: -
        -var A = function() {};
        -A.prototype.foo = 'foo';
        -var a = new A();
        -a.foo = 'foo';
        -alert(a.hasOwnProperty('foo')); // true
        -alert(YAHOO.lang.hasOwnProperty(a, 'foo')); // false when using fallback
        -
        -
        - -
        - -
        -
        Parameters:
        -
        - obj <any> - The object being testing -
        -
        - -
        -
        Returns: - - void -
        -
        Boolean
        -
        - -
        - -
        -
        -

        - isArray

        -
        - - - - - void - isArray - ( - - - obj - - - ) - - -
        - Determines whether or not the provided object is an array -
        - -
        - -
        -
        Parameters:
        -
        - obj <any> - The object being testing -
        -
        - -
        -
        Returns: - - void -
        -
        Boolean
        -
        - -
        - -
        -
        -

        - isBoolean

        -
        - - - - - void - isBoolean - ( - - - obj - - - ) - - -
        - Determines whether or not the provided object is a boolean -
        - -
        - -
        -
        Parameters:
        -
        - obj <any> - The object being testing -
        -
        - -
        -
        Returns: - - void -
        -
        Boolean
        -
        - -
        - -
        -
        -

        - isFunction

        -
        - - - - - void - isFunction - ( - - - obj - - - ) - - -
        - Determines whether or not the provided object is a function -
        - -
        - -
        -
        Parameters:
        -
        - obj <any> - The object being testing -
        -
        - -
        -
        Returns: - - void -
        -
        Boolean
        -
        - -
        - -
        -
        -

        - isNull

        -
        - - - - - void - isNull - ( - - - obj - - - ) - - -
        - Determines whether or not the provided object is null -
        - -
        - -
        -
        Parameters:
        -
        - obj <any> - The object being testing -
        -
        - -
        -
        Returns: - - void -
        -
        Boolean
        -
        - -
        - -
        -
        -

        - isNumber

        -
        - - - - - void - isNumber - ( - - - obj - - - ) - - -
        - Determines whether or not the provided object is a legal number -
        - -
        - -
        -
        Parameters:
        -
        - obj <any> - The object being testing -
        -
        - -
        -
        Returns: - - void -
        -
        Boolean
        -
        - -
        - -
        -
        -

        - isObject

        -
        - - - - - void - isObject - ( - - - obj - - - ) - - -
        - Determines whether or not the provided object is of type object -or function -
        - -
        - -
        -
        Parameters:
        -
        - obj <any> - The object being testing -
        -
        - -
        -
        Returns: - - void -
        -
        Boolean
        -
        - -
        - -
        -
        -

        - isString

        -
        - - - - - void - isString - ( - - - obj - - - ) - - -
        - Determines whether or not the provided object is a string -
        - -
        - -
        -
        Parameters:
        -
        - obj <any> - The object being testing -
        -
        - -
        -
        Returns: - - void -
        -
        Boolean
        -
        - -
        - -
        -
        -

        - isUndefined

        -
        - - - - - void - isUndefined - ( - - - obj - - - ) - - -
        - Determines whether or not the provided object is undefined -
        - -
        - -
        -
        Parameters:
        -
        - obj <any> - The object being testing -
        -
        - -
        -
        Returns: - - void -
        -
        Boolean
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.Anim.html b/www/extras/yui/docs/YAHOO.util.Anim.html deleted file mode 100644 index f8ff3b27f..000000000 --- a/www/extras/yui/docs/YAHOO.util.Anim.html +++ /dev/null @@ -1,1156 +0,0 @@ - - - - API: animation YAHOO.util.Anim (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        animation  2.2.2

        -

        - Yahoo! UI Library - > animation - > YAHOO.util.Anim - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.Anim - - - - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.util.Scroll - YAHOO.util.ColorAnim - YAHOO.util.Motion -
        -
        - - - -
        - Base animation class that provides the interface for building animated effects. -

        Usage: var myAnim = new YAHOO.util.Anim(el, { width: { from: 10, to: 100 } }, 1, YAHOO.util.Easing.easeOut);

        -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.Anim - - ( - - - - el - - , - attributes - - , - duration - - , - method - ) - -
        -
        -
        Parameters:
        -
        - el - <String | HTMLElement> - - Reference to the element that will be animated -
        -
        - attributes - <Object> - - The attribute(s) to be animated. -Each attribute is an object with at minimum a "to" or "by" member defined. -Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). -All attribute names use camelCase. -
        -
        - duration - <Number> - - (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based -
        -
        - method - <Function> - - (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _onComplete - - private object -

        -
        -
        - Custom event that fires after onComplete -
        -
        - - - - -
        -

        _onStart - - private object -

        -
        -
        - Custom event that fires after onStart, useful in subclassing -
        -
        - - - - -
        -

        _onTween - - private object -

        -
        -
        - Custom event that fires after onTween -
        -
        - - - - -
        -

        actualFrames - - private Int -

        -
        -
        - The number of frames this animation was able to execute. -
        -
        - - - - -
        -

        attributes - - Object -

        -
        -
        - The collection of attributes to be animated. -Each attribute must have at least a "to" or "by" defined in order to animate. -If "to" is supplied, the animation will end with the attribute at that value. -If "by" is supplied, the animation will end at that value plus its starting value. -If both are supplied, "to" is used, and "by" is ignored. -Optional additional member include "from" (the value the attribute should start animating from, defaults to current value), and "unit" (the units to apply to the values). -
        -
        - - - - -
        -

        currentFrame - - Int -

        -
        -
        - The location of the current animation on the timeline. -In time-based animations, this is used by AnimMgr to ensure the animation finishes on time. -
        -
        - - - - -
        -

        duration - - Number -

        -
        -
        - The length of the animation. Defaults to "1" (second). -
        -
        - - - - -
        -

        el - - private HTMLElement -

        -
        -
        - The element to be animated. -
        -
        - - - - -
        -

        isAnimated - - private Boolean -

        -
        -
        - Whether or not the animation is running. -
        -
        - - - - -
        -

        method - - Function -

        -
        -
        - The method that will provide values to the attribute(s) during the animation. -Defaults to "YAHOO.util.Easing.easeNone". -
        -
        - - - - -
        -

        startTime - - private Date -

        -
        -
        - A Date object that is created when the animation begins. -
        -
        - - - - -
        -

        totalFrames - - Int -

        -
        -
        - The total number of frames to be executed. -In time-based animations, this is used by AnimMgr to ensure the animation finishes on time. -
        -
        - - - - -
        -

        useSeconds - - Boolean -

        -
        -
        - Whether or not the duration should be treated as seconds. -Defaults to true. -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - animate

        -
        - - - - - void - animate - ( - ) - - -
        - Starts the animation by registering it with the animation manager. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - doMethod

        -
        - - - - - Number - doMethod - ( - - - attr - - - , - start - - - , - end - - - ) - - -
        - Returns the value computed by the animation's "method". -
        - -
        - -
        -
        Parameters:
        -
        - attr <String> - The name of the attribute. -
        -
        - start <Number> - The value this attribute should start from for this animation. -
        -
        - end <Number> - The value this attribute should end at for this animation. -
        -
        - -
        -
        Returns: - - Number -
        -
        The Value to be applied to the attribute.
        -
        - -
        - -
        -
        -

        - getAttribute

        -
        - - - - - Number - getAttribute - ( - - - attr - - - ) - - -
        - Returns current value of the attribute. -
        - -
        - -
        -
        Parameters:
        -
        - attr <String> - The name of the attribute. -
        -
        - -
        -
        Returns: - - Number -
        -
        val The current value of the attribute.
        -
        - -
        - -
        -
        -

        - getDefaultUnit

        -
        - - - - - String - getDefaultUnit - ( - - - attr - - - ) - - -
        - Returns the unit to use when none is supplied. -
        - -
        - -
        -
        Parameters:
        -
        - attr <attr> - The name of the attribute. -
        -
        - -
        -
        Returns: - - String -
        -
        The default unit to be used.
        -
        - -
        - -
        -
        -

        - getEl

        -
        - - - - - HTMLElement - getEl - ( - ) - - -
        - Returns a reference to the animated element. -
        - -
        - - -
        -
        Returns: - - HTMLElement -
        -
        -
        - -
        - -
        -
        -

        - getStartTime

        -
        - - - - - Date - getStartTime - ( - ) - - -
        - Returns the animation start time. -
        - -
        - - -
        -
        Returns: - - Date -
        -
        current value of startTime.
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - el - - - , - attributes - - - , - duration - - - , - method - - - ) - - -
        - Constructor for Anim instance. -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement> - Reference to the element that will be animated -
        -
        - attributes <Object> - The attribute(s) to be animated. -Each attribute is an object with at minimum a "to" or "by" member defined. -Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). -All attribute names use camelCase. -
        -
        - duration <Number> - (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based -
        -
        - method <Function> - (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - isAnimated

        -
        - - - - - Boolean - isAnimated - ( - ) - - -
        - Checks whether the element is currently animated. -
        - -
        - - -
        -
        Returns: - - Boolean -
        -
        current value of isAnimated.
        -
        - -
        - -
        -
        -

        - onTween

        -
        - - private - - - void - onTween - ( - ) - - -
        - Feeds the starting and ending values for each animated attribute to doMethod once per frame, then applies the resulting value to the attribute(s). -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setAttribute

        -
        - - - - - void - setAttribute - ( - - - attr - - - , - val - - - , - unit - - - ) - - -
        - Applies a value to an attribute. -
        - -
        - -
        -
        Parameters:
        -
        - attr <String> - The name of the attribute. -
        -
        - val <Number> - The value to be applied to the attribute. -
        -
        - unit <String> - The unit ('px', '%', etc.) of the value. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setRuntimeAttribute

        -
        - - private - - - void - setRuntimeAttribute - ( - - - attr - - - ) - - -
        - Sets the actual values to be used during the animation. Should only be needed for subclass use. -
        - -
        - -
        -
        Parameters:
        -
        - attr <Object> - The attribute object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - stop

        -
        - - - - - void - stop - ( - - - finish - - - ) - - -
        - Stops the animation. Normally called by AnimMgr when animation completes. -
        - -
        - -
        -
        Parameters:
        -
        - finish <Boolean> - (optional) If true, animation will jump to final frame. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Provides a readable name for the Anim instance. -
        - -
        - - -
        -
        Returns: - - String -
        -
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Events

        -
        -

        - onComplete

        -
        - - - - - onComplete - - ( - ) - - - -
        - Custom event that fires when animation ends -Listen via subscribe method (e.g. myAnim.onComplete.subscribe(someFunction) -
        - -
        - - - - -
        - -
        -
        -

        - onStart

        -
        - - - - - onStart - - ( - ) - - - -
        - Custom event that fires when animation begins -Listen via subscribe method (e.g. myAnim.onStart.subscribe(someFunction) -
        - -
        - - - - -
        - -
        -
        -

        - onTween

        -
        - - - - - onTween - - ( - ) - - - -
        - Custom event that fires between each frame -Listen via subscribe method (e.g. myAnim.onTween.subscribe(someFunction) -
        - -
        - - - - -
        - -
        -
        -
        -
        - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.AnimMgr.html b/www/extras/yui/docs/YAHOO.util.AnimMgr.html deleted file mode 100644 index 7237690d0..000000000 --- a/www/extras/yui/docs/YAHOO.util.AnimMgr.html +++ /dev/null @@ -1,522 +0,0 @@ - - - - API: animation YAHOO.util.AnimMgr (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        animation  2.2.2

        -

        - Yahoo! UI Library - > animation - > YAHOO.util.AnimMgr - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.AnimMgr - - - - - - - -

        - - - - - -
        - Handles animation queueing and threading. -Used by Anim and subclasses. -
        - - -
        -

        Properties

        -
        -

        delay - - Int -

        -
        -
        - Interval delay in milliseconds, defaults to fastest possible. -
        -
        - - - - -
        -

        fps - - Int -

        -
        -
        - Base frame rate (frames per second). -Arbitrarily high for better x-browser calibration (slower browsers drop more frames). -
        -
        - - - - -
        -

        queue - - private Array -

        -
        -
        - The current queue of registered animation objects. -
        -
        - - - - -
        -

        thread - - private Int -

        -
        -
        - Reference to the animation Interval. -
        -
        - - - - -
        -

        tweenCount - - private Int -

        -
        -
        - The number of active animations. -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - correctFrame

        -
        - - private - - - void - correctFrame - ( - - - tween - - - ) - - -
        - On the fly frame correction to keep animation on time. -
        - -
        - -
        -
        Parameters:
        -
        - tween <Object> - The Anim instance being corrected. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - registerElement

        -
        - - - - - void - registerElement - ( - - - tween - - - ) - - -
        - Adds an animation instance to the animation queue. -All animation instances must be registered in order to animate. -
        - -
        - -
        -
        Parameters:
        -
        - tween <object> - The Anim instance to be be registered -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - run

        -
        - - - - - void - run - ( - ) - - -
        - Called per Interval to handle each animation frame. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - start

        -
        - - - - - void - start - ( - ) - - -
        - Starts the animation thread. -Only one thread can run at a time. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - stop

        -
        - - - - - void - stop - ( - - - tween - - - ) - - -
        - Stops the animation thread or a specific animation instance. -
        - -
        - -
        -
        Parameters:
        -
        - tween <object> - A specific Anim instance to stop (optional) -If no instance given, Manager stops thread and all animations. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - unRegister

        -
        - - private - - - void - unRegister - ( - - - tween - - - , - index - - - ) - - -
        - removes an animation instance from the animation queue. -All animation instances must be registered in order to animate. -
        - -
        - -
        -
        Parameters:
        -
        - tween <object> - The Anim instance to be be registered -
        -
        - index <Int> - The index of the Anim instance -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.Attribute.html b/www/extras/yui/docs/YAHOO.util.Attribute.html deleted file mode 100644 index eb853fda7..000000000 --- a/www/extras/yui/docs/YAHOO.util.Attribute.html +++ /dev/null @@ -1,596 +0,0 @@ - - - - API: element YAHOO.util.Attribute (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        element  2.2.2

        -

        - Yahoo! UI Library - > element - > YAHOO.util.Attribute - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.Attribute - - - - - - - -

        - - - - - -
        - Provides Attribute configurations. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.Attribute - - ( - - - - hash - - , - The - ) - -
        -
        -
        Parameters:
        -
        - hash - <Object> - - The intial Attribute. -
        -
        - The - <YAHOO.util.AttributeProvider> - - owner of the Attribute instance. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _initialConfig - - private Object -

        -
        -
        - The attribute's initial configuration. -
        -
        - - - - -
        -

        _written - - private Boolean -

        -
        -
        - Whether or not the attribute's value has been set. -
        -
        - - - - -
        -

        method - - Function -

        -
        -
        - The method to use when setting the attribute's value. -The method recieves the new value as the only argument. -
        -
        - - - - -
        -

        name - - String -

        -
        -
        - The name of the attribute. -
        -
        - - - - -
        -

        owner - - YAHOO.util.AttributeProvider -

        -
        -
        - The owner of the attribute. -
        -
        - - - - -
        -

        readOnly - - Boolean -

        -
        -
        - Whether or not the attribute is read only. -
        -
        - - - - -
        -

        validator - - Function -

        -
        -
        - The validator to use when setting the attribute's value. -
        -
        - - - - -
        -

        value - - String -

        -
        -
        - The value of the attribute. -
        -
        - - - - -
        -

        writeOnce - - Boolean -

        -
        -
        - Whether or not the attribute can only be written once. -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - configure

        -
        - - - - - void - configure - ( - - - map - - - , - init - - - ) - - -
        - Allows for configuring the Attribute's properties. -
        - -
        - -
        -
        Parameters:
        -
        - map <Object> - A key-value map of Attribute properties. -
        -
        - init <Boolean> - Whether or not this should become the initial config. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getValue

        -
        - - - - - any - getValue - ( - ) - - -
        - Retrieves the current value of the attribute. -
        - -
        - - -
        -
        Returns: - - any -
        -
        The current value of the attribute.
        -
        - -
        - -
        -
        -

        - refresh

        -
        - - - - - Boolean - refresh - ( - ) - - -
        - Resets the value to the current value. -Useful when values may have gotten out of sync with actual properties. -
        - -
        - - -
        -
        Returns: - - Boolean -
        -
        Whether or not the value was set.
        -
        - -
        - -
        -
        -

        - resetConfig

        -
        - - - - - void - resetConfig - ( - ) - - -
        - Resets the attribute config to the initial config state. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - resetValue

        -
        - - - - - Boolean - resetValue - ( - ) - - -
        - Resets the value to the initial config value. -
        - -
        - - -
        -
        Returns: - - Boolean -
        -
        Whether or not the value was set.
        -
        - -
        - -
        -
        -

        - setValue

        -
        - - - - - Boolean - setValue - ( - - - value - - - , - silent - - - ) - - -
        - Sets the value of the attribute and fires beforeChange and change events. -
        - -
        - -
        -
        Parameters:
        -
        - value <Any> - The value to apply to the attribute. -
        -
        - silent <Boolean> - If true the change events will not be fired. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        Whether or not the value was set.
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.AttributeProvider.html b/www/extras/yui/docs/YAHOO.util.AttributeProvider.html deleted file mode 100644 index 2bbeeaba4..000000000 --- a/www/extras/yui/docs/YAHOO.util.AttributeProvider.html +++ /dev/null @@ -1,909 +0,0 @@ - - - - API: element YAHOO.util.AttributeProvider (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        element  2.2.2

        -

        - Yahoo! UI Library - > element - > YAHOO.util.AttributeProvider - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.AttributeProvider - - - - - - uses - - YAHOO.util.EventProvider - - - - -

        - - - - - -
        - Provides and manages YAHOO.util.Attribute instances -
        - - -
        -

        Properties

        -
        -

        _configs - - private {Object} -

        -
        -
        - A key-value map of Attribute configurations -
        -
        - - - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Methods

        -
        -

        - configureAttribute

        -
        - - - - - void - configureAttribute - ( - - - key - - - , - map - - - , - init - - - ) - - -
        - Sets or updates an Attribute instance's properties. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The attribute's name. -
        -
        - map <Object> - A key-value map of attribute properties -
        -
        - init <Boolean> - Whether or not this should become the intial config. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Use setAttributeConfig -
        -
        - -
        -
        -

        - fireBeforeChangeEvent

        -
        - - - - - void - fireBeforeChangeEvent - ( - - - key - - - , - e - - - ) - - -
        - Fires the attribute's beforeChange event. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The attribute's name. -
        -
        - e <Obj> - The event object to pass to handlers. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - fireChangeEvent

        -
        - - - - - void - fireChangeEvent - ( - - - key - - - , - e - - - ) - - -
        - Fires the attribute's change event. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The attribute's name. -
        -
        - e <Obj> - The event object to pass to the handlers. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - get

        -
        - - - - - void - get - ( - - - key - - - ) - - -
        - Returns the current value of the attribute. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The attribute whose value will be returned. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getAttributeConfig

        -
        - - private - - - object - getAttributeConfig - ( - - - key - - - ) - - -
        - Returns the attribute's properties. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The attribute's name -
        -
        - -
        -
        Returns: - - object -
        -
        A key-value map containing all of the -attribute's properties.
        -
        - -
        - -
        -
        -

        - getAttributeKeys

        -
        - - - - - Array - getAttributeKeys - ( - ) - - -
        - Returns an array of attribute names. -
        - -
        - - -
        -
        Returns: - - Array -
        -
        An array of attribute names.
        -
        - -
        - -
        -
        -

        - refresh

        -
        - - - - - void - refresh - ( - - - key - - - , - silent - - - ) - - -
        - Sets the attribute's value to its current value. -
        - -
        - -
        -
        Parameters:
        -
        - key <String | Array> - The attribute(s) to refresh -
        -
        - silent <Boolean> - Whether or not to suppress change events -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - register

        -
        - - - - - void - register - ( - - - key - - - , - map - - - ) - - -
        - Adds an Attribute to the AttributeProvider instance. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The attribute's name -
        -
        - map <Object> - A key-value map containing the -attribute's properties. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Use setAttributeConfig -
        -
        - -
        -
        -

        - resetAttributeConfig

        -
        - - private - - - void - resetAttributeConfig - ( - - - key - - - ) - - -
        - Resets an attribute to its intial configuration. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The attribute's name. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - resetValue

        -
        - - - - - Boolean - resetValue - ( - - - key - - - , - silent - - - ) - - -
        - Resets the specified attribute's value to its initial value. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The name of the attribute -
        -
        - silent <Boolean> - Whether or not to suppress change events -
        -
        - -
        -
        Returns: - - Boolean -
        -
        Whether or not the value was set
        -
        - -
        - -
        -
        -

        - set

        -
        - - - - - Boolean - set - ( - - - key - - - , - value - - - , - silent - - - ) - - -
        - Sets the value of a config. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The name of the attribute -
        -
        - value <Any> - The value to apply to the attribute -
        -
        - silent <Boolean> - Whether or not to suppress change events -
        -
        - -
        -
        Returns: - - Boolean -
        -
        Whether or not the value was set.
        -
        - -
        - -
        -
        -

        - setAttributeConfig

        -
        - - - - - void - setAttributeConfig - ( - - - key - - - , - map - - - , - init - - - ) - - -
        - Sets or updates an Attribute instance's properties. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The attribute's name. -
        -
        - map <Object> - A key-value map of attribute properties -
        -
        - init <Boolean> - Whether or not this should become the intial config. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setAttributes

        -
        - - - - - void - setAttributes - ( - - - map - - - , - silent - - - ) - - -
        - Sets multiple attribute values. -
        - -
        - -
        -
        Parameters:
        -
        - map <Object> - A key-value map of attributes -
        -
        - silent <Boolean> - Whether or not to suppress change events -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.Bezier.html b/www/extras/yui/docs/YAHOO.util.Bezier.html deleted file mode 100644 index be1147e03..000000000 --- a/www/extras/yui/docs/YAHOO.util.Bezier.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - API: animation YAHOO.util.Bezier (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        animation  2.2.2

        -

        - Yahoo! UI Library - > animation - > YAHOO.util.Bezier - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.Bezier - - - - - - - -

        - - - - - -
        - Used to calculate Bezier splines for any number of control points. -
        - - - - -
        -

        Methods

        -
        -

        - getPosition

        -
        - - - - - Array - getPosition - ( - - - points - - - , - t - - - ) - - -
        - Get the current position of the animated element based on t. -Each point is an array of "x" and "y" values (0 = x, 1 = y) -At least 2 points are required (start and end). -First point is start. Last point is end. -Additional control points are optional. -
        - -
        - -
        -
        Parameters:
        -
        - points <Array> - An array containing Bezier points -
        -
        - t <Number> - A number between 0 and 1 which is the basis for determining current position -
        -
        - -
        -
        Returns: - - Array -
        -
        An array containing int x and y member data
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.ColorAnim.html b/www/extras/yui/docs/YAHOO.util.ColorAnim.html deleted file mode 100644 index d39a8332f..000000000 --- a/www/extras/yui/docs/YAHOO.util.ColorAnim.html +++ /dev/null @@ -1,320 +0,0 @@ - - - - API: animation YAHOO.util.ColorAnim (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        animation  2.2.2

        -

        - Yahoo! UI Library - > animation - > YAHOO.util.ColorAnim - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.ColorAnim - - - extends YAHOO.util.Anim - - - - - - -

        - - - - - -
        - Anim subclass for color transitions. -

        Usage: var myAnim = new Y.ColorAnim(el, { backgroundColor: { from: '#FF0000', to: '#FFFFFF' } }, 1, Y.Easing.easeOut); Color values can be specified with either 112233, #112233, -[255,255,255], or rgb(255,255,255)

        -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.ColorAnim - - ( - - - - el - - , - attributes - - , - duration - - , - method - ) - -
        -
        -
        Parameters:
        -
        - el - <HTMLElement | String> - - Reference to the element that will be animated -
        -
        - attributes - <Object> - - The attribute(s) to be animated. -Each attribute is an object with at minimum a "to" or "by" member defined. -Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). -All attribute names use camelCase. -
        -
        - duration - <Number> - - (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based -
        -
        - method - <Function> - - (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) -
        -
        - - -
        -
        -
        -
        - - -
        -

        Properties inherited from YAHOO.util.Anim:

        - -
        - -
        -

        Methods

        -
        -

        - parseColor

        -
        - - - - - Array - parseColor - ( - - - s - - - ) - - -
        - Attempts to parse the given string and return a 3-tuple. -
        - -
        - -
        -
        Parameters:
        -
        - s <String> - The string to parse. -
        -
        - -
        -
        Returns: - - Array -
        -
        The 3-tuple of rgb values.
        -
        - -
        - -
        -
        -
        -
        - - - - - -
        -

        Events inherited from YAHOO.util.Anim:

        -
        - - - onComplete, - onStart, - onTween - -
        -
        - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.Config.html b/www/extras/yui/docs/YAHOO.util.Config.html deleted file mode 100644 index f84766bec..000000000 --- a/www/extras/yui/docs/YAHOO.util.Config.html +++ /dev/null @@ -1,1295 +0,0 @@ - - - - API: container YAHOO.util.Config (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - > YAHOO.util.Config - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.Config - - - - - - - -

        - - - - - -
        - Config is a utility used within an Object to allow the implementer to maintain a list of local configuration properties and listen for changes to those properties dynamically using CustomEvent. The initial values are also maintained so that the configuration can be reset at any given point to its initial state. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.Config - - ( - - - - owner - ) - -
        -
        -
        Parameters:
        -
        - owner - <Object> - - The owner Object to which this Config Object belongs -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        config - - private Object -

        -
        -
        - Maintains the local collection of configuration property objects and their specified values -
        -
        - - - - -
        -

        eventQueue - - private Object -

        -
        -
        - Maintains the local, normalized CustomEvent queue -
        -
        - - - - -
        -

        initialConfig - - private Object -

        -
        -
        - Maintains the local collection of configuration property objects as they were initially applied. -This object is used when resetting a property. -
        -
        - - - - -
        -

        owner - - Object -

        -
        -
        - Object reference to the owner of this Config Object -
        -
        - - - - -
        -

        queueInProgress - - Boolean -

        -
        -
        - Boolean flag that specifies whether a queue is currently being executed -
        -
        - - - - -
        -

        YAHOO.util.Config.BOOLEAN_TYPE - - private static final object -

        -
        -
        - Constant representing the boolean type string -
        -
        - - - - -
        -

        YAHOO.util.Config.CONFIG_CHANGED_EVENT - - private static final object -

        -
        -
        - Constant representing the CustomEvent type for the config changed event. -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - addProperty

        -
        - - - - - void - addProperty - ( - - - key - - - , - propertyObject - - - ) - - -
        - Adds a property to the Config Object's private config hash. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The configuration property's name -
        -
        - propertyObject <Object> - The Object containing all of this property's arguments -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - applyConfig

        -
        - - - - - void - applyConfig - ( - - - userConfig - - - , - init - - - ) - - -
        - Applies a key-value Object literal to the configuration, replacing any existing values, and queueing the property events. -Although the values will be set, fireQueue() must be called for their associated events to execute. -
        - -
        - -
        -
        Parameters:
        -
        - userConfig <Object> - The configuration Object literal -
        -
        - init <Boolean> - When set to true, the initialConfig will be set to the userConfig passed in, so that calling a reset will reset the properties to the passed values. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - checkBoolean

        -
        - - - - - Boolean - checkBoolean - ( - - - val - - - ) - - -
        - Validates that the value passed in is a Boolean. -
        - -
        - -
        -
        Parameters:
        -
        - val <Object> - The value to validate -
        -
        - -
        -
        Returns: - - Boolean -
        -
        true, if the value is valid
        -
        - -
        - -
        -
        -

        - checkNumber

        -
        - - - - - Boolean - checkNumber - ( - - - val - - - ) - - -
        - Validates that the value passed in is a number. -
        - -
        - -
        -
        Parameters:
        -
        - val <Object> - The value to validate -
        -
        - -
        -
        Returns: - - Boolean -
        -
        true, if the value is valid
        -
        - -
        - -
        -
        -

        - fireEvent

        -
        - - private - - - void - fireEvent - ( - - - key - - - , - Object - - - ) - - -
        - Fires a configuration property event using the specified value. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The configuration property's name -
        -
        - Object <value> - The value of the correct type for the property -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - fireQueue

        -
        - - - - - void - fireQueue - ( - ) - - -
        - Fires the normalized list of queued property change events -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getConfig

        -
        - - - - - Object - getConfig - ( - ) - - -
        - Returns a key-value configuration map of the values currently set in the Config Object. -
        - -
        - - -
        -
        Returns: - - Object -
        -
        The current config, represented in a key-value map
        -
        - -
        - -
        -
        -

        - getProperty

        -
        - - - - - Object - getProperty - ( - - - key - - - ) - - -
        - Returns the value of specified property. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The name of the property -
        -
        - -
        -
        Returns: - - Object -
        -
        The value of the specified property
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - owner - - - ) - - -
        - Initializes the configuration Object and all of its local members. -
        - -
        - -
        -
        Parameters:
        -
        - owner <Object> - The owner Object to which this Config Object belongs -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - outputEventQueue

        -
        - - - - - String - outputEventQueue - ( - ) - - -
        - Returns a string representation of the Config object's current CustomEvent queue -
        - -
        - - -
        -
        Returns: - - String -
        -
        The string list of CustomEvents currently queued for execution
        -
        - -
        - -
        -
        -

        - queueProperty

        -
        - - - - - Boolean - queueProperty - ( - - - key - - - , - value - - - ) - - -
        - Sets the value of a property and queues its event to execute. If the event is already scheduled to execute, it is -moved from its current position to the end of the queue. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The name of the property -
        -
        - value <String> - The value to set the property to -
        -
        - -
        -
        Returns: - - Boolean -
        -
        true, if the set was successful, false if it failed.
        -
        - -
        - -
        -
        -

        - refireEvent

        -
        - - - - - void - refireEvent - ( - - - key - - - ) - - -
        - Fires the event for a property using the property's current value. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The name of the property -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - refresh

        -
        - - - - - void - refresh - ( - ) - - -
        - Refires the events for all configuration properties using their current values. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - resetProperty

        -
        - - - - - Boolean - resetProperty - ( - - - key - - - ) - - -
        - Resets the specified property's value to its initial value. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The name of the property -
        -
        - -
        -
        Returns: - - Boolean -
        -
        True is the property was reset, false if not
        -
        - -
        - -
        -
        -

        - setProperty

        -
        - - - - - Boolean - setProperty - ( - - - key - - - , - value - - - , - silent - - - ) - - -
        - Sets the value of a property. If the silent property is passed as true, the property's event will not be fired. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The name of the property -
        -
        - value <String> - The value to set the property to -
        -
        - silent <Boolean> - Whether the value should be set silently, without firing the property event. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        True, if the set was successful, false if it failed.
        -
        - -
        - -
        -
        -

        - subscribeToConfigEvent

        -
        - - - - - Boolean - subscribeToConfigEvent - ( - - - key - - - , - handler - - - , - obj - - - , - override - - - ) - - -
        - Subscribes an external handler to the change event for any given property. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The property name -
        -
        - handler <Function> - The handler function to use subscribe to the property's event -
        -
        - obj <Object> - The Object to use for scoping the event handler (see CustomEvent documentation) -
        -
        - override <Boolean> - Optional. If true, will override "this" within the handler to map to the scope Object passed into the method. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        True, if the subscription was successful, otherwise false.
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representation of the Config object -
        - -
        - - -
        -
        Returns: - - String -
        -
        The Config object in string format.
        -
        - -
        - -
        -
        -

        - unsubscribeFromConfigEvent

        -
        - - - - - Boolean - unsubscribeFromConfigEvent - ( - - - key - - - , - handler - - - , - obj - - - ) - - -
        - Unsubscribes an external handler from the change event for any given property. -
        - -
        - -
        -
        Parameters:
        -
        - key <String> - The property name -
        -
        - handler <Function> - The handler function to use subscribe to the property's event -
        -
        - obj <Object> - The Object to use for scoping the event handler (see CustomEvent documentation) -
        -
        - -
        -
        Returns: - - Boolean -
        -
        True, if the unsubscription was successful, otherwise false.
        -
        - -
        - -
        -
        -

        - YAHOO.util.Config.alreadySubscribed

        -
        - - - static - - Boolean - YAHOO.util.Config.alreadySubscribed - ( - - - evt - - - , - fn - - - , - obj - - - ) - - -
        - Checks to determine if a particular function/Object pair are already subscribed to the specified CustomEvent -
        - -
        - -
        -
        Parameters:
        -
        - evt <YAHOO.util.CustomEvent> - The CustomEvent for which to check the subscriptions -
        -
        - fn <Function> - The function to look for in the subscribers list -
        -
        - obj <Object> - The execution scope Object for the subscription -
        -
        - -
        -
        Returns: - - Boolean -
        -
        true, if the function/Object pair is already subscribed to the CustomEvent passed in
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Events

        -
        -

        - configChangedEvent

        -
        - - - - - configChangedEvent - - ( - ) - - - -
        - Custom Event, notifying subscribers when Config properties are set (setProperty is called without the silent flag -
        - -
        - - - - -
        - -
        -
        -
        -
        - - - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.Connect.html b/www/extras/yui/docs/YAHOO.util.Connect.html deleted file mode 100644 index e85a3a918..000000000 --- a/www/extras/yui/docs/YAHOO.util.Connect.html +++ /dev/null @@ -1,1626 +0,0 @@ - - - - API: connection YAHOO.util.Connect (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        connection  2.2.2

        -

        - Yahoo! UI Library - > connection - > YAHOO.util.Connect - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.Connect - - - - - - - -

        - - - - - -
        - The Connection Manager singleton provides methods for creating and managing -asynchronous transactions. -
        - - -
        -

        Properties

        -
        -

        _default_post_header - - private static boolean -

        -
        -
        - Determines if a default header of -Content-Type of 'application/x-www-form-urlencoded' -will be added to client HTTP headers sent for POST -transactions. -
        -
        - - - - -
        -

        _default_xhr_header - - private static boolean -

        -
        -
        - The default header value for the label -"X-Requested-With". This is sent with each -transaction, by default, to identify the -request as being made by YUI Connection Manager. -
        -
        - - - - -
        -

        _formNode - - private static object -

        -
        -
        - Property modified by setForm() to set a reference to the HTML -form node if the desired action is file upload. -
        -
        - - - - -
        -

        _has_default_header - - private static boolean -

        -
        -
        - Determines if custom, default headers -are set for each transaction. -
        -
        - - - - -
        -

        _has_http_headers - - private static boolean -

        -
        -
        - Determines if HTTP headers are set. -
        -
        - - - - -
        -

        _hasSubmitListener - - private static boolean -

        -
        -
        - Determines whether YAHOO.util.Event is available and returns true or false. -If true, an event listener is bound at the document level to trap click events that -resolve to a target type of "Submit". This listener will enable setForm() to determine -the clicked "Submit" value in a multi-Submit button, HTML form. -
        -
        - - - - -
        -

        _http_header - - private static object -

        -
        -
        - Object literal of HTTP header(s) -
        -
        - - - - -
        -

        _isFileUpload - - private static boolean -

        -
        -
        - Property modified by setForm() to determine if a file(s) -upload is expected. -
        -
        - - - - -
        -

        _isFormSubmit - - private static boolean -

        -
        -
        - Property modified by setForm() to determine if the data -should be submitted as an HTML form. -
        -
        - - - - -
        -

        _msxml_progid - - private static array -

        -
        -
        - Array of MSFT ActiveX ids for XMLHttpRequest. -
        -
        - - - - -
        -

        _poll - - private static object -

        -
        -
        - Collection of polling references to the polling mechanism in handleReadyState. -
        -
        - - - - -
        -

        _polling_interval - - private static int -

        -
        -
        - The polling frequency, in milliseconds, for HandleReadyState. -when attempting to determine a transaction's XHR readyState. -The default is 50 milliseconds. -
        -
        - - - - -
        -

        _sFormData - - private static string -

        -
        -
        - Property modified by setForm() to set the HTML form data -for each transaction. -
        -
        - - - - -
        -

        _submitElementValue - - private static string -

        -
        -
        - Tracks the name-value pair of the "clicked" submit button if multiple submit -buttons are present in an HTML form; and, if YAHOO.util.Event is available. -
        -
        - - - - -
        -

        _timeOut - - private static object -

        -
        -
        - Queue of timeout values for each transaction callback with a defined timeout value. -
        -
        - - - - -
        -

        _transaction_id - - private static int -

        -
        -
        - A transaction counter that increments the transaction id for each transaction. -
        -
        - - - - -
        -

        _use_default_post_header - - private static boolean -

        -
        -
        - Determines if a default header of -Content-Type of 'application/x-www-form-urlencoded' -will be added to any client HTTP headers sent for POST -transactions. -
        -
        - - - - -
        -

        _use_default_xhr_header - - private static boolean -

        -
        -
        - Determines if a default header of -'X-Requested-With: XMLHttpRequest' -will be added to each transaction. -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - abort

        -
        - - - static - - boolean - abort - ( - - - o - - - , - callback - - - , - isTimeout - - - ) - - -
        - Method to terminate a transaction, if it has not reached readyState 4. -
        - -
        - -
        -
        Parameters:
        -
        - o <object> - The connection object returned by asyncRequest. -
        -
        - callback <object> - User-defined callback object. -
        -
        - isTimeout <string> - boolean to indicate if abort was a timeout. -
        -
        - -
        -
        Returns: - - boolean -
        -
        -
        - -
        - -
        -
        -

        - appendPostData

        -
        - - private - static - - array - appendPostData - ( - - - postData - - - ) - - -
        - Parses the POST data and creates hidden form elements -for each key-value, and appends them to the HTML form object. -
        - -
        - -
        -
        Parameters:
        -
        - postData <string> - The HTTP POST data -
        -
        - -
        -
        Returns: - - array -
        -
        formElements Collection of hidden fields.
        -
        - -
        - -
        -
        -

        - asyncRequest

        -
        - - - static - - object - asyncRequest - ( - - - method - - - , - uri - - - , - callback - - - , - postData - - - ) - - -
        - Method for initiating an asynchronous request via the XHR object. -
        - -
        - -
        -
        Parameters:
        -
        - method <string> - HTTP transaction method -
        -
        - uri <string> - Fully qualified path of resource -
        -
        - callback <callback> - User-defined callback function or object -
        -
        - postData <string> - POST body -
        -
        - -
        -
        Returns: - - object -
        -
        Returns the connection object
        -
        - -
        - -
        -
        -

        - createExceptionObject

        -
        - - private - static - - object - createExceptionObject - ( - - - tId - - - , - callbackArg - - - , - isAbort - - - ) - - -
        - If a transaction cannot be completed due to dropped or closed connections, -there may be not be enough information to build a full response object. -The failure callback will be fired and this specific condition can be identified -by a status property value of 0. -If an abort was successful, the status property will report a value of -1. -
        - -
        - -
        -
        Parameters:
        -
        - tId <int> - The Transaction Id -
        -
        - callbackArg <callbackArg> - The user-defined argument or arguments to be passed to the callback -
        -
        - isAbort <boolean> - Determines if the exception case is caused by a transaction abort -
        -
        - -
        -
        Returns: - - object -
        -
        -
        - -
        - -
        -
        -

        - createFrame

        -
        - - private - static - - void - createFrame - ( - - - optional - - - ) - - -
        - Creates an iframe to be used for form file uploads. It is remove from the -document upon completion of the upload transaction. -
        - -
        - -
        -
        Parameters:
        -
        - optional <string> - qualified path of iframe resource for SSL in IE. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - createResponseObject

        -
        - - private - static - - object - createResponseObject - ( - - - o - - - , - callbackArg - - - ) - - -
        - This method evaluates the server response, creates and returns the results via -its properties. Success and failure cases will differ in the response -object's property values. -
        - -
        - -
        -
        Parameters:
        -
        - o <object> - The connection object -
        -
        - callbackArg <callbackArg> - The user-defined argument or arguments to be passed to the callback -
        -
        - -
        -
        Returns: - - object -
        -
        -
        - -
        - -
        -
        -

        - createXhrObject

        -
        - - private - static - - void - createXhrObject - ( - - - transactionId - - - ) - - -
        - Instantiates a XMLHttpRequest object and returns an object with two properties: -the XMLHttpRequest instance and the transaction id. -
        - -
        - -
        -
        Parameters:
        -
        - transactionId <int> - Property containing the transaction id for this transaction. -
        -
        - -
        -
        Returns: - - void -
        -
        object
        -
        - -
        - -
        -
        -

        - getConnectionObject

        -
        - - private - static - - object - getConnectionObject - ( - ) - - -
        - This method is called by asyncRequest to create a -valid connection object for the transaction. It also passes a -transaction id and increments the transaction id counter. -
        - -
        - - -
        -
        Returns: - - object -
        -
        -
        - -
        - -
        -
        -

        - handleReadyState

        -
        - - private - static - - void - handleReadyState - ( - - - o - - - , - callback - - - ) - - -
        - This method serves as a timer that polls the XHR object's readyState -property during a transaction, instead of binding a callback to the -onreadystatechange event. Upon readyState 4, handleTransactionResponse -will process the response, and the timer will be cleared. -
        - -
        - -
        -
        Parameters:
        -
        - o <object> - The connection object -
        -
        - callback <callback> - The user-defined callback object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - handleTransactionResponse

        -
        - - private - static - - void - handleTransactionResponse - ( - - - o - - - , - callback - - - , - isAbort - - - ) - - -
        - This method attempts to interpret the server response and -determine whether the transaction was successful, or if an error or -exception was encountered. -
        - -
        - -
        -
        Parameters:
        -
        - o <object> - The connection object -
        -
        - callback <object> - The sser-defined callback object -
        -
        - isAbort <boolean> - Determines if the transaction was aborted. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initHeader

        -
        - - - static - - void - initHeader - ( - - - label - - - , - value - - - , - isDefault - - - ) - - -
        - Method that initializes the custom HTTP headers for the each transaction. -
        - -
        - -
        -
        Parameters:
        -
        - label <string> - The HTTP header label -
        -
        - value <string> - The HTTP header value -
        -
        - isDefault <string> - Determines if the specific header is a default header -automatically sent with each transaction. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - isCallInProgress

        -
        - - - static - - boolean - isCallInProgress - ( - - - o - - - ) - - -
        - Public method to check if the transaction is still being processed. -
        - -
        - -
        -
        Parameters:
        -
        - o <object> - The connection object returned by asyncRequest -
        -
        - -
        -
        Returns: - - boolean -
        -
        -
        - -
        - -
        -
        -

        - releaseObject

        -
        - - private - static - - void - releaseObject - ( - - - o - - - ) - - -
        - Dereference the XHR instance and the connection object after the transaction is completed. -
        - -
        - -
        -
        Parameters:
        -
        - o <object> - The connection object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - resetDefaultHeaders

        -
        - - - static - - void - resetDefaultHeaders - ( - ) - - -
        - Resets the default HTTP headers object -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - resetFormState

        -
        - - private - static - - void - resetFormState - ( - ) - - -
        - Resets HTML form properties when an HTML form or HTML form -with file upload transaction is sent. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setDefaultPostHeader

        -
        - - - static - - void - setDefaultPostHeader - ( - - - b - - - ) - - -
        - Member to enable or disable the default POST header. -
        - -
        - -
        -
        Parameters:
        -
        - b <boolean> - Set and use default header - true or false . -
        -
        - -
        -
        Returns: - - void -
        -
        void
        -
        - -
        - -
        -
        -

        - setDefaultXhrHeader

        -
        - - - static - - void - setDefaultXhrHeader - ( - - - b - - - ) - - -
        - Member to enable or disable the default POST header. -
        - -
        - -
        -
        Parameters:
        -
        - b <boolean> - Set and use default header - true or false . -
        -
        - -
        -
        Returns: - - void -
        -
        void
        -
        - -
        - -
        -
        -

        - setForm

        -
        - - - static - - string - setForm - ( - - - form - - - , - optional - - - - - ) - - -
        - This method assembles the form label and value pairs and -constructs an encoded string. -asyncRequest() will automatically initialize the -transaction with a HTTP header Content-Type of -application/x-www-form-urlencoded. -
        - -
        - -
        -
        Parameters:
        -
        - form <string || object> - id or name attribute, or form object. -
        -
        - optional <string> - boolean to indicate SSL environment. -
        -
        - optional <string || boolean> - qualified path of iframe resource for SSL in IE. -
        -
        - -
        -
        Returns: - - string -
        -
        string of the HTML form field name and value pairs..
        -
        - -
        - -
        -
        -

        - setHeader

        -
        - - private - static - - void - setHeader - ( - - - o - - - ) - - -
        - Accessor that sets the HTTP headers for each transaction. -
        - -
        - -
        -
        Parameters:
        -
        - o <object> - The connection object for the transaction. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setPollingInterval

        -
        - - - static - - void - setPollingInterval - ( - - - i - - - ) - - -
        - Member to modify the default polling interval. -
        - -
        - -
        -
        Parameters:
        -
        - i <int> - The polling interval in milliseconds. -
        -
        - -
        -
        Returns: - - void -
        -
        void
        -
        - -
        - -
        -
        -

        - setProgId

        -
        - - - static - - void - setProgId - ( - - - id - - - ) - - -
        - Member to add an ActiveX id to the existing xml_progid array. -In the event(unlikely) a new ActiveX id is introduced, it can be added -without internal code modifications. -
        - -
        - -
        -
        Parameters:
        -
        - id <string> - The ActiveX id to be added to initialize the XHR object. -
        -
        - -
        -
        Returns: - - void -
        -
        void
        -
        - -
        - -
        -
        -

        - uploadFile

        -
        - - private - static - - void - uploadFile - ( - - - id - - - , - callback - - - , - uri - - - ) - - -
        - Uploads HTML form, including files/attachments, to the -iframe created in createFrame. -
        - -
        - -
        -
        Parameters:
        -
        - id <int> - The transaction id. -
        -
        - callback <object> - - User-defined callback object. -
        -
        - uri <string> - Fully qualified path of resource. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.CustomEvent.html b/www/extras/yui/docs/YAHOO.util.CustomEvent.html deleted file mode 100644 index a08855e20..000000000 --- a/www/extras/yui/docs/YAHOO.util.CustomEvent.html +++ /dev/null @@ -1,726 +0,0 @@ - - - - API: event YAHOO.util.CustomEvent (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Event Utility  2.2.2

        -

        - Yahoo! UI Library - > event - > YAHOO.util.CustomEvent - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.CustomEvent - - - - - - - -

        - - - - - -
        - The CustomEvent class lets you define events for your application -that can be subscribed to by one or more independent component. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.CustomEvent - - ( - - - - type - - , - oScope - - , - silent - - , - signature - ) - -
        -
        -
        Parameters:
        -
        - type - <String> - - The type of event, which is passed to the callback -when the event fires -
        -
        - oScope - <Object> - - The context the event will fire from. "this" will -refer to this object in the callback. Default value: -the window object. The listener can override this. -
        -
        - silent - <boolean> - - pass true to prevent the event from writing to -the debugsystem -
        -
        - signature - <int> - - the signature that the custom event subscriber -will receive. YAHOO.util.CustomEvent.LIST or -YAHOO.util.CustomEvent.FLAT. The default is -YAHOO.util.CustomEvent.LIST. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        scope - - object -

        -
        -
        - The scope the the event will fire from by default. Defaults to the window -obj -
        -
        - - - - -
        -

        signature - - int -

        -
        -
        - Custom events support two styles of arguments provided to the event -subscribers. -
          -
        • YAHOO.util.CustomEvent.LIST: -
            -
          • param1: event name
          • -
          • param2: array of arguments sent to fire
          • -
          • param3: a custom object supplied by the subscriber
          • -
          -
        • -
        • YAHOO.util.CustomEvent.FLAT -
            -
          • param1: the first argument passed to fire. If you need to -pass multiple parameters, use and array or object literal
          • -
          • param2: a custom object supplied by the subscriber
          • -
          -
        • -
        -
        -
        - - - - -
        -

        silent - - boolean -

        -
        -
        - By default all custom events are logged in the debug build, set silent -to true to disable debug outpu for this event. -
        -
        - - - - -
        -

        subscribers - - Subscriber[] -

        -
        -
        - The subscribers to this event -
        -
        - - - - -
        -

        type - - string -

        -
        -
        - The type of event, returned to subscribers when the event fires -
        -
        - - - - -
        -

        YAHOO.util.CustomEvent.FLAT - - static int -

        -
        -
        - Subscriber listener sigature constant. The FLAT type returns two -parameters: the first argument passed to fire and the optional -custom object -
        -
        - - - - -
        -

        YAHOO.util.CustomEvent.LIST - - static int -

        -
        -
        - Subscriber listener sigature constant. The LIST type returns three -parameters: the event type, the array of args passed to fire, and -the optional custom object -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - _delete

        -
        - - private - - - void - _delete - ( - ) - - -
        - -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - fire

        -
        - - - - - boolean - fire - ( - - - arguments - - - ) - - -
        - Notifies the subscribers. The callback functions will be executed -from the scope specified when the event was created, and with the -following parameters: -
          -
        • The type of event
        • -
        • All of the arguments fire() was executed with as an array
        • -
        • The custom object (if any) that was passed into the subscribe() -method
        • -
        -
        - -
        - -
        -
        Parameters:
        -
        - arguments <Object*> - an arbitrary set of parameters to pass to -the handler. -
        -
        - -
        -
        Returns: - - boolean -
        -
        false if one of the subscribers returned false, -true otherwise
        -
        - -
        - -
        -
        -

        - subscribe

        -
        - - - - - void - subscribe - ( - - - fn - - - , - obj - - - , - override - - - ) - - -
        - Subscribes the caller to this event -
        - -
        - -
        -
        Parameters:
        -
        - fn <Function> - The function to execute -
        -
        - obj <Object> - An object to be passed along when the event -fires -
        -
        - override <boolean|Object> - If true, the obj passed in becomes -the execution scope of the listener. -if an object, that object becomes the -the execution scope. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - void - toString - ( - ) - - -
        - -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - unsubscribe

        -
        - - - - - boolean - unsubscribe - ( - - - fn - - - , - obj - - - ) - - -
        - Unsubscribes subscribers. -
        - -
        - -
        -
        Parameters:
        -
        - fn <Function> - The subscribed function to remove, if not supplied -all will be removed -
        -
        - obj <Object> - The custom object passed to subscribe. This is -optional, but if supplied will be used to -disambiguate multiple listeners that are the same -(e.g., you subscribe many object using a function -that lives on the prototype) -
        -
        - -
        -
        Returns: - - boolean -
        -
        True if the subscriber was found and detached.
        -
        - -
        - -
        -
        -

        - unsubscribeAll

        -
        - - - - - int - unsubscribeAll - ( - ) - - -
        - Removes all listeners -
        - -
        - - -
        -
        Returns: - - int -
        -
        The number of listeners unsubscribed
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Events

        -
        -

        - subscribeEvent

        -
        - - - - - subscribeEvent - - ( - - - fn - - - , - obj - - - , - override - - - ) - - - -
        - Custom events provide a custom event that fires whenever there is -a new subscriber to the event. This provides an opportunity to -handle the case where there is a non-repeating event that has -already fired has a new subscriber. -
        - -
        - - -
        -
        Parameters:
        -
        - fn <Function> - The function to execute -
        -
        - obj <Object> - An object to be passed along when the event -fires -
        -
        - override <boolean|Object> - If true, the obj passed in becomes -the execution scope of the listener. -if an object, that object becomes the -the execution scope. -
        -
        - - -
        - -
        -
        -
        -
        - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.DD.html b/www/extras/yui/docs/YAHOO.util.DD.html deleted file mode 100644 index 9d6d659b5..000000000 --- a/www/extras/yui/docs/YAHOO.util.DD.html +++ /dev/null @@ -1,710 +0,0 @@ - - - - API: dragdrop YAHOO.util.DD (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Drag and Drop  2.2.2

        -

        - Yahoo! UI Library - > dragdrop - > YAHOO.util.DD - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.DD - - - extends YAHOO.util.DragDrop - - - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.widget.SliderThumb - YAHOO.util.DDProxy -
        -
        - - - -
        - A DragDrop implementation where the linked element follows the -mouse cursor during a drag. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.DD - - ( - - - - id - - , - sGroup - - , - config - ) - -
        -
        -
        Parameters:
        -
        - id - <String> - - the id of the linked element -
        -
        - sGroup - <String> - - the group of related DragDrop items -
        -
        - config - <object> - - an object containing configurable attributes -Valid properties for DD: -scroll -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        scroll - - boolean -

        -
        -
        - When set to true, the utility automatically tries to scroll the browser -window wehn a drag and drop element is dragged near the viewport boundary. -Defaults to true. -
        -
        - - - - -
        - - -
        -
        - - - -
        -

        Methods

        -
        -

        - alignElWithMouse

        -
        - - - - - void - alignElWithMouse - ( - - - el - - - , - iPageX - - - , - iPageY - - - ) - - -
        - Sets the element to the location of the mousedown or click event, -maintaining the cursor location relative to the location on the element -that was clicked. Override this if you want to place the element in a -location other than where the cursor is. -
        - -
        - -
        -
        Parameters:
        -
        - el <HTMLElement> - the element to move -
        -
        - iPageX <int> - the X coordinate of the mousedown or drag event -
        -
        - iPageY <int> - the Y coordinate of the mousedown or drag event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - autoOffset

        -
        - - - - - void - autoOffset - ( - - - iPageX - - - , - iPageY - - - ) - - -
        - Sets the pointer offset to the distance between the linked element's top -left corner and the location the element was clicked -
        - -
        - -
        -
        Parameters:
        -
        - iPageX <int> - the X coordinate of the click -
        -
        - iPageY <int> - the Y coordinate of the click -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - autoScroll

        -
        - - private - - - void - autoScroll - ( - - - x - - - , - y - - - , - h - - - , - w - - - ) - - -
        - Auto-scroll the window if the dragged object has been moved beyond the -visible window boundary. -
        - -
        - -
        -
        Parameters:
        -
        - x <int> - the drag element's x position -
        -
        - y <int> - the drag element's y position -
        -
        - h <int> - the height of the drag element -
        -
        - w <int> - the width of the drag element -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - cachePosition

        -
        - - - - - void - cachePosition - ( - - - iPageX - - - , - iPageY - - - ) - - -
        - Saves the most recent position so that we can reset the constraints and -tick marks on-demand. We need to know this so that we can calculate the -number of pixels the element is offset from its original position. -
        - -
        - -
        -
        Parameters:
        -
        - iPageX <object> - the current x position (optional, this just makes it so we -don't have to look it up again) -
        -
        - iPageY <object> - the current y position (optional, this just makes it so we -don't have to look it up again) -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setDelta

        -
        - - - - - void - setDelta - ( - - - iDeltaX - - - , - iDeltaY - - - ) - - -
        - Sets the pointer offset. You can call this directly to force the -offset to be in a particular location (e.g., pass in 0,0 to set it -to the center of the object, as done in YAHOO.widget.Slider) -
        - -
        - -
        -
        Parameters:
        -
        - iDeltaX <int> - the distance from the left -
        -
        - iDeltaY <int> - the distance from the top -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setDragElPos

        -
        - - - - - void - setDragElPos - ( - - - iPageX - - - , - iPageY - - - ) - - -
        - Sets the drag element to the location of the mousedown or click event, -maintaining the cursor location relative to the location on the element -that was clicked. Override this if you want to place the element in a -location other than where the cursor is. -
        - -
        - -
        -
        Parameters:
        -
        - iPageX <int> - the X coordinate of the mousedown or drag event -
        -
        - iPageY <int> - the Y coordinate of the mousedown or drag event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.DDProxy.html b/www/extras/yui/docs/YAHOO.util.DDProxy.html deleted file mode 100644 index 44dc234f6..000000000 --- a/www/extras/yui/docs/YAHOO.util.DDProxy.html +++ /dev/null @@ -1,561 +0,0 @@ - - - - API: dragdrop YAHOO.util.DDProxy (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Drag and Drop  2.2.2

        -

        - Yahoo! UI Library - > dragdrop - > YAHOO.util.DDProxy - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.DDProxy - - - extends YAHOO.util.DD - - - - - - -

        - - - - - -
        - A DragDrop implementation that inserts an empty, bordered div into -the document that follows the cursor during drag operations. At the time of -the click, the frame div is resized to the dimensions of the linked html -element, and moved to the exact location of the linked element. -References to the "frame" element refer to the single proxy element that -was created to be dragged in place of all DDProxy elements on the -page. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.DDProxy - - ( - - - - id - - , - sGroup - - , - config - ) - -
        -
        -
        Parameters:
        -
        - id - <String> - - the id of the linked html element -
        -
        - sGroup - <String> - - the group of related DragDrop objects -
        -
        - config - <object> - - an object containing configurable attributes -Valid properties for DDProxy in addition to those in DragDrop: -resizeFrame, centerFrame, dragElId -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        centerFrame - - boolean -

        -
        -
        - By default the frame is positioned exactly where the drag element is, so -we use the cursor offset provided by YAHOO.util.DD. Another option that works only if -you do not have constraints on the obj is to have the drag frame centered -around the cursor. Set centerFrame to true for this effect. -
        -
        - - - - -
        -

        resizeFrame - - boolean -

        -
        -
        - By default we resize the drag frame to be the same size as the element -we want to drag (this is to get the frame effect). We can turn it off -if we want a different behavior. -
        -
        - - - - -
        -

        YAHOO.util.DDProxy.dragElId - - static String -

        -
        -
        - The default drag frame div id -
        -
        - - - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.util.DD:

        -
        - - - scroll - -
        -
        - - -
        -

        Methods

        -
        -

        - _resizeProxy

        -
        - - private - - - void - _resizeProxy - ( - ) - - -
        - The proxy is automatically resized to the dimensions of the linked -element when a drag is initiated, unless resizeFrame is set to false -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - createFrame

        -
        - - - - - void - createFrame - ( - ) - - -
        - Creates the proxy element if it does not yet exist -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initFrame

        -
        - - - - - void - initFrame - ( - ) - - -
        - Initialization for the drag frame element. Must be called in the -constructor of all subclasses -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - showFrame

        -
        - - private - - - void - showFrame - ( - - - iPageX - - - , - iPageY - - - ) - - -
        - Resizes the drag frame to the dimensions of the clicked object, positions -it over the object, and finally displays it -
        - -
        - -
        -
        Parameters:
        -
        - iPageX <int> - X click position -
        -
        - iPageY <int> - Y click position -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - -
        -

        Methods inherited from YAHOO.util.DD:

        - -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.DDTarget.html b/www/extras/yui/docs/YAHOO.util.DDTarget.html deleted file mode 100644 index 24cc8fc26..000000000 --- a/www/extras/yui/docs/YAHOO.util.DDTarget.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - API: dragdrop YAHOO.util.DDTarget (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Drag and Drop  2.2.2

        -

        - Yahoo! UI Library - > dragdrop - > YAHOO.util.DDTarget - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.DDTarget - - - extends YAHOO.util.DragDrop - - - - - - -

        - - - - - -
        - A DragDrop implementation that does not move, but can be a drop -target. You would get the same result by simply omitting implementation -for the event callbacks, but this way we reduce the processing cost of the -event listener and the callbacks. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.DDTarget - - ( - - - - id - - , - sGroup - - , - config - ) - -
        -
        -
        Parameters:
        -
        - id - <String> - - the id of the element that is a drop target -
        -
        - sGroup - <String> - - the group of related DragDrop objects -
        -
        - config - <object> - - an object containing configurable attributes -Valid properties for DDTarget in addition to those in -DragDrop: -none -
        -
        - - -
        -
        -
        -
        - - - - - - - - - - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.Dom.html b/www/extras/yui/docs/YAHOO.util.Dom.html deleted file mode 100644 index fa5dd631c..000000000 --- a/www/extras/yui/docs/YAHOO.util.Dom.html +++ /dev/null @@ -1,1481 +0,0 @@ - - - - API: dom YAHOO.util.Dom (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        dom  2.2.2

        -

        - Yahoo! UI Library - > dom - > YAHOO.util.Dom - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.Dom - - - - - - - -

        - - - - - -
        - Provides helper methods for DOM elements. -
        - - - - -
        -

        Methods

        -
        -

        - addClass

        -
        - - - - - void - addClass - ( - - - el - - - , - className - - - ) - - -
        - Adds a class name to a given element or collection of elements. -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement | Array> - The element or collection to add the class to -
        -
        - className <String> - the class name to add to the class attribute -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - batch

        -
        - - - - - HTMLElement | Array - batch - ( - - - el - - - , - method - - - , - o - - - , - override - - - ) - - -
        - Returns an array of elements that have had the supplied method applied. -The method is called with the element(s) as the first arg, and the optional param as the second ( method(el, o) ). -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement | Array> - (optional) An element or array of elements to apply the method to -
        -
        - method <Function> - The method to apply to the element(s) -
        -
        - o <Any> - (optional) An optional arg that is passed to the supplied method -
        -
        - override <Boolean> - (optional) Whether or not to override the scope of "method" with "o" -
        -
        - -
        -
        Returns: - - HTMLElement | Array -
        -
        The element(s) with the method applied
        -
        - -
        - -
        -
        -

        - generateId

        -
        - - - - - String | Array - generateId - ( - - - el - - - , - prefix - - - ) - - -
        - Generates a unique ID -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement | Array> - (optional) An optional element array of elements to add an ID to (no ID is added if one is already present). -
        -
        - prefix <String> - (optional) an optional prefix to use (defaults to "yui-gen"). -
        -
        - -
        -
        Returns: - - String | Array -
        -
        The generated ID, or array of generated IDs (or original ID if already present on an element)
        -
        - -
        - -
        -
        -

        - get

        -
        - - - - - HTMLElement | Array - get - ( - - - el - - - ) - - -
        - Returns an HTMLElement reference. -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement |Array> - Accepts a string to use as an ID for getting a DOM reference, an actual DOM reference, or an Array of IDs and/or HTMLElements. -
        -
        - -
        -
        Returns: - - HTMLElement | Array -
        -
        A DOM reference to an HTML element or an array of HTMLElements.
        -
        - -
        - -
        -
        -

        - getClientHeight

        -
        - - - - - Int - getClientHeight - ( - ) - - -
        - Returns the height of the client (viewport). -
        - -
        - - -
        -
        Returns: - - Int -
        -
        The height of the viewable area of the page.
        -
        - -
        - Deprecated Now using getViewportHeight. This interface left intact for back compat. -
        -
        - -
        -
        -

        - getClientWidth

        -
        - - - - - Int - getClientWidth - ( - ) - - -
        - Returns the width of the client (viewport). -
        - -
        - - -
        -
        Returns: - - Int -
        -
        The width of the viewable area of the page.
        -
        - -
        - Deprecated Now using getViewportWidth. This interface left intact for back compat. -
        -
        - -
        -
        -

        - getDocumentHeight

        -
        - - - - - Int - getDocumentHeight - ( - ) - - -
        - Returns the height of the document. -
        - -
        - - -
        -
        Returns: - - Int -
        -
        The height of the actual document (which includes the body and its margin).
        -
        - -
        - -
        -
        -

        - getDocumentWidth

        -
        - - - - - Int - getDocumentWidth - ( - ) - - -
        - Returns the width of the document. -
        - -
        - - -
        -
        Returns: - - Int -
        -
        The width of the actual document (which includes the body and its margin).
        -
        - -
        - -
        -
        -

        - getElementsBy

        -
        - - - - - Array - getElementsBy - ( - - - method - - - , - tag - - - , - root - - - ) - - -
        - Returns a array of HTMLElements that pass the test applied by supplied boolean method. -For optimized performance, include a tag and/or root node when possible. -
        - -
        - -
        -
        Parameters:
        -
        - method <Function> - - A boolean method for testing elements which receives the element as its only argument. -
        -
        - tag <String> - (optional) The tag name of the elements being collected -
        -
        - root <String | HTMLElement> - (optional) The HTMLElement or an ID to use as the starting point -
        -
        - -
        -
        Returns: - - Array -
        -
        Array of HTMLElements
        -
        - -
        - -
        -
        -

        - getElementsByClassName

        -
        - - - - - Array - getElementsByClassName - ( - - - className - - - , - tag - - - , - root - - - ) - - -
        - Returns a array of HTMLElements with the given class. -For optimized performance, include a tag and/or root node when possible. -
        - -
        - -
        -
        Parameters:
        -
        - className <String> - The class name to match against -
        -
        - tag <String> - (optional) The tag name of the elements being collected -
        -
        - root <String | HTMLElement> - (optional) The HTMLElement or an ID to use as the starting point -
        -
        - -
        -
        Returns: - - Array -
        -
        An array of elements that have the given class name
        -
        - -
        - -
        -
        -

        - getRegion

        -
        - - - - - Region | Array - getRegion - ( - - - el - - - ) - - -
        - Returns the region position of the given element. -The element must be part of the DOM tree to have a region (display:none or elements not appended return false). -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement | Array> - Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements. -
        -
        - -
        -
        Returns: - - Region | Array -
        -
        A Region or array of Region instances containing "top, left, bottom, right" member data.
        -
        - -
        - -
        -
        -

        - getStyle

        -
        - - - - - String | Array - getStyle - ( - - - el - - - , - property - - - ) - - -
        - Normalizes currentStyle and ComputedStyle. -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement |Array> - Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements. -
        -
        - property <String> - The style property whose value is returned. -
        -
        - -
        -
        Returns: - - String | Array -
        -
        The current value of the style property for the element(s).
        -
        - -
        - -
        -
        -

        - getViewportHeight

        -
        - - - - - Int - getViewportHeight - ( - ) - - -
        - Returns the current height of the viewport. -
        - -
        - - -
        -
        Returns: - - Int -
        -
        The height of the viewable area of the page (excludes scrollbars).
        -
        - -
        - -
        -
        -

        - getViewportWidth

        -
        - - - - - Int - getViewportWidth - ( - ) - - -
        - Returns the current width of the viewport. -
        - -
        - - -
        -
        Returns: - - Int -
        -
        The width of the viewable area of the page (excludes scrollbars).
        -
        - -
        - -
        -
        -

        - getX

        -
        - - - - - String | Array - getX - ( - - - el - - - ) - - -
        - Gets the current X position of an element based on page coordinates. The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement | Array> - Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements -
        -
        - -
        -
        Returns: - - String | Array -
        -
        The X position of the element(s)
        -
        - -
        - -
        -
        -

        - getXY

        -
        - - - - - Array - getXY - ( - - - el - - - ) - - -
        - Gets the current position of an element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement | Array> - Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements -
        -
        - -
        -
        Returns: - - Array -
        -
        The XY position of the element(s)
        -
        - -
        - -
        -
        -

        - getY

        -
        - - - - - String | Array - getY - ( - - - el - - - ) - - -
        - Gets the current Y position of an element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement | Array> - Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements -
        -
        - -
        -
        Returns: - - String | Array -
        -
        The Y position of the element(s)
        -
        - -
        - -
        -
        -

        - hasClass

        -
        - - - - - Boolean | Array - hasClass - ( - - - el - - - , - className - - - ) - - -
        - Determines whether an HTMLElement has the given className. -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement | Array> - The element or collection to test -
        -
        - className <String> - the class name to search for -
        -
        - -
        -
        Returns: - - Boolean | Array -
        -
        A boolean value or array of boolean values
        -
        - -
        - -
        -
        -

        - inDocument

        -
        - - - - - Boolean - inDocument - ( - - - el - - - ) - - -
        - Determines whether an HTMLElement is present in the current document. -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement> - The element to search for -
        -
        - -
        -
        Returns: - - Boolean -
        -
        Whether or not the element is present in the current document
        -
        - -
        - -
        -
        -

        - isAncestor

        -
        - - - - - Boolean - isAncestor - ( - - - haystack - - - , - needle - - - ) - - -
        - Determines whether an HTMLElement is an ancestor of another HTML element in the DOM hierarchy. -
        - -
        - -
        -
        Parameters:
        -
        - haystack <String | HTMLElement> - The possible ancestor -
        -
        - needle <String | HTMLElement> - The possible descendent -
        -
        - -
        -
        Returns: - - Boolean -
        -
        Whether or not the haystack is an ancestor of needle
        -
        - -
        - -
        -
        -

        - removeClass

        -
        - - - - - void - removeClass - ( - - - el - - - , - className - - - ) - - -
        - Removes a class name from a given element or collection of elements. -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement | Array> - The element or collection to remove the class from -
        -
        - className <String> - the class name to remove from the class attribute -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - replaceClass

        -
        - - - - - void - replaceClass - ( - - - el - - - , - oldClassName - - - , - newClassName - - - ) - - -
        - Replace a class with another class for a given element or collection of elements. -If no oldClassName is present, the newClassName is simply added. -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement | Array> - The element or collection to remove the class from -
        -
        - oldClassName <String> - the class name to be replaced -
        -
        - newClassName <String> - the class name that will be replacing the old class name -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setStyle

        -
        - - - - - void - setStyle - ( - - - el - - - , - property - - - , - val - - - ) - - -
        - Wrapper for setting style properties of HTMLElements. Normalizes "opacity" across modern browsers. -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement | Array> - Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements. -
        -
        - property <String> - The style property to be set. -
        -
        - val <String> - The value to apply to the given property. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setX

        -
        - - - - - void - setX - ( - - - el - - - , - x - - - ) - - -
        - Set the X position of an html element in page coordinates, regardless of how the element is positioned. -The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement | Array> - Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements. -
        -
        - x <Int> - The value to use as the X coordinate for the element(s). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setXY

        -
        - - - - - void - setXY - ( - - - el - - - , - pos - - - , - noRetry - - - ) - - -
        - Set the position of an html element in page coordinates, regardless of how the element is positioned. -The element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement | Array> - Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements -
        -
        - pos <Array> - Contains X & Y values for new position (coordinates are page-based) -
        -
        - noRetry <Boolean> - By default we try and set the position a second time if the first fails -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setY

        -
        - - - - - void - setY - ( - - - el - - - , - x - - - ) - - -
        - Set the Y position of an html element in page coordinates, regardless of how the element is positioned. -The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). -
        - -
        - -
        -
        Parameters:
        -
        - el <String | HTMLElement | Array> - Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements. -
        -
        - x <Int> - To use as the Y coordinate for the element(s). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.DragDrop.html b/www/extras/yui/docs/YAHOO.util.DragDrop.html deleted file mode 100644 index 41599e7d4..000000000 --- a/www/extras/yui/docs/YAHOO.util.DragDrop.html +++ /dev/null @@ -1,3310 +0,0 @@ - - - - API: dragdrop YAHOO.util.DragDrop (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Drag and Drop  2.2.2

        -

        - Yahoo! UI Library - > dragdrop - > YAHOO.util.DragDrop - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.DragDrop - - - - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.widget.Slider - YAHOO.util.DD - YAHOO.util.DDTarget - WidthResizer -
        -
        - - - -
        - Defines the interface and base operation of items that that can be -dragged or can be drop targets. It was designed to be extended, overriding -the event handlers for startDrag, onDrag, onDragOver, onDragOut. -Up to three html elements can be associated with a DragDrop instance: -
          -
        • linked element: the element that is passed into the constructor. -This is the element which defines the boundaries for interaction with -other DragDrop objects.
        • -
        • handle element(s): The drag operation only occurs if the element that -was clicked matches a handle element. By default this is the linked -element, but there are times that you will want only a portion of the -linked element to initiate the drag operation, and the setHandleElId() -method provides a way to define this.
        • -
        • drag element: this represents an the element that would be moved along -with the cursor during a drag operation. By default, this is the linked -element itself as in {@link YAHOO.util.DD}. setDragElId() lets you define -a separate element that would be moved, as in {@link YAHOO.util.DDProxy} -
        • -
        -This class should not be instantiated until the onload event to ensure that -the associated elements are available. -The following would define a DragDrop obj that would interact with any -other DragDrop obj in the "group1" group: -
        -dd = new YAHOO.util.DragDrop("div1", "group1");
        -
        -Since none of the event handlers have been implemented, nothing would -actually happen if you were to run the code above. Normally you would -override this class or one of the default implementations, but you can -also override the methods you want on an instance of the class... -
        -dd.onDragDrop = function(e, id) {
        -  alert("dd was dropped on " + id);
        -}
        -
        -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.DragDrop - - ( - - - - id - - , - sGroup - - , - config - ) - -
        -
        -
        Parameters:
        -
        - id - <String> - - of the element that is linked to this instance -
        -
        - sGroup - <String> - - the group of related DragDrop objects -
        -
        - config - <object> - - an object containing configurable attributes -Valid properties for DragDrop: -padding, isTarget, maintainOffset, primaryButtonOnly, -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        __ygDragDrop - - private object -

        -
        -
        - Internal typeof flag -
        -
        - - - - -
        -

        _domRef - - private object -

        -
        -
        - Cached reference to the linked element -
        -
        - - - - -
        -

        available - - boolean -

        -
        -
        - The availabe property is false until the linked dom element is accessible. -
        -
        - - - - -
        -

        config - - object -

        -
        -
        - Configuration attributes passed into the constructor -
        -
        - - - - -
        -

        constrainX - - private boolean -

        -
        -
        - Set to true when horizontal contraints are applied -
        -
        - - - - -
        -

        constrainY - - private boolean -

        -
        -
        - Set to true when vertical contraints are applied -
        -
        - - - - -
        -

        deltaX - - private int -

        -
        -
        - The difference between the click position and the source element's location -
        -
        - - - - -
        -

        deltaY - - private int -

        -
        -
        - The difference between the click position and the source element's location -
        -
        - - - - -
        -

        dragElId - - private String -

        -
        -
        - The id of the element that will be dragged. By default this is same -as the linked element , but could be changed to another element. Ex: -YAHOO.util.DDProxy -
        -
        - - - - -
        -

        groups - - {string: string} -

        -
        -
        - The group defines a logical collection of DragDrop objects that are -related. Instances only get events when interacting with other -DragDrop object in the same group. This lets us define multiple -groups using a single DragDrop subclass if we want. -
        -
        - - - - -
        -

        handleElId - - private String -

        -
        -
        - the id of the element that initiates the drag operation. By default -this is the linked element, but could be changed to be a child of this -element. This lets us do things like only starting the drag when the -header element within the linked html element is clicked. -
        -
        - - - - -
        -

        hasOuterHandles - - boolean -

        -
        -
        - By default, drags can only be initiated if the mousedown occurs in the -region the linked element is. This is done in part to work around a -bug in some browsers that mis-report the mousedown if the previous -mouseup happened outside of the window. This property is set to true -if outer handles are defined. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        id - - String -

        -
        -
        - The id of the element associated with this object. This is what we -refer to as the "linked element" because the size and position of -this element is used to determine when the drag and drop objects have -interacted. -
        -
        - - - - -
        -

        invalidHandleClasses - - string[] -

        -
        -
        - An indexted array of css class names for elements that will be ignored -if clicked. -
        -
        - - - - -
        -

        invalidHandleIds - - {string: string} -

        -
        -
        - An associative array of ids for elements that will be ignored if clicked -
        -
        - - - - -
        -

        invalidHandleTypes - - {string: string} -

        -
        -
        - An associative array of HTML tags that will be ignored if clicked. -
        -
        - - - - -
        -

        locked - - private boolean -

        -
        -
        - Individual drag/drop instances can be locked. This will prevent -onmousedown start drag. -
        -
        - - - - -
        -

        maintainOffset - - boolean -

        -
        -
        - Maintain offsets when we resetconstraints. Set to true when you want -the position of the element relative to its parent to stay the same -when the page changes -
        -
        - - - - -
        -

        maxX - - private int -

        -
        -
        - The right constraint -
        -
        - - - - -
        -

        maxY - - private int -

        -
        -
        - The down constraint -
        -
        - - - - -
        -

        minX - - private int -

        -
        -
        - The left constraint -
        -
        - - - - -
        -

        minY - - private int -

        -
        -
        - The up constraint -
        -
        - - - - -
        -

        primaryButtonOnly - - boolean -

        -
        -
        - By default the drag and drop instance will only respond to the primary -button click (left button for a right-handed mouse). Set to true to -allow drag and drop to start with any mouse click that is propogated -by the browser -
        -
        - - - - -
        -

        startPageX - - private int -

        -
        -
        - The linked element's absolute X position at the time the drag was -started -
        -
        - - - - -
        -

        startPageY - - private int -

        -
        -
        - The linked element's absolute X position at the time the drag was -started -
        -
        - - - - -
        -

        xTicks - - int[] -

        -
        -
        - Array of pixel locations the element will snap to if we specified a -horizontal graduation/interval. This array is generated automatically -when you define a tick interval. -
        -
        - - - - -
        -

        yTicks - - int[] -

        -
        -
        - Array of pixel locations the element will snap to if we specified a -vertical graduation/interval. This array is generated automatically -when you define a tick interval. -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - addInvalidHandleClass

        -
        - - - - - void - addInvalidHandleClass - ( - - - cssClass - - - ) - - -
        - Lets you specify a css class of elements that will not initiate a drag -
        - -
        - -
        -
        Parameters:
        -
        - cssClass <string> - the class of the elements you wish to ignore -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addInvalidHandleId

        -
        - - - - - void - addInvalidHandleId - ( - - - id - - - ) - - -
        - Lets you to specify an element id for a child of a drag handle -that should not initiate a drag -
        - -
        - -
        -
        Parameters:
        -
        - id <string> - the element id of the element you wish to ignore -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addInvalidHandleType

        -
        - - - - - void - addInvalidHandleType - ( - - - tagName - - - ) - - -
        - Allows you to specify a tag name that should not start a drag operation -when clicked. This is designed to facilitate embedding links within a -drag handle that do something other than start the drag. -
        - -
        - -
        -
        Parameters:
        -
        - tagName <string> - the type of element to exclude -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addToGroup

        -
        - - - - - void - addToGroup - ( - - - sGroup - - - ) - - -
        - Add this instance to a group of related drag/drop objects. All -instances belong to at least one group, and can belong to as many -groups as needed. -
        - -
        - -
        -
        Parameters:
        -
        - sGroup <string> - the name of the group -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - applyConfig

        -
        - - - - - void - applyConfig - ( - ) - - -
        - Applies the configuration parameters that were passed into the constructor. -This is supposed to happen at each level through the inheritance chain. So -a DDProxy implentation will execute apply config on DDProxy, DD, and -DragDrop in order to get all of the parameters that are available in -each object. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - b4Drag

        -
        - - private - - - void - b4Drag - ( - ) - - -
        - Code that executes immediately before the onDrag event -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - b4DragDrop

        -
        - - private - - - void - b4DragDrop - ( - ) - - -
        - Code that executes immediately before the onDragDrop event -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - b4DragOut

        -
        - - private - - - void - b4DragOut - ( - ) - - -
        - Code that executes immediately before the onDragOut event -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - b4DragOver

        -
        - - private - - - void - b4DragOver - ( - ) - - -
        - Code that executes immediately before the onDragOver event -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - b4EndDrag

        -
        - - private - - - void - b4EndDrag - ( - ) - - -
        - Code that executes immediately before the endDrag event -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - b4MouseDown

        -
        - - private - - - void - b4MouseDown - ( - - - e - - - ) - - -
        - Code executed immediately before the onMouseDown event -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the mousedown event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - b4StartDrag

        -
        - - private - - - void - b4StartDrag - ( - ) - - -
        - Code that executes immediately before the startDrag event -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - clearConstraints

        -
        - - - - - void - clearConstraints - ( - ) - - -
        - Clears any constraints applied to this instance. Also clears ticks -since they can't exist independent of a constraint at this time. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - clearTicks

        -
        - - - - - void - clearTicks - ( - ) - - -
        - Clears any tick interval defined for this instance -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - endDrag

        -
        - - - - - void - endDrag - ( - - - e - - - ) - - -
        - Fired when we are done dragging the object -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the mouseup event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getDragEl

        -
        - - - - - HTMLElement - getDragEl - ( - ) - - -
        - Returns a reference to the actual element to drag. By default this is -the same as the html element, but it can be assigned to another -element. An example of this can be found in YAHOO.util.DDProxy -
        - -
        - - -
        -
        Returns: - - HTMLElement -
        -
        the html element
        -
        - -
        - -
        -
        -

        - getEl

        -
        - - - - - HTMLElement - getEl - ( - ) - - -
        - Returns a reference to the linked element -
        - -
        - - -
        -
        Returns: - - HTMLElement -
        -
        the html element
        -
        - -
        - -
        -
        -

        - getTargetCoord

        -
        - - private - - - void - getTargetCoord - ( - - - iPageX - - - , - iPageY - - - ) - - -
        - Finds the location the element should be placed if we want to move -it to where the mouse location less the click offset would place us. -
        - -
        - -
        -
        Parameters:
        -
        - iPageX <int> - the X coordinate of the click -
        -
        - iPageY <int> - the Y coordinate of the click -
        -
        - -
        -
        Returns: - - void -
        -
        an object that contains the coordinates (Object.x and Object.y)
        -
        - -
        - -
        -
        -

        - getTick

        -
        - - private - - - int - getTick - ( - - - val - - - , - tickArray - - - ) - - -
        - Normally the drag element is moved pixel by pixel, but we can specify -that it move a number of pixels at a time. This method resolves the -location when we have it set up like this. -
        - -
        - -
        -
        Parameters:
        -
        - val <int> - where we want to place the object -
        -
        - tickArray <int[]> - sorted array of valid points -
        -
        - -
        -
        Returns: - - int -
        -
        the closest tick
        -
        - -
        - -
        -
        -

        - handleMouseDown

        -
        - - private - - - void - handleMouseDown - ( - - - e - - - , - oDD - - - ) - - -
        - Fired when this object is clicked -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - -
        -
        - oDD <YAHOO.util.DragDrop> - the clicked dd object (this dd obj) -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - handleOnAvailable

        -
        - - private - - - void - handleOnAvailable - ( - ) - - -
        - Executed when the linked element is available -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - id - - - , - sGroup - - - , - config - - - ) - - -
        - Sets up the DragDrop object. Must be called in the constructor of any -YAHOO.util.DragDrop subclass -
        - -
        - -
        -
        Parameters:
        -
        - id <object> - the id of the linked element -
        -
        - sGroup <String> - the group of related items -
        -
        - config <object> - configuration attributes -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initTarget

        -
        - - - - - void - initTarget - ( - - - id - - - , - sGroup - - - , - config - - - ) - - -
        - Initializes Targeting functionality only... the object does not -get a mousedown handler. -
        - -
        - -
        -
        Parameters:
        -
        - id <object> - the id of the linked element -
        -
        - sGroup <String> - the group of related items -
        -
        - config <object> - configuration attributes -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - isLocked

        -
        - - - - - boolean - isLocked - ( - ) - - -
        - Returns true if this instance is locked, or the drag drop mgr is locked -(meaning that all drag/drop is disabled on the page.) -
        - -
        - - -
        -
        Returns: - - boolean -
        -
        true if this obj or all drag/drop is locked, else -false
        -
        - -
        - -
        -
        -

        - isTarget

        -
        - - - - - void - isTarget - ( - ) - - -
        - By default, all insances can be a drop target. This can be disabled by -setting isTarget to false. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - isValidHandleChild

        -
        - - - - - boolean - isValidHandleChild - ( - - - node - - - ) - - -
        - Checks the tag exclusion list to see if this click should be ignored -
        - -
        - -
        -
        Parameters:
        -
        - node <HTMLElement> - the HTMLElement to evaluate -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if this is a valid tag type, false if not
        -
        - -
        - -
        -
        -

        - lock

        -
        - - - - - void - lock - ( - ) - - -
        - Lock this instance -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onAvailable

        -
        - - - - - void - onAvailable - ( - ) - - -
        - Override the onAvailable method to do what is needed after the initial -position was determined. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onDrag

        -
        - - - - - void - onDrag - ( - - - e - - - ) - - -
        - Abstract method called during the onMouseMove event while dragging an -object. -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the mousemove event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onDragDrop

        -
        - - - - - void - onDragDrop - ( - - - e - - - , - id - - - ) - - -
        - Abstract method called when this item is dropped on another DragDrop -obj -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the mouseup event -
        -
        - id <String|DragDrop[]> - In POINT mode, the element -id this was dropped on. In INTERSECT mode, an array of dd items this -was dropped on. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onDragEnter

        -
        - - - - - void - onDragEnter - ( - - - e - - - , - id - - - ) - - -
        - Abstract method called when this element fist begins hovering over -another DragDrop obj -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the mousemove event -
        -
        - id <String|DragDrop[]> - In POINT mode, the element -id this is hovering over. In INTERSECT mode, an array of one or more -dragdrop items being hovered over. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onDragOut

        -
        - - - - - void - onDragOut - ( - - - e - - - , - id - - - ) - - -
        - Abstract method called when we are no longer hovering over an element -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the mousemove event -
        -
        - id <String|DragDrop[]> - In POINT mode, the element -id this was hovering over. In INTERSECT mode, an array of dd items -that the mouse is no longer over. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onDragOver

        -
        - - - - - void - onDragOver - ( - - - e - - - , - id - - - ) - - -
        - Abstract method called when this element is hovering over another -DragDrop obj -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the mousemove event -
        -
        - id <String|DragDrop[]> - In POINT mode, the element -id this is hovering over. In INTERSECT mode, an array of dd items -being hovered over. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onInvalidDrop

        -
        - - - - - void - onInvalidDrop - ( - - - e - - - ) - - -
        - Abstract method called when this item is dropped on an area with no -drop target -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the mouseup event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onMouseDown

        -
        - - - - - void - onMouseDown - ( - - - e - - - ) - - -
        - Event handler that fires when a drag/drop obj gets a mousedown -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the mousedown event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onMouseUp

        -
        - - - - - void - onMouseUp - ( - - - e - - - ) - - -
        - Event handler that fires when a drag/drop obj gets a mouseup -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the mouseup event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - padding

        -
        - - - - - void - padding - ( - ) - - -
        - The padding configured for this drag and drop object for calculating -the drop zone intersection with this object. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeFromGroup

        -
        - - - - - void - removeFromGroup - ( - - - sGroup - - - ) - - -
        - Remove's this instance from the supplied interaction group -
        - -
        - -
        -
        Parameters:
        -
        - sGroup <string> - The group to drop -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeInvalidHandleClass

        -
        - - - - - void - removeInvalidHandleClass - ( - - - cssClass - - - ) - - -
        - Unsets an invalid css class -
        - -
        - -
        -
        Parameters:
        -
        - cssClass <string> - the class of the element(s) you wish to -re-enable -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeInvalidHandleId

        -
        - - - - - void - removeInvalidHandleId - ( - - - id - - - ) - - -
        - Unsets an invalid handle id -
        - -
        - -
        -
        Parameters:
        -
        - id <string> - the id of the element to re-enable -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeInvalidHandleType

        -
        - - - - - void - removeInvalidHandleType - ( - - - tagName - - - ) - - -
        - Unsets an excluded tag name set by addInvalidHandleType -
        - -
        - -
        -
        Parameters:
        -
        - tagName <string> - the type of element to unexclude -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - resetConstraints

        -
        - - - - - void - resetConstraints - ( - - - maintainOffset - - - ) - - -
        - resetConstraints must be called if you manually reposition a dd element. -
        - -
        - -
        -
        Parameters:
        -
        - maintainOffset <boolean> - -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setDragElId

        -
        - - - - - void - setDragElId - ( - - - id - - - ) - - -
        - Allows you to specify that an element other than the linked element -will be moved with the cursor during a drag -
        - -
        - -
        -
        Parameters:
        -
        - id <string> - the id of the element that will be used to initiate the drag -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setHandleElId

        -
        - - - - - void - setHandleElId - ( - - - id - - - ) - - -
        - Allows you to specify a child of the linked element that should be -used to initiate the drag operation. An example of this would be if -you have a content div with text and links. Clicking anywhere in the -content area would normally start the drag operation. Use this method -to specify that an element inside of the content div is the element -that starts the drag operation. -
        - -
        - -
        -
        Parameters:
        -
        - id <string> - the id of the element that will be used to -initiate the drag. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setInitialPosition

        -
        - - private - - - void - setInitialPosition - ( - - - diffX - - - , - diffY - - - ) - - -
        - Stores the initial placement of the linked element. -
        - -
        - -
        -
        Parameters:
        -
        - diffX <int> - the X offset, default 0 -
        -
        - diffY <int> - the Y offset, default 0 -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setOuterHandleElId

        -
        - - - - - void - setOuterHandleElId - ( - - - id - - - ) - - -
        - Allows you to set an element outside of the linked element as a drag -handle -
        - -
        - -
        -
        Parameters:
        -
        - id <object> - the id of the element that will be used to initiate the drag -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setPadding

        -
        - - - - - void - setPadding - ( - - - iTop - - - , - iRight - - - , - iBot - - - , - iLeft - - - ) - - -
        - Configures the padding for the target zone in px. Effectively expands -(or reduces) the virtual object size for targeting calculations. -Supports css-style shorthand; if only one parameter is passed, all sides -will have that padding, and if only two are passed, the top and bottom -will have the first param, the left and right the second. -
        - -
        - -
        -
        Parameters:
        -
        - iTop <int> - Top pad -
        -
        - iRight <int> - Right pad -
        -
        - iBot <int> - Bot pad -
        -
        - iLeft <int> - Left pad -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setStartPosition

        -
        - - private - - - void - setStartPosition - ( - - - pos - - - ) - - -
        - Sets the start position of the element. This is set when the obj -is initialized, the reset when a drag is started. -
        - -
        - -
        -
        Parameters:
        -
        - pos <object> - current position (from previous lookup) -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setXConstraint

        -
        - - - - - void - setXConstraint - ( - - - iLeft - - - , - iRight - - - , - iTickSize - - - ) - - -
        - By default, the element can be dragged any place on the screen. Use -this method to limit the horizontal travel of the element. Pass in -0,0 for the parameters if you want to lock the drag to the y axis. -
        - -
        - -
        -
        Parameters:
        -
        - iLeft <int> - the number of pixels the element can move to the left -
        -
        - iRight <int> - the number of pixels the element can move to the -right -
        -
        - iTickSize <int> - optional parameter for specifying that the -element -should move iTickSize pixels at a time. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setXTicks

        -
        - - private - - - void - setXTicks - ( - ) - - -
        - Create the array of horizontal tick marks if an interval was specified -in setXConstraint(). -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setYConstraint

        -
        - - - - - void - setYConstraint - ( - - - iUp - - - , - iDown - - - , - iTickSize - - - ) - - -
        - By default, the element can be dragged any place on the screen. Set -this to limit the vertical travel of the element. Pass in 0,0 for the -parameters if you want to lock the drag to the x axis. -
        - -
        - -
        -
        Parameters:
        -
        - iUp <int> - the number of pixels the element can move up -
        -
        - iDown <int> - the number of pixels the element can move down -
        -
        - iTickSize <int> - optional parameter for specifying that the -element should move iTickSize pixels at a time. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setYTicks

        -
        - - private - - - void - setYTicks - ( - ) - - -
        - Create the array of vertical tick marks if an interval was specified in -setYConstraint(). -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - startDrag

        -
        - - - - - void - startDrag - ( - - - X - - - , - Y - - - ) - - -
        - Abstract method called after a drag/drop object is clicked -and the drag or mousedown time thresholds have beeen met. -
        - -
        - -
        -
        Parameters:
        -
        - X <int> - click location -
        -
        - Y <int> - click location -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - string - toString - ( - ) - - -
        - toString method -
        - -
        - - -
        -
        Returns: - - string -
        -
        string representation of the dd obj
        -
        - -
        - -
        -
        -

        - unlock

        -
        - - - - - void - unlock - ( - ) - - -
        - Unlock this instace -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - unreg

        -
        - - - - - void - unreg - ( - ) - - -
        - Remove all drag and drop hooks for this element -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.DragDropMgr.ElementWrapper.html b/www/extras/yui/docs/YAHOO.util.DragDropMgr.ElementWrapper.html deleted file mode 100644 index d12163041..000000000 --- a/www/extras/yui/docs/YAHOO.util.DragDropMgr.ElementWrapper.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - API: dragdrop YAHOO.util.DragDropMgr.ElementWrapper (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Drag and Drop  2.2.2

        -

        - Yahoo! UI Library - > dragdrop - > YAHOO.util.DragDropMgr.ElementWrapper - -

        -
        - -
        -
        -
        - - -

        - private - - - - Class YAHOO.util.DragDropMgr.ElementWrapper - - - - - - - -

        - - - - - -
        - Inner class for cached elements -
        - - -
        -

        Properties

        -
        -

        css - - object -

        -
        -
        - A reference to the style property -
        -
        - - - - -
        -

        el - - object -

        -
        -
        - The element -
        -
        - - - - -
        -

        id - - object -

        -
        -
        - The element id -
        -
        - - - - -
        - - -
        -
        - - - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.DragDropMgr.html b/www/extras/yui/docs/YAHOO.util.DragDropMgr.html deleted file mode 100644 index b53cce277..000000000 --- a/www/extras/yui/docs/YAHOO.util.DragDropMgr.html +++ /dev/null @@ -1,2773 +0,0 @@ - - - - API: dragdrop YAHOO.util.DragDropMgr (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Drag and Drop  2.2.2

        -

        - Yahoo! UI Library - > dragdrop - > YAHOO.util.DragDropMgr - -

        -
        - -
        -
        -
        - - -

        - - - static - - Class YAHOO.util.DragDropMgr - - - - - - - -

        - - - - - -
        - DragDropMgr is a singleton that tracks the element interaction for -all DragDrop items in the window. Generally, you will not call -this class directly, but it does have helper methods that could -be useful in your DragDrop implementations. -
        - - -
        -

        Properties

        -
        -

        _timeoutCount - - private static object -

        -
        -
        - Internal counter -
        -
        - - - - -
        -

        clickPixelThresh - - static int -

        -
        -
        - The number of pixels that the mouse needs to move after the -mousedown before the drag is initiated. Default=3; -
        -
        - - - - -
        -

        clickTimeout - - private static Object -

        -
        -
        - Timeout used for the click time threshold -
        -
        - - - - -
        -

        clickTimeThresh - - static int -

        -
        -
        - The number of milliseconds after the mousedown event to initiate the -drag if we don't get a mouseup event. Default=1000 -
        -
        - - - - -
        -

        deltaX - - private static int -

        -
        -
        - the X distance between the cursor and the object being dragged -
        -
        - - - - -
        -

        deltaY - - private static int -

        -
        -
        - the Y distance between the cursor and the object being dragged -
        -
        - - - - -
        -

        dragCurrent - - private static DragDrop -

        -
        -
        - the DragDrop object that is currently being dragged -
        -
        - - - - -
        -

        dragOvers - - private static Array -

        -
        -
        - the DragDrop object(s) that are being hovered over -
        -
        - - - - -
        -

        dragThreshMet - - private static boolean -

        -
        -
        - Flag that indicates that either the drag pixel threshold or the -mousdown time threshold has been met -
        -
        - - - - -
        -

        elementCache - - private static object -

        -
        -
        - A cache of DOM elements -
        -
        - - - - -
        -

        handleIds - - private static {string: string} -

        -
        -
        - Array of element ids defined as drag handles. Used to determine -if the element that generated the mousedown event is actually the -handle and not the html element itself. -
        -
        - - - - -
        -

        ids - - private static {string: string} -

        -
        -
        - Two dimensional Array of registered DragDrop objects. The first -dimension is the DragDrop item group, the second the DragDrop -object. -
        -
        - - - - -
        -

        initialized - - private static object -

        -
        -
        - Internal flag that is set to true when drag and drop has been -intialized -
        -
        - - - - -
        -

        interactionInfo - - static object -

        -
        -
        - Provides additional information about the the current set of -interactions. Can be accessed from the event handlers. It -contains the following properties: -out: onDragOut interactions -enter: onDragEnter interactions -over: onDragOver interactions -drop: onDragDrop interactions -point: The location of the cursor -draggedRegion: The location of dragged element at the time -of the interaction -sourceRegion: The location of the source elemtn at the time -of the interaction -validDrop: boolean -
        -
        - - - - -
        -

        INTERSECT - - static final int -

        -
        -
        - In intersect mode, drag and drop interaction is defined by the -cursor position or the amount of overlap of two or more drag and -drop objects. -
        -
        - - - - -
        -

        locationCache - - private static object -

        -
        -
        - Location cache that is set for all drag drop objects when a drag is -initiated, cleared when the drag is finished. -
        -
        - - - - -
        -

        locked - - private static object -

        -
        -
        - All drag and drop can be disabled. -
        -
        - - - - -
        -

        mode - - static int -

        -
        -
        - The current drag and drop mode. Default: POINT -
        -
        - - - - -
        -

        POINT - - static final int -

        -
        -
        - In point mode, drag and drop interaction is defined by the -location of the cursor during the drag/drop -
        -
        - - - - -
        -

        preventDefault - - static boolean -

        -
        -
        - Flag to determine if we should prevent the default behavior of the -events we define. By default this is true, but this can be set to -false if you need the default behavior (not recommended) -
        -
        - - - - -
        -

        startX - - private static int -

        -
        -
        - The X position of the mousedown event stored for later use when a -drag threshold is met. -
        -
        - - - - -
        -

        startY - - private static int -

        -
        -
        - The Y position of the mousedown event stored for later use when a -drag threshold is met. -
        -
        - - - - -
        -

        stopPropagation - - static boolean -

        -
        -
        - Flag to determine if we should stop the propagation of the events -we generate. This is true by default but you may want to set it to -false if the html element contains other features that require the -mouse click. -
        -
        - - - - -
        -

        STRICT_INTERSECT - - static final int -

        -
        -
        - In intersect mode, drag and drop interaction is defined only by the -overlap of two or more drag and drop objects. -
        -
        - - - - -
        -

        useCache - - static boolean -

        -
        -
        - Set useCache to false if you want to force object the lookup of each -drag and drop linked element constantly during a drag. -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - _addListeners

        -
        - - private - static - - void - _addListeners - ( - ) - - -
        - Trying to make the load order less important. Without this we get -an error if this file is loaded before the Event Utility. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _execOnAll

        -
        - - private - static - - void - _execOnAll - ( - ) - - -
        - Runs method on all drag and drop objects -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onLoad

        -
        - - private - static - - void - _onLoad - ( - ) - - -
        - Drag and drop initialization. Sets up the global event handlers -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onResize

        -
        - - private - static - - void - _onResize - ( - ) - - -
        - Reset constraints on all drag and drop objs -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onUnload

        -
        - - private - static - - void - _onUnload - ( - ) - - -
        - unload event handler -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _remove

        -
        - - private - static - - void - _remove - ( - ) - - -
        - Unregisters a drag and drop item. This is executed in -DragDrop.unreg, use that method instead of calling this directly. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - fireEvents

        -
        - - private - static - - void - fireEvents - ( - - - e - - - , - isDrop - - - ) - - -
        - Iterates over all of the DragDrop elements to find ones we are -hovering over or dropping on -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the event -
        -
        - isDrop <boolean> - is this a drop op or a mouseover op? -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getBestMatch

        -
        - - - static - - DragDrop - getBestMatch - ( - - - dds - - - ) - - -
        - Helper function for getting the best match from the list of drag -and drop objects returned by the drag and drop events when we are -in INTERSECT mode. It returns either the first object that the -cursor is over, or the object that has the greatest overlap with -the dragged element. -
        - -
        - -
        -
        Parameters:
        -
        - dds <DragDrop[]> - The array of drag and drop objects -targeted -
        -
        - -
        -
        Returns: - - DragDrop -
        -
        The best single match
        -
        - -
        - -
        -
        -

        - getClientHeight

        -
        - - - static - - int - getClientHeight - ( - ) - - -
        - Gets the client height -
        - -
        - - -
        -
        Returns: - - int -
        -
        client height in px
        -
        - -
        - Deprecated use YAHOO.util.Dom.getViewportHeight instead -
        -
        - -
        -
        -

        - getClientWidth

        -
        - - - static - - int - getClientWidth - ( - ) - - -
        - Gets the client width -
        - -
        - - -
        -
        Returns: - - int -
        -
        client width in px
        -
        - -
        - Deprecated use YAHOO.util.Dom.getViewportWidth instead -
        -
        - -
        -
        -

        - getCss

        -
        - - - static - - Object - getCss - ( - - - id - - - ) - - -
        - Returns the style property for the DOM element (i.e., -document.getElById(id).style) -
        - -
        - -
        -
        Parameters:
        -
        - id <String> - the id of the elment to get -
        -
        - -
        -
        Returns: - - Object -
        -
        The style property of the element
        -
        - -
        - Deprecated use YAHOO.util.Dom instead -
        -
        - -
        -
        -

        - getDDById

        -
        - - - static - - DragDrop - getDDById - ( - - - id - - - ) - - -
        - Returns the DragDrop instance for a given id -
        - -
        - -
        -
        Parameters:
        -
        - id <String> - the id of the DragDrop object -
        -
        - -
        -
        Returns: - - DragDrop -
        -
        the drag drop object, null if it is not found
        -
        - -
        - -
        -
        -

        - getElement

        -
        - - - static - - Object - getElement - ( - - - id - - - ) - - -
        - Returns the actual DOM element -
        - -
        - -
        -
        Parameters:
        -
        - id <String> - the id of the elment to get -
        -
        - -
        -
        Returns: - - Object -
        -
        The element
        -
        - -
        - Deprecated use YAHOO.util.Dom.get instead -
        -
        - -
        -
        -

        - getElWrapper

        -
        - - private - static - - YAHOO.util.DDM.ElementWrapper - getElWrapper - ( - - - id - - - ) - - -
        - Get the wrapper for the DOM element specified -
        - -
        - -
        -
        Parameters:
        -
        - id <String> - the id of the element to get -
        -
        - -
        -
        Returns: - - YAHOO.util.DDM.ElementWrapper -
        -
        the wrapped element
        -
        - -
        - Deprecated This wrapper isn't that useful -
        -
        - -
        -
        -

        - getLocation

        -
        - - - static - - YAHOO.util.Region - getLocation - ( - - - oDD - - - ) - - -
        - Returns a Region object containing the drag and drop element's position -and size, including the padding configured for it -
        - -
        - -
        -
        Parameters:
        -
        - oDD <DragDrop> - the drag and drop object to get the -location for -
        -
        - -
        -
        Returns: - - YAHOO.util.Region -
        -
        a Region object representing the total area -the element occupies, including any padding -the instance is configured for.
        -
        - -
        - -
        -
        -

        - getPosX

        -
        - - - static - - int - getPosX - ( - - - el - - - ) - - -
        - Returns the X position of an html element -
        - -
        - -
        -
        Parameters:
        -
        - el <object> - the element for which to get the position -
        -
        - -
        -
        Returns: - - int -
        -
        the X coordinate
        -
        - -
        - Deprecated use YAHOO.util.Dom.getX instead -
        -
        - -
        -
        -

        - getPosY

        -
        - - - static - - int - getPosY - ( - - - el - - - ) - - -
        - Returns the Y position of an html element -
        - -
        - -
        -
        Parameters:
        -
        - el <object> - the element for which to get the position -
        -
        - -
        -
        Returns: - - int -
        -
        the Y coordinate
        -
        - -
        - Deprecated use YAHOO.util.Dom.getY instead -
        -
        - -
        -
        -

        - getRelated

        -
        - - - static - - DragDrop[] - getRelated - ( - - - p_oDD - - - , - bTargetsOnly - - - ) - - -
        - Returns the drag and drop instances that are in all groups the -passed in instance belongs to. -
        - -
        - -
        -
        Parameters:
        -
        - p_oDD <DragDrop> - the obj to get related data for -
        -
        - bTargetsOnly <boolean> - if true, only return targetable objs -
        -
        - -
        -
        Returns: - - DragDrop[] -
        -
        the related instances
        -
        - -
        - -
        -
        -

        - getScroll

        -
        - - private - static - - void - getScroll - ( - ) - - -
        - Returns the current scroll position -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getScrollLeft

        -
        - - - static - - int - getScrollLeft - ( - ) - - -
        - Gets the scrollLeft -
        - -
        - - -
        -
        Returns: - - int -
        -
        the document's scrollTop
        -
        - -
        - -
        -
        -

        - getScrollTop

        -
        - - - static - - int - getScrollTop - ( - ) - - -
        - Gets the scrollTop -
        - -
        - - -
        -
        Returns: - - int -
        -
        the document's scrollTop
        -
        - -
        - -
        -
        -

        - getStyle

        -
        - - - static - - string - getStyle - ( - - - el - - - , - styleProp - - - ) - - -
        - Returns the specified element style property -
        - -
        - -
        -
        Parameters:
        -
        - el <HTMLElement> - the element -
        -
        - styleProp <string> - the style property -
        -
        - -
        -
        Returns: - - string -
        -
        The value of the style property
        -
        - -
        - Deprecated use YAHOO.util.Dom.getStyle -
        -
        - -
        -
        -

        - handleMouseDown

        -
        - - private - static - - void - handleMouseDown - ( - - - e - - - , - oDD - - - ) - - -
        - Fired after a registered DragDrop object gets the mousedown event. -Sets up the events required to track the object being dragged -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the event -
        -
        - oDD <object> - the DragDrop object being dragged -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - handleMouseMove

        -
        - - private - static - - void - handleMouseMove - ( - - - e - - - ) - - -
        - Internal function to handle the mousemove event. Will be invoked -from the context of the html element. -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - handleMouseUp

        -
        - - private - static - - void - handleMouseUp - ( - - - e - - - ) - - -
        - Internal function to handle the mouseup event. Will be invoked -from the context of the document. -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - handleWasClicked

        -
        - - - static - - void - handleWasClicked - ( - - - node - - - ) - - -
        - Recursively searches the immediate parent and all child nodes for -the handle element in order to determine wheter or not it was -clicked. -
        - -
        - -
        -
        Parameters:
        -
        - node <object> - the html element to inspect -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - private - static - - void - init - ( - ) - - -
        - Called the first time an element is registered. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - isDragDrop

        -
        - - - static - - boolean - isDragDrop - ( - - - id - - - ) - - -
        - Utility function to determine if a given element has been -registered as a drag drop item. -
        - -
        - -
        -
        Parameters:
        -
        - id <String> - the element id to check -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if this element is a DragDrop item, -false otherwise
        -
        - -
        - -
        -
        -

        - isHandle

        -
        - - - static - - boolean - isHandle - ( - - - id - - - ) - - -
        - Utility function to determine if a given element has been -registered as a drag drop handle for the given Drag Drop object. -
        - -
        - -
        -
        Parameters:
        -
        - id <String> - the element id to check -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if this element is a DragDrop handle, false -otherwise
        -
        - -
        - -
        -
        -

        - isLegalTarget

        -
        - - - static - - boolean - isLegalTarget - ( - - - the - - - - - ) - - -
        - Returns true if the specified dd target is a legal target for -the specifice drag obj -
        - -
        - -
        -
        Parameters:
        -
        - the <DragDrop> - drag obj -
        -
        - the <DragDrop> - target -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if the target is a legal target for the -dd obj
        -
        - -
        - -
        -
        -

        - isLocked

        -
        - - - static - - boolean - isLocked - ( - ) - - -
        - Is drag and drop locked? -
        - -
        - - -
        -
        Returns: - - boolean -
        -
        True if drag and drop is locked, false otherwise.
        -
        - -
        - -
        -
        -

        - isOverTarget

        -
        - - private - static - - boolean - isOverTarget - ( - - - pt - - - , - oTarget - - - , - intersect - - - , - pre-cached - - - ) - - -
        - Checks the cursor location to see if it over the target -
        - -
        - -
        -
        Parameters:
        -
        - pt <YAHOO.util.Point> - The point to evaluate -
        -
        - oTarget <DragDrop> - the DragDrop object we are inspecting -
        -
        - intersect <boolean> - true if we are in intersect mode -
        -
        - pre-cached <YAHOO.util.Region> - location of the dragged element -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if the mouse is over the target
        -
        - -
        - -
        -
        -

        - isTypeOfDD

        -
        - - - static - - boolean - isTypeOfDD - ( - - - the - - - ) - - -
        - My goal is to be able to transparently determine if an object is -typeof DragDrop, and the exact subclass of DragDrop. typeof -returns "object", oDD.constructor.toString() always returns -"DragDrop" and not the name of the subclass. So for now it just -evaluates a well-known variable in DragDrop. -
        - -
        - -
        -
        Parameters:
        -
        - the <Object> - object to evaluate -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if typeof oDD = DragDrop
        -
        - -
        - -
        -
        -

        - lock

        -
        - - - static - - void - lock - ( - ) - - -
        - Lock all drag and drop functionality -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - moveToEl

        -
        - - - static - - void - moveToEl - ( - - - moveEl - - - , - targetEl - - - ) - - -
        - Sets the x/y position of an element to the location of the -target element. -
        - -
        - -
        -
        Parameters:
        -
        - moveEl <HTMLElement> - The element to move -
        -
        - targetEl <HTMLElement> - The position reference element -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - numericSort

        -
        - - - static - - void - numericSort - ( - ) - - -
        - Numeric array sort function -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - refreshCache

        -
        - - - static - - void - refreshCache - ( - - - groups - - - ) - - -
        - Refreshes the cache of the top-left and bottom-right points of the -drag and drop objects in the specified group(s). This is in the -format that is stored in the drag and drop instance, so typical -usage is: - -YAHOO.util.DragDropMgr.refreshCache(ddinstance.groups); - -Alternatively: - -YAHOO.util.DragDropMgr.refreshCache({group1:true, group2:true}); - -
        - -
        - -
        -
        Parameters:
        -
        - groups <Object> - an associative array of groups to refresh -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - regDragDrop

        -
        - - - static - - void - regDragDrop - ( - - - oDD - - - , - sGroup - - - ) - - -
        - Each DragDrop instance must be registered with the DragDropMgr. -This is executed in DragDrop.init() -
        - -
        - -
        -
        Parameters:
        -
        - oDD <DragDrop> - the DragDrop object to register -
        -
        - sGroup <String> - the name of the group this element belongs to -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - regHandle

        -
        - - - static - - void - regHandle - ( - - - sDDId - - - , - sHandleId - - - ) - - -
        - Each DragDrop handle element must be registered. This is done -automatically when executing DragDrop.setHandleElId() -
        - -
        - -
        -
        Parameters:
        -
        - sDDId <String> - the DragDrop id this element is a handle for -
        -
        - sHandleId <String> - the id of the element that is the drag -handle -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeDDFromGroup

        -
        - - private - static - - void - removeDDFromGroup - ( - ) - - -
        - Removes the supplied dd instance from the supplied group. Executed -by DragDrop.removeFromGroup, so don't call this function directly. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - startDrag

        -
        - - - static - - void - startDrag - ( - - - x - - - , - y - - - ) - - -
        - Fired when either the drag pixel threshol or the mousedown hold -time threshold has been met. -
        - -
        - -
        -
        Parameters:
        -
        - x <int> - the X position of the original mousedown -
        -
        - y <int> - the Y position of the original mousedown -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - stopDrag

        -
        - - private - static - - void - stopDrag - ( - - - e - - - ) - - -
        - Internal function to clean up event handlers after the drag -operation is complete -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - stopEvent

        -
        - - - static - - void - stopEvent - ( - - - e - - - ) - - -
        - Utility to stop event propagation and event default, if these -features are turned on. -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the event as returned by this.getEvent() -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - swapNode

        -
        - - - static - - void - swapNode - ( - - - n1 - - - , - n2 - - - ) - - -
        - Swap two nodes. In IE, we use the native method, for others we -emulate the IE behavior -
        - -
        - -
        -
        Parameters:
        -
        - n1 <object> - the first node to swap -
        -
        - n2 <object> - the other node to swap -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - unlock

        -
        - - - static - - void - unlock - ( - ) - - -
        - Unlock all drag and drop functionality -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - unregAll

        -
        - - private - static - - void - unregAll - ( - ) - - -
        - Cleans up the drag and drop events and objects. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - verifyEl

        -
        - - - static - - boolean - verifyEl - ( - - - el - - - ) - - -
        - This checks to make sure an element exists and is in the DOM. The -main purpose is to handle cases where innerHTML is used to remove -drag and drop objects from the DOM. IE provides an 'unspecified -error' when trying to access the offsetParent of such an element -
        - -
        - -
        -
        Parameters:
        -
        - el <HTMLElement> - the element to check -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if the element looks usable
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.Easing.html b/www/extras/yui/docs/YAHOO.util.Easing.html deleted file mode 100644 index ba93d273d..000000000 --- a/www/extras/yui/docs/YAHOO.util.Easing.html +++ /dev/null @@ -1,1367 +0,0 @@ - - - - API: animation YAHOO.util.Easing (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        animation  2.2.2

        -

        - Yahoo! UI Library - > animation - > YAHOO.util.Easing - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.Easing - - - - - - - -

        - - - - - -
        - Singleton that determines how an animation proceeds from start to end. -
        - - - - -
        -

        Methods

        -
        -

        - backBoth

        -
        - - - - - Number - backBoth - ( - - - t - - - , - b - - - , - c - - - , - d - - - , - s - - - ) - - -
        - Backtracks slightly, then reverses direction, overshoots end, -then reverses and comes back to end. -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - s <Number> - Overshoot (optional) -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -

        - backIn

        -
        - - - - - Number - backIn - ( - - - t - - - , - b - - - , - c - - - , - d - - - , - s - - - ) - - -
        - Backtracks slightly, then reverses direction and moves to end. -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - s <Number> - Overshoot (optional) -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -

        - backOut

        -
        - - - - - Number - backOut - ( - - - t - - - , - b - - - , - c - - - , - d - - - , - s - - - ) - - -
        - Overshoots end, then reverses and comes back to end. -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - s <Number> - Overshoot (optional) -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -

        - bounceBoth

        -
        - - - - - Number - bounceBoth - ( - - - t - - - , - b - - - , - c - - - , - d - - - ) - - -
        - Bounces off start and end. -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -

        - bounceIn

        -
        - - - - - Number - bounceIn - ( - - - t - - - , - b - - - , - c - - - , - d - - - ) - - -
        - Bounce off of start. -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -

        - bounceOut

        -
        - - - - - Number - bounceOut - ( - - - t - - - , - b - - - , - c - - - , - d - - - ) - - -
        - Bounces off end. -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -

        - easeBoth

        -
        - - - - - Number - easeBoth - ( - - - t - - - , - b - - - , - c - - - , - d - - - ) - - -
        - Begins slowly and decelerates towards end. (quadratic) -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -

        - easeBothStrong

        -
        - - - - - Number - easeBothStrong - ( - - - t - - - , - b - - - , - c - - - , - d - - - ) - - -
        - Begins slowly and decelerates towards end. (quartic) -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -

        - easeIn

        -
        - - - - - Number - easeIn - ( - - - t - - - , - b - - - , - c - - - , - d - - - ) - - -
        - Begins slowly and accelerates towards end. (quadratic) -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -

        - easeInStrong

        -
        - - - - - Number - easeInStrong - ( - - - t - - - , - b - - - , - c - - - , - d - - - ) - - -
        - Begins slowly and accelerates towards end. (quartic) -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -

        - easeNone

        -
        - - - - - Number - easeNone - ( - - - t - - - , - b - - - , - c - - - , - d - - - ) - - -
        - Uniform speed between points. -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -

        - easeOut

        -
        - - - - - Number - easeOut - ( - - - t - - - , - b - - - , - c - - - , - d - - - ) - - -
        - Begins quickly and decelerates towards end. (quadratic) -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -

        - easeOutStrong

        -
        - - - - - Number - easeOutStrong - ( - - - t - - - , - b - - - , - c - - - , - d - - - ) - - -
        - Begins quickly and decelerates towards end. (quartic) -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -

        - elasticBoth

        -
        - - - - - Number - elasticBoth - ( - - - t - - - , - b - - - , - c - - - , - d - - - , - a - - - , - p - - - ) - - -
        - Snap both elastic effect. -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - a <Number> - Amplitude (optional) -
        -
        - p <Number> - Period (optional) -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -

        - elasticIn

        -
        - - - - - Number - elasticIn - ( - - - t - - - , - b - - - , - c - - - , - d - - - , - a - - - , - p - - - ) - - -
        - Snap in elastic effect. -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - a <Number> - Amplitude (optional) -
        -
        - p <Number> - Period (optional) -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -

        - elasticOut

        -
        - - - - - Number - elasticOut - ( - - - t - - - , - b - - - , - c - - - , - d - - - , - a - - - , - p - - - ) - - -
        - Snap out elastic effect. -
        - -
        - -
        -
        Parameters:
        -
        - t <Number> - Time value used to compute current value -
        -
        - b <Number> - Starting value -
        -
        - c <Number> - Delta between start and end values -
        -
        - d <Number> - Total length of animation -
        -
        - a <Number> - Amplitude (optional) -
        -
        - p <Number> - Period (optional) -
        -
        - -
        -
        Returns: - - Number -
        -
        The computed value for the current animation frame
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.Element.html b/www/extras/yui/docs/YAHOO.util.Element.html deleted file mode 100644 index dae64d792..000000000 --- a/www/extras/yui/docs/YAHOO.util.Element.html +++ /dev/null @@ -1,1438 +0,0 @@ - - - - API: element YAHOO.util.Element (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        element  2.2.2

        -

        - Yahoo! UI Library - > element - > YAHOO.util.Element - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.Element - - - - - - uses - - YAHOO.util.AttributeProvider - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.widget.Tab - YAHOO.widget.Button - YAHOO.widget.TabView - YAHOO.widget.ButtonGroup -
        -
        - - - -
        - Element provides an wrapper object to simplify adding -event listeners, using dom methods, and managing attributes. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.Element - - ( - - - - el - - , - map - ) - -
        -
        -
        Parameters:
        -
        - el - <HTMLElement | String> - - The html element that -represents the Element. -
        -
        - map - <Object> - - A key-value map of initial config names and values -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        DOM_EVENTS - - Object -

        -
        -
        - Dom events supported by the Element instance. -
        -
        - - - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.util.AttributeProvider:

        -
        - - - _configs - -
        -
        -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Methods

        -
        -

        - _registerHTMLAttr

        -
        - - private - - - void - _registerHTMLAttr - ( - - - element - - - , - key - - - , - map - - - ) - - -
        - Sets the value of the property and fires beforeChange and change events. -
        - -
        - -
        -
        Parameters:
        -
        - element <YAHOO.util.Element> - The Element instance to -register the config to. -
        -
        - key <String> - The name of the config to register -
        -
        - map <Object> - A key-value map of the config's params -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addClass

        -
        - - - - - void - addClass - ( - - - className - - - ) - - -
        - Wrapper for Dom method. -
        - -
        - -
        -
        Parameters:
        -
        - className <String> - The className to add -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addListener

        -
        - - - - - void - addListener - ( - - - type - - - , - fn - - - , - obj - - - , - scope - - - ) - - -
        - Adds a listener for the given event. These may be DOM or -customEvent listeners. Any event that is fired via fireEvent -can be listened for. All handlers receive an event object. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The name of the event to listen for -
        -
        - fn <Function> - The handler to call when the event fires -
        -
        - obj <Any> - A variable to pass to the handler -
        -
        - scope <Object> - The object to use for the scope of the handler -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - appendChild

        -
        - - - - - void - appendChild - ( - - - deep - - - ) - - -
        - Wrapper for HTMLElement method. -
        - -
        - -
        -
        Parameters:
        -
        - deep <Boolean> - Whether or not to do a deep clone -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - appendTo

        -
        - - - - - void - appendTo - ( - - - parentNode - - - , - before - - - ) - - -
        - Appends the HTMLElement into either the supplied parentNode. -
        - -
        - -
        -
        Parameters:
        -
        - parentNode <HTMLElement | Element> - The node to append to -
        -
        - before <HTMLElement | Element> - An optional node to insert before -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - fireQueue

        -
        - - - - - void - fireQueue - ( - ) - - -
        - Apply any queued set calls. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getElementsByClassName

        -
        - - - - - Array - getElementsByClassName - ( - - - className - - - , - tag - - - ) - - -
        - Wrapper for Dom method. -
        - -
        - -
        -
        Parameters:
        -
        - className <String> - The className to collect -
        -
        - tag <String> - (optional) The tag to use in -conjunction with class name -
        -
        - -
        -
        Returns: - - Array -
        -
        Array of HTMLElements
        -
        - -
        - -
        -
        -

        - getElementsByTagName

        -
        - - - - - void - getElementsByTagName - ( - - - tag - - - ) - - -
        - Wrapper for HTMLElement method. -
        - -
        - -
        -
        Parameters:
        -
        - tag <String> - The tagName to collect -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getStyle

        -
        - - - - - String - getStyle - ( - - - property - - - ) - - -
        - Wrapper for Dom method. -
        - -
        - -
        -
        Parameters:
        -
        - property <String> - The style property to retrieve -
        -
        - -
        -
        Returns: - - String -
        -
        The current value of the property
        -
        - -
        - -
        -
        -

        - hasChildNodes

        -
        - - - - - Boolean - hasChildNodes - ( - ) - - -
        - Wrapper for HTMLElement method. -
        - -
        - - -
        -
        Returns: - - Boolean -
        -
        Whether or not the element has childNodes
        -
        - -
        - -
        -
        -

        - hasClass

        -
        - - - - - Boolean - hasClass - ( - - - className - - - ) - - -
        - Wrapper for Dom method. -
        - -
        - -
        -
        Parameters:
        -
        - className <String> - The className to add -
        -
        - -
        -
        Returns: - - Boolean -
        -
        Whether or not the element has the class name
        -
        - -
        - -
        -
        -

        - initAttributes

        -
        - - - - - void - initAttributes - ( - - - map - - - ) - - -
        - Registers Element specific attributes. -
        - -
        - -
        -
        Parameters:
        -
        - map <Object> - A key-value map of initial attribute configs -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - insertBefore

        -
        - - - - - void - insertBefore - ( - - - element - - - , - before - - - ) - - -
        - Wrapper for HTMLElement method. -
        - -
        - -
        -
        Parameters:
        -
        - element <HTMLElement> - The HTMLElement to insert -
        -
        - before <HTMLElement> - The HTMLElement to insert -the element before. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - on

        -
        - - - - - void - on - ( - - - type - - - , - fn - - - , - obj - - - , - scope - - - ) - - -
        - Alias for addListener -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The name of the event to listen for -
        -
        - fn <Function> - The function call when the event fires -
        -
        - obj <Any> - A variable to pass to the handler -
        -
        - scope <Object> - The object to use for the scope of the handler -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeChild

        -
        - - - - - void - removeChild - ( - - - child - - - ) - - -
        - Wrapper for HTMLElement method. -
        - -
        - -
        -
        Parameters:
        -
        - child <HTMLElement> - The HTMLElement to remove -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeClass

        -
        - - - - - void - removeClass - ( - - - className - - - ) - - -
        - Wrapper for Dom method. -
        - -
        - -
        -
        Parameters:
        -
        - className <String> - The className to remove -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeListener

        -
        - - - - - void - removeListener - ( - - - type - - - , - fn - - - ) - - -
        - Remove an event listener -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The name of the event to listen for -
        -
        - fn <Function> - The function call when the event fires -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - replaceChild

        -
        - - - - - void - replaceChild - ( - - - newNode - - - , - oldNode - - - ) - - -
        - Wrapper for HTMLElement method. -
        - -
        - -
        -
        Parameters:
        -
        - newNode <HTMLElement> - The HTMLElement to insert -
        -
        - oldNode <HTMLElement> - The HTMLElement to replace -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - replaceClass

        -
        - - - - - void - replaceClass - ( - - - oldClassName - - - , - newClassName - - - ) - - -
        - Wrapper for Dom method. -
        - -
        - -
        -
        Parameters:
        -
        - oldClassName <String> - The className to replace -
        -
        - newClassName <String> - The className to add -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setStyle

        -
        - - - - - void - setStyle - ( - - - property - - - , - value - - - ) - - -
        - Wrapper for Dom method. -
        - -
        - -
        -
        Parameters:
        -
        - property <String> - The style property to set -
        -
        - value <String> - The value to apply to the style property -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Events

        -
        -

        - available

        -
        - - - - - available - - ( - ) - - - -
        - Fires when the Element's HTMLElement can be retrieved by Id. -

        See: Element.addListener

        -

        Event fields:
        -<String> type available
        -<HTMLElement> -target the HTMLElement bound to this Element instance
        -

        Usage:
        -var handler = function(e) {var target = e.target};
        -myTabs.addListener('available', handler);

        -
        - -
        - - - - -
        - -
        -
        -

        - contentReady

        -
        - - - - - contentReady - - ( - ) - - - -
        - Fires when the Element's HTMLElement subtree is rendered. -

        See: Element.addListener

        -

        Event fields:
        -<String> type contentReady
        -<HTMLElement> -target the HTMLElement bound to this Element instance
        -

        Usage:
        -var handler = function(e) {var target = e.target};
        -myTabs.addListener('contentReady', handler);

        -
        - -
        - - - - -
        - -
        -
        -
        -
        - - - -
        -

        Configuration Attributes

        -
        -

        element - - HTMLElement -

        -
        -
        - The HTMLElement the Element instance refers to. -
        -
        - - - -
        - -
        -
        - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.Event.html b/www/extras/yui/docs/YAHOO.util.Event.html deleted file mode 100644 index ca7b41fe8..000000000 --- a/www/extras/yui/docs/YAHOO.util.Event.html +++ /dev/null @@ -1,2529 +0,0 @@ - - - - API: event YAHOO.util.Event (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Event Utility  2.2.2

        -

        - Yahoo! UI Library - > event - > YAHOO.util.Event - -

        -
        - -
        -
        -
        - - -

        - - - static - - Class YAHOO.util.Event - - - - - - - -

        - - - - - -
        - The event utility provides functions to add and remove event listeners, -event cleansing. It also tries to automatically remove listeners it -registers during the unload event. -
        - - -
        -

        Properties

        -
        -

        _interval - - private object -

        -
        -
        - poll handle -
        -
        - - - - -
        -

        ADJ_SCOPE - - static final int -

        -
        -
        - Adjusted scope, either the element we are registering the event -on or the custom object passed in by the listener, int constant -
        -
        - - - - -
        -

        counter - - private static object -

        -
        -
        - Counter for auto id generation -
        -
        - - - - -
        -

        DOMReady - - private static boolean -

        -
        -
        - True when the document is initially usable -
        -
        - - - - -
        -

        EL - - static final int -

        -
        -
        - Element to bind, int constant -
        -
        - - - - -
        -

        elCache -DOM element cache - - private static object -

        -
        -
        - -
        -
        - - - -
        - Deprecated: Elements are not cached any longer -
        - -
        -

        FN - - static final int -

        -
        -
        - Function to execute, int constant -
        -
        - - - - -
        -

        isIE - - private static object -

        -
        -
        - IE detection needed to properly calculate pageX and pageY. -capabilities checking didn't seem to work because another -browser that does not provide the properties have the values -calculated in a different manner than IE. -
        -
        - - - - -
        -

        isSafari - - private static object -

        -
        -
        - Safari detection is necessary to work around the preventDefault -bug that makes it so you can't cancel a href click from the -handler. Since this function has been used outside of this -utility, it was changed to detect all KHTML browser to be more -friendly towards the non-Safari browsers that share the engine. -Internally, the preventDefault bug detection now uses the -webkit property. -
        -
        - - - -
        - Deprecated:   -
        - -
        -

        lastError - - Error -

        -
        -
        - addListener/removeListener can throw errors in unexpected scenarios. -These errors are suppressed, the method returns false, and this property -is set -
        -
        - - - - -
        -

        legacyEvents - - private static object -

        -
        -
        - Cache of DOM0 event handlers to work around issues with DOM2 events -in Safari -
        -
        - - - - -
        -

        legacyHandlers - - private static object -

        -
        -
        - Listener stack for DOM0 events -
        -
        - - - - -
        -

        legacyMap - - private static object -

        -
        -
        - Lookup table for legacy events -
        -
        - - - - -
        -

        listeners - - private static array -

        -
        -
        - Cache of wrapped listeners -
        -
        - - - - -
        -

        loadComplete - - private static boolean -

        -
        -
        - True after the onload event has fired -
        -
        - - - - -
        -

        OBJ - - static final int -

        -
        -
        - Object passed in by the user that will be returned as a -parameter to the callback, int constant -
        -
        - - - - -
        -

        onAvailStack - - private static object -

        -
        -
        - onAvailable listeners -
        -
        - - - - -
        -

        POLL_INTERVAL - - static final int -

        -
        -
        - The poll interval in milliseconds -
        -
        - - - - -
        -

        POLL_RETRYS - - static final int -

        -
        -
        - The number of times we should look for elements that are not -in the DOM at the time the event is requested after the document -has been loaded. The default is 200@amp;50 ms, so it will poll -for 10 seconds or until all outstanding handlers are bound -(whichever comes first). -
        -
        - - - - -
        -

        retryCount - - private static object -

        -
        -
        - The number of times to poll after window.onload. This number is -increased if additional late-bound handlers are requested after -the page load. -
        -
        - - - - -
        -

        TYPE - - static final int -

        -
        -
        - Type of event, int constant -
        -
        - - - - -
        -

        unloadListeners - - private static array -

        -
        -
        - User-defined unload function that will be fired before all events -are detached -
        -
        - - - - -
        -

        webkit - - static string -

        -
        -
        - If WebKit is detected, we keep track of the version number of -the engine. The webkit property will contain a string with -the webkit version number if webkit is detected, null -otherwise. -Safari 1.3.2 (312.6): 312.8.1 <-- currently the latest -available on Mac OSX 10.3. -Safari 2.0.2: 416 <-- hasOwnProperty introduced -Safari 2.0.4: 418 <-- preventDefault fixed (I believe) -Safari 2.0.4 (419.3): 418.9.1 <-- current release -http://developer.apple.com/internet/safari/uamatrix.html -
        -
        - - - - -
        -

        WFN - - static final int -

        -
        -
        - Function wrapped for scope correction and cleanup, int constant -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - _getCacheIndex

        -
        - - private - static - - void - _getCacheIndex - ( - ) - - -
        - Locating the saved event handler data by function ref -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _getScroll

        -
        - - private - static - - void - _getScroll - ( - ) - - -
        - Returns the scrollTop and scrollLeft. Used to calculate the -pageX and pageY in Internet Explorer -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _getScrollLeft

        -
        - - private - static - - void - _getScrollLeft - ( - ) - - -
        - Returns scrollLeft -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _getScrollTop

        -
        - - private - static - - void - _getScrollTop - ( - ) - - -
        - Returns scrollTop -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _isValidCollection

        -
        - - private - static - - boolean - _isValidCollection - ( - - - o - - - ) - - -
        - We want to be able to use getElementsByTagName as a collection -to attach a group of events to. Unfortunately, different -browsers return different types of collections. This function -tests to determine if the object is array-like. It will also -fail if the object is an array, but is empty. -
        - -
        - -
        -
        Parameters:
        -
        - o <object> - the object to test -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if the object is array-like and populated
        -
        - -
        - -
        -
        -

        - _load

        -
        - - private - static - - void - _load - ( - ) - - -
        - hook up any deferred listeners -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _ready

        -
        - - private - static - - void - _ready - ( - ) - - -
        - Fires the DOMReady event listeners the first time the document is -usable. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _simpleAdd

        -
        - - private - static - - void - _simpleAdd - ( - - - el - - - , - sType - - - , - fn - - - , - capture - - - ) - - -
        - Adds a DOM event directly without the caching, cleanup, scope adj, etc -
        - -
        - -
        -
        Parameters:
        -
        - el <HTMLElement> - the element to bind the handler to -
        -
        - sType <string> - the type of event handler -
        -
        - fn <function> - the callback to invoke -
        -
        - capture <boolen> - capture or bubble phase -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _simpleRemove

        -
        - - private - static - - void - _simpleRemove - ( - - - el - - - , - sType - - - , - fn - - - , - capture - - - ) - - -
        - Basic remove listener -
        - -
        - -
        -
        Parameters:
        -
        - el <HTMLElement> - the element to bind the handler to -
        -
        - sType <string> - the type of event handler -
        -
        - fn <function> - the callback to invoke -
        -
        - capture <boolen> - capture or bubble phase -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _tryPreloadAttach

        -
        - - private - static - - void - _tryPreloadAttach - ( - ) - - -
        - Polling function that runs before the onload event fires, -attempting to attach to DOM Nodes as soon as they are -available -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _unload

        -
        - - private - static - - void - _unload - ( - ) - - -
        - Removes all listeners registered by pe.event. Called -automatically during the unload event. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addListener

        -
        - - - static - - boolean - addListener - ( - - - el - - - , - sType - - - , - fn - - - , - obj - - - , - override - - - ) - - -
        - Appends an event handler -
        - -
        - -
        -
        Parameters:
        -
        - el <Object> - The html element to assign the -event to -
        -
        - sType <String> - The type of event to append -
        -
        - fn <Function> - The method the event invokes -
        -
        - obj <Object> - An arbitrary object that will be -passed as a parameter to the handler -
        -
        - override <boolean> - If true, the obj passed in becomes -the execution scope of the listener -
        -
        - -
        -
        Returns: - - boolean -
        -
        True if the action was successful or defered, -false if one or more of the elements -could not have the listener attached, -or if the operation throws an exception.
        -
        - -
        - -
        -
        -

        - clearCache

        -
        - - private - static - - void - clearCache - ( - ) - - -
        - Clears the element cache -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Elements are not cached any longer -
        -
        - -
        -
        -

        - fireLegacyEvent

        -
        - - private - static - - void - fireLegacyEvent - ( - ) - - -
        - When using legacy events, the handler is routed to this object -so we can fire our custom listener stack. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - generateId

        -
        - - - static - - string - generateId - ( - - - el - - - ) - - -
        - Generates an unique ID for the element if it does not already -have one. -
        - -
        - -
        -
        Parameters:
        -
        - el <object> - the element to create the id for -
        -
        - -
        -
        Returns: - - string -
        -
        the resulting id of the element
        -
        - -
        - -
        -
        -

        - getCharCode

        -
        - - - static - - int - getCharCode - ( - - - ev - - - ) - - -
        - Returns the charcode for an event -
        - -
        - -
        -
        Parameters:
        -
        - ev <Event> - the event -
        -
        - -
        -
        Returns: - - int -
        -
        the event's charCode
        -
        - -
        - -
        -
        -

        - getEl

        -
        - - private - static - - void - getEl - ( - ) - - -
        - We cache elements bound by id because when the unload event -fires, we can no longer use document.getElementById -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Elements are not cached any longer -
        -
        - -
        -
        -

        - getEvent

        -
        - - - static - - Event - getEvent - ( - - - e - - - ) - - -
        - Finds the event in the window object, the caller's arguments, or -in the arguments of another method in the callstack. This is -executed automatically for events registered through the event -manager, so the implementer should not normally need to execute -this function at all. -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the event parameter from the handler -
        -
        - -
        -
        Returns: - - Event -
        -
        the event
        -
        - -
        - -
        -
        -

        - getLegacyIndex

        -
        - - private - static - - void - getLegacyIndex - ( - ) - - -
        - Returns the legacy event index that matches the supplied -signature -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getListeners

        -
        - - - static - - Object - getListeners - ( - - - el - - - , - sType - - - ) - - -
        - Returns all listeners attached to the given element via addListener. -Optionally, you can specify a specific type of event to return. -
        - -
        - -
        -
        Parameters:
        -
        - el <HTMLElement> - the element to inspect -
        -
        - sType <string> - optional type of listener to return. If -left out, all listeners will be returned -
        -
        - -
        -
        Returns: - - Object -
        -
        the listener. Contains the following fields: -  type: (string) the type of event -  fn: (function) the callback supplied to addListener -  obj: (object) the custom object supplied to addListener -  adjust: (boolean) whether or not to adjust the default scope -  index: (int) its position in the Event util listener cache
        -
        - -
        - -
        -
        -

        - getPageX

        -
        - - - static - - int - getPageX - ( - - - ev - - - ) - - -
        - Returns the event's pageX -
        - -
        - -
        -
        Parameters:
        -
        - ev <Event> - the event -
        -
        - -
        -
        Returns: - - int -
        -
        the event's pageX
        -
        - -
        - -
        -
        -

        - getPageY

        -
        - - - static - - int - getPageY - ( - - - ev - - - ) - - -
        - Returns the event's pageY -
        - -
        - -
        -
        Parameters:
        -
        - ev <Event> - the event -
        -
        - -
        -
        Returns: - - int -
        -
        the event's pageY
        -
        - -
        - -
        -
        -

        - getRelatedTarget

        -
        - - - static - - HTMLElement - getRelatedTarget - ( - - - ev - - - ) - - -
        - Returns the event's related target -
        - -
        - -
        -
        Parameters:
        -
        - ev <Event> - the event -
        -
        - -
        -
        Returns: - - HTMLElement -
        -
        the event's relatedTarget
        -
        - -
        - -
        -
        -

        - getTarget

        -
        - - - static - - HTMLElement - getTarget - ( - - - ev - - - , - resolveTextNode - - - ) - - -
        - Returns the event's target element -
        - -
        - -
        -
        Parameters:
        -
        - ev <Event> - the event -
        -
        - resolveTextNode <boolean> - when set to true the target's -parent will be returned if the target is a -text node. @deprecated, the text node is -now resolved automatically -
        -
        - -
        -
        Returns: - - HTMLElement -
        -
        the event's target
        -
        - -
        - -
        -
        -

        - getTime

        -
        - - - static - - Date - getTime - ( - - - ev - - - ) - - -
        - Returns the time of the event. If the time is not included, the -event is modified using the current time. -
        - -
        - -
        -
        Parameters:
        -
        - ev <Event> - the event -
        -
        - -
        -
        Returns: - - Date -
        -
        the time of the event
        -
        - -
        - -
        -
        -

        - getXY

        -
        - - - static - - [x, y] - getXY - ( - - - ev - - - ) - - -
        - Returns the pageX and pageY properties as an indexed array. -
        - -
        - -
        -
        Parameters:
        -
        - ev <Event> - the event -
        -
        - -
        -
        Returns: - - [x, y] -
        -
        the pageX and pageY properties of the event
        -
        - -
        - -
        -
        -

        - on

        -
        - - - static - - void - on - ( - ) - - -
        - YAHOO.util.Event.on is an alias for addListener -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onAvailable

        -
        - - - static - - void - onAvailable - ( - - - p_id - - - , - p_fn - - - , - p_obj - - - , - p_override - - - ) - - -
        - Executes the supplied callback when the item with the supplied -id is found. This is meant to be used to execute behavior as -soon as possible as the page loads. If you use this after the -initial page load it will poll for a fixed time for the element. -The number of times it will poll and the frequency are -configurable. By default it will poll for 10 seconds. -
        - -
        - -
        -
        Parameters:
        -
        - p_id <string> - the id of the element to look for. -
        -
        - p_fn <function> - what to execute when the element is found. -
        -
        - p_obj <object> - an optional object to be passed back as -a parameter to p_fn. -
        -
        - p_override <boolean> - If set to true, p_fn will execute -in the scope of p_obj -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onContentReady

        -
        - - - static - - void - onContentReady - ( - - - p_id - - - , - p_fn - - - , - p_obj - - - , - p_override - - - ) - - -
        - Works the same way as onAvailable, but additionally checks the -state of sibling elements to determine if the content of the -available element is safe to modify. -
        - -
        - -
        -
        Parameters:
        -
        - p_id <string> - the id of the element to look for. -
        -
        - p_fn <function> - what to execute when the element is ready. -
        -
        - p_obj <object> - an optional object to be passed back as -a parameter to p_fn. -
        -
        - p_override <boolean> - If set to true, p_fn will execute -in the scope of p_obj -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onDOMReady

        -
        - - - static - - void - onDOMReady - ( - - - p_fn - - - , - p_obj - - - , - p_scope - - - ) - - -
        - Executes the supplied callback when the DOM is first usable. -
        - -
        - -
        -
        Parameters:
        -
        - p_fn <function> - what to execute when the element is found. -
        -
        - p_obj <object> - an optional object to be passed back as -a parameter to p_fn. -
        -
        - p_scope <boolean> - If set to true, p_fn will execute -in the scope of p_obj, if set to an object it -will execute in the scope of that object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - preventDefault

        -
        - - - static - - void - preventDefault - ( - - - ev - - - ) - - -
        - Prevents the default behavior of the event -
        - -
        - -
        -
        Parameters:
        -
        - ev <Event> - the event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - purgeElement

        -
        - - - static - - void - purgeElement - ( - - - el - - - , - recurse - - - , - sType - - - ) - - -
        - Removes all listeners attached to the given element via addListener. -Optionally, the node's children can also be purged. -Optionally, you can specify a specific type of event to remove. -
        - -
        - -
        -
        Parameters:
        -
        - el <HTMLElement> - the element to purge -
        -
        - recurse <boolean> - recursively purge this element's children -as well. Use with caution. -
        -
        - sType <string> - optional type of listener to purge. If -left out, all listeners will be removed -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - regCE

        -
        - - private - - - void - regCE - ( - ) - - -
        - Used by old versions of CustomEvent, restored for backwards -compatibility -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeListener

        -
        - - - static - - boolean - removeListener - ( - - - el - - - , - sType - - - , - fn - - - ) - - -
        - Removes an event handler -
        - -
        - -
        -
        Parameters:
        -
        - el <Object> - the html element or the id of the element to -assign the event to. -
        -
        - sType <String> - the type of event to remove. -
        -
        - fn <Function> - the method the event invokes. If fn is -undefined, then all event handlers for the type of event are -removed. -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if the unbind was successful, false -otherwise.
        -
        - -
        - -
        -
        -

        - resolveTextNode

        -
        - - - static - - HTMLElement - resolveTextNode - ( - - - node - - - ) - - -
        - In some cases, some browsers will return a text node inside -the actual element that was targeted. This normalizes the -return value for getTarget and getRelatedTarget. -
        - -
        - -
        -
        Parameters:
        -
        - node <HTMLElement> - node to resolve -
        -
        - -
        -
        Returns: - - HTMLElement -
        -
        the normized node
        -
        - -
        - -
        -
        -

        - startInterval

        -
        - - private - static - - void - startInterval - ( - ) - - -
        - -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - stopEvent

        -
        - - - static - - void - stopEvent - ( - - - ev - - - ) - - -
        - Convenience method for stopPropagation + preventDefault -
        - -
        - -
        -
        Parameters:
        -
        - ev <Event> - the event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - stopPropagation

        -
        - - - static - - void - stopPropagation - ( - - - ev - - - ) - - -
        - Stops event propagation -
        - -
        - -
        -
        Parameters:
        -
        - ev <Event> - the event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - useLegacyEvent

        -
        - - private - static - - void - useLegacyEvent - ( - ) - - -
        - Logic that determines when we should automatically use legacy -events instead of DOM2 events. Currently this is limited to old -Safari browsers with a broken preventDefault -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Events

        -
        -

        - DOMReadyEvent

        -
        - - - - - DOMReadyEvent - - ( - ) - - - -
        - Custom event the fires when the dom is initially usable -
        - -
        - - - - -
        - -
        -
        -
        -
        - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.EventProvider.html b/www/extras/yui/docs/YAHOO.util.EventProvider.html deleted file mode 100644 index fafa562a3..000000000 --- a/www/extras/yui/docs/YAHOO.util.EventProvider.html +++ /dev/null @@ -1,578 +0,0 @@ - - - - API: event YAHOO.util.EventProvider (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Event Utility  2.2.2

        -

        - Yahoo! UI Library - > event - > YAHOO.util.EventProvider - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.EventProvider - - - - - - - -

        - - - - - -
        - EventProvider is designed to be used with YAHOO.augment to wrap -CustomEvents in an interface that allows events to be subscribed to -and fired by name. This makes it possible for implementing code to -subscribe to an event that either has not been created yet, or will -not be created at all. -
        - - -
        -

        Properties

        -
        -

        __yui_events - - private Object[] -

        -
        -
        - Private storage of custom events -
        -
        - - - - -
        -

        __yui_subscribers - - private Object[] -

        -
        -
        - Private storage of custom event subscribers -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - createEvent

        -
        - - - - - CustomEvent - createEvent - ( - - - p_type - - - , - p_config - - - ) - - -
        - Creates a new custom event of the specified type. If a custom event -by that name already exists, it will not be re-created. In either -case the custom event is returned. -
        - -
        - -
        -
        Parameters:
        -
        - p_type <string> - the type, or name of the event -
        -
        - p_config <object> - optional config params. Valid properties are: -
          -
        • -scope: defines the default execution scope. If not defined -the default scope will be this instance. -
        • -
        • -silent: if true, the custom event will not generate log messages. -This is false by default. -
        • -
        • -onSubscribeCallback: specifies a callback to execute when the -event has a new subscriber. This will fire immediately for -each queued subscriber if any exist prior to the creation of -the event. -
        • -
        -
        -
        - -
        -
        Returns: - - CustomEvent -
        -
        the custom event
        -
        - -
        - -
        -
        -

        - fireEvent

        -
        - - - - - boolean - fireEvent - ( - - - p_type - - - , - arguments - - - ) - - -
        - Fire a custom event by name. The callback functions will be executed -from the scope specified when the event was created, and with the -following parameters: -
          -
        • The first argument fire() was executed with
        • -
        • The custom object (if any) that was passed into the subscribe() -method
        • -
        -
        - -
        - -
        -
        Parameters:
        -
        - p_type <string> - the type, or name of the event -
        -
        - arguments <Object*> - an arbitrary set of parameters to pass to -the handler. -
        -
        - -
        -
        Returns: - - boolean -
        -
        the return value from CustomEvent.fire, or null if -the custom event does not exist.
        -
        - -
        - -
        -
        -

        - hasEvent

        -
        - - - - - void - hasEvent - ( - - - type - - - ) - - -
        - Returns true if the custom event of the provided type has been created -with createEvent. -
        - -
        - -
        -
        Parameters:
        -
        - type <string> - the type, or name of the event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - subscribe

        -
        - - - - - void - subscribe - ( - - - p_type - - - , - p_fn - - - , - p_obj - - - - - , - p_override - - - ) - - -
        - Subscribe to a CustomEvent by event type -
        - -
        - -
        -
        Parameters:
        -
        - p_type <string> - the type, or name of the event -
        -
        - p_fn <function> - the function to exectute when the event fires -
        -
        - p_obj <object> - -
        -
        - p_obj <Object> - An object to be passed along when the event -fires -
        -
        - p_override <boolean> - If true, the obj passed in becomes the -execution scope of the listener -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - unsubscribe

        -
        - - - - - boolean - unsubscribe - ( - - - p_type - - - , - p_fn - - - , - p_obj - - - ) - - -
        - Unsubscribes one or more listeners the from the specified event -
        - -
        - -
        -
        Parameters:
        -
        - p_type <string> - The type, or name of the event -
        -
        - p_fn <Function> - The subscribed function to unsubscribe, if not -supplied, all subscribers will be removed. -
        -
        - p_obj <Object> - The custom object passed to subscribe. This is -optional, but if supplied will be used to -disambiguate multiple listeners that are the same -(e.g., you subscribe many object using a function -that lives on the prototype) -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if the subscriber was found and detached.
        -
        - -
        - -
        -
        -

        - unsubscribeAll

        -
        - - - - - void - unsubscribeAll - ( - - - p_type - - - ) - - -
        - Removes all listeners from the specified event -
        - -
        - -
        -
        Parameters:
        -
        - p_type <string> - The type, or name of the event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.History.html b/www/extras/yui/docs/YAHOO.util.History.html deleted file mode 100644 index baf448de8..000000000 --- a/www/extras/yui/docs/YAHOO.util.History.html +++ /dev/null @@ -1,978 +0,0 @@ - - - - API: history YAHOO.util.History (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Browser History Manager  2.2.2

        -

        - Yahoo! UI Library - > history - > YAHOO.util.History - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.History - - - - - - - -

        - - - - - -
        - The History class provides the ability to use the back/forward navigation -buttons in a DHTML application. It also allows a DHTML application to -be bookmarked in a specific state. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.History - - ( - ) - -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _bhmReady - - private boolean -

        -
        -
        - Flag used to tell whether the Browser History Manager is ready. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        _browser - - private string -

        -
        -
        - String identifying which browser we are in. -Different code is run depending on which browser you are using. -
        -
        - - -
        - Default Value: "unknown" -
        - - -
        -

        _fqstates - - private array -

        -
        -
        - List of fully qualified states. This is used only by Safari. -
        -
        - - -
        - Default Value: [] -
        - - -
        -

        _iframe - - private HTMLIFrameElement -

        -
        -
        - Our hidden IFrame used to store the browsing history. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        _initialized - - private boolean -

        -
        -
        - Flag used to tell whether YAHOO.util.History.initialize has been called. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        _modules - - private array -

        -
        -
        - List of registered modules. -
        -
        - - -
        - Default Value: [] -
        - - -
        -

        _storageField - - private HTMLInputElement|HTMLTextAreaElement -

        -
        -
        - INPUT field (with type="hidden" or type="text") or TEXTAREA. -This field keeps the value of the initial state, current state -the list of all states across pages within a single browser session. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        _storageFieldReady - - private boolean -

        -
        -
        - Flag used to tell whether the storage field is ready to be used. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        _ua - - private string -

        -
        -
        - User agent string used for browser detection. -
        -
        - - -
        - Default Value: null -
        - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - _checkIframeLoaded

        -
        - - private - - - void - _checkIframeLoaded - ( - ) - - -
        - Periodically checks whether our internal IFrame is ready to be used. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _getHash

        -
        - - private - - - string - _getHash - ( - ) - - -
        - location.hash is a bit buggy on Opera. I have seen instances where -navigating the history using the back/forward buttons, and hence -changing the URL, would not change location.hash. That's ok, the -implementation of an equivalent is trivial. -
        - -
        - - -
        -
        Returns: - - string -
        -
        The hash portion of the document's location
        -
        - -
        - -
        -
        -

        - _handleFQStateChange

        -
        - - private - - - void - _handleFQStateChange - ( - - - fqstate - - - ) - - -
        - Sets the new currentState attribute of all modules depending on the new -fully qualified state. Also notifies the modules which current state has -changed. -
        - -
        - -
        -
        Parameters:
        -
        - fqstate <string> - Fully qualified state -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _initialize

        -
        - - private - - - void - _initialize - ( - ) - - -
        - Finish up the initialization of the Browser History Manager. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _storeStates

        -
        - - private - - - void - _storeStates - ( - ) - - -
        - Stores all the registered modules' initial state and current state. -On Safari, we also store all the fully qualified states visited by -the application within a single browser session. The storage takes -place in the form field specified during initialization. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _trim

        -
        - - private - - - string - _trim - ( - - - str - - - ) - - -
        - Trims a string. -
        - -
        - -
        -
        Parameters:
        -
        - str <string> - The string to be trimmed. -
        -
        - -
        -
        Returns: - - string -
        -
        The trimmed string
        -
        - -
        - -
        -
        -

        - getBookmarkedState

        -
        - - - - - string - getBookmarkedState - ( - - - module - - - ) - - -
        - Returns the state of a module according to the URL fragment -identifier. This method is useful to initialize your modules -if your application was bookmarked from a particular state. -
        - -
        - -
        -
        Parameters:
        -
        - module <string> - Non-empty string representing your module. -
        -
        - -
        -
        Returns: - - string -
        -
        The bookmarked state of the specified module.
        -
        - -
        - -
        -
        -

        - getCurrentState

        -
        - - - - - string - getCurrentState - ( - - - module - - - ) - - -
        - Returns the current state of the specified module. -
        - -
        - -
        -
        Parameters:
        -
        - module <string> - Non-empty string representing your module. -
        -
        - -
        -
        Returns: - - string -
        -
        The current state of the specified module.
        -
        - -
        - -
        -
        -

        - getQueryStringParameter

        -
        - - - - - string - getQueryStringParameter - ( - - - paramName - - - , - queryString - - - ) - - -
        - Returns the value of the specified query string parameter. -This method is not used internally by the Browser History Manager. -However, it is provided here as a helper since many applications -using the Browser History Manager will want to read the value of -url parameters to initialize themselves. -
        - -
        - -
        -
        Parameters:
        -
        - paramName <string> - Name of the parameter we want to look up. -
        -
        - queryString <string> - Optional URL to look at. If not specified, -this method uses the URL in the address bar. -
        -
        - -
        -
        Returns: - - string -
        -
        The value of the specified parameter, or null.
        -
        - -
        - -
        -
        -

        - initialize

        -
        - - - - - void - initialize - ( - - - iframeTarget - - - ) - - -
        - Initializes the Browser History Manager. Call this method -from a script block located right after the opening body tag. -
        - -
        - -
        -
        Parameters:
        -
        - iframeTarget <string> - Optional - Path to an existing -HTML document accessible from the same domain. If not -specified, defaults to "blank.html". This is only useful -if you use https. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - navigate

        -
        - - - - - boolean - navigate - ( - - - module - - - , - state - - - ) - - -
        - Call this method when you want to store a new entry in the browser's history. -
        - -
        - -
        -
        Parameters:
        -
        - module <string> - Non-empty string representing your module. -
        -
        - state <string> - String representing the new state of the specified module. -
        -
        - -
        -
        Returns: - - boolean -
        -
        Indicates whether the new state was successfully added to the history.
        -
        - -
        - -
        -
        -

        - register

        -
        - - - - - void - register - ( - - - module - - - , - initialState - - - , - onStateChange - - - , - obj - - - , - override - - - ) - - -
        - Registers a new module. -
        - -
        - -
        -
        Parameters:
        -
        - module <string> - Non-empty string uniquely identifying the -module you wish to register. -
        -
        - initialState <string> - The initial state of the specified -module corresponding to its earliest history entry. -
        -
        - onStateChange <function> - Callback called when the -state of the specified module has changed. -
        -
        - obj <object> - An arbitrary object that will be passed as a -parameter to the handler. -
        -
        - override <boolean> - If true, the obj passed in becomes the -execution scope of the listener. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Events

        -
        -

        - onLoadEvent

        -
        - - - - - onLoadEvent - - ( - ) - - - -
        - Fired when the Browser History Manager is ready. -
        - -
        - - - - -
        - -
        -
        -
        -
        - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.Motion.html b/www/extras/yui/docs/YAHOO.util.Motion.html deleted file mode 100644 index e3606083d..000000000 --- a/www/extras/yui/docs/YAHOO.util.Motion.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - API: animation YAHOO.util.Motion (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        animation  2.2.2

        -

        - Yahoo! UI Library - > animation - > YAHOO.util.Motion - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.Motion - - - extends YAHOO.util.Anim - - - - - - -

        - - - - - -
        - Anim subclass for moving elements along a path defined by the "points" -member of "attributes". All "points" are arrays with x, y coordinates. -

        Usage: var myAnim = new YAHOO.util.Motion(el, { points: { to: [800, 800] } }, 1, YAHOO.util.Easing.easeOut);

        -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.Motion - - ( - - - - el - - , - attributes - - , - duration - - , - method - ) - -
        -
        -
        Parameters:
        -
        - el - <String | HTMLElement> - - Reference to the element that will be animated -
        -
        - attributes - <Object> - - The attribute(s) to be animated. -Each attribute is an object with at minimum a "to" or "by" member defined. -Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). -All attribute names use camelCase. -
        -
        - duration - <Number> - - (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based -
        -
        - method - <Function> - - (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) -
        -
        - - -
        -
        -
        -
        - - -
        -

        Properties inherited from YAHOO.util.Anim:

        - -
        - - - - - - -
        -

        Events inherited from YAHOO.util.Anim:

        -
        - - - onComplete, - onStart, - onTween - -
        -
        - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.Point.html b/www/extras/yui/docs/YAHOO.util.Point.html deleted file mode 100644 index 0a2728269..000000000 --- a/www/extras/yui/docs/YAHOO.util.Point.html +++ /dev/null @@ -1,250 +0,0 @@ - - - - API: dom YAHOO.util.Point (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        dom  2.2.2

        -

        - Yahoo! UI Library - > dom - > YAHOO.util.Point - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.Point - - - extends YAHOO.util.Region - - - - - - -

        - - - - - -
        - A point is a region that is special in that it represents a single point on -the grid. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.Point - - ( - - - - x - - , - y - ) - -
        -
        -
        Parameters:
        -
        - x - <Int> - - The X position of the point -
        -
        - y - <Int> - - The Y position of the point -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        x - - Int -

        -
        -
        - The X position of the point, which is also the right, left and index zero (for Dom.getXY symmetry) -
        -
        - - - - -
        -

        y - - Int -

        -
        -
        - The Y position of the point, which is also the top, bottom and index one (for Dom.getXY symmetry) -
        -
        - - - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.util.Region:

        -
        - - - 0, - 1, - bottom, - left, - right, - top - -
        -
        - - -
        -

        Methods inherited from YAHOO.util.Region:

        -
        - - - contains, - getArea, - intersect, - toString, - union - -
        -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.Region.html b/www/extras/yui/docs/YAHOO.util.Region.html deleted file mode 100644 index e294951b7..000000000 --- a/www/extras/yui/docs/YAHOO.util.Region.html +++ /dev/null @@ -1,581 +0,0 @@ - - - - API: dom YAHOO.util.Region (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        dom  2.2.2

        -

        - Yahoo! UI Library - > dom - > YAHOO.util.Region - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.Region - - - - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.util.Point -
        -
        - - - -
        - A region is a representation of an object on a grid. It is defined -by the top, right, bottom, left extents, so is rectangular by default. If -other shapes are required, this class could be extended to support it. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.Region - - ( - - - - t - - , - r - - , - b - - , - l - ) - -
        -
        -
        Parameters:
        -
        - t - <Int> - - the top extent -
        -
        - r - <Int> - - the right extent -
        -
        - b - <Int> - - the bottom extent -
        -
        - l - <Int> - - the left extent -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        0 - - Int -

        -
        -
        - The region's left extent as index, for symmetry with set/getXY -
        -
        - - - - -
        -

        1 - - Int -

        -
        -
        - The region's top extent as index, for symmetry with set/getXY -
        -
        - - - - -
        -

        bottom - - Int -

        -
        -
        - The region's bottom extent -
        -
        - - - - -
        -

        left - - Int -

        -
        -
        - The region's left extent -
        -
        - - - - -
        -

        right - - int -

        -
        -
        - The region's right extent -
        -
        - - - - -
        -

        top - - Int -

        -
        -
        - The region's top extent -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - contains

        -
        - - - - - Boolean - contains - ( - - - region - - - ) - - -
        - Returns true if this region contains the region passed in -
        - -
        - -
        -
        Parameters:
        -
        - region <Region> - The region to evaluate -
        -
        - -
        -
        Returns: - - Boolean -
        -
        True if the region is contained with this region, -else false
        -
        - -
        - -
        -
        -

        - getArea

        -
        - - - - - Int - getArea - ( - ) - - -
        - Returns the area of the region -
        - -
        - - -
        -
        Returns: - - Int -
        -
        the region's area
        -
        - -
        - -
        -
        -

        - getRegion

        -
        - - - static - - Region - getRegion - ( - - - el - - - ) - - -
        - Returns a region that is occupied by the DOM element -
        - -
        - -
        -
        Parameters:
        -
        - el <HTMLElement> - The element -
        -
        - -
        -
        Returns: - - Region -
        -
        The region that the element occupies
        -
        - -
        - -
        -
        -

        - intersect

        -
        - - - - - Region - intersect - ( - - - region - - - ) - - -
        - Returns the region where the passed in region overlaps with this one -
        - -
        - -
        -
        Parameters:
        -
        - region <Region> - The region that intersects -
        -
        - -
        -
        Returns: - - Region -
        -
        The overlap region, or null if there is no overlap
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - void - toString - ( - ) - - -
        - toString -
        - -
        - - -
        -
        Returns: - - void -
        -
        string the region properties
        -
        - -
        - -
        -
        -

        - union

        -
        - - - - - Region - union - ( - - - region - - - ) - - -
        - Returns the region representing the smallest region that can contain both -the passed in region and this region. -
        - -
        - -
        -
        Parameters:
        -
        - region <Region> - The region that to create the union with -
        -
        - -
        -
        Returns: - - Region -
        -
        The union region
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.Scroll.html b/www/extras/yui/docs/YAHOO.util.Scroll.html deleted file mode 100644 index 9ce99fbb2..000000000 --- a/www/extras/yui/docs/YAHOO.util.Scroll.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - API: animation YAHOO.util.Scroll (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        animation  2.2.2

        -

        - Yahoo! UI Library - > animation - > YAHOO.util.Scroll - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.Scroll - - - extends YAHOO.util.Anim - - - - - - -

        - - - - - -
        - Anim subclass for scrolling elements to a position defined by the "scroll" -member of "attributes". All "scroll" members are arrays with x, y scroll positions. -

        Usage: var myAnim = new YAHOO.util.Scroll(el, { scroll: { to: [0, 800] } }, 1, YAHOO.util.Easing.easeOut);

        -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.Scroll - - ( - - - - el - - , - attributes - - , - duration - - , - method - ) - -
        -
        -
        Parameters:
        -
        - el - <String or HTMLElement> - - Reference to the element that will be animated -
        -
        - attributes - <Object> - - The attribute(s) to be animated. -Each attribute is an object with at minimum a "to" or "by" member defined. -Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). -All attribute names use camelCase. -
        -
        - duration - <Number> - - (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based -
        -
        - method - <Function> - - (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) -
        -
        - - -
        -
        -
        -
        - - -
        -

        Properties inherited from YAHOO.util.Anim:

        - -
        - - - - - - -
        -

        Events inherited from YAHOO.util.Anim:

        -
        - - - onComplete, - onStart, - onTween - -
        -
        - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.util.Subscriber.html b/www/extras/yui/docs/YAHOO.util.Subscriber.html deleted file mode 100644 index 2bdaa80e9..000000000 --- a/www/extras/yui/docs/YAHOO.util.Subscriber.html +++ /dev/null @@ -1,406 +0,0 @@ - - - - API: event YAHOO.util.Subscriber (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Event Utility  2.2.2

        -

        - Yahoo! UI Library - > event - > YAHOO.util.Subscriber - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.util.Subscriber - - - - - - - -

        - - - - - -
        - Stores the subscriber information to be used when the event fires. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.util.Subscriber - - ( - - - - fn - - , - obj - - , - override - ) - -
        -
        -
        Parameters:
        -
        - fn - <Function> - - The function to execute -
        -
        - obj - <Object> - - An object to be passed along when the event fires -
        -
        - override - <boolean> - - If true, the obj passed in becomes the execution -scope of the listener -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        fn - - function -

        -
        -
        - The callback that will be execute when the event fires -
        -
        - - - - -
        -

        obj - - object -

        -
        -
        - An optional custom object that will passed to the callback when -the event fires -
        -
        - - - - -
        -

        override - - boolean|object -

        -
        -
        - The default execution scope for the event listener is defined when the -event is created (usually the object which contains the event). -By setting override to true, the execution scope becomes the custom -object passed in by the subscriber. If override is an object, that -object becomes the scope. -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - contains

        -
        - - - - - boolean - contains - ( - - - fn - - - , - obj - - - ) - - -
        - Returns true if the fn and obj match this objects properties. -Used by the unsubscribe method to match the right subscriber. -
        - -
        - -
        -
        Parameters:
        -
        - fn <Function> - the function to execute -
        -
        - obj <Object> - an object to be passed along when the event fires -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if the supplied arguments match this -subscriber's signature.
        -
        - -
        - -
        -
        -

        - getScope

        -
        - - - - - void - getScope - ( - - - defaultScope - - - ) - - -
        - Returns the execution scope for this listener. If override was set to true -the custom obj will be the scope. If override is an object, that is the -scope, otherwise the default scope will be used. -
        - -
        - -
        -
        Parameters:
        -
        - defaultScope <Object> - the scope to use if this listener does not -override it. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - void - toString - ( - ) - - -
        - -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.AutoComplete.html b/www/extras/yui/docs/YAHOO.widget.AutoComplete.html deleted file mode 100644 index cdc2d77b8..000000000 --- a/www/extras/yui/docs/YAHOO.widget.AutoComplete.html +++ /dev/null @@ -1,3938 +0,0 @@ - - - - API: autocomplete YAHOO.widget.AutoComplete (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        AutoComplete Widget  2.2.2

        -

        - Yahoo! UI Library - > autocomplete - > YAHOO.widget.AutoComplete - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.AutoComplete - - - - - - - -

        - - - - - -
        - The AutoComplete class provides the customizable functionality of a plug-and-play DHTML -auto completion widget. Some key features: -
          -
        • Navigate with up/down arrow keys and/or mouse to pick a selection
        • -
        • The drop down container can "roll down" or "fly out" via configurable -animation
        • -
        • UI look-and-feel customizable through CSS, including container -attributes, borders, position, fonts, etc
        • -
        -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.AutoComplete - - ( - - - - elInput - - - , - elContainer - - - , - oDataSource - - , - oConfigs - ) - -
        -
        -
        Parameters:
        -
        - elInput - <HTMLElement> - - DOM element reference of an input field. -
        -
        - elInput - <String> - - String ID of an input field. -
        -
        - elContainer - <HTMLElement> - - DOM element reference of an existing DIV. -
        -
        - elContainer - <String> - - String ID of an existing DIV. -
        -
        - oDataSource - <YAHOO.widget.DataSource> - - DataSource instance. -
        -
        - oConfigs - <Object> - - (optional) Object literal of configuration params. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _aListItems - - private HTMLElement[] -

        -
        -
        - Array of <li> elements references that contain query results within the -results container. -
        -
        - - - - -
        -

        _bContainerOpen - - private Boolean -

        -
        -
        - Whether or not the results container is currently open. -
        -
        - - - - -
        -

        _bFocused - - private Boolean -

        -
        -
        - Whether or not the input field is currently in focus. If query results come back -but the user has already moved on, do not proceed with auto complete behavior. -
        -
        - - - - -
        -

        _bItemSelected - - private Boolean -

        -
        -
        - Whether or not an item has been selected since the container was populated -with results. Reset to false by _populateList, and set to true when item is -selected. -
        -
        - - - - -
        -

        _bOverContainer - - private Boolean -

        -
        -
        - Whether or not the mouse is currently over the results -container. This is necessary in order to prevent clicks on container items -from being text input field blur events. -
        -
        - - - - -
        -

        _iFrameSrc - - private String -

        -
        -
        - Src to iFrame used when useIFrame = true. Supports implementations over SSL -as well. -
        -
        - - - - -
        -

        _maxResultsDisplayed - - private Number -

        -
        -
        - Internal count of <li> elements displayed and hidden in results container. -
        -
        - - - - -
        -

        _nDelayID - - private Number -

        -
        -
        - Delay timeout ID. -
        -
        - - - - -
        -

        _nDisplayedItems - - private Number -

        -
        -
        - Number of <li> elements currently displayed in results container. -
        -
        - - - - -
        -

        _nIndex - - private Number -

        -
        -
        - Internal class variable to index multiple AutoComplete instances. -
        -
        - - -
        - Default Value: 0 -
        - - -
        -

        _nKeyCode - - private Number -

        -
        -
        - Key code of the last key pressed in textbox. -
        -
        - - - - -
        -

        _oAnim - - private Boolean -

        -
        -
        - Animation instance for container expand/collapse. -
        -
        - - - - -
        -

        _oContainer - - private HTMLElement -

        -
        -
        - Container DOM element. -
        -
        - - - - -
        -

        _oCurItem - - private HTMLElement -

        -
        -
        - Pointer to the currently highlighted <li> element in the container. -
        -
        - - - - -
        -

        _oTextbox - - private HTMLElement -

        -
        -
        - Text input field DOM element. -
        -
        - - - - -
        -

        _queryInterval - - private Object -

        -
        -
        - For users typing via certain IMEs, queries must be triggered by intervals, -since key events yet supported across all browsers for all IMEs. -
        -
        - - - - -
        -

        _sCurQuery - - private String -

        -
        -
        - Current query string -
        -
        - - - - -
        -

        _sName - - private String -

        -
        -
        - Name of AutoComplete instance. -
        -
        - - - - -
        -

        _sSavedQuery - - private String -

        -
        -
        - Past queries this session (for saving delimited queries). -
        -
        - - - - -
        -

        allowBrowserAutocomplete - - Boolean -

        -
        -
        - Whether or not to allow browsers to cache user-typed input in the input -field. Disabling this feature will prevent the widget from setting the -autocomplete="off" on the input field. When autocomplete="off" -and users click the back button after form submission, user-typed input can -be prefilled by the browser from its cache. This caching of user input may -not be desired for sensitive data, such as credit card numbers, in which -case, implementers should consider setting allowBrowserAutocomplete to false. -
        -
        - - -
        - Default Value: true -
        - - -
        -

        alwaysShowContainer - - Boolean -

        -
        -
        - Whether or not the results container should always be displayed. -Enabling this feature displays the container when the widget is instantiated -and prevents the toggling of the container to a collapsed state. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        animHoriz - - Boolean -

        -
        -
        - Whether or not to animate the expansion/collapse of the results container in the -horizontal direction. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        animSpeed - - Number -

        -
        -
        - Speed of container expand/collapse animation, in seconds.. -
        -
        - - -
        - Default Value: 0.3 -
        - - -
        -

        animVert - - Boolean -

        -
        -
        - Whether or not to animate the expansion/collapse of the results container in the -vertical direction. -
        -
        - - -
        - Default Value: true -
        - - -
        -

        autoHighlight - - Boolean -

        -
        -
        - Whether or not the first item in results container should be automatically highlighted -on expand. -
        -
        - - -
        - Default Value: true -
        - - -
        -

        dataSource - - YAHOO.widget.DataSource -

        -
        -
        - The DataSource object that encapsulates the data used for auto completion. -This object should be an inherited object from YAHOO.widget.DataSource. -
        -
        - - - - -
        -

        delimChar - - String | String[] -

        -
        -
        - Query delimiter. A single character separator for multiple delimited -selections. Multiple delimiter characteres may be defined as an array of -strings. A null value or empty string indicates that query results cannot -be delimited. This feature is not recommended if you need forceSelection to -be true. -
        -
        - - - - -
        -

        forceSelection - - Boolean -

        -
        -
        - Whether or not to force the user's selection to match one of the query -results. Enabling this feature essentially transforms the input field into a -<select> field. This feature is not recommended with delimiter character(s) -defined. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        highlightClassName - - String -

        -
        -
        - Class name of a highlighted item within results container. -
        -
        - - -
        - Default Value: "yui-ac-highlight" -
        - - -
        -

        maxResultsDisplayed - - Number -

        -
        -
        - Maximum number of results to display in results container. -
        -
        - - -
        - Default Value: 10 -
        - - -
        -

        minQueryLength - - Number -

        -
        -
        - Number of characters that must be entered before querying for results. A negative value -effectively turns off the widget. A value of 0 allows queries of null or empty string -values. -
        -
        - - -
        - Default Value: 1 -
        - - -
        -

        prehighlightClassName - - String -

        -
        -
        - Class name of a pre-highlighted item within results container. -
        -
        - - - - -
        -

        queryDelay - - Number -

        -
        -
        - Number of seconds to delay before submitting a query request. If a query -request is received before a previous one has completed its delay, the -previous request is cancelled and the new request is set to the delay. -
        -
        - - -
        - Default Value: 0.5 -
        - - -
        -

        typeAhead - - Boolean -

        -
        -
        - Whether or not the input field should be automatically updated -with the first query result as the user types, auto-selecting the substring -that the user has not typed. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        useIFrame - - Boolean -

        -
        -
        - Whether or not to use an iFrame to layer over Windows form elements in -IE. Set to true only when the results container will be on top of a -<select> field in IE and thus exposed to the IE z-index bug (i.e., -5.5 < IE < 7). -
        -
        - - -
        - Default Value: false -
        - - -
        -

        useShadow - - Boolean -

        -
        -
        - Whether or not the results container should have a shadow. -
        -
        - - -
        - Default Value: false -
        - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - __initProps

        -
        - - private - - - void - __initProps - ( - ) - - -
        - Updates and validates latest public config properties. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _cancelIntervalDetection

        -
        - - private - - - void - _cancelIntervalDetection - ( - - - oSelf - - - ) - - -
        - Cancels text input detection by intervals. -
        - -
        - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _clearSelection

        -
        - - private - - - void - _clearSelection - ( - ) - - -
        - When forceSelection is true and the user attempts -leave the text input box without selecting an item from the query results, -the user selection is cleared. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _enableIntervalDetection

        -
        - - private - - - void - _enableIntervalDetection - ( - ) - - -
        - Enables query triggers based on text input detection by intervals (rather -than by key events). -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _initContainer

        -
        - - private - - - void - _initContainer - ( - ) - - -
        - Initializes the results container once at object creation -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _initContainerHelpers

        -
        - - private - - - void - _initContainerHelpers - ( - ) - - -
        - Initializes the results container helpers if they are enabled and do -not exist -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _initList

        -
        - - private - - - void - _initList - ( - ) - - -
        - Clears out contents of container body and creates up to -YAHOO.widget.AutoComplete#maxResultsDisplayed <li> elements in an -<ul> element. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _initListItem

        -
        - - private - - - void - _initListItem - ( - - - oItem - - - , - nItemIndex - - - ) - - -
        - Initializes each <li> element in the container list. -
        - -
        - -
        -
        Parameters:
        -
        - oItem <HTMLElement> - The <li> DOM element. -
        -
        - nItemIndex <Number> - The index of the element. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _isIgnoreKey

        -
        - - private - - - Boolean - _isIgnoreKey - ( - - - nKeycode - - - ) - - -
        - Whether or not key is functional or should be ignored. Note that the right -arrow key is NOT an ignored key since it triggers queries for certain intl -charsets. -
        - -
        - -
        -
        Parameters:
        -
        - nKeycode <Number> - Code of key pressed. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        True if key should be ignored, false otherwise.
        -
        - -
        - -
        -
        -

        - _jumpSelection

        -
        - - private - - - void - _jumpSelection - ( - ) - - -
        - For values updated by type-ahead, the right arrow key jumps to the end -of the textbox, otherwise the container is closed. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _moveSelection

        -
        - - private - - - void - _moveSelection - ( - - - nKeyCode - - - ) - - -
        - Triggered by up and down arrow keys, changes the current highlighted -<li> element item. Scrolls container if necessary. -
        - -
        - -
        -
        Parameters:
        -
        - nKeyCode <Number> - Code of key pressed. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onContainerMouseout

        -
        - - private - - - void - _onContainerMouseout - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles container mouseout events. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The mouseout event. -
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onContainerMouseover

        -
        - - private - - - void - _onContainerMouseover - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles container mouseover events. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The mouseover event. -
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onContainerResize

        -
        - - private - - - void - _onContainerResize - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles container resize events. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The resize event. -
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onContainerScroll

        -
        - - private - - - void - _onContainerScroll - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles container scroll events. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The scroll event. -
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onFormSubmit

        -
        - - private - - - void - _onFormSubmit - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles form submission event. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The submit event. -
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onIMEDetected

        -
        - - private - - - void - _onIMEDetected - ( - - - oSelf - - - ) - - -
        - Enables interval detection for Korean IME support. -
        - -
        - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onItemMouseclick

        -
        - - private - - - void - _onItemMouseclick - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles <li> element click events in the container. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The click event. -
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onItemMouseout

        -
        - - private - - - void - _onItemMouseout - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles <li> element mouseout events in the container. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The mouseout event. -
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onItemMouseover

        -
        - - private - - - void - _onItemMouseover - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles <li> element mouseover events in the container. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The mouseover event. -
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onTextboxBlur

        -
        - - private - - - void - _onTextboxBlur - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles text input box losing focus. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The focus event. -
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onTextboxFocus

        -
        - - private - - - void - _onTextboxFocus - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles text input box receiving focus. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The focus event. -
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onTextboxKeyDown

        -
        - - private - - - void - _onTextboxKeyDown - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles textbox keydown events of functional keys, mainly for UI behavior. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The keydown event. -
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onTextboxKeyPress

        -
        - - private - - - void - _onTextboxKeyPress - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles textbox keypress events. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The keypress event. -
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onTextboxKeyUp

        -
        - - private - - - void - _onTextboxKeyUp - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles textbox keyup events that trigger queries. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The keyup event. -
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _populateList

        -
        - - private - - - void - _populateList - ( - - - sQuery - - - , - aResults - - - , - oSelf - - - ) - - -
        - Populates the array of <li> elements in the container with query -results. This method is passed to YAHOO.widget.DataSource#getResults as a -callback function so results from the DataSource instance are returned to the -AutoComplete instance. -
        - -
        - -
        -
        Parameters:
        -
        - sQuery <String> - The query string. -
        -
        - aResults <Object[]> - An array of query result objects from the DataSource. -
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _selectItem

        -
        - - private - - - void - _selectItem - ( - - - oItem - - - ) - - -
        - Selects a result item from the container -
        - -
        - -
        -
        Parameters:
        -
        - oItem <HTMLElement> - The selected <li> element item. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _selectText

        -
        - - private - - - void - _selectText - ( - - - oTextbox - - - , - nStart - - - , - nEnd - - - ) - - -
        - Selects text in the input field. -
        - -
        - -
        -
        Parameters:
        -
        - oTextbox <HTMLElement> - Text input box element in which to select text. -
        -
        - nStart <Number> - Starting index of text string to select. -
        -
        - nEnd <Number> - Ending index of text selection. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _sendQuery

        -
        - - private - - - void - _sendQuery - ( - - - sQuery - - - ) - - -
        - Makes query request to the DataSource. -
        - -
        - -
        -
        Parameters:
        -
        - sQuery <String> - Query string. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _textMatchesOption

        -
        - - private - - - Boolean - _textMatchesOption - ( - ) - - -
        - Whether or not user-typed value in the text input box matches any of the -query results. -
        - -
        - - -
        -
        Returns: - - Boolean -
        -
        True if user-input text matches a result, false otherwise.
        -
        - -
        - -
        -
        -

        - _toggleContainer

        -
        - - private - - - void - _toggleContainer - ( - - - bShow - - - ) - - -
        - Animates expansion or collapse of the container. -
        - -
        - -
        -
        Parameters:
        -
        - bShow <Boolean> - True if container should be expanded, false if container should be collapsed -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _toggleContainerHelpers

        -
        - - private - - - void - _toggleContainerHelpers - ( - - - bShow - - - ) - - -
        - Syncs results container with its helpers. -
        - -
        - -
        -
        Parameters:
        -
        - bShow <Boolean> - True if container is expanded, false if collapsed -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _toggleHighlight

        -
        - - private - - - void - _toggleHighlight - ( - - - oNewItem - - - , - sType - - - ) - - -
        - Toggles the highlight on or off for an item in the container, and also cleans -up highlighting of any previous item. -
        - -
        - -
        -
        Parameters:
        -
        - oNewItem <HTMLElement> - The <li> element item to receive highlight behavior. -
        -
        - sType <String> - Type "mouseover" will toggle highlight on, and "mouseout" will toggle highlight off. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _togglePrehighlight

        -
        - - private - - - void - _togglePrehighlight - ( - - - oNewItem - - - , - sType - - - ) - - -
        - Toggles the pre-highlight on or off for an item in the container. -
        - -
        - -
        -
        Parameters:
        -
        - oNewItem <HTMLElement> - The <li> element item to receive highlight behavior. -
        -
        - sType <String> - Type "mouseover" will toggle highlight on, and "mouseout" will toggle highlight off. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _typeAhead

        -
        - - private - - - void - _typeAhead - ( - - - oItem - - - , - sQuery - - - ) - - -
        - Updates in the text input box with the first query result as the user types, -selecting the substring that the user has not typed. -
        - -
        - -
        -
        Parameters:
        -
        - oItem <HTMLElement> - The <li> element item whose data populates the input field. -
        -
        - sQuery <String> - Query string. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _updateValue

        -
        - - private - - - void - _updateValue - ( - - - oItem - - - ) - - -
        - Updates the text input box value with selected query result. If a delimiter -has been defined, then the value gets appended with the delimiter. -
        - -
        - -
        -
        Parameters:
        -
        - oItem <HTMLElement> - The <li> element item with which to update the value. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - doBeforeExpandContainer

        -
        - - - - - Boolean - doBeforeExpandContainer - ( - ) - - -
        - Overridable method called before container expands allows implementers to access data -and DOM elements. -
        - -
        - - -
        -
        Returns: - - Boolean -
        -
        Return true to continue expanding container, false to cancel the expand.
        -
        - -
        - -
        -
        -

        - formatResult

        -
        - - - - - String - formatResult - ( - - - oResultItem - - - , - sQuery - - - ) - - -
        - Overridable method that converts a result item object into HTML markup -for display. Return data values are accessible via the oResultItem object, -and the key return value will always be oResultItem[0]. Markup will be -displayed within <li> element tags in the container. -
        - -
        - -
        -
        Parameters:
        -
        - oResultItem <Object> - Result item representing one query result. Data is held in an array. -
        -
        - sQuery <String> - The current query string. -
        -
        - -
        -
        Returns: - - String -
        -
        HTML markup of formatted result data.
        -
        - -
        - -
        -
        -

        - getListItemData

        -
        - - - - - Object | Object[] - getListItemData - ( - ) - - -
        - Public accessor to the data held in an <li> element of the -results container. -
        - -
        - - -
        -
        Returns: - - Object | Object[] -
        -
        Object or array of result data or null
        -
        - -
        - -
        -
        -

        - getListItems

        -
        - - - - - HTMLElement[] - getListItems - ( - ) - - -
        - Public accessor to the internal array of DOM <li> elements that -display query results within the results container. -
        - -
        - - -
        -
        Returns: - - HTMLElement[] -
        -
        Array of <li> elements within the results container.
        -
        - -
        - -
        -
        -

        - isContainerOpen

        -
        - - - - - Boolean - isContainerOpen - ( - ) - - -
        - Returns true if container is in an expanded state, false otherwise. -
        - -
        - - -
        -
        Returns: - - Boolean -
        -
        Returns true if container is in an expanded state, false otherwise.
        -
        - -
        - -
        -
        -

        - sendQuery

        -
        - - - - - void - sendQuery - ( - - - sQuery - - - ) - - -
        - Makes query request to the DataSource. -
        - -
        - -
        -
        Parameters:
        -
        - sQuery <String> - Query string. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setBody

        -
        - - - - - void - setBody - ( - - - sBody - - - ) - - -
        - Sets HTML markup for the results container body. This markup will be -inserted within a <div> tag with a class of "yui-ac-bd". -
        - -
        - -
        -
        Parameters:
        -
        - sBody <String> - HTML markup for results container body. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setFooter

        -
        - - - - - void - setFooter - ( - - - sFooter - - - ) - - -
        - Sets HTML markup for the results container footer. This markup will be -inserted within a <div> tag with a class of "yui-ac-ft". -
        - -
        - -
        -
        Parameters:
        -
        - sFooter <String> - HTML markup for results container footer. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setHeader

        -
        - - - - - void - setHeader - ( - - - sHeader - - - ) - - -
        - Sets HTML markup for the results container header. This markup will be -inserted within a <div> tag with a class of "yui-ac-hd". -
        - -
        - -
        -
        Parameters:
        -
        - sHeader <String> - HTML markup for results container header. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Public accessor to the unique name of the AutoComplete instance. -
        - -
        - - -
        -
        Returns: - - String -
        -
        Unique name of the AutoComplete instance.
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Events

        -
        -

        - _sLastTextboxValue

        -
        - - private - - - _sLastTextboxValue - - ( - ) - - - -
        - Internal tracker to last known textbox value, used to determine whether or not -to trigger a query via interval for certain IME users. -
        - -
        - - - - -
        - -
        -
        -

        - containerCollapseEvent

        -
        - - - - - containerCollapseEvent - - ( - - - oSelf - - - ) - - - -
        - Fired when the results container is collapsed. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - - -
        - -
        -
        -

        - containerExpandEvent

        -
        - - - - - containerExpandEvent - - ( - - - oSelf - - - ) - - - -
        - Fired when the results container is expanded. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - - -
        - -
        -
        -

        - dataErrorEvent

        -
        - - - - - dataErrorEvent - - ( - - - oSelf - - - , - sQuery - - - ) - - - -
        - Fired when the AutoComplete instance does not receive query results from the -DataSource due to an error. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - sQuery <String> - The query string. -
        -
        - - -
        - -
        -
        -

        - dataRequestEvent

        -
        - - - - - dataRequestEvent - - ( - - - oSelf - - - , - sQuery - - - ) - - - -
        - Fired when the AutoComplete instance makes a query to the DataSource. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - sQuery <String> - The query string. -
        -
        - - -
        - -
        -
        -

        - dataReturnEvent

        -
        - - - - - dataReturnEvent - - ( - - - oSelf - - - , - sQuery - - - , - aResults - - - ) - - - -
        - Fired when the AutoComplete instance receives query results from the data -source. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - sQuery <String> - The query string. -
        -
        - aResults <Object[]> - Results array. -
        -
        - - -
        - -
        -
        -

        - itemArrowFromEvent

        -
        - - - - - itemArrowFromEvent - - ( - - - oSelf - - - , - elItem - - - ) - - - -
        - Fired when result item has been arrowed away from. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - elItem <HTMLElement> - The <li> element item arrowed from. -
        -
        - - -
        - -
        -
        -

        - itemArrowToEvent

        -
        - - - - - itemArrowToEvent - - ( - - - oSelf - - - , - elItem - - - ) - - - -
        - Fired when result item has been arrowed to. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - elItem <HTMLElement> - The <li> element item arrowed to. -
        -
        - - -
        - -
        -
        -

        - itemMouseOutEvent

        -
        - - - - - itemMouseOutEvent - - ( - - - oSelf - - - , - elItem - - - ) - - - -
        - Fired when result item has been moused out. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - elItem <HTMLElement> - The <li> element item moused from. -
        -
        - - -
        - -
        -
        -

        - itemMouseOverEvent

        -
        - - - - - itemMouseOverEvent - - ( - - - oSelf - - - , - elItem - - - ) - - - -
        - Fired when result item has been moused over. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - elItem <HTMLElement> - The <li> element item moused to. -
        -
        - - -
        - -
        -
        -

        - itemSelectEvent

        -
        - - - - - itemSelectEvent - - ( - - - oSelf - - - , - elItem - - - , - oData - - - ) - - - -
        - Fired when an item is selected via mouse click, ENTER key, or TAB key. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - elItem <HTMLElement> - The selected <li> element item. -
        -
        - oData <Object> - The data returned for the item, either as an object, -or mapped from the schema into an array. -
        -
        - - -
        - -
        -
        -

        - selectionEnforceEvent

        -
        - - - - - selectionEnforceEvent - - ( - - - oSelf - - - ) - - - -
        - Fired if forceSelection is enabled and the user's input has been cleared -because it did not match one of the returned query results. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - - -
        - -
        -
        -

        - textboxBlurEvent

        -
        - - - - - textboxBlurEvent - - ( - - - oSelf - - - ) - - - -
        - Fired when the input field loses focus. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - - -
        - -
        -
        -

        - textboxFocusEvent

        -
        - - - - - textboxFocusEvent - - ( - - - oSelf - - - ) - - - -
        - Fired when the input field receives focus. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - - -
        - -
        -
        -

        - textboxKeyEvent

        -
        - - - - - textboxKeyEvent - - ( - - - oSelf - - - , - nKeycode - - - ) - - - -
        - Fired when the input field receives key input. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - nKeycode <Number> - The keycode number. -
        -
        - - -
        - -
        -
        -

        - typeAheadEvent

        -
        - - - - - typeAheadEvent - - ( - - - oSelf - - - , - sQuery - - - , - sPrefill - - - ) - - - -
        - Fired when the input field has been prefilled by the type-ahead -feature. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - sQuery <String> - The query string. -
        -
        - sPrefill <String> - The prefill string. -
        -
        - - -
        - -
        -
        -

        - unmatchedItemSelectEvent

        -
        - - - - - unmatchedItemSelectEvent - - ( - - - oSelf - - - , - sQuery - - - ) - - - -
        - Fired when a user selection does not match any of the displayed result items. -Note that this event may not behave as expected when delimiter characters -have been defined. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <YAHOO.widget.AutoComplete> - The AutoComplete instance. -
        -
        - sQuery <String> - The user-typed query string. -
        -
        - - -
        - -
        -
        -
        -
        - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.Button.html b/www/extras/yui/docs/YAHOO.widget.Button.html deleted file mode 100644 index b8320cc21..000000000 --- a/www/extras/yui/docs/YAHOO.widget.Button.html +++ /dev/null @@ -1,4125 +0,0 @@ - - - - API: button YAHOO.widget.Button (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Button  2.2.2

        -

        - Yahoo! UI Library - > button - > YAHOO.widget.Button - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.Button - - - extends YAHOO.util.Element - - - - - - -

        - - - - - -
        - The Button class creates a rich, graphical button. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.Button - - ( - - - - p_oElement - - - - , - p_oAttributes - ) - -
        -
        -
        Parameters:
        -
        - p_oElement - <String> - - String specifying the id attribute of the -<input>, <a> or -<span> element to be used to create the button. -
        -
        - p_oElement - <HTMLInputElement|HTMLElement> - - Object reference for the -<input>, <a> or -<span> element to be used to create the button. -
        -
        - p_oElement - <Object> - - Object literal specifying a set of configuration -attributes used to create the button. -
        -
        - p_oAttributes - <Object> - - Optional. Object literal specifying a set of -configuration attributes used to create the button. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _activationButtonPressed - - protected Boolean -

        -
        -
        - Boolean indicating if the mouse button that toggles the button's -"active" state has been pressed. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        _activationKeyPressed - - protected Boolean -

        -
        -
        - Boolean indicating if the key(s) that toggle the button's -"active" state have been pressed. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        _button - - protected HTMLAnchorElement|HTMLButtonElement -

        -
        -
        - Object reference to the button's internal -<a> or <button> element. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        _hasKeyEventHandlers - - protected Boolean -

        -
        -
        - Boolean indicating if the button's "blur", "keydown" and -"keyup" event handlers are assigned -
        -
        - - -
        - Default Value: false -
        - - -
        -

        _hasMouseEventHandlers - - protected Boolean -

        -
        -
        - Boolean indicating if the button's "mouseout" and "mousedown" -and "mouseup" event handlers are assigned -
        -
        - - -
        - Default Value: false -
        - - -
        -

        _hiddenField - - protected HTMLInputElement -

        -
        -
        - Object reference to the <input> element -used when the button's parent form is submitted. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        _menu - - protected YAHOO.widget.Menu -

        -
        -
        - Object reference to the button's menu. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        _onclickAttributeValue - - protected Object -

        -
        -
        - Object reference to the button's current value for the "onclick" -configuration attribute. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        ACTIVATION_KEYS - - final Array -

        -
        -
        - Array of numbers representing keys that (when presed) toggle -the button's "active" state. -
        -
        - - -
        - Default Value: [13, 32] -
        - - -
        -

        CHECK_ACTIVATION_KEYS - - final Array -

        -
        -
        - Array of numbers representing keys that (when pressed) toggle -the button's "checked" attribute. -
        -
        - - -
        - Default Value: [32] -
        - - -
        -

        CHECKBOX_CHECKED_TITLE - - final String -

        -
        -
        - String representing the title applied to buttons of type -"checkbox" when checked. -
        -
        - - -
        - Default Value: "Checked. Click to uncheck." -
        - - -
        -

        CHECKBOX_DEFAULT_TITLE - - final String -

        -
        -
        - String representing the default title applied to buttons of -type "checkbox." -
        -
        - - -
        - Default Value: "Unchecked. Click to check." -
        - - -
        -

        CSS_CLASS_NAME - - final String -

        -
        -
        - String representing the CSS class(es) to be applied to the -button's root element. -
        -
        - - -
        - Default Value: "yuibutton" -
        - - -
        -

        MENUBUTTON_DEFAULT_TITLE - - final String -

        -
        -
        - String representing the default title applied to buttons of -type "menubutton." -
        -
        - - -
        - Default Value: "Menu collapsed. Click to expand." -
        - - -
        -

        MENUBUTTON_MENU_VISIBLE_TITLE - - final String -

        -
        -
        - String representing the title applied to buttons of type -"menubutton" when the button's menu is visible. -
        -
        - - -
        - Default Value: "Menu expanded. Click or press Esc to collapse." -
        - - -
        -

        OPTION_AREA_WIDTH - - final Number -

        -
        -
        - Width (in pixels) of the area of a split button that when -pressed will display a menu. -
        -
        - - -
        - Default Value: 20 -
        - - -
        -

        RADIO_CHECKED_TITLE - - final String -

        -
        -
        - String representing the title applied to buttons of type "radio" -when checked. -
        -
        - - -
        - Default Value: "Checked. Click to uncheck." -
        - - -
        -

        RADIO_DEFAULT_TITLE - - final String -

        -
        -
        - String representing the default title applied to buttons of -type "radio." -
        -
        - - -
        - Default Value: "Unchecked. Click to check." -
        - - -
        -

        SPLITBUTTON_DEFAULT_TITLE - - final String -

        -
        -
        - String representing the default title applied to buttons of -type "splitebutton." -
        -
        - - -
        - Default Value: "Menu collapsed. Click inside option region or press -Ctrl + Shift + M to show the menu." -
        - - -
        -

        SPLITBUTTON_OPTION_VISIBLE_TITLE - - final String -

        -
        -
        - String representing the title applied to buttons of type -"splitbutton" when the button's menu is visible. -
        -
        - - -
        - Default Value: "Menu expanded. Press Esc or Ctrl + Shift + M to hide the menu." -
        - - -
        -

        SUBMIT_TITLE - - final String -

        -
        -
        - String representing the title applied to buttons of -type "submit." -
        -
        - - -
        - Default Value: "Click to submit form." -
        - - -
        -

        TAG_NAME - - final String -

        -
        -
        - The name of the tag to be used for the button's root element. -
        -
        - - -
        - Default Value: "SPAN" -
        - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.util.Element:

        -
        - - - DOM_EVENTS - -
        -
        -
        -

        Properties inherited from YAHOO.util.AttributeProvider:

        -
        - - - _configs - -
        -
        -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Methods

        -
        -

        - _addListenersToForm

        -
        - - protected - - - void - _addListenersToForm - ( - ) - - -
        - Adds event handlers to the button's form. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _createButtonElement

        -
        - - protected - - - HTMLElement - _createButtonElement - ( - - - p_sType - - - ) - - -
        - Creates the button's element. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String indicating the type of element to create. -
        -
        - -
        -
        Returns: - - HTMLElement -
        -
        -
        - -
        - -
        -
        -

        - _hideMenu

        -
        - - protected - - - void - _hideMenu - ( - ) - - -
        - Hides the button's menu. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _isActivationKey

        -
        - - protected - - - Boolean - _isActivationKey - ( - - - p_nKeyCode - - - ) - - -
        - Determines if the specified keycode is one that toggles the -button's "active" state. -
        - -
        - -
        -
        Parameters:
        -
        - p_nKeyCode <Number> - Number representing the keycode to be evaluated. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        -
        - -
        - -
        -
        -

        - _isSplitButtonOptionKey

        -
        - - protected - - - Boolean - _isSplitButtonOptionKey - ( - - - p_oEvent - - - ) - - -
        - Determines if the specified keycode is one that toggles the -display of the split button's menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - Boolean -
        -
        -
        - -
        - -
        -
        -

        - _onAppendTo

        -
        - - protected - - - void - _onAppendTo - ( - - - p_oEvent - - - ) - - -
        - "appendTo" event handler for the button. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onBlur

        -
        - - protected - - - void - _onBlur - ( - - - p_oEvent - - - ) - - -
        - "blur" event handler for the button. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onClick

        -
        - - protected - - - void - _onClick - ( - - - p_oEvent - - - ) - - -
        - "click" event handler for the button. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onDocumentKeyUp

        -
        - - protected - - - void - _onDocumentKeyUp - ( - - - p_oEvent - - - ) - - -
        - "keyup" event handler for the document. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onDocumentMouseDown

        -
        - - protected - - - void - _onDocumentMouseDown - ( - - - p_oEvent - - - ) - - -
        - "mousedown" event handler for the document. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onDocumentMouseUp

        -
        - - protected - - - void - _onDocumentMouseUp - ( - - - p_oEvent - - - ) - - -
        - "mouseup" event handler for the button. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onFocus

        -
        - - protected - - - void - _onFocus - ( - - - p_oEvent - - - ) - - -
        - "focus" event handler for the button. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onFormReset

        -
        - - protected - - - void - _onFormReset - ( - - - p_oEvent - - - ) - - -
        - "reset" event handler for the button's form. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onFormSubmit

        -
        - - protected - - - void - _onFormSubmit - ( - - - p_oEvent - - - ) - - -
        - "submit" event handler for the button's form. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onKeyDown

        -
        - - protected - - - void - _onKeyDown - ( - - - p_oEvent - - - ) - - -
        - "keydown" event handler for the button. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onKeyUp

        -
        - - protected - - - void - _onKeyUp - ( - - - p_oEvent - - - ) - - -
        - "keyup" event handler for the button. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMenuClick

        -
        - - private - - - void - _onMenuClick - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "click" event handler for the button's menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMenuHide

        -
        - - private - - - void - _onMenuHide - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "hide" event handler for the button's menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMenuItemAdded

        -
        - - private - - - void - _onMenuItemAdded - ( - - - p_sType - - - , - p_aArgs - - - , - p_oItem - - - ) - - -
        - "itemadded" event handler for the button's menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object representing the menu item that subscribed to the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMenuItemSelected

        -
        - - private - - - void - _onMenuItemSelected - ( - - - p_sType - - - , - p_aArgs - - - , - p_oItem - - - ) - - -
        - "selectedchange" event handler for each item in the -button's menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object representing the menu item that subscribed to the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMenuKeyDown

        -
        - - private - - - void - _onMenuKeyDown - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "keydown" event handler for the button's menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMenuRender

        -
        - - private - - - void - _onMenuRender - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "render" event handler for the button's menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMenuShow

        -
        - - private - - - void - _onMenuShow - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "show" event handler for the button's menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMouseDown

        -
        - - protected - - - void - _onMouseDown - ( - - - p_oEvent - - - ) - - -
        - "mousedown" event handler for the button. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMouseOut

        -
        - - protected - - - void - _onMouseOut - ( - - - p_oEvent - - - ) - - -
        - "mouseout" event handler for the button. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMouseOver

        -
        - - protected - - - void - _onMouseOver - ( - - - p_oEvent - - - ) - - -
        - "mouseover" event handler for the button. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMouseUp

        -
        - - protected - - - void - _onMouseUp - ( - - - p_oEvent - - - ) - - -
        - "mouseup" event handler for the button. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onOption

        -
        - - protected - - - void - _onOption - ( - - - p_oEvent - - - ) - - -
        - "option" event handler for the button. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setAccessKey

        -
        - - protected - - - void - _setAccessKey - ( - - - p_sAccessKey - - - ) - - -
        - Sets the value of the button's "accesskey" attribute. -
        - -
        - -
        -
        Parameters:
        -
        - p_sAccessKey <String> - String indicating the value for the button's -"accesskey" attribute. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setChecked

        -
        - - protected - - - void - _setChecked - ( - - - p_bChecked - - - ) - - -
        - Sets the value of the button's "target" attribute. -
        - -
        - -
        -
        Parameters:
        -
        - p_bChecked <Boolean> - Boolean indicating the value for the button's -"checked" attribute. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setDisabled

        -
        - - protected - - - void - _setDisabled - ( - - - p_bDisabled - - - ) - - -
        - Sets the value of the button's "disabled" attribute. -
        - -
        - -
        -
        Parameters:
        -
        - p_bDisabled <Boolean> - Boolean indicating the value for the button's -"disabled" attribute. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setHref

        -
        - - protected - - - void - _setHref - ( - - - p_sHref - - - ) - - -
        - Sets the value of the button's "href" attribute. -
        - -
        - -
        -
        Parameters:
        -
        - p_sHref <String> - String indicating the value for the button's -"href" attribute. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setLabel

        -
        - - protected - - - void - _setLabel - ( - - - p_sLabel - - - ) - - -
        - Sets the value of the button's "label" attribute. -
        - -
        - -
        -
        Parameters:
        -
        - p_sLabel <String> - String indicating the value for the button's -"label" attribute. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setMenu

        -
        - - protected - - - void - _setMenu - ( - - - p_oMenu - - - ) - - -
        - Sets the value of the button's "menu" attribute. -
        - -
        - -
        -
        Parameters:
        -
        - p_oMenu <Object> - Object indicating the value for the button's -"menu" attribute. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setOnClick

        -
        - - protected - - - void - _setOnClick - ( - - - p_oObject - - - ) - - -
        - Sets the value of the button's "onclick" attribute. -
        - -
        - -
        -
        Parameters:
        -
        - p_oObject <Object> - Object indicating the value for the button's -"onclick" attribute. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setTabIndex

        -
        - - protected - - - void - _setTabIndex - ( - - - p_nTabIndex - - - ) - - -
        - Sets the value of the button's "tabindex" attribute. -
        - -
        - -
        -
        Parameters:
        -
        - p_nTabIndex <Number> - Number indicating the value for the button's -"tabindex" attribute. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setTarget

        -
        - - protected - - - void - _setTarget - ( - - - p_sTarget - - - ) - - -
        - Sets the value of the button's "target" attribute. -
        - -
        - -
        -
        Parameters:
        -
        - p_sTarget <String> - String indicating the value for the button's -"target" attribute. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setTitle

        -
        - - protected - - - void - _setTitle - ( - - - p_nTabIndex - - - ) - - -
        - Sets the value of the button's "title" attribute. -
        - -
        - -
        -
        Parameters:
        -
        - p_nTabIndex <String> - Number indicating the value for the button's -"title" attribute. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setType

        -
        - - protected - - - void - _setType - ( - - - p_sType - - - ) - - -
        - Sets the value of the button's "type" attribute. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String indicating the value for the button's -"type" attribute. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _showMenu

        -
        - - protected - - - void - _showMenu - ( - - - p_oEvent - - - ) - - -
        - Shows the button's menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event) that triggered the display of -the menu. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addHiddenFieldsToForm

        -
        - - - - - void - addHiddenFieldsToForm - ( - - - p_oForm - - - ) - - -
        - Searches the specified form and adds hidden fields for instances -of YAHOO.widget.Button that are of type "radio," "checkbox," "menubutton," -and "splitbutton." -
        - -
        - -
        -
        Parameters:
        -
        - p_oForm <HTMLFormElement> - Object reference -for the form to search. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - blur

        -
        - - - - - void - blur - ( - ) - - -
        - Causes the button to lose focus and fires the button's -"blur" event. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - createHiddenField

        -
        - - - - - HTMLInputElement - createHiddenField - ( - ) - - -
        - Creates the button's hidden form field and appends it to its -parent form. -
        - -
        - - -
        -
        Returns: - - HTMLInputElement -
        -
        -
        - -
        - -
        -
        -

        - createInputElement

        -
        - - private - - - HTMLInputElement - createInputElement - ( - - - p_sType - - - , - p_sName - - - , - p_sValue - - - , - p_bChecked - - - ) - - -
        - Creates an <input> element of the -specified type. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String specifying the type of -<input> element to create. -
        -
        - p_sName <String> - String specifying the name of -<input> element to create. -
        -
        - p_sValue <String> - String specifying the value of -<input> element to create. -
        -
        - p_bChecked <String> - Boolean specifying if the -<input> element is to be checked. -
        -
        - -
        -
        Returns: - - HTMLInputElement -
        -
        -
        - -
        - -
        -
        -

        - destroy

        -
        - - - - - void - destroy - ( - ) - - -
        - Removes the button's element from its parent element and -removes all event handlers. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - focus

        -
        - - - - - void - focus - ( - ) - - -
        - Causes the button to receive the focus and fires the button's -"focus" event. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getFirstElement

        -
        - - private - - - HTMLElement - getFirstElement - ( - - - p_oElement - - - ) - - -
        - Returns an HTML element's first HTML element node. -
        - -
        - -
        -
        Parameters:
        -
        - p_oElement <HTMLElement> - Object -reference specifying the element to be evaluated. -
        -
        - -
        -
        Returns: - - HTMLElement -
        -
        -
        - -
        - -
        -
        -

        - getForm

        -
        - - - - - HTMLFormElement - getForm - ( - ) - - -
        - Returns a reference to the button's parent form. -
        - -
        - - -
        -
        Returns: - - HTMLFormElement -
        -
        -
        - -
        - -
        -
        -

        - getHiddenField

        -
        - - - - - HTMLInputElement - getHiddenField - ( - ) - - -
        - Returns a reference to the <input> element -used when the button's parent form is submitted. -
        - -
        - - -
        -
        Returns: - - HTMLInputElement -
        -
        -
        - -
        - -
        -
        -

        - getMenu

        -
        - - - - - YAHOO.widget.Menu - getMenu - ( - ) - - -
        - Returns a reference to the button's menu. -
        - -
        - - -
        -
        Returns: - - YAHOO.widget.Menu -
        -
        -
        - -
        - -
        -
        -

        - hasFocus

        -
        - - - - - Boolean - hasFocus - ( - ) - - -
        - Returns a boolean indicating whether or not the button has focus. -
        - -
        - - -
        -
        Returns: - - Boolean -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - p_oElement - - - - - - - , - p_oAttributes - - - ) - - -
        - The Button class's initialization method. -
        - -
        - -
        -
        Parameters:
        -
        - p_oElement <String> - String specifying the id attribute of the -<input>, <a> or -<span> element to be used to create the button. -
        -
        - p_oElement <HTMLInputElement|HTMLElement> - Object reference for the -<input>, <a> or -<span> element to be used to create the button. -
        -
        - p_oElement <Object> - Object literal specifying a set of configuration -attributes used to create the button. -
        -
        - p_oAttributes <Object> - Optional. Object literal specifying a set of -configuration attributes used to create the button. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initAttributes

        -
        - - - - - void - initAttributes - ( - - - p_oAttributes - - - ) - - -
        - Initializes all of the configuration attributes used to create -the button. -
        - -
        - -
        -
        Parameters:
        -
        - p_oAttributes <Object> - Object literal specifying a set of -configuration attributes used to create the button. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initConfig

        -
        - - private - - - void - initConfig - ( - - - Object - - - ) - - -
        - Initializes the set of configuration attributes that are used to -instantiate the button. -
        - -
        - -
        -
        Parameters:
        -
        - Object <Object> - representing the button's set of -configuration attributes. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - isActive

        -
        - - - - - Boolean - isActive - ( - ) - - -
        - Returns a boolean indicating whether or not the button is active. -
        - -
        - - -
        -
        Returns: - - Boolean -
        -
        -
        - -
        - -
        -
        -

        - onFormKeyDown

        -
        - - - - - void - onFormKeyDown - ( - - - p_oEvent - - - ) - - -
        - "keydown" event handler for the button's form. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setAttributeFromDOMAttribute

        -
        - - private - - - void - setAttributeFromDOMAttribute - ( - - - p_sAttribute - - - ) - - -
        - Gets the value of the specified DOM attribute and sets it -into the collection of configuration attributes used to configure -the button. -
        - -
        - -
        -
        Parameters:
        -
        - p_sAttribute <String> - String representing the name of the -attribute to retrieve from the DOM element. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setAttributesFromSrcElement

        -
        - - private - - - void - setAttributesFromSrcElement - ( - - - p_oElement - - - , - p_oAttributes - - - ) - - -
        - Gets the values for all the attributes of the source element -(either <input> or <a>) that map to -Button configuration attributes and sets them into a collection that is -passed to the Button constructor. -
        - -
        - -
        -
        Parameters:
        -
        - p_oElement <HTMLInputElement|HTMLAnchorElement> - Object reference to the HTML -element (either <input> or <span>) -used to create the button. -
        -
        - p_oAttributes <Object> - Object reference for the collection of -configuration attributes used to create the button. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setFormElementProperties

        -
        - - private - - - void - setFormElementProperties - ( - ) - - -
        - Gets the value of the attributes from the form element and -sets them into the collection of configuration attributes used to -configure the button. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - submitForm

        -
        - - protected - - - void - submitForm - ( - ) - - -
        - Submits the form to which the button belongs. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representing the button. -
        - -
        - - -
        -
        Returns: - - String -
        -
        -
        - -
        - -
        -
        -
        -
        - - - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Events

        -
        -

        - blur

        -
        - - - - - blur - - ( - ) - - - -
        - Fires when the menu item loses the input focus. Passes back a -single object representing the original DOM event object passed back by the -event utility (YAHOO.util.Event) when the event was fired. See Element.addListener for more -information on listening for this event. -
        - -
        - - - - -
        - -
        -
        -

        - focus

        -
        - - - - - focus - - ( - ) - - - -
        - Fires when the menu item receives focus. Passes back a single -object representing the original DOM event object passed back by the event -utility (YAHOO.util.Event) when the event was fired. See Element.addListener for more -information on listening for this event. -
        - -
        - - - - -
        - -
        -
        -

        - option

        -
        - - - - - option - - ( - ) - - - -
        - Fires when the user invokes the button's option. Passes back a -single object representing the original DOM event (either "mousedown" or -"keydown") that caused the "option" event to fire. See Element.addListener for more -information on listening for this event. -
        - -
        - - - - -
        - -
        -
        -
        -
        - - -
        -

        Events inherited from YAHOO.util.Element:

        -
        - - - available, - contentReady - -
        -
        - -
        -

        Configuration Attributes

        -
        -

        checked - - Boolean -

        -
        -
        - Boolean indicating if the button is checked. Applies only -to buttons of type "radio" and "checkbox." -
        -
        - - -
        - Default Value: false -
        - -
        -

        container - - HTMLElement|String -

        -
        -
        - HTML element reference or string specifying the id -attribute of the HTML element that the button's markup should be -rendered into. -
        -
        - - -
        - Default Value: null -
        - -
        -

        disabled - - Boolean -

        -
        -
        - Boolean indicating if the button should be disabled. -(Disabled buttons are dimmed and will not respond to user input -or fire events. Does not apply to button's of type "link.") -
        -
        - - -
        - Default Value: false -
        - -
        -

        href - - String -

        -
        -
        - String specifying the href for the button. Applies only to -buttons of type "link." -
        -
        - - - -
        -

        label - - String -

        -
        -
        - String specifying the button's text label or innerHTML. -
        -
        - - -
        - Default Value: null -
        - -
        -

        menu - - HTMLElement|String|Array -

        -
        -
        - Object specifying the menu for the button. The value can be -one of the following: -
          -
        • Object specifying a -YAHOO.widget.Menu instance.
        • -
        • String specifying the id attribute of the <div> -element used to create the menu.
        • -
        • String specifying the id attribute of the -<select> element used to create the menu.
        • -
        • Object specifying the <div> element used to -create the menu.
        • -
        • Object specifying the <select> element used to -create the menu.
        • -
        • Array of object literals, each representing a set of -YAHOO.widget.MenuItem -configuration attributes.
        • -
        • Array of strings representing the text labels for each menu item in -the menu.
        • -
        -
        -
        - - -
        - Default Value: null -
        - -
        -

        name - - String -

        -
        -
        - String specifying the name for the button. -
        -
        - - -
        - Default Value: null -
        - -
        -

        onclick - - Object -

        -
        -
        - Object literal representing the code to be executed when -the button is clicked. Format:
        {
        -fn: Function, // The handler to call when the -event fires.
        obj: Object, // An object to -pass back to the handler.
        scope: Object // -The object to use for the scope of the handler.
        }
        -
        -
        - - -
        - Default Value: null -
        - -
        -

        selectedMenuItem - - YAHOO.widget.MenuItem -

        -
        -
        - Reference to the item in the button's menu that is -currently selected. -
        -
        - - -
        - Default Value: null -
        - -
        -

        srcelement - - HTMLElement|String -

        -
        -
        - Object reference to the HTML element (either -<input> or <span>) used to -create the button. -
        -
        - - -
        - Default Value: null -
        - -
        -

        tabindex - - Number -

        -
        -
        - Number specifying the tabindex for the button. -
        -
        - - -
        - Default Value: null -
        - -
        -

        target - - String -

        -
        -
        - String specifying the target for the button. Applies only -to buttons of type "link." -
        -
        - - - -
        -

        title - - String -

        -
        -
        - String specifying the title for the button. -
        -
        - - -
        - Default Value: null -
        - -
        -

        type - - String -

        -
        -
        - String specifying the button's type. Possible values are: -"button," "link," "submit," "reset," "checkbox," "radio," "menubutton," -and "splitbutton." -
        -
        - - -
        - Default Value: "button" -
        - -
        -

        value - - Object -

        -
        -
        - Object specifying the value for the button. -
        -
        - - -
        - Default Value: null -
        - -
        - -
        -
        - -
        -

        Configuration attributes inherited from YAHOO.util.Element:

        -
        - - - element - -
        -
        - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.ButtonGroup.html b/www/extras/yui/docs/YAHOO.widget.ButtonGroup.html deleted file mode 100644 index a967d9a9d..000000000 --- a/www/extras/yui/docs/YAHOO.widget.ButtonGroup.html +++ /dev/null @@ -1,1335 +0,0 @@ - - - - API: button YAHOO.widget.ButtonGroup (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Button  2.2.2

        -

        - Yahoo! UI Library - > button - > YAHOO.widget.ButtonGroup - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.ButtonGroup - - - extends YAHOO.util.Element - - - - - - -

        - - - - - -
        - The ButtonGroup class creates a set of buttons that are mutually exclusive; -checking one button in the set will uncheck all others in the button group. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.ButtonGroup - - ( - - - - p_oElement - - - - , - p_oAttributes - ) - -
        -
        -
        Parameters:
        -
        - p_oElement - <String> - - String specifying the id attribute of the -<div> element of the button group. -
        -
        - p_oElement - <HTMLDivElement> - - Object -specifying the <div> element of the button group. -
        -
        - p_oElement - <Object> - - Object literal specifying a set of -configuration attributes used to create the button group. -
        -
        - p_oAttributes - <Object> - - Optional. Object literal specifying a set of -configuration attributes used to create the button group. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _buttons - - protected Array -

        -
        -
        - Array of buttons in the button group. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        CSS_CLASS_NAME - - final String -

        -
        -
        - String representing the CSS class(es) to be applied to the -button group's element. -
        -
        - - -
        - Default Value: "yuibuttongroup" -
        - - -
        -

        TAG_NAME - - final String -

        -
        -
        - The name of the tag to be used for the button group's element. -
        -
        - - -
        - Default Value: "DIV" -
        - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.util.Element:

        -
        - - - DOM_EVENTS - -
        -
        -
        -

        Properties inherited from YAHOO.util.AttributeProvider:

        -
        - - - _configs - -
        -
        -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Methods

        -
        -

        - _createGroupElement

        -
        - - protected - - - HTMLDivElement - _createGroupElement - ( - ) - - -
        - Creates the button group's element. -
        - -
        - - -
        -
        Returns: - - HTMLDivElement -
        -
        -
        - -
        - -
        -
        -

        - _onAppendTo

        -
        - - protected - - - void - _onAppendTo - ( - - - p_oEvent - - - ) - - -
        - "appendTo" event handler for the button group. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the event that was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onButtonCheckedChange

        -
        - - protected - - - void - _onButtonCheckedChange - ( - - - p_oEvent - - - , - p_oButton - - - ) - - -
        - "checkedChange" event handler for each button in the -button group. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the event that was fired. -
        -
        - p_oButton <YAHOO.widget.Button> - -Object representing the button that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onKeyDown

        -
        - - protected - - - void - _onKeyDown - ( - - - p_oEvent - - - ) - - -
        - "keydown" event handler for the button group. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setDisabled

        -
        - - protected - - - void - _setDisabled - ( - - - p_bDisabled - - - ) - - -
        - Sets the value of the button groups's "disabled" attribute. -
        - -
        - -
        -
        Parameters:
        -
        - p_bDisabled <Boolean> - Boolean indicating the value for the button -group's "disabled" attribute. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addButton

        -
        - - - - - YAHOO.widget.Button - addButton - ( - - - p_oButton - - - - - - - - - ) - - -
        - Adds the button to the button group. -
        - -
        - -
        -
        Parameters:
        -
        - p_oButton <YAHOO.widget.Button> - -Object reference for the -YAHOO.widget.Button instance to be added to the button group. -
        -
        - p_oButton <String> - String specifying the id attribute of the -<input> or <span> element to be -used to create the button to be added to the button group. -
        -
        - p_oButton <HTMLInputElement|HTMLElement> - Object reference for the -<input> or <span> element to be -used to create the button to be added to the button group. -
        -
        - p_oButton <Object> - Object literal specifying a set of -YAHOO.widget.Button configuration -attributes used to configure the button to be added to the button group. -
        -
        - -
        -
        Returns: - - YAHOO.widget.Button -
        -
        -
        - -
        - -
        -
        -

        - addButtons

        -
        - - - - - Array - addButtons - ( - - - p_aButtons - - - - - - - - - ) - - -
        - Adds the array of buttons to the button group. -
        - -
        - -
        -
        Parameters:
        -
        - p_aButtons <Array> - Array of -YAHOO.widget.Button instances to be added -to the button group. -
        -
        - p_aButtons <Array> - Array of strings specifying the id attribute of -the <input> or <span> elements to -be used to create the buttons to be added to the button group. -
        -
        - p_aButtons <Array> - Array of object references for the -<input> or <span> elements to be -used to create the buttons to be added to the button group. -
        -
        - p_aButtons <Array> - Array of object literals, each containing a set of -YAHOO.widget.Button configuration -attributes used to configure each button to be added to the button group. -
        -
        - -
        -
        Returns: - - Array -
        -
        -
        - -
        - -
        -
        -

        - check

        -
        - - - - - void - check - ( - - - p_nIndex - - - ) - - -
        - Checks the button at the specified index. -
        - -
        - -
        -
        Parameters:
        -
        - p_nIndex <Number> - Number indicating the index of the button to check. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - destroy

        -
        - - - - - void - destroy - ( - ) - - -
        - Removes the button group's element from its parent element and -removes all event handlers. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - focus

        -
        - - - - - void - focus - ( - - - p_nIndex - - - ) - - -
        - Sets focus to the button at the specified index. -
        - -
        - -
        -
        Parameters:
        -
        - p_nIndex <Number> - Number indicating the index of the button to focus. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getButton

        -
        - - - - - YAHOO.widget.Button - getButton - ( - - - p_nIndex - - - ) - - -
        - Returns the button at the specified index. -
        - -
        - -
        -
        Parameters:
        -
        - p_nIndex <Number> - The index of the button to retrieve from the -button group. -
        -
        - -
        -
        Returns: - - YAHOO.widget.Button -
        -
        -
        - -
        - -
        -
        -

        - getButtons

        -
        - - - - - Array - getButtons - ( - ) - - -
        - Returns an array of the buttons in the button group. -
        - -
        - - -
        -
        Returns: - - Array -
        -
        -
        - -
        - -
        -
        -

        - getCount

        -
        - - - - - Number - getCount - ( - ) - - -
        - Returns the number of buttons in the button group. -
        - -
        - - -
        -
        Returns: - - Number -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - p_oElement - - - - - - - , - p_oAttributes - - - ) - - -
        - The ButtonGroup class's initialization method. -
        - -
        - -
        -
        Parameters:
        -
        - p_oElement <String> - String specifying the id attribute of the -<div> element of the button group. -
        -
        - p_oElement <HTMLDivElement> - Object -specifying the <div> element of the button group. -
        -
        - p_oElement <Object> - Object literal specifying a set of configuration -attributes used to create the button group. -
        -
        - p_oAttributes <Object> - Optional. Object literal specifying a set of -configuration attributes used to create the button group. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initAttributes

        -
        - - - - - void - initAttributes - ( - - - p_oAttributes - - - ) - - -
        - Initializes all of the configuration attributes used to create -the button group. -
        - -
        - -
        -
        Parameters:
        -
        - p_oAttributes <Object> - Object literal specifying a set of -configuration attributes used to create the button group. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeButton

        -
        - - - - - void - removeButton - ( - - - p_nIndex - - - ) - - -
        - Removes the button at the specified index from the button group. -
        - -
        - -
        -
        Parameters:
        -
        - p_nIndex <Number> - Number specifying the index of the button to be -removed from the button group. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representing the button group. -
        - -
        - - -
        -
        Returns: - - String -
        -
        -
        - -
        - -
        -
        -
        -
        - - - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - - - -
        -

        Events inherited from YAHOO.util.Element:

        -
        - - - available, - contentReady - -
        -
        - -
        -

        Configuration Attributes

        -
        -

        checkedButton - - {YAHOO.widget.Button} -

        -
        -
        - Reference for the button in the button group that -is checked. -
        -
        - - -
        - Default Value: null -
        - -
        -

        container - - HTMLElement|String -

        -
        -
        - HTML element reference or string specifying the id -attribute of the HTML element that the button group's markup should be -rendered into. -
        -
        - - -
        - Default Value: null -
        - -
        -

        disabled - - Boolean -

        -
        -
        - Boolean indicating if the button group should be disabled. -Disabling the button group will disable each button in the button group. -Disabled buttons are dimmed and will not respond to user input -or fire events. -
        -
        - - -
        - Default Value: false -
        - -
        -

        name - - String -

        -
        -
        - String specifying the name for the button group. This -name will be applied to each button in the button group. -
        -
        - - -
        - Default Value: null -
        - -
        -

        value - - Object -

        -
        -
        - Object specifying the value for the button group. -
        -
        - - -
        - Default Value: null -
        - -
        - -
        -
        - -
        -

        Configuration attributes inherited from YAHOO.util.Element:

        -
        - - - element - -
        -
        - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.Calendar.html b/www/extras/yui/docs/YAHOO.widget.Calendar.html deleted file mode 100644 index 05d57e165..000000000 --- a/www/extras/yui/docs/YAHOO.widget.Calendar.html +++ /dev/null @@ -1,6049 +0,0 @@ - - - - API: calendar YAHOO.widget.Calendar (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Calendar  2.2.2

        -

        - Yahoo! UI Library - > calendar - > YAHOO.widget.Calendar - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.Calendar - - - - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.widget.Calendar_Core -
        -
        - - - -
        - Calendar is the base class for the Calendar widget. In its most basic -implementation, it has the ability to render a calendar widget on the page -that can be manipulated to select a single date, move back and forth between -months and years. -

        To construct the placeholder for the calendar widget, the code is as -follows: -

        -<div id="cal1Container"></div> - -Note that the table can be replaced with any kind of element. -

        -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.Calendar - - ( - - - - id - - , - containerId - - , - config - ) - -
        -
        -
        Parameters:
        -
        - id - <String> - - The id of the table element that will represent the calendar widget -
        -
        - containerId - <String> - - The id of the container div element that will wrap the calendar table -
        -
        - config - <Object> - - The configuration object containing the Calendar's arguments -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _renderStack - - private Array -

        -
        -
        - A copy of the initial render functions created before rendering. -
        -
        - - - - -
        -

        _selectedDates - - private Array -

        -
        -
        - The private list of initially selected dates. -
        -
        - - - - -
        -

        browser - - String -

        -
        -
        - Returns a string representing the current browser. -
        -
        - - - - -
        -

        cellDates - - Array[](Number[]) -

        -
        -
        - The collection of calendar cell dates that is parallel to the cells collection. The array contains dates field arrays in the format of [YYYY, M, D]. -
        -
        - - - - -
        -

        cells - - HTMLTableCellElement[] -

        -
        -
        - The collection of calendar table cells -
        -
        - - - - -
        -

        cfg - - YAHOO.util.Config -

        -
        -
        - The Config object used to hold the configuration variables for the Calendar -
        -
        - - - - -
        -

        Config - - private Object -

        -
        -
        - The configuration object used to set up the calendars various locale and style options. -
        -
        - - - -
        - Deprecated: Configuration properties should be set by calling Calendar.cfg.setProperty. -
        - -
        -

        domEventMap - - Object -

        -
        -
        - A map of DOM event handlers to attach to cells associated with specific CSS class names -
        -
        - - - - -
        -

        id - - String -

        -
        -
        - The id that uniquely identifies this calendar. This id should match the id of the placeholder element on the page. -
        -
        - - - - -
        -

        index - - Number -

        -
        -
        - The index of this item in the parent group -
        -
        - - - - -
        -

        Locale - - Object -

        -
        -
        - The local object which contains the Calendar's locale settings -
        -
        - - - - -
        -

        oDomContainer - - HTMLElement -

        -
        -
        - The DOM element reference that points to this calendar's container element. The calendar will be inserted into this element when the shell is rendered. -
        -
        - - - - -
        -

        Options - - Object -

        -
        -
        - The local object which contains the Calendar's options -
        -
        - - - - -
        -

        parent - - CalendarGroup -

        -
        -
        - The parent CalendarGroup, only to be set explicitly by the parent group -
        -
        - - - - -
        -

        renderStack - - Array[] -

        -
        -
        - The list of render functions, along with required parameters, used to render cells. -
        -
        - - - - -
        -

        Style.CSS_BODY - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CALENDAR - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_BOTTOM - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_HIGHLIGHT1 - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_HIGHLIGHT2 - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_HIGHLIGHT3 - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_HIGHLIGHT4 - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_HOVER - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_LEFT - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_OOB - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_OOM - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_RESTRICTED - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_RIGHT - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_SELECTABLE - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_SELECTED - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_SELECTOR - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_TODAY - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CELL_TOP - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CLOSE - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_CONTAINER - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_FOOTER - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_HEADER - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_HEADER_TEXT - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_NAV_LEFT - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_NAV_RIGHT - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_ROW_FOOTER - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_ROW_HEADER - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_SINGLE - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_WEEKDAY_CELL - - object -

        -
        -
        - -
        -
        - - - - -
        -

        Style.CSS_WEEKDAY_ROW - - object -

        -
        -
        - -
        -
        - - - - -
        -

        today - - Date -

        -
        -
        - A Date object representing today's date. -
        -
        - - - - -
        -

        YAHOO.widget.Calendar._DEFAULT_CONFIG - - private static final Object -

        -
        -
        - The set of default Config property keys and values for the Calendar -
        -
        - - - - -
        -

        YAHOO.widget.Calendar._EVENT_TYPES - - private static final Object -

        -
        -
        - The set of Custom Event types supported by the Calendar -
        -
        - - - - -
        -

        YAHOO.widget.Calendar._STYLES - - private static final Object -

        -
        -
        - The set of default style constants for the Calendar -
        -
        - - - - -
        -

        YAHOO.widget.Calendar.DATE - - static final String -

        -
        -
        - Type constant used for renderers to represent an individual date (M/D/Y) -
        -
        - - - - -
        -

        YAHOO.widget.Calendar.DISPLAY_DAYS - - static final Number -

        -
        -
        - Constant that represents the total number of date cells that are displayed in a given month -
        -
        - - - - -
        -

        YAHOO.widget.Calendar.IMG_ROOT - - static String -

        -
        -
        - The path to be used for images loaded for the Calendar -
        -
        - - - -
        - Deprecated: You can now customize images by overriding the calclose, calnavleft and calnavright default CSS classes for the close icon, left arrow and right arrow respectively -
        - -
        -

        YAHOO.widget.Calendar.LONG - - static final String -

        -
        -
        - Constant used to represent long date field string formats (e.g. Monday or February) -
        -
        - - - - -
        -

        YAHOO.widget.Calendar.MEDIUM - - static final String -

        -
        -
        - Constant used to represent medium date field string formats (e.g. Mon) -
        -
        - - - - -
        -

        YAHOO.widget.Calendar.MONTH - - static final String -

        -
        -
        - Type constant used for renderers to represent a month across any year -
        -
        - - - - -
        -

        YAHOO.widget.Calendar.MONTH_DAY - - static final String -

        -
        -
        - Type constant used for renderers to represent an individual date across any year (M/D) -
        -
        - - - - -
        -

        YAHOO.widget.Calendar.ONE_CHAR - - static final String -

        -
        -
        - Constant used to represent single character date field string formats (e.g. M, T, W) -
        -
        - - - - -
        -

        YAHOO.widget.Calendar.RANGE - - static final String -

        -
        -
        - Type constant used for renderers to represent a range of individual dates (M/D/Y-M/D/Y) -
        -
        - - - - -
        -

        YAHOO.widget.Calendar.SHORT - - static final String -

        -
        -
        - Constant used to represent short date field string formats (e.g. Tu or Feb) -
        -
        - - - - -
        -

        YAHOO.widget.Calendar.STOP_RENDER - - static final String -

        -
        -
        - Constant used for halting the execution of the remainder of the render stack -
        -
        - - - - -
        -

        YAHOO.widget.Calendar.WEEKDAY - - static final String -

        -
        -
        - Type constant used for renderers to represent a weekday -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - _addRenderer

        -
        - - private - - - void - _addRenderer - ( - - - type - - - , - aDates - - - , - fnRender - - - ) - - -
        - The private method used for adding cell renderers to the local render stack. -This method is called by other methods that set the renderer type prior to the method call. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The type string that indicates the type of date renderer being added. -Values are YAHOO.widget.Calendar.DATE, YAHOO.widget.Calendar.MONTH_DAY, YAHOO.widget.Calendar.WEEKDAY, -YAHOO.widget.Calendar.RANGE, YAHOO.widget.Calendar.MONTH -
        -
        - aDates <Array> - An array of dates used to construct the renderer. The format varies based -on the renderer type -
        -
        - fnRender <Function> - The function executed to render cells that match the render rules for this renderer. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _fieldArraysAreEqual

        -
        - - private - - - Boolean - _fieldArraysAreEqual - ( - - - array1 - - - , - array2 - - - ) - - -
        - Converts a date field array [yyyy,mm,dd] to a JavaScript Date object. -
        - -
        - -
        -
        Parameters:
        -
        - array1 <Number[]> - The first date field array to compare -
        -
        - array2 <Number[]> - The first date field array to compare -
        -
        - -
        -
        Returns: - - Boolean -
        -
        The boolean that represents the equality of the two arrays
        -
        - -
        - -
        -
        -

        - _indexOfSelectedFieldArray

        -
        - - private - - - Number - _indexOfSelectedFieldArray - ( - - - find - - - ) - - -
        - Gets the index of a date field array [yyyy,mm,dd] in the current list of selected dates. -
        - -
        - -
        -
        Parameters:
        -
        - find <Number[]> - The date field array to search for -
        -
        - -
        -
        Returns: - - Number -
        -
        The index of the date field array within the collection of selected dates. --1 will be returned if the date is not found.
        -
        - -
        - -
        -
        -

        - _parseDate

        -
        - - private - - - void - _parseDate - ( - - - sDate - - - ) - - -
        - Converts a date string to a date field array -
        - -
        - -
        -
        Parameters:
        -
        - sDate <String> - Date string. Valid formats are mm/dd and mm/dd/yyyy. -
        -
        - -
        -
        Returns: - - void -
        -
        A date field array representing the string passed to the method
        -
        - -
        - -
        -
        -

        - _parseDates

        -
        - - private - - - void - _parseDates - ( - - - sDates - - - ) - - -
        - Converts a multi or single-date string to an array of date field arrays -
        - -
        - -
        -
        Parameters:
        -
        - sDates <String> - Date string with one or more comma-delimited dates. Valid formats are mm/dd, mm/dd/yyyy, mm/dd/yyyy-mm/dd/yyyy -
        -
        - -
        -
        Returns: - - void -
        -
        An array of date field arrays
        -
        - -
        - -
        -
        -

        - _parsePageDate

        -
        - - private - - - Date - _parsePageDate - ( - - - date - - - ) - - -
        - Parses a pagedate configuration property value. The value can either be specified as a string of form "mm/yyyy" or a Date object -and is parsed into a Date object normalized to the first day of the month. If no value is passed in, the month and year from today's date are used to create the Date object -
        - -
        - -
        -
        Parameters:
        -
        - date <Date|String> - Pagedate value which needs to be parsed -
        -
        - -
        -
        Returns: - - Date -
        -
        The Date object representing the pagedate
        -
        - -
        - -
        -
        -

        - _parseRange

        -
        - - private - - - void - _parseRange - ( - - - startDate - - - , - endDate - - - ) - - -
        - Converts a date range to the full list of included dates -
        - -
        - -
        -
        Parameters:
        -
        - startDate <Number[]> - Date field array representing the first date in the range -
        -
        - endDate <Number[]> - Date field array representing the last date in the range -
        -
        - -
        -
        Returns: - - void -
        -
        An array of date field arrays
        -
        - -
        - -
        -
        -

        - _toDate

        -
        - - private - - - Date - _toDate - ( - - - dateFieldArray - - - ) - - -
        - Converts a date field array [yyyy,mm,dd] to a JavaScript Date object. -
        - -
        - -
        -
        Parameters:
        -
        - dateFieldArray <Number[]> - The date field array to convert to a JavaScript Date. -
        -
        - -
        -
        Returns: - - Date -
        -
        JavaScript Date object representing the date field array
        -
        - -
        - -
        -
        -

        - _toFieldArray

        -
        - - private - - - Array[](Number[]) - _toFieldArray - ( - - - date - - - ) - - -
        - Converts a date (either a JavaScript Date object, or a date string) to the internal data structure -used to represent dates: [[yyyy,mm,dd],[yyyy,mm,dd]]. -
        - -
        - -
        -
        Parameters:
        -
        - date <String/Date/Date[]> - The date string of dates to deselect in the current calendar. Valid formats are -individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006). -Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005). -This method can also take a JavaScript Date object or an array of Date objects. -
        -
        - -
        -
        Returns: - - Array[](Number[]) -
        -
        Array of date field arrays
        -
        - -
        - -
        -
        -

        - addMonthRenderer

        -
        - - - - - void - addMonthRenderer - ( - - - month - - - , - fnRender - - - ) - - -
        - Adds a month to the render stack. The function reference passed to this method will be executed -when a date cell matches the month passed to this method. -
        - -
        - -
        -
        Parameters:
        -
        - month <Number> - The month (1-12) to associate with this renderer -
        -
        - fnRender <Function> - The function executed to render cells that match the render rules for this renderer. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addMonths

        -
        - - - - - void - addMonths - ( - - - count - - - ) - - -
        - Adds the designated number of months to the current calendar month, and sets the current -calendar page date to the new month. -
        - -
        - -
        -
        Parameters:
        -
        - count <Number> - The number of months to add to the current calendar -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addRenderer

        -
        - - - - - void - addRenderer - ( - - - sDates - - - , - fnRender - - - ) - - -
        - Adds a renderer to the render stack. The function reference passed to this method will be executed -when a date cell matches the conditions specified in the date string for this renderer. -
        - -
        - -
        -
        Parameters:
        -
        - sDates <String> - A date string to associate with the specified renderer. Valid formats -include date (12/24/2005), month/day (12/24), and range (12/1/2004-1/1/2005) -
        -
        - fnRender <Function> - The function executed to render cells that match the render rules for this renderer. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addWeekdayRenderer

        -
        - - - - - void - addWeekdayRenderer - ( - - - weekday - - - , - fnRender - - - ) - - -
        - Adds a weekday to the render stack. The function reference passed to this method will be executed -when a date cell matches the weekday passed to this method. -
        - -
        - -
        -
        Parameters:
        -
        - weekday <Number> - The weekday (0-6) to associate with this renderer -
        -
        - fnRender <Function> - The function executed to render cells that match the render rules for this renderer. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addYears

        -
        - - - - - void - addYears - ( - - - count - - - ) - - -
        - Adds the designated number of years to the current calendar, and sets the current -calendar page date to the new month. -
        - -
        - -
        -
        Parameters:
        -
        - count <Number> - The number of years to add to the current calendar -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - applyListeners

        -
        - - - - - void - applyListeners - ( - ) - - -
        - Applies the Calendar's DOM listeners to applicable elements. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - buildDayLabel

        -
        - - - - - String - buildDayLabel - ( - - - workingDate - - - ) - - -
        - Builds the date digit that will be displayed in calendar cells -
        - -
        - -
        -
        Parameters:
        -
        - workingDate <Date> - The current working date -
        -
        - -
        -
        Returns: - - String -
        -
        The formatted day label
        -
        - -
        - -
        -
        -

        - buildMonthLabel

        -
        - - - - - String - buildMonthLabel - ( - ) - - -
        - Builds the date label that will be displayed in the calendar header or -footer, depending on configuration. -
        - -
        - - -
        -
        Returns: - - String -
        -
        The formatted calendar month label
        -
        - -
        - -
        -
        -

        - buildWeekdays

        -
        - - - - - Array - buildWeekdays - ( - - - html - - - ) - - -
        - Renders the Calendar's weekday headers. -
        - -
        - -
        -
        Parameters:
        -
        - html <Array> - The current working HTML array -
        -
        - -
        -
        Returns: - - Array -
        -
        The current working HTML array
        -
        - -
        - -
        -
        -

        - clear

        -
        - - - - - void - clear - ( - ) - - -
        - Clears the selected dates in the current calendar widget and sets the calendar -to the current month and year. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - clearAllBodyCellStyles

        -
        - - - - - void - clearAllBodyCellStyles - ( - - - The - - - ) - - -
        - Removes all styles from all body cells in the current calendar table. -
        - -
        - -
        -
        Parameters:
        -
        - The <style> - CSS class name to remove from all calendar body cells -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - clearElement

        -
        - - - - - void - clearElement - ( - - - The - - - ) - - -
        - Clears the inner HTML, CSS class and style information from the specified cell. -
        - -
        - -
        -
        Parameters:
        -
        - The <HTMLTableCellElement> - cell to clear -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configClose

        -
        - - - - - void - configClose - ( - ) - - -
        - Default handler for the "close" property -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configIframe

        -
        - - - - - void - configIframe - ( - ) - - -
        - Renders the built-in IFRAME shim for the IE6 and below -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configLocale

        -
        - - - - - void - configLocale - ( - ) - - -
        - The default handler for all configuration locale properties -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configLocaleValues

        -
        - - - - - void - configLocaleValues - ( - ) - - -
        - The default handler for all configuration locale field length properties -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configMaxDate

        -
        - - - - - void - configMaxDate - ( - ) - - -
        - The default handler for the "maxdate" property -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configMinDate

        -
        - - - - - void - configMinDate - ( - ) - - -
        - The default handler for the "mindate" property -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configOptions

        -
        - - - - - void - configOptions - ( - ) - - -
        - The default handler for all configuration options properties -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configPageDate

        -
        - - - - - void - configPageDate - ( - ) - - -
        - The default handler for the "pagedate" property -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configSelected

        -
        - - - - - void - configSelected - ( - ) - - -
        - The default handler for the "selected" property -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configTitle

        -
        - - - - - void - configTitle - ( - ) - - -
        - Default handler for the "title" property -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - deselect

        -
        - - - - - Date[] - deselect - ( - - - date - - - ) - - -
        - Deselects a date or a collection of dates on the current calendar. This method, by default, -does not call the render method explicitly. Once deselection has completed, render must be -called for the changes to be reflected visually. -
        - -
        - -
        -
        Parameters:
        -
        - date <String/Date/Date[]> - The date string of dates to deselect in the current calendar. Valid formats are -individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006). -Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005). -This method can also take a JavaScript Date object or an array of Date objects. -
        -
        - -
        -
        Returns: - - Date[] -
        -
        Array of JavaScript Date objects representing all individual dates that are currently selected.
        -
        - -
        - -
        -
        -

        - deselectAll

        -
        - - - - - Date[] - deselectAll - ( - ) - - -
        - Deselects all dates on the current calendar. -
        - -
        - - -
        -
        Returns: - - Date[] -
        -
        Array of JavaScript Date objects representing all individual dates that are currently selected. -Assuming that this function executes properly, the return value should be an empty array. -However, the empty array is returned for the sake of being able to check the selection status -of the calendar.
        -
        - -
        - -
        -
        -

        - deselectCell

        -
        - - - - - Date[] - deselectCell - ( - - - cellIndex - - - ) - - -
        - Deselects a date on the current calendar by referencing the index of the cell that should be deselected. -This method is used to easily deselect a single cell (usually with a mouse click) without having to do -a full render. The selected style is removed from the cell directly. -
        - -
        - -
        -
        Parameters:
        -
        - cellIndex <Number> - The index of the cell to deselect in the current calendar. -
        -
        - -
        -
        Returns: - - Date[] -
        -
        Array of JavaScript Date objects representing all individual dates that are currently selected.
        -
        - -
        - -
        -
        -

        - doCellMouseOut

        -
        - - - - - void - doCellMouseOut - ( - - - e - - - , - cal - - - ) - - -
        - The event that is executed when the user moves the mouse out of a cell -
        - -
        - -
        -
        Parameters:
        -
        - e <DOMEvent> - The event -
        -
        - cal <Calendar> - A reference to the calendar passed by the Event utility -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - doCellMouseOver

        -
        - - - - - void - doCellMouseOver - ( - - - e - - - , - cal - - - ) - - -
        - The event that is executed when the user hovers over a cell -
        - -
        - -
        -
        Parameters:
        -
        - e <DOMEvent> - The event -
        -
        - cal <Calendar> - A reference to the calendar passed by the Event utility -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - doSelectCell

        -
        - - - - - void - doSelectCell - ( - - - e - - - , - cal - - - ) - - -
        - The default event function that is attached to a date link within a calendar cell -when the calendar is rendered. -
        - -
        - -
        -
        Parameters:
        -
        - e <DOMEvent> - The event -
        -
        - cal <Calendar> - A reference to the calendar passed by the Event utility -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getDateByCellId

        -
        - - - - - Date - getDateByCellId - ( - - - id - - - ) - - -
        - Retrieves the Date object for the specified Calendar cell -
        - -
        - -
        -
        Parameters:
        -
        - id <String> - The id of the cell -
        -
        - -
        -
        Returns: - - Date -
        -
        The Date object for the specified Calendar cell
        -
        - -
        - -
        -
        -

        - getDateFieldsByCellId

        -
        - - - - - Array - getDateFieldsByCellId - ( - - - id - - - ) - - -
        - Retrieves the Date object for the specified Calendar cell -
        - -
        - -
        -
        Parameters:
        -
        - id <String> - The id of the cell -
        -
        - -
        -
        Returns: - - Array -
        -
        The array of Date fields for the specified Calendar cell
        -
        - -
        - -
        -
        -

        - getSelectedDates

        -
        - - - - - Date[] - getSelectedDates - ( - ) - - -
        - Gets the list of currently selected dates from the calendar. -
        - -
        - - -
        -
        Returns: - - Date[] -
        -
        An array of currently selected JavaScript Date objects.
        -
        - -
        - -
        -
        -

        - hide

        -
        - - - - - void - hide - ( - ) - - -
        - Hides the Calendar's outer container from view. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - id - - - , - containerId - - - , - config - - - ) - - -
        - Initializes the Calendar widget. -
        - -
        - -
        -
        Parameters:
        -
        - id <String> - The id of the table element that will represent the calendar widget -
        -
        - containerId <String> - The id of the container div element that will wrap the calendar table -
        -
        - config <Object> - The configuration object containing the Calendar's arguments -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initEvents

        -
        - - - - - void - initEvents - ( - ) - - -
        - Initializes Calendar's built-in CustomEvents -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initStyles

        -
        - - - - - void - initStyles - ( - ) - - -
        - Defines the style constants for the Calendar -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - isDateOOM

        -
        - - - - - Boolean - isDateOOM - ( - - - date - - - ) - - -
        - Determines whether a given date is OOM (out of month). -
        - -
        - -
        -
        Parameters:
        -
        - date <Date> - The JavaScript Date object for which to check the OOM status -
        -
        - -
        -
        Returns: - - Boolean -
        -
        true if the date is OOM
        -
        - -
        - -
        -
        -

        - nextMonth

        -
        - - - - - void - nextMonth - ( - ) - - -
        - Navigates to the next month page in the calendar widget. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - nextYear

        -
        - - - - - void - nextYear - ( - ) - - -
        - Navigates to the next year in the currently selected month in the calendar widget. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onBeforeDeselect

        -
        - - - - - void - onBeforeDeselect - ( - ) - - -
        - Event executed before a date is deselected in the calendar widget. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Event handlers for this event should be susbcribed to beforeDeselectEvent. -
        -
        - -
        -
        -

        - onBeforeSelect

        -
        - - - - - void - onBeforeSelect - ( - ) - - -
        - Event executed before a date is selected in the calendar widget. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Event handlers for this event should be susbcribed to beforeSelectEvent. -
        -
        - -
        -
        -

        - onChangePage

        -
        - - - - - void - onChangePage - ( - ) - - -
        - Event executed when the user navigates to a different calendar page. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Event handlers for this event should be susbcribed to changePageEvent. -
        -
        - -
        -
        -

        - onClear

        -
        - - - - - void - onClear - ( - ) - - -
        - Event executed when the calendar widget is completely cleared to the current month with no selections. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Event handlers for this event should be susbcribed to clearEvent. -
        -
        - -
        -
        -

        - onDeselect

        -
        - - - - - void - onDeselect - ( - - - selected - - - ) - - -
        - Event executed when a date is deselected in the calendar widget. -
        - -
        - -
        -
        Parameters:
        -
        - selected <Array> - An array of date field arrays representing which date or dates were deselected. Example: [ [2006,8,6],[2006,8,7],[2006,8,8] ] -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Event handlers for this event should be susbcribed to deselectEvent. -
        -
        - -
        -
        -

        - onRender

        -
        - - - - - void - onRender - ( - ) - - -
        - Event executed when the calendar widget is rendered. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Event handlers for this event should be susbcribed to renderEvent. -
        -
        - -
        -
        -

        - onReset

        -
        - - - - - void - onReset - ( - ) - - -
        - Event executed when the calendar widget is reset to its original state. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Event handlers for this event should be susbcribed to resetEvemt. -
        -
        - -
        -
        -

        - onSelect

        -
        - - - - - void - onSelect - ( - - - selected - - - ) - - -
        - Event executed when a date is selected in the calendar widget. -
        - -
        - -
        -
        Parameters:
        -
        - selected <Array> - An array of date field arrays representing which date or dates were selected. Example: [ [2006,8,6],[2006,8,7],[2006,8,8] ] -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated Event handlers for this event should be susbcribed to selectEvent. -
        -
        - -
        -
        -

        - previousMonth

        -
        - - - - - void - previousMonth - ( - ) - - -
        - Navigates to the previous month page in the calendar widget. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - previousYear

        -
        - - - - - void - previousYear - ( - ) - - -
        - Navigates to the previous year in the currently selected month in the calendar widget. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - refreshLocale

        -
        - - private - - - void - refreshLocale - ( - ) - - -
        - Refreshes the locale values used to build the Calendar. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - render

        -
        - - - - - void - render - ( - ) - - -
        - Renders the calendar after it has been configured. The render() method has a specific call chain that will execute -when the method is called: renderHeader, renderBody, renderFooter. -Refer to the documentation for those methods for information on -individual render tasks. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - renderBody

        -
        - - - - - Array - renderBody - ( - - - workingDate - - - , - html - - - ) - - -
        - Renders the calendar body. -
        - -
        - -
        -
        Parameters:
        -
        - workingDate <Date> - The current working Date being used for the render process -
        -
        - html <Array> - The current working HTML array -
        -
        - -
        -
        Returns: - - Array -
        -
        The current working HTML array
        -
        - -
        - -
        -
        -

        - renderBodyCellRestricted

        -
        - - - - - String - renderBodyCellRestricted - ( - - - workingDate - - - , - cell - - - ) - - -
        - Renders the current calendar cell as a non-selectable "black-out" date using the default -restricted style. -
        - -
        - -
        -
        Parameters:
        -
        - workingDate <Date> - The current working Date object being used to generate the calendar -
        -
        - cell <HTMLTableCellElement> - The current working cell in the calendar -
        -
        - -
        -
        Returns: - - String -
        -
        YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering -should not be terminated
        -
        - -
        - -
        -
        -

        - renderCellDefault

        -
        - - - - - void - renderCellDefault - ( - - - workingDate - - - , - cell - - - ) - - -
        - Renders a single standard calendar cell in the calendar widget table. -All logic for determining how a standard default cell will be rendered is -encapsulated in this method, and must be accounted for when extending the -widget class. -
        - -
        - -
        -
        Parameters:
        -
        - workingDate <Date> - The current working Date object being used to generate the calendar -
        -
        - cell <HTMLTableCellElement> - The current working cell in the calendar -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - renderCellNotThisMonth

        -
        - - - - - String - renderCellNotThisMonth - ( - - - workingDate - - - , - cell - - - ) - - -
        - Applies the default style used for rendering dates that are not a part of the current -month (preceding or trailing the cells for the current month) -
        - -
        - -
        -
        Parameters:
        -
        - workingDate <Date> - The current working Date object being used to generate the calendar -
        -
        - cell <HTMLTableCellElement> - The current working cell in the calendar -
        -
        - -
        -
        Returns: - - String -
        -
        YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering -should not be terminated
        -
        - -
        - -
        -
        -

        - renderCellStyleHighlight1

        -
        - - - - - void - renderCellStyleHighlight1 - ( - - - workingDate - - - , - cell - - - ) - - -
        - Renders a single standard calendar cell using the CSS hightlight1 style -
        - -
        - -
        -
        Parameters:
        -
        - workingDate <Date> - The current working Date object being used to generate the calendar -
        -
        - cell <HTMLTableCellElement> - The current working cell in the calendar -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - renderCellStyleHighlight2

        -
        - - - - - void - renderCellStyleHighlight2 - ( - - - workingDate - - - , - cell - - - ) - - -
        - Renders a single standard calendar cell using the CSS hightlight2 style -
        - -
        - -
        -
        Parameters:
        -
        - workingDate <Date> - The current working Date object being used to generate the calendar -
        -
        - cell <HTMLTableCellElement> - The current working cell in the calendar -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - renderCellStyleHighlight3

        -
        - - - - - void - renderCellStyleHighlight3 - ( - - - workingDate - - - , - cell - - - ) - - -
        - Renders a single standard calendar cell using the CSS hightlight3 style -
        - -
        - -
        -
        Parameters:
        -
        - workingDate <Date> - The current working Date object being used to generate the calendar -
        -
        - cell <HTMLTableCellElement> - The current working cell in the calendar -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - renderCellStyleHighlight4

        -
        - - - - - void - renderCellStyleHighlight4 - ( - - - workingDate - - - , - cell - - - ) - - -
        - Renders a single standard calendar cell using the CSS hightlight4 style -
        - -
        - -
        -
        Parameters:
        -
        - workingDate <Date> - The current working Date object being used to generate the calendar -
        -
        - cell <HTMLTableCellElement> - The current working cell in the calendar -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - renderCellStyleSelected

        -
        - - - - - String - renderCellStyleSelected - ( - - - workingDate - - - , - cell - - - ) - - -
        - Applies the default style used for rendering selected dates to the current calendar cell -
        - -
        - -
        -
        Parameters:
        -
        - workingDate <Date> - The current working Date object being used to generate the calendar -
        -
        - cell <HTMLTableCellElement> - The current working cell in the calendar -
        -
        - -
        -
        Returns: - - String -
        -
        YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering -should not be terminated
        -
        - -
        - -
        -
        -

        - renderCellStyleToday

        -
        - - - - - void - renderCellStyleToday - ( - - - workingDate - - - , - cell - - - ) - - -
        - Applies the default style used for rendering today's date to the current calendar cell -
        - -
        - -
        -
        Parameters:
        -
        - workingDate <Date> - The current working Date object being used to generate the calendar -
        -
        - cell <HTMLTableCellElement> - The current working cell in the calendar -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - renderFooter

        -
        - - - - - Array - renderFooter - ( - - - html - - - ) - - -
        - Renders the calendar footer. In the default implementation, there is -no footer. -
        - -
        - -
        -
        Parameters:
        -
        - html <Array> - The current working HTML array -
        -
        - -
        -
        Returns: - - Array -
        -
        The current working HTML array
        -
        - -
        - -
        -
        -

        - renderHeader

        -
        - - - - - Array - renderHeader - ( - - - html - - - ) - - -
        - Renders the calendar header. -
        - -
        - -
        -
        Parameters:
        -
        - html <Array> - The current working HTML array -
        -
        - -
        -
        Returns: - - Array -
        -
        The current working HTML array
        -
        - -
        - -
        -
        -

        - renderOutOfBoundsDate

        -
        - - - - - String - renderOutOfBoundsDate - ( - - - workingDate - - - , - cell - - - ) - - -
        - Renders a cell that falls before the minimum date or after the maximum date. -widget class. -
        - -
        - -
        -
        Parameters:
        -
        - workingDate <Date> - The current working Date object being used to generate the calendar -
        -
        - cell <HTMLTableCellElement> - The current working cell in the calendar -
        -
        - -
        -
        Returns: - - String -
        -
        YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering -should not be terminated
        -
        - -
        - -
        -
        -

        - renderRowFooter

        -
        - - - - - void - renderRowFooter - ( - - - weekNum - - - , - cell - - - ) - - -
        - Renders the row footer for a week. -
        - -
        - -
        -
        Parameters:
        -
        - weekNum <Number> - The week number of the current row -
        -
        - cell <Array> - The current working HTML array -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - renderRowHeader

        -
        - - - - - void - renderRowHeader - ( - - - weekNum - - - , - cell - - - ) - - -
        - Renders the row header for a week. -
        - -
        - -
        -
        Parameters:
        -
        - weekNum <Number> - The week number of the current row -
        -
        - cell <Array> - The current working HTML array -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - reset

        -
        - - - - - void - reset - ( - ) - - -
        - Resets the calendar widget to the originally selected month and year, and -sets the calendar to the initial selection(s). -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - resetRenderers

        -
        - - - - - void - resetRenderers - ( - ) - - -
        - Resets the render stack of the current calendar to its original pre-render value. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - select

        -
        - - - - - Date[] - select - ( - - - date - - - ) - - -
        - Selects a date or a collection of dates on the current calendar. This method, by default, -does not call the render method explicitly. Once selection has completed, render must be -called for the changes to be reflected visually. -
        - -
        - -
        -
        Parameters:
        -
        - date <String/Date/Date[]> - The date string of dates to select in the current calendar. Valid formats are -individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006). -Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005). -This method can also take a JavaScript Date object or an array of Date objects. -
        -
        - -
        -
        Returns: - - Date[] -
        -
        Array of JavaScript Date objects representing all individual dates that are currently selected.
        -
        - -
        - -
        -
        -

        - selectCell

        -
        - - - - - Date[] - selectCell - ( - - - cellIndex - - - ) - - -
        - Selects a date on the current calendar by referencing the index of the cell that should be selected. -This method is used to easily select a single cell (usually with a mouse click) without having to do -a full render. The selected style is applied to the cell directly. -
        - -
        - -
        -
        Parameters:
        -
        - cellIndex <Number> - The index of the cell to select in the current calendar. -
        -
        - -
        -
        Returns: - - Date[] -
        -
        Array of JavaScript Date objects representing all individual dates that are currently selected.
        -
        - -
        - -
        -
        -

        - setMonth

        -
        - - - - - void - setMonth - ( - - - month - - - ) - - -
        - Sets the calendar's month explicitly -
        - -
        - -
        -
        Parameters:
        -
        - month <Number> - The numeric month, from 0 (January) to 11 (December) -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setYear

        -
        - - - - - void - setYear - ( - - - year - - - ) - - -
        - Sets the calendar's year explicitly. -
        - -
        - -
        -
        Parameters:
        -
        - year <Number> - The numeric 4-digit year -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - show

        -
        - - - - - void - show - ( - ) - - -
        - Shows the Calendar's outer container. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - styleCellDefault

        -
        - - - - - void - styleCellDefault - ( - - - workingDate - - - , - cell - - - ) - - -
        - Styles a selectable cell. -
        - -
        - -
        -
        Parameters:
        -
        - workingDate <Date> - The current working Date object being used to generate the calendar -
        -
        - cell <HTMLTableCellElement> - The current working cell in the calendar -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - subtractMonths

        -
        - - - - - void - subtractMonths - ( - - - count - - - ) - - -
        - Subtracts the designated number of months from the current calendar month, and sets the current -calendar page date to the new month. -
        - -
        - -
        -
        Parameters:
        -
        - count <Number> - The number of months to subtract from the current calendar -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - subtractYears

        -
        - - - - - void - subtractYears - ( - - - count - - - ) - - -
        - Subtcats the designated number of years from the current calendar, and sets the current -calendar page date to the new month. -
        - -
        - -
        -
        Parameters:
        -
        - count <Number> - The number of years to subtract from the current calendar -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representation of the object. -
        - -
        - - -
        -
        Returns: - - String -
        -
        A string representation of the Calendar object.
        -
        - -
        - -
        -
        -

        - validate

        -
        - - - - - void - validate - ( - ) - - -
        - Validates the calendar widget. This method has no default implementation -and must be extended by subclassing the widget. -
        - -
        - - -
        -
        Returns: - - void -
        -
        Should return true if the widget validates, and false if -it doesn't.
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Events

        -
        -

        - beforeDeselectEvent

        -
        - - - - - beforeDeselectEvent - - ( - ) - - - -
        - Fired before a selection is made -
        - -
        - - - - -
        - -
        -
        -

        - beforeRenderEvent

        -
        - - - - - beforeRenderEvent - - ( - ) - - - -
        - Fired before the Calendar is rendered -
        - -
        - - - - -
        - -
        -
        -

        - beforeSelectEvent

        -
        - - - - - beforeSelectEvent - - ( - ) - - - -
        - Fired before a selection is made -
        - -
        - - - - -
        - -
        -
        -

        - changePageEvent

        -
        - - - - - changePageEvent - - ( - ) - - - -
        - Fired when the Calendar page is changed -
        - -
        - - - - -
        - -
        -
        -

        - clearEvent

        -
        - - - - - clearEvent - - ( - ) - - - -
        - Fired when the Calendar is cleared -
        - -
        - - - - -
        - -
        -
        -

        - deselectEvent

        -
        - - - - - deselectEvent - - ( - - - Array - - - ) - - - -
        - Fired when a selection is made -
        - -
        - - -
        -
        Parameters:
        -
        - Array <Array> - of Date field arrays in the format [YYYY, MM, DD]. -
        -
        - - -
        - -
        -
        -

        - renderEvent

        -
        - - - - - renderEvent - - ( - ) - - - -
        - Fired when the Calendar is rendered -
        - -
        - - - - -
        - -
        -
        -

        - resetEvent

        -
        - - - - - resetEvent - - ( - ) - - - -
        - Fired when the Calendar is reset -
        - -
        - - - - -
        - -
        -
        -

        - selectEvent

        -
        - - - - - selectEvent - - ( - - - Array - - - ) - - - -
        - Fired when a selection is made -
        - -
        - - -
        -
        Parameters:
        -
        - Array <Array> - of Date field arrays in the format [YYYY, MM, DD]. -
        -
        - - -
        - -
        -
        -
        -
        - - - -
        -

        Configuration Attributes

        -
        -

        close - - Boolean -

        -
        -
        - Whether or not a close button should be displayed for this Calendar -
        -
        - - -
        - Default Value: false -
        - -
        -

        DATE_DELIMITER - - String -

        -
        -
        - The value used to delimit individual dates in a date string passed to various Calendar functions. -
        -
        - - -
        - Default Value: "," -
        - -
        -

        DATE_FIELD_DELIMITER - - String -

        -
        -
        - The value used to delimit date fields in a date string passed to various Calendar functions. -
        -
        - - -
        - Default Value: "/" -
        - -
        -

        DATE_RANGE_DELIMITER - - String -

        -
        -
        - The value used to delimit date ranges in a date string passed to various Calendar functions. -
        -
        - - -
        - Default Value: "-" -
        - -
        -

        HIDE_BLANK_WEEKS - - Boolean -

        -
        -
        - True if the Calendar should suppress weeks that are not a part of the current month. False by default. -
        -
        - - -
        - Default Value: false -
        - -
        -

        iframe - - Boolean -

        -
        -
        - Whether or not an iframe shim should be placed under the Calendar to prevent select boxes from bleeding through in Internet Explorer 6 and below. -
        -
        - - -
        - Default Value: true -
        - -
        -

        LOCALE_MONTHS - - String -

        -
        -
        - The setting that determines which length of month labels should be used. Possible values are "short" and "long". -
        -
        - - -
        - Default Value: "long" -
        - -
        -

        LOCALE_WEEKDAYS - - String -

        -
        -
        - The setting that determines which length of weekday labels should be used. Possible values are "1char", "short", "medium", and "long". -
        -
        - - -
        - Default Value: "short" -
        - -
        -

        maxdate - - String -

        -
        -
        - The maximum selectable date in the current Calendar (mm/dd/yyyy) -
        -
        - - -
        - Default Value: null -
        - -
        -

        MD_DAY_POSITION - - Number -

        -
        -
        - The position of the day in a month/year date string -
        -
        - - -
        - Default Value: 2 -
        - -
        -

        MD_MONTH_POSITION - - Number -

        -
        -
        - The position of the month in a month/day date string -
        -
        - - -
        - Default Value: 1 -
        - -
        -

        MDY_DAY_POSITION - - Number -

        -
        -
        - The position of the day in a month/day/year date string -
        -
        - - -
        - Default Value: 2 -
        - -
        -

        MDY_MONTH_POSITION - - Number -

        -
        -
        - The position of the month in a month/day/year date string -
        -
        - - -
        - Default Value: 1 -
        - -
        -

        MDY_YEAR_POSITION - - Number -

        -
        -
        - The position of the year in a month/day/year date string -
        -
        - - -
        - Default Value: 3 -
        - -
        -

        mindate - - String -

        -
        -
        - The minimum selectable date in the current Calendar (mm/dd/yyyy) -
        -
        - - -
        - Default Value: null -
        - -
        -

        MONTHS_LONG - - String[] -

        -
        -
        - The long month labels for the current locale. -
        -
        - - -
        - Default Value: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" -
        - -
        -

        MONTHS_SHORT - - String[] -

        -
        -
        - The short month labels for the current locale. -
        -
        - - -
        - Default Value: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] -
        - -
        -

        MULTI_SELECT - - Boolean -

        -
        -
        - True if the Calendar should allow multiple selections. False by default. -
        -
        - - -
        - Default Value: false -
        - -
        -

        MY_MONTH_POSITION - - Number -

        -
        -
        - The position of the month in a month/year date string -
        -
        - - -
        - Default Value: 1 -
        - -
        -

        MY_YEAR_POSITION - - Number -

        -
        -
        - The position of the year in a month/year date string -
        -
        - - -
        - Default Value: 2 -
        - -
        -

        NAV_ARROW_LEFT - - String -

        -
        -
        - The image that should be used for the left navigation arrow. -
        -
        - -
        - DeprecatedYou can customize the image by overriding the default CSS class for the left arrow - "calnavleft" -
        - -
        - Default Value: null -
        - -
        -

        NAV_ARROW_RIGHT - - String -

        -
        -
        - The image that should be used for the right navigation arrow. -
        -
        - -
        - DeprecatedYou can customize the image by overriding the default CSS class for the right arrow - "calnavright" -
        - -
        - Default Value: null -
        - -
        -

        pagedate - - String -

        -
        -
        - The month/year representing the current visible Calendar date (mm/yyyy) -
        -
        - - -
        - Default Value: today's date -
        - -
        -

        selected - - String -

        -
        -
        - The date or range of dates representing the current Calendar selection -
        -
        - - -
        - Default Value: [] -
        - -
        -

        SHOW_WEEK_FOOTER - - Boolean -

        -
        -
        - True if the Calendar should show week row footers. False by default. -
        -
        - - -
        - Default Value: false -
        - -
        -

        SHOW_WEEK_HEADER - - Boolean -

        -
        -
        - True if the Calendar should show week row headers. False by default. -
        -
        - - -
        - Default Value: false -
        - -
        -

        SHOW_WEEKDAYS - - Boolean -

        -
        -
        - True if the Calendar should show weekday labels. True by default. -
        -
        - - -
        - Default Value: true -
        - -
        -

        START_WEEKDAY - - number -

        -
        -
        - The weekday the week begins on. Default is 0 (Sunday). -
        -
        - - -
        - Default Value: 0 -
        - -
        -

        title - - String -

        -
        -
        - The title to display above the Calendar's month header -
        -
        - - -
        - Default Value: "" -
        - -
        -

        WEEKDAYS_1CHAR - - String[] -

        -
        -
        - The 1-character weekday labels for the current locale. -
        -
        - - -
        - Default Value: ["S", "M", "T", "W", "T", "F", "S"] -
        - -
        -

        WEEKDAYS_LONG - - String[] -

        -
        -
        - The long weekday labels for the current locale. -
        -
        - - -
        - Default Value: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] -
        - -
        -

        WEEKDAYS_MEDIUM - - String[] -

        -
        -
        - The medium weekday labels for the current locale. -
        -
        - - -
        - Default Value: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] -
        - -
        -

        WEEKDAYS_SHORT - - String[] -

        -
        -
        - The short weekday labels for the current locale. -
        -
        - - -
        - Default Value: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"] -
        - -
        - -
        -
        - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.Calendar2up.html b/www/extras/yui/docs/YAHOO.widget.Calendar2up.html deleted file mode 100644 index 8b95a3e88..000000000 --- a/www/extras/yui/docs/YAHOO.widget.Calendar2up.html +++ /dev/null @@ -1,294 +0,0 @@ - - - - API: calendar YAHOO.widget.Calendar2up (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Calendar  2.2.2

        -

        - Yahoo! UI Library - > calendar - > YAHOO.widget.Calendar2up - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.Calendar2up - - - extends YAHOO.widget.CalendarGroup - - - - - - -

        - - - -
        Deprecated:The old Calendar2up class is no longer necessary, since CalendarGroup renders in a 2up view by default.
        - - -
        - -
        - - -
        -

        Properties

        -
        -

        Cal2up - - object -

        -
        -
        - -
        -
        - - - -
        - Deprecated: The old Calendar2up class is no longer necessary, since CalendarGroup renders in a 2up view by default. -
        - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.widget.CalendarGroup:

        -
        - - - cfg, - containerId, - id, - Locale, - oDomContainer, - Options, - pages - -
        -
        - - - - - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.CalendarGroup.html b/www/extras/yui/docs/YAHOO.widget.CalendarGroup.html deleted file mode 100644 index 2876150fb..000000000 --- a/www/extras/yui/docs/YAHOO.widget.CalendarGroup.html +++ /dev/null @@ -1,3142 +0,0 @@ - - - - API: calendar YAHOO.widget.CalendarGroup (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Calendar  2.2.2

        -

        - Yahoo! UI Library - > calendar - > YAHOO.widget.CalendarGroup - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.CalendarGroup - - - - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.widget.Calendar2up -
        -
        - - - -
        - YAHOO.widget.CalendarGroup is a special container class for YAHOO.widget.Calendar. This class facilitates -the ability to have multi-page calendar views that share a single dataset and are -dependent on each other. -The calendar group instance will refer to each of its elements using a 0-based index. -For example, to construct the placeholder for a calendar group widget with id "cal1" and -containerId of "cal1Container", the markup would be as follows: - -<div id="cal1Container_0"></div> -<div id="cal1Container_1"></div> - -The tables for the calendars ("cal1_0" and "cal1_1") will be inserted into those containers. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.CalendarGroup - - ( - - - - id - - , - containerId - - , - config - ) - -
        -
        -
        Parameters:
        -
        - id - <String> - - The id of the table element that will represent the calendar widget -
        -
        - containerId - <String> - - The id of the container div element that will wrap the calendar table -
        -
        - config - <Object> - - The configuration object containing the Calendar's arguments -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        cfg - - YAHOO.util.Config -

        -
        -
        - The Config object used to hold the configuration variables for the CalendarGroup -
        -
        - - - - -
        -

        containerId - - String -

        -
        -
        - The unique id associated with the CalendarGroup container -
        -
        - - - - -
        -

        id - - String -

        -
        -
        - The unique id associated with the CalendarGroup -
        -
        - - - - -
        -

        Locale - - Object -

        -
        -
        - The local object which contains the CalendarGroup's locale settings -
        -
        - - - - -
        -

        oDomContainer - - HTMLElement -

        -
        -
        - The outer containing element for the CalendarGroup -
        -
        - - - - -
        -

        Options - - Object -

        -
        -
        - The local object which contains the CalendarGroup's options -
        -
        - - - - -
        -

        pages - - YAHOO.widget.Calendar[] -

        -
        -
        - The collection of Calendar pages contained within the CalendarGroup -
        -
        - - - - -
        -

        YAHOO.widget.CalendarGroup._DEFAULT_CONFIG - - private static final Object -

        -
        -
        - The set of default Config property keys and values for the CalendarGroup -
        -
        - - - - -
        -

        YAHOO.widget.CalendarGroup.CSS_2UPCLOSE - - static final String -

        -
        -
        - CSS class representing the close icon for the 2-up calendar -
        -
        - - - -
        - Deprecated: Along with Calendar.IMG_ROOT and NAV_ARROW_LEFT, NAV_ARROW_RIGHT configuration properties. -Calendar's Style.CSS_CLOSE property now represents the CSS class used to render the close icon -
        - -
        -

        YAHOO.widget.CalendarGroup.CSS_2UPTITLE - - static final String -

        -
        -
        - CSS class representing the title for the 2-up calendar -
        -
        - - - - -
        -

        YAHOO.widget.CalendarGroup.CSS_CONTAINER - - static final String -

        -
        -
        - CSS class representing the container for the calendar -
        -
        - - - - -
        -

        YAHOO.widget.CalendarGroup.CSS_MULTI_UP - - static final String -

        -
        -
        - CSS class representing the container for the calendar -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - _setMonthOnDate

        -
        - - private - - - void - _setMonthOnDate - ( - - - date - - - , - iMonth - - - ) - - -
        - Sets the month on a Date object, taking into account year rollover if the month is less than 0 or greater than 11. -The Date object passed in is modified. It should be cloned before passing it into this method if the original value needs to be maintained -
        - -
        - -
        -
        Parameters:
        -
        - date <Date> - The Date object on which to set the month index -
        -
        - iMonth <Number> - The month index to set -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addMonthRenderer

        -
        - - - - - void - addMonthRenderer - ( - - - month - - - , - fnRender - - - ) - - -
        - Adds a month to the render stack. The function reference passed to this method will be executed -when a date cell matches the month passed to this method. -
        - -
        - -
        -
        Parameters:
        -
        - month <Number> - The month (1-12) to associate with this renderer -
        -
        - fnRender <Function> - The function executed to render cells that match the render rules for this renderer. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addMonths

        -
        - - - - - void - addMonths - ( - - - count - - - ) - - -
        - Adds the designated number of months to the current calendar month, and sets the current -calendar page date to the new month. -
        - -
        - -
        -
        Parameters:
        -
        - count <Number> - The number of months to add to the current calendar -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addRenderer

        -
        - - - - - void - addRenderer - ( - - - sDates - - - , - fnRender - - - ) - - -
        - Adds a renderer to the render stack. The function reference passed to this method will be executed -when a date cell matches the conditions specified in the date string for this renderer. -
        - -
        - -
        -
        Parameters:
        -
        - sDates <String> - A date string to associate with the specified renderer. Valid formats -include date (12/24/2005), month/day (12/24), and range (12/1/2004-1/1/2005) -
        -
        - fnRender <Function> - The function executed to render cells that match the render rules for this renderer. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addWeekdayRenderer

        -
        - - - - - void - addWeekdayRenderer - ( - - - weekday - - - , - fnRender - - - ) - - -
        - Adds a weekday to the render stack. The function reference passed to this method will be executed -when a date cell matches the weekday passed to this method. -
        - -
        - -
        -
        Parameters:
        -
        - weekday <Number> - The weekday (0-6) to associate with this renderer -
        -
        - fnRender <Function> - The function executed to render cells that match the render rules for this renderer. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addYears

        -
        - - - - - void - addYears - ( - - - count - - - ) - - -
        - Adds the designated number of years to the current calendar, and sets the current -calendar page date to the new month. -
        - -
        - -
        -
        Parameters:
        -
        - count <Number> - The number of years to add to the current calendar -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - callChildFunction

        -
        - - - - - void - callChildFunction - ( - - - fnName - - - , - args - - - ) - - -
        - Calls a function within all child Calendars within this CalendarGroup. -
        - -
        - -
        -
        Parameters:
        -
        - fnName <String> - The name of the function -
        -
        - args <Array> - The arguments to pass to the function -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - clear

        -
        - - - - - void - clear - ( - ) - - -
        - Clears the selected dates in the current calendar widget and sets the calendar -to the current month and year. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configPageDate

        -
        - - - - - void - configPageDate - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default Config handler for the "pagedate" property -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configPages

        -
        - - - - - void - configPages - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default Config handler for the "pages" property -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configSelected

        -
        - - - - - void - configSelected - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default Config handler for the CalendarGroup "selected" property -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - constructChild

        -
        - - - - - YAHOO.widget.Calendar - constructChild - ( - - - id - - - , - containerId - - - , - config - - - ) - - -
        - Constructs a child calendar. This method can be overridden if a subclassed version of the default -calendar is to be used. -
        - -
        - -
        -
        Parameters:
        -
        - id <String> - The id of the table element that will represent the calendar widget -
        -
        - containerId <String> - The id of the container div element that will wrap the calendar table -
        -
        - config <Object> - The configuration object containing the Calendar's arguments -
        -
        - -
        -
        Returns: - - YAHOO.widget.Calendar -
        -
        The YAHOO.widget.Calendar instance that is constructed
        -
        - -
        - -
        -
        -

        - delegateConfig

        -
        - - - - - void - delegateConfig - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - Delegates a configuration property to the CustomEvents associated with the CalendarGroup's children -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - deselect

        -
        - - - - - Date[] - deselect - ( - - - date - - - ) - - -
        - Deselects a date or a collection of dates on the current calendar. This method, by default, -does not call the render method explicitly. Once deselection has completed, render must be -called for the changes to be reflected visually. -
        - -
        - -
        -
        Parameters:
        -
        - date <String/Date/Date[]> - The date string of dates to deselect in the current calendar. Valid formats are -individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006). -Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005). -This method can also take a JavaScript Date object or an array of Date objects. -
        -
        - -
        -
        Returns: - - Date[] -
        -
        Array of JavaScript Date objects representing all individual dates that are currently selected.
        -
        - -
        - -
        -
        -

        - deselectAll

        -
        - - - - - Date[] - deselectAll - ( - ) - - -
        - Deselects all dates on the current calendar. -
        - -
        - - -
        -
        Returns: - - Date[] -
        -
        Array of JavaScript Date objects representing all individual dates that are currently selected. -Assuming that this function executes properly, the return value should be an empty array. -However, the empty array is returned for the sake of being able to check the selection status -of the calendar.
        -
        - -
        - -
        -
        -

        - deselectCell

        -
        - - - - - Date[] - deselectCell - ( - - - cellIndex - - - ) - - -
        - Deselects dates in the CalendarGroup based on the cell index provided. This method is used to select cells without having to do a full render. The selected style is applied to the cells directly. -deselectCell will deselect the cell at the specified index on each displayed Calendar page. -
        - -
        - -
        -
        Parameters:
        -
        - cellIndex <Number> - The index of the cell to deselect. -
        -
        - -
        -
        Returns: - - Date[] -
        -
        Array of JavaScript Date objects representing all individual dates that are currently selected.
        -
        - -
        - -
        -
        -

        - getSelectedDates

        -
        - - - - - void - getSelectedDates - ( - ) - - -
        - Gets the list of currently selected dates from the calendar. -
        - -
        - - -
        -
        Returns: - - void -
        -
        An array of currently selected JavaScript Date objects.
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - id - - - , - containerId - - - , - config - - - ) - - -
        - Initializes the calendar group. All subclasses must call this method in order for the -group to be initialized properly. -
        - -
        - -
        -
        Parameters:
        -
        - id <String> - The id of the table element that will represent the calendar widget -
        -
        - containerId <String> - The id of the container div element that will wrap the calendar table -
        -
        - config <Object> - The configuration object containing the Calendar's arguments -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initEvents

        -
        - - - - - void - initEvents - ( - ) - - -
        - Initializes CalendarGroup's built-in CustomEvents -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - nextMonth

        -
        - - - - - void - nextMonth - ( - ) - - -
        - Navigates to the next month page in the calendar widget. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - nextYear

        -
        - - - - - void - nextYear - ( - ) - - -
        - Navigates to the next year in the currently selected month in the calendar widget. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - previousMonth

        -
        - - - - - void - previousMonth - ( - ) - - -
        - Navigates to the previous month page in the calendar widget. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - previousYear

        -
        - - - - - void - previousYear - ( - ) - - -
        - Navigates to the previous year in the currently selected month in the calendar widget. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - render

        -
        - - - - - void - render - ( - ) - - -
        - Calls the render function of all child calendars within the group. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - renderFooter

        -
        - - - - - void - renderFooter - ( - ) - - -
        - Renders a footer for the 2-up calendar container. By default, this method is -unimplemented. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - renderHeader

        -
        - - - - - void - renderHeader - ( - ) - - -
        - Renders the header for the CalendarGroup. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - reset

        -
        - - - - - void - reset - ( - ) - - -
        - Resets the calendar widget to the originally selected month and year, and -sets the calendar to the initial selection(s). -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - select

        -
        - - - - - Date[] - select - ( - - - date - - - ) - - -
        - Selects a date or a collection of dates on the current calendar. This method, by default, -does not call the render method explicitly. Once selection has completed, render must be -called for the changes to be reflected visually. -
        - -
        - -
        -
        Parameters:
        -
        - date <String/Date/Date[]> - The date string of dates to select in the current calendar. Valid formats are -individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006). -Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005). -This method can also take a JavaScript Date object or an array of Date objects. -
        -
        - -
        -
        Returns: - - Date[] -
        -
        Array of JavaScript Date objects representing all individual dates that are currently selected.
        -
        - -
        - -
        -
        -

        - selectCell

        -
        - - - - - Date[] - selectCell - ( - - - cellIndex - - - ) - - -
        - Selects dates in the CalendarGroup based on the cell index provided. This method is used to select cells without having to do a full render. The selected style is applied to the cells directly. -The value of the MULTI_SELECT Configuration attribute will determine the set of dates which get selected. -
          -
        • If MULTI_SELECT is false, selectCell will select the cell at the specified index for only the last displayed Calendar page.
        • -
        • If MULTI_SELECT is true, selectCell will select the cell at the specified index, on each displayed Calendar page.
        • -
        -
        - -
        - -
        -
        Parameters:
        -
        - cellIndex <Number> - The index of the cell to be selected. -
        -
        - -
        -
        Returns: - - Date[] -
        -
        Array of JavaScript Date objects representing all individual dates that are currently selected.
        -
        - -
        - -
        -
        -

        - setChildFunction

        -
        - - - - - void - setChildFunction - ( - - - fnName - - - , - fn - - - ) - - -
        - Adds a function to all child Calendars within this CalendarGroup. -
        - -
        - -
        -
        Parameters:
        -
        - fnName <String> - The name of the function -
        -
        - fn <Function> - The function to apply to each Calendar page object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setMonth

        -
        - - - - - void - setMonth - ( - - - month - - - ) - - -
        - Sets the calendar group's month explicitly. This month will be set into the first -page of the multi-page calendar, and all other months will be iterated appropriately. -
        - -
        - -
        -
        Parameters:
        -
        - month <Number> - The numeric month, from 0 (January) to 11 (December) -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setYear

        -
        - - - - - void - setYear - ( - - - year - - - ) - - -
        - Sets the calendar group's year explicitly. This year will be set into the first -page of the multi-page calendar, and all other months will be iterated appropriately. -
        - -
        - -
        -
        Parameters:
        -
        - year <Number> - The numeric 4-digit year -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - sub

        -
        - - private - - - void - sub - ( - - - fn - - - , - obj - - - , - bOverride - - - ) - - -
        - Proxy subscriber to subscribe to the CalendarGroup's child Calendars' CustomEvents -
        - -
        - -
        -
        Parameters:
        -
        - fn <Function> - The function to subscribe to this CustomEvent -
        -
        - obj <Object> - The CustomEvent's scope object -
        -
        - bOverride <Boolean> - Whether or not to apply scope correction -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - subtractMonths

        -
        - - - - - void - subtractMonths - ( - - - count - - - ) - - -
        - Subtracts the designated number of months from the current calendar month, and sets the current -calendar page date to the new month. -
        - -
        - -
        -
        Parameters:
        -
        - count <Number> - The number of months to subtract from the current calendar -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - subtractYears

        -
        - - - - - void - subtractYears - ( - - - count - - - ) - - -
        - Subtcats the designated number of years from the current calendar, and sets the current -calendar page date to the new month. -
        - -
        - -
        -
        Parameters:
        -
        - count <Number> - The number of years to subtract from the current calendar -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representation of the object. -
        - -
        - - -
        -
        Returns: - - String -
        -
        A string representation of the CalendarGroup object.
        -
        - -
        - -
        -
        -

        - unsub

        -
        - - private - - - void - unsub - ( - - - fn - - - , - obj - - - ) - - -
        - Proxy unsubscriber to unsubscribe from the CalendarGroup's child Calendars' CustomEvents -
        - -
        - -
        -
        Parameters:
        -
        - fn <Function> - The function to subscribe to this CustomEvent -
        -
        - obj <Object> - The CustomEvent's scope object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Events

        -
        -

        - beforeDeselectEvent

        -
        - - - - - beforeDeselectEvent - - ( - ) - - - -
        - Fired before a selection is made -
        - -
        - - - - -
        - -
        -
        -

        - beforeRenderEvent

        -
        - - - - - beforeRenderEvent - - ( - ) - - - -
        - Fired before the Calendar is rendered -
        - -
        - - - - -
        - -
        -
        -

        - beforeSelectEvent

        -
        - - - - - beforeSelectEvent - - ( - ) - - - -
        - Fired before a selection is made -
        - -
        - - - - -
        - -
        -
        -

        - changePageEvent

        -
        - - - - - changePageEvent - - ( - ) - - - -
        - Fired when the Calendar page is changed -
        - -
        - - - - -
        - -
        -
        -

        - clearEvent

        -
        - - - - - clearEvent - - ( - ) - - - -
        - Fired when the Calendar is cleared -
        - -
        - - - - -
        - -
        -
        -

        - deselectEvent

        -
        - - - - - deselectEvent - - ( - - - Array - - - ) - - - -
        - Fired when a selection is made -
        - -
        - - -
        -
        Parameters:
        -
        - Array <Array> - of Date field arrays in the format [YYYY, MM, DD]. -
        -
        - - -
        - -
        -
        -

        - renderEvent

        -
        - - - - - renderEvent - - ( - ) - - - -
        - Fired when the Calendar is rendered -
        - -
        - - - - -
        - -
        -
        -

        - resetEvent

        -
        - - - - - resetEvent - - ( - ) - - - -
        - Fired when the Calendar is reset -
        - -
        - - - - -
        - -
        -
        -

        - selectEvent

        -
        - - - - - selectEvent - - ( - - - Array - - - ) - - - -
        - Fired when a selection is made -
        - -
        - - -
        -
        Parameters:
        -
        - Array <Array> - of Date field arrays in the format [YYYY, MM, DD]. -
        -
        - - -
        - -
        -
        -
        -
        - - - -
        -

        Configuration Attributes

        -
        -

        close - - Boolean -

        -
        -
        - Whether or not a close button should be displayed for this CalendarGroup -
        -
        - - -
        - Default Value: false -
        - -
        -

        DATE_DELIMITER - - String -

        -
        -
        - The value used to delimit individual dates in a date string passed to various Calendar functions. -
        -
        - - -
        - Default Value: "," -
        - -
        -

        DATE_FIELD_DELIMITER - - String -

        -
        -
        - The value used to delimit date fields in a date string passed to various Calendar functions. -
        -
        - - -
        - Default Value: "/" -
        - -
        -

        DATE_RANGE_DELIMITER - - String -

        -
        -
        - The value used to delimit date ranges in a date string passed to various Calendar functions. -
        -
        - - -
        - Default Value: "-" -
        - -
        -

        HIDE_BLANK_WEEKS - - Boolean -

        -
        -
        - True if the Calendar should suppress weeks that are not a part of the current month. False by default. -
        -
        - - -
        - Default Value: false -
        - -
        -

        iframe - - Boolean -

        -
        -
        - Whether or not an iframe shim should be placed under the Calendar to prevent select boxes from bleeding through in Internet Explorer 6 and below. -
        -
        - - -
        - Default Value: true -
        - -
        -

        LOCALE_MONTHS - - String -

        -
        -
        - The setting that determines which length of month labels should be used. Possible values are "short" and "long". -
        -
        - - -
        - Default Value: "long" -
        - -
        -

        LOCALE_WEEKDAYS - - String -

        -
        -
        - The setting that determines which length of weekday labels should be used. Possible values are "1char", "short", "medium", and "long". -
        -
        - - -
        - Default Value: "short" -
        - -
        -

        maxdate - - String -

        -
        -
        - The maximum selectable date in the current Calendar (mm/dd/yyyy) -
        -
        - - -
        - Default Value: null -
        - -
        -

        MD_DAY_POSITION - - Number -

        -
        -
        - The position of the day in a month/year date string -
        -
        - - -
        - Default Value: 2 -
        - -
        -

        MD_MONTH_POSITION - - Number -

        -
        -
        - The position of the month in a month/day date string -
        -
        - - -
        - Default Value: 1 -
        - -
        -

        MDY_DAY_POSITION - - Number -

        -
        -
        - The position of the day in a month/day/year date string -
        -
        - - -
        - Default Value: 2 -
        - -
        -

        MDY_MONTH_POSITION - - Number -

        -
        -
        - The position of the month in a month/day/year date string -
        -
        - - -
        - Default Value: 1 -
        - -
        -

        MDY_YEAR_POSITION - - Number -

        -
        -
        - The position of the year in a month/day/year date string -
        -
        - - -
        - Default Value: 3 -
        - -
        -

        mindate - - String -

        -
        -
        - The minimum selectable date in the current Calendar (mm/dd/yyyy) -
        -
        - - -
        - Default Value: null -
        - -
        -

        MONTHS_LONG - - String[] -

        -
        -
        - The long month labels for the current locale. -
        -
        - - -
        - Default Value: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" -
        - -
        -

        MONTHS_SHORT - - String[] -

        -
        -
        - The short month labels for the current locale. -
        -
        - - -
        - Default Value: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] -
        - -
        -

        MULTI_SELECT - - Boolean -

        -
        -
        - True if the Calendar should allow multiple selections. False by default. -
        -
        - - -
        - Default Value: false -
        - -
        -

        MY_MONTH_POSITION - - Number -

        -
        -
        - The position of the month in a month/year date string -
        -
        - - -
        - Default Value: 1 -
        - -
        -

        MY_YEAR_POSITION - - Number -

        -
        -
        - The position of the year in a month/year date string -
        -
        - - -
        - Default Value: 2 -
        - -
        -

        NAV_ARROW_LEFT - - String -

        -
        -
        - The image that should be used for the left navigation arrow. -
        -
        - -
        - DeprecatedYou can customize the image by overriding the default CSS class for the left arrow - "calnavleft" -
        - -
        - Default Value: null -
        - -
        -

        NAV_ARROW_RIGHT - - String -

        -
        -
        - The image that should be used for the right navigation arrow. -
        -
        - -
        - DeprecatedYou can customize the image by overriding the default CSS class for the right arrow - "calnavright" -
        - -
        - Default Value: null -
        - -
        -

        pagedate - - String -

        -
        -
        - The month/year representing the current visible Calendar date (mm/yyyy) -
        -
        - - -
        - Default Value: today's date -
        - -
        -

        pages - - Number -

        -
        -
        - The number of pages to include in the CalendarGroup. This value can only be set once, in the CalendarGroup's constructor arguments. -
        -
        - - -
        - Default Value: 2 -
        - -
        -

        selected - - String -

        -
        -
        - The date or range of dates representing the current Calendar selection -
        -
        - - -
        - Default Value: [] -
        - -
        -

        SHOW_WEEK_FOOTER - - Boolean -

        -
        -
        - True if the Calendar should show week row footers. False by default. -
        -
        - - -
        - Default Value: false -
        - -
        -

        SHOW_WEEK_HEADER - - Boolean -

        -
        -
        - True if the Calendar should show week row headers. False by default. -
        -
        - - -
        - Default Value: false -
        - -
        -

        SHOW_WEEKDAYS - - Boolean -

        -
        -
        - True if the Calendar should show weekday labels. True by default. -
        -
        - - -
        - Default Value: true -
        - -
        -

        START_WEEKDAY - - number -

        -
        -
        - The weekday the week begins on. Default is 0 (Sunday). -
        -
        - - -
        - Default Value: 0 -
        - -
        -

        title - - String -

        -
        -
        - The title to display above the CalendarGroup's month header -
        -
        - - -
        - Default Value: "" -
        - -
        -

        WEEKDAYS_1CHAR - - String[] -

        -
        -
        - The 1-character weekday labels for the current locale. -
        -
        - - -
        - Default Value: ["S", "M", "T", "W", "T", "F", "S"] -
        - -
        -

        WEEKDAYS_LONG - - String[] -

        -
        -
        - The long weekday labels for the current locale. -
        -
        - - -
        - Default Value: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] -
        - -
        -

        WEEKDAYS_MEDIUM - - String[] -

        -
        -
        - The medium weekday labels for the current locale. -
        -
        - - -
        - Default Value: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] -
        - -
        -

        WEEKDAYS_SHORT - - String[] -

        -
        -
        - The short weekday labels for the current locale. -
        -
        - - -
        - Default Value: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"] -
        - -
        - -
        -
        - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.Calendar_Core.html b/www/extras/yui/docs/YAHOO.widget.Calendar_Core.html deleted file mode 100644 index e8d737686..000000000 --- a/www/extras/yui/docs/YAHOO.widget.Calendar_Core.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - API: calendar YAHOO.widget.Calendar_Core (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Calendar  2.2.2

        -

        - Yahoo! UI Library - > calendar - > YAHOO.widget.Calendar_Core - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.Calendar_Core - - - extends YAHOO.widget.Calendar - - - - - - -

        - - - -
        Deprecated:The old Calendar_Core class is no longer necessary.
        - - -
        - -
        - - - - - - -
        -

        Methods inherited from YAHOO.widget.Calendar:

        - -
        - - - - - - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.ContainerEffect.html b/www/extras/yui/docs/YAHOO.widget.ContainerEffect.html deleted file mode 100644 index deea0e731..000000000 --- a/www/extras/yui/docs/YAHOO.widget.ContainerEffect.html +++ /dev/null @@ -1,947 +0,0 @@ - - - - API: container YAHOO.widget.ContainerEffect (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - > YAHOO.widget.ContainerEffect - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.ContainerEffect - - - - - - - -

        - - - - - -
        - ContainerEffect encapsulates animation transitions that are executed when an Overlay is shown or hidden. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.ContainerEffect - - ( - - - - overlay - - , - attrIn - - , - attrOut - - , - targetElement - - , - Optional. - ) - -
        -
        -
        Parameters:
        -
        - overlay - <YAHOO.widget.Overlay> - - The Overlay that the animation should be associated with -
        -
        - attrIn - <Object> - - The object literal representing the animation arguments to be used for the animate-in transition. The arguments for this literal are: attributes(object, see YAHOO.util.Anim for description), duration(Number), and method(i.e. YAHOO.util.Easing.easeIn). -
        -
        - attrOut - <Object> - - The object literal representing the animation arguments to be used for the animate-out transition. The arguments for this literal are: attributes(object, see YAHOO.util.Anim for description), duration(Number), and method(i.e. YAHOO.util.Easing.easeIn). -
        -
        - targetElement - <HTMLElement> - - Optional. The target element that should be animated during the transition. Defaults to overlay.element. -
        -
        - Optional. - <class> - - The animation class to instantiate. Defaults to YAHOO.util.Anim. Other options include YAHOO.util.Motion. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        animClass - - class -

        -
        -
        - The animation class to use for animating the overlay -
        -
        - - - - -
        -

        attrIn - - Object -

        -
        -
        - The animation attributes to use when transitioning into view -
        -
        - - - - -
        -

        attrOut - - Object -

        -
        -
        - The animation attributes to use when transitioning out of view -
        -
        - - - - -
        -

        overlay - - YAHOO.widget.Overlay -

        -
        -
        - The overlay to animate -
        -
        - - - - -
        -

        targetElement - - HTMLElement -

        -
        -
        - The target element to be animated -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - animateIn

        -
        - - - - - void - animateIn - ( - ) - - -
        - Triggers the in-animation. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - animateOut

        -
        - - - - - void - animateOut - ( - ) - - -
        - Triggers the out-animation. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - FADE

        -
        - - - static - - ContainerEffect - FADE - ( - - - overlay - - - , - dur - - - ) - - -
        - A pre-configured ContainerEffect instance that can be used for fading an overlay in and out. -
        - -
        - -
        -
        Parameters:
        -
        - overlay <Overlay> - The Overlay object to animate -
        -
        - dur <Number> - The duration of the animation -
        -
        - -
        -
        Returns: - - ContainerEffect -
        -
        The configured ContainerEffect object
        -
        - -
        - -
        -
        -

        - handleCompleteAnimateIn

        -
        - - - - - void - handleCompleteAnimateIn - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default onComplete handler for the in-animation. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type -
        -
        - args <Object[]> - The CustomEvent arguments -
        -
        - obj <Object> - The scope object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - handleCompleteAnimateOut

        -
        - - - - - void - handleCompleteAnimateOut - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default onComplete handler for the out-animation. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type -
        -
        - args <Object[]> - The CustomEvent arguments -
        -
        - obj <Object> - The scope object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - handleStartAnimateIn

        -
        - - - - - void - handleStartAnimateIn - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default onStart handler for the in-animation. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type -
        -
        - args <Object[]> - The CustomEvent arguments -
        -
        - obj <Object> - The scope object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - handleStartAnimateOut

        -
        - - - - - void - handleStartAnimateOut - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default onStart handler for the out-animation. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type -
        -
        - args <Object[]> - The CustomEvent arguments -
        -
        - obj <Object> - The scope object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - handleTweenAnimateIn

        -
        - - - - - void - handleTweenAnimateIn - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default onTween handler for the in-animation. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type -
        -
        - args <Object[]> - The CustomEvent arguments -
        -
        - obj <Object> - The scope object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - handleTweenAnimateOut

        -
        - - - - - void - handleTweenAnimateOut - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default onTween handler for the out-animation. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type -
        -
        - args <Object[]> - The CustomEvent arguments -
        -
        - obj <Object> - The scope object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - ) - - -
        - Initializes the animation classes and events. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - SLIDE

        -
        - - - static - - ContainerEffect - SLIDE - ( - - - overlay - - - , - dur - - - ) - - -
        - A pre-configured ContainerEffect instance that can be used for sliding an overlay in and out. -
        - -
        - -
        -
        Parameters:
        -
        - overlay <Overlay> - The Overlay object to animate -
        -
        - dur <Number> - The duration of the animation -
        -
        - -
        -
        Returns: - - ContainerEffect -
        -
        The configured ContainerEffect object
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representation of the object. -
        - -
        - - -
        -
        Returns: - - String -
        -
        The string representation of the ContainerEffect
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.ContextMenu.html b/www/extras/yui/docs/YAHOO.widget.ContextMenu.html deleted file mode 100644 index b002c528a..000000000 --- a/www/extras/yui/docs/YAHOO.widget.ContextMenu.html +++ /dev/null @@ -1,1205 +0,0 @@ - - - - API: menu YAHOO.widget.ContextMenu (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Menu  2.2.2

        -

        - Yahoo! UI Library - > menu - > YAHOO.widget.ContextMenu - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.ContextMenu - - - extends YAHOO.widget.Menu - - - - - - -

        - - - - - -
        - Creates a list of options or commands which are made visible in response to -an HTML element's "contextmenu" event ("mousedown" for Opera). -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.ContextMenu - - ( - - - - p_oElement - - - - - , - p_oConfig - ) - -
        -
        -
        Parameters:
        -
        - p_oElement - <String> - - String specifying the id attribute of the -<div> element of the context menu. -
        -
        - p_oElement - <String> - - String specifying the id attribute of the -<select> element to be used as the data source for the -context menu. -
        -
        - p_oElement - <HTMLDivElement> - - Object specifying the -<div> element of the context menu. -
        -
        - p_oElement - <HTMLSelectElement> - - Object specifying -the <select> element to be used as the data source for -the context menu. -
        -
        - p_oConfig - <Object> - - Optional. Object literal specifying the -configuration for the context menu. See configuration class documentation -for more details. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _bCancelled - - private Boolean -

        -
        -
        - Boolean indicating if the display of the context menu should -be cancelled. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        _oTrigger - - private String|HTMLElement|Array -

        -
        -
        - Object reference to the current value of the "trigger" -configuration property. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        contextEventTarget - - HTMLElement -

        -
        -
        - Object reference for the HTML element that was the target of the -"contextmenu" DOM event ("mousedown" for Opera) that triggered the display of -the context menu. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        YAHOO.widget.ContextMenu._DEFAULT_CONFIG - - private final Object -

        -
        -
        - Constant representing the ContextMenu's configuration properties -
        -
        - - - - -
        -

        YAHOO.widget.ContextMenu._EVENT_TYPES - - private final Object -

        -
        -
        - Constant representing the name of the ContextMenu's events -
        -
        - - - - -
        - - -
        -
        - - - - - -
        -

        Methods

        -
        -

        - _onTriggerClick

        -
        - - private - - - void - _onTriggerClick - ( - - - p_oEvent - - - , - p_oMenu - - - ) - - -
        - "click" event handler for the HTML element(s) identified as the -"trigger" for the context menu. Used to cancel default behaviors in Opera. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed back -by the event utility (YAHOO.util.Event). -
        -
        - p_oMenu <YAHOO.widget.ContextMenu> - Object representing the context -menu that is handling the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onTriggerContextMenu

        -
        - - private - - - void - _onTriggerContextMenu - ( - - - p_oEvent - - - , - p_oMenu - - - ) - - -
        - "contextmenu" event handler ("mousedown" for Opera) for the HTML -element(s) that trigger the display of the context menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed back -by the event utility (YAHOO.util.Event). -
        -
        - p_oMenu <YAHOO.widget.ContextMenu> - Object representing the context -menu that is handling the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _removeEventHandlers

        -
        - - private - - - void - _removeEventHandlers - ( - ) - - -
        - Removes all of the DOM event handlers from the HTML element(s) -whose "context menu" event ("click" for Opera) trigger the display of -the context menu. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - cancel

        -
        - - - - - void - cancel - ( - ) - - -
        - Cancels the display of the context menu. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configTrigger

        -
        - - - - - void - configTrigger - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - Event handler for when the value of the "trigger" configuration -property changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.ContextMenu> - Object representing the context -menu that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - destroy

        -
        - - - - - void - destroy - ( - ) - - -
        - Removes the context menu's <div> element -(and accompanying child nodes) from the document. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - p_oElement - - - - - - - - - , - p_oConfig - - - ) - - -
        - The ContextMenu class's initialization method. This method is -automatically called by the constructor, and sets up all DOM references for -pre-existing markup, and creates required markup if it is not already present. -
        - -
        - -
        -
        Parameters:
        -
        - p_oElement <String> - String specifying the id attribute of the -<div> element of the context menu. -
        -
        - p_oElement <String> - String specifying the id attribute of the -<select> element to be used as the data source for -the context menu. -
        -
        - p_oElement <HTMLDivElement> - Object specifying the -<div> element of the context menu. -
        -
        - p_oElement <HTMLSelectElement> - Object specifying -the <select> element to be used as the data source for -the context menu. -
        -
        - p_oConfig <Object> - Optional. Object literal specifying the -configuration for the context menu. See configuration class documentation -for more details. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initDefaultConfig

        -
        - - - - - void - initDefaultConfig - ( - ) - - -
        - Initializes the class's configurable properties which can be -changed using the context menu's Config object ("cfg"). -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initEvents

        -
        - - - - - void - initEvents - ( - ) - - -
        - Initializes the custom events for the context menu. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representing the context menu. -
        - -
        - - -
        -
        Returns: - - String -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - -
        -

        Events

        -
        -

        - triggerContextMenuEvent

        -
        - - - - - triggerContextMenuEvent - - ( - ) - - - -
        - Custom Event wrapper for the "contextmenu" DOM event -("mousedown" for Opera) fired by the element(s) that trigger the display of -the context menu. -
        - -
        - - - - -
        - -
        -
        -
        -
        - - - - - - -
        -

        Configuration Attributes

        -
        -

        trigger - - String|HTMLElement|Array -

        -
        -
        - The HTML element(s) whose "contextmenu" event ("mousedown" -for Opera) trigger the display of the context menu. Can be a string -representing the id attribute of the HTML element, an object reference -for the HTML element, or an array of strings or HTML element references. -
        -
        - - -
        - Default Value: null -
        - -
        - -
        -
        - -
        -

        Configuration attributes inherited from YAHOO.widget.Overlay:

        -
        - - - constraintoviewport, - context, - fixedcenter, - height, - iframe, - width, - x, - xy, - y, - zIndex - -
        -
        -
        -

        Configuration attributes inherited from YAHOO.widget.Module:

        -
        - - - effect, - monitorresize, - visible - -
        -
        - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.ContextMenuItem.html b/www/extras/yui/docs/YAHOO.widget.ContextMenuItem.html deleted file mode 100644 index e8afe1137..000000000 --- a/www/extras/yui/docs/YAHOO.widget.ContextMenuItem.html +++ /dev/null @@ -1,453 +0,0 @@ - - - - API: menu YAHOO.widget.ContextMenuItem (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Menu  2.2.2

        -

        - Yahoo! UI Library - > menu - > YAHOO.widget.ContextMenuItem - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.ContextMenuItem - - - extends YAHOO.widget.MenuItem - - - - - - -

        - - - - - -
        - Creates an item for a context menu. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.ContextMenuItem - - ( - - - - p_oObject - - - - - , - p_oConfig - ) - -
        -
        -
        Parameters:
        -
        - p_oObject - <String> - - String specifying the text of the context menu item. -
        -
        - p_oObject - <HTMLLIElement> - - Object specifying the -<li> element of the context menu item. -
        -
        - p_oObject - <HTMLOptGroupElement> - - Object -specifying the <optgroup> element of the context -menu item. -
        -
        - p_oObject - <HTMLOptionElement> - - Object specifying -the <option> element of the context menu item. -
        -
        - p_oConfig - <Object> - - Optional. Object literal specifying the -configuration for the context menu item. See configuration class -documentation for more details. -
        -
        - - -
        -
        -
        -
        - - - - -
        -

        Methods

        -
        -

        - init

        -
        - - - - - void - init - ( - - - p_oObject - - - - - - - - - , - p_oConfig - - - ) - - -
        - The ContextMenuItem class's initialization method. This method -is automatically called by the constructor, and sets up all DOM references -for pre-existing markup, and creates required markup if it is not -already present. -
        - -
        - -
        -
        Parameters:
        -
        - p_oObject <String> - String specifying the text of the context menu item. -
        -
        - p_oObject <HTMLLIElement> - Object specifying the -<li> element of the context menu item. -
        -
        - p_oObject <HTMLOptGroupElement> - Object -specifying the <optgroup> element of the context -menu item. -
        -
        - p_oObject <HTMLOptionElement> - Object specifying -the <option> element of the context menu item. -
        -
        - p_oConfig <Object> - Optional. Object literal specifying the -configuration for the context menu item. See configuration class -documentation for more details. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representing the context menu item. -
        - -
        - - -
        -
        Returns: - - String -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - - - - -
        -

        Configuration attributes inherited from YAHOO.widget.MenuItem:

        - -
        - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.DS_JSArray.html b/www/extras/yui/docs/YAHOO.widget.DS_JSArray.html deleted file mode 100644 index d70df302b..000000000 --- a/www/extras/yui/docs/YAHOO.widget.DS_JSArray.html +++ /dev/null @@ -1,326 +0,0 @@ - - - - API: autocomplete YAHOO.widget.DS_JSArray (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        AutoComplete Widget  2.2.2

        -

        - Yahoo! UI Library - > autocomplete - > YAHOO.widget.DS_JSArray - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.DS_JSArray - - - extends YAHOO.widget.DataSource - - - - - - -

        - - - - - -
        - Implementation of YAHOO.widget.DataSource using a native Javascript array as -its live data source. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.DS_JSArray - - ( - - - - aData - - , - oConfigs - ) - -
        -
        -
        Parameters:
        -
        - aData - <String[]> - - In-memory Javascript array of simple string data. -
        -
        - oConfigs - <Object> - - (optional) Object literal of config params. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        data - - Array -

        -
        -
        - In-memory Javascript array of strings. -
        -
        - - - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.widget.DataSource:

        - -
        - -
        -

        Methods

        -
        -

        - doQuery

        -
        - - - - - void - doQuery - ( - - - oCallbackFn - - - , - sQuery - - - , - oParent - - - ) - - -
        - Queries the live data source defined by data for results. Results are passed -back to a callback function. -
        - -
        - -
        -
        Parameters:
        -
        - oCallbackFn <HTMLFunction> - Callback function defined by oParent object to which to return results. -
        -
        - sQuery <String> - Query string. -
        -
        - oParent <Object> - The object instance that has requested data. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - -
        -

        Methods inherited from YAHOO.widget.DataSource:

        - -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.DS_JSFunction.html b/www/extras/yui/docs/YAHOO.widget.DS_JSFunction.html deleted file mode 100644 index 52778c67a..000000000 --- a/www/extras/yui/docs/YAHOO.widget.DS_JSFunction.html +++ /dev/null @@ -1,326 +0,0 @@ - - - - API: autocomplete YAHOO.widget.DS_JSFunction (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        AutoComplete Widget  2.2.2

        -

        - Yahoo! UI Library - > autocomplete - > YAHOO.widget.DS_JSFunction - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.DS_JSFunction - - - extends YAHOO.widget.DataSource - - - - - - -

        - - - - - -
        - Implementation of YAHOO.widget.DataSource using a native Javascript function as -its live data source. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.DS_JSFunction - - ( - - - - oFunction - - , - oConfigs - ) - -
        -
        -
        Parameters:
        -
        - oFunction - <HTMLFunction> - - In-memory Javascript function that returns query results as an array of objects. -
        -
        - oConfigs - <Object> - - (optional) Object literal of config params. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        dataFunction - - HTMLFunction -

        -
        -
        - In-memory Javascript function that returns query results. -
        -
        - - - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.widget.DataSource:

        - -
        - -
        -

        Methods

        -
        -

        - doQuery

        -
        - - - - - void - doQuery - ( - - - oCallbackFn - - - , - sQuery - - - , - oParent - - - ) - - -
        - Queries the live data source defined by function for results. Results are -passed back to a callback function. -
        - -
        - -
        -
        Parameters:
        -
        - oCallbackFn <HTMLFunction> - Callback function defined by oParent object to which to return results. -
        -
        - sQuery <String> - Query string. -
        -
        - oParent <Object> - The object instance that has requested data. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - -
        -

        Methods inherited from YAHOO.widget.DataSource:

        - -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.DS_XHR.html b/www/extras/yui/docs/YAHOO.widget.DS_XHR.html deleted file mode 100644 index 394450492..000000000 --- a/www/extras/yui/docs/YAHOO.widget.DS_XHR.html +++ /dev/null @@ -1,605 +0,0 @@ - - - - API: autocomplete YAHOO.widget.DS_XHR (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        AutoComplete Widget  2.2.2

        -

        - Yahoo! UI Library - > autocomplete - > YAHOO.widget.DS_XHR - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.DS_XHR - - - extends YAHOO.widget.DataSource - - - - - - -

        - - - - - -
        - Implementation of YAHOO.widget.DataSource using XML HTTP requests that return -query results. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.DS_XHR - - ( - - - - sScriptURI - - , - aSchema - - , - oConfigs - ) - -
        -
        -
        Parameters:
        -
        - sScriptURI - <String> - - Absolute or relative URI to script that returns query -results as JSON, XML, or delimited flat-file data. -
        -
        - aSchema - <String[]> - - Data schema definition of results. -
        -
        - oConfigs - <Object> - - (optional) Object literal of config params. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _oConn - - private Object -

        -
        -
        - XHR connection object. -
        -
        - - - - -
        -

        connMgr - - Object -

        -
        -
        - Alias to YUI Connection Manager. Allows implementers to specify their own -subclasses of the YUI Connection Manager utility. -
        -
        - - -
        - Default Value: YAHOO.util.Connect -
        - - -
        -

        connTimeout - - Number -

        -
        -
        - Number of milliseconds the XHR connection will wait for a server response. A -a value of zero indicates the XHR connection will wait forever. Any value -greater than zero will use the Connection utility's Auto-Abort feature. -
        -
        - - -
        - Default Value: 0 -
        - - -
        -

        ERROR_DATAXHR - - static final String -

        -
        -
        - Error message for XHR failure. -
        -
        - - - - -
        -

        responseStripAfter - - String -

        -
        -
        - String after which to strip results. If the results from the XHR are sent -back as HTML, the gzip HTML comment appears at the end of the data and should -be ignored. -
        -
        - - -
        - Default Value: "\n<!-" -
        - - -
        -

        responseType - - String -

        -
        -
        - XHR response data type. Other types that may be defined are YAHOO.widget.DS_XHR.TYPE_XML -and YAHOO.widget.DS_XHR.TYPE_FLAT. -
        -
        - - -
        - Default Value: YAHOO.widget.DS_XHR.TYPE_JSON -
        - - -
        -

        scriptQueryAppend - - String -

        -
        -
        - String of key/value pairs to append to requests made to scriptURI. Define -this string when you want to send additional query parameters to your script. -When defined, queries will be sent to -<scriptURI>?<scriptQueryParam>=userinput&<scriptQueryAppend> -
        -
        - - -
        - Default Value: "" -
        - - -
        -

        scriptQueryParam - - String -

        -
        -
        - Query string parameter name sent to scriptURI. For instance, queries will be -sent to <scriptURI>?<scriptQueryParam>=userinput -
        -
        - - -
        - Default Value: "query" -
        - - -
        -

        scriptURI - - String -

        -
        -
        - Absolute or relative URI to script that returns query results. For instance, -queries will be sent to <scriptURI>?<scriptQueryParam>=userinput -
        -
        - - - - -
        -

        TYPE_FLAT - - static final Number -

        -
        -
        - Flat-file data type. -
        -
        - - - - -
        -

        TYPE_JSON - - static final Number -

        -
        -
        - JSON data type. -
        -
        - - - - -
        -

        TYPE_XML - - static final Number -

        -
        -
        - XML data type. -
        -
        - - - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.widget.DataSource:

        - -
        - -
        -

        Methods

        -
        -

        - doQuery

        -
        - - - - - void - doQuery - ( - - - oCallbackFn - - - , - sQuery - - - , - oParent - - - ) - - -
        - Queries the live data source defined by scriptURI for results. Results are -passed back to a callback function. -
        - -
        - -
        -
        Parameters:
        -
        - oCallbackFn <HTMLFunction> - Callback function defined by oParent object to which to return results. -
        -
        - sQuery <String> - Query string. -
        -
        - oParent <Object> - The object instance that has requested data. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - parseResponse

        -
        - - - - - void - parseResponse - ( - - - sQuery - - - , - oResponse - - - , - oParent - - - ) - - -
        - Parses raw response data into an array of result objects. The result data key -is always stashed in the [0] element of each result object. -
        - -
        - -
        -
        Parameters:
        -
        - sQuery <String> - Query string. -
        -
        - oResponse <Object> - The raw response data to parse. -
        -
        - oParent <Object> - The object instance that has requested data. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - -
        -

        Methods inherited from YAHOO.widget.DataSource:

        - -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.DataSource.html b/www/extras/yui/docs/YAHOO.widget.DataSource.html deleted file mode 100644 index a004779d6..000000000 --- a/www/extras/yui/docs/YAHOO.widget.DataSource.html +++ /dev/null @@ -1,1074 +0,0 @@ - - - - API: autocomplete YAHOO.widget.DataSource (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        AutoComplete Widget  2.2.2

        -

        - Yahoo! UI Library - > autocomplete - > YAHOO.widget.DataSource - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.DataSource - - - - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.widget.DS_JSFunction - YAHOO.widget.DS_XHR - YAHOO.widget.DS_JSArray -
        -
        - - - -
        - The DataSource classes manages sending a request and returning response from a live -database. Supported data include local JavaScript arrays and objects and databases -accessible via XHR connections. Supported response formats include JavaScript arrays, -JSON, XML, and flat-file textual data. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.DataSource - - ( - ) - -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _aCache - - private Object[] -

        -
        -
        - Local cache of data result objects indexed chronologically. -
        -
        - - - - -
        -

        _nIndex - - private static Number -

        -
        -
        - Internal class variable to index multiple DataSource instances. -
        -
        - - - - -
        -

        _sName - - private String -

        -
        -
        - Name of DataSource instance. -
        -
        - - - - -
        -

        ERROR_DATANULL - - static final String -

        -
        -
        - Error message for null data responses. -
        -
        - - - - -
        -

        ERROR_DATAPARSE - - static final String -

        -
        -
        - Error message for data responses with parsing errors. -
        -
        - - - - -
        -

        maxCacheEntries - - Number -

        -
        -
        - Max size of the local cache. Set to 0 to turn off caching. Caching is -useful to reduce the number of server connections. Recommended only for data -sources that return comprehensive results for queries or when stale data is -not an issue. -
        -
        - - -
        - Default Value: 15 -
        - - -
        -

        queryMatchCase - - Boolean -

        -
        -
        - Enables case-sensitivity in the matching algorithm used against JS Array -types of DataSources and DataSource caches. If queryMatchCase is true, only -case-sensitive matches will return. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        queryMatchContains - - Boolean -

        -
        -
        - Use this to fine-tune the matching algorithm used against JS Array types of -DataSource and DataSource caches. If queryMatchContains is true, then the JS -Array or cache returns results that "contain" the query string. By default, -queryMatchContains is set to false, so that only results that "start with" -the query string are returned. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        queryMatchSubset - - Boolean -

        -
        -
        - Enables query subset matching. If caching is on and queryMatchSubset is -true, substrings of queries will return matching cached results. For -instance, if the first query is for "abc" susequent queries that start with -"abc", like "abcd", will be queried against the cache, and not the live data -source. Recommended only for DataSources that return comprehensive results -for queries with very few characters. -
        -
        - - -
        - Default Value: false -
        - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - _addCacheElem

        -
        - - private - - - void - _addCacheElem - ( - - - oResult - - - ) - - -
        - Adds a result object to the local cache, evicting the oldest element if the -cache is full. Newer items will have higher indexes, the oldest item will have -index of 0. -
        - -
        - -
        -
        Parameters:
        -
        - oResult <Object> - Data result object, including array of results. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _doQueryCache

        -
        - - private - - - Object[] - _doQueryCache - ( - - - oCallbackFn - - - , - sQuery - - - , - oParent - - - ) - - -
        - Queries the local cache for results. If query has been cached, the callback -function is called with the results, and the cached is refreshed so that it -is now the newest element. -
        - -
        - -
        -
        Parameters:
        -
        - oCallbackFn <HTMLFunction> - Callback function defined by oParent object to which to return results. -
        -
        - sQuery <String> - Query string. -
        -
        - oParent <Object> - The object instance that has requested data. -
        -
        - -
        -
        Returns: - - Object[] -
        -
        aResults Array of results from local cache if found, otherwise null.
        -
        - -
        - -
        -
        -

        - _init

        -
        - - private - - - void - _init - ( - ) - - -
        - Initializes DataSource instance. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - doQuery

        -
        - - - - - void - doQuery - ( - - - oCallbackFn - - - , - sQuery - - - , - oParent - - - ) - - -
        - Abstract method implemented by subclasses to make a query to the live data -source. Must call the callback function with the response returned from the -query. Populates cache (if enabled). -
        - -
        - -
        -
        Parameters:
        -
        - oCallbackFn <HTMLFunction> - Callback function implemented by oParent to which to return results. -
        -
        - sQuery <String> - Query string. -
        -
        - oParent <Object> - The object instance that has requested data. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - flushCache

        -
        - - - - - void - flushCache - ( - ) - - -
        - Flushes cache. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getResults

        -
        - - - - - void - getResults - ( - - - oCallbackFn - - - , - sQuery - - - , - oParent - - - ) - - -
        - Retrieves query results, first checking the local cache, then making the -query request to the live data source as defined by the function doQuery. -
        - -
        - -
        -
        Parameters:
        -
        - oCallbackFn <HTMLFunction> - Callback function defined by oParent object to which to return results. -
        -
        - sQuery <String> - Query string. -
        -
        - oParent <Object> - The object instance that has requested data. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Public accessor to the unique name of the DataSource instance. -
        - -
        - - -
        -
        Returns: - - String -
        -
        Unique name of the DataSource instance
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Events

        -
        -

        - cacheFlushEvent

        -
        - - - - - cacheFlushEvent - - ( - - - oSelf - - - ) - - - -
        - Fired when the local cache is flushed. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <Object> - The DataSource instance -
        -
        - - -
        - -
        -
        -

        - cacheQueryEvent

        -
        - - - - - cacheQueryEvent - - ( - - - oSelf - - - , - oParent - - - , - sQuery - - - ) - - - -
        - Fired when a query is made to the local cache. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <Object> - The DataSource instance. -
        -
        - oParent <Object> - The requesting object. -
        -
        - sQuery <String> - The query string. -
        -
        - - -
        - -
        -
        -

        - dataErrorEvent

        -
        - - - - - dataErrorEvent - - ( - - - oSelf - - - , - oParent - - - , - sQuery - - - , - sMsg - - - ) - - - -
        - Fired when an error is encountered with the live data source. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <Object> - The DataSource instance. -
        -
        - oParent <Object> - The requesting object. -
        -
        - sQuery <String> - The query string. -
        -
        - sMsg <String> - Error message string -
        -
        - - -
        - -
        -
        -

        - getCachedResultsEvent

        -
        - - - - - getCachedResultsEvent - - ( - - - oSelf - - - , - oParent - - - , - sQuery - - - , - aResults - - - ) - - - -
        - Fired when data is retrieved from the local cache. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <Object> - The DataSource instance. -
        -
        - oParent <Object> - The requesting object. -
        -
        - sQuery <String> - The query string. -
        -
        - aResults <Object[]> - Array of result objects. -
        -
        - - -
        - -
        -
        -

        - getResultsEvent

        -
        - - - - - getResultsEvent - - ( - - - oSelf - - - , - oParent - - - , - sQuery - - - , - aResults - - - ) - - - -
        - Fired when data is retrieved from the live data source. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <Object> - The DataSource instance. -
        -
        - oParent <Object> - The requesting object. -
        -
        - sQuery <String> - The query string. -
        -
        - aResults <Object[]> - Array of result objects. -
        -
        - - -
        - -
        -
        -

        - queryEvent

        -
        - - - - - queryEvent - - ( - - - oSelf - - - , - oParent - - - , - sQuery - - - ) - - - -
        - Fired when a query is made to the live data source. -
        - -
        - - -
        -
        Parameters:
        -
        - oSelf <Object> - The DataSource instance. -
        -
        - oParent <Object> - The requesting object. -
        -
        - sQuery <String> - The query string. -
        -
        - - -
        - -
        -
        -
        -
        - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.DateMath.html b/www/extras/yui/docs/YAHOO.widget.DateMath.html deleted file mode 100644 index 841c53722..000000000 --- a/www/extras/yui/docs/YAHOO.widget.DateMath.html +++ /dev/null @@ -1,951 +0,0 @@ - - - - API: calendar YAHOO.widget.DateMath (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Calendar  2.2.2

        -

        - Yahoo! UI Library - > calendar - > YAHOO.widget.DateMath - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.DateMath - - - - - - - -

        - - - - - -
        - YAHOO.widget.DateMath is used for simple date manipulation. The class is a static utility -used for adding, subtracting, and comparing dates. -
        - - -
        -

        Properties

        -
        -

        DAY - - static final String -

        -
        -
        - Constant field representing Day -
        -
        - - - - -
        -

        MONTH - - static final String -

        -
        -
        - Constant field representing Month -
        -
        - - - - -
        -

        ONE_DAY_MS - - static final Number -

        -
        -
        - Constant field representing one day, in milliseconds -
        -
        - - - - -
        -

        WEEK - - static final String -

        -
        -
        - Constant field representing Week -
        -
        - - - - -
        -

        YEAR - - static final String -

        -
        -
        - Constant field representing Year -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - add

        -
        - - - - - Date - add - ( - - - date - - - , - field - - - , - amount - - - ) - - -
        - Adds the specified amount of time to the this instance. -
        - -
        - -
        -
        Parameters:
        -
        - date <Date> - The JavaScript Date object to perform addition on -
        -
        - field <String> - The field constant to be used for performing addition. -
        -
        - amount <Number> - The number of units (measured in the field constant) to add to the date. -
        -
        - -
        -
        Returns: - - Date -
        -
        The resulting Date object
        -
        - -
        - -
        -
        -

        - after

        -
        - - - - - Boolean - after - ( - - - date - - - , - compareTo - - - ) - - -
        - Determines whether a given date is after another date on the calendar. -
        - -
        - -
        -
        Parameters:
        -
        - date <Date> - The Date object to compare with the compare argument -
        -
        - compareTo <Date> - The Date object to use for the comparison -
        -
        - -
        -
        Returns: - - Boolean -
        -
        true if the date occurs after the compared date; false if not.
        -
        - -
        - -
        -
        -

        - before

        -
        - - - - - Boolean - before - ( - - - date - - - , - compareTo - - - ) - - -
        - Determines whether a given date is before another date on the calendar. -
        - -
        - -
        -
        Parameters:
        -
        - date <Date> - The Date object to compare with the compare argument -
        -
        - compareTo <Date> - The Date object to use for the comparison -
        -
        - -
        -
        Returns: - - Boolean -
        -
        true if the date occurs before the compared date; false if not.
        -
        - -
        - -
        -
        -

        - between

        -
        - - - - - Boolean - between - ( - - - date - - - , - dateBegin - - - , - dateEnd - - - ) - - -
        - Determines whether a given date is between two other dates on the calendar. -
        - -
        - -
        -
        Parameters:
        -
        - date <Date> - The date to check for -
        -
        - dateBegin <Date> - The start of the range -
        -
        - dateEnd <Date> - The end of the range -
        -
        - -
        -
        Returns: - - Boolean -
        -
        true if the date occurs between the compared dates; false if not.
        -
        - -
        - -
        -
        -

        - clearTime

        -
        - - - - - Date - clearTime - ( - - - date - - - ) - - -
        - Clears the time fields from a given date, effectively setting the time to 12 noon. -
        - -
        - -
        -
        Parameters:
        -
        - date <Date> - The JavaScript Date for which the time fields will be cleared -
        -
        - -
        -
        Returns: - - Date -
        -
        The JavaScript Date cleared of all time fields
        -
        - -
        - -
        -
        -

        - findMonthEnd

        -
        - - - - - Date - findMonthEnd - ( - - - date - - - ) - - -
        - Gets the last day of a month containing a given date. -
        - -
        - -
        -
        Parameters:
        -
        - date <Date> - The JavaScript Date used to calculate the month end -
        -
        - -
        -
        Returns: - - Date -
        -
        The JavaScript Date representing the last day of the month
        -
        - -
        - -
        -
        -

        - findMonthStart

        -
        - - - - - Date - findMonthStart - ( - - - date - - - ) - - -
        - Gets the first day of a month containing a given date. -
        - -
        - -
        -
        Parameters:
        -
        - date <Date> - The JavaScript Date used to calculate the month start -
        -
        - -
        -
        Returns: - - Date -
        -
        The JavaScript Date representing the first day of the month
        -
        - -
        - -
        -
        -

        - getDayOffset

        -
        - - - - - Number - getDayOffset - ( - - - date - - - , - calendarYear - - - ) - - -
        - Calculates the number of days the specified date is from January 1 of the specified calendar year. -Passing January 1 to this function would return an offset value of zero. -
        - -
        - -
        -
        Parameters:
        -
        - date <Date> - The JavaScript date for which to find the offset -
        -
        - calendarYear <Number> - The calendar year to use for determining the offset -
        -
        - -
        -
        Returns: - - Number -
        -
        The number of days since January 1 of the given year
        -
        - -
        - -
        -
        -

        - getJan1

        -
        - - - - - Date - getJan1 - ( - - - calendarYear - - - ) - - -
        - Retrieves a JavaScript Date object representing January 1 of any given year. -
        - -
        - -
        -
        Parameters:
        -
        - calendarYear <Number> - The calendar year for which to retrieve January 1 -
        -
        - -
        -
        Returns: - - Date -
        -
        January 1 of the calendar year specified.
        -
        - -
        - -
        -
        -

        - getWeekNumber

        -
        - - - - - Number - getWeekNumber - ( - - - date - - - , - calendarYear - - - , - weekStartsOn - - - ) - - -
        - Calculates the week number for the given date. This function assumes that week 1 is the -week in which January 1 appears, regardless of whether the week consists of a full 7 days. -The calendar year can be specified to help find what a the week number would be for a given -date if the date overlaps years. For instance, a week may be considered week 1 of 2005, or -week 53 of 2004. Specifying the optional calendarYear allows one to make this distinction -easily. -
        - -
        - -
        -
        Parameters:
        -
        - date <Date> - The JavaScript date for which to find the week number -
        -
        - calendarYear <Number> - OPTIONAL - The calendar year to use for determining the week number. Default is -the calendar year of parameter "date". -
        -
        - weekStartsOn <Number> - OPTIONAL - The integer (0-6) representing which day a week begins on. Default is 0 (for Sunday). -
        -
        - -
        -
        Returns: - - Number -
        -
        The week number of the given date.
        -
        - -
        - -
        -
        -

        - isMonthOverlapWeek

        -
        - - - - - Boolean - isMonthOverlapWeek - ( - - - weekBeginDate - - - ) - - -
        - Determines if a given week overlaps two different months. -
        - -
        - -
        -
        Parameters:
        -
        - weekBeginDate <Date> - The JavaScript Date representing the first day of the week. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        true if the date overlaps two different months.
        -
        - -
        - -
        -
        -

        - isYearOverlapWeek

        -
        - - - - - Boolean - isYearOverlapWeek - ( - - - weekBeginDate - - - ) - - -
        - Determines if a given week overlaps two different years. -
        - -
        - -
        -
        Parameters:
        -
        - weekBeginDate <Date> - The JavaScript Date representing the first day of the week. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        true if the date overlaps two different years.
        -
        - -
        - -
        -
        -

        - subtract

        -
        - - - - - Date - subtract - ( - - - date - - - , - field - - - , - amount - - - ) - - -
        - Subtracts the specified amount of time from the this instance. -
        - -
        - -
        -
        Parameters:
        -
        - date <Date> - The JavaScript Date object to perform subtraction on -
        -
        - field <Number> - The this field constant to be used for performing subtraction. -
        -
        - amount <Number> - The number of units (measured in the field constant) to subtract from the date. -
        -
        - -
        -
        Returns: - - Date -
        -
        The resulting Date object
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.Dialog.html b/www/extras/yui/docs/YAHOO.widget.Dialog.html deleted file mode 100644 index 31165ae9a..000000000 --- a/www/extras/yui/docs/YAHOO.widget.Dialog.html +++ /dev/null @@ -1,1655 +0,0 @@ - - - - API: container YAHOO.widget.Dialog (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - > YAHOO.widget.Dialog - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.Dialog - - - extends YAHOO.widget.Panel - - - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.widget.SimpleDialog -
        -
        - - - -
        - Dialog is an implementation of Panel that can be used to submit form data. Built-in functionality for buttons with event handlers is included, and button sets can be build dynamically, or the preincluded ones for Submit/Cancel and OK/Cancel can be utilized. Forms can be processed in 3 ways -- via an asynchronous Connection utility call, a simple form POST or GET, or manually. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.Dialog - - ( - - - - el - - - , - userConfig - ) - -
        -
        -
        Parameters:
        -
        - el - <String> - - The element ID representing the Dialog OR -
        -
        - el - <HTMLElement> - - The element representing the Dialog -
        -
        - userConfig - <Object> - - The configuration object literal containing the configuration that should be set for this Dialog. See configuration documentation for more details. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        callback - - Object -

        -
        -
        - The internally maintained callback object for use with the Connection utility -
        -
        - - - - -
        -

        callback.argument - - Object -

        -
        -
        - The arbitraty argument or arguments to pass to the Connection callback functions -
        -
        - - - - -
        -

        callback.failure - - Function -

        -
        -
        - The function to execute upon failure of the Connection submission -
        -
        - - - - -
        -

        callback.success - - Function -

        -
        -
        - The function to execute upon success of the Connection submission -
        -
        - - - - -
        -

        YAHOO.widget.Dialog._DEFAULT_CONFIG - - private final Object -

        -
        -
        - Constant representing the Dialog's configuration properties -
        -
        - - - - -
        -

        YAHOO.widget.Dialog._EVENT_TYPES - - private final Object -

        -
        -
        - Constant representing the name of the Dialog's events -
        -
        - - - - -
        -

        YAHOO.widget.Dialog.CSS_DIALOG - - static final String -

        -
        -
        - Constant representing the default CSS class used for a Dialog -
        -
        - - - - -
        - - -
        -
        - - - - - -
        -

        Methods

        -
        -

        - _onFormKeyDown

        -
        - - protected - - - void - _onFormKeyDown - ( - - - p_oEvent - - - ) - - -
        - "keydown" event handler for the dialog's form. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - blurButtons

        -
        - - - - - void - blurButtons - ( - ) - - -
        - Blurs all the html buttons -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - cancel

        -
        - - - - - void - cancel - ( - ) - - -
        - Executes the cancel of the Dialog followed by a hide. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configButtons

        -
        - - - - - void - configButtons - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler for the "buttons" configuration property -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configClose

        -
        - - - - - void - configClose - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "close" property is changed. The method controls the appending or hiding of the close icon at the top right of the Dialog. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configPostMethod

        -
        - - - - - void - configPostMethod - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler for the "postmethod" configuration property -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - destroy

        -
        - - - - - void - destroy - ( - ) - - -
        - Removes the Panel element from the DOM and sets all child elements to null. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - doSubmit

        -
        - - - - - void - doSubmit - ( - ) - - -
        - Performs the submission of the Dialog form depending on the value of "postmethod" property. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - focusDefaultButton

        -
        - - - - - void - focusDefaultButton - ( - ) - - -
        - Sets the focus to the button that is designated as the default. By default, his handler is executed when the show event is fired. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - focusFirst

        -
        - - - - - void - focusFirst - ( - ) - - -
        - The default event handler used to focus the first field of the form when the Dialog is shown. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - focusFirstButton

        -
        - - - - - void - focusFirstButton - ( - ) - - -
        - Sets the focus to the first button in the button list -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - focusLast

        -
        - - - - - void - focusLast - ( - ) - - -
        - Sets the focus to the last button in the button or form element in the Dialog -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - focusLastButton

        -
        - - - - - void - focusLastButton - ( - ) - - -
        - Sets the focus to the first button in the button list -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getData

        -
        - - - - - Object - getData - ( - ) - - -
        - Returns a JSON-compatible data structure representing the data currently contained in the form. -
        - -
        - - -
        -
        Returns: - - Object -
        -
        A JSON object reprsenting the data of the current form.
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - el - - - - - , - userConfig - - - ) - - -
        - The Dialog initialization method, which is executed for Dialog and all of its subclasses. This method is automatically called by the constructor, and sets up all DOM references for pre-existing markup, and creates required markup if it is not already present. -
        - -
        - -
        -
        Parameters:
        -
        - el <String> - The element ID representing the Dialog OR -
        -
        - el <HTMLElement> - The element representing the Dialog -
        -
        - userConfig <Object> - The configuration object literal containing the configuration that should be set for this Dialog. See configuration documentation for more details. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initDefaultConfig

        -
        - - - - - void - initDefaultConfig - ( - ) - - -
        - Initializes the class's configurable properties which can be changed using the Dialog's Config object (cfg). -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initEvents

        -
        - - - - - void - initEvents - ( - ) - - -
        - Initializes the custom events for Dialog which are fired automatically at appropriate times by the Dialog class. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - registerForm

        -
        - - - - - void - registerForm - ( - ) - - -
        - Prepares the Dialog's internal FORM object, creating one if one is not currently present. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - submit

        -
        - - - - - void - submit - ( - ) - - -
        - Executes a submit of the Dialog followed by a hide, if validation is successful. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representation of the object. -
        - -
        - - -
        -
        Returns: - - String -
        -
        The string representation of the Dialog
        -
        - -
        - -
        -
        -

        - validate

        -
        - - - - - void - validate - ( - ) - - -
        - Built-in function hook for writing a validation function that will be checked for a "true" value prior to a submit. This function, as implemented by default, always returns true, so it should be overridden if validation is necessary. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - -
        -

        Events

        -
        -

        - asyncSubmitEvent

        -
        - - - - - asyncSubmitEvent - - ( - ) - - - -
        - CustomEvent fired prior to asynchronous submission -
        - -
        - - - - -
        - -
        -
        -

        - beforeSumitEvent

        -
        - - - - - beforeSumitEvent - - ( - ) - - - -
        - CustomEvent fired prior to submission -
        - -
        - - - - -
        - -
        -
        -

        - cancelEvent

        -
        - - - - - cancelEvent - - ( - ) - - - -
        - CustomEvent fired after cancel -
        - -
        - - - - -
        - -
        -
        -

        - formSubmitEvent

        -
        - - - - - formSubmitEvent - - ( - ) - - - -
        - CustomEvent fired prior to form-based submission -
        - -
        - - - - -
        - -
        -
        -

        - manualSubmitEvent

        -
        - - - - - manualSubmitEvent - - ( - ) - - - -
        - CustomEvent fired prior to manual submission -
        - -
        - - - - -
        - -
        -
        -

        - submitEvent

        -
        - - - - - submitEvent - - ( - ) - - - -
        - CustomEvent fired after submission -
        - -
        - - - - -
        - -
        -
        -
        -
        - - -
        -

        Events inherited from YAHOO.widget.Panel:

        - -
        - - - -
        -

        Configuration Attributes

        -
        -

        buttons - - Object[] -

        -
        -
        - Object literal(s) defining the buttons for the Dialog's footer. -
        -
        - - -
        - Default Value: "none" -
        - -
        -

        postmethod - - String -

        -
        -
        - The method to use for posting the Dialog's form. Possible values are "async", "form", and "manual". -
        -
        - - -
        - Default Value: async -
        - -
        - -
        -
        - -
        -

        Configuration attributes inherited from YAHOO.widget.Panel:

        -
        - - - close, - draggable, - keylisteners, - modal, - underlay - -
        -
        -
        -

        Configuration attributes inherited from YAHOO.widget.Module:

        -
        - - - effect, - monitorresize, - visible - -
        -
        -
        -

        Configuration attributes inherited from YAHOO.widget.Overlay:

        -
        - - - constraintoviewport, - context, - fixedcenter, - height, - iframe, - width, - x, - xy, - y, - zIndex - -
        -
        - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.HTMLNode.html b/www/extras/yui/docs/YAHOO.widget.HTMLNode.html deleted file mode 100644 index 04f7f052c..000000000 --- a/www/extras/yui/docs/YAHOO.widget.HTMLNode.html +++ /dev/null @@ -1,449 +0,0 @@ - - - - API: treeview YAHOO.widget.HTMLNode (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - > YAHOO.widget.HTMLNode - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.HTMLNode - - - extends YAHOO.widget.Node - - - - - - -

        - - - - - -
        - This implementation takes either a string or object for the -oData argument. If is it a string, we will use it for the display -of this node (and it can contain any html code). If the parameter -is an object, we look for a parameter called "html" that will be -used for this node's display. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.HTMLNode - - ( - - - - oData - - , - oParent - - , - expanded - - , - hasIcon - ) - -
        -
        -
        Parameters:
        -
        - oData - <object> - - a string or object containing the data that will -be used to render this node -
        -
        - oParent - <YAHOO.widget.Node> - - this node's parent node -
        -
        - expanded - <boolean> - - the initial expanded/collapsed state -
        -
        - hasIcon - <boolean> - - specifies whether or not leaf nodes should -have an icon -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        content - - string -

        -
        -
        - The HTML content to use for this node's display -
        -
        - - - - -
        -

        contentElId - - string -

        -
        -
        - The generated id that will contain the data passed in by the implementer. -
        -
        - - - - -
        -

        contentStyle - - string -

        -
        -
        - The CSS class for the html content container. Defaults to ygtvhtml, but -can be overridden to provide a custom presentation for a specific node. -
        -
        - - - - -
        -

        initContent - - object -

        -
        -
        - Sets up the node label -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Methods

        -
        -

        - getContentEl

        -
        - - - - - HTMLElement - getContentEl - ( - ) - - -
        - Returns the outer html element for this node's content -
        - -
        - - -
        -
        Returns: - - HTMLElement -
        -
        the element
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - - - -
        -

        Events inherited from YAHOO.widget.Node:

        -
        - - - parentChange - -
        -
        - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.LogMsg.html b/www/extras/yui/docs/YAHOO.widget.LogMsg.html deleted file mode 100644 index a4817f89d..000000000 --- a/www/extras/yui/docs/YAHOO.widget.LogMsg.html +++ /dev/null @@ -1,264 +0,0 @@ - - - - API: logger YAHOO.widget.LogMsg (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Logger Widget  2.2.2

        -

        - Yahoo! UI Library - > logger - > YAHOO.widget.LogMsg - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.LogMsg - - - - - - - -

        - - - - - -
        - The LogMsg class defines a single log message. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.LogMsg - - ( - - - - oConfigs - ) - -
        -
        -
        Parameters:
        -
        - oConfigs - <Object> - - Object literal of configuration params. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        category - - String -

        -
        -
        - Log category. -
        -
        - - - - -
        -

        msg - - String -

        -
        -
        - Log message. -
        -
        - - - - -
        -

        source - - String -

        -
        -
        - Log source. The first word passed in as the source argument. -
        -
        - - - - -
        -

        sourceDetail - - String -

        -
        -
        - Log source detail. The remainder of the string passed in as the source argument, not -including the first word (if any). -
        -
        - - - - -
        -

        time - - Date -

        -
        -
        - Log timestamp. -
        -
        - - - - -
        - - -
        -
        - - - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.LogReader.html b/www/extras/yui/docs/YAHOO.widget.LogReader.html deleted file mode 100644 index 9a7b22998..000000000 --- a/www/extras/yui/docs/YAHOO.widget.LogReader.html +++ /dev/null @@ -1,2375 +0,0 @@ - - - - API: logger YAHOO.widget.LogReader (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Logger Widget  2.2.2

        -

        - Yahoo! UI Library - > logger - > YAHOO.widget.LogReader - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.LogReader - - - - - - - -

        - - - - - -
        - The LogReader class provides UI to read messages logged to YAHOO.widget.Logger. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.LogReader - - ( - - - - elContainer - - - , - oConfigs - ) - -
        -
        -
        Parameters:
        -
        - elContainer - <HTMLElement> - - (optional) DOM element reference of an existing DIV. -
        -
        - elContainer - <String> - - (optional) String ID of an existing DIV. -
        -
        - oConfigs - <Object> - - (optional) Object literal of configuration params. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _btnClear - - private HTMLElement -

        -
        -
        - Clear button element. -
        -
        - - - - -
        -

        _btnCollapse - - private HTMLElement -

        -
        -
        - LogReader collapse button element. -
        -
        - - - - -
        -

        _btnPause - - private HTMLElement -

        -
        -
        - LogReader pause button element. -
        -
        - - - - -
        -

        _buffer - - private Object[] -

        -
        -
        - Buffer of log message objects for batch output. -
        -
        - - - - -
        -

        _categoryFilters - - private String[] -

        -
        -
        - Array of filters for log message categories. -
        -
        - - - - -
        -

        _consoleMsgCount - - private Number -

        -
        -
        - Number of log messages output to console. -
        -
        - - -
        - Default Value: 0 -
        - - -
        -

        _elBtns - - private HTMLElement -

        -
        -
        - LogReader buttons container element. -
        -
        - - - - -
        -

        _elCategoryFilters - - private HTMLElement -

        -
        -
        - Container element for LogReader category filter checkboxes. -
        -
        - - - - -
        -

        _elCollapse - - private HTMLElement -

        -
        -
        - LogReader collapse element. -
        -
        - - - - -
        -

        _elConsole - - private HTMLElement -

        -
        -
        - LogReader console element. -
        -
        - - - - -
        -

        _elContainer - - private HTMLElement -

        -
        -
        - LogReader container element. -
        -
        - - - - -
        -

        _elDefaultContainer - - private HTMLElement -

        -
        -
        - A class member shared by all LogReaders if a container needs to be -created during instantiation. Will be null if a container element never needs to -be created on the fly, such as when the implementer passes in their own element. -
        -
        - - - - -
        -

        _elFt - - private HTMLElement -

        -
        -
        - LogReader footer element. -
        -
        - - - - -
        -

        _elHd - - private HTMLElement -

        -
        -
        - LogReader header element. -
        -
        - - - - -
        -

        _elSourceFilters - - private HTMLElement -

        -
        -
        - Container element for LogReader source filter checkboxes. -
        -
        - - - - -
        -

        _filterCheckboxes - - private Object -

        -
        -
        - Hash of filters and their related checkbox elements. -
        -
        - - - - -
        -

        _lastTime - - private Date -

        -
        -
        - Date of last output log message. -
        -
        - - - - -
        -

        _memberName - - private static Number -

        -
        -
        - Internal class member to index multiple LogReader instances. -
        -
        - - -
        - Default Value: 0 -
        - - -
        -

        _sName - - private String -

        -
        -
        - Name of LogReader instance. -
        -
        - - - - -
        -

        _sourceFilters - - private String[] -

        -
        -
        - Array of filters for log message sources. -
        -
        - - - - -
        -

        _timeout - - private Number -

        -
        -
        - Batched output timeout ID. -
        -
        - - - - -
        -

        _title - - private HTMLElement -

        -
        -
        - LogReader title header element. -
        -
        - - - - -
        -

        bottom - - String -

        -
        -
        - Public member to access CSS bottom position of the LogReader container. -
        -
        - - - - -
        -

        draggable - - Boolean -

        -
        -
        - Enables draggable LogReader if DragDrop Utility is present. -
        -
        - - -
        - Default Value: true -
        - - -
        -

        fontSize - - String -

        -
        -
        - Public member to access CSS font size of the LogReader container. -
        -
        - - - - -
        -

        footerEnabled - - Boolean -

        -
        -
        - Whether or not the footer UI is enabled for the LogReader. -
        -
        - - -
        - Default Value: true -
        - - -
        -

        height - - String -

        -
        -
        - Public member to access CSS height of the LogReader container. -
        -
        - - - - -
        -

        isCollapsed - - Boolean -

        -
        -
        - True when LogReader is in a collapsed state, false otherwise. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        isPaused - - Boolean -

        -
        -
        - True when LogReader is in a paused state, false otherwise. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        left - - String -

        -
        -
        - Public member to access CSS left position of the LogReader container. -
        -
        - - - - -
        -

        logReaderEnabled - - Boolean -

        -
        -
        - Whether or not LogReader is enabled to output log messages. -
        -
        - - -
        - Default Value: true -
        - - -
        -

        newestOnTop - - Boolean -

        -
        -
        - Whether or not newest message is printed on top. -
        -
        - - - - -
        -

        outputBuffer - - Number -

        -
        -
        - Output timeout buffer in milliseconds. -
        -
        - - -
        - Default Value: 100 -
        - - -
        -

        right - - String -

        -
        -
        - Public member to access CSS right position of the LogReader container. -
        -
        - - - - -
        -

        thresholdMax - - Number -

        -
        -
        - Maximum number of messages a LogReader console will display. -
        -
        - - -
        - Default Value: 500 -
        - - -
        -

        thresholdMin - - Number -

        -
        -
        - When a LogReader console reaches its thresholdMax, it will clear out messages -and print out the latest thresholdMin number of messages. -
        -
        - - -
        - Default Value: 100 -
        - - -
        -

        top - - String -

        -
        -
        - Public member to access CSS top position of the LogReader container. -
        -
        - - - - -
        -

        verboseOutput - - Boolean -

        -
        -
        - Whether or not output is verbose (more readable). Setting to true will make -output more compact (less readable). -
        -
        - - -
        - Default Value: true -
        - - -
        -

        width - - String -

        -
        -
        - Public member to access CSS width of the LogReader container. -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - _createCategoryCheckbox

        -
        - - private - - - void - _createCategoryCheckbox - ( - - - sCategory - - - ) - - -
        - Creates the UI for a category filter in the LogReader footer element. -
        - -
        - -
        -
        Parameters:
        -
        - sCategory <String> - Category name. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _createSourceCheckbox

        -
        - - private - - - void - _createSourceCheckbox - ( - - - sSource - - - ) - - -
        - Creates a checkbox in the LogReader footer element to filter by source. -
        - -
        - -
        -
        Parameters:
        -
        - sSource <String> - Source name. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _filterLogs

        -
        - - private - - - void - _filterLogs - ( - ) - - -
        - Reprints all log messages in the stack through filters. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onCategoryCreate

        -
        - - private - - - void - _onCategoryCreate - ( - - - sType - - - , - aArgs - - - , - oSelf - - - ) - - -
        - Handles Logger's categoryCreateEvent. -
        - -
        - -
        -
        Parameters:
        -
        - sType <String> - The event. -
        -
        - aArgs <Object[]> - Data passed from event firer. -
        -
        - oSelf <Object> - The LogReader instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onCheckCategory

        -
        - - private - - - void - _onCheckCategory - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles check events on the category filter checkboxes. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The click event. -
        -
        - oSelf <Object> - The LogReader instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onCheckSource

        -
        - - private - - - void - _onCheckSource - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles check events on the category filter checkboxes. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The click event. -
        -
        - oSelf <Object> - The LogReader instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onClickClearBtn

        -
        - - private - - - void - _onClickClearBtn - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles click events on the clear button. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The click event. -
        -
        - oSelf <Object> - The LogReader instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onClickCollapseBtn

        -
        - - private - - - void - _onClickCollapseBtn - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles click events on the collapse button. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The click event. -
        -
        - oSelf <Object> - The LogReader instance -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onClickPauseBtn

        -
        - - private - - - void - _onClickPauseBtn - ( - - - v - - - , - oSelf - - - ) - - -
        - Handles click events on the pause button. -
        - -
        - -
        -
        Parameters:
        -
        - v <HTMLEvent> - The click event. -
        -
        - oSelf <Object> - The LogReader instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onNewLog

        -
        - - private - - - void - _onNewLog - ( - - - sType - - - , - aArgs - - - , - oSelf - - - ) - - -
        - Handles Logger's newLogEvent. -
        - -
        - -
        -
        Parameters:
        -
        - sType <String> - The event. -
        -
        - aArgs <Object[]> - Data passed from event firer. -
        -
        - oSelf <Object> - The LogReader instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onReset

        -
        - - private - - - void - _onReset - ( - - - sType - - - , - aArgs - - - , - oSelf - - - ) - - -
        - Handles Logger's resetEvent. -
        - -
        - -
        -
        Parameters:
        -
        - sType <String> - The event. -
        -
        - aArgs <Object[]> - Data passed from event firer. -
        -
        - oSelf <Object> - The LogReader instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onSourceCreate

        -
        - - private - - - void - _onSourceCreate - ( - - - sType - - - , - aArgs - - - , - oSelf - - - ) - - -
        - Handles Logger's sourceCreateEvent. -
        - -
        - -
        -
        Parameters:
        -
        - sType <String> - The event. -
        -
        - aArgs <Object[]> - Data passed from event firer. -
        -
        - oSelf <Object> - The LogReader instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _printBuffer

        -
        - - private - - - void - _printBuffer - ( - ) - - -
        - Sends buffer of log messages to output and clears buffer. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _printToConsole

        -
        - - private - - - void - _printToConsole - ( - - - aEntries - - - ) - - -
        - Cycles through an array of log messages, and outputs each one to the console -if its category has not been filtered out. -
        - -
        - -
        -
        Parameters:
        -
        - aEntries <Object[]> - Array of LogMsg objects to output to console. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - clearConsole

        -
        - - - - - void - clearConsole - ( - ) - - -
        - Does not delete any log messages, but clears all printed log messages from -the console. Log messages will be printed out again if user re-filters. The -static method YAHOO.widget.Logger.reset() should be called in order to -actually delete log messages. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - collapse

        -
        - - - - - void - collapse - ( - ) - - -
        - Collapses UI of LogReader. Logging functionality is not disrupted. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - expand

        -
        - - - - - void - expand - ( - ) - - -
        - Expands UI of LogReader. Logging functionality is not disrupted. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - formatMsg

        -
        - - - - - String - formatMsg - ( - - - oLogMsg - - - ) - - -
        - Formats message string to HTML for output to console. -
        - -
        - -
        -
        Parameters:
        -
        - oLogMsg <Object> - Log message object. -
        -
        - -
        -
        Returns: - - String -
        -
        HTML-formatted message for output to console.
        -
        - -
        - -
        -
        -

        - getCategories

        -
        - - - - - String[] - getCategories - ( - ) - - -
        - Returns array of enabled categories. -
        - -
        - - -
        -
        Returns: - - String[] -
        -
        Array of enabled categories.
        -
        - -
        - -
        -
        -

        - getCheckbox

        -
        - - - - - Array - getCheckbox - ( - - - Category - - - ) - - -
        - Returns related checkbox element for given filter (i.e., category or source). -
        - -
        - -
        -
        Parameters:
        -
        - Category <String> - or source name. -
        -
        - -
        -
        Returns: - - Array -
        -
        Array of all filter checkboxes.
        -
        - -
        - -
        -
        -

        - getLastTime

        -
        - - - - - Date - getLastTime - ( - ) - - -
        - Gets timestamp of the last log. -
        - -
        - - -
        -
        Returns: - - Date -
        -
        Timestamp of the last log.
        -
        - -
        - -
        -
        -

        - getSources

        -
        - - - - - Array - getSources - ( - ) - - -
        - Returns array of enabled sources. -
        - -
        - - -
        -
        Returns: - - Array -
        -
        Array of enabled sources.
        -
        - -
        - -
        -
        -

        - hide

        -
        - - - - - void - hide - ( - ) - - -
        - Hides UI of LogReader. Logging functionality is not disrupted. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - hideCategory

        -
        - - - - - void - hideCategory - ( - - - Category - - - ) - - -
        - Hides log messages associated with given category. -
        - -
        - -
        -
        Parameters:
        -
        - Category <String> - name. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - hideSource

        -
        - - - - - void - hideSource - ( - - - Source - - - ) - - -
        - Hides log messages associated with given source. -
        - -
        - -
        -
        Parameters:
        -
        - Source <String> - name. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - html2Text

        -
        - - private - - - void - html2Text - ( - - - sHtml - - - ) - - -
        - Converts input chars "<", ">", and "&" to HTML entities. -
        - -
        - -
        -
        Parameters:
        -
        - sHtml <String> - String to convert. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - pause

        -
        - - - - - void - pause - ( - ) - - -
        - Pauses output of log messages. While paused, log messages are not lost, but -get saved to a buffer and then output upon resume of LogReader. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - resume

        -
        - - - - - void - resume - ( - ) - - -
        - Resumes output of log messages, including outputting any log messages that -have been saved to buffer while paused. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setTitle

        -
        - - - - - void - setTitle - ( - - - sTitle - - - ) - - -
        - Updates title to given string. -
        - -
        - -
        -
        Parameters:
        -
        - sTitle <String> - New title. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - show

        -
        - - - - - void - show - ( - ) - - -
        - Shows UI of LogReader. Logging functionality is not disrupted. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - showCategory

        -
        - - - - - void - showCategory - ( - - - Category - - - ) - - -
        - Shows log messages associated with given category. -
        - -
        - -
        -
        Parameters:
        -
        - Category <String> - name. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - showSource

        -
        - - - - - void - showSource - ( - - - Source - - - ) - - -
        - Shows log messages associated with given source. -
        - -
        - -
        -
        Parameters:
        -
        - Source <String> - name. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Public accessor to the unique name of the LogReader instance. -
        - -
        - - -
        -
        Returns: - - String -
        -
        Unique name of the LogReader instance.
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.LogWriter.html b/www/extras/yui/docs/YAHOO.widget.LogWriter.html deleted file mode 100644 index 92b4db369..000000000 --- a/www/extras/yui/docs/YAHOO.widget.LogWriter.html +++ /dev/null @@ -1,382 +0,0 @@ - - - - API: logger YAHOO.widget.LogWriter (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Logger Widget  2.2.2

        -

        - Yahoo! UI Library - > logger - > YAHOO.widget.LogWriter - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.LogWriter - - - - - - - -

        - - - - - -
        - The LogWriter class provides a mechanism to log messages through -YAHOO.widget.Logger from a named source. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.LogWriter - - ( - - - - sSource - ) - -
        -
        -
        Parameters:
        -
        - sSource - <String> - - Source of LogWriter instance. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _source - - private String -

        -
        -
        - Source of the LogWriter instance. -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - getSource

        -
        - - - - - String - getSource - ( - ) - - -
        - Public accessor to get the source name. -
        - -
        - - -
        -
        Returns: - - String -
        -
        The LogWriter source.
        -
        - -
        - -
        -
        -

        - log

        -
        - - - - - void - log - ( - - - sMsg - - - , - sCategory - - - ) - - -
        - Logs a message attached to the source of the LogWriter. -
        - -
        - -
        -
        Parameters:
        -
        - sMsg <String> - The log message. -
        -
        - sCategory <String> - Category name. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setSource

        -
        - - - - - void - setSource - ( - - - sSource - - - ) - - -
        - Public accessor to set the source name. -
        - -
        - -
        -
        Parameters:
        -
        - sSource <String> - Source of LogWriter instance. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Public accessor to the unique name of the LogWriter instance. -
        - -
        - - -
        -
        Returns: - - String -
        -
        Unique name of the LogWriter instance.
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.Logger.html b/www/extras/yui/docs/YAHOO.widget.Logger.html deleted file mode 100644 index 2c968c1b3..000000000 --- a/www/extras/yui/docs/YAHOO.widget.Logger.html +++ /dev/null @@ -1,1018 +0,0 @@ - - - - API: logger YAHOO.widget.Logger (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Logger Widget  2.2.2

        -

        - Yahoo! UI Library - > logger - > YAHOO.widget.Logger - -

        -
        - -
        -
        -
        - - -

        - - - static - - Class YAHOO.widget.Logger - - - - - - - -

        - - - - - -
        - The singleton Logger class provides core log management functionality. Saves -logs written through the global YAHOO.log function or written by a LogWriter -instance. Provides access to logs for reading by a LogReader instance or -native browser console such as the Firebug extension to Firefox or Safari's -JavaScript console through integration with the console.log() method. -
        - - -
        -

        Properties

        -
        -

        _browserConsoleEnabled - - private static Boolean -

        -
        -
        - Internal property to track whether output to browser console is enabled. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        _lastTime - - private static Date -

        -
        -
        - Timestamp of last logged message. -
        -
        - - - - -
        -

        _stack - - private static Array -

        -
        -
        - Array to hold all log messages. -
        -
        - - - - -
        -

        _startTime - - private static Date -

        -
        -
        - Static timestamp of Logger initialization. -
        -
        - - - - -
        -

        categories - - static String[] -

        -
        -
        - Array of categories. -
        -
        - - -
        - Default Value: ["info","warn","error","time","window"] -
        - - -
        -

        loggerEnabled - - static Boolean -

        -
        -
        - True if Logger is enabled, false otherwise. -
        -
        - - -
        - Default Value: true -
        - - -
        -

        maxStackEntries - - static Number -

        -
        -
        - Upper limit on size of internal stack. -
        -
        - - -
        - Default Value: 2500 -
        - - -
        -

        sources - - static String[] -

        -
        -
        - Array of sources. -
        -
        - - -
        - Default Value: ["global"] -
        - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - _createNewCategory

        -
        - - private - - - void - _createNewCategory - ( - - - sCategory - - - ) - - -
        - Creates a new category of log messages and fires categoryCreateEvent. -
        - -
        - -
        -
        Parameters:
        -
        - sCategory <String> - Category name. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _createNewSource

        -
        - - private - - - void - _createNewSource - ( - - - sSource - - - ) - - -
        - Creates a new source of log messages and fires sourceCreateEvent. -
        - -
        - -
        -
        Parameters:
        -
        - sSource <String> - Source name. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _isNewCategory

        -
        - - private - - - Boolean - _isNewCategory - ( - - - sCategory - - - ) - - -
        - Checks to see if a category has already been created. -
        - -
        - -
        -
        Parameters:
        -
        - sCategory <String> - Category name. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        Returns true if category is unknown, else returns false.
        -
        - -
        - -
        -
        -

        - _isNewSource

        -
        - - private - - - Boolean - _isNewSource - ( - - - sSource - - - ) - - -
        - Checks to see if a source already exists. -
        - -
        - -
        -
        Parameters:
        -
        - sSource <String> - Source name. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        Returns true if source is unknown, else returns false.
        -
        - -
        - -
        -
        -

        - _onWindowError

        -
        - - private - - - void - _onWindowError - ( - - - sMsg - - - , - sUrl - - - , - sLine - - - ) - - -
        - Handles logging of messages due to window error events. -
        - -
        - -
        -
        Parameters:
        -
        - sMsg <String> - The error message. -
        -
        - sUrl <String> - URL of the error. -
        -
        - sLine <String> - Line number of the error. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _printToBrowserConsole

        -
        - - private - - - void - _printToBrowserConsole - ( - - - oEntry - - - ) - - -
        - Outputs a log message to global console.log() function. -
        - -
        - -
        -
        Parameters:
        -
        - oEntry <Object> - Log entry object. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - disableBrowserConsole

        -
        - - - - - void - disableBrowserConsole - ( - ) - - -
        - Disables output to the browser's global console.log() function, which is used -by the Firebug extension to Firefox as well as Safari. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - enableBrowserConsole

        -
        - - - - - void - enableBrowserConsole - ( - ) - - -
        - Enables output to the browser's global console.log() function, which is used -by the Firebug extension to Firefox as well as Safari. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getStack

        -
        - - - - - Object[] - getStack - ( - ) - - -
        - Public accessor to internal stack of log message objects. -
        - -
        - - -
        -
        Returns: - - Object[] -
        -
        Array of log message objects.
        -
        - -
        - -
        -
        -

        - getStartTime

        -
        - - - - - Date - getStartTime - ( - ) - - -
        - Public accessor to internal start time. -
        - -
        - - -
        -
        Returns: - - Date -
        -
        Internal date of when Logger singleton was initialized.
        -
        - -
        - -
        -
        -

        - log

        -
        - - - - - void - log - ( - - - sMsg - - - , - sCategory - - - , - sSource - - - ) - - -
        - Saves a log message to the stack and fires newLogEvent. If the log message is -assigned to an unknown category, creates a new category. If the log message is -from an unknown source, creates a new source. If browser console is enabled, -outputs the log message to browser console. -
        - -
        - -
        -
        Parameters:
        -
        - sMsg <String> - The log message. -
        -
        - sCategory <String> - Category of log message, or null. -
        -
        - sSource <String> - Source of LogWriter, or null if global. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - reset

        -
        - - - - - void - reset - ( - ) - - -
        - Resets internal stack and startTime, enables Logger, and fires logResetEvent. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Events

        -
        -

        - categoryCreateEvent

        -
        - - - - - categoryCreateEvent - - ( - - - sCategory - - - ) - - - -
        - Fired when a new category has been created. -
        - -
        - - -
        -
        Parameters:
        -
        - sCategory <String> - Category name. -
        -
        - - -
        - -
        -
        -

        - logResetEvent

        -
        - - - - - logResetEvent - - ( - ) - - - -
        - Fired when the Logger has been reset has been created. -
        - -
        - - - - -
        - -
        -
        -

        - newLogEvent

        -
        - - - - - newLogEvent - - ( - - - sMsg - - - ) - - - -
        - Fired when a new log message has been created. -
        - -
        - - -
        -
        Parameters:
        -
        - sMsg <String> - Log message. -
        -
        - - -
        - -
        -
        -

        - sourceCreateEvent

        -
        - - - - - sourceCreateEvent - - ( - - - sSource - - - ) - - - -
        - Fired when a new source has been named. -
        - -
        - - -
        -
        Parameters:
        -
        - sSource <String> - Source name. -
        -
        - - -
        - -
        -
        -
        -
        - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.Menu.html b/www/extras/yui/docs/YAHOO.widget.Menu.html deleted file mode 100644 index eb6c7fd83..000000000 --- a/www/extras/yui/docs/YAHOO.widget.Menu.html +++ /dev/null @@ -1,5640 +0,0 @@ - - - - API: menu YAHOO.widget.Menu (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Menu  2.2.2

        -

        - Yahoo! UI Library - > menu - > YAHOO.widget.Menu - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.Menu - - - extends YAHOO.widget.Overlay - - - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.widget.ContextMenu - YAHOO.widget.Menubar -
        -
        - - - -
        - The Menu class creates a container that holds a vertical list representing -a set of options or commands. Menu is the base class for all -menu containers. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.Menu - - ( - - - - p_oElement - - - - - , - p_oConfig - ) - -
        -
        -
        Parameters:
        -
        - p_oElement - <String> - - String specifying the id attribute of the -<div> element of the menu. -
        -
        - p_oElement - <String> - - String specifying the id attribute of the -<select> element to be used as the data source -for the menu. -
        -
        - p_oElement - <HTMLDivElement> - - Object -specifying the <div> element of the menu. -
        -
        - p_oElement - <HTMLSelectElement> - - -Object specifying the <select> element to be used as -the data source for the menu. -
        -
        - p_oConfig - <Object> - - Optional. Object literal specifying the -configuration for the menu. See configuration class documentation for -more details. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _aGroupTitleElements - - private Array -

        -
        -
        - Array of HTML element used to title groups of menu items. -
        -
        - - -
        - Default Value: [] -
        - - -
        -

        _aItemGroups - - private Array -

        -
        -
        - Multi-dimensional Array representing the menu items as they -are grouped in the menu. -
        -
        - - -
        - Default Value: [] -
        - - -
        -

        _aListElements - - private Array -

        -
        -
        - Array of <ul> elements, each of which is -the parent node for each item's <li> element. -
        -
        - - -
        - Default Value: [] -
        - - -
        -

        _bHandledMouseOutEvent - - private Boolean -

        -
        -
        - Boolean indicating the current state of the menu's -"mouseout" event. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        _bHandledMouseOverEvent - - private Boolean -

        -
        -
        - Boolean indicating the current state of the menu's -"mouseover" event. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        _bHideDelayEventHandlersAssigned - - private Boolean -

        -
        -
        - Boolean indicating if the "mouseover" and "mouseout" event -handlers used for hiding the menu via a call to "window.setTimeout" have -already been assigned. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        _bStopMouseEventHandlers - - private Boolean -

        -
        -
        - Stops "mouseover," "mouseout," and "mousemove" event handlers -from executing. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        _nBodyScrollId - - private Number -

        -
        -
        - Number representing the time-out setting used to cancel the -scrolling of the menu's body element. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        _nCurrentMouseX - - private Number -

        -
        -
        - The current x coordinate of the mouse inside the area of -the menu. -
        -
        - - -
        - Default Value: 0 -
        - - -
        -

        _nHideDelayId - - private Number -

        -
        -
        - Number representing the time-out setting used to cancel the -hiding of a menu. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        _nMaxHeight - - private Number -

        -
        -
        - The original value of the "maxheight" configuration property -as set by the user. -
        -
        - - -
        - Default Value: -1 -
        - - -
        -

        _nShowDelayId - - private Number -

        -
        -
        - Number representing the time-out setting used to cancel the -showing of a menu. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        _nSubmenuHideDelayId - - private Number -

        -
        -
        - Number representing the time-out setting used to cancel the -hiding of a submenu. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        _sClassName - - private String -

        -
        -
        - The current value of the "classname" configuration attribute. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        activeItem - - YAHOO.widget.MenuItem -

        -
        -
        - Object reference to the item in the menu that has is selected. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        CSS_CLASS_NAME - - final String -

        -
        -
        - String representing the CSS class(es) to be applied to the -menu's <div> element. -
        -
        - - -
        - Default Value: "yuimenu" -
        - - -
        -

        GROUP_TITLE_TAG_NAME - - final String -

        -
        -
        - String representing the tagname of the HTML element used to -title the menu's item groups. -
        -
        - - -
        - Default Value: H6 -
        - - -
        -

        ITEM_TYPE - - final YAHOO.widget.MenuItem -

        -
        -
        - Object representing the type of menu item to instantiate and -add when parsing the child nodes (either <li> element, -<optgroup> element or <option>) -of the menu's source HTML element. -
        -
        - - -
        - Default Value: YAHOO.widget.MenuItem -
        - - -
        -

        itemData - - Array -

        -
        -
        - Array of items to be added to the menu. The array can contain -strings representing the text for each item to be created, object literals -representing the menu item configuration properties, or MenuItem instances. -This property should be set via the constructor using the configuration -object literal. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        lazyLoad - - Boolean -

        -
        -
        - Boolean indicating if the menu's "lazy load" feature is -enabled. If set to "true," initialization and rendering of the menu's -items will be deferred until the first time it is made visible. This -property should be set via the constructor using the configuration -object literal. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        parent - - YAHOO.widget.MenuItem -

        -
        -
        - Object reference to the menu's parent menu or menu item. -This property can be set via the constructor using the configuration -object literal. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        srcElement - - HTMLSelectElement|HTMLDivElement -

        -
        -
        - Object reference to the HTML element (either -<select> or <div>) used to -create the menu. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        YAHOO.widget.Menu._DEFAULT_CONFIG - - private final Object -

        -
        -
        - Constant representing the Menu's configuration properties -
        -
        - - - - -
        -

        YAHOO.widget.Menu._EVENT_TYPES - - private final Object -

        -
        -
        - Constant representing the name of the Menu's events -
        -
        - - - - -
        - - -
        -
        - - - - -
        -

        Methods

        -
        -

        - _addItemToGroup

        -
        - - private - - - YAHOO.widget.MenuItem - _addItemToGroup - ( - - - p_nGroupIndex - - - , - p_oItem - - - - - - - , - p_nItemIndex - - - ) - - -
        - Adds a menu item to a group. -
        - -
        - -
        -
        Parameters:
        -
        - p_nGroupIndex <Number> - Number indicating the group to which the -item belongs. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object reference for the MenuItem -instance to be added to the menu. -
        -
        - p_oItem <String> - String specifying the text of the item to be added -to the menu. -
        -
        - p_oItem <Object> - Object literal containing a set of menu item -configuration properties. -
        -
        - p_nItemIndex <Number> - Optional. Number indicating the index at -which the menu item should be added. -
        -
        - -
        -
        Returns: - - YAHOO.widget.MenuItem -
        -
        -
        - -
        - -
        -
        -

        - _cancelHideDelay

        -
        - - private - - - void - _cancelHideDelay - ( - ) - - -
        - Cancels the call to "hideMenu." -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _cancelShowDelay

        -
        - - private - - - void - _cancelShowDelay - ( - ) - - -
        - Cancels the call to the "showMenu." -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _checkPosition

        -
        - - private - - - Boolean - _checkPosition - ( - - - p_sPosition - - - ) - - -
        - Checks to make sure that the value of the "position" property -is one of the supported strings. Returns true if the position is supported. -
        - -
        - -
        -
        Parameters:
        -
        - p_sPosition <Object> - String specifying the position of the menu. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        -
        - -
        - -
        -
        -

        - _configureSubmenu

        -
        - - private - - - void - _configureSubmenu - ( - - - p_oItem - - - ) - - -
        - Subscribes the menu item's submenu to its parent menu's events. -
        - -
        - -
        -
        Parameters:
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object reference for the MenuItem -instance with the submenu to be configured. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _createItemGroup

        -
        - - private - - - Array - _createItemGroup - ( - - - p_nIndex - - - ) - - -
        - Creates a new menu item group (array) and its associated -<ul> element. Returns an aray of menu item groups. -
        - -
        - -
        -
        Parameters:
        -
        - p_nIndex <Number> - Number indicating the group to create. -
        -
        - -
        -
        Returns: - - Array -
        -
        -
        - -
        - -
        -
        -

        - _disableScrollFooter

        -
        - - protected - - - void - _disableScrollFooter - ( - ) - - -
        - Disables the footer used for scrolling the body of the menu. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _disableScrollHeader

        -
        - - protected - - - void - _disableScrollHeader - ( - ) - - -
        - Disables the header used for scrolling the body of the menu. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _enableScrollFooter

        -
        - - protected - - - void - _enableScrollFooter - ( - ) - - -
        - Enables the footer used for scrolling the body of the menu. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _enableScrollHeader

        -
        - - protected - - - void - _enableScrollHeader - ( - ) - - -
        - Enables the header used for scrolling the body of the menu. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _execHideDelay

        -
        - - private - - - void - _execHideDelay - ( - ) - - -
        - Hides the menu after the number of milliseconds specified by -the "hidedelay" configuration property. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _execShowDelay

        -
        - - private - - - void - _execShowDelay - ( - - - p_oMenu - - - ) - - -
        - Shows the menu after the number of milliseconds specified by -the "showdelay" configuration property have ellapsed. -
        - -
        - -
        -
        Parameters:
        -
        - p_oMenu <YAHOO.widget.Menu> - Object specifying the menu that should -be made visible. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _execSubmenuHideDelay

        -
        - - private - - - void - _execSubmenuHideDelay - ( - - - p_oSubmenu - - - , - p_nMouseX - - - , - p_nHideDelay - - - ) - - -
        - Hides a submenu after the number of milliseconds specified by -the "submenuhidedelay" configuration property have ellapsed. -
        - -
        - -
        -
        Parameters:
        -
        - p_oSubmenu <YAHOO.widget.Menu> - Object specifying the submenu that -should be hidden. -
        -
        - p_nMouseX <Number> - The x coordinate of the mouse when it left -the specified submenu's parent menu item. -
        -
        - p_nHideDelay <Number> - The number of milliseconds that should ellapse -before the submenu is hidden. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _getFirstEnabledItem

        -
        - - private - - - YAHOO.widget.MenuItem - _getFirstEnabledItem - ( - ) - - -
        - Returns the first enabled item in the menu. -
        - -
        - - -
        -
        Returns: - - YAHOO.widget.MenuItem -
        -
        -
        - -
        - -
        -
        -

        - _getItemGroup

        -
        - - private - - - Array - _getItemGroup - ( - - - p_nIndex - - - ) - - -
        - Returns the menu item group at the specified index. -
        - -
        - -
        -
        Parameters:
        -
        - p_nIndex <Number> - Number indicating the index of the menu item group -to be retrieved. -
        -
        - -
        -
        Returns: - - Array -
        -
        -
        - -
        - -
        -
        -

        - _getOffsetWidth

        -
        - - private - - - void - _getOffsetWidth - ( - ) - - -
        - Returns the offset width of the menu's -<div> element. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _initSubTree

        -
        - - private - - - void - _initSubTree - ( - ) - - -
        - Iterates the childNodes of the source element to find nodes -used to instantiate menu and menu items. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onBeforeHide

        -
        - - private - - - void - _onBeforeHide - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - "beforehide" event handler for the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that fired -the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onBeforeRender

        -
        - - private - - - void - _onBeforeRender - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - "beforerender" event handler for the menu. Appends all of the -<ul>, <li> and their accompanying -title elements to the body element of the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onBeforeShow

        -
        - - private - - - void - _onBeforeShow - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - "beforeshow" event handler for the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onClick

        -
        - - protected - - - void - _onClick - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - "click" event handler for the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onHide

        -
        - - private - - - void - _onHide - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - "hide" event handler for the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that fired -the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onInit

        -
        - - private - - - void - _onInit - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - "init" event handler for the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onKeyDown

        -
        - - protected - - - void - _onKeyDown - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - "keydown" event handler for the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onKeyPress

        -
        - - protected - - - void - _onKeyPress - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - "keypress" event handler for a Menu instance. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - The name of the event that was fired. -
        -
        - p_aArgs <Array> - Collection of arguments sent when the event -was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - The Menu instance that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMenuItemBlur

        -
        - - private - - - void - _onMenuItemBlur - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "blur" event handler for the menu's items. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event -that was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMenuItemConfigChange

        -
        - - private - - - void - _onMenuItemConfigChange - ( - - - p_sType - - - , - p_aArgs - - - , - p_oItem - - - ) - - -
        - "configchange" event handler for the menu's items. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object representing the menu item -that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMenuItemFocus

        -
        - - private - - - void - _onMenuItemFocus - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "focus" event handler for the menu's items. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMouseMove

        -
        - - protected - - - void - _onMouseMove - ( - - - p_oEvent - - - , - p_oMenu - - - ) - - -
        - "click" event handler for the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMouseOut

        -
        - - protected - - - void - _onMouseOut - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - "mouseout" event handler for the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onMouseOver

        -
        - - protected - - - void - _onMouseOver - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - "mouseover" event handler for the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onParentMenuConfigChange

        -
        - - private - - - void - _onParentMenuConfigChange - ( - - - p_sType - - - , - p_aArgs - - - , - p_oSubmenu - - - ) - - -
        - "configchange" event handler for a submenu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oSubmenu <YAHOO.widget.Menu> - Object representing the submenu that -subscribed to the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onParentMenuRender

        -
        - - private - - - void - _onParentMenuRender - ( - - - p_sType - - - , - p_aArgs - - - , - p_oSubmenu - - - ) - - -
        - "render" event handler for a submenu. Renders a -submenu in response to the firing of its parent's "render" event. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oSubmenu <YAHOO.widget.Menu> - Object representing the submenu that -subscribed to the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onRender

        -
        - - private - - - void - _onRender - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "render" event handler for the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onScrollTargetMouseOut

        -
        - - protected - - - void - _onScrollTargetMouseOut - ( - - - p_oEvent - - - , - p_oMenu - - - ) - - -
        - "mouseout" event handler for the menu's "header" and "footer" -elements. Used to stop scrolling the body of the menu up and down when the -menu's "maxheight" configuration property is set to a value greater than 0. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onScrollTargetMouseOver

        -
        - - protected - - - void - _onScrollTargetMouseOver - ( - - - p_oEvent - - - , - p_oMenu - - - ) - - -
        - "mouseover" event handler for the menu's "header" and "footer" -elements. Used to scroll the body of the menu up and down when the -menu's "maxheight" configuration property is set to a value greater than 0. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onShow

        -
        - - private - - - void - _onShow - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - "show" event handler for the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that fired -the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onSubmenuBeforeShow

        -
        - - private - - - void - _onSubmenuBeforeShow - ( - - - p_sType - - - , - p_aArgs - - - , - p_oSubmenu - - - ) - - -
        - "beforeshow" event handler for a submenu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oSubmenu <YAHOO.widget.Menu> - Object representing the submenu that -subscribed to the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onSubmenuHide

        -
        - - private - - - void - _onSubmenuHide - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "hide" Custom Event handler for a submenu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onSubmenuShow

        -
        - - private - - - void - _onSubmenuShow - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "show" event handler for a submenu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onTextResize

        -
        - - protected - - - void - _onTextResize - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - "textresize" event handler for the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onVisibleChange

        -
        - - private - - - void - _onVisibleChange - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - Change event handler for the the menu's "visible" configuration -property. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onWidthChange

        -
        - - private - - - void - _onWidthChange - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - Change event handler for the the menu's "width" configuration -property. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _removeItemFromGroupByIndex

        -
        - - private - - - YAHOO.widget.MenuItem - _removeItemFromGroupByIndex - ( - - - p_nGroupIndex - - - , - p_nItemIndex - - - ) - - -
        - Removes a menu item from a group by index. Returns the menu -item that was removed. -
        - -
        - -
        -
        Parameters:
        -
        - p_nGroupIndex <Number> - Number indicating the group to which the menu -item belongs. -
        -
        - p_nItemIndex <Number> - Number indicating the index of the menu item -to be removed. -
        -
        - -
        -
        Returns: - - YAHOO.widget.MenuItem -
        -
        -
        - -
        - -
        -
        -

        - _removeItemFromGroupByValue

        -
        - - private - - - YAHOO.widget.MenuItem - _removeItemFromGroupByValue - ( - - - p_nGroupIndex - - - , - p_oItem - - - ) - - -
        - Removes a menu item from a group by reference. Returns the -menu item that was removed. -
        - -
        - -
        -
        Parameters:
        -
        - p_nGroupIndex <Number> - Number indicating the group to which the -menu item belongs. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object reference for the MenuItem -instance to be removed. -
        -
        - -
        -
        Returns: - - YAHOO.widget.MenuItem -
        -
        -
        - -
        - -
        -
        -

        - _setMaxHeight

        -
        - - private - - - void - _setMaxHeight - ( - - - p_sType - - - , - p_aArgs - - - , - p_nMaxHeight - - - ) - - -
        - "renderEvent" handler used to defer the setting of the -"maxheight" configuration property until the menu is rendered in lazy -load scenarios. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - The name of the event that was fired. -
        -
        - p_aArgs <Array> - Collection of arguments sent when the event -was fired. -
        -
        - p_nMaxHeight <Number> - Number representing the value to set for the -"maxheight" configuration property. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _setWidth

        -
        - - private - - - void - _setWidth - ( - ) - - -
        - Sets the width of the menu's root <div> -element to its offsetWidth. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _subscribeToItemEvents

        -
        - - private - - - void - _subscribeToItemEvents - ( - - - p_oItem - - - ) - - -
        - Subscribes a menu to a menu item's event. -
        - -
        - -
        -
        Parameters:
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object reference for the MenuItem -instance whose events should be subscribed to. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _updateItemProperties

        -
        - - private - - - void - _updateItemProperties - ( - - - p_nGroupIndex - - - ) - - -
        - Updates the "index," "groupindex," and "className" properties -of the menu items in the specified group. -
        - -
        - -
        -
        Parameters:
        -
        - p_nGroupIndex <Number> - Number indicating the group of items to update. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addItem

        -
        - - - - - YAHOO.widget.MenuItem - addItem - ( - - - p_oItem - - - - - - - , - p_nGroupIndex - - - ) - - -
        - Appends an item to the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object reference for the MenuItem -instance to be added to the menu. -
        -
        - p_oItem <String> - String specifying the text of the item to be added -to the menu. -
        -
        - p_oItem <Object> - Object literal containing a set of menu item -configuration properties. -
        -
        - p_nGroupIndex <Number> - Optional. Number indicating the group to -which the item belongs. -
        -
        - -
        -
        Returns: - - YAHOO.widget.MenuItem -
        -
        -
        - -
        - -
        -
        -

        - addItems

        -
        - - - - - Array - addItems - ( - - - p_aItems - - - , - p_nGroupIndex - - - ) - - -
        - Adds an array of items to the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_aItems <Array> - Array of items to be added to the menu. The array -can contain strings specifying the text for each item to be created, object -literals specifying each of the menu item configuration properties, -or MenuItem instances. -
        -
        - p_nGroupIndex <Number> - Optional. Number specifying the group to -which the items belongs. -
        -
        - -
        -
        Returns: - - Array -
        -
        -
        - -
        - -
        -
        -

        - blur

        -
        - - - - - void - blur - ( - ) - - -
        - Causes the menu to lose focus and fires the "blur" event. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - clearActiveItem

        -
        - - - - - void - clearActiveItem - ( - - - p_bBlur - - - ) - - -
        - Sets the "selected" configuration property of the menu's active -item to "false" and hides the item's submenu. -
        - -
        - -
        -
        Parameters:
        -
        - p_bBlur <Boolean> - Boolean indicating if the menu's active item -should be blurred. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - clearContent

        -
        - - - - - void - clearContent - ( - ) - - -
        - Removes all of the content from the menu, including the menu -items, group titles, header and footer. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configClassName

        -
        - - - - - void - configClassName - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - Event handler for when the "classname" configuration property of -a menu changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - The name of the event that was fired. -
        -
        - p_aArgs <Array> - Collection of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - The Menu instance fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configContainer

        -
        - - - - - void - configContainer - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - Event handler for when the "container" configuration property -of the menu changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configHideDelay

        -
        - - - - - void - configHideDelay - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - Event handler for when the "hidedelay" configuration property -of the menu changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configIframe

        -
        - - - - - void - configIframe - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - Event handler for when the "iframe" configuration property of -the menu changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configMaxHeight

        -
        - - - - - void - configMaxHeight - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - Event handler for when the "maxheight" configuration property of -a Menu changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - The name of the event that was fired. -
        -
        - p_aArgs <Array> - Collection of arguments sent when the event -was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - The Menu instance fired -the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configPosition

        -
        - - - - - void - configPosition - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - Event handler for when the "position" configuration property -of the menu changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configVisible

        -
        - - - - - void - configVisible - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenu - - - ) - - -
        - Event handler for when the "visible" configuration property -the menu changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenu <YAHOO.widget.Menu> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - destroy

        -
        - - - - - void - destroy - ( - ) - - -
        - Removes the menu's <div> element -(and accompanying child nodes) from the document. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - enforceConstraints

        -
        - - - - - void - enforceConstraints - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler executed when the moveEvent is fired, -if the "constraintoviewport" configuration property is set to true. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The name of the event that was fired. -
        -
        - args <Array> - Collection of arguments sent when the -event was fired. -
        -
        - obj <Array> - Array containing the current Menu instance -and the item that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - focus

        -
        - - - - - void - focus - ( - ) - - -
        - Causes the menu to receive focus and fires the "focus" event. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getItem

        -
        - - - - - YAHOO.widget.MenuItem - getItem - ( - - - p_nItemIndex - - - , - p_nGroupIndex - - - ) - - -
        - Returns the item at the specified index. -
        - -
        - -
        -
        Parameters:
        -
        - p_nItemIndex <Number> - Number indicating the ordinal position of the -item to be retrieved. -
        -
        - p_nGroupIndex <Number> - Optional. Number indicating the group to which -the item belongs. -
        -
        - -
        -
        Returns: - - YAHOO.widget.MenuItem -
        -
        -
        - -
        - -
        -
        -

        - getItemGroups

        -
        - - - - - Array - getItemGroups - ( - ) - - -
        - Multi-dimensional Array representing the menu items as they -are grouped in the menu. -
        - -
        - - -
        -
        Returns: - - Array -
        -
        -
        - -
        - -
        -
        -

        - getItems

        -
        - - - - - Array - getItems - ( - ) - - -
        - Returns an array of all of the items in the menu. -
        - -
        - - -
        -
        Returns: - - Array -
        -
        -
        - -
        - -
        -
        -

        - getRoot

        -
        - - - - - void - getRoot - ( - ) - - -
        - Finds the menu's root menu. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - hasFocus

        -
        - - - - - Boolean - hasFocus - ( - ) - - -
        - Returns a boolean indicating whether or not the menu has focus. -
        - -
        - - -
        -
        Returns: - - Boolean -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - p_oElement - - - - - - - - - , - p_oConfig - - - ) - - -
        - The Menu class's initialization method. This method is -automatically called by the constructor, and sets up all DOM references -for pre-existing markup, and creates required markup if it is not -already present. -
        - -
        - -
        -
        Parameters:
        -
        - p_oElement <String> - String specifying the id attribute of the -<div> element of the menu. -
        -
        - p_oElement <String> - String specifying the id attribute of the -<select> element to be used as the data source -for the menu. -
        -
        - p_oElement <HTMLDivElement> - Object -specifying the <div> element of the menu. -
        -
        - p_oElement <HTMLSelectElement> - -Object specifying the <select> element to be used as -the data source for the menu. -
        -
        - p_oConfig <Object> - Optional. Object literal specifying the -configuration for the menu. See configuration class documentation for -more details. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initDefaultConfig

        -
        - - - - - void - initDefaultConfig - ( - ) - - -
        - Initializes the class's configurable properties which can be -changed using the menu's Config object ("cfg"). -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initEvents

        -
        - - - - - void - initEvents - ( - ) - - -
        - Initializes the custom events for the menu. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - insertItem

        -
        - - - - - YAHOO.widget.MenuItem - insertItem - ( - - - p_oItem - - - - - - - , - p_nItemIndex - - - , - p_nGroupIndex - - - ) - - -
        - Inserts an item into the menu at the specified index. -
        - -
        - -
        -
        Parameters:
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object reference for the MenuItem -instance to be added to the menu. -
        -
        - p_oItem <String> - String specifying the text of the item to be added -to the menu. -
        -
        - p_oItem <Object> - Object literal containing a set of menu item -configuration properties. -
        -
        - p_nItemIndex <Number> - Number indicating the ordinal position at which -the item should be added. -
        -
        - p_nGroupIndex <Number> - Optional. Number indicating the group to which -the item belongs. -
        -
        - -
        -
        Returns: - - YAHOO.widget.MenuItem -
        -
        -
        - -
        - -
        -
        -

        - removeItem

        -
        - - - - - YAHOO.widget.MenuItem - removeItem - ( - - - p_oObject - - - - - , - p_nGroupIndex - - - ) - - -
        - Removes the specified item from the menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_oObject <YAHOO.widget.MenuItem> - Object reference for the MenuItem -instance to be removed from the menu. -
        -
        - p_oObject <Number> - Number specifying the index of the item -to be removed. -
        -
        - p_nGroupIndex <Number> - Optional. Number specifying the group to -which the item belongs. -
        -
        - -
        -
        Returns: - - YAHOO.widget.MenuItem -
        -
        -
        - -
        - -
        -
        -

        - setInitialFocus

        -
        - - - - - void - setInitialFocus - ( - ) - - -
        - Sets focus to the menu's first enabled item. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setInitialSelection

        -
        - - - - - void - setInitialSelection - ( - ) - - -
        - Sets the "selected" configuration property of the menu's first -enabled item to "true." -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setItemGroupTitle

        -
        - - - - - void - setItemGroupTitle - ( - - - p_sGroupTitle - - - , - p_nGroupIndex - - - ) - - -
        - Sets the title of a group of menu items. -
        - -
        - -
        -
        Parameters:
        -
        - p_sGroupTitle <String> - String specifying the title of the group. -
        -
        - p_nGroupIndex <Number> - Optional. Number specifying the group to which -the title belongs. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representing the menu. -
        - -
        - - -
        -
        Returns: - - String -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - -
        -

        Events

        -
        -

        - clickEvent

        -
        - - - - - clickEvent - - ( - ) - - - -
        - Fires when the user clicks the on the menu. Passes back the -DOM Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -

        - itemAddedEvent

        -
        - - - - - itemAddedEvent - - ( - ) - - - -
        - Fires when an item is added to the menu. -
        - -
        - - - - -
        - -
        -
        -

        - itemRemovedEvent

        -
        - - - - - itemRemovedEvent - - ( - ) - - - -
        - Fires when an item is removed to the menu. -
        - -
        - - - - -
        - -
        -
        -

        - keyDownEvent

        -
        - - - - - keyDownEvent - - ( - ) - - - -
        - Fires when the user presses a key when one of the menu's items -has focus. Passes back the DOM Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -

        - keyPressEvent

        -
        - - - - - keyPressEvent - - ( - ) - - - -
        - Fires when the user presses an alphanumeric key when one of the -menu's items has focus. Passes back the DOM Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -

        - keyUpEvent

        -
        - - - - - keyUpEvent - - ( - ) - - - -
        - Fires when the user releases a key when one of the menu's items -has focus. Passes back the DOM Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -

        - mouseDownEvent

        -
        - - - - - mouseDownEvent - - ( - ) - - - -
        - Fires when the user mouses down on the menu. Passes back the -DOM Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -

        - mouseOutEvent

        -
        - - - - - mouseOutEvent - - ( - ) - - - -
        - Fires when the mouse has left the menu. Passes back the DOM -Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -

        - mouseOverEvent

        -
        - - - - - mouseOverEvent - - ( - ) - - - -
        - Fires when the mouse has entered the menu. Passes back -the DOM Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -

        - mouseUpEvent

        -
        - - - - - mouseUpEvent - - ( - ) - - - -
        - Fires when the user releases a mouse button while the mouse is -over the menu. Passes back the DOM Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -
        -
        - - - - - -
        -

        Configuration Attributes

        -
        -

        autosubmenudisplay - - Boolean -

        -
        -
        - Boolean indicating if submenus are automatically made -visible when the user mouses over the menu's items. -
        -
        - - -
        - Default Value: true -
        - -
        -

        classname - - String -

        -
        -
        - CSS class to be applied to the menu's root -<div> element. The specified class(es) are -appended in addition to the default class as specified by the menu's -CSS_CLASS_NAME constant. -
        -
        - - -
        - Default Value: null -
        - -
        -

        clicktohide - - Boolean -

        -
        -
        - Boolean indicating if the menu will automatically be -hidden if the user clicks outside of it. -
        -
        - - -
        - Default Value: true -
        - -
        -

        constraintoviewport - - Boolean -

        -
        -
        - Boolean indicating if the menu will try to remain inside -the boundaries of the size of viewport. -
        -
        - - -
        - Default Value: true -
        - -
        -

        container - - HTMLElement|String -

        -
        -
        - HTML element reference or string specifying the id -attribute of the HTML element that the menu's markup should be -rendered into. -
        -
        - - -
        - Default Value: document.body -
        - -
        -

        hidedelay - - Number -

        -
        -
        - Number indicating the time (in milliseconds) that should -expire before the menu is hidden. -
        -
        - - -
        - Default Value: 0 -
        - -
        -

        maxheight - - Number -

        -
        -
        - Defines the maximum height (in pixels) for a menu before the -contents of the body are scrolled. -
        -
        - - -
        - Default Value: 0 -
        - -
        -

        position - - String -

        -
        -
        - String indicating how a menu should be positioned on the -screen. Possible values are "static" and "dynamic." Static menus are -visible by default and reside in the normal flow of the document -(CSS position: static). Dynamic menus are hidden by default, reside -out of the normal flow of the document (CSS position: absolute), and -can overlay other elements on the screen. -
        -
        - - -
        - Default Value: dynamic -
        - -
        -

        showdelay - - Number -

        -
        -
        - Number indicating the time (in milliseconds) that should -expire before a submenu is made visible when the user mouses over -the menu's items. -
        -
        - - -
        - Default Value: 250 -
        - -
        -

        submenualignment - - Array -

        -
        -
        - Array defining how submenus should be aligned to their -parent menu item. The format is: [itemCorner, submenuCorner]. By default -a submenu's top left corner is aligned to its parent menu item's top -right corner. -
        -
        - - -
        - Default Value: ["tl","tr"] -
        - -
        -

        submenuhidedelay - - Number -

        -
        -
        - Number indicating the time (in milliseconds) that should -expire before a submenu is hidden when the user mouses out of a menu item -heading in the direction of a submenu. The value must be greater than or -equal to the value specified for the "showdelay" configuration property. -
        -
        - - -
        - Default Value: 250 -
        - -
        -

        visible - - Boolean -

        -
        -
        - Boolean indicating whether or not the menu is visible. If -the menu's "position" configuration property is set to "dynamic" (the -default), this property toggles the menu's <div> -element's "visibility" style property between "visible" (true) or -"hidden" (false). If the menu's "position" configuration property is -set to "static" this property toggles the menu's -<div> element's "display" style property -between "block" (true) or "none" (false). -
        -
        - - -
        - Default Value: false -
        - -
        - -
        -
        - -
        -

        Configuration attributes inherited from YAHOO.widget.Module:

        -
        - - - effect, - monitorresize, - visible - -
        -
        -
        -

        Configuration attributes inherited from YAHOO.widget.Overlay:

        -
        - - - constraintoviewport, - context, - fixedcenter, - height, - iframe, - width, - x, - xy, - y, - zIndex - -
        -
        - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.MenuBarItem.html b/www/extras/yui/docs/YAHOO.widget.MenuBarItem.html deleted file mode 100644 index 120b3dc4e..000000000 --- a/www/extras/yui/docs/YAHOO.widget.MenuBarItem.html +++ /dev/null @@ -1,482 +0,0 @@ - - - - API: menu YAHOO.widget.MenuBarItem (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Menu  2.2.2

        -

        - Yahoo! UI Library - > menu - > YAHOO.widget.MenuBarItem - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.MenuBarItem - - - extends YAHOO.widget.MenuItem - - - - - - -

        - - - - - -
        - Creates an item for a menu bar. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.MenuBarItem - - ( - - - - p_oObject - - - - - , - p_oConfig - ) - -
        -
        -
        Parameters:
        -
        - p_oObject - <String> - - String specifying the text of the menu bar item. -
        -
        - p_oObject - <HTMLLIElement> - - Object specifying the -<li> element of the menu bar item. -
        -
        - p_oObject - <HTMLOptGroupElement> - - Object -specifying the <optgroup> element of the menu bar item. -
        -
        - p_oObject - <HTMLOptionElement> - - Object specifying -the <option> element of the menu bar item. -
        -
        - p_oConfig - <Object> - - Optional. Object literal specifying the -configuration for the menu bar item. See configuration class documentation -for more details. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        CSS_CLASS_NAME - - final String -

        -
        -
        - String representing the CSS class(es) to be applied to the -<li> element of the menu bar item. -
        -
        - - -
        - Default Value: "yuimenubaritem" -
        - - -
        - - -
        -
        - - - -
        -

        Methods

        -
        -

        - init

        -
        - - - - - void - init - ( - - - p_oObject - - - - - - - - - , - p_oConfig - - - ) - - -
        - The MenuBarItem class's initialization method. This method is -automatically called by the constructor, and sets up all DOM references for -pre-existing markup, and creates required markup if it is not already present. -
        - -
        - -
        -
        Parameters:
        -
        - p_oObject <String> - String specifying the text of the menu bar item. -
        -
        - p_oObject <HTMLLIElement> - Object specifying the -<li> element of the menu bar item. -
        -
        - p_oObject <HTMLOptGroupElement> - Object -specifying the <optgroup> element of the menu bar item. -
        -
        - p_oObject <HTMLOptionElement> - Object specifying -the <option> element of the menu bar item. -
        -
        - p_oConfig <Object> - Optional. Object literal specifying the -configuration for the menu bar item. See configuration class documentation -for more details. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representing the menu bar item. -
        - -
        - - -
        -
        Returns: - - String -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - - - - -
        -

        Configuration attributes inherited from YAHOO.widget.MenuItem:

        - -
        - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.MenuItem.html b/www/extras/yui/docs/YAHOO.widget.MenuItem.html deleted file mode 100644 index f7a76812b..000000000 --- a/www/extras/yui/docs/YAHOO.widget.MenuItem.html +++ /dev/null @@ -1,2717 +0,0 @@ - - - - API: menu YAHOO.widget.MenuItem (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Menu  2.2.2

        -

        - Yahoo! UI Library - > menu - > YAHOO.widget.MenuItem - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.MenuItem - - - - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.widget.ContextMenuItem - YAHOO.widget.MenuBarItem -
        -
        - - - -
        - Creates an item for a menu. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.MenuItem - - ( - - - - p_oObject - - - - - , - p_oConfig - ) - -
        -
        -
        Parameters:
        -
        - p_oObject - <String> - - String specifying the text of the menu item. -
        -
        - p_oObject - <HTMLLIElement> - - Object specifying -the <li> element of the menu item. -
        -
        - p_oObject - <HTMLOptGroupElement> - - Object -specifying the <optgroup> element of the menu item. -
        -
        - p_oObject - <HTMLOptionElement> - - Object -specifying the <option> element of the menu item. -
        -
        - p_oConfig - <Object> - - Optional. Object literal specifying the -configuration for the menu item. See configuration class documentation -for more details. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _oAnchor - - private HTMLAnchorElement -

        -
        -
        - Object reference to the menu item's -<a> element. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        _oCheckedIndicator - - private HTMLElement -

        -
        -
        - Object reference to the menu item's checkmark image. -
        -
        - - -
        - Default Value: HTMLElement -
        - - -
        -

        _oHelpTextEM - - private HTMLElement -

        -
        -
        - Object reference to the menu item's help text -<em> element. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        _oOnclickAttributeValue - - private Object -

        -
        -
        - Object reference to the menu item's current value for the -"onclick" configuration attribute. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        _oSubmenu - - private YAHOO.widget.Menu -

        -
        -
        - Object reference to the menu item's submenu. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        _oText - - private TextNode -

        -
        -
        - Object reference to the menu item's text node. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        _sClassName - - private String -

        -
        -
        - The current value of the "classname" configuration attribute. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        browser - - String -

        -
        -
        - String representing the browser. -
        -
        - - - - -
        -

        CHECKED_TEXT - - final String -

        -
        -
        - String representing the text to be used for the checked -indicator element (<em>). -
        -
        - - -
        - Default Value: "Checked." -
        - - -
        -

        COLLAPSED_SUBMENU_INDICATOR_TEXT - - final String -

        -
        -
        - String representing the text for the <em> -element used for the submenu arrow indicator. -
        -
        - - -
        - Default Value: "Submenu collapsed. Click to expand submenu." -
        - - -
        -

        constructor - - YAHOO.widget.MenuItem -

        -
        -
        - Object reference to the menu item's constructor function. -
        -
        - - -
        - Default Value: YAHOO.widget.MenuItem -
        - - -
        -

        CSS_CLASS_NAME - - final String -

        -
        -
        - String representing the CSS class(es) to be applied to the -<li> element of the menu item. -
        -
        - - -
        - Default Value: "yuimenuitem" -
        - - -
        -

        DISABLED_CHECKED_TEXT - - final String -

        -
        -
        - String representing the text to be used for the checked -indicator element (<em>) when the menu item -is disabled. -
        -
        - - -
        - Default Value: "Checked. (Item disabled.)" -
        - - -
        -

        DISABLED_SUBMENU_INDICATOR_TEXT - - final String -

        -
        -
        - String representing the text for the submenu arrow indicator -element (<em>) when the menu item is disabled. -
        -
        - - -
        - Default Value: "Submenu collapsed. (Item disabled.)." -
        - - -
        -

        element - - HTMLLIElement -

        -
        -
        - Object reference to the menu item's -<li> element. -
        -
        - - -
        - Default Value: HTMLLIElement -
        - - -
        -

        EXPANDED_SUBMENU_INDICATOR_TEXT - - final String -

        -
        -
        - String representing the text for the submenu arrow indicator -element (<em>) when the submenu is visible. -
        -
        - - -
        - Default Value: "Submenu expanded. Click to collapse submenu." -
        - - -
        -

        groupIndex - - Number -

        -
        -
        - Number indicating the index of the group to which the menu -item belongs. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        id - - String -

        -
        -
        - Id of the menu item's root <li> -element. This property should be set via the constructor using the -configuration object literal. If an id is not specified, then one will -be created using the "generateId" method of the Dom utility. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        index - - Number -

        -
        -
        - Number indicating the ordinal position of the menu item in -its group. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        parent - - YAHOO.widget.Menu -

        -
        -
        - Object reference to the menu item's parent menu. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        srcElement - - HTMLLIElement| -HTMLOptGroupElement|HTMLOptionElement -

        -
        -
        - Object reference to the HTML element (either -<li>, <optgroup> or -<option>) used create the menu item. -
        -
        - - - - - -
        -

        SUBMENU_TYPE - - final YAHOO.widget.Menu -

        -
        -
        - Object representing the type of menu to instantiate and -add when parsing the child nodes of the menu item's source HTML element. -
        -
        - - - - -
        -

        submenuIndicator - - HTMLElement -

        -
        -
        - Object reference to the <em> element -used to create the submenu indicator for the menu item. -
        -
        - - -
        - Default Value: HTMLElement -
        - - -
        -

        value - - Object -

        -
        -
        - Object reference to the menu item's value. -
        -
        - - -
        - Default Value: null -
        - - -
        -

        YAHOO.widget.MenuItem._DEFAULT_CONFIG - - private final Object -

        -
        -
        - Constant representing the MenuItem's configuration properties -
        -
        - - - - -
        -

        YAHOO.widget.MenuItem._EVENT_TYPES - - private final Object -

        -
        -
        - Constant representing the name of the MenuItem's events -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - _checkDOMNode

        -
        - - private - - - Boolean - _checkDOMNode - ( - - - p_oObject - - - ) - - -
        - Determines if an object is an HTML element. -
        - -
        - -
        -
        Parameters:
        -
        - p_oObject <Object> - Object to be evaluated. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        -
        - -
        - -
        -
        -

        - _createRootNodeStructure

        -
        - - private - - - void - _createRootNodeStructure - ( - ) - - -
        - Creates the core DOM structure for the menu item. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _getFirstElement

        -
        - - private - - - HTMLElement - _getFirstElement - ( - - - p_oElement - - - , - p_sTagName - - - ) - - -
        - Returns an HTML element's first HTML element node. -
        - -
        - -
        -
        Parameters:
        -
        - p_oElement <HTMLElement> - Object -reference specifying the element to be evaluated. -
        -
        - p_sTagName <String> - Optional. String specifying the tagname of -the element to be retrieved. -
        -
        - -
        -
        Returns: - - HTMLElement -
        -
        -
        - -
        - -
        -
        -

        - _initSubTree

        -
        - - private - - - void - _initSubTree - ( - ) - - -
        - Iterates the source element's childNodes collection and uses -the child nodes to instantiate other menus. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - blur

        -
        - - - - - void - blur - ( - ) - - -
        - Causes the menu item to lose focus and fires the -blur event. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configChecked

        -
        - - - - - void - configChecked - ( - - - p_sType - - - , - p_aArgs - - - , - p_oItem - - - ) - - -
        - Event handler for when the "checked" configuration property -of the menu item changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object representing the menu item -that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configClassName

        -
        - - - - - void - configClassName - ( - - - p_sType - - - , - p_aArgs - - - , - p_oItem - - - ) - - -
        - Event handler for when the "classname" configuration -property of a menu item changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object representing the menu item -that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configDisabled

        -
        - - - - - void - configDisabled - ( - - - p_sType - - - , - p_aArgs - - - , - p_oItem - - - ) - - -
        - Event handler for when the "disabled" configuration property -of the menu item changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object representing the menu item -that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configEmphasis

        -
        - - - - - void - configEmphasis - ( - - - p_sType - - - , - p_aArgs - - - , - p_oItem - - - ) - - -
        - Event handler for when the "emphasis" configuration property -of the menu item changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object representing the menu item -that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configHelpText

        -
        - - - - - void - configHelpText - ( - - - p_sType - - - , - p_aArgs - - - , - p_oItem - - - ) - - -
        - Event handler for when the "helptext" configuration property -of the menu item changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object representing the menu item -that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configOnClick

        -
        - - - - - void - configOnClick - ( - - - p_sType - - - , - p_aArgs - - - , - p_oItem - - - ) - - -
        - Event handler for when the "onclick" configuration property -of the menu item changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object representing the menu item -that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configSelected

        -
        - - - - - void - configSelected - ( - - - p_sType - - - , - p_aArgs - - - , - p_oItem - - - ) - - -
        - Event handler for when the "selected" configuration property -of the menu item changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object representing the menu item -that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configStrongEmphasis

        -
        - - - - - void - configStrongEmphasis - ( - - - p_sType - - - , - p_aArgs - - - , - p_oItem - - - ) - - -
        - Event handler for when the "strongemphasis" configuration -property of the menu item changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object representing the menu item -that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configSubmenu

        -
        - - - - - void - configSubmenu - ( - - - p_sType - - - , - p_aArgs - - - , - p_oItem - - - ) - - -
        - Event handler for when the "submenu" configuration property -of the menu item changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object representing the menu item -that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configTarget

        -
        - - - - - void - configTarget - ( - - - p_sType - - - , - p_aArgs - - - , - p_oItem - - - ) - - -
        - Event handler for when the "target" configuration property -of the menu item changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object representing the menu item -that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configText

        -
        - - - - - void - configText - ( - - - p_sType - - - , - p_aArgs - - - , - p_oItem - - - ) - - -
        - Event handler for when the "text" configuration property of -the menu item changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object representing the menu item -that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configURL

        -
        - - - - - void - configURL - ( - - - p_sType - - - , - p_aArgs - - - , - p_oItem - - - ) - - -
        - Event handler for when the "url" configuration property of -the menu item changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object representing the menu item -that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - destroy

        -
        - - - - - void - destroy - ( - ) - - -
        - Removes the menu item's <li> element -from its parent <ul> element. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - focus

        -
        - - - - - void - focus - ( - ) - - -
        - Causes the menu item to receive the focus and fires the -focus event. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getNextEnabledSibling

        -
        - - - - - void - getNextEnabledSibling - ( - ) - - -
        - Finds the menu item's next enabled sibling. -
        - -
        - - -
        -
        Returns: - - void -
        -
        YAHOO.widget.MenuItem
        -
        - -
        - -
        -
        -

        - getPreviousEnabledSibling

        -
        - - - - - YAHOO.widget.MenuItem - getPreviousEnabledSibling - ( - ) - - -
        - Finds the menu item's previous enabled sibling. -
        - -
        - - -
        -
        Returns: - - YAHOO.widget.MenuItem -
        -
        -
        - -
        - -
        -
        -

        - hasFocus

        -
        - - - - - Boolean - hasFocus - ( - ) - - -
        - Returns a boolean indicating whether or not the menu item -has focus. -
        - -
        - - -
        -
        Returns: - - Boolean -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - p_oObject - - - - - - - - - , - p_oConfig - - - ) - - -
        - The MenuItem class's initialization method. This method is -automatically called by the constructor, and sets up all DOM references -for pre-existing markup, and creates required markup if it is not -already present. -
        - -
        - -
        -
        Parameters:
        -
        - p_oObject <String> - String specifying the text of the menu item. -
        -
        - p_oObject <HTMLLIElement> - Object specifying -the <li> element of the menu item. -
        -
        - p_oObject <HTMLOptGroupElement> - Object -specifying the <optgroup> element of the menu item. -
        -
        - p_oObject <HTMLOptionElement> - Object -specifying the <option> element of the menu item. -
        -
        - p_oConfig <Object> - Optional. Object literal specifying the -configuration for the menu item. See configuration class documentation -for more details. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initDefaultConfig

        -
        - - - - - void - initDefaultConfig - ( - ) - - -
        - Initializes an item's configurable properties. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representing the menu item. -
        - -
        - - -
        -
        Returns: - - String -
        -
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Events

        -
        -

        - blurEvent

        -
        - - - - - blurEvent - - ( - ) - - - -
        - Fires when the menu item loses the input focus. -
        - -
        - - - - -
        - -
        -
        -

        - clickEvent

        -
        - - - - - clickEvent - - ( - ) - - - -
        - Fires when the user clicks the on the menu item. Passes -back the DOM Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -

        - destroyEvent

        -
        - - - - - destroyEvent - - ( - ) - - - -
        - Fires when the menu item's <li> -element is removed from its parent <ul> element. -
        - -
        - - - - -
        - -
        -
        -

        - focusEvent

        -
        - - - - - focusEvent - - ( - ) - - - -
        - Fires when the menu item receives focus. -
        - -
        - - - - -
        - -
        -
        -

        - keyDownEvent

        -
        - - - - - keyDownEvent - - ( - ) - - - -
        - Fires when the user presses a key when the menu item has -focus. Passes back the DOM Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -

        - keyPressEvent

        -
        - - - - - keyPressEvent - - ( - ) - - - -
        - Fires when the user presses an alphanumeric key when the -menu item has focus. Passes back the DOM Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -

        - keyUpEvent

        -
        - - - - - keyUpEvent - - ( - ) - - - -
        - Fires when the user releases a key when the menu item has -focus. Passes back the DOM Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -

        - mouseDownEvent

        -
        - - - - - mouseDownEvent - - ( - ) - - - -
        - Fires when the user mouses down on the menu item. Passes -back the DOM Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -

        - mouseOutEvent

        -
        - - - - - mouseOutEvent - - ( - ) - - - -
        - Fires when the mouse has left the menu item. Passes back -the DOM Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -

        - mouseOverEvent

        -
        - - - - - mouseOverEvent - - ( - ) - - - -
        - Fires when the mouse has entered the menu item. Passes -back the DOM Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -

        - mouseUpEvent

        -
        - - - - - mouseUpEvent - - ( - ) - - - -
        - Fires when the user releases a mouse button while the mouse -is over the menu item. Passes back the DOM Event object as an argument. -
        - -
        - - - - -
        - -
        -
        -
        -
        - - - -
        -

        Configuration Attributes

        -
        -

        checked - - Boolean -

        -
        -
        - Boolean indicating if the menu item should be rendered -with a checkmark. -
        -
        - - -
        - Default Value: false -
        - -
        -

        classname - - String -

        -
        -
        - CSS class to be applied to the menu item's root -<li> element. The specified class(es) are -appended in addition to the default class as specified by the menu -item's CSS_CLASS_NAME constant. -
        -
        - - -
        - Default Value: null -
        - -
        -

        disabled - - Boolean -

        -
        -
        - Boolean indicating if the menu item should be disabled. -(Disabled menu items are dimmed and will not respond to user input -or fire events.) -
        -
        - - -
        - Default Value: false -
        - -
        -

        emphasis - - Boolean -

        -
        -
        - Boolean indicating if the text of the menu item will be -rendered with emphasis. When building a menu from existing HTML the -value of this property will be interpreted from the menu's markup. -
        -
        - - -
        - Default Value: false -
        - -
        -

        helptext - - String| -HTMLElement -

        -
        -
        - String specifying additional instructional text to -accompany the text for the nenu item. -
        -
        - - -
        - Default Value: null -
        - -
        -

        onclick - - Object -

        -
        -
        - Object literal representing the code to be executed when -the button is clicked. Format:
        {
        -fn: Function, // The handler to call when -the event fires.
        obj: Object, // An -object to pass back to the handler.
        scope: -Object // The object to use for the scope of the handler. -
        }
        -
        -
        - - -
        - Default Value: null -
        - -
        -

        selected - - Boolean -

        -
        -
        - Boolean indicating if the menu item should -be highlighted. -
        -
        - - -
        - Default Value: false -
        - -
        -

        strongemphasis - - Boolean -

        -
        -
        - Boolean indicating if the text of the menu item will be -rendered with strong emphasis. When building a menu from existing -HTML the value of this property will be interpreted from the -menu's markup. -
        -
        - - -
        - Default Value: false -
        - -
        -

        submenu - - Menu|String|Object| -HTMLElement -

        -
        -
        - Object specifying the submenu to be appended to the -menu item. The value can be one of the following:
        • Object -specifying a Menu instance.
        • Object literal specifying the -menu to be created. Format: { id: [menu id], itemdata: -[array of values for -items] }.
        • String specifying the id attribute -of the <div> element of the menu.
        • -Object specifying the <div> element of the -menu.
        -
        -
        - - -
        - Default Value: null -
        - -
        -

        target - - String -

        -
        -
        - String specifying the value for the "target" attribute -of the menu item's anchor element. Specifying a target will -require the user to click directly on the menu item's anchor node in -order to cause the browser to navigate to the specified URL. -When building a menu from existing HTML the value of this property -will be interpreted from the menu's markup. -
        -
        - - -
        - Default Value: null -
        - -
        -

        text - - String -

        -
        -
        - String specifying the text label for the menu item. -When building a menu from existing HTML the value of this property -will be interpreted from the menu's markup. -
        -
        - - -
        - Default Value: "" -
        - -
        -

        url - - String -

        -
        -
        - String specifying the URL for the menu item's anchor's -"href" attribute. When building a menu from existing HTML the value -of this property will be interpreted from the menu's markup. -
        -
        - - -
        - Default Value: "#" -
        - -
        - -
        -
        - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.MenuManager.html b/www/extras/yui/docs/YAHOO.widget.MenuManager.html deleted file mode 100644 index d42228bb0..000000000 --- a/www/extras/yui/docs/YAHOO.widget.MenuManager.html +++ /dev/null @@ -1,1071 +0,0 @@ - - - - API: menu YAHOO.widget.MenuManager (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Menu  2.2.2

        -

        - Yahoo! UI Library - > menu - > YAHOO.widget.MenuManager - -

        -
        - -
        -
        -
        - - -

        - - - static - - Class YAHOO.widget.MenuManager - - - - - - - -

        - - - - - -
        - Singleton that manages a collection of all menus and menu items. Listens for -DOM events at the document level and dispatches the events to the -corresponding menu or menu item. -
        - - - - -
        -

        Methods

        -
        -

        - addItem

        -
        - - private - - - void - addItem - ( - - - p_oItem - - - ) - - -
        - Adds an item to the collection of known menu items. -
        - -
        - -
        -
        Parameters:
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object specifying the MenuItem -instance to be added. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - addMenu

        -
        - - - - - void - addMenu - ( - - - p_oMenu - - - ) - - -
        - Adds a menu to the collection of known menus. -
        - -
        - -
        -
        Parameters:
        -
        - p_oMenu <YAHOO.widget.Menu> - Object specifying the Menu -instance to be added. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getFocusedMenu

        -
        - - - - - YAHOO.widget.Menu - getFocusedMenu - ( - ) - - -
        - Returns a reference to the menu that currently has focus. -
        - -
        - - -
        -
        Returns: - - YAHOO.widget.Menu -
        -
        -
        - -
        - -
        -
        -

        - getFocusedMenuItem

        -
        - - - - - YAHOO.widget.MenuItem - getFocusedMenuItem - ( - ) - - -
        - Returns a reference to the menu item that currently -has focus. -
        - -
        - - -
        -
        Returns: - - YAHOO.widget.MenuItem -
        -
        -
        - -
        - -
        -
        -

        - getMenu

        -
        - - - - - YAHOO.widget.Menu - getMenu - ( - - - p_sId - - - ) - - -
        - Returns a menu with the specified id. -
        - -
        - -
        -
        Parameters:
        -
        - p_sId <String> - String specifying the id of the menu to -be retrieved. -
        -
        - -
        -
        Returns: - - YAHOO.widget.Menu -
        -
        -
        - -
        - -
        -
        -

        - getMenuRootElement

        -
        - - private - - - void - getMenuRootElement - ( - - - p_oElement - - - ) - - -
        - Finds the root DIV node of a menu or the root LI node of a -menu item. -
        - -
        - -
        -
        Parameters:
        -
        - p_oElement <HTMLElement> - Object specifying -an HTML element. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getMenus

        -
        - - - - - Array - getMenus - ( - ) - - -
        - Returns an array of all menus registered with the -menu manger. -
        - -
        - - -
        -
        Returns: - - Array -
        -
        -
        - -
        - -
        -
        -

        - hideVisible

        -
        - - - - - void - hideVisible - ( - ) - - -
        - Hides all visible, dynamically positioned menus. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onDOMEvent

        -
        - - private - - - void - onDOMEvent - ( - - - p_oEvent - - - ) - - -
        - Generic, global event handler for all of a menu's DOM-based -events. This listens for events against the document object. If the -target of a given event is a member of a menu or menu item's DOM, the -instance's corresponding Custom Event is fired. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onItemAdded

        -
        - - private - - - void - onItemAdded - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "itemadded" event handler for a Menu instance. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onItemDestroy

        -
        - - private - - - void - onItemDestroy - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "destroy" event handler for a MenuItem instance. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onItemRemoved

        -
        - - private - - - void - onItemRemoved - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "itemremoved" event handler for a Menu instance. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onMenuBlur

        -
        - - private - - - void - onMenuBlur - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "blur" event handler for a MenuItem instance. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onMenuDestroy

        -
        - - private - - - void - onMenuDestroy - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "destroy" event handler for a menu. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onMenuFocus

        -
        - - private - - - void - onMenuFocus - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - "focus" event handler for a MenuItem instance. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onMenuVisibleConfigChange

        -
        - - private - - - void - onMenuVisibleConfigChange - ( - - - p_sType - - - , - p_aArgs - - - ) - - -
        - Event handler for when the "visible" configuration property -of a Menu instance changes. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeItem

        -
        - - private - - - void - removeItem - ( - - - p_oItem - - - ) - - -
        - Removes an item from the collection of known menu items. -
        - -
        - -
        -
        Parameters:
        -
        - p_oItem <YAHOO.widget.MenuItem> - Object specifying the MenuItem -instance to be removed. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeMenu

        -
        - - - - - void - removeMenu - ( - - - p_oMenu - - - ) - - -
        - Removes a menu from the collection of known menus. -
        - -
        - -
        -
        Parameters:
        -
        - p_oMenu <YAHOO.widget.Menu> - Object specifying the Menu -instance to be removed. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representing the menu manager. -
        - -
        - - -
        -
        Returns: - - String -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.MenuNode.html b/www/extras/yui/docs/YAHOO.widget.MenuNode.html deleted file mode 100644 index 3f0cf2dc9..000000000 --- a/www/extras/yui/docs/YAHOO.widget.MenuNode.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - API: treeview YAHOO.widget.MenuNode (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - > YAHOO.widget.MenuNode - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.MenuNode - - - extends YAHOO.widget.TextNode - - - - - - -

        - - - - - -
        - A menu-specific implementation that differs from TextNode in that only -one sibling can be expanded at a time. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.MenuNode - - ( - - - - oData - - , - oParent - - , - expanded - ) - -
        -
        -
        Parameters:
        -
        - oData - <object> - - a string or object containing the data that will -be used to render this node -
        -
        - oParent - <YAHOO.widget.Node> - - this node's parent node -
        -
        - expanded - <boolean> - - the initial expanded/collapsed state -
        -
        - - -
        -
        -
        -
        - - -
        -

        Properties inherited from YAHOO.widget.TextNode:

        -
        - - - label, - labelElId, - labelStyle - -
        -
        - -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - - -
        -

        Methods inherited from YAHOO.widget.TextNode:

        -
        - - - getLabelEl, - onLabelClick - -
        -
        - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - - - -
        -

        Events inherited from YAHOO.widget.Node:

        -
        - - - parentChange - -
        -
        - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.Menubar.html b/www/extras/yui/docs/YAHOO.widget.Menubar.html deleted file mode 100644 index 25e3c29a7..000000000 --- a/www/extras/yui/docs/YAHOO.widget.Menubar.html +++ /dev/null @@ -1,947 +0,0 @@ - - - - API: menu YAHOO.widget.Menubar (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Menu  2.2.2

        -

        - Yahoo! UI Library - > menu - > YAHOO.widget.Menubar - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.Menubar - - - extends YAHOO.widget.Menu - - - - - - -

        - - - - - -
        - Horizontal collection of items, each of which can contain a submenu. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.Menubar - - ( - - - - p_oElement - - - - - , - p_oConfig - ) - -
        -
        -
        Parameters:
        -
        - p_oElement - <String> - - String specifying the id attribute of the -<div> element of the menu bar. -
        -
        - p_oElement - <String> - - String specifying the id attribute of the -<select> element to be used as the data source for the -menu bar. -
        -
        - p_oElement - <HTMLDivElement> - - Object specifying -the <div> element of the menu bar. -
        -
        - p_oElement - <HTMLSelectElement> - - Object -specifying the <select> element to be used as the data -source for the menu bar. -
        -
        - p_oConfig - <Object> - - Optional. Object literal specifying the -configuration for the menu bar. See configuration class documentation for -more details. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        CSS_CLASS_NAME - - final String -

        -
        -
        - String representing the CSS class(es) to be applied to the menu -bar's <div> element. -
        -
        - - -
        - Default Value: "yuimenubar" -
        - - -
        -

        YAHOO.widget.MenuBar._DEFAULT_CONFIG - - private final Object -

        -
        -
        - Constant representing the MenuBar's configuration properties -
        -
        - - - - -
        - - -
        -
        - - - - - -
        -

        Methods

        -
        -

        - _onClick

        -
        - - protected - - - void - _onClick - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenuBar - - - ) - - -
        - "click" event handler for the menu bar. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenuBar <YAHOO.widget.MenuBar> - Object representing the menu bar -that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onKeyDown

        -
        - - private - - - void - _onKeyDown - ( - - - p_sType - - - , - p_aArgs - - - , - p_oMenuBar - - - ) - - -
        - "keydown" Custom Event handler for the menu bar. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oMenuBar <YAHOO.widget.MenuBar> - Object representing the menu bar -that fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - p_oElement - - - - - - - - - , - p_oConfig - - - ) - - -
        - The MenuBar class's initialization method. This method is -automatically called by the constructor, and sets up all DOM references for -pre-existing markup, and creates required markup if it is not already present. -
        - -
        - -
        -
        Parameters:
        -
        - p_oElement <String> - String specifying the id attribute of the -<div> element of the menu bar. -
        -
        - p_oElement <String> - String specifying the id attribute of the -<select> element to be used as the data source for the -menu bar. -
        -
        - p_oElement <HTMLDivElement> - Object specifying -the <div> element of the menu bar. -
        -
        - p_oElement <HTMLSelectElement> - Object -specifying the <select> element to be used as the data -source for the menu bar. -
        -
        - p_oConfig <Object> - Optional. Object literal specifying the -configuration for the menu bar. See configuration class documentation for -more details. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initDefaultConfig

        -
        - - - - - void - initDefaultConfig - ( - ) - - -
        - Initializes the class's configurable properties which can be -changed using the menu bar's Config object ("cfg"). -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representing the menu bar. -
        - -
        - - -
        -
        Returns: - - String -
        -
        -
        - -
        - -
        -
        -
        -
        - - - - - - - - - - - -
        -

        Configuration Attributes

        -
        -

        autosubmenudisplay - - Boolean -

        -
        -
        - Boolean indicating if submenus are automatically made -visible when the user mouses over the menu bar's items. -
        -
        - - -
        - Default Value: false -
        - -
        -

        position - - String -

        -
        -
        - String indicating how a menu bar should be positioned on the -screen. Possible values are "static" and "dynamic." Static menu bars -are visible by default and reside in the normal flow of the document -(CSS position: static). Dynamic menu bars are hidden by default, reside -out of the normal flow of the document (CSS position: absolute), and can -overlay other elements on the screen. -
        -
        - - -
        - Default Value: static -
        - -
        -

        submenualignment - - Array -

        -
        -
        - Array defining how submenus should be aligned to their -parent menu bar item. The format is: [itemCorner, submenuCorner]. -
        -
        - - -
        - Default Value: ["tl","bl"] -
        - -
        - -
        -
        - -
        -

        Configuration attributes inherited from YAHOO.widget.Overlay:

        -
        - - - constraintoviewport, - context, - fixedcenter, - height, - iframe, - width, - x, - xy, - y, - zIndex - -
        -
        -
        -

        Configuration attributes inherited from YAHOO.widget.Module:

        -
        - - - effect, - monitorresize, - visible - -
        -
        - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.Module.html b/www/extras/yui/docs/YAHOO.widget.Module.html deleted file mode 100644 index b6458db82..000000000 --- a/www/extras/yui/docs/YAHOO.widget.Module.html +++ /dev/null @@ -1,1980 +0,0 @@ - - - - API: container YAHOO.widget.Module (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - > YAHOO.widget.Module - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.Module - - - - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.widget.Overlay -
        -
        - - - -
        - Module is a JavaScript representation of the Standard Module Format. Standard Module Format is a simple standard for markup containers where child nodes representing the header, body, and footer of the content are denoted using the CSS classes "hd", "bd", and "ft" respectively. Module is the base class for all other classes in the YUI Container package. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.Module - - ( - - - - el - - - , - userConfig - ) - -
        -
        -
        Parameters:
        -
        - el - <String> - - The element ID representing the Module OR -
        -
        - el - <HTMLElement> - - The element representing the Module -
        -
        - userConfig - <Object> - - The configuration Object literal containing the configuration that should be set for this module. See configuration documentation for more details. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        body - - HTMLElement -

        -
        -
        - The body element, denoted with CSS class "bd" -
        -
        - - - - -
        -

        browser - - String -

        -
        -
        - String representing the current user-agent browser -
        -
        - - - - -
        -

        cfg - - YAHOO.util.Config -

        -
        -
        - The Module's Config object used for monitoring configuration properties. -
        -
        - - - - -
        -

        contructor - - Function -

        -
        -
        - The class's constructor function -
        -
        - - - - -
        -

        element - - HTMLElement -

        -
        -
        - The main module element that contains the header, body, and footer -
        -
        - - - - -
        -

        footer - - HTMLElement -

        -
        -
        - The footer element, denoted with CSS class "ft" -
        -
        - - - - -
        -

        header - - HTMLElement -

        -
        -
        - The header element, denoted with CSS class "hd" -
        -
        - - - - -
        -

        id - - String -

        -
        -
        - The id of the element -
        -
        - - - - -
        -

        imageRoot - - String -

        -
        -
        - The String representing the image root -
        -
        - - - - -
        -

        isSecure - - Boolean -

        -
        -
        - Boolean representing whether or not the current browsing context is secure (https) -
        -
        - - - - -
        -

        platform - - String -

        -
        -
        - String representing the current user-agent platform -
        -
        - - - - -
        -

        YAHOO.widget.Module._DEFAULT_CONFIG - - private final Object -

        -
        -
        - Constant representing the Module's configuration properties -
        -
        - - - - -
        -

        YAHOO.widget.Module._EVENT_TYPES - - private final Object -

        -
        -
        - Constant representing the name of the Module's events -
        -
        - - - - -
        -

        YAHOO.widget.Module.CSS_BODY - - static final String -

        -
        -
        - Constant representing the module body -
        -
        - - - - -
        -

        YAHOO.widget.Module.CSS_FOOTER - - static final String -

        -
        -
        - Constant representing the module footer -
        -
        - - - - -
        -

        YAHOO.widget.Module.CSS_HEADER - - static final String -

        -
        -
        - Constant representing the module header -
        -
        - - - - -
        -

        YAHOO.widget.Module.CSS_MODULE - - static final String -

        -
        -
        - Constant for the default CSS class name that represents a Module -
        -
        - - - - -
        -

        YAHOO.widget.Module.IMG_ROOT - - static final String -

        -
        -
        - Constant representing the prefix path to use for non-secure images -
        -
        - - - - -
        -

        YAHOO.widget.Module.IMG_ROOT_SSL - - static final String -

        -
        -
        - Constant representing the prefix path to use for securely served images -
        -
        - - - - -
        -

        YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL - - static final String -

        -
        -
        - Constant representing the url for the "src" attribute of the iframe used to monitor changes to the browser's base font size -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - appendToBody

        -
        - - - - - void - appendToBody - ( - - - element - - - ) - - -
        - Appends the passed element to the body. If no body is present, one will be automatically created. -
        - -
        - -
        -
        Parameters:
        -
        - element <HTMLElement> - The element to append to the body -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - appendToFooter

        -
        - - - - - void - appendToFooter - ( - - - element - - - ) - - -
        - Appends the passed element to the footer. If no footer is present, one will be automatically created. -
        - -
        - -
        -
        Parameters:
        -
        - element <HTMLElement> - The element to append to the footer -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - appendToHeader

        -
        - - - - - void - appendToHeader - ( - - - element - - - ) - - -
        - Appends the passed element to the header. If no header is present, one will be automatically created. -
        - -
        - -
        -
        Parameters:
        -
        - element <HTMLElement> - The element to append to the header -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configMonitorResize

        -
        - - - - - void - configMonitorResize - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - Default event handler for the "monitorresize" configuration property -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configVisible

        -
        - - - - - void - configVisible - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - Default event handler for changing the visibility property of a Module. By default, this is achieved by switching the "display" style between "block" and "none". -This method is responsible for firing showEvent and hideEvent. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - destroy

        -
        - - - - - void - destroy - ( - ) - - -
        - Removes the Module element from the DOM and sets all child elements to null. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - hide

        -
        - - - - - void - hide - ( - ) - - -
        - Hides the Module element by setting the visible configuration property to false. Also fires two events: beforeHideEvent prior to the visibility change, and hideEvent after. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - el - - - - - , - userConfig - - - ) - - -
        - The Module class's initialization method, which is executed for Module and all of its subclasses. This method is automatically called by the constructor, and sets up all DOM references for pre-existing markup, and creates required markup if it is not already present. -
        - -
        - -
        -
        Parameters:
        -
        - el <String> - The element ID representing the Module OR -
        -
        - el <HTMLElement> - The element representing the Module -
        -
        - userConfig <Object> - The configuration Object literal containing the configuration that should be set for this module. See configuration documentation for more details. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initDefaultConfig

        -
        - - - - - void - initDefaultConfig - ( - ) - - -
        - Initializes the custom events for Module which are fired automatically at appropriate times by the Module class. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initEvents

        -
        - - - - - void - initEvents - ( - ) - - -
        - Initializes the custom events for Module which are fired automatically at appropriate times by the Module class. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initResizeMonitor

        -
        - - - - - void - initResizeMonitor - ( - ) - - -
        - Initialized an empty IFRAME that is placed out of the visible area that can be used to detect text resize. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onDomResize

        -
        - - - - - void - onDomResize - ( - - - e - - - , - obj - - - ) - - -
        - Event handler fired when the resize monitor element is resized. -
        - -
        - -
        -
        Parameters:
        -
        - e <DOMEvent> - The DOM resize event -
        -
        - obj <Object> - The scope object passed to the handler -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - render

        -
        - - - - - Boolean - render - ( - - - appendToNode - - - - - , - moduleElement - - - ) - - -
        - Renders the Module by inserting the elements that are not already in the main Module into their correct places. Optionally appends the Module to the specified node prior to the render's execution. NOTE: For Modules without existing markup, the appendToNode argument is REQUIRED. If this argument is ommitted and the current element is not present in the document, the function will return false, indicating that the render was a failure. -
        - -
        - -
        -
        Parameters:
        -
        - appendToNode <String> - The element id to which the Module should be appended to prior to rendering OR -
        -
        - appendToNode <HTMLElement> - The element to which the Module should be appended to prior to rendering -
        -
        - moduleElement <HTMLElement> - OPTIONAL. The element that represents the actual Standard Module container. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        Success or failure of the render
        -
        - -
        - -
        -
        -

        - setBody

        -
        - - - - - void - setBody - ( - - - bodyContent - - - - - ) - - -
        - Sets the Module's body content to the HTML specified, or appends the passed element to the body. If no body is present, one will be automatically created. -
        - -
        - -
        -
        Parameters:
        -
        - bodyContent <String> - The HTML used to set the body OR -
        -
        - bodyContent <HTMLElement> - The HTMLElement to append to the body -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setFooter

        -
        - - - - - void - setFooter - ( - - - footerContent - - - - - ) - - -
        - Sets the Module's footer content to the HTML specified, or appends the passed element to the footer. If no footer is present, one will be automatically created. -
        - -
        - -
        -
        Parameters:
        -
        - footerContent <String> - The HTML used to set the footer OR -
        -
        - footerContent <HTMLElement> - The HTMLElement to append to the footer -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setHeader

        -
        - - - - - void - setHeader - ( - - - headerContent - - - - - ) - - -
        - Sets the Module's header content to the HTML specified, or appends the passed element to the header. If no header is present, one will be automatically created. -
        - -
        - -
        -
        Parameters:
        -
        - headerContent <String> - The HTML used to set the header OR -
        -
        - headerContent <HTMLElement> - The HTMLElement to append to the header -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - show

        -
        - - - - - void - show - ( - ) - - -
        - Shows the Module element by setting the visible configuration property to true. Also fires two events: beforeShowEvent prior to the visibility change, and showEvent after. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a String representation of the Object. -
        - -
        - - -
        -
        Returns: - - String -
        -
        The string representation of the Module
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Events

        -
        -

        - appendEvent

        -
        - - - - - appendEvent - - ( - ) - - - -
        - CustomEvent fired when the Module is appended to the DOM -
        - -
        - - - - -
        - -
        -
        -

        - beforeHideEvent

        -
        - - - - - beforeHideEvent - - ( - ) - - - -
        - CustomEvent fired before the Module is hidden -
        - -
        - - - - -
        - -
        -
        -

        - beforeInitEvent

        -
        - - - - - beforeInitEvent - - ( - - - classRef - - - ) - - - -
        - CustomEvent fired prior to class initalization. -
        - -
        - - -
        -
        Parameters:
        -
        - classRef <class> - class reference of the initializing class, such as this.beforeInitEvent.fire(YAHOO.widget.Module) -
        -
        - - -
        - -
        -
        -

        - beforeRenderEvent

        -
        - - - - - beforeRenderEvent - - ( - ) - - - -
        - CustomEvent fired before the Module is rendered -
        - -
        - - - - -
        - -
        -
        -

        - beforeShowEvent

        -
        - - - - - beforeShowEvent - - ( - ) - - - -
        - CustomEvent fired before the Module is shown -
        - -
        - - - - -
        - -
        -
        -

        - changeBodyEvent

        -
        - - - - - changeBodyEvent - - ( - - - content - - - ) - - - -
        - CustomEvent fired when the body content of the Module is modified -
        - -
        - - -
        -
        Parameters:
        -
        - content <String/HTMLElement> - String/element representing the new body content -
        -
        - - -
        - -
        -
        -

        - changeContentEvent

        -
        - - - - - changeContentEvent - - ( - ) - - - -
        - CustomEvent fired when the content of the Module is modified -
        - -
        - - - - -
        - -
        -
        -

        - changeFooterEvent

        -
        - - - - - changeFooterEvent - - ( - - - content - - - ) - - - -
        - CustomEvent fired when the footer content of the Module is modified -
        - -
        - - -
        -
        Parameters:
        -
        - content <String/HTMLElement> - String/element representing the new footer content -
        -
        - - -
        - -
        -
        -

        - changeHeaderEvent

        -
        - - - - - changeHeaderEvent - - ( - - - content - - - ) - - - -
        - CustomEvent fired when the header content of the Module is modified -
        - -
        - - -
        -
        Parameters:
        -
        - content <String/HTMLElement> - String/element representing the new header content -
        -
        - - -
        - -
        -
        -

        - destroyEvent

        -
        - - - - - destroyEvent - - ( - ) - - - -
        - CustomEvent fired when the Module is destroyed -
        - -
        - - - - -
        - -
        -
        -

        - hideEvent

        -
        - - - - - hideEvent - - ( - ) - - - -
        - CustomEvent fired after the Module is hidden -
        - -
        - - - - -
        - -
        -
        -

        - initEvent

        -
        - - - - - initEvent - - ( - - - classRef - - - ) - - - -
        - CustomEvent fired after class initalization. -
        - -
        - - -
        -
        Parameters:
        -
        - classRef <class> - class reference of the initializing class, such as this.beforeInitEvent.fire(YAHOO.widget.Module) -
        -
        - - -
        - -
        -
        -

        - renderEvent

        -
        - - - - - renderEvent - - ( - ) - - - -
        - CustomEvent fired after the Module is rendered -
        - -
        - - - - -
        - -
        -
        -

        - showEvent

        -
        - - - - - showEvent - - ( - ) - - - -
        - CustomEvent fired after the Module is shown -
        - -
        - - - - -
        - -
        -
        -

        - YAHOO.widget.Module.textResizeEvent

        -
        - - - - - YAHOO.widget.Module.textResizeEvent - - ( - ) - - - -
        - Singleton CustomEvent fired when the font size is changed in the browser. -Opera's "zoom" functionality currently does not support text size detection. -
        - -
        - - - - -
        - -
        -
        -
        -
        - - - -
        -

        Configuration Attributes

        -
        -

        effect - - Object -

        -
        -
        - Object or array of objects representing the ContainerEffect classes that are active for animating the container. -
        -
        - - -
        - Default Value: null -
        - -
        -

        monitorresize - - Boolean -

        -
        -
        - Specifies whether to create a special proxy iframe to monitor for user font resizing in the document -
        -
        - - -
        - Default Value: true -
        - -
        -

        visible - - Boolean -

        -
        -
        - Specifies whether the Module is visible on the page. -
        -
        - - -
        - Default Value: true -
        - -
        - -
        -
        - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.Node.html b/www/extras/yui/docs/YAHOO.widget.Node.html deleted file mode 100644 index d1bd43999..000000000 --- a/www/extras/yui/docs/YAHOO.widget.Node.html +++ /dev/null @@ -1,2227 +0,0 @@ - - - - API: treeview YAHOO.widget.Node (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - > YAHOO.widget.Node - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.Node - - - - - - uses - - YAHOO.util.EventProvider - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.widget.HTMLNode - YAHOO.widget.RootNode - YAHOO.widget.TextNode -
        -
        - - - -
        - The base class for all tree nodes. The node's presentation and behavior in -response to mouse events is handled in Node subclasses. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.Node - - ( - - - - oData - - , - oParent - - , - expanded - ) - -
        -
        -
        Parameters:
        -
        - oData - <object> - - a string or object containing the data that will -be used to render this node -
        -
        - oParent - <Node> - - this node's parent node -
        -
        - expanded - <boolean> - - the initial expanded/collapsed state -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _dynLoad - - private boolean -

        -
        -
        - We can set the node up to call an external method to get the child -data dynamically. -
        -
        - - - - -
        -

        _type - - private object -

        -
        -
        - The node type -
        -
        - - - - -
        -

        children - - Node[] -

        -
        -
        - This node's child node collection. -
        -
        - - - - -
        -

        childrenRendered - - boolean -

        -
        -
        - This flag is set to true when the html is generated for this node's -children, and set to false when new children are added. -
        -
        - - - - -
        -

        data - - object -

        -
        -
        - The data linked to this node. This can be any object or primitive -value, and the data can be used in getNodeHtml(). -
        -
        - - - - -
        -

        dataLoader - - function -

        -
        -
        - Function to execute when we need to get this node's child data. -
        -
        - - - - -
        -

        depth - - int -

        -
        -
        - The depth of this node. We start at -1 for the root node. -
        -
        - - - - -
        -

        dynamicLoadComplete - - boolean -

        -
        -
        - Dynamically loaded nodes only fetch the data the first time they are -expanded. This flag is set to true once the data has been fetched. -
        -
        - - - - -
        -

        expanded - - boolean -

        -
        -
        - The node's expanded/collapsed state -
        -
        - - - - -
        -

        hasIcon - - boolean -

        -
        -
        - The toggle/branch icon will not show if this is set to false. This -could be useful if the implementer wants to have the child contain -extra info about the parent, rather than an actual node. -
        -
        - - - - -
        -

        href - - string -

        -
        -
        - The href for the node's label. If one is not specified, the href will -be set so that it toggles the node. -
        -
        - - - - -
        -

        iconMode - - int -

        -
        -
        - Used to configure what happens when a dynamic load node is expanded -and we discover that it does not have children. By default, it is -treated as if it still could have children (plus/minus icon). Set -iconMode to have it display like a leaf node instead. -
        -
        - - - - -
        -

        index - - int -

        -
        -
        - The index for this instance obtained from global counter in YAHOO.widget.TreeView. -
        -
        - - - - -
        -

        isLoading - - boolean -

        -
        -
        - This is true for dynamically loading nodes while waiting for the -callback to return. -
        -
        - - - - -
        -

        multiExpand - - boolean -

        -
        -
        - Can multiple children be expanded at once? -
        -
        - - - - -
        -

        nextSibling - - Node -

        -
        -
        - This node's next sibling -
        -
        - - - - -
        -

        nowrap - - boolean -

        -
        -
        - Specifies whether or not the content area of the node should be allowed -to wrap. -
        -
        - - -
        - Default Value: false -
        - - -
        -

        parent - - Node -

        -
        -
        - Parent node -
        -
        - - - - -
        -

        previousSibling - - Node -

        -
        -
        - This node's previous sibling -
        -
        - - - - -
        -

        renderHidden - - boolean -

        -
        -
        - Should we render children for a collapsed node? It is possible that the -implementer will want to render the hidden data... @todo verify that we -need this, and implement it if we do. -
        -
        - - - - -
        -

        target - - string -

        -
        -
        - The label href target, defaults to current window -
        -
        - - - - -
        -

        tree - - TreeView -

        -
        -
        - Tree instance this node is part of -
        -
        - - - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Methods

        -
        -

        - appendChild

        -
        - - private - - - Node - appendChild - ( - - - childNode - - - ) - - -
        - Appends a node to the child collection. -
        - -
        - -
        -
        Parameters:
        -
        - childNode <Node> - the new node -
        -
        - -
        -
        Returns: - - Node -
        -
        the child node
        -
        - -
        - -
        -
        -

        - appendTo

        -
        - - - - - Node - appendTo - ( - - - parentNode - - - ) - - -
        - Appends this node to the supplied node's child collection -
        - -
        - -
        -
        Parameters:
        -
        - parentNode <Node> - the node to append to. -
        -
        - -
        -
        Returns: - - Node -
        -
        The appended node
        -
        - -
        - -
        -
        -

        - applyParent

        -
        - - - - - boolean - applyParent - ( - - - parentNode - - - ) - - -
        - Certain properties for the node cannot be set until the parent -is known. This is called after the node is inserted into a tree. -the parent is also applied to this node's children in order to -make it possible to move a branch from one tree to another. -
        - -
        - -
        -
        Parameters:
        -
        - parentNode <Node> - this node's parent node -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if the application was successful
        -
        - -
        - -
        -
        -

        - collapse -toggle style.

        -
        - - - - - void - collapse -toggle style. - ( - ) - - -
        - Hides this nodes children (creating them if necessary), changes the -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - collapseAll

        -
        - - - - - void - collapseAll - ( - ) - - -
        - Recursively collapses all of this node's children. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - completeRender

        -
        - - - - - string - completeRender - ( - ) - - -
        - Called when we know we have all the child data. -
        - -
        - - -
        -
        Returns: - - string -
        -
        children html
        -
        - -
        - -
        -
        -

        - expand

        -
        - - - - - void - expand - ( - ) - - -
        - Shows this nodes children (creating them if necessary), changes the -toggle style, and collapses its siblings if multiExpand is not set. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - expandAll

        -
        - - - - - void - expandAll - ( - ) - - -
        - Recursively expands all of this node's children. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getAncestor

        -
        - - - - - Node - getAncestor - ( - - - depth - - - ) - - -
        - Returns this node's ancestor at the specified depth. -
        - -
        - -
        -
        Parameters:
        -
        - depth <int> - the depth of the ancestor. -
        -
        - -
        -
        Returns: - - Node -
        -
        the ancestor
        -
        - -
        - -
        -
        -

        - getChildrenEl

        -
        - - - - - HTMLElement - getChildrenEl - ( - ) - - -
        - Returns the div that was generated for this node's children -
        - -
        - - -
        -
        Returns: - - HTMLElement -
        -
        this node's children div
        -
        - -
        - -
        -
        -

        - getChildrenElId

        -
        - - - - - string - getChildrenElId - ( - ) - - -
        - Returns the id for this node's children div -
        - -
        - - -
        -
        Returns: - - string -
        -
        the element id for this node's children div
        -
        - -
        - -
        -
        -

        - getChildrenHtml

        -
        - - private - - - string - getChildrenHtml - ( - ) - - -
        - Called when first rendering the tree. We always build the div that will -contain this nodes children, but we don't render the children themselves -unless this node is expanded. -
        - -
        - - -
        -
        Returns: - - string -
        -
        the children container div html and any expanded children
        -
        - -
        - -
        -
        -

        - getDepthStyle

        -
        - - - - - string - getDepthStyle - ( - - - depth - - - ) - - -
        - Returns the css class for the spacer at the specified depth for -this node. If this node's ancestor at the specified depth -has a next sibling the presentation is different than if it -does not have a next sibling -
        - -
        - -
        -
        Parameters:
        -
        - depth <int> - the depth of the ancestor. -
        -
        - -
        -
        Returns: - - string -
        -
        the css class for the spacer
        -
        - -
        - -
        -
        -

        - getEl

        -
        - - - - - HTMLElement - getEl - ( - ) - - -
        - Returns this node's container html element -
        - -
        - - -
        -
        Returns: - - HTMLElement -
        -
        the container html element
        -
        - -
        - -
        -
        -

        - getElId

        -
        - - - - - string - getElId - ( - ) - - -
        - Returns the id for this node's container div -
        - -
        - - -
        -
        Returns: - - string -
        -
        the element id
        -
        - -
        - -
        -
        -

        - getHoverStyle

        -
        - - - - - string - getHoverStyle - ( - ) - - -
        - Returns the hover style for the icon -
        - -
        - - -
        -
        Returns: - - string -
        -
        the css class hover state
        -
        - -
        - -
        -
        -

        - getHtml

        -
        - - - - - string - getHtml - ( - ) - - -
        - Returns the markup for this node and its children. -
        - -
        - - -
        -
        Returns: - - string -
        -
        the markup for this node and its expanded children.
        -
        - -
        - -
        -
        -

        - getIconMode

        -
        - - - - - int - getIconMode - ( - ) - - -
        - Returns the current icon mode. This refers to the way childless dynamic -load nodes appear. -
        - -
        - - -
        -
        Returns: - - int -
        -
        0 for collapse style, 1 for leaf node style
        -
        - -
        - -
        -
        -

        - getNodeHtml

        -
        - - - - - string - getNodeHtml - ( - ) - - -
        - Get the markup for the node. This is designed to be overrided so that we can -support different types of nodes. -
        - -
        - - -
        -
        Returns: - - string -
        -
        The HTML that will render this node.
        -
        - -
        - -
        -
        -

        - getSiblings

        -
        - - - - - void - getSiblings - ( - ) - - -
        - Returns a node array of this node's siblings, null if none. -
        - -
        - - -
        -
        Returns: - - void -
        -
        Node[]
        -
        - -
        - -
        -
        -

        - getStyle

        -
        - - - - - string - getStyle - ( - ) - - -
        - Returns the css style name for the toggle -
        - -
        - - -
        -
        Returns: - - string -
        -
        the css class for this node's toggle
        -
        - -
        - -
        -
        -

        - getToggleEl

        -
        - - - - - HTMLElement - getToggleEl - ( - ) - - -
        - Returns the element that is being used for this node's toggle. -
        - -
        - - -
        -
        Returns: - - HTMLElement -
        -
        this node's toggle html element
        -
        - -
        - -
        -
        -

        - getToggleElId

        -
        - - - - - string - getToggleElId - ( - ) - - -
        - Returns the id for this node's toggle element -
        - -
        - - -
        -
        Returns: - - string -
        -
        the toggel element id
        -
        - -
        - -
        -
        -

        - getToggleLink

        -
        - - - - - string - getToggleLink - ( - ) - - -
        - Generates the link that will invoke this node's toggle method -
        - -
        - - -
        -
        Returns: - - string -
        -
        the javascript url for toggling this node
        -
        - -
        - -
        -
        -

        - hasChildren

        -
        - - - - - boolean - hasChildren - ( - - - checkForLazyLoad - - - ) - - -
        - Checks if this node has children. If this node is lazy-loading and the -children have not been rendered, we do not know whether or not there -are actual children. In most cases, we need to assume that there are -children (for instance, the toggle needs to show the expandable -presentation state). In other times we want to know if there are rendered -children. For the latter, "checkForLazyLoad" should be false. -
        - -
        - -
        -
        Parameters:
        -
        - checkForLazyLoad <boolean> - should we check for unloaded children? -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if this has children or if it might and we are -checking for this condition.
        -
        - -
        - -
        -
        -

        - hideChildren

        -
        - - - - - void - hideChildren - ( - ) - - -
        - Hides this node's children -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - oData - - - , - oParent - - - , - expanded - - - ) - - -
        - Initializes this node, gets some of the properties from the parent -
        - -
        - -
        -
        Parameters:
        -
        - oData <object> - a string or object containing the data that will -be used to render this node -
        -
        - oParent <Node> - this node's parent node -
        -
        - expanded <boolean> - the initial expanded/collapsed state -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - insertAfter

        -
        - - - - - Node - insertAfter - ( - - - node - - - ) - - -
        - Inserts this node after the supplied node -
        - -
        - -
        -
        Parameters:
        -
        - node <Node> - the node to insert after -
        -
        - -
        -
        Returns: - - Node -
        -
        the inserted node
        -
        - -
        - -
        -
        -

        - insertBefore

        -
        - - - - - Node - insertBefore - ( - - - node - - - ) - - -
        - Inserts this node before this supplied node -
        - -
        - -
        -
        Parameters:
        -
        - node <Node> - the node to insert this node before -
        -
        - -
        -
        Returns: - - Node -
        -
        the inserted node
        -
        - -
        - -
        -
        -

        - isChildOf

        -
        - - private - - - boolean - isChildOf - ( - - - parentNode - - - ) - - -
        - Returns true if the Node is a child of supplied Node -
        - -
        - -
        -
        Parameters:
        -
        - parentNode <Node> - the Node to check -
        -
        - -
        -
        Returns: - - boolean -
        -
        The node index if this Node is a child of -supplied Node, else -1.
        -
        - -
        - -
        -
        -

        - isDynamic

        -
        - - - - - boolean - isDynamic - ( - ) - - -
        - Evaluates if this node's children should be loaded dynamically. Looks for -the property both in this instance and the root node. If the tree is -defined to load all children dynamically, the data callback function is -defined in the root node -
        - -
        - - -
        -
        Returns: - - boolean -
        -
        true if this node's children are to be loaded dynamically
        -
        - -
        - -
        -
        -

        - isRoot

        -
        - - - - - boolean - isRoot - ( - ) - - -
        - Evaluates if this node is the root node of the tree -
        - -
        - - -
        -
        Returns: - - boolean -
        -
        true if this is the root node
        -
        - -
        - -
        -
        -

        - loadComplete

        -
        - - - - - void - loadComplete - ( - ) - - -
        - Load complete is the callback function we pass to the data provider -in dynamic load situations. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - refresh

        -
        - - - - - void - refresh - ( - ) - - -
        - Regenerates the html for this node and its children. To be used when the -node is expanded and new children have been added. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - renderChildren

        -
        - - private - - - string - renderChildren - ( - ) - - -
        - Generates the markup for the child nodes. This is not done until the node -is expanded. -
        - -
        - - -
        -
        Returns: - - string -
        -
        the html for this node's children
        -
        - -
        - -
        -
        -

        - setDynamicLoad

        -
        - - - - - void - setDynamicLoad - ( - - - fmDataLoader - - - , - iconMode - - - ) - - -
        - Configures this node for dynamically obtaining the child data -when the node is first expanded. Calling it without the callback -will turn off dynamic load for the node. -
        - -
        - -
        -
        Parameters:
        -
        - fmDataLoader <function> - the function that will be used to get the data. -
        -
        - iconMode <int> - configures the icon that is displayed when a dynamic -load node is expanded the first time without children. By default, the -"collapse" icon will be used. If set to 1, the leaf node icon will be -displayed. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - showChildren

        -
        - - - - - void - showChildren - ( - ) - - -
        - Shows this node's children -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toggle

        -
        - - - - - void - toggle - ( - ) - - -
        - Expands if node is collapsed, collapses otherwise. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - string - toString - ( - ) - - -
        - Node toString -
        - -
        - - -
        -
        Returns: - - string -
        -
        string representation of the node
        -
        - -
        - -
        -
        -
        -
        - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Events

        -
        -

        - parentChange

        -
        - - - - - parentChange - - ( - ) - - - -
        - The parentChange event is fired when a parent element is applied -to the node. This is useful if you need to apply tree-level -properties to a tree that need to happen if a node is moved from -one tree to another. -
        - -
        - - - - -
        - -
        -
        -
        -
        - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.Overlay.html b/www/extras/yui/docs/YAHOO.widget.Overlay.html deleted file mode 100644 index 539b72757..000000000 --- a/www/extras/yui/docs/YAHOO.widget.Overlay.html +++ /dev/null @@ -1,2277 +0,0 @@ - - - - API: container YAHOO.widget.Overlay (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - > YAHOO.widget.Overlay - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.Overlay - - - extends YAHOO.widget.Module - - - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.widget.Panel - YAHOO.widget.Menu - YAHOO.widget.Tooltip -
        -
        - - - -
        - Overlay is a Module that is absolutely positioned above the page flow. It has convenience methods for positioning and sizing, as well as options for controlling zIndex and constraining the Overlay's position to the current visible viewport. Overlay also contains a dynamicly generated IFRAME which is placed beneath it for Internet Explorer 6 and 5.x so that it will be properly rendered above SELECT elements. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.Overlay - - ( - - - - el - - - , - userConfig - ) - -
        -
        -
        Parameters:
        -
        - el - <String> - - The element ID representing the Overlay OR -
        -
        - el - <HTMLElement> - - The element representing the Overlay -
        -
        - userConfig - <Object> - - The configuration object literal containing 10/23/2006the configuration that should be set for this Overlay. See configuration documentation for more details. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        YAHOO.widget.Overlay._DEFAULT_CONFIG - - private final Object -

        -
        -
        - Constant representing the Overlay's configuration properties -
        -
        - - - - -
        -

        YAHOO.widget.Overlay._EVENT_TYPES - - private final Object -

        -
        -
        - Constant representing the name of the Overlay's events -
        -
        - - - - -
        -

        YAHOO.widget.Overlay._initialized - - private Boolean -

        -
        -
        - A boolean that indicated whether the window resize and scroll events have already been subscribed to. -
        -
        - - - - -
        -

        YAHOO.widget.Overlay.BOTTOM_LEFT - - static final String -

        -
        -
        - Constant representing the top bottom left corner of an element, used for configuring the context element alignment -
        -
        - - - - -
        -

        YAHOO.widget.Overlay.BOTTOM_RIGHT - - static final String -

        -
        -
        - Constant representing the bottom right corner of an element, used for configuring the context element alignment -
        -
        - - - - -
        -

        YAHOO.widget.Overlay.CSS_OVERLAY - - static final String -

        -
        -
        - Constant representing the default CSS class used for an Overlay -
        -
        - - - - -
        -

        YAHOO.widget.Overlay.IFRAME_SRC - - static final String -

        -
        -
        - The URL that will be placed in the iframe -
        -
        - - - - -
        -

        YAHOO.widget.Overlay.TOP_LEFT - - static final String -

        -
        -
        - Constant representing the top left corner of an element, used for configuring the context element alignment -
        -
        - - - - -
        -

        YAHOO.widget.Overlay.TOP_RIGHT - - static final String -

        -
        -
        - Constant representing the top right corner of an element, used for configuring the context element alignment -
        -
        - - - - -
        - - -
        -
        - - - -
        -

        Methods

        -
        -

        - align

        -
        - - - - - void - align - ( - - - elementAlign - - - , - contextAlign - - - ) - - -
        - Aligns the Overlay to its context element using the specified corner points (represented by the constants TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, and BOTTOM_RIGHT. -
        - -
        - -
        -
        Parameters:
        -
        - elementAlign <String> - The String representing the corner of the Overlay that should be aligned to the context element -
        -
        - contextAlign <String> - The corner of the context element that the elementAlign corner should stick to. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - center

        -
        - - - - - void - center - ( - ) - - -
        - Centers the container in the viewport. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configConstrainToViewport

        -
        - - - - - void - configConstrainToViewport - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "constraintoviewport" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configContext

        -
        - - - - - void - configContext - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "context" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configFixedCenter

        -
        - - - - - void - configFixedCenter - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "fixedcenter" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configHeight

        -
        - - - - - void - configHeight - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "height" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configIframe

        -
        - - - - - void - configIframe - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "iframe" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configVisible

        -
        - - - - - void - configVisible - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "visible" property is changed. This method is responsible for firing showEvent and hideEvent. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configWidth

        -
        - - - - - void - configWidth - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "width" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configX

        -
        - - - - - void - configX - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "x" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configXY

        -
        - - - - - void - configXY - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "xy" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configY

        -
        - - - - - void - configY - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "y" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configzIndex

        -
        - - - - - void - configzIndex - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "zIndex" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - destroy

        -
        - - - - - void - destroy - ( - ) - - -
        - Removes the Overlay element from the DOM and sets all child elements to null. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - doCenterOnDOMEvent

        -
        - - - - - void - doCenterOnDOMEvent - ( - ) - - -
        - Center event handler used for centering on scroll/resize, but only if the Overlay is visible -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - enforceConstraints

        -
        - - - - - void - enforceConstraints - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler executed when the moveEvent is fired, if the "constraintoviewport" is set to true. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - hideIframe

        -
        - - - - - void - hideIframe - ( - ) - - -
        - Hides the iframe shim, if it has been enabled -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - hideMacGeckoScrollbars

        -
        - - - - - void - hideMacGeckoScrollbars - ( - ) - - -
        - Adds a special CSS class to the Overlay when Mac/Gecko is in use, to work around a Gecko bug where -scrollbars cannot be hidden. See https://bugzilla.mozilla.org/show_bug.cgi?id=187435 -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - el - - - - - , - userConfig - - - ) - - -
        - The Overlay initialization method, which is executed for Overlay and all of its subclasses. This method is automatically called by the constructor, and sets up all DOM references for pre-existing markup, and creates required markup if it is not already present. -
        - -
        - -
        -
        Parameters:
        -
        - el <String> - The element ID representing the Overlay OR -
        -
        - el <HTMLElement> - The element representing the Overlay -
        -
        - userConfig <Object> - The configuration object literal containing the configuration that should be set for this Overlay. See configuration documentation for more details. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initDefaultConfig

        -
        - - - - - void - initDefaultConfig - ( - ) - - -
        - Initializes the class's configurable properties which can be changed using the Overlay's Config object (cfg). -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initEvents

        -
        - - - - - void - initEvents - ( - ) - - -
        - Initializes the custom events for Overlay which are fired automatically at appropriate times by the Overlay class. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - moveTo

        -
        - - - - - void - moveTo - ( - - - x - - - , - y - - - ) - - -
        - Moves the Overlay to the specified position. This function is identical to calling this.cfg.setProperty("xy", [x,y]); -
        - -
        - -
        -
        Parameters:
        -
        - x <Number> - The Overlay's new x position -
        -
        - y <Number> - The Overlay's new y position -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onDomResize

        -
        - - - - - void - onDomResize - ( - - - e - - - , - obj - - - ) - - -
        - Event handler fired when the resize monitor element is resized. -
        - -
        - -
        -
        Parameters:
        -
        - e <DOMEvent> - The resize DOM event -
        -
        - obj <Object> - The scope object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - showIframe

        -
        - - - - - void - showIframe - ( - ) - - -
        - Shows the iframe shim, if it has been enabled -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - showMacGeckoScrollbars

        -
        - - - - - void - showMacGeckoScrollbars - ( - ) - - -
        - Removes a special CSS class from the Overlay when Mac/Gecko is in use, to work around a Gecko bug where -scrollbars cannot be hidden. See https://bugzilla.mozilla.org/show_bug.cgi?id=187435 -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - syncPosition

        -
        - - - - - void - syncPosition - ( - ) - - -
        - Synchronizes the Panel's "xy", "x", and "y" properties with the Panel's position in the DOM. This is primarily used to update position information during drag & drop. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a String representation of the object. -
        - -
        - - -
        -
        Returns: - - String -
        -
        The string representation of the Overlay.
        -
        - -
        - -
        -
        -

        - YAHOO.widget.Overlay.windowResizeHandler

        -
        - - - static - - void - YAHOO.widget.Overlay.windowResizeHandler - ( - - - e - - - ) - - -
        - The DOM event handler used to fire the CustomEvent for window resize -
        - -
        - -
        -
        Parameters:
        -
        - e <DOMEvent> - The DOM resize event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - YAHOO.widget.Overlay.windowScrollHandler

        -
        - - - static - - void - YAHOO.widget.Overlay.windowScrollHandler - ( - - - e - - - ) - - -
        - The DOM event handler used to fire the CustomEvent for window scroll -
        - -
        - -
        -
        Parameters:
        -
        - e <DOMEvent> - The DOM scroll event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - - - -
        -

        Events

        -
        -

        - beforeMoveEvent

        -
        - - - - - beforeMoveEvent - - ( - - - x - - - , - y - - - ) - - - -
        - CustomEvent fired before the Overlay is moved. -
        - -
        - - -
        -
        Parameters:
        -
        - x <Number> - x coordinate -
        -
        - y <Number> - y coordinate -
        -
        - - -
        - -
        -
        -

        - moveEvent

        -
        - - - - - moveEvent - - ( - - - x - - - , - y - - - ) - - - -
        - CustomEvent fired after the Overlay is moved. -
        - -
        - - -
        -
        Parameters:
        -
        - x <Number> - x coordinate -
        -
        - y <Number> - y coordinate -
        -
        - - -
        - -
        -
        -

        - YAHOO.widget.Overlay.windowResizeEvent

        -
        - - - - - YAHOO.widget.Overlay.windowResizeEvent - - ( - ) - - - -
        - A singleton CustomEvent used for reacting to the DOM event for window resize -
        - -
        - - - - -
        - -
        -
        -

        - YAHOO.widget.Overlay.windowScrollEvent

        -
        - - - - - YAHOO.widget.Overlay.windowScrollEvent - - ( - ) - - - -
        - A singleton CustomEvent used for reacting to the DOM event for window scroll -
        - -
        - - - - -
        - -
        -
        -
        -
        - - - - -
        -

        Configuration Attributes

        -
        -

        constraintoviewport - - Boolean -

        -
        -
        - True if the Overlay should be prevented from being positioned out of the viewport. -
        -
        - - -
        - Default Value: false -
        - -
        -

        context - - Array -

        -
        -
        - The array of context arguments for context-sensitive positioning. The format is: [id or element, element corner, context corner]. For example, setting this property to ["img1", "tl", "bl"] would align the Overlay's top left corner to the context element's bottom left corner. -
        -
        - - -
        - Default Value: null -
        - -
        -

        fixedcenter - - Boolean -

        -
        -
        - True if the Overlay should be anchored to the center of the viewport. -
        -
        - - -
        - Default Value: false -
        - -
        -

        height - - String -

        -
        -
        - CSS height of the Overlay. -
        -
        - - -
        - Default Value: null -
        - -
        -

        iframe - - Boolean -

        -
        -
        - True if the Overlay should have an IFRAME shim (for correcting the select z-index bug in IE6 and below). -
        -
        - - -
        - Default Value: true for IE6 and below, false for all others -
        - -
        -

        width - - String -

        -
        -
        - CSS width of the Overlay. -
        -
        - - -
        - Default Value: null -
        - -
        -

        x - - Number -

        -
        -
        - The absolute x-coordinate position of the Overlay -
        -
        - - -
        - Default Value: null -
        - -
        -

        xy - - Number[] -

        -
        -
        - An array with the absolute x and y positions of the Overlay -
        -
        - - -
        - Default Value: null -
        - -
        -

        y - - Number -

        -
        -
        - The absolute y-coordinate position of the Overlay -
        -
        - - -
        - Default Value: null -
        - -
        -

        zIndex - - Number -

        -
        -
        - CSS z-index of the Overlay. -
        -
        - - -
        - Default Value: null -
        - -
        - -
        -
        - -
        -

        Configuration attributes inherited from YAHOO.widget.Module:

        -
        - - - effect, - monitorresize, - visible - -
        -
        - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.OverlayManager.html b/www/extras/yui/docs/YAHOO.widget.OverlayManager.html deleted file mode 100644 index f53376a3e..000000000 --- a/www/extras/yui/docs/YAHOO.widget.OverlayManager.html +++ /dev/null @@ -1,966 +0,0 @@ - - - - API: container YAHOO.widget.OverlayManager (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - > YAHOO.widget.OverlayManager - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.OverlayManager - - - - - - - -

        - - - - - -
        - OverlayManager is used for maintaining the focus status of multiple Overlays.* @namespace YAHOO.widget -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.OverlayManager - - ( - - - - overlays - - , - userConfig - ) - -
        -
        -
        Parameters:
        -
        - overlays - <Array> - - Optional. A collection of Overlays to register with the manager. -
        -
        - userConfig - <Object> - - The object literal representing the user configuration of the OverlayManager -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        activeOverlay - - private YAHOO.widget.Overlay -

        -
        -
        - The currently activated Overlay -
        -
        - - - - -
        -

        cfg - - YAHOO.util.Config -

        -
        -
        - The OverlayManager's Config object used for monitoring configuration properties. -
        -
        - - - - -
        -

        contructor - - Function -

        -
        -
        - The class's constructor function -
        -
        - - - - -
        -

        overlays - - YAHOO.widget.Overlay[] -

        -
        -
        - The array of Overlays that are currently registered -
        -
        - - - - -
        -

        YAHOO.widget.OverlayManager.CSS_FOCUSED - - static final String -

        -
        -
        - The CSS class representing a focused Overlay -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - _onOverlayDestroy

        -
        - - private - - - void - _onOverlayDestroy - ( - - - p_sType - - - , - p_aArgs - - - , - p_oOverlay - - - ) - - -
        - "destroy" event handler for the Overlay. -
        - -
        - -
        -
        Parameters:
        -
        - p_sType <String> - String representing the name of the event that -was fired. -
        -
        - p_aArgs <Array> - Array of arguments sent when the event was fired. -
        -
        - p_oOverlay <YAHOO.widget.Overlay> - Object representing the menu that -fired the event. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _onOverlayElementFocus

        -
        - - private - - - void - _onOverlayElementFocus - ( - - - p_oEvent - - - ) - - -
        - Event handler for the DOM event that is used to focus -the Overlay instance as specified by the "focusevent" -configuration property. -
        - -
        - -
        -
        Parameters:
        -
        - p_oEvent <Event> - Object representing the DOM event object passed -back by the event utility (YAHOO.util.Event). -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - blurAll

        -
        - - - - - void - blurAll - ( - ) - - -
        - Removes focus from all registered Overlays in the manager -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - compareZIndexDesc

        -
        - - private - - - Number - compareZIndexDesc - ( - ) - - -
        - Used for sorting the manager's Overlays by z-index. -
        - -
        - - -
        -
        Returns: - - Number -
        -
        0, 1, or -1, depending on where the Overlay should fall in the stacking order.
        -
        - -
        - -
        -
        -

        - find

        -
        - - - - - YAHOO.widget.Overlay - find - ( - - - overlay - - - - - ) - - -
        - Attempts to locate an Overlay by instance or ID. -
        - -
        - -
        -
        Parameters:
        -
        - overlay <YAHOO.widget.Overlay> - An Overlay to locate within the manager -
        -
        - overlay <String> - An Overlay id to locate within the manager -
        -
        - -
        -
        Returns: - - YAHOO.widget.Overlay -
        -
        The requested Overlay, if found, or null if it cannot be located.
        -
        - -
        - -
        -
        -

        - focus

        -
        - - - - - void - focus - ( - - - overlay - - - - - ) - - -
        - Focuses the specified Overlay -
        - -
        - -
        -
        Parameters:
        -
        - overlay <YAHOO.widget.Overlay> - The Overlay to focus -
        -
        - overlay <String> - The id of the Overlay to focus -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getActive

        -
        - - - - - YAHOO.widget.Overlay - getActive - ( - ) - - -
        - Returns the currently focused Overlay -
        - -
        - - -
        -
        Returns: - - YAHOO.widget.Overlay -
        -
        The currently focused Overlay
        -
        - -
        - -
        -
        -

        - hideAll

        -
        - - - - - void - hideAll - ( - ) - - -
        - Hides all Overlays in the manager. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - overlays - - - , - userConfig - - - ) - - -
        - Initializes the OverlayManager -
        - -
        - -
        -
        Parameters:
        -
        - overlays <YAHOO.widget.Overlay[]> - Optional. A collection of Overlays to register with the manager. -
        -
        - userConfig <Object> - The object literal representing the user configuration of the OverlayManager -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initDefaultConfig

        -
        - - - - - void - initDefaultConfig - ( - ) - - -
        - Initializes the default configuration of the OverlayManager -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - register

        -
        - - - - - Boolean - register - ( - - - overlay - - - - - ) - - -
        - Registers an Overlay or an array of Overlays with the manager. Upon registration, the Overlay receives functions for focus and blur, along with CustomEvents for each. -
        - -
        - -
        -
        Parameters:
        -
        - overlay <YAHOO.widget.Overlay> - An Overlay to register with the manager. -
        -
        - overlay <YAHOO.widget.Overlay[]> - An array of Overlays to register with the manager. -
        -
        - -
        -
        Returns: - - Boolean -
        -
        True if any Overlays are registered.
        -
        - -
        - -
        -
        -

        - remove

        -
        - - - - - void - remove - ( - - - overlay - - - - - ) - - -
        - Removes the specified Overlay from the manager -
        - -
        - -
        -
        Parameters:
        -
        - overlay <YAHOO.widget.Overlay> - The Overlay to remove -
        -
        - overlay <String> - The id of the Overlay to remove -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - showAll

        -
        - - - - - void - showAll - ( - ) - - -
        - Shows all Overlays in the manager. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representation of the object. -
        - -
        - - -
        -
        Returns: - - String -
        -
        The string representation of the OverlayManager
        -
        - -
        - -
        -
        -
        -
        - - - - - -
        -

        Configuration Attributes

        -
        -

        focusevent - - String -

        -
        -
        - The default DOM event that should be used to focus an Overlay -
        -
        - - -
        - Default Value: "mousedown" -
        - -
        -

        overlays - - YAHOO.widget.Overlay[] -

        -
        -
        - The collection of registered Overlays in use by the OverlayManager -
        -
        - - -
        - Default Value: null -
        - -
        - -
        -
        - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.Panel.html b/www/extras/yui/docs/YAHOO.widget.Panel.html deleted file mode 100644 index 790297dea..000000000 --- a/www/extras/yui/docs/YAHOO.widget.Panel.html +++ /dev/null @@ -1,1741 +0,0 @@ - - - - API: container YAHOO.widget.Panel (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - > YAHOO.widget.Panel - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.Panel - - - extends YAHOO.widget.Overlay - - - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.widget.Dialog -
        -
        - - - -
        - Panel is an implementation of Overlay that behaves like an OS window, with a draggable header and an optional close icon at the top right. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.Panel - - ( - - - - el - - - , - userConfig - ) - -
        -
        -
        Parameters:
        -
        - el - <String> - - The element ID representing the Panel OR -
        -
        - el - <HTMLElement> - - The element representing the Panel -
        -
        - userConfig - <Object> - - The configuration object literal containing the configuration that should be set for this Panel. See configuration documentation for more details. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        YAHOO.widget.Panel._DEFAULT_CONFIG - - private final Object -

        -
        -
        - Constant representing the Panel's configuration properties -
        -
        - - - - -
        -

        YAHOO.widget.Panel._EVENT_TYPES - - private final Object -

        -
        -
        - Constant representing the name of the Panel's events -
        -
        - - - - -
        -

        YAHOO.widget.Panel.CSS_PANEL - - static final String -

        -
        -
        - Constant representing the default CSS class used for a Panel -
        -
        - - - - -
        -

        YAHOO.widget.Panel.CSS_PANEL_CONTAINER - - static final String -

        -
        -
        - Constant representing the default CSS class used for a Panel's wrapping container -
        -
        - - - - -
        - - -
        -
        - - - - -
        -

        Methods

        -
        -

        - buildMask

        -
        - - - - - void - buildMask - ( - ) - - -
        - Builds the mask that is laid over the document when the Panel is configured to be modal. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - buildWrapper

        -
        - - - - - void - buildWrapper - ( - ) - - -
        - Builds the wrapping container around the Panel that is used for positioning the shadow and matte underlays. The container element is assigned to a local instance variable called container, and the element is reinserted inside of it. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configClose

        -
        - - - - - void - configClose - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "close" property is changed. The method controls the appending or hiding of the close icon at the top right of the Panel. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configDraggable

        -
        - - - - - void - configDraggable - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "draggable" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configHeight

        -
        - - - - - void - configHeight - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "height" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configKeyListeners

        -
        - - - - - void - configKeyListeners - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "keylisteners" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configModal

        -
        - - - - - void - configModal - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "modal" property is changed. This handler subscribes or unsubscribes to the show and hide events to handle the display or hide of the modality mask. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configUnderlay

        -
        - - - - - void - configUnderlay - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "underlay" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configWidth

        -
        - - - - - void - configWidth - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "width" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configzIndex

        -
        - - - - - void - configzIndex - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "zIndex" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - destroy

        -
        - - - - - void - destroy - ( - ) - - -
        - Removes the Panel element from the DOM and sets all child elements to null. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - hideMask

        -
        - - - - - void - hideMask - ( - ) - - -
        - Hides the modality mask. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - el - - - - - , - userConfig - - - ) - - -
        - The Overlay initialization method, which is executed for Overlay and all of its subclasses. This method is automatically called by the constructor, and sets up all DOM references for pre-existing markup, and creates required markup if it is not already present. -
        - -
        - -
        -
        Parameters:
        -
        - el <String> - The element ID representing the Overlay OR -
        -
        - el <HTMLElement> - The element representing the Overlay -
        -
        - userConfig <Object> - The configuration object literal containing the configuration that should be set for this Overlay. See configuration documentation for more details. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initDefaultConfig

        -
        - - - - - void - initDefaultConfig - ( - ) - - -
        - Initializes the class's configurable properties which can be changed using the Panel's Config object (cfg). -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initEvents

        -
        - - - - - void - initEvents - ( - ) - - -
        - Initializes the custom events for Module which are fired automatically at appropriate times by the Module class. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onDomResize

        -
        - - - - - void - onDomResize - ( - - - e - - - , - obj - - - ) - - -
        - Event handler fired when the resize monitor element is resized. -
        - -
        - -
        -
        Parameters:
        -
        - e <DOMEvent> - The resize DOM event -
        -
        - obj <Object> - The scope object -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - registerDragDrop

        -
        - - - - - void - registerDragDrop - ( - ) - - -
        - Registers the Panel's header for drag & drop capability. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeMask

        -
        - - - - - void - removeMask - ( - ) - - -
        - Removes the modality mask. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - render

        -
        - - - - - boolean - render - ( - - - appendToNode - - - - - ) - - -
        - Renders the Panel by inserting the elements that are not already in the main Panel into their correct places. Optionally appends the Panel to the specified node prior to the render's execution. NOTE: For Panels without existing markup, the appendToNode argument is REQUIRED. If this argument is ommitted and the current element is not present in the document, the function will return false, indicating that the render was a failure. -
        - -
        - -
        -
        Parameters:
        -
        - appendToNode <String> - The element id to which the Module should be appended to prior to rendering OR -
        -
        - appendToNode <HTMLElement> - The element to which the Module should be appended to prior to rendering -
        -
        - -
        -
        Returns: - - boolean -
        -
        Success or failure of the render
        -
        - -
        - -
        -
        -

        - showMask

        -
        - - - - - void - showMask - ( - ) - - -
        - Shows the modality mask. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - sizeMask

        -
        - - - - - void - sizeMask - ( - ) - - -
        - Sets the size of the modality mask to cover the entire scrollable area of the document -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - sizeUnderlay

        -
        - - - - - void - sizeUnderlay - ( - ) - - -
        - Adjusts the size of the shadow based on the size of the element. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a String representation of the object. -
        - -
        - - -
        -
        Returns: - - String -
        -
        The string representation of the Panel.
        -
        - -
        - -
        -
        -
        -
        - - - - -
        -

        Events

        -
        -

        - dragEvent

        -
        - - - - - dragEvent - - ( - ) - - - -
        - CustomEvent when the Panel is dragged -
        - -
        - - - - -
        - -
        -
        -

        - hideMaskEvent

        -
        - - - - - hideMaskEvent - - ( - ) - - - -
        - CustomEvent fired after the modality mask is hidden -
        - -
        - - - - -
        - -
        -
        -

        - showMaskEvent

        -
        - - - - - showMaskEvent - - ( - ) - - - -
        - CustomEvent fired after the modality mask is shown -
        - -
        - - - - -
        - -
        -
        -
        -
        - - - - - -
        -

        Configuration Attributes

        -
        -

        close - - Boolean -

        -
        -
        - True if the Panel should display a "close" button -
        -
        - - -
        - Default Value: true -
        - -
        -

        draggable - - Boolean -

        -
        -
        - True if the Panel should be draggable. Default value is "true" if the Drag and Drop utility is included, otherwise it is "false." -
        -
        - - -
        - Default Value: true -
        - -
        -

        keylisteners - - YAHOO.util.KeyListener[] -

        -
        -
        - A KeyListener (or array of KeyListeners) that will be enabled when the Panel is shown, and disabled when the Panel is hidden. -
        -
        - - -
        - Default Value: null -
        - -
        -

        modal - - Boolean -

        -
        -
        - True if the Panel should be displayed in a modal fashion, automatically creating a transparent mask over the document that will not be removed until the Panel is dismissed. -
        -
        - - -
        - Default Value: false -
        - -
        -

        underlay - - String -

        -
        -
        - Sets the type of underlay to display for the Panel. Valid values are "shadow", "matte", and "none". -
        -
        - - -
        - Default Value: shadow -
        - -
        - -
        -
        - -
        -

        Configuration attributes inherited from YAHOO.widget.Module:

        -
        - - - effect, - monitorresize, - visible - -
        -
        -
        -

        Configuration attributes inherited from YAHOO.widget.Overlay:

        -
        - - - constraintoviewport, - context, - fixedcenter, - height, - iframe, - width, - x, - xy, - y, - zIndex - -
        -
        - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.RootNode.html b/www/extras/yui/docs/YAHOO.widget.RootNode.html deleted file mode 100644 index cef2a1978..000000000 --- a/www/extras/yui/docs/YAHOO.widget.RootNode.html +++ /dev/null @@ -1,295 +0,0 @@ - - - - API: treeview YAHOO.widget.RootNode (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - > YAHOO.widget.RootNode - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.RootNode - - - extends YAHOO.widget.Node - - - - - - -

        - - - - - -
        - A custom YAHOO.widget.Node that handles the unique nature of -the virtual, presentationless root node. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.RootNode - - ( - - - - oTree - ) - -
        -
        -
        Parameters:
        -
        - oTree - <YAHOO.widget.TreeView> - - The tree instance this node belongs to -
        -
        - - -
        -
        -
        -
        - - - -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - - - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - - - -
        -

        Events inherited from YAHOO.widget.Node:

        -
        - - - parentChange - -
        -
        - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.SimpleDialog.html b/www/extras/yui/docs/YAHOO.widget.SimpleDialog.html deleted file mode 100644 index cfc60c66f..000000000 --- a/www/extras/yui/docs/YAHOO.widget.SimpleDialog.html +++ /dev/null @@ -1,976 +0,0 @@ - - - - API: container YAHOO.widget.SimpleDialog (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - > YAHOO.widget.SimpleDialog - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.SimpleDialog - - - extends YAHOO.widget.Dialog - - - - - - -

        - - - - - -
        - SimpleDialog is a simple implementation of Dialog that can be used to submit a single value. Forms can be processed in 3 ways -- via an asynchronous Connection utility call, a simple form POST or GET, or manually. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.SimpleDialog - - ( - - - - el - - - , - userConfig - ) - -
        -
        -
        Parameters:
        -
        - el - <String> - - The element ID representing the SimpleDialog OR -
        -
        - el - <HTMLElement> - - The element representing the SimpleDialog -
        -
        - userConfig - <Object> - - The configuration object literal containing the configuration that should be set for this SimpleDialog. See configuration documentation for more details. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        YAHOO.widget.SimpleDialog._DEFAULT_CONFIG - - private final Object -

        -
        -
        - Constant representing the SimpleDialog's configuration properties -
        -
        - - - - -
        -

        YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG - - static final String -

        -
        -
        - Constant representing the default CSS class used for a SimpleDialog -
        -
        - - - - -
        -

        YAHOO.widget.SimpleDialog.ICON_ALARM - - static final String -

        -
        -
        - Constant for the standard network icon for alarm -
        -
        - - - - -
        -

        YAHOO.widget.SimpleDialog.ICON_BLOCK - - static final String -

        -
        -
        - Constant for the standard network icon for a blocking action -
        -
        - - - - -
        -

        YAHOO.widget.SimpleDialog.ICON_HELP - - static final String -

        -
        -
        - Constant for the standard network icon for help -
        -
        - - - - -
        -

        YAHOO.widget.SimpleDialog.ICON_INFO - - static final String -

        -
        -
        - Constant for the standard network icon for info -
        -
        - - - - -
        -

        YAHOO.widget.SimpleDialog.ICON_TIP - - static final String -

        -
        -
        - Constant for the standard network icon for a tip -
        -
        - - - - -
        -

        YAHOO.widget.SimpleDialog.ICON_WARN - - static final String -

        -
        -
        - Constant for the standard network icon for warn -
        -
        - - - - -
        - - -
        -
        - - - - - - -
        -

        Methods

        -
        -

        - configIcon

        -
        - - - - - void - configIcon - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - Fired when the "icon" property is set. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configText

        -
        - - - - - void - configText - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - Fired when the "text" property is set. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - el - - - - - , - userConfig - - - ) - - -
        - The SimpleDialog initialization method, which is executed for SimpleDialog and all of its subclasses. This method is automatically called by the constructor, and sets up all DOM references for pre-existing markup, and creates required markup if it is not already present. -
        - -
        - -
        -
        Parameters:
        -
        - el <String> - The element ID representing the SimpleDialog OR -
        -
        - el <HTMLElement> - The element representing the SimpleDialog -
        -
        - userConfig <Object> - The configuration object literal containing the configuration that should be set for this SimpleDialog. See configuration documentation for more details. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initDefaultConfig

        -
        - - - - - void - initDefaultConfig - ( - ) - - -
        - Initializes the class's configurable properties which can be changed using the SimpleDialog's Config object (cfg). -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - registerForm

        -
        - - - - - void - registerForm - ( - ) - - -
        - Prepares the SimpleDialog's internal FORM object, creating one if one is not currently present, and adding the value hidden field. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representation of the object. -
        - -
        - - -
        -
        Returns: - - String -
        -
        The string representation of the SimpleDialog
        -
        - -
        - -
        -
        -
        -
        - - - - - - - - -
        -

        Events inherited from YAHOO.widget.Panel:

        - -
        - - - - -
        -

        Configuration Attributes

        -
        -

        icon - - String -

        -
        -
        - Sets the informational icon for the SimpleDialog -
        -
        - - -
        - Default Value: "none" -
        - -
        -

        text - - String -

        -
        -
        - Sets the text for the SimpleDialog -
        -
        - - -
        - Default Value: "" -
        - -
        - -
        -
        - -
        -

        Configuration attributes inherited from YAHOO.widget.Panel:

        -
        - - - close, - draggable, - keylisteners, - modal, - underlay - -
        -
        -
        -

        Configuration attributes inherited from YAHOO.widget.Module:

        -
        - - - effect, - monitorresize, - visible - -
        -
        -
        -

        Configuration attributes inherited from YAHOO.widget.Dialog:

        -
        - - - buttons, - postmethod - -
        -
        -
        -

        Configuration attributes inherited from YAHOO.widget.Overlay:

        -
        - - - constraintoviewport, - context, - fixedcenter, - height, - iframe, - width, - x, - xy, - y, - zIndex - -
        -
        - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.Slider.html b/www/extras/yui/docs/YAHOO.widget.Slider.html deleted file mode 100644 index dea9351d6..000000000 --- a/www/extras/yui/docs/YAHOO.widget.Slider.html +++ /dev/null @@ -1,2308 +0,0 @@ - - - - API: slider YAHOO.widget.Slider (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Slider Widget  2.2.2

        -

        - Yahoo! UI Library - > slider - > YAHOO.widget.Slider - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.Slider - - - extends YAHOO.util.DragDrop - - - - - uses - - YAHOO.util.EventProvider - - - - -

        - - - - - -
        - A DragDrop implementation that can be used as a background for a -slider. It takes a reference to the thumb instance -so it can delegate some of the events to it. The goal is to make the -thumb jump to the location on the background when the background is -clicked. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.Slider - - ( - - - - id - - , - sGroup - - , - oThumb - - , - sType - ) - -
        -
        -
        Parameters:
        -
        - id - <String> - - The id of the element linked to this instance -
        -
        - sGroup - <String> - - The group of related DragDrop items -
        -
        - oThumb - <SliderThumb> - - The thumb for this slider -
        -
        - sType - <String> - - The type of slider (horiz, vert, region) -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        animate - - boolean -

        -
        -
        - Flag that determines if the thumb will animate when moved -
        -
        - - - - -
        -

        animationDuration - - int -

        -
        -
        - If animation is configured, specifies the length of the animation -in seconds. -
        -
        - - -
        - Default Value: 0.2 -
        - - -
        -

        backgroundEnabled - - boolean -

        -
        -
        - Set to false to disable a background click thumb move -
        -
        - - - - -
        -

        baselinePos - - [int, int] -

        -
        -
        - The basline position of the background element, used -to determine if the background has moved since the last -operation. -
        -
        - - - - -
        -

        enableKeys - - boolean -

        -
        -
        - Enables the arrow, home and end keys, defaults to true. -
        -
        - - - - -
        -

        isTarget - - private object -

        -
        -
        - Overrides the isTarget property in YAHOO.util.DragDrop -
        -
        - - - - -
        -

        keyIncrement - - int -

        -
        -
        - Specifies the number of pixels the arrow keys will move the slider. -Default is 25. -
        -
        - - - - -
        -

        moveComplete - - Boolean -

        -
        -
        - moveComplete is set to true when the slider has moved to its final -destination. For animated slider, this value can be checked in -the onChange handler to make it possible to execute logic only -when the move is complete rather than at all points along the way. -Deprecated because this flag is only useful when the background is -clicked and the slider is animated. If the user drags the thumb, -the flag is updated when the drag is over ... the final onDrag event -fires before the mouseup the ends the drag, so the implementer will -never see it. -
        -
        - - - -
        - Deprecated: use the slideEnd event instead -
        - -
        -

        thumb - - YAHOO.widget.SliderThumb -

        -
        -
        - A YAHOO.widget.SliderThumb instance that we will use to -reposition the thumb when the background is clicked -
        -
        - - - - -
        -

        thumbCenterPoint - - {"x": int, "y": int} -

        -
        -
        - The center of the slider element is stored so we can -place it in the correct position when the background is clicked. -
        -
        - - - - -
        -

        tickPause - - int -

        -
        -
        - Adjustment factor for tick animation, the more ticks, the -faster the animation (by default) -
        -
        - - - - -
        -

        type - - string -

        -
        -
        - The type of the slider (horiz, vert, region) -
        -
        - - - - -
        -

        YAHOO.widget.Slider.ANIM_AVAIL - - static boolean -

        -
        -
        - By default, animation is available if the animation library is detected. -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Methods

        -
        -

        - _getNextX

        -
        - - private - - - void - _getNextX - ( - ) - - -
        - Returns the next X tick value based on the current coord and the target coord. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - _getNextY

        -
        - - private - - - void - _getNextY - ( - ) - - -
        - Returns the next Y tick value based on the current coord and the target coord. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - b4MouseDown

        -
        - - private - - - void - b4MouseDown - ( - ) - - -
        - Resets the constraints before moving the thumb. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - endMove

        -
        - - private - - - void - endMove - ( - ) - - -
        - Fired when the slider movement ends -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - fireEvents

        -
        - - private - - - void - fireEvents - ( - - - thumbEvent - - - ) - - -
        - Fires the change event if the value has been changed. Ignored if we are in -the middle of an animation as the event will fire when the animation is -complete -
        - -
        - -
        -
        Parameters:
        -
        - thumbEvent <boolean> - set to true if this event is fired from an event -that occurred on the thumb. If it is, the state of the -thumb dd object should be correct. Otherwise, the event -originated on the background, so the thumb state needs to -be refreshed before proceeding. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - focus

        -
        - - private - - - void - focus - ( - ) - - -
        - Try to focus the element when clicked so we can add -accessibility features -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getThumb

        -
        - - - - - SliderThumb - getThumb - ( - ) - - -
        - Returns a reference to this slider's thumb -
        - -
        - - -
        -
        Returns: - - SliderThumb -
        -
        this slider's thumb
        -
        - -
        - -
        -
        -

        - getValue

        -
        - - - - - int - getValue - ( - ) - - -
        - Returns the slider's thumb offset from the start position -
        - -
        - - -
        -
        Returns: - - int -
        -
        the current value
        -
        - -
        - -
        -
        -

        - getXValue

        -
        - - - - - int - getXValue - ( - ) - - -
        - Returns the slider's thumb X offset from the start position -
        - -
        - - -
        -
        Returns: - - int -
        -
        the current horizontal offset
        -
        - -
        - -
        -
        -

        - getYValue

        -
        - - - - - int - getYValue - ( - ) - - -
        - Returns the slider's thumb Y offset from the start position -
        - -
        - - -
        -
        Returns: - - int -
        -
        the current vertical offset
        -
        - -
        - -
        -
        -

        - handleKeyDown

        -
        - - - - - void - handleKeyDown - ( - - - e - - - ) - - -
        - Executed when a keydown event happens with the control focused. -Updates the slider value and display when the keypress is an -arrow key, home, or end as long as enableKeys is set to true. -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the keydown event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - handleKeyPress

        -
        - - - - - void - handleKeyPress - ( - - - e - - - ) - - -
        - Executed when a keypress event happens with the control focused. -Prevents the default behavior for navigation keys. The actual -logic for moving the slider thumb in response to a key event -happens in handleKeyDown. -
        - -
        - -
        -
        Parameters:
        -
        - e <Event> - the keypress event -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - handleThumbChange

        -
        - - private - - - void - handleThumbChange - ( - ) - - -
        - Internal handler for the slider thumb's onChange event -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initSlider

        -
        - - - - - void - initSlider - ( - - - sType - - - ) - - -
        - Initializes the slider. Executed in the constructor -
        - -
        - -
        -
        Parameters:
        -
        - sType <string> - the type of slider (horiz, vert, region) -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initThumb

        -
        - - - - - void - initThumb - ( - - - t - - - ) - - -
        - Initializes the slider's thumb. Executed in the constructor. -
        - -
        - -
        -
        Parameters:
        -
        - t <YAHOO.widget.SliderThumb> - the slider thumb -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - lock

        -
        - - - - - void - lock - ( - ) - - -
        - Locks the slider, overrides YAHOO.util.DragDrop -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - moveOneTick

        -
        - - private - - - void - moveOneTick - ( - - - the - - - ) - - -
        - Move the slider one tick mark towards its final coordinate. Used -for the animation when tick marks are defined -
        - -
        - -
        -
        Parameters:
        -
        - the <int[]> - destination coordinate -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - moveThumb

        -
        - - private - - - void - moveThumb - ( - - - x - - - , - y - - - , - skipAnim - - - ) - - -
        - Move the associated slider moved to a timeout to try to get around the -mousedown stealing moz does when I move the slider element between the -cursor and the background during the mouseup event -
        - -
        - -
        -
        Parameters:
        -
        - x <int> - the X coordinate of the click -
        -
        - y <int> - the Y coordinate of the click -
        -
        - skipAnim <boolean> - don't animate if the move happend onDrag -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onAvailable

        -
        - - - - - void - onAvailable - ( - ) - - -
        - Executed when the slider element is available -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onChange

        -
        - - - - - void - onChange - ( - - - firstOffset - - - , - secondOffset - - - ) - - -
        - Event that fires when the value of the slider has changed -
        - -
        - -
        -
        Parameters:
        -
        - firstOffset <int> - the number of pixels the thumb has moved -from its start position. Normal horizontal and vertical sliders will only -have the firstOffset. Regions will have both, the first is the horizontal -offset, the second the vertical. -
        -
        - secondOffset <int> - the y offset for region sliders -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated use instance.subscribe("change") instead -
        -
        - -
        -
        -

        - onDrag

        -
        - - private - - - void - onDrag - ( - ) - - -
        - Handles the onDrag event for the slider background -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onMouseDown

        -
        - - private - - - void - onMouseDown - ( - ) - - -
        - Handles the mousedown event for the slider background -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onSliderEnd

        -
        - - - - - void - onSliderEnd - ( - ) - - -
        - Event that fires at the end of a slider thumb move -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated use instance.subscribe("slideEnd") instead -
        -
        - -
        -
        -

        - onSlideStart

        -
        - - - - - void - onSlideStart - ( - ) - - -
        - Event that fires when the at the beginning of the slider thumb move -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated use instance.subscribe("slideStart") instead -
        -
        - -
        -
        -

        - setRegionValue

        -
        - - - - - boolean - setRegionValue - ( - - - newOffset - - - , - newOffset2 - - - , - skipAnim - - - , - force - - - ) - - -
        - Provides a way to set the value of the region slider in code. -
        - -
        - -
        -
        Parameters:
        -
        - newOffset <int> - the number of pixels the thumb should be -positioned away from the initial start point (x axis for region) -
        -
        - newOffset2 <int> - the number of pixels the thumb should be -positioned away from the initial start point (y axis for region) -
        -
        - skipAnim <boolean> - set to true to disable the animation -for this move action (but not others). -
        -
        - force <boolean> - ignore the locked setting and set value anyway -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if the move was performed, false if it failed
        -
        - -
        - -
        -
        -

        - setStartSliderState

        -
        - - - - - void - setStartSliderState - ( - ) - - -
        - Initialization that sets up the value offsets once the elements are ready -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setThumbCenterPoint

        -
        - - - - - void - setThumbCenterPoint - ( - ) - - -
        - When the thumb is available, we cache the centerpoint of the element so -we can position the element correctly when the background is clicked -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setValue

        -
        - - - - - boolean - setValue - ( - - - newOffset - - - , - skipAnim - - - , - force - - - ) - - -
        - Provides a way to set the value of the slider in code. -
        - -
        - -
        -
        Parameters:
        -
        - newOffset <int> - the number of pixels the thumb should be -positioned away from the initial start point -
        -
        - skipAnim <boolean> - set to true to disable the animation -for this move action (but not others). -
        -
        - force <boolean> - ignore the locked setting and set value anyway -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if the move was performed, false if it failed
        -
        - -
        - -
        -
        -

        - thumbMouseUp

        -
        - - private - - - void - thumbMouseUp - ( - ) - - -
        - Handles mouseup event on the slider background -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - string - toString - ( - ) - - -
        - Slider toString -
        - -
        - - -
        -
        Returns: - - string -
        -
        string representation of the instance
        -
        - -
        - -
        -
        -

        - unlock

        -
        - - - - - void - unlock - ( - ) - - -
        - Unlocks the slider, overrides YAHOO.util.DragDrop -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - verifyOffset

        -
        - - - - - boolean - verifyOffset - ( - - - checkPos - - - ) - - -
        - Checks the background position element position. If it has moved from the -baseline position, the constraints for the thumb are reset -
        - -
        - -
        -
        Parameters:
        -
        - checkPos <boolean> - check the position instead of using cached value -
        -
        - -
        -
        Returns: - - boolean -
        -
        True if the offset is the same as the baseline.
        -
        - -
        - -
        -
        -

        - YAHOO.widget.Slider.getHorizSlider

        -
        - - - static - - Slider - YAHOO.widget.Slider.getHorizSlider - ( - - - sBGElId - - - , - sHandleElId - - - , - iLeft - - - , - iRight - - - , - iTickSize - - - ) - - -
        - Factory method for creating a horizontal slider -
        - -
        - -
        -
        Parameters:
        -
        - sBGElId <String> - the id of the slider's background element -
        -
        - sHandleElId <String> - the id of the thumb element -
        -
        - iLeft <int> - the number of pixels the element can move left -
        -
        - iRight <int> - the number of pixels the element can move right -
        -
        - iTickSize <int> - optional parameter for specifying that the element -should move a certain number pixels at a time. -
        -
        - -
        -
        Returns: - - Slider -
        -
        a horizontal slider control
        -
        - -
        - -
        -
        -

        - YAHOO.widget.Slider.getSliderRegion

        -
        - - - static - - Slider - YAHOO.widget.Slider.getSliderRegion - ( - - - sBGElId - - - , - sHandleElId - - - , - iLeft - - - , - iRight - - - , - iUp - - - , - iDown - - - , - iTickSize - - - ) - - -
        - Factory method for creating a slider region like the one in the color -picker example -
        - -
        - -
        -
        Parameters:
        -
        - sBGElId <String> - the id of the slider's background element -
        -
        - sHandleElId <String> - the id of the thumb element -
        -
        - iLeft <int> - the number of pixels the element can move left -
        -
        - iRight <int> - the number of pixels the element can move right -
        -
        - iUp <int> - the number of pixels the element can move up -
        -
        - iDown <int> - the number of pixels the element can move down -
        -
        - iTickSize <int> - optional parameter for specifying that the element -should move a certain number pixels at a time. -
        -
        - -
        -
        Returns: - - Slider -
        -
        a slider region control
        -
        - -
        - -
        -
        -

        - YAHOO.widget.Slider.getVertSlider

        -
        - - - static - - Slider - YAHOO.widget.Slider.getVertSlider - ( - - - sBGElId - - - , - sHandleElId - - - , - iUp - - - , - iDown - - - , - iTickSize - - - ) - - -
        - Factory method for creating a vertical slider -
        - -
        - -
        -
        Parameters:
        -
        - sBGElId <String> - the id of the slider's background element -
        -
        - sHandleElId <String> - the id of the thumb element -
        -
        - iUp <int> - the number of pixels the element can move up -
        -
        - iDown <int> - the number of pixels the element can move down -
        -
        - iTickSize <int> - optional parameter for specifying that the element -should move a certain number pixels at a time. -
        -
        - -
        -
        Returns: - - Slider -
        -
        a vertical slider control
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Events

        -
        -

        - change

        -
        - - - - - change - - ( - - - newOffset|x - - - , - y - - - ) - - - -
        - Event the fires when the value of the control changes. If -the control is animated the event will fire every point -along the way. -
        - -
        - - -
        -
        Parameters:
        -
        - newOffset|x <int> - the new offset for normal sliders, or the new -x offset for region sliders -
        -
        - y <int> - the number of pixels the thumb has moved on the y axis -(region sliders only) -
        -
        - - -
        - -
        -
        -

        - slideEnd

        -
        - - - - - slideEnd - - ( - ) - - - -
        - Event that fires at the end of a slider thumb move -
        - -
        - - - - -
        - -
        -
        -

        - slideStart

        -
        - - - - - slideStart - - ( - ) - - - -
        - Event that fires at the beginning of a slider thumb move. -
        - -
        - - - - -
        - -
        -
        -
        -
        - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.SliderThumb.html b/www/extras/yui/docs/YAHOO.widget.SliderThumb.html deleted file mode 100644 index 0f6874659..000000000 --- a/www/extras/yui/docs/YAHOO.widget.SliderThumb.html +++ /dev/null @@ -1,858 +0,0 @@ - - - - API: slider YAHOO.widget.SliderThumb (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Slider Widget  2.2.2

        -

        - Yahoo! UI Library - > slider - > YAHOO.widget.SliderThumb - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.SliderThumb - - - extends YAHOO.util.DD - - - - - - -

        - - - - - -
        - A drag and drop implementation to be used as the thumb of a slider. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.SliderThumb - - ( - - - - id - - , - sGroup - - , - iLeft - - , - iRight - - , - iUp - - , - iDown - - , - iTickSize - ) - -
        -
        -
        Parameters:
        -
        - id - <String> - - the id of the slider html element -
        -
        - sGroup - <String> - - the group of related DragDrop items -
        -
        - iLeft - <int> - - the number of pixels the element can move left -
        -
        - iRight - <int> - - the number of pixels the element can move right -
        -
        - iUp - <int> - - the number of pixels the element can move up -
        -
        - iDown - <int> - - the number of pixels the element can move down -
        -
        - iTickSize - <int> - - optional parameter for specifying that the element -should move a certain number pixels at a time. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _graduated - - private boolean -

        -
        -
        - The slider is _graduated if there is a tick interval defined -
        -
        - - - - -
        -

        _isHoriz - - private boolean -

        -
        -
        - Flag used to figure out if this is a horizontal or vertical slider -
        -
        - - - - -
        -

        _prevVal - - private int -

        -
        -
        - Cache the last value so we can check for change -
        -
        - - - - -
        -

        isTarget - - private object -

        -
        -
        - Overrides the isTarget property in YAHOO.util.DragDrop -
        -
        - - - - -
        -

        maintainOffset - - private boolean -

        -
        -
        - Informs the drag and drop util that the offsets should remain when -resetting the constraints. This preserves the slider value when -the constraints are reset -
        -
        - - - - -
        -

        parentElId - - string -

        -
        -
        - The id of the thumbs parent HTML element (the slider background -element). -
        -
        - - - - -
        -

        scroll - - private object -

        -
        -
        - Turns off the autoscroll feature in drag and drop -
        -
        - - - - -
        -

        startOffset - - [int, int] -

        -
        -
        - The (X and Y) difference between the thumb location and its parent -(the slider background) when the control is instantiated. -
        -
        - - - - -
        -

        tickSize - - private int -

        -
        -
        - The tick size for this slider -
        -
        - - - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.util.DD:

        -
        - - - scroll - -
        -
        - - -
        -

        Methods

        -
        -

        - clearTicks

        -
        - - - - - void - clearTicks - ( - ) - - -
        - Clear's the slider's ticks -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getOffsetFromParent

        -
        - - - - - void - getOffsetFromParent - ( - - - parentPos - - - ) - - -
        - Returns the difference between the location of the thumb and its parent. -
        - -
        - -
        -
        Parameters:
        -
        - parentPos <[int, int]> - Optionally accepts the position of the parent -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getValue

        -
        - - - - - int - getValue - ( - ) - - -
        - Gets the current offset from the element's start position in -pixels. -
        - -
        - - -
        -
        Returns: - - int -
        -
        the number of pixels (positive or negative) the -slider has moved from the start position.
        -
        - -
        - -
        -
        -

        - getXValue

        -
        - - - - - int - getXValue - ( - ) - - -
        - Gets the current X offset from the element's start position in -pixels. -
        - -
        - - -
        -
        Returns: - - int -
        -
        the number of pixels (positive or negative) the -slider has moved horizontally from the start position.
        -
        - -
        - -
        -
        -

        - getYValue

        -
        - - - - - int - getYValue - ( - ) - - -
        - Gets the current Y offset from the element's start position in -pixels. -
        - -
        - - -
        -
        Returns: - - int -
        -
        the number of pixels (positive or negative) the -slider has moved vertically from the start position.
        -
        - -
        - -
        -
        -

        - initSlider

        -
        - - - - - void - initSlider - ( - - - iLeft - - - , - iRight - - - , - iUp - - - , - iDown - - - , - iTickSize - - - ) - - -
        - Set up the slider, must be called in the constructor of all subclasses -
        - -
        - -
        -
        Parameters:
        -
        - iLeft <int> - the number of pixels the element can move left -
        -
        - iRight <int> - the number of pixels the element can move right -
        -
        - iUp <int> - the number of pixels the element can move up -
        -
        - iDown <int> - the number of pixels the element can move down -
        -
        - iTickSize <int> - the width of the tick interval. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onChange

        -
        - - private - - - void - onChange - ( - ) - - -
        - The onchange event for the handle/thumb is delegated to the YAHOO.widget.Slider -instance it belongs to. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - string - toString - ( - ) - - -
        - Thumb toString -
        - -
        - - -
        -
        Returns: - - string -
        -
        string representation of the instance
        -
        - -
        - -
        -
        -
        -
        - -
        -

        Methods inherited from YAHOO.util.DD:

        - -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.TVAnim.html b/www/extras/yui/docs/YAHOO.widget.TVAnim.html deleted file mode 100644 index 8a1387aa0..000000000 --- a/www/extras/yui/docs/YAHOO.widget.TVAnim.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - API: treeview YAHOO.widget.TVAnim (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - > YAHOO.widget.TVAnim - -

        -
        - -
        -
        -
        - - -

        - - - static - - Class YAHOO.widget.TVAnim - - - - - - - -

        - - - - - -
        - A static factory class for tree view expand/collapse animations -
        - - -
        -

        Properties

        -
        -

        FADE_IN - - static string -

        -
        -
        - Constant for the fade in animation -
        -
        - - - - -
        -

        FADE_OUT - - static string -

        -
        -
        - Constant for the fade out animation -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - getAnim

        -
        - - - static - - YAHOO.util.Animation - getAnim - ( - - - type - - - , - el - - - , - callback - - - ) - - -
        - Returns a ygAnim instance of the given type -
        - -
        - -
        -
        Parameters:
        -
        - type <string> - the type of animation -
        -
        - el <HTMLElement> - the element to element (probably the children div) -
        -
        - callback <function> - function to invoke when the animation is done. -
        -
        - -
        -
        Returns: - - YAHOO.util.Animation -
        -
        the animation instance
        -
        - -
        - -
        -
        -

        - isValid

        -
        - - - static - - boolean - isValid - ( - - - type - - - ) - - -
        - Returns true if the specified animation class is available -
        - -
        - -
        -
        Parameters:
        -
        - type <string> - the type of animation -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if valid, false if not
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.TVFadeIn.html b/www/extras/yui/docs/YAHOO.widget.TVFadeIn.html deleted file mode 100644 index adb9c0a05..000000000 --- a/www/extras/yui/docs/YAHOO.widget.TVFadeIn.html +++ /dev/null @@ -1,349 +0,0 @@ - - - - API: treeview YAHOO.widget.TVFadeIn (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - > YAHOO.widget.TVFadeIn - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.TVFadeIn - - - - - - - -

        - - - - - -
        - A 1/2 second fade-in animation. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.TVFadeIn - - ( - - - - el - - , - callback - ) - -
        -
        -
        Parameters:
        -
        - el - <HTMLElement> - - the element to animate -
        -
        - callback - <function> - - function to invoke when the animation is finished -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        callback - - function -

        -
        -
        - the callback to invoke when the animation is complete -
        -
        - - - - -
        -

        el - - HTMLElement -

        -
        -
        - The element to animate -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - animate

        -
        - - - - - void - animate - ( - ) - - -
        - Performs the animation -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onComplete

        -
        - - - - - void - onComplete - ( - ) - - -
        - Clean up and invoke callback -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - string - toString - ( - ) - - -
        - toString -
        - -
        - - -
        -
        Returns: - - string -
        -
        the string representation of the instance
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.TVFadeOut.html b/www/extras/yui/docs/YAHOO.widget.TVFadeOut.html deleted file mode 100644 index 3b66ac63c..000000000 --- a/www/extras/yui/docs/YAHOO.widget.TVFadeOut.html +++ /dev/null @@ -1,349 +0,0 @@ - - - - API: treeview YAHOO.widget.TVFadeOut (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - > YAHOO.widget.TVFadeOut - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.TVFadeOut - - - - - - - -

        - - - - - -
        - A 1/2 second fade out animation. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.TVFadeOut - - ( - - - - el - - , - callback - ) - -
        -
        -
        Parameters:
        -
        - el - <HTMLElement> - - the element to animate -
        -
        - callback - <Function> - - function to invoke when the animation is finished -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        callback - - function -

        -
        -
        - the callback to invoke when the animation is complete -
        -
        - - - - -
        -

        el - - HTMLElement -

        -
        -
        - The element to animate -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Methods

        -
        -

        - animate

        -
        - - - - - void - animate - ( - ) - - -
        - Performs the animation -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onComplete

        -
        - - - - - void - onComplete - ( - ) - - -
        - Clean up and invoke callback -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - string - toString - ( - ) - - -
        - toString -
        - -
        - - -
        -
        Returns: - - string -
        -
        the string representation of the instance
        -
        - -
        - -
        -
        -
        -
        - - - - - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.Tab.html b/www/extras/yui/docs/YAHOO.widget.Tab.html deleted file mode 100644 index f46cc38ae..000000000 --- a/www/extras/yui/docs/YAHOO.widget.Tab.html +++ /dev/null @@ -1,995 +0,0 @@ - - - - API: tabview YAHOO.widget.Tab (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        tabview  2.2.2

        -

        - Yahoo! UI Library - > tabview - > YAHOO.widget.Tab - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.Tab - - - extends YAHOO.util.Element - - - - - - -

        - - - - - -
        - A representation of a Tab's label and content. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.Tab - - ( - - - - element - - , - properties - ) - -
        -
        -
        Parameters:
        -
        - element - <HTMLElement | String> - - (optional) The html element that -represents the TabView. An element will be created if none provided. -
        -
        - properties - <Object> - - A key map of initial properties -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        ACTIVE_CLASSNAME - - String -

        -
        -
        - The class name applied to active tabs. -
        -
        - - -
        - Default Value: "on" -
        - - -
        -

        dataConnection - - Object -

        -
        -
        - Provides a reference to the connection request object when data is -loaded dynamically. -
        -
        - - - - -
        -

        DISABLED_CLASSNAME - - String -

        -
        -
        - The class name applied to disabled tabs. -
        -
        - - -
        - Default Value: "disabled" -
        - - -
        -

        LABEL_INNER_TAGNAME - - String -

        -
        -
        - The default tag name for a Tab's inner element. -
        -
        - - -
        - Default Value: "em" -
        - - -
        -

        loadHandler - - object -

        -
        -
        - Object containing success and failure callbacks for loading data. -
        -
        - - - - -
        -

        LOADING_CLASSNAME - - String -

        -
        -
        - The class name applied to dynamic tabs while loading. -
        -
        - - -
        - Default Value: "disabled" -
        - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.util.Element:

        -
        - - - DOM_EVENTS - -
        -
        -
        -

        Properties inherited from YAHOO.util.AttributeProvider:

        -
        - - - _configs - -
        -
        -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Methods

        -
        -

        - initAttributes

        -
        - - - - - void - initAttributes - ( - - - attr - - - ) - - -
        - setAttributeConfigs TabView specific properties. -
        - -
        - -
        -
        Parameters:
        -
        - attr <Object> - Hash of initial attributes -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - void - toString - ( - ) - - -
        - Provides a readable name for the tab. -
        - -
        - - -
        -
        Returns: - - void -
        -
        String
        -
        - -
        - -
        -
        -
        -
        - - - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Events

        -
        -

        - activeChange

        -
        - - - - - activeChange - - ( - ) - - - -
        - Fires after the active state is changed. -

        See: Element.addListener

        -

        Event fields:
        -<String> type activeChange
        -<Boolean> -prevValue the previous value
        -<Boolean> -newValue the updated value

        -

        Usage:
        -var handler = function(e) {var previous = e.prevValue};
        -myTabs.addListener('activeChange', handler);

        -
        - -
        - - - - -
        - -
        -
        -

        - beforeActiveChange

        -
        - - - - - beforeActiveChange - - ( - ) - - - -
        - Fires before the active state is changed. -

        See: Element.addListener

        -

        If handler returns false, the change will be cancelled, and the value will not -be set.

        -

        Event fields:
        -<String> type beforeActiveChange
        -<Boolean> -prevValue the current value
        -<Boolean> -newValue the new value

        -

        Usage:
        -var handler = function(e) {var previous = e.prevValue};
        -myTabs.addListener('beforeActiveChange', handler);

        -
        - -
        - - - - -
        - -
        -
        -

        - beforeContentChange

        -
        - - - - - beforeContentChange - - ( - ) - - - -
        - Fires before the tab content is changed. -

        See: Element.addListener

        -

        If handler returns false, the change will be cancelled, and the value will not -be set.

        -

        Event fields:
        -<String> type beforeContentChange
        -<String> -prevValue the current value
        -<String> -newValue the new value

        -

        Usage:
        -var handler = function(e) {var previous = e.prevValue};
        -myTabs.addListener('beforeContentChange', handler);

        -
        - -
        - - - - -
        - -
        -
        -

        - beforeLabelChange

        -
        - - - - - beforeLabelChange - - ( - ) - - - -
        - Fires before the tab label is changed. -

        See: Element.addListener

        -

        If handler returns false, the change will be cancelled, and the value will not -be set.

        -

        Event fields:
        -<String> type beforeLabelChange
        -<String> -prevValue the current value
        -<String> -newValue the new value

        -

        Usage:
        -var handler = function(e) {var previous = e.prevValue};
        -myTabs.addListener('beforeLabelChange', handler);

        -
        - -
        - - - - -
        - -
        -
        -

        - contentChange

        -
        - - - - - contentChange - - ( - ) - - - -
        - Fires after the tab content is changed. -

        See: Element.addListener

        -

        Event fields:
        -<String> type contentChange
        -<String> -prevValue the previous value
        -<Boolean> -newValue the updated value

        -

        Usage:
        -var handler = function(e) {var previous = e.prevValue};
        -myTabs.addListener('contentChange', handler);

        -
        - -
        - - - - -
        - -
        -
        -

        - labelChange

        -
        - - - - - labelChange - - ( - ) - - - -
        - Fires after the tab label is changed. -

        See: Element.addListener

        -

        Event fields:
        -<String> type labelChange
        -<String> -prevValue the previous value
        -<String> -newValue the updated value

        -

        Usage:
        -var handler = function(e) {var previous = e.prevValue};
        -myTabs.addListener('labelChange', handler);

        -
        - -
        - - - - -
        - -
        -
        -
        -
        - - -
        -

        Events inherited from YAHOO.util.Element:

        -
        - - - available, - contentReady - -
        -
        - -
        -

        Configuration Attributes

        -
        -

        activationEvent - - String -

        -
        -
        - The event that triggers the tab's activation. -
        -
        - - - -
        -

        active - - Boolean -

        -
        -
        - Whether or not the tab is currently active. -If a dataSrc is set for the tab, the content will be loaded from -the given source. -
        -
        - - - -
        -

        cacheData - - Boolean -

        -
        -
        - Whether or not content should be reloaded for every view. -
        -
        - - -
        - Default Value: false -
        - -
        -

        content - - String -

        -
        -
        - The tab's content. -
        -
        - - - -
        -

        contentEl - - HTMLElement -

        -
        -
        - The HTMLElement that contains the tab's content. -
        -
        - - - -
        -

        contentVisible - - Boolean -

        -
        -
        - The Whether or not the tab's content is visible. -
        -
        - - -
        - Default Value: false -
        - -
        -

        dataLoaded - - Boolean -

        -
        -
        - Whether or not any data has been loaded from the server. -
        -
        - - - -
        -

        dataSrc - - String -

        -
        -
        - The tab's data source, used for loading content dynamically. -
        -
        - - - -
        -

        dataTimeout - - Number -

        -
        -
        - Number if milliseconds before aborting and calling failure handler. -
        -
        - - -
        - Default Value: null -
        - -
        -

        disabled - - Boolean -

        -
        -
        - Whether or not the tab is disabled. -
        -
        - - - -
        -

        href - - String -

        -
        -
        - The href of the tab's anchor element. -
        -
        - - -
        - Default Value: '#' -
        - -
        -

        label - - String -

        -
        -
        - The tab's label text (or innerHTML). -
        -
        - - - -
        -

        labelEl - - HTMLElement -

        -
        -
        - The element that contains the tab's label. -
        -
        - - - -
        -

        loadMethod - - String -

        -
        -
        - The method to use for the data request. -
        -
        - - -
        - Default Value: "GET" -
        - -
        - -
        -
        - -
        -

        Configuration attributes inherited from YAHOO.util.Element:

        -
        - - - element - -
        -
        - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.TabView.html b/www/extras/yui/docs/YAHOO.widget.TabView.html deleted file mode 100644 index 5cd3e7c88..000000000 --- a/www/extras/yui/docs/YAHOO.widget.TabView.html +++ /dev/null @@ -1,1065 +0,0 @@ - - - - API: tabview YAHOO.widget.TabView (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        tabview  2.2.2

        -

        - Yahoo! UI Library - > tabview - > YAHOO.widget.TabView - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.TabView - - - extends YAHOO.util.Element - - - - - - -

        - - - - - -
        - A widget to control tabbed views. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.TabView - - ( - - - - el(optional) - - , - attr - ) - -
        -
        -
        Parameters:
        -
        - el(optional) - <HTMLElement | String | Object> - - The html -element that represents the TabView, or the attribute object to use. -An element will be created if none provided. -
        -
        - attr - <Object> - - (optional) A key map of the tabView's -initial attributes. Ignored if first arg is attributes object. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _contentParent - - private HTMLElement -

        -
        -
        - The container of the tabView's content elements. -
        -
        - - - - -
        -

        _tabParent - - private HTMLElement -

        -
        -
        - The container of the tabView's label elements. -
        -
        - - - - -
        -

        CLASSNAME - - object -

        -
        -
        - The className to add when building from scratch. -
        -
        - - -
        - Default Value: "navset" -
        - - -
        -

        CONTENT_PARENT_CLASSNAME - - object -

        -
        -
        - The className of the HTMLElement containing the TabView's label elements -to look for when building from existing markup, or to add when building -from scratch. -All childNodes of the content container are treated as content elements when -building from existing markup. -
        -
        - - -
        - Default Value: "nav-content" -
        - - -
        -

        TAB_PARENT_CLASSNAME - - object -

        -
        -
        - The className of the HTMLElement containing the TabView's tab elements -to look for when building from existing markup, or to add when building -from scratch. -All childNodes of the tab container are treated as Tabs when building -from existing markup. -
        -
        - - -
        - Default Value: "nav" -
        - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.util.Element:

        -
        - - - DOM_EVENTS - -
        -
        -
        -

        Properties inherited from YAHOO.util.AttributeProvider:

        -
        - - - _configs - -
        -
        -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Methods

        -
        -

        - addTab

        -
        - - - - - void - addTab - ( - - - tab - - - , - index - - - ) - - -
        - Adds a Tab to the TabView instance. -If no index is specified, the tab is added to the end of the tab list. -
        - -
        - -
        -
        Parameters:
        -
        - tab <YAHOO.widget.Tab> - A Tab instance to add. -
        -
        - index <Integer> - The position to add the tab. -
        -
        - -
        -
        Returns: - - void -
        -
        void
        -
        - -
        - -
        -
        -

        - contentTransition

        -
        - - - - - void - contentTransition - ( - ) - - -
        - The transiton to use when switching between tabs. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - createTabs

        -
        - - private - - - void - createTabs - ( - - - elements - - - ) - - -
        - Creates Tab instances from a collection of HTMLElements. -
        - -
        - -
        -
        Parameters:
        -
        - elements <Array|HTMLCollection> - The elements to use for Tabs. -
        -
        - -
        -
        Returns: - - void -
        -
        void
        -
        - -
        - -
        -
        -

        - DOMEventHandler

        -
        - - - - - void - DOMEventHandler - ( - - - e - - - ) - - -
        - Routes childNode events. -
        - -
        - -
        -
        Parameters:
        -
        - e <event> - The Dom event that is being handled. -
        -
        - -
        -
        Returns: - - void -
        -
        void
        -
        - -
        - -
        -
        -

        - getTab

        -
        - - - - - void - getTab - ( - - - index - - - ) - - -
        - Returns the Tab instance at the specified index. -
        - -
        - -
        -
        Parameters:
        -
        - index <Integer> - The position of the Tab. -
        -
        - -
        -
        Returns: - - void -
        -
        YAHOO.widget.Tab
        -
        - -
        - -
        -
        -

        - getTabIndex

        -
        - - - - - void - getTabIndex - ( - - - tab - - - ) - - -
        - Returns the index of given tab. -
        - -
        - -
        -
        Parameters:
        -
        - tab <YAHOO.widget.Tab> - The tab whose index will be returned. -
        -
        - -
        -
        Returns: - - void -
        -
        int
        -
        - -
        - -
        -
        -

        - initAttributes

        -
        - - - - - void - initAttributes - ( - - - attr - - - ) - - -
        - setAttributeConfigs TabView specific properties. -
        - -
        - -
        -
        Parameters:
        -
        - attr <Object> - Hash of initial attributes -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeTab

        -
        - - - - - void - removeTab - ( - - - item - - - ) - - -
        - Removes the specified Tab from the TabView. -
        - -
        - -
        -
        Parameters:
        -
        - item <YAHOO.widget.Tab> - The Tab instance to be removed. -
        -
        - -
        -
        Returns: - - void -
        -
        void
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - void - toString - ( - ) - - -
        - Provides a readable name for the TabView instance. -
        - -
        - - -
        -
        Returns: - - void -
        -
        String
        -
        - -
        - -
        -
        -
        -
        - - - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Events

        -
        -

        - activeTabChange

        -
        - - - - - activeTabChange - - ( - ) - - - -
        - Fires after the activeTab is changed. -

        See: Element.addListener

        -

        Event fields:
        -<String> type activeTabChange
        -<YAHOO.widget.Tab> -prevValue the formerly active tab
        -<YAHOO.widget.Tab> -newValue the new active tab

        -

        Usage:
        -var handler = function(e) {var previous = e.prevValue};
        -myTabs.addListener('activeTabChange', handler);

        -
        - -
        - - - - -
        - -
        -
        -

        - beforeActiveTabChange

        -
        - - - - - beforeActiveTabChange - - ( - ) - - - -
        - Fires before the activeTab is changed. -

        See: Element.addListener

        -

        If handler returns false, the change will be cancelled, and the value will not -be set.

        -

        Event fields:
        -<String> type beforeActiveTabChange
        -<YAHOO.widget.Tab> -prevValue the currently active tab
        -<YAHOO.widget.Tab> -newValue the tab to be made active

        -

        Usage:
        -var handler = function(e) {var previous = e.prevValue};
        -myTabs.addListener('beforeActiveTabChange', handler);

        -
        - -
        - - - - -
        - -
        -
        -

        - beforeOrientationChange

        -
        - - - - - beforeOrientationChange - - ( - ) - - - -
        - Fires before the orientation is changed. -

        See: Element.addListener

        -

        If handler returns false, the change will be cancelled, and the value will not -be set.

        -

        Event fields:
        -<String> type beforeOrientationChange
        -<String> -prevValue the current orientation
        -<String> -newValue the new orientation to be applied

        -

        Usage:
        -var handler = function(e) {var previous = e.prevValue};
        -myTabs.addListener('beforeOrientationChange', handler);

        -
        - -
        - - - - -
        - -
        -
        -

        - orientationChange

        -
        - - - - - orientationChange - - ( - ) - - - -
        - Fires after the orientation is changed. -

        See: Element.addListener

        -

        Event fields:
        -<String> type orientationChange
        -<String> -prevValue the former orientation
        -<String> -newValue the new orientation

        -

        Usage:
        -var handler = function(e) {var previous = e.prevValue};
        -myTabs.addListener('orientationChange', handler);

        -
        - -
        - - - - -
        - -
        -
        -
        -
        - - -
        -

        Events inherited from YAHOO.util.Element:

        -
        - - - available, - contentReady - -
        -
        - -
        -

        Configuration Attributes

        -
        -

        activeIndex - - Int -

        -
        -
        - The index of the tab currently active. -
        -
        - - - -
        -

        activeTab - - YAHOO.widget.Tab -

        -
        -
        - The tab currently active. -
        -
        - - - -
        -

        orientation - - String -

        -
        -
        - How the Tabs should be oriented relative to the TabView. -
        -
        - - -
        - Default Value: "top" -
        - -
        -

        tabs - - Array -

        -
        -
        - The Tabs belonging to the TabView instance. -
        -
        - - - -
        - -
        -
        - -
        -

        Configuration attributes inherited from YAHOO.util.Element:

        -
        - - - element - -
        -
        - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.TextNode.html b/www/extras/yui/docs/YAHOO.widget.TextNode.html deleted file mode 100644 index 468602dd4..000000000 --- a/www/extras/yui/docs/YAHOO.widget.TextNode.html +++ /dev/null @@ -1,479 +0,0 @@ - - - - API: treeview YAHOO.widget.TextNode (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - > YAHOO.widget.TextNode - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.TextNode - - - extends YAHOO.widget.Node - - - - - - -

        - - -
        -
        Known Subclasses: -
        - YAHOO.widget.MenuNode -
        -
        - - - -
        - The default node presentation. The first parameter should be -either a string that will be used as the node's label, or an object -that has a string propery called label. By default, the clicking the -label will toggle the expanded/collapsed state of the node. By -changing the href property of the instance, this behavior can be -changed so that the label will go to the specified href. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.TextNode - - ( - - - - oData - - , - oParent - - , - expanded - ) - -
        -
        -
        Parameters:
        -
        - oData - <object> - - a string or object containing the data that will -be used to render this node -
        -
        - oParent - <YAHOO.widget.Node> - - this node's parent node -
        -
        - expanded - <boolean> - - the initial expanded/collapsed state -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        label - - string -

        -
        -
        - The text for the label. It is assumed that the oData parameter will -either be a string that will be used as the label, or an object that -has a property called "label" that we will use. -
        -
        - - - - -
        -

        labelElId - - string -

        -
        -
        - The derived element id of the label for this node -
        -
        - - - - -
        -

        labelStyle - - string -

        -
        -
        - The CSS class for the label href. Defaults to ygtvlabel, but can be -overridden to provide a custom presentation for a specific node. -
        -
        - - - - -
        - - -
        -
        - - -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Methods

        -
        -

        - getLabelEl

        -
        - - - - - object - getLabelEl - ( - ) - - -
        - Returns the label element -
        - -
        - - -
        -
        Returns: - - object -
        -
        the element
        -
        - -
        - -
        -
        -

        - onLabelClick

        -
        - - - - - void - onLabelClick - ( - - - me - - - ) - - -
        - Executed when the label is clicked. Fires the labelClick custom event. -
        - -
        - -
        -
        Parameters:
        -
        - me <Node> - this node -
        -
        - -
        -
        Returns: - - void -
        -
        false to cancel the anchor click
        -
        - -
        - -
        -
        -
        -
        - - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - - - -
        -

        Events inherited from YAHOO.widget.Node:

        -
        - - - parentChange - -
        -
        - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.Tooltip.html b/www/extras/yui/docs/YAHOO.widget.Tooltip.html deleted file mode 100644 index 0a3378e17..000000000 --- a/www/extras/yui/docs/YAHOO.widget.Tooltip.html +++ /dev/null @@ -1,1255 +0,0 @@ - - - - API: container YAHOO.widget.Tooltip (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - > YAHOO.widget.Tooltip - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.Tooltip - - - extends YAHOO.widget.Overlay - - - - - - -

        - - - - - -
        - Tooltip is an implementation of Overlay that behaves like an OS tooltip, displaying when the user mouses over a particular element, and disappearing on mouse out. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.Tooltip - - ( - - - - el - - - , - userConfig - ) - -
        -
        -
        Parameters:
        -
        - el - <String> - - The element ID representing the Tooltip OR -
        -
        - el - <HTMLElement> - - The element representing the Tooltip -
        -
        - userConfig - <Object> - - The configuration object literal containing the configuration that should be set for this Overlay. See configuration documentation for more details. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        showProcId - - int -

        -
        -
        - The unique process ID associated with the thread responsible for showing the Tooltip. -
        -
        - - - - -
        -

        YAHOO.widget.Tooltip._DEFAULT_CONFIG - - private final Object -

        -
        -
        - Constant representing the Tooltip's configuration properties -
        -
        - - - - -
        -

        YAHOO.widget.Tooltip.CSS_TOOLTIP - - static final String -

        -
        -
        - Constant representing the Tooltip CSS class -
        -
        - - - - -
        - - -
        -
        - - - - -
        -

        Methods

        -
        -

        - _removeEventListeners

        -
        - - protected - - - void - _removeEventListeners - ( - ) - - -
        - Removes all of the DOM event handlers from the HTML element(s) -that trigger the display of the tooltip. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configContainer

        -
        - - - - - void - configContainer - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "container" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configContext

        -
        - - - - - void - configContext - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "context" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - configText

        -
        - - - - - void - configText - ( - - - type - - - , - args - - - , - obj - - - ) - - -
        - The default event handler fired when the "text" property is changed. -
        - -
        - -
        -
        Parameters:
        -
        - type <String> - The CustomEvent type (usually the property name) -
        -
        - args <Object[]> - The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property. -
        -
        - obj <Object> - The scope object. For configuration handlers, this will usually equal the owner. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - destroy

        -
        - - - - - void - destroy - ( - ) - - -
        - Removes the Tooltip element from the DOM and sets all child elements to null. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - doHide

        -
        - - - - - void - doHide - ( - ) - - -
        - Sets the timeout for the auto-dismiss delay, which by default is 5 seconds, meaning that a tooltip will automatically dismiss itself after 5 seconds of being displayed. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - doShow

        -
        - - - - - Number - doShow - ( - - - e - - - ) - - -
        - Processes the showing of the Tooltip by setting the timeout delay and offset of the Tooltip. -
        - -
        - -
        -
        Parameters:
        -
        - e <DOMEvent> - The current DOM event -
        -
        - -
        -
        Returns: - - Number -
        -
        The process ID of the timeout function associated with doShow
        -
        - -
        - -
        -
        -

        - init

        -
        - - - - - void - init - ( - - - el - - - - - , - userConfig - - - ) - - -
        - The Tooltip initialization method. This method is automatically called by the constructor. A Tooltip is automatically rendered by the init method, and it also is set to be invisible by default, and constrained to viewport by default as well. -
        - -
        - -
        -
        Parameters:
        -
        - el <String> - The element ID representing the Tooltip OR -
        -
        - el <HTMLElement> - The element representing the Tooltip -
        -
        - userConfig <Object> - The configuration object literal containing the configuration that should be set for this Tooltip. See configuration documentation for more details. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - initDefaultConfig

        -
        - - - - - void - initDefaultConfig - ( - ) - - -
        - Initializes the class's configurable properties which can be changed using the Overlay's Config object (cfg). -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onContextMouseMove

        -
        - - - - - void - onContextMouseMove - ( - - - e - - - , - obj - - - ) - - -
        - The default event handler fired when the user moves the mouse while over the context element. -
        - -
        - -
        -
        Parameters:
        -
        - e <DOMEvent> - The current DOM event -
        -
        - obj <Object> - The object argument -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onContextMouseOut

        -
        - - - - - void - onContextMouseOut - ( - - - e - - - , - obj - - - ) - - -
        - The default event handler fired when the user mouses out of the context element. -
        - -
        - -
        -
        Parameters:
        -
        - e <DOMEvent> - The current DOM event -
        -
        - obj <Object> - The object argument -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onContextMouseOver

        -
        - - - - - void - onContextMouseOver - ( - - - e - - - , - obj - - - ) - - -
        - The default event handler fired when the user mouses over the context element. -
        - -
        - -
        -
        Parameters:
        -
        - e <DOMEvent> - The current DOM event -
        -
        - obj <Object> - The object argument -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - preventOverlay

        -
        - - - - - void - preventOverlay - ( - - - pageX - - - , - pageY - - - ) - - -
        - Fired when the Tooltip is moved, this event handler is used to prevent the Tooltip from overlapping with its context element. -
        - -
        - -
        -
        Parameters:
        -
        - pageX <Number> - The x coordinate position of the mouse pointer -
        -
        - pageY <Number> - The y coordinate position of the mouse pointer -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - String - toString - ( - ) - - -
        - Returns a string representation of the object. -
        - -
        - - -
        -
        Returns: - - String -
        -
        The string representation of the Tooltip
        -
        - -
        - -
        -
        -
        -
        - - - - - - - - - -
        -

        Configuration Attributes

        -
        -

        autodismissdelay - - Number -

        -
        -
        - The number of milliseconds to wait before automatically dismissing a Tooltip after the mouse has been resting on the context element. -
        -
        - - -
        - Default Value: 5000 -
        - -
        -

        container - - HTMLElement/String -

        -
        -
        - Specifies the container element that the Tooltip's markup should be rendered into. -
        -
        - - -
        - Default Value: document.body -
        - -
        -

        context - - HTMLElement[]/String[] -

        -
        -
        - Specifies the element or elements that the Tooltip should be anchored to on mouseover. -
        -
        - - -
        - Default Value: null -
        - -
        -

        hidedelay - - Number -

        -
        -
        - The number of milliseconds to wait before hiding a Tooltip on mouseover. -
        -
        - - -
        - Default Value: 250 -
        - -
        -

        preventoverlap - - Boolean -

        -
        -
        - Specifies whether the Tooltip should be kept from overlapping its context element. -
        -
        - - -
        - Default Value: true -
        - -
        -

        showdelay - - Number -

        -
        -
        - The number of milliseconds to wait before showing a Tooltip on mouseover. -
        -
        - - -
        - Default Value: 200 -
        - -
        -

        text - - String -

        -
        -
        - Specifies the Tooltip's text. -
        -
        - - -
        - Default Value: null -
        - -
        - -
        -
        - -
        -

        Configuration attributes inherited from YAHOO.widget.Module:

        -
        - - - effect, - monitorresize, - visible - -
        -
        -
        -

        Configuration attributes inherited from YAHOO.widget.Overlay:

        -
        - - - constraintoviewport, - context, - fixedcenter, - height, - iframe, - width, - x, - xy, - y, - zIndex - -
        -
        - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO.widget.TreeView.html b/www/extras/yui/docs/YAHOO.widget.TreeView.html deleted file mode 100644 index 85e883523..000000000 --- a/www/extras/yui/docs/YAHOO.widget.TreeView.html +++ /dev/null @@ -1,2168 +0,0 @@ - - - - API: treeview YAHOO.widget.TreeView (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - > YAHOO.widget.TreeView - -

        -
        - -
        -
        -
        - - -

        - - - - - Class YAHOO.widget.TreeView - - - - - - uses - - YAHOO.util.EventProvider - - - - -

        - - - - - -
        - Contains the tree view state data and the root node. -
        - -
        -

        Constructor

        -
        -
        - YAHOO.widget.TreeView - - ( - - - - id - ) - -
        -
        -
        Parameters:
        -
        - id - <string|HTMLElement> - - The id of the element, or the element -itself that the tree will be inserted into. -
        -
        - - -
        -
        -
        -
        - -
        -

        Properties

        -
        -

        _animCount - - private int -

        -
        -
        - The current number of animations that are executing -
        -
        - - - - -
        -

        _collapseAnim - - private string -

        -
        -
        - The animation to use for collapsing children, if any -
        -
        - - - - -
        -

        _el - - private object -

        -
        -
        - The host element for this tree -
        -
        - - - - -
        -

        _expandAnim - - private string -

        -
        -
        - The animation to use for expanding children, if any -
        -
        - - - - -
        -

        _nodes - - private Node[] -

        -
        -
        - Flat collection of all nodes in this tree. This is a sparse -array, so the length property can't be relied upon for a -node count for the tree. -
        -
        - - - - -
        -

        id - - String -

        -
        -
        - The id of tree container element -
        -
        - - - - -
        -

        locked - - boolean -

        -
        -
        - We lock the tree control while waiting for the dynamic loader to return -
        -
        - - - - -
        -

        maxAnim - - int -

        -
        -
        - The maximum number of animations to run at one time. -
        -
        - - - - -
        -

        YAHOO.widget.TreeView.counter - - private static object -

        -
        -
        - Counter for generating a new unique element id -
        -
        - - - - -
        -

        YAHOO.widget.TreeView.nodeCount - - static int -

        -
        -
        - Running count of all nodes created in all trees. This is -used to provide unique identifies for all nodes. Deleting -nodes does not change the nodeCount. -
        -
        - - - - -
        -

        YAHOO.widget.TreeView.trees - - private static Array -

        -
        -
        - Global cache of tree instances -
        -
        - - - - -
        - - -
        -
        - -
        -

        Properties inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Methods

        -
        -

        - _deleteNode

        -
        - - private - - - void - _deleteNode - ( - ) - - -
        - Deletes the node and recurses children -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - animateCollapse

        -
        - - - - - boolean - animateCollapse - ( - - - el - - - , - node - - - ) - - -
        - Perform the collapse animation if configured, or just show the -element if not configured or too many animations are in progress -
        - -
        - -
        -
        Parameters:
        -
        - el <HTMLElement> - the element to animate -
        -
        - node <YAHOO.util.Node> - the node that was expanded -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if animation could be invoked, false otherwise
        -
        - -
        - -
        -
        -

        - animateExpand

        -
        - - - - - boolean - animateExpand - ( - - - el - - - , - node - - - ) - - -
        - Perform the expand animation if configured, or just show the -element if not configured or too many animations are in progress -
        - -
        - -
        -
        Parameters:
        -
        - el <HTMLElement> - the element to animate -
        -
        - node <YAHOO.util.Node> - the node that was expanded -
        -
        - -
        -
        Returns: - - boolean -
        -
        true if animation could be invoked, false otherwise
        -
        - -
        - -
        -
        -

        - collapseAll

        -
        - - - - - void - collapseAll - ( - ) - - -
        - Collapses all expanded child nodes in the entire tree. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - collapseComplete

        -
        - - - - - void - collapseComplete - ( - ) - - -
        - Function executed when the collapse animation completes -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - draw

        -
        - - - - - void - draw - ( - ) - - -
        - Renders the tree boilerplate and visible nodes -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - expandAll

        -
        - - - - - void - expandAll - ( - ) - - -
        - Expands all child nodes. Note: this conflicts with the "multiExpand" -node property. If expand all is called in a tree with nodes that -do not allow multiple siblings to be displayed, only the last sibling -will be expanded. -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - expandComplete

        -
        - - - - - void - expandComplete - ( - ) - - -
        - Function executed when the expand animation completes -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - generateId

        -
        - - private - - - void - generateId - ( - ) - - -
        - Generates an unique id for an element if it doesn't yet have one -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - getEl

        -
        - - - - - HTMLElement - getEl - ( - ) - - -
        - Returns the tree's host element -
        - -
        - - -
        -
        Returns: - - HTMLElement -
        -
        the host element
        -
        - -
        - -
        -
        -

        - getNodeByIndex

        -
        - - - - - Node - getNodeByIndex - ( - - - nodeIndex - - - ) - - -
        - Returns a node in the tree that has the specified index (this index -is created internally, so this function probably will only be used -in html generated for a given node.) -
        - -
        - -
        -
        Parameters:
        -
        - nodeIndex <int> - the index of the node wanted -
        -
        - -
        -
        Returns: - - Node -
        -
        the node with index=nodeIndex, null if no match
        -
        - -
        - -
        -
        -

        - getNodeByProperty

        -
        - - - - - Node - getNodeByProperty - ( - - - property - - - , - value - - - ) - - -
        - Returns a node that has a matching property and value in the data -object that was passed into its constructor. -
        - -
        - -
        -
        Parameters:
        -
        - property <object> - the property to search (usually a string) -
        -
        - value <object> - the value we want to find (usuall an int or string) -
        -
        - -
        -
        Returns: - - Node -
        -
        the matching node, null if no match
        -
        - -
        - -
        -
        -

        - getNodesByProperty

        -
        - - - - - Array - getNodesByProperty - ( - - - property - - - , - value - - - ) - - -
        - Returns a collection of nodes that have a matching property -and value in the data object that was passed into its constructor. -
        - -
        - -
        -
        Parameters:
        -
        - property <object> - the property to search (usually a string) -
        -
        - value <object> - the value we want to find (usuall an int or string) -
        -
        - -
        -
        Returns: - - Array -
        -
        the matching collection of nodes, null if no match
        -
        - -
        - -
        -
        -

        - getRoot

        -
        - - - - - Node - getRoot - ( - ) - - -
        - Returns the root node of this tree -
        - -
        - - -
        -
        Returns: - - Node -
        -
        the root node
        -
        - -
        - -
        -
        -

        - init

        -
        - - private - - - void - init - ( - ) - - -
        - Initializes the tree -
        - -
        - - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - onCollapse

        -
        - - - - - void - onCollapse - ( - - - node - - - ) - - -
        - Abstract method that is executed when a node is collapsed. -
        - -
        - -
        -
        Parameters:
        -
        - node <Node> - the node that was collapsed. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated use treeobj.subscribe("collapse") instead -
        -
        - -
        -
        -

        - onExpand

        -
        - - - - - void - onExpand - ( - - - node - - - ) - - -
        - Abstract method that is executed when a node is expanded -
        - -
        - -
        -
        Parameters:
        -
        - node <Node> - the node that was expanded -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - Deprecated use treeobj.subscribe("expand") instead -
        -
        - -
        -
        -

        - popNode

        -
        - - - - - void - popNode - ( - - - the - - - ) - - -
        - Removes the node from the tree, preserving the child collection -to make it possible to insert the branch into another part of the -tree, or another tree. -
        - -
        - -
        -
        Parameters:
        -
        - the <Node> - node to remove -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - regNode

        -
        - - private - - - void - regNode - ( - - - node - - - ) - - -
        - Nodes register themselves with the tree instance when they are created. -
        - -
        - -
        -
        Parameters:
        -
        - node <Node> - the node to register -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeChildren

        -
        - - - - - void - removeChildren - ( - - - node - - - ) - - -
        - Deletes this nodes child collection, recursively. Also collapses -the node, and resets the dynamic load flag. The primary use for -this method is to purge a node and allow it to fetch its data -dynamically again. -
        - -
        - -
        -
        Parameters:
        -
        - node <Node> - the node to purge -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - removeNode

        -
        - - - - - boolean - removeNode - ( - - - The - - - , - autoRefresh - - - ) - - -
        - Removes the node and its children, and optionally refreshes the -branch of the tree that was affected. -
        - -
        - -
        -
        Parameters:
        -
        - The <Node> - node to remove -
        -
        - autoRefresh <boolean> - automatically refreshes branch if true -
        -
        - -
        -
        Returns: - - boolean -
        -
        False is there was a problem, true otherwise.
        -
        - -
        - -
        -
        -

        - setCollapseAnim

        -
        - - - - - void - setCollapseAnim - ( - - - the - - - ) - - -
        - Sets up the animation for collapsing children -
        - -
        - -
        -
        Parameters:
        -
        - the <string> - type of animation (acceptable values defined in -YAHOO.widget.TVAnim) -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setDynamicLoad

        -
        - - - - - void - setDynamicLoad - ( - - - fnDataLoader - - - , - iconMode - - - ) - - -
        - Configures this tree to dynamically load all child data -
        - -
        - -
        -
        Parameters:
        -
        - fnDataLoader <function> - the function that will be called to get the data -
        -
        - iconMode <int> - configures the icon that is displayed when a dynamic -load node is expanded the first time without children. By default, the -"collapse" icon will be used. If set to 1, the leaf node icon will be -displayed. -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setExpandAnim

        -
        - - - - - void - setExpandAnim - ( - - - type - - - ) - - -
        - Sets up the animation for expanding children -
        - -
        - -
        -
        Parameters:
        -
        - type <string> - the type of animation (acceptable values defined -in YAHOO.widget.TVAnim) -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - setUpLabel

        -
        - - - - - void - setUpLabel - ( - - - oData - - - ) - - -
        - Sets up the node label -
        - -
        - -
        -
        Parameters:
        -
        - oData <object> - string containing the label, or an object with a label property -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - toString

        -
        - - - - - string - toString - ( - ) - - -
        - TreeView instance toString -
        - -
        - - -
        -
        Returns: - - string -
        -
        string representation of the tree
        -
        - -
        - -
        -
        -

        - YAHOO.widget.TreeView.addHandler

        -
        - - - static - - void - YAHOO.widget.TreeView.addHandler - ( - - - el - - - , - sType - - - , - fn - - - ) - - -
        - Add a DOM event -
        - -
        - -
        -
        Parameters:
        -
        - el <object> - the elment to bind the handler to -
        -
        - sType <string> - the type of event handler -
        -
        - fn <function> - the callback to invoke -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - YAHOO.widget.TreeView.getNode

        -
        - - - static - - Node - YAHOO.widget.TreeView.getNode - ( - - - treeId - - - , - nodeIndex - - - ) - - -
        - Global method for getting a node by its id. Used in the generated -tree html. -
        - -
        - -
        -
        Parameters:
        -
        - treeId <String> - the id of the tree instance -
        -
        - nodeIndex <String> - the index of the node to return -
        -
        - -
        -
        Returns: - - Node -
        -
        the node instance requested, null if not found
        -
        - -
        - -
        -
        -

        - YAHOO.widget.TreeView.getTree

        -
        - - - static - - TreeView - YAHOO.widget.TreeView.getTree - ( - - - treeId - - - ) - - -
        - Global method for getting a tree by its id. Used in the generated -tree html. -
        - -
        - -
        -
        Parameters:
        -
        - treeId <String> - the id of the tree instance -
        -
        - -
        -
        Returns: - - TreeView -
        -
        the tree instance requested, null if not found.
        -
        - -
        - -
        -
        -

        - YAHOO.widget.TreeView.preload

        -
        - - - static - - void - YAHOO.widget.TreeView.preload - ( - - - prefix - - - ) - - -
        - Attempts to preload the images defined in the styles used to draw the tree by -rendering off-screen elements that use the styles. -
        - -
        - -
        -
        Parameters:
        -
        - prefix <string> - the prefix to use to generate the names of the -images to preload, default is ygtv -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -

        - YAHOO.widget.TreeView.removeHandler

        -
        - - - static - - void - YAHOO.widget.TreeView.removeHandler - ( - - - el - - - , - sType - - - , - fn - - - ) - - -
        - Remove a DOM event -
        - -
        - -
        -
        Parameters:
        -
        - el <object> - the elment to bind the handler to -
        -
        - sType <string> - the type of event handler -
        -
        - fn <function> - the callback to invoke -
        -
        - -
        -
        Returns: - - void -
        -
        -
        - -
        - -
        -
        -
        -
        - -
        -

        Methods inherited from YAHOO.util.EventProvider:

        - -
        - -
        -

        Events

        -
        -

        - animComplete

        -
        - - - - - animComplete - - ( - - - node - - - ) - - - -
        - When animation is enabled, this event fires when the animation -completes -
        - -
        - - -
        -
        Parameters:
        -
        - node <YAHOO.widget.Node> - the node that is expanding/collapsing -
        -
        - - -
        - -
        -
        -

        - animStart

        -
        - - - - - animStart - - ( - - - node - - - ) - - - -
        - When animation is enabled, this event fires when the animation -starts -
        - -
        - - -
        -
        Parameters:
        -
        - node <YAHOO.widget.Node> - the node that is expanding/collapsing -
        -
        - - -
        - -
        -
        -

        - collapse

        -
        - - - - - collapse - - ( - - - node - - - ) - - - -
        - Fires when a node is going to be collapsed. Return false to stop -the collapse. -
        - -
        - - -
        -
        Parameters:
        -
        - node <YAHOO.widget.Node> - the node that is collapsing -
        -
        - - -
        - -
        -
        -

        - collapseComplete

        -
        - - - - - collapseComplete - - ( - - - node - - - ) - - - -
        - Fires after a node is successfully collapsed. This event will not fire -if the "collapse" event was cancelled. -
        - -
        - - -
        -
        Parameters:
        -
        - node <YAHOO.widget.Node> - the node that was collapsed -
        -
        - - -
        - -
        -
        -

        - expand

        -
        - - - - - expand - - ( - - - node - - - ) - - - -
        - Fires when a node is going to be expanded. Return false to stop -the collapse. -
        - -
        - - -
        -
        Parameters:
        -
        - node <YAHOO.widget.Node> - the node that is expanding -
        -
        - - -
        - -
        -
        -

        - expandComplete

        -
        - - - - - expandComplete - - ( - - - node - - - ) - - - -
        - Fires after a node is successfully expanded. This event will not fire -if the "expand" event was cancelled. -
        - -
        - - -
        -
        Parameters:
        -
        - node <YAHOO.widget.Node> - the node that was expanded -
        -
        - - -
        - -
        -
        -

        - labelClick

        -
        - - - - - labelClick - - ( - - - node - - - ) - - - -
        - Custom event that is fired when the text node label is clicked. The -custom event is defined on the tree instance, so there is a single -event that handles all nodes in the tree. The node clicked is -provided as an argument -
        - -
        - - -
        -
        Parameters:
        -
        - node <YAHOO.widget.Node> - the node clicked -
        -
        - - -
        - -
        -
        -
        -
        - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/YAHOO_config.html b/www/extras/yui/docs/YAHOO_config.html deleted file mode 100644 index 880e548f2..000000000 --- a/www/extras/yui/docs/YAHOO_config.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - API: yahoo YAHOO_config (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        YAHOO Global  2.2.2

        -

        - Yahoo! UI Library - > yahoo - > YAHOO_config - -

        -
        - -
        -
        -
        - - -

        - - - static - - Class YAHOO_config - - - - - - - -

        - - - - - -
        - YAHOO_config is not included part of the library. Instead it is an object -that can be defined by the implementer immediately before including the -YUI library. The properties included in this object will be used to -configure global properties needed as soon as the library begins to load. -
        - - -
        -

        Properties

        -
        -

        listener - - static object -

        -
        -
        - A reference to a function that will be executed every time a YAHOO module -is loaded. As parameter, this function will receive the version -information for the module. See -YAHOO.env.getVersion for the description of the version data structure. -
        -
        - - - - -
        - - -
        -
        - - - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/assets/ac-js b/www/extras/yui/docs/assets/ac-js deleted file mode 100644 index 4ae671a38..000000000 --- a/www/extras/yui/docs/assets/ac-js +++ /dev/null @@ -1,89 +0,0 @@ -(function() { - var oACDS; - var oAutoComp; - - var propsort = function(a, b) { - //return (a.url > b.url) ? 1 : ((a.url < b.url) ? -1 : 0); - return (a.name.toLowerCase() > b.name.toLowerCase()) ? 1 : ((a.name.toLowerCase() < b.name.toLowerCase()) ? -1 : 0); - } - - var allprops = ALL_YUI_PROPS; - - // allprops.sort(propsort); - - var getResults = function(query) { - var results = []; - if(query && query.length > 0) { - for (var i=0, len=allprops.length; i -1) { - results.push([query,prop]); - } - } - } - - return results; - }; - - // Define Custom Event handlers - var myOnDataReturn = function(sType, aArgs) { - var oAutoComp = aArgs[0]; - var query = aArgs[1]; - var aResults = aArgs[2]; - - if(aResults.length == 0) { - if (query.length > 0) { - oAutoComp.setBody("
        Not found
        "); - } else { - oAutoComp.setBody("
        Start typing to find a property/method/event/config " + - " or browse a module by clicking a link on the left.
        "); - } - } - }; - - var myOnContainerCollapse = function(sType, aArgs) { - var oAutoComp = aArgs[0]; - oAutoComp.setBody("
        Start typing to find a property/method/event/config
        "); - }; - - var myOnItemSelect = function(sType, aArgs) { - var ac = aArgs[0]; - var item = aArgs[2]; - location.href = item[1].url; - }; - - - var init = function() { - - // Instantiate JS Function DataSource - oACDS = new YAHOO.widget.DS_JSFunction(getResults); - oACDS.maxCacheEntries = 30; - - // Instantiate AutoComplete - oAutoComp = new YAHOO.widget.AutoComplete('searchinput','searchresults', oACDS); - oAutoComp.alwaysShowContainer = true; - oAutoComp.queryDelay = 0.2; - oAutoComp.maxResultsDisplayed = 200; - oAutoComp.formatResult = function(oResultItem, query) { - var sMarkup = "" + oResultItem[1].host + ' ' + oResultItem[1].name + ''; - return sMarkup; - }; - - // Subscribe to Custom Events - oAutoComp.dataReturnEvent.subscribe(myOnDataReturn); - oAutoComp.containerCollapseEvent.subscribe(myOnContainerCollapse); - oAutoComp.itemSelectEvent.subscribe(myOnItemSelect); - - // Set initial content in the container - oAutoComp.sendQuery(document.getElementById("searchinput").value); - }; - - var validateForm = function() { - return false; - }; - - init(); - -})(); diff --git a/www/extras/yui/docs/assets/api-js b/www/extras/yui/docs/assets/api-js deleted file mode 100644 index 2dc5e3b47..000000000 --- a/www/extras/yui/docs/assets/api-js +++ /dev/null @@ -1,317 +0,0 @@ -/* -Copyright (c) 2006, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -if(typeof YAHOO=="undefined"){var YAHOO={};} -YAHOO.namespace=function(){var a=arguments,o=null,i,j,d;for(i=0;i-1){return true;}else{return YAHOO.lang.isObject(obj)&&obj.constructor==Array;}},isBoolean:function(obj){return typeof obj=='boolean';},isFunction:function(obj){return typeof obj=='function';},isNull:function(obj){return obj===null;},isNumber:function(obj){return!isNaN(obj);},isObject:function(obj){return typeof obj=='object'||YAHOO.lang.isFunction(obj);},isString:function(obj){return typeof obj=='string';},isUndefined:function(obj){return typeof obj=='undefined';},hasOwnProperty:function(obj,prop){if(Object.prototype.hasOwnProperty){return obj.hasOwnProperty(prop);} -return!YAHOO.lang.isUndefined(obj[prop])&&obj.constructor.prototype[prop]!==obj[prop];},extend:function(subc,superc,overrides){var F=function(){};F.prototype=superc.prototype;subc.prototype=new F();subc.prototype.constructor=subc;subc.superclass=superc.prototype;if(superc.prototype.constructor==Object.prototype.constructor){superc.prototype.constructor=superc;} -if(overrides){for(var i in overrides){subc.prototype[i]=overrides[i];}}},augment:function(r,s){var rp=r.prototype,sp=s.prototype,a=arguments,i,p;if(a[2]){for(i=2;i-1),isSafari=(ua.indexOf('safari')>-1),isGecko=(!isOpera&&!isSafari&&ua.indexOf('gecko')>-1),isIE=(!isOpera&&ua.indexOf('msie')>-1);var patterns={HYPHEN:/(-[a-z])/i};var toCamel=function(property){if(!patterns.HYPHEN.test(property)){return property;} -if(propertyCache[property]){return propertyCache[property];} -while(patterns.HYPHEN.exec(property)){property=property.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());} -propertyCache[property]=property;return property;};if(document.defaultView&&document.defaultView.getComputedStyle){getStyle=function(el,property){var value=null;var computed=document.defaultView.getComputedStyle(el,'');if(computed){value=computed[toCamel(property)];} -return el.style[property]||value;};}else if(document.documentElement.currentStyle&&isIE){getStyle=function(el,property){switch(toCamel(property)){case'opacity':var val=100;try{val=el.filters['DXImageTransform.Microsoft.Alpha'].opacity;}catch(e){try{val=el.filters('alpha').opacity;}catch(e){}} -return val/100;break;default:var value=el.currentStyle?el.currentStyle[property]:null;return(el.style[property]||value);}};}else{getStyle=function(el,property){return el.style[property];};} -if(isIE){setStyle=function(el,property,val){switch(property){case'opacity':if(typeof el.style.filter=='string'){el.style.filter='alpha(opacity='+val*100+')';if(!el.currentStyle||!el.currentStyle.hasLayout){el.style.zoom=1;}} -break;default:el.style[property]=val;}};}else{setStyle=function(el,property,val){el.style[property]=val;};} -YAHOO.util.Dom={get:function(el){if(!el){return null;} -if(typeof el!='string'&&!(el instanceof Array)){return el;} -if(typeof el=='string'){return document.getElementById(el);} -else{var collection=[];for(var i=0,len=el.length;i=this.left&®ion.right<=this.right&®ion.top>=this.top&®ion.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(region){var t=Math.max(this.top,region.top);var r=Math.min(this.right,region.right);var b=Math.min(this.bottom,region.bottom);var l=Math.max(this.left,region.left);if(b>=t&&r>=l){return new YAHOO.util.Region(t,r,b,l);}else{return null;}};YAHOO.util.Region.prototype.union=function(region){var t=Math.min(this.top,region.top);var r=Math.max(this.right,region.right);var b=Math.max(this.bottom,region.bottom);var l=Math.min(this.left,region.left);return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(el){var p=YAHOO.util.Dom.getXY(el);var t=p[1];var r=p[0]+el.offsetWidth;var b=p[1]+el.offsetHeight;var l=p[0];return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Point=function(x,y){if(x instanceof Array){y=x[1];x=x[0];} -this.x=this.right=this.left=this[0]=x;this.y=this.top=this.bottom=this[1]=y;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.2.0",build:"build.77"}); -if(!YAHOO.util.Event){YAHOO.util.Event=function(){var loadComplete=false;var listeners=[];var unloadListeners=[];var legacyEvents=[];var legacyHandlers=[];var retryCount=0;var onAvailStack=[];var legacyMap=[];var counter=0;var lastError=null;return{POLL_RETRYS:200,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,OBJ:3,ADJ_SCOPE:4,isSafari:(/KHTML/gi).test(navigator.userAgent),webkit:function(){var v=navigator.userAgent.match(/AppleWebKit\/([^ ]*)/);if(v&&v[1]){return v[1];} -return null;}(),isIE:(!this.webkit&&!navigator.userAgent.match(/opera/gi)&&navigator.userAgent.match(/msie/gi)),_interval:null,startInterval:function(){if(!this._interval){var self=this;var callback=function(){self._tryPreloadAttach();};this._interval=setInterval(callback,this.POLL_INTERVAL);}},onAvailable:function(p_id,p_fn,p_obj,p_override){onAvailStack.push({id:p_id,fn:p_fn,obj:p_obj,override:p_override,checkReady:false});retryCount=this.POLL_RETRYS;this.startInterval();},onContentReady:function(p_id,p_fn,p_obj,p_override){onAvailStack.push({id:p_id,fn:p_fn,obj:p_obj,override:p_override,checkReady:true});retryCount=this.POLL_RETRYS;this.startInterval();},addListener:function(el,sType,fn,obj,override){if(!fn||!fn.call){return false;} -if(this._isValidCollection(el)){var ok=true;for(var i=0,len=el.length;i=0){cacheItem=listeners[index];} -if(!el||!cacheItem){return false;} -if(this.useLegacyEvent(el,sType)){var legacyIndex=this.getLegacyIndex(el,sType);var llist=legacyHandlers[legacyIndex];if(llist){for(i=0,len=llist.length;i0);} -var notAvail=[];for(var i=0,len=onAvailStack.length;i0){for(var i=0,len=listeners.length;i0){j=listeners.length;while(j){index=j-1;l=listeners[index];if(l){EU.removeListener(l[EU.EL],l[EU.TYPE],l[EU.FN],index);} -j=j-1;} -l=null;EU.clearCache();} -for(i=0,len=legacyEvents.length;i0){param=args[0];} -ret=s.fn.call(scope,param,s.obj);}else{ret=s.fn.call(scope,this.type,args,s.obj);} -if(false===ret){if(!this.silent){} -return false;}}} -return true;},unsubscribeAll:function(){for(var i=0,len=this.subscribers.length;i=0;i--){oldListItems[oldi]=null;}} -this._oContainer._oContent._oBody.innerHTML="";} -var oList=document.createElement("ul");oList=this._oContainer._oContent._oBody.appendChild(oList);for(var i=0;i=18&&nKeyCode<=20)||(nKeyCode==27)||(nKeyCode>=33&&nKeyCode<=35)||(nKeyCode>=36&&nKeyCode<=38)||(nKeyCode==40)||(nKeyCode>=44&&nKeyCode<=45)){return true;} -return false;};YAHOO.widget.AutoComplete.prototype._sendQuery=function(sQuery){if(this.minQueryLength==-1){this._toggleContainer(false);return;} -var aDelimChar=(this.delimChar)?this.delimChar:null;if(aDelimChar){var nDelimIndex=-1;for(var i=aDelimChar.length-1;i>=0;i--){var nNewIndex=sQuery.lastIndexOf(aDelimChar[i]);if(nNewIndex>nDelimIndex){nDelimIndex=nNewIndex;}} -if(aDelimChar[i]==" "){for(var j=aDelimChar.length-1;j>=0;j--){if(sQuery[nDelimIndex-1]==aDelimChar[j]){nDelimIndex--;break;}}} -if(nDelimIndex>-1){var nQueryStart=nDelimIndex+1;while(sQuery.charAt(nQueryStart)==" "){nQueryStart+=1;} -this._sSavedQuery=sQuery.substring(0,nQueryStart);sQuery=sQuery.substr(nQueryStart);} -else if(sQuery.indexOf(this._sSavedQuery)<0){this._sSavedQuery=null;}} -if(sQuery&&(sQuery.length0)){if(this._nDelayID!=-1){clearTimeout(this._nDelayID);} -this._toggleContainer(false);return;} -sQuery=encodeURIComponent(sQuery);this._nDelayID=-1;this.dataRequestEvent.fire(this,sQuery);this.dataSource.getResults(this._populateList,sQuery,this);};YAHOO.widget.AutoComplete.prototype._populateList=function(sQuery,aResults,oSelf){if(aResults===null){oSelf.dataErrorEvent.fire(oSelf,sQuery);} -if(!oSelf._bFocused||!aResults){return;} -var isOpera=(navigator.userAgent.toLowerCase().indexOf("opera")!=-1);var contentStyle=oSelf._oContainer._oContent.style;contentStyle.width=(!isOpera)?null:"";contentStyle.height=(!isOpera)?null:"";var sCurQuery=decodeURIComponent(sQuery);oSelf._sCurQuery=sCurQuery;oSelf._bItemSelected=false;if(oSelf._maxResultsDisplayed!=oSelf.maxResultsDisplayed){oSelf._initList();} -var nItems=Math.min(aResults.length,oSelf.maxResultsDisplayed);oSelf._nDisplayedItems=nItems;if(nItems>0){oSelf._initContainerHelpers();var aItems=oSelf._aListItems;for(var i=nItems-1;i>=0;i--){var oItemi=aItems[i];var oResultItemi=aResults[i];oItemi.innerHTML=oSelf.formatResult(oResultItemi,sCurQuery);oItemi.style.display="list-item";oItemi._sResultKey=oResultItemi[0];oItemi._oResultData=oResultItemi;} -for(var j=aItems.length-1;j>=nItems;j--){var oItemj=aItems[j];oItemj.innerHTML=null;oItemj.style.display="none";oItemj._sResultKey=null;oItemj._oResultData=null;} -if(oSelf.autoHighlight){var oFirstItem=aItems[0];oSelf._toggleHighlight(oFirstItem,"to");oSelf.itemArrowToEvent.fire(oSelf,oFirstItem);oSelf._typeAhead(oFirstItem,sQuery);} -else{oSelf._oCurItem=null;} -var ok=oSelf.doBeforeExpandContainer(oSelf._oTextbox,oSelf._oContainer,sQuery,aResults);oSelf._toggleContainer(ok);} -else{oSelf._toggleContainer(false);} -oSelf.dataReturnEvent.fire(oSelf,sQuery,aResults);};YAHOO.widget.AutoComplete.prototype._clearSelection=function(){var sValue=this._oTextbox.value;var sChar=(this.delimChar)?this.delimChar[0]:null;var nIndex=(sChar)?sValue.lastIndexOf(sChar,sValue.length-2):-1;if(nIndex>-1){this._oTextbox.value=sValue.substring(0,nIndex);} -else{this._oTextbox.value="";} -this._sSavedQuery=this._oTextbox.value;this.selectionEnforceEvent.fire(this);};YAHOO.widget.AutoComplete.prototype._textMatchesOption=function(){var foundMatch=false;for(var i=this._nDisplayedItems-1;i>=0;i--){var oItem=this._aListItems[i];var sMatch=oItem._sResultKey.toLowerCase();if(sMatch==this._sCurQuery.toLowerCase()){foundMatch=true;break;}} -return(foundMatch);};YAHOO.widget.AutoComplete.prototype._typeAhead=function(oItem,sQuery){if(!this.typeAhead||(this._nKeyCode==8)){return;} -var oTextbox=this._oTextbox;var sValue=this._oTextbox.value;if(!oTextbox.setSelectionRange&&!oTextbox.createTextRange){return;} -var nStart=sValue.length;this._updateValue(oItem);var nEnd=oTextbox.value.length;this._selectText(oTextbox,nStart,nEnd);var sPrefill=oTextbox.value.substr(nStart,nEnd);this.typeAheadEvent.fire(this,sQuery,sPrefill);};YAHOO.widget.AutoComplete.prototype._selectText=function(oTextbox,nStart,nEnd){if(oTextbox.setSelectionRange){oTextbox.setSelectionRange(nStart,nEnd);} -else if(oTextbox.createTextRange){var oTextRange=oTextbox.createTextRange();oTextRange.moveStart("character",nStart);oTextRange.moveEnd("character",nEnd-oTextbox.value.length);oTextRange.select();} -else{oTextbox.select();}};YAHOO.widget.AutoComplete.prototype._toggleContainerHelpers=function(bShow){var bFireEvent=false;var width=this._oContainer._oContent.offsetWidth+"px";var height=this._oContainer._oContent.offsetHeight+"px";if(this.useIFrame&&this._oContainer._oIFrame){bFireEvent=true;if(bShow){this._oContainer._oIFrame.style.width=width;this._oContainer._oIFrame.style.height=height;} -else{this._oContainer._oIFrame.style.width=0;this._oContainer._oIFrame.style.height=0;}} -if(this.useShadow&&this._oContainer._oShadow){bFireEvent=true;if(bShow){this._oContainer._oShadow.style.width=width;this._oContainer._oShadow.style.height=height;} -else{this._oContainer._oShadow.style.width=0;this._oContainer._oShadow.style.height=0;}}};YAHOO.widget.AutoComplete.prototype._toggleContainer=function(bShow){var oContainer=this._oContainer;if(this.alwaysShowContainer&&this._bContainerOpen){return;} -if(!bShow){this._oContainer._oContent.scrollTop=0;var aItems=this._aListItems;if(aItems&&(aItems.length>0)){for(var i=aItems.length-1;i>=0;i--){aItems[i].style.display="none";}} -if(this._oCurItem){this._toggleHighlight(this._oCurItem,"from");} -this._oCurItem=null;this._nDisplayedItems=0;this._sCurQuery=null;} -if(!bShow&&!this._bContainerOpen){oContainer._oContent.style.display="none";return;} -var oAnim=this._oAnim;if(oAnim&&oAnim.getEl()&&(this.animHoriz||this.animVert)){if(!bShow){this._toggleContainerHelpers(bShow);} -if(oAnim.isAnimated()){oAnim.stop();} -var oClone=oContainer._oContent.cloneNode(true);oContainer.appendChild(oClone);oClone.style.top="-9000px";oClone.style.display="block";var wExp=oClone.offsetWidth;var hExp=oClone.offsetHeight;var wColl=(this.animHoriz)?0:wExp;var hColl=(this.animVert)?0:hExp;oAnim.attributes=(bShow)?{width:{to:wExp},height:{to:hExp}}:{width:{to:wColl},height:{to:hColl}};if(bShow&&!this._bContainerOpen){oContainer._oContent.style.width=wColl+"px";oContainer._oContent.style.height=hColl+"px";} -else{oContainer._oContent.style.width=wExp+"px";oContainer._oContent.style.height=hExp+"px";} -oContainer.removeChild(oClone);oClone=null;var oSelf=this;var onAnimComplete=function(){oAnim.onComplete.unsubscribeAll();if(bShow){oSelf.containerExpandEvent.fire(oSelf);} -else{oContainer._oContent.style.display="none";oSelf.containerCollapseEvent.fire(oSelf);} -oSelf._toggleContainerHelpers(bShow);};oContainer._oContent.style.display="block";oAnim.onComplete.subscribe(onAnimComplete);oAnim.animate();this._bContainerOpen=bShow;} -else{if(bShow){oContainer._oContent.style.display="block";this.containerExpandEvent.fire(this);} -else{oContainer._oContent.style.display="none";this.containerCollapseEvent.fire(this);} -this._toggleContainerHelpers(bShow);this._bContainerOpen=bShow;}};YAHOO.widget.AutoComplete.prototype._toggleHighlight=function(oNewItem,sType){var sHighlight=this.highlightClassName;if(this._oCurItem){YAHOO.util.Dom.removeClass(this._oCurItem,sHighlight);} -if((sType=="to")&&sHighlight){YAHOO.util.Dom.addClass(oNewItem,sHighlight);this._oCurItem=oNewItem;}};YAHOO.widget.AutoComplete.prototype._togglePrehighlight=function(oNewItem,sType){if(oNewItem==this._oCurItem){return;} -var sPrehighlight=this.prehighlightClassName;if((sType=="mouseover")&&sPrehighlight){YAHOO.util.Dom.addClass(oNewItem,sPrehighlight);} -else{YAHOO.util.Dom.removeClass(oNewItem,sPrehighlight);}};YAHOO.widget.AutoComplete.prototype._updateValue=function(oItem){var oTextbox=this._oTextbox;var sDelimChar=(this.delimChar)?(this.delimChar[0]||this.delimChar):null;var sSavedQuery=this._sSavedQuery;var sResultKey=oItem._sResultKey;oTextbox.focus();oTextbox.value="";if(sDelimChar){if(sSavedQuery){oTextbox.value=sSavedQuery;} -oTextbox.value+=sResultKey+sDelimChar;if(sDelimChar!=" "){oTextbox.value+=" ";}} -else{oTextbox.value=sResultKey;} -if(oTextbox.type=="textarea"){oTextbox.scrollTop=oTextbox.scrollHeight;} -var end=oTextbox.value.length;this._selectText(oTextbox,end,end);this._oCurItem=oItem;};YAHOO.widget.AutoComplete.prototype._selectItem=function(oItem){this._bItemSelected=true;this._updateValue(oItem);this._cancelIntervalDetection(this);this.itemSelectEvent.fire(this,oItem,oItem._oResultData);this._toggleContainer(false);};YAHOO.widget.AutoComplete.prototype._jumpSelection=function(){if(!this.typeAhead){return;} -else{this._toggleContainer(false);}};YAHOO.widget.AutoComplete.prototype._moveSelection=function(nKeyCode){if(this._bContainerOpen){var oCurItem=this._oCurItem;var nCurItemIndex=-1;if(oCurItem){nCurItemIndex=oCurItem._nItemIndex;} -var nNewItemIndex=(nKeyCode==40)?(nCurItemIndex+1):(nCurItemIndex-1);if(nNewItemIndex<-2||nNewItemIndex>=this._nDisplayedItems){return;} -if(oCurItem){this._toggleHighlight(oCurItem,"from");this.itemArrowFromEvent.fire(this,oCurItem);} -if(nNewItemIndex==-1){if(this.delimChar&&this._sSavedQuery){if(!this._textMatchesOption()){this._oTextbox.value=this._sSavedQuery;} -else{this._oTextbox.value=this._sSavedQuery+this._sCurQuery;}} -else{this._oTextbox.value=this._sCurQuery;} -this._oCurItem=null;return;} -if(nNewItemIndex==-2){this._toggleContainer(false);return;} -var oNewItem=this._aListItems[nNewItemIndex];var oContent=this._oContainer._oContent;var scrollOn=((YAHOO.util.Dom.getStyle(oContent,"overflow")=="auto")||(YAHOO.util.Dom.getStyle(oContent,"overflowY")=="auto"));if(scrollOn&&(nNewItemIndex>-1)&&(nNewItemIndex(oContent.scrollTop+oContent.offsetHeight)){oContent.scrollTop=(oNewItem.offsetTop+oNewItem.offsetHeight)-oContent.offsetHeight;} -else if((oNewItem.offsetTop+oNewItem.offsetHeight)(oContent.scrollTop+oContent.offsetHeight)){this._oContainer._oContent.scrollTop=(oNewItem.offsetTop+oNewItem.offsetHeight)-oContent.offsetHeight;}}} -this._toggleHighlight(oNewItem,"to");this.itemArrowToEvent.fire(this,oNewItem);if(this.typeAhead){this._updateValue(oNewItem);}}};YAHOO.widget.AutoComplete.prototype._onItemMouseover=function(v,oSelf){if(oSelf.prehighlightClassName){oSelf._togglePrehighlight(this,"mouseover");} -else{oSelf._toggleHighlight(this,"to");} -oSelf.itemMouseOverEvent.fire(oSelf,this);};YAHOO.widget.AutoComplete.prototype._onItemMouseout=function(v,oSelf){if(oSelf.prehighlightClassName){oSelf._togglePrehighlight(this,"mouseout");} -else{oSelf._toggleHighlight(this,"from");} -oSelf.itemMouseOutEvent.fire(oSelf,this);};YAHOO.widget.AutoComplete.prototype._onItemMouseclick=function(v,oSelf){oSelf._toggleHighlight(this,"to");oSelf._selectItem(this);};YAHOO.widget.AutoComplete.prototype._onContainerMouseover=function(v,oSelf){oSelf._bOverContainer=true;};YAHOO.widget.AutoComplete.prototype._onContainerMouseout=function(v,oSelf){oSelf._bOverContainer=false;if(oSelf._oCurItem){oSelf._toggleHighlight(oSelf._oCurItem,"to");}};YAHOO.widget.AutoComplete.prototype._onContainerScroll=function(v,oSelf){oSelf._oTextbox.focus();};YAHOO.widget.AutoComplete.prototype._onContainerResize=function(v,oSelf){oSelf._toggleContainerHelpers(oSelf._bContainerOpen);};YAHOO.widget.AutoComplete.prototype._onTextboxKeyDown=function(v,oSelf){var nKeyCode=v.keyCode;switch(nKeyCode){case 9:if(oSelf.delimChar&&(oSelf._nKeyCode!=nKeyCode)){if(oSelf._bContainerOpen){YAHOO.util.Event.stopEvent(v);}} -if(oSelf._oCurItem){oSelf._selectItem(oSelf._oCurItem);} -else{oSelf._toggleContainer(false);} -break;case 13:if(oSelf._nKeyCode!=nKeyCode){if(oSelf._bContainerOpen){YAHOO.util.Event.stopEvent(v);}} -if(oSelf._oCurItem){oSelf._selectItem(oSelf._oCurItem);} -else{oSelf._toggleContainer(false);} -break;case 27:oSelf._toggleContainer(false);return;case 39:oSelf._jumpSelection();break;case 38:YAHOO.util.Event.stopEvent(v);oSelf._moveSelection(nKeyCode);break;case 40:YAHOO.util.Event.stopEvent(v);oSelf._moveSelection(nKeyCode);break;default:break;}};YAHOO.widget.AutoComplete.prototype._onTextboxKeyPress=function(v,oSelf){var nKeyCode=v.keyCode;var isMac=(navigator.userAgent.toLowerCase().indexOf("mac")!=-1);if(isMac){switch(nKeyCode){case 9:if(oSelf.delimChar&&(oSelf._nKeyCode!=nKeyCode)){if(oSelf._bContainerOpen){YAHOO.util.Event.stopEvent(v);}} -break;case 13:if(oSelf._nKeyCode!=nKeyCode){if(oSelf._bContainerOpen){YAHOO.util.Event.stopEvent(v);}} -break;case 38:case 40:YAHOO.util.Event.stopEvent(v);break;default:break;}} -else if(nKeyCode==229){oSelf._queryInterval=setInterval(function(){oSelf._onIMEDetected(oSelf);},500);}};YAHOO.widget.AutoComplete.prototype._onTextboxKeyUp=function(v,oSelf){oSelf._initProps();var nKeyCode=v.keyCode;oSelf._nKeyCode=nKeyCode;var sText=this.value;if(oSelf._isIgnoreKey(nKeyCode)||(sText.toLowerCase()==oSelf._sCurQuery)){return;} -else{oSelf.textboxKeyEvent.fire(oSelf,nKeyCode);} -if(oSelf.queryDelay>0){var nDelayID=setTimeout(function(){oSelf._sendQuery(sText);},(oSelf.queryDelay*1000));if(oSelf._nDelayID!=-1){clearTimeout(oSelf._nDelayID);} -oSelf._nDelayID=nDelayID;} -else{oSelf._sendQuery(sText);}};YAHOO.widget.AutoComplete.prototype._onTextboxFocus=function(v,oSelf){oSelf._oTextbox.setAttribute("autocomplete","off");oSelf._bFocused=true;oSelf.textboxFocusEvent.fire(oSelf);};YAHOO.widget.AutoComplete.prototype._onTextboxBlur=function(v,oSelf){if(!oSelf._bOverContainer||(oSelf._nKeyCode==9)){if(!oSelf._bItemSelected){if(!oSelf._bContainerOpen||(oSelf._bContainerOpen&&!oSelf._textMatchesOption())){if(oSelf.forceSelection){oSelf._clearSelection();} -else{oSelf.unmatchedItemSelectEvent.fire(oSelf,oSelf._sCurQuery);}}} -if(oSelf._bContainerOpen){oSelf._toggleContainer(false);} -oSelf._cancelIntervalDetection(oSelf);oSelf._bFocused=false;oSelf.textboxBlurEvent.fire(oSelf);}};YAHOO.widget.AutoComplete.prototype._onFormSubmit=function(v,oSelf){if(oSelf.allowBrowserAutocomplete){oSelf._oTextbox.setAttribute("autocomplete","on");} -else{oSelf._oTextbox.setAttribute("autocomplete","off");}};YAHOO.widget.DataSource=function(){};YAHOO.widget.DataSource.ERROR_DATANULL="Response data was null";YAHOO.widget.DataSource.ERROR_DATAPARSE="Response data could not be parsed";YAHOO.widget.DataSource.prototype.maxCacheEntries=15;YAHOO.widget.DataSource.prototype.queryMatchContains=false;YAHOO.widget.DataSource.prototype.queryMatchSubset=false;YAHOO.widget.DataSource.prototype.queryMatchCase=false;YAHOO.widget.DataSource.prototype.toString=function(){return"DataSource "+this._sName;};YAHOO.widget.DataSource.prototype.getResults=function(oCallbackFn,sQuery,oParent){var aResults=this._doQueryCache(oCallbackFn,sQuery,oParent);if(aResults.length===0){this.queryEvent.fire(this,oParent,sQuery);this.doQuery(oCallbackFn,sQuery,oParent);}};YAHOO.widget.DataSource.prototype.doQuery=function(oCallbackFn,sQuery,oParent){};YAHOO.widget.DataSource.prototype.flushCache=function(){if(this._aCache){this._aCache=[];} -if(this._aCacheHelper){this._aCacheHelper=[];} -this.cacheFlushEvent.fire(this);};YAHOO.widget.DataSource.prototype.queryEvent=null;YAHOO.widget.DataSource.prototype.cacheQueryEvent=null;YAHOO.widget.DataSource.prototype.getResultsEvent=null;YAHOO.widget.DataSource.prototype.getCachedResultsEvent=null;YAHOO.widget.DataSource.prototype.dataErrorEvent=null;YAHOO.widget.DataSource.prototype.cacheFlushEvent=null;YAHOO.widget.DataSource._nIndex=0;YAHOO.widget.DataSource.prototype._sName=null;YAHOO.widget.DataSource.prototype._aCache=null;YAHOO.widget.DataSource.prototype._init=function(){var maxCacheEntries=this.maxCacheEntries;if(isNaN(maxCacheEntries)||(maxCacheEntries<0)){maxCacheEntries=0;} -if(maxCacheEntries>0&&!this._aCache){this._aCache=[];} -this._sName="instance"+YAHOO.widget.DataSource._nIndex;YAHOO.widget.DataSource._nIndex++;this.queryEvent=new YAHOO.util.CustomEvent("query",this);this.cacheQueryEvent=new YAHOO.util.CustomEvent("cacheQuery",this);this.getResultsEvent=new YAHOO.util.CustomEvent("getResults",this);this.getCachedResultsEvent=new YAHOO.util.CustomEvent("getCachedResults",this);this.dataErrorEvent=new YAHOO.util.CustomEvent("dataError",this);this.cacheFlushEvent=new YAHOO.util.CustomEvent("cacheFlush",this);};YAHOO.widget.DataSource.prototype._addCacheElem=function(oResult){var aCache=this._aCache;if(!aCache||!oResult||!oResult.query||!oResult.results){return;} -if(aCache.length>=this.maxCacheEntries){aCache.shift();} -aCache.push(oResult);};YAHOO.widget.DataSource.prototype._doQueryCache=function(oCallbackFn,sQuery,oParent){var aResults=[];var bMatchFound=false;var aCache=this._aCache;var nCacheLength=(aCache)?aCache.length:0;var bMatchContains=this.queryMatchContains;if((this.maxCacheEntries>0)&&aCache&&(nCacheLength>0)){this.cacheQueryEvent.fire(this,oParent,sQuery);if(!this.queryMatchCase){var sOrigQuery=sQuery;sQuery=sQuery.toLowerCase();} -for(var i=nCacheLength-1;i>=0;i--){var resultObj=aCache[i];var aAllResultItems=resultObj.results;var matchKey=(!this.queryMatchCase)?encodeURIComponent(resultObj.query).toLowerCase():encodeURIComponent(resultObj.query);if(matchKey==sQuery){bMatchFound=true;aResults=aAllResultItems;if(i!=nCacheLength-1){aCache.splice(i,1);this._addCacheElem(resultObj);} -break;} -else if(this.queryMatchSubset){for(var j=sQuery.length-1;j>=0;j--){var subQuery=sQuery.substr(0,j);if(matchKey==subQuery){bMatchFound=true;for(var k=aAllResultItems.length-1;k>=0;k--){var aRecord=aAllResultItems[k];var sKeyIndex=(this.queryMatchCase)?encodeURIComponent(aRecord[0]).indexOf(sQuery):encodeURIComponent(aRecord[0]).toLowerCase().indexOf(sQuery);if((!bMatchContains&&(sKeyIndex===0))||(bMatchContains&&(sKeyIndex>-1))){aResults.unshift(aRecord);}} -resultObj={};resultObj.query=sQuery;resultObj.results=aResults;this._addCacheElem(resultObj);break;}} -if(bMatchFound){break;}}} -if(bMatchFound){this.getCachedResultsEvent.fire(this,oParent,sOrigQuery,aResults);oCallbackFn(sOrigQuery,aResults,oParent);}} -return aResults;};YAHOO.widget.DS_XHR=function(sScriptURI,aSchema,oConfigs){if(typeof oConfigs=="object"){for(var sConfig in oConfigs){this[sConfig]=oConfigs[sConfig];}} -if(!aSchema||(aSchema.constructor!=Array)){return;} -else{this.schema=aSchema;} -this.scriptURI=sScriptURI;this._init();};YAHOO.widget.DS_XHR.prototype=new YAHOO.widget.DataSource();YAHOO.widget.DS_XHR.TYPE_JSON=0;YAHOO.widget.DS_XHR.TYPE_XML=1;YAHOO.widget.DS_XHR.TYPE_FLAT=2;YAHOO.widget.DS_XHR.ERROR_DATAXHR="XHR response failed";YAHOO.widget.DS_XHR.prototype.connMgr=YAHOO.util.Connect;YAHOO.widget.DS_XHR.prototype.connTimeout=0;YAHOO.widget.DS_XHR.prototype.scriptURI=null;YAHOO.widget.DS_XHR.prototype.scriptQueryParam="query";YAHOO.widget.DS_XHR.prototype.scriptQueryAppend="";YAHOO.widget.DS_XHR.prototype.responseType=YAHOO.widget.DS_XHR.TYPE_JSON;YAHOO.widget.DS_XHR.prototype.responseStripAfter="\n0){sUri+="&"+this.scriptQueryAppend;} -var oResponse=null;var oSelf=this;var responseSuccess=function(oResp){if(!oSelf._oConn||(oResp.tId!=oSelf._oConn.tId)){oSelf.dataErrorEvent.fire(oSelf,oParent,sQuery,YAHOO.widget.DataSource.ERROR_DATANULL);return;} -for(var foo in oResp){} -if(!isXML){oResp=oResp.responseText;} -else{oResp=oResp.responseXML;} -if(oResp===null){oSelf.dataErrorEvent.fire(oSelf,oParent,sQuery,YAHOO.widget.DataSource.ERROR_DATANULL);return;} -var aResults=oSelf.parseResponse(sQuery,oResp,oParent);var resultObj={};resultObj.query=decodeURIComponent(sQuery);resultObj.results=aResults;if(aResults===null){oSelf.dataErrorEvent.fire(oSelf,oParent,sQuery,YAHOO.widget.DataSource.ERROR_DATAPARSE);aResults=[];} -else{oSelf.getResultsEvent.fire(oSelf,oParent,sQuery,aResults);oSelf._addCacheElem(resultObj);} -oCallbackFn(sQuery,aResults,oParent);};var responseFailure=function(oResp){oSelf.dataErrorEvent.fire(oSelf,oParent,sQuery,YAHOO.widget.DS_XHR.ERROR_DATAXHR);return;};var oCallback={success:responseSuccess,failure:responseFailure};if(!isNaN(this.connTimeout)&&this.connTimeout>0){oCallback.timeout=this.connTimeout;} -if(this._oConn){this.connMgr.abort(this._oConn);} -oSelf._oConn=this.connMgr.asyncRequest("GET",sUri,oCallback,null);};YAHOO.widget.DS_XHR.prototype.parseResponse=function(sQuery,oResponse,oParent){var aSchema=this.schema;var aResults=[];var bError=false;var nEnd=((this.responseStripAfter!=="")&&(oResponse.indexOf))?oResponse.indexOf(this.responseStripAfter):-1;if(nEnd!=-1){oResponse=oResponse.substring(0,nEnd);} -switch(this.responseType){case YAHOO.widget.DS_XHR.TYPE_JSON:var jsonList;if(window.JSON&&(navigator.userAgent.toLowerCase().indexOf('khtml')==-1)){var jsonObjParsed=JSON.parse(oResponse);if(!jsonObjParsed){bError=true;break;} -else{try{jsonList=eval("jsonObjParsed."+aSchema[0]);} -catch(e){bError=true;break;}}} -else{try{while(oResponse.substring(0,1)==" "){oResponse=oResponse.substring(1,oResponse.length);} -if(oResponse.indexOf("{")<0){bError=true;break;} -if(oResponse.indexOf("{}")===0){break;} -var jsonObjRaw=eval("("+oResponse+")");if(!jsonObjRaw){bError=true;break;} -jsonList=eval("(jsonObjRaw."+aSchema[0]+")");} -catch(e){bError=true;break;}} -if(!jsonList){bError=true;break;} -if(jsonList.constructor!=Array){jsonList=[jsonList];} -for(var i=jsonList.length-1;i>=0;i--){var aResultItem=[];var jsonResult=jsonList[i];for(var j=aSchema.length-1;j>=1;j--){var dataFieldValue=jsonResult[aSchema[j]];if(!dataFieldValue){dataFieldValue="";} -aResultItem.unshift(dataFieldValue);} -if(aResultItem.length==1){aResultItem.push(jsonResult);} -aResults.unshift(aResultItem);} -break;case YAHOO.widget.DS_XHR.TYPE_XML:var xmlList=oResponse.getElementsByTagName(aSchema[0]);if(!xmlList){bError=true;break;} -for(var k=xmlList.length-1;k>=0;k--){var result=xmlList.item(k);var aFieldSet=[];for(var m=aSchema.length-1;m>=1;m--){var sValue=null;var xmlAttr=result.attributes.getNamedItem(aSchema[m]);if(xmlAttr){sValue=xmlAttr.value;} -else{var xmlNode=result.getElementsByTagName(aSchema[m]);if(xmlNode&&xmlNode.item(0)&&xmlNode.item(0).firstChild){sValue=xmlNode.item(0).firstChild.nodeValue;} -else{sValue="";}} -aFieldSet.unshift(sValue);} -aResults.unshift(aFieldSet);} -break;case YAHOO.widget.DS_XHR.TYPE_FLAT:if(oResponse.length>0){var newLength=oResponse.length-aSchema[0].length;if(oResponse.substr(newLength)==aSchema[0]){oResponse=oResponse.substr(0,newLength);} -var aRecords=oResponse.split(aSchema[0]);for(var n=aRecords.length-1;n>=0;n--){aResults[n]=aRecords[n].split(aSchema[1]);}} -break;default:break;} -sQuery=null;oResponse=null;oParent=null;if(bError){return null;} -else{return aResults;}};YAHOO.widget.DS_XHR.prototype._oConn=null;YAHOO.widget.DS_JSFunction=function(oFunction,oConfigs){if(typeof oConfigs=="object"){for(var sConfig in oConfigs){this[sConfig]=oConfigs[sConfig];}} -if(!oFunction||(oFunction.constructor!=Function)){return;} -else{this.dataFunction=oFunction;this._init();}};YAHOO.widget.DS_JSFunction.prototype=new YAHOO.widget.DataSource();YAHOO.widget.DS_JSFunction.prototype.dataFunction=null;YAHOO.widget.DS_JSFunction.prototype.doQuery=function(oCallbackFn,sQuery,oParent){var oFunction=this.dataFunction;var aResults=[];aResults=oFunction(sQuery);if(aResults===null){this.dataErrorEvent.fire(this,oParent,sQuery,YAHOO.widget.DataSource.ERROR_DATANULL);return;} -var resultObj={};resultObj.query=decodeURIComponent(sQuery);resultObj.results=aResults;this._addCacheElem(resultObj);this.getResultsEvent.fire(this,oParent,sQuery,aResults);oCallbackFn(sQuery,aResults,oParent);return;};YAHOO.widget.DS_JSArray=function(aData,oConfigs){if(typeof oConfigs=="object"){for(var sConfig in oConfigs){this[sConfig]=oConfigs[sConfig];}} -if(!aData||(aData.constructor!=Array)){return;} -else{this.data=aData;this._init();}};YAHOO.widget.DS_JSArray.prototype=new YAHOO.widget.DataSource();YAHOO.widget.DS_JSArray.prototype.data=null;YAHOO.widget.DS_JSArray.prototype.doQuery=function(oCallbackFn,sQuery,oParent){var aData=this.data;var aResults=[];var bMatchFound=false;var bMatchContains=this.queryMatchContains;if(sQuery){if(!this.queryMatchCase){sQuery=sQuery.toLowerCase();} -for(var i=aData.length-1;i>=0;i--){var aDataset=[];if(aData[i]){if(aData[i].constructor==String){aDataset[0]=aData[i];} -else if(aData[i].constructor==Array){aDataset=aData[i];}} -if(aDataset[0]&&(aDataset[0].constructor==String)){var sKeyIndex=(this.queryMatchCase)?encodeURIComponent(aDataset[0]).indexOf(sQuery):encodeURIComponent(aDataset[0]).toLowerCase().indexOf(sQuery);if((!bMatchContains&&(sKeyIndex===0))||(bMatchContains&&(sKeyIndex>-1))){aResults.unshift(aDataset);}}}} -this.getResultsEvent.fire(this,oParent,sQuery,aResults);oCallbackFn(sQuery,aResults,oParent);}; diff --git a/www/extras/yui/docs/assets/api.css b/www/extras/yui/docs/assets/api.css deleted file mode 100644 index 1b88e2409..000000000 --- a/www/extras/yui/docs/assets/api.css +++ /dev/null @@ -1,134 +0,0 @@ -/*2.2.0*/ -/*reset.css*/body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym {border:0;} -/*fonts.css*/body{font:13px arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}table {font-size:inherit;font:100%;}select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}pre, code {font:115% monospace;*font-size:100%;}body * {line-height:1.22em;} -/*grids.css*/body{text-align:center;}#ft{clear:both;}#doc,#doc2,#doc3,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7{margin:auto;text-align:left;width:57.69em;*width:56.3em;min-width:750px;}#doc2{width:73.074em;*width:71.313em;min-width:950px;}#doc3{margin:auto 10px;width:auto;}.yui-b{position:relative;}.yui-b{_position:static;}#yui-main .yui-b{position:static;}#yui-main{width:100%;}.yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main{float:right;margin-left:-25em;}.yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main{float:left;margin-right:-25em;}.yui-t1 .yui-b{float:left;width:12.3207em;*width:12.0106em;}.yui-t1 #yui-main .yui-b{margin-left:13.3207em;*margin-left:13.0106em;}.yui-t2 .yui-b{float:left;width:13.8456em;*width:13.512em;}.yui-t2 #yui-main .yui-b{margin-left:14.8456em;*margin-left:14.512em;}.yui-t3 .yui-b{float:left;width:23.0759em;*width:22.52em;}.yui-t3 #yui-main .yui-b{margin-left:24.0759em;*margin-left:23.52em;}.yui-t4 .yui-b{float:right;width:13.8456em;*width:13.512em;}.yui-t4 #yui-main .yui-b{margin-right:14.8456em;*margin-right:14.512em;}.yui-t5 .yui-b{float:right;width:18.4608em;*width:18.016em;}.yui-t5 #yui-main .yui-b{margin-right:19.4608em;*margin-right:19.016em;}.yui-t6 .yui-b{float:right;width:23.0759em;*width:22.52em;}.yui-t6 #yui-main .yui-b{margin-right:24.0759em;*margin-right:23.52em;}.yui-t7 #yui-main .yui-b{display:block;margin:0 0 1em 0;}#yui-main .yui-b{float:none;width:auto;}.yui-g .yui-u,.yui-g .yui-g,.yui-gc .yui-u,.yui-gc .yui-g .yui-u,.yui-ge .yui-u,.yui-gf .yui-u{float:right;display:inline;}.yui-g div.first,.yui-gc div.first,.yui-gc div.first div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first{float:left;}.yui-g .yui-u,.yui-g .yui-g{width:49.1%;}.yui-g .yui-g .yui-u,.yui-gc .yui-g .yui-u{width:48.1%;}.yui-gb .yui-u,.yui-gc .yui-u,.yui-gd .yui-u{float:left;margin-left:2%;*margin-left:1.895%;width:32%;}.yui-gb div.first,.yui-gc div.first,.yui-gd div.first{margin-left:0;}.yui-gc div.first,.yui-gd .yui-u{width:66%;}.yui-gd div.first{width:32%;}.yui-ge .yui-u{width:24%;}.yui-ge div.first,.yui-gf .yui-u{width:74.2%;}.yui-gf div.first{width:24%;}.yui-ge div.first{width:74.2%;}#bd:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after{content:".";display:block;height:0;clear:both;visibility:hidden;}#bd,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf{zoom:1;} - -/* main page */ -a:link { color: #00F; } -a:visited { color: #003399;} - -#hd {margin-bottom:1em} -#hd h1 { color: #545454; font:170%/50px arial Bold; padding: 8px 0 8px 70px; background: url(logo.gif) left center no-repeat; } -#hd h3 { background: #947DB2; color: #FFF; font: 110%/1.22em arial; padding: 5px 10px; margin: 0 0 7px 0; } -#hd h3 A { color: #FFF; text-decoration: none; } -#hd .breadcrumbs { font-size: 85%; margin-bottom:10px;} -#hd .subtitle {position: absolute; right:1em; padding: 0px;margin:0px} - -#doc3 dl { margin: 2px 0; } -#doc3 dd { margin-left: 20px; } -#doc3 .requires dt { font-style: italic; } -#doc3 .default { margin-top:6px; } -#doc3 .deprecated { margin-top:4px; padding:4px; background-color: #EFECCA } -#doc3 .deprecated strong { color:#441054; } -#doc3 code, pre {font-size:85%} - -/* undo reset.css styles for description block formatting */ -#doc3 .description ul { padding: 10px 0 10px 28px; font-size: 90%; list-style: disc} -#doc3 .description p { padding-bottom: 10px} -#doc3 .description strong { font-weight: bold;} -#doc3 .description em {padding: 2px; background-color: #EFECCA} -#doc3 pre { padding: 10px;} - -#doc3 .summary { margin: 0px 0 10px 0; padding:10px; border: 1px solid #cccccc; background-color: #eeeeee; } -#doc3 .extends {font-weight: normal; font-size: 90%} - -#doc3 .nav {min-height: 400px;} -#doc3 .nav .module {width:100%; background:#EEEEEE; margin: 0 0 15px 0; padding: 0; overflow:hidden} -#doc3 .nav .module h4 { padding: 3px 5px; border-bottom: #947DB2 1px solid; } -#doc3 .nav .module h4 A { color: #000; text-decoration: none; } -#doc3 .nav .module .content { padding: 2px; } -#doc3 .nav .module UL.content LI { font-size: 90%; } -#doc3 .nav .module UL.content A { text-decoration: none; } -#doc3 .nav .module LI { padding: 2px 4px 2px 4px; } -#doc3 .nav .module LI.selected { background: #CDC6D5; } - -#doc3 .section { margin: 0 0 16px 0; } -#doc3 .section strong { font-weight: bold;} -#doc3 .section hr { border: none 0; border-top: 1px solid #cccccc; } -#doc3 .section h4 { font-size:110%;} -#doc3 .section h3 { background: #947DB2; width: 100%; color: #FFF; padding: 3px; margin: 0 0 7px 0; } -#doc3 .section h3 .top { font-size: 60%; font-weight: normal; width: 100%; font-family: verdana; padding-left: 20px; } -#doc3 .section h3 .top A { color: #FFF; text-decoration: none; } - -#doc3 .section.details .content { padding: 0 0 0 10px; } -#doc3 .section.details .description { padding: 10px 0 0 20px; } -#doc3 .section.details .description dt { font-weight: bold; } -#doc3 .section.details .description td { border:1px solid #ccc; margin:2px;padding:2px;} - -#doc3 .inheritance { padding:10px; background-color:#eeeeee } -#doc3 .inheritance h4 { font-size: 100%;} - -/* index page autocomplete */ -#propertysearch {;position:absolute;margin:1em;width:35em;}/* set width of widget here*/ -#searchinput {position:absolute;width:100%;height:1.4em;} -#searchresults {position:absolute;top:1.7em;width:100%;} -#searchresults .yui-ac-content {position:absolute;top:4px; left:0px; width:100%;height:20em;border:1px solid #404040;background:#fff;overflow:auto;overflow-x:hidden;z-index:9050;} -/*#searchresults .yui-ac-shadow {position:absolute;margin:.3em;width:100%;background:#a0a0a0;z-index:9049;}*/ -#searchresults ul {padding:5px 0;width:100%;} -#searchresults li {padding:0 5px;cursor:default;white-space:nowrap;} -#searchresults li.yui-ac-highlight {background:#D1C6DA;} -#searchresults li em { position:absolute; width:44%; overflow:hidden; color:#654D6C;} -#searchresults li span { position:relative; left:46% } - -/* source code view */ -#srcout {min-width: 580px; } -*html #srcout { width: 100%; padding-bottom:1em; overflow-x:auto } - -.highlight .c { color: #60a0b0; font-style: italic } /* Comment */ -.highlight .err { border: 1px solid #FF0000 } /* Error */ -.highlight .k { color: #007020; font-weight: bold } /* Keyword */ -.highlight .o { color: #666666 } /* Operator */ -.highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #007020 } /* Comment.Preproc */ -.highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */ -.highlight .gd { color: #A00000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #FF0000 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #808080 } /* Generic.Output */ -.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #0040D0 } /* Generic.Traceback */ -.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ -.highlight .kp { color: #007020 } /* Keyword.Pseudo */ -.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #007020; font-weight: bold } /* Keyword.Type */ -.highlight .m { color: #40a070 } /* Literal.Number */ -.highlight .s { color: #4070a0 } /* Literal.String */ -.highlight .na { color: #4070a0 } /* Name.Attribute */ -.highlight .nb { color: #007020 } /* Name.Builtin */ -.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ -.highlight .no { color: #60add5 } /* Name.Constant */ -.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ -.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #007020 } /* Name.Exception */ -.highlight .nf { color: #06287e } /* Name.Function */ -.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ -.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #bb60d5 } /* Name.Variable */ -.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ -.highlight .mf { color: #40a070 } /* Literal.Number.Float */ -.highlight .mh { color: #40a070 } /* Literal.Number.Hex */ -.highlight .mi { color: #40a070 } /* Literal.Number.Integer */ -.highlight .mo { color: #40a070 } /* Literal.Number.Oct */ -.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ -.highlight .sc { color: #4070a0 } /* Literal.String.Char */ -.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ -.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ -.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ -.highlight .sx { color: #c65d09 } /* Literal.String.Other */ -.highlight .sr { color: #235388 } /* Literal.String.Regex */ -.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ -.highlight .ss { color: #517918 } /* Literal.String.Symbol */ -.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ -.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ -.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ -.highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */ - diff --git a/www/extras/yui/docs/assets/logo.gif b/www/extras/yui/docs/assets/logo.gif deleted file mode 100644 index 7b0057560..000000000 Binary files a/www/extras/yui/docs/assets/logo.gif and /dev/null differ diff --git a/www/extras/yui/docs/assets/yui_cheatsheets.zip b/www/extras/yui/docs/assets/yui_cheatsheets.zip deleted file mode 100644 index ead3244c5..000000000 Binary files a/www/extras/yui/docs/assets/yui_cheatsheets.zip and /dev/null differ diff --git a/www/extras/yui/docs/button.js.html b/www/extras/yui/docs/button.js.html deleted file mode 100644 index bd6e217f2..000000000 --- a/www/extras/yui/docs/button.js.html +++ /dev/null @@ -1,3379 +0,0 @@ - - - - API: button button.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Button  2.2.2

        -

        - Yahoo! UI Library - > button - - > button.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* @module button
        -* @description <p>The Button Control enables the creation of rich, graphical 
        -* buttons that function like traditional HTML form buttons.  <em>Unlike</em> 
        -* tradition HTML form buttons, buttons created with the Button Control can have 
        -* a label that is different from its value.  With the inclusion of the optional 
        -* <a href="module_menu.html">Menu Control</a>, the Button Control can also be
        -* used to create menu buttons and split buttons, controls that are not 
        -* available natively in HTML.  The Button Control can also be thought of as a 
        -* way to create more visually engaging implementations of the browser's 
        -* default radio-button and check-box controls.</p>
        -* <p>The Button Control supports the following types:</p>
        -* <dl>
        -* <dt>button</dt>
        -* <dd>Basic push button that can execute a user-specified command when 
        -* pressed.</dd>
        -* <dt>link</dt>
        -* <dd>Navigates to a specified url when pressed.</dd>
        -* <dt>submit</dt>
        -* <dd>Submits the parent form when pressed.</dd>
        -* <dt>reset</dt>
        -* <dd>Resets the parent form when pressed.</dd>
        -* <dt>checkbox</dt>
        -* <dd>Maintains a "checked" state that can be toggled on and off.</dd>
        -* <dt>radio</dt>
        -* <dd>Maintains a "checked" state that can be toggled on and off.  Use with 
        -* the ButtonGroup class to create a set of controls that are mutually 
        -* exclusive; checking one button in the set will uncheck all others in 
        -* the group.</dd>
        -* <dt>menubutton</dt>
        -* <dd>When pressed will show/hide a menu.</dd>
        -* <dt>splitbutton</dt>
        -* <dd>Can execute a user-specified command or display a menu when pressed.</dd>
        -* </dl>
        -* @title Button
        -* @namespace YAHOO.widget
        -* @requires yahoo, dom, element, event
        -* @optional container, menu
        -* @beta
        -*/
        -
        -
        -(function() {
        -
        -// Shorthard for utilities
        -
        -var Dom = YAHOO.util.Dom,
        -    Event = YAHOO.util.Event,
        -    Lang = YAHOO.lang,
        -
        -
        -    // Private member variables
        -
        -    m_oUserAgent = navigator.userAgent.toLowerCase(),
        -    m_bOpera = (m_oUserAgent.indexOf('opera') > -1),
        -    m_bSafari = (m_oUserAgent.indexOf('safari') > -1),
        -    m_bGecko = (!m_bOpera && !m_bSafari && m_oUserAgent.indexOf('gecko') > -1),
        -    m_bIE7 = (!m_bOpera && m_oUserAgent.indexOf('msie 7') > -1),
        -    m_bIE = (!m_bOpera && m_oUserAgent.indexOf('msie') > -1),
        -    m_oButtons = {},
        -    m_oFocusedButton = null;
        -
        -
        -
        -//  Constructor
        -
        -
        -/**
        -* The Button class creates a rich, graphical button.
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;input&#62;</code>, <code>&#60;a&#62;</code> or 
        -* <code>&#60;span&#62;</code> element to be used to create the button.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-6043025">HTMLInputElement</a>|<a href="
        -* http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#
        -* ID-33759296">HTMLElement</a>} p_oElement Object reference for the 
        -* <code>&#60;input&#62;</code>, <code>&#60;a&#62;</code> or 
        -* <code>&#60;span&#62;</code> element to be used to create the button.
        -* @param {Object} p_oElement Object literal specifying a set of configuration  
        -* attributes used to create the button.
        -* @param {Object} p_oAttributes Optional. Object literal specifying a set of 
        -* configuration attributes used to create the button.
        -* @namespace YAHOO.widget
        -* @class Button
        -* @constructor
        -* @extends YAHOO.util.Element
        -*/
        -YAHOO.widget.Button = function(p_oElement, p_oAttributes) {
        -
        -    var fnSuperClass = YAHOO.widget.Button.superclass.constructor;
        -
        -    if(
        -        arguments.length == 1 && 
        -        !Lang.isString(p_oElement) && 
        -        !p_oElement.nodeName
        -    ) {
        -
        -        if(!p_oElement.id) {
        -
        -            p_oElement.id = Dom.generateId();
        -
        -            YAHOO.log(
        -                "No value specified for the button's \"id\" attribute. " +
        -                "Setting  button id to \"" + p_oElement.id + "\".",
        -                "warn"
        -            );
        -
        -        }
        -
        -        this.logger = new YAHOO.widget.LogWriter("Button " + p_oElement.id);
        -
        -        this.logger.log(
        -                "No source HTML element.  "  +
        -                "Building the button using the set of configuration attributes."
        -            );
        -
        -        fnSuperClass.call(
        -            this,
        -            (this._createButtonElement(p_oElement.type)),
        -            p_oElement
        -        );
        -
        -    }
        -    else {
        -
        -        var oConfig = {
        -        
        -            element: null,
        -            attributes: (p_oAttributes || {})
        -            
        -        },
        -
        -        sTagName;
        -
        -
        -        if(Lang.isString(p_oElement)) {
        -
        -            var oElement = Dom.get(p_oElement);
        -
        -            if (oElement) {
        -
        -                sTagName = oElement.tagName.toUpperCase();
        -            
        -                if(sTagName == this.TAG_NAME) {
        -            
        -                    oConfig.attributes.id = oElement.id;
        -            
        -                }
        -                else if(sTagName == "INPUT" && !oConfig.attributes.id) {
        -            
        -                    oConfig.attributes.id = Dom.generateId();
        -            
        -                    YAHOO.log(
        -                        "No value specified for the button's \"id\" " +
        -                        "attribute. Setting button id to \"" + 
        -                        oConfig.attributes.id + "\".",
        -                        "warn"
        -                    );
        -                
        -                }
        -            
        -                this.logger = new YAHOO.widget.LogWriter(
        -                                    "Button " + oConfig.attributes.id
        -                                        );
        -            
        -                this.logger.log(
        -                        "Building the button using an existing HTML " + 
        -                        "element as a source element." 
        -                    );
        -            
        -            
        -                oConfig.attributes.srcelement = oElement;
        -            
        -                initConfig.call(this, oConfig);
        -            
        -            
        -                if(!oConfig.element) {
        -            
        -                    this.logger.log(
        -                            "Source element could not be used as is.  " +
        -                            "Creating a new HTML element for the button."
        -                        );
        -            
        -                    oConfig.element = 
        -                        this._createButtonElement(oConfig.attributes.type);
        -            
        -                }
        -            
        -                fnSuperClass.call(this, oConfig.element, oConfig.attributes);
        -
        -            }
        -
        -        }
        -        else {
        -
        -            sTagName = p_oElement.tagName.toUpperCase();
        -
        -            if(sTagName == this.TAG_NAME) {
        -
        -                if(p_oElement.id) {
        -
        -                    oConfig.attributes.id = p_oElement.id;
        -                
        -                }
        -                else {
        -
        -                    oConfig.attributes.id = Dom.generateId();
        -
        -                    YAHOO.log(
        -                        "No value specified for the button's \"id\" " +
        -                        "attribute. Setting button id to \"" + 
        -                        oConfig.attributes.id + "\".",
        -                        "warn"
        -                    );
        -
        -                }
        -
        -
        -            }
        -            else if(sTagName == "INPUT" && !oConfig.attributes.id) {
        -
        -                oConfig.attributes.id = Dom.generateId();
        -
        -                YAHOO.log(
        -                    "No value specified for the button's \"id\" " +
        -                    "attribute. Setting button id to \"" + 
        -                    oConfig.attributes.id + "\".",
        -                    "warn"
        -                );
        -            
        -            }
        -
        -            this.logger = 
        -                new YAHOO.widget.LogWriter("Button " + oConfig.attributes.id);
        -
        -            this.logger.log(
        -                    "Building the button using an existing HTML element as " + 
        -                    "a source element." 
        -                );
        -
        -
        -            oConfig.attributes.srcelement = p_oElement;
        -    
        -            initConfig.call(this, oConfig);
        -    
        -    
        -            if(!oConfig.element) {
        -
        -                this.logger.log(
        -                        "Source element could not be used as is.  " +
        -                        "Creating a new HTML element for the button."
        -                    );
        -        
        -                oConfig.element = 
        -                    this._createButtonElement(oConfig.attributes.type);
        -        
        -            }
        -        
        -            fnSuperClass.call(this, oConfig.element, oConfig.attributes);
        -        
        -        }
        -
        -    }
        -
        -};
        -
        -
        -
        -// Private methods
        -
        -
        -/**
        -* @method getFirstElement
        -* @description Returns an HTML element's first HTML element node.
        -* @private
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -* level-one-html.html#ID-58190037">HTMLElement</a>} p_oElement Object 
        -* reference specifying the element to be evaluated.
        -* @return {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -* level-one-html.html#ID-58190037">HTMLElement</a>}
        -*/
        -function getFirstElement(p_oElement) {
        -
        -    var oFirstChild = p_oElement.firstChild;
        -
        -    if(oFirstChild) {
        -
        -        if(oFirstChild.nodeType == 1) {
        -
        -            return oFirstChild;
        -
        -        }
        -        else {
        -
        -            var oNextSibling = oFirstChild.nextSibling;
        -
        -            if(oNextSibling && oNextSibling.nodeType == 1) {
        -            
        -                return oNextSibling;
        -            
        -            }
        -
        -        }
        -
        -    }
        -
        -}
        -
        -
        -/**
        -* @method createInputElement
        -* @description Creates an <code>&#60;input&#62;</code> element of the 
        -* specified type.
        -* @private
        -* @param {String} p_sType String specifying the type of 
        -* <code>&#60;input&#62;</code> element to create.
        -* @param {String} p_sName String specifying the name of 
        -* <code>&#60;input&#62;</code> element to create.
        -* @param {String} p_sValue String specifying the value of 
        -* <code>&#60;input&#62;</code> element to create.
        -* @param {String} p_bChecked Boolean specifying if the  
        -* <code>&#60;input&#62;</code> element is to be checked.
        -* @return {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-6043025">HTMLInputElement</a>}
        -*/
        -function createInputElement(p_sType, p_sName, p_sValue, p_bChecked) {
        -
        -    var oInput;
        -
        -    if(m_bIE) {
        -
        -        /*
        -            For IE it is necessary to create the element with the 
        -            "type," "name," "value," and "checked" properties set all at once.
        -        */
        -    
        -        var sInput = "<input type=\"" + p_sType + "\" name=\"" + p_sName + "\"";
        -
        -        if(p_bChecked) {
        -
        -            sInput += " checked";
        -        
        -        }
        -        
        -        sInput += ">";
        -
        -        oInput = document.createElement(sInput);
        -
        -    }
        -    else {
        -    
        -        oInput = document.createElement("input");
        -        oInput.name = p_sName;
        -        oInput.type = p_sType;
        -
        -        if(p_bChecked) {
        -
        -            oInput.checked = true;
        -        
        -        }
        -
        -    }
        -
        -    oInput.value = p_sValue;
        -    
        -    return oInput;
        -
        -}
        -
        -
        -/**
        -* @method setAttributesFromSrcElement
        -* @description Gets the values for all the attributes of the source element 
        -* (either <code>&#60;input&#62;</code> or <code>&#60;a&#62;</code>) that map to
        -* Button configuration attributes and sets them into a collection that is
        -* passed to the Button constructor.
        -* @private
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-6043025">HTMLInputElement</a>|<a href="http://www.w3.org/
        -* TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-
        -* 48250443">HTMLAnchorElement</a>} p_oElement Object reference to the HTML 
        -* element (either <code>&#60;input&#62;</code> or <code>&#60;span&#62;</code>) 
        -* used to create the button.
        -* @param {Object} p_oAttributes Object reference for the collection of 
        -* configuration attributes used to create the button.
        -*/
        -function setAttributesFromSrcElement(p_oElement, p_oAttributes) {
        -
        -    var me = this;
        -
        -    /**
        -    * @method setAttributeFromDOMAttribute
        -    * @description Gets the value of the specified DOM attribute and sets it 
        -    * into the collection of configuration attributes used to configure 
        -    * the button.
        -    * @private
        -    * @param {String} p_sAttribute String representing the name of the 
        -    * attribute to retrieve from the DOM element.
        -    */
        -    function setAttributeFromDOMAttribute(p_sAttribute) {
        -
        -        if( !(p_sAttribute in p_oAttributes) ) {
        -
        -            /*
        -                Need to use "getAttributeNode" instead of "getAttribute" 
        -                because using "getAttribute," IE will return the innerText of 
        -                a <code>&#60;button&#62;</code> for the value attribute rather 
        -                than the value of the "value" attribute.
        -            */
        -    
        -            var oAttribute = p_oElement.getAttributeNode(p_sAttribute);
        -    
        -
        -            if(oAttribute && ("value" in oAttribute)) {
        -
        -                me.logger.log(
        -                    "Setting attribute \"" + p_sAttribute + "\" using " +
        -                    "source element's attribute value of \"" + 
        -                    oAttribute.value + "\""
        -                );
        -
        -                p_oAttributes[p_sAttribute] = oAttribute.value;
        -
        -            }
        -
        -        }
        -    
        -    }
        -
        -
        -    /**
        -    * @method setFormElementProperties
        -    * @description Gets the value of the attributes from the form element and 
        -    * sets them into the collection of configuration attributes used to 
        -    * configure the button.
        -    * @private
        -    */
        -    function setFormElementProperties() {
        -
        -        setAttributeFromDOMAttribute("type");
        -
        -        if( !("disabled" in p_oAttributes) ) {
        -
        -            p_oAttributes.disabled = p_oElement.disabled;
        -
        -        }
        -
        -        setAttributeFromDOMAttribute("name");
        -        setAttributeFromDOMAttribute("value");
        -        setAttributeFromDOMAttribute("title");
        -
        -    }
        -
        -
        -    var sSrcElementTagName = p_oElement.tagName.toUpperCase();
        -
        -
        -    if( !("label" in p_oAttributes) ) {
        -
        -        // Set the "label" property
        -    
        -        var sText = sSrcElementTagName == "INPUT" ? 
        -                        p_oElement.value : p_oElement.innerHTML;
        -    
        -    
        -        if(sText && sText.length > 0) {
        -            
        -            p_oAttributes.label = sText;
        -            
        -        } 
        -
        -    }
        -
        -
        -    setAttributeFromDOMAttribute("tabindex");
        -    setAttributeFromDOMAttribute("accesskey");
        -
        -
        -    switch(sSrcElementTagName) {
        -    
        -        case "A":
        -        
        -            p_oAttributes.type = "link";
        -
        -            setAttributeFromDOMAttribute("href");
        -            setAttributeFromDOMAttribute("target");
        -
        -        break;
        -
        -        case "INPUT":
        -
        -            setFormElementProperties();
        -
        -            if( !("checked" in p_oAttributes) ) {
        -    
        -                p_oAttributes.checked = p_oElement.checked;
        -    
        -            }
        -
        -        break;
        -
        -        case "BUTTON":
        -
        -            setFormElementProperties();
        -
        -            var oRootNode = p_oElement.parentNode.parentNode;
        -
        -            if(Dom.hasClass(oRootNode, "checked")) {
        -            
        -                p_oAttributes.checked = true;
        -            
        -            }
        -
        -            if(Dom.hasClass(oRootNode, "disabled")) {
        -
        -                p_oAttributes.disabled = true;
        -            
        -            }
        -
        -            p_oElement.removeAttribute("name");
        -            p_oElement.removeAttribute("value");
        -
        -            p_oElement.setAttribute("type", "button");
        -
        -        break;
        -    
        -    }
        -
        -}
        -
        -
        -/**
        -* @method initConfig
        -* @description Initializes the set of configuration attributes that are used to  
        -* instantiate the button.
        -* @private
        -* @param {Object} Object representing the button's set of 
        -* configuration attributes.
        -*/
        -function initConfig(p_oConfig) {
        -
        -    var oAttributes = p_oConfig.attributes,
        -        oSrcElement = oAttributes.srcelement,
        -        sSrcElementTagName = oSrcElement.tagName.toUpperCase();
        -
        -
        -    if(sSrcElementTagName == this.TAG_NAME) {
        -
        -        p_oConfig.element = oSrcElement;
        -
        -        var oFirstChild = getFirstElement(p_oConfig.element);
        -
        -        Dom.addClass(oFirstChild, "first-child");
        -
        -        if(oFirstChild) {
        -
        -            var oButton = getFirstElement(oFirstChild);
        -
        -
        -            if(oButton) {
        -
        -                var sButtonTagName = oButton.tagName.toUpperCase();
        -
        -
        -                if(sButtonTagName == "A" || sButtonTagName == "BUTTON") {
        -
        -                    setAttributesFromSrcElement.call(
        -                            this, 
        -                            oButton, 
        -                            oAttributes
        -                        );
        -                
        -                }
        -            
        -            }
        -
        -        }
        -    
        -    }
        -    else if(sSrcElementTagName == "INPUT") {
        -
        -        setAttributesFromSrcElement.call(this, oSrcElement, oAttributes);
        -    
        -    }
        -
        -}
        -
        -
        -YAHOO.extend(YAHOO.widget.Button, YAHOO.util.Element, {
        -
        -
        -// Protected properties
        -
        -
        -/** 
        -* @property _button
        -* @description Object reference to the button's internal 
        -* <code>&#60;a&#62;</code> or <code>&#60;button&#62;</code> element.
        -* @default null
        -* @protected
        -* @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-48250443">HTMLAnchorElement</a>|<a href="
        -* http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-
        -* 34812697">HTMLButtonElement</a>
        -*/
        -_button: null,
        -
        -
        -/** 
        -* @property _menu
        -* @description Object reference to the button's menu.
        -* @default null
        -* @protected
        -* @type <a href="YAHOO.widget.Menu.html">YAHOO.widget.Menu</a>
        -*/
        -_menu: null,
        -
        -
        -/** 
        -* @property _hiddenField
        -* @description Object reference to the <code>&#60;input&#62;</code> element 
        -* used when the button's parent form is submitted.
        -* @default null
        -* @protected
        -* @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-6043025">HTMLInputElement</a>
        -*/
        -_hiddenField: null,
        -
        -
        -/** 
        -* @property _onclickAttributeValue
        -* @description Object reference to the button's current value for the "onclick"
        -* configuration attribute.
        -* @default null
        -* @protected
        -* @type Object
        -*/
        -_onclickAttributeValue: null,
        -
        -
        -/** 
        -* @property _activationKeyPressed
        -* @description Boolean indicating if the key(s) that toggle the button's 
        -* "active" state have been pressed.
        -* @default false
        -* @protected
        -* @type Boolean
        -*/
        -_activationKeyPressed: false,
        -
        -
        -/** 
        -* @property _activationButtonPressed
        -* @description Boolean indicating if the mouse button that toggles the button's
        -* "active" state has been pressed.
        -* @default false
        -* @protected
        -* @type Boolean
        -*/
        -_activationButtonPressed: false,
        -
        -
        -/** 
        -* @property _hasKeyEventHandlers
        -* @description Boolean indicating if the button's "blur", "keydown" and 
        -* "keyup" event handlers are assigned
        -* @default false
        -* @protected
        -* @type Boolean
        -*/
        -_hasKeyEventHandlers: false,
        -
        -
        -/** 
        -* @property _hasMouseEventHandlers
        -* @description Boolean indicating if the button's "mouseout" and "mousedown" 
        -* and "mouseup" event handlers are assigned
        -* @default false
        -* @protected
        -* @type Boolean
        -*/
        -_hasMouseEventHandlers: false,
        -
        -
        -
        -// Constants
        -
        -
        -/**
        -* @property TAG_NAME
        -* @description The name of the tag to be used for the button's root element. 
        -* @default "SPAN"
        -* @final
        -* @type String
        -*/
        -TAG_NAME: "SPAN",
        -
        -
        -/**
        -* @property CHECK_ACTIVATION_KEYS
        -* @description Array of numbers representing keys that (when pressed) toggle 
        -* the button's "checked" attribute.
        -* @default [32]
        -* @final
        -* @type Array
        -*/
        -CHECK_ACTIVATION_KEYS: [32],
        -
        -
        -/**
        -* @property ACTIVATION_KEYS
        -* @description Array of numbers representing keys that (when presed) toggle 
        -* the button's "active" state.
        -* @default [13, 32]
        -* @final
        -* @type Array
        -*/
        -ACTIVATION_KEYS: [13, 32],
        -
        -
        -/**
        -* @property OPTION_AREA_WIDTH
        -* @description Width (in pixels) of the area of a split button that when 
        -* pressed will display a menu.
        -* @default 20
        -* @final
        -* @type Number
        -*/
        -OPTION_AREA_WIDTH: 20,
        -
        -
        -/**
        -* @property CSS_CLASS_NAME
        -* @description String representing the CSS class(es) to be applied to the 
        -* button's root element.
        -* @default "yuibutton"
        -* @final
        -* @type String
        -*/
        -CSS_CLASS_NAME: "yuibutton",
        -
        -
        -/**
        -* @property RADIO_DEFAULT_TITLE
        -* @description String representing the default title applied to buttons of 
        -* type "radio." 
        -* @default "Unchecked.  Click to check."
        -* @final
        -* @type String
        -*/
        -RADIO_DEFAULT_TITLE: "Unchecked.  Click to check.",
        -
        -
        -/**
        -* @property RADIO_CHECKED_TITLE
        -* @description String representing the title applied to buttons of type "radio" 
        -* when checked.
        -* @default "Checked.  Click to uncheck."
        -* @final
        -* @type String
        -*/
        -RADIO_CHECKED_TITLE: "Checked.  Click to uncheck.",
        -
        -
        -/**
        -* @property CHECKBOX_DEFAULT_TITLE
        -* @description String representing the default title applied to buttons of 
        -* type "checkbox." 
        -* @default "Unchecked.  Click to check."
        -* @final
        -* @type String
        -*/
        -CHECKBOX_DEFAULT_TITLE: "Unchecked.  Click to check.",
        -
        -
        -/**
        -* @property CHECKBOX_CHECKED_TITLE
        -* @description String representing the title applied to buttons of type 
        -* "checkbox" when checked.
        -* @default "Checked.  Click to uncheck."
        -* @final
        -* @type String
        -*/
        -CHECKBOX_CHECKED_TITLE: "Checked.  Click to uncheck.",
        -
        -
        -/**
        -* @property MENUBUTTON_DEFAULT_TITLE
        -* @description String representing the default title applied to buttons of 
        -* type "menubutton." 
        -* @default "Menu collapsed.  Click to expand."
        -* @final
        -* @type String
        -*/
        -MENUBUTTON_DEFAULT_TITLE: "Menu collapsed.  Click to expand.",
        -
        -
        -/**
        -* @property MENUBUTTON_MENU_VISIBLE_TITLE
        -* @description String representing the title applied to buttons of type 
        -* "menubutton" when the button's menu is visible. 
        -* @default "Menu expanded.  Click or press Esc to collapse."
        -* @final
        -* @type String
        -*/
        -MENUBUTTON_MENU_VISIBLE_TITLE: 
        -    "Menu expanded.  Click or press Esc to collapse.",
        -
        -
        -/**
        -* @property SPLITBUTTON_DEFAULT_TITLE
        -* @description  String representing the default title applied to buttons of 
        -* type "splitebutton." 
        -* @default "Menu collapsed.  Click inside option region or press 
        -* Ctrl + Shift + M to show the menu."
        -* @final
        -* @type String
        -*/
        -SPLITBUTTON_DEFAULT_TITLE: 
        -    "Menu collapsed.  Click inside option region or press Ctrl + Shift + M to show the menu.",
        -
        -
        -/**
        -* @property SPLITBUTTON_OPTION_VISIBLE_TITLE
        -* @description String representing the title applied to buttons of type 
        -* "splitbutton" when the button's menu is visible. 
        -* @default "Menu expanded.  Press Esc or Ctrl + Shift + M to hide the menu."
        -* @final
        -* @type String
        -*/
        -SPLITBUTTON_OPTION_VISIBLE_TITLE: 
        -    "Menu expanded.  Press Esc or Ctrl + Shift + M to hide the menu.",
        -
        -
        -/**
        -* @property SUBMIT_TITLE
        -* @description String representing the title applied to buttons of 
        -* type "submit." 
        -* @default "Click to submit form."
        -* @final
        -* @type String
        -*/
        -SUBMIT_TITLE: "Click to submit form.",
        -
        -
        -
        -// Protected attribute setter methods
        -
        -
        -/**
        -* @method _setType
        -* @description Sets the value of the button's "type" attribute.
        -* @protected
        -* @param {String} p_sType String indicating the value for the button's 
        -* "type" attribute.
        -*/
        -_setType: function(p_sType) {
        -
        -    if(p_sType == "splitbutton") {
        -
        -        this.on("option", this._onOption);
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _setLabel
        -* @description Sets the value of the button's "label" attribute.
        -* @protected
        -* @param {String} p_sLabel String indicating the value for the button's 
        -* "label" attribute.
        -*/
        -_setLabel: function(p_sLabel) {
        -
        -    this._button.innerHTML = p_sLabel;                
        -
        -},
        -
        -
        -/**
        -* @method _setTabIndex
        -* @description Sets the value of the button's "tabindex" attribute.
        -* @protected
        -* @param {Number} p_nTabIndex Number indicating the value for the button's 
        -* "tabindex" attribute.
        -*/
        -_setTabIndex: function(p_nTabIndex) {
        -
        -    this._button.tabIndex = p_nTabIndex;
        -
        -},
        -
        -
        -/**
        -* @method _setTitle
        -* @description Sets the value of the button's "title" attribute.
        -* @protected
        -* @param {String} p_nTabIndex Number indicating the value for the button's 
        -* "title" attribute.
        -*/
        -_setTitle: function(p_sTitle) {
        -
        -    if(this.get("type") != "link") {
        -
        -        var sTitle = p_sTitle;
        -
        -        if(!sTitle) {
        -
        -
        -            var sType = this.get("type");
        -
        -            switch(sType) {
        -
        -                case "radio":
        -
        -                    sTitle = this.RADIO_DEFAULT_TITLE;
        -
        -                break;
        -
        -                case "checkbox":
        -
        -                    sTitle = this.CHECKBOX_DEFAULT_TITLE;
        -
        -                break;
        -                
        -                case "menubutton":
        -
        -                    sTitle = this.MENUBUTTON_DEFAULT_TITLE;
        -
        -                break;
        -
        -                case "splitbutton":
        -
        -                    sTitle = this.SPLITBUTTON_DEFAULT_TITLE;
        -
        -                break;
        -
        -                case "submit":
        -
        -                    sTitle = this.SUBMIT_TITLE;
        -
        -                break;
        -
        -            }
        -
        -        }
        -
        -        this._button.title = sTitle;
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _setDisabled
        -* @description Sets the value of the button's "disabled" attribute.
        -* @protected
        -* @param {Boolean} p_bDisabled Boolean indicating the value for the button's 
        -* "disabled" attribute.
        -*/
        -_setDisabled: function(p_bDisabled) {
        -
        -    if(this.get("type") != "link") {
        -
        -        if(p_bDisabled) {
        -
        -            if(this.hasFocus()) {
        -            
        -                this.blur();
        -            
        -            }
        -
        -            this._button.setAttribute("disabled", "disabled");
        -
        -            this.addClass("disabled");
        -
        -        }
        -        else {
        -
        -            this._button.removeAttribute("disabled");
        -
        -            this.removeClass("disabled");
        -        
        -        }
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _setAccessKey
        -* @description Sets the value of the button's "accesskey" attribute.
        -* @protected
        -* @param {String} p_sAccessKey String indicating the value for the button's 
        -* "accesskey" attribute.
        -*/
        -_setAccessKey: function(p_sAccessKey) {
        -
        -    this._button.accessKey = p_sAccessKey;
        -
        -},
        -
        -
        -/**
        -* @method _setHref
        -* @description Sets the value of the button's "href" attribute.
        -* @protected
        -* @param {String} p_sHref String indicating the value for the button's 
        -* "href" attribute.
        -*/
        -_setHref: function(p_sHref) {
        -
        -    if(this.get("type") == "link") {
        -
        -        this._button.href = p_sHref;
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _setTarget
        -* @description Sets the value of the button's "target" attribute.
        -* @protected
        -* @param {String} p_sTarget String indicating the value for the button's 
        -* "target" attribute.
        -*/
        -_setTarget: function(p_sTarget) {
        -
        -    if(this.get("type") == "link") {
        -
        -        this._button.setAttribute("target", p_sTarget);
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _setChecked
        -* @description Sets the value of the button's "target" attribute.
        -* @protected
        -* @param {Boolean} p_bChecked Boolean indicating the value for the button's 
        -* "checked" attribute.
        -*/
        -_setChecked: function(p_bChecked) {
        -
        -    var sType = this.get("type"),
        -        sTitle;
        -
        -    if(sType == "checkbox" || sType == "radio") {
        -
        -        if(p_bChecked) {
        -
        -            this.addClass("checked");
        -            
        -            sTitle = (sType == "radio") ? 
        -                        this.RADIO_CHECKED_TITLE : 
        -                        this.CHECKBOX_CHECKED_TITLE;
        -        
        -        }
        -        else {
        -
        -            this.removeClass("checked");
        -
        -            sTitle = (sType == "radio") ? 
        -                        this.RADIO_DEFAULT_TITLE : 
        -                        this.CHECKBOX_DEFAULT_TITLE;
        -        
        -        }
        -
        -        this.set("title", sTitle);
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _setMenu
        -* @description Sets the value of the button's "menu" attribute.
        -* @protected
        -* @param {Object} p_oMenu Object indicating the value for the button's 
        -* "menu" attribute.
        -*/
        -_setMenu: function(p_oMenu) {
        -
        -    var Menu = YAHOO.widget.Menu,
        -        oMenu,
        -        me = this;
        -
        -    if(!Menu) {
        -
        -        this.logger.log("YAHOO.widget.Menu dependency not met.", "error");
        -
        -        return false;
        -    
        -    }
        -
        -
        -    function initMenu() {
        -    
        -        if(oMenu) {
        -    
        -            oMenu.showEvent.subscribe(this._onMenuShow, this, true);
        -            oMenu.hideEvent.subscribe(this._onMenuHide, this, true);
        -            oMenu.keyDownEvent.subscribe(this._onMenuKeyDown, this, true);
        -            oMenu.renderEvent.subscribe(this._onMenuRender, this, true);
        -            oMenu.clickEvent.subscribe(this._onMenuClick, this, true);
        -            oMenu.itemAddedEvent.subscribe(this._onMenuItemAdded, this, true);
        -
        -            var oSrcElement = oMenu.srcElement;
        -    
        -            if(oSrcElement && oSrcElement.tagName.toUpperCase() == "SELECT") {
        -    
        -                oSrcElement.style.display = "none";
        -                oSrcElement.parentNode.removeChild(oSrcElement);
        -    
        -            }
        -    
        -            this._menu = oMenu;
        -    
        -        }
        -        else {
        -    
        -            this._menu.destroy();
        -            this._menu = null;
        -    
        -        }
        -    
        -    }
        -
        -
        -    if(p_oMenu instanceof Menu) {
        -
        -        oMenu = p_oMenu;
        -        
        -        var aItems = oMenu.getItems(),
        -            nItems = aItems.length,
        -            oItem;
        -    
        -        if(nItems > 0) {
        -    
        -            var i = nItems - 1;
        -    
        -            do {
        -    
        -                oItem = aItems[i];
        -    
        -                if(oItem) {
        -    
        -                    oItem.cfg.subscribeToConfigEvent(
        -                                "selected", 
        -                                this._onMenuItemSelected, 
        -                                oItem, 
        -                                this
        -                            );
        -    
        -                }
        -            
        -            }
        -            while(i--);
        -    
        -        }
        -
        -        initMenu.call(this);
        -
        -    }
        -    else if(Lang.isArray(p_oMenu)) {
        -
        -        this.on("appendTo", function() {
        -
        -            oMenu = new Menu(
        -                            Dom.generateId(), 
        -                            { lazyload: true, itemdata: p_oMenu }
        -                        );
        -    
        -            initMenu.call(me);
        -        
        -        });
        -       
        -    }
        -    else if(Lang.isString(p_oMenu)) {
        -
        -        Event.onContentReady(p_oMenu, function() {
        -
        -            oMenu = new Menu(this, { lazyload: true });
        -
        -            initMenu.call(me);
        -        
        -        });
        -    
        -    }
        -    else if(p_oMenu && p_oMenu.nodeName) {
        -
        -        oMenu = new Menu(p_oMenu, { lazyload: true });
        -    
        -        initMenu.call(this);
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _setOnClick
        -* @description Sets the value of the button's "onclick" attribute.
        -* @protected
        -* @param {Object} p_oObject Object indicating the value for the button's 
        -* "onclick" attribute.
        -*/
        -_setOnClick: function(p_oObject) {
        -
        -    /*
        -        Remove any existing listeners if a "click" event handler has already 
        -        been specified.
        -    */
        -
        -    if(
        -        this._onclickAttributeValue && 
        -        (this._onclickAttributeValue != p_oObject)
        -    ) {
        -
        -        this.removeListener("click", this._onclickAttributeValue.fn);
        -
        -        this._onclickAttributeValue = null;
        -
        -    }
        -
        -
        -    if(
        -        !this._onclickAttributeValue && 
        -        Lang.isObject(p_oObject) && 
        -        Lang.isFunction(p_oObject.fn)
        -    ) {
        -
        -        this.on("click", p_oObject.fn, p_oObject.obj, p_oObject.scope);
        -
        -        this._onclickAttributeValue = p_oObject;
        -
        -    }
        -
        -},
        -
        -
        -
        -// Protected methods
        -
        -
        -/**
        -* @method _createButtonElement
        -* @description Creates the button's element.
        -* @protected
        -* @param {String} p_sType String indicating the type of element to create.
        -* @return {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -* level-one-html.html#ID-58190037">HTMLElement</a>}
        -*/
        -_createButtonElement: function(p_sType) {
        -
        -    var sTagName = this.TAG_NAME,
        -        oElement = document.createElement(sTagName);
        -
        -    oElement.innerHTML =  
        -    
        -        "<" + sTagName + " class=\"first-child\">" + 
        -        (p_sType == "link" ? "<a></a>" : "<button type=\"button\"></button>") + 
        -        "</" + sTagName + ">";
        -
        -    return oElement;
        -
        -},
        -
        -
        -/**
        -* @method _isActivationKey
        -* @description Determines if the specified keycode is one that toggles the 
        -* button's "active" state.
        -* @protected
        -* @param {Number} p_nKeyCode Number representing the keycode to be evaluated.
        -* @return {Boolean}
        -*/
        -_isActivationKey: function(p_nKeyCode) {
        -
        -    var sType = this.get("type"),
        -        aKeyCodes = (sType == "checkbox" || sType == "radio") ? 
        -            this.CHECK_ACTIVATION_KEYS : this.ACTIVATION_KEYS,
        -
        -        nKeyCodes = aKeyCodes.length;
        -
        -    if(nKeyCodes > 0) {
        -
        -        var i = nKeyCodes - 1;
        -
        -        do {
        -
        -            if(p_nKeyCode == aKeyCodes[i]) {
        -
        -                return true;
        -
        -            }
        -
        -        }
        -        while(i--);
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _isSplitButtonOptionKey
        -* @description Determines if the specified keycode is one that toggles the 
        -* display of the split button's menu.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -* @return {Boolean}
        -*/
        -_isSplitButtonOptionKey: function(p_oEvent) {
        -
        -    return (
        -        p_oEvent.ctrlKey && 
        -        p_oEvent.shiftKey && 
        -        Event.getCharCode(p_oEvent) == 77
        -    );
        -
        -},
        -
        -
        -/**
        -* @method _addListenersToForm
        -* @description Adds event handlers to the button's form.
        -* @protected
        -*/
        -_addListenersToForm: function() {
        -
        -    var oForm = this.getForm();
        -
        -    if(oForm) {
        -
        -        Event.on(oForm, "reset", this._onFormReset, null, this);
        -        Event.on(oForm, "submit", this._onFormSubmit, null, this);
        -
        -        var oSrcElement = this.get("srcelement");
        -
        -
        -        if (
        -            (m_bIE || m_bGecko) && 
        -            (
        -                this.get("type") == "submit" || 
        -                (oSrcElement && oSrcElement.type == "submit")
        -            )
        -        ) {
        -        
        -            var aListeners = Event.getListeners(oForm, "keydown"),
        -                bHasKeyDownListener = false;
        -    
        -            if(aListeners) {
        -    
        -                var nListeners = aListeners.length;
        -    
        -                if(nListeners > 0) {
        -    
        -                    var i = nListeners - 1;
        -                    
        -                    do {
        -       
        -                        if(
        -                            aListeners[i].fn == 
        -                            YAHOO.widget.Button.onFormKeyDown
        -                        ) {
        -        
        -                            bHasKeyDownListener = true;
        -                            break;
        -                        
        -                        }
        -        
        -                    }
        -                    while(i--);
        -                
        -                }
        -            
        -            }
        -    
        -    
        -            if(!bHasKeyDownListener) {
        -    
        -                Event.on(
        -                        oForm, 
        -                        "keydown", 
        -                        YAHOO.widget.Button.onFormKeyDown, 
        -                        null, 
        -                        this
        -                    );
        -    
        -            }
        -
        -        }
        -    
        -    }
        -
        -},
        -
        -
        -_originalMaxHeight: -1,
        -
        -
        -/**
        -* @method _showMenu
        -* @description Shows the button's menu.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event) that triggered the display of
        -* the menu.
        -*/
        -_showMenu: function(p_oEvent) {
        -
        -    var oMenu = this._menu;
        -
        -    if(oMenu) {
        -
        -        YAHOO.widget.MenuManager.hideVisible();
        -
        -        oMenu.cfg.applyConfig({
        -                context:[this.get("id"), "tl", "bl"], 
        -                clicktohide: false,
        -                constraintoviewport: false,
        -                visible: true
        -            });
        -            
        -        oMenu.cfg.fireQueue();
        -
        -        /*
        -            Stop the propagation of the event so that the MenuManager 
        -            doesn't blur the menu after it gets focus.
        -        */
        -
        -        if(p_oEvent.type == "mousedown") {
        -
        -            Event.stopPropagation(p_oEvent);
        -
        -        }
        -
        -        this._menu.focus(); 
        -
        -
        -        var nViewportHeight = Dom.getViewportHeight(),
        -            nMenuHeight = oMenu.element.offsetHeight;
        -
        -
        -        if((oMenu.cfg.getProperty("y") + nMenuHeight) > nViewportHeight) {
        -
        -            this.logger.log("Current menu position will place a portion, or " +
        -                "the entire menu outside the boundary of the viewport.  " + 
        -                "Repositioning the menu to stay inside the viewport.");
        -
        -            oMenu.align("bl", "tl");
        -
        -            var nY = oMenu.cfg.getProperty("y"),
        -
        -                nScrollTop = (
        -                                document.documentElement.scrollTop || 
        -                                document.body.scrollTop
        -                            );
        -            
        -
        -            if(nScrollTop >= nY) {
        -
        -                if(this._originalMaxHeight == -1) {
        -
        -                    this._originalMaxHeight = 
        -                            oMenu.cfg.getProperty("maxheight");
        -
        -                }
        -
        -                oMenu.cfg.setProperty(
        -                            "maxheight", 
        -                            (nMenuHeight - ((nScrollTop - nY) + 20))
        -                        );
        -
        -                oMenu.align("bl", "tl");
        -
        -            }
        -
        -        }
        -
        -        oMenu.cfg.setProperty("constraintoviewport", true);
        -
        -    }            
        -
        -},
        -
        -
        -/**
        -* @method _hideMenu
        -* @description Hides the button's menu.
        -* @protected
        -*/
        -_hideMenu: function() {
        -
        -    var oMenu = this._menu;
        -
        -    if(oMenu && oMenu.cfg.getProperty("visible")) {
        -
        -        oMenu.hide();
        -
        -    }
        -
        -},
        -
        -
        -
        -
        -// Protected event handlers
        -
        -
        -/**
        -* @method _onMouseOver
        -* @description "mouseover" event handler for the button.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onMouseOver: function(p_oEvent) {
        -
        -    if(!this._hasMouseEventHandlers) {
        -
        -        this.on("mouseout", this._onMouseOut);
        -        this.on("mousedown", this._onMouseDown);
        -        this.on("mouseup", this._onMouseUp);
        -
        -        this._hasMouseEventHandlers = true;
        -
        -    }
        -
        -    this.addClass("hover");
        -
        -    if(this._activationButtonPressed) {
        -
        -        this.addClass("active");
        -
        -    }
        -
        -
        -    if(this._bOptionPressed) {
        -
        -        this.addClass("activeoption");
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onMouseOut
        -* @description "mouseout" event handler for the button.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onMouseOut: function(p_oEvent) {
        -
        -    this.removeClass("hover");
        -
        -    if(this.get("type") != "menubutton") {
        -
        -        this.removeClass("active");
        -
        -    }
        -
        -    if(this._activationButtonPressed || this._bOptionPressed) {
        -
        -        Event.on(document, "mouseup", this._onDocumentMouseUp, null, this);
        -
        -    }
        -    
        -},
        -
        -
        -/**
        -* @method _onDocumentMouseUp
        -* @description "mouseup" event handler for the button.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onDocumentMouseUp: function(p_oEvent) {
        -
        -    this._activationButtonPressed = false;
        -    this._bOptionPressed = false;
        -
        -    var sType = this.get("type");
        -
        -    if(sType == "menubutton" || sType == "splitbutton") {
        -
        -        this.removeClass((sType == "menubutton" ? "active" : "activeoption"));
        -
        -        this._hideMenu();
        -
        -    }
        -
        -    Event.removeListener(document, "mouseup", this._onDocumentMouseUp);
        -
        -},
        -
        -
        -/**
        -* @method _onMouseDown
        -* @description "mousedown" event handler for the button.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onMouseDown: function(p_oEvent) {
        -
        -    if((p_oEvent.which || p_oEvent.button) == 1) {
        -
        -        if(!this.hasFocus()) {
        -        
        -            this.focus();
        -        
        -        }
        -
        -
        -        var sType = this.get("type");
        -
        -
        -        if(sType == "splitbutton") {
        -        
        -            var oElement = this.get("element"),
        -                nX = Event.getPageX(p_oEvent) - Dom.getX(oElement);
        -
        -            if((oElement.offsetWidth - this.OPTION_AREA_WIDTH) < nX) {
        -                
        -                this.fireEvent("option", p_oEvent);
        -
        -            }
        -            else {
        -
        -                this.addClass("active");
        -
        -                this._activationButtonPressed = true;
        -
        -            }
        -
        -        }
        -        else if(sType == "menubutton") {
        -
        -            if(this.hasClass("active")) {
        -
        -                this._hideMenu();
        -
        -                this._activationButtonPressed = false;
        -
        -            }
        -            else {
        -
        -                this._showMenu(p_oEvent);
        -
        -                this._activationButtonPressed = true;
        -            
        -            }
        -
        -        }
        -        else {
        -
        -            this.addClass("active");
        -
        -            this._activationButtonPressed = true;
        -        
        -        }
        -
        -
        -
        -        if(sType == "splitbutton" || sType == "menubutton") {
        -
        -            var me = this;
        -
        -            
        -            function onMouseUp() {
        -            
        -                me._hideMenu();
        -                me.removeListener("mouseup", onMouseUp);
        -            
        -            }
        -
        -
        -            this._hideMenuTimerId = window.setTimeout(function() {
        -            
        -                me.on("mouseup", onMouseUp);
        -            
        -            }, 250);
        -
        -        }
        -
        -    }
        -    
        -},
        -
        -
        -/**
        -* @method _onMouseUp
        -* @description "mouseup" event handler for the button.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onMouseUp: function(p_oEvent) {
        -
        -    if(this._hideMenuTimerId) {
        -
        -        window.clearTimeout(this._hideMenuTimerId);
        -
        -    }
        -
        -    var sType = this.get("type");
        -
        -    if(sType == "checkbox" || sType == "radio") {
        -
        -        this.set("checked", !(this.get("checked")));
        -    
        -    }
        -
        -
        -    this._activationButtonPressed = false;
        -    
        -
        -    if(this.get("type") != "menubutton") {
        -
        -        this.removeClass("active");
        -    
        -    }
        -    
        -},
        -
        -
        -/**
        -* @method _onFocus
        -* @description "focus" event handler for the button.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onFocus: function(p_oEvent) {
        -
        -    this.addClass("focus");
        -
        -    if(this._activationKeyPressed) {
        -
        -        this.addClass("active");
        -   
        -    }
        -
        -    m_oFocusedButton = this;
        -
        -
        -    if(!this._hasKeyEventHandlers) {
        -
        -        var oElement = this._button;
        -
        -        Event.on(oElement, "blur", this._onBlur, null, this);
        -        Event.on(oElement, "keydown", this._onKeyDown, null, this);
        -        Event.on(oElement, "keyup", this._onKeyUp, null, this);
        -
        -        this._hasKeyEventHandlers = true;
        -
        -    }
        -
        -
        -    this.fireEvent("focus", p_oEvent);
        -
        -},
        -
        -
        -/**
        -* @method _onBlur
        -* @description "blur" event handler for the button.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onBlur: function(p_oEvent) {
        -
        -    this.removeClass("focus");
        -
        -    if(this.get("type") != "menubutton") {
        -
        -        this.removeClass("active");
        -
        -    }    
        -
        -    if(this._activationKeyPressed) {
        -
        -        Event.on(document, "keyup", this._onDocumentKeyUp, null, this);
        -
        -    }
        -
        -
        -    m_oFocusedButton = null;
        -
        -    this.fireEvent("blur", p_oEvent);
        -   
        -},
        -
        -
        -/**
        -* @method _onDocumentKeyUp
        -* @description "keyup" event handler for the document.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onDocumentKeyUp: function(p_oEvent) {
        -
        -    if(this._isActivationKey(Event.getCharCode(p_oEvent))) {
        -
        -        this._activationKeyPressed = false;
        -        
        -        Event.removeListener(document, "keyup", this._onDocumentKeyUp);
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onKeyDown
        -* @description "keydown" event handler for the button.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onKeyDown: function(p_oEvent) {
        -
        -    if(
        -        this.get("type") == "splitbutton" && 
        -        this._isSplitButtonOptionKey(p_oEvent)
        -    ) {
        -
        -        this.fireEvent("option", p_oEvent);
        -
        -    }
        -    else if(this._isActivationKey(Event.getCharCode(p_oEvent))) {
        -
        -        if(this.get("type") == "menubutton") {
        -
        -            this._showMenu(p_oEvent);
        -
        -        }
        -        else {
        -
        -            this._activationKeyPressed = true;
        -            
        -            this.addClass("active");
        -        
        -        }
        -    
        -    }
        -
        -
        -    var oMenu = this._menu;
        -
        -    if(
        -        oMenu && oMenu.cfg.getProperty("visible") && 
        -        Event.getCharCode(p_oEvent) == 27
        -    ) {
        -    
        -        oMenu.hide();
        -        this.focus();
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onKeyUp
        -* @description "keyup" event handler for the button.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onKeyUp: function(p_oEvent) {
        -
        -    if(this._isActivationKey(Event.getCharCode(p_oEvent))) {
        -
        -        var sType = this.get("type");
        -
        -        if(sType == "checkbox" || sType == "radio") {
        -
        -            this.set("checked", !(this.get("checked")));
        -        
        -        }
        -
        -        this._activationKeyPressed = false;
        -
        -        if(this.get("type") != "menubutton") {
        -
        -            this.removeClass("active");
        -
        -        }
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onClick
        -* @description "click" event handler for the button.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onClick: function(p_oEvent) {
        -
        -    var sType = this.get("type"),
        -        sTitle;
        -
        -    switch(sType) {
        -
        -        case "radio":
        -        case "checkbox":
        -
        -            if(this.get("checked")) {
        -                
        -                sTitle = (sType == "radio") ? 
        -                            this.RADIO_CHECKED_TITLE : 
        -                            this.CHECKBOX_CHECKED_TITLE;
        -            
        -            }
        -            else {
        -            
        -                sTitle = (sType == "radio") ? 
        -                            this.RADIO_DEFAULT_TITLE : 
        -                            this.CHECKBOX_DEFAULT_TITLE;
        -            
        -            }
        -            
        -            this.set("title", sTitle);
        -
        -        break;
        -
        -        case "submit":
        -
        -            this.submitForm();
        -        
        -        break;
        -
        -        case "reset":
        -
        -            var oForm = this.getForm();
        -
        -            if(oForm) {
        -
        -                oForm.reset();
        -            
        -            }
        -
        -        break;
        -
        -        case "menubutton":
        -
        -            sTitle = this._menu.cfg.getProperty("visible") ? 
        -                            this.MENUBUTTON_MENU_VISIBLE_TITLE : 
        -                            this.MENUBUTTON_DEFAULT_TITLE;
        -
        -            this.set("title", sTitle);
        -
        -        break;
        -
        -        case "splitbutton":
        -
        -            var oElement = this.get("element"),
        -                nX = Event.getPageX(p_oEvent) - Dom.getX(oElement);
        -
        -            if((oElement.offsetWidth - this.OPTION_AREA_WIDTH) < nX) {
        -
        -                return false;
        -            
        -            }
        -            else {
        -
        -                this._hideMenu();
        -    
        -                var oSrcElement = this.get("srcelement");
        -    
        -                if(oSrcElement && oSrcElement.type == "submit") {
        -    
        -                    this.submitForm();
        -                
        -                }
        -            
        -            }
        -
        -            sTitle = this._menu.cfg.getProperty("visible") ? 
        -                            this.SPLITBUTTON_OPTION_VISIBLE_TITLE : 
        -                            this.SPLITBUTTON_DEFAULT_TITLE;
        -
        -            this.set("title", sTitle);
        -
        -        break;
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onAppendTo
        -* @description "appendTo" event handler for the button.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onAppendTo: function(p_oEvent) {
        -
        -    /*
        -        It is necessary to call "getForm" using "setTimeout" to make sure that 
        -        the button's "form" property returns a node reference.  Sometimes, if
        -        you try to get the reference immediately after appending the field, it
        -        is null.
        -    */
        -
        -    var me = this;
        -
        -    window.setTimeout(function() {
        -
        -        me._addListenersToForm();
        -
        -    }, 0);
        -
        -},
        -
        -
        -/**
        -* @method _onFormSubmit
        -* @description "submit" event handler for the button's form.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onFormSubmit: function(p_oEvent) {
        -
        -    var sType = this.get("type"),
        -        oMenuItem = this.get("selectedMenuItem"),
        -        oForm = this.getForm();
        -    
        -    
        -    if(sType == "radio" || sType == "checkbox") {
        -    
        -        YAHOO.log("Creating hidden field for button: " + this);
        -    
        -        this.createHiddenField();
        -    
        -    }
        -    else if(oMenuItem) {
        -    
        -        var oSrcElement = this._menu.srcElement;
        -
        -        if(oSrcElement && oSrcElement.tagName.toUpperCase() == "SELECT") {
        -
        -            oForm.appendChild(oSrcElement);
        -            oSrcElement.selectedIndex = oMenuItem.index;
        -
        -        }
        -        else {
        -    
        -            var oValue = (oMenuItem.value === null || oMenuItem.value === "") ? 
        -                                oMenuItem.cfg.getProperty("text") : 
        -                                oMenuItem.value;
        -
        -
        -            if(oValue) {
        -    
        -                var oField = createInputElement(
        -                                    "hidden", 
        -                                    (this.get("name") + "_options"),
        -                                    oValue
        -                                );
        -    
        -                oForm.appendChild(oField);
        -    
        -            }
        -    
        -        }                
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onFormReset
        -* @description "reset" event handler for the button's form.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onFormReset: function(p_oEvent) {
        -
        -    var sType = this.get("type");
        -
        -    if(sType == "checkbox" || sType == "radio") {
        -
        -        this.resetValue("checked");
        -
        -    }
        -
        -    if(this._menu) {
        -
        -        this.resetValue("selectedMenuItem");
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onDocumentMouseDown
        -* @description "mousedown" event handler for the document.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onDocumentMouseDown: function(p_oEvent) {
        -
        -    var oTarget = Event.getTarget(p_oEvent),
        -        oButtonElement = this.get("element"),
        -        oMenuElement = this._menu.element;
        -
        -    if(
        -        oTarget != oButtonElement && 
        -        !Dom.isAncestor(oButtonElement, oTarget) && 
        -        oTarget != oMenuElement && 
        -        !Dom.isAncestor(oMenuElement, oTarget)
        -    ) {
        -
        -        this._hideMenu();
        -
        -        Event.removeListener(
        -                document, 
        -                "mousedown", 
        -                this._onDocumentMouseDown
        -            );    
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onOption
        -* @description "option" event handler for the button.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onOption: function(p_oEvent) {
        -
        -    if(this.hasClass("activeoption")) {
        -
        -        this._hideMenu();
        -
        -        this._bOptionPressed = false;
        -
        -    }
        -    else {
        -
        -        this._showMenu(p_oEvent);    
        -
        -        this._bOptionPressed = true;
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onMenuShow
        -* @description "show" event handler for the button's menu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -*/
        -_onMenuShow: function(p_sType, p_aArgs) {
        -
        -    Event.on(document, "mousedown", this._onDocumentMouseDown, null, this);
        -
        -    var sTitle,
        -        sClass;
        -    
        -    if(this.get("type") == "splitbutton") {
        -
        -        sTitle = this.SPLITBUTTON_OPTION_VISIBLE_TITLE;
        -        sClass = "activeoption";
        -    
        -    }
        -    else {
        -
        -        sTitle = this.MENUBUTTON_MENU_VISIBLE_TITLE;        
        -        sClass = "active";
        -
        -    }
        -
        -    this.addClass(sClass);
        -    this.set("title", sTitle);
        -
        -},
        -
        -
        -/**
        -* @method _onMenuHide
        -* @description "hide" event handler for the button's menu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -*/
        -_onMenuHide: function(p_sType, p_aArgs) {
        -    
        -    if(this._originalMaxHeight != -1) {
        -    
        -        this._menu.cfg.setProperty("maxheight", this._originalMaxHeight);
        -
        -    }
        -
        -
        -    var sTitle,
        -        sClass;
        -    
        -    if(this.get("type") == "splitbutton") {
        -
        -        sTitle = this.SPLITBUTTON_DEFAULT_TITLE;
        -        sClass = "activeoption";
        -
        -    }
        -    else {
        -
        -        sTitle = this.MENUBUTTON_DEFAULT_TITLE;        
        -        sClass = "active";
        -    }
        -
        -
        -    this.removeClass(sClass);
        -    this.set("title", sTitle);
        -
        -
        -    if(this.get("type") == "splitbutton") {
        -
        -        this._bOptionPressed = false;
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onMenuKeyDown
        -* @description "keydown" event handler for the button's menu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -*/
        -_onMenuKeyDown: function(p_sType, p_aArgs) {
        -
        -    var oEvent = p_aArgs[0];
        -
        -    if(Event.getCharCode(oEvent) == 27) {
        -
        -        this.focus();
        -
        -        if(this.get("type") == "splitbutton") {
        -        
        -            this._bOptionPressed = false;
        -        
        -        }
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onMenuRender
        -* @description "render" event handler for the button's menu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -*/
        -_onMenuRender: function(p_sType, p_aArgs) {
        -
        -    this.get("element").parentNode.appendChild(this._menu.element);
        -
        -},
        -
        -
        -/**
        -* @method _onMenuItemSelected
        -* @description "selectedchange" event handler for each item in the 
        -* button's menu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {<a href="YAHOO.widget.MenuItem.html">YAHOO.widget.MenuItem</a>} 
        -* p_oItem Object representing the menu item that subscribed to the event.
        -*/
        -_onMenuItemSelected: function(p_sType, p_aArgs, p_oItem) {
        -    
        -    this.set("selectedMenuItem", p_oItem);
        -
        -},
        -
        -
        -/**
        -* @method _onMenuItemAdded
        -* @description "itemadded" event handler for the button's menu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {<a href="YAHOO.widget.MenuItem.html">YAHOO.widget.MenuItem</a>} 
        -* p_oItem Object representing the menu item that subscribed to the event.
        -*/
        -_onMenuItemAdded: function(p_sType, p_aArgs, p_oItem) {
        -    
        -    var oItem = p_aArgs[0];
        -
        -    oItem.cfg.subscribeToConfigEvent(
        -                "selected", 
        -                this._onMenuItemSelected, 
        -                oItem, 
        -                this
        -            );
        -
        -},
        -
        -
        -/**
        -* @method _onMenuClick
        -* @description "click" event handler for the button's menu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -*/
        -_onMenuClick: function(p_sType, p_aArgs) {
        -
        -    var oItem = p_aArgs[1];
        -
        -    if(oItem) {
        -
        -        var oSrcElement = this.get("srcelement");
        -    
        -        if(oSrcElement && oSrcElement.type == "submit") {
        -    
        -            this.submitForm();
        -    
        -        }
        -    
        -        this._hideMenu();
        -    
        -    }
        -
        -},
        -
        -
        -
        -// Public methods
        -
        -
        -/**
        -* @method createHiddenField
        -* @description Creates the button's hidden form field and appends it to its
        -* parent form.
        -* @return {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-6043025">HTMLInputElement</a>}
        -*/
        -createHiddenField: function () {
        -
        -    if (!this.get("disabled")) {
        -
        -        var sType = this.get("type"),
        -        
        -            bCheckable = (sType == "checkbox" || sType == "radio"),
        -        
        -            oField = createInputElement(
        -            
        -                        /*
        -                            Use "submit" type for IE so that the input 
        -                            element will be able to be clicked via a call to 
        -                            the "click" method by the "submitForm" method.
        -                        */
        -            
        -                        (bCheckable ? sType : (m_bIE ? "submit" : "hidden")),
        -                        this.get("name"),
        -                        this.get("value"),
        -                        this.get("checked")
        -                    ),
        -                    
        -            oForm = this.getForm();
        -    
        -
        -        if (oField) {
        -
        -            if (bCheckable || oField.type == "submit") {
        -
        -                oField.style.display = "none";
        -
        -            }
        -
        -
        -            if (oForm) {
        -        
        -                var oHiddenField = this._hiddenField;
        -        
        -                if (oHiddenField && Dom.inDocument(oHiddenField)) {
        -        
        -                    oForm.replaceChild(oField, oHiddenField);
        -        
        -                }
        -                else {
        -        
        -                    oForm.appendChild(oField);
        -                    
        -                }
        -            
        -            }
        -    
        -            this._hiddenField = oField;
        -    
        -            return oField;
        -
        -        }
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method submitForm
        -* @description Submits the form to which the button belongs.
        -* @protected
        -*/
        -submitForm: function(p_oMenuItem) {
        -
        -    var oForm = this.getForm();
        -
        -    if (oForm) {
        -
        -        var oInput = this.createHiddenField();
        -
        -        if (m_bIE) {
        -
        -            /*
        -                Clicking the button via a call to the "click" method will 
        -                cause IE to both fire the form's "submit" event as well as 
        -                submit the form.  Originally tried just firing the "submit"
        -                event via "fireEvent," but then the event could not 
        -                be cancelled.
        -            */            
        -
        -            oInput.click();
        -
        -        }
        -        else {  // Gecko, Opera, and Safari
        -
        -            var oEvent = document.createEvent("HTMLEvents");
        -            oEvent.initEvent("submit", true, true);
        -
        -            /*
        -                In Safari, dispatching a "submit" event to a form WILL cause  
        -                the form's "submit" event to fire, but WILL NOT submit the   
        -                form.  Therefore, we need to call the "submit" method as well.
        -            */
        -
        -            var bSubmitForm = oForm.dispatchEvent(oEvent);
        -          
        -            if(m_bSafari && bSubmitForm) {
        -
        -                oForm.submit();
        -            
        -            }
        -
        -        }
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method init
        -* @description The Button class's initialization method.
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;input&#62;</code>, <code>&#60;a&#62;</code> or 
        -* <code>&#60;span&#62;</code> element to be used to create the button.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-6043025">HTMLInputElement</a>|<a href="
        -* http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#
        -* ID-33759296">HTMLElement</a>} p_oElement Object reference for the 
        -* <code>&#60;input&#62;</code>, <code>&#60;a&#62;</code> or 
        -* <code>&#60;span&#62;</code> element to be used to create the button.
        -* @param {Object} p_oElement Object literal specifying a set of configuration 
        -* attributes used to create the button.
        -* @param {Object} p_oAttributes Optional. Object literal specifying a set of  
        -* configuration attributes used to create the button.
        -*/
        -init: function(p_oElement, p_oAttributes) {
        -
        -    var sTagName = p_oAttributes.type == "link" ? "A" : "BUTTON",
        -        oSrcElement = p_oAttributes.srcelement;
        -
        -
        -    this._button = p_oElement.getElementsByTagName(sTagName)[0];
        -
        -
        -    YAHOO.widget.Button.superclass.init.call(
        -            this, p_oElement, 
        -            p_oAttributes
        -        );
        -
        -
        -    m_oButtons[this.get("id")] = this;
        -
        -
        -    this.addClass(this.CSS_CLASS_NAME);
        -    
        -    if(m_bIE && !m_bIE7) {
        -
        -        this.addClass("ie6");
        -
        -    }
        -    
        -    this.addClass(this.get("type"));
        -
        -    Event.on(this._button, "focus", this._onFocus, null, this);
        -    this.on("mouseover", this._onMouseOver);
        -    this.on("click", this._onClick);
        -    this.on("appendTo", this._onAppendTo);
        -    
        -    var oContainer = this.get("container"),
        -        oElement = this.get("element");
        -
        -
        -    if(oContainer) {
        -
        -        if(Lang.isString(oContainer)) {
        -
        -            var me = this;
        -
        -            Event.onContentReady(oContainer, function() {
        -
        -                me.appendTo(this);            
        -            
        -            });
        -
        -        }
        -        else {
        -
        -            this.appendTo(oContainer);
        -
        -        }
        -
        -    }
        -    else if(
        -        !Dom.inDocument(oElement) && 
        -        oSrcElement && 
        -        oSrcElement.tagName.toUpperCase() == "INPUT"
        -    ) {
        -
        -        var oParentNode = oSrcElement.parentNode;
        -
        -        if(oParentNode) {
        -
        -            this.fireEvent("beforeAppendTo", {
        -                type: "beforeAppendTo",
        -                target: oParentNode
        -            });
        -    
        -            oParentNode.replaceChild(oElement, oSrcElement);
        -    
        -            this.fireEvent("appendTo", {
        -                type: "appendTo",
        -                target: oParentNode
        -            });
        -        
        -        }
        -
        -    }
        -    else if(
        -        Dom.inDocument(oElement) && 
        -        oSrcElement.tagName.toUpperCase() == "SPAN"
        -    ) {
        -
        -        this._addListenersToForm();
        -
        -    }
        -
        -    this.logger.log("Initialization completed.");
        -
        -},
        -
        -
        -/**
        -* @method initAttributes
        -* @description Initializes all of the configuration attributes used to create 
        -* the button.
        -* @param {Object} p_oAttributes Object literal specifying a set of 
        -* configuration attributes used to create the button.
        -*/
        -initAttributes: function(p_oAttributes) {
        -
        -    var oAttributes = p_oAttributes || {};
        -
        -    YAHOO.widget.Button.superclass.initAttributes.call(this, oAttributes);
        -
        -
        -    /**
        -    * @config type
        -    * @description String specifying the button's type.  Possible values are: 
        -    * "button," "link," "submit," "reset," "checkbox," "radio," "menubutton," 
        -    * and "splitbutton."
        -    * @default "button"
        -    * @type String
        -    */
        -    this.setAttributeConfig("type", {
        -
        -        value: (oAttributes.type || "button"),
        -        validator: Lang.isString,
        -        writeOnce: true,
        -        method: this._setType
        -
        -    });
        -
        -
        -    /**
        -    * @config label
        -    * @description String specifying the button's text label or innerHTML.
        -    * @default null
        -    * @type String
        -    */
        -    this.setAttributeConfig("label", {
        -
        -        value: oAttributes.label,
        -        validator: Lang.isString,
        -        method: this._setLabel
        -
        -    });
        -
        -
        -    /**
        -    * @config value
        -    * @description Object specifying the value for the button.
        -    * @default null
        -    * @type Object
        -    */
        -    this.setAttributeConfig("value", {
        -
        -        value: oAttributes.value
        -
        -    });
        -
        -
        -    /**
        -    * @config name
        -    * @description String specifying the name for the button.
        -    * @default null
        -    * @type String
        -    */
        -    this.setAttributeConfig("name", {
        -
        -        value: oAttributes.name,
        -        validator: Lang.isString
        -
        -    });
        -
        -
        -    /**
        -    * @config tabindex
        -    * @description Number specifying the tabindex for the button.
        -    * @default null
        -    * @type Number
        -    */
        -    this.setAttributeConfig("tabindex", {
        -
        -        value: oAttributes.tabindex,
        -        validator: Lang.isNumber,
        -        method: this._setTabIndex
        -
        -    });
        -
        -
        -    /**
        -    * @config title
        -    * @description String specifying the title for the button.
        -    * @default null
        -    * @type String
        -    */
        -    this.configureAttribute("title", {
        -
        -        value: oAttributes.title,
        -        validator: Lang.isString,
        -        method: this._setTitle
        -
        -    });
        -
        -
        -    /**
        -    * @config disabled
        -    * @description Boolean indicating if the button should be disabled.  
        -    * (Disabled buttons are dimmed and will not respond to user input 
        -    * or fire events.  Does not apply to button's of type "link.")
        -    * @default false
        -    * @type Boolean
        -    */
        -    this.setAttributeConfig("disabled", {
        -
        -        value: (oAttributes.disabled || false),
        -        validator: Lang.isBoolean,
        -        method: this._setDisabled
        -
        -    });
        -
        -
        -    /**
        -    * @config href
        -    * @description String specifying the href for the button.  Applies only to 
        -    * buttons of type "link."
        -    * @type String
        -    */
        -    this.setAttributeConfig("href", {
        -
        -        value: oAttributes.href,
        -        validator: Lang.isString,
        -        method: this._setHref
        -
        -    });
        -
        -
        -    /**
        -    * @config target
        -    * @description String specifying the target for the button.  Applies only  
        -    * to buttons of type "link."
        -    * @type String
        -    */
        -    this.setAttributeConfig("target", {
        -
        -        value: oAttributes.target,
        -        validator: Lang.isString,
        -        method: this._setTarget
        -
        -    });
        -
        -
        -    /**
        -    * @config checked
        -    * @description Boolean indicating if the button is checked.  Applies only
        -    * to buttons of type "radio" and "checkbox."
        -    * @default false
        -    * @type Boolean
        -    */
        -    this.setAttributeConfig("checked", {
        -
        -        value: (oAttributes.checked || false),
        -        validator: Lang.isBoolean,
        -        method: this._setChecked
        -
        -    });
        -
        -
        -	/**
        -	* @config container
        -	* @description HTML element reference or string specifying the id 
        -	* attribute of the HTML element that the button's markup should be 
        -	* rendered into.
        -	* @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -	* level-one-html.html#ID-58190037">HTMLElement</a>|String
        -	* @default null
        -	*/
        -    this.setAttributeConfig("container", {
        -
        -        value: oAttributes.container
        -
        -    });
        -
        -
        -	/**
        -	* @config srcelement
        -    * @description Object reference to the HTML element (either 
        -    * <code>&#60;input&#62;</code> or <code>&#60;span&#62;</code>) used to 
        -    * create the button.
        -	* @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -	* level-one-html.html#ID-58190037">HTMLElement</a>|String
        -	* @default null
        -	*/
        -    this.setAttributeConfig("srcelement", {
        -
        -        value: oAttributes.srcelement,
        -        writeOnce: true
        -
        -    });
        -
        -
        -	/**
        -	* @config menu
        -    * @description Object specifying the menu for the button.  The value can be
        -    * one of the following:
        -    * <ul>
        -    * <li>Object specifying a <a href="YAHOO.widget.Menu.html">
        -    * YAHOO.widget.Menu</a> instance.</li>
        -    * <li>String specifying the id attribute of the <code>&#60;div&#62;</code> 
        -    * element used to create the menu.</li>
        -    * <li>String specifying the id attribute of the 
        -    * <code>&#60;select&#62;</code> element used to create the menu.</li>
        -    * <li>Object specifying the <code>&#60;div&#62;</code> element used to 
        -    * create the menu.</li>
        -    * <li>Object specifying the <code>&#60;select&#62;</code> element used to 
        -    * create the menu.</li>
        -    * <li>Array of object literals, each representing a set of 
        -    * <a href="YAHOO.widget.MenuItem.html">YAHOO.widget.MenuItem</a> 
        -    * configuration attributes.</li>
        -    * <li>Array of strings representing the text labels for each menu item in 
        -    * the menu.</li>
        -    * </ul>
        -	* @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -	* level-one-html.html#ID-58190037">HTMLElement</a>|String|Array
        -	* @default null
        -	*/
        -    this.setAttributeConfig("menu", {
        -
        -        value: null,
        -        method: this._setMenu
        -    
        -    });
        -
        -
        -	/**
        -	* @config selectedMenuItem
        -    * @description Reference to the item in the button's menu that is
        -    * currently selected.
        -	* @type <a href="YAHOO.widget.MenuItem.html">YAHOO.widget.MenuItem</a>
        -	* @default null
        -	*/
        -    this.setAttributeConfig("selectedMenuItem", {
        -
        -        value: null
        -    
        -    });
        -
        -
        -	/**
        -	* @config onclick
        -    * @description Object literal representing the code to be executed when 
        -    * the button is clicked.  Format:<br> <code> {<br> 
        -    * <strong>fn:</strong> Function,   &#47;&#47; The handler to call when the 
        -    * event fires.<br> <strong>obj:</strong> Object, &#47;&#47; An object to 
        -    * pass back to the handler.<br> <strong>scope:</strong> Object &#47;&#47; 
        -    * The object to use for the scope of the handler.<br> } </code>
        -    * @type Object
        -	* @default null
        -	*/
        -    this.setAttributeConfig("onclick", {
        -
        -        value: oAttributes.onclick,
        -        method: this._setOnClick
        -    
        -    });
        -
        -},
        -
        -
        -/**
        -* @method focus
        -* @description Causes the button to receive the focus and fires the button's
        -* "focus" event.
        -*/
        -focus: function() {
        -
        -    if(!this.get("disabled")) {
        -
        -        this._button.focus();
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method blur
        -* @description Causes the button to lose focus and fires the button's
        -* "blur" event.
        -*/
        -blur: function() {
        -
        -    if(!this.get("disabled")) {
        -
        -        this._button.blur();
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method hasFocus
        -* @description Returns a boolean indicating whether or not the button has focus.
        -* @return {Boolean}
        -*/
        -hasFocus: function() {
        -
        -    return (m_oFocusedButton == this);
        -
        -},
        -
        -
        -/**
        -* @method isActive
        -* @description Returns a boolean indicating whether or not the button is active.
        -* @return {Boolean}
        -*/
        -isActive: function() {
        -
        -    return this.hasClass("active");
        -
        -},
        -
        -
        -/**
        -* @method getMenu
        -* @description Returns a reference to the button's menu.
        -* @return {<a href="YAHOO.widget.Menu.html">YAHOO.widget.Menu</a>}
        -*/
        -getMenu: function() {
        -
        -    return this._menu;
        -
        -},
        -
        -
        -/**
        -* @method getForm
        -* @description Returns a reference to the button's parent form.
        -* @return {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-40002357">HTMLFormElement</a>}
        -*/
        -getForm: function() {
        -
        -    return this._button.form;
        -
        -},
        -
        -
        -/** 
        -* @method getHiddenField
        -* @description Returns a reference to the <code>&#60;input&#62;</code> element 
        -* used when the button's parent form is submitted.
        -* @return {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-6043025">HTMLInputElement</a>}
        -*/
        -getHiddenField: function() {
        -
        -    return this._hiddenField;
        -
        -},
        -
        -
        -/**
        -* @method destroy
        -* @description Removes the button's element from its parent element and 
        -* removes all event handlers.
        -*/
        -destroy: function() {
        -
        -    this.logger.log("Destroying ...");
        -
        -    var oElement = this.get("element"),
        -        oParentNode = oElement.parentNode,
        -        oMenu = this._menu;
        -
        -    if(oMenu) {
        -
        -        this.logger.log("Destroying menu.");
        -
        -        oMenu.destroy();
        -
        -    }
        -
        -    this.logger.log("Removing DOM event handlers.");
        -
        -    Event.purgeElement(oElement);
        -    Event.purgeElement(this._button);
        -    Event.removeListener(document, "mouseup", this._onDocumentMouseUp);
        -    Event.removeListener(document, "keyup", this._onDocumentKeyUp);
        -    Event.removeListener(document, "mousedown", this._onDocumentMouseDown);
        -
        -
        -    var oForm = this.getForm();
        -    
        -    if(oForm) {
        -
        -        Event.removeListener(oForm, "reset", this._onFormReset);
        -        Event.removeListener(oForm, "submit", this._onFormSubmit);
        -
        -    }
        -
        -
        -    oParentNode.removeChild(oElement);
        -
        -    this.logger.log("Removing from document.");
        -
        -    delete m_oButtons[this.get("id")];
        -
        -    this.logger.log("Destroyed.");
        -
        -},
        -
        -
        -fireEvent: function(p_sType , p_aArgs) {
        -
        -    //  Disabled buttons should not respond to DOM events
        -
        -    if(this.DOM_EVENTS[p_sType] && this.get("disabled")) {
        -
        -        return;
        -
        -    }
        -
        -    YAHOO.widget.Button.superclass.fireEvent.call(this, p_sType, p_aArgs);
        -
        -},
        -
        -
        -/**
        -* @method toString
        -* @description Returns a string representing the button.
        -* @return {String}
        -*/
        -toString: function() {
        -
        -    return ("Button " + this.get("id"));
        -
        -}
        -
        -});
        -
        -
        -/**
        -* @method onFormKeyDown
        -* @description "keydown" event handler for the button's form.
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -YAHOO.widget.Button.onFormKeyDown = function(p_oEvent) {
        -
        -    var oTarget = Event.getTarget(p_oEvent),
        -        nCharCode = Event.getCharCode(p_oEvent);
        -
        -
        -    if (
        -        nCharCode == 13 && 
        -        oTarget.tagName && 
        -        oTarget.tagName.toUpperCase() == "INPUT"
        -    ) {
        -
        -        var sType = oTarget.type;
        -
        -
        -        if(
        -            sType == "text" || sType == "password" || sType == "checkbox" || 
        -            sType == "radio" || sType == "file"
        -        ) {
        -
        -
        -            function isYUISubmitButton(p_oElement) {
        -    
        -                var sId = p_oElement.id;
        -    
        -                if (sId) {
        -    
        -                    var oButton = m_oButtons[sId];
        -        
        -                    if (oButton) {
        -        
        -                        var oSrcElement = oButton.get("srcelement");
        -        
        -                        return (
        -                                    oButton.get("type") == "submit" || 
        -                                    (
        -                                        oSrcElement && 
        -                                        oSrcElement.type == "submit"
        -                                    )
        -                                );
        -        
        -                    }
        -                
        -                }
        -            
        -            }
        -    
        -    
        -            var aButtons = Dom.getElementsBy(
        -                                isYUISubmitButton,
        -                                this.TAG_NAME, 
        -                                this.getForm()
        -                            ),
        -    
        -                nButtons = aButtons.length;
        -    
        -    
        -            if (nButtons > 0) {
        -    
        -                m_oButtons[aButtons[0].id].submitForm();
        -            
        -            }
        -
        -        
        -        }
        -
        -    }
        -
        -};
        -
        -
        -/**
        -* @method addHiddenFieldsToForm
        -* @description Searches the specified form and adds hidden fields for instances 
        -* of YAHOO.widget.Button that are of type "radio," "checkbox," "menubutton," 
        -* and "splitbutton."
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-40002357">HTMLFormElement</a>} p_oForm Object reference 
        -* for the form to search.
        -*/
        -YAHOO.widget.Button.addHiddenFieldsToForm = function(p_oForm) {
        -
        -    var aButtons = Dom.getElementsByClassName("yuibutton", "*", p_oForm),
        -        nButtons = aButtons.length;
        -
        -
        -    if(nButtons > 0) {
        -
        -        YAHOO.log("Form contains " + nButtons + " YUI buttons.");
        -
        -        var oButton = null,
        -            sType = null,
        -            oMenuItem = null,
        -            oMenu = null;
        -
        -        for(var i=0; i<nButtons; i++) {
        -
        -            oButton = m_oButtons[aButtons[i].id];
        -
        -            if(oButton) {
        -
        -                sType = oButton.get("type");
        -                oMenuItem = oButton.get("selectedMenuItem");
        -
        -
        -                if(sType == "radio" || sType == "checkbox") {
        -    
        -                    YAHOO.log("Creating hidden field for button: " + oButton);
        -    
        -                    oButton.createHiddenField();
        -                
        -                }
        -                else if(oMenuItem) {
        -    
        -                    oMenu = oButton.getMenu();
        -    
        -                    var oSrcElement = oMenu.srcElement;
        -                        
        -                    if(
        -                        oSrcElement && 
        -                        oSrcElement.tagName.toUpperCase() == "SELECT"
        -                    ) {
        -            
        -                        p_oForm.appendChild(oSrcElement);
        -                        oSrcElement.selectedIndex = oMenuItem.index;
        -            
        -                    }
        -                    else {
        -    
        -                        var oValue = (
        -                                        oMenuItem.value === null || 
        -                                        oMenuItem.value === ""
        -                                    ) ? oMenuItem.cfg.getProperty("text") : 
        -                                    oMenuItem.value;
        -
        -                        if(oValue) {
        -
        -                            var oHiddenField = oButton.getHiddenField(),
        -    
        -                                oField = createInputElement(
        -                                            "hidden",
        -                                            (oButton.get("name") + "_options"),
        -                                            oValue
        -                                        );
        -                                        
        -                            if(oHiddenField && Dom.inDocument(oHiddenField)) {
        -
        -                                p_oForm.replaceChild(oField, oHiddenField);
        -
        -                            }
        -                            else {
        -
        -                                p_oForm.appendChild(oField);
        -                            
        -                            }
        -    
        -                        }
        -    
        -                    }                
        -    
        -                }
        -                
        -            }
        -        
        -        }
        -
        -    }
        -
        -};
        -
        -
        -
        -// Events
        -
        -
        -/**
        -* @event focus
        -* @description Fires when the menu item receives focus.  Passes back a single 
        -* object representing the original DOM event object passed back by the event 
        -* utility (YAHOO.util.Event) when the event was fired.  See <a href="
        -* YAHOO.util.Element.html#addListener">Element.addListener</a> for more 
        -* information on listening for this event.
        -* @type YAHOO.util.CustomEvent
        -*/
        -
        -
        -/**
        -* @event blur
        -* @description Fires when the menu item loses the input focus.  Passes back a 
        -* single object representing the original DOM event object passed back by the 
        -* event utility (YAHOO.util.Event) when the event was fired.  See <a href="
        -* YAHOO.util.Element.html#addListener">Element.addListener</a> for more 
        -* information on listening for this event.
        -* @type YAHOO.util.CustomEvent
        -*/
        -
        -
        -/**
        -* @event option
        -* @description Fires when the user invokes the button's option.  Passes back a 
        -* single object representing the original DOM event (either "mousedown" or 
        -* "keydown") that caused the "option" event to fire.  See <a href="
        -* YAHOO.util.Element.html#addListener">Element.addListener</a> for more 
        -* information on listening for this event.
        -* @type YAHOO.util.CustomEvent
        -*/
        -
        -})();
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/buttongroup.js.html b/www/extras/yui/docs/buttongroup.js.html deleted file mode 100644 index 05c7b5417..000000000 --- a/www/extras/yui/docs/buttongroup.js.html +++ /dev/null @@ -1,952 +0,0 @@ - - - - API: button buttongroup.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Button  2.2.2

        -

        - Yahoo! UI Library - > button - - > buttongroup.js (source view) -

        -
        - -
        -
        -
        - -
        -
        (function() {
        -
        -// Shorthard for utilities
        -
        -var Dom = YAHOO.util.Dom,
        -    Event = YAHOO.util.Event,
        -    Lang = YAHOO.lang,
        -    Button = YAHOO.widget.Button;    
        -
        -    // Private collection of radio buttons
        -
        -    m_oButtons = {};
        -
        -
        -
        -/**
        -* The ButtonGroup class creates a set of buttons that are mutually exclusive; 
        -* checking one button in the set will uncheck all others in the button group.
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;div&#62;</code> element of the button group.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -* level-one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object 
        -* specifying the <code>&#60;div&#62;</code> element of the button group.
        -* @param {Object} p_oElement Object literal specifying a set of 
        -* configuration attributes used to create the button group.
        -* @param {Object} p_oAttributes Optional. Object literal specifying a set of 
        -* configuration attributes used to create the button group.
        -* @namespace YAHOO.widget
        -* @class ButtonGroup
        -* @constructor
        -* @extends YAHOO.util.Element
        -*/
        -YAHOO.widget.ButtonGroup = function(p_oElement, p_oAttributes) {
        -
        -    var fnSuperClass = YAHOO.widget.ButtonGroup.superclass.constructor;
        -
        -    if(
        -        arguments.length == 1 && 
        -        !Lang.isString(p_oElement) && 
        -        !p_oElement.nodeName
        -    ) {
        -
        -        if(!p_oElement.id) {
        -
        -            var sId = Dom.generateId();
        -
        -            p_oElement.id = sId;
        -
        -            YAHOO.log(
        -                "No value specified for the button group's \"id\" attribute. " +
        -                "Setting button group id to \"" + sId + "\".",
        -                "warn"
        -            );
        -
        -        }
        -
        -        this.logger = new YAHOO.widget.LogWriter("ButtonGroup " + sId);
        -
        -        this.logger.log(
        -                "No source HTML element.  "  +
        -                "Building the button group using the set of " + 
        -                "configuration attributes."
        -            );
        -
        -        fnSuperClass.call(this, (this._createGroupElement()), p_oElement);
        -
        -    }
        -    else if(Lang.isString(p_oElement)) {
        -
        -        var oElement = Dom.get(p_oElement);
        -
        -        if (oElement) {
        -        
        -            if(oElement.nodeName.toUpperCase() == this.TAG_NAME) {
        -
        -                this.logger = 
        -                    new YAHOO.widget.LogWriter("ButtonGroup " + p_oElement);
        -        
        -                fnSuperClass.call(this, oElement, p_oAttributes);
        -
        -            }
        -
        -        }
        -    
        -    }
        -    else {
        -
        -        var sNodeName = p_oElement.nodeName;
        -
        -        if(sNodeName && sNodeName == this.TAG_NAME) {
        -    
        -            if(!p_oElement.id) {
        -    
        -                p_oElement.id = Dom.generateId();
        -    
        -                YAHOO.log(
        -                    "No value specified for the button group's \"id\" " +
        -                    "attribute. Setting button group id " +
        -                    "to \"" + p_oElement.id + "\".",
        -                    "warn"
        -                );
        -    
        -            }
        -    
        -            this.logger = 
        -                    new YAHOO.widget.LogWriter("ButtonGroup " + p_oElement.id);
        -    
        -            fnSuperClass.call(this, p_oElement, p_oAttributes);
        -
        -        }
        -
        -    }
        -
        -};
        -
        -
        -YAHOO.extend(YAHOO.widget.ButtonGroup, YAHOO.util.Element, {
        -
        -
        -// Protected properties
        -
        -
        -/** 
        -* @property _buttons
        -* @description Array of buttons in the button group.
        -* @default null
        -* @protected
        -* @type Array
        -*/
        -_buttons: null,
        -
        -
        -
        -// Constants
        -
        -
        -/**
        -* @property TAG_NAME
        -* @description The name of the tag to be used for the button group's element. 
        -* @default "DIV"
        -* @final
        -* @type String
        -*/
        -TAG_NAME: "DIV",
        -
        -
        -/**
        -* @property CSS_CLASS_NAME
        -* @description String representing the CSS class(es) to be applied to the 
        -* button group's element.
        -* @default "yuibuttongroup"
        -* @final
        -* @type String
        -*/
        -CSS_CLASS_NAME: "yuibuttongroup",
        -
        -
        -
        -// Protected methods
        -
        -
        -/**
        -* @method _createGroupElement
        -* @description Creates the button group's element.
        -* @protected
        -* @return {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -* level-one-html.html#ID-22445964">HTMLDivElement</a>}
        -*/
        -_createGroupElement: function() {
        -
        -    var oElement = document.createElement(this.TAG_NAME);
        -
        -    return oElement;
        -
        -},
        -
        -
        -
        -// Protected attribute setter methods
        -
        -
        -/**
        -* @method _setDisabled
        -* @description Sets the value of the button groups's "disabled" attribute.
        -* @protected
        -* @param {Boolean} p_bDisabled Boolean indicating the value for the button
        -* group's "disabled" attribute.
        -*/
        -_setDisabled: function(p_bDisabled) {
        -
        -    var nButtons = this.getCount();
        -
        -    if(nButtons > 0) {
        -
        -        var i = nButtons - 1;
        -        
        -        do {
        -
        -            this._buttons[i].set("disabled", p_bDisabled);
        -        
        -        }
        -        while(i--);
        -
        -    }
        -
        -},
        -
        -
        -
        -// Protected event handlers
        -
        -
        -/**
        -* @method _onKeyDown
        -* @description "keydown" event handler for the button group.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -*/
        -_onKeyDown: function(p_oEvent) {
        -
        -    var oTarget = Event.getTarget(p_oEvent),
        -        nCharCode = Event.getCharCode(p_oEvent),
        -        sId = oTarget.parentNode.parentNode.id,
        -        oButton = m_oButtons[sId],
        -        nIndex = -1;
        -
        -
        -    if(nCharCode == 37 || nCharCode == 38) {
        -
        -        nIndex = (oButton.index === 0) ? 
        -                    (this._buttons.length -1) : (oButton.index - 1);
        -    
        -    }
        -    else if(nCharCode == 39 || nCharCode == 40) {
        -
        -        nIndex = (oButton.index === (this._buttons.length - 1)) ? 
        -                    0 : (oButton.index + 1);
        -
        -    }
        -
        -
        -    if(nIndex > -1) {
        -
        -        this.check(nIndex);
        -        this.getButton(nIndex).focus();
        -    
        -    }        
        -
        -},
        -
        -
        -/**
        -* @method _onAppendTo
        -* @description "appendTo" event handler for the button group.
        -* @protected
        -* @param {Event} p_oEvent Object representing the event that was fired.
        -*/
        -_onAppendTo: function(p_oEvent) {
        -
        -    var aButtons = this._buttons,
        -        nButtons = aButtons.length;
        -
        -    for(var i=0; i<nButtons; i++) {
        -
        -        aButtons[i].appendTo(this.get("element"));
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onButtonCheckedChange
        -* @description "checkedChange" event handler for each button in the 
        -* button group.
        -* @protected
        -* @param {Event} p_oEvent Object representing the event that was fired.
        -* @param {<a href="YAHOO.widget.Button.html">YAHOO.widget.Button</a>} p_oButton 
        -* Object representing the button that fired the event.
        -*/
        -_onButtonCheckedChange: function(p_oEvent, p_oButton) {
        -
        -    var bChecked = p_oEvent.newValue,
        -        oCheckedButton = this.get("checkedButton");
        -
        -    if(bChecked && oCheckedButton != p_oButton) {
        -
        -        if(oCheckedButton) {
        -
        -            oCheckedButton.set("checked", false, true);
        -
        -        }
        -
        -        this.set("checkedButton", p_oButton);
        -        this.set("value", p_oButton.get("value"));
        -
        -    }
        -    else if(oCheckedButton && !oCheckedButton.set("checked")) {
        -
        -        oCheckedButton.set("checked", true, true);
        -
        -    }
        -   
        -},
        -
        -
        -
        -// Public methods
        -
        -
        -/**
        -* @method init
        -* @description The ButtonGroup class's initialization method.
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;div&#62;</code> element of the button group.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -* level-one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object 
        -* specifying the <code>&#60;div&#62;</code> element of the button group.
        -* @param {Object} p_oElement Object literal specifying a set of configuration 
        -* attributes used to create the button group.
        -* @param {Object} p_oAttributes Optional. Object literal specifying a set of 
        -* configuration attributes used to create the button group.
        -*/
        -init: function(p_oElement, p_oAttributes) {
        -
        -    this._buttons = [];
        -
        -    YAHOO.widget.ButtonGroup.superclass.init.call(
        -            this, p_oElement, 
        -            p_oAttributes
        -        );
        -
        -    this.addClass(this.CSS_CLASS_NAME);
        -
        -    this.logger.log(
        -        "Searching for child nodes with the class name " +
        -        "\"yuibutton\" to add to the button group."
        -    );
        -
        -    var aButtons = this.getElementsByClassName("yuibutton");
        -
        -
        -    if(aButtons.length > 0) {
        -
        -        this.logger.log(
        -            "Found " + aButtons.length + " child nodes with the class " + 
        -            "name \"yuibutton.\"  Attempting to add to button group."
        -        );
        -
        -        this.addButtons(aButtons);
        -
        -    }
        -
        -
        -    this.logger.log(
        -        "Searching for child nodes with the type of \"radio\" to add to the " +
        -        " button group."
        -    );
        -
        -    function isRadioButton(p_oElement) {
        -
        -        return (p_oElement.type == "radio");
        -
        -    }
        -
        -    aButtons = Dom.getElementsBy(isRadioButton, "input", this.get("element"));
        -
        -
        -    if(aButtons.length > 0) {
        -
        -        this.logger.log(
        -            "Found " + aButtons.length + " child nodes with the type of " +
        -            "\"radio.\"  Attempting to add to button group."
        -        );
        -
        -        this.addButtons(aButtons);
        -
        -    }
        -
        -    this.on("keydown", this._onKeyDown);
        -    this.on("appendTo", this._onAppendTo);
        -
        -    var oContainer = this.get("container");
        -
        -    if(oContainer) {
        -
        -        if(Lang.isString(oContainer)) {
        -
        -            var me = this;
        -
        -            Event.onContentReady(oContainer, function() {
        -
        -                me.appendTo(this);            
        -            
        -            });
        -
        -        }
        -        else {
        -
        -            this.appendTo(oContainer);
        -
        -        }
        -
        -    }
        -
        -
        -    this.logger.log("Initialization completed.");
        -
        -},
        -
        -
        -/**
        -* @method initAttributes
        -* @description Initializes all of the configuration attributes used to create  
        -* the button group.
        -* @param {Object} p_oAttributes Object literal specifying a set of 
        -* configuration attributes used to create the button group.
        -*/
        -initAttributes: function(p_oAttributes) {
        -
        -    var oAttributes = p_oAttributes || {};
        -
        -    YAHOO.widget.ButtonGroup.superclass.initAttributes.call(
        -        this, 
        -        oAttributes
        -    );
        -
        -
        -    /**
        -    * @config name
        -    * @description String specifying the name for the button group.  This
        -    * name will be applied to each button in the button group.
        -    * @default null
        -    * @type String
        -    */
        -    this.setAttributeConfig("name", {
        -
        -        value: oAttributes.name,
        -        validator: Lang.isString
        -
        -    });
        -
        -
        -    /**
        -    * @config disabled
        -    * @description Boolean indicating if the button group should be disabled.  
        -    * Disabling the button group will disable each button in the button group.  
        -    * Disabled buttons are dimmed and will not respond to user input 
        -    * or fire events.
        -    * @default false
        -    * @type Boolean
        -    */
        -    this.setAttributeConfig("disabled", {
        -
        -        value: (oAttributes.disabled || false),
        -        validator: Lang.isBoolean,
        -        method: this._setDisabled
        -
        -    });
        -
        -
        -    /**
        -    * @config value
        -    * @description Object specifying the value for the button group.
        -    * @default null
        -    * @type Object
        -    */
        -    this.setAttributeConfig("value", {
        -
        -        value: oAttributes.value
        -
        -    });
        -
        -
        -	/**
        -	* @config container
        -	* @description HTML element reference or string specifying the id 
        -	* attribute of the HTML element that the button group's markup should be 
        -	* rendered into.
        -	* @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -	* level-one-html.html#ID-58190037">HTMLElement</a>|String
        -	* @default null
        -	*/
        -    this.setAttributeConfig("container", {
        -
        -        value: oAttributes.container
        -
        -    });
        -
        -
        -	/**
        -	* @config checkedButton
        -    * @description Reference for the button in the button group that 
        -    * is checked.
        -	* @type {<a href="YAHOO.widget.Button.html">YAHOO.widget.Button</a>}
        -	* @default null
        -	*/
        -    this.setAttributeConfig("checkedButton", {
        -
        -        value: null
        -
        -    });
        -
        -},
        -
        -
        -/**
        -* @method addButton
        -* @description Adds the button to the button group.
        -* @param {<a href="YAHOO.widget.Button.html">YAHOO.widget.Button</a>} p_oButton 
        -* Object reference for the <a href="YAHOO.widget.Button.html">
        -* YAHOO.widget.Button</a> instance to be added to the button group.
        -* @param {String} p_oButton String specifying the id attribute of the 
        -* <code>&#60;input&#62;</code> or <code>&#60;span&#62;</code> element to be 
        -* used to create the button to be added to the button group.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-6043025">HTMLInputElement</a>|<a href="
        -* http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#
        -* ID-33759296">HTMLElement</a>} p_oButton Object reference for the 
        -* <code>&#60;input&#62;</code> or <code>&#60;span&#62;</code> element to be 
        -* used to create the button to be added to the button group.
        -* @param {Object} p_oButton Object literal specifying a set of 
        -* <a href="YAHOO.widget.Button.html">YAHOO.widget.Button</a> configuration 
        -* attributes used to configure the button to be added to the button group.
        -* @return {<a href="YAHOO.widget.Button.html">YAHOO.widget.Button</a>} 
        -*/
        -addButton: function(p_oButton) {
        -
        -    var oButton;
        -
        -
        -    if(p_oButton instanceof Button && p_oButton.get("type") == "radio") {
        -
        -        oButton = p_oButton;
        -
        -    }
        -    else if(!Lang.isString(p_oButton) && !p_oButton.nodeName) {
        -
        -        p_oButton.type = "radio";
        -
        -        oButton = new Button(p_oButton);
        -    
        -    }
        -    else {
        -
        -        oButton = new Button(p_oButton, { type: "radio" });
        -
        -    }
        -
        -
        -    if(oButton) {
        -
        -        var nIndex = this._buttons.length,
        -            sButtonName = oButton.get("name"),
        -            sGroupName = this.get("name");
        -
        -        oButton.index = nIndex;
        -
        -        this._buttons[nIndex] = oButton;
        -        m_oButtons[oButton.get("id")] = oButton;
        -
        -
        -        if(sButtonName != sGroupName) {
        -
        -            oButton.set("name", sGroupName);
        -        
        -        }
        -
        -
        -        if(this.get("disabled")) {
        -
        -            oButton.set("disabled", true);
        -
        -        }
        -
        -
        -        if(oButton.get("checked")) {
        -
        -            this.set("checkedButton", oButton);
        -
        -        }
        -
        -        
        -        oButton.on("checkedChange", this._onButtonCheckedChange, oButton, this);
        -
        -        this.logger.log("Button " + oButton.get("id") + " added.");
        -
        -        return oButton;
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method addButtons
        -* @description Adds the array of buttons to the button group.
        -* @param {Array} p_aButtons Array of <a href="YAHOO.widget.Button.html">
        -* YAHOO.widget.Button</a> instances to be added 
        -* to the button group.
        -* @param {Array} p_aButtons Array of strings specifying the id attribute of 
        -* the <code>&#60;input&#62;</code> or <code>&#60;span&#62;</code> elements to 
        -* be used to create the buttons to be added to the button group.
        -* @param {Array} p_aButtons Array of object references for the 
        -* <code>&#60;input&#62;</code> or <code>&#60;span&#62;</code> elements to be 
        -* used to create the buttons to be added to the button group.
        -* @param {Array} p_aButtons Array of object literals, each containing a set of 
        -* <a href="YAHOO.widget.Button.html">YAHOO.widget.Button</a> configuration 
        -* attributes used to configure each button to be added to the button group.
        -* @return {Array}
        -*/
        -addButtons: function(p_aButtons) {
        -
        -    if(Lang.isArray(p_aButtons)) {
        -    
        -        var nButtons = p_aButtons.length,
        -            oButton,
        -            aButtons = [];
        -
        -        if(nButtons > 0) {
        -
        -            for(var i=0; i<nButtons; i++) {
        -
        -                oButton = this.addButton(p_aButtons[i]);
        -                
        -                if(oButton) {
        -
        -                    aButtons[aButtons.length] = oButton;
        -
        -                }
        -            
        -            }
        -
        -            if(aButtons.length > 0) {
        -
        -                this.logger.log(aButtons.length + " buttons added.");
        -
        -                return aButtons;
        -
        -            }
        -        
        -        }
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method removeButton
        -* @description Removes the button at the specified index from the button group.
        -* @param {Number} p_nIndex Number specifying the index of the button to be 
        -* removed from the button group.
        -*/
        -removeButton: function(p_nIndex) {
        -
        -    var oButton = this.getButton(p_nIndex);
        -    
        -    if(oButton) {
        -
        -        this.logger.log("Removing button " + oButton.get("id") + ".");
        -
        -        this._buttons.splice(p_nIndex, 1);
        -        delete m_oButtons[oButton.get("id")];
        -
        -        oButton.removeListener("checkedChange", this._onButtonCheckedChange);
        -        oButton.destroy();
        -
        -
        -        var nButtons = this._buttons.length;
        -        
        -        if(nButtons > 0) {
        -
        -            var i = this._buttons.length - 1;
        -            
        -            do {
        -
        -                this._buttons[i].index = i;
        -
        -            }
        -            while(i--);
        -        
        -        }
        -
        -        this.logger.log("Button " + oButton.get("id") + " removed.");
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method getButton
        -* @description Returns the button at the specified index.
        -* @param {Number} p_nIndex The index of the button to retrieve from the 
        -* button group.
        -* @return {<a href="YAHOO.widget.Button.html">YAHOO.widget.Button</a>}
        -*/
        -getButton: function(p_nIndex) {
        -
        -    if(Lang.isNumber(p_nIndex)) {
        -
        -        return this._buttons[p_nIndex];
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method getButtons
        -* @description Returns an array of the buttons in the button group.
        -* @return {Array}
        -*/
        -getButtons: function() {
        -
        -    return this._buttons;
        -
        -},
        -
        -
        -/**
        -* @method getCount
        -* @description Returns the number of buttons in the button group.
        -* @return {Number}
        -*/
        -getCount: function() {
        -
        -    return this._buttons.length;
        -
        -},
        -
        -
        -/**
        -* @method focus
        -* @description Sets focus to the button at the specified index.
        -* @param {Number} p_nIndex Number indicating the index of the button to focus. 
        -*/
        -focus: function(p_nIndex) {
        -
        -    var oButton;
        -
        -    if(Lang.isNumber(p_nIndex)) {
        -
        -        oButton = this._buttons[p_nIndex];
        -        
        -        if(oButton) {
        -
        -            oButton.focus();
        -
        -        }
        -    
        -    }
        -    else {
        -
        -        var nButtons = this.getCount();
        -
        -        for(var i=0; i<nButtons; i++) {
        -
        -            oButton = this._buttons[i];
        -
        -            if(!oButton.get("disabled")) {
        -
        -                oButton.focus();
        -                break;
        -
        -            }
        -
        -        }
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method check
        -* @description Checks the button at the specified index.
        -* @param {Number} p_nIndex Number indicating the index of the button to check. 
        -*/
        -check: function(p_nIndex) {
        -
        -    var oButton = this.getButton(p_nIndex);
        -    
        -    if(oButton) {
        -
        -        oButton.set("checked", true);
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method destroy
        -* @description Removes the button group's element from its parent element and 
        -* removes all event handlers.
        -*/
        -destroy: function() {
        -
        -    this.logger.log("Destroying...");
        -
        -    var nButtons = this._buttons.length,
        -        oElement = this.get("element"),
        -        oParentNode = oElement.parentNode;
        -    
        -    if(nButtons > 0) {
        -
        -        var i = this._buttons.length - 1;
        -
        -        do {
        -
        -            this._buttons[i].destroy();
        -
        -        }
        -        while(i--);
        -    
        -    }
        -
        -    this.logger.log("Removing DOM event handlers.");
        -
        -    Event.purgeElement(oElement);
        -    
        -    this.logger.log("Removing from document.");
        -
        -    oParentNode.removeChild(oElement);
        -
        -},
        -
        -
        -/**
        -* @method toString
        -* @description Returns a string representing the button group.
        -* @return {String}
        -*/
        -toString: function() {
        -
        -    return ("ButtonGroup " + this.get("id"));
        -
        -}
        -
        -});
        -
        -})();
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/connection.js.html b/www/extras/yui/docs/connection.js.html deleted file mode 100644 index 07d43432a..000000000 --- a/www/extras/yui/docs/connection.js.html +++ /dev/null @@ -1,1226 +0,0 @@ - - - - API: connection connection.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        connection  2.2.2

        -

        - Yahoo! UI Library - > connection - - > connection.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * The Connection Manager provides a simplified interface to the XMLHttpRequest
        - * object.  It handles cross-browser instantiantion of XMLHttpRequest, negotiates the
        - * interactive states and server response, returning the results to a pre-defined
        - * callback you create.
        - *
        - * @namespace YAHOO.util
        - * @module connection
        - * @requires yahoo
        - */
        -
        -/**
        - * The Connection Manager singleton provides methods for creating and managing
        - * asynchronous transactions.
        - *
        - * @class Connect
        - */
        -
        -YAHOO.util.Connect =
        -{
        -  /**
        -   * @description Array of MSFT ActiveX ids for XMLHttpRequest.
        -   * @property _msxml_progid
        -   * @private
        -   * @static
        -   * @type array
        -   */
        -	_msxml_progid:[
        -		'MSXML2.XMLHTTP.3.0',
        -		'MSXML2.XMLHTTP',
        -		'Microsoft.XMLHTTP'
        -		],
        -
        -  /**
        -   * @description Object literal of HTTP header(s)
        -   * @property _http_header
        -   * @private
        -   * @static
        -   * @type object
        -   */
        -	_http_headers:{},
        -
        -  /**
        -   * @description Determines if HTTP headers are set.
        -   * @property _has_http_headers
        -   * @private
        -   * @static
        -   * @type boolean
        -   */
        -	_has_http_headers:false,
        -
        - /**
        -  * @description Determines if a default header of
        -  * Content-Type of 'application/x-www-form-urlencoded'
        -  * will be added to any client HTTP headers sent for POST
        -  * transactions.
        -  * @property _use_default_post_header
        -  * @private
        -  * @static
        -  * @type boolean
        -  */
        -    _use_default_post_header:true,
        -
        - /**
        -  * @description Determines if a default header of
        -  * Content-Type of 'application/x-www-form-urlencoded'
        -  * will be added to client HTTP headers sent for POST
        -  * transactions.
        -  * @property _default_post_header
        -  * @private
        -  * @static
        -  * @type boolean
        -  */
        -    _default_post_header:'application/x-www-form-urlencoded; charset=UTF-8',
        -
        - /**
        -  * @description Determines if a default header of
        -  * 'X-Requested-With: XMLHttpRequest'
        -  * will be added to each transaction.
        -  * @property _use_default_xhr_header
        -  * @private
        -  * @static
        -  * @type boolean
        -  */
        -    _use_default_xhr_header:true,
        -
        - /**
        -  * @description The default header value for the label
        -  * "X-Requested-With".  This is sent with each
        -  * transaction, by default, to identify the
        -  * request as being made by YUI Connection Manager.
        -  * @property _default_xhr_header
        -  * @private
        -  * @static
        -  * @type boolean
        -  */
        -    _default_xhr_header:'XMLHttpRequest',
        -
        - /**
        -  * @description Determines if custom, default headers
        -  * are set for each transaction.
        -  * @property _has_default_header
        -  * @private
        -  * @static
        -  * @type boolean
        -  */
        -    _has_default_headers:true,
        -
        - /**
        -  * @description Determines if custom, default headers
        -  * are set for each transaction.
        -  * @property _has_default_header
        -  * @private
        -  * @static
        -  * @type boolean
        -  */
        -    _default_headers:{},
        -
        - /**
        -  * @description Property modified by setForm() to determine if the data
        -  * should be submitted as an HTML form.
        -  * @property _isFormSubmit
        -  * @private
        -  * @static
        -  * @type boolean
        -  */
        -    _isFormSubmit:false,
        -
        - /**
        -  * @description Property modified by setForm() to determine if a file(s)
        -  * upload is expected.
        -  * @property _isFileUpload
        -  * @private
        -  * @static
        -  * @type boolean
        -  */
        -    _isFileUpload:false,
        -
        - /**
        -  * @description Property modified by setForm() to set a reference to the HTML
        -  * form node if the desired action is file upload.
        -  * @property _formNode
        -  * @private
        -  * @static
        -  * @type object
        -  */
        -    _formNode:null,
        -
        - /**
        -  * @description Property modified by setForm() to set the HTML form data
        -  * for each transaction.
        -  * @property _sFormData
        -  * @private
        -  * @static
        -  * @type string
        -  */
        -    _sFormData:null,
        -
        - /**
        -  * @description Collection of polling references to the polling mechanism in handleReadyState.
        -  * @property _poll
        -  * @private
        -  * @static
        -  * @type object
        -  */
        -    _poll:{},
        -
        - /**
        -  * @description Queue of timeout values for each transaction callback with a defined timeout value.
        -  * @property _timeOut
        -  * @private
        -  * @static
        -  * @type object
        -  */
        -    _timeOut:{},
        -
        -  /**
        -   * @description The polling frequency, in milliseconds, for HandleReadyState.
        -   * when attempting to determine a transaction's XHR readyState.
        -   * The default is 50 milliseconds.
        -   * @property _polling_interval
        -   * @private
        -   * @static
        -   * @type int
        -   */
        -     _polling_interval:50,
        -
        -  /**
        -   * @description A transaction counter that increments the transaction id for each transaction.
        -   * @property _transaction_id
        -   * @private
        -   * @static
        -   * @type int
        -   */
        -     _transaction_id:0,
        -
        -  /**
        -   * @description Tracks the name-value pair of the "clicked" submit button if multiple submit
        -   * buttons are present in an HTML form; and, if YAHOO.util.Event is available.
        -   * @property _submitElementValue
        -   * @private
        -   * @static
        -   * @type string
        -   */
        -	 _submitElementValue:null,
        -
        -  /**
        -   * @description Determines whether YAHOO.util.Event is available and returns true or false.
        -   * If true, an event listener is bound at the document level to trap click events that
        -   * resolve to a target type of "Submit".  This listener will enable setForm() to determine
        -   * the clicked "Submit" value in a multi-Submit button, HTML form.
        -   * @property _hasSubmitListener
        -   * @private
        -   * @static
        -   * @type boolean
        -   */
        -	 _hasSubmitListener:(function()
        -	 {
        -		if(YAHOO.util.Event){
        -			YAHOO.util.Event.addListener(
        -				document,
        -				'click',
        -				function(e){
        -					var obj = YAHOO.util.Event.getTarget(e);
        -					if(obj.type == 'submit'){
        -						YAHOO.util.Connect._submitElementValue = encodeURIComponent(obj.name) + "=" + encodeURIComponent(obj.value);
        -					}
        -				})
        -			return true;
        -	    }
        -	    return false;
        -	 })(),
        -
        -  /**
        -   * @description Member to add an ActiveX id to the existing xml_progid array.
        -   * In the event(unlikely) a new ActiveX id is introduced, it can be added
        -   * without internal code modifications.
        -   * @method setProgId
        -   * @public
        -   * @static
        -   * @param {string} id The ActiveX id to be added to initialize the XHR object.
        -   * @return void
        -   */
        -	setProgId:function(id)
        -	{
        -		this._msxml_progid.unshift(id);
        -		YAHOO.log('ActiveX Program Id  ' + id + ' added to _msxml_progid.', 'info', 'Connection');
        -	},
        -
        -  /**
        -   * @description Member to enable or disable the default POST header.
        -   * @method setDefaultPostHeader
        -   * @public
        -   * @static
        -   * @param {boolean} b Set and use default header - true or false .
        -   * @return void
        -   */
        -	setDefaultPostHeader:function(b)
        -	{
        -		this._use_default_post_header = b;
        -		YAHOO.log('Use default POST header set to  ' + b, 'info', 'Connection');
        -	},
        -
        -  /**
        -   * @description Member to enable or disable the default POST header.
        -   * @method setDefaultXhrHeader
        -   * @public
        -   * @static
        -   * @param {boolean} b Set and use default header - true or false .
        -   * @return void
        -   */
        -	setDefaultXhrHeader:function(b)
        -	{
        -		this._use_default_xhr_header = b;
        -		YAHOO.log('Use default transaction header set to  ' + b, 'info', 'Connection');
        -	},
        -
        -  /**
        -   * @description Member to modify the default polling interval.
        -   * @method setPollingInterval
        -   * @public
        -   * @static
        -   * @param {int} i The polling interval in milliseconds.
        -   * @return void
        -   */
        -	setPollingInterval:function(i)
        -	{
        -		if(typeof i == 'number' && isFinite(i)){
        -			this._polling_interval = i;
        -			YAHOO.log('Default polling interval set to ' + i +'ms', 'info', 'Connection');
        -		}
        -	},
        -
        -  /**
        -   * @description Instantiates a XMLHttpRequest object and returns an object with two properties:
        -   * the XMLHttpRequest instance and the transaction id.
        -   * @method createXhrObject
        -   * @private
        -   * @static
        -   * @param {int} transactionId Property containing the transaction id for this transaction.
        -   * @return object
        -   */
        -	createXhrObject:function(transactionId)
        -	{
        -		var obj,http;
        -		try
        -		{
        -			// Instantiates XMLHttpRequest in non-IE browsers and assigns to http.
        -			http = new XMLHttpRequest();
        -			//  Object literal with http and tId properties
        -			obj = { conn:http, tId:transactionId };
        -			YAHOO.log('XHR object created for transaction ' + transactionId, 'info', 'Connection');
        -		}
        -		catch(e)
        -		{
        -			for(var i=0; i<this._msxml_progid.length; ++i){
        -				try
        -				{
        -					// Instantiates XMLHttpRequest for IE and assign to http.
        -					http = new ActiveXObject(this._msxml_progid[i]);
        -					//  Object literal with conn and tId properties
        -					obj = { conn:http, tId:transactionId };
        -					YAHOO.log('ActiveX XHR object created for transaction ' + transactionId, 'info', 'Connection');
        -					break;
        -				}
        -				catch(e){}
        -			}
        -		}
        -		finally
        -		{
        -			return obj;
        -		}
        -	},
        -
        -  /**
        -   * @description This method is called by asyncRequest to create a
        -   * valid connection object for the transaction.  It also passes a
        -   * transaction id and increments the transaction id counter.
        -   * @method getConnectionObject
        -   * @private
        -   * @static
        -   * @return {object}
        -   */
        -	getConnectionObject:function()
        -	{
        -		var o;
        -		var tId = this._transaction_id;
        -
        -		try
        -		{
        -			o = this.createXhrObject(tId);
        -			if(o){
        -				this._transaction_id++;
        -			}
        -		}
        -		catch(e){}
        -		finally
        -		{
        -			return o;
        -		}
        -	},
        -
        -  /**
        -   * @description Method for initiating an asynchronous request via the XHR object.
        -   * @method asyncRequest
        -   * @public
        -   * @static
        -   * @param {string} method HTTP transaction method
        -   * @param {string} uri Fully qualified path of resource
        -   * @param {callback} callback User-defined callback function or object
        -   * @param {string} postData POST body
        -   * @return {object} Returns the connection object
        -   */
        -	asyncRequest:function(method, uri, callback, postData)
        -	{
        -		var o = this.getConnectionObject();
        -
        -		if(!o){
        -			YAHOO.log('Unable to create connection object.', 'error', 'Connection');
        -			return null;
        -		}
        -		else{
        -			if(this._isFormSubmit){
        -				if(this._isFileUpload){
        -					this.uploadFile(o.tId, callback, uri, postData);
        -					this.releaseObject(o);
        -
        -					return;
        -				}
        -
        -				//If the specified HTTP method is GET, setForm() will return an
        -				//encoded string that is concatenated to the uri to
        -				//create a querystring.
        -				if(method.toUpperCase() == 'GET'){
        -					if(this._sFormData.length != 0){
        -						// If the URI already contains a querystring, append an ampersand
        -						// and then concatenate _sFormData to the URI.
        -						uri += ((uri.indexOf('?') == -1)?'?':'&') + this._sFormData;
        -					}
        -					else{
        -						uri += "?" + this._sFormData;
        -					}
        -				}
        -				else if(method.toUpperCase() == 'POST'){
        -					//If POST data exist in addition to the HTML form data,
        -					//it will be concatenated to the form data.
        -					postData = postData?this._sFormData + "&" + postData:this._sFormData;
        -				}
        -			}
        -
        -			o.conn.open(method, uri, true);
        -
        -			if(this._use_default_xhr_header){
        -				if(!this._default_headers['X-Requested-With']){
        -					this.initHeader('X-Requested-With', this._default_xhr_header, true);
        -					YAHOO.log('Initialize transaction header X-Request-Header to XMLHttpRequest.', 'info', 'Connection');
        -				}
        -			}
        -			if(this._isFormSubmit || (postData && this._use_default_post_header)){
        -				this.initHeader('Content-Type', this._default_post_header);
        -				YAHOO.log('Initialize header Content-Type to application/x-www-form-urlencoded for POST transaction.', 'info', 'Connection');
        -				if(this._isFormSubmit){
        -					this.resetFormState();
        -				}
        -			}
        -
        -			if(this._has_default_headers || this._has_http_headers){
        -				this.setHeader(o);
        -			}
        -
        -			this.handleReadyState(o, callback);
        -			o.conn.send(postData || null);
        -
        -			return o;
        -		}
        -	},
        -
        -  /**
        -   * @description This method serves as a timer that polls the XHR object's readyState
        -   * property during a transaction, instead of binding a callback to the
        -   * onreadystatechange event.  Upon readyState 4, handleTransactionResponse
        -   * will process the response, and the timer will be cleared.
        -   * @method handleReadyState
        -   * @private
        -   * @static
        -   * @param {object} o The connection object
        -   * @param {callback} callback The user-defined callback object
        -   * @return {void}
        -   */
        -    handleReadyState:function(o, callback)
        -    {
        -		var oConn = this;
        -
        -		if(callback && callback.timeout){
        -			this._timeOut[o.tId] = window.setTimeout(function(){ oConn.abort(o, callback, true); }, callback.timeout);
        -		}
        -
        -		this._poll[o.tId] = window.setInterval(
        -			function(){
        -				if(o.conn && o.conn.readyState === 4){
        -					window.clearInterval(oConn._poll[o.tId]);
        -					delete oConn._poll[o.tId];
        -
        -					if(callback && callback.timeout){
        -						delete oConn._timeOut[o.tId];
        -					}
        -
        -					oConn.handleTransactionResponse(o, callback);
        -				}
        -			}
        -		,this._polling_interval);
        -    },
        -
        -  /**
        -   * @description This method attempts to interpret the server response and
        -   * determine whether the transaction was successful, or if an error or
        -   * exception was encountered.
        -   * @method handleTransactionResponse
        -   * @private
        -   * @static
        -   * @param {object} o The connection object
        -   * @param {object} callback The sser-defined callback object
        -   * @param {boolean} isAbort Determines if the transaction was aborted.
        -   * @return {void}
        -   */
        -    handleTransactionResponse:function(o, callback, isAbort)
        -    {
        -		// If no valid callback is provided, then do not process any callback handling.
        -		if(!callback){
        -			this.releaseObject(o);
        -			YAHOO.log('No callback object to process. Transaction complete.', 'warn', 'Connection');
        -			return;
        -		}
        -
        -		var httpStatus, responseObject;
        -
        -		try
        -		{
        -			if(o.conn.status !== undefined && o.conn.status !== 0){
        -				httpStatus = o.conn.status;
        -			}
        -			else{
        -				httpStatus = 13030;
        -			}
        -		}
        -		catch(e){
        -
        -			 // 13030 is the custom code to indicate the condition -- in Mozilla/FF --
        -			 // when the o object's status and statusText properties are
        -			 // unavailable, and a query attempt throws an exception.
        -			httpStatus = 13030;
        -		}
        -
        -		if(httpStatus >= 200 && httpStatus < 300 || httpStatus === 1223){
        -			responseObject = this.createResponseObject(o, callback.argument);
        -			if(callback.success){
        -				if(!callback.scope){
        -					callback.success(responseObject);
        -					YAHOO.log('Success callback. HTTP code is ' + httpStatus, 'info', 'Connection');
        -				}
        -				else{
        -					// If a scope property is defined, the callback will be fired from
        -					// the context of the object.
        -					callback.success.apply(callback.scope, [responseObject]);
        -					YAHOO.log('Success callback with scope. HTTP code is ' + httpStatus, 'info', 'Connection');
        -				}
        -			}
        -		}
        -		else{
        -			switch(httpStatus){
        -				// The following cases are wininet.dll error codes that may be encountered.
        -				case 12002: // Server timeout
        -				case 12029: // 12029 to 12031 correspond to dropped connections.
        -				case 12030:
        -				case 12031:
        -				case 12152: // Connection closed by server.
        -				case 13030: // See above comments for variable status.
        -					responseObject = this.createExceptionObject(o.tId, callback.argument, (isAbort?isAbort:false));
        -					if(callback.failure){
        -						if(!callback.scope){
        -							callback.failure(responseObject);
        -							YAHOO.log('Failure callback. Exception detected. Status code is ' + httpStatus, 'warn', 'Connection');
        -						}
        -						else{
        -							callback.failure.apply(callback.scope, [responseObject]);
        -							YAHOO.log('Failure callback with scope. Exception detected. Status code is ' + httpStatus, 'warn', 'Connection');
        -						}
        -					}
        -					break;
        -				default:
        -					responseObject = this.createResponseObject(o, callback.argument);
        -					if(callback.failure){
        -						if(!callback.scope){
        -							callback.failure(responseObject);
        -							YAHOO.log('Failure callback. HTTP status code is ' + httpStatus, 'warn', 'Connection');
        -						}
        -						else{
        -							callback.failure.apply(callback.scope, [responseObject]);
        -							YAHOO.log('Failure callback with scope. HTTP status code is ' + httpStatus, 'warn', 'Connection');
        -						}
        -					}
        -			}
        -		}
        -
        -		this.releaseObject(o);
        -		responseObject = null;
        -    },
        -
        -  /**
        -   * @description This method evaluates the server response, creates and returns the results via
        -   * its properties.  Success and failure cases will differ in the response
        -   * object's property values.
        -   * @method createResponseObject
        -   * @private
        -   * @static
        -   * @param {object} o The connection object
        -   * @param {callbackArg} callbackArg The user-defined argument or arguments to be passed to the callback
        -   * @return {object}
        -   */
        -    createResponseObject:function(o, callbackArg)
        -    {
        -		var obj = {};
        -		var headerObj = {};
        -
        -		try
        -		{
        -			var headerStr = o.conn.getAllResponseHeaders();
        -			var header = headerStr.split('\n');
        -			for(var i=0; i<header.length; i++){
        -				var delimitPos = header[i].indexOf(':');
        -				if(delimitPos != -1){
        -					headerObj[header[i].substring(0,delimitPos)] = header[i].substring(delimitPos+2);
        -				}
        -			}
        -		}
        -		catch(e){}
        -
        -		obj.tId = o.tId;
        -		// Normalize IE's response to HTTP 204 when Win error 1223.
        -		obj.status = (o.conn.status == 1223)?204:o.conn.status;
        -		// Normalize IE's statusText to "No Content" instead of "Unknown".
        -		obj.statusText = (o.conn.status == 1223)?"No Content":o.conn.statusText;
        -		obj.getResponseHeader = headerObj;
        -		obj.getAllResponseHeaders = headerStr;
        -		obj.responseText = o.conn.responseText;
        -		obj.responseXML = o.conn.responseXML;
        -
        -		if(typeof callbackArg !== undefined){
        -			obj.argument = callbackArg;
        -		}
        -
        -		return obj;
        -    },
        -
        -  /**
        -   * @description If a transaction cannot be completed due to dropped or closed connections,
        -   * there may be not be enough information to build a full response object.
        -   * The failure callback will be fired and this specific condition can be identified
        -   * by a status property value of 0.
        -   *
        -   * If an abort was successful, the status property will report a value of -1.
        -   *
        -   * @method createExceptionObject
        -   * @private
        -   * @static
        -   * @param {int} tId The Transaction Id
        -   * @param {callbackArg} callbackArg The user-defined argument or arguments to be passed to the callback
        -   * @param {boolean} isAbort Determines if the exception case is caused by a transaction abort
        -   * @return {object}
        -   */
        -    createExceptionObject:function(tId, callbackArg, isAbort)
        -    {
        -		var COMM_CODE = 0;
        -		var COMM_ERROR = 'communication failure';
        -		var ABORT_CODE = -1;
        -		var ABORT_ERROR = 'transaction aborted';
        -
        -		var obj = {};
        -
        -		obj.tId = tId;
        -		if(isAbort){
        -			obj.status = ABORT_CODE;
        -			obj.statusText = ABORT_ERROR;
        -		}
        -		else{
        -			obj.status = COMM_CODE;
        -			obj.statusText = COMM_ERROR;
        -		}
        -
        -		if(callbackArg){
        -			obj.argument = callbackArg;
        -		}
        -
        -		return obj;
        -    },
        -
        -  /**
        -   * @description Method that initializes the custom HTTP headers for the each transaction.
        -   * @method initHeader
        -   * @public
        -   * @static
        -   * @param {string} label The HTTP header label
        -   * @param {string} value The HTTP header value
        -   * @param {string} isDefault Determines if the specific header is a default header
        -   * automatically sent with each transaction.
        -   * @return {void}
        -   */
        -	initHeader:function(label,value,isDefault)
        -	{
        -		var headerObj = (isDefault)?this._default_headers:this._http_headers;
        -
        -		if(headerObj[label] === undefined){
        -			headerObj[label] = value;
        -		}
        -		else{
        -			// Concatenate multiple values, comma-delimited,
        -			// for the same header label,
        -			headerObj[label] =  value + "," + headerObj[label];
        -		}
        -
        -		if(isDefault){
        -			this._has_default_headers = true;
        -		}
        -		else{
        -			this._has_http_headers = true;
        -		}
        -	},
        -
        -
        -  /**
        -   * @description Accessor that sets the HTTP headers for each transaction.
        -   * @method setHeader
        -   * @private
        -   * @static
        -   * @param {object} o The connection object for the transaction.
        -   * @return {void}
        -   */
        -	setHeader:function(o)
        -	{
        -		if(this._has_default_headers){
        -			for(var prop in this._default_headers){
        -				if(YAHOO.lang.hasOwnProperty(this._default_headers,prop)){
        -					o.conn.setRequestHeader(prop, this._default_headers[prop]);
        -					YAHOO.log('Default HTTP header ' + prop + ' set with value of ' + this._default_headers[prop], 'info', 'Connection');
        -				}
        -			}
        -		}
        -
        -		if(this._has_http_headers){
        -			for(var prop in this._http_headers){
        -				if(YAHOO.lang.hasOwnProperty(this._http_headers,prop)){
        -					o.conn.setRequestHeader(prop, this._http_headers[prop]);
        -					YAHOO.log('HTTP header ' + prop + ' set with value of ' + this._http_headers[prop], 'info', 'Connection');
        -				}
        -			}
        -			delete this._http_headers;
        -
        -			this._http_headers = {};
        -			this._has_http_headers = false;
        -		}
        -	},
        -
        -  /**
        -   * @description Resets the default HTTP headers object
        -   * @method resetDefaultHeaders
        -   * @public
        -   * @static
        -   * @return {void}
        -   */
        -	resetDefaultHeaders:function(){
        -		delete this._default_headers
        -		this._default_headers = {};
        -		this._has_default_headers = false;
        -	},
        -
        -  /**
        -   * @description This method assembles the form label and value pairs and
        -   * constructs an encoded string.
        -   * asyncRequest() will automatically initialize the
        -   * transaction with a HTTP header Content-Type of
        -   * application/x-www-form-urlencoded.
        -   * @method setForm
        -   * @public
        -   * @static
        -   * @param {string || object} form id or name attribute, or form object.
        -   * @param {string} optional boolean to indicate SSL environment.
        -   * @param {string || boolean} optional qualified path of iframe resource for SSL in IE.
        -   * @return {string} string of the HTML form field name and value pairs..
        -   */
        -	setForm:function(formId, isUpload, secureUri)
        -	{
        -		this.resetFormState();
        -		var oForm;
        -		if(typeof formId == 'string'){
        -			// Determine if the argument is a form id or a form name.
        -			// Note form name usage is deprecated by supported
        -			// here for legacy reasons.
        -			oForm = (document.getElementById(formId) || document.forms[formId]);
        -		}
        -		else if(typeof formId == 'object'){
        -			// Treat argument as an HTML form object.
        -			oForm = formId;
        -		}
        -		else{
        -			YAHOO.log('Unable to create form object ' + formId, 'warn', 'Connection');
        -			return;
        -		}
        -
        -		// If the isUpload argument is true, setForm will call createFrame to initialize
        -		// an iframe as the form target.
        -		//
        -		// The argument secureURI is also required by IE in SSL environments
        -		// where the secureURI string is a fully qualified HTTP path, used to set the source
        -		// of the iframe, to a stub resource in the same domain.
        -		if(isUpload){
        -
        -			// Create iframe in preparation for file upload.
        -			this.createFrame(secureUri?secureUri:null);
        -
        -			// Set form reference and file upload properties to true.
        -			this._isFormSubmit = true;
        -			this._isFileUpload = true;
        -			this._formNode = oForm;
        -
        -			return;
        -		}
        -
        -		var oElement, oName, oValue, oDisabled;
        -		var hasSubmit = false;
        -
        -		// Iterate over the form elements collection to construct the
        -		// label-value pairs.
        -		for (var i=0; i<oForm.elements.length; i++){
        -			oElement = oForm.elements[i];
        -			oDisabled = oForm.elements[i].disabled;
        -			oName = oForm.elements[i].name;
        -			oValue = oForm.elements[i].value;
        -
        -			// Do not submit fields that are disabled or
        -			// do not have a name attribute value.
        -			if(!oDisabled && oName)
        -			{
        -				switch (oElement.type)
        -				{
        -					case 'select-one':
        -					case 'select-multiple':
        -						for(var j=0; j<oElement.options.length; j++){
        -							if(oElement.options[j].selected){
        -								if(window.ActiveXObject){
        -									this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oElement.options[j].attributes['value'].specified?oElement.options[j].value:oElement.options[j].text) + '&';
        -								}
        -								else{
        -									this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oElement.options[j].hasAttribute('value')?oElement.options[j].value:oElement.options[j].text) + '&';
        -								}
        -
        -							}
        -						}
        -						break;
        -					case 'radio':
        -					case 'checkbox':
        -						if(oElement.checked){
        -							this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';
        -						}
        -						break;
        -					case 'file':
        -						// stub case as XMLHttpRequest will only send the file path as a string.
        -					case undefined:
        -						// stub case for fieldset element which returns undefined.
        -					case 'reset':
        -						// stub case for input type reset button.
        -					case 'button':
        -						// stub case for input type button elements.
        -						break;
        -					case 'submit':
        -						if(hasSubmit === false){
        -							if(this._hasSubmitListener){
        -								this._sFormData += this._submitElementValue + '&';
        -							}
        -							else{
        -								this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';
        -							}
        -
        -							hasSubmit = true;
        -						}
        -						break;
        -					default:
        -						this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';
        -						break;
        -				}
        -			}
        -		}
        -
        -		this._isFormSubmit = true;
        -		this._sFormData = this._sFormData.substr(0, this._sFormData.length - 1);
        -
        -		YAHOO.log('Form initialized for transaction. HTML form POST message is: ' + this._sFormData, 'info', 'Connection');
        -
        -		return this._sFormData;
        -	},
        -
        -  /**
        -   * @description Resets HTML form properties when an HTML form or HTML form
        -   * with file upload transaction is sent.
        -   * @method resetFormState
        -   * @private
        -   * @static
        -   * @return {void}
        -   */
        -	resetFormState:function(){
        -		this._isFormSubmit = false;
        -		this._isFileUpload = false;
        -		this._formNode = null;
        -		this._sFormData = "";
        -	},
        -
        -  /**
        -   * @description Creates an iframe to be used for form file uploads.  It is remove from the
        -   * document upon completion of the upload transaction.
        -   * @method createFrame
        -   * @private
        -   * @static
        -   * @param {string} optional qualified path of iframe resource for SSL in IE.
        -   * @return {void}
        -   */
        -	createFrame:function(secureUri){
        -
        -		// IE does not allow the setting of id and name attributes as object
        -		// properties via createElement().  A different iframe creation
        -		// pattern is required for IE.
        -		var frameId = 'yuiIO' + this._transaction_id;
        -		if(window.ActiveXObject){
        -			var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
        -
        -			// IE will throw a security exception in an SSL environment if the
        -			// iframe source is undefined.
        -			if(typeof secureUri == 'boolean'){
        -				io.src = 'javascript:false';
        -			}
        -			else if(typeof secureURI == 'string'){
        -				// Deprecated
        -				io.src = secureUri;
        -			}
        -		}
        -		else{
        -			var io = document.createElement('iframe');
        -			io.id = frameId;
        -			io.name = frameId;
        -		}
        -
        -		io.style.position = 'absolute';
        -		io.style.top = '-1000px';
        -		io.style.left = '-1000px';
        -
        -		document.body.appendChild(io);
        -		YAHOO.log('File upload iframe created. Id is:' + frameId, 'info', 'Connection');
        -	},
        -
        -  /**
        -   * @description Parses the POST data and creates hidden form elements
        -   * for each key-value, and appends them to the HTML form object.
        -   * @method appendPostData
        -   * @private
        -   * @static
        -   * @param {string} postData The HTTP POST data
        -   * @return {array} formElements Collection of hidden fields.
        -   */
        -	appendPostData:function(postData)
        -	{
        -		var formElements = [];
        -		var postMessage = postData.split('&');
        -		for(var i=0; i < postMessage.length; i++){
        -			var delimitPos = postMessage[i].indexOf('=');
        -			if(delimitPos != -1){
        -				formElements[i] = document.createElement('input');
        -				formElements[i].type = 'hidden';
        -				formElements[i].name = postMessage[i].substring(0,delimitPos);
        -				formElements[i].value = postMessage[i].substring(delimitPos+1);
        -				this._formNode.appendChild(formElements[i]);
        -			}
        -		}
        -
        -		return formElements;
        -	},
        -
        -  /**
        -   * @description Uploads HTML form, including files/attachments, to the
        -   * iframe created in createFrame.
        -   * @method uploadFile
        -   * @private
        -   * @static
        -   * @param {int} id The transaction id.
        -   * @param {object} callback - User-defined callback object.
        -   * @param {string} uri Fully qualified path of resource.
        -   * @return {void}
        -   */
        -	uploadFile:function(id, callback, uri, postData){
        -
        -		// Each iframe has an id prefix of "yuiIO" followed
        -		// by the unique transaction id.
        -		var frameId = 'yuiIO' + id;
        -		var uploadEncoding = 'multipart/form-data';
        -		var io = document.getElementById(frameId);
        -
        -		// Initialize the HTML form properties in case they are
        -		// not defined in the HTML form.
        -		this._formNode.setAttribute('action', uri);
        -		this._formNode.setAttribute('method', 'POST');
        -		this._formNode.setAttribute("target", frameId);
        -
        -		if(this._formNode.encoding){
        -			// IE does not respect property enctype for HTML forms.
        -			// Instead it uses the property - "encoding".
        -			this._formNode.encoding = uploadEncoding;
        -		}
        -		else{
        -			this._formNode.enctype = uploadEncoding;
        -		}
        -
        -
        -		if(postData){
        -			var oElements = this.appendPostData(postData);
        -		}
        -
        -		this._formNode.submit();
        -
        -		if(oElements && oElements.length > 0){
        -			for(var i=0; i < oElements.length; i++){
        -				this._formNode.removeChild(oElements[i]);
        -			}
        -		}
        -
        -		// Reset HTML form status properties.
        -		this.resetFormState();
        -
        -		// Create the upload callback handler that fires when the iframe
        -		// receives the load event.  Subsequently, the event handler is detached
        -		// and the iframe removed from the document.
        -
        -		var uploadCallback = function()
        -		{
        -			var obj = {};
        -			obj.tId = id;
        -			obj.argument = callback.argument;
        -
        -			try
        -			{
        -				obj.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;
        -				obj.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
        -			}
        -			catch(e){}
        -
        -			if(callback && callback.upload){
        -				if(!callback.scope){
        -					callback.upload(obj);
        -					YAHOO.log('Upload callback.', 'info', 'Connection');
        -				}
        -				else{
        -					callback.upload.apply(callback.scope, [obj]);
        -					YAHOO.log('Upload callback with scope.', 'info', 'Connection');
        -				}
        -			}
        -
        -			if(YAHOO.util.Event){
        -				YAHOO.util.Event.removeListener(io, "load", uploadCallback);
        -			}
        -			else if(window.detachEvent){
        -				io.detachEvent('onload', uploadCallback);
        -			}
        -			else{
        -				io.removeEventListener('load', uploadCallback, false);
        -			}
        -			setTimeout(
        -				function(){
        -					document.body.removeChild(io);
        -					YAHOO.log('File upload iframe destroyed. Id is:' + frameId, 'info', 'Connection');
        -				}, 100);
        -		};
        -
        -
        -		// Bind the onload handler to the iframe to detect the file upload response.
        -		if(YAHOO.util.Event){
        -			YAHOO.util.Event.addListener(io, "load", uploadCallback);
        -		}
        -		else if(window.attachEvent){
        -			io.attachEvent('onload', uploadCallback);
        -		}
        -		else{
        -			io.addEventListener('load', uploadCallback, false);
        -		}
        -	},
        -
        -  /**
        -   * @description Method to terminate a transaction, if it has not reached readyState 4.
        -   * @method abort
        -   * @public
        -   * @static
        -   * @param {object} o The connection object returned by asyncRequest.
        -   * @param {object} callback  User-defined callback object.
        -   * @param {string} isTimeout boolean to indicate if abort was a timeout.
        -   * @return {boolean}
        -   */
        -	abort:function(o, callback, isTimeout)
        -	{
        -		if(this.isCallInProgress(o)){
        -			o.conn.abort();
        -			window.clearInterval(this._poll[o.tId]);
        -			delete this._poll[o.tId];
        -			if(isTimeout){
        -				delete this._timeOut[o.tId];
        -			}
        -
        -			this.handleTransactionResponse(o, callback, true);
        -			YAHOO.log('Transaction ' + o.tId + ' aborted.', 'info', 'Connection');
        -
        -			return true;
        -		}
        -		else{
        -			YAHOO.log('Transaction ' + o.tId + ' abort call failed.', 'warn', 'Connection');
        -			return false;
        -		}
        -	},
        -
        -  /**
        -   * Public method to check if the transaction is still being processed.
        -   *
        -   * @method isCallInProgress
        -   * @public
        -   * @static
        -   * @param {object} o The connection object returned by asyncRequest
        -   * @return {boolean}
        -   */
        -	isCallInProgress:function(o)
        -	{
        -		// if the XHR object assigned to the transaction has not been dereferenced,
        -		// then check its readyState status.  Otherwise, return false.
        -		if(o.conn){
        -			return o.conn.readyState !== 4 && o.conn.readyState !== 0;
        -		}
        -		else{
        -			//The XHR object has been destroyed.
        -			return false;
        -		}
        -	},
        -
        -  /**
        -   * @description Dereference the XHR instance and the connection object after the transaction is completed.
        -   * @method releaseObject
        -   * @private
        -   * @static
        -   * @param {object} o The connection object
        -   * @return {void}
        -   */
        -	releaseObject:function(o)
        -	{
        -		//dereference the XHR instance.
        -		o.conn = null;
        -		YAHOO.log('Connection object for transaction ' + o.tId + ' destroyed.', 'info', 'Connection');
        -		//dereference the connection object.
        -		o = null;
        -	}
        -};
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/contextmenu.js.html b/www/extras/yui/docs/contextmenu.js.html deleted file mode 100644 index d85b47dca..000000000 --- a/www/extras/yui/docs/contextmenu.js.html +++ /dev/null @@ -1,598 +0,0 @@ - - - - API: menu contextmenu.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Menu  2.2.2

        -

        - Yahoo! UI Library - > menu - - > contextmenu.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* Creates a list of options or commands which are made visible in response to 
        -* an HTML element's "contextmenu" event ("mousedown" for Opera).
        -*
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;div&#62;</code> element of the context menu.
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;select&#62;</code> element to be used as the data source for the 
        -* context menu.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-
        -* html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object specifying the 
        -* <code>&#60;div&#62;</code> element of the context menu.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-
        -* html.html#ID-94282980">HTMLSelectElement</a>} p_oElement Object specifying 
        -* the <code>&#60;select&#62;</code> element to be used as the data source for 
        -* the context menu.
        -* @param {Object} p_oConfig Optional. Object literal specifying the 
        -* configuration for the context menu. See configuration class documentation 
        -* for more details.
        -* @class ContextMenu
        -* @constructor
        -* @extends YAHOO.widget.Menu
        -* @namespace YAHOO.widget
        -*/
        -YAHOO.widget.ContextMenu = function(p_oElement, p_oConfig) {
        -
        -    YAHOO.widget.ContextMenu.superclass.constructor.call(
        -            this, 
        -            p_oElement,
        -            p_oConfig
        -        );
        -
        -};
        -
        -
        -/**
        -* Constant representing the name of the ContextMenu's events
        -* @property YAHOO.widget.ContextMenu._EVENT_TYPES
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.ContextMenu._EVENT_TYPES = {
        -
        -    "TRIGGER_CONTEXT_MENU": "triggerContextMenu",
        -
        -    "CONTEXT_MENU": (
        -                        (YAHOO.widget.Module.prototype.browser == "opera" ? 
        -                            "mousedown" : "contextmenu")
        -                    ),
        -    "CLICK": "click"
        -
        -};
        -
        -
        -/**
        -* Constant representing the ContextMenu's configuration properties
        -* @property YAHOO.widget.ContextMenu._DEFAULT_CONFIG
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.ContextMenu._DEFAULT_CONFIG = {
        -
        -    "TRIGGER": { 
        -        key: "trigger" 
        -    }
        -
        -};
        -
        -
        -YAHOO.lang.extend(YAHOO.widget.ContextMenu, YAHOO.widget.Menu, {
        -
        -
        -
        -// Private properties
        -
        -
        -/**
        -* @property _oTrigger
        -* @description Object reference to the current value of the "trigger" 
        -* configuration property.
        -* @default null
        -* @private
        -* @type String|<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/leve
        -* l-one-html.html#ID-58190037">HTMLElement</a>|Array
        -*/
        -_oTrigger: null,
        -
        -
        -/**
        -* @property _bCancelled
        -* @description Boolean indicating if the display of the context menu should 
        -* be cancelled.
        -* @default false
        -* @private
        -* @type Boolean
        -*/
        -_bCancelled: false,
        -
        -
        -
        -// Public properties
        -
        -
        -/**
        -* @property contextEventTarget
        -* @description Object reference for the HTML element that was the target of the
        -* "contextmenu" DOM event ("mousedown" for Opera) that triggered the display of 
        -* the context menu.
        -* @default null
        -* @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-
        -* html.html#ID-58190037">HTMLElement</a>
        -*/
        -contextEventTarget: null,
        -
        -
        -
        -// Events
        -
        -
        -/**
        -* @event triggerContextMenuEvent
        -* @description Custom Event wrapper for the "contextmenu" DOM event 
        -* ("mousedown" for Opera) fired by the element(s) that trigger the display of 
        -* the context menu.
        -*/
        -triggerContextMenuEvent: null,
        -
        -
        -
        -/**
        -* @method init
        -* @description The ContextMenu class's initialization method. This method is 
        -* automatically called by the constructor, and sets up all DOM references for 
        -* pre-existing markup, and creates required markup if it is not already present.
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;div&#62;</code> element of the context menu.
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;select&#62;</code> element to be used as the data source for 
        -* the context menu.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-
        -* html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object specifying the 
        -* <code>&#60;div&#62;</code> element of the context menu.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-
        -* html.html#ID-94282980">HTMLSelectElement</a>} p_oElement Object specifying 
        -* the <code>&#60;select&#62;</code> element to be used as the data source for 
        -* the context menu.
        -* @param {Object} p_oConfig Optional. Object literal specifying the 
        -* configuration for the context menu. See configuration class documentation 
        -* for more details.
        -*/
        -init: function(p_oElement, p_oConfig) {
        -
        -    if(!this.ITEM_TYPE) {
        -
        -        this.ITEM_TYPE = YAHOO.widget.ContextMenuItem;
        -
        -    }
        -
        -
        -    // Call the init of the superclass (YAHOO.widget.Menu)
        -
        -    YAHOO.widget.ContextMenu.superclass.init.call(this, p_oElement);
        -
        -
        -    this.beforeInitEvent.fire(YAHOO.widget.ContextMenu);
        -
        -
        -    if(p_oConfig) {
        -
        -        this.cfg.applyConfig(p_oConfig, true);
        -
        -    }
        -    
        -    
        -    this.initEvent.fire(YAHOO.widget.ContextMenu);
        -    
        -},
        -
        -
        -/**
        -* @method initEvents
        -* @description Initializes the custom events for the context menu.
        -*/
        -initEvents: function() {
        -
        -	YAHOO.widget.ContextMenu.superclass.initEvents.call(this);
        -
        -    // Create custom events
        -
        -    this.triggerContextMenuEvent = 
        -
        -            new YAHOO.util.CustomEvent(
        -                    YAHOO.widget.ContextMenu._EVENT_TYPES.TRIGGER_CONTEXT_MENU, 
        -                    this
        -                );
        -
        -},
        -
        -
        -/**
        -* @method cancel
        -* @description Cancels the display of the context menu.
        -*/
        -cancel: function() {
        -
        -    this._bCancelled = true;
        -
        -},
        -
        -
        -
        -// Private methods
        -
        -
        -/**
        -* @method _removeEventHandlers
        -* @description Removes all of the DOM event handlers from the HTML element(s) 
        -* whose "context menu" event ("click" for Opera) trigger the display of 
        -* the context menu.
        -* @private
        -*/
        -_removeEventHandlers: function() {
        -
        -    var Event = YAHOO.util.Event,
        -        oTrigger = this._oTrigger;
        -
        -
        -    // Remove the event handlers from the trigger(s)
        -
        -    if (oTrigger) {
        -
        -        Event.removeListener(
        -            oTrigger, 
        -            YAHOO.widget.ContextMenu._EVENT_TYPES.CONTEXT_MENU, 
        -            this._onTriggerContextMenu
        -        );    
        -        
        -        if(this.browser == "opera") {
        -        
        -            Event.removeListener(
        -                oTrigger, 
        -                YAHOO.widget.ContextMenu._EVENT_TYPES.CLICK, 
        -                this._onTriggerClick
        -            );
        -    
        -        }
        -
        -    }
        -
        -},
        -
        -
        -
        -// Private event handlers
        -
        -
        -/**
        -* @method _onTriggerClick
        -* @description "click" event handler for the HTML element(s) identified as the 
        -* "trigger" for the context menu.  Used to cancel default behaviors in Opera.
        -* @private
        -* @param {Event} p_oEvent Object representing the DOM event object passed back 
        -* by the event utility (YAHOO.util.Event).
        -* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context 
        -* menu that is handling the event.
        -*/
        -_onTriggerClick: function(p_oEvent, p_oMenu) {
        -
        -    if(p_oEvent.ctrlKey) {
        -    
        -        YAHOO.util.Event.stopEvent(p_oEvent);
        -
        -    }
        -    
        -},
        -
        -
        -/**
        -* @method _onTriggerContextMenu
        -* @description "contextmenu" event handler ("mousedown" for Opera) for the HTML 
        -* element(s) that trigger the display of the context menu.
        -* @private
        -* @param {Event} p_oEvent Object representing the DOM event object passed back 
        -* by the event utility (YAHOO.util.Event).
        -* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context 
        -* menu that is handling the event.
        -*/
        -_onTriggerContextMenu: function(p_oEvent, p_oMenu) {
        -
        -    var Event = YAHOO.util.Event;
        -
        -    if(p_oEvent.type == "mousedown" && !p_oEvent.ctrlKey) {
        -
        -        return;
        -
        -    }
        -
        -
        -    /*
        -        Prevent the browser's default context menu from appearing and 
        -        stop the propagation of the "contextmenu" event so that 
        -        other ContextMenu instances are not displayed.
        -    */
        -
        -    Event.stopEvent(p_oEvent);
        -
        -
        -    // Hide any other ContextMenu instances that might be visible
        -
        -    YAHOO.widget.MenuManager.hideVisible();
        -
        -
        -    this.contextEventTarget = Event.getTarget(p_oEvent);
        -
        -    this.triggerContextMenuEvent.fire(p_oEvent);
        -
        -
        -    if(!this._bCancelled) {
        -
        -        // Position and display the context menu
        -    
        -        this.cfg.setProperty("xy", Event.getXY(p_oEvent));
        -
        -        this.show();
        -
        -    }
        -
        -    this._bCancelled = false;
        -
        -},
        -
        -
        -
        -// Public methods
        -
        -
        -/**
        -* @method toString
        -* @description Returns a string representing the context menu.
        -* @return {String}
        -*/
        -toString: function() {
        -
        -    var sReturnVal = "ContextMenu",
        -        sId = this.id;
        -
        -    if(sId) {
        -
        -        sReturnVal += (" " + sId);
        -    
        -    }
        -
        -    return sReturnVal;
        -
        -},
        -
        -
        -/**
        -* @method initDefaultConfig
        -* @description Initializes the class's configurable properties which can be 
        -* changed using the context menu's Config object ("cfg").
        -*/
        -initDefaultConfig: function() {
        -
        -    YAHOO.widget.ContextMenu.superclass.initDefaultConfig.call(this);
        -
        -    /**
        -    * @config trigger
        -    * @description The HTML element(s) whose "contextmenu" event ("mousedown" 
        -    * for Opera) trigger the display of the context menu.  Can be a string 
        -    * representing the id attribute of the HTML element, an object reference 
        -    * for the HTML element, or an array of strings or HTML element references.
        -    * @default null
        -    * @type String|<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -    * level-one-html.html#ID-58190037">HTMLElement</a>|Array
        -    */
        -    this.cfg.addProperty(
        -        YAHOO.widget.ContextMenu._DEFAULT_CONFIG.TRIGGER.key, 
        -        { handler: this.configTrigger }
        -    );
        -
        -},
        -
        -
        -/**
        -* @method destroy
        -* @description Removes the context menu's <code>&#60;div&#62;</code> element 
        -* (and accompanying child nodes) from the document.
        -*/
        -destroy: function() {
        -
        -    // Remove the DOM event handlers from the current trigger(s)
        -
        -    this._removeEventHandlers();
        -    
        -
        -    // Continue with the superclass implementation of this method
        -
        -    YAHOO.widget.ContextMenu.superclass.destroy.call(this);
        -
        -},
        -
        -
        -
        -// Public event handlers for configuration properties
        -
        -
        -/**
        -* @method configTrigger
        -* @description Event handler for when the value of the "trigger" configuration 
        -* property changes. 
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context 
        -* menu that fired the event.
        -*/
        -configTrigger: function(p_sType, p_aArgs, p_oMenu) {
        -    
        -    var Event = YAHOO.util.Event,
        -        oTrigger = p_aArgs[0];
        -
        -    if(oTrigger) {
        -
        -        /*
        -            If there is a current "trigger" - remove the event handlers 
        -            from that element(s) before assigning new ones
        -        */
        -
        -        if(this._oTrigger) {
        -        
        -            this._removeEventHandlers();
        -
        -        }
        -
        -        this._oTrigger = oTrigger;
        -
        -
        -        /*
        -            Listen for the "mousedown" event in Opera b/c it does not 
        -            support the "contextmenu" event
        -        */ 
        -  
        -        Event.on(
        -            oTrigger, 
        -            YAHOO.widget.ContextMenu._EVENT_TYPES.CONTEXT_MENU, 
        -            this._onTriggerContextMenu,
        -            this,
        -            true
        -        );
        -
        -
        -        /*
        -            Assign a "click" event handler to the trigger element(s) for
        -            Opera to prevent default browser behaviors.
        -        */
        -
        -        if(this.browser == "opera") {
        -        
        -            Event.on(
        -                oTrigger, 
        -                YAHOO.widget.ContextMenu._EVENT_TYPES.CLICK, 
        -                this._onTriggerClick,
        -                this,
        -                true
        -            );
        -
        -        }
        -
        -    }
        -    else {
        -   
        -        this._removeEventHandlers();
        -    
        -    }
        -    
        -}
        -
        -}); // END YAHOO.lang.extend
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/contextmenuitem.js.html b/www/extras/yui/docs/contextmenuitem.js.html deleted file mode 100644 index fc619090d..000000000 --- a/www/extras/yui/docs/contextmenuitem.js.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - API: menu contextmenuitem.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Menu  2.2.2

        -

        - Yahoo! UI Library - > menu - - > contextmenuitem.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* Creates an item for a context menu.
        -* 
        -* @param {String} p_oObject String specifying the text of the context menu item.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object specifying the 
        -* <code>&#60;li&#62;</code> element of the context menu item.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object 
        -* specifying the <code>&#60;optgroup&#62;</code> element of the context 
        -* menu item.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object specifying 
        -* the <code>&#60;option&#62;</code> element of the context menu item.
        -* @param {Object} p_oConfig Optional. Object literal specifying the 
        -* configuration for the context menu item. See configuration class 
        -* documentation for more details.
        -* @class ContextMenuItem
        -* @constructor
        -* @extends YAHOO.widget.MenuItem
        -*/
        -YAHOO.widget.ContextMenuItem = function(p_oObject, p_oConfig) {
        -
        -    YAHOO.widget.ContextMenuItem.superclass.constructor.call(
        -        this, 
        -        p_oObject, 
        -        p_oConfig
        -    );
        -
        -};
        -
        -YAHOO.lang.extend(YAHOO.widget.ContextMenuItem, YAHOO.widget.MenuItem, {
        -
        -
        -/**
        -* @method init
        -* @description The ContextMenuItem class's initialization method. This method 
        -* is automatically called by the constructor, and sets up all DOM references 
        -* for pre-existing markup, and creates required markup if it is not 
        -* already present.
        -* @param {String} p_oObject String specifying the text of the context menu item.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object specifying the 
        -* <code>&#60;li&#62;</code> element of the context menu item.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object 
        -* specifying the <code>&#60;optgroup&#62;</code> element of the context 
        -* menu item.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object specifying 
        -* the <code>&#60;option&#62;</code> element of the context menu item.
        -* @param {Object} p_oConfig Optional. Object literal specifying the 
        -* configuration for the context menu item. See configuration class 
        -* documentation for more details.
        -*/
        -init: function(p_oObject, p_oConfig) {
        -    
        -    if(!this.SUBMENU_TYPE) {
        -
        -        this.SUBMENU_TYPE = YAHOO.widget.ContextMenu;
        -
        -    }
        -
        -
        -    /* 
        -        Call the init of the superclass (YAHOO.widget.MenuItem)
        -        Note: We don't pass the user config in here yet 
        -        because we only want it executed once, at the lowest 
        -        subclass level.
        -    */ 
        -
        -    YAHOO.widget.ContextMenuItem.superclass.init.call(this, p_oObject);
        -
        -    var oConfig = this.cfg;
        -
        -    if(p_oConfig) {
        -
        -        oConfig.applyConfig(p_oConfig, true);
        -
        -    }
        -
        -    oConfig.fireQueue();
        -
        -},
        -
        -
        -
        -// Public methods
        -
        -
        -/**
        -* @method toString
        -* @description Returns a string representing the context menu item.
        -* @return {String}
        -*/
        -toString: function() {
        -
        -    var sReturnVal = "ContextMenuItem";
        -
        -    if(this.cfg && this.cfg.getProperty("text")) {
        -
        -        sReturnVal += (": " + this.cfg.getProperty("text"));
        -
        -    }
        -
        -    return sReturnVal;
        -
        -}
        -    
        -}); // END YAHOO.lang.extend
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/history.js.html b/www/extras/yui/docs/history.js.html deleted file mode 100644 index 851d69921..000000000 --- a/www/extras/yui/docs/history.js.html +++ /dev/null @@ -1,868 +0,0 @@ - - - - API: history history.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Browser History Manager  2.2.2

        -

        - Yahoo! UI Library - > history - - > history.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        - * The Browser History Manager provides the ability to use the
        - * back/forward navigation buttons in a DHTML application. It also allows
        - * a DHTML application to be bookmarked in a specific state.
        - *
        - * @module history
        - * @requires yahoo,event
        - * @namespace YAHOO.util
        - * @title Browser History Manager
        - * @experimental
        - */
        -
        -/**
        - * The History class provides the ability to use the back/forward navigation
        - * buttons in a DHTML application. It also allows a DHTML application to
        - * be bookmarked in a specific state.
        - *
        - * @class History
        - * @constructor
        - */
        -YAHOO.util.History = ( function () {
        -
        -    /**
        -     * User agent string used for browser detection.
        -     *
        -     * @property _ua
        -     * @type string
        -     * @default null
        -     * @private
        -     */
        -    var _ua = null;
        -
        -    /**
        -     * String identifying which browser we are in.
        -     * Different code is run depending on which browser you are using.
        -     *
        -     * @property _browser
        -     * @type string
        -     * @default "unknown"
        -     * @private
        -     */
        -    var _browser = "unknown";
        -
        -    /**
        -     * Our hidden IFrame used to store the browsing history.
        -     *
        -     * @property _iframe
        -     * @type HTMLIFrameElement
        -     * @default null
        -     * @private
        -     */
        -    var _iframe = null;
        -
        -    /**
        -     * INPUT field (with type="hidden" or type="text") or TEXTAREA.
        -     * This field keeps the value of the initial state, current state
        -     * the list of all states across pages within a single browser session.
        -     *
        -     * @property _storageField
        -     * @type HTMLInputElement|HTMLTextAreaElement
        -     * @default null
        -     * @private
        -     */
        -    var _storageField = null;
        -
        -    /**
        -     * Flag used to tell whether YAHOO.util.History.initialize has been called.
        -     *
        -     * @property _initialized
        -     * @type boolean
        -     * @default false
        -     * @private
        -     */
        -    var _initialized = false;
        -
        -    /**
        -     * Flag used to tell whether the storage field is ready to be used.
        -     *
        -     * @property _storageFieldReady
        -     * @type boolean
        -     * @default false
        -     * @private
        -     */
        -    var _storageFieldReady = false;
        -
        -    /**
        -     * Flag used to tell whether the Browser History Manager is ready.
        -     *
        -     * @property _bhmReady
        -     * @type boolean
        -     * @default false
        -     * @private
        -     */
        -    var _bhmReady = false;
        -
        -    /**
        -     * List of registered modules.
        -     *
        -     * @property _modules
        -     * @type array
        -     * @default []
        -     * @private
        -     */
        -    var _modules = [];
        -
        -    /**
        -     * List of fully qualified states. This is used only by Safari.
        -     *
        -     * @property _fqstates
        -     * @type array
        -     * @default []
        -     * @private
        -     */
        -    var _fqstates = [];
        -
        -    /**
        -     * Trims a string.
        -     *
        -     * @method _trim
        -     * @param {string} str The string to be trimmed.
        -     * @return {string} The trimmed string
        -     * @private
        -     */
        -    function _trim( str ) {
        -        return str.replace( /^\s*(\S*(\s+\S+)*)\s*$/, "$1" );
        -    }
        -
        -    /**
        -     * location.hash is a bit buggy on Opera. I have seen instances where
        -     * navigating the history using the back/forward buttons, and hence
        -     * changing the URL, would not change location.hash. That's ok, the
        -     * implementation of an equivalent is trivial.
        -     *
        -     * @method _getHash
        -     * @return {string} The hash portion of the document's location
        -     * @private
        -     */
        -    function _getHash() {
        -
        -        var href;
        -        var i;
        -
        -        href = top.location.href;
        -        i = href.indexOf( "#" );
        -        return i >= 0 ? href.substr( i + 1 ) : null;
        -    }
        -
        -    /**
        -     * Stores all the registered modules' initial state and current state.
        -     * On Safari, we also store all the fully qualified states visited by
        -     * the application within a single browser session. The storage takes
        -     * place in the form field specified during initialization.
        -     *
        -     * @method _storeStates
        -     * @private
        -     */
        -    function _storeStates() {
        -
        -        var moduleName;
        -        var moduleObj;
        -        var initialStates = [];
        -        var currentStates = [];
        -
        -        for ( moduleName in _modules ) {
        -            if ( YAHOO.lang.hasOwnProperty( _modules, moduleName ) ) {
        -                moduleObj = _modules[moduleName];
        -                initialStates.push( moduleName + "=" + moduleObj.initialState );
        -                currentStates.push( moduleName + "=" + moduleObj.currentState );
        -            }
        -        }
        -
        -        _storageField.value = initialStates.join( "&" ) + "|" + currentStates.join( "&" );
        -
        -        if ( _browser == "safari" ) {
        -            _storageField.value += "|" + _fqstates.join( "," );
        -        }
        -    }
        -
        -    /**
        -     * Periodically checks whether our internal IFrame is ready to be used.
        -     *
        -     * @method _checkIframeLoaded
        -     * @private
        -     */
        -    function _checkIframeLoaded() {
        -
        -        var doc;
        -        var elem;
        -        var fqstate;
        -
        -        if ( !_iframe.contentWindow || !_iframe.contentWindow.document ) {
        -            // Check again in 10 msec...
        -            setTimeout( _checkIframeLoaded, 10 );
        -            return;
        -        }
        -
        -        // Start the thread that will have the responsibility to
        -        // periodically check whether a navigate operation has been
        -        // requested on the main window. This will happen when
        -        // YAHOO.util.History.navigate has been called or after
        -        // the user has hit the back/forward button.
        -
        -        doc = _iframe.contentWindow.document;
        -        elem = doc.getElementById( "state" );
        -        // We must use innerText, and not innerHTML because our string contains
        -        // the "&" character (which would end up being escaped as "&amp;") and
        -        // the string comparison would fail...
        -        fqstate = elem ? elem.innerText : null;
        -
        -        setInterval( function () {
        -
        -            var newfqstate;
        -            var hash;
        -            var states;
        -            var moduleName;
        -            var moduleObj;
        -
        -            doc = _iframe.contentWindow.document;
        -            elem = doc.getElementById( "state" );
        -            // See my comment above about using innerText instead of innerHTML...
        -            newfqstate = elem ? elem.innerText : null;
        -
        -            if ( newfqstate != fqstate ) {
        -                fqstate = newfqstate;
        -                _handleFQStateChange( fqstate );
        -
        -                if ( !fqstate ) {
        -                    states = [];
        -                    for ( moduleName in _modules ) {
        -                        if ( YAHOO.lang.hasOwnProperty( _modules, moduleName ) ) {
        -                            moduleObj = _modules[moduleName];
        -                            states.push( moduleName + "=" + moduleObj.initialState );
        -                        }
        -                    }
        -                    hash = states.join( "&" );
        -                } else {
        -                    hash = fqstate;
        -                }
        -
        -                // Allow the state to be bookmarked without messing up the browser history...
        -                top.location.replace( "#" + hash );
        -
        -                _storeStates();
        -            }
        -        }, 50 );
        -
        -        _bhmReady = true;
        -
        -        YAHOO.util.History.onLoadEvent.fire();
        -    }
        -
        -    /**
        -     * Sets the new currentState attribute of all modules depending on the new
        -     * fully qualified state. Also notifies the modules which current state has
        -     * changed.
        -     *
        -     * @method _handleFQStateChange
        -     * @param {string} fqstate Fully qualified state
        -     * @private
        -     */
        -    function _handleFQStateChange( fqstate ) {
        -
        -        var i;
        -        var len;
        -        var moduleName;
        -        var moduleObj;
        -        var modules;
        -        var states;
        -        var tokens;
        -        var currentState;
        -
        -        if ( !fqstate ) {
        -            // Notifies all modules
        -            for ( moduleName in _modules ) {
        -                if ( YAHOO.lang.hasOwnProperty( _modules, moduleName ) ) {
        -                    moduleObj = _modules[moduleName];
        -                    moduleObj.currentState = moduleObj.initialState;
        -                    moduleObj.onStateChange( unescape( moduleObj.currentState ) );
        -                }
        -            }
        -            return;
        -        }
        -
        -        modules = [];
        -        states = fqstate.split( "&" );
        -        for ( i = 0, len = states.length ; i < len ; i++ ) {
        -            tokens = states[i].split( "=" );
        -            if ( tokens.length == 2 ) {
        -                moduleName = tokens[0];
        -                currentState = tokens[1];
        -                modules[moduleName] = currentState;
        -            }
        -        }
        -
        -        for ( moduleName in _modules ) {
        -            if ( YAHOO.lang.hasOwnProperty( _modules, moduleName ) ) {
        -                moduleObj = _modules[moduleName];
        -                currentState = modules[moduleName];
        -                if ( !currentState || moduleObj.currentState != currentState ) {
        -                    moduleObj.currentState = currentState || moduleObj.initialState;
        -                    moduleObj.onStateChange( unescape( moduleObj.currentState ) );
        -                }
        -            }
        -        }
        -    }
        -
        -    /**
        -     * Finish up the initialization of the Browser History Manager.
        -     *
        -     * @method _initialize
        -     * @private
        -     */
        -    function _initialize() {
        -
        -        var i;
        -        var len;
        -        var parts;
        -        var tokens;
        -        var moduleName;
        -        var moduleObj;
        -        var initialStates;
        -        var initialState;
        -        var currentStates;
        -        var currentState;
        -        var counter;
        -        var hash;
        -
        -        _storageField = document.getElementById( "yui_hist_field" );
        -
        -        // Decode the content of our storage field...
        -        parts = _storageField.value.split( "|" );
        -
        -        if ( parts.length > 1 ) {
        -
        -            initialStates = parts[0].split( "&" );
        -            for ( i = 0, len = initialStates.length ; i < len ; i++ ) {
        -                tokens = initialStates[i].split( "=" );
        -                if ( tokens.length == 2 ) {
        -                    moduleName = tokens[0];
        -                    initialState = tokens[1];
        -                    moduleObj = _modules[moduleName];
        -                    if ( moduleObj ) {
        -                        moduleObj.initialState = initialState;
        -                    }
        -                }
        -            }
        -
        -            currentStates = parts[1].split( "&" );
        -            for ( i = 0, len = currentStates.length ; i < len ; i++ ) {
        -                tokens = currentStates[i].split( "=" );
        -                if ( tokens.length >= 2 ) {
        -                    moduleName = tokens[0];
        -                    currentState = tokens[1];
        -                    moduleObj = _modules[moduleName];
        -                    if ( moduleObj ) {
        -                        moduleObj.currentState = currentState;
        -                    }
        -                }
        -            }
        -        }
        -
        -        if ( parts.length > 2 ) {
        -            _fqstates = parts[2].split( "," );
        -        }
        -
        -        _storageFieldReady = true;
        -
        -        if ( _browser == "msie" ) {
        -
        -            _iframe = document.getElementById( "yui_hist_iframe" );
        -            _checkIframeLoaded();
        -
        -        } else {
        -
        -            // Start the thread that will have the responsibility to
        -            // periodically check whether a navigate operation has been
        -            // requested on the main window. This will happen when
        -            // YAHOO.util.History.navigate has been called or after
        -            // the user has hit the back/forward button.
        -
        -            // On Safari 1.x and 2.0, the only way to catch a back/forward
        -            // operation is to watch history.length... We basically exploit
        -            // what I consider to be a bug (history.length is not supposed
        -            // to change when going back/forward in the history...) This is
        -            // why, in the following thread, we first compare the hash,
        -            // because the hash thing will be fixed in the next major
        -            // version of Safari. So even if they fix the history.length
        -            // bug, all this will still work!
        -            counter = history.length;
        -
        -            // On Gecko and Opera, we just need to watch the hash...
        -            hash = _getHash();
        -
        -            setInterval( function () {
        -
        -                var state;
        -                var newHash;
        -                var newCounter;
        -
        -                newHash = _getHash();
        -                newCounter = history.length;
        -                if ( newHash != hash ) {
        -                    hash = newHash;
        -                    counter = newCounter;
        -                    _handleFQStateChange( hash );
        -                    _storeStates();
        -                } else if ( newCounter != counter ) {
        -                    // If we ever get here, we should be on Safari...
        -                    hash = newHash;
        -                    counter = newCounter;
        -                    state = _fqstates[counter - 1];
        -                    _handleFQStateChange( state );
        -                    _storeStates();
        -                }
        -            }, 50 );
        -
        -            _bhmReady = true;
        -
        -            YAHOO.util.History.onLoadEvent.fire();
        -        }
        -    }
        -
        -    // Simple browser detection code
        -    // After talking with Matt Sweeney, I moved back to using the
        -    // user agent string instead of doing browser detection.
        -    _ua = navigator.userAgent.toLowerCase();
        -    if ( _ua.indexOf( "opera" ) != -1 ) {
        -        // Opera (check first in case of spoof)
        -        _browser = "opera";
        -    } else if ( _ua.indexOf( "msie" ) != -1 ) {
        -        // Microsoft Internet Explorer and derivatives...
        -        _browser = "msie";
        -    } else if ( _ua.indexOf( "safari" ) != -1 ) {
        -        // Safari (check before Gecko because it includes "like Gecko")
        -        _browser = "safari";
        -    } else if ( _ua.indexOf( "gecko" ) != -1 ) {
        -        // Gecko
        -        _browser = "gecko";
        -    }
        -
        -    return {
        -
        -        /**
        -         * Fired when the Browser History Manager is ready.
        -         *
        -         * @event onLoadEvent
        -         */
        -        onLoadEvent: new YAHOO.util.CustomEvent( "onLoad" ),
        -
        -        /**
        -         * Registers a new module.
        -         *
        -         * @method register
        -         * @param {string} module Non-empty string uniquely identifying the
        -         *     module you wish to register.
        -         * @param {string} initialState The initial state of the specified
        -         *     module corresponding to its earliest history entry.
        -         * @param {function} onStateChange Callback called when the
        -         *     state of the specified module has changed.
        -         * @param {object} obj An arbitrary object that will be passed as a
        -         *     parameter to the handler.
        -         * @param {boolean} override If true, the obj passed in becomes the
        -         *     execution scope of the listener.
        -         */
        -        register: function ( module, initialState, onStateChange, obj, override ) {
        -
        -            var scope;
        -            var wrappedFn;
        -
        -            if ( typeof module != "string" || _trim( module ) === "" ||
        -                 typeof initialState != "string" ||
        -                 typeof onStateChange != "function" ) {
        -                throw new Error( "Missing or invalid argument passed to YAHOO.util.History.register" );
        -            }
        -
        -            if ( _modules[module] ) {
        -                throw new Error( "A module cannot be registered twice" );
        -            }
        -
        -            // Note: A module CANNOT be registered after calling
        -            // YAHOO.util.History.initialize. Indeed, we set the initial state
        -            // of each registered module in YAHOO.util.History.initialize.
        -            // If you could register a module after initializing the Browser
        -            // History Manager, you would not read the correct state using
        -            // YAHOO.util.History.getCurrentState when coming back to the
        -            // page using the back button.
        -            if ( _initialized ) {
        -                throw new Error( "All modules must be registered before calling YAHOO.util.History.initialize" );
        -            }
        -
        -            // Make sure the strings passed in do not contain our separators "," and "|"
        -            module = escape( module );
        -            initialState = escape( initialState );
        -
        -            // If the user chooses to override the scope, we use the
        -            // custom object passed in as the execution scope.
        -            scope = null;
        -            if ( override === true ) {
        -                scope = obj;
        -            } else {
        -                scope = override;
        -            }
        -
        -            wrappedFn = function ( state ) {
        -                return onStateChange.call( scope, state, obj );
        -            };
        -
        -            _modules[module] = {
        -                name: module,
        -                initialState: initialState,
        -                currentState: initialState,
        -                onStateChange: wrappedFn
        -            };
        -        },
        -
        -        /**
        -         * Initializes the Browser History Manager. Call this method
        -         * from a script block located right after the opening body tag.
        -         *
        -         * @method initialize
        -         * @param {string} iframeTarget Optional - Path to an existing
        -         *     HTML document accessible from the same domain. If not
        -         *     specified, defaults to "blank.html". This is only useful
        -         *     if you use https.
        -         * @public
        -         */
        -        initialize: function ( iframeTarget ) {
        -
        -            // Return if the browser history manager has already been initialized
        -            if ( _initialized ) {
        -                return;
        -            }
        -
        -            if ( _browser == "unknown" ) {
        -                throw new Error( "Your web browser is not supported by the Browser History Manager" );
        -            }
        -
        -            if ( !iframeTarget ) {
        -                iframeTarget = "blank.html";
        -            }
        -
        -            if ( typeof iframeTarget != "string" || _trim( iframeTarget ) === "" ) {
        -                throw new Error( "Invalid argument passed to YAHOO.util.History.initialize" );
        -            }
        -
        -            document.write( '<input type="hidden" id="yui_hist_field">' );
        -
        -            if ( _browser == "msie" ) {
        -                if ( location.protocol == "https:" ) {
        -                    // If we use https, we MUST point the IFrame to a valid
        -                    // document on the same server. If we don't, we will get
        -                    // a warning (do you want to display non secure items?)
        -                    document.write( '<iframe id="yui_hist_iframe" src="' + iframeTarget + '" style="position:absolute;visibility:hidden;"></iframe>' );
        -                } else {
        -                    // This trick allows us to do without having to download
        -                    // the asset, saving one HTTP request...
        -                    document.write( '<iframe id="yui_hist_iframe" src="javascript:document.open();document.write(&quot;' + new Date().getTime() + '&quot;);document.close();" style="position:absolute;visibility:hidden;"></iframe>' );
        -                }
        -            }
        -
        -            // We have to wait for the window's onload handler. Otherwise, our
        -            // hidden form field will always be empty (i.e. the browser won't
        -            // have had enough time to restore the session)
        -            YAHOO.util.Event.addListener( window, "load", _initialize );
        -
        -            _initialized = true;
        -        },
        -
        -        /**
        -         * Call this method when you want to store a new entry in the browser's history.
        -         *
        -         * @method navigate
        -         * @param {string} module Non-empty string representing your module.
        -         * @param {string} state String representing the new state of the specified module.
        -         * @return {boolean} Indicates whether the new state was successfully added to the history.
        -         * @public
        -         */
        -        navigate: function ( module, state ) {
        -
        -            var currentStates;
        -            var moduleName;
        -            var moduleObj;
        -            var currentState;
        -            var fqstate;
        -            var html;
        -            var doc;
        -
        -            if ( typeof module != "string" || typeof state != "string" ) {
        -                throw new Error( "Missing or invalid argument passed to YAHOO.util.History.navigate" );
        -            }
        -
        -            if ( !_bhmReady ) {
        -                throw new Error( "The Browser History Manager is not initialized" );
        -            }
        -
        -            if ( !_modules[module] ) {
        -                throw new Error( "The following module has not been registered: " + module );
        -            }
        -
        -            // Make sure the strings passed in do not contain our separators "," and "|"
        -            module = escape( module );
        -            state = escape( state );
        -
        -            // Generate our new full state string mod1=xxx&mod2=yyy
        -            currentStates = [];
        -            for ( moduleName in _modules ) {
        -                if ( YAHOO.lang.hasOwnProperty( _modules, moduleName ) ) {
        -                    moduleObj = _modules[moduleName];
        -                    currentState = ( moduleName == module ) ? state : moduleObj.currentState;
        -                    currentStates.push( moduleName + "=" + currentState );
        -                }
        -            }
        -
        -            fqstate = currentStates.join( "&" );
        -
        -            if ( _browser == "msie" ) {
        -
        -                html = '<html><body><div id="state">' + fqstate + '</div></body></html>';
        -                try {
        -                    doc = _iframe.contentWindow.document;
        -                    doc.open();
        -                    doc.write( html );
        -                    doc.close();
        -                } catch ( e ) {
        -                    return false;
        -                }
        -
        -            } else {
        -
        -                // Known bug: On Safari 1.x and 2.0, if you have tab browsing
        -                // enabled, Safari will show an endless loading icon in the
        -                // tab. This has apparently been fixed in recent WebKit builds.
        -                // One work around found by Dav Glass is to submit a form that
        -                // points to the same document. This indeed works on Safari 1.x
        -                // and 2.0 but creates bigger problems on WebKit. So for now,
        -                // we'll consider this an acceptable bug, and hope that Apple
        -                // comes out with their next version of Safari very soon.
        -                top.location.hash = fqstate;
        -                if ( _browser == "safari" ) {
        -                    // The following two lines are only useful for Safari 1.x
        -                    // and 2.0. Recent nightly builds of WebKit do not require
        -                    // that, but unfortunately, it is not easy to differentiate
        -                    // between the two. Once Safari 2.0 departs the A-grade
        -                    // list, we can remove the following two lines...
        -                    _fqstates[history.length] = fqstate;
        -                    _storeStates();
        -                }
        -
        -            }
        -
        -            return true;
        -        },
        -
        -        /**
        -         * Returns the current state of the specified module.
        -         *
        -         * @method getCurrentState
        -         * @param {string} module Non-empty string representing your module.
        -         * @return {string} The current state of the specified module.
        -         * @public
        -         */
        -        getCurrentState: function ( module ) {
        -
        -            var moduleObj;
        -
        -            if ( typeof module != "string" ) {
        -                throw new Error( "Missing or invalid argument passed to YAHOO.util.History.getCurrentState" );
        -            }
        -
        -            if ( !_storageFieldReady ) {
        -                throw new Error( "The Browser History Manager is not initialized" );
        -            }
        -
        -            moduleObj = _modules[module];
        -            if ( !moduleObj ) {
        -                throw new Error( "No such registered module: " + module );
        -            }
        -
        -            return unescape( moduleObj.currentState );
        -        },
        -
        -        /**
        -         * Returns the state of a module according to the URL fragment
        -         * identifier. This method is useful to initialize your modules
        -         * if your application was bookmarked from a particular state.
        -         *
        -         * @method getBookmarkedState
        -         * @param {string} module Non-empty string representing your module.
        -         * @return {string} The bookmarked state of the specified module.
        -         * @public
        -         */
        -        getBookmarkedState: function ( module ) {
        -
        -            var i;
        -            var len;
        -            var hash;
        -            var states;
        -            var tokens;
        -            var moduleName;
        -
        -            if ( typeof module != "string" ) {
        -                throw new Error( "Missing or invalid argument passed to YAHOO.util.History.getBookmarkedState" );
        -            }
        -
        -            hash = top.location.hash.substr(1);
        -            states = hash.split( "&" );
        -            for ( i = 0, len = states.length ; i < len ; i++ ) {
        -                tokens = states[i].split( "=" );
        -                if ( tokens.length == 2 ) {
        -                    moduleName = tokens[0];
        -                    if ( moduleName == module ) {
        -                        return unescape( tokens[1] );
        -                    }
        -                }
        -            }
        -
        -            return null;
        -        },
        -
        -        /**
        -         * Returns the value of the specified query string parameter.
        -         * This method is not used internally by the Browser History Manager.
        -         * However, it is provided here as a helper since many applications
        -         * using the Browser History Manager will want to read the value of
        -         * url parameters to initialize themselves.
        -         *
        -         * @method getQueryStringParameter
        -         * @param {string} paramName Name of the parameter we want to look up.
        -         * @param {string} queryString Optional URL to look at. If not specified,
        -         *     this method uses the URL in the address bar.
        -         * @return {string} The value of the specified parameter, or null.
        -         * @public
        -         */
        -        getQueryStringParameter: function ( paramName, url ) {
        -
        -            var i;
        -            var len;
        -            var idx;
        -            var queryString;
        -            var params;
        -            var tokens;
        -
        -            url = url || top.location.href;
        -
        -            idx = url.indexOf( "?" );
        -            queryString = idx >= 0 ? url.substr( idx + 1 ) : url;
        -            params = queryString.split( "&" );
        -
        -            for ( i = 0, len = params.length ; i < len ; i++ ) {
        -                tokens = params[i].split( "=" );
        -                if ( tokens.length >= 2 ) {
        -                    if ( tokens[0] == paramName ) {
        -                        return unescape( tokens[1] );
        -                    }
        -                }
        -            }
        -
        -            return null;
        -        }
        -
        -    };
        -
        -} )();
        -
        -
        -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/index.html b/www/extras/yui/docs/index.html deleted file mode 100644 index bb1b4c45f..000000000 --- a/www/extras/yui/docs/index.html +++ /dev/null @@ -1,266 +0,0 @@ - - - - API: (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

          2.2.2

        -

        - Yahoo! UI Library -

        - -
        -
        -
        - -
        - This is the API documentation for the - Yahoo! User Interface Library -
        -
        -

        Search YUI

        -
        - -
        -   -
        -
        - - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/index.json b/www/extras/yui/docs/index.json deleted file mode 100644 index 0c653638b..000000000 --- a/www/extras/yui/docs/index.json +++ /dev/null @@ -1 +0,0 @@ -[{"url": "YAHOO.util.Region.html#0", "host": "YAHOO.util.Region", "name": "0"}, {"url": "YAHOO.util.Region.html#1", "host": "YAHOO.util.Region", "name": "1"}, {"url": "Column.html#abbr", "host": "Column", "name": "abbr"}, {"url": "YAHOO.util.Connect.html#abort", "host": "YAHOO.util.Connect", "name": "abort"}, {"url": "YAHOO.widget.DataSource.html#_aCache", "host": "YAHOO.widget.DataSource", "name": "_aCache"}, {"url": "DataSource.html#_aCache", "host": "DataSource", "name": "_aCache"}, {"url": "YAHOO.widget.Button.html#_activationButtonPressed", "host": "YAHOO.widget.Button", "name": "_activationButtonPressed"}, {"url": "YAHOO.widget.Tab.html#activationEvent", "host": "YAHOO.widget.Tab", "name": "activationEvent"}, {"url": "YAHOO.widget.Button.html#_activationKeyPressed", "host": "YAHOO.widget.Button", "name": "_activationKeyPressed"}, {"url": "YAHOO.widget.Button.html#ACTIVATION_KEYS", "host": "YAHOO.widget.Button", "name": "ACTIVATION_KEYS"}, {"url": "YAHOO.widget.Tab.html#active", "host": "YAHOO.widget.Tab", "name": "active"}, {"url": "YAHOO.widget.Tab.html#activeChange", "host": "YAHOO.widget.Tab", "name": "activeChange"}, {"url": "YAHOO.widget.Tab.html#ACTIVE_CLASSNAME", "host": "YAHOO.widget.Tab", "name": "ACTIVE_CLASSNAME"}, {"url": "YAHOO.widget.TabView.html#activeIndex", "host": "YAHOO.widget.TabView", "name": "activeIndex"}, {"url": "YAHOO.widget.Menu.html#activeItem", "host": "YAHOO.widget.Menu", "name": "activeItem"}, {"url": "YAHOO.widget.OverlayManager.html#activeOverlay", "host": "YAHOO.widget.OverlayManager", "name": "activeOverlay"}, {"url": "YAHOO.widget.TabView.html#activeTab", "host": "YAHOO.widget.TabView", "name": "activeTab"}, {"url": "YAHOO.widget.TabView.html#activeTabChange", "host": "YAHOO.widget.TabView", "name": "activeTabChange"}, {"url": "YAHOO.util.Anim.html#actualFrames", "host": "YAHOO.util.Anim", "name": "actualFrames"}, {"url": "YAHOO.widget.DateMath.html#add", "host": "YAHOO.widget.DateMath", "name": "add"}, {"url": "YAHOO.widget.ButtonGroup.html#addButton", "host": "YAHOO.widget.ButtonGroup", "name": "addButton"}, {"url": "YAHOO.widget.ButtonGroup.html#addButtons", "host": "YAHOO.widget.ButtonGroup", "name": "addButtons"}, {"url": "YAHOO.widget.DataSource.html#_addCacheElem", "host": "YAHOO.widget.DataSource", "name": "_addCacheElem"}, {"url": "YAHOO.util.Dom.html#addClass", "host": "YAHOO.util.Dom", "name": "addClass"}, {"url": "YAHOO.util.Element.html#addClass", "host": "YAHOO.util.Element", "name": "addClass"}, {"url": "YAHOO.widget.Button.html#addHiddenFieldsToForm", "host": "YAHOO.widget.Button", "name": "addHiddenFieldsToForm"}, {"url": "YAHOO.util.DragDrop.html#addInvalidHandleClass", "host": "YAHOO.util.DragDrop", "name": "addInvalidHandleClass"}, {"url": "YAHOO.util.DragDrop.html#addInvalidHandleId", "host": "YAHOO.util.DragDrop", "name": "addInvalidHandleId"}, {"url": "YAHOO.util.DragDrop.html#addInvalidHandleType", "host": "YAHOO.util.DragDrop", "name": "addInvalidHandleType"}, {"url": "YAHOO.widget.Menu.html#addItem", "host": "YAHOO.widget.Menu", "name": "addItem"}, {"url": "YAHOO.widget.MenuManager.html#addItem", "host": "YAHOO.widget.MenuManager", "name": "addItem"}, {"url": "YAHOO.widget.Menu.html#addItems", "host": "YAHOO.widget.Menu", "name": "addItems"}, {"url": "YAHOO.widget.Menu.html#_addItemToGroup", "host": "YAHOO.widget.Menu", "name": "_addItemToGroup"}, {"url": "YAHOO.util.Element.html#addListener", "host": "YAHOO.util.Element", "name": "addListener"}, {"url": "YAHOO.util.Event.html#addListener", "host": "YAHOO.util.Event", "name": "addListener"}, {"url": "YAHOO.util.DragDropMgr.html#_addListeners", "host": "YAHOO.util.DragDropMgr", "name": "_addListeners"}, {"url": "YAHOO.widget.Button.html#_addListenersToForm", "host": "YAHOO.widget.Button", "name": "_addListenersToForm"}, {"url": "YAHOO.widget.MenuManager.html#addMenu", "host": "YAHOO.widget.MenuManager", "name": "addMenu"}, {"url": "YAHOO.widget.Calendar.html#addMonthRenderer", "host": "YAHOO.widget.Calendar", "name": "addMonthRenderer"}, {"url": "YAHOO.widget.CalendarGroup.html#addMonthRenderer", "host": "YAHOO.widget.CalendarGroup", "name": "addMonthRenderer"}, {"url": "YAHOO.widget.Calendar.html#addMonths", "host": "YAHOO.widget.Calendar", "name": "addMonths"}, {"url": "YAHOO.widget.CalendarGroup.html#addMonths", "host": "YAHOO.widget.CalendarGroup", "name": "addMonths"}, {"url": "YAHOO.util.Config.html#addProperty", "host": "YAHOO.util.Config", "name": "addProperty"}, {"url": "RecordSet.html#addRecord", "host": "RecordSet", "name": "addRecord"}, {"url": "DataTable.html#_addRecords", "host": "DataTable", "name": "_addRecords"}, {"url": "RecordSet.html#addRecords", "host": "RecordSet", "name": "addRecords"}, {"url": "YAHOO.widget.Calendar.html#_addRenderer", "host": "YAHOO.widget.Calendar", "name": "_addRenderer"}, {"url": "YAHOO.widget.Calendar.html#addRenderer", "host": "YAHOO.widget.Calendar", "name": "addRenderer"}, {"url": "YAHOO.widget.CalendarGroup.html#addRenderer", "host": "YAHOO.widget.CalendarGroup", "name": "addRenderer"}, {"url": "DataTable.html#addRow", "host": "DataTable", "name": "addRow"}, {"url": "DataTable.html#_addRowEl", "host": "DataTable", "name": "_addRowEl"}, {"url": "YAHOO.widget.TabView.html#addTab", "host": "YAHOO.widget.TabView", "name": "addTab"}, {"url": "DataSource.html#addToCache", "host": "DataSource", "name": "addToCache"}, {"url": "YAHOO.util.DragDrop.html#addToGroup", "host": "YAHOO.util.DragDrop", "name": "addToGroup"}, {"url": "YAHOO.widget.Calendar.html#addWeekdayRenderer", "host": "YAHOO.widget.Calendar", "name": "addWeekdayRenderer"}, {"url": "YAHOO.widget.CalendarGroup.html#addWeekdayRenderer", "host": "YAHOO.widget.CalendarGroup", "name": "addWeekdayRenderer"}, {"url": "YAHOO.widget.Calendar.html#addYears", "host": "YAHOO.widget.Calendar", "name": "addYears"}, {"url": "YAHOO.widget.CalendarGroup.html#addYears", "host": "YAHOO.widget.CalendarGroup", "name": "addYears"}, {"url": "YAHOO.util.Event.html#ADJ_SCOPE", "host": "YAHOO.util.Event", "name": "ADJ_SCOPE"}, {"url": "YAHOO.widget.DateMath.html#after", "host": "YAHOO.widget.DateMath", "name": "after"}, {"url": "YAHOO.widget.Menu.html#_aGroupTitleElements", "host": "YAHOO.widget.Menu", "name": "_aGroupTitleElements"}, {"url": "YAHOO.widget.Menu.html#_aItemGroups", "host": "YAHOO.widget.Menu", "name": "_aItemGroups"}, {"url": "YAHOO.widget.Overlay.html#align", "host": "YAHOO.widget.Overlay", "name": "align"}, {"url": "YAHOO.util.DD.html#alignElWithMouse", "host": "YAHOO.util.DD", "name": "alignElWithMouse"}, {"url": "YAHOO.widget.Menu.html#_aListElements", "host": "YAHOO.widget.Menu", "name": "_aListElements"}, {"url": "YAHOO.widget.AutoComplete.html#_aListItems", "host": "YAHOO.widget.AutoComplete", "name": "_aListItems"}, {"url": "YAHOO.widget.AutoComplete.html#allowBrowserAutocomplete", "host": "YAHOO.widget.AutoComplete", "name": "allowBrowserAutocomplete"}, {"url": "YAHOO.widget.AutoComplete.html#alwaysShowContainer", "host": "YAHOO.widget.AutoComplete", "name": "alwaysShowContainer"}, {"url": "YAHOO.widget.Slider.html#animate", "host": "YAHOO.widget.Slider", "name": "animate"}, {"url": "YAHOO.util.Anim.html#animate", "host": "YAHOO.util.Anim", "name": "animate"}, {"url": "YAHOO.widget.TVFadeIn.html#animate", "host": "YAHOO.widget.TVFadeIn", "name": "animate"}, {"url": "YAHOO.widget.TVFadeOut.html#animate", "host": "YAHOO.widget.TVFadeOut", "name": "animate"}, {"url": "YAHOO.widget.TreeView.html#animateCollapse", "host": "YAHOO.widget.TreeView", "name": "animateCollapse"}, {"url": "YAHOO.widget.TreeView.html#animateExpand", "host": "YAHOO.widget.TreeView", "name": "animateExpand"}, {"url": "YAHOO.widget.ContainerEffect.html#animateIn", "host": "YAHOO.widget.ContainerEffect", "name": "animateIn"}, {"url": "YAHOO.widget.ContainerEffect.html#animateOut", "host": "YAHOO.widget.ContainerEffect", "name": "animateOut"}, {"url": "YAHOO.widget.Slider.html#animationDuration", "host": "YAHOO.widget.Slider", "name": "animationDuration"}, {"url": "YAHOO.widget.ContainerEffect.html#animClass", "host": "YAHOO.widget.ContainerEffect", "name": "animClass"}, {"url": "YAHOO.widget.TreeView.html#animComplete", "host": "YAHOO.widget.TreeView", "name": "animComplete"}, {"url": "YAHOO.widget.TreeView.html#_animCount", "host": "YAHOO.widget.TreeView", "name": "_animCount"}, {"url": "YAHOO.widget.AutoComplete.html#animHoriz", "host": "YAHOO.widget.AutoComplete", "name": "animHoriz"}, {"url": "YAHOO.widget.AutoComplete.html#animSpeed", "host": "YAHOO.widget.AutoComplete", "name": "animSpeed"}, {"url": "YAHOO.widget.TreeView.html#animStart", "host": "YAHOO.widget.TreeView", "name": "animStart"}, {"url": "YAHOO.widget.AutoComplete.html#animVert", "host": "YAHOO.widget.AutoComplete", "name": "animVert"}, {"url": "RecordSet.html#append", "host": "RecordSet", "name": "append"}, {"url": "YAHOO.util.Element.html#appendChild", "host": "YAHOO.util.Element", "name": "appendChild"}, {"url": "YAHOO.widget.Node.html#appendChild", "host": "YAHOO.widget.Node", "name": "appendChild"}, {"url": "YAHOO.widget.Module.html#appendEvent", "host": "YAHOO.widget.Module", "name": "appendEvent"}, {"url": "YAHOO.util.Connect.html#appendPostData", "host": "YAHOO.util.Connect", "name": "appendPostData"}, {"url": "DataTable.html#appendRows", "host": "DataTable", "name": "appendRows"}, {"url": "YAHOO.util.Element.html#appendTo", "host": "YAHOO.util.Element", "name": "appendTo"}, {"url": "YAHOO.widget.Node.html#appendTo", "host": "YAHOO.widget.Node", "name": "appendTo"}, {"url": "YAHOO.widget.Module.html#appendToBody", "host": "YAHOO.widget.Module", "name": "appendToBody"}, {"url": "YAHOO.widget.Module.html#appendToFooter", "host": "YAHOO.widget.Module", "name": "appendToFooter"}, {"url": "YAHOO.widget.Module.html#appendToHeader", "host": "YAHOO.widget.Module", "name": "appendToHeader"}, {"url": "YAHOO.util.Config.html#applyConfig", "host": "YAHOO.util.Config", "name": "applyConfig"}, {"url": "YAHOO.util.DragDrop.html#applyConfig", "host": "YAHOO.util.DragDrop", "name": "applyConfig"}, {"url": "YAHOO.widget.Calendar.html#applyListeners", "host": "YAHOO.widget.Calendar", "name": "applyListeners"}, {"url": "YAHOO.widget.Node.html#applyParent", "host": "YAHOO.widget.Node", "name": "applyParent"}, {"url": "DataTable.html#_aSelectedRecords", "host": "DataTable", "name": "_aSelectedRecords"}, {"url": "YAHOO.util.Connect.html#asyncRequest", "host": "YAHOO.util.Connect", "name": "asyncRequest"}, {"url": "YAHOO.widget.Dialog.html#asyncSubmitEvent", "host": "YAHOO.widget.Dialog", "name": "asyncSubmitEvent"}, {"url": "YAHOO.util.Anim.html#attributes", "host": "YAHOO.util.Anim", "name": "attributes"}, {"url": "YAHOO.widget.ContainerEffect.html#attrIn", "host": "YAHOO.widget.ContainerEffect", "name": "attrIn"}, {"url": "YAHOO.widget.ContainerEffect.html#attrOut", "host": "YAHOO.widget.ContainerEffect", "name": "attrOut"}, {"url": "YAHOO.html#augment", "host": "YAHOO", "name": "augment"}, {"url": "YAHOO.lang.html#augment", "host": "YAHOO.lang", "name": "augment"}, {"url": "YAHOO.widget.Tooltip.html#autodismissdelay", "host": "YAHOO.widget.Tooltip", "name": "autodismissdelay"}, {"url": "YAHOO.widget.AutoComplete.html#autoHighlight", "host": "YAHOO.widget.AutoComplete", "name": "autoHighlight"}, {"url": "YAHOO.util.DD.html#autoOffset", "host": "YAHOO.util.DD", "name": "autoOffset"}, {"url": "YAHOO.util.DD.html#autoScroll", "host": "YAHOO.util.DD", "name": "autoScroll"}, {"url": "YAHOO.widget.Menu.html#autosubmenudisplay", "host": "YAHOO.widget.Menu", "name": "autosubmenudisplay"}, {"url": "YAHOO.widget.Menubar.html#autosubmenudisplay", "host": "YAHOO.widget.Menubar", "name": "autosubmenudisplay"}, {"url": "YAHOO.util.DragDrop.html#available", "host": "YAHOO.util.DragDrop", "name": "available"}, {"url": "YAHOO.util.Element.html#available", "host": "YAHOO.util.Element", "name": "available"}, {"url": "YAHOO.util.DragDrop.html#b4Drag", "host": "YAHOO.util.DragDrop", "name": "b4Drag"}, {"url": "YAHOO.util.DragDrop.html#b4DragDrop", "host": "YAHOO.util.DragDrop", "name": "b4DragDrop"}, {"url": "YAHOO.util.DragDrop.html#b4DragOut", "host": "YAHOO.util.DragDrop", "name": "b4DragOut"}, {"url": "YAHOO.util.DragDrop.html#b4DragOver", "host": "YAHOO.util.DragDrop", "name": "b4DragOver"}, {"url": "YAHOO.util.DragDrop.html#b4EndDrag", "host": "YAHOO.util.DragDrop", "name": "b4EndDrag"}, {"url": "YAHOO.util.DragDrop.html#b4MouseDown", "host": "YAHOO.util.DragDrop", "name": "b4MouseDown"}, {"url": "YAHOO.widget.Slider.html#b4MouseDown", "host": "YAHOO.widget.Slider", "name": "b4MouseDown"}, {"url": "YAHOO.util.DragDrop.html#b4StartDrag", "host": "YAHOO.util.DragDrop", "name": "b4StartDrag"}, {"url": "YAHOO.util.Easing.html#backBoth", "host": "YAHOO.util.Easing", "name": "backBoth"}, {"url": "YAHOO.widget.Slider.html#backgroundEnabled", "host": "YAHOO.widget.Slider", "name": "backgroundEnabled"}, {"url": "YAHOO.util.Easing.html#backIn", "host": "YAHOO.util.Easing", "name": "backIn"}, {"url": "YAHOO.util.Easing.html#backOut", "host": "YAHOO.util.Easing", "name": "backOut"}, {"url": "YAHOO.widget.Slider.html#baselinePos", "host": "YAHOO.widget.Slider", "name": "baselinePos"}, {"url": "YAHOO.util.Dom.html#batch", "host": "YAHOO.util.Dom", "name": "batch"}, {"url": "YAHOO.widget.ContextMenu.html#_bCancelled", "host": "YAHOO.widget.ContextMenu", "name": "_bCancelled"}, {"url": "YAHOO.widget.AutoComplete.html#_bContainerOpen", "host": "YAHOO.widget.AutoComplete", "name": "_bContainerOpen"}, {"url": "YAHOO.widget.DateMath.html#before", "host": "YAHOO.widget.DateMath", "name": "before"}, {"url": "YAHOO.widget.Tab.html#beforeActiveChange", "host": "YAHOO.widget.Tab", "name": "beforeActiveChange"}, {"url": "YAHOO.widget.TabView.html#beforeActiveTabChange", "host": "YAHOO.widget.TabView", "name": "beforeActiveTabChange"}, {"url": "YAHOO.widget.Tab.html#beforeContentChange", "host": "YAHOO.widget.Tab", "name": "beforeContentChange"}, {"url": "YAHOO.widget.Calendar.html#beforeDeselectEvent", "host": "YAHOO.widget.Calendar", "name": "beforeDeselectEvent"}, {"url": "YAHOO.widget.CalendarGroup.html#beforeDeselectEvent", "host": "YAHOO.widget.CalendarGroup", "name": "beforeDeselectEvent"}, {"url": "YAHOO.widget.Module.html#beforeHideEvent", "host": "YAHOO.widget.Module", "name": "beforeHideEvent"}, {"url": "YAHOO.widget.Module.html#beforeInitEvent", "host": "YAHOO.widget.Module", "name": "beforeInitEvent"}, {"url": "YAHOO.widget.Tab.html#beforeLabelChange", "host": "YAHOO.widget.Tab", "name": "beforeLabelChange"}, {"url": "YAHOO.widget.Overlay.html#beforeMoveEvent", "host": "YAHOO.widget.Overlay", "name": "beforeMoveEvent"}, {"url": "YAHOO.widget.TabView.html#beforeOrientationChange", "host": "YAHOO.widget.TabView", "name": "beforeOrientationChange"}, {"url": "YAHOO.widget.Module.html#beforeRenderEvent", "host": "YAHOO.widget.Module", "name": "beforeRenderEvent"}, {"url": "YAHOO.widget.Calendar.html#beforeRenderEvent", "host": "YAHOO.widget.Calendar", "name": "beforeRenderEvent"}, {"url": "YAHOO.widget.CalendarGroup.html#beforeRenderEvent", "host": "YAHOO.widget.CalendarGroup", "name": "beforeRenderEvent"}, {"url": "YAHOO.widget.Calendar.html#beforeSelectEvent", "host": "YAHOO.widget.Calendar", "name": "beforeSelectEvent"}, {"url": "YAHOO.widget.CalendarGroup.html#beforeSelectEvent", "host": "YAHOO.widget.CalendarGroup", "name": "beforeSelectEvent"}, {"url": "YAHOO.widget.Module.html#beforeShowEvent", "host": "YAHOO.widget.Module", "name": "beforeShowEvent"}, {"url": "YAHOO.widget.Dialog.html#beforeSumitEvent", "host": "YAHOO.widget.Dialog", "name": "beforeSumitEvent"}, {"url": "YAHOO.widget.DateMath.html#between", "host": "YAHOO.widget.DateMath", "name": "between"}, {"url": "DataTable.html#_bFocused", "host": "DataTable", "name": "_bFocused"}, {"url": "YAHOO.widget.AutoComplete.html#_bFocused", "host": "YAHOO.widget.AutoComplete", "name": "_bFocused"}, {"url": "YAHOO.widget.Menu.html#_bHandledMouseOutEvent", "host": "YAHOO.widget.Menu", "name": "_bHandledMouseOutEvent"}, {"url": "YAHOO.widget.Menu.html#_bHandledMouseOverEvent", "host": "YAHOO.widget.Menu", "name": "_bHandledMouseOverEvent"}, {"url": "YAHOO.widget.Menu.html#_bHideDelayEventHandlersAssigned", "host": "YAHOO.widget.Menu", "name": "_bHideDelayEventHandlersAssigned"}, {"url": "YAHOO.util.History.html#_bhmReady", "host": "YAHOO.util.History", "name": "_bhmReady"}, {"url": "YAHOO.widget.AutoComplete.html#_bItemSelected", "host": "YAHOO.widget.AutoComplete", "name": "_bItemSelected"}, {"url": "YAHOO.widget.Menu.html#blur", "host": "YAHOO.widget.Menu", "name": "blur"}, {"url": "YAHOO.widget.MenuItem.html#blur", "host": "YAHOO.widget.MenuItem", "name": "blur"}, {"url": "YAHOO.widget.Button.html#blur", "host": "YAHOO.widget.Button", "name": "blur"}, {"url": "YAHOO.widget.OverlayManager.html#blurAll", "host": "YAHOO.widget.OverlayManager", "name": "blurAll"}, {"url": "YAHOO.widget.Dialog.html#blurButtons", "host": "YAHOO.widget.Dialog", "name": "blurButtons"}, {"url": "YAHOO.widget.MenuItem.html#blurEvent", "host": "YAHOO.widget.MenuItem", "name": "blurEvent"}, {"url": "YAHOO.widget.Module.html#body", "host": "YAHOO.widget.Module", "name": "body"}, {"url": "YAHOO.util.Region.html#bottom", "host": "YAHOO.util.Region", "name": "bottom"}, {"url": "YAHOO.widget.LogReader.html#bottom", "host": "YAHOO.widget.LogReader", "name": "bottom"}, {"url": "YAHOO.util.Easing.html#bounceBoth", "host": "YAHOO.util.Easing", "name": "bounceBoth"}, {"url": "YAHOO.util.Easing.html#bounceIn", "host": "YAHOO.util.Easing", "name": "bounceIn"}, {"url": "YAHOO.util.Easing.html#bounceOut", "host": "YAHOO.util.Easing", "name": "bounceOut"}, {"url": "YAHOO.widget.AutoComplete.html#_bOverContainer", "host": "YAHOO.widget.AutoComplete", "name": "_bOverContainer"}, {"url": "YAHOO.widget.Module.html#browser", "host": "YAHOO.widget.Module", "name": "browser"}, {"url": "YAHOO.widget.MenuItem.html#browser", "host": "YAHOO.widget.MenuItem", "name": "browser"}, {"url": "YAHOO.widget.Calendar.html#browser", "host": "YAHOO.widget.Calendar", "name": "browser"}, {"url": "YAHOO.util.History.html#_browser", "host": "YAHOO.util.History", "name": "_browser"}, {"url": "YAHOO.widget.Logger.html#_browserConsoleEnabled", "host": "YAHOO.widget.Logger", "name": "_browserConsoleEnabled"}, {"url": "YAHOO.widget.Menu.html#_bStopMouseEventHandlers", "host": "YAHOO.widget.Menu", "name": "_bStopMouseEventHandlers"}, {"url": "YAHOO.widget.LogReader.html#_btnClear", "host": "YAHOO.widget.LogReader", "name": "_btnClear"}, {"url": "YAHOO.widget.LogReader.html#_btnCollapse", "host": "YAHOO.widget.LogReader", "name": "_btnCollapse"}, {"url": "YAHOO.widget.LogReader.html#_btnPause", "host": "YAHOO.widget.LogReader", "name": "_btnPause"}, {"url": "YAHOO.widget.LogReader.html#_buffer", "host": "YAHOO.widget.LogReader", "name": "_buffer"}, {"url": "YAHOO.widget.Calendar.html#buildDayLabel", "host": "YAHOO.widget.Calendar", "name": "buildDayLabel"}, {"url": "YAHOO.widget.Panel.html#buildMask", "host": "YAHOO.widget.Panel", "name": "buildMask"}, {"url": "YAHOO.widget.Calendar.html#buildMonthLabel", "host": "YAHOO.widget.Calendar", "name": "buildMonthLabel"}, {"url": "YAHOO.widget.Calendar.html#buildWeekdays", "host": "YAHOO.widget.Calendar", "name": "buildWeekdays"}, {"url": "YAHOO.widget.Panel.html#buildWrapper", "host": "YAHOO.widget.Panel", "name": "buildWrapper"}, {"url": "YAHOO.widget.Button.html#_button", "host": "YAHOO.widget.Button", "name": "_button"}, {"url": "YAHOO.widget.Dialog.html#buttons", "host": "YAHOO.widget.Dialog", "name": "buttons"}, {"url": "YAHOO.widget.ButtonGroup.html#_buttons", "host": "YAHOO.widget.ButtonGroup", "name": "_buttons"}, {"url": "YAHOO.widget.Tab.html#cacheData", "host": "YAHOO.widget.Tab", "name": "cacheData"}, {"url": "YAHOO.widget.DataSource.html#cacheFlushEvent", "host": "YAHOO.widget.DataSource", "name": "cacheFlushEvent"}, {"url": "DataSource.html#cacheFlushEvent", "host": "DataSource", "name": "cacheFlushEvent"}, {"url": "YAHOO.util.DD.html#cachePosition", "host": "YAHOO.util.DD", "name": "cachePosition"}, {"url": "YAHOO.widget.DataSource.html#cacheQueryEvent", "host": "YAHOO.widget.DataSource", "name": "cacheQueryEvent"}, {"url": "DataSource.html#cacheRequestEvent", "host": "DataSource", "name": "cacheRequestEvent"}, {"url": "YAHOO.widget.Calendar2up.html#Cal2up", "host": "YAHOO.widget.Calendar2up", "name": "Cal2up"}, {"url": "YAHOO.widget.Dialog.html#callback", "host": "YAHOO.widget.Dialog", "name": "callback"}, {"url": "YAHOO.widget.TVFadeIn.html#callback", "host": "YAHOO.widget.TVFadeIn", "name": "callback"}, {"url": "YAHOO.widget.TVFadeOut.html#callback", "host": "YAHOO.widget.TVFadeOut", "name": "callback"}, {"url": "YAHOO.widget.Dialog.html#callback.argument", "host": "YAHOO.widget.Dialog", "name": "callback.argument"}, {"url": "YAHOO.widget.Dialog.html#callback.failure", "host": "YAHOO.widget.Dialog", "name": "callback.failure"}, {"url": "YAHOO.widget.Dialog.html#callback.success", "host": "YAHOO.widget.Dialog", "name": "callback.success"}, {"url": "YAHOO.widget.CalendarGroup.html#callChildFunction", "host": "YAHOO.widget.CalendarGroup", "name": "callChildFunction"}, {"url": "YAHOO.widget.Dialog.html#cancel", "host": "YAHOO.widget.Dialog", "name": "cancel"}, {"url": "YAHOO.widget.ContextMenu.html#cancel", "host": "YAHOO.widget.ContextMenu", "name": "cancel"}, {"url": "DataTable.html#cancelEditorData", "host": "DataTable", "name": "cancelEditorData"}, {"url": "YAHOO.widget.Dialog.html#cancelEvent", "host": "YAHOO.widget.Dialog", "name": "cancelEvent"}, {"url": "YAHOO.widget.Menu.html#_cancelHideDelay", "host": "YAHOO.widget.Menu", "name": "_cancelHideDelay"}, {"url": "YAHOO.widget.AutoComplete.html#_cancelIntervalDetection", "host": "YAHOO.widget.AutoComplete", "name": "_cancelIntervalDetection"}, {"url": "YAHOO.widget.Menu.html#_cancelShowDelay", "host": "YAHOO.widget.Menu", "name": "_cancelShowDelay"}, {"url": "DataTable.html#caption", "host": "DataTable", "name": "caption"}, {"url": "YAHOO.widget.Logger.html#categories", "host": "YAHOO.widget.Logger", "name": "categories"}, {"url": "YAHOO.widget.LogMsg.html#category", "host": "YAHOO.widget.LogMsg", "name": "category"}, {"url": "YAHOO.widget.Logger.html#categoryCreateEvent", "host": "YAHOO.widget.Logger", "name": "categoryCreateEvent"}, {"url": "YAHOO.widget.LogReader.html#_categoryFilters", "host": "YAHOO.widget.LogReader", "name": "_categoryFilters"}, {"url": "DataTable.html#cellClickEvent", "host": "DataTable", "name": "cellClickEvent"}, {"url": "YAHOO.widget.Calendar.html#cellDates", "host": "YAHOO.widget.Calendar", "name": "cellDates"}, {"url": "DataTable.html#cellDoubleclickEvent", "host": "DataTable", "name": "cellDoubleclickEvent"}, {"url": "DataTable.html#cellEditEvent", "host": "DataTable", "name": "cellEditEvent"}, {"url": "DataTable.html#cellFormatEvent", "host": "DataTable", "name": "cellFormatEvent"}, {"url": "DataTable.html#cellMousedownEvent", "host": "DataTable", "name": "cellMousedownEvent"}, {"url": "DataTable.html#cellMouseoutEvent", "host": "DataTable", "name": "cellMouseoutEvent"}, {"url": "DataTable.html#cellMouseoverEvent", "host": "DataTable", "name": "cellMouseoverEvent"}, {"url": "YAHOO.widget.Calendar.html#cells", "host": "YAHOO.widget.Calendar", "name": "cells"}, {"url": "YAHOO.widget.Overlay.html#center", "host": "YAHOO.widget.Overlay", "name": "center"}, {"url": "YAHOO.util.DDProxy.html#centerFrame", "host": "YAHOO.util.DDProxy", "name": "centerFrame"}, {"url": "YAHOO.widget.Module.html#cfg", "host": "YAHOO.widget.Module", "name": "cfg"}, {"url": "YAHOO.widget.OverlayManager.html#cfg", "host": "YAHOO.widget.OverlayManager", "name": "cfg"}, {"url": "YAHOO.widget.Calendar.html#cfg", "host": "YAHOO.widget.Calendar", "name": "cfg"}, {"url": "YAHOO.widget.CalendarGroup.html#cfg", "host": "YAHOO.widget.CalendarGroup", "name": "cfg"}, {"url": "YAHOO.widget.Slider.html#change", "host": "YAHOO.widget.Slider", "name": "change"}, {"url": "YAHOO.widget.Module.html#changeBodyEvent", "host": "YAHOO.widget.Module", "name": "changeBodyEvent"}, {"url": "YAHOO.widget.Module.html#changeContentEvent", "host": "YAHOO.widget.Module", "name": "changeContentEvent"}, {"url": "YAHOO.widget.Module.html#changeFooterEvent", "host": "YAHOO.widget.Module", "name": "changeFooterEvent"}, {"url": "YAHOO.widget.Module.html#changeHeaderEvent", "host": "YAHOO.widget.Module", "name": "changeHeaderEvent"}, {"url": "YAHOO.widget.Calendar.html#changePageEvent", "host": "YAHOO.widget.Calendar", "name": "changePageEvent"}, {"url": "YAHOO.widget.CalendarGroup.html#changePageEvent", "host": "YAHOO.widget.CalendarGroup", "name": "changePageEvent"}, {"url": "YAHOO.widget.ButtonGroup.html#check", "host": "YAHOO.widget.ButtonGroup", "name": "check"}, {"url": "YAHOO.widget.Button.html#CHECK_ACTIVATION_KEYS", "host": "YAHOO.widget.Button", "name": "CHECK_ACTIVATION_KEYS"}, {"url": "YAHOO.util.Config.html#checkBoolean", "host": "YAHOO.util.Config", "name": "checkBoolean"}, {"url": "YAHOO.widget.Button.html#CHECKBOX_CHECKED_TITLE", "host": "YAHOO.widget.Button", "name": "CHECKBOX_CHECKED_TITLE"}, {"url": "DataTable.html#checkboxClickEvent", "host": "DataTable", "name": "checkboxClickEvent"}, {"url": "YAHOO.widget.Button.html#CHECKBOX_DEFAULT_TITLE", "host": "YAHOO.widget.Button", "name": "CHECKBOX_DEFAULT_TITLE"}, {"url": "YAHOO.widget.MenuItem.html#_checkDOMNode", "host": "YAHOO.widget.MenuItem", "name": "_checkDOMNode"}, {"url": "YAHOO.widget.MenuItem.html#checked", "host": "YAHOO.widget.MenuItem", "name": "checked"}, {"url": "YAHOO.widget.Button.html#checked", "host": "YAHOO.widget.Button", "name": "checked"}, {"url": "YAHOO.widget.ButtonGroup.html#checkedButton", "host": "YAHOO.widget.ButtonGroup", "name": "checkedButton"}, {"url": "YAHOO.widget.MenuItem.html#CHECKED_TEXT", "host": "YAHOO.widget.MenuItem", "name": "CHECKED_TEXT"}, {"url": "YAHOO.util.History.html#_checkIframeLoaded", "host": "YAHOO.util.History", "name": "_checkIframeLoaded"}, {"url": "YAHOO.util.Config.html#checkNumber", "host": "YAHOO.util.Config", "name": "checkNumber"}, {"url": "YAHOO.widget.Menu.html#_checkPosition", "host": "YAHOO.widget.Menu", "name": "_checkPosition"}, {"url": "Column.html#_children", "host": "Column", "name": "_children"}, {"url": "Column.html#children", "host": "Column", "name": "children"}, {"url": "YAHOO.widget.Node.html#children", "host": "YAHOO.widget.Node", "name": "children"}, {"url": "YAHOO.widget.Node.html#childrenRendered", "host": "YAHOO.widget.Node", "name": "childrenRendered"}, {"url": "DataTable.html#CLASS_BODY", "host": "DataTable", "name": "CLASS_BODY"}, {"url": "DataTable.html#CLASS_CHECKBOX", "host": "DataTable", "name": "CLASS_CHECKBOX"}, {"url": "DataTable.html#CLASS_CURRENCY", "host": "DataTable", "name": "CLASS_CURRENCY"}, {"url": "DataTable.html#CLASS_CURRENTPAGE", "host": "DataTable", "name": "CLASS_CURRENTPAGE"}, {"url": "DataTable.html#CLASS_DATE", "host": "DataTable", "name": "CLASS_DATE"}, {"url": "DataTable.html#CLASS_EDITABLE", "host": "DataTable", "name": "CLASS_EDITABLE"}, {"url": "DataTable.html#CLASS_EDITOR", "host": "DataTable", "name": "CLASS_EDITOR"}, {"url": "DataTable.html#CLASS_EMAIL", "host": "DataTable", "name": "CLASS_EMAIL"}, {"url": "DataTable.html#CLASS_EMPTY", "host": "DataTable", "name": "CLASS_EMPTY"}, {"url": "DataTable.html#CLASS_ERROR", "host": "DataTable", "name": "CLASS_ERROR"}, {"url": "DataTable.html#CLASS_EVEN", "host": "DataTable", "name": "CLASS_EVEN"}, {"url": "DataTable.html#CLASS_FIRST", "host": "DataTable", "name": "CLASS_FIRST"}, {"url": "DataTable.html#CLASS_FIRSTLINK", "host": "DataTable", "name": "CLASS_FIRSTLINK"}, {"url": "DataTable.html#CLASS_FIRSTPAGE", "host": "DataTable", "name": "CLASS_FIRSTPAGE"}, {"url": "DataTable.html#CLASS_HEADCONTAINER", "host": "DataTable", "name": "CLASS_HEADCONTAINER"}, {"url": "DataTable.html#CLASS_HEADRESIZER", "host": "DataTable", "name": "CLASS_HEADRESIZER"}, {"url": "DataTable.html#CLASS_HEADTEXT", "host": "DataTable", "name": "CLASS_HEADTEXT"}, {"url": "DataTable.html#CLASS_HIGHLIGHT", "host": "DataTable", "name": "CLASS_HIGHLIGHT"}, {"url": "DataTable.html#CLASS_LAST", "host": "DataTable", "name": "CLASS_LAST"}, {"url": "DataTable.html#CLASS_LASTLINK", "host": "DataTable", "name": "CLASS_LASTLINK"}, {"url": "DataTable.html#CLASS_LASTPAGE", "host": "DataTable", "name": "CLASS_LASTPAGE"}, {"url": "DataTable.html#CLASS_LINK", "host": "DataTable", "name": "CLASS_LINK"}, {"url": "DataTable.html#CLASS_LOADING", "host": "DataTable", "name": "CLASS_LOADING"}, {"url": "Column.html#className", "host": "Column", "name": "className"}, {"url": "YAHOO.widget.Menu.html#classname", "host": "YAHOO.widget.Menu", "name": "classname"}, {"url": "YAHOO.widget.MenuItem.html#classname", "host": "YAHOO.widget.MenuItem", "name": "classname"}, {"url": "YAHOO.widget.TabView.html#CLASSNAME", "host": "YAHOO.widget.TabView", "name": "CLASSNAME"}, {"url": "DataTable.html#CLASS_NEXTLINK", "host": "DataTable", "name": "CLASS_NEXTLINK"}, {"url": "DataTable.html#CLASS_NEXTPAGE", "host": "DataTable", "name": "CLASS_NEXTPAGE"}, {"url": "DataTable.html#CLASS_NUMBER", "host": "DataTable", "name": "CLASS_NUMBER"}, {"url": "DataTable.html#CLASS_ODD", "host": "DataTable", "name": "CLASS_ODD"}, {"url": "DataTable.html#CLASS_PAGELINK", "host": "DataTable", "name": "CLASS_PAGELINK"}, {"url": "DataTable.html#CLASS_PAGELINKS", "host": "DataTable", "name": "CLASS_PAGELINKS"}, {"url": "DataTable.html#CLASS_PAGESELECT", "host": "DataTable", "name": "CLASS_PAGESELECT"}, {"url": "DataTable.html#CLASS_PAGINATOR", "host": "DataTable", "name": "CLASS_PAGINATOR"}, {"url": "DataTable.html#CLASS_PREVLINK", "host": "DataTable", "name": "CLASS_PREVLINK"}, {"url": "DataTable.html#CLASS_PREVPAGE", "host": "DataTable", "name": "CLASS_PREVPAGE"}, {"url": "DataTable.html#CLASS_SCROLLABLE", "host": "DataTable", "name": "CLASS_SCROLLABLE"}, {"url": "DataTable.html#CLASS_SCROLLBODY", "host": "DataTable", "name": "CLASS_SCROLLBODY"}, {"url": "DataTable.html#CLASS_SELECTED", "host": "DataTable", "name": "CLASS_SELECTED"}, {"url": "DataTable.html#CLASS_SORTABLE", "host": "DataTable", "name": "CLASS_SORTABLE"}, {"url": "DataTable.html#CLASS_SORTEDBYASC", "host": "DataTable", "name": "CLASS_SORTEDBYASC"}, {"url": "DataTable.html#CLASS_SORTEDBYDESC", "host": "DataTable", "name": "CLASS_SORTEDBYDESC"}, {"url": "DataTable.html#CLASS_STRING", "host": "DataTable", "name": "CLASS_STRING"}, {"url": "DataTable.html#CLASS_TABLE", "host": "DataTable", "name": "CLASS_TABLE"}, {"url": "YAHOO.widget.Calendar.html#clear", "host": "YAHOO.widget.Calendar", "name": "clear"}, {"url": "YAHOO.widget.CalendarGroup.html#clear", "host": "YAHOO.widget.CalendarGroup", "name": "clear"}, {"url": "YAHOO.widget.Menu.html#clearActiveItem", "host": "YAHOO.widget.Menu", "name": "clearActiveItem"}, {"url": "YAHOO.widget.Calendar.html#clearAllBodyCellStyles", "host": "YAHOO.widget.Calendar", "name": "clearAllBodyCellStyles"}, {"url": "YAHOO.util.Event.html#clearCache", "host": "YAHOO.util.Event", "name": "clearCache"}, {"url": "YAHOO.widget.LogReader.html#clearConsole", "host": "YAHOO.widget.LogReader", "name": "clearConsole"}, {"url": "YAHOO.util.DragDrop.html#clearConstraints", "host": "YAHOO.util.DragDrop", "name": "clearConstraints"}, {"url": "YAHOO.widget.Menu.html#clearContent", "host": "YAHOO.widget.Menu", "name": "clearContent"}, {"url": "YAHOO.widget.Calendar.html#clearElement", "host": "YAHOO.widget.Calendar", "name": "clearElement"}, {"url": "YAHOO.widget.Calendar.html#clearEvent", "host": "YAHOO.widget.Calendar", "name": "clearEvent"}, {"url": "YAHOO.widget.CalendarGroup.html#clearEvent", "host": "YAHOO.widget.CalendarGroup", "name": "clearEvent"}, {"url": "YAHOO.widget.AutoComplete.html#_clearSelection", "host": "YAHOO.widget.AutoComplete", "name": "_clearSelection"}, {"url": "YAHOO.util.DragDrop.html#clearTicks", "host": "YAHOO.util.DragDrop", "name": "clearTicks"}, {"url": "YAHOO.widget.SliderThumb.html#clearTicks", "host": "YAHOO.widget.SliderThumb", "name": "clearTicks"}, {"url": "YAHOO.widget.DateMath.html#clearTime", "host": "YAHOO.widget.DateMath", "name": "clearTime"}, {"url": "YAHOO.widget.Menu.html#clickEvent", "host": "YAHOO.widget.Menu", "name": "clickEvent"}, {"url": "YAHOO.widget.MenuItem.html#clickEvent", "host": "YAHOO.widget.MenuItem", "name": "clickEvent"}, {"url": "YAHOO.util.DragDropMgr.html#clickPixelThresh", "host": "YAHOO.util.DragDropMgr", "name": "clickPixelThresh"}, {"url": "YAHOO.util.DragDropMgr.html#clickTimeout", "host": "YAHOO.util.DragDropMgr", "name": "clickTimeout"}, {"url": "YAHOO.util.DragDropMgr.html#clickTimeThresh", "host": "YAHOO.util.DragDropMgr", "name": "clickTimeThresh"}, {"url": "YAHOO.widget.Menu.html#clicktohide", "host": "YAHOO.widget.Menu", "name": "clicktohide"}, {"url": "YAHOO.widget.Panel.html#close", "host": "YAHOO.widget.Panel", "name": "close"}, {"url": "YAHOO.widget.Calendar.html#close", "host": "YAHOO.widget.Calendar", "name": "close"}, {"url": "YAHOO.widget.CalendarGroup.html#close", "host": "YAHOO.widget.CalendarGroup", "name": "close"}, {"url": "YAHOO.widget.LogReader.html#collapse", "host": "YAHOO.widget.LogReader", "name": "collapse"}, {"url": "YAHOO.widget.TreeView.html#collapse", "host": "YAHOO.widget.TreeView", "name": "collapse"}, {"url": "YAHOO.widget.Node.html#collapse\ntoggle style.", "host": "YAHOO.widget.Node", "name": "collapse\ntoggle style."}, {"url": "YAHOO.widget.Node.html#collapseAll", "host": "YAHOO.widget.Node", "name": "collapseAll"}, {"url": "YAHOO.widget.TreeView.html#collapseAll", "host": "YAHOO.widget.TreeView", "name": "collapseAll"}, {"url": "YAHOO.widget.TreeView.html#_collapseAnim", "host": "YAHOO.widget.TreeView", "name": "_collapseAnim"}, {"url": "YAHOO.widget.TreeView.html#collapseComplete", "host": "YAHOO.widget.TreeView", "name": "collapseComplete"}, {"url": "YAHOO.widget.MenuItem.html#COLLAPSED_SUBMENU_INDICATOR_TEXT", "host": "YAHOO.widget.MenuItem", "name": "COLLAPSED_SUBMENU_INDICATOR_TEXT"}, {"url": "Column.html#_colspan", "host": "Column", "name": "_colspan"}, {"url": "ColumnEditor.html#column", "host": "ColumnEditor", "name": "column"}, {"url": "DataTable.html#columnResizeEvent", "host": "DataTable", "name": "columnResizeEvent"}, {"url": "DataTable.html#columnSortEvent", "host": "DataTable", "name": "columnSortEvent"}, {"url": "Sort.html#compareAsc", "host": "Sort", "name": "compareAsc"}, {"url": "Sort.html#compareDesc", "host": "Sort", "name": "compareDesc"}, {"url": "YAHOO.widget.OverlayManager.html#compareZIndexDesc", "host": "YAHOO.widget.OverlayManager", "name": "compareZIndexDesc"}, {"url": "YAHOO.widget.Node.html#completeRender", "host": "YAHOO.widget.Node", "name": "completeRender"}, {"url": "YAHOO.util.Config.html#config", "host": "YAHOO.util.Config", "name": "config"}, {"url": "YAHOO.util.DragDrop.html#config", "host": "YAHOO.util.DragDrop", "name": "config"}, {"url": "YAHOO.widget.Calendar.html#Config", "host": "YAHOO.widget.Calendar", "name": "Config"}, {"url": "YAHOO.widget.Dialog.html#configButtons", "host": "YAHOO.widget.Dialog", "name": "configButtons"}, {"url": "YAHOO.util.Config.html#configChangedEvent", "host": "YAHOO.util.Config", "name": "configChangedEvent"}, {"url": "YAHOO.widget.MenuItem.html#configChecked", "host": "YAHOO.widget.MenuItem", "name": "configChecked"}, {"url": "YAHOO.widget.Menu.html#configClassName", "host": "YAHOO.widget.Menu", "name": "configClassName"}, {"url": "YAHOO.widget.MenuItem.html#configClassName", "host": "YAHOO.widget.MenuItem", "name": "configClassName"}, {"url": "YAHOO.widget.Dialog.html#configClose", "host": "YAHOO.widget.Dialog", "name": "configClose"}, {"url": "YAHOO.widget.Panel.html#configClose", "host": "YAHOO.widget.Panel", "name": "configClose"}, {"url": "YAHOO.widget.Calendar.html#configClose", "host": "YAHOO.widget.Calendar", "name": "configClose"}, {"url": "YAHOO.widget.Overlay.html#configConstrainToViewport", "host": "YAHOO.widget.Overlay", "name": "configConstrainToViewport"}, {"url": "YAHOO.widget.Tooltip.html#configContainer", "host": "YAHOO.widget.Tooltip", "name": "configContainer"}, {"url": "YAHOO.widget.Menu.html#configContainer", "host": "YAHOO.widget.Menu", "name": "configContainer"}, {"url": "YAHOO.widget.Overlay.html#configContext", "host": "YAHOO.widget.Overlay", "name": "configContext"}, {"url": "YAHOO.widget.Tooltip.html#configContext", "host": "YAHOO.widget.Tooltip", "name": "configContext"}, {"url": "YAHOO.widget.MenuItem.html#configDisabled", "host": "YAHOO.widget.MenuItem", "name": "configDisabled"}, {"url": "YAHOO.widget.Panel.html#configDraggable", "host": "YAHOO.widget.Panel", "name": "configDraggable"}, {"url": "YAHOO.widget.MenuItem.html#configEmphasis", "host": "YAHOO.widget.MenuItem", "name": "configEmphasis"}, {"url": "YAHOO.widget.Overlay.html#configFixedCenter", "host": "YAHOO.widget.Overlay", "name": "configFixedCenter"}, {"url": "YAHOO.widget.Overlay.html#configHeight", "host": "YAHOO.widget.Overlay", "name": "configHeight"}, {"url": "YAHOO.widget.Panel.html#configHeight", "host": "YAHOO.widget.Panel", "name": "configHeight"}, {"url": "YAHOO.widget.MenuItem.html#configHelpText", "host": "YAHOO.widget.MenuItem", "name": "configHelpText"}, {"url": "YAHOO.widget.Menu.html#configHideDelay", "host": "YAHOO.widget.Menu", "name": "configHideDelay"}, {"url": "YAHOO.widget.SimpleDialog.html#configIcon", "host": "YAHOO.widget.SimpleDialog", "name": "configIcon"}, {"url": "YAHOO.widget.Overlay.html#configIframe", "host": "YAHOO.widget.Overlay", "name": "configIframe"}, {"url": "YAHOO.widget.Menu.html#configIframe", "host": "YAHOO.widget.Menu", "name": "configIframe"}, {"url": "YAHOO.widget.Calendar.html#configIframe", "host": "YAHOO.widget.Calendar", "name": "configIframe"}, {"url": "YAHOO.widget.Panel.html#configKeyListeners", "host": "YAHOO.widget.Panel", "name": "configKeyListeners"}, {"url": "YAHOO.widget.Calendar.html#configLocale", "host": "YAHOO.widget.Calendar", "name": "configLocale"}, {"url": "YAHOO.widget.Calendar.html#configLocaleValues", "host": "YAHOO.widget.Calendar", "name": "configLocaleValues"}, {"url": "YAHOO.widget.Calendar.html#configMaxDate", "host": "YAHOO.widget.Calendar", "name": "configMaxDate"}, {"url": "YAHOO.widget.Menu.html#configMaxHeight", "host": "YAHOO.widget.Menu", "name": "configMaxHeight"}, {"url": "YAHOO.widget.Calendar.html#configMinDate", "host": "YAHOO.widget.Calendar", "name": "configMinDate"}, {"url": "YAHOO.widget.Panel.html#configModal", "host": "YAHOO.widget.Panel", "name": "configModal"}, {"url": "YAHOO.widget.Module.html#configMonitorResize", "host": "YAHOO.widget.Module", "name": "configMonitorResize"}, {"url": "YAHOO.widget.MenuItem.html#configOnClick", "host": "YAHOO.widget.MenuItem", "name": "configOnClick"}, {"url": "YAHOO.widget.Calendar.html#configOptions", "host": "YAHOO.widget.Calendar", "name": "configOptions"}, {"url": "YAHOO.widget.Calendar.html#configPageDate", "host": "YAHOO.widget.Calendar", "name": "configPageDate"}, {"url": "YAHOO.widget.CalendarGroup.html#configPageDate", "host": "YAHOO.widget.CalendarGroup", "name": "configPageDate"}, {"url": "YAHOO.widget.CalendarGroup.html#configPages", "host": "YAHOO.widget.CalendarGroup", "name": "configPages"}, {"url": "YAHOO.widget.Menu.html#configPosition", "host": "YAHOO.widget.Menu", "name": "configPosition"}, {"url": "YAHOO.widget.Dialog.html#configPostMethod", "host": "YAHOO.widget.Dialog", "name": "configPostMethod"}, {"url": "YAHOO.util.AttributeProvider.html#_configs", "host": "YAHOO.util.AttributeProvider", "name": "_configs"}, {"url": "YAHOO.widget.MenuItem.html#configSelected", "host": "YAHOO.widget.MenuItem", "name": "configSelected"}, {"url": "YAHOO.widget.Calendar.html#configSelected", "host": "YAHOO.widget.Calendar", "name": "configSelected"}, {"url": "YAHOO.widget.CalendarGroup.html#configSelected", "host": "YAHOO.widget.CalendarGroup", "name": "configSelected"}, {"url": "YAHOO.widget.MenuItem.html#configStrongEmphasis", "host": "YAHOO.widget.MenuItem", "name": "configStrongEmphasis"}, {"url": "YAHOO.widget.MenuItem.html#configSubmenu", "host": "YAHOO.widget.MenuItem", "name": "configSubmenu"}, {"url": "YAHOO.widget.MenuItem.html#configTarget", "host": "YAHOO.widget.MenuItem", "name": "configTarget"}, {"url": "YAHOO.widget.SimpleDialog.html#configText", "host": "YAHOO.widget.SimpleDialog", "name": "configText"}, {"url": "YAHOO.widget.Tooltip.html#configText", "host": "YAHOO.widget.Tooltip", "name": "configText"}, {"url": "YAHOO.widget.MenuItem.html#configText", "host": "YAHOO.widget.MenuItem", "name": "configText"}, {"url": "YAHOO.widget.Calendar.html#configTitle", "host": "YAHOO.widget.Calendar", "name": "configTitle"}, {"url": "YAHOO.widget.ContextMenu.html#configTrigger", "host": "YAHOO.widget.ContextMenu", "name": "configTrigger"}, {"url": "YAHOO.widget.Panel.html#configUnderlay", "host": "YAHOO.widget.Panel", "name": "configUnderlay"}, {"url": "YAHOO.util.Attribute.html#configure", "host": "YAHOO.util.Attribute", "name": "configure"}, {"url": "YAHOO.util.AttributeProvider.html#configureAttribute", "host": "YAHOO.util.AttributeProvider", "name": "configureAttribute"}, {"url": "YAHOO.widget.Menu.html#_configureSubmenu", "host": "YAHOO.widget.Menu", "name": "_configureSubmenu"}, {"url": "YAHOO.widget.MenuItem.html#configURL", "host": "YAHOO.widget.MenuItem", "name": "configURL"}, {"url": "YAHOO.widget.Module.html#configVisible", "host": "YAHOO.widget.Module", "name": "configVisible"}, {"url": "YAHOO.widget.Overlay.html#configVisible", "host": "YAHOO.widget.Overlay", "name": "configVisible"}, {"url": "YAHOO.widget.Menu.html#configVisible", "host": "YAHOO.widget.Menu", "name": "configVisible"}, {"url": "YAHOO.widget.Overlay.html#configWidth", "host": "YAHOO.widget.Overlay", "name": "configWidth"}, {"url": "YAHOO.widget.Panel.html#configWidth", "host": "YAHOO.widget.Panel", "name": "configWidth"}, {"url": "YAHOO.widget.Overlay.html#configX", "host": "YAHOO.widget.Overlay", "name": "configX"}, {"url": "YAHOO.widget.Overlay.html#configXY", "host": "YAHOO.widget.Overlay", "name": "configXY"}, {"url": "YAHOO.widget.Overlay.html#configY", "host": "YAHOO.widget.Overlay", "name": "configY"}, {"url": "YAHOO.widget.Overlay.html#configzIndex", "host": "YAHOO.widget.Overlay", "name": "configzIndex"}, {"url": "YAHOO.widget.Panel.html#configzIndex", "host": "YAHOO.widget.Panel", "name": "configzIndex"}, {"url": "YAHOO.widget.DS_XHR.html#connMgr", "host": "YAHOO.widget.DS_XHR", "name": "connMgr"}, {"url": "DataSource.html#connMgr", "host": "DataSource", "name": "connMgr"}, {"url": "YAHOO.widget.DS_XHR.html#connTimeout", "host": "YAHOO.widget.DS_XHR", "name": "connTimeout"}, {"url": "DataSource.html#connTimeout", "host": "DataSource", "name": "connTimeout"}, {"url": "YAHOO.widget.LogReader.html#_consoleMsgCount", "host": "YAHOO.widget.LogReader", "name": "_consoleMsgCount"}, {"url": "YAHOO.widget.Overlay.html#constraintoviewport", "host": "YAHOO.widget.Overlay", "name": "constraintoviewport"}, {"url": "YAHOO.widget.Menu.html#constraintoviewport", "host": "YAHOO.widget.Menu", "name": "constraintoviewport"}, {"url": "YAHOO.util.DragDrop.html#constrainX", "host": "YAHOO.util.DragDrop", "name": "constrainX"}, {"url": "YAHOO.util.DragDrop.html#constrainY", "host": "YAHOO.util.DragDrop", "name": "constrainY"}, {"url": "YAHOO.widget.CalendarGroup.html#constructChild", "host": "YAHOO.widget.CalendarGroup", "name": "constructChild"}, {"url": "YAHOO.widget.MenuItem.html#constructor", "host": "YAHOO.widget.MenuItem", "name": "constructor"}, {"url": "ColumnEditor.html#container", "host": "ColumnEditor", "name": "container"}, {"url": "YAHOO.widget.Tooltip.html#container", "host": "YAHOO.widget.Tooltip", "name": "container"}, {"url": "YAHOO.widget.Menu.html#container", "host": "YAHOO.widget.Menu", "name": "container"}, {"url": "YAHOO.widget.Button.html#container", "host": "YAHOO.widget.Button", "name": "container"}, {"url": "YAHOO.widget.ButtonGroup.html#container", "host": "YAHOO.widget.ButtonGroup", "name": "container"}, {"url": "YAHOO.widget.AutoComplete.html#containerCollapseEvent", "host": "YAHOO.widget.AutoComplete", "name": "containerCollapseEvent"}, {"url": "YAHOO.widget.AutoComplete.html#containerExpandEvent", "host": "YAHOO.widget.AutoComplete", "name": "containerExpandEvent"}, {"url": "YAHOO.widget.CalendarGroup.html#containerId", "host": "YAHOO.widget.CalendarGroup", "name": "containerId"}, {"url": "YAHOO.util.Region.html#contains", "host": "YAHOO.util.Region", "name": "contains"}, {"url": "YAHOO.util.Subscriber.html#contains", "host": "YAHOO.util.Subscriber", "name": "contains"}, {"url": "YAHOO.widget.Tab.html#content", "host": "YAHOO.widget.Tab", "name": "content"}, {"url": "YAHOO.widget.HTMLNode.html#content", "host": "YAHOO.widget.HTMLNode", "name": "content"}, {"url": "YAHOO.widget.Tab.html#contentChange", "host": "YAHOO.widget.Tab", "name": "contentChange"}, {"url": "YAHOO.widget.Tab.html#contentEl", "host": "YAHOO.widget.Tab", "name": "contentEl"}, {"url": "YAHOO.widget.HTMLNode.html#contentElId", "host": "YAHOO.widget.HTMLNode", "name": "contentElId"}, {"url": "YAHOO.widget.TabView.html#_contentParent", "host": "YAHOO.widget.TabView", "name": "_contentParent"}, {"url": "YAHOO.widget.TabView.html#CONTENT_PARENT_CLASSNAME", "host": "YAHOO.widget.TabView", "name": "CONTENT_PARENT_CLASSNAME"}, {"url": "YAHOO.util.Element.html#contentReady", "host": "YAHOO.util.Element", "name": "contentReady"}, {"url": "YAHOO.widget.HTMLNode.html#contentStyle", "host": "YAHOO.widget.HTMLNode", "name": "contentStyle"}, {"url": "YAHOO.widget.TabView.html#contentTransition", "host": "YAHOO.widget.TabView", "name": "contentTransition"}, {"url": "YAHOO.widget.Tab.html#contentVisible", "host": "YAHOO.widget.Tab", "name": "contentVisible"}, {"url": "YAHOO.widget.Overlay.html#context", "host": "YAHOO.widget.Overlay", "name": "context"}, {"url": "YAHOO.widget.Tooltip.html#context", "host": "YAHOO.widget.Tooltip", "name": "context"}, {"url": "YAHOO.widget.ContextMenu.html#contextEventTarget", "host": "YAHOO.widget.ContextMenu", "name": "contextEventTarget"}, {"url": "DataTable.html#contextMenu", "host": "DataTable", "name": "contextMenu"}, {"url": "YAHOO.widget.Module.html#contructor", "host": "YAHOO.widget.Module", "name": "contructor"}, {"url": "YAHOO.widget.OverlayManager.html#contructor", "host": "YAHOO.widget.OverlayManager", "name": "contructor"}, {"url": "DataSource.html#convertDate", "host": "DataSource", "name": "convertDate"}, {"url": "DataSource.html#convertNumber", "host": "DataSource", "name": "convertNumber"}, {"url": "YAHOO.util.AnimMgr.html#correctFrame", "host": "YAHOO.util.AnimMgr", "name": "correctFrame"}, {"url": "YAHOO.util.Event.html#counter", "host": "YAHOO.util.Event", "name": "counter"}, {"url": "YAHOO.widget.Button.html#_createButtonElement", "host": "YAHOO.widget.Button", "name": "_createButtonElement"}, {"url": "YAHOO.widget.LogReader.html#_createCategoryCheckbox", "host": "YAHOO.widget.LogReader", "name": "_createCategoryCheckbox"}, {"url": "YAHOO.util.EventProvider.html#createEvent", "host": "YAHOO.util.EventProvider", "name": "createEvent"}, {"url": "YAHOO.util.Connect.html#createExceptionObject", "host": "YAHOO.util.Connect", "name": "createExceptionObject"}, {"url": "YAHOO.util.DDProxy.html#createFrame", "host": "YAHOO.util.DDProxy", "name": "createFrame"}, {"url": "YAHOO.util.Connect.html#createFrame", "host": "YAHOO.util.Connect", "name": "createFrame"}, {"url": "YAHOO.widget.ButtonGroup.html#_createGroupElement", "host": "YAHOO.widget.ButtonGroup", "name": "_createGroupElement"}, {"url": "YAHOO.widget.Button.html#createHiddenField", "host": "YAHOO.widget.Button", "name": "createHiddenField"}, {"url": "YAHOO.widget.Button.html#createInputElement", "host": "YAHOO.widget.Button", "name": "createInputElement"}, {"url": "YAHOO.widget.Menu.html#_createItemGroup", "host": "YAHOO.widget.Menu", "name": "_createItemGroup"}, {"url": "YAHOO.widget.Logger.html#_createNewCategory", "host": "YAHOO.widget.Logger", "name": "_createNewCategory"}, {"url": "YAHOO.widget.Logger.html#_createNewSource", "host": "YAHOO.widget.Logger", "name": "_createNewSource"}, {"url": "YAHOO.util.Connect.html#createResponseObject", "host": "YAHOO.util.Connect", "name": "createResponseObject"}, {"url": "YAHOO.widget.MenuItem.html#_createRootNodeStructure", "host": "YAHOO.widget.MenuItem", "name": "_createRootNodeStructure"}, {"url": "YAHOO.widget.LogReader.html#_createSourceCheckbox", "host": "YAHOO.widget.LogReader", "name": "_createSourceCheckbox"}, {"url": "YAHOO.widget.TabView.html#createTabs", "host": "YAHOO.widget.TabView", "name": "createTabs"}, {"url": "ColumnEditor.html#createTextareaEditor", "host": "ColumnEditor", "name": "createTextareaEditor"}, {"url": "ColumnEditor.html#createTextboxEditor", "host": "ColumnEditor", "name": "createTextboxEditor"}, {"url": "YAHOO.util.Connect.html#createXhrObject", "host": "YAHOO.util.Connect", "name": "createXhrObject"}, {"url": "YAHOO.util.DragDropMgr.ElementWrapper.html#css", "host": "YAHOO.util.DragDropMgr.ElementWrapper", "name": "css"}, {"url": "YAHOO.widget.Menu.html#CSS_CLASS_NAME", "host": "YAHOO.widget.Menu", "name": "CSS_CLASS_NAME"}, {"url": "YAHOO.widget.Menubar.html#CSS_CLASS_NAME", "host": "YAHOO.widget.Menubar", "name": "CSS_CLASS_NAME"}, {"url": "YAHOO.widget.MenuBarItem.html#CSS_CLASS_NAME", "host": "YAHOO.widget.MenuBarItem", "name": "CSS_CLASS_NAME"}, {"url": "YAHOO.widget.MenuItem.html#CSS_CLASS_NAME", "host": "YAHOO.widget.MenuItem", "name": "CSS_CLASS_NAME"}, {"url": "YAHOO.widget.Button.html#CSS_CLASS_NAME", "host": "YAHOO.widget.Button", "name": "CSS_CLASS_NAME"}, {"url": "YAHOO.widget.ButtonGroup.html#CSS_CLASS_NAME", "host": "YAHOO.widget.ButtonGroup", "name": "CSS_CLASS_NAME"}, {"url": "YAHOO.util.Anim.html#currentFrame", "host": "YAHOO.util.Anim", "name": "currentFrame"}, {"url": "YAHOO.widget.DS_JSArray.html#data", "host": "YAHOO.widget.DS_JSArray", "name": "data"}, {"url": "YAHOO.widget.Node.html#data", "host": "YAHOO.widget.Node", "name": "data"}, {"url": "YAHOO.widget.Tab.html#dataConnection", "host": "YAHOO.widget.Tab", "name": "dataConnection"}, {"url": "YAHOO.widget.AutoComplete.html#dataErrorEvent", "host": "YAHOO.widget.AutoComplete", "name": "dataErrorEvent"}, {"url": "YAHOO.widget.DataSource.html#dataErrorEvent", "host": "YAHOO.widget.DataSource", "name": "dataErrorEvent"}, {"url": "DataSource.html#dataErrorEvent", "host": "DataSource", "name": "dataErrorEvent"}, {"url": "YAHOO.widget.DS_JSFunction.html#dataFunction", "host": "YAHOO.widget.DS_JSFunction", "name": "dataFunction"}, {"url": "YAHOO.widget.Tab.html#dataLoaded", "host": "YAHOO.widget.Tab", "name": "dataLoaded"}, {"url": "YAHOO.widget.Node.html#dataLoader", "host": "YAHOO.widget.Node", "name": "dataLoader"}, {"url": "YAHOO.widget.AutoComplete.html#dataRequestEvent", "host": "YAHOO.widget.AutoComplete", "name": "dataRequestEvent"}, {"url": "DataTable.html#dataReturnEvent", "host": "DataTable", "name": "dataReturnEvent"}, {"url": "YAHOO.widget.AutoComplete.html#dataReturnEvent", "host": "YAHOO.widget.AutoComplete", "name": "dataReturnEvent"}, {"url": "DataTable.html#dataSource", "host": "DataTable", "name": "dataSource"}, {"url": "YAHOO.widget.AutoComplete.html#dataSource", "host": "YAHOO.widget.AutoComplete", "name": "dataSource"}, {"url": "YAHOO.widget.Tab.html#dataSrc", "host": "YAHOO.widget.Tab", "name": "dataSrc"}, {"url": "YAHOO.widget.Tab.html#dataTimeout", "host": "YAHOO.widget.Tab", "name": "dataTimeout"}, {"url": "DataSource.html#dataType", "host": "DataSource", "name": "dataType"}, {"url": "YAHOO.widget.Calendar.html#DATE_DELIMITER", "host": "YAHOO.widget.Calendar", "name": "DATE_DELIMITER"}, {"url": "YAHOO.widget.CalendarGroup.html#DATE_DELIMITER", "host": "YAHOO.widget.CalendarGroup", "name": "DATE_DELIMITER"}, {"url": "YAHOO.widget.Calendar.html#DATE_FIELD_DELIMITER", "host": "YAHOO.widget.Calendar", "name": "DATE_FIELD_DELIMITER"}, {"url": "YAHOO.widget.CalendarGroup.html#DATE_FIELD_DELIMITER", "host": "YAHOO.widget.CalendarGroup", "name": "DATE_FIELD_DELIMITER"}, {"url": "YAHOO.widget.Calendar.html#DATE_RANGE_DELIMITER", "host": "YAHOO.widget.Calendar", "name": "DATE_RANGE_DELIMITER"}, {"url": "YAHOO.widget.CalendarGroup.html#DATE_RANGE_DELIMITER", "host": "YAHOO.widget.CalendarGroup", "name": "DATE_RANGE_DELIMITER"}, {"url": "YAHOO.widget.DateMath.html#DAY", "host": "YAHOO.widget.DateMath", "name": "DAY"}, {"url": "YAHOO.util.Connect.html#_default_post_header", "host": "YAHOO.util.Connect", "name": "_default_post_header"}, {"url": "YAHOO.util.Connect.html#_default_xhr_header", "host": "YAHOO.util.Connect", "name": "_default_xhr_header"}, {"url": "YAHOO.util.AnimMgr.html#delay", "host": "YAHOO.util.AnimMgr", "name": "delay"}, {"url": "YAHOO.widget.CalendarGroup.html#delegateConfig", "host": "YAHOO.widget.CalendarGroup", "name": "delegateConfig"}, {"url": "YAHOO.util.CustomEvent.html#_delete", "host": "YAHOO.util.CustomEvent", "name": "_delete"}, {"url": "YAHOO.widget.TreeView.html#_deleteNode", "host": "YAHOO.widget.TreeView", "name": "_deleteNode"}, {"url": "DataTable.html#_deleteRecord", "host": "DataTable", "name": "_deleteRecord"}, {"url": "RecordSet.html#deleteRecord", "host": "RecordSet", "name": "deleteRecord"}, {"url": "DataTable.html#deleteRow", "host": "DataTable", "name": "deleteRow"}, {"url": "DataTable.html#_deleteRowEl", "host": "DataTable", "name": "_deleteRowEl"}, {"url": "DataTable.html#deleteRows", "host": "DataTable", "name": "deleteRows"}, {"url": "YAHOO.widget.AutoComplete.html#delimChar", "host": "YAHOO.widget.AutoComplete", "name": "delimChar"}, {"url": "YAHOO.util.DragDrop.html#deltaX", "host": "YAHOO.util.DragDrop", "name": "deltaX"}, {"url": "YAHOO.util.DragDropMgr.html#deltaX", "host": "YAHOO.util.DragDropMgr", "name": "deltaX"}, {"url": "YAHOO.util.DragDrop.html#deltaY", "host": "YAHOO.util.DragDrop", "name": "deltaY"}, {"url": "YAHOO.util.DragDropMgr.html#deltaY", "host": "YAHOO.util.DragDropMgr", "name": "deltaY"}, {"url": "YAHOO.widget.Node.html#depth", "host": "YAHOO.widget.Node", "name": "depth"}, {"url": "YAHOO.widget.Calendar.html#deselect", "host": "YAHOO.widget.Calendar", "name": "deselect"}, {"url": "YAHOO.widget.CalendarGroup.html#deselect", "host": "YAHOO.widget.CalendarGroup", "name": "deselect"}, {"url": "YAHOO.widget.Calendar.html#deselectAll", "host": "YAHOO.widget.Calendar", "name": "deselectAll"}, {"url": "YAHOO.widget.CalendarGroup.html#deselectAll", "host": "YAHOO.widget.CalendarGroup", "name": "deselectAll"}, {"url": "YAHOO.widget.Calendar.html#deselectCell", "host": "YAHOO.widget.Calendar", "name": "deselectCell"}, {"url": "YAHOO.widget.CalendarGroup.html#deselectCell", "host": "YAHOO.widget.CalendarGroup", "name": "deselectCell"}, {"url": "YAHOO.widget.Calendar.html#deselectEvent", "host": "YAHOO.widget.Calendar", "name": "deselectEvent"}, {"url": "YAHOO.widget.CalendarGroup.html#deselectEvent", "host": "YAHOO.widget.CalendarGroup", "name": "deselectEvent"}, {"url": "YAHOO.widget.Dialog.html#destroy", "host": "YAHOO.widget.Dialog", "name": "destroy"}, {"url": "YAHOO.widget.Module.html#destroy", "host": "YAHOO.widget.Module", "name": "destroy"}, {"url": "YAHOO.widget.Overlay.html#destroy", "host": "YAHOO.widget.Overlay", "name": "destroy"}, {"url": "YAHOO.widget.Panel.html#destroy", "host": "YAHOO.widget.Panel", "name": "destroy"}, {"url": "YAHOO.widget.Tooltip.html#destroy", "host": "YAHOO.widget.Tooltip", "name": "destroy"}, {"url": "YAHOO.widget.ContextMenu.html#destroy", "host": "YAHOO.widget.ContextMenu", "name": "destroy"}, {"url": "YAHOO.widget.Menu.html#destroy", "host": "YAHOO.widget.Menu", "name": "destroy"}, {"url": "YAHOO.widget.MenuItem.html#destroy", "host": "YAHOO.widget.MenuItem", "name": "destroy"}, {"url": "YAHOO.widget.Button.html#destroy", "host": "YAHOO.widget.Button", "name": "destroy"}, {"url": "YAHOO.widget.ButtonGroup.html#destroy", "host": "YAHOO.widget.ButtonGroup", "name": "destroy"}, {"url": "YAHOO.widget.Module.html#destroyEvent", "host": "YAHOO.widget.Module", "name": "destroyEvent"}, {"url": "YAHOO.widget.MenuItem.html#destroyEvent", "host": "YAHOO.widget.MenuItem", "name": "destroyEvent"}, {"url": "YAHOO.widget.Logger.html#disableBrowserConsole", "host": "YAHOO.widget.Logger", "name": "disableBrowserConsole"}, {"url": "YAHOO.widget.MenuItem.html#disabled", "host": "YAHOO.widget.MenuItem", "name": "disabled"}, {"url": "YAHOO.widget.Button.html#disabled", "host": "YAHOO.widget.Button", "name": "disabled"}, {"url": "YAHOO.widget.ButtonGroup.html#disabled", "host": "YAHOO.widget.ButtonGroup", "name": "disabled"}, {"url": "YAHOO.widget.Tab.html#disabled", "host": "YAHOO.widget.Tab", "name": "disabled"}, {"url": "YAHOO.widget.MenuItem.html#DISABLED_CHECKED_TEXT", "host": "YAHOO.widget.MenuItem", "name": "DISABLED_CHECKED_TEXT"}, {"url": "YAHOO.widget.Tab.html#DISABLED_CLASSNAME", "host": "YAHOO.widget.Tab", "name": "DISABLED_CLASSNAME"}, {"url": "YAHOO.widget.MenuItem.html#DISABLED_SUBMENU_INDICATOR_TEXT", "host": "YAHOO.widget.MenuItem", "name": "DISABLED_SUBMENU_INDICATOR_TEXT"}, {"url": "YAHOO.widget.Menu.html#_disableScrollFooter", "host": "YAHOO.widget.Menu", "name": "_disableScrollFooter"}, {"url": "YAHOO.widget.Menu.html#_disableScrollHeader", "host": "YAHOO.widget.Menu", "name": "_disableScrollHeader"}, {"url": "DataSource.html#doBeforeCallback", "host": "DataSource", "name": "doBeforeCallback"}, {"url": "YAHOO.widget.AutoComplete.html#doBeforeExpandContainer", "host": "YAHOO.widget.AutoComplete", "name": "doBeforeExpandContainer"}, {"url": "DataTable.html#doBeforeLoadData", "host": "DataTable", "name": "doBeforeLoadData"}, {"url": "YAHOO.widget.Calendar.html#doCellMouseOut", "host": "YAHOO.widget.Calendar", "name": "doCellMouseOut"}, {"url": "YAHOO.widget.Calendar.html#doCellMouseOver", "host": "YAHOO.widget.Calendar", "name": "doCellMouseOver"}, {"url": "YAHOO.widget.Overlay.html#doCenterOnDOMEvent", "host": "YAHOO.widget.Overlay", "name": "doCenterOnDOMEvent"}, {"url": "YAHOO.widget.Tooltip.html#doHide", "host": "YAHOO.widget.Tooltip", "name": "doHide"}, {"url": "YAHOO.util.Anim.html#doMethod", "host": "YAHOO.util.Anim", "name": "doMethod"}, {"url": "YAHOO.widget.TabView.html#DOMEventHandler", "host": "YAHOO.widget.TabView", "name": "DOMEventHandler"}, {"url": "YAHOO.widget.Calendar.html#domEventMap", "host": "YAHOO.widget.Calendar", "name": "domEventMap"}, {"url": "YAHOO.util.Element.html#DOM_EVENTS", "host": "YAHOO.util.Element", "name": "DOM_EVENTS"}, {"url": "YAHOO.util.Event.html#DOMReady", "host": "YAHOO.util.Event", "name": "DOMReady"}, {"url": "YAHOO.util.Event.html#DOMReadyEvent", "host": "YAHOO.util.Event", "name": "DOMReadyEvent"}, {"url": "YAHOO.util.DragDrop.html#_domRef", "host": "YAHOO.util.DragDrop", "name": "_domRef"}, {"url": "YAHOO.widget.DataSource.html#doQuery", "host": "YAHOO.widget.DataSource", "name": "doQuery"}, {"url": "YAHOO.widget.DS_XHR.html#doQuery", "host": "YAHOO.widget.DS_XHR", "name": "doQuery"}, {"url": "YAHOO.widget.DS_JSFunction.html#doQuery", "host": "YAHOO.widget.DS_JSFunction", "name": "doQuery"}, {"url": "YAHOO.widget.DS_JSArray.html#doQuery", "host": "YAHOO.widget.DS_JSArray", "name": "doQuery"}, {"url": "YAHOO.widget.DataSource.html#_doQueryCache", "host": "YAHOO.widget.DataSource", "name": "_doQueryCache"}, {"url": "YAHOO.widget.Calendar.html#doSelectCell", "host": "YAHOO.widget.Calendar", "name": "doSelectCell"}, {"url": "YAHOO.widget.Tooltip.html#doShow", "host": "YAHOO.widget.Tooltip", "name": "doShow"}, {"url": "YAHOO.widget.Dialog.html#doSubmit", "host": "YAHOO.widget.Dialog", "name": "doSubmit"}, {"url": "YAHOO.util.DragDropMgr.html#dragCurrent", "host": "YAHOO.util.DragDropMgr", "name": "dragCurrent"}, {"url": "YAHOO.util.DragDrop.html#dragElId", "host": "YAHOO.util.DragDrop", "name": "dragElId"}, {"url": "YAHOO.widget.Panel.html#dragEvent", "host": "YAHOO.widget.Panel", "name": "dragEvent"}, {"url": "YAHOO.widget.Panel.html#draggable", "host": "YAHOO.widget.Panel", "name": "draggable"}, {"url": "YAHOO.widget.LogReader.html#draggable", "host": "YAHOO.widget.LogReader", "name": "draggable"}, {"url": "YAHOO.util.DragDropMgr.html#dragOvers", "host": "YAHOO.util.DragDropMgr", "name": "dragOvers"}, {"url": "YAHOO.util.DragDropMgr.html#dragThreshMet", "host": "YAHOO.util.DragDropMgr", "name": "dragThreshMet"}, {"url": "YAHOO.widget.TreeView.html#draw", "host": "YAHOO.widget.TreeView", "name": "draw"}, {"url": "YAHOO.util.Anim.html#duration", "host": "YAHOO.util.Anim", "name": "duration"}, {"url": "YAHOO.widget.Node.html#dynamicLoadComplete", "host": "YAHOO.widget.Node", "name": "dynamicLoadComplete"}, {"url": "YAHOO.widget.Node.html#_dynLoad", "host": "YAHOO.widget.Node", "name": "_dynLoad"}, {"url": "YAHOO.util.Easing.html#easeBoth", "host": "YAHOO.util.Easing", "name": "easeBoth"}, {"url": "YAHOO.util.Easing.html#easeBothStrong", "host": "YAHOO.util.Easing", "name": "easeBothStrong"}, {"url": "YAHOO.util.Easing.html#easeIn", "host": "YAHOO.util.Easing", "name": "easeIn"}, {"url": "YAHOO.util.Easing.html#easeInStrong", "host": "YAHOO.util.Easing", "name": "easeInStrong"}, {"url": "YAHOO.util.Easing.html#easeNone", "host": "YAHOO.util.Easing", "name": "easeNone"}, {"url": "YAHOO.util.Easing.html#easeOut", "host": "YAHOO.util.Easing", "name": "easeOut"}, {"url": "YAHOO.util.Easing.html#easeOutStrong", "host": "YAHOO.util.Easing", "name": "easeOutStrong"}, {"url": "DataTable.html#editCell", "host": "DataTable", "name": "editCell"}, {"url": "Column.html#editor", "host": "Column", "name": "editor"}, {"url": "DataTable.html#editorShowEvent", "host": "DataTable", "name": "editorShowEvent"}, {"url": "YAHOO.widget.Module.html#effect", "host": "YAHOO.widget.Module", "name": "effect"}, {"url": "YAHOO.util.DragDropMgr.ElementWrapper.html#el", "host": "YAHOO.util.DragDropMgr.ElementWrapper", "name": "el"}, {"url": "YAHOO.util.Anim.html#el", "host": "YAHOO.util.Anim", "name": "el"}, {"url": "YAHOO.widget.TreeView.html#_el", "host": "YAHOO.widget.TreeView", "name": "_el"}, {"url": "YAHOO.widget.TVFadeIn.html#el", "host": "YAHOO.widget.TVFadeIn", "name": "el"}, {"url": "YAHOO.widget.TVFadeOut.html#el", "host": "YAHOO.widget.TVFadeOut", "name": "el"}, {"url": "YAHOO.util.Event.html#EL", "host": "YAHOO.util.Event", "name": "EL"}, {"url": "YAHOO.util.Easing.html#elasticBoth", "host": "YAHOO.util.Easing", "name": "elasticBoth"}, {"url": "YAHOO.util.Easing.html#elasticIn", "host": "YAHOO.util.Easing", "name": "elasticIn"}, {"url": "YAHOO.util.Easing.html#elasticOut", "host": "YAHOO.util.Easing", "name": "elasticOut"}, {"url": "DataTable.html#_elBody", "host": "DataTable", "name": "_elBody"}, {"url": "YAHOO.widget.LogReader.html#_elBtns", "host": "YAHOO.widget.LogReader", "name": "_elBtns"}, {"url": "YAHOO.util.Event.html#elCache\nDOM element cache", "host": "YAHOO.util.Event", "name": "elCache\nDOM element cache"}, {"url": "YAHOO.widget.LogReader.html#_elCategoryFilters", "host": "YAHOO.widget.LogReader", "name": "_elCategoryFilters"}, {"url": "YAHOO.widget.LogReader.html#_elCollapse", "host": "YAHOO.widget.LogReader", "name": "_elCollapse"}, {"url": "YAHOO.widget.LogReader.html#_elConsole", "host": "YAHOO.widget.LogReader", "name": "_elConsole"}, {"url": "DataTable.html#_elContainer", "host": "DataTable", "name": "_elContainer"}, {"url": "YAHOO.widget.LogReader.html#_elContainer", "host": "YAHOO.widget.LogReader", "name": "_elContainer"}, {"url": "YAHOO.widget.LogReader.html#_elDefaultContainer", "host": "YAHOO.widget.LogReader", "name": "_elDefaultContainer"}, {"url": "YAHOO.widget.Module.html#element", "host": "YAHOO.widget.Module", "name": "element"}, {"url": "YAHOO.widget.MenuItem.html#element", "host": "YAHOO.widget.MenuItem", "name": "element"}, {"url": "YAHOO.util.Element.html#element", "host": "YAHOO.util.Element", "name": "element"}, {"url": "YAHOO.util.DragDropMgr.html#elementCache", "host": "YAHOO.util.DragDropMgr", "name": "elementCache"}, {"url": "DataTable.html#_elFirstRow", "host": "DataTable", "name": "_elFirstRow"}, {"url": "YAHOO.widget.LogReader.html#_elFt", "host": "YAHOO.widget.LogReader", "name": "_elFt"}, {"url": "YAHOO.widget.LogReader.html#_elHd", "host": "YAHOO.widget.LogReader", "name": "_elHd"}, {"url": "DataTable.html#_elLastRow", "host": "DataTable", "name": "_elLastRow"}, {"url": "YAHOO.widget.LogReader.html#_elSourceFilters", "host": "YAHOO.widget.LogReader", "name": "_elSourceFilters"}, {"url": "DataTable.html#_elTable", "host": "DataTable", "name": "_elTable"}, {"url": "YAHOO.widget.MenuItem.html#emphasis", "host": "YAHOO.widget.MenuItem", "name": "emphasis"}, {"url": "YAHOO.widget.Logger.html#enableBrowserConsole", "host": "YAHOO.widget.Logger", "name": "enableBrowserConsole"}, {"url": "YAHOO.widget.AutoComplete.html#_enableIntervalDetection", "host": "YAHOO.widget.AutoComplete", "name": "_enableIntervalDetection"}, {"url": "YAHOO.widget.Slider.html#enableKeys", "host": "YAHOO.widget.Slider", "name": "enableKeys"}, {"url": "YAHOO.widget.Menu.html#_enableScrollFooter", "host": "YAHOO.widget.Menu", "name": "_enableScrollFooter"}, {"url": "YAHOO.widget.Menu.html#_enableScrollHeader", "host": "YAHOO.widget.Menu", "name": "_enableScrollHeader"}, {"url": "YAHOO.util.DragDrop.html#endDrag", "host": "YAHOO.util.DragDrop", "name": "endDrag"}, {"url": "YAHOO.widget.Slider.html#endMove", "host": "YAHOO.widget.Slider", "name": "endMove"}, {"url": "YAHOO.widget.Overlay.html#enforceConstraints", "host": "YAHOO.widget.Overlay", "name": "enforceConstraints"}, {"url": "YAHOO.widget.Menu.html#enforceConstraints", "host": "YAHOO.widget.Menu", "name": "enforceConstraints"}, {"url": "DataSource.html#ERROR_DATAINVALID", "host": "DataSource", "name": "ERROR_DATAINVALID"}, {"url": "YAHOO.widget.DataSource.html#ERROR_DATANULL", "host": "YAHOO.widget.DataSource", "name": "ERROR_DATANULL"}, {"url": "DataSource.html#ERROR_DATANULL", "host": "DataSource", "name": "ERROR_DATANULL"}, {"url": "YAHOO.widget.DataSource.html#ERROR_DATAPARSE", "host": "YAHOO.widget.DataSource", "name": "ERROR_DATAPARSE"}, {"url": "YAHOO.widget.DS_XHR.html#ERROR_DATAXHR", "host": "YAHOO.widget.DS_XHR", "name": "ERROR_DATAXHR"}, {"url": "YAHOO.util.Config.html#eventQueue", "host": "YAHOO.util.Config", "name": "eventQueue"}, {"url": "YAHOO.widget.Menu.html#_execHideDelay", "host": "YAHOO.widget.Menu", "name": "_execHideDelay"}, {"url": "YAHOO.util.DragDropMgr.html#_execOnAll", "host": "YAHOO.util.DragDropMgr", "name": "_execOnAll"}, {"url": "YAHOO.widget.Menu.html#_execShowDelay", "host": "YAHOO.widget.Menu", "name": "_execShowDelay"}, {"url": "YAHOO.widget.Menu.html#_execSubmenuHideDelay", "host": "YAHOO.widget.Menu", "name": "_execSubmenuHideDelay"}, {"url": "YAHOO.widget.LogReader.html#expand", "host": "YAHOO.widget.LogReader", "name": "expand"}, {"url": "YAHOO.widget.Node.html#expand", "host": "YAHOO.widget.Node", "name": "expand"}, {"url": "YAHOO.widget.TreeView.html#expand", "host": "YAHOO.widget.TreeView", "name": "expand"}, {"url": "YAHOO.widget.Node.html#expandAll", "host": "YAHOO.widget.Node", "name": "expandAll"}, {"url": "YAHOO.widget.TreeView.html#expandAll", "host": "YAHOO.widget.TreeView", "name": "expandAll"}, {"url": "YAHOO.widget.TreeView.html#_expandAnim", "host": "YAHOO.widget.TreeView", "name": "_expandAnim"}, {"url": "YAHOO.widget.TreeView.html#expandComplete", "host": "YAHOO.widget.TreeView", "name": "expandComplete"}, {"url": "YAHOO.widget.Node.html#expanded", "host": "YAHOO.widget.Node", "name": "expanded"}, {"url": "YAHOO.widget.MenuItem.html#EXPANDED_SUBMENU_INDICATOR_TEXT", "host": "YAHOO.widget.MenuItem", "name": "EXPANDED_SUBMENU_INDICATOR_TEXT"}, {"url": "YAHOO.html#extend", "host": "YAHOO", "name": "extend"}, {"url": "YAHOO.lang.html#extend", "host": "YAHOO.lang", "name": "extend"}, {"url": "YAHOO.widget.ContainerEffect.html#FADE", "host": "YAHOO.widget.ContainerEffect", "name": "FADE"}, {"url": "YAHOO.widget.TVAnim.html#FADE_IN", "host": "YAHOO.widget.TVAnim", "name": "FADE_IN"}, {"url": "YAHOO.widget.TVAnim.html#FADE_OUT", "host": "YAHOO.widget.TVAnim", "name": "FADE_OUT"}, {"url": "YAHOO.widget.Calendar.html#_fieldArraysAreEqual", "host": "YAHOO.widget.Calendar", "name": "_fieldArraysAreEqual"}, {"url": "YAHOO.widget.LogReader.html#_filterCheckboxes", "host": "YAHOO.widget.LogReader", "name": "_filterCheckboxes"}, {"url": "YAHOO.widget.LogReader.html#_filterLogs", "host": "YAHOO.widget.LogReader", "name": "_filterLogs"}, {"url": "YAHOO.widget.OverlayManager.html#find", "host": "YAHOO.widget.OverlayManager", "name": "find"}, {"url": "YAHOO.widget.DateMath.html#findMonthEnd", "host": "YAHOO.widget.DateMath", "name": "findMonthEnd"}, {"url": "YAHOO.widget.DateMath.html#findMonthStart", "host": "YAHOO.widget.DateMath", "name": "findMonthStart"}, {"url": "YAHOO.util.CustomEvent.html#fire", "host": "YAHOO.util.CustomEvent", "name": "fire"}, {"url": "YAHOO.util.AttributeProvider.html#fireBeforeChangeEvent", "host": "YAHOO.util.AttributeProvider", "name": "fireBeforeChangeEvent"}, {"url": "YAHOO.util.AttributeProvider.html#fireChangeEvent", "host": "YAHOO.util.AttributeProvider", "name": "fireChangeEvent"}, {"url": "YAHOO.util.Config.html#fireEvent", "host": "YAHOO.util.Config", "name": "fireEvent"}, {"url": "YAHOO.util.EventProvider.html#fireEvent", "host": "YAHOO.util.EventProvider", "name": "fireEvent"}, {"url": "YAHOO.util.DragDropMgr.html#fireEvents", "host": "YAHOO.util.DragDropMgr", "name": "fireEvents"}, {"url": "YAHOO.widget.Slider.html#fireEvents", "host": "YAHOO.widget.Slider", "name": "fireEvents"}, {"url": "YAHOO.util.Event.html#fireLegacyEvent", "host": "YAHOO.util.Event", "name": "fireLegacyEvent"}, {"url": "YAHOO.util.Config.html#fireQueue", "host": "YAHOO.util.Config", "name": "fireQueue"}, {"url": "YAHOO.util.Element.html#fireQueue", "host": "YAHOO.util.Element", "name": "fireQueue"}, {"url": "YAHOO.widget.Overlay.html#fixedcenter", "host": "YAHOO.widget.Overlay", "name": "fixedcenter"}, {"url": "DataTable.html#fixedWidth", "host": "DataTable", "name": "fixedWidth"}, {"url": "ColumnSet.html#flat", "host": "ColumnSet", "name": "flat"}, {"url": "YAHOO.widget.DataSource.html#flushCache", "host": "YAHOO.widget.DataSource", "name": "flushCache"}, {"url": "DataSource.html#flushCache", "host": "DataSource", "name": "flushCache"}, {"url": "YAHOO.util.Subscriber.html#fn", "host": "YAHOO.util.Subscriber", "name": "fn"}, {"url": "YAHOO.util.Event.html#FN", "host": "YAHOO.util.Event", "name": "FN"}, {"url": "YAHOO.widget.OverlayManager.html#focus", "host": "YAHOO.widget.OverlayManager", "name": "focus"}, {"url": "YAHOO.widget.Menu.html#focus", "host": "YAHOO.widget.Menu", "name": "focus"}, {"url": "YAHOO.widget.MenuItem.html#focus", "host": "YAHOO.widget.MenuItem", "name": "focus"}, {"url": "YAHOO.widget.Button.html#focus", "host": "YAHOO.widget.Button", "name": "focus"}, {"url": "YAHOO.widget.ButtonGroup.html#focus", "host": "YAHOO.widget.ButtonGroup", "name": "focus"}, {"url": "YAHOO.widget.Slider.html#focus", "host": "YAHOO.widget.Slider", "name": "focus"}, {"url": "YAHOO.widget.Dialog.html#focusDefaultButton", "host": "YAHOO.widget.Dialog", "name": "focusDefaultButton"}, {"url": "YAHOO.widget.OverlayManager.html#focusevent", "host": "YAHOO.widget.OverlayManager", "name": "focusevent"}, {"url": "YAHOO.widget.MenuItem.html#focusEvent", "host": "YAHOO.widget.MenuItem", "name": "focusEvent"}, {"url": "YAHOO.widget.Dialog.html#focusFirst", "host": "YAHOO.widget.Dialog", "name": "focusFirst"}, {"url": "YAHOO.widget.Dialog.html#focusFirstButton", "host": "YAHOO.widget.Dialog", "name": "focusFirstButton"}, {"url": "YAHOO.widget.Dialog.html#focusLast", "host": "YAHOO.widget.Dialog", "name": "focusLast"}, {"url": "YAHOO.widget.Dialog.html#focusLastButton", "host": "YAHOO.widget.Dialog", "name": "focusLastButton"}, {"url": "DataTable.html#focusTable", "host": "DataTable", "name": "focusTable"}, {"url": "YAHOO.widget.LogReader.html#fontSize", "host": "YAHOO.widget.LogReader", "name": "fontSize"}, {"url": "YAHOO.widget.Module.html#footer", "host": "YAHOO.widget.Module", "name": "footer"}, {"url": "YAHOO.widget.LogReader.html#footerEnabled", "host": "YAHOO.widget.LogReader", "name": "footerEnabled"}, {"url": "YAHOO.widget.AutoComplete.html#forceSelection", "host": "YAHOO.widget.AutoComplete", "name": "forceSelection"}, {"url": "Column.html#format", "host": "Column", "name": "format"}, {"url": "DataTable.html#formatCell", "host": "DataTable", "name": "formatCell"}, {"url": "Column.html#formatCheckbox", "host": "Column", "name": "formatCheckbox"}, {"url": "Column.html#formatCurrency", "host": "Column", "name": "formatCurrency"}, {"url": "Column.html#formatDate", "host": "Column", "name": "formatDate"}, {"url": "Column.html#formatEmail", "host": "Column", "name": "formatEmail"}, {"url": "Column.html#formatLink", "host": "Column", "name": "formatLink"}, {"url": "YAHOO.widget.LogReader.html#formatMsg", "host": "YAHOO.widget.LogReader", "name": "formatMsg"}, {"url": "Column.html#formatNumber", "host": "Column", "name": "formatNumber"}, {"url": "DataTable.html#formatPaginatorDropdown", "host": "DataTable", "name": "formatPaginatorDropdown"}, {"url": "DataTable.html#formatPaginatorLinks", "host": "DataTable", "name": "formatPaginatorLinks"}, {"url": "DataTable.html#formatPaginators", "host": "DataTable", "name": "formatPaginators"}, {"url": "YAHOO.widget.AutoComplete.html#formatResult", "host": "YAHOO.widget.AutoComplete", "name": "formatResult"}, {"url": "Column.html#formatSelect", "host": "Column", "name": "formatSelect"}, {"url": "Column.html#formatter", "host": "Column", "name": "formatter"}, {"url": "YAHOO.util.Connect.html#_formNode", "host": "YAHOO.util.Connect", "name": "_formNode"}, {"url": "YAHOO.widget.Dialog.html#formSubmitEvent", "host": "YAHOO.widget.Dialog", "name": "formSubmitEvent"}, {"url": "YAHOO.util.AnimMgr.html#fps", "host": "YAHOO.util.AnimMgr", "name": "fps"}, {"url": "YAHOO.util.History.html#_fqstates", "host": "YAHOO.util.History", "name": "_fqstates"}, {"url": "YAHOO.util.Dom.html#generateId", "host": "YAHOO.util.Dom", "name": "generateId"}, {"url": "YAHOO.widget.TreeView.html#generateId", "host": "YAHOO.widget.TreeView", "name": "generateId"}, {"url": "YAHOO.util.Event.html#generateId", "host": "YAHOO.util.Event", "name": "generateId"}, {"url": "YAHOO.util.Dom.html#get", "host": "YAHOO.util.Dom", "name": "get"}, {"url": "YAHOO.util.AttributeProvider.html#get", "host": "YAHOO.util.AttributeProvider", "name": "get"}, {"url": "YAHOO.widget.OverlayManager.html#getActive", "host": "YAHOO.widget.OverlayManager", "name": "getActive"}, {"url": "YAHOO.widget.Node.html#getAncestor", "host": "YAHOO.widget.Node", "name": "getAncestor"}, {"url": "YAHOO.widget.TVAnim.html#getAnim", "host": "YAHOO.widget.TVAnim", "name": "getAnim"}, {"url": "YAHOO.util.Region.html#getArea", "host": "YAHOO.util.Region", "name": "getArea"}, {"url": "YAHOO.util.Anim.html#getAttribute", "host": "YAHOO.util.Anim", "name": "getAttribute"}, {"url": "YAHOO.util.AttributeProvider.html#getAttributeConfig", "host": "YAHOO.util.AttributeProvider", "name": "getAttributeConfig"}, {"url": "YAHOO.util.AttributeProvider.html#getAttributeKeys", "host": "YAHOO.util.AttributeProvider", "name": "getAttributeKeys"}, {"url": "YAHOO.util.DragDropMgr.html#getBestMatch", "host": "YAHOO.util.DragDropMgr", "name": "getBestMatch"}, {"url": "DataTable.html#getBody", "host": "DataTable", "name": "getBody"}, {"url": "YAHOO.util.History.html#getBookmarkedState", "host": "YAHOO.util.History", "name": "getBookmarkedState"}, {"url": "YAHOO.widget.ButtonGroup.html#getButton", "host": "YAHOO.widget.ButtonGroup", "name": "getButton"}, {"url": "YAHOO.widget.ButtonGroup.html#getButtons", "host": "YAHOO.widget.ButtonGroup", "name": "getButtons"}, {"url": "DataSource.html#getCachedResponse", "host": "DataSource", "name": "getCachedResponse"}, {"url": "DataSource.html#getCachedResponseEvent", "host": "DataSource", "name": "getCachedResponseEvent"}, {"url": "YAHOO.widget.DataSource.html#getCachedResultsEvent", "host": "YAHOO.widget.DataSource", "name": "getCachedResultsEvent"}, {"url": "YAHOO.util.Event.html#_getCacheIndex", "host": "YAHOO.util.Event", "name": "_getCacheIndex"}, {"url": "YAHOO.widget.LogReader.html#getCategories", "host": "YAHOO.widget.LogReader", "name": "getCategories"}, {"url": "DataTable.html#getCell", "host": "DataTable", "name": "getCell"}, {"url": "YAHOO.util.Event.html#getCharCode", "host": "YAHOO.util.Event", "name": "getCharCode"}, {"url": "YAHOO.widget.LogReader.html#getCheckbox", "host": "YAHOO.widget.LogReader", "name": "getCheckbox"}, {"url": "YAHOO.widget.Node.html#getChildrenEl", "host": "YAHOO.widget.Node", "name": "getChildrenEl"}, {"url": "YAHOO.widget.Node.html#getChildrenElId", "host": "YAHOO.widget.Node", "name": "getChildrenElId"}, {"url": "YAHOO.widget.Node.html#getChildrenHtml", "host": "YAHOO.widget.Node", "name": "getChildrenHtml"}, {"url": "YAHOO.util.DragDropMgr.html#getClientHeight", "host": "YAHOO.util.DragDropMgr", "name": "getClientHeight"}, {"url": "YAHOO.util.Dom.html#getClientHeight", "host": "YAHOO.util.Dom", "name": "getClientHeight"}, {"url": "YAHOO.util.DragDropMgr.html#getClientWidth", "host": "YAHOO.util.DragDropMgr", "name": "getClientWidth"}, {"url": "YAHOO.util.Dom.html#getClientWidth", "host": "YAHOO.util.Dom", "name": "getClientWidth"}, {"url": "Column.html#getColSpan", "host": "Column", "name": "getColSpan"}, {"url": "DataTable.html#getColumnSet", "host": "DataTable", "name": "getColumnSet"}, {"url": "YAHOO.util.Config.html#getConfig", "host": "YAHOO.util.Config", "name": "getConfig"}, {"url": "YAHOO.util.Connect.html#getConnectionObject", "host": "YAHOO.util.Connect", "name": "getConnectionObject"}, {"url": "YAHOO.widget.HTMLNode.html#getContentEl", "host": "YAHOO.widget.HTMLNode", "name": "getContentEl"}, {"url": "YAHOO.widget.ButtonGroup.html#getCount", "host": "YAHOO.widget.ButtonGroup", "name": "getCount"}, {"url": "YAHOO.util.DragDropMgr.html#getCss", "host": "YAHOO.util.DragDropMgr", "name": "getCss"}, {"url": "YAHOO.util.History.html#getCurrentState", "host": "YAHOO.util.History", "name": "getCurrentState"}, {"url": "YAHOO.widget.Dialog.html#getData", "host": "YAHOO.widget.Dialog", "name": "getData"}, {"url": "YAHOO.widget.Calendar.html#getDateByCellId", "host": "YAHOO.widget.Calendar", "name": "getDateByCellId"}, {"url": "YAHOO.widget.Calendar.html#getDateFieldsByCellId", "host": "YAHOO.widget.Calendar", "name": "getDateFieldsByCellId"}, {"url": "YAHOO.widget.DateMath.html#getDayOffset", "host": "YAHOO.widget.DateMath", "name": "getDayOffset"}, {"url": "YAHOO.util.DragDropMgr.html#getDDById", "host": "YAHOO.util.DragDropMgr", "name": "getDDById"}, {"url": "YAHOO.util.Anim.html#getDefaultUnit", "host": "YAHOO.util.Anim", "name": "getDefaultUnit"}, {"url": "YAHOO.widget.Node.html#getDepthStyle", "host": "YAHOO.widget.Node", "name": "getDepthStyle"}, {"url": "YAHOO.util.Dom.html#getDocumentHeight", "host": "YAHOO.util.Dom", "name": "getDocumentHeight"}, {"url": "YAHOO.util.Dom.html#getDocumentWidth", "host": "YAHOO.util.Dom", "name": "getDocumentWidth"}, {"url": "YAHOO.util.DragDrop.html#getDragEl", "host": "YAHOO.util.DragDrop", "name": "getDragEl"}, {"url": "YAHOO.util.DragDrop.html#getEl", "host": "YAHOO.util.DragDrop", "name": "getEl"}, {"url": "YAHOO.util.Anim.html#getEl", "host": "YAHOO.util.Anim", "name": "getEl"}, {"url": "YAHOO.widget.Node.html#getEl", "host": "YAHOO.widget.Node", "name": "getEl"}, {"url": "YAHOO.widget.TreeView.html#getEl", "host": "YAHOO.widget.TreeView", "name": "getEl"}, {"url": "YAHOO.util.Event.html#getEl", "host": "YAHOO.util.Event", "name": "getEl"}, {"url": "YAHOO.util.DragDropMgr.html#getElement", "host": "YAHOO.util.DragDropMgr", "name": "getElement"}, {"url": "YAHOO.util.Dom.html#getElementsBy", "host": "YAHOO.util.Dom", "name": "getElementsBy"}, {"url": "YAHOO.util.Dom.html#getElementsByClassName", "host": "YAHOO.util.Dom", "name": "getElementsByClassName"}, {"url": "YAHOO.util.Element.html#getElementsByClassName", "host": "YAHOO.util.Element", "name": "getElementsByClassName"}, {"url": "YAHOO.util.Element.html#getElementsByTagName", "host": "YAHOO.util.Element", "name": "getElementsByTagName"}, {"url": "YAHOO.widget.Node.html#getElId", "host": "YAHOO.widget.Node", "name": "getElId"}, {"url": "YAHOO.util.DragDropMgr.html#getElWrapper", "host": "YAHOO.util.DragDropMgr", "name": "getElWrapper"}, {"url": "YAHOO.util.Event.html#getEvent", "host": "YAHOO.util.Event", "name": "getEvent"}, {"url": "YAHOO.widget.MenuItem.html#_getFirstElement", "host": "YAHOO.widget.MenuItem", "name": "_getFirstElement"}, {"url": "YAHOO.widget.Button.html#getFirstElement", "host": "YAHOO.widget.Button", "name": "getFirstElement"}, {"url": "YAHOO.widget.Menu.html#_getFirstEnabledItem", "host": "YAHOO.widget.Menu", "name": "_getFirstEnabledItem"}, {"url": "DataTable.html#getFirstRow", "host": "DataTable", "name": "getFirstRow"}, {"url": "YAHOO.widget.MenuManager.html#getFocusedMenu", "host": "YAHOO.widget.MenuManager", "name": "getFocusedMenu"}, {"url": "YAHOO.widget.MenuManager.html#getFocusedMenuItem", "host": "YAHOO.widget.MenuManager", "name": "getFocusedMenuItem"}, {"url": "YAHOO.widget.Button.html#getForm", "host": "YAHOO.widget.Button", "name": "getForm"}, {"url": "YAHOO.util.History.html#_getHash", "host": "YAHOO.util.History", "name": "_getHash"}, {"url": "DataTable.html#getHead", "host": "DataTable", "name": "getHead"}, {"url": "YAHOO.widget.Button.html#getHiddenField", "host": "YAHOO.widget.Button", "name": "getHiddenField"}, {"url": "YAHOO.widget.Node.html#getHoverStyle", "host": "YAHOO.widget.Node", "name": "getHoverStyle"}, {"url": "YAHOO.widget.Node.html#getHtml", "host": "YAHOO.widget.Node", "name": "getHtml"}, {"url": "YAHOO.widget.Node.html#getIconMode", "host": "YAHOO.widget.Node", "name": "getIconMode"}, {"url": "Column.html#getId", "host": "Column", "name": "getId"}, {"url": "Column.html#getIndex", "host": "Column", "name": "getIndex"}, {"url": "YAHOO.widget.Menu.html#getItem", "host": "YAHOO.widget.Menu", "name": "getItem"}, {"url": "YAHOO.widget.Menu.html#_getItemGroup", "host": "YAHOO.widget.Menu", "name": "_getItemGroup"}, {"url": "YAHOO.widget.Menu.html#getItemGroups", "host": "YAHOO.widget.Menu", "name": "getItemGroups"}, {"url": "YAHOO.widget.Menu.html#getItems", "host": "YAHOO.widget.Menu", "name": "getItems"}, {"url": "YAHOO.widget.DateMath.html#getJan1", "host": "YAHOO.widget.DateMath", "name": "getJan1"}, {"url": "YAHOO.widget.TextNode.html#getLabelEl", "host": "YAHOO.widget.TextNode", "name": "getLabelEl"}, {"url": "DataTable.html#getLastRow", "host": "DataTable", "name": "getLastRow"}, {"url": "YAHOO.widget.LogReader.html#getLastTime", "host": "YAHOO.widget.LogReader", "name": "getLastTime"}, {"url": "YAHOO.util.Event.html#getLegacyIndex", "host": "YAHOO.util.Event", "name": "getLegacyIndex"}, {"url": "RecordSet.html#getLength", "host": "RecordSet", "name": "getLength"}, {"url": "YAHOO.util.Event.html#getListeners", "host": "YAHOO.util.Event", "name": "getListeners"}, {"url": "YAHOO.widget.AutoComplete.html#getListItemData", "host": "YAHOO.widget.AutoComplete", "name": "getListItemData"}, {"url": "YAHOO.widget.AutoComplete.html#getListItems", "host": "YAHOO.widget.AutoComplete", "name": "getListItems"}, {"url": "YAHOO.util.DragDropMgr.html#getLocation", "host": "YAHOO.util.DragDropMgr", "name": "getLocation"}, {"url": "YAHOO.widget.MenuManager.html#getMenu", "host": "YAHOO.widget.MenuManager", "name": "getMenu"}, {"url": "YAHOO.widget.Button.html#getMenu", "host": "YAHOO.widget.Button", "name": "getMenu"}, {"url": "YAHOO.widget.MenuManager.html#getMenuRootElement", "host": "YAHOO.widget.MenuManager", "name": "getMenuRootElement"}, {"url": "YAHOO.widget.MenuManager.html#getMenus", "host": "YAHOO.widget.MenuManager", "name": "getMenus"}, {"url": "YAHOO.widget.MenuItem.html#getNextEnabledSibling", "host": "YAHOO.widget.MenuItem", "name": "getNextEnabledSibling"}, {"url": "YAHOO.widget.Slider.html#_getNextX", "host": "YAHOO.widget.Slider", "name": "_getNextX"}, {"url": "YAHOO.widget.Slider.html#_getNextY", "host": "YAHOO.widget.Slider", "name": "_getNextY"}, {"url": "YAHOO.widget.TreeView.html#getNodeByIndex", "host": "YAHOO.widget.TreeView", "name": "getNodeByIndex"}, {"url": "YAHOO.widget.TreeView.html#getNodeByProperty", "host": "YAHOO.widget.TreeView", "name": "getNodeByProperty"}, {"url": "YAHOO.widget.Node.html#getNodeHtml", "host": "YAHOO.widget.Node", "name": "getNodeHtml"}, {"url": "YAHOO.widget.TreeView.html#getNodesByProperty", "host": "YAHOO.widget.TreeView", "name": "getNodesByProperty"}, {"url": "YAHOO.widget.SliderThumb.html#getOffsetFromParent", "host": "YAHOO.widget.SliderThumb", "name": "getOffsetFromParent"}, {"url": "YAHOO.widget.Menu.html#_getOffsetWidth", "host": "YAHOO.widget.Menu", "name": "_getOffsetWidth"}, {"url": "YAHOO.util.Event.html#getPageX", "host": "YAHOO.util.Event", "name": "getPageX"}, {"url": "YAHOO.util.Event.html#getPageY", "host": "YAHOO.util.Event", "name": "getPageY"}, {"url": "DataTable.html#getPaginator", "host": "DataTable", "name": "getPaginator"}, {"url": "YAHOO.util.Bezier.html#getPosition", "host": "YAHOO.util.Bezier", "name": "getPosition"}, {"url": "YAHOO.util.DragDropMgr.html#getPosX", "host": "YAHOO.util.DragDropMgr", "name": "getPosX"}, {"url": "YAHOO.util.DragDropMgr.html#getPosY", "host": "YAHOO.util.DragDropMgr", "name": "getPosY"}, {"url": "YAHOO.widget.MenuItem.html#getPreviousEnabledSibling", "host": "YAHOO.widget.MenuItem", "name": "getPreviousEnabledSibling"}, {"url": "YAHOO.util.Config.html#getProperty", "host": "YAHOO.util.Config", "name": "getProperty"}, {"url": "YAHOO.util.History.html#getQueryStringParameter", "host": "YAHOO.util.History", "name": "getQueryStringParameter"}, {"url": "RecordSet.html#getRecord", "host": "RecordSet", "name": "getRecord"}, {"url": "RecordSet.html#getRecordBy", "host": "RecordSet", "name": "getRecordBy"}, {"url": "RecordSet.html#getRecordIndex", "host": "RecordSet", "name": "getRecordIndex"}, {"url": "RecordSet.html#getRecords", "host": "RecordSet", "name": "getRecords"}, {"url": "DataTable.html#getRecordSet", "host": "DataTable", "name": "getRecordSet"}, {"url": "YAHOO.util.Dom.html#getRegion", "host": "YAHOO.util.Dom", "name": "getRegion"}, {"url": "YAHOO.util.Region.html#getRegion", "host": "YAHOO.util.Region", "name": "getRegion"}, {"url": "YAHOO.util.DragDropMgr.html#getRelated", "host": "YAHOO.util.DragDropMgr", "name": "getRelated"}, {"url": "YAHOO.util.Event.html#getRelatedTarget", "host": "YAHOO.util.Event", "name": "getRelatedTarget"}, {"url": "YAHOO.widget.DataSource.html#getResults", "host": "YAHOO.widget.DataSource", "name": "getResults"}, {"url": "YAHOO.widget.DataSource.html#getResultsEvent", "host": "YAHOO.widget.DataSource", "name": "getResultsEvent"}, {"url": "YAHOO.widget.Menu.html#getRoot", "host": "YAHOO.widget.Menu", "name": "getRoot"}, {"url": "YAHOO.widget.TreeView.html#getRoot", "host": "YAHOO.widget.TreeView", "name": "getRoot"}, {"url": "DataTable.html#getRow", "host": "DataTable", "name": "getRow"}, {"url": "Column.html#getRowSpan", "host": "Column", "name": "getRowSpan"}, {"url": "YAHOO.util.Subscriber.html#getScope", "host": "YAHOO.util.Subscriber", "name": "getScope"}, {"url": "YAHOO.util.DragDropMgr.html#getScroll", "host": "YAHOO.util.DragDropMgr", "name": "getScroll"}, {"url": "YAHOO.util.Event.html#_getScroll", "host": "YAHOO.util.Event", "name": "_getScroll"}, {"url": "YAHOO.util.DragDropMgr.html#getScrollLeft", "host": "YAHOO.util.DragDropMgr", "name": "getScrollLeft"}, {"url": "YAHOO.util.Event.html#_getScrollLeft", "host": "YAHOO.util.Event", "name": "_getScrollLeft"}, {"url": "YAHOO.util.DragDropMgr.html#getScrollTop", "host": "YAHOO.util.DragDropMgr", "name": "getScrollTop"}, {"url": "YAHOO.util.Event.html#_getScrollTop", "host": "YAHOO.util.Event", "name": "_getScrollTop"}, {"url": "DataTable.html#getSelectedCells", "host": "DataTable", "name": "getSelectedCells"}, {"url": "YAHOO.widget.Calendar.html#getSelectedDates", "host": "YAHOO.widget.Calendar", "name": "getSelectedDates"}, {"url": "YAHOO.widget.CalendarGroup.html#getSelectedDates", "host": "YAHOO.widget.CalendarGroup", "name": "getSelectedDates"}, {"url": "DataTable.html#getSelectedRecordIds", "host": "DataTable", "name": "getSelectedRecordIds"}, {"url": "DataTable.html#getSelectedRows", "host": "DataTable", "name": "getSelectedRows"}, {"url": "YAHOO.widget.Node.html#getSiblings", "host": "YAHOO.widget.Node", "name": "getSiblings"}, {"url": "YAHOO.widget.LogWriter.html#getSource", "host": "YAHOO.widget.LogWriter", "name": "getSource"}, {"url": "YAHOO.widget.LogReader.html#getSources", "host": "YAHOO.widget.LogReader", "name": "getSources"}, {"url": "YAHOO.widget.Logger.html#getStack", "host": "YAHOO.widget.Logger", "name": "getStack"}, {"url": "YAHOO.util.Anim.html#getStartTime", "host": "YAHOO.util.Anim", "name": "getStartTime"}, {"url": "YAHOO.widget.Logger.html#getStartTime", "host": "YAHOO.widget.Logger", "name": "getStartTime"}, {"url": "YAHOO.util.DragDropMgr.html#getStyle", "host": "YAHOO.util.DragDropMgr", "name": "getStyle"}, {"url": "YAHOO.util.Dom.html#getStyle", "host": "YAHOO.util.Dom", "name": "getStyle"}, {"url": "YAHOO.util.Element.html#getStyle", "host": "YAHOO.util.Element", "name": "getStyle"}, {"url": "YAHOO.widget.Node.html#getStyle", "host": "YAHOO.widget.Node", "name": "getStyle"}, {"url": "YAHOO.widget.TabView.html#getTab", "host": "YAHOO.widget.TabView", "name": "getTab"}, {"url": "YAHOO.widget.TabView.html#getTabIndex", "host": "YAHOO.widget.TabView", "name": "getTabIndex"}, {"url": "DataTable.html#getTable", "host": "DataTable", "name": "getTable"}, {"url": "YAHOO.util.Event.html#getTarget", "host": "YAHOO.util.Event", "name": "getTarget"}, {"url": "YAHOO.util.DragDrop.html#getTargetCoord", "host": "YAHOO.util.DragDrop", "name": "getTargetCoord"}, {"url": "ColumnEditor.html#getTextareaEditorValue", "host": "ColumnEditor", "name": "getTextareaEditorValue"}, {"url": "ColumnEditor.html#getTextboxEditorValue", "host": "ColumnEditor", "name": "getTextboxEditorValue"}, {"url": "YAHOO.widget.Slider.html#getThumb", "host": "YAHOO.widget.Slider", "name": "getThumb"}, {"url": "YAHOO.util.DragDrop.html#getTick", "host": "YAHOO.util.DragDrop", "name": "getTick"}, {"url": "YAHOO.util.Event.html#getTime", "host": "YAHOO.util.Event", "name": "getTime"}, {"url": "YAHOO.widget.Node.html#getToggleEl", "host": "YAHOO.widget.Node", "name": "getToggleEl"}, {"url": "YAHOO.widget.Node.html#getToggleElId", "host": "YAHOO.widget.Node", "name": "getToggleElId"}, {"url": "YAHOO.widget.Node.html#getToggleLink", "host": "YAHOO.widget.Node", "name": "getToggleLink"}, {"url": "ColumnEditor.html#getValue", "host": "ColumnEditor", "name": "getValue"}, {"url": "YAHOO.util.Attribute.html#getValue", "host": "YAHOO.util.Attribute", "name": "getValue"}, {"url": "YAHOO.widget.Slider.html#getValue", "host": "YAHOO.widget.Slider", "name": "getValue"}, {"url": "YAHOO.widget.SliderThumb.html#getValue", "host": "YAHOO.widget.SliderThumb", "name": "getValue"}, {"url": "YAHOO.env.html#getVersion", "host": "YAHOO.env", "name": "getVersion"}, {"url": "YAHOO.util.Dom.html#getViewportHeight", "host": "YAHOO.util.Dom", "name": "getViewportHeight"}, {"url": "YAHOO.util.Dom.html#getViewportWidth", "host": "YAHOO.util.Dom", "name": "getViewportWidth"}, {"url": "YAHOO.widget.DateMath.html#getWeekNumber", "host": "YAHOO.widget.DateMath", "name": "getWeekNumber"}, {"url": "YAHOO.util.Dom.html#getX", "host": "YAHOO.util.Dom", "name": "getX"}, {"url": "YAHOO.widget.Slider.html#getXValue", "host": "YAHOO.widget.Slider", "name": "getXValue"}, {"url": "YAHOO.widget.SliderThumb.html#getXValue", "host": "YAHOO.widget.SliderThumb", "name": "getXValue"}, {"url": "YAHOO.util.Dom.html#getXY", "host": "YAHOO.util.Dom", "name": "getXY"}, {"url": "YAHOO.util.Event.html#getXY", "host": "YAHOO.util.Event", "name": "getXY"}, {"url": "YAHOO.util.Dom.html#getY", "host": "YAHOO.util.Dom", "name": "getY"}, {"url": "YAHOO.widget.Slider.html#getYValue", "host": "YAHOO.widget.Slider", "name": "getYValue"}, {"url": "YAHOO.widget.SliderThumb.html#getYValue", "host": "YAHOO.widget.SliderThumb", "name": "getYValue"}, {"url": "YAHOO.widget.SliderThumb.html#_graduated", "host": "YAHOO.widget.SliderThumb", "name": "_graduated"}, {"url": "YAHOO.widget.MenuItem.html#groupIndex", "host": "YAHOO.widget.MenuItem", "name": "groupIndex"}, {"url": "YAHOO.util.DragDrop.html#groups", "host": "YAHOO.util.DragDrop", "name": "groups"}, {"url": "YAHOO.widget.Menu.html#GROUP_TITLE_TAG_NAME", "host": "YAHOO.widget.Menu", "name": "GROUP_TITLE_TAG_NAME"}, {"url": "YAHOO.widget.ContainerEffect.html#handleCompleteAnimateIn", "host": "YAHOO.widget.ContainerEffect", "name": "handleCompleteAnimateIn"}, {"url": "YAHOO.widget.ContainerEffect.html#handleCompleteAnimateOut", "host": "YAHOO.widget.ContainerEffect", "name": "handleCompleteAnimateOut"}, {"url": "YAHOO.util.DragDrop.html#handleElId", "host": "YAHOO.util.DragDrop", "name": "handleElId"}, {"url": "YAHOO.util.History.html#_handleFQStateChange", "host": "YAHOO.util.History", "name": "_handleFQStateChange"}, {"url": "YAHOO.util.DragDropMgr.html#handleIds", "host": "YAHOO.util.DragDropMgr", "name": "handleIds"}, {"url": "YAHOO.widget.Slider.html#handleKeyDown", "host": "YAHOO.widget.Slider", "name": "handleKeyDown"}, {"url": "YAHOO.widget.Slider.html#handleKeyPress", "host": "YAHOO.widget.Slider", "name": "handleKeyPress"}, {"url": "YAHOO.util.DragDrop.html#handleMouseDown", "host": "YAHOO.util.DragDrop", "name": "handleMouseDown"}, {"url": "YAHOO.util.DragDropMgr.html#handleMouseDown", "host": "YAHOO.util.DragDropMgr", "name": "handleMouseDown"}, {"url": "YAHOO.util.DragDropMgr.html#handleMouseMove", "host": "YAHOO.util.DragDropMgr", "name": "handleMouseMove"}, {"url": "YAHOO.util.DragDropMgr.html#handleMouseUp", "host": "YAHOO.util.DragDropMgr", "name": "handleMouseUp"}, {"url": "YAHOO.util.DragDrop.html#handleOnAvailable", "host": "YAHOO.util.DragDrop", "name": "handleOnAvailable"}, {"url": "YAHOO.util.Connect.html#handleReadyState", "host": "YAHOO.util.Connect", "name": "handleReadyState"}, {"url": "DataSource.html#handleResponse", "host": "DataSource", "name": "handleResponse"}, {"url": "YAHOO.widget.ContainerEffect.html#handleStartAnimateIn", "host": "YAHOO.widget.ContainerEffect", "name": "handleStartAnimateIn"}, {"url": "YAHOO.widget.ContainerEffect.html#handleStartAnimateOut", "host": "YAHOO.widget.ContainerEffect", "name": "handleStartAnimateOut"}, {"url": "YAHOO.widget.Slider.html#handleThumbChange", "host": "YAHOO.widget.Slider", "name": "handleThumbChange"}, {"url": "YAHOO.util.Connect.html#handleTransactionResponse", "host": "YAHOO.util.Connect", "name": "handleTransactionResponse"}, {"url": "YAHOO.widget.ContainerEffect.html#handleTweenAnimateIn", "host": "YAHOO.widget.ContainerEffect", "name": "handleTweenAnimateIn"}, {"url": "YAHOO.widget.ContainerEffect.html#handleTweenAnimateOut", "host": "YAHOO.widget.ContainerEffect", "name": "handleTweenAnimateOut"}, {"url": "YAHOO.util.DragDropMgr.html#handleWasClicked", "host": "YAHOO.util.DragDropMgr", "name": "handleWasClicked"}, {"url": "YAHOO.util.Element.html#hasChildNodes", "host": "YAHOO.util.Element", "name": "hasChildNodes"}, {"url": "YAHOO.widget.Node.html#hasChildren", "host": "YAHOO.widget.Node", "name": "hasChildren"}, {"url": "YAHOO.util.Dom.html#hasClass", "host": "YAHOO.util.Dom", "name": "hasClass"}, {"url": "YAHOO.util.Element.html#hasClass", "host": "YAHOO.util.Element", "name": "hasClass"}, {"url": "YAHOO.util.Connect.html#_has_default_header", "host": "YAHOO.util.Connect", "name": "_has_default_header"}, {"url": "YAHOO.util.EventProvider.html#hasEvent", "host": "YAHOO.util.EventProvider", "name": "hasEvent"}, {"url": "YAHOO.widget.Menu.html#hasFocus", "host": "YAHOO.widget.Menu", "name": "hasFocus"}, {"url": "YAHOO.widget.MenuItem.html#hasFocus", "host": "YAHOO.widget.MenuItem", "name": "hasFocus"}, {"url": "YAHOO.widget.Button.html#hasFocus", "host": "YAHOO.widget.Button", "name": "hasFocus"}, {"url": "YAHOO.util.Connect.html#_has_http_headers", "host": "YAHOO.util.Connect", "name": "_has_http_headers"}, {"url": "YAHOO.widget.Node.html#hasIcon", "host": "YAHOO.widget.Node", "name": "hasIcon"}, {"url": "YAHOO.widget.Button.html#_hasKeyEventHandlers", "host": "YAHOO.widget.Button", "name": "_hasKeyEventHandlers"}, {"url": "YAHOO.widget.Button.html#_hasMouseEventHandlers", "host": "YAHOO.widget.Button", "name": "_hasMouseEventHandlers"}, {"url": "YAHOO.util.DragDrop.html#hasOuterHandles", "host": "YAHOO.util.DragDrop", "name": "hasOuterHandles"}, {"url": "YAHOO.lang.html#hasOwnProperty", "host": "YAHOO.lang", "name": "hasOwnProperty"}, {"url": "YAHOO.util.Connect.html#_hasSubmitListener", "host": "YAHOO.util.Connect", "name": "_hasSubmitListener"}, {"url": "DataTable.html#headCellClickEvent", "host": "DataTable", "name": "headCellClickEvent"}, {"url": "DataTable.html#headCellDoubleclickEvent", "host": "DataTable", "name": "headCellDoubleclickEvent"}, {"url": "DataTable.html#headCellMousedownEvent", "host": "DataTable", "name": "headCellMousedownEvent"}, {"url": "DataTable.html#headCellMouseoutEvent", "host": "DataTable", "name": "headCellMouseoutEvent"}, {"url": "DataTable.html#headCellMouseoverEvent", "host": "DataTable", "name": "headCellMouseoverEvent"}, {"url": "YAHOO.widget.Module.html#header", "host": "YAHOO.widget.Module", "name": "header"}, {"url": "ColumnSet.html#headers", "host": "ColumnSet", "name": "headers"}, {"url": "YAHOO.widget.Overlay.html#height", "host": "YAHOO.widget.Overlay", "name": "height"}, {"url": "YAHOO.widget.LogReader.html#height", "host": "YAHOO.widget.LogReader", "name": "height"}, {"url": "YAHOO.widget.MenuItem.html#helptext", "host": "YAHOO.widget.MenuItem", "name": "helptext"}, {"url": "YAHOO.widget.Button.html#_hiddenField", "host": "YAHOO.widget.Button", "name": "_hiddenField"}, {"url": "ColumnEditor.html#hide", "host": "ColumnEditor", "name": "hide"}, {"url": "YAHOO.widget.Module.html#hide", "host": "YAHOO.widget.Module", "name": "hide"}, {"url": "YAHOO.widget.Calendar.html#hide", "host": "YAHOO.widget.Calendar", "name": "hide"}, {"url": "YAHOO.widget.LogReader.html#hide", "host": "YAHOO.widget.LogReader", "name": "hide"}, {"url": "YAHOO.widget.OverlayManager.html#hideAll", "host": "YAHOO.widget.OverlayManager", "name": "hideAll"}, {"url": "YAHOO.widget.Calendar.html#HIDE_BLANK_WEEKS", "host": "YAHOO.widget.Calendar", "name": "HIDE_BLANK_WEEKS"}, {"url": "YAHOO.widget.CalendarGroup.html#HIDE_BLANK_WEEKS", "host": "YAHOO.widget.CalendarGroup", "name": "HIDE_BLANK_WEEKS"}, {"url": "YAHOO.widget.LogReader.html#hideCategory", "host": "YAHOO.widget.LogReader", "name": "hideCategory"}, {"url": "YAHOO.widget.Node.html#hideChildren", "host": "YAHOO.widget.Node", "name": "hideChildren"}, {"url": "YAHOO.widget.Tooltip.html#hidedelay", "host": "YAHOO.widget.Tooltip", "name": "hidedelay"}, {"url": "YAHOO.widget.Menu.html#hidedelay", "host": "YAHOO.widget.Menu", "name": "hidedelay"}, {"url": "YAHOO.widget.Module.html#hideEvent", "host": "YAHOO.widget.Module", "name": "hideEvent"}, {"url": "YAHOO.widget.Overlay.html#hideIframe", "host": "YAHOO.widget.Overlay", "name": "hideIframe"}, {"url": "YAHOO.widget.Overlay.html#hideMacGeckoScrollbars", "host": "YAHOO.widget.Overlay", "name": "hideMacGeckoScrollbars"}, {"url": "YAHOO.widget.Panel.html#hideMask", "host": "YAHOO.widget.Panel", "name": "hideMask"}, {"url": "YAHOO.widget.Panel.html#hideMaskEvent", "host": "YAHOO.widget.Panel", "name": "hideMaskEvent"}, {"url": "YAHOO.widget.Button.html#_hideMenu", "host": "YAHOO.widget.Button", "name": "_hideMenu"}, {"url": "YAHOO.widget.LogReader.html#hideSource", "host": "YAHOO.widget.LogReader", "name": "hideSource"}, {"url": "DataTable.html#hideTableMessage", "host": "DataTable", "name": "hideTableMessage"}, {"url": "DataTable.html#hideTableMessages", "host": "DataTable", "name": "hideTableMessages"}, {"url": "YAHOO.widget.MenuManager.html#hideVisible", "host": "YAHOO.widget.MenuManager", "name": "hideVisible"}, {"url": "DataTable.html#highlight", "host": "DataTable", "name": "highlight"}, {"url": "YAHOO.widget.AutoComplete.html#highlightClassName", "host": "YAHOO.widget.AutoComplete", "name": "highlightClassName"}, {"url": "DataTable.html#highlightEvent", "host": "DataTable", "name": "highlightEvent"}, {"url": "YAHOO.widget.Button.html#href", "host": "YAHOO.widget.Button", "name": "href"}, {"url": "YAHOO.widget.Tab.html#href", "host": "YAHOO.widget.Tab", "name": "href"}, {"url": "YAHOO.widget.Node.html#href", "host": "YAHOO.widget.Node", "name": "href"}, {"url": "YAHOO.widget.LogReader.html#html2Text", "host": "YAHOO.widget.LogReader", "name": "html2Text"}, {"url": "YAHOO.util.Connect.html#_http_header", "host": "YAHOO.util.Connect", "name": "_http_header"}, {"url": "YAHOO.widget.SimpleDialog.html#icon", "host": "YAHOO.widget.SimpleDialog", "name": "icon"}, {"url": "YAHOO.widget.Node.html#iconMode", "host": "YAHOO.widget.Node", "name": "iconMode"}, {"url": "Column.html#_id", "host": "Column", "name": "_id"}, {"url": "YAHOO.widget.Module.html#id", "host": "YAHOO.widget.Module", "name": "id"}, {"url": "YAHOO.util.DragDrop.html#id", "host": "YAHOO.util.DragDrop", "name": "id"}, {"url": "YAHOO.util.DragDropMgr.ElementWrapper.html#id", "host": "YAHOO.util.DragDropMgr.ElementWrapper", "name": "id"}, {"url": "YAHOO.widget.MenuItem.html#id", "host": "YAHOO.widget.MenuItem", "name": "id"}, {"url": "YAHOO.widget.Calendar.html#id", "host": "YAHOO.widget.Calendar", "name": "id"}, {"url": "YAHOO.widget.CalendarGroup.html#id", "host": "YAHOO.widget.CalendarGroup", "name": "id"}, {"url": "YAHOO.widget.TreeView.html#id", "host": "YAHOO.widget.TreeView", "name": "id"}, {"url": "YAHOO.util.DragDropMgr.html#ids", "host": "YAHOO.util.DragDropMgr", "name": "ids"}, {"url": "YAHOO.widget.Overlay.html#iframe", "host": "YAHOO.widget.Overlay", "name": "iframe"}, {"url": "YAHOO.widget.Calendar.html#iframe", "host": "YAHOO.widget.Calendar", "name": "iframe"}, {"url": "YAHOO.widget.CalendarGroup.html#iframe", "host": "YAHOO.widget.CalendarGroup", "name": "iframe"}, {"url": "YAHOO.util.History.html#_iframe", "host": "YAHOO.util.History", "name": "_iframe"}, {"url": "YAHOO.widget.AutoComplete.html#_iFrameSrc", "host": "YAHOO.widget.AutoComplete", "name": "_iFrameSrc"}, {"url": "YAHOO.widget.Module.html#imageRoot", "host": "YAHOO.widget.Module", "name": "imageRoot"}, {"url": "Column.html#_index", "host": "Column", "name": "_index"}, {"url": "YAHOO.widget.MenuItem.html#index", "host": "YAHOO.widget.MenuItem", "name": "index"}, {"url": "YAHOO.widget.Calendar.html#index", "host": "YAHOO.widget.Calendar", "name": "index"}, {"url": "YAHOO.widget.Node.html#index", "host": "YAHOO.widget.Node", "name": "index"}, {"url": "YAHOO.widget.Calendar.html#_indexOfSelectedFieldArray", "host": "YAHOO.widget.Calendar", "name": "_indexOfSelectedFieldArray"}, {"url": "YAHOO.util.Dom.html#inDocument", "host": "YAHOO.util.Dom", "name": "inDocument"}, {"url": "YAHOO.util.Config.html#init", "host": "YAHOO.util.Config", "name": "init"}, {"url": "YAHOO.widget.ContainerEffect.html#init", "host": "YAHOO.widget.ContainerEffect", "name": "init"}, {"url": "YAHOO.widget.Dialog.html#init", "host": "YAHOO.widget.Dialog", "name": "init"}, {"url": "YAHOO.widget.Module.html#init", "host": "YAHOO.widget.Module", "name": "init"}, {"url": "YAHOO.widget.Overlay.html#init", "host": "YAHOO.widget.Overlay", "name": "init"}, {"url": "YAHOO.widget.OverlayManager.html#init", "host": "YAHOO.widget.OverlayManager", "name": "init"}, {"url": "YAHOO.widget.Panel.html#init", "host": "YAHOO.widget.Panel", "name": "init"}, {"url": "YAHOO.widget.SimpleDialog.html#init", "host": "YAHOO.widget.SimpleDialog", "name": "init"}, {"url": "YAHOO.widget.Tooltip.html#init", "host": "YAHOO.widget.Tooltip", "name": "init"}, {"url": "YAHOO.util.DragDrop.html#init", "host": "YAHOO.util.DragDrop", "name": "init"}, {"url": "YAHOO.util.DragDropMgr.html#init", "host": "YAHOO.util.DragDropMgr", "name": "init"}, {"url": "YAHOO.widget.ContextMenu.html#init", "host": "YAHOO.widget.ContextMenu", "name": "init"}, {"url": "YAHOO.widget.ContextMenuItem.html#init", "host": "YAHOO.widget.ContextMenuItem", "name": "init"}, {"url": "YAHOO.widget.Menu.html#init", "host": "YAHOO.widget.Menu", "name": "init"}, {"url": "YAHOO.widget.Menubar.html#init", "host": "YAHOO.widget.Menubar", "name": "init"}, {"url": "YAHOO.widget.MenuBarItem.html#init", "host": "YAHOO.widget.MenuBarItem", "name": "init"}, {"url": "YAHOO.widget.MenuItem.html#init", "host": "YAHOO.widget.MenuItem", "name": "init"}, {"url": "YAHOO.widget.Button.html#init", "host": "YAHOO.widget.Button", "name": "init"}, {"url": "YAHOO.widget.ButtonGroup.html#init", "host": "YAHOO.widget.ButtonGroup", "name": "init"}, {"url": "YAHOO.html#init", "host": "YAHOO", "name": "init"}, {"url": "YAHOO.widget.DataSource.html#_init", "host": "YAHOO.widget.DataSource", "name": "_init"}, {"url": "YAHOO.util.Anim.html#init", "host": "YAHOO.util.Anim", "name": "init"}, {"url": "YAHOO.widget.Calendar.html#init", "host": "YAHOO.widget.Calendar", "name": "init"}, {"url": "YAHOO.widget.CalendarGroup.html#init", "host": "YAHOO.widget.CalendarGroup", "name": "init"}, {"url": "YAHOO.widget.Node.html#init", "host": "YAHOO.widget.Node", "name": "init"}, {"url": "YAHOO.widget.TreeView.html#init", "host": "YAHOO.widget.TreeView", "name": "init"}, {"url": "YAHOO.widget.Button.html#initAttributes", "host": "YAHOO.widget.Button", "name": "initAttributes"}, {"url": "YAHOO.widget.ButtonGroup.html#initAttributes", "host": "YAHOO.widget.ButtonGroup", "name": "initAttributes"}, {"url": "YAHOO.util.Element.html#initAttributes", "host": "YAHOO.util.Element", "name": "initAttributes"}, {"url": "YAHOO.widget.Tab.html#initAttributes", "host": "YAHOO.widget.Tab", "name": "initAttributes"}, {"url": "YAHOO.widget.TabView.html#initAttributes", "host": "YAHOO.widget.TabView", "name": "initAttributes"}, {"url": "YAHOO.widget.Button.html#initConfig", "host": "YAHOO.widget.Button", "name": "initConfig"}, {"url": "YAHOO.widget.AutoComplete.html#_initContainer", "host": "YAHOO.widget.AutoComplete", "name": "_initContainer"}, {"url": "YAHOO.widget.AutoComplete.html#_initContainerHelpers", "host": "YAHOO.widget.AutoComplete", "name": "_initContainerHelpers"}, {"url": "YAHOO.widget.HTMLNode.html#initContent", "host": "YAHOO.widget.HTMLNode", "name": "initContent"}, {"url": "YAHOO.widget.Dialog.html#initDefaultConfig", "host": "YAHOO.widget.Dialog", "name": "initDefaultConfig"}, {"url": "YAHOO.widget.Module.html#initDefaultConfig", "host": "YAHOO.widget.Module", "name": "initDefaultConfig"}, {"url": "YAHOO.widget.Overlay.html#initDefaultConfig", "host": "YAHOO.widget.Overlay", "name": "initDefaultConfig"}, {"url": "YAHOO.widget.OverlayManager.html#initDefaultConfig", "host": "YAHOO.widget.OverlayManager", "name": "initDefaultConfig"}, {"url": "YAHOO.widget.Panel.html#initDefaultConfig", "host": "YAHOO.widget.Panel", "name": "initDefaultConfig"}, {"url": "YAHOO.widget.SimpleDialog.html#initDefaultConfig", "host": "YAHOO.widget.SimpleDialog", "name": "initDefaultConfig"}, {"url": "YAHOO.widget.Tooltip.html#initDefaultConfig", "host": "YAHOO.widget.Tooltip", "name": "initDefaultConfig"}, {"url": "YAHOO.widget.ContextMenu.html#initDefaultConfig", "host": "YAHOO.widget.ContextMenu", "name": "initDefaultConfig"}, {"url": "YAHOO.widget.Menu.html#initDefaultConfig", "host": "YAHOO.widget.Menu", "name": "initDefaultConfig"}, {"url": "YAHOO.widget.Menubar.html#initDefaultConfig", "host": "YAHOO.widget.Menubar", "name": "initDefaultConfig"}, {"url": "YAHOO.widget.MenuItem.html#initDefaultConfig", "host": "YAHOO.widget.MenuItem", "name": "initDefaultConfig"}, {"url": "YAHOO.widget.Module.html#initEvent", "host": "YAHOO.widget.Module", "name": "initEvent"}, {"url": "YAHOO.widget.Dialog.html#initEvents", "host": "YAHOO.widget.Dialog", "name": "initEvents"}, {"url": "YAHOO.widget.Module.html#initEvents", "host": "YAHOO.widget.Module", "name": "initEvents"}, {"url": "YAHOO.widget.Overlay.html#initEvents", "host": "YAHOO.widget.Overlay", "name": "initEvents"}, {"url": "YAHOO.widget.Panel.html#initEvents", "host": "YAHOO.widget.Panel", "name": "initEvents"}, {"url": "YAHOO.widget.ContextMenu.html#initEvents", "host": "YAHOO.widget.ContextMenu", "name": "initEvents"}, {"url": "YAHOO.widget.Menu.html#initEvents", "host": "YAHOO.widget.Menu", "name": "initEvents"}, {"url": "YAHOO.widget.Calendar.html#initEvents", "host": "YAHOO.widget.Calendar", "name": "initEvents"}, {"url": "YAHOO.widget.CalendarGroup.html#initEvents", "host": "YAHOO.widget.CalendarGroup", "name": "initEvents"}, {"url": "YAHOO.util.DDProxy.html#initFrame", "host": "YAHOO.util.DDProxy", "name": "initFrame"}, {"url": "DataTable.html#_initHead", "host": "DataTable", "name": "_initHead"}, {"url": "DataTable.html#_initHeadCell", "host": "DataTable", "name": "_initHeadCell"}, {"url": "YAHOO.util.Connect.html#initHeader", "host": "YAHOO.util.Connect", "name": "initHeader"}, {"url": "YAHOO.util.Config.html#initialConfig", "host": "YAHOO.util.Config", "name": "initialConfig"}, {"url": "YAHOO.util.Attribute.html#_initialConfig", "host": "YAHOO.util.Attribute", "name": "_initialConfig"}, {"url": "YAHOO.util.History.html#_initialize", "host": "YAHOO.util.History", "name": "_initialize"}, {"url": "YAHOO.util.History.html#initialize", "host": "YAHOO.util.History", "name": "initialize"}, {"url": "YAHOO.util.DragDropMgr.html#initialized", "host": "YAHOO.util.DragDropMgr", "name": "initialized"}, {"url": "YAHOO.util.History.html#_initialized", "host": "YAHOO.util.History", "name": "_initialized"}, {"url": "DataTable.html#initialRequest", "host": "DataTable", "name": "initialRequest"}, {"url": "YAHOO.widget.AutoComplete.html#_initList", "host": "YAHOO.widget.AutoComplete", "name": "_initList"}, {"url": "YAHOO.widget.AutoComplete.html#_initListItem", "host": "YAHOO.widget.AutoComplete", "name": "_initListItem"}, {"url": "DataTable.html#_initPaginator", "host": "DataTable", "name": "_initPaginator"}, {"url": "YAHOO.widget.AutoComplete.html#__initProps", "host": "YAHOO.widget.AutoComplete", "name": "__initProps"}, {"url": "YAHOO.widget.Module.html#initResizeMonitor", "host": "YAHOO.widget.Module", "name": "initResizeMonitor"}, {"url": "YAHOO.widget.Slider.html#initSlider", "host": "YAHOO.widget.Slider", "name": "initSlider"}, {"url": "YAHOO.widget.SliderThumb.html#initSlider", "host": "YAHOO.widget.SliderThumb", "name": "initSlider"}, {"url": "YAHOO.widget.Calendar.html#initStyles", "host": "YAHOO.widget.Calendar", "name": "initStyles"}, {"url": "YAHOO.widget.Menu.html#_initSubTree", "host": "YAHOO.widget.Menu", "name": "_initSubTree"}, {"url": "YAHOO.widget.MenuItem.html#_initSubTree", "host": "YAHOO.widget.MenuItem", "name": "_initSubTree"}, {"url": "DataTable.html#_initTable", "host": "DataTable", "name": "_initTable"}, {"url": "YAHOO.util.DragDrop.html#initTarget", "host": "YAHOO.util.DragDrop", "name": "initTarget"}, {"url": "YAHOO.widget.Slider.html#initThumb", "host": "YAHOO.widget.Slider", "name": "initThumb"}, {"url": "ColumnEditor.html#input", "host": "ColumnEditor", "name": "input"}, {"url": "RecordSet.html#insert", "host": "RecordSet", "name": "insert"}, {"url": "YAHOO.widget.Node.html#insertAfter", "host": "YAHOO.widget.Node", "name": "insertAfter"}, {"url": "YAHOO.util.Element.html#insertBefore", "host": "YAHOO.util.Element", "name": "insertBefore"}, {"url": "YAHOO.widget.Node.html#insertBefore", "host": "YAHOO.widget.Node", "name": "insertBefore"}, {"url": "YAHOO.widget.Menu.html#insertItem", "host": "YAHOO.widget.Menu", "name": "insertItem"}, {"url": "DataTable.html#insertRows", "host": "DataTable", "name": "insertRows"}, {"url": "YAHOO.util.DragDropMgr.html#interactionInfo", "host": "YAHOO.util.DragDropMgr", "name": "interactionInfo"}, {"url": "YAHOO.util.DragDropMgr.html#INTERSECT", "host": "YAHOO.util.DragDropMgr", "name": "INTERSECT"}, {"url": "YAHOO.util.Region.html#intersect", "host": "YAHOO.util.Region", "name": "intersect"}, {"url": "YAHOO.util.Event.html#_interval", "host": "YAHOO.util.Event", "name": "_interval"}, {"url": "YAHOO.util.DragDrop.html#invalidHandleClasses", "host": "YAHOO.util.DragDrop", "name": "invalidHandleClasses"}, {"url": "YAHOO.util.DragDrop.html#invalidHandleIds", "host": "YAHOO.util.DragDrop", "name": "invalidHandleIds"}, {"url": "YAHOO.util.DragDrop.html#invalidHandleTypes", "host": "YAHOO.util.DragDrop", "name": "invalidHandleTypes"}, {"url": "YAHOO.widget.Button.html#_isActivationKey", "host": "YAHOO.widget.Button", "name": "_isActivationKey"}, {"url": "YAHOO.widget.Button.html#isActive", "host": "YAHOO.widget.Button", "name": "isActive"}, {"url": "YAHOO.util.Dom.html#isAncestor", "host": "YAHOO.util.Dom", "name": "isAncestor"}, {"url": "YAHOO.util.Anim.html#isAnimated", "host": "YAHOO.util.Anim", "name": "isAnimated"}, {"url": "YAHOO.lang.html#isArray", "host": "YAHOO.lang", "name": "isArray"}, {"url": "YAHOO.lang.html#isBoolean", "host": "YAHOO.lang", "name": "isBoolean"}, {"url": "DataSource.html#isCacheHit", "host": "DataSource", "name": "isCacheHit"}, {"url": "YAHOO.util.Connect.html#isCallInProgress", "host": "YAHOO.util.Connect", "name": "isCallInProgress"}, {"url": "YAHOO.widget.Node.html#isChildOf", "host": "YAHOO.widget.Node", "name": "isChildOf"}, {"url": "YAHOO.widget.LogReader.html#isCollapsed", "host": "YAHOO.widget.LogReader", "name": "isCollapsed"}, {"url": "YAHOO.widget.AutoComplete.html#isContainerOpen", "host": "YAHOO.widget.AutoComplete", "name": "isContainerOpen"}, {"url": "YAHOO.widget.Calendar.html#isDateOOM", "host": "YAHOO.widget.Calendar", "name": "isDateOOM"}, {"url": "YAHOO.util.DragDropMgr.html#isDragDrop", "host": "YAHOO.util.DragDropMgr", "name": "isDragDrop"}, {"url": "YAHOO.widget.Node.html#isDynamic", "host": "YAHOO.widget.Node", "name": "isDynamic"}, {"url": "DataTable.html#isEmpty", "host": "DataTable", "name": "isEmpty"}, {"url": "YAHOO.util.Connect.html#_isFileUpload", "host": "YAHOO.util.Connect", "name": "_isFileUpload"}, {"url": "YAHOO.util.Connect.html#_isFormSubmit", "host": "YAHOO.util.Connect", "name": "_isFormSubmit"}, {"url": "YAHOO.lang.html#isFunction", "host": "YAHOO.lang", "name": "isFunction"}, {"url": "YAHOO.util.DragDropMgr.html#isHandle", "host": "YAHOO.util.DragDropMgr", "name": "isHandle"}, {"url": "YAHOO.widget.SliderThumb.html#_isHoriz", "host": "YAHOO.widget.SliderThumb", "name": "_isHoriz"}, {"url": "YAHOO.util.Event.html#isIE", "host": "YAHOO.util.Event", "name": "isIE"}, {"url": "YAHOO.widget.AutoComplete.html#_isIgnoreKey", "host": "YAHOO.widget.AutoComplete", "name": "_isIgnoreKey"}, {"url": "YAHOO.util.DragDropMgr.html#isLegalTarget", "host": "YAHOO.util.DragDropMgr", "name": "isLegalTarget"}, {"url": "DataTable.html#isLoading", "host": "DataTable", "name": "isLoading"}, {"url": "YAHOO.widget.Node.html#isLoading", "host": "YAHOO.widget.Node", "name": "isLoading"}, {"url": "YAHOO.util.DragDrop.html#isLocked", "host": "YAHOO.util.DragDrop", "name": "isLocked"}, {"url": "YAHOO.util.DragDropMgr.html#isLocked", "host": "YAHOO.util.DragDropMgr", "name": "isLocked"}, {"url": "YAHOO.widget.DateMath.html#isMonthOverlapWeek", "host": "YAHOO.widget.DateMath", "name": "isMonthOverlapWeek"}, {"url": "YAHOO.widget.Logger.html#_isNewCategory", "host": "YAHOO.widget.Logger", "name": "_isNewCategory"}, {"url": "YAHOO.widget.Logger.html#_isNewSource", "host": "YAHOO.widget.Logger", "name": "_isNewSource"}, {"url": "YAHOO.lang.html#isNull", "host": "YAHOO.lang", "name": "isNull"}, {"url": "YAHOO.lang.html#isNumber", "host": "YAHOO.lang", "name": "isNumber"}, {"url": "YAHOO.lang.html#isObject", "host": "YAHOO.lang", "name": "isObject"}, {"url": "YAHOO.util.DragDropMgr.html#isOverTarget", "host": "YAHOO.util.DragDropMgr", "name": "isOverTarget"}, {"url": "YAHOO.widget.LogReader.html#isPaused", "host": "YAHOO.widget.LogReader", "name": "isPaused"}, {"url": "YAHOO.widget.Node.html#isRoot", "host": "YAHOO.widget.Node", "name": "isRoot"}, {"url": "YAHOO.util.Event.html#isSafari", "host": "YAHOO.util.Event", "name": "isSafari"}, {"url": "YAHOO.widget.Module.html#isSecure", "host": "YAHOO.widget.Module", "name": "isSecure"}, {"url": "DataTable.html#isSelected", "host": "DataTable", "name": "isSelected"}, {"url": "YAHOO.widget.Button.html#_isSplitButtonOptionKey", "host": "YAHOO.widget.Button", "name": "_isSplitButtonOptionKey"}, {"url": "YAHOO.lang.html#isString", "host": "YAHOO.lang", "name": "isString"}, {"url": "YAHOO.util.DragDrop.html#isTarget", "host": "YAHOO.util.DragDrop", "name": "isTarget"}, {"url": "YAHOO.widget.Slider.html#isTarget", "host": "YAHOO.widget.Slider", "name": "isTarget"}, {"url": "YAHOO.widget.SliderThumb.html#isTarget", "host": "YAHOO.widget.SliderThumb", "name": "isTarget"}, {"url": "YAHOO.util.DragDropMgr.html#isTypeOfDD", "host": "YAHOO.util.DragDropMgr", "name": "isTypeOfDD"}, {"url": "YAHOO.lang.html#isUndefined", "host": "YAHOO.lang", "name": "isUndefined"}, {"url": "YAHOO.widget.TVAnim.html#isValid", "host": "YAHOO.widget.TVAnim", "name": "isValid"}, {"url": "YAHOO.util.Event.html#_isValidCollection", "host": "YAHOO.util.Event", "name": "_isValidCollection"}, {"url": "YAHOO.util.DragDrop.html#isValidHandleChild", "host": "YAHOO.util.DragDrop", "name": "isValidHandleChild"}, {"url": "YAHOO.widget.DateMath.html#isYearOverlapWeek", "host": "YAHOO.widget.DateMath", "name": "isYearOverlapWeek"}, {"url": "YAHOO.widget.Menu.html#itemAddedEvent", "host": "YAHOO.widget.Menu", "name": "itemAddedEvent"}, {"url": "YAHOO.widget.AutoComplete.html#itemArrowFromEvent", "host": "YAHOO.widget.AutoComplete", "name": "itemArrowFromEvent"}, {"url": "YAHOO.widget.AutoComplete.html#itemArrowToEvent", "host": "YAHOO.widget.AutoComplete", "name": "itemArrowToEvent"}, {"url": "YAHOO.widget.Menu.html#itemData", "host": "YAHOO.widget.Menu", "name": "itemData"}, {"url": "YAHOO.widget.AutoComplete.html#itemMouseOutEvent", "host": "YAHOO.widget.AutoComplete", "name": "itemMouseOutEvent"}, {"url": "YAHOO.widget.AutoComplete.html#itemMouseOverEvent", "host": "YAHOO.widget.AutoComplete", "name": "itemMouseOverEvent"}, {"url": "YAHOO.widget.Menu.html#itemRemovedEvent", "host": "YAHOO.widget.Menu", "name": "itemRemovedEvent"}, {"url": "YAHOO.widget.AutoComplete.html#itemSelectEvent", "host": "YAHOO.widget.AutoComplete", "name": "itemSelectEvent"}, {"url": "YAHOO.widget.Menu.html#ITEM_TYPE", "host": "YAHOO.widget.Menu", "name": "ITEM_TYPE"}, {"url": "YAHOO.widget.AutoComplete.html#_jumpSelection", "host": "YAHOO.widget.AutoComplete", "name": "_jumpSelection"}, {"url": "Column.html#key", "host": "Column", "name": "key"}, {"url": "YAHOO.widget.Menu.html#keyDownEvent", "host": "YAHOO.widget.Menu", "name": "keyDownEvent"}, {"url": "YAHOO.widget.MenuItem.html#keyDownEvent", "host": "YAHOO.widget.MenuItem", "name": "keyDownEvent"}, {"url": "YAHOO.widget.Slider.html#keyIncrement", "host": "YAHOO.widget.Slider", "name": "keyIncrement"}, {"url": "YAHOO.widget.Panel.html#keylisteners", "host": "YAHOO.widget.Panel", "name": "keylisteners"}, {"url": "YAHOO.widget.Menu.html#keyPressEvent", "host": "YAHOO.widget.Menu", "name": "keyPressEvent"}, {"url": "YAHOO.widget.MenuItem.html#keyPressEvent", "host": "YAHOO.widget.MenuItem", "name": "keyPressEvent"}, {"url": "ColumnSet.html#keys", "host": "ColumnSet", "name": "keys"}, {"url": "YAHOO.widget.Menu.html#keyUpEvent", "host": "YAHOO.widget.Menu", "name": "keyUpEvent"}, {"url": "YAHOO.widget.MenuItem.html#keyUpEvent", "host": "YAHOO.widget.MenuItem", "name": "keyUpEvent"}, {"url": "YAHOO.widget.Button.html#label", "host": "YAHOO.widget.Button", "name": "label"}, {"url": "YAHOO.widget.Tab.html#label", "host": "YAHOO.widget.Tab", "name": "label"}, {"url": "YAHOO.widget.TextNode.html#label", "host": "YAHOO.widget.TextNode", "name": "label"}, {"url": "YAHOO.widget.Tab.html#labelChange", "host": "YAHOO.widget.Tab", "name": "labelChange"}, {"url": "YAHOO.widget.TreeView.html#labelClick", "host": "YAHOO.widget.TreeView", "name": "labelClick"}, {"url": "YAHOO.widget.Tab.html#labelEl", "host": "YAHOO.widget.Tab", "name": "labelEl"}, {"url": "YAHOO.widget.TextNode.html#labelElId", "host": "YAHOO.widget.TextNode", "name": "labelElId"}, {"url": "YAHOO.widget.Tab.html#LABEL_INNER_TAGNAME", "host": "YAHOO.widget.Tab", "name": "LABEL_INNER_TAGNAME"}, {"url": "YAHOO.widget.TextNode.html#labelStyle", "host": "YAHOO.widget.TextNode", "name": "labelStyle"}, {"url": "YAHOO.util.Event.html#lastError", "host": "YAHOO.util.Event", "name": "lastError"}, {"url": "YAHOO.widget.Logger.html#_lastTime", "host": "YAHOO.widget.Logger", "name": "_lastTime"}, {"url": "YAHOO.widget.LogReader.html#_lastTime", "host": "YAHOO.widget.LogReader", "name": "_lastTime"}, {"url": "YAHOO.widget.Menu.html#lazyLoad", "host": "YAHOO.widget.Menu", "name": "lazyLoad"}, {"url": "YAHOO.util.Region.html#left", "host": "YAHOO.util.Region", "name": "left"}, {"url": "YAHOO.widget.LogReader.html#left", "host": "YAHOO.widget.LogReader", "name": "left"}, {"url": "YAHOO.util.Event.html#legacyEvents", "host": "YAHOO.util.Event", "name": "legacyEvents"}, {"url": "YAHOO.util.Event.html#legacyHandlers", "host": "YAHOO.util.Event", "name": "legacyHandlers"}, {"url": "YAHOO.util.Event.html#legacyMap", "host": "YAHOO.util.Event", "name": "legacyMap"}, {"url": "RecordSet.html#_length", "host": "RecordSet", "name": "_length"}, {"url": "YAHOO_config.html#listener", "host": "YAHOO_config", "name": "listener"}, {"url": "YAHOO.env.html#listeners", "host": "YAHOO.env", "name": "listeners"}, {"url": "YAHOO.util.Event.html#listeners", "host": "YAHOO.util.Event", "name": "listeners"}, {"url": "DataSource.html#liveData", "host": "DataSource", "name": "liveData"}, {"url": "YAHOO.util.Event.html#_load", "host": "YAHOO.util.Event", "name": "_load"}, {"url": "YAHOO.widget.Node.html#loadComplete", "host": "YAHOO.widget.Node", "name": "loadComplete"}, {"url": "YAHOO.util.Event.html#loadComplete", "host": "YAHOO.util.Event", "name": "loadComplete"}, {"url": "YAHOO.widget.Tab.html#loadHandler", "host": "YAHOO.widget.Tab", "name": "loadHandler"}, {"url": "YAHOO.widget.Tab.html#LOADING_CLASSNAME", "host": "YAHOO.widget.Tab", "name": "LOADING_CLASSNAME"}, {"url": "YAHOO.widget.Tab.html#loadMethod", "host": "YAHOO.widget.Tab", "name": "loadMethod"}, {"url": "YAHOO.widget.Calendar.html#Locale", "host": "YAHOO.widget.Calendar", "name": "Locale"}, {"url": "YAHOO.widget.CalendarGroup.html#Locale", "host": "YAHOO.widget.CalendarGroup", "name": "Locale"}, {"url": "YAHOO.widget.Calendar.html#LOCALE_MONTHS", "host": "YAHOO.widget.Calendar", "name": "LOCALE_MONTHS"}, {"url": "YAHOO.widget.CalendarGroup.html#LOCALE_MONTHS", "host": "YAHOO.widget.CalendarGroup", "name": "LOCALE_MONTHS"}, {"url": "YAHOO.widget.Calendar.html#LOCALE_WEEKDAYS", "host": "YAHOO.widget.Calendar", "name": "LOCALE_WEEKDAYS"}, {"url": "YAHOO.widget.CalendarGroup.html#LOCALE_WEEKDAYS", "host": "YAHOO.widget.CalendarGroup", "name": "LOCALE_WEEKDAYS"}, {"url": "YAHOO.util.DragDropMgr.html#locationCache", "host": "YAHOO.util.DragDropMgr", "name": "locationCache"}, {"url": "YAHOO.util.DragDrop.html#lock", "host": "YAHOO.util.DragDrop", "name": "lock"}, {"url": "YAHOO.util.DragDropMgr.html#lock", "host": "YAHOO.util.DragDropMgr", "name": "lock"}, {"url": "YAHOO.widget.Slider.html#lock", "host": "YAHOO.widget.Slider", "name": "lock"}, {"url": "YAHOO.util.DragDrop.html#locked", "host": "YAHOO.util.DragDrop", "name": "locked"}, {"url": "YAHOO.util.DragDropMgr.html#locked", "host": "YAHOO.util.DragDropMgr", "name": "locked"}, {"url": "YAHOO.widget.TreeView.html#locked", "host": "YAHOO.widget.TreeView", "name": "locked"}, {"url": "YAHOO.html#log", "host": "YAHOO", "name": "log"}, {"url": "YAHOO.widget.Logger.html#log", "host": "YAHOO.widget.Logger", "name": "log"}, {"url": "YAHOO.widget.LogWriter.html#log", "host": "YAHOO.widget.LogWriter", "name": "log"}, {"url": "YAHOO.widget.Logger.html#loggerEnabled", "host": "YAHOO.widget.Logger", "name": "loggerEnabled"}, {"url": "YAHOO.widget.LogReader.html#logReaderEnabled", "host": "YAHOO.widget.LogReader", "name": "logReaderEnabled"}, {"url": "YAHOO.widget.Logger.html#logResetEvent", "host": "YAHOO.widget.Logger", "name": "logResetEvent"}, {"url": "YAHOO.util.DragDrop.html#maintainOffset", "host": "YAHOO.util.DragDrop", "name": "maintainOffset"}, {"url": "YAHOO.widget.SliderThumb.html#maintainOffset", "host": "YAHOO.widget.SliderThumb", "name": "maintainOffset"}, {"url": "DataSource.html#makeConnection", "host": "DataSource", "name": "makeConnection"}, {"url": "YAHOO.widget.Dialog.html#manualSubmitEvent", "host": "YAHOO.widget.Dialog", "name": "manualSubmitEvent"}, {"url": "YAHOO.widget.TreeView.html#maxAnim", "host": "YAHOO.widget.TreeView", "name": "maxAnim"}, {"url": "YAHOO.widget.DataSource.html#maxCacheEntries", "host": "YAHOO.widget.DataSource", "name": "maxCacheEntries"}, {"url": "DataSource.html#maxCacheEntries", "host": "DataSource", "name": "maxCacheEntries"}, {"url": "YAHOO.widget.Calendar.html#maxdate", "host": "YAHOO.widget.Calendar", "name": "maxdate"}, {"url": "YAHOO.widget.CalendarGroup.html#maxdate", "host": "YAHOO.widget.CalendarGroup", "name": "maxdate"}, {"url": "YAHOO.widget.Menu.html#maxheight", "host": "YAHOO.widget.Menu", "name": "maxheight"}, {"url": "YAHOO.widget.AutoComplete.html#_maxResultsDisplayed", "host": "YAHOO.widget.AutoComplete", "name": "_maxResultsDisplayed"}, {"url": "YAHOO.widget.AutoComplete.html#maxResultsDisplayed", "host": "YAHOO.widget.AutoComplete", "name": "maxResultsDisplayed"}, {"url": "YAHOO.widget.Logger.html#maxStackEntries", "host": "YAHOO.widget.Logger", "name": "maxStackEntries"}, {"url": "YAHOO.util.DragDrop.html#maxX", "host": "YAHOO.util.DragDrop", "name": "maxX"}, {"url": "YAHOO.util.DragDrop.html#maxY", "host": "YAHOO.util.DragDrop", "name": "maxY"}, {"url": "YAHOO.widget.Calendar.html#MD_DAY_POSITION", "host": "YAHOO.widget.Calendar", "name": "MD_DAY_POSITION"}, {"url": "YAHOO.widget.CalendarGroup.html#MD_DAY_POSITION", "host": "YAHOO.widget.CalendarGroup", "name": "MD_DAY_POSITION"}, {"url": "YAHOO.widget.Calendar.html#MD_MONTH_POSITION", "host": "YAHOO.widget.Calendar", "name": "MD_MONTH_POSITION"}, {"url": "YAHOO.widget.CalendarGroup.html#MD_MONTH_POSITION", "host": "YAHOO.widget.CalendarGroup", "name": "MD_MONTH_POSITION"}, {"url": "YAHOO.widget.Calendar.html#MDY_DAY_POSITION", "host": "YAHOO.widget.Calendar", "name": "MDY_DAY_POSITION"}, {"url": "YAHOO.widget.CalendarGroup.html#MDY_DAY_POSITION", "host": "YAHOO.widget.CalendarGroup", "name": "MDY_DAY_POSITION"}, {"url": "YAHOO.widget.Calendar.html#MDY_MONTH_POSITION", "host": "YAHOO.widget.Calendar", "name": "MDY_MONTH_POSITION"}, {"url": "YAHOO.widget.CalendarGroup.html#MDY_MONTH_POSITION", "host": "YAHOO.widget.CalendarGroup", "name": "MDY_MONTH_POSITION"}, {"url": "YAHOO.widget.Calendar.html#MDY_YEAR_POSITION", "host": "YAHOO.widget.Calendar", "name": "MDY_YEAR_POSITION"}, {"url": "YAHOO.widget.CalendarGroup.html#MDY_YEAR_POSITION", "host": "YAHOO.widget.CalendarGroup", "name": "MDY_YEAR_POSITION"}, {"url": "YAHOO.widget.LogReader.html#_memberName", "host": "YAHOO.widget.LogReader", "name": "_memberName"}, {"url": "YAHOO.widget.Button.html#_menu", "host": "YAHOO.widget.Button", "name": "_menu"}, {"url": "YAHOO.widget.Button.html#menu", "host": "YAHOO.widget.Button", "name": "menu"}, {"url": "YAHOO.widget.Button.html#MENUBUTTON_DEFAULT_TITLE", "host": "YAHOO.widget.Button", "name": "MENUBUTTON_DEFAULT_TITLE"}, {"url": "YAHOO.widget.Button.html#MENUBUTTON_MENU_VISIBLE_TITLE", "host": "YAHOO.widget.Button", "name": "MENUBUTTON_MENU_VISIBLE_TITLE"}, {"url": "YAHOO.util.Attribute.html#method", "host": "YAHOO.util.Attribute", "name": "method"}, {"url": "YAHOO.util.Anim.html#method", "host": "YAHOO.util.Anim", "name": "method"}, {"url": "YAHOO.widget.Calendar.html#mindate", "host": "YAHOO.widget.Calendar", "name": "mindate"}, {"url": "YAHOO.widget.CalendarGroup.html#mindate", "host": "YAHOO.widget.CalendarGroup", "name": "mindate"}, {"url": "YAHOO.widget.AutoComplete.html#minQueryLength", "host": "YAHOO.widget.AutoComplete", "name": "minQueryLength"}, {"url": "Column.html#_minWidth", "host": "Column", "name": "_minWidth"}, {"url": "YAHOO.util.DragDrop.html#minX", "host": "YAHOO.util.DragDrop", "name": "minX"}, {"url": "YAHOO.util.DragDrop.html#minY", "host": "YAHOO.util.DragDrop", "name": "minY"}, {"url": "YAHOO.widget.Panel.html#modal", "host": "YAHOO.widget.Panel", "name": "modal"}, {"url": "YAHOO.util.DragDropMgr.html#mode", "host": "YAHOO.util.DragDropMgr", "name": "mode"}, {"url": "YAHOO.env.html#modules", "host": "YAHOO.env", "name": "modules"}, {"url": "YAHOO.util.History.html#_modules", "host": "YAHOO.util.History", "name": "_modules"}, {"url": "YAHOO.widget.Module.html#monitorresize", "host": "YAHOO.widget.Module", "name": "monitorresize"}, {"url": "YAHOO.widget.DateMath.html#MONTH", "host": "YAHOO.widget.DateMath", "name": "MONTH"}, {"url": "YAHOO.widget.Calendar.html#MONTHS_LONG", "host": "YAHOO.widget.Calendar", "name": "MONTHS_LONG"}, {"url": "YAHOO.widget.CalendarGroup.html#MONTHS_LONG", "host": "YAHOO.widget.CalendarGroup", "name": "MONTHS_LONG"}, {"url": "YAHOO.widget.Calendar.html#MONTHS_SHORT", "host": "YAHOO.widget.Calendar", "name": "MONTHS_SHORT"}, {"url": "YAHOO.widget.CalendarGroup.html#MONTHS_SHORT", "host": "YAHOO.widget.CalendarGroup", "name": "MONTHS_SHORT"}, {"url": "YAHOO.widget.Menu.html#mouseDownEvent", "host": "YAHOO.widget.Menu", "name": "mouseDownEvent"}, {"url": "YAHOO.widget.MenuItem.html#mouseDownEvent", "host": "YAHOO.widget.MenuItem", "name": "mouseDownEvent"}, {"url": "YAHOO.widget.Menu.html#mouseOutEvent", "host": "YAHOO.widget.Menu", "name": "mouseOutEvent"}, {"url": "YAHOO.widget.MenuItem.html#mouseOutEvent", "host": "YAHOO.widget.MenuItem", "name": "mouseOutEvent"}, {"url": "YAHOO.widget.Menu.html#mouseOverEvent", "host": "YAHOO.widget.Menu", "name": "mouseOverEvent"}, {"url": "YAHOO.widget.MenuItem.html#mouseOverEvent", "host": "YAHOO.widget.MenuItem", "name": "mouseOverEvent"}, {"url": "YAHOO.widget.Menu.html#mouseUpEvent", "host": "YAHOO.widget.Menu", "name": "mouseUpEvent"}, {"url": "YAHOO.widget.MenuItem.html#mouseUpEvent", "host": "YAHOO.widget.MenuItem", "name": "mouseUpEvent"}, {"url": "YAHOO.widget.Slider.html#moveComplete", "host": "YAHOO.widget.Slider", "name": "moveComplete"}, {"url": "ColumnEditor.html#moveContainerTo", "host": "ColumnEditor", "name": "moveContainerTo"}, {"url": "YAHOO.widget.Overlay.html#moveEvent", "host": "YAHOO.widget.Overlay", "name": "moveEvent"}, {"url": "YAHOO.widget.Slider.html#moveOneTick", "host": "YAHOO.widget.Slider", "name": "moveOneTick"}, {"url": "YAHOO.widget.AutoComplete.html#_moveSelection", "host": "YAHOO.widget.AutoComplete", "name": "_moveSelection"}, {"url": "YAHOO.widget.Slider.html#moveThumb", "host": "YAHOO.widget.Slider", "name": "moveThumb"}, {"url": "YAHOO.widget.Overlay.html#moveTo", "host": "YAHOO.widget.Overlay", "name": "moveTo"}, {"url": "YAHOO.util.DragDropMgr.html#moveToEl", "host": "YAHOO.util.DragDropMgr", "name": "moveToEl"}, {"url": "YAHOO.widget.LogMsg.html#msg", "host": "YAHOO.widget.LogMsg", "name": "msg"}, {"url": "DataTable.html#MSG_EMPTY", "host": "DataTable", "name": "MSG_EMPTY"}, {"url": "DataTable.html#MSG_ERROR", "host": "DataTable", "name": "MSG_ERROR"}, {"url": "DataTable.html#MSG_LOADING", "host": "DataTable", "name": "MSG_LOADING"}, {"url": "YAHOO.util.Connect.html#_msxml_progid", "host": "YAHOO.util.Connect", "name": "_msxml_progid"}, {"url": "YAHOO.widget.Node.html#multiExpand", "host": "YAHOO.widget.Node", "name": "multiExpand"}, {"url": "YAHOO.widget.Calendar.html#MULTI_SELECT", "host": "YAHOO.widget.Calendar", "name": "MULTI_SELECT"}, {"url": "YAHOO.widget.CalendarGroup.html#MULTI_SELECT", "host": "YAHOO.widget.CalendarGroup", "name": "MULTI_SELECT"}, {"url": "YAHOO.widget.Calendar.html#MY_MONTH_POSITION", "host": "YAHOO.widget.Calendar", "name": "MY_MONTH_POSITION"}, {"url": "YAHOO.widget.CalendarGroup.html#MY_MONTH_POSITION", "host": "YAHOO.widget.CalendarGroup", "name": "MY_MONTH_POSITION"}, {"url": "YAHOO.widget.Calendar.html#MY_YEAR_POSITION", "host": "YAHOO.widget.Calendar", "name": "MY_YEAR_POSITION"}, {"url": "YAHOO.widget.CalendarGroup.html#MY_YEAR_POSITION", "host": "YAHOO.widget.CalendarGroup", "name": "MY_YEAR_POSITION"}, {"url": "YAHOO.widget.Button.html#name", "host": "YAHOO.widget.Button", "name": "name"}, {"url": "YAHOO.widget.ButtonGroup.html#name", "host": "YAHOO.widget.ButtonGroup", "name": "name"}, {"url": "YAHOO.util.Attribute.html#name", "host": "YAHOO.util.Attribute", "name": "name"}, {"url": "YAHOO.html#namespace", "host": "YAHOO", "name": "namespace"}, {"url": "YAHOO.widget.Calendar.html#NAV_ARROW_LEFT", "host": "YAHOO.widget.Calendar", "name": "NAV_ARROW_LEFT"}, {"url": "YAHOO.widget.CalendarGroup.html#NAV_ARROW_LEFT", "host": "YAHOO.widget.CalendarGroup", "name": "NAV_ARROW_LEFT"}, {"url": "YAHOO.widget.Calendar.html#NAV_ARROW_RIGHT", "host": "YAHOO.widget.Calendar", "name": "NAV_ARROW_RIGHT"}, {"url": "YAHOO.widget.CalendarGroup.html#NAV_ARROW_RIGHT", "host": "YAHOO.widget.CalendarGroup", "name": "NAV_ARROW_RIGHT"}, {"url": "YAHOO.util.History.html#navigate", "host": "YAHOO.util.History", "name": "navigate"}, {"url": "YAHOO.widget.Menu.html#_nBodyScrollId", "host": "YAHOO.widget.Menu", "name": "_nBodyScrollId"}, {"url": "ColumnSet.html#_nCount", "host": "ColumnSet", "name": "_nCount"}, {"url": "Column.html#_nCount", "host": "Column", "name": "_nCount"}, {"url": "ColumnEditor.html#_nCount", "host": "ColumnEditor", "name": "_nCount"}, {"url": "DataTable.html#_nCount", "host": "DataTable", "name": "_nCount"}, {"url": "RecordSet.html#_nCount", "host": "RecordSet", "name": "_nCount"}, {"url": "Record.html#_nCount", "host": "Record", "name": "_nCount"}, {"url": "YAHOO.widget.Menu.html#_nCurrentMouseX", "host": "YAHOO.widget.Menu", "name": "_nCurrentMouseX"}, {"url": "YAHOO.widget.AutoComplete.html#_nDelayID", "host": "YAHOO.widget.AutoComplete", "name": "_nDelayID"}, {"url": "YAHOO.widget.AutoComplete.html#_nDisplayedItems", "host": "YAHOO.widget.AutoComplete", "name": "_nDisplayedItems"}, {"url": "YAHOO.widget.LogReader.html#newestOnTop", "host": "YAHOO.widget.LogReader", "name": "newestOnTop"}, {"url": "YAHOO.widget.Logger.html#newLogEvent", "host": "YAHOO.widget.Logger", "name": "newLogEvent"}, {"url": "YAHOO.widget.Calendar.html#nextMonth", "host": "YAHOO.widget.Calendar", "name": "nextMonth"}, {"url": "YAHOO.widget.CalendarGroup.html#nextMonth", "host": "YAHOO.widget.CalendarGroup", "name": "nextMonth"}, {"url": "YAHOO.widget.Node.html#nextSibling", "host": "YAHOO.widget.Node", "name": "nextSibling"}, {"url": "YAHOO.widget.Calendar.html#nextYear", "host": "YAHOO.widget.Calendar", "name": "nextYear"}, {"url": "YAHOO.widget.CalendarGroup.html#nextYear", "host": "YAHOO.widget.CalendarGroup", "name": "nextYear"}, {"url": "YAHOO.widget.Menu.html#_nHideDelayId", "host": "YAHOO.widget.Menu", "name": "_nHideDelayId"}, {"url": "DataTable.html#_nIndex", "host": "DataTable", "name": "_nIndex"}, {"url": "RecordSet.html#_nIndex", "host": "RecordSet", "name": "_nIndex"}, {"url": "YAHOO.widget.AutoComplete.html#_nIndex", "host": "YAHOO.widget.AutoComplete", "name": "_nIndex"}, {"url": "YAHOO.widget.DataSource.html#_nIndex", "host": "YAHOO.widget.DataSource", "name": "_nIndex"}, {"url": "DataSource.html#_nIndex", "host": "DataSource", "name": "_nIndex"}, {"url": "YAHOO.widget.AutoComplete.html#_nKeyCode", "host": "YAHOO.widget.AutoComplete", "name": "_nKeyCode"}, {"url": "YAHOO.widget.Menu.html#_nMaxHeight", "host": "YAHOO.widget.Menu", "name": "_nMaxHeight"}, {"url": "YAHOO.widget.TreeView.html#_nodes", "host": "YAHOO.widget.TreeView", "name": "_nodes"}, {"url": "YAHOO.widget.Node.html#nowrap", "host": "YAHOO.widget.Node", "name": "nowrap"}, {"url": "YAHOO.widget.Menu.html#_nShowDelayId", "host": "YAHOO.widget.Menu", "name": "_nShowDelayId"}, {"url": "YAHOO.widget.Menu.html#_nSubmenuHideDelayId", "host": "YAHOO.widget.Menu", "name": "_nSubmenuHideDelayId"}, {"url": "YAHOO.util.DragDropMgr.html#numericSort", "host": "YAHOO.util.DragDropMgr", "name": "numericSort"}, {"url": "YAHOO.widget.MenuItem.html#_oAnchor", "host": "YAHOO.widget.MenuItem", "name": "_oAnchor"}, {"url": "YAHOO.widget.AutoComplete.html#_oAnim", "host": "YAHOO.widget.AutoComplete", "name": "_oAnim"}, {"url": "YAHOO.util.Subscriber.html#obj", "host": "YAHOO.util.Subscriber", "name": "obj"}, {"url": "YAHOO.util.Event.html#OBJ", "host": "YAHOO.util.Event", "name": "OBJ"}, {"url": "YAHOO.widget.MenuItem.html#_oCheckedIndicator", "host": "YAHOO.widget.MenuItem", "name": "_oCheckedIndicator"}, {"url": "DataTable.html#_oColumnSet", "host": "DataTable", "name": "_oColumnSet"}, {"url": "YAHOO.widget.DS_XHR.html#_oConn", "host": "YAHOO.widget.DS_XHR", "name": "_oConn"}, {"url": "YAHOO.widget.AutoComplete.html#_oContainer", "host": "YAHOO.widget.AutoComplete", "name": "_oContainer"}, {"url": "YAHOO.widget.AutoComplete.html#_oCurItem", "host": "YAHOO.widget.AutoComplete", "name": "_oCurItem"}, {"url": "YAHOO.widget.Calendar.html#oDomContainer", "host": "YAHOO.widget.Calendar", "name": "oDomContainer"}, {"url": "YAHOO.widget.CalendarGroup.html#oDomContainer", "host": "YAHOO.widget.CalendarGroup", "name": "oDomContainer"}, {"url": "YAHOO.widget.MenuItem.html#_oHelpTextEM", "host": "YAHOO.widget.MenuItem", "name": "_oHelpTextEM"}, {"url": "YAHOO.util.Element.html#on", "host": "YAHOO.util.Element", "name": "on"}, {"url": "YAHOO.util.Event.html#on", "host": "YAHOO.util.Event", "name": "on"}, {"url": "YAHOO.widget.Button.html#_onAppendTo", "host": "YAHOO.widget.Button", "name": "_onAppendTo"}, {"url": "YAHOO.widget.ButtonGroup.html#_onAppendTo", "host": "YAHOO.widget.ButtonGroup", "name": "_onAppendTo"}, {"url": "YAHOO.util.DragDrop.html#onAvailable", "host": "YAHOO.util.DragDrop", "name": "onAvailable"}, {"url": "YAHOO.widget.Slider.html#onAvailable", "host": "YAHOO.widget.Slider", "name": "onAvailable"}, {"url": "YAHOO.util.Event.html#onAvailable", "host": "YAHOO.util.Event", "name": "onAvailable"}, {"url": "YAHOO.util.Event.html#onAvailStack", "host": "YAHOO.util.Event", "name": "onAvailStack"}, {"url": "YAHOO.widget.Calendar.html#onBeforeDeselect", "host": "YAHOO.widget.Calendar", "name": "onBeforeDeselect"}, {"url": "YAHOO.widget.Menu.html#_onBeforeHide", "host": "YAHOO.widget.Menu", "name": "_onBeforeHide"}, {"url": "YAHOO.widget.Menu.html#_onBeforeRender", "host": "YAHOO.widget.Menu", "name": "_onBeforeRender"}, {"url": "YAHOO.widget.Calendar.html#onBeforeSelect", "host": "YAHOO.widget.Calendar", "name": "onBeforeSelect"}, {"url": "YAHOO.widget.Menu.html#_onBeforeShow", "host": "YAHOO.widget.Menu", "name": "_onBeforeShow"}, {"url": "DataTable.html#_onBlur", "host": "DataTable", "name": "_onBlur"}, {"url": "YAHOO.widget.Button.html#_onBlur", "host": "YAHOO.widget.Button", "name": "_onBlur"}, {"url": "YAHOO.widget.ButtonGroup.html#_onButtonCheckedChange", "host": "YAHOO.widget.ButtonGroup", "name": "_onButtonCheckedChange"}, {"url": "YAHOO.widget.LogReader.html#_onCategoryCreate", "host": "YAHOO.widget.LogReader", "name": "_onCategoryCreate"}, {"url": "YAHOO.widget.Slider.html#onChange", "host": "YAHOO.widget.Slider", "name": "onChange"}, {"url": "YAHOO.widget.SliderThumb.html#onChange", "host": "YAHOO.widget.SliderThumb", "name": "onChange"}, {"url": "YAHOO.widget.Calendar.html#onChangePage", "host": "YAHOO.widget.Calendar", "name": "onChangePage"}, {"url": "YAHOO.widget.LogReader.html#_onCheckCategory", "host": "YAHOO.widget.LogReader", "name": "_onCheckCategory"}, {"url": "YAHOO.widget.LogReader.html#_onCheckSource", "host": "YAHOO.widget.LogReader", "name": "_onCheckSource"}, {"url": "YAHOO.widget.Calendar.html#onClear", "host": "YAHOO.widget.Calendar", "name": "onClear"}, {"url": "DataTable.html#_onClick", "host": "DataTable", "name": "_onClick"}, {"url": "YAHOO.widget.Menu.html#_onClick", "host": "YAHOO.widget.Menu", "name": "_onClick"}, {"url": "YAHOO.widget.Menubar.html#_onClick", "host": "YAHOO.widget.Menubar", "name": "_onClick"}, {"url": "YAHOO.widget.MenuItem.html#onclick", "host": "YAHOO.widget.MenuItem", "name": "onclick"}, {"url": "YAHOO.widget.Button.html#onclick", "host": "YAHOO.widget.Button", "name": "onclick"}, {"url": "YAHOO.widget.Button.html#_onClick", "host": "YAHOO.widget.Button", "name": "_onClick"}, {"url": "YAHOO.widget.Button.html#_onclickAttributeValue", "host": "YAHOO.widget.Button", "name": "_onclickAttributeValue"}, {"url": "YAHOO.widget.LogReader.html#_onClickClearBtn", "host": "YAHOO.widget.LogReader", "name": "_onClickClearBtn"}, {"url": "YAHOO.widget.LogReader.html#_onClickCollapseBtn", "host": "YAHOO.widget.LogReader", "name": "_onClickCollapseBtn"}, {"url": "YAHOO.widget.LogReader.html#_onClickPauseBtn", "host": "YAHOO.widget.LogReader", "name": "_onClickPauseBtn"}, {"url": "YAHOO.widget.TreeView.html#onCollapse", "host": "YAHOO.widget.TreeView", "name": "onCollapse"}, {"url": "YAHOO.util.Anim.html#_onComplete", "host": "YAHOO.util.Anim", "name": "_onComplete"}, {"url": "YAHOO.util.Anim.html#onComplete", "host": "YAHOO.util.Anim", "name": "onComplete"}, {"url": "YAHOO.widget.TVFadeIn.html#onComplete", "host": "YAHOO.widget.TVFadeIn", "name": "onComplete"}, {"url": "YAHOO.widget.TVFadeOut.html#onComplete", "host": "YAHOO.widget.TVFadeOut", "name": "onComplete"}, {"url": "YAHOO.widget.AutoComplete.html#_onContainerMouseout", "host": "YAHOO.widget.AutoComplete", "name": "_onContainerMouseout"}, {"url": "YAHOO.widget.AutoComplete.html#_onContainerMouseover", "host": "YAHOO.widget.AutoComplete", "name": "_onContainerMouseover"}, {"url": "YAHOO.widget.AutoComplete.html#_onContainerResize", "host": "YAHOO.widget.AutoComplete", "name": "_onContainerResize"}, {"url": "YAHOO.widget.AutoComplete.html#_onContainerScroll", "host": "YAHOO.widget.AutoComplete", "name": "_onContainerScroll"}, {"url": "YAHOO.util.Event.html#onContentReady", "host": "YAHOO.util.Event", "name": "onContentReady"}, {"url": "YAHOO.widget.Tooltip.html#onContextMouseMove", "host": "YAHOO.widget.Tooltip", "name": "onContextMouseMove"}, {"url": "YAHOO.widget.Tooltip.html#onContextMouseOut", "host": "YAHOO.widget.Tooltip", "name": "onContextMouseOut"}, {"url": "YAHOO.widget.Tooltip.html#onContextMouseOver", "host": "YAHOO.widget.Tooltip", "name": "onContextMouseOver"}, {"url": "DataTable.html#onDataReturnAppendRows", "host": "DataTable", "name": "onDataReturnAppendRows"}, {"url": "DataTable.html#onDataReturnInsertRows", "host": "DataTable", "name": "onDataReturnInsertRows"}, {"url": "DataTable.html#onDataReturnPaginateRows", "host": "DataTable", "name": "onDataReturnPaginateRows"}, {"url": "DataTable.html#onDataReturnPopulateTable", "host": "DataTable", "name": "onDataReturnPopulateTable"}, {"url": "DataTable.html#onDataReturnReplaceRows", "host": "DataTable", "name": "onDataReturnReplaceRows"}, {"url": "YAHOO.widget.Calendar.html#onDeselect", "host": "YAHOO.widget.Calendar", "name": "onDeselect"}, {"url": "DataTable.html#_onDocumentClick", "host": "DataTable", "name": "_onDocumentClick"}, {"url": "DataTable.html#_onDocumentKeydown", "host": "DataTable", "name": "_onDocumentKeydown"}, {"url": "YAHOO.widget.Button.html#_onDocumentKeyUp", "host": "YAHOO.widget.Button", "name": "_onDocumentKeyUp"}, {"url": "YAHOO.widget.Button.html#_onDocumentMouseDown", "host": "YAHOO.widget.Button", "name": "_onDocumentMouseDown"}, {"url": "YAHOO.widget.Button.html#_onDocumentMouseUp", "host": "YAHOO.widget.Button", "name": "_onDocumentMouseUp"}, {"url": "YAHOO.widget.MenuManager.html#onDOMEvent", "host": "YAHOO.widget.MenuManager", "name": "onDOMEvent"}, {"url": "YAHOO.util.Event.html#onDOMReady", "host": "YAHOO.util.Event", "name": "onDOMReady"}, {"url": "YAHOO.widget.Module.html#onDomResize", "host": "YAHOO.widget.Module", "name": "onDomResize"}, {"url": "YAHOO.widget.Overlay.html#onDomResize", "host": "YAHOO.widget.Overlay", "name": "onDomResize"}, {"url": "YAHOO.widget.Panel.html#onDomResize", "host": "YAHOO.widget.Panel", "name": "onDomResize"}, {"url": "DataTable.html#_onDoubleclick", "host": "DataTable", "name": "_onDoubleclick"}, {"url": "WidthResizer.html#onDrag", "host": "WidthResizer", "name": "onDrag"}, {"url": "YAHOO.util.DragDrop.html#onDrag", "host": "YAHOO.util.DragDrop", "name": "onDrag"}, {"url": "YAHOO.widget.Slider.html#onDrag", "host": "YAHOO.widget.Slider", "name": "onDrag"}, {"url": "YAHOO.util.DragDrop.html#onDragDrop", "host": "YAHOO.util.DragDrop", "name": "onDragDrop"}, {"url": "YAHOO.util.DragDrop.html#onDragEnter", "host": "YAHOO.util.DragDrop", "name": "onDragEnter"}, {"url": "YAHOO.util.DragDrop.html#onDragOut", "host": "YAHOO.util.DragDrop", "name": "onDragOut"}, {"url": "YAHOO.util.DragDrop.html#onDragOver", "host": "YAHOO.util.DragDrop", "name": "onDragOver"}, {"url": "YAHOO.widget.DateMath.html#ONE_DAY_MS", "host": "YAHOO.widget.DateMath", "name": "ONE_DAY_MS"}, {"url": "DataTable.html#onEventEditCell", "host": "DataTable", "name": "onEventEditCell"}, {"url": "DataTable.html#onEventFormatCell", "host": "DataTable", "name": "onEventFormatCell"}, {"url": "DataTable.html#onEventHighlightCell", "host": "DataTable", "name": "onEventHighlightCell"}, {"url": "DataTable.html#onEventSelectCell", "host": "DataTable", "name": "onEventSelectCell"}, {"url": "DataTable.html#onEventSelectRow", "host": "DataTable", "name": "onEventSelectRow"}, {"url": "DataTable.html#onEventSortColumn", "host": "DataTable", "name": "onEventSortColumn"}, {"url": "DataTable.html#onEventUnhighlightCell", "host": "DataTable", "name": "onEventUnhighlightCell"}, {"url": "YAHOO.widget.TreeView.html#onExpand", "host": "YAHOO.widget.TreeView", "name": "onExpand"}, {"url": "YAHOO.widget.Button.html#_onFocus", "host": "YAHOO.widget.Button", "name": "_onFocus"}, {"url": "YAHOO.widget.Dialog.html#_onFormKeyDown", "host": "YAHOO.widget.Dialog", "name": "_onFormKeyDown"}, {"url": "YAHOO.widget.Button.html#onFormKeyDown", "host": "YAHOO.widget.Button", "name": "onFormKeyDown"}, {"url": "YAHOO.widget.Button.html#_onFormReset", "host": "YAHOO.widget.Button", "name": "_onFormReset"}, {"url": "YAHOO.widget.Button.html#_onFormSubmit", "host": "YAHOO.widget.Button", "name": "_onFormSubmit"}, {"url": "YAHOO.widget.AutoComplete.html#_onFormSubmit", "host": "YAHOO.widget.AutoComplete", "name": "_onFormSubmit"}, {"url": "YAHOO.widget.Menu.html#_onHide", "host": "YAHOO.widget.Menu", "name": "_onHide"}, {"url": "YAHOO.widget.AutoComplete.html#_onIMEDetected", "host": "YAHOO.widget.AutoComplete", "name": "_onIMEDetected"}, {"url": "YAHOO.widget.Menu.html#_onInit", "host": "YAHOO.widget.Menu", "name": "_onInit"}, {"url": "YAHOO.util.DragDrop.html#onInvalidDrop", "host": "YAHOO.util.DragDrop", "name": "onInvalidDrop"}, {"url": "YAHOO.widget.MenuManager.html#onItemAdded", "host": "YAHOO.widget.MenuManager", "name": "onItemAdded"}, {"url": "YAHOO.widget.MenuManager.html#onItemDestroy", "host": "YAHOO.widget.MenuManager", "name": "onItemDestroy"}, {"url": "YAHOO.widget.AutoComplete.html#_onItemMouseclick", "host": "YAHOO.widget.AutoComplete", "name": "_onItemMouseclick"}, {"url": "YAHOO.widget.AutoComplete.html#_onItemMouseout", "host": "YAHOO.widget.AutoComplete", "name": "_onItemMouseout"}, {"url": "YAHOO.widget.AutoComplete.html#_onItemMouseover", "host": "YAHOO.widget.AutoComplete", "name": "_onItemMouseover"}, {"url": "YAHOO.widget.MenuManager.html#onItemRemoved", "host": "YAHOO.widget.MenuManager", "name": "onItemRemoved"}, {"url": "DataTable.html#_onKeydown", "host": "DataTable", "name": "_onKeydown"}, {"url": "YAHOO.widget.Menu.html#_onKeyDown", "host": "YAHOO.widget.Menu", "name": "_onKeyDown"}, {"url": "YAHOO.widget.Menubar.html#_onKeyDown", "host": "YAHOO.widget.Menubar", "name": "_onKeyDown"}, {"url": "YAHOO.widget.Button.html#_onKeyDown", "host": "YAHOO.widget.Button", "name": "_onKeyDown"}, {"url": "YAHOO.widget.ButtonGroup.html#_onKeyDown", "host": "YAHOO.widget.ButtonGroup", "name": "_onKeyDown"}, {"url": "DataTable.html#_onKeypress", "host": "DataTable", "name": "_onKeypress"}, {"url": "YAHOO.widget.Menu.html#_onKeyPress", "host": "YAHOO.widget.Menu", "name": "_onKeyPress"}, {"url": "DataTable.html#_onKeyup", "host": "DataTable", "name": "_onKeyup"}, {"url": "YAHOO.widget.Button.html#_onKeyUp", "host": "YAHOO.widget.Button", "name": "_onKeyUp"}, {"url": "YAHOO.widget.TextNode.html#onLabelClick", "host": "YAHOO.widget.TextNode", "name": "onLabelClick"}, {"url": "YAHOO.util.DragDropMgr.html#_onLoad", "host": "YAHOO.util.DragDropMgr", "name": "_onLoad"}, {"url": "YAHOO.util.History.html#onLoadEvent", "host": "YAHOO.util.History", "name": "onLoadEvent"}, {"url": "YAHOO.widget.MenuManager.html#onMenuBlur", "host": "YAHOO.widget.MenuManager", "name": "onMenuBlur"}, {"url": "YAHOO.widget.Button.html#_onMenuClick", "host": "YAHOO.widget.Button", "name": "_onMenuClick"}, {"url": "YAHOO.widget.MenuManager.html#onMenuDestroy", "host": "YAHOO.widget.MenuManager", "name": "onMenuDestroy"}, {"url": "YAHOO.widget.MenuManager.html#onMenuFocus", "host": "YAHOO.widget.MenuManager", "name": "onMenuFocus"}, {"url": "YAHOO.widget.Button.html#_onMenuHide", "host": "YAHOO.widget.Button", "name": "_onMenuHide"}, {"url": "YAHOO.widget.Button.html#_onMenuItemAdded", "host": "YAHOO.widget.Button", "name": "_onMenuItemAdded"}, {"url": "YAHOO.widget.Menu.html#_onMenuItemBlur", "host": "YAHOO.widget.Menu", "name": "_onMenuItemBlur"}, {"url": "YAHOO.widget.Menu.html#_onMenuItemConfigChange", "host": "YAHOO.widget.Menu", "name": "_onMenuItemConfigChange"}, {"url": "YAHOO.widget.Menu.html#_onMenuItemFocus", "host": "YAHOO.widget.Menu", "name": "_onMenuItemFocus"}, {"url": "YAHOO.widget.Button.html#_onMenuItemSelected", "host": "YAHOO.widget.Button", "name": "_onMenuItemSelected"}, {"url": "YAHOO.widget.Button.html#_onMenuKeyDown", "host": "YAHOO.widget.Button", "name": "_onMenuKeyDown"}, {"url": "YAHOO.widget.Button.html#_onMenuRender", "host": "YAHOO.widget.Button", "name": "_onMenuRender"}, {"url": "YAHOO.widget.Button.html#_onMenuShow", "host": "YAHOO.widget.Button", "name": "_onMenuShow"}, {"url": "YAHOO.widget.MenuManager.html#onMenuVisibleConfigChange", "host": "YAHOO.widget.MenuManager", "name": "onMenuVisibleConfigChange"}, {"url": "WidthResizer.html#onMouseDown", "host": "WidthResizer", "name": "onMouseDown"}, {"url": "DataTable.html#_onMousedown", "host": "DataTable", "name": "_onMousedown"}, {"url": "YAHOO.util.DragDrop.html#onMouseDown", "host": "YAHOO.util.DragDrop", "name": "onMouseDown"}, {"url": "YAHOO.widget.Button.html#_onMouseDown", "host": "YAHOO.widget.Button", "name": "_onMouseDown"}, {"url": "YAHOO.widget.Slider.html#onMouseDown", "host": "YAHOO.widget.Slider", "name": "onMouseDown"}, {"url": "YAHOO.widget.Menu.html#_onMouseMove", "host": "YAHOO.widget.Menu", "name": "_onMouseMove"}, {"url": "DataTable.html#_onMouseout", "host": "DataTable", "name": "_onMouseout"}, {"url": "YAHOO.widget.Menu.html#_onMouseOut", "host": "YAHOO.widget.Menu", "name": "_onMouseOut"}, {"url": "YAHOO.widget.Button.html#_onMouseOut", "host": "YAHOO.widget.Button", "name": "_onMouseOut"}, {"url": "DataTable.html#_onMouseover", "host": "DataTable", "name": "_onMouseover"}, {"url": "YAHOO.widget.Menu.html#_onMouseOver", "host": "YAHOO.widget.Menu", "name": "_onMouseOver"}, {"url": "YAHOO.widget.Button.html#_onMouseOver", "host": "YAHOO.widget.Button", "name": "_onMouseOver"}, {"url": "WidthResizer.html#onMouseUp", "host": "WidthResizer", "name": "onMouseUp"}, {"url": "YAHOO.util.DragDrop.html#onMouseUp", "host": "YAHOO.util.DragDrop", "name": "onMouseUp"}, {"url": "YAHOO.widget.Button.html#_onMouseUp", "host": "YAHOO.widget.Button", "name": "_onMouseUp"}, {"url": "YAHOO.widget.LogReader.html#_onNewLog", "host": "YAHOO.widget.LogReader", "name": "_onNewLog"}, {"url": "YAHOO.widget.Button.html#_onOption", "host": "YAHOO.widget.Button", "name": "_onOption"}, {"url": "YAHOO.widget.OverlayManager.html#_onOverlayDestroy", "host": "YAHOO.widget.OverlayManager", "name": "_onOverlayDestroy"}, {"url": "YAHOO.widget.OverlayManager.html#_onOverlayElementFocus", "host": "YAHOO.widget.OverlayManager", "name": "_onOverlayElementFocus"}, {"url": "DataTable.html#_onPagerClick", "host": "DataTable", "name": "_onPagerClick"}, {"url": "DataTable.html#_onPagerSelect", "host": "DataTable", "name": "_onPagerSelect"}, {"url": "YAHOO.widget.Menu.html#_onParentMenuConfigChange", "host": "YAHOO.widget.Menu", "name": "_onParentMenuConfigChange"}, {"url": "YAHOO.widget.Menu.html#_onParentMenuRender", "host": "YAHOO.widget.Menu", "name": "_onParentMenuRender"}, {"url": "DataTable.html#_onRecordUpdate", "host": "DataTable", "name": "_onRecordUpdate"}, {"url": "YAHOO.widget.Menu.html#_onRender", "host": "YAHOO.widget.Menu", "name": "_onRender"}, {"url": "YAHOO.widget.Calendar.html#onRender", "host": "YAHOO.widget.Calendar", "name": "onRender"}, {"url": "YAHOO.widget.Calendar.html#onReset", "host": "YAHOO.widget.Calendar", "name": "onReset"}, {"url": "YAHOO.widget.LogReader.html#_onReset", "host": "YAHOO.widget.LogReader", "name": "_onReset"}, {"url": "YAHOO.util.DragDropMgr.html#_onResize", "host": "YAHOO.util.DragDropMgr", "name": "_onResize"}, {"url": "DataTable.html#_onRowDelete", "host": "DataTable", "name": "_onRowDelete"}, {"url": "YAHOO.widget.Menu.html#_onScrollTargetMouseOut", "host": "YAHOO.widget.Menu", "name": "_onScrollTargetMouseOut"}, {"url": "YAHOO.widget.Menu.html#_onScrollTargetMouseOver", "host": "YAHOO.widget.Menu", "name": "_onScrollTargetMouseOver"}, {"url": "YAHOO.widget.Calendar.html#onSelect", "host": "YAHOO.widget.Calendar", "name": "onSelect"}, {"url": "YAHOO.widget.Menu.html#_onShow", "host": "YAHOO.widget.Menu", "name": "_onShow"}, {"url": "YAHOO.widget.Slider.html#onSliderEnd", "host": "YAHOO.widget.Slider", "name": "onSliderEnd"}, {"url": "YAHOO.widget.Slider.html#onSlideStart", "host": "YAHOO.widget.Slider", "name": "onSlideStart"}, {"url": "YAHOO.widget.LogReader.html#_onSourceCreate", "host": "YAHOO.widget.LogReader", "name": "_onSourceCreate"}, {"url": "YAHOO.util.Anim.html#_onStart", "host": "YAHOO.util.Anim", "name": "_onStart"}, {"url": "YAHOO.util.Anim.html#onStart", "host": "YAHOO.util.Anim", "name": "onStart"}, {"url": "YAHOO.widget.Menu.html#_onSubmenuBeforeShow", "host": "YAHOO.widget.Menu", "name": "_onSubmenuBeforeShow"}, {"url": "YAHOO.widget.Menu.html#_onSubmenuHide", "host": "YAHOO.widget.Menu", "name": "_onSubmenuHide"}, {"url": "YAHOO.widget.Menu.html#_onSubmenuShow", "host": "YAHOO.widget.Menu", "name": "_onSubmenuShow"}, {"url": "YAHOO.widget.AutoComplete.html#_onTextboxBlur", "host": "YAHOO.widget.AutoComplete", "name": "_onTextboxBlur"}, {"url": "YAHOO.widget.AutoComplete.html#_onTextboxFocus", "host": "YAHOO.widget.AutoComplete", "name": "_onTextboxFocus"}, {"url": "YAHOO.widget.AutoComplete.html#_onTextboxKeyDown", "host": "YAHOO.widget.AutoComplete", "name": "_onTextboxKeyDown"}, {"url": "YAHOO.widget.AutoComplete.html#_onTextboxKeyPress", "host": "YAHOO.widget.AutoComplete", "name": "_onTextboxKeyPress"}, {"url": "YAHOO.widget.AutoComplete.html#_onTextboxKeyUp", "host": "YAHOO.widget.AutoComplete", "name": "_onTextboxKeyUp"}, {"url": "YAHOO.widget.Menu.html#_onTextResize", "host": "YAHOO.widget.Menu", "name": "_onTextResize"}, {"url": "YAHOO.widget.ContextMenu.html#_onTriggerClick", "host": "YAHOO.widget.ContextMenu", "name": "_onTriggerClick"}, {"url": "YAHOO.widget.ContextMenu.html#_onTriggerContextMenu", "host": "YAHOO.widget.ContextMenu", "name": "_onTriggerContextMenu"}, {"url": "YAHOO.util.Anim.html#_onTween", "host": "YAHOO.util.Anim", "name": "_onTween"}, {"url": "YAHOO.util.Anim.html#onTween", "host": "YAHOO.util.Anim", "name": "onTween"}, {"url": "YAHOO.util.DragDropMgr.html#_onUnload", "host": "YAHOO.util.DragDropMgr", "name": "_onUnload"}, {"url": "YAHOO.widget.Menu.html#_onVisibleChange", "host": "YAHOO.widget.Menu", "name": "_onVisibleChange"}, {"url": "YAHOO.widget.Menu.html#_onWidthChange", "host": "YAHOO.widget.Menu", "name": "_onWidthChange"}, {"url": "YAHOO.widget.Logger.html#_onWindowError", "host": "YAHOO.widget.Logger", "name": "_onWindowError"}, {"url": "YAHOO.widget.MenuItem.html#_oOnclickAttributeValue", "host": "YAHOO.widget.MenuItem", "name": "_oOnclickAttributeValue"}, {"url": "YAHOO.widget.Button.html#option", "host": "YAHOO.widget.Button", "name": "option"}, {"url": "YAHOO.widget.Button.html#OPTION_AREA_WIDTH", "host": "YAHOO.widget.Button", "name": "OPTION_AREA_WIDTH"}, {"url": "YAHOO.widget.Calendar.html#Options", "host": "YAHOO.widget.Calendar", "name": "Options"}, {"url": "YAHOO.widget.CalendarGroup.html#Options", "host": "YAHOO.widget.CalendarGroup", "name": "Options"}, {"url": "DataTable.html#_oRecordSet", "host": "DataTable", "name": "_oRecordSet"}, {"url": "YAHOO.widget.TabView.html#orientation", "host": "YAHOO.widget.TabView", "name": "orientation"}, {"url": "YAHOO.widget.TabView.html#orientationChange", "host": "YAHOO.widget.TabView", "name": "orientationChange"}, {"url": "YAHOO.widget.MenuItem.html#_oSubmenu", "host": "YAHOO.widget.MenuItem", "name": "_oSubmenu"}, {"url": "YAHOO.widget.MenuItem.html#_oText", "host": "YAHOO.widget.MenuItem", "name": "_oText"}, {"url": "YAHOO.widget.AutoComplete.html#_oTextbox", "host": "YAHOO.widget.AutoComplete", "name": "_oTextbox"}, {"url": "YAHOO.widget.ContextMenu.html#_oTrigger", "host": "YAHOO.widget.ContextMenu", "name": "_oTrigger"}, {"url": "YAHOO.widget.LogReader.html#outputBuffer", "host": "YAHOO.widget.LogReader", "name": "outputBuffer"}, {"url": "YAHOO.util.Config.html#outputEventQueue", "host": "YAHOO.util.Config", "name": "outputEventQueue"}, {"url": "YAHOO.widget.ContainerEffect.html#overlay", "host": "YAHOO.widget.ContainerEffect", "name": "overlay"}, {"url": "YAHOO.widget.OverlayManager.html#overlays", "host": "YAHOO.widget.OverlayManager", "name": "overlays"}, {"url": "YAHOO.util.Subscriber.html#override", "host": "YAHOO.util.Subscriber", "name": "override"}, {"url": "YAHOO.util.Config.html#owner", "host": "YAHOO.util.Config", "name": "owner"}, {"url": "YAHOO.util.Attribute.html#owner", "host": "YAHOO.util.Attribute", "name": "owner"}, {"url": "YAHOO.util.DragDrop.html#padding", "host": "YAHOO.util.DragDrop", "name": "padding"}, {"url": "DataTable.html#pageCurrent", "host": "DataTable", "name": "pageCurrent"}, {"url": "YAHOO.widget.Calendar.html#pagedate", "host": "YAHOO.widget.Calendar", "name": "pagedate"}, {"url": "YAHOO.widget.CalendarGroup.html#pagedate", "host": "YAHOO.widget.CalendarGroup", "name": "pagedate"}, {"url": "DataTable.html#pageLinksLength", "host": "DataTable", "name": "pageLinksLength"}, {"url": "DataTable.html#pageLinksStart", "host": "DataTable", "name": "pageLinksStart"}, {"url": "DataTable.html#pagers", "host": "DataTable", "name": "pagers"}, {"url": "YAHOO.widget.CalendarGroup.html#pages", "host": "YAHOO.widget.CalendarGroup", "name": "pages"}, {"url": "DataTable.html#paginateEvent", "host": "DataTable", "name": "paginateEvent"}, {"url": "DataTable.html#_paginator", "host": "DataTable", "name": "_paginator"}, {"url": "DataTable.html#paginator", "host": "DataTable", "name": "paginator"}, {"url": "DataTable.html#_paginator.containers", "host": "DataTable", "name": "_paginator.containers"}, {"url": "DataTable.html#_paginator.currentPage", "host": "DataTable", "name": "_paginator.currentPage"}, {"url": "DataTable.html#_paginator.dropdownOptions", "host": "DataTable", "name": "_paginator.dropdownOptions"}, {"url": "DataTable.html#_paginator.dropdowns", "host": "DataTable", "name": "_paginator.dropdowns"}, {"url": "DataTable.html#_paginator.links", "host": "DataTable", "name": "_paginator.links"}, {"url": "DataTable.html#paginatorOptions", "host": "DataTable", "name": "paginatorOptions"}, {"url": "DataTable.html#paginatorOptions.containers", "host": "DataTable", "name": "paginatorOptions.containers"}, {"url": "DataTable.html#paginatorOptions.currentPage", "host": "DataTable", "name": "paginatorOptions.currentPage"}, {"url": "DataTable.html#paginatorOptions.dropdownOptions", "host": "DataTable", "name": "paginatorOptions.dropdownOptions"}, {"url": "DataTable.html#paginatorOptions.pageLinks", "host": "DataTable", "name": "paginatorOptions.pageLinks"}, {"url": "DataTable.html#paginatorOptions.rowsPerPage", "host": "DataTable", "name": "paginatorOptions.rowsPerPage"}, {"url": "DataTable.html#_paginator.pageLinks", "host": "DataTable", "name": "_paginator.pageLinks"}, {"url": "DataTable.html#_paginator.rowsPerPage", "host": "DataTable", "name": "_paginator.rowsPerPage"}, {"url": "DataTable.html#_paginator.totalPages", "host": "DataTable", "name": "_paginator.totalPages"}, {"url": "Column.html#_parent", "host": "Column", "name": "_parent"}, {"url": "YAHOO.widget.Menu.html#parent", "host": "YAHOO.widget.Menu", "name": "parent"}, {"url": "YAHOO.widget.MenuItem.html#parent", "host": "YAHOO.widget.MenuItem", "name": "parent"}, {"url": "YAHOO.widget.Calendar.html#parent", "host": "YAHOO.widget.Calendar", "name": "parent"}, {"url": "YAHOO.widget.Node.html#parent", "host": "YAHOO.widget.Node", "name": "parent"}, {"url": "YAHOO.widget.Node.html#parentChange", "host": "YAHOO.widget.Node", "name": "parentChange"}, {"url": "YAHOO.widget.SliderThumb.html#parentElId", "host": "YAHOO.widget.SliderThumb", "name": "parentElId"}, {"url": "Column.html#parse", "host": "Column", "name": "parse"}, {"url": "DataSource.html#parseArrayData", "host": "DataSource", "name": "parseArrayData"}, {"url": "Column.html#parseCheckbox", "host": "Column", "name": "parseCheckbox"}, {"url": "YAHOO.util.ColorAnim.html#parseColor", "host": "YAHOO.util.ColorAnim", "name": "parseColor"}, {"url": "Column.html#parseCurrency", "host": "Column", "name": "parseCurrency"}, {"url": "Column.html#parseDate", "host": "Column", "name": "parseDate"}, {"url": "YAHOO.widget.Calendar.html#_parseDate", "host": "YAHOO.widget.Calendar", "name": "_parseDate"}, {"url": "YAHOO.widget.Calendar.html#_parseDates", "host": "YAHOO.widget.Calendar", "name": "_parseDates"}, {"url": "DataSource.html#parseJSONData", "host": "DataSource", "name": "parseJSONData"}, {"url": "Column.html#parseNumber", "host": "Column", "name": "parseNumber"}, {"url": "YAHOO.widget.Calendar.html#_parsePageDate", "host": "YAHOO.widget.Calendar", "name": "_parsePageDate"}, {"url": "Column.html#parser", "host": "Column", "name": "parser"}, {"url": "YAHOO.widget.Calendar.html#_parseRange", "host": "YAHOO.widget.Calendar", "name": "_parseRange"}, {"url": "YAHOO.widget.DS_XHR.html#parseResponse", "host": "YAHOO.widget.DS_XHR", "name": "parseResponse"}, {"url": "Column.html#parseSelect", "host": "Column", "name": "parseSelect"}, {"url": "DataSource.html#parseTextData", "host": "DataSource", "name": "parseTextData"}, {"url": "DataSource.html#parseXMLData", "host": "DataSource", "name": "parseXMLData"}, {"url": "YAHOO.widget.LogReader.html#pause", "host": "YAHOO.widget.LogReader", "name": "pause"}, {"url": "YAHOO.widget.Module.html#platform", "host": "YAHOO.widget.Module", "name": "platform"}, {"url": "YAHOO.util.DragDropMgr.html#POINT", "host": "YAHOO.util.DragDropMgr", "name": "POINT"}, {"url": "YAHOO.util.Connect.html#_poll", "host": "YAHOO.util.Connect", "name": "_poll"}, {"url": "YAHOO.util.Connect.html#_polling_interval", "host": "YAHOO.util.Connect", "name": "_polling_interval"}, {"url": "YAHOO.util.Event.html#POLL_INTERVAL", "host": "YAHOO.util.Event", "name": "POLL_INTERVAL"}, {"url": "YAHOO.util.Event.html#POLL_RETRYS", "host": "YAHOO.util.Event", "name": "POLL_RETRYS"}, {"url": "YAHOO.widget.TreeView.html#popNode", "host": "YAHOO.widget.TreeView", "name": "popNode"}, {"url": "YAHOO.widget.AutoComplete.html#_populateList", "host": "YAHOO.widget.AutoComplete", "name": "_populateList"}, {"url": "DataTable.html#populateTable", "host": "DataTable", "name": "populateTable"}, {"url": "YAHOO.widget.Menu.html#position", "host": "YAHOO.widget.Menu", "name": "position"}, {"url": "YAHOO.widget.Menubar.html#position", "host": "YAHOO.widget.Menubar", "name": "position"}, {"url": "YAHOO.widget.Dialog.html#postmethod", "host": "YAHOO.widget.Dialog", "name": "postmethod"}, {"url": "YAHOO.widget.AutoComplete.html#prehighlightClassName", "host": "YAHOO.widget.AutoComplete", "name": "prehighlightClassName"}, {"url": "YAHOO.util.DragDropMgr.html#preventDefault", "host": "YAHOO.util.DragDropMgr", "name": "preventDefault"}, {"url": "YAHOO.util.Event.html#preventDefault", "host": "YAHOO.util.Event", "name": "preventDefault"}, {"url": "YAHOO.widget.Tooltip.html#preventoverlap", "host": "YAHOO.widget.Tooltip", "name": "preventoverlap"}, {"url": "YAHOO.widget.Tooltip.html#preventOverlay", "host": "YAHOO.widget.Tooltip", "name": "preventOverlay"}, {"url": "YAHOO.widget.Calendar.html#previousMonth", "host": "YAHOO.widget.Calendar", "name": "previousMonth"}, {"url": "YAHOO.widget.CalendarGroup.html#previousMonth", "host": "YAHOO.widget.CalendarGroup", "name": "previousMonth"}, {"url": "YAHOO.widget.Node.html#previousSibling", "host": "YAHOO.widget.Node", "name": "previousSibling"}, {"url": "YAHOO.widget.Calendar.html#previousYear", "host": "YAHOO.widget.Calendar", "name": "previousYear"}, {"url": "YAHOO.widget.CalendarGroup.html#previousYear", "host": "YAHOO.widget.CalendarGroup", "name": "previousYear"}, {"url": "YAHOO.widget.SliderThumb.html#_prevVal", "host": "YAHOO.widget.SliderThumb", "name": "_prevVal"}, {"url": "YAHOO.util.DragDrop.html#primaryButtonOnly", "host": "YAHOO.util.DragDrop", "name": "primaryButtonOnly"}, {"url": "YAHOO.widget.LogReader.html#_printBuffer", "host": "YAHOO.widget.LogReader", "name": "_printBuffer"}, {"url": "YAHOO.widget.Logger.html#_printToBrowserConsole", "host": "YAHOO.widget.Logger", "name": "_printToBrowserConsole"}, {"url": "YAHOO.widget.LogReader.html#_printToConsole", "host": "YAHOO.widget.LogReader", "name": "_printToConsole"}, {"url": "YAHOO.util.Event.html#purgeElement", "host": "YAHOO.util.Event", "name": "purgeElement"}, {"url": "YAHOO.widget.AutoComplete.html#queryDelay", "host": "YAHOO.widget.AutoComplete", "name": "queryDelay"}, {"url": "YAHOO.widget.DataSource.html#queryEvent", "host": "YAHOO.widget.DataSource", "name": "queryEvent"}, {"url": "YAHOO.widget.AutoComplete.html#_queryInterval", "host": "YAHOO.widget.AutoComplete", "name": "_queryInterval"}, {"url": "YAHOO.widget.DataSource.html#queryMatchCase", "host": "YAHOO.widget.DataSource", "name": "queryMatchCase"}, {"url": "YAHOO.widget.DataSource.html#queryMatchContains", "host": "YAHOO.widget.DataSource", "name": "queryMatchContains"}, {"url": "YAHOO.widget.DataSource.html#queryMatchSubset", "host": "YAHOO.widget.DataSource", "name": "queryMatchSubset"}, {"url": "YAHOO.util.AnimMgr.html#queue", "host": "YAHOO.util.AnimMgr", "name": "queue"}, {"url": "YAHOO.util.Config.html#queueInProgress", "host": "YAHOO.util.Config", "name": "queueInProgress"}, {"url": "YAHOO.util.Config.html#queueProperty", "host": "YAHOO.util.Config", "name": "queueProperty"}, {"url": "YAHOO.widget.Button.html#RADIO_CHECKED_TITLE", "host": "YAHOO.widget.Button", "name": "RADIO_CHECKED_TITLE"}, {"url": "DataTable.html#radioClickEvent", "host": "DataTable", "name": "radioClickEvent"}, {"url": "YAHOO.widget.Button.html#RADIO_DEFAULT_TITLE", "host": "YAHOO.widget.Button", "name": "RADIO_DEFAULT_TITLE"}, {"url": "YAHOO.util.Attribute.html#readOnly", "host": "YAHOO.util.Attribute", "name": "readOnly"}, {"url": "YAHOO.util.Event.html#_ready", "host": "YAHOO.util.Event", "name": "_ready"}, {"url": "DataTable.html#recordSetUpdateEvent", "host": "DataTable", "name": "recordSetUpdateEvent"}, {"url": "RecordSet.html#recordUpdateEvent", "host": "RecordSet", "name": "recordUpdateEvent"}, {"url": "YAHOO.util.Config.html#refireEvent", "host": "YAHOO.util.Config", "name": "refireEvent"}, {"url": "YAHOO.util.Config.html#refresh", "host": "YAHOO.util.Config", "name": "refresh"}, {"url": "YAHOO.util.Attribute.html#refresh", "host": "YAHOO.util.Attribute", "name": "refresh"}, {"url": "YAHOO.util.AttributeProvider.html#refresh", "host": "YAHOO.util.AttributeProvider", "name": "refresh"}, {"url": "YAHOO.widget.Node.html#refresh", "host": "YAHOO.widget.Node", "name": "refresh"}, {"url": "YAHOO.util.DragDropMgr.html#refreshCache", "host": "YAHOO.util.DragDropMgr", "name": "refreshCache"}, {"url": "YAHOO.widget.Calendar.html#refreshLocale", "host": "YAHOO.widget.Calendar", "name": "refreshLocale"}, {"url": "DataTable.html#refreshTable", "host": "DataTable", "name": "refreshTable"}, {"url": "YAHOO.util.Event.html#regCE", "host": "YAHOO.util.Event", "name": "regCE"}, {"url": "YAHOO.util.DragDropMgr.html#regDragDrop", "host": "YAHOO.util.DragDropMgr", "name": "regDragDrop"}, {"url": "YAHOO.util.DragDropMgr.html#regHandle", "host": "YAHOO.util.DragDropMgr", "name": "regHandle"}, {"url": "YAHOO.widget.OverlayManager.html#register", "host": "YAHOO.widget.OverlayManager", "name": "register"}, {"url": "YAHOO.html#register", "host": "YAHOO", "name": "register"}, {"url": "YAHOO.util.AttributeProvider.html#register", "host": "YAHOO.util.AttributeProvider", "name": "register"}, {"url": "YAHOO.util.History.html#register", "host": "YAHOO.util.History", "name": "register"}, {"url": "YAHOO.widget.Panel.html#registerDragDrop", "host": "YAHOO.widget.Panel", "name": "registerDragDrop"}, {"url": "YAHOO.util.AnimMgr.html#registerElement", "host": "YAHOO.util.AnimMgr", "name": "registerElement"}, {"url": "YAHOO.widget.Dialog.html#registerForm", "host": "YAHOO.widget.Dialog", "name": "registerForm"}, {"url": "YAHOO.widget.SimpleDialog.html#registerForm", "host": "YAHOO.widget.SimpleDialog", "name": "registerForm"}, {"url": "YAHOO.util.Element.html#_registerHTMLAttr", "host": "YAHOO.util.Element", "name": "_registerHTMLAttr"}, {"url": "YAHOO.widget.TreeView.html#regNode", "host": "YAHOO.widget.TreeView", "name": "regNode"}, {"url": "YAHOO.util.Connect.html#releaseObject", "host": "YAHOO.util.Connect", "name": "releaseObject"}, {"url": "YAHOO.widget.OverlayManager.html#remove", "host": "YAHOO.widget.OverlayManager", "name": "remove"}, {"url": "YAHOO.util.DragDropMgr.html#_remove", "host": "YAHOO.util.DragDropMgr", "name": "_remove"}, {"url": "YAHOO.widget.ButtonGroup.html#removeButton", "host": "YAHOO.widget.ButtonGroup", "name": "removeButton"}, {"url": "YAHOO.util.Element.html#removeChild", "host": "YAHOO.util.Element", "name": "removeChild"}, {"url": "YAHOO.widget.TreeView.html#removeChildren", "host": "YAHOO.widget.TreeView", "name": "removeChildren"}, {"url": "YAHOO.util.Dom.html#removeClass", "host": "YAHOO.util.Dom", "name": "removeClass"}, {"url": "YAHOO.util.Element.html#removeClass", "host": "YAHOO.util.Element", "name": "removeClass"}, {"url": "YAHOO.util.DragDropMgr.html#removeDDFromGroup", "host": "YAHOO.util.DragDropMgr", "name": "removeDDFromGroup"}, {"url": "YAHOO.widget.ContextMenu.html#_removeEventHandlers", "host": "YAHOO.widget.ContextMenu", "name": "_removeEventHandlers"}, {"url": "YAHOO.widget.Tooltip.html#_removeEventListeners", "host": "YAHOO.widget.Tooltip", "name": "_removeEventListeners"}, {"url": "YAHOO.util.DragDrop.html#removeFromGroup", "host": "YAHOO.util.DragDrop", "name": "removeFromGroup"}, {"url": "YAHOO.util.DragDrop.html#removeInvalidHandleClass", "host": "YAHOO.util.DragDrop", "name": "removeInvalidHandleClass"}, {"url": "YAHOO.util.DragDrop.html#removeInvalidHandleId", "host": "YAHOO.util.DragDrop", "name": "removeInvalidHandleId"}, {"url": "YAHOO.util.DragDrop.html#removeInvalidHandleType", "host": "YAHOO.util.DragDrop", "name": "removeInvalidHandleType"}, {"url": "YAHOO.widget.Menu.html#removeItem", "host": "YAHOO.widget.Menu", "name": "removeItem"}, {"url": "YAHOO.widget.MenuManager.html#removeItem", "host": "YAHOO.widget.MenuManager", "name": "removeItem"}, {"url": "YAHOO.widget.Menu.html#_removeItemFromGroupByIndex", "host": "YAHOO.widget.Menu", "name": "_removeItemFromGroupByIndex"}, {"url": "YAHOO.widget.Menu.html#_removeItemFromGroupByValue", "host": "YAHOO.widget.Menu", "name": "_removeItemFromGroupByValue"}, {"url": "YAHOO.util.Element.html#removeListener", "host": "YAHOO.util.Element", "name": "removeListener"}, {"url": "YAHOO.util.Event.html#removeListener", "host": "YAHOO.util.Event", "name": "removeListener"}, {"url": "YAHOO.widget.Panel.html#removeMask", "host": "YAHOO.widget.Panel", "name": "removeMask"}, {"url": "YAHOO.widget.MenuManager.html#removeMenu", "host": "YAHOO.widget.MenuManager", "name": "removeMenu"}, {"url": "YAHOO.widget.TreeView.html#removeNode", "host": "YAHOO.widget.TreeView", "name": "removeNode"}, {"url": "YAHOO.widget.TabView.html#removeTab", "host": "YAHOO.widget.TabView", "name": "removeTab"}, {"url": "YAHOO.widget.Module.html#render", "host": "YAHOO.widget.Module", "name": "render"}, {"url": "YAHOO.widget.Panel.html#render", "host": "YAHOO.widget.Panel", "name": "render"}, {"url": "YAHOO.widget.Calendar.html#render", "host": "YAHOO.widget.Calendar", "name": "render"}, {"url": "YAHOO.widget.CalendarGroup.html#render", "host": "YAHOO.widget.CalendarGroup", "name": "render"}, {"url": "YAHOO.widget.Calendar.html#renderBody", "host": "YAHOO.widget.Calendar", "name": "renderBody"}, {"url": "YAHOO.widget.Calendar.html#renderBodyCellRestricted", "host": "YAHOO.widget.Calendar", "name": "renderBodyCellRestricted"}, {"url": "YAHOO.widget.Calendar.html#renderCellDefault", "host": "YAHOO.widget.Calendar", "name": "renderCellDefault"}, {"url": "YAHOO.widget.Calendar.html#renderCellNotThisMonth", "host": "YAHOO.widget.Calendar", "name": "renderCellNotThisMonth"}, {"url": "YAHOO.widget.Calendar.html#renderCellStyleHighlight1", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleHighlight1"}, {"url": "YAHOO.widget.Calendar.html#renderCellStyleHighlight2", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleHighlight2"}, {"url": "YAHOO.widget.Calendar.html#renderCellStyleHighlight3", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleHighlight3"}, {"url": "YAHOO.widget.Calendar.html#renderCellStyleHighlight4", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleHighlight4"}, {"url": "YAHOO.widget.Calendar.html#renderCellStyleSelected", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleSelected"}, {"url": "YAHOO.widget.Calendar.html#renderCellStyleToday", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleToday"}, {"url": "YAHOO.widget.Node.html#renderChildren", "host": "YAHOO.widget.Node", "name": "renderChildren"}, {"url": "YAHOO.widget.Module.html#renderEvent", "host": "YAHOO.widget.Module", "name": "renderEvent"}, {"url": "YAHOO.widget.Calendar.html#renderEvent", "host": "YAHOO.widget.Calendar", "name": "renderEvent"}, {"url": "YAHOO.widget.CalendarGroup.html#renderEvent", "host": "YAHOO.widget.CalendarGroup", "name": "renderEvent"}, {"url": "YAHOO.widget.Calendar.html#renderFooter", "host": "YAHOO.widget.Calendar", "name": "renderFooter"}, {"url": "YAHOO.widget.CalendarGroup.html#renderFooter", "host": "YAHOO.widget.CalendarGroup", "name": "renderFooter"}, {"url": "YAHOO.widget.Calendar.html#renderHeader", "host": "YAHOO.widget.Calendar", "name": "renderHeader"}, {"url": "YAHOO.widget.CalendarGroup.html#renderHeader", "host": "YAHOO.widget.CalendarGroup", "name": "renderHeader"}, {"url": "YAHOO.widget.Node.html#renderHidden", "host": "YAHOO.widget.Node", "name": "renderHidden"}, {"url": "YAHOO.widget.Calendar.html#renderOutOfBoundsDate", "host": "YAHOO.widget.Calendar", "name": "renderOutOfBoundsDate"}, {"url": "YAHOO.widget.Calendar.html#renderRowFooter", "host": "YAHOO.widget.Calendar", "name": "renderRowFooter"}, {"url": "YAHOO.widget.Calendar.html#renderRowHeader", "host": "YAHOO.widget.Calendar", "name": "renderRowHeader"}, {"url": "YAHOO.widget.Calendar.html#_renderStack", "host": "YAHOO.widget.Calendar", "name": "_renderStack"}, {"url": "YAHOO.widget.Calendar.html#renderStack", "host": "YAHOO.widget.Calendar", "name": "renderStack"}, {"url": "RecordSet.html#replace", "host": "RecordSet", "name": "replace"}, {"url": "YAHOO.util.Element.html#replaceChild", "host": "YAHOO.util.Element", "name": "replaceChild"}, {"url": "YAHOO.util.Dom.html#replaceClass", "host": "YAHOO.util.Dom", "name": "replaceClass"}, {"url": "YAHOO.util.Element.html#replaceClass", "host": "YAHOO.util.Element", "name": "replaceClass"}, {"url": "DataSource.html#requestEvent", "host": "DataSource", "name": "requestEvent"}, {"url": "RecordSet.html#reset", "host": "RecordSet", "name": "reset"}, {"url": "YAHOO.widget.Calendar.html#reset", "host": "YAHOO.widget.Calendar", "name": "reset"}, {"url": "YAHOO.widget.CalendarGroup.html#reset", "host": "YAHOO.widget.CalendarGroup", "name": "reset"}, {"url": "YAHOO.widget.Logger.html#reset", "host": "YAHOO.widget.Logger", "name": "reset"}, {"url": "YAHOO.util.AttributeProvider.html#resetAttributeConfig", "host": "YAHOO.util.AttributeProvider", "name": "resetAttributeConfig"}, {"url": "YAHOO.util.Attribute.html#resetConfig", "host": "YAHOO.util.Attribute", "name": "resetConfig"}, {"url": "YAHOO.util.DragDrop.html#resetConstraints", "host": "YAHOO.util.DragDrop", "name": "resetConstraints"}, {"url": "YAHOO.util.Connect.html#resetDefaultHeaders", "host": "YAHOO.util.Connect", "name": "resetDefaultHeaders"}, {"url": "YAHOO.widget.Calendar.html#resetEvent", "host": "YAHOO.widget.Calendar", "name": "resetEvent"}, {"url": "YAHOO.widget.CalendarGroup.html#resetEvent", "host": "YAHOO.widget.CalendarGroup", "name": "resetEvent"}, {"url": "YAHOO.util.Connect.html#resetFormState", "host": "YAHOO.util.Connect", "name": "resetFormState"}, {"url": "YAHOO.util.Config.html#resetProperty", "host": "YAHOO.util.Config", "name": "resetProperty"}, {"url": "YAHOO.widget.Calendar.html#resetRenderers", "host": "YAHOO.widget.Calendar", "name": "resetRenderers"}, {"url": "YAHOO.util.Attribute.html#resetValue", "host": "YAHOO.util.Attribute", "name": "resetValue"}, {"url": "YAHOO.util.AttributeProvider.html#resetValue", "host": "YAHOO.util.AttributeProvider", "name": "resetValue"}, {"url": "Column.html#resizeable", "host": "Column", "name": "resizeable"}, {"url": "YAHOO.util.DDProxy.html#resizeFrame", "host": "YAHOO.util.DDProxy", "name": "resizeFrame"}, {"url": "YAHOO.util.DDProxy.html#_resizeProxy", "host": "YAHOO.util.DDProxy", "name": "_resizeProxy"}, {"url": "YAHOO.util.Event.html#resolveTextNode", "host": "YAHOO.util.Event", "name": "resolveTextNode"}, {"url": "DataSource.html#responseCacheEvent", "host": "DataSource", "name": "responseCacheEvent"}, {"url": "DataSource.html#responseEvent", "host": "DataSource", "name": "responseEvent"}, {"url": "DataSource.html#responseParseEvent", "host": "DataSource", "name": "responseParseEvent"}, {"url": "DataSource.html#responseSchema", "host": "DataSource", "name": "responseSchema"}, {"url": "YAHOO.widget.DS_XHR.html#responseStripAfter", "host": "YAHOO.widget.DS_XHR", "name": "responseStripAfter"}, {"url": "YAHOO.widget.DS_XHR.html#responseType", "host": "YAHOO.widget.DS_XHR", "name": "responseType"}, {"url": "DataSource.html#responseType", "host": "DataSource", "name": "responseType"}, {"url": "YAHOO.widget.LogReader.html#resume", "host": "YAHOO.widget.LogReader", "name": "resume"}, {"url": "YAHOO.util.Event.html#retryCount", "host": "YAHOO.util.Event", "name": "retryCount"}, {"url": "YAHOO.util.Region.html#right", "host": "YAHOO.util.Region", "name": "right"}, {"url": "YAHOO.widget.LogReader.html#right", "host": "YAHOO.widget.LogReader", "name": "right"}, {"url": "DataTable.html#rowAppendEvent", "host": "DataTable", "name": "rowAppendEvent"}, {"url": "DataTable.html#rowDeleteEvent", "host": "DataTable", "name": "rowDeleteEvent"}, {"url": "DataTable.html#rowSelectEvent", "host": "DataTable", "name": "rowSelectEvent"}, {"url": "DataTable.html#rowSingleSelect", "host": "DataTable", "name": "rowSingleSelect"}, {"url": "Column.html#_rowspan", "host": "Column", "name": "_rowspan"}, {"url": "DataTable.html#rowsPerPage", "host": "DataTable", "name": "rowsPerPage"}, {"url": "DataTable.html#rowsPerPageDropdown", "host": "DataTable", "name": "rowsPerPageDropdown"}, {"url": "DataTable.html#rowUnselectEvent", "host": "DataTable", "name": "rowUnselectEvent"}, {"url": "DataTable.html#rowUpdateEvent", "host": "DataTable", "name": "rowUpdateEvent"}, {"url": "YAHOO.util.AnimMgr.html#run", "host": "YAHOO.util.AnimMgr", "name": "run"}, {"url": "DataTable.html#saveEditorData", "host": "DataTable", "name": "saveEditorData"}, {"url": "YAHOO.widget.Menu.html#_sClassName", "host": "YAHOO.widget.Menu", "name": "_sClassName"}, {"url": "YAHOO.widget.MenuItem.html#_sClassName", "host": "YAHOO.widget.MenuItem", "name": "_sClassName"}, {"url": "YAHOO.util.CustomEvent.html#scope", "host": "YAHOO.util.CustomEvent", "name": "scope"}, {"url": "YAHOO.widget.DS_XHR.html#scriptQueryAppend", "host": "YAHOO.widget.DS_XHR", "name": "scriptQueryAppend"}, {"url": "YAHOO.widget.DS_XHR.html#scriptQueryParam", "host": "YAHOO.widget.DS_XHR", "name": "scriptQueryParam"}, {"url": "YAHOO.widget.DS_XHR.html#scriptURI", "host": "YAHOO.widget.DS_XHR", "name": "scriptURI"}, {"url": "YAHOO.util.DD.html#scroll", "host": "YAHOO.util.DD", "name": "scroll"}, {"url": "YAHOO.widget.SliderThumb.html#scroll", "host": "YAHOO.widget.SliderThumb", "name": "scroll"}, {"url": "DataTable.html#scrollable", "host": "DataTable", "name": "scrollable"}, {"url": "YAHOO.widget.AutoComplete.html#_sCurQuery", "host": "YAHOO.widget.AutoComplete", "name": "_sCurQuery"}, {"url": "DataTable.html#_select", "host": "DataTable", "name": "_select"}, {"url": "DataTable.html#select", "host": "DataTable", "name": "select"}, {"url": "YAHOO.widget.Calendar.html#select", "host": "YAHOO.widget.Calendar", "name": "select"}, {"url": "YAHOO.widget.CalendarGroup.html#select", "host": "YAHOO.widget.CalendarGroup", "name": "select"}, {"url": "YAHOO.widget.Calendar.html#selectCell", "host": "YAHOO.widget.Calendar", "name": "selectCell"}, {"url": "YAHOO.widget.CalendarGroup.html#selectCell", "host": "YAHOO.widget.CalendarGroup", "name": "selectCell"}, {"url": "YAHOO.widget.MenuItem.html#selected", "host": "YAHOO.widget.MenuItem", "name": "selected"}, {"url": "YAHOO.widget.Calendar.html#selected", "host": "YAHOO.widget.Calendar", "name": "selected"}, {"url": "YAHOO.widget.CalendarGroup.html#selected", "host": "YAHOO.widget.CalendarGroup", "name": "selected"}, {"url": "YAHOO.widget.Calendar.html#_selectedDates", "host": "YAHOO.widget.Calendar", "name": "_selectedDates"}, {"url": "YAHOO.widget.Button.html#selectedMenuItem", "host": "YAHOO.widget.Button", "name": "selectedMenuItem"}, {"url": "DataTable.html#selectEvent", "host": "DataTable", "name": "selectEvent"}, {"url": "YAHOO.widget.Calendar.html#selectEvent", "host": "YAHOO.widget.Calendar", "name": "selectEvent"}, {"url": "YAHOO.widget.CalendarGroup.html#selectEvent", "host": "YAHOO.widget.CalendarGroup", "name": "selectEvent"}, {"url": "YAHOO.widget.AutoComplete.html#selectionEnforceEvent", "host": "YAHOO.widget.AutoComplete", "name": "selectionEnforceEvent"}, {"url": "YAHOO.widget.AutoComplete.html#_selectItem", "host": "YAHOO.widget.AutoComplete", "name": "_selectItem"}, {"url": "DataTable.html#selectRow", "host": "DataTable", "name": "selectRow"}, {"url": "DataTable.html#_selectRowAnchorId", "host": "DataTable", "name": "_selectRowAnchorId"}, {"url": "YAHOO.widget.AutoComplete.html#_selectText", "host": "YAHOO.widget.AutoComplete", "name": "_selectText"}, {"url": "YAHOO.widget.AutoComplete.html#_sendQuery", "host": "YAHOO.widget.AutoComplete", "name": "_sendQuery"}, {"url": "YAHOO.widget.AutoComplete.html#sendQuery", "host": "YAHOO.widget.AutoComplete", "name": "sendQuery"}, {"url": "DataSource.html#sendRequest", "host": "DataSource", "name": "sendRequest"}, {"url": "YAHOO.util.AttributeProvider.html#set", "host": "YAHOO.util.AttributeProvider", "name": "set"}, {"url": "YAHOO.widget.Button.html#_setAccessKey", "host": "YAHOO.widget.Button", "name": "_setAccessKey"}, {"url": "YAHOO.util.Anim.html#setAttribute", "host": "YAHOO.util.Anim", "name": "setAttribute"}, {"url": "YAHOO.util.AttributeProvider.html#setAttributeConfig", "host": "YAHOO.util.AttributeProvider", "name": "setAttributeConfig"}, {"url": "YAHOO.widget.Button.html#setAttributeFromDOMAttribute", "host": "YAHOO.widget.Button", "name": "setAttributeFromDOMAttribute"}, {"url": "YAHOO.util.AttributeProvider.html#setAttributes", "host": "YAHOO.util.AttributeProvider", "name": "setAttributes"}, {"url": "YAHOO.widget.Button.html#setAttributesFromSrcElement", "host": "YAHOO.widget.Button", "name": "setAttributesFromSrcElement"}, {"url": "YAHOO.widget.Module.html#setBody", "host": "YAHOO.widget.Module", "name": "setBody"}, {"url": "YAHOO.widget.AutoComplete.html#setBody", "host": "YAHOO.widget.AutoComplete", "name": "setBody"}, {"url": "YAHOO.widget.Button.html#_setChecked", "host": "YAHOO.widget.Button", "name": "_setChecked"}, {"url": "YAHOO.widget.CalendarGroup.html#setChildFunction", "host": "YAHOO.widget.CalendarGroup", "name": "setChildFunction"}, {"url": "YAHOO.widget.TreeView.html#setCollapseAnim", "host": "YAHOO.widget.TreeView", "name": "setCollapseAnim"}, {"url": "YAHOO.util.Connect.html#setDefaultPostHeader", "host": "YAHOO.util.Connect", "name": "setDefaultPostHeader"}, {"url": "YAHOO.util.Connect.html#setDefaultXhrHeader", "host": "YAHOO.util.Connect", "name": "setDefaultXhrHeader"}, {"url": "YAHOO.util.DD.html#setDelta", "host": "YAHOO.util.DD", "name": "setDelta"}, {"url": "YAHOO.widget.Button.html#_setDisabled", "host": "YAHOO.widget.Button", "name": "_setDisabled"}, {"url": "YAHOO.widget.ButtonGroup.html#_setDisabled", "host": "YAHOO.widget.ButtonGroup", "name": "_setDisabled"}, {"url": "YAHOO.util.DragDrop.html#setDragElId", "host": "YAHOO.util.DragDrop", "name": "setDragElId"}, {"url": "YAHOO.util.DD.html#setDragElPos", "host": "YAHOO.util.DD", "name": "setDragElPos"}, {"url": "YAHOO.widget.Node.html#setDynamicLoad", "host": "YAHOO.widget.Node", "name": "setDynamicLoad"}, {"url": "YAHOO.widget.TreeView.html#setDynamicLoad", "host": "YAHOO.widget.TreeView", "name": "setDynamicLoad"}, {"url": "YAHOO.widget.TreeView.html#setExpandAnim", "host": "YAHOO.widget.TreeView", "name": "setExpandAnim"}, {"url": "DataTable.html#_setFirstRow", "host": "DataTable", "name": "_setFirstRow"}, {"url": "YAHOO.widget.Module.html#setFooter", "host": "YAHOO.widget.Module", "name": "setFooter"}, {"url": "YAHOO.widget.AutoComplete.html#setFooter", "host": "YAHOO.widget.AutoComplete", "name": "setFooter"}, {"url": "YAHOO.util.Connect.html#setForm", "host": "YAHOO.util.Connect", "name": "setForm"}, {"url": "YAHOO.widget.Button.html#setFormElementProperties", "host": "YAHOO.widget.Button", "name": "setFormElementProperties"}, {"url": "YAHOO.util.DragDrop.html#setHandleElId", "host": "YAHOO.util.DragDrop", "name": "setHandleElId"}, {"url": "YAHOO.widget.Module.html#setHeader", "host": "YAHOO.widget.Module", "name": "setHeader"}, {"url": "YAHOO.widget.AutoComplete.html#setHeader", "host": "YAHOO.widget.AutoComplete", "name": "setHeader"}, {"url": "YAHOO.util.Connect.html#setHeader", "host": "YAHOO.util.Connect", "name": "setHeader"}, {"url": "YAHOO.widget.Button.html#_setHref", "host": "YAHOO.widget.Button", "name": "_setHref"}, {"url": "YAHOO.widget.Menu.html#setInitialFocus", "host": "YAHOO.widget.Menu", "name": "setInitialFocus"}, {"url": "YAHOO.util.DragDrop.html#setInitialPosition", "host": "YAHOO.util.DragDrop", "name": "setInitialPosition"}, {"url": "YAHOO.widget.Menu.html#setInitialSelection", "host": "YAHOO.widget.Menu", "name": "setInitialSelection"}, {"url": "YAHOO.widget.Menu.html#setItemGroupTitle", "host": "YAHOO.widget.Menu", "name": "setItemGroupTitle"}, {"url": "YAHOO.widget.Button.html#_setLabel", "host": "YAHOO.widget.Button", "name": "_setLabel"}, {"url": "DataTable.html#_setLastRow", "host": "DataTable", "name": "_setLastRow"}, {"url": "YAHOO.widget.Menu.html#_setMaxHeight", "host": "YAHOO.widget.Menu", "name": "_setMaxHeight"}, {"url": "YAHOO.widget.Button.html#_setMenu", "host": "YAHOO.widget.Button", "name": "_setMenu"}, {"url": "YAHOO.widget.Calendar.html#setMonth", "host": "YAHOO.widget.Calendar", "name": "setMonth"}, {"url": "YAHOO.widget.CalendarGroup.html#setMonth", "host": "YAHOO.widget.CalendarGroup", "name": "setMonth"}, {"url": "YAHOO.widget.CalendarGroup.html#_setMonthOnDate", "host": "YAHOO.widget.CalendarGroup", "name": "_setMonthOnDate"}, {"url": "YAHOO.widget.Button.html#_setOnClick", "host": "YAHOO.widget.Button", "name": "_setOnClick"}, {"url": "YAHOO.util.DragDrop.html#setOuterHandleElId", "host": "YAHOO.util.DragDrop", "name": "setOuterHandleElId"}, {"url": "YAHOO.util.DragDrop.html#setPadding", "host": "YAHOO.util.DragDrop", "name": "setPadding"}, {"url": "YAHOO.util.Connect.html#setPollingInterval", "host": "YAHOO.util.Connect", "name": "setPollingInterval"}, {"url": "YAHOO.util.Connect.html#setProgId", "host": "YAHOO.util.Connect", "name": "setProgId"}, {"url": "YAHOO.util.Config.html#setProperty", "host": "YAHOO.util.Config", "name": "setProperty"}, {"url": "YAHOO.widget.Slider.html#setRegionValue", "host": "YAHOO.widget.Slider", "name": "setRegionValue"}, {"url": "DataTable.html#_setRowStripes", "host": "DataTable", "name": "_setRowStripes"}, {"url": "YAHOO.util.Anim.html#setRuntimeAttribute", "host": "YAHOO.util.Anim", "name": "setRuntimeAttribute"}, {"url": "YAHOO.widget.LogWriter.html#setSource", "host": "YAHOO.widget.LogWriter", "name": "setSource"}, {"url": "YAHOO.util.DragDrop.html#setStartPosition", "host": "YAHOO.util.DragDrop", "name": "setStartPosition"}, {"url": "YAHOO.widget.Slider.html#setStartSliderState", "host": "YAHOO.widget.Slider", "name": "setStartSliderState"}, {"url": "YAHOO.util.Dom.html#setStyle", "host": "YAHOO.util.Dom", "name": "setStyle"}, {"url": "YAHOO.util.Element.html#setStyle", "host": "YAHOO.util.Element", "name": "setStyle"}, {"url": "YAHOO.widget.Button.html#_setTabIndex", "host": "YAHOO.widget.Button", "name": "_setTabIndex"}, {"url": "YAHOO.widget.Button.html#_setTarget", "host": "YAHOO.widget.Button", "name": "_setTarget"}, {"url": "YAHOO.widget.Slider.html#setThumbCenterPoint", "host": "YAHOO.widget.Slider", "name": "setThumbCenterPoint"}, {"url": "YAHOO.widget.Button.html#_setTitle", "host": "YAHOO.widget.Button", "name": "_setTitle"}, {"url": "YAHOO.widget.LogReader.html#setTitle", "host": "YAHOO.widget.LogReader", "name": "setTitle"}, {"url": "YAHOO.widget.Button.html#_setType", "host": "YAHOO.widget.Button", "name": "_setType"}, {"url": "YAHOO.widget.TreeView.html#setUpLabel", "host": "YAHOO.widget.TreeView", "name": "setUpLabel"}, {"url": "YAHOO.util.Attribute.html#setValue", "host": "YAHOO.util.Attribute", "name": "setValue"}, {"url": "YAHOO.widget.Slider.html#setValue", "host": "YAHOO.widget.Slider", "name": "setValue"}, {"url": "YAHOO.widget.Menu.html#_setWidth", "host": "YAHOO.widget.Menu", "name": "_setWidth"}, {"url": "YAHOO.util.Dom.html#setX", "host": "YAHOO.util.Dom", "name": "setX"}, {"url": "YAHOO.util.DragDrop.html#setXConstraint", "host": "YAHOO.util.DragDrop", "name": "setXConstraint"}, {"url": "YAHOO.util.DragDrop.html#setXTicks", "host": "YAHOO.util.DragDrop", "name": "setXTicks"}, {"url": "YAHOO.util.Dom.html#setXY", "host": "YAHOO.util.Dom", "name": "setXY"}, {"url": "YAHOO.util.Dom.html#setY", "host": "YAHOO.util.Dom", "name": "setY"}, {"url": "YAHOO.util.DragDrop.html#setYConstraint", "host": "YAHOO.util.DragDrop", "name": "setYConstraint"}, {"url": "YAHOO.widget.Calendar.html#setYear", "host": "YAHOO.widget.Calendar", "name": "setYear"}, {"url": "YAHOO.widget.CalendarGroup.html#setYear", "host": "YAHOO.widget.CalendarGroup", "name": "setYear"}, {"url": "YAHOO.util.DragDrop.html#setYTicks", "host": "YAHOO.util.DragDrop", "name": "setYTicks"}, {"url": "YAHOO.util.Connect.html#_sFormData", "host": "YAHOO.util.Connect", "name": "_sFormData"}, {"url": "ColumnEditor.html#show", "host": "ColumnEditor", "name": "show"}, {"url": "YAHOO.widget.Module.html#show", "host": "YAHOO.widget.Module", "name": "show"}, {"url": "YAHOO.widget.Calendar.html#show", "host": "YAHOO.widget.Calendar", "name": "show"}, {"url": "YAHOO.widget.LogReader.html#show", "host": "YAHOO.widget.LogReader", "name": "show"}, {"url": "YAHOO.widget.OverlayManager.html#showAll", "host": "YAHOO.widget.OverlayManager", "name": "showAll"}, {"url": "YAHOO.widget.LogReader.html#showCategory", "host": "YAHOO.widget.LogReader", "name": "showCategory"}, {"url": "YAHOO.widget.Node.html#showChildren", "host": "YAHOO.widget.Node", "name": "showChildren"}, {"url": "YAHOO.widget.Tooltip.html#showdelay", "host": "YAHOO.widget.Tooltip", "name": "showdelay"}, {"url": "YAHOO.widget.Menu.html#showdelay", "host": "YAHOO.widget.Menu", "name": "showdelay"}, {"url": "Column.html#showEditor", "host": "Column", "name": "showEditor"}, {"url": "DataTable.html#showEmptyMessage", "host": "DataTable", "name": "showEmptyMessage"}, {"url": "YAHOO.widget.Module.html#showEvent", "host": "YAHOO.widget.Module", "name": "showEvent"}, {"url": "YAHOO.util.DDProxy.html#showFrame", "host": "YAHOO.util.DDProxy", "name": "showFrame"}, {"url": "YAHOO.widget.Overlay.html#showIframe", "host": "YAHOO.widget.Overlay", "name": "showIframe"}, {"url": "DataTable.html#showLoadingMessage", "host": "DataTable", "name": "showLoadingMessage"}, {"url": "YAHOO.widget.Overlay.html#showMacGeckoScrollbars", "host": "YAHOO.widget.Overlay", "name": "showMacGeckoScrollbars"}, {"url": "YAHOO.widget.Panel.html#showMask", "host": "YAHOO.widget.Panel", "name": "showMask"}, {"url": "YAHOO.widget.Panel.html#showMaskEvent", "host": "YAHOO.widget.Panel", "name": "showMaskEvent"}, {"url": "YAHOO.widget.Button.html#_showMenu", "host": "YAHOO.widget.Button", "name": "_showMenu"}, {"url": "DataTable.html#showPage", "host": "DataTable", "name": "showPage"}, {"url": "YAHOO.widget.Tooltip.html#showProcId", "host": "YAHOO.widget.Tooltip", "name": "showProcId"}, {"url": "YAHOO.widget.LogReader.html#showSource", "host": "YAHOO.widget.LogReader", "name": "showSource"}, {"url": "DataTable.html#showTableMessage", "host": "DataTable", "name": "showTableMessage"}, {"url": "ColumnEditor.html#showTextareaEditor", "host": "ColumnEditor", "name": "showTextareaEditor"}, {"url": "ColumnEditor.html#showTextboxEditor", "host": "ColumnEditor", "name": "showTextboxEditor"}, {"url": "YAHOO.widget.Calendar.html#SHOW_WEEKDAYS", "host": "YAHOO.widget.Calendar", "name": "SHOW_WEEKDAYS"}, {"url": "YAHOO.widget.CalendarGroup.html#SHOW_WEEKDAYS", "host": "YAHOO.widget.CalendarGroup", "name": "SHOW_WEEKDAYS"}, {"url": "YAHOO.widget.Calendar.html#SHOW_WEEK_FOOTER", "host": "YAHOO.widget.Calendar", "name": "SHOW_WEEK_FOOTER"}, {"url": "YAHOO.widget.CalendarGroup.html#SHOW_WEEK_FOOTER", "host": "YAHOO.widget.CalendarGroup", "name": "SHOW_WEEK_FOOTER"}, {"url": "YAHOO.widget.Calendar.html#SHOW_WEEK_HEADER", "host": "YAHOO.widget.Calendar", "name": "SHOW_WEEK_HEADER"}, {"url": "YAHOO.widget.CalendarGroup.html#SHOW_WEEK_HEADER", "host": "YAHOO.widget.CalendarGroup", "name": "SHOW_WEEK_HEADER"}, {"url": "YAHOO.util.CustomEvent.html#signature", "host": "YAHOO.util.CustomEvent", "name": "signature"}, {"url": "YAHOO.util.CustomEvent.html#silent", "host": "YAHOO.util.CustomEvent", "name": "silent"}, {"url": "YAHOO.util.Event.html#_simpleAdd", "host": "YAHOO.util.Event", "name": "_simpleAdd"}, {"url": "YAHOO.util.Event.html#_simpleRemove", "host": "YAHOO.util.Event", "name": "_simpleRemove"}, {"url": "YAHOO.widget.Panel.html#sizeMask", "host": "YAHOO.widget.Panel", "name": "sizeMask"}, {"url": "YAHOO.widget.Panel.html#sizeUnderlay", "host": "YAHOO.widget.Panel", "name": "sizeUnderlay"}, {"url": "YAHOO.widget.AutoComplete.html#_sLastTextboxValue", "host": "YAHOO.widget.AutoComplete", "name": "_sLastTextboxValue"}, {"url": "YAHOO.widget.ContainerEffect.html#SLIDE", "host": "YAHOO.widget.ContainerEffect", "name": "SLIDE"}, {"url": "YAHOO.widget.Slider.html#slideEnd", "host": "YAHOO.widget.Slider", "name": "slideEnd"}, {"url": "YAHOO.widget.Slider.html#slideStart", "host": "YAHOO.widget.Slider", "name": "slideStart"}, {"url": "ColumnSet.html#_sName", "host": "ColumnSet", "name": "_sName"}, {"url": "DataTable.html#_sName", "host": "DataTable", "name": "_sName"}, {"url": "YAHOO.widget.AutoComplete.html#_sName", "host": "YAHOO.widget.AutoComplete", "name": "_sName"}, {"url": "YAHOO.widget.DataSource.html#_sName", "host": "YAHOO.widget.DataSource", "name": "_sName"}, {"url": "DataSource.html#_sName", "host": "DataSource", "name": "_sName"}, {"url": "YAHOO.widget.LogReader.html#_sName", "host": "YAHOO.widget.LogReader", "name": "_sName"}, {"url": "RecordSet.html#sort", "host": "RecordSet", "name": "sort"}, {"url": "Column.html#sortable", "host": "Column", "name": "sortable"}, {"url": "DataTable.html#sortColumn", "host": "DataTable", "name": "sortColumn"}, {"url": "DataTable.html#sortedBy", "host": "DataTable", "name": "sortedBy"}, {"url": "Column.html#sortOptions.ascFunction", "host": "Column", "name": "sortOptions.ascFunction"}, {"url": "Column.html#sortOptions.descFunction", "host": "Column", "name": "sortOptions.descFunction"}, {"url": "YAHOO.widget.LogMsg.html#source", "host": "YAHOO.widget.LogMsg", "name": "source"}, {"url": "YAHOO.widget.LogWriter.html#_source", "host": "YAHOO.widget.LogWriter", "name": "_source"}, {"url": "YAHOO.widget.Logger.html#sourceCreateEvent", "host": "YAHOO.widget.Logger", "name": "sourceCreateEvent"}, {"url": "YAHOO.widget.LogMsg.html#sourceDetail", "host": "YAHOO.widget.LogMsg", "name": "sourceDetail"}, {"url": "YAHOO.widget.LogReader.html#_sourceFilters", "host": "YAHOO.widget.LogReader", "name": "_sourceFilters"}, {"url": "YAHOO.widget.Logger.html#sources", "host": "YAHOO.widget.Logger", "name": "sources"}, {"url": "YAHOO.widget.Button.html#SPLITBUTTON_DEFAULT_TITLE", "host": "YAHOO.widget.Button", "name": "SPLITBUTTON_DEFAULT_TITLE"}, {"url": "YAHOO.widget.Button.html#SPLITBUTTON_OPTION_VISIBLE_TITLE", "host": "YAHOO.widget.Button", "name": "SPLITBUTTON_OPTION_VISIBLE_TITLE"}, {"url": "YAHOO.widget.Menu.html#srcElement", "host": "YAHOO.widget.Menu", "name": "srcElement"}, {"url": "YAHOO.widget.MenuItem.html#srcElement", "host": "YAHOO.widget.MenuItem", "name": "srcElement"}, {"url": "YAHOO.widget.Button.html#srcelement", "host": "YAHOO.widget.Button", "name": "srcelement"}, {"url": "YAHOO.widget.AutoComplete.html#_sSavedQuery", "host": "YAHOO.widget.AutoComplete", "name": "_sSavedQuery"}, {"url": "YAHOO.widget.Logger.html#_stack", "host": "YAHOO.widget.Logger", "name": "_stack"}, {"url": "YAHOO.util.AnimMgr.html#start", "host": "YAHOO.util.AnimMgr", "name": "start"}, {"url": "YAHOO.util.DragDrop.html#startDrag", "host": "YAHOO.util.DragDrop", "name": "startDrag"}, {"url": "YAHOO.util.DragDropMgr.html#startDrag", "host": "YAHOO.util.DragDropMgr", "name": "startDrag"}, {"url": "YAHOO.util.Event.html#startInterval", "host": "YAHOO.util.Event", "name": "startInterval"}, {"url": "YAHOO.widget.SliderThumb.html#startOffset", "host": "YAHOO.widget.SliderThumb", "name": "startOffset"}, {"url": "YAHOO.util.DragDrop.html#startPageX", "host": "YAHOO.util.DragDrop", "name": "startPageX"}, {"url": "YAHOO.util.DragDrop.html#startPageY", "host": "YAHOO.util.DragDrop", "name": "startPageY"}, {"url": "DataTable.html#startRecordIndex", "host": "DataTable", "name": "startRecordIndex"}, {"url": "YAHOO.util.Anim.html#startTime", "host": "YAHOO.util.Anim", "name": "startTime"}, {"url": "YAHOO.widget.Logger.html#_startTime", "host": "YAHOO.widget.Logger", "name": "_startTime"}, {"url": "YAHOO.widget.Calendar.html#START_WEEKDAY", "host": "YAHOO.widget.Calendar", "name": "START_WEEKDAY"}, {"url": "YAHOO.widget.CalendarGroup.html#START_WEEKDAY", "host": "YAHOO.widget.CalendarGroup", "name": "START_WEEKDAY"}, {"url": "YAHOO.util.DragDropMgr.html#startX", "host": "YAHOO.util.DragDropMgr", "name": "startX"}, {"url": "YAHOO.util.DragDropMgr.html#startY", "host": "YAHOO.util.DragDropMgr", "name": "startY"}, {"url": "YAHOO.util.Anim.html#stop", "host": "YAHOO.util.Anim", "name": "stop"}, {"url": "YAHOO.util.AnimMgr.html#stop", "host": "YAHOO.util.AnimMgr", "name": "stop"}, {"url": "YAHOO.util.DragDropMgr.html#stopDrag", "host": "YAHOO.util.DragDropMgr", "name": "stopDrag"}, {"url": "YAHOO.util.DragDropMgr.html#stopEvent", "host": "YAHOO.util.DragDropMgr", "name": "stopEvent"}, {"url": "YAHOO.util.Event.html#stopEvent", "host": "YAHOO.util.Event", "name": "stopEvent"}, {"url": "YAHOO.util.DragDropMgr.html#stopPropagation", "host": "YAHOO.util.DragDropMgr", "name": "stopPropagation"}, {"url": "YAHOO.util.Event.html#stopPropagation", "host": "YAHOO.util.Event", "name": "stopPropagation"}, {"url": "YAHOO.util.History.html#_storageField", "host": "YAHOO.util.History", "name": "_storageField"}, {"url": "YAHOO.util.History.html#_storageFieldReady", "host": "YAHOO.util.History", "name": "_storageFieldReady"}, {"url": "YAHOO.util.History.html#_storeStates", "host": "YAHOO.util.History", "name": "_storeStates"}, {"url": "YAHOO.util.DragDropMgr.html#STRICT_INTERSECT", "host": "YAHOO.util.DragDropMgr", "name": "STRICT_INTERSECT"}, {"url": "YAHOO.widget.MenuItem.html#strongemphasis", "host": "YAHOO.widget.MenuItem", "name": "strongemphasis"}, {"url": "YAHOO.widget.Calendar.html#styleCellDefault", "host": "YAHOO.widget.Calendar", "name": "styleCellDefault"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_BODY", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_BODY"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CALENDAR", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CALENDAR"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_BOTTOM", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_BOTTOM"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_HIGHLIGHT1", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_HIGHLIGHT1"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_HIGHLIGHT2", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_HIGHLIGHT2"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_HIGHLIGHT3", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_HIGHLIGHT3"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_HIGHLIGHT4", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_HIGHLIGHT4"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_HOVER", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_HOVER"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_LEFT", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_LEFT"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_OOB", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_OOB"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_OOM", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_OOM"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_RESTRICTED", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_RESTRICTED"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_RIGHT", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_RIGHT"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_SELECTABLE", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_SELECTABLE"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_SELECTED", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_SELECTED"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_SELECTOR", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_SELECTOR"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_TODAY", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_TODAY"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CELL_TOP", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_TOP"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CLOSE", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CLOSE"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_CONTAINER", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CONTAINER"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_FOOTER", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_FOOTER"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_HEADER", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_HEADER"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_HEADER_TEXT", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_HEADER_TEXT"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_NAV_LEFT", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_NAV_LEFT"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_NAV_RIGHT", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_NAV_RIGHT"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_ROW_FOOTER", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_ROW_FOOTER"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_ROW_HEADER", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_ROW_HEADER"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_SINGLE", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_SINGLE"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_WEEKDAY_CELL", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_WEEKDAY_CELL"}, {"url": "YAHOO.widget.Calendar.html#Style.CSS_WEEKDAY_ROW", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_WEEKDAY_ROW"}, {"url": "YAHOO.widget.CalendarGroup.html#sub", "host": "YAHOO.widget.CalendarGroup", "name": "sub"}, {"url": "YAHOO.widget.MenuItem.html#submenu", "host": "YAHOO.widget.MenuItem", "name": "submenu"}, {"url": "YAHOO.widget.Menu.html#submenualignment", "host": "YAHOO.widget.Menu", "name": "submenualignment"}, {"url": "YAHOO.widget.Menubar.html#submenualignment", "host": "YAHOO.widget.Menubar", "name": "submenualignment"}, {"url": "YAHOO.widget.Menu.html#submenuhidedelay", "host": "YAHOO.widget.Menu", "name": "submenuhidedelay"}, {"url": "YAHOO.widget.MenuItem.html#submenuIndicator", "host": "YAHOO.widget.MenuItem", "name": "submenuIndicator"}, {"url": "YAHOO.widget.MenuItem.html#SUBMENU_TYPE", "host": "YAHOO.widget.MenuItem", "name": "SUBMENU_TYPE"}, {"url": "YAHOO.widget.Dialog.html#submit", "host": "YAHOO.widget.Dialog", "name": "submit"}, {"url": "YAHOO.util.Connect.html#_submitElementValue", "host": "YAHOO.util.Connect", "name": "_submitElementValue"}, {"url": "YAHOO.widget.Dialog.html#submitEvent", "host": "YAHOO.widget.Dialog", "name": "submitEvent"}, {"url": "YAHOO.widget.Button.html#submitForm", "host": "YAHOO.widget.Button", "name": "submitForm"}, {"url": "YAHOO.widget.Button.html#SUBMIT_TITLE", "host": "YAHOO.widget.Button", "name": "SUBMIT_TITLE"}, {"url": "YAHOO.util.CustomEvent.html#subscribe", "host": "YAHOO.util.CustomEvent", "name": "subscribe"}, {"url": "YAHOO.util.EventProvider.html#subscribe", "host": "YAHOO.util.EventProvider", "name": "subscribe"}, {"url": "YAHOO.util.CustomEvent.html#subscribeEvent", "host": "YAHOO.util.CustomEvent", "name": "subscribeEvent"}, {"url": "YAHOO.util.CustomEvent.html#subscribers", "host": "YAHOO.util.CustomEvent", "name": "subscribers"}, {"url": "YAHOO.util.Config.html#subscribeToConfigEvent", "host": "YAHOO.util.Config", "name": "subscribeToConfigEvent"}, {"url": "YAHOO.widget.Menu.html#_subscribeToItemEvents", "host": "YAHOO.widget.Menu", "name": "_subscribeToItemEvents"}, {"url": "YAHOO.widget.DateMath.html#subtract", "host": "YAHOO.widget.DateMath", "name": "subtract"}, {"url": "YAHOO.widget.Calendar.html#subtractMonths", "host": "YAHOO.widget.Calendar", "name": "subtractMonths"}, {"url": "YAHOO.widget.CalendarGroup.html#subtractMonths", "host": "YAHOO.widget.CalendarGroup", "name": "subtractMonths"}, {"url": "YAHOO.widget.Calendar.html#subtractYears", "host": "YAHOO.widget.Calendar", "name": "subtractYears"}, {"url": "YAHOO.widget.CalendarGroup.html#subtractYears", "host": "YAHOO.widget.CalendarGroup", "name": "subtractYears"}, {"url": "DataTable.html#summary", "host": "DataTable", "name": "summary"}, {"url": "YAHOO.util.DragDropMgr.html#swapNode", "host": "YAHOO.util.DragDropMgr", "name": "swapNode"}, {"url": "YAHOO.widget.Overlay.html#syncPosition", "host": "YAHOO.widget.Overlay", "name": "syncPosition"}, {"url": "YAHOO.widget.Button.html#tabindex", "host": "YAHOO.widget.Button", "name": "tabindex"}, {"url": "DataTable.html#tableClickEvent", "host": "DataTable", "name": "tableClickEvent"}, {"url": "DataTable.html#tableDoubleclickEvent", "host": "DataTable", "name": "tableDoubleclickEvent"}, {"url": "DataTable.html#tableFocusEvent", "host": "DataTable", "name": "tableFocusEvent"}, {"url": "DataTable.html#tableInitEvent", "host": "DataTable", "name": "tableInitEvent"}, {"url": "DataTable.html#tableMousedownEvent", "host": "DataTable", "name": "tableMousedownEvent"}, {"url": "DataTable.html#tableMouseoutEvent", "host": "DataTable", "name": "tableMouseoutEvent"}, {"url": "DataTable.html#tableMouseoverEvent", "host": "DataTable", "name": "tableMouseoverEvent"}, {"url": "DataTable.html#tableRefreshEvent", "host": "DataTable", "name": "tableRefreshEvent"}, {"url": "YAHOO.widget.TabView.html#_tabParent", "host": "YAHOO.widget.TabView", "name": "_tabParent"}, {"url": "YAHOO.widget.TabView.html#TAB_PARENT_CLASSNAME", "host": "YAHOO.widget.TabView", "name": "TAB_PARENT_CLASSNAME"}, {"url": "YAHOO.widget.TabView.html#tabs", "host": "YAHOO.widget.TabView", "name": "tabs"}, {"url": "YAHOO.widget.Button.html#TAG_NAME", "host": "YAHOO.widget.Button", "name": "TAG_NAME"}, {"url": "YAHOO.widget.ButtonGroup.html#TAG_NAME", "host": "YAHOO.widget.ButtonGroup", "name": "TAG_NAME"}, {"url": "YAHOO.widget.MenuItem.html#target", "host": "YAHOO.widget.MenuItem", "name": "target"}, {"url": "YAHOO.widget.Button.html#target", "host": "YAHOO.widget.Button", "name": "target"}, {"url": "YAHOO.widget.Node.html#target", "host": "YAHOO.widget.Node", "name": "target"}, {"url": "YAHOO.widget.ContainerEffect.html#targetElement", "host": "YAHOO.widget.ContainerEffect", "name": "targetElement"}, {"url": "Column.html#text", "host": "Column", "name": "text"}, {"url": "YAHOO.widget.SimpleDialog.html#text", "host": "YAHOO.widget.SimpleDialog", "name": "text"}, {"url": "YAHOO.widget.Tooltip.html#text", "host": "YAHOO.widget.Tooltip", "name": "text"}, {"url": "YAHOO.widget.MenuItem.html#text", "host": "YAHOO.widget.MenuItem", "name": "text"}, {"url": "YAHOO.widget.AutoComplete.html#textboxBlurEvent", "host": "YAHOO.widget.AutoComplete", "name": "textboxBlurEvent"}, {"url": "YAHOO.widget.AutoComplete.html#textboxFocusEvent", "host": "YAHOO.widget.AutoComplete", "name": "textboxFocusEvent"}, {"url": "YAHOO.widget.AutoComplete.html#textboxKeyEvent", "host": "YAHOO.widget.AutoComplete", "name": "textboxKeyEvent"}, {"url": "YAHOO.widget.AutoComplete.html#_textMatchesOption", "host": "YAHOO.widget.AutoComplete", "name": "_textMatchesOption"}, {"url": "YAHOO.util.AnimMgr.html#thread", "host": "YAHOO.util.AnimMgr", "name": "thread"}, {"url": "YAHOO.widget.LogReader.html#thresholdMax", "host": "YAHOO.widget.LogReader", "name": "thresholdMax"}, {"url": "YAHOO.widget.LogReader.html#thresholdMin", "host": "YAHOO.widget.LogReader", "name": "thresholdMin"}, {"url": "YAHOO.widget.Slider.html#thumb", "host": "YAHOO.widget.Slider", "name": "thumb"}, {"url": "YAHOO.widget.Slider.html#thumbCenterPoint", "host": "YAHOO.widget.Slider", "name": "thumbCenterPoint"}, {"url": "YAHOO.widget.Slider.html#thumbMouseUp", "host": "YAHOO.widget.Slider", "name": "thumbMouseUp"}, {"url": "YAHOO.widget.Slider.html#tickPause", "host": "YAHOO.widget.Slider", "name": "tickPause"}, {"url": "YAHOO.widget.SliderThumb.html#tickSize", "host": "YAHOO.widget.SliderThumb", "name": "tickSize"}, {"url": "YAHOO.widget.LogMsg.html#time", "host": "YAHOO.widget.LogMsg", "name": "time"}, {"url": "YAHOO.util.Connect.html#_timeOut", "host": "YAHOO.util.Connect", "name": "_timeOut"}, {"url": "YAHOO.widget.LogReader.html#_timeout", "host": "YAHOO.widget.LogReader", "name": "_timeout"}, {"url": "YAHOO.util.DragDropMgr.html#_timeoutCount", "host": "YAHOO.util.DragDropMgr", "name": "_timeoutCount"}, {"url": "YAHOO.widget.Button.html#title", "host": "YAHOO.widget.Button", "name": "title"}, {"url": "YAHOO.widget.Calendar.html#title", "host": "YAHOO.widget.Calendar", "name": "title"}, {"url": "YAHOO.widget.CalendarGroup.html#title", "host": "YAHOO.widget.CalendarGroup", "name": "title"}, {"url": "YAHOO.widget.LogReader.html#_title", "host": "YAHOO.widget.LogReader", "name": "_title"}, {"url": "YAHOO.widget.Calendar.html#_toDate", "host": "YAHOO.widget.Calendar", "name": "_toDate"}, {"url": "YAHOO.widget.Calendar.html#today", "host": "YAHOO.widget.Calendar", "name": "today"}, {"url": "YAHOO.widget.Calendar.html#_toFieldArray", "host": "YAHOO.widget.Calendar", "name": "_toFieldArray"}, {"url": "YAHOO.widget.Node.html#toggle", "host": "YAHOO.widget.Node", "name": "toggle"}, {"url": "YAHOO.widget.AutoComplete.html#_toggleContainer", "host": "YAHOO.widget.AutoComplete", "name": "_toggleContainer"}, {"url": "YAHOO.widget.AutoComplete.html#_toggleContainerHelpers", "host": "YAHOO.widget.AutoComplete", "name": "_toggleContainerHelpers"}, {"url": "YAHOO.widget.AutoComplete.html#_toggleHighlight", "host": "YAHOO.widget.AutoComplete", "name": "_toggleHighlight"}, {"url": "YAHOO.widget.AutoComplete.html#_togglePrehighlight", "host": "YAHOO.widget.AutoComplete", "name": "_togglePrehighlight"}, {"url": "YAHOO.util.Region.html#top", "host": "YAHOO.util.Region", "name": "top"}, {"url": "YAHOO.widget.LogReader.html#top", "host": "YAHOO.widget.LogReader", "name": "top"}, {"url": "ColumnSet.html#toString", "host": "ColumnSet", "name": "toString"}, {"url": "DataTable.html#toString", "host": "DataTable", "name": "toString"}, {"url": "RecordSet.html#toString", "host": "RecordSet", "name": "toString"}, {"url": "YAHOO.util.Config.html#toString", "host": "YAHOO.util.Config", "name": "toString"}, {"url": "YAHOO.widget.ContainerEffect.html#toString", "host": "YAHOO.widget.ContainerEffect", "name": "toString"}, {"url": "YAHOO.widget.Dialog.html#toString", "host": "YAHOO.widget.Dialog", "name": "toString"}, {"url": "YAHOO.widget.Module.html#toString", "host": "YAHOO.widget.Module", "name": "toString"}, {"url": "YAHOO.widget.Overlay.html#toString", "host": "YAHOO.widget.Overlay", "name": "toString"}, {"url": "YAHOO.widget.OverlayManager.html#toString", "host": "YAHOO.widget.OverlayManager", "name": "toString"}, {"url": "YAHOO.widget.Panel.html#toString", "host": "YAHOO.widget.Panel", "name": "toString"}, {"url": "YAHOO.widget.SimpleDialog.html#toString", "host": "YAHOO.widget.SimpleDialog", "name": "toString"}, {"url": "YAHOO.widget.Tooltip.html#toString", "host": "YAHOO.widget.Tooltip", "name": "toString"}, {"url": "YAHOO.util.DragDrop.html#toString", "host": "YAHOO.util.DragDrop", "name": "toString"}, {"url": "YAHOO.util.Region.html#toString", "host": "YAHOO.util.Region", "name": "toString"}, {"url": "YAHOO.widget.ContextMenu.html#toString", "host": "YAHOO.widget.ContextMenu", "name": "toString"}, {"url": "YAHOO.widget.ContextMenuItem.html#toString", "host": "YAHOO.widget.ContextMenuItem", "name": "toString"}, {"url": "YAHOO.widget.Menu.html#toString", "host": "YAHOO.widget.Menu", "name": "toString"}, {"url": "YAHOO.widget.Menubar.html#toString", "host": "YAHOO.widget.Menubar", "name": "toString"}, {"url": "YAHOO.widget.MenuBarItem.html#toString", "host": "YAHOO.widget.MenuBarItem", "name": "toString"}, {"url": "YAHOO.widget.MenuItem.html#toString", "host": "YAHOO.widget.MenuItem", "name": "toString"}, {"url": "YAHOO.widget.MenuManager.html#toString", "host": "YAHOO.widget.MenuManager", "name": "toString"}, {"url": "YAHOO.widget.Button.html#toString", "host": "YAHOO.widget.Button", "name": "toString"}, {"url": "YAHOO.widget.ButtonGroup.html#toString", "host": "YAHOO.widget.ButtonGroup", "name": "toString"}, {"url": "YAHOO.widget.AutoComplete.html#toString", "host": "YAHOO.widget.AutoComplete", "name": "toString"}, {"url": "YAHOO.widget.DataSource.html#toString", "host": "YAHOO.widget.DataSource", "name": "toString"}, {"url": "YAHOO.widget.Slider.html#toString", "host": "YAHOO.widget.Slider", "name": "toString"}, {"url": "YAHOO.widget.SliderThumb.html#toString", "host": "YAHOO.widget.SliderThumb", "name": "toString"}, {"url": "YAHOO.util.Anim.html#toString", "host": "YAHOO.util.Anim", "name": "toString"}, {"url": "DataSource.html#toString", "host": "DataSource", "name": "toString"}, {"url": "YAHOO.widget.Calendar.html#toString", "host": "YAHOO.widget.Calendar", "name": "toString"}, {"url": "YAHOO.widget.CalendarGroup.html#toString", "host": "YAHOO.widget.CalendarGroup", "name": "toString"}, {"url": "YAHOO.widget.Tab.html#toString", "host": "YAHOO.widget.Tab", "name": "toString"}, {"url": "YAHOO.widget.TabView.html#toString", "host": "YAHOO.widget.TabView", "name": "toString"}, {"url": "YAHOO.widget.LogReader.html#toString", "host": "YAHOO.widget.LogReader", "name": "toString"}, {"url": "YAHOO.widget.LogWriter.html#toString", "host": "YAHOO.widget.LogWriter", "name": "toString"}, {"url": "YAHOO.widget.Node.html#toString", "host": "YAHOO.widget.Node", "name": "toString"}, {"url": "YAHOO.widget.TreeView.html#toString", "host": "YAHOO.widget.TreeView", "name": "toString"}, {"url": "YAHOO.widget.TVFadeIn.html#toString", "host": "YAHOO.widget.TVFadeIn", "name": "toString"}, {"url": "YAHOO.widget.TVFadeOut.html#toString", "host": "YAHOO.widget.TVFadeOut", "name": "toString"}, {"url": "YAHOO.util.CustomEvent.html#toString", "host": "YAHOO.util.CustomEvent", "name": "toString"}, {"url": "YAHOO.util.Subscriber.html#toString", "host": "YAHOO.util.Subscriber", "name": "toString"}, {"url": "YAHOO.util.Anim.html#totalFrames", "host": "YAHOO.util.Anim", "name": "totalFrames"}, {"url": "YAHOO.util.Connect.html#_transaction_id", "host": "YAHOO.util.Connect", "name": "_transaction_id"}, {"url": "ColumnSet.html#tree", "host": "ColumnSet", "name": "tree"}, {"url": "YAHOO.widget.Node.html#tree", "host": "YAHOO.widget.Node", "name": "tree"}, {"url": "YAHOO.widget.ContextMenu.html#trigger", "host": "YAHOO.widget.ContextMenu", "name": "trigger"}, {"url": "YAHOO.widget.ContextMenu.html#triggerContextMenuEvent", "host": "YAHOO.widget.ContextMenu", "name": "triggerContextMenuEvent"}, {"url": "YAHOO.util.History.html#_trim", "host": "YAHOO.util.History", "name": "_trim"}, {"url": "YAHOO.util.Event.html#_tryPreloadAttach", "host": "YAHOO.util.Event", "name": "_tryPreloadAttach"}, {"url": "YAHOO.util.AnimMgr.html#tweenCount", "host": "YAHOO.util.AnimMgr", "name": "tweenCount"}, {"url": "Column.html#type", "host": "Column", "name": "type"}, {"url": "ColumnEditor.html#type", "host": "ColumnEditor", "name": "type"}, {"url": "YAHOO.widget.Button.html#type", "host": "YAHOO.widget.Button", "name": "type"}, {"url": "YAHOO.widget.Slider.html#type", "host": "YAHOO.widget.Slider", "name": "type"}, {"url": "YAHOO.widget.Node.html#_type", "host": "YAHOO.widget.Node", "name": "_type"}, {"url": "YAHOO.util.CustomEvent.html#type", "host": "YAHOO.util.CustomEvent", "name": "type"}, {"url": "YAHOO.util.Event.html#TYPE", "host": "YAHOO.util.Event", "name": "TYPE"}, {"url": "YAHOO.widget.AutoComplete.html#typeAhead", "host": "YAHOO.widget.AutoComplete", "name": "typeAhead"}, {"url": "YAHOO.widget.AutoComplete.html#_typeAhead", "host": "YAHOO.widget.AutoComplete", "name": "_typeAhead"}, {"url": "YAHOO.widget.AutoComplete.html#typeAheadEvent", "host": "YAHOO.widget.AutoComplete", "name": "typeAheadEvent"}, {"url": "YAHOO.widget.DS_XHR.html#TYPE_FLAT", "host": "YAHOO.widget.DS_XHR", "name": "TYPE_FLAT"}, {"url": "DataSource.html#TYPE_JSARRAY", "host": "DataSource", "name": "TYPE_JSARRAY"}, {"url": "DataSource.html#TYPE_JSFUNCTION", "host": "DataSource", "name": "TYPE_JSFUNCTION"}, {"url": "YAHOO.widget.DS_XHR.html#TYPE_JSON", "host": "YAHOO.widget.DS_XHR", "name": "TYPE_JSON"}, {"url": "DataSource.html#TYPE_JSON", "host": "DataSource", "name": "TYPE_JSON"}, {"url": "DataSource.html#TYPE_TEXT", "host": "DataSource", "name": "TYPE_TEXT"}, {"url": "DataSource.html#TYPE_UNKNOWN", "host": "DataSource", "name": "TYPE_UNKNOWN"}, {"url": "DataSource.html#TYPE_XHR", "host": "DataSource", "name": "TYPE_XHR"}, {"url": "YAHOO.widget.DS_XHR.html#TYPE_XML", "host": "YAHOO.widget.DS_XHR", "name": "TYPE_XML"}, {"url": "DataSource.html#TYPE_XML", "host": "DataSource", "name": "TYPE_XML"}, {"url": "YAHOO.util.History.html#_ua", "host": "YAHOO.util.History", "name": "_ua"}, {"url": "YAHOO.widget.Panel.html#underlay", "host": "YAHOO.widget.Panel", "name": "underlay"}, {"url": "DataTable.html#unhighlight", "host": "DataTable", "name": "unhighlight"}, {"url": "DataTable.html#unhighlightEvent", "host": "DataTable", "name": "unhighlightEvent"}, {"url": "YAHOO.util.Region.html#union", "host": "YAHOO.util.Region", "name": "union"}, {"url": "YAHOO.util.Event.html#_unload", "host": "YAHOO.util.Event", "name": "_unload"}, {"url": "YAHOO.util.Event.html#unloadListeners", "host": "YAHOO.util.Event", "name": "unloadListeners"}, {"url": "YAHOO.util.DragDrop.html#unlock", "host": "YAHOO.util.DragDrop", "name": "unlock"}, {"url": "YAHOO.util.DragDropMgr.html#unlock", "host": "YAHOO.util.DragDropMgr", "name": "unlock"}, {"url": "YAHOO.widget.Slider.html#unlock", "host": "YAHOO.widget.Slider", "name": "unlock"}, {"url": "YAHOO.widget.AutoComplete.html#unmatchedItemSelectEvent", "host": "YAHOO.widget.AutoComplete", "name": "unmatchedItemSelectEvent"}, {"url": "YAHOO.util.DragDrop.html#unreg", "host": "YAHOO.util.DragDrop", "name": "unreg"}, {"url": "YAHOO.util.DragDropMgr.html#unregAll", "host": "YAHOO.util.DragDropMgr", "name": "unregAll"}, {"url": "YAHOO.util.AnimMgr.html#unRegister", "host": "YAHOO.util.AnimMgr", "name": "unRegister"}, {"url": "DataTable.html#_unselect", "host": "DataTable", "name": "_unselect"}, {"url": "DataTable.html#unselect", "host": "DataTable", "name": "unselect"}, {"url": "DataTable.html#_unselectAllCells", "host": "DataTable", "name": "_unselectAllCells"}, {"url": "DataTable.html#unselectAllCells", "host": "DataTable", "name": "unselectAllCells"}, {"url": "DataTable.html#_unselectAllRows", "host": "DataTable", "name": "_unselectAllRows"}, {"url": "DataTable.html#unselectAllRows", "host": "DataTable", "name": "unselectAllRows"}, {"url": "DataTable.html#unselectEvent", "host": "DataTable", "name": "unselectEvent"}, {"url": "DataTable.html#unselectRow", "host": "DataTable", "name": "unselectRow"}, {"url": "YAHOO.widget.CalendarGroup.html#unsub", "host": "YAHOO.widget.CalendarGroup", "name": "unsub"}, {"url": "YAHOO.util.CustomEvent.html#unsubscribe", "host": "YAHOO.util.CustomEvent", "name": "unsubscribe"}, {"url": "YAHOO.util.EventProvider.html#unsubscribe", "host": "YAHOO.util.EventProvider", "name": "unsubscribe"}, {"url": "YAHOO.util.CustomEvent.html#unsubscribeAll", "host": "YAHOO.util.CustomEvent", "name": "unsubscribeAll"}, {"url": "YAHOO.util.EventProvider.html#unsubscribeAll", "host": "YAHOO.util.EventProvider", "name": "unsubscribeAll"}, {"url": "YAHOO.util.Config.html#unsubscribeFromConfigEvent", "host": "YAHOO.util.Config", "name": "unsubscribeFromConfigEvent"}, {"url": "YAHOO.widget.Menu.html#_updateItemProperties", "host": "YAHOO.widget.Menu", "name": "_updateItemProperties"}, {"url": "DataTable.html#updatePaginator", "host": "DataTable", "name": "updatePaginator"}, {"url": "RecordSet.html#updateRecord", "host": "RecordSet", "name": "updateRecord"}, {"url": "RecordSet.html#updateRecordField", "host": "RecordSet", "name": "updateRecordField"}, {"url": "DataTable.html#updateRow", "host": "DataTable", "name": "updateRow"}, {"url": "DataTable.html#_updateRowEl", "host": "DataTable", "name": "_updateRowEl"}, {"url": "YAHOO.widget.AutoComplete.html#_updateValue", "host": "YAHOO.widget.AutoComplete", "name": "_updateValue"}, {"url": "YAHOO.util.Connect.html#uploadFile", "host": "YAHOO.util.Connect", "name": "uploadFile"}, {"url": "YAHOO.widget.MenuItem.html#url", "host": "YAHOO.widget.MenuItem", "name": "url"}, {"url": "YAHOO.util.DragDropMgr.html#useCache", "host": "YAHOO.util.DragDropMgr", "name": "useCache"}, {"url": "YAHOO.util.Connect.html#_use_default_post_header", "host": "YAHOO.util.Connect", "name": "_use_default_post_header"}, {"url": "YAHOO.util.Connect.html#_use_default_xhr_header", "host": "YAHOO.util.Connect", "name": "_use_default_xhr_header"}, {"url": "YAHOO.widget.AutoComplete.html#useIFrame", "host": "YAHOO.widget.AutoComplete", "name": "useIFrame"}, {"url": "YAHOO.util.Event.html#useLegacyEvent", "host": "YAHOO.util.Event", "name": "useLegacyEvent"}, {"url": "YAHOO.util.Anim.html#useSeconds", "host": "YAHOO.util.Anim", "name": "useSeconds"}, {"url": "YAHOO.widget.AutoComplete.html#useShadow", "host": "YAHOO.widget.AutoComplete", "name": "useShadow"}, {"url": "YAHOO.widget.Dialog.html#validate", "host": "YAHOO.widget.Dialog", "name": "validate"}, {"url": "YAHOO.widget.Calendar.html#validate", "host": "YAHOO.widget.Calendar", "name": "validate"}, {"url": "YAHOO.util.Attribute.html#validator", "host": "YAHOO.util.Attribute", "name": "validator"}, {"url": "YAHOO.widget.MenuItem.html#value", "host": "YAHOO.widget.MenuItem", "name": "value"}, {"url": "YAHOO.widget.Button.html#value", "host": "YAHOO.widget.Button", "name": "value"}, {"url": "YAHOO.widget.ButtonGroup.html#value", "host": "YAHOO.widget.ButtonGroup", "name": "value"}, {"url": "YAHOO.util.Attribute.html#value", "host": "YAHOO.util.Attribute", "name": "value"}, {"url": "YAHOO.widget.LogReader.html#verboseOutput", "host": "YAHOO.widget.LogReader", "name": "verboseOutput"}, {"url": "YAHOO.util.DragDropMgr.html#verifyEl", "host": "YAHOO.util.DragDropMgr", "name": "verifyEl"}, {"url": "YAHOO.widget.Slider.html#verifyOffset", "host": "YAHOO.widget.Slider", "name": "verifyOffset"}, {"url": "YAHOO.widget.Module.html#visible", "host": "YAHOO.widget.Module", "name": "visible"}, {"url": "YAHOO.widget.Menu.html#visible", "host": "YAHOO.widget.Menu", "name": "visible"}, {"url": "YAHOO.util.Event.html#webkit", "host": "YAHOO.util.Event", "name": "webkit"}, {"url": "YAHOO.widget.DateMath.html#WEEK", "host": "YAHOO.widget.DateMath", "name": "WEEK"}, {"url": "YAHOO.widget.Calendar.html#WEEKDAYS_1CHAR", "host": "YAHOO.widget.Calendar", "name": "WEEKDAYS_1CHAR"}, {"url": "YAHOO.widget.CalendarGroup.html#WEEKDAYS_1CHAR", "host": "YAHOO.widget.CalendarGroup", "name": "WEEKDAYS_1CHAR"}, {"url": "YAHOO.widget.Calendar.html#WEEKDAYS_LONG", "host": "YAHOO.widget.Calendar", "name": "WEEKDAYS_LONG"}, {"url": "YAHOO.widget.CalendarGroup.html#WEEKDAYS_LONG", "host": "YAHOO.widget.CalendarGroup", "name": "WEEKDAYS_LONG"}, {"url": "YAHOO.widget.Calendar.html#WEEKDAYS_MEDIUM", "host": "YAHOO.widget.Calendar", "name": "WEEKDAYS_MEDIUM"}, {"url": "YAHOO.widget.CalendarGroup.html#WEEKDAYS_MEDIUM", "host": "YAHOO.widget.CalendarGroup", "name": "WEEKDAYS_MEDIUM"}, {"url": "YAHOO.widget.Calendar.html#WEEKDAYS_SHORT", "host": "YAHOO.widget.Calendar", "name": "WEEKDAYS_SHORT"}, {"url": "YAHOO.widget.CalendarGroup.html#WEEKDAYS_SHORT", "host": "YAHOO.widget.CalendarGroup", "name": "WEEKDAYS_SHORT"}, {"url": "YAHOO.util.Event.html#WFN", "host": "YAHOO.util.Event", "name": "WFN"}, {"url": "Column.html#_width", "host": "Column", "name": "_width"}, {"url": "Column.html#width", "host": "Column", "name": "width"}, {"url": "YAHOO.widget.Overlay.html#width", "host": "YAHOO.widget.Overlay", "name": "width"}, {"url": "YAHOO.widget.LogReader.html#width", "host": "YAHOO.widget.LogReader", "name": "width"}, {"url": "YAHOO.util.Attribute.html#writeOnce", "host": "YAHOO.util.Attribute", "name": "writeOnce"}, {"url": "YAHOO.util.Attribute.html#_written", "host": "YAHOO.util.Attribute", "name": "_written"}, {"url": "YAHOO.widget.Overlay.html#x", "host": "YAHOO.widget.Overlay", "name": "x"}, {"url": "YAHOO.util.Point.html#x", "host": "YAHOO.util.Point", "name": "x"}, {"url": "DataSource.html#_xhrCallback", "host": "DataSource", "name": "_xhrCallback"}, {"url": "DataSource.html#_xhrFailure", "host": "DataSource", "name": "_xhrFailure"}, {"url": "DataSource.html#_xhrSuccess", "host": "DataSource", "name": "_xhrSuccess"}, {"url": "YAHOO.util.DragDrop.html#xTicks", "host": "YAHOO.util.DragDrop", "name": "xTicks"}, {"url": "YAHOO.widget.Overlay.html#xy", "host": "YAHOO.widget.Overlay", "name": "xy"}, {"url": "YAHOO.widget.Overlay.html#y", "host": "YAHOO.widget.Overlay", "name": "y"}, {"url": "YAHOO.util.Point.html#y", "host": "YAHOO.util.Point", "name": "y"}, {"url": "YAHOO.util.Config.html#YAHOO.util.Config.alreadySubscribed", "host": "YAHOO.util.Config", "name": "YAHOO.util.Config.alreadySubscribed"}, {"url": "YAHOO.util.Config.html#YAHOO.util.Config.BOOLEAN_TYPE", "host": "YAHOO.util.Config", "name": "YAHOO.util.Config.BOOLEAN_TYPE"}, {"url": "YAHOO.util.Config.html#YAHOO.util.Config.CONFIG_CHANGED_EVENT", "host": "YAHOO.util.Config", "name": "YAHOO.util.Config.CONFIG_CHANGED_EVENT"}, {"url": "YAHOO.util.CustomEvent.html#YAHOO.util.CustomEvent.FLAT", "host": "YAHOO.util.CustomEvent", "name": "YAHOO.util.CustomEvent.FLAT"}, {"url": "YAHOO.util.CustomEvent.html#YAHOO.util.CustomEvent.LIST", "host": "YAHOO.util.CustomEvent", "name": "YAHOO.util.CustomEvent.LIST"}, {"url": "YAHOO.util.DDProxy.html#YAHOO.util.DDProxy.dragElId", "host": "YAHOO.util.DDProxy", "name": "YAHOO.util.DDProxy.dragElId"}, {"url": "YAHOO.widget.Calendar.html#YAHOO.widget.Calendar.DATE", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.DATE"}, {"url": "YAHOO.widget.Calendar.html#YAHOO.widget.Calendar._DEFAULT_CONFIG", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar._DEFAULT_CONFIG"}, {"url": "YAHOO.widget.Calendar.html#YAHOO.widget.Calendar.DISPLAY_DAYS", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.DISPLAY_DAYS"}, {"url": "YAHOO.widget.Calendar.html#YAHOO.widget.Calendar._EVENT_TYPES", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar._EVENT_TYPES"}, {"url": "YAHOO.widget.CalendarGroup.html#YAHOO.widget.CalendarGroup.CSS_2UPCLOSE", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup.CSS_2UPCLOSE"}, {"url": "YAHOO.widget.CalendarGroup.html#YAHOO.widget.CalendarGroup.CSS_2UPTITLE", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup.CSS_2UPTITLE"}, {"url": "YAHOO.widget.CalendarGroup.html#YAHOO.widget.CalendarGroup.CSS_CONTAINER", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup.CSS_CONTAINER"}, {"url": "YAHOO.widget.CalendarGroup.html#YAHOO.widget.CalendarGroup.CSS_MULTI_UP", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup.CSS_MULTI_UP"}, {"url": "YAHOO.widget.CalendarGroup.html#YAHOO.widget.CalendarGroup._DEFAULT_CONFIG", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup._DEFAULT_CONFIG"}, {"url": "YAHOO.widget.Calendar.html#YAHOO.widget.Calendar.IMG_ROOT", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.IMG_ROOT"}, {"url": "YAHOO.widget.Calendar.html#YAHOO.widget.Calendar.LONG", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.LONG"}, {"url": "YAHOO.widget.Calendar.html#YAHOO.widget.Calendar.MEDIUM", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.MEDIUM"}, {"url": "YAHOO.widget.Calendar.html#YAHOO.widget.Calendar.MONTH", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.MONTH"}, {"url": "YAHOO.widget.Calendar.html#YAHOO.widget.Calendar.MONTH_DAY", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.MONTH_DAY"}, {"url": "YAHOO.widget.Calendar.html#YAHOO.widget.Calendar.ONE_CHAR", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.ONE_CHAR"}, {"url": "YAHOO.widget.Calendar.html#YAHOO.widget.Calendar.RANGE", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.RANGE"}, {"url": "YAHOO.widget.Calendar.html#YAHOO.widget.Calendar.SHORT", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.SHORT"}, {"url": "YAHOO.widget.Calendar.html#YAHOO.widget.Calendar.STOP_RENDER", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.STOP_RENDER"}, {"url": "YAHOO.widget.Calendar.html#YAHOO.widget.Calendar._STYLES", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar._STYLES"}, {"url": "YAHOO.widget.Calendar.html#YAHOO.widget.Calendar.WEEKDAY", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.WEEKDAY"}, {"url": "YAHOO.widget.ContextMenu.html#YAHOO.widget.ContextMenu._DEFAULT_CONFIG", "host": "YAHOO.widget.ContextMenu", "name": "YAHOO.widget.ContextMenu._DEFAULT_CONFIG"}, {"url": "YAHOO.widget.ContextMenu.html#YAHOO.widget.ContextMenu._EVENT_TYPES", "host": "YAHOO.widget.ContextMenu", "name": "YAHOO.widget.ContextMenu._EVENT_TYPES"}, {"url": "YAHOO.widget.Dialog.html#YAHOO.widget.Dialog.CSS_DIALOG", "host": "YAHOO.widget.Dialog", "name": "YAHOO.widget.Dialog.CSS_DIALOG"}, {"url": "YAHOO.widget.Dialog.html#YAHOO.widget.Dialog._DEFAULT_CONFIG", "host": "YAHOO.widget.Dialog", "name": "YAHOO.widget.Dialog._DEFAULT_CONFIG"}, {"url": "YAHOO.widget.Dialog.html#YAHOO.widget.Dialog._EVENT_TYPES", "host": "YAHOO.widget.Dialog", "name": "YAHOO.widget.Dialog._EVENT_TYPES"}, {"url": "YAHOO.widget.Menubar.html#YAHOO.widget.MenuBar._DEFAULT_CONFIG", "host": "YAHOO.widget.Menubar", "name": "YAHOO.widget.MenuBar._DEFAULT_CONFIG"}, {"url": "YAHOO.widget.Menu.html#YAHOO.widget.Menu._DEFAULT_CONFIG", "host": "YAHOO.widget.Menu", "name": "YAHOO.widget.Menu._DEFAULT_CONFIG"}, {"url": "YAHOO.widget.Menu.html#YAHOO.widget.Menu._EVENT_TYPES", "host": "YAHOO.widget.Menu", "name": "YAHOO.widget.Menu._EVENT_TYPES"}, {"url": "YAHOO.widget.MenuItem.html#YAHOO.widget.MenuItem._DEFAULT_CONFIG", "host": "YAHOO.widget.MenuItem", "name": "YAHOO.widget.MenuItem._DEFAULT_CONFIG"}, {"url": "YAHOO.widget.MenuItem.html#YAHOO.widget.MenuItem._EVENT_TYPES", "host": "YAHOO.widget.MenuItem", "name": "YAHOO.widget.MenuItem._EVENT_TYPES"}, {"url": "YAHOO.widget.Module.html#YAHOO.widget.Module.CSS_BODY", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.CSS_BODY"}, {"url": "YAHOO.widget.Module.html#YAHOO.widget.Module.CSS_FOOTER", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.CSS_FOOTER"}, {"url": "YAHOO.widget.Module.html#YAHOO.widget.Module.CSS_HEADER", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.CSS_HEADER"}, {"url": "YAHOO.widget.Module.html#YAHOO.widget.Module.CSS_MODULE", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.CSS_MODULE"}, {"url": "YAHOO.widget.Module.html#YAHOO.widget.Module._DEFAULT_CONFIG", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module._DEFAULT_CONFIG"}, {"url": "YAHOO.widget.Module.html#YAHOO.widget.Module._EVENT_TYPES", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module._EVENT_TYPES"}, {"url": "YAHOO.widget.Module.html#YAHOO.widget.Module.IMG_ROOT", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.IMG_ROOT"}, {"url": "YAHOO.widget.Module.html#YAHOO.widget.Module.IMG_ROOT_SSL", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.IMG_ROOT_SSL"}, {"url": "YAHOO.widget.Module.html#YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL"}, {"url": "YAHOO.widget.Module.html#YAHOO.widget.Module.textResizeEvent", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.textResizeEvent"}, {"url": "YAHOO.widget.Overlay.html#YAHOO.widget.Overlay.BOTTOM_LEFT", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.BOTTOM_LEFT"}, {"url": "YAHOO.widget.Overlay.html#YAHOO.widget.Overlay.BOTTOM_RIGHT", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.BOTTOM_RIGHT"}, {"url": "YAHOO.widget.Overlay.html#YAHOO.widget.Overlay.CSS_OVERLAY", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.CSS_OVERLAY"}, {"url": "YAHOO.widget.Overlay.html#YAHOO.widget.Overlay._DEFAULT_CONFIG", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay._DEFAULT_CONFIG"}, {"url": "YAHOO.widget.Overlay.html#YAHOO.widget.Overlay._EVENT_TYPES", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay._EVENT_TYPES"}, {"url": "YAHOO.widget.Overlay.html#YAHOO.widget.Overlay.IFRAME_SRC", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.IFRAME_SRC"}, {"url": "YAHOO.widget.Overlay.html#YAHOO.widget.Overlay._initialized", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay._initialized"}, {"url": "YAHOO.widget.OverlayManager.html#YAHOO.widget.OverlayManager.CSS_FOCUSED", "host": "YAHOO.widget.OverlayManager", "name": "YAHOO.widget.OverlayManager.CSS_FOCUSED"}, {"url": "YAHOO.widget.Overlay.html#YAHOO.widget.Overlay.TOP_LEFT", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.TOP_LEFT"}, {"url": "YAHOO.widget.Overlay.html#YAHOO.widget.Overlay.TOP_RIGHT", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.TOP_RIGHT"}, {"url": "YAHOO.widget.Overlay.html#YAHOO.widget.Overlay.windowResizeEvent", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.windowResizeEvent"}, {"url": "YAHOO.widget.Overlay.html#YAHOO.widget.Overlay.windowResizeHandler", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.windowResizeHandler"}, {"url": "YAHOO.widget.Overlay.html#YAHOO.widget.Overlay.windowScrollEvent", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.windowScrollEvent"}, {"url": "YAHOO.widget.Overlay.html#YAHOO.widget.Overlay.windowScrollHandler", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.windowScrollHandler"}, {"url": "YAHOO.widget.Panel.html#YAHOO.widget.Panel.CSS_PANEL", "host": "YAHOO.widget.Panel", "name": "YAHOO.widget.Panel.CSS_PANEL"}, {"url": "YAHOO.widget.Panel.html#YAHOO.widget.Panel.CSS_PANEL_CONTAINER", "host": "YAHOO.widget.Panel", "name": "YAHOO.widget.Panel.CSS_PANEL_CONTAINER"}, {"url": "YAHOO.widget.Panel.html#YAHOO.widget.Panel._DEFAULT_CONFIG", "host": "YAHOO.widget.Panel", "name": "YAHOO.widget.Panel._DEFAULT_CONFIG"}, {"url": "YAHOO.widget.Panel.html#YAHOO.widget.Panel._EVENT_TYPES", "host": "YAHOO.widget.Panel", "name": "YAHOO.widget.Panel._EVENT_TYPES"}, {"url": "YAHOO.widget.SimpleDialog.html#YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG"}, {"url": "YAHOO.widget.SimpleDialog.html#YAHOO.widget.SimpleDialog._DEFAULT_CONFIG", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog._DEFAULT_CONFIG"}, {"url": "YAHOO.widget.SimpleDialog.html#YAHOO.widget.SimpleDialog.ICON_ALARM", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog.ICON_ALARM"}, {"url": "YAHOO.widget.SimpleDialog.html#YAHOO.widget.SimpleDialog.ICON_BLOCK", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog.ICON_BLOCK"}, {"url": "YAHOO.widget.SimpleDialog.html#YAHOO.widget.SimpleDialog.ICON_HELP", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog.ICON_HELP"}, {"url": "YAHOO.widget.SimpleDialog.html#YAHOO.widget.SimpleDialog.ICON_INFO", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog.ICON_INFO"}, {"url": "YAHOO.widget.SimpleDialog.html#YAHOO.widget.SimpleDialog.ICON_TIP", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog.ICON_TIP"}, {"url": "YAHOO.widget.SimpleDialog.html#YAHOO.widget.SimpleDialog.ICON_WARN", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog.ICON_WARN"}, {"url": "YAHOO.widget.Slider.html#YAHOO.widget.Slider.ANIM_AVAIL", "host": "YAHOO.widget.Slider", "name": "YAHOO.widget.Slider.ANIM_AVAIL"}, {"url": "YAHOO.widget.Slider.html#YAHOO.widget.Slider.getHorizSlider", "host": "YAHOO.widget.Slider", "name": "YAHOO.widget.Slider.getHorizSlider"}, {"url": "YAHOO.widget.Slider.html#YAHOO.widget.Slider.getSliderRegion", "host": "YAHOO.widget.Slider", "name": "YAHOO.widget.Slider.getSliderRegion"}, {"url": "YAHOO.widget.Slider.html#YAHOO.widget.Slider.getVertSlider", "host": "YAHOO.widget.Slider", "name": "YAHOO.widget.Slider.getVertSlider"}, {"url": "YAHOO.widget.Tooltip.html#YAHOO.widget.Tooltip.CSS_TOOLTIP", "host": "YAHOO.widget.Tooltip", "name": "YAHOO.widget.Tooltip.CSS_TOOLTIP"}, {"url": "YAHOO.widget.Tooltip.html#YAHOO.widget.Tooltip._DEFAULT_CONFIG", "host": "YAHOO.widget.Tooltip", "name": "YAHOO.widget.Tooltip._DEFAULT_CONFIG"}, {"url": "YAHOO.widget.TreeView.html#YAHOO.widget.TreeView.addHandler", "host": "YAHOO.widget.TreeView", "name": "YAHOO.widget.TreeView.addHandler"}, {"url": "YAHOO.widget.TreeView.html#YAHOO.widget.TreeView.counter", "host": "YAHOO.widget.TreeView", "name": "YAHOO.widget.TreeView.counter"}, {"url": "YAHOO.widget.TreeView.html#YAHOO.widget.TreeView.getNode", "host": "YAHOO.widget.TreeView", "name": "YAHOO.widget.TreeView.getNode"}, {"url": "YAHOO.widget.TreeView.html#YAHOO.widget.TreeView.getTree", "host": "YAHOO.widget.TreeView", "name": "YAHOO.widget.TreeView.getTree"}, {"url": "YAHOO.widget.TreeView.html#YAHOO.widget.TreeView.nodeCount", "host": "YAHOO.widget.TreeView", "name": "YAHOO.widget.TreeView.nodeCount"}, {"url": "YAHOO.widget.TreeView.html#YAHOO.widget.TreeView.preload", "host": "YAHOO.widget.TreeView", "name": "YAHOO.widget.TreeView.preload"}, {"url": "YAHOO.widget.TreeView.html#YAHOO.widget.TreeView.removeHandler", "host": "YAHOO.widget.TreeView", "name": "YAHOO.widget.TreeView.removeHandler"}, {"url": "YAHOO.widget.TreeView.html#YAHOO.widget.TreeView.trees", "host": "YAHOO.widget.TreeView", "name": "YAHOO.widget.TreeView.trees"}, {"url": "YAHOO.widget.DateMath.html#YEAR", "host": "YAHOO.widget.DateMath", "name": "YEAR"}, {"url": "YAHOO.util.DragDrop.html#__ygDragDrop", "host": "YAHOO.util.DragDrop", "name": "__ygDragDrop"}, {"url": "YAHOO.util.DragDrop.html#yTicks", "host": "YAHOO.util.DragDrop", "name": "yTicks"}, {"url": "YAHOO.util.EventProvider.html#__yui_events", "host": "YAHOO.util.EventProvider", "name": "__yui_events"}, {"url": "Record.html#yuiRecordId", "host": "Record", "name": "yuiRecordId"}, {"url": "YAHOO.util.EventProvider.html#__yui_subscribers", "host": "YAHOO.util.EventProvider", "name": "__yui_subscribers"}, {"url": "YAHOO.widget.Overlay.html#zIndex", "host": "YAHOO.widget.Overlay", "name": "zIndex"}] \ No newline at end of file diff --git a/www/extras/yui/docs/menu.js.html b/www/extras/yui/docs/menu.js.html deleted file mode 100644 index 2443c1321..000000000 --- a/www/extras/yui/docs/menu.js.html +++ /dev/null @@ -1,4755 +0,0 @@ - - - - API: menu menu.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Menu  2.2.2

        -

        - Yahoo! UI Library - > menu - - > menu.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* The Menu class creates a container that holds a vertical list representing 
        -* a set of options or commands.  Menu is the base class for all 
        -* menu containers. 
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;div&#62;</code> element of the menu.
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;select&#62;</code> element to be used as the data source 
        -* for the menu.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -* level-one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object 
        -* specifying the <code>&#60;div&#62;</code> element of the menu.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -* level-one-html.html#ID-94282980">HTMLSelectElement</a>} p_oElement 
        -* Object specifying the <code>&#60;select&#62;</code> element to be used as 
        -* the data source for the menu.
        -* @param {Object} p_oConfig Optional. Object literal specifying the 
        -* configuration for the menu. See configuration class documentation for 
        -* more details.
        -* @namespace YAHOO.widget
        -* @class Menu
        -* @constructor
        -* @extends YAHOO.widget.Overlay
        -*/
        -(function() {
        -
        -var Dom = YAHOO.util.Dom,
        -    Event = YAHOO.util.Event,
        -    CustomEvent = YAHOO.util.CustomEvent,
        -    Lang = YAHOO.lang;
        -
        -
        -YAHOO.widget.Menu = function(p_oElement, p_oConfig) {
        -
        -    if(p_oConfig) {
        -
        -        this.parent = p_oConfig.parent;
        -        this.lazyLoad = p_oConfig.lazyLoad || p_oConfig.lazyload;
        -        this.itemData = p_oConfig.itemData || p_oConfig.itemdata;
        -
        -    }
        -
        -
        -    YAHOO.widget.Menu.superclass.constructor.call(
        -        this, 
        -        p_oElement, 
        -        p_oConfig
        -    );
        -
        -};
        -
        -
        -/**
        -* Constant representing the name of the Menu's events
        -* @property YAHOO.widget.Menu._EVENT_TYPES
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.Menu._EVENT_TYPES = {
        -
        -    "MOUSE_OVER": "mouseover",
        -    "MOUSE_OUT": "mouseout",
        -    "MOUSE_DOWN": "mousedown",
        -    "MOUSE_UP": "mouseup",
        -    "CLICK": "click",
        -    "KEY_PRESS": "keypress",
        -    "KEY_DOWN": "keydown",
        -    "KEY_UP": "keyup",
        -    "FOCUS": "focus",
        -    "BLUR": "blur",
        -    "ITEM_ADDED": "itemAdded",
        -    "ITEM_REMOVED": "itemRemoved"
        -
        -};
        -
        -
        -
        -/**
        -* @method _checkPosition
        -* @description Checks to make sure that the value of the "position" property 
        -* is one of the supported strings. Returns true if the position is supported.
        -* @private
        -* @param {Object} p_sPosition String specifying the position of the menu.
        -* @return {Boolean}
        -*/
        -YAHOO.widget.Menu._checkPosition = function(p_sPosition) {
        -
        -    if(typeof p_sPosition == "string") {
        -
        -        var sPosition = p_sPosition.toLowerCase();
        -
        -        return ("dynamic,static".indexOf(sPosition) != -1);
        -
        -    }
        -
        -};
        -
        -
        -
        -/**
        -* Constant representing the Menu's configuration properties
        -* @property YAHOO.widget.Menu._DEFAULT_CONFIG
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.Menu._DEFAULT_CONFIG = {
        -
        -    "VISIBLE": { 
        -        key: "visible", 
        -        value: false, 
        -        validator: Lang.isBoolean
        -    }, 
        -
        -    "CONSTRAIN_TO_VIEWPORT": {
        -        key: "constraintoviewport", 
        -        value: true, 
        -        validator: Lang.isBoolean, 
        -        supercedes: ["iframe","x","y","xy"]
        -    }, 
        -
        -    "POSITION": { 
        -        key: "position", 
        -        value: "dynamic", 
        -        validator: YAHOO.widget.Menu._checkPosition, 
        -        supercedes: ["visible"] 
        -    }, 
        -
        -    "SUBMENU_ALIGNMENT": { 
        -        key: "submenualignment", 
        -        value: ["tl","tr"]
        -    },
        -
        -    "AUTO_SUBMENU_DISPLAY": { 
        -        key: "autosubmenudisplay", 
        -        value: true, 
        -        validator: Lang.isBoolean 
        -    }, 
        -
        -    "SHOW_DELAY": { 
        -        key: "showdelay", 
        -        value: 250, 
        -        validator: Lang.isNumber 
        -    }, 
        -
        -    "HIDE_DELAY": { 
        -        key: "hidedelay", 
        -        value: 0, 
        -        validator: Lang.isNumber, 
        -        suppressEvent: true
        -    }, 
        -
        -    "SUBMENU_HIDE_DELAY": { 
        -        key: "submenuhidedelay", 
        -        value: 250, 
        -        validator: Lang.isNumber
        -    }, 
        -
        -    "CLICK_TO_HIDE": { 
        -        key: "clicktohide", 
        -        value: true, 
        -        validator: Lang.isBoolean
        -    },
        -
        -    "CONTAINER": { 
        -        key: "container"
        -    }, 
        -
        -    "MAX_HEIGHT": { 
        -        key: "maxheight", 
        -        value: 0, 
        -        validator: Lang.isNumber
        -    }, 
        -
        -    "CLASS_NAME": { 
        -        key: "classname", 
        -        value: null, 
        -        validator: Lang.isString
        -    }
        -
        -};
        -
        -
        -YAHOO.lang.extend(YAHOO.widget.Menu, YAHOO.widget.Overlay, {
        -
        -
        -// Constants
        -
        -
        -/**
        -* @property CSS_CLASS_NAME
        -* @description String representing the CSS class(es) to be applied to the 
        -* menu's <code>&#60;div&#62;</code> element.
        -* @default "yuimenu"
        -* @final
        -* @type String
        -*/
        -CSS_CLASS_NAME: "yuimenu",
        -
        -
        -/**
        -* @property ITEM_TYPE
        -* @description Object representing the type of menu item to instantiate and 
        -* add when parsing the child nodes (either <code>&#60;li&#62;</code> element, 
        -* <code>&#60;optgroup&#62;</code> element or <code>&#60;option&#62;</code>) 
        -* of the menu's source HTML element.
        -* @default YAHOO.widget.MenuItem
        -* @final
        -* @type YAHOO.widget.MenuItem
        -*/
        -ITEM_TYPE: null,
        -
        -
        -/**
        -* @property GROUP_TITLE_TAG_NAME
        -* @description String representing the tagname of the HTML element used to 
        -* title the menu's item groups.
        -* @default H6
        -* @final
        -* @type String
        -*/
        -GROUP_TITLE_TAG_NAME: "h6",
        -
        -
        -
        -// Private properties
        -
        -
        -/** 
        -* @property _nHideDelayId
        -* @description Number representing the time-out setting used to cancel the 
        -* hiding of a menu.
        -* @default null
        -* @private
        -* @type Number
        -*/
        -_nHideDelayId: null,
        -
        -
        -/** 
        -* @property _nShowDelayId
        -* @description Number representing the time-out setting used to cancel the 
        -* showing of a menu.
        -* @default null
        -* @private
        -* @type Number
        -*/
        -_nShowDelayId: null,
        -
        -
        -/** 
        -* @property _nSubmenuHideDelayId
        -* @description Number representing the time-out setting used to cancel the 
        -* hiding of a submenu.
        -* @default null
        -* @private
        -* @type Number
        -*/
        -_nSubmenuHideDelayId: null,
        -
        -
        -/** 
        -* @property _nBodyScrollId
        -* @description Number representing the time-out setting used to cancel the 
        -* scrolling of the menu's body element.
        -* @default null
        -* @private
        -* @type Number
        -*/
        -_nBodyScrollId: null,
        -
        -
        -/** 
        -* @property _bHideDelayEventHandlersAssigned
        -* @description Boolean indicating if the "mouseover" and "mouseout" event 
        -* handlers used for hiding the menu via a call to "window.setTimeout" have 
        -* already been assigned.
        -* @default false
        -* @private
        -* @type Boolean
        -*/
        -_bHideDelayEventHandlersAssigned: false,
        -
        -
        -/**
        -* @property _bHandledMouseOverEvent
        -* @description Boolean indicating the current state of the menu's 
        -* "mouseover" event.
        -* @default false
        -* @private
        -* @type Boolean
        -*/
        -_bHandledMouseOverEvent: false,
        -
        -
        -/**
        -* @property _bHandledMouseOutEvent
        -* @description Boolean indicating the current state of the menu's
        -* "mouseout" event.
        -* @default false
        -* @private
        -* @type Boolean
        -*/
        -_bHandledMouseOutEvent: false,
        -
        -
        -/**
        -* @property _aGroupTitleElements
        -* @description Array of HTML element used to title groups of menu items.
        -* @default []
        -* @private
        -* @type Array
        -*/
        -_aGroupTitleElements: null,
        -
        -
        -/**
        -* @property _aItemGroups
        -* @description Multi-dimensional Array representing the menu items as they
        -* are grouped in the menu.
        -* @default []
        -* @private
        -* @type Array
        -*/
        -_aItemGroups: null,
        -
        -
        -/**
        -* @property _aListElements
        -* @description Array of <code>&#60;ul&#62;</code> elements, each of which is 
        -* the parent node for each item's <code>&#60;li&#62;</code> element.
        -* @default []
        -* @private
        -* @type Array
        -*/
        -_aListElements: null,
        -
        -
        -/**
        -* @property _nCurrentMouseX
        -* @description The current x coordinate of the mouse inside the area of 
        -* the menu.
        -* @default 0
        -* @private
        -* @type Number
        -*/
        -_nCurrentMouseX: 0,
        -
        -
        -/**
        -* @property _nMaxHeight
        -* @description The original value of the "maxheight" configuration property 
        -* as set by the user.
        -* @default -1
        -* @private
        -* @type Number
        -*/
        -_nMaxHeight: -1,
        -
        -
        -/**
        -* @property _bStopMouseEventHandlers
        -* @description Stops "mouseover," "mouseout," and "mousemove" event handlers 
        -* from executing.
        -* @default false
        -* @private
        -* @type Boolean
        -*/
        -_bStopMouseEventHandlers: false,
        -
        -
        -/**
        -* @property _sClassName
        -* @description The current value of the "classname" configuration attribute.
        -* @default null
        -* @private
        -* @type String
        -*/
        -_sClassName: null,
        -
        -
        -
        -// Public properties
        -
        -
        -/**
        -* @property lazyLoad
        -* @description Boolean indicating if the menu's "lazy load" feature is 
        -* enabled.  If set to "true," initialization and rendering of the menu's 
        -* items will be deferred until the first time it is made visible.  This 
        -* property should be set via the constructor using the configuration 
        -* object literal.
        -* @default false
        -* @type Boolean
        -*/
        -lazyLoad: false,
        -
        -
        -/**
        -* @property itemData
        -* @description Array of items to be added to the menu.  The array can contain 
        -* strings representing the text for each item to be created, object literals 
        -* representing the menu item configuration properties, or MenuItem instances.  
        -* This property should be set via the constructor using the configuration 
        -* object literal.
        -* @default null
        -* @type Array
        -*/
        -itemData: null,
        -
        -
        -/**
        -* @property activeItem
        -* @description Object reference to the item in the menu that has is selected.
        -* @default null
        -* @type YAHOO.widget.MenuItem
        -*/
        -activeItem: null,
        -
        -
        -/**
        -* @property parent
        -* @description Object reference to the menu's parent menu or menu item.  
        -* This property can be set via the constructor using the configuration 
        -* object literal.
        -* @default null
        -* @type YAHOO.widget.MenuItem
        -*/
        -parent: null,
        -
        -
        -/**
        -* @property srcElement
        -* @description Object reference to the HTML element (either 
        -* <code>&#60;select&#62;</code> or <code>&#60;div&#62;</code>) used to 
        -* create the menu.
        -* @default null
        -* @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -* level-one-html.html#ID-94282980">HTMLSelectElement</a>|<a 
        -* href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.
        -* html#ID-22445964">HTMLDivElement</a>
        -*/
        -srcElement: null,
        -
        -
        -
        -// Events
        -
        -
        -/**
        -* @event mouseOverEvent
        -* @description Fires when the mouse has entered the menu.  Passes back 
        -* the DOM Event object as an argument.
        -*/
        -mouseOverEvent: null,
        -
        -
        -/**
        -* @event mouseOutEvent
        -* @description Fires when the mouse has left the menu.  Passes back the DOM 
        -* Event object as an argument.
        -* @type YAHOO.util.CustomEvent
        -*/
        -mouseOutEvent: null,
        -
        -
        -/**
        -* @event mouseDownEvent
        -* @description Fires when the user mouses down on the menu.  Passes back the 
        -* DOM Event object as an argument.
        -* @type YAHOO.util.CustomEvent
        -*/
        -mouseDownEvent: null,
        -
        -
        -/**
        -* @event mouseUpEvent
        -* @description Fires when the user releases a mouse button while the mouse is 
        -* over the menu.  Passes back the DOM Event object as an argument.
        -* @type YAHOO.util.CustomEvent
        -*/
        -mouseUpEvent: null,
        -
        -
        -/**
        -* @event clickEvent
        -* @description Fires when the user clicks the on the menu.  Passes back the 
        -* DOM Event object as an argument.
        -* @type YAHOO.util.CustomEvent
        -*/
        -clickEvent: null,
        -
        -
        -/**
        -* @event keyPressEvent
        -* @description Fires when the user presses an alphanumeric key when one of the
        -* menu's items has focus.  Passes back the DOM Event object as an argument.
        -* @type YAHOO.util.CustomEvent
        -*/
        -keyPressEvent: null,
        -
        -
        -/**
        -* @event keyDownEvent
        -* @description Fires when the user presses a key when one of the menu's items 
        -* has focus.  Passes back the DOM Event object as an argument.
        -* @type YAHOO.util.CustomEvent
        -*/
        -keyDownEvent: null,
        -
        -
        -/**
        -* @event keyUpEvent
        -* @description Fires when the user releases a key when one of the menu's items 
        -* has focus.  Passes back the DOM Event object as an argument.
        -* @type YAHOO.util.CustomEvent
        -*/
        -keyUpEvent: null,
        -
        -
        -/**
        -* @event itemAddedEvent
        -* @description Fires when an item is added to the menu.
        -* @type YAHOO.util.CustomEvent
        -*/
        -itemAddedEvent: null,
        -
        -
        -/**
        -* @event itemRemovedEvent
        -* @description Fires when an item is removed to the menu.
        -* @type YAHOO.util.CustomEvent
        -*/
        -itemRemovedEvent: null,
        -
        -
        -/**
        -* @method init
        -* @description The Menu class's initialization method. This method is 
        -* automatically called by the constructor, and sets up all DOM references 
        -* for pre-existing markup, and creates required markup if it is not 
        -* already present.
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;div&#62;</code> element of the menu.
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;select&#62;</code> element to be used as the data source 
        -* for the menu.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -* level-one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object 
        -* specifying the <code>&#60;div&#62;</code> element of the menu.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -* level-one-html.html#ID-94282980">HTMLSelectElement</a>} p_oElement 
        -* Object specifying the <code>&#60;select&#62;</code> element to be used as 
        -* the data source for the menu.
        -* @param {Object} p_oConfig Optional. Object literal specifying the 
        -* configuration for the menu. See configuration class documentation for 
        -* more details.
        -*/
        -init: function(p_oElement, p_oConfig) {
        -
        -    this._aItemGroups = [];
        -    this._aListElements = [];
        -    this._aGroupTitleElements = [];
        -
        -    if(!this.ITEM_TYPE) {
        -
        -        this.ITEM_TYPE = YAHOO.widget.MenuItem;
        -
        -    }
        -
        -
        -    var oElement;
        -
        -    if(typeof p_oElement == "string") {
        -
        -        oElement = document.getElementById(p_oElement);
        -
        -    }
        -    else if(p_oElement.tagName) {
        -
        -        oElement = p_oElement;
        -
        -    }
        -
        -
        -    if(oElement && oElement.tagName) {
        -
        -        switch(oElement.tagName.toUpperCase()) {
        -    
        -            case "DIV":
        -
        -                this.srcElement = oElement;
        -
        -                if(!oElement.id) {
        -
        -                    oElement.setAttribute("id", Dom.generateId());
        -
        -                }
        -
        -
        -                /* 
        -                    Note: we don't pass the user config in here yet 
        -                    because we only want it executed once, at the lowest 
        -                    subclass level.
        -                */ 
        -            
        -                YAHOO.widget.Menu.superclass.init.call(this, oElement);
        -
        -                this.beforeInitEvent.fire(YAHOO.widget.Menu);
        -
        -                this.logger = new YAHOO.widget.LogWriter(this.toString());
        -
        -                this.logger.log("Source element: " + this.srcElement.tagName);
        -    
        -            break;
        -    
        -            case "SELECT":
        -    
        -                this.srcElement = oElement;
        -
        -    
        -                /*
        -                    The source element is not something that we can use 
        -                    outright, so we need to create a new Overlay
        -
        -                    Note: we don't pass the user config in here yet 
        -                    because we only want it executed once, at the lowest 
        -                    subclass level.
        -                */ 
        -
        -                YAHOO.widget.Menu.superclass.init.call(this, Dom.generateId());
        -
        -                this.beforeInitEvent.fire(YAHOO.widget.Menu);
        -
        -                this.logger = new YAHOO.widget.LogWriter(this.toString());
        -
        -                this.logger.log("Source element: " + this.srcElement.tagName);
        -
        -            break;
        -
        -        }
        -
        -    }
        -    else {
        -
        -        /* 
        -            Note: we don't pass the user config in here yet 
        -            because we only want it executed once, at the lowest 
        -            subclass level.
        -        */ 
        -    
        -        YAHOO.widget.Menu.superclass.init.call(this, p_oElement);
        -
        -        this.beforeInitEvent.fire(YAHOO.widget.Menu);
        -
        -        this.logger = new YAHOO.widget.LogWriter(this.toString());
        -
        -        this.logger.log("No source element found.  " +
        -            "Created element with id: " + this.id);
        -
        -    }
        -
        -
        -    if(this.element) {
        -
        -        var oEl = this.element;
        -
        -        Dom.addClass(oEl, this.CSS_CLASS_NAME);
        -
        -
        -        // Subscribe to Custom Events
        -
        -        this.initEvent.subscribe(this._onInit, this, true);
        -        this.beforeRenderEvent.subscribe(this._onBeforeRender, this, true);
        -        this.renderEvent.subscribe(this._onRender);
        -        this.beforeShowEvent.subscribe(this._onBeforeShow, this, true);
        -        this.showEvent.subscribe(this._onShow, this, true);
        -        this.beforeHideEvent.subscribe(this._onBeforeHide, this, true);
        -        this.hideEvent.subscribe(this._onHide, this, true);
        -        this.mouseOverEvent.subscribe(this._onMouseOver, this, true);
        -        this.mouseOutEvent.subscribe(this._onMouseOut, this, true);
        -        this.clickEvent.subscribe(this._onClick, this, true);
        -        this.keyDownEvent.subscribe(this._onKeyDown, this, true);
        -        this.keyPressEvent.subscribe(this._onKeyPress, this, true);
        -
        -        YAHOO.widget.Module.textResizeEvent.subscribe(
        -            this._onTextResize, 
        -            this, 
        -            true
        -        );
        -
        -
        -        if(p_oConfig) {
        -    
        -            this.cfg.applyConfig(p_oConfig, true);
        -    
        -        }
        -
        -
        -        // Register the Menu instance with the MenuManager
        -
        -        YAHOO.widget.MenuManager.addMenu(this);
        -        
        -
        -        this.initEvent.fire(YAHOO.widget.Menu);
        -
        -    }
        -
        -},
        -
        -
        -
        -// Private methods
        -
        -
        -/**
        -* @method _initSubTree
        -* @description Iterates the childNodes of the source element to find nodes 
        -* used to instantiate menu and menu items.
        -* @private
        -*/
        -_initSubTree: function() {
        -
        -    var oNode;
        -
        -    if(this.srcElement.tagName.toUpperCase() == "DIV") {
        -
        -        /*
        -            Populate the collection of item groups and item
        -            group titles
        -        */
        -
        -        oNode = this.body.firstChild;
        -
        -        var nGroup = 0,
        -            sGroupTitleTagName = this.GROUP_TITLE_TAG_NAME.toUpperCase();
        -
        -        do {
        -
        -            if(oNode && oNode.tagName) {
        -
        -                switch(oNode.tagName.toUpperCase()) {
        -
        -                    case sGroupTitleTagName:
        -                    
        -                        this._aGroupTitleElements[nGroup] = oNode;
        -
        -                    break;
        -
        -                    case "UL":
        -
        -                        this._aListElements[nGroup] = oNode;
        -                        this._aItemGroups[nGroup] = [];
        -                        nGroup++;
        -
        -                    break;
        -
        -                }
        -            
        -            }
        -
        -        }
        -        while((oNode = oNode.nextSibling));
        -
        -
        -        /*
        -            Apply the "first-of-type" class to the first UL to mimic 
        -            the "first-of-type" CSS3 psuedo class.
        -        */
        -
        -        if(this._aListElements[0]) {
        -
        -            Dom.addClass(this._aListElements[0], "first-of-type");
        -
        -        }
        -
        -    }
        -
        -
        -    oNode = null;
        -
        -    this.logger.log("Searching DOM for items to initialize.");
        -
        -    if(this.srcElement.tagName) {
        -
        -        var sSrcElementTagName = this.srcElement.tagName.toUpperCase();
        -
        -
        -        switch(sSrcElementTagName) {
        -    
        -            case "DIV":
        -    
        -                if(this._aListElements.length > 0) {
        -    
        -                    this.logger.log("Found " + 
        -                        this._aListElements.length + 
        -                        " item groups to initialize.");
        -    
        -                    var i = this._aListElements.length - 1;
        -    
        -                    do {
        -    
        -                        oNode = this._aListElements[i].firstChild;
        -        
        -                        this.logger.log("Scanning " + 
        -                            this._aListElements[i].childNodes.length + 
        -                            " child nodes for items to initialize.");
        -    
        -                        do {
        -        
        -                            if(
        -                                oNode && 
        -                                oNode.tagName && 
        -                                oNode.tagName.toUpperCase() == "LI"
        -                            ) {
        -        
        -                                this.logger.log("Initializing " + 
        -                                    oNode.tagName + " node.");
        -
        -                                this.addItem(
        -                                        new this.ITEM_TYPE(
        -                                            oNode, 
        -                                            { parent: this }
        -                                        ), 
        -                                        i
        -                                    );
        -    
        -                            }
        -                
        -                        }
        -                        while((oNode = oNode.nextSibling));
        -                
        -                    }
        -                    while(i--);
        -    
        -                }
        -    
        -            break;
        -    
        -            case "SELECT":
        -    
        -                this.logger.log("Scanning " +  
        -                    this.srcElement.childNodes.length + 
        -                    " child nodes for items to initialize.");
        -    
        -                oNode = this.srcElement.firstChild;
        -    
        -                do {
        -    
        -                    if(oNode && oNode.tagName) {
        -                    
        -                        switch(oNode.tagName.toUpperCase()) {
        -        
        -                            case "OPTGROUP":
        -                            case "OPTION":
        -        
        -                                this.logger.log("Initializing " +  
        -                                    oNode.tagName + " node.");
        -        
        -                                this.addItem(
        -                                        new this.ITEM_TYPE(
        -                                                oNode, 
        -                                                { parent: this }
        -                                            )
        -                                        );
        -        
        -                            break;
        -        
        -                        }
        -
        -                    }
        -    
        -                }
        -                while((oNode = oNode.nextSibling));
        -    
        -            break;
        -    
        -        }
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _getFirstEnabledItem
        -* @description Returns the first enabled item in the menu.
        -* @return {YAHOO.widget.MenuItem}
        -* @private
        -*/
        -_getFirstEnabledItem: function() {
        -
        -    var aItems = this.getItems(),
        -        nItems = aItems.length,
        -        oItem;
        -    
        -    for(var i=0; i<nItems; i++) {
        -
        -        oItem = aItems[i];
        -
        -        if(
        -            oItem && 
        -            !oItem.cfg.getProperty("disabled") && 
        -            oItem.element.style.display != "none"
        -        ) {
        -
        -            return oItem;
        -
        -        }
        -    
        -    }
        -    
        -},
        -
        -
        -/**
        -* @method _addItemToGroup
        -* @description Adds a menu item to a group.
        -* @private
        -* @param {Number} p_nGroupIndex Number indicating the group to which the 
        -* item belongs.
        -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem 
        -* instance to be added to the menu.
        -* @param {String} p_oItem String specifying the text of the item to be added 
        -* to the menu.
        -* @param {Object} p_oItem Object literal containing a set of menu item 
        -* configuration properties.
        -* @param {Number} p_nItemIndex Optional. Number indicating the index at 
        -* which the menu item should be added.
        -* @return {YAHOO.widget.MenuItem}
        -*/
        -_addItemToGroup: function(p_nGroupIndex, p_oItem, p_nItemIndex) {
        -
        -    var oItem;
        -
        -    if(p_oItem instanceof this.ITEM_TYPE) {
        -
        -        oItem = p_oItem;
        -        oItem.parent = this;
        -
        -    }
        -    else if(typeof p_oItem == "string") {
        -
        -        oItem = new this.ITEM_TYPE(p_oItem, { parent: this });
        -    
        -    }
        -    else if(typeof p_oItem == "object") {
        -
        -        p_oItem.parent = this;
        -
        -        oItem = new this.ITEM_TYPE(p_oItem.text, p_oItem);
        -
        -    }
        -
        -
        -    if(oItem) {
        -
        -        if (oItem.cfg.getProperty("selected")) {
        -
        -            this.activeItem = oItem;
        -        
        -        }
        -
        -
        -        var nGroupIndex = typeof p_nGroupIndex == "number" ? p_nGroupIndex : 0,
        -            aGroup = this._getItemGroup(nGroupIndex),
        -            oGroupItem;
        -
        -
        -        if(!aGroup) {
        -
        -            aGroup = this._createItemGroup(nGroupIndex);
        -
        -        }
        -
        -
        -        if(typeof p_nItemIndex == "number") {
        -
        -            var bAppend = (p_nItemIndex >= aGroup.length);            
        -
        -
        -            if(aGroup[p_nItemIndex]) {
        -    
        -                aGroup.splice(p_nItemIndex, 0, oItem);
        -    
        -            }
        -            else {
        -    
        -                aGroup[p_nItemIndex] = oItem;
        -    
        -            }
        -
        -
        -            oGroupItem = aGroup[p_nItemIndex];
        -
        -            if(oGroupItem) {
        -
        -                if(
        -                    bAppend && 
        -                    (
        -                        !oGroupItem.element.parentNode || 
        -                        oGroupItem.element.parentNode.nodeType == 11
        -                    )
        -                ) {
        -        
        -                    this._aListElements[nGroupIndex].appendChild(
        -                        oGroupItem.element
        -                    );
        -    
        -                }
        -                else {
        -  
        -                    function getNextItemSibling(p_aArray, p_nStartIndex) {
        -                
        -                            return (
        -                                    p_aArray[p_nStartIndex] || 
        -                                    getNextItemSibling(
        -                                        p_aArray, 
        -                                        (p_nStartIndex+1)
        -                                    )
        -                                );
        -
        -                    }
        -    
        -    
        -                    var oNextItemSibling = 
        -                            getNextItemSibling(aGroup, (p_nItemIndex+1));
        -    
        -                    if(
        -                        oNextItemSibling && 
        -                        (
        -                            !oGroupItem.element.parentNode || 
        -                            oGroupItem.element.parentNode.nodeType == 11
        -                        )
        -                    ) {
        -            
        -                        this._aListElements[nGroupIndex].insertBefore(
        -                                oGroupItem.element, 
        -                                oNextItemSibling.element
        -                            );
        -        
        -                    }
        -    
        -                }
        -    
        -
        -                oGroupItem.parent = this;
        -        
        -                this._subscribeToItemEvents(oGroupItem);
        -    
        -                this._configureSubmenu(oGroupItem);
        -                
        -                this._updateItemProperties(nGroupIndex);
        -        
        -                this.logger.log("Item inserted." + 
        -                    " Text: " + oGroupItem.cfg.getProperty("text") + ", " + 
        -                    " Index: " + oGroupItem.index + ", " + 
        -                    " Group Index: " + oGroupItem.groupIndex);
        -
        -                this.itemAddedEvent.fire(oGroupItem);
        -
        -                return oGroupItem;
        -    
        -            }
        -
        -        }
        -        else {
        -    
        -            var nItemIndex = aGroup.length;
        -    
        -            aGroup[nItemIndex] = oItem;
        -
        -            oGroupItem = aGroup[nItemIndex];
        -    
        -
        -            if(oGroupItem) {
        -    
        -                if(
        -                    !Dom.isAncestor(
        -                        this._aListElements[nGroupIndex], 
        -                        oGroupItem.element
        -                    )
        -                ) {
        -    
        -                    this._aListElements[nGroupIndex].appendChild(
        -                        oGroupItem.element
        -                    );
        -    
        -                }
        -    
        -                oGroupItem.element.setAttribute("groupindex", nGroupIndex);
        -                oGroupItem.element.setAttribute("index", nItemIndex);
        -        
        -                oGroupItem.parent = this;
        -    
        -                oGroupItem.index = nItemIndex;
        -                oGroupItem.groupIndex = nGroupIndex;
        -        
        -                this._subscribeToItemEvents(oGroupItem);
        -    
        -                this._configureSubmenu(oGroupItem);
        -    
        -                if(nItemIndex === 0) {
        -        
        -                    Dom.addClass(oGroupItem.element, "first-of-type");
        -        
        -                }
        -
        -                this.logger.log("Item added." + 
        -                    " Text: " + oGroupItem.cfg.getProperty("text") + ", " + 
        -                    " Index: " + oGroupItem.index + ", " + 
        -                    " Group Index: " + oGroupItem.groupIndex);
        -        
        -
        -                this.itemAddedEvent.fire(oGroupItem);
        -
        -                return oGroupItem;
        -    
        -            }
        -    
        -        }
        -
        -    }
        -    
        -},
        -
        -
        -/**
        -* @method _removeItemFromGroupByIndex
        -* @description Removes a menu item from a group by index.  Returns the menu 
        -* item that was removed.
        -* @private
        -* @param {Number} p_nGroupIndex Number indicating the group to which the menu 
        -* item belongs.
        -* @param {Number} p_nItemIndex Number indicating the index of the menu item 
        -* to be removed.
        -* @return {YAHOO.widget.MenuItem}
        -*/
        -_removeItemFromGroupByIndex: function(p_nGroupIndex, p_nItemIndex) {
        -
        -    var nGroupIndex = typeof p_nGroupIndex == "number" ? p_nGroupIndex : 0,
        -        aGroup = this._getItemGroup(nGroupIndex);
        -
        -    if(aGroup) {
        -
        -        var aArray = aGroup.splice(p_nItemIndex, 1),
        -            oItem = aArray[0];
        -    
        -        if(oItem) {
        -    
        -            // Update the index and className properties of each member        
        -            
        -            this._updateItemProperties(nGroupIndex);
        -    
        -            if(aGroup.length === 0) {
        -    
        -                // Remove the UL
        -    
        -                var oUL = this._aListElements[nGroupIndex];
        -    
        -                if(this.body && oUL) {
        -    
        -                    this.body.removeChild(oUL);
        -    
        -                }
        -    
        -                // Remove the group from the array of items
        -    
        -                this._aItemGroups.splice(nGroupIndex, 1);
        -    
        -    
        -                // Remove the UL from the array of ULs
        -    
        -                this._aListElements.splice(nGroupIndex, 1);
        -    
        -    
        -                /*
        -                     Assign the "first-of-type" class to the new first UL 
        -                     in the collection
        -                */
        -    
        -                oUL = this._aListElements[0];
        -    
        -                if(oUL) {
        -    
        -                    Dom.addClass(oUL, "first-of-type");
        -    
        -                }            
        -    
        -            }
        -    
        -
        -            this.itemRemovedEvent.fire(oItem);    
        -
        -
        -            // Return a reference to the item that was removed
        -        
        -            return oItem;
        -    
        -        }
        -
        -    }
        -    
        -},
        -
        -
        -/**
        -* @method _removeItemFromGroupByValue
        -* @description Removes a menu item from a group by reference.  Returns the 
        -* menu item that was removed.
        -* @private
        -* @param {Number} p_nGroupIndex Number indicating the group to which the
        -* menu item belongs.
        -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem 
        -* instance to be removed.
        -* @return {YAHOO.widget.MenuItem}
        -*/    
        -_removeItemFromGroupByValue: function(p_nGroupIndex, p_oItem) {
        -
        -    var aGroup = this._getItemGroup(p_nGroupIndex);
        -
        -    if(aGroup) {
        -
        -        var nItems = aGroup.length,
        -            nItemIndex = -1;
        -    
        -        if(nItems > 0) {
        -    
        -            var i = nItems-1;
        -        
        -            do {
        -        
        -                if(aGroup[i] == p_oItem) {
        -        
        -                    nItemIndex = i;
        -                    break;    
        -        
        -                }
        -        
        -            }
        -            while(i--);
        -        
        -            if(nItemIndex > -1) {
        -        
        -                return this._removeItemFromGroupByIndex(
        -                            p_nGroupIndex, 
        -                            nItemIndex
        -                        );
        -        
        -            }
        -    
        -        }
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _updateItemProperties
        -* @description Updates the "index," "groupindex," and "className" properties 
        -* of the menu items in the specified group. 
        -* @private
        -* @param {Number} p_nGroupIndex Number indicating the group of items to update.
        -*/
        -_updateItemProperties: function(p_nGroupIndex) {
        -
        -    var aGroup = this._getItemGroup(p_nGroupIndex),
        -        nItems = aGroup.length;
        -
        -    if(nItems > 0) {
        -
        -        var i = nItems - 1,
        -            oItem,
        -            oLI;
        -
        -        // Update the index and className properties of each member
        -    
        -        do {
        -
        -            oItem = aGroup[i];
        -
        -            if(oItem) {
        -    
        -                oLI = oItem.element;
        -
        -                oItem.index = i;
        -                oItem.groupIndex = p_nGroupIndex;
        -
        -                oLI.setAttribute("groupindex", p_nGroupIndex);
        -                oLI.setAttribute("index", i);
        -
        -                Dom.removeClass(oLI, "first-of-type");
        -
        -            }
        -    
        -        }
        -        while(i--);
        -
        -
        -        if(oLI) {
        -
        -            Dom.addClass(oLI, "first-of-type");
        -
        -        }
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _createItemGroup
        -* @description Creates a new menu item group (array) and its associated 
        -* <code>&#60;ul&#62;</code> element. Returns an aray of menu item groups.
        -* @private
        -* @param {Number} p_nIndex Number indicating the group to create.
        -* @return {Array}
        -*/
        -_createItemGroup: function(p_nIndex) {
        -
        -    if(!this._aItemGroups[p_nIndex]) {
        -
        -        this._aItemGroups[p_nIndex] = [];
        -
        -        var oUL = document.createElement("ul");
        -
        -        this._aListElements[p_nIndex] = oUL;
        -
        -        return this._aItemGroups[p_nIndex];
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _getItemGroup
        -* @description Returns the menu item group at the specified index.
        -* @private
        -* @param {Number} p_nIndex Number indicating the index of the menu item group 
        -* to be retrieved.
        -* @return {Array}
        -*/
        -_getItemGroup: function(p_nIndex) {
        -
        -    var nIndex = ((typeof p_nIndex == "number") ? p_nIndex : 0);
        -
        -    return this._aItemGroups[nIndex];
        -
        -},
        -
        -
        -/**
        -* @method _configureSubmenu
        -* @description Subscribes the menu item's submenu to its parent menu's events.
        -* @private
        -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem 
        -* instance with the submenu to be configured.
        -*/
        -_configureSubmenu: function(p_oItem) {
        -
        -    var oSubmenu = p_oItem.cfg.getProperty("submenu");
        -
        -    if(oSubmenu) {
        -            
        -        /*
        -            Listen for configuration changes to the parent menu 
        -            so they they can be applied to the submenu.
        -        */
        -
        -        this.cfg.configChangedEvent.subscribe(
        -                this._onParentMenuConfigChange, 
        -                oSubmenu, 
        -                true
        -            );
        -
        -        this.renderEvent.subscribe(
        -                this._onParentMenuRender,
        -                oSubmenu, 
        -                true
        -            );
        -
        -        oSubmenu.beforeShowEvent.subscribe(
        -                this._onSubmenuBeforeShow, 
        -                oSubmenu, 
        -                true
        -            );
        -
        -        oSubmenu.showEvent.subscribe(this._onSubmenuShow, null, p_oItem);
        -        oSubmenu.hideEvent.subscribe(this._onSubmenuHide, null, p_oItem);
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _subscribeToItemEvents
        -* @description Subscribes a menu to a menu item's event.
        -* @private
        -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem 
        -* instance whose events should be subscribed to.
        -*/
        -_subscribeToItemEvents: function(p_oItem) {
        -
        -    p_oItem.focusEvent.subscribe(this._onMenuItemFocus);
        -
        -    p_oItem.blurEvent.subscribe(this._onMenuItemBlur);
        -
        -    p_oItem.cfg.configChangedEvent.subscribe(
        -        this._onMenuItemConfigChange,
        -        p_oItem,
        -        this
        -    );
        -
        -},
        -
        -
        -/**
        -* @method _getOffsetWidth
        -* @description Returns the offset width of the menu's 
        -* <code>&#60;div&#62;</code> element.
        -* @private
        -*/
        -_getOffsetWidth: function() {
        -
        -    var oClone = this.element.cloneNode(true);
        -
        -    Dom.setStyle(oClone, "width", "");
        -
        -    document.body.appendChild(oClone);
        -
        -    var sWidth = oClone.offsetWidth;
        -
        -    document.body.removeChild(oClone);
        -
        -    return sWidth;
        -
        -},
        -
        -
        -/**
        -* @method _setWidth
        -* @description Sets the width of the menu's root <code>&#60;div&#62;</code> 
        -* element to its offsetWidth.
        -* @private
        -*/
        -_setWidth: function() {
        -
        -    var sWidth;
        -
        -    if (this.element.parentNode.tagName.toUpperCase() == "BODY") {
        -
        -        if (this.browser == "opera") {
        -
        -            sWidth = this._getOffsetWidth();
        -        
        -        }
        -        else {
        -
        -            Dom.setStyle(this.element, "width", "auto");
        -            
        -            sWidth = this.element.offsetWidth;
        -        
        -        }
        -
        -    }
        -    else {
        -    
        -        sWidth = this._getOffsetWidth();
        -    
        -    }
        -
        -    this.cfg.setProperty("width", (sWidth + "px"));
        -
        -},
        -
        -
        -/**
        -* @method _onWidthChange
        -* @description Change event handler for the the menu's "width" configuration
        -* property.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -*/
        -_onWidthChange: function(p_sType, p_aArgs) {
        -
        -    var sWidth = p_aArgs[0];
        -    
        -    if (sWidth && !this._hasSetWidthHandlers) {
        -
        -        this.itemAddedEvent.subscribe(this._setWidth);
        -        this.itemRemovedEvent.subscribe(this._setWidth);
        -
        -        this._hasSetWidthHandlers = true;
        -
        -    }
        -    else if (this._hasSetWidthHandlers) {
        -
        -        this.itemAddedEvent.unsubscribe(this._setWidth);
        -        this.itemRemovedEvent.unsubscribe(this._setWidth);
        -
        -        this._hasSetWidthHandlers = false;
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onVisibleChange
        -* @description Change event handler for the the menu's "visible" configuration
        -* property.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -*/
        -_onVisibleChange: function(p_sType, p_aArgs) {
        -
        -    var bVisible = p_aArgs[0];
        -    
        -    if (bVisible) {
        -
        -        Dom.addClass(this.element, "visible");
        -
        -    }
        -    else {
        -
        -        Dom.removeClass(this.element, "visible");
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _cancelHideDelay
        -* @description Cancels the call to "hideMenu."
        -* @private
        -*/
        -_cancelHideDelay: function() {
        -
        -    var oRoot = this.getRoot();
        -
        -    if(oRoot._nHideDelayId) {
        -
        -        window.clearTimeout(oRoot._nHideDelayId);
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _execHideDelay
        -* @description Hides the menu after the number of milliseconds specified by 
        -* the "hidedelay" configuration property.
        -* @private
        -*/
        -_execHideDelay: function() {
        -
        -    this._cancelHideDelay();
        -
        -    var oRoot = this.getRoot(),
        -        me = this;
        -
        -    function hideMenu() {
        -    
        -        if(oRoot.activeItem) {
        -
        -            oRoot.clearActiveItem();
        -
        -        }
        -
        -        if(oRoot == me && me.cfg.getProperty("position") == "dynamic") {
        -
        -            me.hide();            
        -        
        -        }
        -    
        -    }
        -
        -
        -    oRoot._nHideDelayId = 
        -        window.setTimeout(hideMenu, oRoot.cfg.getProperty("hidedelay"));
        -
        -},
        -
        -
        -/**
        -* @method _cancelShowDelay
        -* @description Cancels the call to the "showMenu."
        -* @private
        -*/
        -_cancelShowDelay: function() {
        -
        -    var oRoot = this.getRoot();
        -
        -    if(oRoot._nShowDelayId) {
        -
        -        window.clearTimeout(oRoot._nShowDelayId);
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _execShowDelay
        -* @description Shows the menu after the number of milliseconds specified by 
        -* the "showdelay" configuration property have ellapsed.
        -* @private
        -* @param {YAHOO.widget.Menu} p_oMenu Object specifying the menu that should 
        -* be made visible.
        -*/
        -_execShowDelay: function(p_oMenu) {
        -
        -    var oRoot = this.getRoot();
        -
        -    function showMenu() {
        -
        -        if(p_oMenu.parent.cfg.getProperty("selected")) {
        -
        -            p_oMenu.show();
        -
        -        }
        -
        -    }
        -
        -
        -    oRoot._nShowDelayId = 
        -        window.setTimeout(showMenu, oRoot.cfg.getProperty("showdelay"));
        -
        -},
        -
        -
        -/**
        -* @method _execSubmenuHideDelay
        -* @description Hides a submenu after the number of milliseconds specified by 
        -* the "submenuhidedelay" configuration property have ellapsed.
        -* @private
        -* @param {YAHOO.widget.Menu} p_oSubmenu Object specifying the submenu that  
        -* should be hidden.
        -* @param {Number} p_nMouseX The x coordinate of the mouse when it left 
        -* the specified submenu's parent menu item.
        -* @param {Number} p_nHideDelay The number of milliseconds that should ellapse
        -* before the submenu is hidden.
        -*/
        -_execSubmenuHideDelay: function(p_oSubmenu, p_nMouseX, p_nHideDelay) {
        -
        -    var me = this;
        -
        -    p_oSubmenu._nSubmenuHideDelayId = window.setTimeout(function () {
        -
        -        if(me._nCurrentMouseX > (p_nMouseX + 10)) {
        -
        -            p_oSubmenu._nSubmenuHideDelayId = window.setTimeout(function () {
        -        
        -                p_oSubmenu.hide();
        -
        -            }, p_nHideDelay);
        -
        -        }
        -        else {
        -
        -            p_oSubmenu.hide();
        -        
        -        }
        -
        -    }, 50);
        -
        -},
        -
        -
        -
        -// Protected methods
        -
        -
        -/**
        -* @method _disableScrollHeader
        -* @description Disables the header used for scrolling the body of the menu.
        -* @protected
        -*/
        -_disableScrollHeader: function() {
        -
        -    if(!this._bHeaderDisabled) {
        -
        -        Dom.addClass(this.header, "topscrollbar_disabled");
        -        this._bHeaderDisabled = true;
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _disableScrollFooter
        -* @description Disables the footer used for scrolling the body of the menu.
        -* @protected
        -*/
        -_disableScrollFooter: function() {
        -
        -    if(!this._bFooterDisabled) {
        -
        -        Dom.addClass(this.footer, "bottomscrollbar_disabled");
        -        this._bFooterDisabled = true;
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _enableScrollHeader
        -* @description Enables the header used for scrolling the body of the menu.
        -* @protected
        -*/
        -_enableScrollHeader: function() {
        -
        -    if(this._bHeaderDisabled) {
        -
        -        Dom.removeClass(this.header, "topscrollbar_disabled");
        -        this._bHeaderDisabled = false;
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _enableScrollFooter
        -* @description Enables the footer used for scrolling the body of the menu.
        -* @protected
        -*/
        -_enableScrollFooter: function() {
        -
        -    if(this._bFooterDisabled) {
        -
        -        Dom.removeClass(this.footer, "bottomscrollbar_disabled");
        -        this._bFooterDisabled = false;
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onMouseOver
        -* @description "mouseover" event handler for the menu.
        -* @protected
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -_onMouseOver: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    if(this._bStopMouseEventHandlers) {
        -    
        -        return false;
        -    
        -    }
        -
        -
        -    var oEvent = p_aArgs[0],
        -        oItem = p_aArgs[1],
        -        oTarget = Event.getTarget(oEvent);
        -
        -
        -    if(
        -        !this._bHandledMouseOverEvent && 
        -        (oTarget == this.element || Dom.isAncestor(this.element, oTarget))
        -    ) {
        -
        -        // Menu mouseover logic
        -
        -        this._nCurrentMouseX = 0;
        -
        -        Event.on(
        -                this.element, 
        -                "mousemove", 
        -                this._onMouseMove, 
        -                this, 
        -                true
        -            );
        -
        -
        -        this.clearActiveItem();
        -
        -
        -        if(this.parent && this._nSubmenuHideDelayId) {
        -
        -            window.clearTimeout(this._nSubmenuHideDelayId);
        -
        -            this.parent.cfg.setProperty("selected", true);
        -
        -            var oParentMenu = this.parent.parent;
        -
        -            oParentMenu._bHandledMouseOutEvent = true;
        -            oParentMenu._bHandledMouseOverEvent = false;
        -
        -        }
        -
        -
        -        this._bHandledMouseOverEvent = true;
        -        this._bHandledMouseOutEvent = false;
        -    
        -    }
        -
        -
        -    if(
        -        oItem && !oItem.handledMouseOverEvent && 
        -        !oItem.cfg.getProperty("disabled") && 
        -        (oTarget == oItem.element || Dom.isAncestor(oItem.element, oTarget))
        -    ) {
        -
        -        // Menu Item mouseover logic
        -
        -        var nShowDelay = this.cfg.getProperty("showdelay"),
        -            bShowDelay = (nShowDelay > 0);
        -
        -
        -        if(bShowDelay) {
        -        
        -            this._cancelShowDelay();
        -        
        -        }
        -
        -
        -        var oActiveItem = this.activeItem;
        -    
        -        if(oActiveItem) {
        -    
        -            oActiveItem.cfg.setProperty("selected", false);
        -    
        -        }
        -
        -
        -        var oItemCfg = oItem.cfg;
        -    
        -        // Select and focus the current menu item
        -    
        -        oItemCfg.setProperty("selected", true);
        -
        -
        -        if (this.hasFocus()) {
        -        
        -            oItem.focus();
        -        
        -        }
        -
        -
        -        if(this.cfg.getProperty("autosubmenudisplay")) {
        -
        -            // Show the submenu this menu item
        -
        -            var oSubmenu = oItemCfg.getProperty("submenu");
        -        
        -            if(oSubmenu) {
        -        
        -                if(bShowDelay) {
        -
        -                    this._execShowDelay(oSubmenu);
        -        
        -                }
        -                else {
        -
        -                    oSubmenu.show();
        -
        -                }
        -
        -            }
        -
        -        }                        
        -
        -        oItem.handledMouseOverEvent = true;
        -        oItem.handledMouseOutEvent = false;
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onMouseOut
        -* @description "mouseout" event handler for the menu.
        -* @protected
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -_onMouseOut: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    if(this._bStopMouseEventHandlers) {
        -    
        -        return false;
        -    
        -    }
        -
        -
        -    var oEvent = p_aArgs[0],
        -        oItem = p_aArgs[1],
        -        oRelatedTarget = Event.getRelatedTarget(oEvent),
        -        bMovingToSubmenu = false;
        -
        -
        -    if(oItem && !oItem.cfg.getProperty("disabled")) {
        -
        -        var oItemCfg = oItem.cfg,
        -            oSubmenu = oItemCfg.getProperty("submenu");
        -
        -
        -        if(
        -            oSubmenu && 
        -            (
        -                oRelatedTarget == oSubmenu.element ||
        -                Dom.isAncestor(oSubmenu.element, oRelatedTarget)
        -            )
        -        ) {
        -
        -            bMovingToSubmenu = true;
        -
        -        }
        -
        -
        -        if( 
        -            !oItem.handledMouseOutEvent && 
        -            (
        -                (
        -                    oRelatedTarget != oItem.element &&  
        -                    !Dom.isAncestor(oItem.element, oRelatedTarget)
        -                ) || bMovingToSubmenu
        -            )
        -        ) {
        -
        -            // Menu Item mouseout logic
        -
        -            if(!bMovingToSubmenu) {
        -
        -                oItem.cfg.setProperty("selected", false);
        -
        -
        -                if(oSubmenu) {
        -
        -                    var nSubmenuHideDelay = 
        -                            this.cfg.getProperty("submenuhidedelay"),
        -
        -                        nShowDelay = this.cfg.getProperty("showdelay");
        -
        -                    if(
        -                        !(this instanceof YAHOO.widget.MenuBar) && 
        -                        nSubmenuHideDelay > 0 && 
        -                        nShowDelay >= nSubmenuHideDelay
        -                    ) {
        -
        -                        this._execSubmenuHideDelay(
        -                                oSubmenu, 
        -                                Event.getPageX(oEvent),
        -                                nSubmenuHideDelay
        -                            );
        -
        -                    }
        -                    else {
        -
        -                        oSubmenu.hide();
        -
        -                    }
        -
        -                }
        -
        -            }
        -
        -
        -            oItem.handledMouseOutEvent = true;
        -            oItem.handledMouseOverEvent = false;
        -    
        -        }
        -
        -    }
        -
        -
        -    if(
        -        !this._bHandledMouseOutEvent && 
        -        (
        -            (
        -                oRelatedTarget != this.element &&  
        -                !Dom.isAncestor(this.element, oRelatedTarget)
        -            ) 
        -            || bMovingToSubmenu
        -        )
        -    ) {
        -
        -        // Menu mouseout logic
        -
        -        Event.removeListener(this.element, "mousemove", this._onMouseMove);
        -
        -        this._nCurrentMouseX = Event.getPageX(oEvent);
        -
        -        this._bHandledMouseOutEvent = true;
        -        this._bHandledMouseOverEvent = false;
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onMouseMove
        -* @description "click" event handler for the menu.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -_onMouseMove: function(p_oEvent, p_oMenu) {
        -
        -    if(this._bStopMouseEventHandlers) {
        -    
        -        return false;
        -    
        -    }
        -
        -    this._nCurrentMouseX = Event.getPageX(p_oEvent);
        -
        -},
        -
        -
        -/**
        -* @method _onClick
        -* @description "click" event handler for the menu.
        -* @protected
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -_onClick: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    var oEvent = p_aArgs[0],
        -        oItem = p_aArgs[1],
        -        oTarget = Event.getTarget(oEvent);
        -
        -    if(oItem && !oItem.cfg.getProperty("disabled")) {
        -
        -        var oItemCfg = oItem.cfg,
        -            oSubmenu = oItemCfg.getProperty("submenu");
        -
        -
        -        /*
        -            ACCESSIBILITY FEATURE FOR SCREEN READERS: 
        -            Expand/collapse the submenu when the user clicks 
        -            on the submenu indicator image.
        -        */        
        -
        -        if(oTarget == oItem.submenuIndicator && oSubmenu) {
        -
        -            if(oSubmenu.cfg.getProperty("visible")) {
        -
        -                oSubmenu.hide();
        -                
        -                oSubmenu.parent.focus();
        -    
        -            }
        -            else {
        -
        -                this.clearActiveItem();
        -
        -                oItem.cfg.setProperty("selected", true);
        -
        -                oSubmenu.show();
        -                
        -                oSubmenu.setInitialFocus();
        -    
        -            }
        -    
        -        }
        -        else {
        -
        -            var sURL = oItemCfg.getProperty("url"),
        -                bCurrentPageURL = (sURL.substr((sURL.length-1),1) == "#"),
        -                sTarget = oItemCfg.getProperty("target"),
        -                bHasTarget = (sTarget && sTarget.length > 0);
        -
        -            /*
        -                Prevent the browser from following links 
        -                equal to "#"
        -            */
        -            
        -            if(
        -                oTarget.tagName.toUpperCase() == "A" && 
        -                bCurrentPageURL && !bHasTarget
        -            ) {
        -
        -                Event.preventDefault(oEvent);
        -
        -                oItem.focus();
        -            
        -            }
        -
        -            if(
        -                oTarget.tagName.toUpperCase() != "A" && 
        -                !bCurrentPageURL && !bHasTarget
        -            ) {
        -                
        -                /*
        -                    Follow the URL of the item regardless of 
        -                    whether or not the user clicked specifically
        -                    on the anchor element.
        -                */
        -    
        -                document.location = sURL;
        -        
        -            }
        -
        -
        -            /*
        -                If the item doesn't navigate to a URL and it doesn't have
        -                a submenu, then collapse the menu tree.
        -            */
        -
        -            if(bCurrentPageURL && !oSubmenu) {
        -    
        -                var oRoot = this.getRoot();
        -                
        -                if(oRoot.cfg.getProperty("position") == "static") {
        -    
        -                    oRoot.clearActiveItem();
        -    
        -                }
        -                else if(oRoot.cfg.getProperty("clicktohide")) {
        -
        -                    oRoot.hide();
        -                
        -                }
        -    
        -            }
        -
        -        }                    
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onKeyDown
        -* @description "keydown" event handler for the menu.
        -* @protected
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -_onKeyDown: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    var oEvent = p_aArgs[0],
        -        oItem = p_aArgs[1],
        -        me = this,
        -        oSubmenu;
        -
        -
        -    /*
        -        This function is called to prevent a bug in Firefox.  In Firefox,
        -        moving a DOM element into a stationary mouse pointer will cause the 
        -        browser to fire mouse events.  This can result in the menu mouse
        -        event handlers being called uncessarily, especially when menus are 
        -        moved into a stationary mouse pointer as a result of a 
        -        key event handler.
        -    */
        -    function stopMouseEventHandlers() {
        -
        -        me._bStopMouseEventHandlers = true;
        -        
        -        window.setTimeout(function() {
        -        
        -            me._bStopMouseEventHandlers = false;
        -        
        -        }, 10);
        -
        -    }
        -
        -
        -    if(oItem && !oItem.cfg.getProperty("disabled")) {
        -
        -        var oItemCfg = oItem.cfg,
        -            oParentItem = this.parent,
        -            oRoot,
        -            oNextItem;
        -
        -
        -        switch(oEvent.keyCode) {
        -    
        -            case 38:    // Up arrow
        -            case 40:    // Down arrow
        -    
        -                oNextItem = (oEvent.keyCode == 38) ? 
        -                    oItem.getPreviousEnabledSibling() : 
        -                    oItem.getNextEnabledSibling();
        -        
        -                if(oNextItem) {
        -
        -                    this.clearActiveItem();
        -
        -                    oNextItem.cfg.setProperty("selected", true);
        -                    oNextItem.focus();
        -
        -
        -                    if(this.cfg.getProperty("maxheight") > 0) {
        -
        -                        var oBody = this.body;
        -
        -                        oBody.scrollTop = 
        -
        -                            (
        -                                oNextItem.element.offsetTop + 
        -                                oNextItem.element.offsetHeight
        -                            ) - oBody.offsetHeight;
        -
        -
        -                        var nScrollTop = oBody.scrollTop,
        -                            nScrollTarget = 
        -                                oBody.scrollHeight - oBody.offsetHeight;
        -
        -                        if(nScrollTop === 0) {
        -
        -                            this._disableScrollHeader();
        -                            this._enableScrollFooter();
        -
        -                        }
        -                        else if(nScrollTop == nScrollTarget) {
        -
        -                             this._enableScrollHeader();
        -                             this._disableScrollFooter();
        -
        -                        }
        -                        else {
        -
        -                            this._enableScrollHeader();
        -                            this._enableScrollFooter();
        -
        -                        }
        -
        -                    }
        -
        -                }
        -
        -    
        -                Event.preventDefault(oEvent);
        -
        -                stopMouseEventHandlers();
        -    
        -            break;
        -            
        -    
        -            case 39:    // Right arrow
        -    
        -                oSubmenu = oItemCfg.getProperty("submenu");
        -    
        -                if(oSubmenu) {
        -    
        -                    if(!oItemCfg.getProperty("selected")) {
        -        
        -                        oItemCfg.setProperty("selected", true);
        -        
        -                    }
        -    
        -                    oSubmenu.show();
        -                    oSubmenu.setInitialFocus();
        -                    oSubmenu.setInitialSelection();
        -    
        -                }
        -                else {
        -    
        -                    oRoot = this.getRoot();
        -                    
        -                    if(oRoot instanceof YAHOO.widget.MenuBar) {
        -    
        -                        oNextItem = oRoot.activeItem.getNextEnabledSibling();
        -    
        -                        if(oNextItem) {
        -                        
        -                            oRoot.clearActiveItem();
        -    
        -                            oNextItem.cfg.setProperty("selected", true);
        -    
        -                            oSubmenu = oNextItem.cfg.getProperty("submenu");
        -    
        -                            if(oSubmenu) {
        -    
        -                                oSubmenu.show();
        -                            
        -                            }
        -    
        -                            oNextItem.focus();
        -                        
        -                        }
        -                    
        -                    }
        -                
        -                }
        -    
        -    
        -                Event.preventDefault(oEvent);
        -
        -                stopMouseEventHandlers();
        -
        -            break;
        -    
        -    
        -            case 37:    // Left arrow
        -    
        -                if(oParentItem) {
        -    
        -                    var oParentMenu = oParentItem.parent;
        -    
        -                    if(oParentMenu instanceof YAHOO.widget.MenuBar) {
        -    
        -                        oNextItem = 
        -                            oParentMenu.activeItem.getPreviousEnabledSibling();
        -    
        -                        if(oNextItem) {
        -                        
        -                            oParentMenu.clearActiveItem();
        -    
        -                            oNextItem.cfg.setProperty("selected", true);
        -    
        -                            oSubmenu = oNextItem.cfg.getProperty("submenu");
        -    
        -                            if(oSubmenu) {
        -                            
        -                                oSubmenu.show();
        -                            
        -                            }
        -    
        -                            oNextItem.focus();
        -                        
        -                        } 
        -                    
        -                    }
        -                    else {
        -    
        -                        this.hide();
        -    
        -                        oParentItem.focus();
        -                    
        -                    }
        -    
        -                }
        -    
        -                Event.preventDefault(oEvent);
        -
        -                stopMouseEventHandlers();
        -
        -            break;        
        -    
        -        }
        -
        -
        -    }
        -
        -
        -    if(oEvent.keyCode == 27) { // Esc key
        -
        -        if(this.cfg.getProperty("position") == "dynamic") {
        -        
        -            this.hide();
        -
        -            if(this.parent) {
        -
        -                this.parent.focus();
        -            
        -            }
        -
        -        }
        -        else if(this.activeItem) {
        -
        -            oSubmenu = this.activeItem.cfg.getProperty("submenu");
        -
        -            if(oSubmenu && oSubmenu.cfg.getProperty("visible")) {
        -            
        -                oSubmenu.hide();
        -                this.activeItem.focus();
        -            
        -            }
        -            else {
        -
        -                this.activeItem.blur();
        -                this.activeItem.cfg.setProperty("selected", false);
        -        
        -            }
        -        
        -        }
        -
        -
        -        Event.preventDefault(oEvent);
        -    
        -    }
        -    
        -},
        -
        -
        -/**
        -* @method _onKeyPress
        -* @description "keypress" event handler for a Menu instance.
        -* @protected
        -* @param {String} p_sType The name of the event that was fired.
        -* @param {Array} p_aArgs Collection of arguments sent when the event 
        -* was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu The Menu instance that fired the event.
        -*/
        -_onKeyPress: function(p_sType, p_aArgs, p_oMenu) {
        -    
        -    var oEvent = p_aArgs[0];
        -
        -
        -    if(oEvent.keyCode == 40 || oEvent.keyCode == 38) {
        -
        -        YAHOO.util.Event.preventDefault(oEvent);
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onTextResize
        -* @description "textresize" event handler for the menu.
        -* @protected
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -_onTextResize: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    if(this.browser == "gecko" && !this._handleResize) {
        -
        -        this._handleResize = true;
        -        return;
        -    
        -    }
        -
        -
        -    var oConfig = this.cfg;
        -
        -    if(oConfig.getProperty("position") == "dynamic") {
        -
        -        oConfig.setProperty("width", (this._getOffsetWidth() + "px"));
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onScrollTargetMouseOver
        -* @description "mouseover" event handler for the menu's "header" and "footer" 
        -* elements.  Used to scroll the body of the menu up and down when the 
        -* menu's "maxheight" configuration property is set to a value greater than 0.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -_onScrollTargetMouseOver: function(p_oEvent, p_oMenu) {
        -
        -    this._cancelHideDelay();
        -
        -    var oTarget = Event.getTarget(p_oEvent),
        -        oBody = this.body,
        -        me = this,
        -        nScrollTarget,
        -        fnScrollFunction;
        -
        -
        -    function scrollBodyDown() {
        -
        -        var nScrollTop = oBody.scrollTop;
        -
        -
        -        if(nScrollTop < nScrollTarget) {
        -
        -            oBody.scrollTop = (nScrollTop + 1);
        -
        -            me._enableScrollHeader();
        -
        -        }
        -        else {
        -
        -            oBody.scrollTop = nScrollTarget;
        -            
        -            window.clearInterval(me._nBodyScrollId);
        -
        -            me._disableScrollFooter();
        -
        -        }
        -
        -    }
        -
        -
        -    function scrollBodyUp() {
        -
        -        var nScrollTop = oBody.scrollTop;
        -
        -
        -        if(nScrollTop > 0) {
        -
        -            oBody.scrollTop = (nScrollTop - 1);
        -
        -            me._enableScrollFooter();
        -
        -        }
        -        else {
        -
        -            oBody.scrollTop = 0;
        -            
        -            window.clearInterval(me._nBodyScrollId);
        -
        -            me._disableScrollHeader();
        -
        -        }
        -
        -    }
        -
        -    
        -    if(Dom.hasClass(oTarget, "hd")) {
        -
        -        fnScrollFunction = scrollBodyUp;
        -    
        -    }
        -    else {
        -
        -        nScrollTarget = oBody.scrollHeight - oBody.offsetHeight;
        -
        -        fnScrollFunction = scrollBodyDown;
        -    
        -    }
        -
        -
        -    this._nBodyScrollId = window.setInterval(fnScrollFunction, 10);
        -
        -},
        -
        -
        -/**
        -* @method _onScrollTargetMouseOut
        -* @description "mouseout" event handler for the menu's "header" and "footer" 
        -* elements.  Used to stop scrolling the body of the menu up and down when the 
        -* menu's "maxheight" configuration property is set to a value greater than 0.
        -* @protected
        -* @param {Event} p_oEvent Object representing the DOM event object passed 
        -* back by the event utility (YAHOO.util.Event).
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -_onScrollTargetMouseOut: function(p_oEvent, p_oMenu) {
        -
        -    window.clearInterval(this._nBodyScrollId);
        -
        -    this._cancelHideDelay();
        -
        -},
        -
        -
        -
        -// Private methods
        -
        -
        -/**
        -* @method _onInit
        -* @description "init" event handler for the menu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -_onInit: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    this.cfg.subscribeToConfigEvent("width", this._onWidthChange);
        -    this.cfg.subscribeToConfigEvent("visible", this._onVisibleChange);
        -
        -    if(
        -        (
        -            (this.parent && !this.lazyLoad) || 
        -            (!this.parent && this.cfg.getProperty("position") == "static") ||
        -            (
        -                !this.parent && 
        -                !this.lazyLoad && 
        -                this.cfg.getProperty("position") == "dynamic"
        -            ) 
        -        ) && 
        -        this.getItemGroups().length === 0
        -    ) {
        - 
        -        if(this.srcElement) {
        -
        -            this._initSubTree();
        -        
        -        }
        -
        -
        -        if(this.itemData) {
        -
        -            this.addItems(this.itemData);
        -
        -        }
        -    
        -    }
        -    else if(this.lazyLoad) {
        -
        -        this.cfg.fireQueue();
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onBeforeRender
        -* @description "beforerender" event handler for the menu.  Appends all of the 
        -* <code>&#60;ul&#62;</code>, <code>&#60;li&#62;</code> and their accompanying 
        -* title elements to the body element of the menu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -_onBeforeRender: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    var oConfig = this.cfg,
        -        oEl = this.element,
        -        nListElements = this._aListElements.length;
        -
        -
        -    if(nListElements > 0) {
        -
        -        var i = 0,
        -            bFirstList = true,
        -            oUL,
        -            oGroupTitle;
        -
        -
        -        do {
        -
        -            oUL = this._aListElements[i];
        -
        -            if(oUL) {
        -
        -                if(bFirstList) {
        -        
        -                    Dom.addClass(oUL, "first-of-type");
        -                    bFirstList = false;
        -        
        -                }
        -
        -
        -                if(!Dom.isAncestor(oEl, oUL)) {
        -
        -                    this.appendToBody(oUL);
        -
        -                }
        -
        -
        -                oGroupTitle = this._aGroupTitleElements[i];
        -
        -                if(oGroupTitle) {
        -
        -                    if(!Dom.isAncestor(oEl, oGroupTitle)) {
        -
        -                        oUL.parentNode.insertBefore(oGroupTitle, oUL);
        -
        -                    }
        -
        -
        -                    Dom.addClass(oUL, "hastitle");
        -
        -                }
        -
        -            }
        -
        -            i++;
        -
        -        }
        -        while(i < nListElements);
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onRender
        -* @description "render" event handler for the menu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -*/
        -_onRender: function(p_sType, p_aArgs) {
        -
        -    if (
        -        this.cfg.getProperty("position") == "dynamic" && 
        -        !this.cfg.getProperty("width")
        -    ) {
        -
        -        this._setWidth();
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onBeforeShow
        -* @description "beforeshow" event handler for the menu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -_onBeforeShow: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    if(this.lazyLoad && this.getItemGroups().length === 0) {
        -
        -        if(this.srcElement) {
        -        
        -            this._initSubTree();
        -
        -        }
        -
        -
        -        if(this.itemData) {
        -
        -            if(
        -                this.parent && this.parent.parent && 
        -                this.parent.parent.srcElement && 
        -                this.parent.parent.srcElement.tagName.toUpperCase() == "SELECT"
        -            ) {
        -
        -                var nOptions = this.itemData.length;
        -    
        -                for(var n=0; n<nOptions; n++) {
        -
        -                    if(this.itemData[n].tagName) {
        -
        -                        this.addItem((new this.ITEM_TYPE(this.itemData[n])));
        -    
        -                    }
        -    
        -                }
        -            
        -            }
        -            else {
        -
        -                this.addItems(this.itemData);
        -            
        -            }
        -        
        -        }
        -
        -
        -        var oSrcElement = this.srcElement;
        -
        -        if(oSrcElement) {
        -
        -            if(oSrcElement.tagName.toUpperCase() == "SELECT") {
        -
        -                if(Dom.inDocument(oSrcElement)) {
        -
        -                    this.render(oSrcElement.parentNode);
        -                
        -                }
        -                else {
        -                
        -                    this.render(this.cfg.getProperty("container"));
        -                
        -                }
        -
        -            }
        -            else {
        -
        -                this.render();
        -
        -            }
        -
        -        }
        -        else {
        -
        -            if(this.parent) {
        -
        -                this.render(this.parent.element);            
        -
        -            }
        -            else {
        -
        -                this.render(this.cfg.getProperty("container"));
        -                this.cfg.refireEvent("xy");
        -
        -            }                
        -
        -        }
        -
        -    }
        -
        -
        -    if(this.cfg.getProperty("position") == "dynamic") {
        -
        -        var nViewportHeight = Dom.getViewportHeight();
        -
        -
        -        if(this.parent && this.parent.parent instanceof YAHOO.widget.MenuBar) {
        -           
        -            var oRegion = YAHOO.util.Region.getRegion(this.parent.element);
        -            
        -            nViewportHeight = (nViewportHeight - oRegion.bottom);
        -
        -        }
        -
        -
        -        if(this.element.offsetHeight >= nViewportHeight) {
        -    
        -            var nMaxHeight = this.cfg.getProperty("maxheight");
        -
        -            /*
        -                Cache the original value for the "maxheight" configuration  
        -                property so that we can set it back when the menu is hidden.
        -            */
        -    
        -            this._nMaxHeight = nMaxHeight;
        -
        -            this.cfg.setProperty("maxheight", (nViewportHeight - 20));
        -        
        -        }
        -    
        -    
        -        if(this.cfg.getProperty("maxheight") > 0) {
        -    
        -            var oBody = this.body;
        -    
        -            if(oBody.scrollTop > 0) {
        -    
        -                oBody.scrollTop = 0;
        -    
        -            }
        -
        -            this._disableScrollHeader();
        -            this._enableScrollFooter();
        -    
        -        }
        -
        -    }
        -
        -
        -},
        -
        -
        -/**
        -* @method _onShow
        -* @description "show" event handler for the menu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired 
        -* the event.
        -*/
        -_onShow: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    var oParent = this.parent;
        -    
        -    if(oParent) {
        -
        -        var oParentMenu = oParent.parent,
        -            aParentAlignment = oParentMenu.cfg.getProperty("submenualignment"),
        -            aAlignment = this.cfg.getProperty("submenualignment");
        -
        -
        -        if(
        -            (aParentAlignment[0] != aAlignment[0]) &&
        -            (aParentAlignment[1] != aAlignment[1])
        -        ) {
        -
        -            this.cfg.setProperty(
        -                "submenualignment", 
        -                [ aParentAlignment[0], aParentAlignment[1] ]
        -            );
        -        
        -        }
        -
        -
        -        if(
        -            !oParentMenu.cfg.getProperty("autosubmenudisplay") && 
        -            oParentMenu.cfg.getProperty("position") == "static"
        -        ) {
        -
        -            oParentMenu.cfg.setProperty("autosubmenudisplay", true);
        -
        -
        -            function disableAutoSubmenuDisplay(p_oEvent) {
        -
        -                if(
        -                    p_oEvent.type == "mousedown" || 
        -                    (p_oEvent.type == "keydown" && p_oEvent.keyCode == 27)
        -                ) {
        -
        -                    /*  
        -                        Set the "autosubmenudisplay" to "false" if the user
        -                        clicks outside the menu bar.
        -                    */
        -
        -                    var oTarget = Event.getTarget(p_oEvent);
        -
        -                    if(
        -                        oTarget != oParentMenu.element || 
        -                        !YAHOO.util.Dom.isAncestor(oParentMenu.element, oTarget)
        -                    ) {
        -
        -                        oParentMenu.cfg.setProperty(
        -                            "autosubmenudisplay", 
        -                            false
        -                        );
        -
        -                        Event.removeListener(
        -                                document, 
        -                                "mousedown", 
        -                                disableAutoSubmenuDisplay
        -                            );
        -
        -                        Event.removeListener(
        -                                document, 
        -                                "keydown", 
        -                                disableAutoSubmenuDisplay
        -                            );
        -
        -                    }
        -                
        -                }
        -
        -            }
        -
        -            Event.on(document, "mousedown", disableAutoSubmenuDisplay);                             
        -            Event.on(document, "keydown", disableAutoSubmenuDisplay);
        -
        -        }
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onBeforeHide
        -* @description "beforehide" event handler for the menu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired 
        -* the event.
        -*/
        -_onBeforeHide: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    var oActiveItem = this.activeItem;
        -
        -    if(oActiveItem) {
        -
        -        var oConfig = oActiveItem.cfg;
        -
        -        oConfig.setProperty("selected", false);
        -
        -        var oSubmenu = oConfig.getProperty("submenu");
        -
        -        if(oSubmenu) {
        -
        -            oSubmenu.hide();
        -
        -        }
        -
        -    }
        -
        -    if (this == this.getRoot()) {
        -
        -        this.blur();
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onHide
        -* @description "hide" event handler for the menu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired 
        -* the event.
        -*/
        -_onHide: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    if(this._nMaxHeight != -1) {
        -
        -        this.cfg.setProperty("maxheight", this._nMaxHeight);
        -
        -        this._nMaxHeight = -1;
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onParentMenuConfigChange
        -* @description "configchange" event handler for a submenu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that 
        -* subscribed to the event.
        -*/
        -_onParentMenuConfigChange: function(p_sType, p_aArgs, p_oSubmenu) {
        -    
        -    var sPropertyName = p_aArgs[0][0],
        -        oPropertyValue = p_aArgs[0][1];
        -
        -    switch(sPropertyName) {
        -
        -        case "iframe":
        -        case "constraintoviewport":
        -        case "hidedelay":
        -        case "showdelay":
        -        case "submenuhidedelay":
        -        case "clicktohide":
        -        case "effect":
        -        case "classname":
        -
        -            p_oSubmenu.cfg.setProperty(sPropertyName, oPropertyValue);
        -                
        -        break;        
        -        
        -    }
        -    
        -},
        -
        -
        -/**
        -* @method _onParentMenuRender
        -* @description "render" event handler for a submenu.  Renders a  
        -* submenu in response to the firing of its parent's "render" event.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that 
        -* subscribed to the event.
        -*/
        -_onParentMenuRender: function(p_sType, p_aArgs, p_oSubmenu) {
        -
        -    var oParentMenu = p_oSubmenu.parent.parent,
        -
        -        oConfig = {
        -
        -            constraintoviewport: 
        -                oParentMenu.cfg.getProperty("constraintoviewport"),
        -
        -            xy: [0,0],
        -                
        -            clicktohide: oParentMenu.cfg.getProperty("clicktohide"),
        -                
        -            effect: oParentMenu.cfg.getProperty("effect"),
        -
        -            showdelay: oParentMenu.cfg.getProperty("showdelay"),
        -            
        -            hidedelay: oParentMenu.cfg.getProperty("hidedelay"),
        -
        -            submenuhidedelay: oParentMenu.cfg.getProperty("submenuhidedelay"),
        -
        -            classname: oParentMenu.cfg.getProperty("classname")
        -
        -        };
        -
        -
        -    /*
        -        Only sync the "iframe" configuration property if the parent
        -        menu's "position" configuration is the same.
        -    */
        -
        -    if(
        -        this.cfg.getProperty("position") == 
        -        oParentMenu.cfg.getProperty("position")
        -    ) {
        -
        -        oConfig.iframe = oParentMenu.cfg.getProperty("iframe");
        -    
        -    }
        -               
        -
        -    p_oSubmenu.cfg.applyConfig(oConfig);
        -
        -
        -    if(!this.lazyLoad) {
        -
        -        var oLI = this.parent.element;
        -
        -        if(this.element.parentNode == oLI) {
        -    
        -            this.render();
        -    
        -        }
        -        else {
        -
        -            this.render(oLI);
        -    
        -        }
        -
        -    }
        -    
        -},
        -
        -
        -/**
        -* @method _onSubmenuBeforeShow
        -* @description "beforeshow" event handler for a submenu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that 
        -* subscribed to the event.
        -*/
        -_onSubmenuBeforeShow: function(p_sType, p_aArgs, p_oSubmenu) {
        -    
        -    var oParent = this.parent,
        -        aAlignment = oParent.parent.cfg.getProperty("submenualignment");
        -
        -    this.cfg.setProperty(
        -        "context", 
        -        [oParent.element, aAlignment[0], aAlignment[1]]
        -    );
        -
        -
        -    var nScrollTop = oParent.parent.body.scrollTop;
        -
        -    if(
        -        (this.browser == "gecko" || this.browser == "safari") 
        -        && nScrollTop > 0
        -    ) {
        -
        -         this.cfg.setProperty("y", (this.cfg.getProperty("y") - nScrollTop));
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onSubmenuShow
        -* @description "show" event handler for a submenu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -*/
        -_onSubmenuShow: function(p_sType, p_aArgs) {
        -    
        -    this.submenuIndicator.firstChild.nodeValue = 
        -        this.EXPANDED_SUBMENU_INDICATOR_TEXT;
        -
        -},
        -
        -
        -/**
        -* @method _onSubmenuHide
        -* @description "hide" Custom Event handler for a submenu.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -*/
        -_onSubmenuHide: function(p_sType, p_aArgs) {
        -    
        -    this.submenuIndicator.firstChild.nodeValue =
        -        this.COLLAPSED_SUBMENU_INDICATOR_TEXT;
        -
        -},
        -
        -
        -/**
        -* @method _onMenuItemFocus
        -* @description "focus" event handler for the menu's items.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -*/
        -_onMenuItemFocus: function(p_sType, p_aArgs) {
        -
        -    this.parent.focusEvent.fire(this);
        -
        -},
        -
        -
        -/**
        -* @method _onMenuItemBlur
        -* @description "blur" event handler for the menu's items.
        -* @private
        -* @param {String} p_sType String representing the name of the event 
        -* that was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -*/
        -_onMenuItemBlur: function(p_sType, p_aArgs) {
        -
        -    this.parent.blurEvent.fire(this);
        -
        -},
        -
        -
        -/**
        -* @method _onMenuItemConfigChange
        -* @description "configchange" event handler for the menu's items.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item 
        -* that fired the event.
        -*/
        -_onMenuItemConfigChange: function(p_sType, p_aArgs, p_oItem) {
        -
        -    var sPropertyName = p_aArgs[0][0],
        -        oPropertyValue = p_aArgs[0][1];
        -
        -    switch(sPropertyName) {
        -
        -        case "selected":
        -
        -            if (oPropertyValue === true) {
        -
        -                this.activeItem = p_oItem;
        -            
        -            }
        -
        -        break;
        -
        -        case "submenu":
        -
        -            var oSubmenu = p_aArgs[0][1];
        -
        -            if(oSubmenu) {
        -
        -                this._configureSubmenu(p_oItem);
        -
        -            }
        -
        -        break;
        -
        -        case "text":
        -        case "helptext":
        -
        -            /*
        -                A change to an item's "text" or "helptext"
        -                configuration properties requires the width of the parent
        -                menu to be recalculated.
        -            */
        -
        -            if(this.element.style.width) {
        -    
        -                var sWidth = this._getOffsetWidth() + "px";
        -
        -                Dom.setStyle(this.element, "width", sWidth);
        -
        -            }
        -
        -        break;
        -
        -    }
        -
        -},
        -
        -
        -
        -// Public event handlers for configuration properties
        -
        -
        -/**
        -* @method enforceConstraints
        -* @description The default event handler executed when the moveEvent is fired,  
        -* if the "constraintoviewport" configuration property is set to true.
        -* @param {String} type The name of the event that was fired.
        -* @param {Array} args Collection of arguments sent when the 
        -* event was fired.
        -* @param {Array} obj Array containing the current Menu instance 
        -* and the item that fired the event.
        -*/
        -enforceConstraints: function(type, args, obj) {
        -
        -    if(this.parent && !(this.parent.parent instanceof YAHOO.widget.MenuBar)) {
        -    
        -        var oConfig = this.cfg,
        -            pos = args[0],
        -            
        -            x = pos[0],
        -            y = pos[1],
        -            
        -            offsetHeight = this.element.offsetHeight,
        -            offsetWidth = this.element.offsetWidth,
        -            
        -            viewPortWidth = YAHOO.util.Dom.getViewportWidth(),
        -            viewPortHeight = YAHOO.util.Dom.getViewportHeight(),
        -            
        -            scrollX = Math.max(
        -                    document.documentElement.scrollLeft, 
        -                    document.body.scrollLeft
        -                ),
        -            
        -            scrollY = Math.max(
        -                    document.documentElement.scrollTop, 
        -                    document.body.scrollTop
        -                ),
        -            
        -            nPadding = (
        -                            this.parent && 
        -                            this.parent.parent instanceof YAHOO.widget.MenuBar
        -                        ) ? 0 : 10,
        -            
        -            topConstraint = scrollY + nPadding,
        -            leftConstraint = scrollX + nPadding,
        -            bottomConstraint = 
        -                scrollY + viewPortHeight - offsetHeight - nPadding,
        -            rightConstraint = scrollX + viewPortWidth - offsetWidth - nPadding,
        -            
        -            aContext = oConfig.getProperty("context"),
        -            oContextElement = aContext ? aContext[0] : null;
        -    
        -    
        -        if (x < 10) {
        -    
        -            x = leftConstraint;
        -    
        -        } else if ((x + offsetWidth) > viewPortWidth) {
        -    
        -            if(
        -                oContextElement &&
        -                ((x - oContextElement.offsetWidth) > offsetWidth)
        -            ) {
        -    
        -                x = (x - (oContextElement.offsetWidth + offsetWidth));
        -    
        -            }
        -            else {
        -    
        -                x = rightConstraint;
        -    
        -            }
        -    
        -        }
        -    
        -        if (y < 10) {
        -    
        -            y = topConstraint;
        -    
        -        } else if (y > bottomConstraint) {
        -    
        -            if(oContextElement && (y > offsetHeight)) {
        -    
        -                y = ((y + oContextElement.offsetHeight) - offsetHeight);
        -    
        -            }
        -            else {
        -    
        -                y = bottomConstraint;
        -    
        -            }
        -    
        -        }
        -    
        -        oConfig.setProperty("x", x, true);
        -        oConfig.setProperty("y", y, true);
        -        oConfig.setProperty("xy", [x,y], true);
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method configVisible
        -* @description Event handler for when the "visible" configuration property 
        -* the menu changes.
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -configVisible: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    if(this.cfg.getProperty("position") == "dynamic") {
        -
        -        YAHOO.widget.Menu.superclass.configVisible.call(
        -            this, 
        -            p_sType, 
        -            p_aArgs, 
        -            p_oMenu
        -        );
        -
        -    }
        -    else {
        -
        -        var bVisible = p_aArgs[0],
        -    	    sDisplay = Dom.getStyle(this.element, "display");
        -
        -        if(bVisible) {
        -
        -            if(sDisplay != "block") {
        -                this.beforeShowEvent.fire();
        -                Dom.setStyle(this.element, "display", "block");
        -                this.showEvent.fire();
        -            }
        -        
        -        }
        -        else {
        -
        -			if(sDisplay == "block") {
        -				this.beforeHideEvent.fire();
        -				Dom.setStyle(this.element, "display", "none");
        -				this.hideEvent.fire();
        -			}
        -        
        -        }
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method configPosition
        -* @description Event handler for when the "position" configuration property 
        -* of the menu changes.
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -configPosition: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    var sCSSPosition = p_aArgs[0] == "static" ? "static" : "absolute",
        -        oCfg = this.cfg;
        -
        -    Dom.setStyle(this.element, "position", sCSSPosition);
        -
        -
        -    if(sCSSPosition == "static") {
        -
        -        /*
        -            Remove the iframe for statically positioned menus since it will 
        -            intercept mouse events.
        -        */
        -
        -        oCfg.setProperty("iframe", false);
        -
        -
        -        // Statically positioned menus are visible by default
        -        
        -        Dom.setStyle(this.element, "display", "block");
        -
        -        oCfg.setProperty("visible", true);
        -
        -    }
        -    else {
        -
        -        /*
        -            Even though the "visible" property is queued to 
        -            "false" by default, we need to set the "visibility" property to 
        -            "hidden" since Overlay's "configVisible" implementation checks the 
        -            element's "visibility" style property before deciding whether 
        -            or not to show an Overlay instance.
        -        */
        -
        -        Dom.setStyle(this.element, "visibility", "hidden");
        -    
        -    }
        -
        -
        -    if(sCSSPosition == "absolute") {
        -
        -        var nZIndex = oCfg.getProperty("zindex");
        -
        -        if(!nZIndex || nZIndex === 0) {
        -
        -            nZIndex = this.parent ? 
        -                (this.parent.parent.cfg.getProperty("zindex") + 1) : 1;
        -
        -            oCfg.setProperty("zindex", nZIndex);
        -
        -        }
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method configIframe
        -* @description Event handler for when the "iframe" configuration property of 
        -* the menu changes.
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -configIframe: function(p_sType, p_aArgs, p_oMenu) {    
        -
        -    if(this.cfg.getProperty("position") == "dynamic") {
        -
        -        YAHOO.widget.Menu.superclass.configIframe.call(
        -            this, 
        -            p_sType, 
        -            p_aArgs, 
        -            p_oMenu
        -        );
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method configHideDelay
        -* @description Event handler for when the "hidedelay" configuration property 
        -* of the menu changes.
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -configHideDelay: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    var nHideDelay = p_aArgs[0],
        -        oMouseOutEvent = this.mouseOutEvent,
        -        oMouseOverEvent = this.mouseOverEvent,
        -        oKeyDownEvent = this.keyDownEvent;
        -
        -    if(nHideDelay > 0) {
        -
        -        /*
        -            Only assign event handlers once. This way the user change 
        -            the value for the hidedelay as many times as they want.
        -        */
        -
        -        if(!this._bHideDelayEventHandlersAssigned) {
        -
        -            oMouseOutEvent.subscribe(this._execHideDelay, this);
        -            oMouseOverEvent.subscribe(this._cancelHideDelay, this, true);
        -            oKeyDownEvent.subscribe(this._cancelHideDelay, this, true);
        -
        -            this._bHideDelayEventHandlersAssigned = true;
        -        
        -        }
        -
        -    }
        -    else {
        -
        -        oMouseOutEvent.unsubscribe(this._execHideDelay, this);
        -        oMouseOverEvent.unsubscribe(this._cancelHideDelay, this);
        -        oKeyDownEvent.unsubscribe(this._cancelHideDelay, this);
        -
        -        this._bHideDelayEventHandlersAssigned = false;
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method configContainer
        -* @description Event handler for when the "container" configuration property 
        -of the menu changes.
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that 
        -* fired the event.
        -*/
        -configContainer: function(p_sType, p_aArgs, p_oMenu) {
        -
        -	var oElement = p_aArgs[0];
        -
        -	if(typeof oElement == 'string') {
        -
        -        this.cfg.setProperty(
        -                "container", 
        -                document.getElementById(oElement), 
        -                true
        -            );
        -
        -	}
        -
        -},
        -
        -
        -/**
        -* @method _setMaxHeight
        -* @description "renderEvent" handler used to defer the setting of the 
        -* "maxheight" configuration property until the menu is rendered in lazy 
        -* load scenarios.
        -* @param {String} p_sType The name of the event that was fired.
        -* @param {Array} p_aArgs Collection of arguments sent when the event 
        -* was fired.
        -* @param {Number} p_nMaxHeight Number representing the value to set for the 
        -* "maxheight" configuration property.
        -* @private
        -*/
        -_setMaxHeight: function(p_sType, p_aArgs, p_nMaxHeight) {
        -
        -    this.cfg.setProperty("maxheight", p_nMaxHeight);
        -    this.renderEvent.unsubscribe(this._setMaxHeight);
        -
        -},
        -
        -
        -/**
        -* @method configMaxHeight
        -* @description Event handler for when the "maxheight" configuration property of 
        -* a Menu changes.
        -* @param {String} p_sType The name of the event that was fired.
        -* @param {Array} p_aArgs Collection of arguments sent when the event 
        -* was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu The Menu instance fired
        -* the event.
        -*/
        -configMaxHeight: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    var nMaxHeight = p_aArgs[0],
        -        oBody = this.body;
        -
        -
        -    if(this.lazyLoad && !oBody) {
        -
        -        this.renderEvent.unsubscribe(this._setMaxHeight);
        -    
        -        if(nMaxHeight > 0) {
        -
        -            this.renderEvent.subscribe(this._setMaxHeight, nMaxHeight, this);
        -
        -        }
        -
        -        return;
        -    
        -    }
        -
        -    Dom.setStyle(oBody, "height", "auto");
        -    Dom.setStyle(oBody, "overflow", "visible");    
        -
        -    var oHeader = this.header,
        -        oFooter = this.footer,
        -        fnMouseOver = this._onScrollTargetMouseOver,
        -        fnMouseOut = this._onScrollTargetMouseOut;
        -
        -
        -    if((nMaxHeight > 0) && (oBody.offsetHeight > nMaxHeight)) {
        -
        -        if(!this.cfg.getProperty("width")) {
        -
        -            this._setWidth();
        -
        -        }
        -
        -        if(!oHeader && !oFooter) {
        -
        -            this.setHeader("&#32;");
        -            this.setFooter("&#32;");
        -
        -            oHeader = this.header;
        -            oFooter = this.footer;
        -
        -            Dom.addClass(oHeader, "topscrollbar");
        -            Dom.addClass(oFooter, "bottomscrollbar");
        -            
        -            this.element.insertBefore(oHeader, oBody);
        -            this.element.appendChild(oFooter);
        -
        -            Event.on(oHeader, "mouseover", fnMouseOver, this, true);
        -            Event.on(oHeader, "mouseout", fnMouseOut, this, true);
        -            Event.on(oFooter, "mouseover", fnMouseOver, this, true);
        -            Event.on(oFooter, "mouseout", fnMouseOut, this, true);
        -        
        -        }
        -
        -        var nHeight = 
        -
        -                (
        -                    nMaxHeight - 
        -                    (this.footer.offsetHeight + this.header.offsetHeight)
        -                );
        -
        -        Dom.setStyle(oBody, "height", (nHeight + "px"));
        -        Dom.setStyle(oBody, "overflow", "hidden");
        -
        -    }
        -    else if(oHeader && oFooter) {
        -
        -        Dom.setStyle(oBody, "height", "auto");
        -        Dom.setStyle(oBody, "overflow", "visible");
        -
        -        Event.removeListener(oHeader, "mouseover", fnMouseOver);
        -        Event.removeListener(oHeader, "mouseout", fnMouseOut);
        -        Event.removeListener(oFooter, "mouseover", fnMouseOver);
        -        Event.removeListener(oFooter, "mouseout", fnMouseOut);
        -
        -        this.element.removeChild(oHeader);
        -        this.element.removeChild(oFooter);
        -    
        -        this.header = null;
        -        this.footer = null;
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method configClassName
        -* @description Event handler for when the "classname" configuration property of 
        -* a menu changes.
        -* @param {String} p_sType The name of the event that was fired.
        -* @param {Array} p_aArgs Collection of arguments sent when the event was fired.
        -* @param {YAHOO.widget.Menu} p_oMenu The Menu instance fired the event.
        -*/
        -configClassName: function(p_sType, p_aArgs, p_oMenu) {
        -
        -    var sClassName = p_aArgs[0];
        -
        -    if(this._sClassName) {
        -
        -        Dom.removeClass(this.element, this._sClassName);
        -
        -    }
        -
        -    Dom.addClass(this.element, sClassName);
        -    this._sClassName = sClassName;
        -
        -},
        -
        -
        -
        -// Public methods
        -
        -
        -
        -/**
        -* @method initEvents
        -* @description Initializes the custom events for the menu.
        -*/
        -initEvents: function() {
        -
        -	YAHOO.widget.Menu.superclass.initEvents.call(this);
        -
        -    // Create custom events
        -
        -    var EVENT_TYPES = YAHOO.widget.Menu._EVENT_TYPES;
        -
        -    this.mouseOverEvent = new CustomEvent(EVENT_TYPES.MOUSE_OVER, this);
        -    this.mouseOutEvent = new CustomEvent(EVENT_TYPES.MOUSE_OUT, this);
        -    this.mouseDownEvent = new CustomEvent(EVENT_TYPES.MOUSE_DOWN, this);
        -    this.mouseUpEvent = new CustomEvent(EVENT_TYPES.MOUSE_UP, this);
        -    this.clickEvent = new CustomEvent(EVENT_TYPES.CLICK, this);
        -    this.keyPressEvent = new CustomEvent(EVENT_TYPES.KEY_PRESS, this);
        -    this.keyDownEvent = new CustomEvent(EVENT_TYPES.KEY_DOWN, this);
        -    this.keyUpEvent = new CustomEvent(EVENT_TYPES.KEY_UP, this);
        -    this.focusEvent = new CustomEvent(EVENT_TYPES.FOCUS, this);
        -    this.blurEvent = new CustomEvent(EVENT_TYPES.BLUR, this);
        -    this.itemAddedEvent = new CustomEvent(EVENT_TYPES.ITEM_ADDED, this);
        -    this.itemRemovedEvent = new CustomEvent(EVENT_TYPES.ITEM_REMOVED, this);
        -
        -},
        -
        -
        -/**
        -* @method getRoot
        -* @description Finds the menu's root menu.
        -*/
        -getRoot: function() {
        -
        -    var oItem = this.parent;
        -
        -    if(oItem) {
        -
        -        var oParentMenu = oItem.parent;
        -
        -        return oParentMenu ? oParentMenu.getRoot() : this;
        -
        -    }
        -    else {
        -    
        -        return this;
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method toString
        -* @description Returns a string representing the menu.
        -* @return {String}
        -*/
        -toString: function() {
        -
        -    var sReturnVal = "Menu",
        -        sId = this.id;
        -
        -    if(sId) {
        -
        -        sReturnVal += (" " + sId);
        -    
        -    }
        -
        -    return sReturnVal;
        -
        -},
        -
        -
        -/**
        -* @method setItemGroupTitle
        -* @description Sets the title of a group of menu items.
        -* @param {String} p_sGroupTitle String specifying the title of the group.
        -* @param {Number} p_nGroupIndex Optional. Number specifying the group to which
        -* the title belongs.
        -*/
        -setItemGroupTitle: function(p_sGroupTitle, p_nGroupIndex) {
        -        
        -    if(typeof p_sGroupTitle == "string" && p_sGroupTitle.length > 0) {
        -
        -        var nGroupIndex = typeof p_nGroupIndex == "number" ? p_nGroupIndex : 0,
        -            oTitle = this._aGroupTitleElements[nGroupIndex];
        -
        -
        -        if(oTitle) {
        -
        -            oTitle.innerHTML = p_sGroupTitle;
        -            
        -        }
        -        else {
        -
        -            oTitle = document.createElement(this.GROUP_TITLE_TAG_NAME);
        -                    
        -            oTitle.innerHTML = p_sGroupTitle;
        -
        -            this._aGroupTitleElements[nGroupIndex] = oTitle;
        -
        -        }
        -
        -
        -        var i = this._aGroupTitleElements.length - 1,
        -            nFirstIndex;
        -
        -        do {
        -
        -            if(this._aGroupTitleElements[i]) {
        -
        -                Dom.removeClass(this._aGroupTitleElements[i], "first-of-type");
        -
        -                nFirstIndex = i;
        -
        -            }
        -
        -        }
        -        while(i--);
        -
        -
        -        if(nFirstIndex !== null) {
        -
        -            Dom.addClass(
        -                this._aGroupTitleElements[nFirstIndex], 
        -                "first-of-type"
        -            );
        -
        -        }
        -
        -    }
        -
        -},
        -
        -
        -
        -/**
        -* @method addItem
        -* @description Appends an item to the menu.
        -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem 
        -* instance to be added to the menu.
        -* @param {String} p_oItem String specifying the text of the item to be added 
        -* to the menu.
        -* @param {Object} p_oItem Object literal containing a set of menu item 
        -* configuration properties.
        -* @param {Number} p_nGroupIndex Optional. Number indicating the group to
        -* which the item belongs.
        -* @return {YAHOO.widget.MenuItem}
        -*/
        -addItem: function(p_oItem, p_nGroupIndex) {
        -
        -    if(p_oItem) {
        -
        -        return this._addItemToGroup(p_nGroupIndex, p_oItem);
        -        
        -    }
        -
        -},
        -
        -
        -/**
        -* @method addItems
        -* @description Adds an array of items to the menu.
        -* @param {Array} p_aItems Array of items to be added to the menu.  The array 
        -* can contain strings specifying the text for each item to be created, object
        -* literals specifying each of the menu item configuration properties, 
        -* or MenuItem instances.
        -* @param {Number} p_nGroupIndex Optional. Number specifying the group to 
        -* which the items belongs.
        -* @return {Array}
        -*/
        -addItems: function(p_aItems, p_nGroupIndex) {
        -
        -    if(Lang.isArray(p_aItems)) {
        -
        -        var nItems = p_aItems.length,
        -            aItems = [],
        -            oItem;
        -
        -
        -        for(var i=0; i<nItems; i++) {
        -
        -            oItem = p_aItems[i];
        -
        -            if(oItem) {
        -
        -                if(Lang.isArray(oItem)) {
        -    
        -                    aItems[aItems.length] = this.addItems(oItem, i);
        -    
        -                }
        -                else {
        -    
        -                    aItems[aItems.length] = 
        -                        this._addItemToGroup(p_nGroupIndex, oItem);
        -                
        -                }
        -
        -            }
        -    
        -        }
        -
        -
        -        if(aItems.length) {
        -        
        -            return aItems;
        -        
        -        }
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method insertItem
        -* @description Inserts an item into the menu at the specified index.
        -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem 
        -* instance to be added to the menu.
        -* @param {String} p_oItem String specifying the text of the item to be added 
        -* to the menu.
        -* @param {Object} p_oItem Object literal containing a set of menu item 
        -* configuration properties.
        -* @param {Number} p_nItemIndex Number indicating the ordinal position at which
        -* the item should be added.
        -* @param {Number} p_nGroupIndex Optional. Number indicating the group to which 
        -* the item belongs.
        -* @return {YAHOO.widget.MenuItem}
        -*/
        -insertItem: function(p_oItem, p_nItemIndex, p_nGroupIndex) {
        -    
        -    if(p_oItem) {
        -
        -        return this._addItemToGroup(p_nGroupIndex, p_oItem, p_nItemIndex);
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method removeItem
        -* @description Removes the specified item from the menu.
        -* @param {YAHOO.widget.MenuItem} p_oObject Object reference for the MenuItem 
        -* instance to be removed from the menu.
        -* @param {Number} p_oObject Number specifying the index of the item 
        -* to be removed.
        -* @param {Number} p_nGroupIndex Optional. Number specifying the group to 
        -* which the item belongs.
        -* @return {YAHOO.widget.MenuItem}
        -*/
        -removeItem: function(p_oObject, p_nGroupIndex) {
        -    
        -    if(typeof p_oObject != "undefined") {
        -
        -        var oItem;
        -
        -        if(p_oObject instanceof YAHOO.widget.MenuItem) {
        -
        -            oItem = this._removeItemFromGroupByValue(p_nGroupIndex, p_oObject);           
        -
        -        }
        -        else if(typeof p_oObject == "number") {
        -
        -            oItem = this._removeItemFromGroupByIndex(p_nGroupIndex, p_oObject);
        -
        -        }
        -
        -        if(oItem) {
        -
        -            oItem.destroy();
        -
        -            this.logger.log("Item removed." + 
        -                " Text: " + oItem.cfg.getProperty("text") + ", " + 
        -                " Index: " + oItem.index + ", " + 
        -                " Group Index: " + oItem.groupIndex);
        -
        -            return oItem;
        -
        -        }
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method getItems
        -* @description Returns an array of all of the items in the menu.
        -* @return {Array}
        -*/
        -getItems: function() {
        -
        -    var aGroups = this._aItemGroups,
        -        nGroups = aGroups.length;
        -
        -    return (
        -                (nGroups == 1) ? aGroups[0] : 
        -                    (Array.prototype.concat.apply([], aGroups))
        -            );
        -
        -},
        -
        -
        -/**
        -* @method getItemGroups
        -* @description Multi-dimensional Array representing the menu items as they 
        -* are grouped in the menu.
        -* @return {Array}
        -*/        
        -getItemGroups: function() {
        -
        -    return this._aItemGroups;
        -
        -},
        -
        -
        -/**
        -* @method getItem
        -* @description Returns the item at the specified index.
        -* @param {Number} p_nItemIndex Number indicating the ordinal position of the 
        -* item to be retrieved.
        -* @param {Number} p_nGroupIndex Optional. Number indicating the group to which 
        -* the item belongs.
        -* @return {YAHOO.widget.MenuItem}
        -*/
        -getItem: function(p_nItemIndex, p_nGroupIndex) {
        -    
        -    if(typeof p_nItemIndex == "number") {
        -
        -        var aGroup = this._getItemGroup(p_nGroupIndex);
        -
        -        if(aGroup) {
        -
        -            return aGroup[p_nItemIndex];
        -        
        -        }
        -
        -    }
        -    
        -},
        -
        -
        -/**
        -* @method clearContent
        -* @description Removes all of the content from the menu, including the menu 
        -* items, group titles, header and footer.
        -*/
        -clearContent: function() {
        -
        -    var aItems = this.getItems(),
        -        nItems = aItems.length,
        -        oElement = this.element,
        -        oBody = this.body,
        -        oHeader = this.header,
        -        oFooter = this.footer;
        -
        -
        -    if(nItems > 0) {
        -
        -        var i = nItems - 1,
        -            oItem,
        -            oSubmenu;
        -
        -        do {
        -
        -            oItem = aItems[i];
        -
        -            if(oItem) {
        -
        -                oSubmenu = oItem.cfg.getProperty("submenu");
        -
        -                if(oSubmenu) {
        -
        -                    this.cfg.configChangedEvent.unsubscribe(
        -                                this._onParentMenuConfigChange, 
        -                                oSubmenu
        -                            );
        -
        -                    this.renderEvent.unsubscribe(
        -                                        this._onParentMenuRender, 
        -                                        oSubmenu
        -                                    );
        -
        -                }
        -
        -                oItem.destroy();
        -
        -            }
        -        
        -        }
        -        while(i--);
        -
        -    }
        -
        -
        -    if(oHeader) {
        -
        -        Event.purgeElement(oHeader);
        -        oElement.removeChild(oHeader);
        -
        -    }
        -    
        -
        -    if(oFooter) {
        -
        -        Event.purgeElement(oFooter);
        -        oElement.removeChild(oFooter);
        -    }
        -
        -
        -    if(oBody) {
        -
        -        Event.purgeElement(oBody);
        -
        -        oBody.innerHTML = "";
        -
        -    }
        -
        -
        -    this._aItemGroups = [];
        -    this._aListElements = [];
        -    this._aGroupTitleElements = [];
        -    
        -    this.cfg.setProperty("width", null);
        -
        -},
        -
        -
        -/**
        -* @method destroy
        -* @description Removes the menu's <code>&#60;div&#62;</code> element 
        -* (and accompanying child nodes) from the document.
        -*/
        -destroy: function() {
        -
        -    // Remove all DOM event listeners
        -
        -    Event.purgeElement(this.element);
        -
        -
        -    // Remove Custom Event listeners
        -
        -    this.mouseOverEvent.unsubscribeAll();
        -    this.mouseOutEvent.unsubscribeAll();
        -    this.mouseDownEvent.unsubscribeAll();
        -    this.mouseUpEvent.unsubscribeAll();
        -    this.clickEvent.unsubscribeAll();
        -    this.keyPressEvent.unsubscribeAll();
        -    this.keyDownEvent.unsubscribeAll();
        -    this.keyUpEvent.unsubscribeAll();
        -    this.focusEvent.unsubscribeAll();
        -    this.blurEvent.unsubscribeAll();
        -    this.itemAddedEvent.unsubscribeAll();
        -    this.itemRemovedEvent.unsubscribeAll();
        -    this.cfg.unsubscribeFromConfigEvent("width", this._onWidthChange);
        -    this.cfg.unsubscribeFromConfigEvent("visible", this._onVisibleChange);
        -
        -    if (this._hasSetWidthHandlers) {
        -
        -        this.itemAddedEvent.unsubscribe(this._setWidth);
        -        this.itemRemovedEvent.unsubscribe(this._setWidth);
        -
        -        this._hasSetWidthHandlers = false;
        -
        -    }
        -
        -    YAHOO.widget.Module.textResizeEvent.unsubscribe(this._onTextResize, this);
        -
        -
        -    // Remove all items
        -
        -    this.clearContent();
        -
        -
        -    this._aItemGroups = null;
        -    this._aListElements = null;
        -    this._aGroupTitleElements = null;
        -
        -
        -    // Continue with the superclass implementation of this method
        -
        -    YAHOO.widget.Menu.superclass.destroy.call(this);
        -    
        -    this.logger.log("Destroyed.");
        -
        -},
        -
        -
        -/**
        -* @method setInitialFocus
        -* @description Sets focus to the menu's first enabled item.
        -*/
        -setInitialFocus: function() {
        -
        -    var oItem = this._getFirstEnabledItem();
        -    
        -    if (oItem) {
        -
        -        oItem.focus();
        -
        -    }
        -    
        -},
        -
        -
        -/**
        -* @method setInitialSelection
        -* @description Sets the "selected" configuration property of the menu's first 
        -* enabled item to "true."
        -*/
        -setInitialSelection: function() {
        -
        -    var oItem = this._getFirstEnabledItem();
        -    
        -    if(oItem) {
        -    
        -        oItem.cfg.setProperty("selected", true);
        -    }        
        -
        -},
        -
        -
        -/**
        -* @method clearActiveItem
        -* @description Sets the "selected" configuration property of the menu's active
        -* item to "false" and hides the item's submenu.
        -* @param {Boolean} p_bBlur Boolean indicating if the menu's active item 
        -* should be blurred.  
        -*/
        -clearActiveItem: function(p_bBlur) {
        -
        -    if(this.cfg.getProperty("showdelay") > 0) {
        -    
        -        this._cancelShowDelay();
        -    
        -    }
        -
        -
        -    var oActiveItem = this.activeItem;
        -
        -    if(oActiveItem) {
        -
        -        var oConfig = oActiveItem.cfg;
        -
        -        if(p_bBlur) {
        -
        -            oActiveItem.blur();
        -        
        -        }
        -
        -        oConfig.setProperty("selected", false);
        -
        -        var oSubmenu = oConfig.getProperty("submenu");
        -
        -        if(oSubmenu) {
        -
        -            oSubmenu.hide();
        -
        -        }
        -
        -        this.activeItem = null;            
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method focus
        -* @description Causes the menu to receive focus and fires the "focus" event.
        -*/
        -focus: function() {
        -
        -    if (!this.hasFocus()) {
        -
        -        this.setInitialFocus();
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method blur
        -* @description Causes the menu to lose focus and fires the "blur" event.
        -*/    
        -blur: function() {
        -
        -    if (this.hasFocus()) {
        -    
        -        var oItem = YAHOO.widget.MenuManager.getFocusedMenuItem();
        -        
        -        if (oItem) {
        -
        -            oItem.blur();
        -
        -        }
        -
        -    }
        -
        -},
        -
        -
        -/**
        -* @method hasFocus
        -* @description Returns a boolean indicating whether or not the menu has focus.
        -* @return {Boolean}
        -*/
        -hasFocus: function() {
        -
        -    return (YAHOO.widget.MenuManager.getFocusedMenu() == this.getRoot());
        -
        -},
        -
        -
        -/**
        -* @description Initializes the class's configurable properties which can be
        -* changed using the menu's Config object ("cfg").
        -* @method initDefaultConfig
        -*/
        -initDefaultConfig: function() {
        -
        -    YAHOO.widget.Menu.superclass.initDefaultConfig.call(this);
        -
        -    var oConfig = this.cfg,
        -        DEFAULT_CONFIG = YAHOO.widget.Menu._DEFAULT_CONFIG;
        -
        -	// Add configuration attributes
        -
        -    /*
        -        Change the default value for the "visible" configuration 
        -        property to "false" by re-adding the property.
        -    */
        -
        -    /**
        -    * @config visible
        -    * @description Boolean indicating whether or not the menu is visible.  If 
        -    * the menu's "position" configuration property is set to "dynamic" (the 
        -    * default), this property toggles the menu's <code>&#60;div&#62;</code> 
        -    * element's "visibility" style property between "visible" (true) or 
        -    * "hidden" (false).  If the menu's "position" configuration property is 
        -    * set to "static" this property toggles the menu's 
        -    * <code>&#60;div&#62;</code> element's "display" style property 
        -    * between "block" (true) or "none" (false).
        -    * @default false
        -    * @type Boolean
        -    */
        -    oConfig.addProperty(
        -        DEFAULT_CONFIG.VISIBLE.key, 
        -        {
        -            handler: this.configVisible, 
        -            value: DEFAULT_CONFIG.VISIBLE.value, 
        -            validator: DEFAULT_CONFIG.VISIBLE.validator
        -         }
        -     );
        -
        -
        -    /*
        -        Change the default value for the "constraintoviewport" configuration 
        -        property to "true" by re-adding the property.
        -    */
        -
        -    /**
        -    * @config constraintoviewport
        -    * @description Boolean indicating if the menu will try to remain inside 
        -    * the boundaries of the size of viewport.
        -    * @default true
        -    * @type Boolean
        -    */
        -    oConfig.addProperty(
        -        DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.key, 
        -        {
        -            handler: this.configConstrainToViewport, 
        -            value: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.value, 
        -            validator: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.validator, 
        -            supercedes: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.supercedes 
        -        } 
        -    );
        -
        -
        -    /**
        -    * @config position
        -    * @description String indicating how a menu should be positioned on the 
        -    * screen.  Possible values are "static" and "dynamic."  Static menus are 
        -    * visible by default and reside in the normal flow of the document 
        -    * (CSS position: static).  Dynamic menus are hidden by default, reside 
        -    * out of the normal flow of the document (CSS position: absolute), and 
        -    * can overlay other elements on the screen.
        -    * @default dynamic
        -    * @type String
        -    */
        -    oConfig.addProperty(
        -        DEFAULT_CONFIG.POSITION.key, 
        -        {
        -            handler: this.configPosition,
        -            value: DEFAULT_CONFIG.POSITION.value, 
        -            validator: DEFAULT_CONFIG.POSITION.validator,
        -            supercedes: DEFAULT_CONFIG.POSITION.supercedes
        -        }
        -    );
        -
        -
        -    /**
        -    * @config submenualignment
        -    * @description Array defining how submenus should be aligned to their 
        -    * parent menu item. The format is: [itemCorner, submenuCorner]. By default
        -    * a submenu's top left corner is aligned to its parent menu item's top 
        -    * right corner.
        -    * @default ["tl","tr"]
        -    * @type Array
        -    */
        -    oConfig.addProperty(
        -        DEFAULT_CONFIG.SUBMENU_ALIGNMENT.key, 
        -        { 
        -            value: DEFAULT_CONFIG.SUBMENU_ALIGNMENT.value 
        -        }
        -    );
        -
        -
        -    /**
        -    * @config autosubmenudisplay
        -    * @description Boolean indicating if submenus are automatically made 
        -    * visible when the user mouses over the menu's items.
        -    * @default true
        -    * @type Boolean
        -    */
        -	oConfig.addProperty(
        -	   DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.key, 
        -	   { 
        -	       value: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.value, 
        -	       validator: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.validator
        -       } 
        -    );
        -
        -
        -    /**
        -    * @config showdelay
        -    * @description Number indicating the time (in milliseconds) that should 
        -    * expire before a submenu is made visible when the user mouses over 
        -    * the menu's items.
        -    * @default 250
        -    * @type Number
        -    */
        -	oConfig.addProperty(
        -	   DEFAULT_CONFIG.SHOW_DELAY.key, 
        -	   { 
        -	       value: DEFAULT_CONFIG.SHOW_DELAY.value, 
        -	       validator: DEFAULT_CONFIG.SHOW_DELAY.validator
        -       } 
        -    );
        -
        -
        -    /**
        -    * @config hidedelay
        -    * @description Number indicating the time (in milliseconds) that should 
        -    * expire before the menu is hidden.
        -    * @default 0
        -    * @type Number
        -    */
        -	oConfig.addProperty(
        -	   DEFAULT_CONFIG.HIDE_DELAY.key, 
        -	   { 
        -	       handler: this.configHideDelay,
        -	       value: DEFAULT_CONFIG.HIDE_DELAY.value, 
        -	       validator: DEFAULT_CONFIG.HIDE_DELAY.validator, 
        -	       suppressEvent: DEFAULT_CONFIG.HIDE_DELAY.suppressEvent
        -       } 
        -    );
        -
        -
        -    /**
        -    * @config submenuhidedelay
        -    * @description Number indicating the time (in milliseconds) that should 
        -    * expire before a submenu is hidden when the user mouses out of a menu item 
        -    * heading in the direction of a submenu.  The value must be greater than or 
        -    * equal to the value specified for the "showdelay" configuration property.
        -    * @default 250
        -    * @type Number
        -    */
        -	oConfig.addProperty(
        -	   DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.key, 
        -	   { 
        -	       value: DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.value, 
        -	       validator: DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.validator
        -       } 
        -    );
        -
        -
        -    /**
        -    * @config clicktohide
        -    * @description Boolean indicating if the menu will automatically be 
        -    * hidden if the user clicks outside of it.
        -    * @default true
        -    * @type Boolean
        -    */
        -    oConfig.addProperty(
        -        DEFAULT_CONFIG.CLICK_TO_HIDE.key,
        -        {
        -            value: DEFAULT_CONFIG.CLICK_TO_HIDE.value,
        -            validator: DEFAULT_CONFIG.CLICK_TO_HIDE.validator
        -        }
        -    );
        -
        -
        -	/**
        -	* @config container
        -	* @description HTML element reference or string specifying the id 
        -	* attribute of the HTML element that the menu's markup should be 
        -	* rendered into.
        -	* @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -	* level-one-html.html#ID-58190037">HTMLElement</a>|String
        -	* @default document.body
        -	*/
        -	oConfig.addProperty(
        -	   DEFAULT_CONFIG.CONTAINER.key, 
        -	   { 
        -	       handler: this.configContainer,
        -	       value: document.body
        -       } 
        -   );
        -
        -
        -    /**
        -    * @config maxheight
        -    * @description Defines the maximum height (in pixels) for a menu before the
        -    * contents of the body are scrolled.
        -    * @default 0
        -    * @type Number
        -    */
        -    oConfig.addProperty(
        -       DEFAULT_CONFIG.MAX_HEIGHT.key, 
        -       {
        -            handler: this.configMaxHeight,
        -            value: DEFAULT_CONFIG.MAX_HEIGHT.value,
        -            validator: DEFAULT_CONFIG.MAX_HEIGHT.validator
        -       } 
        -    );
        -
        -
        -    /**
        -    * @config classname
        -    * @description CSS class to be applied to the menu's root 
        -    * <code>&#60;div&#62;</code> element.  The specified class(es) are 
        -    * appended in addition to the default class as specified by the menu's
        -    * CSS_CLASS_NAME constant.
        -    * @default null
        -    * @type String
        -    */
        -    oConfig.addProperty(
        -        DEFAULT_CONFIG.CLASS_NAME.key, 
        -        { 
        -            handler: this.configClassName,
        -            value: DEFAULT_CONFIG.CLASS_NAME.value, 
        -            validator: DEFAULT_CONFIG.CLASS_NAME.validator
        -        }
        -    );
        -
        -}
        -
        -}); // END YAHOO.lang.extend
        -
        -})();
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/menubar.js.html b/www/extras/yui/docs/menubar.js.html deleted file mode 100644 index 5929262d8..000000000 --- a/www/extras/yui/docs/menubar.js.html +++ /dev/null @@ -1,566 +0,0 @@ - - - - API: menu menubar.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Menu  2.2.2

        -

        - Yahoo! UI Library - > menu - - > menubar.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* Horizontal collection of items, each of which can contain a submenu.
        -* 
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;div&#62;</code> element of the menu bar.
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;select&#62;</code> element to be used as the data source for the 
        -* menu bar.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object specifying 
        -* the <code>&#60;div&#62;</code> element of the menu bar.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-94282980">HTMLSelectElement</a>} p_oElement Object 
        -* specifying the <code>&#60;select&#62;</code> element to be used as the data 
        -* source for the menu bar.
        -* @param {Object} p_oConfig Optional. Object literal specifying the 
        -* configuration for the menu bar. See configuration class documentation for
        -* more details.
        -* @class Menubar
        -* @constructor
        -* @extends YAHOO.widget.Menu
        -* @namespace YAHOO.widget
        -*/
        -YAHOO.widget.MenuBar = function(p_oElement, p_oConfig) {
        -
        -    YAHOO.widget.MenuBar.superclass.constructor.call(
        -            this, 
        -            p_oElement,
        -            p_oConfig
        -        );
        -
        -};
        -
        -
        -/**
        -* Constant representing the MenuBar's configuration properties
        -* @property YAHOO.widget.MenuBar._DEFAULT_CONFIG
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.MenuBar._DEFAULT_CONFIG = {
        -
        -    "POSITION": { 
        -        key: "position", 
        -        value: "static", 
        -        validator: YAHOO.widget.Menu._checkPosition, 
        -        supercedes: ["visible"] 
        -    }, 
        -
        -    "SUBMENU_ALIGNMENT": { 
        -        key: "submenualignment", 
        -        value: ["tl","bl"] 
        -    },
        -
        -    "AUTO_SUBMENU_DISPLAY": { 
        -        key: "autosubmenudisplay", 
        -        value: false, 
        -        validator: YAHOO.lang.isBoolean 
        -    }
        -
        -};
        -
        -
        -
        -YAHOO.lang.extend(YAHOO.widget.MenuBar, YAHOO.widget.Menu, {
        -
        -/**
        -* @method init
        -* @description The MenuBar class's initialization method. This method is 
        -* automatically called by the constructor, and sets up all DOM references for 
        -* pre-existing markup, and creates required markup if it is not already present.
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;div&#62;</code> element of the menu bar.
        -* @param {String} p_oElement String specifying the id attribute of the 
        -* <code>&#60;select&#62;</code> element to be used as the data source for the 
        -* menu bar.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object specifying 
        -* the <code>&#60;div&#62;</code> element of the menu bar.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-94282980">HTMLSelectElement</a>} p_oElement Object 
        -* specifying the <code>&#60;select&#62;</code> element to be used as the data 
        -* source for the menu bar.
        -* @param {Object} p_oConfig Optional. Object literal specifying the 
        -* configuration for the menu bar. See configuration class documentation for
        -* more details.
        -*/
        -init: function(p_oElement, p_oConfig) {
        -
        -    if(!this.ITEM_TYPE) {
        -
        -        this.ITEM_TYPE = YAHOO.widget.MenuBarItem;
        -
        -    }
        -
        -
        -    // Call the init of the superclass (YAHOO.widget.Menu)
        -
        -    YAHOO.widget.MenuBar.superclass.init.call(this, p_oElement);
        -
        -
        -    this.beforeInitEvent.fire(YAHOO.widget.MenuBar);
        -
        -
        -    if(p_oConfig) {
        -
        -        this.cfg.applyConfig(p_oConfig, true);
        -
        -    }
        -
        -    this.initEvent.fire(YAHOO.widget.MenuBar);
        -
        -},
        -
        -
        -
        -// Constants
        -
        -
        -/**
        -* @property CSS_CLASS_NAME
        -* @description String representing the CSS class(es) to be applied to the menu 
        -* bar's <code>&#60;div&#62;</code> element.
        -* @default "yuimenubar"
        -* @final
        -* @type String
        -*/
        -CSS_CLASS_NAME: "yuimenubar",
        -
        -
        -
        -// Protected event handlers
        -
        -
        -/**
        -* @method _onKeyDown
        -* @description "keydown" Custom Event handler for the menu bar.
        -* @private
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu bar 
        -* that fired the event.
        -*/
        -_onKeyDown: function(p_sType, p_aArgs, p_oMenuBar) {
        -
        -    var Event = YAHOO.util.Event,
        -        oEvent = p_aArgs[0],
        -        oItem = p_aArgs[1],
        -        oSubmenu;
        -
        -
        -    if(oItem && !oItem.cfg.getProperty("disabled")) {
        -
        -        var oItemCfg = oItem.cfg;
        -
        -        switch(oEvent.keyCode) {
        -    
        -            case 37:    // Left arrow
        -            case 39:    // Right arrow
        -    
        -                if(
        -                    oItem == this.activeItem && 
        -                    !oItemCfg.getProperty("selected")
        -                ) {
        -    
        -                    oItemCfg.setProperty("selected", true);
        -    
        -                }
        -                else {
        -    
        -                    var oNextItem = (oEvent.keyCode == 37) ? 
        -                            oItem.getPreviousEnabledSibling() : 
        -                            oItem.getNextEnabledSibling();
        -            
        -                    if(oNextItem) {
        -    
        -                        this.clearActiveItem();
        -    
        -                        oNextItem.cfg.setProperty("selected", true);
        -    
        -    
        -                        if(this.cfg.getProperty("autosubmenudisplay")) {
        -                        
        -                            oSubmenu = oNextItem.cfg.getProperty("submenu");
        -                            
        -                            if(oSubmenu) {
        -                        
        -                                oSubmenu.show();
        -                            
        -                            }
        -                
        -                        }           
        -    
        -                        oNextItem.focus();
        -    
        -                    }
        -    
        -                }
        -    
        -                Event.preventDefault(oEvent);
        -    
        -            break;
        -    
        -            case 40:    // Down arrow
        -    
        -                if(this.activeItem != oItem) {
        -    
        -                    this.clearActiveItem();
        -    
        -                    oItemCfg.setProperty("selected", true);
        -                    oItem.focus();
        -                
        -                }
        -    
        -                oSubmenu = oItemCfg.getProperty("submenu");
        -    
        -                if(oSubmenu) {
        -    
        -                    if(oSubmenu.cfg.getProperty("visible")) {
        -    
        -                        oSubmenu.setInitialSelection();
        -                        oSubmenu.setInitialFocus();
        -                    
        -                    }
        -                    else {
        -    
        -                        oSubmenu.show();
        -                    
        -                    }
        -    
        -                }
        -    
        -                Event.preventDefault(oEvent);
        -    
        -            break;
        -    
        -        }
        -
        -    }
        -
        -
        -    if(oEvent.keyCode == 27 && this.activeItem) { // Esc key
        -
        -        oSubmenu = this.activeItem.cfg.getProperty("submenu");
        -
        -        if(oSubmenu && oSubmenu.cfg.getProperty("visible")) {
        -        
        -            oSubmenu.hide();
        -            this.activeItem.focus();
        -        
        -        }
        -        else {
        -
        -            this.activeItem.cfg.setProperty("selected", false);
        -            this.activeItem.blur();
        -    
        -        }
        -
        -        Event.preventDefault(oEvent);
        -    
        -    }
        -
        -},
        -
        -
        -/**
        -* @method _onClick
        -* @description "click" event handler for the menu bar.
        -* @protected
        -* @param {String} p_sType String representing the name of the event that 
        -* was fired.
        -* @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu bar 
        -* that fired the event.
        -*/
        -_onClick: function(p_sType, p_aArgs, p_oMenuBar) {
        -
        -    YAHOO.widget.MenuBar.superclass._onClick.call(
        -        this, 
        -        p_sType, 
        -        p_aArgs, 
        -        p_oMenuBar
        -    );
        -
        -
        -    var oItem = p_aArgs[1];
        -    
        -    if(oItem && !oItem.cfg.getProperty("disabled")) {
        -
        -         var Event = YAHOO.util.Event,
        -             Dom = YAHOO.util.Dom,
        -    
        -             oEvent = p_aArgs[0],
        -             oTarget = Event.getTarget(oEvent),
        -    
        -             oActiveItem = this.activeItem,
        -             oConfig = this.cfg;
        -
        -
        -        // Hide any other submenus that might be visible
        -    
        -        if(oActiveItem && oActiveItem != oItem) {
        -    
        -            this.clearActiveItem();
        -    
        -        }
        -
        -    
        -        oItem.cfg.setProperty("selected", true);
        -    
        -
        -        // Show the submenu for the item
        -    
        -        var oSubmenu = oItem.cfg.getProperty("submenu");
        -
        -
        -        if(oSubmenu && oTarget != oItem.submenuIndicator) {
        -        
        -            if(oSubmenu.cfg.getProperty("visible")) {
        -            
        -                oSubmenu.hide();
        -            
        -            }
        -            else {
        -            
        -                oSubmenu.show();                    
        -            
        -            }
        -        
        -        }
        -    
        -    }
        -
        -},
        -
        -
        -
        -// Public methods
        -
        -
        -/**
        -* @method toString
        -* @description Returns a string representing the menu bar.
        -* @return {String}
        -*/
        -toString: function() {
        -
        -    var sReturnVal = "MenuBar",
        -        sId = this.id;
        -
        -    if(sId) {
        -
        -        sReturnVal += (" " + sId);
        -    
        -    }
        -
        -    return sReturnVal;
        -
        -},
        -
        -
        -/**
        -* @description Initializes the class's configurable properties which can be
        -* changed using the menu bar's Config object ("cfg").
        -* @method initDefaultConfig
        -*/
        -initDefaultConfig: function() {
        -
        -    YAHOO.widget.MenuBar.superclass.initDefaultConfig.call(this);
        -
        -    var oConfig = this.cfg,
        -        DEFAULT_CONFIG = YAHOO.widget.MenuBar._DEFAULT_CONFIG;
        -
        -	// Add configuration properties
        -
        -
        -    /*
        -        Set the default value for the "position" configuration property
        -        to "static" by re-adding the property.
        -    */
        -
        -
        -    /**
        -    * @config position
        -    * @description String indicating how a menu bar should be positioned on the 
        -    * screen.  Possible values are "static" and "dynamic."  Static menu bars 
        -    * are visible by default and reside in the normal flow of the document 
        -    * (CSS position: static).  Dynamic menu bars are hidden by default, reside
        -    * out of the normal flow of the document (CSS position: absolute), and can 
        -    * overlay other elements on the screen.
        -    * @default static
        -    * @type String
        -    */
        -    oConfig.addProperty(
        -        DEFAULT_CONFIG.POSITION.key, 
        -        {
        -            handler: this.configPosition, 
        -            value: DEFAULT_CONFIG.POSITION.value, 
        -            validator: DEFAULT_CONFIG.POSITION.validator,
        -            supercedes: DEFAULT_CONFIG.POSITION.supercedes
        -        }
        -    );
        -
        -
        -    /*
        -        Set the default value for the "submenualignment" configuration property
        -        to ["tl","bl"] by re-adding the property.
        -    */
        -
        -    /**
        -    * @config submenualignment
        -    * @description Array defining how submenus should be aligned to their 
        -    * parent menu bar item. The format is: [itemCorner, submenuCorner].
        -    * @default ["tl","bl"]
        -    * @type Array
        -    */
        -    oConfig.addProperty(
        -        DEFAULT_CONFIG.SUBMENU_ALIGNMENT.key, 
        -        {
        -            value: DEFAULT_CONFIG.SUBMENU_ALIGNMENT.value
        -        }
        -    );
        -
        -
        -    /*
        -        Change the default value for the "autosubmenudisplay" configuration 
        -        property to "false" by re-adding the property.
        -    */
        -
        -    /**
        -    * @config autosubmenudisplay
        -    * @description Boolean indicating if submenus are automatically made 
        -    * visible when the user mouses over the menu bar's items.
        -    * @default false
        -    * @type Boolean
        -    */
        -	oConfig.addProperty(
        -	   DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.key, 
        -	   {
        -	       value: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.value, 
        -	       validator: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.validator
        -       } 
        -    );
        -
        -}
        - 
        -}); // END YAHOO.lang.extend
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/menubaritem.js.html b/www/extras/yui/docs/menubaritem.js.html deleted file mode 100644 index 40c02522f..000000000 --- a/www/extras/yui/docs/menubaritem.js.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - API: menu menubaritem.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Menu  2.2.2

        -

        - Yahoo! UI Library - > menu - - > menubaritem.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* Creates an item for a menu bar.
        -* 
        -* @param {String} p_oObject String specifying the text of the menu bar item.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object specifying the 
        -* <code>&#60;li&#62;</code> element of the menu bar item.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object 
        -* specifying the <code>&#60;optgroup&#62;</code> element of the menu bar item.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object specifying 
        -* the <code>&#60;option&#62;</code> element of the menu bar item.
        -* @param {Object} p_oConfig Optional. Object literal specifying the 
        -* configuration for the menu bar item. See configuration class documentation 
        -* for more details.
        -* @class MenuBarItem
        -* @constructor
        -* @extends YAHOO.widget.MenuItem
        -*/
        -YAHOO.widget.MenuBarItem = function(p_oObject, p_oConfig) {
        -
        -    YAHOO.widget.MenuBarItem.superclass.constructor.call(
        -        this, 
        -        p_oObject, 
        -        p_oConfig
        -    );
        -
        -};
        -
        -YAHOO.lang.extend(YAHOO.widget.MenuBarItem, YAHOO.widget.MenuItem, {
        -
        -
        -/**
        -* @method init
        -* @description The MenuBarItem class's initialization method. This method is 
        -* automatically called by the constructor, and sets up all DOM references for 
        -* pre-existing markup, and creates required markup if it is not already present.
        -* @param {String} p_oObject String specifying the text of the menu bar item.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object specifying the 
        -* <code>&#60;li&#62;</code> element of the menu bar item.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object 
        -* specifying the <code>&#60;optgroup&#62;</code> element of the menu bar item.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object specifying 
        -* the <code>&#60;option&#62;</code> element of the menu bar item.
        -* @param {Object} p_oConfig Optional. Object literal specifying the 
        -* configuration for the menu bar item. See configuration class documentation 
        -* for more details.
        -*/
        -init: function(p_oObject, p_oConfig) {
        -
        -    if(!this.SUBMENU_TYPE) {
        -
        -        this.SUBMENU_TYPE = YAHOO.widget.Menu;
        -
        -    }
        -
        -
        -    /* 
        -        Call the init of the superclass (YAHOO.widget.MenuItem)
        -        Note: We don't pass the user config in here yet 
        -        because we only want it executed once, at the lowest 
        -        subclass level.
        -    */ 
        -
        -    YAHOO.widget.MenuBarItem.superclass.init.call(this, p_oObject);  
        -
        -
        -    var oConfig = this.cfg;
        -
        -    if(p_oConfig) {
        -
        -        oConfig.applyConfig(p_oConfig, true);
        -
        -    }
        -
        -    oConfig.fireQueue();
        -
        -},
        -
        -
        -
        -// Constants
        -
        -/**
        -* @property CSS_CLASS_NAME
        -* @description String representing the CSS class(es) to be applied to the 
        -* <code>&#60;li&#62;</code> element of the menu bar item.
        -* @default "yuimenubaritem"
        -* @final
        -* @type String
        -*/
        -CSS_CLASS_NAME: "yuimenubaritem",
        -
        -
        -
        -// Public methods
        -
        -
        -/**
        -* @method toString
        -* @description Returns a string representing the menu bar item.
        -* @return {String}
        -*/
        -toString: function() {
        -
        -    var sReturnVal = "MenuBarItem";
        -
        -    if(this.cfg && this.cfg.getProperty("text")) {
        -
        -        sReturnVal += (": " + this.cfg.getProperty("text"));
        -
        -    }
        -
        -    return sReturnVal;
        -
        -}
        -    
        -}); // END YAHOO.lang.extend
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/menuitem.js.html b/www/extras/yui/docs/menuitem.js.html deleted file mode 100644 index 914edefdb..000000000 --- a/www/extras/yui/docs/menuitem.js.html +++ /dev/null @@ -1,2395 +0,0 @@ - - - - API: menu menuitem.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Menu  2.2.2

        -

        - Yahoo! UI Library - > menu - - > menuitem.js (source view) -

        -
        - -
        -
        -
        - -
        -
        (function() {
        -
        -var Dom = YAHOO.util.Dom,
        -    Module = YAHOO.widget.Module,
        -    Menu = YAHOO.widget.Menu,
        -    CustomEvent = YAHOO.util.CustomEvent,
        -    Lang = YAHOO.lang;
        -
        -/**
        -* Creates an item for a menu.
        -* 
        -* @param {String} p_oObject String specifying the text of the menu item.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object specifying 
        -* the <code>&#60;li&#62;</code> element of the menu item.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object 
        -* specifying the <code>&#60;optgroup&#62;</code> element of the menu item.
        -* @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -* one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object 
        -* specifying the <code>&#60;option&#62;</code> element of the menu item.
        -* @param {Object} p_oConfig Optional. Object literal specifying the 
        -* configuration for the menu item. See configuration class documentation 
        -* for more details.
        -* @class MenuItem
        -* @constructor
        -*/
        -YAHOO.widget.MenuItem = function(p_oObject, p_oConfig) {
        -
        -    if(p_oObject) {
        -
        -        if(p_oConfig) {
        -    
        -            this.parent = p_oConfig.parent;
        -            this.value = p_oConfig.value;
        -            this.id = p_oConfig.id;
        -
        -        }
        -
        -        this.init(p_oObject, p_oConfig);
        -
        -    }
        -
        -};
        -
        -
        -/**
        -* Constant representing the name of the MenuItem's events
        -* @property YAHOO.widget.MenuItem._EVENT_TYPES
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.MenuItem._EVENT_TYPES = {
        -
        -    "MOUSE_OVER": "mouseover",
        -    "MOUSE_OUT": "mouseout",
        -    "MOUSE_DOWN": "mousedown",
        -    "MOUSE_UP": "mouseup",
        -    "CLICK": "click",
        -    "KEY_PRESS": "keypress",
        -    "KEY_DOWN": "keydown",
        -    "KEY_UP": "keyup",
        -    "ITEM_ADDED": "itemAdded",
        -    "ITEM_REMOVED": "itemRemoved",
        -    "FOCUS": "focus",
        -    "BLUR": "blur",
        -    "DESTROY": "destroy"
        -
        -};
        -
        -
        -/**
        -* Constant representing the MenuItem's configuration properties
        -* @property YAHOO.widget.MenuItem._DEFAULT_CONFIG
        -* @private
        -* @final
        -* @type Object
        -*/
        -YAHOO.widget.MenuItem._DEFAULT_CONFIG = {
        -
        -    "TEXT": { 
        -        key: "text", 
        -        value: "", 
        -        validator: Lang.isString, 
        -        suppressEvent: true 
        -    }, 
        -
        -    "HELP_TEXT": { 
        -        key: "helptext" 
        -    },
        -
        -    "URL": { 
        -        key: "url", 
        -        value: "#", 
        -        suppressEvent: true 
        -    }, 
        -
        -    "TARGET": { 
        -        key: "target", 
        -        suppressEvent: true 
        -    }, 
        -
        -    "EMPHASIS": { 
        -        key: "emphasis", 
        -        value: false, 
        -        validator: Lang.isBoolean, 
        -        suppressEvent: true 
        -    }, 
        -
        -    "STRONG_EMPHASIS": { 
        -        key: "strongemphasis", 
        -        value: false, 
        -        validator: Lang.isBoolean, 
        -        suppressEvent: true 
        -    },
        -
        -    "CHECKED": { 
        -        key: "checked", 
        -        value: false, 
        -        validator: Lang.isBoolean, 
        -        suppressEvent: true, 
        -        supercedes:["disabled"]
        -    }, 
        -
        -    "DISABLED": { 
        -        key: "disabled", 
        -        value: false, 
        -        validator: Lang.isBoolean, 
        -        suppressEvent: true
        -    },
        -
        -    "SELECTED": { 
        -        key: "selected", 
        -        value: false, 
        -        validator: Lang.isBoolean, 
        -        suppressEvent: true
        -    },
        -
        -    "SUBMENU": { 
        -        key: "submenu"
        -    },
        -
        -    "ONCLICK": { 
        -        key: "onclick"
        -    },
        -
        -    "CLASS_NAME": { 
        -        key: "classname", 
        -        value: null, 
        -        validator: Lang.isString
        -    }
        -
        -};
        -
        -
        -YAHOO.widget.MenuItem.prototype = {
        -
        -    // Constants
        -
        -
        -    /**
        -    * @property COLLAPSED_SUBMENU_INDICATOR_TEXT
        -    * @description String representing the text for the <code>&#60;em&#62;</code>
        -    * element used for the submenu arrow indicator.
        -    * @default "Submenu collapsed.  Click to expand submenu."
        -    * @final
        -    * @type String
        -    */
        -    COLLAPSED_SUBMENU_INDICATOR_TEXT: 
        -        "Submenu collapsed.  Click to expand submenu.",
        -
        -
        -    /**
        -    * @property EXPANDED_SUBMENU_INDICATOR_TEXT
        -    * @description String representing the text for the submenu arrow indicator 
        -    * element (<code>&#60;em&#62;</code>) when the submenu is visible.
        -    * @default "Submenu expanded.  Click to collapse submenu."
        -    * @final
        -    * @type String
        -    */
        -    EXPANDED_SUBMENU_INDICATOR_TEXT: 
        -        "Submenu expanded.  Click to collapse submenu.",
        -
        -
        -    /**
        -    * @property DISABLED_SUBMENU_INDICATOR_TEXT
        -    * @description String representing the text for the submenu arrow indicator 
        -    * element (<code>&#60;em&#62;</code>) when the menu item is disabled.
        -    * @default "Submenu collapsed.  (Item disabled.)."
        -    * @final
        -    * @type String
        -    */
        -    DISABLED_SUBMENU_INDICATOR_TEXT: "Submenu collapsed.  (Item disabled.)",
        -
        -
        -    /**
        -    * @property CHECKED_TEXT
        -    * @description String representing the text to be used for the checked 
        -    * indicator element (<code>&#60;em&#62;</code>).
        -    * @default "Checked."
        -    * @final
        -    * @type String
        -    */
        -    CHECKED_TEXT: "Menu item checked.",
        -    
        -    
        -    /**
        -    * @property DISABLED_CHECKED_TEXT
        -    * @description String representing the text to be used for the checked 
        -    * indicator element (<code>&#60;em&#62;</code>) when the menu item 
        -    * is disabled.
        -    * @default "Checked. (Item disabled.)"
        -    * @final
        -    * @type String
        -    */
        -    DISABLED_CHECKED_TEXT: "Checked. (Item disabled.)",
        -
        -
        -    /**
        -    * @property CSS_CLASS_NAME
        -    * @description String representing the CSS class(es) to be applied to the 
        -    * <code>&#60;li&#62;</code> element of the menu item.
        -    * @default "yuimenuitem"
        -    * @final
        -    * @type String
        -    */
        -    CSS_CLASS_NAME: "yuimenuitem",
        -
        -
        -    /**
        -    * @property SUBMENU_TYPE
        -    * @description Object representing the type of menu to instantiate and 
        -    * add when parsing the child nodes of the menu item's source HTML element.
        -    * @final
        -    * @type YAHOO.widget.Menu
        -    */
        -    SUBMENU_TYPE: null,
        -
        -
        -
        -    // Private member variables
        -    
        -
        -    /**
        -    * @property _oAnchor
        -    * @description Object reference to the menu item's 
        -    * <code>&#60;a&#62;</code> element.
        -    * @default null 
        -    * @private
        -    * @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -    * one-html.html#ID-48250443">HTMLAnchorElement</a>
        -    */
        -    _oAnchor: null,
        -    
        -
        -    /**
        -    * @property _oText
        -    * @description Object reference to the menu item's text node.
        -    * @default null
        -    * @private
        -    * @type TextNode
        -    */
        -    _oText: null,
        -    
        -    
        -    /**
        -    * @property _oHelpTextEM
        -    * @description Object reference to the menu item's help text 
        -    * <code>&#60;em&#62;</code> element.
        -    * @default null
        -    * @private
        -    * @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -    * one-html.html#ID-58190037">HTMLElement</a>
        -    */
        -    _oHelpTextEM: null,
        -    
        -    
        -    /**
        -    * @property _oSubmenu
        -    * @description Object reference to the menu item's submenu.
        -    * @default null
        -    * @private
        -    * @type YAHOO.widget.Menu
        -    */
        -    _oSubmenu: null,
        -    
        -
        -    /**
        -    * @property _oCheckedIndicator
        -    * @description Object reference to the menu item's checkmark image.
        -    * @default <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -    * level-one-html.html#ID-58190037">HTMLElement</a>
        -    * @private
        -    * @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -    * level-one-html.html#ID-58190037">HTMLElement</a>
        -    */
        -    _oCheckedIndicator: null,
        -
        -
        -    /** 
        -    * @property _oOnclickAttributeValue
        -    * @description Object reference to the menu item's current value for the 
        -    * "onclick" configuration attribute.
        -    * @default null
        -    * @private
        -    * @type Object
        -    */
        -    _oOnclickAttributeValue: null,
        -
        -
        -    /**
        -    * @property _sClassName
        -    * @description The current value of the "classname" configuration attribute.
        -    * @default null
        -    * @private
        -    * @type String
        -    */
        -    _sClassName: null,
        -
        -
        -
        -    // Public properties
        -
        -
        -	/**
        -    * @property constructor
        -	* @description Object reference to the menu item's constructor function.
        -    * @default YAHOO.widget.MenuItem
        -	* @type YAHOO.widget.MenuItem
        -	*/
        -	constructor: YAHOO.widget.MenuItem,
        -
        -
        -    /**
        -    * @property index
        -    * @description Number indicating the ordinal position of the menu item in 
        -    * its group.
        -    * @default null
        -    * @type Number
        -    */
        -    index: null,
        -
        -
        -    /**
        -    * @property groupIndex
        -    * @description Number indicating the index of the group to which the menu 
        -    * item belongs.
        -    * @default null
        -    * @type Number
        -    */
        -    groupIndex: null,
        -
        -
        -    /**
        -    * @property parent
        -    * @description Object reference to the menu item's parent menu.
        -    * @default null
        -    * @type YAHOO.widget.Menu
        -    */
        -    parent: null,
        -
        -
        -    /**
        -    * @property element
        -    * @description Object reference to the menu item's 
        -    * <code>&#60;li&#62;</code> element.
        -    * @default <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level
        -    * -one-html.html#ID-74680021">HTMLLIElement</a>
        -    * @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -    * one-html.html#ID-74680021">HTMLLIElement</a>
        -    */
        -    element: null,
        -
        -
        -    /**
        -    * @property srcElement
        -    * @description Object reference to the HTML element (either 
        -    * <code>&#60;li&#62;</code>, <code>&#60;optgroup&#62;</code> or 
        -    * <code>&#60;option&#62;</code>) used create the menu item.
        -    * @default <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -    * level-one-html.html#ID-74680021">HTMLLIElement</a>|<a href="http://www.
        -    * w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-38450247"
        -    * >HTMLOptGroupElement</a>|<a href="http://www.w3.org/TR/2000/WD-DOM-
        -    * Level-1-20000929/level-one-html.html#ID-70901257">HTMLOptionElement</a>
        -    * @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -    * one-html.html#ID-74680021">HTMLLIElement</a>|<a href="http://www.w3.
        -    * org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-38450247">
        -    * HTMLOptGroupElement</a>|<a href="http://www.w3.org/TR/2000/WD-DOM-
        -    * Level-1-20000929/level-one-html.html#ID-70901257">HTMLOptionElement</a>
        -    */
        -    srcElement: null,
        -
        -
        -    /**
        -    * @property value
        -    * @description Object reference to the menu item's value.
        -    * @default null
        -    * @type Object
        -    */
        -    value: null,
        -
        -
        -    /**
        -    * @property submenuIndicator
        -    * @description Object reference to the <code>&#60;em&#62;</code> element 
        -    * used to create the submenu indicator for the menu item.
        -    * @default <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -    * level-one-html.html#ID-58190037">HTMLElement</a>
        -    * @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -    * level-one-html.html#ID-58190037">HTMLElement</a>
        -    */
        -    submenuIndicator: null,
        -
        -
        -	/**
        -    * @property browser
        -	* @description String representing the browser.
        -	* @type String
        -	*/
        -	browser: Module.prototype.browser,
        -
        -
        -    /**
        -    * @property id
        -    * @description Id of the menu item's root <code>&#60;li&#62;</code> 
        -    * element.  This property should be set via the constructor using the 
        -    * configuration object literal.  If an id is not specified, then one will 
        -    * be created using the "generateId" method of the Dom utility.
        -    * @default null
        -    * @type String
        -    */
        -    id: null,
        -
        -
        -
        -    // Events
        -
        -
        -    /**
        -    * @event destroyEvent
        -    * @description Fires when the menu item's <code>&#60;li&#62;</code> 
        -    * element is removed from its parent <code>&#60;ul&#62;</code> element.
        -    * @type YAHOO.util.CustomEvent
        -    */
        -    destroyEvent: null,
        -
        -
        -    /**
        -    * @event mouseOverEvent
        -    * @description Fires when the mouse has entered the menu item.  Passes 
        -    * back the DOM Event object as an argument.
        -    * @type YAHOO.util.CustomEvent
        -    */
        -    mouseOverEvent: null,
        -
        -
        -    /**
        -    * @event mouseOutEvent
        -    * @description Fires when the mouse has left the menu item.  Passes back 
        -    * the DOM Event object as an argument.
        -    * @type YAHOO.util.CustomEvent
        -    */
        -    mouseOutEvent: null,
        -
        -
        -    /**
        -    * @event mouseDownEvent
        -    * @description Fires when the user mouses down on the menu item.  Passes 
        -    * back the DOM Event object as an argument.
        -    * @type YAHOO.util.CustomEvent
        -    */
        -    mouseDownEvent: null,
        -
        -
        -    /**
        -    * @event mouseUpEvent
        -    * @description Fires when the user releases a mouse button while the mouse 
        -    * is over the menu item.  Passes back the DOM Event object as an argument.
        -    * @type YAHOO.util.CustomEvent
        -    */
        -    mouseUpEvent: null,
        -
        -
        -    /**
        -    * @event clickEvent
        -    * @description Fires when the user clicks the on the menu item.  Passes 
        -    * back the DOM Event object as an argument.
        -    * @type YAHOO.util.CustomEvent
        -    */
        -    clickEvent: null,
        -
        -
        -    /**
        -    * @event keyPressEvent
        -    * @description Fires when the user presses an alphanumeric key when the 
        -    * menu item has focus.  Passes back the DOM Event object as an argument.
        -    * @type YAHOO.util.CustomEvent
        -    */
        -    keyPressEvent: null,
        -
        -
        -    /**
        -    * @event keyDownEvent
        -    * @description Fires when the user presses a key when the menu item has 
        -    * focus.  Passes back the DOM Event object as an argument.
        -    * @type YAHOO.util.CustomEvent
        -    */
        -    keyDownEvent: null,
        -
        -
        -    /**
        -    * @event keyUpEvent
        -    * @description Fires when the user releases a key when the menu item has 
        -    * focus.  Passes back the DOM Event object as an argument.
        -    * @type YAHOO.util.CustomEvent
        -    */
        -    keyUpEvent: null,
        -
        -
        -    /**
        -    * @event focusEvent
        -    * @description Fires when the menu item receives focus.
        -    * @type YAHOO.util.CustomEvent
        -    */
        -    focusEvent: null,
        -
        -
        -    /**
        -    * @event blurEvent
        -    * @description Fires when the menu item loses the input focus.
        -    * @type YAHOO.util.CustomEvent
        -    */
        -    blurEvent: null,
        -
        -
        -    /**
        -    * @method init
        -    * @description The MenuItem class's initialization method. This method is 
        -    * automatically called by the constructor, and sets up all DOM references 
        -    * for pre-existing markup, and creates required markup if it is not 
        -    * already present.
        -    * @param {String} p_oObject String specifying the text of the menu item.
        -    * @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -    * one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object specifying 
        -    * the <code>&#60;li&#62;</code> element of the menu item.
        -    * @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -    * one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object 
        -    * specifying the <code>&#60;optgroup&#62;</code> element of the menu item.
        -    * @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -    * one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object 
        -    * specifying the <code>&#60;option&#62;</code> element of the menu item.
        -    * @param {Object} p_oConfig Optional. Object literal specifying the 
        -    * configuration for the menu item. See configuration class documentation 
        -    * for more details.
        -    */
        -    init: function(p_oObject, p_oConfig) {
        -
        -
        -        if(!this.SUBMENU_TYPE) {
        -    
        -            this.SUBMENU_TYPE = Menu;
        -    
        -        }
        -
        -
        -        // Create the config object
        -
        -        this.cfg = new YAHOO.util.Config(this);
        -
        -        this.initDefaultConfig();
        -
        -        var oConfig = this.cfg;
        -
        -
        -        if(Lang.isString(p_oObject)) {
        -
        -            this._createRootNodeStructure();
        -
        -            oConfig.setProperty("text", p_oObject);
        -
        -        }
        -        else if(this._checkDOMNode(p_oObject)) {
        -
        -            switch(p_oObject.tagName.toUpperCase()) {
        -
        -                case "OPTION":
        -
        -                    this._createRootNodeStructure();
        -
        -                    oConfig.setProperty("text", p_oObject.text);
        -
        -                    this.srcElement = p_oObject;
        -
        -                break;
        -
        -                case "OPTGROUP":
        -
        -                    this._createRootNodeStructure();
        -
        -                    oConfig.setProperty("text", p_oObject.label);
        -
        -                    this.srcElement = p_oObject;
        -
        -                    this._initSubTree();
        -
        -                break;
        -
        -                case "LI":
        -
        -                    // Get the anchor node (if it exists)
        -
        -                    var oAnchor = this._getFirstElement(p_oObject, "A"),
        -                        sURL = "#",
        -                        sTarget,
        -                        sText;
        -
        -
        -                    // Capture the "text" and/or the "URL"
        -
        -                    if(oAnchor) {
        -
        -                        sURL = oAnchor.getAttribute("href");
        -                        sTarget = oAnchor.getAttribute("target");
        -
        -                        if(oAnchor.innerText) {
        -                
        -                            sText = oAnchor.innerText;
        -                
        -                        }
        -                        else {
        -                
        -                            var oRange = oAnchor.ownerDocument.createRange();
        -                
        -                            oRange.selectNodeContents(oAnchor);
        -                
        -                            sText = oRange.toString();             
        -                
        -                        }
        -
        -                    }
        -                    else {
        -
        -                        var oText = p_oObject.firstChild;
        -
        -                        sText = oText.nodeValue;
        -
        -                        oAnchor = document.createElement("a");
        -                        
        -                        oAnchor.setAttribute("href", sURL);
        -
        -                        p_oObject.replaceChild(oAnchor, oText);
        -                        
        -                        oAnchor.appendChild(oText);
        -
        -                    }
        -
        -
        -                    this.srcElement = p_oObject;
        -                    this.element = p_oObject;
        -                    this._oAnchor = oAnchor;
        -    
        -
        -                    // Check if emphasis has been applied to the MenuItem
        -
        -                    var oEmphasisNode = this._getFirstElement(oAnchor),
        -                        bEmphasis = false,
        -                        bStrongEmphasis = false;
        -
        -                    if(oEmphasisNode) {
        -
        -                        // Set a reference to the text node 
        -
        -                        this._oText = oEmphasisNode.firstChild;
        -
        -                        switch(oEmphasisNode.tagName.toUpperCase()) {
        -
        -                            case "EM":
        -
        -                                bEmphasis = true;
        -
        -                            break;
        -
        -                            case "STRONG":
        -
        -                                bStrongEmphasis = true;
        -
        -                            break;
        -
        -                        }
        -
        -                    }
        -                    else {
        -
        -                        // Set a reference to the text node 
        -
        -                        this._oText = oAnchor.firstChild;
        -
        -                    }
        -
        -
        -                    /*
        -                        Set these properties silently to sync up the 
        -                        configuration object without making changes to the 
        -                        element's DOM
        -                    */ 
        -
        -                    oConfig.setProperty("text", sText, true);
        -                    oConfig.setProperty("url", sURL, true);
        -                    oConfig.setProperty("target", sTarget, true);
        -                    oConfig.setProperty("emphasis", bEmphasis, true);
        -                    oConfig.setProperty(
        -                        "strongemphasis", 
        -                        bStrongEmphasis, 
        -                        true
        -                    );
        -
        -                    this._initSubTree();
        -
        -                break;
        -
        -            }            
        -
        -        }
        -
        -
        -        if(this.element) {
        -
        -            var sId = this.element.id;
        -
        -            if(!sId) {
        -
        -                sId = this.id || Dom.generateId();
        -
        -                this.element.id = sId;
        -
        -            }
        -
        -            this.id = sId;
        -
        -
        -            Dom.addClass(this.element, this.CSS_CLASS_NAME);
        -
        -
        -            // Create custom events
        -
        -            var EVENT_TYPES = YAHOO.widget.MenuItem._EVENT_TYPES;
        -
        -            this.mouseOverEvent = new CustomEvent(EVENT_TYPES.MOUSE_OVER, this);
        -            this.mouseOutEvent = new CustomEvent(EVENT_TYPES.MOUSE_OUT, this);
        -            this.mouseDownEvent = new CustomEvent(EVENT_TYPES.MOUSE_DOWN, this);
        -            this.mouseUpEvent = new CustomEvent(EVENT_TYPES.MOUSE_UP, this);
        -            this.clickEvent = new CustomEvent(EVENT_TYPES.CLICK, this);
        -            this.keyPressEvent = new CustomEvent(EVENT_TYPES.KEY_PRESS, this);
        -            this.keyDownEvent = new CustomEvent(EVENT_TYPES.KEY_DOWN, this);
        -            this.keyUpEvent = new CustomEvent(EVENT_TYPES.KEY_UP, this);
        -            this.focusEvent = new CustomEvent(EVENT_TYPES.FOCUS, this);
        -            this.blurEvent = new CustomEvent(EVENT_TYPES.BLUR, this);
        -            this.destroyEvent = new CustomEvent(EVENT_TYPES.DESTROY, this);
        -
        -            if(p_oConfig) {
        -    
        -                oConfig.applyConfig(p_oConfig);
        -    
        -            }        
        -
        -            oConfig.fireQueue();
        -
        -        }
        -
        -    },
        -
        -
        -
        -    // Private methods
        -
        -
        -    /**
        -    * @method _getFirstElement
        -    * @description Returns an HTML element's first HTML element node.
        -    * @private
        -    * @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -    * level-one-html.html#ID-58190037">HTMLElement</a>} p_oElement Object 
        -    * reference specifying the element to be evaluated.
        -    * @param {String} p_sTagName Optional. String specifying the tagname of 
        -    * the element to be retrieved.
        -    * @return {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        -    * level-one-html.html#ID-58190037">HTMLElement</a>}
        -    */
        -    _getFirstElement: function(p_oElement, p_sTagName) {
        -    
        -        var oFirstChild = p_oElement.firstChild,
        -            oElement;
        -    
        -        if(oFirstChild) {
        -    
        -            if(oFirstChild.nodeType == 1) {
        -    
        -                oElement = oFirstChild;
        -    
        -            }
        -            else {
        -    
        -                var oNextSibling = oFirstChild.nextSibling;
        -    
        -                if(oNextSibling && oNextSibling.nodeType == 1) {
        -                
        -                    oElement = oNextSibling;
        -                
        -                }
        -    
        -            }
        -    
        -        }
        -
        -
        -        if(p_sTagName) {
        -
        -            return (oElement && oElement.tagName.toUpperCase() == p_sTagName) ? 
        -                oElement : false;
        -
        -        }
        -        
        -        return oElement;
        -
        -    },    
        -
        -
        -    /**
        -    * @method _checkDOMNode
        -    * @description Determines if an object is an HTML element.
        -    * @private
        -    * @param {Object} p_oObject Object to be evaluated.
        -    * @return {Boolean}
        -    */
        -    _checkDOMNode: function(p_oObject) {
        -
        -        return (p_oObject && p_oObject.tagName);
        -
        -    },
        -
        -
        -    /**
        -    * @method _createRootNodeStructure
        -    * @description Creates the core DOM structure for the menu item.
        -    * @private
        -    */
        -    _createRootNodeStructure: function () {
        -
        -        var oTemplate = YAHOO.widget.MenuItem._MenuItemTemplate;
        -
        -        if(!oTemplate) {
        -
        -            oTemplate = document.createElement("li");
        -            oTemplate.innerHTML = "<a href=\"#\">s</a>";
        -
        -            YAHOO.widget.MenuItem._MenuItemTemplate = oTemplate;
        -
        -        }
        -
        -        this.element = oTemplate.cloneNode(true);
        -        this._oAnchor = this.element.firstChild;
        -        this._oText = this._oAnchor.firstChild;
        -
        -        this.element.appendChild(this._oAnchor);
        -
        -    },
        -
        -
        -    /**
        -    * @method _initSubTree
        -    * @description Iterates the source element's childNodes collection and uses 
        -    * the child nodes to instantiate other menus.
        -    * @private
        -    */
        -    _initSubTree: function() {
        -
        -        var oSrcEl = this.srcElement,
        -            oConfig = this.cfg;
        -
        -
        -        if(oSrcEl.childNodes.length > 0) {
        -
        -            if(
        -                this.parent.lazyLoad && 
        -                this.parent.srcElement && 
        -                this.parent.srcElement.tagName.toUpperCase() == "SELECT"
        -            ) {
        -
        -                oConfig.setProperty(
        -                        "submenu", 
        -                        { id: Dom.generateId(), itemdata: oSrcEl.childNodes }
        -                    );
        -
        -            }
        -            else {
        -
        -                var oNode = oSrcEl.firstChild,
        -                    aOptions = [];
        -    
        -                do {
        -    
        -                    if(oNode && oNode.tagName) {
        -    
        -                        switch(oNode.tagName.toUpperCase()) {
        -                
        -                            case "DIV":
        -                
        -                                oConfig.setProperty("submenu", oNode);
        -                
        -                            break;
        -         
        -                            case "OPTION":
        -        
        -                                aOptions[aOptions.length] = oNode;
        -        
        -                            break;
        -               
        -                        }
        -                    
        -                    }
        -                
        -                }        
        -                while((oNode = oNode.nextSibling));
        -    
        -    
        -                var nOptions = aOptions.length;
        -    
        -                if(nOptions > 0) {
        -    
        -                    var oMenu = new this.SUBMENU_TYPE(Dom.generateId());
        -                    
        -                    oConfig.setProperty("submenu", oMenu);
        -    
        -                    for(var n=0; n<nOptions; n++) {
        -        
        -                        oMenu.addItem((new oMenu.ITEM_TYPE(aOptions[n])));
        -        
        -                    }
        -        
        -                }
        -            
        -            }
        -
        -        }
        -
        -    },
        -
        -
        -
        -    // Event handlers for configuration properties
        -
        -
        -    /**
        -    * @method configText
        -    * @description Event handler for when the "text" configuration property of 
        -    * the menu item changes.
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
        -    * that fired the event.
        -    */
        -    configText: function(p_sType, p_aArgs, p_oItem) {
        -
        -        var sText = p_aArgs[0];
        -
        -
        -        if(this._oText) {
        -
        -            this._oText.nodeValue = sText;
        -
        -        }
        -
        -    },
        -
        -
        -    /**
        -    * @method configHelpText
        -    * @description Event handler for when the "helptext" configuration property 
        -    * of the menu item changes.
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
        -    * that fired the event.
        -    */    
        -    configHelpText: function(p_sType, p_aArgs, p_oItem) {
        -
        -        var me = this,
        -            oHelpText = p_aArgs[0],
        -            oEl = this.element,
        -            oConfig = this.cfg,
        -            aNodes = [oEl, this._oAnchor],
        -            oSubmenuIndicator = this.submenuIndicator;
        -
        -
        -        function initHelpText() {
        -
        -            Dom.addClass(aNodes, "hashelptext");
        -
        -            if(oConfig.getProperty("disabled")) {
        -
        -                oConfig.refireEvent("disabled");
        -
        -            }
        -
        -            if(oConfig.getProperty("selected")) {
        -
        -                oConfig.refireEvent("selected");
        -
        -            }                
        -
        -        }
        -
        -
        -        function removeHelpText() {
        -
        -            Dom.removeClass(aNodes, "hashelptext");
        -
        -            oEl.removeChild(me._oHelpTextEM);
        -            me._oHelpTextEM = null;
        -
        -        }
        -
        -
        -        if(this._checkDOMNode(oHelpText)) {
        -
        -            oHelpText.className = "helptext";
        -
        -            if(this._oHelpTextEM) {
        -            
        -                this._oHelpTextEM.parentNode.replaceChild(
        -                    oHelpText, 
        -                    this._oHelpTextEM
        -                );
        -
        -            }
        -            else {
        -
        -                this._oHelpTextEM = oHelpText;
        -
        -                oEl.insertBefore(this._oHelpTextEM, oSubmenuIndicator);
        -
        -            }
        -
        -            initHelpText();
        -
        -        }
        -        else if(Lang.isString(oHelpText)) {
        -
        -            if(oHelpText.length === 0) {
        -
        -                removeHelpText();
        -
        -            }
        -            else {
        -
        -                if(!this._oHelpTextEM) {
        -
        -                    this._oHelpTextEM = document.createElement("em");
        -                    this._oHelpTextEM.className = "helptext";
        -
        -                    oEl.insertBefore(this._oHelpTextEM, oSubmenuIndicator);
        -
        -                }
        -
        -                this._oHelpTextEM.innerHTML = oHelpText;
        -
        -                initHelpText();
        -
        -            }
        -
        -        }
        -        else if(!oHelpText && this._oHelpTextEM) {
        -
        -            removeHelpText();
        -
        -        }
        -
        -    },
        -
        -
        -    /**
        -    * @method configURL
        -    * @description Event handler for when the "url" configuration property of 
        -    * the menu item changes.
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
        -    * that fired the event.
        -    */    
        -    configURL: function(p_sType, p_aArgs, p_oItem) {
        -
        -        var sURL = p_aArgs[0];
        -
        -        if(!sURL) {
        -
        -            sURL = "#";
        -
        -        }
        -
        -        this._oAnchor.setAttribute("href", sURL);
        -
        -    },
        -
        -
        -    /**
        -    * @method configTarget
        -    * @description Event handler for when the "target" configuration property 
        -    * of the menu item changes.  
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
        -    * that fired the event.
        -    */    
        -    configTarget: function(p_sType, p_aArgs, p_oItem) {
        -
        -        var sTarget = p_aArgs[0],
        -            oAnchor = this._oAnchor;
        -
        -        if(sTarget && sTarget.length > 0) {
        -
        -            oAnchor.setAttribute("target", sTarget);
        -
        -        }
        -        else {
        -
        -            oAnchor.removeAttribute("target");
        -        
        -        }
        -
        -    },
        -
        -
        -    /**
        -    * @method configEmphasis
        -    * @description Event handler for when the "emphasis" configuration property
        -    * of the menu item changes.  
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
        -    * that fired the event.
        -    */    
        -    configEmphasis: function(p_sType, p_aArgs, p_oItem) {
        -
        -        var bEmphasis = p_aArgs[0],
        -            oAnchor = this._oAnchor,
        -            oText = this._oText,
        -            oConfig = this.cfg,
        -            oEM;
        -
        -
        -        if(bEmphasis && oConfig.getProperty("strongemphasis")) {
        -
        -            oConfig.setProperty("strongemphasis", false);
        -
        -        }
        -
        -
        -        if(oAnchor) {
        -
        -            if(bEmphasis) {
        -
        -                oEM = document.createElement("em");
        -                oEM.appendChild(oText);
        -
        -                oAnchor.appendChild(oEM);
        -
        -            }
        -            else {
        -
        -                oEM = this._getFirstElement(oAnchor, "EM");
        -
        -                if(oEM) {
        -
        -                    oAnchor.removeChild(oEM);
        -                    oAnchor.appendChild(oText);
        -
        -                }
        -
        -            }
        -
        -        }
        -
        -    },
        -
        -
        -    /**
        -    * @method configStrongEmphasis
        -    * @description Event handler for when the "strongemphasis" configuration 
        -    * property of the menu item changes. 
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
        -    * that fired the event.
        -    */    
        -    configStrongEmphasis: function(p_sType, p_aArgs, p_oItem) {
        -
        -        var bStrongEmphasis = p_aArgs[0],
        -            oAnchor = this._oAnchor,
        -            oText = this._oText,
        -            oConfig = this.cfg,
        -            oStrong;
        -
        -        if(bStrongEmphasis && oConfig.getProperty("emphasis")) {
        -
        -            oConfig.setProperty("emphasis", false);
        -
        -        }
        -
        -        if(oAnchor) {
        -
        -            if(bStrongEmphasis) {
        -
        -                oStrong = document.createElement("strong");
        -                oStrong.appendChild(oText);
        -
        -                oAnchor.appendChild(oStrong);
        -
        -            }
        -            else {
        -
        -                oStrong = this._getFirstElement(oAnchor, "STRONG");
        -
        -                if(oStrong) {
        -
        -                    oAnchor.removeChild(oStrong);
        -                    oAnchor.appendChild(oText);
        -
        -                }
        -
        -            }
        -
        -        }
        -
        -    },
        -
        -
        -    /**
        -    * @method configChecked
        -    * @description Event handler for when the "checked" configuration property 
        -    * of the menu item changes. 
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
        -    * that fired the event.
        -    */    
        -    configChecked: function(p_sType, p_aArgs, p_oItem) {
        -    
        -        var bChecked = p_aArgs[0],
        -            oEl = this.element,
        -            oConfig = this.cfg,
        -            oEM;
        -
        -
        -        if(bChecked) {
        -
        -            var oTemplate = YAHOO.widget.MenuItem._CheckedIndicatorTemplate;
        -
        -            if(!oTemplate) {
        -
        -                oTemplate = document.createElement("em");
        -                oTemplate.innerHTML = this.CHECKED_TEXT;
        -                oTemplate.className = "checkedindicator";
        -
        -                YAHOO.widget.MenuItem._CheckedIndicatorTemplate = oTemplate;
        -
        -            }
        -
        -            oEM = oTemplate.cloneNode(true);
        -
        -            var oSubmenu = this.cfg.getProperty("submenu");
        -
        -            if(oSubmenu && oSubmenu.element) {
        -
        -                oEl.insertBefore(oEM, oSubmenu.element);
        -
        -            }
        -            else {
        -
        -                oEl.appendChild(oEM);
        -
        -            }
        -
        -
        -            Dom.addClass(oEl, "checked");
        -
        -            this._oCheckedIndicator = oEM;
        -
        -            if(oConfig.getProperty("disabled")) {
        -
        -                oConfig.refireEvent("disabled");
        -
        -            }
        -
        -            if(oConfig.getProperty("selected")) {
        -
        -                oConfig.refireEvent("selected");
        -
        -            }
        -        
        -        }
        -        else {
        -
        -            oEM = this._oCheckedIndicator;
        -
        -            Dom.removeClass(oEl, "checked");
        -
        -            if(oEM) {
        -
        -                oEl.removeChild(oEM);
        -
        -            }
        -
        -            this._oCheckedIndicator = null;
        -        
        -        }
        -
        -    },
        -
        -
        -
        -    /**
        -    * @method configDisabled
        -    * @description Event handler for when the "disabled" configuration property 
        -    * of the menu item changes. 
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
        -    * that fired the event.
        -    */    
        -    configDisabled: function(p_sType, p_aArgs, p_oItem) {
        -
        -        var bDisabled = p_aArgs[0],
        -            oConfig = this.cfg,
        -            oAnchor = this._oAnchor,
        -            aNodes = [this.element, oAnchor],
        -            oHelpText = this._oHelpTextEM,
        -            oCheckedIndicator = this._oCheckedIndicator,
        -            oSubmenuIndicator = this.submenuIndicator,
        -            i = 1;
        -
        -
        -        if(oHelpText) {
        -
        -            i++;
        -            aNodes[i] = oHelpText;
        -
        -        }
        -
        -
        -        if(oCheckedIndicator) {
        -            
        -            oCheckedIndicator.firstChild.nodeValue = bDisabled ? 
        -                this.DISABLED_CHECKED_TEXT : 
        -                this.CHECKED_TEXT;
        -
        -            i++;
        -            aNodes[i] = oCheckedIndicator;
        -            
        -        }    
        -
        -
        -        if(oSubmenuIndicator) {
        -
        -            oSubmenuIndicator.firstChild.nodeValue = bDisabled ? 
        -                this.DISABLED_SUBMENU_INDICATOR_TEXT : 
        -                this.COLLAPSED_SUBMENU_INDICATOR_TEXT;
        -
        -            i++;
        -            aNodes[i] = oSubmenuIndicator;
        -        
        -        }
        -
        -
        -        if(bDisabled) {
        -
        -            if(oConfig.getProperty("selected")) {
        -
        -                oConfig.setProperty("selected", false);
        -
        -            }
        -
        -            oAnchor.removeAttribute("href");
        -
        -            Dom.addClass(aNodes, "disabled");
        -
        -        }
        -        else {
        -
        -            oAnchor.setAttribute("href", oConfig.getProperty("url"));
        -
        -            Dom.removeClass(aNodes, "disabled");
        -
        -        }
        -
        -    },
        -
        -
        -    /**
        -    * @method configSelected
        -    * @description Event handler for when the "selected" configuration property 
        -    * of the menu item changes. 
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
        -    * that fired the event.
        -    */    
        -    configSelected: function(p_sType, p_aArgs, p_oItem) {
        -
        -        if(!this.cfg.getProperty("disabled")) {
        -
        -            var bSelected = p_aArgs[0],
        -                oHelpText = this._oHelpTextEM,
        -                oSubmenuIndicator = this.submenuIndicator,
        -                oCheckedIndicator = this._oCheckedIndicator,
        -                aNodes = [this.element, this._oAnchor],
        -                i = 1;
        -
        -
        -            if(oHelpText) {
        -    
        -                i++;
        -                aNodes[i] = oHelpText;
        -    
        -            }
        -            
        -
        -            if(oSubmenuIndicator) {
        -
        -                i++;
        -                aNodes[i] = oSubmenuIndicator;
        -
        -            }
        -
        -
        -            if(oCheckedIndicator) {
        -
        -                i++;
        -                aNodes[i] = oCheckedIndicator;
        -            
        -            }
        -
        -
        -            if(bSelected) {
        -    
        -                Dom.addClass(aNodes, "selected");
        -    
        -            }
        -            else {
        -    
        -                Dom.removeClass(aNodes, "selected");
        -    
        -            }
        -
        -        }
        -
        -    },
        -
        -
        -    /**
        -    * @method configSubmenu
        -    * @description Event handler for when the "submenu" configuration property 
        -    * of the menu item changes. 
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
        -    * that fired the event.
        -    */
        -    configSubmenu: function(p_sType, p_aArgs, p_oItem) {
        -
        -        var oEl = this.element,
        -            oSubmenu = p_aArgs[0],
        -            oSubmenuIndicator = this.submenuIndicator,
        -            oConfig = this.cfg,
        -            aNodes = [this.element, this._oAnchor],
        -            bLazyLoad = this.parent && this.parent.lazyLoad,
        -            oMenu;
        -
        -
        -        if(oSubmenu) {
        -
        -            if(oSubmenu instanceof Menu) {
        -
        -                oMenu = oSubmenu;
        -                oMenu.parent = this;
        -                oMenu.lazyLoad = bLazyLoad;
        -
        -            }
        -            else if(
        -                typeof oSubmenu == "object" && 
        -                oSubmenu.id && 
        -                !oSubmenu.nodeType
        -            ) {
        -
        -                var sSubmenuId = oSubmenu.id,
        -                    oSubmenuConfig = oSubmenu;
        -
        -                oSubmenuConfig.lazyload = bLazyLoad;
        -                oSubmenuConfig.parent = this;
        -
        -                oMenu = new this.SUBMENU_TYPE(sSubmenuId, oSubmenuConfig);
        -
        -
        -                // Set the value of the property to the Menu instance
        -                
        -                this.cfg.setProperty("submenu", oMenu, true);
        -
        -            }
        -            else {
        -
        -                oMenu = new this.SUBMENU_TYPE(
        -                                oSubmenu,
        -                                { lazyload: bLazyLoad, parent: this }                
        -                            );
        -
        -
        -                // Set the value of the property to the Menu instance
        -                
        -                this.cfg.setProperty("submenu", oMenu, true);
        -
        -            }
        -
        -
        -            if(oMenu) {
        -
        -                this._oSubmenu = oMenu;
        -
        -
        -                if(!oSubmenuIndicator) { 
        -
        -                    var oTemplate = 
        -                            YAHOO.widget.MenuItem._oSubmenuIndicatorTemplate;
        -
        -                    if(!oTemplate) {
        -                   
        -                        oTemplate = document.createElement("em");
        -                        oTemplate.innerHTML =  
        -                            this.COLLAPSED_SUBMENU_INDICATOR_TEXT;
        -                        oTemplate.className = "submenuindicator";
        -                        
        -                        YAHOO.widget.MenuItem._oSubmenuIndicatorTemplate = 
        -                            oTemplate;
        -
        -                    }
        -
        -
        -                    oSubmenuIndicator = oTemplate.cloneNode(true);
        -
        -
        -                    if(oMenu.element.parentNode == oEl) {
        -
        -                        if(this.browser == "opera") {
        -
        -                            oEl.appendChild(oSubmenuIndicator);
        -                            
        -                            oMenu.renderEvent.subscribe(function() {
        -
        -                                oSubmenuIndicator.parentNode.insertBefore(
        -                                                            oSubmenuIndicator, 
        -                                                            oMenu.element
        -                                                        );
        -                            
        -                            });
        -                
        -                        }
        -                        else {
        -
        -                            oEl.insertBefore(oSubmenuIndicator, oMenu.element);
        -                        
        -                        }
        -                
        -                    }
        -                    else {
        -
        -                        oEl.appendChild(oSubmenuIndicator);
        -                    
        -                    }
        -
        -                    this.submenuIndicator = oSubmenuIndicator;
        -
        -                }
        -
        -
        -                Dom.addClass(aNodes, "hassubmenu");
        -
        -
        -                if(oConfig.getProperty("disabled")) {
        -
        -                    oConfig.refireEvent("disabled");
        -
        -                }
        -
        -                if(oConfig.getProperty("selected")) {
        -
        -                    oConfig.refireEvent("selected");
        -
        -                }                
        -            
        -            }
        -
        -        }
        -        else {
        -
        -            Dom.removeClass(aNodes, "hassubmenu");
        -
        -            if(oSubmenuIndicator) {
        -
        -                oEl.removeChild(oSubmenuIndicator);
        -
        -            }
        -
        -            if(this._oSubmenu) {
        -
        -                this._oSubmenu.destroy();
        -
        -            }
        -
        -        }
        -
        -    },
        -
        -
        -    /**
        -    * @method configOnClick
        -    * @description Event handler for when the "onclick" configuration property 
        -    * of the menu item changes. 
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
        -    * that fired the event.
        -    */
        -    configOnClick: function(p_sType, p_aArgs, p_oItem) {
        -
        -        var oObject = p_aArgs[0];
        -
        -        /*
        -            Remove any existing listeners if a "click" event handler has 
        -            already been specified.
        -        */
        -
        -        if(
        -            this._oOnclickAttributeValue && 
        -            (this._oOnclickAttributeValue != oObject)
        -        ) {
        -
        -            this.clickEvent.unsubscribe(
        -                                this._oOnclickAttributeValue.fn, 
        -                                this._oOnclickAttributeValue.obj
        -                            );
        -
        -            this._oOnclickAttributeValue = null;
        -
        -        }
        -
        -
        -        if(
        -            !this._oOnclickAttributeValue && 
        -            typeof oObject == "object" && 
        -            typeof oObject.fn == "function"
        -        ) {
        -
        -            this.clickEvent.subscribe(
        -                    oObject.fn, 
        -                    (oObject.obj || this), 
        -                    oObject.scope
        -                );
        -
        -            this._oOnclickAttributeValue = oObject;
        -
        -        }
        -    
        -    },
        -
        -
        -    /**
        -    * @method configClassName
        -    * @description Event handler for when the "classname" configuration 
        -    * property of a menu item changes.
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
        -    * that fired the event.
        -    */
        -    configClassName: function(p_sType, p_aArgs, p_oItem) {
        -    
        -        var sClassName = p_aArgs[0];
        -    
        -        if(this._sClassName) {
        -    
        -            Dom.removeClass(this.element, this._sClassName);
        -    
        -        }
        -    
        -        Dom.addClass(this.element, sClassName);
        -        this._sClassName = sClassName;
        -    
        -    },
        -
        -
        -
        -    // Public methods
        -
        -
        -	/**
        -    * @method initDefaultConfig
        -	* @description Initializes an item's configurable properties.
        -	*/
        -	initDefaultConfig : function() {
        -
        -        var oConfig = this.cfg,
        -            DEFAULT_CONFIG = YAHOO.widget.MenuItem._DEFAULT_CONFIG;
        -
        -
        -        // Define the configuration attributes
        -
        -        /**
        -        * @config text
        -        * @description String specifying the text label for the menu item.  
        -        * When building a menu from existing HTML the value of this property
        -        * will be interpreted from the menu's markup.
        -        * @default ""
        -        * @type String
        -        */
        -        oConfig.addProperty(
        -            DEFAULT_CONFIG.TEXT.key, 
        -            { 
        -                handler: this.configText, 
        -                value: DEFAULT_CONFIG.TEXT.value, 
        -                validator: DEFAULT_CONFIG.TEXT.validator, 
        -                suppressEvent: DEFAULT_CONFIG.TEXT.suppressEvent 
        -            }
        -        );
        -        
        -
        -        /**
        -        * @config helptext
        -        * @description String specifying additional instructional text to 
        -        * accompany the text for the nenu item.
        -        * @default null
        -        * @type String|<a href="http://www.w3.org/TR/
        -        * 2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-58190037">
        -        * HTMLElement</a>
        -        */
        -        oConfig.addProperty(
        -            DEFAULT_CONFIG.HELP_TEXT.key,
        -            { handler: this.configHelpText }
        -        );
        -
        -
        -        /**
        -        * @config url
        -        * @description String specifying the URL for the menu item's anchor's 
        -        * "href" attribute.  When building a menu from existing HTML the value 
        -        * of this property will be interpreted from the menu's markup.
        -        * @default "#"
        -        * @type String
        -        */        
        -        oConfig.addProperty(
        -            DEFAULT_CONFIG.URL.key, 
        -            {
        -                handler: this.configURL, 
        -                value: DEFAULT_CONFIG.URL.value, 
        -                suppressEvent: DEFAULT_CONFIG.URL.suppressEvent
        -            }
        -        );
        -
        -
        -        /**
        -        * @config target
        -        * @description String specifying the value for the "target" attribute 
        -        * of the menu item's anchor element. <strong>Specifying a target will 
        -        * require the user to click directly on the menu item's anchor node in
        -        * order to cause the browser to navigate to the specified URL.</strong> 
        -        * When building a menu from existing HTML the value of this property 
        -        * will be interpreted from the menu's markup.
        -        * @default null
        -        * @type String
        -        */        
        -        oConfig.addProperty(
        -            DEFAULT_CONFIG.TARGET.key, 
        -            {
        -                handler: this.configTarget, 
        -                suppressEvent: DEFAULT_CONFIG.TARGET.suppressEvent
        -            }
        -        );
        -
        -
        -        /**
        -        * @config emphasis
        -        * @description Boolean indicating if the text of the menu item will be 
        -        * rendered with emphasis.  When building a menu from existing HTML the 
        -        * value of this property will be interpreted from the menu's markup.
        -        * @default false
        -        * @type Boolean
        -        */
        -        oConfig.addProperty(
        -            DEFAULT_CONFIG.EMPHASIS.key, 
        -            { 
        -                handler: this.configEmphasis, 
        -                value: DEFAULT_CONFIG.EMPHASIS.value, 
        -                validator: DEFAULT_CONFIG.EMPHASIS.validator, 
        -                suppressEvent: DEFAULT_CONFIG.EMPHASIS.suppressEvent 
        -            }
        -        );
        -
        -
        -        /**
        -        * @config strongemphasis
        -        * @description Boolean indicating if the text of the menu item will be 
        -        * rendered with strong emphasis.  When building a menu from existing 
        -        * HTML the value of this property will be interpreted from the
        -        * menu's markup.
        -        * @default false
        -        * @type Boolean
        -        */
        -        oConfig.addProperty(
        -            DEFAULT_CONFIG.STRONG_EMPHASIS.key,
        -            {
        -                handler: this.configStrongEmphasis,
        -                value: DEFAULT_CONFIG.STRONG_EMPHASIS.value,
        -                validator: DEFAULT_CONFIG.STRONG_EMPHASIS.validator,
        -                suppressEvent: DEFAULT_CONFIG.STRONG_EMPHASIS.suppressEvent
        -            }
        -        );
        -
        -
        -        /**
        -        * @config checked
        -        * @description Boolean indicating if the menu item should be rendered 
        -        * with a checkmark.
        -        * @default false
        -        * @type Boolean
        -        */
        -        oConfig.addProperty(
        -            DEFAULT_CONFIG.CHECKED.key, 
        -            {
        -                handler: this.configChecked, 
        -                value: DEFAULT_CONFIG.CHECKED.value, 
        -                validator: DEFAULT_CONFIG.CHECKED.validator, 
        -                suppressEvent: DEFAULT_CONFIG.CHECKED.suppressEvent,
        -                supercedes: DEFAULT_CONFIG.CHECKED.supercedes
        -            } 
        -        );
        -
        -
        -        /**
        -        * @config disabled
        -        * @description Boolean indicating if the menu item should be disabled.  
        -        * (Disabled menu items are  dimmed and will not respond to user input 
        -        * or fire events.)
        -        * @default false
        -        * @type Boolean
        -        */
        -        oConfig.addProperty(
        -            DEFAULT_CONFIG.DISABLED.key,
        -            {
        -                handler: this.configDisabled,
        -                value: DEFAULT_CONFIG.DISABLED.value,
        -                validator: DEFAULT_CONFIG.DISABLED.validator,
        -                suppressEvent: DEFAULT_CONFIG.DISABLED.suppressEvent
        -            }
        -        );
        -
        -
        -        /**
        -        * @config selected
        -        * @description Boolean indicating if the menu item should 
        -        * be highlighted.
        -        * @default false
        -        * @type Boolean
        -        */
        -        oConfig.addProperty(
        -            DEFAULT_CONFIG.SELECTED.key,
        -            {
        -                handler: this.configSelected,
        -                value: DEFAULT_CONFIG.SELECTED.value,
        -                validator: DEFAULT_CONFIG.SELECTED.validator,
        -                suppressEvent: DEFAULT_CONFIG.SELECTED.suppressEvent
        -            }
        -        );
        -
        -
        -        /**
        -        * @config submenu
        -        * @description Object specifying the submenu to be appended to the 
        -        * menu item.  The value can be one of the following: <ul><li>Object 
        -        * specifying a Menu instance.</li><li>Object literal specifying the
        -        * menu to be created.  Format: <code>{ id: [menu id], itemdata: 
        -        * [<a href="YAHOO.widget.Menu.html#itemData">array of values for 
        -        * items</a>] }</code>.</li><li>String specifying the id attribute 
        -        * of the <code>&#60;div&#62;</code> element of the menu.</li><li>
        -        * Object specifying the <code>&#60;div&#62;</code> element of the 
        -        * menu.</li></ul>
        -        * @default null
        -        * @type Menu|String|Object|<a href="http://www.w3.org/TR/2000/
        -        * WD-DOM-Level-1-20000929/level-one-html.html#ID-58190037">
        -        * HTMLElement</a>
        -        */
        -        oConfig.addProperty(
        -            DEFAULT_CONFIG.SUBMENU.key, 
        -            { handler: this.configSubmenu }
        -        );
        -
        -
        -        /**
        -        * @config onclick
        -        * @description Object literal representing the code to be executed when 
        -        * the button is clicked.  Format:<br> <code> {<br> 
        -        * <strong>fn:</strong> Function,   &#47;&#47; The handler to call when 
        -        * the event fires.<br> <strong>obj:</strong> Object, &#47;&#47; An 
        -        * object to  pass back to the handler.<br> <strong>scope:</strong> 
        -        * Object &#47;&#47; The object to use for the scope of the handler.
        -        * <br> } </code>
        -        * @type Object
        -        * @default null
        -        */
        -        oConfig.addProperty(
        -            DEFAULT_CONFIG.ONCLICK.key, 
        -            { handler: this.configOnClick }
        -        );
        -
        -
        -        /**
        -        * @config classname
        -        * @description CSS class to be applied to the menu item's root 
        -        * <code>&#60;li&#62;</code> element.  The specified class(es) are 
        -        * appended in addition to the default class as specified by the menu 
        -        * item's CSS_CLASS_NAME constant.
        -        * @default null
        -        * @type String
        -        */
        -        oConfig.addProperty(
        -            DEFAULT_CONFIG.CLASS_NAME.key, 
        -            { 
        -                handler: this.configClassName,
        -                value: DEFAULT_CONFIG.CLASS_NAME.value, 
        -                validator: DEFAULT_CONFIG.CLASS_NAME.validator
        -            }
        -        );
        -
        -	},
        -
        -
        -    /**
        -    * @method getNextEnabledSibling
        -    * @description Finds the menu item's next enabled sibling.
        -    * @return YAHOO.widget.MenuItem
        -    */
        -    getNextEnabledSibling: function() {
        -
        -        if(this.parent instanceof Menu) {
        -
        -            var nGroupIndex = this.groupIndex;
        -
        -            function getNextArrayItem(p_aArray, p_nStartIndex) {
        -    
        -                return p_aArray[p_nStartIndex] || 
        -                    getNextArrayItem(p_aArray, (p_nStartIndex+1));
        -    
        -            }
        -    
        -    
        -            var aItemGroups = this.parent.getItemGroups(),
        -                oNextItem;
        -    
        -    
        -            if(this.index < (aItemGroups[nGroupIndex].length - 1)) {
        -    
        -                oNextItem = getNextArrayItem(
        -                        aItemGroups[nGroupIndex], 
        -                        (this.index+1)
        -                    );
        -    
        -            }
        -            else {
        -    
        -                var nNextGroupIndex;
        -    
        -                if(nGroupIndex < (aItemGroups.length - 1)) {
        -    
        -                    nNextGroupIndex = nGroupIndex + 1;
        -    
        -                }
        -                else {
        -    
        -                    nNextGroupIndex = 0;
        -    
        -                }
        -    
        -                var aNextGroup = getNextArrayItem(aItemGroups, nNextGroupIndex);
        -    
        -                // Retrieve the first menu item in the next group
        -    
        -                oNextItem = getNextArrayItem(aNextGroup, 0);
        -    
        -            }
        -    
        -            return (
        -                oNextItem.cfg.getProperty("disabled") || 
        -                oNextItem.element.style.display == "none"
        -            ) ? 
        -            oNextItem.getNextEnabledSibling() : oNextItem;
        -
        -        }
        -
        -    },
        -
        -
        -    /**
        -    * @method getPreviousEnabledSibling
        -    * @description Finds the menu item's previous enabled sibling.
        -    * @return {YAHOO.widget.MenuItem}
        -    */
        -    getPreviousEnabledSibling: function() {
        -
        -       if(this.parent instanceof Menu) {
        -
        -            var nGroupIndex = this.groupIndex;
        -
        -            function getPreviousArrayItem(p_aArray, p_nStartIndex) {
        -    
        -                return p_aArray[p_nStartIndex] || 
        -                    getPreviousArrayItem(p_aArray, (p_nStartIndex-1));
        -    
        -            }
        -
        -            function getFirstItemIndex(p_aArray, p_nStartIndex) {
        -    
        -                return p_aArray[p_nStartIndex] ? 
        -                    p_nStartIndex : 
        -                    getFirstItemIndex(p_aArray, (p_nStartIndex+1));
        -    
        -            }
        -    
        -            var aItemGroups = this.parent.getItemGroups(),
        -                oPreviousItem;
        -    
        -            if(
        -                this.index > getFirstItemIndex(aItemGroups[nGroupIndex], 0)
        -            ) {
        -    
        -                oPreviousItem = 
        -                    getPreviousArrayItem(
        -                        aItemGroups[nGroupIndex], 
        -                        (this.index-1)
        -                    );
        -    
        -            }
        -            else {
        -    
        -                var nPreviousGroupIndex;
        -    
        -                if(nGroupIndex > getFirstItemIndex(aItemGroups, 0)) {
        -    
        -                    nPreviousGroupIndex = nGroupIndex - 1;
        -    
        -                }
        -                else {
        -    
        -                    nPreviousGroupIndex = aItemGroups.length - 1;
        -    
        -                }
        -    
        -                var aPreviousGroup = 
        -                        getPreviousArrayItem(aItemGroups, nPreviousGroupIndex);
        -    
        -                oPreviousItem = 
        -                    getPreviousArrayItem(
        -                        aPreviousGroup, 
        -                        (aPreviousGroup.length - 1)
        -                    );
        -    
        -            }
        -
        -            return (
        -                oPreviousItem.cfg.getProperty("disabled") || 
        -                oPreviousItem.element.style.display == "none"
        -            ) ? 
        -            oPreviousItem.getPreviousEnabledSibling() : oPreviousItem;
        -
        -        }
        -
        -    },
        -
        -
        -    /**
        -    * @method focus
        -    * @description Causes the menu item to receive the focus and fires the 
        -    * focus event.
        -    */
        -    focus: function() {
        -
        -        var oParent = this.parent,
        -            oAnchor = this._oAnchor,
        -            oActiveItem = oParent.activeItem,
        -            me = this;
        -
        -
        -        function setFocus() {
        -
        -            try {
        -
        -                if (
        -                    (me.browser == "ie" || me.browser == "ie7") && 
        -                    !document.hasFocus()
        -                ) {
        -                
        -                    return;
        -                
        -                }
        -
        -                oAnchor.focus();
        -
        -            }
        -            catch(e) {
        -            
        -            }
        -
        -        }
        -
        -
        -        if(
        -            !this.cfg.getProperty("disabled") && 
        -            oParent && 
        -            oParent.cfg.getProperty("visible") && 
        -            this.element.style.display != "none"
        -        ) {
        -
        -            if(oActiveItem) {
        -
        -                oActiveItem.blur();
        -
        -            }
        -
        -
        -            /*
        -                Setting focus via a timer fixes a race condition in Firefox, IE 
        -                and Opera where the browser viewport jumps as it trys to 
        -                position and focus the menu.
        -            */
        -
        -            window.setTimeout(setFocus, 0);
        -            
        -            this.focusEvent.fire();
        -
        -        }
        -
        -    },
        -
        -
        -    /**
        -    * @method blur
        -    * @description Causes the menu item to lose focus and fires the 
        -    * blur event.
        -    */    
        -    blur: function() {
        -
        -        var oParent = this.parent;
        -
        -        if(
        -            !this.cfg.getProperty("disabled") && 
        -            oParent && 
        -            Dom.getStyle(oParent.element, "visibility") == "visible"
        -        ) {
        -
        -            this._oAnchor.blur();
        -
        -            this.blurEvent.fire();
        -
        -        }
        -
        -    },
        -
        -
        -    /**
        -    * @method hasFocus
        -    * @description Returns a boolean indicating whether or not the menu item
        -    * has focus.
        -    * @return {Boolean}
        -    */
        -    hasFocus: function() {
        -    
        -        return (YAHOO.widget.MenuManager.getFocusedMenuItem() == this);
        -    
        -    },
        -
        -
        -	/**
        -    * @method destroy
        -	* @description Removes the menu item's <code>&#60;li&#62;</code> element 
        -	* from its parent <code>&#60;ul&#62;</code> element.
        -	*/
        -    destroy: function() {
        -
        -        var oEl = this.element;
        -
        -        if(oEl) {
        -
        -
        -            // If the item has a submenu, destroy it first
        -
        -            var oSubmenu = this.cfg.getProperty("submenu");
        -
        -            if(oSubmenu) {
        -            
        -                oSubmenu.destroy();
        -            
        -            }
        -
        -
        -            // Remove CustomEvent listeners
        -    
        -            this.mouseOverEvent.unsubscribeAll();
        -            this.mouseOutEvent.unsubscribeAll();
        -            this.mouseDownEvent.unsubscribeAll();
        -            this.mouseUpEvent.unsubscribeAll();
        -            this.clickEvent.unsubscribeAll();
        -            this.keyPressEvent.unsubscribeAll();
        -            this.keyDownEvent.unsubscribeAll();
        -            this.keyUpEvent.unsubscribeAll();
        -            this.focusEvent.unsubscribeAll();
        -            this.blurEvent.unsubscribeAll();
        -            this.cfg.configChangedEvent.unsubscribeAll();
        -
        -
        -            // Remove the element from the parent node
        -
        -            var oParentNode = oEl.parentNode;
        -
        -            if(oParentNode) {
        -
        -                oParentNode.removeChild(oEl);
        -
        -                this.destroyEvent.fire();
        -
        -            }
        -
        -            this.destroyEvent.unsubscribeAll();
        -
        -        }
        -
        -    },
        -
        -
        -    /**
        -    * @method toString
        -    * @description Returns a string representing the menu item.
        -    * @return {String}
        -    */
        -    toString: function() {
        -
        -        var sReturnVal = "MenuItem";
        -
        -        if(this.cfg && this.cfg.getProperty("text")) {
        -    
        -            sReturnVal += (": " + this.cfg.getProperty("text"));
        -    
        -        }
        -
        -        return sReturnVal;
        -    
        -    }
        -
        -};
        -
        -})();
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/menumanager.js.html b/www/extras/yui/docs/menumanager.js.html deleted file mode 100644 index dbb77e110..000000000 --- a/www/extras/yui/docs/menumanager.js.html +++ /dev/null @@ -1,790 +0,0 @@ - - - - API: menu menumanager.js (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Menu  2.2.2

        -

        - Yahoo! UI Library - > menu - - > menumanager.js (source view) -

        -
        - -
        -
        -
        - -
        -
        /**
        -* @module menu
        -* @description <p>The Menu family of components features a collection of 
        -* controls that make it easy to add menus to your website or web application.  
        -* With the Menu Controls you can create website fly-out menus, customized 
        -* context menus, or application-style menu bars with just a small amount of 
        -* scripting.</p><p>The Menu family of controls features:</p>
        -* <ul>
        -*    <li>Screen-reader accessibility.</li>
        -*    <li>Keyboard and mouse navigation.</li>
        -*    <li>A rich event model that provides access to all of a menu's 
        -*    interesting moments.</li>
        -*    <li>Support for 
        -*    <a href="http://en.wikipedia.org/wiki/Progressive_Enhancement">Progressive
        -*    Enhancement</a>; Menus can be created from simple, 
        -*    semantic markup on the page or purely through JavaScript.</li>
        -* </ul>
        -* @title Menu
        -* @namespace YAHOO.widget
        -* @requires Event, Dom, Container
        -*/
        -(function() {
        -
        -var Dom = YAHOO.util.Dom,
        -    Event = YAHOO.util.Event;
        -
        -
        -/**
        -* Singleton that manages a collection of all menus and menu items.  Listens for 
        -* DOM events at the document level and dispatches the events to the 
        -* corresponding menu or menu item.
        -*
        -* @namespace YAHOO.widget
        -* @class MenuManager
        -* @static
        -*/
        -YAHOO.widget.MenuManager = function() {
        -
        -    // Private member variables
        -
        -
        -    // Flag indicating if the DOM event handlers have been attached
        -
        -    var m_bInitializedEventHandlers = false,
        -
        -
        -        // Collection of menus
        -
        -        m_oMenus = {},
        -    
        -    
        -        //  Collection of menu items 
        -
        -        m_oItems = {},
        -
        -
        -        // Collection of visible menus
        -    
        -        m_oVisibleMenus = {},
        -
        -
        -        // Map of DOM event types to their equivalent CustomEvent types
        -    
        -        m_oEventTypes =  {
        -            "click": "clickEvent",
        -            "mousedown": "mouseDownEvent",
        -            "mouseup": "mouseUpEvent",
        -            "mouseover": "mouseOverEvent",
        -            "mouseout": "mouseOutEvent",
        -            "keydown": "keyDownEvent",
        -            "keyup": "keyUpEvent",
        -            "keypress": "keyPressEvent"
        -        },
        -
        -
        -        m_oFocusedMenuItem = null;
        -
        -
        -    var m_oLogger = new YAHOO.widget.LogWriter("MenuManager");
        -
        -
        -    // Private methods
        -
        -
        -    /**
        -    * @method addItem
        -    * @description Adds an item to the collection of known menu items.
        -    * @private
        -    * @param {YAHOO.widget.MenuItem} p_oItem Object specifying the MenuItem 
        -    * instance to be added.
        -    */
        -    function addItem(p_oItem) {
        -
        -        var sId = p_oItem.id;
        -
        -        if(p_oItem && m_oItems[sId] != p_oItem) {
        -    
        -            m_oItems[sId] = p_oItem;
        -
        -            p_oItem.destroyEvent.subscribe(onItemDestroy);
        -
        -            m_oLogger.log("Item: " + 
        -                p_oItem.toString() + " successfully registered.");
        -
        -        }
        -    
        -    }
        -
        -
        -    /**
        -    * @method removeItem
        -    * @description Removes an item from the collection of known menu items.
        -    * @private
        -    * @param {YAHOO.widget.MenuItem} p_oItem Object specifying the MenuItem 
        -    * instance to be removed.
        -    */
        -    function removeItem(p_oItem) {
        -    
        -        var sId = p_oItem.id;
        -
        -        if(sId && m_oItems[sId]) {
        -
        -            delete m_oItems[sId];
        -
        -            m_oLogger.log("Item: " + 
        -                p_oItem.toString() + " successfully unregistered.");
        -
        -        }
        -    
        -    }
        -
        -
        -    /**
        -    * @method getMenuRootElement
        -    * @description Finds the root DIV node of a menu or the root LI node of a 
        -    * menu item.
        -    * @private
        -    * @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
        -    * one-html.html#ID-58190037">HTMLElement</a>} p_oElement Object specifying 
        -    * an HTML element.
        -    */
        -    function getMenuRootElement(p_oElement) {
        -    
        -        var oParentNode;
        -
        -        if(p_oElement && p_oElement.tagName) {
        -        
        -            switch(p_oElement.tagName.toUpperCase()) {
        -                    
        -                case "DIV":
        -    
        -                    oParentNode = p_oElement.parentNode;
        -    
        -                    // Check if the DIV is the inner "body" node of a menu
        -
        -                    if(
        -                        (
        -                            Dom.hasClass(p_oElement, "hd") ||
        -                            Dom.hasClass(p_oElement, "bd") ||
        -                            Dom.hasClass(p_oElement, "ft")
        -                        )
        -                        && 
        -                        oParentNode && 
        -                        oParentNode.tagName && 
        -                        oParentNode.tagName.toUpperCase() == "DIV"
        -                    ) {
        -                    
        -                        return oParentNode;
        -                    
        -                    }
        -                    else {
        -                    
        -                        return p_oElement;
        -                    
        -                    }
        -                
        -                break;
        -
        -                case "LI":
        -    
        -                    return p_oElement;
        -
        -                default:
        -    
        -                    oParentNode = p_oElement.parentNode;
        -    
        -                    if(oParentNode) {
        -                    
        -                        return getMenuRootElement(oParentNode);
        -                    
        -                    }
        -                
        -                break;
        -            
        -            }
        -
        -        }
        -        
        -    }
        -
        -
        -
        -    // Private event handlers
        -
        -
        -    /**
        -    * @method onDOMEvent
        -    * @description Generic, global event handler for all of a menu's DOM-based 
        -    * events.  This listens for events against the document object.  If the 
        -    * target of a given event is a member of a menu or menu item's DOM, the 
        -    * instance's corresponding Custom Event is fired.
        -    * @private
        -    * @param {Event} p_oEvent Object representing the DOM event object passed 
        -    * back by the event utility (YAHOO.util.Event).
        -    */
        -    function onDOMEvent(p_oEvent) {
        -
        -        // Get the target node of the DOM event
        -    
        -        var oTarget = Event.getTarget(p_oEvent),
        -
        -
        -        // See if the target of the event was a menu, or a menu item
        -
        -            oElement = getMenuRootElement(oTarget),
        -            oMenuItem,
        -            oMenu; 
        -
        -
        -        if(oElement) {
        -
        -            var sTagName = oElement.tagName.toUpperCase();
        -    
        -            if(sTagName == "LI") {
        -        
        -                var sId = oElement.id;
        -        
        -                if(sId && m_oItems[sId]) {
        -        
        -                    oMenuItem = m_oItems[sId];
        -                    oMenu = oMenuItem.parent;
        -        
        -                }
        -            
        -            }
        -            else if(sTagName == "DIV") {
        -            
        -                if(oElement.id) {
        -                
        -                    oMenu = m_oMenus[oElement.id];
        -                
        -                }
        -            
        -            }
        -
        -        }
        -
        -
        -        if(oMenu) {
        -
        -            var sCustomEventType = m_oEventTypes[p_oEvent.type];
        -
        -
        -            // Fire the Custom Event that corresponds the current DOM event    
        -    
        -            if(oMenuItem && !oMenuItem.cfg.getProperty("disabled")) {
        -
        -                oMenuItem[sCustomEventType].fire(p_oEvent);                   
        -
        -
        -                if (p_oEvent.type == "keyup" || p_oEvent.type == "mousedown") {
        -
        -                    if (m_oFocusedMenuItem != oMenuItem) {
        -                    
        -                        if(m_oFocusedMenuItem) {
        -
        -                            m_oFocusedMenuItem.blurEvent.fire();
        -                        
        -                        }
        -
        -                        oMenuItem.focusEvent.fire();
        -                    
        -                    }
        -                
        -                }
        -
        -            }
        -    
        -            oMenu[sCustomEventType].fire(p_oEvent, oMenuItem);
        -        
        -        }
        -        else if(p_oEvent.type == "mousedown") {
        -
        -            if(m_oFocusedMenuItem) {
        -
        -                m_oFocusedMenuItem.blurEvent.fire();
        -
        -                m_oFocusedMenuItem = null;
        -
        -            }
        -
        -
        -            /*
        -                If the target of the event wasn't a menu, hide all 
        -                dynamically positioned menus
        -            */
        -            
        -            for(var i in m_oMenus) {
        -    
        -                if(YAHOO.lang.hasOwnProperty(m_oMenus,i)) {
        -    
        -                    oMenu = m_oMenus[i];
        -    
        -                    if(
        -                        oMenu.cfg.getProperty("clicktohide") && 
        -                        oMenu.cfg.getProperty("position") == "dynamic"
        -                    ) {
        -    
        -                        oMenu.hide();
        -    
        -                    }
        -                    else {
        -
        -                        oMenu.clearActiveItem(true);
        -    
        -                    }
        -    
        -                }
        -    
        -            } 
        -
        -        }
        -        else if(p_oEvent.type == "keyup") { 
        -
        -            if(m_oFocusedMenuItem) {
        -
        -                m_oFocusedMenuItem.blurEvent.fire();
        -
        -                m_oFocusedMenuItem = null;
        -
        -            }
        -
        -        }
        -
        -    }
        -
        -
        -    /**
        -    * @method onMenuDestroy
        -    * @description "destroy" event handler for a menu.
        -    * @private
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    */
        -    function onMenuDestroy(p_sType, p_aArgs) {
        -
        -        if(m_oMenus[this.id]) {
        -
        -            delete m_oMenus[this.id];
        -
        -            m_oLogger.log("Menu: " + 
        -                this.toString() + " successfully unregistered.");
        -
        -        }
        -
        -    }
        -
        -
        -    /**
        -    * @method onMenuFocus
        -    * @description "focus" event handler for a MenuItem instance.
        -    * @private
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    */
        -    function onMenuFocus(p_sType, p_aArgs) {
        -
        -        var oItem = p_aArgs[0];
        -        
        -        if (oItem) {
        -
        -            m_oFocusedMenuItem = oItem;
        -        
        -        }
        -
        -    }
        -
        -
        -    /**
        -    * @method onMenuBlur
        -    * @description "blur" event handler for a MenuItem instance.
        -    * @private
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    */
        -    function onMenuBlur(p_sType, p_aArgs) {
        -
        -        m_oFocusedMenuItem = null;
        -
        -    }
        -
        -
        -    /**
        -    * @method onItemDestroy
        -    * @description "destroy" event handler for a MenuItem instance.
        -    * @private
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    */
        -    function onItemDestroy(p_sType, p_aArgs) {
        -
        -        var sId = this.id;
        -
        -        if(sId && m_oItems[sId]) {
        -
        -            delete m_oItems[sId];
        -
        -        }
        -
        -    }
        -
        -
        -    /**
        -    * @method onMenuVisibleConfigChange
        -    * @description Event handler for when the "visible" configuration property 
        -    * of a Menu instance changes.
        -    * @private
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    */
        -    function onMenuVisibleConfigChange(p_sType, p_aArgs) {
        -
        -        var bVisible = p_aArgs[0];
        -        
        -        if(bVisible) {
        -
        -            m_oVisibleMenus[this.id] = this;
        -            
        -            m_oLogger.log("Menu: " + 
        -                this.toString() + 
        -                " registered with the collection of visible menus.");
        -        
        -        }
        -        else if(m_oVisibleMenus[this.id]) {
        -        
        -            delete m_oVisibleMenus[this.id];
        -            
        -            m_oLogger.log("Menu: " + 
        -                this.toString() + 
        -                " unregistered from the collection of visible menus.");
        -        
        -        }
        -    
        -    }
        -
        -
        -    /**
        -    * @method onItemAdded
        -    * @description "itemadded" event handler for a Menu instance.
        -    * @private
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    */
        -    function onItemAdded(p_sType, p_aArgs) {
        -    
        -        addItem(p_aArgs[0]);
        -    
        -    }
        -    
        -
        -    /**
        -    * @method onItemRemoved
        -    * @description "itemremoved" event handler for a Menu instance.
        -    * @private
        -    * @param {String} p_sType String representing the name of the event that 
        -    * was fired.
        -    * @param {Array} p_aArgs Array of arguments sent when the event was fired.
        -    */
        -    function onItemRemoved(p_sType, p_aArgs) {
        -
        -        removeItem(p_aArgs[0]);
        -    
        -    }
        -
        -
        -
        -    return {
        -
        -        // Privileged methods
        -
        -
        -        /**
        -        * @method addMenu
        -        * @description Adds a menu to the collection of known menus.
        -        * @param {YAHOO.widget.Menu} p_oMenu Object specifying the Menu  
        -        * instance to be added.
        -        */
        -        addMenu: function(p_oMenu) {
        -    
        -            if(p_oMenu && p_oMenu.id && !m_oMenus[p_oMenu.id]) {
        -    
        -                m_oMenus[p_oMenu.id] = p_oMenu;
        -            
        -        
        -                if(!m_bInitializedEventHandlers) {
        -        
        -                    var oDoc = document;
        -            
        -                    Event.on(oDoc, "mouseover", onDOMEvent, this, true);
        -                    Event.on(oDoc, "mouseout", onDOMEvent, this, true);
        -                    Event.on(oDoc, "mousedown", onDOMEvent, this, true);
        -                    Event.on(oDoc, "mouseup", onDOMEvent, this, true);
        -                    Event.on(oDoc, "click", onDOMEvent, this, true);
        -                    Event.on(oDoc, "keydown", onDOMEvent, this, true);
        -                    Event.on(oDoc, "keyup", onDOMEvent, this, true);
        -                    Event.on(oDoc, "keypress", onDOMEvent, this, true);
        -
        -
        -                    m_bInitializedEventHandlers = true;
        -                    
        -                    m_oLogger.log("DOM event handlers initialized.");
        -        
        -                }
        -        
        -                p_oMenu.destroyEvent.subscribe(onMenuDestroy);
        -                
        -                p_oMenu.cfg.subscribeToConfigEvent(
        -                    "visible", 
        -                    onMenuVisibleConfigChange
        -                );
        -        
        -                p_oMenu.itemAddedEvent.subscribe(onItemAdded);
        -                p_oMenu.itemRemovedEvent.subscribe(onItemRemoved);
        -                p_oMenu.focusEvent.subscribe(onMenuFocus);
        -                p_oMenu.blurEvent.subscribe(onMenuBlur);
        -    
        -                m_oLogger.log("Menu: " + 
        -                    p_oMenu.toString() + " successfully registered.");
        -    
        -            }
        -    
        -        },
        -
        -    
        -        /**
        -        * @method removeMenu
        -        * @description Removes a menu from the collection of known menus.
        -        * @param {YAHOO.widget.Menu} p_oMenu Object specifying the Menu  
        -        * instance to be removed.
        -        */
        -        removeMenu: function(p_oMenu) {
        -    
        -            if(p_oMenu && m_oMenus[p_oMenu.id]) {
        -    
        -                delete m_oMenus[p_oMenu.id];
        -    
        -                m_oLogger.log("Menu: " + 
        -                    p_oMenu.toString() + " successfully unregistered.");
        -    
        -            }
        -    
        -        },
        -    
        -    
        -        /**
        -        * @method hideVisible
        -        * @description Hides all visible, dynamically positioned menus.
        -        */
        -        hideVisible: function() {
        -    
        -            var oMenu;
        -    
        -            for(var i in m_oVisibleMenus) {
        -    
        -                if(YAHOO.lang.hasOwnProperty(m_oVisibleMenus,i)) {
        -    
        -                    oMenu = m_oVisibleMenus[i];
        -    
        -                    if(oMenu.cfg.getProperty("position") == "dynamic") {
        -    
        -                        oMenu.hide();
        -    
        -                    }
        -    
        -                }
        -    
        -            }        
        -        
        -        },
        -
        -
        -        /**
        -        * @method getMenus
        -        * @description Returns an array of all menus registered with the 
        -        * menu manger.
        -        * @return {Array}
        -        */
        -        getMenus: function() {
        -        
        -            return m_oMenus;
        -        
        -        },
        -
        -
        -        /**
        -        * @method getMenu
        -        * @description Returns a menu with the specified id.
        -        * @param {String} p_sId String specifying the id of the menu to
        -        * be retrieved.
        -        * @return {YAHOO.widget.Menu}
        -        */
        -        getMenu: function(p_sId) {
        -    
        -            if(m_oMenus[p_sId]) {
        -            
        -                return m_oMenus[p_sId];
        -            
        -            }
        -        
        -        },
        -
        -
        -        /**
        -        * @method getFocusedMenuItem
        -        * @description Returns a reference to the menu item that currently 
        -        * has focus.
        -        * @return {YAHOO.widget.MenuItem}
        -        */
        -        getFocusedMenuItem: function() {
        -
        -            return m_oFocusedMenuItem;
        -
        -        },
        -
        -
        -        /**
        -        * @method getFocusedMenu
        -        * @description Returns a reference to the menu that currently has focus.
        -        * @return {YAHOO.widget.Menu}
        -        */
        -        getFocusedMenu: function() {
        -
        -            if(m_oFocusedMenuItem) {
        -
        -                return (m_oFocusedMenuItem.parent.getRoot());
        -            
        -            }
        -
        -        },
        -
        -    
        -        /**
        -        * @method toString
        -        * @description Returns a string representing the menu manager.
        -        * @return {String}
        -        */
        -        toString: function() {
        -        
        -            return ("MenuManager");
        -        
        -        }
        -
        -    };
        -
        -}();
        -
        -})();
        -
        -
        -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_animation.html b/www/extras/yui/docs/module_animation.html deleted file mode 100644 index a32c8ff54..000000000 --- a/www/extras/yui/docs/module_animation.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - API: animation (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        animation  2.2.2

        -

        - Yahoo! UI Library - > animation - - -

        -
        - -
        -
        -
        - - -

        Module: animation - - - -

        -
        - The animation module provides allows effects to be added to HTMLElements. -
        - -
        -

        Search animation: -

        - -
        -   -
        -
        - - - - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_autocomplete.html b/www/extras/yui/docs/module_autocomplete.html deleted file mode 100644 index 9f554aced..000000000 --- a/www/extras/yui/docs/module_autocomplete.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - API: autocomplete (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        AutoComplete Widget  2.2.2

        -

        - Yahoo! UI Library - > autocomplete - - -

        -
        - -
        -
        -
        - - -

        Module: autocomplete - - - -

        -
        - The AutoComplete control provides the front-end logic for text-entry suggestion and -completion functionality. -
        - -
        -

        Search autocomplete: -

        - -
        -   -
        -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_button.html b/www/extras/yui/docs/module_button.html deleted file mode 100644 index 1ee6d9101..000000000 --- a/www/extras/yui/docs/module_button.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - API: button (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Button  2.2.2

        -

        - Yahoo! UI Library - > button - - -

        -
        - -
        -
        -
        - - -

        Module: button - - Beta - - -

        -
        -

        The Button Control enables the creation of rich, graphical -buttons that function like traditional HTML form buttons. Unlike -tradition HTML form buttons, buttons created with the Button Control can have -a label that is different from its value. With the inclusion of the optional -Menu Control, the Button Control can also be -used to create menu buttons and split buttons, controls that are not -available natively in HTML. The Button Control can also be thought of as a -way to create more visually engaging implementations of the browser's -default radio-button and check-box controls.

        -

        The Button Control supports the following types:

        -
        -
        button
        -
        Basic push button that can execute a user-specified command when -pressed.
        -
        link
        -
        Navigates to a specified url when pressed.
        -
        submit
        -
        Submits the parent form when pressed.
        -
        reset
        -
        Resets the parent form when pressed.
        -
        checkbox
        -
        Maintains a "checked" state that can be toggled on and off.
        -
        radio
        -
        Maintains a "checked" state that can be toggled on and off. Use with -the ButtonGroup class to create a set of controls that are mutually -exclusive; checking one button in the set will uncheck all others in -the group.
        -
        menubutton
        -
        When pressed will show/hide a menu.
        -
        splitbutton
        -
        Can execute a user-specified command or display a menu when pressed.
        -
        -
        - -
        -

        Search button: -

        - -
        -   -
        -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_calendar.html b/www/extras/yui/docs/module_calendar.html deleted file mode 100644 index 303d8f3ec..000000000 --- a/www/extras/yui/docs/module_calendar.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - API: calendar (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Calendar  2.2.2

        -

        - Yahoo! UI Library - > calendar - - -

        -
        - -
        -
        -
        - - -

        Module: calendar - - - -

        -
        - The Calendar component is a UI control that enables users to choose one or more dates from a graphical calendar presented in a one-month ("one-up") or two-month ("two-up") interface. Calendars are generated entirely via script and can be navigated without any page refreshes. -
        - -
        -

        Search calendar: -

        - -
        -   -
        -
        - - - - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_connection.html b/www/extras/yui/docs/module_connection.html deleted file mode 100644 index 41a785d7e..000000000 --- a/www/extras/yui/docs/module_connection.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - API: connection (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        connection  2.2.2

        -

        - Yahoo! UI Library - > connection - - -

        -
        - -
        -
        -
        - - -

        Module: connection - - - -

        -
        - The Connection Manager provides a simplified interface to the XMLHttpRequest -object. It handles cross-browser instantiantion of XMLHttpRequest, negotiates the -interactive states and server response, returning the results to a pre-defined -callback you create. -
        - -
        -

        Search connection: -

        - -
        -   -
        -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_container.html b/www/extras/yui/docs/module_container.html deleted file mode 100644 index 979d0901d..000000000 --- a/www/extras/yui/docs/module_container.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - API: container (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Container  2.2.2

        -

        - Yahoo! UI Library - > container - - -

        -
        - -
        -
        -
        - - -

        Module: container - - - -

        -
        - The Container family of components is designed to enable developers to create different kinds of content-containing modules on the web. Module and Overlay are the most basic containers, and they can be used directly or extended to build custom containers. Also part of the Container family are four UI controls that extend Module and Overlay: Tooltip, Panel, Dialog, and SimpleDialog. -
        - -
        -

        Search container: -

        - -
        -   -
        -
        - - - - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_datasource.html b/www/extras/yui/docs/module_datasource.html deleted file mode 100644 index d43c813c2..000000000 --- a/www/extras/yui/docs/module_datasource.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - API: datasource (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        DataSource Utility  2.2.2

        -

        - Yahoo! UI Library - > datasource - - -

        -
        - -
        -
        -
        - - -

        Module: datasource - - Beta - - -

        -
        - The DataSource utility provides a common configurable interface for widgets -to access a variety of data, from JavaScript arrays to online servers over -XHR. -
        - -
        -

        Search datasource: -

        - -
        -   -
        -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_datatable.html b/www/extras/yui/docs/module_datatable.html deleted file mode 100644 index 550092913..000000000 --- a/www/extras/yui/docs/module_datatable.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - API: datatable (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        DataTable Widget  2.2.2

        -

        - Yahoo! UI Library - > datatable - - -

        -
        - -
        -
        -
        - - -

        Module: datatable - - Beta - - -

        -
        - The DataTable widget provides a progressively enhanced DHTML control for -displaying tabular data across A-grade browsers. -
        - -
        -

        Search datatable: -

        - -
        -   -
        -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_dom.html b/www/extras/yui/docs/module_dom.html deleted file mode 100644 index 7c8654482..000000000 --- a/www/extras/yui/docs/module_dom.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - API: dom (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        dom  2.2.2

        -

        - Yahoo! UI Library - > dom - - -

        -
        - -
        -
        -
        - - -

        Module: dom - - - -

        -
        - The dom module provides helper methods for manipulating Dom elements. -
        - -
        -

        Search dom: -

        - -
        -   -
        -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_dragdrop.html b/www/extras/yui/docs/module_dragdrop.html deleted file mode 100644 index 93e044f83..000000000 --- a/www/extras/yui/docs/module_dragdrop.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - API: dragdrop (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Drag and Drop  2.2.2

        -

        - Yahoo! UI Library - > dragdrop - - -

        -
        - -
        -
        -
        - - -

        Module: dragdrop - - - -

        -
        - The drag and drop utility provides a framework for building drag and drop -applications. In addition to enabling drag and drop for specific elements, -the drag and drop elements are tracked by the manager class, and the -interactions between the various elements are tracked during the drag and -the implementing code is notified about these important moments. -
        - -
        -

        Search dragdrop: -

        - -
        -   -
        -
        - - - - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_element.html b/www/extras/yui/docs/module_element.html deleted file mode 100644 index 17ae58020..000000000 --- a/www/extras/yui/docs/module_element.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - API: element (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        element  2.2.2

        -

        - Yahoo! UI Library - > element - - -

        -
        - -
        -
        -
        - - -

        Module: element - - Beta - - -

        -
        - Element provides an wrapper object to simplify adding -event listeners, using dom methods, and managing attributes. -
        - -
        -

        Search element: -

        - -
        -   -
        -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_event.html b/www/extras/yui/docs/module_event.html deleted file mode 100644 index 209027c2f..000000000 --- a/www/extras/yui/docs/module_event.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - API: event (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Event Utility  2.2.2

        -

        - Yahoo! UI Library - > event - - -

        -
        - -
        -
        -
        - - -

        Module: event - - - -

        -
        - The Event Utility provides utilities for managing DOM Events and tools -for building event systems -
        - -
        -

        Search event: -

        - -
        -   -
        -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_history.html b/www/extras/yui/docs/module_history.html deleted file mode 100644 index 79f6bf3e2..000000000 --- a/www/extras/yui/docs/module_history.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - API: history (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Browser History Manager  2.2.2

        -

        - Yahoo! UI Library - > history - - -

        -
        - -
        -
        -
        - - -

        Module: history - - - Experimental - -

        -
        - The Browser History Manager provides the ability to use the -back/forward navigation buttons in a DHTML application. It also allows -a DHTML application to be bookmarked in a specific state. -
        - -
        -

        Search history: -

        - -
        -   -
        -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_logger.html b/www/extras/yui/docs/module_logger.html deleted file mode 100644 index 5d99aca6f..000000000 --- a/www/extras/yui/docs/module_logger.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - API: logger (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Logger Widget  2.2.2

        -

        - Yahoo! UI Library - > logger - - -

        -
        - -
        -
        -
        - - -

        Module: logger - - - -

        -
        - The Logger widget provides a simple way to read or write log messages in -JavaScript code. Integration with the YUI Library's debug builds allow -implementers to access under-the-hood events, errors, and debugging messages. -Output may be read through a LogReader console and/or output to a browser -console. -
        - -
        -

        Search logger: -

        - -
        -   -
        -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_menu.html b/www/extras/yui/docs/module_menu.html deleted file mode 100644 index e7e0a0385..000000000 --- a/www/extras/yui/docs/module_menu.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - API: menu (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Menu  2.2.2

        -

        - Yahoo! UI Library - > menu - - -

        -
        - -
        -
        -
        - - -

        Module: menu - - - -

        -
        -

        The Menu family of components features a collection of -controls that make it easy to add menus to your website or web application. -With the Menu Controls you can create website fly-out menus, customized -context menus, or application-style menu bars with just a small amount of -scripting.

        The Menu family of controls features:

        -
          -
        • Screen-reader accessibility.
        • -
        • Keyboard and mouse navigation.
        • -
        • A rich event model that provides access to all of a menu's -interesting moments.
        • -
        • Support for -Progressive -Enhancement; Menus can be created from simple, -semantic markup on the page or purely through JavaScript.
        • -
        -
        - -
        -

        Search menu: -

        - -
        -   -
        -
        - - - - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_slider.html b/www/extras/yui/docs/module_slider.html deleted file mode 100644 index b1810b710..000000000 --- a/www/extras/yui/docs/module_slider.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - API: slider (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        Slider Widget  2.2.2

        -

        - Yahoo! UI Library - > slider - - -

        -
        - -
        -
        -
        - - -

        Module: slider - - - -

        -
        - The Slider component is a UI control that enables the user to adjust -values in a finite range along one or two axes. Typically, the Slider -control is used in a web application as a rich, visual replacement -for an input box that takes a number as input. The Slider control can -also easily accommodate a second dimension, providing x,y output for -a selection point chosen from a rectangular region. -
        - -
        -

        Search slider: -

        - -
        -   -
        -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_tabview.html b/www/extras/yui/docs/module_tabview.html deleted file mode 100644 index ca4dbd4d5..000000000 --- a/www/extras/yui/docs/module_tabview.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - API: tabview (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        tabview  2.2.2

        -

        - Yahoo! UI Library - > tabview - - -

        -
        - -
        -
        -
        - - -

        Module: tabview - - - -

        -
        - The tabview module provides a widget for managing content bound to tabs. -
        - -
        -

        Search tabview: -

        - -
        -   -
        -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_treeview.html b/www/extras/yui/docs/module_treeview.html deleted file mode 100644 index d144822aa..000000000 --- a/www/extras/yui/docs/module_treeview.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - API: treeview (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        TreeView Widget  2.2.2

        -

        - Yahoo! UI Library - > treeview - - -

        -
        - -
        -
        -
        - - -

        Module: treeview - - - -

        -
        - The treeview widget is a generic tree building tool. -
        - -
        -

        Search treeview: -

        - -
        -   -
        -
        - - - - - - -
        -
        - -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/module_yahoo.html b/www/extras/yui/docs/module_yahoo.html deleted file mode 100644 index e4f3d14ee..000000000 --- a/www/extras/yui/docs/module_yahoo.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - API: yahoo (YUI Library) - - - - -
        - -
        -

        Yahoo! UI Library

        -

        YAHOO Global  2.2.2

        -

        - Yahoo! UI Library - > yahoo - - -

        -
        - -
        -
        -
        - - -

        Module: yahoo - - - -

        -
        - The YAHOO object is the single global object used by YUI Library. It -contains utility function for setting up namespaces, inheritance, and -logging. YAHOO.util, YAHOO.widget, and YAHOO.example are namespaces -created automatically for and used by the library. -
        - -
        -

        Search yahoo: -

        - -
        -   -
        -
        - - - - - - -
        -
        -
        - -
        -
        -
        -
        - Copyright © 2007 Yahoo! Inc. All rights reserved. -
        -
        - - diff --git a/www/extras/yui/docs/raw.json b/www/extras/yui/docs/raw.json deleted file mode 100644 index 5c1c0465a..000000000 --- a/www/extras/yui/docs/raw.json +++ /dev/null @@ -1 +0,0 @@ -{"classmap": {"YAHOO.widget.Calendar2up": {"name": "YAHOO.widget.Calendar2up", "deprecated": "The old Calendar2up class is no longer necessary, since CalendarGroup renders in a 2up view by default.", "namespace": "YAHOO.widget", "module": "calendar", "guessedname": "Calendar2up", "extends": "YAHOO.widget.CalendarGroup", "superclass": "YAHOO.widget.CalendarGroup", "file": "CalendarGroup.js", "guessedtype": "function", "shortname": "Calendar2up", "properties": {"Cal2up": {"deprecated": "The old Calendar2up class is no longer necessary, since CalendarGroup renders in a 2up view by default.", "guessedname": "Cal2up", "guessedtype": "property"}}}, "YAHOO.widget.Slider": {"name": "YAHOO.widget.Slider", "constructors": [{"params": [{"type": "String", "name": "id", "description": " The id of the element linked to this instance"}, {"type": "String", "name": "sGroup", "description": " The group of related DragDrop items"}, {"type": "SliderThumb", "name": "oThumb", "description": " The thumb for this slider"}, {"type": "String", "name": "sType", "description": " The type of slider (horiz, vert, region)"}], "description": "A DragDrop implementation that can be used as a background for a\nslider. It takes a reference to the thumb instance \nso it can delegate some of the events to it. The goal is to make the \nthumb jump to the location on the background when the background is \nclicked."}], "namespace": "YAHOO.widget", "module": "slider", "events": {"slideEnd": {"description": "Event that fires at the end of a slider thumb move"}, "change": {"params": [{"type": "int", "name": "newOffset|x", "description": " the new offset for normal sliders, or the new\nx offset for region sliders"}, {"type": "int", "name": "y", "description": " the number of pixels the thumb has moved on the y axis\n(region sliders only)"}], "description": "Event the fires when the value of the control changes. If \nthe control is animated the event will fire every point\nalong the way."}, "slideStart": {"description": "Event that fires at the beginning of a slider thumb move."}}, "guessedname": "Slider", "methods": {"fireEvents": {"guessedname": "fireEvents", "params": [{"type": "boolean", "name": "thumbEvent", "description": " set to true if this event is fired from an event\nthat occurred on the thumb. If it is, the state of the\nthumb dd object should be correct. Otherwise, the event\noriginated on the background, so the thumb state needs to\nbe refreshed before proceeding."}], "description": "Fires the change event if the value has been changed. Ignored if we are in\nthe middle of an animation as the event will fire when the animation is\ncomplete", "private": "", "guessedtype": "function"}, "lock": {"description": "Locks the slider, overrides YAHOO.util.DragDrop", "guessedname": "lock", "guessedtype": "function"}, "YAHOO.widget.Slider.getHorizSlider": {"return": {"type": "Slider", "description": "a horizontal slider control"}, "description": "Factory method for creating a horizontal slider", "static": "", "guessedname": "getHorizSlider", "guessedtype": "property", "params": [{"type": "String", "name": "sBGElId", "description": " the id of the slider's background element"}, {"type": "String", "name": "sHandleElId", "description": " the id of the thumb element"}, {"type": "int", "name": "iLeft", "description": " the number of pixels the element can move left"}, {"type": "int", "name": "iRight", "description": " the number of pixels the element can move right"}, {"type": "int", "name": "iTickSize", "description": " optional parameter for specifying that the element \nshould move a certain number pixels at a time."}]}, "focus": {"private": "", "description": "Try to focus the element when clicked so we can add\naccessibility features", "guessedname": "focus", "guessedtype": "function"}, "onMouseDown": {"private": "", "description": "Handles the mousedown event for the slider background", "guessedname": "onMouseDown", "guessedtype": "function"}, "handleKeyDown": {"params": [{"type": "Event", "name": "e", "description": " the keydown event"}], "description": "Executed when a keydown event happens with the control focused.\nUpdates the slider value and display when the keypress is an\narrow key, home, or end as long as enableKeys is set to true.", "guessedname": "handleKeyDown", "guessedtype": "function"}, "getXValue": {"return": {"type": "int", "description": "the current horizontal offset"}, "description": "Returns the slider's thumb X offset from the start position", "guessedname": "getXValue", "guessedtype": "function"}, "moveThumb": {"guessedname": "moveThumb", "params": [{"type": "int", "name": "x", "description": " the X coordinate of the click"}, {"type": "int", "name": "y", "description": " the Y coordinate of the click"}, {"type": "boolean", "name": "skipAnim", "description": " don't animate if the move happend onDrag"}], "description": "Move the associated slider moved to a timeout to try to get around the \nmousedown stealing moz does when I move the slider element between the \ncursor and the background during the mouseup event", "private": "", "guessedtype": "function"}, "setRegionValue": {"return": {"type": "boolean", "description": "true if the move was performed, false if it failed"}, "params": [{"type": "int", "name": "newOffset", "description": " the number of pixels the thumb should be\npositioned away from the initial start point (x axis for region)"}, {"type": "int", "name": "newOffset2", "description": " the number of pixels the thumb should be\npositioned away from the initial start point (y axis for region)"}, {"type": "boolean", "name": "skipAnim", "description": " set to true to disable the animation\nfor this move action (but not others)."}, {"type": "boolean", "name": "force", "description": " ignore the locked setting and set value anyway"}], "description": "Provides a way to set the value of the region slider in code.", "guessedname": "setRegionValue", "guessedtype": "function"}, "onSliderEnd": {"deprecated": "use instance.subscribe(\"slideEnd\") instead", "description": "Event that fires at the end of a slider thumb move", "guessedname": "onSlideEnd", "guessedtype": "function"}, "thumbMouseUp": {"private": "", "description": "Handles mouseup event on the slider background", "guessedname": "thumbMouseUp", "guessedtype": "function"}, "YAHOO.widget.Slider.getSliderRegion": {"return": {"type": "Slider", "description": "a slider region control"}, "description": "Factory method for creating a slider region like the one in the color\npicker example", "static": "", "guessedname": "getSliderRegion", "guessedtype": "property", "params": [{"type": "String", "name": "sBGElId", "description": " the id of the slider's background element"}, {"type": "String", "name": "sHandleElId", "description": " the id of the thumb element"}, {"type": "int", "name": "iLeft", "description": " the number of pixels the element can move left"}, {"type": "int", "name": "iRight", "description": " the number of pixels the element can move right"}, {"type": "int", "name": "iUp", "description": " the number of pixels the element can move up"}, {"type": "int", "name": "iDown", "description": " the number of pixels the element can move down"}, {"type": "int", "name": "iTickSize", "description": " optional parameter for specifying that the element \nshould move a certain number pixels at a time."}]}, "verifyOffset": {"return": {"type": "boolean", "description": "True if the offset is the same as the baseline."}, "params": [{"type": "boolean", "name": "checkPos", "description": " check the position instead of using cached value"}], "description": "Checks the background position element position. If it has moved from the\nbaseline position, the constraints for the thumb are reset", "guessedname": "verifyOffset", "guessedtype": "function"}, "initThumb": {"params": [{"type": "YAHOO.widget.SliderThumb", "name": "t", "description": " the slider thumb"}], "description": "Initializes the slider's thumb. Executed in the constructor.", "guessedname": "initThumb", "guessedtype": "function"}, "toString": {"return": {"type": "string", "description": "string representation of the instance"}, "description": "Slider toString", "guessedname": "toString", "guessedtype": "function"}, "moveOneTick": {"guessedname": "moveOneTick", "params": [{"type": "int[]", "name": "the", "description": " destination coordinate"}], "description": "Move the slider one tick mark towards its final coordinate. Used\nfor the animation when tick marks are defined", "private": "", "guessedtype": "function"}, "onChange": {"deprecated": "use instance.subscribe(\"change\") instead", "params": [{"type": "int", "name": "firstOffset", "description": " the number of pixels the thumb has moved\nfrom its start position. Normal horizontal and vertical sliders will only\nhave the firstOffset. Regions will have both, the first is the horizontal\noffset, the second the vertical."}, {"type": "int", "name": "secondOffset", "description": " the y offset for region sliders"}], "description": "Event that fires when the value of the slider has changed", "guessedname": "onChange", "guessedtype": "function"}, "initSlider": {"params": [{"type": "string", "name": "sType", "description": " the type of slider (horiz, vert, region)"}], "description": "Initializes the slider. Executed in the constructor", "guessedname": "initSlider", "guessedtype": "function"}, "setValue": {"return": {"type": "boolean", "description": "true if the move was performed, false if it failed"}, "params": [{"type": "int", "name": "newOffset", "description": " the number of pixels the thumb should be\npositioned away from the initial start point"}, {"type": "boolean", "name": "skipAnim", "description": " set to true to disable the animation\nfor this move action (but not others)."}, {"type": "boolean", "name": "force", "description": " ignore the locked setting and set value anyway"}], "description": "Provides a way to set the value of the slider in code.", "guessedname": "setValue", "guessedtype": "function"}, "setThumbCenterPoint": {"description": "When the thumb is available, we cache the centerpoint of the element so\nwe can position the element correctly when the background is clicked", "guessedname": "setThumbCenterPoint", "guessedtype": "function"}, "handleThumbChange": {"private": "", "description": "Internal handler for the slider thumb's onChange event", "guessedname": "handleThumbChange", "guessedtype": "function"}, "endMove": {"private": "", "description": "Fired when the slider movement ends", "guessedname": "endMove", "guessedtype": "function"}, "getYValue": {"return": {"type": "int", "description": "the current vertical offset"}, "description": "Returns the slider's thumb Y offset from the start position", "guessedname": "getYValue", "guessedtype": "function"}, "onAvailable": {"description": "Executed when the slider element is available", "guessedname": "onAvailable", "guessedtype": "function"}, "onSlideStart": {"deprecated": "use instance.subscribe(\"slideStart\") instead", "description": "Event that fires when the at the beginning of the slider thumb move", "guessedname": "onSlideStart", "guessedtype": "function"}, "onDrag": {"private": "", "description": "Handles the onDrag event for the slider background", "guessedname": "onDrag", "guessedtype": "function"}, "getThumb": {"return": {"type": "SliderThumb", "description": "this slider's thumb"}, "description": "Returns a reference to this slider's thumb", "guessedname": "getThumb", "guessedtype": "function"}, "YAHOO.widget.Slider.getVertSlider": {"return": {"type": "Slider", "description": "a vertical slider control"}, "description": "Factory method for creating a vertical slider", "static": "", "guessedname": "getVertSlider", "guessedtype": "property", "params": [{"type": "String", "name": "sBGElId", "description": " the id of the slider's background element"}, {"type": "String", "name": "sHandleElId", "description": " the id of the thumb element"}, {"type": "int", "name": "iUp", "description": " the number of pixels the element can move up"}, {"type": "int", "name": "iDown", "description": " the number of pixels the element can move down"}, {"type": "int", "name": "iTickSize", "description": " optional parameter for specifying that the element \nshould move a certain number pixels at a time."}]}, "handleKeyPress": {"params": [{"type": "Event", "name": "e", "description": " the keypress event"}], "description": "Executed when a keypress event happens with the control focused.\nPrevents the default behavior for navigation keys. The actual\nlogic for moving the slider thumb in response to a key event\nhappens in handleKeyDown.", "guessedname": "handleKeyPress", "guessedtype": "function"}, "setStartSliderState": {"description": "Initialization that sets up the value offsets once the elements are ready", "guessedname": "setStartSliderState", "guessedtype": "function"}, "getValue": {"return": {"type": "int", "description": "the current value"}, "description": "Returns the slider's thumb offset from the start position", "guessedname": "getValue", "guessedtype": "function"}, "b4MouseDown": {"private": "", "description": "Resets the constraints before moving the thumb.", "guessedname": "b4MouseDown", "guessedtype": "function"}, "unlock": {"description": "Unlocks the slider, overrides YAHOO.util.DragDrop", "guessedname": "unlock", "guessedtype": "function"}, "_getNextY": {"private": "", "description": "Returns the next Y tick value based on the current coord and the target coord.", "guessedname": "_getNextY", "guessedtype": "function"}, "_getNextX": {"private": "", "description": "Returns the next X tick value based on the current coord and the target coord.", "guessedname": "_getNextX", "guessedtype": "function"}}, "uses": ["YAHOO.util.EventProvider"], "superclass": "YAHOO.util.DragDrop", "file": "Slider.js", "guessedtype": "function", "extends": "YAHOO.util.DragDrop", "shortname": "Slider", "properties": {"moveComplete": {"deprecated": "use the slideEnd event instead", "type": "Boolean", "description": "moveComplete is set to true when the slider has moved to its final\ndestination. For animated slider, this value can be checked in \nthe onChange handler to make it possible to execute logic only\nwhen the move is complete rather than at all points along the way.\nDeprecated because this flag is only useful when the background is\nclicked and the slider is animated. If the user drags the thumb,\nthe flag is updated when the drag is over ... the final onDrag event\nfires before the mouseup the ends the drag, so the implementer will\nnever see it.", "guessedname": "moveComplete", "guessedtype": "property"}, "isTarget": {"private": "", "description": "Overrides the isTarget property in YAHOO.util.DragDrop", "guessedname": "isTarget", "guessedtype": "property"}, "thumb": {"type": "YAHOO.widget.SliderThumb", "description": "A YAHOO.widget.SliderThumb instance that we will use to \nreposition the thumb when the background is clicked", "guessedname": "thumb", "guessedtype": "property"}, "baselinePos": {"type": "[int, int]", "description": "The basline position of the background element, used\nto determine if the background has moved since the last\noperation.", "guessedname": "baselinePos", "guessedtype": "property"}, "thumbCenterPoint": {"type": "{\"x\": int, \"y\": int}", "description": "The center of the slider element is stored so we can \nplace it in the correct position when the background is clicked.", "guessedname": "thumbCenterPoint", "guessedtype": "property"}, "keyIncrement": {"type": "int", "description": "Specifies the number of pixels the arrow keys will move the slider.\nDefault is 25.", "guessedname": "keyIncrement", "guessedtype": "property"}, "backgroundEnabled": {"type": "boolean", "description": "Set to false to disable a background click thumb move", "guessedname": "backgroundEnabled", "guessedtype": "property"}, "animationDuration": {"default": "0.2", "type": "int", "description": "If animation is configured, specifies the length of the animation\nin seconds.", "guessedname": "animationDuration", "guessedtype": "property"}, "YAHOO.widget.Slider.ANIM_AVAIL": {"type": "boolean", "static": "", "description": "By default, animation is available if the animation library is detected.", "guessedname": "ANIM_AVAIL", "guessedtype": "property"}, "type": {"type": "string", "description": "The type of the slider (horiz, vert, region)", "guessedname": "type", "guessedtype": "property"}, "animate": {"type": "boolean", "description": "Flag that determines if the thumb will animate when moved", "guessedname": "animate", "guessedtype": "property"}, "tickPause": {"type": "int", "description": "Adjustment factor for tick animation, the more ticks, the\nfaster the animation (by default)", "guessedname": "tickPause", "guessedtype": "property"}, "enableKeys": {"type": "boolean", "description": "Enables the arrow, home and end keys, defaults to true.", "guessedname": "enableKeys", "guessedtype": "property"}}, "description": "A DragDrop implementation that can be used as a background for a\nslider. It takes a reference to the thumb instance \nso it can delegate some of the events to it. The goal is to make the \nthumb jump to the location on the background when the background is \nclicked."}, "YAHOO.util.AnimMgr": {"name": "YAHOO.util.AnimMgr", "namespace": "YAHOO.util", "module": "animation", "guessedname": "AnimMgr", "methods": {"run": {"description": "Called per Interval to handle each animation frame.", "guessedname": "run", "guessedtype": "function"}, "unRegister": {"guessedname": "unRegister", "params": [{"type": "object", "name": "tween", "description": " The Anim instance to be be registered"}, {"type": "Int", "name": "index", "description": " The index of the Anim instance"}], "description": "removes an animation instance from the animation queue.\nAll animation instances must be registered in order to animate.", "private": "", "guessedtype": "function"}, "stop": {"params": [{"type": "object", "name": "tween", "description": " A specific Anim instance to stop (optional)\nIf no instance given, Manager stops thread and all animations."}], "description": "Stops the animation thread or a specific animation instance.", "guessedname": "stop", "guessedtype": "function"}, "start": {"description": "Starts the animation thread.\nOnly one thread can run at a time.", "guessedname": "start", "guessedtype": "function"}, "registerElement": {"params": [{"type": "object", "name": "tween", "description": " The Anim instance to be be registered"}], "description": "Adds an animation instance to the animation queue.\nAll animation instances must be registered in order to animate.", "guessedname": "registerElement", "guessedtype": "function"}, "correctFrame": {"guessedname": "correctFrame", "params": [{"type": "Object", "name": "tween", "description": " The Anim instance being corrected."}], "description": "On the fly frame correction to keep animation on time.", "private": "", "guessedtype": "function"}}, "file": "AnimMgr.js", "guessedtype": "function", "shortname": "AnimMgr", "properties": {"queue": {"guessedname": "queue", "type": "Array", "description": "The current queue of registered animation objects.", "private": "", "guessedtype": "property"}, "tweenCount": {"guessedname": "tweenCount", "type": "Int", "description": "The number of active animations.", "private": "", "guessedtype": "property"}, "delay": {"type": "Int", "description": "Interval delay in milliseconds, defaults to fastest possible.", "guessedname": "delay", "guessedtype": "property"}, "fps": {"type": "Int", "description": "Base frame rate (frames per second). \nArbitrarily high for better x-browser calibration (slower browsers drop more frames).", "guessedname": "fps", "guessedtype": "property"}, "thread": {"guessedname": "thread", "type": "Int", "description": "Reference to the animation Interval.", "private": "", "guessedtype": "property"}}, "description": "Handles animation queueing and threading.\nUsed by Anim and subclasses."}, "YAHOO.util.EventProvider": {"name": "YAHOO.util.EventProvider", "namespace": "YAHOO.util", "module": "event", "guessedname": "EventProvider", "methods": {"unsubscribeAll": {"params": [{"type": "string", "name": "p_type", "description": " The type, or name of the event"}], "description": "Removes all listeners from the specified event", "guessedname": "unsubscribeAll", "guessedtype": "function"}, "subscribe": {"params": [{"type": "string", "name": "p_type", "description": " the type, or name of the event"}, {"type": "function", "name": "p_fn", "description": " the function to exectute when the event fires"}, {"type": "", "name": "p_obj", "description": ""}, {"type": "Object", "name": "p_obj", "description": " An object to be passed along when the event \nfires"}, {"type": "boolean", "name": "p_override", "description": " If true, the obj passed in becomes the \nexecution scope of the listener"}], "description": "Subscribe to a CustomEvent by event type", "guessedname": "subscribe", "guessedtype": "function"}, "unsubscribe": {"return": {"type": "boolean", "description": "true if the subscriber was found and detached."}, "params": [{"type": "string", "name": "p_type", "description": " The type, or name of the event"}, {"type": "Function", "name": "p_fn", "description": " The subscribed function to unsubscribe, if not\nsupplied, all subscribers will be removed."}, {"type": "Object", "name": "p_obj", "description": " The custom object passed to subscribe. This is\noptional, but if supplied will be used to\ndisambiguate multiple listeners that are the same\n(e.g., you subscribe many object using a function\nthat lives on the prototype)"}], "description": "Unsubscribes one or more listeners the from the specified event", "guessedname": "unsubscribe", "guessedtype": "function"}, "hasEvent": {"params": [{"type": "string", "name": "type", "description": " the type, or name of the event"}], "description": "Returns true if the custom event of the provided type has been created\nwith createEvent.", "guessedname": "hasEvent", "guessedtype": "function"}, "fireEvent": {"return": {"type": "boolean", "description": "the return value from CustomEvent.fire, or null if \nthe custom event does not exist."}, "params": [{"type": "string", "name": "p_type", "description": " the type, or name of the event"}, {"type": "Object*", "name": "arguments", "description": " an arbitrary set of parameters to pass to \nthe handler."}], "description": "Fire a custom event by name. The callback functions will be executed\nfrom the scope specified when the event was created, and with the \nfollowing parameters:\n